diff --git a/deployment/WinSCPnet.nuspec b/deployment/WinSCPnet.nuspec index fe815760..24f641aa 100644 --- a/deployment/WinSCPnet.nuspec +++ b/deployment/WinSCPnet.nuspec @@ -11,19 +11,19 @@ http://winscp.net/pad/winscp.png false The WinSCP .NET assembly is a .NET wrapper around WinSCP’s scripting interface. - The WinSCP .NET assembly is a .NET wrapper around WinSCP’s scripting interface that allows your code to connect to a remote machine and manipulate remote files over SFTP, SCP, and FTP sessions. - + The WinSCP .NET assembly is a .NET wrapper around WinSCP’s scripting interface that allows your code to connect to a remote machine and manipulate remote files over SFTP, SCP, WebDAV and FTP sessions. + The library is primarily intended for advanced automation tasks that require conditional processing, loops or other control structures for which the basic scripting interface is too limited. The library is not a general purpose file transfer library. It particularly lacks support for interactive processing and as such it is not well suited for use in GUI applications. For documentation and examples of use, see project website. The NuGet package includes the assembly itself and a required WinSCP executable. When installed, it adds the assembly as reference to your project and sets up WinSCP executable to be copied to project output directory, so that it can be found on run-time. Copyright © 2012-2015 Martin Prikryl - winscp sftp ftp ftps scp transfer + winscp sftp ftp ftps webdav scp transfer - + - \ No newline at end of file + diff --git a/deployment/license.setup.txt b/deployment/license.setup.txt index db2f686b..4e83a9c7 100644 --- a/deployment/license.setup.txt +++ b/deployment/license.setup.txt @@ -1,7 +1,7 @@ You can also review this license and further details online at: http://winscp.net/eng/docs/license - + A. GNU General Public License B. License of WinSCP Icon Set C. Privacy Policy @@ -17,9 +17,9 @@ Everyone is permitted to copy and distribute verbatim copies of this license doc The GNU General Public License is a free, copyleft license for software and other kinds of works. -The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. -When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. @@ -266,7 +266,7 @@ The GNU General Public License does not permit incorporating your program into p B. License of WinSCP Icon Set - + Note that all images distributed in or with WinSCP application are NOT published under the GNU General Public License. It means that it is not allowed to redistribute or reuse these images or parts of them or modifications of them without WinSCP separately or in or with another software. You agree that all ownership and copyright of the licensed stock icons remain the property of York Technologies Limited. WinSCP was granted a license to display this graphical media royalty-free in WinSCP software applications, web design, presentations, and multimedia projects that WinSCP creates and/or distributes. @@ -283,4 +283,3 @@ Before disabling WinSCP Usage statistics, be so kind and consider that it plays If you still want to disable WinSCP Usage statistics already during installation, you may do so using Custom installation. Thank you! - diff --git a/deployment/license.txt b/deployment/license.txt index 3c03f9b5..b2f612a0 100644 --- a/deployment/license.txt +++ b/deployment/license.txt @@ -2,7 +2,7 @@ B. License of WinSCP Icon Set C. Privacy Policy - + A. GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 @@ -680,7 +680,7 @@ Public License instead of this License. But first, please read B. License of WinSCP Icon Set - + Note that all images distributed in or with WinSCP application are NOT published under the GNU General Public License. It means that it is not allowed to redistribute or reuse these images or parts of them or modifications @@ -719,4 +719,3 @@ If you still want to disable WinSCP Usage statistics already during installation, you may do so using Custom installation. Thank you! - diff --git a/deployment/winscp.isl b/deployment/winscp.isl index 2d114d86..5e1d7c0a 100644 --- a/deployment/winscp.isl +++ b/deployment/winscp.isl @@ -1,5 +1,6 @@ [CustomMessages] LanguageISOCode=en +LocalLanguageName=English ApplicationComponent=WinSCP application ShellExtComponent=Drag & drop shell extension (allows direct downloads, may require restart) @@ -26,7 +27,7 @@ Launch=Launch &WinSCP OpenGettingStarted=Open &Getting started page HelpButton=&Help -ProgramComment=SFTP, FTP and SCP client +ProgramComment2=WinSCP: SFTP, FTP, WebDAV and SCP client ; WinSCP Runtime Recommended=%1 (recommended) @@ -66,3 +67,7 @@ Currency=USD ImportSites=Looking for sites to import... ApplicationsFoundDragExt=The following applications have loaded WinSCP Drag & drop shell extension that needs to be updated by Setup. It is recommended that you allow Setup to automatically close these applications. After the installation has completed, Setup will attempt to restart the applications. You can restart your computer later instead, if you do not need to use the extension. AcceptButton=&Accept > +IncompleteTranslation=You are about to use an incomplete translation. It is completed by %1%% only.%n%nUntranslated parts of the user interface will be shown in their original English version.%n%nVisit WinSCP website at winscp.net to check, if newer version of the translation is available. + +[CustomOptions] +TranslationCompleteness=100 diff --git a/deployment/winscpsetup.ico b/deployment/winscpsetup.ico index 1c376ad5..73bef2da 100644 Binary files a/deployment/winscpsetup.ico and b/deployment/winscpsetup.ico differ diff --git a/deployment/winscpsetup.iss b/deployment/winscpsetup.iss index 803d08a4..7e928102 100644 --- a/deployment/winscpsetup.iss +++ b/deployment/winscpsetup.iss @@ -1,4 +1,5 @@ #define AppId "winscp3" +#define AppMutex "WinSCP" #define ParentRegistryKey "Software\Martin Prikryl" #define RegistryKey ParentRegistryKey+"\WinSCP 2" #define DefaultLang "en" @@ -13,6 +14,12 @@ #define InnoSetupReg "Software\Microsoft\Windows\CurrentVersion\Uninstall\" + AppId + "_is1" #define InnoSetupAppPathReg "Inno Setup: App Path" +#ifndef CompletenessThreshold + #define CompletenessThreshold 100 +#else + #define CompletenessThreshold Int(CompletenessThreshold) +#endif + #ifndef PuttySourceDir #define PuttySourceDir "c:\Program Files\PuTTY" #endif @@ -23,17 +30,17 @@ #define SourceDir "..\source" #endif #ifndef BinariesDir - #define BinariesDir SourceDir + "\Release" + #define BinariesDir SourceDir + "\Win32\Release" #endif -#ifndef OutputSuffix - #define OutputSuffix +#ifndef BinariesDir64 + #define BinariesDir64 SourceDir + "\Win64\Release" #endif #ifndef AllTranslations #define AllTranslations #endif -#define TranslationDirRel "translations" #define TranslationDir "translations" +#define ImagesDir "images" #define OutputDir "." #define TranslationFileMask "WinSCP.???" @@ -42,13 +49,12 @@ #define ShellExtFileName "DragExt.dll" #define ShellExtFileSource BinariesDir+"\"+ShellExtFileName #define ShellExt64FileName "DragExt64.dll" -#define ShellExt64FileSource BinariesDir+"\"+ShellExt64FileName +#define ShellExt64FileSource BinariesDir64+"\"+ShellExt64FileName #define ConsoleFileSource BinariesDir+"\WinSCP.com" -#define IconFileSource SourceDir+"\resource\Icon256.ico" #define MapFileSource BinariesDir+"\WinSCP.map" #ifdef Donations -#define PayPalCardImage "paypalcard.bmp" +#define PayPalCardImage "PayPalCard.bmp" #endif #define Major @@ -58,27 +64,28 @@ #expr ParseVersion(MainFileSource, Major, Minor, Rev, Build) #define VersionOnly Str(Major)+"."+Str(Minor)+(Rev > 0 ? "."+Str(Rev) : "") #define Version VersionOnly+(Status != "" ? " "+Status : "") +#define FTag VersionOnly+(Status != "" ? "."+Status : "") #define WebArguments "ver=" +VersionOnly + "&lang={language}&utm_source=winscp&utm_medium=setup&utm_campaign=" + VersionOnly #define WebGettingStarted WebRoot + "eng/installed.php?" + WebArguments + "&prevver=" -; Some features of ISCC requires path relative to script, -; some path relative to CWD -#define MessagesPathRel(L) TranslationDirRel + "\" + "WinSCP." + L + ".isl" +#define MessagesPath(L) TranslationDir + "\" + "WinSCP." + L + ".islu" -#define ExplorerFile "explorer.bmp" -#define CommanderFile "commander.bmp" +#define ExplorerFileBase "Explorer" +#define CommanderFileBase "Commander" +#define WizardImageFileBase "Tall" +#define WizardSmallImageFileBase "Square" +#define SelectDirFileBase "Opened bookmark folder-stored session folder" [Setup] AppId={#AppId} AppName=WinSCP -AppMutex=WinSCP AppPublisher=Martin Prikryl AppPublisherURL={#WebRoot} AppSupportURL={#WebForum} AppUpdatesURL={#WebRoot}eng/download.php VersionInfoCompany=Martin Prikryl -VersionInfoDescription=Setup for WinSCP {#Version} (SFTP, FTP and SCP client) +VersionInfoDescription=Setup for WinSCP {#Version} (SFTP, FTP, WebDAV and SCP client) VersionInfoVersion={#Major}.{#Minor}.{#Rev}.{#Build} VersionInfoTextVersion={#Version} VersionInfoCopyright=(c) 2000-{#Year} Martin Prikryl @@ -91,10 +98,10 @@ OutputDir={#OutputDir} DisableStartupPrompt=yes AppVersion={#Version} AppVerName=WinSCP {#Version} -OutputBaseFilename=winscp{#Major}{#Minor}{#Rev}setup{#OutputSuffix} +OutputBaseFilename=WinSCP-{#FTag}-Setup SolidCompression=yes -WizardImageFile=compiler:WizModernImage-IS.bmp -WizardSmallImageFile=compiler:WizModernSmallImage-IS.bmp +WizardImageFile={#ImagesDir}\{#WizardImageFileBase} 100.bmp +WizardSmallImageFile={#ImagesDir}\{#WizardSmallImageFileBase} 100.bmp ShowTasksTreeLines=yes PrivilegesRequired=none UsePreviousLanguage=yes @@ -109,65 +116,46 @@ SignTool=sign $f "WinSCP Installer" http://winscp.net/eng/docs/installation ; English has to be first so that it is pre-selected ; on Setup Select Language window, when no translation matching ; Windows UI locale is available -Name: {#DefaultLang}; MessagesFile: {#MessagesPathRel(DefaultLang)} +Name: {#DefaultLang}; MessagesFile: {#MessagesPath(DefaultLang)} #define FindHandle #dim Languages[200] #define LanguageCount 0 #define AnyLanguageComplete 0 #define LangI -#define Complete -#define DirName -#define DirNameRel #sub ProcessTranslationFile #define FileName FindGetFileName(FindHandle) #define Lang Copy(FileName, Pos(".", FileName)+1) - #define MessagesPath DirName + "\" + "WinSCP." + Lang + ".isl" - #define LangNameFull ReadIni(MessagesPath, "LangOptions", "LanguageName") - #define Sep Pos(" - ", LangNameFull) + #define LangNameFull ReadIni(MessagesPath(Lang), "LangOptions", "LanguageName") + #define Sep Pos(" -", LangNameFull) #if Sep > 0 #define LangName Copy(LangNameFull, 1, Sep - 1) #else #define LangName LangNameFull #endif - #define LangID ReadIni(MessagesPath, "LangOptions", "LanguageID") + #define LangID ReadIni(MessagesPath(Lang), "LangOptions", "LanguageID") + #define LangCompleteness Int(ReadIni(MessagesPath(Lang), "CustomOptions", "TranslationCompleteness")) #expr Languages[LanguageCount*4] = Lang #expr Languages[LanguageCount*4+1] = LangName #expr Languages[LanguageCount*4+2] = LangID - #expr Languages[LanguageCount*4+3] = Complete + #expr Languages[LanguageCount*4+3] = LangCompleteness #expr LanguageCount++ -#if Complete == 1 -Name: {#Lang}; MessagesFile: {#MessagesPathRel(Lang)} +#if LangCompleteness > CompletenessThreshold +Name: {#Lang}; MessagesFile: {#MessagesPath(Lang)} #expr AnyLanguageComplete = 1 #endif #endsub /* sub ProcessTranslationFile */ -#sub ProcessTranslationDir - - #if FindHandle = FindFirst(DirNameRel + "\" + TranslationFileMask, 0) - #define FResult 1 - #for {0; FResult; FResult = FindNext(FindHandle)} ProcessTranslationFile - #expr FindClose(FindHandle) - #endif - -#endsub /* sub ProcessTranslationDir */ - -#expr Complete = 1 -#expr DirName = TranslationDir -#expr DirNameRel = TranslationDirRel -#emit ProcessTranslationDir - -#ifdef TranslationIncompleteDir - #expr Complete = 0 - #expr DirName = TranslationIncompleteDir - #expr DirNameRel = TranslationIncompleteDirRel - #emit ProcessTranslationDir +#if FindHandle = FindFirst(TranslationDir + "\" + TranslationFileMask, 0) + #define FResult 1 + #for {0; FResult; FResult = FindNext(FindHandle)} ProcessTranslationFile + #expr FindClose(FindHandle) #endif ; Types are not used anymore, they are preserved only to let setup @@ -210,12 +198,12 @@ Name: searchpath; Description: {cm:AddSearchPath}; \ [Icons] Name: "{commonprograms}\WinSCP"; Filename: "{app}\WinSCP.exe"; Components: main; \ - Comment: "{cm:ProgramComment}" + Comment: "{cm:ProgramComment2}" ; This is created when desktopicon task is selected Name: "{userdesktop}\WinSCP"; Filename: "{app}\WinSCP.exe"; \ - Tasks: desktopicon\user + Tasks: desktopicon\user; Comment: "{cm:ProgramComment2}" Name: "{commondesktop}\WinSCP"; Filename: "{app}\WinSCP.exe"; \ - Tasks: desktopicon\common + Tasks: desktopicon\common; Comment: "{cm:ProgramComment2}" ; This is created when quicklaunchicon task is selected Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\WinSCP"; \ Filename: "{app}\WinSCP.exe"; Tasks: quicklaunchicon @@ -244,6 +232,20 @@ Type: files; Name: "{app}\WinSCP.ini" Type: files; Name: "{app}\WinSCP.cgl" [Files] +; Put these to the top as we extract them on demand and +; that can take long with solid compression enabled +Source: "{#ImagesDir}\{#ExplorerFileBase} *.bmp"; Flags: dontcopy +Source: "{#ImagesDir}\{#CommanderFileBase} *.bmp"; Flags: dontcopy +; We do not need 100% images here, they are embedded already automatically +; by WizardImageFile and WizardSmallImageFile +Source: "{#ImagesDir}\{#WizardImageFileBase} *.bmp"; Excludes: "* 100.bmp"; \ + Flags: dontcopy +Source: "{#ImagesDir}\{#WizardSmallImageFileBase} *.bmp"; Excludes: "* 100.bmp"; \ + Flags: dontcopy +Source: "{#ImagesDir}\{#SelectDirFileBase} *.bmp"; Flags: dontcopy +#ifdef Donations +Source: "{#ImagesDir}\{#PayPalCardImage}"; Flags: dontcopy +#endif Source: "{#MainFileSource}"; DestDir: "{app}"; \ Components: main; Flags: ignoreversion Source: "{#ConsoleFileSource}"; DestDir: "{app}"; \ @@ -268,12 +270,6 @@ Source: "{#PuttySourceDir}\pageant.exe"; DestDir: "{app}\PuTTY"; \ Components: pageant; Flags: ignoreversion Source: "{#PuttySourceDir}\puttygen.exe"; DestDir: "{app}\PuTTY"; \ Components: puttygen; Flags: ignoreversion -Source: "{#ExplorerFile}"; Flags: dontcopy -Source: "{#CommanderFile}"; Flags: dontcopy -#ifdef Donations -Source: "{#PayPalCardImage}"; \ - Flags: dontcopy -#endif [Registry] Root: HKCU; Subkey: "{#ParentRegistryKey}"; Flags: uninsdeletekeyifempty @@ -316,7 +312,7 @@ Name: transl\eng; Description: {#EnglishLang}; Types: full custom compact; \ #sub EmitLang - #if Languages[LangI*4+3] == 1 + #if Languages[LangI*4+3] > CompletenessThreshold [Components] Name: transl\{#Languages[LangI*4]}; Description: {#Languages[LangI*4+1]}; \ @@ -325,7 +321,7 @@ Name: transl\{#Languages[LangI*4]}; Description: {#Languages[LangI*4+1]}; \ Check: not IsLang('{#Languages[LangI*4]}') [Files] -Source: "{#TranslationDirRel}\WinSCP.{#Languages[LangI*4]}"; DestDir: "{app}"; \ +Source: "{#TranslationDir}\WinSCP.{#Languages[LangI*4]}"; DestDir: "{app}"; \ Components: transl\{#Languages[LangI*4]}; Flags: ignoreversion [Registry] @@ -363,6 +359,7 @@ var LaunchCheckbox: TCheckbox; OpenGettingStartedCheckbox: TCheckbox; AreUpdatesEnabled: Boolean; + AutomaticUpdate: Boolean; Upgrade: Boolean; MissingTranslations: string; PrevVersion: string; @@ -370,6 +367,7 @@ var ShellExtNewerCacheResult: Boolean; #ifdef Donations DonationPanel: TPanel; + AboutDonationCaption: TLabel; #endif InstallationDone: Boolean; LicenseAccepted: Boolean; @@ -509,7 +507,7 @@ end; function ContainsLanguage(Lang: string): Boolean; begin #sub EmitLang3 - #if Languages[LangI*4+3] == 1 + #if Languages[LangI*4+3] > CompletenessThreshold if (Lang = '{#Languages[LangI*4]}') then Result := True else #endif @@ -520,6 +518,22 @@ begin Result := False; end; +function LanguageCompleteness(Lang: string): Integer; +begin + #sub EmitLang4 + if (Lang = '{#Languages[LangI*4]}') then + begin + Result := {#Languages[LangI*4+3]}; + end + else + #endsub /* sub EmitLang4 */ + + #for {LangI = 0; LangI < LanguageCount; LangI++} EmitLang4 + + // used also for the default language + Result := 100; +end; + procedure OpenBrowser(Url: string); var ErrorCode: Integer; @@ -537,25 +551,6 @@ begin OpenHelp; end; -#ifdef Donations - -procedure AboutDonationsLinkClick(Sender: TObject); -begin - OpenBrowser('{#WebRoot}eng/donate.php?' + ExpandConstant('{#WebArguments}')); - Donated := true; -end; - -procedure DonateLinkClick(Sender: TObject); -var - Control: TControl; -begin - Control := TControl(Sender); - OpenBrowser('{#WebRoot}eng/donate.php?amount=' + IntToStr(Control.Tag) + '¤cy=' + ExpandConstant('{cm:Currency}') + '&' + ExpandConstant('{#WebArguments}')); - Donated := true; -end; - -#endif - procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = 112 { VK_F1 } then @@ -599,7 +594,7 @@ var begin Path := AddBackslash(WizardDirValue); - if FindFirst(ExpandConstant(Path + '{#TranslationFileMask}'), FindRec) then + if FindFirst(Path + '{#TranslationFileMask}', FindRec) then begin try repeat @@ -649,6 +644,21 @@ end; #ifdef Donations +procedure AboutDonationsLinkClick(Sender: TObject); +begin + OpenBrowser('{#WebRoot}eng/donate.php?' + ExpandConstant('{#WebArguments}')); + Donated := true; +end; + +procedure DonateLinkClick(Sender: TObject); +var + Control: TControl; +begin + Control := TControl(Sender); + OpenBrowser('{#WebRoot}eng/donate.php?amount=' + IntToStr(Control.Tag) + '¤cy=' + CustomMessage('Currency') + '&' + ExpandConstant('{#WebArguments}')); + Donated := true; +end; + procedure CreateDonateLink(Amount: Integer; Row: Integer; Top: Integer); var Caption: TLabel; @@ -658,20 +668,63 @@ begin Caption.Top := Top + Row * ScaleY(16); Caption.Tag := Amount; Caption.Parent := DonationPanel; - Caption.Caption := Format(ExpandConstant('{cm:Donate}'), ['$' + IntToStr(Amount)]); + Caption.Caption := Format(CustomMessage('Donate'), ['$' + IntToStr(Amount)]); Caption.OnClick := @DonateLinkClick; LinkLabel(Caption); end; #endif -procedure LoadEmbededBitmap(Image: TBitmapImage; Name: string); +const + fsSurface = 0; + +procedure LoadEmbededBitmap(Image: TBitmapImage; Name: string; BackgroundColor: TColor); +var + FileName: string; + Bitmap: TBitmap; begin ExtractTemporaryFile(Name); - Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\' + Name)); + Bitmap := TBitmap.Create(); + FileName := ExpandConstant('{tmp}\' + Name); + Bitmap.LoadFromFile(FileName); + // we won't need this anymore + DeleteFile(FileName); + + if BackgroundColor <> 0 then + begin + // Solving transparency on run-time to avoid having to + // change the background color in the image file, + // so they can stay identical to the original + // (except for conversion from png to bmp) + Image.ReplaceColor := clFuchsia; + Bitmap.Canvas.Brush.Color := Image.ReplaceColor; + Bitmap.Canvas.FloodFill(0, 0, Bitmap.Canvas.Pixels[0, 0], fsSurface); + Image.ReplaceWithColor := BackgroundColor; + end; + + Image.Bitmap := Bitmap; + Bitmap.Free; Image.AutoSize := True; end; +function GetScalingFactor: Integer; +begin + if WizardForm.Font.PixelsPerInch >= 192 then Result := 200 + else + if WizardForm.Font.PixelsPerInch >= 144 then Result := 150 + else + if WizardForm.Font.PixelsPerInch >= 120 then Result := 125 + else Result := 100; +end; + +procedure LoadEmbededScaledBitmap(Image: TBitmapImage; NameBase: string; SizeBase: Integer; BackgroundColor: TColor); +var + Name: String; +begin + Name := Format('%s %d.bmp', [NameBase, SizeBase * GetScalingFactor div 100]); + LoadEmbededBitmap(Image, Name, BackgroundColor); +end; + // WORKAROUND // Checkboxes and Radio buttons created on runtime do // not scale their height automatically @@ -680,6 +733,64 @@ begin Control.Height := ScaleY(Control.Height); end; +function GetBottom(Control: TControl): Integer; +begin + Result := Control.Top + Control.Height; +end; + +function CmdLineParamExists(const Value: string): Boolean; +var + I: Integer; +begin + Result := False; + for I := 1 to ParamCount do + begin + if CompareText(ParamStr(I), Value) = 0 then + begin + Result := True; + Exit; + end; + end; +end; + +function InitializeSetup: Boolean; +var + WaitInterval: Integer; + Wait: Integer; +begin + AutomaticUpdate := CmdLineParamExists('/AutomaticUpdate'); + if AutomaticUpdate then + begin + Log('Automatic update'); + + Wait := 10000; + end + else + begin + Wait := 0; + end; + + WaitInterval := 250; + while (Wait > 0) and CheckForMutexes('{#AppMutex}') do + begin + Log('Application is still running, waiting'); + Sleep(WaitInterval); + Wait := Wait - WaitInterval; + end; + + while CheckForMutexes('{#AppMutex}') do + begin + if MsgBox( + FmtMessage(SetupMessage(msgSetupAppRunningError), ['WinSCP']), + mbError, MB_OKCANCEL) <> IDOK then + begin + Abort; + end; + end; + + Result := True; +end; + procedure InitializeWizard; var DefaultLang: Boolean; @@ -694,6 +805,7 @@ var P: Integer; #endif S: string; + Completeness: Integer; begin InstallationDone := False; LicenseAccepted := False; @@ -711,6 +823,12 @@ begin PrevVersion := Copy(PrevVersion, 1, 5); end; + Completeness := LanguageCompleteness(ActiveLanguage); + if Completeness < 100 then + begin + ShowMessage(FmtMessage(CustomMessage('IncompleteTranslation'), [IntToStr(Completeness)])); + end; + ProcessMissingTranslations(@CollectNames); WizardForm.KeyPreview := True; @@ -723,14 +841,13 @@ begin WizardForm.LicenseAcceptedRadio.Visible := False; WizardForm.LicenseNotAcceptedRadio.Visible := False; WizardForm.LicenseMemo.Height := - WizardForm.LicenseNotAcceptedRadio.Top + - WizardForm.LicenseNotAcceptedRadio.Height - + GetBottom(WizardForm.LicenseNotAcceptedRadio) - WizardForm.LicenseMemo.Top - 5; // hide installation types combo WizardForm.TypesCombo.Visible := False; WizardForm.ComponentsList.Height := - WizardForm.ComponentsList.Top + WizardForm.ComponentsList.Height - + GetBottom(WizardForm.ComponentsList) - WizardForm.TypesCombo.Top; WizardForm.ComponentsList.Top := WizardForm.TypesCombo.Top; @@ -743,22 +860,22 @@ begin HelpButton.Top := WizardForm.CancelButton.Top; HelpButton.Width := WizardForm.CancelButton.Width; HelpButton.Height := WizardForm.CancelButton.Height; - HelpButton.Caption := ExpandConstant('{cm:HelpButton}'); + HelpButton.Caption := CustomMessage('HelpButton'); HelpButton.OnClick := @HelpButtonClick; // installation type page SetupTypePage := CreateCustomPage(wpLicense, - ExpandConstant('{cm:SetupTypeTitle}'), - ExpandConstant('{cm:SetupTypePrompt}')); + CustomMessage('SetupTypeTitle'), + CustomMessage('SetupTypePrompt')); TypicalTypeButton := TRadioButton.Create(SetupTypePage); if not Upgrade then - S := ExpandConstant('{cm:TypicalType}') + S := CustomMessage('TypicalType') else - S := ExpandConstant('{cm:TypicalUpgradeType}'); + S := CustomMessage('TypicalUpgradeType'); TypicalTypeButton.Caption := - FmtMessage(ExpandConstant('{cm:Recommended}'), [S]); + FmtMessage(CustomMessage('Recommended'), [S]); // check typical install, if typical install was installed before or // when version without setup type support was installed with // "full" installation or when there were no installation before @@ -778,47 +895,47 @@ begin if not Upgrade then begin if DefaultLang then - S := ExpandConstant('{cm:TypicalType2Eng}') + S := CustomMessage('TypicalType2Eng') else - S := FmtMessage(ExpandConstant('{cm:TypicalType2Intl}'), [LanguageName(ActiveLanguage, 'Unknown')]); + S := FmtMessage(CustomMessage('TypicalType2Intl'), [CustomMessage('LocalLanguageName')]); Caption.Caption := - ExpandConstant('{cm:TypicalType1}') + NewLine + + CustomMessage('TypicalType1') + NewLine + S + NewLine + - ExpandConstant('{cm:TypicalType3}'); + CustomMessage('TypicalType3'); end else begin if Length(MissingTranslations) > 0 then begin #if AnyLanguageComplete - S := FmtMessage(ExpandConstant('{cm:TypicalUpgradeTypeMissingTransl}'), [MissingTranslations]); + S := FmtMessage(CustomMessage('TypicalUpgradeTypeMissingTransl'), [MissingTranslations]); #else - S := ExpandConstant('{cm:TypicalUpgradeTypeNoTransl}'); + S := CustomMessage('TypicalUpgradeTypeNoTransl'); #endif S := NewLine + S; end else S := ''; Caption.Caption := - ExpandConstant('{cm:TypicalUpgradeType1}') + S; + CustomMessage('TypicalUpgradeType1') + S; end; Caption.Left := ScaleX(4) + ScaleX(20); Caption.Width := SetupTypePage.SurfaceWidth - Caption.Left; - Caption.Top := TypicalTypeButton.Top + TypicalTypeButton.Height + ScaleY(6); + Caption.Top := GetBottom(TypicalTypeButton) + ScaleY(6); Caption.Parent := SetupTypePage.Surface; Caption.FocusControl := TypicalTypeButton; Caption.OnClick := @CaptionClick; CustomTypeButton := TRadioButton.Create(SetupTypePage); if not Upgrade then - CustomTypeButton.Caption := ExpandConstant('{cm:CustomType}') + CustomTypeButton.Caption := CustomMessage('CustomType') else - CustomTypeButton.Caption := ExpandConstant('{cm:CustomUpgradeType}'); + CustomTypeButton.Caption := CustomMessage('CustomUpgradeType'); CustomTypeButton.Checked := (not TypicalTypeButton.Checked); CustomTypeButton.Left := ScaleX(4); CustomTypeButton.Width := SetupTypePage.SurfaceWidth - CustomTypeButton.Left; - CustomTypeButton.Top := Caption.Top + Caption.Height + ScaleY(10); + CustomTypeButton.Top := GetBottom(Caption) + ScaleY(10); ScaleFixedHeightControl(CustomTypeButton); CustomTypeButton.Parent := SetupTypePage.Surface; @@ -827,18 +944,17 @@ begin if not Upgrade then begin Caption.Caption := - ExpandConstant('{cm:CustomType1}'); + CustomMessage('CustomType1'); end else begin Caption.Caption := - ExpandConstant('{cm:CustomUpgradeType1}') + NewLine + - ExpandConstant('{cm:CustomUpgradeType2}'); + CustomMessage('CustomUpgradeType1') + NewLine + + CustomMessage('CustomUpgradeType2'); end; Caption.Left := ScaleX(4) + ScaleX(20); Caption.Width := SetupTypePage.SurfaceWidth - Caption.Left; - Caption.Top := CustomTypeButton.Top + CustomTypeButton.Height + - ScaleY(6); + Caption.Top := GetBottom(CustomTypeButton) + ScaleY(6); Caption.Parent := SetupTypePage.Surface; Caption.FocusControl := CustomTypeButton; Caption.OnClick := @CaptionClick; @@ -846,8 +962,8 @@ begin // interface page InterfacePage := CreateCustomPage(wpSelectTasks, - ExpandConstant('{cm:UserSettingsTitle}'), - ExpandConstant('{cm:UserSettingsPrompt}')); + CustomMessage('UserSettingsTitle'), + CustomMessage('UserSettingsPrompt')); UpdatesPeriod := 0; RegQueryDWordValue(HKCU, '{#RegistryKey}\Configuration\Interface\Updates', @@ -859,35 +975,33 @@ begin 'Interface', UserInterface); Caption := TLabel.Create(InterfacePage); - Caption.Caption := ExpandConstant('{cm:UserInterfaceStyle}'); + Caption.Caption := CustomMessage('UserInterfaceStyle'); Caption.Width := InterfacePage.SurfaceWidth; Caption.Parent := InterfacePage.Surface; CommanderRadioButton := TRadioButton.Create(InterfacePage); - CommanderRadioButton.Caption := ExpandConstant('{cm:NortonCommanderInterfaceC}'); + CommanderRadioButton.Caption := CustomMessage('NortonCommanderInterfaceC'); CommanderRadioButton.Checked := (UserInterface = 0); CommanderRadioButton.Left := ScaleX(4); CommanderRadioButton.Width := ScaleX(116); - CommanderRadioButton.Top := Caption.Top + Caption.Height + ScaleY(6); + CommanderRadioButton.Top := GetBottom(Caption) + ScaleY(6); ScaleFixedHeightControl(CommanderRadioButton); CommanderRadioButton.Parent := InterfacePage.Surface; Image := TBitmapImage.Create(InterfacePage); - Image.Top := CommanderRadioButton.Top + CommanderRadioButton.Height + ScaleY(6); + Image.Top := GetBottom(CommanderRadioButton) + ScaleY(6); Image.Left := CommanderRadioButton.Left + ScaleX(45); Image.Parent := InterfacePage.Surface; - LoadEmbededBitmap(Image, '{#CommanderFile}'); - Image.ReplaceColor := $FF00FF; - Image.ReplaceWithColor := InterfacePage.Surface.Color; + LoadEmbededScaledBitmap(Image, '{#CommanderFileBase}', 32, InterfacePage.Surface.Color); Image.OnClick := @ImageClick; Image.Tag := Integer(CommanderRadioButton); Caption := TLabel.Create(InterfacePage); Caption.WordWrap := True; Caption.Caption := - ExpandConstant('{cm:NortonCommanderInterface1}') + NewLine + - ExpandConstant('{cm:NortonCommanderInterface2}') + NewLine + - ExpandConstant('{cm:NortonCommanderInterface3}'); + CustomMessage('NortonCommanderInterface1') + NewLine + + CustomMessage('NortonCommanderInterface2') + NewLine + + CustomMessage('NortonCommanderInterface3'); Caption.Left := CommanderRadioButton.Left + CommanderRadioButton.Width; Caption.Width := InterfacePage.SurfaceWidth - Caption.Left; Caption.Top := CommanderRadioButton.Top; @@ -896,30 +1010,28 @@ begin Caption.OnClick := @CaptionClick; ExplorerRadioButton := TRadioButton.Create(InterfacePage); - ExplorerRadioButton.Caption := ExpandConstant('{cm:ExplorerInterfaceC}'); + ExplorerRadioButton.Caption := CustomMessage('ExplorerInterfaceC'); ExplorerRadioButton.Checked := (UserInterface <> 0); ExplorerRadioButton.Left := ScaleX(4); ExplorerRadioButton.Width := CommanderRadioButton.Width; - ExplorerRadioButton.Top := Caption.Top + Caption.Height + ScaleY(10); + ExplorerRadioButton.Top := GetBottom(Caption) + ScaleY(10); ScaleFixedHeightControl(ExplorerRadioButton); ExplorerRadioButton.Parent := InterfacePage.Surface; Image := TBitmapImage.Create(InterfacePage); - Image.Top := ExplorerRadioButton.Top + ExplorerRadioButton.Height + ScaleY(6); + Image.Top := GetBottom(ExplorerRadioButton) + ScaleY(6); Image.Left := ExplorerRadioButton.Left + ScaleX(45); Image.Parent := InterfacePage.Surface; - LoadEmbededBitmap(Image, '{#ExplorerFile}'); - Image.ReplaceColor := $C020E0; - Image.ReplaceWithColor := InterfacePage.Surface.Color; + LoadEmbededScaledBitmap(Image, '{#ExplorerFileBase}', 32, InterfacePage.Surface.Color); Image.OnClick := @ImageClick; Image.Tag := Integer(ExplorerRadioButton); Caption := TLabel.Create(InterfacePage); Caption.WordWrap := True; Caption.Caption := - ExpandConstant('{cm:ExplorerInterface1}') + NewLine + - ExpandConstant('{cm:ExplorerInterface2}') + NewLine + - ExpandConstant('{cm:ExplorerInterface3}'); + CustomMessage('ExplorerInterface1') + NewLine + + CustomMessage('ExplorerInterface2') + NewLine + + CustomMessage('ExplorerInterface3'); Caption.Left := ExplorerRadioButton.Left + ExplorerRadioButton.Width; Caption.Width := InterfacePage.SurfaceWidth - Caption.Left; Caption.Top := ExplorerRadioButton.Top; @@ -929,14 +1041,14 @@ begin // run checkbox LaunchCheckbox := TCheckbox.Create(WizardForm.FinishedPage); - LaunchCheckbox.Caption := ExpandConstant('{cm:Launch}'); + LaunchCheckbox.Caption := CustomMessage('Launch'); LaunchCheckbox.Checked := True; LaunchCheckbox.Left := WizardForm.YesRadio.Left; LaunchCheckbox.Width := WizardForm.YesRadio.Width; ScaleFixedHeightControl(LaunchCheckbox); LaunchCheckbox.Parent := WizardForm.FinishedPage; OpenGettingStartedCheckbox := TCheckbox.Create(WizardForm.FinishedPage); - OpenGettingStartedCheckbox.Caption := ExpandConstant('{cm:OpenGettingStarted}'); + OpenGettingStartedCheckbox.Caption := CustomMessage('OpenGettingStarted'); OpenGettingStartedCheckbox.Checked := True; OpenGettingStartedCheckbox.Left := WizardForm.YesRadio.Left; OpenGettingStartedCheckbox.Width := WizardForm.YesRadio.Width; @@ -949,46 +1061,45 @@ begin DonationPanel.Left := WizardForm.YesRadio.Left; DonationPanel.Width := WizardForm.YesRadio.Width; DonationPanel.Parent := WizardForm.FinishedPage; - DonationPanel.Top := ScaleY(190); - DonationPanel.Height := ScaleY(110); DonationPanel.BevelInner := bvNone; DonationPanel.BevelOuter := bvNone; DonationPanel.Color := WizardForm.FinishedPage.Color; Caption := TLabel.Create(DonationPanel); + Caption.WordWrap := True; + Caption.Caption := CustomMessage('PleaseDonate'); Caption.Left := 0; Caption.Top := 0; Caption.Width := DonationPanel.Width; Caption.Parent := DonationPanel; - Caption.Caption := ExpandConstant('{cm:PleaseDonate}'); - P := Caption.Top + Caption.Height + ScaleY(12); + P := GetBottom(Caption) + ScaleY(12); CreateDonateLink( 9, 0, P); CreateDonateLink(19, 1, P); CreateDonateLink(29, 2, P); CreateDonateLink(49, 3, P); - Caption := TLabel.Create(DonationPanel); - Caption.Left := 0; - Caption.Top := P + 3 * ScaleY(16) + ScaleY(24); - Caption.Parent := DonationPanel; - Caption.Caption := ExpandConstant('{cm:AboutDonations}'); - Caption.OnClick := @AboutDonationsLinkClick; - LinkLabel(Caption); + AboutDonationCaption := TLabel.Create(DonationPanel); + AboutDonationCaption.Left := 0; + AboutDonationCaption.Top := P + 3 * ScaleY(16) + ScaleY(24); + AboutDonationCaption.Parent := DonationPanel; + AboutDonationCaption.Caption := CustomMessage('AboutDonations'); + AboutDonationCaption.OnClick := @AboutDonationsLinkClick; + LinkLabel(AboutDonationCaption); Image := TBitmapImage.Create(DonationPanel); - LoadEmbededBitmap(Image, '{#PayPalCardImage}'); + LoadEmbededBitmap(Image, '{#PayPalCardImage}', DonationPanel.Color); Image.Cursor := crHand; Image.Parent := DonationPanel; Image.Left := ScaleX(100); Image.Top := P + ScaleX(8); - Image.ReplaceColor := $FCFE04; - Image.ReplaceWithColor := WizardForm.FinishedPage.Color; - Image.Hint := ExpandConstant('{cm:AboutDonations}'); + Image.Hint := CustomMessage('AboutDonations'); Image.ShowHint := True; Image.OnClick := @AboutDonationsLinkClick; + DonationPanel.Height := GetBottom(AboutDonationCaption); + #endif WizardForm.YesRadio.OnClick := @UpdatePostInstallRunCheckboxes; @@ -999,6 +1110,17 @@ begin begin WizardForm.NoIconsCheck.Checked := True; end; + + // 100% images are automatically loaded by + // WizardImageFile and WizardSmallImageFile + if GetScalingFactor > 100 then + begin + LoadEmbededScaledBitmap(WizardForm.WizardBitmapImage, '{#WizardImageFileBase}', 100, 0); + LoadEmbededScaledBitmap(WizardForm.WizardBitmapImage2, '{#WizardImageFileBase}', 100, 0); + LoadEmbededScaledBitmap(WizardForm.WizardSmallBitmapImage, '{#WizardSmallImageFileBase}', 100, 0); + end; + + LoadEmbededScaledBitmap(WizardForm.SelectDirBitmapImage, '{#SelectDirFileBase}', 32, WizardForm.SelectDirPage.Color); end; procedure RegisterPreviousData(PreviousDataKey: Integer); @@ -1029,7 +1151,7 @@ var begin if CurPageID = wpLicense then begin - WizardForm.NextButton.Caption := ExpandConstant('{cm:AcceptButton}') + WizardForm.NextButton.Caption := CustomMessage('AcceptButton') end; if CurPageID = wpSelectDir then @@ -1064,7 +1186,7 @@ begin if WizardForm.YesRadio.Visible then begin WizardForm.FinishedLabel.Caption := - ExpandConstant('{cm:FinishedRestartDragExtLabel}') + NewLine; + CustomMessage('FinishedRestartDragExtLabel') + NewLine; Delta := WizardForm.AdjustLabelHeight(WizardForm.FinishedLabel); WizardForm.YesRadio.Top := WizardForm.YesRadio.Top + Delta; @@ -1084,6 +1206,21 @@ begin OpenGettingStartedCheckbox.Top := LaunchCheckbox.Top + LineHeight; UpdatePostInstallRunCheckboxes(nil); + +#ifdef Donations + if DonationPanel.Visible then + begin + DonationPanel.Top := GetBottom(OpenGettingStartedCheckbox) + ScaleY(12); + + // Hide "about donations" if it does not fit nicely + // (happens on "long" languages, as German) + if (DonationPanel.Top + GetBottom(AboutDonationCaption)) > + (WizardForm.FinishedPage.Height - ScaleY(8)) then + begin + AboutDonationCaption.Visible := False; + end; + end; +#endif end else if CurPageID = wpSetupType then @@ -1098,7 +1235,7 @@ begin if WizardForm.PreparingLabel.Visible then begin WizardForm.PreparingLabel.Caption := - ExpandConstant('{cm:ApplicationsFoundDragExt}'); + CustomMessage('ApplicationsFoundDragExt'); WizardForm.IncTopDecHeight(WizardForm.PreparingMemo, WizardForm.AdjustLabelHeight(WizardForm.PreparingLabel)); end; @@ -1125,11 +1262,11 @@ begin ReportData := Format( 'installed=%d&silent=%d&ver=%s&lang=%s&prevver=%s&', [ Integer(InstallationDone), Integer(WizardSilent), - ExpandConstant('{#VersionOnly}'), ActiveLanguage, + '{#VersionOnly}', ActiveLanguage, PrevVersion]); try - ReportUrl := ExpandConstant('{#WebReport}?') + ReportData; + ReportUrl := '{#WebReport}?' + ReportData; Log('Sending installation report: ' + ReportUrl); @@ -1144,12 +1281,29 @@ begin end; end; -procedure CurStepChanged(CurStep: TSetupStep); +procedure ExecApp(Params: string; ShowCmd: Integer; Wait: TExecWait); var - ErrorCode: Integer; - ShowCmd: Integer; Path: string; + ErrorCode: Integer; +begin + Path := ExpandConstant('{app}\{#MainFileName}'); + ExecAsOriginalUser(Path, Params, '', ShowCmd, Wait, ErrorCode) +end; + +procedure OpenBrowserGettingStarted; +var WebGettingStarted: string; +begin + WebGettingStarted := + ExpandConstant('{#WebGettingStarted}') + PrevVersion + + '&automatic=' + IntToStr(Integer(AutomaticUpdate)); + Log('Opening getting started page: ' + WebGettingStarted); + OpenBrowser(WebGettingStarted); +end; + +procedure CurStepChanged(CurStep: TSetupStep); +var + ShowCmd: Integer; OpenGettingStarted: Boolean; UsageData: string; CanPostInstallRuns: Boolean; @@ -1161,7 +1315,7 @@ begin begin Log('Removing obsolete translations'); WizardForm.StatusLabel.Caption := - ExpandConstant('{cm:RemovingObsoleteTranslations}'); + CustomMessage('RemovingObsoleteTranslations'); ProcessMissingTranslations(@DeleteTranslation); end; InstallationDone := True; @@ -1175,8 +1329,6 @@ begin // installation. double check that ssPostInstall was called if InstallationDone then begin - Path := ExpandConstant('{app}\{#MainFileName}'); - CanPostInstallRuns := (not WizardSilent) and (not WillRestart); OpenGettingStarted := @@ -1184,10 +1336,10 @@ begin OpenGettingStartedCheckbox.Checked; UsageData := '/Usage='; - + // old style counter UsageData := UsageData + Format('TypicalInstallation:%d,', [Integer(IsTypicalInstallation)]); - + // new style counters if not Upgrade then begin @@ -1198,12 +1350,14 @@ begin end else begin - if IsTypicalInstallation then + if AutomaticUpdate then + UsageData := UsageData + 'InstallationsUpgradeAutomatic+,' + else if IsTypicalInstallation then UsageData := UsageData + 'InstallationsUpgradeTypical+,' else UsageData := UsageData + 'InstallationsUpgradeCustom+,'; end; - + if (InitDir <> '') and (InitDir <> WizardForm.DirEdit.Text) then UsageData := UsageData + 'InstallationsCustomDir+,'; if (InitComponents <> '') and (InitComponents <> SaveCheckListBoxState(WizardForm.ComponentsList)) then @@ -1231,16 +1385,24 @@ begin Log('Recording installer usage statistics: ' + UsageData); // make sure we write the counters using the "normal" account // (the account that will be used to report the counters) - ExecAsOriginalUser(Path, UsageData, '', SW_HIDE, ewWaitUntilTerminated, ErrorCode); + ExecApp(UsageData, SW_HIDE, ewWaitUntilTerminated); + + if AutomaticUpdate then + begin + Log('Launching WinSCP after automatic update'); + ExecApp('', SW_SHOWNORMAL, ewNoWait); + if CmdLineParamExists('/OpenGettingStarted') then + begin + OpenBrowserGettingStarted; + end; + end + else if CanPostInstallRuns then begin if OpenGettingStarted then begin - WebGettingStarted := - ExpandConstant('{#WebGettingStarted}') + PrevVersion; - Log('Opening getting started page: ' + WebGettingStarted); - OpenBrowser(WebGettingStarted); + OpenBrowserGettingStarted; end; if LaunchCheckbox.Checked then @@ -1256,7 +1418,7 @@ begin end; Log('Launching WinSCP'); - ExecAsOriginalUser(Path, '', '', ShowCmd, ewNoWait, ErrorCode) + ExecApp('', ShowCmd, ewNoWait); end; end; end; @@ -1286,13 +1448,13 @@ begin if not Upgrade then begin - if IsTypicalInstallation then S2 := ExpandConstant('{cm:TypicalType}') - else S2 := ExpandConstant('{cm:CustomType}'); + if IsTypicalInstallation then S2 := CustomMessage('TypicalType') + else S2 := CustomMessage('CustomType'); end else begin - if IsTypicalInstallation then S2 := ExpandConstant('{cm:TypicalUpgradeType}') - else S2 := ExpandConstant('{cm:CustomUpgradeType}'); + if IsTypicalInstallation then S2 := CustomMessage('TypicalUpgradeType') + else S2 := CustomMessage('CustomUpgradeType'); end; StringChange(S2, '&', ''); S := S + SetupMessage(msgReadyMemoType) + NewLine + Space + S2 + NewLine + NewLine; @@ -1305,10 +1467,10 @@ begin if Length(MemoTasksInfo) > 0 then S := S + MemoTasksInfo + NewLine + NewLine; - S := S + ExpandConstant('{cm:UserSettingsOverview}') + NewLine; + S := S + CustomMessage('UserSettingsOverview') + NewLine; S := S + Space; - if CommanderRadioButton.Checked then S2 := ExpandConstant('{cm:NortonCommanderInterfaceC}') - else S2 := ExpandConstant('{cm:ExplorerInterfaceC}'); + if CommanderRadioButton.Checked then S2 := CustomMessage('NortonCommanderInterfaceC') + else S2 := CustomMessage('ExplorerInterfaceC'); StringChange(S2, '&', ''); S := S + S2; S := S + NewLine; diff --git a/dotnet/App.config b/dotnet/App.config index dc9bbd56..b18b6fef 100644 --- a/dotnet/App.config +++ b/dotnet/App.config @@ -1,9 +1,9 @@  - - - - - - + + + + + + diff --git a/dotnet/CommandExecutionResult.cs b/dotnet/CommandExecutionResult.cs index b3b72bcf..55449cf3 100644 --- a/dotnet/CommandExecutionResult.cs +++ b/dotnet/CommandExecutionResult.cs @@ -10,7 +10,7 @@ public sealed class CommandExecutionResult : OperationResultBase public string Output { get; internal set; } public string ErrorOutput { get; internal set; } public int ExitCode { get; internal set; } - + internal CommandExecutionResult() { } diff --git a/dotnet/FilePermissions.cs b/dotnet/FilePermissions.cs index c15035bb..74025751 100644 --- a/dotnet/FilePermissions.cs +++ b/dotnet/FilePermissions.cs @@ -231,7 +231,7 @@ private static string NumericToText(int numeric) { symbol = UnsetSymbol; } - + buf[i] = symbol; flag <<= 1; diff --git a/dotnet/GlobalSuppressions.cs b/dotnet/GlobalSuppressions.cs index d759a1d4..f3e005ae 100644 --- a/dotnet/GlobalSuppressions.cs +++ b/dotnet/GlobalSuppressions.cs @@ -1,10 +1,10 @@ -// This file is used by Code Analysis to maintain SuppressMessage +// This file is used by Code Analysis to maintain SuppressMessage // attributes that are applied to this project. -// Project-level suppressions either have no target or are given +// Project-level suppressions either have no target or are given // a specific target and scoped to a namespace, type, member, etc. // -// To add a suppression to this file, right-click the message in the -// Error List, point to "Suppress Message(s)", and click +// To add a suppression to this file, right-click the message in the +// Error List, point to "Suppress Message(s)", and click // "In Project Suppression File". // You do not need to add suppressions to this file manually. @@ -143,11 +143,19 @@ [assembly: SuppressMessage("Microsoft.Security", "CA5122:PInvokesShouldNotBeSafeCriticalFxCopRule", Scope = "member", Target = "WinSCP.UnsafeNativeMethods.#MapViewOfFile(Microsoft.Win32.SafeHandles.SafeFileHandle,WinSCP.FileMapAccess,System.UInt32,System.UInt32,System.UIntPtr)")] [assembly: SuppressMessage("Microsoft.Interoperability", "CA1404:CallGetLastErrorImmediatelyAfterPInvoke", Scope = "member", Target = "WinSCP.ExeSessionProcess.#InitializeConsole()")] [assembly: SuppressMessage("Microsoft.Interoperability", "CA1404:CallGetLastErrorImmediatelyAfterPInvoke", Scope = "member", Target = "WinSCP.ExeSessionProcess.#Dispose()")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "WinSCP.Job.#.ctor(WinSCP.Logger,System.String)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "WinSCP.Logger.#LastWin32ErrorMessage()")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "WinSCP.Session.#GuardProcessWithJobInternal")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "WinSCP.Session.#TestHandlesClosedInternal")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "WinSCP.ExeSessionProcess.#TryCreateEvent(System.String,System.Threading.EventWaitHandle&)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Scope = "member", Target = "WinSCP.ExeSessionProcess.#TryCreateEvent(System.String,System.Threading.EventWaitHandle&)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "WinSCP.SessionOptions.#GetPassword()")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", MessageId = "0#", Scope = "member", Target = "WinSCP.SessionOptions.#ParseUrl(System.String)")] +[assembly: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "WinSCP.Job.#.ctor(WinSCP.Logger,System.String)")] +[assembly: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "WinSCP.Logger.#LastWin32ErrorMessage()")] +[assembly: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "WinSCP.Session.#GuardProcessWithJobInternal")] +[assembly: SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "WinSCP.Session.#TestHandlesClosedInternal")] +[assembly: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "WinSCP.ExeSessionProcess.#TryCreateEvent(System.String,System.Threading.EventWaitHandle&)")] +[assembly: SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", MessageId = "System.Runtime.InteropServices.SafeHandle.DangerousGetHandle", Scope = "member", Target = "WinSCP.ExeSessionProcess.#TryCreateEvent(System.String,System.Threading.EventWaitHandle&)")] +[assembly: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "WinSCP.SessionOptions.#GetPassword()")] +[assembly: SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", MessageId = "0#", Scope = "member", Target = "WinSCP.SessionOptions.#ParseUrl(System.String)")] +[assembly: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "WinSCP.ExeSessionProcess+NoopSafeHandle.#.ctor(System.IntPtr)")] +[assembly: SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands", Scope = "member", Target = "WinSCP.ExeSessionProcess.#CreateFileMapping(System.String)")] +[assembly: SuppressMessage("Microsoft.Security", "CA5122:PInvokesShouldNotBeSafeCriticalFxCopRule", Scope = "member", Target = "WinSCP.UnsafeNativeMethods.#GetProcessWindowStation()")] +[assembly: SuppressMessage("Microsoft.Security", "CA5122:PInvokesShouldNotBeSafeCriticalFxCopRule", Scope = "member", Target = "WinSCP.UnsafeNativeMethods.#GetThreadDesktop(System.Int32)")] +[assembly: SuppressMessage("Microsoft.Security", "CA5122:PInvokesShouldNotBeSafeCriticalFxCopRule", Scope = "member", Target = "WinSCP.UnsafeNativeMethods.#GetCurrentThreadId()")] +[assembly: SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "WinSCP.ExeSessionProcess.#CreateFileMapping(System.String)")] +[assembly: SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "WinSCP.Logger.#CreateCounters()")] +[assembly: SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Scope = "member", Target = "WinSCP.SessionLogReader.#LogContents()")] diff --git a/dotnet/RemoteFileInfo.cs b/dotnet/RemoteFileInfo.cs index e9e45371..7a27174e 100644 --- a/dotnet/RemoteFileInfo.cs +++ b/dotnet/RemoteFileInfo.cs @@ -10,6 +10,7 @@ namespace WinSCP public sealed class RemoteFileInfo { public string Name { get; internal set; } + public string FullName { get; internal set; } public char FileType { get; internal set; } public long Length { get; internal set; } public int Length32 { get { return GetLength32(); } set { SetLength32(value); } } @@ -21,6 +22,8 @@ public sealed class RemoteFileInfo public string Group { get; internal set; } public bool IsDirectory { get { return (Char.ToUpper(FileType, CultureInfo.InvariantCulture) == 'D'); } } + public bool IsThisDirectory { get { return IsDirectory && (Name == "."); } } + public bool IsParentDirectory { get { return IsDirectory && (Name == ".."); } } internal RemoteFileInfo() { @@ -30,7 +33,7 @@ public override string ToString() { return Name; } - + private int GetLength32() { if ((Length < int.MinValue) || (Length > int.MaxValue)) diff --git a/dotnet/Session.cs b/dotnet/Session.cs index 06f2d628..b4a6a7b7 100644 --- a/dotnet/Session.cs +++ b/dotnet/Session.cs @@ -8,6 +8,8 @@ using System.Xml; using Microsoft.Win32; using System.Diagnostics; +using System.Security; +using System.Text.RegularExpressions; namespace WinSCP { @@ -31,6 +33,17 @@ public enum SynchronizationCriteria Either = Time | Size, } + [Guid("6C441F60-26AA-44FC-9B93-08884768507B")] + [ComVisible(true)] + [Flags] + public enum EnumerationOptions + { + None = 0x00, + AllDirectories = 0x01, + MatchDirectories = 0x02, + EnumerateDirectories = 0x04, + } + public delegate void OutputDataReceivedEventHandler(object sender, OutputDataReceivedEventArgs e); public delegate void FileTransferredEventHandler(object sender, TransferEventArgs e); public delegate void FileTransferProgressEventHandler(object sender, FileTransferProgressEventArgs e); @@ -43,7 +56,10 @@ public enum SynchronizationCriteria public sealed class Session : IDisposable, IReflect { public string ExecutablePath { get { return _executablePath; } set { CheckNotOpened(); _executablePath = value; } } + public string ExecutableProcessUserName { get { return _executableProcessUserName; } set { CheckNotOpened(); _executableProcessUserName = value; } } + public SecureString ExecutableProcessPassword { get { return _executableProcessPassword; } set { CheckNotOpened(); _executableProcessPassword = value; } } public string AdditionalExecutableArguments { get { return _additionalExecutableArguments; } set { CheckNotOpened(); _additionalExecutableArguments = value; } } + [Obsolete("Use AddRawConfiguration")] public bool DefaultConfiguration { get { return _defaultConfiguration; } set { CheckNotOpened(); _defaultConfiguration = value; } } public bool DisableVersionCheck { get { return _disableVersionCheck; } set { CheckNotOpened(); _disableVersionCheck = value; } } public string IniFilePath { get { return _iniFilePath; } set { CheckNotOpened(); _iniFilePath = value; } } @@ -287,8 +303,15 @@ public RemoteDirectoryInfo ListDirectory(string path) using (ElementLogReader groupReader = _reader.WaitForGroupAndCreateLogReader()) using (ElementLogReader lsReader = groupReader.WaitForNonEmptyElementAndCreateLogReader("ls", LogReadFlags.ThrowFailures)) { - if (lsReader.TryWaitForNonEmptyElement("files", 0)) + string destination = null; + if (lsReader.TryWaitForEmptyElement("destination", 0)) + { + lsReader.GetEmptyElementValue("destination", out destination); + } + if ((destination != null) && lsReader.TryWaitForNonEmptyElement("files", 0)) { + destination = IncludeTrailingSlash(destination); + using (ElementLogReader filesReader = lsReader.CreateLogReader()) { while (filesReader.TryWaitForNonEmptyElement("file", 0)) @@ -303,6 +326,7 @@ public RemoteDirectoryInfo ListDirectory(string path) if (fileReader.GetEmptyElementValue("filename", out value)) { fileInfo.Name = value; + fileInfo.FullName = destination + value; } else { @@ -320,6 +344,9 @@ public RemoteDirectoryInfo ListDirectory(string path) else { // "files" not found, keep reading, we expect "failure" + // This happens only in case of fatal errors, + // in case of normal error (non existing folder), + // the "failure" is caught in "group" already, before the "ls". groupReader.ReadToEnd(LogReadFlags.ThrowFailures); // only if not "failure", throw "files" not found throw SessionLocalException.CreateElementNotFound(this, "files"); @@ -330,6 +357,105 @@ public RemoteDirectoryInfo ListDirectory(string path) } } + private IEnumerable DoEnumerateRemoteFiles(string path, Regex regex, EnumerationOptions options) + { + bool allDirectories = ((options & EnumerationOptions.AllDirectories) == EnumerationOptions.AllDirectories); + bool matchDirectories = ((options & EnumerationOptions.MatchDirectories) == EnumerationOptions.MatchDirectories); + bool enumerateDirectories = ((options & EnumerationOptions.EnumerateDirectories) == EnumerationOptions.EnumerateDirectories); + + if (enumerateDirectories && !allDirectories) + { + throw new ArgumentException("Cannot use enumeration option EnumerateDirectories without AllDirectories"); + } + + if (enumerateDirectories && matchDirectories) + { + throw new ArgumentException("Cannot combine enumeration option EnumerateDirectories with MatchDirectories"); + } + + // Need to use guarded method for the listing, see a comment in EnumerateRemoteFiles + RemoteDirectoryInfo directoryInfo = ListDirectory(path); + + foreach (RemoteFileInfo fileInfo in directoryInfo.Files) + { + if (!fileInfo.IsThisDirectory && !fileInfo.IsParentDirectory) + { + bool matches = regex.IsMatch(fileInfo.Name); + + bool enumerate; + if (!fileInfo.IsDirectory) + { + enumerate = matches; + } + else + { + if (enumerateDirectories) + { + enumerate = true; + } + else if (matchDirectories) + { + enumerate = matches; + } + else + { + enumerate = false; + } + } + + if (enumerate) + { + yield return fileInfo; + } + + + if (fileInfo.IsDirectory && allDirectories) + { + foreach (RemoteFileInfo fileInfo2 in DoEnumerateRemoteFiles(CombinePaths(path, fileInfo.Name), regex, options)) + { + yield return fileInfo2; + } + } + } + } + } + + public IEnumerable EnumerateRemoteFiles(string path, string mask, EnumerationOptions options) + { + // Note that this method exits as soon as DoEnumerateRemoteFiles is entered, + // so the Session object is not guarded during the whole enumeration. + // Though it should not matter as it uses only guarded methods (ListDirectory) + // for the actual work on the session + using (Logger.CreateCallstackAndLock()) + { + CheckOpened(); + + Regex regex = MaskToRegex(mask); + + return DoEnumerateRemoteFiles(path, regex, options); + } + } + + private static Regex MaskToRegex(string mask) + { + if (string.IsNullOrEmpty(mask) || + // *.* has to match even filename without dot + (mask == "*.*")) + { + mask = "*"; + } + + return + new Regex( + '^' + + mask + .Replace(".", "[.]") + .Replace("*", ".*") + .Replace("?", ".") + + '$', + RegexOptions.IgnoreCase); + } + public TransferOperationResult PutFiles(string localPath, string remotePath, bool remove = false, TransferOptions options = null) { using (Logger.CreateCallstackAndLock()) @@ -686,7 +812,7 @@ public bool FileExists(string path) public byte[] CalculateFileChecksum(string algorithm, string path) { - using (Logger.CreateCallstack()) + using (Logger.CreateCallstackAndLock()) { WriteCommand(string.Format(CultureInfo.InvariantCulture, "checksum -- \"{0}\" \"{1}\"", Tools.ArgumentEscape(algorithm), Tools.ArgumentEscape(path))); @@ -773,8 +899,90 @@ public string EscapeFileMask(string fileMask) return path + mask; } + public string TranslateRemotePathToLocal(string remotePath, string remoteRoot, string localRoot) + { + if (remotePath == null) + { + throw new ArgumentNullException("remotePath"); + } + + if (remoteRoot == null) + { + throw new ArgumentNullException("remoteRoot"); + } + + if (localRoot == null) + { + throw new ArgumentNullException("localRoot"); + } + + if ((localRoot.Length > 0) && !localRoot.EndsWith("\\", StringComparison.Ordinal)) + { + localRoot += "\\"; + } + + // not adding to empty root paths, because the path may not even start with slash + if ((remoteRoot.Length > 0) && !remoteRoot.EndsWith("/", StringComparison.Ordinal)) + { + remoteRoot += "/"; + } + + string localPath; + // special case + if (remotePath == remoteRoot) + { + localPath = localRoot; + } + else + { + if (!remotePath.StartsWith(remoteRoot, StringComparison.Ordinal)) + { + throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, "{0} does not start with {1}", remotePath, remoteRoot)); + } + + string subPath = remotePath.Substring(remoteRoot.Length); + // can happen only when remoteRoot is empty + if (subPath.StartsWith("/", StringComparison.Ordinal)) + { + subPath = subPath.Substring(1); + } + subPath = subPath.Replace('/', '\\'); + localPath = localRoot + subPath; + } + return localPath; + } + + public string CombinePaths(string path1, string path2) + { + if (path1 == null) + { + throw new ArgumentNullException("path1"); + } + + if (path2 == null) + { + throw new ArgumentNullException("path2"); + } + + string result; + + if (path2.StartsWith("/", StringComparison.Ordinal)) + { + result = path2; + } + else + { + result = + path1 + + ((path1.Length == 0) || (path2.Length == 0) || path1.EndsWith("/", StringComparison.Ordinal) ? string.Empty : "/") + + path2; + } + return result; + } + public void AddRawConfiguration(string setting, string value) { + CheckNotOpened(); RawConfiguration.Add(setting, value); } @@ -1084,7 +1292,7 @@ private string SessionOptionsToOpenSwitches(SessionOptions sessionOptions) } else { - if (sessionOptions.IsSsh && DefaultConfiguration) + if (sessionOptions.IsSsh && DefaultConfigurationInternal) { throw new ArgumentException("SessionOptions.Protocol is Protocol.Sftp or Protocol.Scp, but SessionOptions.SshHostKeyFingerprint is not set."); } @@ -1099,13 +1307,22 @@ private string SessionOptionsToOpenSwitches(SessionOptions sessionOptions) switches.Add(FormatSwitch("privatekey", sessionOptions.SshPrivateKeyPath)); } - if (!string.IsNullOrEmpty(sessionOptions.SshPrivateKeyPassphrase)) + if (!string.IsNullOrEmpty(sessionOptions.TlsClientCertificatePath)) { - if (string.IsNullOrEmpty(sessionOptions.SshPrivateKeyPath)) + if (!sessionOptions.IsTls) { - throw new ArgumentException("SessionOptions.SshPrivateKeyPassphrase is set, but sessionOptions.SshPrivateKeyPath is not."); + throw new ArgumentException("SessionOptions.TlsClientCertificatePath is set, but neither SessionOptions.FtpSecure nor SessionOptions.WebdavSecure is enabled."); } - switches.Add(FormatSwitch("passphrase", sessionOptions.SshPrivateKeyPassphrase)); + switches.Add(FormatSwitch("clientcert", sessionOptions.TlsClientCertificatePath)); + } + + if (!string.IsNullOrEmpty(sessionOptions.PrivateKeyPassphrase)) + { + if (string.IsNullOrEmpty(sessionOptions.SshPrivateKeyPath) && string.IsNullOrEmpty(sessionOptions.TlsClientCertificatePath)) + { + throw new ArgumentException("SessionOptions.PrivateKeyPassphrase is set, but neither SessionOptions.SshPrivateKeyPath nor SessionOptions.TlsClientCertificatePath is set."); + } + switches.Add(FormatSwitch("passphrase", sessionOptions.PrivateKeyPassphrase)); } if (sessionOptions.FtpSecure != FtpSecure.None) @@ -1121,16 +1338,10 @@ private string SessionOptionsToOpenSwitches(SessionOptions sessionOptions) switches.Add(FormatSwitch("implicit")); break; - case FtpSecure.Explicit: // and ExplicitTls + case FtpSecure.Explicit: switches.Add(FormatSwitch("explicit")); break; -#pragma warning disable 618 - case FtpSecure.ExplicitSsl: -#pragma warning restore 618 - switches.Add(FormatSwitch("explicitssl")); - break; - default: throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "{0} is not supported", sessionOptions.FtpSecure)); } @@ -1139,9 +1350,9 @@ private string SessionOptionsToOpenSwitches(SessionOptions sessionOptions) if (!string.IsNullOrEmpty(sessionOptions.TlsHostCertificateFingerprint) || sessionOptions.GiveUpSecurityAndAcceptAnyTlsHostCertificate) { - if ((sessionOptions.FtpSecure == FtpSecure.None) && !sessionOptions.WebdavSecure) + if (!sessionOptions.IsTls) { - throw new ArgumentException("SessionOptions.TlsHostCertificateFingerprint or SessionOptions.GiveUpSecurityAndAcceptAnyTlsHostCertificate is set, neither SessionOptions.FtpSecure nor SessionOptions.WebdavSecure is enabled."); + throw new ArgumentException("SessionOptions.TlsHostCertificateFingerprint or SessionOptions.GiveUpSecurityAndAcceptAnyTlsHostCertificate is set, but neither SessionOptions.FtpSecure nor SessionOptions.WebdavSecure is enabled."); } string tlsHostCertificateFingerprint = sessionOptions.TlsHostCertificateFingerprint; if (sessionOptions.GiveUpSecurityAndAcceptAnyTlsHostCertificate) @@ -1184,7 +1395,14 @@ private RemoteFileInfo DoGetFileInfo(string path) string value; if (statReader.GetEmptyElementValue("filename", out value)) { - fileInfo.Name = value; + string name = value; + int p = name.LastIndexOf('/'); + if (p >= 0) + { + name = name.Substring(p + 1); + } + fileInfo.Name = name; + fileInfo.FullName = value; } else if (statReader.IsNonEmptyElement("file")) { @@ -1597,6 +1815,11 @@ object IReflect.InvokeMember(string name, BindingFlags invokeAttr, Binder binder } } + if (target == null) + { + throw new ArgumentNullException("target"); + } + Type type = target.GetType(); // RuntimeType.InvokeMember below calls into Binder.BindToMethod (Binder is OleAutBinder) @@ -1620,9 +1843,14 @@ object IReflect.InvokeMember(string name, BindingFlags invokeAttr, Binder binder BindingFlags bindingFlags = invokeAttr | BindingFlags.Instance | BindingFlags.Public; method = type.GetMethod(name, bindingFlags); + if (args == null) + { + throw new ArgumentNullException("args"); + } + if (method != null) { - // MethodInfo.Invoke does not fill-in optional arguments (contrary to RuntimeType.InvokeMember) + // MethodInfo.Invoke does not fill-in optional arguments (contrary to RuntimeType.InvokeMember) ParameterInfo[] parameters = method.GetParameters(); if (args.Length < parameters.Length) { @@ -1706,6 +1934,7 @@ Type IReflect.UnderlyingSystemType internal bool GuardProcessWithJobInternal { get { return _guardProcessWithJob; } set { CheckNotOpened(); _guardProcessWithJob = value; } } internal bool TestHandlesClosedInternal { get; set; } internal Dictionary RawConfiguration { get; private set; } + internal bool DefaultConfigurationInternal { get { return _defaultConfiguration; } } private ExeSessionProcess _process; private DateTime _lastOutput; @@ -1730,5 +1959,7 @@ Type IReflect.UnderlyingSystemType private int _progressHandling; private bool _guardProcessWithJob; private string _homePath; + private string _executableProcessUserName; + private SecureString _executableProcessPassword; } } diff --git a/dotnet/SessionOptions.cs b/dotnet/SessionOptions.cs index 6dc66c8f..105eb46b 100644 --- a/dotnet/SessionOptions.cs +++ b/dotnet/SessionOptions.cs @@ -32,10 +32,6 @@ public enum FtpSecure None = 0, Implicit = 1, Explicit = 3, - [Obsolete("Use FtpSecure.Explicit")] - ExplicitTls = Explicit, - [Obsolete("Use FtpSecure.Explicit")] - ExplicitSsl = 2, } [Guid("2D4EF368-EE80-4C15-AE77-D12AEAF4B00A")] @@ -57,12 +53,14 @@ public SessionOptions() public SecureString SecurePassword { get; set; } public TimeSpan Timeout { get { return _timeout; } set { SetTimeout(value); } } public int TimeoutInMilliseconds { get { return Tools.TimeSpanToMilliseconds(Timeout); } set { Timeout = Tools.MillisecondsToTimeSpan(value); } } + public string PrivateKeyPassphrase { get; set; } // SSH public string SshHostKeyFingerprint { get { return _sshHostKeyFingerprint; } set { SetSshHostKeyFingerprint(value); } } public bool GiveUpSecurityAndAcceptAnySshHostKey { get; set; } public string SshPrivateKeyPath { get; set; } - public string SshPrivateKeyPassphrase { get; set; } + [Obsolete("Use PrivateKeyPassphrase")] + public string SshPrivateKeyPassphrase { get { return PrivateKeyPassphrase; } set { PrivateKeyPassphrase = value; } } // FTP public FtpMode FtpMode { get; set; } @@ -75,6 +73,7 @@ public SessionOptions() // TLS public string TlsHostCertificateFingerprint { get { return _tlsHostCertificateFingerprint; } set { SetHostTlsCertificateFingerprint(value); } } public bool GiveUpSecurityAndAcceptAnyTlsHostCertificate { get; set; } + public string TlsClientCertificatePath { get; set; } public void AddRawSettings(string setting, string value) { @@ -83,6 +82,11 @@ public void AddRawSettings(string setting, string value) public void ParseUrl(string url) { + if (url == null) + { + throw new ArgumentNullException("url"); + } + url = url.Trim(); const string protocolSeparator = "://"; int index = url.IndexOf(protocolSeparator, StringComparison.OrdinalIgnoreCase); @@ -90,37 +94,9 @@ public void ParseUrl(string url) { throw new ArgumentException("Protocol not specified", "url"); } - string protocol = url.Substring(0, index).Trim(); - - FtpSecure = FtpSecure.None; - if (protocol.Equals("sftp", StringComparison.OrdinalIgnoreCase)) - { - Protocol = Protocol.Sftp; - } - else if (protocol.Equals("scp", StringComparison.OrdinalIgnoreCase)) - { - Protocol = Protocol.Scp; - } - else if (protocol.Equals("ftp", StringComparison.OrdinalIgnoreCase)) - { - Protocol = Protocol.Ftp; - } - else if (protocol.Equals("ftps", StringComparison.OrdinalIgnoreCase)) - { - Protocol = Protocol.Ftp; - FtpSecure = FtpSecure.Implicit; - } - else if (protocol.Equals("http", StringComparison.OrdinalIgnoreCase)) - { - Protocol = Protocol.Webdav; - } - else if (protocol.Equals("https", StringComparison.OrdinalIgnoreCase)) - { - Protocol = Protocol.Webdav; - WebdavSecure = true; - } - else + string protocol = url.Substring(0, index).Trim(); + if (!ParseProtocol(protocol)) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Unknown protocol {0}", protocol), "url"); } @@ -241,6 +217,49 @@ public void ParseUrl(string url) } } + private bool ParseProtocol(string protocol) + { + bool result = true; + FtpSecure = FtpSecure.None; + + if (protocol.Equals("sftp", StringComparison.OrdinalIgnoreCase)) + { + Protocol = Protocol.Sftp; + } + else if (protocol.Equals("scp", StringComparison.OrdinalIgnoreCase)) + { + Protocol = Protocol.Scp; + } + else if (protocol.Equals("ftp", StringComparison.OrdinalIgnoreCase)) + { + Protocol = Protocol.Ftp; + } + else if (protocol.Equals("ftps", StringComparison.OrdinalIgnoreCase)) + { + Protocol = Protocol.Ftp; + FtpSecure = FtpSecure.Implicit; + } + else if (protocol.Equals("ftpes", StringComparison.OrdinalIgnoreCase)) + { + Protocol = Protocol.Ftp; + FtpSecure = FtpSecure.Explicit; + } + else if (protocol.Equals("http", StringComparison.OrdinalIgnoreCase)) + { + Protocol = Protocol.Webdav; + } + else if (protocol.Equals("https", StringComparison.OrdinalIgnoreCase)) + { + Protocol = Protocol.Webdav; + WebdavSecure = true; + } + else + { + result = false; + } + return result; + } + private static string EmptyToNull(string s) { if (string.IsNullOrEmpty(s)) @@ -277,6 +296,14 @@ private static string CutToChar(ref string s, char c) internal Dictionary RawSettings { get; private set; } internal bool IsSsh { get { return (Protocol == Protocol.Sftp) || (Protocol == Protocol.Scp); } } + internal bool IsTls { get { return GetIsTls(); } } + + private bool GetIsTls() + { + return + ((Protocol == Protocol.Ftp) && (FtpSecure != FtpSecure.None)) || + ((Protocol == Protocol.Webdav) && WebdavSecure); + } private void SetSshHostKeyFingerprint(string s) { diff --git a/dotnet/TransferOptions.cs b/dotnet/TransferOptions.cs index 79fa3da6..b1b2113a 100644 --- a/dotnet/TransferOptions.cs +++ b/dotnet/TransferOptions.cs @@ -14,6 +14,15 @@ public enum TransferMode Automatic = 2, } + [Guid("E0F3C3C2-C812-48F1-A711-E0BD0F703976")] + [ComVisible(true)] + public enum OverwriteMode + { + Overwrite = 0, + Resume = 1, + Append = 2, + } + [Guid("155B841F-39D4-40C8-BA87-C79675E14CE3")] [ClassInterface(Constants.ClassInterface)] [ComVisible(true)] @@ -25,12 +34,14 @@ public sealed class TransferOptions public string FileMask { get; set; } public TransferResumeSupport ResumeSupport { get; private set; } public int SpeedLimit { get; set; } + public OverwriteMode OverwriteMode { get; set; } public TransferOptions() { PreserveTimestamp = true; TransferMode = TransferMode.Binary; ResumeSupport = new TransferResumeSupport(); + OverwriteMode = OverwriteMode.Overwrite; } internal string ToSwitches() @@ -80,6 +91,21 @@ internal string ToSwitches() switches.Add(Session.FormatSwitch("speed", SpeedLimit.ToString(CultureInfo.InvariantCulture))); } + switch (OverwriteMode) + { + case OverwriteMode.Overwrite: + // noop + break; + case OverwriteMode.Resume: + switches.Add(Session.FormatSwitch("resume")); + break; + case OverwriteMode.Append: + switches.Add(Session.FormatSwitch("append")); + break; + default: + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "{0} is not supported", TransferMode)); + } + return string.Join(" ", switches.ToArray()); } } diff --git a/dotnet/WinSCPnet.csproj b/dotnet/WinSCPnet.csproj index 0903b5e4..aa5a3c10 100644 --- a/dotnet/WinSCPnet.csproj +++ b/dotnet/WinSCPnet.csproj @@ -12,9 +12,9 @@ WinSCPnet v2.0 512 - $(FINAL_PATH)\$(Configuration) - $(INTERM_PATH)\$(Configuration) - $(INTERM_PATH)\$(Configuration) + $(FINAL_PATH)\win32\$(Configuration) + $(INTERM_PATH)\win32\$(Configuration) + $(INTERM_PATH)\win32\$(Configuration) @@ -60,9 +60,11 @@ + + diff --git a/dotnet/WinSCPnet.ruleset b/dotnet/WinSCPnet.ruleset index 6c723bbd..8a6dd89a 100644 --- a/dotnet/WinSCPnet.ruleset +++ b/dotnet/WinSCPnet.ruleset @@ -6,4 +6,4 @@ - \ No newline at end of file + diff --git a/dotnet/internal/CallstackAndLock.cs b/dotnet/internal/CallstackAndLock.cs index 38fd7955..36df0c2a 100644 --- a/dotnet/internal/CallstackAndLock.cs +++ b/dotnet/internal/CallstackAndLock.cs @@ -1,6 +1,4 @@ -using System.Reflection; - -namespace WinSCP +namespace WinSCP { internal class CallstackAndLock : Callstack { diff --git a/dotnet/internal/ConsoleCommStruct.cs b/dotnet/internal/ConsoleCommStruct.cs index 66df54a8..85a33e7f 100644 --- a/dotnet/internal/ConsoleCommStruct.cs +++ b/dotnet/internal/ConsoleCommStruct.cs @@ -64,7 +64,7 @@ public enum ProgressOperation { Copy } public enum ProgressSide { Local, Remote } public ProgressOperation Operation; - public ProgressSide Side; + public ProgressSide Side; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)] public string FileName; @@ -95,7 +95,9 @@ public ConsoleCommStruct(Session session, SafeFileHandle fileMapping) { _session = session; _fileMapping = fileMapping; + _session.Logger.WriteLineLevel(1, "Acquiring communication structure"); _ptr = UnsafeNativeMethods.MapViewOfFile(_fileMapping, FileMapAccess.FileMapAllAccess, 0, 0, UIntPtr.Zero); + _session.Logger.WriteLineLevel(1, "Acquired communication structure"); _payloadPtr = new IntPtr(_ptr.ToInt64() + 12); _header = (ConsoleCommHeader)Marshal.PtrToStructure(_ptr, typeof(ConsoleCommHeader)); } @@ -122,10 +124,12 @@ public void Dispose() } } + _session.Logger.WriteLineLevel(1, "Releasing communication structure"); if (!UnsafeNativeMethods.UnmapViewOfFile(_ptr)) { throw new SessionLocalException(_session, "Cannot release file mapping"); } + _session.Logger.WriteLineLevel(1, "Released communication structure"); _ptr = IntPtr.Zero; } diff --git a/dotnet/internal/CustomLogReader.cs b/dotnet/internal/CustomLogReader.cs index 3e586e8a..99c08e56 100644 --- a/dotnet/internal/CustomLogReader.cs +++ b/dotnet/internal/CustomLogReader.cs @@ -101,6 +101,20 @@ public void WaitForNonEmptyElement(string localName, LogReadFlags flags) } } + public bool TryWaitForEmptyElement(string localName, LogReadFlags flags) + { + bool result = false; + while (!result && Read(flags)) + { + if (IsElement(localName) && + IsEmptyElement) + { + result = true; + } + } + return result; + } + public ElementLogReader CreateLogReader() { return new ElementLogReader(this); diff --git a/dotnet/internal/ExeSessionProcess.cs b/dotnet/internal/ExeSessionProcess.cs index 29f6842b..99a1d15e 100644 --- a/dotnet/internal/ExeSessionProcess.cs +++ b/dotnet/internal/ExeSessionProcess.cs @@ -8,6 +8,8 @@ using Microsoft.Win32.SafeHandles; using System.Runtime.InteropServices; using System.Reflection; +using System.Security.Principal; +using System.Security.AccessControl; namespace WinSCP { @@ -40,7 +42,7 @@ public ExeSessionProcess(Session session) CheckVersion(executablePath, assemblyVersion); string configSwitch; - if (_session.DefaultConfiguration) + if (_session.DefaultConfigurationInternal) { configSwitch = "/ini=nul "; } @@ -83,11 +85,6 @@ public ExeSessionProcess(Session session) _process.StartInfo.Arguments = arguments; _process.StartInfo.UseShellExecute = false; _process.Exited += ProcessExited; - if (_logger.Logging) - { - _process.OutputDataReceived += ProcessOutputDataReceived; - _process.ErrorDataReceived += ProcessErrorDataReceived; - } } } @@ -125,6 +122,47 @@ private void InitializeChild() { _process.StartInfo.Arguments += string.Format(CultureInfo.InvariantCulture, " /console /consoleinstance={0}", _instanceName); + // When running under IIS in "impersonated" mode, the process starts, but does not do anything. + // Supposedly it "displayes" some invisible error message when starting and hangs. + // Running it "as the user" helps, eventhough it already runs as the user. + // These's probably some difference between "run as" and impersonations + if (!string.IsNullOrEmpty(_session.ExecutableProcessUserName)) + { + _logger.WriteLine("Will run process as {0}", _session.ExecutableProcessUserName); + + _process.StartInfo.UserName = _session.ExecutableProcessUserName; + _process.StartInfo.Password = _session.ExecutableProcessPassword; + // One of the hints for resolving C0000142 error (see below) + // was setting this property, so that an environment is correctly loaded, + // so DLLs can be found and loaded. + _process.StartInfo.LoadUserProfile = true; + + // Without granting both window station and desktop access permissions, + // WinSCP process aborts with C0000142 (DLL Initialization Failed) error, + // when "running as user" + _logger.WriteLine("Granting access to window station"); + try + { + IntPtr windowStation = UnsafeNativeMethods.GetProcessWindowStation(); + GrantAccess(windowStation, (int)WindowStationRights.AllAccess); + } + catch (Exception e) + { + throw new SessionLocalException(_session, "Error granting access to window station", e); + } + + _logger.WriteLine("Granting access to desktop"); + try + { + IntPtr desktop = UnsafeNativeMethods.GetThreadDesktop(UnsafeNativeMethods.GetCurrentThreadId()); + GrantAccess(desktop, (int)DesktopRights.AllAccess); + } + catch (Exception e) + { + throw new SessionLocalException(_session, "Error granting access to desktop", e); + } + } + _logger.WriteLine("Starting \"{0}\" {1}", _process.StartInfo.FileName, _process.StartInfo.Arguments); _process.Start(); @@ -137,19 +175,41 @@ private void InitializeChild() } } - private void ProcessExited(object sender, EventArgs e) + // Handles returned by GetProcessWindowStation and GetThreadDesktop should not be closed + internal class NoopSafeHandle : SafeHandle { - _logger.WriteLine("Process {0} exited with exit code {1}", _process.Id, _process.ExitCode); + public NoopSafeHandle(IntPtr handle) : + base(handle, false) + { + } + + public override bool IsInvalid + { + get { return false; } + } + + protected override bool ReleaseHandle() + { + return true; + } } - private void ProcessOutputDataReceived(object sender, DataReceivedEventArgs e) + private void GrantAccess(IntPtr handle, int accessMask) { - _logger.WriteLine("Process output: {0}", e.Data); + using (SafeHandle safeHandle = new NoopSafeHandle(handle)) + { + GenericSecurity security = + new GenericSecurity(false, ResourceType.WindowObject, safeHandle, AccessControlSections.Access); + + security.AddAccessRule( + new GenericAccessRule(new NTAccount(_session.ExecutableProcessUserName), accessMask, AccessControlType.Allow)); + security.Persist(safeHandle, AccessControlSections.Access); + } } - private void ProcessErrorDataReceived(object sender, DataReceivedEventArgs e) + private void ProcessExited(object sender, EventArgs e) { - _logger.WriteLine("Process error output: {0}", e.Data); + _logger.WriteLine("Process {0} exited with exit code {1}", _process.Id, _process.ExitCode); } private bool AbortedOrExited() @@ -176,8 +236,10 @@ private void ProcessEvents() { while (!AbortedOrExited()) { + _logger.WriteLineLevel(1, "Waiting for request event"); if (_requestEvent.WaitOne(100, false)) { + _logger.WriteLineLevel(1, "Got request event"); ProcessEvent(); } } @@ -431,12 +493,43 @@ private void InitializeConsole() } } - private static SafeFileHandle CreateFileMapping(string fileMappingName) + private SafeFileHandle CreateFileMapping(string fileMappingName) { - return - UnsafeNativeMethods.CreateFileMapping( - new SafeFileHandle(new IntPtr(-1), true), IntPtr.Zero, FileMapProtection.PageReadWrite, 0, - ConsoleCommStruct.Size, fileMappingName); + unsafe + { + IntPtr securityAttributesPtr = IntPtr.Zero; + + // We use the EventWaitHandleSecurity only to generate the descriptor binary form + // that does not differ for object types, so we abuse the existing "event handle" implementation, + // not to have to create the file mapping SecurityAttributes via P/Invoke. + + // .NET 4 supports MemoryMappedFile and MemoryMappedFileSecurity natively already + + EventWaitHandleSecurity security = CreateSecurity((EventWaitHandleRights)FileMappingRights.AllAccess); + + if (security != null) + { + SecurityAttributes securityAttributes = new SecurityAttributes(); + securityAttributes.nLength = (uint)Marshal.SizeOf(securityAttributes); + + byte[] descriptorBinaryForm = security.GetSecurityDescriptorBinaryForm(); + byte * buffer = stackalloc byte[descriptorBinaryForm.Length]; + for (int i = 0; i < descriptorBinaryForm.Length; i++) + { + buffer[i] = descriptorBinaryForm[i]; + } + securityAttributes.lpSecurityDescriptor = (IntPtr)buffer; + + int length = Marshal.SizeOf(typeof(SecurityAttributes)); + securityAttributesPtr = Marshal.AllocHGlobal(length); + Marshal.StructureToPtr(securityAttributes, securityAttributesPtr, false); + } + + return + UnsafeNativeMethods.CreateFileMapping( + new SafeFileHandle(new IntPtr(-1), true), securityAttributesPtr, FileMapProtection.PageReadWrite, 0, + ConsoleCommStruct.Size, fileMappingName); + } } private ConsoleCommStruct AcquireCommStruct() @@ -448,11 +541,44 @@ private bool TryCreateEvent(string name, out EventWaitHandle ev) { bool createdNew; _logger.WriteLine("Creating event {0}", name); - ev = new EventWaitHandle(false, EventResetMode.AutoReset, name, out createdNew); - _logger.WriteLine("Created event {0} with handle {1}, new {2}", name, ev.SafeWaitHandle.DangerousGetHandle(), createdNew); + + EventWaitHandleSecurity security = CreateSecurity(EventWaitHandleRights.FullControl); + + ev = new EventWaitHandle(false, EventResetMode.AutoReset, name, out createdNew, security); + _logger.WriteLine( + "Created event {0} with handle {1} with security {2}, new {3}", + name, ev.SafeWaitHandle.DangerousGetHandle(), + (security != null ? security.GetSecurityDescriptorSddlForm(AccessControlSections.All) : "none"), createdNew); return createdNew; } + private EventWaitHandleSecurity CreateSecurity(EventWaitHandleRights eventRights) + { + EventWaitHandleSecurity security = null; + + // When "running as user", we have to grant the target user permissions to the objects (events and file mapping) explicitly + if (!string.IsNullOrEmpty(_session.ExecutableProcessUserName)) + { + security = new EventWaitHandleSecurity(); + IdentityReference si; + try + { + si = new NTAccount(_session.ExecutableProcessUserName); + } + catch (Exception e) + { + throw new SessionLocalException(_session, string.Format(CultureInfo.CurrentCulture, "Error resolving account {0}", _session.ExecutableProcessUserName), e); + } + + EventWaitHandleAccessRule rule = + new EventWaitHandleAccessRule( + si, eventRights, AccessControlType.Allow); + security.AddAccessRule(rule); + } + + return security; + } + private EventWaitHandle CreateEvent(string name) { EventWaitHandle ev; @@ -701,7 +827,7 @@ private void CheckVersion(string exePath, FileVersionInfo assemblyVersion) { throw new SessionLocalException( _session, string.Format(CultureInfo.CurrentCulture, - "The version of {0} ({1}) does not match version of this assembly {2} ({3}). You can disable this check using Session.DisableVersionCheck (not recommended).", + "The version of {0} ({1}) does not match version of this assembly {2} ({3}).", exePath, version.ProductVersion, _logger.GetAssemblyFilePath(), assemblyVersion.ProductVersion)); } } diff --git a/dotnet/internal/GenericSecurity.cs b/dotnet/internal/GenericSecurity.cs new file mode 100644 index 00000000..586ee6e5 --- /dev/null +++ b/dotnet/internal/GenericSecurity.cs @@ -0,0 +1,71 @@ +using System; +using System.Runtime.InteropServices; +using System.Security.AccessControl; +using System.Security.Principal; + +namespace WinSCP +{ + // All the code to manipulate security object is available in .NET framework, + // but its API tries to be type-safe and handle-safe, enforcing special implemnentation + // (to otherwise a generic WinAPI) for each handle type. This is to make sure + // only correct set of permissions can be set for corresponding object types and + // mainly that handles do not leak. + // Hence the AccessRule and NativeObjectSecurity clases are abstract. + // This is the simplest possible implementation that yet allows us to make use + // of the existing .NET implementation, sparing necessity to P/Invoke the underlying WinAPI. + + internal class GenericAccessRule : AccessRule + { + public GenericAccessRule(IdentityReference identity, int accessMask, AccessControlType type) : + base(identity, accessMask, false, InheritanceFlags.None, PropagationFlags.None, type) + { + } + } + + internal class GenericSecurity : NativeObjectSecurity + { + public GenericSecurity(bool isContainer, ResourceType resType, SafeHandle objectHandle, AccessControlSections sectionsRequested) + : base(isContainer, resType, objectHandle, sectionsRequested) + { + } + + new public void Persist(SafeHandle handle, AccessControlSections includeSections) + { + base.Persist(handle, includeSections); + } + + new public void AddAccessRule(AccessRule rule) + { + base.AddAccessRule(rule); + } + + #region NativeObjectSecurity Abstract Method Overrides + + public override Type AccessRightType + { + get { throw new NotImplementedException(); } + } + + public override AccessRule AccessRuleFactory(System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type) + { + throw new NotImplementedException(); + } + + public override Type AccessRuleType + { + get { return typeof(AccessRule); } + } + + public override AuditRule AuditRuleFactory(System.Security.Principal.IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags) + { + throw new NotImplementedException(); + } + + public override Type AuditRuleType + { + get { return typeof(AuditRule); } + } + + #endregion + } +} diff --git a/dotnet/internal/Job.cs b/dotnet/internal/Job.cs index 1827cb4f..8f54969d 100644 --- a/dotnet/internal/Job.cs +++ b/dotnet/internal/Job.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; using System.Runtime.InteropServices; namespace WinSCP diff --git a/dotnet/internal/Logger.cs b/dotnet/internal/Logger.cs index a8c1c010..3a2ec1f7 100644 --- a/dotnet/internal/Logger.cs +++ b/dotnet/internal/Logger.cs @@ -86,13 +86,13 @@ private void AddCounter(PerformanceCounter counter) _performanceCounters.Add(counter); } - public void WriteLine(string message) + public void WriteLine(string line) { lock (_logLock) { if (Logging) { - DoWriteLine(message); + DoWriteLine(line); } } } @@ -108,6 +108,14 @@ public void WriteLine(string format, params object[] args) } } + public void WriteLineLevel(int level, string line) + { + if (LogLevel >= level) + { + WriteLine(line); + } + } + private static int GetThread() { return Thread.CurrentThread.ManagedThreadId; @@ -157,7 +165,7 @@ public void Dispose() public void WriteCounters() { - if (Logging && (_logLevel >= 1)) + if (Logging && (LogLevel >= 1)) { try { @@ -179,7 +187,7 @@ public void WriteCounters() public void WriteProcesses() { - if (Logging && (_logLevel >= 1)) + if (Logging && (LogLevel >= 1)) { try { diff --git a/dotnet/internal/OperationResultGuard.cs b/dotnet/internal/OperationResultGuard.cs index 79696db1..6f6e51bc 100644 --- a/dotnet/internal/OperationResultGuard.cs +++ b/dotnet/internal/OperationResultGuard.cs @@ -14,7 +14,7 @@ public void Dispose() { _session.UnregisterOperationResult(_operationResult); } - + private readonly Session _session; private readonly OperationResultBase _operationResult; } diff --git a/dotnet/internal/PatientFileStream.cs b/dotnet/internal/PatientFileStream.cs new file mode 100644 index 00000000..c0b11e91 --- /dev/null +++ b/dotnet/internal/PatientFileStream.cs @@ -0,0 +1,42 @@ +using System.IO; + +namespace WinSCP +{ + internal class PatientFileStream : FileStream + { + public PatientFileStream(Session session, string path, FileMode mode, FileAccess access, FileShare share) : + base(path, mode, access, share) + { + _session = session; + } + + public override int Read(byte[] array, int offset, int count) + { + int result; + + int interval = 50; + do + { + result = base.Read(array, offset, count); + if (result == 0) + { + _session.Logger.WriteLine("Waiting for log update and dispatching events for {0}", interval); + _session.DispatchEvents(interval); + _session.CheckForTimeout(); + if (interval < 500) + { + interval *= 2; + } + } + } + // We always want to return something. + // No attempt to detect end real of file is needed, + // as we should not try to read beyond the final closing tag + while (result == 0); + + return result; + } + + private Session _session; + } +} diff --git a/dotnet/internal/SessionElementLogReader.cs b/dotnet/internal/SessionElementLogReader.cs index 670392b6..7a0475fa 100644 --- a/dotnet/internal/SessionElementLogReader.cs +++ b/dotnet/internal/SessionElementLogReader.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace WinSCP +namespace WinSCP { internal class SessionElementLogReader : ElementLogReader { diff --git a/dotnet/internal/SessionLogReader.cs b/dotnet/internal/SessionLogReader.cs index 42fe8b1f..0c632098 100644 --- a/dotnet/internal/SessionLogReader.cs +++ b/dotnet/internal/SessionLogReader.cs @@ -77,7 +77,7 @@ public override bool Read(LogReadFlags flags) private bool DoRead() { - int interval = 125; + int interval = 50; bool result; do @@ -120,6 +120,10 @@ private bool DoRead() { Cleanup(); + // We hope this code is not needed anymore. + // keeping it just in case the XmlLogReader by passes + // our override of PatientFileStream.Read uing other read method. +#if !DEBUG if (!_closed) { // If log was not closed, it is likely the XML is not well-formed @@ -129,6 +133,7 @@ private bool DoRead() result = false; } else +#endif { // check if the the root cause was session abort Session.CheckForTimeout(); @@ -165,7 +170,7 @@ private void LogContents() { // alterative to File.ReadAllText with write-sharing // (note that the StreamReader disposes the Stream) - using (StreamReader reader = new StreamReader(OpenLogFileWithWriteSharing(), Encoding.UTF8)) + using (StreamReader reader = new StreamReader(new FileStream(Session.XmlLogPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite), Encoding.UTF8)) { string contents = reader.ReadToEnd(); if ((_logged == null) || (_logged != contents)) @@ -199,7 +204,7 @@ private void OpenLog() // First try to open file without write sharing. // This fails, if WinSCP is still writing to the log file. // This is done only as a way to detect that log file is not complete yet. - _stream = File.Open(Session.XmlLogPath, FileMode.Open, FileAccess.Read, FileShare.Read); + _stream = new PatientFileStream(Session, Session.XmlLogPath, FileMode.Open, FileAccess.Read, FileShare.Read); _closed = true; LogContents(); } @@ -207,7 +212,7 @@ private void OpenLog() { Session.Logger.WriteLine("Opening log with write sharing"); // If log file is still being written to, open it with write sharing - _stream = OpenLogFileWithWriteSharing(); + _stream = new PatientFileStream(Session, Session.XmlLogPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); _closed = false; } @@ -227,11 +232,6 @@ private void OpenLog() } } - private FileStream OpenLogFileWithWriteSharing() - { - return File.Open(Session.XmlLogPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - } - internal override XmlReader Reader { get @@ -246,7 +246,7 @@ internal override XmlReader Reader private int _position; private XmlReader _reader; - private FileStream _stream; + private PatientFileStream _stream; private bool _closed; private string _logged; } diff --git a/dotnet/internal/UnsafeNativeMethods.cs b/dotnet/internal/UnsafeNativeMethods.cs index b14f933d..2d36dadd 100644 --- a/dotnet/internal/UnsafeNativeMethods.cs +++ b/dotnet/internal/UnsafeNativeMethods.cs @@ -82,11 +82,74 @@ public enum FileMapAccess : int FileMapAllAccess = 0x001f, FileMapExecute = 0x0020, } - + + [Flags] + internal enum StandardRights + { + Delete = 0x00010000, + ReadPermissions = 0x00020000, + WritePermissions = 0x00040000, + TakeOwnership = 0x00080000, + Synchronize = 0x00100000, + + Required = Delete | ReadPermissions | WritePermissions | TakeOwnership, + } + + // Isn't this the same as FileMapAccess? + [Flags] + internal enum FileMappingRights + { + FileMapCopy = 1, + FileMapWrite = 2, + FileMapRead = 4, + SectionMapExecute = 8, + SectionExtendSize = 16, + FileMapExecute = 32, + + AllAccess = FileMapCopy | FileMapWrite | FileMapRead | SectionMapExecute | SectionExtendSize | + StandardRights.Required + } + + [Flags] + internal enum DesktopRights + { + ReadObjects = 1, + CreateWindow = 2, + CreateMenu = 4, + HookControl = 8, + JournalRecord = 16, + JournalPlayback = 32, + Enumerate = 64, + WriteObjects = 128, + SwitchDesktop = 256, + + AllAccess = ReadObjects | CreateWindow | CreateMenu | HookControl | + JournalRecord | JournalPlayback | Enumerate | WriteObjects | SwitchDesktop | + StandardRights.Required + } + + [Flags] + internal enum WindowStationRights + { + EnumDesktops = 1, + ReadAttributes = 2, + AccessClipboard = 4, + CreateDesktop = 8, + WriteAttributes = 16, + AccessGlobalAtoms = 32, + ExitWindows = 64, + Enumerate = 256, + ReadScreen = 512, + + AllAccess = EnumDesktops | ReadAttributes | AccessClipboard | CreateDesktop | + WriteAttributes | AccessGlobalAtoms | ExitWindows | Enumerate | ReadScreen | + StandardRights.Required + } + internal static class UnsafeNativeMethods { public const int ERROR_ALREADY_EXISTS = 183; - + [DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)] public static extern SafeFileHandle CreateFileMapping(SafeFileHandle hFile, IntPtr lpAttributes, FileMapProtection fProtect, int dwMaximumSizeHigh, int dwMaximumSizeLow, string lpName); @@ -106,5 +169,14 @@ internal static class UnsafeNativeMethods [DllImport("kernel32", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool SetInformationJobObject(IntPtr hJob, JobObjectInfoType infoType, IntPtr lpJobObjectInfo, uint cbJobObjectInfoLength); + + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr GetProcessWindowStation(); + + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr GetThreadDesktop(int dwThreadId); + + [DllImport("kernel32.dll", SetLastError = true)] + public static extern int GetCurrentThreadId(); } } diff --git a/dotnet/license-dotnet.txt b/dotnet/license-dotnet.txt index 14e2f777..a612ad98 100644 --- a/dotnet/license-dotnet.txt +++ b/dotnet/license-dotnet.txt @@ -35,7 +35,7 @@ Mozilla Public License Version 2.0 means any form of the work other than Source Code Form. 1.7. "Larger Work" - means a work that combines Covered Software with other material, in + means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. 1.8. "License" diff --git a/dotnet/properties/AssemblyInfo.cs b/dotnet/properties/AssemblyInfo.cs index fa7320c0..04ab44b7 100644 --- a/dotnet/properties/AssemblyInfo.cs +++ b/dotnet/properties/AssemblyInfo.cs @@ -2,7 +2,7 @@ using System.Reflection; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following +// General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("WinSCPnet")] @@ -19,9 +19,8 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("a0b93468-d98a-4845-a234-8076229ad93f")] -[assembly: AssemblyVersion("1.2.10.0")] -[assembly: AssemblyFileVersion("1.2.10.0")] -[assembly: AssemblyInformationalVersionAttribute("5.7.6.0")] +[assembly: AssemblyVersion("1.3.0.0")] +[assembly: AssemblyFileVersion("1.3.0.0")] +[assembly: AssemblyInformationalVersionAttribute("5.8.0.0")] [assembly: CLSCompliant(true)] - diff --git a/libs/buildlibs.bat b/libs/buildlibs.bat index dcd00c8d..ae917149 100644 --- a/libs/buildlibs.bat +++ b/libs/buildlibs.bat @@ -1,4 +1,5 @@ @echo off +set BUILDTOOLS_PATH=%1 if not exist lib mkdir lib rem ==== OpenSSL ==== @@ -61,4 +62,23 @@ exit :SKIP_NEON +rem ==== PuTTY VS ==== + +if exist lib\PuTTYVS.lib ( +echo PuTTYVS already built +goto SKIP_PUTTYVS +) + +echo Building PuTTYVS ... +cd puttyvs +call build.bat %BUILDTOOLS_PATH% +cd .. + +if not exist lib\PuTTYVS.lib ( +echo PuTTYVS build failed +exit +) + +:SKIP_PUTTYVS + echo All done diff --git a/libs/cleaninterm.bat b/libs/cleaninterm.bat index 9997850f..a40d9c6e 100644 --- a/libs/cleaninterm.bat +++ b/libs/cleaninterm.bat @@ -18,4 +18,9 @@ rem ==== neon ==== echo Cleaning up neon ... rmdir /s /q neon\tmp +rem ==== PuTTYVS ==== + +echo Cleaning up PuTTYVS ... +rmdir /s /q puttyvs\Release + echo All done diff --git a/libs/neon/src/ne_locks.c b/libs/neon/src/ne_locks.c index 8c171878..e02cabd7 100644 --- a/libs/neon/src/ne_locks.c +++ b/libs/neon/src/ne_locks.c @@ -676,6 +676,36 @@ int ne_lock_discover(ne_session *sess, const char *uri, return ret; } +#ifdef WINSCP + +void * ne_lock_register_discovery(ne_propfind_handler * handler) +{ + struct discover_ctx * ctx = ne_calloc(sizeof *ctx); + + ctx->results = NULL; + ctx->userdata = NULL; + ctx->cdata = ne_buffer_create(); + ctx->phandler = handler; + + ne_propfind_set_private(handler, ld_create, ld_destroy, ctx); + + ne_xml_push_handler(ne_propfind_get_parser(handler), + ld_startelm, ld_cdata, end_element_ldisc, ctx); + + return ctx; +} + +void ne_lock_discovery_free(void * actx) +{ + struct discover_ctx * ctx = actx; + + ne_buffer_destroy(ctx->cdata); + + ne_free(ctx); +} + +#endif + static void add_timeout_header(ne_request *req, long timeout) { if (timeout == NE_TIMEOUT_INFINITE) { diff --git a/libs/neon/src/ne_locks.h b/libs/neon/src/ne_locks.h index db98f113..93bb2ef9 100644 --- a/libs/neon/src/ne_locks.h +++ b/libs/neon/src/ne_locks.h @@ -144,6 +144,15 @@ typedef void (*ne_lock_result)(void *userdata, const struct ne_lock *lock, int ne_lock_discover(ne_session *sess, const char *path, ne_lock_result result, void *userdata); +#ifdef WINSCP + +#include "ne_props.h" + +void * ne_lock_register_discovery(ne_propfind_handler * handler); +void ne_lock_discovery_free(void * ctx); + +#endif + /* The ne_lock_using_* functions should be used before dispatching a * request which modify resources. If a lock store has been * registered with the session associated with the request, and locks diff --git a/libs/neon/src/ne_openssl.c b/libs/neon/src/ne_openssl.c index d27c22a9..247a5576 100644 --- a/libs/neon/src/ne_openssl.c +++ b/libs/neon/src/ne_openssl.c @@ -891,6 +891,29 @@ static ne_ssl_client_cert *parse_client_cert(PKCS12 *p12) } } +#ifdef WINSCP +ne_ssl_client_cert * ne_ssl_clicert_create(X509 * cert, EVP_PKEY * pkey) +{ + /* Copy from parse_client_cert */ + + /* Success - no password needed for decryption. */ + int len = 0; + unsigned char *name; + ne_ssl_client_cert *cc; + + name = X509_alias_get0(cert, &len); + + cc = ne_calloc(sizeof *cc); + cc->pkey = pkey; + cc->decrypted = 1; + if (name && len > 0) + cc->friendly_name = ne_strndup((char *)name, len); + populate_cert(&cc->cert, cert); + + return cc; +} +#endif + ne_ssl_client_cert *ne_ssl_clicert_import(const unsigned char *buffer, size_t buflen) { diff --git a/libs/neon/src/ne_socket.c b/libs/neon/src/ne_socket.c index 3dbcc445..cdf8df88 100644 --- a/libs/neon/src/ne_socket.c +++ b/libs/neon/src/ne_socket.c @@ -333,11 +333,6 @@ int ne_sock_init(void) if (err != 0) { return init_state = -1; } -#ifdef HAVE_SSPI - if (ne_sspi_init() < 0) { - return init_state = -1; - } -#endif #endif #ifdef NE_HAVE_SOCKS @@ -359,6 +354,16 @@ int ne_sock_init(void) #endif init_state = 1; + +#ifdef WIN32 +#ifdef HAVE_SSPI + // This fails on Wine, and we do not want to abort + // whole Neon initialization because of that + if (ne_sspi_init() < 0) { + return -2; + } +#endif +#endif return 0; } diff --git a/libs/neon/src/ne_ssl.h b/libs/neon/src/ne_ssl.h index 685b2c92..13ae0e6d 100644 --- a/libs/neon/src/ne_ssl.h +++ b/libs/neon/src/ne_ssl.h @@ -121,6 +121,12 @@ void ne_ssl_cert_free(ne_ssl_certificate *cert); * "decrypted" state. */ typedef struct ne_ssl_client_cert_s ne_ssl_client_cert; +#ifdef WINSCP +typedef struct x509_st X509; +typedef struct evp_pkey_st EVP_PKEY; +ne_ssl_client_cert * ne_ssl_clicert_create(X509 * cert, EVP_PKEY * pkey); +#endif + /* Read a client certificate (and private key) in PKCS#12 format from * file 'filename'; returns NULL if the file could not be parsed, or * otherwise returning a client certificate object. The returned diff --git a/libs/openssl/Makefile b/libs/openssl/Makefile index cbcd9299..5cdf3533 100644 --- a/libs/openssl/Makefile +++ b/libs/openssl/Makefile @@ -15,7 +15,7 @@ # Set your compiler options CC=bcc32 -CFLAG=-DWIN32_LEAN_AND_MEAN -q -w-ccc -w-rch -w-pia -w-aus -w-par -w-inl -w-eff -w-sus -w-dup -w-spa -w-csu -w-rvl -c -tWC -tWM -DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp -D_strnicmp=strnicmp -O2 -ff -fp -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_CMS -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_KRB5 -DOPENSSL_NO_ENGINE -DOPENSSL_NO_DYNAMIC_ENGINE -DOPENSSL_DISABLE_OLD_DES_SUPPORT -DNO_CHMOD -DOPENSSL_NO_DGRAM -DDOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_WHIRLPOOL +CFLAG=-DWIN32_LEAN_AND_MEAN -q -w-ccc -w-rch -w-pia -w-aus -w-par -w-inl -w-eff -w-sus -w-dup -w-spa -w-csu -w-rvl -c -tWC -tWM -DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp -D_strnicmp=strnicmp -O2 -ff -fp -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_KRB5 -DOPENSSL_NO_ENGINE -DOPENSSL_NO_DYNAMIC_ENGINE -DOPENSSL_DISABLE_OLD_DES_SUPPORT -DNO_CHMOD -DOPENSSL_NO_DGRAM -DDOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_WHIRLPOOL LIB_CFLAG= # The OpenSSL directory @@ -108,6 +108,7 @@ EXHEADER=$(INCO_D)\e_os2.h \ $(INCO_D)\kssl.h $(INCO_D)\srtp.h $(INCO_D)\cmac.h \ $(INCO_D)\srp.h \ $(INCO_D)\ec.h $(INCO_D)\ecdh.h $(INCO_D)\ecdsa.h \ + $(INCO_D)\cms.h E_OBJ=$(OBJ_D)\verify.obj \ $(OBJ_D)\asn1pars.obj $(OBJ_D)\req.obj $(OBJ_D)\dgst.obj \ @@ -135,10 +136,11 @@ SSLOBJ=$(OBJ_D)\s2_meth.obj \ $(OBJ_D)\s23_meth.obj $(OBJ_D)\s23_srvr.obj $(OBJ_D)\s23_clnt.obj \ $(OBJ_D)\s23_lib.obj $(OBJ_D)\s23_pkt.obj $(OBJ_D)\t1_meth.obj \ $(OBJ_D)\t1_srvr.obj $(OBJ_D)\t1_clnt.obj $(OBJ_D)\t1_lib.obj \ - $(OBJ_D)\t1_enc.obj $(OBJ_D)\t1_reneg.obj $(OBJ_D)\tls_srp.obj \ + $(OBJ_D)\t1_enc.obj $(OBJ_D)\t1_reneg.obj $(OBJ_D)\t1_ext.obj \ + $(OBJ_D)\tls_srp.obj \ $(OBJ_D)\d1_meth.obj $(OBJ_D)\d1_srvr.obj $(OBJ_D)\d1_srtp.obj \ $(OBJ_D)\d1_clnt.obj $(OBJ_D)\d1_lib.obj $(OBJ_D)\d1_pkt.obj \ - $(OBJ_D)\d1_both.obj $(OBJ_D)\d1_enc.obj $(OBJ_D)\ssl_lib.obj \ + $(OBJ_D)\d1_both.obj $(OBJ_D)\ssl_lib.obj \ $(OBJ_D)\ssl_err2.obj $(OBJ_D)\ssl_cert.obj $(OBJ_D)\ssl_sess.obj \ $(OBJ_D)\ssl_ciph.obj $(OBJ_D)\ssl_stat.obj $(OBJ_D)\ssl_rsa.obj \ $(OBJ_D)\ssl_asn1.obj $(OBJ_D)\ssl_txt.obj $(OBJ_D)\ssl_algs.obj \ @@ -153,7 +155,8 @@ CRYPTOOBJ=$(OBJ_D)\cryptlib.obj \ $(OBJ_D)\md4_one.obj $(OBJ_D)\md5_dgst.obj $(MD5_ASM_OBJ) \ $(OBJ_D)\md5_one.obj $(OBJ_D)\cbc128.obj $(OBJ_D)\cfb128.obj \ $(OBJ_D)\ofb128.obj $(OBJ_D)\ccm128.obj \ - $(OBJ_D)\xts128.obj $(OBJ_D)\gcm128.obj $(OBJ_D)\ctr128.obj \ + $(OBJ_D)\xts128.obj $(OBJ_D)\wrap128.obj \ + $(OBJ_D)\gcm128.obj $(OBJ_D)\ctr128.obj \ $(OBJ_D)\sha_dgst.obj $(OBJ_D)\sha1dgst.obj \ $(SHA1_ASM_OBJ) $(OBJ_D)\sha_one.obj $(OBJ_D)\sha1_one.obj \ $(OBJ_D)\sha256.obj $(OBJ_D)\sha512.obj $(OBJ_D)\hmac.obj \ @@ -203,7 +206,8 @@ CRYPTOOBJ=$(OBJ_D)\cryptlib.obj \ $(OBJ_D)\dso_win32.obj $(OBJ_D)\dh_asn1.obj \ $(OBJ_D)\dh_gen.obj $(OBJ_D)\dh_key.obj $(OBJ_D)\dh_lib.obj \ $(OBJ_D)\dh_check.obj $(OBJ_D)\dh_err.obj $(OBJ_D)\dh_depr.obj \ - $(OBJ_D)\dh_pmeth.obj $(OBJ_D)\dh_ameth.obj \ + $(OBJ_D)\dh_pmeth.obj $(OBJ_D)\dh_ameth.obj $(OBJ_D)\dh_rfc5114.obj \ + $(OBJ_D)\dh_kdf.obj \ $(OBJ_D)\buffer.obj $(OBJ_D)\buf_err.obj $(OBJ_D)\buf_str.obj \ $(OBJ_D)\bio_lib.obj \ $(OBJ_D)\bio_cb.obj $(OBJ_D)\bio_err.obj $(OBJ_D)\bss_mem.obj \ @@ -222,7 +226,7 @@ CRYPTOOBJ=$(OBJ_D)\cryptlib.obj \ $(OBJ_D)\evp_enc.obj $(OBJ_D)\evp_key.obj $(OBJ_D)\evp_acnf.obj \ $(OBJ_D)\e_des.obj $(OBJ_D)\e_bf.obj $(OBJ_D)\e_idea.obj \ $(OBJ_D)\e_des3.obj $(OBJ_D)\e_rc4.obj $(OBJ_D)\e_aes.obj \ - $(OBJ_D)\e_aes_cbc_hmac_sha1.obj \ + $(OBJ_D)\e_aes_cbc_hmac_sha1.obj $(OBJ_D)\e_aes_cbc_hmac_sha256.obj \ $(OBJ_D)\names.obj $(OBJ_D)\e_xcbc_d.obj $(OBJ_D)\e_rc2.obj \ $(OBJ_D)\e_cast.obj $(OBJ_D)\m_null.obj \ $(OBJ_D)\m_md4.obj $(OBJ_D)\m_md5.obj \ @@ -263,6 +267,7 @@ CRYPTOOBJ=$(OBJ_D)\cryptlib.obj \ $(OBJ_D)\x_pkey.obj $(OBJ_D)\a_bool.obj \ $(OBJ_D)\x_exten.obj $(OBJ_D)\asn_mime.obj $(OBJ_D)\asn1_gen.obj \ $(OBJ_D)\asn1_par.obj $(OBJ_D)\asn1_lib.obj $(OBJ_D)\asn1_err.obj \ + $(OBJ_D)\bio_asn1.obj $(OBJ_D)\bio_ndef.obj \ $(OBJ_D)\a_bytes.obj $(OBJ_D)\a_strnid.obj \ $(OBJ_D)\evp_asn1.obj $(OBJ_D)\asn_pack.obj $(OBJ_D)\p5_pbe.obj \ $(OBJ_D)\p5_pbev2.obj $(OBJ_D)\p8_pkey.obj $(OBJ_D)\asn_moid.obj \ @@ -289,7 +294,8 @@ CRYPTOOBJ=$(OBJ_D)\cryptlib.obj \ $(OBJ_D)\v3_ncons.obj $(OBJ_D)\v3_pcia.obj $(OBJ_D)\v3_pci.obj \ $(OBJ_D)\pcy_cache.obj $(OBJ_D)\pcy_node.obj $(OBJ_D)\pcy_data.obj \ $(OBJ_D)\pcy_map.obj $(OBJ_D)\pcy_tree.obj $(OBJ_D)\pcy_lib.obj \ - $(OBJ_D)\v3_asid.obj $(OBJ_D)\v3_addr.obj $(OBJ_D)\conf_err.obj \ + $(OBJ_D)\v3_asid.obj $(OBJ_D)\v3_addr.obj $(OBJ_D)\v3_scts.obj \ + $(OBJ_D)\conf_err.obj \ $(OBJ_D)\conf_lib.obj $(OBJ_D)\conf_api.obj $(OBJ_D)\conf_def.obj \ $(OBJ_D)\conf_mod.obj $(OBJ_D)\conf_mall.obj $(OBJ_D)\conf_sap.obj \ $(OBJ_D)\pk7_asn1.obj $(OBJ_D)\pk7_lib.obj \ @@ -318,9 +324,14 @@ CRYPTOOBJ=$(OBJ_D)\cryptlib.obj \ $(OBJ_D)\ecp_nistp224.obj $(OBJ_D)\ecp_nistp256.obj $(OBJ_D)\ecp_nistp521.obj \ $(OBJ_D)\ecp_nistputil.obj $(OBJ_D)\ecp_oct.obj $(OBJ_D)\ecp_smpl.obj \ $(OBJ_D)\ech_err.obj $(OBJ_D)\ech_key.obj $(OBJ_D)\ech_lib.obj \ + $(OBJ_D)\ech_kdf.obj \ $(OBJ_D)\ech_ossl.obj $(OBJ_D)\ecs_asn1.obj $(OBJ_D)\ecs_err.obj \ $(OBJ_D)\ecs_lib.obj $(OBJ_D)\ecs_ossl.obj $(OBJ_D)\ecs_sign.obj \ - $(OBJ_D)\ecs_vrf.obj $(OBJ_D)\m_ecdsa.obj + $(OBJ_D)\ecs_vrf.obj $(OBJ_D)\m_ecdsa.obj \ + $(OBJ_D)\cms_sd.obj $(OBJ_D)\cms_err.obj $(OBJ_D)\cms_lib.obj \ + $(OBJ_D)\cms_env.obj $(OBJ_D)\cms_asn1.obj $(OBJ_D)\cms_kari.obj \ + $(OBJ_D)\cms_dd.obj $(OBJ_D)\cms_enc.obj $(OBJ_D)\cms_io.obj \ + $(OBJ_D)\cms_pwri.obj $(OBJ_D)\cms_att.obj ################################################################### all: banner $(TMP_D) $(INCO_D) headers lib @@ -654,6 +665,9 @@ $(INCO_D)\ecdh.h: $(SRC_D)\crypto\ecdh\ecdh.h $(INCO_D)\ecdsa.h: $(SRC_D)\crypto\ecdsa\ecdsa.h $(CP) "$(SRC_D)\crypto\ecdsa\ecdsa.h" "$(INCO_D)\ecdsa.h" +$(INCO_D)\cms.h: $(SRC_D)\crypto\cms\cms.h + $(CP) "$(SRC_D)\crypto\cms\cms.h" "$(INCO_D)\cms.h" + $(OBJ_D)\s2_meth.obj: $(SRC_D)\ssl\s2_meth.c $(CC) -o$(OBJ_D)\s2_meth.obj $(LIB_CFLAGS) -c $(SRC_D)\ssl\s2_meth.c @@ -729,6 +743,9 @@ $(OBJ_D)\t1_enc.obj: $(SRC_D)\ssl\t1_enc.c $(OBJ_D)\t1_reneg.obj: $(SRC_D)\ssl\t1_reneg.c $(CC) -o$(OBJ_D)\t1_reneg.obj $(LIB_CFLAGS) -c $(SRC_D)\ssl\t1_reneg.c +$(OBJ_D)\t1_ext.obj: $(SRC_D)\ssl\t1_ext.c + $(CC) -o$(OBJ_D)\t1_ext.obj $(LIB_CFLAGS) -c $(SRC_D)\ssl\t1_ext.c + $(OBJ_D)\tls_srp.obj: $(SRC_D)\ssl\tls_srp.c $(CC) -o$(OBJ_D)\tls_srp.obj $(LIB_CFLAGS) -c $(SRC_D)\ssl\tls_srp.c @@ -753,9 +770,6 @@ $(OBJ_D)\d1_pkt.obj: $(SRC_D)\ssl\d1_pkt.c $(OBJ_D)\d1_both.obj: $(SRC_D)\ssl\d1_both.c $(CC) -o$(OBJ_D)\d1_both.obj $(LIB_CFLAGS) -c $(SRC_D)\ssl\d1_both.c -$(OBJ_D)\d1_enc.obj: $(SRC_D)\ssl\d1_enc.c - $(CC) -o$(OBJ_D)\d1_enc.obj $(LIB_CFLAGS) -c $(SRC_D)\ssl\d1_enc.c - $(OBJ_D)\ssl_lib.obj: $(SRC_D)\ssl\ssl_lib.c $(CC) -o$(OBJ_D)\ssl_lib.obj $(LIB_CFLAGS) -c $(SRC_D)\ssl\ssl_lib.c @@ -885,6 +899,9 @@ $(OBJ_D)\gcm128.obj: $(SRC_D)\crypto\modes\gcm128.c $(OBJ_D)\xts128.obj: $(SRC_D)\crypto\modes\xts128.c $(CC) -o$(OBJ_D)\xts128.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\modes\xts128.c +$(OBJ_D)\wrap128.obj: $(SRC_D)\crypto\modes\wrap128.c + $(CC) -o$(OBJ_D)\wrap128.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\modes\wrap128.c + $(OBJ_D)\ctr128.obj: $(SRC_D)\crypto\modes\ctr128.c $(CC) -o$(OBJ_D)\ctr128.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\modes\ctr128.c @@ -1305,6 +1322,12 @@ $(OBJ_D)\dh_pmeth.obj: $(SRC_D)\crypto\dh\dh_pmeth.c $(OBJ_D)\dh_ameth.obj: $(SRC_D)\crypto\dh\dh_ameth.c $(CC) -o$(OBJ_D)\dh_ameth.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\dh\dh_ameth.c +$(OBJ_D)\dh_rfc5114.obj: $(SRC_D)\crypto\dh\dh_rfc5114.c + $(CC) -o$(OBJ_D)\dh_rfc5114.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\dh\dh_rfc5114.c + +$(OBJ_D)\dh_kdf.obj: $(SRC_D)\crypto\dh\dh_kdf.c + $(CC) -o$(OBJ_D)\dh_kdf.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\dh\dh_kdf.c + $(OBJ_D)\buffer.obj: $(SRC_D)\crypto\buffer\buffer.c $(CC) -o$(OBJ_D)\buffer.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\buffer\buffer.c @@ -1464,6 +1487,9 @@ $(OBJ_D)\e_aes.obj: $(SRC_D)\crypto\evp\e_aes.c $(OBJ_D)\e_aes_cbc_hmac_sha1.obj: $(SRC_D)\crypto\evp\e_aes_cbc_hmac_sha1.c $(CC) -o$(OBJ_D)\e_aes_cbc_hmac_sha1.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\evp\e_aes_cbc_hmac_sha1.c +$(OBJ_D)\e_aes_cbc_hmac_sha256.obj: $(SRC_D)\crypto\evp\e_aes_cbc_hmac_sha256.c + $(CC) -o$(OBJ_D)\e_aes_cbc_hmac_sha256.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\evp\e_aes_cbc_hmac_sha256.c + $(OBJ_D)\names.obj: $(SRC_D)\crypto\evp\names.c $(CC) -o$(OBJ_D)\names.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\evp\names.c @@ -1779,6 +1805,12 @@ $(OBJ_D)\asn1_lib.obj: $(SRC_D)\crypto\asn1\asn1_lib.c $(OBJ_D)\asn1_err.obj: $(SRC_D)\crypto\asn1\asn1_err.c $(CC) -o$(OBJ_D)\asn1_err.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\asn1\asn1_err.c +$(OBJ_D)\bio_asn1.obj: $(SRC_D)\crypto\asn1\bio_asn1.c + $(CC) -o$(OBJ_D)\bio_asn1.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\asn1\bio_asn1.c + +$(OBJ_D)\bio_ndef.obj: $(SRC_D)\crypto\asn1\bio_ndef.c + $(CC) -o$(OBJ_D)\bio_ndef.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\asn1\bio_ndef.c + $(OBJ_D)\a_bytes.obj: $(SRC_D)\crypto\asn1\a_bytes.c $(CC) -o$(OBJ_D)\a_bytes.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\asn1\a_bytes.c @@ -2016,6 +2048,9 @@ $(OBJ_D)\v3_asid.obj: $(SRC_D)\crypto\x509v3\v3_asid.c $(OBJ_D)\v3_addr.obj: $(SRC_D)\crypto\x509v3\v3_addr.c $(CC) -o$(OBJ_D)\v3_addr.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\x509v3\v3_addr.c +$(OBJ_D)\v3_scts.obj: $(SRC_D)\crypto\x509v3\v3_scts.c + $(CC) -o$(OBJ_D)\v3_scts.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\x509v3\v3_scts.c + $(OBJ_D)\conf_err.obj: $(SRC_D)\crypto\conf\conf_err.c $(CC) -o$(OBJ_D)\conf_err.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\conf\conf_err.c @@ -2268,6 +2303,9 @@ $(OBJ_D)\ech_lib.obj: $(SRC_D)\crypto\ecdh\ech_lib.c $(OBJ_D)\ech_ossl.obj: $(SRC_D)\crypto\ecdh\ech_ossl.c $(CC) -o$(OBJ_D)\ech_ossl.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\ecdh\ech_ossl.c +$(OBJ_D)\ech_kdf.obj: $(SRC_D)\crypto\ecdh\ech_kdf.c + $(CC) -o$(OBJ_D)\ech_kdf.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\ecdh\ech_kdf.c + $(OBJ_D)\ecs_asn1.obj: $(SRC_D)\crypto\ecdsa\ecs_asn1.c $(CC) -o$(OBJ_D)\ecs_asn1.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\ecdsa\ecs_asn1.c @@ -2289,6 +2327,39 @@ $(OBJ_D)\ecs_vrf.obj: $(SRC_D)\crypto\ecdsa\ecs_vrf.c $(OBJ_D)\m_ecdsa.obj: $(SRC_D)\crypto\evp\m_ecdsa.c $(CC) -o$(OBJ_D)\m_ecdsa.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\evp\m_ecdsa.c +$(OBJ_D)\cms_sd.obj: $(SRC_D)\crypto\cms\cms_sd.c + $(CC) -o$(OBJ_D)\cms_sd.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\cms\cms_sd.c + +$(OBJ_D)\cms_err.obj: $(SRC_D)\crypto\cms\cms_err.c + $(CC) -o$(OBJ_D)\cms_err.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\cms\cms_err.c + +$(OBJ_D)\cms_lib.obj: $(SRC_D)\crypto\cms\cms_lib.c + $(CC) -o$(OBJ_D)\cms_lib.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\cms\cms_lib.c + +$(OBJ_D)\cms_env.obj: $(SRC_D)\crypto\cms\cms_env.c + $(CC) -o$(OBJ_D)\cms_env.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\cms\cms_env.c + +$(OBJ_D)\cms_asn1.obj: $(SRC_D)\crypto\cms\cms_asn1.c + $(CC) -o$(OBJ_D)\cms_asn1.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\cms\cms_asn1.c + +$(OBJ_D)\cms_kari.obj: $(SRC_D)\crypto\cms\cms_kari.c + $(CC) -o$(OBJ_D)\cms_kari.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\cms\cms_kari.c + +$(OBJ_D)\cms_dd.obj: $(SRC_D)\crypto\cms\cms_dd.c + $(CC) -o$(OBJ_D)\cms_dd.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\cms\cms_dd.c + +$(OBJ_D)\cms_enc.obj: $(SRC_D)\crypto\cms\cms_enc.c + $(CC) -o$(OBJ_D)\cms_enc.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\cms\cms_enc.c + +$(OBJ_D)\cms_io.obj: $(SRC_D)\crypto\cms\cms_io.c + $(CC) -o$(OBJ_D)\cms_io.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\cms\cms_io.c + +$(OBJ_D)\cms_pwri.obj: $(SRC_D)\crypto\cms\cms_pwri.c + $(CC) -o$(OBJ_D)\cms_pwri.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\cms\cms_pwri.c + +$(OBJ_D)\cms_att.obj: $(SRC_D)\crypto\cms\cms_att.c + $(CC) -o$(OBJ_D)\cms_att.obj $(LIB_CFLAGS) -c $(SRC_D)\crypto\cms\cms_att.c + $(O_SSL): $(SSLOBJ) -if exist $(O_SSL) $(RM) $(O_SSL) $(MKLIB) $(O_SSL) @&&! diff --git a/libs/openssl/crypto/aes/aes_wrap.c b/libs/openssl/crypto/aes/aes_wrap.c index b1ab8e25..b7b64d57 100644 --- a/libs/openssl/crypto/aes/aes_wrap.c +++ b/libs/openssl/crypto/aes/aes_wrap.c @@ -54,197 +54,19 @@ #include "cryptlib.h" #include -#include - -static const unsigned char default_iv[] = { - 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, -}; +#include int AES_wrap_key(AES_KEY *key, const unsigned char *iv, unsigned char *out, const unsigned char *in, unsigned int inlen) { - unsigned char *A, B[16], *R; - unsigned int i, j, t; - if ((inlen & 0x7) || (inlen < 8)) - return -1; - A = B; - t = 1; - memcpy(out + 8, in, inlen); - if (!iv) - iv = default_iv; - - memcpy(A, iv, 8); - - for (j = 0; j < 6; j++) { - R = out + 8; - for (i = 0; i < inlen; i += 8, t++, R += 8) { - memcpy(B + 8, R, 8); - AES_encrypt(B, B, key); - A[7] ^= (unsigned char)(t & 0xff); - if (t > 0xff) { - A[6] ^= (unsigned char)((t >> 8) & 0xff); - A[5] ^= (unsigned char)((t >> 16) & 0xff); - A[4] ^= (unsigned char)((t >> 24) & 0xff); - } - memcpy(R, B + 8, 8); - } - } - memcpy(out, A, 8); - return inlen + 8; + return CRYPTO_128_wrap(key, iv, out, in, inlen, (block128_f) AES_encrypt); } int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, unsigned char *out, const unsigned char *in, unsigned int inlen) { - unsigned char *A, B[16], *R; - unsigned int i, j, t; - inlen -= 8; - if (inlen & 0x7) - return -1; - if (inlen < 8) - return -1; - A = B; - t = 6 * (inlen >> 3); - memcpy(A, in, 8); - memcpy(out, in + 8, inlen); - for (j = 0; j < 6; j++) { - R = out + inlen - 8; - for (i = 0; i < inlen; i += 8, t--, R -= 8) { - A[7] ^= (unsigned char)(t & 0xff); - if (t > 0xff) { - A[6] ^= (unsigned char)((t >> 8) & 0xff); - A[5] ^= (unsigned char)((t >> 16) & 0xff); - A[4] ^= (unsigned char)((t >> 24) & 0xff); - } - memcpy(B + 8, R, 8); - AES_decrypt(B, B, key); - memcpy(R, B + 8, 8); - } - } - if (!iv) - iv = default_iv; - if (memcmp(A, iv, 8)) { - OPENSSL_cleanse(out, inlen); - return 0; - } - return inlen; -} - -#ifdef AES_WRAP_TEST - -int AES_wrap_unwrap_test(const unsigned char *kek, int keybits, - const unsigned char *iv, - const unsigned char *eout, - const unsigned char *key, int keylen) -{ - unsigned char *otmp = NULL, *ptmp = NULL; - int r, ret = 0; - AES_KEY wctx; - otmp = OPENSSL_malloc(keylen + 8); - ptmp = OPENSSL_malloc(keylen); - if (!otmp || !ptmp) - return 0; - if (AES_set_encrypt_key(kek, keybits, &wctx)) - goto err; - r = AES_wrap_key(&wctx, iv, otmp, key, keylen); - if (r <= 0) - goto err; - - if (eout && memcmp(eout, otmp, keylen)) - goto err; - - if (AES_set_decrypt_key(kek, keybits, &wctx)) - goto err; - r = AES_unwrap_key(&wctx, iv, ptmp, otmp, r); - - if (memcmp(key, ptmp, keylen)) - goto err; - - ret = 1; - - err: - if (otmp) - OPENSSL_free(otmp); - if (ptmp) - OPENSSL_free(ptmp); - - return ret; - + return CRYPTO_128_unwrap(key, iv, out, in, inlen, + (block128_f) AES_decrypt); } - -int main(int argc, char **argv) -{ - - static const unsigned char kek[] = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f - }; - - static const unsigned char key[] = { - 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, - 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f - }; - - static const unsigned char e1[] = { - 0x1f, 0xa6, 0x8b, 0x0a, 0x81, 0x12, 0xb4, 0x47, - 0xae, 0xf3, 0x4b, 0xd8, 0xfb, 0x5a, 0x7b, 0x82, - 0x9d, 0x3e, 0x86, 0x23, 0x71, 0xd2, 0xcf, 0xe5 - }; - - static const unsigned char e2[] = { - 0x96, 0x77, 0x8b, 0x25, 0xae, 0x6c, 0xa4, 0x35, - 0xf9, 0x2b, 0x5b, 0x97, 0xc0, 0x50, 0xae, 0xd2, - 0x46, 0x8a, 0xb8, 0xa1, 0x7a, 0xd8, 0x4e, 0x5d - }; - - static const unsigned char e3[] = { - 0x64, 0xe8, 0xc3, 0xf9, 0xce, 0x0f, 0x5b, 0xa2, - 0x63, 0xe9, 0x77, 0x79, 0x05, 0x81, 0x8a, 0x2a, - 0x93, 0xc8, 0x19, 0x1e, 0x7d, 0x6e, 0x8a, 0xe7 - }; - - static const unsigned char e4[] = { - 0x03, 0x1d, 0x33, 0x26, 0x4e, 0x15, 0xd3, 0x32, - 0x68, 0xf2, 0x4e, 0xc2, 0x60, 0x74, 0x3e, 0xdc, - 0xe1, 0xc6, 0xc7, 0xdd, 0xee, 0x72, 0x5a, 0x93, - 0x6b, 0xa8, 0x14, 0x91, 0x5c, 0x67, 0x62, 0xd2 - }; - - static const unsigned char e5[] = { - 0xa8, 0xf9, 0xbc, 0x16, 0x12, 0xc6, 0x8b, 0x3f, - 0xf6, 0xe6, 0xf4, 0xfb, 0xe3, 0x0e, 0x71, 0xe4, - 0x76, 0x9c, 0x8b, 0x80, 0xa3, 0x2c, 0xb8, 0x95, - 0x8c, 0xd5, 0xd1, 0x7d, 0x6b, 0x25, 0x4d, 0xa1 - }; - - static const unsigned char e6[] = { - 0x28, 0xc9, 0xf4, 0x04, 0xc4, 0xb8, 0x10, 0xf4, - 0xcb, 0xcc, 0xb3, 0x5c, 0xfb, 0x87, 0xf8, 0x26, - 0x3f, 0x57, 0x86, 0xe2, 0xd8, 0x0e, 0xd3, 0x26, - 0xcb, 0xc7, 0xf0, 0xe7, 0x1a, 0x99, 0xf4, 0x3b, - 0xfb, 0x98, 0x8b, 0x9b, 0x7a, 0x02, 0xdd, 0x21 - }; - - AES_KEY wctx, xctx; - int ret; - ret = AES_wrap_unwrap_test(kek, 128, NULL, e1, key, 16); - fprintf(stderr, "Key test result %d\n", ret); - ret = AES_wrap_unwrap_test(kek, 192, NULL, e2, key, 16); - fprintf(stderr, "Key test result %d\n", ret); - ret = AES_wrap_unwrap_test(kek, 256, NULL, e3, key, 16); - fprintf(stderr, "Key test result %d\n", ret); - ret = AES_wrap_unwrap_test(kek, 192, NULL, e4, key, 24); - fprintf(stderr, "Key test result %d\n", ret); - ret = AES_wrap_unwrap_test(kek, 256, NULL, e5, key, 24); - fprintf(stderr, "Key test result %d\n", ret); - ret = AES_wrap_unwrap_test(kek, 256, NULL, e6, key, 32); - fprintf(stderr, "Key test result %d\n", ret); -} - -#endif diff --git a/libs/openssl/crypto/arm64cpuid.S b/libs/openssl/crypto/arm64cpuid.S new file mode 100644 index 00000000..4778ac1d --- /dev/null +++ b/libs/openssl/crypto/arm64cpuid.S @@ -0,0 +1,46 @@ +#include "arm_arch.h" + +.text +.arch armv8-a+crypto + +.align 5 +.global _armv7_neon_probe +.type _armv7_neon_probe,%function +_armv7_neon_probe: + orr v15.16b, v15.16b, v15.16b + ret +.size _armv7_neon_probe,.-_armv7_neon_probe + +.global _armv7_tick +.type _armv7_tick,%function +_armv7_tick: + mrs x0, CNTVCT_EL0 + ret +.size _armv7_tick,.-_armv7_tick + +.global _armv8_aes_probe +.type _armv8_aes_probe,%function +_armv8_aes_probe: + aese v0.16b, v0.16b + ret +.size _armv8_aes_probe,.-_armv8_aes_probe + +.global _armv8_sha1_probe +.type _armv8_sha1_probe,%function +_armv8_sha1_probe: + sha1h s0, s0 + ret +.size _armv8_sha1_probe,.-_armv8_sha1_probe + +.global _armv8_sha256_probe +.type _armv8_sha256_probe,%function +_armv8_sha256_probe: + sha256su0 v0.4s, v0.4s + ret +.size _armv8_sha256_probe,.-_armv8_sha256_probe +.global _armv8_pmull_probe +.type _armv8_pmull_probe,%function +_armv8_pmull_probe: + pmull v0.1q, v0.1d, v0.1d + ret +.size _armv8_pmull_probe,.-_armv8_pmull_probe diff --git a/libs/openssl/crypto/arm_arch.h b/libs/openssl/crypto/arm_arch.h index b6543716..9d6e5888 100644 --- a/libs/openssl/crypto/arm_arch.h +++ b/libs/openssl/crypto/arm_arch.h @@ -10,13 +10,24 @@ # define __ARMEL__ # endif # elif defined(__GNUC__) +# if defined(__aarch64__) +# define __ARM_ARCH__ 8 +# if __BYTE_ORDER__==__ORDER_BIG_ENDIAN__ +# define __ARMEB__ +# else +# define __ARMEL__ +# endif /* * Why doesn't gcc define __ARM_ARCH__? Instead it defines * bunch of below macros. See all_architectires[] table in * gcc/config/arm/arm.c. On a side note it defines * __ARMEL__/__ARMEB__ for little-/big-endian. */ -# if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \ +# elif defined(__ARM_ARCH) +# define __ARM_ARCH__ __ARM_ARCH +# elif defined(__ARM_ARCH_8A__) +# define __ARM_ARCH__ 8 +# elif defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \ defined(__ARM_ARCH_7R__)|| defined(__ARM_ARCH_7M__) || \ defined(__ARM_ARCH_7EM__) # define __ARM_ARCH__ 7 @@ -41,11 +52,27 @@ # include # endif +# if !defined(__ARM_MAX_ARCH__) +# define __ARM_MAX_ARCH__ __ARM_ARCH__ +# endif + +# if __ARM_MAX_ARCH__<__ARM_ARCH__ +# error "__ARM_MAX_ARCH__ can't be less than __ARM_ARCH__" +# elif __ARM_MAX_ARCH__!=__ARM_ARCH__ +# if __ARM_ARCH__<7 && __ARM_MAX_ARCH__>=7 && defined(__ARMEB__) +# error "can't build universal big-endian binary" +# endif +# endif + # if !__ASSEMBLER__ extern unsigned int OPENSSL_armcap_P; - -# define ARMV7_NEON (1<<0) -# define ARMV7_TICK (1<<1) # endif +# define ARMV7_NEON (1<<0) +# define ARMV7_TICK (1<<1) +# define ARMV8_AES (1<<2) +# define ARMV8_SHA1 (1<<3) +# define ARMV8_SHA256 (1<<4) +# define ARMV8_PMULL (1<<5) + #endif diff --git a/libs/openssl/crypto/armcap.c b/libs/openssl/crypto/armcap.c index 28522ea8..356fa152 100644 --- a/libs/openssl/crypto/armcap.c +++ b/libs/openssl/crypto/armcap.c @@ -7,8 +7,18 @@ #include "arm_arch.h" -unsigned int OPENSSL_armcap_P; +unsigned int OPENSSL_armcap_P = 0; +#if __ARM_MAX_ARCH__<7 +void OPENSSL_cpuid_setup(void) +{ +} + +unsigned long OPENSSL_rdtsc(void) +{ + return 0; +} +#else static sigset_t all_masked; static sigjmp_buf ill_jmp; @@ -22,9 +32,13 @@ static void ill_handler(int sig) * ARM compilers support inline assembler... */ void _armv7_neon_probe(void); -unsigned int _armv7_tick(void); +void _armv8_aes_probe(void); +void _armv8_sha1_probe(void); +void _armv8_sha256_probe(void); +void _armv8_pmull_probe(void); +unsigned long _armv7_tick(void); -unsigned int OPENSSL_rdtsc(void) +unsigned long OPENSSL_rdtsc(void) { if (OPENSSL_armcap_P & ARMV7_TICK) return _armv7_tick(); @@ -32,9 +46,44 @@ unsigned int OPENSSL_rdtsc(void) return 0; } -#if defined(__GNUC__) && __GNUC__>=2 +/* + * Use a weak reference to getauxval() so we can use it if it is available but + * don't break the build if it is not. + */ +# if defined(__GNUC__) && __GNUC__>=2 void OPENSSL_cpuid_setup(void) __attribute__ ((constructor)); -#endif +extern unsigned long getauxval(unsigned long type) __attribute__ ((weak)); +# else +static unsigned long (*getauxval) (unsigned long) = NULL; +# endif + +/* + * ARM puts the the feature bits for Crypto Extensions in AT_HWCAP2, whereas + * AArch64 used AT_HWCAP. + */ +# if defined(__arm__) || defined (__arm) +# define HWCAP 16 + /* AT_HWCAP */ +# define HWCAP_NEON (1 << 12) + +# define HWCAP_CE 26 + /* AT_HWCAP2 */ +# define HWCAP_CE_AES (1 << 0) +# define HWCAP_CE_PMULL (1 << 1) +# define HWCAP_CE_SHA1 (1 << 2) +# define HWCAP_CE_SHA256 (1 << 3) +# elif defined(__aarch64__) +# define HWCAP 16 + /* AT_HWCAP */ +# define HWCAP_NEON (1 << 1) + +# define HWCAP_CE HWCAP +# define HWCAP_CE_AES (1 << 3) +# define HWCAP_CE_PMULL (1 << 4) +# define HWCAP_CE_SHA1 (1 << 5) +# define HWCAP_CE_SHA256 (1 << 6) +# endif + void OPENSSL_cpuid_setup(void) { char *e; @@ -47,7 +96,7 @@ void OPENSSL_cpuid_setup(void) trigger = 1; if ((e = getenv("OPENSSL_armcap"))) { - OPENSSL_armcap_P = strtoul(e, NULL, 0); + OPENSSL_armcap_P = (unsigned int)strtoul(e, NULL, 0); return; } @@ -67,9 +116,42 @@ void OPENSSL_cpuid_setup(void) sigprocmask(SIG_SETMASK, &ill_act.sa_mask, &oset); sigaction(SIGILL, &ill_act, &ill_oact); - if (sigsetjmp(ill_jmp, 1) == 0) { + if (getauxval != NULL) { + if (getauxval(HWCAP) & HWCAP_NEON) { + unsigned long hwcap = getauxval(HWCAP_CE); + + OPENSSL_armcap_P |= ARMV7_NEON; + + if (hwcap & HWCAP_CE_AES) + OPENSSL_armcap_P |= ARMV8_AES; + + if (hwcap & HWCAP_CE_PMULL) + OPENSSL_armcap_P |= ARMV8_PMULL; + + if (hwcap & HWCAP_CE_SHA1) + OPENSSL_armcap_P |= ARMV8_SHA1; + + if (hwcap & HWCAP_CE_SHA256) + OPENSSL_armcap_P |= ARMV8_SHA256; + } + } else if (sigsetjmp(ill_jmp, 1) == 0) { _armv7_neon_probe(); OPENSSL_armcap_P |= ARMV7_NEON; + if (sigsetjmp(ill_jmp, 1) == 0) { + _armv8_pmull_probe(); + OPENSSL_armcap_P |= ARMV8_PMULL | ARMV8_AES; + } else if (sigsetjmp(ill_jmp, 1) == 0) { + _armv8_aes_probe(); + OPENSSL_armcap_P |= ARMV8_AES; + } + if (sigsetjmp(ill_jmp, 1) == 0) { + _armv8_sha1_probe(); + OPENSSL_armcap_P |= ARMV8_SHA1; + } + if (sigsetjmp(ill_jmp, 1) == 0) { + _armv8_sha256_probe(); + OPENSSL_armcap_P |= ARMV8_SHA256; + } } if (sigsetjmp(ill_jmp, 1) == 0) { _armv7_tick(); @@ -79,3 +161,4 @@ void OPENSSL_cpuid_setup(void) sigaction(SIGILL, &ill_oact, NULL); sigprocmask(SIG_SETMASK, &oset, NULL); } +#endif diff --git a/libs/openssl/crypto/armv4cpuid.S b/libs/openssl/crypto/armv4cpuid.S index 2d618dea..65010ae4 100644 --- a/libs/openssl/crypto/armv4cpuid.S +++ b/libs/openssl/crypto/armv4cpuid.S @@ -4,20 +4,6 @@ .code 32 .align 5 -.global _armv7_neon_probe -.type _armv7_neon_probe,%function -_armv7_neon_probe: - .word 0xf26ee1fe @ vorr q15,q15,q15 - .word 0xe12fff1e @ bx lr -.size _armv7_neon_probe,.-_armv7_neon_probe - -.global _armv7_tick -.type _armv7_tick,%function -_armv7_tick: - mrc p15,0,r0,c9,c13,0 - .word 0xe12fff1e @ bx lr -.size _armv7_tick,.-_armv7_tick - .global OPENSSL_atomic_add .type OPENSSL_atomic_add,%function OPENSSL_atomic_add: @@ -28,7 +14,7 @@ OPENSSL_atomic_add: cmp r2,#0 bne .Ladd mov r0,r3 - .word 0xe12fff1e @ bx lr + bx lr #else stmdb sp!,{r4-r6,lr} ldr r2,.Lspinlock @@ -81,62 +67,131 @@ OPENSSL_cleanse: adds r1,r1,#4 bne .Little .Lcleanse_done: +#if __ARM_ARCH__>=5 + bx lr +#else tst lr,#1 moveq pc,lr .word 0xe12fff1e @ bx lr +#endif .size OPENSSL_cleanse,.-OPENSSL_cleanse +#if __ARM_MAX_ARCH__>=7 +.arch armv7-a +.fpu neon + +.align 5 +.global _armv7_neon_probe +.type _armv7_neon_probe,%function +_armv7_neon_probe: + vorr q0,q0,q0 + bx lr +.size _armv7_neon_probe,.-_armv7_neon_probe + +.global _armv7_tick +.type _armv7_tick,%function +_armv7_tick: + mrrc p15,1,r0,r1,c14 @ CNTVCT + bx lr +.size _armv7_tick,.-_armv7_tick + +.global _armv8_aes_probe +.type _armv8_aes_probe,%function +_armv8_aes_probe: + .byte 0x00,0x03,0xb0,0xf3 @ aese.8 q0,q0 + bx lr +.size _armv8_aes_probe,.-_armv8_aes_probe + +.global _armv8_sha1_probe +.type _armv8_sha1_probe,%function +_armv8_sha1_probe: + .byte 0x40,0x0c,0x00,0xf2 @ sha1c.32 q0,q0,q0 + bx lr +.size _armv8_sha1_probe,.-_armv8_sha1_probe + +.global _armv8_sha256_probe +.type _armv8_sha256_probe,%function +_armv8_sha256_probe: + .byte 0x40,0x0c,0x00,0xf3 @ sha256h.32 q0,q0,q0 + bx lr +.size _armv8_sha256_probe,.-_armv8_sha256_probe +.global _armv8_pmull_probe +.type _armv8_pmull_probe,%function +_armv8_pmull_probe: + .byte 0x00,0x0e,0xa0,0xf2 @ vmull.p64 q0,d0,d0 + bx lr +.size _armv8_pmull_probe,.-_armv8_pmull_probe +#endif + .global OPENSSL_wipe_cpu .type OPENSSL_wipe_cpu,%function OPENSSL_wipe_cpu: +#if __ARM_MAX_ARCH__>=7 ldr r0,.LOPENSSL_armcap adr r1,.LOPENSSL_armcap ldr r0,[r1,r0] +#endif eor r2,r2,r2 eor r3,r3,r3 eor ip,ip,ip +#if __ARM_MAX_ARCH__>=7 tst r0,#1 beq .Lwipe_done - .word 0xf3000150 @ veor q0, q0, q0 - .word 0xf3022152 @ veor q1, q1, q1 - .word 0xf3044154 @ veor q2, q2, q2 - .word 0xf3066156 @ veor q3, q3, q3 - .word 0xf34001f0 @ veor q8, q8, q8 - .word 0xf34221f2 @ veor q9, q9, q9 - .word 0xf34441f4 @ veor q10, q10, q10 - .word 0xf34661f6 @ veor q11, q11, q11 - .word 0xf34881f8 @ veor q12, q12, q12 - .word 0xf34aa1fa @ veor q13, q13, q13 - .word 0xf34cc1fc @ veor q14, q14, q14 - .word 0xf34ee1fe @ veor q15, q15, q15 + veor q0, q0, q0 + veor q1, q1, q1 + veor q2, q2, q2 + veor q3, q3, q3 + veor q8, q8, q8 + veor q9, q9, q9 + veor q10, q10, q10 + veor q11, q11, q11 + veor q12, q12, q12 + veor q13, q13, q13 + veor q14, q14, q14 + veor q15, q15, q15 .Lwipe_done: +#endif mov r0,sp +#if __ARM_ARCH__>=5 + bx lr +#else tst lr,#1 moveq pc,lr .word 0xe12fff1e @ bx lr +#endif .size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu .global OPENSSL_instrument_bus .type OPENSSL_instrument_bus,%function OPENSSL_instrument_bus: eor r0,r0,r0 +#if __ARM_ARCH__>=5 + bx lr +#else tst lr,#1 moveq pc,lr .word 0xe12fff1e @ bx lr +#endif .size OPENSSL_instrument_bus,.-OPENSSL_instrument_bus .global OPENSSL_instrument_bus2 .type OPENSSL_instrument_bus2,%function OPENSSL_instrument_bus2: eor r0,r0,r0 +#if __ARM_ARCH__>=5 + bx lr +#else tst lr,#1 moveq pc,lr .word 0xe12fff1e @ bx lr +#endif .size OPENSSL_instrument_bus2,.-OPENSSL_instrument_bus2 .align 5 +#if __ARM_MAX_ARCH__>=7 .LOPENSSL_armcap: .word OPENSSL_armcap_P-.LOPENSSL_armcap +#endif #if __ARM_ARCH__>=6 .align 5 #else diff --git a/libs/openssl/crypto/asn1/a_gentm.c b/libs/openssl/crypto/asn1/a_gentm.c index 8b3ef716..fa76dcac 100644 --- a/libs/openssl/crypto/asn1/a_gentm.c +++ b/libs/openssl/crypto/asn1/a_gentm.c @@ -65,6 +65,7 @@ #include "cryptlib.h" #include "o_time.h" #include +#include "asn1_locl.h" #if 0 @@ -117,7 +118,7 @@ ASN1_GENERALIZEDTIME *d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, #endif -int ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *d) +int asn1_generalizedtime_to_tm(struct tm *tm, const ASN1_GENERALIZEDTIME *d) { static const int min[9] = { 0, 0, 1, 1, 0, 0, 0, 0, 0 }; static const int max[9] = { 99, 99, 12, 31, 23, 59, 59, 12, 59 }; @@ -139,6 +140,8 @@ int ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *d) for (i = 0; i < 7; i++) { if ((i == 6) && ((a[o] == 'Z') || (a[o] == '+') || (a[o] == '-'))) { i++; + if (tm) + tm->tm_sec = 0; break; } if ((a[o] < '0') || (a[o] > '9')) @@ -155,6 +158,31 @@ int ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *d) if ((n < min[i]) || (n > max[i])) goto err; + if (tm) { + switch (i) { + case 0: + tm->tm_year = n * 100 - 1900; + break; + case 1: + tm->tm_year += n; + break; + case 2: + tm->tm_mon = n - 1; + break; + case 3: + tm->tm_mday = n; + break; + case 4: + tm->tm_hour = n; + break; + case 5: + tm->tm_min = n; + break; + case 6: + tm->tm_sec = n; + break; + } + } } /* * Optional fractional seconds: decimal point followed by one or more @@ -174,6 +202,7 @@ int ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *d) if (a[o] == 'Z') o++; else if ((a[o] == '+') || (a[o] == '-')) { + int offsign = a[o] == '-' ? -1 : 1, offset = 0; o++; if (o + 4 > l) goto err; @@ -187,9 +216,17 @@ int ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *d) n = (n * 10) + a[o] - '0'; if ((n < min[i]) || (n > max[i])) goto err; + if (tm) { + if (i == 7) + offset = n * 3600; + else if (i == 8) + offset += n * 60; + } o++; } - } else { + if (offset && !OPENSSL_gmtime_adj(tm, 0, offset * offsign)) + return 0; + } else if (a[o]) { /* Missing time zone information. */ goto err; } @@ -198,6 +235,11 @@ int ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *d) return (0); } +int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *d) +{ + return asn1_generalizedtime_to_tm(NULL, d); +} + int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str) { ASN1_GENERALIZEDTIME t; diff --git a/libs/openssl/crypto/asn1/a_time.c b/libs/openssl/crypto/asn1/a_time.c index c81f0de5..fcb2d565 100644 --- a/libs/openssl/crypto/asn1/a_time.c +++ b/libs/openssl/crypto/asn1/a_time.c @@ -66,6 +66,7 @@ #include "cryptlib.h" #include "o_time.h" #include +#include "asn1_locl.h" IMPLEMENT_ASN1_MSTRING(ASN1_TIME, B_ASN1_TIME) @@ -196,3 +197,32 @@ int ASN1_TIME_set_string(ASN1_TIME *s, const char *str) return 1; } + +static int asn1_time_to_tm(struct tm *tm, const ASN1_TIME *t) +{ + if (t == NULL) { + time_t now_t; + time(&now_t); + if (OPENSSL_gmtime(&now_t, tm)) + return 1; + return 0; + } + + if (t->type == V_ASN1_UTCTIME) + return asn1_utctime_to_tm(tm, t); + else if (t->type == V_ASN1_GENERALIZEDTIME) + return asn1_generalizedtime_to_tm(tm, t); + + return 0; +} + +int ASN1_TIME_diff(int *pday, int *psec, + const ASN1_TIME *from, const ASN1_TIME *to) +{ + struct tm tm_from, tm_to; + if (!asn1_time_to_tm(&tm_from, from)) + return 0; + if (!asn1_time_to_tm(&tm_to, to)) + return 0; + return OPENSSL_gmtime_diff(pday, psec, &tm_from, &tm_to); +} diff --git a/libs/openssl/crypto/asn1/a_utctm.c b/libs/openssl/crypto/asn1/a_utctm.c index 179de6d3..724a10be 100644 --- a/libs/openssl/crypto/asn1/a_utctm.c +++ b/libs/openssl/crypto/asn1/a_utctm.c @@ -61,6 +61,7 @@ #include "cryptlib.h" #include "o_time.h" #include +#include "asn1_locl.h" #if 0 int i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **pp) @@ -109,7 +110,7 @@ ASN1_UTCTIME *d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, unsigned char **pp, #endif -int ASN1_UTCTIME_check(ASN1_UTCTIME *d) +int asn1_utctime_to_tm(struct tm *tm, const ASN1_UTCTIME *d) { static const int min[8] = { 0, 1, 1, 0, 0, 0, 0, 0 }; static const int max[8] = { 99, 12, 31, 23, 59, 59, 12, 59 }; @@ -127,6 +128,8 @@ int ASN1_UTCTIME_check(ASN1_UTCTIME *d) for (i = 0; i < 6; i++) { if ((i == 5) && ((a[o] == 'Z') || (a[o] == '+') || (a[o] == '-'))) { i++; + if (tm) + tm->tm_sec = 0; break; } if ((a[o] < '0') || (a[o] > '9')) @@ -143,10 +146,33 @@ int ASN1_UTCTIME_check(ASN1_UTCTIME *d) if ((n < min[i]) || (n > max[i])) goto err; + if (tm) { + switch (i) { + case 0: + tm->tm_year = n < 50 ? n + 100 : n; + break; + case 1: + tm->tm_mon = n - 1; + break; + case 2: + tm->tm_mday = n; + break; + case 3: + tm->tm_hour = n; + break; + case 4: + tm->tm_min = n; + break; + case 5: + tm->tm_sec = n; + break; + } + } } if (a[o] == 'Z') o++; else if ((a[o] == '+') || (a[o] == '-')) { + int offsign = a[o] == '-' ? -1 : 1, offset = 0; o++; if (o + 4 > l) goto err; @@ -160,12 +186,25 @@ int ASN1_UTCTIME_check(ASN1_UTCTIME *d) n = (n * 10) + a[o] - '0'; if ((n < min[i]) || (n > max[i])) goto err; + if (tm) { + if (i == 6) + offset = n * 3600; + else if (i == 7) + offset += n * 60; + } o++; } + if (offset && !OPENSSL_gmtime_adj(tm, 0, offset * offsign)) + return 0; } - return (o == l); + return o == l; err: - return (0); + return 0; +} + +int ASN1_UTCTIME_check(const ASN1_UTCTIME *d) +{ + return asn1_utctime_to_tm(NULL, d); } int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str) @@ -249,43 +288,26 @@ ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t) { - struct tm *tm; - struct tm data; - int offset; - int year; - -#define g2(p) (((p)[0]-'0')*10+(p)[1]-'0') - - if (s->data[12] == 'Z') - offset = 0; - else { - offset = g2(s->data + 13) * 60 + g2(s->data + 15); - if (s->data[12] == '-') - offset = -offset; - } + struct tm stm, ttm; + int day, sec; - t -= offset * 60; /* FIXME: may overflow in extreme cases */ + if (!asn1_utctime_to_tm(&stm, s)) + return -2; - tm = OPENSSL_gmtime(&t, &data); - /* - * NB: -1, 0, 1 already valid return values so use -2 to indicate error. - */ - if (tm == NULL) + if (!OPENSSL_gmtime(&t, &ttm)) return -2; -#define return_cmp(a,b) if ((a)<(b)) return -1; else if ((a)>(b)) return 1 - year = g2(s->data); - if (year < 50) - year += 100; - return_cmp(year, tm->tm_year); - return_cmp(g2(s->data + 2) - 1, tm->tm_mon); - return_cmp(g2(s->data + 4), tm->tm_mday); - return_cmp(g2(s->data + 6), tm->tm_hour); - return_cmp(g2(s->data + 8), tm->tm_min); - return_cmp(g2(s->data + 10), tm->tm_sec); -#undef g2 -#undef return_cmp + if (!OPENSSL_gmtime_diff(&day, &sec, &ttm, &stm)) + return -2; + if (day > 0) + return 1; + if (day < 0) + return -1; + if (sec > 0) + return 1; + if (sec < 0) + return -1; return 0; } diff --git a/libs/openssl/crypto/asn1/ameth_lib.c b/libs/openssl/crypto/asn1/ameth_lib.c index 45f3f405..5389c043 100644 --- a/libs/openssl/crypto/asn1/ameth_lib.c +++ b/libs/openssl/crypto/asn1/ameth_lib.c @@ -68,6 +68,7 @@ extern const EVP_PKEY_ASN1_METHOD rsa_asn1_meths[]; extern const EVP_PKEY_ASN1_METHOD dsa_asn1_meths[]; extern const EVP_PKEY_ASN1_METHOD dh_asn1_meth; +extern const EVP_PKEY_ASN1_METHOD dhx_asn1_meth; extern const EVP_PKEY_ASN1_METHOD eckey_asn1_meth; extern const EVP_PKEY_ASN1_METHOD hmac_asn1_meth; extern const EVP_PKEY_ASN1_METHOD cmac_asn1_meth; @@ -92,7 +93,10 @@ static const EVP_PKEY_ASN1_METHOD *standard_methods[] = { &eckey_asn1_meth, #endif &hmac_asn1_meth, - &cmac_asn1_meth + &cmac_asn1_meth, +#ifndef OPENSSL_NO_DH + &dhx_asn1_meth +#endif }; typedef int sk_cmp_fn_type(const char *const *a, const char *const *b); @@ -460,3 +464,21 @@ void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, { ameth->pkey_ctrl = pkey_ctrl; } + +void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, + int (*item_verify) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *a, + ASN1_BIT_STRING *sig, + EVP_PKEY *pkey), + int (*item_sign) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *alg1, + X509_ALGOR *alg2, + ASN1_BIT_STRING *sig)) +{ + ameth->item_sign = item_sign; + ameth->item_verify = item_verify; +} diff --git a/libs/openssl/crypto/asn1/asn1.h b/libs/openssl/crypto/asn1/asn1.h index 39b7833f..68e791fc 100644 --- a/libs/openssl/crypto/asn1/asn1.h +++ b/libs/openssl/crypto/asn1/asn1.h @@ -207,13 +207,13 @@ typedef struct asn1_const_ctx_st { # define ASN1_OBJECT_FLAG_CRITICAL 0x02/* critical x509v3 object id */ # define ASN1_OBJECT_FLAG_DYNAMIC_STRINGS 0x04/* internal use */ # define ASN1_OBJECT_FLAG_DYNAMIC_DATA 0x08/* internal use */ -typedef struct asn1_object_st { +struct asn1_object_st { const char *sn, *ln; int nid; int length; const unsigned char *data; /* data remains const after init */ int flags; /* Should we free this one */ -} ASN1_OBJECT; +}; # define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ /* @@ -843,7 +843,7 @@ int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED) -int ASN1_UTCTIME_check(ASN1_UTCTIME *a); +int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, int offset_day, long offset_sec); @@ -853,13 +853,15 @@ int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); time_t ASN1_UTCTIME_get(const ASN1_UTCTIME *s); # endif -int ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *a); +int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, time_t t); ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, time_t t, int offset_day, long offset_sec); int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); +int ASN1_TIME_diff(int *pday, int *psec, + const ASN1_TIME *from, const ASN1_TIME *to); DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING) ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); diff --git a/libs/openssl/crypto/asn1/asn1_locl.h b/libs/openssl/crypto/asn1/asn1_locl.h index 9f5ed847..4c004fab 100644 --- a/libs/openssl/crypto/asn1/asn1_locl.h +++ b/libs/openssl/crypto/asn1/asn1_locl.h @@ -59,6 +59,9 @@ /* Internal ASN1 structures and functions: not for application use */ +int asn1_utctime_to_tm(struct tm *tm, const ASN1_UTCTIME *d); +int asn1_generalizedtime_to_tm(struct tm *tm, const ASN1_GENERALIZEDTIME *d); + /* ASN1 print context structure */ struct asn1_pctx_st { diff --git a/libs/openssl/crypto/asn1/asn1_par.c b/libs/openssl/crypto/asn1/asn1_par.c index a5d2da10..0ca985a2 100644 --- a/libs/openssl/crypto/asn1/asn1_par.c +++ b/libs/openssl/crypto/asn1/asn1_par.c @@ -62,6 +62,10 @@ #include #include +#ifndef ASN1_PARSE_MAXDEPTH +#define ASN1_PARSE_MAXDEPTH 128 +#endif + static int asn1_print_info(BIO *bp, int tag, int xclass, int constructed, int indent); static int asn1_parse2(BIO *bp, const unsigned char **pp, long length, @@ -128,6 +132,12 @@ static int asn1_parse2(BIO *bp, const unsigned char **pp, long length, #else dump_indent = 6; /* Because we know BIO_dump_indent() */ #endif + + if (depth > ASN1_PARSE_MAXDEPTH) { + BIO_puts(bp, "BAD RECURSION DEPTH\n"); + return 0; + } + p = *pp; tot = p + length; op = p - 1; diff --git a/libs/openssl/crypto/asn1/bio_asn1.c b/libs/openssl/crypto/asn1/bio_asn1.c new file mode 100644 index 00000000..60189b3b --- /dev/null +++ b/libs/openssl/crypto/asn1/bio_asn1.c @@ -0,0 +1,482 @@ +/* bio_asn1.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2006 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +/* + * Experimental ASN1 BIO. When written through the data is converted to an + * ASN1 string type: default is OCTET STRING. Additional functions can be + * provided to add prefix and suffix data. + */ + +#include +#include +#include + +/* Must be large enough for biggest tag+length */ +#define DEFAULT_ASN1_BUF_SIZE 20 + +typedef enum { + ASN1_STATE_START, + ASN1_STATE_PRE_COPY, + ASN1_STATE_HEADER, + ASN1_STATE_HEADER_COPY, + ASN1_STATE_DATA_COPY, + ASN1_STATE_POST_COPY, + ASN1_STATE_DONE +} asn1_bio_state_t; + +typedef struct BIO_ASN1_EX_FUNCS_st { + asn1_ps_func *ex_func; + asn1_ps_func *ex_free_func; +} BIO_ASN1_EX_FUNCS; + +typedef struct BIO_ASN1_BUF_CTX_t { + /* Internal state */ + asn1_bio_state_t state; + /* Internal buffer */ + unsigned char *buf; + /* Size of buffer */ + int bufsize; + /* Current position in buffer */ + int bufpos; + /* Current buffer length */ + int buflen; + /* Amount of data to copy */ + int copylen; + /* Class and tag to use */ + int asn1_class, asn1_tag; + asn1_ps_func *prefix, *prefix_free, *suffix, *suffix_free; + /* Extra buffer for prefix and suffix data */ + unsigned char *ex_buf; + int ex_len; + int ex_pos; + void *ex_arg; +} BIO_ASN1_BUF_CTX; + +static int asn1_bio_write(BIO *h, const char *buf, int num); +static int asn1_bio_read(BIO *h, char *buf, int size); +static int asn1_bio_puts(BIO *h, const char *str); +static int asn1_bio_gets(BIO *h, char *str, int size); +static long asn1_bio_ctrl(BIO *h, int cmd, long arg1, void *arg2); +static int asn1_bio_new(BIO *h); +static int asn1_bio_free(BIO *data); +static long asn1_bio_callback_ctrl(BIO *h, int cmd, bio_info_cb *fp); + +static int asn1_bio_init(BIO_ASN1_BUF_CTX *ctx, int size); +static int asn1_bio_flush_ex(BIO *b, BIO_ASN1_BUF_CTX *ctx, + asn1_ps_func *cleanup, asn1_bio_state_t next); +static int asn1_bio_setup_ex(BIO *b, BIO_ASN1_BUF_CTX *ctx, + asn1_ps_func *setup, + asn1_bio_state_t ex_state, + asn1_bio_state_t other_state); + +static BIO_METHOD methods_asn1 = { + BIO_TYPE_ASN1, + "asn1", + asn1_bio_write, + asn1_bio_read, + asn1_bio_puts, + asn1_bio_gets, + asn1_bio_ctrl, + asn1_bio_new, + asn1_bio_free, + asn1_bio_callback_ctrl, +}; + +BIO_METHOD *BIO_f_asn1(void) +{ + return (&methods_asn1); +} + +static int asn1_bio_new(BIO *b) +{ + BIO_ASN1_BUF_CTX *ctx; + ctx = OPENSSL_malloc(sizeof(BIO_ASN1_BUF_CTX)); + if (!ctx) + return 0; + if (!asn1_bio_init(ctx, DEFAULT_ASN1_BUF_SIZE)) { + OPENSSL_free(ctx); + return 0; + } + b->init = 1; + b->ptr = (char *)ctx; + b->flags = 0; + return 1; +} + +static int asn1_bio_init(BIO_ASN1_BUF_CTX *ctx, int size) +{ + ctx->buf = OPENSSL_malloc(size); + if (!ctx->buf) + return 0; + ctx->bufsize = size; + ctx->bufpos = 0; + ctx->buflen = 0; + ctx->copylen = 0; + ctx->asn1_class = V_ASN1_UNIVERSAL; + ctx->asn1_tag = V_ASN1_OCTET_STRING; + ctx->ex_buf = 0; + ctx->ex_pos = 0; + ctx->ex_len = 0; + ctx->state = ASN1_STATE_START; + return 1; +} + +static int asn1_bio_free(BIO *b) +{ + BIO_ASN1_BUF_CTX *ctx; + ctx = (BIO_ASN1_BUF_CTX *)b->ptr; + if (ctx == NULL) + return 0; + if (ctx->buf) + OPENSSL_free(ctx->buf); + OPENSSL_free(ctx); + b->init = 0; + b->ptr = NULL; + b->flags = 0; + return 1; +} + +static int asn1_bio_write(BIO *b, const char *in, int inl) +{ + BIO_ASN1_BUF_CTX *ctx; + int wrmax, wrlen, ret; + unsigned char *p; + if (!in || (inl < 0) || (b->next_bio == NULL)) + return 0; + ctx = (BIO_ASN1_BUF_CTX *)b->ptr; + if (ctx == NULL) + return 0; + + wrlen = 0; + ret = -1; + + for (;;) { + switch (ctx->state) { + + /* Setup prefix data, call it */ + case ASN1_STATE_START: + if (!asn1_bio_setup_ex(b, ctx, ctx->prefix, + ASN1_STATE_PRE_COPY, ASN1_STATE_HEADER)) + return 0; + break; + + /* Copy any pre data first */ + case ASN1_STATE_PRE_COPY: + + ret = asn1_bio_flush_ex(b, ctx, ctx->prefix_free, + ASN1_STATE_HEADER); + + if (ret <= 0) + goto done; + + break; + + case ASN1_STATE_HEADER: + ctx->buflen = ASN1_object_size(0, inl, ctx->asn1_tag) - inl; + OPENSSL_assert(ctx->buflen <= ctx->bufsize); + p = ctx->buf; + ASN1_put_object(&p, 0, inl, ctx->asn1_tag, ctx->asn1_class); + ctx->copylen = inl; + ctx->state = ASN1_STATE_HEADER_COPY; + + break; + + case ASN1_STATE_HEADER_COPY: + ret = BIO_write(b->next_bio, ctx->buf + ctx->bufpos, ctx->buflen); + if (ret <= 0) + goto done; + + ctx->buflen -= ret; + if (ctx->buflen) + ctx->bufpos += ret; + else { + ctx->bufpos = 0; + ctx->state = ASN1_STATE_DATA_COPY; + } + + break; + + case ASN1_STATE_DATA_COPY: + + if (inl > ctx->copylen) + wrmax = ctx->copylen; + else + wrmax = inl; + ret = BIO_write(b->next_bio, in, wrmax); + if (ret <= 0) + break; + wrlen += ret; + ctx->copylen -= ret; + in += ret; + inl -= ret; + + if (ctx->copylen == 0) + ctx->state = ASN1_STATE_HEADER; + + if (inl == 0) + goto done; + + break; + + default: + BIO_clear_retry_flags(b); + return 0; + + } + + } + + done: + BIO_clear_retry_flags(b); + BIO_copy_next_retry(b); + + return (wrlen > 0) ? wrlen : ret; + +} + +static int asn1_bio_flush_ex(BIO *b, BIO_ASN1_BUF_CTX *ctx, + asn1_ps_func *cleanup, asn1_bio_state_t next) +{ + int ret; + if (ctx->ex_len <= 0) + return 1; + for (;;) { + ret = BIO_write(b->next_bio, ctx->ex_buf + ctx->ex_pos, ctx->ex_len); + if (ret <= 0) + break; + ctx->ex_len -= ret; + if (ctx->ex_len > 0) + ctx->ex_pos += ret; + else { + if (cleanup) + cleanup(b, &ctx->ex_buf, &ctx->ex_len, &ctx->ex_arg); + ctx->state = next; + ctx->ex_pos = 0; + break; + } + } + return ret; +} + +static int asn1_bio_setup_ex(BIO *b, BIO_ASN1_BUF_CTX *ctx, + asn1_ps_func *setup, + asn1_bio_state_t ex_state, + asn1_bio_state_t other_state) +{ + if (setup && !setup(b, &ctx->ex_buf, &ctx->ex_len, &ctx->ex_arg)) { + BIO_clear_retry_flags(b); + return 0; + } + if (ctx->ex_len > 0) + ctx->state = ex_state; + else + ctx->state = other_state; + return 1; +} + +static int asn1_bio_read(BIO *b, char *in, int inl) +{ + if (!b->next_bio) + return 0; + return BIO_read(b->next_bio, in, inl); +} + +static int asn1_bio_puts(BIO *b, const char *str) +{ + return asn1_bio_write(b, str, strlen(str)); +} + +static int asn1_bio_gets(BIO *b, char *str, int size) +{ + if (!b->next_bio) + return 0; + return BIO_gets(b->next_bio, str, size); +} + +static long asn1_bio_callback_ctrl(BIO *b, int cmd, bio_info_cb *fp) +{ + if (b->next_bio == NULL) + return (0); + return BIO_callback_ctrl(b->next_bio, cmd, fp); +} + +static long asn1_bio_ctrl(BIO *b, int cmd, long arg1, void *arg2) +{ + BIO_ASN1_BUF_CTX *ctx; + BIO_ASN1_EX_FUNCS *ex_func; + long ret = 1; + ctx = (BIO_ASN1_BUF_CTX *)b->ptr; + if (ctx == NULL) + return 0; + switch (cmd) { + + case BIO_C_SET_PREFIX: + ex_func = arg2; + ctx->prefix = ex_func->ex_func; + ctx->prefix_free = ex_func->ex_free_func; + break; + + case BIO_C_GET_PREFIX: + ex_func = arg2; + ex_func->ex_func = ctx->prefix; + ex_func->ex_free_func = ctx->prefix_free; + break; + + case BIO_C_SET_SUFFIX: + ex_func = arg2; + ctx->suffix = ex_func->ex_func; + ctx->suffix_free = ex_func->ex_free_func; + break; + + case BIO_C_GET_SUFFIX: + ex_func = arg2; + ex_func->ex_func = ctx->suffix; + ex_func->ex_free_func = ctx->suffix_free; + break; + + case BIO_C_SET_EX_ARG: + ctx->ex_arg = arg2; + break; + + case BIO_C_GET_EX_ARG: + *(void **)arg2 = ctx->ex_arg; + break; + + case BIO_CTRL_FLUSH: + if (!b->next_bio) + return 0; + + /* Call post function if possible */ + if (ctx->state == ASN1_STATE_HEADER) { + if (!asn1_bio_setup_ex(b, ctx, ctx->suffix, + ASN1_STATE_POST_COPY, ASN1_STATE_DONE)) + return 0; + } + + if (ctx->state == ASN1_STATE_POST_COPY) { + ret = asn1_bio_flush_ex(b, ctx, ctx->suffix_free, + ASN1_STATE_DONE); + if (ret <= 0) + return ret; + } + + if (ctx->state == ASN1_STATE_DONE) + return BIO_ctrl(b->next_bio, cmd, arg1, arg2); + else { + BIO_clear_retry_flags(b); + return 0; + } + break; + + default: + if (!b->next_bio) + return 0; + return BIO_ctrl(b->next_bio, cmd, arg1, arg2); + + } + + return ret; +} + +static int asn1_bio_set_ex(BIO *b, int cmd, + asn1_ps_func *ex_func, asn1_ps_func *ex_free_func) +{ + BIO_ASN1_EX_FUNCS extmp; + extmp.ex_func = ex_func; + extmp.ex_free_func = ex_free_func; + return BIO_ctrl(b, cmd, 0, &extmp); +} + +static int asn1_bio_get_ex(BIO *b, int cmd, + asn1_ps_func **ex_func, + asn1_ps_func **ex_free_func) +{ + BIO_ASN1_EX_FUNCS extmp; + int ret; + ret = BIO_ctrl(b, cmd, 0, &extmp); + if (ret > 0) { + *ex_func = extmp.ex_func; + *ex_free_func = extmp.ex_free_func; + } + return ret; +} + +int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, + asn1_ps_func *prefix_free) +{ + return asn1_bio_set_ex(b, BIO_C_SET_PREFIX, prefix, prefix_free); +} + +int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, + asn1_ps_func **pprefix_free) +{ + return asn1_bio_get_ex(b, BIO_C_GET_PREFIX, pprefix, pprefix_free); +} + +int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, + asn1_ps_func *suffix_free) +{ + return asn1_bio_set_ex(b, BIO_C_SET_SUFFIX, suffix, suffix_free); +} + +int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, + asn1_ps_func **psuffix_free) +{ + return asn1_bio_get_ex(b, BIO_C_GET_SUFFIX, psuffix, psuffix_free); +} diff --git a/libs/openssl/crypto/asn1/bio_ndef.c b/libs/openssl/crypto/asn1/bio_ndef.c new file mode 100644 index 00000000..31949b87 --- /dev/null +++ b/libs/openssl/crypto/asn1/bio_ndef.c @@ -0,0 +1,248 @@ +/* bio_ndef.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + */ + +#include +#include +#include +#include + +#include + +/* Experimental NDEF ASN1 BIO support routines */ + +/* + * The usage is quite simple, initialize an ASN1 structure, get a BIO from it + * then any data written through the BIO will end up translated to + * approptiate format on the fly. The data is streamed out and does *not* + * need to be all held in memory at once. When the BIO is flushed the output + * is finalized and any signatures etc written out. The BIO is a 'proper' + * BIO and can handle non blocking I/O correctly. The usage is simple. The + * implementation is *not*... + */ + +/* BIO support data stored in the ASN1 BIO ex_arg */ + +typedef struct ndef_aux_st { + /* ASN1 structure this BIO refers to */ + ASN1_VALUE *val; + const ASN1_ITEM *it; + /* Top of the BIO chain */ + BIO *ndef_bio; + /* Output BIO */ + BIO *out; + /* Boundary where content is inserted */ + unsigned char **boundary; + /* DER buffer start */ + unsigned char *derbuf; +} NDEF_SUPPORT; + +static int ndef_prefix(BIO *b, unsigned char **pbuf, int *plen, void *parg); +static int ndef_prefix_free(BIO *b, unsigned char **pbuf, int *plen, + void *parg); +static int ndef_suffix(BIO *b, unsigned char **pbuf, int *plen, void *parg); +static int ndef_suffix_free(BIO *b, unsigned char **pbuf, int *plen, + void *parg); + +BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it) +{ + NDEF_SUPPORT *ndef_aux = NULL; + BIO *asn_bio = NULL; + const ASN1_AUX *aux = it->funcs; + ASN1_STREAM_ARG sarg; + + if (!aux || !aux->asn1_cb) { + ASN1err(ASN1_F_BIO_NEW_NDEF, ASN1_R_STREAMING_NOT_SUPPORTED); + return NULL; + } + ndef_aux = OPENSSL_malloc(sizeof(NDEF_SUPPORT)); + asn_bio = BIO_new(BIO_f_asn1()); + + /* ASN1 bio needs to be next to output BIO */ + + out = BIO_push(asn_bio, out); + + if (!ndef_aux || !asn_bio || !out) + goto err; + + BIO_asn1_set_prefix(asn_bio, ndef_prefix, ndef_prefix_free); + BIO_asn1_set_suffix(asn_bio, ndef_suffix, ndef_suffix_free); + + /* + * Now let callback prepend any digest, cipher etc BIOs ASN1 structure + * needs. + */ + + sarg.out = out; + sarg.ndef_bio = NULL; + sarg.boundary = NULL; + + if (aux->asn1_cb(ASN1_OP_STREAM_PRE, &val, it, &sarg) <= 0) + goto err; + + ndef_aux->val = val; + ndef_aux->it = it; + ndef_aux->ndef_bio = sarg.ndef_bio; + ndef_aux->boundary = sarg.boundary; + ndef_aux->out = out; + + BIO_ctrl(asn_bio, BIO_C_SET_EX_ARG, 0, ndef_aux); + + return sarg.ndef_bio; + + err: + if (asn_bio) + BIO_free(asn_bio); + if (ndef_aux) + OPENSSL_free(ndef_aux); + return NULL; +} + +static int ndef_prefix(BIO *b, unsigned char **pbuf, int *plen, void *parg) +{ + NDEF_SUPPORT *ndef_aux; + unsigned char *p; + int derlen; + + if (!parg) + return 0; + + ndef_aux = *(NDEF_SUPPORT **)parg; + + derlen = ASN1_item_ndef_i2d(ndef_aux->val, NULL, ndef_aux->it); + p = OPENSSL_malloc(derlen); + if (!p) + return 0; + + ndef_aux->derbuf = p; + *pbuf = p; + derlen = ASN1_item_ndef_i2d(ndef_aux->val, &p, ndef_aux->it); + + if (!*ndef_aux->boundary) + return 0; + + *plen = *ndef_aux->boundary - *pbuf; + + return 1; +} + +static int ndef_prefix_free(BIO *b, unsigned char **pbuf, int *plen, + void *parg) +{ + NDEF_SUPPORT *ndef_aux; + + if (!parg) + return 0; + + ndef_aux = *(NDEF_SUPPORT **)parg; + + if (ndef_aux->derbuf) + OPENSSL_free(ndef_aux->derbuf); + + ndef_aux->derbuf = NULL; + *pbuf = NULL; + *plen = 0; + return 1; +} + +static int ndef_suffix_free(BIO *b, unsigned char **pbuf, int *plen, + void *parg) +{ + NDEF_SUPPORT **pndef_aux = (NDEF_SUPPORT **)parg; + if (!ndef_prefix_free(b, pbuf, plen, parg)) + return 0; + OPENSSL_free(*pndef_aux); + *pndef_aux = NULL; + return 1; +} + +static int ndef_suffix(BIO *b, unsigned char **pbuf, int *plen, void *parg) +{ + NDEF_SUPPORT *ndef_aux; + unsigned char *p; + int derlen; + const ASN1_AUX *aux; + ASN1_STREAM_ARG sarg; + + if (!parg) + return 0; + + ndef_aux = *(NDEF_SUPPORT **)parg; + + aux = ndef_aux->it->funcs; + + /* Finalize structures */ + sarg.ndef_bio = ndef_aux->ndef_bio; + sarg.out = ndef_aux->out; + sarg.boundary = ndef_aux->boundary; + if (aux->asn1_cb(ASN1_OP_STREAM_POST, + &ndef_aux->val, ndef_aux->it, &sarg) <= 0) + return 0; + + derlen = ASN1_item_ndef_i2d(ndef_aux->val, NULL, ndef_aux->it); + p = OPENSSL_malloc(derlen); + if (!p) + return 0; + + ndef_aux->derbuf = p; + *pbuf = p; + derlen = ASN1_item_ndef_i2d(ndef_aux->val, &p, ndef_aux->it); + + if (!*ndef_aux->boundary) + return 0; + *pbuf = *ndef_aux->boundary; + *plen = derlen - (*ndef_aux->boundary - ndef_aux->derbuf); + + return 1; +} diff --git a/libs/openssl/crypto/asn1/d2i_pr.c b/libs/openssl/crypto/asn1/d2i_pr.c index c96da091..d21829af 100644 --- a/libs/openssl/crypto/asn1/d2i_pr.c +++ b/libs/openssl/crypto/asn1/d2i_pr.c @@ -72,6 +72,7 @@ EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, long length) { EVP_PKEY *ret; + const unsigned char *p = *pp; if ((a == NULL) || (*a == NULL)) { if ((ret = EVP_PKEY_new()) == NULL) { @@ -94,21 +95,23 @@ EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, } if (!ret->ameth->old_priv_decode || - !ret->ameth->old_priv_decode(ret, pp, length)) { + !ret->ameth->old_priv_decode(ret, &p, length)) { if (ret->ameth->priv_decode) { PKCS8_PRIV_KEY_INFO *p8 = NULL; - p8 = d2i_PKCS8_PRIV_KEY_INFO(NULL, pp, length); + p8 = d2i_PKCS8_PRIV_KEY_INFO(NULL, &p, length); if (!p8) goto err; EVP_PKEY_free(ret); ret = EVP_PKCS82PKEY(p8); PKCS8_PRIV_KEY_INFO_free(p8); - + if (ret == NULL) + goto err; } else { ASN1err(ASN1_F_D2I_PRIVATEKEY, ERR_R_ASN1_LIB); goto err; } } + *pp = p; if (a != NULL) (*a) = ret; return (ret); @@ -136,6 +139,7 @@ EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, * input is surrounded by an ASN1 SEQUENCE. */ inkey = d2i_ASN1_SEQUENCE_ANY(NULL, &p, length); + p = *pp; /* * Since we only need to discern "traditional format" RSA and DSA keys we * can just count the elements. @@ -146,7 +150,7 @@ EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, keytype = EVP_PKEY_EC; else if (sk_ASN1_TYPE_num(inkey) == 3) { /* This seems to be PKCS8, not * traditional format */ - PKCS8_PRIV_KEY_INFO *p8 = d2i_PKCS8_PRIV_KEY_INFO(NULL, pp, length); + PKCS8_PRIV_KEY_INFO *p8 = d2i_PKCS8_PRIV_KEY_INFO(NULL, &p, length); EVP_PKEY *ret; sk_ASN1_TYPE_pop_free(inkey, ASN1_TYPE_free); @@ -157,6 +161,9 @@ EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, } ret = EVP_PKCS82PKEY(p8); PKCS8_PRIV_KEY_INFO_free(p8); + if (ret == NULL) + return NULL; + *pp = p; if (a) { *a = ret; } diff --git a/libs/openssl/crypto/asn1/t_x509.c b/libs/openssl/crypto/asn1/t_x509.c index 4e7c45dd..8aab5513 100644 --- a/libs/openssl/crypto/asn1/t_x509.c +++ b/libs/openssl/crypto/asn1/t_x509.c @@ -228,6 +228,21 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, } } + if (!(cflag & X509_FLAG_NO_IDS)) { + if (ci->issuerUID) { + if (BIO_printf(bp, "%8sIssuer Unique ID: ", "") <= 0) + goto err; + if (!X509_signature_dump(bp, ci->issuerUID, 12)) + goto err; + } + if (ci->subjectUID) { + if (BIO_printf(bp, "%8sSubject Unique ID: ", "") <= 0) + goto err; + if (!X509_signature_dump(bp, ci->subjectUID, 12)) + goto err; + } + } + if (!(cflag & X509_FLAG_NO_EXTENSIONS)) X509V3_extensions_print(bp, "X509v3 extensions", ci->extensions, cflag, 8); diff --git a/libs/openssl/crypto/asn1/tasn_dec.c b/libs/openssl/crypto/asn1/tasn_dec.c index 7fd336a4..9256049d 100644 --- a/libs/openssl/crypto/asn1/tasn_dec.c +++ b/libs/openssl/crypto/asn1/tasn_dec.c @@ -180,6 +180,8 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, int otag; int ret = 0; ASN1_VALUE **pchptr, *ptmpval; + int combine = aclass & ASN1_TFLG_COMBINE; + aclass &= ~ASN1_TFLG_COMBINE; if (!pval) return 0; if (aux && aux->asn1_cb) @@ -350,9 +352,9 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, } asn1_set_choice_selector(pval, i, it); - *in = p; if (asn1_cb && !asn1_cb(ASN1_OP_D2I_POST, pval, it, NULL)) goto auxerr; + *in = p; return 1; case ASN1_ITYPE_NDEF_SEQUENCE: @@ -489,9 +491,9 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, /* Save encoding */ if (!asn1_enc_save(pval, *in, p - *in, it)) goto auxerr; - *in = p; if (asn1_cb && !asn1_cb(ASN1_OP_D2I_POST, pval, it, NULL)) goto auxerr; + *in = p; return 1; default: @@ -500,7 +502,8 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, auxerr: ASN1err(ASN1_F_ASN1_ITEM_EX_D2I, ASN1_R_AUX_ERROR); err: - ASN1_item_ex_free(pval, it); + if (combine == 0) + ASN1_item_ex_free(pval, it); if (errtt) ERR_add_error_data(4, "Field=", errtt->field_name, ", Type=", it->sname); @@ -689,7 +692,7 @@ static int asn1_template_noexp_d2i(ASN1_VALUE **val, } else { /* Nothing special */ ret = ASN1_item_ex_d2i(val, &p, len, ASN1_ITEM_ptr(tt->item), - -1, 0, opt, ctx); + -1, tt->flags & ASN1_TFLG_COMBINE, opt, ctx); if (!ret) { ASN1err(ASN1_F_ASN1_TEMPLATE_NOEXP_D2I, ERR_R_NESTED_ASN1_ERROR); goto err; diff --git a/libs/openssl/crypto/asn1/x_bignum.c b/libs/openssl/crypto/asn1/x_bignum.c index a5a403c2..eaf04663 100644 --- a/libs/openssl/crypto/asn1/x_bignum.c +++ b/libs/openssl/crypto/asn1/x_bignum.c @@ -141,8 +141,9 @@ static int bn_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len, int utype, char *free_cont, const ASN1_ITEM *it) { BIGNUM *bn; - if (!*pval) - bn_new(pval, it); + + if (*pval == NULL && !bn_new(pval, it)) + return 0; bn = (BIGNUM *)*pval; if (!BN_bin2bn(cont, len, bn)) { bn_free(pval, it); diff --git a/libs/openssl/crypto/asn1/x_crl.c b/libs/openssl/crypto/asn1/x_crl.c index e258c714..02795033 100644 --- a/libs/openssl/crypto/asn1/x_crl.c +++ b/libs/openssl/crypto/asn1/x_crl.c @@ -58,8 +58,8 @@ #include #include "cryptlib.h" -#include "asn1_locl.h" #include +#include "asn1_locl.h" #include #include @@ -341,6 +341,8 @@ ASN1_SEQUENCE_ref(X509_CRL, crl_cb, CRYPTO_LOCK_X509_CRL) = { IMPLEMENT_ASN1_FUNCTIONS(X509_REVOKED) +IMPLEMENT_ASN1_DUP_FUNCTION(X509_REVOKED) + IMPLEMENT_ASN1_FUNCTIONS(X509_CRL_INFO) IMPLEMENT_ASN1_FUNCTIONS(X509_CRL) diff --git a/libs/openssl/crypto/asn1/x_pubkey.c b/libs/openssl/crypto/asn1/x_pubkey.c index 4b682018..6c57a797 100644 --- a/libs/openssl/crypto/asn1/x_pubkey.c +++ b/libs/openssl/crypto/asn1/x_pubkey.c @@ -188,13 +188,16 @@ EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length) { X509_PUBKEY *xpk; EVP_PKEY *pktmp; - xpk = d2i_X509_PUBKEY(NULL, pp, length); + const unsigned char *q; + q = *pp; + xpk = d2i_X509_PUBKEY(NULL, &q, length); if (!xpk) return NULL; pktmp = X509_PUBKEY_get(xpk); X509_PUBKEY_free(xpk); if (!pktmp) return NULL; + *pp = q; if (a) { EVP_PKEY_free(*a); *a = pktmp; diff --git a/libs/openssl/crypto/asn1/x_x509.c b/libs/openssl/crypto/asn1/x_x509.c index f56e837b..e2cac836 100644 --- a/libs/openssl/crypto/asn1/x_x509.c +++ b/libs/openssl/crypto/asn1/x_x509.c @@ -180,16 +180,15 @@ X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length) if (!a || *a == NULL) { freeret = 1; } - ret = d2i_X509(a, pp, length); + ret = d2i_X509(a, &q, length); /* If certificate unreadable then forget it */ if (!ret) return NULL; /* update length */ - length -= *pp - q; - if (!length) - return ret; - if (!d2i_X509_CERT_AUX(&ret->aux, pp, length)) + length -= q - *pp; + if (length > 0 && !d2i_X509_CERT_AUX(&ret->aux, &q, length)) goto err; + *pp = q; return ret; err: if (freeret) { @@ -208,3 +207,23 @@ int i2d_X509_AUX(X509 *a, unsigned char **pp) length += i2d_X509_CERT_AUX(a->aux, pp); return length; } + +int i2d_re_X509_tbs(X509 *x, unsigned char **pp) +{ + x->cert_info->enc.modified = 1; + return i2d_X509_CINF(x->cert_info, pp); +} + +void X509_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, + const X509 *x) +{ + if (psig) + *psig = x->signature; + if (palg) + *palg = x->sig_alg; +} + +int X509_get_signature_nid(const X509 *x) +{ + return OBJ_obj2nid(x->sig_alg->algorithm); +} diff --git a/libs/openssl/crypto/asn1/x_x509a.c b/libs/openssl/crypto/asn1/x_x509a.c index 76bbc137..ad93592a 100644 --- a/libs/openssl/crypto/asn1/x_x509a.c +++ b/libs/openssl/crypto/asn1/x_x509a.c @@ -163,10 +163,13 @@ int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj) if (!(objtmp = OBJ_dup(obj))) return 0; if (!(aux = aux_get(x))) - return 0; + goto err; if (!aux->reject && !(aux->reject = sk_ASN1_OBJECT_new_null())) - return 0; + goto err; return sk_ASN1_OBJECT_push(aux->reject, objtmp); + err: + ASN1_OBJECT_free(objtmp); + return 0; } void X509_trust_clear(X509 *x) diff --git a/libs/openssl/crypto/bio/b_dump.c b/libs/openssl/crypto/bio/b_dump.c index 3293c724..ccf0e287 100644 --- a/libs/openssl/crypto/bio/b_dump.c +++ b/libs/openssl/crypto/bio/b_dump.c @@ -104,7 +104,6 @@ int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), if ((rows * dump_width) < len) rows++; for (i = 0; i < rows; i++) { - buf[0] = '\0'; /* start with empty string */ BUF_strlcpy(buf, str, sizeof buf); BIO_snprintf(tmp, sizeof tmp, "%04x - ", i * dump_width); BUF_strlcat(buf, tmp, sizeof buf); @@ -182,3 +181,28 @@ int BIO_dump_indent(BIO *bp, const char *s, int len, int indent) { return BIO_dump_indent_cb(write_bio, bp, s, len, indent); } + +int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, + int datalen) +{ + int i, j = 0; + + if (datalen < 1) + return 1; + + for (i = 0; i < datalen - 1; i++) { + if (i && !j) + BIO_printf(out, "%*s", indent, ""); + + BIO_printf(out, "%02X:", data[i]); + + j = (j + 1) % width; + if (!j) + BIO_printf(out, "\n"); + } + + if (i && !j) + BIO_printf(out, "%*s", indent, ""); + BIO_printf(out, "%02X", data[datalen - 1]); + return 1; +} diff --git a/libs/openssl/crypto/bio/b_sock.c b/libs/openssl/crypto/bio/b_sock.c index bda882c4..5bad0a2b 100644 --- a/libs/openssl/crypto/bio/b_sock.c +++ b/libs/openssl/crypto/bio/b_sock.c @@ -225,13 +225,17 @@ int BIO_get_port(const char *str, unsigned short *port_ptr) int BIO_sock_error(int sock) { int j, i; - int size; + union { + size_t s; + int i; + } size; # if defined(OPENSSL_SYS_BEOS_R5) return 0; # endif - size = sizeof(int); + /* heuristic way to adapt for platforms that expect 64-bit optlen */ + size.s = 0, size.i = sizeof(j); /* * Note: under Windows the third parameter is of type (char *) whereas * under other systems it is (void *) if you don't have a cast it will diff --git a/libs/openssl/crypto/bio/bio.h b/libs/openssl/crypto/bio/bio.h index d583cc10..f78796b0 100644 --- a/libs/openssl/crypto/bio/bio.h +++ b/libs/openssl/crypto/bio/bio.h @@ -174,6 +174,7 @@ extern "C" { # define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 45/* Next DTLS handshake timeout * to adjust socket timeouts */ +# define BIO_CTRL_DGRAM_SET_DONT_FRAG 48 # define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD 49 @@ -725,6 +726,9 @@ int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent); int BIO_dump_fp(FILE *fp, const char *s, int len); int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); # endif +int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, + int datalen); + struct hostent *BIO_gethostbyname(const char *name); /*- * We might want a thread-safe interface too: @@ -761,8 +765,8 @@ int BIO_dgram_sctp_wait_for_dry(BIO *b); int BIO_dgram_sctp_msg_waiting(BIO *b); # endif BIO *BIO_new_fd(int fd, int close_flag); -BIO *BIO_new_connect(char *host_port); -BIO *BIO_new_accept(char *host_port); +BIO *BIO_new_connect(const char *host_port); +BIO *BIO_new_accept(const char *host_port); int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); diff --git a/libs/openssl/crypto/bio/bio_err.c b/libs/openssl/crypto/bio/bio_err.c index 6dd6162f..d9007aa3 100644 --- a/libs/openssl/crypto/bio/bio_err.c +++ b/libs/openssl/crypto/bio/bio_err.c @@ -1,6 +1,6 @@ /* crypto/bio/bio_err.c */ /* ==================================================================== - * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. + * Copyright (c) 1999-2015 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/libs/openssl/crypto/bio/bss_acpt.c b/libs/openssl/crypto/bio/bss_acpt.c index d08292c3..4a5e39bd 100644 --- a/libs/openssl/crypto/bio/bss_acpt.c +++ b/libs/openssl/crypto/bio/bss_acpt.c @@ -445,7 +445,7 @@ static int acpt_puts(BIO *bp, const char *str) return (ret); } -BIO *BIO_new_accept(char *str) +BIO *BIO_new_accept(const char *str) { BIO *ret; diff --git a/libs/openssl/crypto/bio/bss_conn.c b/libs/openssl/crypto/bio/bss_conn.c index 6a5e8de8..42d0afff 100644 --- a/libs/openssl/crypto/bio/bss_conn.c +++ b/libs/openssl/crypto/bio/bss_conn.c @@ -585,7 +585,7 @@ static int conn_puts(BIO *bp, const char *str) return (ret); } -BIO *BIO_new_connect(char *str) +BIO *BIO_new_connect(const char *str) { BIO *ret; diff --git a/libs/openssl/crypto/bio/bss_fd.c b/libs/openssl/crypto/bio/bss_fd.c index ccef5781..5f4e3448 100644 --- a/libs/openssl/crypto/bio/bss_fd.c +++ b/libs/openssl/crypto/bio/bss_fd.c @@ -63,9 +63,27 @@ #if defined(OPENSSL_NO_POSIX_IO) /* - * One can argue that one should implement dummy placeholder for - * BIO_s_fd here... + * Dummy placeholder for BIO_s_fd... */ +BIO *BIO_new_fd(int fd, int close_flag) +{ + return NULL; +} + +int BIO_fd_non_fatal_error(int err) +{ + return 0; +} + +int BIO_fd_should_retry(int i) +{ + return 0; +} + +BIO_METHOD *BIO_s_fd(void) +{ + return NULL; +} #else /* * As for unconditional usage of "UPLINK" interface in this module. diff --git a/libs/openssl/crypto/bio/bss_file.c b/libs/openssl/crypto/bio/bss_file.c index d7f15b06..bfba93e6 100644 --- a/libs/openssl/crypto/bio/bss_file.c +++ b/libs/openssl/crypto/bio/bss_file.c @@ -115,9 +115,8 @@ static BIO_METHOD methods_filep = { NULL, }; -BIO *BIO_new_file(const char *filename, const char *mode) +static FILE *file_fopen(const char *filename, const char *mode) { - BIO *ret; FILE *file = NULL; # if defined(_WIN32) && defined(CP_UTF8) @@ -164,6 +163,14 @@ BIO *BIO_new_file(const char *filename, const char *mode) # else file = fopen(filename, mode); # endif + return (file); +} + +BIO *BIO_new_file(const char *filename, const char *mode) +{ + BIO *ret; + FILE *file = file_fopen(filename, mode); + if (file == NULL) { SYSerr(SYS_F_FOPEN, get_last_sys_error()); ERR_add_error_data(5, "fopen('", filename, "','", mode, "')"); @@ -386,7 +393,7 @@ static long MS_CALLBACK file_ctrl(BIO *b, int cmd, long num, void *ptr) else strcat(p, "t"); # endif - fp = fopen(ptr, p); + fp = file_fopen(ptr, p); if (fp == NULL) { SYSerr(SYS_F_FOPEN, get_last_sys_error()); ERR_add_error_data(5, "fopen('", ptr, "','", p, "')"); diff --git a/libs/openssl/crypto/bn/bn.h b/libs/openssl/crypto/bn/bn.h index 47d8c71d..5696965e 100644 --- a/libs/openssl/crypto/bn/bn.h +++ b/libs/openssl/crypto/bn/bn.h @@ -256,24 +256,6 @@ extern "C" { # define BN_HEX_FMT2 "%08X" # endif -/* - * 2011-02-22 SMS. In various places, a size_t variable or a type cast to - * size_t was used to perform integer-only operations on pointers. This - * failed on VMS with 64-bit pointers (CC /POINTER_SIZE = 64) because size_t - * is still only 32 bits. What's needed in these cases is an integer type - * with the same size as a pointer, which size_t is not certain to be. The - * only fix here is VMS-specific. - */ -# if defined(OPENSSL_SYS_VMS) -# if __INITIAL_POINTER_SIZE == 64 -# define PTR_SIZE_INT long long -# else /* __INITIAL_POINTER_SIZE == 64 */ -# define PTR_SIZE_INT int -# endif /* __INITIAL_POINTER_SIZE == 64 [else] */ -# else /* defined(OPENSSL_SYS_VMS) */ -# define PTR_SIZE_INT size_t -# endif /* defined(OPENSSL_SYS_VMS) [else] */ - # define BN_DEFAULT_BITS 1280 # define BN_FLG_MALLOCED 0x01 diff --git a/libs/openssl/crypto/bn/bn_asm.c b/libs/openssl/crypto/bn/bn_asm.c index 114acf3d..03a33cff 100644 --- a/libs/openssl/crypto/bn/bn_asm.c +++ b/libs/openssl/crypto/bn/bn_asm.c @@ -489,121 +489,144 @@ BN_ULONG bn_sub_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b, * c=(c2,c1,c0) */ +# ifdef BN_LLONG /* - * Keep in mind that carrying into high part of multiplication result - * can not overflow, because it cannot be all-ones. + * Keep in mind that additions to multiplication result can not + * overflow, because its high half cannot be all-ones. */ -# ifdef BN_LLONG -# define mul_add_c(a,b,c0,c1,c2) \ - t=(BN_ULLONG)a*b; \ - t1=(BN_ULONG)Lw(t); \ - t2=(BN_ULONG)Hw(t); \ - c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \ - c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++; - -# define mul_add_c2(a,b,c0,c1,c2) \ - t=(BN_ULLONG)a*b; \ - tt=(t+t)&BN_MASK; \ - if (tt < t) c2++; \ - t1=(BN_ULONG)Lw(tt); \ - t2=(BN_ULONG)Hw(tt); \ - c0=(c0+t1)&BN_MASK2; \ - if ((c0 < t1) && (((++t2)&BN_MASK2) == 0)) c2++; \ - c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++; - -# define sqr_add_c(a,i,c0,c1,c2) \ - t=(BN_ULLONG)a[i]*a[i]; \ - t1=(BN_ULONG)Lw(t); \ - t2=(BN_ULONG)Hw(t); \ - c0=(c0+t1)&BN_MASK2; if ((c0) < t1) t2++; \ - c1=(c1+t2)&BN_MASK2; if ((c1) < t2) c2++; +# define mul_add_c(a,b,c0,c1,c2) do { \ + BN_ULONG hi; \ + BN_ULLONG t = (BN_ULLONG)(a)*(b); \ + t += c0; /* no carry */ \ + c0 = (BN_ULONG)Lw(t); \ + hi = (BN_ULONG)Hw(t); \ + c1 = (c1+hi)&BN_MASK2; if (c1 +#endif + +#include "rsaz_exp.h" + +#undef SPARC_T4_MONT +#if defined(OPENSSL_BN_ASM_MONT) && (defined(__sparc__) || defined(__sparc)) +# include "sparc_arch.h" +extern unsigned int OPENSSL_sparcv9cap_P[]; +# define SPARC_T4_MONT #endif /* maximum precomputation table size for *variable* sliding windows */ @@ -464,6 +475,23 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, wstart = bits - 1; /* The top bit of the window */ wend = 0; /* The bottom bit of the window */ +#if 1 /* by Shay Gueron's suggestion */ + j = m->top; /* borrow j */ + if (m->d[j - 1] & (((BN_ULONG)1) << (BN_BITS2 - 1))) { + if (bn_wexpand(r, j) == NULL) + goto err; + /* 2^(top*BN_BITS2) - m */ + r->d[0] = (0 - m->d[0]) & BN_MASK2; + for (i = 1; i < j; i++) + r->d[i] = (~m->d[i]) & BN_MASK2; + r->top = j; + /* + * Upper words will be zero if the corresponding words of 'm' were + * 0xfff[...], so decrement r->top accordingly. + */ + bn_correct_top(r); + } else +#endif if (!BN_to_montgomery(r, BN_value_one(), mont, ctx)) goto err; for (;;) { @@ -515,6 +543,17 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, if (wstart < 0) break; } +#if defined(SPARC_T4_MONT) + if (OPENSSL_sparcv9cap_P[0] & (SPARCV9_VIS3 | SPARCV9_PREFER_FPU)) { + j = mont->N.top; /* borrow j */ + val[0]->d[0] = 1; /* borrow val[0] */ + for (i = 1; i < j; i++) + val[0]->d[i] = 0; + val[0]->top = j; + if (!BN_mod_mul_montgomery(rr, r, val[0], mont, ctx)) + goto err; + } else +#endif if (!BN_from_montgomery(rr, r, mont, ctx)) goto err; ret = 1; @@ -526,6 +565,27 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, return (ret); } +#if defined(SPARC_T4_MONT) +static BN_ULONG bn_get_bits(const BIGNUM *a, int bitpos) +{ + BN_ULONG ret = 0; + int wordpos; + + wordpos = bitpos / BN_BITS2; + bitpos %= BN_BITS2; + if (wordpos >= 0 && wordpos < a->top) { + ret = a->d[wordpos] & BN_MASK2; + if (bitpos) { + ret >>= bitpos; + if (++wordpos < a->top) + ret |= a->d[wordpos] << (BN_BITS2 - bitpos); + } + } + + return ret & BN_MASK2; +} +#endif + /* * BN_mod_exp_mont_consttime() stores the precomputed powers in a specific * layout so that accessing any of these table values shows the same access @@ -594,17 +654,21 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, int powerbufLen = 0; unsigned char *powerbuf = NULL; BIGNUM tmp, am; +#if defined(SPARC_T4_MONT) + unsigned int t4 = 0; +#endif bn_check_top(a); bn_check_top(p); bn_check_top(m); - top = m->top; - - if (!(m->d[0] & 1)) { + if (!BN_is_odd(m)) { BNerr(BN_F_BN_MOD_EXP_MONT_CONSTTIME, BN_R_CALLED_WITH_EVEN_MODULUS); return (0); } + + top = m->top; + bits = BN_num_bits(p); if (bits == 0) { ret = BN_one(rr); @@ -626,21 +690,62 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, goto err; } +#ifdef RSAZ_ENABLED + /* + * If the size of the operands allow it, perform the optimized + * RSAZ exponentiation. For further information see + * crypto/bn/rsaz_exp.c and accompanying assembly modules. + */ + if ((16 == a->top) && (16 == p->top) && (BN_num_bits(m) == 1024) + && rsaz_avx2_eligible()) { + if (NULL == bn_wexpand(rr, 16)) + goto err; + RSAZ_1024_mod_exp_avx2(rr->d, a->d, p->d, m->d, mont->RR.d, + mont->n0[0]); + rr->top = 16; + rr->neg = 0; + bn_correct_top(rr); + ret = 1; + goto err; + } else if ((8 == a->top) && (8 == p->top) && (BN_num_bits(m) == 512)) { + if (NULL == bn_wexpand(rr, 8)) + goto err; + RSAZ_512_mod_exp(rr->d, a->d, p->d, m->d, mont->n0[0], mont->RR.d); + rr->top = 8; + rr->neg = 0; + bn_correct_top(rr); + ret = 1; + goto err; + } +#endif + /* Get the window size to use with size of p. */ window = BN_window_bits_for_ctime_exponent_size(bits); +#if defined(SPARC_T4_MONT) + if (window >= 5 && (top & 15) == 0 && top <= 64 && + (OPENSSL_sparcv9cap_P[1] & (CFR_MONTMUL | CFR_MONTSQR)) == + (CFR_MONTMUL | CFR_MONTSQR) && (t4 = OPENSSL_sparcv9cap_P[0])) + window = 5; + else +#endif #if defined(OPENSSL_BN_ASM_MONT5) - if (window == 6 && bits <= 1024) - window = 5; /* ~5% improvement of 2048-bit RSA sign */ + if (window >= 5) { + window = 5; /* ~5% improvement for RSA2048 sign, and even + * for RSA4096 */ + if ((top & 7) == 0) + powerbufLen += 2 * top * sizeof(m->d[0]); + } #endif + (void)0; /* * Allocate a buffer large enough to hold all of the pre-computed powers * of am, am itself and tmp. */ numPowers = 1 << window; - powerbufLen = sizeof(m->d[0]) * (top * numPowers + - ((2 * top) > - numPowers ? (2 * top) : numPowers)); + powerbufLen += sizeof(m->d[0]) * (top * numPowers + + ((2 * top) > + numPowers ? (2 * top) : numPowers)); #ifdef alloca if (powerbufLen < 3072) powerbufFree = @@ -670,15 +775,17 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, tmp.flags = am.flags = BN_FLG_STATIC_DATA; /* prepare a^0 in Montgomery domain */ -#if 1 +#if 1 /* by Shay Gueron's suggestion */ + if (m->d[top - 1] & (((BN_ULONG)1) << (BN_BITS2 - 1))) { + /* 2^(top*BN_BITS2) - m */ + tmp.d[0] = (0 - m->d[0]) & BN_MASK2; + for (i = 1; i < top; i++) + tmp.d[i] = (~m->d[i]) & BN_MASK2; + tmp.top = top; + } else +#endif if (!BN_to_montgomery(&tmp, BN_value_one(), mont, ctx)) goto err; -#else - tmp.d[0] = (0 - m->d[0]) & BN_MASK2; /* 2^(top*BN_BITS2) - m */ - for (i = 1; i < top; i++) - tmp.d[i] = (~m->d[i]) & BN_MASK2; - tmp.top = top; -#endif /* prepare a^1 in Montgomery domain */ if (a->neg || BN_ucmp(a, m) >= 0) { @@ -689,6 +796,138 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, } else if (!BN_to_montgomery(&am, a, mont, ctx)) goto err; +#if defined(SPARC_T4_MONT) + if (t4) { + typedef int (*bn_pwr5_mont_f) (BN_ULONG *tp, const BN_ULONG *np, + const BN_ULONG *n0, const void *table, + int power, int bits); + int bn_pwr5_mont_t4_8(BN_ULONG *tp, const BN_ULONG *np, + const BN_ULONG *n0, const void *table, + int power, int bits); + int bn_pwr5_mont_t4_16(BN_ULONG *tp, const BN_ULONG *np, + const BN_ULONG *n0, const void *table, + int power, int bits); + int bn_pwr5_mont_t4_24(BN_ULONG *tp, const BN_ULONG *np, + const BN_ULONG *n0, const void *table, + int power, int bits); + int bn_pwr5_mont_t4_32(BN_ULONG *tp, const BN_ULONG *np, + const BN_ULONG *n0, const void *table, + int power, int bits); + static const bn_pwr5_mont_f pwr5_funcs[4] = { + bn_pwr5_mont_t4_8, bn_pwr5_mont_t4_16, + bn_pwr5_mont_t4_24, bn_pwr5_mont_t4_32 + }; + bn_pwr5_mont_f pwr5_worker = pwr5_funcs[top / 16 - 1]; + + typedef int (*bn_mul_mont_f) (BN_ULONG *rp, const BN_ULONG *ap, + const void *bp, const BN_ULONG *np, + const BN_ULONG *n0); + int bn_mul_mont_t4_8(BN_ULONG *rp, const BN_ULONG *ap, const void *bp, + const BN_ULONG *np, const BN_ULONG *n0); + int bn_mul_mont_t4_16(BN_ULONG *rp, const BN_ULONG *ap, + const void *bp, const BN_ULONG *np, + const BN_ULONG *n0); + int bn_mul_mont_t4_24(BN_ULONG *rp, const BN_ULONG *ap, + const void *bp, const BN_ULONG *np, + const BN_ULONG *n0); + int bn_mul_mont_t4_32(BN_ULONG *rp, const BN_ULONG *ap, + const void *bp, const BN_ULONG *np, + const BN_ULONG *n0); + static const bn_mul_mont_f mul_funcs[4] = { + bn_mul_mont_t4_8, bn_mul_mont_t4_16, + bn_mul_mont_t4_24, bn_mul_mont_t4_32 + }; + bn_mul_mont_f mul_worker = mul_funcs[top / 16 - 1]; + + void bn_mul_mont_vis3(BN_ULONG *rp, const BN_ULONG *ap, + const void *bp, const BN_ULONG *np, + const BN_ULONG *n0, int num); + void bn_mul_mont_t4(BN_ULONG *rp, const BN_ULONG *ap, + const void *bp, const BN_ULONG *np, + const BN_ULONG *n0, int num); + void bn_mul_mont_gather5_t4(BN_ULONG *rp, const BN_ULONG *ap, + const void *table, const BN_ULONG *np, + const BN_ULONG *n0, int num, int power); + void bn_flip_n_scatter5_t4(const BN_ULONG *inp, size_t num, + void *table, size_t power); + void bn_gather5_t4(BN_ULONG *out, size_t num, + void *table, size_t power); + void bn_flip_t4(BN_ULONG *dst, BN_ULONG *src, size_t num); + + BN_ULONG *np = mont->N.d, *n0 = mont->n0; + int stride = 5 * (6 - (top / 16 - 1)); /* multiple of 5, but less + * than 32 */ + + /* + * BN_to_montgomery can contaminate words above .top [in + * BN_DEBUG[_DEBUG] build]... + */ + for (i = am.top; i < top; i++) + am.d[i] = 0; + for (i = tmp.top; i < top; i++) + tmp.d[i] = 0; + + bn_flip_n_scatter5_t4(tmp.d, top, powerbuf, 0); + bn_flip_n_scatter5_t4(am.d, top, powerbuf, 1); + if (!(*mul_worker) (tmp.d, am.d, am.d, np, n0) && + !(*mul_worker) (tmp.d, am.d, am.d, np, n0)) + bn_mul_mont_vis3(tmp.d, am.d, am.d, np, n0, top); + bn_flip_n_scatter5_t4(tmp.d, top, powerbuf, 2); + + for (i = 3; i < 32; i++) { + /* Calculate a^i = a^(i-1) * a */ + if (!(*mul_worker) (tmp.d, tmp.d, am.d, np, n0) && + !(*mul_worker) (tmp.d, tmp.d, am.d, np, n0)) + bn_mul_mont_vis3(tmp.d, tmp.d, am.d, np, n0, top); + bn_flip_n_scatter5_t4(tmp.d, top, powerbuf, i); + } + + /* switch to 64-bit domain */ + np = alloca(top * sizeof(BN_ULONG)); + top /= 2; + bn_flip_t4(np, mont->N.d, top); + + bits--; + for (wvalue = 0, i = bits % 5; i >= 0; i--, bits--) + wvalue = (wvalue << 1) + BN_is_bit_set(p, bits); + bn_gather5_t4(tmp.d, top, powerbuf, wvalue); + + /* + * Scan the exponent one window at a time starting from the most + * significant bits. + */ + while (bits >= 0) { + if (bits < stride) + stride = bits + 1; + bits -= stride; + wvalue = bn_get_bits(p, bits + 1); + + if ((*pwr5_worker) (tmp.d, np, n0, powerbuf, wvalue, stride)) + continue; + /* retry once and fall back */ + if ((*pwr5_worker) (tmp.d, np, n0, powerbuf, wvalue, stride)) + continue; + + bits += stride - 5; + wvalue >>= stride - 5; + wvalue &= 31; + bn_mul_mont_t4(tmp.d, tmp.d, tmp.d, np, n0, top); + bn_mul_mont_t4(tmp.d, tmp.d, tmp.d, np, n0, top); + bn_mul_mont_t4(tmp.d, tmp.d, tmp.d, np, n0, top); + bn_mul_mont_t4(tmp.d, tmp.d, tmp.d, np, n0, top); + bn_mul_mont_t4(tmp.d, tmp.d, tmp.d, np, n0, top); + bn_mul_mont_gather5_t4(tmp.d, tmp.d, powerbuf, np, n0, top, + wvalue); + } + + bn_flip_t4(tmp.d, tmp.d, top); + top *= 2; + /* back to 32-bit domain */ + tmp.top = top; + bn_correct_top(&tmp); + OPENSSL_cleanse(np, top * sizeof(BN_ULONG)); + } else +#endif #if defined(OPENSSL_BN_ASM_MONT5) if (window == 5 && top > 1) { /* @@ -707,8 +946,15 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, void bn_scatter5(const BN_ULONG *inp, size_t num, void *table, size_t power); void bn_gather5(BN_ULONG *out, size_t num, void *table, size_t power); + void bn_power5(BN_ULONG *rp, const BN_ULONG *ap, + const void *table, const BN_ULONG *np, + const BN_ULONG *n0, int num, int power); + int bn_get_bits5(const BN_ULONG *ap, int off); + int bn_from_montgomery(BN_ULONG *rp, const BN_ULONG *ap, + const BN_ULONG *not_used, const BN_ULONG *np, + const BN_ULONG *n0, int num); - BN_ULONG *np = mont->N.d, *n0 = mont->n0; + BN_ULONG *np = mont->N.d, *n0 = mont->n0, *np2; /* * BN_to_montgomery can contaminate words above .top [in @@ -719,6 +965,12 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, for (i = tmp.top; i < top; i++) tmp.d[i] = 0; + if (top & 7) + np2 = np; + else + for (np2 = am.d + top, i = 0; i < top; i++) + np2[2 * i] = np[i]; + bn_scatter5(tmp.d, top, powerbuf, 0); bn_scatter5(am.d, am.top, powerbuf, 1); bn_mul_mont(tmp.d, am.d, am.d, np, n0, top); @@ -727,7 +979,7 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, # if 0 for (i = 3; i < 32; i++) { /* Calculate a^i = a^(i-1) * a */ - bn_mul_mont_gather5(tmp.d, am.d, powerbuf, np, n0, top, i - 1); + bn_mul_mont_gather5(tmp.d, am.d, powerbuf, np2, n0, top, i - 1); bn_scatter5(tmp.d, top, powerbuf, i); } # else @@ -738,7 +990,7 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, } for (i = 3; i < 8; i += 2) { int j; - bn_mul_mont_gather5(tmp.d, am.d, powerbuf, np, n0, top, i - 1); + bn_mul_mont_gather5(tmp.d, am.d, powerbuf, np2, n0, top, i - 1); bn_scatter5(tmp.d, top, powerbuf, i); for (j = 2 * i; j < 32; j *= 2) { bn_mul_mont(tmp.d, tmp.d, tmp.d, np, n0, top); @@ -746,13 +998,13 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, } } for (; i < 16; i += 2) { - bn_mul_mont_gather5(tmp.d, am.d, powerbuf, np, n0, top, i - 1); + bn_mul_mont_gather5(tmp.d, am.d, powerbuf, np2, n0, top, i - 1); bn_scatter5(tmp.d, top, powerbuf, i); bn_mul_mont(tmp.d, tmp.d, tmp.d, np, n0, top); bn_scatter5(tmp.d, top, powerbuf, 2 * i); } for (; i < 32; i += 2) { - bn_mul_mont_gather5(tmp.d, am.d, powerbuf, np, n0, top, i - 1); + bn_mul_mont_gather5(tmp.d, am.d, powerbuf, np2, n0, top, i - 1); bn_scatter5(tmp.d, top, powerbuf, i); } # endif @@ -765,20 +1017,34 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, * Scan the exponent one window at a time starting from the most * significant bits. */ - while (bits >= 0) { - for (wvalue = 0, i = 0; i < 5; i++, bits--) - wvalue = (wvalue << 1) + BN_is_bit_set(p, bits); + if (top & 7) + while (bits >= 0) { + for (wvalue = 0, i = 0; i < 5; i++, bits--) + wvalue = (wvalue << 1) + BN_is_bit_set(p, bits); - bn_mul_mont(tmp.d, tmp.d, tmp.d, np, n0, top); - bn_mul_mont(tmp.d, tmp.d, tmp.d, np, n0, top); - bn_mul_mont(tmp.d, tmp.d, tmp.d, np, n0, top); - bn_mul_mont(tmp.d, tmp.d, tmp.d, np, n0, top); - bn_mul_mont(tmp.d, tmp.d, tmp.d, np, n0, top); - bn_mul_mont_gather5(tmp.d, tmp.d, powerbuf, np, n0, top, wvalue); + bn_mul_mont(tmp.d, tmp.d, tmp.d, np, n0, top); + bn_mul_mont(tmp.d, tmp.d, tmp.d, np, n0, top); + bn_mul_mont(tmp.d, tmp.d, tmp.d, np, n0, top); + bn_mul_mont(tmp.d, tmp.d, tmp.d, np, n0, top); + bn_mul_mont(tmp.d, tmp.d, tmp.d, np, n0, top); + bn_mul_mont_gather5(tmp.d, tmp.d, powerbuf, np, n0, top, + wvalue); + } else { + while (bits >= 0) { + wvalue = bn_get_bits5(p->d, bits - 4); + bits -= 5; + bn_power5(tmp.d, tmp.d, powerbuf, np2, n0, top, wvalue); + } } + ret = bn_from_montgomery(tmp.d, tmp.d, NULL, np2, n0, top); tmp.top = top; bn_correct_top(&tmp); + if (ret) { + if (!BN_copy(rr, &tmp)) + ret = 0; + goto err; /* non-zero ret means it's not error */ + } } else #endif { @@ -844,6 +1110,15 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, } /* Convert the final result from montgomery to standard format */ +#if defined(SPARC_T4_MONT) + if (OPENSSL_sparcv9cap_P[0] & (SPARCV9_VIS3 | SPARCV9_PREFER_FPU)) { + am.d[0] = 1; /* borrow am */ + for (i = 1; i < top; i++) + am.d[i] = 0; + if (!BN_mod_mul_montgomery(rr, &tmp, &am, mont, ctx)) + goto err; + } else +#endif if (!BN_from_montgomery(rr, &tmp, mont, ctx)) goto err; ret = 1; diff --git a/libs/openssl/crypto/bn/bn_gcd.c b/libs/openssl/crypto/bn/bn_gcd.c index 97c55ab7..ce59fe70 100644 --- a/libs/openssl/crypto/bn/bn_gcd.c +++ b/libs/openssl/crypto/bn/bn_gcd.c @@ -583,6 +583,7 @@ static BIGNUM *BN_mod_inverse_no_branch(BIGNUM *in, * BN_div_no_branch will be called eventually. */ pB = &local_B; + local_B.flags = 0; BN_with_flags(pB, B, BN_FLG_CONSTTIME); if (!BN_nnmod(B, pB, A, ctx)) goto err; @@ -610,6 +611,7 @@ static BIGNUM *BN_mod_inverse_no_branch(BIGNUM *in, * BN_div_no_branch will be called eventually. */ pA = &local_A; + local_A.flags = 0; BN_with_flags(pA, A, BN_FLG_CONSTTIME); /* (D, M) := (A/B, A%B) ... */ diff --git a/libs/openssl/crypto/bn/bn_gf2m.c b/libs/openssl/crypto/bn/bn_gf2m.c index a0ba8de3..2c61da11 100644 --- a/libs/openssl/crypto/bn/bn_gf2m.c +++ b/libs/openssl/crypto/bn/bn_gf2m.c @@ -450,8 +450,7 @@ int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]) d0 = p[k] % BN_BITS2; d1 = BN_BITS2 - d0; z[n] ^= (zz << d0); - tmp_ulong = zz >> d1; - if (d0 && tmp_ulong) + if (d0 && (tmp_ulong = zz >> d1)) z[n + 1] ^= tmp_ulong; } @@ -576,7 +575,7 @@ int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], bn_check_top(a); BN_CTX_start(ctx); if ((s = BN_CTX_get(ctx)) == NULL) - return 0; + goto err; if (!bn_wexpand(s, 2 * a->top)) goto err; @@ -700,18 +699,21 @@ int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx) int top = p->top; BN_ULONG *udp, *bdp, *vdp, *cdp; - bn_wexpand(u, top); + if (!bn_wexpand(u, top)) + goto err; udp = u->d; for (i = u->top; i < top; i++) udp[i] = 0; u->top = top; - bn_wexpand(b, top); + if (!bn_wexpand(b, top)) + goto err; bdp = b->d; bdp[0] = 1; for (i = 1; i < top; i++) bdp[i] = 0; b->top = top; - bn_wexpand(c, top); + if (!bn_wexpand(c, top)) + goto err; cdp = c->d; for (i = 0; i < top; i++) cdp[i] = 0; diff --git a/libs/openssl/crypto/bn/bn_lcl.h b/libs/openssl/crypto/bn/bn_lcl.h index 904a7234..00f4f099 100644 --- a/libs/openssl/crypto/bn/bn_lcl.h +++ b/libs/openssl/crypto/bn/bn_lcl.h @@ -204,6 +204,24 @@ extern "C" { # define BN_MUL_LOW_RECURSIVE_SIZE_NORMAL (32)/* 32 */ # define BN_MONT_CTX_SET_SIZE_WORD (64)/* 32 */ +/* + * 2011-02-22 SMS. In various places, a size_t variable or a type cast to + * size_t was used to perform integer-only operations on pointers. This + * failed on VMS with 64-bit pointers (CC /POINTER_SIZE = 64) because size_t + * is still only 32 bits. What's needed in these cases is an integer type + * with the same size as a pointer, which size_t is not certain to be. The + * only fix here is VMS-specific. + */ +# if defined(OPENSSL_SYS_VMS) +# if __INITIAL_POINTER_SIZE == 64 +# define PTR_SIZE_INT long long +# else /* __INITIAL_POINTER_SIZE == 64 */ +# define PTR_SIZE_INT int +# endif /* __INITIAL_POINTER_SIZE == 64 [else] */ +# elif !defined(PTR_SIZE_INT) /* defined(OPENSSL_SYS_VMS) */ +# define PTR_SIZE_INT size_t +# endif /* defined(OPENSSL_SYS_VMS) [else] */ + # if !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) && !defined(PEDANTIC) /* * BN_UMULT_HIGH section. @@ -295,6 +313,15 @@ unsigned __int64 _umul128(unsigned __int64 a, unsigned __int64 b, : "r"(a), "r"(b)); # endif # endif +# elif defined(__aarch64__) && defined(SIXTY_FOUR_BIT_LONG) +# if defined(__GNUC__) && __GNUC__>=2 +# define BN_UMULT_HIGH(a,b) ({ \ + register BN_ULONG ret; \ + asm ("umulh %0,%1,%2" \ + : "=r"(ret) \ + : "r"(a), "r"(b)); \ + ret; }) +# endif # endif /* cpu */ # endif /* OPENSSL_NO_ASM */ diff --git a/libs/openssl/crypto/bn/bn_mont.c b/libs/openssl/crypto/bn/bn_mont.c index aadd5db1..be95bd55 100644 --- a/libs/openssl/crypto/bn/bn_mont.c +++ b/libs/openssl/crypto/bn/bn_mont.c @@ -361,9 +361,9 @@ void BN_MONT_CTX_free(BN_MONT_CTX *mont) if (mont == NULL) return; - BN_free(&(mont->RR)); - BN_free(&(mont->N)); - BN_free(&(mont->Ni)); + BN_clear_free(&(mont->RR)); + BN_clear_free(&(mont->N)); + BN_clear_free(&(mont->Ni)); if (mont->flags & BN_FLG_MALLOCED) OPENSSL_free(mont); } @@ -373,6 +373,9 @@ int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx) int ret = 0; BIGNUM *Ri, *R; + if (BN_is_zero(mod)) + return 0; + BN_CTX_start(ctx); if ((Ri = BN_CTX_get(ctx)) == NULL) goto err; diff --git a/libs/openssl/crypto/bn/bn_recp.c b/libs/openssl/crypto/bn/bn_recp.c index 6826f93b..7497ac62 100644 --- a/libs/openssl/crypto/bn/bn_recp.c +++ b/libs/openssl/crypto/bn/bn_recp.c @@ -152,8 +152,10 @@ int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, if (BN_ucmp(m, &(recp->N)) < 0) { BN_zero(d); - if (!BN_copy(r, m)) + if (!BN_copy(r, m)) { + BN_CTX_end(ctx); return 0; + } BN_CTX_end(ctx); return (1); } diff --git a/libs/openssl/crypto/bn/bn_x931p.c b/libs/openssl/crypto/bn/bn_x931p.c index 6d76b128..efa48bdf 100644 --- a/libs/openssl/crypto/bn/bn_x931p.c +++ b/libs/openssl/crypto/bn/bn_x931p.c @@ -213,14 +213,14 @@ int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx) * exceeded. */ if (!BN_rand(Xp, nbits, 1, 0)) - return 0; + goto err; BN_CTX_start(ctx); t = BN_CTX_get(ctx); for (i = 0; i < 1000; i++) { if (!BN_rand(Xq, nbits, 1, 0)) - return 0; + goto err; /* Check that |Xp - Xq| > 2^(nbits - 100) */ BN_sub(t, Xp, Xq); if (BN_num_bits(t) > (nbits - 100)) @@ -234,6 +234,9 @@ int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx) return 0; + err: + BN_CTX_end(ctx); + return 0; } /* diff --git a/libs/openssl/crypto/bn/rsaz_exp.c b/libs/openssl/crypto/bn/rsaz_exp.c new file mode 100644 index 00000000..c54c6feb --- /dev/null +++ b/libs/openssl/crypto/bn/rsaz_exp.c @@ -0,0 +1,346 @@ +/***************************************************************************** +* * +* Copyright (c) 2012, Intel Corporation * +* * +* All rights reserved. * +* * +* Redistribution and use in source and binary forms, with or without * +* modification, are permitted provided that the following conditions are * +* met: * +* * +* * Redistributions of source code must retain the above copyright * +* notice, this list of conditions and the following disclaimer. * +* * +* * Redistributions in binary form must reproduce the above copyright * +* notice, this list of conditions and the following disclaimer in the * +* documentation and/or other materials provided with the * +* distribution. * +* * +* * Neither the name of the Intel Corporation nor the names of its * +* contributors may be used to endorse or promote products derived from * +* this software without specific prior written permission. * +* * +* * +* THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION ""AS IS"" AND ANY * +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * +* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR * +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * +* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * +* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * +* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * +* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * +* * +****************************************************************************** +* Developers and authors: * +* Shay Gueron (1, 2), and Vlad Krasnov (1) * +* (1) Intel Corporation, Israel Development Center, Haifa, Israel * +* (2) University of Haifa, Israel * +*****************************************************************************/ + +#include "rsaz_exp.h" + +#ifdef RSAZ_ENABLED + +/* + * See crypto/bn/asm/rsaz-avx2.pl for further details. + */ +void rsaz_1024_norm2red_avx2(void *red, const void *norm); +void rsaz_1024_mul_avx2(void *ret, const void *a, const void *b, + const void *n, BN_ULONG k); +void rsaz_1024_sqr_avx2(void *ret, const void *a, const void *n, BN_ULONG k, + int cnt); +void rsaz_1024_scatter5_avx2(void *tbl, const void *val, int i); +void rsaz_1024_gather5_avx2(void *val, const void *tbl, int i); +void rsaz_1024_red2norm_avx2(void *norm, const void *red); + +#if defined(__GNUC__) +# define ALIGN64 __attribute__((aligned(64))) +#elif defined(_MSC_VER) +# define ALIGN64 __declspec(align(64)) +#elif defined(__SUNPRO_C) +# define ALIGN64 +# pragma align 64(one,two80) +#else +/* not fatal, might hurt performance a little */ +# define ALIGN64 +#endif + +ALIGN64 static const BN_ULONG one[40] = { + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +ALIGN64 static const BN_ULONG two80[40] = { + 0, 0, 1 << 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +void RSAZ_1024_mod_exp_avx2(BN_ULONG result_norm[16], + const BN_ULONG base_norm[16], + const BN_ULONG exponent[16], + const BN_ULONG m_norm[16], const BN_ULONG RR[16], + BN_ULONG k0) +{ + unsigned char storage[320 * 3 + 32 * 9 * 16 + 64]; /* 5.5KB */ + unsigned char *p_str = storage + (64 - ((size_t)storage % 64)); + unsigned char *a_inv, *m, *result; + unsigned char *table_s = p_str + 320 * 3; + unsigned char *R2 = table_s; /* borrow */ + int index; + int wvalue; + + if ((((size_t)p_str & 4095) + 320) >> 12) { + result = p_str; + a_inv = p_str + 320; + m = p_str + 320 * 2; /* should not cross page */ + } else { + m = p_str; /* should not cross page */ + result = p_str + 320; + a_inv = p_str + 320 * 2; + } + + rsaz_1024_norm2red_avx2(m, m_norm); + rsaz_1024_norm2red_avx2(a_inv, base_norm); + rsaz_1024_norm2red_avx2(R2, RR); + + rsaz_1024_mul_avx2(R2, R2, R2, m, k0); + rsaz_1024_mul_avx2(R2, R2, two80, m, k0); + + /* table[0] = 1 */ + rsaz_1024_mul_avx2(result, R2, one, m, k0); + /* table[1] = a_inv^1 */ + rsaz_1024_mul_avx2(a_inv, a_inv, R2, m, k0); + + rsaz_1024_scatter5_avx2(table_s, result, 0); + rsaz_1024_scatter5_avx2(table_s, a_inv, 1); + + /* table[2] = a_inv^2 */ + rsaz_1024_sqr_avx2(result, a_inv, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 2); +#if 0 + /* this is almost 2x smaller and less than 1% slower */ + for (index = 3; index < 32; index++) { + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, index); + } +#else + /* table[4] = a_inv^4 */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 4); + /* table[8] = a_inv^8 */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 8); + /* table[16] = a_inv^16 */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 16); + /* table[17] = a_inv^17 */ + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 17); + + /* table[3] */ + rsaz_1024_gather5_avx2(result, table_s, 2); + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 3); + /* table[6] */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 6); + /* table[12] */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 12); + /* table[24] */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 24); + /* table[25] */ + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 25); + + /* table[5] */ + rsaz_1024_gather5_avx2(result, table_s, 4); + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 5); + /* table[10] */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 10); + /* table[20] */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 20); + /* table[21] */ + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 21); + + /* table[7] */ + rsaz_1024_gather5_avx2(result, table_s, 6); + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 7); + /* table[14] */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 14); + /* table[28] */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 28); + /* table[29] */ + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 29); + + /* table[9] */ + rsaz_1024_gather5_avx2(result, table_s, 8); + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 9); + /* table[18] */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 18); + /* table[19] */ + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 19); + + /* table[11] */ + rsaz_1024_gather5_avx2(result, table_s, 10); + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 11); + /* table[22] */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 22); + /* table[23] */ + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 23); + + /* table[13] */ + rsaz_1024_gather5_avx2(result, table_s, 12); + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 13); + /* table[26] */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 26); + /* table[27] */ + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 27); + + /* table[15] */ + rsaz_1024_gather5_avx2(result, table_s, 14); + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 15); + /* table[30] */ + rsaz_1024_sqr_avx2(result, result, m, k0, 1); + rsaz_1024_scatter5_avx2(table_s, result, 30); + /* table[31] */ + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + rsaz_1024_scatter5_avx2(table_s, result, 31); +#endif + + /* load first window */ + p_str = (unsigned char *)exponent; + wvalue = p_str[127] >> 3; + rsaz_1024_gather5_avx2(result, table_s, wvalue); + + index = 1014; + + while (index > -1) { /* loop for the remaining 127 windows */ + + rsaz_1024_sqr_avx2(result, result, m, k0, 5); + + wvalue = *((unsigned short *)&p_str[index / 8]); + wvalue = (wvalue >> (index % 8)) & 31; + index -= 5; + + rsaz_1024_gather5_avx2(a_inv, table_s, wvalue); /* borrow a_inv */ + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + } + + /* square four times */ + rsaz_1024_sqr_avx2(result, result, m, k0, 4); + + wvalue = p_str[0] & 15; + + rsaz_1024_gather5_avx2(a_inv, table_s, wvalue); /* borrow a_inv */ + rsaz_1024_mul_avx2(result, result, a_inv, m, k0); + + /* from Montgomery */ + rsaz_1024_mul_avx2(result, result, one, m, k0); + + rsaz_1024_red2norm_avx2(result_norm, result); + + OPENSSL_cleanse(storage, sizeof(storage)); +} + +/* + * See crypto/bn/rsaz-x86_64.pl for further details. + */ +void rsaz_512_mul(void *ret, const void *a, const void *b, const void *n, + BN_ULONG k); +void rsaz_512_mul_scatter4(void *ret, const void *a, const void *n, + BN_ULONG k, const void *tbl, unsigned int power); +void rsaz_512_mul_gather4(void *ret, const void *a, const void *tbl, + const void *n, BN_ULONG k, unsigned int power); +void rsaz_512_mul_by_one(void *ret, const void *a, const void *n, BN_ULONG k); +void rsaz_512_sqr(void *ret, const void *a, const void *n, BN_ULONG k, + int cnt); +void rsaz_512_scatter4(void *tbl, const BN_ULONG *val, int power); +void rsaz_512_gather4(BN_ULONG *val, const void *tbl, int power); + +void RSAZ_512_mod_exp(BN_ULONG result[8], + const BN_ULONG base[8], const BN_ULONG exponent[8], + const BN_ULONG m[8], BN_ULONG k0, const BN_ULONG RR[8]) +{ + unsigned char storage[16 * 8 * 8 + 64 * 2 + 64]; /* 1.2KB */ + unsigned char *table = storage + (64 - ((size_t)storage % 64)); + BN_ULONG *a_inv = (BN_ULONG *)(table + 16 * 8 * 8); + BN_ULONG *temp = (BN_ULONG *)(table + 16 * 8 * 8 + 8 * 8); + unsigned char *p_str = (unsigned char *)exponent; + int index; + unsigned int wvalue; + + /* table[0] = 1_inv */ + temp[0] = 0 - m[0]; + temp[1] = ~m[1]; + temp[2] = ~m[2]; + temp[3] = ~m[3]; + temp[4] = ~m[4]; + temp[5] = ~m[5]; + temp[6] = ~m[6]; + temp[7] = ~m[7]; + rsaz_512_scatter4(table, temp, 0); + + /* table [1] = a_inv^1 */ + rsaz_512_mul(a_inv, base, RR, m, k0); + rsaz_512_scatter4(table, a_inv, 1); + + /* table [2] = a_inv^2 */ + rsaz_512_sqr(temp, a_inv, m, k0, 1); + rsaz_512_scatter4(table, temp, 2); + + for (index = 3; index < 16; index++) + rsaz_512_mul_scatter4(temp, a_inv, m, k0, table, index); + + /* load first window */ + wvalue = p_str[63]; + + rsaz_512_gather4(temp, table, wvalue >> 4); + rsaz_512_sqr(temp, temp, m, k0, 4); + rsaz_512_mul_gather4(temp, temp, table, m, k0, wvalue & 0xf); + + for (index = 62; index >= 0; index--) { + wvalue = p_str[index]; + + rsaz_512_sqr(temp, temp, m, k0, 4); + rsaz_512_mul_gather4(temp, temp, table, m, k0, wvalue >> 4); + + rsaz_512_sqr(temp, temp, m, k0, 4); + rsaz_512_mul_gather4(temp, temp, table, m, k0, wvalue & 0x0f); + } + + /* from Montgomery */ + rsaz_512_mul_by_one(result, temp, m, k0); + + OPENSSL_cleanse(storage, sizeof(storage)); +} + +#else + +# if defined(PEDANTIC) || defined(__DECC) || defined(__clang__) +static void *dummy = &dummy; +# endif + +#endif diff --git a/libs/openssl/crypto/bn/rsaz_exp.h b/libs/openssl/crypto/bn/rsaz_exp.h new file mode 100644 index 00000000..229e181f --- /dev/null +++ b/libs/openssl/crypto/bn/rsaz_exp.h @@ -0,0 +1,68 @@ +/***************************************************************************** +* * +* Copyright (c) 2012, Intel Corporation * +* * +* All rights reserved. * +* * +* Redistribution and use in source and binary forms, with or without * +* modification, are permitted provided that the following conditions are * +* met: * +* * +* * Redistributions of source code must retain the above copyright * +* notice, this list of conditions and the following disclaimer. * +* * +* * Redistributions in binary form must reproduce the above copyright * +* notice, this list of conditions and the following disclaimer in the * +* documentation and/or other materials provided with the * +* distribution. * +* * +* * Neither the name of the Intel Corporation nor the names of its * +* contributors may be used to endorse or promote products derived from * +* this software without specific prior written permission. * +* * +* * +* THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION ""AS IS"" AND ANY * +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * +* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR * +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * +* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * +* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * +* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * +* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * +* * +****************************************************************************** +* Developers and authors: * +* Shay Gueron (1, 2), and Vlad Krasnov (1) * +* (1) Intel Corporation, Israel Development Center, Haifa, Israel * +* (2) University of Haifa, Israel * +*****************************************************************************/ + +#ifndef RSAZ_EXP_H +# define RSAZ_EXP_H + +# undef RSAZ_ENABLED +# if defined(OPENSSL_BN_ASM_MONT) && \ + (defined(__x86_64) || defined(__x86_64__) || \ + defined(_M_AMD64) || defined(_M_X64)) +# define RSAZ_ENABLED + +# include + +void RSAZ_1024_mod_exp_avx2(BN_ULONG result[16], + const BN_ULONG base_norm[16], + const BN_ULONG exponent[16], + const BN_ULONG m_norm[16], const BN_ULONG RR[16], + BN_ULONG k0); +int rsaz_avx2_eligible(); + +void RSAZ_512_mod_exp(BN_ULONG result[8], + const BN_ULONG base_norm[8], const BN_ULONG exponent[8], + const BN_ULONG m_norm[8], BN_ULONG k0, + const BN_ULONG RR[8]); + +# endif + +#endif diff --git a/libs/openssl/crypto/buffer/buf_str.c b/libs/openssl/crypto/buffer/buf_str.c index fdde3d7d..fa0d608e 100644 --- a/libs/openssl/crypto/buffer/buf_str.c +++ b/libs/openssl/crypto/buffer/buf_str.c @@ -58,12 +58,22 @@ #include #include "cryptlib.h" +#include #include +size_t BUF_strnlen(const char *str, size_t maxlen) +{ + const char *p; + + for (p = str; maxlen-- != 0 && *p != '\0'; ++p) ; + + return p - str; +} + char *BUF_strdup(const char *str) { if (str == NULL) - return (NULL); + return NULL; return BUF_strndup(str, strlen(str)); } @@ -72,14 +82,22 @@ char *BUF_strndup(const char *str, size_t siz) char *ret; if (str == NULL) - return (NULL); + return NULL; + + siz = BUF_strnlen(str, siz); + + if (siz >= INT_MAX) + return NULL; ret = OPENSSL_malloc(siz + 1); if (ret == NULL) { BUFerr(BUF_F_BUF_STRNDUP, ERR_R_MALLOC_FAILURE); - return (NULL); + return NULL; } - BUF_strlcpy(ret, str, siz + 1); + + memcpy(ret, str, siz); + ret[siz] = '\0'; + return (ret); } @@ -87,13 +105,13 @@ void *BUF_memdup(const void *data, size_t siz) { void *ret; - if (data == NULL) - return (NULL); + if (data == NULL || siz >= INT_MAX) + return NULL; ret = OPENSSL_malloc(siz); if (ret == NULL) { BUFerr(BUF_F_BUF_MEMDUP, ERR_R_MALLOC_FAILURE); - return (NULL); + return NULL; } return memcpy(ret, data, siz); } diff --git a/libs/openssl/crypto/buffer/buffer.h b/libs/openssl/crypto/buffer/buffer.h index 632df93c..efd240a5 100644 --- a/libs/openssl/crypto/buffer/buffer.h +++ b/libs/openssl/crypto/buffer/buffer.h @@ -84,8 +84,15 @@ BUF_MEM *BUF_MEM_new(void); void BUF_MEM_free(BUF_MEM *a); int BUF_MEM_grow(BUF_MEM *str, size_t len); int BUF_MEM_grow_clean(BUF_MEM *str, size_t len); +size_t BUF_strnlen(const char *str, size_t maxlen); char *BUF_strdup(const char *str); + +/* + * Like strndup, but in addition, explicitly guarantees to never read past the + * first |siz| bytes of |str|. + */ char *BUF_strndup(const char *str, size_t siz); + void *BUF_memdup(const void *data, size_t siz); void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); diff --git a/libs/openssl/crypto/buildinf.h b/libs/openssl/crypto/buildinf.h index c8621e35..efdefedd 100644 --- a/libs/openssl/crypto/buildinf.h +++ b/libs/openssl/crypto/buildinf.h @@ -9,11 +9,11 @@ /* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */ #define CFLAGS "compiler: cl /MD /Ox /O2 /Ob2 -DOPENSSL_THREADS -DDSO_WIN32 -DOPENSSL_USE_APPLINK -I. -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_STATIC_ENGINE " #define PLATFORM "VC-WIN32" - #define DATE "Mon Jul 20 10:57:37 2015" + #define DATE "Tue Dec 8 16:01:54 2015" #endif #ifdef MK1MF_PLATFORM_BC_NT /* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */ - #define CFLAGS "compiler: bcc32 -DWIN32_LEAN_AND_MEAN -q -w-ccc -w-rch -w-pia -w-aus -w-par -w-inl -c -tWC -tWM -DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp -D_strnicmp=strnicmp -D_timeb=timeb -D_ftime=ftime -O2 -ff -fp -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_DYNAMIC_ENGINE " + #define CFLAGS "compiler: bcc32 -DWIN32_LEAN_AND_MEAN -q -w-ccc -w-rch -w-pia -w-aus -w-par -w-inl -c -tWC -tWM -DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp -D_strnicmp=strnicmp -O2 -ff -fp -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_DYNAMIC_ENGINE " #define PLATFORM "BC-NT" - #define DATE "Mon Jul 20 10:57:37 2015" + #define DATE "Tue Dec 8 16:01:54 2015" #endif diff --git a/libs/openssl/crypto/cast/cast_lcl.h b/libs/openssl/crypto/cast/cast_lcl.h index 7c4ad41b..b0f08294 100644 --- a/libs/openssl/crypto/cast/cast_lcl.h +++ b/libs/openssl/crypto/cast/cast_lcl.h @@ -152,6 +152,8 @@ #if defined(OPENSSL_SYS_WIN32) && defined(_MSC_VER) # define ROTL(a,n) (_lrotl(a,n)) +#elif defined(PEDANTIC) +# define ROTL(a,n) ((((a)<<(n))&0xffffffffL)|((a)>>((32-(n))&31))) #else # define ROTL(a,n) ((((a)<<(n))&0xffffffffL)|((a)>>(32-(n)))) #endif diff --git a/libs/openssl/crypto/cms/cms.h b/libs/openssl/crypto/cms/cms.h new file mode 100644 index 00000000..e6c7f964 --- /dev/null +++ b/libs/openssl/crypto/cms/cms.h @@ -0,0 +1,555 @@ +/* crypto/cms/cms.h */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#ifndef HEADER_CMS_H +# define HEADER_CMS_H + +# include + +# ifdef OPENSSL_NO_CMS +# error CMS is disabled. +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct CMS_ContentInfo_st CMS_ContentInfo; +typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_CertificateChoices CMS_CertificateChoices; +typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; +typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; +typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest; +typedef struct CMS_Receipt_st CMS_Receipt; +typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey; +typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute; + +DECLARE_STACK_OF(CMS_SignerInfo) +DECLARE_STACK_OF(GENERAL_NAMES) +DECLARE_STACK_OF(CMS_RecipientEncryptedKey) +DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) +DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) +DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) + +# define CMS_SIGNERINFO_ISSUER_SERIAL 0 +# define CMS_SIGNERINFO_KEYIDENTIFIER 1 + +# define CMS_RECIPINFO_NONE -1 +# define CMS_RECIPINFO_TRANS 0 +# define CMS_RECIPINFO_AGREE 1 +# define CMS_RECIPINFO_KEK 2 +# define CMS_RECIPINFO_PASS 3 +# define CMS_RECIPINFO_OTHER 4 + +/* S/MIME related flags */ + +# define CMS_TEXT 0x1 +# define CMS_NOCERTS 0x2 +# define CMS_NO_CONTENT_VERIFY 0x4 +# define CMS_NO_ATTR_VERIFY 0x8 +# define CMS_NOSIGS \ + (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY) +# define CMS_NOINTERN 0x10 +# define CMS_NO_SIGNER_CERT_VERIFY 0x20 +# define CMS_NOVERIFY 0x20 +# define CMS_DETACHED 0x40 +# define CMS_BINARY 0x80 +# define CMS_NOATTR 0x100 +# define CMS_NOSMIMECAP 0x200 +# define CMS_NOOLDMIMETYPE 0x400 +# define CMS_CRLFEOL 0x800 +# define CMS_STREAM 0x1000 +# define CMS_NOCRL 0x2000 +# define CMS_PARTIAL 0x4000 +# define CMS_REUSE_DIGEST 0x8000 +# define CMS_USE_KEYID 0x10000 +# define CMS_DEBUG_DECRYPT 0x20000 +# define CMS_KEY_PARAM 0x40000 + +const ASN1_OBJECT *CMS_get0_type(CMS_ContentInfo *cms); + +BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont); +int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio); + +ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); +int CMS_is_detached(CMS_ContentInfo *cms); +int CMS_set_detached(CMS_ContentInfo *cms, int detached); + +# ifdef HEADER_PEM_H +DECLARE_PEM_rw_const(CMS, CMS_ContentInfo) +# endif +int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms); +CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms); +int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms); + +BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms); +int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags); +int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, + int flags); +CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont); +int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); + +int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, + unsigned int flags); + +CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, + STACK_OF(X509) *certs, BIO *data, + unsigned int flags); + +CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, + X509 *signcert, EVP_PKEY *pkey, + STACK_OF(X509) *certs, unsigned int flags); + +int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); +CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); + +int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, + unsigned int flags); +CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, + unsigned int flags); + +int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, + const unsigned char *key, size_t keylen, + BIO *dcont, BIO *out, unsigned int flags); + +CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, + const unsigned char *key, + size_t keylen, unsigned int flags); + +int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, + const unsigned char *key, size_t keylen); + +int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, + X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags); + +int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, + STACK_OF(X509) *certs, + X509_STORE *store, unsigned int flags); + +STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); + +CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, + const EVP_CIPHER *cipher, unsigned int flags); + +int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, + BIO *dcont, BIO *out, unsigned int flags); + +int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert); +int CMS_decrypt_set1_key(CMS_ContentInfo *cms, + unsigned char *key, size_t keylen, + unsigned char *id, size_t idlen); +int CMS_decrypt_set1_password(CMS_ContentInfo *cms, + unsigned char *pass, ossl_ssize_t passlen); + +STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); +int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); +EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); +CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); +CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, + X509 *recip, unsigned int flags); +int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); +int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); +int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri, + EVP_PKEY **pk, X509 **recip, + X509_ALGOR **palg); +int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno); + +CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, + unsigned char *key, size_t keylen, + unsigned char *id, size_t idlen, + ASN1_GENERALIZEDTIME *date, + ASN1_OBJECT *otherTypeId, + ASN1_TYPE *otherType); + +int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, + X509_ALGOR **palg, + ASN1_OCTET_STRING **pid, + ASN1_GENERALIZEDTIME **pdate, + ASN1_OBJECT **potherid, + ASN1_TYPE **pothertype); + +int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, + unsigned char *key, size_t keylen); + +int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, + const unsigned char *id, size_t idlen); + +int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, + unsigned char *pass, + ossl_ssize_t passlen); + +CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms, + int iter, int wrap_nid, + int pbe_nid, + unsigned char *pass, + ossl_ssize_t passlen, + const EVP_CIPHER *kekciph); + +int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); +int CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); + +int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, + unsigned int flags); +CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags); + +int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); +const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); + +CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms); +int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert); +int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert); +STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms); + +CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms); +int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl); +int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); +STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); + +int CMS_SignedData_init(CMS_ContentInfo *cms); +CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, + X509 *signer, EVP_PKEY *pk, const EVP_MD *md, + unsigned int flags); +EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si); +EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si); +STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms); + +void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer); +int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, ASN1_INTEGER **sno); +int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert); +int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs, + unsigned int flags); +void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, + X509 **signer, X509_ALGOR **pdig, + X509_ALGOR **psig); +ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); +int CMS_SignerInfo_sign(CMS_SignerInfo *si); +int CMS_SignerInfo_verify(CMS_SignerInfo *si); +int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); + +int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); +int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, + int algnid, int keysize); +int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap); + +int CMS_signed_get_attr_count(const CMS_SignerInfo *si); +int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, + int lastpos); +int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc); +X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc); +int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); +int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int type, + const void *bytes, int len); +int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, + int nid, int type, + const void *bytes, int len); +int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si, + const char *attrname, int type, + const void *bytes, int len); +void *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, + int lastpos, int type); + +int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si); +int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid, + int lastpos); +int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc); +X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc); +int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); +int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int type, + const void *bytes, int len); +int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si, + int nid, int type, + const void *bytes, int len); +int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si, + const char *attrname, int type, + const void *bytes, int len); +void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, + int lastpos, int type); + +# ifdef HEADER_X509V3_H + +int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr); +CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen, + int allorfirst, + STACK_OF(GENERAL_NAMES) + *receiptList, STACK_OF(GENERAL_NAMES) + *receiptsTo); +int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); +void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, + ASN1_STRING **pcid, + int *pallorfirst, + STACK_OF(GENERAL_NAMES) **plist, + STACK_OF(GENERAL_NAMES) **prto); +# endif +int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri, + X509_ALGOR **palg, + ASN1_OCTET_STRING **pukm); +STACK_OF(CMS_RecipientEncryptedKey) +*CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri); + +int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri, + X509_ALGOR **pubalg, + ASN1_BIT_STRING **pubkey, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno); + +int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert); + +int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek, + ASN1_OCTET_STRING **keyid, + ASN1_GENERALIZEDTIME **tm, + CMS_OtherKeyAttribute **other, + X509_NAME **issuer, ASN1_INTEGER **sno); +int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek, + X509 *cert); +int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); +EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri); +int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms, + CMS_RecipientInfo *ri, + CMS_RecipientEncryptedKey *rek); + +int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, + ASN1_OCTET_STRING *ukm, int keylen); + +/* BEGIN ERROR CODES */ +/* + * The following lines are auto generated by the script mkerr.pl. Any changes + * made after this point may be overwritten when the script is next run. + */ +void ERR_load_CMS_strings(void); + +/* Error codes for the CMS functions. */ + +/* Function codes. */ +# define CMS_F_CHECK_CONTENT 99 +# define CMS_F_CMS_ADD0_CERT 164 +# define CMS_F_CMS_ADD0_RECIPIENT_KEY 100 +# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 165 +# define CMS_F_CMS_ADD1_RECEIPTREQUEST 158 +# define CMS_F_CMS_ADD1_RECIPIENT_CERT 101 +# define CMS_F_CMS_ADD1_SIGNER 102 +# define CMS_F_CMS_ADD1_SIGNINGTIME 103 +# define CMS_F_CMS_COMPRESS 104 +# define CMS_F_CMS_COMPRESSEDDATA_CREATE 105 +# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 106 +# define CMS_F_CMS_COPY_CONTENT 107 +# define CMS_F_CMS_COPY_MESSAGEDIGEST 108 +# define CMS_F_CMS_DATA 109 +# define CMS_F_CMS_DATAFINAL 110 +# define CMS_F_CMS_DATAINIT 111 +# define CMS_F_CMS_DECRYPT 112 +# define CMS_F_CMS_DECRYPT_SET1_KEY 113 +# define CMS_F_CMS_DECRYPT_SET1_PASSWORD 166 +# define CMS_F_CMS_DECRYPT_SET1_PKEY 114 +# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 115 +# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 116 +# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 117 +# define CMS_F_CMS_DIGEST_VERIFY 118 +# define CMS_F_CMS_ENCODE_RECEIPT 161 +# define CMS_F_CMS_ENCRYPT 119 +# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 120 +# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 121 +# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 122 +# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 123 +# define CMS_F_CMS_ENVELOPEDDATA_CREATE 124 +# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 125 +# define CMS_F_CMS_ENVELOPED_DATA_INIT 126 +# define CMS_F_CMS_ENV_ASN1_CTRL 171 +# define CMS_F_CMS_FINAL 127 +# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 128 +# define CMS_F_CMS_GET0_CONTENT 129 +# define CMS_F_CMS_GET0_ECONTENT_TYPE 130 +# define CMS_F_CMS_GET0_ENVELOPED 131 +# define CMS_F_CMS_GET0_REVOCATION_CHOICES 132 +# define CMS_F_CMS_GET0_SIGNED 133 +# define CMS_F_CMS_MSGSIGDIGEST_ADD1 162 +# define CMS_F_CMS_RECEIPTREQUEST_CREATE0 159 +# define CMS_F_CMS_RECEIPT_VERIFY 160 +# define CMS_F_CMS_RECIPIENTINFO_DECRYPT 134 +# define CMS_F_CMS_RECIPIENTINFO_ENCRYPT 169 +# define CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT 178 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG 175 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID 173 +# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS 172 +# define CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP 174 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 135 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 136 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 137 +# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 138 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 139 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 140 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 141 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 142 +# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 143 +# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 167 +# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 144 +# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 168 +# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 145 +# define CMS_F_CMS_SD_ASN1_CTRL 170 +# define CMS_F_CMS_SET1_IAS 176 +# define CMS_F_CMS_SET1_KEYID 177 +# define CMS_F_CMS_SET1_SIGNERIDENTIFIER 146 +# define CMS_F_CMS_SET_DETACHED 147 +# define CMS_F_CMS_SIGN 148 +# define CMS_F_CMS_SIGNED_DATA_INIT 149 +# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 150 +# define CMS_F_CMS_SIGNERINFO_SIGN 151 +# define CMS_F_CMS_SIGNERINFO_VERIFY 152 +# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 153 +# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 154 +# define CMS_F_CMS_SIGN_RECEIPT 163 +# define CMS_F_CMS_STREAM 155 +# define CMS_F_CMS_UNCOMPRESS 156 +# define CMS_F_CMS_VERIFY 157 + +/* Reason codes. */ +# define CMS_R_ADD_SIGNER_ERROR 99 +# define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 +# define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 +# define CMS_R_CERTIFICATE_VERIFY_ERROR 100 +# define CMS_R_CIPHER_INITIALISATION_ERROR 101 +# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 +# define CMS_R_CMS_DATAFINAL_ERROR 103 +# define CMS_R_CMS_LIB 104 +# define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 +# define CMS_R_CONTENT_NOT_FOUND 105 +# define CMS_R_CONTENT_TYPE_MISMATCH 171 +# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 +# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 +# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 +# define CMS_R_CONTENT_VERIFY_ERROR 109 +# define CMS_R_CTRL_ERROR 110 +# define CMS_R_CTRL_FAILURE 111 +# define CMS_R_DECRYPT_ERROR 112 +# define CMS_R_DIGEST_ERROR 161 +# define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 +# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 +# define CMS_R_ERROR_SETTING_KEY 115 +# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 +# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 +# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 +# define CMS_R_INVALID_KEY_LENGTH 118 +# define CMS_R_MD_BIO_INIT_ERROR 119 +# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 +# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 +# define CMS_R_MSGSIGDIGEST_ERROR 172 +# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 +# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 +# define CMS_R_NEED_ONE_SIGNER 164 +# define CMS_R_NOT_A_SIGNED_RECEIPT 165 +# define CMS_R_NOT_ENCRYPTED_DATA 122 +# define CMS_R_NOT_KEK 123 +# define CMS_R_NOT_KEY_AGREEMENT 181 +# define CMS_R_NOT_KEY_TRANSPORT 124 +# define CMS_R_NOT_PWRI 177 +# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 +# define CMS_R_NO_CIPHER 126 +# define CMS_R_NO_CONTENT 127 +# define CMS_R_NO_CONTENT_TYPE 173 +# define CMS_R_NO_DEFAULT_DIGEST 128 +# define CMS_R_NO_DIGEST_SET 129 +# define CMS_R_NO_KEY 130 +# define CMS_R_NO_KEY_OR_CERT 174 +# define CMS_R_NO_MATCHING_DIGEST 131 +# define CMS_R_NO_MATCHING_RECIPIENT 132 +# define CMS_R_NO_MATCHING_SIGNATURE 166 +# define CMS_R_NO_MSGSIGDIGEST 167 +# define CMS_R_NO_PASSWORD 178 +# define CMS_R_NO_PRIVATE_KEY 133 +# define CMS_R_NO_PUBLIC_KEY 134 +# define CMS_R_NO_RECEIPT_REQUEST 168 +# define CMS_R_NO_SIGNERS 135 +# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 +# define CMS_R_RECEIPT_DECODE_ERROR 169 +# define CMS_R_RECIPIENT_ERROR 137 +# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 +# define CMS_R_SIGNFINAL_ERROR 139 +# define CMS_R_SMIME_TEXT_ERROR 140 +# define CMS_R_STORE_INIT_ERROR 141 +# define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 +# define CMS_R_TYPE_NOT_DATA 143 +# define CMS_R_TYPE_NOT_DIGESTED_DATA 144 +# define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 +# define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 +# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 +# define CMS_R_UNKNOWN_CIPHER 148 +# define CMS_R_UNKNOWN_DIGEST_ALGORIHM 149 +# define CMS_R_UNKNOWN_ID 150 +# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 +# define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 +# define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 +# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 +# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 +# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE 155 +# define CMS_R_UNSUPPORTED_TYPE 156 +# define CMS_R_UNWRAP_ERROR 157 +# define CMS_R_UNWRAP_FAILURE 180 +# define CMS_R_VERIFICATION_FAILURE 158 +# define CMS_R_WRAP_ERROR 159 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/libs/openssl/crypto/cms/cms_asn1.c b/libs/openssl/crypto/cms/cms_asn1.c new file mode 100644 index 00000000..81a3407f --- /dev/null +++ b/libs/openssl/crypto/cms/cms_asn1.c @@ -0,0 +1,459 @@ +/* crypto/cms/cms_asn1.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include +#include +#include +#include "cms.h" +#include "cms_lcl.h" + + +ASN1_SEQUENCE(CMS_IssuerAndSerialNumber) = { + ASN1_SIMPLE(CMS_IssuerAndSerialNumber, issuer, X509_NAME), + ASN1_SIMPLE(CMS_IssuerAndSerialNumber, serialNumber, ASN1_INTEGER) +} ASN1_SEQUENCE_END(CMS_IssuerAndSerialNumber) + +ASN1_SEQUENCE(CMS_OtherCertificateFormat) = { + ASN1_SIMPLE(CMS_OtherCertificateFormat, otherCertFormat, ASN1_OBJECT), + ASN1_OPT(CMS_OtherCertificateFormat, otherCert, ASN1_ANY) +} ASN1_SEQUENCE_END(CMS_OtherCertificateFormat) + +ASN1_CHOICE(CMS_CertificateChoices) = { + ASN1_SIMPLE(CMS_CertificateChoices, d.certificate, X509), + ASN1_IMP(CMS_CertificateChoices, d.extendedCertificate, ASN1_SEQUENCE, 0), + ASN1_IMP(CMS_CertificateChoices, d.v1AttrCert, ASN1_SEQUENCE, 1), + ASN1_IMP(CMS_CertificateChoices, d.v2AttrCert, ASN1_SEQUENCE, 2), + ASN1_IMP(CMS_CertificateChoices, d.other, CMS_OtherCertificateFormat, 3) +} ASN1_CHOICE_END(CMS_CertificateChoices) + +ASN1_CHOICE(CMS_SignerIdentifier) = { + ASN1_SIMPLE(CMS_SignerIdentifier, d.issuerAndSerialNumber, CMS_IssuerAndSerialNumber), + ASN1_IMP(CMS_SignerIdentifier, d.subjectKeyIdentifier, ASN1_OCTET_STRING, 0) +} ASN1_CHOICE_END(CMS_SignerIdentifier) + +ASN1_NDEF_SEQUENCE(CMS_EncapsulatedContentInfo) = { + ASN1_SIMPLE(CMS_EncapsulatedContentInfo, eContentType, ASN1_OBJECT), + ASN1_NDEF_EXP_OPT(CMS_EncapsulatedContentInfo, eContent, ASN1_OCTET_STRING_NDEF, 0) +} ASN1_NDEF_SEQUENCE_END(CMS_EncapsulatedContentInfo) + +/* Minor tweak to operation: free up signer key, cert */ +static int cms_si_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, + void *exarg) +{ + if (operation == ASN1_OP_FREE_POST) { + CMS_SignerInfo *si = (CMS_SignerInfo *)*pval; + if (si->pkey) + EVP_PKEY_free(si->pkey); + if (si->signer) + X509_free(si->signer); + if (si->pctx) + EVP_MD_CTX_cleanup(&si->mctx); + } + return 1; +} + +ASN1_SEQUENCE_cb(CMS_SignerInfo, cms_si_cb) = { + ASN1_SIMPLE(CMS_SignerInfo, version, LONG), + ASN1_SIMPLE(CMS_SignerInfo, sid, CMS_SignerIdentifier), + ASN1_SIMPLE(CMS_SignerInfo, digestAlgorithm, X509_ALGOR), + ASN1_IMP_SET_OF_OPT(CMS_SignerInfo, signedAttrs, X509_ATTRIBUTE, 0), + ASN1_SIMPLE(CMS_SignerInfo, signatureAlgorithm, X509_ALGOR), + ASN1_SIMPLE(CMS_SignerInfo, signature, ASN1_OCTET_STRING), + ASN1_IMP_SET_OF_OPT(CMS_SignerInfo, unsignedAttrs, X509_ATTRIBUTE, 1) +} ASN1_SEQUENCE_END_cb(CMS_SignerInfo, CMS_SignerInfo) + +ASN1_SEQUENCE(CMS_OtherRevocationInfoFormat) = { + ASN1_SIMPLE(CMS_OtherRevocationInfoFormat, otherRevInfoFormat, ASN1_OBJECT), + ASN1_OPT(CMS_OtherRevocationInfoFormat, otherRevInfo, ASN1_ANY) +} ASN1_SEQUENCE_END(CMS_OtherRevocationInfoFormat) + +ASN1_CHOICE(CMS_RevocationInfoChoice) = { + ASN1_SIMPLE(CMS_RevocationInfoChoice, d.crl, X509_CRL), + ASN1_IMP(CMS_RevocationInfoChoice, d.other, CMS_OtherRevocationInfoFormat, 1) +} ASN1_CHOICE_END(CMS_RevocationInfoChoice) + +ASN1_NDEF_SEQUENCE(CMS_SignedData) = { + ASN1_SIMPLE(CMS_SignedData, version, LONG), + ASN1_SET_OF(CMS_SignedData, digestAlgorithms, X509_ALGOR), + ASN1_SIMPLE(CMS_SignedData, encapContentInfo, CMS_EncapsulatedContentInfo), + ASN1_IMP_SET_OF_OPT(CMS_SignedData, certificates, CMS_CertificateChoices, 0), + ASN1_IMP_SET_OF_OPT(CMS_SignedData, crls, CMS_RevocationInfoChoice, 1), + ASN1_SET_OF(CMS_SignedData, signerInfos, CMS_SignerInfo) +} ASN1_NDEF_SEQUENCE_END(CMS_SignedData) + +ASN1_SEQUENCE(CMS_OriginatorInfo) = { + ASN1_IMP_SET_OF_OPT(CMS_OriginatorInfo, certificates, CMS_CertificateChoices, 0), + ASN1_IMP_SET_OF_OPT(CMS_OriginatorInfo, crls, CMS_RevocationInfoChoice, 1) +} ASN1_SEQUENCE_END(CMS_OriginatorInfo) + +ASN1_NDEF_SEQUENCE(CMS_EncryptedContentInfo) = { + ASN1_SIMPLE(CMS_EncryptedContentInfo, contentType, ASN1_OBJECT), + ASN1_SIMPLE(CMS_EncryptedContentInfo, contentEncryptionAlgorithm, X509_ALGOR), + ASN1_IMP_OPT(CMS_EncryptedContentInfo, encryptedContent, ASN1_OCTET_STRING_NDEF, 0) +} ASN1_NDEF_SEQUENCE_END(CMS_EncryptedContentInfo) + +ASN1_SEQUENCE(CMS_KeyTransRecipientInfo) = { + ASN1_SIMPLE(CMS_KeyTransRecipientInfo, version, LONG), + ASN1_SIMPLE(CMS_KeyTransRecipientInfo, rid, CMS_SignerIdentifier), + ASN1_SIMPLE(CMS_KeyTransRecipientInfo, keyEncryptionAlgorithm, X509_ALGOR), + ASN1_SIMPLE(CMS_KeyTransRecipientInfo, encryptedKey, ASN1_OCTET_STRING) +} ASN1_SEQUENCE_END(CMS_KeyTransRecipientInfo) + +ASN1_SEQUENCE(CMS_OtherKeyAttribute) = { + ASN1_SIMPLE(CMS_OtherKeyAttribute, keyAttrId, ASN1_OBJECT), + ASN1_OPT(CMS_OtherKeyAttribute, keyAttr, ASN1_ANY) +} ASN1_SEQUENCE_END(CMS_OtherKeyAttribute) + +ASN1_SEQUENCE(CMS_RecipientKeyIdentifier) = { + ASN1_SIMPLE(CMS_RecipientKeyIdentifier, subjectKeyIdentifier, ASN1_OCTET_STRING), + ASN1_OPT(CMS_RecipientKeyIdentifier, date, ASN1_GENERALIZEDTIME), + ASN1_OPT(CMS_RecipientKeyIdentifier, other, CMS_OtherKeyAttribute) +} ASN1_SEQUENCE_END(CMS_RecipientKeyIdentifier) + +ASN1_CHOICE(CMS_KeyAgreeRecipientIdentifier) = { + ASN1_SIMPLE(CMS_KeyAgreeRecipientIdentifier, d.issuerAndSerialNumber, CMS_IssuerAndSerialNumber), + ASN1_IMP(CMS_KeyAgreeRecipientIdentifier, d.rKeyId, CMS_RecipientKeyIdentifier, 0) +} ASN1_CHOICE_END(CMS_KeyAgreeRecipientIdentifier) + +static int cms_rek_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, + void *exarg) +{ + CMS_RecipientEncryptedKey *rek = (CMS_RecipientEncryptedKey *)*pval; + if (operation == ASN1_OP_FREE_POST) { + if (rek->pkey) + EVP_PKEY_free(rek->pkey); + } + return 1; +} + +ASN1_SEQUENCE_cb(CMS_RecipientEncryptedKey, cms_rek_cb) = { + ASN1_SIMPLE(CMS_RecipientEncryptedKey, rid, CMS_KeyAgreeRecipientIdentifier), + ASN1_SIMPLE(CMS_RecipientEncryptedKey, encryptedKey, ASN1_OCTET_STRING) +} ASN1_SEQUENCE_END_cb(CMS_RecipientEncryptedKey, CMS_RecipientEncryptedKey) + +ASN1_SEQUENCE(CMS_OriginatorPublicKey) = { + ASN1_SIMPLE(CMS_OriginatorPublicKey, algorithm, X509_ALGOR), + ASN1_SIMPLE(CMS_OriginatorPublicKey, publicKey, ASN1_BIT_STRING) +} ASN1_SEQUENCE_END(CMS_OriginatorPublicKey) + +ASN1_CHOICE(CMS_OriginatorIdentifierOrKey) = { + ASN1_SIMPLE(CMS_OriginatorIdentifierOrKey, d.issuerAndSerialNumber, CMS_IssuerAndSerialNumber), + ASN1_IMP(CMS_OriginatorIdentifierOrKey, d.subjectKeyIdentifier, ASN1_OCTET_STRING, 0), + ASN1_IMP(CMS_OriginatorIdentifierOrKey, d.originatorKey, CMS_OriginatorPublicKey, 1) +} ASN1_CHOICE_END(CMS_OriginatorIdentifierOrKey) + +static int cms_kari_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, + void *exarg) +{ + CMS_KeyAgreeRecipientInfo *kari = (CMS_KeyAgreeRecipientInfo *)*pval; + if (operation == ASN1_OP_NEW_POST) { + EVP_CIPHER_CTX_init(&kari->ctx); + EVP_CIPHER_CTX_set_flags(&kari->ctx, EVP_CIPHER_CTX_FLAG_WRAP_ALLOW); + kari->pctx = NULL; + } else if (operation == ASN1_OP_FREE_POST) { + if (kari->pctx) + EVP_PKEY_CTX_free(kari->pctx); + EVP_CIPHER_CTX_cleanup(&kari->ctx); + } + return 1; +} + +ASN1_SEQUENCE_cb(CMS_KeyAgreeRecipientInfo, cms_kari_cb) = { + ASN1_SIMPLE(CMS_KeyAgreeRecipientInfo, version, LONG), + ASN1_EXP(CMS_KeyAgreeRecipientInfo, originator, CMS_OriginatorIdentifierOrKey, 0), + ASN1_EXP_OPT(CMS_KeyAgreeRecipientInfo, ukm, ASN1_OCTET_STRING, 1), + ASN1_SIMPLE(CMS_KeyAgreeRecipientInfo, keyEncryptionAlgorithm, X509_ALGOR), + ASN1_SEQUENCE_OF(CMS_KeyAgreeRecipientInfo, recipientEncryptedKeys, CMS_RecipientEncryptedKey) +} ASN1_SEQUENCE_END_cb(CMS_KeyAgreeRecipientInfo, CMS_KeyAgreeRecipientInfo) + +ASN1_SEQUENCE(CMS_KEKIdentifier) = { + ASN1_SIMPLE(CMS_KEKIdentifier, keyIdentifier, ASN1_OCTET_STRING), + ASN1_OPT(CMS_KEKIdentifier, date, ASN1_GENERALIZEDTIME), + ASN1_OPT(CMS_KEKIdentifier, other, CMS_OtherKeyAttribute) +} ASN1_SEQUENCE_END(CMS_KEKIdentifier) + +ASN1_SEQUENCE(CMS_KEKRecipientInfo) = { + ASN1_SIMPLE(CMS_KEKRecipientInfo, version, LONG), + ASN1_SIMPLE(CMS_KEKRecipientInfo, kekid, CMS_KEKIdentifier), + ASN1_SIMPLE(CMS_KEKRecipientInfo, keyEncryptionAlgorithm, X509_ALGOR), + ASN1_SIMPLE(CMS_KEKRecipientInfo, encryptedKey, ASN1_OCTET_STRING) +} ASN1_SEQUENCE_END(CMS_KEKRecipientInfo) + +ASN1_SEQUENCE(CMS_PasswordRecipientInfo) = { + ASN1_SIMPLE(CMS_PasswordRecipientInfo, version, LONG), + ASN1_IMP_OPT(CMS_PasswordRecipientInfo, keyDerivationAlgorithm, X509_ALGOR, 0), + ASN1_SIMPLE(CMS_PasswordRecipientInfo, keyEncryptionAlgorithm, X509_ALGOR), + ASN1_SIMPLE(CMS_PasswordRecipientInfo, encryptedKey, ASN1_OCTET_STRING) +} ASN1_SEQUENCE_END(CMS_PasswordRecipientInfo) + +ASN1_SEQUENCE(CMS_OtherRecipientInfo) = { + ASN1_SIMPLE(CMS_OtherRecipientInfo, oriType, ASN1_OBJECT), + ASN1_OPT(CMS_OtherRecipientInfo, oriValue, ASN1_ANY) +} ASN1_SEQUENCE_END(CMS_OtherRecipientInfo) + +/* Free up RecipientInfo additional data */ +static int cms_ri_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, + void *exarg) +{ + if (operation == ASN1_OP_FREE_PRE) { + CMS_RecipientInfo *ri = (CMS_RecipientInfo *)*pval; + if (ri->type == CMS_RECIPINFO_TRANS) { + CMS_KeyTransRecipientInfo *ktri = ri->d.ktri; + if (ktri->pkey) + EVP_PKEY_free(ktri->pkey); + if (ktri->recip) + X509_free(ktri->recip); + if (ktri->pctx) + EVP_PKEY_CTX_free(ktri->pctx); + } else if (ri->type == CMS_RECIPINFO_KEK) { + CMS_KEKRecipientInfo *kekri = ri->d.kekri; + if (kekri->key) { + OPENSSL_cleanse(kekri->key, kekri->keylen); + OPENSSL_free(kekri->key); + } + } else if (ri->type == CMS_RECIPINFO_PASS) { + CMS_PasswordRecipientInfo *pwri = ri->d.pwri; + if (pwri->pass) { + OPENSSL_cleanse(pwri->pass, pwri->passlen); + OPENSSL_free(pwri->pass); + } + } + } + return 1; +} + +ASN1_CHOICE_cb(CMS_RecipientInfo, cms_ri_cb) = { + ASN1_SIMPLE(CMS_RecipientInfo, d.ktri, CMS_KeyTransRecipientInfo), + ASN1_IMP(CMS_RecipientInfo, d.kari, CMS_KeyAgreeRecipientInfo, 1), + ASN1_IMP(CMS_RecipientInfo, d.kekri, CMS_KEKRecipientInfo, 2), + ASN1_IMP(CMS_RecipientInfo, d.pwri, CMS_PasswordRecipientInfo, 3), + ASN1_IMP(CMS_RecipientInfo, d.ori, CMS_OtherRecipientInfo, 4) +} ASN1_CHOICE_END_cb(CMS_RecipientInfo, CMS_RecipientInfo, type) + +ASN1_NDEF_SEQUENCE(CMS_EnvelopedData) = { + ASN1_SIMPLE(CMS_EnvelopedData, version, LONG), + ASN1_IMP_OPT(CMS_EnvelopedData, originatorInfo, CMS_OriginatorInfo, 0), + ASN1_SET_OF(CMS_EnvelopedData, recipientInfos, CMS_RecipientInfo), + ASN1_SIMPLE(CMS_EnvelopedData, encryptedContentInfo, CMS_EncryptedContentInfo), + ASN1_IMP_SET_OF_OPT(CMS_EnvelopedData, unprotectedAttrs, X509_ATTRIBUTE, 1) +} ASN1_NDEF_SEQUENCE_END(CMS_EnvelopedData) + +ASN1_NDEF_SEQUENCE(CMS_DigestedData) = { + ASN1_SIMPLE(CMS_DigestedData, version, LONG), + ASN1_SIMPLE(CMS_DigestedData, digestAlgorithm, X509_ALGOR), + ASN1_SIMPLE(CMS_DigestedData, encapContentInfo, CMS_EncapsulatedContentInfo), + ASN1_SIMPLE(CMS_DigestedData, digest, ASN1_OCTET_STRING) +} ASN1_NDEF_SEQUENCE_END(CMS_DigestedData) + +ASN1_NDEF_SEQUENCE(CMS_EncryptedData) = { + ASN1_SIMPLE(CMS_EncryptedData, version, LONG), + ASN1_SIMPLE(CMS_EncryptedData, encryptedContentInfo, CMS_EncryptedContentInfo), + ASN1_IMP_SET_OF_OPT(CMS_EncryptedData, unprotectedAttrs, X509_ATTRIBUTE, 1) +} ASN1_NDEF_SEQUENCE_END(CMS_EncryptedData) + +ASN1_NDEF_SEQUENCE(CMS_AuthenticatedData) = { + ASN1_SIMPLE(CMS_AuthenticatedData, version, LONG), + ASN1_IMP_OPT(CMS_AuthenticatedData, originatorInfo, CMS_OriginatorInfo, 0), + ASN1_SET_OF(CMS_AuthenticatedData, recipientInfos, CMS_RecipientInfo), + ASN1_SIMPLE(CMS_AuthenticatedData, macAlgorithm, X509_ALGOR), + ASN1_IMP(CMS_AuthenticatedData, digestAlgorithm, X509_ALGOR, 1), + ASN1_SIMPLE(CMS_AuthenticatedData, encapContentInfo, CMS_EncapsulatedContentInfo), + ASN1_IMP_SET_OF_OPT(CMS_AuthenticatedData, authAttrs, X509_ALGOR, 2), + ASN1_SIMPLE(CMS_AuthenticatedData, mac, ASN1_OCTET_STRING), + ASN1_IMP_SET_OF_OPT(CMS_AuthenticatedData, unauthAttrs, X509_ALGOR, 3) +} ASN1_NDEF_SEQUENCE_END(CMS_AuthenticatedData) + +ASN1_NDEF_SEQUENCE(CMS_CompressedData) = { + ASN1_SIMPLE(CMS_CompressedData, version, LONG), + ASN1_SIMPLE(CMS_CompressedData, compressionAlgorithm, X509_ALGOR), + ASN1_SIMPLE(CMS_CompressedData, encapContentInfo, CMS_EncapsulatedContentInfo), +} ASN1_NDEF_SEQUENCE_END(CMS_CompressedData) + +/* This is the ANY DEFINED BY table for the top level ContentInfo structure */ + +ASN1_ADB_TEMPLATE(cms_default) = ASN1_EXP(CMS_ContentInfo, d.other, ASN1_ANY, 0); + +ASN1_ADB(CMS_ContentInfo) = { + ADB_ENTRY(NID_pkcs7_data, ASN1_NDEF_EXP(CMS_ContentInfo, d.data, ASN1_OCTET_STRING_NDEF, 0)), + ADB_ENTRY(NID_pkcs7_signed, ASN1_NDEF_EXP(CMS_ContentInfo, d.signedData, CMS_SignedData, 0)), + ADB_ENTRY(NID_pkcs7_enveloped, ASN1_NDEF_EXP(CMS_ContentInfo, d.envelopedData, CMS_EnvelopedData, 0)), + ADB_ENTRY(NID_pkcs7_digest, ASN1_NDEF_EXP(CMS_ContentInfo, d.digestedData, CMS_DigestedData, 0)), + ADB_ENTRY(NID_pkcs7_encrypted, ASN1_NDEF_EXP(CMS_ContentInfo, d.encryptedData, CMS_EncryptedData, 0)), + ADB_ENTRY(NID_id_smime_ct_authData, ASN1_NDEF_EXP(CMS_ContentInfo, d.authenticatedData, CMS_AuthenticatedData, 0)), + ADB_ENTRY(NID_id_smime_ct_compressedData, ASN1_NDEF_EXP(CMS_ContentInfo, d.compressedData, CMS_CompressedData, 0)), +} ASN1_ADB_END(CMS_ContentInfo, 0, contentType, 0, &cms_default_tt, NULL); + +/* CMS streaming support */ +static int cms_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, + void *exarg) +{ + ASN1_STREAM_ARG *sarg = exarg; + CMS_ContentInfo *cms = NULL; + if (pval) + cms = (CMS_ContentInfo *)*pval; + else + return 1; + switch (operation) { + + case ASN1_OP_STREAM_PRE: + if (CMS_stream(&sarg->boundary, cms) <= 0) + return 0; + case ASN1_OP_DETACHED_PRE: + sarg->ndef_bio = CMS_dataInit(cms, sarg->out); + if (!sarg->ndef_bio) + return 0; + break; + + case ASN1_OP_STREAM_POST: + case ASN1_OP_DETACHED_POST: + if (CMS_dataFinal(cms, sarg->ndef_bio) <= 0) + return 0; + break; + + } + return 1; +} + +ASN1_NDEF_SEQUENCE_cb(CMS_ContentInfo, cms_cb) = { + ASN1_SIMPLE(CMS_ContentInfo, contentType, ASN1_OBJECT), + ASN1_ADB_OBJECT(CMS_ContentInfo) +} ASN1_NDEF_SEQUENCE_END_cb(CMS_ContentInfo, CMS_ContentInfo) + +/* Specials for signed attributes */ + +/* + * When signing attributes we want to reorder them to match the sorted + * encoding. + */ + +ASN1_ITEM_TEMPLATE(CMS_Attributes_Sign) = + ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SET_ORDER, 0, CMS_ATTRIBUTES, X509_ATTRIBUTE) +ASN1_ITEM_TEMPLATE_END(CMS_Attributes_Sign) + +/* + * When verifying attributes we need to use the received order. So we use + * SEQUENCE OF and tag it to SET OF + */ + +ASN1_ITEM_TEMPLATE(CMS_Attributes_Verify) = + ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF | ASN1_TFLG_IMPTAG | ASN1_TFLG_UNIVERSAL, + V_ASN1_SET, CMS_ATTRIBUTES, X509_ATTRIBUTE) +ASN1_ITEM_TEMPLATE_END(CMS_Attributes_Verify) + + + +ASN1_CHOICE(CMS_ReceiptsFrom) = { + ASN1_IMP(CMS_ReceiptsFrom, d.allOrFirstTier, LONG, 0), + ASN1_IMP_SEQUENCE_OF(CMS_ReceiptsFrom, d.receiptList, GENERAL_NAMES, 1) +} ASN1_CHOICE_END(CMS_ReceiptsFrom) + +ASN1_SEQUENCE(CMS_ReceiptRequest) = { + ASN1_SIMPLE(CMS_ReceiptRequest, signedContentIdentifier, ASN1_OCTET_STRING), + ASN1_SIMPLE(CMS_ReceiptRequest, receiptsFrom, CMS_ReceiptsFrom), + ASN1_SEQUENCE_OF(CMS_ReceiptRequest, receiptsTo, GENERAL_NAMES) +} ASN1_SEQUENCE_END(CMS_ReceiptRequest) + +ASN1_SEQUENCE(CMS_Receipt) = { + ASN1_SIMPLE(CMS_Receipt, version, LONG), + ASN1_SIMPLE(CMS_Receipt, contentType, ASN1_OBJECT), + ASN1_SIMPLE(CMS_Receipt, signedContentIdentifier, ASN1_OCTET_STRING), + ASN1_SIMPLE(CMS_Receipt, originatorSignatureValue, ASN1_OCTET_STRING) +} ASN1_SEQUENCE_END(CMS_Receipt) + +/* + * Utilities to encode the CMS_SharedInfo structure used during key + * derivation. + */ + +typedef struct { + X509_ALGOR *keyInfo; + ASN1_OCTET_STRING *entityUInfo; + ASN1_OCTET_STRING *suppPubInfo; +} CMS_SharedInfo; + +ASN1_SEQUENCE(CMS_SharedInfo) = { + ASN1_SIMPLE(CMS_SharedInfo, keyInfo, X509_ALGOR), + ASN1_EXP_OPT(CMS_SharedInfo, entityUInfo, ASN1_OCTET_STRING, 0), + ASN1_EXP_OPT(CMS_SharedInfo, suppPubInfo, ASN1_OCTET_STRING, 2), +} ASN1_SEQUENCE_END(CMS_SharedInfo) + +int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, + ASN1_OCTET_STRING *ukm, int keylen) +{ + union { + CMS_SharedInfo *pecsi; + ASN1_VALUE *a; + } intsi = { + NULL + }; + + ASN1_OCTET_STRING oklen; + unsigned char kl[4]; + CMS_SharedInfo ecsi; + + keylen <<= 3; + kl[0] = (keylen >> 24) & 0xff; + kl[1] = (keylen >> 16) & 0xff; + kl[2] = (keylen >> 8) & 0xff; + kl[3] = keylen & 0xff; + oklen.length = 4; + oklen.data = kl; + oklen.type = V_ASN1_OCTET_STRING; + oklen.flags = 0; + ecsi.keyInfo = kekalg; + ecsi.entityUInfo = ukm; + ecsi.suppPubInfo = &oklen; + intsi.pecsi = &ecsi; + return ASN1_item_i2d(intsi.a, pder, ASN1_ITEM_rptr(CMS_SharedInfo)); +} diff --git a/libs/openssl/crypto/cms/cms_att.c b/libs/openssl/crypto/cms/cms_att.c new file mode 100644 index 00000000..f79a49d5 --- /dev/null +++ b/libs/openssl/crypto/cms/cms_att.c @@ -0,0 +1,197 @@ +/* crypto/cms/cms_att.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include +#include +#include +#include +#include "cms.h" +#include "cms_lcl.h" + +/* CMS SignedData Attribute utilities */ + +int CMS_signed_get_attr_count(const CMS_SignerInfo *si) +{ + return X509at_get_attr_count(si->signedAttrs); +} + +int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, int lastpos) +{ + return X509at_get_attr_by_NID(si->signedAttrs, nid, lastpos); +} + +int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj, + int lastpos) +{ + return X509at_get_attr_by_OBJ(si->signedAttrs, obj, lastpos); +} + +X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc) +{ + return X509at_get_attr(si->signedAttrs, loc); +} + +X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc) +{ + return X509at_delete_attr(si->signedAttrs, loc); +} + +int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr) +{ + if (X509at_add1_attr(&si->signedAttrs, attr)) + return 1; + return 0; +} + +int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int type, + const void *bytes, int len) +{ + if (X509at_add1_attr_by_OBJ(&si->signedAttrs, obj, type, bytes, len)) + return 1; + return 0; +} + +int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, + int nid, int type, const void *bytes, int len) +{ + if (X509at_add1_attr_by_NID(&si->signedAttrs, nid, type, bytes, len)) + return 1; + return 0; +} + +int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si, + const char *attrname, int type, + const void *bytes, int len) +{ + if (X509at_add1_attr_by_txt(&si->signedAttrs, attrname, type, bytes, len)) + return 1; + return 0; +} + +void *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, + int lastpos, int type) +{ + return X509at_get0_data_by_OBJ(si->signedAttrs, oid, lastpos, type); +} + +int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si) +{ + return X509at_get_attr_count(si->unsignedAttrs); +} + +int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid, + int lastpos) +{ + return X509at_get_attr_by_NID(si->unsignedAttrs, nid, lastpos); +} + +int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj, + int lastpos) +{ + return X509at_get_attr_by_OBJ(si->unsignedAttrs, obj, lastpos); +} + +X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc) +{ + return X509at_get_attr(si->unsignedAttrs, loc); +} + +X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc) +{ + return X509at_delete_attr(si->unsignedAttrs, loc); +} + +int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr) +{ + if (X509at_add1_attr(&si->unsignedAttrs, attr)) + return 1; + return 0; +} + +int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int type, + const void *bytes, int len) +{ + if (X509at_add1_attr_by_OBJ(&si->unsignedAttrs, obj, type, bytes, len)) + return 1; + return 0; +} + +int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si, + int nid, int type, + const void *bytes, int len) +{ + if (X509at_add1_attr_by_NID(&si->unsignedAttrs, nid, type, bytes, len)) + return 1; + return 0; +} + +int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si, + const char *attrname, int type, + const void *bytes, int len) +{ + if (X509at_add1_attr_by_txt(&si->unsignedAttrs, attrname, + type, bytes, len)) + return 1; + return 0; +} + +void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, + int lastpos, int type) +{ + return X509at_get0_data_by_OBJ(si->unsignedAttrs, oid, lastpos, type); +} + +/* Specific attribute cases */ diff --git a/libs/openssl/crypto/cms/cms_cd.c b/libs/openssl/crypto/cms/cms_cd.c new file mode 100644 index 00000000..aa3238f5 --- /dev/null +++ b/libs/openssl/crypto/cms/cms_cd.c @@ -0,0 +1,134 @@ +/* crypto/cms/cms_cd.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include "cryptlib.h" +#include +#include +#include +#include +#include +#include +#ifndef OPENSSL_NO_COMP +# include +#endif +#include "cms_lcl.h" + +DECLARE_ASN1_ITEM(CMS_CompressedData) + +#ifdef ZLIB + +/* CMS CompressedData Utilities */ + +CMS_ContentInfo *cms_CompressedData_create(int comp_nid) +{ + CMS_ContentInfo *cms; + CMS_CompressedData *cd; + /* + * Will need something cleverer if there is ever more than one + * compression algorithm or parameters have some meaning... + */ + if (comp_nid != NID_zlib_compression) { + CMSerr(CMS_F_CMS_COMPRESSEDDATA_CREATE, + CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM); + return NULL; + } + cms = CMS_ContentInfo_new(); + if (!cms) + return NULL; + + cd = M_ASN1_new_of(CMS_CompressedData); + + if (!cd) + goto err; + + cms->contentType = OBJ_nid2obj(NID_id_smime_ct_compressedData); + cms->d.compressedData = cd; + + cd->version = 0; + + X509_ALGOR_set0(cd->compressionAlgorithm, + OBJ_nid2obj(NID_zlib_compression), V_ASN1_UNDEF, NULL); + + cd->encapContentInfo->eContentType = OBJ_nid2obj(NID_pkcs7_data); + + return cms; + + err: + + if (cms) + CMS_ContentInfo_free(cms); + + return NULL; +} + +BIO *cms_CompressedData_init_bio(CMS_ContentInfo *cms) +{ + CMS_CompressedData *cd; + ASN1_OBJECT *compoid; + if (OBJ_obj2nid(cms->contentType) != NID_id_smime_ct_compressedData) { + CMSerr(CMS_F_CMS_COMPRESSEDDATA_INIT_BIO, + CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA); + return NULL; + } + cd = cms->d.compressedData; + X509_ALGOR_get0(&compoid, NULL, NULL, cd->compressionAlgorithm); + if (OBJ_obj2nid(compoid) != NID_zlib_compression) { + CMSerr(CMS_F_CMS_COMPRESSEDDATA_INIT_BIO, + CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM); + return NULL; + } + return BIO_new(BIO_f_zlib()); +} + +#endif diff --git a/libs/openssl/crypto/cms/cms_dd.c b/libs/openssl/crypto/cms/cms_dd.c new file mode 100644 index 00000000..23e9f2d3 --- /dev/null +++ b/libs/openssl/crypto/cms/cms_dd.c @@ -0,0 +1,145 @@ +/* crypto/cms/cms_dd.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include "cryptlib.h" +#include +#include +#include +#include +#include +#include "cms_lcl.h" + +DECLARE_ASN1_ITEM(CMS_DigestedData) + +/* CMS DigestedData Utilities */ + +CMS_ContentInfo *cms_DigestedData_create(const EVP_MD *md) +{ + CMS_ContentInfo *cms; + CMS_DigestedData *dd; + cms = CMS_ContentInfo_new(); + if (!cms) + return NULL; + + dd = M_ASN1_new_of(CMS_DigestedData); + + if (!dd) + goto err; + + cms->contentType = OBJ_nid2obj(NID_pkcs7_digest); + cms->d.digestedData = dd; + + dd->version = 0; + dd->encapContentInfo->eContentType = OBJ_nid2obj(NID_pkcs7_data); + + cms_DigestAlgorithm_set(dd->digestAlgorithm, md); + + return cms; + + err: + + if (cms) + CMS_ContentInfo_free(cms); + + return NULL; +} + +BIO *cms_DigestedData_init_bio(CMS_ContentInfo *cms) +{ + CMS_DigestedData *dd; + dd = cms->d.digestedData; + return cms_DigestAlgorithm_init_bio(dd->digestAlgorithm); +} + +int cms_DigestedData_do_final(CMS_ContentInfo *cms, BIO *chain, int verify) +{ + EVP_MD_CTX mctx; + unsigned char md[EVP_MAX_MD_SIZE]; + unsigned int mdlen; + int r = 0; + CMS_DigestedData *dd; + EVP_MD_CTX_init(&mctx); + + dd = cms->d.digestedData; + + if (!cms_DigestAlgorithm_find_ctx(&mctx, chain, dd->digestAlgorithm)) + goto err; + + if (EVP_DigestFinal_ex(&mctx, md, &mdlen) <= 0) + goto err; + + if (verify) { + if (mdlen != (unsigned int)dd->digest->length) { + CMSerr(CMS_F_CMS_DIGESTEDDATA_DO_FINAL, + CMS_R_MESSAGEDIGEST_WRONG_LENGTH); + goto err; + } + + if (memcmp(md, dd->digest->data, mdlen)) + CMSerr(CMS_F_CMS_DIGESTEDDATA_DO_FINAL, + CMS_R_VERIFICATION_FAILURE); + else + r = 1; + } else { + if (!ASN1_STRING_set(dd->digest, md, mdlen)) + goto err; + r = 1; + } + + err: + EVP_MD_CTX_cleanup(&mctx); + + return r; + +} diff --git a/libs/openssl/crypto/cms/cms_enc.c b/libs/openssl/crypto/cms/cms_enc.c new file mode 100644 index 00000000..b14b4b68 --- /dev/null +++ b/libs/openssl/crypto/cms/cms_enc.c @@ -0,0 +1,260 @@ +/* crypto/cms/cms_enc.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include "cryptlib.h" +#include +#include +#include +#include +#include +#include +#include "cms_lcl.h" + +/* CMS EncryptedData Utilities */ + +DECLARE_ASN1_ITEM(CMS_EncryptedData) + +/* Return BIO based on EncryptedContentInfo and key */ + +BIO *cms_EncryptedContent_init_bio(CMS_EncryptedContentInfo *ec) +{ + BIO *b; + EVP_CIPHER_CTX *ctx; + const EVP_CIPHER *ciph; + X509_ALGOR *calg = ec->contentEncryptionAlgorithm; + unsigned char iv[EVP_MAX_IV_LENGTH], *piv = NULL; + unsigned char *tkey = NULL; + size_t tkeylen = 0; + + int ok = 0; + + int enc, keep_key = 0; + + enc = ec->cipher ? 1 : 0; + + b = BIO_new(BIO_f_cipher()); + if (!b) { + CMSerr(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO, ERR_R_MALLOC_FAILURE); + return NULL; + } + + BIO_get_cipher_ctx(b, &ctx); + + if (enc) { + ciph = ec->cipher; + /* + * If not keeping key set cipher to NULL so subsequent calls decrypt. + */ + if (ec->key) + ec->cipher = NULL; + } else { + ciph = EVP_get_cipherbyobj(calg->algorithm); + + if (!ciph) { + CMSerr(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO, CMS_R_UNKNOWN_CIPHER); + goto err; + } + } + + if (EVP_CipherInit_ex(ctx, ciph, NULL, NULL, NULL, enc) <= 0) { + CMSerr(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO, + CMS_R_CIPHER_INITIALISATION_ERROR); + goto err; + } + + if (enc) { + int ivlen; + calg->algorithm = OBJ_nid2obj(EVP_CIPHER_CTX_type(ctx)); + /* Generate a random IV if we need one */ + ivlen = EVP_CIPHER_CTX_iv_length(ctx); + if (ivlen > 0) { + if (RAND_pseudo_bytes(iv, ivlen) <= 0) + goto err; + piv = iv; + } + } else if (EVP_CIPHER_asn1_to_param(ctx, calg->parameter) <= 0) { + CMSerr(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO, + CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR); + goto err; + } + tkeylen = EVP_CIPHER_CTX_key_length(ctx); + /* Generate random session key */ + if (!enc || !ec->key) { + tkey = OPENSSL_malloc(tkeylen); + if (!tkey) { + CMSerr(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO, ERR_R_MALLOC_FAILURE); + goto err; + } + if (EVP_CIPHER_CTX_rand_key(ctx, tkey) <= 0) + goto err; + } + + if (!ec->key) { + ec->key = tkey; + ec->keylen = tkeylen; + tkey = NULL; + if (enc) + keep_key = 1; + else + ERR_clear_error(); + + } + + if (ec->keylen != tkeylen) { + /* If necessary set key length */ + if (EVP_CIPHER_CTX_set_key_length(ctx, ec->keylen) <= 0) { + /* + * Only reveal failure if debugging so we don't leak information + * which may be useful in MMA. + */ + if (enc || ec->debug) { + CMSerr(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO, + CMS_R_INVALID_KEY_LENGTH); + goto err; + } else { + /* Use random key */ + OPENSSL_cleanse(ec->key, ec->keylen); + OPENSSL_free(ec->key); + ec->key = tkey; + ec->keylen = tkeylen; + tkey = NULL; + ERR_clear_error(); + } + } + } + + if (EVP_CipherInit_ex(ctx, NULL, NULL, ec->key, piv, enc) <= 0) { + CMSerr(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO, + CMS_R_CIPHER_INITIALISATION_ERROR); + goto err; + } + + if (piv) { + calg->parameter = ASN1_TYPE_new(); + if (!calg->parameter) { + CMSerr(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO, ERR_R_MALLOC_FAILURE); + goto err; + } + if (EVP_CIPHER_param_to_asn1(ctx, calg->parameter) <= 0) { + CMSerr(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO, + CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR); + goto err; + } + } + ok = 1; + + err: + if (ec->key && (!keep_key || !ok)) { + OPENSSL_cleanse(ec->key, ec->keylen); + OPENSSL_free(ec->key); + ec->key = NULL; + } + if (tkey) { + OPENSSL_cleanse(tkey, tkeylen); + OPENSSL_free(tkey); + } + if (ok) + return b; + BIO_free(b); + return NULL; +} + +int cms_EncryptedContent_init(CMS_EncryptedContentInfo *ec, + const EVP_CIPHER *cipher, + const unsigned char *key, size_t keylen) +{ + ec->cipher = cipher; + if (key) { + ec->key = OPENSSL_malloc(keylen); + if (!ec->key) + return 0; + memcpy(ec->key, key, keylen); + } + ec->keylen = keylen; + if (cipher) + ec->contentType = OBJ_nid2obj(NID_pkcs7_data); + return 1; +} + +int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, + const unsigned char *key, size_t keylen) +{ + CMS_EncryptedContentInfo *ec; + if (!key || !keylen) { + CMSerr(CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY, CMS_R_NO_KEY); + return 0; + } + if (ciph) { + cms->d.encryptedData = M_ASN1_new_of(CMS_EncryptedData); + if (!cms->d.encryptedData) { + CMSerr(CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY, ERR_R_MALLOC_FAILURE); + return 0; + } + cms->contentType = OBJ_nid2obj(NID_pkcs7_encrypted); + cms->d.encryptedData->version = 0; + } else if (OBJ_obj2nid(cms->contentType) != NID_pkcs7_encrypted) { + CMSerr(CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY, CMS_R_NOT_ENCRYPTED_DATA); + return 0; + } + ec = cms->d.encryptedData->encryptedContentInfo; + return cms_EncryptedContent_init(ec, ciph, key, keylen); +} + +BIO *cms_EncryptedData_init_bio(CMS_ContentInfo *cms) +{ + CMS_EncryptedData *enc = cms->d.encryptedData; + if (enc->encryptedContentInfo->cipher && enc->unprotectedAttrs) + enc->version = 2; + return cms_EncryptedContent_init_bio(enc->encryptedContentInfo); +} diff --git a/libs/openssl/crypto/cms/cms_env.c b/libs/openssl/crypto/cms/cms_env.c new file mode 100644 index 00000000..93c06cb0 --- /dev/null +++ b/libs/openssl/crypto/cms/cms_env.c @@ -0,0 +1,974 @@ +/* crypto/cms/cms_env.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include "cryptlib.h" +#include +#include +#include +#include +#include +#include +#include +#include "cms_lcl.h" +#include "asn1_locl.h" + +/* CMS EnvelopedData Utilities */ + +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ITEM(CMS_KeyTransRecipientInfo) +DECLARE_ASN1_ITEM(CMS_KEKRecipientInfo) +DECLARE_ASN1_ITEM(CMS_OtherKeyAttribute) + +DECLARE_STACK_OF(CMS_RecipientInfo) + +CMS_EnvelopedData *cms_get0_enveloped(CMS_ContentInfo *cms) +{ + if (OBJ_obj2nid(cms->contentType) != NID_pkcs7_enveloped) { + CMSerr(CMS_F_CMS_GET0_ENVELOPED, + CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA); + return NULL; + } + return cms->d.envelopedData; +} + +static CMS_EnvelopedData *cms_enveloped_data_init(CMS_ContentInfo *cms) +{ + if (cms->d.other == NULL) { + cms->d.envelopedData = M_ASN1_new_of(CMS_EnvelopedData); + if (!cms->d.envelopedData) { + CMSerr(CMS_F_CMS_ENVELOPED_DATA_INIT, ERR_R_MALLOC_FAILURE); + return NULL; + } + cms->d.envelopedData->version = 0; + cms->d.envelopedData->encryptedContentInfo->contentType = + OBJ_nid2obj(NID_pkcs7_data); + ASN1_OBJECT_free(cms->contentType); + cms->contentType = OBJ_nid2obj(NID_pkcs7_enveloped); + return cms->d.envelopedData; + } + return cms_get0_enveloped(cms); +} + +int cms_env_asn1_ctrl(CMS_RecipientInfo *ri, int cmd) +{ + EVP_PKEY *pkey; + int i; + if (ri->type == CMS_RECIPINFO_TRANS) + pkey = ri->d.ktri->pkey; + else if (ri->type == CMS_RECIPINFO_AGREE) { + EVP_PKEY_CTX *pctx = ri->d.kari->pctx; + if (!pctx) + return 0; + pkey = EVP_PKEY_CTX_get0_pkey(pctx); + if (!pkey) + return 0; + } else + return 0; + if (!pkey->ameth || !pkey->ameth->pkey_ctrl) + return 1; + i = pkey->ameth->pkey_ctrl(pkey, ASN1_PKEY_CTRL_CMS_ENVELOPE, cmd, ri); + if (i == -2) { + CMSerr(CMS_F_CMS_ENV_ASN1_CTRL, + CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE); + return 0; + } + if (i <= 0) { + CMSerr(CMS_F_CMS_ENV_ASN1_CTRL, CMS_R_CTRL_FAILURE); + return 0; + } + return 1; +} + +STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms) +{ + CMS_EnvelopedData *env; + env = cms_get0_enveloped(cms); + if (!env) + return NULL; + return env->recipientInfos; +} + +int CMS_RecipientInfo_type(CMS_RecipientInfo *ri) +{ + return ri->type; +} + +EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri) +{ + if (ri->type == CMS_RECIPINFO_TRANS) + return ri->d.ktri->pctx; + else if (ri->type == CMS_RECIPINFO_AGREE) + return ri->d.kari->pctx; + return NULL; +} + +CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher) +{ + CMS_ContentInfo *cms; + CMS_EnvelopedData *env; + cms = CMS_ContentInfo_new(); + if (!cms) + goto merr; + env = cms_enveloped_data_init(cms); + if (!env) + goto merr; + if (!cms_EncryptedContent_init(env->encryptedContentInfo, + cipher, NULL, 0)) + goto merr; + return cms; + merr: + if (cms) + CMS_ContentInfo_free(cms); + CMSerr(CMS_F_CMS_ENVELOPEDDATA_CREATE, ERR_R_MALLOC_FAILURE); + return NULL; +} + +/* Key Transport Recipient Info (KTRI) routines */ + +/* Initialise a ktri based on passed certificate and key */ + +static int cms_RecipientInfo_ktri_init(CMS_RecipientInfo *ri, X509 *recip, + EVP_PKEY *pk, unsigned int flags) +{ + CMS_KeyTransRecipientInfo *ktri; + int idtype; + + ri->d.ktri = M_ASN1_new_of(CMS_KeyTransRecipientInfo); + if (!ri->d.ktri) + return 0; + ri->type = CMS_RECIPINFO_TRANS; + + ktri = ri->d.ktri; + + if (flags & CMS_USE_KEYID) { + ktri->version = 2; + idtype = CMS_RECIPINFO_KEYIDENTIFIER; + } else { + ktri->version = 0; + idtype = CMS_RECIPINFO_ISSUER_SERIAL; + } + + /* + * Not a typo: RecipientIdentifier and SignerIdentifier are the same + * structure. + */ + + if (!cms_set1_SignerIdentifier(ktri->rid, recip, idtype)) + return 0; + + CRYPTO_add(&recip->references, 1, CRYPTO_LOCK_X509); + CRYPTO_add(&pk->references, 1, CRYPTO_LOCK_EVP_PKEY); + ktri->pkey = pk; + ktri->recip = recip; + + if (flags & CMS_KEY_PARAM) { + ktri->pctx = EVP_PKEY_CTX_new(ktri->pkey, NULL); + if (!ktri->pctx) + return 0; + if (EVP_PKEY_encrypt_init(ktri->pctx) <= 0) + return 0; + } else if (!cms_env_asn1_ctrl(ri, 0)) + return 0; + return 1; +} + +/* + * Add a recipient certificate using appropriate type of RecipientInfo + */ + +CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, + X509 *recip, unsigned int flags) +{ + CMS_RecipientInfo *ri = NULL; + CMS_EnvelopedData *env; + EVP_PKEY *pk = NULL; + env = cms_get0_enveloped(cms); + if (!env) + goto err; + + /* Initialize recipient info */ + ri = M_ASN1_new_of(CMS_RecipientInfo); + if (!ri) + goto merr; + + pk = X509_get_pubkey(recip); + if (!pk) { + CMSerr(CMS_F_CMS_ADD1_RECIPIENT_CERT, CMS_R_ERROR_GETTING_PUBLIC_KEY); + goto err; + } + + switch (cms_pkey_get_ri_type(pk)) { + + case CMS_RECIPINFO_TRANS: + if (!cms_RecipientInfo_ktri_init(ri, recip, pk, flags)) + goto err; + break; + + case CMS_RECIPINFO_AGREE: + if (!cms_RecipientInfo_kari_init(ri, recip, pk, flags)) + goto err; + break; + + default: + CMSerr(CMS_F_CMS_ADD1_RECIPIENT_CERT, + CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE); + goto err; + + } + + if (!sk_CMS_RecipientInfo_push(env->recipientInfos, ri)) + goto merr; + + EVP_PKEY_free(pk); + + return ri; + + merr: + CMSerr(CMS_F_CMS_ADD1_RECIPIENT_CERT, ERR_R_MALLOC_FAILURE); + err: + if (ri) + M_ASN1_free_of(ri, CMS_RecipientInfo); + if (pk) + EVP_PKEY_free(pk); + return NULL; + +} + +int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri, + EVP_PKEY **pk, X509 **recip, + X509_ALGOR **palg) +{ + CMS_KeyTransRecipientInfo *ktri; + if (ri->type != CMS_RECIPINFO_TRANS) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS, + CMS_R_NOT_KEY_TRANSPORT); + return 0; + } + + ktri = ri->d.ktri; + + if (pk) + *pk = ktri->pkey; + if (recip) + *recip = ktri->recip; + if (palg) + *palg = ktri->keyEncryptionAlgorithm; + return 1; +} + +int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno) +{ + CMS_KeyTransRecipientInfo *ktri; + if (ri->type != CMS_RECIPINFO_TRANS) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID, + CMS_R_NOT_KEY_TRANSPORT); + return 0; + } + ktri = ri->d.ktri; + + return cms_SignerIdentifier_get0_signer_id(ktri->rid, keyid, issuer, sno); +} + +int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert) +{ + if (ri->type != CMS_RECIPINFO_TRANS) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP, + CMS_R_NOT_KEY_TRANSPORT); + return -2; + } + return cms_SignerIdentifier_cert_cmp(ri->d.ktri->rid, cert); +} + +int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey) +{ + if (ri->type != CMS_RECIPINFO_TRANS) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_SET0_PKEY, CMS_R_NOT_KEY_TRANSPORT); + return 0; + } + ri->d.ktri->pkey = pkey; + return 1; +} + +/* Encrypt content key in key transport recipient info */ + +static int cms_RecipientInfo_ktri_encrypt(CMS_ContentInfo *cms, + CMS_RecipientInfo *ri) +{ + CMS_KeyTransRecipientInfo *ktri; + CMS_EncryptedContentInfo *ec; + EVP_PKEY_CTX *pctx; + unsigned char *ek = NULL; + size_t eklen; + + int ret = 0; + + if (ri->type != CMS_RECIPINFO_TRANS) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT, CMS_R_NOT_KEY_TRANSPORT); + return 0; + } + ktri = ri->d.ktri; + ec = cms->d.envelopedData->encryptedContentInfo; + + pctx = ktri->pctx; + + if (pctx) { + if (!cms_env_asn1_ctrl(ri, 0)) + goto err; + } else { + pctx = EVP_PKEY_CTX_new(ktri->pkey, NULL); + if (!pctx) + return 0; + + if (EVP_PKEY_encrypt_init(pctx) <= 0) + goto err; + } + + if (EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_ENCRYPT, + EVP_PKEY_CTRL_CMS_ENCRYPT, 0, ri) <= 0) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT, CMS_R_CTRL_ERROR); + goto err; + } + + if (EVP_PKEY_encrypt(pctx, NULL, &eklen, ec->key, ec->keylen) <= 0) + goto err; + + ek = OPENSSL_malloc(eklen); + + if (ek == NULL) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT, ERR_R_MALLOC_FAILURE); + goto err; + } + + if (EVP_PKEY_encrypt(pctx, ek, &eklen, ec->key, ec->keylen) <= 0) + goto err; + + ASN1_STRING_set0(ktri->encryptedKey, ek, eklen); + ek = NULL; + + ret = 1; + + err: + if (pctx) { + EVP_PKEY_CTX_free(pctx); + ktri->pctx = NULL; + } + if (ek) + OPENSSL_free(ek); + return ret; + +} + +/* Decrypt content key from KTRI */ + +static int cms_RecipientInfo_ktri_decrypt(CMS_ContentInfo *cms, + CMS_RecipientInfo *ri) +{ + CMS_KeyTransRecipientInfo *ktri = ri->d.ktri; + EVP_PKEY *pkey = ktri->pkey; + unsigned char *ek = NULL; + size_t eklen; + int ret = 0; + CMS_EncryptedContentInfo *ec; + ec = cms->d.envelopedData->encryptedContentInfo; + + if (ktri->pkey == NULL) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT, CMS_R_NO_PRIVATE_KEY); + return 0; + } + + ktri->pctx = EVP_PKEY_CTX_new(pkey, NULL); + if (!ktri->pctx) + return 0; + + if (EVP_PKEY_decrypt_init(ktri->pctx) <= 0) + goto err; + + if (!cms_env_asn1_ctrl(ri, 1)) + goto err; + + if (EVP_PKEY_CTX_ctrl(ktri->pctx, -1, EVP_PKEY_OP_DECRYPT, + EVP_PKEY_CTRL_CMS_DECRYPT, 0, ri) <= 0) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT, CMS_R_CTRL_ERROR); + goto err; + } + + if (EVP_PKEY_decrypt(ktri->pctx, NULL, &eklen, + ktri->encryptedKey->data, + ktri->encryptedKey->length) <= 0) + goto err; + + ek = OPENSSL_malloc(eklen); + + if (ek == NULL) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT, ERR_R_MALLOC_FAILURE); + goto err; + } + + if (EVP_PKEY_decrypt(ktri->pctx, ek, &eklen, + ktri->encryptedKey->data, + ktri->encryptedKey->length) <= 0) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT, CMS_R_CMS_LIB); + goto err; + } + + ret = 1; + + if (ec->key) { + OPENSSL_cleanse(ec->key, ec->keylen); + OPENSSL_free(ec->key); + } + + ec->key = ek; + ec->keylen = eklen; + + err: + if (ktri->pctx) { + EVP_PKEY_CTX_free(ktri->pctx); + ktri->pctx = NULL; + } + if (!ret && ek) + OPENSSL_free(ek); + + return ret; +} + +/* Key Encrypted Key (KEK) RecipientInfo routines */ + +int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, + const unsigned char *id, size_t idlen) +{ + ASN1_OCTET_STRING tmp_os; + CMS_KEKRecipientInfo *kekri; + if (ri->type != CMS_RECIPINFO_KEK) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP, CMS_R_NOT_KEK); + return -2; + } + kekri = ri->d.kekri; + tmp_os.type = V_ASN1_OCTET_STRING; + tmp_os.flags = 0; + tmp_os.data = (unsigned char *)id; + tmp_os.length = (int)idlen; + return ASN1_OCTET_STRING_cmp(&tmp_os, kekri->kekid->keyIdentifier); +} + +/* For now hard code AES key wrap info */ + +static size_t aes_wrap_keylen(int nid) +{ + switch (nid) { + case NID_id_aes128_wrap: + return 16; + + case NID_id_aes192_wrap: + return 24; + + case NID_id_aes256_wrap: + return 32; + + default: + return 0; + } +} + +CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, + unsigned char *key, size_t keylen, + unsigned char *id, size_t idlen, + ASN1_GENERALIZEDTIME *date, + ASN1_OBJECT *otherTypeId, + ASN1_TYPE *otherType) +{ + CMS_RecipientInfo *ri = NULL; + CMS_EnvelopedData *env; + CMS_KEKRecipientInfo *kekri; + env = cms_get0_enveloped(cms); + if (!env) + goto err; + + if (nid == NID_undef) { + switch (keylen) { + case 16: + nid = NID_id_aes128_wrap; + break; + + case 24: + nid = NID_id_aes192_wrap; + break; + + case 32: + nid = NID_id_aes256_wrap; + break; + + default: + CMSerr(CMS_F_CMS_ADD0_RECIPIENT_KEY, CMS_R_INVALID_KEY_LENGTH); + goto err; + } + + } else { + + size_t exp_keylen = aes_wrap_keylen(nid); + + if (!exp_keylen) { + CMSerr(CMS_F_CMS_ADD0_RECIPIENT_KEY, + CMS_R_UNSUPPORTED_KEK_ALGORITHM); + goto err; + } + + if (keylen != exp_keylen) { + CMSerr(CMS_F_CMS_ADD0_RECIPIENT_KEY, CMS_R_INVALID_KEY_LENGTH); + goto err; + } + + } + + /* Initialize recipient info */ + ri = M_ASN1_new_of(CMS_RecipientInfo); + if (!ri) + goto merr; + + ri->d.kekri = M_ASN1_new_of(CMS_KEKRecipientInfo); + if (!ri->d.kekri) + goto merr; + ri->type = CMS_RECIPINFO_KEK; + + kekri = ri->d.kekri; + + if (otherTypeId) { + kekri->kekid->other = M_ASN1_new_of(CMS_OtherKeyAttribute); + if (kekri->kekid->other == NULL) + goto merr; + } + + if (!sk_CMS_RecipientInfo_push(env->recipientInfos, ri)) + goto merr; + + /* After this point no calls can fail */ + + kekri->version = 4; + + kekri->key = key; + kekri->keylen = keylen; + + ASN1_STRING_set0(kekri->kekid->keyIdentifier, id, idlen); + + kekri->kekid->date = date; + + if (kekri->kekid->other) { + kekri->kekid->other->keyAttrId = otherTypeId; + kekri->kekid->other->keyAttr = otherType; + } + + X509_ALGOR_set0(kekri->keyEncryptionAlgorithm, + OBJ_nid2obj(nid), V_ASN1_UNDEF, NULL); + + return ri; + + merr: + CMSerr(CMS_F_CMS_ADD0_RECIPIENT_KEY, ERR_R_MALLOC_FAILURE); + err: + if (ri) + M_ASN1_free_of(ri, CMS_RecipientInfo); + return NULL; + +} + +int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, + X509_ALGOR **palg, + ASN1_OCTET_STRING **pid, + ASN1_GENERALIZEDTIME **pdate, + ASN1_OBJECT **potherid, + ASN1_TYPE **pothertype) +{ + CMS_KEKIdentifier *rkid; + if (ri->type != CMS_RECIPINFO_KEK) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID, CMS_R_NOT_KEK); + return 0; + } + rkid = ri->d.kekri->kekid; + if (palg) + *palg = ri->d.kekri->keyEncryptionAlgorithm; + if (pid) + *pid = rkid->keyIdentifier; + if (pdate) + *pdate = rkid->date; + if (potherid) { + if (rkid->other) + *potherid = rkid->other->keyAttrId; + else + *potherid = NULL; + } + if (pothertype) { + if (rkid->other) + *pothertype = rkid->other->keyAttr; + else + *pothertype = NULL; + } + return 1; +} + +int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, + unsigned char *key, size_t keylen) +{ + CMS_KEKRecipientInfo *kekri; + if (ri->type != CMS_RECIPINFO_KEK) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_SET0_KEY, CMS_R_NOT_KEK); + return 0; + } + + kekri = ri->d.kekri; + kekri->key = key; + kekri->keylen = keylen; + return 1; +} + +/* Encrypt content key in KEK recipient info */ + +static int cms_RecipientInfo_kekri_encrypt(CMS_ContentInfo *cms, + CMS_RecipientInfo *ri) +{ + CMS_EncryptedContentInfo *ec; + CMS_KEKRecipientInfo *kekri; + AES_KEY actx; + unsigned char *wkey = NULL; + int wkeylen; + int r = 0; + + ec = cms->d.envelopedData->encryptedContentInfo; + + kekri = ri->d.kekri; + + if (!kekri->key) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT, CMS_R_NO_KEY); + return 0; + } + + if (AES_set_encrypt_key(kekri->key, kekri->keylen << 3, &actx)) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT, + CMS_R_ERROR_SETTING_KEY); + goto err; + } + + wkey = OPENSSL_malloc(ec->keylen + 8); + + if (!wkey) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT, ERR_R_MALLOC_FAILURE); + goto err; + } + + wkeylen = AES_wrap_key(&actx, NULL, wkey, ec->key, ec->keylen); + + if (wkeylen <= 0) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT, CMS_R_WRAP_ERROR); + goto err; + } + + ASN1_STRING_set0(kekri->encryptedKey, wkey, wkeylen); + + r = 1; + + err: + + if (!r && wkey) + OPENSSL_free(wkey); + OPENSSL_cleanse(&actx, sizeof(actx)); + + return r; + +} + +/* Decrypt content key in KEK recipient info */ + +static int cms_RecipientInfo_kekri_decrypt(CMS_ContentInfo *cms, + CMS_RecipientInfo *ri) +{ + CMS_EncryptedContentInfo *ec; + CMS_KEKRecipientInfo *kekri; + AES_KEY actx; + unsigned char *ukey = NULL; + int ukeylen; + int r = 0, wrap_nid; + + ec = cms->d.envelopedData->encryptedContentInfo; + + kekri = ri->d.kekri; + + if (!kekri->key) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT, CMS_R_NO_KEY); + return 0; + } + + wrap_nid = OBJ_obj2nid(kekri->keyEncryptionAlgorithm->algorithm); + if (aes_wrap_keylen(wrap_nid) != kekri->keylen) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT, + CMS_R_INVALID_KEY_LENGTH); + return 0; + } + + /* If encrypted key length is invalid don't bother */ + + if (kekri->encryptedKey->length < 16) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT, + CMS_R_INVALID_ENCRYPTED_KEY_LENGTH); + goto err; + } + + if (AES_set_decrypt_key(kekri->key, kekri->keylen << 3, &actx)) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT, + CMS_R_ERROR_SETTING_KEY); + goto err; + } + + ukey = OPENSSL_malloc(kekri->encryptedKey->length - 8); + + if (!ukey) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT, ERR_R_MALLOC_FAILURE); + goto err; + } + + ukeylen = AES_unwrap_key(&actx, NULL, ukey, + kekri->encryptedKey->data, + kekri->encryptedKey->length); + + if (ukeylen <= 0) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT, CMS_R_UNWRAP_ERROR); + goto err; + } + + ec->key = ukey; + ec->keylen = ukeylen; + + r = 1; + + err: + + if (!r && ukey) + OPENSSL_free(ukey); + OPENSSL_cleanse(&actx, sizeof(actx)); + + return r; + +} + +int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri) +{ + switch (ri->type) { + case CMS_RECIPINFO_TRANS: + return cms_RecipientInfo_ktri_decrypt(cms, ri); + + case CMS_RECIPINFO_KEK: + return cms_RecipientInfo_kekri_decrypt(cms, ri); + + case CMS_RECIPINFO_PASS: + return cms_RecipientInfo_pwri_crypt(cms, ri, 0); + + default: + CMSerr(CMS_F_CMS_RECIPIENTINFO_DECRYPT, + CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE); + return 0; + } +} + +int CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri) +{ + switch (ri->type) { + case CMS_RECIPINFO_TRANS: + return cms_RecipientInfo_ktri_encrypt(cms, ri); + + case CMS_RECIPINFO_AGREE: + return cms_RecipientInfo_kari_encrypt(cms, ri); + + case CMS_RECIPINFO_KEK: + return cms_RecipientInfo_kekri_encrypt(cms, ri); + break; + + case CMS_RECIPINFO_PASS: + return cms_RecipientInfo_pwri_crypt(cms, ri, 1); + break; + + default: + CMSerr(CMS_F_CMS_RECIPIENTINFO_ENCRYPT, + CMS_R_UNSUPPORTED_RECIPIENT_TYPE); + return 0; + } +} + +/* Check structures and fixup version numbers (if necessary) */ + +static void cms_env_set_originfo_version(CMS_EnvelopedData *env) +{ + CMS_OriginatorInfo *org = env->originatorInfo; + int i; + if (org == NULL) + return; + for (i = 0; i < sk_CMS_CertificateChoices_num(org->certificates); i++) { + CMS_CertificateChoices *cch; + cch = sk_CMS_CertificateChoices_value(org->certificates, i); + if (cch->type == CMS_CERTCHOICE_OTHER) { + env->version = 4; + return; + } else if (cch->type == CMS_CERTCHOICE_V2ACERT) { + if (env->version < 3) + env->version = 3; + } + } + + for (i = 0; i < sk_CMS_RevocationInfoChoice_num(org->crls); i++) { + CMS_RevocationInfoChoice *rch; + rch = sk_CMS_RevocationInfoChoice_value(org->crls, i); + if (rch->type == CMS_REVCHOICE_OTHER) { + env->version = 4; + return; + } + } +} + +static void cms_env_set_version(CMS_EnvelopedData *env) +{ + int i; + CMS_RecipientInfo *ri; + + /* + * Can't set version higher than 4 so if 4 or more already nothing to do. + */ + if (env->version >= 4) + return; + + cms_env_set_originfo_version(env); + + if (env->version >= 3) + return; + + for (i = 0; i < sk_CMS_RecipientInfo_num(env->recipientInfos); i++) { + ri = sk_CMS_RecipientInfo_value(env->recipientInfos, i); + if (ri->type == CMS_RECIPINFO_PASS || ri->type == CMS_RECIPINFO_OTHER) { + env->version = 3; + return; + } else if (ri->type != CMS_RECIPINFO_TRANS + || ri->d.ktri->version != 0) { + env->version = 2; + } + } + if (env->version == 2) + return; + if (env->originatorInfo || env->unprotectedAttrs) + env->version = 2; + env->version = 0; +} + +BIO *cms_EnvelopedData_init_bio(CMS_ContentInfo *cms) +{ + CMS_EncryptedContentInfo *ec; + STACK_OF(CMS_RecipientInfo) *rinfos; + CMS_RecipientInfo *ri; + int i, ok = 0; + BIO *ret; + + /* Get BIO first to set up key */ + + ec = cms->d.envelopedData->encryptedContentInfo; + ret = cms_EncryptedContent_init_bio(ec); + + /* If error or no cipher end of processing */ + + if (!ret || !ec->cipher) + return ret; + + /* Now encrypt content key according to each RecipientInfo type */ + + rinfos = cms->d.envelopedData->recipientInfos; + + for (i = 0; i < sk_CMS_RecipientInfo_num(rinfos); i++) { + ri = sk_CMS_RecipientInfo_value(rinfos, i); + if (CMS_RecipientInfo_encrypt(cms, ri) <= 0) { + CMSerr(CMS_F_CMS_ENVELOPEDDATA_INIT_BIO, + CMS_R_ERROR_SETTING_RECIPIENTINFO); + goto err; + } + } + cms_env_set_version(cms->d.envelopedData); + + ok = 1; + + err: + ec->cipher = NULL; + if (ec->key) { + OPENSSL_cleanse(ec->key, ec->keylen); + OPENSSL_free(ec->key); + ec->key = NULL; + ec->keylen = 0; + } + if (ok) + return ret; + BIO_free(ret); + return NULL; + +} + +/* + * Get RecipientInfo type (if any) supported by a key (public or private). To + * retain compatibility with previous behaviour if the ctrl value isn't + * supported we assume key transport. + */ +int cms_pkey_get_ri_type(EVP_PKEY *pk) +{ + if (pk->ameth && pk->ameth->pkey_ctrl) { + int i, r; + i = pk->ameth->pkey_ctrl(pk, ASN1_PKEY_CTRL_CMS_RI_TYPE, 0, &r); + if (i > 0) + return r; + } + return CMS_RECIPINFO_TRANS; +} diff --git a/libs/openssl/crypto/cms/cms_err.c b/libs/openssl/crypto/cms/cms_err.c new file mode 100644 index 00000000..15572ea3 --- /dev/null +++ b/libs/openssl/crypto/cms/cms_err.c @@ -0,0 +1,309 @@ +/* crypto/cms/cms_err.c */ +/* ==================================================================== + * Copyright (c) 1999-2013 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +/* + * NOTE: this file was auto generated by the mkerr.pl script: any changes + * made to it will be overwritten when the script next updates this file, + * only reason strings will be preserved. + */ + +#include +#include +#include + +/* BEGIN ERROR CODES */ +#ifndef OPENSSL_NO_ERR + +# define ERR_FUNC(func) ERR_PACK(ERR_LIB_CMS,func,0) +# define ERR_REASON(reason) ERR_PACK(ERR_LIB_CMS,0,reason) + +static ERR_STRING_DATA CMS_str_functs[] = { + {ERR_FUNC(CMS_F_CHECK_CONTENT), "CHECK_CONTENT"}, + {ERR_FUNC(CMS_F_CMS_ADD0_CERT), "CMS_add0_cert"}, + {ERR_FUNC(CMS_F_CMS_ADD0_RECIPIENT_KEY), "CMS_add0_recipient_key"}, + {ERR_FUNC(CMS_F_CMS_ADD0_RECIPIENT_PASSWORD), + "CMS_add0_recipient_password"}, + {ERR_FUNC(CMS_F_CMS_ADD1_RECEIPTREQUEST), "CMS_add1_ReceiptRequest"}, + {ERR_FUNC(CMS_F_CMS_ADD1_RECIPIENT_CERT), "CMS_add1_recipient_cert"}, + {ERR_FUNC(CMS_F_CMS_ADD1_SIGNER), "CMS_add1_signer"}, + {ERR_FUNC(CMS_F_CMS_ADD1_SIGNINGTIME), "CMS_ADD1_SIGNINGTIME"}, + {ERR_FUNC(CMS_F_CMS_COMPRESS), "CMS_compress"}, + {ERR_FUNC(CMS_F_CMS_COMPRESSEDDATA_CREATE), "cms_CompressedData_create"}, + {ERR_FUNC(CMS_F_CMS_COMPRESSEDDATA_INIT_BIO), + "cms_CompressedData_init_bio"}, + {ERR_FUNC(CMS_F_CMS_COPY_CONTENT), "CMS_COPY_CONTENT"}, + {ERR_FUNC(CMS_F_CMS_COPY_MESSAGEDIGEST), "CMS_COPY_MESSAGEDIGEST"}, + {ERR_FUNC(CMS_F_CMS_DATA), "CMS_data"}, + {ERR_FUNC(CMS_F_CMS_DATAFINAL), "CMS_dataFinal"}, + {ERR_FUNC(CMS_F_CMS_DATAINIT), "CMS_dataInit"}, + {ERR_FUNC(CMS_F_CMS_DECRYPT), "CMS_decrypt"}, + {ERR_FUNC(CMS_F_CMS_DECRYPT_SET1_KEY), "CMS_decrypt_set1_key"}, + {ERR_FUNC(CMS_F_CMS_DECRYPT_SET1_PASSWORD), "CMS_decrypt_set1_password"}, + {ERR_FUNC(CMS_F_CMS_DECRYPT_SET1_PKEY), "CMS_decrypt_set1_pkey"}, + {ERR_FUNC(CMS_F_CMS_DIGESTALGORITHM_FIND_CTX), + "cms_DigestAlgorithm_find_ctx"}, + {ERR_FUNC(CMS_F_CMS_DIGESTALGORITHM_INIT_BIO), + "cms_DigestAlgorithm_init_bio"}, + {ERR_FUNC(CMS_F_CMS_DIGESTEDDATA_DO_FINAL), "cms_DigestedData_do_final"}, + {ERR_FUNC(CMS_F_CMS_DIGEST_VERIFY), "CMS_digest_verify"}, + {ERR_FUNC(CMS_F_CMS_ENCODE_RECEIPT), "cms_encode_Receipt"}, + {ERR_FUNC(CMS_F_CMS_ENCRYPT), "CMS_encrypt"}, + {ERR_FUNC(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO), + "cms_EncryptedContent_init_bio"}, + {ERR_FUNC(CMS_F_CMS_ENCRYPTEDDATA_DECRYPT), "CMS_EncryptedData_decrypt"}, + {ERR_FUNC(CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT), "CMS_EncryptedData_encrypt"}, + {ERR_FUNC(CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY), + "CMS_EncryptedData_set1_key"}, + {ERR_FUNC(CMS_F_CMS_ENVELOPEDDATA_CREATE), "CMS_EnvelopedData_create"}, + {ERR_FUNC(CMS_F_CMS_ENVELOPEDDATA_INIT_BIO), + "cms_EnvelopedData_init_bio"}, + {ERR_FUNC(CMS_F_CMS_ENVELOPED_DATA_INIT), "CMS_ENVELOPED_DATA_INIT"}, + {ERR_FUNC(CMS_F_CMS_ENV_ASN1_CTRL), "cms_env_asn1_ctrl"}, + {ERR_FUNC(CMS_F_CMS_FINAL), "CMS_final"}, + {ERR_FUNC(CMS_F_CMS_GET0_CERTIFICATE_CHOICES), + "CMS_GET0_CERTIFICATE_CHOICES"}, + {ERR_FUNC(CMS_F_CMS_GET0_CONTENT), "CMS_get0_content"}, + {ERR_FUNC(CMS_F_CMS_GET0_ECONTENT_TYPE), "CMS_GET0_ECONTENT_TYPE"}, + {ERR_FUNC(CMS_F_CMS_GET0_ENVELOPED), "cms_get0_enveloped"}, + {ERR_FUNC(CMS_F_CMS_GET0_REVOCATION_CHOICES), + "CMS_GET0_REVOCATION_CHOICES"}, + {ERR_FUNC(CMS_F_CMS_GET0_SIGNED), "CMS_GET0_SIGNED"}, + {ERR_FUNC(CMS_F_CMS_MSGSIGDIGEST_ADD1), "cms_msgSigDigest_add1"}, + {ERR_FUNC(CMS_F_CMS_RECEIPTREQUEST_CREATE0), + "CMS_ReceiptRequest_create0"}, + {ERR_FUNC(CMS_F_CMS_RECEIPT_VERIFY), "cms_Receipt_verify"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_DECRYPT), "CMS_RecipientInfo_decrypt"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_ENCRYPT), "CMS_RecipientInfo_encrypt"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT), + "cms_RecipientInfo_kari_encrypt"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG), + "CMS_RecipientInfo_kari_get0_alg"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID), + "CMS_RecipientInfo_kari_get0_orig_id"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS), + "CMS_RecipientInfo_kari_get0_reks"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP), + "CMS_RecipientInfo_kari_orig_id_cmp"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT), + "CMS_RECIPIENTINFO_KEKRI_DECRYPT"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT), + "CMS_RECIPIENTINFO_KEKRI_ENCRYPT"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID), + "CMS_RecipientInfo_kekri_get0_id"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP), + "CMS_RecipientInfo_kekri_id_cmp"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP), + "CMS_RecipientInfo_ktri_cert_cmp"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT), + "CMS_RECIPIENTINFO_KTRI_DECRYPT"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT), + "CMS_RECIPIENTINFO_KTRI_ENCRYPT"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS), + "CMS_RecipientInfo_ktri_get0_algs"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID), + "CMS_RecipientInfo_ktri_get0_signer_id"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT), + "cms_RecipientInfo_pwri_crypt"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_SET0_KEY), + "CMS_RecipientInfo_set0_key"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD), + "CMS_RecipientInfo_set0_password"}, + {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_SET0_PKEY), + "CMS_RecipientInfo_set0_pkey"}, + {ERR_FUNC(CMS_F_CMS_SD_ASN1_CTRL), "CMS_SD_ASN1_CTRL"}, + {ERR_FUNC(CMS_F_CMS_SET1_IAS), "cms_set1_ias"}, + {ERR_FUNC(CMS_F_CMS_SET1_KEYID), "cms_set1_keyid"}, + {ERR_FUNC(CMS_F_CMS_SET1_SIGNERIDENTIFIER), "cms_set1_SignerIdentifier"}, + {ERR_FUNC(CMS_F_CMS_SET_DETACHED), "CMS_set_detached"}, + {ERR_FUNC(CMS_F_CMS_SIGN), "CMS_sign"}, + {ERR_FUNC(CMS_F_CMS_SIGNED_DATA_INIT), "CMS_SIGNED_DATA_INIT"}, + {ERR_FUNC(CMS_F_CMS_SIGNERINFO_CONTENT_SIGN), + "CMS_SIGNERINFO_CONTENT_SIGN"}, + {ERR_FUNC(CMS_F_CMS_SIGNERINFO_SIGN), "CMS_SignerInfo_sign"}, + {ERR_FUNC(CMS_F_CMS_SIGNERINFO_VERIFY), "CMS_SignerInfo_verify"}, + {ERR_FUNC(CMS_F_CMS_SIGNERINFO_VERIFY_CERT), + "CMS_SIGNERINFO_VERIFY_CERT"}, + {ERR_FUNC(CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT), + "CMS_SignerInfo_verify_content"}, + {ERR_FUNC(CMS_F_CMS_SIGN_RECEIPT), "CMS_sign_receipt"}, + {ERR_FUNC(CMS_F_CMS_STREAM), "CMS_stream"}, + {ERR_FUNC(CMS_F_CMS_UNCOMPRESS), "CMS_uncompress"}, + {ERR_FUNC(CMS_F_CMS_VERIFY), "CMS_verify"}, + {0, NULL} +}; + +static ERR_STRING_DATA CMS_str_reasons[] = { + {ERR_REASON(CMS_R_ADD_SIGNER_ERROR), "add signer error"}, + {ERR_REASON(CMS_R_CERTIFICATE_ALREADY_PRESENT), + "certificate already present"}, + {ERR_REASON(CMS_R_CERTIFICATE_HAS_NO_KEYID), "certificate has no keyid"}, + {ERR_REASON(CMS_R_CERTIFICATE_VERIFY_ERROR), "certificate verify error"}, + {ERR_REASON(CMS_R_CIPHER_INITIALISATION_ERROR), + "cipher initialisation error"}, + {ERR_REASON(CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR), + "cipher parameter initialisation error"}, + {ERR_REASON(CMS_R_CMS_DATAFINAL_ERROR), "cms datafinal error"}, + {ERR_REASON(CMS_R_CMS_LIB), "cms lib"}, + {ERR_REASON(CMS_R_CONTENTIDENTIFIER_MISMATCH), + "contentidentifier mismatch"}, + {ERR_REASON(CMS_R_CONTENT_NOT_FOUND), "content not found"}, + {ERR_REASON(CMS_R_CONTENT_TYPE_MISMATCH), "content type mismatch"}, + {ERR_REASON(CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA), + "content type not compressed data"}, + {ERR_REASON(CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA), + "content type not enveloped data"}, + {ERR_REASON(CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA), + "content type not signed data"}, + {ERR_REASON(CMS_R_CONTENT_VERIFY_ERROR), "content verify error"}, + {ERR_REASON(CMS_R_CTRL_ERROR), "ctrl error"}, + {ERR_REASON(CMS_R_CTRL_FAILURE), "ctrl failure"}, + {ERR_REASON(CMS_R_DECRYPT_ERROR), "decrypt error"}, + {ERR_REASON(CMS_R_DIGEST_ERROR), "digest error"}, + {ERR_REASON(CMS_R_ERROR_GETTING_PUBLIC_KEY), "error getting public key"}, + {ERR_REASON(CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE), + "error reading messagedigest attribute"}, + {ERR_REASON(CMS_R_ERROR_SETTING_KEY), "error setting key"}, + {ERR_REASON(CMS_R_ERROR_SETTING_RECIPIENTINFO), + "error setting recipientinfo"}, + {ERR_REASON(CMS_R_INVALID_ENCRYPTED_KEY_LENGTH), + "invalid encrypted key length"}, + {ERR_REASON(CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER), + "invalid key encryption parameter"}, + {ERR_REASON(CMS_R_INVALID_KEY_LENGTH), "invalid key length"}, + {ERR_REASON(CMS_R_MD_BIO_INIT_ERROR), "md bio init error"}, + {ERR_REASON(CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH), + "messagedigest attribute wrong length"}, + {ERR_REASON(CMS_R_MESSAGEDIGEST_WRONG_LENGTH), + "messagedigest wrong length"}, + {ERR_REASON(CMS_R_MSGSIGDIGEST_ERROR), "msgsigdigest error"}, + {ERR_REASON(CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE), + "msgsigdigest verification failure"}, + {ERR_REASON(CMS_R_MSGSIGDIGEST_WRONG_LENGTH), + "msgsigdigest wrong length"}, + {ERR_REASON(CMS_R_NEED_ONE_SIGNER), "need one signer"}, + {ERR_REASON(CMS_R_NOT_A_SIGNED_RECEIPT), "not a signed receipt"}, + {ERR_REASON(CMS_R_NOT_ENCRYPTED_DATA), "not encrypted data"}, + {ERR_REASON(CMS_R_NOT_KEK), "not kek"}, + {ERR_REASON(CMS_R_NOT_KEY_AGREEMENT), "not key agreement"}, + {ERR_REASON(CMS_R_NOT_KEY_TRANSPORT), "not key transport"}, + {ERR_REASON(CMS_R_NOT_PWRI), "not pwri"}, + {ERR_REASON(CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE), + "not supported for this key type"}, + {ERR_REASON(CMS_R_NO_CIPHER), "no cipher"}, + {ERR_REASON(CMS_R_NO_CONTENT), "no content"}, + {ERR_REASON(CMS_R_NO_CONTENT_TYPE), "no content type"}, + {ERR_REASON(CMS_R_NO_DEFAULT_DIGEST), "no default digest"}, + {ERR_REASON(CMS_R_NO_DIGEST_SET), "no digest set"}, + {ERR_REASON(CMS_R_NO_KEY), "no key"}, + {ERR_REASON(CMS_R_NO_KEY_OR_CERT), "no key or cert"}, + {ERR_REASON(CMS_R_NO_MATCHING_DIGEST), "no matching digest"}, + {ERR_REASON(CMS_R_NO_MATCHING_RECIPIENT), "no matching recipient"}, + {ERR_REASON(CMS_R_NO_MATCHING_SIGNATURE), "no matching signature"}, + {ERR_REASON(CMS_R_NO_MSGSIGDIGEST), "no msgsigdigest"}, + {ERR_REASON(CMS_R_NO_PASSWORD), "no password"}, + {ERR_REASON(CMS_R_NO_PRIVATE_KEY), "no private key"}, + {ERR_REASON(CMS_R_NO_PUBLIC_KEY), "no public key"}, + {ERR_REASON(CMS_R_NO_RECEIPT_REQUEST), "no receipt request"}, + {ERR_REASON(CMS_R_NO_SIGNERS), "no signers"}, + {ERR_REASON(CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE), + "private key does not match certificate"}, + {ERR_REASON(CMS_R_RECEIPT_DECODE_ERROR), "receipt decode error"}, + {ERR_REASON(CMS_R_RECIPIENT_ERROR), "recipient error"}, + {ERR_REASON(CMS_R_SIGNER_CERTIFICATE_NOT_FOUND), + "signer certificate not found"}, + {ERR_REASON(CMS_R_SIGNFINAL_ERROR), "signfinal error"}, + {ERR_REASON(CMS_R_SMIME_TEXT_ERROR), "smime text error"}, + {ERR_REASON(CMS_R_STORE_INIT_ERROR), "store init error"}, + {ERR_REASON(CMS_R_TYPE_NOT_COMPRESSED_DATA), "type not compressed data"}, + {ERR_REASON(CMS_R_TYPE_NOT_DATA), "type not data"}, + {ERR_REASON(CMS_R_TYPE_NOT_DIGESTED_DATA), "type not digested data"}, + {ERR_REASON(CMS_R_TYPE_NOT_ENCRYPTED_DATA), "type not encrypted data"}, + {ERR_REASON(CMS_R_TYPE_NOT_ENVELOPED_DATA), "type not enveloped data"}, + {ERR_REASON(CMS_R_UNABLE_TO_FINALIZE_CONTEXT), + "unable to finalize context"}, + {ERR_REASON(CMS_R_UNKNOWN_CIPHER), "unknown cipher"}, + {ERR_REASON(CMS_R_UNKNOWN_DIGEST_ALGORIHM), "unknown digest algorihm"}, + {ERR_REASON(CMS_R_UNKNOWN_ID), "unknown id"}, + {ERR_REASON(CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM), + "unsupported compression algorithm"}, + {ERR_REASON(CMS_R_UNSUPPORTED_CONTENT_TYPE), "unsupported content type"}, + {ERR_REASON(CMS_R_UNSUPPORTED_KEK_ALGORITHM), + "unsupported kek algorithm"}, + {ERR_REASON(CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM), + "unsupported key encryption algorithm"}, + {ERR_REASON(CMS_R_UNSUPPORTED_RECIPIENT_TYPE), + "unsupported recipient type"}, + {ERR_REASON(CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE), + "unsupported recpientinfo type"}, + {ERR_REASON(CMS_R_UNSUPPORTED_TYPE), "unsupported type"}, + {ERR_REASON(CMS_R_UNWRAP_ERROR), "unwrap error"}, + {ERR_REASON(CMS_R_UNWRAP_FAILURE), "unwrap failure"}, + {ERR_REASON(CMS_R_VERIFICATION_FAILURE), "verification failure"}, + {ERR_REASON(CMS_R_WRAP_ERROR), "wrap error"}, + {0, NULL} +}; + +#endif + +void ERR_load_CMS_strings(void) +{ +#ifndef OPENSSL_NO_ERR + + if (ERR_func_error_string(CMS_str_functs[0].error) == NULL) { + ERR_load_strings(0, CMS_str_functs); + ERR_load_strings(0, CMS_str_reasons); + } +#endif +} diff --git a/libs/openssl/crypto/cms/cms_ess.c b/libs/openssl/crypto/cms/cms_ess.c new file mode 100644 index 00000000..8631a2eb --- /dev/null +++ b/libs/openssl/crypto/cms/cms_ess.c @@ -0,0 +1,395 @@ +/* crypto/cms/cms_ess.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include "cryptlib.h" +#include +#include +#include +#include +#include +#include +#include "cms_lcl.h" + +DECLARE_ASN1_ITEM(CMS_ReceiptRequest) +DECLARE_ASN1_ITEM(CMS_Receipt) + +IMPLEMENT_ASN1_FUNCTIONS(CMS_ReceiptRequest) + +/* ESS services: for now just Signed Receipt related */ + +int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr) +{ + ASN1_STRING *str; + CMS_ReceiptRequest *rr = NULL; + if (prr) + *prr = NULL; + str = CMS_signed_get0_data_by_OBJ(si, + OBJ_nid2obj + (NID_id_smime_aa_receiptRequest), -3, + V_ASN1_SEQUENCE); + if (!str) + return 0; + + rr = ASN1_item_unpack(str, ASN1_ITEM_rptr(CMS_ReceiptRequest)); + if (!rr) + return -1; + if (prr) + *prr = rr; + else + CMS_ReceiptRequest_free(rr); + return 1; +} + +CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen, + int allorfirst, + STACK_OF(GENERAL_NAMES) + *receiptList, STACK_OF(GENERAL_NAMES) + *receiptsTo) +{ + CMS_ReceiptRequest *rr = NULL; + + rr = CMS_ReceiptRequest_new(); + if (!rr) + goto merr; + if (id) + ASN1_STRING_set0(rr->signedContentIdentifier, id, idlen); + else { + if (!ASN1_STRING_set(rr->signedContentIdentifier, NULL, 32)) + goto merr; + if (RAND_pseudo_bytes(rr->signedContentIdentifier->data, 32) + <= 0) + goto err; + } + + sk_GENERAL_NAMES_pop_free(rr->receiptsTo, GENERAL_NAMES_free); + rr->receiptsTo = receiptsTo; + + if (receiptList) { + rr->receiptsFrom->type = 1; + rr->receiptsFrom->d.receiptList = receiptList; + } else { + rr->receiptsFrom->type = 0; + rr->receiptsFrom->d.allOrFirstTier = allorfirst; + } + + return rr; + + merr: + CMSerr(CMS_F_CMS_RECEIPTREQUEST_CREATE0, ERR_R_MALLOC_FAILURE); + + err: + if (rr) + CMS_ReceiptRequest_free(rr); + + return NULL; + +} + +int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr) +{ + unsigned char *rrder = NULL; + int rrderlen, r = 0; + + rrderlen = i2d_CMS_ReceiptRequest(rr, &rrder); + if (rrderlen < 0) + goto merr; + + if (!CMS_signed_add1_attr_by_NID(si, NID_id_smime_aa_receiptRequest, + V_ASN1_SEQUENCE, rrder, rrderlen)) + goto merr; + + r = 1; + + merr: + if (!r) + CMSerr(CMS_F_CMS_ADD1_RECEIPTREQUEST, ERR_R_MALLOC_FAILURE); + + if (rrder) + OPENSSL_free(rrder); + + return r; + +} + +void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, + ASN1_STRING **pcid, + int *pallorfirst, + STACK_OF(GENERAL_NAMES) **plist, + STACK_OF(GENERAL_NAMES) **prto) +{ + if (pcid) + *pcid = rr->signedContentIdentifier; + if (rr->receiptsFrom->type == 0) { + if (pallorfirst) + *pallorfirst = (int)rr->receiptsFrom->d.allOrFirstTier; + if (plist) + *plist = NULL; + } else { + if (pallorfirst) + *pallorfirst = -1; + if (plist) + *plist = rr->receiptsFrom->d.receiptList; + } + if (prto) + *prto = rr->receiptsTo; +} + +/* Digest a SignerInfo structure for msgSigDigest attribute processing */ + +static int cms_msgSigDigest(CMS_SignerInfo *si, + unsigned char *dig, unsigned int *diglen) +{ + const EVP_MD *md; + md = EVP_get_digestbyobj(si->digestAlgorithm->algorithm); + if (md == NULL) + return 0; + if (!ASN1_item_digest(ASN1_ITEM_rptr(CMS_Attributes_Verify), md, + si->signedAttrs, dig, diglen)) + return 0; + return 1; +} + +/* Add a msgSigDigest attribute to a SignerInfo */ + +int cms_msgSigDigest_add1(CMS_SignerInfo *dest, CMS_SignerInfo *src) +{ + unsigned char dig[EVP_MAX_MD_SIZE]; + unsigned int diglen; + if (!cms_msgSigDigest(src, dig, &diglen)) { + CMSerr(CMS_F_CMS_MSGSIGDIGEST_ADD1, CMS_R_MSGSIGDIGEST_ERROR); + return 0; + } + if (!CMS_signed_add1_attr_by_NID(dest, NID_id_smime_aa_msgSigDigest, + V_ASN1_OCTET_STRING, dig, diglen)) { + CMSerr(CMS_F_CMS_MSGSIGDIGEST_ADD1, ERR_R_MALLOC_FAILURE); + return 0; + } + return 1; +} + +/* Verify signed receipt after it has already passed normal CMS verify */ + +int cms_Receipt_verify(CMS_ContentInfo *cms, CMS_ContentInfo *req_cms) +{ + int r = 0, i; + CMS_ReceiptRequest *rr = NULL; + CMS_Receipt *rct = NULL; + STACK_OF(CMS_SignerInfo) *sis, *osis; + CMS_SignerInfo *si, *osi = NULL; + ASN1_OCTET_STRING *msig, **pcont; + ASN1_OBJECT *octype; + unsigned char dig[EVP_MAX_MD_SIZE]; + unsigned int diglen; + + /* Get SignerInfos, also checks SignedData content type */ + osis = CMS_get0_SignerInfos(req_cms); + sis = CMS_get0_SignerInfos(cms); + if (!osis || !sis) + goto err; + + if (sk_CMS_SignerInfo_num(sis) != 1) { + CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NEED_ONE_SIGNER); + goto err; + } + + /* Check receipt content type */ + if (OBJ_obj2nid(CMS_get0_eContentType(cms)) != NID_id_smime_ct_receipt) { + CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NOT_A_SIGNED_RECEIPT); + goto err; + } + + /* Extract and decode receipt content */ + pcont = CMS_get0_content(cms); + if (!pcont || !*pcont) { + CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NO_CONTENT); + goto err; + } + + rct = ASN1_item_unpack(*pcont, ASN1_ITEM_rptr(CMS_Receipt)); + + if (!rct) { + CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_RECEIPT_DECODE_ERROR); + goto err; + } + + /* Locate original request */ + + for (i = 0; i < sk_CMS_SignerInfo_num(osis); i++) { + osi = sk_CMS_SignerInfo_value(osis, i); + if (!ASN1_STRING_cmp(osi->signature, rct->originatorSignatureValue)) + break; + } + + if (i == sk_CMS_SignerInfo_num(osis)) { + CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NO_MATCHING_SIGNATURE); + goto err; + } + + si = sk_CMS_SignerInfo_value(sis, 0); + + /* Get msgSigDigest value and compare */ + + msig = CMS_signed_get0_data_by_OBJ(si, + OBJ_nid2obj + (NID_id_smime_aa_msgSigDigest), -3, + V_ASN1_OCTET_STRING); + + if (!msig) { + CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NO_MSGSIGDIGEST); + goto err; + } + + if (!cms_msgSigDigest(osi, dig, &diglen)) { + CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_MSGSIGDIGEST_ERROR); + goto err; + } + + if (diglen != (unsigned int)msig->length) { + CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_MSGSIGDIGEST_WRONG_LENGTH); + goto err; + } + + if (memcmp(dig, msig->data, diglen)) { + CMSerr(CMS_F_CMS_RECEIPT_VERIFY, + CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE); + goto err; + } + + /* Compare content types */ + + octype = CMS_signed_get0_data_by_OBJ(osi, + OBJ_nid2obj(NID_pkcs9_contentType), + -3, V_ASN1_OBJECT); + if (!octype) { + CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NO_CONTENT_TYPE); + goto err; + } + + /* Compare details in receipt request */ + + if (OBJ_cmp(octype, rct->contentType)) { + CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_CONTENT_TYPE_MISMATCH); + goto err; + } + + /* Get original receipt request details */ + + if (CMS_get1_ReceiptRequest(osi, &rr) <= 0) { + CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NO_RECEIPT_REQUEST); + goto err; + } + + if (ASN1_STRING_cmp(rr->signedContentIdentifier, + rct->signedContentIdentifier)) { + CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_CONTENTIDENTIFIER_MISMATCH); + goto err; + } + + r = 1; + + err: + if (rr) + CMS_ReceiptRequest_free(rr); + if (rct) + M_ASN1_free_of(rct, CMS_Receipt); + + return r; + +} + +/* + * Encode a Receipt into an OCTET STRING read for including into content of a + * SignedData ContentInfo. + */ + +ASN1_OCTET_STRING *cms_encode_Receipt(CMS_SignerInfo *si) +{ + CMS_Receipt rct; + CMS_ReceiptRequest *rr = NULL; + ASN1_OBJECT *ctype; + ASN1_OCTET_STRING *os = NULL; + + /* Get original receipt request */ + + /* Get original receipt request details */ + + if (CMS_get1_ReceiptRequest(si, &rr) <= 0) { + CMSerr(CMS_F_CMS_ENCODE_RECEIPT, CMS_R_NO_RECEIPT_REQUEST); + goto err; + } + + /* Get original content type */ + + ctype = CMS_signed_get0_data_by_OBJ(si, + OBJ_nid2obj(NID_pkcs9_contentType), + -3, V_ASN1_OBJECT); + if (!ctype) { + CMSerr(CMS_F_CMS_ENCODE_RECEIPT, CMS_R_NO_CONTENT_TYPE); + goto err; + } + + rct.version = 1; + rct.contentType = ctype; + rct.signedContentIdentifier = rr->signedContentIdentifier; + rct.originatorSignatureValue = si->signature; + + os = ASN1_item_pack(&rct, ASN1_ITEM_rptr(CMS_Receipt), NULL); + + err: + if (rr) + CMS_ReceiptRequest_free(rr); + + return os; + +} diff --git a/libs/openssl/crypto/cms/cms_io.c b/libs/openssl/crypto/cms/cms_io.c new file mode 100644 index 00000000..ec51f8e6 --- /dev/null +++ b/libs/openssl/crypto/cms/cms_io.c @@ -0,0 +1,133 @@ +/* crypto/cms/cms_io.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include +#include +#include +#include +#include "cms.h" +#include "cms_lcl.h" + +int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms) +{ + ASN1_OCTET_STRING **pos; + pos = CMS_get0_content(cms); + if (!pos) + return 0; + if (!*pos) + *pos = ASN1_OCTET_STRING_new(); + if (*pos) { + (*pos)->flags |= ASN1_STRING_FLAG_NDEF; + (*pos)->flags &= ~ASN1_STRING_FLAG_CONT; + *boundary = &(*pos)->data; + return 1; + } + CMSerr(CMS_F_CMS_STREAM, ERR_R_MALLOC_FAILURE); + return 0; +} + +CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms) +{ + return ASN1_item_d2i_bio(ASN1_ITEM_rptr(CMS_ContentInfo), bp, cms); +} + +int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms) +{ + return ASN1_item_i2d_bio(ASN1_ITEM_rptr(CMS_ContentInfo), bp, cms); +} + +IMPLEMENT_PEM_rw_const(CMS, CMS_ContentInfo, PEM_STRING_CMS, CMS_ContentInfo) + +BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms) +{ + return BIO_new_NDEF(out, (ASN1_VALUE *)cms, + ASN1_ITEM_rptr(CMS_ContentInfo)); +} + +/* CMS wrappers round generalised stream and MIME routines */ + +int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags) +{ + return i2d_ASN1_bio_stream(out, (ASN1_VALUE *)cms, in, flags, + ASN1_ITEM_rptr(CMS_ContentInfo)); +} + +int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, + int flags) +{ + return PEM_write_bio_ASN1_stream(out, (ASN1_VALUE *)cms, in, flags, + "CMS", ASN1_ITEM_rptr(CMS_ContentInfo)); +} + +int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags) +{ + STACK_OF(X509_ALGOR) *mdalgs; + int ctype_nid = OBJ_obj2nid(cms->contentType); + int econt_nid = OBJ_obj2nid(CMS_get0_eContentType(cms)); + if (ctype_nid == NID_pkcs7_signed) + mdalgs = cms->d.signedData->digestAlgorithms; + else + mdalgs = NULL; + + return SMIME_write_ASN1(bio, (ASN1_VALUE *)cms, data, flags, + ctype_nid, econt_nid, mdalgs, + ASN1_ITEM_rptr(CMS_ContentInfo)); +} + +CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont) +{ + return (CMS_ContentInfo *)SMIME_read_ASN1(bio, bcont, + ASN1_ITEM_rptr + (CMS_ContentInfo)); +} diff --git a/libs/openssl/crypto/cms/cms_kari.c b/libs/openssl/crypto/cms/cms_kari.c new file mode 100644 index 00000000..2cfcdb29 --- /dev/null +++ b/libs/openssl/crypto/cms/cms_kari.c @@ -0,0 +1,465 @@ +/* crypto/cms/cms_kari.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2013 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include "cryptlib.h" +#include +#include +#include +#include +#include +#include +#include +#include "cms_lcl.h" +#include "asn1_locl.h" + +DECLARE_ASN1_ITEM(CMS_KeyAgreeRecipientInfo) +DECLARE_ASN1_ITEM(CMS_RecipientEncryptedKey) +DECLARE_ASN1_ITEM(CMS_OriginatorPublicKey) +DECLARE_ASN1_ITEM(CMS_RecipientKeyIdentifier) + +/* Key Agreement Recipient Info (KARI) routines */ + +int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri, + X509_ALGOR **palg, + ASN1_OCTET_STRING **pukm) +{ + if (ri->type != CMS_RECIPINFO_AGREE) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG, + CMS_R_NOT_KEY_AGREEMENT); + return 0; + } + if (palg) + *palg = ri->d.kari->keyEncryptionAlgorithm; + if (pukm) + *pukm = ri->d.kari->ukm; + return 1; +} + +/* Retrieve recipient encrypted keys from a kari */ + +STACK_OF(CMS_RecipientEncryptedKey) +*CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri) +{ + if (ri->type != CMS_RECIPINFO_AGREE) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS, + CMS_R_NOT_KEY_AGREEMENT); + return NULL; + } + return ri->d.kari->recipientEncryptedKeys; +} + +int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri, + X509_ALGOR **pubalg, + ASN1_BIT_STRING **pubkey, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno) +{ + CMS_OriginatorIdentifierOrKey *oik; + if (ri->type != CMS_RECIPINFO_AGREE) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID, + CMS_R_NOT_KEY_AGREEMENT); + return 0; + } + oik = ri->d.kari->originator; + if (issuer) + *issuer = NULL; + if (sno) + *sno = NULL; + if (keyid) + *keyid = NULL; + if (pubalg) + *pubalg = NULL; + if (pubkey) + *pubkey = NULL; + if (oik->type == CMS_OIK_ISSUER_SERIAL) { + if (issuer) + *issuer = oik->d.issuerAndSerialNumber->issuer; + if (sno) + *sno = oik->d.issuerAndSerialNumber->serialNumber; + } else if (oik->type == CMS_OIK_KEYIDENTIFIER) { + if (keyid) + *keyid = oik->d.subjectKeyIdentifier; + } else if (oik->type == CMS_OIK_PUBKEY) { + if (pubalg) + *pubalg = oik->d.originatorKey->algorithm; + if (pubkey) + *pubkey = oik->d.originatorKey->publicKey; + } else + return 0; + return 1; +} + +int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert) +{ + CMS_OriginatorIdentifierOrKey *oik; + if (ri->type != CMS_RECIPINFO_AGREE) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP, + CMS_R_NOT_KEY_AGREEMENT); + return -2; + } + oik = ri->d.kari->originator; + if (oik->type == CMS_OIK_ISSUER_SERIAL) + return cms_ias_cert_cmp(oik->d.issuerAndSerialNumber, cert); + else if (oik->type == CMS_OIK_KEYIDENTIFIER) + return cms_keyid_cert_cmp(oik->d.subjectKeyIdentifier, cert); + return -1; +} + +int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek, + ASN1_OCTET_STRING **keyid, + ASN1_GENERALIZEDTIME **tm, + CMS_OtherKeyAttribute **other, + X509_NAME **issuer, ASN1_INTEGER **sno) +{ + CMS_KeyAgreeRecipientIdentifier *rid = rek->rid; + if (rid->type == CMS_REK_ISSUER_SERIAL) { + if (issuer) + *issuer = rid->d.issuerAndSerialNumber->issuer; + if (sno) + *sno = rid->d.issuerAndSerialNumber->serialNumber; + if (keyid) + *keyid = NULL; + if (tm) + *tm = NULL; + if (other) + *other = NULL; + } else if (rid->type == CMS_REK_KEYIDENTIFIER) { + if (keyid) + *keyid = rid->d.rKeyId->subjectKeyIdentifier; + if (tm) + *tm = rid->d.rKeyId->date; + if (other) + *other = rid->d.rKeyId->other; + if (issuer) + *issuer = NULL; + if (sno) + *sno = NULL; + } else + return 0; + return 1; +} + +int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek, + X509 *cert) +{ + CMS_KeyAgreeRecipientIdentifier *rid = rek->rid; + if (rid->type == CMS_REK_ISSUER_SERIAL) + return cms_ias_cert_cmp(rid->d.issuerAndSerialNumber, cert); + else if (rid->type == CMS_REK_KEYIDENTIFIER) + return cms_keyid_cert_cmp(rid->d.rKeyId->subjectKeyIdentifier, cert); + else + return -1; +} + +int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk) +{ + EVP_PKEY_CTX *pctx; + CMS_KeyAgreeRecipientInfo *kari = ri->d.kari; + if (kari->pctx) { + EVP_PKEY_CTX_free(kari->pctx); + kari->pctx = NULL; + } + if (!pk) + return 1; + pctx = EVP_PKEY_CTX_new(pk, NULL); + if (!pctx || !EVP_PKEY_derive_init(pctx)) + goto err; + kari->pctx = pctx; + return 1; + err: + if (pctx) + EVP_PKEY_CTX_free(pctx); + return 0; +} + +EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri) +{ + if (ri->type == CMS_RECIPINFO_AGREE) + return &ri->d.kari->ctx; + return NULL; +} + +/* + * Derive KEK and decrypt/encrypt with it to produce either the original CEK + * or the encrypted CEK. + */ + +static int cms_kek_cipher(unsigned char **pout, size_t *poutlen, + const unsigned char *in, size_t inlen, + CMS_KeyAgreeRecipientInfo *kari, int enc) +{ + /* Key encryption key */ + unsigned char kek[EVP_MAX_KEY_LENGTH]; + size_t keklen; + int rv = 0; + unsigned char *out = NULL; + int outlen; + keklen = EVP_CIPHER_CTX_key_length(&kari->ctx); + if (keklen > EVP_MAX_KEY_LENGTH) + return 0; + /* Derive KEK */ + if (EVP_PKEY_derive(kari->pctx, kek, &keklen) <= 0) + goto err; + /* Set KEK in context */ + if (!EVP_CipherInit_ex(&kari->ctx, NULL, NULL, kek, NULL, enc)) + goto err; + /* obtain output length of ciphered key */ + if (!EVP_CipherUpdate(&kari->ctx, NULL, &outlen, in, inlen)) + goto err; + out = OPENSSL_malloc(outlen); + if (!out) + goto err; + if (!EVP_CipherUpdate(&kari->ctx, out, &outlen, in, inlen)) + goto err; + *pout = out; + *poutlen = (size_t)outlen; + rv = 1; + + err: + OPENSSL_cleanse(kek, keklen); + if (!rv && out) + OPENSSL_free(out); + EVP_CIPHER_CTX_cleanup(&kari->ctx); + EVP_PKEY_CTX_free(kari->pctx); + kari->pctx = NULL; + return rv; +} + +int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms, + CMS_RecipientInfo *ri, + CMS_RecipientEncryptedKey *rek) +{ + int rv = 0; + unsigned char *enckey = NULL, *cek = NULL; + size_t enckeylen; + size_t ceklen; + CMS_EncryptedContentInfo *ec; + enckeylen = rek->encryptedKey->length; + enckey = rek->encryptedKey->data; + /* Setup all parameters to derive KEK */ + if (!cms_env_asn1_ctrl(ri, 1)) + goto err; + /* Attempt to decrypt CEK */ + if (!cms_kek_cipher(&cek, &ceklen, enckey, enckeylen, ri->d.kari, 0)) + goto err; + ec = cms->d.envelopedData->encryptedContentInfo; + if (ec->key) { + OPENSSL_cleanse(ec->key, ec->keylen); + OPENSSL_free(ec->key); + } + ec->key = cek; + ec->keylen = ceklen; + cek = NULL; + rv = 1; + err: + if (cek) + OPENSSL_free(cek); + return rv; +} + +/* Create ephemeral key and initialise context based on it */ +static int cms_kari_create_ephemeral_key(CMS_KeyAgreeRecipientInfo *kari, + EVP_PKEY *pk) +{ + EVP_PKEY_CTX *pctx = NULL; + EVP_PKEY *ekey = NULL; + int rv = 0; + pctx = EVP_PKEY_CTX_new(pk, NULL); + if (!pctx) + goto err; + if (EVP_PKEY_keygen_init(pctx) <= 0) + goto err; + if (EVP_PKEY_keygen(pctx, &ekey) <= 0) + goto err; + EVP_PKEY_CTX_free(pctx); + pctx = EVP_PKEY_CTX_new(ekey, NULL); + if (!pctx) + goto err; + if (EVP_PKEY_derive_init(pctx) <= 0) + goto err; + kari->pctx = pctx; + rv = 1; + err: + if (!rv && pctx) + EVP_PKEY_CTX_free(pctx); + if (ekey) + EVP_PKEY_free(ekey); + return rv; +} + +/* Initialise a ktri based on passed certificate and key */ + +int cms_RecipientInfo_kari_init(CMS_RecipientInfo *ri, X509 *recip, + EVP_PKEY *pk, unsigned int flags) +{ + CMS_KeyAgreeRecipientInfo *kari; + CMS_RecipientEncryptedKey *rek = NULL; + + ri->d.kari = M_ASN1_new_of(CMS_KeyAgreeRecipientInfo); + if (!ri->d.kari) + return 0; + ri->type = CMS_RECIPINFO_AGREE; + + kari = ri->d.kari; + kari->version = 3; + + rek = M_ASN1_new_of(CMS_RecipientEncryptedKey); + if (!sk_CMS_RecipientEncryptedKey_push(kari->recipientEncryptedKeys, rek)) { + M_ASN1_free_of(rek, CMS_RecipientEncryptedKey); + return 0; + } + + if (flags & CMS_USE_KEYID) { + rek->rid->type = CMS_REK_KEYIDENTIFIER; + rek->rid->d.rKeyId = M_ASN1_new_of(CMS_RecipientKeyIdentifier); + if (rek->rid->d.rKeyId == NULL) + return 0; + if (!cms_set1_keyid(&rek->rid->d.rKeyId->subjectKeyIdentifier, recip)) + return 0; + } else { + rek->rid->type = CMS_REK_ISSUER_SERIAL; + if (!cms_set1_ias(&rek->rid->d.issuerAndSerialNumber, recip)) + return 0; + } + + /* Create ephemeral key */ + if (!cms_kari_create_ephemeral_key(kari, pk)) + return 0; + + CRYPTO_add(&pk->references, 1, CRYPTO_LOCK_EVP_PKEY); + rek->pkey = pk; + return 1; +} + +static int cms_wrap_init(CMS_KeyAgreeRecipientInfo *kari, + const EVP_CIPHER *cipher) +{ + EVP_CIPHER_CTX *ctx = &kari->ctx; + const EVP_CIPHER *kekcipher; + int keylen = EVP_CIPHER_key_length(cipher); + /* If a suitable wrap algorithm is already set nothing to do */ + kekcipher = EVP_CIPHER_CTX_cipher(ctx); + + if (kekcipher) { + if (EVP_CIPHER_CTX_mode(ctx) != EVP_CIPH_WRAP_MODE) + return 0; + return 1; + } + /* + * Pick a cipher based on content encryption cipher. If it is DES3 use + * DES3 wrap otherwise use AES wrap similar to key size. + */ + if (EVP_CIPHER_type(cipher) == NID_des_ede3_cbc) + kekcipher = EVP_des_ede3_wrap(); + else if (keylen <= 16) + kekcipher = EVP_aes_128_wrap(); + else if (keylen <= 24) + kekcipher = EVP_aes_192_wrap(); + else + kekcipher = EVP_aes_256_wrap(); + return EVP_EncryptInit_ex(ctx, kekcipher, NULL, NULL, NULL); +} + +/* Encrypt content key in key agreement recipient info */ + +int cms_RecipientInfo_kari_encrypt(CMS_ContentInfo *cms, + CMS_RecipientInfo *ri) +{ + CMS_KeyAgreeRecipientInfo *kari; + CMS_EncryptedContentInfo *ec; + CMS_RecipientEncryptedKey *rek; + STACK_OF(CMS_RecipientEncryptedKey) *reks; + int i; + + if (ri->type != CMS_RECIPINFO_AGREE) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT, CMS_R_NOT_KEY_AGREEMENT); + return 0; + } + kari = ri->d.kari; + reks = kari->recipientEncryptedKeys; + ec = cms->d.envelopedData->encryptedContentInfo; + /* Initialise wrap algorithm parameters */ + if (!cms_wrap_init(kari, ec->cipher)) + return 0; + /* + * If no orignator key set up initialise for ephemeral key the public key + * ASN1 structure will set the actual public key value. + */ + if (kari->originator->type == -1) { + CMS_OriginatorIdentifierOrKey *oik = kari->originator; + oik->type = CMS_OIK_PUBKEY; + oik->d.originatorKey = M_ASN1_new_of(CMS_OriginatorPublicKey); + if (!oik->d.originatorKey) + return 0; + } + /* Initialise KDF algorithm */ + if (!cms_env_asn1_ctrl(ri, 0)) + return 0; + /* For each rek, derive KEK, encrypt CEK */ + for (i = 0; i < sk_CMS_RecipientEncryptedKey_num(reks); i++) { + unsigned char *enckey; + size_t enckeylen; + rek = sk_CMS_RecipientEncryptedKey_value(reks, i); + if (EVP_PKEY_derive_set_peer(kari->pctx, rek->pkey) <= 0) + return 0; + if (!cms_kek_cipher(&enckey, &enckeylen, ec->key, ec->keylen, + kari, 1)) + return 0; + ASN1_STRING_set0(rek->encryptedKey, enckey, enckeylen); + } + + return 1; + +} diff --git a/libs/openssl/crypto/cms/cms_lcl.h b/libs/openssl/crypto/cms/cms_lcl.h new file mode 100644 index 00000000..20f2c25f --- /dev/null +++ b/libs/openssl/crypto/cms/cms_lcl.h @@ -0,0 +1,471 @@ +/* crypto/cms/cms_lcl.h */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#ifndef HEADER_CMS_LCL_H +# define HEADER_CMS_LCL_H + +#ifdef __cplusplus +extern "C" { +#endif + +# include + +/* + * Cryptographic message syntax (CMS) structures: taken from RFC3852 + */ + +/* Forward references */ + +typedef struct CMS_IssuerAndSerialNumber_st CMS_IssuerAndSerialNumber; +typedef struct CMS_EncapsulatedContentInfo_st CMS_EncapsulatedContentInfo; +typedef struct CMS_SignerIdentifier_st CMS_SignerIdentifier; +typedef struct CMS_SignedData_st CMS_SignedData; +typedef struct CMS_OtherRevocationInfoFormat_st CMS_OtherRevocationInfoFormat; +typedef struct CMS_OriginatorInfo_st CMS_OriginatorInfo; +typedef struct CMS_EncryptedContentInfo_st CMS_EncryptedContentInfo; +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; +typedef struct CMS_DigestedData_st CMS_DigestedData; +typedef struct CMS_EncryptedData_st CMS_EncryptedData; +typedef struct CMS_AuthenticatedData_st CMS_AuthenticatedData; +typedef struct CMS_CompressedData_st CMS_CompressedData; +typedef struct CMS_OtherCertificateFormat_st CMS_OtherCertificateFormat; +typedef struct CMS_KeyTransRecipientInfo_st CMS_KeyTransRecipientInfo; +typedef struct CMS_OriginatorPublicKey_st CMS_OriginatorPublicKey; +typedef struct CMS_OriginatorIdentifierOrKey_st CMS_OriginatorIdentifierOrKey; +typedef struct CMS_KeyAgreeRecipientInfo_st CMS_KeyAgreeRecipientInfo; +typedef struct CMS_RecipientKeyIdentifier_st CMS_RecipientKeyIdentifier; +typedef struct CMS_KeyAgreeRecipientIdentifier_st + CMS_KeyAgreeRecipientIdentifier; +typedef struct CMS_KEKIdentifier_st CMS_KEKIdentifier; +typedef struct CMS_KEKRecipientInfo_st CMS_KEKRecipientInfo; +typedef struct CMS_PasswordRecipientInfo_st CMS_PasswordRecipientInfo; +typedef struct CMS_OtherRecipientInfo_st CMS_OtherRecipientInfo; +typedef struct CMS_ReceiptsFrom_st CMS_ReceiptsFrom; + +struct CMS_ContentInfo_st { + ASN1_OBJECT *contentType; + union { + ASN1_OCTET_STRING *data; + CMS_SignedData *signedData; + CMS_EnvelopedData *envelopedData; + CMS_DigestedData *digestedData; + CMS_EncryptedData *encryptedData; + CMS_AuthenticatedData *authenticatedData; + CMS_CompressedData *compressedData; + ASN1_TYPE *other; + /* Other types ... */ + void *otherData; + } d; +}; + +struct CMS_SignedData_st { + long version; + STACK_OF(X509_ALGOR) *digestAlgorithms; + CMS_EncapsulatedContentInfo *encapContentInfo; + STACK_OF(CMS_CertificateChoices) *certificates; + STACK_OF(CMS_RevocationInfoChoice) *crls; + STACK_OF(CMS_SignerInfo) *signerInfos; +}; + +struct CMS_EncapsulatedContentInfo_st { + ASN1_OBJECT *eContentType; + ASN1_OCTET_STRING *eContent; + /* Set to 1 if incomplete structure only part set up */ + int partial; +}; + +struct CMS_SignerInfo_st { + long version; + CMS_SignerIdentifier *sid; + X509_ALGOR *digestAlgorithm; + STACK_OF(X509_ATTRIBUTE) *signedAttrs; + X509_ALGOR *signatureAlgorithm; + ASN1_OCTET_STRING *signature; + STACK_OF(X509_ATTRIBUTE) *unsignedAttrs; + /* Signing certificate and key */ + X509 *signer; + EVP_PKEY *pkey; + /* Digest and public key context for alternative parameters */ + EVP_MD_CTX mctx; + EVP_PKEY_CTX *pctx; +}; + +struct CMS_SignerIdentifier_st { + int type; + union { + CMS_IssuerAndSerialNumber *issuerAndSerialNumber; + ASN1_OCTET_STRING *subjectKeyIdentifier; + } d; +}; + +struct CMS_EnvelopedData_st { + long version; + CMS_OriginatorInfo *originatorInfo; + STACK_OF(CMS_RecipientInfo) *recipientInfos; + CMS_EncryptedContentInfo *encryptedContentInfo; + STACK_OF(X509_ATTRIBUTE) *unprotectedAttrs; +}; + +struct CMS_OriginatorInfo_st { + STACK_OF(CMS_CertificateChoices) *certificates; + STACK_OF(CMS_RevocationInfoChoice) *crls; +}; + +struct CMS_EncryptedContentInfo_st { + ASN1_OBJECT *contentType; + X509_ALGOR *contentEncryptionAlgorithm; + ASN1_OCTET_STRING *encryptedContent; + /* Content encryption algorithm and key */ + const EVP_CIPHER *cipher; + unsigned char *key; + size_t keylen; + /* Set to 1 if we are debugging decrypt and don't fake keys for MMA */ + int debug; +}; + +struct CMS_RecipientInfo_st { + int type; + union { + CMS_KeyTransRecipientInfo *ktri; + CMS_KeyAgreeRecipientInfo *kari; + CMS_KEKRecipientInfo *kekri; + CMS_PasswordRecipientInfo *pwri; + CMS_OtherRecipientInfo *ori; + } d; +}; + +typedef CMS_SignerIdentifier CMS_RecipientIdentifier; + +struct CMS_KeyTransRecipientInfo_st { + long version; + CMS_RecipientIdentifier *rid; + X509_ALGOR *keyEncryptionAlgorithm; + ASN1_OCTET_STRING *encryptedKey; + /* Recipient Key and cert */ + X509 *recip; + EVP_PKEY *pkey; + /* Public key context for this operation */ + EVP_PKEY_CTX *pctx; +}; + +struct CMS_KeyAgreeRecipientInfo_st { + long version; + CMS_OriginatorIdentifierOrKey *originator; + ASN1_OCTET_STRING *ukm; + X509_ALGOR *keyEncryptionAlgorithm; + STACK_OF(CMS_RecipientEncryptedKey) *recipientEncryptedKeys; + /* Public key context associated with current operation */ + EVP_PKEY_CTX *pctx; + /* Cipher context for CEK wrapping */ + EVP_CIPHER_CTX ctx; +}; + +struct CMS_OriginatorIdentifierOrKey_st { + int type; + union { + CMS_IssuerAndSerialNumber *issuerAndSerialNumber; + ASN1_OCTET_STRING *subjectKeyIdentifier; + CMS_OriginatorPublicKey *originatorKey; + } d; +}; + +struct CMS_OriginatorPublicKey_st { + X509_ALGOR *algorithm; + ASN1_BIT_STRING *publicKey; +}; + +struct CMS_RecipientEncryptedKey_st { + CMS_KeyAgreeRecipientIdentifier *rid; + ASN1_OCTET_STRING *encryptedKey; + /* Public key associated with this recipient */ + EVP_PKEY *pkey; +}; + +struct CMS_KeyAgreeRecipientIdentifier_st { + int type; + union { + CMS_IssuerAndSerialNumber *issuerAndSerialNumber; + CMS_RecipientKeyIdentifier *rKeyId; + } d; +}; + +struct CMS_RecipientKeyIdentifier_st { + ASN1_OCTET_STRING *subjectKeyIdentifier; + ASN1_GENERALIZEDTIME *date; + CMS_OtherKeyAttribute *other; +}; + +struct CMS_KEKRecipientInfo_st { + long version; + CMS_KEKIdentifier *kekid; + X509_ALGOR *keyEncryptionAlgorithm; + ASN1_OCTET_STRING *encryptedKey; + /* Extra info: symmetric key to use */ + unsigned char *key; + size_t keylen; +}; + +struct CMS_KEKIdentifier_st { + ASN1_OCTET_STRING *keyIdentifier; + ASN1_GENERALIZEDTIME *date; + CMS_OtherKeyAttribute *other; +}; + +struct CMS_PasswordRecipientInfo_st { + long version; + X509_ALGOR *keyDerivationAlgorithm; + X509_ALGOR *keyEncryptionAlgorithm; + ASN1_OCTET_STRING *encryptedKey; + /* Extra info: password to use */ + unsigned char *pass; + size_t passlen; +}; + +struct CMS_OtherRecipientInfo_st { + ASN1_OBJECT *oriType; + ASN1_TYPE *oriValue; +}; + +struct CMS_DigestedData_st { + long version; + X509_ALGOR *digestAlgorithm; + CMS_EncapsulatedContentInfo *encapContentInfo; + ASN1_OCTET_STRING *digest; +}; + +struct CMS_EncryptedData_st { + long version; + CMS_EncryptedContentInfo *encryptedContentInfo; + STACK_OF(X509_ATTRIBUTE) *unprotectedAttrs; +}; + +struct CMS_AuthenticatedData_st { + long version; + CMS_OriginatorInfo *originatorInfo; + STACK_OF(CMS_RecipientInfo) *recipientInfos; + X509_ALGOR *macAlgorithm; + X509_ALGOR *digestAlgorithm; + CMS_EncapsulatedContentInfo *encapContentInfo; + STACK_OF(X509_ATTRIBUTE) *authAttrs; + ASN1_OCTET_STRING *mac; + STACK_OF(X509_ATTRIBUTE) *unauthAttrs; +}; + +struct CMS_CompressedData_st { + long version; + X509_ALGOR *compressionAlgorithm; + STACK_OF(CMS_RecipientInfo) *recipientInfos; + CMS_EncapsulatedContentInfo *encapContentInfo; +}; + +struct CMS_RevocationInfoChoice_st { + int type; + union { + X509_CRL *crl; + CMS_OtherRevocationInfoFormat *other; + } d; +}; + +# define CMS_REVCHOICE_CRL 0 +# define CMS_REVCHOICE_OTHER 1 + +struct CMS_OtherRevocationInfoFormat_st { + ASN1_OBJECT *otherRevInfoFormat; + ASN1_TYPE *otherRevInfo; +}; + +struct CMS_CertificateChoices { + int type; + union { + X509 *certificate; + ASN1_STRING *extendedCertificate; /* Obsolete */ + ASN1_STRING *v1AttrCert; /* Left encoded for now */ + ASN1_STRING *v2AttrCert; /* Left encoded for now */ + CMS_OtherCertificateFormat *other; + } d; +}; + +# define CMS_CERTCHOICE_CERT 0 +# define CMS_CERTCHOICE_EXCERT 1 +# define CMS_CERTCHOICE_V1ACERT 2 +# define CMS_CERTCHOICE_V2ACERT 3 +# define CMS_CERTCHOICE_OTHER 4 + +struct CMS_OtherCertificateFormat_st { + ASN1_OBJECT *otherCertFormat; + ASN1_TYPE *otherCert; +}; + +/* + * This is also defined in pkcs7.h but we duplicate it to allow the CMS code + * to be independent of PKCS#7 + */ + +struct CMS_IssuerAndSerialNumber_st { + X509_NAME *issuer; + ASN1_INTEGER *serialNumber; +}; + +struct CMS_OtherKeyAttribute_st { + ASN1_OBJECT *keyAttrId; + ASN1_TYPE *keyAttr; +}; + +/* ESS structures */ + +# ifdef HEADER_X509V3_H + +struct CMS_ReceiptRequest_st { + ASN1_OCTET_STRING *signedContentIdentifier; + CMS_ReceiptsFrom *receiptsFrom; + STACK_OF(GENERAL_NAMES) *receiptsTo; +}; + +struct CMS_ReceiptsFrom_st { + int type; + union { + long allOrFirstTier; + STACK_OF(GENERAL_NAMES) *receiptList; + } d; +}; +# endif + +struct CMS_Receipt_st { + long version; + ASN1_OBJECT *contentType; + ASN1_OCTET_STRING *signedContentIdentifier; + ASN1_OCTET_STRING *originatorSignatureValue; +}; + +DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) +DECLARE_ASN1_ITEM(CMS_SignerInfo) +DECLARE_ASN1_ITEM(CMS_IssuerAndSerialNumber) +DECLARE_ASN1_ITEM(CMS_Attributes_Sign) +DECLARE_ASN1_ITEM(CMS_Attributes_Verify) +DECLARE_ASN1_ITEM(CMS_RecipientInfo) +DECLARE_ASN1_ITEM(CMS_PasswordRecipientInfo) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_IssuerAndSerialNumber) + +# define CMS_SIGNERINFO_ISSUER_SERIAL 0 +# define CMS_SIGNERINFO_KEYIDENTIFIER 1 + +# define CMS_RECIPINFO_ISSUER_SERIAL 0 +# define CMS_RECIPINFO_KEYIDENTIFIER 1 + +# define CMS_REK_ISSUER_SERIAL 0 +# define CMS_REK_KEYIDENTIFIER 1 + +# define CMS_OIK_ISSUER_SERIAL 0 +# define CMS_OIK_KEYIDENTIFIER 1 +# define CMS_OIK_PUBKEY 2 + +BIO *cms_content_bio(CMS_ContentInfo *cms); + +CMS_ContentInfo *cms_Data_create(void); + +CMS_ContentInfo *cms_DigestedData_create(const EVP_MD *md); +BIO *cms_DigestedData_init_bio(CMS_ContentInfo *cms); +int cms_DigestedData_do_final(CMS_ContentInfo *cms, BIO *chain, int verify); + +BIO *cms_SignedData_init_bio(CMS_ContentInfo *cms); +int cms_SignedData_final(CMS_ContentInfo *cms, BIO *chain); +int cms_set1_SignerIdentifier(CMS_SignerIdentifier *sid, X509 *cert, + int type); +int cms_SignerIdentifier_get0_signer_id(CMS_SignerIdentifier *sid, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno); +int cms_SignerIdentifier_cert_cmp(CMS_SignerIdentifier *sid, X509 *cert); + +CMS_ContentInfo *cms_CompressedData_create(int comp_nid); +BIO *cms_CompressedData_init_bio(CMS_ContentInfo *cms); + +void cms_DigestAlgorithm_set(X509_ALGOR *alg, const EVP_MD *md); +BIO *cms_DigestAlgorithm_init_bio(X509_ALGOR *digestAlgorithm); +int cms_DigestAlgorithm_find_ctx(EVP_MD_CTX *mctx, BIO *chain, + X509_ALGOR *mdalg); + +int cms_ias_cert_cmp(CMS_IssuerAndSerialNumber *ias, X509 *cert); +int cms_keyid_cert_cmp(ASN1_OCTET_STRING *keyid, X509 *cert); +int cms_set1_ias(CMS_IssuerAndSerialNumber **pias, X509 *cert); +int cms_set1_keyid(ASN1_OCTET_STRING **pkeyid, X509 *cert); + +BIO *cms_EncryptedContent_init_bio(CMS_EncryptedContentInfo *ec); +BIO *cms_EncryptedData_init_bio(CMS_ContentInfo *cms); +int cms_EncryptedContent_init(CMS_EncryptedContentInfo *ec, + const EVP_CIPHER *cipher, + const unsigned char *key, size_t keylen); + +int cms_Receipt_verify(CMS_ContentInfo *cms, CMS_ContentInfo *req_cms); +int cms_msgSigDigest_add1(CMS_SignerInfo *dest, CMS_SignerInfo *src); +ASN1_OCTET_STRING *cms_encode_Receipt(CMS_SignerInfo *si); + +BIO *cms_EnvelopedData_init_bio(CMS_ContentInfo *cms); +CMS_EnvelopedData *cms_get0_enveloped(CMS_ContentInfo *cms); +int cms_env_asn1_ctrl(CMS_RecipientInfo *ri, int cmd); +int cms_pkey_get_ri_type(EVP_PKEY *pk); +/* KARI routines */ +int cms_RecipientInfo_kari_init(CMS_RecipientInfo *ri, X509 *recip, + EVP_PKEY *pk, unsigned int flags); +int cms_RecipientInfo_kari_encrypt(CMS_ContentInfo *cms, + CMS_RecipientInfo *ri); + +/* PWRI routines */ +int cms_RecipientInfo_pwri_crypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri, + int en_de); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/libs/openssl/crypto/cms/cms_lib.c b/libs/openssl/crypto/cms/cms_lib.c new file mode 100644 index 00000000..d6cb60d0 --- /dev/null +++ b/libs/openssl/crypto/cms/cms_lib.c @@ -0,0 +1,652 @@ +/* crypto/cms/cms_lib.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include +#include +#include +#include +#include +#include +#include "cms.h" +#include "cms_lcl.h" + +IMPLEMENT_ASN1_FUNCTIONS(CMS_ContentInfo) +IMPLEMENT_ASN1_PRINT_FUNCTION(CMS_ContentInfo) + +DECLARE_ASN1_ITEM(CMS_CertificateChoices) +DECLARE_ASN1_ITEM(CMS_RevocationInfoChoice) +DECLARE_STACK_OF(CMS_CertificateChoices) +DECLARE_STACK_OF(CMS_RevocationInfoChoice) + +const ASN1_OBJECT *CMS_get0_type(CMS_ContentInfo *cms) +{ + return cms->contentType; +} + +CMS_ContentInfo *cms_Data_create(void) +{ + CMS_ContentInfo *cms; + cms = CMS_ContentInfo_new(); + if (cms) { + cms->contentType = OBJ_nid2obj(NID_pkcs7_data); + /* Never detached */ + CMS_set_detached(cms, 0); + } + return cms; +} + +BIO *cms_content_bio(CMS_ContentInfo *cms) +{ + ASN1_OCTET_STRING **pos = CMS_get0_content(cms); + if (!pos) + return NULL; + /* If content detached data goes nowhere: create NULL BIO */ + if (!*pos) + return BIO_new(BIO_s_null()); + /* + * If content not detached and created return memory BIO + */ + if (!*pos || ((*pos)->flags == ASN1_STRING_FLAG_CONT)) + return BIO_new(BIO_s_mem()); + /* Else content was read in: return read only BIO for it */ + return BIO_new_mem_buf((*pos)->data, (*pos)->length); +} + +BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont) +{ + BIO *cmsbio, *cont; + if (icont) + cont = icont; + else + cont = cms_content_bio(cms); + if (!cont) { + CMSerr(CMS_F_CMS_DATAINIT, CMS_R_NO_CONTENT); + return NULL; + } + switch (OBJ_obj2nid(cms->contentType)) { + + case NID_pkcs7_data: + return cont; + + case NID_pkcs7_signed: + cmsbio = cms_SignedData_init_bio(cms); + break; + + case NID_pkcs7_digest: + cmsbio = cms_DigestedData_init_bio(cms); + break; +#ifdef ZLIB + case NID_id_smime_ct_compressedData: + cmsbio = cms_CompressedData_init_bio(cms); + break; +#endif + + case NID_pkcs7_encrypted: + cmsbio = cms_EncryptedData_init_bio(cms); + break; + + case NID_pkcs7_enveloped: + cmsbio = cms_EnvelopedData_init_bio(cms); + break; + + default: + CMSerr(CMS_F_CMS_DATAINIT, CMS_R_UNSUPPORTED_TYPE); + return NULL; + } + + if (cmsbio) + return BIO_push(cmsbio, cont); + + if (!icont) + BIO_free(cont); + return NULL; + +} + +int CMS_dataFinal(CMS_ContentInfo *cms, BIO *cmsbio) +{ + ASN1_OCTET_STRING **pos = CMS_get0_content(cms); + if (!pos) + return 0; + /* If ebmedded content find memory BIO and set content */ + if (*pos && ((*pos)->flags & ASN1_STRING_FLAG_CONT)) { + BIO *mbio; + unsigned char *cont; + long contlen; + mbio = BIO_find_type(cmsbio, BIO_TYPE_MEM); + if (!mbio) { + CMSerr(CMS_F_CMS_DATAFINAL, CMS_R_CONTENT_NOT_FOUND); + return 0; + } + contlen = BIO_get_mem_data(mbio, &cont); + /* Set bio as read only so its content can't be clobbered */ + BIO_set_flags(mbio, BIO_FLAGS_MEM_RDONLY); + BIO_set_mem_eof_return(mbio, 0); + ASN1_STRING_set0(*pos, cont, contlen); + (*pos)->flags &= ~ASN1_STRING_FLAG_CONT; + } + + switch (OBJ_obj2nid(cms->contentType)) { + + case NID_pkcs7_data: + case NID_pkcs7_enveloped: + case NID_pkcs7_encrypted: + case NID_id_smime_ct_compressedData: + /* Nothing to do */ + return 1; + + case NID_pkcs7_signed: + return cms_SignedData_final(cms, cmsbio); + + case NID_pkcs7_digest: + return cms_DigestedData_do_final(cms, cmsbio, 0); + + default: + CMSerr(CMS_F_CMS_DATAFINAL, CMS_R_UNSUPPORTED_TYPE); + return 0; + } +} + +/* + * Return an OCTET STRING pointer to content. This allows it to be accessed + * or set later. + */ + +ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms) +{ + switch (OBJ_obj2nid(cms->contentType)) { + + case NID_pkcs7_data: + return &cms->d.data; + + case NID_pkcs7_signed: + return &cms->d.signedData->encapContentInfo->eContent; + + case NID_pkcs7_enveloped: + return &cms->d.envelopedData->encryptedContentInfo->encryptedContent; + + case NID_pkcs7_digest: + return &cms->d.digestedData->encapContentInfo->eContent; + + case NID_pkcs7_encrypted: + return &cms->d.encryptedData->encryptedContentInfo->encryptedContent; + + case NID_id_smime_ct_authData: + return &cms->d.authenticatedData->encapContentInfo->eContent; + + case NID_id_smime_ct_compressedData: + return &cms->d.compressedData->encapContentInfo->eContent; + + default: + if (cms->d.other->type == V_ASN1_OCTET_STRING) + return &cms->d.other->value.octet_string; + CMSerr(CMS_F_CMS_GET0_CONTENT, CMS_R_UNSUPPORTED_CONTENT_TYPE); + return NULL; + + } +} + +/* + * Return an ASN1_OBJECT pointer to content type. This allows it to be + * accessed or set later. + */ + +static ASN1_OBJECT **cms_get0_econtent_type(CMS_ContentInfo *cms) +{ + switch (OBJ_obj2nid(cms->contentType)) { + + case NID_pkcs7_signed: + return &cms->d.signedData->encapContentInfo->eContentType; + + case NID_pkcs7_enveloped: + return &cms->d.envelopedData->encryptedContentInfo->contentType; + + case NID_pkcs7_digest: + return &cms->d.digestedData->encapContentInfo->eContentType; + + case NID_pkcs7_encrypted: + return &cms->d.encryptedData->encryptedContentInfo->contentType; + + case NID_id_smime_ct_authData: + return &cms->d.authenticatedData->encapContentInfo->eContentType; + + case NID_id_smime_ct_compressedData: + return &cms->d.compressedData->encapContentInfo->eContentType; + + default: + CMSerr(CMS_F_CMS_GET0_ECONTENT_TYPE, CMS_R_UNSUPPORTED_CONTENT_TYPE); + return NULL; + + } +} + +const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms) +{ + ASN1_OBJECT **petype; + petype = cms_get0_econtent_type(cms); + if (petype) + return *petype; + return NULL; +} + +int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid) +{ + ASN1_OBJECT **petype, *etype; + petype = cms_get0_econtent_type(cms); + if (!petype) + return 0; + if (!oid) + return 1; + etype = OBJ_dup(oid); + if (!etype) + return 0; + ASN1_OBJECT_free(*petype); + *petype = etype; + return 1; +} + +int CMS_is_detached(CMS_ContentInfo *cms) +{ + ASN1_OCTET_STRING **pos; + pos = CMS_get0_content(cms); + if (!pos) + return -1; + if (*pos) + return 0; + return 1; +} + +int CMS_set_detached(CMS_ContentInfo *cms, int detached) +{ + ASN1_OCTET_STRING **pos; + pos = CMS_get0_content(cms); + if (!pos) + return 0; + if (detached) { + if (*pos) { + ASN1_OCTET_STRING_free(*pos); + *pos = NULL; + } + return 1; + } + if (!*pos) + *pos = ASN1_OCTET_STRING_new(); + if (*pos) { + /* + * NB: special flag to show content is created and not read in. + */ + (*pos)->flags |= ASN1_STRING_FLAG_CONT; + return 1; + } + CMSerr(CMS_F_CMS_SET_DETACHED, ERR_R_MALLOC_FAILURE); + return 0; +} + +/* Set up an X509_ALGOR DigestAlgorithmIdentifier from an EVP_MD */ + +void cms_DigestAlgorithm_set(X509_ALGOR *alg, const EVP_MD *md) +{ + int param_type; + + if (md->flags & EVP_MD_FLAG_DIGALGID_ABSENT) + param_type = V_ASN1_UNDEF; + else + param_type = V_ASN1_NULL; + + X509_ALGOR_set0(alg, OBJ_nid2obj(EVP_MD_type(md)), param_type, NULL); + +} + +/* Create a digest BIO from an X509_ALGOR structure */ + +BIO *cms_DigestAlgorithm_init_bio(X509_ALGOR *digestAlgorithm) +{ + BIO *mdbio = NULL; + ASN1_OBJECT *digestoid; + const EVP_MD *digest; + X509_ALGOR_get0(&digestoid, NULL, NULL, digestAlgorithm); + digest = EVP_get_digestbyobj(digestoid); + if (!digest) { + CMSerr(CMS_F_CMS_DIGESTALGORITHM_INIT_BIO, + CMS_R_UNKNOWN_DIGEST_ALGORIHM); + goto err; + } + mdbio = BIO_new(BIO_f_md()); + if (!mdbio || !BIO_set_md(mdbio, digest)) { + CMSerr(CMS_F_CMS_DIGESTALGORITHM_INIT_BIO, CMS_R_MD_BIO_INIT_ERROR); + goto err; + } + return mdbio; + err: + if (mdbio) + BIO_free(mdbio); + return NULL; +} + +/* Locate a message digest content from a BIO chain based on SignerInfo */ + +int cms_DigestAlgorithm_find_ctx(EVP_MD_CTX *mctx, BIO *chain, + X509_ALGOR *mdalg) +{ + int nid; + ASN1_OBJECT *mdoid; + X509_ALGOR_get0(&mdoid, NULL, NULL, mdalg); + nid = OBJ_obj2nid(mdoid); + /* Look for digest type to match signature */ + for (;;) { + EVP_MD_CTX *mtmp; + chain = BIO_find_type(chain, BIO_TYPE_MD); + if (chain == NULL) { + CMSerr(CMS_F_CMS_DIGESTALGORITHM_FIND_CTX, + CMS_R_NO_MATCHING_DIGEST); + return 0; + } + BIO_get_md_ctx(chain, &mtmp); + if (EVP_MD_CTX_type(mtmp) == nid + /* + * Workaround for broken implementations that use signature + * algorithm OID instead of digest. + */ + || EVP_MD_pkey_type(EVP_MD_CTX_md(mtmp)) == nid) + return EVP_MD_CTX_copy_ex(mctx, mtmp); + chain = BIO_next(chain); + } +} + +static STACK_OF(CMS_CertificateChoices) +**cms_get0_certificate_choices(CMS_ContentInfo *cms) +{ + switch (OBJ_obj2nid(cms->contentType)) { + + case NID_pkcs7_signed: + return &cms->d.signedData->certificates; + + case NID_pkcs7_enveloped: + return &cms->d.envelopedData->originatorInfo->certificates; + + default: + CMSerr(CMS_F_CMS_GET0_CERTIFICATE_CHOICES, + CMS_R_UNSUPPORTED_CONTENT_TYPE); + return NULL; + + } +} + +CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms) +{ + STACK_OF(CMS_CertificateChoices) **pcerts; + CMS_CertificateChoices *cch; + pcerts = cms_get0_certificate_choices(cms); + if (!pcerts) + return NULL; + if (!*pcerts) + *pcerts = sk_CMS_CertificateChoices_new_null(); + if (!*pcerts) + return NULL; + cch = M_ASN1_new_of(CMS_CertificateChoices); + if (!cch) + return NULL; + if (!sk_CMS_CertificateChoices_push(*pcerts, cch)) { + M_ASN1_free_of(cch, CMS_CertificateChoices); + return NULL; + } + return cch; +} + +int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert) +{ + CMS_CertificateChoices *cch; + STACK_OF(CMS_CertificateChoices) **pcerts; + int i; + pcerts = cms_get0_certificate_choices(cms); + if (!pcerts) + return 0; + for (i = 0; i < sk_CMS_CertificateChoices_num(*pcerts); i++) { + cch = sk_CMS_CertificateChoices_value(*pcerts, i); + if (cch->type == CMS_CERTCHOICE_CERT) { + if (!X509_cmp(cch->d.certificate, cert)) { + CMSerr(CMS_F_CMS_ADD0_CERT, + CMS_R_CERTIFICATE_ALREADY_PRESENT); + return 0; + } + } + } + cch = CMS_add0_CertificateChoices(cms); + if (!cch) + return 0; + cch->type = CMS_CERTCHOICE_CERT; + cch->d.certificate = cert; + return 1; +} + +int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert) +{ + int r; + r = CMS_add0_cert(cms, cert); + if (r > 0) + CRYPTO_add(&cert->references, 1, CRYPTO_LOCK_X509); + return r; +} + +static STACK_OF(CMS_RevocationInfoChoice) +**cms_get0_revocation_choices(CMS_ContentInfo *cms) +{ + switch (OBJ_obj2nid(cms->contentType)) { + + case NID_pkcs7_signed: + return &cms->d.signedData->crls; + + case NID_pkcs7_enveloped: + return &cms->d.envelopedData->originatorInfo->crls; + + default: + CMSerr(CMS_F_CMS_GET0_REVOCATION_CHOICES, + CMS_R_UNSUPPORTED_CONTENT_TYPE); + return NULL; + + } +} + +CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms) +{ + STACK_OF(CMS_RevocationInfoChoice) **pcrls; + CMS_RevocationInfoChoice *rch; + pcrls = cms_get0_revocation_choices(cms); + if (!pcrls) + return NULL; + if (!*pcrls) + *pcrls = sk_CMS_RevocationInfoChoice_new_null(); + if (!*pcrls) + return NULL; + rch = M_ASN1_new_of(CMS_RevocationInfoChoice); + if (!rch) + return NULL; + if (!sk_CMS_RevocationInfoChoice_push(*pcrls, rch)) { + M_ASN1_free_of(rch, CMS_RevocationInfoChoice); + return NULL; + } + return rch; +} + +int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl) +{ + CMS_RevocationInfoChoice *rch; + rch = CMS_add0_RevocationInfoChoice(cms); + if (!rch) + return 0; + rch->type = CMS_REVCHOICE_CRL; + rch->d.crl = crl; + return 1; +} + +int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl) +{ + int r; + r = CMS_add0_crl(cms, crl); + if (r > 0) + CRYPTO_add(&crl->references, 1, CRYPTO_LOCK_X509_CRL); + return r; +} + +STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms) +{ + STACK_OF(X509) *certs = NULL; + CMS_CertificateChoices *cch; + STACK_OF(CMS_CertificateChoices) **pcerts; + int i; + pcerts = cms_get0_certificate_choices(cms); + if (!pcerts) + return NULL; + for (i = 0; i < sk_CMS_CertificateChoices_num(*pcerts); i++) { + cch = sk_CMS_CertificateChoices_value(*pcerts, i); + if (cch->type == 0) { + if (!certs) { + certs = sk_X509_new_null(); + if (!certs) + return NULL; + } + if (!sk_X509_push(certs, cch->d.certificate)) { + sk_X509_pop_free(certs, X509_free); + return NULL; + } + CRYPTO_add(&cch->d.certificate->references, 1, CRYPTO_LOCK_X509); + } + } + return certs; + +} + +STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms) +{ + STACK_OF(X509_CRL) *crls = NULL; + STACK_OF(CMS_RevocationInfoChoice) **pcrls; + CMS_RevocationInfoChoice *rch; + int i; + pcrls = cms_get0_revocation_choices(cms); + if (!pcrls) + return NULL; + for (i = 0; i < sk_CMS_RevocationInfoChoice_num(*pcrls); i++) { + rch = sk_CMS_RevocationInfoChoice_value(*pcrls, i); + if (rch->type == 0) { + if (!crls) { + crls = sk_X509_CRL_new_null(); + if (!crls) + return NULL; + } + if (!sk_X509_CRL_push(crls, rch->d.crl)) { + sk_X509_CRL_pop_free(crls, X509_CRL_free); + return NULL; + } + CRYPTO_add(&rch->d.crl->references, 1, CRYPTO_LOCK_X509_CRL); + } + } + return crls; +} + +int cms_ias_cert_cmp(CMS_IssuerAndSerialNumber *ias, X509 *cert) +{ + int ret; + ret = X509_NAME_cmp(ias->issuer, X509_get_issuer_name(cert)); + if (ret) + return ret; + return ASN1_INTEGER_cmp(ias->serialNumber, X509_get_serialNumber(cert)); +} + +int cms_keyid_cert_cmp(ASN1_OCTET_STRING *keyid, X509 *cert) +{ + X509_check_purpose(cert, -1, -1); + if (!cert->skid) + return -1; + return ASN1_OCTET_STRING_cmp(keyid, cert->skid); +} + +int cms_set1_ias(CMS_IssuerAndSerialNumber **pias, X509 *cert) +{ + CMS_IssuerAndSerialNumber *ias; + ias = M_ASN1_new_of(CMS_IssuerAndSerialNumber); + if (!ias) + goto err; + if (!X509_NAME_set(&ias->issuer, X509_get_issuer_name(cert))) + goto err; + if (!ASN1_STRING_copy(ias->serialNumber, X509_get_serialNumber(cert))) + goto err; + if (*pias) + M_ASN1_free_of(*pias, CMS_IssuerAndSerialNumber); + *pias = ias; + return 1; + err: + if (ias) + M_ASN1_free_of(ias, CMS_IssuerAndSerialNumber); + CMSerr(CMS_F_CMS_SET1_IAS, ERR_R_MALLOC_FAILURE); + return 0; +} + +int cms_set1_keyid(ASN1_OCTET_STRING **pkeyid, X509 *cert) +{ + ASN1_OCTET_STRING *keyid = NULL; + X509_check_purpose(cert, -1, -1); + if (!cert->skid) { + CMSerr(CMS_F_CMS_SET1_KEYID, CMS_R_CERTIFICATE_HAS_NO_KEYID); + return 0; + } + keyid = ASN1_STRING_dup(cert->skid); + if (!keyid) { + CMSerr(CMS_F_CMS_SET1_KEYID, ERR_R_MALLOC_FAILURE); + return 0; + } + if (*pkeyid) + ASN1_OCTET_STRING_free(*pkeyid); + *pkeyid = keyid; + return 1; +} diff --git a/libs/openssl/crypto/cms/cms_pwri.c b/libs/openssl/crypto/cms/cms_pwri.c new file mode 100644 index 00000000..b91c0169 --- /dev/null +++ b/libs/openssl/crypto/cms/cms_pwri.c @@ -0,0 +1,435 @@ +/* crypto/cms/cms_pwri.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2009 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include "cryptlib.h" +#include +#include +#include +#include +#include +#include +#include +#include "cms_lcl.h" +#include "asn1_locl.h" + +int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, + unsigned char *pass, ossl_ssize_t passlen) +{ + CMS_PasswordRecipientInfo *pwri; + if (ri->type != CMS_RECIPINFO_PASS) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD, CMS_R_NOT_PWRI); + return 0; + } + + pwri = ri->d.pwri; + pwri->pass = pass; + if (pass && passlen < 0) + passlen = strlen((char *)pass); + pwri->passlen = passlen; + return 1; +} + +CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms, + int iter, int wrap_nid, + int pbe_nid, + unsigned char *pass, + ossl_ssize_t passlen, + const EVP_CIPHER *kekciph) +{ + CMS_RecipientInfo *ri = NULL; + CMS_EnvelopedData *env; + CMS_PasswordRecipientInfo *pwri; + EVP_CIPHER_CTX ctx; + X509_ALGOR *encalg = NULL; + unsigned char iv[EVP_MAX_IV_LENGTH]; + int ivlen; + + env = cms_get0_enveloped(cms); + if (!env) + return NULL; + + if (wrap_nid <= 0) + wrap_nid = NID_id_alg_PWRI_KEK; + + if (pbe_nid <= 0) + pbe_nid = NID_id_pbkdf2; + + /* Get from enveloped data */ + if (kekciph == NULL) + kekciph = env->encryptedContentInfo->cipher; + + if (kekciph == NULL) { + CMSerr(CMS_F_CMS_ADD0_RECIPIENT_PASSWORD, CMS_R_NO_CIPHER); + return NULL; + } + if (wrap_nid != NID_id_alg_PWRI_KEK) { + CMSerr(CMS_F_CMS_ADD0_RECIPIENT_PASSWORD, + CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM); + return NULL; + } + + /* Setup algorithm identifier for cipher */ + encalg = X509_ALGOR_new(); + if (encalg == NULL) { + goto merr; + } + EVP_CIPHER_CTX_init(&ctx); + + if (EVP_EncryptInit_ex(&ctx, kekciph, NULL, NULL, NULL) <= 0) { + CMSerr(CMS_F_CMS_ADD0_RECIPIENT_PASSWORD, ERR_R_EVP_LIB); + goto err; + } + + ivlen = EVP_CIPHER_CTX_iv_length(&ctx); + + if (ivlen > 0) { + if (RAND_pseudo_bytes(iv, ivlen) <= 0) + goto err; + if (EVP_EncryptInit_ex(&ctx, NULL, NULL, NULL, iv) <= 0) { + CMSerr(CMS_F_CMS_ADD0_RECIPIENT_PASSWORD, ERR_R_EVP_LIB); + goto err; + } + encalg->parameter = ASN1_TYPE_new(); + if (!encalg->parameter) { + CMSerr(CMS_F_CMS_ADD0_RECIPIENT_PASSWORD, ERR_R_MALLOC_FAILURE); + goto err; + } + if (EVP_CIPHER_param_to_asn1(&ctx, encalg->parameter) <= 0) { + CMSerr(CMS_F_CMS_ADD0_RECIPIENT_PASSWORD, + CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR); + goto err; + } + } + + encalg->algorithm = OBJ_nid2obj(EVP_CIPHER_CTX_type(&ctx)); + + EVP_CIPHER_CTX_cleanup(&ctx); + + /* Initialize recipient info */ + ri = M_ASN1_new_of(CMS_RecipientInfo); + if (!ri) + goto merr; + + ri->d.pwri = M_ASN1_new_of(CMS_PasswordRecipientInfo); + if (!ri->d.pwri) + goto merr; + ri->type = CMS_RECIPINFO_PASS; + + pwri = ri->d.pwri; + /* Since this is overwritten, free up empty structure already there */ + X509_ALGOR_free(pwri->keyEncryptionAlgorithm); + pwri->keyEncryptionAlgorithm = X509_ALGOR_new(); + if (!pwri->keyEncryptionAlgorithm) + goto merr; + pwri->keyEncryptionAlgorithm->algorithm = OBJ_nid2obj(wrap_nid); + pwri->keyEncryptionAlgorithm->parameter = ASN1_TYPE_new(); + if (!pwri->keyEncryptionAlgorithm->parameter) + goto merr; + + if (!ASN1_item_pack(encalg, ASN1_ITEM_rptr(X509_ALGOR), + &pwri->keyEncryptionAlgorithm->parameter-> + value.sequence)) + goto merr; + pwri->keyEncryptionAlgorithm->parameter->type = V_ASN1_SEQUENCE; + + X509_ALGOR_free(encalg); + encalg = NULL; + + /* Setup PBE algorithm */ + + pwri->keyDerivationAlgorithm = PKCS5_pbkdf2_set(iter, NULL, 0, -1, -1); + + if (!pwri->keyDerivationAlgorithm) + goto err; + + CMS_RecipientInfo_set0_password(ri, pass, passlen); + pwri->version = 0; + + if (!sk_CMS_RecipientInfo_push(env->recipientInfos, ri)) + goto merr; + + return ri; + + merr: + CMSerr(CMS_F_CMS_ADD0_RECIPIENT_PASSWORD, ERR_R_MALLOC_FAILURE); + err: + EVP_CIPHER_CTX_cleanup(&ctx); + if (ri) + M_ASN1_free_of(ri, CMS_RecipientInfo); + if (encalg) + X509_ALGOR_free(encalg); + return NULL; + +} + +/* + * This is an implementation of the key wrapping mechanism in RFC3211, at + * some point this should go into EVP. + */ + +static int kek_unwrap_key(unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen, + EVP_CIPHER_CTX *ctx) +{ + size_t blocklen = EVP_CIPHER_CTX_block_size(ctx); + unsigned char *tmp; + int outl, rv = 0; + if (inlen < 2 * blocklen) { + /* too small */ + return 0; + } + if (inlen % blocklen) { + /* Invalid size */ + return 0; + } + tmp = OPENSSL_malloc(inlen); + if (!tmp) + return 0; + /* setup IV by decrypting last two blocks */ + EVP_DecryptUpdate(ctx, tmp + inlen - 2 * blocklen, &outl, + in + inlen - 2 * blocklen, blocklen * 2); + /* + * Do a decrypt of last decrypted block to set IV to correct value output + * it to start of buffer so we don't corrupt decrypted block this works + * because buffer is at least two block lengths long. + */ + EVP_DecryptUpdate(ctx, tmp, &outl, tmp + inlen - blocklen, blocklen); + /* Can now decrypt first n - 1 blocks */ + EVP_DecryptUpdate(ctx, tmp, &outl, in, inlen - blocklen); + + /* Reset IV to original value */ + EVP_DecryptInit_ex(ctx, NULL, NULL, NULL, NULL); + /* Decrypt again */ + EVP_DecryptUpdate(ctx, tmp, &outl, tmp, inlen); + /* Check check bytes */ + if (((tmp[1] ^ tmp[4]) & (tmp[2] ^ tmp[5]) & (tmp[3] ^ tmp[6])) != 0xff) { + /* Check byte failure */ + goto err; + } + if (inlen < (size_t)(tmp[0] - 4)) { + /* Invalid length value */ + goto err; + } + *outlen = (size_t)tmp[0]; + memcpy(out, tmp + 4, *outlen); + rv = 1; + err: + OPENSSL_cleanse(tmp, inlen); + OPENSSL_free(tmp); + return rv; + +} + +static int kek_wrap_key(unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen, + EVP_CIPHER_CTX *ctx) +{ + size_t blocklen = EVP_CIPHER_CTX_block_size(ctx); + size_t olen; + int dummy; + /* + * First decide length of output buffer: need header and round up to + * multiple of block length. + */ + olen = (inlen + 4 + blocklen - 1) / blocklen; + olen *= blocklen; + if (olen < 2 * blocklen) { + /* Key too small */ + return 0; + } + if (inlen > 0xFF) { + /* Key too large */ + return 0; + } + if (out) { + /* Set header */ + out[0] = (unsigned char)inlen; + out[1] = in[0] ^ 0xFF; + out[2] = in[1] ^ 0xFF; + out[3] = in[2] ^ 0xFF; + memcpy(out + 4, in, inlen); + /* Add random padding to end */ + if (olen > inlen + 4 + && RAND_pseudo_bytes(out + 4 + inlen, olen - 4 - inlen) < 0) + return 0; + /* Encrypt twice */ + EVP_EncryptUpdate(ctx, out, &dummy, out, olen); + EVP_EncryptUpdate(ctx, out, &dummy, out, olen); + } + + *outlen = olen; + + return 1; +} + +/* Encrypt/Decrypt content key in PWRI recipient info */ + +int cms_RecipientInfo_pwri_crypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri, + int en_de) +{ + CMS_EncryptedContentInfo *ec; + CMS_PasswordRecipientInfo *pwri; + const unsigned char *p = NULL; + int plen; + int r = 0; + X509_ALGOR *algtmp, *kekalg = NULL; + EVP_CIPHER_CTX kekctx; + const EVP_CIPHER *kekcipher; + unsigned char *key = NULL; + size_t keylen; + + ec = cms->d.envelopedData->encryptedContentInfo; + + pwri = ri->d.pwri; + EVP_CIPHER_CTX_init(&kekctx); + + if (!pwri->pass) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT, CMS_R_NO_PASSWORD); + return 0; + } + algtmp = pwri->keyEncryptionAlgorithm; + + if (!algtmp || OBJ_obj2nid(algtmp->algorithm) != NID_id_alg_PWRI_KEK) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT, + CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM); + return 0; + } + + if (algtmp->parameter->type == V_ASN1_SEQUENCE) { + p = algtmp->parameter->value.sequence->data; + plen = algtmp->parameter->value.sequence->length; + kekalg = d2i_X509_ALGOR(NULL, &p, plen); + } + if (kekalg == NULL) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT, + CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER); + return 0; + } + + kekcipher = EVP_get_cipherbyobj(kekalg->algorithm); + + if (!kekcipher) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT, CMS_R_UNKNOWN_CIPHER); + goto err; + } + + /* Fixup cipher based on AlgorithmIdentifier to set IV etc */ + if (!EVP_CipherInit_ex(&kekctx, kekcipher, NULL, NULL, NULL, en_de)) + goto err; + EVP_CIPHER_CTX_set_padding(&kekctx, 0); + if (EVP_CIPHER_asn1_to_param(&kekctx, kekalg->parameter) < 0) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT, + CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR); + goto err; + } + + algtmp = pwri->keyDerivationAlgorithm; + + /* Finish password based key derivation to setup key in "ctx" */ + + if (EVP_PBE_CipherInit(algtmp->algorithm, + (char *)pwri->pass, pwri->passlen, + algtmp->parameter, &kekctx, en_de) < 0) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT, ERR_R_EVP_LIB); + goto err; + } + + /* Finally wrap/unwrap the key */ + + if (en_de) { + + if (!kek_wrap_key(NULL, &keylen, ec->key, ec->keylen, &kekctx)) + goto err; + + key = OPENSSL_malloc(keylen); + + if (!key) + goto err; + + if (!kek_wrap_key(key, &keylen, ec->key, ec->keylen, &kekctx)) + goto err; + pwri->encryptedKey->data = key; + pwri->encryptedKey->length = keylen; + } else { + key = OPENSSL_malloc(pwri->encryptedKey->length); + + if (!key) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT, ERR_R_MALLOC_FAILURE); + goto err; + } + if (!kek_unwrap_key(key, &keylen, + pwri->encryptedKey->data, + pwri->encryptedKey->length, &kekctx)) { + CMSerr(CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT, CMS_R_UNWRAP_FAILURE); + goto err; + } + + ec->key = key; + ec->keylen = keylen; + + } + + r = 1; + + err: + + EVP_CIPHER_CTX_cleanup(&kekctx); + + if (!r && key) + OPENSSL_free(key); + X509_ALGOR_free(kekalg); + + return r; + +} diff --git a/libs/openssl/crypto/cms/cms_sd.c b/libs/openssl/crypto/cms/cms_sd.c new file mode 100644 index 00000000..a41aca8e --- /dev/null +++ b/libs/openssl/crypto/cms/cms_sd.c @@ -0,0 +1,957 @@ +/* crypto/cms/cms_sd.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include "cryptlib.h" +#include +#include +#include +#include +#include +#include +#include "cms_lcl.h" +#include "asn1_locl.h" + +/* CMS SignedData Utilities */ + +DECLARE_ASN1_ITEM(CMS_SignedData) + +static CMS_SignedData *cms_get0_signed(CMS_ContentInfo *cms) +{ + if (OBJ_obj2nid(cms->contentType) != NID_pkcs7_signed) { + CMSerr(CMS_F_CMS_GET0_SIGNED, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA); + return NULL; + } + return cms->d.signedData; +} + +static CMS_SignedData *cms_signed_data_init(CMS_ContentInfo *cms) +{ + if (cms->d.other == NULL) { + cms->d.signedData = M_ASN1_new_of(CMS_SignedData); + if (!cms->d.signedData) { + CMSerr(CMS_F_CMS_SIGNED_DATA_INIT, ERR_R_MALLOC_FAILURE); + return NULL; + } + cms->d.signedData->version = 1; + cms->d.signedData->encapContentInfo->eContentType = + OBJ_nid2obj(NID_pkcs7_data); + cms->d.signedData->encapContentInfo->partial = 1; + ASN1_OBJECT_free(cms->contentType); + cms->contentType = OBJ_nid2obj(NID_pkcs7_signed); + return cms->d.signedData; + } + return cms_get0_signed(cms); +} + +/* Just initialize SignedData e.g. for certs only structure */ + +int CMS_SignedData_init(CMS_ContentInfo *cms) +{ + if (cms_signed_data_init(cms)) + return 1; + else + return 0; +} + +/* Check structures and fixup version numbers (if necessary) */ + +static void cms_sd_set_version(CMS_SignedData *sd) +{ + int i; + CMS_CertificateChoices *cch; + CMS_RevocationInfoChoice *rch; + CMS_SignerInfo *si; + + for (i = 0; i < sk_CMS_CertificateChoices_num(sd->certificates); i++) { + cch = sk_CMS_CertificateChoices_value(sd->certificates, i); + if (cch->type == CMS_CERTCHOICE_OTHER) { + if (sd->version < 5) + sd->version = 5; + } else if (cch->type == CMS_CERTCHOICE_V2ACERT) { + if (sd->version < 4) + sd->version = 4; + } else if (cch->type == CMS_CERTCHOICE_V1ACERT) { + if (sd->version < 3) + sd->version = 3; + } + } + + for (i = 0; i < sk_CMS_RevocationInfoChoice_num(sd->crls); i++) { + rch = sk_CMS_RevocationInfoChoice_value(sd->crls, i); + if (rch->type == CMS_REVCHOICE_OTHER) { + if (sd->version < 5) + sd->version = 5; + } + } + + if ((OBJ_obj2nid(sd->encapContentInfo->eContentType) != NID_pkcs7_data) + && (sd->version < 3)) + sd->version = 3; + + for (i = 0; i < sk_CMS_SignerInfo_num(sd->signerInfos); i++) { + si = sk_CMS_SignerInfo_value(sd->signerInfos, i); + if (si->sid->type == CMS_SIGNERINFO_KEYIDENTIFIER) { + if (si->version < 3) + si->version = 3; + if (sd->version < 3) + sd->version = 3; + } else if (si->version < 1) + si->version = 1; + } + + if (sd->version < 1) + sd->version = 1; + +} + +/* Copy an existing messageDigest value */ + +static int cms_copy_messageDigest(CMS_ContentInfo *cms, CMS_SignerInfo *si) +{ + STACK_OF(CMS_SignerInfo) *sinfos; + CMS_SignerInfo *sitmp; + int i; + sinfos = CMS_get0_SignerInfos(cms); + for (i = 0; i < sk_CMS_SignerInfo_num(sinfos); i++) { + ASN1_OCTET_STRING *messageDigest; + sitmp = sk_CMS_SignerInfo_value(sinfos, i); + if (sitmp == si) + continue; + if (CMS_signed_get_attr_count(sitmp) < 0) + continue; + if (OBJ_cmp(si->digestAlgorithm->algorithm, + sitmp->digestAlgorithm->algorithm)) + continue; + messageDigest = CMS_signed_get0_data_by_OBJ(sitmp, + OBJ_nid2obj + (NID_pkcs9_messageDigest), + -3, V_ASN1_OCTET_STRING); + if (!messageDigest) { + CMSerr(CMS_F_CMS_COPY_MESSAGEDIGEST, + CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE); + return 0; + } + + if (CMS_signed_add1_attr_by_NID(si, NID_pkcs9_messageDigest, + V_ASN1_OCTET_STRING, + messageDigest, -1)) + return 1; + else + return 0; + } + CMSerr(CMS_F_CMS_COPY_MESSAGEDIGEST, CMS_R_NO_MATCHING_DIGEST); + return 0; +} + +int cms_set1_SignerIdentifier(CMS_SignerIdentifier *sid, X509 *cert, int type) +{ + switch (type) { + case CMS_SIGNERINFO_ISSUER_SERIAL: + if (!cms_set1_ias(&sid->d.issuerAndSerialNumber, cert)) + return 0; + break; + + case CMS_SIGNERINFO_KEYIDENTIFIER: + if (!cms_set1_keyid(&sid->d.subjectKeyIdentifier, cert)) + return 0; + break; + + default: + CMSerr(CMS_F_CMS_SET1_SIGNERIDENTIFIER, CMS_R_UNKNOWN_ID); + return 0; + } + + sid->type = type; + + return 1; +} + +int cms_SignerIdentifier_get0_signer_id(CMS_SignerIdentifier *sid, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno) +{ + if (sid->type == CMS_SIGNERINFO_ISSUER_SERIAL) { + if (issuer) + *issuer = sid->d.issuerAndSerialNumber->issuer; + if (sno) + *sno = sid->d.issuerAndSerialNumber->serialNumber; + } else if (sid->type == CMS_SIGNERINFO_KEYIDENTIFIER) { + if (keyid) + *keyid = sid->d.subjectKeyIdentifier; + } else + return 0; + return 1; +} + +int cms_SignerIdentifier_cert_cmp(CMS_SignerIdentifier *sid, X509 *cert) +{ + if (sid->type == CMS_SIGNERINFO_ISSUER_SERIAL) + return cms_ias_cert_cmp(sid->d.issuerAndSerialNumber, cert); + else if (sid->type == CMS_SIGNERINFO_KEYIDENTIFIER) + return cms_keyid_cert_cmp(sid->d.subjectKeyIdentifier, cert); + else + return -1; +} + +static int cms_sd_asn1_ctrl(CMS_SignerInfo *si, int cmd) +{ + EVP_PKEY *pkey = si->pkey; + int i; + if (!pkey->ameth || !pkey->ameth->pkey_ctrl) + return 1; + i = pkey->ameth->pkey_ctrl(pkey, ASN1_PKEY_CTRL_CMS_SIGN, cmd, si); + if (i == -2) { + CMSerr(CMS_F_CMS_SD_ASN1_CTRL, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE); + return 0; + } + if (i <= 0) { + CMSerr(CMS_F_CMS_SD_ASN1_CTRL, CMS_R_CTRL_FAILURE); + return 0; + } + return 1; +} + +CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, + X509 *signer, EVP_PKEY *pk, const EVP_MD *md, + unsigned int flags) +{ + CMS_SignedData *sd; + CMS_SignerInfo *si = NULL; + X509_ALGOR *alg; + int i, type; + if (!X509_check_private_key(signer, pk)) { + CMSerr(CMS_F_CMS_ADD1_SIGNER, + CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE); + return NULL; + } + sd = cms_signed_data_init(cms); + if (!sd) + goto err; + si = M_ASN1_new_of(CMS_SignerInfo); + if (!si) + goto merr; + X509_check_purpose(signer, -1, -1); + + CRYPTO_add(&pk->references, 1, CRYPTO_LOCK_EVP_PKEY); + CRYPTO_add(&signer->references, 1, CRYPTO_LOCK_X509); + + si->pkey = pk; + si->signer = signer; + EVP_MD_CTX_init(&si->mctx); + si->pctx = NULL; + + if (flags & CMS_USE_KEYID) { + si->version = 3; + if (sd->version < 3) + sd->version = 3; + type = CMS_SIGNERINFO_KEYIDENTIFIER; + } else { + type = CMS_SIGNERINFO_ISSUER_SERIAL; + si->version = 1; + } + + if (!cms_set1_SignerIdentifier(si->sid, signer, type)) + goto err; + + if (md == NULL) { + int def_nid; + if (EVP_PKEY_get_default_digest_nid(pk, &def_nid) <= 0) + goto err; + md = EVP_get_digestbynid(def_nid); + if (md == NULL) { + CMSerr(CMS_F_CMS_ADD1_SIGNER, CMS_R_NO_DEFAULT_DIGEST); + goto err; + } + } + + if (!md) { + CMSerr(CMS_F_CMS_ADD1_SIGNER, CMS_R_NO_DIGEST_SET); + goto err; + } + + cms_DigestAlgorithm_set(si->digestAlgorithm, md); + + /* See if digest is present in digestAlgorithms */ + for (i = 0; i < sk_X509_ALGOR_num(sd->digestAlgorithms); i++) { + ASN1_OBJECT *aoid; + alg = sk_X509_ALGOR_value(sd->digestAlgorithms, i); + X509_ALGOR_get0(&aoid, NULL, NULL, alg); + if (OBJ_obj2nid(aoid) == EVP_MD_type(md)) + break; + } + + if (i == sk_X509_ALGOR_num(sd->digestAlgorithms)) { + alg = X509_ALGOR_new(); + if (!alg) + goto merr; + cms_DigestAlgorithm_set(alg, md); + if (!sk_X509_ALGOR_push(sd->digestAlgorithms, alg)) { + X509_ALGOR_free(alg); + goto merr; + } + } + + if (!(flags & CMS_KEY_PARAM) && !cms_sd_asn1_ctrl(si, 0)) + goto err; + if (!(flags & CMS_NOATTR)) { + /* + * Initialialize signed attributes strutucture so other attributes + * such as signing time etc are added later even if we add none here. + */ + if (!si->signedAttrs) { + si->signedAttrs = sk_X509_ATTRIBUTE_new_null(); + if (!si->signedAttrs) + goto merr; + } + + if (!(flags & CMS_NOSMIMECAP)) { + STACK_OF(X509_ALGOR) *smcap = NULL; + i = CMS_add_standard_smimecap(&smcap); + if (i) + i = CMS_add_smimecap(si, smcap); + sk_X509_ALGOR_pop_free(smcap, X509_ALGOR_free); + if (!i) + goto merr; + } + if (flags & CMS_REUSE_DIGEST) { + if (!cms_copy_messageDigest(cms, si)) + goto err; + if (!(flags & (CMS_PARTIAL | CMS_KEY_PARAM)) && + !CMS_SignerInfo_sign(si)) + goto err; + } + } + + if (!(flags & CMS_NOCERTS)) { + /* NB ignore -1 return for duplicate cert */ + if (!CMS_add1_cert(cms, signer)) + goto merr; + } + + if (flags & CMS_KEY_PARAM) { + if (flags & CMS_NOATTR) { + si->pctx = EVP_PKEY_CTX_new(si->pkey, NULL); + if (!si->pctx) + goto err; + if (EVP_PKEY_sign_init(si->pctx) <= 0) + goto err; + if (EVP_PKEY_CTX_set_signature_md(si->pctx, md) <= 0) + goto err; + } else if (EVP_DigestSignInit(&si->mctx, &si->pctx, md, NULL, pk) <= + 0) + goto err; + } + + if (!sd->signerInfos) + sd->signerInfos = sk_CMS_SignerInfo_new_null(); + if (!sd->signerInfos || !sk_CMS_SignerInfo_push(sd->signerInfos, si)) + goto merr; + + return si; + + merr: + CMSerr(CMS_F_CMS_ADD1_SIGNER, ERR_R_MALLOC_FAILURE); + err: + if (si) + M_ASN1_free_of(si, CMS_SignerInfo); + return NULL; + +} + +static int cms_add1_signingTime(CMS_SignerInfo *si, ASN1_TIME *t) +{ + ASN1_TIME *tt; + int r = 0; + if (t) + tt = t; + else + tt = X509_gmtime_adj(NULL, 0); + + if (!tt) + goto merr; + + if (CMS_signed_add1_attr_by_NID(si, NID_pkcs9_signingTime, + tt->type, tt, -1) <= 0) + goto merr; + + r = 1; + + merr: + + if (!t) + ASN1_TIME_free(tt); + + if (!r) + CMSerr(CMS_F_CMS_ADD1_SIGNINGTIME, ERR_R_MALLOC_FAILURE); + + return r; + +} + +EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si) +{ + return si->pctx; +} + +EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si) +{ + return &si->mctx; +} + +STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms) +{ + CMS_SignedData *sd; + sd = cms_get0_signed(cms); + if (!sd) + return NULL; + return sd->signerInfos; +} + +STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms) +{ + STACK_OF(X509) *signers = NULL; + STACK_OF(CMS_SignerInfo) *sinfos; + CMS_SignerInfo *si; + int i; + sinfos = CMS_get0_SignerInfos(cms); + for (i = 0; i < sk_CMS_SignerInfo_num(sinfos); i++) { + si = sk_CMS_SignerInfo_value(sinfos, i); + if (si->signer) { + if (!signers) { + signers = sk_X509_new_null(); + if (!signers) + return NULL; + } + if (!sk_X509_push(signers, si->signer)) { + sk_X509_free(signers); + return NULL; + } + } + } + return signers; +} + +void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer) +{ + if (signer) { + CRYPTO_add(&signer->references, 1, CRYPTO_LOCK_X509); + if (si->pkey) + EVP_PKEY_free(si->pkey); + si->pkey = X509_get_pubkey(signer); + } + if (si->signer) + X509_free(si->signer); + si->signer = signer; +} + +int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, ASN1_INTEGER **sno) +{ + return cms_SignerIdentifier_get0_signer_id(si->sid, keyid, issuer, sno); +} + +int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert) +{ + return cms_SignerIdentifier_cert_cmp(si->sid, cert); +} + +int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *scerts, + unsigned int flags) +{ + CMS_SignedData *sd; + CMS_SignerInfo *si; + CMS_CertificateChoices *cch; + STACK_OF(CMS_CertificateChoices) *certs; + X509 *x; + int i, j; + int ret = 0; + sd = cms_get0_signed(cms); + if (!sd) + return -1; + certs = sd->certificates; + for (i = 0; i < sk_CMS_SignerInfo_num(sd->signerInfos); i++) { + si = sk_CMS_SignerInfo_value(sd->signerInfos, i); + if (si->signer) + continue; + + for (j = 0; j < sk_X509_num(scerts); j++) { + x = sk_X509_value(scerts, j); + if (CMS_SignerInfo_cert_cmp(si, x) == 0) { + CMS_SignerInfo_set1_signer_cert(si, x); + ret++; + break; + } + } + + if (si->signer || (flags & CMS_NOINTERN)) + continue; + + for (j = 0; j < sk_CMS_CertificateChoices_num(certs); j++) { + cch = sk_CMS_CertificateChoices_value(certs, j); + if (cch->type != 0) + continue; + x = cch->d.certificate; + if (CMS_SignerInfo_cert_cmp(si, x) == 0) { + CMS_SignerInfo_set1_signer_cert(si, x); + ret++; + break; + } + } + } + return ret; +} + +void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, + X509 **signer, X509_ALGOR **pdig, + X509_ALGOR **psig) +{ + if (pk) + *pk = si->pkey; + if (signer) + *signer = si->signer; + if (pdig) + *pdig = si->digestAlgorithm; + if (psig) + *psig = si->signatureAlgorithm; +} + +ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si) +{ + return si->signature; +} + +static int cms_SignerInfo_content_sign(CMS_ContentInfo *cms, + CMS_SignerInfo *si, BIO *chain) +{ + EVP_MD_CTX mctx; + int r = 0; + EVP_PKEY_CTX *pctx = NULL; + EVP_MD_CTX_init(&mctx); + + if (!si->pkey) { + CMSerr(CMS_F_CMS_SIGNERINFO_CONTENT_SIGN, CMS_R_NO_PRIVATE_KEY); + return 0; + } + + if (!cms_DigestAlgorithm_find_ctx(&mctx, chain, si->digestAlgorithm)) + goto err; + /* Set SignerInfo algortihm details if we used custom parametsr */ + if (si->pctx && !cms_sd_asn1_ctrl(si, 0)) + goto err; + + /* + * If any signed attributes calculate and add messageDigest attribute + */ + + if (CMS_signed_get_attr_count(si) >= 0) { + ASN1_OBJECT *ctype = + cms->d.signedData->encapContentInfo->eContentType; + unsigned char md[EVP_MAX_MD_SIZE]; + unsigned int mdlen; + if (!EVP_DigestFinal_ex(&mctx, md, &mdlen)) + goto err; + if (!CMS_signed_add1_attr_by_NID(si, NID_pkcs9_messageDigest, + V_ASN1_OCTET_STRING, md, mdlen)) + goto err; + /* Copy content type across */ + if (CMS_signed_add1_attr_by_NID(si, NID_pkcs9_contentType, + V_ASN1_OBJECT, ctype, -1) <= 0) + goto err; + if (!CMS_SignerInfo_sign(si)) + goto err; + } else if (si->pctx) { + unsigned char *sig; + size_t siglen; + unsigned char md[EVP_MAX_MD_SIZE]; + unsigned int mdlen; + pctx = si->pctx; + if (!EVP_DigestFinal_ex(&mctx, md, &mdlen)) + goto err; + siglen = EVP_PKEY_size(si->pkey); + sig = OPENSSL_malloc(siglen); + if (!sig) { + CMSerr(CMS_F_CMS_SIGNERINFO_CONTENT_SIGN, ERR_R_MALLOC_FAILURE); + goto err; + } + if (EVP_PKEY_sign(pctx, sig, &siglen, md, mdlen) <= 0) + goto err; + ASN1_STRING_set0(si->signature, sig, siglen); + } else { + unsigned char *sig; + unsigned int siglen; + sig = OPENSSL_malloc(EVP_PKEY_size(si->pkey)); + if (!sig) { + CMSerr(CMS_F_CMS_SIGNERINFO_CONTENT_SIGN, ERR_R_MALLOC_FAILURE); + goto err; + } + if (!EVP_SignFinal(&mctx, sig, &siglen, si->pkey)) { + CMSerr(CMS_F_CMS_SIGNERINFO_CONTENT_SIGN, CMS_R_SIGNFINAL_ERROR); + OPENSSL_free(sig); + goto err; + } + ASN1_STRING_set0(si->signature, sig, siglen); + } + + r = 1; + + err: + EVP_MD_CTX_cleanup(&mctx); + if (pctx) + EVP_PKEY_CTX_free(pctx); + return r; + +} + +int cms_SignedData_final(CMS_ContentInfo *cms, BIO *chain) +{ + STACK_OF(CMS_SignerInfo) *sinfos; + CMS_SignerInfo *si; + int i; + sinfos = CMS_get0_SignerInfos(cms); + for (i = 0; i < sk_CMS_SignerInfo_num(sinfos); i++) { + si = sk_CMS_SignerInfo_value(sinfos, i); + if (!cms_SignerInfo_content_sign(cms, si, chain)) + return 0; + } + cms->d.signedData->encapContentInfo->partial = 0; + return 1; +} + +int CMS_SignerInfo_sign(CMS_SignerInfo *si) +{ + EVP_MD_CTX *mctx = &si->mctx; + EVP_PKEY_CTX *pctx; + unsigned char *abuf = NULL; + int alen; + size_t siglen; + const EVP_MD *md = NULL; + + md = EVP_get_digestbyobj(si->digestAlgorithm->algorithm); + if (md == NULL) + return 0; + + if (CMS_signed_get_attr_by_NID(si, NID_pkcs9_signingTime, -1) < 0) { + if (!cms_add1_signingTime(si, NULL)) + goto err; + } + + if (si->pctx) + pctx = si->pctx; + else { + EVP_MD_CTX_init(mctx); + if (EVP_DigestSignInit(mctx, &pctx, md, NULL, si->pkey) <= 0) + goto err; + } + + if (EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_SIGN, + EVP_PKEY_CTRL_CMS_SIGN, 0, si) <= 0) { + CMSerr(CMS_F_CMS_SIGNERINFO_SIGN, CMS_R_CTRL_ERROR); + goto err; + } + + alen = ASN1_item_i2d((ASN1_VALUE *)si->signedAttrs, &abuf, + ASN1_ITEM_rptr(CMS_Attributes_Sign)); + if (!abuf) + goto err; + if (EVP_DigestSignUpdate(mctx, abuf, alen) <= 0) + goto err; + if (EVP_DigestSignFinal(mctx, NULL, &siglen) <= 0) + goto err; + OPENSSL_free(abuf); + abuf = OPENSSL_malloc(siglen); + if (!abuf) + goto err; + if (EVP_DigestSignFinal(mctx, abuf, &siglen) <= 0) + goto err; + + if (EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_SIGN, + EVP_PKEY_CTRL_CMS_SIGN, 1, si) <= 0) { + CMSerr(CMS_F_CMS_SIGNERINFO_SIGN, CMS_R_CTRL_ERROR); + goto err; + } + + EVP_MD_CTX_cleanup(mctx); + + ASN1_STRING_set0(si->signature, abuf, siglen); + + return 1; + + err: + if (abuf) + OPENSSL_free(abuf); + EVP_MD_CTX_cleanup(mctx); + return 0; + +} + +int CMS_SignerInfo_verify(CMS_SignerInfo *si) +{ + EVP_MD_CTX *mctx = &si->mctx; + unsigned char *abuf = NULL; + int alen, r = -1; + const EVP_MD *md = NULL; + + if (!si->pkey) { + CMSerr(CMS_F_CMS_SIGNERINFO_VERIFY, CMS_R_NO_PUBLIC_KEY); + return -1; + } + + md = EVP_get_digestbyobj(si->digestAlgorithm->algorithm); + if (md == NULL) + return -1; + EVP_MD_CTX_init(mctx); + if (EVP_DigestVerifyInit(mctx, &si->pctx, md, NULL, si->pkey) <= 0) + goto err; + + if (!cms_sd_asn1_ctrl(si, 1)) + goto err; + + alen = ASN1_item_i2d((ASN1_VALUE *)si->signedAttrs, &abuf, + ASN1_ITEM_rptr(CMS_Attributes_Verify)); + if (!abuf) + goto err; + r = EVP_DigestVerifyUpdate(mctx, abuf, alen); + OPENSSL_free(abuf); + if (r <= 0) { + r = -1; + goto err; + } + r = EVP_DigestVerifyFinal(mctx, + si->signature->data, si->signature->length); + if (r <= 0) + CMSerr(CMS_F_CMS_SIGNERINFO_VERIFY, CMS_R_VERIFICATION_FAILURE); + err: + EVP_MD_CTX_cleanup(mctx); + return r; +} + +/* Create a chain of digest BIOs from a CMS ContentInfo */ + +BIO *cms_SignedData_init_bio(CMS_ContentInfo *cms) +{ + int i; + CMS_SignedData *sd; + BIO *chain = NULL; + sd = cms_get0_signed(cms); + if (!sd) + return NULL; + if (cms->d.signedData->encapContentInfo->partial) + cms_sd_set_version(sd); + for (i = 0; i < sk_X509_ALGOR_num(sd->digestAlgorithms); i++) { + X509_ALGOR *digestAlgorithm; + BIO *mdbio; + digestAlgorithm = sk_X509_ALGOR_value(sd->digestAlgorithms, i); + mdbio = cms_DigestAlgorithm_init_bio(digestAlgorithm); + if (!mdbio) + goto err; + if (chain) + BIO_push(chain, mdbio); + else + chain = mdbio; + } + return chain; + err: + if (chain) + BIO_free_all(chain); + return NULL; +} + +int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain) +{ + ASN1_OCTET_STRING *os = NULL; + EVP_MD_CTX mctx; + EVP_PKEY_CTX *pkctx = NULL; + int r = -1; + unsigned char mval[EVP_MAX_MD_SIZE]; + unsigned int mlen; + EVP_MD_CTX_init(&mctx); + /* If we have any signed attributes look for messageDigest value */ + if (CMS_signed_get_attr_count(si) >= 0) { + os = CMS_signed_get0_data_by_OBJ(si, + OBJ_nid2obj(NID_pkcs9_messageDigest), + -3, V_ASN1_OCTET_STRING); + if (!os) { + CMSerr(CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT, + CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE); + goto err; + } + } + + if (!cms_DigestAlgorithm_find_ctx(&mctx, chain, si->digestAlgorithm)) + goto err; + + if (EVP_DigestFinal_ex(&mctx, mval, &mlen) <= 0) { + CMSerr(CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT, + CMS_R_UNABLE_TO_FINALIZE_CONTEXT); + goto err; + } + + /* If messageDigest found compare it */ + + if (os) { + if (mlen != (unsigned int)os->length) { + CMSerr(CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT, + CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH); + goto err; + } + + if (memcmp(mval, os->data, mlen)) { + CMSerr(CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT, + CMS_R_VERIFICATION_FAILURE); + r = 0; + } else + r = 1; + } else { + const EVP_MD *md = EVP_MD_CTX_md(&mctx); + pkctx = EVP_PKEY_CTX_new(si->pkey, NULL); + if (pkctx == NULL) + goto err; + if (EVP_PKEY_verify_init(pkctx) <= 0) + goto err; + if (EVP_PKEY_CTX_set_signature_md(pkctx, md) <= 0) + goto err; + si->pctx = pkctx; + if (!cms_sd_asn1_ctrl(si, 1)) + goto err; + r = EVP_PKEY_verify(pkctx, si->signature->data, + si->signature->length, mval, mlen); + if (r <= 0) { + CMSerr(CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT, + CMS_R_VERIFICATION_FAILURE); + r = 0; + } + } + + err: + if (pkctx) + EVP_PKEY_CTX_free(pkctx); + EVP_MD_CTX_cleanup(&mctx); + return r; + +} + +int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs) +{ + unsigned char *smder = NULL; + int smderlen, r; + smderlen = i2d_X509_ALGORS(algs, &smder); + if (smderlen <= 0) + return 0; + r = CMS_signed_add1_attr_by_NID(si, NID_SMIMECapabilities, + V_ASN1_SEQUENCE, smder, smderlen); + OPENSSL_free(smder); + return r; +} + +int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, + int algnid, int keysize) +{ + X509_ALGOR *alg; + ASN1_INTEGER *key = NULL; + if (keysize > 0) { + key = ASN1_INTEGER_new(); + if (!key || !ASN1_INTEGER_set(key, keysize)) + return 0; + } + alg = X509_ALGOR_new(); + if (!alg) { + if (key) + ASN1_INTEGER_free(key); + return 0; + } + + X509_ALGOR_set0(alg, OBJ_nid2obj(algnid), + key ? V_ASN1_INTEGER : V_ASN1_UNDEF, key); + if (!*algs) + *algs = sk_X509_ALGOR_new_null(); + if (!*algs || !sk_X509_ALGOR_push(*algs, alg)) { + X509_ALGOR_free(alg); + return 0; + } + return 1; +} + +/* Check to see if a cipher exists and if so add S/MIME capabilities */ + +static int cms_add_cipher_smcap(STACK_OF(X509_ALGOR) **sk, int nid, int arg) +{ + if (EVP_get_cipherbynid(nid)) + return CMS_add_simple_smimecap(sk, nid, arg); + return 1; +} + +static int cms_add_digest_smcap(STACK_OF(X509_ALGOR) **sk, int nid, int arg) +{ + if (EVP_get_digestbynid(nid)) + return CMS_add_simple_smimecap(sk, nid, arg); + return 1; +} + +int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap) +{ + if (!cms_add_cipher_smcap(smcap, NID_aes_256_cbc, -1) + || !cms_add_digest_smcap(smcap, NID_id_GostR3411_94, -1) + || !cms_add_cipher_smcap(smcap, NID_id_Gost28147_89, -1) + || !cms_add_cipher_smcap(smcap, NID_aes_192_cbc, -1) + || !cms_add_cipher_smcap(smcap, NID_aes_128_cbc, -1) + || !cms_add_cipher_smcap(smcap, NID_des_ede3_cbc, -1) + || !cms_add_cipher_smcap(smcap, NID_rc2_cbc, 128) + || !cms_add_cipher_smcap(smcap, NID_rc2_cbc, 64) + || !cms_add_cipher_smcap(smcap, NID_des_cbc, -1) + || !cms_add_cipher_smcap(smcap, NID_rc2_cbc, 40)) + return 0; + return 1; +} diff --git a/libs/openssl/crypto/cms/cms_smime.c b/libs/openssl/crypto/cms/cms_smime.c new file mode 100644 index 00000000..07e3472e --- /dev/null +++ b/libs/openssl/crypto/cms/cms_smime.c @@ -0,0 +1,836 @@ +/* crypto/cms/cms_smime.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2008 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include "cryptlib.h" +#include +#include +#include +#include +#include +#include "cms_lcl.h" +#include "asn1_locl.h" + +static int cms_copy_content(BIO *out, BIO *in, unsigned int flags) +{ + unsigned char buf[4096]; + int r = 0, i; + BIO *tmpout = NULL; + + if (out == NULL) + tmpout = BIO_new(BIO_s_null()); + else if (flags & CMS_TEXT) { + tmpout = BIO_new(BIO_s_mem()); + BIO_set_mem_eof_return(tmpout, 0); + } else + tmpout = out; + + if (!tmpout) { + CMSerr(CMS_F_CMS_COPY_CONTENT, ERR_R_MALLOC_FAILURE); + goto err; + } + + /* Read all content through chain to process digest, decrypt etc */ + for (;;) { + i = BIO_read(in, buf, sizeof(buf)); + if (i <= 0) { + if (BIO_method_type(in) == BIO_TYPE_CIPHER) { + if (!BIO_get_cipher_status(in)) + goto err; + } + if (i < 0) + goto err; + break; + } + + if (tmpout && (BIO_write(tmpout, buf, i) != i)) + goto err; + } + + if (flags & CMS_TEXT) { + if (!SMIME_text(tmpout, out)) { + CMSerr(CMS_F_CMS_COPY_CONTENT, CMS_R_SMIME_TEXT_ERROR); + goto err; + } + } + + r = 1; + + err: + if (tmpout && (tmpout != out)) + BIO_free(tmpout); + return r; + +} + +static int check_content(CMS_ContentInfo *cms) +{ + ASN1_OCTET_STRING **pos = CMS_get0_content(cms); + if (!pos || !*pos) { + CMSerr(CMS_F_CHECK_CONTENT, CMS_R_NO_CONTENT); + return 0; + } + return 1; +} + +static void do_free_upto(BIO *f, BIO *upto) +{ + if (upto) { + BIO *tbio; + do { + tbio = BIO_pop(f); + BIO_free(f); + f = tbio; + } + while (f && f != upto); + } else + BIO_free_all(f); +} + +int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags) +{ + BIO *cont; + int r; + if (OBJ_obj2nid(CMS_get0_type(cms)) != NID_pkcs7_data) { + CMSerr(CMS_F_CMS_DATA, CMS_R_TYPE_NOT_DATA); + return 0; + } + cont = CMS_dataInit(cms, NULL); + if (!cont) + return 0; + r = cms_copy_content(out, cont, flags); + BIO_free_all(cont); + return r; +} + +CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags) +{ + CMS_ContentInfo *cms; + cms = cms_Data_create(); + if (!cms) + return NULL; + + if ((flags & CMS_STREAM) || CMS_final(cms, in, NULL, flags)) + return cms; + + CMS_ContentInfo_free(cms); + + return NULL; +} + +int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, + unsigned int flags) +{ + BIO *cont; + int r; + if (OBJ_obj2nid(CMS_get0_type(cms)) != NID_pkcs7_digest) { + CMSerr(CMS_F_CMS_DIGEST_VERIFY, CMS_R_TYPE_NOT_DIGESTED_DATA); + return 0; + } + + if (!dcont && !check_content(cms)) + return 0; + + cont = CMS_dataInit(cms, dcont); + if (!cont) + return 0; + r = cms_copy_content(out, cont, flags); + if (r) + r = cms_DigestedData_do_final(cms, cont, 1); + do_free_upto(cont, dcont); + return r; +} + +CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, + unsigned int flags) +{ + CMS_ContentInfo *cms; + if (!md) + md = EVP_sha1(); + cms = cms_DigestedData_create(md); + if (!cms) + return NULL; + + if (!(flags & CMS_DETACHED)) + CMS_set_detached(cms, 0); + + if ((flags & CMS_STREAM) || CMS_final(cms, in, NULL, flags)) + return cms; + + CMS_ContentInfo_free(cms); + return NULL; +} + +int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, + const unsigned char *key, size_t keylen, + BIO *dcont, BIO *out, unsigned int flags) +{ + BIO *cont; + int r; + if (OBJ_obj2nid(CMS_get0_type(cms)) != NID_pkcs7_encrypted) { + CMSerr(CMS_F_CMS_ENCRYPTEDDATA_DECRYPT, + CMS_R_TYPE_NOT_ENCRYPTED_DATA); + return 0; + } + + if (!dcont && !check_content(cms)) + return 0; + + if (CMS_EncryptedData_set1_key(cms, NULL, key, keylen) <= 0) + return 0; + cont = CMS_dataInit(cms, dcont); + if (!cont) + return 0; + r = cms_copy_content(out, cont, flags); + do_free_upto(cont, dcont); + return r; +} + +CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, + const unsigned char *key, + size_t keylen, unsigned int flags) +{ + CMS_ContentInfo *cms; + if (!cipher) { + CMSerr(CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT, CMS_R_NO_CIPHER); + return NULL; + } + cms = CMS_ContentInfo_new(); + if (!cms) + return NULL; + if (!CMS_EncryptedData_set1_key(cms, cipher, key, keylen)) + return NULL; + + if (!(flags & CMS_DETACHED)) + CMS_set_detached(cms, 0); + + if ((flags & (CMS_STREAM | CMS_PARTIAL)) + || CMS_final(cms, in, NULL, flags)) + return cms; + + CMS_ContentInfo_free(cms); + return NULL; +} + +static int cms_signerinfo_verify_cert(CMS_SignerInfo *si, + X509_STORE *store, + STACK_OF(X509) *certs, + STACK_OF(X509_CRL) *crls, + unsigned int flags) +{ + X509_STORE_CTX ctx; + X509 *signer; + int i, j, r = 0; + CMS_SignerInfo_get0_algs(si, NULL, &signer, NULL, NULL); + if (!X509_STORE_CTX_init(&ctx, store, signer, certs)) { + CMSerr(CMS_F_CMS_SIGNERINFO_VERIFY_CERT, CMS_R_STORE_INIT_ERROR); + goto err; + } + X509_STORE_CTX_set_default(&ctx, "smime_sign"); + if (crls) + X509_STORE_CTX_set0_crls(&ctx, crls); + + i = X509_verify_cert(&ctx); + if (i <= 0) { + j = X509_STORE_CTX_get_error(&ctx); + CMSerr(CMS_F_CMS_SIGNERINFO_VERIFY_CERT, + CMS_R_CERTIFICATE_VERIFY_ERROR); + ERR_add_error_data(2, "Verify error:", + X509_verify_cert_error_string(j)); + goto err; + } + r = 1; + err: + X509_STORE_CTX_cleanup(&ctx); + return r; + +} + +int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, + X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags) +{ + CMS_SignerInfo *si; + STACK_OF(CMS_SignerInfo) *sinfos; + STACK_OF(X509) *cms_certs = NULL; + STACK_OF(X509_CRL) *crls = NULL; + X509 *signer; + int i, scount = 0, ret = 0; + BIO *cmsbio = NULL, *tmpin = NULL; + + if (!dcont && !check_content(cms)) + return 0; + + /* Attempt to find all signer certificates */ + + sinfos = CMS_get0_SignerInfos(cms); + + if (sk_CMS_SignerInfo_num(sinfos) <= 0) { + CMSerr(CMS_F_CMS_VERIFY, CMS_R_NO_SIGNERS); + goto err; + } + + for (i = 0; i < sk_CMS_SignerInfo_num(sinfos); i++) { + si = sk_CMS_SignerInfo_value(sinfos, i); + CMS_SignerInfo_get0_algs(si, NULL, &signer, NULL, NULL); + if (signer) + scount++; + } + + if (scount != sk_CMS_SignerInfo_num(sinfos)) + scount += CMS_set1_signers_certs(cms, certs, flags); + + if (scount != sk_CMS_SignerInfo_num(sinfos)) { + CMSerr(CMS_F_CMS_VERIFY, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND); + goto err; + } + + /* Attempt to verify all signers certs */ + + if (!(flags & CMS_NO_SIGNER_CERT_VERIFY)) { + cms_certs = CMS_get1_certs(cms); + if (!(flags & CMS_NOCRL)) + crls = CMS_get1_crls(cms); + for (i = 0; i < sk_CMS_SignerInfo_num(sinfos); i++) { + si = sk_CMS_SignerInfo_value(sinfos, i); + if (!cms_signerinfo_verify_cert(si, store, + cms_certs, crls, flags)) + goto err; + } + } + + /* Attempt to verify all SignerInfo signed attribute signatures */ + + if (!(flags & CMS_NO_ATTR_VERIFY)) { + for (i = 0; i < sk_CMS_SignerInfo_num(sinfos); i++) { + si = sk_CMS_SignerInfo_value(sinfos, i); + if (CMS_signed_get_attr_count(si) < 0) + continue; + if (CMS_SignerInfo_verify(si) <= 0) + goto err; + } + } + + /* + * Performance optimization: if the content is a memory BIO then store + * its contents in a temporary read only memory BIO. This avoids + * potentially large numbers of slow copies of data which will occur when + * reading from a read write memory BIO when signatures are calculated. + */ + + if (dcont && (BIO_method_type(dcont) == BIO_TYPE_MEM)) { + char *ptr; + long len; + len = BIO_get_mem_data(dcont, &ptr); + tmpin = BIO_new_mem_buf(ptr, len); + if (tmpin == NULL) { + CMSerr(CMS_F_CMS_VERIFY, ERR_R_MALLOC_FAILURE); + goto err2; + } + } else + tmpin = dcont; + + cmsbio = CMS_dataInit(cms, tmpin); + if (!cmsbio) + goto err; + + if (!cms_copy_content(out, cmsbio, flags)) + goto err; + + if (!(flags & CMS_NO_CONTENT_VERIFY)) { + for (i = 0; i < sk_CMS_SignerInfo_num(sinfos); i++) { + si = sk_CMS_SignerInfo_value(sinfos, i); + if (CMS_SignerInfo_verify_content(si, cmsbio) <= 0) { + CMSerr(CMS_F_CMS_VERIFY, CMS_R_CONTENT_VERIFY_ERROR); + goto err; + } + } + } + + ret = 1; + + err: + + if (dcont && (tmpin == dcont)) + do_free_upto(cmsbio, dcont); + else + BIO_free_all(cmsbio); + + err2: + if (cms_certs) + sk_X509_pop_free(cms_certs, X509_free); + if (crls) + sk_X509_CRL_pop_free(crls, X509_CRL_free); + + return ret; +} + +int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, + STACK_OF(X509) *certs, + X509_STORE *store, unsigned int flags) +{ + int r; + flags &= ~(CMS_DETACHED | CMS_TEXT); + r = CMS_verify(rcms, certs, store, NULL, NULL, flags); + if (r <= 0) + return r; + return cms_Receipt_verify(rcms, ocms); +} + +CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, + STACK_OF(X509) *certs, BIO *data, + unsigned int flags) +{ + CMS_ContentInfo *cms; + int i; + + cms = CMS_ContentInfo_new(); + if (!cms || !CMS_SignedData_init(cms)) + goto merr; + + if (pkey && !CMS_add1_signer(cms, signcert, pkey, NULL, flags)) { + CMSerr(CMS_F_CMS_SIGN, CMS_R_ADD_SIGNER_ERROR); + goto err; + } + + for (i = 0; i < sk_X509_num(certs); i++) { + X509 *x = sk_X509_value(certs, i); + if (!CMS_add1_cert(cms, x)) + goto merr; + } + + if (!(flags & CMS_DETACHED)) + CMS_set_detached(cms, 0); + + if ((flags & (CMS_STREAM | CMS_PARTIAL)) + || CMS_final(cms, data, NULL, flags)) + return cms; + else + goto err; + + merr: + CMSerr(CMS_F_CMS_SIGN, ERR_R_MALLOC_FAILURE); + + err: + if (cms) + CMS_ContentInfo_free(cms); + return NULL; +} + +CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, + X509 *signcert, EVP_PKEY *pkey, + STACK_OF(X509) *certs, unsigned int flags) +{ + CMS_SignerInfo *rct_si; + CMS_ContentInfo *cms = NULL; + ASN1_OCTET_STRING **pos, *os; + BIO *rct_cont = NULL; + int r = 0; + + flags &= ~(CMS_STREAM | CMS_TEXT); + /* Not really detached but avoids content being allocated */ + flags |= CMS_PARTIAL | CMS_BINARY | CMS_DETACHED; + if (!pkey || !signcert) { + CMSerr(CMS_F_CMS_SIGN_RECEIPT, CMS_R_NO_KEY_OR_CERT); + return NULL; + } + + /* Initialize signed data */ + + cms = CMS_sign(NULL, NULL, certs, NULL, flags); + if (!cms) + goto err; + + /* Set inner content type to signed receipt */ + if (!CMS_set1_eContentType(cms, OBJ_nid2obj(NID_id_smime_ct_receipt))) + goto err; + + rct_si = CMS_add1_signer(cms, signcert, pkey, NULL, flags); + if (!rct_si) { + CMSerr(CMS_F_CMS_SIGN_RECEIPT, CMS_R_ADD_SIGNER_ERROR); + goto err; + } + + os = cms_encode_Receipt(si); + + if (!os) + goto err; + + /* Set content to digest */ + rct_cont = BIO_new_mem_buf(os->data, os->length); + if (!rct_cont) + goto err; + + /* Add msgSigDigest attribute */ + + if (!cms_msgSigDigest_add1(rct_si, si)) + goto err; + + /* Finalize structure */ + if (!CMS_final(cms, rct_cont, NULL, flags)) + goto err; + + /* Set embedded content */ + pos = CMS_get0_content(cms); + *pos = os; + + r = 1; + + err: + if (rct_cont) + BIO_free(rct_cont); + if (r) + return cms; + CMS_ContentInfo_free(cms); + return NULL; + +} + +CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *data, + const EVP_CIPHER *cipher, unsigned int flags) +{ + CMS_ContentInfo *cms; + int i; + X509 *recip; + cms = CMS_EnvelopedData_create(cipher); + if (!cms) + goto merr; + for (i = 0; i < sk_X509_num(certs); i++) { + recip = sk_X509_value(certs, i); + if (!CMS_add1_recipient_cert(cms, recip, flags)) { + CMSerr(CMS_F_CMS_ENCRYPT, CMS_R_RECIPIENT_ERROR); + goto err; + } + } + + if (!(flags & CMS_DETACHED)) + CMS_set_detached(cms, 0); + + if ((flags & (CMS_STREAM | CMS_PARTIAL)) + || CMS_final(cms, data, NULL, flags)) + return cms; + else + goto err; + + merr: + CMSerr(CMS_F_CMS_ENCRYPT, ERR_R_MALLOC_FAILURE); + err: + if (cms) + CMS_ContentInfo_free(cms); + return NULL; +} + +static int cms_kari_set1_pkey(CMS_ContentInfo *cms, CMS_RecipientInfo *ri, + EVP_PKEY *pk, X509 *cert) +{ + int i; + STACK_OF(CMS_RecipientEncryptedKey) *reks; + CMS_RecipientEncryptedKey *rek; + reks = CMS_RecipientInfo_kari_get0_reks(ri); + if (!cert) + return 0; + for (i = 0; i < sk_CMS_RecipientEncryptedKey_num(reks); i++) { + int rv; + rek = sk_CMS_RecipientEncryptedKey_value(reks, i); + if (CMS_RecipientEncryptedKey_cert_cmp(rek, cert)) + continue; + CMS_RecipientInfo_kari_set0_pkey(ri, pk); + rv = CMS_RecipientInfo_kari_decrypt(cms, ri, rek); + CMS_RecipientInfo_kari_set0_pkey(ri, NULL); + if (rv > 0) + return 1; + return -1; + } + return 0; +} + +int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert) +{ + STACK_OF(CMS_RecipientInfo) *ris; + CMS_RecipientInfo *ri; + int i, r, ri_type; + int debug = 0, match_ri = 0; + ris = CMS_get0_RecipientInfos(cms); + if (ris) + debug = cms->d.envelopedData->encryptedContentInfo->debug; + ri_type = cms_pkey_get_ri_type(pk); + if (ri_type == CMS_RECIPINFO_NONE) { + CMSerr(CMS_F_CMS_DECRYPT_SET1_PKEY, + CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE); + return 0; + } + + for (i = 0; i < sk_CMS_RecipientInfo_num(ris); i++) { + ri = sk_CMS_RecipientInfo_value(ris, i); + if (CMS_RecipientInfo_type(ri) != ri_type) + continue; + match_ri = 1; + if (ri_type == CMS_RECIPINFO_AGREE) { + r = cms_kari_set1_pkey(cms, ri, pk, cert); + if (r > 0) + return 1; + if (r < 0) + return 0; + } + /* + * If we have a cert try matching RecipientInfo otherwise try them + * all. + */ + else if (!cert || !CMS_RecipientInfo_ktri_cert_cmp(ri, cert)) { + CMS_RecipientInfo_set0_pkey(ri, pk); + r = CMS_RecipientInfo_decrypt(cms, ri); + CMS_RecipientInfo_set0_pkey(ri, NULL); + if (cert) { + /* + * If not debugging clear any error and return success to + * avoid leaking of information useful to MMA + */ + if (!debug) { + ERR_clear_error(); + return 1; + } + if (r > 0) + return 1; + CMSerr(CMS_F_CMS_DECRYPT_SET1_PKEY, CMS_R_DECRYPT_ERROR); + return 0; + } + /* + * If no cert and not debugging don't leave loop after first + * successful decrypt. Always attempt to decrypt all recipients + * to avoid leaking timing of a successful decrypt. + */ + else if (r > 0 && debug) + return 1; + } + } + /* If no cert and not debugging always return success */ + if (match_ri && !cert && !debug) { + ERR_clear_error(); + return 1; + } + + CMSerr(CMS_F_CMS_DECRYPT_SET1_PKEY, CMS_R_NO_MATCHING_RECIPIENT); + return 0; + +} + +int CMS_decrypt_set1_key(CMS_ContentInfo *cms, + unsigned char *key, size_t keylen, + unsigned char *id, size_t idlen) +{ + STACK_OF(CMS_RecipientInfo) *ris; + CMS_RecipientInfo *ri; + int i, r; + ris = CMS_get0_RecipientInfos(cms); + for (i = 0; i < sk_CMS_RecipientInfo_num(ris); i++) { + ri = sk_CMS_RecipientInfo_value(ris, i); + if (CMS_RecipientInfo_type(ri) != CMS_RECIPINFO_KEK) + continue; + + /* + * If we have an id try matching RecipientInfo otherwise try them + * all. + */ + if (!id || (CMS_RecipientInfo_kekri_id_cmp(ri, id, idlen) == 0)) { + CMS_RecipientInfo_set0_key(ri, key, keylen); + r = CMS_RecipientInfo_decrypt(cms, ri); + CMS_RecipientInfo_set0_key(ri, NULL, 0); + if (r > 0) + return 1; + if (id) { + CMSerr(CMS_F_CMS_DECRYPT_SET1_KEY, CMS_R_DECRYPT_ERROR); + return 0; + } + ERR_clear_error(); + } + } + + CMSerr(CMS_F_CMS_DECRYPT_SET1_KEY, CMS_R_NO_MATCHING_RECIPIENT); + return 0; + +} + +int CMS_decrypt_set1_password(CMS_ContentInfo *cms, + unsigned char *pass, ossl_ssize_t passlen) +{ + STACK_OF(CMS_RecipientInfo) *ris; + CMS_RecipientInfo *ri; + int i, r; + ris = CMS_get0_RecipientInfos(cms); + for (i = 0; i < sk_CMS_RecipientInfo_num(ris); i++) { + ri = sk_CMS_RecipientInfo_value(ris, i); + if (CMS_RecipientInfo_type(ri) != CMS_RECIPINFO_PASS) + continue; + CMS_RecipientInfo_set0_password(ri, pass, passlen); + r = CMS_RecipientInfo_decrypt(cms, ri); + CMS_RecipientInfo_set0_password(ri, NULL, 0); + if (r > 0) + return 1; + } + + CMSerr(CMS_F_CMS_DECRYPT_SET1_PASSWORD, CMS_R_NO_MATCHING_RECIPIENT); + return 0; + +} + +int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert, + BIO *dcont, BIO *out, unsigned int flags) +{ + int r; + BIO *cont; + if (OBJ_obj2nid(CMS_get0_type(cms)) != NID_pkcs7_enveloped) { + CMSerr(CMS_F_CMS_DECRYPT, CMS_R_TYPE_NOT_ENVELOPED_DATA); + return 0; + } + if (!dcont && !check_content(cms)) + return 0; + if (flags & CMS_DEBUG_DECRYPT) + cms->d.envelopedData->encryptedContentInfo->debug = 1; + else + cms->d.envelopedData->encryptedContentInfo->debug = 0; + if (!pk && !cert && !dcont && !out) + return 1; + if (pk && !CMS_decrypt_set1_pkey(cms, pk, cert)) + return 0; + cont = CMS_dataInit(cms, dcont); + if (!cont) + return 0; + r = cms_copy_content(out, cont, flags); + do_free_upto(cont, dcont); + return r; +} + +int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags) +{ + BIO *cmsbio; + int ret = 0; + if (!(cmsbio = CMS_dataInit(cms, dcont))) { + CMSerr(CMS_F_CMS_FINAL, CMS_R_CMS_LIB); + return 0; + } + + SMIME_crlf_copy(data, cmsbio, flags); + + (void)BIO_flush(cmsbio); + + if (!CMS_dataFinal(cms, cmsbio)) { + CMSerr(CMS_F_CMS_FINAL, CMS_R_CMS_DATAFINAL_ERROR); + goto err; + } + + ret = 1; + + err: + do_free_upto(cmsbio, dcont); + + return ret; + +} + +#ifdef ZLIB + +int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, + unsigned int flags) +{ + BIO *cont; + int r; + if (OBJ_obj2nid(CMS_get0_type(cms)) != NID_id_smime_ct_compressedData) { + CMSerr(CMS_F_CMS_UNCOMPRESS, CMS_R_TYPE_NOT_COMPRESSED_DATA); + return 0; + } + + if (!dcont && !check_content(cms)) + return 0; + + cont = CMS_dataInit(cms, dcont); + if (!cont) + return 0; + r = cms_copy_content(out, cont, flags); + do_free_upto(cont, dcont); + return r; +} + +CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags) +{ + CMS_ContentInfo *cms; + if (comp_nid <= 0) + comp_nid = NID_zlib_compression; + cms = cms_CompressedData_create(comp_nid); + if (!cms) + return NULL; + + if (!(flags & CMS_DETACHED)) + CMS_set_detached(cms, 0); + + if ((flags & CMS_STREAM) || CMS_final(cms, in, NULL, flags)) + return cms; + + CMS_ContentInfo_free(cms); + return NULL; +} + +#else + +int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, + unsigned int flags) +{ + CMSerr(CMS_F_CMS_UNCOMPRESS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM); + return 0; +} + +CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags) +{ + CMSerr(CMS_F_CMS_COMPRESS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM); + return NULL; +} + +#endif diff --git a/libs/openssl/crypto/comp/c_zlib.c b/libs/openssl/crypto/comp/c_zlib.c index 6731af8b..9c32614d 100644 --- a/libs/openssl/crypto/comp/c_zlib.c +++ b/libs/openssl/crypto/comp/c_zlib.c @@ -404,8 +404,9 @@ COMP_METHOD *COMP_zlib(void) void COMP_zlib_cleanup(void) { #ifdef ZLIB_SHARED - if (zlib_dso) + if (zlib_dso != NULL) DSO_free(zlib_dso); + zlib_dso = NULL; #endif } diff --git a/libs/openssl/crypto/conf/conf_def.c b/libs/openssl/crypto/conf/conf_def.c index faca9aeb..68c77cec 100644 --- a/libs/openssl/crypto/conf/conf_def.c +++ b/libs/openssl/crypto/conf/conf_def.c @@ -225,12 +225,11 @@ static int def_load_bio(CONF *conf, BIO *in, long *line) goto err; } - section = (char *)OPENSSL_malloc(10); + section = BUF_strdup("default"); if (section == NULL) { CONFerr(CONF_F_DEF_LOAD_BIO, ERR_R_MALLOC_FAILURE); goto err; } - BUF_strlcpy(section, "default", 10); if (_CONF_new_data(conf) == 0) { CONFerr(CONF_F_DEF_LOAD_BIO, ERR_R_MALLOC_FAILURE); diff --git a/libs/openssl/crypto/conf/conf_sap.c b/libs/openssl/crypto/conf/conf_sap.c index 544fe973..c042cf22 100644 --- a/libs/openssl/crypto/conf/conf_sap.c +++ b/libs/openssl/crypto/conf/conf_sap.c @@ -90,6 +90,7 @@ void OPENSSL_config(const char *config_name) CONF_modules_load_file(NULL, config_name, CONF_MFLAGS_DEFAULT_SECTION | CONF_MFLAGS_IGNORE_MISSING_FILE); + openssl_configured = 1; } void OPENSSL_no_config() diff --git a/libs/openssl/crypto/cryptlib.c b/libs/openssl/crypto/cryptlib.c index c654a5c8..c9f674ba 100644 --- a/libs/openssl/crypto/cryptlib.c +++ b/libs/openssl/crypto/cryptlib.c @@ -653,7 +653,7 @@ const char *CRYPTO_get_lock_name(int type) defined(__x86_64) || defined(__x86_64__) || \ defined(_M_AMD64) || defined(_M_X64) -unsigned int OPENSSL_ia32cap_P[2]; +extern unsigned int OPENSSL_ia32cap_P[4]; unsigned long *OPENSSL_ia32cap_loc(void) { if (sizeof(long) == 4) @@ -663,6 +663,9 @@ unsigned long *OPENSSL_ia32cap_loc(void) * is 32-bit. */ OPENSSL_ia32cap_P[1] = 0; + + OPENSSL_ia32cap_P[2] = 0; + return (unsigned long *)OPENSSL_ia32cap_P; } @@ -676,7 +679,7 @@ typedef unsigned long long IA32CAP; void OPENSSL_cpuid_setup(void) { static int trigger = 0; - IA32CAP OPENSSL_ia32_cpuid(void); + IA32CAP OPENSSL_ia32_cpuid(unsigned int *); IA32CAP vec; char *env; @@ -694,9 +697,23 @@ void OPENSSL_cpuid_setup(void) vec = strtoul(env + off, NULL, 0); # endif if (off) - vec = OPENSSL_ia32_cpuid() & ~vec; + vec = OPENSSL_ia32_cpuid(OPENSSL_ia32cap_P) & ~vec; + else if (env[0] == ':') + vec = OPENSSL_ia32_cpuid(OPENSSL_ia32cap_P); + + OPENSSL_ia32cap_P[2] = 0; + if ((env = strchr(env, ':'))) { + unsigned int vecx; + env++; + off = (env[0] == '~') ? 1 : 0; + vecx = strtoul(env + off, NULL, 0); + if (off) + OPENSSL_ia32cap_P[2] &= ~vecx; + else + OPENSSL_ia32cap_P[2] = vecx; + } } else - vec = OPENSSL_ia32_cpuid(); + vec = OPENSSL_ia32_cpuid(OPENSSL_ia32cap_P); /* * |(1<<10) sets a reserved bit to signal that variable @@ -706,6 +723,8 @@ void OPENSSL_cpuid_setup(void) OPENSSL_ia32cap_P[0] = (unsigned int)vec | (1 << 10); OPENSSL_ia32cap_P[1] = (unsigned int)(vec >> 32); } +# else +unsigned int OPENSSL_ia32cap_P[4]; # endif #else @@ -857,8 +876,12 @@ void OPENSSL_showfatal(const char *fmta, ...) if ((h = GetStdHandle(STD_ERROR_HANDLE)) != NULL && GetFileType(h) != FILE_TYPE_UNKNOWN) { /* must be console application */ + int len; + DWORD out; + va_start(ap, fmta); - vfprintf(stderr, fmta, ap); + len = _vsnprintf((char *)buf, sizeof(buf), fmta, ap); + WriteFile(h, buf, len < 0 ? sizeof(buf) : (DWORD) len, &out, NULL); va_end(ap); return; } @@ -930,13 +953,29 @@ void OPENSSL_showfatal(const char *fmta, ...) # if defined(_WIN32_WINNT) && _WIN32_WINNT>=0x0333 /* this -------------v--- guards NT-specific calls */ if (check_winnt() && OPENSSL_isservice() > 0) { - HANDLE h = RegisterEventSource(0, _T("OPENSSL")); - const TCHAR *pmsg = buf; - ReportEvent(h, EVENTLOG_ERROR_TYPE, 0, 0, 0, 1, 0, &pmsg, 0); - DeregisterEventSource(h); + HANDLE hEventLog = RegisterEventSource(NULL, _T("OpenSSL")); + + if (hEventLog != NULL) { + const TCHAR *pmsg = buf; + + if (!ReportEvent(hEventLog, EVENTLOG_ERROR_TYPE, 0, 0, NULL, + 1, 0, &pmsg, NULL)) { +#if defined(DEBUG) + /* + * We are in a situation where we tried to report a critical + * error and this failed for some reason. As a last resort, + * in debug builds, send output to the debugger or any other + * tool like DebugView which can monitor the output. + */ + OutputDebugString(pmsg); +#endif + } + + (void)DeregisterEventSource(hEventLog); + } } else # endif - MessageBox(NULL, buf, _T("OpenSSL: FATAL"), MB_OK | MB_ICONSTOP); + MessageBox(NULL, buf, _T("OpenSSL: FATAL"), MB_OK | MB_ICONERROR); } #else void OPENSSL_showfatal(const char *fmta, ...) @@ -965,7 +1004,9 @@ void OpenSSLDie(const char *file, int line, const char *assertion) /* * Win32 abort() customarily shows a dialog, but we just did that... */ +# if !defined(_WIN32_WCE) raise(SIGABRT); +# endif _exit(3); #endif } diff --git a/libs/openssl/crypto/cversion.c b/libs/openssl/crypto/cversion.c index 9e6f50d7..bfff6995 100644 --- a/libs/openssl/crypto/cversion.c +++ b/libs/openssl/crypto/cversion.c @@ -68,7 +68,11 @@ const char *SSLeay_version(int t) return OPENSSL_VERSION_TEXT; if (t == SSLEAY_BUILT_ON) { #ifdef DATE +# ifdef OPENSSL_USE_BUILD_DATE return (DATE); +# else + return ("built on: reproducible build, date unspecified"); +# endif #else return ("built on: date not available"); #endif diff --git a/libs/openssl/crypto/des/asm/d_win32.asm b/libs/openssl/crypto/des/asm/d_win32.asm index 2eeb1b22..9a9336f3 100644 --- a/libs/openssl/crypto/des/asm/d_win32.asm +++ b/libs/openssl/crypto/des/asm/d_win32.asm @@ -1001,7 +1001,7 @@ L$_DES_encrypt1_begin: call L$000pic_point L$000pic_point: pop ebp - lea ebp,[(_DES_SPtrans-L$000pic_point)+ebp] + lea ebp,[(L$des_sptrans-L$000pic_point)+ebp] mov ecx,DWORD [24+esp] cmp ebx,0 je NEAR L$001decrypt @@ -1076,7 +1076,7 @@ L$_DES_encrypt2_begin: call L$003pic_point L$003pic_point: pop ebp - lea ebp,[(_DES_SPtrans-L$003pic_point)+ebp] + lea ebp,[(L$des_sptrans-L$003pic_point)+ebp] mov ecx,DWORD [24+esp] cmp ebx,0 je NEAR L$004decrypt @@ -1697,6 +1697,7 @@ dd L$036ej7-L$034PIC_point align 64 align 64 _DES_SPtrans: +L$des_sptrans: dd 34080768,524288,33554434,34080770 dd 33554432,526338,524290,33554434 dd 526338,34080768,34078720,2050 diff --git a/libs/openssl/crypto/des/des_locl.h b/libs/openssl/crypto/des/des_locl.h index 1a8e41dd..23ea9d32 100644 --- a/libs/openssl/crypto/des/des_locl.h +++ b/libs/openssl/crypto/des/des_locl.h @@ -162,8 +162,10 @@ } \ } -# if (defined(OPENSSL_SYS_WIN32) && defined(_MSC_VER)) || defined(__ICC) +# if (defined(OPENSSL_SYS_WIN32) && defined(_MSC_VER)) # define ROTATE(a,n) (_lrotr(a,n)) +# elif defined(__ICC) +# define ROTATE(a,n) (_rotr(a,n)) # elif defined(__GNUC__) && __GNUC__>=2 && !defined(__STRICT_ANSI__) && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) && !defined(PEDANTIC) # if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__) # define ROTATE(a,n) ({ register unsigned int ret; \ diff --git a/libs/openssl/crypto/dh/dh.h b/libs/openssl/crypto/dh/dh.h index 4cbaa978..b1776732 100644 --- a/libs/openssl/crypto/dh/dh.h +++ b/libs/openssl/crypto/dh/dh.h @@ -142,7 +142,7 @@ struct dh_st { BIGNUM *p; BIGNUM *g; long length; /* optional */ - BIGNUM *pub_key; /* g^x */ + BIGNUM *pub_key; /* g^x % p */ BIGNUM *priv_key; /* x */ int flags; BN_MONT_CTX *method_mont_p; @@ -167,6 +167,9 @@ struct dh_st { # define DH_CHECK_P_NOT_SAFE_PRIME 0x02 # define DH_UNABLE_TO_CHECK_GENERATOR 0x04 # define DH_NOT_SUITABLE_GENERATOR 0x08 +# define DH_CHECK_Q_NOT_PRIME 0x10 +# define DH_CHECK_INVALID_Q_VALUE 0x20 +# define DH_CHECK_INVALID_J_VALUE 0x40 /* DH_check_pub_key error codes */ # define DH_CHECK_PUBKEY_TOO_SMALL 0x01 @@ -217,8 +220,11 @@ int DH_check(const DH *dh, int *codes); int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes); int DH_generate_key(DH *dh); int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); +int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh); DH *d2i_DHparams(DH **a, const unsigned char **pp, long length); int i2d_DHparams(const DH *a, unsigned char **pp); +DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length); +int i2d_DHxparams(const DH *a, unsigned char **pp); # ifndef OPENSSL_NO_FP_API int DHparams_print_fp(FILE *fp, const DH *x); # endif @@ -228,16 +234,109 @@ int DHparams_print(BIO *bp, const DH *x); int DHparams_print(char *bp, const DH *x); # endif +/* RFC 5114 parameters */ +DH *DH_get_1024_160(void); +DH *DH_get_2048_224(void); +DH *DH_get_2048_256(void); + +/* RFC2631 KDF */ +int DH_KDF_X9_42(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + ASN1_OBJECT *key_oid, + const unsigned char *ukm, size_t ukmlen, const EVP_MD *md); + # define EVP_PKEY_CTX_set_dh_paramgen_prime_len(ctx, len) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN, len, NULL) +# define EVP_PKEY_CTX_set_dh_paramgen_subprime_len(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN, len, NULL) + +# define EVP_PKEY_CTX_set_dh_paramgen_type(ctx, typ) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_PARAMGEN_TYPE, typ, NULL) + # define EVP_PKEY_CTX_set_dh_paramgen_generator(ctx, gen) \ EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR, gen, NULL) +# define EVP_PKEY_CTX_set_dh_rfc5114(ctx, gen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) + +# define EVP_PKEY_CTX_set_dhx_rfc5114(ctx, gen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) + +# define EVP_PKEY_CTX_set_dh_kdf_type(ctx, kdf) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_TYPE, kdf, NULL) + +# define EVP_PKEY_CTX_get_dh_kdf_type(ctx) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_TYPE, -2, NULL) + +# define EVP_PKEY_CTX_set0_dh_kdf_oid(ctx, oid) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_OID, 0, (void *)oid) + +# define EVP_PKEY_CTX_get0_dh_kdf_oid(ctx, poid) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_OID, 0, (void *)poid) + +# define EVP_PKEY_CTX_set_dh_kdf_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_get_dh_kdf_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_MD, 0, (void *)pmd) + +# define EVP_PKEY_CTX_set_dh_kdf_outlen(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_OUTLEN, len, NULL) + +# define EVP_PKEY_CTX_get_dh_kdf_outlen(ctx, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN, 0, (void *)plen) + +# define EVP_PKEY_CTX_set0_dh_kdf_ukm(ctx, p, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_DH_KDF_UKM, plen, (void *)p) + +# define EVP_PKEY_CTX_get0_dh_kdf_ukm(ctx, p) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_DH_KDF_UKM, 0, (void *)p) + # define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN (EVP_PKEY_ALG_CTRL + 1) # define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_DH_RFC5114 (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE (EVP_PKEY_ALG_CTRL + 5) +# define EVP_PKEY_CTRL_DH_KDF_TYPE (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 7) +# define EVP_PKEY_CTRL_GET_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 8) +# define EVP_PKEY_CTRL_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 10) +# define EVP_PKEY_CTRL_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 11) +# define EVP_PKEY_CTRL_GET_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 12) +# define EVP_PKEY_CTRL_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 13) +# define EVP_PKEY_CTRL_GET_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 14) + +/* KDF types */ +# define EVP_PKEY_DH_KDF_NONE 1 +# define EVP_PKEY_DH_KDF_X9_42 2 /* BEGIN ERROR CODES */ /* @@ -252,6 +351,9 @@ void ERR_load_DH_strings(void); # define DH_F_COMPUTE_KEY 102 # define DH_F_DHPARAMS_PRINT_FP 101 # define DH_F_DH_BUILTIN_GENPARAMS 106 +# define DH_F_DH_CMS_DECRYPT 117 +# define DH_F_DH_CMS_SET_PEERKEY 118 +# define DH_F_DH_CMS_SET_SHARED_INFO 119 # define DH_F_DH_COMPUTE_KEY 114 # define DH_F_DH_GENERATE_KEY 115 # define DH_F_DH_GENERATE_PARAMETERS_EX 116 @@ -273,6 +375,7 @@ void ERR_load_DH_strings(void); # define DH_R_BN_ERROR 106 # define DH_R_DECODE_ERROR 104 # define DH_R_INVALID_PUBKEY 102 +# define DH_R_KDF_PARAMETER_ERROR 112 # define DH_R_KEYS_NOT_SET 108 # define DH_R_KEY_SIZE_TOO_SMALL 110 # define DH_R_MODULUS_TOO_LARGE 103 @@ -280,6 +383,8 @@ void ERR_load_DH_strings(void); # define DH_R_NO_PARAMETERS_SET 107 # define DH_R_NO_PRIVATE_VALUE 100 # define DH_R_PARAMETER_ENCODING_ERROR 105 +# define DH_R_PEER_KEY_ERROR 113 +# define DH_R_SHARED_INFO_ERROR 114 #ifdef __cplusplus } diff --git a/libs/openssl/crypto/dh/dh_ameth.c b/libs/openssl/crypto/dh/dh_ameth.c index 873eb2e2..ac72468b 100644 --- a/libs/openssl/crypto/dh/dh_ameth.c +++ b/libs/openssl/crypto/dh/dh_ameth.c @@ -63,6 +63,31 @@ #include #include #include "asn1_locl.h" +#ifndef OPENSSL_NO_CMS +# include +#endif + +extern const EVP_PKEY_ASN1_METHOD dhx_asn1_meth; + +/* + * i2d/d2i like DH parameter functions which use the appropriate routine for + * PKCS#3 DH or X9.42 DH. + */ + +static DH *d2i_dhp(const EVP_PKEY *pkey, const unsigned char **pp, + long length) +{ + if (pkey->ameth == &dhx_asn1_meth) + return d2i_DHxparams(NULL, pp, length); + return d2i_DHparams(NULL, pp, length); +} + +static int i2d_dhp(const EVP_PKEY *pkey, const DH *a, unsigned char **pp) +{ + if (pkey->ameth == &dhx_asn1_meth) + return i2d_DHxparams(a, pp); + return i2d_DHparams(a, pp); +} static void int_dh_free(EVP_PKEY *pkey) { @@ -94,7 +119,7 @@ static int dh_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey) pm = pstr->data; pmlen = pstr->length; - if (!(dh = d2i_DHparams(NULL, &pm, pmlen))) { + if (!(dh = d2i_dhp(pkey, &pm, pmlen))) { DHerr(DH_F_DH_PUB_DECODE, DH_R_DECODE_ERROR); goto err; } @@ -111,7 +136,7 @@ static int dh_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey) } ASN1_INTEGER_free(public_key); - EVP_PKEY_assign_DH(pkey, dh); + EVP_PKEY_assign(pkey, pkey->ameth->pkey_id, dh); return 1; err: @@ -139,7 +164,7 @@ static int dh_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey) DHerr(DH_F_DH_PUB_ENCODE, ERR_R_MALLOC_FAILURE); goto err; } - str->length = i2d_DHparams(dh, &str->data); + str->length = i2d_dhp(pkey, dh, &str->data); if (str->length <= 0) { DHerr(DH_F_DH_PUB_ENCODE, ERR_R_MALLOC_FAILURE); goto err; @@ -159,7 +184,7 @@ static int dh_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey) goto err; } - if (X509_PUBKEY_set0_param(pk, OBJ_nid2obj(EVP_PKEY_DH), + if (X509_PUBKEY_set0_param(pk, OBJ_nid2obj(pkey->ameth->pkey_id), ptype, str, penc, penclen)) return 1; @@ -204,7 +229,7 @@ static int dh_priv_decode(EVP_PKEY *pkey, PKCS8_PRIV_KEY_INFO *p8) pstr = pval; pm = pstr->data; pmlen = pstr->length; - if (!(dh = d2i_DHparams(NULL, &pm, pmlen))) + if (!(dh = d2i_dhp(pkey, &pm, pmlen))) goto decerr; /* We have parameters now set private key */ if (!(dh->priv_key = ASN1_INTEGER_to_BN(privkey, NULL))) { @@ -215,7 +240,7 @@ static int dh_priv_decode(EVP_PKEY *pkey, PKCS8_PRIV_KEY_INFO *p8) if (!DH_generate_key(dh)) goto dherr; - EVP_PKEY_assign_DH(pkey, dh); + EVP_PKEY_assign(pkey, pkey->ameth->pkey_id, dh); ASN1_STRING_clear_free(privkey); @@ -243,7 +268,7 @@ static int dh_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey) goto err; } - params->length = i2d_DHparams(pkey->pkey.dh, ¶ms->data); + params->length = i2d_dhp(pkey, pkey->pkey.dh, ¶ms->data); if (params->length <= 0) { DHerr(DH_F_DH_PRIV_ENCODE, ERR_R_MALLOC_FAILURE); goto err; @@ -263,7 +288,7 @@ static int dh_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey) ASN1_STRING_clear_free(prkey); prkey = NULL; - if (!PKCS8_pkey_set0(p8, OBJ_nid2obj(NID_dhKeyAgreement), 0, + if (!PKCS8_pkey_set0(p8, OBJ_nid2obj(pkey->ameth->pkey_id), 0, V_ASN1_SEQUENCE, params, dp, dplen)) goto err; @@ -292,17 +317,17 @@ static int dh_param_decode(EVP_PKEY *pkey, const unsigned char **pder, int derlen) { DH *dh; - if (!(dh = d2i_DHparams(NULL, pder, derlen))) { + if (!(dh = d2i_dhp(pkey, pder, derlen))) { DHerr(DH_F_DH_PARAM_DECODE, ERR_R_DH_LIB); return 0; } - EVP_PKEY_assign_DH(pkey, dh); + EVP_PKEY_assign(pkey, pkey->ameth->pkey_id, dh); return 1; } static int dh_param_encode(const EVP_PKEY *pkey, unsigned char **pder) { - return i2d_DHparams(pkey->pkey.dh, pder); + return i2d_dhp(pkey, pkey->pkey.dh, pder); } static int do_dh_print(BIO *bp, const DH *x, int indent, @@ -334,15 +359,18 @@ static int do_dh_print(BIO *bp, const DH *x, int indent, } update_buflen(x->g, &buf_len); + update_buflen(x->q, &buf_len); + update_buflen(x->j, &buf_len); + update_buflen(x->counter, &buf_len); update_buflen(pub_key, &buf_len); update_buflen(priv_key, &buf_len); if (ptype == 2) - ktype = "PKCS#3 DH Private-Key"; + ktype = "DH Private-Key"; else if (ptype == 1) - ktype = "PKCS#3 DH Public-Key"; + ktype = "DH Public-Key"; else - ktype = "PKCS#3 DH Parameters"; + ktype = "DH Parameters"; m = OPENSSL_malloc(buf_len + 10); if (m == NULL) { @@ -364,6 +392,29 @@ static int do_dh_print(BIO *bp, const DH *x, int indent, goto err; if (!ASN1_bn_print(bp, "generator:", x->g, m, indent)) goto err; + if (x->q && !ASN1_bn_print(bp, "subgroup order:", x->q, m, indent)) + goto err; + if (x->j && !ASN1_bn_print(bp, "subgroup factor:", x->j, m, indent)) + goto err; + if (x->seed) { + int i; + BIO_indent(bp, indent, 128); + BIO_puts(bp, "seed:"); + for (i = 0; i < x->seedlen; i++) { + if ((i % 15) == 0) { + if (BIO_puts(bp, "\n") <= 0 + || !BIO_indent(bp, indent + 4, 128)) + goto err; + } + if (BIO_printf(bp, "%02x%s", x->seed[i], + ((i + 1) == x->seedlen) ? "" : ":") <= 0) + goto err; + } + if (BIO_write(bp, "\n", 1) <= 0) + return (0); + } + if (x->counter && !ASN1_bn_print(bp, "counter:", x->counter, m, indent)) + goto err; if (x->length != 0) { BIO_indent(bp, indent, 128); if (BIO_printf(bp, "recommended-private-length: %d bits\n", @@ -396,29 +447,76 @@ static int dh_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b) if (BN_cmp(a->pkey.dh->p, b->pkey.dh->p) || BN_cmp(a->pkey.dh->g, b->pkey.dh->g)) return 0; - else - return 1; + else if (a->ameth == &dhx_asn1_meth) { + if (BN_cmp(a->pkey.dh->q, b->pkey.dh->q)) + return 0; + } + return 1; } -static int dh_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from) +static int int_dh_bn_cpy(BIGNUM **dst, const BIGNUM *src) { BIGNUM *a; + if (src) { + a = BN_dup(src); + if (!a) + return 0; + } else + a = NULL; + if (*dst) + BN_free(*dst); + *dst = a; + return 1; +} - if ((a = BN_dup(from->pkey.dh->p)) == NULL) +static int int_dh_param_copy(DH *to, const DH *from, int is_x942) +{ + if (is_x942 == -1) + is_x942 = ! !from->q; + if (!int_dh_bn_cpy(&to->p, from->p)) return 0; - if (to->pkey.dh->p != NULL) - BN_free(to->pkey.dh->p); - to->pkey.dh->p = a; - - if ((a = BN_dup(from->pkey.dh->g)) == NULL) + if (!int_dh_bn_cpy(&to->g, from->g)) return 0; - if (to->pkey.dh->g != NULL) - BN_free(to->pkey.dh->g); - to->pkey.dh->g = a; - + if (is_x942) { + if (!int_dh_bn_cpy(&to->q, from->q)) + return 0; + if (!int_dh_bn_cpy(&to->j, from->j)) + return 0; + if (to->seed) { + OPENSSL_free(to->seed); + to->seed = NULL; + to->seedlen = 0; + } + if (from->seed) { + to->seed = BUF_memdup(from->seed, from->seedlen); + if (!to->seed) + return 0; + to->seedlen = from->seedlen; + } + } else + to->length = from->length; return 1; } +DH *DHparams_dup(DH *dh) +{ + DH *ret; + ret = DH_new(); + if (!ret) + return NULL; + if (!int_dh_param_copy(ret, dh, -1)) { + DH_free(ret); + return NULL; + } + return ret; +} + +static int dh_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from) +{ + return int_dh_param_copy(to->pkey.dh, from->pkey.dh, + from->ameth == &dhx_asn1_meth); +} + static int dh_missing_parameters(const EVP_PKEY *a) { if (!a->pkey.dh->p || !a->pkey.dh->g) @@ -459,6 +557,33 @@ int DHparams_print(BIO *bp, const DH *x) return do_dh_print(bp, x, 4, NULL, 0); } +#ifndef OPENSSL_NO_CMS +static int dh_cms_decrypt(CMS_RecipientInfo *ri); +static int dh_cms_encrypt(CMS_RecipientInfo *ri); +#endif + +static int dh_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2) +{ + switch (op) { +#ifndef OPENSSL_NO_CMS + + case ASN1_PKEY_CTRL_CMS_ENVELOPE: + if (arg1 == 1) + return dh_cms_decrypt(arg2); + else if (arg1 == 0) + return dh_cms_encrypt(arg2); + return -2; + + case ASN1_PKEY_CTRL_CMS_RI_TYPE: + *(int *)arg2 = CMS_RECIPINFO_AGREE; + return 1; +#endif + default: + return -2; + } + +} + const EVP_PKEY_ASN1_METHOD dh_asn1_meth = { EVP_PKEY_DH, EVP_PKEY_DH, @@ -490,3 +615,343 @@ const EVP_PKEY_ASN1_METHOD dh_asn1_meth = { int_dh_free, 0 }; + +const EVP_PKEY_ASN1_METHOD dhx_asn1_meth = { + EVP_PKEY_DHX, + EVP_PKEY_DHX, + 0, + + "X9.42 DH", + "OpenSSL X9.42 DH method", + + dh_pub_decode, + dh_pub_encode, + dh_pub_cmp, + dh_public_print, + + dh_priv_decode, + dh_priv_encode, + dh_private_print, + + int_dh_size, + dh_bits, + + dh_param_decode, + dh_param_encode, + dh_missing_parameters, + dh_copy_parameters, + dh_cmp_parameters, + dh_param_print, + 0, + + int_dh_free, + dh_pkey_ctrl +}; + +#ifndef OPENSSL_NO_CMS + +static int dh_cms_set_peerkey(EVP_PKEY_CTX *pctx, + X509_ALGOR *alg, ASN1_BIT_STRING *pubkey) +{ + ASN1_OBJECT *aoid; + int atype; + void *aval; + ASN1_INTEGER *public_key = NULL; + int rv = 0; + EVP_PKEY *pkpeer = NULL, *pk = NULL; + DH *dhpeer = NULL; + const unsigned char *p; + int plen; + + X509_ALGOR_get0(&aoid, &atype, &aval, alg); + if (OBJ_obj2nid(aoid) != NID_dhpublicnumber) + goto err; + /* Only absent parameters allowed in RFC XXXX */ + if (atype != V_ASN1_UNDEF && atype == V_ASN1_NULL) + goto err; + + pk = EVP_PKEY_CTX_get0_pkey(pctx); + if (!pk) + goto err; + if (pk->type != EVP_PKEY_DHX) + goto err; + /* Get parameters from parent key */ + dhpeer = DHparams_dup(pk->pkey.dh); + /* We have parameters now set public key */ + plen = ASN1_STRING_length(pubkey); + p = ASN1_STRING_data(pubkey); + if (!p || !plen) + goto err; + + if (!(public_key = d2i_ASN1_INTEGER(NULL, &p, plen))) { + DHerr(DH_F_DH_CMS_SET_PEERKEY, DH_R_DECODE_ERROR); + goto err; + } + + /* We have parameters now set public key */ + if (!(dhpeer->pub_key = ASN1_INTEGER_to_BN(public_key, NULL))) { + DHerr(DH_F_DH_CMS_SET_PEERKEY, DH_R_BN_DECODE_ERROR); + goto err; + } + + pkpeer = EVP_PKEY_new(); + if (!pkpeer) + goto err; + EVP_PKEY_assign(pkpeer, pk->ameth->pkey_id, dhpeer); + dhpeer = NULL; + if (EVP_PKEY_derive_set_peer(pctx, pkpeer) > 0) + rv = 1; + err: + if (public_key) + ASN1_INTEGER_free(public_key); + if (pkpeer) + EVP_PKEY_free(pkpeer); + if (dhpeer) + DH_free(dhpeer); + return rv; +} + +static int dh_cms_set_shared_info(EVP_PKEY_CTX *pctx, CMS_RecipientInfo *ri) +{ + int rv = 0; + + X509_ALGOR *alg, *kekalg = NULL; + ASN1_OCTET_STRING *ukm; + const unsigned char *p; + unsigned char *dukm = NULL; + size_t dukmlen = 0; + int keylen, plen; + const EVP_CIPHER *kekcipher; + EVP_CIPHER_CTX *kekctx; + + if (!CMS_RecipientInfo_kari_get0_alg(ri, &alg, &ukm)) + goto err; + + /* + * For DH we only have one OID permissible. If ever any more get defined + * we will need something cleverer. + */ + if (OBJ_obj2nid(alg->algorithm) != NID_id_smime_alg_ESDH) { + DHerr(DH_F_DH_CMS_SET_SHARED_INFO, DH_R_KDF_PARAMETER_ERROR); + goto err; + } + + if (EVP_PKEY_CTX_set_dh_kdf_type(pctx, EVP_PKEY_DH_KDF_X9_42) <= 0) + goto err; + + if (EVP_PKEY_CTX_set_dh_kdf_md(pctx, EVP_sha1()) <= 0) + goto err; + + if (alg->parameter->type != V_ASN1_SEQUENCE) + goto err; + + p = alg->parameter->value.sequence->data; + plen = alg->parameter->value.sequence->length; + kekalg = d2i_X509_ALGOR(NULL, &p, plen); + if (!kekalg) + goto err; + kekctx = CMS_RecipientInfo_kari_get0_ctx(ri); + if (!kekctx) + goto err; + kekcipher = EVP_get_cipherbyobj(kekalg->algorithm); + if (!kekcipher || EVP_CIPHER_mode(kekcipher) != EVP_CIPH_WRAP_MODE) + goto err; + if (!EVP_EncryptInit_ex(kekctx, kekcipher, NULL, NULL, NULL)) + goto err; + if (EVP_CIPHER_asn1_to_param(kekctx, kekalg->parameter) <= 0) + goto err; + + keylen = EVP_CIPHER_CTX_key_length(kekctx); + if (EVP_PKEY_CTX_set_dh_kdf_outlen(pctx, keylen) <= 0) + goto err; + /* Use OBJ_nid2obj to ensure we use built in OID that isn't freed */ + if (EVP_PKEY_CTX_set0_dh_kdf_oid(pctx, + OBJ_nid2obj(EVP_CIPHER_type(kekcipher))) + <= 0) + goto err; + + if (ukm) { + dukmlen = ASN1_STRING_length(ukm); + dukm = BUF_memdup(ASN1_STRING_data(ukm), dukmlen); + if (!dukm) + goto err; + } + + if (EVP_PKEY_CTX_set0_dh_kdf_ukm(pctx, dukm, dukmlen) <= 0) + goto err; + dukm = NULL; + + rv = 1; + err: + if (kekalg) + X509_ALGOR_free(kekalg); + if (dukm) + OPENSSL_free(dukm); + return rv; +} + +static int dh_cms_decrypt(CMS_RecipientInfo *ri) +{ + EVP_PKEY_CTX *pctx; + pctx = CMS_RecipientInfo_get0_pkey_ctx(ri); + if (!pctx) + return 0; + /* See if we need to set peer key */ + if (!EVP_PKEY_CTX_get0_peerkey(pctx)) { + X509_ALGOR *alg; + ASN1_BIT_STRING *pubkey; + if (!CMS_RecipientInfo_kari_get0_orig_id(ri, &alg, &pubkey, + NULL, NULL, NULL)) + return 0; + if (!alg || !pubkey) + return 0; + if (!dh_cms_set_peerkey(pctx, alg, pubkey)) { + DHerr(DH_F_DH_CMS_DECRYPT, DH_R_PEER_KEY_ERROR); + return 0; + } + } + /* Set DH derivation parameters and initialise unwrap context */ + if (!dh_cms_set_shared_info(pctx, ri)) { + DHerr(DH_F_DH_CMS_DECRYPT, DH_R_SHARED_INFO_ERROR); + return 0; + } + return 1; +} + +static int dh_cms_encrypt(CMS_RecipientInfo *ri) +{ + EVP_PKEY_CTX *pctx; + EVP_PKEY *pkey; + EVP_CIPHER_CTX *ctx; + int keylen; + X509_ALGOR *talg, *wrap_alg = NULL; + ASN1_OBJECT *aoid; + ASN1_BIT_STRING *pubkey; + ASN1_STRING *wrap_str; + ASN1_OCTET_STRING *ukm; + unsigned char *penc = NULL, *dukm = NULL; + int penclen; + size_t dukmlen = 0; + int rv = 0; + int kdf_type, wrap_nid; + const EVP_MD *kdf_md; + pctx = CMS_RecipientInfo_get0_pkey_ctx(ri); + if (!pctx) + return 0; + /* Get ephemeral key */ + pkey = EVP_PKEY_CTX_get0_pkey(pctx); + if (!CMS_RecipientInfo_kari_get0_orig_id(ri, &talg, &pubkey, + NULL, NULL, NULL)) + goto err; + X509_ALGOR_get0(&aoid, NULL, NULL, talg); + /* Is everything uninitialised? */ + if (aoid == OBJ_nid2obj(NID_undef)) { + ASN1_INTEGER *pubk; + pubk = BN_to_ASN1_INTEGER(pkey->pkey.dh->pub_key, NULL); + if (!pubk) + goto err; + /* Set the key */ + + penclen = i2d_ASN1_INTEGER(pubk, &penc); + ASN1_INTEGER_free(pubk); + if (penclen <= 0) + goto err; + ASN1_STRING_set0(pubkey, penc, penclen); + pubkey->flags &= ~(ASN1_STRING_FLAG_BITS_LEFT | 0x07); + pubkey->flags |= ASN1_STRING_FLAG_BITS_LEFT; + + penc = NULL; + X509_ALGOR_set0(talg, OBJ_nid2obj(NID_dhpublicnumber), + V_ASN1_UNDEF, NULL); + } + + /* See if custom paraneters set */ + kdf_type = EVP_PKEY_CTX_get_dh_kdf_type(pctx); + if (kdf_type <= 0) + goto err; + if (!EVP_PKEY_CTX_get_dh_kdf_md(pctx, &kdf_md)) + goto err; + + if (kdf_type == EVP_PKEY_DH_KDF_NONE) { + kdf_type = EVP_PKEY_DH_KDF_X9_42; + if (EVP_PKEY_CTX_set_dh_kdf_type(pctx, kdf_type) <= 0) + goto err; + } else if (kdf_type != EVP_PKEY_DH_KDF_X9_42) + /* Unknown KDF */ + goto err; + if (kdf_md == NULL) { + /* Only SHA1 supported */ + kdf_md = EVP_sha1(); + if (EVP_PKEY_CTX_set_dh_kdf_md(pctx, kdf_md) <= 0) + goto err; + } else if (EVP_MD_type(kdf_md) != NID_sha1) + /* Unsupported digest */ + goto err; + + if (!CMS_RecipientInfo_kari_get0_alg(ri, &talg, &ukm)) + goto err; + + /* Get wrap NID */ + ctx = CMS_RecipientInfo_kari_get0_ctx(ri); + wrap_nid = EVP_CIPHER_CTX_type(ctx); + if (EVP_PKEY_CTX_set0_dh_kdf_oid(pctx, OBJ_nid2obj(wrap_nid)) <= 0) + goto err; + keylen = EVP_CIPHER_CTX_key_length(ctx); + + /* Package wrap algorithm in an AlgorithmIdentifier */ + + wrap_alg = X509_ALGOR_new(); + if (!wrap_alg) + goto err; + wrap_alg->algorithm = OBJ_nid2obj(wrap_nid); + wrap_alg->parameter = ASN1_TYPE_new(); + if (!wrap_alg->parameter) + goto err; + if (EVP_CIPHER_param_to_asn1(ctx, wrap_alg->parameter) <= 0) + goto err; + if (ASN1_TYPE_get(wrap_alg->parameter) == NID_undef) { + ASN1_TYPE_free(wrap_alg->parameter); + wrap_alg->parameter = NULL; + } + + if (EVP_PKEY_CTX_set_dh_kdf_outlen(pctx, keylen) <= 0) + goto err; + + if (ukm) { + dukmlen = ASN1_STRING_length(ukm); + dukm = BUF_memdup(ASN1_STRING_data(ukm), dukmlen); + if (!dukm) + goto err; + } + + if (EVP_PKEY_CTX_set0_dh_kdf_ukm(pctx, dukm, dukmlen) <= 0) + goto err; + dukm = NULL; + + /* + * Now need to wrap encoding of wrap AlgorithmIdentifier into parameter + * of another AlgorithmIdentifier. + */ + penc = NULL; + penclen = i2d_X509_ALGOR(wrap_alg, &penc); + if (!penc || !penclen) + goto err; + wrap_str = ASN1_STRING_new(); + if (!wrap_str) + goto err; + ASN1_STRING_set0(wrap_str, penc, penclen); + penc = NULL; + X509_ALGOR_set0(talg, OBJ_nid2obj(NID_id_smime_alg_ESDH), + V_ASN1_SEQUENCE, wrap_str); + + rv = 1; + + err: + if (penc) + OPENSSL_free(penc); + if (wrap_alg) + X509_ALGOR_free(wrap_alg); + return rv; +} + +#endif diff --git a/libs/openssl/crypto/dh/dh_asn1.c b/libs/openssl/crypto/dh/dh_asn1.c index e6ee3cfc..f4702143 100644 --- a/libs/openssl/crypto/dh/dh_asn1.c +++ b/libs/openssl/crypto/dh/dh_asn1.c @@ -89,7 +89,101 @@ ASN1_SEQUENCE_cb(DHparams, dh_cb) = { IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DH, DHparams, DHparams) -DH *DHparams_dup(DH *dh) +/* + * Internal only structures for handling X9.42 DH: this gets translated to or + * from a DH structure straight away. + */ + +typedef struct { + ASN1_BIT_STRING *seed; + BIGNUM *counter; +} int_dhvparams; + +typedef struct { + BIGNUM *p; + BIGNUM *q; + BIGNUM *g; + BIGNUM *j; + int_dhvparams *vparams; +} int_dhx942_dh; + +ASN1_SEQUENCE(DHvparams) = { + ASN1_SIMPLE(int_dhvparams, seed, ASN1_BIT_STRING), + ASN1_SIMPLE(int_dhvparams, counter, BIGNUM) +} ASN1_SEQUENCE_END_name(int_dhvparams, DHvparams) + +ASN1_SEQUENCE(DHxparams) = { + ASN1_SIMPLE(int_dhx942_dh, p, BIGNUM), + ASN1_SIMPLE(int_dhx942_dh, g, BIGNUM), + ASN1_SIMPLE(int_dhx942_dh, q, BIGNUM), + ASN1_OPT(int_dhx942_dh, j, BIGNUM), + ASN1_OPT(int_dhx942_dh, vparams, DHvparams), +} ASN1_SEQUENCE_END_name(int_dhx942_dh, DHxparams) + +int_dhx942_dh *d2i_int_dhx(int_dhx942_dh **a, + const unsigned char **pp, long length); +int i2d_int_dhx(const int_dhx942_dh *a, unsigned char **pp); + +IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(int_dhx942_dh, DHxparams, int_dhx) + +/* Application leve function: read in X9.42 DH parameters into DH structure */ + +DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length) { - return ASN1_item_dup(ASN1_ITEM_rptr(DHparams), dh); + int_dhx942_dh *dhx = NULL; + DH *dh = NULL; + dh = DH_new(); + if (!dh) + return NULL; + dhx = d2i_int_dhx(NULL, pp, length); + if (!dhx) { + DH_free(dh); + return NULL; + } + + if (a) { + if (*a) + DH_free(*a); + *a = dh; + } + + dh->p = dhx->p; + dh->q = dhx->q; + dh->g = dhx->g; + dh->j = dhx->j; + + if (dhx->vparams) { + dh->seed = dhx->vparams->seed->data; + dh->seedlen = dhx->vparams->seed->length; + dh->counter = dhx->vparams->counter; + dhx->vparams->seed->data = NULL; + ASN1_BIT_STRING_free(dhx->vparams->seed); + OPENSSL_free(dhx->vparams); + dhx->vparams = NULL; + } + + OPENSSL_free(dhx); + return dh; +} + +int i2d_DHxparams(const DH *dh, unsigned char **pp) +{ + int_dhx942_dh dhx; + int_dhvparams dhv; + ASN1_BIT_STRING bs; + dhx.p = dh->p; + dhx.g = dh->g; + dhx.q = dh->q; + dhx.j = dh->j; + if (dh->counter && dh->seed && dh->seedlen > 0) { + bs.flags = ASN1_STRING_FLAG_BITS_LEFT; + bs.data = dh->seed; + bs.length = dh->seedlen; + dhv.seed = &bs; + dhv.counter = dh->counter; + dhx.vparams = &dhv; + } else + dhx.vparams = NULL; + + return i2d_int_dhx(&dhx, pp); } diff --git a/libs/openssl/crypto/dh/dh_check.c b/libs/openssl/crypto/dh/dh_check.c index c39ed97b..347467c6 100644 --- a/libs/openssl/crypto/dh/dh_check.c +++ b/libs/openssl/crypto/dh/dh_check.c @@ -76,17 +76,43 @@ int DH_check(const DH *dh, int *ret) int ok = 0; BN_CTX *ctx = NULL; BN_ULONG l; - BIGNUM *q = NULL; + BIGNUM *t1 = NULL, *t2 = NULL; *ret = 0; ctx = BN_CTX_new(); if (ctx == NULL) goto err; - q = BN_new(); - if (q == NULL) + BN_CTX_start(ctx); + t1 = BN_CTX_get(ctx); + if (t1 == NULL) + goto err; + t2 = BN_CTX_get(ctx); + if (t2 == NULL) goto err; - if (BN_is_word(dh->g, DH_GENERATOR_2)) { + if (dh->q) { + if (BN_cmp(dh->g, BN_value_one()) <= 0) + *ret |= DH_NOT_SUITABLE_GENERATOR; + else if (BN_cmp(dh->g, dh->p) >= 0) + *ret |= DH_NOT_SUITABLE_GENERATOR; + else { + /* Check g^q == 1 mod p */ + if (!BN_mod_exp(t1, dh->g, dh->q, dh->p, ctx)) + goto err; + if (!BN_is_one(t1)) + *ret |= DH_NOT_SUITABLE_GENERATOR; + } + if (!BN_is_prime_ex(dh->q, BN_prime_checks, ctx, NULL)) + *ret |= DH_CHECK_Q_NOT_PRIME; + /* Check p == 1 mod q i.e. q divides p - 1 */ + if (!BN_div(t1, t2, dh->p, dh->q, ctx)) + goto err; + if (!BN_is_one(t2)) + *ret |= DH_CHECK_INVALID_Q_VALUE; + if (dh->j && BN_cmp(dh->j, t1)) + *ret |= DH_CHECK_INVALID_J_VALUE; + + } else if (BN_is_word(dh->g, DH_GENERATOR_2)) { l = BN_mod_word(dh->p, 24); if (l != 11) *ret |= DH_NOT_SUITABLE_GENERATOR; @@ -107,18 +133,18 @@ int DH_check(const DH *dh, int *ret) if (!BN_is_prime_ex(dh->p, BN_prime_checks, ctx, NULL)) *ret |= DH_CHECK_P_NOT_PRIME; - else { - if (!BN_rshift1(q, dh->p)) + else if (!dh->q) { + if (!BN_rshift1(t1, dh->p)) goto err; - if (!BN_is_prime_ex(q, BN_prime_checks, ctx, NULL)) + if (!BN_is_prime_ex(t1, BN_prime_checks, ctx, NULL)) *ret |= DH_CHECK_P_NOT_SAFE_PRIME; } ok = 1; err: - if (ctx != NULL) + if (ctx != NULL) { + BN_CTX_end(ctx); BN_CTX_free(ctx); - if (q != NULL) - BN_free(q); + } return (ok); } diff --git a/libs/openssl/crypto/dh/dh_err.c b/libs/openssl/crypto/dh/dh_err.c index 6ed5eb78..b890cca8 100644 --- a/libs/openssl/crypto/dh/dh_err.c +++ b/libs/openssl/crypto/dh/dh_err.c @@ -1,6 +1,6 @@ /* crypto/dh/dh_err.c */ /* ==================================================================== - * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. + * Copyright (c) 1999-2013 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -73,6 +73,9 @@ static ERR_STRING_DATA DH_str_functs[] = { {ERR_FUNC(DH_F_COMPUTE_KEY), "COMPUTE_KEY"}, {ERR_FUNC(DH_F_DHPARAMS_PRINT_FP), "DHparams_print_fp"}, {ERR_FUNC(DH_F_DH_BUILTIN_GENPARAMS), "DH_BUILTIN_GENPARAMS"}, + {ERR_FUNC(DH_F_DH_CMS_DECRYPT), "DH_CMS_DECRYPT"}, + {ERR_FUNC(DH_F_DH_CMS_SET_PEERKEY), "DH_CMS_SET_PEERKEY"}, + {ERR_FUNC(DH_F_DH_CMS_SET_SHARED_INFO), "DH_CMS_SET_SHARED_INFO"}, {ERR_FUNC(DH_F_DH_COMPUTE_KEY), "DH_compute_key"}, {ERR_FUNC(DH_F_DH_GENERATE_KEY), "DH_generate_key"}, {ERR_FUNC(DH_F_DH_GENERATE_PARAMETERS_EX), "DH_generate_parameters_ex"}, @@ -96,6 +99,7 @@ static ERR_STRING_DATA DH_str_reasons[] = { {ERR_REASON(DH_R_BN_ERROR), "bn error"}, {ERR_REASON(DH_R_DECODE_ERROR), "decode error"}, {ERR_REASON(DH_R_INVALID_PUBKEY), "invalid public key"}, + {ERR_REASON(DH_R_KDF_PARAMETER_ERROR), "kdf parameter error"}, {ERR_REASON(DH_R_KEYS_NOT_SET), "keys not set"}, {ERR_REASON(DH_R_KEY_SIZE_TOO_SMALL), "key size too small"}, {ERR_REASON(DH_R_MODULUS_TOO_LARGE), "modulus too large"}, @@ -103,6 +107,8 @@ static ERR_STRING_DATA DH_str_reasons[] = { {ERR_REASON(DH_R_NO_PARAMETERS_SET), "no parameters set"}, {ERR_REASON(DH_R_NO_PRIVATE_VALUE), "no private value"}, {ERR_REASON(DH_R_PARAMETER_ENCODING_ERROR), "parameter encoding error"}, + {ERR_REASON(DH_R_PEER_KEY_ERROR), "peer key error"}, + {ERR_REASON(DH_R_SHARED_INFO_ERROR), "shared info error"}, {0, NULL} }; diff --git a/libs/openssl/crypto/dh/dh_kdf.c b/libs/openssl/crypto/dh/dh_kdf.c new file mode 100644 index 00000000..a882cb28 --- /dev/null +++ b/libs/openssl/crypto/dh/dh_kdf.c @@ -0,0 +1,187 @@ +/* crypto/dh/dh_kdf.c */ +/* + * Written by Stephen Henson for the OpenSSL project. + */ +/* ==================================================================== + * Copyright (c) 2013 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include +#include +#include +#include +#include + +/* Key derivation from X9.42/RFC2631 */ + +#define DH_KDF_MAX (1L << 30) + +/* Skip past an ASN1 structure: for OBJECT skip content octets too */ + +static int skip_asn1(unsigned char **pp, long *plen, int exptag) +{ + const unsigned char *q = *pp; + int i, tag, xclass; + long tmplen; + i = ASN1_get_object(&q, &tmplen, &tag, &xclass, *plen); + if (i & 0x80) + return 0; + if (tag != exptag || xclass != V_ASN1_UNIVERSAL) + return 0; + if (tag == V_ASN1_OBJECT) + q += tmplen; + *plen -= q - *pp; + *pp = (unsigned char *)q; + return 1; +} + +/* + * Encode the DH shared info structure, return an offset to the counter value + * so we can update the structure without reencoding it. + */ + +static int dh_sharedinfo_encode(unsigned char **pder, unsigned char **pctr, + ASN1_OBJECT *key_oid, size_t outlen, + const unsigned char *ukm, size_t ukmlen) +{ + unsigned char *p; + int derlen; + long tlen; + /* "magic" value to check offset is sane */ + static unsigned char ctr[4] = { 0xF3, 0x17, 0x22, 0x53 }; + X509_ALGOR atmp; + ASN1_OCTET_STRING ctr_oct, ukm_oct, *pukm_oct; + ASN1_TYPE ctr_atype; + if (ukmlen > DH_KDF_MAX || outlen > DH_KDF_MAX) + return 0; + ctr_oct.data = ctr; + ctr_oct.length = 4; + ctr_oct.flags = 0; + ctr_oct.type = V_ASN1_OCTET_STRING; + ctr_atype.type = V_ASN1_OCTET_STRING; + ctr_atype.value.octet_string = &ctr_oct; + atmp.algorithm = key_oid; + atmp.parameter = &ctr_atype; + if (ukm) { + ukm_oct.type = V_ASN1_OCTET_STRING; + ukm_oct.flags = 0; + ukm_oct.data = (unsigned char *)ukm; + ukm_oct.length = ukmlen; + pukm_oct = &ukm_oct; + } else + pukm_oct = NULL; + derlen = CMS_SharedInfo_encode(pder, &atmp, pukm_oct, outlen); + if (derlen <= 0) + return 0; + p = *pder; + tlen = derlen; + if (!skip_asn1(&p, &tlen, V_ASN1_SEQUENCE)) + return 0; + if (!skip_asn1(&p, &tlen, V_ASN1_SEQUENCE)) + return 0; + if (!skip_asn1(&p, &tlen, V_ASN1_OBJECT)) + return 0; + if (!skip_asn1(&p, &tlen, V_ASN1_OCTET_STRING)) + return 0; + if (CRYPTO_memcmp(p, ctr, 4)) + return 0; + *pctr = p; + return derlen; +} + +int DH_KDF_X9_42(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + ASN1_OBJECT *key_oid, + const unsigned char *ukm, size_t ukmlen, const EVP_MD *md) +{ + EVP_MD_CTX mctx; + int rv = 0; + unsigned int i; + size_t mdlen; + unsigned char *der = NULL, *ctr; + int derlen; + if (Zlen > DH_KDF_MAX) + return 0; + mdlen = EVP_MD_size(md); + EVP_MD_CTX_init(&mctx); + derlen = dh_sharedinfo_encode(&der, &ctr, key_oid, outlen, ukm, ukmlen); + if (derlen == 0) + goto err; + for (i = 1;; i++) { + unsigned char mtmp[EVP_MAX_MD_SIZE]; + EVP_DigestInit_ex(&mctx, md, NULL); + if (!EVP_DigestUpdate(&mctx, Z, Zlen)) + goto err; + ctr[3] = i & 0xFF; + ctr[2] = (i >> 8) & 0xFF; + ctr[1] = (i >> 16) & 0xFF; + ctr[0] = (i >> 24) & 0xFF; + if (!EVP_DigestUpdate(&mctx, der, derlen)) + goto err; + if (outlen >= mdlen) { + if (!EVP_DigestFinal(&mctx, out, NULL)) + goto err; + outlen -= mdlen; + if (outlen == 0) + break; + out += mdlen; + } else { + if (!EVP_DigestFinal(&mctx, mtmp, NULL)) + goto err; + memcpy(out, mtmp, outlen); + OPENSSL_cleanse(mtmp, mdlen); + break; + } + } + rv = 1; + err: + if (der) + OPENSSL_free(der); + EVP_MD_CTX_cleanup(&mctx); + return rv; +} diff --git a/libs/openssl/crypto/dh/dh_key.c b/libs/openssl/crypto/dh/dh_key.c index 9e1d8e58..1d80fb2c 100644 --- a/libs/openssl/crypto/dh/dh_key.c +++ b/libs/openssl/crypto/dh/dh_key.c @@ -94,6 +94,20 @@ int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh) return dh->meth->compute_key(key, pub_key, dh); } +int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh) +{ + int rv, pad; + rv = dh->meth->compute_key(key, pub_key, dh); + if (rv <= 0) + return rv; + pad = BN_num_bytes(dh->p) - rv; + if (pad > 0) { + memmove(key + pad, key, rv); + memset(key, 0, pad); + } + return rv + pad; +} + static DH_METHOD dh_ossl = { "OpenSSL DH Method", generate_key, diff --git a/libs/openssl/crypto/dh/dh_pmeth.c b/libs/openssl/crypto/dh/dh_pmeth.c index 65bc3882..b58e3fa8 100644 --- a/libs/openssl/crypto/dh/dh_pmeth.c +++ b/libs/openssl/crypto/dh/dh_pmeth.c @@ -63,6 +63,10 @@ #include #include #include +#ifndef OPENSSL_NO_DSA +# include +#endif +#include #include "evp_locl.h" /* DH pkey context structure */ @@ -72,9 +76,23 @@ typedef struct { int prime_len; int generator; int use_dsa; + int subprime_len; + /* message digest used for parameter generation */ + const EVP_MD *md; + int rfc5114_param; /* Keygen callback info */ int gentmp[2]; - /* message digest */ + /* KDF (if any) to use for DH */ + char kdf_type; + /* OID to use for KDF */ + ASN1_OBJECT *kdf_oid; + /* Message digest to use for key derivation */ + const EVP_MD *kdf_md; + /* User key material */ + unsigned char *kdf_ukm; + size_t kdf_ukmlen; + /* KDF output length */ + size_t kdf_outlen; } DH_PKEY_CTX; static int pkey_dh_init(EVP_PKEY_CTX *ctx) @@ -84,8 +102,18 @@ static int pkey_dh_init(EVP_PKEY_CTX *ctx) if (!dctx) return 0; dctx->prime_len = 1024; + dctx->subprime_len = -1; dctx->generator = 2; dctx->use_dsa = 0; + dctx->md = NULL; + dctx->rfc5114_param = 0; + + dctx->kdf_type = EVP_PKEY_DH_KDF_NONE; + dctx->kdf_oid = NULL; + dctx->kdf_md = NULL; + dctx->kdf_ukm = NULL; + dctx->kdf_ukmlen = 0; + dctx->kdf_outlen = 0; ctx->data = dctx; ctx->keygen_info = dctx->gentmp; @@ -102,16 +130,35 @@ static int pkey_dh_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src) sctx = src->data; dctx = dst->data; dctx->prime_len = sctx->prime_len; + dctx->subprime_len = sctx->subprime_len; dctx->generator = sctx->generator; dctx->use_dsa = sctx->use_dsa; + dctx->md = sctx->md; + dctx->rfc5114_param = sctx->rfc5114_param; + + dctx->kdf_type = sctx->kdf_type; + dctx->kdf_oid = OBJ_dup(sctx->kdf_oid); + if (!dctx->kdf_oid) + return 0; + dctx->kdf_md = sctx->kdf_md; + if (dctx->kdf_ukm) { + dctx->kdf_ukm = BUF_memdup(sctx->kdf_ukm, sctx->kdf_ukmlen); + dctx->kdf_ukmlen = sctx->kdf_ukmlen; + } + dctx->kdf_outlen = sctx->kdf_outlen; return 1; } static void pkey_dh_cleanup(EVP_PKEY_CTX *ctx) { DH_PKEY_CTX *dctx = ctx->data; - if (dctx) + if (dctx) { + if (dctx->kdf_ukm) + OPENSSL_free(dctx->kdf_ukm); + if (dctx->kdf_oid) + ASN1_OBJECT_free(dctx->kdf_oid); OPENSSL_free(dctx); + } } static int pkey_dh_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) @@ -124,14 +171,89 @@ static int pkey_dh_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) dctx->prime_len = p1; return 1; + case EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN: + if (dctx->use_dsa == 0) + return -2; + dctx->subprime_len = p1; + return 1; + case EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR: + if (dctx->use_dsa) + return -2; dctx->generator = p1; return 1; + case EVP_PKEY_CTRL_DH_PARAMGEN_TYPE: +#ifdef OPENSSL_NO_DSA + if (p1 != 0) + return -2; +#else + if (p1 < 0 || p1 > 2) + return -2; +#endif + dctx->use_dsa = p1; + return 1; + + case EVP_PKEY_CTRL_DH_RFC5114: + if (p1 < 1 || p1 > 3) + return -2; + dctx->rfc5114_param = p1; + return 1; + case EVP_PKEY_CTRL_PEER_KEY: /* Default behaviour is OK */ return 1; + case EVP_PKEY_CTRL_DH_KDF_TYPE: + if (p1 == -2) + return dctx->kdf_type; + if (p1 != EVP_PKEY_DH_KDF_NONE && p1 != EVP_PKEY_DH_KDF_X9_42) + return -2; + dctx->kdf_type = p1; + return 1; + + case EVP_PKEY_CTRL_DH_KDF_MD: + dctx->kdf_md = p2; + return 1; + + case EVP_PKEY_CTRL_GET_DH_KDF_MD: + *(const EVP_MD **)p2 = dctx->kdf_md; + return 1; + + case EVP_PKEY_CTRL_DH_KDF_OUTLEN: + if (p1 <= 0) + return -2; + dctx->kdf_outlen = (size_t)p1; + return 1; + + case EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN: + *(int *)p2 = dctx->kdf_outlen; + return 1; + + case EVP_PKEY_CTRL_DH_KDF_UKM: + if (dctx->kdf_ukm) + OPENSSL_free(dctx->kdf_ukm); + dctx->kdf_ukm = p2; + if (p2) + dctx->kdf_ukmlen = p1; + else + dctx->kdf_ukmlen = 0; + return 1; + + case EVP_PKEY_CTRL_GET_DH_KDF_UKM: + *(unsigned char **)p2 = dctx->kdf_ukm; + return dctx->kdf_ukmlen; + + case EVP_PKEY_CTRL_DH_KDF_OID: + if (dctx->kdf_oid) + ASN1_OBJECT_free(dctx->kdf_oid); + dctx->kdf_oid = p2; + return 1; + + case EVP_PKEY_CTRL_GET_DH_KDF_OID: + *(ASN1_OBJECT **)p2 = dctx->kdf_oid; + return 1; + default: return -2; @@ -146,30 +268,139 @@ static int pkey_dh_ctrl_str(EVP_PKEY_CTX *ctx, len = atoi(value); return EVP_PKEY_CTX_set_dh_paramgen_prime_len(ctx, len); } + if (!strcmp(type, "dh_rfc5114")) { + DH_PKEY_CTX *dctx = ctx->data; + int len; + len = atoi(value); + if (len < 0 || len > 3) + return -2; + dctx->rfc5114_param = len; + return 1; + } if (!strcmp(type, "dh_paramgen_generator")) { int len; len = atoi(value); return EVP_PKEY_CTX_set_dh_paramgen_generator(ctx, len); } + if (!strcmp(type, "dh_paramgen_subprime_len")) { + int len; + len = atoi(value); + return EVP_PKEY_CTX_set_dh_paramgen_subprime_len(ctx, len); + } + if (!strcmp(type, "dh_paramgen_type")) { + int typ; + typ = atoi(value); + return EVP_PKEY_CTX_set_dh_paramgen_type(ctx, typ); + } return -2; } +#ifndef OPENSSL_NO_DSA + +extern int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, + const EVP_MD *evpmd, + const unsigned char *seed_in, size_t seed_len, + unsigned char *seed_out, int *counter_ret, + unsigned long *h_ret, BN_GENCB *cb); + +extern int dsa_builtin_paramgen2(DSA *ret, size_t L, size_t N, + const EVP_MD *evpmd, + const unsigned char *seed_in, + size_t seed_len, int idx, + unsigned char *seed_out, int *counter_ret, + unsigned long *h_ret, BN_GENCB *cb); + +static DSA *dsa_dh_generate(DH_PKEY_CTX *dctx, BN_GENCB *pcb) +{ + DSA *ret; + int rv = 0; + int prime_len = dctx->prime_len; + int subprime_len = dctx->subprime_len; + const EVP_MD *md = dctx->md; + if (dctx->use_dsa > 2) + return NULL; + ret = DSA_new(); + if (!ret) + return NULL; + if (subprime_len == -1) { + if (prime_len >= 2048) + subprime_len = 256; + else + subprime_len = 160; + } + if (md == NULL) { + if (prime_len >= 2048) + md = EVP_sha256(); + else + md = EVP_sha1(); + } + if (dctx->use_dsa == 1) + rv = dsa_builtin_paramgen(ret, prime_len, subprime_len, md, + NULL, 0, NULL, NULL, NULL, pcb); + else if (dctx->use_dsa == 2) + rv = dsa_builtin_paramgen2(ret, prime_len, subprime_len, md, + NULL, 0, -1, NULL, NULL, NULL, pcb); + if (rv <= 0) { + DSA_free(ret); + return NULL; + } + return ret; +} + +#endif + static int pkey_dh_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) { DH *dh = NULL; DH_PKEY_CTX *dctx = ctx->data; BN_GENCB *pcb, cb; int ret; + if (dctx->rfc5114_param) { + switch (dctx->rfc5114_param) { + case 1: + dh = DH_get_1024_160(); + break; + + case 2: + dh = DH_get_2048_224(); + break; + + case 3: + dh = DH_get_2048_256(); + break; + + default: + return -2; + } + EVP_PKEY_assign(pkey, EVP_PKEY_DHX, dh); + return 1; + } + if (ctx->pkey_gencb) { pcb = &cb; evp_pkey_set_cb_translate(pcb, ctx); } else pcb = NULL; +#ifndef OPENSSL_NO_DSA + if (dctx->use_dsa) { + DSA *dsa_dh; + dsa_dh = dsa_dh_generate(dctx, pcb); + if (!dsa_dh) + return 0; + dh = DSA_dup_DH(dsa_dh); + DSA_free(dsa_dh); + if (!dh) + return 0; + EVP_PKEY_assign(pkey, EVP_PKEY_DHX, dh); + return 1; + } +#endif dh = DH_new(); if (!dh) return 0; ret = DH_generate_parameters_ex(dh, dctx->prime_len, dctx->generator, pcb); + if (ret) EVP_PKEY_assign_DH(pkey, dh); else @@ -187,7 +418,7 @@ static int pkey_dh_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) dh = DH_new(); if (!dh) return 0; - EVP_PKEY_assign_DH(pkey, dh); + EVP_PKEY_assign(pkey, ctx->pmeth->pkey_id, dh); /* Note: if error return, pkey is freed by parent routine */ if (!EVP_PKEY_copy_parameters(pkey, ctx->pkey)) return 0; @@ -198,21 +429,96 @@ static int pkey_dh_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen) { int ret; + DH *dh; + DH_PKEY_CTX *dctx = ctx->data; + BIGNUM *dhpub; if (!ctx->pkey || !ctx->peerkey) { DHerr(DH_F_PKEY_DH_DERIVE, DH_R_KEYS_NOT_SET); return 0; } - ret = DH_compute_key(key, ctx->peerkey->pkey.dh->pub_key, - ctx->pkey->pkey.dh); - if (ret < 0) + dh = ctx->pkey->pkey.dh; + dhpub = ctx->peerkey->pkey.dh->pub_key; + if (dctx->kdf_type == EVP_PKEY_DH_KDF_NONE) { + if (key == NULL) { + *keylen = DH_size(dh); + return 1; + } + ret = DH_compute_key(key, dhpub, dh); + if (ret < 0) + return ret; + *keylen = ret; + return 1; + } else if (dctx->kdf_type == EVP_PKEY_DH_KDF_X9_42) { + unsigned char *Z = NULL; + size_t Zlen = 0; + if (!dctx->kdf_outlen || !dctx->kdf_oid) + return 0; + if (key == NULL) { + *keylen = dctx->kdf_outlen; + return 1; + } + if (*keylen != dctx->kdf_outlen) + return 0; + ret = 0; + Zlen = DH_size(dh); + Z = OPENSSL_malloc(Zlen); + if (!Z) { + goto err; + } + if (DH_compute_key_padded(Z, dhpub, dh) <= 0) + goto err; + if (!DH_KDF_X9_42(key, *keylen, Z, Zlen, dctx->kdf_oid, + dctx->kdf_ukm, dctx->kdf_ukmlen, dctx->kdf_md)) + goto err; + *keylen = dctx->kdf_outlen; + ret = 1; + err: + if (Z) { + OPENSSL_cleanse(Z, Zlen); + OPENSSL_free(Z); + } return ret; - *keylen = ret; + } return 1; } const EVP_PKEY_METHOD dh_pkey_meth = { EVP_PKEY_DH, - EVP_PKEY_FLAG_AUTOARGLEN, + 0, + pkey_dh_init, + pkey_dh_copy, + pkey_dh_cleanup, + + 0, + pkey_dh_paramgen, + + 0, + pkey_dh_keygen, + + 0, + 0, + + 0, + 0, + + 0, 0, + + 0, 0, 0, 0, + + 0, 0, + + 0, 0, + + 0, + pkey_dh_derive, + + pkey_dh_ctrl, + pkey_dh_ctrl_str +}; + +const EVP_PKEY_METHOD dhx_pkey_meth = { + EVP_PKEY_DHX, + 0, pkey_dh_init, pkey_dh_copy, pkey_dh_cleanup, diff --git a/libs/openssl/crypto/dh/dh_rfc5114.c b/libs/openssl/crypto/dh/dh_rfc5114.c new file mode 100644 index 00000000..e96e2aa3 --- /dev/null +++ b/libs/openssl/crypto/dh/dh_rfc5114.c @@ -0,0 +1,285 @@ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project + * 2011. + */ +/* ==================================================================== + * Copyright (c) 2011 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#include +#include "cryptlib.h" +#include +#include + +/* DH parameters from RFC5114 */ + +#if BN_BITS2 == 64 +static const BN_ULONG dh1024_160_p[] = { + 0xDF1FB2BC2E4A4371ULL, 0xE68CFDA76D4DA708ULL, 0x45BF37DF365C1A65ULL, + 0xA151AF5F0DC8B4BDULL, 0xFAA31A4FF55BCCC0ULL, 0x4EFFD6FAE5644738ULL, + 0x98488E9C219A7372ULL, 0xACCBDD7D90C4BD70ULL, 0x24975C3CD49B83BFULL, + 0x13ECB4AEA9061123ULL, 0x9838EF1E2EE652C0ULL, 0x6073E28675A23D18ULL, + 0x9A6A9DCA52D23B61ULL, 0x52C99FBCFB06A3C6ULL, 0xDE92DE5EAE5D54ECULL, + 0xB10B8F96A080E01DULL +}; + +static const BN_ULONG dh1024_160_g[] = { + 0x855E6EEB22B3B2E5ULL, 0x858F4DCEF97C2A24ULL, 0x2D779D5918D08BC8ULL, + 0xD662A4D18E73AFA3ULL, 0x1DBF0A0169B6A28AULL, 0xA6A24C087A091F53ULL, + 0x909D0D2263F80A76ULL, 0xD7FBD7D3B9A92EE1ULL, 0x5E91547F9E2749F4ULL, + 0x160217B4B01B886AULL, 0x777E690F5504F213ULL, 0x266FEA1E5C41564BULL, + 0xD6406CFF14266D31ULL, 0xF8104DD258AC507FULL, 0x6765A442EFB99905ULL, + 0xA4D1CBD5C3FD3412ULL +}; + +static const BN_ULONG dh1024_160_q[] = { + 0x64B7CB9D49462353ULL, 0x81A8DF278ABA4E7DULL, 0x00000000F518AA87ULL +}; + +static const BN_ULONG dh2048_224_p[] = { + 0x0AC4DFFE0C10E64FULL, 0xCF9DE5384E71B81CULL, 0x7EF363E2FFA31F71ULL, + 0xE3FB73C16B8E75B9ULL, 0xC9B53DCF4BA80A29ULL, 0x23F10B0E16E79763ULL, + 0xC52172E413042E9BULL, 0xBE60E69CC928B2B9ULL, 0x80CD86A1B9E587E8ULL, + 0x315D75E198C641A4ULL, 0xCDF93ACC44328387ULL, 0x15987D9ADC0A486DULL, + 0x7310F7121FD5A074ULL, 0x278273C7DE31EFDCULL, 0x1602E714415D9330ULL, + 0x81286130BC8985DBULL, 0xB3BF8A3170918836ULL, 0x6A00E0A0B9C49708ULL, + 0xC6BA0B2C8BBC27BEULL, 0xC9F98D11ED34DBF6ULL, 0x7AD5B7D0B6C12207ULL, + 0xD91E8FEF55B7394BULL, 0x9037C9EDEFDA4DF8ULL, 0x6D3F8152AD6AC212ULL, + 0x1DE6B85A1274A0A6ULL, 0xEB3D688A309C180EULL, 0xAF9A3C407BA1DF15ULL, + 0xE6FA141DF95A56DBULL, 0xB54B1597B61D0A75ULL, 0xA20D64E5683B9FD1ULL, + 0xD660FAA79559C51FULL, 0xAD107E1E9123A9D0ULL +}; + +static const BN_ULONG dh2048_224_g[] = { + 0x84B890D3191F2BFAULL, 0x81BC087F2A7065B3ULL, 0x19C418E1F6EC0179ULL, + 0x7B5A0F1C71CFFF4CULL, 0xEDFE72FE9B6AA4BDULL, 0x81E1BCFE94B30269ULL, + 0x566AFBB48D6C0191ULL, 0xB539CCE3409D13CDULL, 0x6AA21E7F5F2FF381ULL, + 0xD9E263E4770589EFULL, 0x10E183EDD19963DDULL, 0xB70A8137150B8EEBULL, + 0x051AE3D428C8F8ACULL, 0xBB77A86F0C1AB15BULL, 0x6E3025E316A330EFULL, + 0x19529A45D6F83456ULL, 0xF180EB34118E98D1ULL, 0xB5F6C6B250717CBEULL, + 0x09939D54DA7460CDULL, 0xE247150422EA1ED4ULL, 0xB8A762D0521BC98AULL, + 0xF4D027275AC1348BULL, 0xC17669101999024AULL, 0xBE5E9001A8D66AD7ULL, + 0xC57DB17C620A8652ULL, 0xAB739D7700C29F52ULL, 0xDD921F01A70C4AFAULL, + 0xA6824A4E10B9A6F0ULL, 0x74866A08CFE4FFE3ULL, 0x6CDEBE7B89998CAFULL, + 0x9DF30B5C8FFDAC50ULL, 0xAC4032EF4F2D9AE3ULL +}; + +static const BN_ULONG dh2048_224_q[] = { + 0xBF389A99B36371EBULL, 0x1F80535A4738CEBCULL, 0xC58D93FE99717710ULL, + 0x00000000801C0D34ULL +}; + +static const BN_ULONG dh2048_256_p[] = { + 0xDB094AE91E1A1597ULL, 0x693877FAD7EF09CAULL, 0x6116D2276E11715FULL, + 0xA4B54330C198AF12ULL, 0x75F26375D7014103ULL, 0xC3A3960A54E710C3ULL, + 0xDED4010ABD0BE621ULL, 0xC0B857F689962856ULL, 0xB3CA3F7971506026ULL, + 0x1CCACB83E6B486F6ULL, 0x67E144E514056425ULL, 0xF6A167B5A41825D9ULL, + 0x3AD8347796524D8EULL, 0xF13C6D9A51BFA4ABULL, 0x2D52526735488A0EULL, + 0xB63ACAE1CAA6B790ULL, 0x4FDB70C581B23F76ULL, 0xBC39A0BF12307F5CULL, + 0xB941F54EB1E59BB8ULL, 0x6C5BFC11D45F9088ULL, 0x22E0B1EF4275BF7BULL, + 0x91F9E6725B4758C0ULL, 0x5A8A9D306BCF67EDULL, 0x209E0C6497517ABDULL, + 0x3BF4296D830E9A7CULL, 0x16C3D91134096FAAULL, 0xFAF7DF4561B2AA30ULL, + 0xE00DF8F1D61957D4ULL, 0x5D2CEED4435E3B00ULL, 0x8CEEF608660DD0F2ULL, + 0xFFBBD19C65195999ULL, 0x87A8E61DB4B6663CULL +}; + +static const BN_ULONG dh2048_256_g[] = { + 0x664B4C0F6CC41659ULL, 0x5E2327CFEF98C582ULL, 0xD647D148D4795451ULL, + 0x2F63078490F00EF8ULL, 0x184B523D1DB246C3ULL, 0xC7891428CDC67EB6ULL, + 0x7FD028370DF92B52ULL, 0xB3353BBB64E0EC37ULL, 0xECD06E1557CD0915ULL, + 0xB7D2BBD2DF016199ULL, 0xC8484B1E052588B9ULL, 0xDB2A3B7313D3FE14ULL, + 0xD052B985D182EA0AULL, 0xA4BD1BFFE83B9C80ULL, 0xDFC967C1FB3F2E55ULL, + 0xB5045AF2767164E1ULL, 0x1D14348F6F2F9193ULL, 0x64E67982428EBC83ULL, + 0x8AC376D282D6ED38ULL, 0x777DE62AAAB8A862ULL, 0xDDF463E5E9EC144BULL, + 0x0196F931C77A57F2ULL, 0xA55AE31341000A65ULL, 0x901228F8C28CBB18ULL, + 0xBC3773BF7E8C6F62ULL, 0xBE3A6C1B0C6B47B1ULL, 0xFF4FED4AAC0BB555ULL, + 0x10DBC15077BE463FULL, 0x07F4793A1A0BA125ULL, 0x4CA7B18F21EF2054ULL, + 0x2E77506660EDBD48ULL, 0x3FB32C9B73134D0BULL +}; + +static const BN_ULONG dh2048_256_q[] = { + 0xA308B0FE64F5FBD3ULL, 0x99B1A47D1EB3750BULL, 0xB447997640129DA2ULL, + 0x8CF83642A709A097ULL +}; + +#elif BN_BITS2 == 32 + +static const BN_ULONG dh1024_160_p[] = { + 0x2E4A4371, 0xDF1FB2BC, 0x6D4DA708, 0xE68CFDA7, 0x365C1A65, 0x45BF37DF, + 0x0DC8B4BD, 0xA151AF5F, 0xF55BCCC0, 0xFAA31A4F, 0xE5644738, 0x4EFFD6FA, + 0x219A7372, 0x98488E9C, 0x90C4BD70, 0xACCBDD7D, 0xD49B83BF, 0x24975C3C, + 0xA9061123, 0x13ECB4AE, 0x2EE652C0, 0x9838EF1E, 0x75A23D18, 0x6073E286, + 0x52D23B61, 0x9A6A9DCA, 0xFB06A3C6, 0x52C99FBC, 0xAE5D54EC, 0xDE92DE5E, + 0xA080E01D, 0xB10B8F96 +}; + +static const BN_ULONG dh1024_160_g[] = { + 0x22B3B2E5, 0x855E6EEB, 0xF97C2A24, 0x858F4DCE, 0x18D08BC8, 0x2D779D59, + 0x8E73AFA3, 0xD662A4D1, 0x69B6A28A, 0x1DBF0A01, 0x7A091F53, 0xA6A24C08, + 0x63F80A76, 0x909D0D22, 0xB9A92EE1, 0xD7FBD7D3, 0x9E2749F4, 0x5E91547F, + 0xB01B886A, 0x160217B4, 0x5504F213, 0x777E690F, 0x5C41564B, 0x266FEA1E, + 0x14266D31, 0xD6406CFF, 0x58AC507F, 0xF8104DD2, 0xEFB99905, 0x6765A442, + 0xC3FD3412, 0xA4D1CBD5 +}; + +static const BN_ULONG dh1024_160_q[] = { + 0x49462353, 0x64B7CB9D, 0x8ABA4E7D, 0x81A8DF27, 0xF518AA87 +}; + +static const BN_ULONG dh2048_224_p[] = { + 0x0C10E64F, 0x0AC4DFFE, 0x4E71B81C, 0xCF9DE538, 0xFFA31F71, 0x7EF363E2, + 0x6B8E75B9, 0xE3FB73C1, 0x4BA80A29, 0xC9B53DCF, 0x16E79763, 0x23F10B0E, + 0x13042E9B, 0xC52172E4, 0xC928B2B9, 0xBE60E69C, 0xB9E587E8, 0x80CD86A1, + 0x98C641A4, 0x315D75E1, 0x44328387, 0xCDF93ACC, 0xDC0A486D, 0x15987D9A, + 0x1FD5A074, 0x7310F712, 0xDE31EFDC, 0x278273C7, 0x415D9330, 0x1602E714, + 0xBC8985DB, 0x81286130, 0x70918836, 0xB3BF8A31, 0xB9C49708, 0x6A00E0A0, + 0x8BBC27BE, 0xC6BA0B2C, 0xED34DBF6, 0xC9F98D11, 0xB6C12207, 0x7AD5B7D0, + 0x55B7394B, 0xD91E8FEF, 0xEFDA4DF8, 0x9037C9ED, 0xAD6AC212, 0x6D3F8152, + 0x1274A0A6, 0x1DE6B85A, 0x309C180E, 0xEB3D688A, 0x7BA1DF15, 0xAF9A3C40, + 0xF95A56DB, 0xE6FA141D, 0xB61D0A75, 0xB54B1597, 0x683B9FD1, 0xA20D64E5, + 0x9559C51F, 0xD660FAA7, 0x9123A9D0, 0xAD107E1E +}; + +static const BN_ULONG dh2048_224_g[] = { + 0x191F2BFA, 0x84B890D3, 0x2A7065B3, 0x81BC087F, 0xF6EC0179, 0x19C418E1, + 0x71CFFF4C, 0x7B5A0F1C, 0x9B6AA4BD, 0xEDFE72FE, 0x94B30269, 0x81E1BCFE, + 0x8D6C0191, 0x566AFBB4, 0x409D13CD, 0xB539CCE3, 0x5F2FF381, 0x6AA21E7F, + 0x770589EF, 0xD9E263E4, 0xD19963DD, 0x10E183ED, 0x150B8EEB, 0xB70A8137, + 0x28C8F8AC, 0x051AE3D4, 0x0C1AB15B, 0xBB77A86F, 0x16A330EF, 0x6E3025E3, + 0xD6F83456, 0x19529A45, 0x118E98D1, 0xF180EB34, 0x50717CBE, 0xB5F6C6B2, + 0xDA7460CD, 0x09939D54, 0x22EA1ED4, 0xE2471504, 0x521BC98A, 0xB8A762D0, + 0x5AC1348B, 0xF4D02727, 0x1999024A, 0xC1766910, 0xA8D66AD7, 0xBE5E9001, + 0x620A8652, 0xC57DB17C, 0x00C29F52, 0xAB739D77, 0xA70C4AFA, 0xDD921F01, + 0x10B9A6F0, 0xA6824A4E, 0xCFE4FFE3, 0x74866A08, 0x89998CAF, 0x6CDEBE7B, + 0x8FFDAC50, 0x9DF30B5C, 0x4F2D9AE3, 0xAC4032EF +}; + +static const BN_ULONG dh2048_224_q[] = { + 0xB36371EB, 0xBF389A99, 0x4738CEBC, 0x1F80535A, 0x99717710, 0xC58D93FE, + 0x801C0D34 +}; + +static const BN_ULONG dh2048_256_p[] = { + 0x1E1A1597, 0xDB094AE9, 0xD7EF09CA, 0x693877FA, 0x6E11715F, 0x6116D227, + 0xC198AF12, 0xA4B54330, 0xD7014103, 0x75F26375, 0x54E710C3, 0xC3A3960A, + 0xBD0BE621, 0xDED4010A, 0x89962856, 0xC0B857F6, 0x71506026, 0xB3CA3F79, + 0xE6B486F6, 0x1CCACB83, 0x14056425, 0x67E144E5, 0xA41825D9, 0xF6A167B5, + 0x96524D8E, 0x3AD83477, 0x51BFA4AB, 0xF13C6D9A, 0x35488A0E, 0x2D525267, + 0xCAA6B790, 0xB63ACAE1, 0x81B23F76, 0x4FDB70C5, 0x12307F5C, 0xBC39A0BF, + 0xB1E59BB8, 0xB941F54E, 0xD45F9088, 0x6C5BFC11, 0x4275BF7B, 0x22E0B1EF, + 0x5B4758C0, 0x91F9E672, 0x6BCF67ED, 0x5A8A9D30, 0x97517ABD, 0x209E0C64, + 0x830E9A7C, 0x3BF4296D, 0x34096FAA, 0x16C3D911, 0x61B2AA30, 0xFAF7DF45, + 0xD61957D4, 0xE00DF8F1, 0x435E3B00, 0x5D2CEED4, 0x660DD0F2, 0x8CEEF608, + 0x65195999, 0xFFBBD19C, 0xB4B6663C, 0x87A8E61D +}; + +static const BN_ULONG dh2048_256_g[] = { + 0x6CC41659, 0x664B4C0F, 0xEF98C582, 0x5E2327CF, 0xD4795451, 0xD647D148, + 0x90F00EF8, 0x2F630784, 0x1DB246C3, 0x184B523D, 0xCDC67EB6, 0xC7891428, + 0x0DF92B52, 0x7FD02837, 0x64E0EC37, 0xB3353BBB, 0x57CD0915, 0xECD06E15, + 0xDF016199, 0xB7D2BBD2, 0x052588B9, 0xC8484B1E, 0x13D3FE14, 0xDB2A3B73, + 0xD182EA0A, 0xD052B985, 0xE83B9C80, 0xA4BD1BFF, 0xFB3F2E55, 0xDFC967C1, + 0x767164E1, 0xB5045AF2, 0x6F2F9193, 0x1D14348F, 0x428EBC83, 0x64E67982, + 0x82D6ED38, 0x8AC376D2, 0xAAB8A862, 0x777DE62A, 0xE9EC144B, 0xDDF463E5, + 0xC77A57F2, 0x0196F931, 0x41000A65, 0xA55AE313, 0xC28CBB18, 0x901228F8, + 0x7E8C6F62, 0xBC3773BF, 0x0C6B47B1, 0xBE3A6C1B, 0xAC0BB555, 0xFF4FED4A, + 0x77BE463F, 0x10DBC150, 0x1A0BA125, 0x07F4793A, 0x21EF2054, 0x4CA7B18F, + 0x60EDBD48, 0x2E775066, 0x73134D0B, 0x3FB32C9B +}; + +static const BN_ULONG dh2048_256_q[] = { + 0x64F5FBD3, 0xA308B0FE, 0x1EB3750B, 0x99B1A47D, 0x40129DA2, 0xB4479976, + 0xA709A097, 0x8CF83642 +}; + +#else +# error "unsupported BN_BITS2" +#endif + +/* Macro to make a BIGNUM from static data */ + +#define make_dh_bn(x) static const BIGNUM _bignum_##x = { (BN_ULONG *) x, \ + sizeof(x)/sizeof(BN_ULONG),\ + sizeof(x)/sizeof(BN_ULONG),\ + 0, BN_FLG_STATIC_DATA } + +/* + * Macro to make a DH structure from BIGNUM data. NB: although just copying + * the BIGNUM static pointers would be more efficient we can't as they get + * wiped using BN_clear_free() when DH_free() is called. + */ + +#define make_dh(x) \ +DH * DH_get_##x(void) \ + { \ + DH *dh; \ + make_dh_bn(dh##x##_p); \ + make_dh_bn(dh##x##_q); \ + make_dh_bn(dh##x##_g); \ + dh = DH_new(); \ + if (!dh) \ + return NULL; \ + dh->p = BN_dup(&_bignum_dh##x##_p); \ + dh->g = BN_dup(&_bignum_dh##x##_g); \ + dh->q = BN_dup(&_bignum_dh##x##_q); \ + if (!dh->p || !dh->q || !dh->g) \ + { \ + DH_free(dh); \ + return NULL; \ + } \ + return dh; \ + } + +make_dh(1024_160) +make_dh(2048_224) +make_dh(2048_256) diff --git a/libs/openssl/crypto/dsa/dsa.h b/libs/openssl/crypto/dsa/dsa.h index a2f0ee78..545358fd 100644 --- a/libs/openssl/crypto/dsa/dsa.h +++ b/libs/openssl/crypto/dsa/dsa.h @@ -287,6 +287,7 @@ void ERR_load_DSA_strings(void); # define DSA_F_DO_DSA_PRINT 104 # define DSA_F_DSAPARAMS_PRINT 100 # define DSA_F_DSAPARAMS_PRINT_FP 101 +# define DSA_F_DSA_BUILTIN_PARAMGEN2 126 # define DSA_F_DSA_DO_SIGN 112 # define DSA_F_DSA_DO_VERIFY 113 # define DSA_F_DSA_GENERATE_KEY 124 @@ -316,12 +317,14 @@ void ERR_load_DSA_strings(void); # define DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 100 # define DSA_R_DECODE_ERROR 104 # define DSA_R_INVALID_DIGEST_TYPE 106 +# define DSA_R_INVALID_PARAMETERS 112 # define DSA_R_MISSING_PARAMETERS 101 # define DSA_R_MODULUS_TOO_LARGE 103 # define DSA_R_NEED_NEW_SETUP_VALUES 110 # define DSA_R_NON_FIPS_DSA_METHOD 111 # define DSA_R_NO_PARAMETERS_SET 107 # define DSA_R_PARAMETER_ENCODING_ERROR 105 +# define DSA_R_Q_NOT_PRIME 113 #ifdef __cplusplus } diff --git a/libs/openssl/crypto/dsa/dsa_ameth.c b/libs/openssl/crypto/dsa/dsa_ameth.c index a2840eae..c40e1777 100644 --- a/libs/openssl/crypto/dsa/dsa_ameth.c +++ b/libs/openssl/crypto/dsa/dsa_ameth.c @@ -318,6 +318,7 @@ static int dsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey) dplen = i2d_ASN1_INTEGER(prkey, &dp); ASN1_STRING_clear_free(prkey); + prkey = NULL; if (!PKCS8_pkey_set0(p8, OBJ_nid2obj(NID_dsa), 0, V_ASN1_SEQUENCE, params, dp, dplen)) @@ -601,10 +602,14 @@ static int dsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2) X509_ALGOR_set0(alg2, OBJ_nid2obj(snid), V_ASN1_UNDEF, 0); } return 1; + + case ASN1_PKEY_CTRL_CMS_RI_TYPE: + *(int *)arg2 = CMS_RECIPINFO_NONE; + return 1; #endif case ASN1_PKEY_CTRL_DEFAULT_MD_NID: - *(int *)arg2 = NID_sha1; + *(int *)arg2 = NID_sha256; return 2; default: diff --git a/libs/openssl/crypto/dsa/dsa_err.c b/libs/openssl/crypto/dsa/dsa_err.c index 746f5dfe..f5ddc66b 100644 --- a/libs/openssl/crypto/dsa/dsa_err.c +++ b/libs/openssl/crypto/dsa/dsa_err.c @@ -1,6 +1,6 @@ /* crypto/dsa/dsa_err.c */ /* ==================================================================== - * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. + * Copyright (c) 1999-2013 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -74,6 +74,7 @@ static ERR_STRING_DATA DSA_str_functs[] = { {ERR_FUNC(DSA_F_DO_DSA_PRINT), "DO_DSA_PRINT"}, {ERR_FUNC(DSA_F_DSAPARAMS_PRINT), "DSAparams_print"}, {ERR_FUNC(DSA_F_DSAPARAMS_PRINT_FP), "DSAparams_print_fp"}, + {ERR_FUNC(DSA_F_DSA_BUILTIN_PARAMGEN2), "DSA_BUILTIN_PARAMGEN2"}, {ERR_FUNC(DSA_F_DSA_DO_SIGN), "DSA_do_sign"}, {ERR_FUNC(DSA_F_DSA_DO_VERIFY), "DSA_do_verify"}, {ERR_FUNC(DSA_F_DSA_GENERATE_KEY), "DSA_generate_key"}, @@ -107,12 +108,14 @@ static ERR_STRING_DATA DSA_str_reasons[] = { "data too large for key size"}, {ERR_REASON(DSA_R_DECODE_ERROR), "decode error"}, {ERR_REASON(DSA_R_INVALID_DIGEST_TYPE), "invalid digest type"}, + {ERR_REASON(DSA_R_INVALID_PARAMETERS), "invalid parameters"}, {ERR_REASON(DSA_R_MISSING_PARAMETERS), "missing parameters"}, {ERR_REASON(DSA_R_MODULUS_TOO_LARGE), "modulus too large"}, {ERR_REASON(DSA_R_NEED_NEW_SETUP_VALUES), "need new setup values"}, {ERR_REASON(DSA_R_NON_FIPS_DSA_METHOD), "non fips dsa method"}, {ERR_REASON(DSA_R_NO_PARAMETERS_SET), "no parameters set"}, {ERR_REASON(DSA_R_PARAMETER_ENCODING_ERROR), "parameter encoding error"}, + {ERR_REASON(DSA_R_Q_NOT_PRIME), "q not prime"}, {0, NULL} }; diff --git a/libs/openssl/crypto/dsa/dsa_gen.c b/libs/openssl/crypto/dsa/dsa_gen.c index d686ab0a..15f3bb4f 100644 --- a/libs/openssl/crypto/dsa/dsa_gen.c +++ b/libs/openssl/crypto/dsa/dsa_gen.c @@ -86,6 +86,8 @@ # include "dsa_locl.h" # ifdef OPENSSL_FIPS +/* Workaround bug in prototype */ +# define fips_dsa_builtin_paramgen2 fips_dsa_paramgen_bad # include # endif @@ -112,16 +114,8 @@ int DSA_generate_parameters_ex(DSA *ret, int bits, } # endif else { - const EVP_MD *evpmd; - size_t qbits = bits >= 2048 ? 256 : 160; - - if (bits >= 2048) { - qbits = 256; - evpmd = EVP_sha256(); - } else { - qbits = 160; - evpmd = EVP_sha1(); - } + const EVP_MD *evpmd = bits >= 2048 ? EVP_sha256() : EVP_sha1(); + size_t qbits = EVP_MD_size(evpmd) * 8; return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len, NULL, counter_ret, @@ -174,13 +168,14 @@ int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, if (seed_in != NULL) memcpy(seed, seed_in, seed_len); - if ((ctx = BN_CTX_new()) == NULL) + if ((mont = BN_MONT_CTX_new()) == NULL) goto err; - if ((mont = BN_MONT_CTX_new()) == NULL) + if ((ctx = BN_CTX_new()) == NULL) goto err; BN_CTX_start(ctx); + r0 = BN_CTX_get(ctx); g = BN_CTX_get(ctx); W = BN_CTX_get(ctx); @@ -201,7 +196,7 @@ int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, if (!BN_GENCB_call(cb, 0, m++)) goto err; - if (!seed_len) { + if (!seed_len || !seed_in) { if (RAND_pseudo_bytes(seed, qsize) < 0) goto err; seed_is_random = 1; @@ -383,4 +378,371 @@ int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, BN_MONT_CTX_free(mont); return ok; } + +# ifdef OPENSSL_FIPS +# undef fips_dsa_builtin_paramgen2 +extern int fips_dsa_builtin_paramgen2(DSA *ret, size_t L, size_t N, + const EVP_MD *evpmd, + const unsigned char *seed_in, + size_t seed_len, int idx, + unsigned char *seed_out, + int *counter_ret, unsigned long *h_ret, + BN_GENCB *cb); +# endif + +/* + * This is a parameter generation algorithm for the DSA2 algorithm as + * described in FIPS 186-3. + */ + +int dsa_builtin_paramgen2(DSA *ret, size_t L, size_t N, + const EVP_MD *evpmd, const unsigned char *seed_in, + size_t seed_len, int idx, unsigned char *seed_out, + int *counter_ret, unsigned long *h_ret, + BN_GENCB *cb) +{ + int ok = -1; + unsigned char *seed = NULL, *seed_tmp = NULL; + unsigned char md[EVP_MAX_MD_SIZE]; + int mdsize; + BIGNUM *r0, *W, *X, *c, *test; + BIGNUM *g = NULL, *q = NULL, *p = NULL; + BN_MONT_CTX *mont = NULL; + int i, k, n = 0, m = 0, qsize = N >> 3; + int counter = 0; + int r = 0; + BN_CTX *ctx = NULL; + EVP_MD_CTX mctx; + unsigned int h = 2; + +# ifdef OPENSSL_FIPS + + if (FIPS_mode()) + return fips_dsa_builtin_paramgen2(ret, L, N, evpmd, + seed_in, seed_len, idx, + seed_out, counter_ret, h_ret, cb); +# endif + + EVP_MD_CTX_init(&mctx); + + if (evpmd == NULL) { + if (N == 160) + evpmd = EVP_sha1(); + else if (N == 224) + evpmd = EVP_sha224(); + else + evpmd = EVP_sha256(); + } + + mdsize = EVP_MD_size(evpmd); + /* If unverificable g generation only don't need seed */ + if (!ret->p || !ret->q || idx >= 0) { + if (seed_len == 0) + seed_len = mdsize; + + seed = OPENSSL_malloc(seed_len); + + if (seed_out) + seed_tmp = seed_out; + else + seed_tmp = OPENSSL_malloc(seed_len); + + if (!seed || !seed_tmp) + goto err; + + if (seed_in) + memcpy(seed, seed_in, seed_len); + + } + + if ((ctx = BN_CTX_new()) == NULL) + goto err; + + if ((mont = BN_MONT_CTX_new()) == NULL) + goto err; + + BN_CTX_start(ctx); + r0 = BN_CTX_get(ctx); + g = BN_CTX_get(ctx); + W = BN_CTX_get(ctx); + X = BN_CTX_get(ctx); + c = BN_CTX_get(ctx); + test = BN_CTX_get(ctx); + + /* if p, q already supplied generate g only */ + if (ret->p && ret->q) { + p = ret->p; + q = ret->q; + if (idx >= 0) + memcpy(seed_tmp, seed, seed_len); + goto g_only; + } else { + p = BN_CTX_get(ctx); + q = BN_CTX_get(ctx); + } + + if (!BN_lshift(test, BN_value_one(), L - 1)) + goto err; + for (;;) { + for (;;) { /* find q */ + unsigned char *pmd; + /* step 1 */ + if (!BN_GENCB_call(cb, 0, m++)) + goto err; + + if (!seed_in) { + if (RAND_pseudo_bytes(seed, seed_len) < 0) + goto err; + } + /* step 2 */ + if (!EVP_Digest(seed, seed_len, md, NULL, evpmd, NULL)) + goto err; + /* Take least significant bits of md */ + if (mdsize > qsize) + pmd = md + mdsize - qsize; + else + pmd = md; + + if (mdsize < qsize) + memset(md + mdsize, 0, qsize - mdsize); + + /* step 3 */ + pmd[0] |= 0x80; + pmd[qsize - 1] |= 0x01; + if (!BN_bin2bn(pmd, qsize, q)) + goto err; + + /* step 4 */ + r = BN_is_prime_fasttest_ex(q, DSS_prime_checks, ctx, + seed_in ? 1 : 0, cb); + if (r > 0) + break; + if (r != 0) + goto err; + /* Provided seed didn't produce a prime: error */ + if (seed_in) { + ok = 0; + DSAerr(DSA_F_DSA_BUILTIN_PARAMGEN2, DSA_R_Q_NOT_PRIME); + goto err; + } + + /* do a callback call */ + /* step 5 */ + } + /* Copy seed to seed_out before we mess with it */ + if (seed_out) + memcpy(seed_out, seed, seed_len); + + if (!BN_GENCB_call(cb, 2, 0)) + goto err; + if (!BN_GENCB_call(cb, 3, 0)) + goto err; + + /* step 6 */ + counter = 0; + /* "offset = 1" */ + + n = (L - 1) / (mdsize << 3); + + for (;;) { + if ((counter != 0) && !BN_GENCB_call(cb, 0, counter)) + goto err; + + /* step 7 */ + BN_zero(W); + /* now 'buf' contains "SEED + offset - 1" */ + for (k = 0; k <= n; k++) { + /* + * obtain "SEED + offset + k" by incrementing: + */ + for (i = seed_len - 1; i >= 0; i--) { + seed[i]++; + if (seed[i] != 0) + break; + } + + if (!EVP_Digest(seed, seed_len, md, NULL, evpmd, NULL)) + goto err; + + /* step 8 */ + if (!BN_bin2bn(md, mdsize, r0)) + goto err; + if (!BN_lshift(r0, r0, (mdsize << 3) * k)) + goto err; + if (!BN_add(W, W, r0)) + goto err; + } + + /* more of step 8 */ + if (!BN_mask_bits(W, L - 1)) + goto err; + if (!BN_copy(X, W)) + goto err; + if (!BN_add(X, X, test)) + goto err; + + /* step 9 */ + if (!BN_lshift1(r0, q)) + goto err; + if (!BN_mod(c, X, r0, ctx)) + goto err; + if (!BN_sub(r0, c, BN_value_one())) + goto err; + if (!BN_sub(p, X, r0)) + goto err; + + /* step 10 */ + if (BN_cmp(p, test) >= 0) { + /* step 11 */ + r = BN_is_prime_fasttest_ex(p, DSS_prime_checks, ctx, 1, cb); + if (r > 0) + goto end; /* found it */ + if (r != 0) + goto err; + } + + /* step 13 */ + counter++; + /* "offset = offset + n + 1" */ + + /* step 14 */ + if (counter >= (int)(4 * L)) + break; + } + if (seed_in) { + ok = 0; + DSAerr(DSA_F_DSA_BUILTIN_PARAMGEN2, DSA_R_INVALID_PARAMETERS); + goto err; + } + } + end: + if (!BN_GENCB_call(cb, 2, 1)) + goto err; + + g_only: + + /* We now need to generate g */ + /* Set r0=(p-1)/q */ + if (!BN_sub(test, p, BN_value_one())) + goto err; + if (!BN_div(r0, NULL, test, q, ctx)) + goto err; + + if (idx < 0) { + if (!BN_set_word(test, h)) + goto err; + } else + h = 1; + if (!BN_MONT_CTX_set(mont, p, ctx)) + goto err; + + for (;;) { + static const unsigned char ggen[4] = { 0x67, 0x67, 0x65, 0x6e }; + if (idx >= 0) { + md[0] = idx & 0xff; + md[1] = (h >> 8) & 0xff; + md[2] = h & 0xff; + if (!EVP_DigestInit_ex(&mctx, evpmd, NULL)) + goto err; + if (!EVP_DigestUpdate(&mctx, seed_tmp, seed_len)) + goto err; + if (!EVP_DigestUpdate(&mctx, ggen, sizeof(ggen))) + goto err; + if (!EVP_DigestUpdate(&mctx, md, 3)) + goto err; + if (!EVP_DigestFinal_ex(&mctx, md, NULL)) + goto err; + if (!BN_bin2bn(md, mdsize, test)) + goto err; + } + /* g=test^r0%p */ + if (!BN_mod_exp_mont(g, test, r0, p, ctx, mont)) + goto err; + if (!BN_is_one(g)) + break; + if (idx < 0 && !BN_add(test, test, BN_value_one())) + goto err; + h++; + if (idx >= 0 && h > 0xffff) + goto err; + } + + if (!BN_GENCB_call(cb, 3, 1)) + goto err; + + ok = 1; + err: + if (ok == 1) { + if (p != ret->p) { + if (ret->p) + BN_free(ret->p); + ret->p = BN_dup(p); + } + if (q != ret->q) { + if (ret->q) + BN_free(ret->q); + ret->q = BN_dup(q); + } + if (ret->g) + BN_free(ret->g); + ret->g = BN_dup(g); + if (ret->p == NULL || ret->q == NULL || ret->g == NULL) { + ok = -1; + goto err; + } + if (counter_ret != NULL) + *counter_ret = counter; + if (h_ret != NULL) + *h_ret = h; + } + if (seed) + OPENSSL_free(seed); + if (seed_out != seed_tmp) + OPENSSL_free(seed_tmp); + if (ctx) { + BN_CTX_end(ctx); + BN_CTX_free(ctx); + } + if (mont != NULL) + BN_MONT_CTX_free(mont); + EVP_MD_CTX_cleanup(&mctx); + return ok; +} + +int dsa_paramgen_check_g(DSA *dsa) +{ + BN_CTX *ctx; + BIGNUM *tmp; + BN_MONT_CTX *mont = NULL; + int rv = -1; + ctx = BN_CTX_new(); + if (!ctx) + return -1; + BN_CTX_start(ctx); + if (BN_cmp(dsa->g, BN_value_one()) <= 0) + return 0; + if (BN_cmp(dsa->g, dsa->p) >= 0) + return 0; + tmp = BN_CTX_get(ctx); + if (!tmp) + goto err; + if ((mont = BN_MONT_CTX_new()) == NULL) + goto err; + if (!BN_MONT_CTX_set(mont, dsa->p, ctx)) + goto err; + /* Work out g^q mod p */ + if (!BN_mod_exp_mont(tmp, dsa->g, dsa->q, dsa->p, ctx, mont)) + goto err; + if (!BN_cmp(tmp, BN_value_one())) + rv = 1; + else + rv = 0; + err: + BN_CTX_end(ctx); + if (mont) + BN_MONT_CTX_free(mont); + BN_CTX_free(ctx); + return rv; + +} #endif diff --git a/libs/openssl/crypto/dsa/dsa_locl.h b/libs/openssl/crypto/dsa/dsa_locl.h index f32ee964..9c23c3ef 100644 --- a/libs/openssl/crypto/dsa/dsa_locl.h +++ b/libs/openssl/crypto/dsa/dsa_locl.h @@ -59,3 +59,11 @@ int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, size_t seed_len, unsigned char *seed_out, int *counter_ret, unsigned long *h_ret, BN_GENCB *cb); + +int dsa_builtin_paramgen2(DSA *ret, size_t L, size_t N, + const EVP_MD *evpmd, const unsigned char *seed_in, + size_t seed_len, int idx, unsigned char *seed_out, + int *counter_ret, unsigned long *h_ret, + BN_GENCB *cb); + +int dsa_paramgen_check_g(DSA *dsa); diff --git a/libs/openssl/crypto/dsa/dsa_ossl.c b/libs/openssl/crypto/dsa/dsa_ossl.c index 6edb26d9..f0ec8faa 100644 --- a/libs/openssl/crypto/dsa/dsa_ossl.c +++ b/libs/openssl/crypto/dsa/dsa_ossl.c @@ -398,11 +398,7 @@ static int dsa_do_verify(const unsigned char *dgst, int dgst_len, ret = (BN_ucmp(&u1, sig->r) == 0); err: - /* - * XXX: surely this is wrong - if ret is 0, it just didn't verify; there - * is no error in BN. Test should be ret == -1 (Ben) - */ - if (ret != 1) + if (ret < 0) DSAerr(DSA_F_DSA_DO_VERIFY, ERR_R_BN_LIB); if (ctx != NULL) BN_CTX_free(ctx); diff --git a/libs/openssl/crypto/dsa/dsa_pmeth.c b/libs/openssl/crypto/dsa/dsa_pmeth.c index 0d480f6a..42b8bb08 100644 --- a/libs/openssl/crypto/dsa/dsa_pmeth.c +++ b/libs/openssl/crypto/dsa/dsa_pmeth.c @@ -197,6 +197,10 @@ static int pkey_dsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) dctx->md = p2; return 1; + case EVP_PKEY_CTRL_GET_MD: + *(const EVP_MD **)p2 = dctx->md; + return 1; + case EVP_PKEY_CTRL_DIGESTINIT: case EVP_PKEY_CTRL_PKCS7_SIGN: case EVP_PKEY_CTRL_CMS_SIGN: diff --git a/libs/openssl/crypto/dso/dso_win32.c b/libs/openssl/crypto/dso/dso_win32.c index 54c943db..c65234e9 100644 --- a/libs/openssl/crypto/dso/dso_win32.c +++ b/libs/openssl/crypto/dso/dso_win32.c @@ -633,7 +633,6 @@ static int win32_pathbyaddr(void *addr, char *path, int sz) CREATETOOLHELP32SNAPSHOT create_snap; CLOSETOOLHELP32SNAPSHOT close_snap; MODULE32 module_first, module_next; - int len; if (addr == NULL) { union { @@ -694,25 +693,29 @@ static int win32_pathbyaddr(void *addr, char *path, int sz) return WideCharToMultiByte(CP_ACP, 0, me32.szExePath, -1, path, sz, NULL, NULL); # else - len = (int)wcslen(me32.szExePath); - if (sz <= 0) - return len + 1; - if (len >= sz) - len = sz - 1; - for (i = 0; i < len; i++) - path[i] = (char)me32.szExePath[i]; - path[len++] = 0; - return len; + { + int i, len = (int)wcslen(me32.szExePath); + if (sz <= 0) + return len + 1; + if (len >= sz) + len = sz - 1; + for (i = 0; i < len; i++) + path[i] = (char)me32.szExePath[i]; + path[len++] = 0; + return len; + } # endif # else - len = (int)strlen(me32.szExePath); - if (sz <= 0) - return len + 1; - if (len >= sz) - len = sz - 1; - memcpy(path, me32.szExePath, len); - path[len++] = 0; - return len; + { + int len = (int)strlen(me32.szExePath); + if (sz <= 0) + return len + 1; + if (len >= sz) + len = sz - 1; + memcpy(path, me32.szExePath, len); + path[len++] = 0; + return len; + } # endif } } while ((*module_next) (hModuleSnap, &me32)); diff --git a/libs/openssl/crypto/ebcdic.c b/libs/openssl/crypto/ebcdic.c index 4b7652c0..fd6df92b 100644 --- a/libs/openssl/crypto/ebcdic.c +++ b/libs/openssl/crypto/ebcdic.c @@ -3,7 +3,7 @@ #ifndef CHARSET_EBCDIC # include -# if defined(PEDANTIC) || defined(__DECC) || defined(OPENSSL_SYS_MACOSX) +# if defined(PEDANTIC) || defined(__DECC) || defined(OPENSSL_SYS_MACOSX) || defined(__clang__) static void *dummy = &dummy; # endif diff --git a/libs/openssl/crypto/ec/ec.h b/libs/openssl/crypto/ec/ec.h index c4e7aea9..81e6faf6 100644 --- a/libs/openssl/crypto/ec/ec.h +++ b/libs/openssl/crypto/ec/ec.h @@ -106,7 +106,7 @@ typedef enum { /** the point is encoded as z||x, where the octet z specifies * which solution of the quadratic equation y is */ POINT_CONVERSION_COMPRESSED = 2, - /** the point is encoded as z||x||y, where z is the octet 0x02 */ + /** the point is encoded as z||x||y, where z is the octet 0x04 */ POINT_CONVERSION_UNCOMPRESSED = 4, /** the point is encoded as z||x||y, where the octet z specifies * which solution of the quadratic equation y is */ @@ -240,6 +240,12 @@ int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, */ const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); +/** Returns the montgomery data for order(Generator) + * \param group EC_GROUP object + * \return the currently used generator (possibly NULL). +*/ +BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); + /** Gets the order of a EC_GROUP * \param group EC_GROUP object * \param order BIGNUM to which the order is copied @@ -404,6 +410,9 @@ typedef struct { */ size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); +const char *EC_curve_nid2nist(int nid); +int EC_curve_nist2nid(const char *name); + /********************************************************************/ /* EC_POINT functions */ /********************************************************************/ @@ -986,10 +995,78 @@ int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); # endif # define EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_PARAMGEN, \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, NULL) +# define EVP_PKEY_CTX_set_ec_param_enc(ctx, flag) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ + EVP_PKEY_CTRL_EC_PARAM_ENC, flag, NULL) + +# define EVP_PKEY_CTX_set_ecdh_cofactor_mode(ctx, flag) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_ECDH_COFACTOR, flag, NULL) + +# define EVP_PKEY_CTX_get_ecdh_cofactor_mode(ctx) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_ECDH_COFACTOR, -2, NULL) + +# define EVP_PKEY_CTX_set_ecdh_kdf_type(ctx, kdf) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_TYPE, kdf, NULL) + +# define EVP_PKEY_CTX_get_ecdh_kdf_type(ctx) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_TYPE, -2, NULL) + +# define EVP_PKEY_CTX_set_ecdh_kdf_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_MD, 0, (void *)md) + +# define EVP_PKEY_CTX_get_ecdh_kdf_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_EC_KDF_MD, 0, (void *)pmd) + +# define EVP_PKEY_CTX_set_ecdh_kdf_outlen(ctx, len) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_OUTLEN, len, NULL) + +# define EVP_PKEY_CTX_get_ecdh_kdf_outlen(ctx, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN, 0, (void *)plen) + +# define EVP_PKEY_CTX_set0_ecdh_kdf_ukm(ctx, p, plen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_EC_KDF_UKM, plen, (void *)p) + +# define EVP_PKEY_CTX_get0_ecdh_kdf_ukm(ctx, p) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ + EVP_PKEY_OP_DERIVE, \ + EVP_PKEY_CTRL_GET_EC_KDF_UKM, 0, (void *)p) + # define EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID (EVP_PKEY_ALG_CTRL + 1) +# define EVP_PKEY_CTRL_EC_PARAM_ENC (EVP_PKEY_ALG_CTRL + 2) +# define EVP_PKEY_CTRL_EC_ECDH_COFACTOR (EVP_PKEY_ALG_CTRL + 3) +# define EVP_PKEY_CTRL_EC_KDF_TYPE (EVP_PKEY_ALG_CTRL + 4) +# define EVP_PKEY_CTRL_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 5) +# define EVP_PKEY_CTRL_GET_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 6) +# define EVP_PKEY_CTRL_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 7) +# define EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 8) +# define EVP_PKEY_CTRL_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_GET_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 10) +/* KDF types */ +# define EVP_PKEY_ECDH_KDF_NONE 1 +# define EVP_PKEY_ECDH_KDF_X9_62 2 /* BEGIN ERROR CODES */ /* @@ -1007,6 +1084,8 @@ void ERR_load_EC_strings(void); # define EC_F_D2I_ECPKPARAMETERS 145 # define EC_F_D2I_ECPRIVATEKEY 146 # define EC_F_DO_EC_KEY_PRINT 221 +# define EC_F_ECDH_CMS_DECRYPT 238 +# define EC_F_ECDH_CMS_SET_SHARED_INFO 239 # define EC_F_ECKEY_PARAM2TYPE 223 # define EC_F_ECKEY_PARAM_DECODE 212 # define EC_F_ECKEY_PRIV_DECODE 213 @@ -1018,6 +1097,12 @@ void ERR_load_EC_strings(void); # define EC_F_ECPARAMETERS_PRINT_FP 148 # define EC_F_ECPKPARAMETERS_PRINT 149 # define EC_F_ECPKPARAMETERS_PRINT_FP 150 +# define EC_F_ECP_NISTZ256_GET_AFFINE 240 +# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 +# define EC_F_ECP_NISTZ256_POINTS_MUL 241 +# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 +# define EC_F_ECP_NISTZ256_SET_WORDS 245 +# define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 # define EC_F_ECP_NIST_MOD_192 203 # define EC_F_ECP_NIST_MOD_224 204 # define EC_F_ECP_NIST_MOD_256 205 @@ -1157,6 +1242,7 @@ void ERR_load_EC_strings(void); # define EC_R_INVALID_COMPRESSED_POINT 110 # define EC_R_INVALID_COMPRESSION_BIT 109 # define EC_R_INVALID_CURVE 141 +# define EC_R_INVALID_DIGEST 151 # define EC_R_INVALID_DIGEST_TYPE 138 # define EC_R_INVALID_ENCODING 102 # define EC_R_INVALID_FIELD 103 @@ -1165,6 +1251,7 @@ void ERR_load_EC_strings(void); # define EC_R_INVALID_PENTANOMIAL_BASIS 132 # define EC_R_INVALID_PRIVATE_KEY 123 # define EC_R_INVALID_TRINOMIAL_BASIS 137 +# define EC_R_KDF_PARAMETER_ERROR 148 # define EC_R_KEYS_NOT_SET 140 # define EC_R_MISSING_PARAMETERS 124 # define EC_R_MISSING_PRIVATE_KEY 125 @@ -1175,9 +1262,11 @@ void ERR_load_EC_strings(void); # define EC_R_NO_FIELD_MOD 133 # define EC_R_NO_PARAMETERS_SET 139 # define EC_R_PASSED_NULL_PARAMETER 134 +# define EC_R_PEER_KEY_ERROR 149 # define EC_R_PKPARAMETERS2GROUP_FAILURE 127 # define EC_R_POINT_AT_INFINITY 106 # define EC_R_POINT_IS_NOT_ON_CURVE 107 +# define EC_R_SHARED_INFO_ERROR 150 # define EC_R_SLOT_FULL 108 # define EC_R_UNDEFINED_GENERATOR 113 # define EC_R_UNDEFINED_ORDER 128 diff --git a/libs/openssl/crypto/ec/ec_ameth.c b/libs/openssl/crypto/ec/ec_ameth.c index 5cefb5ad..83e208cf 100644 --- a/libs/openssl/crypto/ec/ec_ameth.c +++ b/libs/openssl/crypto/ec/ec_ameth.c @@ -64,8 +64,12 @@ #ifndef OPENSSL_NO_CMS # include #endif +#include #include "asn1_locl.h" +static int ecdh_cms_decrypt(CMS_RecipientInfo *ri); +static int ecdh_cms_encrypt(CMS_RecipientInfo *ri); + static int eckey_param2type(int *pptype, void **ppval, EC_KEY *ec_key) { const EC_GROUP *group; @@ -580,10 +584,21 @@ static int ec_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2) X509_ALGOR_set0(alg2, OBJ_nid2obj(snid), V_ASN1_UNDEF, 0); } return 1; + + case ASN1_PKEY_CTRL_CMS_ENVELOPE: + if (arg1 == 1) + return ecdh_cms_decrypt(arg2); + else if (arg1 == 0) + return ecdh_cms_encrypt(arg2); + return -2; + + case ASN1_PKEY_CTRL_CMS_RI_TYPE: + *(int *)arg2 = CMS_RECIPINFO_AGREE; + return 1; #endif case ASN1_PKEY_CTRL_DEFAULT_MD_NID: - *(int *)arg2 = NID_sha1; + *(int *)arg2 = NID_sha256; return 2; default: @@ -625,3 +640,326 @@ const EVP_PKEY_ASN1_METHOD eckey_asn1_meth = { old_ec_priv_decode, old_ec_priv_encode }; + +#ifndef OPENSSL_NO_CMS + +static int ecdh_cms_set_peerkey(EVP_PKEY_CTX *pctx, + X509_ALGOR *alg, ASN1_BIT_STRING *pubkey) +{ + ASN1_OBJECT *aoid; + int atype; + void *aval; + int rv = 0; + EVP_PKEY *pkpeer = NULL; + EC_KEY *ecpeer = NULL; + const unsigned char *p; + int plen; + X509_ALGOR_get0(&aoid, &atype, &aval, alg); + if (OBJ_obj2nid(aoid) != NID_X9_62_id_ecPublicKey) + goto err; + /* If absent parameters get group from main key */ + if (atype == V_ASN1_UNDEF || atype == V_ASN1_NULL) { + const EC_GROUP *grp; + EVP_PKEY *pk; + pk = EVP_PKEY_CTX_get0_pkey(pctx); + if (!pk) + goto err; + grp = EC_KEY_get0_group(pk->pkey.ec); + ecpeer = EC_KEY_new(); + if (!ecpeer) + goto err; + if (!EC_KEY_set_group(ecpeer, grp)) + goto err; + } else { + ecpeer = eckey_type2param(atype, aval); + if (!ecpeer) + goto err; + } + /* We have parameters now set public key */ + plen = ASN1_STRING_length(pubkey); + p = ASN1_STRING_data(pubkey); + if (!p || !plen) + goto err; + if (!o2i_ECPublicKey(&ecpeer, &p, plen)) + goto err; + pkpeer = EVP_PKEY_new(); + if (!pkpeer) + goto err; + EVP_PKEY_set1_EC_KEY(pkpeer, ecpeer); + if (EVP_PKEY_derive_set_peer(pctx, pkpeer) > 0) + rv = 1; + err: + if (ecpeer) + EC_KEY_free(ecpeer); + if (pkpeer) + EVP_PKEY_free(pkpeer); + return rv; +} + +/* Set KDF parameters based on KDF NID */ +static int ecdh_cms_set_kdf_param(EVP_PKEY_CTX *pctx, int eckdf_nid) +{ + int kdf_nid, kdfmd_nid, cofactor; + const EVP_MD *kdf_md; + if (eckdf_nid == NID_undef) + return 0; + + /* Lookup KDF type, cofactor mode and digest */ + if (!OBJ_find_sigid_algs(eckdf_nid, &kdfmd_nid, &kdf_nid)) + return 0; + + if (kdf_nid == NID_dh_std_kdf) + cofactor = 0; + else if (kdf_nid == NID_dh_cofactor_kdf) + cofactor = 1; + else + return 0; + + if (EVP_PKEY_CTX_set_ecdh_cofactor_mode(pctx, cofactor) <= 0) + return 0; + + if (EVP_PKEY_CTX_set_ecdh_kdf_type(pctx, EVP_PKEY_ECDH_KDF_X9_62) <= 0) + return 0; + + kdf_md = EVP_get_digestbynid(kdfmd_nid); + if (!kdf_md) + return 0; + + if (EVP_PKEY_CTX_set_ecdh_kdf_md(pctx, kdf_md) <= 0) + return 0; + return 1; +} + +static int ecdh_cms_set_shared_info(EVP_PKEY_CTX *pctx, CMS_RecipientInfo *ri) +{ + int rv = 0; + + X509_ALGOR *alg, *kekalg = NULL; + ASN1_OCTET_STRING *ukm; + const unsigned char *p; + unsigned char *der = NULL; + int plen, keylen; + const EVP_CIPHER *kekcipher; + EVP_CIPHER_CTX *kekctx; + + if (!CMS_RecipientInfo_kari_get0_alg(ri, &alg, &ukm)) + return 0; + + if (!ecdh_cms_set_kdf_param(pctx, OBJ_obj2nid(alg->algorithm))) { + ECerr(EC_F_ECDH_CMS_SET_SHARED_INFO, EC_R_KDF_PARAMETER_ERROR); + return 0; + } + + if (alg->parameter->type != V_ASN1_SEQUENCE) + return 0; + + p = alg->parameter->value.sequence->data; + plen = alg->parameter->value.sequence->length; + kekalg = d2i_X509_ALGOR(NULL, &p, plen); + if (!kekalg) + goto err; + kekctx = CMS_RecipientInfo_kari_get0_ctx(ri); + if (!kekctx) + goto err; + kekcipher = EVP_get_cipherbyobj(kekalg->algorithm); + if (!kekcipher || EVP_CIPHER_mode(kekcipher) != EVP_CIPH_WRAP_MODE) + goto err; + if (!EVP_EncryptInit_ex(kekctx, kekcipher, NULL, NULL, NULL)) + goto err; + if (EVP_CIPHER_asn1_to_param(kekctx, kekalg->parameter) <= 0) + goto err; + + keylen = EVP_CIPHER_CTX_key_length(kekctx); + if (EVP_PKEY_CTX_set_ecdh_kdf_outlen(pctx, keylen) <= 0) + goto err; + + plen = CMS_SharedInfo_encode(&der, kekalg, ukm, keylen); + + if (!plen) + goto err; + + if (EVP_PKEY_CTX_set0_ecdh_kdf_ukm(pctx, der, plen) <= 0) + goto err; + der = NULL; + + rv = 1; + err: + if (kekalg) + X509_ALGOR_free(kekalg); + if (der) + OPENSSL_free(der); + return rv; +} + +static int ecdh_cms_decrypt(CMS_RecipientInfo *ri) +{ + EVP_PKEY_CTX *pctx; + pctx = CMS_RecipientInfo_get0_pkey_ctx(ri); + if (!pctx) + return 0; + /* See if we need to set peer key */ + if (!EVP_PKEY_CTX_get0_peerkey(pctx)) { + X509_ALGOR *alg; + ASN1_BIT_STRING *pubkey; + if (!CMS_RecipientInfo_kari_get0_orig_id(ri, &alg, &pubkey, + NULL, NULL, NULL)) + return 0; + if (!alg || !pubkey) + return 0; + if (!ecdh_cms_set_peerkey(pctx, alg, pubkey)) { + ECerr(EC_F_ECDH_CMS_DECRYPT, EC_R_PEER_KEY_ERROR); + return 0; + } + } + /* Set ECDH derivation parameters and initialise unwrap context */ + if (!ecdh_cms_set_shared_info(pctx, ri)) { + ECerr(EC_F_ECDH_CMS_DECRYPT, EC_R_SHARED_INFO_ERROR); + return 0; + } + return 1; +} + +static int ecdh_cms_encrypt(CMS_RecipientInfo *ri) +{ + EVP_PKEY_CTX *pctx; + EVP_PKEY *pkey; + EVP_CIPHER_CTX *ctx; + int keylen; + X509_ALGOR *talg, *wrap_alg = NULL; + ASN1_OBJECT *aoid; + ASN1_BIT_STRING *pubkey; + ASN1_STRING *wrap_str; + ASN1_OCTET_STRING *ukm; + unsigned char *penc = NULL; + int penclen; + int rv = 0; + int ecdh_nid, kdf_type, kdf_nid, wrap_nid; + const EVP_MD *kdf_md; + pctx = CMS_RecipientInfo_get0_pkey_ctx(ri); + if (!pctx) + return 0; + /* Get ephemeral key */ + pkey = EVP_PKEY_CTX_get0_pkey(pctx); + if (!CMS_RecipientInfo_kari_get0_orig_id(ri, &talg, &pubkey, + NULL, NULL, NULL)) + goto err; + X509_ALGOR_get0(&aoid, NULL, NULL, talg); + /* Is everything uninitialised? */ + if (aoid == OBJ_nid2obj(NID_undef)) { + + EC_KEY *eckey = pkey->pkey.ec; + /* Set the key */ + unsigned char *p; + + penclen = i2o_ECPublicKey(eckey, NULL); + if (penclen <= 0) + goto err; + penc = OPENSSL_malloc(penclen); + if (!penc) + goto err; + p = penc; + penclen = i2o_ECPublicKey(eckey, &p); + if (penclen <= 0) + goto err; + ASN1_STRING_set0(pubkey, penc, penclen); + pubkey->flags &= ~(ASN1_STRING_FLAG_BITS_LEFT | 0x07); + pubkey->flags |= ASN1_STRING_FLAG_BITS_LEFT; + + penc = NULL; + X509_ALGOR_set0(talg, OBJ_nid2obj(NID_X9_62_id_ecPublicKey), + V_ASN1_UNDEF, NULL); + } + + /* See if custom paraneters set */ + kdf_type = EVP_PKEY_CTX_get_ecdh_kdf_type(pctx); + if (kdf_type <= 0) + goto err; + if (!EVP_PKEY_CTX_get_ecdh_kdf_md(pctx, &kdf_md)) + goto err; + ecdh_nid = EVP_PKEY_CTX_get_ecdh_cofactor_mode(pctx); + if (ecdh_nid < 0) + goto err; + else if (ecdh_nid == 0) + ecdh_nid = NID_dh_std_kdf; + else if (ecdh_nid == 1) + ecdh_nid = NID_dh_cofactor_kdf; + + if (kdf_type == EVP_PKEY_ECDH_KDF_NONE) { + kdf_type = EVP_PKEY_ECDH_KDF_X9_62; + if (EVP_PKEY_CTX_set_ecdh_kdf_type(pctx, kdf_type) <= 0) + goto err; + } else + /* Uknown KDF */ + goto err; + if (kdf_md == NULL) { + /* Fixme later for better MD */ + kdf_md = EVP_sha1(); + if (EVP_PKEY_CTX_set_ecdh_kdf_md(pctx, kdf_md) <= 0) + goto err; + } + + if (!CMS_RecipientInfo_kari_get0_alg(ri, &talg, &ukm)) + goto err; + + /* Lookup NID for KDF+cofactor+digest */ + + if (!OBJ_find_sigid_by_algs(&kdf_nid, EVP_MD_type(kdf_md), ecdh_nid)) + goto err; + /* Get wrap NID */ + ctx = CMS_RecipientInfo_kari_get0_ctx(ri); + wrap_nid = EVP_CIPHER_CTX_type(ctx); + keylen = EVP_CIPHER_CTX_key_length(ctx); + + /* Package wrap algorithm in an AlgorithmIdentifier */ + + wrap_alg = X509_ALGOR_new(); + if (!wrap_alg) + goto err; + wrap_alg->algorithm = OBJ_nid2obj(wrap_nid); + wrap_alg->parameter = ASN1_TYPE_new(); + if (!wrap_alg->parameter) + goto err; + if (EVP_CIPHER_param_to_asn1(ctx, wrap_alg->parameter) <= 0) + goto err; + if (ASN1_TYPE_get(wrap_alg->parameter) == NID_undef) { + ASN1_TYPE_free(wrap_alg->parameter); + wrap_alg->parameter = NULL; + } + + if (EVP_PKEY_CTX_set_ecdh_kdf_outlen(pctx, keylen) <= 0) + goto err; + + penclen = CMS_SharedInfo_encode(&penc, wrap_alg, ukm, keylen); + + if (!penclen) + goto err; + + if (EVP_PKEY_CTX_set0_ecdh_kdf_ukm(pctx, penc, penclen) <= 0) + goto err; + penc = NULL; + + /* + * Now need to wrap encoding of wrap AlgorithmIdentifier into parameter + * of another AlgorithmIdentifier. + */ + penclen = i2d_X509_ALGOR(wrap_alg, &penc); + if (!penc || !penclen) + goto err; + wrap_str = ASN1_STRING_new(); + if (!wrap_str) + goto err; + ASN1_STRING_set0(wrap_str, penc, penclen); + penc = NULL; + X509_ALGOR_set0(talg, OBJ_nid2obj(kdf_nid), V_ASN1_SEQUENCE, wrap_str); + + rv = 1; + + err: + if (penc) + OPENSSL_free(penc); + if (wrap_alg) + X509_ALGOR_free(wrap_alg); + return rv; +} + +#endif diff --git a/libs/openssl/crypto/ec/ec_asn1.c b/libs/openssl/crypto/ec/ec_asn1.c index 4ad84949..33abf61f 100644 --- a/libs/openssl/crypto/ec/ec_asn1.c +++ b/libs/openssl/crypto/ec/ec_asn1.c @@ -970,8 +970,9 @@ EC_GROUP *d2i_ECPKParameters(EC_GROUP **a, const unsigned char **in, long len) { EC_GROUP *group = NULL; ECPKPARAMETERS *params = NULL; + const unsigned char *p = *in; - if ((params = d2i_ECPKPARAMETERS(NULL, in, len)) == NULL) { + if ((params = d2i_ECPKPARAMETERS(NULL, &p, len)) == NULL) { ECerr(EC_F_D2I_ECPKPARAMETERS, EC_R_D2I_ECPKPARAMETERS_FAILURE); ECPKPARAMETERS_free(params); return NULL; @@ -989,6 +990,7 @@ EC_GROUP *d2i_ECPKParameters(EC_GROUP **a, const unsigned char **in, long len) *a = group; ECPKPARAMETERS_free(params); + *in = p; return (group); } @@ -1016,8 +1018,9 @@ EC_KEY *d2i_ECPrivateKey(EC_KEY **a, const unsigned char **in, long len) int ok = 0; EC_KEY *ret = NULL; EC_PRIVATEKEY *priv_key = NULL; + const unsigned char *p = *in; - if ((priv_key = d2i_EC_PRIVATEKEY(NULL, in, len)) == NULL) { + if ((priv_key = d2i_EC_PRIVATEKEY(NULL, &p, len)) == NULL) { ECerr(EC_F_D2I_ECPRIVATEKEY, ERR_R_EC_LIB); return NULL; } @@ -1096,6 +1099,7 @@ EC_KEY *d2i_ECPrivateKey(EC_KEY **a, const unsigned char **in, long len) if (a) *a = ret; + *in = p; ok = 1; err: if (!ok) { diff --git a/libs/openssl/crypto/ec/ec_curve.c b/libs/openssl/crypto/ec/ec_curve.c index e4bcb5dd..6dbe9d82 100644 --- a/libs/openssl/crypto/ec/ec_curve.c +++ b/libs/openssl/crypto/ec/ec_curve.c @@ -69,11 +69,16 @@ * */ +#include #include "ec_lcl.h" #include #include #include +#ifdef OPENSSL_FIPS +# include +#endif + typedef struct { int field_type, /* either NID_X9_62_prime_field or * NID_X9_62_characteristic_two_field */ @@ -2282,6 +2287,554 @@ static const struct { #endif +/* + * These curves were added by Annie Yousar + * For the definition of RFC 5639 curves see + * http://www.ietf.org/rfc/rfc5639.txt These curves are generated verifiable + * at random, nevertheless the seed is omitted as parameter because the + * generation mechanism is different from those defined in ANSI X9.62. + */ + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 20 * 6]; +} _EC_brainpoolP160r1 = { + { + NID_X9_62_prime_field, 0, 20, 1 + }, + { + /* no seed */ + /* p */ + 0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0xC7, 0xAD, + 0x95, 0xB3, 0xD8, 0x13, 0x95, 0x15, 0x62, 0x0F, + /* a */ + 0x34, 0x0E, 0x7B, 0xE2, 0xA2, 0x80, 0xEB, 0x74, 0xE2, 0xBE, 0x61, 0xBA, + 0xDA, 0x74, 0x5D, 0x97, 0xE8, 0xF7, 0xC3, 0x00, + /* b */ + 0x1E, 0x58, 0x9A, 0x85, 0x95, 0x42, 0x34, 0x12, 0x13, 0x4F, 0xAA, 0x2D, + 0xBD, 0xEC, 0x95, 0xC8, 0xD8, 0x67, 0x5E, 0x58, + /* x */ + 0xBE, 0xD5, 0xAF, 0x16, 0xEA, 0x3F, 0x6A, 0x4F, 0x62, 0x93, 0x8C, 0x46, + 0x31, 0xEB, 0x5A, 0xF7, 0xBD, 0xBC, 0xDB, 0xC3, + /* y */ + 0x16, 0x67, 0xCB, 0x47, 0x7A, 0x1A, 0x8E, 0xC3, 0x38, 0xF9, 0x47, 0x41, + 0x66, 0x9C, 0x97, 0x63, 0x16, 0xDA, 0x63, 0x21, + /* order */ + 0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0x59, 0x91, + 0xD4, 0x50, 0x29, 0x40, 0x9E, 0x60, 0xFC, 0x09 + } +}; + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 20 * 6]; +} _EC_brainpoolP160t1 = { + { + NID_X9_62_prime_field, 0, 20, 1 + }, + { + /* no seed */ + /* p */ + 0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0xC7, 0xAD, + 0x95, 0xB3, 0xD8, 0x13, 0x95, 0x15, 0x62, 0x0F, + /* a */ + 0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0xC7, 0xAD, + 0x95, 0xB3, 0xD8, 0x13, 0x95, 0x15, 0x62, 0x0C, + /* b */ + 0x7A, 0x55, 0x6B, 0x6D, 0xAE, 0x53, 0x5B, 0x7B, 0x51, 0xED, 0x2C, 0x4D, + 0x7D, 0xAA, 0x7A, 0x0B, 0x5C, 0x55, 0xF3, 0x80, + /* x */ + 0xB1, 0x99, 0xB1, 0x3B, 0x9B, 0x34, 0xEF, 0xC1, 0x39, 0x7E, 0x64, 0xBA, + 0xEB, 0x05, 0xAC, 0xC2, 0x65, 0xFF, 0x23, 0x78, + /* y */ + 0xAD, 0xD6, 0x71, 0x8B, 0x7C, 0x7C, 0x19, 0x61, 0xF0, 0x99, 0x1B, 0x84, + 0x24, 0x43, 0x77, 0x21, 0x52, 0xC9, 0xE0, 0xAD, + /* order */ + 0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0x59, 0x91, + 0xD4, 0x50, 0x29, 0x40, 0x9E, 0x60, 0xFC, 0x09 + } +}; + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 24 * 6]; +} _EC_brainpoolP192r1 = { + { + NID_X9_62_prime_field, 0, 24, 1 + }, + { + /* no seed */ + /* p */ + 0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x30, + 0x93, 0xD1, 0x8D, 0xB7, 0x8F, 0xCE, 0x47, 0x6D, 0xE1, 0xA8, 0x62, 0x97, + /* a */ + 0x6A, 0x91, 0x17, 0x40, 0x76, 0xB1, 0xE0, 0xE1, 0x9C, 0x39, 0xC0, 0x31, + 0xFE, 0x86, 0x85, 0xC1, 0xCA, 0xE0, 0x40, 0xE5, 0xC6, 0x9A, 0x28, 0xEF, + /* b */ + 0x46, 0x9A, 0x28, 0xEF, 0x7C, 0x28, 0xCC, 0xA3, 0xDC, 0x72, 0x1D, 0x04, + 0x4F, 0x44, 0x96, 0xBC, 0xCA, 0x7E, 0xF4, 0x14, 0x6F, 0xBF, 0x25, 0xC9, + /* x */ + 0xC0, 0xA0, 0x64, 0x7E, 0xAA, 0xB6, 0xA4, 0x87, 0x53, 0xB0, 0x33, 0xC5, + 0x6C, 0xB0, 0xF0, 0x90, 0x0A, 0x2F, 0x5C, 0x48, 0x53, 0x37, 0x5F, 0xD6, + /* y */ + 0x14, 0xB6, 0x90, 0x86, 0x6A, 0xBD, 0x5B, 0xB8, 0x8B, 0x5F, 0x48, 0x28, + 0xC1, 0x49, 0x00, 0x02, 0xE6, 0x77, 0x3F, 0xA2, 0xFA, 0x29, 0x9B, 0x8F, + /* order */ + 0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x2F, + 0x9E, 0x9E, 0x91, 0x6B, 0x5B, 0xE8, 0xF1, 0x02, 0x9A, 0xC4, 0xAC, 0xC1 + } +}; + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 24 * 6]; +} _EC_brainpoolP192t1 = { + { + NID_X9_62_prime_field, 0, 24, 1 + }, + { + /* no seed */ + /* p */ + 0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x30, + 0x93, 0xD1, 0x8D, 0xB7, 0x8F, 0xCE, 0x47, 0x6D, 0xE1, 0xA8, 0x62, 0x97, + /* a */ + 0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x30, + 0x93, 0xD1, 0x8D, 0xB7, 0x8F, 0xCE, 0x47, 0x6D, 0xE1, 0xA8, 0x62, 0x94, + /* b */ + 0x13, 0xD5, 0x6F, 0xFA, 0xEC, 0x78, 0x68, 0x1E, 0x68, 0xF9, 0xDE, 0xB4, + 0x3B, 0x35, 0xBE, 0xC2, 0xFB, 0x68, 0x54, 0x2E, 0x27, 0x89, 0x7B, 0x79, + /* x */ + 0x3A, 0xE9, 0xE5, 0x8C, 0x82, 0xF6, 0x3C, 0x30, 0x28, 0x2E, 0x1F, 0xE7, + 0xBB, 0xF4, 0x3F, 0xA7, 0x2C, 0x44, 0x6A, 0xF6, 0xF4, 0x61, 0x81, 0x29, + /* y */ + 0x09, 0x7E, 0x2C, 0x56, 0x67, 0xC2, 0x22, 0x3A, 0x90, 0x2A, 0xB5, 0xCA, + 0x44, 0x9D, 0x00, 0x84, 0xB7, 0xE5, 0xB3, 0xDE, 0x7C, 0xCC, 0x01, 0xC9, + /* order */ + 0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x2F, + 0x9E, 0x9E, 0x91, 0x6B, 0x5B, 0xE8, 0xF1, 0x02, 0x9A, 0xC4, 0xAC, 0xC1 + } +}; + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 28 * 6]; +} _EC_brainpoolP224r1 = { + { + NID_X9_62_prime_field, 0, 28, 1 + }, + { + /* no seed */ + /* p */ + 0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25, + 0x75, 0xD1, 0xD7, 0x87, 0xB0, 0x9F, 0x07, 0x57, 0x97, 0xDA, 0x89, 0xF5, + 0x7E, 0xC8, 0xC0, 0xFF, + /* a */ + 0x68, 0xA5, 0xE6, 0x2C, 0xA9, 0xCE, 0x6C, 0x1C, 0x29, 0x98, 0x03, 0xA6, + 0xC1, 0x53, 0x0B, 0x51, 0x4E, 0x18, 0x2A, 0xD8, 0xB0, 0x04, 0x2A, 0x59, + 0xCA, 0xD2, 0x9F, 0x43, + /* b */ + 0x25, 0x80, 0xF6, 0x3C, 0xCF, 0xE4, 0x41, 0x38, 0x87, 0x07, 0x13, 0xB1, + 0xA9, 0x23, 0x69, 0xE3, 0x3E, 0x21, 0x35, 0xD2, 0x66, 0xDB, 0xB3, 0x72, + 0x38, 0x6C, 0x40, 0x0B, + /* x */ + 0x0D, 0x90, 0x29, 0xAD, 0x2C, 0x7E, 0x5C, 0xF4, 0x34, 0x08, 0x23, 0xB2, + 0xA8, 0x7D, 0xC6, 0x8C, 0x9E, 0x4C, 0xE3, 0x17, 0x4C, 0x1E, 0x6E, 0xFD, + 0xEE, 0x12, 0xC0, 0x7D, + /* y */ + 0x58, 0xAA, 0x56, 0xF7, 0x72, 0xC0, 0x72, 0x6F, 0x24, 0xC6, 0xB8, 0x9E, + 0x4E, 0xCD, 0xAC, 0x24, 0x35, 0x4B, 0x9E, 0x99, 0xCA, 0xA3, 0xF6, 0xD3, + 0x76, 0x14, 0x02, 0xCD, + /* order */ + 0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25, + 0x75, 0xD0, 0xFB, 0x98, 0xD1, 0x16, 0xBC, 0x4B, 0x6D, 0xDE, 0xBC, 0xA3, + 0xA5, 0xA7, 0x93, 0x9F + } +}; + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 28 * 6]; +} _EC_brainpoolP224t1 = { + { + NID_X9_62_prime_field, 0, 28, 1 + }, + { + /* no seed */ + /* p */ + 0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25, + 0x75, 0xD1, 0xD7, 0x87, 0xB0, 0x9F, 0x07, 0x57, 0x97, 0xDA, 0x89, 0xF5, + 0x7E, 0xC8, 0xC0, 0xFF, + /* a */ + 0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25, + 0x75, 0xD1, 0xD7, 0x87, 0xB0, 0x9F, 0x07, 0x57, 0x97, 0xDA, 0x89, 0xF5, + 0x7E, 0xC8, 0xC0, 0xFC, + /* b */ + 0x4B, 0x33, 0x7D, 0x93, 0x41, 0x04, 0xCD, 0x7B, 0xEF, 0x27, 0x1B, 0xF6, + 0x0C, 0xED, 0x1E, 0xD2, 0x0D, 0xA1, 0x4C, 0x08, 0xB3, 0xBB, 0x64, 0xF1, + 0x8A, 0x60, 0x88, 0x8D, + /* x */ + 0x6A, 0xB1, 0xE3, 0x44, 0xCE, 0x25, 0xFF, 0x38, 0x96, 0x42, 0x4E, 0x7F, + 0xFE, 0x14, 0x76, 0x2E, 0xCB, 0x49, 0xF8, 0x92, 0x8A, 0xC0, 0xC7, 0x60, + 0x29, 0xB4, 0xD5, 0x80, + /* y */ + 0x03, 0x74, 0xE9, 0xF5, 0x14, 0x3E, 0x56, 0x8C, 0xD2, 0x3F, 0x3F, 0x4D, + 0x7C, 0x0D, 0x4B, 0x1E, 0x41, 0xC8, 0xCC, 0x0D, 0x1C, 0x6A, 0xBD, 0x5F, + 0x1A, 0x46, 0xDB, 0x4C, + /* order */ + 0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25, + 0x75, 0xD0, 0xFB, 0x98, 0xD1, 0x16, 0xBC, 0x4B, 0x6D, 0xDE, 0xBC, 0xA3, + 0xA5, 0xA7, 0x93, 0x9F + } +}; + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 32 * 6]; +} _EC_brainpoolP256r1 = { + { + NID_X9_62_prime_field, 0, 32, 1 + }, + { + /* no seed */ + /* p */ + 0xA9, 0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90, + 0x9D, 0x83, 0x8D, 0x72, 0x6E, 0x3B, 0xF6, 0x23, 0xD5, 0x26, 0x20, 0x28, + 0x20, 0x13, 0x48, 0x1D, 0x1F, 0x6E, 0x53, 0x77, + /* a */ + 0x7D, 0x5A, 0x09, 0x75, 0xFC, 0x2C, 0x30, 0x57, 0xEE, 0xF6, 0x75, 0x30, + 0x41, 0x7A, 0xFF, 0xE7, 0xFB, 0x80, 0x55, 0xC1, 0x26, 0xDC, 0x5C, 0x6C, + 0xE9, 0x4A, 0x4B, 0x44, 0xF3, 0x30, 0xB5, 0xD9, + /* b */ + 0x26, 0xDC, 0x5C, 0x6C, 0xE9, 0x4A, 0x4B, 0x44, 0xF3, 0x30, 0xB5, 0xD9, + 0xBB, 0xD7, 0x7C, 0xBF, 0x95, 0x84, 0x16, 0x29, 0x5C, 0xF7, 0xE1, 0xCE, + 0x6B, 0xCC, 0xDC, 0x18, 0xFF, 0x8C, 0x07, 0xB6, + /* x */ + 0x8B, 0xD2, 0xAE, 0xB9, 0xCB, 0x7E, 0x57, 0xCB, 0x2C, 0x4B, 0x48, 0x2F, + 0xFC, 0x81, 0xB7, 0xAF, 0xB9, 0xDE, 0x27, 0xE1, 0xE3, 0xBD, 0x23, 0xC2, + 0x3A, 0x44, 0x53, 0xBD, 0x9A, 0xCE, 0x32, 0x62, + /* y */ + 0x54, 0x7E, 0xF8, 0x35, 0xC3, 0xDA, 0xC4, 0xFD, 0x97, 0xF8, 0x46, 0x1A, + 0x14, 0x61, 0x1D, 0xC9, 0xC2, 0x77, 0x45, 0x13, 0x2D, 0xED, 0x8E, 0x54, + 0x5C, 0x1D, 0x54, 0xC7, 0x2F, 0x04, 0x69, 0x97, + /* order */ + 0xA9, 0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90, + 0x9D, 0x83, 0x8D, 0x71, 0x8C, 0x39, 0x7A, 0xA3, 0xB5, 0x61, 0xA6, 0xF7, + 0x90, 0x1E, 0x0E, 0x82, 0x97, 0x48, 0x56, 0xA7 + } +}; + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 32 * 6]; +} _EC_brainpoolP256t1 = { + { + NID_X9_62_prime_field, 0, 32, 1 + }, + { + /* no seed */ + /* p */ + 0xA9, 0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90, + 0x9D, 0x83, 0x8D, 0x72, 0x6E, 0x3B, 0xF6, 0x23, 0xD5, 0x26, 0x20, 0x28, + 0x20, 0x13, 0x48, 0x1D, 0x1F, 0x6E, 0x53, 0x77, + /* a */ + 0xA9, 0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90, + 0x9D, 0x83, 0x8D, 0x72, 0x6E, 0x3B, 0xF6, 0x23, 0xD5, 0x26, 0x20, 0x28, + 0x20, 0x13, 0x48, 0x1D, 0x1F, 0x6E, 0x53, 0x74, + /* b */ + 0x66, 0x2C, 0x61, 0xC4, 0x30, 0xD8, 0x4E, 0xA4, 0xFE, 0x66, 0xA7, 0x73, + 0x3D, 0x0B, 0x76, 0xB7, 0xBF, 0x93, 0xEB, 0xC4, 0xAF, 0x2F, 0x49, 0x25, + 0x6A, 0xE5, 0x81, 0x01, 0xFE, 0xE9, 0x2B, 0x04, + /* x */ + 0xA3, 0xE8, 0xEB, 0x3C, 0xC1, 0xCF, 0xE7, 0xB7, 0x73, 0x22, 0x13, 0xB2, + 0x3A, 0x65, 0x61, 0x49, 0xAF, 0xA1, 0x42, 0xC4, 0x7A, 0xAF, 0xBC, 0x2B, + 0x79, 0xA1, 0x91, 0x56, 0x2E, 0x13, 0x05, 0xF4, + /* y */ + 0x2D, 0x99, 0x6C, 0x82, 0x34, 0x39, 0xC5, 0x6D, 0x7F, 0x7B, 0x22, 0xE1, + 0x46, 0x44, 0x41, 0x7E, 0x69, 0xBC, 0xB6, 0xDE, 0x39, 0xD0, 0x27, 0x00, + 0x1D, 0xAB, 0xE8, 0xF3, 0x5B, 0x25, 0xC9, 0xBE, + /* order */ + 0xA9, 0xFB, 0x57, 0xDB, 0xA1, 0xEE, 0xA9, 0xBC, 0x3E, 0x66, 0x0A, 0x90, + 0x9D, 0x83, 0x8D, 0x71, 0x8C, 0x39, 0x7A, 0xA3, 0xB5, 0x61, 0xA6, 0xF7, + 0x90, 0x1E, 0x0E, 0x82, 0x97, 0x48, 0x56, 0xA7 + } +}; + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 40 * 6]; +} _EC_brainpoolP320r1 = { + { + NID_X9_62_prime_field, 0, 40, 1 + }, + { + /* no seed */ + /* p */ + 0xD3, 0x5E, 0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C, 0x78, 0x5E, + 0xD2, 0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA6, 0xF6, 0xF4, 0x0D, 0xEF, + 0x4F, 0x92, 0xB9, 0xEC, 0x78, 0x93, 0xEC, 0x28, 0xFC, 0xD4, 0x12, 0xB1, + 0xF1, 0xB3, 0x2E, 0x27, + /* a */ + 0x3E, 0xE3, 0x0B, 0x56, 0x8F, 0xBA, 0xB0, 0xF8, 0x83, 0xCC, 0xEB, 0xD4, + 0x6D, 0x3F, 0x3B, 0xB8, 0xA2, 0xA7, 0x35, 0x13, 0xF5, 0xEB, 0x79, 0xDA, + 0x66, 0x19, 0x0E, 0xB0, 0x85, 0xFF, 0xA9, 0xF4, 0x92, 0xF3, 0x75, 0xA9, + 0x7D, 0x86, 0x0E, 0xB4, + /* b */ + 0x52, 0x08, 0x83, 0x94, 0x9D, 0xFD, 0xBC, 0x42, 0xD3, 0xAD, 0x19, 0x86, + 0x40, 0x68, 0x8A, 0x6F, 0xE1, 0x3F, 0x41, 0x34, 0x95, 0x54, 0xB4, 0x9A, + 0xCC, 0x31, 0xDC, 0xCD, 0x88, 0x45, 0x39, 0x81, 0x6F, 0x5E, 0xB4, 0xAC, + 0x8F, 0xB1, 0xF1, 0xA6, + /* x */ + 0x43, 0xBD, 0x7E, 0x9A, 0xFB, 0x53, 0xD8, 0xB8, 0x52, 0x89, 0xBC, 0xC4, + 0x8E, 0xE5, 0xBF, 0xE6, 0xF2, 0x01, 0x37, 0xD1, 0x0A, 0x08, 0x7E, 0xB6, + 0xE7, 0x87, 0x1E, 0x2A, 0x10, 0xA5, 0x99, 0xC7, 0x10, 0xAF, 0x8D, 0x0D, + 0x39, 0xE2, 0x06, 0x11, + /* y */ + 0x14, 0xFD, 0xD0, 0x55, 0x45, 0xEC, 0x1C, 0xC8, 0xAB, 0x40, 0x93, 0x24, + 0x7F, 0x77, 0x27, 0x5E, 0x07, 0x43, 0xFF, 0xED, 0x11, 0x71, 0x82, 0xEA, + 0xA9, 0xC7, 0x78, 0x77, 0xAA, 0xAC, 0x6A, 0xC7, 0xD3, 0x52, 0x45, 0xD1, + 0x69, 0x2E, 0x8E, 0xE1, + /* order */ + 0xD3, 0x5E, 0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C, 0x78, 0x5E, + 0xD2, 0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA5, 0xB6, 0x8F, 0x12, 0xA3, + 0x2D, 0x48, 0x2E, 0xC7, 0xEE, 0x86, 0x58, 0xE9, 0x86, 0x91, 0x55, 0x5B, + 0x44, 0xC5, 0x93, 0x11 + } +}; + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 40 * 6]; +} _EC_brainpoolP320t1 = { + { + NID_X9_62_prime_field, 0, 40, 1 + }, + { + /* no seed */ + /* p */ + 0xD3, 0x5E, 0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C, 0x78, 0x5E, + 0xD2, 0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA6, 0xF6, 0xF4, 0x0D, 0xEF, + 0x4F, 0x92, 0xB9, 0xEC, 0x78, 0x93, 0xEC, 0x28, 0xFC, 0xD4, 0x12, 0xB1, + 0xF1, 0xB3, 0x2E, 0x27, + /* a */ + 0xD3, 0x5E, 0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C, 0x78, 0x5E, + 0xD2, 0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA6, 0xF6, 0xF4, 0x0D, 0xEF, + 0x4F, 0x92, 0xB9, 0xEC, 0x78, 0x93, 0xEC, 0x28, 0xFC, 0xD4, 0x12, 0xB1, + 0xF1, 0xB3, 0x2E, 0x24, + /* b */ + 0xA7, 0xF5, 0x61, 0xE0, 0x38, 0xEB, 0x1E, 0xD5, 0x60, 0xB3, 0xD1, 0x47, + 0xDB, 0x78, 0x20, 0x13, 0x06, 0x4C, 0x19, 0xF2, 0x7E, 0xD2, 0x7C, 0x67, + 0x80, 0xAA, 0xF7, 0x7F, 0xB8, 0xA5, 0x47, 0xCE, 0xB5, 0xB4, 0xFE, 0xF4, + 0x22, 0x34, 0x03, 0x53, + /* x */ + 0x92, 0x5B, 0xE9, 0xFB, 0x01, 0xAF, 0xC6, 0xFB, 0x4D, 0x3E, 0x7D, 0x49, + 0x90, 0x01, 0x0F, 0x81, 0x34, 0x08, 0xAB, 0x10, 0x6C, 0x4F, 0x09, 0xCB, + 0x7E, 0xE0, 0x78, 0x68, 0xCC, 0x13, 0x6F, 0xFF, 0x33, 0x57, 0xF6, 0x24, + 0xA2, 0x1B, 0xED, 0x52, + /* y */ + 0x63, 0xBA, 0x3A, 0x7A, 0x27, 0x48, 0x3E, 0xBF, 0x66, 0x71, 0xDB, 0xEF, + 0x7A, 0xBB, 0x30, 0xEB, 0xEE, 0x08, 0x4E, 0x58, 0xA0, 0xB0, 0x77, 0xAD, + 0x42, 0xA5, 0xA0, 0x98, 0x9D, 0x1E, 0xE7, 0x1B, 0x1B, 0x9B, 0xC0, 0x45, + 0x5F, 0xB0, 0xD2, 0xC3, + /* order */ + 0xD3, 0x5E, 0x47, 0x20, 0x36, 0xBC, 0x4F, 0xB7, 0xE1, 0x3C, 0x78, 0x5E, + 0xD2, 0x01, 0xE0, 0x65, 0xF9, 0x8F, 0xCF, 0xA5, 0xB6, 0x8F, 0x12, 0xA3, + 0x2D, 0x48, 0x2E, 0xC7, 0xEE, 0x86, 0x58, 0xE9, 0x86, 0x91, 0x55, 0x5B, + 0x44, 0xC5, 0x93, 0x11 + } +}; + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 48 * 6]; +} _EC_brainpoolP384r1 = { + { + NID_X9_62_prime_field, 0, 48, 1 + }, + { + /* no seed */ + /* p */ + 0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E, + 0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB4, + 0x12, 0xB1, 0xDA, 0x19, 0x7F, 0xB7, 0x11, 0x23, 0xAC, 0xD3, 0xA7, 0x29, + 0x90, 0x1D, 0x1A, 0x71, 0x87, 0x47, 0x00, 0x13, 0x31, 0x07, 0xEC, 0x53, + /* a */ + 0x7B, 0xC3, 0x82, 0xC6, 0x3D, 0x8C, 0x15, 0x0C, 0x3C, 0x72, 0x08, 0x0A, + 0xCE, 0x05, 0xAF, 0xA0, 0xC2, 0xBE, 0xA2, 0x8E, 0x4F, 0xB2, 0x27, 0x87, + 0x13, 0x91, 0x65, 0xEF, 0xBA, 0x91, 0xF9, 0x0F, 0x8A, 0xA5, 0x81, 0x4A, + 0x50, 0x3A, 0xD4, 0xEB, 0x04, 0xA8, 0xC7, 0xDD, 0x22, 0xCE, 0x28, 0x26, + /* b */ + 0x04, 0xA8, 0xC7, 0xDD, 0x22, 0xCE, 0x28, 0x26, 0x8B, 0x39, 0xB5, 0x54, + 0x16, 0xF0, 0x44, 0x7C, 0x2F, 0xB7, 0x7D, 0xE1, 0x07, 0xDC, 0xD2, 0xA6, + 0x2E, 0x88, 0x0E, 0xA5, 0x3E, 0xEB, 0x62, 0xD5, 0x7C, 0xB4, 0x39, 0x02, + 0x95, 0xDB, 0xC9, 0x94, 0x3A, 0xB7, 0x86, 0x96, 0xFA, 0x50, 0x4C, 0x11, + /* x */ + 0x1D, 0x1C, 0x64, 0xF0, 0x68, 0xCF, 0x45, 0xFF, 0xA2, 0xA6, 0x3A, 0x81, + 0xB7, 0xC1, 0x3F, 0x6B, 0x88, 0x47, 0xA3, 0xE7, 0x7E, 0xF1, 0x4F, 0xE3, + 0xDB, 0x7F, 0xCA, 0xFE, 0x0C, 0xBD, 0x10, 0xE8, 0xE8, 0x26, 0xE0, 0x34, + 0x36, 0xD6, 0x46, 0xAA, 0xEF, 0x87, 0xB2, 0xE2, 0x47, 0xD4, 0xAF, 0x1E, + /* y */ + 0x8A, 0xBE, 0x1D, 0x75, 0x20, 0xF9, 0xC2, 0xA4, 0x5C, 0xB1, 0xEB, 0x8E, + 0x95, 0xCF, 0xD5, 0x52, 0x62, 0xB7, 0x0B, 0x29, 0xFE, 0xEC, 0x58, 0x64, + 0xE1, 0x9C, 0x05, 0x4F, 0xF9, 0x91, 0x29, 0x28, 0x0E, 0x46, 0x46, 0x21, + 0x77, 0x91, 0x81, 0x11, 0x42, 0x82, 0x03, 0x41, 0x26, 0x3C, 0x53, 0x15, + /* order */ + 0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E, + 0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB3, + 0x1F, 0x16, 0x6E, 0x6C, 0xAC, 0x04, 0x25, 0xA7, 0xCF, 0x3A, 0xB6, 0xAF, + 0x6B, 0x7F, 0xC3, 0x10, 0x3B, 0x88, 0x32, 0x02, 0xE9, 0x04, 0x65, 0x65 + } +}; + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 48 * 6]; +} _EC_brainpoolP384t1 = { + { + NID_X9_62_prime_field, 0, 48, 1 + }, + { + /* no seed */ + /* p */ + 0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E, + 0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB4, + 0x12, 0xB1, 0xDA, 0x19, 0x7F, 0xB7, 0x11, 0x23, 0xAC, 0xD3, 0xA7, 0x29, + 0x90, 0x1D, 0x1A, 0x71, 0x87, 0x47, 0x00, 0x13, 0x31, 0x07, 0xEC, 0x53, + /* a */ + 0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E, + 0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB4, + 0x12, 0xB1, 0xDA, 0x19, 0x7F, 0xB7, 0x11, 0x23, 0xAC, 0xD3, 0xA7, 0x29, + 0x90, 0x1D, 0x1A, 0x71, 0x87, 0x47, 0x00, 0x13, 0x31, 0x07, 0xEC, 0x50, + /* b */ + 0x7F, 0x51, 0x9E, 0xAD, 0xA7, 0xBD, 0xA8, 0x1B, 0xD8, 0x26, 0xDB, 0xA6, + 0x47, 0x91, 0x0F, 0x8C, 0x4B, 0x93, 0x46, 0xED, 0x8C, 0xCD, 0xC6, 0x4E, + 0x4B, 0x1A, 0xBD, 0x11, 0x75, 0x6D, 0xCE, 0x1D, 0x20, 0x74, 0xAA, 0x26, + 0x3B, 0x88, 0x80, 0x5C, 0xED, 0x70, 0x35, 0x5A, 0x33, 0xB4, 0x71, 0xEE, + /* x */ + 0x18, 0xDE, 0x98, 0xB0, 0x2D, 0xB9, 0xA3, 0x06, 0xF2, 0xAF, 0xCD, 0x72, + 0x35, 0xF7, 0x2A, 0x81, 0x9B, 0x80, 0xAB, 0x12, 0xEB, 0xD6, 0x53, 0x17, + 0x24, 0x76, 0xFE, 0xCD, 0x46, 0x2A, 0xAB, 0xFF, 0xC4, 0xFF, 0x19, 0x1B, + 0x94, 0x6A, 0x5F, 0x54, 0xD8, 0xD0, 0xAA, 0x2F, 0x41, 0x88, 0x08, 0xCC, + /* y */ + 0x25, 0xAB, 0x05, 0x69, 0x62, 0xD3, 0x06, 0x51, 0xA1, 0x14, 0xAF, 0xD2, + 0x75, 0x5A, 0xD3, 0x36, 0x74, 0x7F, 0x93, 0x47, 0x5B, 0x7A, 0x1F, 0xCA, + 0x3B, 0x88, 0xF2, 0xB6, 0xA2, 0x08, 0xCC, 0xFE, 0x46, 0x94, 0x08, 0x58, + 0x4D, 0xC2, 0xB2, 0x91, 0x26, 0x75, 0xBF, 0x5B, 0x9E, 0x58, 0x29, 0x28, + /* order */ + 0x8C, 0xB9, 0x1E, 0x82, 0xA3, 0x38, 0x6D, 0x28, 0x0F, 0x5D, 0x6F, 0x7E, + 0x50, 0xE6, 0x41, 0xDF, 0x15, 0x2F, 0x71, 0x09, 0xED, 0x54, 0x56, 0xB3, + 0x1F, 0x16, 0x6E, 0x6C, 0xAC, 0x04, 0x25, 0xA7, 0xCF, 0x3A, 0xB6, 0xAF, + 0x6B, 0x7F, 0xC3, 0x10, 0x3B, 0x88, 0x32, 0x02, 0xE9, 0x04, 0x65, 0x65 + } +}; + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 64 * 6]; +} _EC_brainpoolP512r1 = { + { + NID_X9_62_prime_field, 0, 64, 1 + }, + { + /* no seed */ + /* p */ + 0xAA, 0xDD, 0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE, + 0x33, 0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E, + 0xD6, 0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x71, 0x7D, 0x4D, 0x9B, 0x00, + 0x9B, 0xC6, 0x68, 0x42, 0xAE, 0xCD, 0xA1, 0x2A, 0xE6, 0xA3, 0x80, 0xE6, + 0x28, 0x81, 0xFF, 0x2F, 0x2D, 0x82, 0xC6, 0x85, 0x28, 0xAA, 0x60, 0x56, + 0x58, 0x3A, 0x48, 0xF3, + /* a */ + 0x78, 0x30, 0xA3, 0x31, 0x8B, 0x60, 0x3B, 0x89, 0xE2, 0x32, 0x71, 0x45, + 0xAC, 0x23, 0x4C, 0xC5, 0x94, 0xCB, 0xDD, 0x8D, 0x3D, 0xF9, 0x16, 0x10, + 0xA8, 0x34, 0x41, 0xCA, 0xEA, 0x98, 0x63, 0xBC, 0x2D, 0xED, 0x5D, 0x5A, + 0xA8, 0x25, 0x3A, 0xA1, 0x0A, 0x2E, 0xF1, 0xC9, 0x8B, 0x9A, 0xC8, 0xB5, + 0x7F, 0x11, 0x17, 0xA7, 0x2B, 0xF2, 0xC7, 0xB9, 0xE7, 0xC1, 0xAC, 0x4D, + 0x77, 0xFC, 0x94, 0xCA, + /* b */ + 0x3D, 0xF9, 0x16, 0x10, 0xA8, 0x34, 0x41, 0xCA, 0xEA, 0x98, 0x63, 0xBC, + 0x2D, 0xED, 0x5D, 0x5A, 0xA8, 0x25, 0x3A, 0xA1, 0x0A, 0x2E, 0xF1, 0xC9, + 0x8B, 0x9A, 0xC8, 0xB5, 0x7F, 0x11, 0x17, 0xA7, 0x2B, 0xF2, 0xC7, 0xB9, + 0xE7, 0xC1, 0xAC, 0x4D, 0x77, 0xFC, 0x94, 0xCA, 0xDC, 0x08, 0x3E, 0x67, + 0x98, 0x40, 0x50, 0xB7, 0x5E, 0xBA, 0xE5, 0xDD, 0x28, 0x09, 0xBD, 0x63, + 0x80, 0x16, 0xF7, 0x23, + /* x */ + 0x81, 0xAE, 0xE4, 0xBD, 0xD8, 0x2E, 0xD9, 0x64, 0x5A, 0x21, 0x32, 0x2E, + 0x9C, 0x4C, 0x6A, 0x93, 0x85, 0xED, 0x9F, 0x70, 0xB5, 0xD9, 0x16, 0xC1, + 0xB4, 0x3B, 0x62, 0xEE, 0xF4, 0xD0, 0x09, 0x8E, 0xFF, 0x3B, 0x1F, 0x78, + 0xE2, 0xD0, 0xD4, 0x8D, 0x50, 0xD1, 0x68, 0x7B, 0x93, 0xB9, 0x7D, 0x5F, + 0x7C, 0x6D, 0x50, 0x47, 0x40, 0x6A, 0x5E, 0x68, 0x8B, 0x35, 0x22, 0x09, + 0xBC, 0xB9, 0xF8, 0x22, + /* y */ + 0x7D, 0xDE, 0x38, 0x5D, 0x56, 0x63, 0x32, 0xEC, 0xC0, 0xEA, 0xBF, 0xA9, + 0xCF, 0x78, 0x22, 0xFD, 0xF2, 0x09, 0xF7, 0x00, 0x24, 0xA5, 0x7B, 0x1A, + 0xA0, 0x00, 0xC5, 0x5B, 0x88, 0x1F, 0x81, 0x11, 0xB2, 0xDC, 0xDE, 0x49, + 0x4A, 0x5F, 0x48, 0x5E, 0x5B, 0xCA, 0x4B, 0xD8, 0x8A, 0x27, 0x63, 0xAE, + 0xD1, 0xCA, 0x2B, 0x2F, 0xA8, 0xF0, 0x54, 0x06, 0x78, 0xCD, 0x1E, 0x0F, + 0x3A, 0xD8, 0x08, 0x92, + /* order */ + 0xAA, 0xDD, 0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE, + 0x33, 0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E, + 0xD6, 0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x70, 0x55, 0x3E, 0x5C, 0x41, + 0x4C, 0xA9, 0x26, 0x19, 0x41, 0x86, 0x61, 0x19, 0x7F, 0xAC, 0x10, 0x47, + 0x1D, 0xB1, 0xD3, 0x81, 0x08, 0x5D, 0xDA, 0xDD, 0xB5, 0x87, 0x96, 0x82, + 0x9C, 0xA9, 0x00, 0x69 + } +}; + +static const struct { + EC_CURVE_DATA h; + unsigned char data[0 + 64 * 6]; +} _EC_brainpoolP512t1 = { + { + NID_X9_62_prime_field, 0, 64, 1 + }, + { + /* no seed */ + /* p */ + 0xAA, 0xDD, 0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE, + 0x33, 0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E, + 0xD6, 0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x71, 0x7D, 0x4D, 0x9B, 0x00, + 0x9B, 0xC6, 0x68, 0x42, 0xAE, 0xCD, 0xA1, 0x2A, 0xE6, 0xA3, 0x80, 0xE6, + 0x28, 0x81, 0xFF, 0x2F, 0x2D, 0x82, 0xC6, 0x85, 0x28, 0xAA, 0x60, 0x56, + 0x58, 0x3A, 0x48, 0xF3, + /* a */ + 0xAA, 0xDD, 0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE, + 0x33, 0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E, + 0xD6, 0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x71, 0x7D, 0x4D, 0x9B, 0x00, + 0x9B, 0xC6, 0x68, 0x42, 0xAE, 0xCD, 0xA1, 0x2A, 0xE6, 0xA3, 0x80, 0xE6, + 0x28, 0x81, 0xFF, 0x2F, 0x2D, 0x82, 0xC6, 0x85, 0x28, 0xAA, 0x60, 0x56, + 0x58, 0x3A, 0x48, 0xF0, + /* b */ + 0x7C, 0xBB, 0xBC, 0xF9, 0x44, 0x1C, 0xFA, 0xB7, 0x6E, 0x18, 0x90, 0xE4, + 0x68, 0x84, 0xEA, 0xE3, 0x21, 0xF7, 0x0C, 0x0B, 0xCB, 0x49, 0x81, 0x52, + 0x78, 0x97, 0x50, 0x4B, 0xEC, 0x3E, 0x36, 0xA6, 0x2B, 0xCD, 0xFA, 0x23, + 0x04, 0x97, 0x65, 0x40, 0xF6, 0x45, 0x00, 0x85, 0xF2, 0xDA, 0xE1, 0x45, + 0xC2, 0x25, 0x53, 0xB4, 0x65, 0x76, 0x36, 0x89, 0x18, 0x0E, 0xA2, 0x57, + 0x18, 0x67, 0x42, 0x3E, + /* x */ + 0x64, 0x0E, 0xCE, 0x5C, 0x12, 0x78, 0x87, 0x17, 0xB9, 0xC1, 0xBA, 0x06, + 0xCB, 0xC2, 0xA6, 0xFE, 0xBA, 0x85, 0x84, 0x24, 0x58, 0xC5, 0x6D, 0xDE, + 0x9D, 0xB1, 0x75, 0x8D, 0x39, 0xC0, 0x31, 0x3D, 0x82, 0xBA, 0x51, 0x73, + 0x5C, 0xDB, 0x3E, 0xA4, 0x99, 0xAA, 0x77, 0xA7, 0xD6, 0x94, 0x3A, 0x64, + 0xF7, 0xA3, 0xF2, 0x5F, 0xE2, 0x6F, 0x06, 0xB5, 0x1B, 0xAA, 0x26, 0x96, + 0xFA, 0x90, 0x35, 0xDA, + /* y */ + 0x5B, 0x53, 0x4B, 0xD5, 0x95, 0xF5, 0xAF, 0x0F, 0xA2, 0xC8, 0x92, 0x37, + 0x6C, 0x84, 0xAC, 0xE1, 0xBB, 0x4E, 0x30, 0x19, 0xB7, 0x16, 0x34, 0xC0, + 0x11, 0x31, 0x15, 0x9C, 0xAE, 0x03, 0xCE, 0xE9, 0xD9, 0x93, 0x21, 0x84, + 0xBE, 0xEF, 0x21, 0x6B, 0xD7, 0x1D, 0xF2, 0xDA, 0xDF, 0x86, 0xA6, 0x27, + 0x30, 0x6E, 0xCF, 0xF9, 0x6D, 0xBB, 0x8B, 0xAC, 0xE1, 0x98, 0xB6, 0x1E, + 0x00, 0xF8, 0xB3, 0x32, + /* order */ + 0xAA, 0xDD, 0x9D, 0xB8, 0xDB, 0xE9, 0xC4, 0x8B, 0x3F, 0xD4, 0xE6, 0xAE, + 0x33, 0xC9, 0xFC, 0x07, 0xCB, 0x30, 0x8D, 0xB3, 0xB3, 0xC9, 0xD2, 0x0E, + 0xD6, 0x63, 0x9C, 0xCA, 0x70, 0x33, 0x08, 0x70, 0x55, 0x3E, 0x5C, 0x41, + 0x4C, 0xA9, 0x26, 0x19, 0x41, 0x86, 0x61, 0x19, 0x7F, 0xAC, 0x10, 0x47, + 0x1D, 0xB1, 0xD3, 0x81, 0x08, 0x5D, 0xDA, 0xDD, 0xB5, 0x87, 0x96, 0x82, + 0x9C, 0xA9, 0x00, 0x69 + } +}; + typedef struct _ec_list_element_st { int nid; const EC_CURVE_DATA *data; @@ -2343,13 +2896,15 @@ static const ec_list_element curve_list[] = { "X9.62 curve over a 239 bit prime field"}, {NID_X9_62_prime239v3, &_EC_X9_62_PRIME_239V3.h, 0, "X9.62 curve over a 239 bit prime field"}, -#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 - {NID_X9_62_prime256v1, &_EC_X9_62_PRIME_256V1.h, EC_GFp_nistp256_method, - "X9.62/SECG curve over a 256 bit prime field"}, + {NID_X9_62_prime256v1, &_EC_X9_62_PRIME_256V1.h, +#if defined(ECP_NISTZ256_ASM) + EC_GFp_nistz256_method, +#elif !defined(OPENSSL_NO_EC_NISTP_64_GCC_128) + EC_GFp_nistp256_method, #else - {NID_X9_62_prime256v1, &_EC_X9_62_PRIME_256V1.h, 0, - "X9.62/SECG curve over a 256 bit prime field"}, + 0, #endif + "X9.62/SECG curve over a 256 bit prime field"}, #ifndef OPENSSL_NO_EC2M /* characteristic two field curves */ /* NIST/SECG curves */ @@ -2460,6 +3015,35 @@ static const ec_list_element curve_list[] = { "\n\tIPSec/IKE/Oakley curve #4 over a 185 bit binary field.\n" "\tNot suitable for ECDSA.\n\tQuestionable extension field!"}, #endif + /* brainpool curves */ + {NID_brainpoolP160r1, &_EC_brainpoolP160r1.h, 0, + "RFC 5639 curve over a 160 bit prime field"}, + {NID_brainpoolP160t1, &_EC_brainpoolP160t1.h, 0, + "RFC 5639 curve over a 160 bit prime field"}, + {NID_brainpoolP192r1, &_EC_brainpoolP192r1.h, 0, + "RFC 5639 curve over a 192 bit prime field"}, + {NID_brainpoolP192t1, &_EC_brainpoolP192t1.h, 0, + "RFC 5639 curve over a 192 bit prime field"}, + {NID_brainpoolP224r1, &_EC_brainpoolP224r1.h, 0, + "RFC 5639 curve over a 224 bit prime field"}, + {NID_brainpoolP224t1, &_EC_brainpoolP224t1.h, 0, + "RFC 5639 curve over a 224 bit prime field"}, + {NID_brainpoolP256r1, &_EC_brainpoolP256r1.h, 0, + "RFC 5639 curve over a 256 bit prime field"}, + {NID_brainpoolP256t1, &_EC_brainpoolP256t1.h, 0, + "RFC 5639 curve over a 256 bit prime field"}, + {NID_brainpoolP320r1, &_EC_brainpoolP320r1.h, 0, + "RFC 5639 curve over a 320 bit prime field"}, + {NID_brainpoolP320t1, &_EC_brainpoolP320t1.h, 0, + "RFC 5639 curve over a 320 bit prime field"}, + {NID_brainpoolP384r1, &_EC_brainpoolP384r1.h, 0, + "RFC 5639 curve over a 384 bit prime field"}, + {NID_brainpoolP384t1, &_EC_brainpoolP384t1.h, 0, + "RFC 5639 curve over a 384 bit prime field"}, + {NID_brainpoolP512r1, &_EC_brainpoolP512r1.h, 0, + "RFC 5639 curve over a 512 bit prime field"}, + {NID_brainpoolP512t1, &_EC_brainpoolP512t1.h, 0, + "RFC 5639 curve over a 512 bit prime field"}, }; #define curve_list_length (sizeof(curve_list)/sizeof(ec_list_element)) @@ -2578,6 +3162,10 @@ EC_GROUP *EC_GROUP_new_by_curve_name(int nid) size_t i; EC_GROUP *ret = NULL; +#ifdef OPENSSL_FIPS + if (FIPS_mode()) + return FIPS_ec_group_new_by_curve_name(nid); +#endif if (nid <= 0) return NULL; @@ -2613,3 +3201,48 @@ size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems) return curve_list_length; } + +/* Functions to translate between common NIST curve names and NIDs */ + +typedef struct { + const char *name; /* NIST Name of curve */ + int nid; /* Curve NID */ +} EC_NIST_NAME; + +static EC_NIST_NAME nist_curves[] = { + {"B-163", NID_sect163r2}, + {"B-233", NID_sect233r1}, + {"B-283", NID_sect283r1}, + {"B-409", NID_sect409r1}, + {"B-571", NID_sect571r1}, + {"K-163", NID_sect163k1}, + {"K-233", NID_sect233k1}, + {"K-283", NID_sect283k1}, + {"K-409", NID_sect409k1}, + {"K-571", NID_sect571k1}, + {"P-192", NID_X9_62_prime192v1}, + {"P-224", NID_secp224r1}, + {"P-256", NID_X9_62_prime256v1}, + {"P-384", NID_secp384r1}, + {"P-521", NID_secp521r1} +}; + +const char *EC_curve_nid2nist(int nid) +{ + size_t i; + for (i = 0; i < sizeof(nist_curves) / sizeof(EC_NIST_NAME); i++) { + if (nist_curves[i].nid == nid) + return nist_curves[i].name; + } + return NULL; +} + +int EC_curve_nist2nid(const char *name) +{ + size_t i; + for (i = 0; i < sizeof(nist_curves) / sizeof(EC_NIST_NAME); i++) { + if (!strcmp(nist_curves[i].name, name)) + return nist_curves[i].nid; + } + return NID_undef; +} diff --git a/libs/openssl/crypto/ec/ec_cvt.c b/libs/openssl/crypto/ec/ec_cvt.c index 487d7274..5a832ba1 100644 --- a/libs/openssl/crypto/ec/ec_cvt.c +++ b/libs/openssl/crypto/ec/ec_cvt.c @@ -72,12 +72,20 @@ #include #include "ec_lcl.h" +#ifdef OPENSSL_FIPS +# include +#endif + EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx) { const EC_METHOD *meth; EC_GROUP *ret; +#ifdef OPENSSL_FIPS + if (FIPS_mode()) + return FIPS_ec_group_new_curve_gfp(p, a, b, ctx); +#endif #if defined(OPENSSL_BN_ASM_MONT) /* * This might appear controversial, but the fact is that generic @@ -152,6 +160,10 @@ EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, const EC_METHOD *meth; EC_GROUP *ret; +# ifdef OPENSSL_FIPS + if (FIPS_mode()) + return FIPS_ec_group_new_curve_gf2m(p, a, b, ctx); +# endif meth = EC_GF2m_simple_method(); ret = EC_GROUP_new(meth); diff --git a/libs/openssl/crypto/ec/ec_err.c b/libs/openssl/crypto/ec/ec_err.c index 58eae7c6..6fe5baaf 100644 --- a/libs/openssl/crypto/ec/ec_err.c +++ b/libs/openssl/crypto/ec/ec_err.c @@ -1,6 +1,6 @@ /* crypto/ec/ec_err.c */ /* ==================================================================== - * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. + * Copyright (c) 1999-2015 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -76,6 +76,8 @@ static ERR_STRING_DATA EC_str_functs[] = { {ERR_FUNC(EC_F_D2I_ECPKPARAMETERS), "d2i_ECPKParameters"}, {ERR_FUNC(EC_F_D2I_ECPRIVATEKEY), "d2i_ECPrivateKey"}, {ERR_FUNC(EC_F_DO_EC_KEY_PRINT), "DO_EC_KEY_PRINT"}, + {ERR_FUNC(EC_F_ECDH_CMS_DECRYPT), "ECDH_CMS_DECRYPT"}, + {ERR_FUNC(EC_F_ECDH_CMS_SET_SHARED_INFO), "ECDH_CMS_SET_SHARED_INFO"}, {ERR_FUNC(EC_F_ECKEY_PARAM2TYPE), "ECKEY_PARAM2TYPE"}, {ERR_FUNC(EC_F_ECKEY_PARAM_DECODE), "ECKEY_PARAM_DECODE"}, {ERR_FUNC(EC_F_ECKEY_PRIV_DECODE), "ECKEY_PRIV_DECODE"}, @@ -87,6 +89,13 @@ static ERR_STRING_DATA EC_str_functs[] = { {ERR_FUNC(EC_F_ECPARAMETERS_PRINT_FP), "ECParameters_print_fp"}, {ERR_FUNC(EC_F_ECPKPARAMETERS_PRINT), "ECPKParameters_print"}, {ERR_FUNC(EC_F_ECPKPARAMETERS_PRINT_FP), "ECPKParameters_print_fp"}, + {ERR_FUNC(EC_F_ECP_NISTZ256_GET_AFFINE), "ecp_nistz256_get_affine"}, + {ERR_FUNC(EC_F_ECP_NISTZ256_MULT_PRECOMPUTE), + "ecp_nistz256_mult_precompute"}, + {ERR_FUNC(EC_F_ECP_NISTZ256_POINTS_MUL), "ecp_nistz256_points_mul"}, + {ERR_FUNC(EC_F_ECP_NISTZ256_PRE_COMP_NEW), "ecp_nistz256_pre_comp_new"}, + {ERR_FUNC(EC_F_ECP_NISTZ256_SET_WORDS), "ecp_nistz256_set_words"}, + {ERR_FUNC(EC_F_ECP_NISTZ256_WINDOWED_MUL), "ecp_nistz256_windowed_mul"}, {ERR_FUNC(EC_F_ECP_NIST_MOD_192), "ECP_NIST_MOD_192"}, {ERR_FUNC(EC_F_ECP_NIST_MOD_224), "ECP_NIST_MOD_224"}, {ERR_FUNC(EC_F_ECP_NIST_MOD_256), "ECP_NIST_MOD_256"}, @@ -271,6 +280,7 @@ static ERR_STRING_DATA EC_str_reasons[] = { {ERR_REASON(EC_R_INVALID_COMPRESSED_POINT), "invalid compressed point"}, {ERR_REASON(EC_R_INVALID_COMPRESSION_BIT), "invalid compression bit"}, {ERR_REASON(EC_R_INVALID_CURVE), "invalid curve"}, + {ERR_REASON(EC_R_INVALID_DIGEST), "invalid digest"}, {ERR_REASON(EC_R_INVALID_DIGEST_TYPE), "invalid digest type"}, {ERR_REASON(EC_R_INVALID_ENCODING), "invalid encoding"}, {ERR_REASON(EC_R_INVALID_FIELD), "invalid field"}, @@ -279,6 +289,7 @@ static ERR_STRING_DATA EC_str_reasons[] = { {ERR_REASON(EC_R_INVALID_PENTANOMIAL_BASIS), "invalid pentanomial basis"}, {ERR_REASON(EC_R_INVALID_PRIVATE_KEY), "invalid private key"}, {ERR_REASON(EC_R_INVALID_TRINOMIAL_BASIS), "invalid trinomial basis"}, + {ERR_REASON(EC_R_KDF_PARAMETER_ERROR), "kdf parameter error"}, {ERR_REASON(EC_R_KEYS_NOT_SET), "keys not set"}, {ERR_REASON(EC_R_MISSING_PARAMETERS), "missing parameters"}, {ERR_REASON(EC_R_MISSING_PRIVATE_KEY), "missing private key"}, @@ -290,10 +301,12 @@ static ERR_STRING_DATA EC_str_reasons[] = { {ERR_REASON(EC_R_NO_FIELD_MOD), "no field mod"}, {ERR_REASON(EC_R_NO_PARAMETERS_SET), "no parameters set"}, {ERR_REASON(EC_R_PASSED_NULL_PARAMETER), "passed null parameter"}, + {ERR_REASON(EC_R_PEER_KEY_ERROR), "peer key error"}, {ERR_REASON(EC_R_PKPARAMETERS2GROUP_FAILURE), "pkparameters2group failure"}, {ERR_REASON(EC_R_POINT_AT_INFINITY), "point at infinity"}, {ERR_REASON(EC_R_POINT_IS_NOT_ON_CURVE), "point is not on curve"}, + {ERR_REASON(EC_R_SHARED_INFO_ERROR), "shared info error"}, {ERR_REASON(EC_R_SLOT_FULL), "slot full"}, {ERR_REASON(EC_R_UNDEFINED_GENERATOR), "undefined generator"}, {ERR_REASON(EC_R_UNDEFINED_ORDER), "undefined order"}, diff --git a/libs/openssl/crypto/ec/ec_key.c b/libs/openssl/crypto/ec/ec_key.c index 55ce3fe9..c784b6fd 100644 --- a/libs/openssl/crypto/ec/ec_key.c +++ b/libs/openssl/crypto/ec/ec_key.c @@ -366,7 +366,10 @@ int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, BN_CTX *ctx = NULL; BIGNUM *tx, *ty; EC_POINT *point = NULL; - int ok = 0, tmp_nid, is_char_two = 0; + int ok = 0; +#ifndef OPENSSL_NO_EC2M + int tmp_nid, is_char_two = 0; +#endif if (!key || !key->group || !x || !y) { ECerr(EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES, @@ -382,14 +385,15 @@ int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, if (!point) goto err; + tx = BN_CTX_get(ctx); + ty = BN_CTX_get(ctx); + +#ifndef OPENSSL_NO_EC2M tmp_nid = EC_METHOD_get_field_type(EC_GROUP_method_of(key->group)); if (tmp_nid == NID_X9_62_characteristic_two_field) is_char_two = 1; - tx = BN_CTX_get(ctx); - ty = BN_CTX_get(ctx); -#ifndef OPENSSL_NO_EC2M if (is_char_two) { if (!EC_POINT_set_affine_coordinates_GF2m(key->group, point, x, y, ctx)) diff --git a/libs/openssl/crypto/ec/ec_lcl.h b/libs/openssl/crypto/ec/ec_lcl.h index d79ed1e4..969fd147 100644 --- a/libs/openssl/crypto/ec/ec_lcl.h +++ b/libs/openssl/crypto/ec/ec_lcl.h @@ -212,6 +212,13 @@ struct ec_group_st { BIGNUM order, cofactor; int curve_name; /* optional NID for named curve */ int asn1_flag; /* flag to control the asn1 encoding */ + /* + * Kludge: upper bit of ans1_flag is used to denote structure + * version. Is set, then last field is present. This is done + * for interoperation with FIPS code. + */ +#define EC_GROUP_ASN1_FLAG_MASK 0x7fffffff +#define EC_GROUP_VERSION(p) (p->asn1_flag&~EC_GROUP_ASN1_FLAG_MASK) point_conversion_form_t asn1_form; unsigned char *seed; /* optional seed for parameters (appears in * ASN1) */ @@ -252,6 +259,7 @@ struct ec_group_st { /* method-specific */ int (*field_mod_func) (BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *); + BN_MONT_CTX *mont_data; /* data for ECDSA inverse */ } /* EC_GROUP */ ; struct ec_key_st { @@ -541,3 +549,20 @@ void ec_GFp_nistp_points_make_affine_internal(size_t num, void *point_array, void ec_GFp_nistp_recode_scalar_bits(unsigned char *sign, unsigned char *digit, unsigned char in); #endif +int ec_precompute_mont_data(EC_GROUP *); + +#ifdef ECP_NISTZ256_ASM +/** Returns GFp methods using montgomery multiplication, with x86-64 optimized + * P256. See http://eprint.iacr.org/2013/816. + * \return EC_METHOD object + */ +const EC_METHOD *EC_GFp_nistz256_method(void); +#endif + +#ifdef OPENSSL_FIPS +EC_GROUP *FIPS_ec_group_new_curve_gfp(const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); +EC_GROUP *FIPS_ec_group_new_curve_gf2m(const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); +EC_GROUP *FIPS_ec_group_new_by_curve_name(int nid); +#endif diff --git a/libs/openssl/crypto/ec/ec_lib.c b/libs/openssl/crypto/ec/ec_lib.c index e2275207..3ffa112c 100644 --- a/libs/openssl/crypto/ec/ec_lib.c +++ b/libs/openssl/crypto/ec/ec_lib.c @@ -94,13 +94,14 @@ EC_GROUP *EC_GROUP_new(const EC_METHOD *meth) ret->meth = meth; ret->extra_data = NULL; + ret->mont_data = NULL; ret->generator = NULL; BN_init(&ret->order); BN_init(&ret->cofactor); ret->curve_name = 0; - ret->asn1_flag = 0; + ret->asn1_flag = ~EC_GROUP_ASN1_FLAG_MASK; ret->asn1_form = POINT_CONVERSION_UNCOMPRESSED; ret->seed = NULL; @@ -124,6 +125,9 @@ void EC_GROUP_free(EC_GROUP *group) EC_EX_DATA_free_all_data(&group->extra_data); + if (EC_GROUP_VERSION(group) && group->mont_data) + BN_MONT_CTX_free(group->mont_data); + if (group->generator != NULL) EC_POINT_free(group->generator); BN_free(&group->order); @@ -147,6 +151,9 @@ void EC_GROUP_clear_free(EC_GROUP *group) EC_EX_DATA_clear_free_all_data(&group->extra_data); + if (EC_GROUP_VERSION(group) && group->mont_data) + BN_MONT_CTX_free(group->mont_data); + if (group->generator != NULL) EC_POINT_clear_free(group->generator); BN_clear_free(&group->order); @@ -189,6 +196,22 @@ int EC_GROUP_copy(EC_GROUP *dest, const EC_GROUP *src) return 0; } + if (EC_GROUP_VERSION(src) && src->mont_data != NULL) { + if (dest->mont_data == NULL) { + dest->mont_data = BN_MONT_CTX_new(); + if (dest->mont_data == NULL) + return 0; + } + if (!BN_MONT_CTX_copy(dest->mont_data, src->mont_data)) + return 0; + } else { + /* src->generator == NULL */ + if (EC_GROUP_VERSION(dest) && dest->mont_data != NULL) { + BN_MONT_CTX_free(dest->mont_data); + dest->mont_data = NULL; + } + } + if (src->generator != NULL) { if (dest->generator == NULL) { dest->generator = EC_POINT_new(dest); @@ -295,6 +318,13 @@ int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, } else BN_zero(&group->cofactor); + /* + * We ignore the return value because some groups have an order with + * factors of two, which makes the Montgomery setup fail. + * |group->mont_data| will be NULL in this case. + */ + ec_precompute_mont_data(group); + return 1; } @@ -303,6 +333,11 @@ const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group) return group->generator; } +BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group) +{ + return EC_GROUP_VERSION(group) ? group->mont_data : NULL; +} + int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx) { if (!BN_copy(order, &group->order)) @@ -332,12 +367,13 @@ int EC_GROUP_get_curve_name(const EC_GROUP *group) void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag) { - group->asn1_flag = flag; + group->asn1_flag &= ~EC_GROUP_ASN1_FLAG_MASK; + group->asn1_flag |= flag & EC_GROUP_ASN1_FLAG_MASK; } int EC_GROUP_get_asn1_flag(const EC_GROUP *group) { - return group->asn1_flag; + return group->asn1_flag & EC_GROUP_ASN1_FLAG_MASK; } void EC_GROUP_set_point_conversion_form(EC_GROUP *group, @@ -1057,3 +1093,42 @@ int EC_GROUP_have_precompute_mult(const EC_GROUP *group) return 0; /* cannot tell whether precomputation has * been performed */ } + +/* + * ec_precompute_mont_data sets |group->mont_data| from |group->order| and + * returns one on success. On error it returns zero. + */ +int ec_precompute_mont_data(EC_GROUP *group) +{ + BN_CTX *ctx = BN_CTX_new(); + int ret = 0; + + if (!EC_GROUP_VERSION(group)) + goto err; + + if (group->mont_data) { + BN_MONT_CTX_free(group->mont_data); + group->mont_data = NULL; + } + + if (ctx == NULL) + goto err; + + group->mont_data = BN_MONT_CTX_new(); + if (!group->mont_data) + goto err; + + if (!BN_MONT_CTX_set(group->mont_data, &group->order, ctx)) { + BN_MONT_CTX_free(group->mont_data); + group->mont_data = NULL; + goto err; + } + + ret = 1; + + err: + + if (ctx) + BN_CTX_free(ctx); + return ret; +} diff --git a/libs/openssl/crypto/ec/ec_pmeth.c b/libs/openssl/crypto/ec/ec_pmeth.c index c189d3ff..b7674901 100644 --- a/libs/openssl/crypto/ec/ec_pmeth.c +++ b/libs/openssl/crypto/ec/ec_pmeth.c @@ -61,6 +61,7 @@ #include #include #include +#include "ec_lcl.h" #include #include #include "evp_locl.h" @@ -72,6 +73,19 @@ typedef struct { EC_GROUP *gen_group; /* message digest */ const EVP_MD *md; + /* Duplicate key if custom cofactor needed */ + EC_KEY *co_key; + /* Cofactor mode */ + signed char cofactor_mode; + /* KDF (if any) to use for ECDH */ + char kdf_type; + /* Message digest to use for key derivation */ + const EVP_MD *kdf_md; + /* User key material */ + unsigned char *kdf_ukm; + size_t kdf_ukmlen; + /* KDF output length */ + size_t kdf_outlen; } EC_PKEY_CTX; static int pkey_ec_init(EVP_PKEY_CTX *ctx) @@ -83,6 +97,14 @@ static int pkey_ec_init(EVP_PKEY_CTX *ctx) dctx->gen_group = NULL; dctx->md = NULL; + dctx->cofactor_mode = -1; + dctx->co_key = NULL; + dctx->kdf_type = EVP_PKEY_ECDH_KDF_NONE; + dctx->kdf_md = NULL; + dctx->kdf_outlen = 0; + dctx->kdf_ukm = NULL; + dctx->kdf_ukmlen = 0; + ctx->data = dctx; return 1; @@ -101,6 +123,22 @@ static int pkey_ec_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src) return 0; } dctx->md = sctx->md; + + if (sctx->co_key) { + dctx->co_key = EC_KEY_dup(sctx->co_key); + if (!dctx->co_key) + return 0; + } + dctx->kdf_type = sctx->kdf_type; + dctx->kdf_md = sctx->kdf_md; + dctx->kdf_outlen = sctx->kdf_outlen; + if (sctx->kdf_ukm) { + dctx->kdf_ukm = BUF_memdup(sctx->kdf_ukm, sctx->kdf_ukmlen); + if (!dctx->kdf_ukm) + return 0; + } else + dctx->kdf_ukm = NULL; + dctx->kdf_ukmlen = sctx->kdf_ukmlen; return 1; } @@ -110,6 +148,10 @@ static void pkey_ec_cleanup(EVP_PKEY_CTX *ctx) if (dctx) { if (dctx->gen_group) EC_GROUP_free(dctx->gen_group); + if (dctx->co_key) + EC_KEY_free(dctx->co_key); + if (dctx->kdf_ukm) + OPENSSL_free(dctx->kdf_ukm); OPENSSL_free(dctx); } } @@ -168,18 +210,21 @@ static int pkey_ec_derive(EVP_PKEY_CTX *ctx, unsigned char *key, int ret; size_t outlen; const EC_POINT *pubkey = NULL; + EC_KEY *eckey; + EC_PKEY_CTX *dctx = ctx->data; if (!ctx->pkey || !ctx->peerkey) { ECerr(EC_F_PKEY_EC_DERIVE, EC_R_KEYS_NOT_SET); return 0; } + eckey = dctx->co_key ? dctx->co_key : ctx->pkey->pkey.ec; + if (!key) { const EC_GROUP *group; - group = EC_KEY_get0_group(ctx->pkey->pkey.ec); + group = EC_KEY_get0_group(eckey); *keylen = (EC_GROUP_get_degree(group) + 7) / 8; return 1; } - pubkey = EC_KEY_get0_public_key(ctx->peerkey->pkey.ec); /* @@ -189,12 +234,48 @@ static int pkey_ec_derive(EVP_PKEY_CTX *ctx, unsigned char *key, outlen = *keylen; - ret = ECDH_compute_key(key, outlen, pubkey, ctx->pkey->pkey.ec, 0); - if (ret < 0) - return ret; + ret = ECDH_compute_key(key, outlen, pubkey, eckey, 0); + if (ret <= 0) + return 0; *keylen = ret; return 1; } + +static int pkey_ec_kdf_derive(EVP_PKEY_CTX *ctx, + unsigned char *key, size_t *keylen) +{ + EC_PKEY_CTX *dctx = ctx->data; + unsigned char *ktmp = NULL; + size_t ktmplen; + int rv = 0; + if (dctx->kdf_type == EVP_PKEY_ECDH_KDF_NONE) + return pkey_ec_derive(ctx, key, keylen); + if (!key) { + *keylen = dctx->kdf_outlen; + return 1; + } + if (*keylen != dctx->kdf_outlen) + return 0; + if (!pkey_ec_derive(ctx, NULL, &ktmplen)) + return 0; + ktmp = OPENSSL_malloc(ktmplen); + if (!ktmp) + return 0; + if (!pkey_ec_derive(ctx, ktmp, &ktmplen)) + goto err; + /* Do KDF stuff */ + if (!ECDH_KDF_X9_62(key, *keylen, ktmp, ktmplen, + dctx->kdf_ukm, dctx->kdf_ukmlen, dctx->kdf_md)) + goto err; + rv = 1; + + err: + if (ktmp) { + OPENSSL_cleanse(ktmp, ktmplen); + OPENSSL_free(ktmp); + } + return rv; +} #endif static int pkey_ec_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) @@ -213,6 +294,90 @@ static int pkey_ec_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) dctx->gen_group = group; return 1; + case EVP_PKEY_CTRL_EC_PARAM_ENC: + if (!dctx->gen_group) { + ECerr(EC_F_PKEY_EC_CTRL, EC_R_NO_PARAMETERS_SET); + return 0; + } + EC_GROUP_set_asn1_flag(dctx->gen_group, p1); + return 1; + +#ifndef OPENSSL_NO_ECDH + case EVP_PKEY_CTRL_EC_ECDH_COFACTOR: + if (p1 == -2) { + if (dctx->cofactor_mode != -1) + return dctx->cofactor_mode; + else { + EC_KEY *ec_key = ctx->pkey->pkey.ec; + return EC_KEY_get_flags(ec_key) & EC_FLAG_COFACTOR_ECDH ? 1 : + 0; + } + } else if (p1 < -1 || p1 > 1) + return -2; + dctx->cofactor_mode = p1; + if (p1 != -1) { + EC_KEY *ec_key = ctx->pkey->pkey.ec; + if (!ec_key->group) + return -2; + /* If cofactor is 1 cofactor mode does nothing */ + if (BN_is_one(&ec_key->group->cofactor)) + return 1; + if (!dctx->co_key) { + dctx->co_key = EC_KEY_dup(ec_key); + if (!dctx->co_key) + return 0; + } + if (p1) + EC_KEY_set_flags(dctx->co_key, EC_FLAG_COFACTOR_ECDH); + else + EC_KEY_clear_flags(dctx->co_key, EC_FLAG_COFACTOR_ECDH); + } else if (dctx->co_key) { + EC_KEY_free(dctx->co_key); + dctx->co_key = NULL; + } + return 1; +#endif + + case EVP_PKEY_CTRL_EC_KDF_TYPE: + if (p1 == -2) + return dctx->kdf_type; + if (p1 != EVP_PKEY_ECDH_KDF_NONE && p1 != EVP_PKEY_ECDH_KDF_X9_62) + return -2; + dctx->kdf_type = p1; + return 1; + + case EVP_PKEY_CTRL_EC_KDF_MD: + dctx->kdf_md = p2; + return 1; + + case EVP_PKEY_CTRL_GET_EC_KDF_MD: + *(const EVP_MD **)p2 = dctx->kdf_md; + return 1; + + case EVP_PKEY_CTRL_EC_KDF_OUTLEN: + if (p1 <= 0) + return -2; + dctx->kdf_outlen = (size_t)p1; + return 1; + + case EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN: + *(int *)p2 = dctx->kdf_outlen; + return 1; + + case EVP_PKEY_CTRL_EC_KDF_UKM: + if (dctx->kdf_ukm) + OPENSSL_free(dctx->kdf_ukm); + dctx->kdf_ukm = p2; + if (p2) + dctx->kdf_ukmlen = p1; + else + dctx->kdf_ukmlen = 0; + return 1; + + case EVP_PKEY_CTRL_GET_EC_KDF_UKM: + *(unsigned char **)p2 = dctx->kdf_ukm; + return dctx->kdf_ukmlen; + case EVP_PKEY_CTRL_MD: if (EVP_MD_type((const EVP_MD *)p2) != NID_sha1 && EVP_MD_type((const EVP_MD *)p2) != NID_ecdsa_with_SHA1 && @@ -226,6 +391,10 @@ static int pkey_ec_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) dctx->md = p2; return 1; + case EVP_PKEY_CTRL_GET_MD: + *(const EVP_MD **)p2 = dctx->md; + return 1; + case EVP_PKEY_CTRL_PEER_KEY: /* Default behaviour is OK */ case EVP_PKEY_CTRL_DIGESTINIT: @@ -244,7 +413,9 @@ static int pkey_ec_ctrl_str(EVP_PKEY_CTX *ctx, { if (!strcmp(type, "ec_paramgen_curve")) { int nid; - nid = OBJ_sn2nid(value); + nid = EC_curve_nist2nid(value); + if (nid == NID_undef) + nid = OBJ_sn2nid(value); if (nid == NID_undef) nid = OBJ_ln2nid(value); if (nid == NID_undef) { @@ -252,7 +423,28 @@ static int pkey_ec_ctrl_str(EVP_PKEY_CTX *ctx, return 0; } return EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid); + } else if (!strcmp(type, "ec_param_enc")) { + int param_enc; + if (!strcmp(value, "explicit")) + param_enc = 0; + else if (!strcmp(value, "named_curve")) + param_enc = OPENSSL_EC_NAMED_CURVE; + else + return -2; + return EVP_PKEY_CTX_set_ec_param_enc(ctx, param_enc); + } else if (!strcmp(type, "ecdh_kdf_md")) { + const EVP_MD *md; + if (!(md = EVP_get_digestbyname(value))) { + ECerr(EC_F_PKEY_EC_CTRL_STR, EC_R_INVALID_DIGEST); + return 0; + } + return EVP_PKEY_CTX_set_ecdh_kdf_md(ctx, md); + } else if (!strcmp(type, "ecdh_cofactor_mode")) { + int co_mode; + co_mode = atoi(value); + return EVP_PKEY_CTX_set_ecdh_cofactor_mode(ctx, co_mode); } + return -2; } @@ -279,7 +471,8 @@ static int pkey_ec_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) static int pkey_ec_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) { EC_KEY *ec = NULL; - if (ctx->pkey == NULL) { + EC_PKEY_CTX *dctx = ctx->data; + if (ctx->pkey == NULL && dctx->gen_group == NULL) { ECerr(EC_F_PKEY_EC_KEYGEN, EC_R_NO_PARAMETERS_SET); return 0; } @@ -287,9 +480,14 @@ static int pkey_ec_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) if (!ec) return 0; EVP_PKEY_assign_EC_KEY(pkey, ec); - /* Note: if error return, pkey is freed by parent routine */ - if (!EVP_PKEY_copy_parameters(pkey, ctx->pkey)) - return 0; + if (ctx->pkey) { + /* Note: if error return, pkey is freed by parent routine */ + if (!EVP_PKEY_copy_parameters(pkey, ctx->pkey)) + return 0; + } else { + if (!EC_KEY_set_group(ec, dctx->gen_group)) + return 0; + } return EC_KEY_generate_key(pkey->pkey.ec); } @@ -322,7 +520,7 @@ const EVP_PKEY_METHOD ec_pkey_meth = { 0, #ifndef OPENSSL_NO_ECDH - pkey_ec_derive, + pkey_ec_kdf_derive, #else 0, #endif diff --git a/libs/openssl/crypto/ec/eck_prn.c b/libs/openssl/crypto/ec/eck_prn.c index 5ef12ec0..df9b37a7 100644 --- a/libs/openssl/crypto/ec/eck_prn.c +++ b/libs/openssl/crypto/ec/eck_prn.c @@ -171,6 +171,7 @@ int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off) if (EC_GROUP_get_asn1_flag(x)) { /* the curve parameter are given by an asn1 OID */ int nid; + const char *nname; if (!BIO_indent(bp, off, 128)) goto err; @@ -183,6 +184,13 @@ int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off) goto err; if (BIO_printf(bp, "\n") <= 0) goto err; + nname = EC_curve_nid2nist(nid); + if (nname) { + if (!BIO_indent(bp, off, 128)) + goto err; + if (BIO_printf(bp, "NIST CURVE: %s\n", nname) <= 0) + goto err; + } } else { /* explicit parameters */ int is_char_two = 0; diff --git a/libs/openssl/crypto/ec/ecp_nistp521.c b/libs/openssl/crypto/ec/ecp_nistp521.c index cc763451..360b9a35 100644 --- a/libs/openssl/crypto/ec/ecp_nistp521.c +++ b/libs/openssl/crypto/ec/ecp_nistp521.c @@ -1282,11 +1282,11 @@ static void point_add(felem x3, felem y3, felem z3, felem_scalar128(tmp2, 2); /* tmp2[i] < 17*2^121 */ felem_diff128(tmp, tmp2); - /*- - * tmp[i] < 2^127 - 2^69 + 17*2^122 - * = 2^126 - 2^122 - 2^6 - 2^2 - 1 - * < 2^127 - */ + /*- + * tmp[i] < 2^127 - 2^69 + 17*2^122 + * = 2^126 - 2^122 - 2^6 - 2^2 - 1 + * < 2^127 + */ felem_reduce(y_out, tmp); copy_conditional(x_out, x2, z1_is_zero); diff --git a/libs/openssl/crypto/ec/ecp_nistz256.c b/libs/openssl/crypto/ec/ecp_nistz256.c new file mode 100644 index 00000000..ca44d0aa --- /dev/null +++ b/libs/openssl/crypto/ec/ecp_nistz256.c @@ -0,0 +1,1521 @@ +/****************************************************************************** + * * + * Copyright 2014 Intel Corporation * + * * + * Licensed under the Apache License, Version 2.0 (the "License"); * + * you may not use this file except in compliance with the License. * + * You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, software * + * distributed under the License is distributed on an "AS IS" BASIS, * + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * + * See the License for the specific language governing permissions and * + * limitations under the License. * + * * + ****************************************************************************** + * * + * Developers and authors: * + * Shay Gueron (1, 2), and Vlad Krasnov (1) * + * (1) Intel Corporation, Israel Development Center * + * (2) University of Haifa * + * Reference: * + * S.Gueron and V.Krasnov, "Fast Prime Field Elliptic Curve Cryptography with * + * 256 Bit Primes" * + * * + ******************************************************************************/ + +#include + +#include +#include +#include +#include "cryptlib.h" + +#include "ec_lcl.h" + +#if BN_BITS2 != 64 +# define TOBN(hi,lo) lo,hi +#else +# define TOBN(hi,lo) ((BN_ULONG)hi<<32|lo) +#endif + +#if defined(__GNUC__) +# define ALIGN32 __attribute((aligned(32))) +#elif defined(_MSC_VER) +# define ALIGN32 __declspec(align(32)) +#else +# define ALIGN32 +#endif + +#define ALIGNPTR(p,N) ((unsigned char *)p+N-(size_t)p%N) +#define P256_LIMBS (256/BN_BITS2) + +typedef unsigned short u16; + +typedef struct { + BN_ULONG X[P256_LIMBS]; + BN_ULONG Y[P256_LIMBS]; + BN_ULONG Z[P256_LIMBS]; +} P256_POINT; + +typedef struct { + BN_ULONG X[P256_LIMBS]; + BN_ULONG Y[P256_LIMBS]; +} P256_POINT_AFFINE; + +typedef P256_POINT_AFFINE PRECOMP256_ROW[64]; + +/* structure for precomputed multiples of the generator */ +typedef struct ec_pre_comp_st { + const EC_GROUP *group; /* Parent EC_GROUP object */ + size_t w; /* Window size */ + /* + * Constant time access to the X and Y coordinates of the pre-computed, + * generator multiplies, in the Montgomery domain. Pre-calculated + * multiplies are stored in affine form. + */ + PRECOMP256_ROW *precomp; + void *precomp_storage; + int references; +} EC_PRE_COMP; + +/* Functions implemented in assembly */ +/* Modular mul by 2: res = 2*a mod P */ +void ecp_nistz256_mul_by_2(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS]); +/* Modular div by 2: res = a/2 mod P */ +void ecp_nistz256_div_by_2(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS]); +/* Modular mul by 3: res = 3*a mod P */ +void ecp_nistz256_mul_by_3(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS]); +/* Modular add: res = a+b mod P */ +void ecp_nistz256_add(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS], + const BN_ULONG b[P256_LIMBS]); +/* Modular sub: res = a-b mod P */ +void ecp_nistz256_sub(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS], + const BN_ULONG b[P256_LIMBS]); +/* Modular neg: res = -a mod P */ +void ecp_nistz256_neg(BN_ULONG res[P256_LIMBS], const BN_ULONG a[P256_LIMBS]); +/* Montgomery mul: res = a*b*2^-256 mod P */ +void ecp_nistz256_mul_mont(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS], + const BN_ULONG b[P256_LIMBS]); +/* Montgomery sqr: res = a*a*2^-256 mod P */ +void ecp_nistz256_sqr_mont(BN_ULONG res[P256_LIMBS], + const BN_ULONG a[P256_LIMBS]); +/* Convert a number from Montgomery domain, by multiplying with 1 */ +void ecp_nistz256_from_mont(BN_ULONG res[P256_LIMBS], + const BN_ULONG in[P256_LIMBS]); +/* Convert a number to Montgomery domain, by multiplying with 2^512 mod P*/ +void ecp_nistz256_to_mont(BN_ULONG res[P256_LIMBS], + const BN_ULONG in[P256_LIMBS]); +/* Functions that perform constant time access to the precomputed tables */ +void ecp_nistz256_select_w5(P256_POINT * val, + const P256_POINT * in_t, int index); +void ecp_nistz256_select_w7(P256_POINT_AFFINE * val, + const P256_POINT_AFFINE * in_t, int index); + +/* One converted into the Montgomery domain */ +static const BN_ULONG ONE[P256_LIMBS] = { + TOBN(0x00000000, 0x00000001), TOBN(0xffffffff, 0x00000000), + TOBN(0xffffffff, 0xffffffff), TOBN(0x00000000, 0xfffffffe) +}; + +static void *ecp_nistz256_pre_comp_dup(void *); +static void ecp_nistz256_pre_comp_free(void *); +static void ecp_nistz256_pre_comp_clear_free(void *); +static EC_PRE_COMP *ecp_nistz256_pre_comp_new(const EC_GROUP *group); + +/* Precomputed tables for the default generator */ +#include "ecp_nistz256_table.c" + +/* Recode window to a signed digit, see ecp_nistputil.c for details */ +static unsigned int _booth_recode_w5(unsigned int in) +{ + unsigned int s, d; + + s = ~((in >> 5) - 1); + d = (1 << 6) - in - 1; + d = (d & s) | (in & ~s); + d = (d >> 1) + (d & 1); + + return (d << 1) + (s & 1); +} + +static unsigned int _booth_recode_w7(unsigned int in) +{ + unsigned int s, d; + + s = ~((in >> 7) - 1); + d = (1 << 8) - in - 1; + d = (d & s) | (in & ~s); + d = (d >> 1) + (d & 1); + + return (d << 1) + (s & 1); +} + +static void copy_conditional(BN_ULONG dst[P256_LIMBS], + const BN_ULONG src[P256_LIMBS], BN_ULONG move) +{ + BN_ULONG mask1 = -move; + BN_ULONG mask2 = ~mask1; + + dst[0] = (src[0] & mask1) ^ (dst[0] & mask2); + dst[1] = (src[1] & mask1) ^ (dst[1] & mask2); + dst[2] = (src[2] & mask1) ^ (dst[2] & mask2); + dst[3] = (src[3] & mask1) ^ (dst[3] & mask2); + if (P256_LIMBS == 8) { + dst[4] = (src[4] & mask1) ^ (dst[4] & mask2); + dst[5] = (src[5] & mask1) ^ (dst[5] & mask2); + dst[6] = (src[6] & mask1) ^ (dst[6] & mask2); + dst[7] = (src[7] & mask1) ^ (dst[7] & mask2); + } +} + +static BN_ULONG is_zero(BN_ULONG in) +{ + in |= (0 - in); + in = ~in; + in &= BN_MASK2; + in >>= BN_BITS2 - 1; + return in; +} + +static BN_ULONG is_equal(const BN_ULONG a[P256_LIMBS], + const BN_ULONG b[P256_LIMBS]) +{ + BN_ULONG res; + + res = a[0] ^ b[0]; + res |= a[1] ^ b[1]; + res |= a[2] ^ b[2]; + res |= a[3] ^ b[3]; + if (P256_LIMBS == 8) { + res |= a[4] ^ b[4]; + res |= a[5] ^ b[5]; + res |= a[6] ^ b[6]; + res |= a[7] ^ b[7]; + } + + return is_zero(res); +} + +static BN_ULONG is_one(const BN_ULONG a[P256_LIMBS]) +{ + BN_ULONG res; + + res = a[0] ^ ONE[0]; + res |= a[1] ^ ONE[1]; + res |= a[2] ^ ONE[2]; + res |= a[3] ^ ONE[3]; + if (P256_LIMBS == 8) { + res |= a[4] ^ ONE[4]; + res |= a[5] ^ ONE[5]; + res |= a[6] ^ ONE[6]; + } + + return is_zero(res); +} + +static int ecp_nistz256_set_words(BIGNUM *a, BN_ULONG words[P256_LIMBS]) + { + if (bn_wexpand(a, P256_LIMBS) == NULL) { + ECerr(EC_F_ECP_NISTZ256_SET_WORDS, ERR_R_MALLOC_FAILURE); + return 0; + } + memcpy(a->d, words, sizeof(BN_ULONG) * P256_LIMBS); + a->top = P256_LIMBS; + bn_correct_top(a); + return 1; +} + +#ifndef ECP_NISTZ256_REFERENCE_IMPLEMENTATION +void ecp_nistz256_point_double(P256_POINT *r, const P256_POINT *a); +void ecp_nistz256_point_add(P256_POINT *r, + const P256_POINT *a, const P256_POINT *b); +void ecp_nistz256_point_add_affine(P256_POINT *r, + const P256_POINT *a, + const P256_POINT_AFFINE *b); +#else +/* Point double: r = 2*a */ +static void ecp_nistz256_point_double(P256_POINT *r, const P256_POINT *a) +{ + BN_ULONG S[P256_LIMBS]; + BN_ULONG M[P256_LIMBS]; + BN_ULONG Zsqr[P256_LIMBS]; + BN_ULONG tmp0[P256_LIMBS]; + + const BN_ULONG *in_x = a->X; + const BN_ULONG *in_y = a->Y; + const BN_ULONG *in_z = a->Z; + + BN_ULONG *res_x = r->X; + BN_ULONG *res_y = r->Y; + BN_ULONG *res_z = r->Z; + + ecp_nistz256_mul_by_2(S, in_y); + + ecp_nistz256_sqr_mont(Zsqr, in_z); + + ecp_nistz256_sqr_mont(S, S); + + ecp_nistz256_mul_mont(res_z, in_z, in_y); + ecp_nistz256_mul_by_2(res_z, res_z); + + ecp_nistz256_add(M, in_x, Zsqr); + ecp_nistz256_sub(Zsqr, in_x, Zsqr); + + ecp_nistz256_sqr_mont(res_y, S); + ecp_nistz256_div_by_2(res_y, res_y); + + ecp_nistz256_mul_mont(M, M, Zsqr); + ecp_nistz256_mul_by_3(M, M); + + ecp_nistz256_mul_mont(S, S, in_x); + ecp_nistz256_mul_by_2(tmp0, S); + + ecp_nistz256_sqr_mont(res_x, M); + + ecp_nistz256_sub(res_x, res_x, tmp0); + ecp_nistz256_sub(S, S, res_x); + + ecp_nistz256_mul_mont(S, S, M); + ecp_nistz256_sub(res_y, S, res_y); +} + +/* Point addition: r = a+b */ +static void ecp_nistz256_point_add(P256_POINT *r, + const P256_POINT *a, const P256_POINT *b) +{ + BN_ULONG U2[P256_LIMBS], S2[P256_LIMBS]; + BN_ULONG U1[P256_LIMBS], S1[P256_LIMBS]; + BN_ULONG Z1sqr[P256_LIMBS]; + BN_ULONG Z2sqr[P256_LIMBS]; + BN_ULONG H[P256_LIMBS], R[P256_LIMBS]; + BN_ULONG Hsqr[P256_LIMBS]; + BN_ULONG Rsqr[P256_LIMBS]; + BN_ULONG Hcub[P256_LIMBS]; + + BN_ULONG res_x[P256_LIMBS]; + BN_ULONG res_y[P256_LIMBS]; + BN_ULONG res_z[P256_LIMBS]; + + BN_ULONG in1infty, in2infty; + + const BN_ULONG *in1_x = a->X; + const BN_ULONG *in1_y = a->Y; + const BN_ULONG *in1_z = a->Z; + + const BN_ULONG *in2_x = b->X; + const BN_ULONG *in2_y = b->Y; + const BN_ULONG *in2_z = b->Z; + + /* We encode infinity as (0,0), which is not on the curve, + * so it is OK. */ + in1infty = (in1_x[0] | in1_x[1] | in1_x[2] | in1_x[3] | + in1_y[0] | in1_y[1] | in1_y[2] | in1_y[3]); + if (P256_LIMBS == 8) + in1infty |= (in1_x[4] | in1_x[5] | in1_x[6] | in1_x[7] | + in1_y[4] | in1_y[5] | in1_y[6] | in1_y[7]); + + in2infty = (in2_x[0] | in2_x[1] | in2_x[2] | in2_x[3] | + in2_y[0] | in2_y[1] | in2_y[2] | in2_y[3]); + if (P256_LIMBS == 8) + in2infty |= (in2_x[4] | in2_x[5] | in2_x[6] | in2_x[7] | + in2_y[4] | in2_y[5] | in2_y[6] | in2_y[7]); + + in1infty = is_zero(in1infty); + in2infty = is_zero(in2infty); + + ecp_nistz256_sqr_mont(Z2sqr, in2_z); /* Z2^2 */ + ecp_nistz256_sqr_mont(Z1sqr, in1_z); /* Z1^2 */ + + ecp_nistz256_mul_mont(S1, Z2sqr, in2_z); /* S1 = Z2^3 */ + ecp_nistz256_mul_mont(S2, Z1sqr, in1_z); /* S2 = Z1^3 */ + + ecp_nistz256_mul_mont(S1, S1, in1_y); /* S1 = Y1*Z2^3 */ + ecp_nistz256_mul_mont(S2, S2, in2_y); /* S2 = Y2*Z1^3 */ + ecp_nistz256_sub(R, S2, S1); /* R = S2 - S1 */ + + ecp_nistz256_mul_mont(U1, in1_x, Z2sqr); /* U1 = X1*Z2^2 */ + ecp_nistz256_mul_mont(U2, in2_x, Z1sqr); /* U2 = X2*Z1^2 */ + ecp_nistz256_sub(H, U2, U1); /* H = U2 - U1 */ + + /* + * This should not happen during sign/ecdh, so no constant time violation + */ + if (is_equal(U1, U2) && !in1infty && !in2infty) { + if (is_equal(S1, S2)) { + ecp_nistz256_point_double(r, a); + return; + } else { + memset(r, 0, sizeof(*r)); + return; + } + } + + ecp_nistz256_sqr_mont(Rsqr, R); /* R^2 */ + ecp_nistz256_mul_mont(res_z, H, in1_z); /* Z3 = H*Z1*Z2 */ + ecp_nistz256_sqr_mont(Hsqr, H); /* H^2 */ + ecp_nistz256_mul_mont(res_z, res_z, in2_z); /* Z3 = H*Z1*Z2 */ + ecp_nistz256_mul_mont(Hcub, Hsqr, H); /* H^3 */ + + ecp_nistz256_mul_mont(U2, U1, Hsqr); /* U1*H^2 */ + ecp_nistz256_mul_by_2(Hsqr, U2); /* 2*U1*H^2 */ + + ecp_nistz256_sub(res_x, Rsqr, Hsqr); + ecp_nistz256_sub(res_x, res_x, Hcub); + + ecp_nistz256_sub(res_y, U2, res_x); + + ecp_nistz256_mul_mont(S2, S1, Hcub); + ecp_nistz256_mul_mont(res_y, R, res_y); + ecp_nistz256_sub(res_y, res_y, S2); + + copy_conditional(res_x, in2_x, in1infty); + copy_conditional(res_y, in2_y, in1infty); + copy_conditional(res_z, in2_z, in1infty); + + copy_conditional(res_x, in1_x, in2infty); + copy_conditional(res_y, in1_y, in2infty); + copy_conditional(res_z, in1_z, in2infty); + + memcpy(r->X, res_x, sizeof(res_x)); + memcpy(r->Y, res_y, sizeof(res_y)); + memcpy(r->Z, res_z, sizeof(res_z)); +} + +/* Point addition when b is known to be affine: r = a+b */ +static void ecp_nistz256_point_add_affine(P256_POINT *r, + const P256_POINT *a, + const P256_POINT_AFFINE *b) +{ + BN_ULONG U2[P256_LIMBS], S2[P256_LIMBS]; + BN_ULONG Z1sqr[P256_LIMBS]; + BN_ULONG H[P256_LIMBS], R[P256_LIMBS]; + BN_ULONG Hsqr[P256_LIMBS]; + BN_ULONG Rsqr[P256_LIMBS]; + BN_ULONG Hcub[P256_LIMBS]; + + BN_ULONG res_x[P256_LIMBS]; + BN_ULONG res_y[P256_LIMBS]; + BN_ULONG res_z[P256_LIMBS]; + + BN_ULONG in1infty, in2infty; + + const BN_ULONG *in1_x = a->X; + const BN_ULONG *in1_y = a->Y; + const BN_ULONG *in1_z = a->Z; + + const BN_ULONG *in2_x = b->X; + const BN_ULONG *in2_y = b->Y; + + /* + * In affine representation we encode infty as (0,0), which is not on the + * curve, so it is OK + */ + in1infty = (in1_x[0] | in1_x[1] | in1_x[2] | in1_x[3] | + in1_y[0] | in1_y[1] | in1_y[2] | in1_y[3]); + if (P256_LIMBS == 8) + in1infty |= (in1_x[4] | in1_x[5] | in1_x[6] | in1_x[7] | + in1_y[4] | in1_y[5] | in1_y[6] | in1_y[7]); + + in2infty = (in2_x[0] | in2_x[1] | in2_x[2] | in2_x[3] | + in2_y[0] | in2_y[1] | in2_y[2] | in2_y[3]); + if (P256_LIMBS == 8) + in2infty |= (in2_x[4] | in2_x[5] | in2_x[6] | in2_x[7] | + in2_y[4] | in2_y[5] | in2_y[6] | in2_y[7]); + + in1infty = is_zero(in1infty); + in2infty = is_zero(in2infty); + + ecp_nistz256_sqr_mont(Z1sqr, in1_z); /* Z1^2 */ + + ecp_nistz256_mul_mont(U2, in2_x, Z1sqr); /* U2 = X2*Z1^2 */ + ecp_nistz256_sub(H, U2, in1_x); /* H = U2 - U1 */ + + ecp_nistz256_mul_mont(S2, Z1sqr, in1_z); /* S2 = Z1^3 */ + + ecp_nistz256_mul_mont(res_z, H, in1_z); /* Z3 = H*Z1*Z2 */ + + ecp_nistz256_mul_mont(S2, S2, in2_y); /* S2 = Y2*Z1^3 */ + ecp_nistz256_sub(R, S2, in1_y); /* R = S2 - S1 */ + + ecp_nistz256_sqr_mont(Hsqr, H); /* H^2 */ + ecp_nistz256_sqr_mont(Rsqr, R); /* R^2 */ + ecp_nistz256_mul_mont(Hcub, Hsqr, H); /* H^3 */ + + ecp_nistz256_mul_mont(U2, in1_x, Hsqr); /* U1*H^2 */ + ecp_nistz256_mul_by_2(Hsqr, U2); /* 2*U1*H^2 */ + + ecp_nistz256_sub(res_x, Rsqr, Hsqr); + ecp_nistz256_sub(res_x, res_x, Hcub); + ecp_nistz256_sub(H, U2, res_x); + + ecp_nistz256_mul_mont(S2, in1_y, Hcub); + ecp_nistz256_mul_mont(H, H, R); + ecp_nistz256_sub(res_y, H, S2); + + copy_conditional(res_x, in2_x, in1infty); + copy_conditional(res_x, in1_x, in2infty); + + copy_conditional(res_y, in2_y, in1infty); + copy_conditional(res_y, in1_y, in2infty); + + copy_conditional(res_z, ONE, in1infty); + copy_conditional(res_z, in1_z, in2infty); + + memcpy(r->X, res_x, sizeof(res_x)); + memcpy(r->Y, res_y, sizeof(res_y)); + memcpy(r->Z, res_z, sizeof(res_z)); +} +#endif + +/* r = in^-1 mod p */ +static void ecp_nistz256_mod_inverse(BN_ULONG r[P256_LIMBS], + const BN_ULONG in[P256_LIMBS]) +{ + /* + * The poly is ffffffff 00000001 00000000 00000000 00000000 ffffffff + * ffffffff ffffffff We use FLT and used poly-2 as exponent + */ + BN_ULONG p2[P256_LIMBS]; + BN_ULONG p4[P256_LIMBS]; + BN_ULONG p8[P256_LIMBS]; + BN_ULONG p16[P256_LIMBS]; + BN_ULONG p32[P256_LIMBS]; + BN_ULONG res[P256_LIMBS]; + int i; + + ecp_nistz256_sqr_mont(res, in); + ecp_nistz256_mul_mont(p2, res, in); /* 3*p */ + + ecp_nistz256_sqr_mont(res, p2); + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_mul_mont(p4, res, p2); /* f*p */ + + ecp_nistz256_sqr_mont(res, p4); + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_mul_mont(p8, res, p4); /* ff*p */ + + ecp_nistz256_sqr_mont(res, p8); + for (i = 0; i < 7; i++) + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_mul_mont(p16, res, p8); /* ffff*p */ + + ecp_nistz256_sqr_mont(res, p16); + for (i = 0; i < 15; i++) + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_mul_mont(p32, res, p16); /* ffffffff*p */ + + ecp_nistz256_sqr_mont(res, p32); + for (i = 0; i < 31; i++) + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_mul_mont(res, res, in); + + for (i = 0; i < 32 * 4; i++) + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_mul_mont(res, res, p32); + + for (i = 0; i < 32; i++) + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_mul_mont(res, res, p32); + + for (i = 0; i < 16; i++) + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_mul_mont(res, res, p16); + + for (i = 0; i < 8; i++) + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_mul_mont(res, res, p8); + + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_mul_mont(res, res, p4); + + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_mul_mont(res, res, p2); + + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_sqr_mont(res, res); + ecp_nistz256_mul_mont(res, res, in); + + memcpy(r, res, sizeof(res)); +} + +/* + * ecp_nistz256_bignum_to_field_elem copies the contents of |in| to |out| and + * returns one if it fits. Otherwise it returns zero. + */ +static int ecp_nistz256_bignum_to_field_elem(BN_ULONG out[P256_LIMBS], + const BIGNUM *in) +{ + if (in->top > P256_LIMBS) + return 0; + + memset(out, 0, sizeof(BN_ULONG) * P256_LIMBS); + memcpy(out, in->d, sizeof(BN_ULONG) * in->top); + return 1; +} + +/* r = sum(scalar[i]*point[i]) */ +static int ecp_nistz256_windowed_mul(const EC_GROUP *group, + P256_POINT *r, + const BIGNUM **scalar, + const EC_POINT **point, + int num, BN_CTX *ctx) +{ + + int i, j, ret = 0; + unsigned int index; + unsigned char (*p_str)[33] = NULL; + const unsigned int window_size = 5; + const unsigned int mask = (1 << (window_size + 1)) - 1; + unsigned int wvalue; + BN_ULONG tmp[P256_LIMBS]; + ALIGN32 P256_POINT h; + const BIGNUM **scalars = NULL; + P256_POINT (*table)[16] = NULL; + void *table_storage = NULL; + + if ((table_storage = + OPENSSL_malloc(num * 16 * sizeof(P256_POINT) + 64)) == NULL + || (p_str = + OPENSSL_malloc(num * 33 * sizeof(unsigned char))) == NULL + || (scalars = OPENSSL_malloc(num * sizeof(BIGNUM *))) == NULL) { + ECerr(EC_F_ECP_NISTZ256_WINDOWED_MUL, ERR_R_MALLOC_FAILURE); + goto err; + } else { + table = (void *)ALIGNPTR(table_storage, 64); + } + + for (i = 0; i < num; i++) { + P256_POINT *row = table[i]; + + /* This is an unusual input, we don't guarantee constant-timeness. */ + if ((BN_num_bits(scalar[i]) > 256) || BN_is_negative(scalar[i])) { + BIGNUM *mod; + + if ((mod = BN_CTX_get(ctx)) == NULL) + goto err; + if (!BN_nnmod(mod, scalar[i], &group->order, ctx)) { + ECerr(EC_F_ECP_NISTZ256_WINDOWED_MUL, ERR_R_BN_LIB); + goto err; + } + scalars[i] = mod; + } else + scalars[i] = scalar[i]; + + for (j = 0; j < scalars[i]->top * BN_BYTES; j += BN_BYTES) { + BN_ULONG d = scalars[i]->d[j / BN_BYTES]; + + p_str[i][j + 0] = d & 0xff; + p_str[i][j + 1] = (d >> 8) & 0xff; + p_str[i][j + 2] = (d >> 16) & 0xff; + p_str[i][j + 3] = (d >>= 24) & 0xff; + if (BN_BYTES == 8) { + d >>= 8; + p_str[i][j + 4] = d & 0xff; + p_str[i][j + 5] = (d >> 8) & 0xff; + p_str[i][j + 6] = (d >> 16) & 0xff; + p_str[i][j + 7] = (d >> 24) & 0xff; + } + } + for (; j < 33; j++) + p_str[i][j] = 0; + + /* table[0] is implicitly (0,0,0) (the point at infinity), + * therefore it is not stored. All other values are actually + * stored with an offset of -1 in table. + */ + + if (!ecp_nistz256_bignum_to_field_elem(row[1 - 1].X, &point[i]->X) + || !ecp_nistz256_bignum_to_field_elem(row[1 - 1].Y, &point[i]->Y) + || !ecp_nistz256_bignum_to_field_elem(row[1 - 1].Z, &point[i]->Z)) { + ECerr(EC_F_ECP_NISTZ256_WINDOWED_MUL, EC_R_COORDINATES_OUT_OF_RANGE); + goto err; + } + + ecp_nistz256_point_double(&row[ 2 - 1], &row[ 1 - 1]); + ecp_nistz256_point_add (&row[ 3 - 1], &row[ 2 - 1], &row[1 - 1]); + ecp_nistz256_point_double(&row[ 4 - 1], &row[ 2 - 1]); + ecp_nistz256_point_double(&row[ 6 - 1], &row[ 3 - 1]); + ecp_nistz256_point_double(&row[ 8 - 1], &row[ 4 - 1]); + ecp_nistz256_point_double(&row[12 - 1], &row[ 6 - 1]); + ecp_nistz256_point_add (&row[ 5 - 1], &row[ 4 - 1], &row[1 - 1]); + ecp_nistz256_point_add (&row[ 7 - 1], &row[ 6 - 1], &row[1 - 1]); + ecp_nistz256_point_add (&row[ 9 - 1], &row[ 8 - 1], &row[1 - 1]); + ecp_nistz256_point_add (&row[13 - 1], &row[12 - 1], &row[1 - 1]); + ecp_nistz256_point_double(&row[14 - 1], &row[ 7 - 1]); + ecp_nistz256_point_double(&row[10 - 1], &row[ 5 - 1]); + ecp_nistz256_point_add (&row[15 - 1], &row[14 - 1], &row[1 - 1]); + ecp_nistz256_point_add (&row[11 - 1], &row[10 - 1], &row[1 - 1]); + ecp_nistz256_point_add (&row[16 - 1], &row[15 - 1], &row[1 - 1]); + } + + index = 255; + + wvalue = p_str[0][(index - 1) / 8]; + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + + ecp_nistz256_select_w5(r, table[0], _booth_recode_w5(wvalue) >> 1); + + while (index >= 5) { + for (i = (index == 255 ? 1 : 0); i < num; i++) { + unsigned int off = (index - 1) / 8; + + wvalue = p_str[i][off] | p_str[i][off + 1] << 8; + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + + wvalue = _booth_recode_w5(wvalue); + + ecp_nistz256_select_w5(&h, table[i], wvalue >> 1); + + ecp_nistz256_neg(tmp, h.Y); + copy_conditional(h.Y, tmp, (wvalue & 1)); + + ecp_nistz256_point_add(r, r, &h); + } + + index -= window_size; + + ecp_nistz256_point_double(r, r); + ecp_nistz256_point_double(r, r); + ecp_nistz256_point_double(r, r); + ecp_nistz256_point_double(r, r); + ecp_nistz256_point_double(r, r); + } + + /* Final window */ + for (i = 0; i < num; i++) { + wvalue = p_str[i][0]; + wvalue = (wvalue << 1) & mask; + + wvalue = _booth_recode_w5(wvalue); + + ecp_nistz256_select_w5(&h, table[i], wvalue >> 1); + + ecp_nistz256_neg(tmp, h.Y); + copy_conditional(h.Y, tmp, wvalue & 1); + + ecp_nistz256_point_add(r, r, &h); + } + + ret = 1; + err: + if (table_storage) + OPENSSL_free(table_storage); + if (p_str) + OPENSSL_free(p_str); + if (scalars) + OPENSSL_free(scalars); + return ret; +} + +/* Coordinates of G, for which we have precomputed tables */ +const static BN_ULONG def_xG[P256_LIMBS] = { + TOBN(0x79e730d4, 0x18a9143c), TOBN(0x75ba95fc, 0x5fedb601), + TOBN(0x79fb732b, 0x77622510), TOBN(0x18905f76, 0xa53755c6) +}; + +const static BN_ULONG def_yG[P256_LIMBS] = { + TOBN(0xddf25357, 0xce95560a), TOBN(0x8b4ab8e4, 0xba19e45c), + TOBN(0xd2e88688, 0xdd21f325), TOBN(0x8571ff18, 0x25885d85) +}; + +/* + * ecp_nistz256_is_affine_G returns one if |generator| is the standard, P-256 + * generator. + */ +static int ecp_nistz256_is_affine_G(const EC_POINT *generator) +{ + return (generator->X.top == P256_LIMBS) && + (generator->Y.top == P256_LIMBS) && + (generator->Z.top == (P256_LIMBS - P256_LIMBS / 8)) && + is_equal(generator->X.d, def_xG) && + is_equal(generator->Y.d, def_yG) && is_one(generator->Z.d); +} + +static int ecp_nistz256_mult_precompute(EC_GROUP *group, BN_CTX *ctx) +{ + /* + * We precompute a table for a Booth encoded exponent (wNAF) based + * computation. Each table holds 64 values for safe access, with an + * implicit value of infinity at index zero. We use window of size 7, and + * therefore require ceil(256/7) = 37 tables. + */ + BIGNUM *order; + EC_POINT *P = NULL, *T = NULL; + const EC_POINT *generator; + EC_PRE_COMP *pre_comp; + BN_CTX *new_ctx = NULL; + int i, j, k, ret = 0; + size_t w; + + PRECOMP256_ROW *preComputedTable = NULL; + unsigned char *precomp_storage = NULL; + + /* if there is an old EC_PRE_COMP object, throw it away */ + EC_EX_DATA_free_data(&group->extra_data, ecp_nistz256_pre_comp_dup, + ecp_nistz256_pre_comp_free, + ecp_nistz256_pre_comp_clear_free); + + generator = EC_GROUP_get0_generator(group); + if (generator == NULL) { + ECerr(EC_F_ECP_NISTZ256_MULT_PRECOMPUTE, EC_R_UNDEFINED_GENERATOR); + return 0; + } + + if (ecp_nistz256_is_affine_G(generator)) { + /* + * No need to calculate tables for the standard generator because we + * have them statically. + */ + return 1; + } + + if ((pre_comp = ecp_nistz256_pre_comp_new(group)) == NULL) + return 0; + + if (ctx == NULL) { + ctx = new_ctx = BN_CTX_new(); + if (ctx == NULL) + goto err; + } + + BN_CTX_start(ctx); + order = BN_CTX_get(ctx); + + if (order == NULL) + goto err; + + if (!EC_GROUP_get_order(group, order, ctx)) + goto err; + + if (BN_is_zero(order)) { + ECerr(EC_F_ECP_NISTZ256_MULT_PRECOMPUTE, EC_R_UNKNOWN_ORDER); + goto err; + } + + w = 7; + + if ((precomp_storage = + OPENSSL_malloc(37 * 64 * sizeof(P256_POINT_AFFINE) + 64)) == NULL) { + ECerr(EC_F_ECP_NISTZ256_MULT_PRECOMPUTE, ERR_R_MALLOC_FAILURE); + goto err; + } else { + preComputedTable = (void *)ALIGNPTR(precomp_storage, 64); + } + + P = EC_POINT_new(group); + T = EC_POINT_new(group); + if (P == NULL || T == NULL) + goto err; + + /* + * The zero entry is implicitly infinity, and we skip it, storing other + * values with -1 offset. + */ + if (!EC_POINT_copy(T, generator)) + goto err; + + for (k = 0; k < 64; k++) { + if (!EC_POINT_copy(P, T)) + goto err; + for (j = 0; j < 37; j++) { + /* + * It would be faster to use EC_POINTs_make_affine and + * make multiple points affine at the same time. + */ + if (!EC_POINT_make_affine(group, P, ctx)) + goto err; + if (!ecp_nistz256_bignum_to_field_elem(preComputedTable[j][k].X, + &P->X) || + !ecp_nistz256_bignum_to_field_elem(preComputedTable[j][k].Y, + &P->Y)) { + ECerr(EC_F_ECP_NISTZ256_MULT_PRECOMPUTE, + EC_R_COORDINATES_OUT_OF_RANGE); + goto err; + } + for (i = 0; i < 7; i++) { + if (!EC_POINT_dbl(group, P, P, ctx)) + goto err; + } + } + if (!EC_POINT_add(group, T, T, generator, ctx)) + goto err; + } + + pre_comp->group = group; + pre_comp->w = w; + pre_comp->precomp = preComputedTable; + pre_comp->precomp_storage = precomp_storage; + + precomp_storage = NULL; + + if (!EC_EX_DATA_set_data(&group->extra_data, pre_comp, + ecp_nistz256_pre_comp_dup, + ecp_nistz256_pre_comp_free, + ecp_nistz256_pre_comp_clear_free)) { + goto err; + } + + pre_comp = NULL; + + ret = 1; + + err: + if (ctx != NULL) + BN_CTX_end(ctx); + BN_CTX_free(new_ctx); + + if (pre_comp) + ecp_nistz256_pre_comp_free(pre_comp); + if (precomp_storage) + OPENSSL_free(precomp_storage); + if (P) + EC_POINT_free(P); + if (T) + EC_POINT_free(T); + return ret; +} + +/* + * Note that by default ECP_NISTZ256_AVX2 is undefined. While it's great + * code processing 4 points in parallel, corresponding serial operation + * is several times slower, because it uses 29x29=58-bit multiplication + * as opposite to 64x64=128-bit in integer-only scalar case. As result + * it doesn't provide *significant* performance improvement. Note that + * just defining ECP_NISTZ256_AVX2 is not sufficient to make it work, + * you'd need to compile even asm/ecp_nistz256-avx.pl module. + */ +#if defined(ECP_NISTZ256_AVX2) +# if !(defined(__x86_64) || defined(__x86_64__)) || \ + defined(_M_AMD64) || defined(_MX64)) || \ + !(defined(__GNUC__) || defined(_MSC_VER)) /* this is for ALIGN32 */ +# undef ECP_NISTZ256_AVX2 +# else +/* Constant time access, loading four values, from four consecutive tables */ +void ecp_nistz256_avx2_select_w7(P256_POINT_AFFINE * val, + const P256_POINT_AFFINE * in_t, int index); +void ecp_nistz256_avx2_multi_select_w7(void *result, const void *in, int index0, + int index1, int index2, int index3); +void ecp_nistz256_avx2_transpose_convert(void *RESULTx4, const void *in); +void ecp_nistz256_avx2_convert_transpose_back(void *result, const void *Ax4); +void ecp_nistz256_avx2_point_add_affine_x4(void *RESULTx4, const void *Ax4, + const void *Bx4); +void ecp_nistz256_avx2_point_add_affines_x4(void *RESULTx4, const void *Ax4, + const void *Bx4); +void ecp_nistz256_avx2_to_mont(void *RESULTx4, const void *Ax4); +void ecp_nistz256_avx2_from_mont(void *RESULTx4, const void *Ax4); +void ecp_nistz256_avx2_set1(void *RESULTx4); +int ecp_nistz_avx2_eligible(void); + +static void booth_recode_w7(unsigned char *sign, + unsigned char *digit, unsigned char in) +{ + unsigned char s, d; + + s = ~((in >> 7) - 1); + d = (1 << 8) - in - 1; + d = (d & s) | (in & ~s); + d = (d >> 1) + (d & 1); + + *sign = s & 1; + *digit = d; +} + +/* + * ecp_nistz256_avx2_mul_g performs multiplication by G, using only the + * precomputed table. It does 4 affine point additions in parallel, + * significantly speeding up point multiplication for a fixed value. + */ +static void ecp_nistz256_avx2_mul_g(P256_POINT *r, + unsigned char p_str[33], + const P256_POINT_AFFINE(*preComputedTable)[64]) +{ + const unsigned int window_size = 7; + const unsigned int mask = (1 << (window_size + 1)) - 1; + unsigned int wvalue; + /* Using 4 windows at a time */ + unsigned char sign0, digit0; + unsigned char sign1, digit1; + unsigned char sign2, digit2; + unsigned char sign3, digit3; + unsigned int index = 0; + BN_ULONG tmp[P256_LIMBS]; + int i; + + ALIGN32 BN_ULONG aX4[4 * 9 * 3] = { 0 }; + ALIGN32 BN_ULONG bX4[4 * 9 * 2] = { 0 }; + ALIGN32 P256_POINT_AFFINE point_arr[P256_LIMBS]; + ALIGN32 P256_POINT res_point_arr[P256_LIMBS]; + + /* Initial four windows */ + wvalue = *((u16 *) & p_str[0]); + wvalue = (wvalue << 1) & mask; + index += window_size; + booth_recode_w7(&sign0, &digit0, wvalue); + wvalue = *((u16 *) & p_str[(index - 1) / 8]); + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + index += window_size; + booth_recode_w7(&sign1, &digit1, wvalue); + wvalue = *((u16 *) & p_str[(index - 1) / 8]); + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + index += window_size; + booth_recode_w7(&sign2, &digit2, wvalue); + wvalue = *((u16 *) & p_str[(index - 1) / 8]); + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + index += window_size; + booth_recode_w7(&sign3, &digit3, wvalue); + + ecp_nistz256_avx2_multi_select_w7(point_arr, preComputedTable[0], + digit0, digit1, digit2, digit3); + + ecp_nistz256_neg(tmp, point_arr[0].Y); + copy_conditional(point_arr[0].Y, tmp, sign0); + ecp_nistz256_neg(tmp, point_arr[1].Y); + copy_conditional(point_arr[1].Y, tmp, sign1); + ecp_nistz256_neg(tmp, point_arr[2].Y); + copy_conditional(point_arr[2].Y, tmp, sign2); + ecp_nistz256_neg(tmp, point_arr[3].Y); + copy_conditional(point_arr[3].Y, tmp, sign3); + + ecp_nistz256_avx2_transpose_convert(aX4, point_arr); + ecp_nistz256_avx2_to_mont(aX4, aX4); + ecp_nistz256_avx2_to_mont(&aX4[4 * 9], &aX4[4 * 9]); + ecp_nistz256_avx2_set1(&aX4[4 * 9 * 2]); + + wvalue = *((u16 *) & p_str[(index - 1) / 8]); + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + index += window_size; + booth_recode_w7(&sign0, &digit0, wvalue); + wvalue = *((u16 *) & p_str[(index - 1) / 8]); + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + index += window_size; + booth_recode_w7(&sign1, &digit1, wvalue); + wvalue = *((u16 *) & p_str[(index - 1) / 8]); + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + index += window_size; + booth_recode_w7(&sign2, &digit2, wvalue); + wvalue = *((u16 *) & p_str[(index - 1) / 8]); + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + index += window_size; + booth_recode_w7(&sign3, &digit3, wvalue); + + ecp_nistz256_avx2_multi_select_w7(point_arr, preComputedTable[4 * 1], + digit0, digit1, digit2, digit3); + + ecp_nistz256_neg(tmp, point_arr[0].Y); + copy_conditional(point_arr[0].Y, tmp, sign0); + ecp_nistz256_neg(tmp, point_arr[1].Y); + copy_conditional(point_arr[1].Y, tmp, sign1); + ecp_nistz256_neg(tmp, point_arr[2].Y); + copy_conditional(point_arr[2].Y, tmp, sign2); + ecp_nistz256_neg(tmp, point_arr[3].Y); + copy_conditional(point_arr[3].Y, tmp, sign3); + + ecp_nistz256_avx2_transpose_convert(bX4, point_arr); + ecp_nistz256_avx2_to_mont(bX4, bX4); + ecp_nistz256_avx2_to_mont(&bX4[4 * 9], &bX4[4 * 9]); + /* Optimized when both inputs are affine */ + ecp_nistz256_avx2_point_add_affines_x4(aX4, aX4, bX4); + + for (i = 2; i < 9; i++) { + wvalue = *((u16 *) & p_str[(index - 1) / 8]); + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + index += window_size; + booth_recode_w7(&sign0, &digit0, wvalue); + wvalue = *((u16 *) & p_str[(index - 1) / 8]); + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + index += window_size; + booth_recode_w7(&sign1, &digit1, wvalue); + wvalue = *((u16 *) & p_str[(index - 1) / 8]); + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + index += window_size; + booth_recode_w7(&sign2, &digit2, wvalue); + wvalue = *((u16 *) & p_str[(index - 1) / 8]); + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + index += window_size; + booth_recode_w7(&sign3, &digit3, wvalue); + + ecp_nistz256_avx2_multi_select_w7(point_arr, + preComputedTable[4 * i], + digit0, digit1, digit2, digit3); + + ecp_nistz256_neg(tmp, point_arr[0].Y); + copy_conditional(point_arr[0].Y, tmp, sign0); + ecp_nistz256_neg(tmp, point_arr[1].Y); + copy_conditional(point_arr[1].Y, tmp, sign1); + ecp_nistz256_neg(tmp, point_arr[2].Y); + copy_conditional(point_arr[2].Y, tmp, sign2); + ecp_nistz256_neg(tmp, point_arr[3].Y); + copy_conditional(point_arr[3].Y, tmp, sign3); + + ecp_nistz256_avx2_transpose_convert(bX4, point_arr); + ecp_nistz256_avx2_to_mont(bX4, bX4); + ecp_nistz256_avx2_to_mont(&bX4[4 * 9], &bX4[4 * 9]); + + ecp_nistz256_avx2_point_add_affine_x4(aX4, aX4, bX4); + } + + ecp_nistz256_avx2_from_mont(&aX4[4 * 9 * 0], &aX4[4 * 9 * 0]); + ecp_nistz256_avx2_from_mont(&aX4[4 * 9 * 1], &aX4[4 * 9 * 1]); + ecp_nistz256_avx2_from_mont(&aX4[4 * 9 * 2], &aX4[4 * 9 * 2]); + + ecp_nistz256_avx2_convert_transpose_back(res_point_arr, aX4); + /* Last window is performed serially */ + wvalue = *((u16 *) & p_str[(index - 1) / 8]); + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + booth_recode_w7(&sign0, &digit0, wvalue); + ecp_nistz256_avx2_select_w7((P256_POINT_AFFINE *) r, + preComputedTable[36], digit0); + ecp_nistz256_neg(tmp, r->Y); + copy_conditional(r->Y, tmp, sign0); + memcpy(r->Z, ONE, sizeof(ONE)); + /* Sum the four windows */ + ecp_nistz256_point_add(r, r, &res_point_arr[0]); + ecp_nistz256_point_add(r, r, &res_point_arr[1]); + ecp_nistz256_point_add(r, r, &res_point_arr[2]); + ecp_nistz256_point_add(r, r, &res_point_arr[3]); +} +# endif +#endif + +static int ecp_nistz256_set_from_affine(EC_POINT *out, const EC_GROUP *group, + const P256_POINT_AFFINE *in, + BN_CTX *ctx) +{ + BIGNUM x, y; + BN_ULONG d_x[P256_LIMBS], d_y[P256_LIMBS]; + int ret = 0; + + memcpy(d_x, in->X, sizeof(d_x)); + x.d = d_x; + x.dmax = x.top = P256_LIMBS; + x.neg = 0; + x.flags = BN_FLG_STATIC_DATA; + + memcpy(d_y, in->Y, sizeof(d_y)); + y.d = d_y; + y.dmax = y.top = P256_LIMBS; + y.neg = 0; + y.flags = BN_FLG_STATIC_DATA; + + ret = EC_POINT_set_affine_coordinates_GFp(group, out, &x, &y, ctx); + + return ret; +} + +/* r = scalar*G + sum(scalars[i]*points[i]) */ +static int ecp_nistz256_points_mul(const EC_GROUP *group, + EC_POINT *r, + const BIGNUM *scalar, + size_t num, + const EC_POINT *points[], + const BIGNUM *scalars[], BN_CTX *ctx) +{ + int i = 0, ret = 0, no_precomp_for_generator = 0, p_is_infinity = 0; + size_t j; + unsigned char p_str[33] = { 0 }; + const PRECOMP256_ROW *preComputedTable = NULL; + const EC_PRE_COMP *pre_comp = NULL; + const EC_POINT *generator = NULL; + unsigned int index = 0; + BN_CTX *new_ctx = NULL; + const BIGNUM **new_scalars = NULL; + const EC_POINT **new_points = NULL; + const unsigned int window_size = 7; + const unsigned int mask = (1 << (window_size + 1)) - 1; + unsigned int wvalue; + ALIGN32 union { + P256_POINT p; + P256_POINT_AFFINE a; + } t, p; + BIGNUM *tmp_scalar; + + if (group->meth != r->meth) { + ECerr(EC_F_ECP_NISTZ256_POINTS_MUL, EC_R_INCOMPATIBLE_OBJECTS); + return 0; + } + + if ((scalar == NULL) && (num == 0)) + return EC_POINT_set_to_infinity(group, r); + + for (j = 0; j < num; j++) { + if (group->meth != points[j]->meth) { + ECerr(EC_F_ECP_NISTZ256_POINTS_MUL, EC_R_INCOMPATIBLE_OBJECTS); + return 0; + } + } + + if (ctx == NULL) { + ctx = new_ctx = BN_CTX_new(); + if (ctx == NULL) + goto err; + } + + BN_CTX_start(ctx); + + if (scalar) { + generator = EC_GROUP_get0_generator(group); + if (generator == NULL) { + ECerr(EC_F_ECP_NISTZ256_POINTS_MUL, EC_R_UNDEFINED_GENERATOR); + goto err; + } + + /* look if we can use precomputed multiples of generator */ + pre_comp = + EC_EX_DATA_get_data(group->extra_data, ecp_nistz256_pre_comp_dup, + ecp_nistz256_pre_comp_free, + ecp_nistz256_pre_comp_clear_free); + + if (pre_comp) { + /* + * If there is a precomputed table for the generator, check that + * it was generated with the same generator. + */ + EC_POINT *pre_comp_generator = EC_POINT_new(group); + if (pre_comp_generator == NULL) + goto err; + + if (!ecp_nistz256_set_from_affine + (pre_comp_generator, group, pre_comp->precomp[0], ctx)) { + EC_POINT_free(pre_comp_generator); + goto err; + } + + if (0 == EC_POINT_cmp(group, generator, pre_comp_generator, ctx)) + preComputedTable = (const PRECOMP256_ROW *)pre_comp->precomp; + + EC_POINT_free(pre_comp_generator); + } + + if (preComputedTable == NULL && ecp_nistz256_is_affine_G(generator)) { + /* + * If there is no precomputed data, but the generator + * is the default, a hardcoded table of precomputed + * data is used. This is because applications, such as + * Apache, do not use EC_KEY_precompute_mult. + */ + preComputedTable = (const PRECOMP256_ROW *)ecp_nistz256_precomputed; + } + + if (preComputedTable) { + if ((BN_num_bits(scalar) > 256) + || BN_is_negative(scalar)) { + if ((tmp_scalar = BN_CTX_get(ctx)) == NULL) + goto err; + + if (!BN_nnmod(tmp_scalar, scalar, &group->order, ctx)) { + ECerr(EC_F_ECP_NISTZ256_POINTS_MUL, ERR_R_BN_LIB); + goto err; + } + scalar = tmp_scalar; + } + + for (i = 0; i < scalar->top * BN_BYTES; i += BN_BYTES) { + BN_ULONG d = scalar->d[i / BN_BYTES]; + + p_str[i + 0] = d & 0xff; + p_str[i + 1] = (d >> 8) & 0xff; + p_str[i + 2] = (d >> 16) & 0xff; + p_str[i + 3] = (d >>= 24) & 0xff; + if (BN_BYTES == 8) { + d >>= 8; + p_str[i + 4] = d & 0xff; + p_str[i + 5] = (d >> 8) & 0xff; + p_str[i + 6] = (d >> 16) & 0xff; + p_str[i + 7] = (d >> 24) & 0xff; + } + } + + for (; i < 33; i++) + p_str[i] = 0; + +#if defined(ECP_NISTZ256_AVX2) + if (ecp_nistz_avx2_eligible()) { + ecp_nistz256_avx2_mul_g(&p.p, p_str, preComputedTable); + } else +#endif + { + /* First window */ + wvalue = (p_str[0] << 1) & mask; + index += window_size; + + wvalue = _booth_recode_w7(wvalue); + + ecp_nistz256_select_w7(&p.a, preComputedTable[0], wvalue >> 1); + + ecp_nistz256_neg(p.p.Z, p.p.Y); + copy_conditional(p.p.Y, p.p.Z, wvalue & 1); + + memcpy(p.p.Z, ONE, sizeof(ONE)); + + for (i = 1; i < 37; i++) { + unsigned int off = (index - 1) / 8; + wvalue = p_str[off] | p_str[off + 1] << 8; + wvalue = (wvalue >> ((index - 1) % 8)) & mask; + index += window_size; + + wvalue = _booth_recode_w7(wvalue); + + ecp_nistz256_select_w7(&t.a, + preComputedTable[i], wvalue >> 1); + + ecp_nistz256_neg(t.p.Z, t.a.Y); + copy_conditional(t.a.Y, t.p.Z, wvalue & 1); + + ecp_nistz256_point_add_affine(&p.p, &p.p, &t.a); + } + } + } else { + p_is_infinity = 1; + no_precomp_for_generator = 1; + } + } else + p_is_infinity = 1; + + if (no_precomp_for_generator) { + /* + * Without a precomputed table for the generator, it has to be + * handled like a normal point. + */ + new_scalars = OPENSSL_malloc((num + 1) * sizeof(BIGNUM *)); + if (!new_scalars) { + ECerr(EC_F_ECP_NISTZ256_POINTS_MUL, ERR_R_MALLOC_FAILURE); + goto err; + } + + new_points = OPENSSL_malloc((num + 1) * sizeof(EC_POINT *)); + if (!new_points) { + ECerr(EC_F_ECP_NISTZ256_POINTS_MUL, ERR_R_MALLOC_FAILURE); + goto err; + } + + memcpy(new_scalars, scalars, num * sizeof(BIGNUM *)); + new_scalars[num] = scalar; + memcpy(new_points, points, num * sizeof(EC_POINT *)); + new_points[num] = generator; + + scalars = new_scalars; + points = new_points; + num++; + } + + if (num) { + P256_POINT *out = &t.p; + if (p_is_infinity) + out = &p.p; + + if (!ecp_nistz256_windowed_mul(group, out, scalars, points, num, ctx)) + goto err; + + if (!p_is_infinity) + ecp_nistz256_point_add(&p.p, &p.p, out); + } + + /* Not constant-time, but we're only operating on the public output. */ + if (!ecp_nistz256_set_words(&r->X, p.p.X) || + !ecp_nistz256_set_words(&r->Y, p.p.Y) || + !ecp_nistz256_set_words(&r->Z, p.p.Z)) { + goto err; + } + r->Z_is_one = is_one(p.p.Z) & 1; + + ret = 1; + +err: + if (ctx) + BN_CTX_end(ctx); + BN_CTX_free(new_ctx); + if (new_points) + OPENSSL_free(new_points); + if (new_scalars) + OPENSSL_free(new_scalars); + return ret; +} + +static int ecp_nistz256_get_affine(const EC_GROUP *group, + const EC_POINT *point, + BIGNUM *x, BIGNUM *y, BN_CTX *ctx) +{ + BN_ULONG z_inv2[P256_LIMBS]; + BN_ULONG z_inv3[P256_LIMBS]; + BN_ULONG x_aff[P256_LIMBS]; + BN_ULONG y_aff[P256_LIMBS]; + BN_ULONG point_x[P256_LIMBS], point_y[P256_LIMBS], point_z[P256_LIMBS]; + BN_ULONG x_ret[P256_LIMBS], y_ret[P256_LIMBS]; + + if (EC_POINT_is_at_infinity(group, point)) { + ECerr(EC_F_ECP_NISTZ256_GET_AFFINE, EC_R_POINT_AT_INFINITY); + return 0; + } + + if (!ecp_nistz256_bignum_to_field_elem(point_x, &point->X) || + !ecp_nistz256_bignum_to_field_elem(point_y, &point->Y) || + !ecp_nistz256_bignum_to_field_elem(point_z, &point->Z)) { + ECerr(EC_F_ECP_NISTZ256_GET_AFFINE, EC_R_COORDINATES_OUT_OF_RANGE); + return 0; + } + + ecp_nistz256_mod_inverse(z_inv3, point_z); + ecp_nistz256_sqr_mont(z_inv2, z_inv3); + ecp_nistz256_mul_mont(x_aff, z_inv2, point_x); + + if (x != NULL) { + ecp_nistz256_from_mont(x_ret, x_aff); + if (!ecp_nistz256_set_words(x, x_ret)) + return 0; + } + + if (y != NULL) { + ecp_nistz256_mul_mont(z_inv3, z_inv3, z_inv2); + ecp_nistz256_mul_mont(y_aff, z_inv3, point_y); + ecp_nistz256_from_mont(y_ret, y_aff); + if (!ecp_nistz256_set_words(y, y_ret)) + return 0; + } + + return 1; +} + +static EC_PRE_COMP *ecp_nistz256_pre_comp_new(const EC_GROUP *group) +{ + EC_PRE_COMP *ret = NULL; + + if (!group) + return NULL; + + ret = (EC_PRE_COMP *)OPENSSL_malloc(sizeof(EC_PRE_COMP)); + + if (!ret) { + ECerr(EC_F_ECP_NISTZ256_PRE_COMP_NEW, ERR_R_MALLOC_FAILURE); + return ret; + } + + ret->group = group; + ret->w = 6; /* default */ + ret->precomp = NULL; + ret->precomp_storage = NULL; + ret->references = 1; + return ret; +} + +static void *ecp_nistz256_pre_comp_dup(void *src_) +{ + EC_PRE_COMP *src = src_; + + /* no need to actually copy, these objects never change! */ + CRYPTO_add(&src->references, 1, CRYPTO_LOCK_EC_PRE_COMP); + + return src_; +} + +static void ecp_nistz256_pre_comp_free(void *pre_) +{ + int i; + EC_PRE_COMP *pre = pre_; + + if (!pre) + return; + + i = CRYPTO_add(&pre->references, -1, CRYPTO_LOCK_EC_PRE_COMP); + if (i > 0) + return; + + if (pre->precomp_storage) + OPENSSL_free(pre->precomp_storage); + + OPENSSL_free(pre); +} + +static void ecp_nistz256_pre_comp_clear_free(void *pre_) +{ + int i; + EC_PRE_COMP *pre = pre_; + + if (!pre) + return; + + i = CRYPTO_add(&pre->references, -1, CRYPTO_LOCK_EC_PRE_COMP); + if (i > 0) + return; + + if (pre->precomp_storage) { + OPENSSL_cleanse(pre->precomp, + 32 * sizeof(unsigned char) * (1 << pre->w) * 2 * 37); + OPENSSL_free(pre->precomp_storage); + } + OPENSSL_cleanse(pre, sizeof *pre); + OPENSSL_free(pre); +} + +static int ecp_nistz256_window_have_precompute_mult(const EC_GROUP *group) +{ + /* There is a hard-coded table for the default generator. */ + const EC_POINT *generator = EC_GROUP_get0_generator(group); + if (generator != NULL && ecp_nistz256_is_affine_G(generator)) { + /* There is a hard-coded table for the default generator. */ + return 1; + } + + return EC_EX_DATA_get_data(group->extra_data, ecp_nistz256_pre_comp_dup, + ecp_nistz256_pre_comp_free, + ecp_nistz256_pre_comp_clear_free) != NULL; +} + +const EC_METHOD *EC_GFp_nistz256_method(void) +{ + static const EC_METHOD ret = { + EC_FLAGS_DEFAULT_OCT, + NID_X9_62_prime_field, + ec_GFp_mont_group_init, + ec_GFp_mont_group_finish, + ec_GFp_mont_group_clear_finish, + ec_GFp_mont_group_copy, + ec_GFp_mont_group_set_curve, + ec_GFp_simple_group_get_curve, + ec_GFp_simple_group_get_degree, + ec_GFp_simple_group_check_discriminant, + ec_GFp_simple_point_init, + ec_GFp_simple_point_finish, + ec_GFp_simple_point_clear_finish, + ec_GFp_simple_point_copy, + ec_GFp_simple_point_set_to_infinity, + ec_GFp_simple_set_Jprojective_coordinates_GFp, + ec_GFp_simple_get_Jprojective_coordinates_GFp, + ec_GFp_simple_point_set_affine_coordinates, + ecp_nistz256_get_affine, + 0, 0, 0, + ec_GFp_simple_add, + ec_GFp_simple_dbl, + ec_GFp_simple_invert, + ec_GFp_simple_is_at_infinity, + ec_GFp_simple_is_on_curve, + ec_GFp_simple_cmp, + ec_GFp_simple_make_affine, + ec_GFp_simple_points_make_affine, + ecp_nistz256_points_mul, /* mul */ + ecp_nistz256_mult_precompute, /* precompute_mult */ + ecp_nistz256_window_have_precompute_mult, /* have_precompute_mult */ + ec_GFp_mont_field_mul, + ec_GFp_mont_field_sqr, + 0, /* field_div */ + ec_GFp_mont_field_encode, + ec_GFp_mont_field_decode, + ec_GFp_mont_field_set_to_one + }; + + return &ret; +} diff --git a/libs/openssl/crypto/ec/ecp_nistz256_table.c b/libs/openssl/crypto/ec/ecp_nistz256_table.c new file mode 100644 index 00000000..216d024e --- /dev/null +++ b/libs/openssl/crypto/ec/ecp_nistz256_table.c @@ -0,0 +1,9533 @@ +/* + * This is the precomputed constant time access table for the code in + * ecp_montp256.c, for the default generator. The table consists of 37 + * subtables, each subtable contains 64 affine points. The affine points are + * encoded as eight uint64's, four for the x coordinate and four for the y. + * Both values are in little-endian order. There are 37 tables because a + * signed, 6-bit wNAF form of the scalar is used and ceil(256/(6 + 1)) = 37. + * Within each table there are 64 values because the 6-bit wNAF value can + * take 64 values, ignoring the sign bit, which is implemented by performing + * a negation of the affine point when required. We would like to align it + * to 2MB in order to increase the chances of using a large page but that + * appears to lead to invalid ELF files being produced. + */ + +#if defined(__GNUC__) +__attribute((aligned(4096))) +#elif defined(_MSC_VER) +__declspec(align(4096)) +#elif defined(__SUNPRO_C) +# pragma align 4096(ecp_nistz256_precomputed) +#endif +static const BN_ULONG ecp_nistz256_precomputed[37][64 * + sizeof(P256_POINT_AFFINE) / + sizeof(BN_ULONG)] = { + {TOBN(0x79e730d4, 0x18a9143c), TOBN(0x75ba95fc, 0x5fedb601), + TOBN(0x79fb732b, 0x77622510), TOBN(0x18905f76, 0xa53755c6), + TOBN(0xddf25357, 0xce95560a), TOBN(0x8b4ab8e4, 0xba19e45c), + TOBN(0xd2e88688, 0xdd21f325), TOBN(0x8571ff18, 0x25885d85), + TOBN(0x850046d4, 0x10ddd64d), TOBN(0xaa6ae3c1, 0xa433827d), + TOBN(0x73220503, 0x8d1490d9), TOBN(0xf6bb32e4, 0x3dcf3a3b), + TOBN(0x2f3648d3, 0x61bee1a5), TOBN(0x152cd7cb, 0xeb236ff8), + TOBN(0x19a8fb0e, 0x92042dbe), TOBN(0x78c57751, 0x0a5b8a3b), + TOBN(0xffac3f90, 0x4eebc127), TOBN(0xb027f84a, 0x087d81fb), + TOBN(0x66ad77dd, 0x87cbbc98), TOBN(0x26936a3f, 0xb6ff747e), + TOBN(0xb04c5c1f, 0xc983a7eb), TOBN(0x583e47ad, 0x0861fe1a), + TOBN(0x78820831, 0x1a2ee98e), TOBN(0xd5f06a29, 0xe587cc07), + TOBN(0x74b0b50d, 0x46918dcc), TOBN(0x4650a6ed, 0xc623c173), + TOBN(0x0cdaacac, 0xe8100af2), TOBN(0x577362f5, 0x41b0176b), + TOBN(0x2d96f24c, 0xe4cbaba6), TOBN(0x17628471, 0xfad6f447), + TOBN(0x6b6c36de, 0xe5ddd22e), TOBN(0x84b14c39, 0x4c5ab863), + TOBN(0xbe1b8aae, 0xc45c61f5), TOBN(0x90ec649a, 0x94b9537d), + TOBN(0x941cb5aa, 0xd076c20c), TOBN(0xc9079605, 0x890523c8), + TOBN(0xeb309b4a, 0xe7ba4f10), TOBN(0x73c568ef, 0xe5eb882b), + TOBN(0x3540a987, 0x7e7a1f68), TOBN(0x73a076bb, 0x2dd1e916), + TOBN(0x40394737, 0x3e77664a), TOBN(0x55ae744f, 0x346cee3e), + TOBN(0xd50a961a, 0x5b17a3ad), TOBN(0x13074b59, 0x54213673), + TOBN(0x93d36220, 0xd377e44b), TOBN(0x299c2b53, 0xadff14b5), + TOBN(0xf424d44c, 0xef639f11), TOBN(0xa4c9916d, 0x4a07f75f), + TOBN(0x0746354e, 0xa0173b4f), TOBN(0x2bd20213, 0xd23c00f7), + TOBN(0xf43eaab5, 0x0c23bb08), TOBN(0x13ba5119, 0xc3123e03), + TOBN(0x2847d030, 0x3f5b9d4d), TOBN(0x6742f2f2, 0x5da67bdd), + TOBN(0xef933bdc, 0x77c94195), TOBN(0xeaedd915, 0x6e240867), + TOBN(0x27f14cd1, 0x9499a78f), TOBN(0x462ab5c5, 0x6f9b3455), + TOBN(0x8f90f02a, 0xf02cfc6b), TOBN(0xb763891e, 0xb265230d), + TOBN(0xf59da3a9, 0x532d4977), TOBN(0x21e3327d, 0xcf9eba15), + TOBN(0x123c7b84, 0xbe60bbf0), TOBN(0x56ec12f2, 0x7706df76), + TOBN(0x75c96e8f, 0x264e20e8), TOBN(0xabe6bfed, 0x59a7a841), + TOBN(0x2cc09c04, 0x44c8eb00), TOBN(0xe05b3080, 0xf0c4e16b), + TOBN(0x1eb7777a, 0xa45f3314), TOBN(0x56af7bed, 0xce5d45e3), + TOBN(0x2b6e019a, 0x88b12f1a), TOBN(0x086659cd, 0xfd835f9b), + TOBN(0x2c18dbd1, 0x9dc21ec8), TOBN(0x98f9868a, 0x0fcf8139), + TOBN(0x737d2cd6, 0x48250b49), TOBN(0xcc61c947, 0x24b3428f), + TOBN(0x0c2b4078, 0x80dd9e76), TOBN(0xc43a8991, 0x383fbe08), + TOBN(0x5f7d2d65, 0x779be5d2), TOBN(0x78719a54, 0xeb3b4ab5), + TOBN(0xea7d260a, 0x6245e404), TOBN(0x9de40795, 0x6e7fdfe0), + TOBN(0x1ff3a415, 0x8dac1ab5), TOBN(0x3e7090f1, 0x649c9073), + TOBN(0x1a768561, 0x2b944e88), TOBN(0x250f939e, 0xe57f61c8), + TOBN(0x0c0daa89, 0x1ead643d), TOBN(0x68930023, 0xe125b88e), + TOBN(0x04b71aa7, 0xd2697768), TOBN(0xabdedef5, 0xca345a33), + TOBN(0x2409d29d, 0xee37385e), TOBN(0x4ee1df77, 0xcb83e156), + TOBN(0x0cac12d9, 0x1cbb5b43), TOBN(0x170ed2f6, 0xca895637), + TOBN(0x28228cfa, 0x8ade6d66), TOBN(0x7ff57c95, 0x53238aca), + TOBN(0xccc42563, 0x4b2ed709), TOBN(0x0e356769, 0x856fd30d), + TOBN(0xbcbcd43f, 0x559e9811), TOBN(0x738477ac, 0x5395b759), + TOBN(0x35752b90, 0xc00ee17f), TOBN(0x68748390, 0x742ed2e3), + TOBN(0x7cd06422, 0xbd1f5bc1), TOBN(0xfbc08769, 0xc9e7b797), + TOBN(0xa242a35b, 0xb0cf664a), TOBN(0x126e48f7, 0x7f9707e3), + TOBN(0x1717bf54, 0xc6832660), TOBN(0xfaae7332, 0xfd12c72e), + TOBN(0x27b52db7, 0x995d586b), TOBN(0xbe29569e, 0x832237c2), + TOBN(0xe8e4193e, 0x2a65e7db), TOBN(0x152706dc, 0x2eaa1bbb), + TOBN(0x72bcd8b7, 0xbc60055b), TOBN(0x03cc23ee, 0x56e27e4b), + TOBN(0xee337424, 0xe4819370), TOBN(0xe2aa0e43, 0x0ad3da09), + TOBN(0x40b8524f, 0x6383c45d), TOBN(0xd7663554, 0x42a41b25), + TOBN(0x64efa6de, 0x778a4797), TOBN(0x2042170a, 0x7079adf4), + TOBN(0x808b0b65, 0x0bc6fb80), TOBN(0x5882e075, 0x3ffe2e6b), + TOBN(0xd5ef2f7c, 0x2c83f549), TOBN(0x54d63c80, 0x9103b723), + TOBN(0xf2f11bd6, 0x52a23f9b), TOBN(0x3670c319, 0x4b0b6587), + TOBN(0x55c4623b, 0xb1580e9e), TOBN(0x64edf7b2, 0x01efe220), + TOBN(0x97091dcb, 0xd53c5c9d), TOBN(0xf17624b6, 0xac0a177b), + TOBN(0xb0f13975, 0x2cfe2dff), TOBN(0xc1a35c0a, 0x6c7a574e), + TOBN(0x227d3146, 0x93e79987), TOBN(0x0575bf30, 0xe89cb80e), + TOBN(0x2f4e247f, 0x0d1883bb), TOBN(0xebd51226, 0x3274c3d0), + TOBN(0x5f3e51c8, 0x56ada97a), TOBN(0x4afc964d, 0x8f8b403e), + TOBN(0xa6f247ab, 0x412e2979), TOBN(0x675abd1b, 0x6f80ebda), + TOBN(0x66a2bd72, 0x5e485a1d), TOBN(0x4b2a5caf, 0x8f4f0b3c), + TOBN(0x2626927f, 0x1b847bba), TOBN(0x6c6fc7d9, 0x0502394d), + TOBN(0xfea912ba, 0xa5659ae8), TOBN(0x68363aba, 0x25e1a16e), + TOBN(0xb8842277, 0x752c41ac), TOBN(0xfe545c28, 0x2897c3fc), + TOBN(0x2d36e9e7, 0xdc4c696b), TOBN(0x5806244a, 0xfba977c5), + TOBN(0x85665e9b, 0xe39508c1), TOBN(0xf720ee25, 0x6d12597b), + TOBN(0x8a979129, 0xd2337a31), TOBN(0x5916868f, 0x0f862bdc), + TOBN(0x048099d9, 0x5dd283ba), TOBN(0xe2d1eeb6, 0xfe5bfb4e), + TOBN(0x82ef1c41, 0x7884005d), TOBN(0xa2d4ec17, 0xffffcbae), + TOBN(0x9161c53f, 0x8aa95e66), TOBN(0x5ee104e1, 0xc5fee0d0), + TOBN(0x562e4cec, 0xc135b208), TOBN(0x74e1b265, 0x4783f47d), + TOBN(0x6d2a506c, 0x5a3f3b30), TOBN(0xecead9f4, 0xc16762fc), + TOBN(0xf29dd4b2, 0xe286e5b9), TOBN(0x1b0fadc0, 0x83bb3c61), + TOBN(0x7a75023e, 0x7fac29a4), TOBN(0xc086d5f1, 0xc9477fa3), + TOBN(0x0fc61135, 0x2f6f3076), TOBN(0xc99ffa23, 0xe3912a9a), + TOBN(0x6a0b0685, 0xd2f8ba3d), TOBN(0xfdc777e8, 0xe93358a4), + TOBN(0x94a787bb, 0x35415f04), TOBN(0x640c2d6a, 0x4d23fea4), + TOBN(0x9de917da, 0x153a35b5), TOBN(0x793e8d07, 0x5d5cd074), + TOBN(0xf4f87653, 0x2de45068), TOBN(0x37c7a7e8, 0x9e2e1f6e), + TOBN(0xd0825fa2, 0xa3584069), TOBN(0xaf2cea7c, 0x1727bf42), + TOBN(0x0360a4fb, 0x9e4785a9), TOBN(0xe5fda49c, 0x27299f4a), + TOBN(0x48068e13, 0x71ac2f71), TOBN(0x83d0687b, 0x9077666f), + TOBN(0x6d3883b2, 0x15d02819), TOBN(0x6d0d7550, 0x40dd9a35), + TOBN(0x61d7cbf9, 0x1d2b469f), TOBN(0xf97b232f, 0x2efc3115), + TOBN(0xa551d750, 0xb24bcbc7), TOBN(0x11ea4949, 0x88a1e356), + TOBN(0x7669f031, 0x93cb7501), TOBN(0x595dc55e, 0xca737b8a), + TOBN(0xa4a319ac, 0xd837879f), TOBN(0x6fc1b49e, 0xed6b67b0), + TOBN(0xe3959933, 0x32f1f3af), TOBN(0x966742eb, 0x65432a2e), + TOBN(0x4b8dc9fe, 0xb4966228), TOBN(0x96cc6312, 0x43f43950), + TOBN(0x12068859, 0xc9b731ee), TOBN(0x7b948dc3, 0x56f79968), + TOBN(0x61e4ad32, 0xed1f8008), TOBN(0xe6c9267a, 0xd8b17538), + TOBN(0x1ac7c5eb, 0x857ff6fb), TOBN(0x994baaa8, 0x55f2fb10), + TOBN(0x84cf14e1, 0x1d248018), TOBN(0x5a39898b, 0x628ac508), + TOBN(0x14fde97b, 0x5fa944f5), TOBN(0xed178030, 0xd12e5ac7), + TOBN(0x042c2af4, 0x97e2feb4), TOBN(0xd36a42d7, 0xaebf7313), + TOBN(0x49d2c9eb, 0x084ffdd7), TOBN(0x9f8aa54b, 0x2ef7c76a), + TOBN(0x9200b7ba, 0x09895e70), TOBN(0x3bd0c66f, 0xddb7fb58), + TOBN(0x2d97d108, 0x78eb4cbb), TOBN(0x2d431068, 0xd84bde31), + TOBN(0x4b523eb7, 0x172ccd1f), TOBN(0x7323cb28, 0x30a6a892), + TOBN(0x97082ec0, 0xcfe153eb), TOBN(0xe97f6b6a, 0xf2aadb97), + TOBN(0x1d3d393e, 0xd1a83da1), TOBN(0xa6a7f9c7, 0x804b2a68), + TOBN(0x4a688b48, 0x2d0cb71e), TOBN(0xa9b4cc5f, 0x40585278), + TOBN(0x5e5db46a, 0xcb66e132), TOBN(0xf1be963a, 0x0d925880), + TOBN(0x944a7027, 0x0317b9e2), TOBN(0xe266f959, 0x48603d48), + TOBN(0x98db6673, 0x5c208899), TOBN(0x90472447, 0xa2fb18a3), + TOBN(0x8a966939, 0x777c619f), TOBN(0x3798142a, 0x2a3be21b), + TOBN(0xb4241cb1, 0x3298b343), TOBN(0xa3a14e49, 0xb44f65a1), + TOBN(0xc5f4d6cd, 0x3ac77acd), TOBN(0xd0288cb5, 0x52b6fc3c), + TOBN(0xd5cc8c2f, 0x1c040abc), TOBN(0xb675511e, 0x06bf9b4a), + TOBN(0xd667da37, 0x9b3aa441), TOBN(0x460d45ce, 0x51601f72), + TOBN(0xe2f73c69, 0x6755ff89), TOBN(0xdd3cf7e7, 0x473017e6), + TOBN(0x8ef5689d, 0x3cf7600d), TOBN(0x948dc4f8, 0xb1fc87b4), + TOBN(0xd9e9fe81, 0x4ea53299), TOBN(0x2d921ca2, 0x98eb6028), + TOBN(0xfaecedfd, 0x0c9803fc), TOBN(0xf38ae891, 0x4d7b4745), + TOBN(0xd8c5fccf, 0xc5e3a3d8), TOBN(0xbefd904c, 0x4079dfbf), + TOBN(0xbc6d6a58, 0xfead0197), TOBN(0x39227077, 0x695532a4), + TOBN(0x09e23e6d, 0xdbef42f5), TOBN(0x7e449b64, 0x480a9908), + TOBN(0x7b969c1a, 0xad9a2e40), TOBN(0x6231d792, 0x9591c2a4), + TOBN(0x87151456, 0x0f664534), TOBN(0x85ceae7c, 0x4b68f103), + TOBN(0xac09c4ae, 0x65578ab9), TOBN(0x33ec6868, 0xf044b10c), + TOBN(0x6ac4832b, 0x3a8ec1f1), TOBN(0x5509d128, 0x5847d5ef), + TOBN(0xf909604f, 0x763f1574), TOBN(0xb16c4303, 0xc32f63c4), + TOBN(0xb6ab2014, 0x7ca23cd3), TOBN(0xcaa7a5c6, 0xa391849d), + TOBN(0x5b0673a3, 0x75678d94), TOBN(0xc982ddd4, 0xdd303e64), + TOBN(0xfd7b000b, 0x5db6f971), TOBN(0xbba2cb1f, 0x6f876f92), + TOBN(0xc77332a3, 0x3c569426), TOBN(0xa159100c, 0x570d74f8), + TOBN(0xfd16847f, 0xdec67ef5), TOBN(0x742ee464, 0x233e76b7), + TOBN(0x0b8e4134, 0xefc2b4c8), TOBN(0xca640b86, 0x42a3e521), + TOBN(0x653a0190, 0x8ceb6aa9), TOBN(0x313c300c, 0x547852d5), + TOBN(0x24e4ab12, 0x6b237af7), TOBN(0x2ba90162, 0x8bb47af8), + TOBN(0x3d5e58d6, 0xa8219bb7), TOBN(0xc691d0bd, 0x1b06c57f), + TOBN(0x0ae4cb10, 0xd257576e), TOBN(0x3569656c, 0xd54a3dc3), + TOBN(0xe5ebaebd, 0x94cda03a), TOBN(0x934e82d3, 0x162bfe13), + TOBN(0x450ac0ba, 0xe251a0c6), TOBN(0x480b9e11, 0xdd6da526), + TOBN(0x00467bc5, 0x8cce08b5), TOBN(0xb636458c, 0x7f178d55), + TOBN(0xc5748bae, 0xa677d806), TOBN(0x2763a387, 0xdfa394eb), + TOBN(0xa12b448a, 0x7d3cebb6), TOBN(0xe7adda3e, 0x6f20d850), + TOBN(0xf63ebce5, 0x1558462c), TOBN(0x58b36143, 0x620088a8), + TOBN(0x8a2cc3ca, 0x4d63c0ee), TOBN(0x51233117, 0x0fe948ce), + TOBN(0x7463fd85, 0x222ef33b), TOBN(0xadf0c7dc, 0x7c603d6c), + TOBN(0x0ec32d3b, 0xfe7765e5), TOBN(0xccaab359, 0xbf380409), + TOBN(0xbdaa84d6, 0x8e59319c), TOBN(0xd9a4c280, 0x9c80c34d), + TOBN(0xa9d89488, 0xa059c142), TOBN(0x6f5ae714, 0xff0b9346), + TOBN(0x068f237d, 0x16fb3664), TOBN(0x5853e4c4, 0x363186ac), + TOBN(0xe2d87d23, 0x63c52f98), TOBN(0x2ec4a766, 0x81828876), + TOBN(0x47b864fa, 0xe14e7b1c), TOBN(0x0c0bc0e5, 0x69192408), + TOBN(0xe4d7681d, 0xb82e9f3e), TOBN(0x83200f0b, 0xdf25e13c), + TOBN(0x8909984c, 0x66f27280), TOBN(0x462d7b00, 0x75f73227), + TOBN(0xd90ba188, 0xf2651798), TOBN(0x74c6e18c, 0x36ab1c34), + TOBN(0xab256ea3, 0x5ef54359), TOBN(0x03466612, 0xd1aa702f), + TOBN(0x624d6049, 0x2ed22e91), TOBN(0x6fdfe0b5, 0x6f072822), + TOBN(0xeeca1115, 0x39ce2271), TOBN(0x98100a4f, 0xdb01614f), + TOBN(0xb6b0daa2, 0xa35c628f), TOBN(0xb6f94d2e, 0xc87e9a47), + TOBN(0xc6773259, 0x1d57d9ce), TOBN(0xf70bfeec, 0x03884a7b), + TOBN(0x5fb35ccf, 0xed2bad01), TOBN(0xa155cbe3, 0x1da6a5c7), + TOBN(0xc2e2594c, 0x30a92f8f), TOBN(0x649c89ce, 0x5bfafe43), + TOBN(0xd158667d, 0xe9ff257a), TOBN(0x9b359611, 0xf32c50ae), + TOBN(0x4b00b20b, 0x906014cf), TOBN(0xf3a8cfe3, 0x89bc7d3d), + TOBN(0x4ff23ffd, 0x248a7d06), TOBN(0x80c5bfb4, 0x878873fa), + TOBN(0xb7d9ad90, 0x05745981), TOBN(0x179c85db, 0x3db01994), + TOBN(0xba41b062, 0x61a6966c), TOBN(0x4d82d052, 0xeadce5a8), + TOBN(0x9e91cd3b, 0xa5e6a318), TOBN(0x47795f4f, 0x95b2dda0), + TOBN(0xecfd7c1f, 0xd55a897c), TOBN(0x009194ab, 0xb29110fb), + TOBN(0x5f0e2046, 0xe381d3b0), TOBN(0x5f3425f6, 0xa98dd291), + TOBN(0xbfa06687, 0x730d50da), TOBN(0x0423446c, 0x4b083b7f), + TOBN(0x397a247d, 0xd69d3417), TOBN(0xeb629f90, 0x387ba42a), + TOBN(0x1ee426cc, 0xd5cd79bf), TOBN(0x0032940b, 0x946c6e18), + TOBN(0x1b1e8ae0, 0x57477f58), TOBN(0xe94f7d34, 0x6d823278), + TOBN(0xc747cb96, 0x782ba21a), TOBN(0xc5254469, 0xf72b33a5), + TOBN(0x772ef6de, 0xc7f80c81), TOBN(0xd73acbfe, 0x2cd9e6b5), + TOBN(0x4075b5b1, 0x49ee90d9), TOBN(0x785c339a, 0xa06e9eba), + TOBN(0xa1030d5b, 0xabf825e0), TOBN(0xcec684c3, 0xa42931dc), + TOBN(0x42ab62c9, 0xc1586e63), TOBN(0x45431d66, 0x5ab43f2b), + TOBN(0x57c8b2c0, 0x55f7835d), TOBN(0x033da338, 0xc1b7f865), + TOBN(0x283c7513, 0xcaa76097), TOBN(0x0a624fa9, 0x36c83906), + TOBN(0x6b20afec, 0x715af2c7), TOBN(0x4b969974, 0xeba78bfd), + TOBN(0x220755cc, 0xd921d60e), TOBN(0x9b944e10, 0x7baeca13), + TOBN(0x04819d51, 0x5ded93d4), TOBN(0x9bbff86e, 0x6dddfd27), + TOBN(0x6b344130, 0x77adc612), TOBN(0xa7496529, 0xbbd803a0), + TOBN(0x1a1baaa7, 0x6d8805bd), TOBN(0xc8403902, 0x470343ad), + TOBN(0x39f59f66, 0x175adff1), TOBN(0x0b26d7fb, 0xb7d8c5b7), + TOBN(0xa875f5ce, 0x529d75e3), TOBN(0x85efc7e9, 0x41325cc2), + TOBN(0x21950b42, 0x1ff6acd3), TOBN(0xffe70484, 0x53dc6909), + TOBN(0xff4cd0b2, 0x28766127), TOBN(0xabdbe608, 0x4fb7db2b), + TOBN(0x837c9228, 0x5e1109e8), TOBN(0x26147d27, 0xf4645b5a), + TOBN(0x4d78f592, 0xf7818ed8), TOBN(0xd394077e, 0xf247fa36), + TOBN(0x0fb9c2d0, 0x488c171a), TOBN(0xa78bfbaa, 0x13685278), + TOBN(0xedfbe268, 0xd5b1fa6a), TOBN(0x0dceb8db, 0x2b7eaba7), + TOBN(0xbf9e8089, 0x9ae2b710), TOBN(0xefde7ae6, 0xa4449c96), + TOBN(0x43b7716b, 0xcc143a46), TOBN(0xd7d34194, 0xc3628c13), + TOBN(0x508cec1c, 0x3b3f64c9), TOBN(0xe20bc0ba, 0x1e5edf3f), + TOBN(0xda1deb85, 0x2f4318d4), TOBN(0xd20ebe0d, 0x5c3fa443), + TOBN(0x370b4ea7, 0x73241ea3), TOBN(0x61f1511c, 0x5e1a5f65), + TOBN(0x99a5e23d, 0x82681c62), TOBN(0xd731e383, 0xa2f54c2d), + TOBN(0x2692f36e, 0x83445904), TOBN(0x2e0ec469, 0xaf45f9c0), + TOBN(0x905a3201, 0xc67528b7), TOBN(0x88f77f34, 0xd0e5e542), + TOBN(0xf67a8d29, 0x5864687c), TOBN(0x23b92eae, 0x22df3562), + TOBN(0x5c27014b, 0x9bbec39e), TOBN(0x7ef2f226, 0x9c0f0f8d), + TOBN(0x97359638, 0x546c4d8d), TOBN(0x5f9c3fc4, 0x92f24679), + TOBN(0x912e8bed, 0xa8c8acd9), TOBN(0xec3a318d, 0x306634b0), + TOBN(0x80167f41, 0xc31cb264), TOBN(0x3db82f6f, 0x522113f2), + TOBN(0xb155bcd2, 0xdcafe197), TOBN(0xfba1da59, 0x43465283), + TOBN(0xa0425b8e, 0xb212cf53), TOBN(0x4f2e512e, 0xf8557c5f), + TOBN(0xc1286ff9, 0x25c4d56c), TOBN(0xbb8a0fea, 0xee26c851), + TOBN(0xc28f70d2, 0xe7d6107e), TOBN(0x7ee0c444, 0xe76265aa), + TOBN(0x3df277a4, 0x1d1936b1), TOBN(0x1a556e3f, 0xea9595eb), + TOBN(0x258bbbf9, 0xe7305683), TOBN(0x31eea5bf, 0x07ef5be6), + TOBN(0x0deb0e4a, 0x46c814c1), TOBN(0x5cee8449, 0xa7b730dd), + TOBN(0xeab495c5, 0xa0182bde), TOBN(0xee759f87, 0x9e27a6b4), + TOBN(0xc2cf6a68, 0x80e518ca), TOBN(0x25e8013f, 0xf14cf3f4), + TOBN(0x8fc44140, 0x7e8d7a14), TOBN(0xbb1ff3ca, 0x9556f36a), + TOBN(0x6a844385, 0x14600044), TOBN(0xba3f0c4a, 0x7451ae63), + TOBN(0xdfcac25b, 0x1f9af32a), TOBN(0x01e0db86, 0xb1f2214b), + TOBN(0x4e9a5bc2, 0xa4b596ac), TOBN(0x83927681, 0x026c2c08), + TOBN(0x3ec832e7, 0x7acaca28), TOBN(0x1bfeea57, 0xc7385b29), + TOBN(0x068212e3, 0xfd1eaf38), TOBN(0xc1329830, 0x6acf8ccc), + TOBN(0xb909f2db, 0x2aac9e59), TOBN(0x5748060d, 0xb661782a), + TOBN(0xc5ab2632, 0xc79b7a01), TOBN(0xda44c6c6, 0x00017626), + TOBN(0xf26c00e8, 0xa7ea82f0), TOBN(0x99cac80d, 0xe4299aaf), + TOBN(0xd66fe3b6, 0x7ed78be1), TOBN(0x305f725f, 0x648d02cd), + TOBN(0x33ed1bc4, 0x623fb21b), TOBN(0xfa70533e, 0x7a6319ad), + TOBN(0x17ab562d, 0xbe5ffb3e), TOBN(0x06374994, 0x56674741), + TOBN(0x69d44ed6, 0x5c46aa8e), TOBN(0x2100d5d3, 0xa8d063d1), + TOBN(0xcb9727ea, 0xa2d17c36), TOBN(0x4c2bab1b, 0x8add53b7), + TOBN(0xa084e90c, 0x15426704), TOBN(0x778afcd3, 0xa837ebea), + TOBN(0x6651f701, 0x7ce477f8), TOBN(0xa0624998, 0x46fb7a8b), + TOBN(0xdc1e6828, 0xed8a6e19), TOBN(0x33fc2336, 0x4189d9c7), + TOBN(0x026f8fe2, 0x671c39bc), TOBN(0xd40c4ccd, 0xbc6f9915), + TOBN(0xafa135bb, 0xf80e75ca), TOBN(0x12c651a0, 0x22adff2c), + TOBN(0xc40a04bd, 0x4f51ad96), TOBN(0x04820109, 0xbbe4e832), + TOBN(0x3667eb1a, 0x7f4c04cc), TOBN(0x59556621, 0xa9404f84), + TOBN(0x71cdf653, 0x7eceb50a), TOBN(0x994a44a6, 0x9b8335fa), + TOBN(0xd7faf819, 0xdbeb9b69), TOBN(0x473c5680, 0xeed4350d), + TOBN(0xb6658466, 0xda44bba2), TOBN(0x0d1bc780, 0x872bdbf3), + TOBN(0xe535f175, 0xa1962f91), TOBN(0x6ed7e061, 0xed58f5a7), + TOBN(0x177aa4c0, 0x2089a233), TOBN(0x0dbcb03a, 0xe539b413), + TOBN(0xe3dc424e, 0xbb32e38e), TOBN(0x6472e5ef, 0x6806701e), + TOBN(0xdd47ff98, 0x814be9ee), TOBN(0x6b60cfff, 0x35ace009), + TOBN(0xb8d3d931, 0x9ff91fe5), TOBN(0x039c4800, 0xf0518eed), + TOBN(0x95c37632, 0x9182cb26), TOBN(0x0763a434, 0x82fc568d), + TOBN(0x707c04d5, 0x383e76ba), TOBN(0xac98b930, 0x824e8197), + TOBN(0x92bf7c8f, 0x91230de0), TOBN(0x90876a01, 0x40959b70), + TOBN(0xdb6d96f3, 0x05968b80), TOBN(0x380a0913, 0x089f73b9), + TOBN(0x7da70b83, 0xc2c61e01), TOBN(0x95fb8394, 0x569b38c7), + TOBN(0x9a3c6512, 0x80edfe2f), TOBN(0x8f726bb9, 0x8faeaf82), + TOBN(0x8010a4a0, 0x78424bf8), TOBN(0x29672044, 0x0e844970)} + , + {TOBN(0x63c5cb81, 0x7a2ad62a), TOBN(0x7ef2b6b9, 0xac62ff54), + TOBN(0x3749bba4, 0xb3ad9db5), TOBN(0xad311f2c, 0x46d5a617), + TOBN(0xb77a8087, 0xc2ff3b6d), TOBN(0xb46feaf3, 0x367834ff), + TOBN(0xf8aa266d, 0x75d6b138), TOBN(0xfa38d320, 0xec008188), + TOBN(0x486d8ffa, 0x696946fc), TOBN(0x50fbc6d8, 0xb9cba56d), + TOBN(0x7e3d423e, 0x90f35a15), TOBN(0x7c3da195, 0xc0dd962c), + TOBN(0xe673fdb0, 0x3cfd5d8b), TOBN(0x0704b7c2, 0x889dfca5), + TOBN(0xf6ce581f, 0xf52305aa), TOBN(0x399d49eb, 0x914d5e53), + TOBN(0x380a496d, 0x6ec293cd), TOBN(0x733dbda7, 0x8e7051f5), + TOBN(0x037e388d, 0xb849140a), TOBN(0xee4b32b0, 0x5946dbf6), + TOBN(0xb1c4fda9, 0xcae368d1), TOBN(0x5001a7b0, 0xfdb0b2f3), + TOBN(0x6df59374, 0x2e3ac46e), TOBN(0x4af675f2, 0x39b3e656), + TOBN(0x44e38110, 0x39949296), TOBN(0x5b63827b, 0x361db1b5), + TOBN(0x3e5323ed, 0x206eaff5), TOBN(0x942370d2, 0xc21f4290), + TOBN(0xf2caaf2e, 0xe0d985a1), TOBN(0x192cc64b, 0x7239846d), + TOBN(0x7c0b8f47, 0xae6312f8), TOBN(0x7dc61f91, 0x96620108), + TOBN(0xb830fb5b, 0xc2da7de9), TOBN(0xd0e643df, 0x0ff8d3be), + TOBN(0x31ee77ba, 0x188a9641), TOBN(0x4e8aa3aa, 0xbcf6d502), + TOBN(0xf9fb6532, 0x9a49110f), TOBN(0xd18317f6, 0x2dd6b220), + TOBN(0x7e3ced41, 0x52c3ea5a), TOBN(0x0d296a14, 0x7d579c4a), + TOBN(0x35d6a53e, 0xed4c3717), TOBN(0x9f8240cf, 0x3d0ed2a3), + TOBN(0x8c0d4d05, 0xe5543aa5), TOBN(0x45d5bbfb, 0xdd33b4b4), + TOBN(0xfa04cc73, 0x137fd28e), TOBN(0x862ac6ef, 0xc73b3ffd), + TOBN(0x403ff9f5, 0x31f51ef2), TOBN(0x34d5e0fc, 0xbc73f5a2), + TOBN(0xf2526820, 0x08913f4f), TOBN(0xea20ed61, 0xeac93d95), + TOBN(0x51ed38b4, 0x6ca6b26c), TOBN(0x8662dcbc, 0xea4327b0), + TOBN(0x6daf295c, 0x725d2aaa), TOBN(0xbad2752f, 0x8e52dcda), + TOBN(0x2210e721, 0x0b17dacc), TOBN(0xa37f7912, 0xd51e8232), + TOBN(0x4f7081e1, 0x44cc3add), TOBN(0xd5ffa1d6, 0x87be82cf), + TOBN(0x89890b6c, 0x0edd6472), TOBN(0xada26e1a, 0x3ed17863), + TOBN(0x276f2715, 0x63483caa), TOBN(0xe6924cd9, 0x2f6077fd), + TOBN(0x05a7fe98, 0x0a466e3c), TOBN(0xf1c794b0, 0xb1902d1f), + TOBN(0xe5213688, 0x82a8042c), TOBN(0xd931cfaf, 0xcd278298), + TOBN(0x069a0ae0, 0xf597a740), TOBN(0x0adbb3f3, 0xeb59107c), + TOBN(0x983e951e, 0x5eaa8eb8), TOBN(0xe663a8b5, 0x11b48e78), + TOBN(0x1631cc0d, 0x8a03f2c5), TOBN(0x7577c11e, 0x11e271e2), + TOBN(0x33b2385c, 0x08369a90), TOBN(0x2990c59b, 0x190eb4f8), + TOBN(0x819a6145, 0xc68eac80), TOBN(0x7a786d62, 0x2ec4a014), + TOBN(0x33faadbe, 0x20ac3a8d), TOBN(0x31a21781, 0x5aba2d30), + TOBN(0x209d2742, 0xdba4f565), TOBN(0xdb2ce9e3, 0x55aa0fbb), + TOBN(0x8cef334b, 0x168984df), TOBN(0xe81dce17, 0x33879638), + TOBN(0xf6e6949c, 0x263720f0), TOBN(0x5c56feaf, 0xf593cbec), + TOBN(0x8bff5601, 0xfde58c84), TOBN(0x74e24117, 0x2eccb314), + TOBN(0xbcf01b61, 0x4c9a8a78), TOBN(0xa233e35e, 0x544c9868), + TOBN(0xb3156bf3, 0x8bd7aff1), TOBN(0x1b5ee4cb, 0x1d81b146), + TOBN(0x7ba1ac41, 0xd628a915), TOBN(0x8f3a8f9c, 0xfd89699e), + TOBN(0x7329b9c9, 0xa0748be7), TOBN(0x1d391c95, 0xa92e621f), + TOBN(0xe51e6b21, 0x4d10a837), TOBN(0xd255f53a, 0x4947b435), + TOBN(0x07669e04, 0xf1788ee3), TOBN(0xc14f27af, 0xa86938a2), + TOBN(0x8b47a334, 0xe93a01c0), TOBN(0xff627438, 0xd9366808), + TOBN(0x7a0985d8, 0xca2a5965), TOBN(0x3d9a5542, 0xd6e9b9b3), + TOBN(0xc23eb80b, 0x4cf972e8), TOBN(0x5c1c33bb, 0x4fdf72fd), + TOBN(0x0c4a58d4, 0x74a86108), TOBN(0xf8048a8f, 0xee4c5d90), + TOBN(0xe3c7c924, 0xe86d4c80), TOBN(0x28c889de, 0x056a1e60), + TOBN(0x57e2662e, 0xb214a040), TOBN(0xe8c48e98, 0x37e10347), + TOBN(0x87742862, 0x80ac748a), TOBN(0xf1c24022, 0x186b06f2), + TOBN(0xac2dd4c3, 0x5f74040a), TOBN(0x409aeb71, 0xfceac957), + TOBN(0x4fbad782, 0x55c4ec23), TOBN(0xb359ed61, 0x8a7b76ec), + TOBN(0x12744926, 0xed6f4a60), TOBN(0xe21e8d7f, 0x4b912de3), + TOBN(0xe2575a59, 0xfc705a59), TOBN(0x72f1d4de, 0xed2dbc0e), + TOBN(0x3d2b24b9, 0xeb7926b8), TOBN(0xbff88cb3, 0xcdbe5509), + TOBN(0xd0f399af, 0xe4dd640b), TOBN(0x3c5fe130, 0x2f76ed45), + TOBN(0x6f3562f4, 0x3764fb3d), TOBN(0x7b5af318, 0x3151b62d), + TOBN(0xd5bd0bc7, 0xd79ce5f3), TOBN(0xfdaf6b20, 0xec66890f), + TOBN(0x735c67ec, 0x6063540c), TOBN(0x50b259c2, 0xe5f9cb8f), + TOBN(0xb8734f9a, 0x3f99c6ab), TOBN(0xf8cc13d5, 0xa3a7bc85), + TOBN(0x80c1b305, 0xc5217659), TOBN(0xfe5364d4, 0x4ec12a54), + TOBN(0xbd87045e, 0x681345fe), TOBN(0x7f8efeb1, 0x582f897f), + TOBN(0xe8cbf1e5, 0xd5923359), TOBN(0xdb0cea9d, 0x539b9fb0), + TOBN(0x0c5b34cf, 0x49859b98), TOBN(0x5e583c56, 0xa4403cc6), + TOBN(0x11fc1a2d, 0xd48185b7), TOBN(0xc93fbc7e, 0x6e521787), + TOBN(0x47e7a058, 0x05105b8b), TOBN(0x7b4d4d58, 0xdb8260c8), + TOBN(0xe33930b0, 0x46eb842a), TOBN(0x8e844a9a, 0x7bdae56d), + TOBN(0x34ef3a9e, 0x13f7fdfc), TOBN(0xb3768f82, 0x636ca176), + TOBN(0x2821f4e0, 0x4e09e61c), TOBN(0x414dc3a1, 0xa0c7cddc), + TOBN(0xd5379437, 0x54945fcd), TOBN(0x151b6eef, 0xb3555ff1), + TOBN(0xb31bd613, 0x6339c083), TOBN(0x39ff8155, 0xdfb64701), + TOBN(0x7c3388d2, 0xe29604ab), TOBN(0x1e19084b, 0xa6b10442), + TOBN(0x17cf54c0, 0xeccd47ef), TOBN(0x89693385, 0x4a5dfb30), + TOBN(0x69d023fb, 0x47daf9f6), TOBN(0x9222840b, 0x7d91d959), + TOBN(0x439108f5, 0x803bac62), TOBN(0x0b7dd91d, 0x379bd45f), + TOBN(0xd651e827, 0xca63c581), TOBN(0x5c5d75f6, 0x509c104f), + TOBN(0x7d5fc738, 0x1f2dc308), TOBN(0x20faa7bf, 0xd98454be), + TOBN(0x95374bee, 0xa517b031), TOBN(0xf036b9b1, 0x642692ac), + TOBN(0xc5106109, 0x39842194), TOBN(0xb7e2353e, 0x49d05295), + TOBN(0xfc8c1d5c, 0xefb42ee0), TOBN(0xe04884eb, 0x08ce811c), + TOBN(0xf1f75d81, 0x7419f40e), TOBN(0x5b0ac162, 0xa995c241), + TOBN(0x120921bb, 0xc4c55646), TOBN(0x713520c2, 0x8d33cf97), + TOBN(0xb4a65a5c, 0xe98c5100), TOBN(0x6cec871d, 0x2ddd0f5a), + TOBN(0x251f0b7f, 0x9ba2e78b), TOBN(0x224a8434, 0xce3a2a5f), + TOBN(0x26827f61, 0x25f5c46f), TOBN(0x6a22bedc, 0x48545ec0), + TOBN(0x25ae5fa0, 0xb1bb5cdc), TOBN(0xd693682f, 0xfcb9b98f), + TOBN(0x32027fe8, 0x91e5d7d3), TOBN(0xf14b7d17, 0x73a07678), + TOBN(0xf88497b3, 0xc0dfdd61), TOBN(0xf7c2eec0, 0x2a8c4f48), + TOBN(0xaa5573f4, 0x3756e621), TOBN(0xc013a240, 0x1825b948), + TOBN(0x1c03b345, 0x63878572), TOBN(0xa0472bea, 0x653a4184), + TOBN(0xf4222e27, 0x0ac69a80), TOBN(0x34096d25, 0xf51e54f6), + TOBN(0x00a648cb, 0x8fffa591), TOBN(0x4e87acdc, 0x69b6527f), + TOBN(0x0575e037, 0xe285ccb4), TOBN(0x188089e4, 0x50ddcf52), + TOBN(0xaa96c9a8, 0x870ff719), TOBN(0x74a56cd8, 0x1fc7e369), + TOBN(0x41d04ee2, 0x1726931a), TOBN(0x0bbbb2c8, 0x3660ecfd), + TOBN(0xa6ef6de5, 0x24818e18), TOBN(0xe421cc51, 0xe7d57887), + TOBN(0xf127d208, 0xbea87be6), TOBN(0x16a475d3, 0xb1cdd682), + TOBN(0x9db1b684, 0x439b63f7), TOBN(0x5359b3db, 0xf0f113b6), + TOBN(0xdfccf1de, 0x8bf06e31), TOBN(0x1fdf8f44, 0xdd383901), + TOBN(0x10775cad, 0x5017e7d2), TOBN(0xdfc3a597, 0x58d11eef), + TOBN(0x6ec9c8a0, 0xb1ecff10), TOBN(0xee6ed6cc, 0x28400549), + TOBN(0xb5ad7bae, 0x1b4f8d73), TOBN(0x61b4f11d, 0xe00aaab9), + TOBN(0x7b32d69b, 0xd4eff2d7), TOBN(0x88ae6771, 0x4288b60f), + TOBN(0x159461b4, 0x37a1e723), TOBN(0x1f3d4789, 0x570aae8c), + TOBN(0x869118c0, 0x7f9871da), TOBN(0x35fbda78, 0xf635e278), + TOBN(0x738f3641, 0xe1541dac), TOBN(0x6794b13a, 0xc0dae45f), + TOBN(0x065064ac, 0x09cc0917), TOBN(0x27c53729, 0xc68540fd), + TOBN(0x0d2d4c8e, 0xef227671), TOBN(0xd23a9f80, 0xa1785a04), + TOBN(0x98c59528, 0x52650359), TOBN(0xfa09ad01, 0x74a1acad), + TOBN(0x082d5a29, 0x0b55bf5c), TOBN(0xa40f1c67, 0x419b8084), + TOBN(0x3a5c752e, 0xdcc18770), TOBN(0x4baf1f2f, 0x8825c3a5), + TOBN(0xebd63f74, 0x21b153ed), TOBN(0xa2383e47, 0xb2f64723), + TOBN(0xe7bf620a, 0x2646d19a), TOBN(0x56cb44ec, 0x03c83ffd), + TOBN(0xaf7267c9, 0x4f6be9f1), TOBN(0x8b2dfd7b, 0xc06bb5e9), + TOBN(0xb87072f2, 0xa672c5c7), TOBN(0xeacb11c8, 0x0d53c5e2), + TOBN(0x22dac29d, 0xff435932), TOBN(0x37bdb99d, 0x4408693c), + TOBN(0xf6e62fb6, 0x2899c20f), TOBN(0x3535d512, 0x447ece24), + TOBN(0xfbdc6b88, 0xff577ce3), TOBN(0x726693bd, 0x190575f2), + TOBN(0x6772b0e5, 0xab4b35a2), TOBN(0x1d8b6001, 0xf5eeaacf), + TOBN(0x728f7ce4, 0x795b9580), TOBN(0x4a20ed2a, 0x41fb81da), + TOBN(0x9f685cd4, 0x4fec01e6), TOBN(0x3ed7ddcc, 0xa7ff50ad), + TOBN(0x460fd264, 0x0c2d97fd), TOBN(0x3a241426, 0xeb82f4f9), + TOBN(0x17d1df2c, 0x6a8ea820), TOBN(0xb2b50d3b, 0xf22cc254), + TOBN(0x03856cba, 0xb7291426), TOBN(0x87fd26ae, 0x04f5ee39), + TOBN(0x9cb696cc, 0x02bee4ba), TOBN(0x53121804, 0x06820fd6), + TOBN(0xa5dfc269, 0x0212e985), TOBN(0x666f7ffa, 0x160f9a09), + TOBN(0xc503cd33, 0xbccd9617), TOBN(0x365dede4, 0xba7730a3), + TOBN(0x798c6355, 0x5ddb0786), TOBN(0xa6c3200e, 0xfc9cd3bc), + TOBN(0x060ffb2c, 0xe5e35efd), TOBN(0x99a4e25b, 0x5555a1c1), + TOBN(0x11d95375, 0xf70b3751), TOBN(0x0a57354a, 0x160e1bf6), + TOBN(0xecb3ae4b, 0xf8e4b065), TOBN(0x07a834c4, 0x2e53022b), + TOBN(0x1cd300b3, 0x8692ed96), TOBN(0x16a6f792, 0x61ee14ec), + TOBN(0x8f1063c6, 0x6a8649ed), TOBN(0xfbcdfcfe, 0x869f3e14), + TOBN(0x2cfb97c1, 0x00a7b3ec), TOBN(0xcea49b3c, 0x7130c2f1), + TOBN(0x462d044f, 0xe9d96488), TOBN(0x4b53d52e, 0x8182a0c1), + TOBN(0x84b6ddd3, 0x0391e9e9), TOBN(0x80ab7b48, 0xb1741a09), + TOBN(0xec0e15d4, 0x27d3317f), TOBN(0x8dfc1ddb, 0x1a64671e), + TOBN(0x93cc5d5f, 0xd49c5b92), TOBN(0xc995d53d, 0x3674a331), + TOBN(0x302e41ec, 0x090090ae), TOBN(0x2278a0cc, 0xedb06830), + TOBN(0x1d025932, 0xfbc99690), TOBN(0x0c32fbd2, 0xb80d68da), + TOBN(0xd79146da, 0xf341a6c1), TOBN(0xae0ba139, 0x1bef68a0), + TOBN(0xc6b8a563, 0x8d774b3a), TOBN(0x1cf307bd, 0x880ba4d7), + TOBN(0xc033bdc7, 0x19803511), TOBN(0xa9f97b3b, 0x8888c3be), + TOBN(0x3d68aebc, 0x85c6d05e), TOBN(0xc3b88a9d, 0x193919eb), + TOBN(0x2d300748, 0xc48b0ee3), TOBN(0x7506bc7c, 0x07a746c1), + TOBN(0xfc48437c, 0x6e6d57f3), TOBN(0x5bd71587, 0xcfeaa91a), + TOBN(0xa4ed0408, 0xc1bc5225), TOBN(0xd0b946db, 0x2719226d), + TOBN(0x109ecd62, 0x758d2d43), TOBN(0x75c8485a, 0x2751759b), + TOBN(0xb0b75f49, 0x9ce4177a), TOBN(0x4fa61a1e, 0x79c10c3d), + TOBN(0xc062d300, 0xa167fcd7), TOBN(0x4df3874c, 0x750f0fa8), + TOBN(0x29ae2cf9, 0x83dfedc9), TOBN(0xf8437134, 0x8d87631a), + TOBN(0xaf571711, 0x7429c8d2), TOBN(0x18d15867, 0x146d9272), + TOBN(0x83053ecf, 0x69769bb7), TOBN(0xc55eb856, 0xc479ab82), + TOBN(0x5ef7791c, 0x21b0f4b2), TOBN(0xaa5956ba, 0x3d491525), + TOBN(0x407a96c2, 0x9fe20eba), TOBN(0xf27168bb, 0xe52a5ad3), + TOBN(0x43b60ab3, 0xbf1d9d89), TOBN(0xe45c51ef, 0x710e727a), + TOBN(0xdfca5276, 0x099b4221), TOBN(0x8dc6407c, 0x2557a159), + TOBN(0x0ead8335, 0x91035895), TOBN(0x0a9db957, 0x9c55dc32), + TOBN(0xe40736d3, 0xdf61bc76), TOBN(0x13a619c0, 0x3f778cdb), + TOBN(0x6dd921a4, 0xc56ea28f), TOBN(0x76a52433, 0x2fa647b4), + TOBN(0x23591891, 0xac5bdc5d), TOBN(0xff4a1a72, 0xbac7dc01), + TOBN(0x9905e261, 0x62df8453), TOBN(0x3ac045df, 0xe63b265f), + TOBN(0x8a3f341b, 0xad53dba7), TOBN(0x8ec269cc, 0x837b625a), + TOBN(0xd71a2782, 0x3ae31189), TOBN(0x8fb4f9a3, 0x55e96120), + TOBN(0x804af823, 0xff9875cf), TOBN(0x23224f57, 0x5d442a9b), + TOBN(0x1c4d3b9e, 0xecc62679), TOBN(0x91da22fb, 0xa0e7ddb1), + TOBN(0xa370324d, 0x6c04a661), TOBN(0x9710d3b6, 0x5e376d17), + TOBN(0xed8c98f0, 0x3044e357), TOBN(0xc364ebbe, 0x6422701c), + TOBN(0x347f5d51, 0x7733d61c), TOBN(0xd55644b9, 0xcea826c3), + TOBN(0x80c6e0ad, 0x55a25548), TOBN(0x0aa7641d, 0x844220a7), + TOBN(0x1438ec81, 0x31810660), TOBN(0x9dfa6507, 0xde4b4043), + TOBN(0x10b515d8, 0xcc3e0273), TOBN(0x1b6066dd, 0x28d8cfb2), + TOBN(0xd3b04591, 0x9c9efebd), TOBN(0x425d4bdf, 0xa21c1ff4), + TOBN(0x5fe5af19, 0xd57607d3), TOBN(0xbbf773f7, 0x54481084), + TOBN(0x8435bd69, 0x94b03ed1), TOBN(0xd9ad1de3, 0x634cc546), + TOBN(0x2cf423fc, 0x00e420ca), TOBN(0xeed26d80, 0xa03096dd), + TOBN(0xd7f60be7, 0xa4db09d2), TOBN(0xf47f569d, 0x960622f7), + TOBN(0xe5925fd7, 0x7296c729), TOBN(0xeff2db26, 0x26ca2715), + TOBN(0xa6fcd014, 0xb913e759), TOBN(0x53da4786, 0x8ff4de93), + TOBN(0x14616d79, 0xc32068e1), TOBN(0xb187d664, 0xccdf352e), + TOBN(0xf7afb650, 0x1dc90b59), TOBN(0x8170e943, 0x7daa1b26), + TOBN(0xc8e3bdd8, 0x700c0a84), TOBN(0x6e8d345f, 0x6482bdfa), + TOBN(0x84cfbfa1, 0xc5c5ea50), TOBN(0xd3baf14c, 0x67960681), + TOBN(0x26398403, 0x0dd50942), TOBN(0xe4b7839c, 0x4716a663), + TOBN(0xd5f1f794, 0xe7de6dc0), TOBN(0x5cd0f4d4, 0x622aa7ce), + TOBN(0x5295f3f1, 0x59acfeec), TOBN(0x8d933552, 0x953e0607), + TOBN(0xc7db8ec5, 0x776c5722), TOBN(0xdc467e62, 0x2b5f290c), + TOBN(0xd4297e70, 0x4ff425a9), TOBN(0x4be924c1, 0x0cf7bb72), + TOBN(0x0d5dc5ae, 0xa1892131), TOBN(0x8bf8a8e3, 0xa705c992), + TOBN(0x73a0b064, 0x7a305ac5), TOBN(0x00c9ca4e, 0x9a8c77a8), + TOBN(0x5dfee80f, 0x83774bdd), TOBN(0x63131602, 0x85734485), + TOBN(0xa1b524ae, 0x914a69a9), TOBN(0xebc2ffaf, 0xd4e300d7), + TOBN(0x52c93db7, 0x7cfa46a5), TOBN(0x71e6161f, 0x21653b50), + TOBN(0x3574fc57, 0xa4bc580a), TOBN(0xc09015dd, 0xe1bc1253), + TOBN(0x4b7b47b2, 0xd174d7aa), TOBN(0x4072d8e8, 0xf3a15d04), + TOBN(0xeeb7d47f, 0xd6fa07ed), TOBN(0x6f2b9ff9, 0xedbdafb1), + TOBN(0x18c51615, 0x3760fe8a), TOBN(0x7a96e6bf, 0xf06c6c13), + TOBN(0x4d7a0410, 0x0ea2d071), TOBN(0xa1914e9b, 0x0be2a5ce), + TOBN(0x5726e357, 0xd8a3c5cf), TOBN(0x1197ecc3, 0x2abb2b13), + TOBN(0x6c0d7f7f, 0x31ae88dd), TOBN(0x15b20d1a, 0xfdbb3efe), + TOBN(0xcd06aa26, 0x70584039), TOBN(0x2277c969, 0xa7dc9747), + TOBN(0xbca69587, 0x7855d815), TOBN(0x899ea238, 0x5188b32a), + TOBN(0x37d9228b, 0x760c1c9d), TOBN(0xc7efbb11, 0x9b5c18da), + TOBN(0x7f0d1bc8, 0x19f6dbc5), TOBN(0x4875384b, 0x07e6905b), + TOBN(0xc7c50baa, 0x3ba8cd86), TOBN(0xb0ce40fb, 0xc2905de0), + TOBN(0x70840673, 0x7a231952), TOBN(0xa912a262, 0xcf43de26), + TOBN(0x9c38ddcc, 0xeb5b76c1), TOBN(0x746f5285, 0x26fc0ab4), + TOBN(0x52a63a50, 0xd62c269f), TOBN(0x60049c55, 0x99458621), + TOBN(0xe7f48f82, 0x3c2f7c9e), TOBN(0x6bd99043, 0x917d5cf3), + TOBN(0xeb1317a8, 0x8701f469), TOBN(0xbd3fe2ed, 0x9a449fe0), + TOBN(0x421e79ca, 0x12ef3d36), TOBN(0x9ee3c36c, 0x3e7ea5de), + TOBN(0xe48198b5, 0xcdff36f7), TOBN(0xaff4f967, 0xc6b82228), + TOBN(0x15e19dd0, 0xc47adb7e), TOBN(0x45699b23, 0x032e7dfa), + TOBN(0x40680c8b, 0x1fae026a), TOBN(0x5a347a48, 0x550dbf4d), + TOBN(0xe652533b, 0x3cef0d7d), TOBN(0xd94f7b18, 0x2bbb4381), + TOBN(0x838752be, 0x0e80f500), TOBN(0x8e6e2488, 0x9e9c9bfb), + TOBN(0xc9751697, 0x16caca6a), TOBN(0x866c49d8, 0x38531ad9), + TOBN(0xc917e239, 0x7151ade1), TOBN(0x2d016ec1, 0x6037c407), + TOBN(0xa407ccc9, 0x00eac3f9), TOBN(0x835f6280, 0xe2ed4748), + TOBN(0xcc54c347, 0x1cc98e0d), TOBN(0x0e969937, 0xdcb572eb), + TOBN(0x1b16c8e8, 0x8f30c9cb), TOBN(0xa606ae75, 0x373c4661), + TOBN(0x47aa689b, 0x35502cab), TOBN(0xf89014ae, 0x4d9bb64f), + TOBN(0x202f6a9c, 0x31c71f7b), TOBN(0x01f95aa3, 0x296ffe5c), + TOBN(0x5fc06014, 0x53cec3a3), TOBN(0xeb991237, 0x5f498a45), + TOBN(0xae9a935e, 0x5d91ba87), TOBN(0xc6ac6281, 0x0b564a19), + TOBN(0x8a8fe81c, 0x3bd44e69), TOBN(0x7c8b467f, 0x9dd11d45), + TOBN(0xf772251f, 0xea5b8e69), TOBN(0xaeecb3bd, 0xc5b75fbc), + TOBN(0x1aca3331, 0x887ff0e5), TOBN(0xbe5d49ff, 0x19f0a131), + TOBN(0x582c13aa, 0xe5c8646f), TOBN(0xdbaa12e8, 0x20e19980), + TOBN(0x8f40f31a, 0xf7abbd94), TOBN(0x1f13f5a8, 0x1dfc7663), + TOBN(0x5d81f1ee, 0xaceb4fc0), TOBN(0x36256002, 0x5e6f0f42), + TOBN(0x4b67d6d7, 0x751370c8), TOBN(0x2608b698, 0x03e80589), + TOBN(0xcfc0d2fc, 0x05268301), TOBN(0xa6943d39, 0x40309212), + TOBN(0x192a90c2, 0x1fd0e1c2), TOBN(0xb209f113, 0x37f1dc76), + TOBN(0xefcc5e06, 0x97bf1298), TOBN(0xcbdb6730, 0x219d639e), + TOBN(0xd009c116, 0xb81e8c6f), TOBN(0xa3ffdde3, 0x1a7ce2e5), + TOBN(0xc53fbaaa, 0xa914d3ba), TOBN(0x836d500f, 0x88df85ee), + TOBN(0xd98dc71b, 0x66ee0751), TOBN(0x5a3d7005, 0x714516fd), + TOBN(0x21d3634d, 0x39eedbba), TOBN(0x35cd2e68, 0x0455a46d), + TOBN(0xc8cafe65, 0xf9d7eb0c), TOBN(0xbda3ce9e, 0x00cefb3e), + TOBN(0xddc17a60, 0x2c9cf7a4), TOBN(0x01572ee4, 0x7bcb8773), + TOBN(0xa92b2b01, 0x8c7548df), TOBN(0x732fd309, 0xa84600e3), + TOBN(0xe22109c7, 0x16543a40), TOBN(0x9acafd36, 0xfede3c6c), + TOBN(0xfb206852, 0x6824e614), TOBN(0x2a4544a9, 0xda25dca0), + TOBN(0x25985262, 0x91d60b06), TOBN(0x281b7be9, 0x28753545), + TOBN(0xec667b1a, 0x90f13b27), TOBN(0x33a83aff, 0x940e2eb4), + TOBN(0x80009862, 0xd5d721d5), TOBN(0x0c3357a3, 0x5bd3a182), + TOBN(0x27f3a83b, 0x7aa2cda4), TOBN(0xb58ae74e, 0xf6f83085), + TOBN(0x2a911a81, 0x2e6dad6b), TOBN(0xde286051, 0xf43d6c5b), + TOBN(0x4bdccc41, 0xf996c4d8), TOBN(0xe7312ec0, 0x0ae1e24e)} + , + {TOBN(0xf8d112e7, 0x6e6485b3), TOBN(0x4d3e24db, 0x771c52f8), + TOBN(0x48e3ee41, 0x684a2f6d), TOBN(0x7161957d, 0x21d95551), + TOBN(0x19631283, 0xcdb12a6c), TOBN(0xbf3fa882, 0x2e50e164), + TOBN(0xf6254b63, 0x3166cc73), TOBN(0x3aefa7ae, 0xaee8cc38), + TOBN(0x79b0fe62, 0x3b36f9fd), TOBN(0x26543b23, 0xfde19fc0), + TOBN(0x136e64a0, 0x958482ef), TOBN(0x23f63771, 0x9b095825), + TOBN(0x14cfd596, 0xb6a1142e), TOBN(0x5ea6aac6, 0x335aac0b), + TOBN(0x86a0e8bd, 0xf3081dd5), TOBN(0x5fb89d79, 0x003dc12a), + TOBN(0xf615c33a, 0xf72e34d4), TOBN(0x0bd9ea40, 0x110eec35), + TOBN(0x1c12bc5b, 0xc1dea34e), TOBN(0x686584c9, 0x49ae4699), + TOBN(0x13ad95d3, 0x8c97b942), TOBN(0x4609561a, 0x4e5c7562), + TOBN(0x9e94a4ae, 0xf2737f89), TOBN(0xf57594c6, 0x371c78b6), + TOBN(0x0f0165fc, 0xe3779ee3), TOBN(0xe00e7f9d, 0xbd495d9e), + TOBN(0x1fa4efa2, 0x20284e7a), TOBN(0x4564bade, 0x47ac6219), + TOBN(0x90e6312a, 0xc4708e8e), TOBN(0x4f5725fb, 0xa71e9adf), + TOBN(0xe95f55ae, 0x3d684b9f), TOBN(0x47f7ccb1, 0x1e94b415), + TOBN(0x7322851b, 0x8d946581), TOBN(0xf0d13133, 0xbdf4a012), + TOBN(0xa3510f69, 0x6584dae0), TOBN(0x03a7c171, 0x3c9f6c6d), + TOBN(0x5be97f38, 0xe475381a), TOBN(0xca1ba422, 0x85823334), + TOBN(0xf83cc5c7, 0x0be17dda), TOBN(0x158b1494, 0x0b918c0f), + TOBN(0xda3a77e5, 0x522e6b69), TOBN(0x69c908c3, 0xbbcd6c18), + TOBN(0x1f1b9e48, 0xd924fd56), TOBN(0x37c64e36, 0xaa4bb3f7), + TOBN(0x5a4fdbdf, 0xee478d7d), TOBN(0xba75c8bc, 0x0193f7a0), + TOBN(0x84bc1e84, 0x56cd16df), TOBN(0x1fb08f08, 0x46fad151), + TOBN(0x8a7cabf9, 0x842e9f30), TOBN(0xa331d4bf, 0x5eab83af), + TOBN(0xd272cfba, 0x017f2a6a), TOBN(0x27560abc, 0x83aba0e3), + TOBN(0x94b83387, 0x0e3a6b75), TOBN(0x25c6aea2, 0x6b9f50f5), + TOBN(0x803d691d, 0xb5fdf6d0), TOBN(0x03b77509, 0xe6333514), + TOBN(0x36178903, 0x61a341c1), TOBN(0x3604dc60, 0x0cfd6142), + TOBN(0x022295eb, 0x8533316c), TOBN(0x3dbde4ac, 0x44af2922), + TOBN(0x898afc5d, 0x1c7eef69), TOBN(0x58896805, 0xd14f4fa1), + TOBN(0x05002160, 0x203c21ca), TOBN(0x6f0d1f30, 0x40ef730b), + TOBN(0x8e8c44d4, 0x196224f8), TOBN(0x75a4ab95, 0x374d079d), + TOBN(0x79085ecc, 0x7d48f123), TOBN(0x56f04d31, 0x1bf65ad8), + TOBN(0xe220bf1c, 0xbda602b2), TOBN(0x73ee1742, 0xf9612c69), + TOBN(0x76008fc8, 0x084fd06b), TOBN(0x4000ef9f, 0xf11380d1), + TOBN(0x48201b4b, 0x12cfe297), TOBN(0x3eee129c, 0x292f74e5), + TOBN(0xe1fe114e, 0xc9e874e8), TOBN(0x899b055c, 0x92c5fc41), + TOBN(0x4e477a64, 0x3a39c8cf), TOBN(0x82f09efe, 0x78963cc9), + TOBN(0x6fd3fd8f, 0xd333f863), TOBN(0x85132b2a, 0xdc949c63), + TOBN(0x7e06a3ab, 0x516eb17b), TOBN(0x73bec06f, 0xd2c7372b), + TOBN(0xe4f74f55, 0xba896da6), TOBN(0xbb4afef8, 0x8e9eb40f), + TOBN(0x2d75bec8, 0xe61d66b0), TOBN(0x02bda4b4, 0xef29300b), + TOBN(0x8bbaa8de, 0x026baa5a), TOBN(0xff54befd, 0xa07f4440), + TOBN(0xbd9b8b1d, 0xbe7a2af3), TOBN(0xec51caa9, 0x4fb74a72), + TOBN(0xb9937a4b, 0x63879697), TOBN(0x7c9a9d20, 0xec2687d5), + TOBN(0x1773e44f, 0x6ef5f014), TOBN(0x8abcf412, 0xe90c6900), + TOBN(0x387bd022, 0x8142161e), TOBN(0x50393755, 0xfcb6ff2a), + TOBN(0x9813fd56, 0xed6def63), TOBN(0x53cf6482, 0x7d53106c), + TOBN(0x991a35bd, 0x431f7ac1), TOBN(0xf1e274dd, 0x63e65faf), + TOBN(0xf63ffa3c, 0x44cc7880), TOBN(0x411a426b, 0x7c256981), + TOBN(0xb698b9fd, 0x93a420e0), TOBN(0x89fdddc0, 0xae53f8fe), + TOBN(0x766e0722, 0x32398baa), TOBN(0x205fee42, 0x5cfca031), + TOBN(0xa49f5341, 0x7a029cf2), TOBN(0xa88c68b8, 0x4023890d), + TOBN(0xbc275041, 0x7337aaa8), TOBN(0x9ed364ad, 0x0eb384f4), + TOBN(0xe0816f85, 0x29aba92f), TOBN(0x2e9e1941, 0x04e38a88), + TOBN(0x57eef44a, 0x3dafd2d5), TOBN(0x35d1fae5, 0x97ed98d8), + TOBN(0x50628c09, 0x2307f9b1), TOBN(0x09d84aae, 0xd6cba5c6), + TOBN(0x67071bc7, 0x88aaa691), TOBN(0x2dea57a9, 0xafe6cb03), + TOBN(0xdfe11bb4, 0x3d78ac01), TOBN(0x7286418c, 0x7fd7aa51), + TOBN(0xfabf7709, 0x77f7195a), TOBN(0x8ec86167, 0xadeb838f), + TOBN(0xea1285a8, 0xbb4f012d), TOBN(0xd6883503, 0x9a3eab3f), + TOBN(0xee5d24f8, 0x309004c2), TOBN(0xa96e4b76, 0x13ffe95e), + TOBN(0x0cdffe12, 0xbd223ea4), TOBN(0x8f5c2ee5, 0xb6739a53), + TOBN(0x5cb4aaa5, 0xdd968198), TOBN(0xfa131c52, 0x72413a6c), + TOBN(0x53d46a90, 0x9536d903), TOBN(0xb270f0d3, 0x48606d8e), + TOBN(0x518c7564, 0xa053a3bc), TOBN(0x088254b7, 0x1a86caef), + TOBN(0xb3ba8cb4, 0x0ab5efd0), TOBN(0x5c59900e, 0x4605945d), + TOBN(0xecace1dd, 0xa1887395), TOBN(0x40960f36, 0x932a65de), + TOBN(0x9611ff5c, 0x3aa95529), TOBN(0xc58215b0, 0x7c1e5a36), + TOBN(0xd48c9b58, 0xf0e1a524), TOBN(0xb406856b, 0xf590dfb8), + TOBN(0xc7605e04, 0x9cd95662), TOBN(0x0dd036ee, 0xa33ecf82), + TOBN(0xa50171ac, 0xc33156b3), TOBN(0xf09d24ea, 0x4a80172e), + TOBN(0x4e1f72c6, 0x76dc8eef), TOBN(0xe60caadc, 0x5e3d44ee), + TOBN(0x006ef8a6, 0x979b1d8f), TOBN(0x60908a1c, 0x97788d26), + TOBN(0x6e08f95b, 0x266feec0), TOBN(0x618427c2, 0x22e8c94e), + TOBN(0x3d613339, 0x59145a65), TOBN(0xcd9bc368, 0xfa406337), + TOBN(0x82d11be3, 0x2d8a52a0), TOBN(0xf6877b27, 0x97a1c590), + TOBN(0x837a819b, 0xf5cbdb25), TOBN(0x2a4fd1d8, 0xde090249), + TOBN(0x622a7de7, 0x74990e5f), TOBN(0x840fa5a0, 0x7945511b), + TOBN(0x30b974be, 0x6558842d), TOBN(0x70df8c64, 0x17f3d0a6), + TOBN(0x7c803520, 0x7542e46d), TOBN(0x7251fe7f, 0xe4ecc823), + TOBN(0xe59134cb, 0x5e9aac9a), TOBN(0x11bb0934, 0xf0045d71), + TOBN(0x53e5d9b5, 0xdbcb1d4e), TOBN(0x8d97a905, 0x92defc91), + TOBN(0xfe289327, 0x7946d3f9), TOBN(0xe132bd24, 0x07472273), + TOBN(0xeeeb510c, 0x1eb6ae86), TOBN(0x777708c5, 0xf0595067), + TOBN(0x18e2c8cd, 0x1297029e), TOBN(0x2c61095c, 0xbbf9305e), + TOBN(0xe466c258, 0x6b85d6d9), TOBN(0x8ac06c36, 0xda1ea530), + TOBN(0xa365dc39, 0xa1304668), TOBN(0xe4a9c885, 0x07f89606), + TOBN(0x65a4898f, 0xacc7228d), TOBN(0x3e2347ff, 0x84ca8303), + TOBN(0xa5f6fb77, 0xea7d23a3), TOBN(0x2fac257d, 0x672a71cd), + TOBN(0x6908bef8, 0x7e6a44d3), TOBN(0x8ff87566, 0x891d3d7a), + TOBN(0xe58e90b3, 0x6b0cf82e), TOBN(0x6438d246, 0x2615b5e7), + TOBN(0x07b1f8fc, 0x669c145a), TOBN(0xb0d8b2da, 0x36f1e1cb), + TOBN(0x54d5dadb, 0xd9184c4d), TOBN(0x3dbb18d5, 0xf93d9976), + TOBN(0x0a3e0f56, 0xd1147d47), TOBN(0x2afa8c8d, 0xa0a48609), + TOBN(0x275353e8, 0xbc36742c), TOBN(0x898f427e, 0xeea0ed90), + TOBN(0x26f4947e, 0x3e477b00), TOBN(0x8ad8848a, 0x308741e3), + TOBN(0x6c703c38, 0xd74a2a46), TOBN(0x5e3e05a9, 0x9ba17ba2), + TOBN(0xc1fa6f66, 0x4ab9a9e4), TOBN(0x474a2d9a, 0x3841d6ec), + TOBN(0x871239ad, 0x653ae326), TOBN(0x14bcf72a, 0xa74cbb43), + TOBN(0x8737650e, 0x20d4c083), TOBN(0x3df86536, 0x110ed4af), + TOBN(0xd2d86fe7, 0xb53ca555), TOBN(0x688cb00d, 0xabd5d538), + TOBN(0xcf81bda3, 0x1ad38468), TOBN(0x7ccfe3cc, 0xf01167b6), + TOBN(0xcf4f47e0, 0x6c4c1fe6), TOBN(0x557e1f1a, 0x298bbb79), + TOBN(0xf93b974f, 0x30d45a14), TOBN(0x174a1d2d, 0x0baf97c4), + TOBN(0x7a003b30, 0xc51fbf53), TOBN(0xd8940991, 0xee68b225), + TOBN(0x5b0aa7b7, 0x1c0f4173), TOBN(0x975797c9, 0xa20a7153), + TOBN(0x26e08c07, 0xe3533d77), TOBN(0xd7222e6a, 0x2e341c99), + TOBN(0x9d60ec3d, 0x8d2dc4ed), TOBN(0xbdfe0d8f, 0x7c476cf8), + TOBN(0x1fe59ab6, 0x1d056605), TOBN(0xa9ea9df6, 0x86a8551f), + TOBN(0x8489941e, 0x47fb8d8c), TOBN(0xfeb874eb, 0x4a7f1b10), + TOBN(0xfe5fea86, 0x7ee0d98f), TOBN(0x201ad34b, 0xdbf61864), + TOBN(0x45d8fe47, 0x37c031d4), TOBN(0xd5f49fae, 0x795f0822), + TOBN(0xdb0fb291, 0xc7f4a40c), TOBN(0x2e69d9c1, 0x730ddd92), + TOBN(0x754e1054, 0x49d76987), TOBN(0x8a24911d, 0x7662db87), + TOBN(0x61fc1810, 0x60a71676), TOBN(0xe852d1a8, 0xf66a8ad1), + TOBN(0x172bbd65, 0x6417231e), TOBN(0x0d6de7bd, 0x3babb11f), + TOBN(0x6fde6f88, 0xc8e347f8), TOBN(0x1c587547, 0x9bd99cc3), + TOBN(0x78e54ed0, 0x34076950), TOBN(0x97f0f334, 0x796e83ba), + TOBN(0xe4dbe1ce, 0x4924867a), TOBN(0xbd5f51b0, 0x60b84917), + TOBN(0x37530040, 0x3cb09a79), TOBN(0xdb3fe0f8, 0xff1743d8), + TOBN(0xed7894d8, 0x556fa9db), TOBN(0xfa262169, 0x23412fbf), + TOBN(0x563be0db, 0xba7b9291), TOBN(0x6ca8b8c0, 0x0c9fb234), + TOBN(0xed406aa9, 0xbd763802), TOBN(0xc21486a0, 0x65303da1), + TOBN(0x61ae291e, 0xc7e62ec4), TOBN(0x622a0492, 0xdf99333e), + TOBN(0x7fd80c9d, 0xbb7a8ee0), TOBN(0xdc2ed3bc, 0x6c01aedb), + TOBN(0x35c35a12, 0x08be74ec), TOBN(0xd540cb1a, 0x469f671f), + TOBN(0xd16ced4e, 0xcf84f6c7), TOBN(0x8561fb9c, 0x2d090f43), + TOBN(0x7e693d79, 0x6f239db4), TOBN(0xa736f928, 0x77bd0d94), + TOBN(0x07b4d929, 0x2c1950ee), TOBN(0xda177543, 0x56dc11b3), + TOBN(0xa5dfbbaa, 0x7a6a878e), TOBN(0x1c70cb29, 0x4decb08a), + TOBN(0xfba28c8b, 0x6f0f7c50), TOBN(0xa8eba2b8, 0x854dcc6d), + TOBN(0x5ff8e89a, 0x36b78642), TOBN(0x070c1c8e, 0xf6873adf), + TOBN(0xbbd3c371, 0x6484d2e4), TOBN(0xfb78318f, 0x0d414129), + TOBN(0x2621a39c, 0x6ad93b0b), TOBN(0x979d74c2, 0xa9e917f7), + TOBN(0xfc195647, 0x61fb0428), TOBN(0x4d78954a, 0xbee624d4), + TOBN(0xb94896e0, 0xb8ae86fd), TOBN(0x6667ac0c, 0xc91c8b13), + TOBN(0x9f180512, 0x43bcf832), TOBN(0xfbadf8b7, 0xa0010137), + TOBN(0xc69b4089, 0xb3ba8aa7), TOBN(0xfac4bacd, 0xe687ce85), + TOBN(0x9164088d, 0x977eab40), TOBN(0x51f4c5b6, 0x2760b390), + TOBN(0xd238238f, 0x340dd553), TOBN(0x358566c3, 0xdb1d31c9), + TOBN(0x3a5ad69e, 0x5068f5ff), TOBN(0xf31435fc, 0xdaff6b06), + TOBN(0xae549a5b, 0xd6debff0), TOBN(0x59e5f0b7, 0x75e01331), + TOBN(0x5d492fb8, 0x98559acf), TOBN(0x96018c2e, 0x4db79b50), + TOBN(0x55f4a48f, 0x609f66aa), TOBN(0x1943b3af, 0x4900a14f), + TOBN(0xc22496df, 0x15a40d39), TOBN(0xb2a44684, 0x4c20f7c5), + TOBN(0x76a35afa, 0x3b98404c), TOBN(0xbec75725, 0xff5d1b77), + TOBN(0xb67aa163, 0xbea06444), TOBN(0x27e95bb2, 0xf724b6f2), + TOBN(0x3c20e3e9, 0xd238c8ab), TOBN(0x1213754e, 0xddd6ae17), + TOBN(0x8c431020, 0x716e0f74), TOBN(0x6679c82e, 0xffc095c2), + TOBN(0x2eb3adf4, 0xd0ac2932), TOBN(0x2cc970d3, 0x01bb7a76), + TOBN(0x70c71f2f, 0x740f0e66), TOBN(0x545c616b, 0x2b6b23cc), + TOBN(0x4528cfcb, 0xb40a8bd7), TOBN(0xff839633, 0x2ab27722), + TOBN(0x049127d9, 0x025ac99a), TOBN(0xd314d4a0, 0x2b63e33b), + TOBN(0xc8c310e7, 0x28d84519), TOBN(0x0fcb8983, 0xb3bc84ba), + TOBN(0x2cc52261, 0x38634818), TOBN(0x501814f4, 0xb44c2e0b), + TOBN(0xf7e181aa, 0x54dfdba3), TOBN(0xcfd58ff0, 0xe759718c), + TOBN(0xf90cdb14, 0xd3b507a8), TOBN(0x57bd478e, 0xc50bdad8), + TOBN(0x29c197e2, 0x50e5f9aa), TOBN(0x4db6eef8, 0xe40bc855), + TOBN(0x2cc8f21a, 0xd1fc0654), TOBN(0xc71cc963, 0x81269d73), + TOBN(0xecfbb204, 0x077f49f9), TOBN(0xdde92571, 0xca56b793), + TOBN(0x9abed6a3, 0xf97ad8f7), TOBN(0xe6c19d3f, 0x924de3bd), + TOBN(0x8dce92f4, 0xa140a800), TOBN(0x85f44d1e, 0x1337af07), + TOBN(0x5953c08b, 0x09d64c52), TOBN(0xa1b5e49f, 0xf5df9749), + TOBN(0x336a8fb8, 0x52735f7d), TOBN(0xb332b6db, 0x9add676b), + TOBN(0x558b88a0, 0xb4511aa4), TOBN(0x09788752, 0xdbd5cc55), + TOBN(0x16b43b9c, 0xd8cd52bd), TOBN(0x7f0bc5a0, 0xc2a2696b), + TOBN(0x146e12d4, 0xc11f61ef), TOBN(0x9ce10754, 0x3a83e79e), + TOBN(0x08ec73d9, 0x6cbfca15), TOBN(0x09ff29ad, 0x5b49653f), + TOBN(0xe31b72bd, 0xe7da946e), TOBN(0xebf9eb3b, 0xee80a4f2), + TOBN(0xd1aabd08, 0x17598ce4), TOBN(0x18b5fef4, 0x53f37e80), + TOBN(0xd5d5cdd3, 0x5958cd79), TOBN(0x3580a1b5, 0x1d373114), + TOBN(0xa36e4c91, 0xfa935726), TOBN(0xa38c534d, 0xef20d760), + TOBN(0x7088e40a, 0x2ff5845b), TOBN(0xe5bb40bd, 0xbd78177f), + TOBN(0x4f06a7a8, 0x857f9920), TOBN(0xe3cc3e50, 0xe968f05d), + TOBN(0x1d68b7fe, 0xe5682d26), TOBN(0x5206f76f, 0xaec7f87c), + TOBN(0x41110530, 0x041951ab), TOBN(0x58ec52c1, 0xd4b5a71a), + TOBN(0xf3488f99, 0x0f75cf9a), TOBN(0xf411951f, 0xba82d0d5), + TOBN(0x27ee75be, 0x618895ab), TOBN(0xeae060d4, 0x6d8aab14), + TOBN(0x9ae1df73, 0x7fb54dc2), TOBN(0x1f3e391b, 0x25963649), + TOBN(0x242ec32a, 0xfe055081), TOBN(0x5bd450ef, 0x8491c9bd), + TOBN(0x367efc67, 0x981eb389), TOBN(0xed7e1928, 0x3a0550d5), + TOBN(0x362e776b, 0xab3ce75c), TOBN(0xe890e308, 0x1f24c523), + TOBN(0xb961b682, 0xfeccef76), TOBN(0x8b8e11f5, 0x8bba6d92), + TOBN(0x8f2ccc4c, 0x2b2375c4), TOBN(0x0d7f7a52, 0xe2f86cfa), + TOBN(0xfd94d30a, 0x9efe5633), TOBN(0x2d8d246b, 0x5451f934), + TOBN(0x2234c6e3, 0x244e6a00), TOBN(0xde2b5b0d, 0xddec8c50), + TOBN(0x2ce53c5a, 0xbf776f5b), TOBN(0x6f724071, 0x60357b05), + TOBN(0xb2593717, 0x71bf3f7a), TOBN(0x87d2501c, 0x440c4a9f), + TOBN(0x440552e1, 0x87b05340), TOBN(0xb7bf7cc8, 0x21624c32), + TOBN(0x4155a6ce, 0x22facddb), TOBN(0x5a4228cb, 0x889837ef), + TOBN(0xef87d6d6, 0xfd4fd671), TOBN(0xa233687e, 0xc2daa10e), + TOBN(0x75622244, 0x03c0eb96), TOBN(0x7632d184, 0x8bf19be6), + TOBN(0x05d0f8e9, 0x40735ff4), TOBN(0x3a3e6e13, 0xc00931f1), + TOBN(0x31ccde6a, 0xdafe3f18), TOBN(0xf381366a, 0xcfe51207), + TOBN(0x24c222a9, 0x60167d92), TOBN(0x62f9d6f8, 0x7529f18c), + TOBN(0x412397c0, 0x0353b114), TOBN(0x334d89dc, 0xef808043), + TOBN(0xd9ec63ba, 0x2a4383ce), TOBN(0xcec8e937, 0x5cf92ba0), + TOBN(0xfb8b4288, 0xc8be74c0), TOBN(0x67d6912f, 0x105d4391), + TOBN(0x7b996c46, 0x1b913149), TOBN(0x36aae2ef, 0x3a4e02da), + TOBN(0xb68aa003, 0x972de594), TOBN(0x284ec70d, 0x4ec6d545), + TOBN(0xf3d2b2d0, 0x61391d54), TOBN(0x69c5d5d6, 0xfe114e92), + TOBN(0xbe0f00b5, 0xb4482dff), TOBN(0xe1596fa5, 0xf5bf33c5), + TOBN(0x10595b56, 0x96a71cba), TOBN(0x944938b2, 0xfdcadeb7), + TOBN(0xa282da4c, 0xfccd8471), TOBN(0x98ec05f3, 0x0d37bfe1), + TOBN(0xe171ce1b, 0x0698304a), TOBN(0x2d691444, 0x21bdf79b), + TOBN(0xd0cd3b74, 0x1b21dec1), TOBN(0x712ecd8b, 0x16a15f71), + TOBN(0x8d4c00a7, 0x00fd56e1), TOBN(0x02ec9692, 0xf9527c18), + TOBN(0x21c44937, 0x4a3e42e1), TOBN(0x9176fbab, 0x1392ae0a), + TOBN(0x8726f1ba, 0x44b7b618), TOBN(0xb4d7aae9, 0xf1de491c), + TOBN(0xf91df7b9, 0x07b582c0), TOBN(0x7e116c30, 0xef60aa3a), + TOBN(0x99270f81, 0x466265d7), TOBN(0xb15b6fe2, 0x4df7adf0), + TOBN(0xfe33b2d3, 0xf9738f7f), TOBN(0x48553ab9, 0xd6d70f95), + TOBN(0x2cc72ac8, 0xc21e94db), TOBN(0x795ac38d, 0xbdc0bbee), + TOBN(0x0a1be449, 0x2e40478f), TOBN(0x81bd3394, 0x052bde55), + TOBN(0x63c8dbe9, 0x56b3c4f2), TOBN(0x017a99cf, 0x904177cc), + TOBN(0x947bbddb, 0x4d010fc1), TOBN(0xacf9b00b, 0xbb2c9b21), + TOBN(0x2970bc8d, 0x47173611), TOBN(0x1a4cbe08, 0xac7d756f), + TOBN(0x06d9f4aa, 0x67d541a2), TOBN(0xa3e8b689, 0x59c2cf44), + TOBN(0xaad066da, 0x4d88f1dd), TOBN(0xc604f165, 0x7ad35dea), + TOBN(0x7edc0720, 0x4478ca67), TOBN(0xa10dfae0, 0xba02ce06), + TOBN(0xeceb1c76, 0xaf36f4e4), TOBN(0x994b2292, 0xaf3f8f48), + TOBN(0xbf9ed77b, 0x77c8a68c), TOBN(0x74f544ea, 0x51744c9d), + TOBN(0x82d05bb9, 0x8113a757), TOBN(0x4ef2d2b4, 0x8a9885e4), + TOBN(0x1e332be5, 0x1aa7865f), TOBN(0x22b76b18, 0x290d1a52), + TOBN(0x308a2310, 0x44351683), TOBN(0x9d861896, 0xa3f22840), + TOBN(0x5959ddcd, 0x841ed947), TOBN(0x0def0c94, 0x154b73bf), + TOBN(0xf0105417, 0x4c7c15e0), TOBN(0x539bfb02, 0x3a277c32), + TOBN(0xe699268e, 0xf9dccf5f), TOBN(0x9f5796a5, 0x0247a3bd), + TOBN(0x8b839de8, 0x4f157269), TOBN(0xc825c1e5, 0x7a30196b), + TOBN(0x6ef0aabc, 0xdc8a5a91), TOBN(0xf4a8ce6c, 0x498b7fe6), + TOBN(0x1cce35a7, 0x70cbac78), TOBN(0x83488e9b, 0xf6b23958), + TOBN(0x0341a070, 0xd76cb011), TOBN(0xda6c9d06, 0xae1b2658), + TOBN(0xb701fb30, 0xdd648c52), TOBN(0x994ca02c, 0x52fb9fd1), + TOBN(0x06933117, 0x6f563086), TOBN(0x3d2b8100, 0x17856bab), + TOBN(0xe89f48c8, 0x5963a46e), TOBN(0x658ab875, 0xa99e61c7), + TOBN(0x6e296f87, 0x4b8517b4), TOBN(0x36c4fcdc, 0xfc1bc656), + TOBN(0xde5227a1, 0xa3906def), TOBN(0x9fe95f57, 0x62418945), + TOBN(0x20c91e81, 0xfdd96cde), TOBN(0x5adbe47e, 0xda4480de), + TOBN(0xa009370f, 0x396de2b6), TOBN(0x98583d4b, 0xf0ecc7bd), + TOBN(0xf44f6b57, 0xe51d0672), TOBN(0x03d6b078, 0x556b1984), + TOBN(0x27dbdd93, 0xb0b64912), TOBN(0x9b3a3434, 0x15687b09), + TOBN(0x0dba6461, 0x51ec20a9), TOBN(0xec93db7f, 0xff28187c), + TOBN(0x00ff8c24, 0x66e48bdd), TOBN(0x2514f2f9, 0x11ccd78e), + TOBN(0xeba11f4f, 0xe1250603), TOBN(0x8a22cd41, 0x243fa156), + TOBN(0xa4e58df4, 0xb283e4c6), TOBN(0x78c29859, 0x8b39783f), + TOBN(0x5235aee2, 0xa5259809), TOBN(0xc16284b5, 0x0e0227dd), + TOBN(0xa5f57916, 0x1338830d), TOBN(0x6d4b8a6b, 0xd2123fca), + TOBN(0x236ea68a, 0xf9c546f8), TOBN(0xc1d36873, 0xfa608d36), + TOBN(0xcd76e495, 0x8d436d13), TOBN(0xd4d9c221, 0x8fb080af), + TOBN(0x665c1728, 0xe8ad3fb5), TOBN(0xcf1ebe4d, 0xb3d572e0), + TOBN(0xa7a8746a, 0x584c5e20), TOBN(0x267e4ea1, 0xb9dc7035), + TOBN(0x593a15cf, 0xb9548c9b), TOBN(0x5e6e2135, 0x4bd012f3), + TOBN(0xdf31cc6a, 0x8c8f936e), TOBN(0x8af84d04, 0xb5c241dc), + TOBN(0x63990a6f, 0x345efb86), TOBN(0x6fef4e61, 0xb9b962cb)} + , + {TOBN(0xf6368f09, 0x25722608), TOBN(0x131260db, 0x131cf5c6), + TOBN(0x40eb353b, 0xfab4f7ac), TOBN(0x85c78880, 0x37eee829), + TOBN(0x4c1581ff, 0xc3bdf24e), TOBN(0x5bff75cb, 0xf5c3c5a8), + TOBN(0x35e8c83f, 0xa14e6f40), TOBN(0xb81d1c0f, 0x0295e0ca), + TOBN(0xfcde7cc8, 0xf43a730f), TOBN(0xe89b6f3c, 0x33ab590e), + TOBN(0xc823f529, 0xad03240b), TOBN(0x82b79afe, 0x98bea5db), + TOBN(0x568f2856, 0x962fe5de), TOBN(0x0c590adb, 0x60c591f3), + TOBN(0x1fc74a14, 0x4a28a858), TOBN(0x3b662498, 0xb3203f4c), + TOBN(0x91e3cf0d, 0x6c39765a), TOBN(0xa2db3acd, 0xac3cca0b), + TOBN(0x288f2f08, 0xcb953b50), TOBN(0x2414582c, 0xcf43cf1a), + TOBN(0x8dec8bbc, 0x60eee9a8), TOBN(0x54c79f02, 0x729aa042), + TOBN(0xd81cd5ec, 0x6532f5d5), TOBN(0xa672303a, 0xcf82e15f), + TOBN(0x376aafa8, 0x719c0563), TOBN(0xcd8ad2dc, 0xbc5fc79f), + TOBN(0x303fdb9f, 0xcb750cd3), TOBN(0x14ff052f, 0x4418b08e), + TOBN(0xf75084cf, 0x3e2d6520), TOBN(0x7ebdf0f8, 0x144ed509), + TOBN(0xf43bf0f2, 0xd3f25b98), TOBN(0x86ad71cf, 0xa354d837), + TOBN(0xb827fe92, 0x26f43572), TOBN(0xdfd3ab5b, 0x5d824758), + TOBN(0x315dd23a, 0x539094c1), TOBN(0x85c0e37a, 0x66623d68), + TOBN(0x575c7972, 0x7be19ae0), TOBN(0x616a3396, 0xdf0d36b5), + TOBN(0xa1ebb3c8, 0x26b1ff7e), TOBN(0x635b9485, 0x140ad453), + TOBN(0x92bf3cda, 0xda430c0b), TOBN(0x4702850e, 0x3a96dac6), + TOBN(0xc91cf0a5, 0x15ac326a), TOBN(0x95de4f49, 0xab8c25e4), + TOBN(0xb01bad09, 0xe265c17c), TOBN(0x24e45464, 0x087b3881), + TOBN(0xd43e583c, 0xe1fac5ca), TOBN(0xe17cb318, 0x6ead97a6), + TOBN(0x6cc39243, 0x74dcec46), TOBN(0x33cfc02d, 0x54c2b73f), + TOBN(0x82917844, 0xf26cd99c), TOBN(0x8819dd95, 0xd1773f89), + TOBN(0x09572aa6, 0x0871f427), TOBN(0x8e0cf365, 0xf6f01c34), + TOBN(0x7fa52988, 0xbff1f5af), TOBN(0x4eb357ea, 0xe75e8e50), + TOBN(0xd9d0c8c4, 0x868af75d), TOBN(0xd7325cff, 0x45c8c7ea), + TOBN(0xab471996, 0xcc81ecb0), TOBN(0xff5d55f3, 0x611824ed), + TOBN(0xbe314541, 0x1977a0ee), TOBN(0x5085c4c5, 0x722038c6), + TOBN(0x2d5335bf, 0xf94bb495), TOBN(0x894ad8a6, 0xc8e2a082), + TOBN(0x5c3e2341, 0xada35438), TOBN(0xf4a9fc89, 0x049b8c4e), + TOBN(0xbeeb355a, 0x9f17cf34), TOBN(0x3f311e0e, 0x6c91fe10), + TOBN(0xc2d20038, 0x92ab9891), TOBN(0x257bdcc1, 0x3e8ce9a9), + TOBN(0x1b2d9789, 0x88c53bee), TOBN(0x927ce89a, 0xcdba143a), + TOBN(0xb0a32cca, 0x523db280), TOBN(0x5c889f8a, 0x50d43783), + TOBN(0x503e04b3, 0x4897d16f), TOBN(0x8cdb6e78, 0x08f5f2e8), + TOBN(0x6ab91cf0, 0x179c8e74), TOBN(0xd8874e52, 0x48211d60), + TOBN(0xf948d4d5, 0xea851200), TOBN(0x4076d41e, 0xe6f9840a), + TOBN(0xc20e263c, 0x47b517ea), TOBN(0x79a448fd, 0x30685e5e), + TOBN(0xe55f6f78, 0xf90631a0), TOBN(0x88a790b1, 0xa79e6346), + TOBN(0x62160c7d, 0x80969fe8), TOBN(0x54f92fd4, 0x41491bb9), + TOBN(0xa6645c23, 0x5c957526), TOBN(0xf44cc5ae, 0xbea3ce7b), + TOBN(0xf7628327, 0x8b1e68b7), TOBN(0xc731ad7a, 0x303f29d3), + TOBN(0xfe5a9ca9, 0x57d03ecb), TOBN(0x96c0d50c, 0x41bc97a7), + TOBN(0xc4669fe7, 0x9b4f7f24), TOBN(0xfdd781d8, 0x3d9967ef), + TOBN(0x7892c7c3, 0x5d2c208d), TOBN(0x8bf64f7c, 0xae545cb3), + TOBN(0xc01f862c, 0x467be912), TOBN(0xf4c85ee9, 0xc73d30cc), + TOBN(0x1fa6f4be, 0x6ab83ec7), TOBN(0xa07a3c1c, 0x4e3e3cf9), + TOBN(0x87f8ef45, 0x0c00beb3), TOBN(0x30e2c2b3, 0x000d4c3e), + TOBN(0x1aa00b94, 0xfe08bf5b), TOBN(0x32c133aa, 0x9224ef52), + TOBN(0x38df16bb, 0x32e5685d), TOBN(0x68a9e069, 0x58e6f544), + TOBN(0x495aaff7, 0xcdc5ebc6), TOBN(0xf894a645, 0x378b135f), + TOBN(0xf316350a, 0x09e27ecf), TOBN(0xeced201e, 0x58f7179d), + TOBN(0x2eec273c, 0xe97861ba), TOBN(0x47ec2cae, 0xd693be2e), + TOBN(0xfa4c97c4, 0xf68367ce), TOBN(0xe4f47d0b, 0xbe5a5755), + TOBN(0x17de815d, 0xb298a979), TOBN(0xd7eca659, 0xc177dc7d), + TOBN(0x20fdbb71, 0x49ded0a3), TOBN(0x4cb2aad4, 0xfb34d3c5), + TOBN(0x2cf31d28, 0x60858a33), TOBN(0x3b6873ef, 0xa24aa40f), + TOBN(0x540234b2, 0x2c11bb37), TOBN(0x2d0366dd, 0xed4c74a3), + TOBN(0xf9a968da, 0xeec5f25d), TOBN(0x36601068, 0x67b63142), + TOBN(0x07cd6d2c, 0x68d7b6d4), TOBN(0xa8f74f09, 0x0c842942), + TOBN(0xe2751404, 0x7768b1ee), TOBN(0x4b5f7e89, 0xfe62aee4), + TOBN(0xc6a77177, 0x89070d26), TOBN(0xa1f28e4e, 0xdd1c8bc7), + TOBN(0xea5f4f06, 0x469e1f17), TOBN(0x78fc242a, 0xfbdb78e0), + TOBN(0xc9c7c592, 0x8b0588f1), TOBN(0xb6b7a0fd, 0x1535921e), + TOBN(0xcc5bdb91, 0xbde5ae35), TOBN(0xb42c485e, 0x12ff1864), + TOBN(0xa1113e13, 0xdbab98aa), TOBN(0xde9d469b, 0xa17b1024), + TOBN(0x23f48b37, 0xc0462d3a), TOBN(0x3752e537, 0x7c5c078d), + TOBN(0xe3a86add, 0x15544eb9), TOBN(0xf013aea7, 0x80fba279), + TOBN(0x8b5bb76c, 0xf22001b5), TOBN(0xe617ba14, 0xf02891ab), + TOBN(0xd39182a6, 0x936219d3), TOBN(0x5ce1f194, 0xae51cb19), + TOBN(0xc78f8598, 0xbf07a74c), TOBN(0x6d7158f2, 0x22cbf1bc), + TOBN(0x3b846b21, 0xe300ce18), TOBN(0x35fba630, 0x2d11275d), + TOBN(0x5fe25c36, 0xa0239b9b), TOBN(0xd8beb35d, 0xdf05d940), + TOBN(0x4db02bb0, 0x1f7e320d), TOBN(0x0641c364, 0x6da320ea), + TOBN(0x6d95fa5d, 0x821389a3), TOBN(0x92699748, 0x8fcd8e3d), + TOBN(0x316fef17, 0xceb6c143), TOBN(0x67fcb841, 0xd933762b), + TOBN(0xbb837e35, 0x118b17f8), TOBN(0x4b92552f, 0x9fd24821), + TOBN(0xae6bc70e, 0x46aca793), TOBN(0x1cf0b0e4, 0xe579311b), + TOBN(0x8dc631be, 0x5802f716), TOBN(0x099bdc6f, 0xbddbee4d), + TOBN(0xcc352bb2, 0x0caf8b05), TOBN(0xf74d505a, 0x72d63df2), + TOBN(0xb9876d4b, 0x91c4f408), TOBN(0x1ce18473, 0x9e229b2d), + TOBN(0x49507597, 0x83abdb4a), TOBN(0x850fbcb6, 0xdee84b18), + TOBN(0x6325236e, 0x609e67dc), TOBN(0x04d831d9, 0x9336c6d8), + TOBN(0x8deaae3b, 0xfa12d45d), TOBN(0xe425f8ce, 0x4746e246), + TOBN(0x8004c175, 0x24f5f31e), TOBN(0xaca16d8f, 0xad62c3b7), + TOBN(0x0dc15a6a, 0x9152f934), TOBN(0xf1235e5d, 0xed0e12c1), + TOBN(0xc33c06ec, 0xda477dac), TOBN(0x76be8732, 0xb2ea0006), + TOBN(0xcf3f7831, 0x0c0cd313), TOBN(0x3c524553, 0xa614260d), + TOBN(0x31a756f8, 0xcab22d15), TOBN(0x03ee10d1, 0x77827a20), + TOBN(0xd1e059b2, 0x1994ef20), TOBN(0x2a653b69, 0x638ae318), + TOBN(0x70d5eb58, 0x2f699010), TOBN(0x279739f7, 0x09f5f84a), + TOBN(0x5da4663c, 0x8b799336), TOBN(0xfdfdf14d, 0x203c37eb), + TOBN(0x32d8a9dc, 0xa1dbfb2d), TOBN(0xab40cff0, 0x77d48f9b), + TOBN(0xc018b383, 0xd20b42d5), TOBN(0xf9a810ef, 0x9f78845f), + TOBN(0x40af3753, 0xbdba9df0), TOBN(0xb90bdcfc, 0x131dfdf9), + TOBN(0x18720591, 0xf01ab782), TOBN(0xc823f211, 0x6af12a88), + TOBN(0xa51b80f3, 0x0dc14401), TOBN(0xde248f77, 0xfb2dfbe3), + TOBN(0xef5a44e5, 0x0cafe751), TOBN(0x73997c9c, 0xd4dcd221), + TOBN(0x32fd86d1, 0xde854024), TOBN(0xd5b53adc, 0xa09b84bb), + TOBN(0x008d7a11, 0xdcedd8d1), TOBN(0x406bd1c8, 0x74b32c84), + TOBN(0x5d4472ff, 0x05dde8b1), TOBN(0x2e25f2cd, 0xfce2b32f), + TOBN(0xbec0dd5e, 0x29dfc254), TOBN(0x4455fcf6, 0x2b98b267), + TOBN(0x0b4d43a5, 0xc72df2ad), TOBN(0xea70e6be, 0x48a75397), + TOBN(0x2aad6169, 0x5820f3bf), TOBN(0xf410d2dd, 0x9e37f68f), + TOBN(0x70fb7dba, 0x7be5ac83), TOBN(0x636bb645, 0x36ec3eec), + TOBN(0x27104ea3, 0x9754e21c), TOBN(0xbc87a3e6, 0x8d63c373), + TOBN(0x483351d7, 0x4109db9a), TOBN(0x0fa724e3, 0x60134da7), + TOBN(0x9ff44c29, 0xb0720b16), TOBN(0x2dd0cf13, 0x06aceead), + TOBN(0x5942758c, 0xe26929a6), TOBN(0x96c5db92, 0xb766a92b), + TOBN(0xcec7d4c0, 0x5f18395e), TOBN(0xd3f22744, 0x1f80d032), + TOBN(0x7a68b37a, 0xcb86075b), TOBN(0x074764dd, 0xafef92db), + TOBN(0xded1e950, 0x7bc7f389), TOBN(0xc580c850, 0xb9756460), + TOBN(0xaeeec2a4, 0x7da48157), TOBN(0x3f0b4e7f, 0x82c587b3), + TOBN(0x231c6de8, 0xa9f19c53), TOBN(0x5717bd73, 0x6974e34e), + TOBN(0xd9e1d216, 0xf1508fa9), TOBN(0x9f112361, 0xdadaa124), + TOBN(0x80145e31, 0x823b7348), TOBN(0x4dd8f0d5, 0xac634069), + TOBN(0xe3d82fc7, 0x2297c258), TOBN(0x276fcfee, 0x9cee7431), + TOBN(0x8eb61b5e, 0x2bc0aea9), TOBN(0x4f668fd5, 0xde329431), + TOBN(0x03a32ab1, 0x38e4b87e), TOBN(0xe1374517, 0x73d0ef0b), + TOBN(0x1a46f7e6, 0x853ac983), TOBN(0xc3bdf42e, 0x68e78a57), + TOBN(0xacf20785, 0x2ea96dd1), TOBN(0xa10649b9, 0xf1638460), + TOBN(0xf2369f0b, 0x879fbbed), TOBN(0x0ff0ae86, 0xda9d1869), + TOBN(0x5251d759, 0x56766f45), TOBN(0x4984d8c0, 0x2be8d0fc), + TOBN(0x7ecc95a6, 0xd21008f0), TOBN(0x29bd54a0, 0x3a1a1c49), + TOBN(0xab9828c5, 0xd26c50f3), TOBN(0x32c0087c, 0x51d0d251), + TOBN(0x9bac3ce6, 0x0c1cdb26), TOBN(0xcd94d947, 0x557ca205), + TOBN(0x1b1bd598, 0x9db1fdcd), TOBN(0x0eda0108, 0xa3d8b149), + TOBN(0x95066610, 0x56152fcc), TOBN(0xc2f037e6, 0xe7192b33), + TOBN(0xdeffb41a, 0xc92e05a4), TOBN(0x1105f6c2, 0xc2f6c62e), + TOBN(0x68e73500, 0x8733913c), TOBN(0xcce86163, 0x3f3adc40), + TOBN(0xf407a942, 0x38a278e9), TOBN(0xd13c1b9d, 0x2ab21292), + TOBN(0x93ed7ec7, 0x1c74cf5c), TOBN(0x8887dc48, 0xf1a4c1b4), + TOBN(0x3830ff30, 0x4b3a11f1), TOBN(0x358c5a3c, 0x58937cb6), + TOBN(0x027dc404, 0x89022829), TOBN(0x40e93977, 0x3b798f79), + TOBN(0x90ad3337, 0x38be6ead), TOBN(0x9c23f6bc, 0xf34c0a5d), + TOBN(0xd1711a35, 0xfbffd8bb), TOBN(0x60fcfb49, 0x1949d3dd), + TOBN(0x09c8ef4b, 0x7825d93a), TOBN(0x24233cff, 0xa0a8c968), + TOBN(0x67ade46c, 0xe6d982af), TOBN(0xebb6bf3e, 0xe7544d7c), + TOBN(0xd6b9ba76, 0x3d8bd087), TOBN(0x46fe382d, 0x4dc61280), + TOBN(0xbd39a7e8, 0xb5bdbd75), TOBN(0xab381331, 0xb8f228fe), + TOBN(0x0709a77c, 0xce1c4300), TOBN(0x6a247e56, 0xf337ceac), + TOBN(0x8f34f21b, 0x636288be), TOBN(0x9dfdca74, 0xc8a7c305), + TOBN(0x6decfd1b, 0xea919e04), TOBN(0xcdf2688d, 0x8e1991f8), + TOBN(0xe607df44, 0xd0f8a67e), TOBN(0xd985df4b, 0x0b58d010), + TOBN(0x57f834c5, 0x0c24f8f4), TOBN(0xe976ef56, 0xa0bf01ae), + TOBN(0x536395ac, 0xa1c32373), TOBN(0x351027aa, 0x734c0a13), + TOBN(0xd2f1b5d6, 0x5e6bd5bc), TOBN(0x2b539e24, 0x223debed), + TOBN(0xd4994cec, 0x0eaa1d71), TOBN(0x2a83381d, 0x661dcf65), + TOBN(0x5f1aed2f, 0x7b54c740), TOBN(0x0bea3fa5, 0xd6dda5ee), + TOBN(0x9d4fb684, 0x36cc6134), TOBN(0x8eb9bbf3, 0xc0a443dd), + TOBN(0xfc500e2e, 0x383b7d2a), TOBN(0x7aad621c, 0x5b775257), + TOBN(0x69284d74, 0x0a8f7cc0), TOBN(0xe820c2ce, 0x07562d65), + TOBN(0xbf9531b9, 0x499758ee), TOBN(0x73e95ca5, 0x6ee0cc2d), + TOBN(0xf61790ab, 0xfbaf50a5), TOBN(0xdf55e76b, 0x684e0750), + TOBN(0xec516da7, 0xf176b005), TOBN(0x575553bb, 0x7a2dddc7), + TOBN(0x37c87ca3, 0x553afa73), TOBN(0x315f3ffc, 0x4d55c251), + TOBN(0xe846442a, 0xaf3e5d35), TOBN(0x61b91149, 0x6495ff28), + TOBN(0x23cc95d3, 0xfa326dc3), TOBN(0x1df4da1f, 0x18fc2cea), + TOBN(0x24bf9adc, 0xd0a37d59), TOBN(0xb6710053, 0x320d6e1e), + TOBN(0x96f9667e, 0x618344d1), TOBN(0xcc7ce042, 0xa06445af), + TOBN(0xa02d8514, 0xd68dbc3a), TOBN(0x4ea109e4, 0x280b5a5b), + TOBN(0x5741a7ac, 0xb40961bf), TOBN(0x4ada5937, 0x6aa56bfa), + TOBN(0x7feb9145, 0x02b765d1), TOBN(0x561e97be, 0xe6ad1582), + TOBN(0xbbc4a5b6, 0xda3982f5), TOBN(0x0c2659ed, 0xb546f468), + TOBN(0xb8e7e6aa, 0x59612d20), TOBN(0xd83dfe20, 0xac19e8e0), + TOBN(0x8530c45f, 0xb835398c), TOBN(0x6106a8bf, 0xb38a41c2), + TOBN(0x21e8f9a6, 0x35f5dcdb), TOBN(0x39707137, 0xcae498ed), + TOBN(0x70c23834, 0xd8249f00), TOBN(0x9f14b58f, 0xab2537a0), + TOBN(0xd043c365, 0x5f61c0c2), TOBN(0xdc5926d6, 0x09a194a7), + TOBN(0xddec0339, 0x8e77738a), TOBN(0xd07a63ef, 0xfba46426), + TOBN(0x2e58e79c, 0xee7f6e86), TOBN(0xe59b0459, 0xff32d241), + TOBN(0xc5ec84e5, 0x20fa0338), TOBN(0x97939ac8, 0xeaff5ace), + TOBN(0x0310a4e3, 0xb4a38313), TOBN(0x9115fba2, 0x8f9d9885), + TOBN(0x8dd710c2, 0x5fadf8c3), TOBN(0x66be38a2, 0xce19c0e2), + TOBN(0xd42a279c, 0x4cfe5022), TOBN(0x597bb530, 0x0e24e1b8), + TOBN(0x3cde86b7, 0xc153ca7f), TOBN(0xa8d30fb3, 0x707d63bd), + TOBN(0xac905f92, 0xbd60d21e), TOBN(0x98e7ffb6, 0x7b9a54ab), + TOBN(0xd7147df8, 0xe9726a30), TOBN(0xb5e216ff, 0xafce3533), + TOBN(0xb550b799, 0x2ff1ec40), TOBN(0x6b613b87, 0xa1e953fd), + TOBN(0x87b88dba, 0x792d5610), TOBN(0x2ee1270a, 0xa190fbe1), + TOBN(0x02f4e2dc, 0x2ef581da), TOBN(0x016530e4, 0xeff82a95), + TOBN(0xcbb93dfd, 0x8fd6ee89), TOBN(0x16d3d986, 0x46848fff), + TOBN(0x600eff24, 0x1da47adf), TOBN(0x1b9754a0, 0x0ad47a71), + TOBN(0x8f9266df, 0x70c33b98), TOBN(0xaadc87ae, 0xdf34186e), + TOBN(0x0d2ce8e1, 0x4ad24132), TOBN(0x8a47cbfc, 0x19946eba), + TOBN(0x47feeb66, 0x62b5f3af), TOBN(0xcefab561, 0x0abb3734), + TOBN(0x449de60e, 0x19f35cb1), TOBN(0x39f8db14, 0x157f0eb9), + TOBN(0xffaecc5b, 0x3c61bfd6), TOBN(0xa5a4d41d, 0x41216703), + TOBN(0x7f8fabed, 0x224e1cc2), TOBN(0x0d5a8186, 0x871ad953), + TOBN(0xf10774f7, 0xd22da9a9), TOBN(0x45b8a678, 0xcc8a9b0d), + TOBN(0xd9c2e722, 0xbdc32cff), TOBN(0xbf71b5f5, 0x337202a5), + TOBN(0x95c57f2f, 0x69fc4db9), TOBN(0xb6dad34c, 0x765d01e1), + TOBN(0x7e0bd13f, 0xcb904635), TOBN(0x61751253, 0x763a588c), + TOBN(0xd85c2997, 0x81af2c2d), TOBN(0xc0f7d9c4, 0x81b9d7da), + TOBN(0x838a34ae, 0x08533e8d), TOBN(0x15c4cb08, 0x311d8311), + TOBN(0x97f83285, 0x8e121e14), TOBN(0xeea7dc1e, 0x85000a5f), + TOBN(0x0c6059b6, 0x5d256274), TOBN(0xec9beace, 0xb95075c0), + TOBN(0x173daad7, 0x1df97828), TOBN(0xbf851cb5, 0xa8937877), + TOBN(0xb083c594, 0x01646f3c), TOBN(0x3bad30cf, 0x50c6d352), + TOBN(0xfeb2b202, 0x496bbcea), TOBN(0x3cf9fd4f, 0x18a1e8ba), + TOBN(0xd26de7ff, 0x1c066029), TOBN(0x39c81e9e, 0x4e9ed4f8), + TOBN(0xd8be0cb9, 0x7b390d35), TOBN(0x01df2bbd, 0x964aab27), + TOBN(0x3e8c1a65, 0xc3ef64f8), TOBN(0x567291d1, 0x716ed1dd), + TOBN(0x95499c6c, 0x5f5406d3), TOBN(0x71fdda39, 0x5ba8e23f), + TOBN(0xcfeb320e, 0xd5096ece), TOBN(0xbe7ba92b, 0xca66dd16), + TOBN(0x4608d36b, 0xc6fb5a7d), TOBN(0xe3eea15a, 0x6d2dd0e0), + TOBN(0x75b0a3eb, 0x8f97a36a), TOBN(0xf59814cc, 0x1c83de1e), + TOBN(0x56c9c5b0, 0x1c33c23f), TOBN(0xa96c1da4, 0x6faa4136), + TOBN(0x46bf2074, 0xde316551), TOBN(0x3b866e7b, 0x1f756c8f), + TOBN(0x727727d8, 0x1495ed6b), TOBN(0xb2394243, 0xb682dce7), + TOBN(0x8ab8454e, 0x758610f3), TOBN(0xc243ce84, 0x857d72a4), + TOBN(0x7b320d71, 0xdbbf370f), TOBN(0xff9afa37, 0x78e0f7ca), + TOBN(0x0119d1e0, 0xea7b523f), TOBN(0xb997f8cb, 0x058c7d42), + TOBN(0x285bcd2a, 0x37bbb184), TOBN(0x51dcec49, 0xa45d1fa6), + TOBN(0x6ade3b64, 0xe29634cb), TOBN(0x080c94a7, 0x26b86ef1), + TOBN(0xba583db1, 0x2283fbe3), TOBN(0x902bddc8, 0x5a9315ed), + TOBN(0x07c1ccb3, 0x86964bec), TOBN(0x78f4eacf, 0xb6258301), + TOBN(0x4bdf3a49, 0x56f90823), TOBN(0xba0f5080, 0x741d777b), + TOBN(0x091d71c3, 0xf38bf760), TOBN(0x9633d50f, 0x9b625b02), + TOBN(0x03ecb743, 0xb8c9de61), TOBN(0xb4751254, 0x5de74720), + TOBN(0x9f9defc9, 0x74ce1cb2), TOBN(0x774a4f6a, 0x00bd32ef), + TOBN(0xaca385f7, 0x73848f22), TOBN(0x53dad716, 0xf3f8558e), + TOBN(0xab7b34b0, 0x93c471f9), TOBN(0xf530e069, 0x19644bc7), + TOBN(0x3d9fb1ff, 0xdd59d31a), TOBN(0x4382e0df, 0x08daa795), + TOBN(0x165c6f4b, 0xd5cc88d7), TOBN(0xeaa392d5, 0x4a18c900), + TOBN(0x94203c67, 0x648024ee), TOBN(0x188763f2, 0x8c2fabcd), + TOBN(0xa80f87ac, 0xbbaec835), TOBN(0x632c96e0, 0xf29d8d54), + TOBN(0x29b0a60e, 0x4c00a95e), TOBN(0x2ef17f40, 0xe011e9fa), + TOBN(0xf6c0e1d1, 0x15b77223), TOBN(0xaaec2c62, 0x14b04e32), + TOBN(0xd35688d8, 0x3d84e58c), TOBN(0x2af5094c, 0x958571db), + TOBN(0x4fff7e19, 0x760682a6), TOBN(0x4cb27077, 0xe39a407c), + TOBN(0x0f59c547, 0x4ff0e321), TOBN(0x169f34a6, 0x1b34c8ff), + TOBN(0x2bff1096, 0x52bc1ba7), TOBN(0xa25423b7, 0x83583544), + TOBN(0x5d55d5d5, 0x0ac8b782), TOBN(0xff6622ec, 0x2db3c892), + TOBN(0x48fce741, 0x6b8bb642), TOBN(0x31d6998c, 0x69d7e3dc), + TOBN(0xdbaf8004, 0xcadcaed0), TOBN(0x801b0142, 0xd81d053c), + TOBN(0x94b189fc, 0x59630ec6), TOBN(0x120e9934, 0xaf762c8e), + TOBN(0x53a29aa4, 0xfdc6a404), TOBN(0x19d8e01e, 0xa1909948), + TOBN(0x3cfcabf1, 0xd7e89681), TOBN(0x3321a50d, 0x4e132d37), + TOBN(0xd0496863, 0xe9a86111), TOBN(0x8c0cde61, 0x06a3bc65), + TOBN(0xaf866c49, 0xfc9f8eef), TOBN(0x2066350e, 0xff7f5141), + TOBN(0x4f8a4689, 0xe56ddfbd), TOBN(0xea1b0c07, 0xfe32983a), + TOBN(0x2b317462, 0x873cb8cb), TOBN(0x658deddc, 0x2d93229f), + TOBN(0x65efaf4d, 0x0f64ef58), TOBN(0xfe43287d, 0x730cc7a8), + TOBN(0xaebc0c72, 0x3d047d70), TOBN(0x92efa539, 0xd92d26c9), + TOBN(0x06e78457, 0x94b56526), TOBN(0x415cb80f, 0x0961002d), + TOBN(0x89e5c565, 0x76dcb10f), TOBN(0x8bbb6982, 0xff9259fe), + TOBN(0x4fe8795b, 0x9abc2668), TOBN(0xb5d4f534, 0x1e678fb1), + TOBN(0x6601f3be, 0x7b7da2b9), TOBN(0x98da59e2, 0xa13d6805), + TOBN(0x190d8ea6, 0x01799a52), TOBN(0xa20cec41, 0xb86d2952), + TOBN(0x3062ffb2, 0x7fff2a7c), TOBN(0x741b32e5, 0x79f19d37), + TOBN(0xf80d8181, 0x4eb57d47), TOBN(0x7a2d0ed4, 0x16aef06b), + TOBN(0x09735fb0, 0x1cecb588), TOBN(0x1641caaa, 0xc6061f5b)} + , + {TOBN(0x7f99824f, 0x20151427), TOBN(0x206828b6, 0x92430206), + TOBN(0xaa9097d7, 0xe1112357), TOBN(0xacf9a2f2, 0x09e414ec), + TOBN(0xdbdac9da, 0x27915356), TOBN(0x7e0734b7, 0x001efee3), + TOBN(0x54fab5bb, 0xd2b288e2), TOBN(0x4c630fc4, 0xf62dd09c), + TOBN(0x8537107a, 0x1ac2703b), TOBN(0xb49258d8, 0x6bc857b5), + TOBN(0x57df14de, 0xbcdaccd1), TOBN(0x24ab68d7, 0xc4ae8529), + TOBN(0x7ed8b5d4, 0x734e59d0), TOBN(0x5f8740c8, 0xc495cc80), + TOBN(0x84aedd5a, 0x291db9b3), TOBN(0x80b360f8, 0x4fb995be), + TOBN(0xae915f5d, 0x5fa067d1), TOBN(0x4134b57f, 0x9668960c), + TOBN(0xbd3656d6, 0xa48edaac), TOBN(0xdac1e3e4, 0xfc1d7436), + TOBN(0x674ff869, 0xd81fbb26), TOBN(0x449ed3ec, 0xb26c33d4), + TOBN(0x85138705, 0xd94203e8), TOBN(0xccde538b, 0xbeeb6f4a), + TOBN(0x55d5c68d, 0xa61a76fa), TOBN(0x598b441d, 0xca1554dc), + TOBN(0xd39923b9, 0x773b279c), TOBN(0x33331d3c, 0x36bf9efc), + TOBN(0x2d4c848e, 0x298de399), TOBN(0xcfdb8e77, 0xa1a27f56), + TOBN(0x94c855ea, 0x57b8ab70), TOBN(0xdcdb9dae, 0x6f7879ba), + TOBN(0x7bdff8c2, 0x019f2a59), TOBN(0xb3ce5bb3, 0xcb4fbc74), + TOBN(0xea907f68, 0x8a9173dd), TOBN(0x6cd3d0d3, 0x95a75439), + TOBN(0x92ecc4d6, 0xefed021c), TOBN(0x09a9f9b0, 0x6a77339a), + TOBN(0x87ca6b15, 0x7188c64a), TOBN(0x10c29968, 0x44899158), + TOBN(0x5859a229, 0xed6e82ef), TOBN(0x16f338e3, 0x65ebaf4e), + TOBN(0x0cd31387, 0x5ead67ae), TOBN(0x1c73d228, 0x54ef0bb4), + TOBN(0x4cb55131, 0x74a5c8c7), TOBN(0x01cd2970, 0x7f69ad6a), + TOBN(0xa04d00dd, 0xe966f87e), TOBN(0xd96fe447, 0x0b7b0321), + TOBN(0x342ac06e, 0x88fbd381), TOBN(0x02cd4a84, 0x5c35a493), + TOBN(0xe8fa89de, 0x54f1bbcd), TOBN(0x341d6367, 0x2575ed4c), + TOBN(0xebe357fb, 0xd238202b), TOBN(0x600b4d1a, 0xa984ead9), + TOBN(0xc35c9f44, 0x52436ea0), TOBN(0x96fe0a39, 0xa370751b), + TOBN(0x4c4f0736, 0x7f636a38), TOBN(0x9f943fb7, 0x0e76d5cb), + TOBN(0xb03510ba, 0xa8b68b8b), TOBN(0xc246780a, 0x9ed07a1f), + TOBN(0x3c051415, 0x6d549fc2), TOBN(0xc2953f31, 0x607781ca), + TOBN(0x955e2c69, 0xd8d95413), TOBN(0xb300fadc, 0x7bd282e3), + TOBN(0x81fe7b50, 0x87e9189f), TOBN(0xdb17375c, 0xf42dda27), + TOBN(0x22f7d896, 0xcf0a5904), TOBN(0xa0e57c5a, 0xebe348e6), + TOBN(0xa61011d3, 0xf40e3c80), TOBN(0xb1189321, 0x8db705c5), + TOBN(0x4ed9309e, 0x50fedec3), TOBN(0xdcf14a10, 0x4d6d5c1d), + TOBN(0x056c265b, 0x55691342), TOBN(0xe8e08504, 0x91049dc7), + TOBN(0x131329f5, 0xc9bae20a), TOBN(0x96c8b3e8, 0xd9dccdb4), + TOBN(0x8c5ff838, 0xfb4ee6b4), TOBN(0xfc5a9aeb, 0x41e8ccf0), + TOBN(0x7417b764, 0xfae050c6), TOBN(0x0953c3d7, 0x00452080), + TOBN(0x21372682, 0x38dfe7e8), TOBN(0xea417e15, 0x2bb79d4b), + TOBN(0x59641f1c, 0x76e7cf2d), TOBN(0x271e3059, 0xea0bcfcc), + TOBN(0x624c7dfd, 0x7253ecbd), TOBN(0x2f552e25, 0x4fca6186), + TOBN(0xcbf84ecd, 0x4d866e9c), TOBN(0x73967709, 0xf68d4610), + TOBN(0xa14b1163, 0xc27901b4), TOBN(0xfd9236e0, 0x899b8bf3), + TOBN(0x42b091ec, 0xcbc6da0a), TOBN(0xbb1dac6f, 0x5ad1d297), + TOBN(0x80e61d53, 0xa91cf76e), TOBN(0x4110a412, 0xd31f1ee7), + TOBN(0x2d87c3ba, 0x13efcf77), TOBN(0x1f374bb4, 0xdf450d76), + TOBN(0x5e78e2f2, 0x0d188dab), TOBN(0xe3968ed0, 0xf4b885ef), + TOBN(0x46c0568e, 0x7314570f), TOBN(0x31616338, 0x01170521), + TOBN(0x18e1e7e2, 0x4f0c8afe), TOBN(0x4caa75ff, 0xdeea78da), + TOBN(0x82db67f2, 0x7c5d8a51), TOBN(0x36a44d86, 0x6f505370), + TOBN(0xd72c5bda, 0x0333974f), TOBN(0x5db516ae, 0x27a70146), + TOBN(0x34705281, 0x210ef921), TOBN(0xbff17a8f, 0x0c9c38e5), + TOBN(0x78f4814e, 0x12476da1), TOBN(0xc1e16613, 0x33c16980), + TOBN(0x9e5b386f, 0x424d4bca), TOBN(0x4c274e87, 0xc85740de), + TOBN(0xb6a9b88d, 0x6c2f5226), TOBN(0x14d1b944, 0x550d7ca8), + TOBN(0x580c85fc, 0x1fc41709), TOBN(0xc1da368b, 0x54c6d519), + TOBN(0x2b0785ce, 0xd5113cf7), TOBN(0x0670f633, 0x5a34708f), + TOBN(0x46e23767, 0x15cc3f88), TOBN(0x1b480cfa, 0x50c72c8f), + TOBN(0x20288602, 0x4147519a), TOBN(0xd0981eac, 0x26b372f0), + TOBN(0xa9d4a7ca, 0xa785ebc8), TOBN(0xd953c50d, 0xdbdf58e9), + TOBN(0x9d6361cc, 0xfd590f8f), TOBN(0x72e9626b, 0x44e6c917), + TOBN(0x7fd96110, 0x22eb64cf), TOBN(0x863ebb7e, 0x9eb288f3), + TOBN(0x6e6ab761, 0x6aca8ee7), TOBN(0x97d10b39, 0xd7b40358), + TOBN(0x1687d377, 0x1e5feb0d), TOBN(0xc83e50e4, 0x8265a27a), + TOBN(0x8f75a9fe, 0xc954b313), TOBN(0xcc2e8f47, 0x310d1f61), + TOBN(0xf5ba81c5, 0x6557d0e0), TOBN(0x25f9680c, 0x3eaf6207), + TOBN(0xf95c6609, 0x4354080b), TOBN(0x5225bfa5, 0x7bf2fe1c), + TOBN(0xc5c004e2, 0x5c7d98fa), TOBN(0x3561bf1c, 0x019aaf60), + TOBN(0x5e6f9f17, 0xba151474), TOBN(0xdec2f934, 0xb04f6eca), + TOBN(0x64e368a1, 0x269acb1e), TOBN(0x1332d9e4, 0x0cdda493), + TOBN(0x60d6cf69, 0xdf23de05), TOBN(0x66d17da2, 0x009339a0), + TOBN(0x9fcac985, 0x0a693923), TOBN(0xbcf057fc, 0xed7c6a6d), + TOBN(0xc3c5c8c5, 0xf0b5662c), TOBN(0x25318dd8, 0xdcba4f24), + TOBN(0x60e8cb75, 0x082b69ff), TOBN(0x7c23b3ee, 0x1e728c01), + TOBN(0x15e10a0a, 0x097e4403), TOBN(0xcb3d0a86, 0x19854665), + TOBN(0x88d8e211, 0xd67d4826), TOBN(0xb39af66e, 0x0b9d2839), + TOBN(0xa5f94588, 0xbd475ca8), TOBN(0xe06b7966, 0xc077b80b), + TOBN(0xfedb1485, 0xda27c26c), TOBN(0xd290d33a, 0xfe0fd5e0), + TOBN(0xa40bcc47, 0xf34fb0fa), TOBN(0xb4760cc8, 0x1fb1ab09), + TOBN(0x8fca0993, 0xa273bfe3), TOBN(0x13e4fe07, 0xf70b213c), + TOBN(0x3bcdb992, 0xfdb05163), TOBN(0x8c484b11, 0x0c2b19b6), + TOBN(0x1acb815f, 0xaaf2e3e2), TOBN(0xc6905935, 0xb89ff1b4), + TOBN(0xb2ad6f9d, 0x586e74e1), TOBN(0x488883ad, 0x67b80484), + TOBN(0x758aa2c7, 0x369c3ddb), TOBN(0x8ab74e69, 0x9f9afd31), + TOBN(0x10fc2d28, 0x5e21beb1), TOBN(0x3484518a, 0x318c42f9), + TOBN(0x377427dc, 0x53cf40c3), TOBN(0x9de0781a, 0x391bc1d9), + TOBN(0x8faee858, 0x693807e1), TOBN(0xa3865327, 0x4e81ccc7), + TOBN(0x02c30ff2, 0x6f835b84), TOBN(0xb604437b, 0x0d3d38d4), + TOBN(0xb3fc8a98, 0x5ca1823d), TOBN(0xb82f7ec9, 0x03be0324), + TOBN(0xee36d761, 0xcf684a33), TOBN(0x5a01df0e, 0x9f29bf7d), + TOBN(0x686202f3, 0x1306583d), TOBN(0x05b10da0, 0x437c622e), + TOBN(0xbf9aaa0f, 0x076a7bc8), TOBN(0x25e94efb, 0x8f8f4e43), + TOBN(0x8a35c9b7, 0xfa3dc26d), TOBN(0xe0e5fb93, 0x96ff03c5), + TOBN(0xa77e3843, 0xebc394ce), TOBN(0xcede6595, 0x8361de60), + TOBN(0xd27c22f6, 0xa1993545), TOBN(0xab01cc36, 0x24d671ba), + TOBN(0x63fa2877, 0xa169c28e), TOBN(0x925ef904, 0x2eb08376), + TOBN(0x3b2fa3cf, 0x53aa0b32), TOBN(0xb27beb5b, 0x71c49d7a), + TOBN(0xb60e1834, 0xd105e27f), TOBN(0xd6089788, 0x4f68570d), + TOBN(0x23094ce0, 0xd6fbc2ac), TOBN(0x738037a1, 0x815ff551), + TOBN(0xda73b1bb, 0x6bef119c), TOBN(0xdcf6c430, 0xeef506ba), + TOBN(0x00e4fe7b, 0xe3ef104a), TOBN(0xebdd9a2c, 0x0a065628), + TOBN(0x853a81c3, 0x8792043e), TOBN(0x22ad6ece, 0xb3b59108), + TOBN(0x9fb813c0, 0x39cd297d), TOBN(0x8ec7e16e, 0x05bda5d9), + TOBN(0x2834797c, 0x0d104b96), TOBN(0xcc11a2e7, 0x7c511510), + TOBN(0x96ca5a53, 0x96ee6380), TOBN(0x054c8655, 0xcea38742), + TOBN(0xb5946852, 0xd54dfa7d), TOBN(0x97c422e7, 0x1f4ab207), + TOBN(0xbf907509, 0x0c22b540), TOBN(0x2cde42aa, 0xb7c267d4), + TOBN(0xba18f9ed, 0x5ab0d693), TOBN(0x3ba62aa6, 0x6e4660d9), + TOBN(0xb24bf97b, 0xab9ea96a), TOBN(0x5d039642, 0xe3b60e32), + TOBN(0x4e6a4506, 0x7c4d9bd5), TOBN(0x666c5b9e, 0x7ed4a6a4), + TOBN(0xfa3fdcd9, 0x8edbd7cc), TOBN(0x4660bb87, 0xc6ccd753), + TOBN(0x9ae90820, 0x21e6b64f), TOBN(0x8a56a713, 0xb36bfb3f), + TOBN(0xabfce096, 0x5726d47f), TOBN(0x9eed01b2, 0x0b1a9a7f), + TOBN(0x30e9cad4, 0x4eb74a37), TOBN(0x7b2524cc, 0x53e9666d), + TOBN(0x6a29683b, 0x8f4b002f), TOBN(0xc2200d7a, 0x41f4fc20), + TOBN(0xcf3af47a, 0x3a338acc), TOBN(0x6539a4fb, 0xe7128975), + TOBN(0xcec31c14, 0xc33c7fcf), TOBN(0x7eb6799b, 0xc7be322b), + TOBN(0x119ef4e9, 0x6646f623), TOBN(0x7b7a26a5, 0x54d7299b), + TOBN(0xcb37f08d, 0x403f46f2), TOBN(0x94b8fc43, 0x1a0ec0c7), + TOBN(0xbb8514e3, 0xc332142f), TOBN(0xf3ed2c33, 0xe80d2a7a), + TOBN(0x8d2080af, 0xb639126c), TOBN(0xf7b6be60, 0xe3553ade), + TOBN(0x3950aa9f, 0x1c7e2b09), TOBN(0x847ff958, 0x6410f02b), + TOBN(0x877b7cf5, 0x678a31b0), TOBN(0xd50301ae, 0x3998b620), + TOBN(0x734257c5, 0xc00fb396), TOBN(0xf9fb18a0, 0x04e672a6), + TOBN(0xff8bd8eb, 0xe8758851), TOBN(0x1e64e4c6, 0x5d99ba44), + TOBN(0x4b8eaedf, 0x7dfd93b7), TOBN(0xba2f2a98, 0x04e76b8c), + TOBN(0x7d790cba, 0xe8053433), TOBN(0xc8e725a0, 0x3d2c9585), + TOBN(0x58c5c476, 0xcdd8f5ed), TOBN(0xd106b952, 0xefa9fe1d), + TOBN(0x3c5c775b, 0x0eff13a9), TOBN(0x242442ba, 0xe057b930), + TOBN(0xe9f458d4, 0xc9b70cbd), TOBN(0x69b71448, 0xa3cdb89a), + TOBN(0x41ee46f6, 0x0e2ed742), TOBN(0x573f1045, 0x40067493), + TOBN(0xb1e154ff, 0x9d54c304), TOBN(0x2ad0436a, 0x8d3a7502), + TOBN(0xee4aaa2d, 0x431a8121), TOBN(0xcd38b3ab, 0x886f11ed), + TOBN(0x57d49ea6, 0x034a0eb7), TOBN(0xd2b773bd, 0xf7e85e58), + TOBN(0x4a559ac4, 0x9b5c1f14), TOBN(0xc444be1a, 0x3e54df2b), + TOBN(0x13aad704, 0xeda41891), TOBN(0xcd927bec, 0x5eb5c788), + TOBN(0xeb3c8516, 0xe48c8a34), TOBN(0x1b7ac812, 0x4b546669), + TOBN(0x1815f896, 0x594df8ec), TOBN(0x87c6a79c, 0x79227865), + TOBN(0xae02a2f0, 0x9b56ddbd), TOBN(0x1339b5ac, 0x8a2f1cf3), + TOBN(0xf2b569c7, 0x839dff0d), TOBN(0xb0b9e864, 0xfee9a43d), + TOBN(0x4ff8ca41, 0x77bb064e), TOBN(0x145a2812, 0xfd249f63), + TOBN(0x3ab7beac, 0xf86f689a), TOBN(0x9bafec27, 0x01d35f5e), + TOBN(0x28054c65, 0x4265aa91), TOBN(0xa4b18304, 0x035efe42), + TOBN(0x6887b0e6, 0x9639dec7), TOBN(0xf4b8f6ad, 0x3d52aea5), + TOBN(0xfb9293cc, 0x971a8a13), TOBN(0x3f159e5d, 0x4c934d07), + TOBN(0x2c50e9b1, 0x09acbc29), TOBN(0x08eb65e6, 0x7154d129), + TOBN(0x4feff589, 0x30b75c3e), TOBN(0x0bb82fe2, 0x94491c93), + TOBN(0xd8ac377a, 0x89af62bb), TOBN(0xd7b51490, 0x9685e49f), + TOBN(0xabca9a7b, 0x04497f19), TOBN(0x1b35ed0a, 0x1a7ad13f), + TOBN(0x6b601e21, 0x3ec86ed6), TOBN(0xda91fcb9, 0xce0c76f1), + TOBN(0x9e28507b, 0xd7ab27e1), TOBN(0x7c19a555, 0x63945b7b), + TOBN(0x6b43f0a1, 0xaafc9827), TOBN(0x443b4fbd, 0x3aa55b91), + TOBN(0x962b2e65, 0x6962c88f), TOBN(0x139da8d4, 0xce0db0ca), + TOBN(0xb93f05dd, 0x1b8d6c4f), TOBN(0x779cdff7, 0x180b9824), + TOBN(0xbba23fdd, 0xae57c7b7), TOBN(0x345342f2, 0x1b932522), + TOBN(0xfd9c80fe, 0x556d4aa3), TOBN(0xa03907ba, 0x6525bb61), + TOBN(0x38b010e1, 0xff218933), TOBN(0xc066b654, 0xaa52117b), + TOBN(0x8e141920, 0x94f2e6ea), TOBN(0x66a27dca, 0x0d32f2b2), + TOBN(0x69c7f993, 0x048b3717), TOBN(0xbf5a989a, 0xb178ae1c), + TOBN(0x49fa9058, 0x564f1d6b), TOBN(0x27ec6e15, 0xd31fde4e), + TOBN(0x4cce0373, 0x7276e7fc), TOBN(0x64086d79, 0x89d6bf02), + TOBN(0x5a72f046, 0x4ccdd979), TOBN(0x909c3566, 0x47775631), + TOBN(0x1c07bc6b, 0x75dd7125), TOBN(0xb4c6bc97, 0x87a0428d), + TOBN(0x507ece52, 0xfdeb6b9d), TOBN(0xfca56512, 0xb2c95432), + TOBN(0x15d97181, 0xd0e8bd06), TOBN(0x384dd317, 0xc6bb46ea), + TOBN(0x5441ea20, 0x3952b624), TOBN(0xbcf70dee, 0x4e7dc2fb), + TOBN(0x372b016e, 0x6628e8c3), TOBN(0x07a0d667, 0xb60a7522), + TOBN(0xcf05751b, 0x0a344ee2), TOBN(0x0ec09a48, 0x118bdeec), + TOBN(0x6e4b3d4e, 0xd83dce46), TOBN(0x43a6316d, 0x99d2fc6e), + TOBN(0xa99d8989, 0x56cf044c), TOBN(0x7c7f4454, 0xae3e5fb7), + TOBN(0xb2e6b121, 0xfbabbe92), TOBN(0x281850fb, 0xe1330076), + TOBN(0x093581ec, 0x97890015), TOBN(0x69b1dded, 0x75ff77f5), + TOBN(0x7cf0b18f, 0xab105105), TOBN(0x953ced31, 0xa89ccfef), + TOBN(0x3151f85f, 0xeb914009), TOBN(0x3c9f1b87, 0x88ed48ad), + TOBN(0xc9aba1a1, 0x4a7eadcb), TOBN(0x928e7501, 0x522e71cf), + TOBN(0xeaede727, 0x3a2e4f83), TOBN(0x467e10d1, 0x1ce3bbd3), + TOBN(0xf3442ac3, 0xb955dcf0), TOBN(0xba96307d, 0xd3d5e527), + TOBN(0xf763a10e, 0xfd77f474), TOBN(0x5d744bd0, 0x6a6e1ff0), + TOBN(0xd287282a, 0xa777899e), TOBN(0xe20eda8f, 0xd03f3cde), + TOBN(0x6a7e75bb, 0x50b07d31), TOBN(0x0b7e2a94, 0x6f379de4), + TOBN(0x31cb64ad, 0x19f593cf), TOBN(0x7b1a9e4f, 0x1e76ef1d), + TOBN(0xe18c9c9d, 0xb62d609c), TOBN(0x439bad6d, 0xe779a650), + TOBN(0x219d9066, 0xe032f144), TOBN(0x1db632b8, 0xe8b2ec6a), + TOBN(0xff0d0fd4, 0xfda12f78), TOBN(0x56fb4c2d, 0x2a25d265), + TOBN(0x5f4e2ee1, 0x255a03f1), TOBN(0x61cd6af2, 0xe96af176), + TOBN(0xe0317ba8, 0xd068bc97), TOBN(0x927d6bab, 0x264b988e), + TOBN(0xa18f07e0, 0xe90fb21e), TOBN(0x00fd2b80, 0xbba7fca1), + TOBN(0x20387f27, 0x95cd67b5), TOBN(0x5b89a4e7, 0xd39707f7), + TOBN(0x8f83ad3f, 0x894407ce), TOBN(0xa0025b94, 0x6c226132), + TOBN(0xc79563c7, 0xf906c13b), TOBN(0x5f548f31, 0x4e7bb025), + TOBN(0x2b4c6b8f, 0xeac6d113), TOBN(0xa67e3f9c, 0x0e813c76), + TOBN(0x3982717c, 0x3fe1f4b9), TOBN(0x58865819, 0x26d8050e), + TOBN(0x99f3640c, 0xf7f06f20), TOBN(0xdc610216, 0x2a66ebc2), + TOBN(0x52f2c175, 0x767a1e08), TOBN(0x05660e1a, 0x5999871b), + TOBN(0x6b0f1762, 0x6d3c4693), TOBN(0xf0e7d627, 0x37ed7bea), + TOBN(0xc51758c7, 0xb75b226d), TOBN(0x40a88628, 0x1f91613b), + TOBN(0x889dbaa7, 0xbbb38ce0), TOBN(0xe0404b65, 0xbddcad81), + TOBN(0xfebccd3a, 0x8bc9671f), TOBN(0xfbf9a357, 0xee1f5375), + TOBN(0x5dc169b0, 0x28f33398), TOBN(0xb07ec11d, 0x72e90f65), + TOBN(0xae7f3b4a, 0xfaab1eb1), TOBN(0xd970195e, 0x5f17538a), + TOBN(0x52b05cbe, 0x0181e640), TOBN(0xf5debd62, 0x2643313d), + TOBN(0x76148154, 0x5df31f82), TOBN(0x23e03b33, 0x3a9e13c5), + TOBN(0xff758949, 0x4fde0c1f), TOBN(0xbf8a1abe, 0xe5b6ec20), + TOBN(0x702278fb, 0x87e1db6c), TOBN(0xc447ad7a, 0x35ed658f), + TOBN(0x48d4aa38, 0x03d0ccf2), TOBN(0x80acb338, 0x819a7c03), + TOBN(0x9bc7c89e, 0x6e17cecc), TOBN(0x46736b8b, 0x03be1d82), + TOBN(0xd65d7b60, 0xc0432f96), TOBN(0xddebe7a3, 0xdeb5442f), + TOBN(0x79a25307, 0x7dff69a2), TOBN(0x37a56d94, 0x02cf3122), + TOBN(0x8bab8aed, 0xf2350d0a), TOBN(0x13c3f276, 0x037b0d9a), + TOBN(0xc664957c, 0x44c65cae), TOBN(0x88b44089, 0xc2e71a88), + TOBN(0xdb88e5a3, 0x5cb02664), TOBN(0x5d4c0bf1, 0x8686c72e), + TOBN(0xea3d9b62, 0xa682d53e), TOBN(0x9b605ef4, 0x0b2ad431), + TOBN(0x71bac202, 0xc69645d0), TOBN(0xa115f03a, 0x6a1b66e7), + TOBN(0xfe2c563a, 0x158f4dc4), TOBN(0xf715b3a0, 0x4d12a78c), + TOBN(0x8f7f0a48, 0xd413213a), TOBN(0x2035806d, 0xc04becdb), + TOBN(0xecd34a99, 0x5d8587f5), TOBN(0x4d8c3079, 0x9f6d3a71), + TOBN(0x1b2a2a67, 0x8d95a8f6), TOBN(0xc58c9d7d, 0xf2110d0d), + TOBN(0xdeee81d5, 0xcf8fba3f), TOBN(0xa42be3c0, 0x0c7cdf68), + TOBN(0x2126f742, 0xd43b5eaa), TOBN(0x054a0766, 0xdfa59b85), + TOBN(0x9d0d5e36, 0x126bfd45), TOBN(0xa1f8fbd7, 0x384f8a8f), + TOBN(0x317680f5, 0xd563fccc), TOBN(0x48ca5055, 0xf280a928), + TOBN(0xe00b81b2, 0x27b578cf), TOBN(0x10aad918, 0x2994a514), + TOBN(0xd9e07b62, 0xb7bdc953), TOBN(0x9f0f6ff2, 0x5bc086dd), + TOBN(0x09d1ccff, 0x655eee77), TOBN(0x45475f79, 0x5bef7df1), + TOBN(0x3faa28fa, 0x86f702cc), TOBN(0x92e60905, 0x0f021f07), + TOBN(0xe9e62968, 0x7f8fa8c6), TOBN(0xbd71419a, 0xf036ea2c), + TOBN(0x171ee1cc, 0x6028da9a), TOBN(0x5352fe1a, 0xc251f573), + TOBN(0xf8ff236e, 0x3fa997f4), TOBN(0xd831b6c9, 0xa5749d5f), + TOBN(0x7c872e1d, 0xe350e2c2), TOBN(0xc56240d9, 0x1e0ce403), + TOBN(0xf9deb077, 0x6974f5cb), TOBN(0x7d50ba87, 0x961c3728), + TOBN(0xd6f89426, 0x5a3a2518), TOBN(0xcf817799, 0xc6303d43), + TOBN(0x510a0471, 0x619e5696), TOBN(0xab049ff6, 0x3a5e307b), + TOBN(0xe4cdf9b0, 0xfeb13ec7), TOBN(0xd5e97117, 0x9d8ff90c), + TOBN(0xf6f64d06, 0x9afa96af), TOBN(0x00d0bf5e, 0x9d2012a2), + TOBN(0xe63f301f, 0x358bcdc0), TOBN(0x07689e99, 0x0a9d47f8), + TOBN(0x1f689e2f, 0x4f43d43a), TOBN(0x4d542a16, 0x90920904), + TOBN(0xaea293d5, 0x9ca0a707), TOBN(0xd061fe45, 0x8ac68065), + TOBN(0x1033bf1b, 0x0090008c), TOBN(0x29749558, 0xc08a6db6), + TOBN(0x74b5fc59, 0xc1d5d034), TOBN(0xf712e9f6, 0x67e215e0), + TOBN(0xfd520cbd, 0x860200e6), TOBN(0x0229acb4, 0x3ea22588), + TOBN(0x9cd1e14c, 0xfff0c82e), TOBN(0x87684b62, 0x59c69e73), + TOBN(0xda85e61c, 0x96ccb989), TOBN(0x2d5dbb02, 0xa3d06493), + TOBN(0xf22ad33a, 0xe86b173c), TOBN(0xe8e41ea5, 0xa79ff0e3), + TOBN(0x01d2d725, 0xdd0d0c10), TOBN(0x31f39088, 0x032d28f9), + TOBN(0x7b3f71e1, 0x7829839e), TOBN(0x0cf691b4, 0x4502ae58), + TOBN(0xef658dbd, 0xbefc6115), TOBN(0xa5cd6ee5, 0xb3ab5314), + TOBN(0x206c8d7b, 0x5f1d2347), TOBN(0x794645ba, 0x4cc2253a), + TOBN(0xd517d8ff, 0x58389e08), TOBN(0x4fa20dee, 0x9f847288), + TOBN(0xeba072d8, 0xd797770a), TOBN(0x7360c91d, 0xbf429e26), + TOBN(0x7200a3b3, 0x80af8279), TOBN(0x6a1c9150, 0x82dadce3), + TOBN(0x0ee6d3a7, 0xc35d8794), TOBN(0x042e6558, 0x0356bae5), + TOBN(0x9f59698d, 0x643322fd), TOBN(0x9379ae15, 0x50a61967), + TOBN(0x64b9ae62, 0xfcc9981e), TOBN(0xaed3d631, 0x6d2934c6), + TOBN(0x2454b302, 0x5e4e65eb), TOBN(0xab09f647, 0xf9950428)} + , + {TOBN(0xb2083a12, 0x22248acc), TOBN(0x1f6ec0ef, 0x3264e366), + TOBN(0x5659b704, 0x5afdee28), TOBN(0x7a823a40, 0xe6430bb5), + TOBN(0x24592a04, 0xe1900a79), TOBN(0xcde09d4a, 0xc9ee6576), + TOBN(0x52b6463f, 0x4b5ea54a), TOBN(0x1efe9ed3, 0xd3ca65a7), + TOBN(0xe27a6dbe, 0x305406dd), TOBN(0x8eb7dc7f, 0xdd5d1957), + TOBN(0xf54a6876, 0x387d4d8f), TOBN(0x9c479409, 0xc7762de4), + TOBN(0xbe4d5b5d, 0x99b30778), TOBN(0x25380c56, 0x6e793682), + TOBN(0x602d37f3, 0xdac740e3), TOBN(0x140deabe, 0x1566e4ae), + TOBN(0x4481d067, 0xafd32acf), TOBN(0xd8f0fcca, 0xe1f71ccf), + TOBN(0xd208dd0c, 0xb596f2da), TOBN(0xd049d730, 0x9aad93f9), + TOBN(0xc79f263d, 0x42ab580e), TOBN(0x09411bb1, 0x23f707b4), + TOBN(0x8cfde1ff, 0x835e0eda), TOBN(0x72707490, 0x90f03402), + TOBN(0xeaee6126, 0xc49a861e), TOBN(0x024f3b65, 0xe14f0d06), + TOBN(0x51a3f1e8, 0xc69bfc17), TOBN(0xc3c3a8e9, 0xa7686381), + TOBN(0x3400752c, 0xb103d4c8), TOBN(0x02bc4613, 0x9218b36b), + TOBN(0xc67f75eb, 0x7651504a), TOBN(0xd6848b56, 0xd02aebfa), + TOBN(0xbd9802e6, 0xc30fa92b), TOBN(0x5a70d96d, 0x9a552784), + TOBN(0x9085c4ea, 0x3f83169b), TOBN(0xfa9423bb, 0x06908228), + TOBN(0x2ffebe12, 0xfe97a5b9), TOBN(0x85da6049, 0x71b99118), + TOBN(0x9cbc2f7f, 0x63178846), TOBN(0xfd96bc70, 0x9153218e), + TOBN(0x958381db, 0x1782269b), TOBN(0xae34bf79, 0x2597e550), + TOBN(0xbb5c6064, 0x5f385153), TOBN(0x6f0e96af, 0xe3088048), + TOBN(0xbf6a0215, 0x77884456), TOBN(0xb3b5688c, 0x69310ea7), + TOBN(0x17c94295, 0x04fad2de), TOBN(0xe020f0e5, 0x17896d4d), + TOBN(0x730ba0ab, 0x0976505f), TOBN(0x567f6813, 0x095e2ec5), + TOBN(0x47062010, 0x6331ab71), TOBN(0x72cfa977, 0x41d22b9f), + TOBN(0x33e55ead, 0x8a2373da), TOBN(0xa8d0d5f4, 0x7ba45a68), + TOBN(0xba1d8f9c, 0x03029d15), TOBN(0x8f34f1cc, 0xfc55b9f3), + TOBN(0xcca4428d, 0xbbe5a1a9), TOBN(0x8187fd5f, 0x3126bd67), + TOBN(0x0036973a, 0x48105826), TOBN(0xa39b6663, 0xb8bd61a0), + TOBN(0x6d42deef, 0x2d65a808), TOBN(0x4969044f, 0x94636b19), + TOBN(0xf611ee47, 0xdd5d564c), TOBN(0x7b2f3a49, 0xd2873077), + TOBN(0x94157d45, 0x300eb294), TOBN(0x2b2a656e, 0x169c1494), + TOBN(0xc000dd76, 0xd3a47aa9), TOBN(0xa2864e4f, 0xa6243ea4), + TOBN(0x82716c47, 0xdb89842e), TOBN(0x12dfd7d7, 0x61479fb7), + TOBN(0x3b9a2c56, 0xe0b2f6dc), TOBN(0x46be862a, 0xd7f85d67), + TOBN(0x03b0d8dd, 0x0f82b214), TOBN(0x460c34f9, 0xf103cbc6), + TOBN(0xf32e5c03, 0x18d79e19), TOBN(0x8b8888ba, 0xa84117f8), + TOBN(0x8f3c37dc, 0xc0722677), TOBN(0x10d21be9, 0x1c1c0f27), + TOBN(0xd47c8468, 0xe0f7a0c6), TOBN(0x9bf02213, 0xadecc0e0), + TOBN(0x0baa7d12, 0x42b48b99), TOBN(0x1bcb665d, 0x48424096), + TOBN(0x8b847cd6, 0xebfb5cfb), TOBN(0x87c2ae56, 0x9ad4d10d), + TOBN(0xf1cbb122, 0x0de36726), TOBN(0xe7043c68, 0x3fdfbd21), + TOBN(0x4bd0826a, 0x4e79d460), TOBN(0x11f5e598, 0x4bd1a2cb), + TOBN(0x97554160, 0xb7fe7b6e), TOBN(0x7d16189a, 0x400a3fb2), + TOBN(0xd73e9bea, 0xe328ca1e), TOBN(0x0dd04b97, 0xe793d8cc), + TOBN(0xa9c83c9b, 0x506db8cc), TOBN(0x5cd47aae, 0xcf38814c), + TOBN(0x26fc430d, 0xb64b45e6), TOBN(0x079b5499, 0xd818ea84), + TOBN(0xebb01102, 0xc1c24a3b), TOBN(0xca24e568, 0x1c161c1a), + TOBN(0x103eea69, 0x36f00a4a), TOBN(0x9ad76ee8, 0x76176c7b), + TOBN(0x97451fc2, 0x538e0ff7), TOBN(0x94f89809, 0x6604b3b0), + TOBN(0x6311436e, 0x3249cfd7), TOBN(0x27b4a7bd, 0x41224f69), + TOBN(0x03b5d21a, 0xe0ac2941), TOBN(0x279b0254, 0xc2d31937), + TOBN(0x3307c052, 0xcac992d0), TOBN(0x6aa7cb92, 0xefa8b1f3), + TOBN(0x5a182580, 0x0d37c7a5), TOBN(0x13380c37, 0x342d5422), + TOBN(0x92ac2d66, 0xd5d2ef92), TOBN(0x035a70c9, 0x030c63c6), + TOBN(0xc16025dd, 0x4ce4f152), TOBN(0x1f419a71, 0xf9df7c06), + TOBN(0x6d5b2214, 0x91e4bb14), TOBN(0xfc43c6cc, 0x839fb4ce), + TOBN(0x49f06591, 0x925d6b2d), TOBN(0x4b37d9d3, 0x62186598), + TOBN(0x8c54a971, 0xd01b1629), TOBN(0xe1a9c29f, 0x51d50e05), + TOBN(0x5109b785, 0x71ba1861), TOBN(0x48b22d5c, 0xd0c8f93d), + TOBN(0xe8fa84a7, 0x8633bb93), TOBN(0x53fba6ba, 0x5aebbd08), + TOBN(0x7ff27df3, 0xe5eea7d8), TOBN(0x521c8796, 0x68ca7158), + TOBN(0xb9d5133b, 0xce6f1a05), TOBN(0x2d50cd53, 0xfd0ebee4), + TOBN(0xc82115d6, 0xc5a3ef16), TOBN(0x993eff9d, 0xba079221), + TOBN(0xe4da2c5e, 0x4b5da81c), TOBN(0x9a89dbdb, 0x8033fd85), + TOBN(0x60819ebf, 0x2b892891), TOBN(0x53902b21, 0x5d14a4d5), + TOBN(0x6ac35051, 0xd7fda421), TOBN(0xcc6ab885, 0x61c83284), + TOBN(0x14eba133, 0xf74cff17), TOBN(0x240aaa03, 0xecb813f2), + TOBN(0xcfbb6540, 0x6f665bee), TOBN(0x084b1fe4, 0xa425ad73), + TOBN(0x009d5d16, 0xd081f6a6), TOBN(0x35304fe8, 0xeef82c90), + TOBN(0xf20346d5, 0xaa9eaa22), TOBN(0x0ada9f07, 0xac1c91e3), + TOBN(0xa6e21678, 0x968a6144), TOBN(0x54c1f77c, 0x07b31a1e), + TOBN(0xd6bb787e, 0x5781fbe1), TOBN(0x61bd2ee0, 0xe31f1c4a), + TOBN(0xf25aa1e9, 0x781105fc), TOBN(0x9cf2971f, 0x7b2f8e80), + TOBN(0x26d15412, 0xcdff919b), TOBN(0x01db4ebe, 0x34bc896e), + TOBN(0x7d9b3e23, 0xb40df1cf), TOBN(0x59337373, 0x94e971b4), + TOBN(0xbf57bd14, 0x669cf921), TOBN(0x865daedf, 0x0c1a1064), + TOBN(0x3eb70bd3, 0x83279125), TOBN(0xbc3d5b9f, 0x34ecdaab), + TOBN(0x91e3ed7e, 0x5f755caf), TOBN(0x49699f54, 0xd41e6f02), + TOBN(0x185770e1, 0xd4a7a15b), TOBN(0x08f3587a, 0xeaac87e7), + TOBN(0x352018db, 0x473133ea), TOBN(0x674ce719, 0x04fd30fc), + TOBN(0x7b8d9835, 0x088b3e0e), TOBN(0x7a0356a9, 0x5d0d47a1), + TOBN(0x9d9e7659, 0x6474a3c4), TOBN(0x61ea48a7, 0xff66966c), + TOBN(0x30417758, 0x0f3e4834), TOBN(0xfdbb21c2, 0x17a9afcb), + TOBN(0x756fa17f, 0x2f9a67b3), TOBN(0x2a6b2421, 0xa245c1a8), + TOBN(0x64be2794, 0x4af02291), TOBN(0xade465c6, 0x2a5804fe), + TOBN(0x8dffbd39, 0xa6f08fd7), TOBN(0xc4efa84c, 0xaa14403b), + TOBN(0xa1b91b2a, 0x442b0f5c), TOBN(0xb748e317, 0xcf997736), + TOBN(0x8d1b62bf, 0xcee90e16), TOBN(0x907ae271, 0x0b2078c0), + TOBN(0xdf31534b, 0x0c9bcddd), TOBN(0x043fb054, 0x39adce83), + TOBN(0x99031043, 0xd826846a), TOBN(0x61a9c0d6, 0xb144f393), + TOBN(0xdab48046, 0x47718427), TOBN(0xdf17ff9b, 0x6e830f8b), + TOBN(0x408d7ee8, 0xe49a1347), TOBN(0x6ac71e23, 0x91c1d4ae), + TOBN(0xc8cbb9fd, 0x1defd73c), TOBN(0x19840657, 0xbbbbfec5), + TOBN(0x39db1cb5, 0x9e7ef8ea), TOBN(0x78aa8296, 0x64105f30), + TOBN(0xa3d9b7f0, 0xa3738c29), TOBN(0x0a2f235a, 0xbc3250a3), + TOBN(0x55e506f6, 0x445e4caf), TOBN(0x0974f73d, 0x33475f7a), + TOBN(0xd37dbba3, 0x5ba2f5a8), TOBN(0x542c6e63, 0x6af40066), + TOBN(0x26d99b53, 0xc5d73e2c), TOBN(0x06060d7d, 0x6c3ca33e), + TOBN(0xcdbef1c2, 0x065fef4a), TOBN(0x77e60f7d, 0xfd5b92e3), + TOBN(0xd7c549f0, 0x26708350), TOBN(0x201b3ad0, 0x34f121bf), + TOBN(0x5fcac2a1, 0x0334fc14), TOBN(0x8a9a9e09, 0x344552f6), + TOBN(0x7dd8a1d3, 0x97653082), TOBN(0x5fc0738f, 0x79d4f289), + TOBN(0x787d244d, 0x17d2d8c3), TOBN(0xeffc6345, 0x70830684), + TOBN(0x5ddb96dd, 0xe4f73ae5), TOBN(0x8efb14b1, 0x172549a5), + TOBN(0x6eb73eee, 0x2245ae7a), TOBN(0xbca4061e, 0xea11f13e), + TOBN(0xb577421d, 0x30b01f5d), TOBN(0xaa688b24, 0x782e152c), + TOBN(0x67608e71, 0xbd3502ba), TOBN(0x4ef41f24, 0xb4de75a0), + TOBN(0xb08dde5e, 0xfd6125e5), TOBN(0xde484825, 0xa409543f), + TOBN(0x1f198d98, 0x65cc2295), TOBN(0x428a3771, 0x6e0edfa2), + TOBN(0x4f9697a2, 0xadf35fc7), TOBN(0x01a43c79, 0xf7cac3c7), + TOBN(0xb05d7059, 0x0fd3659a), TOBN(0x8927f30c, 0xbb7f2d9a), + TOBN(0x4023d1ac, 0x8cf984d3), TOBN(0x32125ed3, 0x02897a45), + TOBN(0xfb572dad, 0x3d414205), TOBN(0x73000ef2, 0xe3fa82a9), + TOBN(0x4c0868e9, 0xf10a5581), TOBN(0x5b61fc67, 0x6b0b3ca5), + TOBN(0xc1258d5b, 0x7cae440c), TOBN(0x21c08b41, 0x402b7531), + TOBN(0xf61a8955, 0xde932321), TOBN(0x3568faf8, 0x2d1408af), + TOBN(0x71b15e99, 0x9ecf965b), TOBN(0xf14ed248, 0xe917276f), + TOBN(0xc6f4caa1, 0x820cf9e2), TOBN(0x681b20b2, 0x18d83c7e), + TOBN(0x6cde738d, 0xc6c01120), TOBN(0x71db0813, 0xae70e0db), + TOBN(0x95fc0644, 0x74afe18c), TOBN(0x34619053, 0x129e2be7), + TOBN(0x80615cea, 0xdb2a3b15), TOBN(0x0a49a19e, 0xdb4c7073), + TOBN(0x0e1b84c8, 0x8fd2d367), TOBN(0xd74bf462, 0x033fb8aa), + TOBN(0x889f6d65, 0x533ef217), TOBN(0x7158c7e4, 0xc3ca2e87), + TOBN(0xfb670dfb, 0xdc2b4167), TOBN(0x75910a01, 0x844c257f), + TOBN(0xf336bf07, 0xcf88577d), TOBN(0x22245250, 0xe45e2ace), + TOBN(0x2ed92e8d, 0x7ca23d85), TOBN(0x29f8be4c, 0x2b812f58), + TOBN(0xdd9ebaa7, 0x076fe12b), TOBN(0x3f2400cb, 0xae1537f9), + TOBN(0x1aa93528, 0x17bdfb46), TOBN(0xc0f98430, 0x67883b41), + TOBN(0x5590ede1, 0x0170911d), TOBN(0x7562f5bb, 0x34d4b17f), + TOBN(0xe1fa1df2, 0x1826b8d2), TOBN(0xb40b796a, 0x6bd80d59), + TOBN(0xd65bf197, 0x3467ba92), TOBN(0x8c9b46db, 0xf70954b0), + TOBN(0x97c8a0f3, 0x0e78f15d), TOBN(0xa8f3a69a, 0x85a4c961), + TOBN(0x4242660f, 0x61e4ce9b), TOBN(0xbf06aab3, 0x6ea6790c), + TOBN(0xc6706f8e, 0xec986416), TOBN(0x9e56dec1, 0x9a9fc225), + TOBN(0x527c46f4, 0x9a9898d9), TOBN(0xd799e77b, 0x5633cdef), + TOBN(0x24eacc16, 0x7d9e4297), TOBN(0xabb61cea, 0x6b1cb734), + TOBN(0xbee2e8a7, 0xf778443c), TOBN(0x3bb42bf1, 0x29de2fe6), + TOBN(0xcbed86a1, 0x3003bb6f), TOBN(0xd3918e6c, 0xd781cdf6), + TOBN(0x4bee3271, 0x9a5103f1), TOBN(0x5243efc6, 0xf50eac06), + TOBN(0xb8e122cb, 0x6adcc119), TOBN(0x1b7faa84, 0xc0b80a08), + TOBN(0x32c3d1bd, 0x6dfcd08c), TOBN(0x129dec4e, 0x0be427de), + TOBN(0x98ab679c, 0x1d263c83), TOBN(0xafc83cb7, 0xcef64eff), + TOBN(0x85eb6088, 0x2fa6be76), TOBN(0x892585fb, 0x1328cbfe), + TOBN(0xc154d3ed, 0xcf618dda), TOBN(0xc44f601b, 0x3abaf26e), + TOBN(0x7bf57d0b, 0x2be1fdfd), TOBN(0xa833bd2d, 0x21137fee), + TOBN(0x9353af36, 0x2db591a8), TOBN(0xc76f26dc, 0x5562a056), + TOBN(0x1d87e47d, 0x3fdf5a51), TOBN(0x7afb5f93, 0x55c9cab0), + TOBN(0x91bbf58f, 0x89e0586e), TOBN(0x7c72c018, 0x0d843709), + TOBN(0xa9a5aafb, 0x99b5c3dc), TOBN(0xa48a0f1d, 0x3844aeb0), + TOBN(0x7178b7dd, 0xb667e482), TOBN(0x453985e9, 0x6e23a59a), + TOBN(0x4a54c860, 0x01b25dd8), TOBN(0x0dd37f48, 0xfb897c8a), + TOBN(0x5f8aa610, 0x0ea90cd9), TOBN(0xc8892c68, 0x16d5830d), + TOBN(0xeb4befc0, 0xef514ca5), TOBN(0x478eb679, 0xe72c9ee6), + TOBN(0x9bca20da, 0xdbc40d5f), TOBN(0xf015de21, 0xdde4f64a), + TOBN(0xaa6a4de0, 0xeaf4b8a5), TOBN(0x68cfd9ca, 0x4bc60e32), + TOBN(0x668a4b01, 0x7fd15e70), TOBN(0xd9f0694a, 0xf27dc09d), + TOBN(0xf6c3cad5, 0xba708bcd), TOBN(0x5cd2ba69, 0x5bb95c2a), + TOBN(0xaa28c1d3, 0x33c0a58f), TOBN(0x23e274e3, 0xabc77870), + TOBN(0x44c3692d, 0xdfd20a4a), TOBN(0x091c5fd3, 0x81a66653), + TOBN(0x6c0bb691, 0x09a0757d), TOBN(0x9072e8b9, 0x667343ea), + TOBN(0x31d40eb0, 0x80848bec), TOBN(0x95bd480a, 0x79fd36cc), + TOBN(0x01a77c61, 0x65ed43f5), TOBN(0xafccd127, 0x2e0d40bf), + TOBN(0xeccfc82d, 0x1cc1884b), TOBN(0xc85ac201, 0x5d4753b4), + TOBN(0xc7a6caac, 0x658e099f), TOBN(0xcf46369e, 0x04b27390), + TOBN(0xe2e7d049, 0x506467ea), TOBN(0x481b63a2, 0x37cdeccc), + TOBN(0x4029abd8, 0xed80143a), TOBN(0x28bfe3c7, 0xbcb00b88), + TOBN(0x3bec1009, 0x0643d84a), TOBN(0x885f3668, 0xabd11041), + TOBN(0xdb02432c, 0xf83a34d6), TOBN(0x32f7b360, 0x719ceebe), + TOBN(0xf06c7837, 0xdad1fe7a), TOBN(0x60a157a9, 0x5441a0b0), + TOBN(0x704970e9, 0xe2d47550), TOBN(0xcd2bd553, 0x271b9020), + TOBN(0xff57f82f, 0x33e24a0b), TOBN(0x9cbee23f, 0xf2565079), + TOBN(0x16353427, 0xeb5f5825), TOBN(0x276feec4, 0xe948d662), + TOBN(0xd1b62bc6, 0xda10032b), TOBN(0x718351dd, 0xf0e72a53), + TOBN(0x93452076, 0x2420e7ba), TOBN(0x96368fff, 0x3a00118d), + TOBN(0x00ce2d26, 0x150a49e4), TOBN(0x0c28b636, 0x3f04706b), + TOBN(0xbad65a46, 0x58b196d0), TOBN(0x6c8455fc, 0xec9f8b7c), + TOBN(0xe90c895f, 0x2d71867e), TOBN(0x5c0be31b, 0xedf9f38c), + TOBN(0x2a37a15e, 0xd8f6ec04), TOBN(0x239639e7, 0x8cd85251), + TOBN(0xd8975315, 0x9c7c4c6b), TOBN(0x603aa3c0, 0xd7409af7), + TOBN(0xb8d53d0c, 0x007132fb), TOBN(0x68d12af7, 0xa6849238), + TOBN(0xbe0607e7, 0xbf5d9279), TOBN(0x9aa50055, 0xaada74ce), + TOBN(0xe81079cb, 0xba7e8ccb), TOBN(0x610c71d1, 0xa5f4ff5e), + TOBN(0x9e2ee1a7, 0x5aa07093), TOBN(0xca84004b, 0xa75da47c), + TOBN(0x074d3951, 0x3de75401), TOBN(0xf938f756, 0xbb311592), + TOBN(0x96197618, 0x00a43421), TOBN(0x39a25362, 0x07bc78c8), + TOBN(0x278f710a, 0x0a171276), TOBN(0xb28446ea, 0x8d1a8f08), + TOBN(0x184781bf, 0xe3b6a661), TOBN(0x7751cb1d, 0xe6d279f7), + TOBN(0xf8ff95d6, 0xc59eb662), TOBN(0x186d90b7, 0x58d3dea7), + TOBN(0x0e4bb6c1, 0xdfb4f754), TOBN(0x5c5cf56b, 0x2b2801dc), + TOBN(0xc561e452, 0x1f54564d), TOBN(0xb4fb8c60, 0xf0dd7f13), + TOBN(0xf8849630, 0x33ff98c7), TOBN(0x9619fffa, 0xcf17769c), + TOBN(0xf8090bf6, 0x1bfdd80a), TOBN(0x14d9a149, 0x422cfe63), + TOBN(0xb354c360, 0x6f6df9ea), TOBN(0xdbcf770d, 0x218f17ea), + TOBN(0x207db7c8, 0x79eb3480), TOBN(0x213dbda8, 0x559b6a26), + TOBN(0xac4c200b, 0x29fc81b3), TOBN(0xebc3e09f, 0x171d87c1), + TOBN(0x91799530, 0x1481aa9e), TOBN(0x051b92e1, 0x92e114fa), + TOBN(0xdf8f92e9, 0xecb5537f), TOBN(0x44b1b2cc, 0x290c7483), + TOBN(0xa711455a, 0x2adeb016), TOBN(0x964b6856, 0x81a10c2c), + TOBN(0x4f159d99, 0xcec03623), TOBN(0x05532225, 0xef3271ea), + TOBN(0xb231bea3, 0xc5ee4849), TOBN(0x57a54f50, 0x7094f103), + TOBN(0x3e2d421d, 0x9598b352), TOBN(0xe865a49c, 0x67412ab4), + TOBN(0xd2998a25, 0x1cc3a912), TOBN(0x5d092808, 0x0c74d65d), + TOBN(0x73f45908, 0x4088567a), TOBN(0xeb6b280e, 0x1f214a61), + TOBN(0x8c9adc34, 0xcaf0c13d), TOBN(0x39d12938, 0xf561fb80), + TOBN(0xb2dc3a5e, 0xbc6edfb4), TOBN(0x7485b1b1, 0xfe4d210e), + TOBN(0x062e0400, 0xe186ae72), TOBN(0x91e32d5c, 0x6eeb3b88), + TOBN(0x6df574d7, 0x4be59224), TOBN(0xebc88ccc, 0x716d55f3), + TOBN(0x26c2e6d0, 0xcad6ed33), TOBN(0xc6e21e7d, 0x0d3e8b10), + TOBN(0x2cc5840e, 0x5bcc36bb), TOBN(0x9292445e, 0x7da74f69), + TOBN(0x8be8d321, 0x4e5193a8), TOBN(0x3ec23629, 0x8df06413), + TOBN(0xc7e9ae85, 0xb134defa), TOBN(0x6073b1d0, 0x1bb2d475), + TOBN(0xb9ad615e, 0x2863c00d), TOBN(0x9e29493d, 0x525f4ac4), + TOBN(0xc32b1dea, 0x4e9acf4f), TOBN(0x3e1f01c8, 0xa50db88d), + TOBN(0xb05d70ea, 0x04da916c), TOBN(0x714b0d0a, 0xd865803e), + TOBN(0x4bd493fc, 0x9920cb5e), TOBN(0x5b44b1f7, 0x92c7a3ac), + TOBN(0xa2a77293, 0xbcec9235), TOBN(0x5ee06e87, 0xcd378553), + TOBN(0xceff8173, 0xda621607), TOBN(0x2bb03e4c, 0x99f5d290), + TOBN(0x2945106a, 0xa6f734ac), TOBN(0xb5056604, 0xd25c4732), + TOBN(0x5945920c, 0xe079afee), TOBN(0x686e17a0, 0x6789831f), + TOBN(0x5966bee8, 0xb74a5ae5), TOBN(0x38a673a2, 0x1e258d46), + TOBN(0xbd1cc1f2, 0x83141c95), TOBN(0x3b2ecf4f, 0x0e96e486), + TOBN(0xcd3aa896, 0x74e5fc78), TOBN(0x415ec10c, 0x2482fa7a), + TOBN(0x15234419, 0x80503380), TOBN(0x513d917a, 0xd314b392), + TOBN(0xb0b52f4e, 0x63caecae), TOBN(0x07bf22ad, 0x2dc7780b), + TOBN(0xe761e8a1, 0xe4306839), TOBN(0x1b3be962, 0x5dd7feaa), + TOBN(0x4fe728de, 0x74c778f1), TOBN(0xf1fa0bda, 0x5e0070f6), + TOBN(0x85205a31, 0x6ec3f510), TOBN(0x2c7e4a14, 0xd2980475), + TOBN(0xde3c19c0, 0x6f30ebfd), TOBN(0xdb1c1f38, 0xd4b7e644), + TOBN(0xfe291a75, 0x5dce364a), TOBN(0xb7b22a3c, 0x058f5be3), + TOBN(0x2cd2c302, 0x37fea38c), TOBN(0x2930967a, 0x2e17be17), + TOBN(0x87f009de, 0x0c061c65), TOBN(0xcb014aac, 0xedc6ed44), + TOBN(0x49bd1cb4, 0x3bafb1eb), TOBN(0x81bd8b5c, 0x282d3688), + TOBN(0x1cdab87e, 0xf01a17af), TOBN(0x21f37ac4, 0xe710063b), + TOBN(0x5a6c5676, 0x42fc8193), TOBN(0xf4753e70, 0x56a6015c), + TOBN(0x020f795e, 0xa15b0a44), TOBN(0x8f37c8d7, 0x8958a958), + TOBN(0x63b7e89b, 0xa4b675b5), TOBN(0xb4fb0c0c, 0x0fc31aea), + TOBN(0xed95e639, 0xa7ff1f2e), TOBN(0x9880f5a3, 0x619614fb), + TOBN(0xdeb6ff02, 0x947151ab), TOBN(0x5bc5118c, 0xa868dcdb), + TOBN(0xd8da2055, 0x4c20cea5), TOBN(0xcac2776e, 0x14c4d69a), + TOBN(0xcccb22c1, 0x622d599b), TOBN(0xa4ddb653, 0x68a9bb50), + TOBN(0x2c4ff151, 0x1b4941b4), TOBN(0xe1ff19b4, 0x6efba588), + TOBN(0x35034363, 0xc48345e0), TOBN(0x45542e3d, 0x1e29dfc4), + TOBN(0xf197cb91, 0x349f7aed), TOBN(0x3b2b5a00, 0x8fca8420), + TOBN(0x7c175ee8, 0x23aaf6d8), TOBN(0x54dcf421, 0x35af32b6), + TOBN(0x0ba14307, 0x27d6561e), TOBN(0x879d5ee4, 0xd175b1e2), + TOBN(0xc7c43673, 0x99807db5), TOBN(0x77a54455, 0x9cd55bcd), + TOBN(0xe6c2ff13, 0x0105c072), TOBN(0x18f7a99f, 0x8dda7da4), + TOBN(0x4c301820, 0x0e2d35c1), TOBN(0x06a53ca0, 0xd9cc6c82), + TOBN(0xaa21cc1e, 0xf1aa1d9e), TOBN(0x32414334, 0x4a75b1e8), + TOBN(0x2a6d1328, 0x0ebe9fdc), TOBN(0x16bd173f, 0x98a4755a), + TOBN(0xfbb9b245, 0x2133ffd9), TOBN(0x39a8b2f1, 0x830f1a20), + TOBN(0x484bc97d, 0xd5a1f52a), TOBN(0xd6aebf56, 0xa40eddf8), + TOBN(0x32257acb, 0x76ccdac6), TOBN(0xaf4d36ec, 0x1586ff27), + TOBN(0x8eaa8863, 0xf8de7dd1), TOBN(0x0045d5cf, 0x88647c16)} + , + {TOBN(0xa6f3d574, 0xc005979d), TOBN(0xc2072b42, 0x6a40e350), + TOBN(0xfca5c156, 0x8de2ecf9), TOBN(0xa8c8bf5b, 0xa515344e), + TOBN(0x97aee555, 0x114df14a), TOBN(0xd4374a4d, 0xfdc5ec6b), + TOBN(0x754cc28f, 0x2ca85418), TOBN(0x71cb9e27, 0xd3c41f78), + TOBN(0x89105079, 0x03605c39), TOBN(0xf0843d9e, 0xa142c96c), + TOBN(0xf3744934, 0x16923684), TOBN(0x732caa2f, 0xfa0a2893), + TOBN(0xb2e8c270, 0x61160170), TOBN(0xc32788cc, 0x437fbaa3), + TOBN(0x39cd818e, 0xa6eda3ac), TOBN(0xe2e94239, 0x9e2b2e07), + TOBN(0x6967d39b, 0x0260e52a), TOBN(0xd42585cc, 0x90653325), + TOBN(0x0d9bd605, 0x21ca7954), TOBN(0x4fa20877, 0x81ed57b3), + TOBN(0x60c1eff8, 0xe34a0bbe), TOBN(0x56b0040c, 0x84f6ef64), + TOBN(0x28be2b24, 0xb1af8483), TOBN(0xb2278163, 0xf5531614), + TOBN(0x8df27545, 0x5922ac1c), TOBN(0xa7b3ef5c, 0xa52b3f63), + TOBN(0x8e77b214, 0x71de57c4), TOBN(0x31682c10, 0x834c008b), + TOBN(0xc76824f0, 0x4bd55d31), TOBN(0xb6d1c086, 0x17b61c71), + TOBN(0x31db0903, 0xc2a5089d), TOBN(0x9c092172, 0x184e5d3f), + TOBN(0xdd7ced5b, 0xc00cc638), TOBN(0x1a2015eb, 0x61278fc2), + TOBN(0x2e8e5288, 0x6a37f8d6), TOBN(0xc457786f, 0xe79933ad), + TOBN(0xb3fe4cce, 0x2c51211a), TOBN(0xad9b10b2, 0x24c20498), + TOBN(0x90d87a4f, 0xd28db5e5), TOBN(0x698cd105, 0x3aca2fc3), + TOBN(0x4f112d07, 0xe91b536d), TOBN(0xceb982f2, 0x9eba09d6), + TOBN(0x3c157b2c, 0x197c396f), TOBN(0xe23c2d41, 0x7b66eb24), + TOBN(0x480c57d9, 0x3f330d37), TOBN(0xb3a4c8a1, 0x79108deb), + TOBN(0x702388de, 0xcb199ce5), TOBN(0x0b019211, 0xb944a8d4), + TOBN(0x24f2a692, 0x840bb336), TOBN(0x7c353bdc, 0xa669fa7b), + TOBN(0xda20d6fc, 0xdec9c300), TOBN(0x625fbe2f, 0xa13a4f17), + TOBN(0xa2b1b61a, 0xdbc17328), TOBN(0x008965bf, 0xa9515621), + TOBN(0x49690939, 0xc620ff46), TOBN(0x182dd27d, 0x8717e91c), + TOBN(0x5ace5035, 0xea6c3997), TOBN(0x54259aaa, 0xc2610bef), + TOBN(0xef18bb3f, 0x3c80dd39), TOBN(0x6910b95b, 0x5fc3fa39), + TOBN(0xfce2f510, 0x43e09aee), TOBN(0xced56c9f, 0xa7675665), + TOBN(0x10e265ac, 0xd872db61), TOBN(0x6982812e, 0xae9fce69), + TOBN(0x29be11c6, 0xce800998), TOBN(0x72bb1752, 0xb90360d9), + TOBN(0x2c193197, 0x5a4ad590), TOBN(0x2ba2f548, 0x9fc1dbc0), + TOBN(0x7fe4eebb, 0xe490ebe0), TOBN(0x12a0a4cd, 0x7fae11c0), + TOBN(0x7197cf81, 0xe903ba37), TOBN(0xcf7d4aa8, 0xde1c6dd8), + TOBN(0x92af6bf4, 0x3fd5684c), TOBN(0x2b26eecf, 0x80360aa1), + TOBN(0xbd960f30, 0x00546a82), TOBN(0x407b3c43, 0xf59ad8fe), + TOBN(0x86cae5fe, 0x249c82ba), TOBN(0x9e0faec7, 0x2463744c), + TOBN(0x87f551e8, 0x94916272), TOBN(0x033f9344, 0x6ceb0615), + TOBN(0x1e5eb0d1, 0x8be82e84), TOBN(0x89967f0e, 0x7a582fef), + TOBN(0xbcf687d5, 0xa6e921fa), TOBN(0xdfee4cf3, 0xd37a09ba), + TOBN(0x94f06965, 0xb493c465), TOBN(0x638b9a1c, 0x7635c030), + TOBN(0x76667864, 0x66f05e9f), TOBN(0xccaf6808, 0xc04da725), + TOBN(0xca2eb690, 0x768fccfc), TOBN(0xf402d37d, 0xb835b362), + TOBN(0x0efac0d0, 0xe2fdfcce), TOBN(0xefc9cdef, 0xb638d990), + TOBN(0x2af12b72, 0xd1669a8b), TOBN(0x33c536bc, 0x5774ccbd), + TOBN(0x30b21909, 0xfb34870e), TOBN(0xc38fa2f7, 0x7df25aca), + TOBN(0x74c5f02b, 0xbf81f3f5), TOBN(0x0525a5ae, 0xaf7e4581), + TOBN(0x88d2aaba, 0x433c54ae), TOBN(0xed9775db, 0x806a56c5), + TOBN(0xd320738a, 0xc0edb37d), TOBN(0x25fdb6ee, 0x66cc1f51), + TOBN(0xac661d17, 0x10600d76), TOBN(0x931ec1f3, 0xbdd1ed76), + TOBN(0x65c11d62, 0x19ee43f1), TOBN(0x5cd57c3e, 0x60829d97), + TOBN(0xd26c91a3, 0x984be6e8), TOBN(0xf08d9309, 0x8b0c53bd), + TOBN(0x94bc9e5b, 0xc016e4ea), TOBN(0xd3916839, 0x11d43d2b), + TOBN(0x886c5ad7, 0x73701155), TOBN(0xe0377626, 0x20b00715), + TOBN(0x7f01c9ec, 0xaa80ba59), TOBN(0x3083411a, 0x68538e51), + TOBN(0x970370f1, 0xe88128af), TOBN(0x625cc3db, 0x91dec14b), + TOBN(0xfef9666c, 0x01ac3107), TOBN(0xb2a8d577, 0xd5057ac3), + TOBN(0xb0f26299, 0x92be5df7), TOBN(0xf579c8e5, 0x00353924), + TOBN(0xb8fa3d93, 0x1341ed7a), TOBN(0x4223272c, 0xa7b59d49), + TOBN(0x3dcb1947, 0x83b8c4a4), TOBN(0x4e413c01, 0xed1302e4), + TOBN(0x6d999127, 0xe17e44ce), TOBN(0xee86bf75, 0x33b3adfb), + TOBN(0xf6902fe6, 0x25aa96ca), TOBN(0xb73540e4, 0xe5aae47d), + TOBN(0x32801d7b, 0x1b4a158c), TOBN(0xe571c99e, 0x27e2a369), + TOBN(0x40cb76c0, 0x10d9f197), TOBN(0xc308c289, 0x3167c0ae), + TOBN(0xa6ef9dd3, 0xeb7958f2), TOBN(0xa7226dfc, 0x300879b1), + TOBN(0x6cd0b362, 0x7edf0636), TOBN(0x4efbce6c, 0x7bc37eed), + TOBN(0x75f92a05, 0x8d699021), TOBN(0x586d4c79, 0x772566e3), + TOBN(0x378ca5f1, 0x761ad23a), TOBN(0x650d86fc, 0x1465a8ac), + TOBN(0x7a4ed457, 0x842ba251), TOBN(0x6b65e3e6, 0x42234933), + TOBN(0xaf1543b7, 0x31aad657), TOBN(0xa4cefe98, 0xcbfec369), + TOBN(0xb587da90, 0x9f47befb), TOBN(0x6562e9fb, 0x41312d13), + TOBN(0xa691ea59, 0xeff1cefe), TOBN(0xcc30477a, 0x05fc4cf6), + TOBN(0xa1632461, 0x0b0ffd3d), TOBN(0xa1f16f3b, 0x5b355956), + TOBN(0x5b148d53, 0x4224ec24), TOBN(0xdc834e7b, 0xf977012a), + TOBN(0x7bfc5e75, 0xb2c69dbc), TOBN(0x3aa77a29, 0x03c3da6c), + TOBN(0xde0df03c, 0xca910271), TOBN(0xcbd5ca4a, 0x7806dc55), + TOBN(0xe1ca5807, 0x6db476cb), TOBN(0xfde15d62, 0x5f37a31e), + TOBN(0xf49af520, 0xf41af416), TOBN(0x96c5c5b1, 0x7d342db5), + TOBN(0x155c43b7, 0xeb4ceb9b), TOBN(0x2e993010, 0x4e77371a), + TOBN(0x1d2987da, 0x675d43af), TOBN(0xef2bc1c0, 0x8599fd72), + TOBN(0x96894b7b, 0x9342f6b2), TOBN(0x201eadf2, 0x7c8e71f0), + TOBN(0xf3479d9f, 0x4a1f3efc), TOBN(0xe0f8a742, 0x702a9704), + TOBN(0xeafd44b6, 0xb3eba40c), TOBN(0xf9739f29, 0xc1c1e0d0), + TOBN(0x0091471a, 0x619d505e), TOBN(0xc15f9c96, 0x9d7c263e), + TOBN(0x5be47285, 0x83afbe33), TOBN(0xa3b6d6af, 0x04f1e092), + TOBN(0xe76526b9, 0x751a9d11), TOBN(0x2ec5b26d, 0x9a4ae4d2), + TOBN(0xeb66f4d9, 0x02f6fb8d), TOBN(0x4063c561, 0x96912164), + TOBN(0xeb7050c1, 0x80ef3000), TOBN(0x288d1c33, 0xeaa5b3f0), + TOBN(0xe87c68d6, 0x07806fd8), TOBN(0xb2f7f9d5, 0x4bbbf50f), + TOBN(0x25972f3a, 0xac8d6627), TOBN(0xf8547774, 0x10e8c13b), + TOBN(0xcc50ef6c, 0x872b4a60), TOBN(0xab2a34a4, 0x4613521b), + TOBN(0x39c5c190, 0x983e15d1), TOBN(0x61dde5df, 0x59905512), + TOBN(0xe417f621, 0x9f2275f3), TOBN(0x0750c8b6, 0x451d894b), + TOBN(0x75b04ab9, 0x78b0bdaa), TOBN(0x3bfd9fd4, 0x458589bd), + TOBN(0xf1013e30, 0xee9120b6), TOBN(0x2b51af93, 0x23a4743e), + TOBN(0xea96ffae, 0x48d14d9e), TOBN(0x71dc0dbe, 0x698a1d32), + TOBN(0x914962d2, 0x0180cca4), TOBN(0x1ae60677, 0xc3568963), + TOBN(0x8cf227b1, 0x437bc444), TOBN(0xc650c83b, 0xc9962c7a), + TOBN(0x23c2c7dd, 0xfe7ccfc4), TOBN(0xf925c89d, 0x1b929d48), + TOBN(0x4460f74b, 0x06783c33), TOBN(0xac2c8d49, 0xa590475a), + TOBN(0xfb40b407, 0xb807bba0), TOBN(0x9d1e362d, 0x69ff8f3a), + TOBN(0xa33e9681, 0xcbef64a4), TOBN(0x67ece5fa, 0x332fb4b2), + TOBN(0x6900a99b, 0x739f10e3), TOBN(0xc3341ca9, 0xff525925), + TOBN(0xee18a626, 0xa9e2d041), TOBN(0xa5a83685, 0x29580ddd), + TOBN(0xf3470c81, 0x9d7de3cd), TOBN(0xedf02586, 0x2062cf9c), + TOBN(0xf43522fa, 0xc010edb0), TOBN(0x30314135, 0x13a4b1ae), + TOBN(0xc792e02a, 0xdb22b94b), TOBN(0x993d8ae9, 0xa1eaa45b), + TOBN(0x8aad6cd3, 0xcd1e1c63), TOBN(0x89529ca7, 0xc5ce688a), + TOBN(0x2ccee3aa, 0xe572a253), TOBN(0xe02b6438, 0x02a21efb), + TOBN(0xa7091b6e, 0xc9430358), TOBN(0x06d1b1fa, 0x9d7db504), + TOBN(0x58846d32, 0xc4744733), TOBN(0x40517c71, 0x379f9e34), + TOBN(0x2f65655f, 0x130ef6ca), TOBN(0x526e4488, 0xf1f3503f), + TOBN(0x8467bd17, 0x7ee4a976), TOBN(0x1d9dc913, 0x921363d1), + TOBN(0xd8d24c33, 0xb069e041), TOBN(0x5eb5da0a, 0x2cdf7f51), + TOBN(0x1c0f3cb1, 0x197b994f), TOBN(0x3c95a6c5, 0x2843eae9), + TOBN(0x7766ffc9, 0xa6097ea5), TOBN(0x7bea4093, 0xd723b867), + TOBN(0xb48e1f73, 0x4db378f9), TOBN(0x70025b00, 0xe37b77ac), + TOBN(0x943dc8e7, 0xaf24ad46), TOBN(0xb98a15ac, 0x16d00a85), + TOBN(0x3adc38ba, 0x2743b004), TOBN(0xb1c7f4f7, 0x334415ee), + TOBN(0xea43df8f, 0x1e62d05a), TOBN(0x32618905, 0x9d76a3b6), + TOBN(0x2fbd0bb5, 0xa23a0f46), TOBN(0x5bc971db, 0x6a01918c), + TOBN(0x7801d94a, 0xb4743f94), TOBN(0xb94df65e, 0x676ae22b), + TOBN(0xaafcbfab, 0xaf95894c), TOBN(0x7b9bdc07, 0x276b2241), + TOBN(0xeaf98362, 0x5bdda48b), TOBN(0x5977faf2, 0xa3fcb4df), + TOBN(0xbed042ef, 0x052c4b5b), TOBN(0x9fe87f71, 0x067591f0), + TOBN(0xc89c73ca, 0x22f24ec7), TOBN(0x7d37fa9e, 0xe64a9f1b), + TOBN(0x2710841a, 0x15562627), TOBN(0x2c01a613, 0xc243b034), + TOBN(0x1d135c56, 0x2bc68609), TOBN(0xc2ca1715, 0x8b03f1f6), + TOBN(0xc9966c2d, 0x3eb81d82), TOBN(0xc02abf4a, 0x8f6df13e), + TOBN(0x77b34bd7, 0x8f72b43b), TOBN(0xaff6218f, 0x360c82b0), + TOBN(0x0aa5726c, 0x8d55b9d2), TOBN(0xdc0adbe9, 0x99e9bffb), + TOBN(0x9097549c, 0xefb9e72a), TOBN(0x16755712, 0x9dfb3111), + TOBN(0xdd8bf984, 0xf26847f9), TOBN(0xbcb8e387, 0xdfb30cb7), + TOBN(0xc1fd32a7, 0x5171ef9c), TOBN(0x977f3fc7, 0x389b363f), + TOBN(0x116eaf2b, 0xf4babda0), TOBN(0xfeab68bd, 0xf7113c8e), + TOBN(0xd1e3f064, 0xb7def526), TOBN(0x1ac30885, 0xe0b3fa02), + TOBN(0x1c5a6e7b, 0x40142d9d), TOBN(0x839b5603, 0x30921c0b), + TOBN(0x48f301fa, 0x36a116a3), TOBN(0x380e1107, 0xcfd9ee6d), + TOBN(0x7945ead8, 0x58854be1), TOBN(0x4111c12e, 0xcbd4d49d), + TOBN(0xece3b1ec, 0x3a29c2ef), TOBN(0x6356d404, 0x8d3616f5), + TOBN(0x9f0d6a8f, 0x594d320e), TOBN(0x0989316d, 0xf651ccd2), + TOBN(0x6c32117a, 0x0f8fdde4), TOBN(0x9abe5cc5, 0xa26a9bbc), + TOBN(0xcff560fb, 0x9723f671), TOBN(0x21b2a12d, 0x7f3d593c), + TOBN(0xe4cb18da, 0x24ba0696), TOBN(0x186e2220, 0xc3543384), + TOBN(0x722f64e0, 0x88312c29), TOBN(0x94282a99, 0x17dc7752), + TOBN(0x62467bbf, 0x5a85ee89), TOBN(0xf435c650, 0xf10076a0), + TOBN(0xc9ff1539, 0x43b3a50b), TOBN(0x7132130c, 0x1a53efbc), + TOBN(0x31bfe063, 0xf7b0c5b7), TOBN(0xb0179a7d, 0x4ea994cc), + TOBN(0x12d064b3, 0xc85f455b), TOBN(0x47259328, 0x8f6e0062), + TOBN(0xf64e590b, 0xb875d6d9), TOBN(0x22dd6225, 0xad92bcc7), + TOBN(0xb658038e, 0xb9c3bd6d), TOBN(0x00cdb0d6, 0xfbba27c8), + TOBN(0x0c681337, 0x1062c45d), TOBN(0xd8515b8c, 0x2d33407d), + TOBN(0xcb8f699e, 0x8cbb5ecf), TOBN(0x8c4347f8, 0xc608d7d8), + TOBN(0x2c11850a, 0xbb3e00db), TOBN(0x20a8dafd, 0xecb49d19), + TOBN(0xbd781480, 0x45ee2f40), TOBN(0x75e354af, 0x416b60cf), + TOBN(0xde0b58a1, 0x8d49a8c4), TOBN(0xe40e94e2, 0xfa359536), + TOBN(0xbd4fa59f, 0x62accd76), TOBN(0x05cf466a, 0x8c762837), + TOBN(0xb5abda99, 0x448c277b), TOBN(0x5a9e01bf, 0x48b13740), + TOBN(0x9d457798, 0x326aad8d), TOBN(0xbdef4954, 0xc396f7e7), + TOBN(0x6fb274a2, 0xc253e292), TOBN(0x2800bf0a, 0x1cfe53e7), + TOBN(0x22426d31, 0x44438fd4), TOBN(0xef233923, 0x5e259f9a), + TOBN(0x4188503c, 0x03f66264), TOBN(0x9e5e7f13, 0x7f9fdfab), + TOBN(0x565eb76c, 0x5fcc1aba), TOBN(0xea632548, 0x59b5bff8), + TOBN(0x5587c087, 0xaab6d3fa), TOBN(0x92b639ea, 0x6ce39c1b), + TOBN(0x0706e782, 0x953b135c), TOBN(0x7308912e, 0x425268ef), + TOBN(0x599e92c7, 0x090e7469), TOBN(0x83b90f52, 0x9bc35e75), + TOBN(0x4750b3d0, 0x244975b3), TOBN(0xf3a44358, 0x11965d72), + TOBN(0x179c6774, 0x9c8dc751), TOBN(0xff18cdfe, 0xd23d9ff0), + TOBN(0xc4013833, 0x2028e247), TOBN(0x96e280e2, 0xf3bfbc79), + TOBN(0xf60417bd, 0xd0880a84), TOBN(0x263c9f3d, 0x2a568151), + TOBN(0x36be15b3, 0x2d2ce811), TOBN(0x846dc0c2, 0xf8291d21), + TOBN(0x5cfa0ecb, 0x789fcfdb), TOBN(0x45a0beed, 0xd7535b9a), + TOBN(0xec8e9f07, 0x96d69af1), TOBN(0x31a7c5b8, 0x599ab6dc), + TOBN(0xd36d45ef, 0xf9e2e09f), TOBN(0x3cf49ef1, 0xdcee954b), + TOBN(0x6be34cf3, 0x086cff9b), TOBN(0x88dbd491, 0x39a3360f), + TOBN(0x1e96b8cc, 0x0dbfbd1d), TOBN(0xc1e5f7bf, 0xcb7e2552), + TOBN(0x0547b214, 0x28819d98), TOBN(0xc770dd9c, 0x7aea9dcb), + TOBN(0xaef0d4c7, 0x041d68c8), TOBN(0xcc2b9818, 0x13cb9ba8), + TOBN(0x7fc7bc76, 0xfe86c607), TOBN(0x6b7b9337, 0x502a9a95), + TOBN(0x1948dc27, 0xd14dab63), TOBN(0x249dd198, 0xdae047be), + TOBN(0xe8356584, 0xa981a202), TOBN(0x3531dd18, 0x3a893387), + TOBN(0x1be11f90, 0xc85c7209), TOBN(0x93d2fe1e, 0xe2a52b5a), + TOBN(0x8225bfe2, 0xec6d6b97), TOBN(0x9cf6d6f4, 0xbd0aa5de), + TOBN(0x911459cb, 0x54779f5f), TOBN(0x5649cddb, 0x86aeb1f3), + TOBN(0x32133579, 0x3f26ce5a), TOBN(0xc289a102, 0x550f431e), + TOBN(0x559dcfda, 0x73b84c6f), TOBN(0x84973819, 0xee3ac4d7), + TOBN(0xb51e55e6, 0xf2606a82), TOBN(0xe25f7061, 0x90f2fb57), + TOBN(0xacef6c2a, 0xb1a4e37c), TOBN(0x864e359d, 0x5dcf2706), + TOBN(0x479e6b18, 0x7ce57316), TOBN(0x2cab2500, 0x3a96b23d), + TOBN(0xed489862, 0x8ef16df7), TOBN(0x2056538c, 0xef3758b5), + TOBN(0xa7df865e, 0xf15d3101), TOBN(0x80c5533a, 0x61b553d7), + TOBN(0x366e1997, 0x4ed14294), TOBN(0x6620741f, 0xb3c0bcd6), + TOBN(0x21d1d9c4, 0xedc45418), TOBN(0x005b859e, 0xc1cc4a9d), + TOBN(0xdf01f630, 0xa1c462f0), TOBN(0x15d06cf3, 0xf26820c7), + TOBN(0x9f7f24ee, 0x3484be47), TOBN(0x2ff33e96, 0x4a0c902f), + TOBN(0x00bdf457, 0x5a0bc453), TOBN(0x2378dfaf, 0x1aa238db), + TOBN(0x272420ec, 0x856720f2), TOBN(0x2ad9d95b, 0x96797291), + TOBN(0xd1242cc6, 0x768a1558), TOBN(0x2e287f8b, 0x5cc86aa8), + TOBN(0x796873d0, 0x990cecaa), TOBN(0xade55f81, 0x675d4080), + TOBN(0x2645eea3, 0x21f0cd84), TOBN(0x7a1efa0f, 0xb4e17d02), + TOBN(0xf6858420, 0x037cc061), TOBN(0x682e05f0, 0xd5d43e12), + TOBN(0x59c36994, 0x27218710), TOBN(0x85cbba4d, 0x3f7cd2fc), + TOBN(0x726f9729, 0x7a3cd22a), TOBN(0x9f8cd5dc, 0x4a628397), + TOBN(0x17b93ab9, 0xc23165ed), TOBN(0xff5f5dbf, 0x122823d4), + TOBN(0xc1e4e4b5, 0x654a446d), TOBN(0xd1a9496f, 0x677257ba), + TOBN(0x6387ba94, 0xde766a56), TOBN(0x23608bc8, 0x521ec74a), + TOBN(0x16a522d7, 0x6688c4d4), TOBN(0x9d6b4282, 0x07373abd), + TOBN(0xa62f07ac, 0xb42efaa3), TOBN(0xf73e00f7, 0xe3b90180), + TOBN(0x36175fec, 0x49421c3e), TOBN(0xc4e44f9b, 0x3dcf2678), + TOBN(0x76df436b, 0x7220f09f), TOBN(0x172755fb, 0x3aa8b6cf), + TOBN(0xbab89d57, 0x446139cc), TOBN(0x0a0a6e02, 0x5fe0208f), + TOBN(0xcdbb63e2, 0x11e5d399), TOBN(0x33ecaa12, 0xa8977f0b), + TOBN(0x59598b21, 0xf7c42664), TOBN(0xb3e91b32, 0xab65d08a), + TOBN(0x035822ee, 0xf4502526), TOBN(0x1dcf0176, 0x720a82a9), + TOBN(0x50f8598f, 0x3d589e02), TOBN(0xdf0478ff, 0xb1d63d2c), + TOBN(0x8b8068bd, 0x1571cd07), TOBN(0x30c3aa4f, 0xd79670cd), + TOBN(0x25e8fd4b, 0x941ade7f), TOBN(0x3d1debdc, 0x32790011), + TOBN(0x65b6dcbd, 0x3a3f9ff0), TOBN(0x282736a4, 0x793de69c), + TOBN(0xef69a0c3, 0xd41d3bd3), TOBN(0xb533b8c9, 0x07a26bde), + TOBN(0xe2801d97, 0xdb2edf9f), TOBN(0xdc4a8269, 0xe1877af0), + TOBN(0x6c1c5851, 0x3d590dbe), TOBN(0x84632f6b, 0xee4e9357), + TOBN(0xd36d36b7, 0x79b33374), TOBN(0xb46833e3, 0x9bbca2e6), + TOBN(0x37893913, 0xf7fc0586), TOBN(0x385315f7, 0x66bf4719), + TOBN(0x72c56293, 0xb31855dc), TOBN(0xd1416d4e, 0x849061fe), + TOBN(0xbeb3ab78, 0x51047213), TOBN(0x447f6e61, 0xf040c996), + TOBN(0xd06d310d, 0x638b1d0c), TOBN(0xe28a413f, 0xbad1522e), + TOBN(0x685a76cb, 0x82003f86), TOBN(0x610d07f7, 0x0bcdbca3), + TOBN(0x6ff66021, 0x9ca4c455), TOBN(0x7df39b87, 0xcea10eec), + TOBN(0xb9255f96, 0xe22db218), TOBN(0x8cc6d9eb, 0x08a34c44), + TOBN(0xcd4ffb86, 0x859f9276), TOBN(0x8fa15eb2, 0x50d07335), + TOBN(0xdf553845, 0xcf2c24b5), TOBN(0x89f66a9f, 0x52f9c3ba), + TOBN(0x8f22b5b9, 0xe4a7ceb3), TOBN(0xaffef809, 0x0e134686), + TOBN(0x3e53e1c6, 0x8eb8fac2), TOBN(0x93c1e4eb, 0x28aec98e), + TOBN(0xb6b91ec5, 0x32a43bcb), TOBN(0x2dbfa947, 0xb2d74a51), + TOBN(0xe065d190, 0xca84bad7), TOBN(0xfb13919f, 0xad58e65c), + TOBN(0x3c41718b, 0xf1cb6e31), TOBN(0x688969f0, 0x06d05c3f), + TOBN(0xd4f94ce7, 0x21264d45), TOBN(0xfdfb65e9, 0x7367532b), + TOBN(0x5b1be8b1, 0x0945a39d), TOBN(0x229f789c, 0x2b8baf3b), + TOBN(0xd8f41f3e, 0x6f49f15d), TOBN(0x678ce828, 0x907f0792), + TOBN(0xc69ace82, 0xfca6e867), TOBN(0x106451ae, 0xd01dcc89), + TOBN(0x1bb4f7f0, 0x19fc32d2), TOBN(0x64633dfc, 0xb00c52d2), + TOBN(0x8f13549a, 0xad9ea445), TOBN(0x99a3bf50, 0xfb323705), + TOBN(0x0c9625a2, 0x534d4dbc), TOBN(0x45b8f1d1, 0xc2a2fea3), + TOBN(0x76ec21a1, 0xa530fc1a), TOBN(0x4bac9c2a, 0x9e5bd734), + TOBN(0x5996d76a, 0x7b4e3587), TOBN(0x0045cdee, 0x1182d9e3), + TOBN(0x1aee24b9, 0x1207f13d), TOBN(0x66452e97, 0x97345a41), + TOBN(0x16e5b054, 0x9f950cd0), TOBN(0x9cc72fb1, 0xd7fdd075), + TOBN(0x6edd61e7, 0x66249663), TOBN(0xde4caa4d, 0xf043cccb), + TOBN(0x11b1f57a, 0x55c7ac17), TOBN(0x779cbd44, 0x1a85e24d), + TOBN(0x78030f86, 0xe46081e7), TOBN(0xfd4a6032, 0x8e20f643), + TOBN(0xcc7a6488, 0x0a750c0f), TOBN(0x39bacfe3, 0x4e548e83), + TOBN(0x3d418c76, 0x0c110f05), TOBN(0x3e4daa4c, 0xb1f11588), + TOBN(0x2733e7b5, 0x5ffc69ff), TOBN(0x46f147bc, 0x92053127), + TOBN(0x885b2434, 0xd722df94), TOBN(0x6a444f65, 0xe6fc6b7c)} + , + {TOBN(0x7a1a465a, 0xc3f16ea8), TOBN(0x115a461d, 0xb2f1d11c), + TOBN(0x4767dd95, 0x6c68a172), TOBN(0x3392f2eb, 0xd13a4698), + TOBN(0xc7a99ccd, 0xe526cdc7), TOBN(0x8e537fdc, 0x22292b81), + TOBN(0x76d8cf69, 0xa6d39198), TOBN(0xffc5ff43, 0x2446852d), + TOBN(0x97b14f7e, 0xa90567e6), TOBN(0x513257b7, 0xb6ae5cb7), + TOBN(0x85454a3c, 0x9f10903d), TOBN(0xd8d2c9ad, 0x69bc3724), + TOBN(0x38da9324, 0x6b29cb44), TOBN(0xb540a21d, 0x77c8cbac), + TOBN(0x9bbfe435, 0x01918e42), TOBN(0xfffa707a, 0x56c3614e), + TOBN(0x0ce4e3f1, 0xd4e353b7), TOBN(0x062d8a14, 0xef46b0a0), + TOBN(0x6408d5ab, 0x574b73fd), TOBN(0xbc41d1c9, 0xd3273ffd), + TOBN(0x3538e1e7, 0x6be77800), TOBN(0x71fe8b37, 0xc5655031), + TOBN(0x1cd91621, 0x6b9b331a), TOBN(0xad825d0b, 0xbb388f73), + TOBN(0x56c2e05b, 0x1cb76219), TOBN(0x0ec0bf91, 0x71567e7e), + TOBN(0xe7076f86, 0x61c4c910), TOBN(0xd67b085b, 0xbabc04d9), + TOBN(0x9fb90459, 0x5e93a96a), TOBN(0x7526c1ea, 0xfbdc249a), + TOBN(0x0d44d367, 0xecdd0bb7), TOBN(0x95399917, 0x9dc0d695), + TOBN(0x61360ee9, 0x9e240d18), TOBN(0x057cdcac, 0xb4b94466), + TOBN(0xe7667cd1, 0x2fe5325c), TOBN(0x1fa297b5, 0x21974e3b), + TOBN(0xfa4081e7, 0xdb083d76), TOBN(0x31993be6, 0xf206bd15), + TOBN(0x8949269b, 0x14c19f8c), TOBN(0x21468d72, 0xa9d92357), + TOBN(0x2ccbc583, 0xa4c506ec), TOBN(0x957ed188, 0xd1acfe97), + TOBN(0x8baed833, 0x12f1aea2), TOBN(0xef2a6cb4, 0x8325362d), + TOBN(0x130dde42, 0x8e195c43), TOBN(0xc842025a, 0x0e6050c6), + TOBN(0x2da972a7, 0x08686a5d), TOBN(0xb52999a1, 0xe508b4a8), + TOBN(0xd9f090b9, 0x10a5a8bd), TOBN(0xca91d249, 0x096864da), + TOBN(0x8e6a93be, 0x3f67dbc1), TOBN(0xacae6fba, 0xf5f4764c), + TOBN(0x1563c6e0, 0xd21411a0), TOBN(0x28fa787f, 0xda0a4ad8), + TOBN(0xd524491c, 0x908c8030), TOBN(0x1257ba0e, 0x4c795f07), + TOBN(0x83f49167, 0xceca9754), TOBN(0x426d2cf6, 0x4b7939a0), + TOBN(0x2555e355, 0x723fd0bf), TOBN(0xa96e6d06, 0xc4f144e2), + TOBN(0x4768a8dd, 0x87880e61), TOBN(0x15543815, 0xe508e4d5), + TOBN(0x09d7e772, 0xb1b65e15), TOBN(0x63439dd6, 0xac302fa0), + TOBN(0xb93f802f, 0xc14e35c2), TOBN(0x71735b7c, 0x4341333c), + TOBN(0x03a25104, 0x16d4f362), TOBN(0x3f4d069b, 0xbf433c8e), + TOBN(0x0d83ae01, 0xf78f5a7c), TOBN(0x50a8ffbe, 0x7c4eed07), + TOBN(0xc74f8906, 0x76e10f83), TOBN(0x7d080966, 0x9ddaf8e1), + TOBN(0xb11df8e1, 0x698e04cc), TOBN(0x877be203, 0x169005c8), + TOBN(0x32749e8c, 0x4f3c6179), TOBN(0x2dbc9d0a, 0x7853fc05), + TOBN(0x187d4f93, 0x9454d937), TOBN(0xe682ce9d, 0xb4800e1b), + TOBN(0xa9129ad8, 0x165e68e8), TOBN(0x0fe29735, 0xbe7f785b), + TOBN(0x5303f40c, 0x5b9e02b7), TOBN(0xa37c9692, 0x35ee04e8), + TOBN(0x5f46cc20, 0x34d6632b), TOBN(0x55ef72b2, 0x96ac545b), + TOBN(0xabec5c1f, 0x7b91b062), TOBN(0x0a79e1c7, 0xbb33e821), + TOBN(0xbb04b428, 0x3a9f4117), TOBN(0x0de1f28f, 0xfd2a475a), + TOBN(0x31019ccf, 0x3a4434b4), TOBN(0xa3458111, 0x1a7954dc), + TOBN(0xa9dac80d, 0xe34972a7), TOBN(0xb043d054, 0x74f6b8dd), + TOBN(0x021c319e, 0x11137b1a), TOBN(0x00a754ce, 0xed5cc03f), + TOBN(0x0aa2c794, 0xcbea5ad4), TOBN(0x093e67f4, 0x70c015b6), + TOBN(0x72cdfee9, 0xc97e3f6b), TOBN(0xc10bcab4, 0xb6da7461), + TOBN(0x3b02d2fc, 0xb59806b9), TOBN(0x85185e89, 0xa1de6f47), + TOBN(0x39e6931f, 0x0eb6c4d4), TOBN(0x4d4440bd, 0xd4fa5b04), + TOBN(0x5418786e, 0x34be7eb8), TOBN(0x6380e521, 0x9d7259bc), + TOBN(0x20ac0351, 0xd598d710), TOBN(0x272c4166, 0xcb3a4da4), + TOBN(0xdb82fe1a, 0xca71de1f), TOBN(0x746e79f2, 0xd8f54b0f), + TOBN(0x6e7fc736, 0x4b573e9b), TOBN(0x75d03f46, 0xfd4b5040), + TOBN(0x5c1cc36d, 0x0b98d87b), TOBN(0x513ba3f1, 0x1f472da1), + TOBN(0x79d0af26, 0xabb177dd), TOBN(0xf82ab568, 0x7891d564), + TOBN(0x2b6768a9, 0x72232173), TOBN(0xefbb3bb0, 0x8c1f6619), + TOBN(0xb29c11db, 0xa6d18358), TOBN(0x519e2797, 0xb0916d3a), + TOBN(0xd4dc18f0, 0x9188e290), TOBN(0x648e86e3, 0x98b0ca7f), + TOBN(0x859d3145, 0x983c38b5), TOBN(0xb14f176c, 0x637abc8b), + TOBN(0x2793fb9d, 0xcaff7be6), TOBN(0xebe5a55f, 0x35a66a5a), + TOBN(0x7cec1dcd, 0x9f87dc59), TOBN(0x7c595cd3, 0xfbdbf560), + TOBN(0x5b543b22, 0x26eb3257), TOBN(0x69080646, 0xc4c935fd), + TOBN(0x7f2e4403, 0x81e9ede3), TOBN(0x243c3894, 0xcaf6df0a), + TOBN(0x7c605bb1, 0x1c073b11), TOBN(0xcd06a541, 0xba6a4a62), + TOBN(0x29168949, 0x49d4e2e5), TOBN(0x33649d07, 0x4af66880), + TOBN(0xbfc0c885, 0xe9a85035), TOBN(0xb4e52113, 0xfc410f4b), + TOBN(0xdca3b706, 0x78a6513b), TOBN(0x92ea4a2a, 0x9edb1943), + TOBN(0x02642216, 0xdb6e2dd8), TOBN(0x9b45d0b4, 0x9fd57894), + TOBN(0x114e70db, 0xc69d11ae), TOBN(0x1477dd19, 0x4c57595f), + TOBN(0xbc2208b4, 0xec77c272), TOBN(0x95c5b4d7, 0xdb68f59c), + TOBN(0xb8c4fc63, 0x42e532b7), TOBN(0x386ba422, 0x9ae35290), + TOBN(0xfb5dda42, 0xd201ecbc), TOBN(0x2353dc8b, 0xa0e38fd6), + TOBN(0x9a0b85ea, 0x68f7e978), TOBN(0x96ec5682, 0x2ad6d11f), + TOBN(0x5e279d6c, 0xe5f6886d), TOBN(0xd3fe03cd, 0x3cb1914d), + TOBN(0xfe541fa4, 0x7ea67c77), TOBN(0x952bd2af, 0xe3ea810c), + TOBN(0x791fef56, 0x8d01d374), TOBN(0xa3a1c621, 0x0f11336e), + TOBN(0x5ad0d5a9, 0xc7ec6d79), TOBN(0xff7038af, 0x3225c342), + TOBN(0x003c6689, 0xbc69601b), TOBN(0x25059bc7, 0x45e8747d), + TOBN(0xfa4965b2, 0xf2086fbf), TOBN(0xf6840ea6, 0x86916078), + TOBN(0xd7ac7620, 0x70081d6c), TOBN(0xe600da31, 0xb5328645), + TOBN(0x01916f63, 0x529b8a80), TOBN(0xe80e4858, 0x2d7d6f3e), + TOBN(0x29eb0fe8, 0xd664ca7c), TOBN(0xf017637b, 0xe7b43b0c), + TOBN(0x9a75c806, 0x76cb2566), TOBN(0x8f76acb1, 0xb24892d9), + TOBN(0x7ae7b9cc, 0x1f08fe45), TOBN(0x19ef7329, 0x6a4907d8), + TOBN(0x2db4ab71, 0x5f228bf0), TOBN(0xf3cdea39, 0x817032d7), + TOBN(0x0b1f482e, 0xdcabe3c0), TOBN(0x3baf76b4, 0xbb86325c), + TOBN(0xd49065e0, 0x10089465), TOBN(0x3bab5d29, 0x8e77c596), + TOBN(0x7636c3a6, 0x193dbd95), TOBN(0xdef5d294, 0xb246e499), + TOBN(0xb22c58b9, 0x286b2475), TOBN(0xa0b93939, 0xcd80862b), + TOBN(0x3002c83a, 0xf0992388), TOBN(0x6de01f9b, 0xeacbe14c), + TOBN(0x6aac688e, 0xadd70482), TOBN(0x708de92a, 0x7b4a4e8a), + TOBN(0x75b6dd73, 0x758a6eef), TOBN(0xea4bf352, 0x725b3c43), + TOBN(0x10041f2c, 0x87912868), TOBN(0xb1b1be95, 0xef09297a), + TOBN(0x19ae23c5, 0xa9f3860a), TOBN(0xc4f0f839, 0x515dcf4b), + TOBN(0x3c7ecca3, 0x97f6306a), TOBN(0x744c44ae, 0x68a3a4b0), + TOBN(0x69cd13a0, 0xb3a1d8a2), TOBN(0x7cad0a1e, 0x5256b578), + TOBN(0xea653fcd, 0x33791d9e), TOBN(0x9cc2a05d, 0x74b2e05f), + TOBN(0x73b391dc, 0xfd7affa2), TOBN(0xddb7091e, 0xb6b05442), + TOBN(0xc71e27bf, 0x8538a5c6), TOBN(0x195c63dd, 0x89abff17), + TOBN(0xfd315285, 0x1b71e3da), TOBN(0x9cbdfda7, 0xfa680fa0), + TOBN(0x9db876ca, 0x849d7eab), TOBN(0xebe2764b, 0x3c273271), + TOBN(0x663357e3, 0xf208dcea), TOBN(0x8c5bd833, 0x565b1b70), + TOBN(0xccc3b4f5, 0x9837fc0d), TOBN(0x9b641ba8, 0xa79cf00f), + TOBN(0x7428243d, 0xdfdf3990), TOBN(0x83a594c4, 0x020786b1), + TOBN(0xb712451a, 0x526c4502), TOBN(0x9d39438e, 0x6adb3f93), + TOBN(0xfdb261e3, 0xe9ff0ccd), TOBN(0x80344e3c, 0xe07af4c3), + TOBN(0x75900d7c, 0x2fa4f126), TOBN(0x08a3b865, 0x5c99a232), + TOBN(0x2478b6bf, 0xdb25e0c3), TOBN(0x482cc2c2, 0x71db2edf), + TOBN(0x37df7e64, 0x5f321bb8), TOBN(0x8a93821b, 0x9a8005b4), + TOBN(0x3fa2f10c, 0xcc8c1958), TOBN(0x0d332218, 0x2c269d0a), + TOBN(0x20ab8119, 0xe246b0e6), TOBN(0xb39781e4, 0xd349fd17), + TOBN(0xd293231e, 0xb31aa100), TOBN(0x4b779c97, 0xbb032168), + TOBN(0x4b3f19e1, 0xc8470500), TOBN(0x45b7efe9, 0x0c4c869d), + TOBN(0xdb84f38a, 0xa1a6bbcc), TOBN(0x3b59cb15, 0xb2fddbc1), + TOBN(0xba5514df, 0x3fd165e8), TOBN(0x499fd6a9, 0x061f8811), + TOBN(0x72cd1fe0, 0xbfef9f00), TOBN(0x120a4bb9, 0x79ad7e8a), + TOBN(0xf2ffd095, 0x5f4a5ac5), TOBN(0xcfd174f1, 0x95a7a2f0), + TOBN(0xd42301ba, 0x9d17baf1), TOBN(0xd2fa487a, 0x77f22089), + TOBN(0x9cb09efe, 0xb1dc77e1), TOBN(0xe9566939, 0x21c99682), + TOBN(0x8c546901, 0x6c6067bb), TOBN(0xfd378574, 0x61c24456), + TOBN(0x2b6a6cbe, 0x81796b33), TOBN(0x62d550f6, 0x58e87f8b), + TOBN(0x1b763e1c, 0x7f1b01b4), TOBN(0x4b93cfea, 0x1b1b5e12), + TOBN(0xb9345238, 0x1d531696), TOBN(0x57201c00, 0x88cdde69), + TOBN(0xdde92251, 0x9a86afc7), TOBN(0xe3043895, 0xbd35cea8), + TOBN(0x7608c1e1, 0x8555970d), TOBN(0x8267dfa9, 0x2535935e), + TOBN(0xd4c60a57, 0x322ea38b), TOBN(0xe0bf7977, 0x804ef8b5), + TOBN(0x1a0dab28, 0xc06fece4), TOBN(0xd405991e, 0x94e7b49d), + TOBN(0xc542b6d2, 0x706dab28), TOBN(0xcb228da3, 0xa91618fb), + TOBN(0x224e4164, 0x107d1cea), TOBN(0xeb9fdab3, 0xd0f5d8f1), + TOBN(0xc02ba386, 0x0d6e41cd), TOBN(0x676a72c5, 0x9b1f7146), + TOBN(0xffd6dd98, 0x4d6cb00b), TOBN(0xcef9c5ca, 0xde2e8d7c), + TOBN(0xa1bbf5d7, 0x641c7936), TOBN(0x1b95b230, 0xee8f772e), + TOBN(0xf765a92e, 0xe8ac25b1), TOBN(0xceb04cfc, 0x3a18b7c6), + TOBN(0x27944cef, 0x0acc8966), TOBN(0xcbb3c957, 0x434c1004), + TOBN(0x9c9971a1, 0xa43ff93c), TOBN(0x5bc2db17, 0xa1e358a9), + TOBN(0x45b4862e, 0xa8d9bc82), TOBN(0x70ebfbfb, 0x2201e052), + TOBN(0xafdf64c7, 0x92871591), TOBN(0xea5bcae6, 0xb42d0219), + TOBN(0xde536c55, 0x2ad8f03c), TOBN(0xcd6c3f4d, 0xa76aa33c), + TOBN(0xbeb5f623, 0x0bca6de3), TOBN(0xdd20dd99, 0xb1e706fd), + TOBN(0x90b3ff9d, 0xac9059d4), TOBN(0x2d7b2902, 0x7ccccc4e), + TOBN(0x8a090a59, 0xce98840f), TOBN(0xa5d947e0, 0x8410680a), + TOBN(0x49ae346a, 0x923379a5), TOBN(0x7dbc84f9, 0xb28a3156), + TOBN(0xfd40d916, 0x54a1aff2), TOBN(0xabf318ba, 0x3a78fb9b), + TOBN(0x50152ed8, 0x3029f95e), TOBN(0x9fc1dd77, 0xc58ad7fa), + TOBN(0x5fa57915, 0x13595c17), TOBN(0xb9504668, 0x8f62b3a9), + TOBN(0x907b5b24, 0xff3055b0), TOBN(0x2e995e35, 0x9a84f125), + TOBN(0x87dacf69, 0x7e9bbcfb), TOBN(0x95d0c1d6, 0xe86d96e3), + TOBN(0x65726e3c, 0x2d95a75c), TOBN(0x2c3c9001, 0xacd27f21), + TOBN(0x1deab561, 0x6c973f57), TOBN(0x108b7e2c, 0xa5221643), + TOBN(0x5fee9859, 0xc4ef79d4), TOBN(0xbd62b88a, 0x40d4b8c6), + TOBN(0xb4dd29c4, 0x197c75d6), TOBN(0x266a6df2, 0xb7076feb), + TOBN(0x9512d0ea, 0x4bf2df11), TOBN(0x1320c24f, 0x6b0cc9ec), + TOBN(0x6bb1e0e1, 0x01a59596), TOBN(0x8317c5bb, 0xeff9aaac), + TOBN(0x65bb405e, 0x385aa6c9), TOBN(0x613439c1, 0x8f07988f), + TOBN(0xd730049f, 0x16a66e91), TOBN(0xe97f2820, 0xfa1b0e0d), + TOBN(0x4131e003, 0x304c28ea), TOBN(0x820ab732, 0x526bac62), + TOBN(0xb2ac9ef9, 0x28714423), TOBN(0x54ecfffa, 0xadb10cb2), + TOBN(0x8781476e, 0xf886a4cc), TOBN(0x4b2c87b5, 0xdb2f8d49), + TOBN(0xe857cd20, 0x0a44295d), TOBN(0x707d7d21, 0x58c6b044), + TOBN(0xae8521f9, 0xf596757c), TOBN(0x87448f03, 0x67b2b714), + TOBN(0x13a9bc45, 0x5ebcd58d), TOBN(0x79bcced9, 0x9122d3c1), + TOBN(0x3c644247, 0x9e076642), TOBN(0x0cf22778, 0x2df4767d), + TOBN(0x5e61aee4, 0x71d444b6), TOBN(0x211236bf, 0xc5084a1d), + TOBN(0x7e15bc9a, 0x4fd3eaf6), TOBN(0x68df2c34, 0xab622bf5), + TOBN(0x9e674f0f, 0x59bf4f36), TOBN(0xf883669b, 0xd7f34d73), + TOBN(0xc48ac1b8, 0x31497b1d), TOBN(0x323b925d, 0x5106703b), + TOBN(0x22156f42, 0x74082008), TOBN(0xeffc521a, 0xc8482bcb), + TOBN(0x5c6831bf, 0x12173479), TOBN(0xcaa2528f, 0xc4739490), + TOBN(0x84d2102a, 0x8f1b3c4d), TOBN(0xcf64dfc1, 0x2d9bec0d), + TOBN(0x433febad, 0x78a546ef), TOBN(0x1f621ec3, 0x7b73cef1), + TOBN(0x6aecd627, 0x37338615), TOBN(0x162082ab, 0x01d8edf6), + TOBN(0x833a8119, 0x19e86b66), TOBN(0x6023a251, 0xd299b5db), + TOBN(0xf5bb0c3a, 0xbbf04b89), TOBN(0x6735eb69, 0xae749a44), + TOBN(0xd0e058c5, 0x4713de3b), TOBN(0xfdf2593e, 0x2c3d4ccd), + TOBN(0x1b8f414e, 0xfdd23667), TOBN(0xdd52aaca, 0xfa2015ee), + TOBN(0x3e31b517, 0xbd9625ff), TOBN(0x5ec9322d, 0x8db5918c), + TOBN(0xbc73ac85, 0xa96f5294), TOBN(0x82aa5bf3, 0x61a0666a), + TOBN(0x49755810, 0xbf08ac42), TOBN(0xd21cdfd5, 0x891cedfc), + TOBN(0x918cb57b, 0x67f8be10), TOBN(0x365d1a7c, 0x56ffa726), + TOBN(0x2435c504, 0x6532de93), TOBN(0xc0fc5e10, 0x2674cd02), + TOBN(0x6e51fcf8, 0x9cbbb142), TOBN(0x1d436e5a, 0xafc50692), + TOBN(0x766bffff, 0x3fbcae22), TOBN(0x3148c2fd, 0xfd55d3b8), + TOBN(0x52c7fdc9, 0x233222fa), TOBN(0x89ff1092, 0xe419fb6b), + TOBN(0x3cd6db99, 0x25254977), TOBN(0x2e85a161, 0x1cf12ca7), + TOBN(0xadd2547c, 0xdc810bc9), TOBN(0xea3f458f, 0x9d257c22), + TOBN(0x642c1fbe, 0x27d6b19b), TOBN(0xed07e6b5, 0x140481a6), + TOBN(0x6ada1d42, 0x86d2e0f8), TOBN(0xe5920122, 0x0e8a9fd5), + TOBN(0x02c936af, 0x708c1b49), TOBN(0x60f30fee, 0x2b4bfaff), + TOBN(0x6637ad06, 0x858e6a61), TOBN(0xce4c7767, 0x3fd374d0), + TOBN(0x39d54b2d, 0x7188defb), TOBN(0xa8c9d250, 0xf56a6b66), + TOBN(0x58fc0f5e, 0xb24fe1dc), TOBN(0x9eaf9dee, 0x6b73f24c), + TOBN(0xa90d588b, 0x33650705), TOBN(0xde5b62c5, 0xaf2ec729), + TOBN(0x5c72cfae, 0xd3c2b36e), TOBN(0x868c19d5, 0x034435da), + TOBN(0x88605f93, 0xe17ee145), TOBN(0xaa60c4ee, 0x77a5d5b1), + TOBN(0xbcf5bfd2, 0x3b60c472), TOBN(0xaf4ef13c, 0xeb1d3049), + TOBN(0x373f44fc, 0xe13895c9), TOBN(0xf29b382f, 0x0cbc9822), + TOBN(0x1bfcb853, 0x73efaef6), TOBN(0xcf56ac9c, 0xa8c96f40), + TOBN(0xd7adf109, 0x7a191e24), TOBN(0x98035f44, 0xbf8a8dc2), + TOBN(0xf40a71b9, 0x1e750c84), TOBN(0xc57f7b0c, 0x5dc6c469), + TOBN(0x49a0e79c, 0x6fbc19c1), TOBN(0x6b0f5889, 0xa48ebdb8), + TOBN(0x5d3fd084, 0xa07c4e9f), TOBN(0xc3830111, 0xab27de14), + TOBN(0x0e4929fe, 0x33e08dcc), TOBN(0xf4a5ad24, 0x40bb73a3), + TOBN(0xde86c2bf, 0x490f97ca), TOBN(0x288f09c6, 0x67a1ce18), + TOBN(0x364bb886, 0x1844478d), TOBN(0x7840fa42, 0xceedb040), + TOBN(0x1269fdd2, 0x5a631b37), TOBN(0x94761f1e, 0xa47c8b7d), + TOBN(0xfc0c2e17, 0x481c6266), TOBN(0x85e16ea2, 0x3daa5fa7), + TOBN(0xccd86033, 0x92491048), TOBN(0x0c2f6963, 0xf4d402d7), + TOBN(0x6336f7df, 0xdf6a865c), TOBN(0x0a2a463c, 0xb5c02a87), + TOBN(0xb0e29be7, 0xbf2f12ee), TOBN(0xf0a22002, 0x66bad988), + TOBN(0x27f87e03, 0x9123c1d7), TOBN(0x21669c55, 0x328a8c98), + TOBN(0x186b9803, 0x92f14529), TOBN(0xd3d056cc, 0x63954df3), + TOBN(0x2f03fd58, 0x175a46f6), TOBN(0x63e34ebe, 0x11558558), + TOBN(0xe13fedee, 0x5b80cfa5), TOBN(0xe872a120, 0xd401dbd1), + TOBN(0x52657616, 0xe8a9d667), TOBN(0xbc8da4b6, 0xe08d6693), + TOBN(0x370fb9bb, 0x1b703e75), TOBN(0x6773b186, 0xd4338363), + TOBN(0x18dad378, 0xecef7bff), TOBN(0xaac787ed, 0x995677da), + TOBN(0x4801ea8b, 0x0437164b), TOBN(0xf430ad20, 0x73fe795e), + TOBN(0xb164154d, 0x8ee5eb73), TOBN(0x0884ecd8, 0x108f7c0e), + TOBN(0x0e6ec096, 0x5f520698), TOBN(0x640631fe, 0x44f7b8d9), + TOBN(0x92fd34fc, 0xa35a68b9), TOBN(0x9c5a4b66, 0x4d40cf4e), + TOBN(0x949454bf, 0x80b6783d), TOBN(0x80e701fe, 0x3a320a10), + TOBN(0x8d1a564a, 0x1a0a39b2), TOBN(0x1436d53d, 0x320587db), + TOBN(0xf5096e6d, 0x6556c362), TOBN(0xbc23a3c0, 0xe2455d7e), + TOBN(0x3a7aee54, 0x807230f9), TOBN(0x9ba1cfa6, 0x22ae82fd), + TOBN(0x833a057a, 0x99c5d706), TOBN(0x8be85f4b, 0x842315c9), + TOBN(0xd083179a, 0x66a72f12), TOBN(0x2fc77d5d, 0xcdcc73cd), + TOBN(0x22b88a80, 0x5616ee30), TOBN(0xfb09548f, 0xe7ab1083), + TOBN(0x8ad6ab0d, 0x511270cd), TOBN(0x61f6c57a, 0x6924d9ab), + TOBN(0xa0f7bf72, 0x90aecb08), TOBN(0x849f87c9, 0x0df784a4), + TOBN(0x27c79c15, 0xcfaf1d03), TOBN(0xbbf9f675, 0xc463face), + TOBN(0x91502c65, 0x765ba543), TOBN(0x18ce3cac, 0x42ea60dd), + TOBN(0xe5cee6ac, 0x6e43ecb3), TOBN(0x63e4e910, 0x68f2aeeb), + TOBN(0x26234fa3, 0xc85932ee), TOBN(0x96883e8b, 0x4c90c44d), + TOBN(0x29b9e738, 0xa18a50f6), TOBN(0xbfc62b2a, 0x3f0420df), + TOBN(0xd22a7d90, 0x6d3e1fa9), TOBN(0x17115618, 0xfe05b8a3), + TOBN(0x2a0c9926, 0xbb2b9c01), TOBN(0xc739fcc6, 0xe07e76a2), + TOBN(0x540e9157, 0x165e439a), TOBN(0x06353a62, 0x6a9063d8), + TOBN(0x84d95594, 0x61e927a3), TOBN(0x013b9b26, 0xe2e0be7f), + TOBN(0x4feaec3b, 0x973497f1), TOBN(0x15c0f94e, 0x093ebc2d), + TOBN(0x6af5f227, 0x33af0583), TOBN(0x0c2af206, 0xc61f3340), + TOBN(0xd25dbdf1, 0x4457397c), TOBN(0x2e8ed017, 0xcabcbae0), + TOBN(0xe3010938, 0xc2815306), TOBN(0xbaa99337, 0xe8c6cd68), + TOBN(0x08513182, 0x3b0ec7de), TOBN(0x1e1b822b, 0x58df05df), + TOBN(0x5c14842f, 0xa5c3b683), TOBN(0x98fe977e, 0x3eba34ce), + TOBN(0xfd2316c2, 0x0d5e8873), TOBN(0xe48d839a, 0xbd0d427d), + TOBN(0x495b2218, 0x623fc961), TOBN(0x24ee56e7, 0xb46fba5e), + TOBN(0x9184a55b, 0x91e4de58), TOBN(0xa7488ca5, 0xdfdea288), + TOBN(0xa723862e, 0xa8dcc943), TOBN(0x92d762b2, 0x849dc0fc), + TOBN(0x3c444a12, 0x091ff4a9), TOBN(0x581113fa, 0x0cada274), + TOBN(0xb9de0a45, 0x30d8eae2), TOBN(0x5e0fcd85, 0xdf6b41ea), + TOBN(0x6233ea68, 0xc094dbb5), TOBN(0xb77d062e, 0xd968d410), + TOBN(0x3e719bbc, 0x58b3002d), TOBN(0x68e7dd3d, 0x3dc49d58), + TOBN(0x8d825740, 0x013a5e58), TOBN(0x21311747, 0x3c9e3c1b), + TOBN(0x0cb0a2a7, 0x7c99b6ab), TOBN(0x5c48a3b3, 0xc2f888f2)} + , + {TOBN(0xc7913e91, 0x991724f3), TOBN(0x5eda799c, 0x39cbd686), + TOBN(0xddb595c7, 0x63d4fc1e), TOBN(0x6b63b80b, 0xac4fed54), + TOBN(0x6ea0fc69, 0x7e5fb516), TOBN(0x737708ba, 0xd0f1c964), + TOBN(0x9628745f, 0x11a92ca5), TOBN(0x61f37958, 0x9a86967a), + TOBN(0x9af39b2c, 0xaa665072), TOBN(0x78322fa4, 0xefd324ef), + TOBN(0x3d153394, 0xc327bd31), TOBN(0x81d5f271, 0x3129dab0), + TOBN(0xc72e0c42, 0xf48027f5), TOBN(0xaa40cdbc, 0x8536e717), + TOBN(0xf45a657a, 0x2d369d0f), TOBN(0xb03bbfc4, 0xea7f74e6), + TOBN(0x46a8c418, 0x0d738ded), TOBN(0x6f1a5bb0, 0xe0de5729), + TOBN(0xf10230b9, 0x8ba81675), TOBN(0x32c6f30c, 0x112b33d4), + TOBN(0x7559129d, 0xd8fffb62), TOBN(0x6a281b47, 0xb459bf05), + TOBN(0x77c1bd3a, 0xfa3b6776), TOBN(0x0709b380, 0x7829973a), + TOBN(0x8c26b232, 0xa3326505), TOBN(0x38d69272, 0xee1d41bf), + TOBN(0x0459453e, 0xffe32afa), TOBN(0xce8143ad, 0x7cb3ea87), + TOBN(0x932ec1fa, 0x7e6ab666), TOBN(0x6cd2d230, 0x22286264), + TOBN(0x459a46fe, 0x6736f8ed), TOBN(0x50bf0d00, 0x9eca85bb), + TOBN(0x0b825852, 0x877a21ec), TOBN(0x300414a7, 0x0f537a94), + TOBN(0x3f1cba40, 0x21a9a6a2), TOBN(0x50824eee, 0x76943c00), + TOBN(0xa0dbfcec, 0xf83cba5d), TOBN(0xf9538148, 0x93b4f3c0), + TOBN(0x61744162, 0x48f24dd7), TOBN(0x5322d64d, 0xe4fb09dd), + TOBN(0x57447384, 0x3d9325f3), TOBN(0xa9bef2d0, 0xf371cb84), + TOBN(0x77d2188b, 0xa61e36c5), TOBN(0xbbd6a7d7, 0xc602df72), + TOBN(0xba3aa902, 0x8f61bc0b), TOBN(0xf49085ed, 0x6ed0b6a1), + TOBN(0x8bc625d6, 0xae6e8298), TOBN(0x832b0b1d, 0xa2e9c01d), + TOBN(0xa337c447, 0xf1f0ced1), TOBN(0x800cc793, 0x9492dd2b), + TOBN(0x4b93151d, 0xbea08efa), TOBN(0x820cf3f8, 0xde0a741e), + TOBN(0xff1982dc, 0x1c0f7d13), TOBN(0xef921960, 0x84dde6ca), + TOBN(0x1ad7d972, 0x45f96ee3), TOBN(0x319c8dbe, 0x29dea0c7), + TOBN(0xd3ea3871, 0x7b82b99b), TOBN(0x75922d4d, 0x470eb624), + TOBN(0x8f66ec54, 0x3b95d466), TOBN(0x66e673cc, 0xbee1e346), + TOBN(0x6afe67c4, 0xb5f2b89a), TOBN(0x3de9c1e6, 0x290e5cd3), + TOBN(0x8c278bb6, 0x310a2ada), TOBN(0x420fa384, 0x0bdb323b), + TOBN(0x0ae1d63b, 0x0eb919b0), TOBN(0xd74ee51d, 0xa74b9620), + TOBN(0x395458d0, 0xa674290c), TOBN(0x324c930f, 0x4620a510), + TOBN(0x2d1f4d19, 0xfbac27d4), TOBN(0x4086e8ca, 0x9bedeeac), + TOBN(0x0cdd211b, 0x9b679ab8), TOBN(0x5970167d, 0x7090fec4), + TOBN(0x3420f2c9, 0xfaf1fc63), TOBN(0x616d333a, 0x328c8bb4), + TOBN(0x7d65364c, 0x57f1fe4a), TOBN(0x9343e877, 0x55e5c73a), + TOBN(0x5795176b, 0xe970e78c), TOBN(0xa36ccebf, 0x60533627), + TOBN(0xfc7c7380, 0x09cdfc1b), TOBN(0xb39a2afe, 0xb3fec326), + TOBN(0xb7ff1ba1, 0x6224408a), TOBN(0xcc856e92, 0x247cfc5e), + TOBN(0x01f102e7, 0xc18bc493), TOBN(0x4613ab74, 0x2091c727), + TOBN(0xaa25e89c, 0xc420bf2b), TOBN(0x00a53176, 0x90337ec2), + TOBN(0xd2be9f43, 0x7d025fc7), TOBN(0x3316fb85, 0x6e6fe3dc), + TOBN(0x27520af5, 0x9ac50814), TOBN(0xfdf95e78, 0x9a8e4223), + TOBN(0xb7e7df2a, 0x56bec5a0), TOBN(0xf7022f7d, 0xdf159e5d), + TOBN(0x93eeeab1, 0xcac1fe8f), TOBN(0x8040188c, 0x37451168), + TOBN(0x7ee8aa8a, 0xd967dce6), TOBN(0xfa0e79e7, 0x3abc9299), + TOBN(0x67332cfc, 0x2064cfd1), TOBN(0x339c31de, 0xb0651934), + TOBN(0x719b28d5, 0x2a3bcbea), TOBN(0xee74c82b, 0x9d6ae5c6), + TOBN(0x0927d05e, 0xbaf28ee6), TOBN(0x82cecf2c, 0x9d719028), + TOBN(0x0b0d353e, 0xddb30289), TOBN(0xfe4bb977, 0xfddb2e29), + TOBN(0xbb5bb990, 0x640bfd9e), TOBN(0xd226e277, 0x82f62108), + TOBN(0x4bf00985, 0x02ffdd56), TOBN(0x7756758a, 0x2ca1b1b5), + TOBN(0xc32b62a3, 0x5285fe91), TOBN(0xedbc546a, 0x8c9cd140), + TOBN(0x1e47a013, 0xaf5cb008), TOBN(0xbca7e720, 0x073ce8f2), + TOBN(0xe10b2ab8, 0x17a91cae), TOBN(0xb89aab65, 0x08e27f63), + TOBN(0x7b3074a7, 0xdba3ddf9), TOBN(0x1c20ce09, 0x330c2972), + TOBN(0x6b9917b4, 0x5fcf7e33), TOBN(0xe6793743, 0x945ceb42), + TOBN(0x18fc2215, 0x5c633d19), TOBN(0xad1adb3c, 0xc7485474), + TOBN(0x646f9679, 0x6424c49b), TOBN(0xf888dfe8, 0x67c241c9), + TOBN(0xe12d4b93, 0x24f68b49), TOBN(0x9a6b62d8, 0xa571df20), + TOBN(0x81b4b26d, 0x179483cb), TOBN(0x666f9632, 0x9511fae2), + TOBN(0xd281b3e4, 0xd53aa51f), TOBN(0x7f96a765, 0x7f3dbd16), + TOBN(0xa7f8b5bf, 0x074a30ce), TOBN(0xd7f52107, 0x005a32e6), + TOBN(0x6f9e0907, 0x50237ed4), TOBN(0x2f21da47, 0x8096fa2b), + TOBN(0xf3e19cb4, 0xeec863a0), TOBN(0xd18f77fd, 0x9527620a), + TOBN(0x9505c81c, 0x407c1cf8), TOBN(0x9998db4e, 0x1b6ec284), + TOBN(0x7e3389e5, 0xc247d44d), TOBN(0x12507141, 0x3f4f3d80), + TOBN(0xd4ba0110, 0x4a78a6c7), TOBN(0x312874a0, 0x767720be), + TOBN(0xded059a6, 0x75944370), TOBN(0xd6123d90, 0x3b2c0bdd), + TOBN(0xa56b717b, 0x51c108e3), TOBN(0x9bb7940e, 0x070623e9), + TOBN(0x794e2d59, 0x84ac066c), TOBN(0xf5954a92, 0xe68c69a0), + TOBN(0x28c52458, 0x4fd99dcc), TOBN(0x60e639fc, 0xb1012517), + TOBN(0xc2e60125, 0x7de79248), TOBN(0xe9ef6404, 0xf12fc6d7), + TOBN(0x4c4f2808, 0x2a3b5d32), TOBN(0x865ad32e, 0xc768eb8a), + TOBN(0xac02331b, 0x13fb70b6), TOBN(0x037b44c1, 0x95599b27), + TOBN(0x1a860fc4, 0x60bd082c), TOBN(0xa2e25745, 0xc980cd01), + TOBN(0xee3387a8, 0x1da0263e), TOBN(0x931bfb95, 0x2d10f3d6), + TOBN(0x5b687270, 0xa1f24a32), TOBN(0xf140e65d, 0xca494b86), + TOBN(0x4f4ddf91, 0xb2f1ac7a), TOBN(0xf99eaabb, 0x760fee27), + TOBN(0x57f4008a, 0x49c228e5), TOBN(0x090be440, 0x1cf713bb), + TOBN(0xac91fbe4, 0x5004f022), TOBN(0xd838c2c2, 0x569e1af6), + TOBN(0xd6c7d20b, 0x0f1daaa5), TOBN(0xaa063ac1, 0x1bbb02c0), + TOBN(0x0938a422, 0x59558a78), TOBN(0x5343c669, 0x8435da2f), + TOBN(0x96f67b18, 0x034410dc), TOBN(0x7cc1e424, 0x84510804), + TOBN(0x86a1543f, 0x16dfbb7d), TOBN(0x921fa942, 0x5b5bd592), + TOBN(0x9dcccb6e, 0xb33dd03c), TOBN(0x8581ddd9, 0xb843f51e), + TOBN(0x54935fcb, 0x81d73c9e), TOBN(0x6d07e979, 0x0a5e97ab), + TOBN(0x4dc7b30a, 0xcf3a6bab), TOBN(0x147ab1f3, 0x170bee11), + TOBN(0x0aaf8e3d, 0x9fafdee4), TOBN(0xfab3dbcb, 0x538a8b95), + TOBN(0x405df4b3, 0x6ef13871), TOBN(0xf1f4e9cb, 0x088d5a49), + TOBN(0x9bcd24d3, 0x66b33f1d), TOBN(0x3b97b820, 0x5ce445c0), + TOBN(0xe2926549, 0xba93ff61), TOBN(0xd9c341ce, 0x4dafe616), + TOBN(0xfb30a76e, 0x16efb6f3), TOBN(0xdf24b8ca, 0x605b953c), + TOBN(0x8bd52afe, 0xc2fffb9f), TOBN(0xbbac5ff7, 0xe19d0b96), + TOBN(0x43c01b87, 0x459afccd), TOBN(0x6bd45143, 0xb7432652), + TOBN(0x84734530, 0x55b5d78e), TOBN(0x81088fdb, 0x1554ba7d), + TOBN(0xada0a52c, 0x1e269375), TOBN(0xf9f037c4, 0x2dc5ec10), + TOBN(0xc0660607, 0x94bfbc11), TOBN(0xc0a630bb, 0xc9c40d2f), + TOBN(0x5efc797e, 0xab64c31e), TOBN(0xffdb1dab, 0x74507144), + TOBN(0xf6124287, 0x1ca6790c), TOBN(0xe9609d81, 0xe69bf1bf), + TOBN(0xdb898595, 0x00d24fc9), TOBN(0x9c750333, 0xe51fb417), + TOBN(0x51830a91, 0xfef7bbde), TOBN(0x0ce67dc8, 0x945f585c), + TOBN(0x9a730ed4, 0x4763eb50), TOBN(0x24a0e221, 0xc1ab0d66), + TOBN(0x643b6393, 0x648748f3), TOBN(0x1982daa1, 0x6d3c6291), + TOBN(0x6f00a9f7, 0x8bbc5549), TOBN(0x7a1783e1, 0x7f36384e), + TOBN(0xe8346323, 0xde977f50), TOBN(0x91ab688d, 0xb245502a), + TOBN(0x331ab6b5, 0x6d0bdd66), TOBN(0x0a6ef32e, 0x64b71229), + TOBN(0x1028150e, 0xfe7c352f), TOBN(0x27e04350, 0xce7b39d3), + TOBN(0x2a3c8acd, 0xc1070c82), TOBN(0xfb2034d3, 0x80c9feef), + TOBN(0x2d729621, 0x709f3729), TOBN(0x8df290bf, 0x62cb4549), + TOBN(0x02f99f33, 0xfc2e4326), TOBN(0x3b30076d, 0x5eddf032), + TOBN(0xbb21f8cf, 0x0c652fb5), TOBN(0x314fb49e, 0xed91cf7b), + TOBN(0xa013eca5, 0x2f700750), TOBN(0x2b9e3c23, 0x712a4575), + TOBN(0xe5355557, 0xaf30fbb0), TOBN(0x1ada3516, 0x7c77e771), + TOBN(0x45f6ecb2, 0x7b135670), TOBN(0xe85d19df, 0x7cfc202e), + TOBN(0x0f1b50c7, 0x58d1be9f), TOBN(0x5ebf2c0a, 0xead2e344), + TOBN(0x1531fe4e, 0xabc199c9), TOBN(0xc7032592, 0x56bab0ae), + TOBN(0x16ab2e48, 0x6c1fec54), TOBN(0x0f87fda8, 0x04280188), + TOBN(0xdc9f46fc, 0x609e4a74), TOBN(0x2a44a143, 0xba667f91), + TOBN(0xbc3d8b95, 0xb4d83436), TOBN(0xa01e4bd0, 0xc7bd2958), + TOBN(0x7b182932, 0x73483c90), TOBN(0xa79c6aa1, 0xa7c7b598), + TOBN(0xbf3983c6, 0xeaaac07e), TOBN(0x8f18181e, 0x96e0d4e6), + TOBN(0x8553d37c, 0x051af62b), TOBN(0xe9a998eb, 0x0bf94496), + TOBN(0xe0844f9f, 0xb0d59aa1), TOBN(0x983fd558, 0xe6afb813), + TOBN(0x9670c0ca, 0x65d69804), TOBN(0x732b22de, 0x6ea5ff2d), + TOBN(0xd7640ba9, 0x5fd8623b), TOBN(0x9f619163, 0xa6351782), + TOBN(0x0bfc27ee, 0xacee5043), TOBN(0xae419e73, 0x2eb10f02), + TOBN(0x19c028d1, 0x8943fb05), TOBN(0x71f01cf7, 0xff13aa2a), + TOBN(0x7790737e, 0x8887a132), TOBN(0x67513309, 0x66318410), + TOBN(0x9819e8a3, 0x7ddb795e), TOBN(0xfecb8ef5, 0xdad100b2), + TOBN(0x59f74a22, 0x3021926a), TOBN(0xb7c28a49, 0x6f9b4c1c), + TOBN(0xed1a733f, 0x912ad0ab), TOBN(0x42a910af, 0x01a5659c), + TOBN(0x3842c6e0, 0x7bd68cab), TOBN(0x2b57fa38, 0x76d70ac8), + TOBN(0x8a6707a8, 0x3c53aaeb), TOBN(0x62c1c510, 0x65b4db18), + TOBN(0x8de2c1fb, 0xb2d09dc7), TOBN(0xc3dfed12, 0x266bd23b), + TOBN(0x927d039b, 0xd5b27db6), TOBN(0x2fb2f0f1, 0x103243da), + TOBN(0xf855a07b, 0x80be7399), TOBN(0xed9327ce, 0x1f9f27a8), + TOBN(0xa0bd99c7, 0x729bdef7), TOBN(0x2b67125e, 0x28250d88), + TOBN(0x784b26e8, 0x8670ced7), TOBN(0xe3dfe41f, 0xc31bd3b4), + TOBN(0x9e353a06, 0xbcc85cbc), TOBN(0x302e2909, 0x60178a9d), + TOBN(0x860abf11, 0xa6eac16e), TOBN(0x76447000, 0xaa2b3aac), + TOBN(0x46ff9d19, 0x850afdab), TOBN(0x35bdd6a5, 0xfdb2d4c1), + TOBN(0xe82594b0, 0x7e5c9ce9), TOBN(0x0f379e53, 0x20af346e), + TOBN(0x608b31e3, 0xbc65ad4a), TOBN(0x710c6b12, 0x267c4826), + TOBN(0x51c966f9, 0x71954cf1), TOBN(0xb1cec793, 0x0d0aa215), + TOBN(0x1f155989, 0x86bd23a8), TOBN(0xae2ff99c, 0xf9452e86), + TOBN(0xd8dd953c, 0x340ceaa2), TOBN(0x26355275, 0x2e2e9333), + TOBN(0x15d4e5f9, 0x8586f06d), TOBN(0xd6bf94a8, 0xf7cab546), + TOBN(0x33c59a0a, 0xb76a9af0), TOBN(0x52740ab3, 0xba095af7), + TOBN(0xc444de8a, 0x24389ca0), TOBN(0xcc6f9863, 0x706da0cb), + TOBN(0xb5a741a7, 0x6b2515cf), TOBN(0x71c41601, 0x9585c749), + TOBN(0x78350d4f, 0xe683de97), TOBN(0x31d61524, 0x63d0b5f5), + TOBN(0x7a0cc5e1, 0xfbce090b), TOBN(0xaac927ed, 0xfbcb2a5b), + TOBN(0xe920de49, 0x20d84c35), TOBN(0x8c06a0b6, 0x22b4de26), + TOBN(0xd34dd58b, 0xafe7ddf3), TOBN(0x55851fed, 0xc1e6e55b), + TOBN(0xd1395616, 0x960696e7), TOBN(0x940304b2, 0x5f22705f), + TOBN(0x6f43f861, 0xb0a2a860), TOBN(0xcf121282, 0x0e7cc981), + TOBN(0x12186212, 0x0ab64a96), TOBN(0x09215b9a, 0xb789383c), + TOBN(0x311eb305, 0x37387c09), TOBN(0xc5832fce, 0xf03ee760), + TOBN(0x30358f58, 0x32f7ea19), TOBN(0xe01d3c34, 0x91d53551), + TOBN(0x1ca5ee41, 0xda48ea80), TOBN(0x34e71e8e, 0xcf4fa4c1), + TOBN(0x312abd25, 0x7af1e1c7), TOBN(0xe3afcdeb, 0x2153f4a5), + TOBN(0x9d5c84d7, 0x00235e9a), TOBN(0x0308d3f4, 0x8c4c836f), + TOBN(0xc0a66b04, 0x89332de5), TOBN(0x610dd399, 0x89e566ef), + TOBN(0xf8eea460, 0xd1ac1635), TOBN(0x84cbb3fb, 0x20a2c0df), + TOBN(0x40afb488, 0xe74a48c5), TOBN(0x29738198, 0xd326b150), + TOBN(0x2a17747f, 0xa6d74081), TOBN(0x60ea4c05, 0x55a26214), + TOBN(0x53514bb4, 0x1f88c5fe), TOBN(0xedd64567, 0x7e83426c), + TOBN(0xd5d6cbec, 0x96460b25), TOBN(0xa12fd0ce, 0x68dc115e), + TOBN(0xc5bc3ed2, 0x697840ea), TOBN(0x969876a8, 0xa6331e31), + TOBN(0x60c36217, 0x472ff580), TOBN(0xf4229705, 0x4ad41393), + TOBN(0x4bd99ef0, 0xa03b8b92), TOBN(0x501c7317, 0xc144f4f6), + TOBN(0x159009b3, 0x18464945), TOBN(0x6d5e594c, 0x74c5c6be), + TOBN(0x2d587011, 0x321a3660), TOBN(0xd1e184b1, 0x3898d022), + TOBN(0x5ba04752, 0x4c6a7e04), TOBN(0x47fa1e2b, 0x45550b65), + TOBN(0x9419daf0, 0x48c0a9a5), TOBN(0x66362953, 0x7c243236), + TOBN(0xcd0744b1, 0x5cb12a88), TOBN(0x561b6f9a, 0x2b646188), + TOBN(0x599415a5, 0x66c2c0c0), TOBN(0xbe3f0859, 0x0f83f09a), + TOBN(0x9141c5be, 0xb92041b8), TOBN(0x01ae38c7, 0x26477d0d), + TOBN(0xca8b71f3, 0xd12c7a94), TOBN(0xfab5b31f, 0x765c70db), + TOBN(0x76ae7492, 0x487443e9), TOBN(0x8595a310, 0x990d1349), + TOBN(0xf8dbeda8, 0x7d460a37), TOBN(0x7f7ad082, 0x1e45a38f), + TOBN(0xed1d4db6, 0x1059705a), TOBN(0xa3dd492a, 0xe6b9c697), + TOBN(0x4b92ee3a, 0x6eb38bd5), TOBN(0xbab2609d, 0x67cc0bb7), + TOBN(0x7fc4fe89, 0x6e70ee82), TOBN(0xeff2c56e, 0x13e6b7e3), + TOBN(0x9b18959e, 0x34d26fca), TOBN(0x2517ab66, 0x889d6b45), + TOBN(0xf167b4e0, 0xbdefdd4f), TOBN(0x69958465, 0xf366e401), + TOBN(0x5aa368ab, 0xa73bbec0), TOBN(0x12148709, 0x7b240c21), + TOBN(0x378c3233, 0x18969006), TOBN(0xcb4d73ce, 0xe1fe53d1), + TOBN(0x5f50a80e, 0x130c4361), TOBN(0xd67f5951, 0x7ef5212b), + TOBN(0xf145e21e, 0x9e70c72e), TOBN(0xb2e52e29, 0x5566d2fb), + TOBN(0x44eaba4a, 0x032397f5), TOBN(0x5e56937b, 0x7e31a7de), + TOBN(0x68dcf517, 0x456c61e1), TOBN(0xbc2e954a, 0xa8b0a388), + TOBN(0xe3552fa7, 0x60a8b755), TOBN(0x03442dae, 0x73ad0cde), + TOBN(0x37ffe747, 0xceb26210), TOBN(0x983545e8, 0x787baef9), + TOBN(0x8b8c8535, 0x86a3de31), TOBN(0xc621dbcb, 0xfacd46db), + TOBN(0x82e442e9, 0x59266fbb), TOBN(0xa3514c37, 0x339d471c), + TOBN(0x3a11b771, 0x62cdad96), TOBN(0xf0cb3b3c, 0xecf9bdf0), + TOBN(0x3fcbdbce, 0x478e2135), TOBN(0x7547b5cf, 0xbda35342), + TOBN(0xa97e81f1, 0x8a677af6), TOBN(0xc8c2bf83, 0x28817987), + TOBN(0xdf07eaaf, 0x45580985), TOBN(0xc68d1f05, 0xc93b45cb), + TOBN(0x106aa2fe, 0xc77b4cac), TOBN(0x4c1d8afc, 0x04a7ae86), + TOBN(0xdb41c3fd, 0x9eb45ab2), TOBN(0x5b234b5b, 0xd4b22e74), + TOBN(0xda253dec, 0xf215958a), TOBN(0x67e0606e, 0xa04edfa0), + TOBN(0xabbbf070, 0xef751b11), TOBN(0xf352f175, 0xf6f06dce), + TOBN(0xdfc4b6af, 0x6839f6b4), TOBN(0x53ddf9a8, 0x9959848e), + TOBN(0xda49c379, 0xc21520b0), TOBN(0x90864ff0, 0xdbd5d1b6), + TOBN(0x2f055d23, 0x5f49c7f7), TOBN(0xe51e4e6a, 0xa796b2d8), + TOBN(0xc361a67f, 0x5c9dc340), TOBN(0x5ad53c37, 0xbca7c620), + TOBN(0xda1d6588, 0x32c756d0), TOBN(0xad60d911, 0x8bb67e13), + TOBN(0xd6c47bdf, 0x0eeec8c6), TOBN(0x4a27fec1, 0x078a1821), + TOBN(0x081f7415, 0xc3099524), TOBN(0x8effdf0b, 0x82cd8060), + TOBN(0xdb70ec1c, 0x65842df8), TOBN(0x8821b358, 0xd319a901), + TOBN(0x72ee56ee, 0xde42b529), TOBN(0x5bb39592, 0x236e4286), + TOBN(0xd1183316, 0xfd6f7140), TOBN(0xf9fadb5b, 0xbd8e81f7), + TOBN(0x701d5e0c, 0x5a02d962), TOBN(0xfdee4dbf, 0x1b601324), + TOBN(0xbed17407, 0x35d7620e), TOBN(0x04e3c2c3, 0xf48c0012), + TOBN(0x9ee29da7, 0x3455449a), TOBN(0x562cdef4, 0x91a836c4), + TOBN(0x8f682a5f, 0x47701097), TOBN(0x617125d8, 0xff88d0c2), + TOBN(0x948fda24, 0x57bb86dd), TOBN(0x348abb8f, 0x289f7286), + TOBN(0xeb10eab5, 0x99d94bbd), TOBN(0xd51ba28e, 0x4684d160), + TOBN(0xabe0e51c, 0x30c8f41a), TOBN(0x66588b45, 0x13254f4a), + TOBN(0x147ebf01, 0xfad097a5), TOBN(0x49883ea8, 0x610e815d), + TOBN(0xe44d60ba, 0x8a11de56), TOBN(0xa970de6e, 0x827a7a6d), + TOBN(0x2be41424, 0x5e17fc19), TOBN(0xd833c657, 0x01214057), + TOBN(0x1375813b, 0x363e723f), TOBN(0x6820bb88, 0xe6a52e9b), + TOBN(0x7e7f6970, 0xd875d56a), TOBN(0xd6a0a9ac, 0x51fbf6bf), + TOBN(0x54ba8790, 0xa3083c12), TOBN(0xebaeb23d, 0x6ae7eb64), + TOBN(0xa8685c3a, 0xb99a907a), TOBN(0xf1e74550, 0x026bf40b), + TOBN(0x7b73a027, 0xc802cd9e), TOBN(0x9a8a927c, 0x4fef4635), + TOBN(0xe1b6f60c, 0x08191224), TOBN(0xc4126ebb, 0xde4ec091), + TOBN(0xe1dff4dc, 0x4ae38d84), TOBN(0xde3f57db, 0x4f2ef985), + TOBN(0x34964337, 0xd446a1dd), TOBN(0x7bf217a0, 0x859e77f6), + TOBN(0x8ff10527, 0x8e1d13f5), TOBN(0xa304ef03, 0x74eeae27), + TOBN(0xfc6f5e47, 0xd19dfa5a), TOBN(0xdb007de3, 0x7fad982b), + TOBN(0x28205ad1, 0x613715f5), TOBN(0x251e6729, 0x7889529e), + TOBN(0x72705184, 0x1ae98e78), TOBN(0xf818537d, 0x271cac32), + TOBN(0xc8a15b7e, 0xb7f410f5), TOBN(0xc474356f, 0x81f62393), + TOBN(0x92dbdc5a, 0xc242316b), TOBN(0xabe060ac, 0xdbf4aff5), + TOBN(0x6e8c38fe, 0x909a8ec6), TOBN(0x43e514e5, 0x6116cb94), + TOBN(0x2078fa38, 0x07d784f9), TOBN(0x1161a880, 0xf4b5b357), + TOBN(0x5283ce79, 0x13adea3d), TOBN(0x0756c3e6, 0xcc6a910b), + TOBN(0x60bcfe01, 0xaaa79697), TOBN(0x04a73b29, 0x56391db1), + TOBN(0xdd8dad47, 0x189b45a0), TOBN(0xbfac0dd0, 0x48d5b8d9), + TOBN(0x34ab3af5, 0x7d3d2ec2), TOBN(0x6fa2fc2d, 0x207bd3af), + TOBN(0x9ff40092, 0x66550ded), TOBN(0x719b3e87, 0x1fd5b913), + TOBN(0xa573a496, 0x6d17fbc7), TOBN(0x0cd1a70a, 0x73d2b24e), + TOBN(0x34e2c5ca, 0xb2676937), TOBN(0xe7050b06, 0xbf669f21), + TOBN(0xfbe948b6, 0x1ede9046), TOBN(0xa0530051, 0x97662659), + TOBN(0x58cbd4ed, 0xf10124c5), TOBN(0xde2646e4, 0xdd6c06c8), + TOBN(0x332f8108, 0x8cad38c0), TOBN(0x471b7e90, 0x6bd68ae2), + TOBN(0x56ac3fb2, 0x0d8e27a3), TOBN(0xb54660db, 0x136b4b0d), + TOBN(0x123a1e11, 0xa6fd8de4), TOBN(0x44dbffea, 0xa37799ef), + TOBN(0x4540b977, 0xce6ac17c), TOBN(0x495173a8, 0xaf60acef)} + , + {TOBN(0x9ebb284d, 0x391c2a82), TOBN(0xbcdd4863, 0x158308e8), + TOBN(0x006f16ec, 0x83f1edca), TOBN(0xa13e2c37, 0x695dc6c8), + TOBN(0x2ab756f0, 0x4a057a87), TOBN(0xa8765500, 0xa6b48f98), + TOBN(0x4252face, 0x68651c44), TOBN(0xa52b540b, 0xe1765e02), + TOBN(0x4f922fc5, 0x16a0d2bb), TOBN(0x0d5cc16c, 0x1a623499), + TOBN(0x9241cf3a, 0x57c62c8b), TOBN(0x2f5e6961, 0xfd1b667f), + TOBN(0x5c15c70b, 0xf5a01797), TOBN(0x3d20b44d, 0x60956192), + TOBN(0x04911b37, 0x071fdb52), TOBN(0xf648f916, 0x8d6f0f7b), + TOBN(0x6dc1acaf, 0xe60b7cf7), TOBN(0x25860a50, 0x84a9d869), + TOBN(0x56fc6f09, 0xe7ba8ac4), TOBN(0x828c5bd0, 0x6148d29e), + TOBN(0xac6b435e, 0xdc55ae5f), TOBN(0xa527f56c, 0xc0117411), + TOBN(0x94d5045e, 0xfd24342c), TOBN(0x2c4c0a35, 0x70b67c0d), + TOBN(0x027cc8b8, 0xfac61d9a), TOBN(0x7d25e062, 0xe3c6fe8a), + TOBN(0xe08805bf, 0xe5bff503), TOBN(0x13271e6c, 0x6ff632f7), + TOBN(0x55dca6c0, 0x232f76a5), TOBN(0x8957c32d, 0x701ef426), + TOBN(0xee728bcb, 0xa10a5178), TOBN(0x5ea60411, 0xb62c5173), + TOBN(0xfc4e964e, 0xd0b8892b), TOBN(0x9ea17683, 0x9301bb74), + TOBN(0x6265c5ae, 0xfcc48626), TOBN(0xe60cf82e, 0xbb3e9102), + TOBN(0x57adf797, 0xd4df5531), TOBN(0x235b59a1, 0x8deeefe2), + TOBN(0x60adcf58, 0x3f306eb1), TOBN(0x105c2753, 0x3d09492d), + TOBN(0x4090914b, 0xb5def996), TOBN(0x1cb69c83, 0x233dd1e7), + TOBN(0xc1e9c1d3, 0x9b3d5e76), TOBN(0x1f3338ed, 0xfccf6012), + TOBN(0xb1e95d0d, 0x2f5378a8), TOBN(0xacf4c2c7, 0x2f00cd21), + TOBN(0x6e984240, 0xeb5fe290), TOBN(0xd66c038d, 0x248088ae), + TOBN(0x804d264a, 0xf94d70cf), TOBN(0xbdb802ef, 0x7314bf7e), + TOBN(0x8fb54de2, 0x4333ed02), TOBN(0x740461e0, 0x285635d9), + TOBN(0x4113b2c8, 0x365e9383), TOBN(0xea762c83, 0x3fdef652), + TOBN(0x4eec6e2e, 0x47b956c1), TOBN(0xa3d814be, 0x65620fa4), + TOBN(0x9ad5462b, 0xb4d8bc50), TOBN(0x181c0b16, 0xa9195770), + TOBN(0xebd4fe1c, 0x78412a68), TOBN(0xae0341bc, 0xc0dff48c), + TOBN(0xb6bc45cf, 0x7003e866), TOBN(0xf11a6dea, 0x8a24a41b), + TOBN(0x5407151a, 0xd04c24c2), TOBN(0x62c9d27d, 0xda5b7b68), + TOBN(0x2e964235, 0x88cceff6), TOBN(0x8594c54f, 0x8b07ed69), + TOBN(0x1578e73c, 0xc84d0d0d), TOBN(0x7b4e1055, 0xff532868), + TOBN(0xa348c0d5, 0xb5ec995a), TOBN(0xbf4b9d55, 0x14289a54), + TOBN(0x9ba155a6, 0x58fbd777), TOBN(0x186ed7a8, 0x1a84491d), + TOBN(0xd4992b30, 0x614c0900), TOBN(0xda98d121, 0xbd00c24b), + TOBN(0x7f534dc8, 0x7ec4bfa1), TOBN(0x4a5ff674, 0x37dc34bc), + TOBN(0x68c196b8, 0x1d7ea1d7), TOBN(0x38cf2893, 0x80a6d208), + TOBN(0xfd56cd09, 0xe3cbbd6e), TOBN(0xec72e27e, 0x4205a5b6), + TOBN(0x15ea68f5, 0xa44f77f7), TOBN(0x7aa5f9fd, 0xb43c52bc), + TOBN(0x86ff676f, 0x94f0e609), TOBN(0xa4cde963, 0x2e2d432b), + TOBN(0x8cafa0c0, 0xeee470af), TOBN(0x84137d0e, 0x8a3f5ec8), + TOBN(0xebb40411, 0xfaa31231), TOBN(0xa239c13f, 0x6f7f7ccf), + TOBN(0x32865719, 0xa8afd30b), TOBN(0x86798328, 0x8a826dce), + TOBN(0xdf04e891, 0xc4a8fbe0), TOBN(0xbb6b6e1b, 0xebf56ad3), + TOBN(0x0a695b11, 0x471f1ff0), TOBN(0xd76c3389, 0xbe15baf0), + TOBN(0x018edb95, 0xbe96c43e), TOBN(0xf2beaaf4, 0x90794158), + TOBN(0x152db09e, 0xc3076a27), TOBN(0x5e82908e, 0xe416545d), + TOBN(0xa2c41272, 0x356d6f2e), TOBN(0xdc9c9642, 0x31fd74e1), + TOBN(0x66ceb88d, 0x519bf615), TOBN(0xe29ecd76, 0x05a2274e), + TOBN(0x3a0473c4, 0xbf5e2fa0), TOBN(0x6b6eb671, 0x64284e67), + TOBN(0xe8b97932, 0xb88756dd), TOBN(0xed4e8652, 0xf17e3e61), + TOBN(0xc2dd1499, 0x3ee1c4a4), TOBN(0xc0aaee17, 0x597f8c0e), + TOBN(0x15c4edb9, 0x6c168af3), TOBN(0x6563c7bf, 0xb39ae875), + TOBN(0xadfadb6f, 0x20adb436), TOBN(0xad55e8c9, 0x9a042ac0), + TOBN(0x975a1ed8, 0xb76da1f5), TOBN(0x10dfa466, 0xa58acb94), + TOBN(0x8dd7f7e3, 0xac060282), TOBN(0x6813e66a, 0x572a051e), + TOBN(0xb4ccae1e, 0x350cb901), TOBN(0xb653d656, 0x50cb7822), + TOBN(0x42484710, 0xdfab3b87), TOBN(0xcd7ee537, 0x9b670fd0), + TOBN(0x0a50b12e, 0x523b8bf6), TOBN(0x8009eb5b, 0x8f910c1b), + TOBN(0xf535af82, 0x4a167588), TOBN(0x0f835f9c, 0xfb2a2abd), + TOBN(0xf59b2931, 0x2afceb62), TOBN(0xc797df2a, 0x169d383f), + TOBN(0xeb3f5fb0, 0x66ac02b0), TOBN(0x029d4c6f, 0xdaa2d0ca), + TOBN(0xd4059bc1, 0xafab4bc5), TOBN(0x833f5c6f, 0x56783247), + TOBN(0xb5346630, 0x8d2d3605), TOBN(0x83387891, 0xd34d8433), + TOBN(0xd973b30f, 0xadd9419a), TOBN(0xbcca1099, 0xafe3fce8), + TOBN(0x08178315, 0x0809aac6), TOBN(0x01b7f21a, 0x540f0f11), + TOBN(0x65c29219, 0x909523c8), TOBN(0xa62f648f, 0xa3a1c741), + TOBN(0x88598d4f, 0x60c9e55a), TOBN(0xbce9141b, 0x0e4f347a), + TOBN(0x9af97d84, 0x35f9b988), TOBN(0x0210da62, 0x320475b6), + TOBN(0x3c076e22, 0x9191476c), TOBN(0x7520dbd9, 0x44fc7834), + TOBN(0x6a6b2cfe, 0xc1ab1bbd), TOBN(0xef8a65be, 0xdc650938), + TOBN(0x72855540, 0x805d7bc4), TOBN(0xda389396, 0xed11fdfd), + TOBN(0xa9d5bd36, 0x74660876), TOBN(0x11d67c54, 0xb45dff35), + TOBN(0x6af7d148, 0xa4f5da94), TOBN(0xbb8d4c3f, 0xc0bbeb31), + TOBN(0x87a7ebd1, 0xe0a1b12a), TOBN(0x1e4ef88d, 0x770ba95f), + TOBN(0x8c33345c, 0xdc2ae9cb), TOBN(0xcecf1276, 0x01cc8403), + TOBN(0x687c012e, 0x1b39b80f), TOBN(0xfd90d0ad, 0x35c33ba4), + TOBN(0xa3ef5a67, 0x5c9661c2), TOBN(0x368fc88e, 0xe017429e), + TOBN(0xd30c6761, 0x196a2fa2), TOBN(0x931b9817, 0xbd5b312e), + TOBN(0xba01000c, 0x72f54a31), TOBN(0xa203d2c8, 0x66eaa541), + TOBN(0xf2abdee0, 0x98939db3), TOBN(0xe37d6c2c, 0x3e606c02), + TOBN(0xf2921574, 0x521ff643), TOBN(0x2781b3c4, 0xd7e2fca3), + TOBN(0x664300b0, 0x7850ec06), TOBN(0xac5a38b9, 0x7d3a10cf), + TOBN(0x9233188d, 0xe34ab39d), TOBN(0xe77057e4, 0x5072cbb9), + TOBN(0xbcf0c042, 0xb59e78df), TOBN(0x4cfc91e8, 0x1d97de52), + TOBN(0x4661a26c, 0x3ee0ca4a), TOBN(0x5620a4c1, 0xfb8507bc), + TOBN(0x4b44d4aa, 0x049f842c), TOBN(0xceabc5d5, 0x1540e82b), + TOBN(0x306710fd, 0x15c6f156), TOBN(0xbe5ae52b, 0x63db1d72), + TOBN(0x06f1e7e6, 0x334957f1), TOBN(0x57e388f0, 0x31144a70), + TOBN(0xfb69bb2f, 0xdf96447b), TOBN(0x0f78ebd3, 0x73e38a12), + TOBN(0xb8222605, 0x2b7ce542), TOBN(0xe6d4ce99, 0x7472bde1), + TOBN(0x53e16ebe, 0x09d2f4da), TOBN(0x180ff42e, 0x53b92b2e), + TOBN(0xc59bcc02, 0x2c34a1c6), TOBN(0x3803d6f9, 0x422c46c2), + TOBN(0x18aff74f, 0x5c14a8a2), TOBN(0x55aebf80, 0x10a08b28), + TOBN(0x66097d58, 0x7135593f), TOBN(0x32e6eff7, 0x2be570cd), + TOBN(0x584e6a10, 0x2a8c860d), TOBN(0xcd185890, 0xa2eb4163), + TOBN(0x7ceae99d, 0x6d97e134), TOBN(0xd42c6b70, 0xdd8447ce), + TOBN(0x59ddbb4a, 0xb8c50273), TOBN(0x03c612df, 0x3cf34e1e), + TOBN(0x84b9ca15, 0x04b6c5a0), TOBN(0x35216f39, 0x18f0e3a3), + TOBN(0x3ec2d2bc, 0xbd986c00), TOBN(0x8bf546d9, 0xd19228fe), + TOBN(0xd1c655a4, 0x4cd623c3), TOBN(0x366ce718, 0x502b8e5a), + TOBN(0x2cfc84b4, 0xeea0bfe7), TOBN(0xe01d5cee, 0xcf443e8e), + TOBN(0x8ec045d9, 0x036520f8), TOBN(0xdfb3c3d1, 0x92d40e98), + TOBN(0x0bac4cce, 0xcc559a04), TOBN(0x35eccae5, 0x240ea6b1), + TOBN(0x180b32db, 0xf8a5a0ac), TOBN(0x547972a5, 0xeb699700), + TOBN(0xa3765801, 0xca26bca0), TOBN(0x57e09d0e, 0xa647f25a), + TOBN(0xb956970e, 0x2fdd23cc), TOBN(0xb80288bc, 0x5682e971), + TOBN(0xe6e6d91e, 0x9ae86ebc), TOBN(0x0564c83f, 0x8c9f1939), + TOBN(0x551932a2, 0x39560368), TOBN(0xe893752b, 0x049c28e2), + TOBN(0x0b03cee5, 0xa6a158c3), TOBN(0xe12d656b, 0x04964263), + TOBN(0x4b47554e, 0x63e3bc1d), TOBN(0xc719b6a2, 0x45044ff7), + TOBN(0x4f24d30a, 0xe48daa07), TOBN(0xa3f37556, 0xc8c1edc3), + TOBN(0x9a47bf76, 0x0700d360), TOBN(0xbb1a1824, 0x822ae4e2), + TOBN(0x22e275a3, 0x89f1fb4c), TOBN(0x72b1aa23, 0x9968c5f5), + TOBN(0xa75feaca, 0xbe063f64), TOBN(0x9b392f43, 0xbce47a09), + TOBN(0xd4241509, 0x1ad07aca), TOBN(0x4b0c591b, 0x8d26cd0f), + TOBN(0x2d42ddfd, 0x92f1169a), TOBN(0x63aeb1ac, 0x4cbf2392), + TOBN(0x1de9e877, 0x0691a2af), TOBN(0xebe79af7, 0xd98021da), + TOBN(0xcfdf2a4e, 0x40e50acf), TOBN(0xf0a98ad7, 0xaf01d665), + TOBN(0xefb640bf, 0x1831be1f), TOBN(0x6fe8bd2f, 0x80e9ada0), + TOBN(0x94c103a1, 0x6cafbc91), TOBN(0x170f8759, 0x8308e08c), + TOBN(0x5de2d2ab, 0x9780ff4f), TOBN(0x666466bc, 0x45b201f2), + TOBN(0x58af2010, 0xf5b343bc), TOBN(0x0f2e400a, 0xf2f142fe), + TOBN(0x3483bfde, 0xa85f4bdf), TOBN(0xf0b1d093, 0x03bfeaa9), + TOBN(0x2ea01b95, 0xc7081603), TOBN(0xe943e4c9, 0x3dba1097), + TOBN(0x47be92ad, 0xb438f3a6), TOBN(0x00bb7742, 0xe5bf6636), + TOBN(0x136b7083, 0x824297b4), TOBN(0x9d0e5580, 0x5584455f), + TOBN(0xab48cedc, 0xf1c7d69e), TOBN(0x53a9e481, 0x2a256e76), + TOBN(0x0402b0e0, 0x65eb2413), TOBN(0xdadbbb84, 0x8fc407a7), + TOBN(0xa65cd5a4, 0x8d7f5492), TOBN(0x21d44293, 0x74bae294), + TOBN(0x66917ce6, 0x3b5f1cc4), TOBN(0x37ae52ea, 0xce872e62), + TOBN(0xbb087b72, 0x2905f244), TOBN(0x12077086, 0x1e6af74f), + TOBN(0x4b644e49, 0x1058edea), TOBN(0x827510e3, 0xb638ca1d), + TOBN(0x8cf2b704, 0x6038591c), TOBN(0xffc8b47a, 0xfe635063), + TOBN(0x3ae220e6, 0x1b4d5e63), TOBN(0xbd864742, 0x9d961b4b), + TOBN(0x610c107e, 0x9bd16bed), TOBN(0x4270352a, 0x1127147b), + TOBN(0x7d17ffe6, 0x64cfc50e), TOBN(0x50dee01a, 0x1e36cb42), + TOBN(0x068a7622, 0x35dc5f9a), TOBN(0x9a08d536, 0xdf53f62c), + TOBN(0x4ed71457, 0x6be5f7de), TOBN(0xd93006f8, 0xc2263c9e), + TOBN(0xe073694c, 0xcacacb36), TOBN(0x2ff7a5b4, 0x3ae118ab), + TOBN(0x3cce53f1, 0xcd871236), TOBN(0xf156a39d, 0xc2aa6d52), + TOBN(0x9cc5f271, 0xb198d76d), TOBN(0xbc615b6f, 0x81383d39), + TOBN(0xa54538e8, 0xde3eee6b), TOBN(0x58c77538, 0xab910d91), + TOBN(0x31e5bdbc, 0x58d278bd), TOBN(0x3cde4adf, 0xb963acae), + TOBN(0xb1881fd2, 0x5302169c), TOBN(0x8ca60fa0, 0xa989ed8b), + TOBN(0xa1999458, 0xff96a0ee), TOBN(0xc1141f03, 0xac6c283d), + TOBN(0x7677408d, 0x6dfafed3), TOBN(0x33a01653, 0x39661588), + TOBN(0x3c9c15ec, 0x0b726fa0), TOBN(0x090cfd93, 0x6c9b56da), + TOBN(0xe34f4bae, 0xa3c40af5), TOBN(0x3469eadb, 0xd21129f1), + TOBN(0xcc51674a, 0x1e207ce8), TOBN(0x1e293b24, 0xc83b1ef9), + TOBN(0x17173d13, 0x1e6c0bb4), TOBN(0x19004695, 0x90776d35), + TOBN(0xe7980e34, 0x6de6f922), TOBN(0x873554cb, 0xf4dd9a22), + TOBN(0x0316c627, 0xcbf18a51), TOBN(0x4d93651b, 0x3032c081), + TOBN(0x207f2771, 0x3946834d), TOBN(0x2c08d7b4, 0x30cdbf80), + TOBN(0x137a4fb4, 0x86df2a61), TOBN(0xa1ed9c07, 0xecf7b4a2), + TOBN(0xb2e460e2, 0x7bd042ff), TOBN(0xb7f5e2fa, 0x5f62f5ec), + TOBN(0x7aa6ec6b, 0xcc2423b7), TOBN(0x75ce0a7f, 0xba63eea7), + TOBN(0x67a45fb1, 0xf250a6e1), TOBN(0x93bc919c, 0xe53cdc9f), + TOBN(0x9271f56f, 0x871942df), TOBN(0x2372ff6f, 0x7859ad66), + TOBN(0x5f4c2b96, 0x33cb1a78), TOBN(0xe3e29101, 0x5838aa83), + TOBN(0xa7ed1611, 0xe4e8110c), TOBN(0x2a2d70d5, 0x330198ce), + TOBN(0xbdf132e8, 0x6720efe0), TOBN(0xe61a8962, 0x66a471bf), + TOBN(0x796d3a85, 0x825808bd), TOBN(0x51dc3cb7, 0x3fd6e902), + TOBN(0x643c768a, 0x916219d1), TOBN(0x36cd7685, 0xa2ad7d32), + TOBN(0xe3db9d05, 0xb22922a4), TOBN(0x6494c87e, 0xdba29660), + TOBN(0xf0ac91df, 0xbcd2ebc7), TOBN(0x4deb57a0, 0x45107f8d), + TOBN(0x42271f59, 0xc3d12a73), TOBN(0x5f71687c, 0xa5c2c51d), + TOBN(0xcb1f50c6, 0x05797bcb), TOBN(0x29ed0ed9, 0xd6d34eb0), + TOBN(0xe5fe5b47, 0x4683c2eb), TOBN(0x4956eeb5, 0x97447c46), + TOBN(0x5b163a43, 0x71207167), TOBN(0x93fa2fed, 0x0248c5ef), + TOBN(0x67930af2, 0x31f63950), TOBN(0xa77797c1, 0x14caa2c9), + TOBN(0x526e80ee, 0x27ac7e62), TOBN(0xe1e6e626, 0x58b28aec), + TOBN(0x636178b0, 0xb3c9fef0), TOBN(0xaf7752e0, 0x6d5f90be), + TOBN(0x94ecaf18, 0xeece51cf), TOBN(0x2864d0ed, 0xca806e1f), + TOBN(0x6de2e383, 0x97c69134), TOBN(0x5a42c316, 0xeb291293), + TOBN(0xc7779219, 0x6a60bae0), TOBN(0xa24de346, 0x6b7599d1), + TOBN(0x49d374aa, 0xb75d4941), TOBN(0x98900586, 0x2d501ff0), + TOBN(0x9f16d40e, 0xeb7974cf), TOBN(0x1033860b, 0xcdd8c115), + TOBN(0xb6c69ac8, 0x2094cec3), TOBN(0x9976fb88, 0x403b770c), + TOBN(0x1dea026c, 0x4859590d), TOBN(0xb6acbb46, 0x8562d1fd), + TOBN(0x7cd6c461, 0x44569d85), TOBN(0xc3190a36, 0x97f0891d), + TOBN(0xc6f53195, 0x48d5a17d), TOBN(0x7d919966, 0xd749abc8), + TOBN(0x65104837, 0xdd1c8a20), TOBN(0x7e5410c8, 0x2f683419), + TOBN(0x958c3ca8, 0xbe94022e), TOBN(0x605c3197, 0x6145dac2), + TOBN(0x3fc07501, 0x01683d54), TOBN(0x1d7127c5, 0x595b1234), + TOBN(0x10b8f87c, 0x9481277f), TOBN(0x677db2a8, 0xe65a1adb), + TOBN(0xec2fccaa, 0xddce3345), TOBN(0x2a6811b7, 0x012a4350), + TOBN(0x96760ff1, 0xac598bdc), TOBN(0x054d652a, 0xd1bf4128), + TOBN(0x0a1151d4, 0x92a21005), TOBN(0xad7f3971, 0x33110fdf), + TOBN(0x8c95928c, 0x1960100f), TOBN(0x6c91c825, 0x7bf03362), + TOBN(0xc8c8b2a2, 0xce309f06), TOBN(0xfdb27b59, 0xca27204b), + TOBN(0xd223eaa5, 0x0848e32e), TOBN(0xb93e4b2e, 0xe7bfaf1e), + TOBN(0xc5308ae6, 0x44aa3ded), TOBN(0x317a666a, 0xc015d573), + TOBN(0xc888ce23, 0x1a979707), TOBN(0xf141c1e6, 0x0d5c4958), + TOBN(0xb53b7de5, 0x61906373), TOBN(0x858dbade, 0xeb999595), + TOBN(0x8cbb47b2, 0xa59e5c36), TOBN(0x660318b3, 0xdcf4e842), + TOBN(0xbd161ccd, 0x12ba4b7a), TOBN(0xf399daab, 0xf8c8282a), + TOBN(0x1587633a, 0xeeb2130d), TOBN(0xa465311a, 0xda38dd7d), + TOBN(0x5f75eec8, 0x64d3779b), TOBN(0x3c5d0476, 0xad64c171), + TOBN(0x87410371, 0x2a914428), TOBN(0x8096a891, 0x90e2fc29), + TOBN(0xd3d2ae9d, 0x23b3ebc2), TOBN(0x90bdd6db, 0xa580cfd6), + TOBN(0x52dbb7f3, 0xc5b01f6c), TOBN(0xe68eded4, 0xe102a2dc), + TOBN(0x17785b77, 0x99eb6df0), TOBN(0x26c3cc51, 0x7386b779), + TOBN(0x345ed988, 0x6417a48e), TOBN(0xe990b4e4, 0x07d6ef31), + TOBN(0x0f456b7e, 0x2586abba), TOBN(0x239ca6a5, 0x59c96e9a), + TOBN(0xe327459c, 0xe2eb4206), TOBN(0x3a4c3313, 0xa002b90a), + TOBN(0x2a114806, 0xf6a3f6fb), TOBN(0xad5cad2f, 0x85c251dd), + TOBN(0x92c1f613, 0xf5a784d3), TOBN(0xec7bfacf, 0x349766d5), + TOBN(0x04b3cd33, 0x3e23cb3b), TOBN(0x3979fe84, 0xc5a64b2d), + TOBN(0x192e2720, 0x7e589106), TOBN(0xa60c43d1, 0xa15b527f), + TOBN(0x2dae9082, 0xbe7cf3a6), TOBN(0xcc86ba92, 0xbc967274), + TOBN(0xf28a2ce8, 0xaea0a8a9), TOBN(0x404ca6d9, 0x6ee988b3), + TOBN(0xfd7e9c5d, 0x005921b8), TOBN(0xf56297f1, 0x44e79bf9), + TOBN(0xa163b460, 0x0d75ddc2), TOBN(0x30b23616, 0xa1f2be87), + TOBN(0x4b070d21, 0xbfe50e2b), TOBN(0x7ef8cfd0, 0xe1bfede1), + TOBN(0xadba0011, 0x2aac4ae0), TOBN(0x2a3e7d01, 0xb9ebd033), + TOBN(0x995277ec, 0xe38d9d1c), TOBN(0xb500249e, 0x9c5d2de3), + TOBN(0x8912b820, 0xf13ca8c9), TOBN(0xc8798114, 0x877793af), + TOBN(0x19e6125d, 0xec3f1dec), TOBN(0x07b1f040, 0x911178da), + TOBN(0xd93ededa, 0x904a6738), TOBN(0x55187a5a, 0x0bebedcd), + TOBN(0xf7d04722, 0xeb329d41), TOBN(0xf449099e, 0xf170b391), + TOBN(0xfd317a69, 0xca99f828), TOBN(0x50c3db2b, 0x34a4976d), + TOBN(0xe9ba7784, 0x3757b392), TOBN(0x326caefd, 0xaa3ca05a), + TOBN(0x78e5293b, 0xf1e593d4), TOBN(0x7842a937, 0x0d98fd13), + TOBN(0xe694bf96, 0x5f96b10d), TOBN(0x373a9df6, 0x06a8cd05), + TOBN(0x997d1e51, 0xe8f0c7fc), TOBN(0x1d019790, 0x63fd972e), + TOBN(0x0064d858, 0x5499fb32), TOBN(0x7b67bad9, 0x77a8aeb7), + TOBN(0x1d3eb977, 0x2d08eec5), TOBN(0x5fc047a6, 0xcbabae1d), + TOBN(0x0577d159, 0xe54a64bb), TOBN(0x8862201b, 0xc43497e4), + TOBN(0xad6b4e28, 0x2ce0608d), TOBN(0x8b687b7d, 0x0b167aac), + TOBN(0x6ed4d367, 0x8b2ecfa9), TOBN(0x24dfe62d, 0xa90c3c38), + TOBN(0xa1862e10, 0x3fe5c42b), TOBN(0x1ca73dca, 0xd5732a9f), + TOBN(0x35f038b7, 0x76bb87ad), TOBN(0x674976ab, 0xf242b81f), + TOBN(0x4f2bde7e, 0xb0fd90cd), TOBN(0x6efc172e, 0xa7fdf092), + TOBN(0x3806b69b, 0x92222f1f), TOBN(0x5a2459ca, 0x6cf7ae70), + TOBN(0x6789f69c, 0xa85217ee), TOBN(0x5f232b5e, 0xe3dc85ac), + TOBN(0x660e3ec5, 0x48e9e516), TOBN(0x124b4e47, 0x3197eb31), + TOBN(0x10a0cb13, 0xaafcca23), TOBN(0x7bd63ba4, 0x8213224f), + TOBN(0xaffad7cc, 0x290a7f4f), TOBN(0x6b409c9e, 0x0286b461), + TOBN(0x58ab809f, 0xffa407af), TOBN(0xc3122eed, 0xc68ac073), + TOBN(0x17bf9e50, 0x4ef24d7e), TOBN(0x5d929794, 0x3e2a5811), + TOBN(0x519bc867, 0x02902e01), TOBN(0x76bba5da, 0x39c8a851), + TOBN(0xe9f9669c, 0xda94951e), TOBN(0x4b6af58d, 0x66b8d418), + TOBN(0xfa321074, 0x17d426a4), TOBN(0xc78e66a9, 0x9dde6027), + TOBN(0x0516c083, 0x4a53b964), TOBN(0xfc659d38, 0xff602330), + TOBN(0x0ab55e5c, 0x58c5c897), TOBN(0x985099b2, 0x838bc5df), + TOBN(0x061d9efc, 0xc52fc238), TOBN(0x712b2728, 0x6ac1da3f), + TOBN(0xfb658149, 0x9283fe08), TOBN(0x4954ac94, 0xb8aaa2f7), + TOBN(0x85c0ada4, 0x7fb2e74f), TOBN(0xee8ba98e, 0xb89926b0), + TOBN(0xe4f9d37d, 0x23d1af5b), TOBN(0x14ccdbf9, 0xba9b015e), + TOBN(0xb674481b, 0x7bfe7178), TOBN(0x4e1debae, 0x65405868), + TOBN(0x061b2821, 0xc48c867d), TOBN(0x69c15b35, 0x513b30ea), + TOBN(0x3b4a1666, 0x36871088), TOBN(0xe5e29f5d, 0x1220b1ff), + TOBN(0x4b82bb35, 0x233d9f4d), TOBN(0x4e076333, 0x18cdc675)} + , + {TOBN(0x0d53f5c7, 0xa3e6fced), TOBN(0xe8cbbdd5, 0xf45fbdeb), + TOBN(0xf85c01df, 0x13339a70), TOBN(0x0ff71880, 0x142ceb81), + TOBN(0x4c4e8774, 0xbd70437a), TOBN(0x5fb32891, 0xba0bda6a), + TOBN(0x1cdbebd2, 0xf18bd26e), TOBN(0x2f9526f1, 0x03a9d522), + TOBN(0x40ce3051, 0x92c4d684), TOBN(0x8b04d725, 0x7612efcd), + TOBN(0xb9dcda36, 0x6f9cae20), TOBN(0x0edc4d24, 0xf058856c), + TOBN(0x64f2e6bf, 0x85427900), TOBN(0x3de81295, 0xdc09dfea), + TOBN(0xd41b4487, 0x379bf26c), TOBN(0x50b62c6d, 0x6df135a9), + TOBN(0xd4f8e3b4, 0xc72dfe67), TOBN(0xc416b0f6, 0x90e19fdf), + TOBN(0x18b9098d, 0x4c13bd35), TOBN(0xac11118a, 0x15b8cb9e), + TOBN(0xf598a318, 0xf0062841), TOBN(0xbfe0602f, 0x89f356f4), + TOBN(0x7ae3637e, 0x30177a0c), TOBN(0x34097747, 0x61136537), + TOBN(0x0db2fb5e, 0xd005832a), TOBN(0x5f5efd3b, 0x91042e4f), + TOBN(0x8c4ffdc6, 0xed70f8ca), TOBN(0xe4645d0b, 0xb52da9cc), + TOBN(0x9596f58b, 0xc9001d1f), TOBN(0x52c8f0bc, 0x4e117205), + TOBN(0xfd4aa0d2, 0xe398a084), TOBN(0x815bfe3a, 0x104f49de), + TOBN(0x97e5443f, 0x23885e5f), TOBN(0xf72f8f99, 0xe8433aab), + TOBN(0xbd00b154, 0xe4d4e604), TOBN(0xd0b35e6a, 0xe5e173ff), + TOBN(0x57b2a048, 0x9164722d), TOBN(0x3e3c665b, 0x88761ec8), + TOBN(0x6bdd1397, 0x3da83832), TOBN(0x3c8b1a1e, 0x73dafe3b), + TOBN(0x4497ace6, 0x54317cac), TOBN(0xbe600ab9, 0x521771b3), + TOBN(0xb42e409e, 0xb0dfe8b8), TOBN(0x386a67d7, 0x3942310f), + TOBN(0x25548d8d, 0x4431cc28), TOBN(0xa7cff142, 0x985dc524), + TOBN(0x4d60f5a1, 0x93c4be32), TOBN(0x83ebd5c8, 0xd071c6e1), + TOBN(0xba3a80a7, 0xb1fd2b0b), TOBN(0x9b3ad396, 0x5bec33e8), + TOBN(0xb3868d61, 0x79743fb3), TOBN(0xcfd169fc, 0xfdb462fa), + TOBN(0xd3b499d7, 0x9ce0a6af), TOBN(0x55dc1cf1, 0xe42d3ff8), + TOBN(0x04fb9e6c, 0xc6c3e1b2), TOBN(0x47e6961d, 0x6f69a474), + TOBN(0x54eb3acc, 0xe548b37b), TOBN(0xb38e7542, 0x84d40549), + TOBN(0x8c3daa51, 0x7b341b4f), TOBN(0x2f6928ec, 0x690bf7fa), + TOBN(0x0496b323, 0x86ce6c41), TOBN(0x01be1c55, 0x10adadcd), + TOBN(0xc04e67e7, 0x4bb5faf9), TOBN(0x3cbaf678, 0xe15c9985), + TOBN(0x8cd12145, 0x50ca4247), TOBN(0xba1aa47a, 0xe7dd30aa), + TOBN(0x2f81ddf1, 0xe58fee24), TOBN(0x03452936, 0xeec9b0e8), + TOBN(0x8bdc3b81, 0x243aea96), TOBN(0x9a2919af, 0x15c3d0e5), + TOBN(0x9ea640ec, 0x10948361), TOBN(0x5ac86d5b, 0x6e0bcccf), + TOBN(0xf892d918, 0xc36cf440), TOBN(0xaed3e837, 0xc939719c), + TOBN(0xb07b08d2, 0xc0218b64), TOBN(0x6f1bcbba, 0xce9790dd), + TOBN(0x4a84d6ed, 0x60919b8e), TOBN(0xd8900791, 0x8ac1f9eb), + TOBN(0xf84941aa, 0x0dd5daef), TOBN(0xb22fe40a, 0x67fd62c5), + TOBN(0x97e15ba2, 0x157f2db3), TOBN(0xbda2fc8f, 0x8e28ca9c), + TOBN(0x5d050da4, 0x37b9f454), TOBN(0x3d57eb57, 0x2379d72e), + TOBN(0xe9b5eba2, 0xfb5ee997), TOBN(0x01648ca2, 0xe11538ca), + TOBN(0x32bb76f6, 0xf6327974), TOBN(0x338f14b8, 0xff3f4bb7), + TOBN(0x524d226a, 0xd7ab9a2d), TOBN(0x9c00090d, 0x7dfae958), + TOBN(0x0ba5f539, 0x8751d8c2), TOBN(0x8afcbcdd, 0x3ab8262d), + TOBN(0x57392729, 0xe99d043b), TOBN(0xef51263b, 0xaebc943a), + TOBN(0x9feace93, 0x20862935), TOBN(0x639efc03, 0xb06c817b), + TOBN(0x1fe054b3, 0x66b4be7a), TOBN(0x3f25a9de, 0x84a37a1e), + TOBN(0xf39ef1ad, 0x78d75cd9), TOBN(0xd7b58f49, 0x5062c1b5), + TOBN(0x6f74f9a9, 0xff563436), TOBN(0xf718ff29, 0xe8af51e7), + TOBN(0x5234d313, 0x15e97fec), TOBN(0xb6a8e2b1, 0x292f1c0a), + TOBN(0xa7f53aa8, 0x327720c1), TOBN(0x956ca322, 0xba092cc8), + TOBN(0x8f03d64a, 0x28746c4d), TOBN(0x51fe1782, 0x66d0d392), + TOBN(0xd19b34db, 0x3c832c80), TOBN(0x60dccc5c, 0x6da2e3b4), + TOBN(0x245dd62e, 0x0a104ccc), TOBN(0xa7ab1de1, 0x620b21fd), + TOBN(0xb293ae0b, 0x3893d123), TOBN(0xf7b75783, 0xb15ee71c), + TOBN(0x5aa3c614, 0x42a9468b), TOBN(0xd686123c, 0xdb15d744), + TOBN(0x8c616891, 0xa7ab4116), TOBN(0x6fcd72c8, 0xa4e6a459), + TOBN(0xac219110, 0x77e5fad7), TOBN(0xfb6a20e7, 0x704fa46b), + TOBN(0xe839be7d, 0x341d81dc), TOBN(0xcddb6889, 0x32148379), + TOBN(0xda6211a1, 0xf7026ead), TOBN(0xf3b2575f, 0xf4d1cc5e), + TOBN(0x40cfc8f6, 0xa7a73ae6), TOBN(0x83879a5e, 0x61d5b483), + TOBN(0xc5acb1ed, 0x41a50ebc), TOBN(0x59a60cc8, 0x3c07d8fa), + TOBN(0x1b73bdce, 0xb1876262), TOBN(0x2b0d79f0, 0x12af4ee9), + TOBN(0x8bcf3b0b, 0xd46e1d07), TOBN(0x17d6af9d, 0xe45d152f), + TOBN(0x73520461, 0x6d736451), TOBN(0x43cbbd97, 0x56b0bf5a), + TOBN(0xb0833a5b, 0xd5999b9d), TOBN(0x702614f0, 0xeb72e398), + TOBN(0x0aadf01a, 0x59c3e9f8), TOBN(0x40200e77, 0xce6b3d16), + TOBN(0xda22bdd3, 0xdeddafad), TOBN(0x76dedaf4, 0x310d72e1), + TOBN(0x49ef807c, 0x4bc2e88f), TOBN(0x6ba81291, 0x146dd5a5), + TOBN(0xa1a4077a, 0x7d8d59e9), TOBN(0x87b6a2e7, 0x802db349), + TOBN(0xd5679997, 0x1b4e598e), TOBN(0xf499ef1f, 0x06fe4b1d), + TOBN(0x3978d3ae, 0xfcb267c5), TOBN(0xb582b557, 0x235786d0), + TOBN(0x32b3b2ca, 0x1715cb07), TOBN(0x4c3de6a2, 0x8480241d), + TOBN(0x63b5ffed, 0xcb571ecd), TOBN(0xeaf53900, 0xed2fe9a9), + TOBN(0xdec98d4a, 0xc3b81990), TOBN(0x1cb83722, 0x9e0cc8fe), + TOBN(0xfe0b0491, 0xd2b427b9), TOBN(0x0f2386ac, 0xe983a66c), + TOBN(0x930c4d1e, 0xb3291213), TOBN(0xa2f82b2e, 0x59a62ae4), + TOBN(0x77233853, 0xf93e89e3), TOBN(0x7f8063ac, 0x11777c7f), + TOBN(0xff0eb567, 0x59ad2877), TOBN(0x6f454642, 0x9865c754), + TOBN(0xe6fe701a, 0x236e9a84), TOBN(0xc586ef16, 0x06e40fc3), + TOBN(0x3f62b6e0, 0x24bafad9), TOBN(0xc8b42bd2, 0x64da906a), + TOBN(0xc98e1eb4, 0xda3276a0), TOBN(0x30d0e5fc, 0x06cbf852), + TOBN(0x1b6b2ae1, 0xe8b4dfd4), TOBN(0xd754d5c7, 0x8301cbac), + TOBN(0x66097629, 0x112a39ac), TOBN(0xf86b5999, 0x93ba4ab9), + TOBN(0x26c9dea7, 0x99f9d581), TOBN(0x0473b1a8, 0xc2fafeaa), + TOBN(0x1469af55, 0x3b2505a5), TOBN(0x227d16d7, 0xd6a43323), + TOBN(0x3316f73c, 0xad3d97f9), TOBN(0x52bf3bb5, 0x1f137455), + TOBN(0x953eafeb, 0x09954e7c), TOBN(0xa721dfed, 0xdd732411), + TOBN(0xb4929821, 0x141d4579), TOBN(0x3411321c, 0xaa3bd435), + TOBN(0xafb355aa, 0x17fa6015), TOBN(0xb4e7ef4a, 0x18e42f0e), + TOBN(0x604ac97c, 0x59371000), TOBN(0xe1c48c70, 0x7f759c18), + TOBN(0x3f62ecc5, 0xa5db6b65), TOBN(0x0a78b173, 0x38a21495), + TOBN(0x6be1819d, 0xbcc8ad94), TOBN(0x70dc04f6, 0xd89c3400), + TOBN(0x462557b4, 0xa6b4840a), TOBN(0x544c6ade, 0x60bd21c0), + TOBN(0x6a00f24e, 0x907a544b), TOBN(0xa7520dcb, 0x313da210), + TOBN(0xfe939b75, 0x11e4994b), TOBN(0x918b6ba6, 0xbc275d70), + TOBN(0xd3e5e0fc, 0x644be892), TOBN(0x707a9816, 0xfdaf6c42), + TOBN(0x60145567, 0xf15c13fe), TOBN(0x4818ebaa, 0xe130a54a), + TOBN(0x28aad3ad, 0x58d2f767), TOBN(0xdc5267fd, 0xd7e7c773), + TOBN(0x4919cc88, 0xc3afcc98), TOBN(0xaa2e6ab0, 0x2db8cd4b), + TOBN(0xd46fec04, 0xd0c63eaa), TOBN(0xa1cb92c5, 0x19ffa832), + TOBN(0x678dd178, 0xe43a631f), TOBN(0xfb5ae1cd, 0x3dc788b3), + TOBN(0x68b4fb90, 0x6e77de04), TOBN(0x7992bcf0, 0xf06dbb97), + TOBN(0x896e6a13, 0xc417c01d), TOBN(0x8d96332c, 0xb956be01), + TOBN(0x902fc93a, 0x413aa2b9), TOBN(0x99a4d915, 0xfc98c8a5), + TOBN(0x52c29407, 0x565f1137), TOBN(0x4072690f, 0x21e4f281), + TOBN(0x36e607cf, 0x02ff6072), TOBN(0xa47d2ca9, 0x8ad98cdc), + TOBN(0xbf471d1e, 0xf5f56609), TOBN(0xbcf86623, 0xf264ada0), + TOBN(0xb70c0687, 0xaa9e5cb6), TOBN(0xc98124f2, 0x17401c6c), + TOBN(0x8189635f, 0xd4a61435), TOBN(0xd28fb8af, 0xa9d98ea6), + TOBN(0xb9a67c2a, 0x40c251f8), TOBN(0x88cd5d87, 0xa2da44be), + TOBN(0x437deb96, 0xe09b5423), TOBN(0x150467db, 0x64287dc1), + TOBN(0xe161debb, 0xcdabb839), TOBN(0xa79e9742, 0xf1839a3e), + TOBN(0xbb8dd3c2, 0x652d202b), TOBN(0x7b3e67f7, 0xe9f97d96), + TOBN(0x5aa5d78f, 0xb1cb6ac9), TOBN(0xffa13e8e, 0xca1d0d45), + TOBN(0x369295dd, 0x2ba5bf95), TOBN(0xd68bd1f8, 0x39aff05e), + TOBN(0xaf0d86f9, 0x26d783f2), TOBN(0x543a59b3, 0xfc3aafc1), + TOBN(0x3fcf81d2, 0x7b7da97c), TOBN(0xc990a056, 0xd25dee46), + TOBN(0x3e6775b8, 0x519cce2c), TOBN(0xfc9af71f, 0xae13d863), + TOBN(0x774a4a6f, 0x47c1605c), TOBN(0x46ba4245, 0x2fd205e8), + TOBN(0xa06feea4, 0xd3fd524d), TOBN(0x1e724641, 0x6de1acc2), + TOBN(0xf53816f1, 0x334e2b42), TOBN(0x49e5918e, 0x922f0024), + TOBN(0x439530b6, 0x65c7322d), TOBN(0xcf12cc01, 0xb3c1b3fb), + TOBN(0xc70b0186, 0x0172f685), TOBN(0xb915ee22, 0x1b58391d), + TOBN(0x9afdf03b, 0xa317db24), TOBN(0x87dec659, 0x17b8ffc4), + TOBN(0x7f46597b, 0xe4d3d050), TOBN(0x80a1c1ed, 0x006500e7), + TOBN(0x84902a96, 0x78bf030e), TOBN(0xfb5e9c9a, 0x50560148), + TOBN(0x6dae0a92, 0x63362426), TOBN(0xdcaeecf4, 0xa9e30c40), + TOBN(0xc0d887bb, 0x518d0c6b), TOBN(0x99181152, 0xcb985b9d), + TOBN(0xad186898, 0xef7bc381), TOBN(0x18168ffb, 0x9ee46201), + TOBN(0x9a04cdaa, 0x2502753c), TOBN(0xbb279e26, 0x51407c41), + TOBN(0xeacb03aa, 0xf23564e5), TOBN(0x18336582, 0x71e61016), + TOBN(0x8684b8c4, 0xeb809877), TOBN(0xb336e18d, 0xea0e672e), + TOBN(0xefb601f0, 0x34ee5867), TOBN(0x2733edbe, 0x1341cfd1), + TOBN(0xb15e809a, 0x26025c3c), TOBN(0xe6e981a6, 0x9350df88), + TOBN(0x92376237, 0x8502fd8e), TOBN(0x4791f216, 0x0c12be9b), + TOBN(0xb7256789, 0x25f02425), TOBN(0xec863194, 0x7a974443), + TOBN(0x7c0ce882, 0xfb41cc52), TOBN(0xc266ff7e, 0xf25c07f2), + TOBN(0x3d4da8c3, 0x017025f3), TOBN(0xefcf628c, 0xfb9579b4), + TOBN(0x5c4d0016, 0x1f3716ec), TOBN(0x9c27ebc4, 0x6801116e), + TOBN(0x5eba0ea1, 0x1da1767e), TOBN(0xfe151452, 0x47004c57), + TOBN(0x3ace6df6, 0x8c2373b7), TOBN(0x75c3dffe, 0x5dbc37ac), + TOBN(0x3dc32a73, 0xddc925fc), TOBN(0xb679c841, 0x2f65ee0b), + TOBN(0x715a3295, 0x451cbfeb), TOBN(0xd9889768, 0xf76e9a29), + TOBN(0xec20ce7f, 0xb28ad247), TOBN(0xe99146c4, 0x00894d79), + TOBN(0x71457d7c, 0x9f5e3ea7), TOBN(0x097b2662, 0x38030031), + TOBN(0xdb7f6ae6, 0xcf9f82a8), TOBN(0x319decb9, 0x438f473a), + TOBN(0xa63ab386, 0x283856c3), TOBN(0x13e3172f, 0xb06a361b), + TOBN(0x2959f8dc, 0x7d5a006c), TOBN(0x2dbc27c6, 0x75fba752), + TOBN(0xc1227ab2, 0x87c22c9e), TOBN(0x06f61f75, 0x71a268b2), + TOBN(0x1b6bb971, 0x04779ce2), TOBN(0xaca83812, 0x0aadcb1d), + TOBN(0x297ae0bc, 0xaeaab2d5), TOBN(0xa5c14ee7, 0x5bfb9f13), + TOBN(0xaa00c583, 0xf17a62c7), TOBN(0x39eb962c, 0x173759f6), + TOBN(0x1eeba1d4, 0x86c9a88f), TOBN(0x0ab6c37a, 0xdf016c5e), + TOBN(0xa2a147db, 0xa28a0749), TOBN(0x246c20d6, 0xee519165), + TOBN(0x5068d1b1, 0xd3810715), TOBN(0xb1e7018c, 0x748160b9), + TOBN(0x03f5b1fa, 0xf380ff62), TOBN(0xef7fb1dd, 0xf3cb2c1e), + TOBN(0xeab539a8, 0xfc91a7da), TOBN(0x83ddb707, 0xf3f9b561), + TOBN(0xc550e211, 0xfe7df7a4), TOBN(0xa7cd07f2, 0x063f6f40), + TOBN(0xb0de3635, 0x2976879c), TOBN(0xb5f83f85, 0xe55741da), + TOBN(0x4ea9d25e, 0xf3d8ac3d), TOBN(0x6fe2066f, 0x62819f02), + TOBN(0x4ab2b9c2, 0xcef4a564), TOBN(0x1e155d96, 0x5ffa2de3), + TOBN(0x0eb0a19b, 0xc3a72d00), TOBN(0x4037665b, 0x8513c31b), + TOBN(0x2fb2b6bf, 0x04c64637), TOBN(0x45c34d6e, 0x08cdc639), + TOBN(0x56f1e10f, 0xf01fd796), TOBN(0x4dfb8101, 0xfe3667b8), + TOBN(0xe0eda253, 0x9021d0c0), TOBN(0x7a94e9ff, 0x8a06c6ab), + TOBN(0x2d3bb0d9, 0xbb9aa882), TOBN(0xea20e4e5, 0xec05fd10), + TOBN(0xed7eeb5f, 0x1a1ca64e), TOBN(0x2fa6b43c, 0xc6327cbd), + TOBN(0xb577e3cf, 0x3aa91121), TOBN(0x8c6bd5ea, 0x3a34079b), + TOBN(0xd7e5ba39, 0x60e02fc0), TOBN(0xf16dd2c3, 0x90141bf8), + TOBN(0xb57276d9, 0x80101b98), TOBN(0x760883fd, 0xb82f0f66), + TOBN(0x89d7de75, 0x4bc3eff3), TOBN(0x03b60643, 0x5dc2ab40), + TOBN(0xcd6e53df, 0xe05beeac), TOBN(0xf2f1e862, 0xbc3325cd), + TOBN(0xdd0f7921, 0x774f03c3), TOBN(0x97ca7221, 0x4552cc1b), + TOBN(0x5a0d6afe, 0x1cd19f72), TOBN(0xa20915dc, 0xf183fbeb), + TOBN(0x9fda4b40, 0x832c403c), TOBN(0x32738edd, 0xbe425442), + TOBN(0x469a1df6, 0xb5eccf1a), TOBN(0x4b5aff42, 0x28bbe1f0), + TOBN(0x31359d7f, 0x570dfc93), TOBN(0xa18be235, 0xf0088628), + TOBN(0xa5b30fba, 0xb00ed3a9), TOBN(0x34c61374, 0x73cdf8be), + TOBN(0x2c5c5f46, 0xabc56797), TOBN(0x5cecf93d, 0xb82a8ae2), + TOBN(0x7d3dbe41, 0xa968fbf0), TOBN(0xd23d4583, 0x1a5c7f3d), + TOBN(0xf28f69a0, 0xc087a9c7), TOBN(0xc2d75471, 0x474471ca), + TOBN(0x36ec9f4a, 0x4eb732ec), TOBN(0x6c943bbd, 0xb1ca6bed), + TOBN(0xd64535e1, 0xf2457892), TOBN(0x8b84a8ea, 0xf7e2ac06), + TOBN(0xe0936cd3, 0x2499dd5f), TOBN(0x12053d7e, 0x0ed04e57), + TOBN(0x4bdd0076, 0xe4305d9d), TOBN(0x34a527b9, 0x1f67f0a2), + TOBN(0xe79a4af0, 0x9cec46ea), TOBN(0xb15347a1, 0x658b9bc7), + TOBN(0x6bd2796f, 0x35af2f75), TOBN(0xac957990, 0x4051c435), + TOBN(0x2669dda3, 0xc33a655d), TOBN(0x5d503c2e, 0x88514aa3), + TOBN(0xdfa11337, 0x3753dd41), TOBN(0x3f054673, 0x0b754f78), + TOBN(0xbf185677, 0x496125bd), TOBN(0xfb0023c8, 0x3775006c), + TOBN(0xfa0f072f, 0x3a037899), TOBN(0x4222b6eb, 0x0e4aea57), + TOBN(0x3dde5e76, 0x7866d25a), TOBN(0xb6eb04f8, 0x4837aa6f), + TOBN(0x5315591a, 0x2cf1cdb8), TOBN(0x6dfb4f41, 0x2d4e683c), + TOBN(0x7e923ea4, 0x48ee1f3a), TOBN(0x9604d9f7, 0x05a2afd5), + TOBN(0xbe1d4a33, 0x40ea4948), TOBN(0x5b45f1f4, 0xb44cbd2f), + TOBN(0x5faf8376, 0x4acc757e), TOBN(0xa7cf9ab8, 0x63d68ff7), + TOBN(0x8ad62f69, 0xdf0e404b), TOBN(0xd65f33c2, 0x12bdafdf), + TOBN(0xc365de15, 0xa377b14e), TOBN(0x6bf5463b, 0x8e39f60c), + TOBN(0x62030d2d, 0x2ce68148), TOBN(0xd95867ef, 0xe6f843a8), + TOBN(0xd39a0244, 0xef5ab017), TOBN(0x0bd2d8c1, 0x4ab55d12), + TOBN(0xc9503db3, 0x41639169), TOBN(0x2d4e25b0, 0xf7660c8a), + TOBN(0x760cb3b5, 0xe224c5d7), TOBN(0xfa3baf8c, 0x68616919), + TOBN(0x9fbca113, 0x8d142552), TOBN(0x1ab18bf1, 0x7669ebf5), + TOBN(0x55e6f53e, 0x9bdf25dd), TOBN(0x04cc0bf3, 0xcb6cd154), + TOBN(0x595bef49, 0x95e89080), TOBN(0xfe9459a8, 0x104a9ac1), + TOBN(0xad2d89ca, 0xcce9bb32), TOBN(0xddea65e1, 0xf7de8285), + TOBN(0x62ed8c35, 0xb351bd4b), TOBN(0x4150ff36, 0x0c0e19a7), + TOBN(0x86e3c801, 0x345f4e47), TOBN(0x3bf21f71, 0x203a266c), + TOBN(0x7ae110d4, 0x855b1f13), TOBN(0x5d6aaf6a, 0x07262517), + TOBN(0x1e0f12e1, 0x813d28f1), TOBN(0x6000e11d, 0x7ad7a523), + TOBN(0xc7d8deef, 0xc744a17b), TOBN(0x1e990b48, 0x14c05a00), + TOBN(0x68fddaee, 0x93e976d5), TOBN(0x696241d1, 0x46610d63), + TOBN(0xb204e7c3, 0x893dda88), TOBN(0x8bccfa65, 0x6a3a6946), + TOBN(0xb59425b4, 0xc5cd1411), TOBN(0x701b4042, 0xff3658b1), + TOBN(0xe3e56bca, 0x4784cf93), TOBN(0x27de5f15, 0x8fe68d60), + TOBN(0x4ab9cfce, 0xf8d53f19), TOBN(0xddb10311, 0xa40a730d), + TOBN(0x6fa73cd1, 0x4eee0a8a), TOBN(0xfd548748, 0x5249719d), + TOBN(0x49d66316, 0xa8123ef0), TOBN(0x73c32db4, 0xe7f95438), + TOBN(0x2e2ed209, 0x0d9e7854), TOBN(0xf98a9329, 0x9d9f0507), + TOBN(0xc5d33cf6, 0x0c6aa20a), TOBN(0x9a32ba14, 0x75279bb2), + TOBN(0x7e3202cb, 0x774a7307), TOBN(0x64ed4bc4, 0xe8c42dbd), + TOBN(0xc20f1a06, 0xd4caed0d), TOBN(0xb8021407, 0x171d22b3), + TOBN(0xd426ca04, 0xd13268d7), TOBN(0x92377007, 0x25f4d126), + TOBN(0x4204cbc3, 0x71f21a85), TOBN(0x18461b7a, 0xf82369ba), + TOBN(0xc0c07d31, 0x3fc858f9), TOBN(0x5deb5a50, 0xe2bab569), + TOBN(0xd5959d46, 0xd5eea89e), TOBN(0xfdff8424, 0x08437f4b), + TOBN(0xf21071e4, 0x3cfe254f), TOBN(0x72417696, 0x95468321), + TOBN(0x5d8288b9, 0x102cae3e), TOBN(0x2d143e3d, 0xf1965dff), + TOBN(0x00c9a376, 0xa078d847), TOBN(0x6fc0da31, 0x26028731), + TOBN(0xa2baeadf, 0xe45083a2), TOBN(0x66bc7218, 0x5e5b4bcd), + TOBN(0x2c826442, 0xd04b8e7f), TOBN(0xc19f5451, 0x6c4b586b), + TOBN(0x60182c49, 0x5b7eeed5), TOBN(0xd9954ecd, 0x7aa9dfa1), + TOBN(0xa403a8ec, 0xc73884ad), TOBN(0x7fb17de2, 0x9bb39041), + TOBN(0x694b64c5, 0xabb020e8), TOBN(0x3d18c184, 0x19c4eec7), + TOBN(0x9c4673ef, 0x1c4793e5), TOBN(0xc7b8aeb5, 0x056092e6), + TOBN(0x3aa1ca43, 0xf0f8c16b), TOBN(0x224ed5ec, 0xd679b2f6), + TOBN(0x0d56eeaf, 0x55a205c9), TOBN(0xbfe115ba, 0x4b8e028b), + TOBN(0x97e60849, 0x3927f4fe), TOBN(0xf91fbf94, 0x759aa7c5), + TOBN(0x985af769, 0x6be90a51), TOBN(0xc1277b78, 0x78ccb823), + TOBN(0x395b656e, 0xe7a75952), TOBN(0x00df7de0, 0x928da5f5), + TOBN(0x09c23175, 0x4ca4454f), TOBN(0x4ec971f4, 0x7aa2d3c1), + TOBN(0x45c3c507, 0xe75d9ccc), TOBN(0x63b7be8a, 0x3dc90306), + TOBN(0x37e09c66, 0x5db44bdc), TOBN(0x50d60da1, 0x6841c6a2), + TOBN(0x6f9b65ee, 0x08df1b12), TOBN(0x38734879, 0x7ff089df), + TOBN(0x9c331a66, 0x3fe8013d), TOBN(0x017f5de9, 0x5f42fcc8), + TOBN(0x43077866, 0xe8e57567), TOBN(0xc9f781ce, 0xf9fcdb18), + TOBN(0x38131dda, 0x9b12e174), TOBN(0x25d84aa3, 0x8a03752a), + TOBN(0x45e09e09, 0x4d0c0ce2), TOBN(0x1564008b, 0x92bebba5), + TOBN(0xf7e8ad31, 0xa87284c7), TOBN(0xb7c4b46c, 0x97e7bbaa), + TOBN(0x3e22a7b3, 0x97acf4ec), TOBN(0x0426c400, 0x5ea8b640), + TOBN(0x5e3295a6, 0x4e969285), TOBN(0x22aabc59, 0xa6a45670), + TOBN(0xb929714c, 0x5f5942bc), TOBN(0x9a6168bd, 0xfa3182ed), + TOBN(0x2216a665, 0x104152ba), TOBN(0x46908d03, 0xb6926368)} + , + {TOBN(0xa9f5d874, 0x5a1251fb), TOBN(0x967747a8, 0xc72725c7), + TOBN(0x195c33e5, 0x31ffe89e), TOBN(0x609d210f, 0xe964935e), + TOBN(0xcafd6ca8, 0x2fe12227), TOBN(0xaf9b5b96, 0x0426469d), + TOBN(0x2e9ee04c, 0x5693183c), TOBN(0x1084a333, 0xc8146fef), + TOBN(0x96649933, 0xaed1d1f7), TOBN(0x566eaff3, 0x50563090), + TOBN(0x345057f0, 0xad2e39cf), TOBN(0x148ff65b, 0x1f832124), + TOBN(0x042e89d4, 0xcf94cf0d), TOBN(0x319bec84, 0x520c58b3), + TOBN(0x2a267626, 0x5361aa0d), TOBN(0xc86fa302, 0x8fbc87ad), + TOBN(0xfc83d2ab, 0x5c8b06d5), TOBN(0xb1a785a2, 0xfe4eac46), + TOBN(0xb99315bc, 0x846f7779), TOBN(0xcf31d816, 0xef9ea505), + TOBN(0x2391fe6a, 0x15d7dc85), TOBN(0x2f132b04, 0xb4016b33), + TOBN(0x29547fe3, 0x181cb4c7), TOBN(0xdb66d8a6, 0x650155a1), + TOBN(0x6b66d7e1, 0xadc1696f), TOBN(0x98ebe593, 0x0acd72d0), + TOBN(0x65f24550, 0xcc1b7435), TOBN(0xce231393, 0xb4b9a5ec), + TOBN(0x234a22d4, 0xdb067df9), TOBN(0x98dda095, 0xcaff9b00), + TOBN(0x1bbc75a0, 0x6100c9c1), TOBN(0x1560a9c8, 0x939cf695), + TOBN(0xcf006d3e, 0x99e0925f), TOBN(0x2dd74a96, 0x6322375a), + TOBN(0xc58b446a, 0xb56af5ba), TOBN(0x50292683, 0xe0b9b4f1), + TOBN(0xe2c34cb4, 0x1aeaffa3), TOBN(0x8b17203f, 0x9b9587c1), + TOBN(0x6d559207, 0xead1350c), TOBN(0x2b66a215, 0xfb7f9604), + TOBN(0x0850325e, 0xfe51bf74), TOBN(0x9c4f579e, 0x5e460094), + TOBN(0x5c87b92a, 0x76da2f25), TOBN(0x889de4e0, 0x6febef33), + TOBN(0x6900ec06, 0x646083ce), TOBN(0xbe2a0335, 0xbfe12773), + TOBN(0xadd1da35, 0xc5344110), TOBN(0x757568b7, 0xb802cd20), + TOBN(0x75559779, 0x00f7e6c8), TOBN(0x38e8b94f, 0x0facd2f0), + TOBN(0xfea1f3af, 0x03fde375), TOBN(0x5e11a1d8, 0x75881dfc), + TOBN(0xb3a6b02e, 0xc1e2f2ef), TOBN(0x193d2bbb, 0xc605a6c5), + TOBN(0x325ffeee, 0x339a0b2d), TOBN(0x27b6a724, 0x9e0c8846), + TOBN(0xe4050f1c, 0xf1c367ca), TOBN(0x9bc85a9b, 0xc90fbc7d), + TOBN(0xa373c4a2, 0xe1a11032), TOBN(0xb64232b7, 0xad0393a9), + TOBN(0xf5577eb0, 0x167dad29), TOBN(0x1604f301, 0x94b78ab2), + TOBN(0x0baa94af, 0xe829348b), TOBN(0x77fbd8dd, 0x41654342), + TOBN(0xdab50ea5, 0xb964e39a), TOBN(0xd4c29e3c, 0xd0d3c76e), + TOBN(0x80dae67c, 0x56d11964), TOBN(0x7307a8bf, 0xe5ffcc2f), + TOBN(0x65bbc1aa, 0x91708c3b), TOBN(0xa151e62c, 0x28bf0eeb), + TOBN(0x6cb53381, 0x6fa34db7), TOBN(0x5139e05c, 0xa29403a8), + TOBN(0x6ff651b4, 0x94a7cd2e), TOBN(0x5671ffd1, 0x0699336c), + TOBN(0x6f5fd2cc, 0x979a896a), TOBN(0x11e893a8, 0xd8148cef), + TOBN(0x988906a1, 0x65cf7b10), TOBN(0x81b67178, 0xc50d8485), + TOBN(0x7c0deb35, 0x8a35b3de), TOBN(0x423ac855, 0xc1d29799), + TOBN(0xaf580d87, 0xdac50b74), TOBN(0x28b2b89f, 0x5869734c), + TOBN(0x99a3b936, 0x874e28fb), TOBN(0xbb2c9190, 0x25f3f73a), + TOBN(0x199f6918, 0x84a9d5b7), TOBN(0x7ebe2325, 0x7e770374), + TOBN(0xf442e107, 0x0738efe2), TOBN(0xcf9f3f56, 0xcf9082d2), + TOBN(0x719f69e1, 0x09618708), TOBN(0xcc9e8364, 0xc183f9b1), + TOBN(0xec203a95, 0x366a21af), TOBN(0x6aec5d6d, 0x068b141f), + TOBN(0xee2df78a, 0x994f04e9), TOBN(0xb39ccae8, 0x271245b0), + TOBN(0xb875a4a9, 0x97e43f4f), TOBN(0x507dfe11, 0xdb2cea98), + TOBN(0x4fbf81cb, 0x489b03e9), TOBN(0xdb86ec5b, 0x6ec414fa), + TOBN(0xfad444f9, 0xf51b3ae5), TOBN(0xca7d33d6, 0x1914e3fe), + TOBN(0xa9c32f5c, 0x0ae6c4d0), TOBN(0xa9ca1d1e, 0x73969568), + TOBN(0x98043c31, 0x1aa7467e), TOBN(0xe832e75c, 0xe21b5ac6), + TOBN(0x314b7aea, 0x5232123d), TOBN(0x08307c8c, 0x65ae86db), + TOBN(0x06e7165c, 0xaa4668ed), TOBN(0xb170458b, 0xb4d3ec39), + TOBN(0x4d2e3ec6, 0xc19bb986), TOBN(0xc5f34846, 0xae0304ed), + TOBN(0x917695a0, 0x6c9f9722), TOBN(0x6c7f7317, 0x4cab1c0a), + TOBN(0x6295940e, 0x9d6d2e8b), TOBN(0xd318b8c1, 0x549f7c97), + TOBN(0x22453204, 0x97713885), TOBN(0x468d834b, 0xa8a440fe), + TOBN(0xd81fe5b2, 0xbfba796e), TOBN(0x152364db, 0x6d71f116), + TOBN(0xbb8c7c59, 0xb5b66e53), TOBN(0x0b12c61b, 0x2641a192), + TOBN(0x31f14802, 0xfcf0a7fd), TOBN(0x42fd0789, 0x5488b01e), + TOBN(0x71d78d6d, 0x9952b498), TOBN(0x8eb572d9, 0x07ac5201), + TOBN(0xe0a2a44c, 0x4d194a88), TOBN(0xd2b63fd9, 0xba017e66), + TOBN(0x78efc6c8, 0xf888aefc), TOBN(0xb76f6bda, 0x4a881a11), + TOBN(0x187f314b, 0xb46c2397), TOBN(0x004cf566, 0x5ded2819), + TOBN(0xa9ea5704, 0x38764d34), TOBN(0xbba45217, 0x78084709), + TOBN(0x06474571, 0x1171121e), TOBN(0xad7b7eb1, 0xe7c9b671), + TOBN(0xdacfbc40, 0x730f7507), TOBN(0x178cd8c6, 0xc7ad7bd1), + TOBN(0xbf0be101, 0xb2a67238), TOBN(0x3556d367, 0xaf9c14f2), + TOBN(0x104b7831, 0xa5662075), TOBN(0x58ca59bb, 0x79d9e60a), + TOBN(0x4bc45392, 0xa569a73b), TOBN(0x517a52e8, 0x5698f6c9), + TOBN(0x85643da5, 0xaeadd755), TOBN(0x1aed0cd5, 0x2a581b84), + TOBN(0xb9b4ff84, 0x80af1372), TOBN(0x244c3113, 0xf1ba5d1f), + TOBN(0x2a5dacbe, 0xf5f98d31), TOBN(0x2c3323e8, 0x4375bc2a), + TOBN(0x17a3ab4a, 0x5594b1dd), TOBN(0xa1928bfb, 0xceb4797e), + TOBN(0xe83af245, 0xe4886a19), TOBN(0x8979d546, 0x72b5a74a), + TOBN(0xa0f726bc, 0x19f9e967), TOBN(0xd9d03152, 0xe8fbbf4e), + TOBN(0xcfd6f51d, 0xb7707d40), TOBN(0x633084d9, 0x63f6e6e0), + TOBN(0xedcd9cdc, 0x55667eaf), TOBN(0x73b7f92b, 0x2e44d56f), + TOBN(0xfb2e39b6, 0x4e962b14), TOBN(0x7d408f6e, 0xf671fcbf), + TOBN(0xcc634ddc, 0x164a89bb), TOBN(0x74a42bb2, 0x3ef3bd05), + TOBN(0x1280dbb2, 0x428decbb), TOBN(0x6103f6bb, 0x402c8596), + TOBN(0xfa2bf581, 0x355a5752), TOBN(0x562f96a8, 0x00946674), + TOBN(0x4e4ca16d, 0x6da0223b), TOBN(0xfe47819f, 0x28d3aa25), + TOBN(0x9eea3075, 0xf8dfcf8a), TOBN(0xa284f0aa, 0x95669825), + TOBN(0xb3fca250, 0x867d3fd8), TOBN(0x20757b5f, 0x269d691e), + TOBN(0xf2c24020, 0x93b8a5de), TOBN(0xd3f93359, 0xebc06da6), + TOBN(0x1178293e, 0xb2739c33), TOBN(0xd2a3e770, 0xbcd686e5), + TOBN(0xa76f49f4, 0xcd941534), TOBN(0x0d37406b, 0xe3c71c0e), + TOBN(0x172d9397, 0x3b97f7e3), TOBN(0xec17e239, 0xbd7fd0de), + TOBN(0xe3290551, 0x6f496ba2), TOBN(0x6a693172, 0x36ad50e7), + TOBN(0xc4e539a2, 0x83e7eff5), TOBN(0x752737e7, 0x18e1b4cf), + TOBN(0xa2f7932c, 0x68af43ee), TOBN(0x5502468e, 0x703d00bd), + TOBN(0xe5dc978f, 0x2fb061f5), TOBN(0xc9a1904a, 0x28c815ad), + TOBN(0xd3af538d, 0x470c56a4), TOBN(0x159abc5f, 0x193d8ced), + TOBN(0x2a37245f, 0x20108ef3), TOBN(0xfa17081e, 0x223f7178), + TOBN(0x27b0fb2b, 0x10c8c0f5), TOBN(0x2102c3ea, 0x40650547), + TOBN(0x594564df, 0x8ac3bfa7), TOBN(0x98102033, 0x509dad96), + TOBN(0x6989643f, 0xf1d18a13), TOBN(0x35eebd91, 0xd7fc5af0), + TOBN(0x078d096a, 0xfaeaafd8), TOBN(0xb7a89341, 0xdef3de98), + TOBN(0x2a206e8d, 0xecf2a73a), TOBN(0x066a6397, 0x8e551994), + TOBN(0x3a6a088a, 0xb98d53a2), TOBN(0x0ce7c67c, 0x2d1124aa), + TOBN(0x48cec671, 0x759a113c), TOBN(0xe3b373d3, 0x4f6f67fa), + TOBN(0x5455d479, 0xfd36727b), TOBN(0xe5a428ee, 0xa13c0d81), + TOBN(0xb853dbc8, 0x1c86682b), TOBN(0xb78d2727, 0xb8d02b2a), + TOBN(0xaaf69bed, 0x8ebc329a), TOBN(0xdb6b40b3, 0x293b2148), + TOBN(0xe42ea77d, 0xb8c4961f), TOBN(0xb1a12f7c, 0x20e5e0ab), + TOBN(0xa0ec5274, 0x79e8b05e), TOBN(0x68027391, 0xfab60a80), + TOBN(0x6bfeea5f, 0x16b1bd5e), TOBN(0xf957e420, 0x4de30ad3), + TOBN(0xcbaf664e, 0x6a353b9e), TOBN(0x5c873312, 0x26d14feb), + TOBN(0x4e87f98c, 0xb65f57cb), TOBN(0xdb60a621, 0x5e0cdd41), + TOBN(0x67c16865, 0xa6881440), TOBN(0x1093ef1a, 0x46ab52aa), + TOBN(0xc095afb5, 0x3f4ece64), TOBN(0x6a6bb02e, 0x7604551a), + TOBN(0x55d44b4e, 0x0b26b8cd), TOBN(0xe5f9a999, 0xf971268a), + TOBN(0xc08ec425, 0x11a7de84), TOBN(0x83568095, 0xfda469dd), + TOBN(0x737bfba1, 0x6c6c90a2), TOBN(0x1cb9c4a0, 0xbe229831), + TOBN(0x93bccbba, 0xbb2eec64), TOBN(0xa0c23b64, 0xda03adbe), + TOBN(0x5f7aa00a, 0xe0e86ac4), TOBN(0x470b941e, 0xfc1401e6), + TOBN(0x5ad8d679, 0x9df43574), TOBN(0x4ccfb8a9, 0x0f65d810), + TOBN(0x1bce80e3, 0xaa7fbd81), TOBN(0x273291ad, 0x9508d20a), + TOBN(0xf5c4b46b, 0x42a92806), TOBN(0x810684ec, 0xa86ab44a), + TOBN(0x4591640b, 0xca0bc9f8), TOBN(0xb5efcdfc, 0x5c4b6054), + TOBN(0x16fc8907, 0x6e9edd12), TOBN(0xe29d0b50, 0xd4d792f9), + TOBN(0xa45fd01c, 0x9b03116d), TOBN(0x85035235, 0xc81765a4), + TOBN(0x1fe2a9b2, 0xb4b4b67c), TOBN(0xc1d10df0, 0xe8020604), + TOBN(0x9d64abfc, 0xbc8058d8), TOBN(0x8943b9b2, 0x712a0fbb), + TOBN(0x90eed914, 0x3b3def04), TOBN(0x85ab3aa2, 0x4ce775ff), + TOBN(0x605fd4ca, 0x7bbc9040), TOBN(0x8b34a564, 0xe2c75dfb), + TOBN(0x41ffc94a, 0x10358560), TOBN(0x2d8a5072, 0x9e5c28aa), + TOBN(0xe915a0fc, 0x4cc7eb15), TOBN(0xe9efab05, 0x8f6d0f5d), + TOBN(0xdbab47a9, 0xd19e9b91), TOBN(0x8cfed745, 0x0276154c), + TOBN(0x154357ae, 0x2cfede0d), TOBN(0x520630df, 0x19f5a4ef), + TOBN(0x25759f7c, 0xe382360f), TOBN(0xb6db05c9, 0x88bf5857), + TOBN(0x2917d61d, 0x6c58d46c), TOBN(0x14f8e491, 0xfd20cb7a), + TOBN(0xb68a727a, 0x11c20340), TOBN(0x0386f86f, 0xaf7ccbb6), + TOBN(0x5c8bc6cc, 0xfee09a20), TOBN(0x7d76ff4a, 0xbb7eea35), + TOBN(0xa7bdebe7, 0xdb15be7a), TOBN(0x67a08054, 0xd89f0302), + TOBN(0x56bf0ea9, 0xc1193364), TOBN(0xc8244467, 0x62837ebe), + TOBN(0x32bd8e8b, 0x20d841b8), TOBN(0x127a0548, 0xdbb8a54f), + TOBN(0x83dd4ca6, 0x63b20236), TOBN(0x87714718, 0x203491fa), + TOBN(0x4dabcaaa, 0xaa8a5288), TOBN(0x91cc0c8a, 0xaf23a1c9), + TOBN(0x34c72c6a, 0x3f220e0c), TOBN(0xbcc20bdf, 0x1232144a), + TOBN(0x6e2f42da, 0xa20ede1b), TOBN(0xc441f00c, 0x74a00515), + TOBN(0xbf46a5b6, 0x734b8c4b), TOBN(0x57409503, 0x7b56c9a4), + TOBN(0x9f735261, 0xe4585d45), TOBN(0x9231faed, 0x6734e642), + TOBN(0x1158a176, 0xbe70ee6c), TOBN(0x35f1068d, 0x7c3501bf), + TOBN(0x6beef900, 0xa2d26115), TOBN(0x649406f2, 0xef0afee3), + TOBN(0x3f43a60a, 0xbc2420a1), TOBN(0x509002a7, 0xd5aee4ac), + TOBN(0xb46836a5, 0x3ff3571b), TOBN(0x24f98b78, 0x837927c1), + TOBN(0x6254256a, 0x4533c716), TOBN(0xf27abb0b, 0xd07ee196), + TOBN(0xd7cf64fc, 0x5c6d5bfd), TOBN(0x6915c751, 0xf0cd7a77), + TOBN(0xd9f59012, 0x8798f534), TOBN(0x772b0da8, 0xf81d8b5f), + TOBN(0x1244260c, 0x2e03fa69), TOBN(0x36cf0e3a, 0x3be1a374), + TOBN(0x6e7c1633, 0xef06b960), TOBN(0xa71a4c55, 0x671f90f6), + TOBN(0x7a941251, 0x33c673db), TOBN(0xc0bea510, 0x73e8c131), + TOBN(0x61a8a699, 0xd4f6c734), TOBN(0x25e78c88, 0x341ed001), + TOBN(0x5c18acf8, 0x8e2f7d90), TOBN(0xfdbf33d7, 0x77be32cd), + TOBN(0x0a085cd7, 0xd2eb5ee9), TOBN(0x2d702cfb, 0xb3201115), + TOBN(0xb6e0ebdb, 0x85c88ce8), TOBN(0x23a3ce3c, 0x1e01d617), + TOBN(0x3041618e, 0x567333ac), TOBN(0x9dd0fd8f, 0x157edb6b), + TOBN(0x27f74702, 0xb57872b8), TOBN(0x2ef26b4f, 0x657d5fe1), + TOBN(0x95426f0a, 0x57cf3d40), TOBN(0x847e2ad1, 0x65a6067a), + TOBN(0xd474d9a0, 0x09996a74), TOBN(0x16a56acd, 0x2a26115c), + TOBN(0x02a615c3, 0xd16f4d43), TOBN(0xcc3fc965, 0xaadb85b7), + TOBN(0x386bda73, 0xce07d1b0), TOBN(0xd82910c2, 0x58ad4178), + TOBN(0x124f82cf, 0xcd2617f4), TOBN(0xcc2f5e8d, 0xef691770), + TOBN(0x82702550, 0xb8c30ccc), TOBN(0x7b856aea, 0x1a8e575a), + TOBN(0xbb822fef, 0xb1ab9459), TOBN(0x085928bc, 0xec24e38e), + TOBN(0x5d0402ec, 0xba8f4b4d), TOBN(0xc07cd4ba, 0x00b4d58b), + TOBN(0x5d8dffd5, 0x29227e7a), TOBN(0x61d44d0c, 0x31bf386f), + TOBN(0xe486dc2b, 0x135e6f4d), TOBN(0x680962eb, 0xe79410ef), + TOBN(0xa61bd343, 0xf10088b5), TOBN(0x6aa76076, 0xe2e28686), + TOBN(0x80463d11, 0x8fb98871), TOBN(0xcb26f5c3, 0xbbc76aff), + TOBN(0xd4ab8edd, 0xfbe03614), TOBN(0xc8eb579b, 0xc0cf2dee), + TOBN(0xcc004c15, 0xc93bae41), TOBN(0x46fbae5d, 0x3aeca3b2), + TOBN(0x671235cf, 0x0f1e9ab1), TOBN(0xadfba934, 0x9ec285c1), + TOBN(0x88ded013, 0xf216c980), TOBN(0xc8ac4fb8, 0xf79e0bc1), + TOBN(0xa29b89c6, 0xfb97a237), TOBN(0xb697b780, 0x9922d8e7), + TOBN(0x3142c639, 0xddb945b5), TOBN(0x447b06c7, 0xe094c3a9), + TOBN(0xcdcb3642, 0x72266c90), TOBN(0x633aad08, 0xa9385046), + TOBN(0xa36c936b, 0xb57c6477), TOBN(0x871f8b64, 0xe94dbcc6), + TOBN(0x28d0fb62, 0xa591a67b), TOBN(0x9d40e081, 0xc1d926f5), + TOBN(0x3111eaf6, 0xf2d84b5a), TOBN(0x228993f9, 0xa565b644), + TOBN(0x0ccbf592, 0x2c83188b), TOBN(0xf87b30ab, 0x3df3e197), + TOBN(0xb8658b31, 0x7642bca8), TOBN(0x1a032d7f, 0x52800f17), + TOBN(0x051dcae5, 0x79bf9445), TOBN(0xeba6b8ee, 0x54a2e253), + TOBN(0x5c8b9cad, 0xd4485692), TOBN(0x84bda40e, 0x8986e9be), + TOBN(0xd16d16a4, 0x2f0db448), TOBN(0x8ec80050, 0xa14d4188), + TOBN(0xb2b26107, 0x98fa7aaa), TOBN(0x41209ee4, 0xf073aa4e), + TOBN(0xf1570359, 0xf2d6b19b), TOBN(0xcbe6868c, 0xfc577caf), + TOBN(0x186c4bdc, 0x32c04dd3), TOBN(0xa6c35fae, 0xcfeee397), + TOBN(0xb4a1b312, 0xf086c0cf), TOBN(0xe0a5ccc6, 0xd9461fe2), + TOBN(0xc32278aa, 0x1536189f), TOBN(0x1126c55f, 0xba6df571), + TOBN(0x0f71a602, 0xb194560e), TOBN(0x8b2d7405, 0x324bd6e1), + TOBN(0x8481939e, 0x3738be71), TOBN(0xb5090b1a, 0x1a4d97a9), + TOBN(0x116c65a3, 0xf05ba915), TOBN(0x21863ad3, 0xaae448aa), + TOBN(0xd24e2679, 0xa7aae5d3), TOBN(0x7076013d, 0x0de5c1c4), + TOBN(0x2d50f8ba, 0xbb05b629), TOBN(0x73c1abe2, 0x6e66efbb), + TOBN(0xefd4b422, 0xf2488af7), TOBN(0xe4105d02, 0x663ba575), + TOBN(0x7eb60a8b, 0x53a69457), TOBN(0x62210008, 0xc945973b), + TOBN(0xfb255478, 0x77a50ec6), TOBN(0xbf0392f7, 0x0a37a72c), + TOBN(0xa0a7a19c, 0x4be18e7a), TOBN(0x90d8ea16, 0x25b1e0af), + TOBN(0x7582a293, 0xef953f57), TOBN(0x90a64d05, 0xbdc5465a), + TOBN(0xca79c497, 0xe2510717), TOBN(0x560dbb7c, 0x18cb641f), + TOBN(0x1d8e3286, 0x4b66abfb), TOBN(0xd26f52e5, 0x59030900), + TOBN(0x1ee3f643, 0x5584941a), TOBN(0x6d3b3730, 0x569f5958), + TOBN(0x9ff2a62f, 0x4789dba5), TOBN(0x91fcb815, 0x72b5c9b7), + TOBN(0xf446cb7d, 0x6c8f9a0e), TOBN(0x48f625c1, 0x39b7ecb5), + TOBN(0xbabae801, 0x1c6219b8), TOBN(0xe7a562d9, 0x28ac2f23), + TOBN(0xe1b48732, 0x26e20588), TOBN(0x06ee1cad, 0x775af051), + TOBN(0xda29ae43, 0xfaff79f7), TOBN(0xc141a412, 0x652ee9e0), + TOBN(0x1e127f6f, 0x195f4bd0), TOBN(0x29c6ab4f, 0x072f34f8), + TOBN(0x7b7c1477, 0x30448112), TOBN(0x82b51af1, 0xe4a38656), + TOBN(0x2bf2028a, 0x2f315010), TOBN(0xc9a4a01f, 0x6ea88cd4), + TOBN(0xf63e95d8, 0x257e5818), TOBN(0xdd8efa10, 0xb4519b16), + TOBN(0xed8973e0, 0x0da910bf), TOBN(0xed49d077, 0x5c0fe4a9), + TOBN(0xac3aac5e, 0xb7caee1e), TOBN(0x1033898d, 0xa7f4da57), + TOBN(0x42145c0e, 0x5c6669b9), TOBN(0x42daa688, 0xc1aa2aa0), + TOBN(0x629cc15c, 0x1a1d885a), TOBN(0x25572ec0, 0xf4b76817), + TOBN(0x8312e435, 0x9c8f8f28), TOBN(0x8107f8cd, 0x81965490), + TOBN(0x516ff3a3, 0x6fa6110c), TOBN(0x74fb1eb1, 0xfb93561f), + TOBN(0x6c0c9047, 0x8457522b), TOBN(0xcfd32104, 0x6bb8bdc6), + TOBN(0x2d6884a2, 0xcc80ad57), TOBN(0x7c27fc35, 0x86a9b637), + TOBN(0x3461baed, 0xadf4e8cd), TOBN(0x1d56251a, 0x617242f0), + TOBN(0x0b80d209, 0xc955bef4), TOBN(0xdf02cad2, 0x06adb047), + TOBN(0xf0d7cb91, 0x5ec74fee), TOBN(0xd2503375, 0x1111ba44), + TOBN(0x9671755e, 0xdf53cb36), TOBN(0x54dcb612, 0x3368551b), + TOBN(0x66d69aac, 0xc8a025a4), TOBN(0x6be946c6, 0xe77ef445), + TOBN(0x719946d1, 0xa995e094), TOBN(0x65e848f6, 0xe51e04d8), + TOBN(0xe62f3300, 0x6a1e3113), TOBN(0x1541c7c1, 0x501de503), + TOBN(0x4daac9fa, 0xf4acfade), TOBN(0x0e585897, 0x44cd0b71), + TOBN(0x544fd869, 0x0a51cd77), TOBN(0x60fc20ed, 0x0031016d), + TOBN(0x58b404ec, 0xa4276867), TOBN(0x46f6c3cc, 0x34f34993), + TOBN(0x477ca007, 0xc636e5bd), TOBN(0x8018f5e5, 0x7c458b47), + TOBN(0xa1202270, 0xe47b668f), TOBN(0xcef48ccd, 0xee14f203), + TOBN(0x23f98bae, 0x62ff9b4d), TOBN(0x55acc035, 0xc589eddd), + TOBN(0x3fe712af, 0x64db4444), TOBN(0x19e9d634, 0xbecdd480), + TOBN(0xe08bc047, 0xa930978a), TOBN(0x2dbf24ec, 0xa1280733), + TOBN(0x3c0ae38c, 0x2cd706b2), TOBN(0x5b012a5b, 0x359017b9), + TOBN(0x3943c38c, 0x72e0f5ae), TOBN(0x786167ea, 0x57176fa3), + TOBN(0xe5f9897d, 0x594881dc), TOBN(0x6b5efad8, 0xcfb820c1), + TOBN(0xb2179093, 0xd55018de), TOBN(0x39ad7d32, 0x0bac56ce), + TOBN(0xb55122e0, 0x2cfc0e81), TOBN(0x117c4661, 0xf6d89daa), + TOBN(0x362d01e1, 0xcb64fa09), TOBN(0x6a309b4e, 0x3e9c4ddd), + TOBN(0xfa979fb7, 0xabea49b1), TOBN(0xb4b1d27d, 0x10e2c6c5), + TOBN(0xbd61c2c4, 0x23afde7a), TOBN(0xeb6614f8, 0x9786d358), + TOBN(0x4a5d816b, 0x7f6f7459), TOBN(0xe431a44f, 0x09360e7b), + TOBN(0x8c27a032, 0xc309914c), TOBN(0xcea5d68a, 0xcaede3d8), + TOBN(0x3668f665, 0x3a0a3f95), TOBN(0x89369416, 0x7ceba27b), + TOBN(0x89981fad, 0xe4728fe9), TOBN(0x7102c8a0, 0x8a093562), + TOBN(0xbb80310e, 0x235d21c8), TOBN(0x505e55d1, 0xbefb7f7b), + TOBN(0xa0a90811, 0x12958a67), TOBN(0xd67e106a, 0x4d851fef), + TOBN(0xb84011a9, 0x431dd80e), TOBN(0xeb7c7cca, 0x73306cd9), + TOBN(0x20fadd29, 0xd1b3b730), TOBN(0x83858b5b, 0xfe37b3d3), + TOBN(0xbf4cd193, 0xb6251d5c), TOBN(0x1cca1fd3, 0x1352d952), + TOBN(0xc66157a4, 0x90fbc051), TOBN(0x7990a638, 0x89b98636),} + , + {TOBN(0xe5aa692a, 0x87dec0e1), TOBN(0x010ded8d, 0xf7b39d00), + TOBN(0x7b1b80c8, 0x54cfa0b5), TOBN(0x66beb876, 0xa0f8ea28), + TOBN(0x50d7f531, 0x3476cd0e), TOBN(0xa63d0e65, 0xb08d3949), + TOBN(0x1a09eea9, 0x53479fc6), TOBN(0x82ae9891, 0xf499e742), + TOBN(0xab58b910, 0x5ca7d866), TOBN(0x582967e2, 0x3adb3b34), + TOBN(0x89ae4447, 0xcceac0bc), TOBN(0x919c667c, 0x7bf56af5), + TOBN(0x9aec17b1, 0x60f5dcd7), TOBN(0xec697b9f, 0xddcaadbc), + TOBN(0x0b98f341, 0x463467f5), TOBN(0xb187f1f7, 0xa967132f), + TOBN(0x90fe7a1d, 0x214aeb18), TOBN(0x1506af3c, 0x741432f7), + TOBN(0xbb5565f9, 0xe591a0c4), TOBN(0x10d41a77, 0xb44f1bc3), + TOBN(0xa09d65e4, 0xa84bde96), TOBN(0x42f060d8, 0xf20a6a1c), + TOBN(0x652a3bfd, 0xf27f9ce7), TOBN(0xb6bdb65c, 0x3b3d739f), + TOBN(0xeb5ddcb6, 0xec7fae9f), TOBN(0x995f2714, 0xefb66e5a), + TOBN(0xdee95d8e, 0x69445d52), TOBN(0x1b6c2d46, 0x09e27620), + TOBN(0x32621c31, 0x8129d716), TOBN(0xb03909f1, 0x0958c1aa), + TOBN(0x8c468ef9, 0x1af4af63), TOBN(0x162c429f, 0xfba5cdf6), + TOBN(0x2f682343, 0x753b9371), TOBN(0x29cab45a, 0x5f1f9cd7), + TOBN(0x571623ab, 0xb245db96), TOBN(0xc507db09, 0x3fd79999), + TOBN(0x4e2ef652, 0xaf036c32), TOBN(0x86f0cc78, 0x05018e5c), + TOBN(0xc10a73d4, 0xab8be350), TOBN(0x6519b397, 0x7e826327), + TOBN(0xe8cb5eef, 0x9c053df7), TOBN(0x8de25b37, 0xb300ea6f), + TOBN(0xdb03fa92, 0xc849cffb), TOBN(0x242e43a7, 0xe84169bb), + TOBN(0xe4fa51f4, 0xdd6f958e), TOBN(0x6925a77f, 0xf4445a8d), + TOBN(0xe6e72a50, 0xe90d8949), TOBN(0xc66648e3, 0x2b1f6390), + TOBN(0xb2ab1957, 0x173e460c), TOBN(0x1bbbce75, 0x30704590), + TOBN(0xc0a90dbd, 0xdb1c7162), TOBN(0x505e399e, 0x15cdd65d), + TOBN(0x68434dcb, 0x57797ab7), TOBN(0x60ad35ba, 0x6a2ca8e8), + TOBN(0x4bfdb1e0, 0xde3336c1), TOBN(0xbbef99eb, 0xd8b39015), + TOBN(0x6c3b96f3, 0x1711ebec), TOBN(0x2da40f1f, 0xce98fdc4), + TOBN(0xb99774d3, 0x57b4411f), TOBN(0x87c8bdf4, 0x15b65bb6), + TOBN(0xda3a89e3, 0xc2eef12d), TOBN(0xde95bb9b, 0x3c7471f3), + TOBN(0x600f225b, 0xd812c594), TOBN(0x54907c5d, 0x2b75a56b), + TOBN(0xa93cc5f0, 0x8db60e35), TOBN(0x743e3cd6, 0xfa833319), + TOBN(0x7dad5c41, 0xf81683c9), TOBN(0x70c1e7d9, 0x9c34107e), + TOBN(0x0edc4a39, 0xa6be0907), TOBN(0x36d47035, 0x86d0b7d3), + TOBN(0x8c76da03, 0x272bfa60), TOBN(0x0b4a07ea, 0x0f08a414), + TOBN(0x699e4d29, 0x45c1dd53), TOBN(0xcadc5898, 0x231debb5), + TOBN(0xdf49fcc7, 0xa77f00e0), TOBN(0x93057bbf, 0xa73e5a0e), + TOBN(0x2f8b7ecd, 0x027a4cd1), TOBN(0x114734b3, 0xc614011a), + TOBN(0xe7a01db7, 0x67677c68), TOBN(0x89d9be5e, 0x7e273f4f), + TOBN(0xd225cb2e, 0x089808ef), TOBN(0xf1f7a27d, 0xd59e4107), + TOBN(0x53afc761, 0x8211b9c9), TOBN(0x0361bc67, 0xe6819159), + TOBN(0x2a865d0b, 0x7f071426), TOBN(0x6a3c1810, 0xe7072567), + TOBN(0x3e3bca1e, 0x0d6bcabd), TOBN(0xa1b02bc1, 0x408591bc), + TOBN(0xe0deee59, 0x31fba239), TOBN(0xf47424d3, 0x98bd91d1), + TOBN(0x0f8886f4, 0x071a3c1d), TOBN(0x3f7d41e8, 0xa819233b), + TOBN(0x708623c2, 0xcf6eb998), TOBN(0x86bb49af, 0x609a287f), + TOBN(0x942bb249, 0x63c90762), TOBN(0x0ef6eea5, 0x55a9654b), + TOBN(0x5f6d2d72, 0x36f5defe), TOBN(0xfa9922dc, 0x56f99176), + TOBN(0x6c8c5ece, 0xf78ce0c7), TOBN(0x7b44589d, 0xbe09b55e), + TOBN(0xe11b3bca, 0x9ea83770), TOBN(0xd7fa2c7f, 0x2ab71547), + TOBN(0x2a3dd6fa, 0x2a1ddcc0), TOBN(0x09acb430, 0x5a7b7707), + TOBN(0x4add4a2e, 0x649d4e57), TOBN(0xcd53a2b0, 0x1917526e), + TOBN(0xc5262330, 0x20b44ac4), TOBN(0x4028746a, 0xbaa2c31d), + TOBN(0x51318390, 0x64291d4c), TOBN(0xbf48f151, 0xee5ad909), + TOBN(0xcce57f59, 0x7b185681), TOBN(0x7c3ac1b0, 0x4854d442), + TOBN(0x65587dc3, 0xc093c171), TOBN(0xae7acb24, 0x24f42b65), + TOBN(0x5a338adb, 0x955996cb), TOBN(0xc8e65675, 0x6051f91b), + TOBN(0x66711fba, 0x28b8d0b1), TOBN(0x15d74137, 0xb6c10a90), + TOBN(0x70cdd7eb, 0x3a232a80), TOBN(0xc9e2f07f, 0x6191ed24), + TOBN(0xa80d1db6, 0xf79588c0), TOBN(0xfa52fc69, 0xb55768cc), + TOBN(0x0b4df1ae, 0x7f54438a), TOBN(0x0cadd1a7, 0xf9b46a4f), + TOBN(0xb40ea6b3, 0x1803dd6f), TOBN(0x488e4fa5, 0x55eaae35), + TOBN(0x9f047d55, 0x382e4e16), TOBN(0xc9b5b7e0, 0x2f6e0c98), + TOBN(0x6b1bd2d3, 0x95762649), TOBN(0xa9604ee7, 0xc7aea3f6), + TOBN(0x3646ff27, 0x6dc6f896), TOBN(0x9bf0e7f5, 0x2860bad1), + TOBN(0x2d92c821, 0x7cb44b92), TOBN(0xa2f5ce63, 0xaea9c182), + TOBN(0xd0a2afb1, 0x9154a5fd), TOBN(0x482e474c, 0x95801da6), + TOBN(0xc19972d0, 0xb611c24b), TOBN(0x1d468e65, 0x60a8f351), + TOBN(0xeb758069, 0x7bcf6421), TOBN(0xec9dd0ee, 0x88fbc491), + TOBN(0x5b59d2bf, 0x956c2e32), TOBN(0x73dc6864, 0xdcddf94e), + TOBN(0xfd5e2321, 0xbcee7665), TOBN(0xa7b4f8ef, 0x5e9a06c4), + TOBN(0xfba918dd, 0x7280f855), TOBN(0xbbaac260, 0x8baec688), + TOBN(0xa3b3f00f, 0x33400f42), TOBN(0x3d2dba29, 0x66f2e6e4), + TOBN(0xb6f71a94, 0x98509375), TOBN(0x8f33031f, 0xcea423cc), + TOBN(0x009b8dd0, 0x4807e6fb), TOBN(0x5163cfe5, 0x5cdb954c), + TOBN(0x03cc8f17, 0xcf41c6e8), TOBN(0xf1f03c2a, 0x037b925c), + TOBN(0xc39c19cc, 0x66d2427c), TOBN(0x823d24ba, 0x7b6c18e4), + TOBN(0x32ef9013, 0x901f0b4f), TOBN(0x684360f1, 0xf8941c2e), + TOBN(0x0ebaff52, 0x2c28092e), TOBN(0x7891e4e3, 0x256c932f), + TOBN(0x51264319, 0xac445e3d), TOBN(0x553432e7, 0x8ea74381), + TOBN(0xe6eeaa69, 0x67e9c50a), TOBN(0x27ced284, 0x62e628c7), + TOBN(0x3f96d375, 0x7a4afa57), TOBN(0xde0a14c3, 0xe484c150), + TOBN(0x364a24eb, 0x38bd9923), TOBN(0x1df18da0, 0xe5177422), + TOBN(0x174e8f82, 0xd8d38a9b), TOBN(0x2e97c600, 0xe7de1391), + TOBN(0xc5709850, 0xa1c175dd), TOBN(0x969041a0, 0x32ae5035), + TOBN(0xcbfd533b, 0x76a2086b), TOBN(0xd6bba71b, 0xd7c2e8fe), + TOBN(0xb2d58ee6, 0x099dfb67), TOBN(0x3a8b342d, 0x064a85d9), + TOBN(0x3bc07649, 0x522f9be3), TOBN(0x690c075b, 0xdf1f49a8), + TOBN(0x80e1aee8, 0x3854ec42), TOBN(0x2a7dbf44, 0x17689dc7), + TOBN(0xc004fc0e, 0x3faf4078), TOBN(0xb2f02e9e, 0xdf11862c), + TOBN(0xf10a5e0f, 0xa0a1b7b3), TOBN(0x30aca623, 0x8936ec80), + TOBN(0xf83cbf05, 0x02f40d9a), TOBN(0x4681c468, 0x2c318a4d), + TOBN(0x98575618, 0x0e9c2674), TOBN(0xbe79d046, 0x1847092e), + TOBN(0xaf1e480a, 0x78bd01e0), TOBN(0x6dd359e4, 0x72a51db9), + TOBN(0x62ce3821, 0xe3afbab6), TOBN(0xc5cee5b6, 0x17733199), + TOBN(0xe08b30d4, 0x6ffd9fbb), TOBN(0x6e5bc699, 0x36c610b7), + TOBN(0xf343cff2, 0x9ce262cf), TOBN(0xca2e4e35, 0x68b914c1), + TOBN(0x011d64c0, 0x16de36c5), TOBN(0xe0b10fdd, 0x42e2b829), + TOBN(0x78942981, 0x6685aaf8), TOBN(0xe7511708, 0x230ede97), + TOBN(0x671ed8fc, 0x3b922bf8), TOBN(0xe4d8c0a0, 0x4c29b133), + TOBN(0x87eb1239, 0x3b6e99c4), TOBN(0xaff3974c, 0x8793beba), + TOBN(0x03749405, 0x2c18df9b), TOBN(0xc5c3a293, 0x91007139), + TOBN(0x6a77234f, 0xe37a0b95), TOBN(0x02c29a21, 0xb661c96b), + TOBN(0xc3aaf1d6, 0x141ecf61), TOBN(0x9195509e, 0x3bb22f53), + TOBN(0x29597404, 0x22d51357), TOBN(0x1b083822, 0x537bed60), + TOBN(0xcd7d6e35, 0xe07289f0), TOBN(0x1f94c48c, 0x6dd86eff), + TOBN(0xc8bb1f82, 0xeb0f9cfa), TOBN(0x9ee0b7e6, 0x1b2eb97d), + TOBN(0x5a52fe2e, 0x34d74e31), TOBN(0xa352c310, 0x3bf79ab6), + TOBN(0x97ff6c5a, 0xabfeeb8f), TOBN(0xbfbe8fef, 0xf5c97305), + TOBN(0xd6081ce6, 0xa7904608), TOBN(0x1f812f3a, 0xc4fca249), + TOBN(0x9b24bc9a, 0xb9e5e200), TOBN(0x91022c67, 0x38012ee8), + TOBN(0xe83d9c5d, 0x30a713a1), TOBN(0x4876e3f0, 0x84ef0f93), + TOBN(0xc9777029, 0xc1fbf928), TOBN(0xef7a6bb3, 0xbce7d2a4), + TOBN(0xb8067228, 0xdfa2a659), TOBN(0xd5cd3398, 0xd877a48f), + TOBN(0xbea4fd8f, 0x025d0f3f), TOBN(0xd67d2e35, 0x2eae7c2b), + TOBN(0x184de7d7, 0xcc5f4394), TOBN(0xb5551b5c, 0x4536e142), + TOBN(0x2e89b212, 0xd34aa60a), TOBN(0x14a96fea, 0xf50051d5), + TOBN(0x4e21ef74, 0x0d12bb0b), TOBN(0xc522f020, 0x60b9677e), + TOBN(0x8b12e467, 0x2df7731d), TOBN(0x39f80382, 0x7b326d31), + TOBN(0xdfb8630c, 0x39024a94), TOBN(0xaacb96a8, 0x97319452), + TOBN(0xd68a3961, 0xeda3867c), TOBN(0x0c58e2b0, 0x77c4ffca), + TOBN(0x3d545d63, 0x4da919fa), TOBN(0xef79b69a, 0xf15e2289), + TOBN(0x54bc3d3d, 0x808bab10), TOBN(0xc8ab3007, 0x45f82c37), + TOBN(0xc12738b6, 0x7c4a658a), TOBN(0xb3c47639, 0x40e72182), + TOBN(0x3b77be46, 0x8798e44f), TOBN(0xdc047df2, 0x17a7f85f), + TOBN(0x2439d4c5, 0x5e59d92d), TOBN(0xcedca475, 0xe8e64d8d), + TOBN(0xa724cd0d, 0x87ca9b16), TOBN(0x35e4fd59, 0xa5540dfe), + TOBN(0xf8c1ff18, 0xe4bcf6b1), TOBN(0x856d6285, 0x295018fa), + TOBN(0x433f665c, 0x3263c949), TOBN(0xa6a76dd6, 0xa1f21409), + TOBN(0x17d32334, 0xcc7b4f79), TOBN(0xa1d03122, 0x06720e4a), + TOBN(0xadb6661d, 0x81d9bed5), TOBN(0xf0d6fb02, 0x11db15d1), + TOBN(0x7fd11ad5, 0x1fb747d2), TOBN(0xab50f959, 0x3033762b), + TOBN(0x2a7e711b, 0xfbefaf5a), TOBN(0xc7393278, 0x3fef2bbf), + TOBN(0xe29fa244, 0x0df6f9be), TOBN(0x9092757b, 0x71efd215), + TOBN(0xee60e311, 0x4f3d6fd9), TOBN(0x338542d4, 0x0acfb78b), + TOBN(0x44a23f08, 0x38961a0f), TOBN(0x1426eade, 0x986987ca), + TOBN(0x36e6ee2e, 0x4a863cc6), TOBN(0x48059420, 0x628b8b79), + TOBN(0x30303ad8, 0x7396e1de), TOBN(0x5c8bdc48, 0x38c5aad1), + TOBN(0x3e40e11f, 0x5c8f5066), TOBN(0xabd6e768, 0x8d246bbd), + TOBN(0x68aa40bb, 0x23330a01), TOBN(0xd23f5ee4, 0xc34eafa0), + TOBN(0x3bbee315, 0x5de02c21), TOBN(0x18dd4397, 0xd1d8dd06), + TOBN(0x3ba1939a, 0x122d7b44), TOBN(0xe6d3b40a, 0xa33870d6), + TOBN(0x8e620f70, 0x1c4fe3f8), TOBN(0xf6bba1a5, 0xd3a50cbf), + TOBN(0x4a78bde5, 0xcfc0aee0), TOBN(0x847edc46, 0xc08c50bd), + TOBN(0xbaa2439c, 0xad63c9b2), TOBN(0xceb4a728, 0x10fc2acb), + TOBN(0xa419e40e, 0x26da033d), TOBN(0x6cc3889d, 0x03e02683), + TOBN(0x1cd28559, 0xfdccf725), TOBN(0x0fd7e0f1, 0x8d13d208), + TOBN(0x01b9733b, 0x1f0df9d4), TOBN(0x8cc2c5f3, 0xa2b5e4f3), + TOBN(0x43053bfa, 0x3a304fd4), TOBN(0x8e87665c, 0x0a9f1aa7), + TOBN(0x087f29ec, 0xd73dc965), TOBN(0x15ace455, 0x3e9023db), + TOBN(0x2370e309, 0x2bce28b4), TOBN(0xf9723442, 0xb6b1e84a), + TOBN(0xbeee662e, 0xb72d9f26), TOBN(0xb19396de, 0xf0e47109), + TOBN(0x85b1fa73, 0xe13289d0), TOBN(0x436cf77e, 0x54e58e32), + TOBN(0x0ec833b3, 0xe990ef77), TOBN(0x7373e3ed, 0x1b11fc25), + TOBN(0xbe0eda87, 0x0fc332ce), TOBN(0xced04970, 0x8d7ea856), + TOBN(0xf85ff785, 0x7e977ca0), TOBN(0xb66ee8da, 0xdfdd5d2b), + TOBN(0xf5e37950, 0x905af461), TOBN(0x587b9090, 0x966d487c), + TOBN(0x6a198a1b, 0x32ba0127), TOBN(0xa7720e07, 0x141615ac), + TOBN(0xa23f3499, 0x996ef2f2), TOBN(0xef5f64b4, 0x470bcb3d), + TOBN(0xa526a962, 0x92b8c559), TOBN(0x0c14aac0, 0x69740a0f), + TOBN(0x0d41a9e3, 0xa6bdc0a5), TOBN(0x97d52106, 0x9c48aef4), + TOBN(0xcf16bd30, 0x3e7c253b), TOBN(0xcc834b1a, 0x47fdedc1), + TOBN(0x7362c6e5, 0x373aab2e), TOBN(0x264ed85e, 0xc5f590ff), + TOBN(0x7a46d9c0, 0x66d41870), TOBN(0xa50c20b1, 0x4787ba09), + TOBN(0x185e7e51, 0xe3d44635), TOBN(0xb3b3e080, 0x31e2d8dc), + TOBN(0xbed1e558, 0xa179e9d9), TOBN(0x2daa3f79, 0x74a76781), + TOBN(0x4372baf2, 0x3a40864f), TOBN(0x46900c54, 0x4fe75cb5), + TOBN(0xb95f171e, 0xf76765d0), TOBN(0x4ad726d2, 0x95c87502), + TOBN(0x2ec769da, 0x4d7c99bd), TOBN(0x5e2ddd19, 0xc36cdfa8), + TOBN(0xc22117fc, 0xa93e6dea), TOBN(0xe8a2583b, 0x93771123), + TOBN(0xbe2f6089, 0xfa08a3a2), TOBN(0x4809d5ed, 0x8f0e1112), + TOBN(0x3b414aa3, 0xda7a095e), TOBN(0x9049acf1, 0x26f5aadd), + TOBN(0x78d46a4d, 0x6be8b84a), TOBN(0xd66b1963, 0xb732b9b3), + TOBN(0x5c2ac2a0, 0xde6e9555), TOBN(0xcf52d098, 0xb5bd8770), + TOBN(0x15a15fa6, 0x0fd28921), TOBN(0x56ccb81e, 0x8b27536d), + TOBN(0x0f0d8ab8, 0x9f4ccbb8), TOBN(0xed5f44d2, 0xdb221729), + TOBN(0x43141988, 0x00bed10c), TOBN(0xc94348a4, 0x1d735b8b), + TOBN(0x79f3e9c4, 0x29ef8479), TOBN(0x4c13a4e3, 0x614c693f), + TOBN(0x32c9af56, 0x8e143a14), TOBN(0xbc517799, 0xe29ac5c4), + TOBN(0x05e17992, 0x2774856f), TOBN(0x6e52fb05, 0x6c1bf55f), + TOBN(0xaeda4225, 0xe4f19e16), TOBN(0x70f4728a, 0xaf5ccb26), + TOBN(0x5d2118d1, 0xb2947f22), TOBN(0xc827ea16, 0x281d6fb9), + TOBN(0x8412328d, 0x8cf0eabd), TOBN(0x45ee9fb2, 0x03ef9dcf), + TOBN(0x8e700421, 0xbb937d63), TOBN(0xdf8ff2d5, 0xcc4b37a6), + TOBN(0xa4c0d5b2, 0x5ced7b68), TOBN(0x6537c1ef, 0xc7308f59), + TOBN(0x25ce6a26, 0x3b37f8e8), TOBN(0x170e9a9b, 0xdeebc6ce), + TOBN(0xdd037952, 0x8728d72c), TOBN(0x445b0e55, 0x850154bc), + TOBN(0x4b7d0e06, 0x83a7337b), TOBN(0x1e3416d4, 0xffecf249), + TOBN(0x24840eff, 0x66a2b71f), TOBN(0xd0d9a50a, 0xb37cc26d), + TOBN(0xe2198150, 0x6fe28ef7), TOBN(0x3cc5ef16, 0x23324c7f), + TOBN(0x220f3455, 0x769b5263), TOBN(0xe2ade2f1, 0xa10bf475), + TOBN(0x28cd20fa, 0x458d3671), TOBN(0x1549722c, 0x2dc4847b), + TOBN(0x6dd01e55, 0x591941e3), TOBN(0x0e6fbcea, 0x27128ccb), + TOBN(0xae1a1e6b, 0x3bef0262), TOBN(0xfa8c472c, 0x8f54e103), + TOBN(0x7539c0a8, 0x72c052ec), TOBN(0xd7b27369, 0x5a3490e9), + TOBN(0x143fe1f1, 0x71684349), TOBN(0x36b4722e, 0x32e19b97), + TOBN(0xdc059227, 0x90980aff), TOBN(0x175c9c88, 0x9e13d674), + TOBN(0xa7de5b22, 0x6e6bfdb1), TOBN(0x5ea5b7b2, 0xbedb4b46), + TOBN(0xd5570191, 0xd34a6e44), TOBN(0xfcf60d2e, 0xa24ff7e6), + TOBN(0x614a392d, 0x677819e1), TOBN(0x7be74c7e, 0xaa5a29e8), + TOBN(0xab50fece, 0x63c85f3f), TOBN(0xaca2e2a9, 0x46cab337), + TOBN(0x7f700388, 0x122a6fe3), TOBN(0xdb69f703, 0x882a04a8), + TOBN(0x9a77935d, 0xcf7aed57), TOBN(0xdf16207c, 0x8d91c86f), + TOBN(0x2fca49ab, 0x63ed9998), TOBN(0xa3125c44, 0xa77ddf96), + TOBN(0x05dd8a86, 0x24344072), TOBN(0xa023dda2, 0xfec3fb56), + TOBN(0x421b41fc, 0x0c743032), TOBN(0x4f2120c1, 0x5e438639), + TOBN(0xfb7cae51, 0xc83c1b07), TOBN(0xb2370caa, 0xcac2171a), + TOBN(0x2eb2d962, 0x6cc820fb), TOBN(0x59feee5c, 0xb85a44bf), + TOBN(0x94620fca, 0x5b6598f0), TOBN(0x6b922cae, 0x7e314051), + TOBN(0xff8745ad, 0x106bed4e), TOBN(0x546e71f5, 0xdfa1e9ab), + TOBN(0x935c1e48, 0x1ec29487), TOBN(0x9509216c, 0x4d936530), + TOBN(0xc7ca3067, 0x85c9a2db), TOBN(0xd6ae5152, 0x6be8606f), + TOBN(0x09dbcae6, 0xe14c651d), TOBN(0xc9536e23, 0x9bc32f96), + TOBN(0xa90535a9, 0x34521b03), TOBN(0xf39c526c, 0x878756ff), + TOBN(0x383172ec, 0x8aedf03c), TOBN(0x20a8075e, 0xefe0c034), + TOBN(0xf22f9c62, 0x64026422), TOBN(0x8dd10780, 0x24b9d076), + TOBN(0x944c742a, 0x3bef2950), TOBN(0x55b9502e, 0x88a2b00b), + TOBN(0xa59e14b4, 0x86a09817), TOBN(0xa39dd3ac, 0x47bb4071), + TOBN(0x55137f66, 0x3be0592f), TOBN(0x07fcafd4, 0xc9e63f5b), + TOBN(0x963652ee, 0x346eb226), TOBN(0x7dfab085, 0xec2facb7), + TOBN(0x273bf2b8, 0x691add26), TOBN(0x30d74540, 0xf2b46c44), + TOBN(0x05e8e73e, 0xf2c2d065), TOBN(0xff9b8a00, 0xd42eeac9), + TOBN(0x2fcbd205, 0x97209d22), TOBN(0xeb740ffa, 0xde14ea2c), + TOBN(0xc71ff913, 0xa8aef518), TOBN(0x7bfc74bb, 0xfff4cfa2), + TOBN(0x1716680c, 0xb6b36048), TOBN(0x121b2cce, 0x9ef79af1), + TOBN(0xbff3c836, 0xa01eb3d3), TOBN(0x50eb1c6a, 0x5f79077b), + TOBN(0xa48c32d6, 0xa004bbcf), TOBN(0x47a59316, 0x7d64f61d), + TOBN(0x6068147f, 0x93102016), TOBN(0x12c5f654, 0x94d12576), + TOBN(0xefb071a7, 0xc9bc6b91), TOBN(0x7c2da0c5, 0x6e23ea95), + TOBN(0xf4fd45b6, 0xd4a1dd5d), TOBN(0x3e7ad9b6, 0x9122b13c), + TOBN(0x342ca118, 0xe6f57a48), TOBN(0x1c2e94a7, 0x06f8288f), + TOBN(0x99e68f07, 0x5a97d231), TOBN(0x7c80de97, 0x4d838758), + TOBN(0xbce0f5d0, 0x05872727), TOBN(0xbe5d95c2, 0x19c4d016), + TOBN(0x921d5cb1, 0x9c2492ee), TOBN(0x42192dc1, 0x404d6fb3), + TOBN(0x4c84dcd1, 0x32f988d3), TOBN(0xde26d61f, 0xa17b8e85), + TOBN(0xc466dcb6, 0x137c7408), TOBN(0x9a38d7b6, 0x36a266da), + TOBN(0x7ef5cb06, 0x83bebf1b), TOBN(0xe5cdcbbf, 0x0fd014e3), + TOBN(0x30aa376d, 0xf65965a0), TOBN(0x60fe88c2, 0xebb3e95e), + TOBN(0x33fd0b61, 0x66ee6f20), TOBN(0x8827dcdb, 0x3f41f0a0), + TOBN(0xbf8a9d24, 0x0c56c690), TOBN(0x40265dad, 0xddb7641d), + TOBN(0x522b05bf, 0x3a6b662b), TOBN(0x466d1dfe, 0xb1478c9b), + TOBN(0xaa616962, 0x1484469b), TOBN(0x0db60549, 0x02df8f9f), + TOBN(0xc37bca02, 0x3cb8bf51), TOBN(0x5effe346, 0x21371ce8), + TOBN(0xe8f65264, 0xff112c32), TOBN(0x8a9c736d, 0x7b971fb2), + TOBN(0xa4f19470, 0x7b75080d), TOBN(0xfc3f2c5a, 0x8839c59b), + TOBN(0x1d6c777e, 0x5aeb49c2), TOBN(0xf3db034d, 0xda1addfe), + TOBN(0xd76fee5a, 0x5535affc), TOBN(0x0853ac70, 0xb92251fd), + TOBN(0x37e3d594, 0x8b2a29d5), TOBN(0x28f1f457, 0x4de00ddb), + TOBN(0x8083c1b5, 0xf42c328b), TOBN(0xd8ef1d8f, 0xe493c73b), + TOBN(0x96fb6260, 0x41dc61bd), TOBN(0xf74e8a9d, 0x27ee2f8a), + TOBN(0x7c605a80, 0x2c946a5d), TOBN(0xeed48d65, 0x3839ccfd), + TOBN(0x9894344f, 0x3a29467a), TOBN(0xde81e949, 0xc51eba6d), + TOBN(0xdaea066b, 0xa5e5c2f2), TOBN(0x3fc8a614, 0x08c8c7b3), + TOBN(0x7adff88f, 0x06d0de9f), TOBN(0xbbc11cf5, 0x3b75ce0a), + TOBN(0x9fbb7acc, 0xfbbc87d5), TOBN(0xa1458e26, 0x7badfde2)} + , + {TOBN(0x1cb43668, 0xe039c256), TOBN(0x5f26fb8b, 0x7c17fd5d), + TOBN(0xeee426af, 0x79aa062b), TOBN(0x072002d0, 0xd78fbf04), + TOBN(0x4c9ca237, 0xe84fb7e3), TOBN(0xb401d8a1, 0x0c82133d), + TOBN(0xaaa52592, 0x6d7e4181), TOBN(0xe9430833, 0x73dbb152), + TOBN(0xf92dda31, 0xbe24319a), TOBN(0x03f7d28b, 0xe095a8e7), + TOBN(0xa52fe840, 0x98782185), TOBN(0x276ddafe, 0x29c24dbc), + TOBN(0x80cd5496, 0x1d7a64eb), TOBN(0xe4360889, 0x7f1dbe42), + TOBN(0x2f81a877, 0x8438d2d5), TOBN(0x7e4d52a8, 0x85169036), + TOBN(0x19e3d5b1, 0x1d59715d), TOBN(0xc7eaa762, 0xd788983e), + TOBN(0xe5a730b0, 0xabf1f248), TOBN(0xfbab8084, 0xfae3fd83), + TOBN(0x65e50d21, 0x53765b2f), TOBN(0xbdd4e083, 0xfa127f3d), + TOBN(0x9cf3c074, 0x397b1b10), TOBN(0x59f8090c, 0xb1b59fd3), + TOBN(0x7b15fd9d, 0x615faa8f), TOBN(0x8fa1eb40, 0x968554ed), + TOBN(0x7bb4447e, 0x7aa44882), TOBN(0x2bb2d0d1, 0x029fff32), + TOBN(0x075e2a64, 0x6caa6d2f), TOBN(0x8eb879de, 0x22e7351b), + TOBN(0xbcd5624e, 0x9a506c62), TOBN(0x218eaef0, 0xa87e24dc), + TOBN(0x37e56847, 0x44ddfa35), TOBN(0x9ccfc5c5, 0xdab3f747), + TOBN(0x9ac1df3f, 0x1ee96cf4), TOBN(0x0c0571a1, 0x3b480b8f), + TOBN(0x2fbeb3d5, 0x4b3a7b3c), TOBN(0x35c03669, 0x5dcdbb99), + TOBN(0x52a0f5dc, 0xb2415b3a), TOBN(0xd57759b4, 0x4413ed9a), + TOBN(0x1fe647d8, 0x3d30a2c5), TOBN(0x0857f77e, 0xf78a81dc), + TOBN(0x11d5a334, 0x131a4a9b), TOBN(0xc0a94af9, 0x29d393f5), + TOBN(0xbc3a5c0b, 0xdaa6ec1a), TOBN(0xba9fe493, 0x88d2d7ed), + TOBN(0xbb4335b4, 0xbb614797), TOBN(0x991c4d68, 0x72f83533), + TOBN(0x53258c28, 0xd2f01cb3), TOBN(0x93d6eaa3, 0xd75db0b1), + TOBN(0x419a2b0d, 0xe87d0db4), TOBN(0xa1e48f03, 0xd8fe8493), + TOBN(0xf747faf6, 0xc508b23a), TOBN(0xf137571a, 0x35d53549), + TOBN(0x9f5e58e2, 0xfcf9b838), TOBN(0xc7186cee, 0xa7fd3cf5), + TOBN(0x77b868ce, 0xe978a1d3), TOBN(0xe3a68b33, 0x7ab92d04), + TOBN(0x51029794, 0x87a5b862), TOBN(0x5f0606c3, 0x3a61d41d), + TOBN(0x2814be27, 0x6f9326f1), TOBN(0x2f521c14, 0xc6fe3c2e), + TOBN(0x17464d7d, 0xacdf7351), TOBN(0x10f5f9d3, 0x777f7e44), + TOBN(0xce8e616b, 0x269fb37d), TOBN(0xaaf73804, 0x7de62de5), + TOBN(0xaba11175, 0x4fdd4153), TOBN(0x515759ba, 0x3770b49b), + TOBN(0x8b09ebf8, 0xaa423a61), TOBN(0x592245a1, 0xcd41fb92), + TOBN(0x1cba8ec1, 0x9b4c8936), TOBN(0xa87e91e3, 0xaf36710e), + TOBN(0x1fd84ce4, 0x3d34a2e3), TOBN(0xee3759ce, 0xb43b5d61), + TOBN(0x895bc78c, 0x619186c7), TOBN(0xf19c3809, 0xcbb9725a), + TOBN(0xc0be21aa, 0xde744b1f), TOBN(0xa7d222b0, 0x60f8056b), + TOBN(0x74be6157, 0xb23efe11), TOBN(0x6fab2b4f, 0x0cd68253), + TOBN(0xad33ea5f, 0x4bf1d725), TOBN(0x9c1d8ee2, 0x4f6c950f), + TOBN(0x544ee78a, 0xa377af06), TOBN(0x54f489bb, 0x94a113e1), + TOBN(0x8f11d634, 0x992fb7e8), TOBN(0x0169a7aa, 0xa2a44347), + TOBN(0x1d49d4af, 0x95020e00), TOBN(0x95945722, 0xe08e120b), + TOBN(0xb6e33878, 0xa4d32282), TOBN(0xe36e029d, 0x48020ae7), + TOBN(0xe05847fb, 0x37a9b750), TOBN(0xf876812c, 0xb29e3819), + TOBN(0x84ad138e, 0xd23a17f0), TOBN(0x6d7b4480, 0xf0b3950e), + TOBN(0xdfa8aef4, 0x2fd67ae0), TOBN(0x8d3eea24, 0x52333af6), + TOBN(0x0d052075, 0xb15d5acc), TOBN(0xc6d9c79f, 0xbd815bc4), + TOBN(0x8dcafd88, 0xdfa36cf2), TOBN(0x908ccbe2, 0x38aa9070), + TOBN(0x638722c4, 0xba35afce), TOBN(0x5a3da8b0, 0xfd6abf0b), + TOBN(0x2dce252c, 0xc9c335c1), TOBN(0x84e7f0de, 0x65aa799b), + TOBN(0x2101a522, 0xb99a72cb), TOBN(0x06de6e67, 0x87618016), + TOBN(0x5ff8c7cd, 0xe6f3653e), TOBN(0x0a821ab5, 0xc7a6754a), + TOBN(0x7e3fa52b, 0x7cb0b5a2), TOBN(0xa7fb121c, 0xc9048790), + TOBN(0x1a725020, 0x06ce053a), TOBN(0xb490a31f, 0x04e929b0), + TOBN(0xe17be47d, 0x62dd61ad), TOBN(0x781a961c, 0x6be01371), + TOBN(0x1063bfd3, 0xdae3cbba), TOBN(0x35647406, 0x7f73c9ba), + TOBN(0xf50e957b, 0x2736a129), TOBN(0xa6313702, 0xed13f256), + TOBN(0x9436ee65, 0x3a19fcc5), TOBN(0xcf2bdb29, 0xe7a4c8b6), + TOBN(0xb06b1244, 0xc5f95cd8), TOBN(0xda8c8af0, 0xf4ab95f4), + TOBN(0x1bae59c2, 0xb9e5836d), TOBN(0x07d51e7e, 0x3acffffc), + TOBN(0x01e15e6a, 0xc2ccbcda), TOBN(0x3bc1923f, 0x8528c3e0), + TOBN(0x43324577, 0xa49fead4), TOBN(0x61a1b884, 0x2aa7a711), + TOBN(0xf9a86e08, 0x700230ef), TOBN(0x0af585a1, 0xbd19adf8), + TOBN(0x7645f361, 0xf55ad8f2), TOBN(0x6e676223, 0x46c3614c), + TOBN(0x23cb257c, 0x4e774d3f), TOBN(0x82a38513, 0xac102d1b), + TOBN(0x9bcddd88, 0x7b126aa5), TOBN(0xe716998b, 0xeefd3ee4), + TOBN(0x4239d571, 0xfb167583), TOBN(0xdd011c78, 0xd16c8f8a), + TOBN(0x271c2895, 0x69a27519), TOBN(0x9ce0a3b7, 0xd2d64b6a), + TOBN(0x8c977289, 0xd5ec6738), TOBN(0xa3b49f9a, 0x8840ef6b), + TOBN(0x808c14c9, 0x9a453419), TOBN(0x5c00295b, 0x0cf0a2d5), + TOBN(0x524414fb, 0x1d4bcc76), TOBN(0xb07691d2, 0x459a88f1), + TOBN(0x77f43263, 0xf70d110f), TOBN(0x64ada5e0, 0xb7abf9f3), + TOBN(0xafd0f94e, 0x5b544cf5), TOBN(0xb4a13a15, 0xfd2713fe), + TOBN(0xb99b7d6e, 0x250c74f4), TOBN(0x097f2f73, 0x20324e45), + TOBN(0x994b37d8, 0xaffa8208), TOBN(0xc3c31b0b, 0xdc29aafc), + TOBN(0x3da74651, 0x7a3a607f), TOBN(0xd8e1b8c1, 0xfe6955d6), + TOBN(0x716e1815, 0xc8418682), TOBN(0x541d487f, 0x7dc91d97), + TOBN(0x48a04669, 0xc6996982), TOBN(0xf39cab15, 0x83a6502e), + TOBN(0x025801a0, 0xe68db055), TOBN(0xf3569758, 0xba3338d5), + TOBN(0xb0c8c0aa, 0xee2afa84), TOBN(0x4f6985d3, 0xfb6562d1), + TOBN(0x351f1f15, 0x132ed17a), TOBN(0x510ed0b4, 0xc04365fe), + TOBN(0xa3f98138, 0xe5b1f066), TOBN(0xbc9d95d6, 0x32df03dc), + TOBN(0xa83ccf6e, 0x19abd09e), TOBN(0x0b4097c1, 0x4ff17edb), + TOBN(0x58a5c478, 0xd64a06ce), TOBN(0x2ddcc3fd, 0x544a58fd), + TOBN(0xd449503d, 0x9e8153b8), TOBN(0x3324fd02, 0x7774179b), + TOBN(0xaf5d47c8, 0xdbd9120c), TOBN(0xeb860162, 0x34fa94db), + TOBN(0x5817bdd1, 0x972f07f4), TOBN(0xe5579e2e, 0xd27bbceb), + TOBN(0x86847a1f, 0x5f11e5a6), TOBN(0xb39ed255, 0x7c3cf048), + TOBN(0xe1076417, 0xa2f62e55), TOBN(0x6b9ab38f, 0x1bcf82a2), + TOBN(0x4bb7c319, 0x7aeb29f9), TOBN(0xf6d17da3, 0x17227a46), + TOBN(0xab53ddbd, 0x0f968c00), TOBN(0xa03da7ec, 0x000c880b), + TOBN(0x7b239624, 0x6a9ad24d), TOBN(0x612c0401, 0x01ec60d0), + TOBN(0x70d10493, 0x109f5df1), TOBN(0xfbda4030, 0x80af7550), + TOBN(0x30b93f95, 0xc6b9a9b3), TOBN(0x0c74ec71, 0x007d9418), + TOBN(0x94175564, 0x6edb951f), TOBN(0x5f4a9d78, 0x7f22c282), + TOBN(0xb7870895, 0xb38d1196), TOBN(0xbc593df3, 0xa228ce7c), + TOBN(0xc78c5bd4, 0x6af3641a), TOBN(0x7802200b, 0x3d9b3dcc), + TOBN(0x0dc73f32, 0x8be33304), TOBN(0x847ed87d, 0x61ffb79a), + TOBN(0xf85c974e, 0x6d671192), TOBN(0x1e14100a, 0xde16f60f), + TOBN(0x45cb0d5a, 0x95c38797), TOBN(0x18923bba, 0x9b022da4), + TOBN(0xef2be899, 0xbbe7e86e), TOBN(0x4a1510ee, 0x216067bf), + TOBN(0xd98c8154, 0x84d5ce3e), TOBN(0x1af777f0, 0xf92a2b90), + TOBN(0x9fbcb400, 0x4ef65724), TOBN(0x3e04a4c9, 0x3c0ca6fe), + TOBN(0xfb3e2cb5, 0x55002994), TOBN(0x1f3a93c5, 0x5363ecab), + TOBN(0x1fe00efe, 0x3923555b), TOBN(0x744bedd9, 0x1e1751ea), + TOBN(0x3fb2db59, 0x6ab69357), TOBN(0x8dbd7365, 0xf5e6618b), + TOBN(0x99d53099, 0xdf1ea40e), TOBN(0xb3f24a0b, 0x57d61e64), + TOBN(0xd088a198, 0x596eb812), TOBN(0x22c8361b, 0x5762940b), + TOBN(0x66f01f97, 0xf9c0d95c), TOBN(0x88461172, 0x8e43cdae), + TOBN(0x11599a7f, 0xb72b15c3), TOBN(0x135a7536, 0x420d95cc), + TOBN(0x2dcdf0f7, 0x5f7ae2f6), TOBN(0x15fc6e1d, 0xd7fa6da2), + TOBN(0x81ca829a, 0xd1d441b6), TOBN(0x84c10cf8, 0x04a106b6), + TOBN(0xa9b26c95, 0xa73fbbd0), TOBN(0x7f24e0cb, 0x4d8f6ee8), + TOBN(0x48b45937, 0x1e25a043), TOBN(0xf8a74fca, 0x036f3dfe), + TOBN(0x1ed46585, 0xc9f84296), TOBN(0x7fbaa8fb, 0x3bc278b0), + TOBN(0xa8e96cd4, 0x6c4fcbd0), TOBN(0x940a1202, 0x73b60a5f), + TOBN(0x34aae120, 0x55a4aec8), TOBN(0x550e9a74, 0xdbd742f0), + TOBN(0x794456d7, 0x228c68ab), TOBN(0x492f8868, 0xa4e25ec6), + TOBN(0x682915ad, 0xb2d8f398), TOBN(0xf13b51cc, 0x5b84c953), + TOBN(0xcda90ab8, 0x5bb917d6), TOBN(0x4b615560, 0x4ea3dee1), + TOBN(0x578b4e85, 0x0a52c1c8), TOBN(0xeab1a695, 0x20b75fc4), + TOBN(0x60c14f3c, 0xaa0bb3c6), TOBN(0x220f448a, 0xb8216094), + TOBN(0x4fe7ee31, 0xb0e63d34), TOBN(0xf4600572, 0xa9e54fab), + TOBN(0xc0493334, 0xd5e7b5a4), TOBN(0x8589fb92, 0x06d54831), + TOBN(0xaa70f5cc, 0x6583553a), TOBN(0x0879094a, 0xe25649e5), + TOBN(0xcc904507, 0x10044652), TOBN(0xebb0696d, 0x02541c4f), + TOBN(0x5a171fde, 0xb9718710), TOBN(0x38f1bed8, 0xf374a9f5), + TOBN(0xc8c582e1, 0xba39bdc1), TOBN(0xfc457b0a, 0x908cc0ce), + TOBN(0x9a187fd4, 0x883841e2), TOBN(0x8ec25b39, 0x38725381), + TOBN(0x2553ed05, 0x96f84395), TOBN(0x095c7661, 0x6f6c6897), + TOBN(0x917ac85c, 0x4bdc5610), TOBN(0xb2885fe4, 0x179eb301), + TOBN(0x5fc65547, 0x8b78bdcc), TOBN(0x4a9fc893, 0xe59e4699), + TOBN(0xbb7ff0cd, 0x3ce299af), TOBN(0x195be9b3, 0xadf38b20), + TOBN(0x6a929c87, 0xd38ddb8f), TOBN(0x55fcc99c, 0xb21a51b9), + TOBN(0x2b695b4c, 0x721a4593), TOBN(0xed1e9a15, 0x768eaac2), + TOBN(0xfb63d71c, 0x7489f914), TOBN(0xf98ba31c, 0x78118910), + TOBN(0x80291373, 0x9b128eb4), TOBN(0x7801214e, 0xd448af4a), + TOBN(0xdbd2e22b, 0x55418dd3), TOBN(0xeffb3c0d, 0xd3998242), + TOBN(0xdfa6077c, 0xc7bf3827), TOBN(0xf2165bcb, 0x47f8238f), + TOBN(0xfe37cf68, 0x8564d554), TOBN(0xe5f825c4, 0x0a81fb98), + TOBN(0x43cc4f67, 0xffed4d6f), TOBN(0xbc609578, 0xb50a34b0), + TOBN(0x8aa8fcf9, 0x5041faf1), TOBN(0x5659f053, 0x651773b6), + TOBN(0xe87582c3, 0x6044d63b), TOBN(0xa6089409, 0x0cdb0ca0), + TOBN(0x8c993e0f, 0xbfb2bcf6), TOBN(0xfc64a719, 0x45985cfc), + TOBN(0x15c4da80, 0x83dbedba), TOBN(0x804ae112, 0x2be67df7), + TOBN(0xda4c9658, 0xa23defde), TOBN(0x12002ddd, 0x5156e0d3), + TOBN(0xe68eae89, 0x5dd21b96), TOBN(0x8b99f28b, 0xcf44624d), + TOBN(0x0ae00808, 0x1ec8897a), TOBN(0xdd0a9303, 0x6712f76e), + TOBN(0x96237522, 0x4e233de4), TOBN(0x192445b1, 0x2b36a8a5), + TOBN(0xabf9ff74, 0x023993d9), TOBN(0x21f37bf4, 0x2aad4a8f), + TOBN(0x340a4349, 0xf8bd2bbd), TOBN(0x1d902cd9, 0x4868195d), + TOBN(0x3d27bbf1, 0xe5fdb6f1), TOBN(0x7a5ab088, 0x124f9f1c), + TOBN(0xc466ab06, 0xf7a09e03), TOBN(0x2f8a1977, 0x31f2c123), + TOBN(0xda355dc7, 0x041b6657), TOBN(0xcb840d12, 0x8ece2a7c), + TOBN(0xb600ad9f, 0x7db32675), TOBN(0x78fea133, 0x07a06f1b), + TOBN(0x5d032269, 0xb31f6094), TOBN(0x07753ef5, 0x83ec37aa), + TOBN(0x03485aed, 0x9c0bea78), TOBN(0x41bb3989, 0xbc3f4524), + TOBN(0x09403761, 0x697f726d), TOBN(0x6109beb3, 0xdf394820), + TOBN(0x804111ea, 0x3b6d1145), TOBN(0xb6271ea9, 0xa8582654), + TOBN(0x619615e6, 0x24e66562), TOBN(0xa2554945, 0xd7b6ad9c), + TOBN(0xd9c4985e, 0x99bfe35f), TOBN(0x9770ccc0, 0x7b51cdf6), + TOBN(0x7c327013, 0x92881832), TOBN(0x8777d45f, 0x286b26d1), + TOBN(0x9bbeda22, 0xd847999d), TOBN(0x03aa33b6, 0xc3525d32), + TOBN(0x4b7b96d4, 0x28a959a1), TOBN(0xbb3786e5, 0x31e5d234), + TOBN(0xaeb5d3ce, 0x6961f247), TOBN(0x20aa85af, 0x02f93d3f), + TOBN(0x9cd1ad3d, 0xd7a7ae4f), TOBN(0xbf6688f0, 0x781adaa8), + TOBN(0xb1b40e86, 0x7469cead), TOBN(0x1904c524, 0x309fca48), + TOBN(0x9b7312af, 0x4b54bbc7), TOBN(0xbe24bf8f, 0x593affa2), + TOBN(0xbe5e0790, 0xbd98764b), TOBN(0xa0f45f17, 0xa26e299e), + TOBN(0x4af0d2c2, 0x6b8fe4c7), TOBN(0xef170db1, 0x8ae8a3e6), + TOBN(0x0e8d61a0, 0x29e0ccc1), TOBN(0xcd53e87e, 0x60ad36ca), + TOBN(0x328c6623, 0xc8173822), TOBN(0x7ee1767d, 0xa496be55), + TOBN(0x89f13259, 0x648945af), TOBN(0x9e45a5fd, 0x25c8009c), + TOBN(0xaf2febd9, 0x1f61ab8c), TOBN(0x43f6bc86, 0x8a275385), + TOBN(0x87792348, 0xf2142e79), TOBN(0x17d89259, 0xc6e6238a), + TOBN(0x7536d2f6, 0x4a839d9b), TOBN(0x1f428fce, 0x76a1fbdc), + TOBN(0x1c109601, 0x0db06dfe), TOBN(0xbfc16bc1, 0x50a3a3cc), + TOBN(0xf9cbd9ec, 0x9b30f41b), TOBN(0x5b5da0d6, 0x00138cce), + TOBN(0xec1d0a48, 0x56ef96a7), TOBN(0xb47eb848, 0x982bf842), + TOBN(0x66deae32, 0xec3f700d), TOBN(0x4e43c42c, 0xaa1181e0), + TOBN(0xa1d72a31, 0xd1a4aa2a), TOBN(0x440d4668, 0xc004f3ce), + TOBN(0x0d6a2d3b, 0x45fe8a7a), TOBN(0x820e52e2, 0xfb128365), + TOBN(0x29ac5fcf, 0x25e51b09), TOBN(0x180cd2bf, 0x2023d159), + TOBN(0xa9892171, 0xa1ebf90e), TOBN(0xf97c4c87, 0x7c132181), + TOBN(0x9f1dc724, 0xc03dbb7e), TOBN(0xae043765, 0x018cbbe4), + TOBN(0xfb0b2a36, 0x0767d153), TOBN(0xa8e2f4d6, 0x249cbaeb), + TOBN(0x172a5247, 0xd95ea168), TOBN(0x1758fada, 0x2970764a), + TOBN(0xac803a51, 0x1d978169), TOBN(0x299cfe2e, 0xde77e01b), + TOBN(0x652a1e17, 0xb0a98927), TOBN(0x2e26e1d1, 0x20014495), + TOBN(0x7ae0af9f, 0x7175b56a), TOBN(0xc2e22a80, 0xd64b9f95), + TOBN(0x4d0ff9fb, 0xd90a060a), TOBN(0x496a27db, 0xbaf38085), + TOBN(0x32305401, 0xda776bcf), TOBN(0xb8cdcef6, 0x725f209e), + TOBN(0x61ba0f37, 0x436a0bba), TOBN(0x263fa108, 0x76860049), + TOBN(0x92beb98e, 0xda3542cf), TOBN(0xa2d4d14a, 0xd5849538), + TOBN(0x989b9d68, 0x12e9a1bc), TOBN(0x61d9075c, 0x5f6e3268), + TOBN(0x352c6aa9, 0x99ace638), TOBN(0xde4e4a55, 0x920f43ff), + TOBN(0xe5e4144a, 0xd673c017), TOBN(0x667417ae, 0x6f6e05ea), + TOBN(0x613416ae, 0xdcd1bd56), TOBN(0x5eb36201, 0x86693711), + TOBN(0x2d7bc504, 0x3a1aa914), TOBN(0x175a1299, 0x76dc5975), + TOBN(0xe900e0f2, 0x3fc8125c), TOBN(0x569ef68c, 0x11198875), + TOBN(0x9012db63, 0x63a113b4), TOBN(0xe3bd3f56, 0x98835766), + TOBN(0xa5c94a52, 0x76412dea), TOBN(0xad9e2a09, 0xaa735e5c), + TOBN(0x405a984c, 0x508b65e9), TOBN(0xbde4a1d1, 0x6df1a0d1), + TOBN(0x1a9433a1, 0xdfba80da), TOBN(0xe9192ff9, 0x9440ad2e), + TOBN(0x9f649696, 0x5099fe92), TOBN(0x25ddb65c, 0x0b27a54a), + TOBN(0x178279dd, 0xc590da61), TOBN(0x5479a999, 0xfbde681a), + TOBN(0xd0e84e05, 0x013fe162), TOBN(0xbe11dc92, 0x632d471b), + TOBN(0xdf0b0c45, 0xfc0e089f), TOBN(0x04fb15b0, 0x4c144025), + TOBN(0xa61d5fc2, 0x13c99927), TOBN(0xa033e9e0, 0x3de2eb35), + TOBN(0xf8185d5c, 0xb8dacbb4), TOBN(0x9a88e265, 0x8644549d), + TOBN(0xf717af62, 0x54671ff6), TOBN(0x4bd4241b, 0x5fa58603), + TOBN(0x06fba40b, 0xe67773c0), TOBN(0xc1d933d2, 0x6a2847e9), + TOBN(0xf4f5acf3, 0x689e2c70), TOBN(0x92aab0e7, 0x46bafd31), + TOBN(0x798d76aa, 0x3473f6e5), TOBN(0xcc6641db, 0x93141934), + TOBN(0xcae27757, 0xd31e535e), TOBN(0x04cc43b6, 0x87c2ee11), + TOBN(0x8d1f9675, 0x2e029ffa), TOBN(0xc2150672, 0xe4cc7a2c), + TOBN(0x3b03c1e0, 0x8d68b013), TOBN(0xa9d6816f, 0xedf298f3), + TOBN(0x1bfbb529, 0xa2804464), TOBN(0x95a52fae, 0x5db22125), + TOBN(0x55b32160, 0x0e1cb64e), TOBN(0x004828f6, 0x7e7fc9fe), + TOBN(0x13394b82, 0x1bb0fb93), TOBN(0xb6293a2d, 0x35f1a920), + TOBN(0xde35ef21, 0xd145d2d9), TOBN(0xbe6225b3, 0xbb8fa603), + TOBN(0x00fc8f6b, 0x32cf252d), TOBN(0xa28e52e6, 0x117cf8c2), + TOBN(0x9d1dc89b, 0x4c371e6d), TOBN(0xcebe0675, 0x36ef0f28), + TOBN(0x5de05d09, 0xa4292f81), TOBN(0xa8303593, 0x353e3083), + TOBN(0xa1715b0a, 0x7e37a9bb), TOBN(0x8c56f61e, 0x2b8faec3), + TOBN(0x52507431, 0x33c9b102), TOBN(0x0130cefc, 0xa44431f0), + TOBN(0x56039fa0, 0xbd865cfb), TOBN(0x4b03e578, 0xbc5f1dd7), + TOBN(0x40edf2e4, 0xbabe7224), TOBN(0xc752496d, 0x3a1988f6), + TOBN(0xd1572d3b, 0x564beb6b), TOBN(0x0db1d110, 0x39a1c608), + TOBN(0x568d1934, 0x16f60126), TOBN(0x05ae9668, 0xf354af33), + TOBN(0x19de6d37, 0xc92544f2), TOBN(0xcc084353, 0xa35837d5), + TOBN(0xcbb6869c, 0x1a514ece), TOBN(0xb633e728, 0x2e1d1066), + TOBN(0xf15dd69f, 0x936c581c), TOBN(0x96e7b8ce, 0x7439c4f9), + TOBN(0x5e676f48, 0x2e448a5b), TOBN(0xb2ca7d5b, 0xfd916bbb), + TOBN(0xd55a2541, 0xf5024025), TOBN(0x47bc5769, 0xe4c2d937), + TOBN(0x7d31b92a, 0x0362189f), TOBN(0x83f3086e, 0xef7816f9), + TOBN(0xf9f46d94, 0xb587579a), TOBN(0xec2d22d8, 0x30e76c5f), + TOBN(0x27d57461, 0xb000ffcf), TOBN(0xbb7e65f9, 0x364ffc2c), + TOBN(0x7c7c9477, 0x6652a220), TOBN(0x61618f89, 0xd696c981), + TOBN(0x5021701d, 0x89effff3), TOBN(0xf2c8ff8e, 0x7c314163), + TOBN(0x2da413ad, 0x8efb4d3e), TOBN(0x937b5adf, 0xce176d95), + TOBN(0x22867d34, 0x2a67d51c), TOBN(0x262b9b10, 0x18eb3ac9), + TOBN(0x4e314fe4, 0xc43ff28b), TOBN(0x76476627, 0x6a664e7a), + TOBN(0x3e90e40b, 0xb7a565c2), TOBN(0x8588993a, 0xc1acf831), + TOBN(0xd7b501d6, 0x8f938829), TOBN(0x996627ee, 0x3edd7d4c), + TOBN(0x37d44a62, 0x90cd34c7), TOBN(0xa8327499, 0xf3833e8d), + TOBN(0x2e18917d, 0x4bf50353), TOBN(0x85dd726b, 0x556765fb), + TOBN(0x54fe65d6, 0x93d5ab66), TOBN(0x3ddbaced, 0x915c25fe), + TOBN(0xa799d9a4, 0x12f22e85), TOBN(0xe2a24867, 0x6d06f6bc), + TOBN(0xf4f1ee56, 0x43ca1637), TOBN(0xfda2828b, 0x61ece30a), + TOBN(0x758c1a3e, 0xa2dee7a6), TOBN(0xdcde2f3c, 0x734b2284), + TOBN(0xaba445d2, 0x4eaba6ad), TOBN(0x35aaf668, 0x76cee0a7), + TOBN(0x7e0b04a9, 0xe5aa049a), TOBN(0xe74083ad, 0x91103e84), + TOBN(0xbeb183ce, 0x40afecc3), TOBN(0x6b89de9f, 0xea043f7a),} + , + {TOBN(0x0e299d23, 0xfe67ba66), TOBN(0x91450760, 0x93cf2f34), + TOBN(0xf45b5ea9, 0x97fcf913), TOBN(0x5be00843, 0x8bd7ddda), + TOBN(0x358c3e05, 0xd53ff04d), TOBN(0xbf7ccdc3, 0x5de91ef7), + TOBN(0xad684dbf, 0xb69ec1a0), TOBN(0x367e7cf2, 0x801fd997), + TOBN(0x0ca1f3b7, 0xb0dc8595), TOBN(0x27de4608, 0x9f1d9f2e), + TOBN(0x1af3bf39, 0xbadd82a7), TOBN(0x79356a79, 0x65862448), + TOBN(0xc0602345, 0xf5f9a052), TOBN(0x1a8b0f89, 0x139a42f9), + TOBN(0xb53eee42, 0x844d40fc), TOBN(0x93b0bfe5, 0x4e5b6368), + TOBN(0x5434dd02, 0xc024789c), TOBN(0x90dca9ea, 0x41b57bfc), + TOBN(0x8aa898e2, 0x243398df), TOBN(0xf607c834, 0x894a94bb), + TOBN(0xbb07be97, 0xc2c99b76), TOBN(0x6576ba67, 0x18c29302), + TOBN(0x3d79efcc, 0xe703a88c), TOBN(0xf259ced7, 0xb6a0d106), + TOBN(0x0f893a5d, 0xc8de610b), TOBN(0xe8c515fb, 0x67e223ce), + TOBN(0x7774bfa6, 0x4ead6dc5), TOBN(0x89d20f95, 0x925c728f), + TOBN(0x7a1e0966, 0x098583ce), TOBN(0xa2eedb94, 0x93f2a7d7), + TOBN(0x1b282097, 0x4c304d4a), TOBN(0x0842e3da, 0xc077282d), + TOBN(0xe4d972a3, 0x3b9e2d7b), TOBN(0x7cc60b27, 0xc48218ff), + TOBN(0x8fc70838, 0x84149d91), TOBN(0x5c04346f, 0x2f461ecc), + TOBN(0xebe9fdf2, 0x614650a9), TOBN(0x5e35b537, 0xc1f666ac), + TOBN(0x645613d1, 0x88babc83), TOBN(0x88cace3a, 0xc5e1c93e), + TOBN(0x209ca375, 0x3de92e23), TOBN(0xccb03cc8, 0x5fbbb6e3), + TOBN(0xccb90f03, 0xd7b1487e), TOBN(0xfa9c2a38, 0xc710941f), + TOBN(0x756c3823, 0x6724ceed), TOBN(0x3a902258, 0x192d0323), + TOBN(0xb150e519, 0xea5e038e), TOBN(0xdcba2865, 0xc7427591), + TOBN(0xe549237f, 0x78890732), TOBN(0xc443bef9, 0x53fcb4d9), + TOBN(0x9884d8a6, 0xeb3480d6), TOBN(0x8a35b6a1, 0x3048b186), + TOBN(0xb4e44716, 0x65e9a90a), TOBN(0x45bf380d, 0x653006c0), + TOBN(0x8f3f820d, 0x4fe9ae3b), TOBN(0x244a35a0, 0x979a3b71), + TOBN(0xa1010e9d, 0x74cd06ff), TOBN(0x9c17c7df, 0xaca3eeac), + TOBN(0x74c86cd3, 0x8063aa2b), TOBN(0x8595c4b3, 0x734614ff), + TOBN(0xa3de00ca, 0x990f62cc), TOBN(0xd9bed213, 0xca0c3be5), + TOBN(0x7886078a, 0xdf8ce9f5), TOBN(0xddb27ce3, 0x5cd44444), + TOBN(0xed374a66, 0x58926ddd), TOBN(0x138b2d49, 0x908015b8), + TOBN(0x886c6579, 0xde1f7ab8), TOBN(0x888b9aa0, 0xc3020b7a), + TOBN(0xd3ec034e, 0x3a96e355), TOBN(0xba65b0b8, 0xf30fbe9a), + TOBN(0x064c8e50, 0xff21367a), TOBN(0x1f508ea4, 0x0b04b46e), + TOBN(0x98561a49, 0x747c866c), TOBN(0xbbb1e5fe, 0x0518a062), + TOBN(0x20ff4e8b, 0xecdc3608), TOBN(0x7f55cded, 0x20184027), + TOBN(0x8d73ec95, 0xf38c85f0), TOBN(0x5b589fdf, 0x8bc3b8c3), + TOBN(0xbe95dd98, 0x0f12b66f), TOBN(0xf5bd1a09, 0x0e338e01), + TOBN(0x65163ae5, 0x5e915918), TOBN(0x6158d6d9, 0x86f8a46b), + TOBN(0x8466b538, 0xeeebf99c), TOBN(0xca8761f6, 0xbca477ef), + TOBN(0xaf3449c2, 0x9ebbc601), TOBN(0xef3b0f41, 0xe0c3ae2f), + TOBN(0xaa6c577d, 0x5de63752), TOBN(0xe9166601, 0x64682a51), + TOBN(0x5a3097be, 0xfc15aa1e), TOBN(0x40d12548, 0xb54b0745), + TOBN(0x5bad4706, 0x519a5f12), TOBN(0xed03f717, 0xa439dee6), + TOBN(0x0794bb6c, 0x4a02c499), TOBN(0xf725083d, 0xcffe71d2), + TOBN(0x2cad7519, 0x0f3adcaf), TOBN(0x7f68ea1c, 0x43729310), + TOBN(0xe747c8c7, 0xb7ffd977), TOBN(0xec104c35, 0x80761a22), + TOBN(0x8395ebaf, 0x5a3ffb83), TOBN(0xfb3261f4, 0xe4b63db7), + TOBN(0x53544960, 0xd883e544), TOBN(0x13520d70, 0x8cc2eeb8), + TOBN(0x08f6337b, 0xd3d65f99), TOBN(0x83997db2, 0x781cf95b), + TOBN(0xce6ff106, 0x0dbd2c01), TOBN(0x4f8eea6b, 0x1f9ce934), + TOBN(0x546f7c4b, 0x0e993921), TOBN(0x6236a324, 0x5e753fc7), + TOBN(0x65a41f84, 0xa16022e9), TOBN(0x0c18d878, 0x43d1dbb2), + TOBN(0x73c55640, 0x2d4cef9c), TOBN(0xa0428108, 0x70444c74), + TOBN(0x68e4f15e, 0x9afdfb3c), TOBN(0x49a56143, 0x5bdfb6df), + TOBN(0xa9bc1bd4, 0x5f823d97), TOBN(0xbceb5970, 0xea111c2a), + TOBN(0x366b455f, 0xb269bbc4), TOBN(0x7cd85e1e, 0xe9bc5d62), + TOBN(0xc743c41c, 0x4f18b086), TOBN(0xa4b40990, 0x95294fb9), + TOBN(0x9c7c581d, 0x26ee8382), TOBN(0xcf17dcc5, 0x359d638e), + TOBN(0xee8273ab, 0xb728ae3d), TOBN(0x1d112926, 0xf821f047), + TOBN(0x11498477, 0x50491a74), TOBN(0x687fa761, 0xfde0dfb9), + TOBN(0x2c258022, 0x7ea435ab), TOBN(0x6b8bdb94, 0x91ce7e3f), + TOBN(0x4c5b5dc9, 0x3bf834aa), TOBN(0x04371819, 0x4f6c7e4b), + TOBN(0xc284e00a, 0x3736bcad), TOBN(0x0d881118, 0x21ae8f8d), + TOBN(0xf9cf0f82, 0xf48c8e33), TOBN(0xa11fd075, 0xa1bf40db), + TOBN(0xdceab0de, 0xdc2733e5), TOBN(0xc560a8b5, 0x8e986bd7), + TOBN(0x48dd1fe2, 0x3929d097), TOBN(0x3885b290, 0x92f188f1), + TOBN(0x0f2ae613, 0xda6fcdac), TOBN(0x9054303e, 0xb662a46c), + TOBN(0xb6871e44, 0x0738042a), TOBN(0x98e6a977, 0xbdaf6449), + TOBN(0xd8bc0650, 0xd1c9df1b), TOBN(0xef3d6451, 0x36e098f9), + TOBN(0x03fbae82, 0xb6d72d28), TOBN(0x77ca9db1, 0xf5d84080), + TOBN(0x8a112cff, 0xa58efc1c), TOBN(0x518d761c, 0xc564cb4a), + TOBN(0x69b5740e, 0xf0d1b5ce), TOBN(0x717039cc, 0xe9eb1785), + TOBN(0x3fe29f90, 0x22f53382), TOBN(0x8e54ba56, 0x6bc7c95c), + TOBN(0x9c806d8a, 0xf7f91d0f), TOBN(0x3b61b0f1, 0xa82a5728), + TOBN(0x4640032d, 0x94d76754), TOBN(0x273eb5de, 0x47d834c6), + TOBN(0x2988abf7, 0x7b4e4d53), TOBN(0xb7ce66bf, 0xde401777), + TOBN(0x9fba6b32, 0x715071b3), TOBN(0x82413c24, 0xad3a1a98), + TOBN(0x5b7fc8c4, 0xe0e8ad93), TOBN(0xb5679aee, 0x5fab868d), + TOBN(0xb1f9d2fa, 0x2b3946f3), TOBN(0x458897dc, 0x5685b50a), + TOBN(0x1e98c930, 0x89d0caf3), TOBN(0x39564c5f, 0x78642e92), + TOBN(0x1b77729a, 0x0dbdaf18), TOBN(0xf9170722, 0x579e82e6), + TOBN(0x680c0317, 0xe4515fa5), TOBN(0xf85cff84, 0xfb0c790f), + TOBN(0xc7a82aab, 0x6d2e0765), TOBN(0x7446bca9, 0x35c82b32), + TOBN(0x5de607aa, 0x6d63184f), TOBN(0x7c1a46a8, 0x262803a6), + TOBN(0xd218313d, 0xaebe8035), TOBN(0x92113ffd, 0xc73c51f8), + TOBN(0x4b38e083, 0x12e7e46c), TOBN(0x69d0a37a, 0x56126bd5), + TOBN(0xfb3f324b, 0x73c07e04), TOBN(0xa0c22f67, 0x8fda7267), + TOBN(0x8f2c0051, 0x4d2c7d8f), TOBN(0xbc45ced3, 0xcbe2cae5), + TOBN(0xe1c6cf07, 0xa8f0f277), TOBN(0xbc392312, 0x1eb99a98), + TOBN(0x75537b7e, 0x3cc8ac85), TOBN(0x8d725f57, 0xdd02753b), + TOBN(0xfd05ff64, 0xb737df2f), TOBN(0x55fe8712, 0xf6d2531d), + TOBN(0x57ce04a9, 0x6ab6b01c), TOBN(0x69a02a89, 0x7cd93724), + TOBN(0x4f82ac35, 0xcf86699b), TOBN(0x8242d3ad, 0x9cb4b232), + TOBN(0x713d0f65, 0xd62105e5), TOBN(0xbb222bfa, 0x2d29be61), + TOBN(0xf2f9a79e, 0x6cfbef09), TOBN(0xfc24d8d3, 0xd5d6782f), + TOBN(0x5db77085, 0xd4129967), TOBN(0xdb81c3cc, 0xdc3c2a43), + TOBN(0x9d655fc0, 0x05d8d9a3), TOBN(0x3f5d057a, 0x54298026), + TOBN(0x1157f56d, 0x88c54694), TOBN(0xb26baba5, 0x9b09573e), + TOBN(0x2cab03b0, 0x22adffd1), TOBN(0x60a412c8, 0xdd69f383), + TOBN(0xed76e98b, 0x54b25039), TOBN(0xd4ee67d3, 0x687e714d), + TOBN(0x87739648, 0x7b00b594), TOBN(0xce419775, 0xc9ef709b), + TOBN(0x40f76f85, 0x1c203a40), TOBN(0x30d352d6, 0xeafd8f91), + TOBN(0xaf196d3d, 0x95578dd2), TOBN(0xea4bb3d7, 0x77cc3f3d), + TOBN(0x42a5bd03, 0xb98e782b), TOBN(0xac958c40, 0x0624920d), + TOBN(0xb838134c, 0xfc56fcc8), TOBN(0x86ec4ccf, 0x89572e5e), + TOBN(0x69c43526, 0x9be47be0), TOBN(0x323b7dd8, 0xcb28fea1), + TOBN(0xfa5538ba, 0x3a6c67e5), TOBN(0xef921d70, 0x1d378e46), + TOBN(0xf92961fc, 0x3c4b880e), TOBN(0x3f6f914e, 0x98940a67), + TOBN(0xa990eb0a, 0xfef0ff39), TOBN(0xa6c2920f, 0xf0eeff9c), + TOBN(0xca804166, 0x51b8d9a3), TOBN(0x42531bc9, 0x0ffb0db1), + TOBN(0x72ce4718, 0xaa82e7ce), TOBN(0x6e199913, 0xdf574741), + TOBN(0xd5f1b13d, 0xd5d36946), TOBN(0x8255dc65, 0xf68f0194), + TOBN(0xdc9df4cd, 0x8710d230), TOBN(0x3453c20f, 0x138c1988), + TOBN(0x9af98dc0, 0x89a6ef01), TOBN(0x4dbcc3f0, 0x9857df85), + TOBN(0x34805601, 0x5c1ad924), TOBN(0x40448da5, 0xd0493046), + TOBN(0xf629926d, 0x4ee343e2), TOBN(0x6343f1bd, 0x90e8a301), + TOBN(0xefc93491, 0x40815b3f), TOBN(0xf882a423, 0xde8f66fb), + TOBN(0x3a12d5f4, 0xe7db9f57), TOBN(0x7dfba38a, 0x3c384c27), + TOBN(0x7a904bfd, 0x6fc660b1), TOBN(0xeb6c5db3, 0x2773b21c), + TOBN(0xc350ee66, 0x1cdfe049), TOBN(0x9baac0ce, 0x44540f29), + TOBN(0xbc57b6ab, 0xa5ec6aad), TOBN(0x167ce8c3, 0x0a7c1baa), + TOBN(0xb23a03a5, 0x53fb2b56), TOBN(0x6ce141e7, 0x4e057f78), + TOBN(0x796525c3, 0x89e490d9), TOBN(0x0bc95725, 0xa31a7e75), + TOBN(0x1ec56791, 0x1220fd06), TOBN(0x716e3a3c, 0x408b0bd6), + TOBN(0x31cd6bf7, 0xe8ebeba9), TOBN(0xa7326ca6, 0xbee6b670), + TOBN(0x3d9f851c, 0xcd090c43), TOBN(0x561e8f13, 0xf12c3988), + TOBN(0x50490b6a, 0x904b7be4), TOBN(0x61690ce1, 0x0410737b), + TOBN(0x299e9a37, 0x0f009052), TOBN(0x258758f0, 0xf026092e), + TOBN(0x9fa255f3, 0xfdfcdc0f), TOBN(0xdbc9fb1f, 0xc0e1bcd2), + TOBN(0x35f9dd6e, 0x24651840), TOBN(0xdca45a84, 0xa5c59abc), + TOBN(0x103d396f, 0xecca4938), TOBN(0x4532da0a, 0xb97b3f29), + TOBN(0xc4135ea5, 0x1999a6bf), TOBN(0x3aa9505a, 0x5e6bf2ee), + TOBN(0xf77cef06, 0x3f5be093), TOBN(0x97d1a0f8, 0xa943152e), + TOBN(0x2cb0ebba, 0x2e1c21dd), TOBN(0xf41b29fc, 0x2c6797c4), + TOBN(0xc6e17321, 0xb300101f), TOBN(0x4422b0e9, 0xd0d79a89), + TOBN(0x49e4901c, 0x92f1bfc4), TOBN(0x06ab1f8f, 0xe1e10ed9), + TOBN(0x84d35577, 0xdb2926b8), TOBN(0xca349d39, 0x356e8ec2), + TOBN(0x70b63d32, 0x343bf1a9), TOBN(0x8fd3bd28, 0x37d1a6b1), + TOBN(0x0454879c, 0x316865b4), TOBN(0xee959ff6, 0xc458efa2), + TOBN(0x0461dcf8, 0x9706dc3f), TOBN(0x737db0e2, 0x164e4b2e), + TOBN(0x09262680, 0x2f8843c8), TOBN(0x54498bbc, 0x7745e6f6), + TOBN(0x359473fa, 0xa29e24af), TOBN(0xfcc3c454, 0x70aa87a1), + TOBN(0xfd2c4bf5, 0x00573ace), TOBN(0xb65b514e, 0x28dd1965), + TOBN(0xe46ae7cf, 0x2193e393), TOBN(0x60e9a4e1, 0xf5444d97), + TOBN(0xe7594e96, 0x00ff38ed), TOBN(0x43d84d2f, 0x0a0e0f02), + TOBN(0x8b6db141, 0xee398a21), TOBN(0xb88a56ae, 0xe3bcc5be), + TOBN(0x0a1aa52f, 0x373460ea), TOBN(0x20da1a56, 0x160bb19b), + TOBN(0xfb54999d, 0x65bf0384), TOBN(0x71a14d24, 0x5d5a180e), + TOBN(0xbc44db7b, 0x21737b04), TOBN(0xd84fcb18, 0x01dd8e92), + TOBN(0x80de937b, 0xfa44b479), TOBN(0x53505499, 0x5c98fd4f), + TOBN(0x1edb12ab, 0x28f08727), TOBN(0x4c58b582, 0xa5f3ef53), + TOBN(0xbfb236d8, 0x8327f246), TOBN(0xc3a3bfaa, 0x4d7df320), + TOBN(0xecd96c59, 0xb96024f2), TOBN(0xfc293a53, 0x7f4e0433), + TOBN(0x5341352b, 0x5acf6e10), TOBN(0xc50343fd, 0xafe652c3), + TOBN(0x4af3792d, 0x18577a7f), TOBN(0xe1a4c617, 0xaf16823d), + TOBN(0x9b26d0cd, 0x33425d0a), TOBN(0x306399ed, 0x9b7bc47f), + TOBN(0x2a792f33, 0x706bb20b), TOBN(0x31219614, 0x98111055), + TOBN(0x864ec064, 0x87f5d28b), TOBN(0x11392d91, 0x962277fd), + TOBN(0xb5aa7942, 0xbb6aed5f), TOBN(0x080094dc, 0x47e799d9), + TOBN(0x4afa588c, 0x208ba19b), TOBN(0xd3e7570f, 0x8512f284), + TOBN(0xcbae64e6, 0x02f5799a), TOBN(0xdeebe7ef, 0x514b9492), + TOBN(0x30300f98, 0xe5c298ff), TOBN(0x17f561be, 0x3678361f), + TOBN(0xf52ff312, 0x98cb9a16), TOBN(0x6233c3bc, 0x5562d490), + TOBN(0x7bfa15a1, 0x92e3a2cb), TOBN(0x961bcfd1, 0xe6365119), + TOBN(0x3bdd29bf, 0x2c8c53b1), TOBN(0x739704df, 0x822844ba), + TOBN(0x7dacfb58, 0x7e7b754b), TOBN(0x23360791, 0xa806c9b9), + TOBN(0xe7eb88c9, 0x23504452), TOBN(0x2983e996, 0x852c1783), + TOBN(0xdd4ae529, 0x958d881d), TOBN(0x026bae03, 0x262c7b3c), + TOBN(0x3a6f9193, 0x960b52d1), TOBN(0xd0980f90, 0x92696cfb), + TOBN(0x4c1f428c, 0xd5f30851), TOBN(0x94dfed27, 0x2a4f6630), + TOBN(0x4df53772, 0xfc5d48a4), TOBN(0xdd2d5a2f, 0x933260ce), + TOBN(0x574115bd, 0xd44cc7a5), TOBN(0x4ba6b20d, 0xbd12533a), + TOBN(0x30e93cb8, 0x243057c9), TOBN(0x794c486a, 0x14de320e), + TOBN(0xe925d4ce, 0xf21496e4), TOBN(0xf951d198, 0xec696331), + TOBN(0x9810e2de, 0x3e8d812f), TOBN(0xd0a47259, 0x389294ab), + TOBN(0x513ba2b5, 0x0e3bab66), TOBN(0x462caff5, 0xabad306f), + TOBN(0xe2dc6d59, 0xaf04c49e), TOBN(0x1aeb8750, 0xe0b84b0b), + TOBN(0xc034f12f, 0x2f7d0ca2), TOBN(0x6d2e8128, 0xe06acf2f), + TOBN(0x801f4f83, 0x21facc2f), TOBN(0xa1170c03, 0xf40ef607), + TOBN(0xfe0a1d4f, 0x7805a99c), TOBN(0xbde56a36, 0xcc26aba5), + TOBN(0x5b1629d0, 0x35531f40), TOBN(0xac212c2b, 0x9afa6108), + TOBN(0x30a06bf3, 0x15697be5), TOBN(0x6f0545dc, 0x2c63c7c1), + TOBN(0x5d8cb842, 0x7ccdadaf), TOBN(0xd52e379b, 0xac7015bb), + TOBN(0xc4f56147, 0xf462c23e), TOBN(0xd44a4298, 0x46bc24b0), + TOBN(0xbc73d23a, 0xe2856d4f), TOBN(0x61cedd8c, 0x0832bcdf), + TOBN(0x60953556, 0x99f241d7), TOBN(0xee4adbd7, 0x001a349d), + TOBN(0x0b35bf6a, 0xaa89e491), TOBN(0x7f0076f4, 0x136f7546), + TOBN(0xd19a18ba, 0x9264da3d), TOBN(0x6eb2d2cd, 0x62a7a28b), + TOBN(0xcdba941f, 0x8761c971), TOBN(0x1550518b, 0xa3be4a5d), + TOBN(0xd0e8e2f0, 0x57d0b70c), TOBN(0xeea8612e, 0xcd133ba3), + TOBN(0x814670f0, 0x44416aec), TOBN(0x424db6c3, 0x30775061), + TOBN(0xd96039d1, 0x16213fd1), TOBN(0xc61e7fa5, 0x18a3478f), + TOBN(0xa805bdcc, 0xcb0c5021), TOBN(0xbdd6f3a8, 0x0cc616dd), + TOBN(0x06009667, 0x5d97f7e2), TOBN(0x31db0fc1, 0xaf0bf4b6), + TOBN(0x23680ed4, 0x5491627a), TOBN(0xb99a3c66, 0x7d741fb1), + TOBN(0xe9bb5f55, 0x36b1ff92), TOBN(0x29738577, 0x512b388d), + TOBN(0xdb8a2ce7, 0x50fcf263), TOBN(0x385346d4, 0x6c4f7b47), + TOBN(0xbe86c5ef, 0x31631f9e), TOBN(0xbf91da21, 0x03a57a29), + TOBN(0xc3b1f796, 0x7b23f821), TOBN(0x0f7d00d2, 0x770db354), + TOBN(0x8ffc6c3b, 0xd8fe79da), TOBN(0xcc5e8c40, 0xd525c996), + TOBN(0x4640991d, 0xcfff632a), TOBN(0x64d97e8c, 0x67112528), + TOBN(0xc232d973, 0x02f1cd1e), TOBN(0xce87eacb, 0x1dd212a4), + TOBN(0x6e4c8c73, 0xe69802f7), TOBN(0x12ef0290, 0x1fffddbd), + TOBN(0x941ec74e, 0x1bcea6e2), TOBN(0xd0b54024, 0x3cb92cbb), + TOBN(0x809fb9d4, 0x7e8f9d05), TOBN(0x3bf16159, 0xf2992aae), + TOBN(0xad40f279, 0xf8a7a838), TOBN(0x11aea631, 0x05615660), + TOBN(0xbf52e6f1, 0xa01f6fa1), TOBN(0xef046995, 0x3dc2aec9), + TOBN(0x785dbec9, 0xd8080711), TOBN(0xe1aec60a, 0x9fdedf76), + TOBN(0xece797b5, 0xfa21c126), TOBN(0xc66e898f, 0x05e52732), + TOBN(0x39bb69c4, 0x08811fdb), TOBN(0x8bfe1ef8, 0x2fc7f082), + TOBN(0xc8e7a393, 0x174f4138), TOBN(0xfba8ad1d, 0xd58d1f98), + TOBN(0xbc21d0ce, 0xbfd2fd5b), TOBN(0x0b839a82, 0x6ee60d61), + TOBN(0xaacf7658, 0xafd22253), TOBN(0xb526bed8, 0xaae396b3), + TOBN(0xccc1bbc2, 0x38564464), TOBN(0x9e3ff947, 0x8c45bc73), + TOBN(0xcde9bca3, 0x58188a78), TOBN(0x138b8ee0, 0xd73bf8f7), + TOBN(0x5c7e234c, 0x4123c489), TOBN(0x66e69368, 0xfa643297), + TOBN(0x0629eeee, 0x39a15fa3), TOBN(0x95fab881, 0xa9e2a927), + TOBN(0xb2497007, 0xeafbb1e1), TOBN(0xd75c9ce6, 0xe75b7a93), + TOBN(0x3558352d, 0xefb68d78), TOBN(0xa2f26699, 0x223f6396), + TOBN(0xeb911ecf, 0xe469b17a), TOBN(0x62545779, 0xe72d3ec2), + TOBN(0x8ea47de7, 0x82cb113f), TOBN(0xebe4b086, 0x4e1fa98d), + TOBN(0xec2d5ed7, 0x8cdfedb1), TOBN(0xa535c077, 0xfe211a74), + TOBN(0x9678109b, 0x11d244c5), TOBN(0xf17c8bfb, 0xbe299a76), + TOBN(0xb651412e, 0xfb11fbc4), TOBN(0xea0b5482, 0x94ab3f65), + TOBN(0xd8dffd95, 0x0cf78243), TOBN(0x2e719e57, 0xce0361d4), + TOBN(0x9007f085, 0x304ddc5b), TOBN(0x095e8c6d, 0x4daba2ea), + TOBN(0x5a33cdb4, 0x3f9d28a9), TOBN(0x85b95cd8, 0xe2283003), + TOBN(0xbcd6c819, 0xb9744733), TOBN(0x29c5f538, 0xfc7f5783), + TOBN(0x6c49b2fa, 0xd59038e4), TOBN(0x68349cc1, 0x3bbe1018), + TOBN(0xcc490c1d, 0x21830ee5), TOBN(0x36f9c4ee, 0xe9bfa297), + TOBN(0x58fd7294, 0x48de1a94), TOBN(0xaadb13a8, 0x4e8f2cdc), + TOBN(0x515eaaa0, 0x81313dba), TOBN(0xc76bb468, 0xc2152dd8), + TOBN(0x357f8d75, 0xa653dbf8), TOBN(0xe4d8c4d1, 0xb14ac143), + TOBN(0xbdb8e675, 0xb055cb40), TOBN(0x898f8e7b, 0x977b5167), + TOBN(0xecc65651, 0xb82fb863), TOBN(0x56544814, 0x6d88f01f), + TOBN(0xb0928e95, 0x263a75a9), TOBN(0xcfb6836f, 0x1a22fcda), + TOBN(0x651d14db, 0x3f3bd37c), TOBN(0x1d3837fb, 0xb6ad4664), + TOBN(0x7c5fb538, 0xff4f94ab), TOBN(0x7243c712, 0x6d7fb8f2), + TOBN(0xef13d60c, 0xa85c5287), TOBN(0x18cfb7c7, 0x4bb8dd1b), + TOBN(0x82f9bfe6, 0x72908219), TOBN(0x35c4592b, 0x9d5144ab), + TOBN(0x52734f37, 0x9cf4b42f), TOBN(0x6bac55e7, 0x8c60ddc4), + TOBN(0xb5cd811e, 0x94dea0f6), TOBN(0x259ecae4, 0xe18cc1a3), + TOBN(0x6a0e836e, 0x15e660f8), TOBN(0x6c639ea6, 0x0e02bff2), + TOBN(0x8721b8cb, 0x7e1026fd), TOBN(0x9e73b50b, 0x63261942), + TOBN(0xb8c70974, 0x77f01da3), TOBN(0x1839e6a6, 0x8268f57f), + TOBN(0x571b9415, 0x5150b805), TOBN(0x1892389e, 0xf92c7097), + TOBN(0x8d69c18e, 0x4a084b95), TOBN(0x7014c512, 0xbe5b495c), + TOBN(0x4780db36, 0x1b07523c), TOBN(0x2f6219ce, 0x2c1c64fa), + TOBN(0xc38b81b0, 0x602c105a), TOBN(0xab4f4f20, 0x5dc8e360), + TOBN(0x20d3c982, 0xcf7d62d2), TOBN(0x1f36e29d, 0x23ba8150), + TOBN(0x48ae0bf0, 0x92763f9e), TOBN(0x7a527e6b, 0x1d3a7007), + TOBN(0xb4a89097, 0x581a85e3), TOBN(0x1f1a520f, 0xdc158be5), + TOBN(0xf98db37d, 0x167d726e), TOBN(0x8802786e, 0x1113e862)} + , + {TOBN(0xefb2149e, 0x36f09ab0), TOBN(0x03f163ca, 0x4a10bb5b), + TOBN(0xd0297045, 0x06e20998), TOBN(0x56f0af00, 0x1b5a3bab), + TOBN(0x7af4cfec, 0x70880e0d), TOBN(0x7332a66f, 0xbe3d913f), + TOBN(0x32e6c84a, 0x7eceb4bd), TOBN(0xedc4a79a, 0x9c228f55), + TOBN(0xc37c7dd0, 0xc55c4496), TOBN(0xa6a96357, 0x25bbabd2), + TOBN(0x5b7e63f2, 0xadd7f363), TOBN(0x9dce3782, 0x2e73f1df), + TOBN(0xe1e5a16a, 0xb2b91f71), TOBN(0xe4489823, 0x5ba0163c), + TOBN(0xf2759c32, 0xf6e515ad), TOBN(0xa5e2f1f8, 0x8615eecf), + TOBN(0x74519be7, 0xabded551), TOBN(0x03d358b8, 0xc8b74410), + TOBN(0x4d00b10b, 0x0e10d9a9), TOBN(0x6392b0b1, 0x28da52b7), + TOBN(0x6744a298, 0x0b75c904), TOBN(0xc305b0ae, 0xa8f7f96c), + TOBN(0x042e421d, 0x182cf932), TOBN(0xf6fc5d50, 0x9e4636ca), + TOBN(0x795847c9, 0xd64cc78c), TOBN(0x6c50621b, 0x9b6cb27b), + TOBN(0x07099bf8, 0xdf8022ab), TOBN(0x48f862eb, 0xc04eda1d), + TOBN(0xd12732ed, 0xe1603c16), TOBN(0x19a80e0f, 0x5c9a9450), + TOBN(0xe2257f54, 0xb429b4fc), TOBN(0x66d3b2c6, 0x45460515), + TOBN(0x6ca4f87e, 0x822e37be), TOBN(0x73f237b4, 0x253bda4e), + TOBN(0xf747f3a2, 0x41190aeb), TOBN(0xf06fa36f, 0x804cf284), + TOBN(0x0a6bbb6e, 0xfc621c12), TOBN(0x5d624b64, 0x40b80ec6), + TOBN(0x4b072425, 0x7ba556f3), TOBN(0x7fa0c354, 0x3e2d20a8), + TOBN(0xe921fa31, 0xe3229d41), TOBN(0xa929c652, 0x94531bd4), + TOBN(0x84156027, 0xa6d38209), TOBN(0xf3d69f73, 0x6bdb97bd), + TOBN(0x8906d19a, 0x16833631), TOBN(0x68a34c2e, 0x03d51be3), + TOBN(0xcb59583b, 0x0e511cd8), TOBN(0x99ce6bfd, 0xfdc132a8), + TOBN(0x3facdaaa, 0xffcdb463), TOBN(0x658bbc1a, 0x34a38b08), + TOBN(0x12a801f8, 0xf1a9078d), TOBN(0x1567bcf9, 0x6ab855de), + TOBN(0xe08498e0, 0x3572359b), TOBN(0xcf0353e5, 0x8659e68b), + TOBN(0xbb86e9c8, 0x7d23807c), TOBN(0xbc08728d, 0x2198e8a2), + TOBN(0x8de2b7bc, 0x453cadd6), TOBN(0x203900a7, 0xbc0bc1f8), + TOBN(0xbcd86e47, 0xa6abd3af), TOBN(0x911cac12, 0x8502effb), + TOBN(0x2d550242, 0xec965469), TOBN(0x0e9f7692, 0x29e0017e), + TOBN(0x633f078f, 0x65979885), TOBN(0xfb87d449, 0x4cf751ef), + TOBN(0xe1790e4b, 0xfc25419a), TOBN(0x36467203, 0x4bff3cfd), + TOBN(0xc8db6386, 0x25b6e83f), TOBN(0x6cc69f23, 0x6cad6fd2), + TOBN(0x0219e45a, 0x6bc68bb9), TOBN(0xe43d79b6, 0x297f7334), + TOBN(0x7d445368, 0x465dc97c), TOBN(0x4b9eea32, 0x2a0b949a), + TOBN(0x1b96c6ba, 0x6102d021), TOBN(0xeaafac78, 0x2f4461ea), + TOBN(0xd4b85c41, 0xc49f19a8), TOBN(0x275c28e4, 0xcf538875), + TOBN(0x35451a9d, 0xdd2e54e0), TOBN(0x6991adb5, 0x0605618b), + TOBN(0x5b8b4bcd, 0x7b36cd24), TOBN(0x372a4f8c, 0x56f37216), + TOBN(0xc890bd73, 0xa6a5da60), TOBN(0x6f083da0, 0xdc4c9ff0), + TOBN(0xf4e14d94, 0xf0536e57), TOBN(0xf9ee1eda, 0xaaec8243), + TOBN(0x571241ec, 0x8bdcf8e7), TOBN(0xa5db8271, 0x0b041e26), + TOBN(0x9a0b9a99, 0xe3fff040), TOBN(0xcaaf21dd, 0x7c271202), + TOBN(0xb4e2b2e1, 0x4f0dd2e8), TOBN(0xe77e7c4f, 0x0a377ac7), + TOBN(0x69202c3f, 0x0d7a2198), TOBN(0xf759b7ff, 0x28200eb8), + TOBN(0xc87526ed, 0xdcfe314e), TOBN(0xeb84c524, 0x53d5cf99), + TOBN(0xb1b52ace, 0x515138b6), TOBN(0x5aa7ff8c, 0x23fca3f4), + TOBN(0xff0b13c3, 0xb9791a26), TOBN(0x960022da, 0xcdd58b16), + TOBN(0xdbd55c92, 0x57aad2de), TOBN(0x3baaaaa3, 0xf30fe619), + TOBN(0x9a4b2346, 0x0d881efd), TOBN(0x506416c0, 0x46325e2a), + TOBN(0x91381e76, 0x035c18d4), TOBN(0xb3bb68be, 0xf27817b0), + TOBN(0x15bfb8bf, 0x5116f937), TOBN(0x7c64a586, 0xc1268943), + TOBN(0x71e25cc3, 0x8419a2c8), TOBN(0x9fd6b0c4, 0x8335f463), + TOBN(0x4bf0ba3c, 0xe8ee0e0e), TOBN(0x6f6fba60, 0x298c21fa), + TOBN(0x57d57b39, 0xae66bee0), TOBN(0x292d5130, 0x22672544), + TOBN(0xf451105d, 0xbab093b3), TOBN(0x012f59b9, 0x02839986), + TOBN(0x8a915802, 0x3474a89c), TOBN(0x048c919c, 0x2de03e97), + TOBN(0xc476a2b5, 0x91071cd5), TOBN(0x791ed89a, 0x034970a5), + TOBN(0x89bd9042, 0xe1b7994b), TOBN(0x8eaf5179, 0xa1057ffd), + TOBN(0x6066e2a2, 0xd551ee10), TOBN(0x87a8f1d8, 0x727e09a6), + TOBN(0x00d08bab, 0x2c01148d), TOBN(0x6da8e4f1, 0x424f33fe), + TOBN(0x466d17f0, 0xcf9a4e71), TOBN(0xff502010, 0x3bf5cb19), + TOBN(0xdccf97d8, 0xd062ecc0), TOBN(0x80c0d9af, 0x81d80ac4), + TOBN(0xe87771d8, 0x033f2876), TOBN(0xb0186ec6, 0x7d5cc3db), + TOBN(0x58e8bb80, 0x3bc9bc1d), TOBN(0x4d1395cc, 0x6f6ef60e), + TOBN(0xa73c62d6, 0x186244a0), TOBN(0x918e5f23, 0x110a5b53), + TOBN(0xed4878ca, 0x741b7eab), TOBN(0x3038d71a, 0xdbe03e51), + TOBN(0x840204b7, 0xa93c3246), TOBN(0x21ab6069, 0xa0b9b4cd), + TOBN(0xf5fa6e2b, 0xb1d64218), TOBN(0x1de6ad0e, 0xf3d56191), + TOBN(0x570aaa88, 0xff1929c7), TOBN(0xc6df4c6b, 0x640e87b5), + TOBN(0xde8a74f2, 0xc65f0ccc), TOBN(0x8b972fd5, 0xe6f6cc01), + TOBN(0x3fff36b6, 0x0b846531), TOBN(0xba7e45e6, 0x10a5e475), + TOBN(0x84a1d10e, 0x4145b6c5), TOBN(0xf1f7f91a, 0x5e046d9d), + TOBN(0x0317a692, 0x44de90d7), TOBN(0x951a1d4a, 0xf199c15e), + TOBN(0x91f78046, 0xc9d73deb), TOBN(0x74c82828, 0xfab8224f), + TOBN(0xaa6778fc, 0xe7560b90), TOBN(0xb4073e61, 0xa7e824ce), + TOBN(0xff0d693c, 0xd642eba8), TOBN(0x7ce2e57a, 0x5dccef38), + TOBN(0x89c2c789, 0x1df1ad46), TOBN(0x83a06922, 0x098346fd), + TOBN(0x2d715d72, 0xda2fc177), TOBN(0x7b6dd71d, 0x85b6cf1d), + TOBN(0xc60a6d0a, 0x73fa9cb0), TOBN(0xedd3992e, 0x328bf5a9), + TOBN(0xc380ddd0, 0x832c8c82), TOBN(0xd182d410, 0xa2a0bf50), + TOBN(0x7d9d7438, 0xd9a528db), TOBN(0xe8b1a0e9, 0xcaf53994), + TOBN(0xddd6e5fe, 0x0e19987c), TOBN(0xacb8df03, 0x190b059d), + TOBN(0x53703a32, 0x8300129f), TOBN(0x1f637662, 0x68c43bfd), + TOBN(0xbcbd1913, 0x00e54051), TOBN(0x812fcc62, 0x7bf5a8c5), + TOBN(0x3f969d5f, 0x29fb85da), TOBN(0x72f4e00a, 0x694759e8), + TOBN(0x426b6e52, 0x790726b7), TOBN(0x617bbc87, 0x3bdbb209), + TOBN(0x511f8bb9, 0x97aee317), TOBN(0x812a4096, 0xe81536a8), + TOBN(0x137dfe59, 0x3ac09b9b), TOBN(0x0682238f, 0xba8c9a7a), + TOBN(0x7072ead6, 0xaeccb4bd), TOBN(0x6a34e9aa, 0x692ba633), + TOBN(0xc82eaec2, 0x6fff9d33), TOBN(0xfb753512, 0x1d4d2b62), + TOBN(0x1a0445ff, 0x1d7aadab), TOBN(0x65d38260, 0xd5f6a67c), + TOBN(0x6e62fb08, 0x91cfb26f), TOBN(0xef1e0fa5, 0x5c7d91d6), + TOBN(0x47e7c7ba, 0x33db72cd), TOBN(0x017cbc09, 0xfa7c74b2), + TOBN(0x3c931590, 0xf50a503c), TOBN(0xcac54f60, 0x616baa42), + TOBN(0x9b6cd380, 0xb2369f0f), TOBN(0x97d3a70d, 0x23c76151), + TOBN(0x5f9dd6fc, 0x9862a9c6), TOBN(0x044c4ab2, 0x12312f51), + TOBN(0x035ea0fd, 0x834a2ddc), TOBN(0x49e6b862, 0xcc7b826d), + TOBN(0xb03d6883, 0x62fce490), TOBN(0x62f2497a, 0xb37e36e9), + TOBN(0x04b005b6, 0xc6458293), TOBN(0x36bb5276, 0xe8d10af7), + TOBN(0xacf2dc13, 0x8ee617b8), TOBN(0x470d2d35, 0xb004b3d4), + TOBN(0x06790832, 0xfeeb1b77), TOBN(0x2bb75c39, 0x85657f9c), + TOBN(0xd70bd4ed, 0xc0f60004), TOBN(0xfe797ecc, 0x219b018b), + TOBN(0x9b5bec2a, 0x753aebcc), TOBN(0xdaf9f3dc, 0xc939eca5), + TOBN(0xd6bc6833, 0xd095ad09), TOBN(0x98abdd51, 0xdaa4d2fc), + TOBN(0xd9840a31, 0x8d168be5), TOBN(0xcf7c10e0, 0x2325a23c), + TOBN(0xa5c02aa0, 0x7e6ecfaf), TOBN(0x2462e7e6, 0xb5bfdf18), + TOBN(0xab2d8a8b, 0xa0cc3f12), TOBN(0x68dd485d, 0xbc672a29), + TOBN(0x72039752, 0x596f2cd3), TOBN(0x5d3eea67, 0xa0cf3d8d), + TOBN(0x810a1a81, 0xe6602671), TOBN(0x8f144a40, 0x14026c0c), + TOBN(0xbc753a6d, 0x76b50f85), TOBN(0xc4dc21e8, 0x645cd4a4), + TOBN(0xc5262dea, 0x521d0378), TOBN(0x802b8e0e, 0x05011c6f), + TOBN(0x1ba19cbb, 0x0b4c19ea), TOBN(0x21db64b5, 0xebf0aaec), + TOBN(0x1f394ee9, 0x70342f9d), TOBN(0x93a10aee, 0x1bc44a14), + TOBN(0xa7eed31b, 0x3efd0baa), TOBN(0x6e7c824e, 0x1d154e65), + TOBN(0xee23fa81, 0x9966e7ee), TOBN(0x64ec4aa8, 0x05b7920d), + TOBN(0x2d44462d, 0x2d90aad4), TOBN(0xf44dd195, 0xdf277ad5), + TOBN(0x8d6471f1, 0xbb46b6a1), TOBN(0x1e65d313, 0xfd885090), + TOBN(0x33a800f5, 0x13a977b4), TOBN(0xaca9d721, 0x0797e1ef), + TOBN(0x9a5a85a0, 0xfcff6a17), TOBN(0x9970a3f3, 0x1eca7cee), + TOBN(0xbb9f0d6b, 0xc9504be3), TOBN(0xe0c504be, 0xadd24ee2), + TOBN(0x7e09d956, 0x77fcc2f4), TOBN(0xef1a5227, 0x65bb5fc4), + TOBN(0x145d4fb1, 0x8b9286aa), TOBN(0x66fd0c5d, 0x6649028b), + TOBN(0x98857ceb, 0x1bf4581c), TOBN(0xe635e186, 0xaca7b166), + TOBN(0x278ddd22, 0x659722ac), TOBN(0xa0903c4c, 0x1db68007), + TOBN(0x366e4589, 0x48f21402), TOBN(0x31b49c14, 0xb96abda2), + TOBN(0x329c4b09, 0xe0403190), TOBN(0x97197ca3, 0xd29f43fe), + TOBN(0x8073dd1e, 0x274983d8), TOBN(0xda1a3bde, 0x55717c8f), + TOBN(0xfd3d4da2, 0x0361f9d1), TOBN(0x1332d081, 0x4c7de1ce), + TOBN(0x9b7ef7a3, 0xaa6d0e10), TOBN(0x17db2e73, 0xf54f1c4a), + TOBN(0xaf3dffae, 0x4cd35567), TOBN(0xaaa2f406, 0xe56f4e71), + TOBN(0x8966759e, 0x7ace3fc7), TOBN(0x9594eacf, 0x45a8d8c6), + TOBN(0x8de3bd8b, 0x91834e0e), TOBN(0xafe4ca53, 0x548c0421), + TOBN(0xfdd7e856, 0xe6ee81c6), TOBN(0x8f671beb, 0x6b891a3a), + TOBN(0xf7a58f2b, 0xfae63829), TOBN(0x9ab186fb, 0x9c11ac9f), + TOBN(0x8d6eb369, 0x10b5be76), TOBN(0x046b7739, 0xfb040bcd), + TOBN(0xccb4529f, 0xcb73de88), TOBN(0x1df0fefc, 0xcf26be03), + TOBN(0xad7757a6, 0xbcfcd027), TOBN(0xa8786c75, 0xbb3165ca), + TOBN(0xe9db1e34, 0x7e99a4d9), TOBN(0x99ee86df, 0xb06c504b), + TOBN(0x5b7c2ddd, 0xc15c9f0a), TOBN(0xdf87a734, 0x4295989e), + TOBN(0x59ece47c, 0x03d08fda), TOBN(0xb074d3dd, 0xad5fc702), + TOBN(0x20407903, 0x51a03776), TOBN(0x2bb1f77b, 0x2a608007), + TOBN(0x25c58f4f, 0xe1153185), TOBN(0xe6df62f6, 0x766e6447), + TOBN(0xefb3d1be, 0xed51275a), TOBN(0x5de47dc7, 0x2f0f483f), + TOBN(0x7932d98e, 0x97c2bedf), TOBN(0xd5c11927, 0x0219f8a1), + TOBN(0x9d751200, 0xa73a294e), TOBN(0x5f88434a, 0x9dc20172), + TOBN(0xd28d9fd3, 0xa26f506a), TOBN(0xa890cd31, 0x9d1dcd48), + TOBN(0x0aebaec1, 0x70f4d3b4), TOBN(0xfd1a1369, 0x0ffc8d00), + TOBN(0xb9d9c240, 0x57d57838), TOBN(0x45929d26, 0x68bac361), + TOBN(0x5a2cd060, 0x25b15ca6), TOBN(0x4b3c83e1, 0x6e474446), + TOBN(0x1aac7578, 0xee1e5134), TOBN(0xa418f5d6, 0xc91e2f41), + TOBN(0x6936fc8a, 0x213ed68b), TOBN(0x860ae7ed, 0x510a5224), + TOBN(0x63660335, 0xdef09b53), TOBN(0x641b2897, 0xcd79c98d), + TOBN(0x29bd38e1, 0x01110f35), TOBN(0x79c26f42, 0x648b1937), + TOBN(0x64dae519, 0x9d9164f4), TOBN(0xd85a2310, 0x0265c273), + TOBN(0x7173dd5d, 0x4b07e2b1), TOBN(0xd144c4cb, 0x8d9ea221), + TOBN(0xe8b04ea4, 0x1105ab14), TOBN(0x92dda542, 0xfe80d8f1), + TOBN(0xe9982fa8, 0xcf03dce6), TOBN(0x8b5ea965, 0x1a22cffc), + TOBN(0xf7f4ea7f, 0x3fad88c4), TOBN(0x62db773e, 0x6a5ba95c), + TOBN(0xd20f02fb, 0x93f24567), TOBN(0xfd46c69a, 0x315257ca), + TOBN(0x0ac74cc7, 0x8bcab987), TOBN(0x46f31c01, 0x5ceca2f5), + TOBN(0x40aedb59, 0x888b219e), TOBN(0xe50ecc37, 0xe1fccd02), + TOBN(0x1bcd9dad, 0x911f816c), TOBN(0x583cc1ec, 0x8db9b00c), + TOBN(0xf3cd2e66, 0xa483bf11), TOBN(0xfa08a6f5, 0xb1b2c169), + TOBN(0xf375e245, 0x4be9fa28), TOBN(0x99a7ffec, 0x5b6d011f), + TOBN(0x6a3ebddb, 0xc4ae62da), TOBN(0x6cea00ae, 0x374aef5d), + TOBN(0xab5fb98d, 0x9d4d05bc), TOBN(0x7cba1423, 0xd560f252), + TOBN(0x49b2cc21, 0x208490de), TOBN(0x1ca66ec3, 0xbcfb2879), + TOBN(0x7f1166b7, 0x1b6fb16f), TOBN(0xfff63e08, 0x65fe5db3), + TOBN(0xb8345abe, 0x8b2610be), TOBN(0xb732ed80, 0x39de3df4), + TOBN(0x0e24ed50, 0x211c32b4), TOBN(0xd10d8a69, 0x848ff27d), + TOBN(0xc1074398, 0xed4de248), TOBN(0xd7cedace, 0x10488927), + TOBN(0xa4aa6bf8, 0x85673e13), TOBN(0xb46bae91, 0x6daf30af), + TOBN(0x07088472, 0xfcef7ad8), TOBN(0x61151608, 0xd4b35e97), + TOBN(0xbcfe8f26, 0xdde29986), TOBN(0xeb84c4c7, 0xd5a34c79), + TOBN(0xc1eec55c, 0x164e1214), TOBN(0x891be86d, 0xa147bb03), + TOBN(0x9fab4d10, 0x0ba96835), TOBN(0xbf01e9b8, 0xa5c1ae9f), + TOBN(0x6b4de139, 0xb186ebc0), TOBN(0xd5c74c26, 0x85b91bca), + TOBN(0x5086a99c, 0xc2d93854), TOBN(0xeed62a7b, 0xa7a9dfbc), + TOBN(0x8778ed6f, 0x76b7618a), TOBN(0xbff750a5, 0x03b66062), + TOBN(0x4cb7be22, 0xb65186db), TOBN(0x369dfbf0, 0xcc3a6d13), + TOBN(0xc7dab26c, 0x7191a321), TOBN(0x9edac3f9, 0x40ed718e), + TOBN(0xbc142b36, 0xd0cfd183), TOBN(0xc8af82f6, 0x7c991693), + TOBN(0xb3d1e4d8, 0x97ce0b2a), TOBN(0xe6d7c87f, 0xc3a55cdf), + TOBN(0x35846b95, 0x68b81afe), TOBN(0x018d12af, 0xd3c239d8), + TOBN(0x2b2c6208, 0x01206e15), TOBN(0xe0e42453, 0xa3b882c6), + TOBN(0x854470a3, 0xa50162d5), TOBN(0x08157478, 0x7017a62a), + TOBN(0x18bd3fb4, 0x820357c7), TOBN(0x992039ae, 0x6f1458ad), + TOBN(0x9a1df3c5, 0x25b44aa1), TOBN(0x2d780357, 0xed3d5281), + TOBN(0x58cf7e4d, 0xc77ad4d4), TOBN(0xd49a7998, 0xf9df4fc4), + TOBN(0x4465a8b5, 0x1d71205e), TOBN(0xa0ee0ea6, 0x649254aa), + TOBN(0x4b5eeecf, 0xab7bd771), TOBN(0x6c873073, 0x35c262b9), + TOBN(0xdc5bd648, 0x3c9d61e7), TOBN(0x233d6d54, 0x321460d2), + TOBN(0xd20c5626, 0xfc195bcc), TOBN(0x25445958, 0x04d78b63), + TOBN(0xe03fcb3d, 0x17ec8ef3), TOBN(0x54b690d1, 0x46b8f781), + TOBN(0x82fa2c8a, 0x21230646), TOBN(0xf51aabb9, 0x084f418c), + TOBN(0xff4fbec1, 0x1a30ba43), TOBN(0x6a5acf73, 0x743c9df7), + TOBN(0x1da2b357, 0xd635b4d5), TOBN(0xc3de68dd, 0xecd5c1da), + TOBN(0xa689080b, 0xd61af0dd), TOBN(0xdea5938a, 0xd665bf99), + TOBN(0x0231d71a, 0xfe637294), TOBN(0x01968aa6, 0xa5a81cd8), + TOBN(0x11252d50, 0x048e63b5), TOBN(0xc446bc52, 0x6ca007e9), + TOBN(0xef8c50a6, 0x96d6134b), TOBN(0x9361fbf5, 0x9e09a05c), + TOBN(0xf17f85a6, 0xdca3291a), TOBN(0xb178d548, 0xff251a21), + TOBN(0x87f6374b, 0xa4df3915), TOBN(0x566ce1bf, 0x2fd5d608), + TOBN(0x425cba4d, 0x7de35102), TOBN(0x6b745f8f, 0x58c5d5e2), + TOBN(0x88402af6, 0x63122edf), TOBN(0x3190f9ed, 0x3b989a89), + TOBN(0x4ad3d387, 0xebba3156), TOBN(0xef385ad9, 0xc7c469a5), + TOBN(0xb08281de, 0x3f642c29), TOBN(0x20be0888, 0x910ffb88), + TOBN(0xf353dd4a, 0xd5292546), TOBN(0x3f1627de, 0x8377a262), + TOBN(0xa5faa013, 0xeefcd638), TOBN(0x8f3bf626, 0x74cc77c3), + TOBN(0x32618f65, 0xa348f55e), TOBN(0x5787c0dc, 0x9fefeb9e), + TOBN(0xf1673aa2, 0xd9a23e44), TOBN(0x88dfa993, 0x4e10690d), + TOBN(0x1ced1b36, 0x2bf91108), TOBN(0x9193ceca, 0x3af48649), + TOBN(0xfb34327d, 0x2d738fc5), TOBN(0x6697b037, 0x975fee6c), + TOBN(0x2f485da0, 0xc04079a5), TOBN(0x2cdf5735, 0x2feaa1ac), + TOBN(0x76944420, 0xbd55659e), TOBN(0x7973e32b, 0x4376090c), + TOBN(0x86bb4fe1, 0x163b591a), TOBN(0x10441aed, 0xc196f0ca), + TOBN(0x3b431f4a, 0x045ad915), TOBN(0x6c11b437, 0xa4afacb1), + TOBN(0x30b0c7db, 0x71fdbbd8), TOBN(0xb642931f, 0xeda65acd), + TOBN(0x4baae6e8, 0x9c92b235), TOBN(0xa73bbd0e, 0x6b3993a1), + TOBN(0xd06d60ec, 0x693dd031), TOBN(0x03cab91b, 0x7156881c), + TOBN(0xd615862f, 0x1db3574b), TOBN(0x485b0185, 0x64bb061a), + TOBN(0x27434988, 0xa0181e06), TOBN(0x2cd61ad4, 0xc1c0c757), + TOBN(0x3effed5a, 0x2ff9f403), TOBN(0x8dc98d8b, 0x62239029), + TOBN(0x2206021e, 0x1f17b70d), TOBN(0xafbec0ca, 0xbf510015), + TOBN(0x9fed7164, 0x80130dfa), TOBN(0x306dc2b5, 0x8a02dcf5), + TOBN(0x48f06620, 0xfeb10fc0), TOBN(0x78d1e1d5, 0x5a57cf51), + TOBN(0xadef8c5a, 0x192ef710), TOBN(0x88afbd4b, 0x3b7431f9), + TOBN(0x7e1f7407, 0x64250c9e), TOBN(0x6e31318d, 0xb58bec07), + TOBN(0xfd4fc4b8, 0x24f89b4e), TOBN(0x65a5dd88, 0x48c36a2a), + TOBN(0x4f1eccff, 0xf024baa7), TOBN(0x22a21cf2, 0xcba94650), + TOBN(0x95d29dee, 0x42a554f7), TOBN(0x828983a5, 0x002ec4ba), + TOBN(0x8112a1f7, 0x8badb73d), TOBN(0x79ea8897, 0xa27c1839), + TOBN(0x8969a5a7, 0xd065fd83), TOBN(0xf49af791, 0xb262a0bc), + TOBN(0xfcdea8b6, 0xaf2b5127), TOBN(0x10e913e1, 0x564c2dbc), + TOBN(0x51239d14, 0xbc21ef51), TOBN(0xe51c3ceb, 0x4ce57292), + TOBN(0x795ff068, 0x47bbcc3b), TOBN(0x86b46e1e, 0xbd7e11e6), + TOBN(0x0ea6ba23, 0x80041ef4), TOBN(0xd72fe505, 0x6262342e), + TOBN(0x8abc6dfd, 0x31d294d4), TOBN(0xbbe017a2, 0x1278c2c9), + TOBN(0xb1fcfa09, 0xb389328a), TOBN(0x322fbc62, 0xd01771b5), + TOBN(0x04c0d063, 0x60b045bf), TOBN(0xdb652edc, 0x10e52d01), + TOBN(0x50ef932c, 0x03ec6627), TOBN(0xde1b3b2d, 0xc1ee50e3), + TOBN(0x5ab7bdc5, 0xdc37a90d), TOBN(0xfea67213, 0x31e33a96), + TOBN(0x6482b5cb, 0x4f2999aa), TOBN(0x38476cc6, 0xb8cbf0dd), + TOBN(0x93ebfacb, 0x173405bb), TOBN(0x15cdafe7, 0xe52369ec), + TOBN(0xd42d5ba4, 0xd935b7db), TOBN(0x648b6004, 0x1c99a4cd), + TOBN(0x785101bd, 0xa3b5545b), TOBN(0x4bf2c38a, 0x9dd67faf), + TOBN(0xb1aadc63, 0x4442449c), TOBN(0xe0e9921a, 0x33ad4fb8), + TOBN(0x5c552313, 0xaa686d82), TOBN(0xdee635fa, 0x465d866c), + TOBN(0xbc3c224a, 0x18ee6e8a), TOBN(0xeed748a6, 0xed42e02f), + TOBN(0xe70f930a, 0xd474cd08), TOBN(0x774ea6ec, 0xfff24adf), + TOBN(0x03e2de1c, 0xf3480d4a), TOBN(0xf0d8edc7, 0xbc8acf1a), + TOBN(0xf23e3303, 0x68295a9c), TOBN(0xfadd5f68, 0xc546a97d), + TOBN(0x895597ad, 0x96f8acb1), TOBN(0xbddd49d5, 0x671bdae2), + TOBN(0x16fcd528, 0x21dd43f4), TOBN(0xa5a45412, 0x6619141a)} + , + {TOBN(0x8ce9b6bf, 0xc360e25a), TOBN(0xe6425195, 0x075a1a78), + TOBN(0x9dc756a8, 0x481732f4), TOBN(0x83c0440f, 0x5432b57a), + TOBN(0xc670b3f1, 0xd720281f), TOBN(0x2205910e, 0xd135e051), + TOBN(0xded14b0e, 0xdb052be7), TOBN(0x697b3d27, 0xc568ea39), + TOBN(0x2e599b9a, 0xfb3ff9ed), TOBN(0x28c2e0ab, 0x17f6515c), + TOBN(0x1cbee4fd, 0x474da449), TOBN(0x071279a4, 0x4f364452), + TOBN(0x97abff66, 0x01fbe855), TOBN(0x3ee394e8, 0x5fda51c4), + TOBN(0x190385f6, 0x67597c0b), TOBN(0x6e9fccc6, 0xa27ee34b), + TOBN(0x0b89de93, 0x14092ebb), TOBN(0xf17256bd, 0x428e240c), + TOBN(0xcf89a7f3, 0x93d2f064), TOBN(0x4f57841e, 0xe1ed3b14), + TOBN(0x4ee14405, 0xe708d855), TOBN(0x856aae72, 0x03f1c3d0), + TOBN(0xc8e5424f, 0xbdd7eed5), TOBN(0x3333e4ef, 0x73ab4270), + TOBN(0x3bc77ade, 0xdda492f8), TOBN(0xc11a3aea, 0x78297205), + TOBN(0x5e89a3e7, 0x34931b4c), TOBN(0x17512e2e, 0x9f5694bb), + TOBN(0x5dc349f3, 0x177bf8b6), TOBN(0x232ea4ba, 0x08c7ff3e), + TOBN(0x9c4f9d16, 0xf511145d), TOBN(0xccf109a3, 0x33b379c3), + TOBN(0xe75e7a88, 0xa1f25897), TOBN(0x7ac6961f, 0xa1b5d4d8), + TOBN(0xe3e10773, 0x08f3ed5c), TOBN(0x208a54ec, 0x0a892dfb), + TOBN(0xbe826e19, 0x78660710), TOBN(0x0cf70a97, 0x237df2c8), + TOBN(0x418a7340, 0xed704da5), TOBN(0xa3eeb9a9, 0x08ca33fd), + TOBN(0x49d96233, 0x169bca96), TOBN(0x04d286d4, 0x2da6aafb), + TOBN(0xc09606ec, 0xa0c2fa94), TOBN(0x8869d0d5, 0x23ff0fb3), + TOBN(0xa99937e5, 0xd0150d65), TOBN(0xa92e2503, 0x240c14c9), + TOBN(0x656bf945, 0x108e2d49), TOBN(0x152a733a, 0xa2f59e2b), + TOBN(0xb4323d58, 0x8434a920), TOBN(0xc0af8e93, 0x622103c5), + TOBN(0x667518ef, 0x938dbf9a), TOBN(0xa1843073, 0x83a9cdf2), + TOBN(0x350a94aa, 0x5447ab80), TOBN(0xe5e5a325, 0xc75a3d61), + TOBN(0x74ba507f, 0x68411a9e), TOBN(0x10581fc1, 0x594f70c5), + TOBN(0x60e28570, 0x80eb24a9), TOBN(0x7bedfb4d, 0x488e0cfd), + TOBN(0x721ebbd7, 0xc259cdb8), TOBN(0x0b0da855, 0xbc6390a9), + TOBN(0x2b4d04db, 0xde314c70), TOBN(0xcdbf1fbc, 0x6c32e846), + TOBN(0x33833eab, 0xb162fc9e), TOBN(0x9939b48b, 0xb0dd3ab7), + TOBN(0x5aaa98a7, 0xcb0c9c8c), TOBN(0x75105f30, 0x81c4375c), + TOBN(0xceee5057, 0x5ef1c90f), TOBN(0xb31e065f, 0xc23a17bf), + TOBN(0x5364d275, 0xd4b6d45a), TOBN(0xd363f3ad, 0x62ec8996), + TOBN(0xb5d21239, 0x4391c65b), TOBN(0x84564765, 0xebb41b47), + TOBN(0x20d18ecc, 0x37107c78), TOBN(0xacff3b6b, 0x570c2a66), + TOBN(0x22f975d9, 0x9bd0d845), TOBN(0xef0a0c46, 0xba178fa0), + TOBN(0x1a419651, 0x76b6028e), TOBN(0xc49ec674, 0x248612d4), + TOBN(0x5b6ac4f2, 0x7338af55), TOBN(0x06145e62, 0x7bee5a36), + TOBN(0x33e95d07, 0xe75746b5), TOBN(0x1c1e1f6d, 0xc40c78be), + TOBN(0x967833ef, 0x222ff8e2), TOBN(0x4bedcf6a, 0xb49180ad), + TOBN(0x6b37e9c1, 0x3d7a4c8a), TOBN(0x2748887c, 0x6ddfe760), + TOBN(0xf7055123, 0xaa3a5bbc), TOBN(0x954ff225, 0x7bbb8e74), + TOBN(0xc42b8ab1, 0x97c3dfb9), TOBN(0x55a549b0, 0xcf168154), + TOBN(0xad6748e7, 0xc1b50692), TOBN(0x2775780f, 0x6fc5cbcb), + TOBN(0x4eab80b8, 0xe1c9d7c8), TOBN(0x8c69dae1, 0x3fdbcd56), + TOBN(0x47e6b4fb, 0x9969eace), TOBN(0x002f1085, 0xa705cb5a), + TOBN(0x4e23ca44, 0x6d3fea55), TOBN(0xb4ae9c86, 0xf4810568), + TOBN(0x47bfb91b, 0x2a62f27d), TOBN(0x60deb4c9, 0xd9bac28c), + TOBN(0xa892d894, 0x7de6c34c), TOBN(0x4ee68259, 0x4494587d), + TOBN(0x914ee14e, 0x1a3f8a5b), TOBN(0xbb113eaa, 0x28700385), + TOBN(0x81ca03b9, 0x2115b4c9), TOBN(0x7c163d38, 0x8908cad1), + TOBN(0xc912a118, 0xaa18179a), TOBN(0xe09ed750, 0x886e3081), + TOBN(0xa676e3fa, 0x26f516ca), TOBN(0x753cacf7, 0x8e732f91), + TOBN(0x51592aea, 0x833da8b4), TOBN(0xc626f42f, 0x4cbea8aa), + TOBN(0xef9dc899, 0xa7b56eaf), TOBN(0x00c0e52c, 0x34ef7316), + TOBN(0x5b1e4e24, 0xfe818a86), TOBN(0x9d31e20d, 0xc538be47), + TOBN(0x22eb932d, 0x3ed68974), TOBN(0xe44bbc08, 0x7c4e87c4), + TOBN(0x4121086e, 0x0dde9aef), TOBN(0x8e6b9cff, 0x134f4345), + TOBN(0x96892c1f, 0x711b0eb9), TOBN(0xb905f2c8, 0x780ab954), + TOBN(0xace26309, 0xa20792db), TOBN(0xec8ac9b3, 0x0684e126), + TOBN(0x486ad8b6, 0xb40a2447), TOBN(0x60121fc1, 0x9fe3fb24), + TOBN(0x5626fccf, 0x1a8e3b3f), TOBN(0x4e568622, 0x6ad1f394), + TOBN(0xda7aae0d, 0x196aa5a1), TOBN(0xe0df8c77, 0x1041b5fb), + TOBN(0x451465d9, 0x26b318b7), TOBN(0xc29b6e55, 0x7ab136e9), + TOBN(0x2c2ab48b, 0x71148463), TOBN(0xb5738de3, 0x64454a76), + TOBN(0x54ccf9a0, 0x5a03abe4), TOBN(0x377c0296, 0x0427d58e), + TOBN(0x73f5f0b9, 0x2bb39c1f), TOBN(0x14373f2c, 0xe608d8c5), + TOBN(0xdcbfd314, 0x00fbb805), TOBN(0xdf18fb20, 0x83afdcfb), + TOBN(0x81a57f42, 0x42b3523f), TOBN(0xe958532d, 0x87f650fb), + TOBN(0xaa8dc8b6, 0x8b0a7d7c), TOBN(0x1b75dfb7, 0x150166be), + TOBN(0x90e4f7c9, 0x2d7d1413), TOBN(0x67e2d6b5, 0x9834f597), + TOBN(0x4fd4f4f9, 0xa808c3e8), TOBN(0xaf8237e0, 0xd5281ec1), + TOBN(0x25ab5fdc, 0x84687cee), TOBN(0xc5ded6b1, 0xa5b26c09), + TOBN(0x8e4a5aec, 0xc8ea7650), TOBN(0x23b73e5c, 0x14cc417f), + TOBN(0x2bfb4318, 0x3037bf52), TOBN(0xb61e6db5, 0x78c725d7), + TOBN(0x8efd4060, 0xbbb3e5d7), TOBN(0x2e014701, 0xdbac488e), + TOBN(0xac75cf9a, 0x360aa449), TOBN(0xb70cfd05, 0x79634d08), + TOBN(0xa591536d, 0xfffb15ef), TOBN(0xb2c37582, 0xd07c106c), + TOBN(0xb4293fdc, 0xf50225f9), TOBN(0xc52e175c, 0xb0e12b03), + TOBN(0xf649c3ba, 0xd0a8bf64), TOBN(0x745a8fef, 0xeb8ae3c6), + TOBN(0x30d7e5a3, 0x58321bc3), TOBN(0xb1732be7, 0x0bc4df48), + TOBN(0x1f217993, 0xe9ea5058), TOBN(0xf7a71cde, 0x3e4fd745), + TOBN(0x86cc533e, 0x894c5bbb), TOBN(0x6915c7d9, 0x69d83082), + TOBN(0xa6aa2d05, 0x5815c244), TOBN(0xaeeee592, 0x49b22ce5), + TOBN(0x89e39d13, 0x78135486), TOBN(0x3a275c1f, 0x16b76f2f), + TOBN(0xdb6bcc1b, 0xe036e8f5), TOBN(0x4df69b21, 0x5e4709f5), + TOBN(0xa188b250, 0x2d0f39aa), TOBN(0x622118bb, 0x15a85947), + TOBN(0x2ebf520f, 0xfde0f4fa), TOBN(0xa40e9f29, 0x4860e539), + TOBN(0x7b6a51eb, 0x22b57f0f), TOBN(0x849a33b9, 0x7e80644a), + TOBN(0x50e5d16f, 0x1cf095fe), TOBN(0xd754b54e, 0xec55f002), + TOBN(0x5cfbbb22, 0x236f4a98), TOBN(0x0b0c59e9, 0x066800bb), + TOBN(0x4ac69a8f, 0x5a9a7774), TOBN(0x2b33f804, 0xd6bec948), + TOBN(0xb3729295, 0x32e6c466), TOBN(0x68956d0f, 0x4e599c73), + TOBN(0xa47a249f, 0x155c31cc), TOBN(0x24d80f0d, 0xe1ce284e), + TOBN(0xcd821dfb, 0x988baf01), TOBN(0xe6331a7d, 0xdbb16647), + TOBN(0x1eb8ad33, 0x094cb960), TOBN(0x593cca38, 0xc91bbca5), + TOBN(0x384aac8d, 0x26567456), TOBN(0x40fa0309, 0xc04b6490), + TOBN(0x97834cd6, 0xdab6c8f6), TOBN(0x68a7318d, 0x3f91e55f), + TOBN(0xa00fd04e, 0xfc4d3157), TOBN(0xb56f8ab2, 0x2bf3bdea), + TOBN(0x014f5648, 0x4fa57172), TOBN(0x948c5860, 0x450abdb3), + TOBN(0x342b5df0, 0x0ebd4f08), TOBN(0x3e5168cd, 0x0e82938e), + TOBN(0x7aedc1ce, 0xb0df5dd0), TOBN(0x6bbbc6d9, 0xe5732516), + TOBN(0xc7bfd486, 0x605daaa6), TOBN(0x46fd72b7, 0xbb9a6c9e), + TOBN(0xe4847fb1, 0xa124fb89), TOBN(0x75959cbd, 0xa2d8ffbc), + TOBN(0x42579f65, 0xc8a588ee), TOBN(0x368c92e6, 0xb80b499d), + TOBN(0xea4ef6cd, 0x999a5df1), TOBN(0xaa73bb7f, 0x936fe604), + TOBN(0xf347a70d, 0x6457d188), TOBN(0x86eda86b, 0x8b7a388b), + TOBN(0xb7cdff06, 0x0ccd6013), TOBN(0xbeb1b6c7, 0xd0053fb2), + TOBN(0x0b022387, 0x99240a9f), TOBN(0x1bbb384f, 0x776189b2), + TOBN(0x8695e71e, 0x9066193a), TOBN(0x2eb50097, 0x06ffac7e), + TOBN(0x0654a9c0, 0x4a7d2caa), TOBN(0x6f3fb3d1, 0xa5aaa290), + TOBN(0x835db041, 0xff476e8f), TOBN(0x540b8b0b, 0xc42295e4), + TOBN(0xa5c73ac9, 0x05e214f5), TOBN(0x9a74075a, 0x56a0b638), + TOBN(0x2e4b1090, 0xce9e680b), TOBN(0x57a5b479, 0x6b8d9afa), + TOBN(0x0dca48e7, 0x26bfe65c), TOBN(0x097e391c, 0x7290c307), + TOBN(0x683c462e, 0x6669e72e), TOBN(0xf505be1e, 0x062559ac), + TOBN(0x5fbe3ea1, 0xe3a3035a), TOBN(0x6431ebf6, 0x9cd50da8), + TOBN(0xfd169d5c, 0x1f6407f2), TOBN(0x8d838a95, 0x60fce6b8), + TOBN(0x2a2bfa7f, 0x650006f0), TOBN(0xdfd7dad3, 0x50c0fbb2), + TOBN(0x92452495, 0xccf9ad96), TOBN(0x183bf494, 0xd95635f9), + TOBN(0x02d5df43, 0x4a7bd989), TOBN(0x505385cc, 0xa5431095), + TOBN(0xdd98e67d, 0xfd43f53e), TOBN(0xd61e1a6c, 0x500c34a9), + TOBN(0x5a4b46c6, 0x4a8a3d62), TOBN(0x8469c4d0, 0x247743d2), + TOBN(0x2bb3a13d, 0x88f7e433), TOBN(0x62b23a10, 0x01be5849), + TOBN(0xe83596b4, 0xa63d1a4c), TOBN(0x454e7fea, 0x7d183f3e), + TOBN(0x643fce61, 0x17afb01c), TOBN(0x4e65e5e6, 0x1c4c3638), + TOBN(0x41d85ea1, 0xef74c45b), TOBN(0x2cfbfa66, 0xae328506), + TOBN(0x98b078f5, 0x3ada7da9), TOBN(0xd985fe37, 0xec752fbb), + TOBN(0xeece68fe, 0x5a0148b4), TOBN(0x6f9a55c7, 0x2d78136d), + TOBN(0x232dccc4, 0xd2b729ce), TOBN(0xa27e0dfd, 0x90aafbc4), + TOBN(0x96474452, 0x12b4603e), TOBN(0xa876c551, 0x6b706d14), + TOBN(0xdf145fcf, 0x69a9d412), TOBN(0xe2ab75b7, 0x2d479c34), + TOBN(0x12df9a76, 0x1a23ff97), TOBN(0xc6138992, 0x5d359d10), + TOBN(0x6e51c7ae, 0xfa835f22), TOBN(0x69a79cb1, 0xc0fcc4d9), + TOBN(0xf57f350d, 0x594cc7e1), TOBN(0x3079ca63, 0x3350ab79), + TOBN(0x226fb614, 0x9aff594a), TOBN(0x35afec02, 0x6d59a62b), + TOBN(0x9bee46f4, 0x06ed2c6e), TOBN(0x58da1735, 0x7d939a57), + TOBN(0x44c50402, 0x8fd1797e), TOBN(0xd8853e7c, 0x5ccea6ca), + TOBN(0x4065508d, 0xa35fcd5f), TOBN(0x8965df8c, 0x495ccaeb), + TOBN(0x0f2da850, 0x12e1a962), TOBN(0xee471b94, 0xc1cf1cc4), + TOBN(0xcef19bc8, 0x0a08fb75), TOBN(0x704958f5, 0x81de3591), + TOBN(0x2867f8b2, 0x3aef4f88), TOBN(0x8d749384, 0xea9f9a5f), + TOBN(0x1b385537, 0x8c9049f4), TOBN(0x5be948f3, 0x7b92d8b6), + TOBN(0xd96f725d, 0xb6e2bd6b), TOBN(0x37a222bc, 0x958c454d), + TOBN(0xe7c61abb, 0x8809bf61), TOBN(0x46f07fbc, 0x1346f18d), + TOBN(0xfb567a7a, 0xe87c0d1c), TOBN(0x84a461c8, 0x7ef3d07a), + TOBN(0x0a5adce6, 0xd9278d98), TOBN(0x24d94813, 0x9dfc73e1), + TOBN(0x4f3528b6, 0x054321c3), TOBN(0x2e03fdde, 0x692ea706), + TOBN(0x10e60619, 0x47b533c0), TOBN(0x1a8bc73f, 0x2ca3c055), + TOBN(0xae58d4b2, 0x1bb62b8f), TOBN(0xb2045a73, 0x584a24e3), + TOBN(0x3ab3d5af, 0xbd76e195), TOBN(0x478dd1ad, 0x6938a810), + TOBN(0x6ffab393, 0x6ee3d5cb), TOBN(0xdfb693db, 0x22b361e4), + TOBN(0xf9694496, 0x51dbf1a7), TOBN(0xcab4b4ef, 0x08a2e762), + TOBN(0xe8c92f25, 0xd39bba9a), TOBN(0x850e61bc, 0xf1464d96), + TOBN(0xb7e830e3, 0xdc09508b), TOBN(0xfaf6d2cf, 0x74317655), + TOBN(0x72606ceb, 0xdf690355), TOBN(0x48bb92b3, 0xd0c3ded6), + TOBN(0x65b75484, 0x5c7cf892), TOBN(0xf6cd7ac9, 0xd5d5f01f), + TOBN(0xc2c30a59, 0x96401d69), TOBN(0x91268650, 0xed921878), + TOBN(0x380bf913, 0xb78c558f), TOBN(0x43c0baeb, 0xc8afdaa9), + TOBN(0x377f61d5, 0x54f169d3), TOBN(0xf8da07e3, 0xae5ff20b), + TOBN(0xb676c49d, 0xa8a90ea8), TOBN(0x81c1ff2b, 0x83a29b21), + TOBN(0x383297ac, 0x2ad8d276), TOBN(0x3001122f, 0xba89f982), + TOBN(0xe1d794be, 0x6718e448), TOBN(0x246c1482, 0x7c3e6e13), + TOBN(0x56646ef8, 0x5d26b5ef), TOBN(0x80f5091e, 0x88069cdd), + TOBN(0xc5992e2f, 0x724bdd38), TOBN(0x02e915b4, 0x8471e8c7), + TOBN(0x96ff320a, 0x0d0ff2a9), TOBN(0xbf886487, 0x4384d1a0), + TOBN(0xbbe1e6a6, 0xc93f72d6), TOBN(0xd5f75d12, 0xcad800ea), + TOBN(0xfa40a09f, 0xe7acf117), TOBN(0x32c8cdd5, 0x7581a355), + TOBN(0x74221992, 0x7023c499), TOBN(0xa8afe5d7, 0x38ec3901), + TOBN(0x5691afcb, 0xa90e83f0), TOBN(0x41bcaa03, 0x0b8f8eac), + TOBN(0xe38b5ff9, 0x8d2668d5), TOBN(0x0715281a, 0x7ad81965), + TOBN(0x1bc8fc7c, 0x03c6ce11), TOBN(0xcbbee6e2, 0x8b650436), + TOBN(0x06b00fe8, 0x0cdb9808), TOBN(0x17d6e066, 0xfe3ed315), + TOBN(0x2e9d38c6, 0x4d0b5018), TOBN(0xab8bfd56, 0x844dcaef), + TOBN(0x42894a59, 0x513aed8b), TOBN(0xf77f3b6d, 0x314bd07a), + TOBN(0xbbdecb8f, 0x8e42b582), TOBN(0xf10e2fa8, 0xd2390fe6), + TOBN(0xefb95022, 0x62a2f201), TOBN(0x4d59ea50, 0x50ee32b0), + TOBN(0xd87f7728, 0x6da789a8), TOBN(0xcf98a2cf, 0xf79492c4), + TOBN(0xf9577239, 0x720943c2), TOBN(0xba044cf5, 0x3990b9d0), + TOBN(0x5aa8e823, 0x95f2884a), TOBN(0x834de6ed, 0x0278a0af), + TOBN(0xc8e1ee9a, 0x5f25bd12), TOBN(0x9259ceaa, 0x6f7ab271), + TOBN(0x7e6d97a2, 0x77d00b76), TOBN(0x5c0c6eea, 0xa437832a), + TOBN(0x5232c20f, 0x5606b81d), TOBN(0xabd7b375, 0x0d991ee5), + TOBN(0x4d2bfe35, 0x8632d951), TOBN(0x78f85146, 0x98ed9364), + TOBN(0x951873f0, 0xf30c3282), TOBN(0x0da8ac80, 0xa789230b), + TOBN(0x3ac7789c, 0x5398967f), TOBN(0xa69b8f7f, 0xbdda0fb5), + TOBN(0xe5db7717, 0x6add8545), TOBN(0x1b71cb66, 0x72c49b66), + TOBN(0xd8560739, 0x68421d77), TOBN(0x03840fe8, 0x83e3afea), + TOBN(0xb391dad5, 0x1ec69977), TOBN(0xae243fb9, 0x307f6726), + TOBN(0xc88ac87b, 0xe8ca160c), TOBN(0x5174cced, 0x4ce355f4), + TOBN(0x98a35966, 0xe58ba37d), TOBN(0xfdcc8da2, 0x7817335d), + TOBN(0x5b752830, 0x83fbc7bf), TOBN(0x68e419d4, 0xd9c96984), + TOBN(0x409a39f4, 0x02a40380), TOBN(0x88940faf, 0x1fe977bc), + TOBN(0xc640a94b, 0x8f8edea6), TOBN(0x1e22cd17, 0xed11547d), + TOBN(0xe28568ce, 0x59ffc3e2), TOBN(0x60aa1b55, 0xc1dee4e7), + TOBN(0xc67497c8, 0x837cb363), TOBN(0x06fb438a, 0x105a2bf2), + TOBN(0x30357ec4, 0x500d8e20), TOBN(0x1ad9095d, 0x0670db10), + TOBN(0x7f589a05, 0xc73b7cfd), TOBN(0xf544607d, 0x880d6d28), + TOBN(0x17ba93b1, 0xa20ef103), TOBN(0xad859130, 0x6ba6577b), + TOBN(0x65c91cf6, 0x6fa214a0), TOBN(0xd7d49c6c, 0x27990da5), + TOBN(0xecd9ec8d, 0x20bb569d), TOBN(0xbd4b2502, 0xeeffbc33), + TOBN(0x2056ca5a, 0x6bed0467), TOBN(0x7916a1f7, 0x5b63728c), + TOBN(0xd4f9497d, 0x53a4f566), TOBN(0x89734664, 0x97b56810), + TOBN(0xf8e1da74, 0x0494a621), TOBN(0x82546a93, 0x8d011c68), + TOBN(0x1f3acb19, 0xc61ac162), TOBN(0x52f8fa9c, 0xabad0d3e), + TOBN(0x15356523, 0xb4b7ea43), TOBN(0x5a16ad61, 0xae608125), + TOBN(0xb0bcb87f, 0x4faed184), TOBN(0x5f236b1d, 0x5029f45f), + TOBN(0xd42c7607, 0x0bc6b1fc), TOBN(0xc644324e, 0x68aefce3), + TOBN(0x8e191d59, 0x5c5d8446), TOBN(0xc0208077, 0x13ae1979), + TOBN(0xadcaee55, 0x3ba59cc7), TOBN(0x20ed6d6b, 0xa2cb81ba), + TOBN(0x0952ba19, 0xb6efcffc), TOBN(0x60f12d68, 0x97c0b87c), + TOBN(0x4ee2c7c4, 0x9caa30bc), TOBN(0x767238b7, 0x97fbff4e), + TOBN(0xebc73921, 0x501b5d92), TOBN(0x3279e3df, 0xc2a37737), + TOBN(0x9fc12bc8, 0x6d197543), TOBN(0xfa94dc6f, 0x0a40db4e), + TOBN(0x7392b41a, 0x530ccbbd), TOBN(0x87c82146, 0xea823525), + TOBN(0xa52f984c, 0x05d98d0c), TOBN(0x2ae57d73, 0x5ef6974c), + TOBN(0x9377f7bf, 0x3042a6dd), TOBN(0xb1a007c0, 0x19647a64), + TOBN(0xfaa9079a, 0x0cca9767), TOBN(0x3d81a25b, 0xf68f72d5), + TOBN(0x752067f8, 0xff81578e), TOBN(0x78622150, 0x9045447d), + TOBN(0xc0c22fcf, 0x0505aa6f), TOBN(0x1030f0a6, 0x6bed1c77), + TOBN(0x31f29f15, 0x1f0bd739), TOBN(0x2d7989c7, 0xe6debe85), + TOBN(0x5c070e72, 0x8e677e98), TOBN(0x0a817bd3, 0x06e81fd5), + TOBN(0xc110d830, 0xb0f2ac95), TOBN(0x48d0995a, 0xab20e64e), + TOBN(0x0f3e00e1, 0x7729cd9a), TOBN(0x2a570c20, 0xdd556946), + TOBN(0x912dbcfd, 0x4e86214d), TOBN(0x2d014ee2, 0xcf615498), + TOBN(0x55e2b1e6, 0x3530d76e), TOBN(0xc5135ae4, 0xfd0fd6d1), + TOBN(0x0066273a, 0xd4f3049f), TOBN(0xbb8e9893, 0xe7087477), + TOBN(0x2dba1ddb, 0x14c6e5fd), TOBN(0xdba37886, 0x51f57e6c), + TOBN(0x5aaee0a6, 0x5a72f2cf), TOBN(0x1208bfbf, 0x7bea5642), + TOBN(0xf5c6aa3b, 0x67872c37), TOBN(0xd726e083, 0x43f93224), + TOBN(0x1854daa5, 0x061f1658), TOBN(0xc0016df1, 0xdf0cd2b3), + TOBN(0xc2a3f23e, 0x833d50de), TOBN(0x73b681d2, 0xbbbd3017), + TOBN(0x2f046dc4, 0x3ac343c0), TOBN(0x9c847e7d, 0x85716421), + TOBN(0xe1e13c91, 0x0917eed4), TOBN(0x3fc9eebd, 0x63a1b9c6), + TOBN(0x0f816a72, 0x7fe02299), TOBN(0x6335ccc2, 0x294f3319), + TOBN(0x3820179f, 0x4745c5be), TOBN(0xe647b782, 0x922f066e), + TOBN(0xc22e49de, 0x02cafb8a), TOBN(0x299bc2ff, 0xfcc2eccc), + TOBN(0x9a8feea2, 0x6e0e8282), TOBN(0xa627278b, 0xfe893205), + TOBN(0xa7e19733, 0x7933e47b), TOBN(0xf4ff6b13, 0x2e766402), + TOBN(0xa4d8be0a, 0x98440d9f), TOBN(0x658f5c2f, 0x38938808), + TOBN(0x90b75677, 0xc95b3b3e), TOBN(0xfa044269, 0x3137b6ff), + TOBN(0x077b039b, 0x43c47c29), TOBN(0xcca95dd3, 0x8a6445b2), + TOBN(0x0b498ba4, 0x2333fc4c), TOBN(0x274f8e68, 0xf736a1b1), + TOBN(0x6ca348fd, 0x5f1d4b2e), TOBN(0x24d3be78, 0xa8f10199), + TOBN(0x8535f858, 0xca14f530), TOBN(0xa6e7f163, 0x5b982e51), + TOBN(0x847c8512, 0x36e1bf62), TOBN(0xf6a7c58e, 0x03448418), + TOBN(0x583f3703, 0xf9374ab6), TOBN(0x864f9195, 0x6e564145), + TOBN(0x33bc3f48, 0x22526d50), TOBN(0x9f323c80, 0x1262a496), + TOBN(0xaa97a7ae, 0x3f046a9a), TOBN(0x70da183e, 0xdf8a039a), + TOBN(0x5b68f71c, 0x52aa0ba6), TOBN(0x9be0fe51, 0x21459c2d), + TOBN(0xc1e17eb6, 0xcbc613e5), TOBN(0x33131d55, 0x497ea61c), + TOBN(0x2f69d39e, 0xaf7eded5), TOBN(0x73c2f434, 0xde6af11b), + TOBN(0x4ca52493, 0xa4a375fa), TOBN(0x5f06787c, 0xb833c5c2), + TOBN(0x814e091f, 0x3e6e71cf), TOBN(0x76451f57, 0x8b746666)} + , + {TOBN(0x80f9bdef, 0x694db7e0), TOBN(0xedca8787, 0xb9fcddc6), + TOBN(0x51981c34, 0x03b8dce1), TOBN(0x4274dcf1, 0x70e10ba1), + TOBN(0xf72743b8, 0x6def6d1a), TOBN(0xd25b1670, 0xebdb1866), + TOBN(0xc4491e8c, 0x050c6f58), TOBN(0x2be2b2ab, 0x87fbd7f5), + TOBN(0x3e0e5c9d, 0xd111f8ec), TOBN(0xbcc33f8d, 0xb7c4e760), + TOBN(0x702f9a91, 0xbd392a51), TOBN(0x7da4a795, 0xc132e92d), + TOBN(0x1a0b0ae3, 0x0bb1151b), TOBN(0x54febac8, 0x02e32251), + TOBN(0xea3a5082, 0x694e9e78), TOBN(0xe58ffec1, 0xe4fe40b8), + TOBN(0xf85592fc, 0xd1e0cf9e), TOBN(0xdea75f0d, 0xc0e7b2e8), + TOBN(0xc04215cf, 0xc135584e), TOBN(0x174fc727, 0x2f57092a), + TOBN(0xe7277877, 0xeb930bea), TOBN(0x504caccb, 0x5eb02a5a), + TOBN(0xf9fe08f7, 0xf5241b9b), TOBN(0xe7fb62f4, 0x8d5ca954), + TOBN(0xfbb8349d, 0x29c4120b), TOBN(0x9f94391f, 0xc0d0d915), + TOBN(0xc4074fa7, 0x5410ba51), TOBN(0xa66adbf6, 0x150a5911), + TOBN(0xc164543c, 0x34bfca38), TOBN(0xe0f27560, 0xb9e1ccfc), + TOBN(0x99da0f53, 0xe820219c), TOBN(0xe8234498, 0xc6b4997a), + TOBN(0xcfb88b76, 0x9d4c5423), TOBN(0x9e56eb10, 0xb0521c49), + TOBN(0x418e0b5e, 0xbe8700a1), TOBN(0x00cbaad6, 0xf93cb58a), + TOBN(0xe923fbde, 0xd92a5e67), TOBN(0xca4979ac, 0x1f347f11), + TOBN(0x89162d85, 0x6bc0585b), TOBN(0xdd6254af, 0xac3c70e3), + TOBN(0x7b23c513, 0x516e19e4), TOBN(0x56e2e847, 0xc5c4d593), + TOBN(0x9f727d73, 0x5ce71ef6), TOBN(0x5b6304a6, 0xf79a44c5), + TOBN(0x6638a736, 0x3ab7e433), TOBN(0x1adea470, 0xfe742f83), + TOBN(0xe054b854, 0x5b7fc19f), TOBN(0xf935381a, 0xba1d0698), + TOBN(0x546eab2d, 0x799e9a74), TOBN(0x96239e0e, 0xa949f729), + TOBN(0xca274c6b, 0x7090055a), TOBN(0x835142c3, 0x9020c9b0), + TOBN(0xa405667a, 0xa2e8807f), TOBN(0x29f2c085, 0x1aa3d39e), + TOBN(0xcc555d64, 0x42fc72f5), TOBN(0xe856e0e7, 0xfbeacb3c), + TOBN(0xb5504f9d, 0x918e4936), TOBN(0x65035ef6, 0xb2513982), + TOBN(0x0553a0c2, 0x6f4d9cb9), TOBN(0x6cb10d56, 0xbea85509), + TOBN(0x48d957b7, 0xa242da11), TOBN(0x16a4d3dd, 0x672b7268), + TOBN(0x3d7e637c, 0x8502a96b), TOBN(0x27c7032b, 0x730d463b), + TOBN(0xbdc02b18, 0xe4136a14), TOBN(0xbacf969d, 0x678e32bf), + TOBN(0xc98d89a3, 0xdd9c3c03), TOBN(0x7b92420a, 0x23becc4f), + TOBN(0xd4b41f78, 0xc64d565c), TOBN(0x9f969d00, 0x10f28295), + TOBN(0xec7f7f76, 0xb13d051a), TOBN(0x08945e1e, 0xa92da585), + TOBN(0x55366b7d, 0x5846426f), TOBN(0xe7d09e89, 0x247d441d), + TOBN(0x510b404d, 0x736fbf48), TOBN(0x7fa003d0, 0xe784bd7d), + TOBN(0x25f7614f, 0x17fd9596), TOBN(0x49e0e0a1, 0x35cb98db), + TOBN(0x2c65957b, 0x2e83a76a), TOBN(0x5d40da8d, 0xcddbe0f8), + TOBN(0xf2b8c405, 0x050bad24), TOBN(0x8918426d, 0xc2aa4823), + TOBN(0x2aeab3dd, 0xa38365a7), TOBN(0x72031717, 0x7c91b690), + TOBN(0x8b00d699, 0x60a94120), TOBN(0x478a255d, 0xe99eaeec), + TOBN(0xbf656a5f, 0x6f60aafd), TOBN(0xdfd7cb75, 0x5dee77b3), + TOBN(0x37f68bb4, 0xa595939d), TOBN(0x03556479, 0x28740217), + TOBN(0x8e740e7c, 0x84ad7612), TOBN(0xd89bc843, 0x9044695f), + TOBN(0xf7f3da5d, 0x85a9184d), TOBN(0x562563bb, 0x9fc0b074), + TOBN(0x06d2e6aa, 0xf88a888e), TOBN(0x612d8643, 0x161fbe7c), + TOBN(0x465edba7, 0xf64085e7), TOBN(0xb230f304, 0x29aa8511), + TOBN(0x53388426, 0xcda2d188), TOBN(0x90885735, 0x4b666649), + TOBN(0x6f02ff9a, 0x652f54f6), TOBN(0x65c82294, 0x5fae2bf0), + TOBN(0x7816ade0, 0x62f5eee3), TOBN(0xdcdbdf43, 0xfcc56d70), + TOBN(0x9fb3bba3, 0x54530bb2), TOBN(0xbde3ef77, 0xcb0869ea), + TOBN(0x89bc9046, 0x0b431163), TOBN(0x4d03d7d2, 0xe4819a35), + TOBN(0x33ae4f9e, 0x43b6a782), TOBN(0x216db307, 0x9c88a686), + TOBN(0x91dd88e0, 0x00ffedd9), TOBN(0xb280da9f, 0x12bd4840), + TOBN(0x32a7cb8a, 0x1635e741), TOBN(0xfe14008a, 0x78be02a7), + TOBN(0x3fafb334, 0x1b7ae030), TOBN(0x7fd508e7, 0x5add0ce9), + TOBN(0x72c83219, 0xd607ad51), TOBN(0x0f229c0a, 0x8d40964a), + TOBN(0x1be2c336, 0x1c878da2), TOBN(0xe0c96742, 0xeab2ab86), + TOBN(0x458f8691, 0x3e538cd7), TOBN(0xa7001f6c, 0x8e08ad53), + TOBN(0x52b8c6e6, 0xbf5d15ff), TOBN(0x548234a4, 0x011215dd), + TOBN(0xff5a9d2d, 0x3d5b4045), TOBN(0xb0ffeeb6, 0x4a904190), + TOBN(0x55a3aca4, 0x48607f8b), TOBN(0x8cbd665c, 0x30a0672a), + TOBN(0x87f834e0, 0x42583068), TOBN(0x02da2aeb, 0xf3f6e683), + TOBN(0x6b763e5d, 0x05c12248), TOBN(0x7230378f, 0x65a8aefc), + TOBN(0x93bd80b5, 0x71e8e5ca), TOBN(0x53ab041c, 0xb3b62524), + TOBN(0x1b860513, 0x6c9c552e), TOBN(0xe84d402c, 0xd5524e66), + TOBN(0xa37f3573, 0xf37f5937), TOBN(0xeb0f6c7d, 0xd1e4fca5), + TOBN(0x2965a554, 0xac8ab0fc), TOBN(0x17fbf56c, 0x274676ac), + TOBN(0x2e2f6bd9, 0xacf7d720), TOBN(0x41fc8f88, 0x10224766), + TOBN(0x517a14b3, 0x85d53bef), TOBN(0xdae327a5, 0x7d76a7d1), + TOBN(0x6ad0a065, 0xc4818267), TOBN(0x33aa189b, 0x37c1bbc1), + TOBN(0x64970b52, 0x27392a92), TOBN(0x21699a1c, 0x2d1535ea), + TOBN(0xcd20779c, 0xc2d7a7fd), TOBN(0xe3186059, 0x99c83cf2), + TOBN(0x9b69440b, 0x72c0b8c7), TOBN(0xa81497d7, 0x7b9e0e4d), + TOBN(0x515d5c89, 0x1f5f82dc), TOBN(0x9a7f67d7, 0x6361079e), + TOBN(0xa8da81e3, 0x11a35330), TOBN(0xe44990c4, 0x4b18be1b), + TOBN(0xc7d5ed95, 0xaf103e59), TOBN(0xece8aba7, 0x8dac9261), + TOBN(0xbe82b099, 0x9394b8d3), TOBN(0x6830f09a, 0x16adfe83), + TOBN(0x250a29b4, 0x88172d01), TOBN(0x8b20bd65, 0xcaff9e02), + TOBN(0xb8a7661e, 0xe8a6329a), TOBN(0x4520304d, 0xd3fce920), + TOBN(0xae45da1f, 0x2b47f7ef), TOBN(0xe07f5288, 0x5bffc540), + TOBN(0xf7997009, 0x3464f874), TOBN(0x2244c2cd, 0xa6fa1f38), + TOBN(0x43c41ac1, 0x94d7d9b1), TOBN(0x5bafdd82, 0xc82e7f17), + TOBN(0xdf0614c1, 0x5fda0fca), TOBN(0x74b043a7, 0xa8ae37ad), + TOBN(0x3ba6afa1, 0x9e71734c), TOBN(0x15d5437e, 0x9c450f2e), + TOBN(0x4a5883fe, 0x67e242b1), TOBN(0x5143bdc2, 0x2c1953c2), + TOBN(0x542b8b53, 0xfc5e8920), TOBN(0x363bf9a8, 0x9a9cee08), + TOBN(0x02375f10, 0xc3486e08), TOBN(0x2037543b, 0x8c5e70d2), + TOBN(0x7109bccc, 0x625640b4), TOBN(0xcbc1051e, 0x8bc62c3b), + TOBN(0xf8455fed, 0x803f26ea), TOBN(0x6badceab, 0xeb372424), + TOBN(0xa2a9ce7c, 0x6b53f5f9), TOBN(0x64246595, 0x1b176d99), + TOBN(0xb1298d36, 0xb95c081b), TOBN(0x53505bb8, 0x1d9a9ee6), + TOBN(0x3f6f9e61, 0xf2ba70b0), TOBN(0xd07e16c9, 0x8afad453), + TOBN(0x9f1694bb, 0xe7eb4a6a), TOBN(0xdfebced9, 0x3cb0bc8e), + TOBN(0x92d3dcdc, 0x53868c8b), TOBN(0x174311a2, 0x386107a6), + TOBN(0x4109e07c, 0x689b4e64), TOBN(0x30e4587f, 0x2df3dcb6), + TOBN(0x841aea31, 0x0811b3b2), TOBN(0x6144d41d, 0x0cce43ea), + TOBN(0x464c4581, 0x2a9a7803), TOBN(0xd03d371f, 0x3e158930), + TOBN(0xc676d7f2, 0xb1f3390b), TOBN(0x9f7a1b8c, 0xa5b61272), + TOBN(0x4ebebfc9, 0xc2e127a9), TOBN(0x4602500c, 0x5dd997bf), + TOBN(0x7f09771c, 0x4711230f), TOBN(0x058eb37c, 0x020f09c1), + TOBN(0xab693d4b, 0xfee5e38b), TOBN(0x9289eb1f, 0x4653cbc0), + TOBN(0xbecf46ab, 0xd51b9cf5), TOBN(0xd2aa9c02, 0x9f0121af), + TOBN(0x36aaf7d2, 0xe90dc274), TOBN(0x909e4ea0, 0x48b95a3c), + TOBN(0xe6b70496, 0x6f32dbdb), TOBN(0x672188a0, 0x8b030b3e), + TOBN(0xeeffe5b3, 0xcfb617e2), TOBN(0x87e947de, 0x7c82709e), + TOBN(0xa44d2b39, 0x1770f5a7), TOBN(0xe4d4d791, 0x0e44eb82), + TOBN(0x42e69d1e, 0x3f69712a), TOBN(0xbf11c4d6, 0xac6a820e), + TOBN(0xb5e7f3e5, 0x42c4224c), TOBN(0xd6b4e81c, 0x449d941c), + TOBN(0x5d72bd16, 0x5450e878), TOBN(0x6a61e28a, 0xee25ac54), + TOBN(0x33272094, 0xe6f1cd95), TOBN(0x7512f30d, 0x0d18673f), + TOBN(0x32f7a4ca, 0x5afc1464), TOBN(0x2f095656, 0x6bbb977b), + TOBN(0x586f47ca, 0xa8226200), TOBN(0x02c868ad, 0x1ac07369), + TOBN(0x4ef2b845, 0xc613acbe), TOBN(0x43d7563e, 0x0386054c), + TOBN(0x54da9dc7, 0xab952578), TOBN(0xb5423df2, 0x26e84d0b), + TOBN(0xa8b64eeb, 0x9b872042), TOBN(0xac205782, 0x5990f6df), + TOBN(0x4ff696eb, 0x21f4c77a), TOBN(0x1a79c3e4, 0xaab273af), + TOBN(0x29bc922e, 0x9436b3f1), TOBN(0xff807ef8, 0xd6d9a27a), + TOBN(0x82acea3d, 0x778f22a0), TOBN(0xfb10b2e8, 0x5b5e7469), + TOBN(0xc0b16980, 0x2818ee7d), TOBN(0x011afff4, 0xc91c1a2f), + TOBN(0x95a6d126, 0xad124418), TOBN(0x31c081a5, 0xe72e295f), + TOBN(0x36bb283a, 0xf2f4db75), TOBN(0xd115540f, 0x7acef462), + TOBN(0xc7f3a8f8, 0x33f6746c), TOBN(0x21e46f65, 0xfea990ca), + TOBN(0x915fd5c5, 0xcaddb0a9), TOBN(0xbd41f016, 0x78614555), + TOBN(0x346f4434, 0x426ffb58), TOBN(0x80559436, 0x14dbc204), + TOBN(0xf3dd20fe, 0x5a969b7f), TOBN(0x9d59e956, 0xe899a39a), + TOBN(0xf1b0971c, 0x8ad4cf4b), TOBN(0x03448860, 0x2ffb8fb8), + TOBN(0xf071ac3c, 0x65340ba4), TOBN(0x408d0596, 0xb27fd758), + TOBN(0xe7c78ea4, 0x98c364b0), TOBN(0xa4aac4a5, 0x051e8ab5), + TOBN(0xb9e1d560, 0x485d9002), TOBN(0x9acd518a, 0x88844455), + TOBN(0xe4ca688f, 0xd06f56c0), TOBN(0xa48af70d, 0xdf027972), + TOBN(0x691f0f04, 0x5e9a609d), TOBN(0xa9dd82cd, 0xee61270e), + TOBN(0x8903ca63, 0xa0ef18d3), TOBN(0x9fb7ee35, 0x3d6ca3bd), + TOBN(0xa7b4a09c, 0xabf47d03), TOBN(0x4cdada01, 0x1c67de8e), + TOBN(0x52003749, 0x9355a244), TOBN(0xe77fd2b6, 0x4f2151a9), + TOBN(0x695d6cf6, 0x66b4efcb), TOBN(0xc5a0cacf, 0xda2cfe25), + TOBN(0x104efe5c, 0xef811865), TOBN(0xf52813e8, 0x9ea5cc3d), + TOBN(0x855683dc, 0x40b58dbc), TOBN(0x0338ecde, 0x175fcb11), + TOBN(0xf9a05637, 0x74921592), TOBN(0xb4f1261d, 0xb9bb9d31), + TOBN(0x551429b7, 0x4e9c5459), TOBN(0xbe182e6f, 0x6ea71f53), + TOBN(0xd3a3b07c, 0xdfc50573), TOBN(0x9ba1afda, 0x62be8d44), + TOBN(0x9bcfd2cb, 0x52ab65d3), TOBN(0xdf11d547, 0xa9571802), + TOBN(0x099403ee, 0x02a2404a), TOBN(0x497406f4, 0x21088a71), + TOBN(0x99479409, 0x5004ae71), TOBN(0xbdb42078, 0xa812c362), + TOBN(0x2b72a30f, 0xd8828442), TOBN(0x283add27, 0xfcb5ed1c), + TOBN(0xf7c0e200, 0x66a40015), TOBN(0x3e3be641, 0x08b295ef), + TOBN(0xac127dc1, 0xe038a675), TOBN(0x729deff3, 0x8c5c6320), + TOBN(0xb7df8fd4, 0xa90d2c53), TOBN(0x9b74b0ec, 0x681e7cd3), + TOBN(0x5cb5a623, 0xdab407e5), TOBN(0xcdbd3615, 0x76b340c6), + TOBN(0xa184415a, 0x7d28392c), TOBN(0xc184c1d8, 0xe96f7830), + TOBN(0xc3204f19, 0x81d3a80f), TOBN(0xfde0c841, 0xc8e02432), + TOBN(0x78203b3e, 0x8149e0c1), TOBN(0x5904bdbb, 0x08053a73), + TOBN(0x30fc1dd1, 0x101b6805), TOBN(0x43c223bc, 0x49aa6d49), + TOBN(0x9ed67141, 0x7a174087), TOBN(0x311469a0, 0xd5997008), + TOBN(0xb189b684, 0x5e43fc61), TOBN(0xf3282375, 0xe0d3ab57), + TOBN(0x4fa34b67, 0xb1181da8), TOBN(0x621ed0b2, 0x99ee52b8), + TOBN(0x9b178de1, 0xad990676), TOBN(0xd51de67b, 0x56d54065), + TOBN(0x2a2c27c4, 0x7538c201), TOBN(0x33856ec8, 0x38a40f5c), + TOBN(0x2522fc15, 0xbe6cdcde), TOBN(0x1e603f33, 0x9f0c6f89), + TOBN(0x7994edc3, 0x103e30a6), TOBN(0x033a00db, 0x220c853e), + TOBN(0xd3cfa409, 0xf7bb7fd7), TOBN(0x70f8781e, 0x462d18f6), + TOBN(0xbbd82980, 0x687fe295), TOBN(0x6eef4c32, 0x595669f3), + TOBN(0x86a9303b, 0x2f7e85c3), TOBN(0x5fce4621, 0x71988f9b), + TOBN(0x5b935bf6, 0xc138acb5), TOBN(0x30ea7d67, 0x25661212), + TOBN(0xef1eb5f4, 0xe51ab9a2), TOBN(0x0587c98a, 0xae067c78), + TOBN(0xb3ce1b3c, 0x77ca9ca6), TOBN(0x2a553d4d, 0x54b5f057), + TOBN(0xc7898236, 0x4da29ec2), TOBN(0xdbdd5d13, 0xb9c57316), + TOBN(0xc57d6e6b, 0x2cd80d47), TOBN(0x80b460cf, 0xfe9e7391), + TOBN(0x98648cab, 0xf963c31e), TOBN(0x67f9f633, 0xcc4d32fd), + TOBN(0x0af42a9d, 0xfdf7c687), TOBN(0x55f292a3, 0x0b015ea7), + TOBN(0x89e468b2, 0xcd21ab3d), TOBN(0xe504f022, 0xc393d392), + TOBN(0xab21e1d4, 0xa5013af9), TOBN(0xe3283f78, 0xc2c28acb), + TOBN(0xf38b35f6, 0x226bf99f), TOBN(0xe8354274, 0x0e291e69), + TOBN(0x61673a15, 0xb20c162d), TOBN(0xc101dc75, 0xb04fbdbe), + TOBN(0x8323b4c2, 0x255bd617), TOBN(0x6c969693, 0x6c2a9154), + TOBN(0xc6e65860, 0x62679387), TOBN(0x8e01db0c, 0xb8c88e23), + TOBN(0x33c42873, 0x893a5559), TOBN(0x7630f04b, 0x47a3e149), + TOBN(0xb5d80805, 0xddcf35f8), TOBN(0x582ca080, 0x77dfe732), + TOBN(0x2c7156e1, 0x0b1894a0), TOBN(0x92034001, 0xd81c68c0), + TOBN(0xed225d00, 0xc8b115b5), TOBN(0x237f9c22, 0x83b907f2), + TOBN(0x0ea2f32f, 0x4470e2c0), TOBN(0xb725f7c1, 0x58be4e95), + TOBN(0x0f1dcafa, 0xb1ae5463), TOBN(0x59ed5187, 0x1ba2fc04), + TOBN(0xf6e0f316, 0xd0115d4d), TOBN(0x5180b12f, 0xd3691599), + TOBN(0x157e32c9, 0x527f0a41), TOBN(0x7b0b081d, 0xa8e0ecc0), + TOBN(0x6dbaaa8a, 0xbf4f0dd0), TOBN(0x99b289c7, 0x4d252696), + TOBN(0x79b7755e, 0xdbf864fe), TOBN(0x6974e2b1, 0x76cad3ab), + TOBN(0x35dbbee2, 0x06ddd657), TOBN(0xe7cbdd11, 0x2ff3a96d), + TOBN(0x88381968, 0x076be758), TOBN(0x2d737e72, 0x08c91f5d), + TOBN(0x5f83ab62, 0x86ec3776), TOBN(0x98aa649d, 0x945fa7a1), + TOBN(0xf477ec37, 0x72ef0933), TOBN(0x66f52b1e, 0x098c17b1), + TOBN(0x9eec58fb, 0xd803738b), TOBN(0x91aaade7, 0xe4e86aa4), + TOBN(0x6b1ae617, 0xa5b51492), TOBN(0x63272121, 0xbbc45974), + TOBN(0x7e0e28f0, 0x862c5129), TOBN(0x0a8f79a9, 0x3321a4a0), + TOBN(0xe26d1664, 0x5041c88f), TOBN(0x0571b805, 0x53233e3a), + TOBN(0xd1b0ccde, 0xc9520711), TOBN(0x55a9e4ed, 0x3c8b84bf), + TOBN(0x9426bd39, 0xa1fef314), TOBN(0x4f5f638e, 0x6eb93f2b), + TOBN(0xba2a1ed3, 0x2bf9341b), TOBN(0xd63c1321, 0x4d42d5a9), + TOBN(0xd2964a89, 0x316dc7c5), TOBN(0xd1759606, 0xca511851), + TOBN(0xd8a9201f, 0xf9e6ed35), TOBN(0xb7b5ee45, 0x6736925a), + TOBN(0x0a83fbbc, 0x99581af7), TOBN(0x3076bc40, 0x64eeb051), + TOBN(0x5511c98c, 0x02dec312), TOBN(0x270de898, 0x238dcb78), + TOBN(0x2cf4cf9c, 0x539c08c9), TOBN(0xa70cb65e, 0x38d3b06e), + TOBN(0xb12ec10e, 0xcfe57bbd), TOBN(0x82c7b656, 0x35a0c2b5), + TOBN(0xddc7d5cd, 0x161c67bd), TOBN(0xe32e8985, 0xae3a32cc), + TOBN(0x7aba9444, 0xd11a5529), TOBN(0xe964ed02, 0x2427fa1a), + TOBN(0x1528392d, 0x24a1770a), TOBN(0xa152ce2c, 0x12c72fcd), + TOBN(0x714553a4, 0x8ec07649), TOBN(0x18b4c290, 0x459dd453), + TOBN(0xea32b714, 0x7b64b110), TOBN(0xb871bfa5, 0x2e6f07a2), + TOBN(0xb67112e5, 0x9e2e3c9b), TOBN(0xfbf250e5, 0x44aa90f6), + TOBN(0xf77aedb8, 0xbd539006), TOBN(0x3b0cdf9a, 0xd172a66f), + TOBN(0xedf69fea, 0xf8c51187), TOBN(0x05bb67ec, 0x741e4da7), + TOBN(0x47df0f32, 0x08114345), TOBN(0x56facb07, 0xbb9792b1), + TOBN(0xf3e007e9, 0x8f6229e4), TOBN(0x62d103f4, 0x526fba0f), + TOBN(0x4f33bef7, 0xb0339d79), TOBN(0x9841357b, 0xb59bfec1), + TOBN(0xfa8dbb59, 0xc34e6705), TOBN(0xc3c7180b, 0x7fdaa84c), + TOBN(0xf95872fc, 0xa4108537), TOBN(0x8750cc3b, 0x932a3e5a), + TOBN(0xb61cc69d, 0xb7275d7d), TOBN(0xffa0168b, 0x2e59b2e9), + TOBN(0xca032abc, 0x6ecbb493), TOBN(0x1d86dbd3, 0x2c9082d8), + TOBN(0xae1e0b67, 0xe28ef5ba), TOBN(0x2c9a4699, 0xcb18e169), + TOBN(0x0ecd0e33, 0x1e6bbd20), TOBN(0x571b360e, 0xaf5e81d2), + TOBN(0xcd9fea58, 0x101c1d45), TOBN(0x6651788e, 0x18880452), + TOBN(0xa9972635, 0x1f8dd446), TOBN(0x44bed022, 0xe37281d0), + TOBN(0x094b2b2d, 0x33da525d), TOBN(0xf193678e, 0x13144fd8), + TOBN(0xb8ab5ba4, 0xf4c1061d), TOBN(0x4343b5fa, 0xdccbe0f4), + TOBN(0xa8702371, 0x63812713), TOBN(0x47bf6d2d, 0xf7611d93), + TOBN(0x46729b8c, 0xbd21e1d7), TOBN(0x7484d4e0, 0xd629e77d), + TOBN(0x830e6eea, 0x60dbac1f), TOBN(0x23d8c484, 0xda06a2f7), + TOBN(0x896714b0, 0x50ca535b), TOBN(0xdc8d3644, 0xebd97a9b), + TOBN(0x106ef9fa, 0xb12177b4), TOBN(0xf79bf464, 0x534d5d9c), + TOBN(0x2537a349, 0xa6ab360b), TOBN(0xc7c54253, 0xa00c744f), + TOBN(0xb3c7a047, 0xe5911a76), TOBN(0x61ffa5c8, 0x647f1ee7), + TOBN(0x15aed36f, 0x8f56ab42), TOBN(0x6a0d41b0, 0xa3ff9ac9), + TOBN(0x68f469f5, 0xcc30d357), TOBN(0xbe9adf81, 0x6b72be96), + TOBN(0x1cd926fe, 0x903ad461), TOBN(0x7e89e38f, 0xcaca441b), + TOBN(0xf0f82de5, 0xfacf69d4), TOBN(0x363b7e76, 0x4775344c), + TOBN(0x6894f312, 0xb2e36d04), TOBN(0x3c6cb4fe, 0x11d1c9a5), + TOBN(0x85d9c339, 0x4008e1f2), TOBN(0x5e9a85ea, 0x249f326c), + TOBN(0xdc35c60a, 0x678c5e06), TOBN(0xc08b944f, 0x9f86fba9), + TOBN(0xde40c02c, 0x89f71f0f), TOBN(0xad8f3e31, 0xff3da3c0), + TOBN(0x3ea5096b, 0x42125ded), TOBN(0x13879cbf, 0xa7379183), + TOBN(0x6f4714a5, 0x6b306a0b), TOBN(0x359c2ea6, 0x67646c5e), + TOBN(0xfacf8943, 0x07726368), TOBN(0x07a58935, 0x65ff431e), + TOBN(0x24d661d1, 0x68754ab0), TOBN(0x801fce1d, 0x6f429a76), + TOBN(0xc068a85f, 0xa58ce769), TOBN(0xedc35c54, 0x5d5eca2b), + TOBN(0xea31276f, 0xa3f660d1), TOBN(0xa0184ebe, 0xb8fc7167), + TOBN(0x0f20f21a, 0x1d8db0ae), TOBN(0xd96d095f, 0x56c35e12), + TOBN(0xedf402b5, 0xf8c2a25b), TOBN(0x1bb772b9, 0x059204b6), + TOBN(0x50cbeae2, 0x19b4e34c), TOBN(0x93109d80, 0x3fa0845a), + TOBN(0x54f7ccf7, 0x8ef59fb5), TOBN(0x3b438fe2, 0x88070963), + TOBN(0x9e28c659, 0x31f3ba9b), TOBN(0x9cc31b46, 0xead9da92), + TOBN(0x3c2f0ba9, 0xb733aa5f), TOBN(0xdece47cb, 0xf05af235), + TOBN(0xf8e3f715, 0xa2ac82a5), TOBN(0xc97ba641, 0x2203f18a), + TOBN(0xc3af5504, 0x09c11060), TOBN(0x56ea2c05, 0x46af512d), + TOBN(0xfac28daf, 0xf3f28146), TOBN(0x87fab43a, 0x959ef494),} + , + {TOBN(0x09891641, 0xd4c5105f), TOBN(0x1ae80f8e, 0x6d7fbd65), + TOBN(0x9d67225f, 0xbee6bdb0), TOBN(0x3b433b59, 0x7fc4d860), + TOBN(0x44e66db6, 0x93e85638), TOBN(0xf7b59252, 0xe3e9862f), + TOBN(0xdb785157, 0x665c32ec), TOBN(0x702fefd7, 0xae362f50), + TOBN(0x3754475d, 0x0fefb0c3), TOBN(0xd48fb56b, 0x46d7c35d), + TOBN(0xa070b633, 0x363798a4), TOBN(0xae89f3d2, 0x8fdb98e6), + TOBN(0x970b89c8, 0x6363d14c), TOBN(0x89817521, 0x67abd27d), + TOBN(0x9bf7d474, 0x44d5a021), TOBN(0xb3083baf, 0xcac72aee), + TOBN(0x389741de, 0xbe949a44), TOBN(0x638e9388, 0x546a4fa5), + TOBN(0x3fe6419c, 0xa0047bdc), TOBN(0x7047f648, 0xaaea57ca), + TOBN(0x54e48a90, 0x41fbab17), TOBN(0xda8e0b28, 0x576bdba2), + TOBN(0xe807eebc, 0xc72afddc), TOBN(0x07d3336d, 0xf42577bf), + TOBN(0x62a8c244, 0xbfe20925), TOBN(0x91c19ac3, 0x8fdce867), + TOBN(0x5a96a5d5, 0xdd387063), TOBN(0x61d587d4, 0x21d324f6), + TOBN(0xe87673a2, 0xa37173ea), TOBN(0x23848008, 0x53778b65), + TOBN(0x10f8441e, 0x05bab43e), TOBN(0xfa11fe12, 0x4621efbe), + TOBN(0x047b772e, 0x81685d7b), TOBN(0x23f27d81, 0xbf34a976), + TOBN(0xc27608e2, 0x915f48ef), TOBN(0x3b0b43fa, 0xa521d5c3), + TOBN(0x7613fb26, 0x63ca7284), TOBN(0x7f5729b4, 0x1d4db837), + TOBN(0x87b14898, 0x583b526b), TOBN(0x00b732a6, 0xbbadd3d1), + TOBN(0x8e02f426, 0x2048e396), TOBN(0x436b50b6, 0x383d9de4), + TOBN(0xf78d3481, 0x471e85ad), TOBN(0x8b01ea6a, 0xd005c8d6), + TOBN(0xd3c7afee, 0x97015c07), TOBN(0x46cdf1a9, 0x4e3ba2ae), + TOBN(0x7a42e501, 0x83d3a1d2), TOBN(0xd54b5268, 0xb541dff4), + TOBN(0x3f24cf30, 0x4e23e9bc), TOBN(0x4387f816, 0x126e3624), + TOBN(0x26a46a03, 0x3b0b6d61), TOBN(0xaf1bc845, 0x8b2d777c), + TOBN(0x25c401ba, 0x527de79c), TOBN(0x0e1346d4, 0x4261bbb6), + TOBN(0x4b96c44b, 0x287b4bc7), TOBN(0x658493c7, 0x5254562f), + TOBN(0x23f949fe, 0xb8a24a20), TOBN(0x17ebfed1, 0xf52ca53f), + TOBN(0x9b691bbe, 0xbcfb4853), TOBN(0x5617ff6b, 0x6278a05d), + TOBN(0x241b34c5, 0xe3c99ebd), TOBN(0xfc64242e, 0x1784156a), + TOBN(0x4206482f, 0x695d67df), TOBN(0xb967ce0e, 0xee27c011), + TOBN(0x65db3751, 0x21c80b5d), TOBN(0x2e7a563c, 0xa31ecca0), + TOBN(0xe56ffc4e, 0x5238a07e), TOBN(0x3d6c2966, 0x32ced854), + TOBN(0xe99d7d1a, 0xaf70b885), TOBN(0xafc3bad9, 0x2d686459), + TOBN(0x9c78bf46, 0x0cc8ba5b), TOBN(0x5a439519, 0x18955aa3), + TOBN(0xf8b517a8, 0x5fe4e314), TOBN(0xe60234d0, 0xfcb8906f), + TOBN(0xffe542ac, 0xf2061b23), TOBN(0x287e191f, 0x6b4cb59c), + TOBN(0x21857ddc, 0x09d877d8), TOBN(0x1c23478c, 0x14678941), + TOBN(0xbbf0c056, 0xb6e05ea4), TOBN(0x82da4b53, 0xb01594fe), + TOBN(0xf7526791, 0xfadb8608), TOBN(0x049e832d, 0x7b74cdf6), + TOBN(0xa43581cc, 0xc2b90a34), TOBN(0x73639eb8, 0x9360b10c), + TOBN(0x4fba331f, 0xe1e4a71b), TOBN(0x6ffd6b93, 0x8072f919), + TOBN(0x6e53271c, 0x65679032), TOBN(0x67206444, 0xf14272ce), + TOBN(0xc0f734a3, 0xb2335834), TOBN(0x9526205a, 0x90ef6860), + TOBN(0xcb8be717, 0x04e2bb0d), TOBN(0x2418871e, 0x02f383fa), + TOBN(0xd7177681, 0x4082c157), TOBN(0xcc914ad0, 0x29c20073), + TOBN(0xf186c1eb, 0xe587e728), TOBN(0x6fdb3c22, 0x61bcd5fd), + TOBN(0x30d014a6, 0xf2f9f8e9), TOBN(0x963ece23, 0x4fec49d2), + TOBN(0x862025c5, 0x9605a8d9), TOBN(0x39874445, 0x19f8929a), + TOBN(0x01b6ff65, 0x12bf476a), TOBN(0x598a64d8, 0x09cf7d91), + TOBN(0xd7ec7749, 0x93be56ca), TOBN(0x10899785, 0xcbb33615), + TOBN(0xb8a092fd, 0x02eee3ad), TOBN(0xa86b3d35, 0x30145270), + TOBN(0x323d98c6, 0x8512b675), TOBN(0x4b8bc785, 0x62ebb40f), + TOBN(0x7d301f54, 0x413f9cde), TOBN(0xa5e4fb4f, 0x2bab5664), + TOBN(0x1d2b252d, 0x1cbfec23), TOBN(0xfcd576bb, 0xe177120d), + TOBN(0x04427d3e, 0x83731a34), TOBN(0x2bb9028e, 0xed836e8e), + TOBN(0xb36acff8, 0xb612ca7c), TOBN(0xb88fe5ef, 0xd3d9c73a), + TOBN(0xbe2a6bc6, 0xedea4eb3), TOBN(0x43b93133, 0x488eec77), + TOBN(0xf41ff566, 0xb17106e1), TOBN(0x469e9172, 0x654efa32), + TOBN(0xb4480f04, 0x41c23fa3), TOBN(0xb4712eb0, 0xc1989a2e), + TOBN(0x3ccbba0f, 0x93a29ca7), TOBN(0x6e205c14, 0xd619428c), + TOBN(0x90db7957, 0xb3641686), TOBN(0x0432691d, 0x45ac8b4e), + TOBN(0x07a759ac, 0xf64e0350), TOBN(0x0514d89c, 0x9c972517), + TOBN(0x1701147f, 0xa8e67fc3), TOBN(0x9e2e0b8b, 0xab2085be), + TOBN(0xd5651824, 0xac284e57), TOBN(0x890d4325, 0x74893664), + TOBN(0x8a7c5e6e, 0xc55e68a3), TOBN(0xbf12e90b, 0x4339c85a), + TOBN(0x31846b85, 0xf922b655), TOBN(0x9a54ce4d, 0x0bf4d700), + TOBN(0xd7f4e83a, 0xf1a14295), TOBN(0x916f955c, 0xb285d4f9), + TOBN(0xe57bb0e0, 0x99ffdaba), TOBN(0x28a43034, 0xeab0d152), + TOBN(0x0a36ffa2, 0xb8a9cef8), TOBN(0x5517407e, 0xb9ec051a), + TOBN(0x9c796096, 0xea68e672), TOBN(0x853db5fb, 0xfb3c77fb), + TOBN(0x21474ba9, 0xe864a51a), TOBN(0x6c267699, 0x6e8a1b8b), + TOBN(0x7c823626, 0x94120a28), TOBN(0xe61e9a48, 0x8383a5db), + TOBN(0x7dd75003, 0x9f84216d), TOBN(0xab020d07, 0xad43cd85), + TOBN(0x9437ae48, 0xda12c659), TOBN(0x6449c2eb, 0xe65452ad), + TOBN(0xcc7c4c1c, 0x2cf9d7c1), TOBN(0x1320886a, 0xee95e5ab), + TOBN(0xbb7b9056, 0xbeae170c), TOBN(0xc8a5b250, 0xdbc0d662), + TOBN(0x4ed81432, 0xc11d2303), TOBN(0x7da66912, 0x1f03769f), + TOBN(0x3ac7a5fd, 0x84539828), TOBN(0x14dada94, 0x3bccdd02), + TOBN(0x8b84c321, 0x7ef6b0d1), TOBN(0x52a9477a, 0x7c933f22), + TOBN(0x5ef6728a, 0xfd440b82), TOBN(0x5c3bd859, 0x6ce4bd5e), + TOBN(0x918b80f5, 0xf22c2d3e), TOBN(0x368d5040, 0xb7bb6cc5), + TOBN(0xb66142a1, 0x2695a11c), TOBN(0x60ac583a, 0xeb19ea70), + TOBN(0x317cbb98, 0x0eab2437), TOBN(0x8cc08c55, 0x5e2654c8), + TOBN(0xfe2d6520, 0xe6d8307f), TOBN(0xe9f147f3, 0x57428993), + TOBN(0x5f9c7d14, 0xd2fd6cf1), TOBN(0xa3ecd064, 0x2d4fcbb0), + TOBN(0xad83fef0, 0x8e7341f7), TOBN(0x643f23a0, 0x3a63115c), + TOBN(0xd38a78ab, 0xe65ab743), TOBN(0xbf7c75b1, 0x35edc89c), + TOBN(0x3dd8752e, 0x530df568), TOBN(0xf85c4a76, 0xe308c682), + TOBN(0x4c9955b2, 0xe68acf37), TOBN(0xa544df3d, 0xab32af85), + TOBN(0x4b8ec3f5, 0xa25cf493), TOBN(0x4d8f2764, 0x1a622feb), + TOBN(0x7bb4f7aa, 0xf0dcbc49), TOBN(0x7de551f9, 0x70bbb45b), + TOBN(0xcfd0f3e4, 0x9f2ca2e5), TOBN(0xece58709, 0x1f5c76ef), + TOBN(0x32920edd, 0x167d79ae), TOBN(0x039df8a2, 0xfa7d7ec1), + TOBN(0xf46206c0, 0xbb30af91), TOBN(0x1ff5e2f5, 0x22676b59), + TOBN(0x11f4a039, 0x6ea51d66), TOBN(0x506c1445, 0x807d7a26), + TOBN(0x60da5705, 0x755a9b24), TOBN(0x8fc8cc32, 0x1f1a319e), + TOBN(0x83642d4d, 0x9433d67d), TOBN(0x7fa5cb8f, 0x6a7dd296), + TOBN(0x576591db, 0x9b7bde07), TOBN(0x13173d25, 0x419716fb), + TOBN(0xea30599d, 0xd5b340ff), TOBN(0xfc6b5297, 0xb0fe76c5), + TOBN(0x1c6968c8, 0xab8f5adc), TOBN(0xf723c7f5, 0x901c928d), + TOBN(0x4203c321, 0x9773d402), TOBN(0xdf7c6aa3, 0x1b51dd47), + TOBN(0x3d49e37a, 0x552be23c), TOBN(0x57febee8, 0x0b5a6e87), + TOBN(0xc5ecbee4, 0x7bd8e739), TOBN(0x79d44994, 0xae63bf75), + TOBN(0x168bd00f, 0x38fb8923), TOBN(0x75d48ee4, 0xd0533130), + TOBN(0x554f77aa, 0xdb5cdf33), TOBN(0x3396e896, 0x3c696769), + TOBN(0x2fdddbf2, 0xd3fd674e), TOBN(0xbbb8f6ee, 0x99d0e3e5), + TOBN(0x51b90651, 0xcbae2f70), TOBN(0xefc4bc05, 0x93aaa8eb), + TOBN(0x8ecd8689, 0xdd1df499), TOBN(0x1aee99a8, 0x22f367a5), + TOBN(0x95d485b9, 0xae8274c5), TOBN(0x6c14d445, 0x7d30b39c), + TOBN(0xbafea90b, 0xbcc1ef81), TOBN(0x7c5f317a, 0xa459a2ed), + TOBN(0x01211075, 0x4ef44227), TOBN(0xa17bed6e, 0xdc20f496), + TOBN(0x0cdfe424, 0x819853cd), TOBN(0x13793298, 0xf71e2ce7), + TOBN(0x3c1f3078, 0xdbbe307b), TOBN(0x6dd1c20e, 0x76ee9936), + TOBN(0x23ee4b57, 0x423caa20), TOBN(0x4ac3793b, 0x8efb840e), + TOBN(0x934438eb, 0xed1f8ca0), TOBN(0x3e546658, 0x4ebb25a2), + TOBN(0xc415af0e, 0xc069896f), TOBN(0xc13eddb0, 0x9a5aa43d), + TOBN(0x7a04204f, 0xd49eb8f6), TOBN(0xd0d5bdfc, 0xd74f1670), + TOBN(0x3697e286, 0x56fc0558), TOBN(0x10207371, 0x01cebade), + TOBN(0x5f87e690, 0x0647a82b), TOBN(0x908e0ed4, 0x8f40054f), + TOBN(0xa9f633d4, 0x79853803), TOBN(0x8ed13c9a, 0x4a28b252), + TOBN(0x3e2ef676, 0x1f460f64), TOBN(0x53930b9b, 0x36d06336), + TOBN(0x347073ac, 0x8fc4979b), TOBN(0x84380e0e, 0x5ecd5597), + TOBN(0xe3b22c6b, 0xc4fe3c39), TOBN(0xba4a8153, 0x6c7bebdf), + TOBN(0xf23ab6b7, 0x25693459), TOBN(0x53bc3770, 0x14922b11), + TOBN(0x4645c8ab, 0x5afc60db), TOBN(0xaa022355, 0x20b9f2a3), + TOBN(0x52a2954c, 0xce0fc507), TOBN(0x8c2731bb, 0x7ce1c2e7), + TOBN(0xf39608ab, 0x18a0339d), TOBN(0xac7a658d, 0x3735436c), + TOBN(0xb22c2b07, 0xcd992b4f), TOBN(0x4e83daec, 0xf40dcfd4), + TOBN(0x8a34c7be, 0x2f39ea3e), TOBN(0xef0c005f, 0xb0a56d2e), + TOBN(0x62731f6a, 0x6edd8038), TOBN(0x5721d740, 0x4e3cb075), + TOBN(0x1ea41511, 0xfbeeee1b), TOBN(0xd1ef5e73, 0xef1d0c05), + TOBN(0x42feefd1, 0x73c07d35), TOBN(0xe530a00a, 0x8a329493), + TOBN(0x5d55b7fe, 0xf15ebfb0), TOBN(0x549de03c, 0xd322491a), + TOBN(0xf7b5f602, 0x745b3237), TOBN(0x3632a3a2, 0x1ab6e2b6), + TOBN(0x0d3bba89, 0x0ef59f78), TOBN(0x0dfc6443, 0xc9e52b9a), + TOBN(0x1dc79699, 0x72631447), TOBN(0xef033917, 0xb3be20b1), + TOBN(0x0c92735d, 0xb1383948), TOBN(0xc1fc29a2, 0xc0dd7d7d), + TOBN(0x6485b697, 0x403ed068), TOBN(0x13bfaab3, 0xaac93bdc), + TOBN(0x410dc6a9, 0x0deeaf52), TOBN(0xb003fb02, 0x4c641c15), + TOBN(0x1384978c, 0x5bc504c4), TOBN(0x37640487, 0x864a6a77), + TOBN(0x05991bc6, 0x222a77da), TOBN(0x62260a57, 0x5e47eb11), + TOBN(0xc7af6613, 0xf21b432c), TOBN(0x22f3acc9, 0xab4953e9), + TOBN(0x52934922, 0x8e41d155), TOBN(0x4d024568, 0x3ac059ef), + TOBN(0xb0201755, 0x4d884411), TOBN(0xce8055cf, 0xa59a178f), + TOBN(0xcd77d1af, 0xf6204549), TOBN(0xa0a00a3e, 0xc7066759), + TOBN(0x471071ef, 0x0272c229), TOBN(0x009bcf6b, 0xd3c4b6b0), + TOBN(0x2a2638a8, 0x22305177), TOBN(0xd51d59df, 0x41645bbf), + TOBN(0xa81142fd, 0xc0a7a3c0), TOBN(0xa17eca6d, 0x4c7063ee), + TOBN(0x0bb887ed, 0x60d9dcec), TOBN(0xd6d28e51, 0x20ad2455), + TOBN(0xebed6308, 0xa67102ba), TOBN(0x042c3114, 0x8bffa408), + TOBN(0xfd099ac5, 0x8aa68e30), TOBN(0x7a6a3d7c, 0x1483513e), + TOBN(0xffcc6b75, 0xba2d8f0c), TOBN(0x54dacf96, 0x1e78b954), + TOBN(0xf645696f, 0xa4a9af89), TOBN(0x3a411940, 0x06ac98ec), + TOBN(0x41b8b3f6, 0x22a67a20), TOBN(0x2d0b1e0f, 0x99dec626), + TOBN(0x27c89192, 0x40be34e8), TOBN(0xc7162b37, 0x91907f35), + TOBN(0x90188ec1, 0xa956702b), TOBN(0xca132f7d, 0xdf93769c), + TOBN(0x3ece44f9, 0x0e2025b4), TOBN(0x67aaec69, 0x0c62f14c), + TOBN(0xad741418, 0x22e3cc11), TOBN(0xcf9b75c3, 0x7ff9a50e), + TOBN(0x02fa2b16, 0x4d348272), TOBN(0xbd99d61a, 0x9959d56d), + TOBN(0xbc4f19db, 0x18762916), TOBN(0xcc7cce50, 0x49c1ac80), + TOBN(0x4d59ebaa, 0xd846bd83), TOBN(0x8775a9dc, 0xa9202849), + TOBN(0x07ec4ae1, 0x6e1f4ca9), TOBN(0x27eb5875, 0xba893f11), + TOBN(0x00284d51, 0x662cc565), TOBN(0x82353a6b, 0x0db4138d), + TOBN(0xd9c7aaaa, 0xaa32a594), TOBN(0xf5528b5e, 0xa5669c47), + TOBN(0xf3220231, 0x2f23c5ff), TOBN(0xe3e8147a, 0x6affa3a1), + TOBN(0xfb423d5c, 0x202ddda0), TOBN(0x3d6414ac, 0x6b871bd4), + TOBN(0x586f82e1, 0xa51a168a), TOBN(0xb712c671, 0x48ae5448), + TOBN(0x9a2e4bd1, 0x76233eb8), TOBN(0x0188223a, 0x78811ca9), + TOBN(0x553c5e21, 0xf7c18de1), TOBN(0x7682e451, 0xb27bb286), + TOBN(0x3ed036b3, 0x0e51e929), TOBN(0xf487211b, 0xec9cb34f), + TOBN(0x0d094277, 0x0c24efc8), TOBN(0x0349fd04, 0xbef737a4), + TOBN(0x6d1c9dd2, 0x514cdd28), TOBN(0x29c135ff, 0x30da9521), + TOBN(0xea6e4508, 0xf78b0b6f), TOBN(0x176f5dd2, 0x678c143c), + TOBN(0x08148418, 0x4be21e65), TOBN(0x27f7525c, 0xe7df38c4), + TOBN(0x1fb70e09, 0x748ab1a4), TOBN(0x9cba50a0, 0x5efe4433), + TOBN(0x7846c7a6, 0x15f75af2), TOBN(0x2a7c2c57, 0x5ee73ea8), + TOBN(0x42e566a4, 0x3f0a449a), TOBN(0x45474c3b, 0xad90fc3d), + TOBN(0x7447be3d, 0x8b61d057), TOBN(0x3e9d1cf1, 0x3a4ec092), + TOBN(0x1603e453, 0xf380a6e6), TOBN(0x0b86e431, 0x9b1437c2), + TOBN(0x7a4173f2, 0xef29610a), TOBN(0x8fa729a7, 0xf03d57f7), + TOBN(0x3e186f6e, 0x6c9c217e), TOBN(0xbe1d3079, 0x91919524), + TOBN(0x92a62a70, 0x153d4fb1), TOBN(0x32ed3e34, 0xd68c2f71), + TOBN(0xd785027f, 0x9eb1a8b7), TOBN(0xbc37eb77, 0xc5b22fe8), + TOBN(0x466b34f0, 0xb9d6a191), TOBN(0x008a89af, 0x9a05f816), + TOBN(0x19b028fb, 0x7d42c10a), TOBN(0x7fe8c92f, 0x49b3f6b8), + TOBN(0x58907cc0, 0xa5a0ade3), TOBN(0xb3154f51, 0x559d1a7c), + TOBN(0x5066efb6, 0xd9790ed6), TOBN(0xa77a0cbc, 0xa6aa793b), + TOBN(0x1a915f3c, 0x223e042e), TOBN(0x1c5def04, 0x69c5874b), + TOBN(0x0e830078, 0x73b6c1da), TOBN(0x55cf85d2, 0xfcd8557a), + TOBN(0x0f7c7c76, 0x0460f3b1), TOBN(0x87052acb, 0x46e58063), + TOBN(0x09212b80, 0x907eae66), TOBN(0x3cb068e0, 0x4d721c89), + TOBN(0xa87941ae, 0xdd45ac1c), TOBN(0xde8d5c0d, 0x0daa0dbb), + TOBN(0xda421fdc, 0xe3502e6e), TOBN(0xc8944201, 0x4d89a084), + TOBN(0x7307ba5e, 0xf0c24bfb), TOBN(0xda212beb, 0x20bde0ef), + TOBN(0xea2da24b, 0xf82ce682), TOBN(0x058d3816, 0x07f71fe4), + TOBN(0x35a02462, 0x5ffad8de), TOBN(0xcd7b05dc, 0xaadcefab), + TOBN(0xd442f8ed, 0x1d9f54ec), TOBN(0x8be3d618, 0xb2d3b5ca), + TOBN(0xe2220ed0, 0xe06b2ce2), TOBN(0x82699a5f, 0x1b0da4c0), + TOBN(0x3ff106f5, 0x71c0c3a7), TOBN(0x8f580f5a, 0x0d34180c), + TOBN(0x4ebb120e, 0x22d7d375), TOBN(0x5e5782cc, 0xe9513675), + TOBN(0x2275580c, 0x99c82a70), TOBN(0xe8359fbf, 0x15ea8c4c), + TOBN(0x53b48db8, 0x7b415e70), TOBN(0xaacf2240, 0x100c6014), + TOBN(0x9faaccf5, 0xe4652f1d), TOBN(0xbd6fdd2a, 0xd56157b2), + TOBN(0xa4f4fb1f, 0x6261ec50), TOBN(0x244e55ad, 0x476bcd52), + TOBN(0x881c9305, 0x047d320b), TOBN(0x1ca983d5, 0x6181263f), + TOBN(0x354e9a44, 0x278fb8ee), TOBN(0xad2dbc0f, 0x396e4964), + TOBN(0x723f3aa2, 0x9268b3de), TOBN(0x0d1ca29a, 0xe6e0609a), + TOBN(0x794866aa, 0x6cf44252), TOBN(0x0b59f3e3, 0x01af87ed), + TOBN(0xe234e5ff, 0x7f4a6c51), TOBN(0xa8768fd2, 0x61dc2f7e), + TOBN(0xdafc7332, 0x0a94d81f), TOBN(0xd7f84282, 0x06938ce1), + TOBN(0xae0b3c0e, 0x0546063e), TOBN(0x7fbadcb2, 0x5d61abc6), + TOBN(0xd5d7a2c9, 0x369ac400), TOBN(0xa5978d09, 0xae67d10c), + TOBN(0x290f211e, 0x4f85eaac), TOBN(0xe61e2ad1, 0xfacac681), + TOBN(0xae125225, 0x388384cd), TOBN(0xa7fb68e9, 0xccfde30f), + TOBN(0x7a59b936, 0x3daed4c2), TOBN(0x80a9aa40, 0x2606f789), + TOBN(0xb40c1ea5, 0xf6a6d90a), TOBN(0x948364d3, 0x514d5885), + TOBN(0x062ebc60, 0x70985182), TOBN(0xa6db5b0e, 0x33310895), + TOBN(0x64a12175, 0xe329c2f5), TOBN(0xc5f25bd2, 0x90ea237e), + TOBN(0x7915c524, 0x2d0a4c23), TOBN(0xeb5d26e4, 0x6bb3cc52), + TOBN(0x369a9116, 0xc09e2c92), TOBN(0x0c527f92, 0xcf182cf8), + TOBN(0x9e591938, 0x2aede0ac), TOBN(0xb2922208, 0x6cc34939), + TOBN(0x3c9d8962, 0x99a34361), TOBN(0x3c81836d, 0xc1905fe6), + TOBN(0x4bfeb57f, 0xa001ec5a), TOBN(0xe993f5bb, 0xa0dc5dba), + TOBN(0x47884109, 0x724a1380), TOBN(0x8a0369ab, 0x32fe9a04), + TOBN(0xea068d60, 0x8c927db8), TOBN(0xbf5f37cf, 0x94655741), + TOBN(0x47d402a2, 0x04b6c7ea), TOBN(0x4551c295, 0x6af259cb), + TOBN(0x698b71e7, 0xed77ee8b), TOBN(0xbddf7bd0, 0xf309d5c7), + TOBN(0x6201c22c, 0x34e780ca), TOBN(0xab04f7d8, 0x4c295ef4), + TOBN(0x1c947294, 0x4313a8ce), TOBN(0xe532e4ac, 0x92ca4cfe), + TOBN(0x89738f80, 0xd0a7a97a), TOBN(0xec088c88, 0xa580fd5b), + TOBN(0x612b1ecc, 0x42ce9e51), TOBN(0x8f9840fd, 0xb25fdd2a), + TOBN(0x3cda78c0, 0x01e7f839), TOBN(0x546b3d3a, 0xece05480), + TOBN(0x271719a9, 0x80d30916), TOBN(0x45497107, 0x584c20c4), + TOBN(0xaf8f9478, 0x5bc78608), TOBN(0x28c7d484, 0x277e2a4c), + TOBN(0xfce01767, 0x88a2ffe4), TOBN(0xdc506a35, 0x28e169a5), + TOBN(0x0ea10861, 0x7af9c93a), TOBN(0x1ed24361, 0x03fa0e08), + TOBN(0x96eaaa92, 0xa3d694e7), TOBN(0xc0f43b4d, 0xef50bc74), + TOBN(0xce6aa58c, 0x64114db4), TOBN(0x8218e8ea, 0x7c000fd4), + TOBN(0xac815dfb, 0x185f8844), TOBN(0xcd7e90cb, 0x1557abfb), + TOBN(0x23d16655, 0xafbfecdf), TOBN(0x80f3271f, 0x085cac4a), + TOBN(0x7fc39aa7, 0xd0e62f47), TOBN(0x88d519d1, 0x460a48e5), + TOBN(0x59559ac4, 0xd28f101e), TOBN(0x7981d9e9, 0xca9ae816), + TOBN(0x5c38652c, 0x9ac38203), TOBN(0x86eaf87f, 0x57657fe5), + TOBN(0x568fc472, 0xe21f5416), TOBN(0x2afff39c, 0xe7e597b5), + TOBN(0x3adbbb07, 0x256d4eab), TOBN(0x22598692, 0x8285ab89), + TOBN(0x35f8112a, 0x041caefe), TOBN(0x95df02e3, 0xa5064c8b), + TOBN(0x4d63356e, 0xc7004bf3), TOBN(0x230a08f4, 0xdb83c7de), + TOBN(0xca27b270, 0x8709a7b7), TOBN(0x0d1c4cc4, 0xcb9abd2d), + TOBN(0x8a0bc66e, 0x7550fee8), TOBN(0x369cd4c7, 0x9cf7247e), + TOBN(0x75562e84, 0x92b5b7e7), TOBN(0x8fed0da0, 0x5802af7b), + TOBN(0x6a7091c2, 0xe48fb889), TOBN(0x26882c13, 0x7b8a9d06), + TOBN(0xa2498663, 0x1b82a0e2), TOBN(0x844ed736, 0x3518152d), + TOBN(0x282f476f, 0xd86e27c7), TOBN(0xa04edaca, 0x04afefdc), + TOBN(0x8b256ebc, 0x6119e34d), TOBN(0x56a413e9, 0x0787d78b),} + , + {TOBN(0x82ee061d, 0x5a74be50), TOBN(0xe41781c4, 0xdea16ff5), + TOBN(0xe0b0c81e, 0x99bfc8a2), TOBN(0x624f4d69, 0x0b547e2d), + TOBN(0x3a83545d, 0xbdcc9ae4), TOBN(0x2573dbb6, 0x409b1e8e), + TOBN(0x482960c4, 0xa6c93539), TOBN(0xf01059ad, 0x5ae18798), + TOBN(0x715c9f97, 0x3112795f), TOBN(0xe8244437, 0x984e6ee1), + TOBN(0x55cb4858, 0xecb66bcd), TOBN(0x7c136735, 0xabaffbee), + TOBN(0x54661595, 0x5dbec38e), TOBN(0x51c0782c, 0x388ad153), + TOBN(0x9ba4c53a, 0xc6e0952f), TOBN(0x27e6782a, 0x1b21dfa8), + TOBN(0x682f903d, 0x4ed2dbc2), TOBN(0x0eba59c8, 0x7c3b2d83), + TOBN(0x8e9dc84d, 0x9c7e9335), TOBN(0x5f9b21b0, 0x0eb226d7), + TOBN(0xe33bd394, 0xaf267bae), TOBN(0xaa86cc25, 0xbe2e15ae), + TOBN(0x4f0bf67d, 0x6a8ec500), TOBN(0x5846aa44, 0xf9630658), + TOBN(0xfeb09740, 0xe2c2bf15), TOBN(0x627a2205, 0xa9e99704), + TOBN(0xec8d73d0, 0xc2fbc565), TOBN(0x223eed8f, 0xc20c8de8), + TOBN(0x1ee32583, 0xa8363b49), TOBN(0x1a0b6cb9, 0xc9c2b0a6), + TOBN(0x49f7c3d2, 0x90dbc85c), TOBN(0xa8dfbb97, 0x1ef4c1ac), + TOBN(0xafb34d4c, 0x65c7c2ab), TOBN(0x1d4610e7, 0xe2c5ea84), + TOBN(0x893f6d1b, 0x973c4ab5), TOBN(0xa3cdd7e9, 0x945ba5c4), + TOBN(0x60514983, 0x064417ee), TOBN(0x1459b23c, 0xad6bdf2b), + TOBN(0x23b2c341, 0x5cf726c3), TOBN(0x3a829635, 0x32d6354a), + TOBN(0x294f901f, 0xab192c18), TOBN(0xec5fcbfe, 0x7030164f), + TOBN(0xe2e2fcb7, 0xe2246ba6), TOBN(0x1e7c88b3, 0x221a1a0c), + TOBN(0x72c7dd93, 0xc92d88c5), TOBN(0x41c2148e, 0x1106fb59), + TOBN(0x547dd4f5, 0xa0f60f14), TOBN(0xed9b52b2, 0x63960f31), + TOBN(0x6c8349eb, 0xb0a5b358), TOBN(0xb154c5c2, 0x9e7e2ed6), + TOBN(0xcad5eccf, 0xeda462db), TOBN(0xf2d6dbe4, 0x2de66b69), + TOBN(0x426aedf3, 0x8665e5b2), TOBN(0x488a8513, 0x7b7f5723), + TOBN(0x15cc43b3, 0x8bcbb386), TOBN(0x27ad0af3, 0xd791d879), + TOBN(0xc16c236e, 0x846e364f), TOBN(0x7f33527c, 0xdea50ca0), + TOBN(0xc4810775, 0x0926b86d), TOBN(0x6c2a3609, 0x0598e70c), + TOBN(0xa6755e52, 0xf024e924), TOBN(0xe0fa07a4, 0x9db4afca), + TOBN(0x15c3ce7d, 0x66831790), TOBN(0x5b4ef350, 0xa6cbb0d6), + TOBN(0x2c4aafc4, 0xb6205969), TOBN(0x42563f02, 0xf6c7854f), + TOBN(0x016aced5, 0x1d983b48), TOBN(0xfeb356d8, 0x99949755), + TOBN(0x8c2a2c81, 0xd1a39bd7), TOBN(0x8f44340f, 0xe6934ae9), + TOBN(0x148cf91c, 0x447904da), TOBN(0x7340185f, 0x0f51a926), + TOBN(0x2f8f00fb, 0x7409ab46), TOBN(0x057e78e6, 0x80e289b2), + TOBN(0x03e5022c, 0xa888e5d1), TOBN(0x3c87111a, 0x9dede4e2), + TOBN(0x5b9b0e1c, 0x7809460b), TOBN(0xe751c852, 0x71c9abc7), + TOBN(0x8b944e28, 0xc7cc1dc9), TOBN(0x4f201ffa, 0x1d3cfa08), + TOBN(0x02fc905c, 0x3e6721ce), TOBN(0xd52d70da, 0xd0b3674c), + TOBN(0x5dc2e5ca, 0x18810da4), TOBN(0xa984b273, 0x5c69dd99), + TOBN(0x63b92527, 0x84de5ca4), TOBN(0x2f1c9872, 0xc852dec4), + TOBN(0x18b03593, 0xc2e3de09), TOBN(0x19d70b01, 0x9813dc2f), + TOBN(0x42806b2d, 0xa6dc1d29), TOBN(0xd3030009, 0xf871e144), + TOBN(0xa1feb333, 0xaaf49276), TOBN(0xb5583b9e, 0xc70bc04b), + TOBN(0x1db0be78, 0x95695f20), TOBN(0xfc841811, 0x89d012b5), + TOBN(0x6409f272, 0x05f61643), TOBN(0x40d34174, 0xd5883128), + TOBN(0xd79196f5, 0x67419833), TOBN(0x6059e252, 0x863b7b08), + TOBN(0x84da1817, 0x1c56700c), TOBN(0x5758ee56, 0xb28d3ec4), + TOBN(0x7da2771d, 0x013b0ea6), TOBN(0xfddf524b, 0x54c5e9b9), + TOBN(0x7df4faf8, 0x24305d80), TOBN(0x58f5c1bf, 0x3a97763f), + TOBN(0xa5af37f1, 0x7c696042), TOBN(0xd4cba22c, 0x4a2538de), + TOBN(0x211cb995, 0x9ea42600), TOBN(0xcd105f41, 0x7b069889), + TOBN(0xb1e1cf19, 0xddb81e74), TOBN(0x472f2d89, 0x5157b8ca), + TOBN(0x086fb008, 0xee9db885), TOBN(0x365cd570, 0x0f26d131), + TOBN(0x284b02bb, 0xa2be7053), TOBN(0xdcbbf7c6, 0x7ab9a6d6), + TOBN(0x4425559c, 0x20f7a530), TOBN(0x961f2dfa, 0x188767c8), + TOBN(0xe2fd9435, 0x70dc80c4), TOBN(0x104d6b63, 0xf0784120), + TOBN(0x7f592bc1, 0x53567122), TOBN(0xf6bc1246, 0xf688ad77), + TOBN(0x05214c05, 0x0f15dde9), TOBN(0xa47a76a8, 0x0d5f2b82), + TOBN(0xbb254d30, 0x62e82b62), TOBN(0x11a05fe0, 0x3ec955ee), + TOBN(0x7eaff46e, 0x9d529b36), TOBN(0x55ab1301, 0x8f9e3df6), + TOBN(0xc463e371, 0x99317698), TOBN(0xfd251438, 0xccda47ad), + TOBN(0xca9c3547, 0x23d695ea), TOBN(0x48ce626e, 0x16e589b5), + TOBN(0x6b5b64c7, 0xb187d086), TOBN(0xd02e1794, 0xb2207948), + TOBN(0x8b58e98f, 0x7198111d), TOBN(0x90ca6305, 0xdcf9c3cc), + TOBN(0x5691fe72, 0xf34089b0), TOBN(0x60941af1, 0xfc7c80ff), + TOBN(0xa09bc0a2, 0x22eb51e5), TOBN(0xc0bb7244, 0xaa9cf09a), + TOBN(0x36a8077f, 0x80159f06), TOBN(0x8b5c989e, 0xdddc560e), + TOBN(0x19d2f316, 0x512e1f43), TOBN(0x02eac554, 0xad08ff62), + TOBN(0x012ab84c, 0x07d20b4e), TOBN(0x37d1e115, 0xd6d4e4e1), + TOBN(0xb6443e1a, 0xab7b19a8), TOBN(0xf08d067e, 0xdef8cd45), + TOBN(0x63adf3e9, 0x685e03da), TOBN(0xcf15a10e, 0x4792b916), + TOBN(0xf44bcce5, 0xb738a425), TOBN(0xebe131d5, 0x9636b2fd), + TOBN(0x94068841, 0x7850d605), TOBN(0x09684eaa, 0xb40d749d), + TOBN(0x8c3c669c, 0x72ba075b), TOBN(0x89f78b55, 0xba469015), + TOBN(0x5706aade, 0x3e9f8ba8), TOBN(0x6d8bd565, 0xb32d7ed7), + TOBN(0x25f4e63b, 0x805f08d6), TOBN(0x7f48200d, 0xc3bcc1b5), + TOBN(0x4e801968, 0xb025d847), TOBN(0x74afac04, 0x87cbe0a8), + TOBN(0x43ed2c2b, 0x7e63d690), TOBN(0xefb6bbf0, 0x0223cdb8), + TOBN(0x4fec3cae, 0x2884d3fe), TOBN(0x065ecce6, 0xd75e25a4), + TOBN(0x6c2294ce, 0x69f79071), TOBN(0x0d9a8e5f, 0x044b8666), + TOBN(0x5009f238, 0x17b69d8f), TOBN(0x3c29f8fe, 0xc5dfdaf7), + TOBN(0x9067528f, 0xebae68c4), TOBN(0x5b385632, 0x30c5ba21), + TOBN(0x540df119, 0x1fdd1aec), TOBN(0xcf37825b, 0xcfba4c78), + TOBN(0x77eff980, 0xbeb11454), TOBN(0x40a1a991, 0x60c1b066), + TOBN(0xe8018980, 0xf889a1c7), TOBN(0xb9c52ae9, 0x76c24be0), + TOBN(0x05fbbcce, 0x45650ef4), TOBN(0xae000f10, 0x8aa29ac7), + TOBN(0x884b7172, 0x4f04c470), TOBN(0x7cd4fde2, 0x19bb5c25), + TOBN(0x6477b22a, 0xe8840869), TOBN(0xa8868859, 0x5fbd0686), + TOBN(0xf23cc02e, 0x1116dfba), TOBN(0x76cd563f, 0xd87d7776), + TOBN(0xe2a37598, 0xa9d82abf), TOBN(0x5f188ccb, 0xe6c170f5), + TOBN(0x81682200, 0x5066b087), TOBN(0xda22c212, 0xc7155ada), + TOBN(0x151e5d3a, 0xfbddb479), TOBN(0x4b606b84, 0x6d715b99), + TOBN(0x4a73b54b, 0xf997cb2e), TOBN(0x9a1bfe43, 0x3ecd8b66), + TOBN(0x1c312809, 0x2a67d48a), TOBN(0xcd6a671e, 0x031fa9e2), + TOBN(0xbec3312a, 0x0e43a34a), TOBN(0x1d935639, 0x55ef47d3), + TOBN(0x5ea02489, 0x8fea73ea), TOBN(0x8247b364, 0xa035afb2), + TOBN(0xb58300a6, 0x5265b54c), TOBN(0x3286662f, 0x722c7148), + TOBN(0xb77fd76b, 0xb4ec4c20), TOBN(0xf0a12fa7, 0x0f3fe3fd), + TOBN(0xf845bbf5, 0x41d8c7e8), TOBN(0xe4d969ca, 0x5ec10aa8), + TOBN(0x4c0053b7, 0x43e232a3), TOBN(0xdc7a3fac, 0x37f8a45a), + TOBN(0x3c4261c5, 0x20d81c8f), TOBN(0xfd4b3453, 0xb00eab00), + TOBN(0x76d48f86, 0xd36e3062), TOBN(0x626c5277, 0xa143ff02), + TOBN(0x538174de, 0xaf76f42e), TOBN(0x2267aa86, 0x6407ceac), + TOBN(0xfad76351, 0x72e572d5), TOBN(0xab861af7, 0xba7330eb), + TOBN(0xa0a1c8c7, 0x418d8657), TOBN(0x988821cb, 0x20289a52), + TOBN(0x79732522, 0xcccc18ad), TOBN(0xaadf3f8d, 0xf1a6e027), + TOBN(0xf7382c93, 0x17c2354d), TOBN(0x5ce1680c, 0xd818b689), + TOBN(0x359ebbfc, 0xd9ecbee9), TOBN(0x4330689c, 0x1cae62ac), + TOBN(0xb55ce5b4, 0xc51ac38a), TOBN(0x7921dfea, 0xfe238ee8), + TOBN(0x3972bef8, 0x271d1ca5), TOBN(0x3e423bc7, 0xe8aabd18), + TOBN(0x57b09f3f, 0x44a3e5e3), TOBN(0x5da886ae, 0x7b444d66), + TOBN(0x68206634, 0xa9964375), TOBN(0x356a2fa3, 0x699cd0ff), + TOBN(0xaf0faa24, 0xdba515e9), TOBN(0x536e1f5c, 0xb321d79a), + TOBN(0xd3b9913a, 0x5c04e4ea), TOBN(0xd549dcfe, 0xd6f11513), + TOBN(0xee227bf5, 0x79fd1d94), TOBN(0x9f35afee, 0xb43f2c67), + TOBN(0xd2638d24, 0xf1314f53), TOBN(0x62baf948, 0xcabcd822), + TOBN(0x5542de29, 0x4ef48db0), TOBN(0xb3eb6a04, 0xfc5f6bb2), + TOBN(0x23c110ae, 0x1208e16a), TOBN(0x1a4d15b5, 0xf8363e24), + TOBN(0x30716844, 0x164be00b), TOBN(0xa8e24824, 0xf6f4690d), + TOBN(0x548773a2, 0x90b170cf), TOBN(0xa1bef331, 0x42f191f4), + TOBN(0x70f418d0, 0x9247aa97), TOBN(0xea06028e, 0x48be9147), + TOBN(0xe13122f3, 0xdbfb894e), TOBN(0xbe9b79f6, 0xce274b18), + TOBN(0x85a49de5, 0xca58aadf), TOBN(0x24957758, 0x11487351), + TOBN(0x111def61, 0xbb939099), TOBN(0x1d6a974a, 0x26d13694), + TOBN(0x4474b4ce, 0xd3fc253b), TOBN(0x3a1485e6, 0x4c5db15e), + TOBN(0xe79667b4, 0x147c15b4), TOBN(0xe34f553b, 0x7bc61301), + TOBN(0x032b80f8, 0x17094381), TOBN(0x55d8bafd, 0x723eaa21), + TOBN(0x5a987995, 0xf1c0e74e), TOBN(0x5a9b292e, 0xebba289c), + TOBN(0x413cd4b2, 0xeb4c8251), TOBN(0x98b5d243, 0xd162db0a), + TOBN(0xbb47bf66, 0x68342520), TOBN(0x08d68949, 0xbaa862d1), + TOBN(0x11f349c7, 0xe906abcd), TOBN(0x454ce985, 0xed7bf00e), + TOBN(0xacab5c9e, 0xb55b803b), TOBN(0xb03468ea, 0x31e3c16d), + TOBN(0x5c24213d, 0xd273bf12), TOBN(0x211538eb, 0x71587887), + TOBN(0x198e4a2f, 0x731dea2d), TOBN(0xd5856cf2, 0x74ed7b2a), + TOBN(0x86a632eb, 0x13a664fe), TOBN(0x932cd909, 0xbda41291), + TOBN(0x850e95d4, 0xc0c4ddc0), TOBN(0xc0f422f8, 0x347fc2c9), + TOBN(0xe68cbec4, 0x86076bcb), TOBN(0xf9e7c0c0, 0xcd6cd286), + TOBN(0x65994ddb, 0x0f5f27ca), TOBN(0xe85461fb, 0xa80d59ff), + TOBN(0xff05481a, 0x66601023), TOBN(0xc665427a, 0xfc9ebbfb), + TOBN(0xb0571a69, 0x7587fd52), TOBN(0x935289f8, 0x8d49efce), + TOBN(0x61becc60, 0xea420688), TOBN(0xb22639d9, 0x13a786af), + TOBN(0x1a8e6220, 0x361ecf90), TOBN(0x001f23e0, 0x25506463), + TOBN(0xe4ae9b5d, 0x0a5c2b79), TOBN(0xebc9cdad, 0xd8149db5), + TOBN(0xb33164a1, 0x934aa728), TOBN(0x750eb00e, 0xae9b60f3), + TOBN(0x5a91615b, 0x9b9cfbfd), TOBN(0x97015cbf, 0xef45f7f6), + TOBN(0xb462c4a5, 0xbf5151df), TOBN(0x21adcc41, 0xb07118f2), + TOBN(0xd60c545b, 0x043fa42c), TOBN(0xfc21aa54, 0xe96be1ab), + TOBN(0xe84bc32f, 0x4e51ea80), TOBN(0x3dae45f0, 0x259b5d8d), + TOBN(0xbb73c7eb, 0xc38f1b5e), TOBN(0xe405a74a, 0xe8ae617d), + TOBN(0xbb1ae9c6, 0x9f1c56bd), TOBN(0x8c176b98, 0x49f196a4), + TOBN(0xc448f311, 0x6875092b), TOBN(0xb5afe3de, 0x9f976033), + TOBN(0xa8dafd49, 0x145813e5), TOBN(0x687fc4d9, 0xe2b34226), + TOBN(0xf2dfc92d, 0x4c7ff57f), TOBN(0x004e3fc1, 0x401f1b46), + TOBN(0x5afddab6, 0x1430c9ab), TOBN(0x0bdd41d3, 0x2238e997), + TOBN(0xf0947430, 0x418042ae), TOBN(0x71f9adda, 0xcdddc4cb), + TOBN(0x7090c016, 0xc52dd907), TOBN(0xd9bdf44d, 0x29e2047f), + TOBN(0xe6f1fe80, 0x1b1011a6), TOBN(0xb63accbc, 0xd9acdc78), + TOBN(0xcfc7e235, 0x1272a95b), TOBN(0x0c667717, 0xa6276ac8), + TOBN(0x3c0d3709, 0xe2d7eef7), TOBN(0x5add2b06, 0x9a685b3e), + TOBN(0x363ad32d, 0x14ea5d65), TOBN(0xf8e01f06, 0x8d7dd506), + TOBN(0xc9ea2213, 0x75b4aac6), TOBN(0xed2a2bf9, 0x0d353466), + TOBN(0x439d79b5, 0xe9d3a7c3), TOBN(0x8e0ee5a6, 0x81b7f34b), + TOBN(0xcf3dacf5, 0x1dc4ba75), TOBN(0x1d3d1773, 0xeb3310c7), + TOBN(0xa8e67112, 0x7747ae83), TOBN(0x31f43160, 0x197d6b40), + TOBN(0x0521ccee, 0xcd961400), TOBN(0x67246f11, 0xf6535768), + TOBN(0x702fcc5a, 0xef0c3133), TOBN(0x247cc45d, 0x7e16693b), + TOBN(0xfd484e49, 0xc729b749), TOBN(0x522cef7d, 0xb218320f), + TOBN(0xe56ef405, 0x59ab93b3), TOBN(0x225fba11, 0x9f181071), + TOBN(0x33bd6595, 0x15330ed0), TOBN(0xc4be69d5, 0x1ddb32f7), + TOBN(0x264c7668, 0x0448087c), TOBN(0xac30903f, 0x71432dae), + TOBN(0x3851b266, 0x00f9bf47), TOBN(0x400ed311, 0x6cdd6d03), + TOBN(0x045e79fe, 0xf8fd2424), TOBN(0xfdfd974a, 0xfa6da98b), + TOBN(0x45c9f641, 0x0c1e673a), TOBN(0x76f2e733, 0x5b2c5168), + TOBN(0x1adaebb5, 0x2a601753), TOBN(0xb286514c, 0xc57c2d49), + TOBN(0xd8769670, 0x1e0bfd24), TOBN(0x950c547e, 0x04478922), + TOBN(0xd1d41969, 0xe5d32bfe), TOBN(0x30bc1472, 0x750d6c3e), + TOBN(0x8f3679fe, 0xe0e27f3a), TOBN(0x8f64a7dc, 0xa4a6ee0c), + TOBN(0x2fe59937, 0x633dfb1f), TOBN(0xea82c395, 0x977f2547), + TOBN(0xcbdfdf1a, 0x661ea646), TOBN(0xc7ccc591, 0xb9085451), + TOBN(0x82177962, 0x81761e13), TOBN(0xda57596f, 0x9196885c), + TOBN(0xbc17e849, 0x28ffbd70), TOBN(0x1e6e0a41, 0x2671d36f), + TOBN(0x61ae872c, 0x4152fcf5), TOBN(0x441c87b0, 0x9e77e754), + TOBN(0xd0799dd5, 0xa34dff09), TOBN(0x766b4e44, 0x88a6b171), + TOBN(0xdc06a512, 0x11f1c792), TOBN(0xea02ae93, 0x4be35c3e), + TOBN(0xe5ca4d6d, 0xe90c469e), TOBN(0x4df4368e, 0x56e4ff5c), + TOBN(0x7817acab, 0x4baef62e), TOBN(0x9f5a2202, 0xa85b91e8), + TOBN(0x9666ebe6, 0x6ce57610), TOBN(0x32ad31f3, 0xf73bfe03), + TOBN(0x628330a4, 0x25bcf4d6), TOBN(0xea950593, 0x515056e6), + TOBN(0x59811c89, 0xe1332156), TOBN(0xc89cf1fe, 0x8c11b2d7), + TOBN(0x75b63913, 0x04e60cc0), TOBN(0xce811e8d, 0x4625d375), + TOBN(0x030e43fc, 0x2d26e562), TOBN(0xfbb30b4b, 0x608d36a0), + TOBN(0x634ff82c, 0x48528118), TOBN(0x7c6fe085, 0xcd285911), + TOBN(0x7f2830c0, 0x99358f28), TOBN(0x2e60a95e, 0x665e6c09), + TOBN(0x08407d3d, 0x9b785dbf), TOBN(0x530889ab, 0xa759bce7), + TOBN(0xf228e0e6, 0x52f61239), TOBN(0x2b6d1461, 0x6879be3c), + TOBN(0xe6902c04, 0x51a7bbf7), TOBN(0x30ad99f0, 0x76f24a64), + TOBN(0x66d9317a, 0x98bc6da0), TOBN(0xf4f877f3, 0xcb596ac0), + TOBN(0xb05ff62d, 0x4c44f119), TOBN(0x4555f536, 0xe9b77416), + TOBN(0xc7c0d059, 0x8caed63b), TOBN(0x0cd2b7ce, 0xc358b2a9), + TOBN(0x3f33287b, 0x46945fa3), TOBN(0xf8785b20, 0xd67c8791), + TOBN(0xc54a7a61, 0x9637bd08), TOBN(0x54d4598c, 0x18be79d7), + TOBN(0x889e5acb, 0xc46d7ce1), TOBN(0x9a515bb7, 0x8b085877), + TOBN(0xfac1a03d, 0x0b7a5050), TOBN(0x7d3e738a, 0xf2926035), + TOBN(0x861cc2ce, 0x2a6cb0eb), TOBN(0x6f2e2955, 0x8f7adc79), + TOBN(0x61c4d451, 0x33016376), TOBN(0xd9fd2c80, 0x5ad59090), + TOBN(0xe5a83738, 0xb2b836a1), TOBN(0x855b41a0, 0x7c0d6622), + TOBN(0x186fe317, 0x7cc19af1), TOBN(0x6465c1ff, 0xfdd99acb), + TOBN(0x46e5c23f, 0x6974b99e), TOBN(0x75a7cf8b, 0xa2717cbe), + TOBN(0x4d2ebc3f, 0x062be658), TOBN(0x094b4447, 0x5f209c98), + TOBN(0x4af285ed, 0xb940cb5a), TOBN(0x6706d792, 0x7cc82f10), + TOBN(0xc8c8776c, 0x030526fa), TOBN(0xfa8e6f76, 0xa0da9140), + TOBN(0x77ea9d34, 0x591ee4f0), TOBN(0x5f46e337, 0x40274166), + TOBN(0x1bdf98bb, 0xea671457), TOBN(0xd7c08b46, 0x862a1fe2), + TOBN(0x46cc303c, 0x1c08ad63), TOBN(0x99543440, 0x4c845e7b), + TOBN(0x1b8fbdb5, 0x48f36bf7), TOBN(0x5b82c392, 0x8c8273a7), + TOBN(0x08f712c4, 0x928435d5), TOBN(0x071cf0f1, 0x79330380), + TOBN(0xc74c2d24, 0xa8da054a), TOBN(0xcb0e7201, 0x43c46b5c), + TOBN(0x0ad7337a, 0xc0b7eff3), TOBN(0x8552225e, 0xc5e48b3c), + TOBN(0xe6f78b0c, 0x73f13a5f), TOBN(0x5e70062e, 0x82349cbe), + TOBN(0x6b8d5048, 0xe7073969), TOBN(0x392d2a29, 0xc33cb3d2), + TOBN(0xee4f727c, 0x4ecaa20f), TOBN(0xa068c99e, 0x2ccde707), + TOBN(0xfcd5651f, 0xb87a2913), TOBN(0xea3e3c15, 0x3cc252f0), + TOBN(0x777d92df, 0x3b6cd3e4), TOBN(0x7a414143, 0xc5a732e7), + TOBN(0xa895951a, 0xa71ff493), TOBN(0xfe980c92, 0xbbd37cf6), + TOBN(0x45bd5e64, 0xdecfeeff), TOBN(0x910dc2a9, 0xa44c43e9), + TOBN(0xcb403f26, 0xcca9f54d), TOBN(0x928bbdfb, 0x9303f6db), + TOBN(0x3c37951e, 0xa9eee67c), TOBN(0x3bd61a52, 0xf79961c3), + TOBN(0x09a238e6, 0x395c9a79), TOBN(0x6940ca2d, 0x61eb352d), + TOBN(0x7d1e5c5e, 0xc1875631), TOBN(0x1e19742c, 0x1e1b20d1), + TOBN(0x4633d908, 0x23fc2e6e), TOBN(0xa76e29a9, 0x08959149), + TOBN(0x61069d9c, 0x84ed7da5), TOBN(0x0baa11cf, 0x5dbcad51), + TOBN(0xd01eec64, 0x961849da), TOBN(0x93b75f1f, 0xaf3d8c28), + TOBN(0x57bc4f9f, 0x1ca2ee44), TOBN(0x5a26322d, 0x00e00558), + TOBN(0x1888d658, 0x61a023ef), TOBN(0x1d72aab4, 0xb9e5246e), + TOBN(0xa9a26348, 0xe5563ec0), TOBN(0xa0971963, 0xc3439a43), + TOBN(0x567dd54b, 0xadb9b5b7), TOBN(0x73fac1a1, 0xc45a524b), + TOBN(0x8fe97ef7, 0xfe38e608), TOBN(0x608748d2, 0x3f384f48), + TOBN(0xb0571794, 0xc486094f), TOBN(0x869254a3, 0x8bf3a8d6), + TOBN(0x148a8dd1, 0x310b0e25), TOBN(0x99ab9f3f, 0x9aa3f7d8), + TOBN(0x0927c68a, 0x6706c02e), TOBN(0x22b5e76c, 0x69790e6c), + TOBN(0x6c325260, 0x6c71376c), TOBN(0x53a57690, 0x09ef6657), + TOBN(0x8d63f852, 0xedffcf3a), TOBN(0xb4d2ed04, 0x3c0a6f55), + TOBN(0xdb3aa8de, 0x12519b9e), TOBN(0x5d38e9c4, 0x1e0a569a), + TOBN(0x871528bf, 0x303747e2), TOBN(0xa208e77c, 0xf5b5c18d), + TOBN(0x9d129c88, 0xca6bf923), TOBN(0xbcbf197f, 0xbf02839f), + TOBN(0x9b9bf030, 0x27323194), TOBN(0x3b055a8b, 0x339ca59d), + TOBN(0xb46b2312, 0x0f669520), TOBN(0x19789f1f, 0x497e5f24), + TOBN(0x9c499468, 0xaaf01801), TOBN(0x72ee1190, 0x8b69d59c), + TOBN(0x8bd39595, 0xacf4c079), TOBN(0x3ee11ece, 0x8e0cd048), + TOBN(0xebde86ec, 0x1ed66f18), TOBN(0x225d906b, 0xd61fce43), + TOBN(0x5cab07d6, 0xe8bed74d), TOBN(0x16e4617f, 0x27855ab7), + TOBN(0x6568aadd, 0xb2fbc3dd), TOBN(0xedb5484f, 0x8aeddf5b), + TOBN(0x878f20e8, 0x6dcf2fad), TOBN(0x3516497c, 0x615f5699),} + , + {TOBN(0xef0a3fec, 0xfa181e69), TOBN(0x9ea02f81, 0x30d69a98), + TOBN(0xb2e9cf8e, 0x66eab95d), TOBN(0x520f2beb, 0x24720021), + TOBN(0x621c540a, 0x1df84361), TOBN(0x12037721, 0x71fa6d5d), + TOBN(0x6e3c7b51, 0x0ff5f6ff), TOBN(0x817a069b, 0xabb2bef3), + TOBN(0x83572fb6, 0xb294cda6), TOBN(0x6ce9bf75, 0xb9039f34), + TOBN(0x20e012f0, 0x095cbb21), TOBN(0xa0aecc1b, 0xd063f0da), + TOBN(0x57c21c3a, 0xf02909e5), TOBN(0xc7d59ecf, 0x48ce9cdc), + TOBN(0x2732b844, 0x8ae336f8), TOBN(0x056e3723, 0x3f4f85f4), + TOBN(0x8a10b531, 0x89e800ca), TOBN(0x50fe0c17, 0x145208fd), + TOBN(0x9e43c0d3, 0xb714ba37), TOBN(0x427d200e, 0x34189acc), + TOBN(0x05dee24f, 0xe616e2c0), TOBN(0x9c25f4c8, 0xee1854c1), + TOBN(0x4d3222a5, 0x8f342a73), TOBN(0x0807804f, 0xa027c952), + TOBN(0xc222653a, 0x4f0d56f3), TOBN(0x961e4047, 0xca28b805), + TOBN(0x2c03f8b0, 0x4a73434b), TOBN(0x4c966787, 0xab712a19), + TOBN(0xcc196c42, 0x864fee42), TOBN(0xc1be93da, 0x5b0ece5c), + TOBN(0xa87d9f22, 0xc131c159), TOBN(0x2bb6d593, 0xdce45655), + TOBN(0x22c49ec9, 0xb809b7ce), TOBN(0x8a41486b, 0xe2c72c2c), + TOBN(0x813b9420, 0xfea0bf36), TOBN(0xb3d36ee9, 0xa66dac69), + TOBN(0x6fddc08a, 0x328cc987), TOBN(0x0a3bcd2c, 0x3a326461), + TOBN(0x7103c49d, 0xd810dbba), TOBN(0xf9d81a28, 0x4b78a4c4), + TOBN(0x3de865ad, 0xe4d55941), TOBN(0xdedafa5e, 0x30384087), + TOBN(0x6f414abb, 0x4ef18b9b), TOBN(0x9ee9ea42, 0xfaee5268), + TOBN(0x260faa16, 0x37a55a4a), TOBN(0xeb19a514, 0x015f93b9), + TOBN(0x51d7ebd2, 0x9e9c3598), TOBN(0x523fc56d, 0x1932178e), + TOBN(0x501d070c, 0xb98fe684), TOBN(0xd60fbe9a, 0x124a1458), + TOBN(0xa45761c8, 0x92bc6b3f), TOBN(0xf5384858, 0xfe6f27cb), + TOBN(0x4b0271f7, 0xb59e763b), TOBN(0x3d4606a9, 0x5b5a8e5e), + TOBN(0x1eda5d9b, 0x05a48292), TOBN(0xda7731d0, 0xe6fec446), + TOBN(0xa3e33693, 0x90d45871), TOBN(0xe9764040, 0x06166d8d), + TOBN(0xb5c33682, 0x89a90403), TOBN(0x4bd17983, 0x72f1d637), + TOBN(0xa616679e, 0xd5d2c53a), TOBN(0x5ec4bcd8, 0xfdcf3b87), + TOBN(0xae6d7613, 0xb66a694e), TOBN(0x7460fc76, 0xe3fc27e5), + TOBN(0x70469b82, 0x95caabee), TOBN(0xde024ca5, 0x889501e3), + TOBN(0x6bdadc06, 0x076ed265), TOBN(0x0cb1236b, 0x5a0ef8b2), + TOBN(0x4065ddbf, 0x0972ebf9), TOBN(0xf1dd3875, 0x22aca432), + TOBN(0xa88b97cf, 0x744aff76), TOBN(0xd1359afd, 0xfe8e3d24), + TOBN(0x52a3ba2b, 0x91502cf3), TOBN(0x2c3832a8, 0x084db75d), + TOBN(0x04a12ddd, 0xde30b1c9), TOBN(0x7802eabc, 0xe31fd60c), + TOBN(0x33707327, 0xa37fddab), TOBN(0x65d6f2ab, 0xfaafa973), + TOBN(0x3525c5b8, 0x11e6f91a), TOBN(0x76aeb0c9, 0x5f46530b), + TOBN(0xe8815ff6, 0x2f93a675), TOBN(0xa6ec9684, 0x05f48679), + TOBN(0x6dcbb556, 0x358ae884), TOBN(0x0af61472, 0xe19e3873), + TOBN(0x72334372, 0xa5f696be), TOBN(0xc65e57ea, 0x6f22fb70), + TOBN(0x268da30c, 0x946cea90), TOBN(0x136a8a87, 0x65681b2a), + TOBN(0xad5e81dc, 0x0f9f44d4), TOBN(0xf09a6960, 0x2c46585a), + TOBN(0xd1649164, 0xc447d1b1), TOBN(0x3b4b36c8, 0x879dc8b1), + TOBN(0x20d4177b, 0x3b6b234c), TOBN(0x096a2505, 0x1730d9d0), + TOBN(0x0611b9b8, 0xef80531d), TOBN(0xba904b3b, 0x64bb495d), + TOBN(0x1192d9d4, 0x93a3147a), TOBN(0x9f30a5dc, 0x9a565545), + TOBN(0x90b1f9cb, 0x6ef07212), TOBN(0x29958546, 0x0d87fc13), + TOBN(0xd3323eff, 0xc17db9ba), TOBN(0xcb18548c, 0xcb1644a8), + TOBN(0x18a306d4, 0x4f49ffbc), TOBN(0x28d658f1, 0x4c2e8684), + TOBN(0x44ba60cd, 0xa99f8c71), TOBN(0x67b7abdb, 0x4bf742ff), + TOBN(0x66310f9c, 0x914b3f99), TOBN(0xae430a32, 0xf412c161), + TOBN(0x1e6776d3, 0x88ace52f), TOBN(0x4bc0fa24, 0x52d7067d), + TOBN(0x03c286aa, 0x8f07cd1b), TOBN(0x4cb8f38c, 0xa985b2c1), + TOBN(0x83ccbe80, 0x8c3bff36), TOBN(0x005a0bd2, 0x5263e575), + TOBN(0x460d7dda, 0x259bdcd1), TOBN(0x4a1c5642, 0xfa5cab6b), + TOBN(0x2b7bdbb9, 0x9fe4fc88), TOBN(0x09418e28, 0xcc97bbb5), + TOBN(0xd8274fb4, 0xa12321ae), TOBN(0xb137007d, 0x5c87b64e), + TOBN(0x80531fe1, 0xc63c4962), TOBN(0x50541e89, 0x981fdb25), + TOBN(0xdc1291a1, 0xfd4c2b6b), TOBN(0xc0693a17, 0xa6df4fca), + TOBN(0xb2c4604e, 0x0117f203), TOBN(0x245f1963, 0x0a99b8d0), + TOBN(0xaedc20aa, 0xc6212c44), TOBN(0xb1ed4e56, 0x520f52a8), + TOBN(0xfe48f575, 0xf8547be3), TOBN(0x0a7033cd, 0xa9e45f98), + TOBN(0x4b45d3a9, 0x18c50100), TOBN(0xb2a6cd6a, 0xa61d41da), + TOBN(0x60bbb4f5, 0x57933c6b), TOBN(0xa7538ebd, 0x2b0d7ffc), + TOBN(0x9ea3ab8d, 0x8cd626b6), TOBN(0x8273a484, 0x3601625a), + TOBN(0x88859845, 0x0168e508), TOBN(0x8cbc9bb2, 0x99a94abd), + TOBN(0x713ac792, 0xfab0a671), TOBN(0xa3995b19, 0x6c9ebffc), + TOBN(0xe711668e, 0x1239e152), TOBN(0x56892558, 0xbbb8dff4), + TOBN(0x8bfc7dab, 0xdbf17963), TOBN(0x5b59fe5a, 0xb3de1253), + TOBN(0x7e3320eb, 0x34a9f7ae), TOBN(0xe5e8cf72, 0xd751efe4), + TOBN(0x7ea003bc, 0xd9be2f37), TOBN(0xc0f551a0, 0xb6c08ef7), + TOBN(0x56606268, 0x038f6725), TOBN(0x1dd38e35, 0x6d92d3b6), + TOBN(0x07dfce7c, 0xc3cbd686), TOBN(0x4e549e04, 0x651c5da8), + TOBN(0x4058f93b, 0x08b19340), TOBN(0xc2fae6f4, 0xcac6d89d), + TOBN(0x4bad8a8c, 0x8f159cc7), TOBN(0x0ddba4b3, 0xcb0b601c), + TOBN(0xda4fc7b5, 0x1dd95f8c), TOBN(0x1d163cd7, 0xcea5c255), + TOBN(0x30707d06, 0x274a8c4c), TOBN(0x79d9e008, 0x2802e9ce), + TOBN(0x02a29ebf, 0xe6ddd505), TOBN(0x37064e74, 0xb50bed1a), + TOBN(0x3f6bae65, 0xa7327d57), TOBN(0x3846f5f1, 0xf83920bc), + TOBN(0x87c37491, 0x60df1b9b), TOBN(0x4cfb2895, 0x2d1da29f), + TOBN(0x10a478ca, 0x4ed1743c), TOBN(0x390c6030, 0x3edd47c6), + TOBN(0x8f3e5312, 0x8c0a78de), TOBN(0xccd02bda, 0x1e85df70), + TOBN(0xd6c75c03, 0xa61b6582), TOBN(0x0762921c, 0xfc0eebd1), + TOBN(0xd34d0823, 0xd85010c0), TOBN(0xd73aaacb, 0x0044cf1f), + TOBN(0xfb4159bb, 0xa3b5e78a), TOBN(0x2287c7f7, 0xe5826f3f), + TOBN(0x4aeaf742, 0x580b1a01), TOBN(0xf080415d, 0x60423b79), + TOBN(0xe12622cd, 0xa7dea144), TOBN(0x49ea4996, 0x59d62472), + TOBN(0xb42991ef, 0x571f3913), TOBN(0x0610f214, 0xf5b25a8a), + TOBN(0x47adc585, 0x30b79e8f), TOBN(0xf90e3df6, 0x07a065a2), + TOBN(0x5d0a5deb, 0x43e2e034), TOBN(0x53fb5a34, 0x444024aa), + TOBN(0xa8628c68, 0x6b0c9f7f), TOBN(0x9c69c29c, 0xac563656), + TOBN(0x5a231feb, 0xbace47b6), TOBN(0xbdce0289, 0x9ea5a2ec), + TOBN(0x05da1fac, 0x9463853e), TOBN(0x96812c52, 0x509e78aa), + TOBN(0xd3fb5771, 0x57151692), TOBN(0xeb2721f8, 0xd98e1c44), + TOBN(0xc0506087, 0x32399be1), TOBN(0xda5a5511, 0xd979d8b8), + TOBN(0x737ed55d, 0xc6f56780), TOBN(0xe20d3004, 0x0dc7a7f4), + TOBN(0x02ce7301, 0xf5941a03), TOBN(0x91ef5215, 0xed30f83a), + TOBN(0x28727fc1, 0x4092d85f), TOBN(0x72d223c6, 0x5c49e41a), + TOBN(0xa7cf30a2, 0xba6a4d81), TOBN(0x7c086209, 0xb030d87d), + TOBN(0x04844c7d, 0xfc588b09), TOBN(0x728cd499, 0x5874bbb0), + TOBN(0xcc1281ee, 0xe84c0495), TOBN(0x0769b5ba, 0xec31958f), + TOBN(0x665c228b, 0xf99c2471), TOBN(0xf2d8a11b, 0x191eb110), + TOBN(0x4594f494, 0xd36d7024), TOBN(0x482ded8b, 0xcdcb25a1), + TOBN(0xc958a9d8, 0xdadd4885), TOBN(0x7004477e, 0xf1d2b547), + TOBN(0x0a45f6ef, 0x2a0af550), TOBN(0x4fc739d6, 0x2f8d6351), + TOBN(0x75cdaf27, 0x786f08a9), TOBN(0x8700bb26, 0x42c2737f), + TOBN(0x855a7141, 0x1c4e2670), TOBN(0x810188c1, 0x15076fef), + TOBN(0xc251d0c9, 0xabcd3297), TOBN(0xae4c8967, 0xf48108eb), + TOBN(0xbd146de7, 0x18ceed30), TOBN(0xf9d4f07a, 0xc986bced), + TOBN(0x5ad98ed5, 0x83fa1e08), TOBN(0x7780d33e, 0xbeabd1fb), + TOBN(0xe330513c, 0x903b1196), TOBN(0xba11de9e, 0xa47bc8c4), + TOBN(0x684334da, 0x02c2d064), TOBN(0x7ecf360d, 0xa48de23b), + TOBN(0x57a1b474, 0x0a9089d8), TOBN(0xf28fa439, 0xff36734c), + TOBN(0xf2a482cb, 0xea4570b3), TOBN(0xee65d68b, 0xa5ebcee9), + TOBN(0x988d0036, 0xb9694cd5), TOBN(0x53edd0e9, 0x37885d32), + TOBN(0xe37e3307, 0xbeb9bc6d), TOBN(0xe9abb907, 0x9f5c6768), + TOBN(0x4396ccd5, 0x51f2160f), TOBN(0x2500888c, 0x47336da6), + TOBN(0x383f9ed9, 0x926fce43), TOBN(0x809dd1c7, 0x04da2930), + TOBN(0x30f6f596, 0x8a4cb227), TOBN(0x0d700c7f, 0x73a56b38), + TOBN(0x1825ea33, 0xab64a065), TOBN(0xaab9b735, 0x1338df80), + TOBN(0x1516100d, 0x9b63f57f), TOBN(0x2574395a, 0x27a6a634), + TOBN(0xb5560fb6, 0x700a1acd), TOBN(0xe823fd73, 0xfd999681), + TOBN(0xda915d1f, 0x6cb4e1ba), TOBN(0x0d030118, 0x6ebe00a3), + TOBN(0x744fb0c9, 0x89fca8cd), TOBN(0x970d01db, 0xf9da0e0b), + TOBN(0x0ad8c564, 0x7931d76f), TOBN(0xb15737bf, 0xf659b96a), + TOBN(0xdc9933e8, 0xa8b484e7), TOBN(0xb2fdbdf9, 0x7a26dec7), + TOBN(0x2349e9a4, 0x9f1f0136), TOBN(0x7860368e, 0x70fddddb), + TOBN(0xd93d2c1c, 0xf9ad3e18), TOBN(0x6d6c5f17, 0x689f4e79), + TOBN(0x7a544d91, 0xb24ff1b6), TOBN(0x3e12a5eb, 0xfe16cd8c), + TOBN(0x543574e9, 0xa56b872f), TOBN(0xa1ad550c, 0xfcf68ea2), + TOBN(0x689e37d2, 0x3f560ef7), TOBN(0x8c54b9ca, 0xc9d47a8b), + TOBN(0x46d40a4a, 0x088ac342), TOBN(0xec450c7c, 0x1576c6d0), + TOBN(0xb589e31c, 0x1f9689e9), TOBN(0xdacf2602, 0xb8781718), + TOBN(0xa89237c6, 0xc8cb6b42), TOBN(0x1326fc93, 0xb96ef381), + TOBN(0x55d56c6d, 0xb5f07825), TOBN(0xacba2eea, 0x7449e22d), + TOBN(0x74e0887a, 0x633c3000), TOBN(0xcb6cd172, 0xd7cbcf71), + TOBN(0x309e81de, 0xc36cf1be), TOBN(0x07a18a6d, 0x60ae399b), + TOBN(0xb36c2679, 0x9edce57e), TOBN(0x52b892f4, 0xdf001d41), + TOBN(0xd884ae5d, 0x16a1f2c6), TOBN(0x9b329424, 0xefcc370a), + TOBN(0x3120daf2, 0xbd2e21df), TOBN(0x55298d2d, 0x02470a99), + TOBN(0x0b78af6c, 0xa05db32e), TOBN(0x5c76a331, 0x601f5636), + TOBN(0xaae861ff, 0xf8a4f29c), TOBN(0x70dc9240, 0xd68f8d49), + TOBN(0x960e649f, 0x81b1321c), TOBN(0x3d2c801b, 0x8792e4ce), + TOBN(0xf479f772, 0x42521876), TOBN(0x0bed93bc, 0x416c79b1), + TOBN(0xa67fbc05, 0x263e5bc9), TOBN(0x01e8e630, 0x521db049), + TOBN(0x76f26738, 0xc6f3431e), TOBN(0xe609cb02, 0xe3267541), + TOBN(0xb10cff2d, 0x818c877c), TOBN(0x1f0e75ce, 0x786a13cb), + TOBN(0xf4fdca64, 0x1158544d), TOBN(0x5d777e89, 0x6cb71ed0), + TOBN(0x3c233737, 0xa9aa4755), TOBN(0x7b453192, 0xe527ab40), + TOBN(0xdb59f688, 0x39f05ffe), TOBN(0x8f4f4be0, 0x6d82574e), + TOBN(0xcce3450c, 0xee292d1b), TOBN(0xaa448a12, 0x61ccd086), + TOBN(0xabce91b3, 0xf7914967), TOBN(0x4537f09b, 0x1908a5ed), + TOBN(0xa812421e, 0xf51042e7), TOBN(0xfaf5cebc, 0xec0b3a34), + TOBN(0x730ffd87, 0x4ca6b39a), TOBN(0x70fb72ed, 0x02efd342), + TOBN(0xeb4735f9, 0xd75c8edb), TOBN(0xc11f2157, 0xc278aa51), + TOBN(0xc459f635, 0xbf3bfebf), TOBN(0x3a1ff0b4, 0x6bd9601f), + TOBN(0xc9d12823, 0xc420cb73), TOBN(0x3e9af3e2, 0x3c2915a3), + TOBN(0xe0c82c72, 0xb41c3440), TOBN(0x175239e5, 0xe3039a5f), + TOBN(0xe1084b8a, 0x558795a3), TOBN(0x328d0a1d, 0xd01e5c60), + TOBN(0x0a495f2e, 0xd3788a04), TOBN(0x25d8ff16, 0x66c11a9f), + TOBN(0xf5155f05, 0x9ed692d6), TOBN(0x954fa107, 0x4f425fe4), + TOBN(0xd16aabf2, 0xe98aaa99), TOBN(0x90cd8ba0, 0x96b0f88a), + TOBN(0x957f4782, 0xc154026a), TOBN(0x54ee0734, 0x52af56d2), + TOBN(0xbcf89e54, 0x45b4147a), TOBN(0x3d102f21, 0x9a52816c), + TOBN(0x6808517e, 0x39b62e77), TOBN(0x92e25421, 0x69169ad8), + TOBN(0xd721d871, 0xbb608558), TOBN(0x60e4ebae, 0xf6d4ff9b), + TOBN(0x0ba10819, 0x41f2763e), TOBN(0xca2e45be, 0x51ee3247), + TOBN(0x66d172ec, 0x2bfd7a5f), TOBN(0x528a8f2f, 0x74d0b12d), + TOBN(0xe17f1e38, 0xdabe70dc), TOBN(0x1d5d7316, 0x9f93983c), + TOBN(0x51b2184a, 0xdf423e31), TOBN(0xcb417291, 0xaedb1a10), + TOBN(0x2054ca93, 0x625bcab9), TOBN(0x54396860, 0xa98998f0), + TOBN(0x4e53f6c4, 0xa54ae57e), TOBN(0x0ffeb590, 0xee648e9d), + TOBN(0xfbbdaadc, 0x6afaf6bc), TOBN(0xf88ae796, 0xaa3bfb8a), + TOBN(0x209f1d44, 0xd2359ed9), TOBN(0xac68dd03, 0xf3544ce2), + TOBN(0xf378da47, 0xfd51e569), TOBN(0xe1abd860, 0x2cc80097), + TOBN(0x23ca18d9, 0x343b6e3a), TOBN(0x480797e8, 0xb40a1bae), + TOBN(0xd1f0c717, 0x533f3e67), TOBN(0x44896970, 0x06e6cdfc), + TOBN(0x8ca21055, 0x52a82e8d), TOBN(0xb2caf785, 0x78460cdc), + TOBN(0x4c1b7b62, 0xe9037178), TOBN(0xefc09d2c, 0xdb514b58), + TOBN(0x5f2df9ee, 0x9113be5c), TOBN(0x2fbda78f, 0xb3f9271c), + TOBN(0xe09a81af, 0x8f83fc54), TOBN(0x06b13866, 0x8afb5141), + TOBN(0x38f6480f, 0x43e3865d), TOBN(0x72dd77a8, 0x1ddf47d9), + TOBN(0xf2a8e971, 0x4c205ff7), TOBN(0x46d449d8, 0x9d088ad8), + TOBN(0x926619ea, 0x185d706f), TOBN(0xe47e02eb, 0xc7dd7f62), + TOBN(0xe7f120a7, 0x8cbc2031), TOBN(0xc18bef00, 0x998d4ac9), + TOBN(0x18f37a9c, 0x6bdf22da), TOBN(0xefbc432f, 0x90dc82df), + TOBN(0xc52cef8e, 0x5d703651), TOBN(0x82887ba0, 0xd99881a5), + TOBN(0x7cec9dda, 0xb920ec1d), TOBN(0xd0d7e8c3, 0xec3e8d3b), + TOBN(0x445bc395, 0x4ca88747), TOBN(0xedeaa2e0, 0x9fd53535), + TOBN(0x461b1d93, 0x6cc87475), TOBN(0xd92a52e2, 0x6d2383bd), + TOBN(0xfabccb59, 0xd7903546), TOBN(0x6111a761, 0x3d14b112), + TOBN(0x0ae584fe, 0xb3d5f612), TOBN(0x5ea69b8d, 0x60e828ec), + TOBN(0x6c078985, 0x54087030), TOBN(0x649cab04, 0xac4821fe), + TOBN(0x25ecedcf, 0x8bdce214), TOBN(0xb5622f72, 0x86af7361), + TOBN(0x0e1227aa, 0x7038b9e2), TOBN(0xd0efb273, 0xac20fa77), + TOBN(0x817ff88b, 0x79df975b), TOBN(0x856bf286, 0x1999503e), + TOBN(0xb4d5351f, 0x5038ec46), TOBN(0x740a52c5, 0xfc42af6e), + TOBN(0x2e38bb15, 0x2cbb1a3f), TOBN(0xc3eb99fe, 0x17a83429), + TOBN(0xca4fcbf1, 0xdd66bb74), TOBN(0x880784d6, 0xcde5e8fc), + TOBN(0xddc84c1c, 0xb4e7a0be), TOBN(0x8780510d, 0xbd15a72f), + TOBN(0x44bcf1af, 0x81ec30e1), TOBN(0x141e50a8, 0x0a61073e), + TOBN(0x0d955718, 0x47be87ae), TOBN(0x68a61417, 0xf76a4372), + TOBN(0xf57e7e87, 0xc607c3d3), TOBN(0x043afaf8, 0x5252f332), + TOBN(0xcc14e121, 0x1552a4d2), TOBN(0xb6dee692, 0xbb4d4ab4), + TOBN(0xb6ab74c8, 0xa03816a4), TOBN(0x84001ae4, 0x6f394a29), + TOBN(0x5bed8344, 0xd795fb45), TOBN(0x57326e7d, 0xb79f55a5), + TOBN(0xc9533ce0, 0x4accdffc), TOBN(0x53473caf, 0x3993fa04), + TOBN(0x7906eb93, 0xa13df4c8), TOBN(0xa73e51f6, 0x97cbe46f), + TOBN(0xd1ab3ae1, 0x0ae4ccf8), TOBN(0x25614508, 0x8a5b3dbc), + TOBN(0x61eff962, 0x11a71b27), TOBN(0xdf71412b, 0x6bb7fa39), + TOBN(0xb31ba6b8, 0x2bd7f3ef), TOBN(0xb0b9c415, 0x69180d29), + TOBN(0xeec14552, 0x014cdde5), TOBN(0x702c624b, 0x227b4bbb), + TOBN(0x2b15e8c2, 0xd3e988f3), TOBN(0xee3bcc6d, 0xa4f7fd04), + TOBN(0x9d00822a, 0x42ac6c85), TOBN(0x2db0cea6, 0x1df9f2b7), + TOBN(0xd7cad2ab, 0x42de1e58), TOBN(0x346ed526, 0x2d6fbb61), + TOBN(0xb3962995, 0x1a2faf09), TOBN(0x2fa8a580, 0x7c25612e), + TOBN(0x30ae04da, 0x7cf56490), TOBN(0x75662908, 0x0eea3961), + TOBN(0x3609f5c5, 0x3d080847), TOBN(0xcb081d39, 0x5241d4f6), + TOBN(0xb4fb3810, 0x77961a63), TOBN(0xc20c5984, 0x2abb66fc), + TOBN(0x3d40aa7c, 0xf902f245), TOBN(0x9cb12736, 0x4e536b1e), + TOBN(0x5eda24da, 0x99b3134f), TOBN(0xafbd9c69, 0x5cd011af), + TOBN(0x9a16e30a, 0xc7088c7d), TOBN(0x5ab65710, 0x3207389f), + TOBN(0x1b09547f, 0xe7407a53), TOBN(0x2322f9d7, 0x4fdc6eab), + TOBN(0xc0f2f22d, 0x7430de4d), TOBN(0x19382696, 0xe68ca9a9), + TOBN(0x17f1eff1, 0x918e5868), TOBN(0xe3b5b635, 0x586f4204), + TOBN(0x146ef980, 0x3fbc4341), TOBN(0x359f2c80, 0x5b5eed4e), + TOBN(0x9f35744e, 0x7482e41d), TOBN(0x9a9ac3ec, 0xf3b224c2), + TOBN(0x9161a6fe, 0x91fc50ae), TOBN(0x89ccc66b, 0xc613fa7c), + TOBN(0x89268b14, 0xc732f15a), TOBN(0x7cd6f4e2, 0xb467ed03), + TOBN(0xfbf79869, 0xce56b40e), TOBN(0xf93e094c, 0xc02dde98), + TOBN(0xefe0c3a8, 0xedee2cd7), TOBN(0x90f3ffc0, 0xb268fd42), + TOBN(0x81a7fd56, 0x08241aed), TOBN(0x95ab7ad8, 0x00b1afe8), + TOBN(0x40127056, 0x3e310d52), TOBN(0xd3ffdeb1, 0x09d9fc43), + TOBN(0xc8f85c91, 0xd11a8594), TOBN(0x2e74d258, 0x31cf6db8), + TOBN(0x829c7ca3, 0x02b5dfd0), TOBN(0xe389cfbe, 0x69143c86), + TOBN(0xd01b6405, 0x941768d8), TOBN(0x45103995, 0x03bf825d), + TOBN(0xcc4ee166, 0x56cd17e2), TOBN(0xbea3c283, 0xba037e79), + TOBN(0x4e1ac06e, 0xd9a47520), TOBN(0xfbfe18aa, 0xaf852404), + TOBN(0x5615f8e2, 0x8087648a), TOBN(0x7301e47e, 0xb9d150d9), + TOBN(0x79f9f9dd, 0xb299b977), TOBN(0x76697a7b, 0xa5b78314), + TOBN(0x10d67468, 0x7d7c90e7), TOBN(0x7afffe03, 0x937210b5), + TOBN(0x5aef3e4b, 0x28c22cee), TOBN(0xefb0ecd8, 0x09fd55ae), + TOBN(0x4cea7132, 0x0d2a5d6a), TOBN(0x9cfb5fa1, 0x01db6357), + TOBN(0x395e0b57, 0xf36e1ac5), TOBN(0x008fa9ad, 0x36cafb7d), + TOBN(0x8f6cdf70, 0x5308c4db), TOBN(0x51527a37, 0x95ed2477), + TOBN(0xba0dee30, 0x5bd21311), TOBN(0x6ed41b22, 0x909c90d7), + TOBN(0xc5f6b758, 0x7c8696d3), TOBN(0x0db8eaa8, 0x3ce83a80), + TOBN(0xd297fe37, 0xb24b4b6f), TOBN(0xfe58afe8, 0x522d1f0d), + TOBN(0x97358736, 0x8c98dbd9), TOBN(0x6bc226ca, 0x9454a527), + TOBN(0xa12b384e, 0xce53c2d0), TOBN(0x779d897d, 0x5e4606da), + TOBN(0xa53e47b0, 0x73ec12b0), TOBN(0x462dbbba, 0x5756f1ad), + TOBN(0x69fe09f2, 0xcafe37b6), TOBN(0x273d1ebf, 0xecce2e17), + TOBN(0x8ac1d538, 0x3cf607fd), TOBN(0x8035f7ff, 0x12e10c25),} + , + {TOBN(0x854d34c7, 0x7e6c5520), TOBN(0xc27df9ef, 0xdcb9ea58), + TOBN(0x405f2369, 0xd686666d), TOBN(0x29d1febf, 0x0417aa85), + TOBN(0x9846819e, 0x93470afe), TOBN(0x3e6a9669, 0xe2a27f9e), + TOBN(0x24d008a2, 0xe31e6504), TOBN(0xdba7cecf, 0x9cb7680a), + TOBN(0xecaff541, 0x338d6e43), TOBN(0x56f7dd73, 0x4541d5cc), + TOBN(0xb5d426de, 0x96bc88ca), TOBN(0x48d94f6b, 0x9ed3a2c3), + TOBN(0x6354a3bb, 0x2ef8279c), TOBN(0xd575465b, 0x0b1867f2), + TOBN(0xef99b0ff, 0x95225151), TOBN(0xf3e19d88, 0xf94500d8), + TOBN(0x92a83268, 0xe32dd620), TOBN(0x913ec99f, 0x627849a2), + TOBN(0xedd8fdfa, 0x2c378882), TOBN(0xaf96f33e, 0xee6f8cfe), + TOBN(0xc06737e5, 0xdc3fa8a5), TOBN(0x236bb531, 0xb0b03a1d), + TOBN(0x33e59f29, 0x89f037b0), TOBN(0x13f9b5a7, 0xd9a12a53), + TOBN(0x0d0df6ce, 0x51efb310), TOBN(0xcb5b2eb4, 0x958df5be), + TOBN(0xd6459e29, 0x36158e59), TOBN(0x82aae2b9, 0x1466e336), + TOBN(0xfb658a39, 0x411aa636), TOBN(0x7152ecc5, 0xd4c0a933), + TOBN(0xf10c758a, 0x49f026b7), TOBN(0xf4837f97, 0xcb09311f), + TOBN(0xddfb02c4, 0xc753c45f), TOBN(0x18ca81b6, 0xf9c840fe), + TOBN(0x846fd09a, 0xb0f8a3e6), TOBN(0xb1162add, 0xe7733dbc), + TOBN(0x7070ad20, 0x236e3ab6), TOBN(0xf88cdaf5, 0xb2a56326), + TOBN(0x05fc8719, 0x997cbc7a), TOBN(0x442cd452, 0x4b665272), + TOBN(0x7807f364, 0xb71698f5), TOBN(0x6ba418d2, 0x9f7b605e), + TOBN(0xfd20b00f, 0xa03b2cbb), TOBN(0x883eca37, 0xda54386f), + TOBN(0xff0be43f, 0xf3437f24), TOBN(0xe910b432, 0xa48bb33c), + TOBN(0x4963a128, 0x329df765), TOBN(0xac1dd556, 0xbe2fe6f7), + TOBN(0x557610f9, 0x24a0a3fc), TOBN(0x38e17bf4, 0xe881c3f9), + TOBN(0x6ba84faf, 0xed0dac99), TOBN(0xd4a222c3, 0x59eeb918), + TOBN(0xc79c1dbe, 0x13f542b6), TOBN(0x1fc65e0d, 0xe425d457), + TOBN(0xeffb754f, 0x1debb779), TOBN(0x638d8fd0, 0x9e08af60), + TOBN(0x994f523a, 0x626332d5), TOBN(0x7bc38833, 0x5561bb44), + TOBN(0x005ed4b0, 0x3d845ea2), TOBN(0xd39d3ee1, 0xc2a1f08a), + TOBN(0x6561fdd3, 0xe7676b0d), TOBN(0x620e35ff, 0xfb706017), + TOBN(0x36ce424f, 0xf264f9a8), TOBN(0xc4c3419f, 0xda2681f7), + TOBN(0xfb6afd2f, 0x69beb6e8), TOBN(0x3a50b993, 0x6d700d03), + TOBN(0xc840b2ad, 0x0c83a14f), TOBN(0x573207be, 0x54085bef), + TOBN(0x5af882e3, 0x09fe7e5b), TOBN(0x957678a4, 0x3b40a7e1), + TOBN(0x172d4bdd, 0x543056e2), TOBN(0x9c1b26b4, 0x0df13c0a), + TOBN(0x1c30861c, 0xf405ff06), TOBN(0xebac86bd, 0x486e828b), + TOBN(0xe791a971, 0x636933fc), TOBN(0x50e7c2be, 0x7aeee947), + TOBN(0xc3d4a095, 0xfa90d767), TOBN(0xae60eb7b, 0xe670ab7b), + TOBN(0x17633a64, 0x397b056d), TOBN(0x93a21f33, 0x105012aa), + TOBN(0x663c370b, 0xabb88643), TOBN(0x91df36d7, 0x22e21599), + TOBN(0x183ba835, 0x8b761671), TOBN(0x381eea1d, 0x728f3bf1), + TOBN(0xb9b2f1ba, 0x39966e6c), TOBN(0x7c464a28, 0xe7295492), + TOBN(0x0fd5f70a, 0x09b26b7f), TOBN(0xa9aba1f9, 0xfbe009df), + TOBN(0x857c1f22, 0x369b87ad), TOBN(0x3c00e5d9, 0x32fca556), + TOBN(0x1ad74cab, 0x90b06466), TOBN(0xa7112386, 0x550faaf2), + TOBN(0x7435e198, 0x6d9bd5f5), TOBN(0x2dcc7e38, 0x59c3463f), + TOBN(0xdc7df748, 0xca7bd4b2), TOBN(0x13cd4c08, 0x9dec2f31), + TOBN(0x0d3b5df8, 0xe3237710), TOBN(0x0dadb26e, 0xcbd2f7b0), + TOBN(0x9f5966ab, 0xe4aa082b), TOBN(0x666ec8de, 0x350e966e), + TOBN(0x1bfd1ed5, 0xee524216), TOBN(0xcd93c59b, 0x41dab0b6), + TOBN(0x658a8435, 0xd186d6ba), TOBN(0x1b7d34d2, 0x159d1195), + TOBN(0x5936e460, 0x22caf46b), TOBN(0x6a45dd8f, 0x9a96fe4f), + TOBN(0xf7925434, 0xb98f474e), TOBN(0x41410412, 0x0053ef15), + TOBN(0x71cf8d12, 0x41de97bf), TOBN(0xb8547b61, 0xbd80bef4), + TOBN(0xb47d3970, 0xc4db0037), TOBN(0xf1bcd328, 0xfef20dff), + TOBN(0x31a92e09, 0x10caad67), TOBN(0x1f591960, 0x5531a1e1), + TOBN(0x3bb852e0, 0x5f4fc840), TOBN(0x63e297ca, 0x93a72c6c), + TOBN(0x3c2b0b2e, 0x49abad67), TOBN(0x6ec405fc, 0xed3db0d9), + TOBN(0xdc14a530, 0x7fef1d40), TOBN(0xccd19846, 0x280896fc), + TOBN(0x00f83176, 0x9bb81648), TOBN(0xd69eb485, 0x653120d0), + TOBN(0xd17d75f4, 0x4ccabc62), TOBN(0x34a07f82, 0xb749fcb1), + TOBN(0x2c3af787, 0xbbfb5554), TOBN(0xb06ed4d0, 0x62e283f8), + TOBN(0x5722889f, 0xa19213a0), TOBN(0x162b085e, 0xdcf3c7b4), + TOBN(0xbcaecb31, 0xe0dd3eca), TOBN(0xc6237fbc, 0xe52f13a5), + TOBN(0xcc2b6b03, 0x27bac297), TOBN(0x2ae1cac5, 0xb917f54a), + TOBN(0x474807d4, 0x7845ae4f), TOBN(0xfec7dd92, 0xce5972e0), + TOBN(0xc3bd2541, 0x1d7915bb), TOBN(0x66f85dc4, 0xd94907ca), + TOBN(0xd981b888, 0xbdbcf0ca), TOBN(0xd75f5da6, 0xdf279e9f), + TOBN(0x128bbf24, 0x7054e934), TOBN(0x3c6ff6e5, 0x81db134b), + TOBN(0x795b7cf4, 0x047d26e4), TOBN(0xf370f7b8, 0x5049ec37), + TOBN(0xc6712d4d, 0xced945af), TOBN(0xdf30b5ec, 0x095642bc), + TOBN(0x9b034c62, 0x4896246e), TOBN(0x5652c016, 0xee90bbd1), + TOBN(0xeb38636f, 0x87fedb73), TOBN(0x5e32f847, 0x0135a613), + TOBN(0x0703b312, 0xcf933c83), TOBN(0xd05bb76e, 0x1a7f47e6), + TOBN(0x825e4f0c, 0x949c2415), TOBN(0x569e5622, 0x7250d6f8), + TOBN(0xbbe9eb3a, 0x6568013e), TOBN(0x8dbd203f, 0x22f243fc), + TOBN(0x9dbd7694, 0xb342734a), TOBN(0x8f6d12f8, 0x46afa984), + TOBN(0xb98610a2, 0xc9eade29), TOBN(0xbab4f323, 0x47dd0f18), + TOBN(0x5779737b, 0x671c0d46), TOBN(0x10b6a7c6, 0xd3e0a42a), + TOBN(0xfb19ddf3, 0x3035b41c), TOBN(0xd336343f, 0x99c45895), + TOBN(0x61fe4938, 0x54c857e5), TOBN(0xc4d506be, 0xae4e57d5), + TOBN(0x3cd8c8cb, 0xbbc33f75), TOBN(0x7281f08a, 0x9262c77d), + TOBN(0x083f4ea6, 0xf11a2823), TOBN(0x8895041e, 0x9fba2e33), + TOBN(0xfcdfea49, 0x9c438edf), TOBN(0x7678dcc3, 0x91edba44), + TOBN(0xf07b3b87, 0xe2ba50f0), TOBN(0xc13888ef, 0x43948c1b), + TOBN(0xc2135ad4, 0x1140af42), TOBN(0x8e5104f3, 0x926ed1a7), + TOBN(0xf24430cb, 0x88f6695f), TOBN(0x0ce0637b, 0x6d73c120), + TOBN(0xb2db01e6, 0xfe631e8f), TOBN(0x1c5563d7, 0xd7bdd24b), + TOBN(0x8daea3ba, 0x369ad44f), TOBN(0x000c81b6, 0x8187a9f9), + TOBN(0x5f48a951, 0xaae1fd9a), TOBN(0xe35626c7, 0x8d5aed8a), + TOBN(0x20952763, 0x0498c622), TOBN(0x76d17634, 0x773aa504), + TOBN(0x36d90dda, 0xeb300f7a), TOBN(0x9dcf7dfc, 0xedb5e801), + TOBN(0x645cb268, 0x74d5244c), TOBN(0xa127ee79, 0x348e3aa2), + TOBN(0x488acc53, 0x575f1dbb), TOBN(0x95037e85, 0x80e6161e), + TOBN(0x57e59283, 0x292650d0), TOBN(0xabe67d99, 0x14938216), + TOBN(0x3c7f944b, 0x3f8e1065), TOBN(0xed908cb6, 0x330e8924), + TOBN(0x08ee8fd5, 0x6f530136), TOBN(0x2227b7d5, 0xd7ffc169), + TOBN(0x4f55c893, 0xb5cd6dd5), TOBN(0x82225e11, 0xa62796e8), + TOBN(0x5c6cead1, 0xcb18e12c), TOBN(0x4381ae0c, 0x84f5a51a), + TOBN(0x345913d3, 0x7fafa4c8), TOBN(0x3d918082, 0x0491aac0), + TOBN(0x9347871f, 0x3e69264c), TOBN(0xbea9dd3c, 0xb4f4f0cd), + TOBN(0xbda5d067, 0x3eadd3e7), TOBN(0x0033c1b8, 0x0573bcd8), + TOBN(0x25589379, 0x5da2486c), TOBN(0xcb89ee5b, 0x86abbee7), + TOBN(0x8fe0a8f3, 0x22532e5d), TOBN(0xb6410ff0, 0x727dfc4c), + TOBN(0x619b9d58, 0x226726db), TOBN(0x5ec25669, 0x7a2b2dc7), + TOBN(0xaf4d2e06, 0x4c3beb01), TOBN(0x852123d0, 0x7acea556), + TOBN(0x0e9470fa, 0xf783487a), TOBN(0x75a7ea04, 0x5664b3eb), + TOBN(0x4ad78f35, 0x6798e4ba), TOBN(0x9214e6e5, 0xc7d0e091), + TOBN(0xc420b488, 0xb1290403), TOBN(0x64049e0a, 0xfc295749), + TOBN(0x03ef5af1, 0x3ae9841f), TOBN(0xdbe4ca19, 0xb0b662a6), + TOBN(0x46845c5f, 0xfa453458), TOBN(0xf8dabf19, 0x10b66722), + TOBN(0xb650f0aa, 0xcce2793b), TOBN(0x71db851e, 0xc5ec47c1), + TOBN(0x3eb78f3e, 0x3b234fa9), TOBN(0xb0c60f35, 0xfc0106ce), + TOBN(0x05427121, 0x774eadbd), TOBN(0x25367faf, 0xce323863), + TOBN(0x7541b5c9, 0xcd086976), TOBN(0x4ff069e2, 0xdc507ad1), + TOBN(0x74145256, 0x8776e667), TOBN(0x6e76142c, 0xb23c6bb5), + TOBN(0xdbf30712, 0x1b3a8a87), TOBN(0x60e7363e, 0x98450836), + TOBN(0x5741450e, 0xb7366d80), TOBN(0xe4ee14ca, 0x4837dbdf), + TOBN(0xa765eb9b, 0x69d4316f), TOBN(0x04548dca, 0x8ef43825), + TOBN(0x9c9f4e4c, 0x5ae888eb), TOBN(0x733abb51, 0x56e9ac99), + TOBN(0xdaad3c20, 0xba6ac029), TOBN(0x9b8dd3d3, 0x2ba3e38e), + TOBN(0xa9bb4c92, 0x0bc5d11a), TOBN(0xf20127a7, 0x9c5f88a3), + TOBN(0x4f52b06e, 0x161d3cb8), TOBN(0x26c1ff09, 0x6afaf0a6), + TOBN(0x32670d2f, 0x7189e71f), TOBN(0xc6438748, 0x5ecf91e7), + TOBN(0x15758e57, 0xdb757a21), TOBN(0x427d09f8, 0x290a9ce5), + TOBN(0x846a308f, 0x38384a7a), TOBN(0xaac3acb4, 0xb0732b99), + TOBN(0x9e941009, 0x17845819), TOBN(0x95cba111, 0xa7ce5e03), + TOBN(0x6f3d4f7f, 0xb00009c4), TOBN(0xb8396c27, 0x8ff28b5f), + TOBN(0xb1a9ae43, 0x1c97975d), TOBN(0x9d7ba8af, 0xe5d9fed5), + TOBN(0x338cf09f, 0x34f485b6), TOBN(0xbc0ddacc, 0x64122516), + TOBN(0xa450da12, 0x05d471fe), TOBN(0x4c3a6250, 0x628dd8c9), + TOBN(0x69c7d103, 0xd1295837), TOBN(0xa2893e50, 0x3807eb2f), + TOBN(0xd6e1e1de, 0xbdb41491), TOBN(0xc630745b, 0x5e138235), + TOBN(0xc892109e, 0x48661ae1), TOBN(0x8d17e7eb, 0xea2b2674), + TOBN(0x00ec0f87, 0xc328d6b5), TOBN(0x6d858645, 0xf079ff9e), + TOBN(0x6cdf243e, 0x19115ead), TOBN(0x1ce1393e, 0x4bac4fcf), + TOBN(0x2c960ed0, 0x9c29f25b), TOBN(0x59be4d8e, 0x9d388a05), + TOBN(0x0d46e06c, 0xd0def72b), TOBN(0xb923db5d, 0xe0342748), + TOBN(0xf7d3aacd, 0x936d4a3d), TOBN(0x558519cc, 0x0b0b099e), + TOBN(0x3ea8ebf8, 0x827097ef), TOBN(0x259353db, 0xd054f55d), + TOBN(0x84c89abc, 0x6d2ed089), TOBN(0x5c548b69, 0x8e096a7c), + TOBN(0xd587f616, 0x994b995d), TOBN(0x4d1531f6, 0xa5845601), + TOBN(0x792ab31e, 0x451fd9f0), TOBN(0xc8b57bb2, 0x65adf6ca), + TOBN(0x68440fcb, 0x1cd5ad73), TOBN(0xb9c860e6, 0x6144da4f), + TOBN(0x2ab286aa, 0x8462beb8), TOBN(0xcc6b8fff, 0xef46797f), + TOBN(0xac820da4, 0x20c8a471), TOBN(0x69ae05a1, 0x77ff7faf), + TOBN(0xb9163f39, 0xbfb5da77), TOBN(0xbd03e590, 0x2c73ab7a), + TOBN(0x7e862b5e, 0xb2940d9e), TOBN(0x3c663d86, 0x4b9af564), + TOBN(0xd8309031, 0xbde3033d), TOBN(0x298231b2, 0xd42c5bc6), + TOBN(0x42090d2c, 0x552ad093), TOBN(0xa4799d1c, 0xff854695), + TOBN(0x0a88b5d6, 0xd31f0d00), TOBN(0xf8b40825, 0xa2f26b46), + TOBN(0xec29b1ed, 0xf1bd7218), TOBN(0xd491c53b, 0x4b24c86e), + TOBN(0xd2fe588f, 0x3395ea65), TOBN(0x6f3764f7, 0x4456ef15), + TOBN(0xdb43116d, 0xcdc34800), TOBN(0xcdbcd456, 0xc1e33955), + TOBN(0xefdb5540, 0x74ab286b), TOBN(0x948c7a51, 0xd18c5d7c), + TOBN(0xeb81aa37, 0x7378058e), TOBN(0x41c746a1, 0x04411154), + TOBN(0xa10c73bc, 0xfb828ac7), TOBN(0x6439be91, 0x9d972b29), + TOBN(0x4bf3b4b0, 0x43a2fbad), TOBN(0x39e6dadf, 0x82b5e840), + TOBN(0x4f716408, 0x6397bd4c), TOBN(0x0f7de568, 0x7f1eeccb), + TOBN(0x5865c5a1, 0xd2ffbfc1), TOBN(0xf74211fa, 0x4ccb6451), + TOBN(0x66368a88, 0xc0b32558), TOBN(0x5b539dc2, 0x9ad7812e), + TOBN(0x579483d0, 0x2f3af6f6), TOBN(0x52132078, 0x99934ece), + TOBN(0x50b9650f, 0xdcc9e983), TOBN(0xca989ec9, 0xaee42b8a), + TOBN(0x6a44c829, 0xd6f62f99), TOBN(0x8f06a309, 0x4c2a7c0c), + TOBN(0x4ea2b3a0, 0x98a0cb0a), TOBN(0x5c547b70, 0xbeee8364), + TOBN(0x461d40e1, 0x682afe11), TOBN(0x9e0fc77a, 0x7b41c0a8), + TOBN(0x79e4aefd, 0xe20d5d36), TOBN(0x2916e520, 0x32dd9f63), + TOBN(0xf59e52e8, 0x3f883faf), TOBN(0x396f9639, 0x2b868d35), + TOBN(0xc902a9df, 0x4ca19881), TOBN(0x0fc96822, 0xdb2401a6), + TOBN(0x41237587, 0x66f1c68d), TOBN(0x10fc6de3, 0xfb476c0d), + TOBN(0xf8b6b579, 0x841f5d90), TOBN(0x2ba8446c, 0xfa24f44a), + TOBN(0xa237b920, 0xef4a9975), TOBN(0x60bb6004, 0x2330435f), + TOBN(0xd6f4ab5a, 0xcfb7e7b5), TOBN(0xb2ac5097, 0x83435391), + TOBN(0xf036ee2f, 0xb0d1ea67), TOBN(0xae779a6a, 0x74c56230), + TOBN(0x59bff8c8, 0xab838ae6), TOBN(0xcd83ca99, 0x9b38e6f0), + TOBN(0xbb27bef5, 0xe33deed3), TOBN(0xe6356f6f, 0x001892a8), + TOBN(0xbf3be6cc, 0x7adfbd3e), TOBN(0xaecbc81c, 0x33d1ac9d), + TOBN(0xe4feb909, 0xe6e861dc), TOBN(0x90a247a4, 0x53f5f801), + TOBN(0x01c50acb, 0x27346e57), TOBN(0xce29242e, 0x461acc1b), + TOBN(0x04dd214a, 0x2f998a91), TOBN(0x271ee9b1, 0xd4baf27b), + TOBN(0x7e3027d1, 0xe8c26722), TOBN(0x21d1645c, 0x1820dce5), + TOBN(0x086f242c, 0x7501779c), TOBN(0xf0061407, 0xfa0e8009), + TOBN(0xf23ce477, 0x60187129), TOBN(0x05bbdedb, 0x0fde9bd0), + TOBN(0x682f4832, 0x25d98473), TOBN(0xf207fe85, 0x5c658427), + TOBN(0xb6fdd7ba, 0x4166ffa1), TOBN(0x0c314056, 0x9eed799d), + TOBN(0x0db8048f, 0x4107e28f), TOBN(0x74ed3871, 0x41216840), + TOBN(0x74489f8f, 0x56a3c06e), TOBN(0x1e1c005b, 0x12777134), + TOBN(0xdb332a73, 0xf37ec3c3), TOBN(0xc65259bd, 0xdd59eba0), + TOBN(0x2291709c, 0xdb4d3257), TOBN(0x9a793b25, 0xbd389390), + TOBN(0xf39fe34b, 0xe43756f0), TOBN(0x2f76bdce, 0x9afb56c9), + TOBN(0x9f37867a, 0x61208b27), TOBN(0xea1d4307, 0x089972c3), + TOBN(0x8c595330, 0x8bdf623a), TOBN(0x5f5accda, 0x8441fb7d), + TOBN(0xfafa9418, 0x32ddfd95), TOBN(0x6ad40c5a, 0x0fde9be7), + TOBN(0x43faba89, 0xaeca8709), TOBN(0xc64a7cf1, 0x2c248a9d), + TOBN(0x16620252, 0x72637a76), TOBN(0xaee1c791, 0x22b8d1bb), + TOBN(0xf0f798fd, 0x21a843b2), TOBN(0x56e4ed4d, 0x8d005cb1), + TOBN(0x355f7780, 0x1f0d8abe), TOBN(0x197b04cf, 0x34522326), + TOBN(0x41f9b31f, 0xfd42c13f), TOBN(0x5ef7feb2, 0xb40f933d), + TOBN(0x27326f42, 0x5d60bad4), TOBN(0x027ecdb2, 0x8c92cf89), + TOBN(0x04aae4d1, 0x4e3352fe), TOBN(0x08414d2f, 0x73591b90), + TOBN(0x5ed6124e, 0xb7da7d60), TOBN(0xb985b931, 0x4d13d4ec), + TOBN(0xa592d3ab, 0x96bf36f9), TOBN(0x012dbed5, 0xbbdf51df), + TOBN(0xa57963c0, 0xdf6c177d), TOBN(0x010ec869, 0x87ca29cf), + TOBN(0xba1700f6, 0xbf926dff), TOBN(0x7c9fdbd1, 0xf4bf6bc2), + TOBN(0xdc18dc8f, 0x64da11f5), TOBN(0xa6074b7a, 0xd938ae75), + TOBN(0x14270066, 0xe84f44a4), TOBN(0x99998d38, 0xd27b954e), + TOBN(0xc1be8ab2, 0xb4f38e9a), TOBN(0x8bb55bbf, 0x15c01016), + TOBN(0xf73472b4, 0x0ea2ab30), TOBN(0xd365a340, 0xf73d68dd), + TOBN(0xc01a7168, 0x19c2e1eb), TOBN(0x32f49e37, 0x34061719), + TOBN(0xb73c57f1, 0x01d8b4d6), TOBN(0x03c8423c, 0x26b47700), + TOBN(0x321d0bc8, 0xa4d8826a), TOBN(0x6004213c, 0x4bc0e638), + TOBN(0xf78c64a1, 0xc1c06681), TOBN(0x16e0a16f, 0xef018e50), + TOBN(0x31cbdf91, 0xdb42b2b3), TOBN(0xf8f4ffce, 0xe0d36f58), + TOBN(0xcdcc71cd, 0x4cc5e3e0), TOBN(0xd55c7cfa, 0xa129e3e0), + TOBN(0xccdb6ba0, 0x0fb2cbf1), TOBN(0x6aba0005, 0xc4bce3cb), + TOBN(0x501cdb30, 0xd232cfc4), TOBN(0x9ddcf12e, 0xd58a3cef), + TOBN(0x02d2cf9c, 0x87e09149), TOBN(0xdc5d7ec7, 0x2c976257), + TOBN(0x6447986e, 0x0b50d7dd), TOBN(0x88fdbaf7, 0x807f112a), + TOBN(0x58c9822a, 0xb00ae9f6), TOBN(0x6abfb950, 0x6d3d27e0), + TOBN(0xd0a74487, 0x8a429f4f), TOBN(0x0649712b, 0xdb516609), + TOBN(0xb826ba57, 0xe769b5df), TOBN(0x82335df2, 0x1fc7aaf2), + TOBN(0x2389f067, 0x5c93d995), TOBN(0x59ac367a, 0x68677be6), + TOBN(0xa77985ff, 0x21d9951b), TOBN(0x038956fb, 0x85011cce), + TOBN(0x608e48cb, 0xbb734e37), TOBN(0xc08c0bf2, 0x2be5b26f), + TOBN(0x17bbdd3b, 0xf9b1a0d9), TOBN(0xeac7d898, 0x10483319), + TOBN(0xc95c4baf, 0xbc1a6dea), TOBN(0xfdd0e2bf, 0x172aafdb), + TOBN(0x40373cbc, 0x8235c41a), TOBN(0x14303f21, 0xfb6f41d5), + TOBN(0xba063621, 0x0408f237), TOBN(0xcad3b09a, 0xecd2d1ed), + TOBN(0x4667855a, 0x52abb6a2), TOBN(0xba9157dc, 0xaa8b417b), + TOBN(0xfe7f3507, 0x4f013efb), TOBN(0x1b112c4b, 0xaa38c4a2), + TOBN(0xa1406a60, 0x9ba64345), TOBN(0xe53cba33, 0x6993c80b), + TOBN(0x45466063, 0xded40d23), TOBN(0x3d5f1f4d, 0x54908e25), + TOBN(0x9ebefe62, 0x403c3c31), TOBN(0x274ea0b5, 0x0672a624), + TOBN(0xff818d99, 0x451d1b71), TOBN(0x80e82643, 0x8f79cf79), + TOBN(0xa165df13, 0x73ce37f5), TOBN(0xa744ef4f, 0xfe3a21fd), + TOBN(0x73f1e7f5, 0xcf551396), TOBN(0xc616898e, 0x868c676b), + TOBN(0x671c28c7, 0x8c442c36), TOBN(0xcfe5e558, 0x5e0a317d), + TOBN(0x1242d818, 0x7051f476), TOBN(0x56fad2a6, 0x14f03442), + TOBN(0x262068bc, 0x0a44d0f6), TOBN(0xdfa2cd6e, 0xce6edf4e), + TOBN(0x0f43813a, 0xd15d1517), TOBN(0x61214cb2, 0x377d44f5), + TOBN(0xd399aa29, 0xc639b35f), TOBN(0x42136d71, 0x54c51c19), + TOBN(0x9774711b, 0x08417221), TOBN(0x0a5546b3, 0x52545a57), + TOBN(0x80624c41, 0x1150582d), TOBN(0x9ec5c418, 0xfbc555bc), + TOBN(0x2c87dcad, 0x771849f1), TOBN(0xb0c932c5, 0x01d7bf6f), + TOBN(0x6aa5cd3e, 0x89116eb2), TOBN(0xd378c25a, 0x51ca7bd3), + TOBN(0xc612a0da, 0x9e6e3e31), TOBN(0x0417a54d, 0xb68ad5d0), + TOBN(0x00451e4a, 0x22c6edb8), TOBN(0x9fbfe019, 0xb42827ce), + TOBN(0x2fa92505, 0xba9384a2), TOBN(0x21b8596e, 0x64ad69c1), + TOBN(0x8f4fcc49, 0x983b35a6), TOBN(0xde093760, 0x72754672), + TOBN(0x2f14ccc8, 0xf7bffe6d), TOBN(0x27566bff, 0x5d94263d), + TOBN(0xb5b4e9c6, 0x2df3ec30), TOBN(0x94f1d7d5, 0x3e6ea6ba), + TOBN(0x97b7851a, 0xaaca5e9b), TOBN(0x518aa521, 0x56713b97), + TOBN(0x3357e8c7, 0x150a61f6), TOBN(0x7842e7e2, 0xec2c2b69), + TOBN(0x8dffaf65, 0x6868a548), TOBN(0xd963bd82, 0xe068fc81), + TOBN(0x64da5c8b, 0x65917733), TOBN(0x927090ff, 0x7b247328),} + , + {TOBN(0x214bc9a7, 0xd298c241), TOBN(0xe3b697ba, 0x56807cfd), + TOBN(0xef1c7802, 0x4564eadb), TOBN(0xdde8cdcf, 0xb48149c5), + TOBN(0x946bf0a7, 0x5a4d2604), TOBN(0x27154d7f, 0x6c1538af), + TOBN(0x95cc9230, 0xde5b1fcc), TOBN(0xd88519e9, 0x66864f82), + TOBN(0xb828dd1a, 0x7cb1282c), TOBN(0xa08d7626, 0xbe46973a), + TOBN(0x6baf8d40, 0xe708d6b2), TOBN(0x72571fa1, 0x4daeb3f3), + TOBN(0x85b1732f, 0xf22dfd98), TOBN(0x87ab01a7, 0x0087108d), + TOBN(0xaaaafea8, 0x5988207a), TOBN(0xccc832f8, 0x69f00755), + TOBN(0x964d950e, 0x36ff3bf0), TOBN(0x8ad20f6f, 0xf0b34638), + TOBN(0x4d9177b3, 0xb5d7585f), TOBN(0xcf839760, 0xef3f019f), + TOBN(0x582fc5b3, 0x8288c545), TOBN(0x2f8e4e9b, 0x13116bd1), + TOBN(0xf91e1b2f, 0x332120ef), TOBN(0xcf568724, 0x2a17dd23), + TOBN(0x488f1185, 0xca8d9d1a), TOBN(0xadf2c77d, 0xd987ded2), + TOBN(0x5f3039f0, 0x60c46124), TOBN(0xe5d70b75, 0x71e095f4), + TOBN(0x82d58650, 0x6260e70f), TOBN(0x39d75ea7, 0xf750d105), + TOBN(0x8cf3d0b1, 0x75bac364), TOBN(0xf3a7564d, 0x21d01329), + TOBN(0x182f04cd, 0x2f52d2a7), TOBN(0x4fde149a, 0xe2df565a), + TOBN(0xb80c5eec, 0xa79fb2f7), TOBN(0xab491d7b, 0x22ddc897), + TOBN(0x99d76c18, 0xc6312c7f), TOBN(0xca0d5f3d, 0x6aa41a57), + TOBN(0x71207325, 0xd15363a0), TOBN(0xe82aa265, 0xbeb252c2), + TOBN(0x94ab4700, 0xec3128c2), TOBN(0x6c76d862, 0x8e383f49), + TOBN(0xdc36b150, 0xc03024eb), TOBN(0xfb439477, 0x53daac69), + TOBN(0xfc68764a, 0x8dc79623), TOBN(0x5b86995d, 0xb440fbb2), + TOBN(0xd66879bf, 0xccc5ee0d), TOBN(0x05228942, 0x95aa8bd3), + TOBN(0xb51a40a5, 0x1e6a75c1), TOBN(0x24327c76, 0x0ea7d817), + TOBN(0x06630182, 0x07774597), TOBN(0xd6fdbec3, 0x97fa7164), + TOBN(0x20c99dfb, 0x13c90f48), TOBN(0xd6ac5273, 0x686ef263), + TOBN(0xc6a50bdc, 0xfef64eeb), TOBN(0xcd87b281, 0x86fdfc32), + TOBN(0xb24aa43e, 0x3fcd3efc), TOBN(0xdd26c034, 0xb8088e9a), + TOBN(0xa5ef4dc9, 0xbd3d46ea), TOBN(0xa2f99d58, 0x8a4c6a6f), + TOBN(0xddabd355, 0x2f1da46c), TOBN(0x72c3f8ce, 0x1afacdd1), + TOBN(0xd90c4eee, 0x92d40578), TOBN(0xd28bb41f, 0xca623b94), + TOBN(0x50fc0711, 0x745edc11), TOBN(0x9dd9ad7d, 0x3dc87558), + TOBN(0xce6931fb, 0xb49d1e64), TOBN(0x6c77a0a2, 0xc98bd0f9), + TOBN(0x62b9a629, 0x6baf7cb1), TOBN(0xcf065f91, 0xccf72d22), + TOBN(0x7203cce9, 0x79639071), TOBN(0x09ae4885, 0xf9cb732f), + TOBN(0x5e7c3bec, 0xee8314f3), TOBN(0x1c068aed, 0xdbea298f), + TOBN(0x08d381f1, 0x7c80acec), TOBN(0x03b56be8, 0xe330495b), + TOBN(0xaeffb8f2, 0x9222882d), TOBN(0x95ff38f6, 0xc4af8bf7), + TOBN(0x50e32d35, 0x1fc57d8c), TOBN(0x6635be52, 0x17b444f0), + TOBN(0x04d15276, 0xa5177900), TOBN(0x4e1dbb47, 0xf6858752), + TOBN(0x5b475622, 0xc615796c), TOBN(0xa6fa0387, 0x691867bf), + TOBN(0xed7f5d56, 0x2844c6d0), TOBN(0xc633cf9b, 0x03a2477d), + TOBN(0xf6be5c40, 0x2d3721d6), TOBN(0xaf312eb7, 0xe9fd68e6), + TOBN(0x242792d2, 0xe7417ce1), TOBN(0xff42bc71, 0x970ee7f5), + TOBN(0x1ff4dc6d, 0x5c67a41e), TOBN(0x77709b7b, 0x20882a58), + TOBN(0x3554731d, 0xbe217f2c), TOBN(0x2af2a8cd, 0x5bb72177), + TOBN(0x58eee769, 0x591dd059), TOBN(0xbb2930c9, 0x4bba6477), + TOBN(0x863ee047, 0x7d930cfc), TOBN(0x4c262ad1, 0x396fd1f4), + TOBN(0xf4765bc8, 0x039af7e1), TOBN(0x2519834b, 0x5ba104f6), + TOBN(0x7cd61b4c, 0xd105f961), TOBN(0xa5415da5, 0xd63bca54), + TOBN(0x778280a0, 0x88a1f17c), TOBN(0xc4968949, 0x2329512c), + TOBN(0x174a9126, 0xcecdaa7a), TOBN(0xfc8c7e0e, 0x0b13247b), + TOBN(0x29c110d2, 0x3484c1c4), TOBN(0xf8eb8757, 0x831dfc3b), + TOBN(0x022f0212, 0xc0067452), TOBN(0x3f6f69ee, 0x7b9b926c), + TOBN(0x09032da0, 0xef42daf4), TOBN(0x79f00ade, 0x83f80de4), + TOBN(0x6210db71, 0x81236c97), TOBN(0x74f7685b, 0x3ee0781f), + TOBN(0x4df7da7b, 0xa3e41372), TOBN(0x2aae38b1, 0xb1a1553e), + TOBN(0x1688e222, 0xf6dd9d1b), TOBN(0x57695448, 0x5b8b6487), + TOBN(0x478d2127, 0x4b2edeaa), TOBN(0xb2818fa5, 0x1e85956a), + TOBN(0x1e6addda, 0xf176f2c0), TOBN(0x01ca4604, 0xe2572658), + TOBN(0x0a404ded, 0x85342ffb), TOBN(0x8cf60f96, 0x441838d6), + TOBN(0x9bbc691c, 0xc9071c4a), TOBN(0xfd588744, 0x34442803), + TOBN(0x97101c85, 0x809c0d81), TOBN(0xa7fb754c, 0x8c456f7f), + TOBN(0xc95f3c5c, 0xd51805e1), TOBN(0xab4ccd39, 0xb299dca8), + TOBN(0x3e03d20b, 0x47eaf500), TOBN(0xfa3165c1, 0xd7b80893), + TOBN(0x005e8b54, 0xe160e552), TOBN(0xdc4972ba, 0x9019d11f), + TOBN(0x21a6972e, 0x0c9a4a7a), TOBN(0xa52c258f, 0x37840fd7), + TOBN(0xf8559ff4, 0xc1e99d81), TOBN(0x08e1a7d6, 0xa3c617c0), + TOBN(0xb398fd43, 0x248c6ba7), TOBN(0x6ffedd91, 0xd1283794), + TOBN(0x8a6a59d2, 0xd629d208), TOBN(0xa9d141d5, 0x3490530e), + TOBN(0x42f6fc18, 0x38505989), TOBN(0x09bf250d, 0x479d94ee), + TOBN(0x223ad3b1, 0xb3822790), TOBN(0x6c5926c0, 0x93b8971c), + TOBN(0x609efc7e, 0x75f7fa62), TOBN(0x45d66a6d, 0x1ec2d989), + TOBN(0x4422d663, 0x987d2792), TOBN(0x4a73caad, 0x3eb31d2b), + TOBN(0xf06c2ac1, 0xa32cb9e6), TOBN(0xd9445c5f, 0x91aeba84), + TOBN(0x6af7a1d5, 0xaf71013f), TOBN(0xe68216e5, 0x0bedc946), + TOBN(0xf4cba30b, 0xd27370a0), TOBN(0x7981afbf, 0x870421cc), + TOBN(0x02496a67, 0x9449f0e1), TOBN(0x86cfc4be, 0x0a47edae), + TOBN(0x3073c936, 0xb1feca22), TOBN(0xf5694612, 0x03f8f8fb), + TOBN(0xd063b723, 0x901515ea), TOBN(0x4c6c77a5, 0x749cf038), + TOBN(0x6361e360, 0xab9e5059), TOBN(0x596cf171, 0xa76a37c0), + TOBN(0x800f53fa, 0x6530ae7a), TOBN(0x0f5e631e, 0x0792a7a6), + TOBN(0x5cc29c24, 0xefdb81c9), TOBN(0xa269e868, 0x3f9c40ba), + TOBN(0xec14f9e1, 0x2cb7191e), TOBN(0x78ea1bd8, 0xe5b08ea6), + TOBN(0x3c65aa9b, 0x46332bb9), TOBN(0x84cc22b3, 0xbf80ce25), + TOBN(0x0098e9e9, 0xd49d5bf1), TOBN(0xcd4ec1c6, 0x19087da4), + TOBN(0x3c9d07c5, 0xaef6e357), TOBN(0x839a0268, 0x9f8f64b8), + TOBN(0xc5e9eb62, 0xc6d8607f), TOBN(0x759689f5, 0x6aa995e4), + TOBN(0x70464669, 0xbbb48317), TOBN(0x921474bf, 0xe402417d), + TOBN(0xcabe135b, 0x2a354c8c), TOBN(0xd51e52d2, 0x812fa4b5), + TOBN(0xec741096, 0x53311fe8), TOBN(0x4f774535, 0xb864514b), + TOBN(0xbcadd671, 0x5bde48f8), TOBN(0xc9703873, 0x2189bc7d), + TOBN(0x5d45299e, 0xc709ee8a), TOBN(0xd1287ee2, 0x845aaff8), + TOBN(0x7d1f8874, 0xdb1dbf1f), TOBN(0xea46588b, 0x990c88d6), + TOBN(0x60ba649a, 0x84368313), TOBN(0xd5fdcbce, 0x60d543ae), + TOBN(0x90b46d43, 0x810d5ab0), TOBN(0x6739d8f9, 0x04d7e5cc), + TOBN(0x021c1a58, 0x0d337c33), TOBN(0x00a61162, 0x68e67c40), + TOBN(0x95ef413b, 0x379f0a1f), TOBN(0xfe126605, 0xe9e2ab95), + TOBN(0x67578b85, 0x2f5f199c), TOBN(0xf5c00329, 0x2cb84913), + TOBN(0xf7956430, 0x37577dd8), TOBN(0x83b82af4, 0x29c5fe88), + TOBN(0x9c1bea26, 0xcdbdc132), TOBN(0x589fa086, 0x9c04339e), + TOBN(0x033e9538, 0xb13799df), TOBN(0x85fa8b21, 0xd295d034), + TOBN(0xdf17f73f, 0xbd9ddcca), TOBN(0xf32bd122, 0xddb66334), + TOBN(0x55ef88a7, 0x858b044c), TOBN(0x1f0d69c2, 0x5aa9e397), + TOBN(0x55fd9cc3, 0x40d85559), TOBN(0xc774df72, 0x7785ddb2), + TOBN(0x5dcce9f6, 0xd3bd2e1c), TOBN(0xeb30da20, 0xa85dfed0), + TOBN(0x5ed7f5bb, 0xd3ed09c4), TOBN(0x7d42a35c, 0x82a9c1bd), + TOBN(0xcf3de995, 0x9890272d), TOBN(0x75f3432a, 0x3e713a10), + TOBN(0x5e13479f, 0xe28227b8), TOBN(0xb8561ea9, 0xfefacdc8), + TOBN(0xa6a297a0, 0x8332aafd), TOBN(0x9b0d8bb5, 0x73809b62), + TOBN(0xd2fa1cfd, 0x0c63036f), TOBN(0x7a16eb55, 0xbd64bda8), + TOBN(0x3f5cf5f6, 0x78e62ddc), TOBN(0x2267c454, 0x07fd752b), + TOBN(0x5e361b6b, 0x5e437bbe), TOBN(0x95c59501, 0x8354e075), + TOBN(0xec725f85, 0xf2b254d9), TOBN(0x844b617d, 0x2cb52b4e), + TOBN(0xed8554f5, 0xcf425fb5), TOBN(0xab67703e, 0x2af9f312), + TOBN(0x4cc34ec1, 0x3cf48283), TOBN(0xb09daa25, 0x9c8a705e), + TOBN(0xd1e9d0d0, 0x5b7d4f84), TOBN(0x4df6ef64, 0xdb38929d), + TOBN(0xe16b0763, 0xaa21ba46), TOBN(0xc6b1d178, 0xa293f8fb), + TOBN(0x0ff5b602, 0xd520aabf), TOBN(0x94d671bd, 0xc339397a), + TOBN(0x7c7d98cf, 0x4f5792fa), TOBN(0x7c5e0d67, 0x11215261), + TOBN(0x9b19a631, 0xa7c5a6d4), TOBN(0xc8511a62, 0x7a45274d), + TOBN(0x0c16621c, 0xa5a60d99), TOBN(0xf7fbab88, 0xcf5e48cb), + TOBN(0xab1e6ca2, 0xf7ddee08), TOBN(0x83bd08ce, 0xe7867f3c), + TOBN(0xf7e48e8a, 0x2ac13e27), TOBN(0x4494f6df, 0x4eb1a9f5), + TOBN(0xedbf84eb, 0x981f0a62), TOBN(0x49badc32, 0x536438f0), + TOBN(0x50bea541, 0x004f7571), TOBN(0xbac67d10, 0xdf1c94ee), + TOBN(0x253d73a1, 0xb727bc31), TOBN(0xb3d01cf2, 0x30686e28), + TOBN(0x51b77b1b, 0x55fd0b8b), TOBN(0xa099d183, 0xfeec3173), + TOBN(0x202b1fb7, 0x670e72b7), TOBN(0xadc88b33, 0xa8e1635f), + TOBN(0x34e8216a, 0xf989d905), TOBN(0xc2e68d20, 0x29b58d01), + TOBN(0x11f81c92, 0x6fe55a93), TOBN(0x15f1462a, 0x8f296f40), + TOBN(0x1915d375, 0xea3d62f2), TOBN(0xa17765a3, 0x01c8977d), + TOBN(0x7559710a, 0xe47b26f6), TOBN(0xe0bd29c8, 0x535077a5), + TOBN(0x615f976d, 0x08d84858), TOBN(0x370dfe85, 0x69ced5c1), + TOBN(0xbbc7503c, 0xa734fa56), TOBN(0xfbb9f1ec, 0x91ac4574), + TOBN(0x95d7ec53, 0x060dd7ef), TOBN(0xeef2dacd, 0x6e657979), + TOBN(0x54511af3, 0xe2a08235), TOBN(0x1e324aa4, 0x1f4aea3d), + TOBN(0x550e7e71, 0xe6e67671), TOBN(0xbccd5190, 0xbf52faf7), + TOBN(0xf880d316, 0x223cc62a), TOBN(0x0d402c7e, 0x2b32eb5d), + TOBN(0xa40bc039, 0x306a5a3b), TOBN(0x4e0a41fd, 0x96783a1b), + TOBN(0xa1e8d39a, 0x0253cdd4), TOBN(0x6480be26, 0xc7388638), + TOBN(0xee365e1d, 0x2285f382), TOBN(0x188d8d8f, 0xec0b5c36), + TOBN(0x34ef1a48, 0x1f0f4d82), TOBN(0x1a8f43e1, 0xa487d29a), + TOBN(0x8168226d, 0x77aefb3a), TOBN(0xf69a751e, 0x1e72c253), + TOBN(0x8e04359a, 0xe9594df1), TOBN(0x475ffd7d, 0xd14c0467), + TOBN(0xb5a2c2b1, 0x3844e95c), TOBN(0x85caf647, 0xdd12ef94), + TOBN(0x1ecd2a9f, 0xf1063d00), TOBN(0x1dd2e229, 0x23843311), + TOBN(0x38f0e09d, 0x73d17244), TOBN(0x3ede7746, 0x8fc653f1), + TOBN(0xae4459f5, 0xdc20e21c), TOBN(0x00db2ffa, 0x6a8599ea), + TOBN(0x11682c39, 0x30cfd905), TOBN(0x4934d074, 0xa5c112a6), + TOBN(0xbdf063c5, 0x568bfe95), TOBN(0x779a440a, 0x016c441a), + TOBN(0x0c23f218, 0x97d6fbdc), TOBN(0xd3a5cd87, 0xe0776aac), + TOBN(0xcee37f72, 0xd712e8db), TOBN(0xfb28c70d, 0x26f74e8d), + TOBN(0xffe0c728, 0xb61301a0), TOBN(0xa6282168, 0xd3724354), + TOBN(0x7ff4cb00, 0x768ffedc), TOBN(0xc51b3088, 0x03b02de9), + TOBN(0xa5a8147c, 0x3902dda5), TOBN(0x35d2f706, 0xfe6973b4), + TOBN(0x5ac2efcf, 0xc257457e), TOBN(0x933f48d4, 0x8700611b), + TOBN(0xc365af88, 0x4912beb2), TOBN(0x7f5a4de6, 0x162edf94), + TOBN(0xc646ba7c, 0x0c32f34b), TOBN(0x632c6af3, 0xb2091074), + TOBN(0x58d4f2e3, 0x753e43a9), TOBN(0x70e1d217, 0x24d4e23f), + TOBN(0xb24bf729, 0xafede6a6), TOBN(0x7f4a94d8, 0x710c8b60), + TOBN(0xaad90a96, 0x8d4faa6a), TOBN(0xd9ed0b32, 0xb066b690), + TOBN(0x52fcd37b, 0x78b6dbfd), TOBN(0x0b64615e, 0x8bd2b431), + TOBN(0x228e2048, 0xcfb9fad5), TOBN(0xbeaa386d, 0x240b76bd), + TOBN(0x2d6681c8, 0x90dad7bc), TOBN(0x3e553fc3, 0x06d38f5e), + TOBN(0xf27cdb9b, 0x9d5f9750), TOBN(0x3e85c52a, 0xd28c5b0e), + TOBN(0x190795af, 0x5247c39b), TOBN(0x547831eb, 0xbddd6828), + TOBN(0xf327a227, 0x4a82f424), TOBN(0x36919c78, 0x7e47f89d), + TOBN(0xe4783919, 0x43c7392c), TOBN(0xf101b9aa, 0x2316fefe), + TOBN(0xbcdc9e9c, 0x1c5009d2), TOBN(0xfb55ea13, 0x9cd18345), + TOBN(0xf5b5e231, 0xa3ce77c7), TOBN(0xde6b4527, 0xd2f2cb3d), + TOBN(0x10f6a333, 0x9bb26f5f), TOBN(0x1e85db8e, 0x044d85b6), + TOBN(0xc3697a08, 0x94197e54), TOBN(0x65e18cc0, 0xa7cb4ea8), + TOBN(0xa38c4f50, 0xa471fe6e), TOBN(0xf031747a, 0x2f13439c), + TOBN(0x53c4a6ba, 0xc007318b), TOBN(0xa8da3ee5, 0x1deccb3d), + TOBN(0x0555b31c, 0x558216b1), TOBN(0x90c7810c, 0x2f79e6c2), + TOBN(0x9b669f4d, 0xfe8eed3c), TOBN(0x70398ec8, 0xe0fac126), + TOBN(0xa96a449e, 0xf701b235), TOBN(0x0ceecdb3, 0xeb94f395), + TOBN(0x285fc368, 0xd0cb7431), TOBN(0x0d37bb52, 0x16a18c64), + TOBN(0x05110d38, 0xb880d2dd), TOBN(0xa60f177b, 0x65930d57), + TOBN(0x7da34a67, 0xf36235f5), TOBN(0x47f5e17c, 0x183816b9), + TOBN(0xc7664b57, 0xdb394af4), TOBN(0x39ba215d, 0x7036f789), + TOBN(0x46d2ca0e, 0x2f27b472), TOBN(0xc42647ee, 0xf73a84b7), + TOBN(0x44bc7545, 0x64488f1d), TOBN(0xaa922708, 0xf4cf85d5), + TOBN(0x721a01d5, 0x53e4df63), TOBN(0x649c0c51, 0x5db46ced), + TOBN(0x6bf0d64e, 0x3cffcb6c), TOBN(0xe3bf93fe, 0x50f71d96), + TOBN(0x75044558, 0xbcc194a0), TOBN(0x16ae3372, 0x6afdc554), + TOBN(0xbfc01adf, 0x5ca48f3f), TOBN(0x64352f06, 0xe22a9b84), + TOBN(0xcee54da1, 0xc1099e4a), TOBN(0xbbda54e8, 0xfa1b89c0), + TOBN(0x166a3df5, 0x6f6e55fb), TOBN(0x1ca44a24, 0x20176f88), + TOBN(0x936afd88, 0xdfb7b5ff), TOBN(0xe34c2437, 0x8611d4a0), + TOBN(0x7effbb75, 0x86142103), TOBN(0x6704ba1b, 0x1f34fc4d), + TOBN(0x7c2a468f, 0x10c1b122), TOBN(0x36b3a610, 0x8c6aace9), + TOBN(0xabfcc0a7, 0x75a0d050), TOBN(0x066f9197, 0x3ce33e32), + TOBN(0xce905ef4, 0x29fe09be), TOBN(0x89ee25ba, 0xa8376351), + TOBN(0x2a3ede22, 0xfd29dc76), TOBN(0x7fd32ed9, 0x36f17260), + TOBN(0x0cadcf68, 0x284b4126), TOBN(0x63422f08, 0xa7951fc8), + TOBN(0x562b24f4, 0x0807e199), TOBN(0xfe9ce5d1, 0x22ad4490), + TOBN(0xc2f51b10, 0x0db2b1b4), TOBN(0xeb3613ff, 0xe4541d0d), + TOBN(0xbd2c4a05, 0x2680813b), TOBN(0x527aa55d, 0x561b08d6), + TOBN(0xa9f8a40e, 0xa7205558), TOBN(0xe3eea56f, 0x243d0bec), + TOBN(0x7b853817, 0xa0ff58b3), TOBN(0xb67d3f65, 0x1a69e627), + TOBN(0x0b76bbb9, 0xa869b5d6), TOBN(0xa3afeb82, 0x546723ed), + TOBN(0x5f24416d, 0x3e554892), TOBN(0x8413b53d, 0x430e2a45), + TOBN(0x99c56aee, 0x9032a2a0), TOBN(0x09432bf6, 0xeec367b1), + TOBN(0x552850c6, 0xdaf0ecc1), TOBN(0x49ebce55, 0x5bc92048), + TOBN(0xdfb66ba6, 0x54811307), TOBN(0x1b84f797, 0x6f298597), + TOBN(0x79590481, 0x8d1d7a0d), TOBN(0xd9fabe03, 0x3a6fa556), + TOBN(0xa40f9c59, 0xba9e5d35), TOBN(0xcb1771c1, 0xf6247577), + TOBN(0x542a47ca, 0xe9a6312b), TOBN(0xa34b3560, 0x552dd8c5), + TOBN(0xfdf94de0, 0x0d794716), TOBN(0xd46124a9, 0x9c623094), + TOBN(0x56b7435d, 0x68afe8b4), TOBN(0x27f20540, 0x6c0d8ea1), + TOBN(0x12b77e14, 0x73186898), TOBN(0xdbc3dd46, 0x7479490f), + TOBN(0x951a9842, 0xc03b0c05), TOBN(0x8b1b3bb3, 0x7921bc96), + TOBN(0xa573b346, 0x2b202e0a), TOBN(0x77e4665d, 0x47254d56), + TOBN(0x08b70dfc, 0xd23e3984), TOBN(0xab86e8bc, 0xebd14236), + TOBN(0xaa3e07f8, 0x57114ba7), TOBN(0x5ac71689, 0xab0ef4f2), + TOBN(0x88fca384, 0x0139d9af), TOBN(0x72733f88, 0x76644af0), + TOBN(0xf122f72a, 0x65d74f4a), TOBN(0x13931577, 0xa5626c7a), + TOBN(0xd5b5d9eb, 0x70f8d5a4), TOBN(0x375adde7, 0xd7bbb228), + TOBN(0x31e88b86, 0x0c1c0b32), TOBN(0xd1f568c4, 0x173edbaa), + TOBN(0x1592fc83, 0x5459df02), TOBN(0x2beac0fb, 0x0fcd9a7e), + TOBN(0xb0a6fdb8, 0x1b473b0a), TOBN(0xe3224c6f, 0x0fe8fc48), + TOBN(0x680bd00e, 0xe87edf5b), TOBN(0x30385f02, 0x20e77cf5), + TOBN(0xe9ab98c0, 0x4d42d1b2), TOBN(0x72d191d2, 0xd3816d77), + TOBN(0x1564daca, 0x0917d9e5), TOBN(0x394eab59, 0x1f8fed7f), + TOBN(0xa209aa8d, 0x7fbb3896), TOBN(0x5564f3b9, 0xbe6ac98e), + TOBN(0xead21d05, 0xd73654ef), TOBN(0x68d1a9c4, 0x13d78d74), + TOBN(0x61e01708, 0x6d4973a0), TOBN(0x83da3500, 0x46e6d32a), + TOBN(0x6a3dfca4, 0x68ae0118), TOBN(0xa1b9a4c9, 0xd02da069), + TOBN(0x0b2ff9c7, 0xebab8302), TOBN(0x98af07c3, 0x944ba436), + TOBN(0x85997326, 0x995f0f9f), TOBN(0x467fade0, 0x71b58bc6), + TOBN(0x47e4495a, 0xbd625a2b), TOBN(0xfdd2d01d, 0x33c3b8cd), + TOBN(0x2c38ae28, 0xc693f9fa), TOBN(0x48622329, 0x348f7999), + TOBN(0x97bf738e, 0x2161f583), TOBN(0x15ee2fa7, 0x565e8cc9), + TOBN(0xa1a5c845, 0x5777e189), TOBN(0xcc10bee0, 0x456f2829), + TOBN(0x8ad95c56, 0xda762bd5), TOBN(0x152e2214, 0xe9d91da8), + TOBN(0x975b0e72, 0x7cb23c74), TOBN(0xfd5d7670, 0xa90c66df), + TOBN(0xb5b5b8ad, 0x225ffc53), TOBN(0xab6dff73, 0xfaded2ae), + TOBN(0xebd56781, 0x6f4cbe9d), TOBN(0x0ed8b249, 0x6a574bd7), + TOBN(0x41c246fe, 0x81a881fa), TOBN(0x91564805, 0xc3db9c70), + TOBN(0xd7c12b08, 0x5b862809), TOBN(0x1facd1f1, 0x55858d7b), + TOBN(0x7693747c, 0xaf09e92a), TOBN(0x3b69dcba, 0x189a425f), + TOBN(0x0be28e9f, 0x967365ef), TOBN(0x57300eb2, 0xe801f5c9), + TOBN(0x93b8ac6a, 0xd583352f), TOBN(0xa2cf1f89, 0xcd05b2b7), + TOBN(0x7c0c9b74, 0x4dcc40cc), TOBN(0xfee38c45, 0xada523fb), + TOBN(0xb49a4dec, 0x1099cc4d), TOBN(0x325c377f, 0x69f069c6), + TOBN(0xe12458ce, 0x476cc9ff), TOBN(0x580e0b6c, 0xc6d4cb63), + TOBN(0xd561c8b7, 0x9072289b), TOBN(0x0377f264, 0xa619e6da), + TOBN(0x26685362, 0x88e591a5), TOBN(0xa453a7bd, 0x7523ca2b), + TOBN(0x8a9536d2, 0xc1df4533), TOBN(0xc8e50f2f, 0xbe972f79), + TOBN(0xd433e50f, 0x6d3549cf), TOBN(0x6f33696f, 0xfacd665e), + TOBN(0x695bfdac, 0xce11fcb4), TOBN(0x810ee252, 0xaf7c9860), + TOBN(0x65450fe1, 0x7159bb2c), TOBN(0xf7dfbebe, 0x758b357b), + TOBN(0x2b057e74, 0xd69fea72), TOBN(0xd485717a, 0x92731745),} + , + {TOBN(0x896c42e8, 0xee36860c), TOBN(0xdaf04dfd, 0x4113c22d), + TOBN(0x1adbb7b7, 0x44104213), TOBN(0xe5fd5fa1, 0x1fd394ea), + TOBN(0x68235d94, 0x1a4e0551), TOBN(0x6772cfbe, 0x18d10151), + TOBN(0x276071e3, 0x09984523), TOBN(0xe4e879de, 0x5a56ba98), + TOBN(0xaaafafb0, 0x285b9491), TOBN(0x01a0be88, 0x1e4c705e), + TOBN(0xff1d4f5d, 0x2ad9caab), TOBN(0x6e349a4a, 0xc37a233f), + TOBN(0xcf1c1246, 0x4a1c6a16), TOBN(0xd99e6b66, 0x29383260), + TOBN(0xea3d4366, 0x5f6d5471), TOBN(0x36974d04, 0xff8cc89b), + TOBN(0xc26c49a1, 0xcfe89d80), TOBN(0xb42c026d, 0xda9c8371), + TOBN(0xca6c013a, 0xdad066d2), TOBN(0xfb8f7228, 0x56a4f3ee), + TOBN(0x08b579ec, 0xd850935b), TOBN(0x34c1a74c, 0xd631e1b3), + TOBN(0xcb5fe596, 0xac198534), TOBN(0x39ff21f6, 0xe1f24f25), + TOBN(0x27f29e14, 0x8f929057), TOBN(0x7a64ae06, 0xc0c853df), + TOBN(0x256cd183, 0x58e9c5ce), TOBN(0x9d9cce82, 0xded092a5), + TOBN(0xcc6e5979, 0x6e93b7c7), TOBN(0xe1e47092, 0x31bb9e27), + TOBN(0xb70b3083, 0xaa9e29a0), TOBN(0xbf181a75, 0x3785e644), + TOBN(0xf53f2c65, 0x8ead09f7), TOBN(0x1335e1d5, 0x9780d14d), + TOBN(0x69cc20e0, 0xcd1b66bc), TOBN(0x9b670a37, 0xbbe0bfc8), + TOBN(0xce53dc81, 0x28efbeed), TOBN(0x0c74e77c, 0x8326a6e5), + TOBN(0x3604e0d2, 0xb88e9a63), TOBN(0xbab38fca, 0x13dc2248), + TOBN(0x8ed6e8c8, 0x5c0a3f1e), TOBN(0xbcad2492, 0x7c87c37f), + TOBN(0xfdfb62bb, 0x9ee3b78d), TOBN(0xeba8e477, 0xcbceba46), + TOBN(0x37d38cb0, 0xeeaede4b), TOBN(0x0bc498e8, 0x7976deb6), + TOBN(0xb2944c04, 0x6b6147fb), TOBN(0x8b123f35, 0xf71f9609), + TOBN(0xa155dcc7, 0xde79dc24), TOBN(0xf1168a32, 0x558f69cd), + TOBN(0xbac21595, 0x0d1850df), TOBN(0x15c8295b, 0xb204c848), + TOBN(0xf661aa36, 0x7d8184ff), TOBN(0xc396228e, 0x30447bdb), + TOBN(0x11cd5143, 0xbde4a59e), TOBN(0xe3a26e3b, 0x6beab5e6), + TOBN(0xd3b3a13f, 0x1402b9d0), TOBN(0x573441c3, 0x2c7bc863), + TOBN(0x4b301ec4, 0x578c3e6e), TOBN(0xc26fc9c4, 0x0adaf57e), + TOBN(0x96e71bfd, 0x7493cea3), TOBN(0xd05d4b3f, 0x1af81456), + TOBN(0xdaca2a8a, 0x6a8c608f), TOBN(0x53ef07f6, 0x0725b276), + TOBN(0x07a5fbd2, 0x7824fc56), TOBN(0x34675218, 0x13289077), + TOBN(0x5bf69fd5, 0xe0c48349), TOBN(0xa613ddd3, 0xb6aa7875), + TOBN(0x7f78c19c, 0x5450d866), TOBN(0x46f4409c, 0x8f84a481), + TOBN(0x9f1d1928, 0x90fce239), TOBN(0x016c4168, 0xb2ce44b9), + TOBN(0xbae023f0, 0xc7435978), TOBN(0xb152c888, 0x20e30e19), + TOBN(0x9c241645, 0xe3fa6faf), TOBN(0x735d95c1, 0x84823e60), + TOBN(0x03197573, 0x03955317), TOBN(0x0b4b02a9, 0xf03b4995), + TOBN(0x076bf559, 0x70274600), TOBN(0x32c5cc53, 0xaaf57508), + TOBN(0xe8af6d1f, 0x60624129), TOBN(0xb7bc5d64, 0x9a5e2b5e), + TOBN(0x3814b048, 0x5f082d72), TOBN(0x76f267f2, 0xce19677a), + TOBN(0x626c630f, 0xb36eed93), TOBN(0x55230cd7, 0x3bf56803), + TOBN(0x78837949, 0xce2736a0), TOBN(0x0d792d60, 0xaa6c55f1), + TOBN(0x0318dbfd, 0xd5c7c5d2), TOBN(0xb38f8da7, 0x072b342d), + TOBN(0x3569bddc, 0x7b8de38a), TOBN(0xf25b5887, 0xa1c94842), + TOBN(0xb2d5b284, 0x2946ad60), TOBN(0x854f29ad, 0xe9d1707e), + TOBN(0xaa5159dc, 0x2c6a4509), TOBN(0x899f94c0, 0x57189837), + TOBN(0xcf6adc51, 0xf4a55b03), TOBN(0x261762de, 0x35e3b2d5), + TOBN(0x4cc43012, 0x04827b51), TOBN(0xcd22a113, 0xc6021442), + TOBN(0xce2fd61a, 0x247c9569), TOBN(0x59a50973, 0xd152beca), + TOBN(0x6c835a11, 0x63a716d4), TOBN(0xc26455ed, 0x187dedcf), + TOBN(0x27f536e0, 0x49ce89e7), TOBN(0x18908539, 0xcc890cb5), + TOBN(0x308909ab, 0xd83c2aa1), TOBN(0xecd3142b, 0x1ab73bd3), + TOBN(0x6a85bf59, 0xb3f5ab84), TOBN(0x3c320a68, 0xf2bea4c6), + TOBN(0xad8dc538, 0x6da4541f), TOBN(0xeaf34eb0, 0xb7c41186), + TOBN(0x1c780129, 0x977c97c4), TOBN(0x5ff9beeb, 0xc57eb9fa), + TOBN(0xa24d0524, 0xc822c478), TOBN(0xfd8eec2a, 0x461cd415), + TOBN(0xfbde194e, 0xf027458c), TOBN(0xb4ff5319, 0x1d1be115), + TOBN(0x63f874d9, 0x4866d6f4), TOBN(0x35c75015, 0xb21ad0c9), + TOBN(0xa6b5c9d6, 0x46ac49d2), TOBN(0x42c77c0b, 0x83137aa9), + TOBN(0x24d000fc, 0x68225a38), TOBN(0x0f63cfc8, 0x2fe1e907), + TOBN(0x22d1b01b, 0xc6441f95), TOBN(0x7d38f719, 0xec8e448f), + TOBN(0x9b33fa5f, 0x787fb1ba), TOBN(0x94dcfda1, 0x190158df), + TOBN(0xc47cb339, 0x5f6d4a09), TOBN(0x6b4f355c, 0xee52b826), + TOBN(0x3d100f5d, 0xf51b930a), TOBN(0xf4512fac, 0x9f668f69), + TOBN(0x546781d5, 0x206c4c74), TOBN(0xd021d4d4, 0xcb4d2e48), + TOBN(0x494a54c2, 0xca085c2d), TOBN(0xf1dbaca4, 0x520850a8), + TOBN(0x63c79326, 0x490a1aca), TOBN(0xcb64dd9c, 0x41526b02), + TOBN(0xbb772591, 0xa2979258), TOBN(0x3f582970, 0x48d97846), + TOBN(0xd66b70d1, 0x7c213ba7), TOBN(0xc28febb5, 0xe8a0ced4), + TOBN(0x6b911831, 0xc10338c1), TOBN(0x0d54e389, 0xbf0126f3), + TOBN(0x7048d460, 0x4af206ee), TOBN(0x786c88f6, 0x77e97cb9), + TOBN(0xd4375ae1, 0xac64802e), TOBN(0x469bcfe1, 0xd53ec11c), + TOBN(0xfc9b340d, 0x47062230), TOBN(0xe743bb57, 0xc5b4a3ac), + TOBN(0xfe00b4aa, 0x59ef45ac), TOBN(0x29a4ef23, 0x59edf188), + TOBN(0x40242efe, 0xb483689b), TOBN(0x2575d3f6, 0x513ac262), + TOBN(0xf30037c8, 0x0ca6db72), TOBN(0xc9fcce82, 0x98864be2), + TOBN(0x84a112ff, 0x0149362d), TOBN(0x95e57582, 0x1c4ae971), + TOBN(0x1fa4b1a8, 0x945cf86c), TOBN(0x4525a734, 0x0b024a2f), + TOBN(0xe76c8b62, 0x8f338360), TOBN(0x483ff593, 0x28edf32b), + TOBN(0x67e8e90a, 0x298b1aec), TOBN(0x9caab338, 0x736d9a21), + TOBN(0x5c09d2fd, 0x66892709), TOBN(0x2496b4dc, 0xb55a1d41), + TOBN(0x93f5fb1a, 0xe24a4394), TOBN(0x08c75049, 0x6fa8f6c1), + TOBN(0xcaead1c2, 0xc905d85f), TOBN(0xe9d7f790, 0x0733ae57), + TOBN(0x24c9a65c, 0xf07cdd94), TOBN(0x7389359c, 0xa4b55931), + TOBN(0xf58709b7, 0x367e45f7), TOBN(0x1f203067, 0xcb7e7adc), + TOBN(0x82444bff, 0xc7b72818), TOBN(0x07303b35, 0xbaac8033), + TOBN(0x1e1ee4e4, 0xd13b7ea1), TOBN(0xe6489b24, 0xe0e74180), + TOBN(0xa5f2c610, 0x7e70ef70), TOBN(0xa1655412, 0xbdd10894), + TOBN(0x555ebefb, 0x7af4194e), TOBN(0x533c1c3c, 0x8e89bd9c), + TOBN(0x735b9b57, 0x89895856), TOBN(0x15fb3cd2, 0x567f5c15), + TOBN(0x057fed45, 0x526f09fd), TOBN(0xe8a4f10c, 0x8128240a), + TOBN(0x9332efc4, 0xff2bfd8d), TOBN(0x214e77a0, 0xbd35aa31), + TOBN(0x32896d73, 0x14faa40e), TOBN(0x767867ec, 0x01e5f186), + TOBN(0xc9adf8f1, 0x17a1813e), TOBN(0xcb6cda78, 0x54741795), + TOBN(0xb7521b6d, 0x349d51aa), TOBN(0xf56b5a9e, 0xe3c7b8e9), + TOBN(0xc6f1e5c9, 0x32a096df), TOBN(0x083667c4, 0xa3635024), + TOBN(0x365ea135, 0x18087f2f), TOBN(0xf1b8eaac, 0xd136e45d), + TOBN(0xc8a0e484, 0x73aec989), TOBN(0xd75a324b, 0x142c9259), + TOBN(0xb7b4d001, 0x01dae185), TOBN(0x45434e0b, 0x9b7a94bc), + TOBN(0xf54339af, 0xfbd8cb0b), TOBN(0xdcc4569e, 0xe98ef49e), + TOBN(0x7789318a, 0x09a51299), TOBN(0x81b4d206, 0xb2b025d8), + TOBN(0xf64aa418, 0xfae85792), TOBN(0x3e50258f, 0xacd7baf7), + TOBN(0xdce84cdb, 0x2996864b), TOBN(0xa2e67089, 0x1f485fa4), + TOBN(0xb28b2bb6, 0x534c6a5a), TOBN(0x31a7ec6b, 0xc94b9d39), + TOBN(0x1d217766, 0xd6bc20da), TOBN(0x4acdb5ec, 0x86761190), + TOBN(0x68726328, 0x73701063), TOBN(0x4d24ee7c, 0x2128c29b), + TOBN(0xc072ebd3, 0xa19fd868), TOBN(0x612e481c, 0xdb8ddd3b), + TOBN(0xb4e1d754, 0x1a64d852), TOBN(0x00ef95ac, 0xc4c6c4ab), + TOBN(0x1536d2ed, 0xaa0a6c46), TOBN(0x61294086, 0x43774790), + TOBN(0x54af25e8, 0x343fda10), TOBN(0x9ff9d98d, 0xfd25d6f2), + TOBN(0x0746af7c, 0x468b8835), TOBN(0x977a31cb, 0x730ecea7), + TOBN(0xa5096b80, 0xc2cf4a81), TOBN(0xaa986833, 0x6458c37a), + TOBN(0x6af29bf3, 0xa6bd9d34), TOBN(0x6a62fe9b, 0x33c5d854), + TOBN(0x50e6c304, 0xb7133b5e), TOBN(0x04b60159, 0x7d6e6848), + TOBN(0x4cd296df, 0x5579bea4), TOBN(0x10e35ac8, 0x5ceedaf1), + TOBN(0x04c4c5fd, 0xe3bcc5b1), TOBN(0x95f9ee8a, 0x89412cf9), + TOBN(0x2c9459ee, 0x82b6eb0f), TOBN(0x2e845765, 0x95c2aadd), + TOBN(0x774a84ae, 0xd327fcfe), TOBN(0xd8c93722, 0x0368d476), + TOBN(0x0dbd5748, 0xf83e8a3b), TOBN(0xa579aa96, 0x8d2495f3), + TOBN(0x535996a0, 0xae496e9b), TOBN(0x07afbfe9, 0xb7f9bcc2), + TOBN(0x3ac1dc6d, 0x5b7bd293), TOBN(0x3b592cff, 0x7022323d), + TOBN(0xba0deb98, 0x9c0a3e76), TOBN(0x18e78e9f, 0x4b197acb), + TOBN(0x211cde10, 0x296c36ef), TOBN(0x7ee89672, 0x82c4da77), + TOBN(0xb617d270, 0xa57836da), TOBN(0xf0cd9c31, 0x9cb7560b), + TOBN(0x01fdcbf7, 0xe455fe90), TOBN(0x3fb53cbb, 0x7e7334f3), + TOBN(0x781e2ea4, 0x4e7de4ec), TOBN(0x8adab3ad, 0x0b384fd0), + TOBN(0x129eee2f, 0x53d64829), TOBN(0x7a471e17, 0xa261492b), + TOBN(0xe4f9adb9, 0xe4cb4a2c), TOBN(0x3d359f6f, 0x97ba2c2d), + TOBN(0x346c6786, 0x0aacd697), TOBN(0x92b444c3, 0x75c2f8a8), + TOBN(0xc79fa117, 0xd85df44e), TOBN(0x56782372, 0x398ddf31), + TOBN(0x60e690f2, 0xbbbab3b8), TOBN(0x4851f8ae, 0x8b04816b), + TOBN(0xc72046ab, 0x9c92e4d2), TOBN(0x518c74a1, 0x7cf3136b), + TOBN(0xff4eb50a, 0xf9877d4c), TOBN(0x14578d90, 0xa919cabb), + TOBN(0x8218f8c4, 0xac5eb2b6), TOBN(0xa3ccc547, 0x542016e4), + TOBN(0x025bf48e, 0x327f8349), TOBN(0xf3e97346, 0xf43cb641), + TOBN(0xdc2bafdf, 0x500f1085), TOBN(0x57167876, 0x2f063055), + TOBN(0x5bd914b9, 0x411925a6), TOBN(0x7c078d48, 0xa1123de5), + TOBN(0xee6bf835, 0x182b165d), TOBN(0xb11b5e5b, 0xba519727), + TOBN(0xe33ea76c, 0x1eea7b85), TOBN(0x2352b461, 0x92d4f85e), + TOBN(0xf101d334, 0xafe115bb), TOBN(0xfabc1294, 0x889175a3), + TOBN(0x7f6bcdc0, 0x5233f925), TOBN(0xe0a802db, 0xe77fec55), + TOBN(0xbdb47b75, 0x8069b659), TOBN(0x1c5e12de, 0xf98fbd74), + TOBN(0x869c58c6, 0x4b8457ee), TOBN(0xa5360f69, 0x4f7ea9f7), + TOBN(0xe576c09f, 0xf460b38f), TOBN(0x6b70d548, 0x22b7fb36), + TOBN(0x3fd237f1, 0x3bfae315), TOBN(0x33797852, 0xcbdff369), + TOBN(0x97df25f5, 0x25b516f9), TOBN(0x46f388f2, 0xba38ad2d), + TOBN(0x656c4658, 0x89d8ddbb), TOBN(0x8830b26e, 0x70f38ee8), + TOBN(0x4320fd5c, 0xde1212b0), TOBN(0xc34f30cf, 0xe4a2edb2), + TOBN(0xabb131a3, 0x56ab64b8), TOBN(0x7f77f0cc, 0xd99c5d26), + TOBN(0x66856a37, 0xbf981d94), TOBN(0x19e76d09, 0x738bd76e), + TOBN(0xe76c8ac3, 0x96238f39), TOBN(0xc0a482be, 0xa830b366), + TOBN(0xb7b8eaff, 0x0b4eb499), TOBN(0x8ecd83bc, 0x4bfb4865), + TOBN(0x971b2cb7, 0xa2f3776f), TOBN(0xb42176a4, 0xf4b88adf), + TOBN(0xb9617df5, 0xbe1fa446), TOBN(0x8b32d508, 0xcd031bd2), + TOBN(0x1c6bd47d, 0x53b618c0), TOBN(0xc424f46c, 0x6a227923), + TOBN(0x7303ffde, 0xdd92d964), TOBN(0xe9712878, 0x71b5abf2), + TOBN(0x8f48a632, 0xf815561d), TOBN(0x85f48ff5, 0xd3c055d1), + TOBN(0x222a1427, 0x7525684f), TOBN(0xd0d841a0, 0x67360cc3), + TOBN(0x4245a926, 0x0b9267c6), TOBN(0xc78913f1, 0xcf07f863), + TOBN(0xaa844c8e, 0x4d0d9e24), TOBN(0xa42ad522, 0x3d5f9017), + TOBN(0xbd371749, 0xa2c989d5), TOBN(0x928292df, 0xe1f5e78e), + TOBN(0x493b383e, 0x0a1ea6da), TOBN(0x5136fd8d, 0x13aee529), + TOBN(0x860c44b1, 0xf2c34a99), TOBN(0x3b00aca4, 0xbf5855ac), + TOBN(0xabf6aaa0, 0xfaaf37be), TOBN(0x65f43682, 0x2a53ec08), + TOBN(0x1d9a5801, 0xa11b12e1), TOBN(0x78a7ab2c, 0xe20ed475), + TOBN(0x0de1067e, 0x9a41e0d5), TOBN(0x30473f5f, 0x305023ea), + TOBN(0xdd3ae09d, 0x169c7d97), TOBN(0x5cd5baa4, 0xcfaef9cd), + TOBN(0x5cd7440b, 0x65a44803), TOBN(0xdc13966a, 0x47f364de), + TOBN(0x077b2be8, 0x2b8357c1), TOBN(0x0cb1b4c5, 0xe9d57c2a), + TOBN(0x7a4ceb32, 0x05ff363e), TOBN(0xf310fa4d, 0xca35a9ef), + TOBN(0xdbb7b352, 0xf97f68c6), TOBN(0x0c773b50, 0x0b02cf58), + TOBN(0xea2e4821, 0x3c1f96d9), TOBN(0xffb357b0, 0xeee01815), + TOBN(0xb9c924cd, 0xe0f28039), TOBN(0x0b36c95a, 0x46a3fbe4), + TOBN(0x1faaaea4, 0x5e46db6c), TOBN(0xcae575c3, 0x1928aaff), + TOBN(0x7f671302, 0xa70dab86), TOBN(0xfcbd12a9, 0x71c58cfc), + TOBN(0xcbef9acf, 0xbee0cb92), TOBN(0x573da0b9, 0xf8c1b583), + TOBN(0x4752fcfe, 0x0d41d550), TOBN(0xe7eec0e3, 0x2155cffe), + TOBN(0x0fc39fcb, 0x545ae248), TOBN(0x522cb8d1, 0x8065f44e), + TOBN(0x263c962a, 0x70cbb96c), TOBN(0xe034362a, 0xbcd124a9), + TOBN(0xf120db28, 0x3c2ae58d), TOBN(0xb9a38d49, 0xfef6d507), + TOBN(0xb1fd2a82, 0x1ff140fd), TOBN(0xbd162f30, 0x20aee7e0), + TOBN(0x4e17a5d4, 0xcb251949), TOBN(0x2aebcb83, 0x4f7e1c3d), + TOBN(0x608eb25f, 0x937b0527), TOBN(0xf42e1e47, 0xeb7d9997), + TOBN(0xeba699c4, 0xb8a53a29), TOBN(0x1f921c71, 0xe091b536), + TOBN(0xcce29e7b, 0x5b26bbd5), TOBN(0x7a8ef5ed, 0x3b61a680), + TOBN(0xe5ef8043, 0xba1f1c7e), TOBN(0x16ea8217, 0x18158dda), + TOBN(0x01778a2b, 0x599ff0f9), TOBN(0x68a923d7, 0x8104fc6b), + TOBN(0x5bfa44df, 0xda694ff3), TOBN(0x4f7199db, 0xf7667f12), + TOBN(0xc06d8ff6, 0xe46f2a79), TOBN(0x08b5dead, 0xe9f8131d), + TOBN(0x02519a59, 0xabb4ce7c), TOBN(0xc4f710bc, 0xb42aec3e), + TOBN(0x3d77b057, 0x78bde41a), TOBN(0x6474bf80, 0xb4186b5a), + TOBN(0x048b3f67, 0x88c65741), TOBN(0xc64519de, 0x03c7c154), + TOBN(0xdf073846, 0x0edfcc4f), TOBN(0x319aa737, 0x48f1aa6b), + TOBN(0x8b9f8a02, 0xca909f77), TOBN(0x90258139, 0x7580bfef), + TOBN(0xd8bfd3ca, 0xc0c22719), TOBN(0xc60209e4, 0xc9ca151e), + TOBN(0x7a744ab5, 0xd9a1a69c), TOBN(0x6de5048b, 0x14937f8f), + TOBN(0x171938d8, 0xe115ac04), TOBN(0x7df70940, 0x1c6b16d2), + TOBN(0xa6aeb663, 0x7f8e94e7), TOBN(0xc130388e, 0x2a2cf094), + TOBN(0x1850be84, 0x77f54e6e), TOBN(0x9f258a72, 0x65d60fe5), + TOBN(0xff7ff0c0, 0x6c9146d6), TOBN(0x039aaf90, 0xe63a830b), + TOBN(0x38f27a73, 0x9460342f), TOBN(0x4703148c, 0x3f795f8a), + TOBN(0x1bb5467b, 0x9681a97e), TOBN(0x00931ba5, 0xecaeb594), + TOBN(0xcdb6719d, 0x786f337c), TOBN(0xd9c01cd2, 0xe704397d), + TOBN(0x0f4a3f20, 0x555c2fef), TOBN(0x00452509, 0x7c0af223), + TOBN(0x54a58047, 0x84db8e76), TOBN(0x3bacf1aa, 0x93c8aa06), + TOBN(0x11ca957c, 0xf7919422), TOBN(0x50641053, 0x78cdaa40), + TOBN(0x7a303874, 0x9f7144ae), TOBN(0x170c963f, 0x43d4acfd), + TOBN(0x5e148149, 0x58ddd3ef), TOBN(0xa7bde582, 0x9e72dba8), + TOBN(0x0769da8b, 0x6fa68750), TOBN(0xfa64e532, 0x572e0249), + TOBN(0xfcaadf9d, 0x2619ad31), TOBN(0x87882daa, 0xa7b349cd), + TOBN(0x9f6eb731, 0x6c67a775), TOBN(0xcb10471a, 0xefc5d0b1), + TOBN(0xb433750c, 0xe1b806b2), TOBN(0x19c5714d, 0x57b1ae7e), + TOBN(0xc0dc8b7b, 0xed03fd3f), TOBN(0xdd03344f, 0x31bc194e), + TOBN(0xa66c52a7, 0x8c6320b5), TOBN(0x8bc82ce3, 0xd0b6fd93), + TOBN(0xf8e13501, 0xb35f1341), TOBN(0xe53156dd, 0x25a43e42), + TOBN(0xd3adf27e, 0x4daeb85c), TOBN(0xb81d8379, 0xbbeddeb5), + TOBN(0x1b0b546e, 0x2e435867), TOBN(0x9020eb94, 0xeba5dd60), + TOBN(0x37d91161, 0x8210cb9d), TOBN(0x4c596b31, 0x5c91f1cf), + TOBN(0xb228a90f, 0x0e0b040d), TOBN(0xbaf02d82, 0x45ff897f), + TOBN(0x2aac79e6, 0x00fa6122), TOBN(0x24828817, 0x8e36f557), + TOBN(0xb9521d31, 0x113ec356), TOBN(0x9e48861e, 0x15eff1f8), + TOBN(0x2aa1d412, 0xe0d41715), TOBN(0x71f86203, 0x53f131b8), + TOBN(0xf60da8da, 0x3fd19408), TOBN(0x4aa716dc, 0x278d9d99), + TOBN(0x394531f7, 0xa8c51c90), TOBN(0xb560b0e8, 0xf59db51c), + TOBN(0xa28fc992, 0xfa34bdad), TOBN(0xf024fa14, 0x9cd4f8bd), + TOBN(0x5cf530f7, 0x23a9d0d3), TOBN(0x615ca193, 0xe28c9b56), + TOBN(0x6d2a483d, 0x6f73c51e), TOBN(0xa4cb2412, 0xea0dc2dd), + TOBN(0x50663c41, 0x1eb917ff), TOBN(0x3d3a74cf, 0xeade299e), + TOBN(0x29b3990f, 0x4a7a9202), TOBN(0xa9bccf59, 0xa7b15c3d), + TOBN(0x66a3ccdc, 0xa5df9208), TOBN(0x48027c14, 0x43f2f929), + TOBN(0xd385377c, 0x40b557f0), TOBN(0xe001c366, 0xcd684660), + TOBN(0x1b18ed6b, 0xe2183a27), TOBN(0x879738d8, 0x63210329), + TOBN(0xa687c74b, 0xbda94882), TOBN(0xd1bbcc48, 0xa684b299), + TOBN(0xaf6f1112, 0x863b3724), TOBN(0x6943d1b4, 0x2c8ce9f8), + TOBN(0xe044a3bb, 0x098cafb4), TOBN(0x27ed2310, 0x60d48caf), + TOBN(0x542b5675, 0x3a31b84d), TOBN(0xcbf3dd50, 0xfcddbed7), + TOBN(0x25031f16, 0x41b1d830), TOBN(0xa7ec851d, 0xcb0c1e27), + TOBN(0xac1c8fe0, 0xb5ae75db), TOBN(0xb24c7557, 0x08c52120), + TOBN(0x57f811dc, 0x1d4636c3), TOBN(0xf8436526, 0x681a9939), + TOBN(0x1f6bc6d9, 0x9c81adb3), TOBN(0x840f8ac3, 0x5b7d80d4), + TOBN(0x731a9811, 0xf4387f1a), TOBN(0x7c501cd3, 0xb5156880), + TOBN(0xa5ca4a07, 0xdfe68867), TOBN(0xf123d8f0, 0x5fcea120), + TOBN(0x1fbb0e71, 0xd607039e), TOBN(0x2b70e215, 0xcd3a4546), + TOBN(0x32d2f01d, 0x53324091), TOBN(0xb796ff08, 0x180ab19b), + TOBN(0x32d87a86, 0x3c57c4aa), TOBN(0x2aed9caf, 0xb7c49a27), + TOBN(0x9fb35eac, 0x31630d98), TOBN(0x338e8cdf, 0x5c3e20a3), + TOBN(0x80f16182, 0x66cde8db), TOBN(0x4e159980, 0x2d72fd36), + TOBN(0xd7b8f13b, 0x9b6e5072), TOBN(0xf5213907, 0x3b7b5dc1), + TOBN(0x4d431f1d, 0x8ce4396e), TOBN(0x37a1a680, 0xa7ed2142), + TOBN(0xbf375696, 0xd01aaf6b), TOBN(0xaa1c0c54, 0xe63aab66), + TOBN(0x3014368b, 0x4ed80940), TOBN(0x67e6d056, 0x7a6fcedd), + TOBN(0x7c208c49, 0xca97579f), TOBN(0xfe3d7a81, 0xa23597f6), + TOBN(0x5e203202, 0x7e096ae2), TOBN(0xb1f3e1e7, 0x24b39366), + TOBN(0x26da26f3, 0x2fdcdffc), TOBN(0x79422f1d, 0x6097be83),} + , + {TOBN(0x263a2cfb, 0x9db3b381), TOBN(0x9c3a2dee, 0xd4df0a4b), + TOBN(0x728d06e9, 0x7d04e61f), TOBN(0x8b1adfbc, 0x42449325), + TOBN(0x6ec1d939, 0x7e053a1b), TOBN(0xee2be5c7, 0x66daf707), + TOBN(0x80ba1e14, 0x810ac7ab), TOBN(0xdd2ae778, 0xf530f174), + TOBN(0x0435d97a, 0x205b9d8b), TOBN(0x6eb8f064, 0x056756d4), + TOBN(0xd5e88a8b, 0xb6f8210e), TOBN(0x070ef12d, 0xec9fd9ea), + TOBN(0x4d849505, 0x3bcc876a), TOBN(0x12a75338, 0xa7404ce3), + TOBN(0xd22b49e1, 0xb8a1db5e), TOBN(0xec1f2051, 0x14bfa5ad), + TOBN(0xadbaeb79, 0xb6828f36), TOBN(0x9d7a0258, 0x01bd5b9e), + TOBN(0xeda01e0d, 0x1e844b0c), TOBN(0x4b625175, 0x887edfc9), + TOBN(0x14109fdd, 0x9669b621), TOBN(0x88a2ca56, 0xf6f87b98), + TOBN(0xfe2eb788, 0x170df6bc), TOBN(0x0cea06f4, 0xffa473f9), + TOBN(0x43ed81b5, 0xc4e83d33), TOBN(0xd9f35879, 0x5efd488b), + TOBN(0x164a620f, 0x9deb4d0f), TOBN(0xc6927bdb, 0xac6a7394), + TOBN(0x45c28df7, 0x9f9e0f03), TOBN(0x2868661e, 0xfcd7e1a9), + TOBN(0x7cf4e8d0, 0xffa348f1), TOBN(0x6bd4c284, 0x398538e0), + TOBN(0x2618a091, 0x289a8619), TOBN(0xef796e60, 0x6671b173), + TOBN(0x664e46e5, 0x9090c632), TOBN(0xa38062d4, 0x1e66f8fb), + TOBN(0x6c744a20, 0x0573274e), TOBN(0xd07b67e4, 0xa9271394), + TOBN(0x391223b2, 0x6bdc0e20), TOBN(0xbe2d93f1, 0xeb0a05a7), + TOBN(0xf23e2e53, 0x3f36d141), TOBN(0xe84bb3d4, 0x4dfca442), + TOBN(0xb804a48d, 0x6b7c023a), TOBN(0x1e16a8fa, 0x76431c3b), + TOBN(0x1b5452ad, 0xddd472e0), TOBN(0x7d405ee7, 0x0d1ee127), + TOBN(0x50fc6f1d, 0xffa27599), TOBN(0x351ac53c, 0xbf391b35), + TOBN(0x7efa14b8, 0x4444896b), TOBN(0x64974d2f, 0xf94027fb), + TOBN(0xefdcd0e8, 0xde84487d), TOBN(0x8c45b260, 0x2b48989b), + TOBN(0xa8fcbbc2, 0xd8463487), TOBN(0xd1b2b3f7, 0x3fbc476c), + TOBN(0x21d005b7, 0xc8f443c0), TOBN(0x518f2e67, 0x40c0139c), + TOBN(0x56036e8c, 0x06d75fc1), TOBN(0x2dcf7bb7, 0x3249a89f), + TOBN(0x81dd1d3d, 0xe245e7dd), TOBN(0xf578dc4b, 0xebd6e2a7), + TOBN(0x4c028903, 0xdf2ce7a0), TOBN(0xaee36288, 0x9c39afac), + TOBN(0xdc847c31, 0x146404ab), TOBN(0x6304c0d8, 0xa4e97818), + TOBN(0xae51dca2, 0xa91f6791), TOBN(0x2abe4190, 0x9baa9efc), + TOBN(0xd9d2e2f4, 0x559c7ac1), TOBN(0xe82f4b51, 0xfc9f773a), + TOBN(0xa7713027, 0x4073e81c), TOBN(0xc0276fac, 0xfbb596fc), + TOBN(0x1d819fc9, 0xa684f70c), TOBN(0x29b47fdd, 0xc9f7b1e0), + TOBN(0x358de103, 0x459b1940), TOBN(0xec881c59, 0x5b013e93), + TOBN(0x51574c93, 0x49532ad3), TOBN(0x2db1d445, 0xb37b46de), + TOBN(0xc6445b87, 0xdf239fd8), TOBN(0xc718af75, 0x151d24ee), + TOBN(0xaea1c4a4, 0xf43c6259), TOBN(0x40c0e5d7, 0x70be02f7), + TOBN(0x6a4590f4, 0x721b33f2), TOBN(0x2124f1fb, 0xfedf04ea), + TOBN(0xf8e53cde, 0x9745efe7), TOBN(0xe7e10432, 0x65f046d9), + TOBN(0xc3fca28e, 0xe4d0c7e6), TOBN(0x847e339a, 0x87253b1b), + TOBN(0x9b595348, 0x3743e643), TOBN(0xcb6a0a0b, 0x4fd12fc5), + TOBN(0xfb6836c3, 0x27d02dcc), TOBN(0x5ad00982, 0x7a68bcc2), + TOBN(0x1b24b44c, 0x005e912d), TOBN(0xcc83d20f, 0x811fdcfe), + TOBN(0x36527ec1, 0x666fba0c), TOBN(0x69948197, 0x14754635), + TOBN(0xfcdcb1a8, 0x556da9c2), TOBN(0xa5934267, 0x81a732b2), + TOBN(0xec1214ed, 0xa714181d), TOBN(0x609ac13b, 0x6067b341), + TOBN(0xff4b4c97, 0xa545df1f), TOBN(0xa1240501, 0x34d2076b), + TOBN(0x6efa0c23, 0x1409ca97), TOBN(0x254cc1a8, 0x20638c43), + TOBN(0xd4e363af, 0xdcfb46cd), TOBN(0x62c2adc3, 0x03942a27), + TOBN(0xc67b9df0, 0x56e46483), TOBN(0xa55abb20, 0x63736356), + TOBN(0xab93c098, 0xc551bc52), TOBN(0x382b49f9, 0xb15fe64b), + TOBN(0x9ec221ad, 0x4dff8d47), TOBN(0x79caf615, 0x437df4d6), + TOBN(0x5f13dc64, 0xbb456509), TOBN(0xe4c589d9, 0x191f0714), + TOBN(0x27b6a8ab, 0x3fd40e09), TOBN(0xe455842e, 0x77313ea9), + TOBN(0x8b51d1e2, 0x1f55988b), TOBN(0x5716dd73, 0x062bbbfc), + TOBN(0x633c11e5, 0x4e8bf3de), TOBN(0x9a0e77b6, 0x1b85be3b), + TOBN(0x56510729, 0x0911cca6), TOBN(0x27e76495, 0xefa6590f), + TOBN(0xe4ac8b33, 0x070d3aab), TOBN(0x2643672b, 0x9a2cd5e5), + TOBN(0x52eff79b, 0x1cfc9173), TOBN(0x665ca49b, 0x90a7c13f), + TOBN(0x5a8dda59, 0xb3efb998), TOBN(0x8a5b922d, 0x052f1341), + TOBN(0xae9ebbab, 0x3cf9a530), TOBN(0x35986e7b, 0xf56da4d7), + TOBN(0x3a636b5c, 0xff3513cc), TOBN(0xbb0cf8ba, 0x3198f7dd), + TOBN(0xb8d40522, 0x41f16f86), TOBN(0x760575d8, 0xde13a7bf), + TOBN(0x36f74e16, 0x9f7aa181), TOBN(0x163a3ecf, 0xf509ed1c), + TOBN(0x6aead61f, 0x3c40a491), TOBN(0x158c95fc, 0xdfe8fcaa), + TOBN(0xa3991b6e, 0x13cda46f), TOBN(0x79482415, 0x342faed0), + TOBN(0xf3ba5bde, 0x666b5970), TOBN(0x1d52e6bc, 0xb26ab6dd), + TOBN(0x768ba1e7, 0x8608dd3d), TOBN(0x4930db2a, 0xea076586), + TOBN(0xd9575714, 0xe7dc1afa), TOBN(0x1fc7bf7d, 0xf7c58817), + TOBN(0x6b47accd, 0xd9eee96c), TOBN(0x0ca277fb, 0xe58cec37), + TOBN(0x113fe413, 0xe702c42a), TOBN(0xdd1764ee, 0xc47cbe51), + TOBN(0x041e7cde, 0x7b3ed739), TOBN(0x50cb7459, 0x5ce9e1c0), + TOBN(0x35568513, 0x2925b212), TOBN(0x7cff95c4, 0x001b081c), + TOBN(0x63ee4cbd, 0x8088b454), TOBN(0xdb7f32f7, 0x9a9e0c8a), + TOBN(0xb377d418, 0x6b2447cb), TOBN(0xe3e982aa, 0xd370219b), + TOBN(0x06ccc1e4, 0xc2a2a593), TOBN(0x72c36865, 0x0773f24f), + TOBN(0xa13b4da7, 0x95859423), TOBN(0x8bbf1d33, 0x75040c8f), + TOBN(0x726f0973, 0xda50c991), TOBN(0x48afcd5b, 0x822d6ee2), + TOBN(0xe5fc718b, 0x20fd7771), TOBN(0xb9e8e77d, 0xfd0807a1), + TOBN(0x7f5e0f44, 0x99a7703d), TOBN(0x6972930e, 0x618e36f3), + TOBN(0x2b7c77b8, 0x23807bbe), TOBN(0xe5b82405, 0xcb27ff50), + TOBN(0xba8b8be3, 0xbd379062), TOBN(0xd64b7a1d, 0x2dce4a92), + TOBN(0x040a73c5, 0xb2952e37), TOBN(0x0a9e252e, 0xd438aeca), + TOBN(0xdd43956b, 0xc39d3bcb), TOBN(0x1a31ca00, 0xb32b2d63), + TOBN(0xd67133b8, 0x5c417a18), TOBN(0xd08e4790, 0x2ef442c8), + TOBN(0x98cb1ae9, 0x255c0980), TOBN(0x4bd86381, 0x2b4a739f), + TOBN(0x5a5c31e1, 0x1e4a45a1), TOBN(0x1e5d55fe, 0x9cb0db2f), + TOBN(0x74661b06, 0x8ff5cc29), TOBN(0x026b389f, 0x0eb8a4f4), + TOBN(0x536b21a4, 0x58848c24), TOBN(0x2e5bf8ec, 0x81dc72b0), + TOBN(0x03c187d0, 0xad886aac), TOBN(0x5c16878a, 0xb771b645), + TOBN(0xb07dfc6f, 0xc74045ab), TOBN(0x2c6360bf, 0x7800caed), + TOBN(0x24295bb5, 0xb9c972a3), TOBN(0xc9e6f88e, 0x7c9a6dba), + TOBN(0x90ffbf24, 0x92a79aa6), TOBN(0xde29d50a, 0x41c26ac2), + TOBN(0x9f0af483, 0xd309cbe6), TOBN(0x5b020d8a, 0xe0bced4f), + TOBN(0x606e986d, 0xb38023e3), TOBN(0xad8f2c9d, 0x1abc6933), + TOBN(0x19292e1d, 0xe7400e93), TOBN(0xfe3e18a9, 0x52be5e4d), + TOBN(0xe8e9771d, 0x2e0680bf), TOBN(0x8c5bec98, 0xc54db063), + TOBN(0x2af9662a, 0x74a55d1f), TOBN(0xe3fbf28f, 0x046f66d8), + TOBN(0xa3a72ab4, 0xd4dc4794), TOBN(0x09779f45, 0x5c7c2dd8), + TOBN(0xd893bdaf, 0xc3d19d8d), TOBN(0xd5a75094, 0x57d6a6df), + TOBN(0x8cf8fef9, 0x952e6255), TOBN(0x3da67cfb, 0xda9a8aff), + TOBN(0x4c23f62a, 0x2c160dcd), TOBN(0x34e6c5e3, 0x8f90eaef), + TOBN(0x35865519, 0xa9a65d5a), TOBN(0x07c48aae, 0x8fd38a3d), + TOBN(0xb7e7aeda, 0x50068527), TOBN(0x2c09ef23, 0x1c90936a), + TOBN(0x31ecfeb6, 0xe879324c), TOBN(0xa0871f6b, 0xfb0ec938), + TOBN(0xb1f0fb68, 0xd84d835d), TOBN(0xc90caf39, 0x861dc1e6), + TOBN(0x12e5b046, 0x7594f8d7), TOBN(0x26897ae2, 0x65012b92), + TOBN(0xbcf68a08, 0xa4d6755d), TOBN(0x403ee41c, 0x0991fbda), + TOBN(0x733e343e, 0x3bbf17e8), TOBN(0xd2c7980d, 0x679b3d65), + TOBN(0x33056232, 0xd2e11305), TOBN(0x966be492, 0xf3c07a6f), + TOBN(0x6a8878ff, 0xbb15509d), TOBN(0xff221101, 0x0a9b59a4), + TOBN(0x6c9f564a, 0xabe30129), TOBN(0xc6f2c940, 0x336e64cf), + TOBN(0x0fe75262, 0x8b0c8022), TOBN(0xbe0267e9, 0x6ae8db87), + TOBN(0x22e192f1, 0x93bc042b), TOBN(0xf085b534, 0xb237c458), + TOBN(0xa0d192bd, 0x832c4168), TOBN(0x7a76e9e3, 0xbdf6271d), + TOBN(0x52a882fa, 0xb88911b5), TOBN(0xc85345e4, 0xb4db0eb5), + TOBN(0xa3be02a6, 0x81a7c3ff), TOBN(0x51889c8c, 0xf0ec0469), + TOBN(0x9d031369, 0xa5e829e5), TOBN(0xcbb4c6fc, 0x1607aa41), + TOBN(0x75ac59a6, 0x241d84c1), TOBN(0xc043f2bf, 0x8829e0ee), + TOBN(0x82a38f75, 0x8ea5e185), TOBN(0x8bda40b9, 0xd87cbd9f), + TOBN(0x9e65e75e, 0x2d8fc601), TOBN(0x3d515f74, 0xa35690b3), + TOBN(0x534acf4f, 0xda79e5ac), TOBN(0x68b83b3a, 0x8630215f), + TOBN(0x5c748b2e, 0xd085756e), TOBN(0xb0317258, 0xe5d37cb2), + TOBN(0x6735841a, 0xc5ccc2c4), TOBN(0x7d7dc96b, 0x3d9d5069), + TOBN(0xa147e410, 0xfd1754bd), TOBN(0x65296e94, 0xd399ddd5), + TOBN(0xf6b5b2d0, 0xbc8fa5bc), TOBN(0x8a5ead67, 0x500c277b), + TOBN(0x214625e6, 0xdfa08a5d), TOBN(0x51fdfedc, 0x959cf047), + TOBN(0x6bc9430b, 0x289fca32), TOBN(0xe36ff0cf, 0x9d9bdc3f), + TOBN(0x2fe187cb, 0x58ea0ede), TOBN(0xed66af20, 0x5a900b3f), + TOBN(0x00e0968b, 0x5fa9f4d6), TOBN(0x2d4066ce, 0x37a362e7), + TOBN(0xa99a9748, 0xbd07e772), TOBN(0x710989c0, 0x06a4f1d0), + TOBN(0xd5dedf35, 0xce40cbd8), TOBN(0xab55c5f0, 0x1743293d), + TOBN(0x766f1144, 0x8aa24e2c), TOBN(0x94d874f8, 0x605fbcb4), + TOBN(0xa365f0e8, 0xa518001b), TOBN(0xee605eb6, 0x9d04ef0f), + TOBN(0x5a3915cd, 0xba8d4d25), TOBN(0x44c0e1b8, 0xb5113472), + TOBN(0xcbb024e8, 0x8b6740dc), TOBN(0x89087a53, 0xee1d4f0c), + TOBN(0xa88fa05c, 0x1fc4e372), TOBN(0x8bf395cb, 0xaf8b3af2), + TOBN(0x1e71c9a1, 0xdeb8568b), TOBN(0xa35daea0, 0x80fb3d32), + TOBN(0xe8b6f266, 0x2cf8fb81), TOBN(0x6d51afe8, 0x9490696a), + TOBN(0x81beac6e, 0x51803a19), TOBN(0xe3d24b7f, 0x86219080), + TOBN(0x727cfd9d, 0xdf6f463c), TOBN(0x8c6865ca, 0x72284ee8), + TOBN(0x32c88b7d, 0xb743f4ef), TOBN(0x3793909b, 0xe7d11dce), + TOBN(0xd398f922, 0x2ff2ebe8), TOBN(0x2c70ca44, 0xe5e49796), + TOBN(0xdf4d9929, 0xcb1131b1), TOBN(0x7826f298, 0x25888e79), + TOBN(0x4d3a112c, 0xf1d8740a), TOBN(0x00384cb6, 0x270afa8b), + TOBN(0xcb64125b, 0x3ab48095), TOBN(0x3451c256, 0x62d05106), + TOBN(0xd73d577d, 0xa4955845), TOBN(0x39570c16, 0xbf9f4433), + TOBN(0xd7dfaad3, 0xadecf263), TOBN(0xf1c3d8d1, 0xdc76e102), + TOBN(0x5e774a58, 0x54c6a836), TOBN(0xdad4b672, 0x3e92d47b), + TOBN(0xbe7e990f, 0xf0d796a0), TOBN(0x5fc62478, 0xdf0e8b02), + TOBN(0x8aae8bf4, 0x030c00ad), TOBN(0x3d2db93b, 0x9004ba0f), + TOBN(0xe48c8a79, 0xd85d5ddc), TOBN(0xe907caa7, 0x6bb07f34), + TOBN(0x58db343a, 0xa39eaed5), TOBN(0x0ea6e007, 0xadaf5724), + TOBN(0xe00df169, 0xd23233f3), TOBN(0x3e322796, 0x77cb637f), + TOBN(0x1f897c0e, 0x1da0cf6c), TOBN(0xa651f5d8, 0x31d6bbdd), + TOBN(0xdd61af19, 0x1a230c76), TOBN(0xbd527272, 0xcdaa5e4a), + TOBN(0xca753636, 0xd0abcd7e), TOBN(0x78bdd37c, 0x370bd8dc), + TOBN(0xc23916c2, 0x17cd93fe), TOBN(0x65b97a4d, 0xdadce6e2), + TOBN(0xe04ed4eb, 0x174e42f8), TOBN(0x1491ccaa, 0xbb21480a), + TOBN(0x145a8280, 0x23196332), TOBN(0x3c3862d7, 0x587b479a), + TOBN(0x9f4a88a3, 0x01dcd0ed), TOBN(0x4da2b7ef, 0x3ea12f1f), + TOBN(0xf8e7ae33, 0xb126e48e), TOBN(0x404a0b32, 0xf494e237), + TOBN(0x9beac474, 0xc55acadb), TOBN(0x4ee5cf3b, 0xcbec9fd9), + TOBN(0x336b33b9, 0x7df3c8c3), TOBN(0xbd905fe3, 0xb76808fd), + TOBN(0x8f436981, 0xaa45c16a), TOBN(0x255c5bfa, 0x3dd27b62), + TOBN(0x71965cbf, 0xc3dd9b4d), TOBN(0xce23edbf, 0xfc068a87), + TOBN(0xb78d4725, 0x745b029b), TOBN(0x74610713, 0xcefdd9bd), + TOBN(0x7116f75f, 0x1266bf52), TOBN(0x02046722, 0x18e49bb6), + TOBN(0xdf43df9f, 0x3d6f19e3), TOBN(0xef1bc7d0, 0xe685cb2f), + TOBN(0xcddb27c1, 0x7078c432), TOBN(0xe1961b9c, 0xb77fedb7), + TOBN(0x1edc2f5c, 0xc2290570), TOBN(0x2c3fefca, 0x19cbd886), + TOBN(0xcf880a36, 0xc2af389a), TOBN(0x96c610fd, 0xbda71cea), + TOBN(0xf03977a9, 0x32aa8463), TOBN(0x8eb7763f, 0x8586d90a), + TOBN(0x3f342454, 0x2a296e77), TOBN(0xc8718683, 0x42837a35), + TOBN(0x7dc71090, 0x6a09c731), TOBN(0x54778ffb, 0x51b816db), + TOBN(0x6b33bfec, 0xaf06defd), TOBN(0xfe3c105f, 0x8592b70b), + TOBN(0xf937fda4, 0x61da6114), TOBN(0x3c13e651, 0x4c266ad7), + TOBN(0xe363a829, 0x855938e8), TOBN(0x2eeb5d9e, 0x9de54b72), + TOBN(0xbeb93b0e, 0x20ccfab9), TOBN(0x3dffbb5f, 0x25e61a25), + TOBN(0x7f655e43, 0x1acc093d), TOBN(0x0cb6cc3d, 0x3964ce61), + TOBN(0x6ab283a1, 0xe5e9b460), TOBN(0x55d787c5, 0xa1c7e72d), + TOBN(0x4d2efd47, 0xdeadbf02), TOBN(0x11e80219, 0xac459068), + TOBN(0x810c7626, 0x71f311f0), TOBN(0xfa17ef8d, 0x4ab6ef53), + TOBN(0xaf47fd25, 0x93e43bff), TOBN(0x5cb5ff3f, 0x0be40632), + TOBN(0x54687106, 0x8ee61da3), TOBN(0x7764196e, 0xb08afd0f), + TOBN(0x831ab3ed, 0xf0290a8f), TOBN(0xcae81966, 0xcb47c387), + TOBN(0xaad7dece, 0x184efb4f), TOBN(0xdcfc53b3, 0x4749110e), + TOBN(0x6698f23c, 0x4cb632f9), TOBN(0xc42a1ad6, 0xb91f8067), + TOBN(0xb116a81d, 0x6284180a), TOBN(0xebedf5f8, 0xe901326f), + TOBN(0xf2274c9f, 0x97e3e044), TOBN(0x42018520, 0x11d09fc9), + TOBN(0x56a65f17, 0xd18e6e23), TOBN(0x2ea61e2a, 0x352b683c), + TOBN(0x27d291bc, 0x575eaa94), TOBN(0x9e7bc721, 0xb8ff522d), + TOBN(0x5f7268bf, 0xa7f04d6f), TOBN(0x5868c73f, 0xaba41748), + TOBN(0x9f85c2db, 0x7be0eead), TOBN(0x511e7842, 0xff719135), + TOBN(0x5a06b1e9, 0xc5ea90d7), TOBN(0x0c19e283, 0x26fab631), + TOBN(0x8af8f0cf, 0xe9206c55), TOBN(0x89389cb4, 0x3553c06a), + TOBN(0x39dbed97, 0xf65f8004), TOBN(0x0621b037, 0xc508991d), + TOBN(0x1c52e635, 0x96e78cc4), TOBN(0x5385c8b2, 0x0c06b4a8), + TOBN(0xd84ddfdb, 0xb0e87d03), TOBN(0xc49dfb66, 0x934bafad), + TOBN(0x7071e170, 0x59f70772), TOBN(0x3a073a84, 0x3a1db56b), + TOBN(0x03494903, 0x3b8af190), TOBN(0x7d882de3, 0xd32920f0), + TOBN(0x91633f0a, 0xb2cf8940), TOBN(0x72b0b178, 0x6f948f51), + TOBN(0x2d28dc30, 0x782653c8), TOBN(0x88829849, 0xdb903a05), + TOBN(0xb8095d0c, 0x6a19d2bb), TOBN(0x4b9e7f0c, 0x86f782cb), + TOBN(0x7af73988, 0x2d907064), TOBN(0xd12be0fe, 0x8b32643c), + TOBN(0x358ed23d, 0x0e165dc3), TOBN(0x3d47ce62, 0x4e2378ce), + TOBN(0x7e2bb0b9, 0xfeb8a087), TOBN(0x3246e8ae, 0xe29e10b9), + TOBN(0x459f4ec7, 0x03ce2b4d), TOBN(0xe9b4ca1b, 0xbbc077cf), + TOBN(0x2613b4f2, 0x0e9940c1), TOBN(0xfc598bb9, 0x047d1eb1), + TOBN(0x9744c62b, 0x45036099), TOBN(0xa9dee742, 0x167c65d8), + TOBN(0x0c511525, 0xdabe1943), TOBN(0xda110554, 0x93c6c624), + TOBN(0xae00a52c, 0x651a3be2), TOBN(0xcda5111d, 0x884449a6), + TOBN(0x063c06f4, 0xff33bed1), TOBN(0x73baaf9a, 0x0d3d76b4), + TOBN(0x52fb0c9d, 0x7fc63668), TOBN(0x6886c9dd, 0x0c039cde), + TOBN(0x602bd599, 0x55b22351), TOBN(0xb00cab02, 0x360c7c13), + TOBN(0x8cb616bc, 0x81b69442), TOBN(0x41486700, 0xb55c3cee), + TOBN(0x71093281, 0xf49ba278), TOBN(0xad956d9c, 0x64a50710), + TOBN(0x9561f28b, 0x638a7e81), TOBN(0x54155cdf, 0x5980ddc3), + TOBN(0xb2db4a96, 0xd26f247a), TOBN(0x9d774e4e, 0x4787d100), + TOBN(0x1a9e6e2e, 0x078637d2), TOBN(0x1c363e2d, 0x5e0ae06a), + TOBN(0x7493483e, 0xe9cfa354), TOBN(0x76843cb3, 0x7f74b98d), + TOBN(0xbaca6591, 0xd4b66947), TOBN(0xb452ce98, 0x04460a8c), + TOBN(0x6830d246, 0x43768f55), TOBN(0xf4197ed8, 0x7dff12df), + TOBN(0x6521b472, 0x400dd0f7), TOBN(0x59f5ca8f, 0x4b1e7093), + TOBN(0x6feff11b, 0x080338ae), TOBN(0x0ada31f6, 0xa29ca3c6), + TOBN(0x24794eb6, 0x94a2c215), TOBN(0xd83a43ab, 0x05a57ab4), + TOBN(0x264a543a, 0x2a6f89fe), TOBN(0x2c2a3868, 0xdd5ec7c2), + TOBN(0xd3373940, 0x8439d9b2), TOBN(0x715ea672, 0x0acd1f11), + TOBN(0x42c1d235, 0xe7e6cc19), TOBN(0x81ce6e96, 0xb990585c), + TOBN(0x04e5dfe0, 0xd809c7bd), TOBN(0xd7b2580c, 0x8f1050ab), + TOBN(0x6d91ad78, 0xd8a4176f), TOBN(0x0af556ee, 0x4e2e897c), + TOBN(0x162a8b73, 0x921de0ac), TOBN(0x52ac9c22, 0x7ea78400), + TOBN(0xee2a4eea, 0xefce2174), TOBN(0xbe61844e, 0x6d637f79), + TOBN(0x0491f1bc, 0x789a283b), TOBN(0x72d3ac3d, 0x880836f4), + TOBN(0xaa1c5ea3, 0x88e5402d), TOBN(0x1b192421, 0xd5cc473d), + TOBN(0x5c0b9998, 0x9dc84cac), TOBN(0xb0a8482d, 0x9c6e75b8), + TOBN(0x639961d0, 0x3a191ce2), TOBN(0xda3bc865, 0x6d837930), + TOBN(0xca990653, 0x056e6f8f), TOBN(0x84861c41, 0x64d133a7), + TOBN(0x8b403276, 0x746abe40), TOBN(0xb7b4d51a, 0xebf8e303), + TOBN(0x05b43211, 0x220a255d), TOBN(0xc997152c, 0x02419e6e), + TOBN(0x76ff47b6, 0x630c2fea), TOBN(0x50518677, 0x281fdade), + TOBN(0x3283b8ba, 0xcf902b0b), TOBN(0x8d4b4eb5, 0x37db303b), + TOBN(0xcc89f42d, 0x755011bc), TOBN(0xb43d74bb, 0xdd09d19b), + TOBN(0x65746bc9, 0x8adba350), TOBN(0x364eaf8c, 0xb51c1927), + TOBN(0x13c76596, 0x10ad72ec), TOBN(0x30045121, 0xf8d40c20), + TOBN(0x6d2d99b7, 0xea7b979b), TOBN(0xcd78cd74, 0xe6fb3bcd), + TOBN(0x11e45a9e, 0x86cffbfe), TOBN(0x78a61cf4, 0x637024f6), + TOBN(0xd06bc872, 0x3d502295), TOBN(0xf1376854, 0x458cb288), + TOBN(0xb9db26a1, 0x342f8586), TOBN(0xf33effcf, 0x4beee09e), + TOBN(0xd7e0c4cd, 0xb30cfb3a), TOBN(0x6d09b8c1, 0x6c9db4c8), + TOBN(0x40ba1a42, 0x07c8d9df), TOBN(0x6fd495f7, 0x1c52c66d), + TOBN(0xfb0e169f, 0x275264da), TOBN(0x80c2b746, 0xe57d8362), + TOBN(0xedd987f7, 0x49ad7222), TOBN(0xfdc229af, 0x4398ec7b),} + , + {TOBN(0xb0d1ed84, 0x52666a58), TOBN(0x4bcb6e00, 0xe6a9c3c2), + TOBN(0x3c57411c, 0x26906408), TOBN(0xcfc20755, 0x13556400), + TOBN(0xa08b1c50, 0x5294dba3), TOBN(0xa30ba286, 0x8b7dd31e), + TOBN(0xd70ba90e, 0x991eca74), TOBN(0x094e142c, 0xe762c2b9), + TOBN(0xb81d783e, 0x979f3925), TOBN(0x1efd130a, 0xaf4c89a7), + TOBN(0x525c2144, 0xfd1bf7fa), TOBN(0x4b296904, 0x1b265a9e), + TOBN(0xed8e9634, 0xb9db65b6), TOBN(0x35c82e32, 0x03599d8a), + TOBN(0xdaa7a54f, 0x403563f3), TOBN(0x9df088ad, 0x022c38ab), + TOBN(0xe5cfb066, 0xbb3fd30a), TOBN(0x429169da, 0xeff0354e), + TOBN(0x809cf852, 0x3524e36c), TOBN(0x136f4fb3, 0x0155be1d), + TOBN(0x4826af01, 0x1fbba712), TOBN(0x6ef0f0b4, 0x506ba1a1), + TOBN(0xd9928b31, 0x77aea73e), TOBN(0xe2bf6af2, 0x5eaa244e), + TOBN(0x8d084f12, 0x4237b64b), TOBN(0x688ebe99, 0xe3ecfd07), + TOBN(0x57b8a70c, 0xf6845dd8), TOBN(0x808fc59c, 0x5da4a325), + TOBN(0xa9032b2b, 0xa3585862), TOBN(0xb66825d5, 0xedf29386), + TOBN(0xb5a5a8db, 0x431ec29b), TOBN(0xbb143a98, 0x3a1e8dc8), + TOBN(0x35ee94ce, 0x12ae381b), TOBN(0x3a7f176c, 0x86ccda90), + TOBN(0xc63a657e, 0x4606eaca), TOBN(0x9ae5a380, 0x43cd04df), + TOBN(0x9bec8d15, 0xed251b46), TOBN(0x1f5d6d30, 0xcaca5e64), + TOBN(0x347b3b35, 0x9ff20f07), TOBN(0x4d65f034, 0xf7e4b286), + TOBN(0x9e93ba24, 0xf111661e), TOBN(0xedced484, 0xb105eb04), + TOBN(0x96dc9ba1, 0xf424b578), TOBN(0xbf8f66b7, 0xe83e9069), + TOBN(0x872d4df4, 0xd7ed8216), TOBN(0xbf07f377, 0x8e2cbecf), + TOBN(0x4281d899, 0x98e73754), TOBN(0xfec85fbb, 0x8aab8708), + TOBN(0x9a3c0dee, 0xa5ba5b0b), TOBN(0xe6a116ce, 0x42d05299), + TOBN(0xae9775fe, 0xe9b02d42), TOBN(0x72b05200, 0xa1545cb6), + TOBN(0xbc506f7d, 0x31a3b4ea), TOBN(0xe5893078, 0x8bbd9b32), + TOBN(0xc8bc5f37, 0xe4b12a97), TOBN(0x6b000c06, 0x4a73b671), + TOBN(0x13b5bf22, 0x765fa7d0), TOBN(0x59805bf0, 0x1d6a5370), + TOBN(0x67a5e29d, 0x4280db98), TOBN(0x4f53916f, 0x776b1ce3), + TOBN(0x714ff61f, 0x33ddf626), TOBN(0x4206238e, 0xa085d103), + TOBN(0x1c50d4b7, 0xe5809ee3), TOBN(0x999f450d, 0x85f8eb1d), + TOBN(0x658a6051, 0xe4c79e9b), TOBN(0x1394cb73, 0xc66a9fea), + TOBN(0x27f31ed5, 0xc6be7b23), TOBN(0xf4c88f36, 0x5aa6f8fe), + TOBN(0x0fb0721f, 0x4aaa499e), TOBN(0x68b3a7d5, 0xe3fb2a6b), + TOBN(0xa788097d, 0x3a92851d), TOBN(0x060e7f8a, 0xe96f4913), + TOBN(0x82eebe73, 0x1a3a93bc), TOBN(0x42bbf465, 0xa21adc1a), + TOBN(0xc10b6fa4, 0xef030efd), TOBN(0x247aa4c7, 0x87b097bb), + TOBN(0x8b8dc632, 0xf60c77da), TOBN(0x6ffbc26a, 0xc223523e), + TOBN(0xa4f6ff11, 0x344579cf), TOBN(0x5825653c, 0x980250f6), + TOBN(0xb2dd097e, 0xbc1aa2b9), TOBN(0x07889393, 0x37a0333a), + TOBN(0x1cf55e71, 0x37a0db38), TOBN(0x2648487f, 0x792c1613), + TOBN(0xdad01336, 0x3fcef261), TOBN(0x6239c81d, 0x0eabf129), + TOBN(0x8ee761de, 0x9d276be2), TOBN(0x406a7a34, 0x1eda6ad3), + TOBN(0x4bf367ba, 0x4a493b31), TOBN(0x54f20a52, 0x9bf7f026), + TOBN(0xb696e062, 0x9795914b), TOBN(0xcddab96d, 0x8bf236ac), + TOBN(0x4ff2c70a, 0xed25ea13), TOBN(0xfa1d09eb, 0x81cbbbe7), + TOBN(0x88fc8c87, 0x468544c5), TOBN(0x847a670d, 0x696b3317), + TOBN(0xf133421e, 0x64bcb626), TOBN(0xaea638c8, 0x26dee0b5), + TOBN(0xd6e7680b, 0xb310346c), TOBN(0xe06f4097, 0xd5d4ced3), + TOBN(0x09961452, 0x7512a30b), TOBN(0xf3d867fd, 0xe589a59a), + TOBN(0x2e73254f, 0x52d0c180), TOBN(0x9063d8a3, 0x333c74ac), + TOBN(0xeda6c595, 0xd314e7bc), TOBN(0x2ee7464b, 0x467899ed), + TOBN(0x1cef423c, 0x0a1ed5d3), TOBN(0x217e76ea, 0x69cc7613), + TOBN(0x27ccce1f, 0xe7cda917), TOBN(0x12d8016b, 0x8a893f16), + TOBN(0xbcd6de84, 0x9fc74f6b), TOBN(0xfa5817e2, 0xf3144e61), + TOBN(0x1f354164, 0x0821ee4c), TOBN(0x1583eab4, 0x0bc61992), + TOBN(0x7490caf6, 0x1d72879f), TOBN(0x998ad9f3, 0xf76ae7b2), + TOBN(0x1e181950, 0xa41157f7), TOBN(0xa9d7e1e6, 0xe8da3a7e), + TOBN(0x963784eb, 0x8426b95f), TOBN(0x0ee4ed6e, 0x542e2a10), + TOBN(0xb79d4cc5, 0xac751e7b), TOBN(0x93f96472, 0xfd4211bd), + TOBN(0x8c72d3d2, 0xc8de4fc6), TOBN(0x7b69cbf5, 0xdf44f064), + TOBN(0x3da90ca2, 0xf4bf94e1), TOBN(0x1a5325f8, 0xf12894e2), + TOBN(0x0a437f6c, 0x7917d60b), TOBN(0x9be70486, 0x96c9cb5d), + TOBN(0xb4d880bf, 0xe1dc5c05), TOBN(0xd738adda, 0xeebeeb57), + TOBN(0x6f0119d3, 0xdf0fe6a3), TOBN(0x5c686e55, 0x66eaaf5a), + TOBN(0x9cb10b50, 0xdfd0b7ec), TOBN(0xbdd0264b, 0x6a497c21), + TOBN(0xfc093514, 0x8c546c96), TOBN(0x58a947fa, 0x79dbf42a), + TOBN(0xc0b48d4e, 0x49ccd6d7), TOBN(0xff8fb02c, 0x88bd5580), + TOBN(0xc75235e9, 0x07d473b2), TOBN(0x4fab1ac5, 0xa2188af3), + TOBN(0x030fa3bc, 0x97576ec0), TOBN(0xe8c946e8, 0x0b7e7d2f), + TOBN(0x40a5c9cc, 0x70305600), TOBN(0x6d8260a9, 0xc8b013b4), + TOBN(0x0368304f, 0x70bba85c), TOBN(0xad090da1, 0xa4a0d311), + TOBN(0x7170e870, 0x2415eec1), TOBN(0xbfba35fe, 0x8461ea47), + TOBN(0x6279019a, 0xc1e91938), TOBN(0xa47638f3, 0x1afc415f), + TOBN(0x36c65cbb, 0xbcba0e0f), TOBN(0x02160efb, 0x034e2c48), + TOBN(0xe6c51073, 0x615cd9e4), TOBN(0x498ec047, 0xf1243c06), + TOBN(0x3e5a8809, 0xb17b3d8c), TOBN(0x5cd99e61, 0x0cc565f1), + TOBN(0x81e312df, 0x7851dafe), TOBN(0xf156f5ba, 0xa79061e2), + TOBN(0x80d62b71, 0x880c590e), TOBN(0xbec9746f, 0x0a39faa1), + TOBN(0x1d98a9c1, 0xc8ed1f7a), TOBN(0x09e43bb5, 0xa81d5ff2), + TOBN(0xd5f00f68, 0x0da0794a), TOBN(0x412050d9, 0x661aa836), + TOBN(0xa89f7c4e, 0x90747e40), TOBN(0x6dc05ebb, 0xb62a3686), + TOBN(0xdf4de847, 0x308e3353), TOBN(0x53868fbb, 0x9fb53bb9), + TOBN(0x2b09d2c3, 0xcfdcf7dd), TOBN(0x41a9fce3, 0x723fcab4), + TOBN(0x73d905f7, 0x07f57ca3), TOBN(0x080f9fb1, 0xac8e1555), + TOBN(0x7c088e84, 0x9ba7a531), TOBN(0x07d35586, 0xed9a147f), + TOBN(0x602846ab, 0xaf48c336), TOBN(0x7320fd32, 0x0ccf0e79), + TOBN(0xaa780798, 0xb18bd1ff), TOBN(0x52c2e300, 0xafdd2905), + TOBN(0xf27ea3d6, 0x434267cd), TOBN(0x8b96d16d, 0x15605b5f), + TOBN(0x7bb31049, 0x4b45706b), TOBN(0xe7f58b8e, 0x743d25f8), + TOBN(0xe9b5e45b, 0x87f30076), TOBN(0xd19448d6, 0x5d053d5a), + TOBN(0x1ecc8cb9, 0xd3210a04), TOBN(0x6bc7d463, 0xdafb5269), + TOBN(0x3e59b10a, 0x67c3489f), TOBN(0x1769788c, 0x65641e1b), + TOBN(0x8a53b82d, 0xbd6cb838), TOBN(0x7066d6e6, 0x236d5f22), + TOBN(0x03aa1c61, 0x6908536e), TOBN(0xc971da0d, 0x66ae9809), + TOBN(0x01b3a86b, 0xc49a2fac), TOBN(0x3b8420c0, 0x3092e77a), + TOBN(0x02057300, 0x7d6fb556), TOBN(0x6941b2a1, 0xbff40a87), + TOBN(0x140b6308, 0x0658ff2a), TOBN(0x87804363, 0x3424ab36), + TOBN(0x0253bd51, 0x5751e299), TOBN(0xc75bcd76, 0x449c3e3a), + TOBN(0x92eb4090, 0x7f8f875d), TOBN(0x9c9d754e, 0x56c26bbf), + TOBN(0x158cea61, 0x8110bbe7), TOBN(0x62a6b802, 0x745f91ea), + TOBN(0xa79c41aa, 0xc6e7394b), TOBN(0x445b6a83, 0xad57ef10), + TOBN(0x0c5277eb, 0x6ea6f40c), TOBN(0x319fe96b, 0x88633365), + TOBN(0x0b0fc61f, 0x385f63cb), TOBN(0x41250c84, 0x22bdd127), + TOBN(0x67d153f1, 0x09e942c2), TOBN(0x60920d08, 0xc021ad5d), + TOBN(0x229f5746, 0x724d81a5), TOBN(0xb7ffb892, 0x5bba3299), + TOBN(0x518c51a1, 0xde413032), TOBN(0x2a9bfe77, 0x3c2fd94c), + TOBN(0xcbcde239, 0x3191f4fd), TOBN(0x43093e16, 0xd3d6ada1), + TOBN(0x184579f3, 0x58769606), TOBN(0x2c94a8b3, 0xd236625c), + TOBN(0x6922b9c0, 0x5c437d8e), TOBN(0x3d4ae423, 0xd8d9f3c8), + TOBN(0xf72c31c1, 0x2e7090a2), TOBN(0x4ac3f5f3, 0xd76a55bd), + TOBN(0x342508fc, 0x6b6af991), TOBN(0x0d527100, 0x1b5cebbd), + TOBN(0xb84740d0, 0xdd440dd7), TOBN(0x748ef841, 0x780162fd), + TOBN(0xa8dbfe0e, 0xdfc6fafb), TOBN(0xeadfdf05, 0xf7300f27), + TOBN(0x7d06555f, 0xfeba4ec9), TOBN(0x12c56f83, 0x9e25fa97), + TOBN(0x77f84203, 0xd39b8c34), TOBN(0xed8b1be6, 0x3125eddb), + TOBN(0x5bbf2441, 0xf6e39dc5), TOBN(0xb00f6ee6, 0x6a5d678a), + TOBN(0xba456ecf, 0x57d0ea99), TOBN(0xdcae0f58, 0x17e06c43), + TOBN(0x01643de4, 0x0f5b4baa), TOBN(0x2c324341, 0xd161b9be), + TOBN(0x80177f55, 0xe126d468), TOBN(0xed325f1f, 0x76748e09), + TOBN(0x6116004a, 0xcfa9bdc2), TOBN(0x2d8607e6, 0x3a9fb468), + TOBN(0x0e573e27, 0x6009d660), TOBN(0x3a525d2e, 0x8d10c5a1), + TOBN(0xd26cb45c, 0x3b9009a0), TOBN(0xb6b0cdc0, 0xde9d7448), + TOBN(0x949c9976, 0xe1337c26), TOBN(0x6faadebd, 0xd73d68e5), + TOBN(0x9e158614, 0xf1b768d9), TOBN(0x22dfa557, 0x9cc4f069), + TOBN(0xccd6da17, 0xbe93c6d6), TOBN(0x24866c61, 0xa504f5b9), + TOBN(0x2121353c, 0x8d694da1), TOBN(0x1c6ca580, 0x0140b8c6), + TOBN(0xc245ad8c, 0xe964021e), TOBN(0xb83bffba, 0x032b82b3), + TOBN(0xfaa220c6, 0x47ef9898), TOBN(0x7e8d3ac6, 0x982c948a), + TOBN(0x1faa2091, 0xbc2d124a), TOBN(0xbd54c3dd, 0x05b15ff4), + TOBN(0x386bf3ab, 0xc87c6fb7), TOBN(0xfb2b0563, 0xfdeb6f66), + TOBN(0x4e77c557, 0x5b45afb4), TOBN(0xe9ded649, 0xefb8912d), + TOBN(0x7ec9bbf5, 0x42f6e557), TOBN(0x2570dfff, 0x62671f00), + TOBN(0x2b3bfb78, 0x88e084bd), TOBN(0xa024b238, 0xf37fe5b4), + TOBN(0x44e7dc04, 0x95649aee), TOBN(0x498ca255, 0x5e7ec1d8), + TOBN(0x3bc766ea, 0xaaa07e86), TOBN(0x0db6facb, 0xf3608586), + TOBN(0xbadd2549, 0xbdc259c8), TOBN(0x95af3c6e, 0x041c649f), + TOBN(0xb36a928c, 0x02e30afb), TOBN(0x9b5356ad, 0x008a88b8), + TOBN(0x4b67a5f1, 0xcf1d9e9d), TOBN(0xc6542e47, 0xa5d8d8ce), + TOBN(0x73061fe8, 0x7adfb6cc), TOBN(0xcc826fd3, 0x98678141), + TOBN(0x00e758b1, 0x3c80515a), TOBN(0x6afe3247, 0x41485083), + TOBN(0x0fcb08b9, 0xb6ae8a75), TOBN(0xb8cf388d, 0x4acf51e1), + TOBN(0x344a5560, 0x6961b9d6), TOBN(0x1a6778b8, 0x6a97fd0c), + TOBN(0xd840fdc1, 0xecc4c7e3), TOBN(0xde9fe47d, 0x16db68cc), + TOBN(0xe95f89de, 0xa3e216aa), TOBN(0x84f1a6a4, 0x9594a8be), + TOBN(0x7ddc7d72, 0x5a7b162b), TOBN(0xc5cfda19, 0xadc817a3), + TOBN(0x80a5d350, 0x78b58d46), TOBN(0x93365b13, 0x82978f19), + TOBN(0x2e44d225, 0x26a1fc90), TOBN(0x0d6d10d2, 0x4d70705d), + TOBN(0xd94b6b10, 0xd70c45f4), TOBN(0x0f201022, 0xb216c079), + TOBN(0xcec966c5, 0x658fde41), TOBN(0xa8d2bc7d, 0x7e27601d), + TOBN(0xbfcce3e1, 0xff230be7), TOBN(0x3394ff6b, 0x0033ffb5), + TOBN(0xd890c509, 0x8132c9af), TOBN(0xaac4b0eb, 0x361e7868), + TOBN(0x5194ded3, 0xe82d15aa), TOBN(0x4550bd2e, 0x23ae6b7d), + TOBN(0x3fda318e, 0xea5399d4), TOBN(0xd989bffa, 0x91638b80), + TOBN(0x5ea124d0, 0xa14aa12d), TOBN(0x1fb1b899, 0x3667b944), + TOBN(0x95ec7969, 0x44c44d6a), TOBN(0x91df144a, 0x57e86137), + TOBN(0x915fd620, 0x73adac44), TOBN(0x8f01732d, 0x59a83801), + TOBN(0xec579d25, 0x3aa0a633), TOBN(0x06de5e7c, 0xc9d6d59c), + TOBN(0xc132f958, 0xb1ef8010), TOBN(0x29476f96, 0xe65c1a02), + TOBN(0x336a77c0, 0xd34c3565), TOBN(0xef1105b2, 0x1b9f1e9e), + TOBN(0x63e6d08b, 0xf9e08002), TOBN(0x9aff2f21, 0xc613809e), + TOBN(0xb5754f85, 0x3a80e75d), TOBN(0xde71853e, 0x6bbda681), + TOBN(0x86f041df, 0x8197fd7a), TOBN(0x8b332e08, 0x127817fa), + TOBN(0x05d99be8, 0xb9c20cda), TOBN(0x89f7aad5, 0xd5cd0c98), + TOBN(0x7ef936fe, 0x5bb94183), TOBN(0x92ca0753, 0xb05cd7f2), + TOBN(0x9d65db11, 0x74a1e035), TOBN(0x02628cc8, 0x13eaea92), + TOBN(0xf2d9e242, 0x49e4fbf2), TOBN(0x94fdfd9b, 0xe384f8b7), + TOBN(0x65f56054, 0x63428c6b), TOBN(0x2f7205b2, 0x90b409a5), + TOBN(0xf778bb78, 0xff45ae11), TOBN(0xa13045be, 0xc5ee53b2), + TOBN(0xe00a14ff, 0x03ef77fe), TOBN(0x689cd59f, 0xffef8bef), + TOBN(0x3578f0ed, 0x1e9ade22), TOBN(0xe99f3ec0, 0x6268b6a8), + TOBN(0xa2057d91, 0xea1b3c3e), TOBN(0x2d1a7053, 0xb8823a4a), + TOBN(0xabbb336a, 0x2cca451e), TOBN(0xcd2466e3, 0x2218bb5d), + TOBN(0x3ac1f42f, 0xc8cb762d), TOBN(0x7e312aae, 0x7690211f), + TOBN(0xebb9bd73, 0x45d07450), TOBN(0x207c4b82, 0x46c2213f), + TOBN(0x99d425c1, 0x375913ec), TOBN(0x94e45e96, 0x67908220), + TOBN(0xc08f3087, 0xcd67dbf6), TOBN(0xa5670fbe, 0xc0887056), + TOBN(0x6717b64a, 0x66f5b8fc), TOBN(0xd5a56aea, 0x786fec28), + TOBN(0xa8c3f55f, 0xc0ff4952), TOBN(0xa77fefae, 0x457ac49b), + TOBN(0x29882d7c, 0x98379d44), TOBN(0xd000bdfb, 0x509edc8a), + TOBN(0xc6f95979, 0xe66fe464), TOBN(0x504a6115, 0xfa61bde0), + TOBN(0x56b3b871, 0xeffea31a), TOBN(0x2d3de26d, 0xf0c21a54), + TOBN(0x21dbff31, 0x834753bf), TOBN(0xe67ecf49, 0x69269d86), + TOBN(0x7a176952, 0x151fe690), TOBN(0x03515804, 0x7f2adb5f), + TOBN(0xee794b15, 0xd1b62a8d), TOBN(0xf004ceec, 0xaae454e6), + TOBN(0x0897ea7c, 0xf0386fac), TOBN(0x3b62ff12, 0xd1fca751), + TOBN(0x154181df, 0x1b7a04ec), TOBN(0x2008e04a, 0xfb5847ec), + TOBN(0xd147148e, 0x41dbd772), TOBN(0x2b419f73, 0x22942654), + TOBN(0x669f30d3, 0xe9c544f7), TOBN(0x52a2c223, 0xc8540149), + TOBN(0x5da9ee14, 0x634dfb02), TOBN(0x5f074ff0, 0xf47869f3), + TOBN(0x74ee878d, 0xa3933acc), TOBN(0xe6510651, 0x4fe35ed1), + TOBN(0xb3eb9482, 0xf1012e7a), TOBN(0x51013cc0, 0xa8a566ae), + TOBN(0xdd5e9243, 0x47c00d3b), TOBN(0x7fde089d, 0x946bb0e5), + TOBN(0x030754fe, 0xc731b4b3), TOBN(0x12a136a4, 0x99fda062), + TOBN(0x7c1064b8, 0x5a1a35bc), TOBN(0xbf1f5763, 0x446c84ef), + TOBN(0xed29a56d, 0xa16d4b34), TOBN(0x7fba9d09, 0xdca21c4f), + TOBN(0x66d7ac00, 0x6d8de486), TOBN(0x60061987, 0x73a2a5e1), + TOBN(0x8b400f86, 0x9da28ff0), TOBN(0x3133f708, 0x43c4599c), + TOBN(0x9911c9b8, 0xee28cb0d), TOBN(0xcd7e2874, 0x8e0af61d), + TOBN(0x5a85f0f2, 0x72ed91fc), TOBN(0x85214f31, 0x9cd4a373), + TOBN(0x881fe5be, 0x1925253c), TOBN(0xd8dc98e0, 0x91e8bc76), + TOBN(0x7120affe, 0x585cc3a2), TOBN(0x724952ed, 0x735bf97a), + TOBN(0x5581e7dc, 0x3eb34581), TOBN(0x5cbff4f2, 0xe52ee57d), + TOBN(0x8d320a0e, 0x87d8cc7b), TOBN(0x9beaa7f3, 0xf1d280d0), + TOBN(0x7a0b9571, 0x9beec704), TOBN(0x9126332e, 0x5b7f0057), + TOBN(0x01fbc1b4, 0x8ed3bd6d), TOBN(0x35bb2c12, 0xd945eb24), + TOBN(0x6404694e, 0x9a8ae255), TOBN(0xb6092eec, 0x8d6abfb3), + TOBN(0x4d76143f, 0xcc058865), TOBN(0x7b0a5af2, 0x6e249922), + TOBN(0x8aef9440, 0x6a50d353), TOBN(0xe11e4bcc, 0x64f0e07a), + TOBN(0x4472993a, 0xa14a90fa), TOBN(0x7706e20c, 0xba0c51d4), + TOBN(0xf403292f, 0x1532672d), TOBN(0x52573bfa, 0x21829382), + TOBN(0x6a7bb6a9, 0x3b5bdb83), TOBN(0x08da65c0, 0xa4a72318), + TOBN(0xc58d22aa, 0x63eb065f), TOBN(0x1717596c, 0x1b15d685), + TOBN(0x112df0d0, 0xb266d88b), TOBN(0xf688ae97, 0x5941945a), + TOBN(0x487386e3, 0x7c292cac), TOBN(0x42f3b50d, 0x57d6985c), + TOBN(0x6da4f998, 0x6a90fc34), TOBN(0xc8f257d3, 0x65ca8a8d), + TOBN(0xc2feabca, 0x6951f762), TOBN(0xe1bc81d0, 0x74c323ac), + TOBN(0x1bc68f67, 0x251a2a12), TOBN(0x10d86587, 0xbe8a70dc), + TOBN(0xd648af7f, 0xf0f84d2e), TOBN(0xf0aa9ebc, 0x6a43ac92), + TOBN(0x69e3be04, 0x27596893), TOBN(0xb6bb02a6, 0x45bf452b), + TOBN(0x0875c11a, 0xf4c698c8), TOBN(0x6652b5c7, 0xbece3794), + TOBN(0x7b3755fd, 0x4f5c0499), TOBN(0x6ea16558, 0xb5532b38), + TOBN(0xd1c69889, 0xa2e96ef7), TOBN(0x9c773c3a, 0x61ed8f48), + TOBN(0x2b653a40, 0x9b323abc), TOBN(0xe26605e1, 0xf0e1d791), + TOBN(0x45d41064, 0x4a87157a), TOBN(0x8f9a78b7, 0xcbbce616), + TOBN(0xcf1e44aa, 0xc407eddd), TOBN(0x81ddd1d8, 0xa35b964f), + TOBN(0x473e339e, 0xfd083999), TOBN(0x6c94bdde, 0x8e796802), + TOBN(0x5a304ada, 0x8545d185), TOBN(0x82ae44ea, 0x738bb8cb), + TOBN(0x628a35e3, 0xdf87e10e), TOBN(0xd3624f3d, 0xa15b9fe3), + TOBN(0xcc44209b, 0x14be4254), TOBN(0x7d0efcbc, 0xbdbc2ea5), + TOBN(0x1f603362, 0x04c37bbe), TOBN(0x21f363f5, 0x56a5852c), + TOBN(0xa1503d1c, 0xa8501550), TOBN(0x2251e0e1, 0xd8ab10bb), + TOBN(0xde129c96, 0x6961c51c), TOBN(0x1f7246a4, 0x81910f68), + TOBN(0x2eb744ee, 0x5f2591f2), TOBN(0x3c47d33f, 0x5e627157), + TOBN(0x4d6d62c9, 0x22f3bd68), TOBN(0x6120a64b, 0xcb8df856), + TOBN(0x3a9ac6c0, 0x7b5d07df), TOBN(0xa92b9558, 0x7ef39783), + TOBN(0xe128a134, 0xab3a9b4f), TOBN(0x41c18807, 0xb1252f05), + TOBN(0xfc7ed089, 0x80ba9b1c), TOBN(0xac8dc6de, 0xc532a9dd), + TOBN(0xbf829cef, 0x55246809), TOBN(0x101b784f, 0x5b4ee80f), + TOBN(0xc09945bb, 0xb6f11603), TOBN(0x57b09dbe, 0x41d2801e), + TOBN(0xfba5202f, 0xa97534a8), TOBN(0x7fd8ae5f, 0xc17b9614), + TOBN(0xa50ba666, 0x78308435), TOBN(0x9572f77c, 0xd3868c4d), + TOBN(0x0cef7bfd, 0x2dd7aab0), TOBN(0xe7958e08, 0x2c7c79ff), + TOBN(0x81262e42, 0x25346689), TOBN(0x716da290, 0xb07c7004), + TOBN(0x35f911ea, 0xb7950ee3), TOBN(0x6fd72969, 0x261d21b5), + TOBN(0x52389803, 0x08b640d3), TOBN(0x5b0026ee, 0x887f12a1), + TOBN(0x20e21660, 0x742e9311), TOBN(0x0ef6d541, 0x5ff77ff7), + TOBN(0x969127f0, 0xf9c41135), TOBN(0xf21d60c9, 0x68a64993), + TOBN(0x656e5d0c, 0xe541875c), TOBN(0xf1e0f84e, 0xa1d3c233), + TOBN(0x9bcca359, 0x06002d60), TOBN(0xbe2da60c, 0x06191552), + TOBN(0x5da8bbae, 0x61181ec3), TOBN(0x9f04b823, 0x65806f19), + TOBN(0xf1604a7d, 0xd4b79bb8), TOBN(0xaee806fb, 0x52c878c8), + TOBN(0x34144f11, 0x8d47b8e8), TOBN(0x72edf52b, 0x949f9054), + TOBN(0xebfca84e, 0x2127015a), TOBN(0x9051d0c0, 0x9cb7cef3), + TOBN(0x86e8fe58, 0x296deec8), TOBN(0x33b28188, 0x41010d74),} + , + {TOBN(0x01079383, 0x171b445f), TOBN(0x9bcf21e3, 0x8131ad4c), + TOBN(0x8cdfe205, 0xc93987e8), TOBN(0xe63f4152, 0xc92e8c8f), + TOBN(0x729462a9, 0x30add43d), TOBN(0x62ebb143, 0xc980f05a), + TOBN(0x4f3954e5, 0x3b06e968), TOBN(0xfe1d75ad, 0x242cf6b1), + TOBN(0x5f95c6c7, 0xaf8685c8), TOBN(0xd4c1c8ce, 0x2f8f01aa), + TOBN(0xc44bbe32, 0x2574692a), TOBN(0xb8003478, 0xd4a4a068), + TOBN(0x7c8fc6e5, 0x2eca3cdb), TOBN(0xea1db16b, 0xec04d399), + TOBN(0xb05bc82e, 0x8f2bc5cf), TOBN(0x763d517f, 0xf44793d2), + TOBN(0x4451c1b8, 0x08bd98d0), TOBN(0x644b1cd4, 0x6575f240), + TOBN(0x6907eb33, 0x7375d270), TOBN(0x56c8bebd, 0xfa2286bd), + TOBN(0xc713d2ac, 0xc4632b46), TOBN(0x17da427a, 0xafd60242), + TOBN(0x313065b7, 0xc95c7546), TOBN(0xf8239898, 0xbf17a3de), + TOBN(0xf3b7963f, 0x4c830320), TOBN(0x842c7aa0, 0x903203e3), + TOBN(0xaf22ca0a, 0xe7327afb), TOBN(0x38e13092, 0x967609b6), + TOBN(0x73b8fb62, 0x757558f1), TOBN(0x3cc3e831, 0xf7eca8c1), + TOBN(0xe4174474, 0xf6331627), TOBN(0xa77989ca, 0xc3c40234), + TOBN(0xe5fd17a1, 0x44a081e0), TOBN(0xd797fb7d, 0xb70e296a), + TOBN(0x2b472b30, 0x481f719c), TOBN(0x0e632a98, 0xfe6f8c52), + TOBN(0x89ccd116, 0xc5f0c284), TOBN(0xf51088af, 0x2d987c62), + TOBN(0x2a2bccda, 0x4c2de6cf), TOBN(0x810f9efe, 0xf679f0f9), + TOBN(0xb0f394b9, 0x7ffe4b3e), TOBN(0x0b691d21, 0xe5fa5d21), + TOBN(0xb0bd7747, 0x9dfbbc75), TOBN(0xd2830fda, 0xfaf78b00), + TOBN(0xf78c249c, 0x52434f57), TOBN(0x4b1f7545, 0x98096dab), + TOBN(0x73bf6f94, 0x8ff8c0b3), TOBN(0x34aef03d, 0x454e134c), + TOBN(0xf8d151f4, 0xb7ac7ec5), TOBN(0xd6ceb95a, 0xe50da7d5), + TOBN(0xa1b492b0, 0xdc3a0eb8), TOBN(0x75157b69, 0xb3dd2863), + TOBN(0xe2c4c74e, 0xc5413d62), TOBN(0xbe329ff7, 0xbc5fc4c7), + TOBN(0x835a2aea, 0x60fa9dda), TOBN(0xf117f5ad, 0x7445cb87), + TOBN(0xae8317f4, 0xb0166f7a), TOBN(0xfbd3e3f7, 0xceec74e6), + TOBN(0xfdb516ac, 0xe0874bfd), TOBN(0x3d846019, 0xc681f3a3), + TOBN(0x0b12ee5c, 0x7c1620b0), TOBN(0xba68b4dd, 0x2b63c501), + TOBN(0xac03cd32, 0x6668c51e), TOBN(0x2a6279f7, 0x4e0bcb5b), + TOBN(0x17bd69b0, 0x6ae85c10), TOBN(0x72946979, 0x1dfdd3a6), + TOBN(0xd9a03268, 0x2c078bec), TOBN(0x41c6a658, 0xbfd68a52), + TOBN(0xcdea1024, 0x0e023900), TOBN(0xbaeec121, 0xb10d144d), + TOBN(0x5a600e74, 0x058ab8dc), TOBN(0x1333af21, 0xbb89ccdd), + TOBN(0xdf25eae0, 0x3aaba1f1), TOBN(0x2cada16e, 0x3b7144cf), + TOBN(0x657ee27d, 0x71ab98bc), TOBN(0x99088b4c, 0x7a6fc96e), + TOBN(0x05d5c0a0, 0x3549dbd4), TOBN(0x42cbdf8f, 0xf158c3ac), + TOBN(0x3fb6b3b0, 0x87edd685), TOBN(0x22071cf6, 0x86f064d0), + TOBN(0xd2d6721f, 0xff2811e5), TOBN(0xdb81b703, 0xfe7fae8c), + TOBN(0x3cfb74ef, 0xd3f1f7bb), TOBN(0x0cdbcd76, 0x16cdeb5d), + TOBN(0x4f39642a, 0x566a808c), TOBN(0x02b74454, 0x340064d6), + TOBN(0xfabbadca, 0x0528fa6f), TOBN(0xe4c3074c, 0xd3fc0bb6), + TOBN(0xb32cb8b0, 0xb796d219), TOBN(0xc3e95f4f, 0x34741dd9), + TOBN(0x87212125, 0x68edf6f5), TOBN(0x7a03aee4, 0xa2b9cb8e), + TOBN(0x0cd3c376, 0xf53a89aa), TOBN(0x0d8af9b1, 0x948a28dc), + TOBN(0xcf86a3f4, 0x902ab04f), TOBN(0x8aacb62a, 0x7f42002d), + TOBN(0x106985eb, 0xf62ffd52), TOBN(0xe670b54e, 0x5797bf10), + TOBN(0x4b405209, 0xc5e30aef), TOBN(0x12c97a20, 0x4365b5e9), + TOBN(0x104646ce, 0x1fe32093), TOBN(0x13cb4ff6, 0x3907a8c9), + TOBN(0x8b9f30d1, 0xd46e726b), TOBN(0xe1985e21, 0xaba0f499), + TOBN(0xc573dea9, 0x10a230cd), TOBN(0x24f46a93, 0xcd30f947), + TOBN(0xf2623fcf, 0xabe2010a), TOBN(0x3f278cb2, 0x73f00e4f), + TOBN(0xed55c67d, 0x50b920eb), TOBN(0xf1cb9a2d, 0x8e760571), + TOBN(0x7c50d109, 0x0895b709), TOBN(0x4207cf07, 0x190d4369), + TOBN(0x3b027e81, 0xc4127fe1), TOBN(0xa9f8b9ad, 0x3ae9c566), + TOBN(0x5ab10851, 0xacbfbba5), TOBN(0xa747d648, 0x569556f5), + TOBN(0xcc172b5c, 0x2ba97bf7), TOBN(0x15e0f77d, 0xbcfa3324), + TOBN(0xa345b797, 0x7686279d), TOBN(0x5a723480, 0xe38003d3), + TOBN(0xfd8e139f, 0x8f5fcda8), TOBN(0xf3e558c4, 0xbdee5bfd), + TOBN(0xd76cbaf4, 0xe33f9f77), TOBN(0x3a4c97a4, 0x71771969), + TOBN(0xda27e84b, 0xf6dce6a7), TOBN(0xff373d96, 0x13e6c2d1), + TOBN(0xf115193c, 0xd759a6e9), TOBN(0x3f9b7025, 0x63d2262c), + TOBN(0xd9764a31, 0x317cd062), TOBN(0x30779d8e, 0x199f8332), + TOBN(0xd8074106, 0x16b11b0b), TOBN(0x7917ab9f, 0x78aeaed8), + TOBN(0xb67a9cbe, 0x28fb1d8e), TOBN(0x2e313563, 0x136eda33), + TOBN(0x010b7069, 0xa371a86c), TOBN(0x44d90fa2, 0x6744e6b7), + TOBN(0x68190867, 0xd6b3e243), TOBN(0x9fe6cd9d, 0x59048c48), + TOBN(0xb900b028, 0x95731538), TOBN(0xa012062f, 0x32cae04f), + TOBN(0x8107c8bc, 0x9399d082), TOBN(0x47e8c54a, 0x41df12e2), + TOBN(0x14ba5117, 0xb6ef3f73), TOBN(0x22260bea, 0x81362f0b), + TOBN(0x90ea261e, 0x1a18cc20), TOBN(0x2192999f, 0x2321d636), + TOBN(0xef64d314, 0xe311b6a0), TOBN(0xd7401e4c, 0x3b54a1f5), + TOBN(0x19019983, 0x6fbca2ba), TOBN(0x46ad3293, 0x8fbffc4b), + TOBN(0xa142d3f6, 0x3786bf40), TOBN(0xeb5cbc26, 0xb67039fc), + TOBN(0x9cb0ae6c, 0x252bd479), TOBN(0x05e0f88a, 0x12b5848f), + TOBN(0x78f6d2b2, 0xa5c97663), TOBN(0x6f6e149b, 0xc162225c), + TOBN(0xe602235c, 0xde601a89), TOBN(0xd17bbe98, 0xf373be1f), + TOBN(0xcaf49a5b, 0xa8471827), TOBN(0x7e1a0a85, 0x18aaa116), + TOBN(0x6c833196, 0x270580c3), TOBN(0x1e233839, 0xf1c98a14), + TOBN(0x67b2f7b4, 0xae34e0a5), TOBN(0x47ac8745, 0xd8ce7289), + TOBN(0x2b74779a, 0x100dd467), TOBN(0x274a4337, 0x4ee50d09), + TOBN(0x603dcf13, 0x83608bc9), TOBN(0xcd9da6c3, 0xc89e8388), + TOBN(0x2660199f, 0x355116ac), TOBN(0xcc38bb59, 0xb6d18eed), + TOBN(0x3075f31f, 0x2f4bc071), TOBN(0x9774457f, 0x265dc57e), + TOBN(0x06a6a9c8, 0xc6db88bb), TOBN(0x6429d07f, 0x4ec98e04), + TOBN(0x8d05e57b, 0x05ecaa8b), TOBN(0x20f140b1, 0x7872ea7b), + TOBN(0xdf8c0f09, 0xca494693), TOBN(0x48d3a020, 0xf252e909), + TOBN(0x4c5c29af, 0x57b14b12), TOBN(0x7e6fa37d, 0xbf47ad1c), + TOBN(0x66e7b506, 0x49a0c938), TOBN(0xb72c0d48, 0x6be5f41f), + TOBN(0x6a6242b8, 0xb2359412), TOBN(0xcd35c774, 0x8e859480), + TOBN(0x12536fea, 0x87baa627), TOBN(0x58c1fec1, 0xf72aa680), + TOBN(0x6c29b637, 0x601e5dc9), TOBN(0x9e3c3c1c, 0xde9e01b9), + TOBN(0xefc8127b, 0x2bcfe0b0), TOBN(0x35107102, 0x2a12f50d), + TOBN(0x6ccd6cb1, 0x4879b397), TOBN(0xf792f804, 0xf8a82f21), + TOBN(0x509d4804, 0xa9b46402), TOBN(0xedddf85d, 0xc10f0850), + TOBN(0x928410dc, 0x4b6208aa), TOBN(0xf6229c46, 0x391012dc), + TOBN(0xc5a7c41e, 0x7727b9b6), TOBN(0x289e4e4b, 0xaa444842), + TOBN(0x049ba1d9, 0xe9a947ea), TOBN(0x44f9e47f, 0x83c8debc), + TOBN(0xfa77a1fe, 0x611f8b8e), TOBN(0xfd2e416a, 0xf518f427), + TOBN(0xc5fffa70, 0x114ebac3), TOBN(0xfe57c4e9, 0x5d89697b), + TOBN(0xfdd053ac, 0xb1aaf613), TOBN(0x31df210f, 0xea585a45), + TOBN(0x318cc10e, 0x24985034), TOBN(0x1a38efd1, 0x5f1d6130), + TOBN(0xbf86f237, 0x0b1e9e21), TOBN(0xb258514d, 0x1dbe88aa), + TOBN(0x1e38a588, 0x90c1baf9), TOBN(0x2936a01e, 0xbdb9b692), + TOBN(0xd576de98, 0x6dd5b20c), TOBN(0xb586bf71, 0x70f98ecf), + TOBN(0xcccf0f12, 0xc42d2fd7), TOBN(0x8717e61c, 0xfb35bd7b), + TOBN(0x8b1e5722, 0x35e6fc06), TOBN(0x3477728f, 0x0b3e13d5), + TOBN(0x150c294d, 0xaa8a7372), TOBN(0xc0291d43, 0x3bfa528a), + TOBN(0xc6c8bc67, 0xcec5a196), TOBN(0xdeeb31e4, 0x5c2e8a7c), + TOBN(0xba93e244, 0xfb6e1c51), TOBN(0xb9f8b71b, 0x2e28e156), + TOBN(0xce65a287, 0x968a2ab9), TOBN(0xe3c5ce69, 0x46bbcb1f), + TOBN(0xf8c835b9, 0xe7ae3f30), TOBN(0x16bbee26, 0xff72b82b), + TOBN(0x665e2017, 0xfd42cd22), TOBN(0x1e139970, 0xf8b1d2a0), + TOBN(0x125cda29, 0x79204932), TOBN(0x7aee94a5, 0x49c3bee5), + TOBN(0x68c70160, 0x89821a66), TOBN(0xf7c37678, 0x8f981669), + TOBN(0xd90829fc, 0x48cc3645), TOBN(0x346af049, 0xd70addfc), + TOBN(0x2057b232, 0x370bf29c), TOBN(0xf90c73ce, 0x42e650ee), + TOBN(0xe03386ea, 0xa126ab90), TOBN(0x0e266e7e, 0x975a087b), + TOBN(0x80578eb9, 0x0fca65d9), TOBN(0x7e2989ea, 0x16af45b8), + TOBN(0x7438212d, 0xcac75a4e), TOBN(0x38c7ca39, 0x4fef36b8), + TOBN(0x8650c494, 0xd402676a), TOBN(0x26ab5a66, 0xf72c7c48), + TOBN(0x4e6cb426, 0xce3a464e), TOBN(0xf8f99896, 0x2b72f841), + TOBN(0x8c318491, 0x1a335cc8), TOBN(0x563459ba, 0x6a5913e4), + TOBN(0x1b920d61, 0xc7b32919), TOBN(0x805ab8b6, 0xa02425ad), + TOBN(0x2ac512da, 0x8d006086), TOBN(0x6ca4846a, 0xbcf5c0fd), + TOBN(0xafea51d8, 0xac2138d7), TOBN(0xcb647545, 0x344cd443), + TOBN(0x0429ee8f, 0xbd7d9040), TOBN(0xee66a2de, 0x819b9c96), + TOBN(0x54f9ec25, 0xdea7d744), TOBN(0x2ffea642, 0x671721bb), + TOBN(0x4f19dbd1, 0x114344ea), TOBN(0x04304536, 0xfd0dbc8b), + TOBN(0x014b50aa, 0x29ec7f91), TOBN(0xb5fc22fe, 0xbb06014d), + TOBN(0x60d963a9, 0x1ee682e0), TOBN(0xdf48abc0, 0xfe85c727), + TOBN(0x0cadba13, 0x2e707c2d), TOBN(0xde608d3a, 0xa645aeff), + TOBN(0x05f1c28b, 0xedafd883), TOBN(0x3c362ede, 0xbd94de1f), + TOBN(0x8dd0629d, 0x13593e41), TOBN(0x0a5e736f, 0x766d6eaf), + TOBN(0xbfa92311, 0xf68cf9d1), TOBN(0xa4f9ef87, 0xc1797556), + TOBN(0x10d75a1f, 0x5601c209), TOBN(0x651c374c, 0x09b07361), + TOBN(0x49950b58, 0x88b5cead), TOBN(0x0ef00058, 0x6fa9dbaa), + TOBN(0xf51ddc26, 0x4e15f33a), TOBN(0x1f8b5ca6, 0x2ef46140), + TOBN(0x343ac0a3, 0xee9523f0), TOBN(0xbb75eab2, 0x975ea978), + TOBN(0x1bccf332, 0x107387f4), TOBN(0x790f9259, 0x9ab0062e), + TOBN(0xf1a363ad, 0x1e4f6a5f), TOBN(0x06e08b84, 0x62519a50), + TOBN(0x60915187, 0x7265f1ee), TOBN(0x6a80ca34, 0x93ae985e), + TOBN(0x81b29768, 0xaaba4864), TOBN(0xb13cabf2, 0x8d52a7d6), + TOBN(0xb5c36348, 0x8ead03f1), TOBN(0xc932ad95, 0x81c7c1c0), + TOBN(0x5452708e, 0xcae1e27b), TOBN(0x9dac4269, 0x1b0df648), + TOBN(0x233e3f0c, 0xdfcdb8bc), TOBN(0xe6ceccdf, 0xec540174), + TOBN(0xbd0d845e, 0x95081181), TOBN(0xcc8a7920, 0x699355d5), + TOBN(0x111c0f6d, 0xc3b375a8), TOBN(0xfd95bc6b, 0xfd51e0dc), + TOBN(0x4a106a26, 0x6888523a), TOBN(0x4d142bd6, 0xcb01a06d), + TOBN(0x79bfd289, 0xadb9b397), TOBN(0x0bdbfb94, 0xe9863914), + TOBN(0x29d8a229, 0x1660f6a6), TOBN(0x7f6abcd6, 0x551c042d), + TOBN(0x13039deb, 0x0ac3ffe8), TOBN(0xa01be628, 0xec8523fb), + TOBN(0x6ea34103, 0x0ca1c328), TOBN(0xc74114bd, 0xb903928e), + TOBN(0x8aa4ff4e, 0x9e9144b0), TOBN(0x7064091f, 0x7f9a4b17), + TOBN(0xa3f4f521, 0xe447f2c4), TOBN(0x81b8da7a, 0x604291f0), + TOBN(0xd680bc46, 0x7d5926de), TOBN(0x84f21fd5, 0x34a1202f), + TOBN(0x1d1e3181, 0x4e9df3d8), TOBN(0x1ca4861a, 0x39ab8d34), + TOBN(0x809ddeec, 0x5b19aa4a), TOBN(0x59f72f7e, 0x4d329366), + TOBN(0xa2f93f41, 0x386d5087), TOBN(0x40bf739c, 0xdd67d64f), + TOBN(0xb4494205, 0x66702158), TOBN(0xc33c65be, 0x73b1e178), + TOBN(0xcdcd657c, 0x38ca6153), TOBN(0x97f4519a, 0xdc791976), + TOBN(0xcc7c7f29, 0xcd6e1f39), TOBN(0x38de9cfb, 0x7e3c3932), + TOBN(0xe448eba3, 0x7b793f85), TOBN(0xe9f8dbf9, 0xf067e914), + TOBN(0xc0390266, 0xf114ae87), TOBN(0x39ed75a7, 0xcd6a8e2a), + TOBN(0xadb14848, 0x7ffba390), TOBN(0x67f8cb8b, 0x6af9bc09), + TOBN(0x322c3848, 0x9c7476db), TOBN(0xa320fecf, 0x52a538d6), + TOBN(0xe0493002, 0xb2aced2b), TOBN(0xdfba1809, 0x616bd430), + TOBN(0x531c4644, 0xc331be70), TOBN(0xbc04d32e, 0x90d2e450), + TOBN(0x1805a0d1, 0x0f9f142d), TOBN(0x2c44a0c5, 0x47ee5a23), + TOBN(0x31875a43, 0x3989b4e3), TOBN(0x6b1949fd, 0x0c063481), + TOBN(0x2dfb9e08, 0xbe0f4492), TOBN(0x3ff0da03, 0xe9d5e517), + TOBN(0x03dbe9a1, 0xf79466a8), TOBN(0x0b87bcd0, 0x15ea9932), + TOBN(0xeb64fc83, 0xab1f58ab), TOBN(0x6d9598da, 0x817edc8a), + TOBN(0x699cff66, 0x1d3b67e5), TOBN(0x645c0f29, 0x92635853), + TOBN(0x253cdd82, 0xeabaf21c), TOBN(0x82b9602a, 0x2241659e), + TOBN(0x2cae07ec, 0x2d9f7091), TOBN(0xbe4c720c, 0x8b48cd9b), + TOBN(0x6ce5bc03, 0x6f08d6c9), TOBN(0x36e8a997, 0xaf10bf40), + TOBN(0x83422d21, 0x3e10ff12), TOBN(0x7b26d3eb, 0xbcc12494), + TOBN(0xb240d2d0, 0xc9469ad6), TOBN(0xc4a11b4d, 0x30afa05b), + TOBN(0x4b604ace, 0xdd6ba286), TOBN(0x18486600, 0x3ee2864c), + TOBN(0x5869d6ba, 0x8d9ce5be), TOBN(0x0d8f68c5, 0xff4bfb0d), + TOBN(0xb69f210b, 0x5700cf73), TOBN(0x61f6653a, 0x6d37c135), + TOBN(0xff3d432b, 0x5aff5a48), TOBN(0x0d81c4b9, 0x72ba3a69), + TOBN(0xee879ae9, 0xfa1899ef), TOBN(0xbac7e2a0, 0x2d6acafd), + TOBN(0xd6d93f6c, 0x1c664399), TOBN(0x4c288de1, 0x5bcb135d), + TOBN(0x83031dab, 0x9dab7cbf), TOBN(0xfe23feb0, 0x3abbf5f0), + TOBN(0x9f1b2466, 0xcdedca85), TOBN(0x140bb710, 0x1a09538c), + TOBN(0xac8ae851, 0x5e11115d), TOBN(0x0d63ff67, 0x6f03f59e), + TOBN(0x755e5551, 0x7d234afb), TOBN(0x61c2db4e, 0x7e208fc1), + TOBN(0xaa9859ce, 0xf28a4b5d), TOBN(0xbdd6d4fc, 0x34af030f), + TOBN(0xd1c4a26d, 0x3be01cb1), TOBN(0x9ba14ffc, 0x243aa07c), + TOBN(0xf95cd3a9, 0xb2503502), TOBN(0xe379bc06, 0x7d2a93ab), + TOBN(0x3efc18e9, 0xd4ca8d68), TOBN(0x083558ec, 0x80bb412a), + TOBN(0xd903b940, 0x9645a968), TOBN(0xa499f0b6, 0x9ba6054f), + TOBN(0x208b573c, 0xb8349abe), TOBN(0x3baab3e5, 0x30b4fc1c), + TOBN(0x87e978ba, 0xcb524990), TOBN(0x3524194e, 0xccdf0e80), + TOBN(0x62711725, 0x7d4bcc42), TOBN(0xe90a3d9b, 0xb90109ba), + TOBN(0x3b1bdd57, 0x1323e1e0), TOBN(0xb78e9bd5, 0x5eae1599), + TOBN(0x0794b746, 0x9e03d278), TOBN(0x80178605, 0xd70e6297), + TOBN(0x171792f8, 0x99c97855), TOBN(0x11b393ee, 0xf5a86b5c), + TOBN(0x48ef6582, 0xd8884f27), TOBN(0xbd44737a, 0xbf19ba5f), + TOBN(0x8698de4c, 0xa42062c6), TOBN(0x8975eb80, 0x61ce9c54), + TOBN(0xd50e57c7, 0xd7fe71f3), TOBN(0x15342190, 0xbc97ce38), + TOBN(0x51bda2de, 0x4df07b63), TOBN(0xba12aeae, 0x200eb87d), + TOBN(0xabe135d2, 0xa9b4f8f6), TOBN(0x04619d65, 0xfad6d99c), + TOBN(0x4a6683a7, 0x7994937c), TOBN(0x7a778c8b, 0x6f94f09a), + TOBN(0x8c508623, 0x20a71b89), TOBN(0x241a2aed, 0x1c229165), + TOBN(0x352be595, 0xaaf83a99), TOBN(0x9fbfee7f, 0x1562bac8), + TOBN(0xeaf658b9, 0x5c4017e3), TOBN(0x1dc7f9e0, 0x15120b86), + TOBN(0xd84f13dd, 0x4c034d6f), TOBN(0x283dd737, 0xeaea3038), + TOBN(0x197f2609, 0xcd85d6a2), TOBN(0x6ebbc345, 0xfae60177), + TOBN(0xb80f031b, 0x4e12fede), TOBN(0xde55d0c2, 0x07a2186b), + TOBN(0x1fb3e37f, 0x24dcdd5a), TOBN(0x8d602da5, 0x7ed191fb), + TOBN(0x108fb056, 0x76023e0d), TOBN(0x70178c71, 0x459c20c0), + TOBN(0xfad5a386, 0x3fe54cf0), TOBN(0xa4a3ec4f, 0x02bbb475), + TOBN(0x1aa5ec20, 0x919d94d7), TOBN(0x5d3b63b5, 0xa81e4ab3), + TOBN(0x7fa733d8, 0x5ad3d2af), TOBN(0xfbc586dd, 0xd1ac7a37), + TOBN(0x282925de, 0x40779614), TOBN(0xfe0ffffb, 0xe74a242a), + TOBN(0x3f39e67f, 0x906151e5), TOBN(0xcea27f5f, 0x55e10649), + TOBN(0xdca1d4e1, 0xc17cf7b7), TOBN(0x0c326d12, 0x2fe2362d), + TOBN(0x05f7ac33, 0x7dd35df3), TOBN(0x0c3b7639, 0xc396dbdf), + TOBN(0x0912f5ac, 0x03b7db1c), TOBN(0x9dea4b70, 0x5c9ed4a9), + TOBN(0x475e6e53, 0xaae3f639), TOBN(0xfaba0e7c, 0xfc278bac), + TOBN(0x16f9e221, 0x9490375f), TOBN(0xaebf9746, 0xa5a7ed0a), + TOBN(0x45f9af3f, 0xf41ad5d6), TOBN(0x03c4623c, 0xb2e99224), + TOBN(0x82c5bb5c, 0xb3cf56aa), TOBN(0x64311819, 0x34567ed3), + TOBN(0xec57f211, 0x8be489ac), TOBN(0x2821895d, 0xb9a1104b), + TOBN(0x610dc875, 0x6064e007), TOBN(0x8e526f3f, 0x5b20d0fe), + TOBN(0x6e71ca77, 0x5b645aee), TOBN(0x3d1dcb9f, 0x800e10ff), + TOBN(0x36b51162, 0x189cf6de), TOBN(0x2c5a3e30, 0x6bb17353), + TOBN(0xc186cd3e, 0x2a6c6fbf), TOBN(0xa74516fa, 0x4bf97906), + TOBN(0x5b4b8f4b, 0x279d6901), TOBN(0x0c4e57b4, 0x2b573743), + TOBN(0x75fdb229, 0xb6e386b6), TOBN(0xb46793fd, 0x99deac27), + TOBN(0xeeec47ea, 0xcf712629), TOBN(0xe965f3c4, 0xcbc3b2dd), + TOBN(0x8dd1fb83, 0x425c6559), TOBN(0x7fc00ee6, 0x0af06fda), + TOBN(0xe98c9225, 0x33d956df), TOBN(0x0f1ef335, 0x4fbdc8a2), + TOBN(0x2abb5145, 0xb79b8ea2), TOBN(0x40fd2945, 0xbdbff288), + TOBN(0x6a814ac4, 0xd7185db7), TOBN(0xc4329d6f, 0xc084609a), + TOBN(0xc9ba7b52, 0xed1be45d), TOBN(0x891dd20d, 0xe4cd2c74), + TOBN(0x5a4d4a7f, 0x824139b1), TOBN(0x66c17716, 0xb873c710), + TOBN(0x5e5bc141, 0x2843c4e0), TOBN(0xd5ac4817, 0xb97eb5bf), + TOBN(0xc0f8af54, 0x450c95c7), TOBN(0xc91b3fa0, 0x318406c5), + TOBN(0x360c340a, 0xab9d97f8), TOBN(0xfb57bd07, 0x90a2d611), + TOBN(0x4339ae3c, 0xa6a6f7e5), TOBN(0x9c1fcd2a, 0x2feb8a10), + TOBN(0x972bcca9, 0xc7ea7432), TOBN(0x1b0b924c, 0x308076f6), + TOBN(0x80b2814a, 0x2a5b4ca5), TOBN(0x2f78f55b, 0x61ef3b29), + TOBN(0xf838744a, 0xc18a414f), TOBN(0xc611eaae, 0x903d0a86), + TOBN(0x94dabc16, 0x2a453f55), TOBN(0xe6f2e3da, 0x14efb279), + TOBN(0x5b7a6017, 0x9320dc3c), TOBN(0x692e382f, 0x8df6b5a4), + TOBN(0x3f5e15e0, 0x2d40fa90), TOBN(0xc87883ae, 0x643dd318), + TOBN(0x511053e4, 0x53544774), TOBN(0x834d0ecc, 0x3adba2bc), + TOBN(0x4215d7f7, 0xbae371f5), TOBN(0xfcfd57bf, 0x6c8663bc), + TOBN(0xded2383d, 0xd6901b1d), TOBN(0x3b49fbb4, 0xb5587dc3), + TOBN(0xfd44a08d, 0x07625f62), TOBN(0x3ee4d65b, 0x9de9b762),} + , + {TOBN(0x64e5137d, 0x0d63d1fa), TOBN(0x658fc052, 0x02a9d89f), + TOBN(0x48894874, 0x50436309), TOBN(0xe9ae30f8, 0xd598da61), + TOBN(0x2ed710d1, 0x818baf91), TOBN(0xe27e9e06, 0x8b6a0c20), + TOBN(0x1e28dcfb, 0x1c1a6b44), TOBN(0x883acb64, 0xd6ac57dc), + TOBN(0x8735728d, 0xc2c6ff70), TOBN(0x79d6122f, 0xc5dc2235), + TOBN(0x23f5d003, 0x19e277f9), TOBN(0x7ee84e25, 0xdded8cc7), + TOBN(0x91a8afb0, 0x63cd880a), TOBN(0x3f3ea7c6, 0x3574af60), + TOBN(0x0cfcdc84, 0x02de7f42), TOBN(0x62d0792f, 0xb31aa152), + TOBN(0x8e1b4e43, 0x8a5807ce), TOBN(0xad283893, 0xe4109a7e), + TOBN(0xc30cc9cb, 0xafd59dda), TOBN(0xf65f36c6, 0x3d8d8093), + TOBN(0xdf31469e, 0xa60d32b2), TOBN(0xee93df4b, 0x3e8191c8), + TOBN(0x9c1017c5, 0x355bdeb5), TOBN(0xd2623185, 0x8616aa28), + TOBN(0xb02c83f9, 0xdec31a21), TOBN(0x988c8b23, 0x6ad9d573), + TOBN(0x53e983ae, 0xa57be365), TOBN(0xe968734d, 0x646f834e), + TOBN(0x9137ea8f, 0x5da6309b), TOBN(0x10f3a624, 0xc1f1ce16), + TOBN(0x782a9ea2, 0xca440921), TOBN(0xdf94739e, 0x5b46f1b5), + TOBN(0x9f9be006, 0xcce85c9b), TOBN(0x360e70d6, 0xa4c7c2d3), + TOBN(0x2cd5beea, 0xaefa1e60), TOBN(0x64cf63c0, 0x8c3d2b6d), + TOBN(0xfb107fa3, 0xe1cf6f90), TOBN(0xb7e937c6, 0xd5e044e6), + TOBN(0x74e8ca78, 0xce34db9f), TOBN(0x4f8b36c1, 0x3e210bd0), + TOBN(0x1df165a4, 0x34a35ea8), TOBN(0x3418e0f7, 0x4d4412f6), + TOBN(0x5af1f8af, 0x518836c3), TOBN(0x42ceef4d, 0x130e1965), + TOBN(0x5560ca0b, 0x543a1957), TOBN(0xc33761e5, 0x886cb123), + TOBN(0x66624b1f, 0xfe98ed30), TOBN(0xf772f4bf, 0x1090997d), + TOBN(0xf4e540bb, 0x4885d410), TOBN(0x7287f810, 0x9ba5f8d7), + TOBN(0x22d0d865, 0xde98dfb1), TOBN(0x49ff51a1, 0xbcfbb8a3), + TOBN(0xb6b6fa53, 0x6bc3012e), TOBN(0x3d31fd72, 0x170d541d), + TOBN(0x8018724f, 0x4b0f4966), TOBN(0x79e7399f, 0x87dbde07), + TOBN(0x56f8410e, 0xf4f8b16a), TOBN(0x97241afe, 0xc47b266a), + TOBN(0x0a406b8e, 0x6d9c87c1), TOBN(0x803f3e02, 0xcd42ab1b), + TOBN(0x7f0309a8, 0x04dbec69), TOBN(0xa83b85f7, 0x3bbad05f), + TOBN(0xc6097273, 0xad8e197f), TOBN(0xc097440e, 0x5067adc1), + TOBN(0x730eafb6, 0x3524ff16), TOBN(0xd7f9b51e, 0x823fc6ce), + TOBN(0x27bd0d32, 0x443e4ac0), TOBN(0x40c59ad9, 0x4d66f217), + TOBN(0x6c33136f, 0x17c387a4), TOBN(0x5043b8d5, 0xeb86804d), + TOBN(0x74970312, 0x675a73c9), TOBN(0x838fdb31, 0xf16669b6), + TOBN(0xc507b6dd, 0x418e7ddd), TOBN(0x39888d93, 0x472f19d6), + TOBN(0x7eae26be, 0x0c27eb4d), TOBN(0x17b53ed3, 0xfbabb884), + TOBN(0xfc27021b, 0x2b01ae4f), TOBN(0x88462e87, 0xcf488682), + TOBN(0xbee096ec, 0x215e2d87), TOBN(0xeb2fea9a, 0xd242e29b), + TOBN(0x5d985b5f, 0xb821fc28), TOBN(0x89d2e197, 0xdc1e2ad2), + TOBN(0x55b566b8, 0x9030ba62), TOBN(0xe3fd41b5, 0x4f41b1c6), + TOBN(0xb738ac2e, 0xb9a96d61), TOBN(0x7f8567ca, 0x369443f4), + TOBN(0x8698622d, 0xf803a440), TOBN(0x2b586236, 0x8fe2f4dc), + TOBN(0xbbcc00c7, 0x56b95bce), TOBN(0x5ec03906, 0x616da680), + TOBN(0x79162ee6, 0x72214252), TOBN(0x43132b63, 0x86a892d2), + TOBN(0x4bdd3ff2, 0x2f3263bf), TOBN(0xd5b3733c, 0x9cd0a142), + TOBN(0x592eaa82, 0x44415ccb), TOBN(0x663e8924, 0x8d5474ea), + TOBN(0x8058a25e, 0x5236344e), TOBN(0x82e8df9d, 0xbda76ee6), + TOBN(0xdcf6efd8, 0x11cc3d22), TOBN(0x00089cda, 0x3b4ab529), + TOBN(0x91d3a071, 0xbd38a3db), TOBN(0x4ea97fc0, 0xef72b925), + TOBN(0x0c9fc15b, 0xea3edf75), TOBN(0x5a6297cd, 0xa4348ed3), + TOBN(0x0d38ab35, 0xce7c42d4), TOBN(0x9fd493ef, 0x82feab10), + TOBN(0x46056b6d, 0x82111b45), TOBN(0xda11dae1, 0x73efc5c3), + TOBN(0xdc740278, 0x5545a7fb), TOBN(0xbdb2601c, 0x40d507e6), + TOBN(0x121dfeeb, 0x7066fa58), TOBN(0x214369a8, 0x39ae8c2a), + TOBN(0x195709cb, 0x06e0956c), TOBN(0x4c9d254f, 0x010cd34b), + TOBN(0xf51e13f7, 0x0471a532), TOBN(0xe19d6791, 0x1e73054d), + TOBN(0xf702a628, 0xdb5c7be3), TOBN(0xc7141218, 0xb24dde05), + TOBN(0xdc18233c, 0xf29b2e2e), TOBN(0x3a6bd1e8, 0x85342dba), + TOBN(0x3f747fa0, 0xb311898c), TOBN(0xe2a272e4, 0xcd0eac65), + TOBN(0x4bba5851, 0xf914d0bc), TOBN(0x7a1a9660, 0xc4a43ee3), + TOBN(0xe5a367ce, 0xa1c8cde9), TOBN(0x9d958ba9, 0x7271abe3), + TOBN(0xf3ff7eb6, 0x3d1615cd), TOBN(0xa2280dce, 0xf5ae20b0), + TOBN(0x56dba5c1, 0xcf640147), TOBN(0xea5a2e3d, 0x5e83d118), + TOBN(0x04cd6b6d, 0xda24c511), TOBN(0x1c0f4671, 0xe854d214), + TOBN(0x91a6b7a9, 0x69565381), TOBN(0xdc966240, 0xdecf1f5b), + TOBN(0x1b22d21c, 0xfcf5d009), TOBN(0x2a05f641, 0x9021dbd5), + TOBN(0x8c0ed566, 0xd4312483), TOBN(0x5179a95d, 0x643e216f), + TOBN(0xcc185fec, 0x17044493), TOBN(0xb3063339, 0x54991a21), + TOBN(0xd801ecdb, 0x0081a726), TOBN(0x0149b0c6, 0x4fa89bbb), + TOBN(0xafe9065a, 0x4391b6b9), TOBN(0xedc92786, 0xd633f3a3), + TOBN(0xe408c24a, 0xae6a8e13), TOBN(0x85833fde, 0x9f3897ab), + TOBN(0x43800e7e, 0xd81a0715), TOBN(0xde08e346, 0xb44ffc5f), + TOBN(0x7094184c, 0xcdeff2e0), TOBN(0x49f9387b, 0x165eaed1), + TOBN(0x635d6129, 0x777c468a), TOBN(0x8c0dcfd1, 0x538c2dd8), + TOBN(0xd6d9d9e3, 0x7a6a308b), TOBN(0x62375830, 0x4c2767d3), + TOBN(0x874a8bc6, 0xf38cbeb6), TOBN(0xd94d3f1a, 0xccb6fd9e), + TOBN(0x92a9735b, 0xba21f248), TOBN(0x272ad0e5, 0x6cd1efb0), + TOBN(0x7437b69c, 0x05b03284), TOBN(0xe7f04702, 0x6948c225), + TOBN(0x8a56c04a, 0xcba2ecec), TOBN(0x0c181270, 0xe3a73e41), + TOBN(0x6cb34e9d, 0x03e93725), TOBN(0xf77c8713, 0x496521a9), + TOBN(0x94569183, 0xfa7f9f90), TOBN(0xf2e7aa4c, 0x8c9707ad), + TOBN(0xced2c9ba, 0x26c1c9a3), TOBN(0x9109fe96, 0x40197507), + TOBN(0x9ae868a9, 0xe9adfe1c), TOBN(0x3984403d, 0x314e39bb), + TOBN(0xb5875720, 0xf2fe378f), TOBN(0x33f901e0, 0xba44a628), + TOBN(0xea1125fe, 0x3652438c), TOBN(0xae9ec4e6, 0x9dd1f20b), + TOBN(0x1e740d9e, 0xbebf7fbd), TOBN(0x6dbd3ddc, 0x42dbe79c), + TOBN(0x62082aec, 0xedd36776), TOBN(0xf612c478, 0xe9859039), + TOBN(0xa493b201, 0x032f7065), TOBN(0xebd4d8f2, 0x4ff9b211), + TOBN(0x3f23a0aa, 0xaac4cb32), TOBN(0xea3aadb7, 0x15ed4005), + TOBN(0xacf17ea4, 0xafa27e63), TOBN(0x56125c1a, 0xc11fd66c), + TOBN(0x266344a4, 0x3794f8dc), TOBN(0xdcca923a, 0x483c5c36), + TOBN(0x2d6b6bbf, 0x3f9d10a0), TOBN(0xb320c5ca, 0x81d9bdf3), + TOBN(0x620e28ff, 0x47b50a95), TOBN(0x933e3b01, 0xcef03371), + TOBN(0xf081bf85, 0x99100153), TOBN(0x183be9a0, 0xc3a8c8d6), + TOBN(0x4e3ddc5a, 0xd6bbe24d), TOBN(0xc6c74630, 0x53843795), + TOBN(0x78193dd7, 0x65ec2d4c), TOBN(0xb8df26cc, 0xcd3c89b2), + TOBN(0x98dbe399, 0x5a483f8d), TOBN(0x72d8a957, 0x7dd3313a), + TOBN(0x65087294, 0xab0bd375), TOBN(0xfcd89248, 0x7c259d16), + TOBN(0x8a9443d7, 0x7613aa81), TOBN(0x80100800, 0x85fe6584), + TOBN(0x70fc4dbc, 0x7fb10288), TOBN(0xf58280d3, 0xe86beee8), + TOBN(0x14fdd82f, 0x7c978c38), TOBN(0xdf1204c1, 0x0de44d7b), + TOBN(0xa08a1c84, 0x4160252f), TOBN(0x591554ca, 0xc17646a5), + TOBN(0x214a37d6, 0xa05bd525), TOBN(0x48d5f09b, 0x07957b3c), + TOBN(0x0247cdcb, 0xd7109bc9), TOBN(0x40f9e4bb, 0x30599ce7), + TOBN(0xc325fa03, 0xf46ad2ec), TOBN(0x00f766cf, 0xc3e3f9ee), + TOBN(0xab556668, 0xd43a4577), TOBN(0x68d30a61, 0x3ee03b93), + TOBN(0x7ddc81ea, 0x77b46a08), TOBN(0xcf5a6477, 0xc7480699), + TOBN(0x43a8cb34, 0x6633f683), TOBN(0x1b867e6b, 0x92363c60), + TOBN(0x43921114, 0x1f60558e), TOBN(0xcdbcdd63, 0x2f41450e), + TOBN(0x7fc04601, 0xcc630e8b), TOBN(0xea7c66d5, 0x97038b43), + TOBN(0x7259b8a5, 0x04e99fd8), TOBN(0x98a8dd12, 0x4785549a), + TOBN(0x0e459a7c, 0x840552e1), TOBN(0xcdfcf4d0, 0x4bb0909e), + TOBN(0x34a86db2, 0x53758da7), TOBN(0xe643bb83, 0xeac997e1), + TOBN(0x96400bd7, 0x530c5b7e), TOBN(0x9f97af87, 0xb41c8b52), + TOBN(0x34fc8820, 0xfbeee3f9), TOBN(0x93e53490, 0x49091afd), + TOBN(0x764b9be5, 0x9a31f35c), TOBN(0x71f37864, 0x57e3d924), + TOBN(0x02fb34e0, 0x943aa75e), TOBN(0xa18c9c58, 0xab8ff6e4), + TOBN(0x080f31b1, 0x33cf0d19), TOBN(0x5c9682db, 0x083518a7), + TOBN(0x873d4ca6, 0xb709c3de), TOBN(0x64a84262, 0x3575b8f0), + TOBN(0x6275da1f, 0x020154bb), TOBN(0x97678caa, 0xd17cf1ab), + TOBN(0x8779795f, 0x951a95c3), TOBN(0xdd35b163, 0x50fccc08), + TOBN(0x32709627, 0x33d8f031), TOBN(0x3c5ab10a, 0x498dd85c), + TOBN(0xb6c185c3, 0x41dca566), TOBN(0x7de7feda, 0xd8622aa3), + TOBN(0x99e84d92, 0x901b6dfb), TOBN(0x30a02b0e, 0x7c4ad288), + TOBN(0xc7c81daa, 0x2fd3cf36), TOBN(0xd1319547, 0xdf89e59f), + TOBN(0xb2be8184, 0xcd496733), TOBN(0xd5f449eb, 0x93d3412b), + TOBN(0x7ea41b1b, 0x25fe531d), TOBN(0xf9797432, 0x6a1d5646), + TOBN(0x86067f72, 0x2bde501a), TOBN(0xf91481c0, 0x0c85e89c), + TOBN(0xca8ee465, 0xf8b05bc6), TOBN(0x1844e1cf, 0x02e83cda), + TOBN(0xca82114a, 0xb4dbe33b), TOBN(0x0f9f8769, 0x4eabfde2), + TOBN(0x4936b1c0, 0x38b27fe2), TOBN(0x63b6359b, 0xaba402df), + TOBN(0x40c0ea2f, 0x656bdbab), TOBN(0x9c992a89, 0x6580c39c), + TOBN(0x600e8f15, 0x2a60aed1), TOBN(0xeb089ca4, 0xe0bf49df), + TOBN(0x9c233d7d, 0x2d42d99a), TOBN(0x648d3f95, 0x4c6bc2fa), + TOBN(0xdcc383a8, 0xe1add3f3), TOBN(0xf42c0c6a, 0x4f64a348), + TOBN(0x2abd176f, 0x0030dbdb), TOBN(0x4de501a3, 0x7d6c215e), + TOBN(0x4a107c1f, 0x4b9a64bc), TOBN(0xa77f0ad3, 0x2496cd59), + TOBN(0xfb78ac62, 0x7688dffb), TOBN(0x7025a2ca, 0x67937d8e), + TOBN(0xfde8b2d1, 0xd1a8f4e7), TOBN(0xf5b3da47, 0x7354927c), + TOBN(0xe48606a3, 0xd9205735), TOBN(0xac477cc6, 0xe177b917), + TOBN(0xfb1f73d2, 0xa883239a), TOBN(0xe12572f6, 0xcc8b8357), + TOBN(0x9d355e9c, 0xfb1f4f86), TOBN(0x89b795f8, 0xd9f3ec6e), + TOBN(0x27be56f1, 0xb54398dc), TOBN(0x1890efd7, 0x3fedeed5), + TOBN(0x62f77f1f, 0x9c6d0140), TOBN(0x7ef0e314, 0x596f0ee4), + TOBN(0x50ca6631, 0xcc61dab3), TOBN(0x4a39801d, 0xf4866e4f), + TOBN(0x66c8d032, 0xae363b39), TOBN(0x22c591e5, 0x2ead66aa), + TOBN(0x954ba308, 0xde02a53e), TOBN(0x2a6c060f, 0xd389f357), + TOBN(0xe6cfcde8, 0xfbf40b66), TOBN(0x8e02fc56, 0xc6340ce1), + TOBN(0xe4957795, 0x73adb4ba), TOBN(0x7b86122c, 0xa7b03805), + TOBN(0x63f83512, 0x0c8e6fa6), TOBN(0x83660ea0, 0x057d7804), + TOBN(0xbad79105, 0x21ba473c), TOBN(0xb6c50bee, 0xded5389d), + TOBN(0xee2caf4d, 0xaa7c9bc0), TOBN(0xd97b8de4, 0x8c4e98a7), + TOBN(0xa9f63e70, 0xab3bbddb), TOBN(0x3898aabf, 0x2597815a), + TOBN(0x7659af89, 0xac15b3d9), TOBN(0xedf7725b, 0x703ce784), + TOBN(0x25470fab, 0xe085116b), TOBN(0x04a43375, 0x87285310), + TOBN(0x4e39187e, 0xe2bfd52f), TOBN(0x36166b44, 0x7d9ebc74), + TOBN(0x92ad433c, 0xfd4b322c), TOBN(0x726aa817, 0xba79ab51), + TOBN(0xf96eacd8, 0xc1db15eb), TOBN(0xfaf71e91, 0x0476be63), + TOBN(0xdd69a640, 0x641fad98), TOBN(0xb7995918, 0x29622559), + TOBN(0x03c6daa5, 0xde4199dc), TOBN(0x92cadc97, 0xad545eb4), + TOBN(0x1028238b, 0x256534e4), TOBN(0x73e80ce6, 0x8595409a), + TOBN(0x690d4c66, 0xd05dc59b), TOBN(0xc95f7b8f, 0x981dee80), + TOBN(0xf4337014, 0xd856ac25), TOBN(0x441bd9dd, 0xac524dca), + TOBN(0x640b3d85, 0x5f0499f5), TOBN(0x39cf84a9, 0xd5fda182), + TOBN(0x04e7b055, 0xb2aa95a0), TOBN(0x29e33f0a, 0x0ddf1860), + TOBN(0x082e74b5, 0x423f6b43), TOBN(0x217edeb9, 0x0aaa2b0f), + TOBN(0x58b83f35, 0x83cbea55), TOBN(0xc485ee4d, 0xbc185d70), + TOBN(0x833ff03b, 0x1e5f6992), TOBN(0xb5b9b9cc, 0xcf0c0dd5), + TOBN(0x7caaee8e, 0x4e9e8a50), TOBN(0x462e907b, 0x6269dafd), + TOBN(0x6ed5cee9, 0xfbe791c6), TOBN(0x68ca3259, 0xed430790), + TOBN(0x2b72bdf2, 0x13b5ba88), TOBN(0x60294c8a, 0x35ef0ac4), + TOBN(0x9c3230ed, 0x19b99b08), TOBN(0x560fff17, 0x6c2589aa), + TOBN(0x552b8487, 0xd6770374), TOBN(0xa373202d, 0x9a56f685), + TOBN(0xd3e7f907, 0x45f175d9), TOBN(0x3c2f315f, 0xd080d810), + TOBN(0x1130e9dd, 0x7b9520e8), TOBN(0xc078f9e2, 0x0af037b5), + TOBN(0x38cd2ec7, 0x1e9c104c), TOBN(0x0f684368, 0xc472fe92), + TOBN(0xd3f1b5ed, 0x6247e7ef), TOBN(0xb32d33a9, 0x396dfe21), + TOBN(0x46f59cf4, 0x4a9aa2c2), TOBN(0x69cd5168, 0xff0f7e41), + TOBN(0x3f59da0f, 0x4b3234da), TOBN(0xcf0b0235, 0xb4579ebe), + TOBN(0x6d1cbb25, 0x6d2476c7), TOBN(0x4f0837e6, 0x9dc30f08), + TOBN(0x9a4075bb, 0x906f6e98), TOBN(0x253bb434, 0xc761e7d1), + TOBN(0xde2e645f, 0x6e73af10), TOBN(0xb89a4060, 0x0c5f131c), + TOBN(0xd12840c5, 0xb8cc037f), TOBN(0x3d093a5b, 0x7405bb47), + TOBN(0x6202c253, 0x206348b8), TOBN(0xbf5d57fc, 0xc55a3ca7), + TOBN(0x89f6c90c, 0x8c3bef48), TOBN(0x23ac7623, 0x5a0a960a), + TOBN(0xdfbd3d6b, 0x552b42ab), TOBN(0x3ef22458, 0x132061f6), + TOBN(0xd74e9bda, 0xc97e6516), TOBN(0x88779360, 0xc230f49e), + TOBN(0xa6ec1de3, 0x1e74ea49), TOBN(0x581dcee5, 0x3fb645a2), + TOBN(0xbaef2391, 0x8f483f14), TOBN(0x6d2dddfc, 0xd137d13b), + TOBN(0x54cde50e, 0xd2743a42), TOBN(0x89a34fc5, 0xe4d97e67), + TOBN(0x13f1f5b3, 0x12e08ce5), TOBN(0xa80540b8, 0xa7f0b2ca), + TOBN(0x854bcf77, 0x01982805), TOBN(0xb8653ffd, 0x233bea04), + TOBN(0x8e7b8787, 0x02b0b4c9), TOBN(0x2675261f, 0x9acb170a), + TOBN(0x061a9d90, 0x930c14e5), TOBN(0xb59b30e0, 0xdef0abea), + TOBN(0x1dc19ea6, 0x0200ec7d), TOBN(0xb6f4a3f9, 0x0bce132b), + TOBN(0xb8d5de90, 0xf13e27e0), TOBN(0xbaee5ef0, 0x1fade16f), + TOBN(0x6f406aaa, 0xe4c6cf38), TOBN(0xab4cfe06, 0xd1369815), + TOBN(0x0dcffe87, 0xefd550c6), TOBN(0x9d4f59c7, 0x75ff7d39), + TOBN(0xb02553b1, 0x51deb6ad), TOBN(0x812399a4, 0xb1877749), + TOBN(0xce90f71f, 0xca6006e1), TOBN(0xc32363a6, 0xb02b6e77), + TOBN(0x02284fbe, 0xdc36c64d), TOBN(0x86c81e31, 0xa7e1ae61), + TOBN(0x2576c7e5, 0xb909d94a), TOBN(0x8b6f7d02, 0x818b2bb0), + TOBN(0xeca3ed07, 0x56faa38a), TOBN(0xa3790e6c, 0x9305bb54), + TOBN(0xd784eeda, 0x7bc73061), TOBN(0xbd56d369, 0x6dd50614), + TOBN(0xd6575949, 0x229a8aa9), TOBN(0xdcca8f47, 0x4595ec28), + TOBN(0x814305c1, 0x06ab4fe6), TOBN(0xc8c39768, 0x24f43f16), + TOBN(0xe2a45f36, 0x523f2b36), TOBN(0x995c6493, 0x920d93bb), + TOBN(0xf8afdab7, 0x90f1632b), TOBN(0x79ebbecd, 0x1c295954), + TOBN(0xc7bb3ddb, 0x79592f48), TOBN(0x67216a7b, 0x5f88e998), + TOBN(0xd91f098b, 0xbc01193e), TOBN(0xf7d928a5, 0xb1db83fc), + TOBN(0x55e38417, 0xe991f600), TOBN(0x2a91113e, 0x2981a934), + TOBN(0xcbc9d648, 0x06b13bde), TOBN(0xb011b6ac, 0x0755ff44), + TOBN(0x6f4cb518, 0x045ec613), TOBN(0x522d2d31, 0xc2f5930a), + TOBN(0x5acae1af, 0x382e65de), TOBN(0x57643067, 0x27bc966f), + TOBN(0x5e12705d, 0x1c7193f0), TOBN(0xf0f32f47, 0x3be8858e), + TOBN(0x785c3d7d, 0x96c6dfc7), TOBN(0xd75b4a20, 0xbf31795d), + TOBN(0x91acf17b, 0x342659d4), TOBN(0xe596ea34, 0x44f0378f), + TOBN(0x4515708f, 0xce52129d), TOBN(0x17387e1e, 0x79f2f585), + TOBN(0x72cfd2e9, 0x49dee168), TOBN(0x1ae05223, 0x3e2af239), + TOBN(0x009e75be, 0x1d94066a), TOBN(0x6cca31c7, 0x38abf413), + TOBN(0xb50bd61d, 0x9bc49908), TOBN(0x4a9b4a8c, 0xf5e2bc1e), + TOBN(0xeb6cc5f7, 0x946f83ac), TOBN(0x27da93fc, 0xebffab28), + TOBN(0xea314c96, 0x4821c8c5), TOBN(0x8de49ded, 0xa83c15f4), + TOBN(0x7a64cf20, 0x7af33004), TOBN(0x45f1bfeb, 0xc9627e10), + TOBN(0x878b0626, 0x54b9df60), TOBN(0x5e4fdc3c, 0xa95c0b33), + TOBN(0xe54a37ca, 0xc2035d8e), TOBN(0x9087cda9, 0x80f20b8c), + TOBN(0x36f61c23, 0x8319ade4), TOBN(0x766f287a, 0xde8cfdf8), + TOBN(0x48821948, 0x346f3705), TOBN(0x49a7b853, 0x16e4f4a2), + TOBN(0xb9b3f8a7, 0x5cedadfd), TOBN(0x8f562815, 0x8db2a815), + TOBN(0xc0b7d554, 0x01f68f95), TOBN(0x12971e27, 0x688a208e), + TOBN(0xc9f8b696, 0xd0ff34fc), TOBN(0x20824de2, 0x1222718c), + TOBN(0x7213cf9f, 0x0c95284d), TOBN(0xe2ad741b, 0xdc158240), + TOBN(0x0ee3a6df, 0x54043ccf), TOBN(0x16ff479b, 0xd84412b3), + TOBN(0xf6c74ee0, 0xdfc98af0), TOBN(0xa78a169f, 0x52fcd2fb), + TOBN(0xd8ae8746, 0x99c930e9), TOBN(0x1d33e858, 0x49e117a5), + TOBN(0x7581fcb4, 0x6624759f), TOBN(0xde50644f, 0x5bedc01d), + TOBN(0xbeec5d00, 0xcaf3155e), TOBN(0x672d66ac, 0xbc73e75f), + TOBN(0x86b9d8c6, 0x270b01db), TOBN(0xd249ef83, 0x50f55b79), + TOBN(0x6131d6d4, 0x73978fe3), TOBN(0xcc4e4542, 0x754b00a1), + TOBN(0x4e05df05, 0x57dfcfe9), TOBN(0x94b29cdd, 0x51ef6bf0), + TOBN(0xe4530cff, 0x9bc7edf2), TOBN(0x8ac236fd, 0xd3da65f3), + TOBN(0x0faf7d5f, 0xc8eb0b48), TOBN(0x4d2de14c, 0x660eb039), + TOBN(0xc006bba7, 0x60430e54), TOBN(0x10a2d0d6, 0xda3289ab), + TOBN(0x9c037a5d, 0xd7979c59), TOBN(0x04d1f3d3, 0xa116d944), + TOBN(0x9ff22473, 0x8a0983cd), TOBN(0x28e25b38, 0xc883cabb), + TOBN(0xe968dba5, 0x47a58995), TOBN(0x2c80b505, 0x774eebdf), + TOBN(0xee763b71, 0x4a953beb), TOBN(0x502e223f, 0x1642e7f6), + TOBN(0x6fe4b641, 0x61d5e722), TOBN(0x9d37c5b0, 0xdbef5316), + TOBN(0x0115ed70, 0xf8330bc7), TOBN(0x139850e6, 0x75a72789), + TOBN(0x27d7faec, 0xffceccc2), TOBN(0x3016a860, 0x4fd9f7f6), + TOBN(0xc492ec64, 0x4cd8f64c), TOBN(0x58a2d790, 0x279d7b51), + TOBN(0x0ced1fc5, 0x1fc75256), TOBN(0x3e658aed, 0x8f433017), + TOBN(0x0b61942e, 0x05da59eb), TOBN(0xba3d60a3, 0x0ddc3722), + TOBN(0x7c311cd1, 0x742e7f87), TOBN(0x6473ffee, 0xf6b01b6e),} + , + {TOBN(0x8303604f, 0x692ac542), TOBN(0xf079ffe1, 0x227b91d3), + TOBN(0x19f63e63, 0x15aaf9bd), TOBN(0xf99ee565, 0xf1f344fb), + TOBN(0x8a1d661f, 0xd6219199), TOBN(0x8c883bc6, 0xd48ce41c), + TOBN(0x1065118f, 0x3c74d904), TOBN(0x713889ee, 0x0faf8b1b), + TOBN(0x972b3f8f, 0x81a1b3be), TOBN(0x4f3ce145, 0xce2764a0), + TOBN(0xe2d0f1cc, 0x28c4f5f7), TOBN(0xdeee0c0d, 0xc7f3985b), + TOBN(0x7df4adc0, 0xd39e25c3), TOBN(0x40619820, 0xc467a080), + TOBN(0x440ebc93, 0x61cf5a58), TOBN(0x527729a6, 0x422ad600), + TOBN(0xca6c0937, 0xb1b76ba6), TOBN(0x1a2eab85, 0x4d2026dc), + TOBN(0xb1715e15, 0x19d9ae0a), TOBN(0xf1ad9199, 0xbac4a026), + TOBN(0x35b3dfb8, 0x07ea7b0e), TOBN(0xedf5496f, 0x3ed9eb89), + TOBN(0x8932e5ff, 0x2d6d08ab), TOBN(0xf314874e, 0x25bd2731), + TOBN(0xefb26a75, 0x3f73f449), TOBN(0x1d1c94f8, 0x8d44fc79), + TOBN(0x49f0fbc5, 0x3bc0dc4d), TOBN(0xb747ea0b, 0x3698a0d0), + TOBN(0x5218c3fe, 0x228d291e), TOBN(0x35b804b5, 0x43c129d6), + TOBN(0xfac859b8, 0xd1acc516), TOBN(0x6c10697d, 0x95d6e668), + TOBN(0xc38e438f, 0x0876fd4e), TOBN(0x45f0c307, 0x83d2f383), + TOBN(0x203cc2ec, 0xb10934cb), TOBN(0x6a8f2439, 0x2c9d46ee), + TOBN(0xf16b431b, 0x65ccde7b), TOBN(0x41e2cd18, 0x27e76a6f), + TOBN(0xb9c8cf8f, 0x4e3484d7), TOBN(0x64426efd, 0x8315244a), + TOBN(0x1c0a8e44, 0xfc94dea3), TOBN(0x34c8cdbf, 0xdad6a0b0), + TOBN(0x919c3840, 0x04113cef), TOBN(0xfd32fba4, 0x15490ffa), + TOBN(0x58d190f6, 0x795dcfb7), TOBN(0xfef01b03, 0x83588baf), + TOBN(0x9e6d1d63, 0xca1fc1c0), TOBN(0x53173f96, 0xf0a41ac9), + TOBN(0x2b1d402a, 0xba16f73b), TOBN(0x2fb31014, 0x8cf9b9fc), + TOBN(0x2d51e60e, 0x446ef7bf), TOBN(0xc731021b, 0xb91e1745), + TOBN(0x9d3b4724, 0x4fee99d4), TOBN(0x4bca48b6, 0xfac5c1ea), + TOBN(0x70f5f514, 0xbbea9af7), TOBN(0x751f55a5, 0x974c283a), + TOBN(0x6e30251a, 0xcb452fdb), TOBN(0x31ee6965, 0x50f30650), + TOBN(0xb0b3e508, 0x933548d9), TOBN(0xb8949a4f, 0xf4b0ef5b), + TOBN(0x208b8326, 0x3c88f3bd), TOBN(0xab147c30, 0xdb1d9989), + TOBN(0xed6515fd, 0x44d4df03), TOBN(0x17a12f75, 0xe72eb0c5), + TOBN(0x3b59796d, 0x36cf69db), TOBN(0x1219eee9, 0x56670c18), + TOBN(0xfe3341f7, 0x7a070d8e), TOBN(0x9b70130b, 0xa327f90c), + TOBN(0x36a32462, 0x0ae18e0e), TOBN(0x2021a623, 0x46c0a638), + TOBN(0x251b5817, 0xc62eb0d4), TOBN(0x87bfbcdf, 0x4c762293), + TOBN(0xf78ab505, 0xcdd61d64), TOBN(0x8c7a53fc, 0xc8c18857), + TOBN(0xa653ce6f, 0x16147515), TOBN(0x9c923aa5, 0xea7d52d5), + TOBN(0xc24709cb, 0x5c18871f), TOBN(0x7d53bec8, 0x73b3cc74), + TOBN(0x59264aff, 0xfdd1d4c4), TOBN(0x5555917e, 0x240da582), + TOBN(0xcae8bbda, 0x548f5a0e), TOBN(0x1910eaba, 0x3bbfbbe1), + TOBN(0xae579685, 0x7677afc3), TOBN(0x49ea61f1, 0x73ff0b5c), + TOBN(0x78655478, 0x4f7c3922), TOBN(0x95d337cd, 0x20c68eef), + TOBN(0x68f1e1e5, 0xdf779ab9), TOBN(0x14b491b0, 0xb5cf69a8), + TOBN(0x7a6cbbe0, 0x28e3fe89), TOBN(0xe7e1fee4, 0xc5aac0eb), + TOBN(0x7f47eda5, 0x697e5140), TOBN(0x4f450137, 0xb454921f), + TOBN(0xdb625f84, 0x95cd8185), TOBN(0x74be0ba1, 0xcdb2e583), + TOBN(0xaee4fd7c, 0xdd5e6de4), TOBN(0x4251437d, 0xe8101739), + TOBN(0x686d72a0, 0xac620366), TOBN(0x4be3fb9c, 0xb6d59344), + TOBN(0x6e8b44e7, 0xa1eb75b9), TOBN(0x84e39da3, 0x91a5c10c), + TOBN(0x37cc1490, 0xb38f0409), TOBN(0x02951943, 0x2c2ade82), + TOBN(0x9b688783, 0x1190a2d8), TOBN(0x25627d14, 0x231182ba), + TOBN(0x6eb550aa, 0x658a6d87), TOBN(0x1405aaa7, 0xcf9c7325), + TOBN(0xd147142e, 0x5c8748c9), TOBN(0x7f637e4f, 0x53ede0e0), + TOBN(0xf8ca2776, 0x14ffad2c), TOBN(0xe58fb1bd, 0xbafb6791), + TOBN(0x17158c23, 0xbf8f93fc), TOBN(0x7f15b373, 0x0a4a4655), + TOBN(0x39d4add2, 0xd842ca72), TOBN(0xa71e4391, 0x3ed96305), + TOBN(0x5bb09cbe, 0x6700be14), TOBN(0x68d69d54, 0xd8befcf6), + TOBN(0xa45f5367, 0x37183bcf), TOBN(0x7152b7bb, 0x3370dff7), + TOBN(0xcf887baa, 0xbf12525b), TOBN(0xe7ac7bdd, 0xd6d1e3cd), + TOBN(0x25914f78, 0x81fdad90), TOBN(0xcf638f56, 0x0d2cf6ab), + TOBN(0xb90bc03f, 0xcc054de5), TOBN(0x932811a7, 0x18b06350), + TOBN(0x2f00b330, 0x9bbd11ff), TOBN(0x76108a6f, 0xb4044974), + TOBN(0x801bb9e0, 0xa851d266), TOBN(0x0dd099be, 0xbf8990c1), + TOBN(0x58c5aaaa, 0xabe32986), TOBN(0x0fe9dd2a, 0x50d59c27), + TOBN(0x84951ff4, 0x8d307305), TOBN(0x6c23f829, 0x86529b78), + TOBN(0x50bb2218, 0x0b136a79), TOBN(0x7e2174de, 0x77a20996), + TOBN(0x6f00a4b9, 0xc0bb4da6), TOBN(0x89a25a17, 0xefdde8da), + TOBN(0xf728a27e, 0xc11ee01d), TOBN(0xf900553a, 0xe5f10dfb), + TOBN(0x189a83c8, 0x02ec893c), TOBN(0x3ca5bdc1, 0x23f66d77), + TOBN(0x98781537, 0x97eada9f), TOBN(0x59c50ab3, 0x10256230), + TOBN(0x346042d9, 0x323c69b3), TOBN(0x1b715a6d, 0x2c460449), + TOBN(0xa41dd476, 0x6ae06e0b), TOBN(0xcdd7888e, 0x9d42e25f), + TOBN(0x0f395f74, 0x56b25a20), TOBN(0xeadfe0ae, 0x8700e27e), + TOBN(0xb09d52a9, 0x69950093), TOBN(0x3525d9cb, 0x327f8d40), + TOBN(0xb8235a94, 0x67df886a), TOBN(0x77e4b0dd, 0x035faec2), + TOBN(0x115eb20a, 0x517d7061), TOBN(0x77fe3433, 0x6c2df683), + TOBN(0x6870ddc7, 0xcdc6fc67), TOBN(0xb1610588, 0x0b87de83), + TOBN(0x343584ca, 0xd9c4ddbe), TOBN(0xb3164f1c, 0x3d754be2), + TOBN(0x0731ed3a, 0xc1e6c894), TOBN(0x26327dec, 0x4f6b904c), + TOBN(0x9d49c6de, 0x97b5cd32), TOBN(0x40835dae, 0xb5eceecd), + TOBN(0xc66350ed, 0xd9ded7fe), TOBN(0x8aeebb5c, 0x7a678804), + TOBN(0x51d42fb7, 0x5b8ee9ec), TOBN(0xd7a17bdd, 0x8e3ca118), + TOBN(0x40d7511a, 0x2ef4400e), TOBN(0xc48990ac, 0x875a66f4), + TOBN(0x8de07d2a, 0x2199e347), TOBN(0xbee75556, 0x2a39e051), + TOBN(0x56918786, 0x916e51dc), TOBN(0xeb191313, 0x4a2d89ec), + TOBN(0x6679610d, 0x37d341ed), TOBN(0x434fbb41, 0x56d51c2b), + TOBN(0xe54b7ee7, 0xd7492dba), TOBN(0xaa33a79a, 0x59021493), + TOBN(0x49fc5054, 0xe4bd6d3d), TOBN(0x09540f04, 0x5ab551d0), + TOBN(0x8acc9085, 0x4942d3a6), TOBN(0x231af02f, 0x2d28323b), + TOBN(0x93458cac, 0x0992c163), TOBN(0x1fef8e71, 0x888e3bb4), + TOBN(0x27578da5, 0xbe8c268c), TOBN(0xcc8be792, 0xe805ec00), + TOBN(0x29267bae, 0xc61c3855), TOBN(0xebff429d, 0x58c1fd3b), + TOBN(0x22d886c0, 0x8c0b93b8), TOBN(0xca5e00b2, 0x2ddb8953), + TOBN(0xcf330117, 0xc3fed8b7), TOBN(0xd49ac6fa, 0x819c01f6), + TOBN(0x6ddaa6bd, 0x3c0fbd54), TOBN(0x91743068, 0x8049a2cf), + TOBN(0xd67f981e, 0xaff2ef81), TOBN(0xc3654d35, 0x2818ae80), + TOBN(0x81d05044, 0x1b2aa892), TOBN(0x2db067bf, 0x3d099328), + TOBN(0xe7c79e86, 0x703dcc97), TOBN(0xe66f9b37, 0xe133e215), + TOBN(0xcdf119a6, 0xe39a7a5c), TOBN(0x47c60de3, 0x876f1b61), + TOBN(0x6e405939, 0xd860f1b2), TOBN(0x3e9a1dbc, 0xf5ed4d4a), + TOBN(0x3f23619e, 0xc9b6bcbd), TOBN(0x5ee790cf, 0x734e4497), + TOBN(0xf0a834b1, 0x5bdaf9bb), TOBN(0x02cedda7, 0x4ca295f0), + TOBN(0x4619aa2b, 0xcb8e378c), TOBN(0xe5613244, 0xcc987ea4), + TOBN(0x0bc022cc, 0x76b23a50), TOBN(0x4a2793ad, 0x0a6c21ce), + TOBN(0x38328780, 0x89cac3f5), TOBN(0x29176f1b, 0xcba26d56), + TOBN(0x06296187, 0x4f6f59eb), TOBN(0x86e9bca9, 0x8bdc658e), + TOBN(0x2ca9c4d3, 0x57e30402), TOBN(0x5438b216, 0x516a09bb), + TOBN(0x0a6a063c, 0x7672765a), TOBN(0x37a3ce64, 0x0547b9bf), + TOBN(0x42c099c8, 0x98b1a633), TOBN(0xb5ab800d, 0x05ee6961), + TOBN(0xf1963f59, 0x11a5acd6), TOBN(0xbaee6157, 0x46201063), + TOBN(0x36d9a649, 0xa596210a), TOBN(0xaed04363, 0x1ba7138c), + TOBN(0xcf817d1c, 0xa4a82b76), TOBN(0x5586960e, 0xf3806be9), + TOBN(0x7ab67c89, 0x09dc6bb5), TOBN(0x52ace7a0, 0x114fe7eb), + TOBN(0xcd987618, 0xcbbc9b70), TOBN(0x4f06fd5a, 0x604ca5e1), + TOBN(0x90af14ca, 0x6dbde133), TOBN(0x1afe4322, 0x948a3264), + TOBN(0xa70d2ca6, 0xc44b2c6c), TOBN(0xab726799, 0x0ef87dfe), + TOBN(0x310f64dc, 0x2e696377), TOBN(0x49b42e68, 0x4c8126a0), + TOBN(0x0ea444c3, 0xcea0b176), TOBN(0x53a8ddf7, 0xcb269182), + TOBN(0xf3e674eb, 0xbbba9dcb), TOBN(0x0d2878a8, 0xd8669d33), + TOBN(0x04b935d5, 0xd019b6a3), TOBN(0xbb5cf88e, 0x406f1e46), + TOBN(0xa1912d16, 0x5b57c111), TOBN(0x9803fc21, 0x19ebfd78), + TOBN(0x4f231c9e, 0xc07764a9), TOBN(0xd93286ee, 0xb75bd055), + TOBN(0x83a9457d, 0x8ee6c9de), TOBN(0x04695915, 0x6087ec90), + TOBN(0x14c6dd8a, 0x58d6cd46), TOBN(0x9cb633b5, 0x8e6634d2), + TOBN(0xc1305047, 0xf81bc328), TOBN(0x12ede0e2, 0x26a177e5), + TOBN(0x332cca62, 0x065a6f4f), TOBN(0xc3a47ecd, 0x67be487b), + TOBN(0x741eb187, 0x0f47ed1c), TOBN(0x99e66e58, 0xe7598b14), + TOBN(0x6f0544ca, 0x63d0ff12), TOBN(0xe5efc784, 0xb610a05f), + TOBN(0xf72917b1, 0x7cad7b47), TOBN(0x3ff6ea20, 0xf2cac0c0), + TOBN(0xcc23791b, 0xf21db8b7), TOBN(0x7dac70b1, 0xd7d93565), + TOBN(0x682cda1d, 0x694bdaad), TOBN(0xeb88bb8c, 0x1023516d), + TOBN(0xc4c634b4, 0xdfdbeb1b), TOBN(0x22f5ca72, 0xb4ee4dea), + TOBN(0x1045a368, 0xe6524821), TOBN(0xed9e8a3f, 0x052b18b2), + TOBN(0x9b7f2cb1, 0xb961f49a), TOBN(0x7fee2ec1, 0x7b009670), + TOBN(0x350d8754, 0x22507a6d), TOBN(0x561bd711, 0x4db55f1d), + TOBN(0x4c189ccc, 0x320bbcaf), TOBN(0x568434cf, 0xdf1de48c), + TOBN(0x6af1b00e, 0x0fa8f128), TOBN(0xf0ba9d02, 0x8907583c), + TOBN(0x735a4004, 0x32ff9f60), TOBN(0x3dd8e4b6, 0xc25dcf33), + TOBN(0xf2230f16, 0x42c74cef), TOBN(0xd8117623, 0x013fa8ad), + TOBN(0x36822876, 0xf51fe76e), TOBN(0x8a6811cc, 0x11d62589), + TOBN(0xc3fc7e65, 0x46225718), TOBN(0xb7df2c9f, 0xc82fdbcd), + TOBN(0x3b1d4e52, 0xdd7b205b), TOBN(0xb6959478, 0x47a2e414), + TOBN(0x05e4d793, 0xefa91148), TOBN(0xb47ed446, 0xfd2e9675), + TOBN(0x1a7098b9, 0x04c9d9bf), TOBN(0x661e2881, 0x1b793048), + TOBN(0xb1a16966, 0xb01ee461), TOBN(0xbc521308, 0x2954746f), + TOBN(0xc909a0fc, 0x2477de50), TOBN(0xd80bb41c, 0x7dbd51ef), + TOBN(0xa85be7ec, 0x53294905), TOBN(0x6d465b18, 0x83958f97), + TOBN(0x16f6f330, 0xfb6840fd), TOBN(0xfaaeb214, 0x3401e6c8), + TOBN(0xaf83d30f, 0xccb5b4f8), TOBN(0x22885739, 0x266dec4b), + TOBN(0x51b4367c, 0x7bc467df), TOBN(0x926562e3, 0xd842d27a), + TOBN(0xdfcb6614, 0x0fea14a6), TOBN(0xeb394dae, 0xf2734cd9), + TOBN(0x3eeae5d2, 0x11c0be98), TOBN(0xb1e6ed11, 0x814e8165), + TOBN(0x191086bc, 0xe52bce1c), TOBN(0x14b74cc6, 0xa75a04da), + TOBN(0x63cf1186, 0x8c060985), TOBN(0x071047de, 0x2dbd7f7c), + TOBN(0x4e433b8b, 0xce0942ca), TOBN(0xecbac447, 0xd8fec61d), + TOBN(0x8f0ed0e2, 0xebf3232f), TOBN(0xfff80f9e, 0xc52a2edd), + TOBN(0xad9ab433, 0x75b55fdb), TOBN(0x73ca7820, 0xe42e0c11), + TOBN(0x6dace0a0, 0xe6251b46), TOBN(0x89bc6b5c, 0x4c0d932d), + TOBN(0x3438cd77, 0x095da19a), TOBN(0x2f24a939, 0x8d48bdfb), + TOBN(0x99b47e46, 0x766561b7), TOBN(0x736600e6, 0x0ed0322a), + TOBN(0x06a47cb1, 0x638e1865), TOBN(0x927c1c2d, 0xcb136000), + TOBN(0x29542337, 0x0cc5df69), TOBN(0x99b37c02, 0x09d649a9), + TOBN(0xc5f0043c, 0x6aefdb27), TOBN(0x6cdd9987, 0x1be95c27), + TOBN(0x69850931, 0x390420d2), TOBN(0x299c40ac, 0x0983efa4), + TOBN(0x3a05e778, 0xaf39aead), TOBN(0x84274408, 0x43a45193), + TOBN(0x6bcd0fb9, 0x91a711a0), TOBN(0x461592c8, 0x9f52ab17), + TOBN(0xb49302b4, 0xda3c6ed6), TOBN(0xc51fddc7, 0x330d7067), + TOBN(0x94babeb6, 0xda50d531), TOBN(0x521b840d, 0xa6a7b9da), + TOBN(0x5305151e, 0x404bdc89), TOBN(0x1bcde201, 0xd0d07449), + TOBN(0xf427a78b, 0x3b76a59a), TOBN(0xf84841ce, 0x07791a1b), + TOBN(0xebd314be, 0xbf91ed1c), TOBN(0x8e61d34c, 0xbf172943), + TOBN(0x1d5dc451, 0x5541b892), TOBN(0xb186ee41, 0xfc9d9e54), + TOBN(0x9d9f345e, 0xd5bf610d), TOBN(0x3e7ba65d, 0xf6acca9f), + TOBN(0x9dda787a, 0xa8369486), TOBN(0x09f9dab7, 0x8eb5ba53), + TOBN(0x5afb2033, 0xd6481bc3), TOBN(0x76f4ce30, 0xafa62104), + TOBN(0xa8fa00cf, 0xf4f066b5), TOBN(0x89ab5143, 0x461dafc2), + TOBN(0x44339ed7, 0xa3389998), TOBN(0x2ff862f1, 0xbc214903), + TOBN(0x2c88f985, 0xb05556e3), TOBN(0xcd96058e, 0x3467081e), + TOBN(0x7d6a4176, 0xedc637ea), TOBN(0xe1743d09, 0x36a5acdc), + TOBN(0x66fd72e2, 0x7eb37726), TOBN(0xf7fa264e, 0x1481a037), + TOBN(0x9fbd3bde, 0x45f4aa79), TOBN(0xed1e0147, 0x767c3e22), + TOBN(0x7621f979, 0x82e7abe2), TOBN(0x19eedc72, 0x45f633f8), + TOBN(0xe69b155e, 0x6137bf3a), TOBN(0xa0ad13ce, 0x414ee94e), + TOBN(0x93e3d524, 0x1c0e651a), TOBN(0xab1a6e2a, 0x02ce227e), + TOBN(0xe7af1797, 0x4ab27eca), TOBN(0x245446de, 0xbd444f39), + TOBN(0x59e22a21, 0x56c07613), TOBN(0x43deafce, 0xf4275498), + TOBN(0x10834ccb, 0x67fd0946), TOBN(0xa75841e5, 0x47406edf), + TOBN(0xebd6a677, 0x7b0ac93d), TOBN(0xa6e37b0d, 0x78f5e0d7), + TOBN(0x2516c096, 0x76f5492b), TOBN(0x1e4bf888, 0x9ac05f3a), + TOBN(0xcdb42ce0, 0x4df0ba2b), TOBN(0x935d5cfd, 0x5062341b), + TOBN(0x8a303333, 0x82acac20), TOBN(0x429438c4, 0x5198b00e), + TOBN(0x1d083bc9, 0x049d33fa), TOBN(0x58b82dda, 0x946f67ff), + TOBN(0xac3e2db8, 0x67a1d6a3), TOBN(0x62e6bead, 0x1798aac8), + TOBN(0xfc85980f, 0xde46c58c), TOBN(0xa7f69379, 0x69c8d7be), + TOBN(0x23557927, 0x837b35ec), TOBN(0x06a933d8, 0xe0790c0c), + TOBN(0x827c0e9b, 0x077ff55d), TOBN(0x53977798, 0xbb26e680), + TOBN(0x59530874, 0x1d9cb54f), TOBN(0xcca3f449, 0x4aac53ef), + TOBN(0x11dc5c87, 0xa07eda0f), TOBN(0xc138bccf, 0xfd6400c8), + TOBN(0x549680d3, 0x13e5da72), TOBN(0xc93eed82, 0x4540617e), + TOBN(0xfd3db157, 0x4d0b75c0), TOBN(0x9716eb42, 0x6386075b), + TOBN(0x0639605c, 0x817b2c16), TOBN(0x09915109, 0xf1e4f201), + TOBN(0x35c9a928, 0x5cca6c3b), TOBN(0xb25f7d1a, 0x3505c900), + TOBN(0xeb9f7d20, 0x630480c4), TOBN(0xc3c7b8c6, 0x2a1a501c), + TOBN(0x3f99183c, 0x5a1f8e24), TOBN(0xfdb118fa, 0x9dd255f0), + TOBN(0xb9b18b90, 0xc27f62a6), TOBN(0xe8f732f7, 0x396ec191), + TOBN(0x524a2d91, 0x0be786ab), TOBN(0x5d32adef, 0x0ac5a0f5), + TOBN(0x9b53d4d6, 0x9725f694), TOBN(0x032a76c6, 0x0510ba89), + TOBN(0x840391a3, 0xebeb1544), TOBN(0x44b7b88c, 0x3ed73ac3), + TOBN(0xd24bae7a, 0x256cb8b3), TOBN(0x7ceb151a, 0xe394cb12), + TOBN(0xbd6b66d0, 0x5bc1e6a8), TOBN(0xec70cecb, 0x090f07bf), + TOBN(0x270644ed, 0x7d937589), TOBN(0xee9e1a3d, 0x5f1dccfe), + TOBN(0xb0d40a84, 0x745b98d2), TOBN(0xda429a21, 0x2556ed40), + TOBN(0xf676eced, 0x85148cb9), TOBN(0x5a22d40c, 0xded18936), + TOBN(0x3bc4b9e5, 0x70e8a4ce), TOBN(0xbfd1445b, 0x9eae0379), + TOBN(0xf23f2c0c, 0x1a0bd47e), TOBN(0xa9c0bb31, 0xe1845531), + TOBN(0x9ddc4d60, 0x0a4c3f6b), TOBN(0xbdfaad79, 0x2c15ef44), + TOBN(0xce55a236, 0x7f484acc), TOBN(0x08653ca7, 0x055b1f15), + TOBN(0x2efa8724, 0x538873a3), TOBN(0x09299e5d, 0xace1c7e7), + TOBN(0x07afab66, 0xade332ba), TOBN(0x9be1fdf6, 0x92dd71b7), + TOBN(0xa49b5d59, 0x5758b11c), TOBN(0x0b852893, 0xc8654f40), + TOBN(0xb63ef6f4, 0x52379447), TOBN(0xd4957d29, 0x105e690c), + TOBN(0x7d484363, 0x646559b0), TOBN(0xf4a8273c, 0x49788a8e), + TOBN(0xee406cb8, 0x34ce54a9), TOBN(0x1e1c260f, 0xf86fda9b), + TOBN(0xe150e228, 0xcf6a4a81), TOBN(0x1fa3b6a3, 0x1b488772), + TOBN(0x1e6ff110, 0xc5a9c15b), TOBN(0xc6133b91, 0x8ad6aa47), + TOBN(0x8ac5d55c, 0x9dffa978), TOBN(0xba1d1c1d, 0x5f3965f2), + TOBN(0xf969f4e0, 0x7732b52f), TOBN(0xfceecdb5, 0xa5172a07), + TOBN(0xb0120a5f, 0x10f2b8f5), TOBN(0xc83a6cdf, 0x5c4c2f63), + TOBN(0x4d47a491, 0xf8f9c213), TOBN(0xd9e1cce5, 0xd3f1bbd5), + TOBN(0x0d91bc7c, 0xaba7e372), TOBN(0xfcdc74c8, 0xdfd1a2db), + TOBN(0x05efa800, 0x374618e5), TOBN(0x11216969, 0x15a7925e), + TOBN(0xd4c89823, 0xf6021c5d), TOBN(0x880d5e84, 0xeff14423), + TOBN(0x6523bc5a, 0x6dcd1396), TOBN(0xd1acfdfc, 0x113c978b), + TOBN(0xb0c164e8, 0xbbb66840), TOBN(0xf7f4301e, 0x72b58459), + TOBN(0xc29ad4a6, 0xa638e8ec), TOBN(0xf5ab8961, 0x46b78699), + TOBN(0x9dbd7974, 0x0e954750), TOBN(0x0121de88, 0x64f9d2c6), + TOBN(0x2e597b42, 0xd985232e), TOBN(0x55b6c3c5, 0x53451777), + TOBN(0xbb53e547, 0x519cb9fb), TOBN(0xf134019f, 0x8428600d), + TOBN(0x5a473176, 0xe081791a), TOBN(0x2f3e2263, 0x35fb0c08), + TOBN(0xb28c3017, 0x73d273b0), TOBN(0xccd21076, 0x7721ef9a), + TOBN(0x054cc292, 0xb650dc39), TOBN(0x662246de, 0x6188045e), + TOBN(0x904b52fa, 0x6b83c0d1), TOBN(0xa72df267, 0x97e9cd46), + TOBN(0x886b43cd, 0x899725e4), TOBN(0x2b651688, 0xd849ff22), + TOBN(0x60479b79, 0x02f34533), TOBN(0x5e354c14, 0x0c77c148), + TOBN(0xb4bb7581, 0xa8537c78), TOBN(0x188043d7, 0xefe1495f), + TOBN(0x9ba12f42, 0x8c1d5026), TOBN(0x2e0c8a26, 0x93d4aaab), + TOBN(0xbdba7b8b, 0xaa57c450), TOBN(0x140c9ad6, 0x9bbdafef), + TOBN(0x2067aa42, 0x25ac0f18), TOBN(0xf7b1295b, 0x04d1fbf3), + TOBN(0x14829111, 0xa4b04824), TOBN(0x2ce3f192, 0x33bd5e91), + TOBN(0x9c7a1d55, 0x8f2e1b72), TOBN(0xfe932286, 0x302aa243), + TOBN(0x497ca7b4, 0xd4be9554), TOBN(0xb8e821b8, 0xe0547a6e), + TOBN(0xfb2838be, 0x67e573e0), TOBN(0x05891db9, 0x4084c44b), + TOBN(0x91311373, 0x96c1c2c5), TOBN(0x6aebfa3f, 0xd958444b), + TOBN(0xac9cdce9, 0xe56e55c1), TOBN(0x7148ced3, 0x2caa46d0), + TOBN(0x2e10c7ef, 0xb61fe8eb), TOBN(0x9fd835da, 0xff97cf4d),} + , + {TOBN(0xa36da109, 0x081e9387), TOBN(0xfb9780d7, 0x8c935828), + TOBN(0xd5940332, 0xe540b015), TOBN(0xc9d7b51b, 0xe0f466fa), + TOBN(0xfaadcd41, 0xd6d9f671), TOBN(0xba6c1e28, 0xb1a2ac17), + TOBN(0x066a7833, 0xed201e5f), TOBN(0x19d99719, 0xf90f462b), + TOBN(0xf431f462, 0x060b5f61), TOBN(0xa56f46b4, 0x7bd057c2), + TOBN(0x348dca6c, 0x47e1bf65), TOBN(0x9a38783e, 0x41bcf1ff), + TOBN(0x7a5d33a9, 0xda710718), TOBN(0x5a779987, 0x2e0aeaf6), + TOBN(0xca87314d, 0x2d29d187), TOBN(0xfa0edc3e, 0xc687d733), + TOBN(0x9df33621, 0x6a31e09b), TOBN(0xde89e44d, 0xc1350e35), + TOBN(0x29214871, 0x4ca0cf52), TOBN(0xdf379672, 0x0b88a538), + TOBN(0xc92a510a, 0x2591d61b), TOBN(0x79aa87d7, 0x585b447b), + TOBN(0xf67db604, 0xe5287f77), TOBN(0x1697c8bf, 0x5efe7a80), + TOBN(0x1c894849, 0xcb198ac7), TOBN(0xa884a93d, 0x0f264665), + TOBN(0x2da964ef, 0x9b200678), TOBN(0x3c351b87, 0x009834e6), + TOBN(0xafb2ef9f, 0xe2c4b44b), TOBN(0x580f6c47, 0x3326790c), + TOBN(0xb8480521, 0x0b02264a), TOBN(0x8ba6f9e2, 0x42a194e2), + TOBN(0xfc87975f, 0x8fb54738), TOBN(0x35160788, 0x27c3ead3), + TOBN(0x834116d2, 0xb74a085a), TOBN(0x53c99a73, 0xa62fe996), + TOBN(0x87585be0, 0x5b81c51b), TOBN(0x925bafa8, 0xbe0852b7), + TOBN(0x76a4fafd, 0xa84d19a7), TOBN(0x39a45982, 0x585206d4), + TOBN(0x499b6ab6, 0x5eb03c0e), TOBN(0xf19b7954, 0x72bc3fde), + TOBN(0xa86b5b9c, 0x6e3a80d2), TOBN(0xe4377508, 0x6d42819f), + TOBN(0xc1663650, 0xbb3ee8a3), TOBN(0x75eb14fc, 0xb132075f), + TOBN(0xa8ccc906, 0x7ad834f6), TOBN(0xea6a2474, 0xe6e92ffd), + TOBN(0x9d72fd95, 0x0f8d6758), TOBN(0xcb84e101, 0x408c07dd), + TOBN(0xb9114bfd, 0xa5e23221), TOBN(0x358b5fe2, 0xe94e742c), + TOBN(0x1c0577ec, 0x95f40e75), TOBN(0xf0155451, 0x3d73f3d6), + TOBN(0x9d55cd67, 0xbd1b9b66), TOBN(0x63e86e78, 0xaf8d63c7), + TOBN(0x39d934ab, 0xd3c095f1), TOBN(0x04b261be, 0xe4b76d71), + TOBN(0x1d2e6970, 0xe73e6984), TOBN(0x879fb23b, 0x5e5fcb11), + TOBN(0x11506c72, 0xdfd75490), TOBN(0x3a97d085, 0x61bcf1c1), + TOBN(0x43201d82, 0xbf5e7007), TOBN(0x7f0ac52f, 0x798232a7), + TOBN(0x2715cbc4, 0x6eb564d4), TOBN(0x8d6c752c, 0x9e570e29), + TOBN(0xf80247c8, 0x9ef5fd5d), TOBN(0xc3c66b46, 0xd53eb514), + TOBN(0x9666b401, 0x0f87de56), TOBN(0xce62c06f, 0xc6c603b5), + TOBN(0xae7b4c60, 0x7e4fc942), TOBN(0x38ac0b77, 0x663a9c19), + TOBN(0xcb4d20ee, 0x4b049136), TOBN(0x8b63bf12, 0x356a4613), + TOBN(0x1221aef6, 0x70e08128), TOBN(0xe62d8c51, 0x4acb6b16), + TOBN(0x71f64a67, 0x379e7896), TOBN(0xb25237a2, 0xcafd7fa5), + TOBN(0xf077bd98, 0x3841ba6a), TOBN(0xc4ac0244, 0x3cd16e7e), + TOBN(0x548ba869, 0x21fea4ca), TOBN(0xd36d0817, 0xf3dfdac1), + TOBN(0x09d8d71f, 0xf4685faf), TOBN(0x8eff66be, 0xc52c459a), + TOBN(0x182faee7, 0x0b57235e), TOBN(0xee3c39b1, 0x0106712b), + TOBN(0x5107331f, 0xc0fcdcb0), TOBN(0x669fb9dc, 0xa51054ba), + TOBN(0xb25101fb, 0x319d7682), TOBN(0xb0293129, 0x0a982fee), + TOBN(0x51c1c9b9, 0x0261b344), TOBN(0x0e008c5b, 0xbfd371fa), + TOBN(0xd866dd1c, 0x0278ca33), TOBN(0x666f76a6, 0xe5aa53b1), + TOBN(0xe5cfb779, 0x6013a2cf), TOBN(0x1d3a1aad, 0xa3521836), + TOBN(0xcedd2531, 0x73faa485), TOBN(0xc8ee6c4f, 0xc0a76878), + TOBN(0xddbccfc9, 0x2a11667d), TOBN(0x1a418ea9, 0x1c2f695a), + TOBN(0xdb11bd92, 0x51f73971), TOBN(0x3e4b3c82, 0xda2ed89f), + TOBN(0x9a44f3f4, 0xe73e0319), TOBN(0xd1e3de0f, 0x303431af), + TOBN(0x3c5604ff, 0x50f75f9c), TOBN(0x1d8eddf3, 0x7e752b22), + TOBN(0x0ef074dd, 0x3c9a1118), TOBN(0xd0ffc172, 0xccb86d7b), + TOBN(0xabd1ece3, 0x037d90f2), TOBN(0xe3f307d6, 0x6055856c), + TOBN(0x422f9328, 0x7e4c6daf), TOBN(0x902aac66, 0x334879a0), + TOBN(0xb6a1e7bf, 0x94cdfade), TOBN(0x6c97e1ed, 0x7fc6d634), + TOBN(0x662ad24d, 0xa2fb63f8), TOBN(0xf81be1b9, 0xa5928405), + TOBN(0x86d765e4, 0xd14b4206), TOBN(0xbecc2e0e, 0x8fa0db65), + TOBN(0xa28838e0, 0xb17fc76c), TOBN(0xe49a602a, 0xe37cf24e), + TOBN(0x76b4131a, 0x567193ec), TOBN(0xaf3c305a, 0xe5f6e70b), + TOBN(0x9587bd39, 0x031eebdd), TOBN(0x5709def8, 0x71bbe831), + TOBN(0x57059983, 0x0eb2b669), TOBN(0x4d80ce1b, 0x875b7029), + TOBN(0x838a7da8, 0x0364ac16), TOBN(0x2f431d23, 0xbe1c83ab), + TOBN(0xe56812a6, 0xf9294dd3), TOBN(0xb448d01f, 0x9b4b0d77), + TOBN(0xf3ae6061, 0x04e8305c), TOBN(0x2bead645, 0x94d8c63e), + TOBN(0x0a85434d, 0x84fd8b07), TOBN(0x537b983f, 0xf7a9dee5), + TOBN(0xedcc5f18, 0xef55bd85), TOBN(0x2041af62, 0x21c6cf8b), + TOBN(0x8e52874c, 0xb940c71e), TOBN(0x211935a9, 0xdb5f4b3a), + TOBN(0x94350492, 0x301b1dc3), TOBN(0x33d2646d, 0x29958620), + TOBN(0x16b0d64b, 0xef911404), TOBN(0x9d1f25ea, 0x9a3c5ef4), + TOBN(0x20f200eb, 0x4a352c78), TOBN(0x43929f2c, 0x4bd0b428), + TOBN(0xa5656667, 0xc7196e29), TOBN(0x7992c2f0, 0x9391be48), + TOBN(0xaaa97cbd, 0x9ee0cd6e), TOBN(0x51b0310c, 0x3dc8c9bf), + TOBN(0x237f8acf, 0xdd9f22cb), TOBN(0xbb1d81a1, 0xb585d584), + TOBN(0x8d5d85f5, 0x8c416388), TOBN(0x0d6e5a5a, 0x42fe474f), + TOBN(0xe7812766, 0x38235d4e), TOBN(0x1c62bd67, 0x496e3298), + TOBN(0x8378660c, 0x3f175bc8), TOBN(0x4d04e189, 0x17afdd4d), + TOBN(0x32a81601, 0x85a8068c), TOBN(0xdb58e4e1, 0x92b29a85), + TOBN(0xe8a65b86, 0xc70d8a3b), TOBN(0x5f0e6f4e, 0x98a0403b), + TOBN(0x08129684, 0x69ed2370), TOBN(0x34dc30bd, 0x0871ee26), + TOBN(0x3a5ce948, 0x7c9c5b05), TOBN(0x7d487b80, 0x43a90c87), + TOBN(0x4089ba37, 0xdd0e7179), TOBN(0x45f80191, 0xb4041811), + TOBN(0x1c3e1058, 0x98747ba5), TOBN(0x98c4e13a, 0x6e1ae592), + TOBN(0xd44636e6, 0xe82c9f9e), TOBN(0x711db87c, 0xc33a1043), + TOBN(0x6f431263, 0xaa8aec05), TOBN(0x43ff120d, 0x2744a4aa), + TOBN(0xd3bd892f, 0xae77779b), TOBN(0xf0fe0cc9, 0x8cdc9f82), + TOBN(0xca5f7fe6, 0xf1c5b1bc), TOBN(0xcc63a682, 0x44929a72), + TOBN(0xc7eaba0c, 0x09dbe19a), TOBN(0x2f3585ad, 0x6b5c73c2), + TOBN(0x8ab8924b, 0x0ae50c30), TOBN(0x17fcd27a, 0x638b30ba), + TOBN(0xaf414d34, 0x10b3d5a5), TOBN(0x09c107d2, 0x2a9accf1), + TOBN(0x15dac49f, 0x946a6242), TOBN(0xaec3df2a, 0xd707d642), + TOBN(0x2c2492b7, 0x3f894ae0), TOBN(0xf59df3e5, 0xb75f18ce), + TOBN(0x7cb740d2, 0x8f53cad0), TOBN(0x3eb585fb, 0xc4f01294), + TOBN(0x17da0c86, 0x32c7f717), TOBN(0xeb8c795b, 0xaf943f4c), + TOBN(0x4ee23fb5, 0xf67c51d2), TOBN(0xef187575, 0x68889949), + TOBN(0xa6b4bdb2, 0x0389168b), TOBN(0xc4ecd258, 0xea577d03), + TOBN(0x3a63782b, 0x55743082), TOBN(0x6f678f4c, 0xc72f08cd), + TOBN(0x553511cf, 0x65e58dd8), TOBN(0xd53b4e3e, 0xd402c0cd), + TOBN(0x37de3e29, 0xa037c14c), TOBN(0x86b6c516, 0xc05712aa), + TOBN(0x2834da3e, 0xb38dff6f), TOBN(0xbe012c52, 0xea636be8), + TOBN(0x292d238c, 0x61dd37f8), TOBN(0x0e54523f, 0x8f8142db), + TOBN(0xe31eb436, 0x036a05d8), TOBN(0x83e3cdff, 0x1e93c0ff), + TOBN(0x3fd2fe0f, 0x50821ddf), TOBN(0xc8e19b0d, 0xff9eb33b), + TOBN(0xc8cc943f, 0xb569a5fe), TOBN(0xad0090d4, 0xd4342d75), + TOBN(0x82090b4b, 0xcaeca000), TOBN(0xca39687f, 0x1bd410eb), + TOBN(0xe7bb0df7, 0x65959d77), TOBN(0x39d78218, 0x9c964999), + TOBN(0xd87f62e8, 0xb2415451), TOBN(0xe5efb774, 0xbed76108), + TOBN(0x3ea011a4, 0xe822f0d0), TOBN(0xbc647ad1, 0x5a8704f8), + TOBN(0xbb315b35, 0x50c6820f), TOBN(0x863dec3d, 0xb7e76bec), + TOBN(0x01ff5d3a, 0xf017bfc7), TOBN(0x20054439, 0x976b8229), + TOBN(0x067fca37, 0x0bbd0d3b), TOBN(0xf63dde64, 0x7f5e3d0f), + TOBN(0x22dbefb3, 0x2a4c94e9), TOBN(0xafbff0fe, 0x96f8278a), + TOBN(0x80aea0b1, 0x3503793d), TOBN(0xb2238029, 0x5f06cd29), + TOBN(0x65703e57, 0x8ec3feca), TOBN(0x06c38314, 0x393e7053), + TOBN(0xa0b751eb, 0x7c6734c4), TOBN(0xd2e8a435, 0xc59f0f1e), + TOBN(0x147d9052, 0x5e9ca895), TOBN(0x2f4dd31e, 0x972072df), + TOBN(0xa16fda8e, 0xe6c6755c), TOBN(0xc66826ff, 0xcf196558), + TOBN(0x1f1a76a3, 0x0cf43895), TOBN(0xa9d604e0, 0x83c3097b), + TOBN(0xe1908309, 0x66390e0e), TOBN(0xa50bf753, 0xb3c85eff), + TOBN(0x0696bdde, 0xf6a70251), TOBN(0x548b801b, 0x3c6ab16a), + TOBN(0x37fcf704, 0xa4d08762), TOBN(0x090b3def, 0xdff76c4e), + TOBN(0x87e8cb89, 0x69cb9158), TOBN(0x44a90744, 0x995ece43), + TOBN(0xf85395f4, 0x0ad9fbf5), TOBN(0x49b0f6c5, 0x4fb0c82d), + TOBN(0x75d9bc15, 0xadf7cccf), TOBN(0x81a3e5d6, 0xdfa1e1b0), + TOBN(0x8c39e444, 0x249bc17e), TOBN(0xf37dccb2, 0x8ea7fd43), + TOBN(0xda654873, 0x907fba12), TOBN(0x35daa6da, 0x4a372904), + TOBN(0x0564cfc6, 0x6283a6c5), TOBN(0xd09fa4f6, 0x4a9395bf), + TOBN(0x688e9ec9, 0xaeb19a36), TOBN(0xd913f1ce, 0xc7bfbfb4), + TOBN(0x797b9a3c, 0x61c2faa6), TOBN(0x2f979bec, 0x6a0a9c12), + TOBN(0xb5969d0f, 0x359679ec), TOBN(0xebcf523d, 0x079b0460), + TOBN(0xfd6b0008, 0x10fab870), TOBN(0x3f2edcda, 0x9373a39c), + TOBN(0x0d64f9a7, 0x6f568431), TOBN(0xf848c27c, 0x02f8898c), + TOBN(0xf418ade1, 0x260b5bd5), TOBN(0xc1f3e323, 0x6973dee8), + TOBN(0x46e9319c, 0x26c185dd), TOBN(0x6d85b7d8, 0x546f0ac4), + TOBN(0x427965f2, 0x247f9d57), TOBN(0xb519b636, 0xb0035f48), + TOBN(0x6b6163a9, 0xab87d59c), TOBN(0xff9f58c3, 0x39caaa11), + TOBN(0x4ac39cde, 0x3177387b), TOBN(0x5f6557c2, 0x873e77f9), + TOBN(0x67504006, 0x36a83041), TOBN(0x9b1c96ca, 0x75ef196c), + TOBN(0xf34283de, 0xb08c7940), TOBN(0x7ea09644, 0x1128c316), + TOBN(0xb510b3b5, 0x6aa39dff), TOBN(0x59b43da2, 0x9f8e4d8c), + TOBN(0xa8ce31fd, 0x9e4c4b9f), TOBN(0x0e20be26, 0xc1303c01), + TOBN(0x18187182, 0xe8ee47c9), TOBN(0xd9687cdb, 0x7db98101), + TOBN(0x7a520e4d, 0xa1e14ff6), TOBN(0x429808ba, 0x8836d572), + TOBN(0xa37ca60d, 0x4944b663), TOBN(0xf901f7a9, 0xa3f91ae5), + TOBN(0xe4e3e76e, 0x9e36e3b1), TOBN(0x9aa219cf, 0x29d93250), + TOBN(0x347fe275, 0x056a2512), TOBN(0xa4d643d9, 0xde65d95c), + TOBN(0x9669d396, 0x699fc3ed), TOBN(0xb598dee2, 0xcf8c6bbe), + TOBN(0x682ac1e5, 0xdda9e5c6), TOBN(0x4e0d3c72, 0xcaa9fc95), + TOBN(0x17faaade, 0x772bea44), TOBN(0x5ef8428c, 0xab0009c8), + TOBN(0xcc4ce47a, 0x460ff016), TOBN(0xda6d12bf, 0x725281cb), + TOBN(0x44c67848, 0x0223aad2), TOBN(0x6e342afa, 0x36256e28), + TOBN(0x1400bb0b, 0x93a37c04), TOBN(0x62b1bc9b, 0xdd10bd96), + TOBN(0x7251adeb, 0x0dac46b7), TOBN(0x7d33b92e, 0x7be4ef51), + TOBN(0x28b2a94b, 0xe61fa29a), TOBN(0x4b2be13f, 0x06422233), + TOBN(0x36d6d062, 0x330d8d37), TOBN(0x5ef80e1e, 0xb28ca005), + TOBN(0x174d4699, 0x6d16768e), TOBN(0x9fc4ff6a, 0x628bf217), + TOBN(0x77705a94, 0x154e490d), TOBN(0x9d96dd28, 0x8d2d997a), + TOBN(0x77e2d9d8, 0xce5d72c4), TOBN(0x9d06c5a4, 0xc11c714f), + TOBN(0x02aa5136, 0x79e4a03e), TOBN(0x1386b3c2, 0x030ff28b), + TOBN(0xfe82e8a6, 0xfb283f61), TOBN(0x7df203e5, 0xf3abc3fb), + TOBN(0xeec7c351, 0x3a4d3622), TOBN(0xf7d17dbf, 0xdf762761), + TOBN(0xc3956e44, 0x522055f0), TOBN(0xde3012db, 0x8fa748db), + TOBN(0xca9fcb63, 0xbf1dcc14), TOBN(0xa56d9dcf, 0xbe4e2f3a), + TOBN(0xb86186b6, 0x8bcec9c2), TOBN(0x7cf24df9, 0x680b9f06), + TOBN(0xc46b45ea, 0xc0d29281), TOBN(0xfff42bc5, 0x07b10e12), + TOBN(0x12263c40, 0x4d289427), TOBN(0x3d5f1899, 0xb4848ec4), + TOBN(0x11f97010, 0xd040800c), TOBN(0xb4c5f529, 0x300feb20), + TOBN(0xcc543f8f, 0xde94fdcb), TOBN(0xe96af739, 0xc7c2f05e), + TOBN(0xaa5e0036, 0x882692e1), TOBN(0x09c75b68, 0x950d4ae9), + TOBN(0x62f63df2, 0xb5932a7a), TOBN(0x2658252e, 0xde0979ad), + TOBN(0x2a19343f, 0xb5e69631), TOBN(0x718c7501, 0x525b666b), + TOBN(0x26a42d69, 0xea40dc3a), TOBN(0xdc84ad22, 0xaecc018f), + TOBN(0x25c36c7b, 0x3270f04a), TOBN(0x46ba6d47, 0x50fa72ed), + TOBN(0x6c37d1c5, 0x93e58a8e), TOBN(0xa2394731, 0x120c088c), + TOBN(0xc3be4263, 0xcb6e86da), TOBN(0x2c417d36, 0x7126d038), + TOBN(0x5b70f9c5, 0x8b6f8efa), TOBN(0x671a2faa, 0x37718536), + TOBN(0xd3ced3c6, 0xb539c92b), TOBN(0xe56f1bd9, 0xa31203c2), + TOBN(0x8b096ec4, 0x9ff3c8eb), TOBN(0x2deae432, 0x43491cea), + TOBN(0x2465c6eb, 0x17943794), TOBN(0x5d267e66, 0x20586843), + TOBN(0x9d3d116d, 0xb07159d0), TOBN(0xae07a67f, 0xc1896210), + TOBN(0x8fc84d87, 0xbb961579), TOBN(0x30009e49, 0x1c1f8dd6), + TOBN(0x8a8caf22, 0xe3132819), TOBN(0xcffa197c, 0xf23ab4ff), + TOBN(0x58103a44, 0x205dd687), TOBN(0x57b796c3, 0x0ded67a2), + TOBN(0x0b9c3a6c, 0xa1779ad7), TOBN(0xa33cfe2e, 0x357c09c5), + TOBN(0x2ea29315, 0x3db4a57e), TOBN(0x91959695, 0x8ebeb52e), + TOBN(0x118db9a6, 0xe546c879), TOBN(0x8e996df4, 0x6295c8d6), + TOBN(0xdd990484, 0x55ec806b), TOBN(0x24f291ca, 0x165c1035), + TOBN(0xcca523bb, 0x440e2229), TOBN(0x324673a2, 0x73ef4d04), + TOBN(0xaf3adf34, 0x3e11ec39), TOBN(0x6136d7f1, 0xdc5968d3), + TOBN(0x7a7b2899, 0xb053a927), TOBN(0x3eaa2661, 0xae067ecd), + TOBN(0x8549b9c8, 0x02779cd9), TOBN(0x061d7940, 0xc53385ea), + TOBN(0x3e0ba883, 0xf06d18bd), TOBN(0x4ba6de53, 0xb2700843), + TOBN(0xb966b668, 0x591a9e4d), TOBN(0x93f67567, 0x7f4fa0ed), + TOBN(0x5a02711b, 0x4347237b), TOBN(0xbc041e2f, 0xe794608e), + TOBN(0x55af10f5, 0x70f73d8c), TOBN(0xd2d4d4f7, 0xbb7564f7), + TOBN(0xd7d27a89, 0xb3e93ce7), TOBN(0xf7b5a875, 0x5d3a2c1b), + TOBN(0xb29e68a0, 0x255b218a), TOBN(0xb533837e, 0x8af76754), + TOBN(0xd1b05a73, 0x579fab2e), TOBN(0xb41055a1, 0xecd74385), + TOBN(0xb2369274, 0x445e9115), TOBN(0x2972a7c4, 0xf520274e), + TOBN(0x6c08334e, 0xf678e68a), TOBN(0x4e4160f0, 0x99b057ed), + TOBN(0x3cfe11b8, 0x52ccb69a), TOBN(0x2fd1823a, 0x21c8f772), + TOBN(0xdf7f072f, 0x3298f055), TOBN(0x8c0566f9, 0xfec74a6e), + TOBN(0xe549e019, 0x5bb4d041), TOBN(0x7c3930ba, 0x9208d850), + TOBN(0xe07141fc, 0xaaa2902b), TOBN(0x539ad799, 0xe4f69ad3), + TOBN(0xa6453f94, 0x813f9ffd), TOBN(0xc58d3c48, 0x375bc2f7), + TOBN(0xb3326fad, 0x5dc64e96), TOBN(0x3aafcaa9, 0xb240e354), + TOBN(0x1d1b0903, 0xaca1e7a9), TOBN(0x4ceb9767, 0x1211b8a0), + TOBN(0xeca83e49, 0xe32a858e), TOBN(0x4c32892e, 0xae907bad), + TOBN(0xd5b42ab6, 0x2eb9b494), TOBN(0x7fde3ee2, 0x1eabae1b), + TOBN(0x13b5ab09, 0xcaf54957), TOBN(0xbfb028be, 0xe5f5d5d5), + TOBN(0x928a0650, 0x2003e2c0), TOBN(0x90793aac, 0x67476843), + TOBN(0x5e942e79, 0xc81710a0), TOBN(0x557e4a36, 0x27ccadd4), + TOBN(0x72a2bc56, 0x4bcf6d0c), TOBN(0x09ee5f43, 0x26d7b80c), + TOBN(0x6b70dbe9, 0xd4292f19), TOBN(0x56f74c26, 0x63f16b18), + TOBN(0xc23db0f7, 0x35fbb42a), TOBN(0xb606bdf6, 0x6ae10040), + TOBN(0x1eb15d4d, 0x044573ac), TOBN(0x7dc3cf86, 0x556b0ba4), + TOBN(0x97af9a33, 0xc60df6f7), TOBN(0x0b1ef85c, 0xa716ce8c), + TOBN(0x2922f884, 0xc96958be), TOBN(0x7c32fa94, 0x35690963), + TOBN(0x2d7f667c, 0xeaa00061), TOBN(0xeaaf7c17, 0x3547365c), + TOBN(0x1eb4de46, 0x87032d58), TOBN(0xc54f3d83, 0x5e2c79e0), + TOBN(0x07818df4, 0x5d04ef23), TOBN(0x55faa9c8, 0x673d41b4), + TOBN(0xced64f6f, 0x89b95355), TOBN(0x4860d2ea, 0xb7415c84), + TOBN(0x5fdb9bd2, 0x050ebad3), TOBN(0xdb53e0cc, 0x6685a5bf), + TOBN(0xb830c031, 0x9feb6593), TOBN(0xdd87f310, 0x6accff17), + TOBN(0x2303ebab, 0x9f555c10), TOBN(0x94603695, 0x287e7065), + TOBN(0xf88311c3, 0x2e83358c), TOBN(0x508dd9b4, 0xeefb0178), + TOBN(0x7ca23706, 0x2dba8652), TOBN(0x62aac5a3, 0x0047abe5), + TOBN(0x9a61d2a0, 0x8b1ea7b3), TOBN(0xd495ab63, 0xae8b1485), + TOBN(0x38740f84, 0x87052f99), TOBN(0x178ebe5b, 0xb2974eea), + TOBN(0x030bbcca, 0x5b36d17f), TOBN(0xb5e4cce3, 0xaaf86eea), + TOBN(0xb51a0220, 0x68f8e9e0), TOBN(0xa4348796, 0x09eb3e75), + TOBN(0xbe592309, 0xeef1a752), TOBN(0x5d7162d7, 0x6f2aa1ed), + TOBN(0xaebfb5ed, 0x0f007dd2), TOBN(0x255e14b2, 0xc89edd22), + TOBN(0xba85e072, 0x0303b697), TOBN(0xc5d17e25, 0xf05720ff), + TOBN(0x02b58d6e, 0x5128ebb6), TOBN(0x2c80242d, 0xd754e113), + TOBN(0x919fca5f, 0xabfae1ca), TOBN(0x937afaac, 0x1a21459b), + TOBN(0x9e0ca91c, 0x1f66a4d2), TOBN(0x194cc7f3, 0x23ec1331), + TOBN(0xad25143a, 0x8aa11690), TOBN(0xbe40ad8d, 0x09b59e08), + TOBN(0x37d60d9b, 0xe750860a), TOBN(0x6c53b008, 0xc6bf434c), + TOBN(0xb572415d, 0x1356eb80), TOBN(0xb8bf9da3, 0x9578ded8), + TOBN(0x22658e36, 0x5e8fb38b), TOBN(0x9b70ce22, 0x5af8cb22), + TOBN(0x7c00018a, 0x829a8180), TOBN(0x84329f93, 0xb81ed295), + TOBN(0x7c343ea2, 0x5f3cea83), TOBN(0x38f8655f, 0x67586536), + TOBN(0xa661a0d0, 0x1d3ec517), TOBN(0x98744652, 0x512321ae), + TOBN(0x084ca591, 0xeca92598), TOBN(0xa9bb9dc9, 0x1dcb3feb), + TOBN(0x14c54355, 0x78b4c240), TOBN(0x5ed62a3b, 0x610cafdc), + TOBN(0x07512f37, 0x1b38846b), TOBN(0x571bb70a, 0xb0e38161), + TOBN(0xb556b95b, 0x2da705d2), TOBN(0x3ef8ada6, 0xb1a08f98), + TOBN(0x85302ca7, 0xddecfbe5), TOBN(0x0e530573, 0x943105cd), + TOBN(0x60554d55, 0x21a9255d), TOBN(0x63a32fa1, 0xf2f3802a), + TOBN(0x35c8c5b0, 0xcd477875), TOBN(0x97f458ea, 0x6ad42da1), + TOBN(0x832d7080, 0xeb6b242d), TOBN(0xd30bd023, 0x3b71e246), + TOBN(0x7027991b, 0xbe31139d), TOBN(0x68797e91, 0x462e4e53), + TOBN(0x423fe20a, 0x6b4e185a), TOBN(0x82f2c67e, 0x42d9b707), + TOBN(0x25c81768, 0x4cf7811b), TOBN(0xbd53005e, 0x045bb95d),} + , + {TOBN(0xe5f649be, 0x9d8e68fd), TOBN(0xdb0f0533, 0x1b044320), + TOBN(0xf6fde9b3, 0xe0c33398), TOBN(0x92f4209b, 0x66c8cfae), + TOBN(0xe9d1afcc, 0x1a739d4b), TOBN(0x09aea75f, 0xa28ab8de), + TOBN(0x14375fb5, 0xeac6f1d0), TOBN(0x6420b560, 0x708f7aa5), + TOBN(0x9eae499c, 0x6254dc41), TOBN(0x7e293924, 0x7a837e7e), + TOBN(0x74aec08c, 0x090524a7), TOBN(0xf82b9219, 0x8d6f55f2), + TOBN(0x493c962e, 0x1402cec5), TOBN(0x9f17ca17, 0xfa2f30e7), + TOBN(0xbcd783e8, 0xe9b879cb), TOBN(0xea3d8c14, 0x5a6f145f), + TOBN(0xdede15e7, 0x5e0dee6e), TOBN(0x74f24872, 0xdc628aa2), + TOBN(0xd3e9c4fe, 0x7861bb93), TOBN(0x56d4822a, 0x6187b2e0), + TOBN(0xb66417cf, 0xc59826f9), TOBN(0xca260969, 0x2408169e), + TOBN(0xedf69d06, 0xc79ef885), TOBN(0x00031f8a, 0xdc7d138f), + TOBN(0x103c46e6, 0x0ebcf726), TOBN(0x4482b831, 0x6231470e), + TOBN(0x6f6dfaca, 0x487c2109), TOBN(0x2e0ace97, 0x62e666ef), + TOBN(0x3246a9d3, 0x1f8d1f42), TOBN(0x1b1e83f1, 0x574944d2), + TOBN(0x13dfa63a, 0xa57f334b), TOBN(0x0cf8daed, 0x9f025d81), + TOBN(0x30d78ea8, 0x00ee11c1), TOBN(0xeb053cd4, 0xb5e3dd75), + TOBN(0x9b65b13e, 0xd58c43c5), TOBN(0xc3ad49bd, 0xbd151663), + TOBN(0x99fd8e41, 0xb6427990), TOBN(0x12cf15bd, 0x707eae1e), + TOBN(0x29ad4f1b, 0x1aabb71e), TOBN(0x5143e74d, 0x07545d0e), + TOBN(0x30266336, 0xc88bdee1), TOBN(0x25f29306, 0x5876767c), + TOBN(0x9c078571, 0xc6731996), TOBN(0xc88690b2, 0xed552951), + TOBN(0x274f2c2d, 0x852705b4), TOBN(0xb0bf8d44, 0x4e09552d), + TOBN(0x7628beeb, 0x986575d1), TOBN(0x407be238, 0x7f864651), + TOBN(0x0e5e3049, 0xa639fc6b), TOBN(0xe75c35d9, 0x86003625), + TOBN(0x0cf35bd8, 0x5dcc1646), TOBN(0x8bcaced2, 0x6c26273a), + TOBN(0xe22ecf1d, 0xb5536742), TOBN(0x013dd897, 0x1a9e068b), + TOBN(0x17f411cb, 0x8a7909c5), TOBN(0x5757ac98, 0x861dd506), + TOBN(0x85de1f0d, 0x1e935abb), TOBN(0xdefd10b4, 0x154de37a), + TOBN(0xb8d9e392, 0x369cebb5), TOBN(0x54d5ef9b, 0x761324be), + TOBN(0x4d6341ba, 0x74f17e26), TOBN(0xc0a0e3c8, 0x78c1dde4), + TOBN(0xa6d77581, 0x87d918fd), TOBN(0x66876015, 0x02ca3a13), + TOBN(0xc7313e9c, 0xf36658f0), TOBN(0xc433ef1c, 0x71f8057e), + TOBN(0x85326246, 0x1b6a835a), TOBN(0xc8f05398, 0x7c86394c), + TOBN(0xff398cdf, 0xe983c4a1), TOBN(0xbf5e8162, 0x03b7b931), + TOBN(0x93193c46, 0xb7b9045b), TOBN(0x1e4ebf5d, 0xa4a6e46b), + TOBN(0xf9942a60, 0x43a24fe7), TOBN(0x29c1191e, 0xffb3492b), + TOBN(0x9f662449, 0x902fde05), TOBN(0xc792a7ac, 0x6713c32d), + TOBN(0x2fd88ad8, 0xb737982c), TOBN(0x7e3a0319, 0xa21e60e3), + TOBN(0x09b0de44, 0x7383591a), TOBN(0x6df141ee, 0x8310a456), + TOBN(0xaec1a039, 0xe6d6f471), TOBN(0x14b2ba0f, 0x1198d12e), + TOBN(0xebc1a160, 0x3aeee5ac), TOBN(0x401f4836, 0xe0b964ce), + TOBN(0x2ee43796, 0x4fd03f66), TOBN(0x3fdb4e49, 0xdd8f3f12), + TOBN(0x6ef267f6, 0x29380f18), TOBN(0x3e8e9670, 0x8da64d16), + TOBN(0xbc19180c, 0x207674f1), TOBN(0x112e09a7, 0x33ae8fdb), + TOBN(0x99667554, 0x6aaeb71e), TOBN(0x79432af1, 0xe101b1c7), + TOBN(0xd5eb558f, 0xde2ddec6), TOBN(0x81392d1f, 0x5357753f), + TOBN(0xa7a76b97, 0x3ae1158a), TOBN(0x416fbbff, 0x4a899991), + TOBN(0x9e65fdfd, 0x0d4a9dcf), TOBN(0x7bc29e48, 0x944ddf12), + TOBN(0xbc1a92d9, 0x3c856866), TOBN(0x273c6905, 0x6e98dfe2), + TOBN(0x69fce418, 0xcdfaa6b8), TOBN(0x606bd823, 0x5061c69f), + TOBN(0x42d495a0, 0x6af75e27), TOBN(0x8ed3d505, 0x6d873a1f), + TOBN(0xaf552841, 0x6ab25b6a), TOBN(0xc6c0ffc7, 0x2b1a4523), + TOBN(0xab18827b, 0x21c99e03), TOBN(0x060e8648, 0x9034691b), + TOBN(0x5207f90f, 0x93c7f398), TOBN(0x9f4a96cb, 0x82f8d10b), + TOBN(0xdd71cd79, 0x3ad0f9e3), TOBN(0x84f435d2, 0xfc3a54f5), + TOBN(0x4b03c55b, 0x8e33787f), TOBN(0xef42f975, 0xa6384673), + TOBN(0xff7304f7, 0x5051b9f0), TOBN(0x18aca1dc, 0x741c87c2), + TOBN(0x56f120a7, 0x2d4bfe80), TOBN(0xfd823b3d, 0x053e732c), + TOBN(0x11bccfe4, 0x7537ca16), TOBN(0xdf6c9c74, 0x1b5a996b), + TOBN(0xee7332c7, 0x904fc3fa), TOBN(0x14a23f45, 0xc7e3636a), + TOBN(0xc38659c3, 0xf091d9aa), TOBN(0x4a995e5d, 0xb12d8540), + TOBN(0x20a53bec, 0xf3a5598a), TOBN(0x56534b17, 0xb1eaa995), + TOBN(0x9ed3dca4, 0xbf04e03c), TOBN(0x716c563a, 0xd8d56268), + TOBN(0x27ba77a4, 0x1d6178e7), TOBN(0xe4c80c40, 0x68a1ff8e), + TOBN(0x75011099, 0x0a13f63d), TOBN(0x7bf33521, 0xa61d46f3), + TOBN(0x0aff218e, 0x10b365bb), TOBN(0x81021804, 0x0fd7ea75), + TOBN(0x05a3fd8a, 0xa4b3a925), TOBN(0xb829e75f, 0x9b3db4e6), + TOBN(0x6bdc75a5, 0x4d53e5fb), TOBN(0x04a5dc02, 0xd52717e3), + TOBN(0x86af502f, 0xe9a42ec2), TOBN(0x8867e8fb, 0x2630e382), + TOBN(0xbf845c6e, 0xbec9889b), TOBN(0x54f491f2, 0xcb47c98d), + TOBN(0xa3091fba, 0x790c2a12), TOBN(0xd7f6fd78, 0xc20f708b), + TOBN(0xa569ac30, 0xacde5e17), TOBN(0xd0f996d0, 0x6852b4d7), + TOBN(0xe51d4bb5, 0x4609ae54), TOBN(0x3fa37d17, 0x0daed061), + TOBN(0x62a88684, 0x34b8fb41), TOBN(0x99a2acbd, 0x9efb64f1), + TOBN(0xb75c1a5e, 0x6448e1f2), TOBN(0xfa99951a, 0x42b5a069), + TOBN(0x6d956e89, 0x2f3b26e7), TOBN(0xf4709860, 0xda875247), + TOBN(0x3ad15179, 0x2482dda3), TOBN(0xd64110e3, 0x017d82f0), + TOBN(0x14928d2c, 0xfad414e4), TOBN(0x2b155f58, 0x2ed02b24), + TOBN(0x481a141b, 0xcb821bf1), TOBN(0x12e3c770, 0x4f81f5da), + TOBN(0xe49c5de5, 0x9fff8381), TOBN(0x11053232, 0x5bbec894), + TOBN(0xa0d051cc, 0x454d88c4), TOBN(0x4f6db89c, 0x1f8e531b), + TOBN(0x34fe3fd6, 0xca563a44), TOBN(0x7f5c2215, 0x58da8ab9), + TOBN(0x8445016d, 0x9474f0a1), TOBN(0x17d34d61, 0xcb7d8a0a), + TOBN(0x8e9d3910, 0x1c474019), TOBN(0xcaff2629, 0xd52ceefb), + TOBN(0xf9cf3e32, 0xc1622c2b), TOBN(0xd4b95e3c, 0xe9071a05), + TOBN(0xfbbca61f, 0x1594438c), TOBN(0x1eb6e6a6, 0x04aadedf), + TOBN(0x853027f4, 0x68e14940), TOBN(0x221d322a, 0xdfabda9c), + TOBN(0xed8ea9f6, 0xb7cb179a), TOBN(0xdc7b764d, 0xb7934dcc), + TOBN(0xfcb13940, 0x5e09180d), TOBN(0x6629a6bf, 0xb47dc2dd), + TOBN(0xbfc55e4e, 0x9f5a915e), TOBN(0xb1db9d37, 0x6204441e), + TOBN(0xf82d68cf, 0x930c5f53), TOBN(0x17d3a142, 0xcbb605b1), + TOBN(0xdd5944ea, 0x308780f2), TOBN(0xdc8de761, 0x3845f5e4), + TOBN(0x6beaba7d, 0x7624d7a3), TOBN(0x1e709afd, 0x304df11e), + TOBN(0x95364376, 0x02170456), TOBN(0xbf204b3a, 0xc8f94b64), + TOBN(0x4e53af7c, 0x5680ca68), TOBN(0x0526074a, 0xe0c67574), + TOBN(0x95d8cef8, 0xecd92af6), TOBN(0xe6b9fa7a, 0x6cd1745a), + TOBN(0x3d546d3d, 0xa325c3e4), TOBN(0x1f57691d, 0x9ae93aae), + TOBN(0xe891f3fe, 0x9d2e1a33), TOBN(0xd430093f, 0xac063d35), + TOBN(0xeda59b12, 0x5513a327), TOBN(0xdc2134f3, 0x5536f18f), + TOBN(0xaa51fe2c, 0x5c210286), TOBN(0x3f68aaee, 0x1cab658c), + TOBN(0x5a23a00b, 0xf9357292), TOBN(0x9a626f39, 0x7efdabed), + TOBN(0xfe2b3bf3, 0x199d78e3), TOBN(0xb7a2af77, 0x71bbc345), + TOBN(0x3d19827a, 0x1e59802c), TOBN(0x823bbc15, 0xb487a51c), + TOBN(0x856139f2, 0x99d0a422), TOBN(0x9ac3df65, 0xf456c6fb), + TOBN(0xaddf65c6, 0x701f8bd6), TOBN(0x149f321e, 0x3758df87), + TOBN(0xb1ecf714, 0x721b7eba), TOBN(0xe17df098, 0x31a3312a), + TOBN(0xdb2fd6ec, 0xd5c4d581), TOBN(0xfd02996f, 0x8fcea1b3), + TOBN(0xe29fa63e, 0x7882f14f), TOBN(0xc9f6dc35, 0x07c6cadc), + TOBN(0x46f22d6f, 0xb882bed0), TOBN(0x1a45755b, 0xd118e52c), + TOBN(0x9f2c7c27, 0x7c4608cf), TOBN(0x7ccbdf32, 0x568012c2), + TOBN(0xfcb0aedd, 0x61729b0e), TOBN(0x7ca2ca9e, 0xf7d75dbf), + TOBN(0xf58fecb1, 0x6f640f62), TOBN(0xe274b92b, 0x39f51946), + TOBN(0x7f4dfc04, 0x6288af44), TOBN(0x0a91f32a, 0xeac329e5), + TOBN(0x43ad274b, 0xd6aaba31), TOBN(0x719a1640, 0x0f6884f9), + TOBN(0x685d29f6, 0xdaf91e20), TOBN(0x5ec1cc33, 0x27e49d52), + TOBN(0x38f4de96, 0x3b54a059), TOBN(0x0e0015e5, 0xefbcfdb3), + TOBN(0x177d23d9, 0x4dbb8da6), TOBN(0x98724aa2, 0x97a617ad), + TOBN(0x30f0885b, 0xfdb6558e), TOBN(0xf9f7a28a, 0xc7899a96), + TOBN(0xd2ae8ac8, 0x872dc112), TOBN(0xfa0642ca, 0x73c3c459), + TOBN(0x15296981, 0xe7dfc8d6), TOBN(0x67cd4450, 0x1fb5b94a), + TOBN(0x0ec71cf1, 0x0eddfd37), TOBN(0xc7e5eeb3, 0x9a8eddc7), + TOBN(0x02ac8e3d, 0x81d95028), TOBN(0x0088f172, 0x70b0e35d), + TOBN(0xec041fab, 0xe1881fe3), TOBN(0x62cf71b8, 0xd99e7faa), + TOBN(0x5043dea7, 0xe0f222c2), TOBN(0x309d42ac, 0x72e65142), + TOBN(0x94fe9ddd, 0x9216cd30), TOBN(0xd6539c7d, 0x0f87feec), + TOBN(0x03c5a57c, 0x432ac7d7), TOBN(0x72692cf0, 0x327fda10), + TOBN(0xec28c85f, 0x280698de), TOBN(0x2331fb46, 0x7ec283b1), + TOBN(0xd34bfa32, 0x2867e633), TOBN(0x78709a82, 0x0a9cc815), + TOBN(0xb7fe6964, 0x875e2fa5), TOBN(0x25cc064f, 0x9e98bfb5), + TOBN(0x9eb0151c, 0x493a65c5), TOBN(0x5fb5d941, 0x53182464), + TOBN(0x69e6f130, 0xf04618e2), TOBN(0xa8ecec22, 0xf89c8ab6), + TOBN(0xcd6ac88b, 0xb96209bd), TOBN(0x65fa8cdb, 0xb3e1c9e0), + TOBN(0xa47d22f5, 0x4a8d8eac), TOBN(0x83895cdf, 0x8d33f963), + TOBN(0xa8adca59, 0xb56cd3d1), TOBN(0x10c8350b, 0xdaf38232), + TOBN(0x2b161fb3, 0xa5080a9f), TOBN(0xbe7f5c64, 0x3af65b3a), + TOBN(0x2c754039, 0x97403a11), TOBN(0x94626cf7, 0x121b96af), + TOBN(0x431de7c4, 0x6a983ec2), TOBN(0x3780dd3a, 0x52cc3df7), + TOBN(0xe28a0e46, 0x2baf8e3b), TOBN(0xabe68aad, 0x51d299ae), + TOBN(0x603eb8f9, 0x647a2408), TOBN(0x14c61ed6, 0x5c750981), + TOBN(0x88b34414, 0xc53352e7), TOBN(0x5a34889c, 0x1337d46e), + TOBN(0x612c1560, 0xf95f2bc8), TOBN(0x8a3f8441, 0xd4807a3a), + TOBN(0x680d9e97, 0x5224da68), TOBN(0x60cd6e88, 0xc3eb00e9), + TOBN(0x3875a98e, 0x9a6bc375), TOBN(0xdc80f924, 0x4fd554c2), + TOBN(0x6c4b3415, 0x6ac77407), TOBN(0xa1e5ea8f, 0x25420681), + TOBN(0x541bfa14, 0x4607a458), TOBN(0x5dbc7e7a, 0x96d7fbf9), + TOBN(0x646a851b, 0x31590a47), TOBN(0x039e85ba, 0x15ee6df8), + TOBN(0xd19fa231, 0xd7b43fc0), TOBN(0x84bc8be8, 0x299a0e04), + TOBN(0x2b9d2936, 0xf20df03a), TOBN(0x24054382, 0x8608d472), + TOBN(0x76b6ba04, 0x9149202a), TOBN(0xb21c3831, 0x3670e7b7), + TOBN(0xddd93059, 0xd6fdee10), TOBN(0x9da47ad3, 0x78488e71), + TOBN(0x99cc1dfd, 0xa0fcfb25), TOBN(0x42abde10, 0x64696954), + TOBN(0x14cc15fc, 0x17eab9fe), TOBN(0xd6e863e4, 0xd3e70972), + TOBN(0x29a7765c, 0x6432112c), TOBN(0x88660001, 0x5b0774d8), + TOBN(0x3729175a, 0x2c088eae), TOBN(0x13afbcae, 0x8230b8d4), + TOBN(0x44768151, 0x915f4379), TOBN(0xf086431a, 0xd8d22812), + TOBN(0x37461955, 0xc298b974), TOBN(0x905fb5f0, 0xf8711e04), + TOBN(0x787abf3a, 0xfe969d18), TOBN(0x392167c2, 0x6f6a494e), + TOBN(0xfc7a0d2d, 0x28c511da), TOBN(0xf127c7dc, 0xb66a262d), + TOBN(0xf9c4bb95, 0xfd63fdf0), TOBN(0x90016589, 0x3913ef46), + TOBN(0x74d2a73c, 0x11aa600d), TOBN(0x2f5379bd, 0x9fb5ab52), + TOBN(0xe49e53a4, 0x7fb70068), TOBN(0x68dd39e5, 0x404aa9a7), + TOBN(0xb9b0cf57, 0x2ecaa9c3), TOBN(0xba0e103b, 0xe824826b), + TOBN(0x60c2198b, 0x4631a3c4), TOBN(0xc5ff84ab, 0xfa8966a2), + TOBN(0x2d6ebe22, 0xac95aff8), TOBN(0x1c9bb6db, 0xb5a46d09), + TOBN(0x419062da, 0x53ee4f8d), TOBN(0x7b9042d0, 0xbb97efef), + TOBN(0x0f87f080, 0x830cf6bd), TOBN(0x4861d19a, 0x6ec8a6c6), + TOBN(0xd3a0daa1, 0x202f01aa), TOBN(0xb0111674, 0xf25afbd5), + TOBN(0x6d00d6cf, 0x1afb20d9), TOBN(0x13695000, 0x40671bc5), + TOBN(0x913ab0dc, 0x2485ea9b), TOBN(0x1f2bed06, 0x9eef61ac), + TOBN(0x850c8217, 0x6d799e20), TOBN(0x93415f37, 0x3271c2de), + TOBN(0x5afb06e9, 0x6c4f5910), TOBN(0x688a52df, 0xc4e9e421), + TOBN(0x30495ba3, 0xe2a9a6db), TOBN(0x4601303d, 0x58f9268b), + TOBN(0xbe3b0dad, 0x7eb0f04f), TOBN(0x4ea47250, 0x4456936d), + TOBN(0x8caf8798, 0xd33fd3e7), TOBN(0x1ccd8a89, 0xeb433708), + TOBN(0x9effe3e8, 0x87fd50ad), TOBN(0xbe240a56, 0x6b29c4df), + TOBN(0xec4ffd98, 0xca0e7ebd), TOBN(0xf586783a, 0xe748616e), + TOBN(0xa5b00d8f, 0xc77baa99), TOBN(0x0acada29, 0xb4f34c9c), + TOBN(0x36dad67d, 0x0fe723ac), TOBN(0x1d8e53a5, 0x39c36c1e), + TOBN(0xe4dd342d, 0x1f4bea41), TOBN(0x64fd5e35, 0xebc9e4e0), + TOBN(0x96f01f90, 0x57908805), TOBN(0xb5b9ea3d, 0x5ed480dd), + TOBN(0x366c5dc2, 0x3efd2dd0), TOBN(0xed2fe305, 0x6e9dfa27), + TOBN(0x4575e892, 0x6e9197e2), TOBN(0x11719c09, 0xab502a5d), + TOBN(0x264c7bec, 0xe81f213f), TOBN(0x741b9241, 0x55f5c457), + TOBN(0x78ac7b68, 0x49a5f4f4), TOBN(0xf91d70a2, 0x9fc45b7d), + TOBN(0x39b05544, 0xb0f5f355), TOBN(0x11f06bce, 0xeef930d9), + TOBN(0xdb84d25d, 0x038d05e1), TOBN(0x04838ee5, 0xbacc1d51), + TOBN(0x9da3ce86, 0x9e8ee00b), TOBN(0xc3412057, 0xc36eda1f), + TOBN(0xae80b913, 0x64d9c2f4), TOBN(0x7468bac3, 0xa010a8ff), + TOBN(0xdfd20037, 0x37359d41), TOBN(0x1a0f5ab8, 0x15efeacc), + TOBN(0x7c25ad2f, 0x659d0ce0), TOBN(0x4011bcbb, 0x6785cff1), + TOBN(0x128b9912, 0x7e2192c7), TOBN(0xa549d8e1, 0x13ccb0e8), + TOBN(0x805588d8, 0xc85438b1), TOBN(0x5680332d, 0xbc25cb27), + TOBN(0xdcd1bc96, 0x1a4bfdf4), TOBN(0x779ff428, 0x706f6566), + TOBN(0x8bbee998, 0xf059987a), TOBN(0xf6ce8cf2, 0xcc686de7), + TOBN(0xf8ad3c4a, 0x953cfdb2), TOBN(0xd1d426d9, 0x2205da36), + TOBN(0xb3c0f13f, 0xc781a241), TOBN(0x3e89360e, 0xd75362a8), + TOBN(0xccd05863, 0xc8a91184), TOBN(0x9bd0c9b7, 0xefa8a7f4), + TOBN(0x97ee4d53, 0x8a912a4b), TOBN(0xde5e15f8, 0xbcf518fd), + TOBN(0x6a055bf8, 0xc467e1e0), TOBN(0x10be4b4b, 0x1587e256), + TOBN(0xd90c14f2, 0x668621c9), TOBN(0xd5518f51, 0xab9c92c1), + TOBN(0x8e6a0100, 0xd6d47b3c), TOBN(0xcbe980dd, 0x66716175), + TOBN(0x500d3f10, 0xddd83683), TOBN(0x3b6cb35d, 0x99cac73c), + TOBN(0x53730c8b, 0x6083d550), TOBN(0xcf159767, 0xdf0a1987), + TOBN(0x84bfcf53, 0x43ad73b3), TOBN(0x1b528c20, 0x4f035a94), + TOBN(0x4294edf7, 0x33eeac69), TOBN(0xb6283e83, 0x817f3240), + TOBN(0xc3fdc959, 0x0a5f25b1), TOBN(0xefaf8aa5, 0x5844ee22), + TOBN(0xde269ba5, 0xdbdde4de), TOBN(0xe3347160, 0xc56133bf), + TOBN(0xc1184219, 0x8d9ea9f8), TOBN(0x090de5db, 0xf3fc1ab5), + TOBN(0x404c37b1, 0x0bf22cda), TOBN(0x7de20ec8, 0xf5618894), + TOBN(0x754c588e, 0xecdaecab), TOBN(0x6ca4b0ed, 0x88342743), + TOBN(0x76f08bdd, 0xf4a938ec), TOBN(0xd182de89, 0x91493ccb), + TOBN(0xd652c53e, 0xc8a4186a), TOBN(0xb3e878db, 0x946d8e33), + TOBN(0x088453c0, 0x5f37663c), TOBN(0x5cd9daaa, 0xb407748b), + TOBN(0xa1f5197f, 0x586d5e72), TOBN(0x47500be8, 0xc443ca59), + TOBN(0x78ef35b2, 0xe2652424), TOBN(0x09c5d26f, 0x6dd7767d), + TOBN(0x7175a79a, 0xa74d3f7b), TOBN(0x0428fd8d, 0xcf5ea459), + TOBN(0x511cb97c, 0xa5d1746d), TOBN(0x36363939, 0xe71d1278), + TOBN(0xcf2df955, 0x10350bf4), TOBN(0xb3817439, 0x60aae782), + TOBN(0xa748c0e4, 0x3e688809), TOBN(0x98021fbf, 0xd7a5a006), + TOBN(0x9076a70c, 0x0e367a98), TOBN(0xbea1bc15, 0x0f62b7c2), + TOBN(0x2645a68c, 0x30fe0343), TOBN(0xacaffa78, 0x699dc14f), + TOBN(0xf4469964, 0x457bf9c4), TOBN(0x0db6407b, 0x0d2ead83), + TOBN(0x68d56cad, 0xb2c6f3eb), TOBN(0x3b512e73, 0xf376356c), + TOBN(0xe43b0e1f, 0xfce10408), TOBN(0x89ddc003, 0x5a5e257d), + TOBN(0xb0ae0d12, 0x0362e5b3), TOBN(0x07f983c7, 0xb0519161), + TOBN(0xc2e94d15, 0x5d5231e7), TOBN(0xcff22aed, 0x0b4f9513), + TOBN(0xb02588dd, 0x6ad0b0b5), TOBN(0xb967d1ac, 0x11d0dcd5), + TOBN(0x8dac6bc6, 0xcf777b6c), TOBN(0x0062bdbd, 0x4c6d1959), + TOBN(0x53da71b5, 0x0ef5cc85), TOBN(0x07012c7d, 0x4006f14f), + TOBN(0x4617f962, 0xac47800d), TOBN(0x53365f2b, 0xc102ed75), + TOBN(0xb422efcb, 0x4ab8c9d3), TOBN(0x195cb26b, 0x34af31c9), + TOBN(0x3a926e29, 0x05f2c4ce), TOBN(0xbd2bdecb, 0x9856966c), + TOBN(0x5d16ab3a, 0x85527015), TOBN(0x9f81609e, 0x4486c231), + TOBN(0xd8b96b2c, 0xda350002), TOBN(0xbd054690, 0xfa1b7d36), + TOBN(0xdc90ebf5, 0xe71d79bc), TOBN(0xf241b6f9, 0x08964e4e), + TOBN(0x7c838643, 0x2fe3cd4c), TOBN(0xe0f33acb, 0xb4bc633c), + TOBN(0xb4a9ecec, 0x3d139f1f), TOBN(0x05ce69cd, 0xdc4a1f49), + TOBN(0xa19d1b16, 0xf5f98aaf), TOBN(0x45bb71d6, 0x6f23e0ef), + TOBN(0x33789fcd, 0x46cdfdd3), TOBN(0x9b8e2978, 0xcee040ca), + TOBN(0x9c69b246, 0xae0a6828), TOBN(0xba533d24, 0x7078d5aa), + TOBN(0x7a2e42c0, 0x7bb4fbdb), TOBN(0xcfb4879a, 0x7035385c), + TOBN(0x8c3dd30b, 0x3281705b), TOBN(0x7e361c6c, 0x404fe081), + TOBN(0x7b21649c, 0x3f604edf), TOBN(0x5dbf6a3f, 0xe52ffe47), + TOBN(0xc41b7c23, 0x4b54d9bf), TOBN(0x1374e681, 0x3511c3d9), + TOBN(0x1863bf16, 0xc1b2b758), TOBN(0x90e78507, 0x1e9e6a96), + TOBN(0xab4bf98d, 0x5d86f174), TOBN(0xd74e0bd3, 0x85e96fe4), + TOBN(0x8afde39f, 0xcac5d344), TOBN(0x90946dbc, 0xbd91b847), + TOBN(0xf5b42358, 0xfe1a838c), TOBN(0x05aae6c5, 0x620ac9d8), + TOBN(0x8e193bd8, 0xa1ce5a0b), TOBN(0x8f710571, 0x4dabfd72), + TOBN(0x8d8fdd48, 0x182caaac), TOBN(0x8c4aeefa, 0x040745cf), + TOBN(0x73c6c30a, 0xf3b93e6d), TOBN(0x991241f3, 0x16f42011), + TOBN(0xa0158eea, 0xe457a477), TOBN(0xd19857db, 0xee6ddc05), + TOBN(0xb3265224, 0x18c41671), TOBN(0x3ffdfc7e, 0x3c2c0d58), + TOBN(0x3a3a5254, 0x26ee7cda), TOBN(0x341b0869, 0xdf02c3a8), + TOBN(0xa023bf42, 0x723bbfc8), TOBN(0x3d15002a, 0x14452691),} + , + {TOBN(0x5ef7324c, 0x85edfa30), TOBN(0x25976554, 0x87d4f3da), + TOBN(0x352f5bc0, 0xdcb50c86), TOBN(0x8f6927b0, 0x4832a96c), + TOBN(0xd08ee1ba, 0x55f2f94c), TOBN(0x6a996f99, 0x344b45fa), + TOBN(0xe133cb8d, 0xa8aa455d), TOBN(0x5d0721ec, 0x758dc1f7), + TOBN(0x6ba7a920, 0x79e5fb67), TOBN(0xe1331feb, 0x70aa725e), + TOBN(0x5080ccf5, 0x7df5d837), TOBN(0xe4cae01d, 0x7ff72e21), + TOBN(0xd9243ee6, 0x0412a77d), TOBN(0x06ff7cac, 0xdf449025), + TOBN(0xbe75f7cd, 0x23ef5a31), TOBN(0xbc957822, 0x0ddef7a8), + TOBN(0x8cf7230c, 0xb0ce1c55), TOBN(0x5b534d05, 0x0bbfb607), + TOBN(0xee1ef113, 0x0e16363b), TOBN(0x27e0aa7a, 0xb4999e82), + TOBN(0xce1dac2d, 0x79362c41), TOBN(0x67920c90, 0x91bb6cb0), + TOBN(0x1e648d63, 0x2223df24), TOBN(0x0f7d9eef, 0xe32e8f28), + TOBN(0x6943f39a, 0xfa833834), TOBN(0x22951722, 0xa6328562), + TOBN(0x81d63dd5, 0x4170fc10), TOBN(0x9f5fa58f, 0xaecc2e6d), + TOBN(0xb66c8725, 0xe77d9a3b), TOBN(0x11235cea, 0x6384ebe0), + TOBN(0x06a8c118, 0x5845e24a), TOBN(0x0137b286, 0xebd093b1), + TOBN(0xc589e1ce, 0x44ace150), TOBN(0xe0f8d3d9, 0x4381e97c), + TOBN(0x59e99b11, 0x62c5a4b8), TOBN(0x90d262f7, 0xfd0ec9f9), + TOBN(0xfbc854c9, 0x283e13c9), TOBN(0x2d04fde7, 0xaedc7085), + TOBN(0x057d7765, 0x47dcbecb), TOBN(0x8dbdf591, 0x9a76fa5f), + TOBN(0xd0150695, 0x0de1e578), TOBN(0x2e1463e7, 0xe9f72bc6), + TOBN(0xffa68441, 0x1b39eca5), TOBN(0x673c8530, 0x7c037f2f), + TOBN(0xd0d6a600, 0x747f91da), TOBN(0xb08d43e1, 0xc9cb78e9), + TOBN(0x0fc0c644, 0x27b5cef5), TOBN(0x5c1d160a, 0xa60a2fd6), + TOBN(0xf98cae53, 0x28c8e13b), TOBN(0x375f10c4, 0xb2eddcd1), + TOBN(0xd4eb8b7f, 0x5cce06ad), TOBN(0xb4669f45, 0x80a2e1ef), + TOBN(0xd593f9d0, 0x5bbd8699), TOBN(0x5528a4c9, 0xe7976d13), + TOBN(0x3923e095, 0x1c7e28d3), TOBN(0xb9293790, 0x3f6bb577), + TOBN(0xdb567d6a, 0xc42bd6d2), TOBN(0x6df86468, 0xbb1f96ae), + TOBN(0x0efe5b1a, 0x4843b28e), TOBN(0x961bbb05, 0x6379b240), + TOBN(0xb6caf5f0, 0x70a6a26b), TOBN(0x70686c0d, 0x328e6e39), + TOBN(0x80da06cf, 0x895fc8d3), TOBN(0x804d8810, 0xb363fdc9), + TOBN(0xbe22877b, 0x207f1670), TOBN(0x9b0dd188, 0x4e615291), + TOBN(0x625ae8dc, 0x97a3c2bf), TOBN(0x08584ef7, 0x439b86e8), + TOBN(0xde7190a5, 0xdcd898ff), TOBN(0x26286c40, 0x2058ee3d), + TOBN(0x3db0b217, 0x5f87b1c1), TOBN(0xcc334771, 0x102a6db5), + TOBN(0xd99de954, 0x2f770fb1), TOBN(0x97c1c620, 0x4cd7535e), + TOBN(0xd3b6c448, 0x3f09cefc), TOBN(0xd725af15, 0x5a63b4f8), + TOBN(0x0c95d24f, 0xc01e20ec), TOBN(0xdfd37494, 0x9ae7121f), + TOBN(0x7d6ddb72, 0xec77b7ec), TOBN(0xfe079d3b, 0x0353a4ae), + TOBN(0x3066e70a, 0x2e6ac8d2), TOBN(0x9c6b5a43, 0x106e5c05), + TOBN(0x52d3c6f5, 0xede59b8c), TOBN(0x30d6a5c3, 0xfccec9ae), + TOBN(0xedec7c22, 0x4fc0a9ef), TOBN(0x190ff083, 0x95c16ced), + TOBN(0xbe12ec8f, 0x94de0fde), TOBN(0x0d131ab8, 0x852d3433), + TOBN(0x42ace07e, 0x85701291), TOBN(0x94793ed9, 0x194061a8), + TOBN(0x30e83ed6, 0xd7f4a485), TOBN(0x9eec7269, 0xf9eeff4d), + TOBN(0x90acba59, 0x0c9d8005), TOBN(0x5feca458, 0x1e79b9d1), + TOBN(0x8fbe5427, 0x1d506a1e), TOBN(0xa32b2c8e, 0x2439cfa7), + TOBN(0x1671c173, 0x73dd0b4e), TOBN(0x37a28214, 0x44a054c6), + TOBN(0x81760a1b, 0x4e8b53f1), TOBN(0xa6c04224, 0xf9f93b9e), + TOBN(0x18784b34, 0xcf671e3c), TOBN(0x81bbecd2, 0xcda9b994), + TOBN(0x38831979, 0xb2ab3848), TOBN(0xef54feb7, 0xf2e03c2d), + TOBN(0xcf197ca7, 0xfb8088fa), TOBN(0x01427247, 0x4ddc96c5), + TOBN(0xa2d2550a, 0x30777176), TOBN(0x53469898, 0x4d0cf71d), + TOBN(0x6ce937b8, 0x3a2aaac6), TOBN(0xe9f91dc3, 0x5af38d9b), + TOBN(0x2598ad83, 0xc8bf2899), TOBN(0x8e706ac9, 0xb5536c16), + TOBN(0x40dc7495, 0xf688dc98), TOBN(0x26490cd7, 0x124c4afc), + TOBN(0xe651ec84, 0x1f18775c), TOBN(0x393ea6c3, 0xb4fdaf4a), + TOBN(0x1e1f3343, 0x7f338e0d), TOBN(0x39fb832b, 0x6053e7b5), + TOBN(0x46e702da, 0x619e14d5), TOBN(0x859cacd1, 0xcdeef6e0), + TOBN(0x63b99ce7, 0x4462007d), TOBN(0xb8ab48a5, 0x4cb5f5b7), + TOBN(0x9ec673d2, 0xf55edde7), TOBN(0xd1567f74, 0x8cfaefda), + TOBN(0x46381b6b, 0x0887bcec), TOBN(0x694497ce, 0xe178f3c2), + TOBN(0x5e6525e3, 0x1e6266cb), TOBN(0x5931de26, 0x697d6413), + TOBN(0x87f8df7c, 0x0e58d493), TOBN(0xb1ae5ed0, 0x58b73f12), + TOBN(0xc368f784, 0xdea0c34d), TOBN(0x9bd0a120, 0x859a91a0), + TOBN(0xb00d88b7, 0xcc863c68), TOBN(0x3a1cc11e, 0x3d1f4d65), + TOBN(0xea38e0e7, 0x0aa85593), TOBN(0x37f13e98, 0x7dc4aee8), + TOBN(0x10d38667, 0xbc947bad), TOBN(0x738e07ce, 0x2a36ee2e), + TOBN(0xc93470cd, 0xc577fcac), TOBN(0xdee1b616, 0x2782470d), + TOBN(0x36a25e67, 0x2e793d12), TOBN(0xd6aa6cae, 0xe0f186da), + TOBN(0x474d0fd9, 0x80e07af7), TOBN(0xf7cdc47d, 0xba8a5cd4), + TOBN(0x28af6d9d, 0xab15247f), TOBN(0x7c789c10, 0x493a537f), + TOBN(0x7ac9b110, 0x23a334e7), TOBN(0x0236ac09, 0x12c9c277), + TOBN(0xa7e5bd25, 0x1d7a5144), TOBN(0x098b9c2a, 0xf13ec4ec), + TOBN(0x3639daca, 0xd3f0abca), TOBN(0x642da81a, 0xa23960f9), + TOBN(0x7d2e5c05, 0x4f7269b1), TOBN(0xfcf30777, 0xe287c385), + TOBN(0x10edc84f, 0xf2a46f21), TOBN(0x35441757, 0x4f43fa36), + TOBN(0xf1327899, 0xfd703431), TOBN(0xa438d7a6, 0x16dd587a), + TOBN(0x65c34c57, 0xe9c8352d), TOBN(0xa728edab, 0x5cc5a24e), + TOBN(0xaed78abc, 0x42531689), TOBN(0x0a51a0e8, 0x010963ef), + TOBN(0x5776fa0a, 0xd717d9b3), TOBN(0xf356c239, 0x7dd3428b), + TOBN(0x29903fff, 0x8d3a3dac), TOBN(0x409597fa, 0x3d94491f), + TOBN(0x4cd7a5ff, 0xbf4a56a4), TOBN(0xe5096474, 0x8adab462), + TOBN(0xa97b5126, 0x5c3427b0), TOBN(0x6401405c, 0xd282c9bd), + TOBN(0x3629f8d7, 0x222c5c45), TOBN(0xb1c02c16, 0xe8d50aed), + TOBN(0xbea2ed75, 0xd9635bc9), TOBN(0x226790c7, 0x6e24552f), + TOBN(0x3c33f2a3, 0x65f1d066), TOBN(0x2a43463e, 0x6dfccc2e), + TOBN(0x8cc3453a, 0xdb483761), TOBN(0xe7cc6085, 0x65d5672b), + TOBN(0x277ed6cb, 0xde3efc87), TOBN(0x19f2f368, 0x69234eaf), + TOBN(0x9aaf4317, 0x5c0b800b), TOBN(0x1f1e7c89, 0x8b6da6e2), + TOBN(0x6cfb4715, 0xb94ec75e), TOBN(0xd590dd5f, 0x453118c2), + TOBN(0x14e49da1, 0x1f17a34c), TOBN(0x5420ab39, 0x235a1456), + TOBN(0xb7637241, 0x2f50363b), TOBN(0x7b15d623, 0xc3fabb6e), + TOBN(0xa0ef40b1, 0xe274e49c), TOBN(0x5cf50744, 0x96b1860a), + TOBN(0xd6583fbf, 0x66afe5a4), TOBN(0x44240510, 0xf47e3e9a), + TOBN(0x99254343, 0x11b2d595), TOBN(0xf1367499, 0xeec8df57), + TOBN(0x3cb12c61, 0x3e73dd05), TOBN(0xd248c033, 0x7dac102a), + TOBN(0xcf154f13, 0xa77739f5), TOBN(0xbf4288cb, 0x23d2af42), + TOBN(0xaa64c9b6, 0x32e4a1cf), TOBN(0xee8c07a8, 0xc8a208f3), + TOBN(0xe10d4999, 0x6fe8393f), TOBN(0x0f809a3f, 0xe91f3a32), + TOBN(0x61096d1c, 0x802f63c8), TOBN(0x289e1462, 0x57750d3d), + TOBN(0xed06167e, 0x9889feea), TOBN(0xd5c9c0e2, 0xe0993909), + TOBN(0x46fca0d8, 0x56508ac6), TOBN(0x91826047, 0x4f1b8e83), + TOBN(0x4f2c877a, 0x9a4a2751), TOBN(0x71bd0072, 0xcae6fead), + TOBN(0x38df8dcc, 0x06aa1941), TOBN(0x5a074b4c, 0x63beeaa8), + TOBN(0xd6d65934, 0xc1cec8ed), TOBN(0xa6ecb49e, 0xaabc03bd), + TOBN(0xaade91c2, 0xde8a8415), TOBN(0xcfb0efdf, 0x691136e0), + TOBN(0x11af45ee, 0x23ab3495), TOBN(0xa132df88, 0x0b77463d), + TOBN(0x8923c15c, 0x815d06f4), TOBN(0xc3ceb3f5, 0x0d61a436), + TOBN(0xaf52291d, 0xe88fb1da), TOBN(0xea057974, 0x1da12179), + TOBN(0xb0d7218c, 0xd2fef720), TOBN(0x6c0899c9, 0x8e1d8845), + TOBN(0x98157504, 0x752ddad7), TOBN(0xd60bd74f, 0xa1a68a97), + TOBN(0x7047a3a9, 0xf658fb99), TOBN(0x1f5d86d6, 0x5f8511e4), + TOBN(0xb8a4bc42, 0x4b5a6d88), TOBN(0x69eb2c33, 0x1abefa7d), + TOBN(0x95bf39e8, 0x13c9c510), TOBN(0xf571960a, 0xd48aab43), + TOBN(0x7e8cfbcf, 0x704e23c6), TOBN(0xc71b7d22, 0x28aaa65b), + TOBN(0xa041b2bd, 0x245e3c83), TOBN(0x69b98834, 0xd21854ff), + TOBN(0x89d227a3, 0x963bfeec), TOBN(0x99947aaa, 0xde7da7cb), + TOBN(0x1d9ee9db, 0xee68a9b1), TOBN(0x0a08f003, 0x698ec368), + TOBN(0xe9ea4094, 0x78ef2487), TOBN(0xc8d2d415, 0x02cfec26), + TOBN(0xc52f9a6e, 0xb7dcf328), TOBN(0x0ed489e3, 0x85b6a937), + TOBN(0x9b94986b, 0xbef3366e), TOBN(0x0de59c70, 0xedddddb8), + TOBN(0xffdb748c, 0xeadddbe2), TOBN(0x9b9784bb, 0x8266ea40), + TOBN(0x142b5502, 0x1a93507a), TOBN(0xb4cd1187, 0x8d3c06cf), + TOBN(0xdf70e76a, 0x91ec3f40), TOBN(0x484e81ad, 0x4e7553c2), + TOBN(0x830f87b5, 0x272e9d6e), TOBN(0xea1c93e5, 0xc6ff514a), + TOBN(0x67cc2adc, 0xc4192a8e), TOBN(0xc77e27e2, 0x42f4535a), + TOBN(0x9cdbab36, 0xd2b713c5), TOBN(0x86274ea0, 0xcf7b0cd3), + TOBN(0x784680f3, 0x09af826b), TOBN(0xbfcc837a, 0x0c72dea3), + TOBN(0xa8bdfe9d, 0xd6529b73), TOBN(0x708aa228, 0x63a88002), + TOBN(0x6c7a9a54, 0xc91d45b9), TOBN(0xdf1a38bb, 0xfd004f56), + TOBN(0x2e8c9a26, 0xb8bad853), TOBN(0x2d52cea3, 0x3723eae7), + TOBN(0x054d6d81, 0x56ca2830), TOBN(0xa3317d14, 0x9a8dc411), + TOBN(0xa08662fe, 0xfd4ddeda), TOBN(0xed2a153a, 0xb55d792b), + TOBN(0x7035c16a, 0xbfc6e944), TOBN(0xb6bc5834, 0x00171cf3), + TOBN(0xe27152b3, 0x83d102b6), TOBN(0xfe695a47, 0x0646b848), + TOBN(0xa5bb09d8, 0x916e6d37), TOBN(0xb4269d64, 0x0d17015e), + TOBN(0x8d8156a1, 0x0a1d2285), TOBN(0xfeef6c51, 0x46d26d72), + TOBN(0x9dac57c8, 0x4c5434a7), TOBN(0x0282e5be, 0x59d39e31), + TOBN(0xedfff181, 0x721c486d), TOBN(0x301baf10, 0xbc58824e), + TOBN(0x8136a6aa, 0x00570031), TOBN(0x55aaf78c, 0x1cddde68), + TOBN(0x26829371, 0x59c63952), TOBN(0x3a3bd274, 0x8bc25baf), + TOBN(0xecdf8657, 0xb7e52dc3), TOBN(0x2dd8c087, 0xfd78e6c8), + TOBN(0x20553274, 0xf5531461), TOBN(0x8b4a1281, 0x5d95499b), + TOBN(0xe2c8763a, 0x1a80f9d2), TOBN(0xd1dbe32b, 0x4ddec758), + TOBN(0xaf12210d, 0x30c34169), TOBN(0xba74a953, 0x78baa533), + TOBN(0x3d133c6e, 0xa438f254), TOBN(0xa431531a, 0x201bef5b), + TOBN(0x15295e22, 0xf669d7ec), TOBN(0xca374f64, 0x357fb515), + TOBN(0x8a8406ff, 0xeaa3fdb3), TOBN(0x106ae448, 0xdf3f2da8), + TOBN(0x8f9b0a90, 0x33c8e9a1), TOBN(0x234645e2, 0x71ad5885), + TOBN(0x3d083224, 0x1c0aed14), TOBN(0xf10a7d3e, 0x7a942d46), + TOBN(0x7c11deee, 0x40d5c9be), TOBN(0xb2bae7ff, 0xba84ed98), + TOBN(0x93e97139, 0xaad58ddd), TOBN(0x3d872796, 0x3f6d1fa3), + TOBN(0x483aca81, 0x8569ff13), TOBN(0x8b89a5fb, 0x9a600f72), + TOBN(0x4cbc27c3, 0xc06f2b86), TOBN(0x22130713, 0x63ad9c0b), + TOBN(0xb5358b1e, 0x48ac2840), TOBN(0x18311294, 0xecba9477), + TOBN(0xda58f990, 0xa6946b43), TOBN(0x3098baf9, 0x9ab41819), + TOBN(0x66c4c158, 0x4198da52), TOBN(0xab4fc17c, 0x146bfd1b), + TOBN(0x2f0a4c3c, 0xbf36a908), TOBN(0x2ae9e34b, 0x58cf7838), + TOBN(0xf411529e, 0x3fa11b1f), TOBN(0x21e43677, 0x974af2b4), + TOBN(0x7c20958e, 0xc230793b), TOBN(0x710ea885, 0x16e840f3), + TOBN(0xfc0b21fc, 0xc5dc67cf), TOBN(0x08d51647, 0x88405718), + TOBN(0xd955c21f, 0xcfe49eb7), TOBN(0x9722a5d5, 0x56dd4a1f), + TOBN(0xc9ef50e2, 0xc861baa5), TOBN(0xc0c21a5d, 0x9505ac3e), + TOBN(0xaf6b9a33, 0x8b7c063f), TOBN(0xc6370339, 0x2f4779c1), + TOBN(0x22df99c7, 0x638167c3), TOBN(0xfe6ffe76, 0x795db30c), + TOBN(0x2b822d33, 0xa4854989), TOBN(0xfef031dd, 0x30563aa5), + TOBN(0x16b09f82, 0xd57c667f), TOBN(0xc70312ce, 0xcc0b76f1), + TOBN(0xbf04a9e6, 0xc9118aec), TOBN(0x82fcb419, 0x3409d133), + TOBN(0x1a8ab385, 0xab45d44d), TOBN(0xfba07222, 0x617b83a3), + TOBN(0xb05f50dd, 0x58e81b52), TOBN(0x1d8db553, 0x21ce5aff), + TOBN(0x3097b8d4, 0xe344a873), TOBN(0x7d8d116d, 0xfe36d53e), + TOBN(0x6db22f58, 0x7875e750), TOBN(0x2dc5e373, 0x43e144ea), + TOBN(0xc05f32e6, 0xe799eb95), TOBN(0xe9e5f4df, 0x6899e6ec), + TOBN(0xbdc3bd68, 0x1fab23d5), TOBN(0xb72b8ab7, 0x73af60e6), + TOBN(0x8db27ae0, 0x2cecc84a), TOBN(0x600016d8, 0x7bdb871c), + TOBN(0x42a44b13, 0xd7c46f58), TOBN(0xb8919727, 0xc3a77d39), + TOBN(0xcfc6bbbd, 0xdafd6088), TOBN(0x1a740146, 0x6bd20d39), + TOBN(0x8c747abd, 0x98c41072), TOBN(0x4c91e765, 0xbdf68ea1), + TOBN(0x7c95e5ca, 0x08819a78), TOBN(0xcf48b729, 0xc9587921), + TOBN(0x091c7c5f, 0xdebbcc7d), TOBN(0x6f287404, 0xf0e05149), + TOBN(0xf83b5ac2, 0x26cd44ec), TOBN(0x88ae32a6, 0xcfea250e), + TOBN(0x6ac5047a, 0x1d06ebc5), TOBN(0xc7e550b4, 0xd434f781), + TOBN(0x61ab1cf2, 0x5c727bd2), TOBN(0x2e4badb1, 0x1cf915b0), + TOBN(0x1b4dadec, 0xf69d3920), TOBN(0xe61b1ca6, 0xf14c1dfe), + TOBN(0x90b479cc, 0xbd6bd51f), TOBN(0x8024e401, 0x8045ec30), + TOBN(0xcab29ca3, 0x25ef0e62), TOBN(0x4f2e9416, 0x49e4ebc0), + TOBN(0x45eb40ec, 0x0ccced58), TOBN(0x25cd4b9c, 0x0da44f98), + TOBN(0x43e06458, 0x871812c6), TOBN(0x99f80d55, 0x16cef651), + TOBN(0x571340c9, 0xce6dc153), TOBN(0x138d5117, 0xd8665521), + TOBN(0xacdb45bc, 0x4e07014d), TOBN(0x2f34bb38, 0x84b60b91), + TOBN(0xf44a4fd2, 0x2ae8921e), TOBN(0xb039288e, 0x892ba1e2), + TOBN(0x9da50174, 0xb1c180b2), TOBN(0x6b70ab66, 0x1693dc87), + TOBN(0x7e9babc9, 0xe7057481), TOBN(0x4581ddef, 0x9c80dc41), + TOBN(0x0c890da9, 0x51294682), TOBN(0x0b5629d3, 0x3f4736e5), + TOBN(0x2340c79e, 0xb06f5b41), TOBN(0xa42e84ce, 0x4e243469), + TOBN(0xf9a20135, 0x045a71a9), TOBN(0xefbfb415, 0xd27b6fb6), + TOBN(0x25ebea23, 0x9d33cd6f), TOBN(0x9caedb88, 0xaa6c0af8), + TOBN(0x53dc7e9a, 0xd9ce6f96), TOBN(0x3897f9fd, 0x51e0b15a), + TOBN(0xf51cb1f8, 0x8e5d788e), TOBN(0x1aec7ba8, 0xe1d490ee), + TOBN(0x265991e0, 0xcc58cb3c), TOBN(0x9f306e8c, 0x9fc3ad31), + TOBN(0x5fed006e, 0x5040a0ac), TOBN(0xca9d5043, 0xfb476f2e), + TOBN(0xa19c06e8, 0xbeea7a23), TOBN(0xd2865801, 0x0edabb63), + TOBN(0xdb92293f, 0x6967469a), TOBN(0x2894d839, 0x8d8a8ed8), + TOBN(0x87c9e406, 0xbbc77122), TOBN(0x8671c6f1, 0x2ea3a26a), + TOBN(0xe42df8d6, 0xd7de9853), TOBN(0x2e3ce346, 0xb1f2bcc7), + TOBN(0xda601dfc, 0x899d50cf), TOBN(0xbfc913de, 0xfb1b598f), + TOBN(0x81c4909f, 0xe61f7908), TOBN(0x192e304f, 0x9bbc7b29), + TOBN(0xc3ed8738, 0xc104b338), TOBN(0xedbe9e47, 0x783f5d61), + TOBN(0x0c06e9be, 0x2db30660), TOBN(0xda3e613f, 0xc0eb7d8e), + TOBN(0xd8fa3e97, 0x322e096e), TOBN(0xfebd91e8, 0xd336e247), + TOBN(0x8f13ccc4, 0xdf655a49), TOBN(0xa9e00dfc, 0x5eb20210), + TOBN(0x84631d0f, 0xc656b6ea), TOBN(0x93a058cd, 0xd8c0d947), + TOBN(0x6846904a, 0x67bd3448), TOBN(0x4a3d4e1a, 0xf394fd5c), + TOBN(0xc102c1a5, 0xdb225f52), TOBN(0xe3455bba, 0xfc4f5e9a), + TOBN(0x6b36985b, 0x4b9ad1ce), TOBN(0xa9818536, 0x5bb7f793), + TOBN(0x6c25e1d0, 0x48b1a416), TOBN(0x1381dd53, 0x3c81bee7), + TOBN(0xd2a30d61, 0x7a4a7620), TOBN(0xc8412926, 0x39b8944c), + TOBN(0x3c1c6fbe, 0x7a97c33a), TOBN(0x941e541d, 0x938664e7), + TOBN(0x417499e8, 0x4a34f239), TOBN(0x15fdb83c, 0xb90402d5), + TOBN(0xb75f46bf, 0x433aa832), TOBN(0xb61e15af, 0x63215db1), + TOBN(0xaabe59d4, 0xa127f89a), TOBN(0x5d541e0c, 0x07e816da), + TOBN(0xaaba0659, 0xa618b692), TOBN(0x55327733, 0x17266026), + TOBN(0xaf53a0fc, 0x95f57552), TOBN(0x32947650, 0x6cacb0c9), + TOBN(0x253ff58d, 0xc821be01), TOBN(0xb0309531, 0xa06f1146), + TOBN(0x59bbbdf5, 0x05c2e54d), TOBN(0x158f27ad, 0x26e8dd22), + TOBN(0xcc5b7ffb, 0x397e1e53), TOBN(0xae03f65b, 0x7fc1e50d), + TOBN(0xa9784ebd, 0x9c95f0f9), TOBN(0x5ed9deb2, 0x24640771), + TOBN(0x31244af7, 0x035561c4), TOBN(0x87332f3a, 0x7ee857de), + TOBN(0x09e16e9e, 0x2b9e0d88), TOBN(0x52d910f4, 0x56a06049), + TOBN(0x507ed477, 0xa9592f48), TOBN(0x85cb917b, 0x2365d678), + TOBN(0xf8511c93, 0x4c8998d1), TOBN(0x2186a3f1, 0x730ea58f), + TOBN(0x50189626, 0xb2029db0), TOBN(0x9137a6d9, 0x02ceb75a), + TOBN(0x2fe17f37, 0x748bc82c), TOBN(0x87c2e931, 0x80469f8c), + TOBN(0x850f71cd, 0xbf891aa2), TOBN(0x0ca1b89b, 0x75ec3d8d), + TOBN(0x516c43aa, 0x5e1cd3cd), TOBN(0x89397808, 0x9a887c28), + TOBN(0x0059c699, 0xddea1f9f), TOBN(0x7737d6fa, 0x8e6868f7), + TOBN(0x6d93746a, 0x60f1524b), TOBN(0x36985e55, 0xba052aa7), + TOBN(0x41b1d322, 0xed923ea5), TOBN(0x3429759f, 0x25852a11), + TOBN(0xbeca6ec3, 0x092e9f41), TOBN(0x3a238c66, 0x62256bbd), + TOBN(0xd82958ea, 0x70ad487d), TOBN(0x4ac8aaf9, 0x65610d93), + TOBN(0x3fa101b1, 0x5e4ccab0), TOBN(0x9bf430f2, 0x9de14bfb), + TOBN(0xa10f5cc6, 0x6531899d), TOBN(0x590005fb, 0xea8ce17d), + TOBN(0xc437912f, 0x24544cb6), TOBN(0x9987b71a, 0xd79ac2e3), + TOBN(0x13e3d9dd, 0xc058a212), TOBN(0x00075aac, 0xd2de9606), + TOBN(0x80ab508b, 0x6cac8369), TOBN(0x87842be7, 0xf54f6c89), + TOBN(0xa7ad663d, 0x6bc532a4), TOBN(0x67813de7, 0x78a91bc8), + TOBN(0x5dcb61ce, 0xc3427239), TOBN(0x5f3c7cf0, 0xc56934d9), + TOBN(0xc079e0fb, 0xe3191591), TOBN(0xe40896bd, 0xb01aada7), + TOBN(0x8d466791, 0x0492d25f), TOBN(0x8aeb30c9, 0xe7408276), + TOBN(0xe9437495, 0x9287aacc), TOBN(0x23d4708d, 0x79fe03d4), + TOBN(0x8cda9cf2, 0xd0c05199), TOBN(0x502fbc22, 0xfae78454), + TOBN(0xc0bda9df, 0xf572a182), TOBN(0x5f9b71b8, 0x6158b372), + TOBN(0xe0f33a59, 0x2b82dd07), TOBN(0x76302735, 0x9523032e), + TOBN(0x7fe1a721, 0xc4505a32), TOBN(0x7b6e3e82, 0xf796409f),} + , + {TOBN(0xe3417bc0, 0x35d0b34a), TOBN(0x440b386b, 0x8327c0a7), + TOBN(0x8fb7262d, 0xac0362d1), TOBN(0x2c41114c, 0xe0cdf943), + TOBN(0x2ba5cef1, 0xad95a0b1), TOBN(0xc09b37a8, 0x67d54362), + TOBN(0x26d6cdd2, 0x01e486c9), TOBN(0x20477abf, 0x42ff9297), + TOBN(0xa004dcb3, 0x292a9287), TOBN(0xddc15cf6, 0x77b092c7), + TOBN(0x083a8464, 0x806c0605), TOBN(0x4a68df70, 0x3db997b0), + TOBN(0x9c134e45, 0x05bf7dd0), TOBN(0xa4e63d39, 0x8ccf7f8c), + TOBN(0xa6e6517f, 0x41b5f8af), TOBN(0xaa8b9342, 0xad7bc1cc), + TOBN(0x126f35b5, 0x1e706ad9), TOBN(0xb99cebb4, 0xc3a9ebdf), + TOBN(0xa75389af, 0xbf608d90), TOBN(0x76113c4f, 0xc6c89858), + TOBN(0x80de8eb0, 0x97e2b5aa), TOBN(0x7e1022cc, 0x63b91304), + TOBN(0x3bdab605, 0x6ccc066c), TOBN(0x33cbb144, 0xb2edf900), + TOBN(0xc4176471, 0x7af715d2), TOBN(0xe2f7f594, 0xd0134a96), + TOBN(0x2c1873ef, 0xa41ec956), TOBN(0xe4e7b4f6, 0x77821304), + TOBN(0xe5c8ff97, 0x88d5374a), TOBN(0x2b915e63, 0x80823d5b), + TOBN(0xea6bc755, 0xb2ee8fe2), TOBN(0x6657624c, 0xe7112651), + TOBN(0x157af101, 0xdace5aca), TOBN(0xc4fdbcf2, 0x11a6a267), + TOBN(0xdaddf340, 0xc49c8609), TOBN(0x97e49f52, 0xe9604a65), + TOBN(0x9be8e790, 0x937e2ad5), TOBN(0x846e2508, 0x326e17f1), + TOBN(0x3f38007a, 0x0bbbc0dc), TOBN(0xcf03603f, 0xb11e16d6), + TOBN(0xd6f800e0, 0x7442f1d5), TOBN(0x475607d1, 0x66e0e3ab), + TOBN(0x82807f16, 0xb7c64047), TOBN(0x8858e1e3, 0xa749883d), + TOBN(0x5859120b, 0x8231ee10), TOBN(0x1b80e7eb, 0x638a1ece), + TOBN(0xcb72525a, 0xc6aa73a4), TOBN(0xa7cdea3d, 0x844423ac), + TOBN(0x5ed0c007, 0xf8ae7c38), TOBN(0x6db07a5c, 0x3d740192), + TOBN(0xbe5e9c2a, 0x5fe36db3), TOBN(0xd5b9d57a, 0x76e95046), + TOBN(0x54ac32e7, 0x8eba20f2), TOBN(0xef11ca8f, 0x71b9a352), + TOBN(0x305e373e, 0xff98a658), TOBN(0xffe5a100, 0x823eb667), + TOBN(0x57477b11, 0xe51732d2), TOBN(0xdfd6eb28, 0x2538fc0e), + TOBN(0x5c43b0cc, 0x3b39eec5), TOBN(0x6af12778, 0xcb36cc57), + TOBN(0x70b0852d, 0x06c425ae), TOBN(0x6df92f8c, 0x5c221b9b), + TOBN(0x6c8d4f9e, 0xce826d9c), TOBN(0xf59aba7b, 0xb49359c3), + TOBN(0x5c8ed8d5, 0xda64309d), TOBN(0x61a6de56, 0x91b30704), + TOBN(0xd6b52f6a, 0x2f9b5808), TOBN(0x0eee4194, 0x98c958a7), + TOBN(0xcddd9aab, 0x771e4caa), TOBN(0x83965dfd, 0x78bc21be), + TOBN(0x02affce3, 0xb3b504f5), TOBN(0x30847a21, 0x561c8291), + TOBN(0xd2eb2cf1, 0x52bfda05), TOBN(0xe0e4c4e9, 0x6197b98c), + TOBN(0x1d35076c, 0xf8a1726f), TOBN(0x6c06085b, 0x2db11e3d), + TOBN(0x15c0c4d7, 0x4463ba14), TOBN(0x9d292f83, 0x0030238c), + TOBN(0x1311ee8b, 0x3727536d), TOBN(0xfeea86ef, 0xbeaedc1e), + TOBN(0xb9d18cd3, 0x66131e2e), TOBN(0xf31d974f, 0x80fe2682), + TOBN(0xb6e49e0f, 0xe4160289), TOBN(0x7c48ec0b, 0x08e92799), + TOBN(0x818111d8, 0xd1989aa7), TOBN(0xb34fa0aa, 0xebf926f9), + TOBN(0xdb5fe2f5, 0xa245474a), TOBN(0xf80a6ebb, 0x3c7ca756), + TOBN(0xa7f96054, 0xafa05dd8), TOBN(0x26dfcf21, 0xfcaf119e), + TOBN(0xe20ef2e3, 0x0564bb59), TOBN(0xef4dca50, 0x61cb02b8), + TOBN(0xcda7838a, 0x65d30672), TOBN(0x8b08d534, 0xfd657e86), + TOBN(0x4c5b4395, 0x46d595c8), TOBN(0x39b58725, 0x425cb836), + TOBN(0x8ea61059, 0x3de9abe3), TOBN(0x40434881, 0x9cdc03be), + TOBN(0x9b261245, 0xcfedce8c), TOBN(0x78c318b4, 0xcf5234a1), + TOBN(0x510bcf16, 0xfde24c99), TOBN(0x2a77cb75, 0xa2c2ff5d), + TOBN(0x9c895c2b, 0x27960fb4), TOBN(0xd30ce975, 0xb0eda42b), + TOBN(0xfda85393, 0x1a62cc26), TOBN(0x23c69b96, 0x50c0e052), + TOBN(0xa227df15, 0xbfc633f3), TOBN(0x2ac78848, 0x1bae7d48), + TOBN(0x487878f9, 0x187d073d), TOBN(0x6c2be919, 0x967f807d), + TOBN(0x765861d8, 0x336e6d8f), TOBN(0x88b8974c, 0xce528a43), + TOBN(0x09521177, 0xff57d051), TOBN(0x2ff38037, 0xfb6a1961), + TOBN(0xfc0aba74, 0xa3d76ad4), TOBN(0x7c764803, 0x25a7ec17), + TOBN(0x7532d75f, 0x48879bc8), TOBN(0xea7eacc0, 0x58ce6bc1), + TOBN(0xc82176b4, 0x8e896c16), TOBN(0x9a30e0b2, 0x2c750fed), + TOBN(0xc37e2c2e, 0x421d3aa4), TOBN(0xf926407c, 0xe84fa840), + TOBN(0x18abc03d, 0x1454e41c), TOBN(0x26605ecd, 0x3f7af644), + TOBN(0x242341a6, 0xd6a5eabf), TOBN(0x1edb84f4, 0x216b668e), + TOBN(0xd836edb8, 0x04010102), TOBN(0x5b337ce7, 0x945e1d8c), + TOBN(0xd2075c77, 0xc055dc14), TOBN(0x2a0ffa25, 0x81d89cdf), + TOBN(0x8ce815ea, 0x6ffdcbaf), TOBN(0xa3428878, 0xfb648867), + TOBN(0x277699cf, 0x884655fb), TOBN(0xfa5b5bd6, 0x364d3e41), + TOBN(0x01f680c6, 0x441e1cb7), TOBN(0x3fd61e66, 0xb70a7d67), + TOBN(0x666ba2dc, 0xcc78cf66), TOBN(0xb3018174, 0x6fdbff77), + TOBN(0x8d4dd0db, 0x168d4668), TOBN(0x259455d0, 0x1dab3a2a), + TOBN(0xf58564c5, 0xcde3acec), TOBN(0x77141925, 0x13adb276), + TOBN(0x527d725d, 0x8a303f65), TOBN(0x55deb6c9, 0xe6f38f7b), + TOBN(0xfd5bb657, 0xb1fa70fb), TOBN(0xfa07f50f, 0xd8073a00), + TOBN(0xf72e3aa7, 0xbca02500), TOBN(0xf68f895d, 0x9975740d), + TOBN(0x30112060, 0x5cae2a6a), TOBN(0x01bd7218, 0x02874842), + TOBN(0x3d423891, 0x7ce47bd3), TOBN(0xa66663c1, 0x789544f6), + TOBN(0x864d05d7, 0x3272d838), TOBN(0xe22924f9, 0xfa6295c5), + TOBN(0x8189593f, 0x6c2fda32), TOBN(0x330d7189, 0xb184b544), + TOBN(0x79efa62c, 0xbde1f714), TOBN(0x35771c94, 0xe5cb1a63), + TOBN(0x2f4826b8, 0x641c8332), TOBN(0x00a894fb, 0xc8cee854), + TOBN(0xb4b9a39b, 0x36194d40), TOBN(0xe857a7c5, 0x77612601), + TOBN(0xf4209dd2, 0x4ecf2f58), TOBN(0x82b9e66d, 0x5a033487), + TOBN(0xc1e36934, 0xe4e8b9dd), TOBN(0xd2372c9d, 0xa42377d7), + TOBN(0x51dc94c7, 0x0e3ae43b), TOBN(0x4c57761e, 0x04474f6f), + TOBN(0xdcdacd0a, 0x1058a318), TOBN(0x369cf3f5, 0x78053a9a), + TOBN(0xc6c3de50, 0x31c68de2), TOBN(0x4653a576, 0x3c4b6d9f), + TOBN(0x1688dd5a, 0xaa4e5c97), TOBN(0x5be80aa1, 0xb7ab3c74), + TOBN(0x70cefe7c, 0xbc65c283), TOBN(0x57f95f13, 0x06867091), + TOBN(0xa39114e2, 0x4415503b), TOBN(0xc08ff7c6, 0x4cbb17e9), + TOBN(0x1eff674d, 0xd7dec966), TOBN(0x6d4690af, 0x53376f63), + TOBN(0xff6fe32e, 0xea74237b), TOBN(0xc436d17e, 0xcd57508e), + TOBN(0x15aa28e1, 0xedcc40fe), TOBN(0x0d769c04, 0x581bbb44), + TOBN(0xc240b6de, 0x34eaacda), TOBN(0xd9e116e8, 0x2ba0f1de), + TOBN(0xcbe45ec7, 0x79438e55), TOBN(0x91787c9d, 0x96f752d7), + TOBN(0x897f532b, 0xf129ac2f), TOBN(0xd307b7c8, 0x5a36e22c), + TOBN(0x91940675, 0x749fb8f3), TOBN(0xd14f95d0, 0x157fdb28), + TOBN(0xfe51d029, 0x6ae55043), TOBN(0x8931e98f, 0x44a87de1), + TOBN(0xe57f1cc6, 0x09e4fee2), TOBN(0x0d063b67, 0x4e072d92), + TOBN(0x70a998b9, 0xed0e4316), TOBN(0xe74a736b, 0x306aca46), + TOBN(0xecf0fbf2, 0x4fda97c7), TOBN(0xa40f65cb, 0x3e178d93), + TOBN(0x16253604, 0x16df4285), TOBN(0xb0c9babb, 0xd0c56ae2), + TOBN(0x73032b19, 0xcfc5cfc3), TOBN(0xe497e5c3, 0x09752056), + TOBN(0x12096bb4, 0x164bda96), TOBN(0x1ee42419, 0xa0b74da1), + TOBN(0x8fc36243, 0x403826ba), TOBN(0x0c8f0069, 0xdc09e660), + TOBN(0x8667e981, 0xc27253c9), TOBN(0x05a6aefb, 0x92b36a45), + TOBN(0xa62c4b36, 0x9cb7bb46), TOBN(0x8394f375, 0x11f7027b), + TOBN(0x747bc79c, 0x5f109d0f), TOBN(0xcad88a76, 0x5b8cc60a), + TOBN(0x80c5a66b, 0x58f09e68), TOBN(0xe753d451, 0xf6127eac), + TOBN(0xc44b74a1, 0x5b0ec6f5), TOBN(0x47989fe4, 0x5289b2b8), + TOBN(0x745f8484, 0x58d6fc73), TOBN(0xec362a6f, 0xf61c70ab), + TOBN(0x070c98a7, 0xb3a8ad41), TOBN(0x73a20fc0, 0x7b63db51), + TOBN(0xed2c2173, 0xf44c35f4), TOBN(0x8a56149d, 0x9acc9dca), + TOBN(0x98f17881, 0x9ac6e0f4), TOBN(0x360fdeaf, 0xa413b5ed), + TOBN(0x0625b8f4, 0xa300b0fd), TOBN(0xf1f4d76a, 0x5b3222d3), + TOBN(0x9d6f5109, 0x587f76b8), TOBN(0x8b4ee08d, 0x2317fdb5), + TOBN(0x88089bb7, 0x8c68b095), TOBN(0x95570e9a, 0x5808d9b9), + TOBN(0xa395c36f, 0x35d33ae7), TOBN(0x200ea123, 0x50bb5a94), + TOBN(0x20c789bd, 0x0bafe84b), TOBN(0x243ef52d, 0x0919276a), + TOBN(0x3934c577, 0xe23ae233), TOBN(0xb93807af, 0xa460d1ec), + TOBN(0xb72a53b1, 0xf8fa76a4), TOBN(0xd8914cb0, 0xc3ca4491), + TOBN(0x2e128494, 0x3fb42622), TOBN(0x3b2700ac, 0x500907d5), + TOBN(0xf370fb09, 0x1a95ec63), TOBN(0xf8f30be2, 0x31b6dfbd), + TOBN(0xf2b2f8d2, 0x69e55f15), TOBN(0x1fead851, 0xcc1323e9), + TOBN(0xfa366010, 0xd9e5eef6), TOBN(0x64d487b0, 0xe316107e), + TOBN(0x4c076b86, 0xd23ddc82), TOBN(0x03fd344c, 0x7e0143f0), + TOBN(0xa95362ff, 0x317af2c5), TOBN(0x0add3db7, 0xe18b7a4f), + TOBN(0x9c673e3f, 0x8260e01b), TOBN(0xfbeb49e5, 0x54a1cc91), + TOBN(0x91351bf2, 0x92f2e433), TOBN(0xc755e7ec, 0x851141eb), + TOBN(0xc9a95139, 0x29607745), TOBN(0x0ca07420, 0xa26f2b28), + TOBN(0xcb2790e7, 0x4bc6f9dd), TOBN(0x345bbb58, 0xadcaffc0), + TOBN(0xc65ea38c, 0xbe0f27a2), TOBN(0x67c24d7c, 0x641fcb56), + TOBN(0x2c25f0a7, 0xa9e2c757), TOBN(0x93f5cdb0, 0x16f16c49), + TOBN(0x2ca5a9d7, 0xc5ee30a1), TOBN(0xd1593635, 0xb909b729), + TOBN(0x804ce9f3, 0xdadeff48), TOBN(0xec464751, 0xb07c30c3), + TOBN(0x89d65ff3, 0x9e49af6a), TOBN(0xf2d6238a, 0x6f3d01bc), + TOBN(0x1095561e, 0x0bced843), TOBN(0x51789e12, 0xc8a13fd8), + TOBN(0xd633f929, 0x763231df), TOBN(0x46df9f7d, 0xe7cbddef), + TOBN(0x01c889c0, 0xcb265da8), TOBN(0xfce1ad10, 0xaf4336d2), + TOBN(0x8d110df6, 0xfc6a0a7e), TOBN(0xdd431b98, 0x6da425dc), + TOBN(0xcdc4aeab, 0x1834aabe), TOBN(0x84deb124, 0x8439b7fc), + TOBN(0x8796f169, 0x3c2a5998), TOBN(0x9b9247b4, 0x7947190d), + TOBN(0x55b9d9a5, 0x11597014), TOBN(0x7e9dd70d, 0x7b1566ee), + TOBN(0x94ad78f7, 0xcbcd5e64), TOBN(0x0359ac17, 0x9bd4c032), + TOBN(0x3b11baaf, 0x7cc222ae), TOBN(0xa6a6e284, 0xba78e812), + TOBN(0x8392053f, 0x24cea1a0), TOBN(0xc97bce4a, 0x33621491), + TOBN(0x7eb1db34, 0x35399ee9), TOBN(0x473f78ef, 0xece81ad1), + TOBN(0x41d72fe0, 0xf63d3d0d), TOBN(0xe620b880, 0xafab62fc), + TOBN(0x92096bc9, 0x93158383), TOBN(0x41a21357, 0x8f896f6c), + TOBN(0x1b5ee2fa, 0xc7dcfcab), TOBN(0x650acfde, 0x9546e007), + TOBN(0xc081b749, 0xb1b02e07), TOBN(0xda9e41a0, 0xf9eca03d), + TOBN(0x013ba727, 0x175a54ab), TOBN(0xca0cd190, 0xea5d8d10), + TOBN(0x85ea52c0, 0x95fd96a9), TOBN(0x2c591b9f, 0xbc5c3940), + TOBN(0x6fb4d4e4, 0x2bad4d5f), TOBN(0xfa4c3590, 0xfef0059b), + TOBN(0x6a10218a, 0xf5122294), TOBN(0x9a78a81a, 0xa85751d1), + TOBN(0x04f20579, 0xa98e84e7), TOBN(0xfe1242c0, 0x4997e5b5), + TOBN(0xe77a273b, 0xca21e1e4), TOBN(0xfcc8b1ef, 0x9411939d), + TOBN(0xe20ea302, 0x92d0487a), TOBN(0x1442dbec, 0x294b91fe), + TOBN(0x1f7a4afe, 0xbb6b0e8f), TOBN(0x1700ef74, 0x6889c318), + TOBN(0xf5bbffc3, 0x70f1fc62), TOBN(0x3b31d4b6, 0x69c79cca), + TOBN(0xe8bc2aab, 0xa7f6340d), TOBN(0xb0b08ab4, 0xa725e10a), + TOBN(0x44f05701, 0xae340050), TOBN(0xba4b3016, 0x1cf0c569), + TOBN(0x5aa29f83, 0xfbe19a51), TOBN(0x1b9ed428, 0xb71d752e), + TOBN(0x1666e54e, 0xeb4819f5), TOBN(0x616cdfed, 0x9e18b75b), + TOBN(0x112ed5be, 0x3ee27b0b), TOBN(0xfbf28319, 0x44c7de4d), + TOBN(0xd685ec85, 0xe0e60d84), TOBN(0x68037e30, 0x1db7ee78), + TOBN(0x5b65bdcd, 0x003c4d6e), TOBN(0x33e7363a, 0x93e29a6a), + TOBN(0x995b3a61, 0x08d0756c), TOBN(0xd727f85c, 0x2faf134b), + TOBN(0xfac6edf7, 0x1d337823), TOBN(0x99b9aa50, 0x0439b8b4), + TOBN(0x722eb104, 0xe2b4e075), TOBN(0x49987295, 0x437c4926), + TOBN(0xb1e4c0e4, 0x46a9b82d), TOBN(0xd0cb3197, 0x57a006f5), + TOBN(0xf3de0f7d, 0xd7808c56), TOBN(0xb5c54d8f, 0x51f89772), + TOBN(0x500a114a, 0xadbd31aa), TOBN(0x9afaaaa6, 0x295f6cab), + TOBN(0x94705e21, 0x04cf667a), TOBN(0xfc2a811b, 0x9d3935d7), + TOBN(0x560b0280, 0x6d09267c), TOBN(0xf19ed119, 0xf780e53b), + TOBN(0xf0227c09, 0x067b6269), TOBN(0x967b8533, 0x5caef599), + TOBN(0x155b9243, 0x68efeebc), TOBN(0xcd6d34f5, 0xc497bae6), + TOBN(0x1dd8d5d3, 0x6cceb370), TOBN(0x2aeac579, 0xa78d7bf9), + TOBN(0x5d65017d, 0x70b67a62), TOBN(0x70c8e44f, 0x17c53f67), + TOBN(0xd1fc0950, 0x86a34d09), TOBN(0xe0fca256, 0xe7134907), + TOBN(0xe24fa29c, 0x80fdd315), TOBN(0x2c4acd03, 0xd87499ad), + TOBN(0xbaaf7517, 0x3b5a9ba6), TOBN(0xb9cbe1f6, 0x12e51a51), + TOBN(0xd88edae3, 0x5e154897), TOBN(0xe4309c3c, 0x77b66ca0), + TOBN(0xf5555805, 0xf67f3746), TOBN(0x85fc37ba, 0xa36401ff), + TOBN(0xdf86e2ca, 0xd9499a53), TOBN(0x6270b2a3, 0xecbc955b), + TOBN(0xafae64f5, 0x974ad33b), TOBN(0x04d85977, 0xfe7b2df1), + TOBN(0x2a3db3ff, 0x4ab03f73), TOBN(0x0b87878a, 0x8702740a), + TOBN(0x6d263f01, 0x5a061732), TOBN(0xc25430ce, 0xa32a1901), + TOBN(0xf7ebab3d, 0xdb155018), TOBN(0x3a86f693, 0x63a9b78e), + TOBN(0x349ae368, 0xda9f3804), TOBN(0x470f07fe, 0xa164349c), + TOBN(0xd52f4cc9, 0x8562baa5), TOBN(0xc74a9e86, 0x2b290df3), + TOBN(0xd3a1aa35, 0x43471a24), TOBN(0x239446be, 0xb8194511), + TOBN(0xbec2dd00, 0x81dcd44d), TOBN(0xca3d7f0f, 0xc42ac82d), + TOBN(0x1f3db085, 0xfdaf4520), TOBN(0xbb6d3e80, 0x4549daf2), + TOBN(0xf5969d8a, 0x19ad5c42), TOBN(0x7052b13d, 0xdbfd1511), + TOBN(0x11890d1b, 0x682b9060), TOBN(0xa71d3883, 0xac34452c), + TOBN(0xa438055b, 0x783805b4), TOBN(0x43241277, 0x4725b23e), + TOBN(0xf20cf96e, 0x4901bbed), TOBN(0x6419c710, 0xf432a2bb), + TOBN(0x57a0fbb9, 0xdfa9cd7d), TOBN(0x589111e4, 0x00daa249), + TOBN(0x19809a33, 0x7b60554e), TOBN(0xea5f8887, 0xede283a4), + TOBN(0x2d713802, 0x503bfd35), TOBN(0x151bb0af, 0x585d2a53), + TOBN(0x40b08f74, 0x43b30ca8), TOBN(0xe10b5bba, 0xd9934583), + TOBN(0xe8a546d6, 0xb51110ad), TOBN(0x1dd50e66, 0x28e0b6c5), + TOBN(0x292e9d54, 0xcff2b821), TOBN(0x3882555d, 0x47281760), + TOBN(0x134838f8, 0x3724d6e3), TOBN(0xf2c679e0, 0x22ddcda1), + TOBN(0x40ee8815, 0x6d2a5768), TOBN(0x7f227bd2, 0x1c1e7e2d), + TOBN(0x487ba134, 0xd04ff443), TOBN(0x76e2ff3d, 0xc614e54b), + TOBN(0x36b88d6f, 0xa3177ec7), TOBN(0xbf731d51, 0x2328fff5), + TOBN(0x758caea2, 0x49ba158e), TOBN(0x5ab8ff4c, 0x02938188), + TOBN(0x33e16056, 0x35edc56d), TOBN(0x5a69d349, 0x7e940d79), + TOBN(0x6c4fd001, 0x03866dcb), TOBN(0x20a38f57, 0x4893cdef), + TOBN(0xfbf3e790, 0xfac3a15b), TOBN(0x6ed7ea2e, 0x7a4f8e6b), + TOBN(0xa663eb4f, 0xbc3aca86), TOBN(0x22061ea5, 0x080d53f7), + TOBN(0x2480dfe6, 0xf546783f), TOBN(0xd38bc6da, 0x5a0a641e), + TOBN(0xfb093cd1, 0x2ede8965), TOBN(0x89654db4, 0xacb455cf), + TOBN(0x413cbf9a, 0x26e1adee), TOBN(0x291f3764, 0x373294d4), + TOBN(0x00797257, 0x648083fe), TOBN(0x25f504d3, 0x208cc341), + TOBN(0x635a8e5e, 0xc3a0ee43), TOBN(0x70aaebca, 0x679898ff), + TOBN(0x9ee9f547, 0x5dc63d56), TOBN(0xce987966, 0xffb34d00), + TOBN(0xf9f86b19, 0x5e26310a), TOBN(0x9e435484, 0x382a8ca8), + TOBN(0x253bcb81, 0xc2352fe4), TOBN(0xa4eac8b0, 0x4474b571), + TOBN(0xc1b97512, 0xc1ad8cf8), TOBN(0x193b4e9e, 0x99e0b697), + TOBN(0x939d2716, 0x01e85df0), TOBN(0x4fb265b3, 0xcd44eafd), + TOBN(0x321e7dcd, 0xe51e1ae2), TOBN(0x8e3a8ca6, 0xe3d8b096), + TOBN(0x8de46cb0, 0x52604998), TOBN(0x91099ad8, 0x39072aa7), + TOBN(0x2617f91c, 0x93aa96b8), TOBN(0x0fc8716b, 0x7fca2e13), + TOBN(0xa7106f5e, 0x95328723), TOBN(0xd1c9c40b, 0x262e6522), + TOBN(0xb9bafe86, 0x42b7c094), TOBN(0x1873439d, 0x1543c021), + TOBN(0xe1baa5de, 0x5cbefd5d), TOBN(0xa363fc5e, 0x521e8aff), + TOBN(0xefe6320d, 0xf862eaac), TOBN(0x14419c63, 0x22c647dc), + TOBN(0x0e06707c, 0x4e46d428), TOBN(0xcb6c834f, 0x4a178f8f), + TOBN(0x0f993a45, 0xd30f917c), TOBN(0xd4c4b049, 0x9879afee), + TOBN(0xb6142a1e, 0x70500063), TOBN(0x7c9b41c3, 0xa5d9d605), + TOBN(0xbc00fc2f, 0x2f8ba2c7), TOBN(0x0966eb2f, 0x7c67aa28), + TOBN(0x13f7b516, 0x5a786972), TOBN(0x3bfb7557, 0x8a2fbba0), + TOBN(0x131c4f23, 0x5a2b9620), TOBN(0xbff3ed27, 0x6faf46be), + TOBN(0x9b4473d1, 0x7e172323), TOBN(0x421e8878, 0x339f6246), + TOBN(0x0fa8587a, 0x25a41632), TOBN(0xc0814124, 0xa35b6c93), + TOBN(0x2b18a9f5, 0x59ebb8db), TOBN(0x264e3357, 0x76edb29c), + TOBN(0xaf245ccd, 0xc87c51e2), TOBN(0x16b3015b, 0x501e6214), + TOBN(0xbb31c560, 0x0a3882ce), TOBN(0x6961bb94, 0xfec11e04), + TOBN(0x3b825b8d, 0xeff7a3a0), TOBN(0xbec33738, 0xb1df7326), + TOBN(0x68ad747c, 0x99604a1f), TOBN(0xd154c934, 0x9a3bd499), + TOBN(0xac33506f, 0x1cc7a906), TOBN(0x73bb5392, 0x6c560e8f), + TOBN(0x6428fcbe, 0x263e3944), TOBN(0xc11828d5, 0x1c387434), + TOBN(0x3cd04be1, 0x3e4b12ff), TOBN(0xc3aad9f9, 0x2d88667c), + TOBN(0xc52ddcf8, 0x248120cf), TOBN(0x985a892e, 0x2a389532), + TOBN(0xfbb4b21b, 0x3bb85fa0), TOBN(0xf95375e0, 0x8dfc6269), + TOBN(0xfb4fb06c, 0x7ee2acea), TOBN(0x6785426e, 0x309c4d1f), + TOBN(0x659b17c8, 0xd8ceb147), TOBN(0x9b649eee, 0xb70a5554), + TOBN(0x6b7fa0b5, 0xac6bc634), TOBN(0xd99fe2c7, 0x1d6e732f), + TOBN(0x30e6e762, 0x8d3abba2), TOBN(0x18fee6e7, 0xa797b799), + TOBN(0x5c9d360d, 0xc696464d), TOBN(0xe3baeb48, 0x27bfde12), + TOBN(0x2bf5db47, 0xf23206d5), TOBN(0x2f6d3420, 0x1d260152), + TOBN(0x17b87653, 0x3f8ff89a), TOBN(0x5157c30c, 0x378fa458), + TOBN(0x7517c5c5, 0x2d4fb936), TOBN(0xef22f7ac, 0xe6518cdc), + TOBN(0xdeb483e6, 0xbf847a64), TOBN(0xf5084558, 0x92e0fa89),} + , + {TOBN(0xab9659d8, 0xdf7304d4), TOBN(0xb71bcf1b, 0xff210e8e), + TOBN(0xa9a2438b, 0xd73fbd60), TOBN(0x4595cd1f, 0x5d11b4de), + TOBN(0x9c0d329a, 0x4835859d), TOBN(0x4a0f0d2d, 0x7dbb6e56), + TOBN(0xc6038e5e, 0xdf928a4e), TOBN(0xc9429621, 0x8f5ad154), + TOBN(0x91213462, 0xf23f2d92), TOBN(0x6cab71bd, 0x60b94078), + TOBN(0x6bdd0a63, 0x176cde20), TOBN(0x54c9b20c, 0xee4d54bc), + TOBN(0x3cd2d8aa, 0x9f2ac02f), TOBN(0x03f8e617, 0x206eedb0), + TOBN(0xc7f68e16, 0x93086434), TOBN(0x831469c5, 0x92dd3db9), + TOBN(0x8521df24, 0x8f981354), TOBN(0x587e23ec, 0x3588a259), + TOBN(0xcbedf281, 0xd7a0992c), TOBN(0x06930a55, 0x38961407), + TOBN(0x09320deb, 0xbe5bbe21), TOBN(0xa7ffa5b5, 0x2491817f), + TOBN(0xe6c8b4d9, 0x09065160), TOBN(0xac4f3992, 0xfff6d2a9), + TOBN(0x7aa7a158, 0x3ae9c1bd), TOBN(0xe0af6d98, 0xe37ce240), + TOBN(0xe54342d9, 0x28ab38b4), TOBN(0xe8b75007, 0x0a1c98ca), + TOBN(0xefce86af, 0xe02358f2), TOBN(0x31b8b856, 0xea921228), + TOBN(0x052a1912, 0x0a1c67fc), TOBN(0xb4069ea4, 0xe3aead59), + TOBN(0x3232d6e2, 0x7fa03cb3), TOBN(0xdb938e5b, 0x0fdd7d88), + TOBN(0x04c1d2cd, 0x2ccbfc5d), TOBN(0xd2f45c12, 0xaf3a580f), + TOBN(0x592620b5, 0x7883e614), TOBN(0x5fd27e68, 0xbe7c5f26), + TOBN(0x139e45a9, 0x1567e1e3), TOBN(0x2cc71d2d, 0x44d8aaaf), + TOBN(0x4a9090cd, 0xe36d0757), TOBN(0xf722d7b1, 0xd9a29382), + TOBN(0xfb7fb04c, 0x04b48ddf), TOBN(0x628ad2a7, 0xebe16f43), + TOBN(0xcd3fbfb5, 0x20226040), TOBN(0x6c34ecb1, 0x5104b6c4), + TOBN(0x30c0754e, 0xc903c188), TOBN(0xec336b08, 0x2d23cab0), + TOBN(0x473d62a2, 0x1e206ee5), TOBN(0xf1e27480, 0x8c49a633), + TOBN(0x87ab956c, 0xe9f6b2c3), TOBN(0x61830b48, 0x62b606ea), + TOBN(0x67cd6846, 0xe78e815f), TOBN(0xfe40139f, 0x4c02082a), + TOBN(0x52bbbfcb, 0x952ec365), TOBN(0x74c11642, 0x6b9836ab), + TOBN(0x9f51439e, 0x558df019), TOBN(0x230da4ba, 0xac712b27), + TOBN(0x518919e3, 0x55185a24), TOBN(0x4dcefcdd, 0x84b78f50), + TOBN(0xa7d90fb2, 0xa47d4c5a), TOBN(0x55ac9abf, 0xb30e009e), + TOBN(0xfd2fc359, 0x74eed273), TOBN(0xb72d824c, 0xdbea8faf), + TOBN(0xce721a74, 0x4513e2ca), TOBN(0x0b418612, 0x38240b2c), + TOBN(0x05199968, 0xd5baa450), TOBN(0xeb1757ed, 0x2b0e8c25), + TOBN(0x6ebc3e28, 0x3dfac6d5), TOBN(0xb2431e2e, 0x48a237f5), + TOBN(0x2acb5e23, 0x52f61499), TOBN(0x5558a2a7, 0xe06c936b), + TOBN(0xd213f923, 0xcbb13d1b), TOBN(0x98799f42, 0x5bfb9bfe), + TOBN(0x1ae8ddc9, 0x701144a9), TOBN(0x0b8b3bb6, 0x4c5595ee), + TOBN(0x0ea9ef2e, 0x3ecebb21), TOBN(0x17cb6c4b, 0x3671f9a7), + TOBN(0x47ef464f, 0x726f1d1f), TOBN(0x171b9484, 0x6943a276), + TOBN(0x51a4ae2d, 0x7ef0329c), TOBN(0x08509222, 0x91c4402a), + TOBN(0x64a61d35, 0xafd45bbc), TOBN(0x38f096fe, 0x3035a851), + TOBN(0xc7468b74, 0xa1dec027), TOBN(0xe8cf10e7, 0x4fc7dcba), + TOBN(0xea35ff40, 0xf4a06353), TOBN(0x0b4c0dfa, 0x8b77dd66), + TOBN(0x779b8552, 0xde7e5c19), TOBN(0xfab28609, 0xc1c0256c), + TOBN(0x64f58eee, 0xabd4743d), TOBN(0x4e8ef838, 0x7b6cc93b), + TOBN(0xee650d26, 0x4cb1bf3d), TOBN(0x4c1f9d09, 0x73dedf61), + TOBN(0xaef7c9d7, 0xbfb70ced), TOBN(0x1ec0507e, 0x1641de1e), + TOBN(0xcd7e5cc7, 0xcde45079), TOBN(0xde173c9a, 0x516ac9e4), + TOBN(0x517a8494, 0xc170315c), TOBN(0x438fd905, 0x91d8e8fb), + TOBN(0x5145c506, 0xc7d9630b), TOBN(0x6457a87b, 0xf47d4d75), + TOBN(0xd31646bf, 0x0d9a80e8), TOBN(0x453add2b, 0xcef3aabe), + TOBN(0xc9941109, 0xa607419d), TOBN(0xfaa71e62, 0xbb6bca80), + TOBN(0x34158c13, 0x07c431f3), TOBN(0x594abebc, 0x992bc47a), + TOBN(0x6dfea691, 0xeb78399f), TOBN(0x48aafb35, 0x3f42cba4), + TOBN(0xedcd65af, 0x077c04f0), TOBN(0x1a29a366, 0xe884491a), + TOBN(0x023a40e5, 0x1c21f2bf), TOBN(0xf99a513c, 0xa5057aee), + TOBN(0xa3fe7e25, 0xbcab072e), TOBN(0x8568d2e1, 0x40e32bcf), + TOBN(0x904594eb, 0xd3f69d9f), TOBN(0x181a9733, 0x07affab1), + TOBN(0xe4d68d76, 0xb6e330f4), TOBN(0x87a6dafb, 0xc75a7fc1), + TOBN(0x549db2b5, 0xef7d9289), TOBN(0x2480d4a8, 0x197f015a), + TOBN(0x61d5590b, 0xc40493b6), TOBN(0x3a55b52e, 0x6f780331), + TOBN(0x40eb8115, 0x309eadb0), TOBN(0xdea7de5a, 0x92e5c625), + TOBN(0x64d631f0, 0xcc6a3d5a), TOBN(0x9d5e9d7c, 0x93e8dd61), + TOBN(0xf297bef5, 0x206d3ffc), TOBN(0x23d5e033, 0x7d808bd4), + TOBN(0x4a4f6912, 0xd24cf5ba), TOBN(0xe4d8163b, 0x09cdaa8a), + TOBN(0x0e0de9ef, 0xd3082e8e), TOBN(0x4fe1246c, 0x0192f360), + TOBN(0x1f900150, 0x4b8eee0a), TOBN(0x5219da81, 0xf1da391b), + TOBN(0x7bf6a5c1, 0xf7ea25aa), TOBN(0xd165e6bf, 0xfbb07d5f), + TOBN(0xe3539361, 0x89e78671), TOBN(0xa3fcac89, 0x2bac4219), + TOBN(0xdfab6fd4, 0xf0baa8ab), TOBN(0x5a4adac1, 0xe2c1c2e5), + TOBN(0x6cd75e31, 0x40d85849), TOBN(0xce263fea, 0x19b39181), + TOBN(0xcb6803d3, 0x07032c72), TOBN(0x7f40d5ce, 0x790968c8), + TOBN(0xa6de86bd, 0xdce978f0), TOBN(0x25547c4f, 0x368f751c), + TOBN(0xb1e685fd, 0x65fb2a9e), TOBN(0xce69336f, 0x1eb9179c), + TOBN(0xb15d1c27, 0x12504442), TOBN(0xb7df465c, 0xb911a06b), + TOBN(0xb8d804a3, 0x315980cd), TOBN(0x693bc492, 0xfa3bebf7), + TOBN(0x3578aeee, 0x2253c504), TOBN(0x158de498, 0xcd2474a2), + TOBN(0x1331f5c7, 0xcfda8368), TOBN(0xd2d7bbb3, 0x78d7177e), + TOBN(0xdf61133a, 0xf3c1e46e), TOBN(0x5836ce7d, 0xd30e7be8), + TOBN(0x83084f19, 0x94f834cb), TOBN(0xd35653d4, 0x429ed782), + TOBN(0xa542f16f, 0x59e58243), TOBN(0xc2b52f65, 0x0470a22d), + TOBN(0xe3b6221b, 0x18f23d96), TOBN(0xcb05abac, 0x3f5252b4), + TOBN(0xca00938b, 0x87d61402), TOBN(0x2f186cdd, 0x411933e4), + TOBN(0xe042ece5, 0x9a29a5c5), TOBN(0xb19b3c07, 0x3b6c8402), + TOBN(0xc97667c7, 0x19d92684), TOBN(0xb5624622, 0xebc66372), + TOBN(0x0cb96e65, 0x3c04fa02), TOBN(0x83a7176c, 0x8eaa39aa), + TOBN(0x2033561d, 0xeaa1633f), TOBN(0x45a9d086, 0x4533df73), + TOBN(0xe0542c1d, 0x3dc090bc), TOBN(0x82c996ef, 0xaa59c167), + TOBN(0xe3f735e8, 0x0ee7fc4d), TOBN(0x7b179393, 0x7c35db79), + TOBN(0xb6419e25, 0xf8c5dbfd), TOBN(0x4d9d7a1e, 0x1f327b04), + TOBN(0x979f6f9b, 0x298dfca8), TOBN(0xc7c5dff1, 0x8de9366a), + TOBN(0x1b7a588d, 0x04c82bdd), TOBN(0x68005534, 0xf8319dfd), + TOBN(0xde8a55b5, 0xd8eb9580), TOBN(0x5ea886da, 0x8d5bca81), + TOBN(0xe8530a01, 0x252a0b4d), TOBN(0x1bffb4fe, 0x35eaa0a1), + TOBN(0x2ad828b1, 0xd8e99563), TOBN(0x7de96ef5, 0x95f9cd87), + TOBN(0x4abb2d0c, 0xd77d970c), TOBN(0x03cfb933, 0xd33ef9cb), + TOBN(0xb0547c01, 0x8b211fe9), TOBN(0x2fe64809, 0xa56ed1c6), + TOBN(0xcb7d5624, 0xc2ac98cc), TOBN(0x2a1372c0, 0x1a393e33), + TOBN(0xc8d1ec1c, 0x29660521), TOBN(0xf3d31b04, 0xb37ac3e9), + TOBN(0xa29ae9df, 0x5ece6e7c), TOBN(0x0603ac8f, 0x0facfb55), + TOBN(0xcfe85b7a, 0xdda233a5), TOBN(0xe618919f, 0xbd75f0b8), + TOBN(0xf555a3d2, 0x99bf1603), TOBN(0x1f43afc9, 0xf184255a), + TOBN(0xdcdaf341, 0x319a3e02), TOBN(0xd3b117ef, 0x03903a39), + TOBN(0xe095da13, 0x65d1d131), TOBN(0x86f16367, 0xc37ad03e), + TOBN(0x5f37389e, 0x462cd8dd), TOBN(0xc103fa04, 0xd67a60e6), + TOBN(0x57c34344, 0xf4b478f0), TOBN(0xce91edd8, 0xe117c98d), + TOBN(0x001777b0, 0x231fc12e), TOBN(0x11ae47f2, 0xb207bccb), + TOBN(0xd983cf8d, 0x20f8a242), TOBN(0x7aff5b1d, 0xf22e1ad8), + TOBN(0x68fd11d0, 0x7fc4feb3), TOBN(0x5d53ae90, 0xb0f1c3e1), + TOBN(0x50fb7905, 0xec041803), TOBN(0x85e3c977, 0x14404888), + TOBN(0x0e67faed, 0xac628d8f), TOBN(0x2e865150, 0x6668532c), + TOBN(0x15acaaa4, 0x6a67a6b0), TOBN(0xf4cdee25, 0xb25cec41), + TOBN(0x49ee565a, 0xe4c6701e), TOBN(0x2a04ca66, 0xfc7d63d8), + TOBN(0xeb105018, 0xef0543fb), TOBN(0xf709a4f5, 0xd1b0d81d), + TOBN(0x5b906ee6, 0x2915d333), TOBN(0xf4a87412, 0x96f1f0ab), + TOBN(0xb6b82fa7, 0x4d82f4c2), TOBN(0x90725a60, 0x6804efb3), + TOBN(0xbc82ec46, 0xadc3425e), TOBN(0xb7b80581, 0x2787843e), + TOBN(0xdf46d91c, 0xdd1fc74c), TOBN(0xdc1c62cb, 0xe783a6c4), + TOBN(0x59d1b9f3, 0x1a04cbba), TOBN(0xd87f6f72, 0x95e40764), + TOBN(0x02b4cfc1, 0x317f4a76), TOBN(0x8d2703eb, 0x91036bce), + TOBN(0x98206cc6, 0xa5e72a56), TOBN(0x57be9ed1, 0xcf53fb0f), + TOBN(0x09374571, 0xef0b17ac), TOBN(0x74b2655e, 0xd9181b38), + TOBN(0xc8f80ea8, 0x89935d0e), TOBN(0xc0d9e942, 0x91529936), + TOBN(0x19686041, 0x1e84e0e5), TOBN(0xa5db84d3, 0xaea34c93), + TOBN(0xf9d5bb19, 0x7073a732), TOBN(0xb8d2fe56, 0x6bcfd7c0), + TOBN(0x45775f36, 0xf3eb82fa), TOBN(0x8cb20ccc, 0xfdff8b58), + TOBN(0x1659b65f, 0x8374c110), TOBN(0xb8b4a422, 0x330c789a), + TOBN(0x75e3c3ea, 0x6fe8208b), TOBN(0xbd74b9e4, 0x286e78fe), + TOBN(0x0be2e81b, 0xd7d93a1a), TOBN(0x7ed06e27, 0xdd0a5aae), + TOBN(0x721f5a58, 0x6be8b800), TOBN(0x428299d1, 0xd846db28), + TOBN(0x95cb8e6b, 0x5be88ed3), TOBN(0xc3186b23, 0x1c034e11), + TOBN(0xa6312c9e, 0x8977d99b), TOBN(0xbe944331, 0x83f531e7), + TOBN(0x8232c0c2, 0x18d3b1d4), TOBN(0x617aae8b, 0xe1247b73), + TOBN(0x40153fc4, 0x282aec3b), TOBN(0xc6063d2f, 0xf7b8f823), + TOBN(0x68f10e58, 0x3304f94c), TOBN(0x31efae74, 0xee676346), + TOBN(0xbadb6c6d, 0x40a9b97c), TOBN(0x14702c63, 0x4f666256), + TOBN(0xdeb954f1, 0x5184b2e3), TOBN(0x5184a526, 0x94b6ca40), + TOBN(0xfff05337, 0x003c32ea), TOBN(0x5aa374dd, 0x205974c7), + TOBN(0x9a763854, 0x4b0dd71a), TOBN(0x459cd27f, 0xdeb947ec), + TOBN(0xa6e28161, 0x459c2b92), TOBN(0x2f020fa8, 0x75ee8ef5), + TOBN(0xb132ec2d, 0x30b06310), TOBN(0xc3e15899, 0xbc6a4530), + TOBN(0xdc5f53fe, 0xaa3f451a), TOBN(0x3a3c7f23, 0xc2d9acac), + TOBN(0x2ec2f892, 0x6b27e58b), TOBN(0x68466ee7, 0xd742799f), + TOBN(0x98324dd4, 0x1fa26613), TOBN(0xa2dc6dab, 0xbdc29d63), + TOBN(0xf9675faa, 0xd712d657), TOBN(0x813994be, 0x21fd8d15), + TOBN(0x5ccbb722, 0xfd4f7553), TOBN(0x5135ff8b, 0xf3a36b20), + TOBN(0x44be28af, 0x69559df5), TOBN(0x40b65bed, 0x9d41bf30), + TOBN(0xd98bf2a4, 0x3734e520), TOBN(0x5e3abbe3, 0x209bdcba), + TOBN(0x77c76553, 0xbc945b35), TOBN(0x5331c093, 0xc6ef14aa), + TOBN(0x518ffe29, 0x76b60c80), TOBN(0x2285593b, 0x7ace16f8), + TOBN(0xab1f64cc, 0xbe2b9784), TOBN(0xe8f2c0d9, 0xab2421b6), + TOBN(0x617d7174, 0xc1df065c), TOBN(0xafeeb5ab, 0x5f6578fa), + TOBN(0x16ff1329, 0x263b54a8), TOBN(0x45c55808, 0xc990dce3), + TOBN(0x42eab6c0, 0xecc8c177), TOBN(0x799ea9b5, 0x5982ecaa), + TOBN(0xf65da244, 0xb607ef8e), TOBN(0x8ab226ce, 0x32a3fc2c), + TOBN(0x745741e5, 0x7ea973dc), TOBN(0x5c00ca70, 0x20888f2e), + TOBN(0x7cdce3cf, 0x45fd9cf1), TOBN(0x8a741ef1, 0x5507f872), + TOBN(0x47c51c2f, 0x196b4cec), TOBN(0x70d08e43, 0xc97ea618), + TOBN(0x930da15c, 0x15b18a2b), TOBN(0x33b6c678, 0x2f610514), + TOBN(0xc662e4f8, 0x07ac9794), TOBN(0x1eccf050, 0xba06cb79), + TOBN(0x1ff08623, 0xe7d954e5), TOBN(0x6ef2c5fb, 0x24cf71c3), + TOBN(0xb2c063d2, 0x67978453), TOBN(0xa0cf3796, 0x1d654af8), + TOBN(0x7cb242ea, 0x7ebdaa37), TOBN(0x206e0b10, 0xb86747e0), + TOBN(0x481dae5f, 0xd5ecfefc), TOBN(0x07084fd8, 0xc2bff8fc), + TOBN(0x8040a01a, 0xea324596), TOBN(0x4c646980, 0xd4de4036), + TOBN(0x9eb8ab4e, 0xd65abfc3), TOBN(0xe01cb91f, 0x13541ec7), + TOBN(0x8f029adb, 0xfd695012), TOBN(0x9ae28483, 0x3c7569ec), + TOBN(0xa5614c9e, 0xa66d80a1), TOBN(0x680a3e44, 0x75f5f911), + TOBN(0x0c07b14d, 0xceba4fc1), TOBN(0x891c285b, 0xa13071c1), + TOBN(0xcac67ceb, 0x799ece3c), TOBN(0x29b910a9, 0x41e07e27), + TOBN(0x66bdb409, 0xf2e43123), TOBN(0x06f8b137, 0x7ac9ecbe), + TOBN(0x5981fafd, 0x38547090), TOBN(0x19ab8b9f, 0x85e3415d), + TOBN(0xfc28c194, 0xc7e31b27), TOBN(0x843be0aa, 0x6fbcbb42), + TOBN(0xf3b1ed43, 0xa6db836c), TOBN(0x2a1330e4, 0x01a45c05), + TOBN(0x4f19f3c5, 0x95c1a377), TOBN(0xa85f39d0, 0x44b5ee33), + TOBN(0x3da18e6d, 0x4ae52834), TOBN(0x5a403b39, 0x7423dcb0), + TOBN(0xbb555e0a, 0xf2374aef), TOBN(0x2ad599c4, 0x1e8ca111), + TOBN(0x1b3a2fb9, 0x014b3bf8), TOBN(0x73092684, 0xf66d5007), + TOBN(0x079f1426, 0xc4340102), TOBN(0x1827cf81, 0x8fddf4de), + TOBN(0xc83605f6, 0xf10ff927), TOBN(0xd3871451, 0x23739fc6), + TOBN(0x6d163450, 0xcac1c2cc), TOBN(0x6b521296, 0xa2ec1ac5), + TOBN(0x0606c4f9, 0x6e3cb4a5), TOBN(0xe47d3f41, 0x778abff7), + TOBN(0x425a8d5e, 0xbe8e3a45), TOBN(0x53ea9e97, 0xa6102160), + TOBN(0x477a106e, 0x39cbb688), TOBN(0x532401d2, 0xf3386d32), + TOBN(0x8e564f64, 0xb1b9b421), TOBN(0xca9b8388, 0x81dad33f), + TOBN(0xb1422b4e, 0x2093913e), TOBN(0x533d2f92, 0x69bc8112), + TOBN(0x3fa017be, 0xebe7b2c7), TOBN(0xb2767c4a, 0xcaf197c6), + TOBN(0xc925ff87, 0xaedbae9f), TOBN(0x7daf0eb9, 0x36880a54), + TOBN(0x9284ddf5, 0x9c4d0e71), TOBN(0x1581cf93, 0x316f8cf5), + TOBN(0x3eeca887, 0x3ac1f452), TOBN(0xb417fce9, 0xfb6aeffe), + TOBN(0xa5918046, 0xeefb8dc3), TOBN(0x73d318ac, 0x02209400), + TOBN(0xe800400f, 0x728693e5), TOBN(0xe87d814b, 0x339927ed), + TOBN(0x93e94d3b, 0x57ea9910), TOBN(0xff8a35b6, 0x2245fb69), + TOBN(0x043853d7, 0x7f200d34), TOBN(0x470f1e68, 0x0f653ce1), + TOBN(0x81ac05bd, 0x59a06379), TOBN(0xa14052c2, 0x03930c29), + TOBN(0x6b72fab5, 0x26bc2797), TOBN(0x13670d16, 0x99f16771), + TOBN(0x00170052, 0x1e3e48d1), TOBN(0x978fe401, 0xb7adf678), + TOBN(0x55ecfb92, 0xd41c5dd4), TOBN(0x5ff8e247, 0xc7b27da5), + TOBN(0xe7518272, 0x013fb606), TOBN(0x5768d7e5, 0x2f547a3c), + TOBN(0xbb24eaa3, 0x60017a5f), TOBN(0x6b18e6e4, 0x9c64ce9b), + TOBN(0xc225c655, 0x103dde07), TOBN(0xfc3672ae, 0x7592f7ea), + TOBN(0x9606ad77, 0xd06283a1), TOBN(0x542fc650, 0xe4d59d99), + TOBN(0xabb57c49, 0x2a40e7c2), TOBN(0xac948f13, 0xa8db9f55), + TOBN(0x6d4c9682, 0xb04465c3), TOBN(0xe3d062fa, 0x6468bd15), + TOBN(0xa51729ac, 0x5f318d7e), TOBN(0x1fc87df6, 0x9eb6fc95), + TOBN(0x63d146a8, 0x0591f652), TOBN(0xa861b8f7, 0x589621aa), + TOBN(0x59f5f15a, 0xce31348c), TOBN(0x8f663391, 0x440da6da), + TOBN(0xcfa778ac, 0xb591ffa3), TOBN(0x027ca9c5, 0x4cdfebce), + TOBN(0xbe8e05a5, 0x444ea6b3), TOBN(0x8aab4e69, 0xa78d8254), + TOBN(0x2437f04f, 0xb474d6b8), TOBN(0x6597ffd4, 0x045b3855), + TOBN(0xbb0aea4e, 0xca47ecaa), TOBN(0x568aae83, 0x85c7ebfc), + TOBN(0x0e966e64, 0xc73b2383), TOBN(0x49eb3447, 0xd17d8762), + TOBN(0xde107821, 0x8da05dab), TOBN(0x443d8baa, 0x016b7236), + TOBN(0x163b63a5, 0xea7610d6), TOBN(0xe47e4185, 0xce1ca979), + TOBN(0xae648b65, 0x80baa132), TOBN(0xebf53de2, 0x0e0d5b64), + TOBN(0x8d3bfcb4, 0xd3c8c1ca), TOBN(0x0d914ef3, 0x5d04b309), + TOBN(0x55ef6415, 0x3de7d395), TOBN(0xbde1666f, 0x26b850e8), + TOBN(0xdbe1ca6e, 0xd449ab19), TOBN(0x8902b322, 0xe89a2672), + TOBN(0xb1674b7e, 0xdacb7a53), TOBN(0x8e9faf6e, 0xf52523ff), + TOBN(0x6ba535da, 0x9a85788b), TOBN(0xd21f03ae, 0xbd0626d4), + TOBN(0x099f8c47, 0xe873dc64), TOBN(0xcda8564d, 0x018ec97e), + TOBN(0x3e8d7a5c, 0xde92c68c), TOBN(0x78e035a1, 0x73323cc4), + TOBN(0x3ef26275, 0xf880ff7c), TOBN(0xa4ee3dff, 0x273eedaa), + TOBN(0x58823507, 0xaf4e18f8), TOBN(0x967ec9b5, 0x0672f328), + TOBN(0x9ded19d9, 0x559d3186), TOBN(0x5e2ab3de, 0x6cdce39c), + TOBN(0xabad6e4d, 0x11c226df), TOBN(0xf9783f43, 0x87723014), + TOBN(0x9a49a0cf, 0x1a885719), TOBN(0xfc0c1a5a, 0x90da9dbf), + TOBN(0x8bbaec49, 0x571d92ac), TOBN(0x569e85fe, 0x4692517f), + TOBN(0x8333b014, 0xa14ea4af), TOBN(0x32f2a62f, 0x12e5c5ad), + TOBN(0x98c2ce3a, 0x06d89b85), TOBN(0xb90741aa, 0x2ff77a08), + TOBN(0x2530defc, 0x01f795a2), TOBN(0xd6e5ba0b, 0x84b3c199), + TOBN(0x7d8e8451, 0x12e4c936), TOBN(0xae419f7d, 0xbd0be17b), + TOBN(0xa583fc8c, 0x22262bc9), TOBN(0x6b842ac7, 0x91bfe2bd), + TOBN(0x33cef4e9, 0x440d6827), TOBN(0x5f69f4de, 0xef81fb14), + TOBN(0xf16cf6f6, 0x234fbb92), TOBN(0x76ae3fc3, 0xd9e7e158), + TOBN(0x4e89f6c2, 0xe9740b33), TOBN(0x677bc85d, 0x4962d6a1), + TOBN(0x6c6d8a7f, 0x68d10d15), TOBN(0x5f9a7224, 0x0257b1cd), + TOBN(0x7096b916, 0x4ad85961), TOBN(0x5f8c47f7, 0xe657ab4a), + TOBN(0xde57d7d0, 0xf7461d7e), TOBN(0x7eb6094d, 0x80ce5ee2), + TOBN(0x0b1e1dfd, 0x34190547), TOBN(0x8a394f43, 0xf05dd150), + TOBN(0x0a9eb24d, 0x97df44e6), TOBN(0x78ca06bf, 0x87675719), + TOBN(0x6f0b3462, 0x6ffeec22), TOBN(0x9d91bcea, 0x36cdd8fb), + TOBN(0xac83363c, 0xa105be47), TOBN(0x81ba76c1, 0x069710e3), + TOBN(0x3d1b24cb, 0x28c682c6), TOBN(0x27f25228, 0x8612575b), + TOBN(0xb587c779, 0xe8e66e98), TOBN(0x7b0c03e9, 0x405eb1fe), + TOBN(0xfdf0d030, 0x15b548e7), TOBN(0xa8be76e0, 0x38b36af7), + TOBN(0x4cdab04a, 0x4f310c40), TOBN(0x6287223e, 0xf47ecaec), + TOBN(0x678e6055, 0x8b399320), TOBN(0x61fe3fa6, 0xc01e4646), + TOBN(0xc482866b, 0x03261a5e), TOBN(0xdfcf45b8, 0x5c2f244a), + TOBN(0x8fab9a51, 0x2f684b43), TOBN(0xf796c654, 0xc7220a66), + TOBN(0x1d90707e, 0xf5afa58f), TOBN(0x2c421d97, 0x4fdbe0de), + TOBN(0xc4f4cda3, 0xaf2ebc2f), TOBN(0xa0af843d, 0xcb4efe24), + TOBN(0x53b857c1, 0x9ccd10b1), TOBN(0xddc9d1eb, 0x914d3e04), + TOBN(0x7bdec8bb, 0x62771deb), TOBN(0x829277aa, 0x91c5aa81), + TOBN(0x7af18dd6, 0x832391ae), TOBN(0x1740f316, 0xc71a84ca),} + , + {TOBN(0x8928e99a, 0xeeaf8c49), TOBN(0xee7aa73d, 0x6e24d728), + TOBN(0x4c5007c2, 0xe72b156c), TOBN(0x5fcf57c5, 0xed408a1d), + TOBN(0x9f719e39, 0xb6057604), TOBN(0x7d343c01, 0xc2868bbf), + TOBN(0x2cca254b, 0x7e103e2d), TOBN(0xe6eb38a9, 0xf131bea2), + TOBN(0xb33e624f, 0x8be762b4), TOBN(0x2a9ee4d1, 0x058e3413), + TOBN(0x968e6369, 0x67d805fa), TOBN(0x9848949b, 0x7db8bfd7), + TOBN(0x5308d7e5, 0xd23a8417), TOBN(0x892f3b1d, 0xf3e29da5), + TOBN(0xc95c139e, 0x3dee471f), TOBN(0x8631594d, 0xd757e089), + TOBN(0xe0c82a3c, 0xde918dcc), TOBN(0x2e7b5994, 0x26fdcf4b), + TOBN(0x82c50249, 0x32cb1b2d), TOBN(0xea613a9d, 0x7657ae07), + TOBN(0xc2eb5f6c, 0xf1fdc9f7), TOBN(0xb6eae8b8, 0x879fe682), + TOBN(0x253dfee0, 0x591cbc7f), TOBN(0x000da713, 0x3e1290e6), + TOBN(0x1083e2ea, 0x1f095615), TOBN(0x0a28ad77, 0x14e68c33), + TOBN(0x6bfc0252, 0x3d8818be), TOBN(0xb585113a, 0xf35850cd), + TOBN(0x7d935f0b, 0x30df8aa1), TOBN(0xaddda07c, 0x4ab7e3ac), + TOBN(0x92c34299, 0x552f00cb), TOBN(0xc33ed1de, 0x2909df6c), + TOBN(0x22c2195d, 0x80e87766), TOBN(0x9e99e6d8, 0x9ddf4ac0), + TOBN(0x09642e4e, 0x65e74934), TOBN(0x2610ffa2, 0xff1ff241), + TOBN(0x4d1d47d4, 0x751c8159), TOBN(0x697b4985, 0xaf3a9363), + TOBN(0x0318ca46, 0x87477c33), TOBN(0xa90cb565, 0x9441eff3), + TOBN(0x58bb3848, 0x36f024cb), TOBN(0x85be1f77, 0x36016168), + TOBN(0x6c59587c, 0xdc7e07f1), TOBN(0x191be071, 0xaf1d8f02), + TOBN(0xbf169fa5, 0xcca5e55c), TOBN(0x3864ba3c, 0xf7d04eac), + TOBN(0x915e367f, 0x8d7d05db), TOBN(0xb48a876d, 0xa6549e5d), + TOBN(0xef89c656, 0x580e40a2), TOBN(0xf194ed8c, 0x728068bc), + TOBN(0x74528045, 0xa47990c9), TOBN(0xf53fc7d7, 0x5e1a4649), + TOBN(0xbec5ae9b, 0x78593e7d), TOBN(0x2cac4ee3, 0x41db65d7), + TOBN(0xa8c1eb24, 0x04a3d39b), TOBN(0x53b7d634, 0x03f8f3ef), + TOBN(0x2dc40d48, 0x3e07113c), TOBN(0x6e4a5d39, 0x7d8b63ae), + TOBN(0x5582a94b, 0x79684c2b), TOBN(0x932b33d4, 0x622da26c), + TOBN(0xf534f651, 0x0dbbf08d), TOBN(0x211d07c9, 0x64c23a52), + TOBN(0x0eeece0f, 0xee5bdc9b), TOBN(0xdf178168, 0xf7015558), + TOBN(0xd4294635, 0x0a712229), TOBN(0x93cbe448, 0x09273f8c), + TOBN(0x00b095ef, 0x8f13bc83), TOBN(0xbb741972, 0x8798978c), + TOBN(0x9d7309a2, 0x56dbe6e7), TOBN(0xe578ec56, 0x5a5d39ec), + TOBN(0x3961151b, 0x851f9a31), TOBN(0x2da7715d, 0xe5709eb4), + TOBN(0x867f3017, 0x53dfabf0), TOBN(0x728d2078, 0xb8e39259), + TOBN(0x5c75a0cd, 0x815d9958), TOBN(0xf84867a6, 0x16603be1), + TOBN(0xc865b13d, 0x70e35b1c), TOBN(0x02414468, 0x19b03e2c), + TOBN(0xe46041da, 0xac1f3121), TOBN(0x7c9017ad, 0x6f028a7c), + TOBN(0xabc96de9, 0x0a482873), TOBN(0x4265d6b1, 0xb77e54d4), + TOBN(0x68c38e79, 0xa57d88e7), TOBN(0xd461d766, 0x9ce82de3), + TOBN(0x817a9ec5, 0x64a7e489), TOBN(0xcc5675cd, 0xa0def5f2), + TOBN(0x9a00e785, 0x985d494e), TOBN(0xc626833f, 0x1b03514a), + TOBN(0xabe7905a, 0x83cdd60e), TOBN(0x50602fb5, 0xa1170184), + TOBN(0x689886cd, 0xb023642a), TOBN(0xd568d090, 0xa6e1fb00), + TOBN(0x5b1922c7, 0x0259217f), TOBN(0x93831cd9, 0xc43141e4), + TOBN(0xdfca3587, 0x0c95f86e), TOBN(0xdec2057a, 0x568ae828), + TOBN(0xc44ea599, 0xf98a759a), TOBN(0x55a0a7a2, 0xf7c23c1d), + TOBN(0xd5ffb6e6, 0x94c4f687), TOBN(0x3563cce2, 0x12848478), + TOBN(0x812b3517, 0xe7b1fbe1), TOBN(0x8a7dc979, 0x4f7338e0), + TOBN(0x211ecee9, 0x52d048db), TOBN(0x2eea4056, 0xc86ea3b8), + TOBN(0xd8cb68a7, 0xba772b34), TOBN(0xe16ed341, 0x5f4e2541), + TOBN(0x9b32f6a6, 0x0fec14db), TOBN(0xeee376f7, 0x391698be), + TOBN(0xe9a7aa17, 0x83674c02), TOBN(0x65832f97, 0x5843022a), + TOBN(0x29f3a8da, 0x5ba4990f), TOBN(0x79a59c3a, 0xfb8e3216), + TOBN(0x9cdc4d2e, 0xbd19bb16), TOBN(0xc6c7cfd0, 0xb3262d86), + TOBN(0xd4ce14d0, 0x969c0b47), TOBN(0x1fa352b7, 0x13e56128), + TOBN(0x383d55b8, 0x973db6d3), TOBN(0x71836850, 0xe8e5b7bf), + TOBN(0xc7714596, 0xe6bb571f), TOBN(0x259df31f, 0x2d5b2dd2), + TOBN(0x568f8925, 0x913cc16d), TOBN(0x18bc5b6d, 0xe1a26f5a), + TOBN(0xdfa413be, 0xf5f499ae), TOBN(0xf8835dec, 0xc3f0ae84), + TOBN(0xb6e60bd8, 0x65a40ab0), TOBN(0x65596439, 0x194b377e), + TOBN(0xbcd85625, 0x92084a69), TOBN(0x5ce433b9, 0x4f23ede0), + TOBN(0xe8e8f04f, 0x6ad65143), TOBN(0x11511827, 0xd6e14af6), + TOBN(0x3d390a10, 0x8295c0c7), TOBN(0x71e29ee4, 0x621eba16), + TOBN(0xa588fc09, 0x63717b46), TOBN(0x02be02fe, 0xe06ad4a2), + TOBN(0x931558c6, 0x04c22b22), TOBN(0xbb4d4bd6, 0x12f3c849), + TOBN(0x54a4f496, 0x20efd662), TOBN(0x92ba6d20, 0xc5952d14), + TOBN(0x2db8ea1e, 0xcc9784c2), TOBN(0x81cc10ca, 0x4b353644), + TOBN(0x40b570ad, 0x4b4d7f6c), TOBN(0x5c9f1d96, 0x84a1dcd2), + TOBN(0x01379f81, 0x3147e797), TOBN(0xe5c6097b, 0x2bd499f5), + TOBN(0x40dcafa6, 0x328e5e20), TOBN(0xf7b5244a, 0x54815550), + TOBN(0xb9a4f118, 0x47bfc978), TOBN(0x0ea0e79f, 0xd25825b1), + TOBN(0xa50f96eb, 0x646c7ecf), TOBN(0xeb811493, 0x446dea9d), + TOBN(0x2af04677, 0xdfabcf69), TOBN(0xbe3a068f, 0xc713f6e8), + TOBN(0x860d523d, 0x42e06189), TOBN(0xbf077941, 0x4e3aff13), + TOBN(0x0b616dca, 0xc1b20650), TOBN(0xe66dd6d1, 0x2131300d), + TOBN(0xd4a0fd67, 0xff99abde), TOBN(0xc9903550, 0xc7aac50d), + TOBN(0x022ecf8b, 0x7c46b2d7), TOBN(0x3333b1e8, 0x3abf92af), + TOBN(0x11cc113c, 0x6c491c14), TOBN(0x05976688, 0x80dd3f88), + TOBN(0xf5b4d9e7, 0x29d932ed), TOBN(0xe982aad8, 0xa2c38b6d), + TOBN(0x6f925347, 0x8be0dcf0), TOBN(0x700080ae, 0x65ca53f2), + TOBN(0xd8131156, 0x443ca77f), TOBN(0xe92d6942, 0xec51f984), + TOBN(0xd2a08af8, 0x85dfe9ae), TOBN(0xd825d9a5, 0x4d2a86ca), + TOBN(0x2c53988d, 0x39dff020), TOBN(0xf38b135a, 0x430cdc40), + TOBN(0x0c918ae0, 0x62a7150b), TOBN(0xf31fd8de, 0x0c340e9b), + TOBN(0xafa0e7ae, 0x4dbbf02e), TOBN(0x5847fb2a, 0x5eba6239), + TOBN(0x6b1647dc, 0xdccbac8b), TOBN(0xb642aa78, 0x06f485c8), + TOBN(0x873f3765, 0x7038ecdf), TOBN(0x2ce5e865, 0xfa49d3fe), + TOBN(0xea223788, 0xc98c4400), TOBN(0x8104a8cd, 0xf1fa5279), + TOBN(0xbcf7cc7a, 0x06becfd7), TOBN(0x49424316, 0xc8f974ae), + TOBN(0xc0da65e7, 0x84d6365d), TOBN(0xbcb7443f, 0x8f759fb8), + TOBN(0x35c712b1, 0x7ae81930), TOBN(0x80428dff, 0x4c6e08ab), + TOBN(0xf19dafef, 0xa4faf843), TOBN(0xced8538d, 0xffa9855f), + TOBN(0x20ac409c, 0xbe3ac7ce), TOBN(0x358c1fb6, 0x882da71e), + TOBN(0xafa9c0e5, 0xfd349961), TOBN(0x2b2cfa51, 0x8421c2fc), + TOBN(0x2a80db17, 0xf3a28d38), TOBN(0xa8aba539, 0x5d138e7e), + TOBN(0x52012d1d, 0x6e96eb8d), TOBN(0x65d8dea0, 0xcbaf9622), + TOBN(0x57735447, 0xb264f56c), TOBN(0xbeebef3f, 0x1b6c8da2), + TOBN(0xfc346d98, 0xce785254), TOBN(0xd50e8d72, 0xbb64a161), + TOBN(0xc03567c7, 0x49794add), TOBN(0x15a76065, 0x752c7ef6), + TOBN(0x59f3a222, 0x961f23d6), TOBN(0x378e4438, 0x73ecc0b0), + TOBN(0xc74be434, 0x5a82fde4), TOBN(0xae509af2, 0xd8b9cf34), + TOBN(0x4a61ee46, 0x577f44a1), TOBN(0xe09b748c, 0xb611deeb), + TOBN(0xc0481b2c, 0xf5f7b884), TOBN(0x35626678, 0x61acfa6b), + TOBN(0x37f4c518, 0xbf8d21e6), TOBN(0x22d96531, 0xb205a76d), + TOBN(0x37fb85e1, 0x954073c0), TOBN(0xbceafe4f, 0x65b3a567), + TOBN(0xefecdef7, 0xbe42a582), TOBN(0xd3fc6080, 0x65046be6), + TOBN(0xc9af13c8, 0x09e8dba9), TOBN(0x1e6c9847, 0x641491ff), + TOBN(0x3b574925, 0xd30c31f7), TOBN(0xb7eb72ba, 0xac2a2122), + TOBN(0x776a0dac, 0xef0859e7), TOBN(0x06fec314, 0x21900942), + TOBN(0x2464bc10, 0xf8c22049), TOBN(0x9bfbcce7, 0x875ebf69), + TOBN(0xd7a88e2a, 0x4336326b), TOBN(0xda05261c, 0x5bc2acfa), + TOBN(0xc29f5bdc, 0xeba7efc8), TOBN(0x471237ca, 0x25dbbf2e), + TOBN(0xa72773f2, 0x2975f127), TOBN(0xdc744e8e, 0x04d0b326), + TOBN(0x38a7ed16, 0xa56edb73), TOBN(0x64357e37, 0x2c007e70), + TOBN(0xa167d15b, 0x5080b400), TOBN(0x07b41164, 0x23de4be1), + TOBN(0xb2d91e32, 0x74c89883), TOBN(0x3c162821, 0x2882e7ed), + TOBN(0xad6b36ba, 0x7503e482), TOBN(0x48434e8e, 0x0ea34331), + TOBN(0x79f4f24f, 0x2c7ae0b9), TOBN(0xc46fbf81, 0x1939b44a), + TOBN(0x76fefae8, 0x56595eb1), TOBN(0x417b66ab, 0xcd5f29c7), + TOBN(0x5f2332b2, 0xc5ceec20), TOBN(0xd69661ff, 0xe1a1cae2), + TOBN(0x5ede7e52, 0x9b0286e6), TOBN(0x9d062529, 0xe276b993), + TOBN(0x324794b0, 0x7e50122b), TOBN(0xdd744f8b, 0x4af07ca5), + TOBN(0x30a12f08, 0xd63fc97b), TOBN(0x39650f1a, 0x76626d9d), + TOBN(0x101b47f7, 0x1fa38477), TOBN(0x3d815f19, 0xd4dc124f), + TOBN(0x1569ae95, 0xb26eb58a), TOBN(0xc3cde188, 0x95fb1887), + TOBN(0x54e9f37b, 0xf9539a48), TOBN(0xb0100e06, 0x7408c1a5), + TOBN(0x821d9811, 0xea580cbb), TOBN(0x8af52d35, 0x86e50c56), + TOBN(0xdfbd9d47, 0xdbbf698b), TOBN(0x2961a1ea, 0x03dc1c73), + TOBN(0x203d38f8, 0xe76a5df8), TOBN(0x08a53a68, 0x6def707a), + TOBN(0x26eefb48, 0x1bee45d4), TOBN(0xb3cee346, 0x3c688036), + TOBN(0x463c5315, 0xc42f2469), TOBN(0x19d84d2e, 0x81378162), + TOBN(0x22d7c3c5, 0x1c4d349f), TOBN(0x65965844, 0x163d59c5), + TOBN(0xcf198c56, 0xb8abceae), TOBN(0x6fb1fb1b, 0x628559d5), + TOBN(0x8bbffd06, 0x07bf8fe3), TOBN(0x46259c58, 0x3467734b), + TOBN(0xd8953cea, 0x35f7f0d3), TOBN(0x1f0bece2, 0xd65b0ff1), + TOBN(0xf7d5b4b3, 0xf3c72914), TOBN(0x29e8ea95, 0x3cb53389), + TOBN(0x4a365626, 0x836b6d46), TOBN(0xe849f910, 0xea174fde), + TOBN(0x7ec62fbb, 0xf4737f21), TOBN(0xd8dba5ab, 0x6209f5ac), + TOBN(0x24b5d7a9, 0xa5f9adbe), TOBN(0x707d28f7, 0xa61dc768), + TOBN(0x7711460b, 0xcaa999ea), TOBN(0xba7b174d, 0x1c92e4cc), + TOBN(0x3c4bab66, 0x18d4bf2d), TOBN(0xb8f0c980, 0xeb8bd279), + TOBN(0x024bea9a, 0x324b4737), TOBN(0xfba9e423, 0x32a83bca), + TOBN(0x6e635643, 0xa232dced), TOBN(0x99619367, 0x2571c8ba), + TOBN(0xe8c9f357, 0x54b7032b), TOBN(0xf936b3ba, 0x2442d54a), + TOBN(0x2263f0f0, 0x8290c65a), TOBN(0x48989780, 0xee2c7fdb), + TOBN(0xadc5d55a, 0x13d4f95e), TOBN(0x737cff85, 0xad9b8500), + TOBN(0x271c557b, 0x8a73f43d), TOBN(0xbed617a4, 0xe18bc476), + TOBN(0x66245401, 0x7dfd8ab2), TOBN(0xae7b89ae, 0x3a2870aa), + TOBN(0x1b555f53, 0x23a7e545), TOBN(0x6791e247, 0xbe057e4c), + TOBN(0x860136ad, 0x324fa34d), TOBN(0xea111447, 0x4cbeae28), + TOBN(0x023a4270, 0xbedd3299), TOBN(0x3d5c3a7f, 0xc1c35c34), + TOBN(0xb0f6db67, 0x8d0412d2), TOBN(0xd92625e2, 0xfcdc6b9a), + TOBN(0x92ae5ccc, 0x4e28a982), TOBN(0xea251c36, 0x47a3ce7e), + TOBN(0x9d658932, 0x790691bf), TOBN(0xed610589, 0x06b736ae), + TOBN(0x712c2f04, 0xc0d63b6e), TOBN(0x5cf06fd5, 0xc63d488f), + TOBN(0x97363fac, 0xd9588e41), TOBN(0x1f9bf762, 0x2b93257e), + TOBN(0xa9d1ffc4, 0x667acace), TOBN(0x1cf4a1aa, 0x0a061ecf), + TOBN(0x40e48a49, 0xdc1818d0), TOBN(0x0643ff39, 0xa3621ab0), + TOBN(0x5768640c, 0xe39ef639), TOBN(0x1fc099ea, 0x04d86854), + TOBN(0x9130b9c3, 0xeccd28fd), TOBN(0xd743cbd2, 0x7eec54ab), + TOBN(0x052b146f, 0xe5b475b6), TOBN(0x058d9a82, 0x900a7d1f), + TOBN(0x65e02292, 0x91262b72), TOBN(0x96f924f9, 0xbb0edf03), + TOBN(0x5cfa59c8, 0xfe206842), TOBN(0xf6037004, 0x5eafa720), + TOBN(0x5f30699e, 0x18d7dd96), TOBN(0x381e8782, 0xcbab2495), + TOBN(0x91669b46, 0xdd8be949), TOBN(0xb40606f5, 0x26aae8ef), + TOBN(0x2812b839, 0xfc6751a4), TOBN(0x16196214, 0xfba800ef), + TOBN(0x4398d5ca, 0x4c1a2875), TOBN(0x720c00ee, 0x653d8349), + TOBN(0xc2699eb0, 0xd820007c), TOBN(0x880ee660, 0xa39b5825), + TOBN(0x70694694, 0x471f6984), TOBN(0xf7d16ea8, 0xe3dda99a), + TOBN(0x28d675b2, 0xc0519a23), TOBN(0x9ebf94fe, 0x4f6952e3), + TOBN(0xf28bb767, 0xa2294a8a), TOBN(0x85512b4d, 0xfe0af3f5), + TOBN(0x18958ba8, 0x99b16a0d), TOBN(0x95c2430c, 0xba7548a7), + TOBN(0xb30d1b10, 0xa16be615), TOBN(0xe3ebbb97, 0x85bfb74c), + TOBN(0xa3273cfe, 0x18549fdb), TOBN(0xf6e200bf, 0x4fcdb792), + TOBN(0x54a76e18, 0x83aba56c), TOBN(0x73ec66f6, 0x89ef6aa2), + TOBN(0x8d17add7, 0xd1b9a305), TOBN(0xa959c5b9, 0xb7ae1b9d), + TOBN(0x88643522, 0x6bcc094a), TOBN(0xcc5616c4, 0xd7d429b9), + TOBN(0xa6dada01, 0xe6a33f7c), TOBN(0xc6217a07, 0x9d4e70ad), + TOBN(0xd619a818, 0x09c15b7c), TOBN(0xea06b329, 0x0e80c854), + TOBN(0x174811ce, 0xa5f5e7b9), TOBN(0x66dfc310, 0x787c65f4), + TOBN(0x4ea7bd69, 0x3316ab54), TOBN(0xc12c4acb, 0x1dcc0f70), + TOBN(0xe4308d1a, 0x1e407dd9), TOBN(0xe8a3587c, 0x91afa997), + TOBN(0xea296c12, 0xab77b7a5), TOBN(0xb5ad49e4, 0x673c0d52), + TOBN(0x40f9b2b2, 0x7006085a), TOBN(0xa88ff340, 0x87bf6ec2), + TOBN(0x978603b1, 0x4e3066a6), TOBN(0xb3f99fc2, 0xb5e486e2), + TOBN(0x07b53f5e, 0xb2e63645), TOBN(0xbe57e547, 0x84c84232), + TOBN(0xd779c216, 0x7214d5cf), TOBN(0x617969cd, 0x029a3aca), + TOBN(0xd17668cd, 0x8a7017a0), TOBN(0x77b4d19a, 0xbe9b7ee8), + TOBN(0x58fd0e93, 0x9c161776), TOBN(0xa8c4f4ef, 0xd5968a72), + TOBN(0x296071cc, 0x67b3de77), TOBN(0xae3c0b8e, 0x634f7905), + TOBN(0x67e440c2, 0x8a7100c9), TOBN(0xbb8c3c1b, 0xeb4b9b42), + TOBN(0x6d71e8ea, 0xc51b3583), TOBN(0x7591f5af, 0x9525e642), + TOBN(0xf73a2f7b, 0x13f509f3), TOBN(0x618487aa, 0x5619ac9b), + TOBN(0x3a72e5f7, 0x9d61718a), TOBN(0x00413bcc, 0x7592d28c), + TOBN(0x7d9b11d3, 0x963c35cf), TOBN(0x77623bcf, 0xb90a46ed), + TOBN(0xdeef273b, 0xdcdd2a50), TOBN(0x4a741f9b, 0x0601846e), + TOBN(0x33b89e51, 0x0ec6e929), TOBN(0xcb02319f, 0x8b7f22cd), + TOBN(0xbbe1500d, 0x084bae24), TOBN(0x2f0ae8d7, 0x343d2693), + TOBN(0xacffb5f2, 0x7cdef811), TOBN(0xaa0c030a, 0x263fb94f), + TOBN(0x6eef0d61, 0xa0f442de), TOBN(0xf92e1817, 0x27b139d3), + TOBN(0x1ae6deb7, 0x0ad8bc28), TOBN(0xa89e38dc, 0xc0514130), + TOBN(0x81eeb865, 0xd2fdca23), TOBN(0x5a15ee08, 0xcc8ef895), + TOBN(0x768fa10a, 0x01905614), TOBN(0xeff5b8ef, 0x880ee19b), + TOBN(0xf0c0cabb, 0xcb1c8a0e), TOBN(0x2e1ee9cd, 0xb8c838f9), + TOBN(0x0587d8b8, 0x8a4a14c0), TOBN(0xf6f27896, 0x2ff698e5), + TOBN(0xed38ef1c, 0x89ee6256), TOBN(0xf44ee1fe, 0x6b353b45), + TOBN(0x9115c0c7, 0x70e903b3), TOBN(0xc78ec0a1, 0x818f31df), + TOBN(0x6c003324, 0xb7dccbc6), TOBN(0xd96dd1f3, 0x163bbc25), + TOBN(0x33aa82dd, 0x5cedd805), TOBN(0x123aae4f, 0x7f7eb2f1), + TOBN(0x1723fcf5, 0xa26262cd), TOBN(0x1f7f4d5d, 0x0060ebd5), + TOBN(0xf19c5c01, 0xb2eaa3af), TOBN(0x2ccb9b14, 0x9790accf), + TOBN(0x1f9c1cad, 0x52324aa6), TOBN(0x63200526, 0x7247df54), + TOBN(0x5732fe42, 0xbac96f82), TOBN(0x52fe771f, 0x01a1c384), + TOBN(0x546ca13d, 0xb1001684), TOBN(0xb56b4eee, 0xa1709f75), + TOBN(0x266545a9, 0xd5db8672), TOBN(0xed971c90, 0x1e8f3cfb), + TOBN(0x4e7d8691, 0xe3a07b29), TOBN(0x7570d9ec, 0xe4b696b9), + TOBN(0xdc5fa067, 0x7bc7e9ae), TOBN(0x68b44caf, 0xc82c4844), + TOBN(0x519d34b3, 0xbf44da80), TOBN(0x283834f9, 0x5ab32e66), + TOBN(0x6e608797, 0x6278a000), TOBN(0x1e62960e, 0x627312f6), + TOBN(0x9b87b27b, 0xe6901c55), TOBN(0x80e78538, 0x24fdbc1f), + TOBN(0xbbbc0951, 0x2facc27d), TOBN(0x06394239, 0xac143b5a), + TOBN(0x35bb4a40, 0x376c1944), TOBN(0x7cb62694, 0x63da1511), + TOBN(0xafd29161, 0xb7148a3b), TOBN(0xa6f9d9ed, 0x4e2ea2ee), + TOBN(0x15dc2ca2, 0x880dd212), TOBN(0x903c3813, 0xa61139a9), + TOBN(0x2aa7b46d, 0x6c0f8785), TOBN(0x36ce2871, 0x901c60ff), + TOBN(0xc683b028, 0xe10d9c12), TOBN(0x7573baa2, 0x032f33d3), + TOBN(0x87a9b1f6, 0x67a31b58), TOBN(0xfd3ed11a, 0xf4ffae12), + TOBN(0x83dcaa9a, 0x0cb2748e), TOBN(0x8239f018, 0x5d6fdf16), + TOBN(0xba67b49c, 0x72753941), TOBN(0x2beec455, 0xc321cb36), + TOBN(0x88015606, 0x3f8b84ce), TOBN(0x76417083, 0x8d38c86f), + TOBN(0x054f1ca7, 0x598953dd), TOBN(0xc939e110, 0x4e8e7429), + TOBN(0x9b1ac2b3, 0x5a914f2f), TOBN(0x39e35ed3, 0xe74b8f9c), + TOBN(0xd0debdb2, 0x781b2fb0), TOBN(0x1585638f, 0x2d997ba2), + TOBN(0x9c4b646e, 0x9e2fce99), TOBN(0x68a21081, 0x1e80857f), + TOBN(0x06d54e44, 0x3643b52a), TOBN(0xde8d6d63, 0x0d8eb843), + TOBN(0x70321563, 0x42146a0a), TOBN(0x8ba826f2, 0x5eaa3622), + TOBN(0x227a58bd, 0x86138787), TOBN(0x43b6c03c, 0x10281d37), + TOBN(0x6326afbb, 0xb54dde39), TOBN(0x744e5e8a, 0xdb6f2d5f), + TOBN(0x48b2a99a, 0xcff158e1), TOBN(0xa93c8fa0, 0xef87918f), + TOBN(0x2182f956, 0xde058c5c), TOBN(0x216235d2, 0x936f9e7a), + TOBN(0xace0c0db, 0xd2e31e67), TOBN(0xc96449bf, 0xf23ac3e7), + TOBN(0x7e9a2874, 0x170693bd), TOBN(0xa28e14fd, 0xa45e6335), + TOBN(0x5757f6b3, 0x56427344), TOBN(0x822e4556, 0xacf8edf9), + TOBN(0x2b7a6ee2, 0xe6a285cd), TOBN(0x5866f211, 0xa9df3af0), + TOBN(0x40dde2dd, 0xf845b844), TOBN(0x986c3726, 0x110e5e49), + TOBN(0x73680c2a, 0xf7172277), TOBN(0x57b94f0f, 0x0cccb244), + TOBN(0xbdff7267, 0x2d438ca7), TOBN(0xbad1ce11, 0xcf4663fd), + TOBN(0x9813ed9d, 0xd8f71cae), TOBN(0xf43272a6, 0x961fdaa6), + TOBN(0xbeff0119, 0xbd6d1637), TOBN(0xfebc4f91, 0x30361978), + TOBN(0x02b37a95, 0x2f41deff), TOBN(0x0e44a59a, 0xe63b89b7), + TOBN(0x673257dc, 0x143ff951), TOBN(0x19c02205, 0xd752baf4), + TOBN(0x46c23069, 0xc4b7d692), TOBN(0x2e6392c3, 0xfd1502ac), + TOBN(0x6057b1a2, 0x1b220846), TOBN(0xe51ff946, 0x0c1b5b63),} + , + {TOBN(0x6e85cb51, 0x566c5c43), TOBN(0xcff9c919, 0x3597f046), + TOBN(0x9354e90c, 0x4994d94a), TOBN(0xe0a39332, 0x2147927d), + TOBN(0x8427fac1, 0x0dc1eb2b), TOBN(0x88cfd8c2, 0x2ff319fa), + TOBN(0xe2d4e684, 0x01965274), TOBN(0xfa2e067d, 0x67aaa746), + TOBN(0xb6d92a7f, 0x3e5f9f11), TOBN(0x9afe153a, 0xd6cb3b8e), + TOBN(0x4d1a6dd7, 0xddf800bd), TOBN(0xf6c13cc0, 0xcaf17e19), + TOBN(0x15f6c58e, 0x325fc3ee), TOBN(0x71095400, 0xa31dc3b2), + TOBN(0x168e7c07, 0xafa3d3e7), TOBN(0x3f8417a1, 0x94c7ae2d), + TOBN(0xec234772, 0x813b230d), TOBN(0x634d0f5f, 0x17344427), + TOBN(0x11548ab1, 0xd77fc56a), TOBN(0x7fab1750, 0xce06af77), + TOBN(0xb62c10a7, 0x4f7c4f83), TOBN(0xa7d2edc4, 0x220a67d9), + TOBN(0x1c404170, 0x921209a0), TOBN(0x0b9815a0, 0xface59f0), + TOBN(0x2842589b, 0x319540c3), TOBN(0x18490f59, 0xa283d6f8), + TOBN(0xa2731f84, 0xdaae9fcb), TOBN(0x3db6d960, 0xc3683ba0), + TOBN(0xc85c63bb, 0x14611069), TOBN(0xb19436af, 0x0788bf05), + TOBN(0x905459df, 0x347460d2), TOBN(0x73f6e094, 0xe11a7db1), + TOBN(0xdc7f938e, 0xb6357f37), TOBN(0xc5d00f79, 0x2bd8aa62), + TOBN(0xc878dcb9, 0x2ca979fc), TOBN(0x37e83ed9, 0xeb023a99), + TOBN(0x6b23e273, 0x1560bf3d), TOBN(0x1086e459, 0x1d0fae61), + TOBN(0x78248316, 0x9a9414bd), TOBN(0x1b956bc0, 0xf0ea9ea1), + TOBN(0x7b85bb91, 0xc31b9c38), TOBN(0x0c5aa90b, 0x48ef57b5), + TOBN(0xdedeb169, 0xaf3bab6f), TOBN(0xe610ad73, 0x2d373685), + TOBN(0xf13870df, 0x02ba8e15), TOBN(0x0337edb6, 0x8ca7f771), + TOBN(0xe4acf747, 0xb62c036c), TOBN(0xd921d576, 0xb6b94e81), + TOBN(0xdbc86439, 0x2c422f7a), TOBN(0xfb635362, 0xed348898), + TOBN(0x83084668, 0xc45bfcd1), TOBN(0xc357c9e3, 0x2b315e11), + TOBN(0xb173b540, 0x5b2e5b8c), TOBN(0x7e946931, 0xe102b9a4), + TOBN(0x17c890eb, 0x7b0fb199), TOBN(0xec225a83, 0xd61b662b), + TOBN(0xf306a3c8, 0xee3c76cb), TOBN(0x3cf11623, 0xd32a1f6e), + TOBN(0xe6d5ab64, 0x6863e956), TOBN(0x3b8a4cbe, 0x5c005c26), + TOBN(0xdcd529a5, 0x9ce6bb27), TOBN(0xc4afaa52, 0x04d4b16f), + TOBN(0xb0624a26, 0x7923798d), TOBN(0x85e56df6, 0x6b307fab), + TOBN(0x0281893c, 0x2bf29698), TOBN(0x91fc19a4, 0xd7ce7603), + TOBN(0x75a5dca3, 0xad9a558f), TOBN(0x40ceb3fa, 0x4d50bf77), + TOBN(0x1baf6060, 0xbc9ba369), TOBN(0x927e1037, 0x597888c2), + TOBN(0xd936bf19, 0x86a34c07), TOBN(0xd4cf10c1, 0xc34ae980), + TOBN(0x3a3e5334, 0x859dd614), TOBN(0x9c475b5b, 0x18d0c8ee), + TOBN(0x63080d1f, 0x07cd51d5), TOBN(0xc9c0d0a6, 0xb88b4326), + TOBN(0x1ac98691, 0xc234296f), TOBN(0x2a0a83a4, 0x94887fb6), + TOBN(0x56511427, 0x0cea9cf2), TOBN(0x5230a6e8, 0xa24802f5), + TOBN(0xf7a2bf0f, 0x72e3d5c1), TOBN(0x37717446, 0x4f21439e), + TOBN(0xfedcbf25, 0x9ce30334), TOBN(0xe0030a78, 0x7ce202f9), + TOBN(0x6f2d9ebf, 0x1202e9ca), TOBN(0xe79dde6c, 0x75e6e591), + TOBN(0xf52072af, 0xf1dac4f8), TOBN(0x6c8d087e, 0xbb9b404d), + TOBN(0xad0fc73d, 0xbce913af), TOBN(0x909e587b, 0x458a07cb), + TOBN(0x1300da84, 0xd4f00c8a), TOBN(0x425cd048, 0xb54466ac), + TOBN(0xb59cb9be, 0x90e9d8bf), TOBN(0x991616db, 0x3e431b0e), + TOBN(0xd3aa117a, 0x531aecff), TOBN(0x91af92d3, 0x59f4dc3b), + TOBN(0x9b1ec292, 0xe93fda29), TOBN(0x76bb6c17, 0xe97d91bc), + TOBN(0x7509d95f, 0xaface1e6), TOBN(0x3653fe47, 0xbe855ae3), + TOBN(0x73180b28, 0x0f680e75), TOBN(0x75eefd1b, 0xeeb6c26c), + TOBN(0xa4cdf29f, 0xb66d4236), TOBN(0x2d70a997, 0x6b5821d8), + TOBN(0x7a3ee207, 0x20445c36), TOBN(0x71d1ac82, 0x59877174), + TOBN(0x0fc539f7, 0x949f73e9), TOBN(0xd05cf3d7, 0x982e3081), + TOBN(0x8758e20b, 0x7b1c7129), TOBN(0xffadcc20, 0x569e61f2), + TOBN(0xb05d3a2f, 0x59544c2d), TOBN(0xbe16f5c1, 0x9fff5e53), + TOBN(0x73cf65b8, 0xaad58135), TOBN(0x622c2119, 0x037aa5be), + TOBN(0x79373b3f, 0x646fd6a0), TOBN(0x0e029db5, 0x0d3978cf), + TOBN(0x8bdfc437, 0x94fba037), TOBN(0xaefbd687, 0x620797a6), + TOBN(0x3fa5382b, 0xbd30d38e), TOBN(0x7627cfbf, 0x585d7464), + TOBN(0xb2330fef, 0x4e4ca463), TOBN(0xbcef7287, 0x3566cc63), + TOBN(0xd161d2ca, 0xcf780900), TOBN(0x135dc539, 0x5b54827d), + TOBN(0x638f052e, 0x27bf1bc6), TOBN(0x10a224f0, 0x07dfa06c), + TOBN(0xe973586d, 0x6d3321da), TOBN(0x8b0c5738, 0x26152c8f), + TOBN(0x07ef4f2a, 0x34606074), TOBN(0x80fe7fe8, 0xa0f7047a), + TOBN(0x3d1a8152, 0xe1a0e306), TOBN(0x32cf43d8, 0x88da5222), + TOBN(0xbf89a95f, 0x5f02ffe6), TOBN(0x3d9eb9a4, 0x806ad3ea), + TOBN(0x012c17bb, 0x79c8e55e), TOBN(0xfdcd1a74, 0x99c81dac), + TOBN(0x7043178b, 0xb9556098), TOBN(0x4090a1df, 0x801c3886), + TOBN(0x759800ff, 0x9b67b912), TOBN(0x3e5c0304, 0x232620c8), + TOBN(0x4b9d3c4b, 0x70dceeca), TOBN(0xbb2d3c15, 0x181f648e), + TOBN(0xf981d837, 0x6e33345c), TOBN(0xb626289b, 0x0cf2297a), + TOBN(0x766ac659, 0x8baebdcf), TOBN(0x1a28ae09, 0x75df01e5), + TOBN(0xb71283da, 0x375876d8), TOBN(0x4865a96d, 0x607b9800), + TOBN(0x25dd1bcd, 0x237936b2), TOBN(0x332f4f4b, 0x60417494), + TOBN(0xd0923d68, 0x370a2147), TOBN(0x497f5dfb, 0xdc842203), + TOBN(0x9dc74cbd, 0x32be5e0f), TOBN(0x7475bcb7, 0x17a01375), + TOBN(0x438477c9, 0x50d872b1), TOBN(0xcec67879, 0xffe1d63d), + TOBN(0x9b006014, 0xd8578c70), TOBN(0xc9ad99a8, 0x78bb6b8b), + TOBN(0x6799008e, 0x11fb3806), TOBN(0xcfe81435, 0xcd44cab3), + TOBN(0xa2ee1582, 0x2f4fb344), TOBN(0xb8823450, 0x483fa6eb), + TOBN(0x622d323d, 0x652c7749), TOBN(0xd8474a98, 0xbeb0a15b), + TOBN(0xe43c154d, 0x5d1c00d0), TOBN(0x7fd581d9, 0x0e3e7aac), + TOBN(0x2b44c619, 0x2525ddf8), TOBN(0x67a033eb, 0xb8ae9739), + TOBN(0x113ffec1, 0x9ef2d2e4), TOBN(0x1bf6767e, 0xd5a0ea7f), + TOBN(0x57fff75e, 0x03714c0a), TOBN(0xa23c422e, 0x0a23e9ee), + TOBN(0xdd5f6b2d, 0x540f83af), TOBN(0xc2c2c27e, 0x55ea46a7), + TOBN(0xeb6b4246, 0x672a1208), TOBN(0xd13599f7, 0xae634f7a), + TOBN(0xcf914b5c, 0xd7b32c6e), TOBN(0x61a5a640, 0xeaf61814), + TOBN(0x8dc3df8b, 0x208a1bbb), TOBN(0xef627fd6, 0xb6d79aa5), + TOBN(0x44232ffc, 0xc4c86bc8), TOBN(0xe6f9231b, 0x061539fe), + TOBN(0x1d04f25a, 0x958b9533), TOBN(0x180cf934, 0x49e8c885), + TOBN(0x89689595, 0x9884aaf7), TOBN(0xb1959be3, 0x07b348a6), + TOBN(0x96250e57, 0x3c147c87), TOBN(0xae0efb3a, 0xdd0c61f8), + TOBN(0xed00745e, 0xca8c325e), TOBN(0x3c911696, 0xecff3f70), + TOBN(0x73acbc65, 0x319ad41d), TOBN(0x7b01a020, 0xf0b1c7ef), + TOBN(0xea32b293, 0x63a1483f), TOBN(0x89eabe71, 0x7a248f96), + TOBN(0x9c6231d3, 0x343157e5), TOBN(0x93a375e5, 0xdf3c546d), + TOBN(0xe76e9343, 0x6a2afe69), TOBN(0xc4f89100, 0xe166c88e), + TOBN(0x248efd0d, 0x4f872093), TOBN(0xae0eb3ea, 0x8fe0ea61), + TOBN(0xaf89790d, 0x9d79046e), TOBN(0x4d650f2d, 0x6cee0976), + TOBN(0xa3935d9a, 0x43071eca), TOBN(0x66fcd2c9, 0x283b0bfe), + TOBN(0x0e665eb5, 0x696605f1), TOBN(0xe77e5d07, 0xa54cd38d), + TOBN(0x90ee050a, 0x43d950cf), TOBN(0x86ddebda, 0xd32e69b5), + TOBN(0x6ad94a3d, 0xfddf7415), TOBN(0xf7fa1309, 0x3f6e8d5a), + TOBN(0xc4831d1d, 0xe9957f75), TOBN(0x7de28501, 0xd5817447), + TOBN(0x6f1d7078, 0x9e2aeb6b), TOBN(0xba2b9ff4, 0xf67a53c2), + TOBN(0x36963767, 0xdf9defc3), TOBN(0x479deed3, 0x0d38022c), + TOBN(0xd2edb89b, 0x3a8631e8), TOBN(0x8de855de, 0x7a213746), + TOBN(0xb2056cb7, 0xb00c5f11), TOBN(0xdeaefbd0, 0x2c9b85e4), + TOBN(0x03f39a8d, 0xd150892d), TOBN(0x37b84686, 0x218b7985), + TOBN(0x36296dd8, 0xb7375f1a), TOBN(0x472cd4b1, 0xb78e898e), + TOBN(0x15dff651, 0xe9f05de9), TOBN(0xd4045069, 0x2ce98ba9), + TOBN(0x8466a7ae, 0x9b38024c), TOBN(0xb910e700, 0xe5a6b5ef), + TOBN(0xae1c56ea, 0xb3aa8f0d), TOBN(0xbab2a507, 0x7eee74a6), + TOBN(0x0dca11e2, 0x4b4c4620), TOBN(0xfd896e2e, 0x4c47d1f4), + TOBN(0xeb45ae53, 0x308fbd93), TOBN(0x46cd5a2e, 0x02c36fda), + TOBN(0x6a3d4e90, 0xbaa48385), TOBN(0xdd55e62e, 0x9dbe9960), + TOBN(0xa1406aa0, 0x2a81ede7), TOBN(0x6860dd14, 0xf9274ea7), + TOBN(0xcfdcb0c2, 0x80414f86), TOBN(0xff410b10, 0x22f94327), + TOBN(0x5a33cc38, 0x49ad467b), TOBN(0xefb48b6c, 0x0a7335f1), + TOBN(0x14fb54a4, 0xb153a360), TOBN(0x604aa9d2, 0xb52469cc), + TOBN(0x5e9dc486, 0x754e48e9), TOBN(0x693cb455, 0x37471e8e), + TOBN(0xfb2fd7cd, 0x8d3b37b6), TOBN(0x63345e16, 0xcf09ff07), + TOBN(0x9910ba6b, 0x23a5d896), TOBN(0x1fe19e35, 0x7fe4364e), + TOBN(0x6e1da8c3, 0x9a33c677), TOBN(0x15b4488b, 0x29fd9fd0), + TOBN(0x1f439254, 0x1a1f22bf), TOBN(0x920a8a70, 0xab8163e8), + TOBN(0x3fd1b249, 0x07e5658e), TOBN(0xf2c4f79c, 0xb6ec839b), + TOBN(0x1abbc3d0, 0x4aa38d1b), TOBN(0x3b0db35c, 0xb5d9510e), + TOBN(0x1754ac78, 0x3e60dec0), TOBN(0x53272fd7, 0xea099b33), + TOBN(0x5fb0494f, 0x07a8e107), TOBN(0x4a89e137, 0x6a8191fa), + TOBN(0xa113b7f6, 0x3c4ad544), TOBN(0x88a2e909, 0x6cb9897b), + TOBN(0x17d55de3, 0xb44a3f84), TOBN(0xacb2f344, 0x17c6c690), + TOBN(0x32088168, 0x10232390), TOBN(0xf2e8a61f, 0x6c733bf7), + TOBN(0xa774aab6, 0x9c2d7652), TOBN(0xfb5307e3, 0xed95c5bc), + TOBN(0xa05c73c2, 0x4981f110), TOBN(0x1baae31c, 0xa39458c9), + TOBN(0x1def185b, 0xcbea62e7), TOBN(0xe8ac9eae, 0xeaf63059), + TOBN(0x098a8cfd, 0x9921851c), TOBN(0xd959c3f1, 0x3abe2f5b), + TOBN(0xa4f19525, 0x20e40ae5), TOBN(0x320789e3, 0x07a24aa1), + TOBN(0x259e6927, 0x7392b2bc), TOBN(0x58f6c667, 0x1918668b), + TOBN(0xce1db2bb, 0xc55d2d8b), TOBN(0x41d58bb7, 0xf4f6ca56), + TOBN(0x7650b680, 0x8f877614), TOBN(0x905e16ba, 0xf4c349ed), + TOBN(0xed415140, 0xf661acac), TOBN(0x3b8784f0, 0xcb2270af), + TOBN(0x3bc280ac, 0x8a402cba), TOBN(0xd53f7146, 0x0937921a), + TOBN(0xc03c8ee5, 0xe5681e83), TOBN(0x62126105, 0xf6ac9e4a), + TOBN(0x9503a53f, 0x936b1a38), TOBN(0x3d45e2d4, 0x782fecbd), + TOBN(0x69a5c439, 0x76e8ae98), TOBN(0xb53b2eeb, 0xbfb4b00e), + TOBN(0xf1674712, 0x72386c89), TOBN(0x30ca34a2, 0x4268bce4), + TOBN(0x7f1ed86c, 0x78341730), TOBN(0x8ef5beb8, 0xb525e248), + TOBN(0xbbc489fd, 0xb74fbf38), TOBN(0x38a92a0e, 0x91a0b382), + TOBN(0x7a77ba3f, 0x22433ccf), TOBN(0xde8362d6, 0xa29f05a9), + TOBN(0x7f6a30ea, 0x61189afc), TOBN(0x693b5505, 0x59ef114f), + TOBN(0x50266bc0, 0xcd1797a1), TOBN(0xea17b47e, 0xf4b7af2d), + TOBN(0xd6c4025c, 0x3df9483e), TOBN(0x8cbb9d9f, 0xa37b18c9), + TOBN(0x91cbfd9c, 0x4d8424cf), TOBN(0xdb7048f1, 0xab1c3506), + TOBN(0x9eaf641f, 0x028206a3), TOBN(0xf986f3f9, 0x25bdf6ce), + TOBN(0x262143b5, 0x224c08dc), TOBN(0x2bbb09b4, 0x81b50c91), + TOBN(0xc16ed709, 0xaca8c84f), TOBN(0xa6210d9d, 0xb2850ca8), + TOBN(0x6d8df67a, 0x09cb54d6), TOBN(0x91eef6e0, 0x500919a4), + TOBN(0x90f61381, 0x0f132857), TOBN(0x9acede47, 0xf8d5028b), + TOBN(0x844d1b71, 0x90b771c3), TOBN(0x563b71e4, 0xba6426be), + TOBN(0x2efa2e83, 0xbdb802ff), TOBN(0x3410cbab, 0xab5b4a41), + TOBN(0x555b2d26, 0x30da84dd), TOBN(0xd0711ae9, 0xee1cc29a), + TOBN(0xcf3e8c60, 0x2f547792), TOBN(0x03d7d5de, 0xdc678b35), + TOBN(0x071a2fa8, 0xced806b8), TOBN(0x222e6134, 0x697f1478), + TOBN(0xdc16fd5d, 0xabfcdbbf), TOBN(0x44912ebf, 0x121b53b8), + TOBN(0xac943674, 0x2496c27c), TOBN(0x8ea3176c, 0x1ffc26b0), + TOBN(0xb6e224ac, 0x13debf2c), TOBN(0x524cc235, 0xf372a832), + TOBN(0xd706e1d8, 0x9f6f1b18), TOBN(0x2552f005, 0x44cce35b), + TOBN(0x8c8326c2, 0xa88e31fc), TOBN(0xb5468b2c, 0xf9552047), + TOBN(0xce683e88, 0x3ff90f2b), TOBN(0x77947bdf, 0x2f0a5423), + TOBN(0xd0a1b28b, 0xed56e328), TOBN(0xaee35253, 0xc20134ac), + TOBN(0x7e98367d, 0x3567962f), TOBN(0x379ed61f, 0x8188bffb), + TOBN(0x73bba348, 0xfaf130a1), TOBN(0x6c1f75e1, 0x904ed734), + TOBN(0x18956642, 0x3b4a79fc), TOBN(0xf20bc83d, 0x54ef4493), + TOBN(0x836d425d, 0x9111eca1), TOBN(0xe5b5c318, 0x009a8dcf), + TOBN(0x3360b25d, 0x13221bc5), TOBN(0x707baad2, 0x6b3eeaf7), + TOBN(0xd7279ed8, 0x743a95a1), TOBN(0x7450a875, 0x969e809f), + TOBN(0x32b6bd53, 0xe5d0338f), TOBN(0x1e77f7af, 0x2b883bbc), + TOBN(0x90da12cc, 0x1063ecd0), TOBN(0xe2697b58, 0xc315be47), + TOBN(0x2771a5bd, 0xda85d534), TOBN(0x53e78c1f, 0xff980eea), + TOBN(0xadf1cf84, 0x900385e7), TOBN(0x7d3b14f6, 0xc9387b62), + TOBN(0x170e74b0, 0xcb8f2bd2), TOBN(0x2d50b486, 0x827fa993), + TOBN(0xcdbe8c9a, 0xf6f32bab), TOBN(0x55e906b0, 0xc3b93ab8), + TOBN(0x747f22fc, 0x8fe280d1), TOBN(0xcd8e0de5, 0xb2e114ab), + TOBN(0x5ab7dbeb, 0xe10b68b0), TOBN(0x9dc63a9c, 0xa480d4b2), + TOBN(0x78d4bc3b, 0x4be1495f), TOBN(0x25eb3db8, 0x9359122d), + TOBN(0x3f8ac05b, 0x0809cbdc), TOBN(0xbf4187bb, 0xd37c702f), + TOBN(0x84cea069, 0x1416a6a5), TOBN(0x8f860c79, 0x43ef881c), + TOBN(0x41311f8a, 0x38038a5d), TOBN(0xe78c2ec0, 0xfc612067), + TOBN(0x494d2e81, 0x5ad73581), TOBN(0xb4cc9e00, 0x59604097), + TOBN(0xff558aec, 0xf3612cba), TOBN(0x35beef7a, 0x9e36c39e), + TOBN(0x1845c7cf, 0xdbcf41b9), TOBN(0x5703662a, 0xaea997c0), + TOBN(0x8b925afe, 0xe402f6d8), TOBN(0xd0a1b1ae, 0x4dd72162), + TOBN(0x9f47b375, 0x03c41c4b), TOBN(0xa023829b, 0x0391d042), + TOBN(0x5f5045c3, 0x503b8b0a), TOBN(0x123c2688, 0x98c010e5), + TOBN(0x324ec0cc, 0x36ba06ee), TOBN(0xface3115, 0x3dd2cc0c), + TOBN(0xb364f3be, 0xf333e91f), TOBN(0xef8aff73, 0x28e832b0), + TOBN(0x1e9bad04, 0x2d05841b), TOBN(0x42f0e3df, 0x356a21e2), + TOBN(0xa3270bcb, 0x4add627e), TOBN(0xb09a8158, 0xd322e711), + TOBN(0x86e326a1, 0x0fee104a), TOBN(0xad7788f8, 0x3703f65d), + TOBN(0x7e765430, 0x47bc4833), TOBN(0x6cee582b, 0x2b9b893a), + TOBN(0x9cd2a167, 0xe8f55a7b), TOBN(0xefbee3c6, 0xd9e4190d), + TOBN(0x33ee7185, 0xd40c2e9d), TOBN(0x844cc9c5, 0xa380b548), + TOBN(0x323f8ecd, 0x66926e04), TOBN(0x0001e38f, 0x8110c1ba), + TOBN(0x8dbcac12, 0xfc6a7f07), TOBN(0xd65e1d58, 0x0cec0827), + TOBN(0xd2cd4141, 0xbe76ca2d), TOBN(0x7895cf5c, 0xe892f33a), + TOBN(0x956d230d, 0x367139d2), TOBN(0xa91abd3e, 0xd012c4c1), + TOBN(0x34fa4883, 0x87eb36bf), TOBN(0xc5f07102, 0x914b8fb4), + TOBN(0x90f0e579, 0xadb9c95f), TOBN(0xfe6ea8cb, 0x28888195), + TOBN(0x7b9b5065, 0xedfa9284), TOBN(0x6c510bd2, 0x2b8c8d65), + TOBN(0xd7b8ebef, 0xcbe8aafd), TOBN(0xedb3af98, 0x96b1da07), + TOBN(0x28ff779d, 0x6295d426), TOBN(0x0c4f6ac7, 0x3fa3ad7b), + TOBN(0xec44d054, 0x8b8e2604), TOBN(0x9b32a66d, 0x8b0050e1), + TOBN(0x1f943366, 0xf0476ce2), TOBN(0x7554d953, 0xa602c7b4), + TOBN(0xbe35aca6, 0x524f2809), TOBN(0xb6881229, 0xfd4edbea), + TOBN(0xe8cd0c8f, 0x508efb63), TOBN(0x9eb5b5c8, 0x6abcefc7), + TOBN(0xf5621f5f, 0xb441ab4f), TOBN(0x79e6c046, 0xb76a2b22), + TOBN(0x74a4792c, 0xe37a1f69), TOBN(0xcbd252cb, 0x03542b60), + TOBN(0x785f65d5, 0xb3c20bd3), TOBN(0x8dea6143, 0x4fabc60c), + TOBN(0x45e21446, 0xde673629), TOBN(0x57f7aa1e, 0x703c2d21), + TOBN(0xa0e99b7f, 0x98c868c7), TOBN(0x4e42f66d, 0x8b641676), + TOBN(0x602884dc, 0x91077896), TOBN(0xa0d690cf, 0xc2c9885b), + TOBN(0xfeb4da33, 0x3b9a5187), TOBN(0x5f789598, 0x153c87ee), + TOBN(0x2192dd47, 0x52b16dba), TOBN(0xdeefc0e6, 0x3524c1b1), + TOBN(0x465ea76e, 0xe4383693), TOBN(0x79401711, 0x361b8d98), + TOBN(0xa5f9ace9, 0xf21a15cb), TOBN(0x73d26163, 0xefee9aeb), + TOBN(0xcca844b3, 0xe677016c), TOBN(0x6c122b07, 0x57eaee06), + TOBN(0xb782dce7, 0x15f09690), TOBN(0x508b9b12, 0x2dfc0fc9), + TOBN(0x9015ab4b, 0x65d89fc6), TOBN(0x5e79dab7, 0xd6d5bb0f), + TOBN(0x64f021f0, 0x6c775aa2), TOBN(0xdf09d8cc, 0x37c7eca1), + TOBN(0x9a761367, 0xef2fa506), TOBN(0xed4ca476, 0x5b81eec6), + TOBN(0x262ede36, 0x10bbb8b5), TOBN(0x0737ce83, 0x0641ada3), + TOBN(0x4c94288a, 0xe9831ccc), TOBN(0x487fc1ce, 0x8065e635), + TOBN(0xb13d7ab3, 0xb8bb3659), TOBN(0xdea5df3e, 0x855e4120), + TOBN(0xb9a18573, 0x85eb0244), TOBN(0x1a1b8ea3, 0xa7cfe0a3), + TOBN(0x3b837119, 0x67b0867c), TOBN(0x8d5e0d08, 0x9d364520), + TOBN(0x52dccc1e, 0xd930f0e3), TOBN(0xefbbcec7, 0xbf20bbaf), + TOBN(0x99cffcab, 0x0263ad10), TOBN(0xd8199e6d, 0xfcd18f8a), + TOBN(0x64e2773f, 0xe9f10617), TOBN(0x0079e8e1, 0x08704848), + TOBN(0x1169989f, 0x8a342283), TOBN(0x8097799c, 0xa83012e6), + TOBN(0xece966cb, 0x8a6a9001), TOBN(0x93b3afef, 0x072ac7fc), + TOBN(0xe6893a2a, 0x2db3d5ba), TOBN(0x263dc462, 0x89bf4fdc), + TOBN(0x8852dfc9, 0xe0396673), TOBN(0x7ac70895, 0x3af362b6), + TOBN(0xbb9cce4d, 0x5c2f342b), TOBN(0xbf80907a, 0xb52d7aae), + TOBN(0x97f3d3cd, 0x2161bcd0), TOBN(0xb25b0834, 0x0962744d), + TOBN(0xc5b18ea5, 0x6c3a1dda), TOBN(0xfe4ec7eb, 0x06c92317), + TOBN(0xb787b890, 0xad1c4afe), TOBN(0xdccd9a92, 0x0ede801a), + TOBN(0x9ac6ddda, 0xdb58da1f), TOBN(0x22bbc12f, 0xb8cae6ee), + TOBN(0xc6f8bced, 0x815c4a43), TOBN(0x8105a92c, 0xf96480c7), + TOBN(0x0dc3dbf3, 0x7a859d51), TOBN(0xe3ec7ce6, 0x3041196b), + TOBN(0xd9f64b25, 0x0d1067c9), TOBN(0xf2321321, 0x3d1f8dd8), + TOBN(0x8b5c619c, 0x76497ee8), TOBN(0x5d2b0ac6, 0xc717370e), + TOBN(0x98204cb6, 0x4fcf68e1), TOBN(0x0bdec211, 0x62bc6792), + TOBN(0x6973ccef, 0xa63b1011), TOBN(0xf9e3fa97, 0xe0de1ac5), + TOBN(0x5efb693e, 0x3d0e0c8b), TOBN(0x037248e9, 0xd2d4fcb4),} + , + {TOBN(0x80802dc9, 0x1ec34f9e), TOBN(0xd8772d35, 0x33810603), + TOBN(0x3f06d66c, 0x530cb4f3), TOBN(0x7be5ed0d, 0xc475c129), + TOBN(0xcb9e3c19, 0x31e82b10), TOBN(0xc63d2857, 0xc9ff6b4c), + TOBN(0xb92118c6, 0x92a1b45e), TOBN(0x0aec4414, 0x7285bbca), + TOBN(0xfc189ae7, 0x1e29a3ef), TOBN(0xcbe906f0, 0x4c93302e), + TOBN(0xd0107914, 0xceaae10e), TOBN(0xb7a23f34, 0xb68e19f8), + TOBN(0xe9d875c2, 0xefd2119d), TOBN(0x03198c6e, 0xfcadc9c8), + TOBN(0x65591bf6, 0x4da17113), TOBN(0x3cf0bbf8, 0x3d443038), + TOBN(0xae485bb7, 0x2b724759), TOBN(0x945353e1, 0xb2d4c63a), + TOBN(0x82159d07, 0xde7d6f2c), TOBN(0x389caef3, 0x4ec5b109), + TOBN(0x4a8ebb53, 0xdb65ef14), TOBN(0x2dc2cb7e, 0xdd99de43), + TOBN(0x816fa3ed, 0x83f2405f), TOBN(0x73429bb9, 0xc14208a3), + TOBN(0xb618d590, 0xb01e6e27), TOBN(0x047e2ccd, 0xe180b2dc), + TOBN(0xd1b299b5, 0x04aea4a9), TOBN(0x412c9e1e, 0x9fa403a4), + TOBN(0x88d28a36, 0x79407552), TOBN(0x49c50136, 0xf332b8e3), + TOBN(0x3a1b6fcc, 0xe668de19), TOBN(0x178851bc, 0x75122b97), + TOBN(0xb1e13752, 0xfb85fa4c), TOBN(0xd61257ce, 0x383c8ce9), + TOBN(0xd43da670, 0xd2f74dae), TOBN(0xa35aa23f, 0xbf846bbb), + TOBN(0x5e74235d, 0x4421fc83), TOBN(0xf6df8ee0, 0xc363473b), + TOBN(0x34d7f52a, 0x3c4aa158), TOBN(0x50d05aab, 0x9bc6d22e), + TOBN(0x8c56e735, 0xa64785f4), TOBN(0xbc56637b, 0x5f29cd07), + TOBN(0x53b2bb80, 0x3ee35067), TOBN(0x50235a0f, 0xdc919270), + TOBN(0x191ab6d8, 0xf2c4aa65), TOBN(0xc3475831, 0x8396023b), + TOBN(0x80400ba5, 0xf0f805ba), TOBN(0x8881065b, 0x5ec0f80f), + TOBN(0xc370e522, 0xcc1b5e83), TOBN(0xde2d4ad1, 0x860b8bfb), + TOBN(0xad364df0, 0x67b256df), TOBN(0x8f12502e, 0xe0138997), + TOBN(0x503fa0dc, 0x7783920a), TOBN(0xe80014ad, 0xc0bc866a), + TOBN(0x3f89b744, 0xd3064ba6), TOBN(0x03511dcd, 0xcba5dba5), + TOBN(0x197dd46d, 0x95a7b1a2), TOBN(0x9c4e7ad6, 0x3c6341fb), + TOBN(0x426eca29, 0x484c2ece), TOBN(0x9211e489, 0xde7f4f8a), + TOBN(0x14997f6e, 0xc78ef1f4), TOBN(0x2b2c0910, 0x06574586), + TOBN(0x17286a6e, 0x1c3eede8), TOBN(0x25f92e47, 0x0f60e018), + TOBN(0x805c5646, 0x31890a36), TOBN(0x703ef600, 0x57feea5b), + TOBN(0x389f747c, 0xaf3c3030), TOBN(0xe0e5daeb, 0x54dd3739), + TOBN(0xfe24a4c3, 0xc9c9f155), TOBN(0x7e4bf176, 0xb5393962), + TOBN(0x37183de2, 0xaf20bf29), TOBN(0x4a1bd7b5, 0xf95a8c3b), + TOBN(0xa83b9699, 0x46191d3d), TOBN(0x281fc8dd, 0x7b87f257), + TOBN(0xb18e2c13, 0x54107588), TOBN(0x6372def7, 0x9b2bafe8), + TOBN(0xdaf4bb48, 0x0d8972ca), TOBN(0x3f2dd4b7, 0x56167a3f), + TOBN(0x1eace32d, 0x84310cf4), TOBN(0xe3bcefaf, 0xe42700aa), + TOBN(0x5fe5691e, 0xd785e73d), TOBN(0xa5db5ab6, 0x2ea60467), + TOBN(0x02e23d41, 0xdfc6514a), TOBN(0x35e8048e, 0xe03c3665), + TOBN(0x3f8b118f, 0x1adaa0f8), TOBN(0x28ec3b45, 0x84ce1a5a), + TOBN(0xe8cacc6e, 0x2c6646b8), TOBN(0x1343d185, 0xdbd0e40f), + TOBN(0xe5d7f844, 0xcaaa358c), TOBN(0x1a1db7e4, 0x9924182a), + TOBN(0xd64cd42d, 0x9c875d9a), TOBN(0xb37b515f, 0x042eeec8), + TOBN(0x4d4dd409, 0x7b165fbe), TOBN(0xfc322ed9, 0xe206eff3), + TOBN(0x7dee4102, 0x59b7e17e), TOBN(0x55a481c0, 0x8236ca00), + TOBN(0x8c885312, 0xc23fc975), TOBN(0x15715806, 0x05d6297b), + TOBN(0xa078868e, 0xf78edd39), TOBN(0x956b31e0, 0x03c45e52), + TOBN(0x470275d5, 0xff7b33a6), TOBN(0xc8d5dc3a, 0x0c7e673f), + TOBN(0x419227b4, 0x7e2f2598), TOBN(0x8b37b634, 0x4c14a975), + TOBN(0xd0667ed6, 0x8b11888c), TOBN(0x5e0e8c3e, 0x803e25dc), + TOBN(0x34e5d0dc, 0xb987a24a), TOBN(0x9f40ac3b, 0xae920323), + TOBN(0x5463de95, 0x34e0f63a), TOBN(0xa128bf92, 0x6b6328f9), + TOBN(0x491ccd7c, 0xda64f1b7), TOBN(0x7ef1ec27, 0xc47bde35), + TOBN(0xa857240f, 0xa36a2737), TOBN(0x35dc1366, 0x63621bc1), + TOBN(0x7a3a6453, 0xd4fb6897), TOBN(0x80f1a439, 0xc929319d), + TOBN(0xfc18274b, 0xf8cb0ba0), TOBN(0xb0b53766, 0x8078c5eb), + TOBN(0xfb0d4924, 0x1e01d0ef), TOBN(0x50d7c67d, 0x372ab09c), + TOBN(0xb4e370af, 0x3aeac968), TOBN(0xe4f7fee9, 0xc4b63266), + TOBN(0xb4acd4c2, 0xe3ac5664), TOBN(0xf8910bd2, 0xceb38cbf), + TOBN(0x1c3ae50c, 0xc9c0726e), TOBN(0x15309569, 0xd97b40bf), + TOBN(0x70884b7f, 0xfd5a5a1b), TOBN(0x3890896a, 0xef8314cd), + TOBN(0x58e1515c, 0xa5618c93), TOBN(0xe665432b, 0x77d942d1), + TOBN(0xb32181bf, 0xb6f767a8), TOBN(0x753794e8, 0x3a604110), + TOBN(0x09afeb7c, 0xe8c0dbcc), TOBN(0x31e02613, 0x598673a3), + TOBN(0x5d98e557, 0x7d46db00), TOBN(0xfc21fb8c, 0x9d985b28), + TOBN(0xc9040116, 0xb0843e0b), TOBN(0x53b1b3a8, 0x69b04531), + TOBN(0xdd1649f0, 0x85d7d830), TOBN(0xbb3bcc87, 0xcb7427e8), + TOBN(0x77261100, 0xc93dce83), TOBN(0x7e79da61, 0xa1922a2a), + TOBN(0x587a2b02, 0xf3149ce8), TOBN(0x147e1384, 0xde92ec83), + TOBN(0x484c83d3, 0xaf077f30), TOBN(0xea78f844, 0x0658b53a), + TOBN(0x912076c2, 0x027aec53), TOBN(0xf34714e3, 0x93c8177d), + TOBN(0x37ef5d15, 0xc2376c84), TOBN(0x8315b659, 0x3d1aa783), + TOBN(0x3a75c484, 0xef852a90), TOBN(0x0ba0c58a, 0x16086bd4), + TOBN(0x29688d7a, 0x529a6d48), TOBN(0x9c7f250d, 0xc2f19203), + TOBN(0x123042fb, 0x682e2df9), TOBN(0x2b7587e7, 0xad8121bc), + TOBN(0x30fc0233, 0xe0182a65), TOBN(0xb82ecf87, 0xe3e1128a), + TOBN(0x71682861, 0x93fb098f), TOBN(0x043e21ae, 0x85e9e6a7), + TOBN(0xab5b49d6, 0x66c834ea), TOBN(0x3be43e18, 0x47414287), + TOBN(0xf40fb859, 0x219a2a47), TOBN(0x0e6559e9, 0xcc58df3c), + TOBN(0xfe1dfe8e, 0x0c6615b4), TOBN(0x14abc8fd, 0x56459d70), + TOBN(0x7be0fa8e, 0x05de0386), TOBN(0x8e63ef68, 0xe9035c7c), + TOBN(0x116401b4, 0x53b31e91), TOBN(0x0cba7ad4, 0x4436b4d8), + TOBN(0x9151f9a0, 0x107afd66), TOBN(0xafaca8d0, 0x1f0ee4c4), + TOBN(0x75fe5c1d, 0x9ee9761c), TOBN(0x3497a16b, 0xf0c0588f), + TOBN(0x3ee2bebd, 0x0304804c), TOBN(0xa8fb9a60, 0xc2c990b9), + TOBN(0xd14d32fe, 0x39251114), TOBN(0x36bf25bc, 0xcac73366), + TOBN(0xc9562c66, 0xdba7495c), TOBN(0x324d301b, 0x46ad348b), + TOBN(0x9f46620c, 0xd670407e), TOBN(0x0ea8d4f1, 0xe3733a01), + TOBN(0xd396d532, 0xb0c324e0), TOBN(0x5b211a0e, 0x03c317cd), + TOBN(0x090d7d20, 0x5ffe7b37), TOBN(0x3b7f3efb, 0x1747d2da), + TOBN(0xa2cb525f, 0xb54fc519), TOBN(0x6e220932, 0xf66a971e), + TOBN(0xddc160df, 0xb486d440), TOBN(0x7fcfec46, 0x3fe13465), + TOBN(0x83da7e4e, 0x76e4c151), TOBN(0xd6fa48a1, 0xd8d302b5), + TOBN(0xc6304f26, 0x5872cd88), TOBN(0x806c1d3c, 0x278b90a1), + TOBN(0x3553e725, 0xcaf0bc1c), TOBN(0xff59e603, 0xbb9d8d5c), + TOBN(0xa4550f32, 0x7a0b85dd), TOBN(0xdec5720a, 0x93ecc217), + TOBN(0x0b88b741, 0x69d62213), TOBN(0x7212f245, 0x5b365955), + TOBN(0x20764111, 0xb5cae787), TOBN(0x13cb7f58, 0x1dfd3124), + TOBN(0x2dca77da, 0x1175aefb), TOBN(0xeb75466b, 0xffaae775), + TOBN(0x74d76f3b, 0xdb6cff32), TOBN(0x7440f37a, 0x61fcda9a), + TOBN(0x1bb3ac92, 0xb525028b), TOBN(0x20fbf8f7, 0xa1975f29), + TOBN(0x982692e1, 0xdf83097f), TOBN(0x28738f6c, 0x554b0800), + TOBN(0xdc703717, 0xa2ce2f2f), TOBN(0x7913b93c, 0x40814194), + TOBN(0x04924593, 0x1fe89636), TOBN(0x7b98443f, 0xf78834a6), + TOBN(0x11c6ab01, 0x5114a5a1), TOBN(0x60deb383, 0xffba5f4c), + TOBN(0x4caa54c6, 0x01a982e6), TOBN(0x1dd35e11, 0x3491cd26), + TOBN(0x973c315f, 0x7cbd6b05), TOBN(0xcab00775, 0x52494724), + TOBN(0x04659b1f, 0x6565e15a), TOBN(0xbf30f529, 0x8c8fb026), + TOBN(0xfc21641b, 0xa8a0de37), TOBN(0xe9c7a366, 0xfa5e5114), + TOBN(0xdb849ca5, 0x52f03ad8), TOBN(0xc7e8dbe9, 0x024e35c0), + TOBN(0xa1a2bbac, 0xcfc3c789), TOBN(0xbf733e7d, 0x9c26f262), + TOBN(0x882ffbf5, 0xb8444823), TOBN(0xb7224e88, 0x6bf8483b), + TOBN(0x53023b8b, 0x65bef640), TOBN(0xaabfec91, 0xd4d5f8cd), + TOBN(0xa40e1510, 0x079ea1bd), TOBN(0x1ad9addc, 0xd05d5d26), + TOBN(0xdb3f2eab, 0x13e68d4f), TOBN(0x1cff1ae2, 0x640f803f), + TOBN(0xe0e7b749, 0xd4cee117), TOBN(0x8e9f275b, 0x4036d909), + TOBN(0xce34e31d, 0x8f4d4c38), TOBN(0x22b37f69, 0xd75130fc), + TOBN(0x83e0f1fd, 0xb4014604), TOBN(0xa8ce9919, 0x89415078), + TOBN(0x82375b75, 0x41792efe), TOBN(0x4f59bf5c, 0x97d4515b), + TOBN(0xac4f324f, 0x923a277d), TOBN(0xd9bc9b7d, 0x650f3406), + TOBN(0xc6fa87d1, 0x8a39bc51), TOBN(0x82588530, 0x5ccc108f), + TOBN(0x5ced3c9f, 0x82e4c634), TOBN(0x8efb8314, 0x3a4464f8), + TOBN(0xe706381b, 0x7a1dca25), TOBN(0x6cd15a3c, 0x5a2a412b), + TOBN(0x9347a8fd, 0xbfcd8fb5), TOBN(0x31db2eef, 0x6e54cd22), + TOBN(0xc4aeb11e, 0xf8d8932f), TOBN(0x11e7c1ed, 0x344411af), + TOBN(0x2653050c, 0xdc9a151e), TOBN(0x9edbfc08, 0x3bb0a859), + TOBN(0x926c81c7, 0xfd5691e7), TOBN(0x9c1b2342, 0x6f39019a), + TOBN(0x64a81c8b, 0x7f8474b9), TOBN(0x90657c07, 0x01761819), + TOBN(0x390b3331, 0x55e0375a), TOBN(0xc676c626, 0xb6ebc47d), + TOBN(0x51623247, 0xb7d6dee8), TOBN(0x0948d927, 0x79659313), + TOBN(0x99700161, 0xe9ab35ed), TOBN(0x06cc32b4, 0x8ddde408), + TOBN(0x6f2fd664, 0x061ef338), TOBN(0x1606fa02, 0xc202e9ed), + TOBN(0x55388bc1, 0x929ba99b), TOBN(0xc4428c5e, 0x1e81df69), + TOBN(0xce2028ae, 0xf91b0b2a), TOBN(0xce870a23, 0xf03dfd3f), + TOBN(0x66ec2c87, 0x0affe8ed), TOBN(0xb205fb46, 0x284d0c00), + TOBN(0xbf5dffe7, 0x44cefa48), TOBN(0xb6fc37a8, 0xa19876d7), + TOBN(0xbecfa84c, 0x08b72863), TOBN(0xd7205ff5, 0x2576374f), + TOBN(0x80330d32, 0x8887de41), TOBN(0x5de0df0c, 0x869ea534), + TOBN(0x13f42753, 0x3c56ea17), TOBN(0xeb1f6069, 0x452b1a78), + TOBN(0x50474396, 0xe30ea15c), TOBN(0x575816a1, 0xc1494125), + TOBN(0xbe1ce55b, 0xfe6bb38f), TOBN(0xb901a948, 0x96ae30f7), + TOBN(0xe5af0f08, 0xd8fc3548), TOBN(0x5010b5d0, 0xd73bfd08), + TOBN(0x993d2880, 0x53fe655a), TOBN(0x99f2630b, 0x1c1309fd), + TOBN(0xd8677baf, 0xb4e3b76f), TOBN(0x14e51ddc, 0xb840784b), + TOBN(0x326c750c, 0xbf0092ce), TOBN(0xc83d306b, 0xf528320f), + TOBN(0xc4456715, 0x77d4715c), TOBN(0xd30019f9, 0x6b703235), + TOBN(0x207ccb2e, 0xd669e986), TOBN(0x57c824af, 0xf6dbfc28), + TOBN(0xf0eb532f, 0xd8f92a23), TOBN(0x4a557fd4, 0x9bb98fd2), + TOBN(0xa57acea7, 0xc1e6199a), TOBN(0x0c663820, 0x8b94b1ed), + TOBN(0x9b42be8f, 0xf83a9266), TOBN(0xc7741c97, 0x0101bd45), + TOBN(0x95770c11, 0x07bd9ceb), TOBN(0x1f50250a, 0x8b2e0744), + TOBN(0xf762eec8, 0x1477b654), TOBN(0xc65b900e, 0x15efe59a), + TOBN(0x88c96148, 0x9546a897), TOBN(0x7e8025b3, 0xc30b4d7c), + TOBN(0xae4065ef, 0x12045cf9), TOBN(0x6fcb2caf, 0x9ccce8bd), + TOBN(0x1fa0ba4e, 0xf2cf6525), TOBN(0xf683125d, 0xcb72c312), + TOBN(0xa01da4ea, 0xe312410e), TOBN(0x67e28677, 0x6cd8e830), + TOBN(0xabd95752, 0x98fb3f07), TOBN(0x05f11e11, 0xeef649a5), + TOBN(0xba47faef, 0x9d3472c2), TOBN(0x3adff697, 0xc77d1345), + TOBN(0x4761fa04, 0xdd15afee), TOBN(0x64f1f61a, 0xb9e69462), + TOBN(0xfa691fab, 0x9bfb9093), TOBN(0x3df8ae8f, 0xa1133dfe), + TOBN(0xcd5f8967, 0x58cc710d), TOBN(0xfbb88d50, 0x16c7fe79), + TOBN(0x8e011b4c, 0xe88c50d1), TOBN(0x7532e807, 0xa8771c4f), + TOBN(0x64c78a48, 0xe2278ee4), TOBN(0x0b283e83, 0x3845072a), + TOBN(0x98a6f291, 0x49e69274), TOBN(0xb96e9668, 0x1868b21c), + TOBN(0x38f0adc2, 0xb1a8908e), TOBN(0x90afcff7, 0x1feb829d), + TOBN(0x9915a383, 0x210b0856), TOBN(0xa5a80602, 0xdef04889), + TOBN(0x800e9af9, 0x7c64d509), TOBN(0x81382d0b, 0xb8996f6f), + TOBN(0x490eba53, 0x81927e27), TOBN(0x46c63b32, 0x4af50182), + TOBN(0x784c5fd9, 0xd3ad62ce), TOBN(0xe4fa1870, 0xf8ae8736), + TOBN(0x4ec9d0bc, 0xd7466b25), TOBN(0x84ddbe1a, 0xdb235c65), + TOBN(0x5e2645ee, 0x163c1688), TOBN(0x570bd00e, 0x00eba747), + TOBN(0xfa51b629, 0x128bfa0f), TOBN(0x92fce1bd, 0x6c1d3b68), + TOBN(0x3e7361dc, 0xb66778b1), TOBN(0x9c7d249d, 0x5561d2bb), + TOBN(0xa40b28bf, 0x0bbc6229), TOBN(0x1c83c05e, 0xdfd91497), + TOBN(0x5f9f5154, 0xf083df05), TOBN(0xbac38b3c, 0xeee66c9d), + TOBN(0xf71db7e3, 0xec0dfcfd), TOBN(0xf2ecda8e, 0x8b0a8416), + TOBN(0x52fddd86, 0x7812aa66), TOBN(0x2896ef10, 0x4e6f4272), + TOBN(0xff27186a, 0x0fe9a745), TOBN(0x08249fcd, 0x49ca70db), + TOBN(0x7425a2e6, 0x441cac49), TOBN(0xf4a0885a, 0xece5ff57), + TOBN(0x6e2cb731, 0x7d7ead58), TOBN(0xf96cf7d6, 0x1898d104), + TOBN(0xafe67c9d, 0x4f2c9a89), TOBN(0x89895a50, 0x1c7bf5bc), + TOBN(0xdc7cb8e5, 0x573cecfa), TOBN(0x66497eae, 0xd15f03e6), + TOBN(0x6bc0de69, 0x3f084420), TOBN(0x323b9b36, 0xacd532b0), + TOBN(0xcfed390a, 0x0115a3c1), TOBN(0x9414c40b, 0x2d65ca0e), + TOBN(0x641406bd, 0x2f530c78), TOBN(0x29369a44, 0x833438f2), + TOBN(0x996884f5, 0x903fa271), TOBN(0xe6da0fd2, 0xb9da921e), + TOBN(0xa6f2f269, 0x5db01e54), TOBN(0x1ee3e9bd, 0x6876214e), + TOBN(0xa26e181c, 0xe27a9497), TOBN(0x36d254e4, 0x8e215e04), + TOBN(0x42f32a6c, 0x252cabca), TOBN(0x99481487, 0x80b57614), + TOBN(0x4c4dfe69, 0x40d9cae1), TOBN(0x05869580, 0x11a10f09), + TOBN(0xca287b57, 0x3491b64b), TOBN(0x77862d5d, 0x3fd4a53b), + TOBN(0xbf94856e, 0x50349126), TOBN(0x2be30bd1, 0x71c5268f), + TOBN(0x10393f19, 0xcbb650a6), TOBN(0x639531fe, 0x778cf9fd), + TOBN(0x02556a11, 0xb2935359), TOBN(0xda38aa96, 0xaf8c126e), + TOBN(0x47dbe6c2, 0x0960167f), TOBN(0x37bbabb6, 0x501901cd), + TOBN(0xb6e979e0, 0x2c947778), TOBN(0xd69a5175, 0x7a1a1dc6), + TOBN(0xc3ed5095, 0x9d9faf0c), TOBN(0x4dd9c096, 0x1d5fa5f0), + TOBN(0xa0c4304d, 0x64f16ea8), TOBN(0x8b1cac16, 0x7e718623), + TOBN(0x0b576546, 0x7c67f03e), TOBN(0x559cf5ad, 0xcbd88c01), + TOBN(0x074877bb, 0x0e2af19a), TOBN(0x1f717ec1, 0xa1228c92), + TOBN(0x70bcb800, 0x326e8920), TOBN(0xec6e2c5c, 0x4f312804), + TOBN(0x426aea7d, 0x3fca4752), TOBN(0xf12c0949, 0x2211f62a), + TOBN(0x24beecd8, 0x7be7b6b5), TOBN(0xb77eaf4c, 0x36d7a27d), + TOBN(0x154c2781, 0xfda78fd3), TOBN(0x848a83b0, 0x264eeabe), + TOBN(0x81287ef0, 0x4ffe2bc4), TOBN(0x7b6d88c6, 0xb6b6fc2a), + TOBN(0x805fb947, 0xce417d99), TOBN(0x4b93dcc3, 0x8b916cc4), + TOBN(0x72e65bb3, 0x21273323), TOBN(0xbcc1badd, 0x6ea9886e), + TOBN(0x0e223011, 0x4bc5ee85), TOBN(0xa561be74, 0xc18ee1e4), + TOBN(0x762fd2d4, 0xa6bcf1f1), TOBN(0x50e6a5a4, 0x95231489), + TOBN(0xca96001f, 0xa00b500b), TOBN(0x5c098cfc, 0x5d7dcdf5), + TOBN(0xa64e2d2e, 0x8c446a85), TOBN(0xbae9bcf1, 0x971f3c62), + TOBN(0x4ec22683, 0x8435a2c5), TOBN(0x8ceaed6c, 0x4bad4643), + TOBN(0xe9f8fb47, 0xccccf4e3), TOBN(0xbd4f3fa4, 0x1ce3b21e), + TOBN(0xd79fb110, 0xa3db3292), TOBN(0xe28a37da, 0xb536c66a), + TOBN(0x279ce87b, 0x8e49e6a9), TOBN(0x70ccfe8d, 0xfdcec8e3), + TOBN(0x2193e4e0, 0x3ba464b2), TOBN(0x0f39d60e, 0xaca9a398), + TOBN(0x7d7932af, 0xf82c12ab), TOBN(0xd8ff50ed, 0x91e7e0f7), + TOBN(0xea961058, 0xfa28a7e0), TOBN(0xc726cf25, 0x0bf5ec74), + TOBN(0xe74d55c8, 0xdb229666), TOBN(0x0bd9abbf, 0xa57f5799), + TOBN(0x7479ef07, 0x4dfc47b3), TOBN(0xd9c65fc3, 0x0c52f91d), + TOBN(0x8e0283fe, 0x36a8bde2), TOBN(0xa32a8b5e, 0x7d4b7280), + TOBN(0x6a677c61, 0x12e83233), TOBN(0x0fbb3512, 0xdcc9bf28), + TOBN(0x562e8ea5, 0x0d780f61), TOBN(0x0db8b22b, 0x1dc4e89c), + TOBN(0x0a6fd1fb, 0x89be0144), TOBN(0x8c77d246, 0xca57113b), + TOBN(0x4639075d, 0xff09c91c), TOBN(0x5b47b17f, 0x5060824c), + TOBN(0x58aea2b0, 0x16287b52), TOBN(0xa1343520, 0xd0cd8eb0), + TOBN(0x6148b4d0, 0xc5d58573), TOBN(0xdd2b6170, 0x291c68ae), + TOBN(0xa61b3929, 0x1da3b3b7), TOBN(0x5f946d79, 0x08c4ac10), + TOBN(0x4105d4a5, 0x7217d583), TOBN(0x5061da3d, 0x25e6de5e), + TOBN(0x3113940d, 0xec1b4991), TOBN(0xf12195e1, 0x36f485ae), + TOBN(0xa7507fb2, 0x731a2ee0), TOBN(0x95057a8e, 0x6e9e196e), + TOBN(0xa3c2c911, 0x2e130136), TOBN(0x97dfbb36, 0x33c60d15), + TOBN(0xcaf3c581, 0xb300ee2b), TOBN(0x77f25d90, 0xf4bac8b8), + TOBN(0xdb1c4f98, 0x6d840cd6), TOBN(0x471d62c0, 0xe634288c), + TOBN(0x8ec2f85e, 0xcec8a161), TOBN(0x41f37cbc, 0xfa6f4ae2), + TOBN(0x6793a20f, 0x4b709985), TOBN(0x7a7bd33b, 0xefa8985b), + TOBN(0x2c6a3fbd, 0x938e6446), TOBN(0x19042619, 0x2a8d47c1), + TOBN(0x16848667, 0xcc36975f), TOBN(0x02acf168, 0x9d5f1dfb), + TOBN(0x62d41ad4, 0x613baa94), TOBN(0xb56fbb92, 0x9f684670), + TOBN(0xce610d0d, 0xe9e40569), TOBN(0x7b99c65f, 0x35489fef), + TOBN(0x0c88ad1b, 0x3df18b97), TOBN(0x81b7d9be, 0x5d0e9edb), + TOBN(0xd85218c0, 0xc716cc0a), TOBN(0xf4b5ff90, 0x85691c49), + TOBN(0xa4fd666b, 0xce356ac6), TOBN(0x17c72895, 0x4b327a7a), + TOBN(0xf93d5085, 0xda6be7de), TOBN(0xff71530e, 0x3301d34e), + TOBN(0x4cd96442, 0xd8f448e8), TOBN(0x9283d331, 0x2ed18ffa), + TOBN(0x4d33dd99, 0x2a849870), TOBN(0xa716964b, 0x41576335), + TOBN(0xff5e3a9b, 0x179be0e5), TOBN(0x5b9d6b1b, 0x83b13632), + TOBN(0x3b8bd7d4, 0xa52f313b), TOBN(0xc9dd95a0, 0x637a4660), + TOBN(0x30035962, 0x0b3e218f), TOBN(0xce1481a3, 0xc7b28a3c), + TOBN(0xab41b43a, 0x43228d83), TOBN(0x24ae1c30, 0x4ad63f99), + TOBN(0x8e525f1a, 0x46a51229), TOBN(0x14af860f, 0xcd26d2b4), + TOBN(0xd6baef61, 0x3f714aa1), TOBN(0xf51865ad, 0xeb78795e), + TOBN(0xd3e21fce, 0xe6a9d694), TOBN(0x82ceb1dd, 0x8a37b527)} +}; diff --git a/libs/openssl/crypto/ecdh/ecdh.h b/libs/openssl/crypto/ecdh/ecdh.h index a9b811ab..25348b30 100644 --- a/libs/openssl/crypto/ecdh/ecdh.h +++ b/libs/openssl/crypto/ecdh/ecdh.h @@ -85,6 +85,8 @@ extern "C" { #endif +# define EC_FLAG_COFACTOR_ECDH 0x1000 + const ECDH_METHOD *ECDH_OpenSSL(void); void ECDH_set_default_method(const ECDH_METHOD *); @@ -101,6 +103,11 @@ int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg); void *ECDH_get_ex_data(EC_KEY *d, int idx); +int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + const unsigned char *sinfo, size_t sinfolen, + const EVP_MD *md); + /* BEGIN ERROR CODES */ /* * The following lines are auto generated by the script mkerr.pl. Any changes diff --git a/libs/openssl/crypto/ecdh/ech_kdf.c b/libs/openssl/crypto/ecdh/ech_kdf.c new file mode 100644 index 00000000..ac722ac9 --- /dev/null +++ b/libs/openssl/crypto/ecdh/ech_kdf.c @@ -0,0 +1,111 @@ +/* crypto/ecdh/ec_kdf.c */ +/* + * Written by Stephen Henson for the OpenSSL project. + */ +/* ==================================================================== + * Copyright (c) 2013 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#define OPENSSL_FIPSAPI + +#include +#include +#include + +/* Key derivation function from X9.62/SECG */ +/* Way more than we will ever need */ +#define ECDH_KDF_MAX (1 << 30) + +int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + const unsigned char *sinfo, size_t sinfolen, + const EVP_MD *md) +{ + EVP_MD_CTX mctx; + int rv = 0; + unsigned int i; + size_t mdlen; + unsigned char ctr[4]; + if (sinfolen > ECDH_KDF_MAX || outlen > ECDH_KDF_MAX + || Zlen > ECDH_KDF_MAX) + return 0; + mdlen = EVP_MD_size(md); + EVP_MD_CTX_init(&mctx); + for (i = 1;; i++) { + unsigned char mtmp[EVP_MAX_MD_SIZE]; + EVP_DigestInit_ex(&mctx, md, NULL); + ctr[3] = i & 0xFF; + ctr[2] = (i >> 8) & 0xFF; + ctr[1] = (i >> 16) & 0xFF; + ctr[0] = (i >> 24) & 0xFF; + if (!EVP_DigestUpdate(&mctx, Z, Zlen)) + goto err; + if (!EVP_DigestUpdate(&mctx, ctr, sizeof(ctr))) + goto err; + if (!EVP_DigestUpdate(&mctx, sinfo, sinfolen)) + goto err; + if (outlen >= mdlen) { + if (!EVP_DigestFinal(&mctx, out, NULL)) + goto err; + outlen -= mdlen; + if (outlen == 0) + break; + out += mdlen; + } else { + if (!EVP_DigestFinal(&mctx, mtmp, NULL)) + goto err; + memcpy(out, mtmp, outlen); + OPENSSL_cleanse(mtmp, mdlen); + break; + } + } + rv = 1; + err: + EVP_MD_CTX_cleanup(&mctx); + return rv; +} diff --git a/libs/openssl/crypto/ecdh/ech_ossl.c b/libs/openssl/crypto/ecdh/ech_ossl.c index d448b19a..df115cc2 100644 --- a/libs/openssl/crypto/ecdh/ech_ossl.c +++ b/libs/openssl/crypto/ecdh/ech_ossl.c @@ -138,6 +138,16 @@ static int ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, } group = EC_KEY_get0_group(ecdh); + + if (EC_KEY_get_flags(ecdh) & EC_FLAG_COFACTOR_ECDH) { + if (!EC_GROUP_get_cofactor(group, x, ctx) || + !BN_mul(x, x, priv_key, ctx)) { + ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE); + goto err; + } + priv_key = x; + } + if ((tmp = EC_POINT_new(group)) == NULL) { ECDHerr(ECDH_F_ECDH_COMPUTE_KEY, ERR_R_MALLOC_FAILURE); goto err; diff --git a/libs/openssl/crypto/ecdsa/ecdsa.h b/libs/openssl/crypto/ecdsa/ecdsa.h index faf76b11..a6f0930f 100644 --- a/libs/openssl/crypto/ecdsa/ecdsa.h +++ b/libs/openssl/crypto/ecdsa/ecdsa.h @@ -228,6 +228,80 @@ int ECDSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg); void *ECDSA_get_ex_data(EC_KEY *d, int idx); +/** Allocates and initialize a ECDSA_METHOD structure + * \param ecdsa_method pointer to ECDSA_METHOD to copy. (May be NULL) + * \return pointer to a ECDSA_METHOD structure or NULL if an error occurred + */ + +ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_method); + +/** frees a ECDSA_METHOD structure + * \param ecdsa_method pointer to the ECDSA_METHOD structure + */ +void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method); + +/** Sets application specific data in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param app application specific data to set + */ + +void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method, void *app); + +/** Returns application specific data from a ECDSA_METHOD structure + * \param ecdsa_method pointer to ECDSA_METHOD structure + * \return pointer to application specific data. + */ + +void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method); + +/** Set the ECDSA_do_sign function in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param ecdsa_do_sign a funtion of type ECDSA_do_sign + */ + +void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method, + ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char + *dgst, int dgst_len, + const BIGNUM *inv, + const BIGNUM *rp, + EC_KEY *eckey)); + +/** Set the ECDSA_sign_setup function in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param ecdsa_sign_setup a funtion of type ECDSA_sign_setup + */ + +void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method, + int (*ecdsa_sign_setup) (EC_KEY *eckey, + BN_CTX *ctx, + BIGNUM **kinv, + BIGNUM **r)); + +/** Set the ECDSA_do_verify function in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param ecdsa_do_verify a funtion of type ECDSA_do_verify + */ + +void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method, + int (*ecdsa_do_verify) (const unsigned char + *dgst, int dgst_len, + const ECDSA_SIG *sig, + EC_KEY *eckey)); + +void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method, int flags); + +/** Set the flags field in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param flags flags value to set + */ + +void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name); + +/** Set the name field in the ECDSA_METHOD + * \param ecdsa_method pointer to existing ECDSA_METHOD + * \param name name to set + */ + /* BEGIN ERROR CODES */ /* * The following lines are auto generated by the script mkerr.pl. Any changes @@ -242,6 +316,7 @@ void ERR_load_ECDSA_strings(void); # define ECDSA_F_ECDSA_DATA_NEW_METHOD 100 # define ECDSA_F_ECDSA_DO_SIGN 101 # define ECDSA_F_ECDSA_DO_VERIFY 102 +# define ECDSA_F_ECDSA_METHOD_NEW 105 # define ECDSA_F_ECDSA_SIGN_SETUP 103 /* Reason codes. */ diff --git a/libs/openssl/crypto/ecdsa/ecs_err.c b/libs/openssl/crypto/ecdsa/ecs_err.c index 6fc64a00..f1fa7b55 100644 --- a/libs/openssl/crypto/ecdsa/ecs_err.c +++ b/libs/openssl/crypto/ecdsa/ecs_err.c @@ -74,6 +74,7 @@ static ERR_STRING_DATA ECDSA_str_functs[] = { {ERR_FUNC(ECDSA_F_ECDSA_DATA_NEW_METHOD), "ECDSA_DATA_NEW_METHOD"}, {ERR_FUNC(ECDSA_F_ECDSA_DO_SIGN), "ECDSA_do_sign"}, {ERR_FUNC(ECDSA_F_ECDSA_DO_VERIFY), "ECDSA_do_verify"}, + {ERR_FUNC(ECDSA_F_ECDSA_METHOD_NEW), "ECDSA_METHOD_new"}, {ERR_FUNC(ECDSA_F_ECDSA_SIGN_SETUP), "ECDSA_sign_setup"}, {0, NULL} }; diff --git a/libs/openssl/crypto/ecdsa/ecs_lib.c b/libs/openssl/crypto/ecdsa/ecs_lib.c index 0f2d3432..8dc1dda4 100644 --- a/libs/openssl/crypto/ecdsa/ecs_lib.c +++ b/libs/openssl/crypto/ecdsa/ecs_lib.c @@ -275,3 +275,80 @@ void *ECDSA_get_ex_data(EC_KEY *d, int idx) return NULL; return (CRYPTO_get_ex_data(&ecdsa->ex_data, idx)); } + +ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_meth) +{ + ECDSA_METHOD *ret; + + ret = OPENSSL_malloc(sizeof(ECDSA_METHOD)); + if (ret == NULL) { + ECDSAerr(ECDSA_F_ECDSA_METHOD_NEW, ERR_R_MALLOC_FAILURE); + return NULL; + } + + if (ecdsa_meth) + *ret = *ecdsa_meth; + else { + ret->ecdsa_sign_setup = 0; + ret->ecdsa_do_sign = 0; + ret->ecdsa_do_verify = 0; + ret->name = NULL; + ret->flags = 0; + } + ret->flags |= ECDSA_METHOD_FLAG_ALLOCATED; + return ret; +} + +void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method, + ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char + *dgst, int dgst_len, + const BIGNUM *inv, + const BIGNUM *rp, + EC_KEY *eckey)) +{ + ecdsa_method->ecdsa_do_sign = ecdsa_do_sign; +} + +void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method, + int (*ecdsa_sign_setup) (EC_KEY *eckey, + BN_CTX *ctx, + BIGNUM **kinv, + BIGNUM **r)) +{ + ecdsa_method->ecdsa_sign_setup = ecdsa_sign_setup; +} + +void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method, + int (*ecdsa_do_verify) (const unsigned char + *dgst, int dgst_len, + const ECDSA_SIG *sig, + EC_KEY *eckey)) +{ + ecdsa_method->ecdsa_do_verify = ecdsa_do_verify; +} + +void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method, int flags) +{ + ecdsa_method->flags = flags | ECDSA_METHOD_FLAG_ALLOCATED; +} + +void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name) +{ + ecdsa_method->name = name; +} + +void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method) +{ + if (ecdsa_method->flags & ECDSA_METHOD_FLAG_ALLOCATED) + OPENSSL_free(ecdsa_method); +} + +void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method, void *app) +{ + ecdsa_method->app_data = app; +} + +void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method) +{ + return ecdsa_method->app_data; +} diff --git a/libs/openssl/crypto/ecdsa/ecs_locl.h b/libs/openssl/crypto/ecdsa/ecs_locl.h index 76b2caf1..d3a5efc5 100644 --- a/libs/openssl/crypto/ecdsa/ecs_locl.h +++ b/libs/openssl/crypto/ecdsa/ecs_locl.h @@ -79,9 +79,13 @@ struct ecdsa_method { int (*finish) (EC_KEY *eckey); # endif int flags; - char *app_data; + void *app_data; }; +/* The ECDSA_METHOD was allocated and can be freed */ + +# define ECDSA_METHOD_FLAG_ALLOCATED 0x2 + /* * If this flag is set the ECDSA method is FIPS compliant and can be used in * FIPS mode. This is set in the validated module method. If an application diff --git a/libs/openssl/crypto/ecdsa/ecs_ossl.c b/libs/openssl/crypto/ecdsa/ecs_ossl.c index 4c5fa6b9..dd769609 100644 --- a/libs/openssl/crypto/ecdsa/ecs_ossl.c +++ b/libs/openssl/crypto/ecdsa/ecs_ossl.c @@ -179,10 +179,32 @@ static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp, while (BN_is_zero(r)); /* compute the inverse of k */ - if (!BN_mod_inverse(k, k, order, ctx)) { - ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB); - goto err; + if (EC_GROUP_get_mont_data(group) != NULL) { + /* + * We want inverse in constant time, therefore we utilize the fact + * order must be prime and use Fermats Little Theorem instead. + */ + if (!BN_set_word(X, 2)) { + ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB); + goto err; + } + if (!BN_mod_sub(X, order, X, order, ctx)) { + ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB); + goto err; + } + BN_set_flags(X, BN_FLG_CONSTTIME); + if (!BN_mod_exp_mont_consttime + (k, k, X, order, ctx, EC_GROUP_get_mont_data(group))) { + ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB); + goto err; + } + } else { + if (!BN_mod_inverse(k, k, order, ctx)) { + ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP, ERR_R_BN_LIB); + goto err; + } } + /* clear old values if necessary */ if (*rp != NULL) BN_clear_free(*rp); diff --git a/libs/openssl/crypto/evp/c_allc.c b/libs/openssl/crypto/evp/c_allc.c index 3097c211..280e5840 100644 --- a/libs/openssl/crypto/evp/c_allc.c +++ b/libs/openssl/crypto/evp/c_allc.c @@ -93,6 +93,7 @@ void OpenSSL_add_all_ciphers(void) EVP_add_cipher(EVP_des_ecb()); EVP_add_cipher(EVP_des_ede()); EVP_add_cipher(EVP_des_ede3()); + EVP_add_cipher(EVP_des_ede3_wrap()); #endif #ifndef OPENSSL_NO_RC4 @@ -172,6 +173,8 @@ void OpenSSL_add_all_ciphers(void) EVP_add_cipher(EVP_aes_128_ctr()); EVP_add_cipher(EVP_aes_128_gcm()); EVP_add_cipher(EVP_aes_128_xts()); + EVP_add_cipher(EVP_aes_128_ccm()); + EVP_add_cipher(EVP_aes_128_wrap()); EVP_add_cipher_alias(SN_aes_128_cbc, "AES128"); EVP_add_cipher_alias(SN_aes_128_cbc, "aes128"); EVP_add_cipher(EVP_aes_192_ecb()); @@ -182,6 +185,8 @@ void OpenSSL_add_all_ciphers(void) EVP_add_cipher(EVP_aes_192_ofb()); EVP_add_cipher(EVP_aes_192_ctr()); EVP_add_cipher(EVP_aes_192_gcm()); + EVP_add_cipher(EVP_aes_192_ccm()); + EVP_add_cipher(EVP_aes_192_wrap()); EVP_add_cipher_alias(SN_aes_192_cbc, "AES192"); EVP_add_cipher_alias(SN_aes_192_cbc, "aes192"); EVP_add_cipher(EVP_aes_256_ecb()); @@ -193,12 +198,18 @@ void OpenSSL_add_all_ciphers(void) EVP_add_cipher(EVP_aes_256_ctr()); EVP_add_cipher(EVP_aes_256_gcm()); EVP_add_cipher(EVP_aes_256_xts()); + EVP_add_cipher(EVP_aes_256_ccm()); + EVP_add_cipher(EVP_aes_256_wrap()); EVP_add_cipher_alias(SN_aes_256_cbc, "AES256"); EVP_add_cipher_alias(SN_aes_256_cbc, "aes256"); # if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA1) EVP_add_cipher(EVP_aes_128_cbc_hmac_sha1()); EVP_add_cipher(EVP_aes_256_cbc_hmac_sha1()); # endif +# if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA256) + EVP_add_cipher(EVP_aes_128_cbc_hmac_sha256()); + EVP_add_cipher(EVP_aes_256_cbc_hmac_sha256()); +# endif #endif #ifndef OPENSSL_NO_CAMELLIA diff --git a/libs/openssl/crypto/evp/digest.c b/libs/openssl/crypto/evp/digest.c index 2e202c8f..f2643f32 100644 --- a/libs/openssl/crypto/evp/digest.c +++ b/libs/openssl/crypto/evp/digest.c @@ -119,6 +119,7 @@ #ifdef OPENSSL_FIPS # include +# include "evp_locl.h" #endif void EVP_MD_CTX_init(EVP_MD_CTX *ctx) @@ -145,6 +146,17 @@ int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type) int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl) { EVP_MD_CTX_clear_flags(ctx, EVP_MD_CTX_FLAG_CLEANED); +#ifdef OPENSSL_FIPS + /* If FIPS mode switch to approved implementation if possible */ + if (FIPS_mode()) { + const EVP_MD *fipsmd; + if (type) { + fipsmd = evp_get_fips_md(type); + if (fipsmd) + type = fipsmd; + } + } +#endif #ifndef OPENSSL_NO_ENGINE /* * Whether it's nice or not, "Inits" can be used on "Final"'d contexts so diff --git a/libs/openssl/crypto/evp/e_aes.c b/libs/openssl/crypto/evp/e_aes.c index a4327fcb..1734a823 100644 --- a/libs/openssl/crypto/evp/e_aes.c +++ b/libs/openssl/crypto/evp/e_aes.c @@ -57,12 +57,17 @@ # include # include # include "evp_locl.h" -# ifndef OPENSSL_FIPS -# include "modes_lcl.h" -# include +# include "modes_lcl.h" +# include + +# undef EVP_CIPH_FLAG_FIPS +# define EVP_CIPH_FLAG_FIPS 0 typedef struct { - AES_KEY ks; + union { + double align; + AES_KEY ks; + } ks; block128_f block; union { cbc128_f cbc; @@ -71,7 +76,10 @@ typedef struct { } EVP_AES_KEY; typedef struct { - AES_KEY ks; /* AES key schedule to use */ + union { + double align; + AES_KEY ks; + } ks; /* AES key schedule to use */ int key_set; /* Set if key initialised */ int iv_set; /* Set if an iv is set */ GCM128_CONTEXT gcm; @@ -84,7 +92,10 @@ typedef struct { } EVP_AES_GCM_CTX; typedef struct { - AES_KEY ks1, ks2; /* AES key schedules to use */ + union { + double align; + AES_KEY ks; + } ks1, ks2; /* AES key schedules to use */ XTS128_CONTEXT xts; void (*stream) (const unsigned char *in, unsigned char *out, size_t length, @@ -93,7 +104,10 @@ typedef struct { } EVP_AES_XTS_CTX; typedef struct { - AES_KEY ks; /* AES key schedule to use */ + union { + double align; + AES_KEY ks; + } ks; /* AES key schedule to use */ int key_set; /* Set if key initialised */ int iv_set; /* Set if an iv is set */ int tag_set; /* Set if tag is valid */ @@ -103,9 +117,9 @@ typedef struct { ccm128_f str; } EVP_AES_CCM_CTX; -# define MAXBITCHUNK ((size_t)1<<(sizeof(size_t)*8-4)) +# define MAXBITCHUNK ((size_t)1<<(sizeof(size_t)*8-4)) -# ifdef VPAES_ASM +# ifdef VPAES_ASM int vpaes_set_encrypt_key(const unsigned char *userKey, int bits, AES_KEY *key); int vpaes_set_decrypt_key(const unsigned char *userKey, int bits, @@ -120,8 +134,8 @@ void vpaes_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t length, const AES_KEY *key, unsigned char *ivec, int enc); -# endif -# ifdef BSAES_ASM +# endif +# ifdef BSAES_ASM void bsaes_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t length, const AES_KEY *key, unsigned char ivec[16], int enc); @@ -134,40 +148,54 @@ void bsaes_xts_encrypt(const unsigned char *inp, unsigned char *out, void bsaes_xts_decrypt(const unsigned char *inp, unsigned char *out, size_t len, const AES_KEY *key1, const AES_KEY *key2, const unsigned char iv[16]); -# endif -# ifdef AES_CTR_ASM +# endif +# ifdef AES_CTR_ASM void AES_ctr32_encrypt(const unsigned char *in, unsigned char *out, size_t blocks, const AES_KEY *key, const unsigned char ivec[AES_BLOCK_SIZE]); -# endif -# ifdef AES_XTS_ASM +# endif +# ifdef AES_XTS_ASM void AES_xts_encrypt(const char *inp, char *out, size_t len, const AES_KEY *key1, const AES_KEY *key2, const unsigned char iv[16]); void AES_xts_decrypt(const char *inp, char *out, size_t len, const AES_KEY *key1, const AES_KEY *key2, const unsigned char iv[16]); +# endif + +# if defined(OPENSSL_CPUID_OBJ) && (defined(__powerpc__) || defined(__ppc__) || defined(_ARCH_PPC)) +# include "ppc_arch.h" +# ifdef VPAES_ASM +# define VPAES_CAPABLE (OPENSSL_ppccap_P & PPC_ALTIVEC) # endif +# define HWAES_CAPABLE (OPENSSL_ppccap_P & PPC_CRYPTO207) +# define HWAES_set_encrypt_key aes_p8_set_encrypt_key +# define HWAES_set_decrypt_key aes_p8_set_decrypt_key +# define HWAES_encrypt aes_p8_encrypt +# define HWAES_decrypt aes_p8_decrypt +# define HWAES_cbc_encrypt aes_p8_cbc_encrypt +# define HWAES_ctr32_encrypt_blocks aes_p8_ctr32_encrypt_blocks +# endif -# if defined(AES_ASM) && !defined(I386_ONLY) && ( \ +# if defined(AES_ASM) && !defined(I386_ONLY) && ( \ ((defined(__i386) || defined(__i386__) || \ defined(_M_IX86)) && defined(OPENSSL_IA32_SSE2))|| \ defined(__x86_64) || defined(__x86_64__) || \ defined(_M_AMD64) || defined(_M_X64) || \ defined(__INTEL__) ) -extern unsigned int OPENSSL_ia32cap_P[2]; +extern unsigned int OPENSSL_ia32cap_P[]; -# ifdef VPAES_ASM -# define VPAES_CAPABLE (OPENSSL_ia32cap_P[1]&(1<<(41-32))) -# endif -# ifdef BSAES_ASM -# define BSAES_CAPABLE (OPENSSL_ia32cap_P[1]&(1<<(41-32))) -# endif +# ifdef VPAES_ASM +# define VPAES_CAPABLE (OPENSSL_ia32cap_P[1]&(1<<(41-32))) +# endif +# ifdef BSAES_ASM +# define BSAES_CAPABLE (OPENSSL_ia32cap_P[1]&(1<<(41-32))) +# endif /* * AES-NI section */ -# define AESNI_CAPABLE (OPENSSL_ia32cap_P[1]&(1<<(57-32))) +# define AESNI_CAPABLE (OPENSSL_ia32cap_P[1]&(1<<(57-32))) int aesni_set_encrypt_key(const unsigned char *userKey, int bits, AES_KEY *key); @@ -218,6 +246,26 @@ void aesni_ccm64_decrypt_blocks(const unsigned char *in, const unsigned char ivec[16], unsigned char cmac[16]); +# if defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || defined(_M_X64) +size_t aesni_gcm_encrypt(const unsigned char *in, + unsigned char *out, + size_t len, + const void *key, unsigned char ivec[16], u64 *Xi); +# define AES_gcm_encrypt aesni_gcm_encrypt +size_t aesni_gcm_decrypt(const unsigned char *in, + unsigned char *out, + size_t len, + const void *key, unsigned char ivec[16], u64 *Xi); +# define AES_gcm_decrypt aesni_gcm_decrypt +void gcm_ghash_avx(u64 Xi[2], const u128 Htable[16], const u8 *in, + size_t len); +# define AES_GCM_ASM(gctx) (gctx->ctr==aesni_ctr32_encrypt_blocks && \ + gctx->gcm.ghash==gcm_ghash_avx) +# define AES_GCM_ASM2(gctx) (gctx->gcm.block==(block128_f)aesni_encrypt && \ + gctx->gcm.ghash==gcm_ghash_avx) +# undef AES_GCM_ASM2 /* minor size optimization */ +# endif + static int aesni_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc) { @@ -271,23 +319,23 @@ static int aesni_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, return 1; } -# define aesni_ofb_cipher aes_ofb_cipher +# define aesni_ofb_cipher aes_ofb_cipher static int aesni_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t len); -# define aesni_cfb_cipher aes_cfb_cipher +# define aesni_cfb_cipher aes_cfb_cipher static int aesni_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t len); -# define aesni_cfb8_cipher aes_cfb8_cipher +# define aesni_cfb8_cipher aes_cfb8_cipher static int aesni_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t len); -# define aesni_cfb1_cipher aes_cfb1_cipher +# define aesni_cfb1_cipher aes_cfb1_cipher static int aesni_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t len); -# define aesni_ctr_cipher aes_ctr_cipher +# define aesni_ctr_cipher aes_ctr_cipher static int aesni_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t len); @@ -298,7 +346,7 @@ static int aesni_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, if (!iv && !key) return 1; if (key) { - aesni_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); + aesni_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, (block128_f) aesni_encrypt); gctx->ctr = (ctr128_f) aesni_ctr32_encrypt_blocks; /* @@ -323,7 +371,7 @@ static int aesni_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, return 1; } -# define aesni_gcm_cipher aes_gcm_cipher +# define aesni_gcm_cipher aes_gcm_cipher static int aesni_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t len); @@ -337,17 +385,17 @@ static int aesni_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, if (key) { /* key_len is two AES keys */ if (enc) { - aesni_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1); + aesni_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); xctx->xts.block1 = (block128_f) aesni_encrypt; xctx->stream = aesni_xts_encrypt; } else { - aesni_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1); + aesni_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); xctx->xts.block1 = (block128_f) aesni_decrypt; xctx->stream = aesni_xts_decrypt; } aesni_set_encrypt_key(key + ctx->key_len / 2, - ctx->key_len * 4, &xctx->ks2); + ctx->key_len * 4, &xctx->ks2.ks); xctx->xts.block2 = (block128_f) aesni_encrypt; xctx->xts.key1 = &xctx->ks1; @@ -361,7 +409,7 @@ static int aesni_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, return 1; } -# define aesni_xts_cipher aes_xts_cipher +# define aesni_xts_cipher aes_xts_cipher static int aesni_xts_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t len); @@ -372,7 +420,7 @@ static int aesni_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, if (!iv && !key) return 1; if (key) { - aesni_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks); + aesni_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks.ks); CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, &cctx->ks, (block128_f) aesni_encrypt); cctx->str = enc ? (ccm128_f) aesni_ccm64_encrypt_blocks : @@ -386,11 +434,11 @@ static int aesni_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, return 1; } -# define aesni_ccm_cipher aes_ccm_cipher +# define aesni_ccm_cipher aes_ccm_cipher static int aesni_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t len); -# define BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags) \ +# define BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags) \ static const EVP_CIPHER aesni_##keylen##_##mode = { \ nid##_##keylen##_##nmode,blocksize,keylen/8,ivlen, \ flags|EVP_CIPH_##MODE##_MODE, \ @@ -411,7 +459,7 @@ static const EVP_CIPHER aes_##keylen##_##mode = { \ const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \ { return AESNI_CAPABLE?&aesni_##keylen##_##mode:&aes_##keylen##_##mode; } -# define BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags) \ +# define BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags) \ static const EVP_CIPHER aesni_##keylen##_##mode = { \ nid##_##keylen##_##mode,blocksize, \ (EVP_CIPH_##MODE##_MODE==EVP_CIPH_XTS_MODE?2:1)*keylen/8, ivlen, \ @@ -433,9 +481,378 @@ static const EVP_CIPHER aes_##keylen##_##mode = { \ const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \ { return AESNI_CAPABLE?&aesni_##keylen##_##mode:&aes_##keylen##_##mode; } +# elif defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) + +# include "sparc_arch.h" + +extern unsigned int OPENSSL_sparcv9cap_P[]; + +# define SPARC_AES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_AES) + +void aes_t4_set_encrypt_key(const unsigned char *key, int bits, AES_KEY *ks); +void aes_t4_set_decrypt_key(const unsigned char *key, int bits, AES_KEY *ks); +void aes_t4_encrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); +void aes_t4_decrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); +/* + * Key-length specific subroutines were chosen for following reason. + * Each SPARC T4 core can execute up to 8 threads which share core's + * resources. Loading as much key material to registers allows to + * minimize references to shared memory interface, as well as amount + * of instructions in inner loops [much needed on T4]. But then having + * non-key-length specific routines would require conditional branches + * either in inner loops or on subroutines' entries. Former is hardly + * acceptable, while latter means code size increase to size occupied + * by multiple key-length specfic subroutines, so why fight? + */ +void aes128_t4_cbc_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const AES_KEY *key, + unsigned char *ivec); +void aes128_t4_cbc_decrypt(const unsigned char *in, unsigned char *out, + size_t len, const AES_KEY *key, + unsigned char *ivec); +void aes192_t4_cbc_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const AES_KEY *key, + unsigned char *ivec); +void aes192_t4_cbc_decrypt(const unsigned char *in, unsigned char *out, + size_t len, const AES_KEY *key, + unsigned char *ivec); +void aes256_t4_cbc_encrypt(const unsigned char *in, unsigned char *out, + size_t len, const AES_KEY *key, + unsigned char *ivec); +void aes256_t4_cbc_decrypt(const unsigned char *in, unsigned char *out, + size_t len, const AES_KEY *key, + unsigned char *ivec); +void aes128_t4_ctr32_encrypt(const unsigned char *in, unsigned char *out, + size_t blocks, const AES_KEY *key, + unsigned char *ivec); +void aes192_t4_ctr32_encrypt(const unsigned char *in, unsigned char *out, + size_t blocks, const AES_KEY *key, + unsigned char *ivec); +void aes256_t4_ctr32_encrypt(const unsigned char *in, unsigned char *out, + size_t blocks, const AES_KEY *key, + unsigned char *ivec); +void aes128_t4_xts_encrypt(const unsigned char *in, unsigned char *out, + size_t blocks, const AES_KEY *key1, + const AES_KEY *key2, const unsigned char *ivec); +void aes128_t4_xts_decrypt(const unsigned char *in, unsigned char *out, + size_t blocks, const AES_KEY *key1, + const AES_KEY *key2, const unsigned char *ivec); +void aes256_t4_xts_encrypt(const unsigned char *in, unsigned char *out, + size_t blocks, const AES_KEY *key1, + const AES_KEY *key2, const unsigned char *ivec); +void aes256_t4_xts_decrypt(const unsigned char *in, unsigned char *out, + size_t blocks, const AES_KEY *key1, + const AES_KEY *key2, const unsigned char *ivec); + +static int aes_t4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, + const unsigned char *iv, int enc) +{ + int ret, mode, bits; + EVP_AES_KEY *dat = (EVP_AES_KEY *) ctx->cipher_data; + + mode = ctx->cipher->flags & EVP_CIPH_MODE; + bits = ctx->key_len * 8; + if ((mode == EVP_CIPH_ECB_MODE || mode == EVP_CIPH_CBC_MODE) + && !enc) { + ret = 0; + aes_t4_set_decrypt_key(key, bits, ctx->cipher_data); + dat->block = (block128_f) aes_t4_decrypt; + switch (bits) { + case 128: + dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? + (cbc128_f) aes128_t4_cbc_decrypt : NULL; + break; + case 192: + dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? + (cbc128_f) aes192_t4_cbc_decrypt : NULL; + break; + case 256: + dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? + (cbc128_f) aes256_t4_cbc_decrypt : NULL; + break; + default: + ret = -1; + } + } else { + ret = 0; + aes_t4_set_encrypt_key(key, bits, ctx->cipher_data); + dat->block = (block128_f) aes_t4_encrypt; + switch (bits) { + case 128: + if (mode == EVP_CIPH_CBC_MODE) + dat->stream.cbc = (cbc128_f) aes128_t4_cbc_encrypt; + else if (mode == EVP_CIPH_CTR_MODE) + dat->stream.ctr = (ctr128_f) aes128_t4_ctr32_encrypt; + else + dat->stream.cbc = NULL; + break; + case 192: + if (mode == EVP_CIPH_CBC_MODE) + dat->stream.cbc = (cbc128_f) aes192_t4_cbc_encrypt; + else if (mode == EVP_CIPH_CTR_MODE) + dat->stream.ctr = (ctr128_f) aes192_t4_ctr32_encrypt; + else + dat->stream.cbc = NULL; + break; + case 256: + if (mode == EVP_CIPH_CBC_MODE) + dat->stream.cbc = (cbc128_f) aes256_t4_cbc_encrypt; + else if (mode == EVP_CIPH_CTR_MODE) + dat->stream.ctr = (ctr128_f) aes256_t4_ctr32_encrypt; + else + dat->stream.cbc = NULL; + break; + default: + ret = -1; + } + } + + if (ret < 0) { + EVPerr(EVP_F_AES_T4_INIT_KEY, EVP_R_AES_KEY_SETUP_FAILED); + return 0; + } + + return 1; +} + +# define aes_t4_cbc_cipher aes_cbc_cipher +static int aes_t4_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t len); + +# define aes_t4_ecb_cipher aes_ecb_cipher +static int aes_t4_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t len); + +# define aes_t4_ofb_cipher aes_ofb_cipher +static int aes_t4_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t len); + +# define aes_t4_cfb_cipher aes_cfb_cipher +static int aes_t4_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t len); + +# define aes_t4_cfb8_cipher aes_cfb8_cipher +static int aes_t4_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t len); + +# define aes_t4_cfb1_cipher aes_cfb1_cipher +static int aes_t4_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t len); + +# define aes_t4_ctr_cipher aes_ctr_cipher +static int aes_t4_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t len); + +static int aes_t4_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, + const unsigned char *iv, int enc) +{ + EVP_AES_GCM_CTX *gctx = ctx->cipher_data; + if (!iv && !key) + return 1; + if (key) { + int bits = ctx->key_len * 8; + aes_t4_set_encrypt_key(key, bits, &gctx->ks.ks); + CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, + (block128_f) aes_t4_encrypt); + switch (bits) { + case 128: + gctx->ctr = (ctr128_f) aes128_t4_ctr32_encrypt; + break; + case 192: + gctx->ctr = (ctr128_f) aes192_t4_ctr32_encrypt; + break; + case 256: + gctx->ctr = (ctr128_f) aes256_t4_ctr32_encrypt; + break; + default: + return 0; + } + /* + * If we have an iv can set it directly, otherwise use saved IV. + */ + if (iv == NULL && gctx->iv_set) + iv = gctx->iv; + if (iv) { + CRYPTO_gcm128_setiv(&gctx->gcm, iv, gctx->ivlen); + gctx->iv_set = 1; + } + gctx->key_set = 1; + } else { + /* If key set use IV, otherwise copy */ + if (gctx->key_set) + CRYPTO_gcm128_setiv(&gctx->gcm, iv, gctx->ivlen); + else + memcpy(gctx->iv, iv, gctx->ivlen); + gctx->iv_set = 1; + gctx->iv_gen = 0; + } + return 1; +} + +# define aes_t4_gcm_cipher aes_gcm_cipher +static int aes_t4_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t len); + +static int aes_t4_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, + const unsigned char *iv, int enc) +{ + EVP_AES_XTS_CTX *xctx = ctx->cipher_data; + if (!iv && !key) + return 1; + + if (key) { + int bits = ctx->key_len * 4; + xctx->stream = NULL; + /* key_len is two AES keys */ + if (enc) { + aes_t4_set_encrypt_key(key, bits, &xctx->ks1.ks); + xctx->xts.block1 = (block128_f) aes_t4_encrypt; + switch (bits) { + case 128: + xctx->stream = aes128_t4_xts_encrypt; + break; +# if 0 /* not yet */ + case 192: + xctx->stream = aes192_t4_xts_encrypt; + break; +# endif + case 256: + xctx->stream = aes256_t4_xts_encrypt; + break; + default: + return 0; + } + } else { + aes_t4_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); + xctx->xts.block1 = (block128_f) aes_t4_decrypt; + switch (bits) { + case 128: + xctx->stream = aes128_t4_xts_decrypt; + break; +# if 0 /* not yet */ + case 192: + xctx->stream = aes192_t4_xts_decrypt; + break; +# endif + case 256: + xctx->stream = aes256_t4_xts_decrypt; + break; + default: + return 0; + } + } + + aes_t4_set_encrypt_key(key + ctx->key_len / 2, + ctx->key_len * 4, &xctx->ks2.ks); + xctx->xts.block2 = (block128_f) aes_t4_encrypt; + + xctx->xts.key1 = &xctx->ks1; + } + + if (iv) { + xctx->xts.key2 = &xctx->ks2; + memcpy(ctx->iv, iv, 16); + } + + return 1; +} + +# define aes_t4_xts_cipher aes_xts_cipher +static int aes_t4_xts_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t len); + +static int aes_t4_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, + const unsigned char *iv, int enc) +{ + EVP_AES_CCM_CTX *cctx = ctx->cipher_data; + if (!iv && !key) + return 1; + if (key) { + int bits = ctx->key_len * 8; + aes_t4_set_encrypt_key(key, bits, &cctx->ks.ks); + CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, + &cctx->ks, (block128_f) aes_t4_encrypt); +# if 0 /* not yet */ + switch (bits) { + case 128: + cctx->str = enc ? (ccm128_f) aes128_t4_ccm64_encrypt : + (ccm128_f) ae128_t4_ccm64_decrypt; + break; + case 192: + cctx->str = enc ? (ccm128_f) aes192_t4_ccm64_encrypt : + (ccm128_f) ae192_t4_ccm64_decrypt; + break; + case 256: + cctx->str = enc ? (ccm128_f) aes256_t4_ccm64_encrypt : + (ccm128_f) ae256_t4_ccm64_decrypt; + break; + default: + return 0; + } # else + cctx->str = NULL; +# endif + cctx->key_set = 1; + } + if (iv) { + memcpy(ctx->iv, iv, 15 - cctx->L); + cctx->iv_set = 1; + } + return 1; +} -# define BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags) \ +# define aes_t4_ccm_cipher aes_ccm_cipher +static int aes_t4_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t len); + +# define BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags) \ +static const EVP_CIPHER aes_t4_##keylen##_##mode = { \ + nid##_##keylen##_##nmode,blocksize,keylen/8,ivlen, \ + flags|EVP_CIPH_##MODE##_MODE, \ + aes_t4_init_key, \ + aes_t4_##mode##_cipher, \ + NULL, \ + sizeof(EVP_AES_KEY), \ + NULL,NULL,NULL,NULL }; \ +static const EVP_CIPHER aes_##keylen##_##mode = { \ + nid##_##keylen##_##nmode,blocksize, \ + keylen/8,ivlen, \ + flags|EVP_CIPH_##MODE##_MODE, \ + aes_init_key, \ + aes_##mode##_cipher, \ + NULL, \ + sizeof(EVP_AES_KEY), \ + NULL,NULL,NULL,NULL }; \ +const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \ +{ return SPARC_AES_CAPABLE?&aes_t4_##keylen##_##mode:&aes_##keylen##_##mode; } + +# define BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags) \ +static const EVP_CIPHER aes_t4_##keylen##_##mode = { \ + nid##_##keylen##_##mode,blocksize, \ + (EVP_CIPH_##MODE##_MODE==EVP_CIPH_XTS_MODE?2:1)*keylen/8, ivlen, \ + flags|EVP_CIPH_##MODE##_MODE, \ + aes_t4_##mode##_init_key, \ + aes_t4_##mode##_cipher, \ + aes_##mode##_cleanup, \ + sizeof(EVP_AES_##MODE##_CTX), \ + NULL,NULL,aes_##mode##_ctrl,NULL }; \ +static const EVP_CIPHER aes_##keylen##_##mode = { \ + nid##_##keylen##_##mode,blocksize, \ + (EVP_CIPH_##MODE##_MODE==EVP_CIPH_XTS_MODE?2:1)*keylen/8, ivlen, \ + flags|EVP_CIPH_##MODE##_MODE, \ + aes_##mode##_init_key, \ + aes_##mode##_cipher, \ + aes_##mode##_cleanup, \ + sizeof(EVP_AES_##MODE##_CTX), \ + NULL,NULL,aes_##mode##_ctrl,NULL }; \ +const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \ +{ return SPARC_AES_CAPABLE?&aes_t4_##keylen##_##mode:&aes_##keylen##_##mode; } + +# else + +# define BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags) \ static const EVP_CIPHER aes_##keylen##_##mode = { \ nid##_##keylen##_##nmode,blocksize,keylen/8,ivlen, \ flags|EVP_CIPH_##MODE##_MODE, \ @@ -447,7 +864,7 @@ static const EVP_CIPHER aes_##keylen##_##mode = { \ const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \ { return &aes_##keylen##_##mode; } -# define BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags) \ +# define BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags) \ static const EVP_CIPHER aes_##keylen##_##mode = { \ nid##_##keylen##_##mode,blocksize, \ (EVP_CIPH_##MODE##_MODE==EVP_CIPH_XTS_MODE?2:1)*keylen/8, ivlen, \ @@ -459,9 +876,42 @@ static const EVP_CIPHER aes_##keylen##_##mode = { \ NULL,NULL,aes_##mode##_ctrl,NULL }; \ const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \ { return &aes_##keylen##_##mode; } +# endif + +# if defined(OPENSSL_CPUID_OBJ) && (defined(__arm__) || defined(__arm) || defined(__aarch64__)) +# include "arm_arch.h" +# if __ARM_MAX_ARCH__>=7 +# if defined(BSAES_ASM) +# define BSAES_CAPABLE (OPENSSL_armcap_P & ARMV7_NEON) +# endif +# define HWAES_CAPABLE (OPENSSL_armcap_P & ARMV8_AES) +# define HWAES_set_encrypt_key aes_v8_set_encrypt_key +# define HWAES_set_decrypt_key aes_v8_set_decrypt_key +# define HWAES_encrypt aes_v8_encrypt +# define HWAES_decrypt aes_v8_decrypt +# define HWAES_cbc_encrypt aes_v8_cbc_encrypt +# define HWAES_ctr32_encrypt_blocks aes_v8_ctr32_encrypt_blocks # endif +# endif + +# if defined(HWAES_CAPABLE) +int HWAES_set_encrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); +int HWAES_set_decrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); +void HWAES_encrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); +void HWAES_decrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); +void HWAES_cbc_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, const int enc); +void HWAES_ctr32_encrypt_blocks(const unsigned char *in, unsigned char *out, + size_t len, const AES_KEY *key, + const unsigned char ivec[16]); +# endif -# define BLOCK_CIPHER_generic_pack(nid,keylen,flags) \ +# define BLOCK_CIPHER_generic_pack(nid,keylen,flags) \ BLOCK_CIPHER_generic(nid,keylen,16,16,cbc,cbc,CBC,flags|EVP_CIPH_FLAG_DEFAULT_ASN1) \ BLOCK_CIPHER_generic(nid,keylen,16,0,ecb,ecb,ECB,flags|EVP_CIPH_FLAG_DEFAULT_ASN1) \ BLOCK_CIPHER_generic(nid,keylen,1,16,ofb128,ofb,OFB,flags|EVP_CIPH_FLAG_DEFAULT_ASN1) \ @@ -479,51 +929,80 @@ static int aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, mode = ctx->cipher->flags & EVP_CIPH_MODE; if ((mode == EVP_CIPH_ECB_MODE || mode == EVP_CIPH_CBC_MODE) && !enc) -# ifdef BSAES_CAPABLE +# ifdef HWAES_CAPABLE + if (HWAES_CAPABLE) { + ret = HWAES_set_decrypt_key(key, ctx->key_len * 8, &dat->ks.ks); + dat->block = (block128_f) HWAES_decrypt; + dat->stream.cbc = NULL; +# ifdef HWAES_cbc_encrypt + if (mode == EVP_CIPH_CBC_MODE) + dat->stream.cbc = (cbc128_f) HWAES_cbc_encrypt; +# endif + } else +# endif +# ifdef BSAES_CAPABLE if (BSAES_CAPABLE && mode == EVP_CIPH_CBC_MODE) { - ret = AES_set_decrypt_key(key, ctx->key_len * 8, &dat->ks); + ret = AES_set_decrypt_key(key, ctx->key_len * 8, &dat->ks.ks); dat->block = (block128_f) AES_decrypt; dat->stream.cbc = (cbc128_f) bsaes_cbc_encrypt; } else -# endif -# ifdef VPAES_CAPABLE +# endif +# ifdef VPAES_CAPABLE if (VPAES_CAPABLE) { - ret = vpaes_set_decrypt_key(key, ctx->key_len * 8, &dat->ks); + ret = vpaes_set_decrypt_key(key, ctx->key_len * 8, &dat->ks.ks); dat->block = (block128_f) vpaes_decrypt; dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? (cbc128_f) vpaes_cbc_encrypt : NULL; } else -# endif +# endif { - ret = AES_set_decrypt_key(key, ctx->key_len * 8, &dat->ks); + ret = AES_set_decrypt_key(key, ctx->key_len * 8, &dat->ks.ks); dat->block = (block128_f) AES_decrypt; dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? (cbc128_f) AES_cbc_encrypt : NULL; } else -# ifdef BSAES_CAPABLE +# ifdef HWAES_CAPABLE + if (HWAES_CAPABLE) { + ret = HWAES_set_encrypt_key(key, ctx->key_len * 8, &dat->ks.ks); + dat->block = (block128_f) HWAES_encrypt; + dat->stream.cbc = NULL; +# ifdef HWAES_cbc_encrypt + if (mode == EVP_CIPH_CBC_MODE) + dat->stream.cbc = (cbc128_f) HWAES_cbc_encrypt; + else +# endif +# ifdef HWAES_ctr32_encrypt_blocks + if (mode == EVP_CIPH_CTR_MODE) + dat->stream.ctr = (ctr128_f) HWAES_ctr32_encrypt_blocks; + else +# endif + (void)0; /* terminate potentially open 'else' */ + } else +# endif +# ifdef BSAES_CAPABLE if (BSAES_CAPABLE && mode == EVP_CIPH_CTR_MODE) { - ret = AES_set_encrypt_key(key, ctx->key_len * 8, &dat->ks); + ret = AES_set_encrypt_key(key, ctx->key_len * 8, &dat->ks.ks); dat->block = (block128_f) AES_encrypt; dat->stream.ctr = (ctr128_f) bsaes_ctr32_encrypt_blocks; } else -# endif -# ifdef VPAES_CAPABLE +# endif +# ifdef VPAES_CAPABLE if (VPAES_CAPABLE) { - ret = vpaes_set_encrypt_key(key, ctx->key_len * 8, &dat->ks); + ret = vpaes_set_encrypt_key(key, ctx->key_len * 8, &dat->ks.ks); dat->block = (block128_f) vpaes_encrypt; dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? (cbc128_f) vpaes_cbc_encrypt : NULL; } else -# endif +# endif { - ret = AES_set_encrypt_key(key, ctx->key_len * 8, &dat->ks); + ret = AES_set_encrypt_key(key, ctx->key_len * 8, &dat->ks.ks); dat->block = (block128_f) AES_encrypt; dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? (cbc128_f) AES_cbc_encrypt : NULL; -# ifdef AES_CTR_ASM +# ifdef AES_CTR_ASM if (mode == EVP_CIPH_CTR_MODE) dat->stream.ctr = (ctr128_f) AES_ctr32_encrypt; -# endif +# endif } if (ret < 0) { @@ -544,7 +1023,7 @@ static int aes_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, else if (ctx->encrypt) CRYPTO_cbc128_encrypt(in, out, len, &dat->ks, ctx->iv, dat->block); else - CRYPTO_cbc128_encrypt(in, out, len, &dat->ks, ctx->iv, dat->block); + CRYPTO_cbc128_decrypt(in, out, len, &dat->ks, ctx->iv, dat->block); return 1; } @@ -680,11 +1159,6 @@ static int aes_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr) case EVP_CTRL_GCM_SET_IVLEN: if (arg <= 0) return 0; -# ifdef OPENSSL_FIPS - if (FIPS_module_mode() && !(c->flags & EVP_CIPH_FLAG_NON_FIPS_ALLOW) - && arg < 12) - return 0; -# endif /* Allocate memory for IV if needed */ if ((arg > EVP_MAX_IV_LENGTH) && (arg > gctx->ivlen)) { if (gctx->iv != c->iv) @@ -805,34 +1279,47 @@ static int aes_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, return 1; if (key) { do { -# ifdef BSAES_CAPABLE +# ifdef HWAES_CAPABLE + if (HWAES_CAPABLE) { + HWAES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); + CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, + (block128_f) HWAES_encrypt); +# ifdef HWAES_ctr32_encrypt_blocks + gctx->ctr = (ctr128_f) HWAES_ctr32_encrypt_blocks; +# else + gctx->ctr = NULL; +# endif + break; + } else +# endif +# ifdef BSAES_CAPABLE if (BSAES_CAPABLE) { - AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); + AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, (block128_f) AES_encrypt); gctx->ctr = (ctr128_f) bsaes_ctr32_encrypt_blocks; break; } else -# endif -# ifdef VPAES_CAPABLE +# endif +# ifdef VPAES_CAPABLE if (VPAES_CAPABLE) { - vpaes_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); + vpaes_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, (block128_f) vpaes_encrypt); gctx->ctr = NULL; break; } else -# endif +# endif (void)0; /* terminate potentially open 'else' */ - AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); + AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, (block128_f) AES_encrypt); -# ifdef AES_CTR_ASM +# ifdef AES_CTR_ASM gctx->ctr = (ctr128_f) AES_ctr32_encrypt; -# else +# else gctx->ctr = NULL; -# endif +# endif } while (0); /* @@ -891,11 +1378,38 @@ static int aes_gcm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, if (ctx->encrypt) { /* Encrypt payload */ if (gctx->ctr) { + size_t bulk = 0; +# if defined(AES_GCM_ASM) + if (len >= 32 && AES_GCM_ASM(gctx)) { + if (CRYPTO_gcm128_encrypt(&gctx->gcm, NULL, NULL, 0)) + return -1; + + bulk = AES_gcm_encrypt(in, out, len, + gctx->gcm.key, + gctx->gcm.Yi.c, gctx->gcm.Xi.u); + gctx->gcm.len.u[1] += bulk; + } +# endif if (CRYPTO_gcm128_encrypt_ctr32(&gctx->gcm, - in, out, len, gctx->ctr)) + in + bulk, + out + bulk, + len - bulk, gctx->ctr)) goto err; } else { - if (CRYPTO_gcm128_encrypt(&gctx->gcm, in, out, len)) + size_t bulk = 0; +# if defined(AES_GCM_ASM2) + if (len >= 32 && AES_GCM_ASM2(gctx)) { + if (CRYPTO_gcm128_encrypt(&gctx->gcm, NULL, NULL, 0)) + return -1; + + bulk = AES_gcm_encrypt(in, out, len, + gctx->gcm.key, + gctx->gcm.Yi.c, gctx->gcm.Xi.u); + gctx->gcm.len.u[1] += bulk; + } +# endif + if (CRYPTO_gcm128_encrypt(&gctx->gcm, + in + bulk, out + bulk, len - bulk)) goto err; } out += len; @@ -905,11 +1419,38 @@ static int aes_gcm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, } else { /* Decrypt */ if (gctx->ctr) { + size_t bulk = 0; +# if defined(AES_GCM_ASM) + if (len >= 16 && AES_GCM_ASM(gctx)) { + if (CRYPTO_gcm128_decrypt(&gctx->gcm, NULL, NULL, 0)) + return -1; + + bulk = AES_gcm_decrypt(in, out, len, + gctx->gcm.key, + gctx->gcm.Yi.c, gctx->gcm.Xi.u); + gctx->gcm.len.u[1] += bulk; + } +# endif if (CRYPTO_gcm128_decrypt_ctr32(&gctx->gcm, - in, out, len, gctx->ctr)) + in + bulk, + out + bulk, + len - bulk, gctx->ctr)) goto err; } else { - if (CRYPTO_gcm128_decrypt(&gctx->gcm, in, out, len)) + size_t bulk = 0; +# if defined(AES_GCM_ASM2) + if (len >= 16 && AES_GCM_ASM2(gctx)) { + if (CRYPTO_gcm128_decrypt(&gctx->gcm, NULL, NULL, 0)) + return -1; + + bulk = AES_gcm_decrypt(in, out, len, + gctx->gcm.key, + gctx->gcm.Yi.c, gctx->gcm.Xi.u); + gctx->gcm.len.u[1] += bulk; + } +# endif + if (CRYPTO_gcm128_decrypt(&gctx->gcm, + in + bulk, out + bulk, len - bulk)) goto err; } /* Retrieve tag */ @@ -947,20 +1488,90 @@ static int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, return -1; } else if (ctx->encrypt) { if (gctx->ctr) { + size_t bulk = 0; +# if defined(AES_GCM_ASM) + if (len >= 32 && AES_GCM_ASM(gctx)) { + size_t res = (16 - gctx->gcm.mres) % 16; + + if (CRYPTO_gcm128_encrypt(&gctx->gcm, in, out, res)) + return -1; + + bulk = AES_gcm_encrypt(in + res, + out + res, len - res, + gctx->gcm.key, gctx->gcm.Yi.c, + gctx->gcm.Xi.u); + gctx->gcm.len.u[1] += bulk; + bulk += res; + } +# endif if (CRYPTO_gcm128_encrypt_ctr32(&gctx->gcm, - in, out, len, gctx->ctr)) + in + bulk, + out + bulk, + len - bulk, gctx->ctr)) return -1; } else { - if (CRYPTO_gcm128_encrypt(&gctx->gcm, in, out, len)) + size_t bulk = 0; +# if defined(AES_GCM_ASM2) + if (len >= 32 && AES_GCM_ASM2(gctx)) { + size_t res = (16 - gctx->gcm.mres) % 16; + + if (CRYPTO_gcm128_encrypt(&gctx->gcm, in, out, res)) + return -1; + + bulk = AES_gcm_encrypt(in + res, + out + res, len - res, + gctx->gcm.key, gctx->gcm.Yi.c, + gctx->gcm.Xi.u); + gctx->gcm.len.u[1] += bulk; + bulk += res; + } +# endif + if (CRYPTO_gcm128_encrypt(&gctx->gcm, + in + bulk, out + bulk, len - bulk)) return -1; } } else { if (gctx->ctr) { + size_t bulk = 0; +# if defined(AES_GCM_ASM) + if (len >= 16 && AES_GCM_ASM(gctx)) { + size_t res = (16 - gctx->gcm.mres) % 16; + + if (CRYPTO_gcm128_decrypt(&gctx->gcm, in, out, res)) + return -1; + + bulk = AES_gcm_decrypt(in + res, + out + res, len - res, + gctx->gcm.key, + gctx->gcm.Yi.c, gctx->gcm.Xi.u); + gctx->gcm.len.u[1] += bulk; + bulk += res; + } +# endif if (CRYPTO_gcm128_decrypt_ctr32(&gctx->gcm, - in, out, len, gctx->ctr)) + in + bulk, + out + bulk, + len - bulk, gctx->ctr)) return -1; } else { - if (CRYPTO_gcm128_decrypt(&gctx->gcm, in, out, len)) + size_t bulk = 0; +# if defined(AES_GCM_ASM2) + if (len >= 16 && AES_GCM_ASM2(gctx)) { + size_t res = (16 - gctx->gcm.mres) % 16; + + if (CRYPTO_gcm128_decrypt(&gctx->gcm, in, out, res)) + return -1; + + bulk = AES_gcm_decrypt(in + res, + out + res, len - res, + gctx->gcm.key, + gctx->gcm.Yi.c, gctx->gcm.Xi.u); + gctx->gcm.len.u[1] += bulk; + bulk += res; + } +# endif + if (CRYPTO_gcm128_decrypt(&gctx->gcm, + in + bulk, out + bulk, len - bulk)) return -1; } } @@ -983,7 +1594,7 @@ static int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, } -# define CUSTOM_FLAGS (EVP_CIPH_FLAG_DEFAULT_ASN1 \ +# define CUSTOM_FLAGS (EVP_CIPH_FLAG_DEFAULT_ASN1 \ | EVP_CIPH_CUSTOM_IV | EVP_CIPH_FLAG_CUSTOM_CIPHER \ | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CTRL_INIT \ | EVP_CIPH_CUSTOM_COPY) @@ -1032,47 +1643,69 @@ static int aes_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, if (key) do { -# ifdef AES_XTS_ASM +# ifdef AES_XTS_ASM xctx->stream = enc ? AES_xts_encrypt : AES_xts_decrypt; -# else +# else xctx->stream = NULL; -# endif +# endif /* key_len is two AES keys */ -# ifdef BSAES_CAPABLE +# ifdef HWAES_CAPABLE + if (HWAES_CAPABLE) { + if (enc) { + HWAES_set_encrypt_key(key, ctx->key_len * 4, + &xctx->ks1.ks); + xctx->xts.block1 = (block128_f) HWAES_encrypt; + } else { + HWAES_set_decrypt_key(key, ctx->key_len * 4, + &xctx->ks1.ks); + xctx->xts.block1 = (block128_f) HWAES_decrypt; + } + + HWAES_set_encrypt_key(key + ctx->key_len / 2, + ctx->key_len * 4, &xctx->ks2.ks); + xctx->xts.block2 = (block128_f) HWAES_encrypt; + + xctx->xts.key1 = &xctx->ks1; + break; + } else +# endif +# ifdef BSAES_CAPABLE if (BSAES_CAPABLE) xctx->stream = enc ? bsaes_xts_encrypt : bsaes_xts_decrypt; else -# endif -# ifdef VPAES_CAPABLE +# endif +# ifdef VPAES_CAPABLE if (VPAES_CAPABLE) { if (enc) { - vpaes_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1); + vpaes_set_encrypt_key(key, ctx->key_len * 4, + &xctx->ks1.ks); xctx->xts.block1 = (block128_f) vpaes_encrypt; } else { - vpaes_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1); + vpaes_set_decrypt_key(key, ctx->key_len * 4, + &xctx->ks1.ks); xctx->xts.block1 = (block128_f) vpaes_decrypt; } vpaes_set_encrypt_key(key + ctx->key_len / 2, - ctx->key_len * 4, &xctx->ks2); + ctx->key_len * 4, &xctx->ks2.ks); xctx->xts.block2 = (block128_f) vpaes_encrypt; xctx->xts.key1 = &xctx->ks1; break; } else -# endif +# endif (void)0; /* terminate potentially open 'else' */ if (enc) { - AES_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1); + AES_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); xctx->xts.block1 = (block128_f) AES_encrypt; } else { - AES_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1); + AES_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); xctx->xts.block1 = (block128_f) AES_decrypt; } AES_set_encrypt_key(key + ctx->key_len / 2, - ctx->key_len * 4, &xctx->ks2); + ctx->key_len * 4, &xctx->ks2.ks); xctx->xts.block2 = (block128_f) AES_encrypt; xctx->xts.key1 = &xctx->ks1; @@ -1094,14 +1727,6 @@ static int aes_xts_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, return 0; if (!out || !in || len < AES_BLOCK_SIZE) return 0; -# ifdef OPENSSL_FIPS - /* Requirement of SP800-38E */ - if (FIPS_module_mode() && !(ctx->flags & EVP_CIPH_FLAG_NON_FIPS_ALLOW) && - (len > (1UL << 20) * 16)) { - EVPerr(EVP_F_AES_XTS_CIPHER, EVP_R_TOO_LARGE); - return 0; - } -# endif if (xctx->stream) (*xctx->stream) (in, out, len, xctx->xts.key1, xctx->xts.key2, ctx->iv); @@ -1111,9 +1736,9 @@ static int aes_xts_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, return 1; } -# define aes_xts_cleanup NULL +# define aes_xts_cleanup NULL -# define XTS_FLAGS (EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CUSTOM_IV \ +# define XTS_FLAGS (EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CUSTOM_IV \ | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CTRL_INIT \ | EVP_CIPH_CUSTOM_COPY) @@ -1191,17 +1816,28 @@ static int aes_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, return 1; if (key) do { -# ifdef VPAES_CAPABLE +# ifdef HWAES_CAPABLE + if (HWAES_CAPABLE) { + HWAES_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks.ks); + + CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, + &cctx->ks, (block128_f) HWAES_encrypt); + cctx->str = NULL; + cctx->key_set = 1; + break; + } else +# endif +# ifdef VPAES_CAPABLE if (VPAES_CAPABLE) { - vpaes_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks); + vpaes_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks.ks); CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, &cctx->ks, (block128_f) vpaes_encrypt); cctx->str = NULL; cctx->key_set = 1; break; } -# endif - AES_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks); +# endif + AES_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks.ks); CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, &cctx->ks, (block128_f) AES_encrypt); cctx->str = NULL; @@ -1274,7 +1910,7 @@ static int aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, } -# define aes_ccm_cleanup NULL +# define aes_ccm_cleanup NULL BLOCK_CIPHER_custom(NID_aes, 128, 1, 12, ccm, CCM, EVP_CIPH_FLAG_FIPS | CUSTOM_FLAGS) @@ -1282,5 +1918,107 @@ BLOCK_CIPHER_custom(NID_aes, 128, 1, 12, ccm, CCM, EVP_CIPH_FLAG_FIPS | CUSTOM_FLAGS) BLOCK_CIPHER_custom(NID_aes, 256, 1, 12, ccm, CCM, EVP_CIPH_FLAG_FIPS | CUSTOM_FLAGS) -# endif #endif +typedef struct { + union { + double align; + AES_KEY ks; + } ks; + /* Indicates if IV has been set */ + unsigned char *iv; +} EVP_AES_WRAP_CTX; + +static int aes_wrap_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, + const unsigned char *iv, int enc) +{ + EVP_AES_WRAP_CTX *wctx = ctx->cipher_data; + if (!iv && !key) + return 1; + if (key) { + if (ctx->encrypt) + AES_set_encrypt_key(key, ctx->key_len * 8, &wctx->ks.ks); + else + AES_set_decrypt_key(key, ctx->key_len * 8, &wctx->ks.ks); + if (!iv) + wctx->iv = NULL; + } + if (iv) { + memcpy(ctx->iv, iv, 8); + wctx->iv = ctx->iv; + } + return 1; +} + +static int aes_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t inlen) +{ + EVP_AES_WRAP_CTX *wctx = ctx->cipher_data; + size_t rv; + if (!in) + return 0; + if (inlen % 8) + return -1; + if (ctx->encrypt && inlen < 8) + return -1; + if (!ctx->encrypt && inlen < 16) + return -1; + if (!out) { + if (ctx->encrypt) + return inlen + 8; + else + return inlen - 8; + } + if (ctx->encrypt) + rv = CRYPTO_128_wrap(&wctx->ks.ks, wctx->iv, out, in, inlen, + (block128_f) AES_encrypt); + else + rv = CRYPTO_128_unwrap(&wctx->ks.ks, wctx->iv, out, in, inlen, + (block128_f) AES_decrypt); + return rv ? (int)rv : -1; +} + +#define WRAP_FLAGS (EVP_CIPH_WRAP_MODE \ + | EVP_CIPH_CUSTOM_IV | EVP_CIPH_FLAG_CUSTOM_CIPHER \ + | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_FLAG_DEFAULT_ASN1) + +static const EVP_CIPHER aes_128_wrap = { + NID_id_aes128_wrap, + 8, 16, 8, WRAP_FLAGS, + aes_wrap_init_key, aes_wrap_cipher, + NULL, + sizeof(EVP_AES_WRAP_CTX), + NULL, NULL, NULL, NULL +}; + +const EVP_CIPHER *EVP_aes_128_wrap(void) +{ + return &aes_128_wrap; +} + +static const EVP_CIPHER aes_192_wrap = { + NID_id_aes192_wrap, + 8, 24, 8, WRAP_FLAGS, + aes_wrap_init_key, aes_wrap_cipher, + NULL, + sizeof(EVP_AES_WRAP_CTX), + NULL, NULL, NULL, NULL +}; + +const EVP_CIPHER *EVP_aes_192_wrap(void) +{ + return &aes_192_wrap; +} + +static const EVP_CIPHER aes_256_wrap = { + NID_id_aes256_wrap, + 8, 32, 8, WRAP_FLAGS, + aes_wrap_init_key, aes_wrap_cipher, + NULL, + sizeof(EVP_AES_WRAP_CTX), + NULL, NULL, NULL, NULL +}; + +const EVP_CIPHER *EVP_aes_256_wrap(void) +{ + return &aes_256_wrap; +} diff --git a/libs/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c b/libs/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c index d1f5928f..8330964e 100644 --- a/libs/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c +++ b/libs/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c @@ -58,7 +58,8 @@ # include # include # include -# include "evp_locl.h" +# include +# include "modes_lcl.h" # ifndef EVP_CIPH_FLAG_AEAD_CIPHER # define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 @@ -70,6 +71,10 @@ # define EVP_CIPH_FLAG_DEFAULT_ASN1 0 # endif +# if !defined(EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK) +# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0 +# endif + # define TLS1_1_VERSION 0x0302 typedef struct { @@ -89,11 +94,7 @@ typedef struct { defined(_M_AMD64) || defined(_M_X64) || \ defined(__INTEL__) ) -# if defined(__GNUC__) && __GNUC__>=2 && !defined(PEDANTIC) -# define BSWAP(x) ({ unsigned int r=(x); asm ("bswapl %0":"=r"(r):"0"(r)); r; }) -# endif - -extern unsigned int OPENSSL_ia32cap_P[2]; +extern unsigned int OPENSSL_ia32cap_P[]; # define AESNI_CAPABLE (1<<(57-32)) int aesni_set_encrypt_key(const unsigned char *userKey, int bits, @@ -110,6 +111,10 @@ void aesni_cbc_sha1_enc(const void *inp, void *out, size_t blocks, const AES_KEY *key, unsigned char iv[16], SHA_CTX *ctx, const void *in0); +void aesni256_cbc_sha1_dec(const void *inp, void *out, size_t blocks, + const AES_KEY *key, unsigned char iv[16], + SHA_CTX *ctx, const void *in0); + # define data(ctx) ((EVP_AES_HMAC_SHA1 *)(ctx)->cipher_data) static int aesni_cbc_hmac_sha1_init_key(EVP_CIPHER_CTX *ctx, @@ -134,6 +139,7 @@ static int aesni_cbc_hmac_sha1_init_key(EVP_CIPHER_CTX *ctx, } # define STITCHED_CALL +# undef STITCHED_DECRYPT_CALL # if !defined(STITCHED_CALL) # define aes_off 0 @@ -177,6 +183,275 @@ static void sha1_update(SHA_CTX *c, const void *data, size_t len) # endif # define SHA1_Update sha1_update +# if !defined(OPENSSL_NO_MULTIBLOCK) && EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK + +typedef struct { + unsigned int A[8], B[8], C[8], D[8], E[8]; +} SHA1_MB_CTX; +typedef struct { + const unsigned char *ptr; + int blocks; +} HASH_DESC; + +void sha1_multi_block(SHA1_MB_CTX *, const HASH_DESC *, int); + +typedef struct { + const unsigned char *inp; + unsigned char *out; + int blocks; + u64 iv[2]; +} CIPH_DESC; + +void aesni_multi_cbc_encrypt(CIPH_DESC *, void *, int); + +static size_t tls1_1_multi_block_encrypt(EVP_AES_HMAC_SHA1 *key, + unsigned char *out, + const unsigned char *inp, + size_t inp_len, int n4x) +{ /* n4x is 1 or 2 */ + HASH_DESC hash_d[8], edges[8]; + CIPH_DESC ciph_d[8]; + unsigned char storage[sizeof(SHA1_MB_CTX) + 32]; + union { + u64 q[16]; + u32 d[32]; + u8 c[128]; + } blocks[8]; + SHA1_MB_CTX *ctx; + unsigned int frag, last, packlen, i, x4 = 4 * n4x, minblocks, processed = + 0; + size_t ret = 0; + u8 *IVs; +# if defined(BSWAP8) + u64 seqnum; +# endif + + /* ask for IVs in bulk */ + if (RAND_bytes((IVs = blocks[0].c), 16 * x4) <= 0) + return 0; + + ctx = (SHA1_MB_CTX *) (storage + 32 - ((size_t)storage % 32)); /* align */ + + frag = (unsigned int)inp_len >> (1 + n4x); + last = (unsigned int)inp_len + frag - (frag << (1 + n4x)); + if (last > frag && ((last + 13 + 9) % 64) < (x4 - 1)) { + frag++; + last -= x4 - 1; + } + + packlen = 5 + 16 + ((frag + 20 + 16) & -16); + + /* populate descriptors with pointers and IVs */ + hash_d[0].ptr = inp; + ciph_d[0].inp = inp; + /* 5+16 is place for header and explicit IV */ + ciph_d[0].out = out + 5 + 16; + memcpy(ciph_d[0].out - 16, IVs, 16); + memcpy(ciph_d[0].iv, IVs, 16); + IVs += 16; + + for (i = 1; i < x4; i++) { + ciph_d[i].inp = hash_d[i].ptr = hash_d[i - 1].ptr + frag; + ciph_d[i].out = ciph_d[i - 1].out + packlen; + memcpy(ciph_d[i].out - 16, IVs, 16); + memcpy(ciph_d[i].iv, IVs, 16); + IVs += 16; + } + +# if defined(BSWAP8) + memcpy(blocks[0].c, key->md.data, 8); + seqnum = BSWAP8(blocks[0].q[0]); +# endif + for (i = 0; i < x4; i++) { + unsigned int len = (i == (x4 - 1) ? last : frag); +# if !defined(BSWAP8) + unsigned int carry, j; +# endif + + ctx->A[i] = key->md.h0; + ctx->B[i] = key->md.h1; + ctx->C[i] = key->md.h2; + ctx->D[i] = key->md.h3; + ctx->E[i] = key->md.h4; + + /* fix seqnum */ +# if defined(BSWAP8) + blocks[i].q[0] = BSWAP8(seqnum + i); +# else + for (carry = i, j = 8; j--;) { + blocks[i].c[j] = ((u8 *)key->md.data)[j] + carry; + carry = (blocks[i].c[j] - carry) >> (sizeof(carry) * 8 - 1); + } +# endif + blocks[i].c[8] = ((u8 *)key->md.data)[8]; + blocks[i].c[9] = ((u8 *)key->md.data)[9]; + blocks[i].c[10] = ((u8 *)key->md.data)[10]; + /* fix length */ + blocks[i].c[11] = (u8)(len >> 8); + blocks[i].c[12] = (u8)(len); + + memcpy(blocks[i].c + 13, hash_d[i].ptr, 64 - 13); + hash_d[i].ptr += 64 - 13; + hash_d[i].blocks = (len - (64 - 13)) / 64; + + edges[i].ptr = blocks[i].c; + edges[i].blocks = 1; + } + + /* hash 13-byte headers and first 64-13 bytes of inputs */ + sha1_multi_block(ctx, edges, n4x); + /* hash bulk inputs */ +# define MAXCHUNKSIZE 2048 +# if MAXCHUNKSIZE%64 +# error "MAXCHUNKSIZE is not divisible by 64" +# elif MAXCHUNKSIZE + /* + * goal is to minimize pressure on L1 cache by moving in shorter steps, + * so that hashed data is still in the cache by the time we encrypt it + */ + minblocks = ((frag <= last ? frag : last) - (64 - 13)) / 64; + if (minblocks > MAXCHUNKSIZE / 64) { + for (i = 0; i < x4; i++) { + edges[i].ptr = hash_d[i].ptr; + edges[i].blocks = MAXCHUNKSIZE / 64; + ciph_d[i].blocks = MAXCHUNKSIZE / 16; + } + do { + sha1_multi_block(ctx, edges, n4x); + aesni_multi_cbc_encrypt(ciph_d, &key->ks, n4x); + + for (i = 0; i < x4; i++) { + edges[i].ptr = hash_d[i].ptr += MAXCHUNKSIZE; + hash_d[i].blocks -= MAXCHUNKSIZE / 64; + edges[i].blocks = MAXCHUNKSIZE / 64; + ciph_d[i].inp += MAXCHUNKSIZE; + ciph_d[i].out += MAXCHUNKSIZE; + ciph_d[i].blocks = MAXCHUNKSIZE / 16; + memcpy(ciph_d[i].iv, ciph_d[i].out - 16, 16); + } + processed += MAXCHUNKSIZE; + minblocks -= MAXCHUNKSIZE / 64; + } while (minblocks > MAXCHUNKSIZE / 64); + } +# endif +# undef MAXCHUNKSIZE + sha1_multi_block(ctx, hash_d, n4x); + + memset(blocks, 0, sizeof(blocks)); + for (i = 0; i < x4; i++) { + unsigned int len = (i == (x4 - 1) ? last : frag), + off = hash_d[i].blocks * 64; + const unsigned char *ptr = hash_d[i].ptr + off; + + off = (len - processed) - (64 - 13) - off; /* remainder actually */ + memcpy(blocks[i].c, ptr, off); + blocks[i].c[off] = 0x80; + len += 64 + 13; /* 64 is HMAC header */ + len *= 8; /* convert to bits */ + if (off < (64 - 8)) { +# ifdef BSWAP4 + blocks[i].d[15] = BSWAP4(len); +# else + PUTU32(blocks[i].c + 60, len); +# endif + edges[i].blocks = 1; + } else { +# ifdef BSWAP4 + blocks[i].d[31] = BSWAP4(len); +# else + PUTU32(blocks[i].c + 124, len); +# endif + edges[i].blocks = 2; + } + edges[i].ptr = blocks[i].c; + } + + /* hash input tails and finalize */ + sha1_multi_block(ctx, edges, n4x); + + memset(blocks, 0, sizeof(blocks)); + for (i = 0; i < x4; i++) { +# ifdef BSWAP4 + blocks[i].d[0] = BSWAP4(ctx->A[i]); + ctx->A[i] = key->tail.h0; + blocks[i].d[1] = BSWAP4(ctx->B[i]); + ctx->B[i] = key->tail.h1; + blocks[i].d[2] = BSWAP4(ctx->C[i]); + ctx->C[i] = key->tail.h2; + blocks[i].d[3] = BSWAP4(ctx->D[i]); + ctx->D[i] = key->tail.h3; + blocks[i].d[4] = BSWAP4(ctx->E[i]); + ctx->E[i] = key->tail.h4; + blocks[i].c[20] = 0x80; + blocks[i].d[15] = BSWAP4((64 + 20) * 8); +# else + PUTU32(blocks[i].c + 0, ctx->A[i]); + ctx->A[i] = key->tail.h0; + PUTU32(blocks[i].c + 4, ctx->B[i]); + ctx->B[i] = key->tail.h1; + PUTU32(blocks[i].c + 8, ctx->C[i]); + ctx->C[i] = key->tail.h2; + PUTU32(blocks[i].c + 12, ctx->D[i]); + ctx->D[i] = key->tail.h3; + PUTU32(blocks[i].c + 16, ctx->E[i]); + ctx->E[i] = key->tail.h4; + blocks[i].c[20] = 0x80; + PUTU32(blocks[i].c + 60, (64 + 20) * 8); +# endif + edges[i].ptr = blocks[i].c; + edges[i].blocks = 1; + } + + /* finalize MACs */ + sha1_multi_block(ctx, edges, n4x); + + for (i = 0; i < x4; i++) { + unsigned int len = (i == (x4 - 1) ? last : frag), pad, j; + unsigned char *out0 = out; + + memcpy(ciph_d[i].out, ciph_d[i].inp, len - processed); + ciph_d[i].inp = ciph_d[i].out; + + out += 5 + 16 + len; + + /* write MAC */ + PUTU32(out + 0, ctx->A[i]); + PUTU32(out + 4, ctx->B[i]); + PUTU32(out + 8, ctx->C[i]); + PUTU32(out + 12, ctx->D[i]); + PUTU32(out + 16, ctx->E[i]); + out += 20; + len += 20; + + /* pad */ + pad = 15 - len % 16; + for (j = 0; j <= pad; j++) + *(out++) = pad; + len += pad + 1; + + ciph_d[i].blocks = (len - processed) / 16; + len += 16; /* account for explicit iv */ + + /* arrange header */ + out0[0] = ((u8 *)key->md.data)[8]; + out0[1] = ((u8 *)key->md.data)[9]; + out0[2] = ((u8 *)key->md.data)[10]; + out0[3] = (u8)(len >> 8); + out0[4] = (u8)(len); + + ret += len + 5; + inp += frag; + } + + aesni_multi_cbc_encrypt(ciph_d, &key->ks, n4x); + + OPENSSL_cleanse(blocks, sizeof(blocks)); + OPENSSL_cleanse(ctx, sizeof(*ctx)); + + return ret; +} +# endif + static int aesni_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t len) { @@ -257,10 +532,7 @@ static int aesni_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, /* arrange cache line alignment */ pmac = (void *)(((size_t)mac.c + 31) & ((size_t)0 - 32)); - /* decrypt HMAC|padding at once */ - aesni_cbc_encrypt(in, out, len, &key->ks, ctx->iv, 0); - - if (plen) { /* "TLS" mode of operation */ + if (plen != NO_PAYLOAD_LENGTH) { /* "TLS" mode of operation */ size_t inp_len, mask, j, i; unsigned int res, maxpad, pad, bitlen; int ret = 1; @@ -268,17 +540,37 @@ static int aesni_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, unsigned int u[SHA_LBLOCK]; unsigned char c[SHA_CBLOCK]; } *data = (void *)key->md.data; +# if defined(STITCHED_DECRYPT_CALL) + unsigned char tail_iv[AES_BLOCK_SIZE]; + int stitch = 0; +# endif if ((key->aux.tls_aad[plen - 4] << 8 | key->aux.tls_aad[plen - 3]) - >= TLS1_1_VERSION) - iv = AES_BLOCK_SIZE; - - if (len < (iv + SHA_DIGEST_LENGTH + 1)) + >= TLS1_1_VERSION) { + if (len < (AES_BLOCK_SIZE + SHA_DIGEST_LENGTH + 1)) + return 0; + + /* omit explicit iv */ + memcpy(ctx->iv, in, AES_BLOCK_SIZE); + in += AES_BLOCK_SIZE; + out += AES_BLOCK_SIZE; + len -= AES_BLOCK_SIZE; + } else if (len < (SHA_DIGEST_LENGTH + 1)) return 0; - /* omit explicit iv */ - out += iv; - len -= iv; +# if defined(STITCHED_DECRYPT_CALL) + if (len >= 1024 && ctx->key_len == 32) { + /* decrypt last block */ + memcpy(tail_iv, in + len - 2 * AES_BLOCK_SIZE, + AES_BLOCK_SIZE); + aesni_cbc_encrypt(in + len - AES_BLOCK_SIZE, + out + len - AES_BLOCK_SIZE, AES_BLOCK_SIZE, + &key->ks, tail_iv, 0); + stitch = 1; + } else +# endif + /* decrypt HMAC|padding at once */ + aesni_cbc_encrypt(in, out, len, &key->ks, ctx->iv, 0); /* figure out payload length */ pad = out[len - 1]; @@ -298,6 +590,29 @@ static int aesni_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, key->md = key->head; SHA1_Update(&key->md, key->aux.tls_aad, plen); +# if defined(STITCHED_DECRYPT_CALL) + if (stitch) { + blocks = (len - (256 + 32 + SHA_CBLOCK)) / SHA_CBLOCK; + aes_off = len - AES_BLOCK_SIZE - blocks * SHA_CBLOCK; + sha_off = SHA_CBLOCK - plen; + + aesni_cbc_encrypt(in, out, aes_off, &key->ks, ctx->iv, 0); + + SHA1_Update(&key->md, out, sha_off); + aesni256_cbc_sha1_dec(in + aes_off, + out + aes_off, blocks, &key->ks, + ctx->iv, &key->md, out + sha_off); + + sha_off += blocks *= SHA_CBLOCK; + out += sha_off; + len -= sha_off; + inp_len -= sha_off; + + key->md.Nl += (blocks << 3); /* at most 18 bits */ + memcpy(ctx->iv, tail_iv, AES_BLOCK_SIZE); + } +# endif + # if 1 len -= SHA_DIGEST_LENGTH; /* amend mac */ if (len >= (256 + SHA_CBLOCK)) { @@ -311,8 +626,8 @@ static int aesni_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, /* but pretend as if we hashed padded payload */ bitlen = key->md.Nl + (inp_len << 3); /* at most 18 bits */ -# ifdef BSWAP - bitlen = BSWAP(bitlen); +# ifdef BSWAP4 + bitlen = BSWAP4(bitlen); # else mac.c[0] = 0; mac.c[1] = (unsigned char)(bitlen >> 16); @@ -376,12 +691,12 @@ static int aesni_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, pmac->u[3] |= key->md.h3 & mask; pmac->u[4] |= key->md.h4 & mask; -# ifdef BSWAP - pmac->u[0] = BSWAP(pmac->u[0]); - pmac->u[1] = BSWAP(pmac->u[1]); - pmac->u[2] = BSWAP(pmac->u[2]); - pmac->u[3] = BSWAP(pmac->u[3]); - pmac->u[4] = BSWAP(pmac->u[4]); +# ifdef BSWAP4 + pmac->u[0] = BSWAP4(pmac->u[0]); + pmac->u[1] = BSWAP4(pmac->u[1]); + pmac->u[2] = BSWAP4(pmac->u[2]); + pmac->u[3] = BSWAP4(pmac->u[3]); + pmac->u[4] = BSWAP4(pmac->u[4]); # else for (i = 0; i < 5; i++) { res = pmac->u[i]; @@ -458,6 +773,33 @@ static int aesni_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, # endif return ret; } else { +# if defined(STITCHED_DECRYPT_CALL) + if (len >= 1024 && ctx->key_len == 32) { + if (sha_off %= SHA_CBLOCK) + blocks = (len - 3 * SHA_CBLOCK) / SHA_CBLOCK; + else + blocks = (len - 2 * SHA_CBLOCK) / SHA_CBLOCK; + aes_off = len - blocks * SHA_CBLOCK; + + aesni_cbc_encrypt(in, out, aes_off, &key->ks, ctx->iv, 0); + SHA1_Update(&key->md, out, sha_off); + aesni256_cbc_sha1_dec(in + aes_off, + out + aes_off, blocks, &key->ks, + ctx->iv, &key->md, out + sha_off); + + sha_off += blocks *= SHA_CBLOCK; + out += sha_off; + len -= sha_off; + + key->md.Nh += blocks >> 29; + key->md.Nl += blocks <<= 3; + if (key->md.Nl < (unsigned int)blocks) + key->md.Nh++; + } else +# endif + /* decrypt HMAC|padding at once */ + aesni_cbc_encrypt(in, out, len, &key->ks, ctx->iv, 0); + SHA1_Update(&key->md, out, len); } } @@ -531,6 +873,70 @@ static int aesni_cbc_hmac_sha1_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, return SHA_DIGEST_LENGTH; } } +# if !defined(OPENSSL_NO_MULTIBLOCK) && EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK + case EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE: + return (int)(5 + 16 + ((arg + 20 + 16) & -16)); + case EVP_CTRL_TLS1_1_MULTIBLOCK_AAD: + { + EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM *param = + (EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM *) ptr; + unsigned int n4x = 1, x4; + unsigned int frag, last, packlen, inp_len; + + if (arg < (int)sizeof(EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM)) + return -1; + + inp_len = param->inp[11] << 8 | param->inp[12]; + + if (ctx->encrypt) { + if ((param->inp[9] << 8 | param->inp[10]) < TLS1_1_VERSION) + return -1; + + if (inp_len) { + if (inp_len < 4096) + return 0; /* too short */ + + if (inp_len >= 8192 && OPENSSL_ia32cap_P[2] & (1 << 5)) + n4x = 2; /* AVX2 */ + } else if ((n4x = param->interleave / 4) && n4x <= 2) + inp_len = param->len; + else + return -1; + + key->md = key->head; + SHA1_Update(&key->md, param->inp, 13); + + x4 = 4 * n4x; + n4x += 1; + + frag = inp_len >> n4x; + last = inp_len + frag - (frag << n4x); + if (last > frag && ((last + 13 + 9) % 64 < (x4 - 1))) { + frag++; + last -= x4 - 1; + } + + packlen = 5 + 16 + ((frag + 20 + 16) & -16); + packlen = (packlen << n4x) - packlen; + packlen += 5 + 16 + ((last + 20 + 16) & -16); + + param->interleave = x4; + + return (int)packlen; + } else + return -1; /* not yet */ + } + case EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT: + { + EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM *param = + (EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM *) ptr; + + return (int)tls1_1_multi_block_encrypt(key, param->out, + param->inp, param->len, + param->interleave / 4); + } + case EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT: +# endif default: return -1; } @@ -544,7 +950,7 @@ static EVP_CIPHER aesni_128_cbc_hmac_sha1_cipher = { # endif 16, 16, 16, EVP_CIPH_CBC_MODE | EVP_CIPH_FLAG_DEFAULT_ASN1 | - EVP_CIPH_FLAG_AEAD_CIPHER, + EVP_CIPH_FLAG_AEAD_CIPHER | EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK, aesni_cbc_hmac_sha1_init_key, aesni_cbc_hmac_sha1_cipher, NULL, @@ -563,7 +969,7 @@ static EVP_CIPHER aesni_256_cbc_hmac_sha1_cipher = { # endif 16, 32, 16, EVP_CIPH_CBC_MODE | EVP_CIPH_FLAG_DEFAULT_ASN1 | - EVP_CIPH_FLAG_AEAD_CIPHER, + EVP_CIPH_FLAG_AEAD_CIPHER | EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK, aesni_cbc_hmac_sha1_init_key, aesni_cbc_hmac_sha1_cipher, NULL, diff --git a/libs/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c b/libs/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c new file mode 100644 index 00000000..37800213 --- /dev/null +++ b/libs/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c @@ -0,0 +1,982 @@ +/* ==================================================================== + * Copyright (c) 2011-2013 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include + +#include +#include + +#if !defined(OPENSSL_NO_AES) && !defined(OPENSSL_NO_SHA256) + +# include +# include +# include +# include +# include +# include "modes_lcl.h" + +# ifndef EVP_CIPH_FLAG_AEAD_CIPHER +# define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 +# define EVP_CTRL_AEAD_TLS1_AAD 0x16 +# define EVP_CTRL_AEAD_SET_MAC_KEY 0x17 +# endif + +# if !defined(EVP_CIPH_FLAG_DEFAULT_ASN1) +# define EVP_CIPH_FLAG_DEFAULT_ASN1 0 +# endif + +# if !defined(EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK) +# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0 +# endif + +# define TLS1_1_VERSION 0x0302 + +typedef struct { + AES_KEY ks; + SHA256_CTX head, tail, md; + size_t payload_length; /* AAD length in decrypt case */ + union { + unsigned int tls_ver; + unsigned char tls_aad[16]; /* 13 used */ + } aux; +} EVP_AES_HMAC_SHA256; + +# define NO_PAYLOAD_LENGTH ((size_t)-1) + +# if defined(AES_ASM) && ( \ + defined(__x86_64) || defined(__x86_64__) || \ + defined(_M_AMD64) || defined(_M_X64) || \ + defined(__INTEL__) ) + +extern unsigned int OPENSSL_ia32cap_P[]; +# define AESNI_CAPABLE (1<<(57-32)) + +int aesni_set_encrypt_key(const unsigned char *userKey, int bits, + AES_KEY *key); +int aesni_set_decrypt_key(const unsigned char *userKey, int bits, + AES_KEY *key); + +void aesni_cbc_encrypt(const unsigned char *in, + unsigned char *out, + size_t length, + const AES_KEY *key, unsigned char *ivec, int enc); + +int aesni_cbc_sha256_enc(const void *inp, void *out, size_t blocks, + const AES_KEY *key, unsigned char iv[16], + SHA256_CTX *ctx, const void *in0); + +# define data(ctx) ((EVP_AES_HMAC_SHA256 *)(ctx)->cipher_data) + +static int aesni_cbc_hmac_sha256_init_key(EVP_CIPHER_CTX *ctx, + const unsigned char *inkey, + const unsigned char *iv, int enc) +{ + EVP_AES_HMAC_SHA256 *key = data(ctx); + int ret; + + if (enc) + memset(&key->ks, 0, sizeof(key->ks.rd_key)), + ret = aesni_set_encrypt_key(inkey, ctx->key_len * 8, &key->ks); + else + ret = aesni_set_decrypt_key(inkey, ctx->key_len * 8, &key->ks); + + SHA256_Init(&key->head); /* handy when benchmarking */ + key->tail = key->head; + key->md = key->head; + + key->payload_length = NO_PAYLOAD_LENGTH; + + return ret < 0 ? 0 : 1; +} + +# define STITCHED_CALL + +# if !defined(STITCHED_CALL) +# define aes_off 0 +# endif + +void sha256_block_data_order(void *c, const void *p, size_t len); + +static void sha256_update(SHA256_CTX *c, const void *data, size_t len) +{ + const unsigned char *ptr = data; + size_t res; + + if ((res = c->num)) { + res = SHA256_CBLOCK - res; + if (len < res) + res = len; + SHA256_Update(c, ptr, res); + ptr += res; + len -= res; + } + + res = len % SHA256_CBLOCK; + len -= res; + + if (len) { + sha256_block_data_order(c, ptr, len / SHA256_CBLOCK); + + ptr += len; + c->Nh += len >> 29; + c->Nl += len <<= 3; + if (c->Nl < (unsigned int)len) + c->Nh++; + } + + if (res) + SHA256_Update(c, ptr, res); +} + +# ifdef SHA256_Update +# undef SHA256_Update +# endif +# define SHA256_Update sha256_update + +# if !defined(OPENSSL_NO_MULTIBLOCK) && EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK + +typedef struct { + unsigned int A[8], B[8], C[8], D[8], E[8], F[8], G[8], H[8]; +} SHA256_MB_CTX; +typedef struct { + const unsigned char *ptr; + int blocks; +} HASH_DESC; + +void sha256_multi_block(SHA256_MB_CTX *, const HASH_DESC *, int); + +typedef struct { + const unsigned char *inp; + unsigned char *out; + int blocks; + u64 iv[2]; +} CIPH_DESC; + +void aesni_multi_cbc_encrypt(CIPH_DESC *, void *, int); + +static size_t tls1_1_multi_block_encrypt(EVP_AES_HMAC_SHA256 *key, + unsigned char *out, + const unsigned char *inp, + size_t inp_len, int n4x) +{ /* n4x is 1 or 2 */ + HASH_DESC hash_d[8], edges[8]; + CIPH_DESC ciph_d[8]; + unsigned char storage[sizeof(SHA256_MB_CTX) + 32]; + union { + u64 q[16]; + u32 d[32]; + u8 c[128]; + } blocks[8]; + SHA256_MB_CTX *ctx; + unsigned int frag, last, packlen, i, x4 = 4 * n4x, minblocks, processed = + 0; + size_t ret = 0; + u8 *IVs; +# if defined(BSWAP8) + u64 seqnum; +# endif + + /* ask for IVs in bulk */ + if (RAND_bytes((IVs = blocks[0].c), 16 * x4) <= 0) + return 0; + + /* align */ + ctx = (SHA256_MB_CTX *) (storage + 32 - ((size_t)storage % 32)); + + frag = (unsigned int)inp_len >> (1 + n4x); + last = (unsigned int)inp_len + frag - (frag << (1 + n4x)); + if (last > frag && ((last + 13 + 9) % 64) < (x4 - 1)) { + frag++; + last -= x4 - 1; + } + + packlen = 5 + 16 + ((frag + 32 + 16) & -16); + + /* populate descriptors with pointers and IVs */ + hash_d[0].ptr = inp; + ciph_d[0].inp = inp; + /* 5+16 is place for header and explicit IV */ + ciph_d[0].out = out + 5 + 16; + memcpy(ciph_d[0].out - 16, IVs, 16); + memcpy(ciph_d[0].iv, IVs, 16); + IVs += 16; + + for (i = 1; i < x4; i++) { + ciph_d[i].inp = hash_d[i].ptr = hash_d[i - 1].ptr + frag; + ciph_d[i].out = ciph_d[i - 1].out + packlen; + memcpy(ciph_d[i].out - 16, IVs, 16); + memcpy(ciph_d[i].iv, IVs, 16); + IVs += 16; + } + +# if defined(BSWAP8) + memcpy(blocks[0].c, key->md.data, 8); + seqnum = BSWAP8(blocks[0].q[0]); +# endif + for (i = 0; i < x4; i++) { + unsigned int len = (i == (x4 - 1) ? last : frag); +# if !defined(BSWAP8) + unsigned int carry, j; +# endif + + ctx->A[i] = key->md.h[0]; + ctx->B[i] = key->md.h[1]; + ctx->C[i] = key->md.h[2]; + ctx->D[i] = key->md.h[3]; + ctx->E[i] = key->md.h[4]; + ctx->F[i] = key->md.h[5]; + ctx->G[i] = key->md.h[6]; + ctx->H[i] = key->md.h[7]; + + /* fix seqnum */ +# if defined(BSWAP8) + blocks[i].q[0] = BSWAP8(seqnum + i); +# else + for (carry = i, j = 8; j--;) { + blocks[i].c[j] = ((u8 *)key->md.data)[j] + carry; + carry = (blocks[i].c[j] - carry) >> (sizeof(carry) * 8 - 1); + } +# endif + blocks[i].c[8] = ((u8 *)key->md.data)[8]; + blocks[i].c[9] = ((u8 *)key->md.data)[9]; + blocks[i].c[10] = ((u8 *)key->md.data)[10]; + /* fix length */ + blocks[i].c[11] = (u8)(len >> 8); + blocks[i].c[12] = (u8)(len); + + memcpy(blocks[i].c + 13, hash_d[i].ptr, 64 - 13); + hash_d[i].ptr += 64 - 13; + hash_d[i].blocks = (len - (64 - 13)) / 64; + + edges[i].ptr = blocks[i].c; + edges[i].blocks = 1; + } + + /* hash 13-byte headers and first 64-13 bytes of inputs */ + sha256_multi_block(ctx, edges, n4x); + /* hash bulk inputs */ +# define MAXCHUNKSIZE 2048 +# if MAXCHUNKSIZE%64 +# error "MAXCHUNKSIZE is not divisible by 64" +# elif MAXCHUNKSIZE + /* + * goal is to minimize pressure on L1 cache by moving in shorter steps, + * so that hashed data is still in the cache by the time we encrypt it + */ + minblocks = ((frag <= last ? frag : last) - (64 - 13)) / 64; + if (minblocks > MAXCHUNKSIZE / 64) { + for (i = 0; i < x4; i++) { + edges[i].ptr = hash_d[i].ptr; + edges[i].blocks = MAXCHUNKSIZE / 64; + ciph_d[i].blocks = MAXCHUNKSIZE / 16; + } + do { + sha256_multi_block(ctx, edges, n4x); + aesni_multi_cbc_encrypt(ciph_d, &key->ks, n4x); + + for (i = 0; i < x4; i++) { + edges[i].ptr = hash_d[i].ptr += MAXCHUNKSIZE; + hash_d[i].blocks -= MAXCHUNKSIZE / 64; + edges[i].blocks = MAXCHUNKSIZE / 64; + ciph_d[i].inp += MAXCHUNKSIZE; + ciph_d[i].out += MAXCHUNKSIZE; + ciph_d[i].blocks = MAXCHUNKSIZE / 16; + memcpy(ciph_d[i].iv, ciph_d[i].out - 16, 16); + } + processed += MAXCHUNKSIZE; + minblocks -= MAXCHUNKSIZE / 64; + } while (minblocks > MAXCHUNKSIZE / 64); + } +# endif +# undef MAXCHUNKSIZE + sha256_multi_block(ctx, hash_d, n4x); + + memset(blocks, 0, sizeof(blocks)); + for (i = 0; i < x4; i++) { + unsigned int len = (i == (x4 - 1) ? last : frag), + off = hash_d[i].blocks * 64; + const unsigned char *ptr = hash_d[i].ptr + off; + + off = (len - processed) - (64 - 13) - off; /* remainder actually */ + memcpy(blocks[i].c, ptr, off); + blocks[i].c[off] = 0x80; + len += 64 + 13; /* 64 is HMAC header */ + len *= 8; /* convert to bits */ + if (off < (64 - 8)) { +# ifdef BSWAP4 + blocks[i].d[15] = BSWAP4(len); +# else + PUTU32(blocks[i].c + 60, len); +# endif + edges[i].blocks = 1; + } else { +# ifdef BSWAP4 + blocks[i].d[31] = BSWAP4(len); +# else + PUTU32(blocks[i].c + 124, len); +# endif + edges[i].blocks = 2; + } + edges[i].ptr = blocks[i].c; + } + + /* hash input tails and finalize */ + sha256_multi_block(ctx, edges, n4x); + + memset(blocks, 0, sizeof(blocks)); + for (i = 0; i < x4; i++) { +# ifdef BSWAP4 + blocks[i].d[0] = BSWAP4(ctx->A[i]); + ctx->A[i] = key->tail.h[0]; + blocks[i].d[1] = BSWAP4(ctx->B[i]); + ctx->B[i] = key->tail.h[1]; + blocks[i].d[2] = BSWAP4(ctx->C[i]); + ctx->C[i] = key->tail.h[2]; + blocks[i].d[3] = BSWAP4(ctx->D[i]); + ctx->D[i] = key->tail.h[3]; + blocks[i].d[4] = BSWAP4(ctx->E[i]); + ctx->E[i] = key->tail.h[4]; + blocks[i].d[5] = BSWAP4(ctx->F[i]); + ctx->F[i] = key->tail.h[5]; + blocks[i].d[6] = BSWAP4(ctx->G[i]); + ctx->G[i] = key->tail.h[6]; + blocks[i].d[7] = BSWAP4(ctx->H[i]); + ctx->H[i] = key->tail.h[7]; + blocks[i].c[32] = 0x80; + blocks[i].d[15] = BSWAP4((64 + 32) * 8); +# else + PUTU32(blocks[i].c + 0, ctx->A[i]); + ctx->A[i] = key->tail.h[0]; + PUTU32(blocks[i].c + 4, ctx->B[i]); + ctx->B[i] = key->tail.h[1]; + PUTU32(blocks[i].c + 8, ctx->C[i]); + ctx->C[i] = key->tail.h[2]; + PUTU32(blocks[i].c + 12, ctx->D[i]); + ctx->D[i] = key->tail.h[3]; + PUTU32(blocks[i].c + 16, ctx->E[i]); + ctx->E[i] = key->tail.h[4]; + PUTU32(blocks[i].c + 20, ctx->F[i]); + ctx->F[i] = key->tail.h[5]; + PUTU32(blocks[i].c + 24, ctx->G[i]); + ctx->G[i] = key->tail.h[6]; + PUTU32(blocks[i].c + 28, ctx->H[i]); + ctx->H[i] = key->tail.h[7]; + blocks[i].c[32] = 0x80; + PUTU32(blocks[i].c + 60, (64 + 32) * 8); +# endif + edges[i].ptr = blocks[i].c; + edges[i].blocks = 1; + } + + /* finalize MACs */ + sha256_multi_block(ctx, edges, n4x); + + for (i = 0; i < x4; i++) { + unsigned int len = (i == (x4 - 1) ? last : frag), pad, j; + unsigned char *out0 = out; + + memcpy(ciph_d[i].out, ciph_d[i].inp, len - processed); + ciph_d[i].inp = ciph_d[i].out; + + out += 5 + 16 + len; + + /* write MAC */ + PUTU32(out + 0, ctx->A[i]); + PUTU32(out + 4, ctx->B[i]); + PUTU32(out + 8, ctx->C[i]); + PUTU32(out + 12, ctx->D[i]); + PUTU32(out + 16, ctx->E[i]); + PUTU32(out + 20, ctx->F[i]); + PUTU32(out + 24, ctx->G[i]); + PUTU32(out + 28, ctx->H[i]); + out += 32; + len += 32; + + /* pad */ + pad = 15 - len % 16; + for (j = 0; j <= pad; j++) + *(out++) = pad; + len += pad + 1; + + ciph_d[i].blocks = (len - processed) / 16; + len += 16; /* account for explicit iv */ + + /* arrange header */ + out0[0] = ((u8 *)key->md.data)[8]; + out0[1] = ((u8 *)key->md.data)[9]; + out0[2] = ((u8 *)key->md.data)[10]; + out0[3] = (u8)(len >> 8); + out0[4] = (u8)(len); + + ret += len + 5; + inp += frag; + } + + aesni_multi_cbc_encrypt(ciph_d, &key->ks, n4x); + + OPENSSL_cleanse(blocks, sizeof(blocks)); + OPENSSL_cleanse(ctx, sizeof(*ctx)); + + return ret; +} +# endif + +static int aesni_cbc_hmac_sha256_cipher(EVP_CIPHER_CTX *ctx, + unsigned char *out, + const unsigned char *in, size_t len) +{ + EVP_AES_HMAC_SHA256 *key = data(ctx); + unsigned int l; + size_t plen = key->payload_length, iv = 0, /* explicit IV in TLS 1.1 and + * later */ + sha_off = 0; +# if defined(STITCHED_CALL) + size_t aes_off = 0, blocks; + + sha_off = SHA256_CBLOCK - key->md.num; +# endif + + key->payload_length = NO_PAYLOAD_LENGTH; + + if (len % AES_BLOCK_SIZE) + return 0; + + if (ctx->encrypt) { + if (plen == NO_PAYLOAD_LENGTH) + plen = len; + else if (len != + ((plen + SHA256_DIGEST_LENGTH + + AES_BLOCK_SIZE) & -AES_BLOCK_SIZE)) + return 0; + else if (key->aux.tls_ver >= TLS1_1_VERSION) + iv = AES_BLOCK_SIZE; + +# if defined(STITCHED_CALL) + /* + * Assembly stitch handles AVX-capable processors, but its + * performance is not optimal on AMD Jaguar, ~40% worse, for + * unknown reasons. Incidentally processor in question supports + * AVX, but not AMD-specific XOP extension, which can be used + * to identify it and avoid stitch invocation. So that after we + * establish that current CPU supports AVX, we even see if it's + * either even XOP-capable Bulldozer-based or GenuineIntel one. + */ + if (OPENSSL_ia32cap_P[1] & (1 << (60 - 32)) && /* AVX? */ + ((OPENSSL_ia32cap_P[1] & (1 << (43 - 32))) /* XOP? */ + | (OPENSSL_ia32cap_P[0] & (1<<30))) && /* "Intel CPU"? */ + plen > (sha_off + iv) && + (blocks = (plen - (sha_off + iv)) / SHA256_CBLOCK)) { + SHA256_Update(&key->md, in + iv, sha_off); + + (void)aesni_cbc_sha256_enc(in, out, blocks, &key->ks, + ctx->iv, &key->md, in + iv + sha_off); + blocks *= SHA256_CBLOCK; + aes_off += blocks; + sha_off += blocks; + key->md.Nh += blocks >> 29; + key->md.Nl += blocks <<= 3; + if (key->md.Nl < (unsigned int)blocks) + key->md.Nh++; + } else { + sha_off = 0; + } +# endif + sha_off += iv; + SHA256_Update(&key->md, in + sha_off, plen - sha_off); + + if (plen != len) { /* "TLS" mode of operation */ + if (in != out) + memcpy(out + aes_off, in + aes_off, plen - aes_off); + + /* calculate HMAC and append it to payload */ + SHA256_Final(out + plen, &key->md); + key->md = key->tail; + SHA256_Update(&key->md, out + plen, SHA256_DIGEST_LENGTH); + SHA256_Final(out + plen, &key->md); + + /* pad the payload|hmac */ + plen += SHA256_DIGEST_LENGTH; + for (l = len - plen - 1; plen < len; plen++) + out[plen] = l; + /* encrypt HMAC|padding at once */ + aesni_cbc_encrypt(out + aes_off, out + aes_off, len - aes_off, + &key->ks, ctx->iv, 1); + } else { + aesni_cbc_encrypt(in + aes_off, out + aes_off, len - aes_off, + &key->ks, ctx->iv, 1); + } + } else { + union { + unsigned int u[SHA256_DIGEST_LENGTH / sizeof(unsigned int)]; + unsigned char c[64 + SHA256_DIGEST_LENGTH]; + } mac, *pmac; + + /* arrange cache line alignment */ + pmac = (void *)(((size_t)mac.c + 63) & ((size_t)0 - 64)); + + /* decrypt HMAC|padding at once */ + aesni_cbc_encrypt(in, out, len, &key->ks, ctx->iv, 0); + + if (plen != NO_PAYLOAD_LENGTH) { /* "TLS" mode of operation */ + size_t inp_len, mask, j, i; + unsigned int res, maxpad, pad, bitlen; + int ret = 1; + union { + unsigned int u[SHA_LBLOCK]; + unsigned char c[SHA256_CBLOCK]; + } *data = (void *)key->md.data; + + if ((key->aux.tls_aad[plen - 4] << 8 | key->aux.tls_aad[plen - 3]) + >= TLS1_1_VERSION) + iv = AES_BLOCK_SIZE; + + if (len < (iv + SHA256_DIGEST_LENGTH + 1)) + return 0; + + /* omit explicit iv */ + out += iv; + len -= iv; + + /* figure out payload length */ + pad = out[len - 1]; + maxpad = len - (SHA256_DIGEST_LENGTH + 1); + maxpad |= (255 - maxpad) >> (sizeof(maxpad) * 8 - 8); + maxpad &= 255; + + inp_len = len - (SHA256_DIGEST_LENGTH + pad + 1); + mask = (0 - ((inp_len - len) >> (sizeof(inp_len) * 8 - 1))); + inp_len &= mask; + ret &= (int)mask; + + key->aux.tls_aad[plen - 2] = inp_len >> 8; + key->aux.tls_aad[plen - 1] = inp_len; + + /* calculate HMAC */ + key->md = key->head; + SHA256_Update(&key->md, key->aux.tls_aad, plen); + +# if 1 + len -= SHA256_DIGEST_LENGTH; /* amend mac */ + if (len >= (256 + SHA256_CBLOCK)) { + j = (len - (256 + SHA256_CBLOCK)) & (0 - SHA256_CBLOCK); + j += SHA256_CBLOCK - key->md.num; + SHA256_Update(&key->md, out, j); + out += j; + len -= j; + inp_len -= j; + } + + /* but pretend as if we hashed padded payload */ + bitlen = key->md.Nl + (inp_len << 3); /* at most 18 bits */ +# ifdef BSWAP4 + bitlen = BSWAP4(bitlen); +# else + mac.c[0] = 0; + mac.c[1] = (unsigned char)(bitlen >> 16); + mac.c[2] = (unsigned char)(bitlen >> 8); + mac.c[3] = (unsigned char)bitlen; + bitlen = mac.u[0]; +# endif + + pmac->u[0] = 0; + pmac->u[1] = 0; + pmac->u[2] = 0; + pmac->u[3] = 0; + pmac->u[4] = 0; + pmac->u[5] = 0; + pmac->u[6] = 0; + pmac->u[7] = 0; + + for (res = key->md.num, j = 0; j < len; j++) { + size_t c = out[j]; + mask = (j - inp_len) >> (sizeof(j) * 8 - 8); + c &= mask; + c |= 0x80 & ~mask & ~((inp_len - j) >> (sizeof(j) * 8 - 8)); + data->c[res++] = (unsigned char)c; + + if (res != SHA256_CBLOCK) + continue; + + /* j is not incremented yet */ + mask = 0 - ((inp_len + 7 - j) >> (sizeof(j) * 8 - 1)); + data->u[SHA_LBLOCK - 1] |= bitlen & mask; + sha256_block_data_order(&key->md, data, 1); + mask &= 0 - ((j - inp_len - 72) >> (sizeof(j) * 8 - 1)); + pmac->u[0] |= key->md.h[0] & mask; + pmac->u[1] |= key->md.h[1] & mask; + pmac->u[2] |= key->md.h[2] & mask; + pmac->u[3] |= key->md.h[3] & mask; + pmac->u[4] |= key->md.h[4] & mask; + pmac->u[5] |= key->md.h[5] & mask; + pmac->u[6] |= key->md.h[6] & mask; + pmac->u[7] |= key->md.h[7] & mask; + res = 0; + } + + for (i = res; i < SHA256_CBLOCK; i++, j++) + data->c[i] = 0; + + if (res > SHA256_CBLOCK - 8) { + mask = 0 - ((inp_len + 8 - j) >> (sizeof(j) * 8 - 1)); + data->u[SHA_LBLOCK - 1] |= bitlen & mask; + sha256_block_data_order(&key->md, data, 1); + mask &= 0 - ((j - inp_len - 73) >> (sizeof(j) * 8 - 1)); + pmac->u[0] |= key->md.h[0] & mask; + pmac->u[1] |= key->md.h[1] & mask; + pmac->u[2] |= key->md.h[2] & mask; + pmac->u[3] |= key->md.h[3] & mask; + pmac->u[4] |= key->md.h[4] & mask; + pmac->u[5] |= key->md.h[5] & mask; + pmac->u[6] |= key->md.h[6] & mask; + pmac->u[7] |= key->md.h[7] & mask; + + memset(data, 0, SHA256_CBLOCK); + j += 64; + } + data->u[SHA_LBLOCK - 1] = bitlen; + sha256_block_data_order(&key->md, data, 1); + mask = 0 - ((j - inp_len - 73) >> (sizeof(j) * 8 - 1)); + pmac->u[0] |= key->md.h[0] & mask; + pmac->u[1] |= key->md.h[1] & mask; + pmac->u[2] |= key->md.h[2] & mask; + pmac->u[3] |= key->md.h[3] & mask; + pmac->u[4] |= key->md.h[4] & mask; + pmac->u[5] |= key->md.h[5] & mask; + pmac->u[6] |= key->md.h[6] & mask; + pmac->u[7] |= key->md.h[7] & mask; + +# ifdef BSWAP4 + pmac->u[0] = BSWAP4(pmac->u[0]); + pmac->u[1] = BSWAP4(pmac->u[1]); + pmac->u[2] = BSWAP4(pmac->u[2]); + pmac->u[3] = BSWAP4(pmac->u[3]); + pmac->u[4] = BSWAP4(pmac->u[4]); + pmac->u[5] = BSWAP4(pmac->u[5]); + pmac->u[6] = BSWAP4(pmac->u[6]); + pmac->u[7] = BSWAP4(pmac->u[7]); +# else + for (i = 0; i < 8; i++) { + res = pmac->u[i]; + pmac->c[4 * i + 0] = (unsigned char)(res >> 24); + pmac->c[4 * i + 1] = (unsigned char)(res >> 16); + pmac->c[4 * i + 2] = (unsigned char)(res >> 8); + pmac->c[4 * i + 3] = (unsigned char)res; + } +# endif + len += SHA256_DIGEST_LENGTH; +# else + SHA256_Update(&key->md, out, inp_len); + res = key->md.num; + SHA256_Final(pmac->c, &key->md); + + { + unsigned int inp_blocks, pad_blocks; + + /* but pretend as if we hashed padded payload */ + inp_blocks = + 1 + ((SHA256_CBLOCK - 9 - res) >> (sizeof(res) * 8 - 1)); + res += (unsigned int)(len - inp_len); + pad_blocks = res / SHA256_CBLOCK; + res %= SHA256_CBLOCK; + pad_blocks += + 1 + ((SHA256_CBLOCK - 9 - res) >> (sizeof(res) * 8 - 1)); + for (; inp_blocks < pad_blocks; inp_blocks++) + sha1_block_data_order(&key->md, data, 1); + } +# endif + key->md = key->tail; + SHA256_Update(&key->md, pmac->c, SHA256_DIGEST_LENGTH); + SHA256_Final(pmac->c, &key->md); + + /* verify HMAC */ + out += inp_len; + len -= inp_len; +# if 1 + { + unsigned char *p = + out + len - 1 - maxpad - SHA256_DIGEST_LENGTH; + size_t off = out - p; + unsigned int c, cmask; + + maxpad += SHA256_DIGEST_LENGTH; + for (res = 0, i = 0, j = 0; j < maxpad; j++) { + c = p[j]; + cmask = + ((int)(j - off - SHA256_DIGEST_LENGTH)) >> + (sizeof(int) * 8 - 1); + res |= (c ^ pad) & ~cmask; /* ... and padding */ + cmask &= ((int)(off - 1 - j)) >> (sizeof(int) * 8 - 1); + res |= (c ^ pmac->c[i]) & cmask; + i += 1 & cmask; + } + maxpad -= SHA256_DIGEST_LENGTH; + + res = 0 - ((0 - res) >> (sizeof(res) * 8 - 1)); + ret &= (int)~res; + } +# else + for (res = 0, i = 0; i < SHA256_DIGEST_LENGTH; i++) + res |= out[i] ^ pmac->c[i]; + res = 0 - ((0 - res) >> (sizeof(res) * 8 - 1)); + ret &= (int)~res; + + /* verify padding */ + pad = (pad & ~res) | (maxpad & res); + out = out + len - 1 - pad; + for (res = 0, i = 0; i < pad; i++) + res |= out[i] ^ pad; + + res = (0 - res) >> (sizeof(res) * 8 - 1); + ret &= (int)~res; +# endif + return ret; + } else { + SHA256_Update(&key->md, out, len); + } + } + + return 1; +} + +static int aesni_cbc_hmac_sha256_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, + void *ptr) +{ + EVP_AES_HMAC_SHA256 *key = data(ctx); + + switch (type) { + case EVP_CTRL_AEAD_SET_MAC_KEY: + { + unsigned int i; + unsigned char hmac_key[64]; + + memset(hmac_key, 0, sizeof(hmac_key)); + + if (arg > (int)sizeof(hmac_key)) { + SHA256_Init(&key->head); + SHA256_Update(&key->head, ptr, arg); + SHA256_Final(hmac_key, &key->head); + } else { + memcpy(hmac_key, ptr, arg); + } + + for (i = 0; i < sizeof(hmac_key); i++) + hmac_key[i] ^= 0x36; /* ipad */ + SHA256_Init(&key->head); + SHA256_Update(&key->head, hmac_key, sizeof(hmac_key)); + + for (i = 0; i < sizeof(hmac_key); i++) + hmac_key[i] ^= 0x36 ^ 0x5c; /* opad */ + SHA256_Init(&key->tail); + SHA256_Update(&key->tail, hmac_key, sizeof(hmac_key)); + + OPENSSL_cleanse(hmac_key, sizeof(hmac_key)); + + return 1; + } + case EVP_CTRL_AEAD_TLS1_AAD: + { + unsigned char *p = ptr; + unsigned int len = p[arg - 2] << 8 | p[arg - 1]; + + if (arg != EVP_AEAD_TLS1_AAD_LEN) + return -1; + + if (ctx->encrypt) { + key->payload_length = len; + if ((key->aux.tls_ver = + p[arg - 4] << 8 | p[arg - 3]) >= TLS1_1_VERSION) { + len -= AES_BLOCK_SIZE; + p[arg - 2] = len >> 8; + p[arg - 1] = len; + } + key->md = key->head; + SHA256_Update(&key->md, p, arg); + + return (int)(((len + SHA256_DIGEST_LENGTH + + AES_BLOCK_SIZE) & -AES_BLOCK_SIZE) + - len); + } else { + memcpy(key->aux.tls_aad, ptr, arg); + key->payload_length = arg; + + return SHA256_DIGEST_LENGTH; + } + } +# if !defined(OPENSSL_NO_MULTIBLOCK) && EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK + case EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE: + return (int)(5 + 16 + ((arg + 32 + 16) & -16)); + case EVP_CTRL_TLS1_1_MULTIBLOCK_AAD: + { + EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM *param = + (EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM *) ptr; + unsigned int n4x = 1, x4; + unsigned int frag, last, packlen, inp_len; + + if (arg < (int)sizeof(EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM)) + return -1; + + inp_len = param->inp[11] << 8 | param->inp[12]; + + if (ctx->encrypt) { + if ((param->inp[9] << 8 | param->inp[10]) < TLS1_1_VERSION) + return -1; + + if (inp_len) { + if (inp_len < 4096) + return 0; /* too short */ + + if (inp_len >= 8192 && OPENSSL_ia32cap_P[2] & (1 << 5)) + n4x = 2; /* AVX2 */ + } else if ((n4x = param->interleave / 4) && n4x <= 2) + inp_len = param->len; + else + return -1; + + key->md = key->head; + SHA256_Update(&key->md, param->inp, 13); + + x4 = 4 * n4x; + n4x += 1; + + frag = inp_len >> n4x; + last = inp_len + frag - (frag << n4x); + if (last > frag && ((last + 13 + 9) % 64 < (x4 - 1))) { + frag++; + last -= x4 - 1; + } + + packlen = 5 + 16 + ((frag + 32 + 16) & -16); + packlen = (packlen << n4x) - packlen; + packlen += 5 + 16 + ((last + 32 + 16) & -16); + + param->interleave = x4; + + return (int)packlen; + } else + return -1; /* not yet */ + } + case EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT: + { + EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM *param = + (EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM *) ptr; + + return (int)tls1_1_multi_block_encrypt(key, param->out, + param->inp, param->len, + param->interleave / 4); + } + case EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT: +# endif + default: + return -1; + } +} + +static EVP_CIPHER aesni_128_cbc_hmac_sha256_cipher = { +# ifdef NID_aes_128_cbc_hmac_sha256 + NID_aes_128_cbc_hmac_sha256, +# else + NID_undef, +# endif + 16, 16, 16, + EVP_CIPH_CBC_MODE | EVP_CIPH_FLAG_DEFAULT_ASN1 | + EVP_CIPH_FLAG_AEAD_CIPHER | EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK, + aesni_cbc_hmac_sha256_init_key, + aesni_cbc_hmac_sha256_cipher, + NULL, + sizeof(EVP_AES_HMAC_SHA256), + EVP_CIPH_FLAG_DEFAULT_ASN1 ? NULL : EVP_CIPHER_set_asn1_iv, + EVP_CIPH_FLAG_DEFAULT_ASN1 ? NULL : EVP_CIPHER_get_asn1_iv, + aesni_cbc_hmac_sha256_ctrl, + NULL +}; + +static EVP_CIPHER aesni_256_cbc_hmac_sha256_cipher = { +# ifdef NID_aes_256_cbc_hmac_sha256 + NID_aes_256_cbc_hmac_sha256, +# else + NID_undef, +# endif + 16, 32, 16, + EVP_CIPH_CBC_MODE | EVP_CIPH_FLAG_DEFAULT_ASN1 | + EVP_CIPH_FLAG_AEAD_CIPHER | EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK, + aesni_cbc_hmac_sha256_init_key, + aesni_cbc_hmac_sha256_cipher, + NULL, + sizeof(EVP_AES_HMAC_SHA256), + EVP_CIPH_FLAG_DEFAULT_ASN1 ? NULL : EVP_CIPHER_set_asn1_iv, + EVP_CIPH_FLAG_DEFAULT_ASN1 ? NULL : EVP_CIPHER_get_asn1_iv, + aesni_cbc_hmac_sha256_ctrl, + NULL +}; + +const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void) +{ + return ((OPENSSL_ia32cap_P[1] & AESNI_CAPABLE) && + aesni_cbc_sha256_enc(NULL, NULL, 0, NULL, NULL, NULL, NULL) ? + &aesni_128_cbc_hmac_sha256_cipher : NULL); +} + +const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void) +{ + return ((OPENSSL_ia32cap_P[1] & AESNI_CAPABLE) && + aesni_cbc_sha256_enc(NULL, NULL, 0, NULL, NULL, NULL, NULL) ? + &aesni_256_cbc_hmac_sha256_cipher : NULL); +} +# else +const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void) +{ + return NULL; +} + +const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void) +{ + return NULL; +} +# endif +#endif diff --git a/libs/openssl/crypto/evp/e_des.c b/libs/openssl/crypto/evp/e_des.c index ea1a4c42..aae13a67 100644 --- a/libs/openssl/crypto/evp/e_des.c +++ b/libs/openssl/crypto/evp/e_des.c @@ -65,6 +65,32 @@ # include # include +typedef struct { + union { + double align; + DES_key_schedule ks; + } ks; + union { + void (*cbc) (const void *, void *, size_t, const void *, void *); + } stream; +} EVP_DES_KEY; + +# if defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) +/* ---------^^^ this is not a typo, just a way to detect that + * assembler support was in general requested... */ +# include "sparc_arch.h" + +extern unsigned int OPENSSL_sparcv9cap_P[]; + +# define SPARC_DES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_DES) + +void des_t4_key_expand(const void *key, DES_key_schedule *ks); +void des_t4_cbc_encrypt(const void *inp, void *out, size_t len, + DES_key_schedule *ks, unsigned char iv[8]); +void des_t4_cbc_decrypt(const void *inp, void *out, size_t len, + DES_key_schedule *ks, unsigned char iv[8]); +# endif + static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc); static int des_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr); @@ -102,6 +128,12 @@ static int des_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, static int des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) { + EVP_DES_KEY *dat = (EVP_DES_KEY *) ctx->cipher_data; + + if (dat->stream.cbc) { + (*dat->stream.cbc) (in, out, inl, &dat->ks.ks, ctx->iv); + return 1; + } while (inl >= EVP_MAXCHUNK) { DES_ncbc_encrypt(in, out, (long)EVP_MAXCHUNK, ctx->cipher_data, (DES_cblock *)ctx->iv, ctx->encrypt); @@ -179,16 +211,15 @@ static int des_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, return 1; } -BLOCK_CIPHER_defs(des, DES_key_schedule, NID_des, 8, 8, 8, 64, +BLOCK_CIPHER_defs(des, EVP_DES_KEY, NID_des, 8, 8, 8, 64, EVP_CIPH_RAND_KEY, des_init_key, NULL, EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl) + BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 1, + EVP_CIPH_RAND_KEY, des_init_key, NULL, + EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl) -BLOCK_CIPHER_def_cfb(des, DES_key_schedule, NID_des, 8, 8, 1, - EVP_CIPH_RAND_KEY, des_init_key, NULL, - EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl) - -BLOCK_CIPHER_def_cfb(des, DES_key_schedule, NID_des, 8, 8, 8, + BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 8, EVP_CIPH_RAND_KEY, des_init_key, NULL, EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl) @@ -196,8 +227,22 @@ static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc) { DES_cblock *deskey = (DES_cblock *)key; + EVP_DES_KEY *dat = (EVP_DES_KEY *) ctx->cipher_data; + + dat->stream.cbc = NULL; +# if defined(SPARC_DES_CAPABLE) + if (SPARC_DES_CAPABLE) { + int mode = ctx->cipher->flags & EVP_CIPH_MODE; + + if (mode == EVP_CIPH_CBC_MODE) { + des_t4_key_expand(key, &dat->ks.ks); + dat->stream.cbc = enc ? des_t4_cbc_encrypt : des_t4_cbc_decrypt; + return 1; + } + } +# endif # ifdef EVP_CHECK_DES_KEY - if (DES_set_key_checked(deskey, ctx->cipher_data) != 0) + if (DES_set_key_checked(deskey, dat->ks.ks) != 0) return 0; # else DES_set_key_unchecked(deskey, ctx->cipher_data); diff --git a/libs/openssl/crypto/evp/e_des3.c b/libs/openssl/crypto/evp/e_des3.c index 07a5aca6..bf6c1d2d 100644 --- a/libs/openssl/crypto/evp/e_des3.c +++ b/libs/openssl/crypto/evp/e_des3.c @@ -65,7 +65,38 @@ # include # include -# ifndef OPENSSL_FIPS +/* Block use of implementations in FIPS mode */ +# undef EVP_CIPH_FLAG_FIPS +# define EVP_CIPH_FLAG_FIPS 0 + +typedef struct { + union { + double align; + DES_key_schedule ks[3]; + } ks; + union { + void (*cbc) (const void *, void *, size_t, const void *, void *); + } stream; +} DES_EDE_KEY; +# define ks1 ks.ks[0] +# define ks2 ks.ks[1] +# define ks3 ks.ks[2] + +# if defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) +/* ---------^^^ this is not a typo, just a way to detect that + * assembler support was in general requested... */ +# include "sparc_arch.h" + +extern unsigned int OPENSSL_sparcv9cap_P[]; + +# define SPARC_DES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_DES) + +void des_t4_key_expand(const void *key, DES_key_schedule *ks); +void des_t4_ede3_cbc_encrypt(const void *inp, void *out, size_t len, + DES_key_schedule *ks, unsigned char iv[8]); +void des_t4_ede3_cbc_decrypt(const void *inp, void *out, size_t len, + DES_key_schedule *ks, unsigned char iv[8]); +# endif static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc); @@ -75,13 +106,7 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, static int des3_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr); -typedef struct { - DES_key_schedule ks1; /* key schedule */ - DES_key_schedule ks2; /* key schedule (for ede) */ - DES_key_schedule ks3; /* key schedule (for ede3) */ -} DES_EDE_KEY; - -# define data(ctx) ((DES_EDE_KEY *)(ctx)->cipher_data) +# define data(ctx) ((DES_EDE_KEY *)(ctx)->cipher_data) /* * Because of various casts and different args can't use @@ -123,7 +148,9 @@ static int des_ede_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, const unsigned char *in, size_t inl) { -# ifdef KSSL_DEBUG + DES_EDE_KEY *dat = data(ctx); + +# ifdef KSSL_DEBUG { int i; fprintf(stderr, "des_ede_cbc_cipher(ctx=%p, buflen=%d)\n", ctx, @@ -133,21 +160,24 @@ static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, fprintf(stderr, "%02X", ctx->iv[i]); fprintf(stderr, "\n"); } -# endif /* KSSL_DEBUG */ +# endif /* KSSL_DEBUG */ + if (dat->stream.cbc) { + (*dat->stream.cbc) (in, out, inl, &dat->ks, ctx->iv); + return 1; + } + while (inl >= EVP_MAXCHUNK) { DES_ede3_cbc_encrypt(in, out, (long)EVP_MAXCHUNK, - &data(ctx)->ks1, &data(ctx)->ks2, - &data(ctx)->ks3, (DES_cblock *)ctx->iv, - ctx->encrypt); + &dat->ks1, &dat->ks2, &dat->ks3, + (DES_cblock *)ctx->iv, ctx->encrypt); inl -= EVP_MAXCHUNK; in += EVP_MAXCHUNK; out += EVP_MAXCHUNK; } if (inl) DES_ede3_cbc_encrypt(in, out, (long)inl, - &data(ctx)->ks1, &data(ctx)->ks2, - &data(ctx)->ks3, (DES_cblock *)ctx->iv, - ctx->encrypt); + &dat->ks1, &dat->ks2, &dat->ks3, + (DES_cblock *)ctx->iv, ctx->encrypt); return 1; } @@ -215,39 +245,57 @@ static int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, } BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64, - EVP_CIPH_RAND_KEY, des_ede_init_key, NULL, - EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) -# define des_ede3_cfb64_cipher des_ede_cfb64_cipher -# define des_ede3_ofb_cipher des_ede_ofb_cipher -# define des_ede3_cbc_cipher des_ede_cbc_cipher -# define des_ede3_ecb_cipher des_ede_ecb_cipher + EVP_CIPH_RAND_KEY | EVP_CIPH_FLAG_DEFAULT_ASN1, + des_ede_init_key, NULL, NULL, NULL, des3_ctrl) +# define des_ede3_cfb64_cipher des_ede_cfb64_cipher +# define des_ede3_ofb_cipher des_ede_ofb_cipher +# define des_ede3_cbc_cipher des_ede_cbc_cipher +# define des_ede3_ecb_cipher des_ede_ecb_cipher BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64, - EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, - EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) + EVP_CIPH_RAND_KEY | EVP_CIPH_FLAG_FIPS | + EVP_CIPH_FLAG_DEFAULT_ASN1, des_ede3_init_key, NULL, NULL, NULL, + des3_ctrl) BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 1, - EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, - EVP_CIPHER_set_asn1_iv, - EVP_CIPHER_get_asn1_iv, des3_ctrl) + EVP_CIPH_RAND_KEY | EVP_CIPH_FLAG_FIPS | + EVP_CIPH_FLAG_DEFAULT_ASN1, des_ede3_init_key, NULL, NULL, + NULL, des3_ctrl) BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 8, - EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, - EVP_CIPHER_set_asn1_iv, - EVP_CIPHER_get_asn1_iv, des3_ctrl) + EVP_CIPH_RAND_KEY | EVP_CIPH_FLAG_FIPS | + EVP_CIPH_FLAG_DEFAULT_ASN1, des_ede3_init_key, NULL, NULL, + NULL, des3_ctrl) static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc) { DES_cblock *deskey = (DES_cblock *)key; -# ifdef EVP_CHECK_DES_KEY - if (DES_set_key_checked(&deskey[0], &data(ctx)->ks1) - ! !DES_set_key_checked(&deskey[1], &data(ctx)->ks2)) + DES_EDE_KEY *dat = data(ctx); + + dat->stream.cbc = NULL; +# if defined(SPARC_DES_CAPABLE) + if (SPARC_DES_CAPABLE) { + int mode = ctx->cipher->flags & EVP_CIPH_MODE; + + if (mode == EVP_CIPH_CBC_MODE) { + des_t4_key_expand(&deskey[0], &dat->ks1); + des_t4_key_expand(&deskey[1], &dat->ks2); + memcpy(&dat->ks3, &dat->ks1, sizeof(dat->ks1)); + dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : + des_t4_ede3_cbc_decrypt; + return 1; + } + } +# endif +# ifdef EVP_CHECK_DES_KEY + if (DES_set_key_checked(&deskey[0], &dat->ks1) + || DES_set_key_checked(&deskey[1], &dat->ks2)) return 0; -# else - DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1); - DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2); -# endif - memcpy(&data(ctx)->ks3, &data(ctx)->ks1, sizeof(data(ctx)->ks1)); +# else + DES_set_key_unchecked(&deskey[0], &dat->ks1); + DES_set_key_unchecked(&deskey[1], &dat->ks2); +# endif + memcpy(&dat->ks3, &dat->ks1, sizeof(dat->ks1)); return 1; } @@ -255,7 +303,9 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc) { DES_cblock *deskey = (DES_cblock *)key; -# ifdef KSSL_DEBUG + DES_EDE_KEY *dat = data(ctx); + +# ifdef KSSL_DEBUG { int i; fprintf(stderr, "des_ede3_init_key(ctx=%p)\n", ctx); @@ -270,18 +320,33 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, fprintf(stderr, "\n"); } } -# endif /* KSSL_DEBUG */ +# endif /* KSSL_DEBUG */ + + dat->stream.cbc = NULL; +# if defined(SPARC_DES_CAPABLE) + if (SPARC_DES_CAPABLE) { + int mode = ctx->cipher->flags & EVP_CIPH_MODE; -# ifdef EVP_CHECK_DES_KEY - if (DES_set_key_checked(&deskey[0], &data(ctx)->ks1) - || DES_set_key_checked(&deskey[1], &data(ctx)->ks2) - || DES_set_key_checked(&deskey[2], &data(ctx)->ks3)) + if (mode == EVP_CIPH_CBC_MODE) { + des_t4_key_expand(&deskey[0], &dat->ks1); + des_t4_key_expand(&deskey[1], &dat->ks2); + des_t4_key_expand(&deskey[2], &dat->ks3); + dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : + des_t4_ede3_cbc_decrypt; + return 1; + } + } +# endif +# ifdef EVP_CHECK_DES_KEY + if (DES_set_key_checked(&deskey[0], &dat->ks1) + || DES_set_key_checked(&deskey[1], &dat->ks2) + || DES_set_key_checked(&deskey[2], &dat->ks3)) return 0; -# else - DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1); - DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2); - DES_set_key_unchecked(&deskey[2], &data(ctx)->ks3); -# endif +# else + DES_set_key_unchecked(&deskey[0], &dat->ks1); + DES_set_key_unchecked(&deskey[1], &dat->ks2); + DES_set_key_unchecked(&deskey[2], &dat->ks3); +# endif return 1; } @@ -315,5 +380,115 @@ const EVP_CIPHER *EVP_des_ede3(void) { return &des_ede3_ecb; } + +# ifndef OPENSSL_NO_SHA + +# include + +static const unsigned char wrap_iv[8] = + { 0x4a, 0xdd, 0xa2, 0x2c, 0x79, 0xe8, 0x21, 0x05 }; + +static int des_ede3_unwrap(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t inl) +{ + unsigned char icv[8], iv[8], sha1tmp[SHA_DIGEST_LENGTH]; + int rv = -1; + if (inl < 24) + return -1; + if (!out) + return inl - 16; + memcpy(ctx->iv, wrap_iv, 8); + /* Decrypt first block which will end up as icv */ + des_ede_cbc_cipher(ctx, icv, in, 8); + /* Decrypt central blocks */ + /* + * If decrypting in place move whole output along a block so the next + * des_ede_cbc_cipher is in place. + */ + if (out == in) { + memmove(out, out + 8, inl - 8); + in -= 8; + } + des_ede_cbc_cipher(ctx, out, in + 8, inl - 16); + /* Decrypt final block which will be IV */ + des_ede_cbc_cipher(ctx, iv, in + inl - 8, 8); + /* Reverse order of everything */ + BUF_reverse(icv, NULL, 8); + BUF_reverse(out, NULL, inl - 16); + BUF_reverse(ctx->iv, iv, 8); + /* Decrypt again using new IV */ + des_ede_cbc_cipher(ctx, out, out, inl - 16); + des_ede_cbc_cipher(ctx, icv, icv, 8); + /* Work out SHA1 hash of first portion */ + SHA1(out, inl - 16, sha1tmp); + + if (!CRYPTO_memcmp(sha1tmp, icv, 8)) + rv = inl - 16; + OPENSSL_cleanse(icv, 8); + OPENSSL_cleanse(sha1tmp, SHA_DIGEST_LENGTH); + OPENSSL_cleanse(iv, 8); + OPENSSL_cleanse(ctx->iv, 8); + if (rv == -1) + OPENSSL_cleanse(out, inl - 16); + + return rv; +} + +static int des_ede3_wrap(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t inl) +{ + unsigned char sha1tmp[SHA_DIGEST_LENGTH]; + if (!out) + return inl + 16; + /* Copy input to output buffer + 8 so we have space for IV */ + memmove(out + 8, in, inl); + /* Work out ICV */ + SHA1(in, inl, sha1tmp); + memcpy(out + inl + 8, sha1tmp, 8); + OPENSSL_cleanse(sha1tmp, SHA_DIGEST_LENGTH); + /* Generate random IV */ + if (RAND_bytes(ctx->iv, 8) <= 0) + return -1; + memcpy(out, ctx->iv, 8); + /* Encrypt everything after IV in place */ + des_ede_cbc_cipher(ctx, out + 8, out + 8, inl + 8); + BUF_reverse(out, NULL, inl + 16); + memcpy(ctx->iv, wrap_iv, 8); + des_ede_cbc_cipher(ctx, out, out, inl + 16); + return inl + 16; +} + +static int des_ede3_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t inl) +{ + /* + * Sanity check input length: we typically only wrap keys so EVP_MAXCHUNK + * is more than will ever be needed. Also input length must be a multiple + * of 8 bits. + */ + if (inl >= EVP_MAXCHUNK || inl % 8) + return -1; + if (ctx->encrypt) + return des_ede3_wrap(ctx, out, in, inl); + else + return des_ede3_unwrap(ctx, out, in, inl); +} + +static const EVP_CIPHER des3_wrap = { + NID_id_smime_alg_CMS3DESwrap, + 8, 24, 0, + EVP_CIPH_WRAP_MODE | EVP_CIPH_CUSTOM_IV | EVP_CIPH_FLAG_CUSTOM_CIPHER + | EVP_CIPH_FLAG_DEFAULT_ASN1, + des_ede3_init_key, des_ede3_wrap_cipher, + NULL, + sizeof(DES_EDE_KEY), + NULL, NULL, NULL, NULL +}; + +const EVP_CIPHER *EVP_des_ede3_wrap(void) +{ + return &des3_wrap; +} + # endif #endif diff --git a/libs/openssl/crypto/evp/e_null.c b/libs/openssl/crypto/evp/e_null.c index af90ce32..599fcb80 100644 --- a/libs/openssl/crypto/evp/e_null.c +++ b/libs/openssl/crypto/evp/e_null.c @@ -61,8 +61,6 @@ #include #include -#ifndef OPENSSL_FIPS - static int null_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc); static int null_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, @@ -100,4 +98,3 @@ static int null_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, memcpy((char *)out, (const char *)in, inl); return 1; } -#endif diff --git a/libs/openssl/crypto/evp/encode.c b/libs/openssl/crypto/evp/encode.c index 5c5988fc..c6abc4ae 100644 --- a/libs/openssl/crypto/evp/encode.c +++ b/libs/openssl/crypto/evp/encode.c @@ -60,9 +60,9 @@ #include "cryptlib.h" #include +static unsigned char conv_ascii2bin(unsigned char a); #ifndef CHARSET_EBCDIC # define conv_bin2ascii(a) (data_bin2ascii[(a)&0x3f]) -# define conv_ascii2bin(a) (data_ascii2bin[(a)&0x7f]) #else /* * We assume that PEM encoded files are EBCDIC files (i.e., printable text @@ -71,7 +71,6 @@ * as the underlying textstring data_bin2ascii[] is already EBCDIC) */ # define conv_bin2ascii(a) (data_bin2ascii[(a)&0x3f]) -# define conv_ascii2bin(a) (data_ascii2bin[os_toascii[a]&0x7f]) #endif /*- @@ -103,6 +102,7 @@ abcdefghijklmnopqrstuvwxyz0123456789+/"; #define B64_WS 0xE0 #define B64_ERROR 0xFF #define B64_NOT_BASE64(a) (((a)|0x13) == 0xF3) +#define B64_BASE64(a) !B64_NOT_BASE64(a) static const unsigned char data_ascii2bin[128] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, @@ -123,6 +123,23 @@ static const unsigned char data_ascii2bin[128] = { 0x31, 0x32, 0x33, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }; +#ifndef CHARSET_EBCDIC +static unsigned char conv_ascii2bin(unsigned char a) +{ + if (a & 0x80) + return B64_ERROR; + return data_ascii2bin[a]; +} +#else +static unsigned char conv_ascii2bin(unsigned char a) +{ + a = os_toascii[a]; + if (a & 0x80) + return B64_ERROR; + return data_ascii2bin[a]; +} +#endif + void EVP_EncodeInit(EVP_ENCODE_CTX *ctx) { ctx->length = 48; @@ -218,8 +235,9 @@ int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int dlen) void EVP_DecodeInit(EVP_ENCODE_CTX *ctx) { - ctx->length = 30; + /* Only ctx->num is used during decoding. */ ctx->num = 0; + ctx->length = 0; ctx->line_num = 0; ctx->expect_nl = 0; } @@ -228,139 +246,123 @@ void EVP_DecodeInit(EVP_ENCODE_CTX *ctx) * -1 for error * 0 for last line * 1 for full line + * + * Note: even though EVP_DecodeUpdate attempts to detect and report end of + * content, the context doesn't currently remember it and will accept more data + * in the next call. Therefore, the caller is responsible for checking and + * rejecting a 0 return value in the middle of content. + * + * Note: even though EVP_DecodeUpdate has historically tried to detect end of + * content based on line length, this has never worked properly. Therefore, + * we now return 0 when one of the following is true: + * - Padding or B64_EOF was detected and the last block is complete. + * - Input has zero-length. + * -1 is returned if: + * - Invalid characters are detected. + * - There is extra trailing padding, or data after padding. + * - B64_EOF is detected after an incomplete base64 block. */ int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl) { - int seof = -1, eof = 0, rv = -1, ret = 0, i, v, tmp, n, ln, exp_nl; + int seof = 0, eof = 0, rv = -1, ret = 0, i, v, tmp, n, decoded_len; unsigned char *d; n = ctx->num; d = ctx->enc_data; - ln = ctx->line_num; - exp_nl = ctx->expect_nl; - /* last line of input. */ - if ((inl == 0) || ((n == 0) && (conv_ascii2bin(in[0]) == B64_EOF))) { + if (n > 0 && d[n - 1] == '=') { + eof++; + if (n > 1 && d[n - 2] == '=') + eof++; + } + + /* Legacy behaviour: an empty input chunk signals end of input. */ + if (inl == 0) { rv = 0; goto end; } - /* We parse the input data */ for (i = 0; i < inl; i++) { - /* If the current line is > 80 characters, scream alot */ - if (ln >= 80) { - rv = -1; - goto end; - } - - /* Get char and put it into the buffer */ tmp = *(in++); v = conv_ascii2bin(tmp); - /* only save the good data :-) */ - if (!B64_NOT_BASE64(v)) { - OPENSSL_assert(n < (int)sizeof(ctx->enc_data)); - d[n++] = tmp; - ln++; - } else if (v == B64_ERROR) { + if (v == B64_ERROR) { rv = -1; goto end; } - /* - * have we seen a '=' which is 'definitly' the last input line. seof - * will point to the character that holds it. and eof will hold how - * many characters to chop off. - */ if (tmp == '=') { - if (seof == -1) - seof = n; eof++; + } else if (eof > 0 && B64_BASE64(v)) { + /* More data after padding. */ + rv = -1; + goto end; } - if (v == B64_CR) { - ln = 0; - if (exp_nl) - continue; + if (eof > 2) { + rv = -1; + goto end; } - /* eoln */ - if (v == B64_EOLN) { - ln = 0; - if (exp_nl) { - exp_nl = 0; - continue; - } - } - exp_nl = 0; - - /* - * If we are at the end of input and it looks like a line, process - * it. - */ - if (((i + 1) == inl) && (((n & 3) == 0) || eof)) { - v = B64_EOF; - /* - * In case things were given us in really small records (so two - * '=' were given in separate updates), eof may contain the - * incorrect number of ending bytes to skip, so let's redo the - * count - */ - eof = 0; - if (d[n - 1] == '=') - eof++; - if (d[n - 2] == '=') - eof++; - /* There will never be more than two '=' */ + if (v == B64_EOF) { + seof = 1; + goto tail; } - if ((v == B64_EOF && (n & 3) == 0) || (n >= 64)) { - /* - * This is needed to work correctly on 64 byte input lines. We - * process the line and then need to accept the '\n' - */ - if ((v != B64_EOF) && (n >= 64)) - exp_nl = 1; - if (n > 0) { - v = EVP_DecodeBlock(out, d, n); - n = 0; - if (v < 0) { - rv = 0; - goto end; - } - if (eof > v) { - rv = -1; - goto end; - } - ret += (v - eof); - } else { - eof = 1; - v = 0; + /* Only save valid base64 characters. */ + if (B64_BASE64(v)) { + if (n >= 64) { + /* + * We increment n once per loop, and empty the buffer as soon as + * we reach 64 characters, so this can only happen if someone's + * manually messed with the ctx. Refuse to write any more data. + */ + rv = -1; + goto end; } + OPENSSL_assert(n < (int)sizeof(ctx->enc_data)); + d[n++] = tmp; + } - /* - * This is the case where we have had a short but valid input - * line - */ - if ((v < ctx->length) && eof) { - rv = 0; + if (n == 64) { + decoded_len = EVP_DecodeBlock(out, d, n); + n = 0; + if (decoded_len < 0 || eof > decoded_len) { + rv = -1; goto end; - } else - ctx->length = v; + } + ret += decoded_len - eof; + out += decoded_len - eof; + } + } - if (seof >= 0) { - rv = 0; + /* + * Legacy behaviour: if the current line is a full base64-block (i.e., has + * 0 mod 4 base64 characters), it is processed immediately. We keep this + * behaviour as applications may not be calling EVP_DecodeFinal properly. + */ +tail: + if (n > 0) { + if ((n & 3) == 0) { + decoded_len = EVP_DecodeBlock(out, d, n); + n = 0; + if (decoded_len < 0 || eof > decoded_len) { + rv = -1; goto end; } - out += v; + ret += (decoded_len - eof); + } else if (seof) { + /* EOF in the middle of a base64 block. */ + rv = -1; + goto end; } } - rv = 1; - end: + + rv = seof || (n == 0 && eof) ? 0 : 1; +end: + /* Legacy behaviour. This should probably rather be zeroed on error. */ *outl = ret; ctx->num = n; - ctx->line_num = ln; - ctx->expect_nl = exp_nl; return (rv); } diff --git a/libs/openssl/crypto/evp/evp.h b/libs/openssl/crypto/evp/evp.h index 6cf98acc..39ab7937 100644 --- a/libs/openssl/crypto/evp/evp.h +++ b/libs/openssl/crypto/evp/evp.h @@ -113,6 +113,7 @@ # define EVP_PKEY_DSA3 NID_dsaWithSHA1 # define EVP_PKEY_DSA4 NID_dsaWithSHA1_2 # define EVP_PKEY_DH NID_dhKeyAgreement +# define EVP_PKEY_DHX NID_dhpublicnumber # define EVP_PKEY_EC NID_X9_62_id_ecPublicKey # define EVP_PKEY_HMAC NID_hmac # define EVP_PKEY_CMAC NID_cmac @@ -345,6 +346,7 @@ struct evp_cipher_st { # define EVP_CIPH_GCM_MODE 0x6 # define EVP_CIPH_CCM_MODE 0x7 # define EVP_CIPH_XTS_MODE 0x10001 +# define EVP_CIPH_WRAP_MODE 0x10002 # define EVP_CIPH_MODE 0xF0007 /* Set if variable length cipher */ # define EVP_CIPH_VARIABLE_LENGTH 0x8 @@ -375,6 +377,14 @@ struct evp_cipher_st { */ # define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000 # define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 +# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0x400000 + +/* + * Cipher context flag to indicate we can handle wrap mode: if allowed in + * older applications it could overflow buffers. + */ + +# define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0x1 /* ctrl() values */ @@ -408,9 +418,21 @@ struct evp_cipher_st { /* Set the GCM invocation field, decrypt only */ # define EVP_CTRL_GCM_SET_IV_INV 0x18 +# define EVP_CTRL_TLS1_1_MULTIBLOCK_AAD 0x19 +# define EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT 0x1a +# define EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT 0x1b +# define EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE 0x1c + /* RFC 5246 defines additional data to be 13 bytes in length */ # define EVP_AEAD_TLS1_AAD_LEN 13 +typedef struct { + unsigned char *out; + const unsigned char *inp; + size_t len; + unsigned int interleave; +} EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; + /* GCM TLS constants */ /* Length of fixed part of IV derived from PRF */ # define EVP_GCM_TLS_FIXED_IV_LEN 4 @@ -639,7 +661,8 @@ int EVP_DigestSignFinal(EVP_MD_CTX *ctx, int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); -int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, unsigned char *sig, size_t siglen); +int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, + const unsigned char *sig, size_t siglen); int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, const unsigned char *ek, int ekl, const unsigned char *iv, @@ -744,6 +767,7 @@ const EVP_CIPHER *EVP_des_cbc(void); const EVP_CIPHER *EVP_des_ede_cbc(void); const EVP_CIPHER *EVP_des_ede3_cbc(void); const EVP_CIPHER *EVP_desx_cbc(void); +const EVP_CIPHER *EVP_des_ede3_wrap(void); /* * This should now be supported through the dev_crypto ENGINE. But also, why * are rc4 and md5 declarations made here inside a "NO_DES" precompiler @@ -813,6 +837,7 @@ const EVP_CIPHER *EVP_aes_128_ctr(void); const EVP_CIPHER *EVP_aes_128_ccm(void); const EVP_CIPHER *EVP_aes_128_gcm(void); const EVP_CIPHER *EVP_aes_128_xts(void); +const EVP_CIPHER *EVP_aes_128_wrap(void); const EVP_CIPHER *EVP_aes_192_ecb(void); const EVP_CIPHER *EVP_aes_192_cbc(void); const EVP_CIPHER *EVP_aes_192_cfb1(void); @@ -823,6 +848,7 @@ const EVP_CIPHER *EVP_aes_192_ofb(void); const EVP_CIPHER *EVP_aes_192_ctr(void); const EVP_CIPHER *EVP_aes_192_ccm(void); const EVP_CIPHER *EVP_aes_192_gcm(void); +const EVP_CIPHER *EVP_aes_192_wrap(void); const EVP_CIPHER *EVP_aes_256_ecb(void); const EVP_CIPHER *EVP_aes_256_cbc(void); const EVP_CIPHER *EVP_aes_256_cfb1(void); @@ -834,10 +860,15 @@ const EVP_CIPHER *EVP_aes_256_ctr(void); const EVP_CIPHER *EVP_aes_256_ccm(void); const EVP_CIPHER *EVP_aes_256_gcm(void); const EVP_CIPHER *EVP_aes_256_xts(void); +const EVP_CIPHER *EVP_aes_256_wrap(void); # if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA1) const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); # endif +# ifndef OPENSSL_NO_SHA256 +const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); +const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); +# endif # endif # ifndef OPENSSL_NO_CAMELLIA const EVP_CIPHER *EVP_camellia_128_ecb(void); @@ -1028,6 +1059,7 @@ void EVP_PBE_cleanup(void); # define ASN1_PKEY_CTRL_DEFAULT_MD_NID 0x3 # define ASN1_PKEY_CTRL_CMS_SIGN 0x5 # define ASN1_PKEY_CTRL_CMS_ENVELOPE 0x7 +# define ASN1_PKEY_CTRL_CMS_RI_TYPE 0x8 int EVP_PKEY_asn1_get_count(void); const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); @@ -1091,6 +1123,19 @@ void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, int (*pkey_ctrl) (EVP_PKEY *pkey, int op, long arg1, void *arg2)); +void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, + int (*item_verify) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *a, + ASN1_BIT_STRING *sig, + EVP_PKEY *pkey), + int (*item_sign) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *alg1, + X509_ALGOR *alg2, + ASN1_BIT_STRING *sig)); # define EVP_PKEY_OP_UNDEFINED 0 # define EVP_PKEY_OP_PARAMGEN (1<<1) @@ -1121,6 +1166,10 @@ void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ EVP_PKEY_CTRL_MD, 0, (void *)md) +# define EVP_PKEY_CTX_get_signature_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ + EVP_PKEY_CTRL_GET_MD, 0, (void *)pmd) + # define EVP_PKEY_CTRL_MD 1 # define EVP_PKEY_CTRL_PEER_KEY 2 @@ -1142,6 +1191,8 @@ void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, # define EVP_PKEY_CTRL_CIPHER 12 +# define EVP_PKEY_CTRL_GET_MD 13 + # define EVP_PKEY_ALG_CTRL 0x1000 # define EVP_PKEY_FLAG_AUTOARGLEN 2 @@ -1327,11 +1378,13 @@ void ERR_load_EVP_strings(void); # define EVP_F_AESNI_INIT_KEY 165 # define EVP_F_AESNI_XTS_CIPHER 176 # define EVP_F_AES_INIT_KEY 133 +# define EVP_F_AES_T4_INIT_KEY 178 # define EVP_F_AES_XTS 172 # define EVP_F_AES_XTS_CIPHER 175 # define EVP_F_ALG_MODULE_INIT 177 # define EVP_F_CAMELLIA_INIT_KEY 159 # define EVP_F_CMAC_INIT 173 +# define EVP_F_CMLL_T4_INIT_KEY 179 # define EVP_F_D2I_PKEY 100 # define EVP_F_DO_SIGVER_INIT 161 # define EVP_F_DSAPKEY2PKCS8 134 @@ -1471,6 +1524,7 @@ void ERR_load_EVP_strings(void); # define EVP_R_UNSUPPORTED_PRF 125 # define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 # define EVP_R_UNSUPPORTED_SALT_TYPE 126 +# define EVP_R_WRAP_MODE_NOT_ALLOWED 170 # define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 # define EVP_R_WRONG_PUBLIC_KEY_TYPE 110 diff --git a/libs/openssl/crypto/evp/evp_enc.c b/libs/openssl/crypto/evp/evp_enc.c index 4e983c4b..65f0e024 100644 --- a/libs/openssl/crypto/evp/evp_enc.c +++ b/libs/openssl/crypto/evp/evp_enc.c @@ -169,8 +169,14 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, #endif #ifdef OPENSSL_FIPS - if (FIPS_mode()) + if (FIPS_mode()) { + const EVP_CIPHER *fcipher; + if (cipher) + fcipher = evp_get_fips_cipher(cipher); + if (fcipher) + cipher = fcipher; return FIPS_cipherinit(ctx, cipher, key, iv, enc); + } #endif ctx->cipher = cipher; if (ctx->cipher->ctx_size) { @@ -183,7 +189,8 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ctx->cipher_data = NULL; } ctx->key_len = cipher->key_len; - ctx->flags = 0; + /* Preserve wrap enable flag, zero everything else */ + ctx->flags &= EVP_CIPHER_CTX_FLAG_WRAP_ALLOW; if (ctx->cipher->flags & EVP_CIPH_CTRL_INIT) { if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_INIT, 0, NULL)) { EVPerr(EVP_F_EVP_CIPHERINIT_EX, EVP_R_INITIALIZATION_ERROR); @@ -206,6 +213,12 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, || ctx->cipher->block_size == 8 || ctx->cipher->block_size == 16); + if (!(ctx->flags & EVP_CIPHER_CTX_FLAG_WRAP_ALLOW) + && EVP_CIPHER_CTX_mode(ctx) == EVP_CIPH_WRAP_MODE) { + EVPerr(EVP_F_EVP_CIPHERINIT_EX, EVP_R_WRAP_MODE_NOT_ALLOWED); + return 0; + } + if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_CUSTOM_IV)) { switch (EVP_CIPHER_CTX_mode(ctx)) { diff --git a/libs/openssl/crypto/evp/evp_err.c b/libs/openssl/crypto/evp/evp_err.c index 686a6995..15cf5532 100644 --- a/libs/openssl/crypto/evp/evp_err.c +++ b/libs/openssl/crypto/evp/evp_err.c @@ -1,6 +1,6 @@ /* crypto/evp/evp_err.c */ /* ==================================================================== - * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. + * Copyright (c) 1999-2013 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -73,11 +73,13 @@ static ERR_STRING_DATA EVP_str_functs[] = { {ERR_FUNC(EVP_F_AESNI_INIT_KEY), "AESNI_INIT_KEY"}, {ERR_FUNC(EVP_F_AESNI_XTS_CIPHER), "AESNI_XTS_CIPHER"}, {ERR_FUNC(EVP_F_AES_INIT_KEY), "AES_INIT_KEY"}, + {ERR_FUNC(EVP_F_AES_T4_INIT_KEY), "AES_T4_INIT_KEY"}, {ERR_FUNC(EVP_F_AES_XTS), "AES_XTS"}, {ERR_FUNC(EVP_F_AES_XTS_CIPHER), "AES_XTS_CIPHER"}, {ERR_FUNC(EVP_F_ALG_MODULE_INIT), "ALG_MODULE_INIT"}, {ERR_FUNC(EVP_F_CAMELLIA_INIT_KEY), "CAMELLIA_INIT_KEY"}, {ERR_FUNC(EVP_F_CMAC_INIT), "CMAC_INIT"}, + {ERR_FUNC(EVP_F_CMLL_T4_INIT_KEY), "CMLL_T4_INIT_KEY"}, {ERR_FUNC(EVP_F_D2I_PKEY), "D2I_PKEY"}, {ERR_FUNC(EVP_F_DO_SIGVER_INIT), "DO_SIGVER_INIT"}, {ERR_FUNC(EVP_F_DSAPKEY2PKCS8), "DSAPKEY2PKCS8"}, @@ -232,6 +234,7 @@ static ERR_STRING_DATA EVP_str_reasons[] = { {ERR_REASON(EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM), "unsupported private key algorithm"}, {ERR_REASON(EVP_R_UNSUPPORTED_SALT_TYPE), "unsupported salt type"}, + {ERR_REASON(EVP_R_WRAP_MODE_NOT_ALLOWED), "wrap mode not allowed"}, {ERR_REASON(EVP_R_WRONG_FINAL_BLOCK_LENGTH), "wrong final block length"}, {ERR_REASON(EVP_R_WRONG_PUBLIC_KEY_TYPE), "wrong public key type"}, {0, NULL} diff --git a/libs/openssl/crypto/evp/evp_fips.c b/libs/openssl/crypto/evp/evp_fips.c deleted file mode 100644 index 71a32fca..00000000 --- a/libs/openssl/crypto/evp/evp_fips.c +++ /dev/null @@ -1,310 +0,0 @@ -/* crypto/evp/evp_fips.c */ -/* - * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL - * project. - */ -/* ==================================================================== - * Copyright (c) 2011 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - */ - -#include - -#ifdef OPENSSL_FIPS -# include - -const EVP_CIPHER *EVP_aes_128_cbc(void) -{ - return FIPS_evp_aes_128_cbc(); -} - -const EVP_CIPHER *EVP_aes_128_ccm(void) -{ - return FIPS_evp_aes_128_ccm(); -} - -const EVP_CIPHER *EVP_aes_128_cfb1(void) -{ - return FIPS_evp_aes_128_cfb1(); -} - -const EVP_CIPHER *EVP_aes_128_cfb128(void) -{ - return FIPS_evp_aes_128_cfb128(); -} - -const EVP_CIPHER *EVP_aes_128_cfb8(void) -{ - return FIPS_evp_aes_128_cfb8(); -} - -const EVP_CIPHER *EVP_aes_128_ctr(void) -{ - return FIPS_evp_aes_128_ctr(); -} - -const EVP_CIPHER *EVP_aes_128_ecb(void) -{ - return FIPS_evp_aes_128_ecb(); -} - -const EVP_CIPHER *EVP_aes_128_gcm(void) -{ - return FIPS_evp_aes_128_gcm(); -} - -const EVP_CIPHER *EVP_aes_128_ofb(void) -{ - return FIPS_evp_aes_128_ofb(); -} - -const EVP_CIPHER *EVP_aes_128_xts(void) -{ - return FIPS_evp_aes_128_xts(); -} - -const EVP_CIPHER *EVP_aes_192_cbc(void) -{ - return FIPS_evp_aes_192_cbc(); -} - -const EVP_CIPHER *EVP_aes_192_ccm(void) -{ - return FIPS_evp_aes_192_ccm(); -} - -const EVP_CIPHER *EVP_aes_192_cfb1(void) -{ - return FIPS_evp_aes_192_cfb1(); -} - -const EVP_CIPHER *EVP_aes_192_cfb128(void) -{ - return FIPS_evp_aes_192_cfb128(); -} - -const EVP_CIPHER *EVP_aes_192_cfb8(void) -{ - return FIPS_evp_aes_192_cfb8(); -} - -const EVP_CIPHER *EVP_aes_192_ctr(void) -{ - return FIPS_evp_aes_192_ctr(); -} - -const EVP_CIPHER *EVP_aes_192_ecb(void) -{ - return FIPS_evp_aes_192_ecb(); -} - -const EVP_CIPHER *EVP_aes_192_gcm(void) -{ - return FIPS_evp_aes_192_gcm(); -} - -const EVP_CIPHER *EVP_aes_192_ofb(void) -{ - return FIPS_evp_aes_192_ofb(); -} - -const EVP_CIPHER *EVP_aes_256_cbc(void) -{ - return FIPS_evp_aes_256_cbc(); -} - -const EVP_CIPHER *EVP_aes_256_ccm(void) -{ - return FIPS_evp_aes_256_ccm(); -} - -const EVP_CIPHER *EVP_aes_256_cfb1(void) -{ - return FIPS_evp_aes_256_cfb1(); -} - -const EVP_CIPHER *EVP_aes_256_cfb128(void) -{ - return FIPS_evp_aes_256_cfb128(); -} - -const EVP_CIPHER *EVP_aes_256_cfb8(void) -{ - return FIPS_evp_aes_256_cfb8(); -} - -const EVP_CIPHER *EVP_aes_256_ctr(void) -{ - return FIPS_evp_aes_256_ctr(); -} - -const EVP_CIPHER *EVP_aes_256_ecb(void) -{ - return FIPS_evp_aes_256_ecb(); -} - -const EVP_CIPHER *EVP_aes_256_gcm(void) -{ - return FIPS_evp_aes_256_gcm(); -} - -const EVP_CIPHER *EVP_aes_256_ofb(void) -{ - return FIPS_evp_aes_256_ofb(); -} - -const EVP_CIPHER *EVP_aes_256_xts(void) -{ - return FIPS_evp_aes_256_xts(); -} - -const EVP_CIPHER *EVP_des_ede(void) -{ - return FIPS_evp_des_ede(); -} - -const EVP_CIPHER *EVP_des_ede3(void) -{ - return FIPS_evp_des_ede3(); -} - -const EVP_CIPHER *EVP_des_ede3_cbc(void) -{ - return FIPS_evp_des_ede3_cbc(); -} - -const EVP_CIPHER *EVP_des_ede3_cfb1(void) -{ - return FIPS_evp_des_ede3_cfb1(); -} - -const EVP_CIPHER *EVP_des_ede3_cfb64(void) -{ - return FIPS_evp_des_ede3_cfb64(); -} - -const EVP_CIPHER *EVP_des_ede3_cfb8(void) -{ - return FIPS_evp_des_ede3_cfb8(); -} - -const EVP_CIPHER *EVP_des_ede3_ecb(void) -{ - return FIPS_evp_des_ede3_ecb(); -} - -const EVP_CIPHER *EVP_des_ede3_ofb(void) -{ - return FIPS_evp_des_ede3_ofb(); -} - -const EVP_CIPHER *EVP_des_ede_cbc(void) -{ - return FIPS_evp_des_ede_cbc(); -} - -const EVP_CIPHER *EVP_des_ede_cfb64(void) -{ - return FIPS_evp_des_ede_cfb64(); -} - -const EVP_CIPHER *EVP_des_ede_ecb(void) -{ - return FIPS_evp_des_ede_ecb(); -} - -const EVP_CIPHER *EVP_des_ede_ofb(void) -{ - return FIPS_evp_des_ede_ofb(); -} - -const EVP_CIPHER *EVP_enc_null(void) -{ - return FIPS_evp_enc_null(); -} - -const EVP_MD *EVP_sha1(void) -{ - return FIPS_evp_sha1(); -} - -const EVP_MD *EVP_sha224(void) -{ - return FIPS_evp_sha224(); -} - -const EVP_MD *EVP_sha256(void) -{ - return FIPS_evp_sha256(); -} - -const EVP_MD *EVP_sha384(void) -{ - return FIPS_evp_sha384(); -} - -const EVP_MD *EVP_sha512(void) -{ - return FIPS_evp_sha512(); -} - -const EVP_MD *EVP_dss(void) -{ - return FIPS_evp_dss(); -} - -const EVP_MD *EVP_dss1(void) -{ - return FIPS_evp_dss1(); -} - -const EVP_MD *EVP_ecdsa(void) -{ - return FIPS_evp_ecdsa(); -} - -#endif diff --git a/libs/openssl/crypto/evp/evp_key.c b/libs/openssl/crypto/evp/evp_key.c index 71fa627b..5be9e336 100644 --- a/libs/openssl/crypto/evp/evp_key.c +++ b/libs/openssl/crypto/evp/evp_key.c @@ -104,6 +104,8 @@ int EVP_read_pw_string_min(char *buf, int min, int len, const char *prompt, if ((prompt == NULL) && (prompt_string[0] != '\0')) prompt = prompt_string; ui = UI_new(); + if (ui == NULL) + return -1; UI_add_input_string(ui, prompt, 0, buf, min, (len >= BUFSIZ) ? BUFSIZ - 1 : len); if (verify) @@ -137,7 +139,7 @@ int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, EVP_MD_CTX_init(&c); for (;;) { if (!EVP_DigestInit_ex(&c, md, NULL)) - return 0; + goto err; if (addmd++) if (!EVP_DigestUpdate(&c, &(md_buf[0]), mds)) goto err; @@ -188,6 +190,6 @@ int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, rv = type->key_len; err: EVP_MD_CTX_cleanup(&c); - OPENSSL_cleanse(&(md_buf[0]), EVP_MAX_MD_SIZE); + OPENSSL_cleanse(md_buf, sizeof(md_buf)); return rv; } diff --git a/libs/openssl/crypto/evp/evp_lib.c b/libs/openssl/crypto/evp/evp_lib.c index d4d2b4b2..7e0bab90 100644 --- a/libs/openssl/crypto/evp/evp_lib.c +++ b/libs/openssl/crypto/evp/evp_lib.c @@ -60,6 +60,10 @@ #include "cryptlib.h" #include #include +#ifdef OPENSSL_FIPS +# include +# include "evp_locl.h" +#endif int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type) { @@ -67,9 +71,24 @@ int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type) if (c->cipher->set_asn1_parameters != NULL) ret = c->cipher->set_asn1_parameters(c, type); - else if (c->cipher->flags & EVP_CIPH_FLAG_DEFAULT_ASN1) - ret = EVP_CIPHER_set_asn1_iv(c, type); - else + else if (c->cipher->flags & EVP_CIPH_FLAG_DEFAULT_ASN1) { + switch (EVP_CIPHER_CTX_mode(c)) { + case EVP_CIPH_WRAP_MODE: + if (EVP_CIPHER_CTX_nid(c) == NID_id_smime_alg_CMS3DESwrap) + ASN1_TYPE_set(type, V_ASN1_NULL, NULL); + ret = 1; + break; + + case EVP_CIPH_GCM_MODE: + case EVP_CIPH_CCM_MODE: + case EVP_CIPH_XTS_MODE: + ret = -1; + break; + + default: + ret = EVP_CIPHER_set_asn1_iv(c, type); + } + } else ret = -1; return (ret); } @@ -80,9 +99,24 @@ int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type) if (c->cipher->get_asn1_parameters != NULL) ret = c->cipher->get_asn1_parameters(c, type); - else if (c->cipher->flags & EVP_CIPH_FLAG_DEFAULT_ASN1) - ret = EVP_CIPHER_get_asn1_iv(c, type); - else + else if (c->cipher->flags & EVP_CIPH_FLAG_DEFAULT_ASN1) { + switch (EVP_CIPHER_CTX_mode(c)) { + + case EVP_CIPH_WRAP_MODE: + ret = 1; + break; + + case EVP_CIPH_GCM_MODE: + case EVP_CIPH_CCM_MODE: + case EVP_CIPH_XTS_MODE: + ret = -1; + break; + + default: + ret = EVP_CIPHER_get_asn1_iv(c, type); + break; + } + } else ret = -1; return (ret); } @@ -200,12 +234,22 @@ const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx) unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher) { +#ifdef OPENSSL_FIPS + const EVP_CIPHER *fcipher; + fcipher = evp_get_fips_cipher(cipher); + if (fcipher && fcipher->flags & EVP_CIPH_FLAG_FIPS) + return cipher->flags | EVP_CIPH_FLAG_FIPS; +#endif return cipher->flags; } unsigned long EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx) { +#ifdef OPENSSL_FIPS + return EVP_CIPHER_flags(ctx->cipher); +#else return ctx->cipher->flags; +#endif } void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx) @@ -272,8 +316,40 @@ int EVP_MD_size(const EVP_MD *md) return md->md_size; } +#ifdef OPENSSL_FIPS + +const EVP_MD *evp_get_fips_md(const EVP_MD *md) +{ + int nid = EVP_MD_type(md); + if (nid == NID_dsa) + return FIPS_evp_dss1(); + else if (nid == NID_dsaWithSHA) + return FIPS_evp_dss(); + else if (nid == NID_ecdsa_with_SHA1) + return FIPS_evp_ecdsa(); + else + return FIPS_get_digestbynid(nid); +} + +const EVP_CIPHER *evp_get_fips_cipher(const EVP_CIPHER *cipher) +{ + int nid = cipher->nid; + if (nid == NID_undef) + return FIPS_evp_enc_null(); + else + return FIPS_get_cipherbynid(nid); +} + +#endif + unsigned long EVP_MD_flags(const EVP_MD *md) { +#ifdef OPENSSL_FIPS + const EVP_MD *fmd; + fmd = evp_get_fips_md(md); + if (fmd && fmd->flags & EVP_MD_FLAG_FIPS) + return md->flags | EVP_MD_FLAG_FIPS; +#endif return md->flags; } diff --git a/libs/openssl/crypto/evp/evp_locl.h b/libs/openssl/crypto/evp/evp_locl.h index 980dadab..2bb709a0 100644 --- a/libs/openssl/crypto/evp/evp_locl.h +++ b/libs/openssl/crypto/evp/evp_locl.h @@ -333,6 +333,9 @@ int PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, const EVP_CIPHER *c, const EVP_MD *md, int en_de); +const EVP_MD *evp_get_fips_md(const EVP_MD *md); +const EVP_CIPHER *evp_get_fips_cipher(const EVP_CIPHER *cipher); + #ifdef OPENSSL_FIPS # ifdef OPENSSL_DOING_MAKEDEPEND diff --git a/libs/openssl/crypto/evp/evp_pbe.c b/libs/openssl/crypto/evp/evp_pbe.c index e3fa95db..7934c95f 100644 --- a/libs/openssl/crypto/evp/evp_pbe.c +++ b/libs/openssl/crypto/evp/evp_pbe.c @@ -228,12 +228,16 @@ int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, int md_nid, EVP_PBE_KEYGEN *keygen) { EVP_PBE_CTL *pbe_tmp; - if (!pbe_algs) + + if (pbe_algs == NULL) { pbe_algs = sk_EVP_PBE_CTL_new(pbe_cmp); - if (!(pbe_tmp = (EVP_PBE_CTL *)OPENSSL_malloc(sizeof(EVP_PBE_CTL)))) { - EVPerr(EVP_F_EVP_PBE_ALG_ADD_TYPE, ERR_R_MALLOC_FAILURE); - return 0; + if (pbe_algs == NULL) + goto err; } + + if ((pbe_tmp = OPENSSL_malloc(sizeof(*pbe_tmp))) == NULL) + goto err; + pbe_tmp->pbe_type = pbe_type; pbe_tmp->pbe_nid = pbe_nid; pbe_tmp->cipher_nid = cipher_nid; @@ -242,6 +246,10 @@ int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, sk_EVP_PBE_CTL_push(pbe_algs, pbe_tmp); return 1; + + err: + EVPerr(EVP_F_EVP_PBE_ALG_ADD_TYPE, ERR_R_MALLOC_FAILURE); + return 0; } int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, diff --git a/libs/openssl/crypto/evp/m_dss.c b/libs/openssl/crypto/evp/m_dss.c index f22ba522..14784486 100644 --- a/libs/openssl/crypto/evp/m_dss.c +++ b/libs/openssl/crypto/evp/m_dss.c @@ -66,7 +66,6 @@ #endif #ifndef OPENSSL_NO_SHA -# ifndef OPENSSL_FIPS static int init(EVP_MD_CTX *ctx) { @@ -102,5 +101,4 @@ const EVP_MD *EVP_dss(void) { return (&dsa_md); } -# endif #endif diff --git a/libs/openssl/crypto/evp/m_dss1.c b/libs/openssl/crypto/evp/m_dss1.c index 976148e4..e36fabff 100644 --- a/libs/openssl/crypto/evp/m_dss1.c +++ b/libs/openssl/crypto/evp/m_dss1.c @@ -68,8 +68,6 @@ # include # endif -# ifndef OPENSSL_FIPS - static int init(EVP_MD_CTX *ctx) { return SHA1_Init(ctx->md_data); @@ -104,5 +102,4 @@ const EVP_MD *EVP_dss1(void) { return (&dss1_md); } -# endif #endif diff --git a/libs/openssl/crypto/evp/m_ecdsa.c b/libs/openssl/crypto/evp/m_ecdsa.c index d11a13a6..803d3149 100644 --- a/libs/openssl/crypto/evp/m_ecdsa.c +++ b/libs/openssl/crypto/evp/m_ecdsa.c @@ -116,7 +116,6 @@ #include #ifndef OPENSSL_NO_SHA -# ifndef OPENSSL_FIPS static int init(EVP_MD_CTX *ctx) { @@ -152,5 +151,4 @@ const EVP_MD *EVP_ecdsa(void) { return (&ecdsa_md); } -# endif #endif diff --git a/libs/openssl/crypto/evp/m_sha1.c b/libs/openssl/crypto/evp/m_sha1.c index 0cc63555..a74e6b77 100644 --- a/libs/openssl/crypto/evp/m_sha1.c +++ b/libs/openssl/crypto/evp/m_sha1.c @@ -59,16 +59,14 @@ #include #include "cryptlib.h" -#ifndef OPENSSL_FIPS +#ifndef OPENSSL_NO_SHA -# ifndef OPENSSL_NO_SHA - -# include -# include -# include -# ifndef OPENSSL_NO_RSA -# include -# endif +# include +# include +# include +# ifndef OPENSSL_NO_RSA +# include +# endif static int init(EVP_MD_CTX *ctx) { @@ -104,9 +102,9 @@ const EVP_MD *EVP_sha1(void) { return (&sha1_md); } -# endif +#endif -# ifndef OPENSSL_NO_SHA256 +#ifndef OPENSSL_NO_SHA256 static int init224(EVP_MD_CTX *ctx) { return SHA224_Init(ctx->md_data); @@ -171,9 +169,9 @@ const EVP_MD *EVP_sha256(void) { return (&sha256_md); } -# endif /* ifndef OPENSSL_NO_SHA256 */ +#endif /* ifndef OPENSSL_NO_SHA256 */ -# ifndef OPENSSL_NO_SHA512 +#ifndef OPENSSL_NO_SHA512 static int init384(EVP_MD_CTX *ctx) { return SHA384_Init(ctx->md_data); @@ -234,6 +232,4 @@ const EVP_MD *EVP_sha512(void) { return (&sha512_md); } -# endif /* ifndef OPENSSL_NO_SHA512 */ - -#endif +#endif /* ifndef OPENSSL_NO_SHA512 */ diff --git a/libs/openssl/crypto/evp/m_sigver.c b/libs/openssl/crypto/evp/m_sigver.c index e153a183..4492d207 100644 --- a/libs/openssl/crypto/evp/m_sigver.c +++ b/libs/openssl/crypto/evp/m_sigver.c @@ -73,15 +73,18 @@ static int do_sigver_init(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, if (ctx->pctx == NULL) return 0; - if (type == NULL) { - int def_nid; - if (EVP_PKEY_get_default_digest_nid(pkey, &def_nid) > 0) - type = EVP_get_digestbynid(def_nid); - } + if (!(ctx->pctx->pmeth->flags & EVP_PKEY_FLAG_SIGCTX_CUSTOM)) { - if (type == NULL) { - EVPerr(EVP_F_DO_SIGVER_INIT, EVP_R_NO_DEFAULT_DIGEST); - return 0; + if (type == NULL) { + int def_nid; + if (EVP_PKEY_get_default_digest_nid(pkey, &def_nid) > 0) + type = EVP_get_digestbynid(def_nid); + } + + if (type == NULL) { + EVPerr(EVP_F_DO_SIGVER_INIT, EVP_R_NO_DEFAULT_DIGEST); + return 0; + } } if (ver) { @@ -103,6 +106,8 @@ static int do_sigver_init(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, return 0; if (pctx) *pctx = ctx->pctx; + if (ctx->pctx->pmeth->flags & EVP_PKEY_FLAG_SIGCTX_CUSTOM) + return 1; if (!EVP_DigestInit_ex(ctx, type, e)) return 0; return 1; @@ -124,7 +129,19 @@ int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, size_t *siglen) { int sctx, r = 0; - if (ctx->pctx->pmeth->signctx) + EVP_PKEY_CTX *pctx = ctx->pctx; + if (pctx->pmeth->flags & EVP_PKEY_FLAG_SIGCTX_CUSTOM) { + EVP_PKEY_CTX *dctx; + if (!sigret) + return pctx->pmeth->signctx(pctx, sigret, siglen, ctx); + dctx = EVP_PKEY_CTX_dup(ctx->pctx); + if (!dctx) + return 0; + r = dctx->pmeth->signctx(dctx, sigret, siglen, ctx); + EVP_PKEY_CTX_free(dctx); + return r; + } + if (pctx->pmeth->signctx) sctx = 1; else sctx = 0; @@ -147,20 +164,19 @@ int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, return 0; } else { if (sctx) { - if (ctx->pctx->pmeth->signctx(ctx->pctx, sigret, siglen, ctx) <= - 0) + if (pctx->pmeth->signctx(pctx, sigret, siglen, ctx) <= 0) return 0; } else { int s = EVP_MD_size(ctx->digest); - if (s < 0 - || EVP_PKEY_sign(ctx->pctx, sigret, siglen, NULL, s) <= 0) + if (s < 0 || EVP_PKEY_sign(pctx, sigret, siglen, NULL, s) <= 0) return 0; } } return 1; } -int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, unsigned char *sig, size_t siglen) +int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, + size_t siglen) { EVP_MD_CTX tmp_ctx; unsigned char md[EVP_MAX_MD_SIZE]; diff --git a/libs/openssl/crypto/evp/p_lib.c b/libs/openssl/crypto/evp/p_lib.c index 2b84dc75..c0171244 100644 --- a/libs/openssl/crypto/evp/p_lib.c +++ b/libs/openssl/crypto/evp/p_lib.c @@ -253,7 +253,7 @@ int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len) int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key) { - if (!EVP_PKEY_set_type(pkey, type)) + if (pkey == NULL || !EVP_PKEY_set_type(pkey, type)) return 0; pkey->pkey.ptr = key; return (key != NULL); @@ -337,7 +337,7 @@ int EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key) DH *EVP_PKEY_get1_DH(EVP_PKEY *pkey) { - if (pkey->type != EVP_PKEY_DH) { + if (pkey->type != EVP_PKEY_DH && pkey->type != EVP_PKEY_DHX) { EVPerr(EVP_F_EVP_PKEY_GET1_DH, EVP_R_EXPECTING_A_DH_KEY); return NULL; } diff --git a/libs/openssl/crypto/evp/pmeth_gn.c b/libs/openssl/crypto/evp/pmeth_gn.c index 59f81342..6435f1b6 100644 --- a/libs/openssl/crypto/evp/pmeth_gn.c +++ b/libs/openssl/crypto/evp/pmeth_gn.c @@ -96,12 +96,17 @@ int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey) return -1; } - if (!ppkey) + if (ppkey == NULL) return -1; - if (!*ppkey) + if (*ppkey == NULL) *ppkey = EVP_PKEY_new(); + if (*ppkey == NULL) { + EVPerr(EVP_F_EVP_PKEY_PARAMGEN, ERR_R_MALLOC_FAILURE); + return -1; + } + ret = ctx->pmeth->paramgen(ctx, *ppkey); if (ret <= 0) { EVP_PKEY_free(*ppkey); diff --git a/libs/openssl/crypto/evp/pmeth_lib.c b/libs/openssl/crypto/evp/pmeth_lib.c index ae8bccb0..9f81d100 100644 --- a/libs/openssl/crypto/evp/pmeth_lib.c +++ b/libs/openssl/crypto/evp/pmeth_lib.c @@ -75,6 +75,7 @@ STACK_OF(EVP_PKEY_METHOD) *app_pkey_methods = NULL; extern const EVP_PKEY_METHOD rsa_pkey_meth, dh_pkey_meth, dsa_pkey_meth; extern const EVP_PKEY_METHOD ec_pkey_meth, hmac_pkey_meth, cmac_pkey_meth; +extern const EVP_PKEY_METHOD dhx_pkey_meth; static const EVP_PKEY_METHOD *standard_methods[] = { #ifndef OPENSSL_NO_RSA @@ -90,7 +91,10 @@ static const EVP_PKEY_METHOD *standard_methods[] = { &ec_pkey_meth, #endif &hmac_pkey_meth, - &cmac_pkey_meth + &cmac_pkey_meth, +#ifndef OPENSSL_NO_DH + &dhx_pkey_meth +#endif }; DECLARE_OBJ_BSEARCH_CMP_FN(const EVP_PKEY_METHOD *, const EVP_PKEY_METHOD *, diff --git a/libs/openssl/crypto/hmac/hm_ameth.c b/libs/openssl/crypto/hmac/hm_ameth.c index 641c797e..944c6c85 100644 --- a/libs/openssl/crypto/hmac/hm_ameth.c +++ b/libs/openssl/crypto/hmac/hm_ameth.c @@ -87,7 +87,7 @@ static int hmac_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2) { switch (op) { case ASN1_PKEY_CTRL_DEFAULT_MD_NID: - *(int *)arg2 = NID_sha1; + *(int *)arg2 = NID_sha256; return 1; default: @@ -108,9 +108,14 @@ static int old_hmac_decode(EVP_PKEY *pkey, ASN1_OCTET_STRING *os; os = ASN1_OCTET_STRING_new(); if (!os || !ASN1_OCTET_STRING_set(os, *pder, derlen)) - return 0; - EVP_PKEY_assign(pkey, EVP_PKEY_HMAC, os); + goto err; + if (!EVP_PKEY_assign(pkey, EVP_PKEY_HMAC, os)) + goto err; return 1; + + err: + ASN1_OCTET_STRING_free(os); + return 0; } static int old_hmac_encode(const EVP_PKEY *pkey, unsigned char **pder) diff --git a/libs/openssl/crypto/hmac/hmac.c b/libs/openssl/crypto/hmac/hmac.c index 33d88be1..51a0a3ef 100644 --- a/libs/openssl/crypto/hmac/hmac.c +++ b/libs/openssl/crypto/hmac/hmac.c @@ -72,6 +72,16 @@ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, unsigned char pad[HMAC_MAX_MD_CBLOCK]; #ifdef OPENSSL_FIPS + /* If FIPS mode switch to approved implementation if possible */ + if (FIPS_mode()) { + const EVP_MD *fipsmd; + if (md) { + fipsmd = FIPS_get_digestbynid(EVP_MD_type(md)); + if (fipsmd) + md = fipsmd; + } + } + if (FIPS_mode()) { /* If we have an ENGINE need to allow non FIPS */ if ((impl || ctx->i_ctx.engine) diff --git a/libs/openssl/crypto/md32_common.h b/libs/openssl/crypto/md32_common.h index 18238334..96828d26 100644 --- a/libs/openssl/crypto/md32_common.h +++ b/libs/openssl/crypto/md32_common.h @@ -215,12 +215,30 @@ asm ("bswapl %0":"=r"(r):"0"(r)); \ *((unsigned int *)(c))=r; (c)+=4; r; }) # endif +# elif defined(__aarch64__) +# if defined(__BYTE_ORDER__) +# if defined(__ORDER_LITTLE_ENDIAN__) && __BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__ +# define HOST_c2l(c,l) ({ unsigned int r; \ + asm ("rev %w0,%w1" \ + :"=r"(r) \ + :"r"(*((const unsigned int *)(c))));\ + (c)+=4; (l)=r; }) +# define HOST_l2c(l,c) ({ unsigned int r; \ + asm ("rev %w0,%w1" \ + :"=r"(r) \ + :"r"((unsigned int)(l)));\ + *((unsigned int *)(c))=r; (c)+=4; r; }) +# elif defined(__ORDER_BIG_ENDIAN__) && __BYTE_ORDER__==__ORDER_BIG_ENDIAN__ +# define HOST_c2l(c,l) ((l)=*((const unsigned int *)(c)), (c)+=4, (l)) +# define HOST_l2c(l,c) (*((unsigned int *)(c))=(l), (c)+=4, (l)) +# endif +# endif # endif # endif -# endif -# if defined(__s390__) || defined(__s390x__) -# define HOST_c2l(c,l) ((l)=*((const unsigned int *)(c)), (c)+=4, (l)) -# define HOST_l2c(l,c) (*((unsigned int *)(c))=(l), (c)+=4, (l)) +# if defined(__s390__) || defined(__s390x__) +# define HOST_c2l(c,l) ((l)=*((const unsigned int *)(c)), (c)+=4, (l)) +# define HOST_l2c(l,c) (*((unsigned int *)(c))=(l), (c)+=4, (l)) +# endif # endif # ifndef HOST_c2l @@ -250,12 +268,12 @@ (c)+=4; (l); }) # endif # endif -# endif -# if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__) -# ifndef B_ENDIAN - /* See comment in DATA_ORDER_IS_BIG_ENDIAN section. */ -# define HOST_c2l(c,l) ((l)=*((const unsigned int *)(c)), (c)+=4, l) -# define HOST_l2c(l,c) (*((unsigned int *)(c))=(l), (c)+=4, l) +# if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__) +# ifndef B_ENDIAN + /* See comment in DATA_ORDER_IS_BIG_ENDIAN section. */ +# define HOST_c2l(c,l) ((l)=*((const unsigned int *)(c)), (c)+=4, l) +# define HOST_l2c(l,c) (*((unsigned int *)(c))=(l), (c)+=4, l) +# endif # endif # endif diff --git a/libs/openssl/crypto/md5/md5_locl.h b/libs/openssl/crypto/md5/md5_locl.h index 5f6f2fde..82e69218 100644 --- a/libs/openssl/crypto/md5/md5_locl.h +++ b/libs/openssl/crypto/md5/md5_locl.h @@ -71,6 +71,8 @@ # define md5_block_data_order md5_block_asm_data_order # elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64) # define md5_block_data_order md5_block_asm_data_order +# elif defined(__sparc) || defined(__sparc__) +# define md5_block_data_order md5_block_asm_data_order # endif #endif diff --git a/libs/openssl/crypto/mem_clr.c b/libs/openssl/crypto/mem_clr.c index 3df1f392..1a06636d 100644 --- a/libs/openssl/crypto/mem_clr.c +++ b/libs/openssl/crypto/mem_clr.c @@ -66,6 +66,10 @@ void OPENSSL_cleanse(void *ptr, size_t len) { unsigned char *p = ptr; size_t loop = len, ctr = cleanse_ctr; + + if (ptr == NULL) + return; + while (loop--) { *(p++) = (unsigned char)ctr; ctr += (17 + ((size_t)p & 0xF)); diff --git a/libs/openssl/crypto/modes/cbc128.c b/libs/openssl/crypto/modes/cbc128.c index 1ed79672..c13caea5 100644 --- a/libs/openssl/crypto/modes/cbc128.c +++ b/libs/openssl/crypto/modes/cbc128.c @@ -59,7 +59,7 @@ #endif #include -#ifndef STRICT_ALIGNMENT +#if !defined(STRICT_ALIGNMENT) && !defined(PEDANTIC) # define STRICT_ALIGNMENT 0 #endif diff --git a/libs/openssl/crypto/modes/gcm128.c b/libs/openssl/crypto/modes/gcm128.c index 0ee569fb..e299131c 100644 --- a/libs/openssl/crypto/modes/gcm128.c +++ b/libs/openssl/crypto/modes/gcm128.c @@ -687,20 +687,31 @@ static void gcm_gmult_1bit(u64 Xi[2], const u64 H[2]) #endif -#if TABLE_BITS==4 && defined(GHASH_ASM) +#if TABLE_BITS==4 && (defined(GHASH_ASM) || defined(OPENSSL_CPUID_OBJ)) # if !defined(I386_ONLY) && \ (defined(__i386) || defined(__i386__) || \ defined(__x86_64) || defined(__x86_64__) || \ defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64)) # define GHASH_ASM_X86_OR_64 # define GCM_FUNCREF_4BIT -extern unsigned int OPENSSL_ia32cap_P[2]; +extern unsigned int OPENSSL_ia32cap_P[]; void gcm_init_clmul(u128 Htable[16], const u64 Xi[2]); void gcm_gmult_clmul(u64 Xi[2], const u128 Htable[16]); void gcm_ghash_clmul(u64 Xi[2], const u128 Htable[16], const u8 *inp, size_t len); +# if defined(__i386) || defined(__i386__) || defined(_M_IX86) +# define gcm_init_avx gcm_init_clmul +# define gcm_gmult_avx gcm_gmult_clmul +# define gcm_ghash_avx gcm_ghash_clmul +# else +void gcm_init_avx(u128 Htable[16], const u64 Xi[2]); +void gcm_gmult_avx(u64 Xi[2], const u128 Htable[16]); +void gcm_ghash_avx(u64 Xi[2], const u128 Htable[16], const u8 *inp, + size_t len); +# endif + # if defined(__i386) || defined(__i386__) || defined(_M_IX86) # define GHASH_ASM_X86 void gcm_gmult_4bit_mmx(u64 Xi[2], const u128 Htable[16]); @@ -711,15 +722,41 @@ void gcm_gmult_4bit_x86(u64 Xi[2], const u128 Htable[16]); void gcm_ghash_4bit_x86(u64 Xi[2], const u128 Htable[16], const u8 *inp, size_t len); # endif -# elif defined(__arm__) || defined(__arm) +# elif defined(__arm__) || defined(__arm) || defined(__aarch64__) # include "arm_arch.h" -# if __ARM_ARCH__>=7 +# if __ARM_MAX_ARCH__>=7 # define GHASH_ASM_ARM # define GCM_FUNCREF_4BIT +# define PMULL_CAPABLE (OPENSSL_armcap_P & ARMV8_PMULL) +# if defined(__arm__) || defined(__arm) +# define NEON_CAPABLE (OPENSSL_armcap_P & ARMV7_NEON) +# endif +void gcm_init_neon(u128 Htable[16], const u64 Xi[2]); void gcm_gmult_neon(u64 Xi[2], const u128 Htable[16]); void gcm_ghash_neon(u64 Xi[2], const u128 Htable[16], const u8 *inp, size_t len); +void gcm_init_v8(u128 Htable[16], const u64 Xi[2]); +void gcm_gmult_v8(u64 Xi[2], const u128 Htable[16]); +void gcm_ghash_v8(u64 Xi[2], const u128 Htable[16], const u8 *inp, + size_t len); # endif +# elif defined(__sparc__) || defined(__sparc) +# include "sparc_arch.h" +# define GHASH_ASM_SPARC +# define GCM_FUNCREF_4BIT +extern unsigned int OPENSSL_sparcv9cap_P[]; +void gcm_init_vis3(u128 Htable[16], const u64 Xi[2]); +void gcm_gmult_vis3(u64 Xi[2], const u128 Htable[16]); +void gcm_ghash_vis3(u64 Xi[2], const u128 Htable[16], const u8 *inp, + size_t len); +# elif defined(OPENSSL_CPUID_OBJ) && (defined(__powerpc__) || defined(__ppc__) || defined(_ARCH_PPC)) +# include "ppc_arch.h" +# define GHASH_ASM_PPC +# define GCM_FUNCREF_4BIT +void gcm_init_p8(u128 Htable[16], const u64 Xi[2]); +void gcm_gmult_p8(u64 Xi[2], const u128 Htable[16]); +void gcm_ghash_p8(u64 Xi[2], const u128 Htable[16], const u8 *inp, + size_t len); # endif #endif @@ -768,9 +805,15 @@ void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block) # if !defined(GHASH_ASM_X86) || defined(OPENSSL_IA32_SSE2) if (OPENSSL_ia32cap_P[0] & (1 << 24) && /* check FXSR bit */ OPENSSL_ia32cap_P[1] & (1 << 1)) { /* check PCLMULQDQ bit */ - gcm_init_clmul(ctx->Htable, ctx->H.u); - ctx->gmult = gcm_gmult_clmul; - ctx->ghash = gcm_ghash_clmul; + if (((OPENSSL_ia32cap_P[1] >> 22) & 0x41) == 0x41) { /* AVX+MOVBE */ + gcm_init_avx(ctx->Htable, ctx->H.u); + ctx->gmult = gcm_gmult_avx; + ctx->ghash = gcm_ghash_avx; + } else { + gcm_init_clmul(ctx->Htable, ctx->H.u); + ctx->gmult = gcm_gmult_clmul; + ctx->ghash = gcm_ghash_clmul; + } return; } # endif @@ -792,13 +835,52 @@ void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block) ctx->ghash = gcm_ghash_4bit; # endif # elif defined(GHASH_ASM_ARM) - if (OPENSSL_armcap_P & ARMV7_NEON) { +# ifdef PMULL_CAPABLE + if (PMULL_CAPABLE) { + gcm_init_v8(ctx->Htable, ctx->H.u); + ctx->gmult = gcm_gmult_v8; + ctx->ghash = gcm_ghash_v8; + } else +# endif +# ifdef NEON_CAPABLE + if (NEON_CAPABLE) { + gcm_init_neon(ctx->Htable, ctx->H.u); ctx->gmult = gcm_gmult_neon; ctx->ghash = gcm_ghash_neon; + } else +# endif + { + gcm_init_4bit(ctx->Htable, ctx->H.u); + ctx->gmult = gcm_gmult_4bit; +# if defined(GHASH) + ctx->ghash = gcm_ghash_4bit; +# else + ctx->ghash = NULL; +# endif + } +# elif defined(GHASH_ASM_SPARC) + if (OPENSSL_sparcv9cap_P[0] & SPARCV9_VIS3) { + gcm_init_vis3(ctx->Htable, ctx->H.u); + ctx->gmult = gcm_gmult_vis3; + ctx->ghash = gcm_ghash_vis3; + } else { + gcm_init_4bit(ctx->Htable, ctx->H.u); + ctx->gmult = gcm_gmult_4bit; + ctx->ghash = gcm_ghash_4bit; + } +# elif defined(GHASH_ASM_PPC) + if (OPENSSL_ppccap_P & PPC_CRYPTO207) { + gcm_init_p8(ctx->Htable, ctx->H.u); + ctx->gmult = gcm_gmult_p8; + ctx->ghash = gcm_ghash_p8; } else { gcm_init_4bit(ctx->Htable, ctx->H.u); ctx->gmult = gcm_gmult_4bit; +# if defined(GHASH) ctx->ghash = gcm_ghash_4bit; +# else + ctx->ghash = NULL; +# endif } # else gcm_init_4bit(ctx->Htable, ctx->H.u); diff --git a/libs/openssl/crypto/modes/modes.h b/libs/openssl/crypto/modes/modes.h index 880f020d..fd488499 100644 --- a/libs/openssl/crypto/modes/modes.h +++ b/libs/openssl/crypto/modes/modes.h @@ -148,6 +148,16 @@ int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, const unsigned char *inp, unsigned char *out, size_t len, int enc); +size_t CRYPTO_128_wrap(void *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, size_t inlen, + block128_f block); + +size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, size_t inlen, + block128_f block); + #ifdef __cplusplus } #endif diff --git a/libs/openssl/crypto/modes/modes_lcl.h b/libs/openssl/crypto/modes/modes_lcl.h index 296849b8..fe14ec70 100644 --- a/libs/openssl/crypto/modes/modes_lcl.h +++ b/libs/openssl/crypto/modes/modes_lcl.h @@ -25,39 +25,49 @@ typedef unsigned int u32; typedef unsigned char u8; #define STRICT_ALIGNMENT 1 -#if defined(__i386) || defined(__i386__) || \ - defined(__x86_64) || defined(__x86_64__) || \ - defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || \ - defined(__s390__) || defined(__s390x__) -# undef STRICT_ALIGNMENT +#ifndef PEDANTIC +# if defined(__i386) || defined(__i386__) || \ + defined(__x86_64) || defined(__x86_64__) || \ + defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || \ + defined(__aarch64__) || \ + defined(__s390__) || defined(__s390x__) +# undef STRICT_ALIGNMENT +# endif #endif #if !defined(PEDANTIC) && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) # if defined(__GNUC__) && __GNUC__>=2 # if defined(__x86_64) || defined(__x86_64__) -# define BSWAP8(x) ({ u64 ret=(x); \ +# define BSWAP8(x) ({ u64 ret_=(x); \ asm ("bswapq %0" \ - : "+r"(ret)); ret; }) -# define BSWAP4(x) ({ u32 ret=(x); \ + : "+r"(ret_)); ret_; }) +# define BSWAP4(x) ({ u32 ret_=(x); \ asm ("bswapl %0" \ - : "+r"(ret)); ret; }) + : "+r"(ret_)); ret_; }) # elif (defined(__i386) || defined(__i386__)) && !defined(I386_ONLY) -# define BSWAP8(x) ({ u32 lo=(u64)(x)>>32,hi=(x); \ +# define BSWAP8(x) ({ u32 lo_=(u64)(x)>>32,hi_=(x); \ asm ("bswapl %0; bswapl %1" \ - : "+r"(hi),"+r"(lo)); \ - (u64)hi<<32|lo; }) -# define BSWAP4(x) ({ u32 ret=(x); \ + : "+r"(hi_),"+r"(lo_)); \ + (u64)hi_<<32|lo_; }) +# define BSWAP4(x) ({ u32 ret_=(x); \ asm ("bswapl %0" \ - : "+r"(ret)); ret; }) + : "+r"(ret_)); ret_; }) +# elif defined(__aarch64__) +# define BSWAP8(x) ({ u64 ret_; \ + asm ("rev %0,%1" \ + : "=r"(ret_) : "r"(x)); ret_; }) +# define BSWAP4(x) ({ u32 ret_; \ + asm ("rev %w0,%w1" \ + : "=r"(ret_) : "r"(x)); ret_; }) # elif (defined(__arm__) || defined(__arm)) && !defined(STRICT_ALIGNMENT) -# define BSWAP8(x) ({ u32 lo=(u64)(x)>>32,hi=(x); \ +# define BSWAP8(x) ({ u32 lo_=(u64)(x)>>32,hi_=(x); \ asm ("rev %0,%0; rev %1,%1" \ - : "+r"(hi),"+r"(lo)); \ - (u64)hi<<32|lo; }) -# define BSWAP4(x) ({ u32 ret; \ + : "+r"(hi_),"+r"(lo_)); \ + (u64)hi_<<32|lo_; }) +# define BSWAP4(x) ({ u32 ret_; \ asm ("rev %0,%1" \ - : "=r"(ret) : "r"((u32)(x))); \ - ret; }) + : "=r"(ret_) : "r"((u32)(x))); \ + ret_; }) # endif # elif defined(_MSC_VER) # if _MSC_VER>=1300 diff --git a/libs/openssl/crypto/modes/wrap128.c b/libs/openssl/crypto/modes/wrap128.c new file mode 100644 index 00000000..38497837 --- /dev/null +++ b/libs/openssl/crypto/modes/wrap128.c @@ -0,0 +1,138 @@ +/* crypto/modes/wrap128.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2013 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + */ + +#include "cryptlib.h" +#include + +static const unsigned char default_iv[] = { + 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, +}; + +/* + * Input size limit: lower than maximum of standards but far larger than + * anything that will be used in practice. + */ +#define CRYPTO128_WRAP_MAX (1UL << 31) + +size_t CRYPTO_128_wrap(void *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, size_t inlen, + block128_f block) +{ + unsigned char *A, B[16], *R; + size_t i, j, t; + if ((inlen & 0x7) || (inlen < 8) || (inlen > CRYPTO128_WRAP_MAX)) + return 0; + A = B; + t = 1; + memmove(out + 8, in, inlen); + if (!iv) + iv = default_iv; + + memcpy(A, iv, 8); + + for (j = 0; j < 6; j++) { + R = out + 8; + for (i = 0; i < inlen; i += 8, t++, R += 8) { + memcpy(B + 8, R, 8); + block(B, B, key); + A[7] ^= (unsigned char)(t & 0xff); + if (t > 0xff) { + A[6] ^= (unsigned char)((t >> 8) & 0xff); + A[5] ^= (unsigned char)((t >> 16) & 0xff); + A[4] ^= (unsigned char)((t >> 24) & 0xff); + } + memcpy(R, B + 8, 8); + } + } + memcpy(out, A, 8); + return inlen + 8; +} + +size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, size_t inlen, + block128_f block) +{ + unsigned char *A, B[16], *R; + size_t i, j, t; + inlen -= 8; + if ((inlen & 0x7) || (inlen < 16) || (inlen > CRYPTO128_WRAP_MAX)) + return 0; + A = B; + t = 6 * (inlen >> 3); + memcpy(A, in, 8); + memmove(out, in + 8, inlen); + for (j = 0; j < 6; j++) { + R = out + inlen - 8; + for (i = 0; i < inlen; i += 8, t--, R -= 8) { + A[7] ^= (unsigned char)(t & 0xff); + if (t > 0xff) { + A[6] ^= (unsigned char)((t >> 8) & 0xff); + A[5] ^= (unsigned char)((t >> 16) & 0xff); + A[4] ^= (unsigned char)((t >> 24) & 0xff); + } + memcpy(B + 8, R, 8); + block(B, B, key); + memcpy(R, B + 8, 8); + } + } + if (!iv) + iv = default_iv; + if (memcmp(A, iv, 8)) { + OPENSSL_cleanse(out, inlen); + return 0; + } + return inlen; +} diff --git a/libs/openssl/crypto/o_str.c b/libs/openssl/crypto/o_str.c index b23ef323..4e2d0967 100644 --- a/libs/openssl/crypto/o_str.c +++ b/libs/openssl/crypto/o_str.c @@ -62,7 +62,7 @@ #include "o_str.h" #if !defined(OPENSSL_IMPLEMENTS_strncasecmp) && \ - !defined(OPENSSL_SYSNAME_WIN32) && \ + !defined(OPENSSL_SYSNAME_WIN32) && !defined(OPENSSL_SYSNAME_WINCE) && \ !defined(NETWARE_CLIB) # include #endif diff --git a/libs/openssl/crypto/o_time.c b/libs/openssl/crypto/o_time.c index e18b71d4..58413fe9 100644 --- a/libs/openssl/crypto/o_time.c +++ b/libs/openssl/crypto/o_time.c @@ -246,8 +246,72 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result) static long date_to_julian(int y, int m, int d); static void julian_to_date(long jd, int *y, int *m, int *d); +static int julian_adj(const struct tm *tm, int off_day, long offset_sec, + long *pday, int *psec); int OPENSSL_gmtime_adj(struct tm *tm, int off_day, long offset_sec) +{ + int time_sec, time_year, time_month, time_day; + long time_jd; + + /* Convert time and offset into julian day and seconds */ + if (!julian_adj(tm, off_day, offset_sec, &time_jd, &time_sec)) + return 0; + + /* Convert Julian day back to date */ + + julian_to_date(time_jd, &time_year, &time_month, &time_day); + + if (time_year < 1900 || time_year > 9999) + return 0; + + /* Update tm structure */ + + tm->tm_year = time_year - 1900; + tm->tm_mon = time_month - 1; + tm->tm_mday = time_day; + + tm->tm_hour = time_sec / 3600; + tm->tm_min = (time_sec / 60) % 60; + tm->tm_sec = time_sec % 60; + + return 1; + +} + +int OPENSSL_gmtime_diff(int *pday, int *psec, + const struct tm *from, const struct tm *to) +{ + int from_sec, to_sec, diff_sec; + long from_jd, to_jd, diff_day; + if (!julian_adj(from, 0, 0, &from_jd, &from_sec)) + return 0; + if (!julian_adj(to, 0, 0, &to_jd, &to_sec)) + return 0; + diff_day = to_jd - from_jd; + diff_sec = to_sec - from_sec; + /* Adjust differences so both positive or both negative */ + if (diff_day > 0 && diff_sec < 0) { + diff_day--; + diff_sec += SECS_PER_DAY; + } + if (diff_day < 0 && diff_sec > 0) { + diff_day++; + diff_sec -= SECS_PER_DAY; + } + + if (pday) + *pday = (int)diff_day; + if (psec) + *psec = diff_sec; + + return 1; + +} + +/* Convert tm structure and offset into julian day and seconds */ +static int julian_adj(const struct tm *tm, int off_day, long offset_sec, + long *pday, int *psec) { int offset_hms, offset_day; long time_jd; @@ -284,25 +348,9 @@ int OPENSSL_gmtime_adj(struct tm *tm, int off_day, long offset_sec) if (time_jd < 0) return 0; - /* Convert Julian day back to date */ - - julian_to_date(time_jd, &time_year, &time_month, &time_day); - - if (time_year < 1900 || time_year > 9999) - return 0; - - /* Update tm structure */ - - tm->tm_year = time_year - 1900; - tm->tm_mon = time_month - 1; - tm->tm_mday = time_day; - - tm->tm_hour = offset_hms / 3600; - tm->tm_min = (offset_hms / 60) % 60; - tm->tm_sec = offset_hms % 60; - + *pday = time_jd; + *psec = offset_hms; return 1; - } /* @@ -354,27 +402,39 @@ int main(int argc, char **argv) int check_time(long offset) { - struct tm tm1, tm2; + struct tm tm1, tm2, o1; + int off_day, off_sec; + long toffset; time_t t1, t2; time(&t1); t2 = t1 + offset; OPENSSL_gmtime(&t2, &tm2); OPENSSL_gmtime(&t1, &tm1); + o1 = tm1; OPENSSL_gmtime_adj(&tm1, 0, offset); - if ((tm1.tm_year == tm2.tm_year) && - (tm1.tm_mon == tm2.tm_mon) && - (tm1.tm_mday == tm2.tm_mday) && - (tm1.tm_hour == tm2.tm_hour) && - (tm1.tm_min == tm2.tm_min) && (tm1.tm_sec == tm2.tm_sec)) - return 1; - fprintf(stderr, "TIME ERROR!!\n"); - fprintf(stderr, "Time1: %d/%d/%d, %d:%02d:%02d\n", - tm2.tm_mday, tm2.tm_mon + 1, tm2.tm_year + 1900, - tm2.tm_hour, tm2.tm_min, tm2.tm_sec); - fprintf(stderr, "Time2: %d/%d/%d, %d:%02d:%02d\n", - tm1.tm_mday, tm1.tm_mon + 1, tm1.tm_year + 1900, - tm1.tm_hour, tm1.tm_min, tm1.tm_sec); - return 0; + if ((tm1.tm_year != tm2.tm_year) || + (tm1.tm_mon != tm2.tm_mon) || + (tm1.tm_mday != tm2.tm_mday) || + (tm1.tm_hour != tm2.tm_hour) || + (tm1.tm_min != tm2.tm_min) || (tm1.tm_sec != tm2.tm_sec)) { + fprintf(stderr, "TIME ERROR!!\n"); + fprintf(stderr, "Time1: %d/%d/%d, %d:%02d:%02d\n", + tm2.tm_mday, tm2.tm_mon + 1, tm2.tm_year + 1900, + tm2.tm_hour, tm2.tm_min, tm2.tm_sec); + fprintf(stderr, "Time2: %d/%d/%d, %d:%02d:%02d\n", + tm1.tm_mday, tm1.tm_mon + 1, tm1.tm_year + 1900, + tm1.tm_hour, tm1.tm_min, tm1.tm_sec); + return 0; + } + OPENSSL_gmtime_diff(&o1, &tm1, &off_day, &off_sec); + toffset = (long)off_day *SECS_PER_DAY + off_sec; + if (offset != toffset) { + fprintf(stderr, "TIME OFFSET ERROR!!\n"); + fprintf(stderr, "Expected %ld, Got %ld (%d:%d)\n", + offset, toffset, off_day, off_sec); + return 0; + } + return 1; } #endif diff --git a/libs/openssl/crypto/o_time.h b/libs/openssl/crypto/o_time.h index 901b2005..a83a3d24 100644 --- a/libs/openssl/crypto/o_time.h +++ b/libs/openssl/crypto/o_time.h @@ -64,5 +64,7 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result); int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec); +int OPENSSL_gmtime_diff(int *pday, int *psec, + const struct tm *from, const struct tm *to); #endif diff --git a/libs/openssl/crypto/objects/obj_dat.h b/libs/openssl/crypto/objects/obj_dat.h index bc69665b..b7e3cf28 100644 --- a/libs/openssl/crypto/objects/obj_dat.h +++ b/libs/openssl/crypto/objects/obj_dat.h @@ -62,12 +62,12 @@ * [including the GNU Public Licence.] */ -#define NUM_NID 920 -#define NUM_SN 913 -#define NUM_LN 913 -#define NUM_OBJ 857 +#define NUM_NID 958 +#define NUM_SN 951 +#define NUM_LN 951 +#define NUM_OBJ 890 -static const unsigned char lvalues[5974]={ +static const unsigned char lvalues[6255]={ 0x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 0] OBJ_rsadsi */ 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 6] OBJ_pkcs */ 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x02, /* [ 13] OBJ_md2 */ @@ -919,6 +919,39 @@ static const unsigned char lvalues[5974]={ 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x08,/* [5946] OBJ_mgf1 */ 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0A,/* [5955] OBJ_rsassaPss */ 0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x07,/* [5964] OBJ_rsaesOaep */ +0x2A,0x86,0x48,0xCE,0x3E,0x02,0x01, /* [5973] OBJ_dhpublicnumber */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x01,/* [5980] OBJ_brainpoolP160r1 */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x02,/* [5989] OBJ_brainpoolP160t1 */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x03,/* [5998] OBJ_brainpoolP192r1 */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x04,/* [6007] OBJ_brainpoolP192t1 */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x05,/* [6016] OBJ_brainpoolP224r1 */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x06,/* [6025] OBJ_brainpoolP224t1 */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x07,/* [6034] OBJ_brainpoolP256r1 */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x08,/* [6043] OBJ_brainpoolP256t1 */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x09,/* [6052] OBJ_brainpoolP320r1 */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x0A,/* [6061] OBJ_brainpoolP320t1 */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x0B,/* [6070] OBJ_brainpoolP384r1 */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x0C,/* [6079] OBJ_brainpoolP384t1 */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x0D,/* [6088] OBJ_brainpoolP512r1 */ +0x2B,0x24,0x03,0x03,0x02,0x08,0x01,0x01,0x0E,/* [6097] OBJ_brainpoolP512t1 */ +0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x09,/* [6106] OBJ_pSpecified */ +0x2B,0x81,0x05,0x10,0x86,0x48,0x3F,0x00,0x02,/* [6115] OBJ_dhSinglePass_stdDH_sha1kdf_scheme */ +0x2B,0x81,0x04,0x01,0x0B,0x00, /* [6124] OBJ_dhSinglePass_stdDH_sha224kdf_scheme */ +0x2B,0x81,0x04,0x01,0x0B,0x01, /* [6130] OBJ_dhSinglePass_stdDH_sha256kdf_scheme */ +0x2B,0x81,0x04,0x01,0x0B,0x02, /* [6136] OBJ_dhSinglePass_stdDH_sha384kdf_scheme */ +0x2B,0x81,0x04,0x01,0x0B,0x03, /* [6142] OBJ_dhSinglePass_stdDH_sha512kdf_scheme */ +0x2B,0x81,0x05,0x10,0x86,0x48,0x3F,0x00,0x03,/* [6148] OBJ_dhSinglePass_cofactorDH_sha1kdf_scheme */ +0x2B,0x81,0x04,0x01,0x0E,0x00, /* [6157] OBJ_dhSinglePass_cofactorDH_sha224kdf_scheme */ +0x2B,0x81,0x04,0x01,0x0E,0x01, /* [6163] OBJ_dhSinglePass_cofactorDH_sha256kdf_scheme */ +0x2B,0x81,0x04,0x01,0x0E,0x02, /* [6169] OBJ_dhSinglePass_cofactorDH_sha384kdf_scheme */ +0x2B,0x81,0x04,0x01,0x0E,0x03, /* [6175] OBJ_dhSinglePass_cofactorDH_sha512kdf_scheme */ +0x2B,0x06,0x01,0x04,0x01,0xD6,0x79,0x02,0x04,0x02,/* [6181] OBJ_ct_precert_scts */ +0x2B,0x06,0x01,0x04,0x01,0xD6,0x79,0x02,0x04,0x03,/* [6191] OBJ_ct_precert_poison */ +0x2B,0x06,0x01,0x04,0x01,0xD6,0x79,0x02,0x04,0x04,/* [6201] OBJ_ct_precert_signer */ +0x2B,0x06,0x01,0x04,0x01,0xD6,0x79,0x02,0x04,0x05,/* [6211] OBJ_ct_cert_scts */ +0x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x3C,0x02,0x01,0x01,/* [6221] OBJ_jurisdictionLocalityName */ +0x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x3C,0x02,0x01,0x02,/* [6232] OBJ_jurisdictionStateOrProvinceName */ +0x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x3C,0x02,0x01,0x03,/* [6243] OBJ_jurisdictionCountryName */ }; static const ASN1_OBJECT nid_objs[NUM_NID]={ @@ -2399,12 +2432,95 @@ static const ASN1_OBJECT nid_objs[NUM_NID]={ {"AES-256-CBC-HMAC-SHA1","aes-256-cbc-hmac-sha1", NID_aes_256_cbc_hmac_sha1,0,NULL,0}, {"RSAES-OAEP","rsaesOaep",NID_rsaesOaep,9,&(lvalues[5964]),0}, +{"dhpublicnumber","X9.42 DH",NID_dhpublicnumber,7,&(lvalues[5973]),0}, +{"brainpoolP160r1","brainpoolP160r1",NID_brainpoolP160r1,9, + &(lvalues[5980]),0}, +{"brainpoolP160t1","brainpoolP160t1",NID_brainpoolP160t1,9, + &(lvalues[5989]),0}, +{"brainpoolP192r1","brainpoolP192r1",NID_brainpoolP192r1,9, + &(lvalues[5998]),0}, +{"brainpoolP192t1","brainpoolP192t1",NID_brainpoolP192t1,9, + &(lvalues[6007]),0}, +{"brainpoolP224r1","brainpoolP224r1",NID_brainpoolP224r1,9, + &(lvalues[6016]),0}, +{"brainpoolP224t1","brainpoolP224t1",NID_brainpoolP224t1,9, + &(lvalues[6025]),0}, +{"brainpoolP256r1","brainpoolP256r1",NID_brainpoolP256r1,9, + &(lvalues[6034]),0}, +{"brainpoolP256t1","brainpoolP256t1",NID_brainpoolP256t1,9, + &(lvalues[6043]),0}, +{"brainpoolP320r1","brainpoolP320r1",NID_brainpoolP320r1,9, + &(lvalues[6052]),0}, +{"brainpoolP320t1","brainpoolP320t1",NID_brainpoolP320t1,9, + &(lvalues[6061]),0}, +{"brainpoolP384r1","brainpoolP384r1",NID_brainpoolP384r1,9, + &(lvalues[6070]),0}, +{"brainpoolP384t1","brainpoolP384t1",NID_brainpoolP384t1,9, + &(lvalues[6079]),0}, +{"brainpoolP512r1","brainpoolP512r1",NID_brainpoolP512r1,9, + &(lvalues[6088]),0}, +{"brainpoolP512t1","brainpoolP512t1",NID_brainpoolP512t1,9, + &(lvalues[6097]),0}, +{"PSPECIFIED","pSpecified",NID_pSpecified,9,&(lvalues[6106]),0}, +{"dhSinglePass-stdDH-sha1kdf-scheme", + "dhSinglePass-stdDH-sha1kdf-scheme", + NID_dhSinglePass_stdDH_sha1kdf_scheme,9,&(lvalues[6115]),0}, +{"dhSinglePass-stdDH-sha224kdf-scheme", + "dhSinglePass-stdDH-sha224kdf-scheme", + NID_dhSinglePass_stdDH_sha224kdf_scheme,6,&(lvalues[6124]),0}, +{"dhSinglePass-stdDH-sha256kdf-scheme", + "dhSinglePass-stdDH-sha256kdf-scheme", + NID_dhSinglePass_stdDH_sha256kdf_scheme,6,&(lvalues[6130]),0}, +{"dhSinglePass-stdDH-sha384kdf-scheme", + "dhSinglePass-stdDH-sha384kdf-scheme", + NID_dhSinglePass_stdDH_sha384kdf_scheme,6,&(lvalues[6136]),0}, +{"dhSinglePass-stdDH-sha512kdf-scheme", + "dhSinglePass-stdDH-sha512kdf-scheme", + NID_dhSinglePass_stdDH_sha512kdf_scheme,6,&(lvalues[6142]),0}, +{"dhSinglePass-cofactorDH-sha1kdf-scheme", + "dhSinglePass-cofactorDH-sha1kdf-scheme", + NID_dhSinglePass_cofactorDH_sha1kdf_scheme,9,&(lvalues[6148]),0}, +{"dhSinglePass-cofactorDH-sha224kdf-scheme", + "dhSinglePass-cofactorDH-sha224kdf-scheme", + NID_dhSinglePass_cofactorDH_sha224kdf_scheme,6,&(lvalues[6157]),0}, +{"dhSinglePass-cofactorDH-sha256kdf-scheme", + "dhSinglePass-cofactorDH-sha256kdf-scheme", + NID_dhSinglePass_cofactorDH_sha256kdf_scheme,6,&(lvalues[6163]),0}, +{"dhSinglePass-cofactorDH-sha384kdf-scheme", + "dhSinglePass-cofactorDH-sha384kdf-scheme", + NID_dhSinglePass_cofactorDH_sha384kdf_scheme,6,&(lvalues[6169]),0}, +{"dhSinglePass-cofactorDH-sha512kdf-scheme", + "dhSinglePass-cofactorDH-sha512kdf-scheme", + NID_dhSinglePass_cofactorDH_sha512kdf_scheme,6,&(lvalues[6175]),0}, +{"dh-std-kdf","dh-std-kdf",NID_dh_std_kdf,0,NULL,0}, +{"dh-cofactor-kdf","dh-cofactor-kdf",NID_dh_cofactor_kdf,0,NULL,0}, +{"AES-128-CBC-HMAC-SHA256","aes-128-cbc-hmac-sha256", + NID_aes_128_cbc_hmac_sha256,0,NULL,0}, +{"AES-192-CBC-HMAC-SHA256","aes-192-cbc-hmac-sha256", + NID_aes_192_cbc_hmac_sha256,0,NULL,0}, +{"AES-256-CBC-HMAC-SHA256","aes-256-cbc-hmac-sha256", + NID_aes_256_cbc_hmac_sha256,0,NULL,0}, +{"ct_precert_scts","CT Precertificate SCTs",NID_ct_precert_scts,10, + &(lvalues[6181]),0}, +{"ct_precert_poison","CT Precertificate Poison",NID_ct_precert_poison, + 10,&(lvalues[6191]),0}, +{"ct_precert_signer","CT Precertificate Signer",NID_ct_precert_signer, + 10,&(lvalues[6201]),0}, +{"ct_cert_scts","CT Certificate SCTs",NID_ct_cert_scts,10, + &(lvalues[6211]),0}, +{"jurisdictionL","jurisdictionLocalityName", + NID_jurisdictionLocalityName,11,&(lvalues[6221]),0}, +{"jurisdictionST","jurisdictionStateOrProvinceName", + NID_jurisdictionStateOrProvinceName,11,&(lvalues[6232]),0}, +{"jurisdictionC","jurisdictionCountryName", + NID_jurisdictionCountryName,11,&(lvalues[6243]),0}, }; static const unsigned int sn_objs[NUM_SN]={ 364, /* "AD_DVCS" */ 419, /* "AES-128-CBC" */ 916, /* "AES-128-CBC-HMAC-SHA1" */ +948, /* "AES-128-CBC-HMAC-SHA256" */ 421, /* "AES-128-CFB" */ 650, /* "AES-128-CFB1" */ 653, /* "AES-128-CFB8" */ @@ -2414,6 +2530,7 @@ static const unsigned int sn_objs[NUM_SN]={ 913, /* "AES-128-XTS" */ 423, /* "AES-192-CBC" */ 917, /* "AES-192-CBC-HMAC-SHA1" */ +949, /* "AES-192-CBC-HMAC-SHA256" */ 425, /* "AES-192-CFB" */ 651, /* "AES-192-CFB1" */ 654, /* "AES-192-CFB8" */ @@ -2422,6 +2539,7 @@ static const unsigned int sn_objs[NUM_SN]={ 424, /* "AES-192-OFB" */ 427, /* "AES-256-CBC" */ 918, /* "AES-256-CBC-HMAC-SHA1" */ +950, /* "AES-256-CBC-HMAC-SHA256" */ 429, /* "AES-256-CFB" */ 652, /* "AES-256-CFB1" */ 655, /* "AES-256-CFB8" */ @@ -2537,6 +2655,7 @@ static const unsigned int sn_objs[NUM_SN]={ 69, /* "PBKDF2" */ 162, /* "PBMAC1" */ 127, /* "PKIX" */ +935, /* "PSPECIFIED" */ 98, /* "RC2-40-CBC" */ 166, /* "RC2-64-CBC" */ 37, /* "RC2-CBC" */ @@ -2613,6 +2732,20 @@ static const unsigned int sn_objs[NUM_SN]={ 87, /* "basicConstraints" */ 365, /* "basicOCSPResponse" */ 285, /* "biometricInfo" */ +921, /* "brainpoolP160r1" */ +922, /* "brainpoolP160t1" */ +923, /* "brainpoolP192r1" */ +924, /* "brainpoolP192t1" */ +925, /* "brainpoolP224r1" */ +926, /* "brainpoolP224t1" */ +927, /* "brainpoolP256r1" */ +928, /* "brainpoolP256t1" */ +929, /* "brainpoolP320r1" */ +930, /* "brainpoolP320t1" */ +931, /* "brainpoolP384r1" */ +932, /* "brainpoolP384t1" */ +933, /* "brainpoolP512r1" */ +934, /* "brainpoolP512t1" */ 494, /* "buildingName" */ 860, /* "businessCategory" */ 691, /* "c2onb191v4" */ @@ -2658,6 +2791,10 @@ static const unsigned int sn_objs[NUM_SN]={ 884, /* "crossCertificatePair" */ 806, /* "cryptocom" */ 805, /* "cryptopro" */ +954, /* "ct_cert_scts" */ +952, /* "ct_precert_poison" */ +951, /* "ct_precert_scts" */ +953, /* "ct_precert_signer" */ 500, /* "dITRedirect" */ 451, /* "dNSDomain" */ 495, /* "dSAQuality" */ @@ -2667,7 +2804,20 @@ static const unsigned int sn_objs[NUM_SN]={ 891, /* "deltaRevocationList" */ 107, /* "description" */ 871, /* "destinationIndicator" */ +947, /* "dh-cofactor-kdf" */ +946, /* "dh-std-kdf" */ 28, /* "dhKeyAgreement" */ +941, /* "dhSinglePass-cofactorDH-sha1kdf-scheme" */ +942, /* "dhSinglePass-cofactorDH-sha224kdf-scheme" */ +943, /* "dhSinglePass-cofactorDH-sha256kdf-scheme" */ +944, /* "dhSinglePass-cofactorDH-sha384kdf-scheme" */ +945, /* "dhSinglePass-cofactorDH-sha512kdf-scheme" */ +936, /* "dhSinglePass-stdDH-sha1kdf-scheme" */ +937, /* "dhSinglePass-stdDH-sha224kdf-scheme" */ +938, /* "dhSinglePass-stdDH-sha256kdf-scheme" */ +939, /* "dhSinglePass-stdDH-sha384kdf-scheme" */ +940, /* "dhSinglePass-stdDH-sha512kdf-scheme" */ +920, /* "dhpublicnumber" */ 382, /* "directory" */ 887, /* "distinguishedName" */ 892, /* "dmdName" */ @@ -2978,6 +3128,9 @@ static const unsigned int sn_objs[NUM_SN]={ 86, /* "issuerAltName" */ 770, /* "issuingDistributionPoint" */ 492, /* "janetMailbox" */ +957, /* "jurisdictionC" */ +955, /* "jurisdictionL" */ +956, /* "jurisdictionST" */ 150, /* "keyBag" */ 83, /* "keyUsage" */ 477, /* "lastModifiedBy" */ @@ -3328,6 +3481,10 @@ static const unsigned int ln_objs[NUM_LN]={ 285, /* "Biometric Info" */ 179, /* "CA Issuers" */ 785, /* "CA Repository" */ +954, /* "CT Certificate SCTs" */ +952, /* "CT Precertificate Poison" */ +951, /* "CT Precertificate SCTs" */ +953, /* "CT Precertificate Signer" */ 131, /* "Code Signing" */ 783, /* "Diffie-Hellman based MAC" */ 382, /* "Directory" */ @@ -3451,6 +3608,7 @@ static const unsigned int ln_objs[NUM_LN]={ 85, /* "X509v3 Subject Alternative Name" */ 769, /* "X509v3 Subject Directory Attributes" */ 82, /* "X509v3 Subject Key Identifier" */ +920, /* "X9.42 DH" */ 184, /* "X9.57" */ 185, /* "X9.57 CM ?" */ 478, /* "aRecord" */ @@ -3463,6 +3621,7 @@ static const unsigned int ln_objs[NUM_LN]={ 606, /* "additional verification" */ 419, /* "aes-128-cbc" */ 916, /* "aes-128-cbc-hmac-sha1" */ +948, /* "aes-128-cbc-hmac-sha256" */ 896, /* "aes-128-ccm" */ 421, /* "aes-128-cfb" */ 650, /* "aes-128-cfb1" */ @@ -3474,6 +3633,7 @@ static const unsigned int ln_objs[NUM_LN]={ 913, /* "aes-128-xts" */ 423, /* "aes-192-cbc" */ 917, /* "aes-192-cbc-hmac-sha1" */ +949, /* "aes-192-cbc-hmac-sha256" */ 899, /* "aes-192-ccm" */ 425, /* "aes-192-cfb" */ 651, /* "aes-192-cfb1" */ @@ -3484,6 +3644,7 @@ static const unsigned int ln_objs[NUM_LN]={ 424, /* "aes-192-ofb" */ 427, /* "aes-256-cbc" */ 918, /* "aes-256-cbc-hmac-sha1" */ +950, /* "aes-256-cbc-hmac-sha256" */ 902, /* "aes-256-ccm" */ 429, /* "aes-256-cfb" */ 652, /* "aes-256-cfb1" */ @@ -3502,6 +3663,20 @@ static const unsigned int ln_objs[NUM_LN]={ 93, /* "bf-cfb" */ 92, /* "bf-ecb" */ 94, /* "bf-ofb" */ +921, /* "brainpoolP160r1" */ +922, /* "brainpoolP160t1" */ +923, /* "brainpoolP192r1" */ +924, /* "brainpoolP192t1" */ +925, /* "brainpoolP224r1" */ +926, /* "brainpoolP224t1" */ +927, /* "brainpoolP256r1" */ +928, /* "brainpoolP256t1" */ +929, /* "brainpoolP320r1" */ +930, /* "brainpoolP320t1" */ +931, /* "brainpoolP384r1" */ +932, /* "brainpoolP384t1" */ +933, /* "brainpoolP512r1" */ +934, /* "brainpoolP512t1" */ 494, /* "buildingName" */ 860, /* "businessCategory" */ 691, /* "c2onb191v4" */ @@ -3593,7 +3768,19 @@ static const unsigned int ln_objs[NUM_LN]={ 107, /* "description" */ 871, /* "destinationIndicator" */ 80, /* "desx-cbc" */ +947, /* "dh-cofactor-kdf" */ +946, /* "dh-std-kdf" */ 28, /* "dhKeyAgreement" */ +941, /* "dhSinglePass-cofactorDH-sha1kdf-scheme" */ +942, /* "dhSinglePass-cofactorDH-sha224kdf-scheme" */ +943, /* "dhSinglePass-cofactorDH-sha256kdf-scheme" */ +944, /* "dhSinglePass-cofactorDH-sha384kdf-scheme" */ +945, /* "dhSinglePass-cofactorDH-sha512kdf-scheme" */ +936, /* "dhSinglePass-stdDH-sha1kdf-scheme" */ +937, /* "dhSinglePass-stdDH-sha224kdf-scheme" */ +938, /* "dhSinglePass-stdDH-sha256kdf-scheme" */ +939, /* "dhSinglePass-stdDH-sha384kdf-scheme" */ +940, /* "dhSinglePass-stdDH-sha512kdf-scheme" */ 11, /* "directory services (X.500)" */ 378, /* "directory services - algorithms" */ 887, /* "distinguishedName" */ @@ -3881,6 +4068,9 @@ static const unsigned int ln_objs[NUM_LN]={ 645, /* "itu-t" */ 492, /* "janetMailbox" */ 646, /* "joint-iso-itu-t" */ +957, /* "jurisdictionCountryName" */ +955, /* "jurisdictionLocalityName" */ +956, /* "jurisdictionStateOrProvinceName" */ 150, /* "keyBag" */ 773, /* "kisa" */ 477, /* "lastModifiedBy" */ @@ -3917,6 +4107,7 @@ static const unsigned int ln_objs[NUM_LN]={ 18, /* "organizationalUnitName" */ 475, /* "otherMailbox" */ 876, /* "owner" */ +935, /* "pSpecified" */ 489, /* "pagerTelephoneNumber" */ 782, /* "password based MAC" */ 374, /* "path" */ @@ -4560,6 +4751,14 @@ static const unsigned int obj_objs[NUM_OBJ]={ 505, /* OBJ_mime_mhs_headings 1 3 6 1 7 1 1 */ 506, /* OBJ_mime_mhs_bodies 1 3 6 1 7 1 2 */ 119, /* OBJ_ripemd160WithRSA 1 3 36 3 3 1 2 */ +937, /* OBJ_dhSinglePass_stdDH_sha224kdf_scheme 1 3 132 1 11 0 */ +938, /* OBJ_dhSinglePass_stdDH_sha256kdf_scheme 1 3 132 1 11 1 */ +939, /* OBJ_dhSinglePass_stdDH_sha384kdf_scheme 1 3 132 1 11 2 */ +940, /* OBJ_dhSinglePass_stdDH_sha512kdf_scheme 1 3 132 1 11 3 */ +942, /* OBJ_dhSinglePass_cofactorDH_sha224kdf_scheme 1 3 132 1 14 0 */ +943, /* OBJ_dhSinglePass_cofactorDH_sha256kdf_scheme 1 3 132 1 14 1 */ +944, /* OBJ_dhSinglePass_cofactorDH_sha384kdf_scheme 1 3 132 1 14 2 */ +945, /* OBJ_dhSinglePass_cofactorDH_sha512kdf_scheme 1 3 132 1 14 3 */ 631, /* OBJ_setAttr_GenCryptgrm 2 23 42 3 3 3 1 */ 632, /* OBJ_setAttr_T2Enc 2 23 42 3 3 4 1 */ 633, /* OBJ_setAttr_T2cleartxt 2 23 42 3 3 4 2 */ @@ -4608,6 +4807,7 @@ static const unsigned int obj_objs[NUM_OBJ]={ 416, /* OBJ_ecdsa_with_SHA1 1 2 840 10045 4 1 */ 791, /* OBJ_ecdsa_with_Recommended 1 2 840 10045 4 2 */ 792, /* OBJ_ecdsa_with_Specified 1 2 840 10045 4 3 */ +920, /* OBJ_dhpublicnumber 1 2 840 10046 2 1 */ 258, /* OBJ_id_pkix_mod 1 3 6 1 5 5 7 0 */ 175, /* OBJ_id_pe 1 3 6 1 5 5 7 1 */ 259, /* OBJ_id_qt 1 3 6 1 5 5 7 2 */ @@ -4825,6 +5025,7 @@ static const unsigned int obj_objs[NUM_OBJ]={ 644, /* OBJ_rsaOAEPEncryptionSET 1 2 840 113549 1 1 6 */ 919, /* OBJ_rsaesOaep 1 2 840 113549 1 1 7 */ 911, /* OBJ_mgf1 1 2 840 113549 1 1 8 */ +935, /* OBJ_pSpecified 1 2 840 113549 1 1 9 */ 912, /* OBJ_rsassaPss 1 2 840 113549 1 1 10 */ 668, /* OBJ_sha256WithRSAEncryption 1 2 840 113549 1 1 11 */ 669, /* OBJ_sha384WithRSAEncryption 1 2 840 113549 1 1 12 */ @@ -4886,6 +5087,22 @@ static const unsigned int obj_objs[NUM_OBJ]={ 373, /* OBJ_id_pkix_OCSP_valid 1 3 6 1 5 5 7 48 1 9 */ 374, /* OBJ_id_pkix_OCSP_path 1 3 6 1 5 5 7 48 1 10 */ 375, /* OBJ_id_pkix_OCSP_trustRoot 1 3 6 1 5 5 7 48 1 11 */ +921, /* OBJ_brainpoolP160r1 1 3 36 3 3 2 8 1 1 1 */ +922, /* OBJ_brainpoolP160t1 1 3 36 3 3 2 8 1 1 2 */ +923, /* OBJ_brainpoolP192r1 1 3 36 3 3 2 8 1 1 3 */ +924, /* OBJ_brainpoolP192t1 1 3 36 3 3 2 8 1 1 4 */ +925, /* OBJ_brainpoolP224r1 1 3 36 3 3 2 8 1 1 5 */ +926, /* OBJ_brainpoolP224t1 1 3 36 3 3 2 8 1 1 6 */ +927, /* OBJ_brainpoolP256r1 1 3 36 3 3 2 8 1 1 7 */ +928, /* OBJ_brainpoolP256t1 1 3 36 3 3 2 8 1 1 8 */ +929, /* OBJ_brainpoolP320r1 1 3 36 3 3 2 8 1 1 9 */ +930, /* OBJ_brainpoolP320t1 1 3 36 3 3 2 8 1 1 10 */ +931, /* OBJ_brainpoolP384r1 1 3 36 3 3 2 8 1 1 11 */ +932, /* OBJ_brainpoolP384t1 1 3 36 3 3 2 8 1 1 12 */ +933, /* OBJ_brainpoolP512r1 1 3 36 3 3 2 8 1 1 13 */ +934, /* OBJ_brainpoolP512t1 1 3 36 3 3 2 8 1 1 14 */ +936, /* OBJ_dhSinglePass_stdDH_sha1kdf_scheme 1 3 133 16 840 63 0 2 */ +941, /* OBJ_dhSinglePass_cofactorDH_sha1kdf_scheme 1 3 133 16 840 63 0 3 */ 418, /* OBJ_aes_128_ecb 2 16 840 1 101 3 4 1 1 */ 419, /* OBJ_aes_128_cbc 2 16 840 1 101 3 4 1 2 */ 420, /* OBJ_aes_128_ofb128 2 16 840 1 101 3 4 1 3 */ @@ -5013,6 +5230,10 @@ static const unsigned int obj_objs[NUM_OBJ]={ 138, /* OBJ_ms_efs 1 3 6 1 4 1 311 10 3 4 */ 648, /* OBJ_ms_smartcard_login 1 3 6 1 4 1 311 20 2 2 */ 649, /* OBJ_ms_upn 1 3 6 1 4 1 311 20 2 3 */ +951, /* OBJ_ct_precert_scts 1 3 6 1 4 1 11129 2 4 2 */ +952, /* OBJ_ct_precert_poison 1 3 6 1 4 1 11129 2 4 3 */ +953, /* OBJ_ct_precert_signer 1 3 6 1 4 1 11129 2 4 4 */ +954, /* OBJ_ct_cert_scts 1 3 6 1 4 1 11129 2 4 5 */ 751, /* OBJ_camellia_128_cbc 1 2 392 200011 61 1 1 1 2 */ 752, /* OBJ_camellia_192_cbc 1 2 392 200011 61 1 1 1 3 */ 753, /* OBJ_camellia_256_cbc 1 2 392 200011 61 1 1 1 4 */ @@ -5091,5 +5312,8 @@ static const unsigned int obj_objs[NUM_OBJ]={ 154, /* OBJ_secretBag 1 2 840 113549 1 12 10 1 5 */ 155, /* OBJ_safeContentsBag 1 2 840 113549 1 12 10 1 6 */ 34, /* OBJ_idea_cbc 1 3 6 1 4 1 188 7 1 1 2 */ +955, /* OBJ_jurisdictionLocalityName 1 3 6 1 4 1 311 60 2 1 1 */ +956, /* OBJ_jurisdictionStateOrProvinceName 1 3 6 1 4 1 311 60 2 1 2 */ +957, /* OBJ_jurisdictionCountryName 1 3 6 1 4 1 311 60 2 1 3 */ }; diff --git a/libs/openssl/crypto/objects/obj_mac.h b/libs/openssl/crypto/objects/obj_mac.h index f752aeff..779c309b 100644 --- a/libs/openssl/crypto/objects/obj_mac.h +++ b/libs/openssl/crypto/objects/obj_mac.h @@ -590,6 +590,11 @@ #define NID_mgf1 911 #define OBJ_mgf1 OBJ_pkcs1,8L +#define SN_pSpecified "PSPECIFIED" +#define LN_pSpecified "pSpecified" +#define NID_pSpecified 935 +#define OBJ_pSpecified OBJ_pkcs1,9L + #define SN_rsassaPss "RSASSA-PSS" #define LN_rsassaPss "rsassaPss" #define NID_rsassaPss 912 @@ -4029,3 +4034,161 @@ #define SN_aes_256_cbc_hmac_sha1 "AES-256-CBC-HMAC-SHA1" #define LN_aes_256_cbc_hmac_sha1 "aes-256-cbc-hmac-sha1" #define NID_aes_256_cbc_hmac_sha1 918 + +#define SN_aes_128_cbc_hmac_sha256 "AES-128-CBC-HMAC-SHA256" +#define LN_aes_128_cbc_hmac_sha256 "aes-128-cbc-hmac-sha256" +#define NID_aes_128_cbc_hmac_sha256 948 + +#define SN_aes_192_cbc_hmac_sha256 "AES-192-CBC-HMAC-SHA256" +#define LN_aes_192_cbc_hmac_sha256 "aes-192-cbc-hmac-sha256" +#define NID_aes_192_cbc_hmac_sha256 949 + +#define SN_aes_256_cbc_hmac_sha256 "AES-256-CBC-HMAC-SHA256" +#define LN_aes_256_cbc_hmac_sha256 "aes-256-cbc-hmac-sha256" +#define NID_aes_256_cbc_hmac_sha256 950 + +#define SN_dhpublicnumber "dhpublicnumber" +#define LN_dhpublicnumber "X9.42 DH" +#define NID_dhpublicnumber 920 +#define OBJ_dhpublicnumber OBJ_ISO_US,10046L,2L,1L + +#define SN_brainpoolP160r1 "brainpoolP160r1" +#define NID_brainpoolP160r1 921 +#define OBJ_brainpoolP160r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,1L + +#define SN_brainpoolP160t1 "brainpoolP160t1" +#define NID_brainpoolP160t1 922 +#define OBJ_brainpoolP160t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,2L + +#define SN_brainpoolP192r1 "brainpoolP192r1" +#define NID_brainpoolP192r1 923 +#define OBJ_brainpoolP192r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,3L + +#define SN_brainpoolP192t1 "brainpoolP192t1" +#define NID_brainpoolP192t1 924 +#define OBJ_brainpoolP192t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,4L + +#define SN_brainpoolP224r1 "brainpoolP224r1" +#define NID_brainpoolP224r1 925 +#define OBJ_brainpoolP224r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,5L + +#define SN_brainpoolP224t1 "brainpoolP224t1" +#define NID_brainpoolP224t1 926 +#define OBJ_brainpoolP224t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,6L + +#define SN_brainpoolP256r1 "brainpoolP256r1" +#define NID_brainpoolP256r1 927 +#define OBJ_brainpoolP256r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,7L + +#define SN_brainpoolP256t1 "brainpoolP256t1" +#define NID_brainpoolP256t1 928 +#define OBJ_brainpoolP256t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,8L + +#define SN_brainpoolP320r1 "brainpoolP320r1" +#define NID_brainpoolP320r1 929 +#define OBJ_brainpoolP320r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,9L + +#define SN_brainpoolP320t1 "brainpoolP320t1" +#define NID_brainpoolP320t1 930 +#define OBJ_brainpoolP320t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,10L + +#define SN_brainpoolP384r1 "brainpoolP384r1" +#define NID_brainpoolP384r1 931 +#define OBJ_brainpoolP384r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,11L + +#define SN_brainpoolP384t1 "brainpoolP384t1" +#define NID_brainpoolP384t1 932 +#define OBJ_brainpoolP384t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,12L + +#define SN_brainpoolP512r1 "brainpoolP512r1" +#define NID_brainpoolP512r1 933 +#define OBJ_brainpoolP512r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,13L + +#define SN_brainpoolP512t1 "brainpoolP512t1" +#define NID_brainpoolP512t1 934 +#define OBJ_brainpoolP512t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,14L + +#define OBJ_x9_63_scheme 1L,3L,133L,16L,840L,63L,0L + +#define OBJ_secg_scheme OBJ_certicom_arc,1L + +#define SN_dhSinglePass_stdDH_sha1kdf_scheme "dhSinglePass-stdDH-sha1kdf-scheme" +#define NID_dhSinglePass_stdDH_sha1kdf_scheme 936 +#define OBJ_dhSinglePass_stdDH_sha1kdf_scheme OBJ_x9_63_scheme,2L + +#define SN_dhSinglePass_stdDH_sha224kdf_scheme "dhSinglePass-stdDH-sha224kdf-scheme" +#define NID_dhSinglePass_stdDH_sha224kdf_scheme 937 +#define OBJ_dhSinglePass_stdDH_sha224kdf_scheme OBJ_secg_scheme,11L,0L + +#define SN_dhSinglePass_stdDH_sha256kdf_scheme "dhSinglePass-stdDH-sha256kdf-scheme" +#define NID_dhSinglePass_stdDH_sha256kdf_scheme 938 +#define OBJ_dhSinglePass_stdDH_sha256kdf_scheme OBJ_secg_scheme,11L,1L + +#define SN_dhSinglePass_stdDH_sha384kdf_scheme "dhSinglePass-stdDH-sha384kdf-scheme" +#define NID_dhSinglePass_stdDH_sha384kdf_scheme 939 +#define OBJ_dhSinglePass_stdDH_sha384kdf_scheme OBJ_secg_scheme,11L,2L + +#define SN_dhSinglePass_stdDH_sha512kdf_scheme "dhSinglePass-stdDH-sha512kdf-scheme" +#define NID_dhSinglePass_stdDH_sha512kdf_scheme 940 +#define OBJ_dhSinglePass_stdDH_sha512kdf_scheme OBJ_secg_scheme,11L,3L + +#define SN_dhSinglePass_cofactorDH_sha1kdf_scheme "dhSinglePass-cofactorDH-sha1kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha1kdf_scheme 941 +#define OBJ_dhSinglePass_cofactorDH_sha1kdf_scheme OBJ_x9_63_scheme,3L + +#define SN_dhSinglePass_cofactorDH_sha224kdf_scheme "dhSinglePass-cofactorDH-sha224kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha224kdf_scheme 942 +#define OBJ_dhSinglePass_cofactorDH_sha224kdf_scheme OBJ_secg_scheme,14L,0L + +#define SN_dhSinglePass_cofactorDH_sha256kdf_scheme "dhSinglePass-cofactorDH-sha256kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha256kdf_scheme 943 +#define OBJ_dhSinglePass_cofactorDH_sha256kdf_scheme OBJ_secg_scheme,14L,1L + +#define SN_dhSinglePass_cofactorDH_sha384kdf_scheme "dhSinglePass-cofactorDH-sha384kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha384kdf_scheme 944 +#define OBJ_dhSinglePass_cofactorDH_sha384kdf_scheme OBJ_secg_scheme,14L,2L + +#define SN_dhSinglePass_cofactorDH_sha512kdf_scheme "dhSinglePass-cofactorDH-sha512kdf-scheme" +#define NID_dhSinglePass_cofactorDH_sha512kdf_scheme 945 +#define OBJ_dhSinglePass_cofactorDH_sha512kdf_scheme OBJ_secg_scheme,14L,3L + +#define SN_dh_std_kdf "dh-std-kdf" +#define NID_dh_std_kdf 946 + +#define SN_dh_cofactor_kdf "dh-cofactor-kdf" +#define NID_dh_cofactor_kdf 947 + +#define SN_ct_precert_scts "ct_precert_scts" +#define LN_ct_precert_scts "CT Precertificate SCTs" +#define NID_ct_precert_scts 951 +#define OBJ_ct_precert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,2L + +#define SN_ct_precert_poison "ct_precert_poison" +#define LN_ct_precert_poison "CT Precertificate Poison" +#define NID_ct_precert_poison 952 +#define OBJ_ct_precert_poison 1L,3L,6L,1L,4L,1L,11129L,2L,4L,3L + +#define SN_ct_precert_signer "ct_precert_signer" +#define LN_ct_precert_signer "CT Precertificate Signer" +#define NID_ct_precert_signer 953 +#define OBJ_ct_precert_signer 1L,3L,6L,1L,4L,1L,11129L,2L,4L,4L + +#define SN_ct_cert_scts "ct_cert_scts" +#define LN_ct_cert_scts "CT Certificate SCTs" +#define NID_ct_cert_scts 954 +#define OBJ_ct_cert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,5L + +#define SN_jurisdictionLocalityName "jurisdictionL" +#define LN_jurisdictionLocalityName "jurisdictionLocalityName" +#define NID_jurisdictionLocalityName 955 +#define OBJ_jurisdictionLocalityName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,1L + +#define SN_jurisdictionStateOrProvinceName "jurisdictionST" +#define LN_jurisdictionStateOrProvinceName "jurisdictionStateOrProvinceName" +#define NID_jurisdictionStateOrProvinceName 956 +#define OBJ_jurisdictionStateOrProvinceName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,2L + +#define SN_jurisdictionCountryName "jurisdictionC" +#define LN_jurisdictionCountryName "jurisdictionCountryName" +#define NID_jurisdictionCountryName 957 +#define OBJ_jurisdictionCountryName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,3L diff --git a/libs/openssl/crypto/objects/obj_mac.num b/libs/openssl/crypto/objects/obj_mac.num index 1d0a7c80..8e5ea833 100644 --- a/libs/openssl/crypto/objects/obj_mac.num +++ b/libs/openssl/crypto/objects/obj_mac.num @@ -917,3 +917,41 @@ aes_128_cbc_hmac_sha1 916 aes_192_cbc_hmac_sha1 917 aes_256_cbc_hmac_sha1 918 rsaesOaep 919 +dhpublicnumber 920 +brainpoolP160r1 921 +brainpoolP160t1 922 +brainpoolP192r1 923 +brainpoolP192t1 924 +brainpoolP224r1 925 +brainpoolP224t1 926 +brainpoolP256r1 927 +brainpoolP256t1 928 +brainpoolP320r1 929 +brainpoolP320t1 930 +brainpoolP384r1 931 +brainpoolP384t1 932 +brainpoolP512r1 933 +brainpoolP512t1 934 +pSpecified 935 +dhSinglePass_stdDH_sha1kdf_scheme 936 +dhSinglePass_stdDH_sha224kdf_scheme 937 +dhSinglePass_stdDH_sha256kdf_scheme 938 +dhSinglePass_stdDH_sha384kdf_scheme 939 +dhSinglePass_stdDH_sha512kdf_scheme 940 +dhSinglePass_cofactorDH_sha1kdf_scheme 941 +dhSinglePass_cofactorDH_sha224kdf_scheme 942 +dhSinglePass_cofactorDH_sha256kdf_scheme 943 +dhSinglePass_cofactorDH_sha384kdf_scheme 944 +dhSinglePass_cofactorDH_sha512kdf_scheme 945 +dh_std_kdf 946 +dh_cofactor_kdf 947 +aes_128_cbc_hmac_sha256 948 +aes_192_cbc_hmac_sha256 949 +aes_256_cbc_hmac_sha256 950 +ct_precert_scts 951 +ct_precert_poison 952 +ct_precert_signer 953 +ct_cert_scts 954 +jurisdictionLocalityName 955 +jurisdictionStateOrProvinceName 956 +jurisdictionCountryName 957 diff --git a/libs/openssl/crypto/objects/obj_xref.h b/libs/openssl/crypto/objects/obj_xref.h index b8f7d341..e453e99f 100644 --- a/libs/openssl/crypto/objects/obj_xref.h +++ b/libs/openssl/crypto/objects/obj_xref.h @@ -41,6 +41,21 @@ static const nid_triple sigoid_srt[] = { {NID_id_GostR3411_94_with_GostR3410_2001_cc, NID_id_GostR3411_94, NID_id_GostR3410_2001_cc}, {NID_rsassaPss, NID_undef, NID_rsaEncryption}, + {NID_dhSinglePass_stdDH_sha1kdf_scheme, NID_sha1, NID_dh_std_kdf}, + {NID_dhSinglePass_stdDH_sha224kdf_scheme, NID_sha224, NID_dh_std_kdf}, + {NID_dhSinglePass_stdDH_sha256kdf_scheme, NID_sha256, NID_dh_std_kdf}, + {NID_dhSinglePass_stdDH_sha384kdf_scheme, NID_sha384, NID_dh_std_kdf}, + {NID_dhSinglePass_stdDH_sha512kdf_scheme, NID_sha512, NID_dh_std_kdf}, + {NID_dhSinglePass_cofactorDH_sha1kdf_scheme, NID_sha1, + NID_dh_cofactor_kdf}, + {NID_dhSinglePass_cofactorDH_sha224kdf_scheme, NID_sha224, + NID_dh_cofactor_kdf}, + {NID_dhSinglePass_cofactorDH_sha256kdf_scheme, NID_sha256, + NID_dh_cofactor_kdf}, + {NID_dhSinglePass_cofactorDH_sha384kdf_scheme, NID_sha384, + NID_dh_cofactor_kdf}, + {NID_dhSinglePass_cofactorDH_sha512kdf_scheme, NID_sha512, + NID_dh_cofactor_kdf}, }; static const nid_triple *const sigoid_srt_xref[] = { @@ -54,19 +69,29 @@ static const nid_triple *const sigoid_srt_xref[] = { &sigoid_srt[5], &sigoid_srt[8], &sigoid_srt[12], + &sigoid_srt[30], + &sigoid_srt[35], &sigoid_srt[6], &sigoid_srt[10], &sigoid_srt[11], &sigoid_srt[13], &sigoid_srt[24], &sigoid_srt[20], + &sigoid_srt[32], + &sigoid_srt[37], &sigoid_srt[14], &sigoid_srt[21], + &sigoid_srt[33], + &sigoid_srt[38], &sigoid_srt[15], &sigoid_srt[22], + &sigoid_srt[34], + &sigoid_srt[39], &sigoid_srt[16], &sigoid_srt[23], &sigoid_srt[19], + &sigoid_srt[31], + &sigoid_srt[36], &sigoid_srt[25], &sigoid_srt[26], &sigoid_srt[27], diff --git a/libs/openssl/crypto/objects/obj_xref.txt b/libs/openssl/crypto/objects/obj_xref.txt index cb917182..19c94226 100644 --- a/libs/openssl/crypto/objects/obj_xref.txt +++ b/libs/openssl/crypto/objects/obj_xref.txt @@ -44,3 +44,15 @@ id_GostR3411_94_with_GostR3410_2001 id_GostR3411_94 id_GostR3410_2001 id_GostR3411_94_with_GostR3410_94 id_GostR3411_94 id_GostR3410_94 id_GostR3411_94_with_GostR3410_94_cc id_GostR3411_94 id_GostR3410_94_cc id_GostR3411_94_with_GostR3410_2001_cc id_GostR3411_94 id_GostR3410_2001_cc +# ECDH KDFs and their corresponding message digests and schemes +dhSinglePass_stdDH_sha1kdf_scheme sha1 dh_std_kdf +dhSinglePass_stdDH_sha224kdf_scheme sha224 dh_std_kdf +dhSinglePass_stdDH_sha256kdf_scheme sha256 dh_std_kdf +dhSinglePass_stdDH_sha384kdf_scheme sha384 dh_std_kdf +dhSinglePass_stdDH_sha512kdf_scheme sha512 dh_std_kdf + +dhSinglePass_cofactorDH_sha1kdf_scheme sha1 dh_cofactor_kdf +dhSinglePass_cofactorDH_sha224kdf_scheme sha224 dh_cofactor_kdf +dhSinglePass_cofactorDH_sha256kdf_scheme sha256 dh_cofactor_kdf +dhSinglePass_cofactorDH_sha384kdf_scheme sha384 dh_cofactor_kdf +dhSinglePass_cofactorDH_sha512kdf_scheme sha512 dh_cofactor_kdf diff --git a/libs/openssl/crypto/objects/objects.txt b/libs/openssl/crypto/objects/objects.txt index d3bfad72..b57aabb2 100644 --- a/libs/openssl/crypto/objects/objects.txt +++ b/libs/openssl/crypto/objects/objects.txt @@ -168,6 +168,7 @@ pkcs1 5 : RSA-SHA1 : sha1WithRSAEncryption # According to PKCS #1 version 2.1 pkcs1 7 : RSAES-OAEP : rsaesOaep pkcs1 8 : MGF1 : mgf1 +pkcs1 9 : PSPECIFIED : pSpecified pkcs1 10 : RSASSA-PSS : rsassaPss pkcs1 11 : RSA-SHA256 : sha256WithRSAEncryption @@ -1290,3 +1291,60 @@ kisa 1 6 : SEED-OFB : seed-ofb : AES-128-CBC-HMAC-SHA1 : aes-128-cbc-hmac-sha1 : AES-192-CBC-HMAC-SHA1 : aes-192-cbc-hmac-sha1 : AES-256-CBC-HMAC-SHA1 : aes-256-cbc-hmac-sha1 + : AES-128-CBC-HMAC-SHA256 : aes-128-cbc-hmac-sha256 + : AES-192-CBC-HMAC-SHA256 : aes-192-cbc-hmac-sha256 + : AES-256-CBC-HMAC-SHA256 : aes-256-cbc-hmac-sha256 + +ISO-US 10046 2 1 : dhpublicnumber : X9.42 DH + +# RFC 5639 curve OIDs (see http://www.ietf.org/rfc/rfc5639.txt) +# versionOne OBJECT IDENTIFIER ::= { +# iso(1) identifified-organization(3) teletrust(36) algorithm(3) +# signature-algorithm(3) ecSign(2) ecStdCurvesAndGeneration(8) +# ellipticCurve(1) 1 } +1 3 36 3 3 2 8 1 1 1 : brainpoolP160r1 +1 3 36 3 3 2 8 1 1 2 : brainpoolP160t1 +1 3 36 3 3 2 8 1 1 3 : brainpoolP192r1 +1 3 36 3 3 2 8 1 1 4 : brainpoolP192t1 +1 3 36 3 3 2 8 1 1 5 : brainpoolP224r1 +1 3 36 3 3 2 8 1 1 6 : brainpoolP224t1 +1 3 36 3 3 2 8 1 1 7 : brainpoolP256r1 +1 3 36 3 3 2 8 1 1 8 : brainpoolP256t1 +1 3 36 3 3 2 8 1 1 9 : brainpoolP320r1 +1 3 36 3 3 2 8 1 1 10 : brainpoolP320t1 +1 3 36 3 3 2 8 1 1 11 : brainpoolP384r1 +1 3 36 3 3 2 8 1 1 12 : brainpoolP384t1 +1 3 36 3 3 2 8 1 1 13 : brainpoolP512r1 +1 3 36 3 3 2 8 1 1 14 : brainpoolP512t1 + +# ECDH schemes from RFC5753 +!Alias x9-63-scheme 1 3 133 16 840 63 0 +!Alias secg-scheme certicom-arc 1 + +x9-63-scheme 2 : dhSinglePass-stdDH-sha1kdf-scheme +secg-scheme 11 0 : dhSinglePass-stdDH-sha224kdf-scheme +secg-scheme 11 1 : dhSinglePass-stdDH-sha256kdf-scheme +secg-scheme 11 2 : dhSinglePass-stdDH-sha384kdf-scheme +secg-scheme 11 3 : dhSinglePass-stdDH-sha512kdf-scheme + +x9-63-scheme 3 : dhSinglePass-cofactorDH-sha1kdf-scheme +secg-scheme 14 0 : dhSinglePass-cofactorDH-sha224kdf-scheme +secg-scheme 14 1 : dhSinglePass-cofactorDH-sha256kdf-scheme +secg-scheme 14 2 : dhSinglePass-cofactorDH-sha384kdf-scheme +secg-scheme 14 3 : dhSinglePass-cofactorDH-sha512kdf-scheme +# NIDs for use with lookup tables. + : dh-std-kdf + : dh-cofactor-kdf + +# RFC 6962 Extension OIDs (see http://www.ietf.org/rfc/rfc6962.txt) +1 3 6 1 4 1 11129 2 4 2 : ct_precert_scts : CT Precertificate SCTs +1 3 6 1 4 1 11129 2 4 3 : ct_precert_poison : CT Precertificate Poison +1 3 6 1 4 1 11129 2 4 4 : ct_precert_signer : CT Precertificate Signer +1 3 6 1 4 1 11129 2 4 5 : ct_cert_scts : CT Certificate SCTs + +# CABForum EV SSL Certificate Guidelines +# (see https://cabforum.org/extended-validation/) +# OIDs for Subject Jurisdiction of Incorporation or Registration +1 3 6 1 4 1 311 60 2 1 1 : jurisdictionL : jurisdictionLocalityName +1 3 6 1 4 1 311 60 2 1 2 : jurisdictionST : jurisdictionStateOrProvinceName +1 3 6 1 4 1 311 60 2 1 3 : jurisdictionC : jurisdictionCountryName diff --git a/libs/openssl/crypto/ocsp/ocsp.h b/libs/openssl/crypto/ocsp/ocsp.h index 25ef0195..ca2ee76d 100644 --- a/libs/openssl/crypto/ocsp/ocsp.h +++ b/libs/openssl/crypto/ocsp/ocsp.h @@ -394,11 +394,22 @@ typedef struct ocsp_service_locator_st { OCSP_CERTID *OCSP_CERTID_dup(OCSP_CERTID *id); -OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, char *path, OCSP_REQUEST *req); -OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, char *path, OCSP_REQUEST *req, +OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req); +OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, OCSP_REQUEST *req, int maxline); +int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx); int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx); +OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline); void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx); +void OCSP_set_max_response_length(OCSP_REQ_CTX *rctx, unsigned long len); +int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, + ASN1_VALUE *val); +int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, ASN1_VALUE **pval, + const ASN1_ITEM *it); +BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx); +int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, + ASN1_VALUE *val); +int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path); int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, const char *name, const char *value); @@ -447,7 +458,7 @@ int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, X509_STORE *store, unsigned long flags); -int OCSP_parse_url(char *url, char **phost, char **pport, char **ppath, +int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath, int *pssl); int OCSP_id_issuer_cmp(OCSP_CERTID *a, OCSP_CERTID *b); diff --git a/libs/openssl/crypto/ocsp/ocsp_ht.c b/libs/openssl/crypto/ocsp/ocsp_ht.c index 970fea4a..88b26b38 100644 --- a/libs/openssl/crypto/ocsp/ocsp_ht.c +++ b/libs/openssl/crypto/ocsp/ocsp_ht.c @@ -81,9 +81,10 @@ struct ocsp_req_ctx_st { BIO *io; /* BIO to perform I/O with */ BIO *mem; /* Memory BIO response is built into */ unsigned long asn1_len; /* ASN1 length of response */ + unsigned long max_resp_len; /* Maximum length of response */ }; -#define OCSP_MAX_REQUEST_LENGTH (100 * 1024) +#define OCSP_MAX_RESP_LENGTH (100 * 1024) #define OCSP_MAX_LINE_LEN 4096; /* OCSP states */ @@ -100,15 +101,42 @@ struct ocsp_req_ctx_st { #define OHS_ASN1_HEADER 3 /* OCSP content octets being read */ #define OHS_ASN1_CONTENT 4 +/* First call: ready to start I/O */ +#define OHS_ASN1_WRITE_INIT (5 | OHS_NOREAD) /* Request being sent */ #define OHS_ASN1_WRITE (6 | OHS_NOREAD) /* Request being flushed */ #define OHS_ASN1_FLUSH (7 | OHS_NOREAD) /* Completed */ #define OHS_DONE (8 | OHS_NOREAD) +/* Headers set, no final \r\n included */ +#define OHS_HTTP_HEADER (9 | OHS_NOREAD) static int parse_http_line1(char *line); +OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline) +{ + OCSP_REQ_CTX *rctx; + rctx = OPENSSL_malloc(sizeof(OCSP_REQ_CTX)); + if (!rctx) + return NULL; + rctx->state = OHS_ERROR; + rctx->max_resp_len = OCSP_MAX_RESP_LENGTH; + rctx->mem = BIO_new(BIO_s_mem()); + rctx->io = io; + rctx->asn1_len = 0; + if (maxline > 0) + rctx->iobuflen = maxline; + else + rctx->iobuflen = OCSP_MAX_LINE_LEN; + rctx->iobuf = OPENSSL_malloc(rctx->iobuflen); + if (!rctx->iobuf || !rctx->mem) { + OCSP_REQ_CTX_free(rctx); + return NULL; + } + return rctx; +} + void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx) { if (rctx->mem) @@ -118,20 +146,71 @@ void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx) OPENSSL_free(rctx); } -int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req) +BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx) +{ + return rctx->mem; +} + +void OCSP_set_max_response_length(OCSP_REQ_CTX *rctx, unsigned long len) +{ + if (len == 0) + rctx->max_resp_len = OCSP_MAX_RESP_LENGTH; + else + rctx->max_resp_len = len; +} + +int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, ASN1_VALUE *val) { static const char req_hdr[] = "Content-Type: application/ocsp-request\r\n" "Content-Length: %d\r\n\r\n"; - if (BIO_printf(rctx->mem, req_hdr, i2d_OCSP_REQUEST(req, NULL)) <= 0) + int reqlen = ASN1_item_i2d(val, NULL, it); + if (BIO_printf(rctx->mem, req_hdr, reqlen) <= 0) + return 0; + if (ASN1_item_i2d_bio(it, rctx->mem, val) <= 0) + return 0; + rctx->state = OHS_ASN1_WRITE_INIT; + return 1; +} + +int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, + ASN1_VALUE **pval, const ASN1_ITEM *it) +{ + int rv, len; + const unsigned char *p; + + rv = OCSP_REQ_CTX_nbio(rctx); + if (rv != 1) + return rv; + + len = BIO_get_mem_data(rctx->mem, &p); + *pval = ASN1_item_d2i(NULL, &p, len, it); + if (*pval == NULL) { + rctx->state = OHS_ERROR; return 0; - if (i2d_OCSP_REQUEST_bio(rctx->mem, req) <= 0) + } + return 1; +} + +int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path) +{ + static const char http_hdr[] = "%s %s HTTP/1.0\r\n"; + + if (!path) + path = "/"; + + if (BIO_printf(rctx->mem, http_hdr, op, path) <= 0) return 0; - rctx->state = OHS_ASN1_WRITE; - rctx->asn1_len = BIO_get_mem_data(rctx->mem, NULL); + rctx->state = OHS_HTTP_HEADER; return 1; } +int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req) +{ + return OCSP_REQ_CTX_i2d(rctx, ASN1_ITEM_rptr(OCSP_REQUEST), + (ASN1_VALUE *)req); +} + int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, const char *name, const char *value) { @@ -147,39 +226,27 @@ int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, } if (BIO_write(rctx->mem, "\r\n", 2) != 2) return 0; + rctx->state = OHS_HTTP_HEADER; return 1; } -OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, char *path, OCSP_REQUEST *req, +OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, OCSP_REQUEST *req, int maxline) { - static const char post_hdr[] = "POST %s HTTP/1.0\r\n"; - OCSP_REQ_CTX *rctx; - rctx = OPENSSL_malloc(sizeof(OCSP_REQ_CTX)); + OCSP_REQ_CTX *rctx = NULL; + rctx = OCSP_REQ_CTX_new(io, maxline); if (!rctx) return NULL; - rctx->state = OHS_ERROR; - rctx->mem = BIO_new(BIO_s_mem()); - rctx->io = io; - rctx->asn1_len = 0; - if (maxline > 0) - rctx->iobuflen = maxline; - else - rctx->iobuflen = OCSP_MAX_LINE_LEN; - rctx->iobuf = OPENSSL_malloc(rctx->iobuflen); - if (!rctx->mem || !rctx->iobuf) - goto err; - if (!path) - path = "/"; - if (BIO_printf(rctx->mem, post_hdr, path) <= 0) + if (!OCSP_REQ_CTX_http(rctx, "POST", path)) goto err; if (req && !OCSP_REQ_CTX_set1_req(rctx, req)) goto err; return rctx; + err: OCSP_REQ_CTX_free(rctx); return NULL; @@ -256,7 +323,7 @@ static int parse_http_line1(char *line) } -int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx) +int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx) { int i, n; const unsigned char *p; @@ -277,6 +344,17 @@ int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx) } switch (rctx->state) { + case OHS_HTTP_HEADER: + /* Last operation was adding headers: need a final \r\n */ + if (BIO_write(rctx->mem, "\r\n", 2) != 2) { + rctx->state = OHS_ERROR; + return 0; + } + rctx->state = OHS_ASN1_WRITE_INIT; + + case OHS_ASN1_WRITE_INIT: + rctx->asn1_len = BIO_get_mem_data(rctx->mem, NULL); + rctx->state = OHS_ASN1_WRITE; case OHS_ASN1_WRITE: n = BIO_get_mem_data(rctx->mem, &p); @@ -412,7 +490,7 @@ int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx) rctx->asn1_len |= *p++; } - if (rctx->asn1_len > OCSP_MAX_REQUEST_LENGTH) { + if (rctx->asn1_len > rctx->max_resp_len) { rctx->state = OHS_ERROR; return 0; } @@ -426,18 +504,12 @@ int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx) /* Fall thru */ case OHS_ASN1_CONTENT: - n = BIO_get_mem_data(rctx->mem, &p); + n = BIO_get_mem_data(rctx->mem, NULL); if (n < (int)rctx->asn1_len) goto next_io; - *presp = d2i_OCSP_RESPONSE(NULL, &p, rctx->asn1_len); - if (*presp) { - rctx->state = OHS_DONE; - return 1; - } - - rctx->state = OHS_ERROR; - return 0; + rctx->state = OHS_DONE; + return 1; break; @@ -450,9 +522,16 @@ int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx) } +int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx) +{ + return OCSP_REQ_CTX_nbio_d2i(rctx, + (ASN1_VALUE **)presp, + ASN1_ITEM_rptr(OCSP_RESPONSE)); +} + /* Blocking OCSP request handler: now a special case of non-blocking I/O */ -OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, char *path, OCSP_REQUEST *req) +OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req) { OCSP_RESPONSE *resp = NULL; OCSP_REQ_CTX *ctx; diff --git a/libs/openssl/crypto/ocsp/ocsp_lib.c b/libs/openssl/crypto/ocsp/ocsp_lib.c index d28d6b5c..cabf5393 100644 --- a/libs/openssl/crypto/ocsp/ocsp_lib.c +++ b/libs/openssl/crypto/ocsp/ocsp_lib.c @@ -175,7 +175,7 @@ int OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b) * whether it is SSL. */ -int OCSP_parse_url(char *url, char **phost, char **pport, char **ppath, +int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath, int *pssl) { char *p, *buf; @@ -246,12 +246,6 @@ int OCSP_parse_url(char *url, char **phost, char **pport, char **ppath, if ((p = strchr(p, ':'))) { *p = 0; port = p + 1; - } else { - /* Not found: set default port */ - if (*pssl) - port = "443"; - else - port = "80"; } *pport = BUF_strdup(port); diff --git a/libs/openssl/crypto/ocsp/ocsp_prn.c b/libs/openssl/crypto/ocsp/ocsp_prn.c index 1834256a..47d5f83e 100644 --- a/libs/openssl/crypto/ocsp/ocsp_prn.c +++ b/libs/openssl/crypto/ocsp/ocsp_prn.c @@ -212,8 +212,7 @@ int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags) return 1; } - i = ASN1_STRING_length(rb->response); - if (!(br = OCSP_response_get1_basic(o))) + if ((br = OCSP_response_get1_basic(o)) == NULL) goto err; rd = br->tbsResponseData; l = ASN1_INTEGER_get(rd->version); diff --git a/libs/openssl/crypto/opensslconf.h b/libs/openssl/crypto/opensslconf.h index bab23252..7a64c950 100644 --- a/libs/openssl/crypto/opensslconf.h +++ b/libs/openssl/crypto/opensslconf.h @@ -23,6 +23,9 @@ extern "C" { #ifndef OPENSSL_NO_KRB5 # define OPENSSL_NO_KRB5 #endif +#ifndef OPENSSL_NO_LIBUNBOUND +# define OPENSSL_NO_LIBUNBOUND +#endif #ifndef OPENSSL_NO_MD2 # define OPENSSL_NO_MD2 #endif @@ -35,6 +38,9 @@ extern "C" { #ifndef OPENSSL_NO_SCTP # define OPENSSL_NO_SCTP #endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif #ifndef OPENSSL_NO_STORE # define OPENSSL_NO_STORE #endif @@ -65,6 +71,9 @@ extern "C" { # if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5) # define NO_KRB5 # endif +# if defined(OPENSSL_NO_LIBUNBOUND) && !defined(NO_LIBUNBOUND) +# define NO_LIBUNBOUND +# endif # if defined(OPENSSL_NO_MD2) && !defined(NO_MD2) # define NO_MD2 # endif @@ -77,6 +86,9 @@ extern "C" { # if defined(OPENSSL_NO_SCTP) && !defined(NO_SCTP) # define NO_SCTP # endif +# if defined(OPENSSL_NO_SSL_TRACE) && !defined(NO_SSL_TRACE) +# define NO_SSL_TRACE +# endif # if defined(OPENSSL_NO_STORE) && !defined(NO_STORE) # define NO_STORE # endif @@ -208,7 +220,7 @@ extern "C" { optimization options. Older Sparc's work better with only UNROLL, but there's no way to tell at compile time what it is you're running on */ -#if defined( sun ) /* Newer Sparc's */ +#if defined( __sun ) || defined ( sun ) /* Newer Sparc's */ # define DES_PTR # define DES_RISC1 # define DES_UNROLL diff --git a/libs/openssl/crypto/opensslv.h b/libs/openssl/crypto/opensslv.h index bd66999c..abcef15b 100644 --- a/libs/openssl/crypto/opensslv.h +++ b/libs/openssl/crypto/opensslv.h @@ -30,11 +30,11 @@ extern "C" { * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for * major minor fix final patch/beta) */ -# define OPENSSL_VERSION_NUMBER 0x1000110fL +# define OPENSSL_VERSION_NUMBER 0x1000205fL # ifdef OPENSSL_FIPS -# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1p-fips 9 Jul 2015" +# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2e-fips 3 Dec 2015" # else -# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1p 9 Jul 2015" +# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2e 3 Dec 2015" # endif # define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT diff --git a/libs/openssl/crypto/ossl_typ.h b/libs/openssl/crypto/ossl_typ.h index 0fcb0cea..9144ea2c 100644 --- a/libs/openssl/crypto/ossl_typ.h +++ b/libs/openssl/crypto/ossl_typ.h @@ -100,6 +100,8 @@ typedef int ASN1_BOOLEAN; typedef int ASN1_NULL; # endif +typedef struct asn1_object_st ASN1_OBJECT; + typedef struct ASN1_ITEM_st ASN1_ITEM; typedef struct asn1_pctx_st ASN1_PCTX; diff --git a/libs/openssl/crypto/pem/pem.h b/libs/openssl/crypto/pem/pem.h index 2cdad8ac..d3b23fc9 100644 --- a/libs/openssl/crypto/pem/pem.h +++ b/libs/openssl/crypto/pem/pem.h @@ -129,6 +129,7 @@ extern "C" { # define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY" # define PEM_STRING_PKCS8INF "PRIVATE KEY" # define PEM_STRING_DHPARAMS "DH PARAMETERS" +# define PEM_STRING_DHXPARAMS "X9.42 DH PARAMETERS" # define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" # define PEM_STRING_DSAPARAMS "DSA PARAMETERS" # define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" @@ -181,7 +182,6 @@ typedef struct pem_ctx_st { int num_recipient; PEM_USER **recipient; - /*- XXX(ben): don#t think this is used! STACK *x509_chain; / * certificate chain */ @@ -399,8 +399,8 @@ int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, # ifndef OPENSSL_NO_BIO int PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data, long *len); -int PEM_write_bio(BIO *bp, const char *name, char *hdr, unsigned char *data, - long len); +int PEM_write_bio(BIO *bp, const char *name, const char *hdr, + const unsigned char *data, long len); int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, const char *name, BIO *bp, pem_password_cb *cb, void *u); @@ -419,7 +419,8 @@ int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, int PEM_read(FILE *fp, char **name, char **header, unsigned char **data, long *len); -int PEM_write(FILE *fp, char *name, char *hdr, unsigned char *data, long len); +int PEM_write(FILE *fp, const char *name, const char *hdr, + const unsigned char *data, long len); void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, pem_password_cb *cb, void *u); int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, @@ -474,6 +475,7 @@ DECLARE_PEM_rw(EC_PUBKEY, EC_KEY) # endif # ifndef OPENSSL_NO_DH DECLARE_PEM_rw_const(DHparams, DH) +DECLARE_PEM_write_const(DHxparams, DH) # endif DECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY) DECLARE_PEM_rw(PUBKEY, EVP_PKEY) @@ -562,8 +564,10 @@ void ERR_load_PEM_strings(void); # define PEM_F_PEM_PK8PKEY 119 # define PEM_F_PEM_READ 108 # define PEM_F_PEM_READ_BIO 109 +# define PEM_F_PEM_READ_BIO_DHPARAMS 141 # define PEM_F_PEM_READ_BIO_PARAMETERS 140 # define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 +# define PEM_F_PEM_READ_DHPARAMS 142 # define PEM_F_PEM_READ_PRIVATEKEY 124 # define PEM_F_PEM_SEALFINAL 110 # define PEM_F_PEM_SEALINIT 111 diff --git a/libs/openssl/crypto/pem/pem_all.c b/libs/openssl/crypto/pem/pem_all.c index 64b8ba7c..0e5be63e 100644 --- a/libs/openssl/crypto/pem/pem_all.c +++ b/libs/openssl/crypto/pem/pem_all.c @@ -421,6 +421,7 @@ EC_KEY *PEM_read_ECPrivateKey(FILE *fp, EC_KEY **eckey, pem_password_cb *cb, #ifndef OPENSSL_NO_DH -IMPLEMENT_PEM_rw_const(DHparams, DH, PEM_STRING_DHPARAMS, DHparams) +IMPLEMENT_PEM_write_const(DHparams, DH, PEM_STRING_DHPARAMS, DHparams) + IMPLEMENT_PEM_write_const(DHxparams, DH, PEM_STRING_DHXPARAMS, DHxparams) #endif - IMPLEMENT_PEM_rw(PUBKEY, EVP_PKEY, PEM_STRING_PUBLIC, PUBKEY) +IMPLEMENT_PEM_rw(PUBKEY, EVP_PKEY, PEM_STRING_PUBLIC, PUBKEY) diff --git a/libs/openssl/crypto/pem/pem_err.c b/libs/openssl/crypto/pem/pem_err.c index 702c5ade..e1f4fdb4 100644 --- a/libs/openssl/crypto/pem/pem_err.c +++ b/libs/openssl/crypto/pem/pem_err.c @@ -1,6 +1,6 @@ /* crypto/pem/pem_err.c */ /* ==================================================================== - * Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved. + * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -99,8 +99,10 @@ static ERR_STRING_DATA PEM_str_functs[] = { {ERR_FUNC(PEM_F_PEM_PK8PKEY), "PEM_PK8PKEY"}, {ERR_FUNC(PEM_F_PEM_READ), "PEM_read"}, {ERR_FUNC(PEM_F_PEM_READ_BIO), "PEM_read_bio"}, + {ERR_FUNC(PEM_F_PEM_READ_BIO_DHPARAMS), "PEM_READ_BIO_DHPARAMS"}, {ERR_FUNC(PEM_F_PEM_READ_BIO_PARAMETERS), "PEM_read_bio_Parameters"}, {ERR_FUNC(PEM_F_PEM_READ_BIO_PRIVATEKEY), "PEM_READ_BIO_PRIVATEKEY"}, + {ERR_FUNC(PEM_F_PEM_READ_DHPARAMS), "PEM_READ_DHPARAMS"}, {ERR_FUNC(PEM_F_PEM_READ_PRIVATEKEY), "PEM_READ_PRIVATEKEY"}, {ERR_FUNC(PEM_F_PEM_SEALFINAL), "PEM_SealFinal"}, {ERR_FUNC(PEM_F_PEM_SEALINIT), "PEM_SealInit"}, diff --git a/libs/openssl/crypto/pem/pem_info.c b/libs/openssl/crypto/pem/pem_info.c index 68747d16..4d736a1d 100644 --- a/libs/openssl/crypto/pem/pem_info.c +++ b/libs/openssl/crypto/pem/pem_info.c @@ -172,6 +172,8 @@ STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, xi->enc_len = 0; xi->x_pkey = X509_PKEY_new(); + if (xi->x_pkey == NULL) + goto err; ptype = EVP_PKEY_RSA; pp = &xi->x_pkey->dec_pkey; if ((int)strlen(header) > 10) /* assume encrypted */ @@ -193,6 +195,8 @@ STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, xi->enc_len = 0; xi->x_pkey = X509_PKEY_new(); + if (xi->x_pkey == NULL) + goto err; ptype = EVP_PKEY_DSA; pp = &xi->x_pkey->dec_pkey; if ((int)strlen(header) > 10) /* assume encrypted */ @@ -214,6 +218,8 @@ STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, xi->enc_len = 0; xi->x_pkey = X509_PKEY_new(); + if (xi->x_pkey == NULL) + goto err; ptype = EVP_PKEY_EC; pp = &xi->x_pkey->dec_pkey; if ((int)strlen(header) > 10) /* assume encrypted */ diff --git a/libs/openssl/crypto/pem/pem_lib.c b/libs/openssl/crypto/pem/pem_lib.c index 55071616..a29821aa 100644 --- a/libs/openssl/crypto/pem/pem_lib.c +++ b/libs/openssl/crypto/pem/pem_lib.c @@ -229,6 +229,10 @@ static int check_pem(const char *nm, const char *name) } return 0; } + /* If reading DH parameters handle X9.42 DH format too */ + if (!strcmp(nm, PEM_STRING_DHXPARAMS) && + !strcmp(name, PEM_STRING_DHPARAMS)) + return 1; /* Permit older strings */ @@ -472,8 +476,9 @@ int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen, EVP_CIPHER_CTX_cleanup(&ctx); OPENSSL_cleanse((char *)buf, sizeof(buf)); OPENSSL_cleanse((char *)key, sizeof(key)); - j += i; - if (!o) { + if (o) + j += i; + else { PEMerr(PEM_F_PEM_DO_HEADER, PEM_R_BAD_DECRYPT); return (0); } @@ -574,8 +579,8 @@ static int load_iv(char **fromp, unsigned char *to, int num) } #ifndef OPENSSL_NO_FP_API -int PEM_write(FILE *fp, char *name, char *header, unsigned char *data, - long len) +int PEM_write(FILE *fp, const char *name, const char *header, + const unsigned char *data, long len) { BIO *b; int ret; @@ -591,8 +596,8 @@ int PEM_write(FILE *fp, char *name, char *header, unsigned char *data, } #endif -int PEM_write_bio(BIO *bp, const char *name, char *header, - unsigned char *data, long len) +int PEM_write_bio(BIO *bp, const char *name, const char *header, + const unsigned char *data, long len) { int nlen, n, i, j, outl; unsigned char *buf = NULL; diff --git a/libs/openssl/crypto/pem/pem_pkey.c b/libs/openssl/crypto/pem/pem_pkey.c index 0b05e63f..04d6319a 100644 --- a/libs/openssl/crypto/pem/pem_pkey.c +++ b/libs/openssl/crypto/pem/pem_pkey.c @@ -68,6 +68,9 @@ #ifndef OPENSSL_NO_ENGINE # include #endif +#ifndef OPENSSL_NO_DH +# include +#endif #include "asn1_locl.h" int pem_check_suffix(const char *pem_str, const char *suffix); @@ -241,3 +244,50 @@ int PEM_write_PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, } #endif + +#ifndef OPENSSL_NO_DH + +/* Transparently read in PKCS#3 or X9.42 DH parameters */ + +DH *PEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb *cb, void *u) +{ + char *nm = NULL; + const unsigned char *p = NULL; + unsigned char *data = NULL; + long len; + DH *ret = NULL; + + if (!PEM_bytes_read_bio(&data, &len, &nm, PEM_STRING_DHPARAMS, bp, cb, u)) + return NULL; + p = data; + + if (!strcmp(nm, PEM_STRING_DHXPARAMS)) + ret = d2i_DHxparams(x, &p, len); + else + ret = d2i_DHparams(x, &p, len); + + if (ret == NULL) + PEMerr(PEM_F_PEM_READ_BIO_DHPARAMS, ERR_R_ASN1_LIB); + OPENSSL_free(nm); + OPENSSL_free(data); + return ret; +} + +# ifndef OPENSSL_NO_FP_API +DH *PEM_read_DHparams(FILE *fp, DH **x, pem_password_cb *cb, void *u) +{ + BIO *b; + DH *ret; + + if ((b = BIO_new(BIO_s_file())) == NULL) { + PEMerr(PEM_F_PEM_READ_DHPARAMS, ERR_R_BUF_LIB); + return (0); + } + BIO_set_fp(b, fp, BIO_NOCLOSE); + ret = PEM_read_bio_DHparams(b, x, cb, u); + BIO_free(b); + return (ret); +} +# endif + +#endif diff --git a/libs/openssl/crypto/pem/pvkfmt.c b/libs/openssl/crypto/pem/pvkfmt.c index ee4b6a82..82d45273 100644 --- a/libs/openssl/crypto/pem/pvkfmt.c +++ b/libs/openssl/crypto/pem/pvkfmt.c @@ -624,13 +624,11 @@ static int do_PVK_header(const unsigned char **in, unsigned int length, PEMerr(PEM_F_DO_PVK_HEADER, PEM_R_PVK_TOO_SHORT); return 0; } - length -= 20; } else { if (length < 24) { PEMerr(PEM_F_DO_PVK_HEADER, PEM_R_PVK_TOO_SHORT); return 0; } - length -= 24; pvk_magic = read_ledword(&p); if (pvk_magic != MS_PVKMAGIC) { PEMerr(PEM_F_DO_PVK_HEADER, PEM_R_BAD_MAGIC_NUMBER); @@ -692,23 +690,23 @@ static EVP_PKEY *do_PVK_body(const unsigned char **in, inlen = PEM_def_callback(psbuf, PEM_BUFSIZE, 0, u); if (inlen <= 0) { PEMerr(PEM_F_DO_PVK_BODY, PEM_R_BAD_PASSWORD_READ); - return NULL; + goto err; } enctmp = OPENSSL_malloc(keylen + 8); if (!enctmp) { PEMerr(PEM_F_DO_PVK_BODY, ERR_R_MALLOC_FAILURE); - return NULL; + goto err; } if (!derive_pvk_key(keybuf, p, saltlen, (unsigned char *)psbuf, inlen)) - return NULL; + goto err; p += saltlen; /* Copy BLOBHEADER across, decrypt rest */ memcpy(enctmp, p, 8); p += 8; if (keylen < 8) { PEMerr(PEM_F_DO_PVK_BODY, PEM_R_PVK_TOO_SHORT); - return NULL; + goto err; } inlen = keylen - 8; q = enctmp + 8; diff --git a/libs/openssl/crypto/pkcs12/p12_add.c b/libs/openssl/crypto/pkcs12/p12_add.c index 982805d9..d9f03a39 100644 --- a/libs/openssl/crypto/pkcs12/p12_add.c +++ b/libs/openssl/crypto/pkcs12/p12_add.c @@ -75,15 +75,19 @@ PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, bag->type = OBJ_nid2obj(nid1); if (!ASN1_item_pack(obj, it, &bag->value.octet)) { PKCS12err(PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG, ERR_R_MALLOC_FAILURE); - return NULL; + goto err; } if (!(safebag = PKCS12_SAFEBAG_new())) { PKCS12err(PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG, ERR_R_MALLOC_FAILURE); - return NULL; + goto err; } safebag->value.bag = bag; safebag->type = OBJ_nid2obj(nid2); return safebag; + + err: + PKCS12_BAGS_free(bag); + return NULL; } /* Turn PKCS8 object into a keybag */ @@ -127,6 +131,7 @@ PKCS12_SAFEBAG *PKCS12_MAKE_SHKEYBAG(int pbe_nid, const char *pass, PKCS8_encrypt(pbe_nid, pbe_ciph, pass, passlen, salt, saltlen, iter, p8))) { PKCS12err(PKCS12_F_PKCS12_MAKE_SHKEYBAG, ERR_R_MALLOC_FAILURE); + PKCS12_SAFEBAG_free(bag); return NULL; } @@ -144,14 +149,18 @@ PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk) p7->type = OBJ_nid2obj(NID_pkcs7_data); if (!(p7->d.data = M_ASN1_OCTET_STRING_new())) { PKCS12err(PKCS12_F_PKCS12_PACK_P7DATA, ERR_R_MALLOC_FAILURE); - return NULL; + goto err; } if (!ASN1_item_pack(sk, ASN1_ITEM_rptr(PKCS12_SAFEBAGS), &p7->d.data)) { PKCS12err(PKCS12_F_PKCS12_PACK_P7DATA, PKCS12_R_CANT_PACK_STRUCTURE); - return NULL; + goto err; } return p7; + + err: + PKCS7_free(p7); + return NULL; } /* Unpack SAFEBAGS from PKCS#7 data ContentInfo */ @@ -181,7 +190,7 @@ PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, if (!PKCS7_set_type(p7, NID_pkcs7_encrypted)) { PKCS12err(PKCS12_F_PKCS12_PACK_P7ENCDATA, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE); - return NULL; + goto err; } pbe_ciph = EVP_get_cipherbynid(pbe_nid); @@ -193,7 +202,7 @@ PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, if (!pbe) { PKCS12err(PKCS12_F_PKCS12_PACK_P7ENCDATA, ERR_R_MALLOC_FAILURE); - return NULL; + goto err; } X509_ALGOR_free(p7->d.encrypted->enc_data->algorithm); p7->d.encrypted->enc_data->algorithm = pbe; @@ -202,10 +211,14 @@ PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, PKCS12_item_i2d_encrypt(pbe, ASN1_ITEM_rptr(PKCS12_SAFEBAGS), pass, passlen, bags, 1))) { PKCS12err(PKCS12_F_PKCS12_PACK_P7ENCDATA, PKCS12_R_ENCRYPT_ERROR); - return NULL; + goto err; } return p7; + + err: + PKCS7_free(p7); + return NULL; } STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, diff --git a/libs/openssl/crypto/pkcs12/p12_crpt.c b/libs/openssl/crypto/pkcs12/p12_crpt.c index 3a166e61..9c2dcab0 100644 --- a/libs/openssl/crypto/pkcs12/p12_crpt.c +++ b/libs/openssl/crypto/pkcs12/p12_crpt.c @@ -77,6 +77,9 @@ int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, const unsigned char *pbuf; unsigned char key[EVP_MAX_KEY_LENGTH], iv[EVP_MAX_IV_LENGTH]; + if (cipher == NULL) + return 0; + /* Extract useful info from parameter */ if (param == NULL || param->type != V_ASN1_SEQUENCE || param->value.sequence == NULL) { diff --git a/libs/openssl/crypto/pkcs12/p12_decr.c b/libs/openssl/crypto/pkcs12/p12_decr.c index d46eae3c..b40ea10c 100644 --- a/libs/openssl/crypto/pkcs12/p12_decr.c +++ b/libs/openssl/crypto/pkcs12/p12_decr.c @@ -171,28 +171,32 @@ ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, const char *pass, int passlen, void *obj, int zbuf) { - ASN1_OCTET_STRING *oct; + ASN1_OCTET_STRING *oct = NULL; unsigned char *in = NULL; int inlen; if (!(oct = M_ASN1_OCTET_STRING_new())) { PKCS12err(PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT, ERR_R_MALLOC_FAILURE); - return NULL; + goto err; } inlen = ASN1_item_i2d(obj, &in, it); if (!in) { PKCS12err(PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT, PKCS12_R_ENCODE_ERROR); - return NULL; + goto err; } if (!PKCS12_pbe_crypt(algor, pass, passlen, in, inlen, &oct->data, &oct->length, 1)) { PKCS12err(PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT, PKCS12_R_ENCRYPT_ERROR); OPENSSL_free(in); - return NULL; + goto err; } if (zbuf) OPENSSL_cleanse(in, inlen); OPENSSL_free(in); return oct; + err: + if (oct) + ASN1_OCTET_STRING_free(oct); + return NULL; } IMPLEMENT_PKCS12_STACK_OF(PKCS7) diff --git a/libs/openssl/crypto/pkcs12/p12_mutl.c b/libs/openssl/crypto/pkcs12/p12_mutl.c index 5ab4bf29..a9277827 100644 --- a/libs/openssl/crypto/pkcs12/p12_mutl.c +++ b/libs/openssl/crypto/pkcs12/p12_mutl.c @@ -173,11 +173,11 @@ int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, } if (!saltlen) saltlen = PKCS12_SALT_LEN; - p12->mac->salt->length = saltlen; - if (!(p12->mac->salt->data = OPENSSL_malloc(saltlen))) { + if ((p12->mac->salt->data = OPENSSL_malloc(saltlen)) == NULL) { PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE); return 0; } + p12->mac->salt->length = saltlen; if (!salt) { if (RAND_pseudo_bytes(p12->mac->salt->data, saltlen) < 0) return 0; diff --git a/libs/openssl/crypto/pkcs12/p12_p8e.c b/libs/openssl/crypto/pkcs12/p12_p8e.c index d970f054..861a087f 100644 --- a/libs/openssl/crypto/pkcs12/p12_p8e.c +++ b/libs/openssl/crypto/pkcs12/p12_p8e.c @@ -76,8 +76,12 @@ X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, if (pbe_nid == -1) pbe = PKCS5_pbe2_set(cipher, iter, salt, saltlen); - else + else if (EVP_PBE_find(EVP_PBE_TYPE_PRF, pbe_nid, NULL, NULL, 0)) + pbe = PKCS5_pbe2_set_iv(cipher, iter, salt, saltlen, NULL, pbe_nid); + else { + ERR_clear_error(); pbe = PKCS5_pbe_set(pbe_nid, iter, salt, saltlen); + } if (!pbe) { PKCS12err(PKCS12_F_PKCS8_ENCRYPT, ERR_R_ASN1_LIB); goto err; diff --git a/libs/openssl/crypto/pkcs7/pk7_doit.c b/libs/openssl/crypto/pkcs7/pk7_doit.c index c8d7db01..946aaa65 100644 --- a/libs/openssl/crypto/pkcs7/pk7_doit.c +++ b/libs/openssl/crypto/pkcs7/pk7_doit.c @@ -656,6 +656,8 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert) bio = BIO_new_mem_buf(data_body->data, data_body->length); else { bio = BIO_new(BIO_s_mem()); + if (bio == NULL) + goto err; BIO_set_mem_eof_return(bio, 0); } if (bio == NULL) @@ -1156,7 +1158,6 @@ PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx) rsk = p7->d.signed_and_enveloped->recipientinfo; if (rsk == NULL) return NULL; - ri = sk_PKCS7_RECIP_INFO_value(rsk, 0); if (sk_PKCS7_RECIP_INFO_num(rsk) <= idx) return (NULL); ri = sk_PKCS7_RECIP_INFO_value(rsk, idx); diff --git a/libs/openssl/crypto/pkcs7/pk7_smime.c b/libs/openssl/crypto/pkcs7/pk7_smime.c index dbd4100c..c4d3724d 100644 --- a/libs/openssl/crypto/pkcs7/pk7_smime.c +++ b/libs/openssl/crypto/pkcs7/pk7_smime.c @@ -256,8 +256,8 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, X509_STORE_CTX cert_ctx; char buf[4096]; int i, j = 0, k, ret = 0; - BIO *p7bio; - BIO *tmpin, *tmpout; + BIO *p7bio = NULL; + BIO *tmpin = NULL, *tmpout = NULL; if (!p7) { PKCS7err(PKCS7_F_PKCS7_VERIFY, PKCS7_R_INVALID_NULL_POINTER); @@ -274,18 +274,12 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, PKCS7err(PKCS7_F_PKCS7_VERIFY, PKCS7_R_NO_CONTENT); return 0; } -#if 0 - /* - * NB: this test commented out because some versions of Netscape - * illegally include zero length content when signing data. - */ /* Check for data and content: two sets of data */ if (!PKCS7_get_detached(p7) && indata) { PKCS7err(PKCS7_F_PKCS7_VERIFY, PKCS7_R_CONTENT_AND_DATA_PRESENT); return 0; } -#endif sinfos = PKCS7_get_signer_info(p7); @@ -295,7 +289,6 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, } signers = PKCS7_get0_signers(p7, certs, flags); - if (!signers) return 0; @@ -308,14 +301,12 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, if (!X509_STORE_CTX_init(&cert_ctx, store, signer, p7->d.sign->cert)) { PKCS7err(PKCS7_F_PKCS7_VERIFY, ERR_R_X509_LIB); - sk_X509_free(signers); - return 0; + goto err; } X509_STORE_CTX_set_default(&cert_ctx, "smime_sign"); } else if (!X509_STORE_CTX_init(&cert_ctx, store, signer, NULL)) { PKCS7err(PKCS7_F_PKCS7_VERIFY, ERR_R_X509_LIB); - sk_X509_free(signers); - return 0; + goto err; } if (!(flags & PKCS7_NOCRL)) X509_STORE_CTX_set0_crls(&cert_ctx, p7->d.sign->crl); @@ -328,8 +319,7 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, PKCS7_R_CERTIFICATE_VERIFY_ERROR); ERR_add_error_data(2, "Verify error:", X509_verify_cert_error_string(j)); - sk_X509_free(signers); - return 0; + goto err; } /* Check for revocation status here */ } @@ -348,7 +338,7 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, tmpin = BIO_new_mem_buf(ptr, len); if (tmpin == NULL) { PKCS7err(PKCS7_F_PKCS7_VERIFY, ERR_R_MALLOC_FAILURE); - return 0; + goto err; } } else tmpin = indata; @@ -398,15 +388,12 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, ret = 1; err: - if (tmpin == indata) { if (indata) BIO_pop(p7bio); } BIO_free_all(p7bio); - sk_X509_free(signers); - return ret; } diff --git a/libs/openssl/crypto/ppc_arch.h b/libs/openssl/crypto/ppc_arch.h new file mode 100644 index 00000000..b50ec996 --- /dev/null +++ b/libs/openssl/crypto/ppc_arch.h @@ -0,0 +1,10 @@ +#ifndef __PPC_ARCH_H__ +# define __PPC_ARCH_H__ + +extern unsigned int OPENSSL_ppccap_P; + +# define PPC_FPU64 (1<<0) +# define PPC_ALTIVEC (1<<1) +# define PPC_CRYPTO207 (1<<2) + +#endif diff --git a/libs/openssl/crypto/ppccap.c b/libs/openssl/crypto/ppccap.c index 52422943..74af4732 100644 --- a/libs/openssl/crypto/ppccap.c +++ b/libs/openssl/crypto/ppccap.c @@ -4,13 +4,15 @@ #include #include #include -#include +#if defined(__linux) || defined(_AIX) +# include +#endif +#include #include -#define PPC_FPU64 (1<<0) -#define PPC_ALTIVEC (1<<1) +#include "ppc_arch.h" -static int OPENSSL_ppccap_P = 0; +unsigned int OPENSSL_ppccap_P = 0; static sigset_t all_masked; @@ -25,7 +27,7 @@ int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np, const BN_ULONG *n0, int num); if (sizeof(size_t) == 4) { -# if (defined(__APPLE__) && defined(__MACH__)) +# if 1 || (defined(__APPLE__) && defined(__MACH__)) if (num >= 8 && (num & 3) == 0 && (OPENSSL_ppccap_P & PPC_FPU64)) return bn_mul_mont_fpu64(rp, ap, bp, np, n0, num); # else @@ -55,6 +57,22 @@ int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, } #endif +void sha256_block_p8(void *ctx, const void *inp, size_t len); +void sha256_block_ppc(void *ctx, const void *inp, size_t len); +void sha256_block_data_order(void *ctx, const void *inp, size_t len) +{ + OPENSSL_ppccap_P & PPC_CRYPTO207 ? sha256_block_p8(ctx, inp, len) : + sha256_block_ppc(ctx, inp, len); +} + +void sha512_block_p8(void *ctx, const void *inp, size_t len); +void sha512_block_ppc(void *ctx, const void *inp, size_t len); +void sha512_block_data_order(void *ctx, const void *inp, size_t len) +{ + OPENSSL_ppccap_P & PPC_CRYPTO207 ? sha512_block_p8(ctx, inp, len) : + sha512_block_ppc(ctx, inp, len); +} + static sigjmp_buf ill_jmp; static void ill_handler(int sig) { @@ -63,6 +81,7 @@ static void ill_handler(int sig) void OPENSSL_ppc64_probe(void); void OPENSSL_altivec_probe(void); +void OPENSSL_crypto207_probe(void); void OPENSSL_cpuid_setup(void) { @@ -93,12 +112,15 @@ void OPENSSL_cpuid_setup(void) OPENSSL_ppccap_P = 0; #if defined(_AIX) - if (sizeof(size_t) == 4 + if (sizeof(size_t) == 4) { + struct utsname uts; # if defined(_SC_AIX_KERNEL_BITMODE) - && sysconf(_SC_AIX_KERNEL_BITMODE) != 64 + if (sysconf(_SC_AIX_KERNEL_BITMODE) != 64) + return; # endif - ) - return; + if (uname(&uts) != 0 || atoi(uts.version) < 6) + return; + } #endif memset(&ill_act, 0, sizeof(ill_act)); @@ -109,10 +131,14 @@ void OPENSSL_cpuid_setup(void) sigaction(SIGILL, &ill_act, &ill_oact); if (sizeof(size_t) == 4) { - if (sigsetjmp(ill_jmp, 1) == 0) { - OPENSSL_ppc64_probe(); - OPENSSL_ppccap_P |= PPC_FPU64; - } +#ifdef __linux + struct utsname uts; + if (uname(&uts) == 0 && strcmp(uts.machine, "ppc64") == 0) +#endif + if (sigsetjmp(ill_jmp, 1) == 0) { + OPENSSL_ppc64_probe(); + OPENSSL_ppccap_P |= PPC_FPU64; + } } else { /* * Wanted code detecting POWER6 CPU and setting PPC_FPU64 @@ -122,6 +148,10 @@ void OPENSSL_cpuid_setup(void) if (sigsetjmp(ill_jmp, 1) == 0) { OPENSSL_altivec_probe(); OPENSSL_ppccap_P |= PPC_ALTIVEC; + if (sigsetjmp(ill_jmp, 1) == 0) { + OPENSSL_crypto207_probe(); + OPENSSL_ppccap_P |= PPC_CRYPTO207; + } } sigaction(SIGILL, &ill_oact, NULL); diff --git a/libs/openssl/crypto/rand/rand_win.c b/libs/openssl/crypto/rand/rand_win.c index 0c616c4c..06670ae0 100644 --- a/libs/openssl/crypto/rand/rand_win.c +++ b/libs/openssl/crypto/rand/rand_win.c @@ -684,9 +684,7 @@ static void readscreen(void) { # if !defined(OPENSSL_SYS_WINCE) && !defined(OPENSSL_SYS_WIN32_CYGWIN) HDC hScrDC; /* screen DC */ - HDC hMemDC; /* memory DC */ HBITMAP hBitmap; /* handle for our bitmap */ - HBITMAP hOldBitmap; /* handle for previous bitmap */ BITMAP bm; /* bitmap properties */ unsigned int size; /* size of bitmap */ char *bmbits; /* contents of bitmap */ @@ -694,13 +692,13 @@ static void readscreen(void) int h; /* screen height */ int y; /* y-coordinate of screen lines to grab */ int n = 16; /* number of screen lines to grab at a time */ + BITMAPINFOHEADER bi; /* info about the bitmap */ if (check_winnt() && OPENSSL_isservice() > 0) return; - /* Create a screen DC and a memory DC compatible to screen DC */ - hScrDC = CreateDC(TEXT("DISPLAY"), NULL, NULL, NULL); - hMemDC = CreateCompatibleDC(hScrDC); + /* Get a reference to the screen DC */ + hScrDC = GetDC(NULL); /* Get screen resolution */ w = GetDeviceCaps(hScrDC, HORZRES); @@ -709,24 +707,31 @@ static void readscreen(void) /* Create a bitmap compatible with the screen DC */ hBitmap = CreateCompatibleBitmap(hScrDC, w, n); - /* Select new bitmap into memory DC */ - hOldBitmap = SelectObject(hMemDC, hBitmap); - /* Get bitmap properties */ GetObject(hBitmap, sizeof(BITMAP), (LPSTR) & bm); size = (unsigned int)bm.bmWidthBytes * bm.bmHeight * bm.bmPlanes; + bi.biSize = sizeof(BITMAPINFOHEADER); + bi.biWidth = bm.bmWidth; + bi.biHeight = bm.bmHeight; + bi.biPlanes = bm.bmPlanes; + bi.biBitCount = bm.bmBitsPixel; + bi.biCompression = BI_RGB; + bi.biSizeImage = 0; + bi.biXPelsPerMeter = 0; + bi.biYPelsPerMeter = 0; + bi.biClrUsed = 0; + bi.biClrImportant = 0; + bmbits = OPENSSL_malloc(size); if (bmbits) { /* Now go through the whole screen, repeatedly grabbing n lines */ for (y = 0; y < h - n; y += n) { unsigned char md[MD_DIGEST_LENGTH]; - /* Bitblt screen DC to memory DC */ - BitBlt(hMemDC, 0, 0, w, n, hScrDC, 0, y, SRCCOPY); - - /* Copy bitmap bits from memory DC to bmbits */ - GetBitmapBits(hBitmap, size, bmbits); + /* Copy the bits of the current line range into the buffer */ + GetDIBits(hScrDC, hBitmap, y, n, + bmbits, (BITMAPINFO *) & bi, DIB_RGB_COLORS); /* Get the hash of the bitmap */ MD(bmbits, size, md); @@ -738,13 +743,9 @@ static void readscreen(void) OPENSSL_free(bmbits); } - /* Select old bitmap back into memory DC */ - hBitmap = SelectObject(hMemDC, hOldBitmap); - /* Clean up */ DeleteObject(hBitmap); - DeleteDC(hMemDC); - DeleteDC(hScrDC); + ReleaseDC(NULL, hScrDC); # endif /* !OPENSSL_SYS_WINCE */ } diff --git a/libs/openssl/crypto/rc4/rc4_enc.c b/libs/openssl/crypto/rc4/rc4_enc.c index 6ebd54d4..0f0a2487 100644 --- a/libs/openssl/crypto/rc4/rc4_enc.c +++ b/libs/openssl/crypto/rc4/rc4_enc.c @@ -79,7 +79,7 @@ void RC4(RC4_KEY *key, size_t len, const unsigned char *indata, y = key->y; d = key->data; -#if defined(RC4_CHUNK) +#if defined(RC4_CHUNK) && !defined(PEDANTIC) /*- * The original reason for implementing this(*) was the fact that * pre-21164a Alpha CPUs don't have byte load/store instructions diff --git a/libs/openssl/crypto/rsa/rsa.h b/libs/openssl/crypto/rsa/rsa.h index a8b59a95..d2ee3740 100644 --- a/libs/openssl/crypto/rsa/rsa.h +++ b/libs/openssl/crypto/rsa/rsa.h @@ -262,13 +262,31 @@ struct rsa_st { EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) # define EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_SIG, \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ + EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)md) +# define EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_OAEP_MD, 0, (void *)md) + # define EVP_PKEY_CTX_get_rsa_mgf1_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_SIG, \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ + EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void *)pmd) +# define EVP_PKEY_CTX_get_rsa_oaep_md(ctx, pmd) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_OAEP_MD, 0, (void *)pmd) + +# define EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, l, llen) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_RSA_OAEP_LABEL, llen, (void *)l) + +# define EVP_PKEY_CTX_get0_rsa_oaep_label(ctx, l) \ + EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ + EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL, 0, (void *)l) + # define EVP_PKEY_CTRL_RSA_PADDING (EVP_PKEY_ALG_CTRL + 1) # define EVP_PKEY_CTRL_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 2) @@ -280,6 +298,12 @@ struct rsa_st { # define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 7) # define EVP_PKEY_CTRL_GET_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 8) +# define EVP_PKEY_CTRL_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 9) +# define EVP_PKEY_CTRL_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 10) + +# define EVP_PKEY_CTRL_GET_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 11) +# define EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 12) + # define RSA_PKCS1_PADDING 1 # define RSA_SSLV23_PADDING 2 # define RSA_NO_PADDING 3 @@ -347,6 +371,14 @@ typedef struct rsa_pss_params_st { DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) +typedef struct rsa_oaep_params_st { + X509_ALGOR *hashFunc; + X509_ALGOR *maskGenFunc; + X509_ALGOR *pSourceFunc; +} RSA_OAEP_PARAMS; + +DECLARE_ASN1_FUNCTIONS(RSA_OAEP_PARAMS) + # ifndef OPENSSL_NO_FP_API int RSA_print_fp(FILE *fp, const RSA *r, int offset); # endif @@ -414,6 +446,15 @@ int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, const unsigned char *f, int fl, int rsa_len, const unsigned char *p, int pl); +int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *from, int flen, + const unsigned char *param, int plen, + const EVP_MD *md, const EVP_MD *mgf1md); +int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *from, int flen, + int num, const unsigned char *param, + int plen, const EVP_MD *md, + const EVP_MD *mgf1md); int RSA_padding_add_SSLv23(unsigned char *to, int tlen, const unsigned char *f, int fl); int RSA_padding_check_SSLv23(unsigned char *to, int tlen, @@ -494,8 +535,10 @@ void ERR_load_RSA_strings(void); # define RSA_F_PKEY_RSA_SIGN 142 # define RSA_F_PKEY_RSA_VERIFY 154 # define RSA_F_PKEY_RSA_VERIFYRECOVER 141 +# define RSA_F_RSA_ALGOR_TO_MD 157 # define RSA_F_RSA_BUILTIN_KEYGEN 129 # define RSA_F_RSA_CHECK_KEY 123 +# define RSA_F_RSA_CMS_DECRYPT 158 # define RSA_F_RSA_EAY_PRIVATE_DECRYPT 101 # define RSA_F_RSA_EAY_PRIVATE_ENCRYPT 102 # define RSA_F_RSA_EAY_PUBLIC_DECRYPT 103 @@ -504,6 +547,7 @@ void ERR_load_RSA_strings(void); # define RSA_F_RSA_GENERATE_KEY_EX 155 # define RSA_F_RSA_ITEM_VERIFY 156 # define RSA_F_RSA_MEMORY_LOCK 130 +# define RSA_F_RSA_MGF1_TO_MD 159 # define RSA_F_RSA_NEW_METHOD 106 # define RSA_F_RSA_NULL 124 # define RSA_F_RSA_NULL_MOD_EXP 131 @@ -513,6 +557,7 @@ void ERR_load_RSA_strings(void); # define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 135 # define RSA_F_RSA_PADDING_ADD_NONE 107 # define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 +# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 160 # define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 125 # define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 148 # define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 @@ -521,6 +566,7 @@ void ERR_load_RSA_strings(void); # define RSA_F_RSA_PADDING_ADD_X931 127 # define RSA_F_RSA_PADDING_CHECK_NONE 111 # define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 122 +# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 161 # define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 112 # define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 113 # define RSA_F_RSA_PADDING_CHECK_SSLV23 114 @@ -531,6 +577,7 @@ void ERR_load_RSA_strings(void); # define RSA_F_RSA_PRIVATE_ENCRYPT 151 # define RSA_F_RSA_PRIV_DECODE 137 # define RSA_F_RSA_PRIV_ENCODE 138 +# define RSA_F_RSA_PSS_TO_CTX 162 # define RSA_F_RSA_PUBLIC_DECRYPT 152 # define RSA_F_RSA_PUBLIC_ENCRYPT 153 # define RSA_F_RSA_PUB_DECODE 139 @@ -556,17 +603,21 @@ void ERR_load_RSA_strings(void); # define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 # define RSA_R_DATA_TOO_SMALL 111 # define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 +# define RSA_R_DIGEST_DOES_NOT_MATCH 166 # define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 # define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 # define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 # define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 # define RSA_R_FIRST_OCTET_INVALID 133 # define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 +# define RSA_R_INVALID_DIGEST 160 # define RSA_R_INVALID_DIGEST_LENGTH 143 # define RSA_R_INVALID_HEADER 137 # define RSA_R_INVALID_KEYBITS 145 +# define RSA_R_INVALID_LABEL 161 # define RSA_R_INVALID_MESSAGE_LENGTH 131 # define RSA_R_INVALID_MGF1_MD 156 +# define RSA_R_INVALID_OAEP_PARAMETERS 162 # define RSA_R_INVALID_PADDING 138 # define RSA_R_INVALID_PADDING_MODE 141 # define RSA_R_INVALID_PSS_PARAMETERS 149 @@ -595,9 +646,12 @@ void ERR_load_RSA_strings(void); # define RSA_R_SSLV3_ROLLBACK_ATTACK 115 # define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 # define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 +# define RSA_R_UNKNOWN_DIGEST 163 # define RSA_R_UNKNOWN_MASK_DIGEST 151 # define RSA_R_UNKNOWN_PADDING_TYPE 118 # define RSA_R_UNKNOWN_PSS_DIGEST 152 +# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 164 +# define RSA_R_UNSUPPORTED_LABEL_SOURCE 165 # define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 # define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 # define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 diff --git a/libs/openssl/crypto/rsa/rsa_ameth.c b/libs/openssl/crypto/rsa/rsa_ameth.c index 93e071de..4e062182 100644 --- a/libs/openssl/crypto/rsa/rsa_ameth.c +++ b/libs/openssl/crypto/rsa/rsa_ameth.c @@ -68,6 +68,11 @@ #endif #include "asn1_locl.h" +static int rsa_cms_sign(CMS_SignerInfo *si); +static int rsa_cms_verify(CMS_SignerInfo *si); +static int rsa_cms_decrypt(CMS_RecipientInfo *ri); +static int rsa_cms_encrypt(CMS_RecipientInfo *ri); + static int rsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey) { unsigned char *penc = NULL; @@ -258,6 +263,23 @@ static int rsa_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent, return do_rsa_print(bp, pkey->pkey.rsa, indent, 1); } +/* Given an MGF1 Algorithm ID decode to an Algorithm Identifier */ +static X509_ALGOR *rsa_mgf1_decode(X509_ALGOR *alg) +{ + const unsigned char *p; + int plen; + if (alg == NULL || alg->parameter == NULL) + return NULL; + if (OBJ_obj2nid(alg->algorithm) != NID_mgf1) + return NULL; + if (alg->parameter->type != V_ASN1_SEQUENCE) + return NULL; + + p = alg->parameter->value.sequence->data; + plen = alg->parameter->value.sequence->length; + return d2i_X509_ALGOR(NULL, &p, plen); +} + static RSA_PSS_PARAMS *rsa_pss_decode(const X509_ALGOR *alg, X509_ALGOR **pmaskHash) { @@ -276,15 +298,7 @@ static RSA_PSS_PARAMS *rsa_pss_decode(const X509_ALGOR *alg, if (!pss) return NULL; - if (pss->maskGenAlgorithm) { - ASN1_TYPE *param = pss->maskGenAlgorithm->parameter; - if (OBJ_obj2nid(pss->maskGenAlgorithm->algorithm) == NID_mgf1 - && param->type == V_ASN1_SEQUENCE) { - p = param->value.sequence->data; - plen = param->value.sequence->length; - *pmaskHash = d2i_X509_ALGOR(NULL, &p, plen); - } - } + *pmaskHash = rsa_mgf1_decode(pss->maskGenAlgorithm); return pss; } @@ -401,17 +415,25 @@ static int rsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2) #ifndef OPENSSL_NO_CMS case ASN1_PKEY_CTRL_CMS_SIGN: if (arg1 == 0) - CMS_SignerInfo_get0_algs(arg2, NULL, NULL, NULL, &alg); + return rsa_cms_sign(arg2); + else if (arg1 == 1) + return rsa_cms_verify(arg2); break; case ASN1_PKEY_CTRL_CMS_ENVELOPE: if (arg1 == 0) - CMS_RecipientInfo_ktri_get0_algs(arg2, NULL, NULL, &alg); + return rsa_cms_encrypt(arg2); + else if (arg1 == 1) + return rsa_cms_decrypt(arg2); break; + + case ASN1_PKEY_CTRL_CMS_RI_TYPE: + *(int *)arg2 = CMS_RECIPINFO_TRANS; + return 1; #endif case ASN1_PKEY_CTRL_DEFAULT_MD_NID: - *(int *)arg2 = NID_sha1; + *(int *)arg2 = NID_sha256; return 1; default: @@ -426,59 +448,166 @@ static int rsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2) } +/* allocate and set algorithm ID from EVP_MD, default SHA1 */ +static int rsa_md_to_algor(X509_ALGOR **palg, const EVP_MD *md) +{ + if (EVP_MD_type(md) == NID_sha1) + return 1; + *palg = X509_ALGOR_new(); + if (!*palg) + return 0; + X509_ALGOR_set_md(*palg, md); + return 1; +} + +/* Allocate and set MGF1 algorithm ID from EVP_MD */ +static int rsa_md_to_mgf1(X509_ALGOR **palg, const EVP_MD *mgf1md) +{ + X509_ALGOR *algtmp = NULL; + ASN1_STRING *stmp = NULL; + *palg = NULL; + if (EVP_MD_type(mgf1md) == NID_sha1) + return 1; + /* need to embed algorithm ID inside another */ + if (!rsa_md_to_algor(&algtmp, mgf1md)) + goto err; + if (!ASN1_item_pack(algtmp, ASN1_ITEM_rptr(X509_ALGOR), &stmp)) + goto err; + *palg = X509_ALGOR_new(); + if (!*palg) + goto err; + X509_ALGOR_set0(*palg, OBJ_nid2obj(NID_mgf1), V_ASN1_SEQUENCE, stmp); + stmp = NULL; + err: + if (stmp) + ASN1_STRING_free(stmp); + if (algtmp) + X509_ALGOR_free(algtmp); + if (*palg) + return 1; + return 0; +} + +/* convert algorithm ID to EVP_MD, default SHA1 */ +static const EVP_MD *rsa_algor_to_md(X509_ALGOR *alg) +{ + const EVP_MD *md; + if (!alg) + return EVP_sha1(); + md = EVP_get_digestbyobj(alg->algorithm); + if (md == NULL) + RSAerr(RSA_F_RSA_ALGOR_TO_MD, RSA_R_UNKNOWN_DIGEST); + return md; +} + +/* convert MGF1 algorithm ID to EVP_MD, default SHA1 */ +static const EVP_MD *rsa_mgf1_to_md(X509_ALGOR *alg, X509_ALGOR *maskHash) +{ + const EVP_MD *md; + if (!alg) + return EVP_sha1(); + /* Check mask and lookup mask hash algorithm */ + if (OBJ_obj2nid(alg->algorithm) != NID_mgf1) { + RSAerr(RSA_F_RSA_MGF1_TO_MD, RSA_R_UNSUPPORTED_MASK_ALGORITHM); + return NULL; + } + if (!maskHash) { + RSAerr(RSA_F_RSA_MGF1_TO_MD, RSA_R_UNSUPPORTED_MASK_PARAMETER); + return NULL; + } + md = EVP_get_digestbyobj(maskHash->algorithm); + if (md == NULL) { + RSAerr(RSA_F_RSA_MGF1_TO_MD, RSA_R_UNKNOWN_MASK_DIGEST); + return NULL; + } + return md; +} + /* - * Customised RSA item verification routine. This is called when a signature - * is encountered requiring special handling. We currently only handle PSS. + * Convert EVP_PKEY_CTX is PSS mode into corresponding algorithm parameter, + * suitable for setting an AlgorithmIdentifier. */ -static int rsa_item_verify(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn, - X509_ALGOR *sigalg, ASN1_BIT_STRING *sig, - EVP_PKEY *pkey) +static ASN1_STRING *rsa_ctx_to_pss(EVP_PKEY_CTX *pkctx) +{ + const EVP_MD *sigmd, *mgf1md; + RSA_PSS_PARAMS *pss = NULL; + ASN1_STRING *os = NULL; + EVP_PKEY *pk = EVP_PKEY_CTX_get0_pkey(pkctx); + int saltlen, rv = 0; + if (EVP_PKEY_CTX_get_signature_md(pkctx, &sigmd) <= 0) + goto err; + if (EVP_PKEY_CTX_get_rsa_mgf1_md(pkctx, &mgf1md) <= 0) + goto err; + if (!EVP_PKEY_CTX_get_rsa_pss_saltlen(pkctx, &saltlen)) + goto err; + if (saltlen == -1) + saltlen = EVP_MD_size(sigmd); + else if (saltlen == -2) { + saltlen = EVP_PKEY_size(pk) - EVP_MD_size(sigmd) - 2; + if (((EVP_PKEY_bits(pk) - 1) & 0x7) == 0) + saltlen--; + } + pss = RSA_PSS_PARAMS_new(); + if (!pss) + goto err; + if (saltlen != 20) { + pss->saltLength = ASN1_INTEGER_new(); + if (!pss->saltLength) + goto err; + if (!ASN1_INTEGER_set(pss->saltLength, saltlen)) + goto err; + } + if (!rsa_md_to_algor(&pss->hashAlgorithm, sigmd)) + goto err; + if (!rsa_md_to_mgf1(&pss->maskGenAlgorithm, mgf1md)) + goto err; + /* Finally create string with pss parameter encoding. */ + if (!ASN1_item_pack(pss, ASN1_ITEM_rptr(RSA_PSS_PARAMS), &os)) + goto err; + rv = 1; + err: + if (pss) + RSA_PSS_PARAMS_free(pss); + if (rv) + return os; + if (os) + ASN1_STRING_free(os); + return NULL; +} + +/* + * From PSS AlgorithmIdentifier set public key parameters. If pkey isn't NULL + * then the EVP_MD_CTX is setup and initalised. If it is NULL parameters are + * passed to pkctx instead. + */ + +static int rsa_pss_to_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pkctx, + X509_ALGOR *sigalg, EVP_PKEY *pkey) { int rv = -1; int saltlen; const EVP_MD *mgf1md = NULL, *md = NULL; RSA_PSS_PARAMS *pss; X509_ALGOR *maskHash; - EVP_PKEY_CTX *pkctx; /* Sanity check: make sure it is PSS */ if (OBJ_obj2nid(sigalg->algorithm) != NID_rsassaPss) { - RSAerr(RSA_F_RSA_ITEM_VERIFY, RSA_R_UNSUPPORTED_SIGNATURE_TYPE); + RSAerr(RSA_F_RSA_PSS_TO_CTX, RSA_R_UNSUPPORTED_SIGNATURE_TYPE); return -1; } /* Decode PSS parameters */ pss = rsa_pss_decode(sigalg, &maskHash); if (pss == NULL) { - RSAerr(RSA_F_RSA_ITEM_VERIFY, RSA_R_INVALID_PSS_PARAMETERS); + RSAerr(RSA_F_RSA_PSS_TO_CTX, RSA_R_INVALID_PSS_PARAMETERS); goto err; } - /* Check mask and lookup mask hash algorithm */ - if (pss->maskGenAlgorithm) { - if (OBJ_obj2nid(pss->maskGenAlgorithm->algorithm) != NID_mgf1) { - RSAerr(RSA_F_RSA_ITEM_VERIFY, RSA_R_UNSUPPORTED_MASK_ALGORITHM); - goto err; - } - if (!maskHash) { - RSAerr(RSA_F_RSA_ITEM_VERIFY, RSA_R_UNSUPPORTED_MASK_PARAMETER); - goto err; - } - mgf1md = EVP_get_digestbyobj(maskHash->algorithm); - if (mgf1md == NULL) { - RSAerr(RSA_F_RSA_ITEM_VERIFY, RSA_R_UNKNOWN_MASK_DIGEST); - goto err; - } - } else - mgf1md = EVP_sha1(); - - if (pss->hashAlgorithm) { - md = EVP_get_digestbyobj(pss->hashAlgorithm->algorithm); - if (md == NULL) { - RSAerr(RSA_F_RSA_ITEM_VERIFY, RSA_R_UNKNOWN_PSS_DIGEST); - goto err; - } - } else - md = EVP_sha1(); + mgf1md = rsa_mgf1_to_md(pss->maskGenAlgorithm, maskHash); + if (!mgf1md) + goto err; + md = rsa_algor_to_md(pss->hashAlgorithm); + if (!md) + goto err; if (pss->saltLength) { saltlen = ASN1_INTEGER_get(pss->saltLength); @@ -488,7 +617,7 @@ static int rsa_item_verify(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn, * routines will trap other invalid values anyway. */ if (saltlen < 0) { - RSAerr(RSA_F_RSA_ITEM_VERIFY, RSA_R_INVALID_SALT_LENGTH); + RSAerr(RSA_F_RSA_PSS_TO_CTX, RSA_R_INVALID_SALT_LENGTH); goto err; } } else @@ -499,14 +628,24 @@ static int rsa_item_verify(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn, * PKCS#1 says we should reject any other value anyway. */ if (pss->trailerField && ASN1_INTEGER_get(pss->trailerField) != 1) { - RSAerr(RSA_F_RSA_ITEM_VERIFY, RSA_R_INVALID_TRAILER); + RSAerr(RSA_F_RSA_PSS_TO_CTX, RSA_R_INVALID_TRAILER); goto err; } /* We have all parameters now set up context */ - if (!EVP_DigestVerifyInit(ctx, &pkctx, md, NULL, pkey)) - goto err; + if (pkey) { + if (!EVP_DigestVerifyInit(ctx, &pkctx, md, NULL, pkey)) + goto err; + } else { + const EVP_MD *checkmd; + if (EVP_PKEY_CTX_get_signature_md(pkctx, &checkmd) <= 0) + goto err; + if (EVP_MD_type(md) != EVP_MD_type(checkmd)) { + RSAerr(RSA_F_RSA_PSS_TO_CTX, RSA_R_DIGEST_DOES_NOT_MATCH); + goto err; + } + } if (EVP_PKEY_CTX_set_rsa_padding(pkctx, RSA_PKCS1_PSS_PADDING) <= 0) goto err; @@ -517,7 +656,7 @@ static int rsa_item_verify(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn, if (EVP_PKEY_CTX_set_rsa_mgf1_md(pkctx, mgf1md) <= 0) goto err; /* Carry on */ - rv = 2; + rv = 1; err: RSA_PSS_PARAMS_free(pss); @@ -526,6 +665,71 @@ static int rsa_item_verify(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn, return rv; } +static int rsa_cms_verify(CMS_SignerInfo *si) +{ + int nid, nid2; + X509_ALGOR *alg; + EVP_PKEY_CTX *pkctx = CMS_SignerInfo_get0_pkey_ctx(si); + CMS_SignerInfo_get0_algs(si, NULL, NULL, NULL, &alg); + nid = OBJ_obj2nid(alg->algorithm); + if (nid == NID_rsaEncryption) + return 1; + if (nid == NID_rsassaPss) + return rsa_pss_to_ctx(NULL, pkctx, alg, NULL); + /* Workaround for some implementation that use a signature OID */ + if (OBJ_find_sigid_algs(nid, NULL, &nid2)) { + if (nid2 == NID_rsaEncryption) + return 1; + } + return 0; +} + +/* + * Customised RSA item verification routine. This is called when a signature + * is encountered requiring special handling. We currently only handle PSS. + */ + +static int rsa_item_verify(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn, + X509_ALGOR *sigalg, ASN1_BIT_STRING *sig, + EVP_PKEY *pkey) +{ + /* Sanity check: make sure it is PSS */ + if (OBJ_obj2nid(sigalg->algorithm) != NID_rsassaPss) { + RSAerr(RSA_F_RSA_ITEM_VERIFY, RSA_R_UNSUPPORTED_SIGNATURE_TYPE); + return -1; + } + if (rsa_pss_to_ctx(ctx, NULL, sigalg, pkey) > 0) { + /* Carry on */ + return 2; + } + return -1; +} + +static int rsa_cms_sign(CMS_SignerInfo *si) +{ + int pad_mode = RSA_PKCS1_PADDING; + X509_ALGOR *alg; + EVP_PKEY_CTX *pkctx = CMS_SignerInfo_get0_pkey_ctx(si); + ASN1_STRING *os = NULL; + CMS_SignerInfo_get0_algs(si, NULL, NULL, NULL, &alg); + if (pkctx) { + if (EVP_PKEY_CTX_get_rsa_padding(pkctx, &pad_mode) <= 0) + return 0; + } + if (pad_mode == RSA_PKCS1_PADDING) { + X509_ALGOR_set0(alg, OBJ_nid2obj(NID_rsaEncryption), V_ASN1_NULL, 0); + return 1; + } + /* We don't support it */ + if (pad_mode != RSA_PKCS1_PSS_PADDING) + return 0; + os = rsa_ctx_to_pss(pkctx); + if (!os) + return 0; + X509_ALGOR_set0(alg, OBJ_nid2obj(NID_rsassaPss), V_ASN1_SEQUENCE, os); + return 1; +} + static int rsa_item_sign(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn, X509_ALGOR *alg1, X509_ALGOR *alg2, ASN1_BIT_STRING *sig) @@ -537,78 +741,184 @@ static int rsa_item_sign(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn, if (pad_mode == RSA_PKCS1_PADDING) return 2; if (pad_mode == RSA_PKCS1_PSS_PADDING) { - const EVP_MD *sigmd, *mgf1md; - RSA_PSS_PARAMS *pss = NULL; - X509_ALGOR *mgf1alg = NULL; - ASN1_STRING *os1 = NULL, *os2 = NULL; - EVP_PKEY *pk = EVP_PKEY_CTX_get0_pkey(pkctx); - int saltlen, rv = 0; - sigmd = EVP_MD_CTX_md(ctx); - if (EVP_PKEY_CTX_get_rsa_mgf1_md(pkctx, &mgf1md) <= 0) - goto err; - if (!EVP_PKEY_CTX_get_rsa_pss_saltlen(pkctx, &saltlen)) - goto err; - if (saltlen == -1) - saltlen = EVP_MD_size(sigmd); - else if (saltlen == -2) { - saltlen = EVP_PKEY_size(pk) - EVP_MD_size(sigmd) - 2; - if (((EVP_PKEY_bits(pk) - 1) & 0x7) == 0) - saltlen--; - } - pss = RSA_PSS_PARAMS_new(); - if (!pss) - goto err; - if (saltlen != 20) { - pss->saltLength = ASN1_INTEGER_new(); - if (!pss->saltLength) - goto err; - if (!ASN1_INTEGER_set(pss->saltLength, saltlen)) - goto err; - } - if (EVP_MD_type(sigmd) != NID_sha1) { - pss->hashAlgorithm = X509_ALGOR_new(); - if (!pss->hashAlgorithm) - goto err; - X509_ALGOR_set_md(pss->hashAlgorithm, sigmd); - } - if (EVP_MD_type(mgf1md) != NID_sha1) { - ASN1_STRING *stmp = NULL; - /* need to embed algorithm ID inside another */ - mgf1alg = X509_ALGOR_new(); - X509_ALGOR_set_md(mgf1alg, mgf1md); - if (!ASN1_item_pack(mgf1alg, ASN1_ITEM_rptr(X509_ALGOR), &stmp)) - goto err; - pss->maskGenAlgorithm = X509_ALGOR_new(); - if (!pss->maskGenAlgorithm) - goto err; - X509_ALGOR_set0(pss->maskGenAlgorithm, - OBJ_nid2obj(NID_mgf1), V_ASN1_SEQUENCE, stmp); - } - /* Finally create string with pss parameter encoding. */ - if (!ASN1_item_pack(pss, ASN1_ITEM_rptr(RSA_PSS_PARAMS), &os1)) - goto err; + ASN1_STRING *os1 = NULL; + os1 = rsa_ctx_to_pss(pkctx); + if (!os1) + return 0; + /* Duplicate parameters if we have to */ if (alg2) { - os2 = ASN1_STRING_dup(os1); - if (!os2) - goto err; + ASN1_STRING *os2 = ASN1_STRING_dup(os1); + if (!os2) { + ASN1_STRING_free(os1); + return 0; + } X509_ALGOR_set0(alg2, OBJ_nid2obj(NID_rsassaPss), V_ASN1_SEQUENCE, os2); } X509_ALGOR_set0(alg1, OBJ_nid2obj(NID_rsassaPss), V_ASN1_SEQUENCE, os1); - os1 = os2 = NULL; - rv = 3; + return 3; + } + return 2; +} + +static RSA_OAEP_PARAMS *rsa_oaep_decode(const X509_ALGOR *alg, + X509_ALGOR **pmaskHash) +{ + const unsigned char *p; + int plen; + RSA_OAEP_PARAMS *pss; + + *pmaskHash = NULL; + + if (!alg->parameter || alg->parameter->type != V_ASN1_SEQUENCE) + return NULL; + p = alg->parameter->value.sequence->data; + plen = alg->parameter->value.sequence->length; + pss = d2i_RSA_OAEP_PARAMS(NULL, &p, plen); + + if (!pss) + return NULL; + + *pmaskHash = rsa_mgf1_decode(pss->maskGenFunc); + + return pss; +} + +static int rsa_cms_decrypt(CMS_RecipientInfo *ri) +{ + EVP_PKEY_CTX *pkctx; + X509_ALGOR *cmsalg; + int nid; + int rv = -1; + unsigned char *label = NULL; + int labellen = 0; + const EVP_MD *mgf1md = NULL, *md = NULL; + RSA_OAEP_PARAMS *oaep; + X509_ALGOR *maskHash; + pkctx = CMS_RecipientInfo_get0_pkey_ctx(ri); + if (!pkctx) + return 0; + if (!CMS_RecipientInfo_ktri_get0_algs(ri, NULL, NULL, &cmsalg)) + return -1; + nid = OBJ_obj2nid(cmsalg->algorithm); + if (nid == NID_rsaEncryption) + return 1; + if (nid != NID_rsaesOaep) { + RSAerr(RSA_F_RSA_CMS_DECRYPT, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE); + return -1; + } + /* Decode OAEP parameters */ + oaep = rsa_oaep_decode(cmsalg, &maskHash); + + if (oaep == NULL) { + RSAerr(RSA_F_RSA_CMS_DECRYPT, RSA_R_INVALID_OAEP_PARAMETERS); + goto err; + } + + mgf1md = rsa_mgf1_to_md(oaep->maskGenFunc, maskHash); + if (!mgf1md) + goto err; + md = rsa_algor_to_md(oaep->hashFunc); + if (!md) + goto err; + + if (oaep->pSourceFunc) { + X509_ALGOR *plab = oaep->pSourceFunc; + if (OBJ_obj2nid(plab->algorithm) != NID_pSpecified) { + RSAerr(RSA_F_RSA_CMS_DECRYPT, RSA_R_UNSUPPORTED_LABEL_SOURCE); + goto err; + } + if (plab->parameter->type != V_ASN1_OCTET_STRING) { + RSAerr(RSA_F_RSA_CMS_DECRYPT, RSA_R_INVALID_LABEL); + goto err; + } + + label = plab->parameter->value.octet_string->data; + /* Stop label being freed when OAEP parameters are freed */ + plab->parameter->value.octet_string->data = NULL; + labellen = plab->parameter->value.octet_string->length; + } + + if (EVP_PKEY_CTX_set_rsa_padding(pkctx, RSA_PKCS1_OAEP_PADDING) <= 0) + goto err; + if (EVP_PKEY_CTX_set_rsa_oaep_md(pkctx, md) <= 0) + goto err; + if (EVP_PKEY_CTX_set_rsa_mgf1_md(pkctx, mgf1md) <= 0) + goto err; + if (EVP_PKEY_CTX_set0_rsa_oaep_label(pkctx, label, labellen) <= 0) + goto err; + /* Carry on */ + rv = 1; + err: - if (mgf1alg) - X509_ALGOR_free(mgf1alg); - if (pss) - RSA_PSS_PARAMS_free(pss); - if (os1) - ASN1_STRING_free(os1); - return rv; + RSA_OAEP_PARAMS_free(oaep); + if (maskHash) + X509_ALGOR_free(maskHash); + return rv; +} +static int rsa_cms_encrypt(CMS_RecipientInfo *ri) +{ + const EVP_MD *md, *mgf1md; + RSA_OAEP_PARAMS *oaep = NULL; + ASN1_STRING *os = NULL; + X509_ALGOR *alg; + EVP_PKEY_CTX *pkctx = CMS_RecipientInfo_get0_pkey_ctx(ri); + int pad_mode = RSA_PKCS1_PADDING, rv = 0, labellen; + unsigned char *label; + CMS_RecipientInfo_ktri_get0_algs(ri, NULL, NULL, &alg); + if (pkctx) { + if (EVP_PKEY_CTX_get_rsa_padding(pkctx, &pad_mode) <= 0) + return 0; } - return 2; + if (pad_mode == RSA_PKCS1_PADDING) { + X509_ALGOR_set0(alg, OBJ_nid2obj(NID_rsaEncryption), V_ASN1_NULL, 0); + return 1; + } + /* Not supported */ + if (pad_mode != RSA_PKCS1_OAEP_PADDING) + return 0; + if (EVP_PKEY_CTX_get_rsa_oaep_md(pkctx, &md) <= 0) + goto err; + if (EVP_PKEY_CTX_get_rsa_mgf1_md(pkctx, &mgf1md) <= 0) + goto err; + labellen = EVP_PKEY_CTX_get0_rsa_oaep_label(pkctx, &label); + if (labellen < 0) + goto err; + oaep = RSA_OAEP_PARAMS_new(); + if (!oaep) + goto err; + if (!rsa_md_to_algor(&oaep->hashFunc, md)) + goto err; + if (!rsa_md_to_mgf1(&oaep->maskGenFunc, mgf1md)) + goto err; + if (labellen > 0) { + ASN1_OCTET_STRING *los = ASN1_OCTET_STRING_new(); + oaep->pSourceFunc = X509_ALGOR_new(); + if (!oaep->pSourceFunc) + goto err; + if (!los) + goto err; + if (!ASN1_OCTET_STRING_set(los, label, labellen)) { + ASN1_OCTET_STRING_free(los); + goto err; + } + X509_ALGOR_set0(oaep->pSourceFunc, OBJ_nid2obj(NID_pSpecified), + V_ASN1_OCTET_STRING, los); + } + /* create string with pss parameter encoding. */ + if (!ASN1_item_pack(oaep, ASN1_ITEM_rptr(RSA_OAEP_PARAMS), &os)) + goto err; + X509_ALGOR_set0(alg, OBJ_nid2obj(NID_rsaesOaep), V_ASN1_SEQUENCE, os); + os = NULL; + rv = 1; + err: + if (oaep) + RSA_OAEP_PARAMS_free(oaep); + if (os) + ASN1_STRING_free(os); + return rv; } const EVP_PKEY_ASN1_METHOD rsa_asn1_meths[] = { diff --git a/libs/openssl/crypto/rsa/rsa_asn1.c b/libs/openssl/crypto/rsa/rsa_asn1.c index 3d82c1d0..aff8b583 100644 --- a/libs/openssl/crypto/rsa/rsa_asn1.c +++ b/libs/openssl/crypto/rsa/rsa_asn1.c @@ -108,6 +108,14 @@ ASN1_SEQUENCE(RSA_PSS_PARAMS) = { IMPLEMENT_ASN1_FUNCTIONS(RSA_PSS_PARAMS) +ASN1_SEQUENCE(RSA_OAEP_PARAMS) = { + ASN1_EXP_OPT(RSA_OAEP_PARAMS, hashFunc, X509_ALGOR, 0), + ASN1_EXP_OPT(RSA_OAEP_PARAMS, maskGenFunc, X509_ALGOR, 1), + ASN1_EXP_OPT(RSA_OAEP_PARAMS, pSourceFunc, X509_ALGOR, 2), +} ASN1_SEQUENCE_END(RSA_OAEP_PARAMS) + +IMPLEMENT_ASN1_FUNCTIONS(RSA_OAEP_PARAMS) + IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(RSA, RSAPrivateKey, RSAPrivateKey) IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(RSA, RSAPublicKey, RSAPublicKey) diff --git a/libs/openssl/crypto/rsa/rsa_err.c b/libs/openssl/crypto/rsa/rsa_err.c index 25b3fa74..0bab05ef 100644 --- a/libs/openssl/crypto/rsa/rsa_err.c +++ b/libs/openssl/crypto/rsa/rsa_err.c @@ -1,6 +1,6 @@ /* crypto/rsa/rsa_err.c */ /* ==================================================================== - * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. + * Copyright (c) 1999-2014 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -80,8 +80,10 @@ static ERR_STRING_DATA RSA_str_functs[] = { {ERR_FUNC(RSA_F_PKEY_RSA_SIGN), "PKEY_RSA_SIGN"}, {ERR_FUNC(RSA_F_PKEY_RSA_VERIFY), "PKEY_RSA_VERIFY"}, {ERR_FUNC(RSA_F_PKEY_RSA_VERIFYRECOVER), "PKEY_RSA_VERIFYRECOVER"}, + {ERR_FUNC(RSA_F_RSA_ALGOR_TO_MD), "RSA_ALGOR_TO_MD"}, {ERR_FUNC(RSA_F_RSA_BUILTIN_KEYGEN), "RSA_BUILTIN_KEYGEN"}, {ERR_FUNC(RSA_F_RSA_CHECK_KEY), "RSA_check_key"}, + {ERR_FUNC(RSA_F_RSA_CMS_DECRYPT), "RSA_CMS_DECRYPT"}, {ERR_FUNC(RSA_F_RSA_EAY_PRIVATE_DECRYPT), "RSA_EAY_PRIVATE_DECRYPT"}, {ERR_FUNC(RSA_F_RSA_EAY_PRIVATE_ENCRYPT), "RSA_EAY_PRIVATE_ENCRYPT"}, {ERR_FUNC(RSA_F_RSA_EAY_PUBLIC_DECRYPT), "RSA_EAY_PUBLIC_DECRYPT"}, @@ -90,6 +92,7 @@ static ERR_STRING_DATA RSA_str_functs[] = { {ERR_FUNC(RSA_F_RSA_GENERATE_KEY_EX), "RSA_generate_key_ex"}, {ERR_FUNC(RSA_F_RSA_ITEM_VERIFY), "RSA_ITEM_VERIFY"}, {ERR_FUNC(RSA_F_RSA_MEMORY_LOCK), "RSA_memory_lock"}, + {ERR_FUNC(RSA_F_RSA_MGF1_TO_MD), "RSA_MGF1_TO_MD"}, {ERR_FUNC(RSA_F_RSA_NEW_METHOD), "RSA_new_method"}, {ERR_FUNC(RSA_F_RSA_NULL), "RSA_NULL"}, {ERR_FUNC(RSA_F_RSA_NULL_MOD_EXP), "RSA_NULL_MOD_EXP"}, @@ -100,6 +103,8 @@ static ERR_STRING_DATA RSA_str_functs[] = { {ERR_FUNC(RSA_F_RSA_PADDING_ADD_NONE), "RSA_padding_add_none"}, {ERR_FUNC(RSA_F_RSA_PADDING_ADD_PKCS1_OAEP), "RSA_padding_add_PKCS1_OAEP"}, + {ERR_FUNC(RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1), + "RSA_padding_add_PKCS1_OAEP_mgf1"}, {ERR_FUNC(RSA_F_RSA_PADDING_ADD_PKCS1_PSS), "RSA_padding_add_PKCS1_PSS"}, {ERR_FUNC(RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1), "RSA_padding_add_PKCS1_PSS_mgf1"}, @@ -112,6 +117,8 @@ static ERR_STRING_DATA RSA_str_functs[] = { {ERR_FUNC(RSA_F_RSA_PADDING_CHECK_NONE), "RSA_padding_check_none"}, {ERR_FUNC(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP), "RSA_padding_check_PKCS1_OAEP"}, + {ERR_FUNC(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1), + "RSA_padding_check_PKCS1_OAEP_mgf1"}, {ERR_FUNC(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1), "RSA_padding_check_PKCS1_type_1"}, {ERR_FUNC(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2), @@ -124,6 +131,7 @@ static ERR_STRING_DATA RSA_str_functs[] = { {ERR_FUNC(RSA_F_RSA_PRIVATE_ENCRYPT), "RSA_private_encrypt"}, {ERR_FUNC(RSA_F_RSA_PRIV_DECODE), "RSA_PRIV_DECODE"}, {ERR_FUNC(RSA_F_RSA_PRIV_ENCODE), "RSA_PRIV_ENCODE"}, + {ERR_FUNC(RSA_F_RSA_PSS_TO_CTX), "RSA_PSS_TO_CTX"}, {ERR_FUNC(RSA_F_RSA_PUBLIC_DECRYPT), "RSA_public_decrypt"}, {ERR_FUNC(RSA_F_RSA_PUBLIC_ENCRYPT), "RSA_public_encrypt"}, {ERR_FUNC(RSA_F_RSA_PUB_DECODE), "RSA_PUB_DECODE"}, @@ -157,6 +165,7 @@ static ERR_STRING_DATA RSA_str_reasons[] = { {ERR_REASON(RSA_R_DATA_TOO_SMALL), "data too small"}, {ERR_REASON(RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE), "data too small for key size"}, + {ERR_REASON(RSA_R_DIGEST_DOES_NOT_MATCH), "digest does not match"}, {ERR_REASON(RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY), "digest too big for rsa key"}, {ERR_REASON(RSA_R_DMP1_NOT_CONGRUENT_TO_D), "dmp1 not congruent to d"}, @@ -165,11 +174,14 @@ static ERR_STRING_DATA RSA_str_reasons[] = { {ERR_REASON(RSA_R_FIRST_OCTET_INVALID), "first octet invalid"}, {ERR_REASON(RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE), "illegal or unsupported padding mode"}, + {ERR_REASON(RSA_R_INVALID_DIGEST), "invalid digest"}, {ERR_REASON(RSA_R_INVALID_DIGEST_LENGTH), "invalid digest length"}, {ERR_REASON(RSA_R_INVALID_HEADER), "invalid header"}, {ERR_REASON(RSA_R_INVALID_KEYBITS), "invalid keybits"}, + {ERR_REASON(RSA_R_INVALID_LABEL), "invalid label"}, {ERR_REASON(RSA_R_INVALID_MESSAGE_LENGTH), "invalid message length"}, {ERR_REASON(RSA_R_INVALID_MGF1_MD), "invalid mgf1 md"}, + {ERR_REASON(RSA_R_INVALID_OAEP_PARAMETERS), "invalid oaep parameters"}, {ERR_REASON(RSA_R_INVALID_PADDING), "invalid padding"}, {ERR_REASON(RSA_R_INVALID_PADDING_MODE), "invalid padding mode"}, {ERR_REASON(RSA_R_INVALID_PSS_PARAMETERS), "invalid pss parameters"}, @@ -203,9 +215,13 @@ static ERR_STRING_DATA RSA_str_reasons[] = { {ERR_REASON(RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD), "the asn1 object identifier is not known for this md"}, {ERR_REASON(RSA_R_UNKNOWN_ALGORITHM_TYPE), "unknown algorithm type"}, + {ERR_REASON(RSA_R_UNKNOWN_DIGEST), "unknown digest"}, {ERR_REASON(RSA_R_UNKNOWN_MASK_DIGEST), "unknown mask digest"}, {ERR_REASON(RSA_R_UNKNOWN_PADDING_TYPE), "unknown padding type"}, {ERR_REASON(RSA_R_UNKNOWN_PSS_DIGEST), "unknown pss digest"}, + {ERR_REASON(RSA_R_UNSUPPORTED_ENCRYPTION_TYPE), + "unsupported encryption type"}, + {ERR_REASON(RSA_R_UNSUPPORTED_LABEL_SOURCE), "unsupported label source"}, {ERR_REASON(RSA_R_UNSUPPORTED_MASK_ALGORITHM), "unsupported mask algorithm"}, {ERR_REASON(RSA_R_UNSUPPORTED_MASK_PARAMETER), diff --git a/libs/openssl/crypto/rsa/rsa_gen.c b/libs/openssl/crypto/rsa/rsa_gen.c index 2465fbde..7f7dca39 100644 --- a/libs/openssl/crypto/rsa/rsa_gen.c +++ b/libs/openssl/crypto/rsa/rsa_gen.c @@ -69,6 +69,8 @@ #include #ifdef OPENSSL_FIPS # include +extern int FIPS_rsa_x931_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, + BN_GENCB *cb); #endif static int rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, @@ -94,7 +96,7 @@ int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb) return rsa->meth->rsa_keygen(rsa, bits, e_value, cb); #ifdef OPENSSL_FIPS if (FIPS_mode()) - return FIPS_rsa_generate_key_ex(rsa, bits, e_value, cb); + return FIPS_rsa_x931_generate_key_ex(rsa, bits, e_value, cb); #endif return rsa_builtin_keygen(rsa, bits, e_value, cb); } diff --git a/libs/openssl/crypto/rsa/rsa_oaep.c b/libs/openssl/crypto/rsa/rsa_oaep.c index 499835f8..9c2a943c 100644 --- a/libs/openssl/crypto/rsa/rsa_oaep.c +++ b/libs/openssl/crypto/rsa/rsa_oaep.c @@ -28,39 +28,53 @@ # include # include -static int MGF1(unsigned char *mask, long len, - const unsigned char *seed, long seedlen); - int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, const unsigned char *from, int flen, const unsigned char *param, int plen) +{ + return RSA_padding_add_PKCS1_OAEP_mgf1(to, tlen, from, flen, + param, plen, NULL, NULL); +} + +int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *from, int flen, + const unsigned char *param, int plen, + const EVP_MD *md, const EVP_MD *mgf1md) { int i, emlen = tlen - 1; unsigned char *db, *seed; - unsigned char *dbmask, seedmask[SHA_DIGEST_LENGTH]; + unsigned char *dbmask, seedmask[EVP_MAX_MD_SIZE]; + int mdlen; + + if (md == NULL) + md = EVP_sha1(); + if (mgf1md == NULL) + mgf1md = md; - if (flen > emlen - 2 * SHA_DIGEST_LENGTH - 1) { - RSAerr(RSA_F_RSA_PADDING_ADD_PKCS1_OAEP, + mdlen = EVP_MD_size(md); + + if (flen > emlen - 2 * mdlen - 1) { + RSAerr(RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE); return 0; } - if (emlen < 2 * SHA_DIGEST_LENGTH + 1) { - RSAerr(RSA_F_RSA_PADDING_ADD_PKCS1_OAEP, RSA_R_KEY_SIZE_TOO_SMALL); + if (emlen < 2 * mdlen + 1) { + RSAerr(RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1, + RSA_R_KEY_SIZE_TOO_SMALL); return 0; } to[0] = 0; seed = to + 1; - db = to + SHA_DIGEST_LENGTH + 1; + db = to + mdlen + 1; - if (!EVP_Digest((void *)param, plen, db, NULL, EVP_sha1(), NULL)) + if (!EVP_Digest((void *)param, plen, db, NULL, md, NULL)) return 0; - memset(db + SHA_DIGEST_LENGTH, 0, - emlen - flen - 2 * SHA_DIGEST_LENGTH - 1); - db[emlen - flen - SHA_DIGEST_LENGTH - 1] = 0x01; - memcpy(db + emlen - flen - SHA_DIGEST_LENGTH, from, (unsigned int)flen); - if (RAND_bytes(seed, SHA_DIGEST_LENGTH) <= 0) + memset(db + mdlen, 0, emlen - flen - 2 * mdlen - 1); + db[emlen - flen - mdlen - 1] = 0x01; + memcpy(db + emlen - flen - mdlen, from, (unsigned int)flen); + if (RAND_bytes(seed, mdlen) <= 0) return 0; # ifdef PKCS_TESTVECT memcpy(seed, @@ -68,20 +82,20 @@ int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, 20); # endif - dbmask = OPENSSL_malloc(emlen - SHA_DIGEST_LENGTH); + dbmask = OPENSSL_malloc(emlen - mdlen); if (dbmask == NULL) { - RSAerr(RSA_F_RSA_PADDING_ADD_PKCS1_OAEP, ERR_R_MALLOC_FAILURE); + RSAerr(RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1, ERR_R_MALLOC_FAILURE); return 0; } - if (MGF1(dbmask, emlen - SHA_DIGEST_LENGTH, seed, SHA_DIGEST_LENGTH) < 0) + if (PKCS1_MGF1(dbmask, emlen - mdlen, seed, mdlen, mgf1md) < 0) return 0; - for (i = 0; i < emlen - SHA_DIGEST_LENGTH; i++) + for (i = 0; i < emlen - mdlen; i++) db[i] ^= dbmask[i]; - if (MGF1(seedmask, SHA_DIGEST_LENGTH, db, emlen - SHA_DIGEST_LENGTH) < 0) + if (PKCS1_MGF1(seedmask, mdlen, db, emlen - mdlen, mgf1md) < 0) return 0; - for (i = 0; i < SHA_DIGEST_LENGTH; i++) + for (i = 0; i < mdlen; i++) seed[i] ^= seedmask[i]; OPENSSL_free(dbmask); @@ -91,6 +105,16 @@ int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, const unsigned char *from, int flen, int num, const unsigned char *param, int plen) +{ + return RSA_padding_check_PKCS1_OAEP_mgf1(to, tlen, from, flen, num, + param, plen, NULL, NULL); +} + +int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *from, int flen, + int num, const unsigned char *param, + int plen, const EVP_MD *md, + const EVP_MD *mgf1md) { int i, dblen, mlen = -1, one_index = 0, msg_index; unsigned int good, found_one_byte; @@ -101,26 +125,33 @@ int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, */ unsigned char *db = NULL, *em = NULL, seed[EVP_MAX_MD_SIZE], phash[EVP_MAX_MD_SIZE]; + int mdlen; + + if (md == NULL) + md = EVP_sha1(); + if (mgf1md == NULL) + mgf1md = md; + + mdlen = EVP_MD_size(md); if (tlen <= 0 || flen <= 0) return -1; - /* * |num| is the length of the modulus; |flen| is the length of the * encoded message. Therefore, for any |from| that was obtained by * decrypting a ciphertext, we must have |flen| <= |num|. Similarly, - * num < 2 * SHA_DIGEST_LENGTH + 2 must hold for the modulus - * irrespective of the ciphertext, see PKCS #1 v2.2, section 7.1.2. + * num < 2 * mdlen + 2 must hold for the modulus irrespective of + * the ciphertext, see PKCS #1 v2.2, section 7.1.2. * This does not leak any side-channel information. */ - if (num < flen || num < 2 * SHA_DIGEST_LENGTH + 2) + if (num < flen || num < 2 * mdlen + 2) goto decoding_err; - dblen = num - SHA_DIGEST_LENGTH - 1; + dblen = num - mdlen - 1; db = OPENSSL_malloc(dblen); em = OPENSSL_malloc(num); if (db == NULL || em == NULL) { - RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP, ERR_R_MALLOC_FAILURE); + RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1, ERR_R_MALLOC_FAILURE); goto cleanup; } @@ -143,26 +174,25 @@ int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, good = constant_time_is_zero(em[0]); maskedseed = em + 1; - maskeddb = em + 1 + SHA_DIGEST_LENGTH; + maskeddb = em + 1 + mdlen; - if (MGF1(seed, SHA_DIGEST_LENGTH, maskeddb, dblen)) + if (PKCS1_MGF1(seed, mdlen, maskeddb, dblen, mgf1md)) goto cleanup; - for (i = 0; i < SHA_DIGEST_LENGTH; i++) + for (i = 0; i < mdlen; i++) seed[i] ^= maskedseed[i]; - if (MGF1(db, dblen, seed, SHA_DIGEST_LENGTH)) + if (PKCS1_MGF1(db, dblen, seed, mdlen, mgf1md)) goto cleanup; for (i = 0; i < dblen; i++) db[i] ^= maskeddb[i]; - if (!EVP_Digest((void *)param, plen, phash, NULL, EVP_sha1(), NULL)) + if (!EVP_Digest((void *)param, plen, phash, NULL, md, NULL)) goto cleanup; - good &= - constant_time_is_zero(CRYPTO_memcmp(db, phash, SHA_DIGEST_LENGTH)); + good &= constant_time_is_zero(CRYPTO_memcmp(db, phash, mdlen)); found_one_byte = 0; - for (i = SHA_DIGEST_LENGTH; i < dblen; i++) { + for (i = mdlen; i < dblen; i++) { /* * Padding consists of a number of 0-bytes, followed by a 1. */ @@ -188,7 +218,7 @@ int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, mlen = dblen - msg_index; if (tlen < mlen) { - RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP, RSA_R_DATA_TOO_LARGE); + RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1, RSA_R_DATA_TOO_LARGE); mlen = -1; } else { memcpy(to, db + msg_index, mlen); @@ -200,7 +230,8 @@ int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, * To avoid chosen ciphertext attacks, the error message should not * reveal which kind of decoding error happened. */ - RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP, RSA_R_OAEP_DECODING_ERROR); + RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1, + RSA_R_OAEP_DECODING_ERROR); cleanup: if (db != NULL) OPENSSL_free(db); @@ -249,9 +280,4 @@ int PKCS1_MGF1(unsigned char *mask, long len, return rv; } -static int MGF1(unsigned char *mask, long len, const unsigned char *seed, - long seedlen) -{ - return PKCS1_MGF1(mask, len, seed, seedlen, EVP_sha1()); -} #endif diff --git a/libs/openssl/crypto/rsa/rsa_pmeth.c b/libs/openssl/crypto/rsa/rsa_pmeth.c index 6a7c67cd..20363559 100644 --- a/libs/openssl/crypto/rsa/rsa_pmeth.c +++ b/libs/openssl/crypto/rsa/rsa_pmeth.c @@ -64,6 +64,7 @@ #include #include #include +#include #ifndef OPENSSL_NO_CMS # include #endif @@ -87,10 +88,13 @@ typedef struct { const EVP_MD *md; /* message digest for MGF1 */ const EVP_MD *mgf1md; - /* PSS/OAEP salt length */ + /* PSS salt length */ int saltlen; /* Temp buffer */ unsigned char *tbuf; + /* OAEP label */ + unsigned char *oaep_label; + size_t oaep_labellen; } RSA_PKEY_CTX; static int pkey_rsa_init(EVP_PKEY_CTX *ctx) @@ -108,6 +112,9 @@ static int pkey_rsa_init(EVP_PKEY_CTX *ctx) rctx->saltlen = -2; + rctx->oaep_label = NULL; + rctx->oaep_labellen = 0; + ctx->data = rctx; ctx->keygen_info = rctx->gentmp; ctx->keygen_info_count = 2; @@ -130,6 +137,15 @@ static int pkey_rsa_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src) } dctx->pad_mode = sctx->pad_mode; dctx->md = sctx->md; + dctx->mgf1md = sctx->mgf1md; + if (sctx->oaep_label) { + if (dctx->oaep_label) + OPENSSL_free(dctx->oaep_label); + dctx->oaep_label = BUF_memdup(sctx->oaep_label, sctx->oaep_labellen); + if (!dctx->oaep_label) + return 0; + dctx->oaep_labellen = sctx->oaep_labellen; + } return 1; } @@ -151,6 +167,8 @@ static void pkey_rsa_cleanup(EVP_PKEY_CTX *ctx) BN_free(rctx->pub_exp); if (rctx->tbuf) OPENSSL_free(rctx->tbuf); + if (rctx->oaep_label) + OPENSSL_free(rctx->oaep_label); OPENSSL_free(rctx); } } @@ -173,10 +191,18 @@ static int pkey_fips_check_ctx(EVP_PKEY_CTX *ctx) rv = 0; if (!(rsa->meth->flags & RSA_FLAG_FIPS_METHOD) && rv) return -1; - if (rctx->md && !(rctx->md->flags & EVP_MD_FLAG_FIPS)) - return rv; - if (rctx->mgf1md && !(rctx->mgf1md->flags & EVP_MD_FLAG_FIPS)) - return rv; + if (rctx->md) { + const EVP_MD *fmd; + fmd = FIPS_get_digestbynid(EVP_MD_type(rctx->md)); + if (!fmd || !(fmd->flags & EVP_MD_FLAG_FIPS)) + return rv; + } + if (rctx->mgf1md && !(rctx->mgf1md->flags & EVP_MD_FLAG_FIPS)) { + const EVP_MD *fmd; + fmd = FIPS_get_digestbynid(EVP_MD_type(rctx->mgf1md)); + if (!fmd || !(fmd->flags & EVP_MD_FLAG_FIPS)) + return rv; + } return 1; } #endif @@ -388,8 +414,21 @@ static int pkey_rsa_encrypt(EVP_PKEY_CTX *ctx, { int ret; RSA_PKEY_CTX *rctx = ctx->data; - ret = RSA_public_encrypt(inlen, in, out, ctx->pkey->pkey.rsa, - rctx->pad_mode); + if (rctx->pad_mode == RSA_PKCS1_OAEP_PADDING) { + int klen = RSA_size(ctx->pkey->pkey.rsa); + if (!setup_tbuf(rctx, ctx)) + return -1; + if (!RSA_padding_add_PKCS1_OAEP_mgf1(rctx->tbuf, klen, + in, inlen, + rctx->oaep_label, + rctx->oaep_labellen, + rctx->md, rctx->mgf1md)) + return -1; + ret = RSA_public_encrypt(klen, rctx->tbuf, out, + ctx->pkey->pkey.rsa, RSA_NO_PADDING); + } else + ret = RSA_public_encrypt(inlen, in, out, ctx->pkey->pkey.rsa, + rctx->pad_mode); if (ret < 0) return ret; *outlen = ret; @@ -402,8 +441,26 @@ static int pkey_rsa_decrypt(EVP_PKEY_CTX *ctx, { int ret; RSA_PKEY_CTX *rctx = ctx->data; - ret = RSA_private_decrypt(inlen, in, out, ctx->pkey->pkey.rsa, - rctx->pad_mode); + if (rctx->pad_mode == RSA_PKCS1_OAEP_PADDING) { + int i; + if (!setup_tbuf(rctx, ctx)) + return -1; + ret = RSA_private_decrypt(inlen, in, rctx->tbuf, + ctx->pkey->pkey.rsa, RSA_NO_PADDING); + if (ret <= 0) + return ret; + for (i = 0; i < ret; i++) { + if (rctx->tbuf[i]) + break; + } + ret = RSA_padding_check_PKCS1_OAEP_mgf1(out, ret, rctx->tbuf + i, + ret - i, ret, + rctx->oaep_label, + rctx->oaep_labellen, + rctx->md, rctx->mgf1md); + } else + ret = RSA_private_decrypt(inlen, in, out, ctx->pkey->pkey.rsa, + rctx->pad_mode); if (ret < 0) return ret; *outlen = ret; @@ -490,18 +547,36 @@ static int pkey_rsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) case EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP: if (!p2) return -2; + BN_free(rctx->pub_exp); rctx->pub_exp = p2; return 1; + case EVP_PKEY_CTRL_RSA_OAEP_MD: + case EVP_PKEY_CTRL_GET_RSA_OAEP_MD: + if (rctx->pad_mode != RSA_PKCS1_OAEP_PADDING) { + RSAerr(RSA_F_PKEY_RSA_CTRL, RSA_R_INVALID_PADDING_MODE); + return -2; + } + if (type == EVP_PKEY_CTRL_GET_RSA_OAEP_MD) + *(const EVP_MD **)p2 = rctx->md; + else + rctx->md = p2; + return 1; + case EVP_PKEY_CTRL_MD: if (!check_padding_md(p2, rctx->pad_mode)) return 0; rctx->md = p2; return 1; + case EVP_PKEY_CTRL_GET_MD: + *(const EVP_MD **)p2 = rctx->md; + return 1; + case EVP_PKEY_CTRL_RSA_MGF1_MD: case EVP_PKEY_CTRL_GET_RSA_MGF1_MD: - if (rctx->pad_mode != RSA_PKCS1_PSS_PADDING) { + if (rctx->pad_mode != RSA_PKCS1_PSS_PADDING + && rctx->pad_mode != RSA_PKCS1_OAEP_PADDING) { RSAerr(RSA_F_PKEY_RSA_CTRL, RSA_R_INVALID_MGF1_MD); return -2; } @@ -514,6 +589,30 @@ static int pkey_rsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) rctx->mgf1md = p2; return 1; + case EVP_PKEY_CTRL_RSA_OAEP_LABEL: + if (rctx->pad_mode != RSA_PKCS1_OAEP_PADDING) { + RSAerr(RSA_F_PKEY_RSA_CTRL, RSA_R_INVALID_PADDING_MODE); + return -2; + } + if (rctx->oaep_label) + OPENSSL_free(rctx->oaep_label); + if (p2 && p1 > 0) { + rctx->oaep_label = p2; + rctx->oaep_labellen = p1; + } else { + rctx->oaep_label = NULL; + rctx->oaep_labellen = 0; + } + return 1; + + case EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL: + if (rctx->pad_mode != RSA_PKCS1_OAEP_PADDING) { + RSAerr(RSA_F_PKEY_RSA_CTRL, RSA_R_INVALID_PADDING_MODE); + return -2; + } + *(unsigned char **)p2 = rctx->oaep_label; + return rctx->oaep_labellen; + case EVP_PKEY_CTRL_DIGESTINIT: case EVP_PKEY_CTRL_PKCS7_ENCRYPT: case EVP_PKEY_CTRL_PKCS7_DECRYPT: @@ -521,16 +620,6 @@ static int pkey_rsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) return 1; #ifndef OPENSSL_NO_CMS case EVP_PKEY_CTRL_CMS_DECRYPT: - { - X509_ALGOR *alg = NULL; - ASN1_OBJECT *encalg = NULL; - if (p2) - CMS_RecipientInfo_ktri_get0_algs(p2, NULL, NULL, &alg); - if (alg) - X509_ALGOR_get0(&encalg, NULL, NULL, alg); - if (encalg && OBJ_obj2nid(encalg) == NID_rsaesOaep) - rctx->pad_mode = RSA_PKCS1_OAEP_PADDING; - } case EVP_PKEY_CTRL_CMS_ENCRYPT: case EVP_PKEY_CTRL_CMS_SIGN: return 1; @@ -599,6 +688,36 @@ static int pkey_rsa_ctrl_str(EVP_PKEY_CTX *ctx, return ret; } + if (!strcmp(type, "rsa_mgf1_md")) { + const EVP_MD *md; + if (!(md = EVP_get_digestbyname(value))) { + RSAerr(RSA_F_PKEY_RSA_CTRL_STR, RSA_R_INVALID_DIGEST); + return 0; + } + return EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md); + } + + if (!strcmp(type, "rsa_oaep_md")) { + const EVP_MD *md; + if (!(md = EVP_get_digestbyname(value))) { + RSAerr(RSA_F_PKEY_RSA_CTRL_STR, RSA_R_INVALID_DIGEST); + return 0; + } + return EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md); + } + if (!strcmp(type, "rsa_oaep_label")) { + unsigned char *lab; + long lablen; + int ret; + lab = string_to_hex(value, &lablen); + if (!lab) + return 0; + ret = EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, lab, lablen); + if (ret <= 0) + OPENSSL_free(lab); + return ret; + } + return -2; } diff --git a/libs/openssl/crypto/rsa/rsa_sign.c b/libs/openssl/crypto/rsa/rsa_sign.c index bc91da2c..82ca8324 100644 --- a/libs/openssl/crypto/rsa/rsa_sign.c +++ b/libs/openssl/crypto/rsa/rsa_sign.c @@ -218,14 +218,13 @@ int int_rsa_verify(int dtype, const unsigned char *m, memcpy(rm, s + 2, 16); *prm_len = 16; ret = 1; - } else if (memcmp(m, s + 2, 16)) + } else if (memcmp(m, s + 2, 16)) { RSAerr(RSA_F_INT_RSA_VERIFY, RSA_R_BAD_SIGNATURE); - else + } else { ret = 1; - } - - /* Special case: SSL signature */ - if (dtype == NID_md5_sha1) { + } + } else if (dtype == NID_md5_sha1) { + /* Special case: SSL signature */ if ((i != SSL_SIG_LENGTH) || memcmp(s, m, SSL_SIG_LENGTH)) RSAerr(RSA_F_INT_RSA_VERIFY, RSA_R_BAD_SIGNATURE); else @@ -261,19 +260,8 @@ int int_rsa_verify(int dtype, const unsigned char *m, OBJ_nid2ln(dtype)); #endif if (sigtype != dtype) { - if (((dtype == NID_md5) && - (sigtype == NID_md5WithRSAEncryption)) || - ((dtype == NID_md2) && - (sigtype == NID_md2WithRSAEncryption))) { - /* ok, we will let it through */ -#if !defined(OPENSSL_NO_STDIO) && !defined(OPENSSL_SYS_WIN16) - fprintf(stderr, - "signature has problems, re-make with post SSLeay045\n"); -#endif - } else { - RSAerr(RSA_F_INT_RSA_VERIFY, RSA_R_ALGORITHM_MISMATCH); - goto err; - } + RSAerr(RSA_F_INT_RSA_VERIFY, RSA_R_ALGORITHM_MISMATCH); + goto err; } if (rm) { const EVP_MD *md; diff --git a/libs/openssl/crypto/sha/sha512.c b/libs/openssl/crypto/sha/sha512.c index de0aad8c..3bf66ae1 100644 --- a/libs/openssl/crypto/sha/sha512.c +++ b/libs/openssl/crypto/sha/sha512.c @@ -55,6 +55,7 @@ const char SHA512_version[] = "SHA-512" OPENSSL_VERSION_PTEXT; # if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \ defined(__x86_64) || defined(_M_AMD64) || defined(_M_X64) || \ defined(__s390__) || defined(__s390x__) || \ + defined(__aarch64__) || \ defined(SHA512_ASM) # define SHA512_BLOCK_CAN_MANAGE_UNALIGNED_DATA # endif @@ -353,6 +354,18 @@ static const SHA_LONG64 K512[80] = { asm ("rotrdi %0,%1,%2" \ : "=r"(ret) \ : "r"(a),"K"(n)); ret; }) +# elif defined(__aarch64__) +# define ROTR(a,n) ({ SHA_LONG64 ret; \ + asm ("ror %0,%1,%2" \ + : "=r"(ret) \ + : "r"(a),"I"(n)); ret; }) +# if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \ + __BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__ +# define PULL64(x) ({ SHA_LONG64 ret; \ + asm ("rev %0,%1" \ + : "=r"(ret) \ + : "r"(*((const SHA_LONG64 *)(&(x))))); ret; }) +# endif # endif # elif defined(_MSC_VER) # if defined(_WIN64) /* applies to both IA-64 and AMD64 */ diff --git a/libs/openssl/crypto/srp/srp_vfy.c b/libs/openssl/crypto/srp/srp_vfy.c index 50f75d7e..a3f1a8a0 100644 --- a/libs/openssl/crypto/srp/srp_vfy.c +++ b/libs/openssl/crypto/srp/srp_vfy.c @@ -521,12 +521,12 @@ char *SRP_create_verifier(const char *user, const char *pass, char **salt, char **verifier, const char *N, const char *g) { int len; - char *result = NULL; - char *vf; + char *result = NULL, *vf = NULL; BIGNUM *N_bn = NULL, *g_bn = NULL, *s = NULL, *v = NULL; unsigned char tmp[MAX_LEN]; unsigned char tmp2[MAX_LEN]; char *defgNid = NULL; + int vfsize = 0; if ((user == NULL) || (pass == NULL) || (salt == NULL) || (verifier == NULL)) @@ -564,22 +564,23 @@ char *SRP_create_verifier(const char *user, const char *pass, char **salt, goto err; BN_bn2bin(v, tmp); - if (((vf = OPENSSL_malloc(BN_num_bytes(v) * 2)) == NULL)) + vfsize = BN_num_bytes(v) * 2; + if (((vf = OPENSSL_malloc(vfsize)) == NULL)) goto err; t_tob64(vf, tmp, BN_num_bytes(v)); - *verifier = vf; if (*salt == NULL) { char *tmp_salt; if ((tmp_salt = OPENSSL_malloc(SRP_RANDOM_SALT_LEN * 2)) == NULL) { - OPENSSL_free(vf); goto err; } t_tob64(tmp_salt, tmp2, SRP_RANDOM_SALT_LEN); *salt = tmp_salt; } + *verifier = vf; + vf = NULL; result = defgNid; err: @@ -587,11 +588,21 @@ char *SRP_create_verifier(const char *user, const char *pass, char **salt, BN_free(N_bn); BN_free(g_bn); } + OPENSSL_cleanse(vf, vfsize); + OPENSSL_free(vf); + BN_clear_free(s); + BN_clear_free(v); return result; } /* - * create a verifier (*salt,*verifier,g and N are BIGNUMs) + * create a verifier (*salt,*verifier,g and N are BIGNUMs). If *salt != NULL + * then the provided salt will be used. On successful exit *verifier will point + * to a newly allocated BIGNUM containing the verifier and (if a salt was not + * provided) *salt will be populated with a newly allocated BIGNUM containing a + * random salt. + * The caller is responsible for freeing the allocated *salt and *verifier + * BIGNUMS. */ int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, BIGNUM **verifier, BIGNUM *N, BIGNUM *g) @@ -600,6 +611,7 @@ int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, BIGNUM *x = NULL; BN_CTX *bn_ctx = BN_CTX_new(); unsigned char tmp2[MAX_LEN]; + BIGNUM *salttmp = NULL; if ((user == NULL) || (pass == NULL) || @@ -614,10 +626,12 @@ int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, if (RAND_pseudo_bytes(tmp2, SRP_RANDOM_SALT_LEN) < 0) goto err; - *salt = BN_bin2bn(tmp2, SRP_RANDOM_SALT_LEN, NULL); + salttmp = BN_bin2bn(tmp2, SRP_RANDOM_SALT_LEN, NULL); + } else { + salttmp = *salt; } - x = SRP_Calc_x(*salt, user, pass); + x = SRP_Calc_x(salttmp, user, pass); *verifier = BN_new(); if (*verifier == NULL) @@ -631,9 +645,11 @@ int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, srp_bn_print(*verifier); result = 1; + *salt = salttmp; err: - + if (*salt != salttmp) + BN_clear_free(salttmp); BN_clear_free(x); BN_CTX_free(bn_ctx); return result; diff --git a/libs/openssl/crypto/stack/safestack.h b/libs/openssl/crypto/stack/safestack.h index 519649b6..1d4f87ea 100644 --- a/libs/openssl/crypto/stack/safestack.h +++ b/libs/openssl/crypto/stack/safestack.h @@ -75,12 +75,12 @@ extern "C" { # define CHECKED_STACK_OF(type, p) \ ((_STACK*) (1 ? p : (STACK_OF(type)*)0)) +# define CHECKED_SK_COPY_FUNC(type, p) \ + ((void *(*)(void *)) ((1 ? p : (type *(*)(const type *))0))) + # define CHECKED_SK_FREE_FUNC(type, p) \ ((void (*)(void *)) ((1 ? p : (void (*)(type *))0))) -# define CHECKED_SK_FREE_FUNC2(type, p) \ - ((void (*)(void *)) ((1 ? p : (void (*)(type))0))) - # define CHECKED_SK_CMP_FUNC(type, p) \ ((int (*)(const void *, const void *)) \ ((1 ? p : (int (*)(const type * const *, const type * const *))0))) @@ -177,6 +177,8 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) (STACK_OF(type) *)sk_dup(CHECKED_STACK_OF(type, st)) # define SKM_sk_pop_free(type, st, free_func) \ sk_pop_free(CHECKED_STACK_OF(type, st), CHECKED_SK_FREE_FUNC(type, free_func)) +# define SKM_sk_deep_copy(type, st, copy_func, free_func) \ + (STACK_OF(type) *)sk_deep_copy(CHECKED_STACK_OF(type, st), CHECKED_SK_COPY_FUNC(type, copy_func), CHECKED_SK_FREE_FUNC(type, free_func)) # define SKM_sk_shift(type, st) \ (type *)sk_shift(CHECKED_STACK_OF(type, st)) # define SKM_sk_pop(type, st) \ @@ -226,6 +228,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_ACCESS_DESCRIPTION_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ACCESS_DESCRIPTION, (st), (cmp)) # define sk_ACCESS_DESCRIPTION_dup(st) SKM_sk_dup(ACCESS_DESCRIPTION, st) # define sk_ACCESS_DESCRIPTION_pop_free(st, free_func) SKM_sk_pop_free(ACCESS_DESCRIPTION, (st), (free_func)) +# define sk_ACCESS_DESCRIPTION_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ACCESS_DESCRIPTION, (st), (copy_func), (free_func)) # define sk_ACCESS_DESCRIPTION_shift(st) SKM_sk_shift(ACCESS_DESCRIPTION, (st)) # define sk_ACCESS_DESCRIPTION_pop(st) SKM_sk_pop(ACCESS_DESCRIPTION, (st)) # define sk_ACCESS_DESCRIPTION_sort(st) SKM_sk_sort(ACCESS_DESCRIPTION, (st)) @@ -247,6 +250,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_ASIdOrRange_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASIdOrRange, (st), (cmp)) # define sk_ASIdOrRange_dup(st) SKM_sk_dup(ASIdOrRange, st) # define sk_ASIdOrRange_pop_free(st, free_func) SKM_sk_pop_free(ASIdOrRange, (st), (free_func)) +# define sk_ASIdOrRange_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASIdOrRange, (st), (copy_func), (free_func)) # define sk_ASIdOrRange_shift(st) SKM_sk_shift(ASIdOrRange, (st)) # define sk_ASIdOrRange_pop(st) SKM_sk_pop(ASIdOrRange, (st)) # define sk_ASIdOrRange_sort(st) SKM_sk_sort(ASIdOrRange, (st)) @@ -268,6 +272,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_ASN1_GENERALSTRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_GENERALSTRING, (st), (cmp)) # define sk_ASN1_GENERALSTRING_dup(st) SKM_sk_dup(ASN1_GENERALSTRING, st) # define sk_ASN1_GENERALSTRING_pop_free(st, free_func) SKM_sk_pop_free(ASN1_GENERALSTRING, (st), (free_func)) +# define sk_ASN1_GENERALSTRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_GENERALSTRING, (st), (copy_func), (free_func)) # define sk_ASN1_GENERALSTRING_shift(st) SKM_sk_shift(ASN1_GENERALSTRING, (st)) # define sk_ASN1_GENERALSTRING_pop(st) SKM_sk_pop(ASN1_GENERALSTRING, (st)) # define sk_ASN1_GENERALSTRING_sort(st) SKM_sk_sort(ASN1_GENERALSTRING, (st)) @@ -289,6 +294,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_ASN1_INTEGER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_INTEGER, (st), (cmp)) # define sk_ASN1_INTEGER_dup(st) SKM_sk_dup(ASN1_INTEGER, st) # define sk_ASN1_INTEGER_pop_free(st, free_func) SKM_sk_pop_free(ASN1_INTEGER, (st), (free_func)) +# define sk_ASN1_INTEGER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_INTEGER, (st), (copy_func), (free_func)) # define sk_ASN1_INTEGER_shift(st) SKM_sk_shift(ASN1_INTEGER, (st)) # define sk_ASN1_INTEGER_pop(st) SKM_sk_pop(ASN1_INTEGER, (st)) # define sk_ASN1_INTEGER_sort(st) SKM_sk_sort(ASN1_INTEGER, (st)) @@ -310,6 +316,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_ASN1_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_OBJECT, (st), (cmp)) # define sk_ASN1_OBJECT_dup(st) SKM_sk_dup(ASN1_OBJECT, st) # define sk_ASN1_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(ASN1_OBJECT, (st), (free_func)) +# define sk_ASN1_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_OBJECT, (st), (copy_func), (free_func)) # define sk_ASN1_OBJECT_shift(st) SKM_sk_shift(ASN1_OBJECT, (st)) # define sk_ASN1_OBJECT_pop(st) SKM_sk_pop(ASN1_OBJECT, (st)) # define sk_ASN1_OBJECT_sort(st) SKM_sk_sort(ASN1_OBJECT, (st)) @@ -331,6 +338,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_ASN1_STRING_TABLE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_STRING_TABLE, (st), (cmp)) # define sk_ASN1_STRING_TABLE_dup(st) SKM_sk_dup(ASN1_STRING_TABLE, st) # define sk_ASN1_STRING_TABLE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_STRING_TABLE, (st), (free_func)) +# define sk_ASN1_STRING_TABLE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_STRING_TABLE, (st), (copy_func), (free_func)) # define sk_ASN1_STRING_TABLE_shift(st) SKM_sk_shift(ASN1_STRING_TABLE, (st)) # define sk_ASN1_STRING_TABLE_pop(st) SKM_sk_pop(ASN1_STRING_TABLE, (st)) # define sk_ASN1_STRING_TABLE_sort(st) SKM_sk_sort(ASN1_STRING_TABLE, (st)) @@ -352,6 +360,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_ASN1_TYPE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_TYPE, (st), (cmp)) # define sk_ASN1_TYPE_dup(st) SKM_sk_dup(ASN1_TYPE, st) # define sk_ASN1_TYPE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_TYPE, (st), (free_func)) +# define sk_ASN1_TYPE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_TYPE, (st), (copy_func), (free_func)) # define sk_ASN1_TYPE_shift(st) SKM_sk_shift(ASN1_TYPE, (st)) # define sk_ASN1_TYPE_pop(st) SKM_sk_pop(ASN1_TYPE, (st)) # define sk_ASN1_TYPE_sort(st) SKM_sk_sort(ASN1_TYPE, (st)) @@ -373,6 +382,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_ASN1_UTF8STRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_UTF8STRING, (st), (cmp)) # define sk_ASN1_UTF8STRING_dup(st) SKM_sk_dup(ASN1_UTF8STRING, st) # define sk_ASN1_UTF8STRING_pop_free(st, free_func) SKM_sk_pop_free(ASN1_UTF8STRING, (st), (free_func)) +# define sk_ASN1_UTF8STRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_UTF8STRING, (st), (copy_func), (free_func)) # define sk_ASN1_UTF8STRING_shift(st) SKM_sk_shift(ASN1_UTF8STRING, (st)) # define sk_ASN1_UTF8STRING_pop(st) SKM_sk_pop(ASN1_UTF8STRING, (st)) # define sk_ASN1_UTF8STRING_sort(st) SKM_sk_sort(ASN1_UTF8STRING, (st)) @@ -394,6 +404,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_ASN1_VALUE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_VALUE, (st), (cmp)) # define sk_ASN1_VALUE_dup(st) SKM_sk_dup(ASN1_VALUE, st) # define sk_ASN1_VALUE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_VALUE, (st), (free_func)) +# define sk_ASN1_VALUE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_VALUE, (st), (copy_func), (free_func)) # define sk_ASN1_VALUE_shift(st) SKM_sk_shift(ASN1_VALUE, (st)) # define sk_ASN1_VALUE_pop(st) SKM_sk_pop(ASN1_VALUE, (st)) # define sk_ASN1_VALUE_sort(st) SKM_sk_sort(ASN1_VALUE, (st)) @@ -415,6 +426,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_BIO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BIO, (st), (cmp)) # define sk_BIO_dup(st) SKM_sk_dup(BIO, st) # define sk_BIO_pop_free(st, free_func) SKM_sk_pop_free(BIO, (st), (free_func)) +# define sk_BIO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BIO, (st), (copy_func), (free_func)) # define sk_BIO_shift(st) SKM_sk_shift(BIO, (st)) # define sk_BIO_pop(st) SKM_sk_pop(BIO, (st)) # define sk_BIO_sort(st) SKM_sk_sort(BIO, (st)) @@ -436,6 +448,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_BY_DIR_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BY_DIR_ENTRY, (st), (cmp)) # define sk_BY_DIR_ENTRY_dup(st) SKM_sk_dup(BY_DIR_ENTRY, st) # define sk_BY_DIR_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(BY_DIR_ENTRY, (st), (free_func)) +# define sk_BY_DIR_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BY_DIR_ENTRY, (st), (copy_func), (free_func)) # define sk_BY_DIR_ENTRY_shift(st) SKM_sk_shift(BY_DIR_ENTRY, (st)) # define sk_BY_DIR_ENTRY_pop(st) SKM_sk_pop(BY_DIR_ENTRY, (st)) # define sk_BY_DIR_ENTRY_sort(st) SKM_sk_sort(BY_DIR_ENTRY, (st)) @@ -457,6 +470,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_BY_DIR_HASH_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BY_DIR_HASH, (st), (cmp)) # define sk_BY_DIR_HASH_dup(st) SKM_sk_dup(BY_DIR_HASH, st) # define sk_BY_DIR_HASH_pop_free(st, free_func) SKM_sk_pop_free(BY_DIR_HASH, (st), (free_func)) +# define sk_BY_DIR_HASH_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BY_DIR_HASH, (st), (copy_func), (free_func)) # define sk_BY_DIR_HASH_shift(st) SKM_sk_shift(BY_DIR_HASH, (st)) # define sk_BY_DIR_HASH_pop(st) SKM_sk_pop(BY_DIR_HASH, (st)) # define sk_BY_DIR_HASH_sort(st) SKM_sk_sort(BY_DIR_HASH, (st)) @@ -478,10 +492,33 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_CMS_CertificateChoices_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_CertificateChoices, (st), (cmp)) # define sk_CMS_CertificateChoices_dup(st) SKM_sk_dup(CMS_CertificateChoices, st) # define sk_CMS_CertificateChoices_pop_free(st, free_func) SKM_sk_pop_free(CMS_CertificateChoices, (st), (free_func)) +# define sk_CMS_CertificateChoices_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_CertificateChoices, (st), (copy_func), (free_func)) # define sk_CMS_CertificateChoices_shift(st) SKM_sk_shift(CMS_CertificateChoices, (st)) # define sk_CMS_CertificateChoices_pop(st) SKM_sk_pop(CMS_CertificateChoices, (st)) # define sk_CMS_CertificateChoices_sort(st) SKM_sk_sort(CMS_CertificateChoices, (st)) # define sk_CMS_CertificateChoices_is_sorted(st) SKM_sk_is_sorted(CMS_CertificateChoices, (st)) +# define sk_CMS_RecipientEncryptedKey_new(cmp) SKM_sk_new(CMS_RecipientEncryptedKey, (cmp)) +# define sk_CMS_RecipientEncryptedKey_new_null() SKM_sk_new_null(CMS_RecipientEncryptedKey) +# define sk_CMS_RecipientEncryptedKey_free(st) SKM_sk_free(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_num(st) SKM_sk_num(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_value(st, i) SKM_sk_value(CMS_RecipientEncryptedKey, (st), (i)) +# define sk_CMS_RecipientEncryptedKey_set(st, i, val) SKM_sk_set(CMS_RecipientEncryptedKey, (st), (i), (val)) +# define sk_CMS_RecipientEncryptedKey_zero(st) SKM_sk_zero(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_push(st, val) SKM_sk_push(CMS_RecipientEncryptedKey, (st), (val)) +# define sk_CMS_RecipientEncryptedKey_unshift(st, val) SKM_sk_unshift(CMS_RecipientEncryptedKey, (st), (val)) +# define sk_CMS_RecipientEncryptedKey_find(st, val) SKM_sk_find(CMS_RecipientEncryptedKey, (st), (val)) +# define sk_CMS_RecipientEncryptedKey_find_ex(st, val) SKM_sk_find_ex(CMS_RecipientEncryptedKey, (st), (val)) +# define sk_CMS_RecipientEncryptedKey_delete(st, i) SKM_sk_delete(CMS_RecipientEncryptedKey, (st), (i)) +# define sk_CMS_RecipientEncryptedKey_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_RecipientEncryptedKey, (st), (ptr)) +# define sk_CMS_RecipientEncryptedKey_insert(st, val, i) SKM_sk_insert(CMS_RecipientEncryptedKey, (st), (val), (i)) +# define sk_CMS_RecipientEncryptedKey_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RecipientEncryptedKey, (st), (cmp)) +# define sk_CMS_RecipientEncryptedKey_dup(st) SKM_sk_dup(CMS_RecipientEncryptedKey, st) +# define sk_CMS_RecipientEncryptedKey_pop_free(st, free_func) SKM_sk_pop_free(CMS_RecipientEncryptedKey, (st), (free_func)) +# define sk_CMS_RecipientEncryptedKey_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RecipientEncryptedKey, (st), (copy_func), (free_func)) +# define sk_CMS_RecipientEncryptedKey_shift(st) SKM_sk_shift(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_pop(st) SKM_sk_pop(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_sort(st) SKM_sk_sort(CMS_RecipientEncryptedKey, (st)) +# define sk_CMS_RecipientEncryptedKey_is_sorted(st) SKM_sk_is_sorted(CMS_RecipientEncryptedKey, (st)) # define sk_CMS_RecipientInfo_new(cmp) SKM_sk_new(CMS_RecipientInfo, (cmp)) # define sk_CMS_RecipientInfo_new_null() SKM_sk_new_null(CMS_RecipientInfo) # define sk_CMS_RecipientInfo_free(st) SKM_sk_free(CMS_RecipientInfo, (st)) @@ -499,6 +536,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_CMS_RecipientInfo_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RecipientInfo, (st), (cmp)) # define sk_CMS_RecipientInfo_dup(st) SKM_sk_dup(CMS_RecipientInfo, st) # define sk_CMS_RecipientInfo_pop_free(st, free_func) SKM_sk_pop_free(CMS_RecipientInfo, (st), (free_func)) +# define sk_CMS_RecipientInfo_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RecipientInfo, (st), (copy_func), (free_func)) # define sk_CMS_RecipientInfo_shift(st) SKM_sk_shift(CMS_RecipientInfo, (st)) # define sk_CMS_RecipientInfo_pop(st) SKM_sk_pop(CMS_RecipientInfo, (st)) # define sk_CMS_RecipientInfo_sort(st) SKM_sk_sort(CMS_RecipientInfo, (st)) @@ -520,6 +558,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_CMS_RevocationInfoChoice_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RevocationInfoChoice, (st), (cmp)) # define sk_CMS_RevocationInfoChoice_dup(st) SKM_sk_dup(CMS_RevocationInfoChoice, st) # define sk_CMS_RevocationInfoChoice_pop_free(st, free_func) SKM_sk_pop_free(CMS_RevocationInfoChoice, (st), (free_func)) +# define sk_CMS_RevocationInfoChoice_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RevocationInfoChoice, (st), (copy_func), (free_func)) # define sk_CMS_RevocationInfoChoice_shift(st) SKM_sk_shift(CMS_RevocationInfoChoice, (st)) # define sk_CMS_RevocationInfoChoice_pop(st) SKM_sk_pop(CMS_RevocationInfoChoice, (st)) # define sk_CMS_RevocationInfoChoice_sort(st) SKM_sk_sort(CMS_RevocationInfoChoice, (st)) @@ -541,6 +580,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_CMS_SignerInfo_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_SignerInfo, (st), (cmp)) # define sk_CMS_SignerInfo_dup(st) SKM_sk_dup(CMS_SignerInfo, st) # define sk_CMS_SignerInfo_pop_free(st, free_func) SKM_sk_pop_free(CMS_SignerInfo, (st), (free_func)) +# define sk_CMS_SignerInfo_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_SignerInfo, (st), (copy_func), (free_func)) # define sk_CMS_SignerInfo_shift(st) SKM_sk_shift(CMS_SignerInfo, (st)) # define sk_CMS_SignerInfo_pop(st) SKM_sk_pop(CMS_SignerInfo, (st)) # define sk_CMS_SignerInfo_sort(st) SKM_sk_sort(CMS_SignerInfo, (st)) @@ -562,6 +602,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_CONF_IMODULE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_IMODULE, (st), (cmp)) # define sk_CONF_IMODULE_dup(st) SKM_sk_dup(CONF_IMODULE, st) # define sk_CONF_IMODULE_pop_free(st, free_func) SKM_sk_pop_free(CONF_IMODULE, (st), (free_func)) +# define sk_CONF_IMODULE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_IMODULE, (st), (copy_func), (free_func)) # define sk_CONF_IMODULE_shift(st) SKM_sk_shift(CONF_IMODULE, (st)) # define sk_CONF_IMODULE_pop(st) SKM_sk_pop(CONF_IMODULE, (st)) # define sk_CONF_IMODULE_sort(st) SKM_sk_sort(CONF_IMODULE, (st)) @@ -583,6 +624,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_CONF_MODULE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_MODULE, (st), (cmp)) # define sk_CONF_MODULE_dup(st) SKM_sk_dup(CONF_MODULE, st) # define sk_CONF_MODULE_pop_free(st, free_func) SKM_sk_pop_free(CONF_MODULE, (st), (free_func)) +# define sk_CONF_MODULE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_MODULE, (st), (copy_func), (free_func)) # define sk_CONF_MODULE_shift(st) SKM_sk_shift(CONF_MODULE, (st)) # define sk_CONF_MODULE_pop(st) SKM_sk_pop(CONF_MODULE, (st)) # define sk_CONF_MODULE_sort(st) SKM_sk_sort(CONF_MODULE, (st)) @@ -604,6 +646,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_CONF_VALUE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_VALUE, (st), (cmp)) # define sk_CONF_VALUE_dup(st) SKM_sk_dup(CONF_VALUE, st) # define sk_CONF_VALUE_pop_free(st, free_func) SKM_sk_pop_free(CONF_VALUE, (st), (free_func)) +# define sk_CONF_VALUE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_VALUE, (st), (copy_func), (free_func)) # define sk_CONF_VALUE_shift(st) SKM_sk_shift(CONF_VALUE, (st)) # define sk_CONF_VALUE_pop(st) SKM_sk_pop(CONF_VALUE, (st)) # define sk_CONF_VALUE_sort(st) SKM_sk_sort(CONF_VALUE, (st)) @@ -625,6 +668,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_CRYPTO_EX_DATA_FUNCS_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CRYPTO_EX_DATA_FUNCS, (st), (cmp)) # define sk_CRYPTO_EX_DATA_FUNCS_dup(st) SKM_sk_dup(CRYPTO_EX_DATA_FUNCS, st) # define sk_CRYPTO_EX_DATA_FUNCS_pop_free(st, free_func) SKM_sk_pop_free(CRYPTO_EX_DATA_FUNCS, (st), (free_func)) +# define sk_CRYPTO_EX_DATA_FUNCS_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CRYPTO_EX_DATA_FUNCS, (st), (copy_func), (free_func)) # define sk_CRYPTO_EX_DATA_FUNCS_shift(st) SKM_sk_shift(CRYPTO_EX_DATA_FUNCS, (st)) # define sk_CRYPTO_EX_DATA_FUNCS_pop(st) SKM_sk_pop(CRYPTO_EX_DATA_FUNCS, (st)) # define sk_CRYPTO_EX_DATA_FUNCS_sort(st) SKM_sk_sort(CRYPTO_EX_DATA_FUNCS, (st)) @@ -646,6 +690,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_CRYPTO_dynlock_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CRYPTO_dynlock, (st), (cmp)) # define sk_CRYPTO_dynlock_dup(st) SKM_sk_dup(CRYPTO_dynlock, st) # define sk_CRYPTO_dynlock_pop_free(st, free_func) SKM_sk_pop_free(CRYPTO_dynlock, (st), (free_func)) +# define sk_CRYPTO_dynlock_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CRYPTO_dynlock, (st), (copy_func), (free_func)) # define sk_CRYPTO_dynlock_shift(st) SKM_sk_shift(CRYPTO_dynlock, (st)) # define sk_CRYPTO_dynlock_pop(st) SKM_sk_pop(CRYPTO_dynlock, (st)) # define sk_CRYPTO_dynlock_sort(st) SKM_sk_sort(CRYPTO_dynlock, (st)) @@ -667,6 +712,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_DIST_POINT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(DIST_POINT, (st), (cmp)) # define sk_DIST_POINT_dup(st) SKM_sk_dup(DIST_POINT, st) # define sk_DIST_POINT_pop_free(st, free_func) SKM_sk_pop_free(DIST_POINT, (st), (free_func)) +# define sk_DIST_POINT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(DIST_POINT, (st), (copy_func), (free_func)) # define sk_DIST_POINT_shift(st) SKM_sk_shift(DIST_POINT, (st)) # define sk_DIST_POINT_pop(st) SKM_sk_pop(DIST_POINT, (st)) # define sk_DIST_POINT_sort(st) SKM_sk_sort(DIST_POINT, (st)) @@ -688,6 +734,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_ENGINE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ENGINE, (st), (cmp)) # define sk_ENGINE_dup(st) SKM_sk_dup(ENGINE, st) # define sk_ENGINE_pop_free(st, free_func) SKM_sk_pop_free(ENGINE, (st), (free_func)) +# define sk_ENGINE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ENGINE, (st), (copy_func), (free_func)) # define sk_ENGINE_shift(st) SKM_sk_shift(ENGINE, (st)) # define sk_ENGINE_pop(st) SKM_sk_pop(ENGINE, (st)) # define sk_ENGINE_sort(st) SKM_sk_sort(ENGINE, (st)) @@ -709,6 +756,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_ENGINE_CLEANUP_ITEM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ENGINE_CLEANUP_ITEM, (st), (cmp)) # define sk_ENGINE_CLEANUP_ITEM_dup(st) SKM_sk_dup(ENGINE_CLEANUP_ITEM, st) # define sk_ENGINE_CLEANUP_ITEM_pop_free(st, free_func) SKM_sk_pop_free(ENGINE_CLEANUP_ITEM, (st), (free_func)) +# define sk_ENGINE_CLEANUP_ITEM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ENGINE_CLEANUP_ITEM, (st), (copy_func), (free_func)) # define sk_ENGINE_CLEANUP_ITEM_shift(st) SKM_sk_shift(ENGINE_CLEANUP_ITEM, (st)) # define sk_ENGINE_CLEANUP_ITEM_pop(st) SKM_sk_pop(ENGINE_CLEANUP_ITEM, (st)) # define sk_ENGINE_CLEANUP_ITEM_sort(st) SKM_sk_sort(ENGINE_CLEANUP_ITEM, (st)) @@ -730,6 +778,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_ESS_CERT_ID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ESS_CERT_ID, (st), (cmp)) # define sk_ESS_CERT_ID_dup(st) SKM_sk_dup(ESS_CERT_ID, st) # define sk_ESS_CERT_ID_pop_free(st, free_func) SKM_sk_pop_free(ESS_CERT_ID, (st), (free_func)) +# define sk_ESS_CERT_ID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ESS_CERT_ID, (st), (copy_func), (free_func)) # define sk_ESS_CERT_ID_shift(st) SKM_sk_shift(ESS_CERT_ID, (st)) # define sk_ESS_CERT_ID_pop(st) SKM_sk_pop(ESS_CERT_ID, (st)) # define sk_ESS_CERT_ID_sort(st) SKM_sk_sort(ESS_CERT_ID, (st)) @@ -751,6 +800,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_EVP_MD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_MD, (st), (cmp)) # define sk_EVP_MD_dup(st) SKM_sk_dup(EVP_MD, st) # define sk_EVP_MD_pop_free(st, free_func) SKM_sk_pop_free(EVP_MD, (st), (free_func)) +# define sk_EVP_MD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_MD, (st), (copy_func), (free_func)) # define sk_EVP_MD_shift(st) SKM_sk_shift(EVP_MD, (st)) # define sk_EVP_MD_pop(st) SKM_sk_pop(EVP_MD, (st)) # define sk_EVP_MD_sort(st) SKM_sk_sort(EVP_MD, (st)) @@ -772,6 +822,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_EVP_PBE_CTL_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PBE_CTL, (st), (cmp)) # define sk_EVP_PBE_CTL_dup(st) SKM_sk_dup(EVP_PBE_CTL, st) # define sk_EVP_PBE_CTL_pop_free(st, free_func) SKM_sk_pop_free(EVP_PBE_CTL, (st), (free_func)) +# define sk_EVP_PBE_CTL_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PBE_CTL, (st), (copy_func), (free_func)) # define sk_EVP_PBE_CTL_shift(st) SKM_sk_shift(EVP_PBE_CTL, (st)) # define sk_EVP_PBE_CTL_pop(st) SKM_sk_pop(EVP_PBE_CTL, (st)) # define sk_EVP_PBE_CTL_sort(st) SKM_sk_sort(EVP_PBE_CTL, (st)) @@ -793,6 +844,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_EVP_PKEY_ASN1_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PKEY_ASN1_METHOD, (st), (cmp)) # define sk_EVP_PKEY_ASN1_METHOD_dup(st) SKM_sk_dup(EVP_PKEY_ASN1_METHOD, st) # define sk_EVP_PKEY_ASN1_METHOD_pop_free(st, free_func) SKM_sk_pop_free(EVP_PKEY_ASN1_METHOD, (st), (free_func)) +# define sk_EVP_PKEY_ASN1_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PKEY_ASN1_METHOD, (st), (copy_func), (free_func)) # define sk_EVP_PKEY_ASN1_METHOD_shift(st) SKM_sk_shift(EVP_PKEY_ASN1_METHOD, (st)) # define sk_EVP_PKEY_ASN1_METHOD_pop(st) SKM_sk_pop(EVP_PKEY_ASN1_METHOD, (st)) # define sk_EVP_PKEY_ASN1_METHOD_sort(st) SKM_sk_sort(EVP_PKEY_ASN1_METHOD, (st)) @@ -814,6 +866,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_EVP_PKEY_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PKEY_METHOD, (st), (cmp)) # define sk_EVP_PKEY_METHOD_dup(st) SKM_sk_dup(EVP_PKEY_METHOD, st) # define sk_EVP_PKEY_METHOD_pop_free(st, free_func) SKM_sk_pop_free(EVP_PKEY_METHOD, (st), (free_func)) +# define sk_EVP_PKEY_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PKEY_METHOD, (st), (copy_func), (free_func)) # define sk_EVP_PKEY_METHOD_shift(st) SKM_sk_shift(EVP_PKEY_METHOD, (st)) # define sk_EVP_PKEY_METHOD_pop(st) SKM_sk_pop(EVP_PKEY_METHOD, (st)) # define sk_EVP_PKEY_METHOD_sort(st) SKM_sk_sort(EVP_PKEY_METHOD, (st)) @@ -835,6 +888,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_GENERAL_NAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_NAME, (st), (cmp)) # define sk_GENERAL_NAME_dup(st) SKM_sk_dup(GENERAL_NAME, st) # define sk_GENERAL_NAME_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_NAME, (st), (free_func)) +# define sk_GENERAL_NAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_NAME, (st), (copy_func), (free_func)) # define sk_GENERAL_NAME_shift(st) SKM_sk_shift(GENERAL_NAME, (st)) # define sk_GENERAL_NAME_pop(st) SKM_sk_pop(GENERAL_NAME, (st)) # define sk_GENERAL_NAME_sort(st) SKM_sk_sort(GENERAL_NAME, (st)) @@ -856,6 +910,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_GENERAL_NAMES_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_NAMES, (st), (cmp)) # define sk_GENERAL_NAMES_dup(st) SKM_sk_dup(GENERAL_NAMES, st) # define sk_GENERAL_NAMES_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_NAMES, (st), (free_func)) +# define sk_GENERAL_NAMES_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_NAMES, (st), (copy_func), (free_func)) # define sk_GENERAL_NAMES_shift(st) SKM_sk_shift(GENERAL_NAMES, (st)) # define sk_GENERAL_NAMES_pop(st) SKM_sk_pop(GENERAL_NAMES, (st)) # define sk_GENERAL_NAMES_sort(st) SKM_sk_sort(GENERAL_NAMES, (st)) @@ -877,6 +932,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_GENERAL_SUBTREE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_SUBTREE, (st), (cmp)) # define sk_GENERAL_SUBTREE_dup(st) SKM_sk_dup(GENERAL_SUBTREE, st) # define sk_GENERAL_SUBTREE_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_SUBTREE, (st), (free_func)) +# define sk_GENERAL_SUBTREE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_SUBTREE, (st), (copy_func), (free_func)) # define sk_GENERAL_SUBTREE_shift(st) SKM_sk_shift(GENERAL_SUBTREE, (st)) # define sk_GENERAL_SUBTREE_pop(st) SKM_sk_pop(GENERAL_SUBTREE, (st)) # define sk_GENERAL_SUBTREE_sort(st) SKM_sk_sort(GENERAL_SUBTREE, (st)) @@ -898,6 +954,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_IPAddressFamily_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(IPAddressFamily, (st), (cmp)) # define sk_IPAddressFamily_dup(st) SKM_sk_dup(IPAddressFamily, st) # define sk_IPAddressFamily_pop_free(st, free_func) SKM_sk_pop_free(IPAddressFamily, (st), (free_func)) +# define sk_IPAddressFamily_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(IPAddressFamily, (st), (copy_func), (free_func)) # define sk_IPAddressFamily_shift(st) SKM_sk_shift(IPAddressFamily, (st)) # define sk_IPAddressFamily_pop(st) SKM_sk_pop(IPAddressFamily, (st)) # define sk_IPAddressFamily_sort(st) SKM_sk_sort(IPAddressFamily, (st)) @@ -919,6 +976,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_IPAddressOrRange_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(IPAddressOrRange, (st), (cmp)) # define sk_IPAddressOrRange_dup(st) SKM_sk_dup(IPAddressOrRange, st) # define sk_IPAddressOrRange_pop_free(st, free_func) SKM_sk_pop_free(IPAddressOrRange, (st), (free_func)) +# define sk_IPAddressOrRange_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(IPAddressOrRange, (st), (copy_func), (free_func)) # define sk_IPAddressOrRange_shift(st) SKM_sk_shift(IPAddressOrRange, (st)) # define sk_IPAddressOrRange_pop(st) SKM_sk_pop(IPAddressOrRange, (st)) # define sk_IPAddressOrRange_sort(st) SKM_sk_sort(IPAddressOrRange, (st)) @@ -940,6 +998,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_KRB5_APREQBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_APREQBODY, (st), (cmp)) # define sk_KRB5_APREQBODY_dup(st) SKM_sk_dup(KRB5_APREQBODY, st) # define sk_KRB5_APREQBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_APREQBODY, (st), (free_func)) +# define sk_KRB5_APREQBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_APREQBODY, (st), (copy_func), (free_func)) # define sk_KRB5_APREQBODY_shift(st) SKM_sk_shift(KRB5_APREQBODY, (st)) # define sk_KRB5_APREQBODY_pop(st) SKM_sk_pop(KRB5_APREQBODY, (st)) # define sk_KRB5_APREQBODY_sort(st) SKM_sk_sort(KRB5_APREQBODY, (st)) @@ -961,6 +1020,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_KRB5_AUTHDATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_AUTHDATA, (st), (cmp)) # define sk_KRB5_AUTHDATA_dup(st) SKM_sk_dup(KRB5_AUTHDATA, st) # define sk_KRB5_AUTHDATA_pop_free(st, free_func) SKM_sk_pop_free(KRB5_AUTHDATA, (st), (free_func)) +# define sk_KRB5_AUTHDATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_AUTHDATA, (st), (copy_func), (free_func)) # define sk_KRB5_AUTHDATA_shift(st) SKM_sk_shift(KRB5_AUTHDATA, (st)) # define sk_KRB5_AUTHDATA_pop(st) SKM_sk_pop(KRB5_AUTHDATA, (st)) # define sk_KRB5_AUTHDATA_sort(st) SKM_sk_sort(KRB5_AUTHDATA, (st)) @@ -982,6 +1042,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_KRB5_AUTHENTBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_AUTHENTBODY, (st), (cmp)) # define sk_KRB5_AUTHENTBODY_dup(st) SKM_sk_dup(KRB5_AUTHENTBODY, st) # define sk_KRB5_AUTHENTBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_AUTHENTBODY, (st), (free_func)) +# define sk_KRB5_AUTHENTBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_AUTHENTBODY, (st), (copy_func), (free_func)) # define sk_KRB5_AUTHENTBODY_shift(st) SKM_sk_shift(KRB5_AUTHENTBODY, (st)) # define sk_KRB5_AUTHENTBODY_pop(st) SKM_sk_pop(KRB5_AUTHENTBODY, (st)) # define sk_KRB5_AUTHENTBODY_sort(st) SKM_sk_sort(KRB5_AUTHENTBODY, (st)) @@ -1003,6 +1064,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_KRB5_CHECKSUM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_CHECKSUM, (st), (cmp)) # define sk_KRB5_CHECKSUM_dup(st) SKM_sk_dup(KRB5_CHECKSUM, st) # define sk_KRB5_CHECKSUM_pop_free(st, free_func) SKM_sk_pop_free(KRB5_CHECKSUM, (st), (free_func)) +# define sk_KRB5_CHECKSUM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_CHECKSUM, (st), (copy_func), (free_func)) # define sk_KRB5_CHECKSUM_shift(st) SKM_sk_shift(KRB5_CHECKSUM, (st)) # define sk_KRB5_CHECKSUM_pop(st) SKM_sk_pop(KRB5_CHECKSUM, (st)) # define sk_KRB5_CHECKSUM_sort(st) SKM_sk_sort(KRB5_CHECKSUM, (st)) @@ -1024,6 +1086,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_KRB5_ENCDATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_ENCDATA, (st), (cmp)) # define sk_KRB5_ENCDATA_dup(st) SKM_sk_dup(KRB5_ENCDATA, st) # define sk_KRB5_ENCDATA_pop_free(st, free_func) SKM_sk_pop_free(KRB5_ENCDATA, (st), (free_func)) +# define sk_KRB5_ENCDATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_ENCDATA, (st), (copy_func), (free_func)) # define sk_KRB5_ENCDATA_shift(st) SKM_sk_shift(KRB5_ENCDATA, (st)) # define sk_KRB5_ENCDATA_pop(st) SKM_sk_pop(KRB5_ENCDATA, (st)) # define sk_KRB5_ENCDATA_sort(st) SKM_sk_sort(KRB5_ENCDATA, (st)) @@ -1045,6 +1108,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_KRB5_ENCKEY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_ENCKEY, (st), (cmp)) # define sk_KRB5_ENCKEY_dup(st) SKM_sk_dup(KRB5_ENCKEY, st) # define sk_KRB5_ENCKEY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_ENCKEY, (st), (free_func)) +# define sk_KRB5_ENCKEY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_ENCKEY, (st), (copy_func), (free_func)) # define sk_KRB5_ENCKEY_shift(st) SKM_sk_shift(KRB5_ENCKEY, (st)) # define sk_KRB5_ENCKEY_pop(st) SKM_sk_pop(KRB5_ENCKEY, (st)) # define sk_KRB5_ENCKEY_sort(st) SKM_sk_sort(KRB5_ENCKEY, (st)) @@ -1066,6 +1130,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_KRB5_PRINCNAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_PRINCNAME, (st), (cmp)) # define sk_KRB5_PRINCNAME_dup(st) SKM_sk_dup(KRB5_PRINCNAME, st) # define sk_KRB5_PRINCNAME_pop_free(st, free_func) SKM_sk_pop_free(KRB5_PRINCNAME, (st), (free_func)) +# define sk_KRB5_PRINCNAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_PRINCNAME, (st), (copy_func), (free_func)) # define sk_KRB5_PRINCNAME_shift(st) SKM_sk_shift(KRB5_PRINCNAME, (st)) # define sk_KRB5_PRINCNAME_pop(st) SKM_sk_pop(KRB5_PRINCNAME, (st)) # define sk_KRB5_PRINCNAME_sort(st) SKM_sk_sort(KRB5_PRINCNAME, (st)) @@ -1087,6 +1152,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_KRB5_TKTBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_TKTBODY, (st), (cmp)) # define sk_KRB5_TKTBODY_dup(st) SKM_sk_dup(KRB5_TKTBODY, st) # define sk_KRB5_TKTBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_TKTBODY, (st), (free_func)) +# define sk_KRB5_TKTBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_TKTBODY, (st), (copy_func), (free_func)) # define sk_KRB5_TKTBODY_shift(st) SKM_sk_shift(KRB5_TKTBODY, (st)) # define sk_KRB5_TKTBODY_pop(st) SKM_sk_pop(KRB5_TKTBODY, (st)) # define sk_KRB5_TKTBODY_sort(st) SKM_sk_sort(KRB5_TKTBODY, (st)) @@ -1108,6 +1174,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_MEM_OBJECT_DATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MEM_OBJECT_DATA, (st), (cmp)) # define sk_MEM_OBJECT_DATA_dup(st) SKM_sk_dup(MEM_OBJECT_DATA, st) # define sk_MEM_OBJECT_DATA_pop_free(st, free_func) SKM_sk_pop_free(MEM_OBJECT_DATA, (st), (free_func)) +# define sk_MEM_OBJECT_DATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MEM_OBJECT_DATA, (st), (copy_func), (free_func)) # define sk_MEM_OBJECT_DATA_shift(st) SKM_sk_shift(MEM_OBJECT_DATA, (st)) # define sk_MEM_OBJECT_DATA_pop(st) SKM_sk_pop(MEM_OBJECT_DATA, (st)) # define sk_MEM_OBJECT_DATA_sort(st) SKM_sk_sort(MEM_OBJECT_DATA, (st)) @@ -1129,6 +1196,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_MIME_HEADER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MIME_HEADER, (st), (cmp)) # define sk_MIME_HEADER_dup(st) SKM_sk_dup(MIME_HEADER, st) # define sk_MIME_HEADER_pop_free(st, free_func) SKM_sk_pop_free(MIME_HEADER, (st), (free_func)) +# define sk_MIME_HEADER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MIME_HEADER, (st), (copy_func), (free_func)) # define sk_MIME_HEADER_shift(st) SKM_sk_shift(MIME_HEADER, (st)) # define sk_MIME_HEADER_pop(st) SKM_sk_pop(MIME_HEADER, (st)) # define sk_MIME_HEADER_sort(st) SKM_sk_sort(MIME_HEADER, (st)) @@ -1150,6 +1218,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_MIME_PARAM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MIME_PARAM, (st), (cmp)) # define sk_MIME_PARAM_dup(st) SKM_sk_dup(MIME_PARAM, st) # define sk_MIME_PARAM_pop_free(st, free_func) SKM_sk_pop_free(MIME_PARAM, (st), (free_func)) +# define sk_MIME_PARAM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MIME_PARAM, (st), (copy_func), (free_func)) # define sk_MIME_PARAM_shift(st) SKM_sk_shift(MIME_PARAM, (st)) # define sk_MIME_PARAM_pop(st) SKM_sk_pop(MIME_PARAM, (st)) # define sk_MIME_PARAM_sort(st) SKM_sk_sort(MIME_PARAM, (st)) @@ -1171,6 +1240,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_NAME_FUNCS_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(NAME_FUNCS, (st), (cmp)) # define sk_NAME_FUNCS_dup(st) SKM_sk_dup(NAME_FUNCS, st) # define sk_NAME_FUNCS_pop_free(st, free_func) SKM_sk_pop_free(NAME_FUNCS, (st), (free_func)) +# define sk_NAME_FUNCS_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(NAME_FUNCS, (st), (copy_func), (free_func)) # define sk_NAME_FUNCS_shift(st) SKM_sk_shift(NAME_FUNCS, (st)) # define sk_NAME_FUNCS_pop(st) SKM_sk_pop(NAME_FUNCS, (st)) # define sk_NAME_FUNCS_sort(st) SKM_sk_sort(NAME_FUNCS, (st)) @@ -1192,6 +1262,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_OCSP_CERTID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_CERTID, (st), (cmp)) # define sk_OCSP_CERTID_dup(st) SKM_sk_dup(OCSP_CERTID, st) # define sk_OCSP_CERTID_pop_free(st, free_func) SKM_sk_pop_free(OCSP_CERTID, (st), (free_func)) +# define sk_OCSP_CERTID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_CERTID, (st), (copy_func), (free_func)) # define sk_OCSP_CERTID_shift(st) SKM_sk_shift(OCSP_CERTID, (st)) # define sk_OCSP_CERTID_pop(st) SKM_sk_pop(OCSP_CERTID, (st)) # define sk_OCSP_CERTID_sort(st) SKM_sk_sort(OCSP_CERTID, (st)) @@ -1213,6 +1284,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_OCSP_ONEREQ_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_ONEREQ, (st), (cmp)) # define sk_OCSP_ONEREQ_dup(st) SKM_sk_dup(OCSP_ONEREQ, st) # define sk_OCSP_ONEREQ_pop_free(st, free_func) SKM_sk_pop_free(OCSP_ONEREQ, (st), (free_func)) +# define sk_OCSP_ONEREQ_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_ONEREQ, (st), (copy_func), (free_func)) # define sk_OCSP_ONEREQ_shift(st) SKM_sk_shift(OCSP_ONEREQ, (st)) # define sk_OCSP_ONEREQ_pop(st) SKM_sk_pop(OCSP_ONEREQ, (st)) # define sk_OCSP_ONEREQ_sort(st) SKM_sk_sort(OCSP_ONEREQ, (st)) @@ -1234,6 +1306,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_OCSP_RESPID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_RESPID, (st), (cmp)) # define sk_OCSP_RESPID_dup(st) SKM_sk_dup(OCSP_RESPID, st) # define sk_OCSP_RESPID_pop_free(st, free_func) SKM_sk_pop_free(OCSP_RESPID, (st), (free_func)) +# define sk_OCSP_RESPID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_RESPID, (st), (copy_func), (free_func)) # define sk_OCSP_RESPID_shift(st) SKM_sk_shift(OCSP_RESPID, (st)) # define sk_OCSP_RESPID_pop(st) SKM_sk_pop(OCSP_RESPID, (st)) # define sk_OCSP_RESPID_sort(st) SKM_sk_sort(OCSP_RESPID, (st)) @@ -1255,6 +1328,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_OCSP_SINGLERESP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_SINGLERESP, (st), (cmp)) # define sk_OCSP_SINGLERESP_dup(st) SKM_sk_dup(OCSP_SINGLERESP, st) # define sk_OCSP_SINGLERESP_pop_free(st, free_func) SKM_sk_pop_free(OCSP_SINGLERESP, (st), (free_func)) +# define sk_OCSP_SINGLERESP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_SINGLERESP, (st), (copy_func), (free_func)) # define sk_OCSP_SINGLERESP_shift(st) SKM_sk_shift(OCSP_SINGLERESP, (st)) # define sk_OCSP_SINGLERESP_pop(st) SKM_sk_pop(OCSP_SINGLERESP, (st)) # define sk_OCSP_SINGLERESP_sort(st) SKM_sk_sort(OCSP_SINGLERESP, (st)) @@ -1276,6 +1350,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_PKCS12_SAFEBAG_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS12_SAFEBAG, (st), (cmp)) # define sk_PKCS12_SAFEBAG_dup(st) SKM_sk_dup(PKCS12_SAFEBAG, st) # define sk_PKCS12_SAFEBAG_pop_free(st, free_func) SKM_sk_pop_free(PKCS12_SAFEBAG, (st), (free_func)) +# define sk_PKCS12_SAFEBAG_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS12_SAFEBAG, (st), (copy_func), (free_func)) # define sk_PKCS12_SAFEBAG_shift(st) SKM_sk_shift(PKCS12_SAFEBAG, (st)) # define sk_PKCS12_SAFEBAG_pop(st) SKM_sk_pop(PKCS12_SAFEBAG, (st)) # define sk_PKCS12_SAFEBAG_sort(st) SKM_sk_sort(PKCS12_SAFEBAG, (st)) @@ -1297,6 +1372,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_PKCS7_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7, (st), (cmp)) # define sk_PKCS7_dup(st) SKM_sk_dup(PKCS7, st) # define sk_PKCS7_pop_free(st, free_func) SKM_sk_pop_free(PKCS7, (st), (free_func)) +# define sk_PKCS7_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7, (st), (copy_func), (free_func)) # define sk_PKCS7_shift(st) SKM_sk_shift(PKCS7, (st)) # define sk_PKCS7_pop(st) SKM_sk_pop(PKCS7, (st)) # define sk_PKCS7_sort(st) SKM_sk_sort(PKCS7, (st)) @@ -1318,6 +1394,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_PKCS7_RECIP_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7_RECIP_INFO, (st), (cmp)) # define sk_PKCS7_RECIP_INFO_dup(st) SKM_sk_dup(PKCS7_RECIP_INFO, st) # define sk_PKCS7_RECIP_INFO_pop_free(st, free_func) SKM_sk_pop_free(PKCS7_RECIP_INFO, (st), (free_func)) +# define sk_PKCS7_RECIP_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7_RECIP_INFO, (st), (copy_func), (free_func)) # define sk_PKCS7_RECIP_INFO_shift(st) SKM_sk_shift(PKCS7_RECIP_INFO, (st)) # define sk_PKCS7_RECIP_INFO_pop(st) SKM_sk_pop(PKCS7_RECIP_INFO, (st)) # define sk_PKCS7_RECIP_INFO_sort(st) SKM_sk_sort(PKCS7_RECIP_INFO, (st)) @@ -1339,6 +1416,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_PKCS7_SIGNER_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7_SIGNER_INFO, (st), (cmp)) # define sk_PKCS7_SIGNER_INFO_dup(st) SKM_sk_dup(PKCS7_SIGNER_INFO, st) # define sk_PKCS7_SIGNER_INFO_pop_free(st, free_func) SKM_sk_pop_free(PKCS7_SIGNER_INFO, (st), (free_func)) +# define sk_PKCS7_SIGNER_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7_SIGNER_INFO, (st), (copy_func), (free_func)) # define sk_PKCS7_SIGNER_INFO_shift(st) SKM_sk_shift(PKCS7_SIGNER_INFO, (st)) # define sk_PKCS7_SIGNER_INFO_pop(st) SKM_sk_pop(PKCS7_SIGNER_INFO, (st)) # define sk_PKCS7_SIGNER_INFO_sort(st) SKM_sk_sort(PKCS7_SIGNER_INFO, (st)) @@ -1360,6 +1438,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_POLICYINFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICYINFO, (st), (cmp)) # define sk_POLICYINFO_dup(st) SKM_sk_dup(POLICYINFO, st) # define sk_POLICYINFO_pop_free(st, free_func) SKM_sk_pop_free(POLICYINFO, (st), (free_func)) +# define sk_POLICYINFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICYINFO, (st), (copy_func), (free_func)) # define sk_POLICYINFO_shift(st) SKM_sk_shift(POLICYINFO, (st)) # define sk_POLICYINFO_pop(st) SKM_sk_pop(POLICYINFO, (st)) # define sk_POLICYINFO_sort(st) SKM_sk_sort(POLICYINFO, (st)) @@ -1381,6 +1460,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_POLICYQUALINFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICYQUALINFO, (st), (cmp)) # define sk_POLICYQUALINFO_dup(st) SKM_sk_dup(POLICYQUALINFO, st) # define sk_POLICYQUALINFO_pop_free(st, free_func) SKM_sk_pop_free(POLICYQUALINFO, (st), (free_func)) +# define sk_POLICYQUALINFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICYQUALINFO, (st), (copy_func), (free_func)) # define sk_POLICYQUALINFO_shift(st) SKM_sk_shift(POLICYQUALINFO, (st)) # define sk_POLICYQUALINFO_pop(st) SKM_sk_pop(POLICYQUALINFO, (st)) # define sk_POLICYQUALINFO_sort(st) SKM_sk_sort(POLICYQUALINFO, (st)) @@ -1402,10 +1482,33 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_POLICY_MAPPING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICY_MAPPING, (st), (cmp)) # define sk_POLICY_MAPPING_dup(st) SKM_sk_dup(POLICY_MAPPING, st) # define sk_POLICY_MAPPING_pop_free(st, free_func) SKM_sk_pop_free(POLICY_MAPPING, (st), (free_func)) +# define sk_POLICY_MAPPING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICY_MAPPING, (st), (copy_func), (free_func)) # define sk_POLICY_MAPPING_shift(st) SKM_sk_shift(POLICY_MAPPING, (st)) # define sk_POLICY_MAPPING_pop(st) SKM_sk_pop(POLICY_MAPPING, (st)) # define sk_POLICY_MAPPING_sort(st) SKM_sk_sort(POLICY_MAPPING, (st)) # define sk_POLICY_MAPPING_is_sorted(st) SKM_sk_is_sorted(POLICY_MAPPING, (st)) +# define sk_SCT_new(cmp) SKM_sk_new(SCT, (cmp)) +# define sk_SCT_new_null() SKM_sk_new_null(SCT) +# define sk_SCT_free(st) SKM_sk_free(SCT, (st)) +# define sk_SCT_num(st) SKM_sk_num(SCT, (st)) +# define sk_SCT_value(st, i) SKM_sk_value(SCT, (st), (i)) +# define sk_SCT_set(st, i, val) SKM_sk_set(SCT, (st), (i), (val)) +# define sk_SCT_zero(st) SKM_sk_zero(SCT, (st)) +# define sk_SCT_push(st, val) SKM_sk_push(SCT, (st), (val)) +# define sk_SCT_unshift(st, val) SKM_sk_unshift(SCT, (st), (val)) +# define sk_SCT_find(st, val) SKM_sk_find(SCT, (st), (val)) +# define sk_SCT_find_ex(st, val) SKM_sk_find_ex(SCT, (st), (val)) +# define sk_SCT_delete(st, i) SKM_sk_delete(SCT, (st), (i)) +# define sk_SCT_delete_ptr(st, ptr) SKM_sk_delete_ptr(SCT, (st), (ptr)) +# define sk_SCT_insert(st, val, i) SKM_sk_insert(SCT, (st), (val), (i)) +# define sk_SCT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SCT, (st), (cmp)) +# define sk_SCT_dup(st) SKM_sk_dup(SCT, st) +# define sk_SCT_pop_free(st, free_func) SKM_sk_pop_free(SCT, (st), (free_func)) +# define sk_SCT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SCT, (st), (copy_func), (free_func)) +# define sk_SCT_shift(st) SKM_sk_shift(SCT, (st)) +# define sk_SCT_pop(st) SKM_sk_pop(SCT, (st)) +# define sk_SCT_sort(st) SKM_sk_sort(SCT, (st)) +# define sk_SCT_is_sorted(st) SKM_sk_is_sorted(SCT, (st)) # define sk_SRP_gN_new(cmp) SKM_sk_new(SRP_gN, (cmp)) # define sk_SRP_gN_new_null() SKM_sk_new_null(SRP_gN) # define sk_SRP_gN_free(st) SKM_sk_free(SRP_gN, (st)) @@ -1423,6 +1526,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_SRP_gN_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_gN, (st), (cmp)) # define sk_SRP_gN_dup(st) SKM_sk_dup(SRP_gN, st) # define sk_SRP_gN_pop_free(st, free_func) SKM_sk_pop_free(SRP_gN, (st), (free_func)) +# define sk_SRP_gN_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_gN, (st), (copy_func), (free_func)) # define sk_SRP_gN_shift(st) SKM_sk_shift(SRP_gN, (st)) # define sk_SRP_gN_pop(st) SKM_sk_pop(SRP_gN, (st)) # define sk_SRP_gN_sort(st) SKM_sk_sort(SRP_gN, (st)) @@ -1444,6 +1548,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_SRP_gN_cache_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_gN_cache, (st), (cmp)) # define sk_SRP_gN_cache_dup(st) SKM_sk_dup(SRP_gN_cache, st) # define sk_SRP_gN_cache_pop_free(st, free_func) SKM_sk_pop_free(SRP_gN_cache, (st), (free_func)) +# define sk_SRP_gN_cache_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_gN_cache, (st), (copy_func), (free_func)) # define sk_SRP_gN_cache_shift(st) SKM_sk_shift(SRP_gN_cache, (st)) # define sk_SRP_gN_cache_pop(st) SKM_sk_pop(SRP_gN_cache, (st)) # define sk_SRP_gN_cache_sort(st) SKM_sk_sort(SRP_gN_cache, (st)) @@ -1465,6 +1570,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_SRP_user_pwd_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_user_pwd, (st), (cmp)) # define sk_SRP_user_pwd_dup(st) SKM_sk_dup(SRP_user_pwd, st) # define sk_SRP_user_pwd_pop_free(st, free_func) SKM_sk_pop_free(SRP_user_pwd, (st), (free_func)) +# define sk_SRP_user_pwd_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_user_pwd, (st), (copy_func), (free_func)) # define sk_SRP_user_pwd_shift(st) SKM_sk_shift(SRP_user_pwd, (st)) # define sk_SRP_user_pwd_pop(st) SKM_sk_pop(SRP_user_pwd, (st)) # define sk_SRP_user_pwd_sort(st) SKM_sk_sort(SRP_user_pwd, (st)) @@ -1486,6 +1592,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRTP_PROTECTION_PROFILE, (st), (cmp)) # define sk_SRTP_PROTECTION_PROFILE_dup(st) SKM_sk_dup(SRTP_PROTECTION_PROFILE, st) # define sk_SRTP_PROTECTION_PROFILE_pop_free(st, free_func) SKM_sk_pop_free(SRTP_PROTECTION_PROFILE, (st), (free_func)) +# define sk_SRTP_PROTECTION_PROFILE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRTP_PROTECTION_PROFILE, (st), (copy_func), (free_func)) # define sk_SRTP_PROTECTION_PROFILE_shift(st) SKM_sk_shift(SRTP_PROTECTION_PROFILE, (st)) # define sk_SRTP_PROTECTION_PROFILE_pop(st) SKM_sk_pop(SRTP_PROTECTION_PROFILE, (st)) # define sk_SRTP_PROTECTION_PROFILE_sort(st) SKM_sk_sort(SRTP_PROTECTION_PROFILE, (st)) @@ -1507,6 +1614,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_SSL_CIPHER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SSL_CIPHER, (st), (cmp)) # define sk_SSL_CIPHER_dup(st) SKM_sk_dup(SSL_CIPHER, st) # define sk_SSL_CIPHER_pop_free(st, free_func) SKM_sk_pop_free(SSL_CIPHER, (st), (free_func)) +# define sk_SSL_CIPHER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SSL_CIPHER, (st), (copy_func), (free_func)) # define sk_SSL_CIPHER_shift(st) SKM_sk_shift(SSL_CIPHER, (st)) # define sk_SSL_CIPHER_pop(st) SKM_sk_pop(SSL_CIPHER, (st)) # define sk_SSL_CIPHER_sort(st) SKM_sk_sort(SSL_CIPHER, (st)) @@ -1528,6 +1636,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_SSL_COMP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SSL_COMP, (st), (cmp)) # define sk_SSL_COMP_dup(st) SKM_sk_dup(SSL_COMP, st) # define sk_SSL_COMP_pop_free(st, free_func) SKM_sk_pop_free(SSL_COMP, (st), (free_func)) +# define sk_SSL_COMP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SSL_COMP, (st), (copy_func), (free_func)) # define sk_SSL_COMP_shift(st) SKM_sk_shift(SSL_COMP, (st)) # define sk_SSL_COMP_pop(st) SKM_sk_pop(SSL_COMP, (st)) # define sk_SSL_COMP_sort(st) SKM_sk_sort(SSL_COMP, (st)) @@ -1549,6 +1658,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_STACK_OF_X509_NAME_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STACK_OF_X509_NAME_ENTRY, (st), (cmp)) # define sk_STACK_OF_X509_NAME_ENTRY_dup(st) SKM_sk_dup(STACK_OF_X509_NAME_ENTRY, st) # define sk_STACK_OF_X509_NAME_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(STACK_OF_X509_NAME_ENTRY, (st), (free_func)) +# define sk_STACK_OF_X509_NAME_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STACK_OF_X509_NAME_ENTRY, (st), (copy_func), (free_func)) # define sk_STACK_OF_X509_NAME_ENTRY_shift(st) SKM_sk_shift(STACK_OF_X509_NAME_ENTRY, (st)) # define sk_STACK_OF_X509_NAME_ENTRY_pop(st) SKM_sk_pop(STACK_OF_X509_NAME_ENTRY, (st)) # define sk_STACK_OF_X509_NAME_ENTRY_sort(st) SKM_sk_sort(STACK_OF_X509_NAME_ENTRY, (st)) @@ -1570,6 +1680,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_STORE_ATTR_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STORE_ATTR_INFO, (st), (cmp)) # define sk_STORE_ATTR_INFO_dup(st) SKM_sk_dup(STORE_ATTR_INFO, st) # define sk_STORE_ATTR_INFO_pop_free(st, free_func) SKM_sk_pop_free(STORE_ATTR_INFO, (st), (free_func)) +# define sk_STORE_ATTR_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STORE_ATTR_INFO, (st), (copy_func), (free_func)) # define sk_STORE_ATTR_INFO_shift(st) SKM_sk_shift(STORE_ATTR_INFO, (st)) # define sk_STORE_ATTR_INFO_pop(st) SKM_sk_pop(STORE_ATTR_INFO, (st)) # define sk_STORE_ATTR_INFO_sort(st) SKM_sk_sort(STORE_ATTR_INFO, (st)) @@ -1591,6 +1702,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_STORE_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STORE_OBJECT, (st), (cmp)) # define sk_STORE_OBJECT_dup(st) SKM_sk_dup(STORE_OBJECT, st) # define sk_STORE_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(STORE_OBJECT, (st), (free_func)) +# define sk_STORE_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STORE_OBJECT, (st), (copy_func), (free_func)) # define sk_STORE_OBJECT_shift(st) SKM_sk_shift(STORE_OBJECT, (st)) # define sk_STORE_OBJECT_pop(st) SKM_sk_pop(STORE_OBJECT, (st)) # define sk_STORE_OBJECT_sort(st) SKM_sk_sort(STORE_OBJECT, (st)) @@ -1612,6 +1724,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_SXNETID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SXNETID, (st), (cmp)) # define sk_SXNETID_dup(st) SKM_sk_dup(SXNETID, st) # define sk_SXNETID_pop_free(st, free_func) SKM_sk_pop_free(SXNETID, (st), (free_func)) +# define sk_SXNETID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SXNETID, (st), (copy_func), (free_func)) # define sk_SXNETID_shift(st) SKM_sk_shift(SXNETID, (st)) # define sk_SXNETID_pop(st) SKM_sk_pop(SXNETID, (st)) # define sk_SXNETID_sort(st) SKM_sk_sort(SXNETID, (st)) @@ -1633,6 +1746,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_UI_STRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(UI_STRING, (st), (cmp)) # define sk_UI_STRING_dup(st) SKM_sk_dup(UI_STRING, st) # define sk_UI_STRING_pop_free(st, free_func) SKM_sk_pop_free(UI_STRING, (st), (free_func)) +# define sk_UI_STRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(UI_STRING, (st), (copy_func), (free_func)) # define sk_UI_STRING_shift(st) SKM_sk_shift(UI_STRING, (st)) # define sk_UI_STRING_pop(st) SKM_sk_pop(UI_STRING, (st)) # define sk_UI_STRING_sort(st) SKM_sk_sort(UI_STRING, (st)) @@ -1654,6 +1768,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509, (st), (cmp)) # define sk_X509_dup(st) SKM_sk_dup(X509, st) # define sk_X509_pop_free(st, free_func) SKM_sk_pop_free(X509, (st), (free_func)) +# define sk_X509_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509, (st), (copy_func), (free_func)) # define sk_X509_shift(st) SKM_sk_shift(X509, (st)) # define sk_X509_pop(st) SKM_sk_pop(X509, (st)) # define sk_X509_sort(st) SKM_sk_sort(X509, (st)) @@ -1675,6 +1790,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509V3_EXT_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509V3_EXT_METHOD, (st), (cmp)) # define sk_X509V3_EXT_METHOD_dup(st) SKM_sk_dup(X509V3_EXT_METHOD, st) # define sk_X509V3_EXT_METHOD_pop_free(st, free_func) SKM_sk_pop_free(X509V3_EXT_METHOD, (st), (free_func)) +# define sk_X509V3_EXT_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509V3_EXT_METHOD, (st), (copy_func), (free_func)) # define sk_X509V3_EXT_METHOD_shift(st) SKM_sk_shift(X509V3_EXT_METHOD, (st)) # define sk_X509V3_EXT_METHOD_pop(st) SKM_sk_pop(X509V3_EXT_METHOD, (st)) # define sk_X509V3_EXT_METHOD_sort(st) SKM_sk_sort(X509V3_EXT_METHOD, (st)) @@ -1696,6 +1812,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_ALGOR_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_ALGOR, (st), (cmp)) # define sk_X509_ALGOR_dup(st) SKM_sk_dup(X509_ALGOR, st) # define sk_X509_ALGOR_pop_free(st, free_func) SKM_sk_pop_free(X509_ALGOR, (st), (free_func)) +# define sk_X509_ALGOR_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_ALGOR, (st), (copy_func), (free_func)) # define sk_X509_ALGOR_shift(st) SKM_sk_shift(X509_ALGOR, (st)) # define sk_X509_ALGOR_pop(st) SKM_sk_pop(X509_ALGOR, (st)) # define sk_X509_ALGOR_sort(st) SKM_sk_sort(X509_ALGOR, (st)) @@ -1717,6 +1834,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_ATTRIBUTE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_ATTRIBUTE, (st), (cmp)) # define sk_X509_ATTRIBUTE_dup(st) SKM_sk_dup(X509_ATTRIBUTE, st) # define sk_X509_ATTRIBUTE_pop_free(st, free_func) SKM_sk_pop_free(X509_ATTRIBUTE, (st), (free_func)) +# define sk_X509_ATTRIBUTE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_ATTRIBUTE, (st), (copy_func), (free_func)) # define sk_X509_ATTRIBUTE_shift(st) SKM_sk_shift(X509_ATTRIBUTE, (st)) # define sk_X509_ATTRIBUTE_pop(st) SKM_sk_pop(X509_ATTRIBUTE, (st)) # define sk_X509_ATTRIBUTE_sort(st) SKM_sk_sort(X509_ATTRIBUTE, (st)) @@ -1738,6 +1856,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_CRL_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_CRL, (st), (cmp)) # define sk_X509_CRL_dup(st) SKM_sk_dup(X509_CRL, st) # define sk_X509_CRL_pop_free(st, free_func) SKM_sk_pop_free(X509_CRL, (st), (free_func)) +# define sk_X509_CRL_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_CRL, (st), (copy_func), (free_func)) # define sk_X509_CRL_shift(st) SKM_sk_shift(X509_CRL, (st)) # define sk_X509_CRL_pop(st) SKM_sk_pop(X509_CRL, (st)) # define sk_X509_CRL_sort(st) SKM_sk_sort(X509_CRL, (st)) @@ -1759,6 +1878,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_EXTENSION_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_EXTENSION, (st), (cmp)) # define sk_X509_EXTENSION_dup(st) SKM_sk_dup(X509_EXTENSION, st) # define sk_X509_EXTENSION_pop_free(st, free_func) SKM_sk_pop_free(X509_EXTENSION, (st), (free_func)) +# define sk_X509_EXTENSION_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_EXTENSION, (st), (copy_func), (free_func)) # define sk_X509_EXTENSION_shift(st) SKM_sk_shift(X509_EXTENSION, (st)) # define sk_X509_EXTENSION_pop(st) SKM_sk_pop(X509_EXTENSION, (st)) # define sk_X509_EXTENSION_sort(st) SKM_sk_sort(X509_EXTENSION, (st)) @@ -1780,6 +1900,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_INFO, (st), (cmp)) # define sk_X509_INFO_dup(st) SKM_sk_dup(X509_INFO, st) # define sk_X509_INFO_pop_free(st, free_func) SKM_sk_pop_free(X509_INFO, (st), (free_func)) +# define sk_X509_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_INFO, (st), (copy_func), (free_func)) # define sk_X509_INFO_shift(st) SKM_sk_shift(X509_INFO, (st)) # define sk_X509_INFO_pop(st) SKM_sk_pop(X509_INFO, (st)) # define sk_X509_INFO_sort(st) SKM_sk_sort(X509_INFO, (st)) @@ -1801,6 +1922,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_LOOKUP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_LOOKUP, (st), (cmp)) # define sk_X509_LOOKUP_dup(st) SKM_sk_dup(X509_LOOKUP, st) # define sk_X509_LOOKUP_pop_free(st, free_func) SKM_sk_pop_free(X509_LOOKUP, (st), (free_func)) +# define sk_X509_LOOKUP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_LOOKUP, (st), (copy_func), (free_func)) # define sk_X509_LOOKUP_shift(st) SKM_sk_shift(X509_LOOKUP, (st)) # define sk_X509_LOOKUP_pop(st) SKM_sk_pop(X509_LOOKUP, (st)) # define sk_X509_LOOKUP_sort(st) SKM_sk_sort(X509_LOOKUP, (st)) @@ -1822,6 +1944,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_NAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_NAME, (st), (cmp)) # define sk_X509_NAME_dup(st) SKM_sk_dup(X509_NAME, st) # define sk_X509_NAME_pop_free(st, free_func) SKM_sk_pop_free(X509_NAME, (st), (free_func)) +# define sk_X509_NAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_NAME, (st), (copy_func), (free_func)) # define sk_X509_NAME_shift(st) SKM_sk_shift(X509_NAME, (st)) # define sk_X509_NAME_pop(st) SKM_sk_pop(X509_NAME, (st)) # define sk_X509_NAME_sort(st) SKM_sk_sort(X509_NAME, (st)) @@ -1843,6 +1966,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_NAME_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_NAME_ENTRY, (st), (cmp)) # define sk_X509_NAME_ENTRY_dup(st) SKM_sk_dup(X509_NAME_ENTRY, st) # define sk_X509_NAME_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(X509_NAME_ENTRY, (st), (free_func)) +# define sk_X509_NAME_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_NAME_ENTRY, (st), (copy_func), (free_func)) # define sk_X509_NAME_ENTRY_shift(st) SKM_sk_shift(X509_NAME_ENTRY, (st)) # define sk_X509_NAME_ENTRY_pop(st) SKM_sk_pop(X509_NAME_ENTRY, (st)) # define sk_X509_NAME_ENTRY_sort(st) SKM_sk_sort(X509_NAME_ENTRY, (st)) @@ -1864,6 +1988,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_OBJECT, (st), (cmp)) # define sk_X509_OBJECT_dup(st) SKM_sk_dup(X509_OBJECT, st) # define sk_X509_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(X509_OBJECT, (st), (free_func)) +# define sk_X509_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_OBJECT, (st), (copy_func), (free_func)) # define sk_X509_OBJECT_shift(st) SKM_sk_shift(X509_OBJECT, (st)) # define sk_X509_OBJECT_pop(st) SKM_sk_pop(X509_OBJECT, (st)) # define sk_X509_OBJECT_sort(st) SKM_sk_sort(X509_OBJECT, (st)) @@ -1885,6 +2010,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_POLICY_DATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_POLICY_DATA, (st), (cmp)) # define sk_X509_POLICY_DATA_dup(st) SKM_sk_dup(X509_POLICY_DATA, st) # define sk_X509_POLICY_DATA_pop_free(st, free_func) SKM_sk_pop_free(X509_POLICY_DATA, (st), (free_func)) +# define sk_X509_POLICY_DATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_POLICY_DATA, (st), (copy_func), (free_func)) # define sk_X509_POLICY_DATA_shift(st) SKM_sk_shift(X509_POLICY_DATA, (st)) # define sk_X509_POLICY_DATA_pop(st) SKM_sk_pop(X509_POLICY_DATA, (st)) # define sk_X509_POLICY_DATA_sort(st) SKM_sk_sort(X509_POLICY_DATA, (st)) @@ -1906,6 +2032,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_POLICY_NODE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_POLICY_NODE, (st), (cmp)) # define sk_X509_POLICY_NODE_dup(st) SKM_sk_dup(X509_POLICY_NODE, st) # define sk_X509_POLICY_NODE_pop_free(st, free_func) SKM_sk_pop_free(X509_POLICY_NODE, (st), (free_func)) +# define sk_X509_POLICY_NODE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_POLICY_NODE, (st), (copy_func), (free_func)) # define sk_X509_POLICY_NODE_shift(st) SKM_sk_shift(X509_POLICY_NODE, (st)) # define sk_X509_POLICY_NODE_pop(st) SKM_sk_pop(X509_POLICY_NODE, (st)) # define sk_X509_POLICY_NODE_sort(st) SKM_sk_sort(X509_POLICY_NODE, (st)) @@ -1927,6 +2054,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_PURPOSE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_PURPOSE, (st), (cmp)) # define sk_X509_PURPOSE_dup(st) SKM_sk_dup(X509_PURPOSE, st) # define sk_X509_PURPOSE_pop_free(st, free_func) SKM_sk_pop_free(X509_PURPOSE, (st), (free_func)) +# define sk_X509_PURPOSE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_PURPOSE, (st), (copy_func), (free_func)) # define sk_X509_PURPOSE_shift(st) SKM_sk_shift(X509_PURPOSE, (st)) # define sk_X509_PURPOSE_pop(st) SKM_sk_pop(X509_PURPOSE, (st)) # define sk_X509_PURPOSE_sort(st) SKM_sk_sort(X509_PURPOSE, (st)) @@ -1948,6 +2076,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_REVOKED_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_REVOKED, (st), (cmp)) # define sk_X509_REVOKED_dup(st) SKM_sk_dup(X509_REVOKED, st) # define sk_X509_REVOKED_pop_free(st, free_func) SKM_sk_pop_free(X509_REVOKED, (st), (free_func)) +# define sk_X509_REVOKED_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_REVOKED, (st), (copy_func), (free_func)) # define sk_X509_REVOKED_shift(st) SKM_sk_shift(X509_REVOKED, (st)) # define sk_X509_REVOKED_pop(st) SKM_sk_pop(X509_REVOKED, (st)) # define sk_X509_REVOKED_sort(st) SKM_sk_sort(X509_REVOKED, (st)) @@ -1969,6 +2098,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_TRUST_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_TRUST, (st), (cmp)) # define sk_X509_TRUST_dup(st) SKM_sk_dup(X509_TRUST, st) # define sk_X509_TRUST_pop_free(st, free_func) SKM_sk_pop_free(X509_TRUST, (st), (free_func)) +# define sk_X509_TRUST_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_TRUST, (st), (copy_func), (free_func)) # define sk_X509_TRUST_shift(st) SKM_sk_shift(X509_TRUST, (st)) # define sk_X509_TRUST_pop(st) SKM_sk_pop(X509_TRUST, (st)) # define sk_X509_TRUST_sort(st) SKM_sk_sort(X509_TRUST, (st)) @@ -1990,6 +2120,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_X509_VERIFY_PARAM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_VERIFY_PARAM, (st), (cmp)) # define sk_X509_VERIFY_PARAM_dup(st) SKM_sk_dup(X509_VERIFY_PARAM, st) # define sk_X509_VERIFY_PARAM_pop_free(st, free_func) SKM_sk_pop_free(X509_VERIFY_PARAM, (st), (free_func)) +# define sk_X509_VERIFY_PARAM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_VERIFY_PARAM, (st), (copy_func), (free_func)) # define sk_X509_VERIFY_PARAM_shift(st) SKM_sk_shift(X509_VERIFY_PARAM, (st)) # define sk_X509_VERIFY_PARAM_pop(st) SKM_sk_pop(X509_VERIFY_PARAM, (st)) # define sk_X509_VERIFY_PARAM_sort(st) SKM_sk_sort(X509_VERIFY_PARAM, (st)) @@ -2011,6 +2142,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_nid_triple_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(nid_triple, (st), (cmp)) # define sk_nid_triple_dup(st) SKM_sk_dup(nid_triple, st) # define sk_nid_triple_pop_free(st, free_func) SKM_sk_pop_free(nid_triple, (st), (free_func)) +# define sk_nid_triple_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(nid_triple, (st), (copy_func), (free_func)) # define sk_nid_triple_shift(st) SKM_sk_shift(nid_triple, (st)) # define sk_nid_triple_pop(st) SKM_sk_pop(nid_triple, (st)) # define sk_nid_triple_sort(st) SKM_sk_sort(nid_triple, (st)) @@ -2032,6 +2164,7 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_void_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(void, (st), (cmp)) # define sk_void_dup(st) SKM_sk_dup(void, st) # define sk_void_pop_free(st, free_func) SKM_sk_pop_free(void, (st), (free_func)) +# define sk_void_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(void, (st), (copy_func), (free_func)) # define sk_void_shift(st) SKM_sk_shift(void, (st)) # define sk_void_pop(st) SKM_sk_pop(void, (st)) # define sk_void_sort(st) SKM_sk_sort(void, (st)) @@ -2042,7 +2175,8 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_OPENSSL_STRING_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val)) # define sk_OPENSSL_STRING_value(st, i) ((OPENSSL_STRING)sk_value(CHECKED_STACK_OF(OPENSSL_STRING, st), i)) # define sk_OPENSSL_STRING_num(st) SKM_sk_num(OPENSSL_STRING, st) -# define sk_OPENSSL_STRING_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_FREE_FUNC2(OPENSSL_STRING, free_func)) +# define sk_OPENSSL_STRING_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_FREE_FUNC(char, free_func)) +# define sk_OPENSSL_STRING_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_STRING) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_COPY_FUNC(char, copy_func), CHECKED_SK_FREE_FUNC(char, free_func))) # define sk_OPENSSL_STRING_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val), i) # define sk_OPENSSL_STRING_free(st) SKM_sk_free(OPENSSL_STRING, st) # define sk_OPENSSL_STRING_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_STRING, st), i, CHECKED_PTR_OF(char, val)) @@ -2065,7 +2199,8 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_OPENSSL_BLOCK_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val)) # define sk_OPENSSL_BLOCK_value(st, i) ((OPENSSL_BLOCK)sk_value(CHECKED_STACK_OF(OPENSSL_BLOCK, st), i)) # define sk_OPENSSL_BLOCK_num(st) SKM_sk_num(OPENSSL_BLOCK, st) -# define sk_OPENSSL_BLOCK_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_FREE_FUNC2(OPENSSL_BLOCK, free_func)) +# define sk_OPENSSL_BLOCK_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_FREE_FUNC(void, free_func)) +# define sk_OPENSSL_BLOCK_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_BLOCK) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_COPY_FUNC(void, copy_func), CHECKED_SK_FREE_FUNC(void, free_func))) # define sk_OPENSSL_BLOCK_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val), i) # define sk_OPENSSL_BLOCK_free(st) SKM_sk_free(OPENSSL_BLOCK, st) # define sk_OPENSSL_BLOCK_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_BLOCK, st), i, CHECKED_PTR_OF(void, val)) @@ -2088,7 +2223,8 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) # define sk_OPENSSL_PSTRING_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val)) # define sk_OPENSSL_PSTRING_value(st, i) ((OPENSSL_PSTRING)sk_value(CHECKED_STACK_OF(OPENSSL_PSTRING, st), i)) # define sk_OPENSSL_PSTRING_num(st) SKM_sk_num(OPENSSL_PSTRING, st) -# define sk_OPENSSL_PSTRING_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_FREE_FUNC2(OPENSSL_PSTRING, free_func)) +# define sk_OPENSSL_PSTRING_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_FREE_FUNC(OPENSSL_STRING, free_func)) +# define sk_OPENSSL_PSTRING_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_PSTRING) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_COPY_FUNC(OPENSSL_STRING, copy_func), CHECKED_SK_FREE_FUNC(OPENSSL_STRING, free_func))) # define sk_OPENSSL_PSTRING_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val), i) # define sk_OPENSSL_PSTRING_free(st) SKM_sk_free(OPENSSL_PSTRING, st) # define sk_OPENSSL_PSTRING_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_PSTRING, st), i, CHECKED_PTR_OF(OPENSSL_STRING, val)) diff --git a/libs/openssl/crypto/stack/stack.c b/libs/openssl/crypto/stack/stack.c index 331f9071..de437acf 100644 --- a/libs/openssl/crypto/stack/stack.c +++ b/libs/openssl/crypto/stack/stack.c @@ -115,6 +115,40 @@ _STACK *sk_dup(_STACK *sk) return (NULL); } +_STACK *sk_deep_copy(_STACK *sk, void *(*copy_func) (void *), + void (*free_func) (void *)) +{ + _STACK *ret; + int i; + + if ((ret = OPENSSL_malloc(sizeof(_STACK))) == NULL) + return ret; + ret->comp = sk->comp; + ret->sorted = sk->sorted; + ret->num = sk->num; + ret->num_alloc = sk->num > MIN_NODES ? sk->num : MIN_NODES; + ret->data = OPENSSL_malloc(sizeof(char *) * ret->num_alloc); + if (ret->data == NULL) { + OPENSSL_free(ret); + return NULL; + } + for (i = 0; i < ret->num_alloc; i++) + ret->data[i] = NULL; + + for (i = 0; i < ret->num; ++i) { + if (sk->data[i] == NULL) + continue; + if ((ret->data[i] = copy_func(sk->data[i])) == NULL) { + while (--i >= 0) + if (ret->data[i] != NULL) + free_func(ret->data[i]); + sk_free(ret); + return NULL; + } + } + return ret; +} + _STACK *sk_new_null(void) { return sk_new((int (*)(const void *, const void *))0); diff --git a/libs/openssl/crypto/stack/stack.h b/libs/openssl/crypto/stack/stack.h index 8d6e939a..eb072166 100644 --- a/libs/openssl/crypto/stack/stack.h +++ b/libs/openssl/crypto/stack/stack.h @@ -83,6 +83,7 @@ _STACK *sk_new(int (*cmp) (const void *, const void *)); _STACK *sk_new_null(void); void sk_free(_STACK *); void sk_pop_free(_STACK *st, void (*func) (void *)); +_STACK *sk_deep_copy(_STACK *, void *(*)(void *), void (*)(void *)); int sk_insert(_STACK *sk, void *data, int where); void *sk_delete(_STACK *st, int loc); void *sk_delete_ptr(_STACK *st, void *p); diff --git a/libs/openssl/crypto/symhacks.h b/libs/openssl/crypto/symhacks.h index 2eadf7f3..239fa4fb 100644 --- a/libs/openssl/crypto/symhacks.h +++ b/libs/openssl/crypto/symhacks.h @@ -166,7 +166,7 @@ # undef CRYPTO_get_locked_mem_ex_functions # define CRYPTO_get_locked_mem_ex_functions CRYPTO_get_locked_mem_ex_funcs -/* Hack some long SSL names */ +/* Hack some long SSL/TLS names */ # undef SSL_CTX_set_default_verify_paths # define SSL_CTX_set_default_verify_paths SSL_CTX_set_def_verify_paths # undef SSL_get_ex_data_X509_STORE_CTX_idx @@ -183,6 +183,10 @@ # define SSL_CTX_set_default_passwd_cb_userdata SSL_CTX_set_def_passwd_cb_ud # undef SSL_COMP_get_compression_methods # define SSL_COMP_get_compression_methods SSL_COMP_get_compress_methods +# undef SSL_COMP_set0_compression_methods +# define SSL_COMP_set0_compression_methods SSL_COMP_set0_compress_methods +# undef SSL_COMP_free_compression_methods +# define SSL_COMP_free_compression_methods SSL_COMP_free_compress_methods # undef ssl_add_clienthello_renegotiate_ext # define ssl_add_clienthello_renegotiate_ext ssl_add_clienthello_reneg_ext # undef ssl_add_serverhello_renegotiate_ext @@ -211,6 +215,16 @@ # define SSL_CTX_set_next_protos_advertised_cb SSL_CTX_set_next_protos_adv_cb # undef SSL_CTX_set_next_proto_select_cb # define SSL_CTX_set_next_proto_select_cb SSL_CTX_set_next_proto_sel_cb + +# undef tls1_send_server_supplemental_data +# define tls1_send_server_supplemental_data tls1_send_server_suppl_data +# undef tls1_send_client_supplemental_data +# define tls1_send_client_supplemental_data tls1_send_client_suppl_data +# undef tls1_get_server_supplemental_data +# define tls1_get_server_supplemental_data tls1_get_server_suppl_data +# undef tls1_get_client_supplemental_data +# define tls1_get_client_supplemental_data tls1_get_client_suppl_data + # undef ssl3_cbc_record_digest_supported # define ssl3_cbc_record_digest_supported ssl3_cbc_record_digest_support # undef ssl_check_clienthello_tlsext_late @@ -218,7 +232,11 @@ # undef ssl_check_clienthello_tlsext_early # define ssl_check_clienthello_tlsext_early ssl_check_clihello_tlsext_early -/* Hack some long ENGINE names */ +/* Hack some RSA long names */ +# undef RSA_padding_check_PKCS1_OAEP_mgf1 +# define RSA_padding_check_PKCS1_OAEP_mgf1 RSA_pad_check_PKCS1_OAEP_mgf1 + +/* Hack some ENGINE long names */ # undef ENGINE_get_default_BN_mod_exp_crt # define ENGINE_get_default_BN_mod_exp_crt ENGINE_get_def_BN_mod_exp_crt # undef ENGINE_set_default_BN_mod_exp_crt @@ -427,6 +445,18 @@ # define CMS_OriginatorIdentifierOrKey_it CMS_OriginatorIdOrKey_it # undef cms_SignerIdentifier_get0_signer_id # define cms_SignerIdentifier_get0_signer_id cms_SignerId_get0_signer_id +# undef CMS_RecipientInfo_kari_get0_orig_id +# define CMS_RecipientInfo_kari_get0_orig_id CMS_RecipInfo_kari_get0_orig_id +# undef CMS_RecipientInfo_kari_get0_reks +# define CMS_RecipientInfo_kari_get0_reks CMS_RecipInfo_kari_get0_reks +# undef CMS_RecipientEncryptedKey_cert_cmp +# define CMS_RecipientEncryptedKey_cert_cmp CMS_RecipEncryptedKey_cert_cmp +# undef CMS_RecipientInfo_kari_set0_pkey +# define CMS_RecipientInfo_kari_set0_pkey CMS_RecipInfo_kari_set0_pkey +# undef CMS_RecipientEncryptedKey_get0_id +# define CMS_RecipientEncryptedKey_get0_id CMS_RecipEncryptedKey_get0_id +# undef CMS_RecipientInfo_kari_orig_id_cmp +# define CMS_RecipientInfo_kari_orig_id_cmp CMS_RecipInfo_kari_orig_id_cmp /* Hack some long DTLS1 names */ # undef dtls1_retransmit_buffered_messages diff --git a/libs/openssl/crypto/ts/ts_rsp_sign.c b/libs/openssl/crypto/ts/ts_rsp_sign.c index 031d872e..db6ce324 100644 --- a/libs/openssl/crypto/ts/ts_rsp_sign.c +++ b/libs/openssl/crypto/ts/ts_rsp_sign.c @@ -238,7 +238,6 @@ int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, ASN1_OBJECT *def_policy) int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, STACK_OF(X509) *certs) { - int i; if (ctx->certs) { sk_X509_pop_free(ctx->certs, X509_free); @@ -246,14 +245,10 @@ int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, STACK_OF(X509) *certs) } if (!certs) return 1; - if (!(ctx->certs = sk_X509_dup(certs))) { + if (!(ctx->certs = X509_chain_up_ref(certs))) { TSerr(TS_F_TS_RESP_CTX_SET_CERTS, ERR_R_MALLOC_FAILURE); return 0; } - for (i = 0; i < sk_X509_num(ctx->certs); ++i) { - X509 *cert = sk_X509_value(ctx->certs, i); - CRYPTO_add(&cert->references, +1, CRYPTO_LOCK_X509); - } return 1; } diff --git a/libs/openssl/crypto/ts/ts_rsp_verify.c b/libs/openssl/crypto/ts/ts_rsp_verify.c index 32b4d992..da899117 100644 --- a/libs/openssl/crypto/ts/ts_rsp_verify.c +++ b/libs/openssl/crypto/ts/ts_rsp_verify.c @@ -522,7 +522,7 @@ static int TS_check_status_info(TS_RESP *response) if (ASN1_BIT_STRING_get_bit(info->failure_info, TS_failure_info[i].code)) { if (!first) - strcpy(failure_text, ","); + strcat(failure_text, ","); else first = 0; strcat(failure_text, TS_failure_info[i].text); @@ -637,7 +637,7 @@ static int TS_compute_imprint(BIO *data, TS_TST_INFO *tst_info, X509_ALGOR_free(*md_alg); OPENSSL_free(*imprint); *imprint_len = 0; - *imprint = NULL; + *imprint = 0; return 0; } diff --git a/libs/openssl/crypto/ui/ui_openssl.c b/libs/openssl/crypto/ui/ui_openssl.c index 829ea869..5d662764 100644 --- a/libs/openssl/crypto/ui/ui_openssl.c +++ b/libs/openssl/crypto/ui/ui_openssl.c @@ -208,7 +208,7 @@ # elif !defined(OPENSSL_SYS_VMS) \ && !defined(OPENSSL_SYS_MSDOS) \ && !defined(OPENSSL_SYS_MACINTOSH_CLASSIC) \ - && !defined(MAC_OS_GUSI_SOURCE) \ + && !defined(MAC_OS_GUSI_SOURCE) \ && !defined(OPENSSL_SYS_VXWORKS) \ && !defined(OPENSSL_SYS_NETWARE) # define TERMIOS diff --git a/libs/openssl/crypto/x509/vpm_int.h b/libs/openssl/crypto/x509/vpm_int.h new file mode 100644 index 00000000..9c55defc --- /dev/null +++ b/libs/openssl/crypto/x509/vpm_int.h @@ -0,0 +1,70 @@ +/* vpm_int.h */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project + * 2013. + */ +/* ==================================================================== + * Copyright (c) 2013 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +/* internal only structure to hold additional X509_VERIFY_PARAM data */ + +struct X509_VERIFY_PARAM_ID_st { + STACK_OF(OPENSSL_STRING) *hosts; /* Set of acceptable names */ + unsigned int hostflags; /* Flags to control matching features */ + char *peername; /* Matching hostname in peer certificate */ + char *email; /* If not NULL email address to match */ + size_t emaillen; + unsigned char *ip; /* If not NULL IP address to match */ + size_t iplen; /* Length of IP address */ +}; diff --git a/libs/openssl/crypto/x509/x509.h b/libs/openssl/crypto/x509/x509.h index a4911741..99337b84 100644 --- a/libs/openssl/crypto/x509/x509.h +++ b/libs/openssl/crypto/x509/x509.h @@ -361,6 +361,7 @@ typedef struct x509_cert_pair_st { # define X509_FLAG_NO_SIGDUMP (1L << 9) # define X509_FLAG_NO_AUX (1L << 10) # define X509_FLAG_NO_ATTRIBUTES (1L << 11) +# define X509_FLAG_NO_IDS (1L << 12) /* Flags specific to X509_NAME_print_ex() */ @@ -645,10 +646,12 @@ int X509_signature_print(BIO *bp, X509_ALGOR *alg, ASN1_STRING *sig); int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); +int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); +int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); int X509_pubkey_digest(const X509 *data, const EVP_MD *type, @@ -745,6 +748,7 @@ X509 *X509_dup(X509 *x509); X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); X509_CRL *X509_CRL_dup(X509_CRL *crl); +X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev); X509_REQ *X509_REQ_dup(X509_REQ *req); X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, @@ -828,6 +832,12 @@ void *X509_get_ex_data(X509 *r, int idx); int i2d_X509_AUX(X509 *a, unsigned char **pp); X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length); +int i2d_re_X509_tbs(X509 *x, unsigned char **pp); + +void X509_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, + const X509 *x); +int X509_get_signature_nid(const X509 *x); + int X509_alias_set1(X509 *x, unsigned char *name, int len); int X509_keyid_set1(X509 *x, unsigned char *id, int len); unsigned char *X509_alias_get0(X509 *x, int *len); @@ -939,9 +949,17 @@ int X509_CRL_sort(X509_CRL *crl); int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); +X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, + EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); + int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); int X509_check_private_key(X509 *x509, EVP_PKEY *pkey); +int X509_chain_check_suiteb(int *perror_depth, + X509 *x, STACK_OF(X509) *chain, + unsigned long flags); +int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); unsigned long X509_issuer_and_serial_hash(X509 *a); @@ -1236,6 +1254,7 @@ void ERR_load_X509_strings(void); # define X509_F_X509_ATTRIBUTE_GET0_DATA 139 # define X509_F_X509_ATTRIBUTE_SET1_DATA 138 # define X509_F_X509_CHECK_PRIVATE_KEY 128 +# define X509_F_X509_CRL_DIFF 105 # define X509_F_X509_CRL_PRINT_FP 147 # define X509_F_X509_EXTENSION_CREATE_BY_NID 108 # define X509_F_X509_EXTENSION_CREATE_BY_OBJ 109 @@ -1268,20 +1287,27 @@ void ERR_load_X509_strings(void); # define X509_F_X509_VERIFY_CERT 127 /* Reason codes. */ +# define X509_R_AKID_MISMATCH 110 # define X509_R_BAD_X509_FILETYPE 100 # define X509_R_BASE64_DECODE_ERROR 118 # define X509_R_CANT_CHECK_DH_KEY 114 # define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 +# define X509_R_CRL_ALREADY_DELTA 127 +# define X509_R_CRL_VERIFY_FAILURE 131 # define X509_R_ERR_ASN1_LIB 102 +# define X509_R_IDP_MISMATCH 128 # define X509_R_INVALID_DIRECTORY 113 # define X509_R_INVALID_FIELD_NAME 119 # define X509_R_INVALID_TRUST 123 +# define X509_R_ISSUER_MISMATCH 129 # define X509_R_KEY_TYPE_MISMATCH 115 # define X509_R_KEY_VALUES_MISMATCH 116 # define X509_R_LOADING_CERT_DIR 103 # define X509_R_LOADING_DEFAULTS 104 # define X509_R_METHOD_NOT_SUPPORTED 124 +# define X509_R_NEWER_CRL_NOT_NEWER 132 # define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 +# define X509_R_NO_CRL_NUMBER 130 # define X509_R_PUBLIC_KEY_DECODE_ERROR 125 # define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 # define X509_R_SHOULD_RETRY 106 diff --git a/libs/openssl/crypto/x509/x509_cmp.c b/libs/openssl/crypto/x509/x509_cmp.c index 3c5b717c..49c71b91 100644 --- a/libs/openssl/crypto/x509/x509_cmp.c +++ b/libs/openssl/crypto/x509/x509_cmp.c @@ -179,11 +179,23 @@ unsigned long X509_subject_name_hash_old(X509 *x) */ int X509_cmp(const X509 *a, const X509 *b) { + int rv; /* ensure hash is valid */ X509_check_purpose((X509 *)a, -1, 0); X509_check_purpose((X509 *)b, -1, 0); - return memcmp(a->sha1_hash, b->sha1_hash, SHA_DIGEST_LENGTH); + rv = memcmp(a->sha1_hash, b->sha1_hash, SHA_DIGEST_LENGTH); + if (rv) + return rv; + /* Check for match against stored encoding too */ + if (!a->cert_info->enc.modified && !b->cert_info->enc.modified) { + rv = (int)(a->cert_info->enc.len - b->cert_info->enc.len); + if (rv) + return rv; + return memcmp(a->cert_info->enc.enc, b->cert_info->enc.enc, + a->cert_info->enc.len); + } + return rv; } #endif @@ -339,3 +351,148 @@ int X509_check_private_key(X509 *x, EVP_PKEY *k) return 1; return 0; } + +/* + * Check a suite B algorithm is permitted: pass in a public key and the NID + * of its signature (or 0 if no signature). The pflags is a pointer to a + * flags field which must contain the suite B verification flags. + */ + +#ifndef OPENSSL_NO_EC + +static int check_suite_b(EVP_PKEY *pkey, int sign_nid, unsigned long *pflags) +{ + const EC_GROUP *grp = NULL; + int curve_nid; + if (pkey && pkey->type == EVP_PKEY_EC) + grp = EC_KEY_get0_group(pkey->pkey.ec); + if (!grp) + return X509_V_ERR_SUITE_B_INVALID_ALGORITHM; + curve_nid = EC_GROUP_get_curve_name(grp); + /* Check curve is consistent with LOS */ + if (curve_nid == NID_secp384r1) { /* P-384 */ + /* + * Check signature algorithm is consistent with curve. + */ + if (sign_nid != -1 && sign_nid != NID_ecdsa_with_SHA384) + return X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM; + if (!(*pflags & X509_V_FLAG_SUITEB_192_LOS)) + return X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED; + /* If we encounter P-384 we cannot use P-256 later */ + *pflags &= ~X509_V_FLAG_SUITEB_128_LOS_ONLY; + } else if (curve_nid == NID_X9_62_prime256v1) { /* P-256 */ + if (sign_nid != -1 && sign_nid != NID_ecdsa_with_SHA256) + return X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM; + if (!(*pflags & X509_V_FLAG_SUITEB_128_LOS_ONLY)) + return X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED; + } else + return X509_V_ERR_SUITE_B_INVALID_CURVE; + + return X509_V_OK; +} + +int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, + unsigned long flags) +{ + int rv, i, sign_nid; + EVP_PKEY *pk = NULL; + unsigned long tflags; + if (!(flags & X509_V_FLAG_SUITEB_128_LOS)) + return X509_V_OK; + tflags = flags; + /* If no EE certificate passed in must be first in chain */ + if (x == NULL) { + x = sk_X509_value(chain, 0); + i = 1; + } else + i = 0; + + if (X509_get_version(x) != 2) { + rv = X509_V_ERR_SUITE_B_INVALID_VERSION; + /* Correct error depth */ + i = 0; + goto end; + } + + pk = X509_get_pubkey(x); + /* Check EE key only */ + rv = check_suite_b(pk, -1, &tflags); + if (rv != X509_V_OK) { + /* Correct error depth */ + i = 0; + goto end; + } + for (; i < sk_X509_num(chain); i++) { + sign_nid = X509_get_signature_nid(x); + x = sk_X509_value(chain, i); + if (X509_get_version(x) != 2) { + rv = X509_V_ERR_SUITE_B_INVALID_VERSION; + goto end; + } + EVP_PKEY_free(pk); + pk = X509_get_pubkey(x); + rv = check_suite_b(pk, sign_nid, &tflags); + if (rv != X509_V_OK) + goto end; + } + + /* Final check: root CA signature */ + rv = check_suite_b(pk, X509_get_signature_nid(x), &tflags); + end: + if (pk) + EVP_PKEY_free(pk); + if (rv != X509_V_OK) { + /* Invalid signature or LOS errors are for previous cert */ + if ((rv == X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM + || rv == X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED) && i) + i--; + /* + * If we have LOS error and flags changed then we are signing P-384 + * with P-256. Use more meaninggul error. + */ + if (rv == X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED && flags != tflags) + rv = X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256; + if (perror_depth) + *perror_depth = i; + } + return rv; +} + +int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags) +{ + int sign_nid; + if (!(flags & X509_V_FLAG_SUITEB_128_LOS)) + return X509_V_OK; + sign_nid = OBJ_obj2nid(crl->crl->sig_alg->algorithm); + return check_suite_b(pk, sign_nid, &flags); +} + +#else +int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509) *chain, + unsigned long flags) +{ + return 0; +} + +int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags) +{ + return 0; +} + +#endif +/* + * Not strictly speaking an "up_ref" as a STACK doesn't have a reference + * count but it has the same effect by duping the STACK and upping the ref of + * each X509 structure. + */ +STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain) +{ + STACK_OF(X509) *ret; + int i; + ret = sk_X509_dup(chain); + for (i = 0; i < sk_X509_num(ret); i++) { + X509 *x = sk_X509_value(ret, i); + CRYPTO_add(&x->references, 1, CRYPTO_LOCK_X509); + } + return ret; +} diff --git a/libs/openssl/crypto/x509/x509_err.c b/libs/openssl/crypto/x509/x509_err.c index 61a19f74..43cde18e 100644 --- a/libs/openssl/crypto/x509/x509_err.c +++ b/libs/openssl/crypto/x509/x509_err.c @@ -1,6 +1,6 @@ /* crypto/x509/x509_err.c */ /* ==================================================================== - * Copyright (c) 1999-2006 The OpenSSL Project. All rights reserved. + * Copyright (c) 1999-2012 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -88,6 +88,7 @@ static ERR_STRING_DATA X509_str_functs[] = { {ERR_FUNC(X509_F_X509_ATTRIBUTE_GET0_DATA), "X509_ATTRIBUTE_get0_data"}, {ERR_FUNC(X509_F_X509_ATTRIBUTE_SET1_DATA), "X509_ATTRIBUTE_set1_data"}, {ERR_FUNC(X509_F_X509_CHECK_PRIVATE_KEY), "X509_check_private_key"}, + {ERR_FUNC(X509_F_X509_CRL_DIFF), "X509_CRL_diff"}, {ERR_FUNC(X509_F_X509_CRL_PRINT_FP), "X509_CRL_print_fp"}, {ERR_FUNC(X509_F_X509_EXTENSION_CREATE_BY_NID), "X509_EXTENSION_create_by_NID"}, @@ -131,22 +132,29 @@ static ERR_STRING_DATA X509_str_functs[] = { }; static ERR_STRING_DATA X509_str_reasons[] = { + {ERR_REASON(X509_R_AKID_MISMATCH), "akid mismatch"}, {ERR_REASON(X509_R_BAD_X509_FILETYPE), "bad x509 filetype"}, {ERR_REASON(X509_R_BASE64_DECODE_ERROR), "base64 decode error"}, {ERR_REASON(X509_R_CANT_CHECK_DH_KEY), "cant check dh key"}, {ERR_REASON(X509_R_CERT_ALREADY_IN_HASH_TABLE), "cert already in hash table"}, + {ERR_REASON(X509_R_CRL_ALREADY_DELTA), "crl already delta"}, + {ERR_REASON(X509_R_CRL_VERIFY_FAILURE), "crl verify failure"}, {ERR_REASON(X509_R_ERR_ASN1_LIB), "err asn1 lib"}, + {ERR_REASON(X509_R_IDP_MISMATCH), "idp mismatch"}, {ERR_REASON(X509_R_INVALID_DIRECTORY), "invalid directory"}, {ERR_REASON(X509_R_INVALID_FIELD_NAME), "invalid field name"}, {ERR_REASON(X509_R_INVALID_TRUST), "invalid trust"}, + {ERR_REASON(X509_R_ISSUER_MISMATCH), "issuer mismatch"}, {ERR_REASON(X509_R_KEY_TYPE_MISMATCH), "key type mismatch"}, {ERR_REASON(X509_R_KEY_VALUES_MISMATCH), "key values mismatch"}, {ERR_REASON(X509_R_LOADING_CERT_DIR), "loading cert dir"}, {ERR_REASON(X509_R_LOADING_DEFAULTS), "loading defaults"}, {ERR_REASON(X509_R_METHOD_NOT_SUPPORTED), "method not supported"}, + {ERR_REASON(X509_R_NEWER_CRL_NOT_NEWER), "newer crl not newer"}, {ERR_REASON(X509_R_NO_CERT_SET_FOR_US_TO_VERIFY), "no cert set for us to verify"}, + {ERR_REASON(X509_R_NO_CRL_NUMBER), "no crl number"}, {ERR_REASON(X509_R_PUBLIC_KEY_DECODE_ERROR), "public key decode error"}, {ERR_REASON(X509_R_PUBLIC_KEY_ENCODE_ERROR), "public key encode error"}, {ERR_REASON(X509_R_SHOULD_RETRY), "should retry"}, diff --git a/libs/openssl/crypto/x509/x509_lu.c b/libs/openssl/crypto/x509/x509_lu.c index 8415d1d8..50120a4d 100644 --- a/libs/openssl/crypto/x509/x509_lu.c +++ b/libs/openssl/crypto/x509/x509_lu.c @@ -238,6 +238,19 @@ void X509_STORE_free(X509_STORE *vfy) if (vfy == NULL) return; + i = CRYPTO_add(&vfy->references, -1, CRYPTO_LOCK_X509_STORE); +#ifdef REF_PRINT + REF_PRINT("X509_STORE", vfy); +#endif + if (i > 0) + return; +#ifdef REF_CHECK + if (i < 0) { + fprintf(stderr, "X509_STORE_free, bad reference count\n"); + abort(); /* ok */ + } +#endif + sk = vfy->get_cert_methods; for (i = 0; i < sk_X509_LOOKUP_num(sk); i++) { lu = sk_X509_LOOKUP_value(sk, i); @@ -523,8 +536,6 @@ STACK_OF(X509_CRL) *X509_STORE_get1_crls(X509_STORE_CTX *ctx, X509_NAME *nm) X509_OBJECT *obj, xobj; sk = sk_X509_CRL_new_null(); CRYPTO_w_lock(CRYPTO_LOCK_X509_STORE); - /* Check cache first */ - idx = x509_object_idx_cnt(ctx->ctx->objs, X509_LU_CRL, nm, &cnt); /* * Always do lookup to possibly add new CRLs to cache @@ -681,6 +692,19 @@ void X509_STORE_set_verify_cb(X509_STORE *ctx, ctx->verify_cb = verify_cb; } +void X509_STORE_set_lookup_crls_cb(X509_STORE *ctx, + STACK_OF(X509_CRL) *(*cb) (X509_STORE_CTX + *ctx, + X509_NAME *nm)) +{ + ctx->lookup_crls = cb; +} + +X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx) +{ + return ctx->ctx; +} + IMPLEMENT_STACK_OF(X509_LOOKUP) IMPLEMENT_STACK_OF(X509_OBJECT) diff --git a/libs/openssl/crypto/x509/x509_set.c b/libs/openssl/crypto/x509/x509_set.c index 46457776..5b802bd6 100644 --- a/libs/openssl/crypto/x509/x509_set.c +++ b/libs/openssl/crypto/x509/x509_set.c @@ -67,6 +67,11 @@ int X509_set_version(X509 *x, long version) { if (x == NULL) return (0); + if (version == 0) { + M_ASN1_INTEGER_free(x->cert_info->version); + x->cert_info->version = NULL; + return (1); + } if (x->cert_info->version == NULL) { if ((x->cert_info->version = M_ASN1_INTEGER_new()) == NULL) return (0); diff --git a/libs/openssl/crypto/x509/x509_trs.c b/libs/openssl/crypto/x509/x509_trs.c index 7e444795..11e07634 100644 --- a/libs/openssl/crypto/x509/x509_trs.c +++ b/libs/openssl/crypto/x509/x509_trs.c @@ -119,6 +119,14 @@ int X509_check_trust(X509 *x, int id, int flags) int idx; if (id == -1) return 1; + /* We get this as a default value */ + if (id == 0) { + int rv; + rv = obj_trust(NID_anyExtendedKeyUsage, x, 0); + if (rv != X509_TRUST_UNTRUSTED) + return rv; + return trust_compat(NULL, x, 0); + } idx = X509_TRUST_get_by_id(id); if (idx == -1) return default_trust(id, x, flags); diff --git a/libs/openssl/crypto/x509/x509_txt.c b/libs/openssl/crypto/x509/x509_txt.c index d834180e..3d46d3ff 100644 --- a/libs/openssl/crypto/x509/x509_txt.c +++ b/libs/openssl/crypto/x509/x509_txt.c @@ -184,6 +184,26 @@ const char *X509_verify_cert_error_string(long n) case X509_V_ERR_CRL_PATH_VALIDATION_ERROR: return ("CRL path validation error"); + case X509_V_ERR_SUITE_B_INVALID_VERSION: + return ("Suite B: certificate version invalid"); + case X509_V_ERR_SUITE_B_INVALID_ALGORITHM: + return ("Suite B: invalid public key algorithm"); + case X509_V_ERR_SUITE_B_INVALID_CURVE: + return ("Suite B: invalid ECC curve"); + case X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM: + return ("Suite B: invalid signature algorithm"); + case X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED: + return ("Suite B: curve not allowed for this LOS"); + case X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256: + return ("Suite B: cannot sign P-384 with P-256"); + + case X509_V_ERR_HOSTNAME_MISMATCH: + return ("Hostname mismatch"); + case X509_V_ERR_EMAIL_MISMATCH: + return ("Email address mismatch"); + case X509_V_ERR_IP_ADDRESS_MISMATCH: + return ("IP address mismatch"); + default: BIO_snprintf(buf, sizeof buf, "error number %ld", n); return (buf); diff --git a/libs/openssl/crypto/x509/x509_vfy.c b/libs/openssl/crypto/x509/x509_vfy.c index 7009ae63..ab94948f 100644 --- a/libs/openssl/crypto/x509/x509_vfy.c +++ b/libs/openssl/crypto/x509/x509_vfy.c @@ -69,6 +69,7 @@ #include #include #include +#include "vpm_int.h" /* CRL score values */ @@ -113,6 +114,7 @@ static int check_issued(X509_STORE_CTX *ctx, X509 *x, X509 *issuer); static X509 *find_issuer(X509_STORE_CTX *ctx, STACK_OF(X509) *sk, X509 *x); static int check_chain_extensions(X509_STORE_CTX *ctx); static int check_name_constraints(X509_STORE_CTX *ctx); +static int check_id(X509_STORE_CTX *ctx); static int check_trust(X509_STORE_CTX *ctx); static int check_revocation(X509_STORE_CTX *ctx); static int check_cert(X509_STORE_CTX *ctx); @@ -148,6 +150,40 @@ static int x509_subject_cmp(X509 **a, X509 **b) return X509_subject_name_cmp(*a, *b); } #endif +/* Return 1 is a certificate is self signed */ +static int cert_self_signed(X509 *x) +{ + X509_check_purpose(x, -1, 0); + if (x->ex_flags & EXFLAG_SS) + return 1; + else + return 0; +} + +/* Given a certificate try and find an exact match in the store */ + +static X509 *lookup_cert_match(X509_STORE_CTX *ctx, X509 *x) +{ + STACK_OF(X509) *certs; + X509 *xtmp = NULL; + int i; + /* Lookup all certs with matching subject name */ + certs = ctx->lookup_certs(ctx, X509_get_subject_name(x)); + if (certs == NULL) + return NULL; + /* Look for exact match */ + for (i = 0; i < sk_X509_num(certs); i++) { + xtmp = sk_X509_value(certs, i); + if (!X509_cmp(xtmp, x)) + break; + } + if (i < sk_X509_num(certs)) + CRYPTO_add(&xtmp->references, 1, CRYPTO_LOCK_X509); + else + xtmp = NULL; + sk_X509_pop_free(certs, X509_free); + return xtmp; +} int X509_verify_cert(X509_STORE_CTX *ctx) { @@ -205,8 +241,24 @@ int X509_verify_cert(X509_STORE_CTX *ctx) * later. */ /* If we are self signed, we break */ - if (ctx->check_issued(ctx, x, x)) + if (cert_self_signed(x)) break; + /* + * If asked see if we can find issuer in trusted store first + */ + if (ctx->param->flags & X509_V_FLAG_TRUSTED_FIRST) { + ok = ctx->get_issuer(&xtmp, ctx, x); + if (ok < 0) + goto end; + /* + * If successful for now free up cert so it will be picked up + * again later. + */ + if (ok > 0) { + X509_free(xtmp); + break; + } + } /* If we were passed a cert chain, use it first */ if (ctx->untrusted != NULL) { @@ -244,7 +296,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx) */ i = sk_X509_num(ctx->chain); x = sk_X509_value(ctx->chain, i - 1); - if (ctx->check_issued(ctx, x, x)) { + if (cert_self_signed(x)) { /* we have a self signed certificate */ if (sk_X509_num(ctx->chain) == 1) { /* @@ -290,30 +342,40 @@ int X509_verify_cert(X509_STORE_CTX *ctx) if (depth < num) break; /* If we are self signed, we break */ - if (ctx->check_issued(ctx, x, x)) + if (cert_self_signed(x)) break; ok = ctx->get_issuer(&xtmp, ctx, x); + if (ok < 0) - return ok; + goto end; if (ok == 0) break; x = xtmp; if (!sk_X509_push(ctx->chain, x)) { X509_free(xtmp); X509err(X509_F_X509_VERIFY_CERT, ERR_R_MALLOC_FAILURE); - return 0; + ok = 0; + goto end; } num++; } + /* we now have our chain, lets check it... */ + i = check_trust(ctx); + + /* If explicitly rejected error */ + if (i == X509_TRUST_REJECTED) + goto end; /* - * If we haven't got a least one certificate from our store then check - * if there is an alternative chain that could be used. We only do this - * if the user hasn't switched off alternate chain checking + * If it's not explicitly trusted then check if there is an alternative + * chain that could be used. We only do this if we haven't already + * checked via TRUSTED_FIRST and the user hasn't switched off alternate + * chain checking */ retry = 0; - if (num == ctx->last_untrusted && - !(ctx->param->flags & X509_V_FLAG_NO_ALT_CHAINS)) { + if (i != X509_TRUST_TRUSTED + && !(ctx->param->flags & X509_V_FLAG_TRUSTED_FIRST) + && !(ctx->param->flags & X509_V_FLAG_NO_ALT_CHAINS)) { while (j-- > 1) { xtmp2 = sk_X509_value(ctx->chain, j - 1); ok = ctx->get_issuer(&xtmp, ctx, xtmp2); @@ -343,8 +405,12 @@ int X509_verify_cert(X509_STORE_CTX *ctx) } } while (retry); - /* Is last certificate looked up self signed? */ - if (!ctx->check_issued(ctx, x, x)) { + /* + * If not explicitly trusted then indicate error unless it's a single + * self signed certificate in which case we've indicated an error already + * and set bad_chain == 1 + */ + if (i != X509_TRUST_TRUSTED && !bad_chain) { if ((chain_ss == NULL) || !ctx->check_issued(ctx, x, chain_ss)) { if (ctx->last_untrusted >= num) ctx->error = X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY; @@ -381,10 +447,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx) if (!ok) goto end; - /* The chain extensions are OK: check trust */ - - if (param->trust > 0) - ok = check_trust(ctx); + ok = check_id(ctx); if (!ok) goto end; @@ -401,6 +464,16 @@ int X509_verify_cert(X509_STORE_CTX *ctx) if (!ok) goto end; + i = X509_chain_check_suiteb(&ctx->error_depth, NULL, ctx->chain, + ctx->param->flags); + if (i != X509_V_OK) { + ctx->error = i; + ctx->current_cert = sk_X509_value(ctx->chain, ctx->error_depth); + ok = cb(0, ctx); + if (!ok) + goto end; + } + /* At this point, we have a chain and need to verify it */ if (ctx->verify != NULL) ok = ctx->verify(ctx); @@ -467,7 +540,6 @@ static int check_issued(X509_STORE_CTX *ctx, X509 *x, X509 *issuer) ctx->current_cert = x; ctx->current_issuer = issuer; return ctx->verify_cb(0, ctx); - return 0; } /* Alternative lookup method: look from a STACK stored in other_ctx */ @@ -667,30 +739,101 @@ static int check_name_constraints(X509_STORE_CTX *ctx) return 1; } -static int check_trust(X509_STORE_CTX *ctx) +static int check_id_error(X509_STORE_CTX *ctx, int errcode) { -#ifdef OPENSSL_NO_CHAIN_VERIFY + ctx->error = errcode; + ctx->current_cert = ctx->cert; + ctx->error_depth = 0; + return ctx->verify_cb(0, ctx); +} + +static int check_hosts(X509 *x, X509_VERIFY_PARAM_ID *id) +{ + int i; + int n = sk_OPENSSL_STRING_num(id->hosts); + char *name; + + if (id->peername != NULL) { + OPENSSL_free(id->peername); + id->peername = NULL; + } + for (i = 0; i < n; ++i) { + name = sk_OPENSSL_STRING_value(id->hosts, i); + if (X509_check_host(x, name, 0, id->hostflags, &id->peername) > 0) + return 1; + } + return n == 0; +} + +static int check_id(X509_STORE_CTX *ctx) +{ + X509_VERIFY_PARAM *vpm = ctx->param; + X509_VERIFY_PARAM_ID *id = vpm->id; + X509 *x = ctx->cert; + if (id->hosts && check_hosts(x, id) <= 0) { + if (!check_id_error(ctx, X509_V_ERR_HOSTNAME_MISMATCH)) + return 0; + } + if (id->email && X509_check_email(x, id->email, id->emaillen, 0) <= 0) { + if (!check_id_error(ctx, X509_V_ERR_EMAIL_MISMATCH)) + return 0; + } + if (id->ip && X509_check_ip(x, id->ip, id->iplen, 0) <= 0) { + if (!check_id_error(ctx, X509_V_ERR_IP_ADDRESS_MISMATCH)) + return 0; + } return 1; -#else +} + +static int check_trust(X509_STORE_CTX *ctx) +{ int i, ok; - X509 *x; + X509 *x = NULL; int (*cb) (int xok, X509_STORE_CTX *xctx); cb = ctx->verify_cb; -/* For now just check the last certificate in the chain */ - i = sk_X509_num(ctx->chain) - 1; - x = sk_X509_value(ctx->chain, i); - ok = X509_check_trust(x, ctx->param->trust, 0); - if (ok == X509_TRUST_TRUSTED) - return 1; - ctx->error_depth = i; - ctx->current_cert = x; - if (ok == X509_TRUST_REJECTED) - ctx->error = X509_V_ERR_CERT_REJECTED; - else - ctx->error = X509_V_ERR_CERT_UNTRUSTED; - ok = cb(0, ctx); - return ok; -#endif + /* Check all trusted certificates in chain */ + for (i = ctx->last_untrusted; i < sk_X509_num(ctx->chain); i++) { + x = sk_X509_value(ctx->chain, i); + ok = X509_check_trust(x, ctx->param->trust, 0); + /* If explicitly trusted return trusted */ + if (ok == X509_TRUST_TRUSTED) + return X509_TRUST_TRUSTED; + /* + * If explicitly rejected notify callback and reject if not + * overridden. + */ + if (ok == X509_TRUST_REJECTED) { + ctx->error_depth = i; + ctx->current_cert = x; + ctx->error = X509_V_ERR_CERT_REJECTED; + ok = cb(0, ctx); + if (!ok) + return X509_TRUST_REJECTED; + } + } + /* + * If we accept partial chains and have at least one trusted certificate + * return success. + */ + if (ctx->param->flags & X509_V_FLAG_PARTIAL_CHAIN) { + X509 *mx; + if (ctx->last_untrusted < sk_X509_num(ctx->chain)) + return X509_TRUST_TRUSTED; + x = sk_X509_value(ctx->chain, 0); + mx = lookup_cert_match(ctx, x); + if (mx) { + (void)sk_X509_set(ctx->chain, 0, mx); + X509_free(x); + ctx->last_untrusted = 0; + return X509_TRUST_TRUSTED; + } + } + + /* + * If no trusted certs in chain at all return untrusted and allow + * standard (no issuer cert) etc errors to be indicated. + */ + return X509_TRUST_UNTRUSTED; } static int check_revocation(X509_STORE_CTX *ctx) @@ -1409,6 +1552,14 @@ static int check_crl(X509_STORE_CTX *ctx, X509_CRL *crl) if (!ok) goto err; } else { + int rv; + rv = X509_CRL_check_suiteb(crl, ikey, ctx->param->flags); + if (rv != X509_V_OK) { + ctx->error = rv; + ok = ctx->verify_cb(0, ctx); + if (!ok) + goto err; + } /* Verify CRL signature */ if (X509_CRL_verify(crl, ikey) <= 0) { ctx->error = X509_V_ERR_CRL_SIGNATURE_FAILURE; @@ -1565,6 +1716,10 @@ static int internal_verify(X509_STORE_CTX *ctx) if (ctx->check_issued(ctx, xi, xi)) xs = xi; else { + if (ctx->param->flags & X509_V_FLAG_PARTIAL_CHAIN) { + xs = xi; + goto check_cert; + } if (n <= 0) { ctx->error = X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE; ctx->current_cert = xi; @@ -1610,6 +1765,7 @@ static int internal_verify(X509_STORE_CTX *ctx) xs->valid = 1; + check_cert: ok = check_cert_time(ctx, xs); if (!ok) goto end; @@ -1824,6 +1980,114 @@ int X509_get_pubkey_parameters(EVP_PKEY *pkey, STACK_OF(X509) *chain) return 1; } +/* Make a delta CRL as the diff between two full CRLs */ + +X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, + EVP_PKEY *skey, const EVP_MD *md, unsigned int flags) +{ + X509_CRL *crl = NULL; + int i; + STACK_OF(X509_REVOKED) *revs = NULL; + /* CRLs can't be delta already */ + if (base->base_crl_number || newer->base_crl_number) { + X509err(X509_F_X509_CRL_DIFF, X509_R_CRL_ALREADY_DELTA); + return NULL; + } + /* Base and new CRL must have a CRL number */ + if (!base->crl_number || !newer->crl_number) { + X509err(X509_F_X509_CRL_DIFF, X509_R_NO_CRL_NUMBER); + return NULL; + } + /* Issuer names must match */ + if (X509_NAME_cmp(X509_CRL_get_issuer(base), X509_CRL_get_issuer(newer))) { + X509err(X509_F_X509_CRL_DIFF, X509_R_ISSUER_MISMATCH); + return NULL; + } + /* AKID and IDP must match */ + if (!crl_extension_match(base, newer, NID_authority_key_identifier)) { + X509err(X509_F_X509_CRL_DIFF, X509_R_AKID_MISMATCH); + return NULL; + } + if (!crl_extension_match(base, newer, NID_issuing_distribution_point)) { + X509err(X509_F_X509_CRL_DIFF, X509_R_IDP_MISMATCH); + return NULL; + } + /* Newer CRL number must exceed full CRL number */ + if (ASN1_INTEGER_cmp(newer->crl_number, base->crl_number) <= 0) { + X509err(X509_F_X509_CRL_DIFF, X509_R_NEWER_CRL_NOT_NEWER); + return NULL; + } + /* CRLs must verify */ + if (skey && (X509_CRL_verify(base, skey) <= 0 || + X509_CRL_verify(newer, skey) <= 0)) { + X509err(X509_F_X509_CRL_DIFF, X509_R_CRL_VERIFY_FAILURE); + return NULL; + } + /* Create new CRL */ + crl = X509_CRL_new(); + if (!crl || !X509_CRL_set_version(crl, 1)) + goto memerr; + /* Set issuer name */ + if (!X509_CRL_set_issuer_name(crl, X509_CRL_get_issuer(newer))) + goto memerr; + + if (!X509_CRL_set_lastUpdate(crl, X509_CRL_get_lastUpdate(newer))) + goto memerr; + if (!X509_CRL_set_nextUpdate(crl, X509_CRL_get_nextUpdate(newer))) + goto memerr; + + /* Set base CRL number: must be critical */ + + if (!X509_CRL_add1_ext_i2d(crl, NID_delta_crl, base->crl_number, 1, 0)) + goto memerr; + + /* + * Copy extensions across from newest CRL to delta: this will set CRL + * number to correct value too. + */ + + for (i = 0; i < X509_CRL_get_ext_count(newer); i++) { + X509_EXTENSION *ext; + ext = X509_CRL_get_ext(newer, i); + if (!X509_CRL_add_ext(crl, ext, -1)) + goto memerr; + } + + /* Go through revoked entries, copying as needed */ + + revs = X509_CRL_get_REVOKED(newer); + + for (i = 0; i < sk_X509_REVOKED_num(revs); i++) { + X509_REVOKED *rvn, *rvtmp; + rvn = sk_X509_REVOKED_value(revs, i); + /* + * Add only if not also in base. TODO: need something cleverer here + * for some more complex CRLs covering multiple CAs. + */ + if (!X509_CRL_get0_by_serial(base, &rvtmp, rvn->serialNumber)) { + rvtmp = X509_REVOKED_dup(rvn); + if (!rvtmp) + goto memerr; + if (!X509_CRL_add0_revoked(crl, rvtmp)) { + X509_REVOKED_free(rvtmp); + goto memerr; + } + } + } + /* TODO: optionally prune deleted entries */ + + if (skey && md && !X509_CRL_sign(crl, skey, md)) + goto memerr; + + return crl; + + memerr: + X509err(X509_F_X509_CRL_DIFF, ERR_R_MALLOC_FAILURE); + if (crl) + X509_CRL_free(crl); + return NULL; +} + int X509_STORE_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, @@ -1874,16 +2138,9 @@ STACK_OF(X509) *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx) STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx) { - int i; - X509 *x; - STACK_OF(X509) *chain; - if (!ctx->chain || !(chain = sk_X509_dup(ctx->chain))) + if (!ctx->chain) return NULL; - for (i = 0; i < sk_X509_num(chain); i++) { - x = sk_X509_value(chain, i); - CRYPTO_add(&x->references, 1, CRYPTO_LOCK_X509); - } - return chain; + return X509_chain_up_ref(ctx->chain); } X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx) diff --git a/libs/openssl/crypto/x509/x509_vfy.h b/libs/openssl/crypto/x509/x509_vfy.h index aacdf55a..bd8613c6 100644 --- a/libs/openssl/crypto/x509/x509_vfy.h +++ b/libs/openssl/crypto/x509/x509_vfy.h @@ -156,6 +156,8 @@ typedef struct x509_lookup_method_st { X509_OBJECT *ret); } X509_LOOKUP_METHOD; +typedef struct X509_VERIFY_PARAM_ID_st X509_VERIFY_PARAM_ID; + /* * This structure hold all parameters associated with a verify operation by * including an X509_VERIFY_PARAM structure in related structures the @@ -171,6 +173,7 @@ typedef struct X509_VERIFY_PARAM_st { int trust; /* trust setting to check */ int depth; /* Verify depth */ STACK_OF(ASN1_OBJECT) *policies; /* Permissible policies */ + X509_VERIFY_PARAM_ID *id; /* opaque ID data */ } X509_VERIFY_PARAM; DECLARE_STACK_OF(X509_VERIFY_PARAM) @@ -370,6 +373,19 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); # define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53 # define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54 +/* Suite B mode algorithm violation */ +# define X509_V_ERR_SUITE_B_INVALID_VERSION 56 +# define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57 +# define X509_V_ERR_SUITE_B_INVALID_CURVE 58 +# define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59 +# define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60 +# define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61 + +/* Host, email and IP check errors */ +# define X509_V_ERR_HOSTNAME_MISMATCH 62 +# define X509_V_ERR_EMAIL_MISMATCH 63 +# define X509_V_ERR_IP_ADDRESS_MISMATCH 64 + /* The application is not happy */ # define X509_V_ERR_APPLICATION_VERIFICATION 50 @@ -405,10 +421,21 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); # define X509_V_FLAG_USE_DELTAS 0x2000 /* Check selfsigned CA signature */ # define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000 +/* Use trusted store first */ +# define X509_V_FLAG_TRUSTED_FIRST 0x8000 +/* Suite B 128 bit only mode: not normally used */ +# define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000 +/* Suite B 192 bit only mode */ +# define X509_V_FLAG_SUITEB_192_LOS 0x20000 +/* Suite B 128 bit mode allowing 192 bit algorithms */ +# define X509_V_FLAG_SUITEB_128_LOS 0x30000 + +/* Allow partial chains if at least one certificate is in trusted store */ +# define X509_V_FLAG_PARTIAL_CHAIN 0x80000 /* * If the initial chain is not trusted, do not attempt to build an alternative - * chain. Alternate chain checking was introduced in 1.0.1n/1.0.2b. Setting - * this flag will force the behaviour to match that of previous versions. + * chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag + * will force the behaviour to match that of previous versions. */ # define X509_V_FLAG_NO_ALT_CHAINS 0x100000 @@ -445,6 +472,11 @@ int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); void X509_STORE_set_verify_cb(X509_STORE *ctx, int (*verify_cb) (int, X509_STORE_CTX *)); +void X509_STORE_set_lookup_crls_cb(X509_STORE *ctx, + STACK_OF(X509_CRL) *(*cb) (X509_STORE_CTX + *ctx, + X509_NAME *nm)); + X509_STORE_CTX *X509_STORE_CTX_new(void); int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); @@ -455,6 +487,8 @@ int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); +X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx); + X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); @@ -552,9 +586,27 @@ int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, ASN1_OBJECT *policy); int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, STACK_OF(ASN1_OBJECT) *policies); + +int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen); +int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen); +void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, + unsigned int flags); +char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); +int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, + const char *email, size_t emaillen); +int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, + const unsigned char *ip, size_t iplen); +int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, + const char *ipasc); + int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); +const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_get_count(void); +const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); void X509_VERIFY_PARAM_table_cleanup(void); diff --git a/libs/openssl/crypto/x509/x509_vpm.c b/libs/openssl/crypto/x509/x509_vpm.c index 6b0bf8a6..592a8a5f 100644 --- a/libs/openssl/crypto/x509/x509_vpm.c +++ b/libs/openssl/crypto/x509/x509_vpm.c @@ -66,10 +66,73 @@ #include #include +#include "vpm_int.h" + /* X509_VERIFY_PARAM functions */ +#define SET_HOST 0 +#define ADD_HOST 1 + +static char *str_copy(const char *s) +{ + return OPENSSL_strdup(s); +} + +static void str_free(char *s) +{ + OPENSSL_free(s); +} + +#define string_stack_free(sk) sk_OPENSSL_STRING_pop_free(sk, str_free) + +static int int_x509_param_set_hosts(X509_VERIFY_PARAM_ID *id, int mode, + const char *name, size_t namelen) +{ + char *copy; + + /* + * Refuse names with embedded NUL bytes, except perhaps as final byte. + * XXX: Do we need to push an error onto the error stack? + */ + if (namelen == 0) + namelen = name ? strlen(name) : 0; + else if (name && memchr(name, '\0', namelen > 1 ? namelen - 1 : namelen)) + return 0; + if (name && name[namelen - 1] == '\0') + --namelen; + + if (mode == SET_HOST && id->hosts) { + string_stack_free(id->hosts); + id->hosts = NULL; + } + if (name == NULL || namelen == 0) + return 1; + + copy = BUF_strndup(name, namelen); + if (copy == NULL) + return 0; + + if (id->hosts == NULL && + (id->hosts = sk_OPENSSL_STRING_new_null()) == NULL) { + OPENSSL_free(copy); + return 0; + } + + if (!sk_OPENSSL_STRING_push(id->hosts, copy)) { + OPENSSL_free(copy); + if (sk_OPENSSL_STRING_num(id->hosts) == 0) { + sk_OPENSSL_STRING_free(id->hosts); + id->hosts = NULL; + } + return 0; + } + + return 1; +} + static void x509_verify_param_zero(X509_VERIFY_PARAM *param) { + X509_VERIFY_PARAM_ID *paramid; if (!param) return; param->name = NULL; @@ -85,15 +148,49 @@ static void x509_verify_param_zero(X509_VERIFY_PARAM *param) sk_ASN1_OBJECT_pop_free(param->policies, ASN1_OBJECT_free); param->policies = NULL; } + paramid = param->id; + if (paramid->hosts) { + string_stack_free(paramid->hosts); + paramid->hosts = NULL; + } + if (paramid->peername) + OPENSSL_free(paramid->peername); + paramid->peername = NULL; + if (paramid->email) { + OPENSSL_free(paramid->email); + paramid->email = NULL; + paramid->emaillen = 0; + } + if (paramid->ip) { + OPENSSL_free(paramid->ip); + paramid->ip = NULL; + paramid->iplen = 0; + } } X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void) { X509_VERIFY_PARAM *param; - param = OPENSSL_malloc(sizeof(X509_VERIFY_PARAM)); + X509_VERIFY_PARAM_ID *paramid; + + param = OPENSSL_malloc(sizeof *param); if (!param) return NULL; - memset(param, 0, sizeof(X509_VERIFY_PARAM)); + memset(param, 0, sizeof(*param)); + + paramid = OPENSSL_malloc(sizeof(*paramid)); + if (!paramid) { + OPENSSL_free(param); + return NULL; + } + memset(paramid, 0, sizeof(*paramid)); + /* Exotic platforms may have non-zero bit representation of NULL */ + paramid->hosts = NULL; + paramid->peername = NULL; + paramid->email = NULL; + paramid->ip = NULL; + + param->id = paramid; x509_verify_param_zero(param); return param; } @@ -103,6 +200,7 @@ void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param) if (param == NULL) return; x509_verify_param_zero(param); + OPENSSL_free(param->id); OPENSSL_free(param); } @@ -144,6 +242,11 @@ void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param) (to_overwrite || \ ((src->field != def) && (to_default || (dest->field == def)))) +/* As above but for ID fields */ + +#define test_x509_verify_param_copy_id(idf, def) \ + test_x509_verify_param_copy(id->idf, def) + /* Macro to test and copy a field if necessary */ #define x509_verify_param_copy(field, def) \ @@ -155,8 +258,10 @@ int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *dest, { unsigned long inh_flags; int to_default, to_overwrite; + X509_VERIFY_PARAM_ID *id; if (!src) return 1; + id = src->id; inh_flags = dest->inh_flags | src->inh_flags; if (inh_flags & X509_VP_FLAG_ONCE) @@ -197,6 +302,31 @@ int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *dest, return 0; } + /* Copy the host flags if and only if we're copying the host list */ + if (test_x509_verify_param_copy_id(hosts, NULL)) { + if (dest->id->hosts) { + string_stack_free(dest->id->hosts); + dest->id->hosts = NULL; + } + if (id->hosts) { + dest->id->hosts = + sk_OPENSSL_STRING_deep_copy(id->hosts, str_copy, str_free); + if (dest->id->hosts == NULL) + return 0; + dest->id->hostflags = id->hostflags; + } + } + + if (test_x509_verify_param_copy_id(email, NULL)) { + if (!X509_VERIFY_PARAM_set1_email(dest, id->email, id->emaillen)) + return 0; + } + + if (test_x509_verify_param_copy_id(ip, NULL)) { + if (!X509_VERIFY_PARAM_set1_ip(dest, id->ip, id->iplen)) + return 0; + } + return 1; } @@ -211,6 +341,30 @@ int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, return ret; } +static int int_x509_param_set1(char **pdest, size_t *pdestlen, + const char *src, size_t srclen) +{ + void *tmp; + if (src) { + if (srclen == 0) { + tmp = BUF_strdup(src); + srclen = strlen(src); + } else + tmp = BUF_memdup(src, srclen); + if (!tmp) + return 0; + } else { + tmp = NULL; + srclen = 0; + } + if (*pdest) + OPENSSL_free(*pdest); + *pdest = tmp; + if (pdestlen) + *pdestlen = srclen; + return 1; +} + int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name) { if (param->name) @@ -308,11 +462,70 @@ int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, return 1; } +int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen) +{ + return int_x509_param_set_hosts(param->id, SET_HOST, name, namelen); +} + +int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen) +{ + return int_x509_param_set_hosts(param->id, ADD_HOST, name, namelen); +} + +void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, + unsigned int flags) +{ + param->id->hostflags = flags; +} + +char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *param) +{ + return param->id->peername; +} + +int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, + const char *email, size_t emaillen) +{ + return int_x509_param_set1(¶m->id->email, ¶m->id->emaillen, + email, emaillen); +} + +int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, + const unsigned char *ip, size_t iplen) +{ + if (iplen != 0 && iplen != 4 && iplen != 16) + return 0; + return int_x509_param_set1((char **)¶m->id->ip, ¶m->id->iplen, + (char *)ip, iplen); +} + +int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, const char *ipasc) +{ + unsigned char ipout[16]; + size_t iplen; + + iplen = (size_t)a2i_ipadd(ipout, ipasc); + if (iplen == 0) + return 0; + return X509_VERIFY_PARAM_set1_ip(param, ipout, iplen); +} + int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param) { return param->depth; } +const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param) +{ + return param->name; +} + +static X509_VERIFY_PARAM_ID _empty_id = { NULL, 0U, NULL, NULL, 0, NULL, 0 }; + +#define vpm_empty_id (X509_VERIFY_PARAM_ID *)&_empty_id + /* * Default verify parameters: these are used for various applications and can * be overridden by the user specified table. NB: the 'name' field *must* be @@ -328,8 +541,8 @@ static const X509_VERIFY_PARAM default_table[] = { 0, /* purpose */ 0, /* trust */ 100, /* depth */ - NULL /* policies */ - }, + NULL, /* policies */ + vpm_empty_id}, { "pkcs7", /* S/MIME sign parameters */ 0, /* Check time */ @@ -338,8 +551,8 @@ static const X509_VERIFY_PARAM default_table[] = { X509_PURPOSE_SMIME_SIGN, /* purpose */ X509_TRUST_EMAIL, /* trust */ -1, /* depth */ - NULL /* policies */ - }, + NULL, /* policies */ + vpm_empty_id}, { "smime_sign", /* S/MIME sign parameters */ 0, /* Check time */ @@ -348,8 +561,8 @@ static const X509_VERIFY_PARAM default_table[] = { X509_PURPOSE_SMIME_SIGN, /* purpose */ X509_TRUST_EMAIL, /* trust */ -1, /* depth */ - NULL /* policies */ - }, + NULL, /* policies */ + vpm_empty_id}, { "ssl_client", /* SSL/TLS client parameters */ 0, /* Check time */ @@ -358,8 +571,8 @@ static const X509_VERIFY_PARAM default_table[] = { X509_PURPOSE_SSL_CLIENT, /* purpose */ X509_TRUST_SSL_CLIENT, /* trust */ -1, /* depth */ - NULL /* policies */ - }, + NULL, /* policies */ + vpm_empty_id}, { "ssl_server", /* SSL/TLS server parameters */ 0, /* Check time */ @@ -368,8 +581,8 @@ static const X509_VERIFY_PARAM default_table[] = { X509_PURPOSE_SSL_SERVER, /* purpose */ X509_TRUST_SSL_SERVER, /* trust */ -1, /* depth */ - NULL /* policies */ - } + NULL, /* policies */ + vpm_empty_id} }; static STACK_OF(X509_VERIFY_PARAM) *param_table = NULL; @@ -409,6 +622,22 @@ int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param) return 1; } +int X509_VERIFY_PARAM_get_count(void) +{ + int num = sizeof(default_table) / sizeof(X509_VERIFY_PARAM); + if (param_table) + num += sk_X509_VERIFY_PARAM_num(param_table); + return num; +} + +const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id) +{ + int num = sizeof(default_table) / sizeof(X509_VERIFY_PARAM); + if (id < num) + return default_table + id; + return sk_X509_VERIFY_PARAM_value(param_table, id - num); +} + const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name) { int idx; diff --git a/libs/openssl/crypto/x509/x_all.c b/libs/openssl/crypto/x509/x_all.c index 43152e93..0f26c546 100644 --- a/libs/openssl/crypto/x509/x_all.c +++ b/libs/openssl/crypto/x509/x_all.c @@ -63,6 +63,7 @@ #include #include #include +#include #ifndef OPENSSL_NO_RSA # include #endif @@ -105,6 +106,12 @@ int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx) x->sig_alg, x->signature, x->cert_info, ctx); } +int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert) +{ + return OCSP_REQ_CTX_nbio_d2i(rctx, + (ASN1_VALUE **)pcert, ASN1_ITEM_rptr(X509)); +} + int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md) { return (ASN1_item_sign(ASN1_ITEM_rptr(X509_REQ_INFO), x->sig_alg, NULL, @@ -133,6 +140,13 @@ int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx) x->crl, ctx); } +int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl) +{ + return OCSP_REQ_CTX_nbio_d2i(rctx, + (ASN1_VALUE **)pcrl, + ASN1_ITEM_rptr(X509_CRL)); +} + int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md) { return (ASN1_item_sign(ASN1_ITEM_rptr(NETSCAPE_SPKAC), x->sig_algor, NULL, diff --git a/libs/openssl/crypto/x509v3/ext_dat.h b/libs/openssl/crypto/x509v3/ext_dat.h index 136b1f8e..c3a6fce7 100644 --- a/libs/openssl/crypto/x509v3/ext_dat.h +++ b/libs/openssl/crypto/x509v3/ext_dat.h @@ -69,6 +69,7 @@ extern X509V3_EXT_METHOD v3_crl_hold, v3_pci; extern X509V3_EXT_METHOD v3_policy_mappings, v3_policy_constraints; extern X509V3_EXT_METHOD v3_name_constraints, v3_inhibit_anyp, v3_idp; extern X509V3_EXT_METHOD v3_addr, v3_asid; +extern X509V3_EXT_METHOD v3_ct_scts[]; /* * This table will be searched using OBJ_bsearch so it *must* kept in order @@ -126,6 +127,8 @@ static const X509V3_EXT_METHOD *standard_exts[] = { &v3_idp, &v3_alt[2], &v3_freshest_crl, + &v3_ct_scts[0], + &v3_ct_scts[1], }; /* Number of standard extensions */ diff --git a/libs/openssl/crypto/x509v3/v3_cpols.c b/libs/openssl/crypto/x509v3/v3_cpols.c index 0febc1b3..d97f6226 100644 --- a/libs/openssl/crypto/x509v3/v3_cpols.c +++ b/libs/openssl/crypto/x509v3/v3_cpols.c @@ -186,6 +186,10 @@ static STACK_OF(POLICYINFO) *r2i_certpol(X509V3_EXT_METHOD *method, goto err; } pol = POLICYINFO_new(); + if (pol == NULL) { + X509V3err(X509V3_F_R2I_CERTPOL, ERR_R_MALLOC_FAILURE); + goto err; + } pol->policyid = pobj; } if (!sk_POLICYINFO_push(pols, pol)) { diff --git a/libs/openssl/crypto/x509v3/v3_lib.c b/libs/openssl/crypto/x509v3/v3_lib.c index b5598c9a..8350429a 100644 --- a/libs/openssl/crypto/x509v3/v3_lib.c +++ b/libs/openssl/crypto/x509v3/v3_lib.c @@ -122,6 +122,28 @@ const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext) return X509V3_EXT_get_nid(nid); } +int X509V3_EXT_free(int nid, void *ext_data) +{ + const X509V3_EXT_METHOD *ext_method = X509V3_EXT_get_nid(nid); + if (ext_method == NULL) { + X509V3err(X509V3_F_X509V3_EXT_FREE, + X509V3_R_CANNOT_FIND_FREE_FUNCTION); + return 0; + } + + if (ext_method->it != NULL) + ASN1_item_free(ext_data, ASN1_ITEM_ptr(ext_method->it)); + else if (ext_method->ext_free != NULL) + ext_method->ext_free(ext_data); + else { + X509V3err(X509V3_F_X509V3_EXT_FREE, + X509V3_R_CANNOT_FIND_FREE_FUNCTION); + return 0; + } + + return 1; +} + int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist) { for (; extlist->ext_nid != -1; extlist++) diff --git a/libs/openssl/crypto/x509v3/v3_ncons.c b/libs/openssl/crypto/x509v3/v3_ncons.c index b97ed271..28552696 100644 --- a/libs/openssl/crypto/x509v3/v3_ncons.c +++ b/libs/openssl/crypto/x509v3/v3_ncons.c @@ -132,6 +132,8 @@ static void *v2i_NAME_CONSTRAINTS(const X509V3_EXT_METHOD *method, } tval.value = val->value; sub = GENERAL_SUBTREE_new(); + if (sub == NULL) + goto memerr; if (!v2i_GENERAL_NAME_ex(sub->base, method, ctx, &tval, 1)) goto err; if (!*ptree) diff --git a/libs/openssl/crypto/x509v3/v3_pci.c b/libs/openssl/crypto/x509v3/v3_pci.c index fe0d8063..48ac0959 100644 --- a/libs/openssl/crypto/x509v3/v3_pci.c +++ b/libs/openssl/crypto/x509v3/v3_pci.c @@ -3,7 +3,7 @@ * Contributed to the OpenSSL Project 2004 by Richard Levitte * (richard@levitte.org) */ -/* Copyright (c) 2004 Kungliga Tekniska Högskolan +/* Copyright (c) 2004 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * diff --git a/libs/openssl/crypto/x509v3/v3_pcia.c b/libs/openssl/crypto/x509v3/v3_pcia.c index 350b3988..43fd362a 100644 --- a/libs/openssl/crypto/x509v3/v3_pcia.c +++ b/libs/openssl/crypto/x509v3/v3_pcia.c @@ -3,7 +3,7 @@ * Contributed to the OpenSSL Project 2004 by Richard Levitte * (richard@levitte.org) */ -/* Copyright (c) 2004 Kungliga Tekniska Högskolan +/* Copyright (c) 2004 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * diff --git a/libs/openssl/crypto/x509v3/v3_purp.c b/libs/openssl/crypto/x509v3/v3_purp.c index 0d9bc58c..845be673 100644 --- a/libs/openssl/crypto/x509v3/v3_purp.c +++ b/libs/openssl/crypto/x509v3/v3_purp.c @@ -380,6 +380,14 @@ static void setup_crldp(X509 *x) setup_dp(x, sk_DIST_POINT_value(x->crldp, i)); } +#define V1_ROOT (EXFLAG_V1|EXFLAG_SS) +#define ku_reject(x, usage) \ + (((x)->ex_flags & EXFLAG_KUSAGE) && !((x)->ex_kusage & (usage))) +#define xku_reject(x, usage) \ + (((x)->ex_flags & EXFLAG_XKUSAGE) && !((x)->ex_xkusage & (usage))) +#define ns_reject(x, usage) \ + (((x)->ex_flags & EXFLAG_NSCERT) && !((x)->ex_nscert & (usage))) + static void x509v3_cache_extensions(X509 *x) { BASIC_CONSTRAINTS *bs; @@ -395,9 +403,6 @@ static void x509v3_cache_extensions(X509 *x) #ifndef OPENSSL_NO_SHA X509_digest(x, EVP_sha1(), x->sha1_hash, NULL); #endif - /* Does subject name match issuer ? */ - if (!X509_NAME_cmp(X509_get_subject_name(x), X509_get_issuer_name(x))) - x->ex_flags |= EXFLAG_SI; /* V1 should mean no extensions ... */ if (!X509_get_version(x)) x->ex_flags |= EXFLAG_V1; @@ -479,6 +484,10 @@ static void x509v3_cache_extensions(X509 *x) case NID_dvcs: x->ex_xkusage |= XKU_DVCS; break; + + case NID_anyExtendedKeyUsage: + x->ex_xkusage |= XKU_ANYEKU; + break; } } sk_ASN1_OBJECT_pop_free(extusage, ASN1_OBJECT_free); @@ -494,6 +503,14 @@ static void x509v3_cache_extensions(X509 *x) } x->skid = X509_get_ext_d2i(x, NID_subject_key_identifier, NULL, NULL); x->akid = X509_get_ext_d2i(x, NID_authority_key_identifier, NULL, NULL); + /* Does subject name match issuer ? */ + if (!X509_NAME_cmp(X509_get_subject_name(x), X509_get_issuer_name(x))) { + x->ex_flags |= EXFLAG_SI; + /* If SKID matches AKID also indicate self signed */ + if (X509_check_akid(x, x->akid) == X509_V_OK && + !ku_reject(x, KU_KEY_CERT_SIGN)) + x->ex_flags |= EXFLAG_SS; + } x->altname = X509_get_ext_d2i(x, NID_subject_alt_name, NULL, NULL); x->nc = X509_get_ext_d2i(x, NID_name_constraints, &i, NULL); if (!x->nc && (i != -1)) @@ -530,14 +547,6 @@ static void x509v3_cache_extensions(X509 *x) * 4 basicConstraints absent but keyUsage present and keyCertSign asserted. */ -#define V1_ROOT (EXFLAG_V1|EXFLAG_SS) -#define ku_reject(x, usage) \ - (((x)->ex_flags & EXFLAG_KUSAGE) && !((x)->ex_kusage & (usage))) -#define xku_reject(x, usage) \ - (((x)->ex_flags & EXFLAG_XKUSAGE) && !((x)->ex_xkusage & (usage))) -#define ns_reject(x, usage) \ - (((x)->ex_flags & EXFLAG_NSCERT) && !((x)->ex_nscert & (usage))) - static int check_ca(const X509 *x) { /* keyUsage if present should allow cert signing */ @@ -598,8 +607,8 @@ static int check_purpose_ssl_client(const X509_PURPOSE *xp, const X509 *x, return 0; if (ca) return check_ssl_ca(x); - /* We need to do digital signatures with it */ - if (ku_reject(x, KU_DIGITAL_SIGNATURE)) + /* We need to do digital signatures or key agreement */ + if (ku_reject(x, KU_DIGITAL_SIGNATURE | KU_KEY_AGREEMENT)) return 0; /* nsCertType if present should allow SSL client use */ if (ns_reject(x, NS_SSL_CLIENT)) @@ -607,6 +616,14 @@ static int check_purpose_ssl_client(const X509_PURPOSE *xp, const X509 *x, return 1; } +/* + * Key usage needed for TLS/SSL server: digital signature, encipherment or + * key agreement. The ssl code can check this more thoroughly for individual + * key types. + */ +#define KU_TLS \ + KU_DIGITAL_SIGNATURE|KU_KEY_ENCIPHERMENT|KU_KEY_AGREEMENT + static int check_purpose_ssl_server(const X509_PURPOSE *xp, const X509 *x, int ca) { @@ -617,8 +634,7 @@ static int check_purpose_ssl_server(const X509_PURPOSE *xp, const X509 *x, if (ns_reject(x, NS_SSL_SERVER)) return 0; - /* Now as for keyUsage: we'll at least need to sign OR encipher */ - if (ku_reject(x, KU_DIGITAL_SIGNATURE | KU_KEY_ENCIPHERMENT)) + if (ku_reject(x, KU_TLS)) return 0; return 1; diff --git a/libs/openssl/crypto/x509v3/v3_scts.c b/libs/openssl/crypto/x509v3/v3_scts.c new file mode 100644 index 00000000..0b7c6818 --- /dev/null +++ b/libs/openssl/crypto/x509v3/v3_scts.c @@ -0,0 +1,334 @@ +/* v3_scts.c */ +/* + * Written by Rob Stradling (rob@comodo.com) for the OpenSSL project 2014. + */ +/* ==================================================================== + * Copyright (c) 2014 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#include +#include "cryptlib.h" +#include +#include + +/* Signature and hash algorithms from RFC 5246 */ +#define TLSEXT_hash_sha256 4 + +#define TLSEXT_signature_rsa 1 +#define TLSEXT_signature_ecdsa 3 + + +#define n2s(c,s) ((s=(((unsigned int)(c[0]))<< 8)| \ + (((unsigned int)(c[1])) )),c+=2) + +#if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__) +# define SCT_TIMESTAMP unsigned __int64 +#elif defined(__arch64__) +# define SCT_TIMESTAMP unsigned long +#else +# define SCT_TIMESTAMP unsigned long long +#endif + +#define n2l8(c,l) (l =((SCT_TIMESTAMP)(*((c)++)))<<56, \ + l|=((SCT_TIMESTAMP)(*((c)++)))<<48, \ + l|=((SCT_TIMESTAMP)(*((c)++)))<<40, \ + l|=((SCT_TIMESTAMP)(*((c)++)))<<32, \ + l|=((SCT_TIMESTAMP)(*((c)++)))<<24, \ + l|=((SCT_TIMESTAMP)(*((c)++)))<<16, \ + l|=((SCT_TIMESTAMP)(*((c)++)))<< 8, \ + l|=((SCT_TIMESTAMP)(*((c)++)))) + +typedef struct SCT_st { + /* The encoded SCT */ + unsigned char *sct; + unsigned short sctlen; + /* + * Components of the SCT. "logid", "ext" and "sig" point to addresses + * inside "sct". + */ + unsigned char version; + unsigned char *logid; + unsigned short logidlen; + SCT_TIMESTAMP timestamp; + unsigned char *ext; + unsigned short extlen; + unsigned char hash_alg; + unsigned char sig_alg; + unsigned char *sig; + unsigned short siglen; +} SCT; + +DECLARE_STACK_OF(SCT) + +static void SCT_LIST_free(STACK_OF(SCT) *a); +static STACK_OF(SCT) *d2i_SCT_LIST(STACK_OF(SCT) **a, + const unsigned char **pp, long length); +static int i2r_SCT_LIST(X509V3_EXT_METHOD *method, STACK_OF(SCT) *sct_list, + BIO *out, int indent); + +const X509V3_EXT_METHOD v3_ct_scts[] = { + {NID_ct_precert_scts, 0, NULL, + 0, (X509V3_EXT_FREE)SCT_LIST_free, + (X509V3_EXT_D2I)d2i_SCT_LIST, 0, + 0, 0, 0, 0, + (X509V3_EXT_I2R)i2r_SCT_LIST, 0, + NULL}, + + {NID_ct_cert_scts, 0, NULL, + 0, (X509V3_EXT_FREE)SCT_LIST_free, + (X509V3_EXT_D2I)d2i_SCT_LIST, 0, + 0, 0, 0, 0, + (X509V3_EXT_I2R)i2r_SCT_LIST, 0, + NULL}, +}; + +static void tls12_signature_print(BIO *out, const unsigned char hash_alg, + const unsigned char sig_alg) +{ + int nid = NID_undef; + /* RFC6962 only permits two signature algorithms */ + if (hash_alg == TLSEXT_hash_sha256) { + if (sig_alg == TLSEXT_signature_rsa) + nid = NID_sha256WithRSAEncryption; + else if (sig_alg == TLSEXT_signature_ecdsa) + nid = NID_ecdsa_with_SHA256; + } + if (nid == NID_undef) + BIO_printf(out, "%02X%02X", hash_alg, sig_alg); + else + BIO_printf(out, "%s", OBJ_nid2ln(nid)); +} + +static void timestamp_print(BIO *out, SCT_TIMESTAMP timestamp) +{ + ASN1_GENERALIZEDTIME *gen; + char genstr[20]; + gen = ASN1_GENERALIZEDTIME_new(); + ASN1_GENERALIZEDTIME_adj(gen, (time_t)0, + (int)(timestamp / 86400000), + (timestamp % 86400000) / 1000); + /* + * Note GeneralizedTime from ASN1_GENERALIZETIME_adj is always 15 + * characters long with a final Z. Update it with fractional seconds. + */ + BIO_snprintf(genstr, sizeof(genstr), "%.14s.%03dZ", + ASN1_STRING_data(gen), (unsigned int)(timestamp % 1000)); + ASN1_GENERALIZEDTIME_set_string(gen, genstr); + ASN1_GENERALIZEDTIME_print(out, gen); + ASN1_GENERALIZEDTIME_free(gen); +} + +static void SCT_free(SCT *sct) +{ + if (sct) { + if (sct->sct) + OPENSSL_free(sct->sct); + OPENSSL_free(sct); + } +} + +static void SCT_LIST_free(STACK_OF(SCT) *a) +{ + sk_SCT_pop_free(a, SCT_free); +} + +static STACK_OF(SCT) *d2i_SCT_LIST(STACK_OF(SCT) **a, + const unsigned char **pp, long length) +{ + ASN1_OCTET_STRING *oct = NULL; + STACK_OF(SCT) *sk = NULL; + SCT *sct; + unsigned char *p, *p2; + unsigned short listlen, sctlen = 0, fieldlen; + const unsigned char *q = *pp; + + if (d2i_ASN1_OCTET_STRING(&oct, &q, length) == NULL) + return NULL; + if (oct->length < 2) + goto done; + p = oct->data; + n2s(p, listlen); + if (listlen != oct->length - 2) + goto done; + + if ((sk = sk_SCT_new_null()) == NULL) + goto done; + + while (listlen > 0) { + if (listlen < 2) + goto err; + n2s(p, sctlen); + listlen -= 2; + + if ((sctlen < 1) || (sctlen > listlen)) + goto err; + listlen -= sctlen; + + sct = OPENSSL_malloc(sizeof(SCT)); + if (!sct) + goto err; + if (!sk_SCT_push(sk, sct)) { + OPENSSL_free(sct); + goto err; + } + + sct->sct = OPENSSL_malloc(sctlen); + if (!sct->sct) + goto err; + memcpy(sct->sct, p, sctlen); + sct->sctlen = sctlen; + p += sctlen; + p2 = sct->sct; + + sct->version = *p2++; + if (sct->version == 0) { /* SCT v1 */ + /*- + * Fixed-length header: + * struct { + * (1 byte) Version sct_version; + * (32 bytes) LogID id; + * (8 bytes) uint64 timestamp; + * (2 bytes + ?) CtExtensions extensions; + */ + if (sctlen < 43) + goto err; + sctlen -= 43; + + sct->logid = p2; + sct->logidlen = 32; + p2 += 32; + + n2l8(p2, sct->timestamp); + + n2s(p2, fieldlen); + if (sctlen < fieldlen) + goto err; + sct->ext = p2; + sct->extlen = fieldlen; + p2 += fieldlen; + sctlen -= fieldlen; + + /*- + * digitally-signed struct header: + * (1 byte) Hash algorithm + * (1 byte) Signature algorithm + * (2 bytes + ?) Signature + */ + if (sctlen < 4) + goto err; + sctlen -= 4; + + sct->hash_alg = *p2++; + sct->sig_alg = *p2++; + n2s(p2, fieldlen); + if (sctlen != fieldlen) + goto err; + sct->sig = p2; + sct->siglen = fieldlen; + } + } + + done: + ASN1_OCTET_STRING_free(oct); + *pp = q; + return sk; + + err: + SCT_LIST_free(sk); + sk = NULL; + goto done; +} + +static int i2r_SCT_LIST(X509V3_EXT_METHOD *method, STACK_OF(SCT) *sct_list, + BIO *out, int indent) +{ + SCT *sct; + int i; + + for (i = 0; i < sk_SCT_num(sct_list);) { + sct = sk_SCT_value(sct_list, i); + + BIO_printf(out, "%*sSigned Certificate Timestamp:", indent, ""); + BIO_printf(out, "\n%*sVersion : ", indent + 4, ""); + + if (sct->version == 0) { /* SCT v1 */ + BIO_printf(out, "v1(0)"); + + BIO_printf(out, "\n%*sLog ID : ", indent + 4, ""); + BIO_hex_string(out, indent + 16, 16, sct->logid, sct->logidlen); + + BIO_printf(out, "\n%*sTimestamp : ", indent + 4, ""); + timestamp_print(out, sct->timestamp); + + BIO_printf(out, "\n%*sExtensions: ", indent + 4, ""); + if (sct->extlen == 0) + BIO_printf(out, "none"); + else + BIO_hex_string(out, indent + 16, 16, sct->ext, sct->extlen); + + BIO_printf(out, "\n%*sSignature : ", indent + 4, ""); + tls12_signature_print(out, sct->hash_alg, sct->sig_alg); + BIO_printf(out, "\n%*s ", indent + 4, ""); + BIO_hex_string(out, indent + 16, 16, sct->sig, sct->siglen); + } else { /* Unknown version */ + + BIO_printf(out, "unknown\n%*s", indent + 16, ""); + BIO_hex_string(out, indent + 16, 16, sct->sct, sct->sctlen); + } + + if (++i < sk_SCT_num(sct_list)) + BIO_printf(out, "\n"); + } + + return 1; +} diff --git a/libs/openssl/crypto/x509v3/v3_utl.c b/libs/openssl/crypto/x509v3/v3_utl.c index 94aaebba..4d1ecc58 100644 --- a/libs/openssl/crypto/x509v3/v3_utl.c +++ b/libs/openssl/crypto/x509v3/v3_utl.c @@ -632,6 +632,437 @@ void X509_email_free(STACK_OF(OPENSSL_STRING) *sk) sk_OPENSSL_STRING_pop_free(sk, str_free); } +typedef int (*equal_fn) (const unsigned char *pattern, size_t pattern_len, + const unsigned char *subject, size_t subject_len, + unsigned int flags); + +/* Skip pattern prefix to match "wildcard" subject */ +static void skip_prefix(const unsigned char **p, size_t *plen, + const unsigned char *subject, size_t subject_len, + unsigned int flags) +{ + const unsigned char *pattern = *p; + size_t pattern_len = *plen; + + /* + * If subject starts with a leading '.' followed by more octets, and + * pattern is longer, compare just an equal-length suffix with the + * full subject (starting at the '.'), provided the prefix contains + * no NULs. + */ + if ((flags & _X509_CHECK_FLAG_DOT_SUBDOMAINS) == 0) + return; + + while (pattern_len > subject_len && *pattern) { + if ((flags & X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS) && + *pattern == '.') + break; + ++pattern; + --pattern_len; + } + + /* Skip if entire prefix acceptable */ + if (pattern_len == subject_len) { + *p = pattern; + *plen = pattern_len; + } +} + +/* Compare while ASCII ignoring case. */ +static int equal_nocase(const unsigned char *pattern, size_t pattern_len, + const unsigned char *subject, size_t subject_len, + unsigned int flags) +{ + skip_prefix(&pattern, &pattern_len, subject, subject_len, flags); + if (pattern_len != subject_len) + return 0; + while (pattern_len) { + unsigned char l = *pattern; + unsigned char r = *subject; + /* The pattern must not contain NUL characters. */ + if (l == 0) + return 0; + if (l != r) { + if ('A' <= l && l <= 'Z') + l = (l - 'A') + 'a'; + if ('A' <= r && r <= 'Z') + r = (r - 'A') + 'a'; + if (l != r) + return 0; + } + ++pattern; + ++subject; + --pattern_len; + } + return 1; +} + +/* Compare using memcmp. */ +static int equal_case(const unsigned char *pattern, size_t pattern_len, + const unsigned char *subject, size_t subject_len, + unsigned int flags) +{ + skip_prefix(&pattern, &pattern_len, subject, subject_len, flags); + if (pattern_len != subject_len) + return 0; + return !memcmp(pattern, subject, pattern_len); +} + +/* + * RFC 5280, section 7.5, requires that only the domain is compared in a + * case-insensitive manner. + */ +static int equal_email(const unsigned char *a, size_t a_len, + const unsigned char *b, size_t b_len, + unsigned int unused_flags) +{ + size_t i = a_len; + if (a_len != b_len) + return 0; + /* + * We search backwards for the '@' character, so that we do not have to + * deal with quoted local-parts. The domain part is compared in a + * case-insensitive manner. + */ + while (i > 0) { + --i; + if (a[i] == '@' || b[i] == '@') { + if (!equal_nocase(a + i, a_len - i, b + i, a_len - i, 0)) + return 0; + break; + } + } + if (i == 0) + i = a_len; + return equal_case(a, i, b, i, 0); +} + +/* + * Compare the prefix and suffix with the subject, and check that the + * characters in-between are valid. + */ +static int wildcard_match(const unsigned char *prefix, size_t prefix_len, + const unsigned char *suffix, size_t suffix_len, + const unsigned char *subject, size_t subject_len, + unsigned int flags) +{ + const unsigned char *wildcard_start; + const unsigned char *wildcard_end; + const unsigned char *p; + int allow_multi = 0; + int allow_idna = 0; + + if (subject_len < prefix_len + suffix_len) + return 0; + if (!equal_nocase(prefix, prefix_len, subject, prefix_len, flags)) + return 0; + wildcard_start = subject + prefix_len; + wildcard_end = subject + (subject_len - suffix_len); + if (!equal_nocase(wildcard_end, suffix_len, suffix, suffix_len, flags)) + return 0; + /* + * If the wildcard makes up the entire first label, it must match at + * least one character. + */ + if (prefix_len == 0 && *suffix == '.') { + if (wildcard_start == wildcard_end) + return 0; + allow_idna = 1; + if (flags & X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS) + allow_multi = 1; + } + /* IDNA labels cannot match partial wildcards */ + if (!allow_idna && + subject_len >= 4 && strncasecmp((char *)subject, "xn--", 4) == 0) + return 0; + /* The wildcard may match a literal '*' */ + if (wildcard_end == wildcard_start + 1 && *wildcard_start == '*') + return 1; + /* + * Check that the part matched by the wildcard contains only + * permitted characters and only matches a single label unless + * allow_multi is set. + */ + for (p = wildcard_start; p != wildcard_end; ++p) + if (!(('0' <= *p && *p <= '9') || + ('A' <= *p && *p <= 'Z') || + ('a' <= *p && *p <= 'z') || + *p == '-' || (allow_multi && *p == '.'))) + return 0; + return 1; +} + +#define LABEL_START (1 << 0) +#define LABEL_END (1 << 1) +#define LABEL_HYPHEN (1 << 2) +#define LABEL_IDNA (1 << 3) + +static const unsigned char *valid_star(const unsigned char *p, size_t len, + unsigned int flags) +{ + const unsigned char *star = 0; + size_t i; + int state = LABEL_START; + int dots = 0; + for (i = 0; i < len; ++i) { + /* + * Locate first and only legal wildcard, either at the start + * or end of a non-IDNA first and not final label. + */ + if (p[i] == '*') { + int atstart = (state & LABEL_START); + int atend = (i == len - 1 || p[i + 1] == '.'); + /*- + * At most one wildcard per pattern. + * No wildcards in IDNA labels. + * No wildcards after the first label. + */ + if (star != NULL || (state & LABEL_IDNA) != 0 || dots) + return NULL; + /* Only full-label '*.example.com' wildcards? */ + if ((flags & X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS) + && (!atstart || !atend)) + return NULL; + /* No 'foo*bar' wildcards */ + if (!atstart && !atend) + return NULL; + star = &p[i]; + state &= ~LABEL_START; + } else if (('a' <= p[i] && p[i] <= 'z') + || ('A' <= p[i] && p[i] <= 'Z') + || ('0' <= p[i] && p[i] <= '9')) { + if ((state & LABEL_START) != 0 + && len - i >= 4 && strncasecmp((char *)&p[i], "xn--", 4) == 0) + state |= LABEL_IDNA; + state &= ~(LABEL_HYPHEN | LABEL_START); + } else if (p[i] == '.') { + if ((state & (LABEL_HYPHEN | LABEL_START)) != 0) + return NULL; + state = LABEL_START; + ++dots; + } else if (p[i] == '-') { + if ((state & LABEL_HYPHEN) != 0) + return NULL; + state |= LABEL_HYPHEN; + } else + return NULL; + } + + /* + * The final label must not end in a hyphen or ".", and + * there must be at least two dots after the star. + */ + if ((state & (LABEL_START | LABEL_HYPHEN)) != 0 || dots < 2) + return NULL; + return star; +} + +/* Compare using wildcards. */ +static int equal_wildcard(const unsigned char *pattern, size_t pattern_len, + const unsigned char *subject, size_t subject_len, + unsigned int flags) +{ + const unsigned char *star = NULL; + + /* + * Subject names starting with '.' can only match a wildcard pattern + * via a subject sub-domain pattern suffix match. + */ + if (!(subject_len > 1 && subject[0] == '.')) + star = valid_star(pattern, pattern_len, flags); + if (star == NULL) + return equal_nocase(pattern, pattern_len, + subject, subject_len, flags); + return wildcard_match(pattern, star - pattern, + star + 1, (pattern + pattern_len) - star - 1, + subject, subject_len, flags); +} + +/* + * Compare an ASN1_STRING to a supplied string. If they match return 1. If + * cmp_type > 0 only compare if string matches the type, otherwise convert it + * to UTF8. + */ + +static int do_check_string(ASN1_STRING *a, int cmp_type, equal_fn equal, + unsigned int flags, const char *b, size_t blen, + char **peername) +{ + int rv = 0; + + if (!a->data || !a->length) + return 0; + if (cmp_type > 0) { + if (cmp_type != a->type) + return 0; + if (cmp_type == V_ASN1_IA5STRING) + rv = equal(a->data, a->length, (unsigned char *)b, blen, flags); + else if (a->length == (int)blen && !memcmp(a->data, b, blen)) + rv = 1; + if (rv > 0 && peername) + *peername = BUF_strndup((char *)a->data, a->length); + } else { + int astrlen; + unsigned char *astr; + astrlen = ASN1_STRING_to_UTF8(&astr, a); + if (astrlen < 0) { + /* + * -1 could be an internal malloc failure or a decoding error from + * malformed input; we can't distinguish. + */ + return -1; + } + rv = equal(astr, astrlen, (unsigned char *)b, blen, flags); + if (rv > 0 && peername) + *peername = BUF_strndup((char *)astr, astrlen); + OPENSSL_free(astr); + } + return rv; +} + +static int do_x509_check(X509 *x, const char *chk, size_t chklen, + unsigned int flags, int check_type, char **peername) +{ + GENERAL_NAMES *gens = NULL; + X509_NAME *name = NULL; + int i; + int cnid = NID_undef; + int alt_type; + int san_present = 0; + int rv = 0; + equal_fn equal; + + /* See below, this flag is internal-only */ + flags &= ~_X509_CHECK_FLAG_DOT_SUBDOMAINS; + if (check_type == GEN_EMAIL) { + cnid = NID_pkcs9_emailAddress; + alt_type = V_ASN1_IA5STRING; + equal = equal_email; + } else if (check_type == GEN_DNS) { + cnid = NID_commonName; + /* Implicit client-side DNS sub-domain pattern */ + if (chklen > 1 && chk[0] == '.') + flags |= _X509_CHECK_FLAG_DOT_SUBDOMAINS; + alt_type = V_ASN1_IA5STRING; + if (flags & X509_CHECK_FLAG_NO_WILDCARDS) + equal = equal_nocase; + else + equal = equal_wildcard; + } else { + alt_type = V_ASN1_OCTET_STRING; + equal = equal_case; + } + + if (chklen == 0) + chklen = strlen(chk); + + gens = X509_get_ext_d2i(x, NID_subject_alt_name, NULL, NULL); + if (gens) { + for (i = 0; i < sk_GENERAL_NAME_num(gens); i++) { + GENERAL_NAME *gen; + ASN1_STRING *cstr; + gen = sk_GENERAL_NAME_value(gens, i); + if (gen->type != check_type) + continue; + san_present = 1; + if (check_type == GEN_EMAIL) + cstr = gen->d.rfc822Name; + else if (check_type == GEN_DNS) + cstr = gen->d.dNSName; + else + cstr = gen->d.iPAddress; + /* Positive on success, negative on error! */ + if ((rv = do_check_string(cstr, alt_type, equal, flags, + chk, chklen, peername)) != 0) + break; + } + GENERAL_NAMES_free(gens); + if (rv != 0) + return rv; + if (cnid == NID_undef + || (san_present + && !(flags & X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT))) + return 0; + } + + /* We're done if CN-ID is not pertinent */ + if (cnid == NID_undef) + return 0; + + i = -1; + name = X509_get_subject_name(x); + while ((i = X509_NAME_get_index_by_NID(name, cnid, i)) >= 0) { + X509_NAME_ENTRY *ne; + ASN1_STRING *str; + ne = X509_NAME_get_entry(name, i); + str = X509_NAME_ENTRY_get_data(ne); + /* Positive on success, negative on error! */ + if ((rv = do_check_string(str, -1, equal, flags, + chk, chklen, peername)) != 0) + return rv; + } + return 0; +} + +int X509_check_host(X509 *x, const char *chk, size_t chklen, + unsigned int flags, char **peername) +{ + if (chk == NULL) + return -2; + /* + * Embedded NULs are disallowed, except as the last character of a + * string of length 2 or more (tolerate caller including terminating + * NUL in string length). + */ + if (chklen == 0) + chklen = strlen(chk); + else if (memchr(chk, '\0', chklen > 1 ? chklen - 1 : chklen)) + return -2; + if (chklen > 1 && chk[chklen - 1] == '\0') + --chklen; + return do_x509_check(x, chk, chklen, flags, GEN_DNS, peername); +} + +int X509_check_email(X509 *x, const char *chk, size_t chklen, + unsigned int flags) +{ + if (chk == NULL) + return -2; + /* + * Embedded NULs are disallowed, except as the last character of a + * string of length 2 or more (tolerate caller including terminating + * NUL in string length). + */ + if (chklen == 0) + chklen = strlen((char *)chk); + else if (memchr(chk, '\0', chklen > 1 ? chklen - 1 : chklen)) + return -2; + if (chklen > 1 && chk[chklen - 1] == '\0') + --chklen; + return do_x509_check(x, chk, chklen, flags, GEN_EMAIL, NULL); +} + +int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, + unsigned int flags) +{ + if (chk == NULL) + return -2; + return do_x509_check(x, (char *)chk, chklen, flags, GEN_IPADD, NULL); +} + +int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags) +{ + unsigned char ipout[16]; + size_t iplen; + + if (ipasc == NULL) + return -2; + iplen = (size_t)a2i_ipadd(ipout, ipasc); + if (iplen == 0) + return -2; + return do_x509_check(x, (char *)ipout, iplen, flags, GEN_IPADD, NULL); +} + /* * Convert IP addresses both IPv4 and IPv6 into an OCTET STRING compatible * with RFC3280. diff --git a/libs/openssl/crypto/x509v3/v3err.c b/libs/openssl/crypto/x509v3/v3err.c index 0138f7a8..bcc1be72 100644 --- a/libs/openssl/crypto/x509v3/v3err.c +++ b/libs/openssl/crypto/x509v3/v3err.c @@ -1,6 +1,6 @@ /* crypto/x509v3/v3err.c */ /* ==================================================================== - * Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved. + * Copyright (c) 1999-2014 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -70,7 +70,7 @@ # define ERR_REASON(reason) ERR_PACK(ERR_LIB_X509V3,0,reason) static ERR_STRING_DATA X509V3_str_functs[] = { - {ERR_FUNC(X509V3_F_A2I_GENERAL_NAME), "A2I_GENERAL_NAME"}, + {ERR_FUNC(X509V3_F_A2I_GENERAL_NAME), "a2i_GENERAL_NAME"}, {ERR_FUNC(X509V3_F_ASIDENTIFIERCHOICE_CANONIZE), "ASIDENTIFIERCHOICE_CANONIZE"}, {ERR_FUNC(X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL), @@ -132,6 +132,7 @@ static ERR_STRING_DATA X509V3_str_functs[] = { {ERR_FUNC(X509V3_F_X509V3_EXT_ADD), "X509V3_EXT_add"}, {ERR_FUNC(X509V3_F_X509V3_EXT_ADD_ALIAS), "X509V3_EXT_add_alias"}, {ERR_FUNC(X509V3_F_X509V3_EXT_CONF), "X509V3_EXT_conf"}, + {ERR_FUNC(X509V3_F_X509V3_EXT_FREE), "X509V3_EXT_free"}, {ERR_FUNC(X509V3_F_X509V3_EXT_I2D), "X509V3_EXT_i2d"}, {ERR_FUNC(X509V3_F_X509V3_EXT_NCONF), "X509V3_EXT_nconf"}, {ERR_FUNC(X509V3_F_X509V3_GET_SECTION), "X509V3_get_section"}, @@ -149,6 +150,8 @@ static ERR_STRING_DATA X509V3_str_reasons[] = { {ERR_REASON(X509V3_R_BN_DEC2BN_ERROR), "bn dec2bn error"}, {ERR_REASON(X509V3_R_BN_TO_ASN1_INTEGER_ERROR), "bn to asn1 integer error"}, + {ERR_REASON(X509V3_R_CANNOT_FIND_FREE_FUNCTION), + "cannot find free function"}, {ERR_REASON(X509V3_R_DIRNAME_ERROR), "dirname error"}, {ERR_REASON(X509V3_R_DISTPOINT_ALREADY_SET), "distpoint already set"}, {ERR_REASON(X509V3_R_DUPLICATE_ZONE_ID), "duplicate zone id"}, @@ -167,7 +170,6 @@ static ERR_STRING_DATA X509V3_str_reasons[] = { {ERR_REASON(X509V3_R_ILLEGAL_HEX_DIGIT), "illegal hex digit"}, {ERR_REASON(X509V3_R_INCORRECT_POLICY_SYNTAX_TAG), "incorrect policy syntax tag"}, - {ERR_REASON(X509V3_R_INVALID_MULTIPLE_RDNS), "invalid multiple rdns"}, {ERR_REASON(X509V3_R_INVALID_ASNUMBER), "invalid asnumber"}, {ERR_REASON(X509V3_R_INVALID_ASRANGE), "invalid asrange"}, {ERR_REASON(X509V3_R_INVALID_BOOLEAN_STRING), "invalid boolean string"}, @@ -175,6 +177,7 @@ static ERR_STRING_DATA X509V3_str_reasons[] = { "invalid extension string"}, {ERR_REASON(X509V3_R_INVALID_INHERITANCE), "invalid inheritance"}, {ERR_REASON(X509V3_R_INVALID_IPADDRESS), "invalid ipaddress"}, + {ERR_REASON(X509V3_R_INVALID_MULTIPLE_RDNS), "invalid multiple rdns"}, {ERR_REASON(X509V3_R_INVALID_NAME), "invalid name"}, {ERR_REASON(X509V3_R_INVALID_NULL_ARGUMENT), "invalid null argument"}, {ERR_REASON(X509V3_R_INVALID_NULL_NAME), "invalid null name"}, diff --git a/libs/openssl/crypto/x509v3/x509v3.h b/libs/openssl/crypto/x509v3/x509v3.h index db9c3e8b..f5c61560 100644 --- a/libs/openssl/crypto/x509v3/x509v3.h +++ b/libs/openssl/crypto/x509v3/x509v3.h @@ -67,6 +67,13 @@ extern "C" { #endif +# ifdef OPENSSL_SYS_WIN32 +/* Under Win32 these are defined in wincrypt.h */ +# undef X509_NAME +# undef X509_CERT_PAIR +# undef X509_EXTENSIONS +# endif + /* Forward reference */ struct v3_ext_method; struct v3_ext_ctx; @@ -405,7 +412,6 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_CA 0x10 /* Really self issued not necessarily self signed */ # define EXFLAG_SI 0x20 -# define EXFLAG_SS 0x20 # define EXFLAG_V1 0x40 # define EXFLAG_INVALID 0x80 # define EXFLAG_SET 0x100 @@ -414,6 +420,8 @@ struct ISSUING_DIST_POINT_st { # define EXFLAG_INVALID_POLICY 0x800 # define EXFLAG_FRESHEST 0x1000 +/* Self signed */ +# define EXFLAG_SS 0x2000 # define KU_DIGITAL_SIGNATURE 0x0080 # define KU_NON_REPUDIATION 0x0040 @@ -442,6 +450,7 @@ struct ISSUING_DIST_POINT_st { # define XKU_OCSP_SIGN 0x20 # define XKU_TIMESTAMP 0x40 # define XKU_DVCS 0x80 +# define XKU_ANYEKU 0x100 # define X509_PURPOSE_DYNAMIC 0x1 # define X509_PURPOSE_DYNAMIC_NAME 0x2 @@ -665,6 +674,7 @@ STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); void *X509V3_EXT_d2i(X509_EXTENSION *ext); void *X509V3_get_d2i(STACK_OF(X509_EXTENSION) *x, int nid, int *crit, int *idx); +int X509V3_EXT_free(int nid, void *ext_data); X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, @@ -707,6 +717,34 @@ STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); +/* Flags for X509_check_* functions */ + +/* + * Always check subject name for host match even if subject alt names present + */ +# define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0x1 +/* Disable wildcard matching for dnsName fields and common name. */ +# define X509_CHECK_FLAG_NO_WILDCARDS 0x2 +/* Wildcards must not match a partial label. */ +# define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4 +/* Allow (non-partial) wildcards to match multiple labels. */ +# define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 +/* Constraint verifier subdomain patterns to match a single labels. */ +# define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 +/* + * Match reference identifiers starting with "." to any sub-domain. + * This is a non-public flag, turned on implicitly when the subject + * reference identity is a DNS name. + */ +# define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000 + +int X509_check_host(X509 *x, const char *chk, size_t chklen, + unsigned int flags, char **peername); +int X509_check_email(X509 *x, const char *chk, size_t chklen, + unsigned int flags); +int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, + unsigned int flags); +int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); @@ -930,6 +968,7 @@ void ERR_load_X509V3_strings(void); # define X509V3_F_X509V3_EXT_ADD 104 # define X509V3_F_X509V3_EXT_ADD_ALIAS 106 # define X509V3_F_X509V3_EXT_CONF 107 +# define X509V3_F_X509V3_EXT_FREE 165 # define X509V3_F_X509V3_EXT_I2D 136 # define X509V3_F_X509V3_EXT_NCONF 152 # define X509V3_F_X509V3_GET_SECTION 142 @@ -944,6 +983,7 @@ void ERR_load_X509V3_strings(void); # define X509V3_R_BAD_OBJECT 119 # define X509V3_R_BN_DEC2BN_ERROR 100 # define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 +# define X509V3_R_CANNOT_FIND_FREE_FUNCTION 168 # define X509V3_R_DIRNAME_ERROR 149 # define X509V3_R_DISTPOINT_ALREADY_SET 160 # define X509V3_R_DUPLICATE_ZONE_ID 133 @@ -959,13 +999,13 @@ void ERR_load_X509V3_strings(void); # define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 # define X509V3_R_ILLEGAL_HEX_DIGIT 113 # define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 -# define X509V3_R_INVALID_MULTIPLE_RDNS 161 # define X509V3_R_INVALID_ASNUMBER 162 # define X509V3_R_INVALID_ASRANGE 163 # define X509V3_R_INVALID_BOOLEAN_STRING 104 # define X509V3_R_INVALID_EXTENSION_STRING 105 # define X509V3_R_INVALID_INHERITANCE 165 # define X509V3_R_INVALID_IPADDRESS 166 +# define X509V3_R_INVALID_MULTIPLE_RDNS 161 # define X509V3_R_INVALID_NAME 106 # define X509V3_R_INVALID_NULL_ARGUMENT 107 # define X509V3_R_INVALID_NULL_NAME 108 diff --git a/libs/openssl/e_os.h b/libs/openssl/e_os.h index 75844859..1fa36c17 100644 --- a/libs/openssl/e_os.h +++ b/libs/openssl/e_os.h @@ -277,7 +277,7 @@ extern "C" { */ # define _WIN32_WINNT 0x0400 # endif -# if !defined(OPENSSL_NO_SOCK) && defined(_WIN32_WINNT) +# if !defined(OPENSSL_NO_SOCK) && (defined(_WIN32_WINNT) || defined(_WIN32_WCE)) /* * Just like defining _WIN32_WINNT including winsock2.h implies * certain "discipline" for maintaining [broad] binary compatibility. @@ -293,6 +293,9 @@ extern "C" { # include # include # include +# if defined(_WIN32_WCE) && !defined(EACCES) +# define EACCES 13 +# endif # include # ifdef _WIN64 # define strlen(s) _strlen31(s) @@ -314,8 +317,8 @@ static __inline unsigned int _strlen31(const char *str) # undef isupper # undef isxdigit # endif -# if defined(_MSC_VER) && !defined(_DLL) && defined(stdin) -# if _MSC_VER>=1300 +# if defined(_MSC_VER) && !defined(_WIN32_WCE) && !defined(_DLL) && defined(stdin) +# if _MSC_VER>=1300 && _MSC_VER<1600 # undef stdin # undef stdout # undef stderr @@ -323,7 +326,7 @@ FILE *__iob_func(); # define stdin (&__iob_func()[0]) # define stdout (&__iob_func()[1]) # define stderr (&__iob_func()[2]) -# elif defined(I_CAN_LIVE_WITH_LNK4049) +# elif _MSC_VER<1300 && defined(I_CAN_LIVE_WITH_LNK4049) # undef stdin # undef stdout # undef stderr @@ -498,6 +501,10 @@ typedef unsigned long clock_t; /*************/ +# if defined(OPENSSL_NO_SOCK) && !defined(OPENSSL_NO_DGRAM) +# define OPENSSL_NO_DGRAM +# endif + # ifdef USE_SOCKETS # if defined(WINDOWS) || defined(MSDOS) /* windows world */ @@ -612,7 +619,7 @@ struct servent *PASCAL getservbyname(const char *, const char *); # include # endif -# if defined(sun) +# if defined(__sun) || defined(sun) # include # else # ifndef VMS @@ -654,7 +661,7 @@ struct servent *PASCAL getservbyname(const char *, const char *); # endif -# if defined(sun) && !defined(__svr4__) && !defined(__SVR4) +# if (defined(__sun) || defined(sun)) && !defined(__svr4__) && !defined(__SVR4) /* include headers first, so our defines don't break it */ # include # include diff --git a/libs/openssl/e_os2.h b/libs/openssl/e_os2.h index 2b1b78ff..7be9989a 100644 --- a/libs/openssl/e_os2.h +++ b/libs/openssl/e_os2.h @@ -101,7 +101,7 @@ extern "C" { # undef OPENSSL_SYS_UNIX # define OPENSSL_SYS_WIN32_UWIN # else -# if defined(__CYGWIN32__) || defined(OPENSSL_SYSNAME_CYGWIN32) +# if defined(__CYGWIN__) || defined(OPENSSL_SYSNAME_CYGWIN) # undef OPENSSL_SYS_UNIX # define OPENSSL_SYS_WIN32_CYGWIN # else diff --git a/libs/openssl/ssl/bio_ssl.c b/libs/openssl/ssl/bio_ssl.c index a0c583e3..d2d4d2ea 100644 --- a/libs/openssl/ssl/bio_ssl.c +++ b/libs/openssl/ssl/bio_ssl.c @@ -419,6 +419,10 @@ static long ssl_ctrl(BIO *b, int cmd, long num, void *ptr) BIO_set_flags(b, BIO_FLAGS_IO_SPECIAL | BIO_FLAGS_SHOULD_RETRY); b->retry_reason = b->next_bio->retry_reason; break; + case SSL_ERROR_WANT_X509_LOOKUP: + BIO_set_retry_special(b); + b->retry_reason = BIO_RR_SSL_X509_LOOKUP; + break; default: break; } diff --git a/libs/openssl/ssl/d1_both.c b/libs/openssl/ssl/d1_both.c index 8dd8ea33..c2c8d57e 100644 --- a/libs/openssl/ssl/d1_both.c +++ b/libs/openssl/ssl/d1_both.c @@ -279,13 +279,17 @@ int dtls1_do_write(SSL *s, int type) (int)s->d1->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH); - if (s->write_hash) - mac_size = EVP_MD_CTX_size(s->write_hash); - else + if (s->write_hash) { + if (s->enc_write_ctx + && EVP_CIPHER_CTX_mode(s->enc_write_ctx) == EVP_CIPH_GCM_MODE) + mac_size = 0; + else + mac_size = EVP_MD_CTX_size(s->write_hash); + } else mac_size = 0; if (s->enc_write_ctx && - (EVP_CIPHER_mode(s->enc_write_ctx->cipher) & EVP_CIPH_CBC_MODE)) + (EVP_CIPHER_CTX_mode(s->enc_write_ctx) == EVP_CIPH_CBC_MODE)) blocksize = 2 * EVP_CIPHER_block_size(s->enc_write_ctx->cipher); else blocksize = 0; @@ -978,59 +982,6 @@ dtls1_get_message_fragment(SSL *s, int st1, int stn, long max, int *ok) return (-1); } -int dtls1_send_finished(SSL *s, int a, int b, const char *sender, int slen) -{ - unsigned char *p, *d; - int i; - unsigned long l; - - if (s->state == a) { - d = (unsigned char *)s->init_buf->data; - p = &(d[DTLS1_HM_HEADER_LENGTH]); - - i = s->method->ssl3_enc->final_finish_mac(s, - sender, slen, - s->s3->tmp.finish_md); - s->s3->tmp.finish_md_len = i; - memcpy(p, s->s3->tmp.finish_md, i); - p += i; - l = i; - - /* - * Copy the finished so we can use it for renegotiation checks - */ - if (s->type == SSL_ST_CONNECT) { - OPENSSL_assert(i <= EVP_MAX_MD_SIZE); - memcpy(s->s3->previous_client_finished, s->s3->tmp.finish_md, i); - s->s3->previous_client_finished_len = i; - } else { - OPENSSL_assert(i <= EVP_MAX_MD_SIZE); - memcpy(s->s3->previous_server_finished, s->s3->tmp.finish_md, i); - s->s3->previous_server_finished_len = i; - } - -#ifdef OPENSSL_SYS_WIN16 - /* - * MSVC 1.5 does not clear the top bytes of the word unless I do - * this. - */ - l &= 0xffff; -#endif - - d = dtls1_set_message_header(s, d, SSL3_MT_FINISHED, l, 0, l); - s->init_num = (int)l + DTLS1_HM_HEADER_LENGTH; - s->init_off = 0; - - /* buffer the message to handle re-xmits */ - dtls1_buffer_message(s, 0); - - s->state = b; - } - - /* SSL3_ST_SEND_xxxxxx_HELLO_B */ - return (dtls1_do_write(s, SSL3_RT_HANDSHAKE)); -} - /*- * for these 2 messages, we need to * ssl->enc_read_ctx re-init @@ -1071,77 +1022,6 @@ int dtls1_send_change_cipher_spec(SSL *s, int a, int b) return (dtls1_do_write(s, SSL3_RT_CHANGE_CIPHER_SPEC)); } -static int dtls1_add_cert_to_buf(BUF_MEM *buf, unsigned long *l, X509 *x) -{ - int n; - unsigned char *p; - - n = i2d_X509(x, NULL); - if (!BUF_MEM_grow_clean(buf, (int)(n + (*l) + 3))) { - SSLerr(SSL_F_DTLS1_ADD_CERT_TO_BUF, ERR_R_BUF_LIB); - return 0; - } - p = (unsigned char *)&(buf->data[*l]); - l2n3(n, p); - i2d_X509(x, &p); - *l += n + 3; - - return 1; -} - -unsigned long dtls1_output_cert_chain(SSL *s, X509 *x) -{ - unsigned char *p; - int i; - unsigned long l = 3 + DTLS1_HM_HEADER_LENGTH; - BUF_MEM *buf; - - /* TLSv1 sends a chain with nothing in it, instead of an alert */ - buf = s->init_buf; - if (!BUF_MEM_grow_clean(buf, 10)) { - SSLerr(SSL_F_DTLS1_OUTPUT_CERT_CHAIN, ERR_R_BUF_LIB); - return (0); - } - if (x != NULL) { - X509_STORE_CTX xs_ctx; - - if (!X509_STORE_CTX_init(&xs_ctx, s->ctx->cert_store, x, NULL)) { - SSLerr(SSL_F_DTLS1_OUTPUT_CERT_CHAIN, ERR_R_X509_LIB); - return (0); - } - - X509_verify_cert(&xs_ctx); - /* Don't leave errors in the queue */ - ERR_clear_error(); - for (i = 0; i < sk_X509_num(xs_ctx.chain); i++) { - x = sk_X509_value(xs_ctx.chain, i); - - if (!dtls1_add_cert_to_buf(buf, &l, x)) { - X509_STORE_CTX_cleanup(&xs_ctx); - return 0; - } - } - X509_STORE_CTX_cleanup(&xs_ctx); - } - /* Thawte special :-) */ - for (i = 0; i < sk_X509_num(s->ctx->extra_certs); i++) { - x = sk_X509_value(s->ctx->extra_certs, i); - if (!dtls1_add_cert_to_buf(buf, &l, x)) - return 0; - } - - l -= (3 + DTLS1_HM_HEADER_LENGTH); - - p = (unsigned char *)&(buf->data[DTLS1_HM_HEADER_LENGTH]); - l2n3(l, p); - l += 3; - p = (unsigned char *)&(buf->data[0]); - p = dtls1_set_message_header(s, p, SSL3_MT_CERTIFICATE, l, 0, l); - - l += DTLS1_HM_HEADER_LENGTH; - return (l); -} - int dtls1_read_failed(SSL *s, int code) { if (code > 0) { @@ -1244,10 +1124,10 @@ int dtls1_buffer_message(SSL *s, int is_ccs) memcpy(frag->fragment, s->init_buf->data, s->init_num); if (is_ccs) { + /* For DTLS1_BAD_VER the header length is non-standard */ OPENSSL_assert(s->d1->w_msg_hdr.msg_len + - ((s->version == - DTLS1_VERSION) ? DTLS1_CCS_HEADER_LENGTH : 3) == - (unsigned int)s->init_num); + ((s->version==DTLS1_BAD_VER)?3:DTLS1_CCS_HEADER_LENGTH) + == (unsigned int)s->init_num); } else { OPENSSL_assert(s->d1->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH == (unsigned int)s->init_num); @@ -1490,9 +1370,12 @@ int dtls1_shutdown(SSL *s) { int ret; #ifndef OPENSSL_NO_SCTP - if (BIO_dgram_is_sctp(SSL_get_wbio(s)) && + BIO *wbio; + + wbio = SSL_get_wbio(s); + if (wbio != NULL && BIO_dgram_is_sctp(wbio) && !(s->shutdown & SSL_SENT_SHUTDOWN)) { - ret = BIO_dgram_sctp_wait_for_dry(SSL_get_wbio(s)); + ret = BIO_dgram_sctp_wait_for_dry(wbio); if (ret < 0) return -1; diff --git a/libs/openssl/ssl/d1_clnt.c b/libs/openssl/ssl/d1_clnt.c index 377c1e61..3ddfa7bc 100644 --- a/libs/openssl/ssl/d1_clnt.c +++ b/libs/openssl/ssl/d1_clnt.c @@ -133,15 +133,33 @@ static int dtls1_get_hello_verify(SSL *s); static const SSL_METHOD *dtls1_get_client_method(int ver) { - if (ver == DTLS1_VERSION || ver == DTLS1_BAD_VER) - return (DTLSv1_client_method()); + if (ver == DTLS_ANY_VERSION) + return DTLS_client_method(); + else if (ver == DTLS1_VERSION || ver == DTLS1_BAD_VER) + return DTLSv1_client_method(); + else if (ver == DTLS1_2_VERSION) + return DTLSv1_2_client_method(); else - return (NULL); + return NULL; } -IMPLEMENT_dtls1_meth_func(DTLSv1_client_method, +IMPLEMENT_dtls1_meth_func(DTLS1_VERSION, + DTLSv1_client_method, ssl_undefined_function, - dtls1_connect, dtls1_get_client_method) + dtls1_connect, + dtls1_get_client_method, DTLSv1_enc_data) + +IMPLEMENT_dtls1_meth_func(DTLS1_2_VERSION, + DTLSv1_2_client_method, + ssl_undefined_function, + dtls1_connect, + dtls1_get_client_method, DTLSv1_2_enc_data) + +IMPLEMENT_dtls1_meth_func(DTLS_ANY_VERSION, + DTLS_client_method, + ssl_undefined_function, + dtls1_connect, + dtls1_get_client_method, DTLSv1_2_enc_data) int dtls1_connect(SSL *s) { @@ -299,15 +317,14 @@ int dtls1_connect(SSL *s) #endif case SSL3_ST_CW_CLNT_HELLO_A: - case SSL3_ST_CW_CLNT_HELLO_B: - s->shutdown = 0; /* every DTLS ClientHello resets Finished MAC */ ssl3_init_finished_mac(s); + case SSL3_ST_CW_CLNT_HELLO_B: dtls1_start_timer(s); - ret = dtls1_client_hello(s); + ret = ssl3_client_hello(s); if (ret <= 0) goto end; @@ -350,11 +367,15 @@ int dtls1_connect(SSL *s) sizeof(DTLS1_SCTP_AUTH_LABEL), DTLS1_SCTP_AUTH_LABEL); - SSL_export_keying_material(s, sctpauthkey, + if (SSL_export_keying_material(s, sctpauthkey, sizeof(sctpauthkey), labelbuffer, sizeof(labelbuffer), NULL, 0, - 0); + 0) <= 0) { + ret = -1; + s->state = SSL_ST_ERR; + goto end; + } BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY, @@ -362,6 +383,10 @@ int dtls1_connect(SSL *s) #endif s->state = SSL3_ST_CR_FINISHED_A; + if (s->tlsext_ticket_expected) { + /* receive renewed session ticket */ + s->state = SSL3_ST_CR_SESSION_TICKET_A; + } } else s->state = DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A; } @@ -462,7 +487,7 @@ int dtls1_connect(SSL *s) case SSL3_ST_CW_CERT_C: case SSL3_ST_CW_CERT_D: dtls1_start_timer(s); - ret = dtls1_send_client_certificate(s); + ret = ssl3_send_client_certificate(s); if (ret <= 0) goto end; s->state = SSL3_ST_CW_KEY_EXCH_A; @@ -472,7 +497,7 @@ int dtls1_connect(SSL *s) case SSL3_ST_CW_KEY_EXCH_A: case SSL3_ST_CW_KEY_EXCH_B: dtls1_start_timer(s); - ret = dtls1_send_client_key_exchange(s); + ret = ssl3_send_client_key_exchange(s); if (ret <= 0) goto end; @@ -484,9 +509,13 @@ int dtls1_connect(SSL *s) snprintf((char *)labelbuffer, sizeof(DTLS1_SCTP_AUTH_LABEL), DTLS1_SCTP_AUTH_LABEL); - SSL_export_keying_material(s, sctpauthkey, + if (SSL_export_keying_material(s, sctpauthkey, sizeof(sctpauthkey), labelbuffer, - sizeof(labelbuffer), NULL, 0, 0); + sizeof(labelbuffer), NULL, 0, 0) <= 0) { + ret = -1; + s->state = SSL_ST_ERR; + goto end; + } BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY, sizeof(sctpauthkey), sctpauthkey); @@ -517,7 +546,7 @@ int dtls1_connect(SSL *s) case SSL3_ST_CW_CERT_VRFY_A: case SSL3_ST_CW_CERT_VRFY_B: dtls1_start_timer(s); - ret = dtls1_send_client_verify(s); + ret = ssl3_send_client_verify(s); if (ret <= 0) goto end; #ifndef OPENSSL_NO_SCTP @@ -583,13 +612,13 @@ int dtls1_connect(SSL *s) case SSL3_ST_CW_FINISHED_B: if (!s->hit) dtls1_start_timer(s); - ret = dtls1_send_finished(s, - SSL3_ST_CW_FINISHED_A, - SSL3_ST_CW_FINISHED_B, - s->method-> - ssl3_enc->client_finished_label, - s->method-> - ssl3_enc->client_finished_label_len); + ret = ssl3_send_finished(s, + SSL3_ST_CW_FINISHED_A, + SSL3_ST_CW_FINISHED_B, + s->method-> + ssl3_enc->client_finished_label, + s->method-> + ssl3_enc->client_finished_label_len); if (ret <= 0) goto end; s->state = SSL3_ST_CW_FLUSH; @@ -786,140 +815,18 @@ int dtls1_connect(SSL *s) return (ret); } -int dtls1_client_hello(SSL *s) -{ - unsigned char *buf; - unsigned char *p, *d; - unsigned int i, j; - unsigned long l; - SSL_COMP *comp; - - buf = (unsigned char *)s->init_buf->data; - if (s->state == SSL3_ST_CW_CLNT_HELLO_A) { - SSL_SESSION *sess = s->session; - if ((s->session == NULL) || (s->session->ssl_version != s->version) || -#ifdef OPENSSL_NO_TLSEXT - !sess->session_id_length || -#else - (!sess->session_id_length && !sess->tlsext_tick) || -#endif - (s->session->not_resumable)) { - if (!ssl_get_new_session(s, 0)) - goto err; - } - /* else use the pre-loaded session */ - - p = s->s3->client_random; - - /* - * if client_random is initialized, reuse it, we are required to use - * same upon reply to HelloVerify - */ - for (i = 0; p[i] == '\0' && i < sizeof(s->s3->client_random); i++) ; - if (i == sizeof(s->s3->client_random)) - ssl_fill_hello_random(s, 0, p, sizeof(s->s3->client_random)); - - /* Do the message type and length last */ - d = p = &(buf[DTLS1_HM_HEADER_LENGTH]); - - *(p++) = s->version >> 8; - *(p++) = s->version & 0xff; - s->client_version = s->version; - - /* Random stuff */ - memcpy(p, s->s3->client_random, SSL3_RANDOM_SIZE); - p += SSL3_RANDOM_SIZE; - - /* Session ID */ - if (s->new_session) - i = 0; - else - i = s->session->session_id_length; - *(p++) = i; - if (i != 0) { - if (i > sizeof s->session->session_id) { - SSLerr(SSL_F_DTLS1_CLIENT_HELLO, ERR_R_INTERNAL_ERROR); - goto err; - } - memcpy(p, s->session->session_id, i); - p += i; - } - - /* cookie stuff */ - if (s->d1->cookie_len > sizeof(s->d1->cookie)) { - SSLerr(SSL_F_DTLS1_CLIENT_HELLO, ERR_R_INTERNAL_ERROR); - goto err; - } - *(p++) = s->d1->cookie_len; - memcpy(p, s->d1->cookie, s->d1->cookie_len); - p += s->d1->cookie_len; - - /* Ciphers supported */ - i = ssl_cipher_list_to_bytes(s, SSL_get_ciphers(s), &(p[2]), 0); - if (i == 0) { - SSLerr(SSL_F_DTLS1_CLIENT_HELLO, SSL_R_NO_CIPHERS_AVAILABLE); - goto err; - } - s2n(i, p); - p += i; - - /* COMPRESSION */ - if (s->ctx->comp_methods == NULL) - j = 0; - else - j = sk_SSL_COMP_num(s->ctx->comp_methods); - *(p++) = 1 + j; - for (i = 0; i < j; i++) { - comp = sk_SSL_COMP_value(s->ctx->comp_methods, i); - *(p++) = comp->id; - } - *(p++) = 0; /* Add the NULL method */ - -#ifndef OPENSSL_NO_TLSEXT - /* TLS extensions */ - if (ssl_prepare_clienthello_tlsext(s) <= 0) { - SSLerr(SSL_F_DTLS1_CLIENT_HELLO, SSL_R_CLIENTHELLO_TLSEXT); - goto err; - } - if ((p = - ssl_add_clienthello_tlsext(s, p, - buf + SSL3_RT_MAX_PLAIN_LENGTH)) == - NULL) { - SSLerr(SSL_F_DTLS1_CLIENT_HELLO, ERR_R_INTERNAL_ERROR); - goto err; - } -#endif - - l = (p - d); - d = buf; - - d = dtls1_set_message_header(s, d, SSL3_MT_CLIENT_HELLO, l, 0, l); - - s->state = SSL3_ST_CW_CLNT_HELLO_B; - /* number of bytes to write */ - s->init_num = p - buf; - s->init_off = 0; - - /* buffer the message to handle re-xmits */ - dtls1_buffer_message(s, 0); - } - - /* SSL3_ST_CW_CLNT_HELLO_B */ - return (dtls1_do_write(s, SSL3_RT_HANDSHAKE)); - err: - return (-1); -} - static int dtls1_get_hello_verify(SSL *s) { int n, al, ok = 0; unsigned char *data; unsigned int cookie_len; + s->first_packet = 1; n = s->method->ssl_get_message(s, DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A, DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B, -1, s->max_cert_list, &ok); + s->first_packet = 0; if (!ok) return ((int)n); @@ -931,13 +838,16 @@ static int dtls1_get_hello_verify(SSL *s) } data = (unsigned char *)s->init_msg; - - if ((data[0] != (s->version >> 8)) || (data[1] != (s->version & 0xff))) { +#if 0 + if (s->method->version != DTLS_ANY_VERSION && + ((data[0] != (s->version >> 8)) || (data[1] != (s->version & 0xff)))) + { SSLerr(SSL_F_DTLS1_GET_HELLO_VERIFY, SSL_R_WRONG_SSL_VERSION); s->version = (s->version & 0xff00) | data[1]; al = SSL_AD_PROTOCOL_VERSION; goto f_err; } +#endif data += 2; cookie_len = *(data++); @@ -957,746 +867,3 @@ static int dtls1_get_hello_verify(SSL *s) s->state = SSL_ST_ERR; return -1; } - -int dtls1_send_client_key_exchange(SSL *s) -{ - unsigned char *p, *d; - int n; - unsigned long alg_k; -#ifndef OPENSSL_NO_RSA - unsigned char *q; - EVP_PKEY *pkey = NULL; -#endif -#ifndef OPENSSL_NO_KRB5 - KSSL_ERR kssl_err; -#endif /* OPENSSL_NO_KRB5 */ -#ifndef OPENSSL_NO_ECDH - EC_KEY *clnt_ecdh = NULL; - const EC_POINT *srvr_ecpoint = NULL; - EVP_PKEY *srvr_pub_pkey = NULL; - unsigned char *encodedPoint = NULL; - int encoded_pt_len = 0; - BN_CTX *bn_ctx = NULL; -#endif - - if (s->state == SSL3_ST_CW_KEY_EXCH_A) { - d = (unsigned char *)s->init_buf->data; - p = &(d[DTLS1_HM_HEADER_LENGTH]); - - alg_k = s->s3->tmp.new_cipher->algorithm_mkey; - - /* Fool emacs indentation */ - if (0) { - } -#ifndef OPENSSL_NO_RSA - else if (alg_k & SSL_kRSA) { - RSA *rsa; - unsigned char tmp_buf[SSL_MAX_MASTER_KEY_LENGTH]; - - if (s->session->sess_cert == NULL) { - /* - * We should always have a server certificate with SSL_kRSA. - */ - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_INTERNAL_ERROR); - goto err; - } - - if (s->session->sess_cert->peer_rsa_tmp != NULL) - rsa = s->session->sess_cert->peer_rsa_tmp; - else { - pkey = - X509_get_pubkey(s->session-> - sess_cert->peer_pkeys[SSL_PKEY_RSA_ENC]. - x509); - if ((pkey == NULL) || (pkey->type != EVP_PKEY_RSA) - || (pkey->pkey.rsa == NULL)) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_INTERNAL_ERROR); - goto err; - } - rsa = pkey->pkey.rsa; - EVP_PKEY_free(pkey); - } - - tmp_buf[0] = s->client_version >> 8; - tmp_buf[1] = s->client_version & 0xff; - if (RAND_bytes(&(tmp_buf[2]), sizeof tmp_buf - 2) <= 0) - goto err; - - s->session->master_key_length = sizeof tmp_buf; - - q = p; - /* Fix buf for TLS and [incidentally] DTLS */ - if (s->version > SSL3_VERSION) - p += 2; - n = RSA_public_encrypt(sizeof tmp_buf, - tmp_buf, p, rsa, RSA_PKCS1_PADDING); -# ifdef PKCS1_CHECK - if (s->options & SSL_OP_PKCS1_CHECK_1) - p[1]++; - if (s->options & SSL_OP_PKCS1_CHECK_2) - tmp_buf[0] = 0x70; -# endif - if (n <= 0) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - SSL_R_BAD_RSA_ENCRYPT); - goto err; - } - - /* Fix buf for TLS and [incidentally] DTLS */ - if (s->version > SSL3_VERSION) { - s2n(n, q); - n += 2; - } - - s->session->master_key_length = - s->method->ssl3_enc->generate_master_secret(s, - s-> - session->master_key, - tmp_buf, - sizeof tmp_buf); - OPENSSL_cleanse(tmp_buf, sizeof tmp_buf); - } -#endif -#ifndef OPENSSL_NO_KRB5 - else if (alg_k & SSL_kKRB5) { - krb5_error_code krb5rc; - KSSL_CTX *kssl_ctx = s->kssl_ctx; - /* krb5_data krb5_ap_req; */ - krb5_data *enc_ticket; - krb5_data authenticator, *authp = NULL; - EVP_CIPHER_CTX ciph_ctx; - const EVP_CIPHER *enc = NULL; - unsigned char iv[EVP_MAX_IV_LENGTH]; - unsigned char tmp_buf[SSL_MAX_MASTER_KEY_LENGTH]; - unsigned char epms[SSL_MAX_MASTER_KEY_LENGTH + EVP_MAX_IV_LENGTH]; - int padl, outl = sizeof(epms); - - EVP_CIPHER_CTX_init(&ciph_ctx); - -# ifdef KSSL_DEBUG - printf("ssl3_send_client_key_exchange(%lx & %lx)\n", - alg_k, SSL_kKRB5); -# endif /* KSSL_DEBUG */ - - authp = NULL; -# ifdef KRB5SENDAUTH - if (KRB5SENDAUTH) - authp = &authenticator; -# endif /* KRB5SENDAUTH */ - - krb5rc = kssl_cget_tkt(kssl_ctx, &enc_ticket, authp, &kssl_err); - enc = kssl_map_enc(kssl_ctx->enctype); - if (enc == NULL) - goto err; -# ifdef KSSL_DEBUG - { - printf("kssl_cget_tkt rtn %d\n", krb5rc); - if (krb5rc && kssl_err.text) - printf("kssl_cget_tkt kssl_err=%s\n", kssl_err.text); - } -# endif /* KSSL_DEBUG */ - - if (krb5rc) { - ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_HANDSHAKE_FAILURE); - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, kssl_err.reason); - goto err; - } - - /*- - * 20010406 VRS - Earlier versions used KRB5 AP_REQ - ** in place of RFC 2712 KerberosWrapper, as in: - ** - ** Send ticket (copy to *p, set n = length) - ** n = krb5_ap_req.length; - ** memcpy(p, krb5_ap_req.data, krb5_ap_req.length); - ** if (krb5_ap_req.data) - ** kssl_krb5_free_data_contents(NULL,&krb5_ap_req); - ** - ** Now using real RFC 2712 KerberosWrapper - ** (Thanks to Simon Wilkinson ) - ** Note: 2712 "opaque" types are here replaced - ** with a 2-byte length followed by the value. - ** Example: - ** KerberosWrapper= xx xx asn1ticket 0 0 xx xx encpms - ** Where "xx xx" = length bytes. Shown here with - ** optional authenticator omitted. - */ - - /* KerberosWrapper.Ticket */ - s2n(enc_ticket->length, p); - memcpy(p, enc_ticket->data, enc_ticket->length); - p += enc_ticket->length; - n = enc_ticket->length + 2; - - /* KerberosWrapper.Authenticator */ - if (authp && authp->length) { - s2n(authp->length, p); - memcpy(p, authp->data, authp->length); - p += authp->length; - n += authp->length + 2; - - free(authp->data); - authp->data = NULL; - authp->length = 0; - } else { - s2n(0, p); /* null authenticator length */ - n += 2; - } - - if (RAND_bytes(tmp_buf, sizeof tmp_buf) <= 0) - goto err; - - /*- - * 20010420 VRS. Tried it this way; failed. - * EVP_EncryptInit_ex(&ciph_ctx,enc, NULL,NULL); - * EVP_CIPHER_CTX_set_key_length(&ciph_ctx, - * kssl_ctx->length); - * EVP_EncryptInit_ex(&ciph_ctx,NULL, key,iv); - */ - - memset(iv, 0, sizeof iv); /* per RFC 1510 */ - EVP_EncryptInit_ex(&ciph_ctx, enc, NULL, kssl_ctx->key, iv); - EVP_EncryptUpdate(&ciph_ctx, epms, &outl, tmp_buf, - sizeof tmp_buf); - EVP_EncryptFinal_ex(&ciph_ctx, &(epms[outl]), &padl); - outl += padl; - if (outl > (int)sizeof epms) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_INTERNAL_ERROR); - goto err; - } - EVP_CIPHER_CTX_cleanup(&ciph_ctx); - - /* KerberosWrapper.EncryptedPreMasterSecret */ - s2n(outl, p); - memcpy(p, epms, outl); - p += outl; - n += outl + 2; - - s->session->master_key_length = - s->method->ssl3_enc->generate_master_secret(s, - s-> - session->master_key, - tmp_buf, - sizeof tmp_buf); - - OPENSSL_cleanse(tmp_buf, sizeof tmp_buf); - OPENSSL_cleanse(epms, outl); - } -#endif -#ifndef OPENSSL_NO_DH - else if (alg_k & (SSL_kEDH | SSL_kDHr | SSL_kDHd)) { - DH *dh_srvr, *dh_clnt; - - if (s->session->sess_cert == NULL) { - ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_UNEXPECTED_MESSAGE); - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - SSL_R_UNEXPECTED_MESSAGE); - goto err; - } - - if (s->session->sess_cert->peer_dh_tmp != NULL) - dh_srvr = s->session->sess_cert->peer_dh_tmp; - else { - /* we get them from the cert */ - ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_HANDSHAKE_FAILURE); - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - SSL_R_UNABLE_TO_FIND_DH_PARAMETERS); - goto err; - } - - /* generate a new random key */ - if ((dh_clnt = DHparams_dup(dh_srvr)) == NULL) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, ERR_R_DH_LIB); - goto err; - } - if (!DH_generate_key(dh_clnt)) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, ERR_R_DH_LIB); - goto err; - } - - /* - * use the 'p' output buffer for the DH key, but make sure to - * clear it out afterwards - */ - - n = DH_compute_key(p, dh_srvr->pub_key, dh_clnt); - - if (n <= 0) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, ERR_R_DH_LIB); - goto err; - } - - /* generate master key from the result */ - s->session->master_key_length = - s->method->ssl3_enc->generate_master_secret(s, - s-> - session->master_key, - p, n); - /* clean up */ - memset(p, 0, n); - - /* send off the data */ - n = BN_num_bytes(dh_clnt->pub_key); - s2n(n, p); - BN_bn2bin(dh_clnt->pub_key, p); - n += 2; - - DH_free(dh_clnt); - - /* perhaps clean things up a bit EAY EAY EAY EAY */ - } -#endif -#ifndef OPENSSL_NO_ECDH - else if (alg_k & (SSL_kEECDH | SSL_kECDHr | SSL_kECDHe)) { - const EC_GROUP *srvr_group = NULL; - EC_KEY *tkey; - int ecdh_clnt_cert = 0; - int field_size = 0; - - if (s->session->sess_cert == NULL) { - ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_UNEXPECTED_MESSAGE); - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - SSL_R_UNEXPECTED_MESSAGE); - goto err; - } - - /* - * Did we send out the client's ECDH share for use in premaster - * computation as part of client certificate? If so, set - * ecdh_clnt_cert to 1. - */ - if ((alg_k & (SSL_kECDHr | SSL_kECDHe)) && (s->cert != NULL)) { - /* - * XXX: For now, we do not support client authentication - * using ECDH certificates. To add such support, one needs to - * add code that checks for appropriate conditions and sets - * ecdh_clnt_cert to 1. For example, the cert have an ECC key - * on the same curve as the server's and the key should be - * authorized for key agreement. One also needs to add code - * in ssl3_connect to skip sending the certificate verify - * message. if ((s->cert->key->privatekey != NULL) && - * (s->cert->key->privatekey->type == EVP_PKEY_EC) && ...) - * ecdh_clnt_cert = 1; - */ - } - - if (s->session->sess_cert->peer_ecdh_tmp != NULL) { - tkey = s->session->sess_cert->peer_ecdh_tmp; - } else { - /* Get the Server Public Key from Cert */ - srvr_pub_pkey = - X509_get_pubkey(s->session-> - sess_cert->peer_pkeys[SSL_PKEY_ECC].x509); - if ((srvr_pub_pkey == NULL) - || (srvr_pub_pkey->type != EVP_PKEY_EC) - || (srvr_pub_pkey->pkey.ec == NULL)) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_INTERNAL_ERROR); - goto err; - } - - tkey = srvr_pub_pkey->pkey.ec; - } - - srvr_group = EC_KEY_get0_group(tkey); - srvr_ecpoint = EC_KEY_get0_public_key(tkey); - - if ((srvr_group == NULL) || (srvr_ecpoint == NULL)) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_INTERNAL_ERROR); - goto err; - } - - if ((clnt_ecdh = EC_KEY_new()) == NULL) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_MALLOC_FAILURE); - goto err; - } - - if (!EC_KEY_set_group(clnt_ecdh, srvr_group)) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, ERR_R_EC_LIB); - goto err; - } - if (ecdh_clnt_cert) { - /* - * Reuse key info from our certificate We only need our - * private key to perform the ECDH computation. - */ - const BIGNUM *priv_key; - tkey = s->cert->key->privatekey->pkey.ec; - priv_key = EC_KEY_get0_private_key(tkey); - if (priv_key == NULL) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_MALLOC_FAILURE); - goto err; - } - if (!EC_KEY_set_private_key(clnt_ecdh, priv_key)) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_EC_LIB); - goto err; - } - } else { - /* Generate a new ECDH key pair */ - if (!(EC_KEY_generate_key(clnt_ecdh))) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_ECDH_LIB); - goto err; - } - } - - /* - * use the 'p' output buffer for the ECDH key, but make sure to - * clear it out afterwards - */ - - field_size = EC_GROUP_get_degree(srvr_group); - if (field_size <= 0) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, ERR_R_ECDH_LIB); - goto err; - } - n = ECDH_compute_key(p, (field_size + 7) / 8, srvr_ecpoint, - clnt_ecdh, NULL); - if (n <= 0) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, ERR_R_ECDH_LIB); - goto err; - } - - /* generate master key from the result */ - s->session->master_key_length = - s->method->ssl3_enc->generate_master_secret(s, - s-> - session->master_key, - p, n); - - memset(p, 0, n); /* clean up */ - - if (ecdh_clnt_cert) { - /* Send empty client key exch message */ - n = 0; - } else { - /* - * First check the size of encoding and allocate memory - * accordingly. - */ - encoded_pt_len = - EC_POINT_point2oct(srvr_group, - EC_KEY_get0_public_key(clnt_ecdh), - POINT_CONVERSION_UNCOMPRESSED, - NULL, 0, NULL); - - encodedPoint = (unsigned char *) - OPENSSL_malloc(encoded_pt_len * sizeof(unsigned char)); - bn_ctx = BN_CTX_new(); - if ((encodedPoint == NULL) || (bn_ctx == NULL)) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_MALLOC_FAILURE); - goto err; - } - - /* Encode the public key */ - n = EC_POINT_point2oct(srvr_group, - EC_KEY_get0_public_key(clnt_ecdh), - POINT_CONVERSION_UNCOMPRESSED, - encodedPoint, encoded_pt_len, bn_ctx); - - *p = n; /* length of encoded point */ - /* Encoded point will be copied here */ - p += 1; - /* copy the point */ - memcpy((unsigned char *)p, encodedPoint, n); - /* increment n to account for length field */ - n += 1; - } - - /* Free allocated memory */ - BN_CTX_free(bn_ctx); - if (encodedPoint != NULL) - OPENSSL_free(encodedPoint); - if (clnt_ecdh != NULL) - EC_KEY_free(clnt_ecdh); - EVP_PKEY_free(srvr_pub_pkey); - } -#endif /* !OPENSSL_NO_ECDH */ - -#ifndef OPENSSL_NO_PSK - else if (alg_k & SSL_kPSK) { - char identity[PSK_MAX_IDENTITY_LEN]; - unsigned char *t = NULL; - unsigned char psk_or_pre_ms[PSK_MAX_PSK_LEN * 2 + 4]; - unsigned int pre_ms_len = 0, psk_len = 0; - int psk_err = 1; - - n = 0; - if (s->psk_client_callback == NULL) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - SSL_R_PSK_NO_CLIENT_CB); - goto err; - } - - psk_len = s->psk_client_callback(s, s->ctx->psk_identity_hint, - identity, PSK_MAX_IDENTITY_LEN, - psk_or_pre_ms, - sizeof(psk_or_pre_ms)); - if (psk_len > PSK_MAX_PSK_LEN) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_INTERNAL_ERROR); - goto psk_err; - } else if (psk_len == 0) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - SSL_R_PSK_IDENTITY_NOT_FOUND); - goto psk_err; - } - - /* create PSK pre_master_secret */ - pre_ms_len = 2 + psk_len + 2 + psk_len; - t = psk_or_pre_ms; - memmove(psk_or_pre_ms + psk_len + 4, psk_or_pre_ms, psk_len); - s2n(psk_len, t); - memset(t, 0, psk_len); - t += psk_len; - s2n(psk_len, t); - - if (s->session->psk_identity_hint != NULL) - OPENSSL_free(s->session->psk_identity_hint); - s->session->psk_identity_hint = - BUF_strdup(s->ctx->psk_identity_hint); - if (s->ctx->psk_identity_hint != NULL - && s->session->psk_identity_hint == NULL) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_MALLOC_FAILURE); - goto psk_err; - } - - if (s->session->psk_identity != NULL) - OPENSSL_free(s->session->psk_identity); - s->session->psk_identity = BUF_strdup(identity); - if (s->session->psk_identity == NULL) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_MALLOC_FAILURE); - goto psk_err; - } - - s->session->master_key_length = - s->method->ssl3_enc->generate_master_secret(s, - s-> - session->master_key, - psk_or_pre_ms, - pre_ms_len); - n = strlen(identity); - s2n(n, p); - memcpy(p, identity, n); - n += 2; - psk_err = 0; - psk_err: - OPENSSL_cleanse(identity, PSK_MAX_IDENTITY_LEN); - OPENSSL_cleanse(psk_or_pre_ms, sizeof(psk_or_pre_ms)); - if (psk_err != 0) { - ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_HANDSHAKE_FAILURE); - goto err; - } - } -#endif - else { - ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_HANDSHAKE_FAILURE); - SSLerr(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE, - ERR_R_INTERNAL_ERROR); - goto err; - } - - d = dtls1_set_message_header(s, d, - SSL3_MT_CLIENT_KEY_EXCHANGE, n, 0, n); - /*- - *(d++)=SSL3_MT_CLIENT_KEY_EXCHANGE; - l2n3(n,d); - l2n(s->d1->handshake_write_seq,d); - s->d1->handshake_write_seq++; - */ - - s->state = SSL3_ST_CW_KEY_EXCH_B; - /* number of bytes to write */ - s->init_num = n + DTLS1_HM_HEADER_LENGTH; - s->init_off = 0; - - /* buffer the message to handle re-xmits */ - dtls1_buffer_message(s, 0); - } - - /* SSL3_ST_CW_KEY_EXCH_B */ - return (dtls1_do_write(s, SSL3_RT_HANDSHAKE)); - err: -#ifndef OPENSSL_NO_ECDH - BN_CTX_free(bn_ctx); - if (encodedPoint != NULL) - OPENSSL_free(encodedPoint); - if (clnt_ecdh != NULL) - EC_KEY_free(clnt_ecdh); - EVP_PKEY_free(srvr_pub_pkey); -#endif - return (-1); -} - -int dtls1_send_client_verify(SSL *s) -{ - unsigned char *p, *d; - unsigned char data[MD5_DIGEST_LENGTH + SHA_DIGEST_LENGTH]; - EVP_PKEY *pkey; -#ifndef OPENSSL_NO_RSA - unsigned u = 0; -#endif - unsigned long n; -#if !defined(OPENSSL_NO_DSA) || !defined(OPENSSL_NO_ECDSA) - int j; -#endif - - if (s->state == SSL3_ST_CW_CERT_VRFY_A) { - d = (unsigned char *)s->init_buf->data; - p = &(d[DTLS1_HM_HEADER_LENGTH]); - pkey = s->cert->key->privatekey; - - s->method->ssl3_enc->cert_verify_mac(s, - NID_sha1, - &(data[MD5_DIGEST_LENGTH])); - -#ifndef OPENSSL_NO_RSA - if (pkey->type == EVP_PKEY_RSA) { - s->method->ssl3_enc->cert_verify_mac(s, NID_md5, &(data[0])); - if (RSA_sign(NID_md5_sha1, data, - MD5_DIGEST_LENGTH + SHA_DIGEST_LENGTH, - &(p[2]), &u, pkey->pkey.rsa) <= 0) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_VERIFY, ERR_R_RSA_LIB); - goto err; - } - s2n(u, p); - n = u + 2; - } else -#endif -#ifndef OPENSSL_NO_DSA - if (pkey->type == EVP_PKEY_DSA) { - if (!DSA_sign(pkey->save_type, - &(data[MD5_DIGEST_LENGTH]), - SHA_DIGEST_LENGTH, &(p[2]), - (unsigned int *)&j, pkey->pkey.dsa)) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_VERIFY, ERR_R_DSA_LIB); - goto err; - } - s2n(j, p); - n = j + 2; - } else -#endif -#ifndef OPENSSL_NO_ECDSA - if (pkey->type == EVP_PKEY_EC) { - if (!ECDSA_sign(pkey->save_type, - &(data[MD5_DIGEST_LENGTH]), - SHA_DIGEST_LENGTH, &(p[2]), - (unsigned int *)&j, pkey->pkey.ec)) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_VERIFY, ERR_R_ECDSA_LIB); - goto err; - } - s2n(j, p); - n = j + 2; - } else -#endif - { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_VERIFY, ERR_R_INTERNAL_ERROR); - goto err; - } - - d = dtls1_set_message_header(s, d, - SSL3_MT_CERTIFICATE_VERIFY, n, 0, n); - - s->init_num = (int)n + DTLS1_HM_HEADER_LENGTH; - s->init_off = 0; - - /* buffer the message to handle re-xmits */ - dtls1_buffer_message(s, 0); - - s->state = SSL3_ST_CW_CERT_VRFY_B; - } - - /* s->state = SSL3_ST_CW_CERT_VRFY_B */ - return (dtls1_do_write(s, SSL3_RT_HANDSHAKE)); - err: - return (-1); -} - -int dtls1_send_client_certificate(SSL *s) -{ - X509 *x509 = NULL; - EVP_PKEY *pkey = NULL; - int i; - unsigned long l; - - if (s->state == SSL3_ST_CW_CERT_A) { - if ((s->cert == NULL) || - (s->cert->key->x509 == NULL) || - (s->cert->key->privatekey == NULL)) - s->state = SSL3_ST_CW_CERT_B; - else - s->state = SSL3_ST_CW_CERT_C; - } - - /* We need to get a client cert */ - if (s->state == SSL3_ST_CW_CERT_B) { - /* - * If we get an error, we need to ssl->rwstate=SSL_X509_LOOKUP; - * return(-1); We then get retied later - */ - i = 0; - i = ssl_do_client_cert_cb(s, &x509, &pkey); - if (i < 0) { - s->rwstate = SSL_X509_LOOKUP; - return (-1); - } - s->rwstate = SSL_NOTHING; - if ((i == 1) && (pkey != NULL) && (x509 != NULL)) { - s->state = SSL3_ST_CW_CERT_B; - if (!SSL_use_certificate(s, x509) || !SSL_use_PrivateKey(s, pkey)) - i = 0; - } else if (i == 1) { - i = 0; - SSLerr(SSL_F_DTLS1_SEND_CLIENT_CERTIFICATE, - SSL_R_BAD_DATA_RETURNED_BY_CALLBACK); - } - - if (x509 != NULL) - X509_free(x509); - if (pkey != NULL) - EVP_PKEY_free(pkey); - if (i == 0) { - if (s->version == SSL3_VERSION) { - s->s3->tmp.cert_req = 0; - ssl3_send_alert(s, SSL3_AL_WARNING, SSL_AD_NO_CERTIFICATE); - return (1); - } else { - s->s3->tmp.cert_req = 2; - } - } - - /* Ok, we have a cert */ - s->state = SSL3_ST_CW_CERT_C; - } - - if (s->state == SSL3_ST_CW_CERT_C) { - s->state = SSL3_ST_CW_CERT_D; - l = dtls1_output_cert_chain(s, - (s->s3->tmp.cert_req == - 2) ? NULL : s->cert->key->x509); - if (!l) { - SSLerr(SSL_F_DTLS1_SEND_CLIENT_CERTIFICATE, ERR_R_INTERNAL_ERROR); - ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_INTERNAL_ERROR); - return 0; - } - s->init_num = (int)l; - s->init_off = 0; - - /* set header called by dtls1_output_cert_chain() */ - - /* buffer the message to handle re-xmits */ - dtls1_buffer_message(s, 0); - } - /* SSL3_ST_CW_CERT_D */ - return (dtls1_do_write(s, SSL3_RT_HANDSHAKE)); -} diff --git a/libs/openssl/ssl/d1_enc.c b/libs/openssl/ssl/d1_enc.c deleted file mode 100644 index e876364f..00000000 --- a/libs/openssl/ssl/d1_enc.c +++ /dev/null @@ -1,251 +0,0 @@ -/* ssl/d1_enc.c */ -/* - * DTLS implementation written by Nagendra Modadugu - * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. - */ -/* ==================================================================== - * Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#include -#include "ssl_locl.h" -#ifndef OPENSSL_NO_COMP -# include -#endif -#include -#include -#include -#include -#ifdef KSSL_DEBUG -# include -#endif - -/*- - * dtls1_enc encrypts/decrypts the record in |s->wrec| / |s->rrec|, respectively. - * - * Returns: - * 0: (in non-constant time) if the record is publically invalid (i.e. too - * short etc). - * 1: if the record's padding is valid / the encryption was successful. - * -1: if the record's padding/AEAD-authenticator is invalid or, if sending, - * an internal error occured. - */ -int dtls1_enc(SSL *s, int send) -{ - SSL3_RECORD *rec; - EVP_CIPHER_CTX *ds; - unsigned long l; - int bs, i, j, k, mac_size = 0; - const EVP_CIPHER *enc; - - if (send) { - if (EVP_MD_CTX_md(s->write_hash)) { - mac_size = EVP_MD_CTX_size(s->write_hash); - if (mac_size < 0) - return -1; - } - ds = s->enc_write_ctx; - rec = &(s->s3->wrec); - if (s->enc_write_ctx == NULL) - enc = NULL; - else { - enc = EVP_CIPHER_CTX_cipher(s->enc_write_ctx); - if (rec->data != rec->input) - /* we can't write into the input stream */ - fprintf(stderr, "%s:%d: rec->data != rec->input\n", - __FILE__, __LINE__); - else if (EVP_CIPHER_block_size(ds->cipher) > 1) { - if (RAND_bytes(rec->input, EVP_CIPHER_block_size(ds->cipher)) - <= 0) - return -1; - } - } - } else { - if (EVP_MD_CTX_md(s->read_hash)) { - mac_size = EVP_MD_CTX_size(s->read_hash); - OPENSSL_assert(mac_size >= 0); - } - ds = s->enc_read_ctx; - rec = &(s->s3->rrec); - if (s->enc_read_ctx == NULL) - enc = NULL; - else - enc = EVP_CIPHER_CTX_cipher(s->enc_read_ctx); - } - -#ifdef KSSL_DEBUG - printf("dtls1_enc(%d)\n", send); -#endif /* KSSL_DEBUG */ - - if ((s->session == NULL) || (ds == NULL) || (enc == NULL)) { - memmove(rec->data, rec->input, rec->length); - rec->input = rec->data; - } else { - l = rec->length; - bs = EVP_CIPHER_block_size(ds->cipher); - - if ((bs != 1) && send) { - i = bs - ((int)l % bs); - - /* Add weird padding of upto 256 bytes */ - - /* we need to add 'i' padding bytes of value j */ - j = i - 1; - if (s->options & SSL_OP_TLS_BLOCK_PADDING_BUG) { - if (s->s3->flags & TLS1_FLAGS_TLS_PADDING_BUG) - j++; - } - for (k = (int)l; k < (int)(l + i); k++) - rec->input[k] = j; - l += i; - rec->length += i; - } -#ifdef KSSL_DEBUG - { - unsigned long ui; - printf("EVP_Cipher(ds=%p,rec->data=%p,rec->input=%p,l=%ld) ==>\n", - ds, rec->data, rec->input, l); - printf - ("\tEVP_CIPHER_CTX: %d buf_len, %d key_len [%d %d], %d iv_len\n", - ds->buf_len, ds->cipher->key_len, DES_KEY_SZ, - DES_SCHEDULE_SZ, ds->cipher->iv_len); - printf("\t\tIV: "); - for (i = 0; i < ds->cipher->iv_len; i++) - printf("%02X", ds->iv[i]); - printf("\n"); - printf("\trec->input="); - for (ui = 0; ui < l; ui++) - printf(" %02x", rec->input[ui]); - printf("\n"); - } -#endif /* KSSL_DEBUG */ - - if (!send) { - if (l == 0 || l % bs != 0) - return 0; - } - - if (EVP_Cipher(ds, rec->data, rec->input, l) < 1) - return -1; - -#ifdef KSSL_DEBUG - { - unsigned long i; - printf("\trec->data="); - for (i = 0; i < l; i++) - printf(" %02x", rec->data[i]); - printf("\n"); - } -#endif /* KSSL_DEBUG */ - - if ((bs != 1) && !send) - return tls1_cbc_remove_padding(s, rec, bs, mac_size); - } - return (1); -} diff --git a/libs/openssl/ssl/d1_lib.c b/libs/openssl/ssl/d1_lib.c index 011d7b7c..ee78921b 100644 --- a/libs/openssl/ssl/d1_lib.c +++ b/libs/openssl/ssl/d1_lib.c @@ -62,16 +62,18 @@ #include #include "ssl_locl.h" -#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) +#if defined(OPENSSL_SYS_VMS) # include #endif static void get_current_time(struct timeval *t); +static void dtls1_set_handshake_header(SSL *s, int type, unsigned long len); +static int dtls1_handshake_write(SSL *s); const char dtls1_version_str[] = "DTLSv1" OPENSSL_VERSION_PTEXT; int dtls1_listen(SSL *s, struct sockaddr *client); SSL3_ENC_METHOD DTLSv1_enc_data = { - dtls1_enc, + tls1_enc, tls1_mac, tls1_setup_key_block, tls1_generate_master_secret, @@ -83,6 +85,30 @@ SSL3_ENC_METHOD DTLSv1_enc_data = { TLS_MD_SERVER_FINISH_CONST, TLS_MD_SERVER_FINISH_CONST_SIZE, tls1_alert_code, tls1_export_keying_material, + SSL_ENC_FLAG_DTLS | SSL_ENC_FLAG_EXPLICIT_IV, + DTLS1_HM_HEADER_LENGTH, + dtls1_set_handshake_header, + dtls1_handshake_write +}; + +SSL3_ENC_METHOD DTLSv1_2_enc_data = { + tls1_enc, + tls1_mac, + tls1_setup_key_block, + tls1_generate_master_secret, + tls1_change_cipher_state, + tls1_final_finish_mac, + TLS1_FINISH_MAC_LENGTH, + tls1_cert_verify_mac, + TLS_MD_CLIENT_FINISH_CONST, TLS_MD_CLIENT_FINISH_CONST_SIZE, + TLS_MD_SERVER_FINISH_CONST, TLS_MD_SERVER_FINISH_CONST_SIZE, + tls1_alert_code, + tls1_export_keying_material, + SSL_ENC_FLAG_DTLS | SSL_ENC_FLAG_EXPLICIT_IV | SSL_ENC_FLAG_SIGALGS + | SSL_ENC_FLAG_SHA256_PRF | SSL_ENC_FLAG_TLS1_2_CIPHERS, + DTLS1_HM_HEADER_LENGTH, + dtls1_set_handshake_header, + dtls1_handshake_write }; long dtls1_default_timeout(void) @@ -244,9 +270,11 @@ void dtls1_clear(SSL *s) ssl3_clear(s); if (s->options & SSL_OP_CISCO_ANYCONNECT) - s->version = DTLS1_BAD_VER; + s->client_version = s->version = DTLS1_BAD_VER; + else if (s->method->version == DTLS_ANY_VERSION) + s->version = DTLS1_2_VERSION; else - s->version = DTLS1_VERSION; + s->version = s->method->version; } long dtls1_ctrl(SSL *s, int cmd, long larg, void *parg) @@ -271,14 +299,22 @@ long dtls1_ctrl(SSL *s, int cmd, long larg, void *parg) * highest enabled version (according to s->ctx->method, as version * negotiation may have changed s->method). */ -#if DTLS_MAX_VERSION != DTLS1_VERSION -# error Code needs update for DTLS_method() support beyond DTLS1_VERSION. -#endif + if (s->version == s->ctx->method->version) + return 1; /* - * Just one protocol version is supported so far; fail closed if the - * version is not as expected. + * Apparently we're using a version-flexible SSL_METHOD (not at its + * highest protocol version). */ - return s->version == DTLS_MAX_VERSION; + if (s->ctx->method->version == DTLS_method()->version) { +#if DTLS_MAX_VERSION != DTLS1_2_VERSION +# error Code needs update for DTLS_method() support beyond DTLS1_2_VERSION. +#endif + if (!(s->options & SSL_OP_NO_DTLSv1_2)) + return s->version == DTLS1_2_VERSION; + if (!(s->options & SSL_OP_NO_DTLSv1)) + return s->version == DTLS1_VERSION; + } + return 0; /* Unexpected state; fail closed. */ case DTLS_CTRL_SET_LINK_MTU: if (larg < (long)dtls1_link_min_mtu()) return 0; @@ -477,11 +513,22 @@ int dtls1_handle_timeout(SSL *s) static void get_current_time(struct timeval *t) { -#ifdef OPENSSL_SYS_WIN32 - struct _timeb tb; - _ftime(&tb); - t->tv_sec = (long)tb.time; - t->tv_usec = (long)tb.millitm * 1000; +#if defined(_WIN32) + SYSTEMTIME st; + union { + unsigned __int64 ul; + FILETIME ft; + } now; + + GetSystemTime(&st); + SystemTimeToFileTime(&st, &now.ft); +# ifdef __MINGW32__ + now.ul -= 116444736000000000ULL; +# else + now.ul -= 116444736000000000UI64; /* re-bias to 1/1/1970 */ +# endif + t->tv_sec = (long)(now.ul / 10000000); + t->tv_usec = ((int)(now.ul % 10000000)) / 10; #elif defined(OPENSSL_SYS_VMS) struct timeb tb; ftime(&tb); @@ -509,3 +556,18 @@ int dtls1_listen(SSL *s, struct sockaddr *client) (void)BIO_dgram_get_peer(SSL_get_rbio(s), client); return 1; } + +static void dtls1_set_handshake_header(SSL *s, int htype, unsigned long len) +{ + unsigned char *p = (unsigned char *)s->init_buf->data; + dtls1_set_message_header(s, p, htype, len, 0, len); + s->init_num = (int)len + DTLS1_HM_HEADER_LENGTH; + s->init_off = 0; + /* Buffer the message to handle re-xmits */ + dtls1_buffer_message(s, 0); +} + +static int dtls1_handshake_write(SSL *s) +{ + return dtls1_do_write(s, SSL3_RT_HANDSHAKE); +} diff --git a/libs/openssl/ssl/d1_meth.c b/libs/openssl/ssl/d1_meth.c index aaa718c9..899010e9 100644 --- a/libs/openssl/ssl/d1_meth.c +++ b/libs/openssl/ssl/d1_meth.c @@ -64,11 +64,27 @@ static const SSL_METHOD *dtls1_get_method(int ver); static const SSL_METHOD *dtls1_get_method(int ver) { - if (ver == DTLS1_VERSION) - return (DTLSv1_method()); + if (ver == DTLS_ANY_VERSION) + return DTLS_method(); + else if (ver == DTLS1_VERSION) + return DTLSv1_method(); + else if (ver == DTLS1_2_VERSION) + return DTLSv1_2_method(); else - return (NULL); + return NULL; } -IMPLEMENT_dtls1_meth_func(DTLSv1_method, - dtls1_accept, dtls1_connect, dtls1_get_method) +IMPLEMENT_dtls1_meth_func(DTLS1_VERSION, + DTLSv1_method, + dtls1_accept, + dtls1_connect, dtls1_get_method, DTLSv1_enc_data) + +IMPLEMENT_dtls1_meth_func(DTLS1_2_VERSION, + DTLSv1_2_method, + dtls1_accept, + dtls1_connect, dtls1_get_method, DTLSv1_2_enc_data) + +IMPLEMENT_dtls1_meth_func(DTLS_ANY_VERSION, + DTLS_method, + dtls1_accept, + dtls1_connect, dtls1_get_method, DTLSv1_2_enc_data) diff --git a/libs/openssl/ssl/d1_pkt.c b/libs/openssl/ssl/d1_pkt.c index d659ed42..fe30ec7d 100644 --- a/libs/openssl/ssl/d1_pkt.c +++ b/libs/openssl/ssl/d1_pkt.c @@ -612,6 +612,10 @@ int dtls1_get_record(SSL *s) p = s->packet; + if (s->msg_callback) + s->msg_callback(0, 0, SSL3_RT_HEADER, p, DTLS1_RT_HEADER_LENGTH, + s, s->msg_callback_arg); + /* Pull apart the header into the DTLS1_RECORD */ rr->type = *(p++); ssl_major = *(p++); @@ -1488,10 +1492,10 @@ int do_dtls1_write(SSL *s, int type, const unsigned char *buf, unsigned char *p, *pseq; int i, mac_size, clear = 0; int prefix_len = 0; + int eivlen; SSL3_RECORD *wr; SSL3_BUFFER *wb; SSL_SESSION *sess; - int bs; /* * first check if there is a SSL3_BUFFER still being written out. This @@ -1570,27 +1574,41 @@ int do_dtls1_write(SSL *s, int type, const unsigned char *buf, *(p++) = type & 0xff; wr->type = type; - - *(p++) = (s->version >> 8); - *(p++) = s->version & 0xff; + /* + * Special case: for hello verify request, client version 1.0 and we + * haven't decided which version to use yet send back using version 1.0 + * header: otherwise some clients will ignore it. + */ + if (s->method->version == DTLS_ANY_VERSION) { + *(p++) = DTLS1_VERSION >> 8; + *(p++) = DTLS1_VERSION & 0xff; + } else { + *(p++) = s->version >> 8; + *(p++) = s->version & 0xff; + } /* field where we are to write out packet epoch, seq num and len */ pseq = p; p += 10; - /* lets setup the record stuff. */ - - /* - * Make space for the explicit IV in case of CBC. (this is a bit of a - * boundary violation, but what the heck). - */ - if (s->enc_write_ctx && - (EVP_CIPHER_mode(s->enc_write_ctx->cipher) & EVP_CIPH_CBC_MODE)) - bs = EVP_CIPHER_block_size(s->enc_write_ctx->cipher); - else - bs = 0; + /* Explicit IV length, block ciphers appropriate version flag */ + if (s->enc_write_ctx) { + int mode = EVP_CIPHER_CTX_mode(s->enc_write_ctx); + if (mode == EVP_CIPH_CBC_MODE) { + eivlen = EVP_CIPHER_CTX_iv_length(s->enc_write_ctx); + if (eivlen <= 1) + eivlen = 0; + } + /* Need explicit part of IV for GCM mode */ + else if (mode == EVP_CIPH_GCM_MODE) + eivlen = EVP_GCM_TLS_EXPLICIT_IV_LEN; + else + eivlen = 0; + } else + eivlen = 0; - wr->data = p + bs; /* make room for IV in case of CBC */ + /* lets setup the record stuff. */ + wr->data = p + eivlen; /* make room for IV in case of CBC */ wr->length = (int)len; wr->input = (unsigned char *)buf; @@ -1616,7 +1634,7 @@ int do_dtls1_write(SSL *s, int type, const unsigned char *buf, */ if (mac_size != 0) { - if (s->method->ssl3_enc->mac(s, &(p[wr->length + bs]), 1) < 0) + if (s->method->ssl3_enc->mac(s, &(p[wr->length + eivlen]), 1) < 0) goto err; wr->length += mac_size; } @@ -1625,14 +1643,8 @@ int do_dtls1_write(SSL *s, int type, const unsigned char *buf, wr->input = p; wr->data = p; - /* ssl3_enc can only have an error on read */ - if (bs) { /* bs != 0 in case of CBC */ - RAND_pseudo_bytes(p, bs); - /* - * master IV and last CBC residue stand for the rest of randomness - */ - wr->length += bs; - } + if (eivlen) + wr->length += eivlen; if (s->method->ssl3_enc->enc(s, 1) < 1) goto err; @@ -1656,6 +1668,10 @@ int do_dtls1_write(SSL *s, int type, const unsigned char *buf, pseq += 6; s2n(wr->length, pseq); + if (s->msg_callback) + s->msg_callback(1, 0, SSL3_RT_HEADER, pseq - DTLS1_RT_HEADER_LENGTH, + DTLS1_RT_HEADER_LENGTH, s, s->msg_callback_arg); + /* * we should now have wr->data pointing to the encrypted data, which is * wr->length long diff --git a/libs/openssl/ssl/d1_srtp.c b/libs/openssl/ssl/d1_srtp.c index 6c6e07ce..64d0634a 100644 --- a/libs/openssl/ssl/d1_srtp.c +++ b/libs/openssl/ssl/d1_srtp.c @@ -117,11 +117,10 @@ #include #include #include "ssl_locl.h" +#include "srtp.h" #ifndef OPENSSL_NO_SRTP -# include "srtp.h" - static SRTP_PROTECTION_PROFILE srtp_known_profiles[] = { { "SRTP_AES128_CM_SHA1_80", diff --git a/libs/openssl/ssl/d1_srvr.c b/libs/openssl/ssl/d1_srvr.c index 41c7dc51..e677d880 100644 --- a/libs/openssl/ssl/d1_srvr.c +++ b/libs/openssl/ssl/d1_srvr.c @@ -131,15 +131,33 @@ static int dtls1_send_hello_verify_request(SSL *s); static const SSL_METHOD *dtls1_get_server_method(int ver) { - if (ver == DTLS1_VERSION) - return (DTLSv1_server_method()); + if (ver == DTLS_ANY_VERSION) + return DTLS_server_method(); + else if (ver == DTLS1_VERSION) + return DTLSv1_server_method(); + else if (ver == DTLS1_2_VERSION) + return DTLSv1_2_server_method(); else - return (NULL); + return NULL; } -IMPLEMENT_dtls1_meth_func(DTLSv1_server_method, +IMPLEMENT_dtls1_meth_func(DTLS1_VERSION, + DTLSv1_server_method, dtls1_accept, - ssl_undefined_function, dtls1_get_server_method) + ssl_undefined_function, + dtls1_get_server_method, DTLSv1_enc_data) + +IMPLEMENT_dtls1_meth_func(DTLS1_2_VERSION, + DTLSv1_2_server_method, + dtls1_accept, + ssl_undefined_function, + dtls1_get_server_method, DTLSv1_2_enc_data) + +IMPLEMENT_dtls1_meth_func(DTLS_ANY_VERSION, + DTLS_server_method, + dtls1_accept, + ssl_undefined_function, + dtls1_get_server_method, DTLSv1_2_enc_data) int dtls1_accept(SSL *s) { @@ -267,6 +285,19 @@ int dtls1_accept(SSL *s) ssl3_init_finished_mac(s); s->state = SSL3_ST_SR_CLNT_HELLO_A; s->ctx->stats.sess_accept++; + } else if (!s->s3->send_connection_binding && + !(s->options & + SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION)) { + /* + * Server attempting to renegotiate with client that doesn't + * support secure renegotiation. + */ + SSLerr(SSL_F_DTLS1_ACCEPT, + SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED); + ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_HANDSHAKE_FAILURE); + ret = -1; + s->state = SSL_ST_ERR; + goto end; } else { /* * s->state == SSL_ST_RENEGOTIATE, we will just send a @@ -284,7 +315,7 @@ int dtls1_accept(SSL *s) s->shutdown = 0; dtls1_clear_record_buffer(s); dtls1_start_timer(s); - ret = dtls1_send_hello_request(s); + ret = ssl3_send_hello_request(s); if (ret <= 0) goto end; s->s3->tmp.next_state = SSL3_ST_SR_CLNT_HELLO_A; @@ -392,7 +423,7 @@ int dtls1_accept(SSL *s) case SSL3_ST_SW_SRVR_HELLO_B: s->renegotiate = 2; dtls1_start_timer(s); - ret = dtls1_send_server_hello(s); + ret = ssl3_send_server_hello(s); if (ret <= 0) goto end; @@ -405,9 +436,13 @@ int dtls1_accept(SSL *s) snprintf((char *)labelbuffer, sizeof(DTLS1_SCTP_AUTH_LABEL), DTLS1_SCTP_AUTH_LABEL); - SSL_export_keying_material(s, sctpauthkey, - sizeof(sctpauthkey), labelbuffer, - sizeof(labelbuffer), NULL, 0, 0); + if (SSL_export_keying_material(s, sctpauthkey, + sizeof(sctpauthkey), labelbuffer, + sizeof(labelbuffer), NULL, 0, 0) <= 0) { + ret = -1; + s->state = SSL_ST_ERR; + goto end; + } BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY, sizeof(sctpauthkey), sctpauthkey); @@ -431,7 +466,7 @@ int dtls1_accept(SSL *s) if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL) && !(s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK)) { dtls1_start_timer(s); - ret = dtls1_send_server_certificate(s); + ret = ssl3_send_server_certificate(s); if (ret <= 0) goto end; #ifndef OPENSSL_NO_TLSEXT @@ -474,7 +509,7 @@ int dtls1_accept(SSL *s) #ifndef OPENSSL_NO_PSK || ((alg_k & SSL_kPSK) && s->ctx->psk_identity_hint) #endif - || (alg_k & SSL_kEDH) + || (alg_k & SSL_kDHE) || (alg_k & SSL_kEECDH) || ((alg_k & SSL_kRSA) && (s->cert->pkeys[SSL_PKEY_RSA_ENC].privatekey == NULL @@ -487,7 +522,7 @@ int dtls1_accept(SSL *s) ) ) { dtls1_start_timer(s); - ret = dtls1_send_server_key_exchange(s); + ret = ssl3_send_server_key_exchange(s); if (ret <= 0) goto end; } else @@ -541,7 +576,7 @@ int dtls1_accept(SSL *s) } else { s->s3->tmp.cert_request = 1; dtls1_start_timer(s); - ret = dtls1_send_certificate_request(s); + ret = ssl3_send_certificate_request(s); if (ret <= 0) goto end; #ifndef NETSCAPE_HANG_BUG @@ -569,7 +604,7 @@ int dtls1_accept(SSL *s) case SSL3_ST_SW_SRVR_DONE_A: case SSL3_ST_SW_SRVR_DONE_B: dtls1_start_timer(s); - ret = dtls1_send_server_done(s); + ret = ssl3_send_server_done(s); if (ret <= 0) goto end; s->s3->tmp.next_state = SSL3_ST_SR_CERT_A; @@ -597,22 +632,13 @@ int dtls1_accept(SSL *s) case SSL3_ST_SR_CERT_A: case SSL3_ST_SR_CERT_B: - /* Check for second client hello (MS SGC) */ - ret = ssl3_check_client_hello(s); - if (ret <= 0) - goto end; - if (ret == 2) { - dtls1_stop_timer(s); - s->state = SSL3_ST_SR_CLNT_HELLO_C; - } else { - if (s->s3->tmp.cert_request) { - ret = ssl3_get_client_certificate(s); - if (ret <= 0) - goto end; - } - s->init_num = 0; - s->state = SSL3_ST_SR_KEY_EXCH_A; + if (s->s3->tmp.cert_request) { + ret = ssl3_get_client_certificate(s); + if (ret <= 0) + goto end; } + s->init_num = 0; + s->state = SSL3_ST_SR_KEY_EXCH_A; break; case SSL3_ST_SR_KEY_EXCH_A: @@ -628,9 +654,13 @@ int dtls1_accept(SSL *s) snprintf((char *)labelbuffer, sizeof(DTLS1_SCTP_AUTH_LABEL), DTLS1_SCTP_AUTH_LABEL); - SSL_export_keying_material(s, sctpauthkey, + if (SSL_export_keying_material(s, sctpauthkey, sizeof(sctpauthkey), labelbuffer, - sizeof(labelbuffer), NULL, 0, 0); + sizeof(labelbuffer), NULL, 0, 0) <= 0) { + ret = -1; + s->state = SSL_ST_ERR; + goto end; + } BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY, sizeof(sctpauthkey), sctpauthkey); @@ -647,6 +677,25 @@ int dtls1_accept(SSL *s) */ s->state = SSL3_ST_SR_FINISHED_A; s->init_num = 0; + } else if (SSL_USE_SIGALGS(s)) { + s->state = SSL3_ST_SR_CERT_VRFY_A; + s->init_num = 0; + if (!s->session->peer) + break; + /* + * For sigalgs freeze the handshake buffer at this point and + * digest cached records. + */ + if (!s->s3->handshake_buffer) { + SSLerr(SSL_F_DTLS1_ACCEPT, ERR_R_INTERNAL_ERROR); + s->state = SSL_ST_ERR; + return -1; + } + s->s3->flags |= TLS1_FLAGS_KEEP_HANDSHAKE; + if (!ssl3_digest_cached_records(s)) { + s->state = SSL_ST_ERR; + return -1; + } } else { s->state = SSL3_ST_SR_CERT_VRFY_A; s->init_num = 0; @@ -714,7 +763,7 @@ int dtls1_accept(SSL *s) #ifndef OPENSSL_NO_TLSEXT case SSL3_ST_SW_SESSION_TICKET_A: case SSL3_ST_SW_SESSION_TICKET_B: - ret = dtls1_send_newsession_ticket(s); + ret = ssl3_send_newsession_ticket(s); if (ret <= 0) goto end; s->state = SSL3_ST_SW_CHANGE_A; @@ -776,13 +825,13 @@ int dtls1_accept(SSL *s) case SSL3_ST_SW_FINISHED_A: case SSL3_ST_SW_FINISHED_B: - ret = dtls1_send_finished(s, - SSL3_ST_SW_FINISHED_A, - SSL3_ST_SW_FINISHED_B, - s->method-> - ssl3_enc->server_finished_label, - s->method-> - ssl3_enc->server_finished_label_len); + ret = ssl3_send_finished(s, + SSL3_ST_SW_FINISHED_A, + SSL3_ST_SW_FINISHED_B, + s->method-> + ssl3_enc->server_finished_label, + s->method-> + ssl3_enc->server_finished_label_len); if (ret <= 0) goto end; s->state = SSL3_ST_SW_FLUSH; @@ -889,29 +938,6 @@ int dtls1_accept(SSL *s) return (ret); } -int dtls1_send_hello_request(SSL *s) -{ - unsigned char *p; - - if (s->state == SSL3_ST_SW_HELLO_REQ_A) { - p = (unsigned char *)s->init_buf->data; - p = dtls1_set_message_header(s, p, SSL3_MT_HELLO_REQUEST, 0, 0, 0); - - s->state = SSL3_ST_SW_HELLO_REQ_B; - /* number of bytes to write */ - s->init_num = DTLS1_HM_HEADER_LENGTH; - s->init_off = 0; - - /* - * no need to buffer this message, since there are no retransmit - * requests for it - */ - } - - /* SSL3_ST_SW_HELLO_REQ_B */ - return (dtls1_do_write(s, SSL3_RT_HANDSHAKE)); -} - int dtls1_send_hello_verify_request(SSL *s) { unsigned int msg_len; @@ -921,8 +947,9 @@ int dtls1_send_hello_verify_request(SSL *s) buf = (unsigned char *)s->init_buf->data; msg = p = &(buf[DTLS1_HM_HEADER_LENGTH]); - *(p++) = s->version >> 8; - *(p++) = s->version & 0xFF; + /* Always use DTLS 1.0 version: see RFC 6347 */ + *(p++) = DTLS1_VERSION >> 8; + *(p++) = DTLS1_VERSION & 0xFF; if (s->ctx->app_gen_cookie_cb == NULL || s->ctx->app_gen_cookie_cb(s, s->d1->cookie, @@ -951,788 +978,3 @@ int dtls1_send_hello_verify_request(SSL *s) /* s->state = DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B */ return (dtls1_do_write(s, SSL3_RT_HANDSHAKE)); } - -int dtls1_send_server_hello(SSL *s) -{ - unsigned char *buf; - unsigned char *p, *d; - int i; - unsigned int sl; - unsigned long l; - - if (s->state == SSL3_ST_SW_SRVR_HELLO_A) { - buf = (unsigned char *)s->init_buf->data; - p = s->s3->server_random; - ssl_fill_hello_random(s, 1, p, SSL3_RANDOM_SIZE); - /* Do the message type and length last */ - d = p = &(buf[DTLS1_HM_HEADER_LENGTH]); - - *(p++) = s->version >> 8; - *(p++) = s->version & 0xff; - - /* Random stuff */ - memcpy(p, s->s3->server_random, SSL3_RANDOM_SIZE); - p += SSL3_RANDOM_SIZE; - - /* - * now in theory we have 3 options to sending back the session id. - * If it is a re-use, we send back the old session-id, if it is a new - * session, we send back the new session-id or we send back a 0 - * length session-id if we want it to be single use. Currently I will - * not implement the '0' length session-id 12-Jan-98 - I'll now - * support the '0' length stuff. - */ - if (!(s->ctx->session_cache_mode & SSL_SESS_CACHE_SERVER)) - s->session->session_id_length = 0; - - sl = s->session->session_id_length; - if (sl > sizeof s->session->session_id) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_HELLO, ERR_R_INTERNAL_ERROR); - return -1; - } - *(p++) = sl; - memcpy(p, s->session->session_id, sl); - p += sl; - - /* put the cipher */ - if (s->s3->tmp.new_cipher == NULL) - return -1; - i = ssl3_put_cipher_by_char(s->s3->tmp.new_cipher, p); - p += i; - - /* put the compression method */ -#ifdef OPENSSL_NO_COMP - *(p++) = 0; -#else - if (s->s3->tmp.new_compression == NULL) - *(p++) = 0; - else - *(p++) = s->s3->tmp.new_compression->id; -#endif - -#ifndef OPENSSL_NO_TLSEXT - if (ssl_prepare_serverhello_tlsext(s) <= 0) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_HELLO, SSL_R_SERVERHELLO_TLSEXT); - return -1; - } - if ((p = - ssl_add_serverhello_tlsext(s, p, - buf + SSL3_RT_MAX_PLAIN_LENGTH)) == - NULL) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_HELLO, ERR_R_INTERNAL_ERROR); - return -1; - } -#endif - - /* do the header */ - l = (p - d); - d = buf; - - d = dtls1_set_message_header(s, d, SSL3_MT_SERVER_HELLO, l, 0, l); - - s->state = SSL3_ST_SW_SRVR_HELLO_B; - /* number of bytes to write */ - s->init_num = p - buf; - s->init_off = 0; - - /* buffer the message to handle re-xmits */ - dtls1_buffer_message(s, 0); - } - - /* SSL3_ST_SW_SRVR_HELLO_B */ - return (dtls1_do_write(s, SSL3_RT_HANDSHAKE)); -} - -int dtls1_send_server_done(SSL *s) -{ - unsigned char *p; - - if (s->state == SSL3_ST_SW_SRVR_DONE_A) { - p = (unsigned char *)s->init_buf->data; - - /* do the header */ - p = dtls1_set_message_header(s, p, SSL3_MT_SERVER_DONE, 0, 0, 0); - - s->state = SSL3_ST_SW_SRVR_DONE_B; - /* number of bytes to write */ - s->init_num = DTLS1_HM_HEADER_LENGTH; - s->init_off = 0; - - /* buffer the message to handle re-xmits */ - dtls1_buffer_message(s, 0); - } - - /* SSL3_ST_SW_SRVR_DONE_B */ - return (dtls1_do_write(s, SSL3_RT_HANDSHAKE)); -} - -int dtls1_send_server_key_exchange(SSL *s) -{ -#ifndef OPENSSL_NO_RSA - unsigned char *q; - int j, num; - RSA *rsa; - unsigned char md_buf[MD5_DIGEST_LENGTH + SHA_DIGEST_LENGTH]; - unsigned int u; -#endif -#ifndef OPENSSL_NO_DH - DH *dh = NULL, *dhp; -#endif -#ifndef OPENSSL_NO_ECDH - EC_KEY *ecdh = NULL, *ecdhp; - unsigned char *encodedPoint = NULL; - int encodedlen = 0; - int curve_id = 0; - BN_CTX *bn_ctx = NULL; -#endif - EVP_PKEY *pkey; - unsigned char *p, *d; - int al, i; - unsigned long type; - int n; - CERT *cert; - BIGNUM *r[4]; - int nr[4], kn; - BUF_MEM *buf; - EVP_MD_CTX md_ctx; - - EVP_MD_CTX_init(&md_ctx); - if (s->state == SSL3_ST_SW_KEY_EXCH_A) { - type = s->s3->tmp.new_cipher->algorithm_mkey; - cert = s->cert; - - buf = s->init_buf; - - r[0] = r[1] = r[2] = r[3] = NULL; - n = 0; -#ifndef OPENSSL_NO_RSA - if (type & SSL_kRSA) { - rsa = cert->rsa_tmp; - if ((rsa == NULL) && (s->cert->rsa_tmp_cb != NULL)) { - rsa = s->cert->rsa_tmp_cb(s, - SSL_C_IS_EXPORT(s->s3-> - tmp.new_cipher), - SSL_C_EXPORT_PKEYLENGTH(s->s3-> - tmp.new_cipher)); - if (rsa == NULL) { - al = SSL_AD_HANDSHAKE_FAILURE; - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - SSL_R_ERROR_GENERATING_TMP_RSA_KEY); - goto f_err; - } - RSA_up_ref(rsa); - cert->rsa_tmp = rsa; - } - if (rsa == NULL) { - al = SSL_AD_HANDSHAKE_FAILURE; - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - SSL_R_MISSING_TMP_RSA_KEY); - goto f_err; - } - r[0] = rsa->n; - r[1] = rsa->e; - s->s3->tmp.use_rsa_tmp = 1; - } else -#endif -#ifndef OPENSSL_NO_DH - if (type & SSL_kEDH) { - dhp = cert->dh_tmp; - if ((dhp == NULL) && (s->cert->dh_tmp_cb != NULL)) - dhp = s->cert->dh_tmp_cb(s, - SSL_C_IS_EXPORT(s->s3-> - tmp.new_cipher), - SSL_C_EXPORT_PKEYLENGTH(s->s3-> - tmp.new_cipher)); - if (dhp == NULL) { - al = SSL_AD_HANDSHAKE_FAILURE; - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - SSL_R_MISSING_TMP_DH_KEY); - goto f_err; - } - - if (s->s3->tmp.dh != NULL) { - DH_free(dh); - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - ERR_R_INTERNAL_ERROR); - goto err; - } - - if ((dh = DHparams_dup(dhp)) == NULL) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, ERR_R_DH_LIB); - goto err; - } - - s->s3->tmp.dh = dh; - if ((dhp->pub_key == NULL || - dhp->priv_key == NULL || - (s->options & SSL_OP_SINGLE_DH_USE))) { - if (!DH_generate_key(dh)) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - ERR_R_DH_LIB); - goto err; - } - } else { - dh->pub_key = BN_dup(dhp->pub_key); - dh->priv_key = BN_dup(dhp->priv_key); - if ((dh->pub_key == NULL) || (dh->priv_key == NULL)) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - ERR_R_DH_LIB); - goto err; - } - } - r[0] = dh->p; - r[1] = dh->g; - r[2] = dh->pub_key; - } else -#endif -#ifndef OPENSSL_NO_ECDH - if (type & SSL_kEECDH) { - const EC_GROUP *group; - - ecdhp = cert->ecdh_tmp; - if ((ecdhp == NULL) && (s->cert->ecdh_tmp_cb != NULL)) { - ecdhp = s->cert->ecdh_tmp_cb(s, - SSL_C_IS_EXPORT(s->s3-> - tmp.new_cipher), - SSL_C_EXPORT_PKEYLENGTH(s-> - s3->tmp.new_cipher)); - } - if (ecdhp == NULL) { - al = SSL_AD_HANDSHAKE_FAILURE; - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - SSL_R_MISSING_TMP_ECDH_KEY); - goto f_err; - } - - if (s->s3->tmp.ecdh != NULL) { - EC_KEY_free(s->s3->tmp.ecdh); - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - ERR_R_INTERNAL_ERROR); - goto err; - } - - /* Duplicate the ECDH structure. */ - if (ecdhp == NULL) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, ERR_R_ECDH_LIB); - goto err; - } - if ((ecdh = EC_KEY_dup(ecdhp)) == NULL) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, ERR_R_ECDH_LIB); - goto err; - } - - s->s3->tmp.ecdh = ecdh; - if ((EC_KEY_get0_public_key(ecdh) == NULL) || - (EC_KEY_get0_private_key(ecdh) == NULL) || - (s->options & SSL_OP_SINGLE_ECDH_USE)) { - if (!EC_KEY_generate_key(ecdh)) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - ERR_R_ECDH_LIB); - goto err; - } - } - - if (((group = EC_KEY_get0_group(ecdh)) == NULL) || - (EC_KEY_get0_public_key(ecdh) == NULL) || - (EC_KEY_get0_private_key(ecdh) == NULL)) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, ERR_R_ECDH_LIB); - goto err; - } - - if (SSL_C_IS_EXPORT(s->s3->tmp.new_cipher) && - (EC_GROUP_get_degree(group) > 163)) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - SSL_R_ECGROUP_TOO_LARGE_FOR_CIPHER); - goto err; - } - - /* - * XXX: For now, we only support ephemeral ECDH keys over named - * (not generic) curves. For supported named curves, curve_id is - * non-zero. - */ - if ((curve_id = - tls1_ec_nid2curve_id(EC_GROUP_get_curve_name(group))) - == 0) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - SSL_R_UNSUPPORTED_ELLIPTIC_CURVE); - goto err; - } - - /* - * Encode the public key. First check the size of encoding and - * allocate memory accordingly. - */ - encodedlen = EC_POINT_point2oct(group, - EC_KEY_get0_public_key(ecdh), - POINT_CONVERSION_UNCOMPRESSED, - NULL, 0, NULL); - - encodedPoint = (unsigned char *) - OPENSSL_malloc(encodedlen * sizeof(unsigned char)); - bn_ctx = BN_CTX_new(); - if ((encodedPoint == NULL) || (bn_ctx == NULL)) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - ERR_R_MALLOC_FAILURE); - goto err; - } - - encodedlen = EC_POINT_point2oct(group, - EC_KEY_get0_public_key(ecdh), - POINT_CONVERSION_UNCOMPRESSED, - encodedPoint, encodedlen, bn_ctx); - - if (encodedlen == 0) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, ERR_R_ECDH_LIB); - goto err; - } - - BN_CTX_free(bn_ctx); - bn_ctx = NULL; - - /* - * XXX: For now, we only support named (not generic) curves in - * ECDH ephemeral key exchanges. In this situation, we need four - * additional bytes to encode the entire ServerECDHParams - * structure. - */ - n = 4 + encodedlen; - - /* - * We'll generate the serverKeyExchange message explicitly so we - * can set these to NULLs - */ - r[0] = NULL; - r[1] = NULL; - r[2] = NULL; - r[3] = NULL; - } else -#endif /* !OPENSSL_NO_ECDH */ -#ifndef OPENSSL_NO_PSK - if (type & SSL_kPSK) { - /* - * reserve size for record length and PSK identity hint - */ - n += 2 + strlen(s->ctx->psk_identity_hint); - } else -#endif /* !OPENSSL_NO_PSK */ - { - al = SSL_AD_HANDSHAKE_FAILURE; - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE); - goto f_err; - } - for (i = 0; r[i] != NULL; i++) { - nr[i] = BN_num_bytes(r[i]); - n += 2 + nr[i]; - } - - if (!(s->s3->tmp.new_cipher->algorithm_auth & SSL_aNULL) - && !(s->s3->tmp.new_cipher->algorithm_mkey & SSL_kPSK)) { - if ((pkey = ssl_get_sign_pkey(s, s->s3->tmp.new_cipher, NULL)) - == NULL) { - al = SSL_AD_DECODE_ERROR; - goto f_err; - } - kn = EVP_PKEY_size(pkey); - } else { - pkey = NULL; - kn = 0; - } - - if (!BUF_MEM_grow_clean(buf, n + DTLS1_HM_HEADER_LENGTH + kn)) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, ERR_LIB_BUF); - goto err; - } - d = (unsigned char *)s->init_buf->data; - p = &(d[DTLS1_HM_HEADER_LENGTH]); - - for (i = 0; r[i] != NULL; i++) { - s2n(nr[i], p); - BN_bn2bin(r[i], p); - p += nr[i]; - } - -#ifndef OPENSSL_NO_ECDH - if (type & SSL_kEECDH) { - /* - * XXX: For now, we only support named (not generic) curves. In - * this situation, the serverKeyExchange message has: [1 byte - * CurveType], [2 byte CurveName] [1 byte length of encoded - * point], followed by the actual encoded point itself - */ - *p = NAMED_CURVE_TYPE; - p += 1; - *p = 0; - p += 1; - *p = curve_id; - p += 1; - *p = encodedlen; - p += 1; - memcpy((unsigned char *)p, - (unsigned char *)encodedPoint, encodedlen); - OPENSSL_free(encodedPoint); - encodedPoint = NULL; - p += encodedlen; - } -#endif - -#ifndef OPENSSL_NO_PSK - if (type & SSL_kPSK) { - /* copy PSK identity hint */ - s2n(strlen(s->ctx->psk_identity_hint), p); - strncpy((char *)p, s->ctx->psk_identity_hint, - strlen(s->ctx->psk_identity_hint)); - p += strlen(s->ctx->psk_identity_hint); - } -#endif - - /* not anonymous */ - if (pkey != NULL) { - /* - * n is the length of the params, they start at - * &(d[DTLS1_HM_HEADER_LENGTH]) and p points to the space at the - * end. - */ -#ifndef OPENSSL_NO_RSA - if (pkey->type == EVP_PKEY_RSA) { - q = md_buf; - j = 0; - for (num = 2; num > 0; num--) { - EVP_DigestInit_ex(&md_ctx, (num == 2) - ? s->ctx->md5 : s->ctx->sha1, NULL); - EVP_DigestUpdate(&md_ctx, &(s->s3->client_random[0]), - SSL3_RANDOM_SIZE); - EVP_DigestUpdate(&md_ctx, &(s->s3->server_random[0]), - SSL3_RANDOM_SIZE); - EVP_DigestUpdate(&md_ctx, &(d[DTLS1_HM_HEADER_LENGTH]), - n); - EVP_DigestFinal_ex(&md_ctx, q, (unsigned int *)&i); - q += i; - j += i; - } - if (RSA_sign(NID_md5_sha1, md_buf, j, - &(p[2]), &u, pkey->pkey.rsa) <= 0) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, ERR_LIB_RSA); - goto err; - } - s2n(u, p); - n += u + 2; - } else -#endif -#if !defined(OPENSSL_NO_DSA) - if (pkey->type == EVP_PKEY_DSA) { - /* lets do DSS */ - EVP_SignInit_ex(&md_ctx, EVP_dss1(), NULL); - EVP_SignUpdate(&md_ctx, &(s->s3->client_random[0]), - SSL3_RANDOM_SIZE); - EVP_SignUpdate(&md_ctx, &(s->s3->server_random[0]), - SSL3_RANDOM_SIZE); - EVP_SignUpdate(&md_ctx, &(d[DTLS1_HM_HEADER_LENGTH]), n); - if (!EVP_SignFinal(&md_ctx, &(p[2]), - (unsigned int *)&i, pkey)) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, ERR_LIB_DSA); - goto err; - } - s2n(i, p); - n += i + 2; - } else -#endif -#if !defined(OPENSSL_NO_ECDSA) - if (pkey->type == EVP_PKEY_EC) { - /* let's do ECDSA */ - EVP_SignInit_ex(&md_ctx, EVP_ecdsa(), NULL); - EVP_SignUpdate(&md_ctx, &(s->s3->client_random[0]), - SSL3_RANDOM_SIZE); - EVP_SignUpdate(&md_ctx, &(s->s3->server_random[0]), - SSL3_RANDOM_SIZE); - EVP_SignUpdate(&md_ctx, &(d[DTLS1_HM_HEADER_LENGTH]), n); - if (!EVP_SignFinal(&md_ctx, &(p[2]), - (unsigned int *)&i, pkey)) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - ERR_LIB_ECDSA); - goto err; - } - s2n(i, p); - n += i + 2; - } else -#endif - { - /* Is this error check actually needed? */ - al = SSL_AD_HANDSHAKE_FAILURE; - SSLerr(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE, - SSL_R_UNKNOWN_PKEY_TYPE); - goto f_err; - } - } - - d = dtls1_set_message_header(s, d, - SSL3_MT_SERVER_KEY_EXCHANGE, n, 0, n); - - /* - * we should now have things packed up, so lets send it off - */ - s->init_num = n + DTLS1_HM_HEADER_LENGTH; - s->init_off = 0; - - /* buffer the message to handle re-xmits */ - dtls1_buffer_message(s, 0); - } - - s->state = SSL3_ST_SW_KEY_EXCH_B; - EVP_MD_CTX_cleanup(&md_ctx); - return (dtls1_do_write(s, SSL3_RT_HANDSHAKE)); - f_err: - ssl3_send_alert(s, SSL3_AL_FATAL, al); - err: -#ifndef OPENSSL_NO_ECDH - if (encodedPoint != NULL) - OPENSSL_free(encodedPoint); - BN_CTX_free(bn_ctx); -#endif - EVP_MD_CTX_cleanup(&md_ctx); - return (-1); -} - -int dtls1_send_certificate_request(SSL *s) -{ - unsigned char *p, *d; - int i, j, nl, off, n; - STACK_OF(X509_NAME) *sk = NULL; - X509_NAME *name; - BUF_MEM *buf; - unsigned int msg_len; - - if (s->state == SSL3_ST_SW_CERT_REQ_A) { - buf = s->init_buf; - - d = p = (unsigned char *)&(buf->data[DTLS1_HM_HEADER_LENGTH]); - - /* get the list of acceptable cert types */ - p++; - n = ssl3_get_req_cert_type(s, p); - d[0] = n; - p += n; - n++; - - off = n; - p += 2; - n += 2; - - sk = SSL_get_client_CA_list(s); - nl = 0; - if (sk != NULL) { - for (i = 0; i < sk_X509_NAME_num(sk); i++) { - name = sk_X509_NAME_value(sk, i); - j = i2d_X509_NAME(name, NULL); - if (!BUF_MEM_grow_clean - (buf, DTLS1_HM_HEADER_LENGTH + n + j + 2)) { - SSLerr(SSL_F_DTLS1_SEND_CERTIFICATE_REQUEST, - ERR_R_BUF_LIB); - goto err; - } - p = (unsigned char *)&(buf->data[DTLS1_HM_HEADER_LENGTH + n]); - if (!(s->options & SSL_OP_NETSCAPE_CA_DN_BUG)) { - s2n(j, p); - i2d_X509_NAME(name, &p); - n += 2 + j; - nl += 2 + j; - } else { - d = p; - i2d_X509_NAME(name, &p); - j -= 2; - s2n(j, d); - j += 2; - n += j; - nl += j; - } - } - } - /* else no CA names */ - p = (unsigned char *)&(buf->data[DTLS1_HM_HEADER_LENGTH + off]); - s2n(nl, p); - - d = (unsigned char *)buf->data; - *(d++) = SSL3_MT_CERTIFICATE_REQUEST; - l2n3(n, d); - s2n(s->d1->handshake_write_seq, d); - s->d1->handshake_write_seq++; - - /* - * we should now have things packed up, so lets send it off - */ - - s->init_num = n + DTLS1_HM_HEADER_LENGTH; - s->init_off = 0; -#ifdef NETSCAPE_HANG_BUG -/* XXX: what to do about this? */ - p = (unsigned char *)s->init_buf->data + s->init_num; - - /* do the header */ - *(p++) = SSL3_MT_SERVER_DONE; - *(p++) = 0; - *(p++) = 0; - *(p++) = 0; - s->init_num += 4; -#endif - - /* XDTLS: set message header ? */ - msg_len = s->init_num - DTLS1_HM_HEADER_LENGTH; - dtls1_set_message_header(s, (void *)s->init_buf->data, - SSL3_MT_CERTIFICATE_REQUEST, msg_len, 0, - msg_len); - - /* buffer the message to handle re-xmits */ - dtls1_buffer_message(s, 0); - - s->state = SSL3_ST_SW_CERT_REQ_B; - } - - /* SSL3_ST_SW_CERT_REQ_B */ - return (dtls1_do_write(s, SSL3_RT_HANDSHAKE)); - err: - return (-1); -} - -int dtls1_send_server_certificate(SSL *s) -{ - unsigned long l; - X509 *x; - - if (s->state == SSL3_ST_SW_CERT_A) { - x = ssl_get_server_send_cert(s); - if (x == NULL) { - /* VRS: allow null cert if auth == KRB5 */ - if ((s->s3->tmp.new_cipher->algorithm_mkey != SSL_kKRB5) || - (s->s3->tmp.new_cipher->algorithm_auth != SSL_aKRB5)) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_CERTIFICATE, - ERR_R_INTERNAL_ERROR); - return (0); - } - } - - l = dtls1_output_cert_chain(s, x); - if (!l) { - SSLerr(SSL_F_DTLS1_SEND_SERVER_CERTIFICATE, ERR_R_INTERNAL_ERROR); - return (0); - } - s->state = SSL3_ST_SW_CERT_B; - s->init_num = (int)l; - s->init_off = 0; - - /* buffer the message to handle re-xmits */ - dtls1_buffer_message(s, 0); - } - - /* SSL3_ST_SW_CERT_B */ - return (dtls1_do_write(s, SSL3_RT_HANDSHAKE)); -} - -#ifndef OPENSSL_NO_TLSEXT -int dtls1_send_newsession_ticket(SSL *s) -{ - if (s->state == SSL3_ST_SW_SESSION_TICKET_A) { - unsigned char *p, *senc, *macstart; - int len, slen; - unsigned int hlen, msg_len; - EVP_CIPHER_CTX ctx; - HMAC_CTX hctx; - SSL_CTX *tctx = s->initial_ctx; - unsigned char iv[EVP_MAX_IV_LENGTH]; - unsigned char key_name[16]; - - /* get session encoding length */ - slen = i2d_SSL_SESSION(s->session, NULL); - /* - * Some length values are 16 bits, so forget it if session is too - * long - */ - if (slen > 0xFF00) - return -1; - /* - * Grow buffer if need be: the length calculation is as follows 12 - * (DTLS handshake message header) + 4 (ticket lifetime hint) + 2 - * (ticket length) + 16 (key name) + max_iv_len (iv length) + - * session_length + max_enc_block_size (max encrypted session length) - * + max_md_size (HMAC). - */ - if (!BUF_MEM_grow(s->init_buf, - DTLS1_HM_HEADER_LENGTH + 22 + EVP_MAX_IV_LENGTH + - EVP_MAX_BLOCK_LENGTH + EVP_MAX_MD_SIZE + slen)) - return -1; - senc = OPENSSL_malloc(slen); - if (!senc) - return -1; - p = senc; - i2d_SSL_SESSION(s->session, &p); - - p = (unsigned char *)&(s->init_buf->data[DTLS1_HM_HEADER_LENGTH]); - EVP_CIPHER_CTX_init(&ctx); - HMAC_CTX_init(&hctx); - /* - * Initialize HMAC and cipher contexts. If callback present it does - * all the work otherwise use generated values from parent ctx. - */ - if (tctx->tlsext_ticket_key_cb) { - if (tctx->tlsext_ticket_key_cb(s, key_name, iv, &ctx, - &hctx, 1) < 0) { - OPENSSL_free(senc); - return -1; - } - } else { - RAND_pseudo_bytes(iv, 16); - EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, - tctx->tlsext_tick_aes_key, iv); - HMAC_Init_ex(&hctx, tctx->tlsext_tick_hmac_key, 16, - tlsext_tick_md(), NULL); - memcpy(key_name, tctx->tlsext_tick_key_name, 16); - } - l2n(s->session->tlsext_tick_lifetime_hint, p); - /* Skip ticket length for now */ - p += 2; - /* Output key name */ - macstart = p; - memcpy(p, key_name, 16); - p += 16; - /* output IV */ - memcpy(p, iv, EVP_CIPHER_CTX_iv_length(&ctx)); - p += EVP_CIPHER_CTX_iv_length(&ctx); - /* Encrypt session data */ - EVP_EncryptUpdate(&ctx, p, &len, senc, slen); - p += len; - EVP_EncryptFinal(&ctx, p, &len); - p += len; - EVP_CIPHER_CTX_cleanup(&ctx); - - HMAC_Update(&hctx, macstart, p - macstart); - HMAC_Final(&hctx, p, &hlen); - HMAC_CTX_cleanup(&hctx); - - p += hlen; - /* Now write out lengths: p points to end of data written */ - /* Total length */ - len = p - (unsigned char *)(s->init_buf->data); - /* Ticket length */ - p = (unsigned char *)&(s->init_buf->data[DTLS1_HM_HEADER_LENGTH]) + 4; - s2n(len - DTLS1_HM_HEADER_LENGTH - 6, p); - - /* number of bytes to write */ - s->init_num = len; - s->state = SSL3_ST_SW_SESSION_TICKET_B; - s->init_off = 0; - OPENSSL_free(senc); - - /* XDTLS: set message header ? */ - msg_len = s->init_num - DTLS1_HM_HEADER_LENGTH; - dtls1_set_message_header(s, (void *)s->init_buf->data, - SSL3_MT_NEWSESSION_TICKET, msg_len, 0, - msg_len); - - /* buffer the message to handle re-xmits */ - dtls1_buffer_message(s, 0); - } - - /* SSL3_ST_SW_SESSION_TICKET_B */ - return (dtls1_do_write(s, SSL3_RT_HANDSHAKE)); -} -#endif diff --git a/libs/openssl/ssl/dtls1.h b/libs/openssl/ssl/dtls1.h index 8deb299a..30bbcf27 100644 --- a/libs/openssl/ssl/dtls1.h +++ b/libs/openssl/ssl/dtls1.h @@ -84,11 +84,15 @@ extern "C" { #endif # define DTLS1_VERSION 0xFEFF -# define DTLS_MAX_VERSION DTLS1_VERSION +# define DTLS1_2_VERSION 0xFEFD +# define DTLS_MAX_VERSION DTLS1_2_VERSION # define DTLS1_VERSION_MAJOR 0xFE # define DTLS1_BAD_VER 0x0100 +/* Special value for method supporting multiple versions */ +# define DTLS_ANY_VERSION 0x1FFFF + # if 0 /* this alert description is not specified anywhere... */ # define DTLS1_AD_MISSING_HANDSHAKE_MESSAGE 110 diff --git a/libs/openssl/ssl/s23_clnt.c b/libs/openssl/ssl/s23_clnt.c index 3766567c..f782010c 100644 --- a/libs/openssl/ssl/s23_clnt.c +++ b/libs/openssl/ssl/s23_clnt.c @@ -279,7 +279,6 @@ static int ssl23_no_ssl2_ciphers(SSL *s) int ssl_fill_hello_random(SSL *s, int server, unsigned char *result, int len) { int send_time = 0; - if (len < 4) return 0; if (server) @@ -303,6 +302,7 @@ static int ssl23_client_hello(SSL *s) unsigned long l; int ssl2_compat; int version = 0, version_major, version_minor; + int al = 0; #ifndef OPENSSL_NO_COMP int j; SSL_COMP *comp; @@ -368,17 +368,20 @@ static int ssl23_client_hello(SSL *s) || s->tlsext_opaque_prf_input != NULL) ssl2_compat = 0; # endif + if (s->cert->cli_ext.meths_count != 0) + ssl2_compat = 0; } #endif buf = (unsigned char *)s->init_buf->data; if (s->state == SSL23_ST_CW_CLNT_HELLO_A) { -#if 0 - /* don't reuse session-id's */ + /* + * Since we're sending s23 client hello, we're not reusing a session, as + * we'd be using the method from the saved session instead + */ if (!ssl_get_new_session(s, 0)) { - return (-1); + return -1; } -#endif p = s->s3->client_random; if (ssl_fill_hello_random(s, 0, p, SSL3_RANDOM_SIZE) <= 0) @@ -387,6 +390,10 @@ static int ssl23_client_hello(SSL *s) if (version == TLS1_2_VERSION) { version_major = TLS1_2_VERSION_MAJOR; version_minor = TLS1_2_VERSION_MINOR; + } else if (tls1_suiteb(s)) { + SSLerr(SSL_F_SSL23_CLIENT_HELLO, + SSL_R_ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE); + return -1; } else if (version == TLS1_1_VERSION) { version_major = TLS1_1_VERSION_MAJOR; version_minor = TLS1_1_VERSION_MINOR; @@ -439,9 +446,6 @@ static int ssl23_client_hello(SSL *s) /* * put in the session-id length (zero since there is no reuse) */ -#if 0 - s->session->session_id_length = 0; -#endif s2n(0, d); if (s->options & SSL_OP_NETSCAPE_CHALLENGE_BUG) @@ -542,9 +546,9 @@ static int ssl23_client_hello(SSL *s) } if ((p = ssl_add_clienthello_tlsext(s, p, - buf + - SSL3_RT_MAX_PLAIN_LENGTH)) == - NULL) { + buf + SSL3_RT_MAX_PLAIN_LENGTH, + &al)) == NULL) { + ssl3_send_alert(s, SSL3_AL_FATAL, al); SSLerr(SSL_F_SSL23_CLIENT_HELLO, ERR_R_INTERNAL_ERROR); return -1; } @@ -598,10 +602,13 @@ static int ssl23_client_hello(SSL *s) if (ssl2_compat) s->msg_callback(1, SSL2_VERSION, 0, s->init_buf->data + 2, ret - 2, s, s->msg_callback_arg); - else + else { + s->msg_callback(1, version, SSL3_RT_HEADER, s->init_buf->data, 5, + s, s->msg_callback_arg); s->msg_callback(1, version, SSL3_RT_HANDSHAKE, s->init_buf->data + 5, ret - 5, s, s->msg_callback_arg); + } } return ret; @@ -729,6 +736,8 @@ static int ssl23_get_server_hello(SSL *s) goto err; } + s->session->ssl_version = s->version; + /* ensure that TLS_MAX_VERSION is up-to-date */ OPENSSL_assert(s->version <= TLS_MAX_VERSION); @@ -749,9 +758,12 @@ static int ssl23_get_server_hello(SSL *s) cb(s, SSL_CB_READ_ALERT, j); } - if (s->msg_callback) + if (s->msg_callback) { + s->msg_callback(0, s->version, SSL3_RT_HEADER, p, 5, s, + s->msg_callback_arg); s->msg_callback(0, s->version, SSL3_RT_ALERT, p + 5, 2, s, s->msg_callback_arg); + } s->rwstate = SSL_NOTHING; SSLerr(SSL_F_SSL23_GET_SERVER_HELLO, SSL_AD_REASON_OFFSET + p[6]); @@ -784,13 +796,6 @@ static int ssl23_get_server_hello(SSL *s) } s->init_num = 0; - /* - * Since, if we are sending a ssl23 client hello, we are not reusing a - * session-id - */ - if (!ssl_get_new_session(s, 0)) - goto err; - return (SSL_connect(s)); err: return (-1); diff --git a/libs/openssl/ssl/s23_srvr.c b/libs/openssl/ssl/s23_srvr.c index 50f98dce..470bd3d9 100644 --- a/libs/openssl/ssl/s23_srvr.c +++ b/libs/openssl/ssl/s23_srvr.c @@ -402,6 +402,11 @@ int ssl23_get_client_hello(SSL *s) /* ensure that TLS_MAX_VERSION is up-to-date */ OPENSSL_assert(s->version <= TLS_MAX_VERSION); + if (s->version < TLS1_2_VERSION && tls1_suiteb(s)) { + SSLerr(SSL_F_SSL23_GET_CLIENT_HELLO, + SSL_R_ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE); + goto err; + } #ifdef OPENSSL_FIPS if (FIPS_mode() && (s->version < TLS1_VERSION)) { SSLerr(SSL_F_SSL23_GET_CLIENT_HELLO, diff --git a/libs/openssl/ssl/s2_clnt.c b/libs/openssl/ssl/s2_clnt.c index b23b0831..69da6b14 100644 --- a/libs/openssl/ssl/s2_clnt.c +++ b/libs/openssl/ssl/s2_clnt.c @@ -418,19 +418,19 @@ static int get_server_hello(SSL *s) return (-1); } } else { -# ifdef undef +# if 0 /* very bad */ memset(s->session->session_id, 0, SSL_MAX_SSL_SESSION_ID_LENGTH_IN_BYTES); s->session->session_id_length = 0; - */ # endif - /* - * we need to do this in case we were trying to reuse a client - * session but others are already reusing it. If this was a new - * 'blank' session ID, the session-id length will still be 0 - */ - if (s->session->session_id_length > 0) { + + /* + * we need to do this in case we were trying to reuse a client + * session but others are already reusing it. If this was a new + * 'blank' session ID, the session-id length will still be 0 + */ + if (s->session->session_id_length > 0) { if (!ssl_get_new_session(s, 0)) { ssl2_return_error(s, SSL2_PE_UNDEFINED_ERROR); return (-1); diff --git a/libs/openssl/ssl/s2_lib.c b/libs/openssl/ssl/s2_lib.c index 7e3674a6..d55b93f7 100644 --- a/libs/openssl/ssl/s2_lib.c +++ b/libs/openssl/ssl/s2_lib.c @@ -435,10 +435,7 @@ const SSL_CIPHER *ssl2_get_cipher_by_char(const unsigned char *p) ((unsigned long)p[1] << 8L) | (unsigned long)p[2]; c.id = id; cp = OBJ_bsearch_ssl_cipher_id(&c, ssl2_ciphers, SSL2_NUM_CIPHERS); - if ((cp == NULL) || (cp->valid == 0)) - return NULL; - else - return cp; + return cp; } int ssl2_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p) diff --git a/libs/openssl/ssl/s3_both.c b/libs/openssl/ssl/s3_both.c index 107b460f..09d0661e 100644 --- a/libs/openssl/ssl/s3_both.c +++ b/libs/openssl/ssl/s3_both.c @@ -158,13 +158,12 @@ int ssl3_do_write(SSL *s, int type) int ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen) { - unsigned char *p, *d; + unsigned char *p; int i; unsigned long l; if (s->state == a) { - d = (unsigned char *)s->init_buf->data; - p = &(d[4]); + p = ssl_handshake_start(s); i = s->method->ssl3_enc->final_finish_mac(s, sender, slen, @@ -173,7 +172,6 @@ int ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen) return 0; s->s3->tmp.finish_md_len = i; memcpy(p, s->s3->tmp.finish_md, i); - p += i; l = i; /* @@ -196,17 +194,12 @@ int ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen) */ l &= 0xffff; #endif - - *(d++) = SSL3_MT_FINISHED; - l2n3(l, d); - s->init_num = (int)l + 4; - s->init_off = 0; - + ssl_set_handshake_header(s, SSL3_MT_FINISHED, l); s->state = b; } /* SSL3_ST_SEND_xxxxxx_HELLO_B */ - return (ssl3_do_write(s, SSL3_RT_HANDSHAKE)); + return ssl_do_write(s); } #ifndef OPENSSL_NO_NEXTPROTONEG @@ -248,7 +241,7 @@ int ssl3_get_finished(SSL *s, int a, int b) #ifdef OPENSSL_NO_NEXTPROTONEG /* * the mac has already been generated when we received the change cipher - * spec message and is in s->s3->tmp.peer_finish_md. + * spec message and is in s->s3->tmp.peer_finish_md */ #endif @@ -326,84 +319,20 @@ int ssl3_send_change_cipher_spec(SSL *s, int a, int b) return (ssl3_do_write(s, SSL3_RT_CHANGE_CIPHER_SPEC)); } -static int ssl3_add_cert_to_buf(BUF_MEM *buf, unsigned long *l, X509 *x) -{ - int n; - unsigned char *p; - - n = i2d_X509(x, NULL); - if (!BUF_MEM_grow_clean(buf, (int)(n + (*l) + 3))) { - SSLerr(SSL_F_SSL3_ADD_CERT_TO_BUF, ERR_R_BUF_LIB); - return (-1); - } - p = (unsigned char *)&(buf->data[*l]); - l2n3(n, p); - i2d_X509(x, &p); - *l += n + 3; - - return (0); -} - -unsigned long ssl3_output_cert_chain(SSL *s, X509 *x) +unsigned long ssl3_output_cert_chain(SSL *s, CERT_PKEY *cpk) { unsigned char *p; - int i; - unsigned long l = 7; - BUF_MEM *buf; - int no_chain; - - if ((s->mode & SSL_MODE_NO_AUTO_CHAIN) || s->ctx->extra_certs) - no_chain = 1; - else - no_chain = 0; + unsigned long l = 3 + SSL_HM_HEADER_LENGTH(s); - /* TLSv1 sends a chain with nothing in it, instead of an alert */ - buf = s->init_buf; - if (!BUF_MEM_grow_clean(buf, 10)) { - SSLerr(SSL_F_SSL3_OUTPUT_CERT_CHAIN, ERR_R_BUF_LIB); - return (0); - } - if (x != NULL) { - if (no_chain) { - if (ssl3_add_cert_to_buf(buf, &l, x)) - return (0); - } else { - X509_STORE_CTX xs_ctx; - - if (!X509_STORE_CTX_init(&xs_ctx, s->ctx->cert_store, x, NULL)) { - SSLerr(SSL_F_SSL3_OUTPUT_CERT_CHAIN, ERR_R_X509_LIB); - return (0); - } - X509_verify_cert(&xs_ctx); - /* Don't leave errors in the queue */ - ERR_clear_error(); - for (i = 0; i < sk_X509_num(xs_ctx.chain); i++) { - x = sk_X509_value(xs_ctx.chain, i); - - if (ssl3_add_cert_to_buf(buf, &l, x)) { - X509_STORE_CTX_cleanup(&xs_ctx); - return 0; - } - } - X509_STORE_CTX_cleanup(&xs_ctx); - } - } - /* Thawte special :-) */ - for (i = 0; i < sk_X509_num(s->ctx->extra_certs); i++) { - x = sk_X509_value(s->ctx->extra_certs, i); - if (ssl3_add_cert_to_buf(buf, &l, x)) - return (0); - } + if (!ssl_add_cert_chain(s, cpk, &l)) + return 0; - l -= 7; - p = (unsigned char *)&(buf->data[4]); + l -= 3 + SSL_HM_HEADER_LENGTH(s); + p = ssl_handshake_start(s); l2n3(l, p); l += 3; - p = (unsigned char *)&(buf->data[0]); - *(p++) = SSL3_MT_CERTIFICATE; - l2n3(l, p); - l += 4; - return (l); + ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE, l); + return l + SSL_HM_HEADER_LENGTH(s); } /* @@ -477,17 +406,6 @@ long ssl3_get_message(SSL *s, int st1, int stn, int mt, long max, int *ok) SSLerr(SSL_F_SSL3_GET_MESSAGE, SSL_R_UNEXPECTED_MESSAGE); goto f_err; } - if ((mt < 0) && (*p == SSL3_MT_CLIENT_HELLO) && - (st1 == SSL3_ST_SR_CERT_A) && (stn == SSL3_ST_SR_CERT_B)) { - /* - * At this point we have got an MS SGC second client hello (maybe - * we should always allow the client to start a new handshake?). - * We need to restart the mac. Don't increment - * {num,total}_renegotiations because we have not completed the - * handshake. - */ - ssl3_init_finished_mac(s); - } s->s3->tmp.message_type = *(p++); @@ -578,7 +496,18 @@ int ssl_cert_type(X509 *x, EVP_PKEY *pkey) ret = SSL_PKEY_GOST94; } else if (i == NID_id_GostR3410_2001 || i == NID_id_GostR3410_2001_cc) { ret = SSL_PKEY_GOST01; + } else if (x && (i == EVP_PKEY_DH || i == EVP_PKEY_DHX)) { + /* + * For DH two cases: DH certificate signed with RSA and DH + * certificate signed with DSA. + */ + i = X509_certificate_type(x, pk); + if (i & EVP_PKS_RSA) + ret = SSL_PKEY_DH_RSA; + else if (i & EVP_PKS_DSA) + ret = SSL_PKEY_DH_DSA; } + err: if (!pkey) EVP_PKEY_free(pk); @@ -719,7 +648,7 @@ int ssl3_setup_read_buffer(SSL *s) unsigned char *p; size_t len, align = 0, headerlen; - if (SSL_version(s) == DTLS1_VERSION || SSL_version(s) == DTLS1_BAD_VER) + if (SSL_IS_DTLS(s)) headerlen = DTLS1_RT_HEADER_LENGTH; else headerlen = SSL3_RT_HEADER_LENGTH; @@ -758,7 +687,7 @@ int ssl3_setup_write_buffer(SSL *s) unsigned char *p; size_t len, align = 0, headerlen; - if (SSL_version(s) == DTLS1_VERSION || SSL_version(s) == DTLS1_BAD_VER) + if (SSL_IS_DTLS(s)) headerlen = DTLS1_RT_HEADER_LENGTH + 1; else headerlen = SSL3_RT_HEADER_LENGTH; diff --git a/libs/openssl/ssl/s3_cbc.c b/libs/openssl/ssl/s3_cbc.c index 2fb71f27..557622f5 100644 --- a/libs/openssl/ssl/s3_cbc.c +++ b/libs/openssl/ssl/s3_cbc.c @@ -125,7 +125,7 @@ int tls1_cbc_remove_padding(const SSL *s, unsigned padding_length, good, to_check, i; const unsigned overhead = 1 /* padding length byte */ + mac_size; /* Check if version requires explicit IV */ - if (s->version >= TLS1_1_VERSION || s->version == DTLS1_BAD_VER) { + if (SSL_USE_EXPLICIT_IV(s)) { /* * These lengths are all public so we can test them in non-constant * time. @@ -411,8 +411,9 @@ char ssl3_cbc_record_digest_supported(const EVP_MD_CTX *ctx) * functions, above, we know that data_plus_mac_size is large enough to contain * a padding byte and MAC. (If the padding was invalid, it might contain the * padding too. ) + * Returns 1 on success or 0 on error */ -void ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, +int ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, unsigned char *md_out, size_t *md_out_size, const unsigned char header[13], @@ -455,7 +456,8 @@ void ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, switch (EVP_MD_CTX_type(ctx)) { case NID_md5: - MD5_Init((MD5_CTX *)md_state.c); + if (MD5_Init((MD5_CTX *)md_state.c) <= 0) + return 0; md_final_raw = tls1_md5_final_raw; md_transform = (void (*)(void *ctx, const unsigned char *block))MD5_Transform; @@ -464,7 +466,8 @@ void ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, length_is_big_endian = 0; break; case NID_sha1: - SHA1_Init((SHA_CTX *)md_state.c); + if (SHA1_Init((SHA_CTX *)md_state.c) <= 0) + return 0; md_final_raw = tls1_sha1_final_raw; md_transform = (void (*)(void *ctx, const unsigned char *block))SHA1_Transform; @@ -472,14 +475,16 @@ void ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, break; #ifndef OPENSSL_NO_SHA256 case NID_sha224: - SHA224_Init((SHA256_CTX *)md_state.c); + if (SHA224_Init((SHA256_CTX *)md_state.c) <= 0) + return 0; md_final_raw = tls1_sha256_final_raw; md_transform = (void (*)(void *ctx, const unsigned char *block))SHA256_Transform; md_size = 224 / 8; break; case NID_sha256: - SHA256_Init((SHA256_CTX *)md_state.c); + if (SHA256_Init((SHA256_CTX *)md_state.c) <= 0) + return 0; md_final_raw = tls1_sha256_final_raw; md_transform = (void (*)(void *ctx, const unsigned char *block))SHA256_Transform; @@ -488,7 +493,8 @@ void ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, #endif #ifndef OPENSSL_NO_SHA512 case NID_sha384: - SHA384_Init((SHA512_CTX *)md_state.c); + if (SHA384_Init((SHA512_CTX *)md_state.c) <= 0) + return 0; md_final_raw = tls1_sha512_final_raw; md_transform = (void (*)(void *ctx, const unsigned char *block))SHA512_Transform; @@ -497,7 +503,8 @@ void ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, md_length_size = 16; break; case NID_sha512: - SHA512_Init((SHA512_CTX *)md_state.c); + if (SHA512_Init((SHA512_CTX *)md_state.c) <= 0) + return 0; md_final_raw = tls1_sha512_final_raw; md_transform = (void (*)(void *ctx, const unsigned char *block))SHA512_Transform; @@ -513,8 +520,8 @@ void ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, */ OPENSSL_assert(0); if (md_out_size) - *md_out_size = -1; - return; + *md_out_size = 0; + return 0; } OPENSSL_assert(md_length_size <= MAX_HASH_BIT_COUNT_BYTES); @@ -652,7 +659,7 @@ void ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, */ if (header_length <= md_block_size) { /* Should never happen */ - return; + return 0; } overhang = header_length - md_block_size; md_transform(md_state.c, header); @@ -733,26 +740,34 @@ void ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, } EVP_MD_CTX_init(&md_ctx); - EVP_DigestInit_ex(&md_ctx, ctx->digest, NULL /* engine */ ); + if (EVP_DigestInit_ex(&md_ctx, ctx->digest, NULL /* engine */ ) <= 0) + goto err; if (is_sslv3) { /* We repurpose |hmac_pad| to contain the SSLv3 pad2 block. */ memset(hmac_pad, 0x5c, sslv3_pad_length); - EVP_DigestUpdate(&md_ctx, mac_secret, mac_secret_length); - EVP_DigestUpdate(&md_ctx, hmac_pad, sslv3_pad_length); - EVP_DigestUpdate(&md_ctx, mac_out, md_size); + if (EVP_DigestUpdate(&md_ctx, mac_secret, mac_secret_length) <= 0 + || EVP_DigestUpdate(&md_ctx, hmac_pad, sslv3_pad_length) <= 0 + || EVP_DigestUpdate(&md_ctx, mac_out, md_size) <= 0) + goto err; } else { /* Complete the HMAC in the standard manner. */ for (i = 0; i < md_block_size; i++) hmac_pad[i] ^= 0x6a; - EVP_DigestUpdate(&md_ctx, hmac_pad, md_block_size); - EVP_DigestUpdate(&md_ctx, mac_out, md_size); + if (EVP_DigestUpdate(&md_ctx, hmac_pad, md_block_size) <= 0 + || EVP_DigestUpdate(&md_ctx, mac_out, md_size) <= 0) + goto err; } EVP_DigestFinal(&md_ctx, md_out, &md_out_size_u); if (md_out_size) *md_out_size = md_out_size_u; EVP_MD_CTX_cleanup(&md_ctx); + + return 1; +err: + EVP_MD_CTX_cleanup(&md_ctx); + return 0; } #ifdef OPENSSL_FIPS diff --git a/libs/openssl/ssl/s3_clnt.c b/libs/openssl/ssl/s3_clnt.c index 35ad1217..bc5254c8 100644 --- a/libs/openssl/ssl/s3_clnt.c +++ b/libs/openssl/ssl/s3_clnt.c @@ -317,11 +317,11 @@ int ssl3_connect(SSL *s) s->state = SSL3_ST_CR_SESSION_TICKET_A; } #endif - } else + } else { s->state = SSL3_ST_CR_CERT_A; + } s->init_num = 0; break; - case SSL3_ST_CR_CERT_A: case SSL3_ST_CR_CERT_B: #ifndef OPENSSL_NO_TLSEXT @@ -675,6 +675,7 @@ int ssl3_client_hello(SSL *s) unsigned char *p, *d; int i; unsigned long l; + int al = 0; #ifndef OPENSSL_NO_COMP int j; SSL_COMP *comp; @@ -697,15 +698,64 @@ int ssl3_client_hello(SSL *s) if (!ssl_get_new_session(s, 0)) goto err; } + if (s->method->version == DTLS_ANY_VERSION) { + /* Determine which DTLS version to use */ + int options = s->options; + /* If DTLS 1.2 disabled correct the version number */ + if (options & SSL_OP_NO_DTLSv1_2) { + if (tls1_suiteb(s)) { + SSLerr(SSL_F_SSL3_CLIENT_HELLO, + SSL_R_ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE); + goto err; + } + /* + * Disabling all versions is silly: return an error. + */ + if (options & SSL_OP_NO_DTLSv1) { + SSLerr(SSL_F_SSL3_CLIENT_HELLO, SSL_R_WRONG_SSL_VERSION); + goto err; + } + /* + * Update method so we don't use any DTLS 1.2 features. + */ + s->method = DTLSv1_client_method(); + s->version = DTLS1_VERSION; + } else { + /* + * We only support one version: update method + */ + if (options & SSL_OP_NO_DTLSv1) + s->method = DTLSv1_2_client_method(); + s->version = DTLS1_2_VERSION; + } + s->client_version = s->version; + } /* else use the pre-loaded session */ p = s->s3->client_random; - if (ssl_fill_hello_random(s, 0, p, SSL3_RANDOM_SIZE) <= 0) + /* + * for DTLS if client_random is initialized, reuse it, we are + * required to use same upon reply to HelloVerify + */ + if (SSL_IS_DTLS(s)) { + size_t idx; + i = 1; + for (idx = 0; idx < sizeof(s->s3->client_random); idx++) { + if (p[idx]) { + i = 0; + break; + } + } + } else + i = 1; + + if (i && ssl_fill_hello_random(s, 0, p, + sizeof(s->s3->client_random)) <= 0) goto err; /* Do the message type and length last */ - d = p = &(buf[4]); + d = p = ssl_handshake_start(s); /*- * version indicates the negotiated version: for example from @@ -765,6 +815,17 @@ int ssl3_client_hello(SSL *s) p += i; } + /* cookie stuff for DTLS */ + if (SSL_IS_DTLS(s)) { + if (s->d1->cookie_len > sizeof(s->d1->cookie)) { + SSLerr(SSL_F_SSL3_CLIENT_HELLO, ERR_R_INTERNAL_ERROR); + goto err; + } + *(p++) = s->d1->cookie_len; + memcpy(p, s->d1->cookie, s->d1->cookie_len); + p += s->d1->cookie_len; + } + /* Ciphers supported */ i = ssl_cipher_list_to_bytes(s, SSL_get_ciphers(s), &(p[2]), 0); if (i == 0) { @@ -809,27 +870,21 @@ int ssl3_client_hello(SSL *s) goto err; } if ((p = - ssl_add_clienthello_tlsext(s, p, - buf + SSL3_RT_MAX_PLAIN_LENGTH)) == - NULL) { + ssl_add_clienthello_tlsext(s, p, buf + SSL3_RT_MAX_PLAIN_LENGTH, + &al)) == NULL) { + ssl3_send_alert(s, SSL3_AL_FATAL, al); SSLerr(SSL_F_SSL3_CLIENT_HELLO, ERR_R_INTERNAL_ERROR); goto err; } #endif - l = (p - d); - d = buf; - *(d++) = SSL3_MT_CLIENT_HELLO; - l2n3(l, d); - + l = p - d; + ssl_set_handshake_header(s, SSL3_MT_CLIENT_HELLO, l); s->state = SSL3_ST_CW_CLNT_HELLO_B; - /* number of bytes to write */ - s->init_num = p - buf; - s->init_off = 0; } /* SSL3_ST_CW_CLNT_HELLO_B */ - return (ssl3_do_write(s, SSL3_RT_HANDSHAKE)); + return ssl_do_write(s); err: s->state = SSL_ST_ERR; return (-1); @@ -839,13 +894,20 @@ int ssl3_get_server_hello(SSL *s) { STACK_OF(SSL_CIPHER) *sk; const SSL_CIPHER *c; + CERT *ct = s->cert; unsigned char *p, *d; - int i, al, ok; + int i, al = SSL_AD_INTERNAL_ERROR, ok; unsigned int j; long n; #ifndef OPENSSL_NO_COMP SSL_COMP *comp; #endif + /* + * Hello verify request and/or server hello version may not match so set + * first packet if we're negotiating version. + */ + if (SSL_IS_DTLS(s)) + s->first_packet = 1; n = s->method->ssl_get_message(s, SSL3_ST_CR_SRVR_HELLO_A, @@ -854,7 +916,8 @@ int ssl3_get_server_hello(SSL *s) if (!ok) return ((int)n); - if (SSL_version(s) == DTLS1_VERSION || SSL_version(s) == DTLS1_BAD_VER) { + if (SSL_IS_DTLS(s)) { + s->first_packet = 0; if (s->s3->tmp.message_type == DTLS1_MT_HELLO_VERIFY_REQUEST) { if (s->d1->send_cookie == 0) { s->s3->tmp.reuse_message = 1; @@ -875,6 +938,28 @@ int ssl3_get_server_hello(SSL *s) } d = p = (unsigned char *)s->init_msg; + if (s->method->version == DTLS_ANY_VERSION) { + /* Work out correct protocol version to use */ + int hversion = (p[0] << 8) | p[1]; + int options = s->options; + if (hversion == DTLS1_2_VERSION && !(options & SSL_OP_NO_DTLSv1_2)) + s->method = DTLSv1_2_client_method(); + else if (tls1_suiteb(s)) { + SSLerr(SSL_F_SSL3_GET_SERVER_HELLO, + SSL_R_ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE); + s->version = hversion; + al = SSL_AD_PROTOCOL_VERSION; + goto f_err; + } else if (hversion == DTLS1_VERSION && !(options & SSL_OP_NO_DTLSv1)) + s->method = DTLSv1_client_method(); + else { + SSLerr(SSL_F_SSL3_GET_SERVER_HELLO, SSL_R_WRONG_SSL_VERSION); + s->version = hversion; + al = SSL_AD_PROTOCOL_VERSION; + goto f_err; + } + s->session->ssl_version = s->version = s->method->version; + } if ((p[0] != (s->version >> 8)) || (p[1] != (s->version & 0xff))) { SSLerr(SSL_F_SSL3_GET_SERVER_HELLO, SSL_R_WRONG_SSL_VERSION); @@ -951,7 +1036,6 @@ int ssl3_get_server_hello(SSL *s) */ if (s->session->session_id_length > 0) { if (!ssl_get_new_session(s, 0)) { - al = SSL_AD_INTERNAL_ERROR; goto f_err; } } @@ -966,21 +1050,21 @@ int ssl3_get_server_hello(SSL *s) SSLerr(SSL_F_SSL3_GET_SERVER_HELLO, SSL_R_UNKNOWN_CIPHER_RETURNED); goto f_err; } - /* TLS v1.2 only ciphersuites require v1.2 or later */ - if ((c->algorithm_ssl & SSL_TLSV1_2) && - (TLS1_get_version(s) < TLS1_2_VERSION)) { - al = SSL_AD_ILLEGAL_PARAMETER; - SSLerr(SSL_F_SSL3_GET_SERVER_HELLO, SSL_R_WRONG_CIPHER_RETURNED); - goto f_err; - } -#ifndef OPENSSL_NO_SRP - if (((c->algorithm_mkey & SSL_kSRP) || (c->algorithm_auth & SSL_aSRP)) && - !(s->srp_ctx.srp_Mask & SSL_kSRP)) { + /* Set version disabled mask now we know version */ + if (!SSL_USE_TLS1_2_CIPHERS(s)) + ct->mask_ssl = SSL_TLSV1_2; + else + ct->mask_ssl = 0; + /* + * If it is a disabled cipher we didn't send it in client hello, so + * return an error. + */ + if (c->algorithm_ssl & ct->mask_ssl || + c->algorithm_mkey & ct->mask_k || c->algorithm_auth & ct->mask_a) { al = SSL_AD_ILLEGAL_PARAMETER; SSLerr(SSL_F_SSL3_GET_SERVER_HELLO, SSL_R_WRONG_CIPHER_RETURNED); goto f_err; } -#endif /* OPENSSL_NO_SRP */ p += ssl_put_cipher_by_char(s, NULL, NULL); sk = ssl_get_ciphers_by_id(s); @@ -1013,14 +1097,11 @@ int ssl3_get_server_hello(SSL *s) } s->s3->tmp.new_cipher = c; /* - * Don't digest cached records if TLS v1.2: we may need them for client + * Don't digest cached records if no sigalgs: we may need them for client * authentication. */ - if (TLS1_get_version(s) < TLS1_2_VERSION - && !ssl3_digest_cached_records(s)) { - al = SSL_AD_INTERNAL_ERROR; + if (!SSL_USE_SIGALGS(s) && !ssl3_digest_cached_records(s)) goto f_err; - } /* lets get the compression algorithm */ /* COMPRESSION */ #ifdef OPENSSL_NO_COMP @@ -1035,7 +1116,6 @@ int ssl3_get_server_hello(SSL *s) * using compression. */ if (s->session->compress_meth != 0) { - al = SSL_AD_INTERNAL_ERROR; SSLerr(SSL_F_SSL3_GET_SERVER_HELLO, SSL_R_INCONSISTENT_COMPRESSION); goto f_err; } @@ -1068,16 +1148,9 @@ int ssl3_get_server_hello(SSL *s) #ifndef OPENSSL_NO_TLSEXT /* TLS extensions */ - if (s->version >= SSL3_VERSION) { - if (!ssl_parse_serverhello_tlsext(s, &p, d, n, &al)) { - /* 'al' set by ssl_parse_serverhello_tlsext */ - SSLerr(SSL_F_SSL3_GET_SERVER_HELLO, SSL_R_PARSE_TLSEXT); - goto f_err; - } - if (ssl_check_serverhello_tlsext(s) <= 0) { - SSLerr(SSL_F_SSL3_GET_SERVER_HELLO, SSL_R_SERVERHELLO_TLSEXT); - goto err; - } + if (!ssl_parse_serverhello_tlsext(s, &p, d, n)) { + SSLerr(SSL_F_SSL3_GET_SERVER_HELLO, SSL_R_PARSE_TLSEXT); + goto err; } #endif @@ -1240,6 +1313,14 @@ int ssl3_get_server_certificate(SSL *s) } if (need_cert) { + int exp_idx = ssl_cipher_get_cert_index(s->s3->tmp.new_cipher); + if (exp_idx >= 0 && i != exp_idx) { + x = NULL; + al = SSL_AD_ILLEGAL_PARAMETER; + SSLerr(SSL_F_SSL3_GET_SERVER_CERTIFICATE, + SSL_R_WRONG_CERTIFICATE_TYPE); + goto f_err; + } sc->peer_cert_type = i; CRYPTO_add(&x->references, 1, CRYPTO_LOCK_X509); /* @@ -1267,7 +1348,6 @@ int ssl3_get_server_certificate(SSL *s) x = NULL; ret = 1; - if (0) { f_err: ssl3_send_alert(s, SSL3_AL_FATAL, al); @@ -1326,7 +1406,7 @@ int ssl3_get_key_exchange(SSL *s) * Can't skip server key exchange if this is an ephemeral * ciphersuite. */ - if (alg_k & (SSL_kEDH | SSL_kEECDH)) { + if (alg_k & (SSL_kDHE | SSL_kECDHE)) { SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, SSL_R_UNEXPECTED_MESSAGE); al = SSL_AD_UNEXPECTED_MESSAGE; goto f_err; @@ -1624,6 +1704,12 @@ int ssl3_get_key_exchange(SSL *s) } p += i; + if (BN_is_zero(dh->p)) { + SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, SSL_R_BAD_DH_P_VALUE); + goto f_err; + } + + if (2 > n - param_len) { SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, SSL_R_LENGTH_TOO_SHORT); goto f_err; @@ -1644,6 +1730,11 @@ int ssl3_get_key_exchange(SSL *s) } p += i; + if (BN_is_zero(dh->g)) { + SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, SSL_R_BAD_DH_G_VALUE); + goto f_err; + } + if (2 > n - param_len) { SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, SSL_R_LENGTH_TOO_SHORT); goto f_err; @@ -1665,6 +1756,11 @@ int ssl3_get_key_exchange(SSL *s) p += i; n -= param_len; + if (BN_is_zero(dh->pub_key)) { + SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, SSL_R_BAD_DH_PUB_KEY_VALUE); + goto f_err; + } + # ifndef OPENSSL_NO_RSA if (alg_a & SSL_aRSA) pkey = @@ -1718,9 +1814,16 @@ int ssl3_get_key_exchange(SSL *s) SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, SSL_R_LENGTH_TOO_SHORT); goto f_err; } + /* + * Check curve is one of our preferences, if not server has sent an + * invalid curve. ECParameters is 3 bytes. + */ + if (!tls1_check_curve(s, p, 3)) { + SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, SSL_R_WRONG_CURVE); + goto f_err; + } - if ((*p != NAMED_CURVE_TYPE) || - ((curve_nid = tls1_ec_curve_id2nid(*(p + 2))) == 0)) { + if ((curve_nid = tls1_ec_curve_id2nid(*(p + 2))) == 0) { al = SSL_AD_INTERNAL_ERROR; SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS); @@ -1808,29 +1911,16 @@ int ssl3_get_key_exchange(SSL *s) /* if it was signed, check the signature */ if (pkey != NULL) { - if (TLS1_get_version(s) >= TLS1_2_VERSION) { - int sigalg; + if (SSL_USE_SIGALGS(s)) { + int rv; if (2 > n) { SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, SSL_R_LENGTH_TOO_SHORT); goto f_err; } - - sigalg = tls12_get_sigid(pkey); - /* Should never happen */ - if (sigalg == -1) { - SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, ERR_R_INTERNAL_ERROR); + rv = tls12_check_peer_sigalg(&md, s, p, pkey); + if (rv == -1) goto err; - } - /* Check key type is consistent with signature */ - if (sigalg != (int)p[1]) { - SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, - SSL_R_WRONG_SIGNATURE_TYPE); - al = SSL_AD_DECODE_ERROR; - goto f_err; - } - md = tls12_get_hash(p[0]); - if (md == NULL) { - SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, SSL_R_UNKNOWN_DIGEST); + else if (rv == 0) { goto f_err; } #ifdef SSL_DEBUG @@ -1858,8 +1948,7 @@ int ssl3_get_key_exchange(SSL *s) goto f_err; } #ifndef OPENSSL_NO_RSA - if (pkey->type == EVP_PKEY_RSA - && TLS1_get_version(s) < TLS1_2_VERSION) { + if (pkey->type == EVP_PKEY_RSA && !SSL_USE_SIGALGS(s)) { int num; unsigned int size; @@ -1867,14 +1956,20 @@ int ssl3_get_key_exchange(SSL *s) q = md_buf; for (num = 2; num > 0; num--) { EVP_MD_CTX_set_flags(&md_ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); - EVP_DigestInit_ex(&md_ctx, (num == 2) - ? s->ctx->md5 : s->ctx->sha1, NULL); - EVP_DigestUpdate(&md_ctx, &(s->s3->client_random[0]), - SSL3_RANDOM_SIZE); - EVP_DigestUpdate(&md_ctx, &(s->s3->server_random[0]), - SSL3_RANDOM_SIZE); - EVP_DigestUpdate(&md_ctx, param, param_len); - EVP_DigestFinal_ex(&md_ctx, q, &size); + if (EVP_DigestInit_ex(&md_ctx, + (num == 2) ? s->ctx->md5 : s->ctx->sha1, + NULL) <= 0 + || EVP_DigestUpdate(&md_ctx, &(s->s3->client_random[0]), + SSL3_RANDOM_SIZE) <= 0 + || EVP_DigestUpdate(&md_ctx, &(s->s3->server_random[0]), + SSL3_RANDOM_SIZE) <= 0 + || EVP_DigestUpdate(&md_ctx, param, param_len) <= 0 + || EVP_DigestFinal_ex(&md_ctx, q, &size) <= 0) { + SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, + ERR_R_INTERNAL_ERROR); + al = SSL_AD_INTERNAL_ERROR; + goto f_err; + } q += size; j += size; } @@ -1893,12 +1988,16 @@ int ssl3_get_key_exchange(SSL *s) } else #endif { - EVP_VerifyInit_ex(&md_ctx, md, NULL); - EVP_VerifyUpdate(&md_ctx, &(s->s3->client_random[0]), - SSL3_RANDOM_SIZE); - EVP_VerifyUpdate(&md_ctx, &(s->s3->server_random[0]), - SSL3_RANDOM_SIZE); - EVP_VerifyUpdate(&md_ctx, param, param_len); + if (EVP_VerifyInit_ex(&md_ctx, md, NULL) <= 0 + || EVP_VerifyUpdate(&md_ctx, &(s->s3->client_random[0]), + SSL3_RANDOM_SIZE) <= 0 + || EVP_VerifyUpdate(&md_ctx, &(s->s3->server_random[0]), + SSL3_RANDOM_SIZE) <= 0 + || EVP_VerifyUpdate(&md_ctx, param, param_len) <= 0) { + al = SSL_AD_INTERNAL_ERROR; + SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, ERR_R_EVP_LIB); + goto f_err; + } if (EVP_VerifyFinal(&md_ctx, p, (int)n, pkey) <= 0) { /* bad signature */ al = SSL_AD_DECRYPT_ERROR; @@ -1909,7 +2008,10 @@ int ssl3_get_key_exchange(SSL *s) } else { /* aNULL, aSRP or kPSK do not need public keys */ if (!(alg_a & (SSL_aNULL | SSL_aSRP)) && !(alg_k & SSL_kPSK)) { - SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, ERR_R_INTERNAL_ERROR); + /* Might be wrong key type, check it */ + if (ssl3_check_cert_and_algorithm(s)) + /* Otherwise this shouldn't happen */ + SSLerr(SSL_F_SSL3_GET_KEY_EXCHANGE, ERR_R_INTERNAL_ERROR); goto err; } /* still data left over */ @@ -2002,12 +2104,21 @@ int ssl3_get_certificate_request(SSL *s) /* get the certificate types */ ctype_num = *(p++); - if (ctype_num > SSL3_CT_NUMBER) + if (s->cert->ctypes) { + OPENSSL_free(s->cert->ctypes); + s->cert->ctypes = NULL; + } + if (ctype_num > SSL3_CT_NUMBER) { + /* If we exceed static buffer copy all to cert structure */ + s->cert->ctypes = OPENSSL_malloc(ctype_num); + memcpy(s->cert->ctypes, p, ctype_num); + s->cert->ctype_num = (size_t)ctype_num; ctype_num = SSL3_CT_NUMBER; + } for (i = 0; i < ctype_num; i++) s->s3->tmp.ctype[i] = p[i]; - p += ctype_num; - if (TLS1_get_version(s) >= TLS1_2_VERSION) { + p += p[-1]; + if (SSL_USE_SIGALGS(s)) { n2s(p, llen); /* * Check we have enough room for signature algorithms and following @@ -2019,12 +2130,22 @@ int ssl3_get_certificate_request(SSL *s) SSL_R_DATA_LENGTH_TOO_LONG); goto err; } - if ((llen & 1) || !tls1_process_sigalgs(s, p, llen)) { + /* Clear certificate digests and validity flags */ + for (i = 0; i < SSL_PKEY_NUM; i++) { + s->cert->pkeys[i].digest = NULL; + s->cert->pkeys[i].valid_flags = 0; + } + if ((llen & 1) || !tls1_save_sigalgs(s, p, llen)) { ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR); SSLerr(SSL_F_SSL3_GET_CERTIFICATE_REQUEST, SSL_R_SIGNATURE_ALGORITHMS_ERROR); goto err; } + if (!tls1_process_sigalgs(s)) { + ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_INTERNAL_ERROR); + SSLerr(SSL_F_SSL3_GET_CERTIFICATE_REQUEST, ERR_R_MALLOC_FAILURE); + goto err; + } p += llen; } @@ -2118,6 +2239,7 @@ int ssl3_get_new_session_ticket(SSL *s) long n; const unsigned char *p; unsigned char *d; + unsigned long ticket_lifetime_hint; n = s->method->ssl_get_message(s, SSL3_ST_CR_SESSION_TICKET_A, @@ -2136,6 +2258,19 @@ int ssl3_get_new_session_ticket(SSL *s) p = d = (unsigned char *)s->init_msg; + n2l(p, ticket_lifetime_hint); + n2s(p, ticklen); + /* ticket_lifetime_hint + ticket_length + ticket */ + if (ticklen + 6 != n) { + al = SSL_AD_DECODE_ERROR; + SSLerr(SSL_F_SSL3_GET_NEW_SESSION_TICKET, SSL_R_LENGTH_MISMATCH); + goto f_err; + } + + /* Server is allowed to change its mind and send an empty ticket. */ + if (ticklen == 0) + return 1; + if (s->session->session_id_length > 0) { int i = s->session_ctx->session_cache_mode; SSL_SESSION *new_sess; @@ -2167,14 +2302,6 @@ int ssl3_get_new_session_ticket(SSL *s) s->session = new_sess; } - n2l(p, s->session->tlsext_tick_lifetime_hint); - n2s(p, ticklen); - /* ticket_lifetime_hint + ticket_length + ticket */ - if (ticklen + 6 != n) { - al = SSL_AD_DECODE_ERROR; - SSLerr(SSL_F_SSL3_GET_NEW_SESSION_TICKET, SSL_R_LENGTH_MISMATCH); - goto f_err; - } if (s->session->tlsext_tick) { OPENSSL_free(s->session->tlsext_tick); s->session->tlsext_ticklen = 0; @@ -2185,6 +2312,7 @@ int ssl3_get_new_session_ticket(SSL *s) goto err; } memcpy(s->session->tlsext_tick, p, ticklen); + s->session->tlsext_tick_lifetime_hint = ticket_lifetime_hint; s->session->tlsext_ticklen = ticklen; /* * There are two ways to detect a resumed ticket session. One is to set @@ -2299,9 +2427,28 @@ int ssl3_get_server_done(SSL *s) return (ret); } +#ifndef OPENSSL_NO_DH +static DH *get_server_static_dh_key(SESS_CERT *scert) +{ + DH *dh_srvr = NULL; + EVP_PKEY *spkey = NULL; + int idx = scert->peer_cert_type; + + if (idx >= 0) + spkey = X509_get_pubkey(scert->peer_pkeys[idx].x509); + if (spkey) { + dh_srvr = EVP_PKEY_get1_DH(spkey); + EVP_PKEY_free(spkey); + } + if (dh_srvr == NULL) + SSLerr(SSL_F_GET_SERVER_STATIC_DH_KEY, ERR_R_INTERNAL_ERROR); + return dh_srvr; +} +#endif + int ssl3_send_client_key_exchange(SSL *s) { - unsigned char *p, *d; + unsigned char *p; int n; unsigned long alg_k; #ifndef OPENSSL_NO_RSA @@ -2321,8 +2468,7 @@ int ssl3_send_client_key_exchange(SSL *s) #endif if (s->state == SSL3_ST_CW_KEY_EXCH_A) { - d = (unsigned char *)s->init_buf->data; - p = &(d[4]); + p = ssl_handshake_start(s); alg_k = s->s3->tmp.new_cipher->algorithm_mkey; @@ -2354,6 +2500,7 @@ int ssl3_send_client_key_exchange(SSL *s) || (pkey->pkey.rsa == NULL)) { SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, ERR_R_INTERNAL_ERROR); + EVP_PKEY_free(pkey); goto err; } rsa = pkey->pkey.rsa; @@ -2533,33 +2680,45 @@ int ssl3_send_client_key_exchange(SSL *s) #ifndef OPENSSL_NO_DH else if (alg_k & (SSL_kEDH | SSL_kDHr | SSL_kDHd)) { DH *dh_srvr, *dh_clnt; + SESS_CERT *scert = s->session->sess_cert; - if (s->session->sess_cert == NULL) { + if (scert == NULL) { ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_UNEXPECTED_MESSAGE); SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, SSL_R_UNEXPECTED_MESSAGE); goto err; } - if (s->session->sess_cert->peer_dh_tmp != NULL) - dh_srvr = s->session->sess_cert->peer_dh_tmp; - else { - /* we get them from the cert */ - ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_HANDSHAKE_FAILURE); - SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, - SSL_R_UNABLE_TO_FIND_DH_PARAMETERS); - goto err; + if (scert->peer_dh_tmp != NULL) { + dh_srvr = scert->peer_dh_tmp; + } else { + dh_srvr = get_server_static_dh_key(scert); + if (dh_srvr == NULL) + goto err; } - /* generate a new random key */ - if ((dh_clnt = DHparams_dup(dh_srvr)) == NULL) { - SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, ERR_R_DH_LIB); - goto err; - } - if (!DH_generate_key(dh_clnt)) { - SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, ERR_R_DH_LIB); - DH_free(dh_clnt); - goto err; + if (s->s3->flags & TLS1_FLAGS_SKIP_CERT_VERIFY) { + /* Use client certificate key */ + EVP_PKEY *clkey = s->cert->key->privatekey; + dh_clnt = NULL; + if (clkey) + dh_clnt = EVP_PKEY_get1_DH(clkey); + if (dh_clnt == NULL) { + SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, + ERR_R_INTERNAL_ERROR); + goto err; + } + } else { + /* generate a new random key */ + if ((dh_clnt = DHparams_dup(dh_srvr)) == NULL) { + SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, ERR_R_DH_LIB); + goto err; + } + if (!DH_generate_key(dh_clnt)) { + SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, ERR_R_DH_LIB); + DH_free(dh_clnt); + goto err; + } } /* @@ -2568,6 +2727,8 @@ int ssl3_send_client_key_exchange(SSL *s) */ n = DH_compute_key(p, dh_srvr->pub_key, dh_clnt); + if (scert->peer_dh_tmp == NULL) + DH_free(dh_srvr); if (n <= 0) { SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, ERR_R_DH_LIB); @@ -2584,11 +2745,15 @@ int ssl3_send_client_key_exchange(SSL *s) /* clean up */ memset(p, 0, n); - /* send off the data */ - n = BN_num_bytes(dh_clnt->pub_key); - s2n(n, p); - BN_bn2bin(dh_clnt->pub_key, p); - n += 2; + if (s->s3->flags & TLS1_FLAGS_SKIP_CERT_VERIFY) + n = 0; + else { + /* send off the data */ + n = BN_num_bytes(dh_clnt->pub_key); + s2n(n, p); + BN_bn2bin(dh_clnt->pub_key, p); + n += 2; + } DH_free(dh_clnt); } @@ -2801,6 +2966,11 @@ int ssl3_send_client_key_exchange(SSL *s) pkey_ctx = EVP_PKEY_CTX_new(pub_key = X509_get_pubkey(peer_cert), NULL); + if (pkey_ctx == NULL) { + SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, + ERR_R_MALLOC_FAILURE); + goto err; + } /* * If we have send a certificate, and certificate key * @@ -2810,10 +2980,13 @@ int ssl3_send_client_key_exchange(SSL *s) /* Otherwise, generate ephemeral key pair */ - EVP_PKEY_encrypt_init(pkey_ctx); - /* Generate session key */ - if (RAND_bytes(premaster_secret, 32) <= 0) { + if (pkey_ctx == NULL + || EVP_PKEY_encrypt_init(pkey_ctx) <= 0 + /* Generate session key */ + || RAND_bytes(premaster_secret, 32) <= 0) { EVP_PKEY_CTX_free(pkey_ctx); + SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, + ERR_R_INTERNAL_ERROR); goto err; } /* @@ -2834,13 +3007,18 @@ int ssl3_send_client_key_exchange(SSL *s) * data */ ukm_hash = EVP_MD_CTX_create(); - EVP_DigestInit(ukm_hash, - EVP_get_digestbynid(NID_id_GostR3411_94)); - EVP_DigestUpdate(ukm_hash, s->s3->client_random, - SSL3_RANDOM_SIZE); - EVP_DigestUpdate(ukm_hash, s->s3->server_random, - SSL3_RANDOM_SIZE); - EVP_DigestFinal_ex(ukm_hash, shared_ukm, &md_len); + if (EVP_DigestInit(ukm_hash, + EVP_get_digestbynid(NID_id_GostR3411_94)) <= 0 + || EVP_DigestUpdate(ukm_hash, s->s3->client_random, + SSL3_RANDOM_SIZE) <= 0 + || EVP_DigestUpdate(ukm_hash, s->s3->server_random, + SSL3_RANDOM_SIZE) <= 0 + || EVP_DigestFinal_ex(ukm_hash, shared_ukm, &md_len) <= 0) { + EVP_MD_CTX_destroy(ukm_hash); + SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, + ERR_R_INTERNAL_ERROR); + goto err; + } EVP_MD_CTX_destroy(ukm_hash); if (EVP_PKEY_CTX_ctrl (pkey_ctx, -1, EVP_PKEY_OP_ENCRYPT, EVP_PKEY_CTRL_SET_IV, 8, @@ -2856,7 +3034,7 @@ int ssl3_send_client_key_exchange(SSL *s) *(p++) = V_ASN1_SEQUENCE | V_ASN1_CONSTRUCTED; msglen = 255; if (EVP_PKEY_encrypt(pkey_ctx, tmp, &msglen, premaster_secret, 32) - < 0) { + <= 0) { SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, SSL_R_LIBRARY_BUG); goto err; @@ -3014,17 +3192,12 @@ int ssl3_send_client_key_exchange(SSL *s) goto err; } - *(d++) = SSL3_MT_CLIENT_KEY_EXCHANGE; - l2n3(n, d); - + ssl_set_handshake_header(s, SSL3_MT_CLIENT_KEY_EXCHANGE, n); s->state = SSL3_ST_CW_KEY_EXCH_B; - /* number of bytes to write */ - s->init_num = n + 4; - s->init_off = 0; } /* SSL3_ST_CW_KEY_EXCH_B */ - return (ssl3_do_write(s, SSL3_RT_HANDSHAKE)); + return ssl_do_write(s); err: #ifndef OPENSSL_NO_ECDH BN_CTX_free(bn_ctx); @@ -3040,7 +3213,7 @@ int ssl3_send_client_key_exchange(SSL *s) int ssl3_send_client_verify(SSL *s) { - unsigned char *p, *d; + unsigned char *p; unsigned char data[MD5_DIGEST_LENGTH + SHA_DIGEST_LENGTH]; EVP_PKEY *pkey; EVP_PKEY_CTX *pctx = NULL; @@ -3052,14 +3225,16 @@ int ssl3_send_client_verify(SSL *s) EVP_MD_CTX_init(&mctx); if (s->state == SSL3_ST_CW_CERT_VRFY_A) { - d = (unsigned char *)s->init_buf->data; - p = &(d[4]); + p = ssl_handshake_start(s); pkey = s->cert->key->privatekey; /* Create context from key and test if sha1 is allowed as digest */ pctx = EVP_PKEY_CTX_new(pkey, NULL); - EVP_PKEY_sign_init(pctx); + if (pctx == NULL || EVP_PKEY_sign_init(pctx) <= 0) { + SSLerr(SSL_F_SSL3_SEND_CLIENT_VERIFY, ERR_R_INTERNAL_ERROR); + goto err; + } if (EVP_PKEY_CTX_set_signature_md(pctx, EVP_sha1()) > 0) { - if (TLS1_get_version(s) < TLS1_2_VERSION) + if (!SSL_USE_SIGALGS(s)) s->method->ssl3_enc->cert_verify_mac(s, NID_sha1, &(data @@ -3071,7 +3246,7 @@ int ssl3_send_client_verify(SSL *s) * For TLS v1.2 send signature algorithm and signature using agreed * digest and cached handshake records. */ - if (TLS1_get_version(s) >= TLS1_2_VERSION) { + if (SSL_USE_SIGALGS(s)) { long hdatalen = 0; void *hdata; const EVP_MD *md = s->cert->key->digest; @@ -3155,16 +3330,12 @@ int ssl3_send_client_verify(SSL *s) SSLerr(SSL_F_SSL3_SEND_CLIENT_VERIFY, ERR_R_INTERNAL_ERROR); goto err; } - *(d++) = SSL3_MT_CERTIFICATE_VERIFY; - l2n3(n, d); - + ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE_VERIFY, n); s->state = SSL3_ST_CW_CERT_VRFY_B; - s->init_num = (int)n + 4; - s->init_off = 0; } EVP_MD_CTX_cleanup(&mctx); EVP_PKEY_CTX_free(pctx); - return (ssl3_do_write(s, SSL3_RT_HANDSHAKE)); + return ssl_do_write(s); err: EVP_MD_CTX_cleanup(&mctx); EVP_PKEY_CTX_free(pctx); @@ -3172,20 +3343,75 @@ int ssl3_send_client_verify(SSL *s) return (-1); } +/* + * Check a certificate can be used for client authentication. Currently check + * cert exists, if we have a suitable digest for TLS 1.2 if static DH client + * certificates can be used and optionally checks suitability for Suite B. + */ +static int ssl3_check_client_certificate(SSL *s) +{ + unsigned long alg_k; + if (!s->cert || !s->cert->key->x509 || !s->cert->key->privatekey) + return 0; + /* If no suitable signature algorithm can't use certificate */ + if (SSL_USE_SIGALGS(s) && !s->cert->key->digest) + return 0; + /* + * If strict mode check suitability of chain before using it. This also + * adjusts suite B digest if necessary. + */ + if (s->cert->cert_flags & SSL_CERT_FLAGS_CHECK_TLS_STRICT && + !tls1_check_chain(s, NULL, NULL, NULL, -2)) + return 0; + alg_k = s->s3->tmp.new_cipher->algorithm_mkey; + /* See if we can use client certificate for fixed DH */ + if (alg_k & (SSL_kDHr | SSL_kDHd)) { + SESS_CERT *scert = s->session->sess_cert; + int i = scert->peer_cert_type; + EVP_PKEY *clkey = NULL, *spkey = NULL; + clkey = s->cert->key->privatekey; + /* If client key not DH assume it can be used */ + if (EVP_PKEY_id(clkey) != EVP_PKEY_DH) + return 1; + if (i >= 0) + spkey = X509_get_pubkey(scert->peer_pkeys[i].x509); + if (spkey) { + /* Compare server and client parameters */ + i = EVP_PKEY_cmp_parameters(clkey, spkey); + EVP_PKEY_free(spkey); + if (i != 1) + return 0; + } + s->s3->flags |= TLS1_FLAGS_SKIP_CERT_VERIFY; + } + return 1; +} + int ssl3_send_client_certificate(SSL *s) { X509 *x509 = NULL; EVP_PKEY *pkey = NULL; int i; - unsigned long l; if (s->state == SSL3_ST_CW_CERT_A) { - if ((s->cert == NULL) || - (s->cert->key->x509 == NULL) || - (s->cert->key->privatekey == NULL)) - s->state = SSL3_ST_CW_CERT_B; - else + /* Let cert callback update client certificates if required */ + if (s->cert->cert_cb) { + i = s->cert->cert_cb(s, s->cert->cert_cb_arg); + if (i < 0) { + s->rwstate = SSL_X509_LOOKUP; + return -1; + } + if (i == 0) { + ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_INTERNAL_ERROR); + s->state = SSL_ST_ERR; + return 0; + } + s->rwstate = SSL_NOTHING; + } + if (ssl3_check_client_certificate(s)) s->state = SSL3_ST_CW_CERT_C; + else + s->state = SSL3_ST_CW_CERT_B; } /* We need to get a client cert */ @@ -3194,7 +3420,6 @@ int ssl3_send_client_certificate(SSL *s) * If we get an error, we need to ssl->rwstate=SSL_X509_LOOKUP; * return(-1); We then get retied later */ - i = 0; i = ssl_do_client_cert_cb(s, &x509, &pkey); if (i < 0) { s->rwstate = SSL_X509_LOOKUP; @@ -3215,6 +3440,8 @@ int ssl3_send_client_certificate(SSL *s) X509_free(x509); if (pkey != NULL) EVP_PKEY_free(pkey); + if (i && !ssl3_check_client_certificate(s)) + i = 0; if (i == 0) { if (s->version == SSL3_VERSION) { s->s3->tmp.cert_req = 0; @@ -3231,20 +3458,17 @@ int ssl3_send_client_certificate(SSL *s) if (s->state == SSL3_ST_CW_CERT_C) { s->state = SSL3_ST_CW_CERT_D; - l = ssl3_output_cert_chain(s, - (s->s3->tmp.cert_req == - 2) ? NULL : s->cert->key->x509); - if (!l) { + if (!ssl3_output_cert_chain(s, + (s->s3->tmp.cert_req == + 2) ? NULL : s->cert->key)) { SSLerr(SSL_F_SSL3_SEND_CLIENT_CERTIFICATE, ERR_R_INTERNAL_ERROR); ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_INTERNAL_ERROR); s->state = SSL_ST_ERR; return 0; } - s->init_num = (int)l; - s->init_off = 0; } /* SSL3_ST_CW_CERT_D */ - return (ssl3_do_write(s, SSL3_RT_HANDSHAKE)); + return ssl_do_write(s); } #define has_bits(i,m) (((i)&(m)) == (m)) @@ -3268,7 +3492,7 @@ int ssl3_check_cert_and_algorithm(SSL *s) alg_a = s->s3->tmp.new_cipher->algorithm_auth; /* we don't have a certificate */ - if ((alg_a & (SSL_aDH | SSL_aNULL | SSL_aKRB5)) || (alg_k & SSL_kPSK)) + if ((alg_a & (SSL_aNULL | SSL_aKRB5)) || (alg_k & SSL_kPSK)) return (1); sc = s->session->sess_cert; @@ -3295,6 +3519,13 @@ int ssl3_check_cert_and_algorithm(SSL *s) } else { return 1; } + } else if (alg_a & SSL_aECDSA) { + SSLerr(SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM, + SSL_R_MISSING_ECDSA_SIGNING_CERT); + goto f_err; + } else if (alg_k & (SSL_kECDHr | SSL_kECDHe)) { + SSLerr(SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM, SSL_R_MISSING_ECDH_CERT); + goto f_err; } #endif pkey = X509_get_pubkey(sc->peer_pkeys[idx].x509); @@ -3345,22 +3576,33 @@ int ssl3_check_cert_and_algorithm(SSL *s) SSLerr(SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM, ERR_R_INTERNAL_ERROR); goto f_err; } - if ((alg_k & SSL_kDHr) && !has_bits(i, EVP_PK_DH | EVP_PKS_RSA)) { + if ((alg_k & SSL_kDHr) && !SSL_USE_SIGALGS(s) && + !has_bits(i, EVP_PK_DH | EVP_PKS_RSA)) { SSLerr(SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM, SSL_R_MISSING_DH_RSA_CERT); goto f_err; } # ifndef OPENSSL_NO_DSA - if ((alg_k & SSL_kDHd) && !has_bits(i, EVP_PK_DH | EVP_PKS_DSA)) { + if ((alg_k & SSL_kDHd) && !SSL_USE_SIGALGS(s) && + !has_bits(i, EVP_PK_DH | EVP_PKS_DSA)) { SSLerr(SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM, SSL_R_MISSING_DH_DSA_CERT); goto f_err; } # endif - /* Check DHE only: static DH not implemented. */ - if (alg_k & SSL_kEDH) { - int dh_size = BN_num_bits(dh->p); + if (alg_k & (SSL_kDHE | SSL_kDHr | SSL_kDHd)) { + int dh_size; + if (alg_k & SSL_kDHE) { + dh_size = BN_num_bits(dh->p); + } else { + DH *dh_srvr = get_server_static_dh_key(sc); + if (dh_srvr == NULL) + goto f_err; + dh_size = BN_num_bits(dh_srvr->p); + DH_free(dh_srvr); + } + if ((!SSL_C_IS_EXPORT(s->s3->tmp.new_cipher) && dh_size < 768) || (SSL_C_IS_EXPORT(s->s3->tmp.new_cipher) && dh_size < 512)) { SSLerr(SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM, SSL_R_DH_KEY_TOO_SMALL); @@ -3388,7 +3630,7 @@ int ssl3_check_cert_and_algorithm(SSL *s) } else #endif #ifndef OPENSSL_NO_DH - if (alg_k & SSL_kEDH) { + if (alg_k & SSL_kDHE) { if (BN_num_bits(dh->p) > SSL_C_EXPORT_PKEYLENGTH(s->s3->tmp.new_cipher)) { /* We have a temporary DH key but it's too large. */ diff --git a/libs/openssl/ssl/s3_enc.c b/libs/openssl/ssl/s3_enc.c index 152f40db..47a0ec9f 100644 --- a/libs/openssl/ssl/s3_enc.c +++ b/libs/openssl/ssl/s3_enc.c @@ -253,7 +253,10 @@ int ssl3_change_cipher_state(SSL *s, int which) EVP_CIPHER_CTX_init(s->enc_read_ctx); dd = s->enc_read_ctx; - ssl_replace_hash(&s->read_hash, m); + if (ssl_replace_hash(&s->read_hash, m) == NULL) { + SSLerr(SSL_F_SSL3_CHANGE_CIPHER_STATE, ERR_R_INTERNAL_ERROR); + goto err2; + } #ifndef OPENSSL_NO_COMP /* COMPRESS */ if (s->expand != NULL) { @@ -288,7 +291,10 @@ int ssl3_change_cipher_state(SSL *s, int which) */ EVP_CIPHER_CTX_init(s->enc_write_ctx); dd = s->enc_write_ctx; - ssl_replace_hash(&s->write_hash, m); + if (ssl_replace_hash(&s->write_hash, m) == NULL) { + SSLerr(SSL_F_SSL3_CHANGE_CIPHER_STATE, ERR_R_INTERNAL_ERROR); + goto err2; + } #ifndef OPENSSL_NO_COMP /* COMPRESS */ if (s->compress != NULL) { @@ -374,6 +380,23 @@ int ssl3_change_cipher_state(SSL *s, int which) EVP_CipherInit_ex(dd, c, NULL, key, iv, (which & SSL3_CC_WRITE)); +#ifdef OPENSSL_SSL_TRACE_CRYPTO + if (s->msg_callback) { + + int wh = which & SSL3_CC_WRITE ? + TLS1_RT_CRYPTO_WRITE : TLS1_RT_CRYPTO_READ; + s->msg_callback(2, s->version, wh | TLS1_RT_CRYPTO_MAC, + mac_secret, EVP_MD_size(m), s, s->msg_callback_arg); + if (c->key_len) + s->msg_callback(2, s->version, wh | TLS1_RT_CRYPTO_KEY, + key, c->key_len, s, s->msg_callback_arg); + if (k) { + s->msg_callback(2, s->version, wh | TLS1_RT_CRYPTO_IV, + iv, k, s, s->msg_callback_arg); + } + } +#endif + OPENSSL_cleanse(&(exp_key[0]), sizeof(exp_key)); OPENSSL_cleanse(&(exp_iv[0]), sizeof(exp_iv)); EVP_MD_CTX_cleanup(&md); @@ -674,19 +697,21 @@ static int ssl3_handshake_mac(SSL *s, int md_nid, return 0; npad = (48 / n) * n; - if (sender != NULL) - EVP_DigestUpdate(&ctx, sender, len); - EVP_DigestUpdate(&ctx, s->session->master_key, - s->session->master_key_length); - EVP_DigestUpdate(&ctx, ssl3_pad_1, npad); - EVP_DigestFinal_ex(&ctx, md_buf, &i); - - EVP_DigestInit_ex(&ctx, EVP_MD_CTX_md(&ctx), NULL); - EVP_DigestUpdate(&ctx, s->session->master_key, - s->session->master_key_length); - EVP_DigestUpdate(&ctx, ssl3_pad_2, npad); - EVP_DigestUpdate(&ctx, md_buf, i); - EVP_DigestFinal_ex(&ctx, p, &ret); + if ((sender != NULL && EVP_DigestUpdate(&ctx, sender, len) <= 0) + || EVP_DigestUpdate(&ctx, s->session->master_key, + s->session->master_key_length) <= 0 + || EVP_DigestUpdate(&ctx, ssl3_pad_1, npad) <= 0 + || EVP_DigestFinal_ex(&ctx, md_buf, &i) <= 0 + + || EVP_DigestInit_ex(&ctx, EVP_MD_CTX_md(&ctx), NULL) <= 0 + || EVP_DigestUpdate(&ctx, s->session->master_key, + s->session->master_key_length) <= 0 + || EVP_DigestUpdate(&ctx, ssl3_pad_2, npad) <= 0 + || EVP_DigestUpdate(&ctx, md_buf, i) <= 0 + || EVP_DigestFinal_ex(&ctx, p, &ret) <= 0) { + SSLerr(SSL_F_SSL3_HANDSHAKE_MAC, ERR_R_INTERNAL_ERROR); + ret = 0; + } EVP_MD_CTX_cleanup(&ctx); @@ -758,33 +783,36 @@ int n_ssl3_mac(SSL *ssl, unsigned char *md, int send) header[j++] = rec->length & 0xff; /* Final param == is SSLv3 */ - ssl3_cbc_digest_record(hash, - md, &md_size, - header, rec->input, - rec->length + md_size, orig_len, - mac_sec, md_size, 1); + if (ssl3_cbc_digest_record(hash, + md, &md_size, + header, rec->input, + rec->length + md_size, orig_len, + mac_sec, md_size, 1) <= 0) + return -1; } else { unsigned int md_size_u; /* Chop the digest off the end :-) */ EVP_MD_CTX_init(&md_ctx); - EVP_MD_CTX_copy_ex(&md_ctx, hash); - EVP_DigestUpdate(&md_ctx, mac_sec, md_size); - EVP_DigestUpdate(&md_ctx, ssl3_pad_1, npad); - EVP_DigestUpdate(&md_ctx, seq, 8); rec_char = rec->type; - EVP_DigestUpdate(&md_ctx, &rec_char, 1); p = md; s2n(rec->length, p); - EVP_DigestUpdate(&md_ctx, md, 2); - EVP_DigestUpdate(&md_ctx, rec->input, rec->length); - EVP_DigestFinal_ex(&md_ctx, md, NULL); - - EVP_MD_CTX_copy_ex(&md_ctx, hash); - EVP_DigestUpdate(&md_ctx, mac_sec, md_size); - EVP_DigestUpdate(&md_ctx, ssl3_pad_2, npad); - EVP_DigestUpdate(&md_ctx, md, md_size); - EVP_DigestFinal_ex(&md_ctx, md, &md_size_u); + if (EVP_MD_CTX_copy_ex(&md_ctx, hash) <= 0 + || EVP_DigestUpdate(&md_ctx, mac_sec, md_size) <= 0 + || EVP_DigestUpdate(&md_ctx, ssl3_pad_1, npad) <= 0 + || EVP_DigestUpdate(&md_ctx, seq, 8) <= 0 + || EVP_DigestUpdate(&md_ctx, &rec_char, 1) <= 0 + || EVP_DigestUpdate(&md_ctx, md, 2) <= 0 + || EVP_DigestUpdate(&md_ctx, rec->input, rec->length) <= 0 + || EVP_DigestFinal_ex(&md_ctx, md, NULL) <= 0 + || EVP_MD_CTX_copy_ex(&md_ctx, hash) <= 0 + || EVP_DigestUpdate(&md_ctx, mac_sec, md_size) <= 0 + || EVP_DigestUpdate(&md_ctx, ssl3_pad_2, npad) <= 0 + || EVP_DigestUpdate(&md_ctx, md, md_size) <= 0 + || EVP_DigestFinal_ex(&md_ctx, md, &md_size_u) <= 0) { + EVP_MD_CTX_cleanup(&md_ctx); + return -1; + } md_size = md_size_u; EVP_MD_CTX_cleanup(&md_ctx); @@ -823,24 +851,50 @@ int ssl3_generate_master_secret(SSL *s, unsigned char *out, unsigned char *p, EVP_MD_CTX ctx; int i, ret = 0; unsigned int n; +#ifdef OPENSSL_SSL_TRACE_CRYPTO + unsigned char *tmpout = out; +#endif EVP_MD_CTX_init(&ctx); for (i = 0; i < 3; i++) { - EVP_DigestInit_ex(&ctx, s->ctx->sha1, NULL); - EVP_DigestUpdate(&ctx, salt[i], strlen((const char *)salt[i])); - EVP_DigestUpdate(&ctx, p, len); - EVP_DigestUpdate(&ctx, &(s->s3->client_random[0]), SSL3_RANDOM_SIZE); - EVP_DigestUpdate(&ctx, &(s->s3->server_random[0]), SSL3_RANDOM_SIZE); - EVP_DigestFinal_ex(&ctx, buf, &n); - - EVP_DigestInit_ex(&ctx, s->ctx->md5, NULL); - EVP_DigestUpdate(&ctx, p, len); - EVP_DigestUpdate(&ctx, buf, n); - EVP_DigestFinal_ex(&ctx, out, &n); + if (EVP_DigestInit_ex(&ctx, s->ctx->sha1, NULL) <= 0 + || EVP_DigestUpdate(&ctx, salt[i], + strlen((const char *)salt[i])) <= 0 + || EVP_DigestUpdate(&ctx, p, len) <= 0 + || EVP_DigestUpdate(&ctx, &(s->s3->client_random[0]), + SSL3_RANDOM_SIZE) <= 0 + || EVP_DigestUpdate(&ctx, &(s->s3->server_random[0]), + SSL3_RANDOM_SIZE) <= 0 + || EVP_DigestFinal_ex(&ctx, buf, &n) <= 0 + + || EVP_DigestInit_ex(&ctx, s->ctx->md5, NULL) <= 0 + || EVP_DigestUpdate(&ctx, p, len) <= 0 + || EVP_DigestUpdate(&ctx, buf, n) <= 0 + || EVP_DigestFinal_ex(&ctx, out, &n) <= 0) { + SSLerr(SSL_F_SSL3_GENERATE_MASTER_SECRET, ERR_R_INTERNAL_ERROR); + ret = 0; + break; + } out += n; ret += n; } EVP_MD_CTX_cleanup(&ctx); + +#ifdef OPENSSL_SSL_TRACE_CRYPTO + if (ret > 0 && s->msg_callback) { + s->msg_callback(2, s->version, TLS1_RT_CRYPTO_PREMASTER, + p, len, s, s->msg_callback_arg); + s->msg_callback(2, s->version, TLS1_RT_CRYPTO_CLIENT_RANDOM, + s->s3->client_random, SSL3_RANDOM_SIZE, + s, s->msg_callback_arg); + s->msg_callback(2, s->version, TLS1_RT_CRYPTO_SERVER_RANDOM, + s->s3->server_random, SSL3_RANDOM_SIZE, + s, s->msg_callback_arg); + s->msg_callback(2, s->version, TLS1_RT_CRYPTO_MASTER, + tmpout, SSL3_MASTER_SECRET_SIZE, + s, s->msg_callback_arg); + } +#endif OPENSSL_cleanse(buf, sizeof buf); return (ret); } diff --git a/libs/openssl/ssl/s3_lib.c b/libs/openssl/ssl/s3_lib.c index de917d3f..64793d6a 100644 --- a/libs/openssl/ssl/s3_lib.c +++ b/libs/openssl/ssl/s3_lib.c @@ -152,11 +152,6 @@ #include #include "ssl_locl.h" #include "kssl_lcl.h" -#ifndef OPENSSL_NO_TLSEXT -# ifndef OPENSSL_NO_EC -# include "../crypto/ec/ec_lcl.h" -# endif /* OPENSSL_NO_EC */ -#endif /* OPENSSL_NO_TLSEXT */ #include #ifndef OPENSSL_NO_DH # include @@ -351,7 +346,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 0C */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, SSL3_TXT_DH_DSS_DES_64_CBC_SHA, SSL3_CK_DH_DSS_DES_64_CBC_SHA, SSL_kDHd, @@ -367,7 +362,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 0D */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, SSL3_TXT_DH_DSS_DES_192_CBC3_SHA, SSL3_CK_DH_DSS_DES_192_CBC3_SHA, SSL_kDHd, @@ -383,7 +378,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 0E */ { - 0, /* not implemented (non-ephemeral DH) */ + 0, SSL3_TXT_DH_RSA_DES_40_CBC_SHA, SSL3_CK_DH_RSA_DES_40_CBC_SHA, SSL_kDHr, @@ -399,7 +394,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 0F */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, SSL3_TXT_DH_RSA_DES_64_CBC_SHA, SSL3_CK_DH_RSA_DES_64_CBC_SHA, SSL_kDHr, @@ -415,7 +410,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 10 */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, SSL3_TXT_DH_RSA_DES_192_CBC3_SHA, SSL3_CK_DH_RSA_DES_192_CBC3_SHA, SSL_kDHr, @@ -902,7 +897,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { }, /* Cipher 30 */ { - 0, + 1, TLS1_TXT_DH_DSS_WITH_AES_128_SHA, TLS1_CK_DH_DSS_WITH_AES_128_SHA, SSL_kDHd, @@ -917,7 +912,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { }, /* Cipher 31 */ { - 0, + 1, TLS1_TXT_DH_RSA_WITH_AES_128_SHA, TLS1_CK_DH_RSA_WITH_AES_128_SHA, SSL_kDHr, @@ -993,7 +988,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { }, /* Cipher 36 */ { - 0, + 1, TLS1_TXT_DH_DSS_WITH_AES_256_SHA, TLS1_CK_DH_DSS_WITH_AES_256_SHA, SSL_kDHd, @@ -1009,7 +1004,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 37 */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, TLS1_TXT_DH_RSA_WITH_AES_256_SHA, TLS1_CK_DH_RSA_WITH_AES_256_SHA, SSL_kDHr, @@ -1122,7 +1117,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 3E */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, TLS1_TXT_DH_DSS_WITH_AES_128_SHA256, TLS1_CK_DH_DSS_WITH_AES_128_SHA256, SSL_kDHd, @@ -1138,7 +1133,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 3F */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, TLS1_TXT_DH_RSA_WITH_AES_128_SHA256, TLS1_CK_DH_RSA_WITH_AES_128_SHA256, SSL_kDHr, @@ -1189,7 +1184,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 42 */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA, TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA, SSL_kDHd, @@ -1205,7 +1200,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 43 */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA, TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA, SSL_kDHr, @@ -1404,7 +1399,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 68 */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, TLS1_TXT_DH_DSS_WITH_AES_256_SHA256, TLS1_CK_DH_DSS_WITH_AES_256_SHA256, SSL_kDHd, @@ -1420,7 +1415,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 69 */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, TLS1_TXT_DH_RSA_WITH_AES_256_SHA256, TLS1_CK_DH_RSA_WITH_AES_256_SHA256, SSL_kDHr, @@ -1573,7 +1568,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { }, /* Cipher 85 */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA, TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA, SSL_kDHd, @@ -1589,7 +1584,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 86 */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA, TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA, SSL_kDHr, @@ -1739,7 +1734,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 97 */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, TLS1_TXT_DH_DSS_WITH_SEED_SHA, TLS1_CK_DH_DSS_WITH_SEED_SHA, SSL_kDHd, @@ -1755,7 +1750,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher 98 */ { - 0, /* not implemented (non-ephemeral DH) */ + 1, TLS1_TXT_DH_RSA_WITH_SEED_SHA, TLS1_CK_DH_RSA_WITH_SEED_SHA, SSL_kDHr, @@ -1887,7 +1882,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher A0 */ { - 0, + 1, TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256, TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256, SSL_kDHr, @@ -1903,7 +1898,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher A1 */ { - 0, + 1, TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384, TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384, SSL_kDHr, @@ -1951,7 +1946,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher A4 */ { - 0, + 1, TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256, TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256, SSL_kDHd, @@ -1967,7 +1962,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { /* Cipher A5 */ { - 0, + 1, TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384, TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384, SSL_kDHd, @@ -2012,6 +2007,21 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = { 256, 256, }, +#ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL + { + 1, + "SCSV", + SSL3_CK_SCSV, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0}, +#endif #ifndef OPENSSL_NO_ECDH /* Cipher C001 */ @@ -2899,6 +2909,10 @@ SSL3_ENC_METHOD SSLv3_enc_data = { (int (*)(SSL *, unsigned char *, size_t, const char *, size_t, const unsigned char *, size_t, int use_context))ssl_undefined_function, + 0, + SSL3_HM_HEADER_LENGTH, + ssl3_set_handshake_header, + ssl3_handshake_write }; long ssl3_default_timeout(void) @@ -2932,6 +2946,20 @@ int ssl3_pending(const SSL *s) SSL3_RT_APPLICATION_DATA) ? s->s3->rrec.length : 0; } +void ssl3_set_handshake_header(SSL *s, int htype, unsigned long len) +{ + unsigned char *p = (unsigned char *)s->init_buf->data; + *(p++) = htype; + l2n3(len, p); + s->init_num = (int)len + SSL3_HM_HEADER_LENGTH; + s->init_off = 0; +} + +int ssl3_handshake_write(SSL *s) +{ + return ssl3_do_write(s, SSL3_RT_HANDSHAKE); +} + int ssl3_new(SSL *s) { SSL3_STATE *s3; @@ -2955,7 +2983,7 @@ int ssl3_new(SSL *s) void ssl3_free(SSL *s) { - if (s == NULL) + if (s == NULL || s->s3 == NULL) return; #ifdef TLSEXT_TYPE_opaque_prf_input @@ -2988,6 +3016,11 @@ void ssl3_free(SSL *s) } if (s->s3->handshake_dgst) ssl3_free_digest_list(s); +#ifndef OPENSSL_NO_TLSEXT + if (s->s3->alpn_selected) + OPENSSL_free(s->s3->alpn_selected); +#endif + #ifndef OPENSSL_NO_SRP SSL_SRP_CTX_free(s); #endif @@ -3049,6 +3082,12 @@ void ssl3_clear(SSL *s) if (s->s3->handshake_dgst) { ssl3_free_digest_list(s); } +#if !defined(OPENSSL_NO_TLSEXT) + if (s->s3->alpn_selected) { + OPENSSL_free(s->s3->alpn_selected); + s->s3->alpn_selected = NULL; + } +#endif memset(s->s3, 0, sizeof *s->s3); s->s3->rbuf.buf = rp; s->s3->wbuf.buf = wp; @@ -3081,6 +3120,9 @@ static char *MS_CALLBACK srp_password_from_info_cb(SSL *s, void *arg) } #endif +static int ssl3_set_req_cert_type(CERT *c, const unsigned char *p, + size_t len); + long ssl3_ctrl(SSL *s, int cmd, long larg, void *parg) { int ret = 0; @@ -3309,8 +3351,7 @@ long ssl3_ctrl(SSL *s, int cmd, long larg, void *parg) # ifndef OPENSSL_NO_HEARTBEATS case SSL_CTRL_TLS_EXT_SEND_HEARTBEAT: - if (SSL_version(s) == DTLS1_VERSION - || SSL_version(s) == DTLS1_BAD_VER) + if (SSL_IS_DTLS(s)) ret = dtls1_heartbeat(s); else ret = tls1_heartbeat(s); @@ -3331,6 +3372,196 @@ long ssl3_ctrl(SSL *s, int cmd, long larg, void *parg) #endif /* !OPENSSL_NO_TLSEXT */ + case SSL_CTRL_CHAIN: + if (larg) + return ssl_cert_set1_chain(s->cert, (STACK_OF(X509) *)parg); + else + return ssl_cert_set0_chain(s->cert, (STACK_OF(X509) *)parg); + + case SSL_CTRL_CHAIN_CERT: + if (larg) + return ssl_cert_add1_chain_cert(s->cert, (X509 *)parg); + else + return ssl_cert_add0_chain_cert(s->cert, (X509 *)parg); + + case SSL_CTRL_GET_CHAIN_CERTS: + *(STACK_OF(X509) **)parg = s->cert->key->chain; + break; + + case SSL_CTRL_SELECT_CURRENT_CERT: + return ssl_cert_select_current(s->cert, (X509 *)parg); + + case SSL_CTRL_SET_CURRENT_CERT: + if (larg == SSL_CERT_SET_SERVER) { + CERT_PKEY *cpk; + const SSL_CIPHER *cipher; + if (!s->server) + return 0; + cipher = s->s3->tmp.new_cipher; + if (!cipher) + return 0; + /* + * No certificate for unauthenticated ciphersuites or using SRP + * authentication + */ + if (cipher->algorithm_auth & (SSL_aNULL | SSL_aSRP)) + return 2; + cpk = ssl_get_server_send_pkey(s); + if (!cpk) + return 0; + s->cert->key = cpk; + return 1; + } + return ssl_cert_set_current(s->cert, larg); + +#ifndef OPENSSL_NO_EC + case SSL_CTRL_GET_CURVES: + { + unsigned char *clist; + size_t clistlen; + if (!s->session) + return 0; + clist = s->session->tlsext_ellipticcurvelist; + clistlen = s->session->tlsext_ellipticcurvelist_length / 2; + if (parg) { + size_t i; + int *cptr = parg; + unsigned int cid, nid; + for (i = 0; i < clistlen; i++) { + n2s(clist, cid); + nid = tls1_ec_curve_id2nid(cid); + if (nid != 0) + cptr[i] = nid; + else + cptr[i] = TLSEXT_nid_unknown | cid; + } + } + return (int)clistlen; + } + + case SSL_CTRL_SET_CURVES: + return tls1_set_curves(&s->tlsext_ellipticcurvelist, + &s->tlsext_ellipticcurvelist_length, + parg, larg); + + case SSL_CTRL_SET_CURVES_LIST: + return tls1_set_curves_list(&s->tlsext_ellipticcurvelist, + &s->tlsext_ellipticcurvelist_length, + parg); + + case SSL_CTRL_GET_SHARED_CURVE: + return tls1_shared_curve(s, larg); + +# ifndef OPENSSL_NO_ECDH + case SSL_CTRL_SET_ECDH_AUTO: + s->cert->ecdh_tmp_auto = larg; + return 1; +# endif +#endif + case SSL_CTRL_SET_SIGALGS: + return tls1_set_sigalgs(s->cert, parg, larg, 0); + + case SSL_CTRL_SET_SIGALGS_LIST: + return tls1_set_sigalgs_list(s->cert, parg, 0); + + case SSL_CTRL_SET_CLIENT_SIGALGS: + return tls1_set_sigalgs(s->cert, parg, larg, 1); + + case SSL_CTRL_SET_CLIENT_SIGALGS_LIST: + return tls1_set_sigalgs_list(s->cert, parg, 1); + + case SSL_CTRL_GET_CLIENT_CERT_TYPES: + { + const unsigned char **pctype = parg; + if (s->server || !s->s3->tmp.cert_req) + return 0; + if (s->cert->ctypes) { + if (pctype) + *pctype = s->cert->ctypes; + return (int)s->cert->ctype_num; + } + if (pctype) + *pctype = (unsigned char *)s->s3->tmp.ctype; + return s->s3->tmp.ctype_num; + } + + case SSL_CTRL_SET_CLIENT_CERT_TYPES: + if (!s->server) + return 0; + return ssl3_set_req_cert_type(s->cert, parg, larg); + + case SSL_CTRL_BUILD_CERT_CHAIN: + return ssl_build_cert_chain(s->cert, s->ctx->cert_store, larg); + + case SSL_CTRL_SET_VERIFY_CERT_STORE: + return ssl_cert_set_cert_store(s->cert, parg, 0, larg); + + case SSL_CTRL_SET_CHAIN_CERT_STORE: + return ssl_cert_set_cert_store(s->cert, parg, 1, larg); + + case SSL_CTRL_GET_PEER_SIGNATURE_NID: + if (SSL_USE_SIGALGS(s)) { + if (s->session && s->session->sess_cert) { + const EVP_MD *sig; + sig = s->session->sess_cert->peer_key->digest; + if (sig) { + *(int *)parg = EVP_MD_type(sig); + return 1; + } + } + return 0; + } + /* Might want to do something here for other versions */ + else + return 0; + + case SSL_CTRL_GET_SERVER_TMP_KEY: + if (s->server || !s->session || !s->session->sess_cert) + return 0; + else { + SESS_CERT *sc; + EVP_PKEY *ptmp; + int rv = 0; + sc = s->session->sess_cert; +#if !defined(OPENSSL_NO_RSA) && !defined(OPENSSL_NO_DH) && !defined(OPENSSL_NO_EC) && !defined(OPENSSL_NO_ECDH) + if (!sc->peer_rsa_tmp && !sc->peer_dh_tmp && !sc->peer_ecdh_tmp) + return 0; +#endif + ptmp = EVP_PKEY_new(); + if (!ptmp) + return 0; + if (0) ; +#ifndef OPENSSL_NO_RSA + else if (sc->peer_rsa_tmp) + rv = EVP_PKEY_set1_RSA(ptmp, sc->peer_rsa_tmp); +#endif +#ifndef OPENSSL_NO_DH + else if (sc->peer_dh_tmp) + rv = EVP_PKEY_set1_DH(ptmp, sc->peer_dh_tmp); +#endif +#ifndef OPENSSL_NO_ECDH + else if (sc->peer_ecdh_tmp) + rv = EVP_PKEY_set1_EC_KEY(ptmp, sc->peer_ecdh_tmp); +#endif + if (rv) { + *(EVP_PKEY **)parg = ptmp; + return 1; + } + EVP_PKEY_free(ptmp); + return 0; + } +#ifndef OPENSSL_NO_EC + case SSL_CTRL_GET_EC_POINT_FORMATS: + { + SSL_SESSION *sess = s->session; + const unsigned char **pformat = parg; + if (!sess || !sess->tlsext_ecpointformatlist) + return 0; + *pformat = sess->tlsext_ecpointformatlist; + return (int)sess->tlsext_ecpointformatlist_length; + } +#endif + case SSL_CTRL_CHECK_PROTO_VERSION: /* * For library-internal use; checks that the current protocol is the @@ -3606,6 +3837,47 @@ long ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) ctx->srp_ctx.strength = larg; break; # endif + +# ifndef OPENSSL_NO_EC + case SSL_CTRL_SET_CURVES: + return tls1_set_curves(&ctx->tlsext_ellipticcurvelist, + &ctx->tlsext_ellipticcurvelist_length, + parg, larg); + + case SSL_CTRL_SET_CURVES_LIST: + return tls1_set_curves_list(&ctx->tlsext_ellipticcurvelist, + &ctx->tlsext_ellipticcurvelist_length, + parg); +# ifndef OPENSSL_NO_ECDH + case SSL_CTRL_SET_ECDH_AUTO: + ctx->cert->ecdh_tmp_auto = larg; + return 1; +# endif +# endif + case SSL_CTRL_SET_SIGALGS: + return tls1_set_sigalgs(ctx->cert, parg, larg, 0); + + case SSL_CTRL_SET_SIGALGS_LIST: + return tls1_set_sigalgs_list(ctx->cert, parg, 0); + + case SSL_CTRL_SET_CLIENT_SIGALGS: + return tls1_set_sigalgs(ctx->cert, parg, larg, 1); + + case SSL_CTRL_SET_CLIENT_SIGALGS_LIST: + return tls1_set_sigalgs_list(ctx->cert, parg, 1); + + case SSL_CTRL_SET_CLIENT_CERT_TYPES: + return ssl3_set_req_cert_type(ctx->cert, parg, larg); + + case SSL_CTRL_BUILD_CERT_CHAIN: + return ssl_build_cert_chain(ctx->cert, ctx->cert_store, larg); + + case SSL_CTRL_SET_VERIFY_CERT_STORE: + return ssl_cert_set_cert_store(ctx->cert, parg, 0, larg); + + case SSL_CTRL_SET_CHAIN_CERT_STORE: + return ssl_cert_set_cert_store(ctx->cert, parg, 1, larg); + #endif /* !OPENSSL_NO_TLSEXT */ /* A Thawte special :-) */ @@ -3618,7 +3890,10 @@ long ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) break; case SSL_CTRL_GET_EXTRA_CHAIN_CERTS: - *(STACK_OF(X509) **)parg = ctx->extra_certs; + if (ctx->extra_certs == NULL && larg == 0) + *(STACK_OF(X509) **)parg = ctx->cert->key->chain; + else + *(STACK_OF(X509) **)parg = ctx->extra_certs; break; case SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS: @@ -3628,6 +3903,28 @@ long ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) } break; + case SSL_CTRL_CHAIN: + if (larg) + return ssl_cert_set1_chain(ctx->cert, (STACK_OF(X509) *)parg); + else + return ssl_cert_set0_chain(ctx->cert, (STACK_OF(X509) *)parg); + + case SSL_CTRL_CHAIN_CERT: + if (larg) + return ssl_cert_add1_chain_cert(ctx->cert, (X509 *)parg); + else + return ssl_cert_add0_chain_cert(ctx->cert, (X509 *)parg); + + case SSL_CTRL_GET_CHAIN_CERTS: + *(STACK_OF(X509) **)parg = ctx->cert->key->chain; + break; + + case SSL_CTRL_SELECT_CURRENT_CERT: + return ssl_cert_select_current(ctx->cert, (X509 *)parg); + + case SSL_CTRL_SET_CURRENT_CERT: + return ssl_cert_set_current(ctx->cert, larg); + default: return (0); } @@ -3702,7 +3999,6 @@ long ssl3_ctx_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp) (void)) break; # endif #endif - default: return (0); } @@ -3726,10 +4022,7 @@ const SSL_CIPHER *ssl3_get_cipher_by_char(const unsigned char *p) if (cp == NULL) fprintf(stderr, "Unknown cipher ID %x\n", (p[0] << 8) | p[1]); #endif - if (cp == NULL || cp->valid == 0) - return NULL; - else - return cp; + return cp; } int ssl3_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p) @@ -3752,11 +4045,6 @@ SSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt, SSL_CIPHER *c, *ret = NULL; STACK_OF(SSL_CIPHER) *prio, *allow; int i, ii, ok; -#if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_EC) - unsigned int j; - int ec_ok, ec_nid; - unsigned char ec_search1 = 0, ec_search2 = 0; -#endif CERT *cert; unsigned long alg_k, alg_a, mask_k, mask_a, emask_k, emask_a; @@ -3789,7 +4077,7 @@ SSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt, } #endif - if (s->options & SSL_OP_CIPHER_SERVER_PREFERENCE) { + if (s->options & SSL_OP_CIPHER_SERVER_PREFERENCE || tls1_suiteb(s)) { prio = srvr; allow = clnt; } else { @@ -3797,12 +4085,13 @@ SSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt, allow = srvr; } + tls1_set_cert_validity(s); + for (i = 0; i < sk_SSL_CIPHER_num(prio); i++) { c = sk_SSL_CIPHER_value(prio, i); - /* Skip TLS v1.2 only ciphersuites if lower than v1.2 */ - if ((c->algorithm_ssl & SSL_TLSV1_2) && - (TLS1_get_version(s) < TLS1_2_VERSION)) + /* Skip TLS v1.2 only ciphersuites if not supported */ + if ((c->algorithm_ssl & SSL_TLSV1_2) && !SSL_USE_TLS1_2_CIPHERS(s)) continue; ssl_set_cert_masks(cert, c); @@ -3857,194 +4146,13 @@ SSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt, #ifndef OPENSSL_NO_TLSEXT # ifndef OPENSSL_NO_EC - if ( - /* - * if we are considering an ECC cipher suite that uses our - * certificate - */ - (alg_a & SSL_aECDSA || alg_a & SSL_aECDH) - /* and we have an ECC certificate */ - && (s->cert->pkeys[SSL_PKEY_ECC].x509 != NULL) - /* - * and the client specified a Supported Point Formats - * extension - */ - && ((s->session->tlsext_ecpointformatlist_length > 0) - && (s->session->tlsext_ecpointformatlist != NULL)) - /* and our certificate's point is compressed */ - && ((s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info != NULL) - && (s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info->key != - NULL) - && (s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info-> - key->public_key != NULL) - && (s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info-> - key->public_key->data != NULL) - && - ((* - (s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info-> - key->public_key->data) == POINT_CONVERSION_COMPRESSED) - || - (* - (s->cert->pkeys[SSL_PKEY_ECC].x509->cert_info-> - key->public_key->data) == - POINT_CONVERSION_COMPRESSED + 1) - ) - ) - ) { - ec_ok = 0; - /* - * if our certificate's curve is over a field type that the - * client does not support then do not allow this cipher suite to - * be negotiated - */ - if ((s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec != NULL) - && (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group != - NULL) - && (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec-> - group->meth != NULL) - && - (EC_METHOD_get_field_type - (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec-> - group->meth) == NID_X9_62_prime_field) - ) { - for (j = 0; j < s->session->tlsext_ecpointformatlist_length; - j++) { - if (s->session->tlsext_ecpointformatlist[j] == - TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime) { - ec_ok = 1; - break; - } - } - } else - if (EC_METHOD_get_field_type - (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec-> - group->meth) == NID_X9_62_characteristic_two_field) { - for (j = 0; j < s->session->tlsext_ecpointformatlist_length; - j++) { - if (s->session->tlsext_ecpointformatlist[j] == - TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2) { - ec_ok = 1; - break; - } - } - } - ok = ok && ec_ok; - } - if ( - /* - * if we are considering an ECC cipher suite that uses our - * certificate - */ - (alg_a & SSL_aECDSA || alg_a & SSL_aECDH) - /* and we have an ECC certificate */ - && (s->cert->pkeys[SSL_PKEY_ECC].x509 != NULL) - /* - * and the client specified an EllipticCurves extension - */ - && ((s->session->tlsext_ellipticcurvelist_length > 0) - && (s->session->tlsext_ellipticcurvelist != NULL)) - ) { - ec_ok = 0; - if ((s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec != NULL) - && (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey.ec->group != - NULL) - ) { - ec_nid = - EC_GROUP_get_curve_name(s->cert-> - pkeys[SSL_PKEY_ECC].privatekey-> - pkey.ec->group); - if ((ec_nid == 0) - && (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey. - ec->group->meth != NULL) - ) { - if (EC_METHOD_get_field_type - (s->cert->pkeys[SSL_PKEY_ECC].privatekey->pkey. - ec->group->meth) == NID_X9_62_prime_field) { - ec_search1 = 0xFF; - ec_search2 = 0x01; - } else - if (EC_METHOD_get_field_type - (s->cert->pkeys[SSL_PKEY_ECC].privatekey-> - pkey.ec->group->meth) == - NID_X9_62_characteristic_two_field) { - ec_search1 = 0xFF; - ec_search2 = 0x02; - } - } else { - ec_search1 = 0x00; - ec_search2 = tls1_ec_nid2curve_id(ec_nid); - } - if ((ec_search1 != 0) || (ec_search2 != 0)) { - for (j = 0; - j < s->session->tlsext_ellipticcurvelist_length / 2; - j++) { - if ((s->session->tlsext_ellipticcurvelist[2 * j] == - ec_search1) - && (s->session->tlsext_ellipticcurvelist[2 * j + - 1] == - ec_search2)) { - ec_ok = 1; - break; - } - } - } - } - ok = ok && ec_ok; - } # ifndef OPENSSL_NO_ECDH - if ( - /* - * if we are considering an ECC cipher suite that uses an - * ephemeral EC key - */ - (alg_k & SSL_kEECDH) - /* and we have an ephemeral EC key */ - && (s->cert->ecdh_tmp != NULL) - /* - * and the client specified an EllipticCurves extension - */ - && ((s->session->tlsext_ellipticcurvelist_length > 0) - && (s->session->tlsext_ellipticcurvelist != NULL)) - ) { - ec_ok = 0; - if (s->cert->ecdh_tmp->group != NULL) { - ec_nid = EC_GROUP_get_curve_name(s->cert->ecdh_tmp->group); - if ((ec_nid == 0) - && (s->cert->ecdh_tmp->group->meth != NULL) - ) { - if (EC_METHOD_get_field_type - (s->cert->ecdh_tmp->group->meth) == - NID_X9_62_prime_field) { - ec_search1 = 0xFF; - ec_search2 = 0x01; - } else - if (EC_METHOD_get_field_type - (s->cert->ecdh_tmp->group->meth) == - NID_X9_62_characteristic_two_field) { - ec_search1 = 0xFF; - ec_search2 = 0x02; - } - } else { - ec_search1 = 0x00; - ec_search2 = tls1_ec_nid2curve_id(ec_nid); - } - if ((ec_search1 != 0) || (ec_search2 != 0)) { - for (j = 0; - j < s->session->tlsext_ellipticcurvelist_length / 2; - j++) { - if ((s->session->tlsext_ellipticcurvelist[2 * j] == - ec_search1) - && (s->session->tlsext_ellipticcurvelist[2 * j + - 1] == - ec_search2)) { - ec_ok = 1; - break; - } - } - } - } - ok = ok && ec_ok; - } + /* + * if we are considering an ECC cipher suite that uses an ephemeral + * EC key check it + */ + if (alg_k & SSL_kEECDH) + ok = ok && tls1_check_ec_tmp_key(s, c->id); # endif /* OPENSSL_NO_ECDH */ # endif /* OPENSSL_NO_EC */ #endif /* OPENSSL_NO_TLSEXT */ @@ -4071,8 +4179,41 @@ SSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt, int ssl3_get_req_cert_type(SSL *s, unsigned char *p) { int ret = 0; + const unsigned char *sig; + size_t i, siglen; + int have_rsa_sign = 0, have_dsa_sign = 0; +#ifndef OPENSSL_NO_ECDSA + int have_ecdsa_sign = 0; +#endif + int nostrict = 1; unsigned long alg_k; + /* If we have custom certificate types set, use them */ + if (s->cert->ctypes) { + memcpy(p, s->cert->ctypes, s->cert->ctype_num); + return (int)s->cert->ctype_num; + } + /* get configured sigalgs */ + siglen = tls12_get_psigalgs(s, &sig); + if (s->cert->cert_flags & SSL_CERT_FLAGS_CHECK_TLS_STRICT) + nostrict = 0; + for (i = 0; i < siglen; i += 2, sig += 2) { + switch (sig[1]) { + case TLSEXT_signature_rsa: + have_rsa_sign = 1; + break; + + case TLSEXT_signature_dsa: + have_dsa_sign = 1; + break; +#ifndef OPENSSL_NO_ECDSA + case TLSEXT_signature_ecdsa: + have_ecdsa_sign = 1; + break; +#endif + } + } + alg_k = s->s3->tmp.new_cipher->algorithm_mkey; #ifndef OPENSSL_NO_GOST @@ -4088,10 +4229,16 @@ int ssl3_get_req_cert_type(SSL *s, unsigned char *p) #ifndef OPENSSL_NO_DH if (alg_k & (SSL_kDHr | SSL_kEDH)) { # ifndef OPENSSL_NO_RSA - p[ret++] = SSL3_CT_RSA_FIXED_DH; + /* + * Since this refers to a certificate signed with an RSA algorithm, + * only check for rsa signing in strict mode. + */ + if (nostrict || have_rsa_sign) + p[ret++] = SSL3_CT_RSA_FIXED_DH; # endif # ifndef OPENSSL_NO_DSA - p[ret++] = SSL3_CT_DSS_FIXED_DH; + if (nostrict || have_dsa_sign) + p[ret++] = SSL3_CT_DSS_FIXED_DH; # endif } if ((s->version == SSL3_VERSION) && @@ -4105,15 +4252,19 @@ int ssl3_get_req_cert_type(SSL *s, unsigned char *p) } #endif /* !OPENSSL_NO_DH */ #ifndef OPENSSL_NO_RSA - p[ret++] = SSL3_CT_RSA_SIGN; + if (have_rsa_sign) + p[ret++] = SSL3_CT_RSA_SIGN; #endif #ifndef OPENSSL_NO_DSA - p[ret++] = SSL3_CT_DSS_SIGN; + if (have_dsa_sign) + p[ret++] = SSL3_CT_DSS_SIGN; #endif #ifndef OPENSSL_NO_ECDH if ((alg_k & (SSL_kECDHr | SSL_kECDHe)) && (s->version >= TLS1_VERSION)) { - p[ret++] = TLS_CT_RSA_FIXED_ECDH; - p[ret++] = TLS_CT_ECDSA_FIXED_ECDH; + if (nostrict || have_rsa_sign) + p[ret++] = TLS_CT_RSA_FIXED_ECDH; + if (nostrict || have_ecdsa_sign) + p[ret++] = TLS_CT_ECDSA_FIXED_ECDH; } #endif @@ -4123,12 +4274,31 @@ int ssl3_get_req_cert_type(SSL *s, unsigned char *p) * need to check for SSL_kECDH or SSL_kEECDH */ if (s->version >= TLS1_VERSION) { - p[ret++] = TLS_CT_ECDSA_SIGN; + if (have_ecdsa_sign) + p[ret++] = TLS_CT_ECDSA_SIGN; } #endif return (ret); } +static int ssl3_set_req_cert_type(CERT *c, const unsigned char *p, size_t len) +{ + if (c->ctypes) { + OPENSSL_free(c->ctypes); + c->ctypes = NULL; + } + if (!p || !len) + return 1; + if (len > 0xff) + return 0; + c->ctypes = OPENSSL_malloc(len); + if (!c->ctypes) + return 0; + memcpy(c->ctypes, p, len); + c->ctype_num = len; + return 1; +} + int ssl3_shutdown(SSL *s) { int ret; @@ -4310,14 +4480,14 @@ int ssl3_renegotiate_check(SSL *s) } /* - * If we are using TLS v1.2 or later and default SHA1+MD5 algorithms switch - * to new SHA256 PRF and handshake macs + * If we are using default SHA1+MD5 algorithms switch to new SHA256 PRF and + * handshake macs if required. */ long ssl_get_algorithm2(SSL *s) { long alg2 = s->s3->tmp.new_cipher->algorithm2; - if (s->method->version == TLS1_2_VERSION && - alg2 == (SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF)) + if (s->method->ssl3_enc->enc_flags & SSL_ENC_FLAG_SHA256_PRF + && alg2 == (SSL_HANDSHAKE_MAC_DEFAULT | TLS1_PRF)) return SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256; return alg2; } diff --git a/libs/openssl/ssl/s3_pkt.c b/libs/openssl/ssl/s3_pkt.c index 25cf929a..37989023 100644 --- a/libs/openssl/ssl/s3_pkt.c +++ b/libs/openssl/ssl/s3_pkt.c @@ -118,6 +118,20 @@ #include #include +#ifndef EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK +# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0 +#endif + +#if defined(OPENSSL_SMALL_FOOTPRINT) || \ + !( defined(AES_ASM) && ( \ + defined(__x86_64) || defined(__x86_64__) || \ + defined(_M_AMD64) || defined(_M_X64) || \ + defined(__INTEL__) ) \ + ) +# undef EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK +# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0 +#endif + static int do_ssl3_write(SSL *s, int type, const unsigned char *buf, unsigned int len, int create_empty_fragment); static int ssl3_get_record(SSL *s); @@ -183,7 +197,7 @@ int ssl3_read_n(SSL *s, int n, int max, int extend) * operation returns the whole packet at once (as long as it fits into * the buffer). */ - if (SSL_version(s) == DTLS1_VERSION || SSL_version(s) == DTLS1_BAD_VER) { + if (SSL_IS_DTLS(s)) { if (left == 0 && extend) return 0; if (left > 0 && n > left) @@ -246,9 +260,7 @@ int ssl3_read_n(SSL *s, int n, int max, int extend) if (i <= 0) { rb->left = left; - if (s->mode & SSL_MODE_RELEASE_BUFFERS && - SSL_version(s) != DTLS1_VERSION - && SSL_version(s) != DTLS1_BAD_VER) + if (s->mode & SSL_MODE_RELEASE_BUFFERS && !SSL_IS_DTLS(s)) if (len + left == 0) ssl3_release_read_buffer(s); return (i); @@ -259,8 +271,7 @@ int ssl3_read_n(SSL *s, int n, int max, int extend) * underlying transport protocol is message oriented as opposed to * byte oriented as in the TLS case. */ - if (SSL_version(s) == DTLS1_VERSION - || SSL_version(s) == DTLS1_BAD_VER) { + if (SSL_IS_DTLS(s)) { if (n > left) n = left; /* makes the while condition false */ } @@ -331,6 +342,9 @@ static int ssl3_get_record(SSL *s) s->rstate = SSL_ST_READ_BODY; p = s->packet; + if (s->msg_callback) + s->msg_callback(0, 0, SSL3_RT_HEADER, p, 5, s, + s->msg_callback_arg); /* Pull apart the header into the SSL3_RECORD */ rr->type = *(p++); @@ -621,8 +635,13 @@ int ssl3_do_compress(SSL *ssl) int ssl3_write_bytes(SSL *s, int type, const void *buf_, int len) { const unsigned char *buf = buf_; + int tot; unsigned int n, nw; - int i, tot; +#if !defined(OPENSSL_NO_MULTIBLOCK) && EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK + unsigned int max_send_fragment; +#endif + SSL3_BUFFER *wb = &(s->s3->wbuf); + int i; s->rwstate = SSL_NOTHING; OPENSSL_assert(s->s3->wnum <= INT_MAX); @@ -653,6 +672,154 @@ int ssl3_write_bytes(SSL *s, int type, const void *buf_, int len) return (-1); } + /* + * first check if there is a SSL3_BUFFER still being written out. This + * will happen with non blocking IO + */ + if (wb->left != 0) { + i = ssl3_write_pending(s, type, &buf[tot], s->s3->wpend_tot); + if (i <= 0) { + /* XXX should we ssl3_release_write_buffer if i<0? */ + s->s3->wnum = tot; + return i; + } + tot += i; /* this might be last fragment */ + } +#if !defined(OPENSSL_NO_MULTIBLOCK) && EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK + /* + * Depending on platform multi-block can deliver several *times* + * better performance. Downside is that it has to allocate + * jumbo buffer to accomodate up to 8 records, but the + * compromise is considered worthy. + */ + if (type == SSL3_RT_APPLICATION_DATA && + len >= 4 * (int)(max_send_fragment = s->max_send_fragment) && + s->compress == NULL && s->msg_callback == NULL && + SSL_USE_EXPLICIT_IV(s) && + EVP_CIPHER_flags(s->enc_write_ctx->cipher) & + EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK) { + unsigned char aad[13]; + EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM mb_param; + int packlen; + + /* minimize address aliasing conflicts */ + if ((max_send_fragment & 0xfff) == 0) + max_send_fragment -= 512; + + if (tot == 0 || wb->buf == NULL) { /* allocate jumbo buffer */ + ssl3_release_write_buffer(s); + + packlen = EVP_CIPHER_CTX_ctrl(s->enc_write_ctx, + EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE, + max_send_fragment, NULL); + + if (len >= 8 * (int)max_send_fragment) + packlen *= 8; + else + packlen *= 4; + + wb->buf = OPENSSL_malloc(packlen); + if (!wb->buf) { + SSLerr(SSL_F_SSL3_WRITE_BYTES, ERR_R_MALLOC_FAILURE); + return -1; + } + wb->len = packlen; + } else if (tot == len) { /* done? */ + OPENSSL_free(wb->buf); /* free jumbo buffer */ + wb->buf = NULL; + return tot; + } + + n = (len - tot); + for (;;) { + if (n < 4 * max_send_fragment) { + OPENSSL_free(wb->buf); /* free jumbo buffer */ + wb->buf = NULL; + break; + } + + if (s->s3->alert_dispatch) { + i = s->method->ssl_dispatch_alert(s); + if (i <= 0) { + s->s3->wnum = tot; + return i; + } + } + + if (n >= 8 * max_send_fragment) + nw = max_send_fragment * (mb_param.interleave = 8); + else + nw = max_send_fragment * (mb_param.interleave = 4); + + memcpy(aad, s->s3->write_sequence, 8); + aad[8] = type; + aad[9] = (unsigned char)(s->version >> 8); + aad[10] = (unsigned char)(s->version); + aad[11] = 0; + aad[12] = 0; + mb_param.out = NULL; + mb_param.inp = aad; + mb_param.len = nw; + + packlen = EVP_CIPHER_CTX_ctrl(s->enc_write_ctx, + EVP_CTRL_TLS1_1_MULTIBLOCK_AAD, + sizeof(mb_param), &mb_param); + + if (packlen <= 0 || packlen > (int)wb->len) { /* never happens */ + OPENSSL_free(wb->buf); /* free jumbo buffer */ + wb->buf = NULL; + break; + } + + mb_param.out = wb->buf; + mb_param.inp = &buf[tot]; + mb_param.len = nw; + + if (EVP_CIPHER_CTX_ctrl(s->enc_write_ctx, + EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT, + sizeof(mb_param), &mb_param) <= 0) + return -1; + + s->s3->write_sequence[7] += mb_param.interleave; + if (s->s3->write_sequence[7] < mb_param.interleave) { + int j = 6; + while (j >= 0 && (++s->s3->write_sequence[j--]) == 0) ; + } + + wb->offset = 0; + wb->left = packlen; + + s->s3->wpend_tot = nw; + s->s3->wpend_buf = &buf[tot]; + s->s3->wpend_type = type; + s->s3->wpend_ret = nw; + + i = ssl3_write_pending(s, type, &buf[tot], nw); + if (i <= 0) { + if (i < 0 && (!s->wbio || !BIO_should_retry(s->wbio))) { + OPENSSL_free(wb->buf); + wb->buf = NULL; + } + s->s3->wnum = tot; + return i; + } + if (i == (int)n) { + OPENSSL_free(wb->buf); /* free jumbo buffer */ + wb->buf = NULL; + return tot + i; + } + n -= i; + tot += i; + } + } else +#endif + if (tot == len) { /* done? */ + if (s->mode & SSL_MODE_RELEASE_BUFFERS && !SSL_IS_DTLS(s)) + ssl3_release_write_buffer(s); + + return tot; + } + n = (len - tot); for (;;) { if (n > s->max_send_fragment) @@ -662,6 +829,7 @@ int ssl3_write_bytes(SSL *s, int type, const void *buf_, int len) i = do_ssl3_write(s, type, &(buf[tot]), nw, 0); if (i <= 0) { + /* XXX should we ssl3_release_write_buffer if i<0? */ s->s3->wnum = tot; return i; } @@ -675,6 +843,10 @@ int ssl3_write_bytes(SSL *s, int type, const void *buf_, int len) */ s->s3->empty_fragment_done = 0; + if ((i == (int)n) && s->mode & SSL_MODE_RELEASE_BUFFERS && + !SSL_IS_DTLS(s)) + ssl3_release_write_buffer(s); + return tot + i; } @@ -809,8 +981,8 @@ static int do_ssl3_write(SSL *s, int type, const unsigned char *buf, /* field where we are to write out packet length */ plen = p; p += 2; - /* Explicit IV length, block ciphers and TLS version 1.1 or later */ - if (s->enc_write_ctx && s->version >= TLS1_1_VERSION) { + /* Explicit IV length, block ciphers appropriate version flag */ + if (s->enc_write_ctx && SSL_USE_EXPLICIT_IV(s)) { int mode = EVP_CIPHER_CTX_mode(s->enc_write_ctx); if (mode == EVP_CIPH_CBC_MODE) { eivlen = EVP_CIPHER_CTX_iv_length(s->enc_write_ctx); @@ -873,6 +1045,10 @@ static int do_ssl3_write(SSL *s, int type, const unsigned char *buf, /* record length after mac and block padding */ s2n(wr->length, plen); + if (s->msg_callback) + s->msg_callback(1, 0, SSL3_RT_HEADER, plen - 5, 5, s, + s->msg_callback_arg); + /* * we should now have wr->data pointing to the encrypted data, which is * wr->length long @@ -936,14 +1112,10 @@ int ssl3_write_pending(SSL *s, int type, const unsigned char *buf, if (i == wb->left) { wb->left = 0; wb->offset += i; - if (s->mode & SSL_MODE_RELEASE_BUFFERS && - SSL_version(s) != DTLS1_VERSION - && SSL_version(s) != DTLS1_BAD_VER) - ssl3_release_write_buffer(s); s->rwstate = SSL_NOTHING; return (s->s3->wpend_ret); } else if (i <= 0) { - if (s->version == DTLS1_VERSION || s->version == DTLS1_BAD_VER) { + if (SSL_IS_DTLS(s)) { /* * For DTLS, just drop it. That's kind of the whole point in * using a datagram service diff --git a/libs/openssl/ssl/s3_srvr.c b/libs/openssl/ssl/s3_srvr.c index 3a5f71d7..ee83105b 100644 --- a/libs/openssl/ssl/s3_srvr.c +++ b/libs/openssl/ssl/s3_srvr.c @@ -293,7 +293,7 @@ int ssl3_accept(SSL *s) } s->init_num = 0; - s->s3->flags &= ~SSL3_FLAGS_SGC_RESTART_DONE; + s->s3->flags &= ~TLS1_FLAGS_SKIP_CERT_VERIFY; s->s3->flags &= ~SSL3_FLAGS_CCS_OK; /* * Should have been reset by ssl3_get_finished, too. @@ -360,12 +360,12 @@ int ssl3_accept(SSL *s) case SSL3_ST_SR_CLNT_HELLO_C: s->shutdown = 0; - if (s->rwstate != SSL_X509_LOOKUP) { - ret = ssl3_get_client_hello(s); - if (ret <= 0) - goto end; - } + ret = ssl3_get_client_hello(s); + if (ret <= 0) + goto end; #ifndef OPENSSL_NO_SRP + s->state = SSL3_ST_SR_CLNT_HELLO_D; + case SSL3_ST_SR_CLNT_HELLO_D: { int al; if ((ret = ssl_check_srp_ext_ClientHello(s, &al)) < 0) { @@ -383,7 +383,6 @@ int ssl3_accept(SSL *s) */ if (al != TLS1_AD_UNKNOWN_PSK_IDENTITY) SSLerr(SSL_F_SSL3_ACCEPT, SSL_R_CLIENTHELLO_TLSEXT); - ret = SSL_TLSEXT_ERR_ALERT_FATAL; ret = -1; s->state = SSL_ST_ERR; goto end; @@ -477,7 +476,7 @@ int ssl3_accept(SSL *s) /* SRP: send ServerKeyExchange */ || (alg_k & SSL_kSRP) #endif - || (alg_k & (SSL_kDHr | SSL_kDHd | SSL_kEDH)) + || (alg_k & SSL_kEDH) || (alg_k & SSL_kEECDH) || ((alg_k & SSL_kRSA) && (s->cert->pkeys[SSL_PKEY_RSA_ENC].privatekey == NULL @@ -590,21 +589,13 @@ int ssl3_accept(SSL *s) case SSL3_ST_SR_CERT_A: case SSL3_ST_SR_CERT_B: - /* Check for second client hello (MS SGC) */ - ret = ssl3_check_client_hello(s); - if (ret <= 0) - goto end; - if (ret == 2) - s->state = SSL3_ST_SR_CLNT_HELLO_C; - else { - if (s->s3->tmp.cert_request) { - ret = ssl3_get_client_certificate(s); - if (ret <= 0) - goto end; - } - s->init_num = 0; - s->state = SSL3_ST_SR_KEY_EXCH_A; + if (s->s3->tmp.cert_request) { + ret = ssl3_get_client_certificate(s); + if (ret <= 0) + goto end; } + s->init_num = 0; + s->state = SSL3_ST_SR_KEY_EXCH_A; break; case SSL3_ST_SR_KEY_EXCH_A: @@ -628,13 +619,13 @@ int ssl3_accept(SSL *s) s->state = SSL3_ST_SR_FINISHED_A; #endif s->init_num = 0; - } else if (TLS1_get_version(s) >= TLS1_2_VERSION) { + } else if (SSL_USE_SIGALGS(s)) { s->state = SSL3_ST_SR_CERT_VRFY_A; s->init_num = 0; if (!s->session->peer) break; /* - * For TLS v1.2 freeze the handshake buffer at this point and + * For sigalgs freeze the handshake buffer at this point and * digest cached records. */ if (!s->s3->handshake_buffer) { @@ -898,86 +889,33 @@ int ssl3_accept(SSL *s) int ssl3_send_hello_request(SSL *s) { - unsigned char *p; if (s->state == SSL3_ST_SW_HELLO_REQ_A) { - p = (unsigned char *)s->init_buf->data; - *(p++) = SSL3_MT_HELLO_REQUEST; - *(p++) = 0; - *(p++) = 0; - *(p++) = 0; - + ssl_set_handshake_header(s, SSL3_MT_HELLO_REQUEST, 0); s->state = SSL3_ST_SW_HELLO_REQ_B; - /* number of bytes to write */ - s->init_num = 4; - s->init_off = 0; } /* SSL3_ST_SW_HELLO_REQ_B */ - return (ssl3_do_write(s, SSL3_RT_HANDSHAKE)); -} - -int ssl3_check_client_hello(SSL *s) -{ - int ok; - long n; - - /* - * this function is called when we really expect a Certificate message, - * so permit appropriate message length - */ - n = s->method->ssl_get_message(s, - SSL3_ST_SR_CERT_A, - SSL3_ST_SR_CERT_B, - -1, s->max_cert_list, &ok); - if (!ok) - return ((int)n); - s->s3->tmp.reuse_message = 1; - if (s->s3->tmp.message_type == SSL3_MT_CLIENT_HELLO) { - /* - * We only allow the client to restart the handshake once per - * negotiation. - */ - if (s->s3->flags & SSL3_FLAGS_SGC_RESTART_DONE) { - SSLerr(SSL_F_SSL3_CHECK_CLIENT_HELLO, - SSL_R_MULTIPLE_SGC_RESTARTS); - return -1; - } - /* - * Throw away what we have done so far in the current handshake, - * which will now be aborted. (A full SSL_clear would be too much.) - */ -#ifndef OPENSSL_NO_DH - if (s->s3->tmp.dh != NULL) { - DH_free(s->s3->tmp.dh); - s->s3->tmp.dh = NULL; - } -#endif -#ifndef OPENSSL_NO_ECDH - if (s->s3->tmp.ecdh != NULL) { - EC_KEY_free(s->s3->tmp.ecdh); - s->s3->tmp.ecdh = NULL; - } -#endif - s->s3->flags |= SSL3_FLAGS_SGC_RESTART_DONE; - return 2; - } - return 1; + return ssl_do_write(s); } int ssl3_get_client_hello(SSL *s) { - int i, j, ok, al, ret = -1; + int i, j, ok, al = SSL_AD_INTERNAL_ERROR, ret = -1, cookie_valid = 0; unsigned int cookie_len; long n; unsigned long id; - unsigned char *p, *d, *q; + unsigned char *p, *d; SSL_CIPHER *c; #ifndef OPENSSL_NO_COMP + unsigned char *q; SSL_COMP *comp = NULL; #endif STACK_OF(SSL_CIPHER) *ciphers = NULL; + if (s->state == SSL3_ST_SR_CLNT_HELLO_C && !s->first_packet) + goto retry_cert; + /* * We do this so that we will respond with our native type. If we are * TLSv1 and we get SSLv3, we will respond with TLSv1, This down @@ -1016,8 +954,9 @@ int ssl3_get_client_hello(SSL *s) s->client_version = (((int)p[0]) << 8) | (int)p[1]; p += 2; - if ((s->version == DTLS1_VERSION && s->client_version > s->version) || - (s->version != DTLS1_VERSION && s->client_version < s->version)) { + if (SSL_IS_DTLS(s) ? (s->client_version > s->version && + s->method->version != DTLS_ANY_VERSION) + : (s->client_version < s->version)) { SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_WRONG_VERSION_NUMBER); if ((s->client_version >> 8) == SSL3_VERSION_MAJOR && !s->enc_write_ctx && !s->write_hash) { @@ -1107,7 +1046,7 @@ int ssl3_get_client_hello(SSL *s) p += j; - if (s->version == DTLS1_VERSION || s->version == DTLS1_BAD_VER) { + if (SSL_IS_DTLS(s)) { /* cookie stuff */ if (p + 1 > d + n) { al = SSL_AD_DECODE_ERROR; @@ -1155,11 +1094,35 @@ int ssl3_get_client_hello(SSL *s) SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_COOKIE_MISMATCH); goto f_err; } - - ret = 2; + cookie_valid = 1; } p += cookie_len; + if (s->method->version == DTLS_ANY_VERSION) { + /* Select version to use */ + if (s->client_version <= DTLS1_2_VERSION && + !(s->options & SSL_OP_NO_DTLSv1_2)) { + s->version = DTLS1_2_VERSION; + s->method = DTLSv1_2_server_method(); + } else if (tls1_suiteb(s)) { + SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, + SSL_R_ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE); + s->version = s->client_version; + al = SSL_AD_PROTOCOL_VERSION; + goto f_err; + } else if (s->client_version <= DTLS1_VERSION && + !(s->options & SSL_OP_NO_DTLSv1)) { + s->version = DTLS1_VERSION; + s->method = DTLSv1_server_method(); + } else { + SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, + SSL_R_WRONG_VERSION_NUMBER); + s->version = s->client_version; + al = SSL_AD_PROTOCOL_VERSION; + goto f_err; + } + s->session->ssl_version = s->version; + } } if (p + 2 > d + n) { @@ -1248,7 +1211,9 @@ int ssl3_get_client_hello(SSL *s) SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_MISMATCH); goto f_err; } +#ifndef OPENSSL_NO_COMP q = p; +#endif for (j = 0; j < i; j++) { if (p[j] == 0) break; @@ -1264,16 +1229,11 @@ int ssl3_get_client_hello(SSL *s) #ifndef OPENSSL_NO_TLSEXT /* TLS extensions */ if (s->version >= SSL3_VERSION) { - if (!ssl_parse_clienthello_tlsext(s, &p, d, n, &al)) { - /* 'al' set by ssl_parse_clienthello_tlsext */ + if (!ssl_parse_clienthello_tlsext(s, &p, d + n)) { SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_PARSE_TLSEXT); - goto f_err; + goto err; } } - if (ssl_check_clienthello_tlsext_early(s) <= 0) { - SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_CLIENTHELLO_TLSEXT); - goto err; - } /* * Check if we want to use external pre-shared secret for this handshake @@ -1285,7 +1245,6 @@ int ssl3_get_client_hello(SSL *s) unsigned char *pos; pos = s->s3->server_random; if (ssl_fill_hello_random(s, 1, pos, SSL3_RANDOM_SIZE) <= 0) { - al = SSL_AD_INTERNAL_ERROR; goto f_err; } } @@ -1344,7 +1303,6 @@ int ssl3_get_client_hello(SSL *s) /* Perform sanity checks on resumed compression algorithm */ /* Can't disable compression */ if (s->options & SSL_OP_NO_COMPRESSION) { - al = SSL_AD_INTERNAL_ERROR; SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_INCONSISTENT_COMPRESSION); goto f_err; @@ -1358,7 +1316,6 @@ int ssl3_get_client_hello(SSL *s) } } if (s->s3->tmp.new_compression == NULL) { - al = SSL_AD_INTERNAL_ERROR; SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_INVALID_COMPRESSION_ALGORITHM); goto f_err; @@ -1404,7 +1361,6 @@ int ssl3_get_client_hello(SSL *s) * using compression. */ if (s->session->compress_meth != 0) { - al = SSL_AD_INTERNAL_ERROR; SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_INCONSISTENT_COMPRESSION); goto f_err; } @@ -1429,6 +1385,25 @@ int ssl3_get_client_hello(SSL *s) goto f_err; } ciphers = NULL; + if (!tls1_set_server_sigalgs(s)) { + SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_CLIENTHELLO_TLSEXT); + goto err; + } + /* Let cert callback update server certificates if required */ + retry_cert: + if (s->cert->cert_cb) { + int rv = s->cert->cert_cb(s, s->cert->cert_cb_arg); + if (rv == 0) { + al = SSL_AD_INTERNAL_ERROR; + SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_CERT_CB_ERROR); + goto f_err; + } + if (rv < 0) { + s->rwstate = SSL_X509_LOOKUP; + return -1; + } + s->rwstate = SSL_NOTHING; + } c = ssl3_choose_cipher(s, s->session->ciphers, SSL_get_ciphers(s)); if (c == NULL) { @@ -1464,16 +1439,13 @@ int ssl3_get_client_hello(SSL *s) s->s3->tmp.new_cipher = s->session->cipher; } - if (TLS1_get_version(s) < TLS1_2_VERSION - || !(s->verify_mode & SSL_VERIFY_PEER)) { - if (!ssl3_digest_cached_records(s)) { - al = SSL_AD_INTERNAL_ERROR; + if (!SSL_USE_SIGALGS(s) || !(s->verify_mode & SSL_VERIFY_PEER)) { + if (!ssl3_digest_cached_records(s)) goto f_err; - } } /*- - * we now have the following setup. + * we now have the following setup. * client_random * cipher_list - our prefered list of ciphers * ciphers - the clients prefered list of ciphers @@ -1492,8 +1464,7 @@ int ssl3_get_client_hello(SSL *s) } } - if (ret < 0) - ret = 1; + ret = cookie_valid ? 2 : 1; if (0) { f_err: ssl3_send_alert(s, SSL3_AL_FATAL, al); @@ -1503,7 +1474,7 @@ int ssl3_get_client_hello(SSL *s) if (ciphers != NULL) sk_SSL_CIPHER_free(ciphers); - return (ret); + return ret; } int ssl3_send_server_hello(SSL *s) @@ -1511,6 +1482,7 @@ int ssl3_send_server_hello(SSL *s) unsigned char *buf; unsigned char *p, *d; int i, sl; + int al = 0; unsigned long l; if (s->state == SSL3_ST_SW_SRVR_HELLO_A) { @@ -1523,7 +1495,7 @@ int ssl3_send_server_hello(SSL *s) } #endif /* Do the message type and length last */ - d = p = &(buf[4]); + d = p = ssl_handshake_start(s); *(p++) = s->version >> 8; *(p++) = s->version & 0xff; @@ -1582,9 +1554,9 @@ int ssl3_send_server_hello(SSL *s) return -1; } if ((p = - ssl_add_serverhello_tlsext(s, p, - buf + SSL3_RT_MAX_PLAIN_LENGTH)) == - NULL) { + ssl_add_serverhello_tlsext(s, p, buf + SSL3_RT_MAX_PLAIN_LENGTH, + &al)) == NULL) { + ssl3_send_alert(s, SSL3_AL_FATAL, al); SSLerr(SSL_F_SSL3_SEND_SERVER_HELLO, ERR_R_INTERNAL_ERROR); s->state = SSL_ST_ERR; return -1; @@ -1592,41 +1564,24 @@ int ssl3_send_server_hello(SSL *s) #endif /* do the header */ l = (p - d); - d = buf; - *(d++) = SSL3_MT_SERVER_HELLO; - l2n3(l, d); - + ssl_set_handshake_header(s, SSL3_MT_SERVER_HELLO, l); s->state = SSL3_ST_SW_SRVR_HELLO_B; - /* number of bytes to write */ - s->init_num = p - buf; - s->init_off = 0; } /* SSL3_ST_SW_SRVR_HELLO_B */ - return (ssl3_do_write(s, SSL3_RT_HANDSHAKE)); + return ssl_do_write(s); } int ssl3_send_server_done(SSL *s) { - unsigned char *p; if (s->state == SSL3_ST_SW_SRVR_DONE_A) { - p = (unsigned char *)s->init_buf->data; - - /* do the header */ - *(p++) = SSL3_MT_SERVER_DONE; - *(p++) = 0; - *(p++) = 0; - *(p++) = 0; - + ssl_set_handshake_header(s, SSL3_MT_SERVER_DONE, 0); s->state = SSL3_ST_SW_SRVR_DONE_B; - /* number of bytes to write */ - s->init_num = 4; - s->init_off = 0; } /* SSL3_ST_SW_SRVR_DONE_B */ - return (ssl3_do_write(s, SSL3_RT_HANDSHAKE)); + return ssl_do_write(s); } int ssl3_send_server_key_exchange(SSL *s) @@ -1751,7 +1706,12 @@ int ssl3_send_server_key_exchange(SSL *s) const EC_GROUP *group; ecdhp = cert->ecdh_tmp; - if ((ecdhp == NULL) && (s->cert->ecdh_tmp_cb != NULL)) { + if (s->cert->ecdh_tmp_auto) { + /* Get NID of appropriate shared curve */ + int nid = tls1_shared_curve(s, -2); + if (nid != NID_undef) + ecdhp = EC_KEY_new_by_curve_name(nid); + } else if ((ecdhp == NULL) && s->cert->ecdh_tmp_cb) { ecdhp = s->cert->ecdh_tmp_cb(s, SSL_C_IS_EXPORT(s->s3-> tmp.new_cipher), @@ -1776,7 +1736,9 @@ int ssl3_send_server_key_exchange(SSL *s) SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE, ERR_R_ECDH_LIB); goto err; } - if ((ecdh = EC_KEY_dup(ecdhp)) == NULL) { + if (s->cert->ecdh_tmp_auto) + ecdh = ecdhp; + else if ((ecdh = EC_KEY_dup(ecdhp)) == NULL) { SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE, ERR_R_ECDH_LIB); goto err; } @@ -1920,12 +1882,11 @@ int ssl3_send_server_key_exchange(SSL *s) kn = 0; } - if (!BUF_MEM_grow_clean(buf, n + 4 + kn)) { + if (!BUF_MEM_grow_clean(buf, n + SSL_HM_HEADER_LENGTH(s) + kn)) { SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE, ERR_LIB_BUF); goto err; } - d = (unsigned char *)s->init_buf->data; - p = &(d[4]); + d = p = ssl_handshake_start(s); for (i = 0; i < 4 && r[i] != NULL; i++) { #ifndef OPENSSL_NO_SRP @@ -1980,21 +1941,28 @@ int ssl3_send_server_key_exchange(SSL *s) * points to the space at the end. */ #ifndef OPENSSL_NO_RSA - if (pkey->type == EVP_PKEY_RSA - && TLS1_get_version(s) < TLS1_2_VERSION) { + if (pkey->type == EVP_PKEY_RSA && !SSL_USE_SIGALGS(s)) { q = md_buf; j = 0; for (num = 2; num > 0; num--) { EVP_MD_CTX_set_flags(&md_ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); - EVP_DigestInit_ex(&md_ctx, (num == 2) - ? s->ctx->md5 : s->ctx->sha1, NULL); - EVP_DigestUpdate(&md_ctx, &(s->s3->client_random[0]), - SSL3_RANDOM_SIZE); - EVP_DigestUpdate(&md_ctx, &(s->s3->server_random[0]), - SSL3_RANDOM_SIZE); - EVP_DigestUpdate(&md_ctx, &(d[4]), n); - EVP_DigestFinal_ex(&md_ctx, q, (unsigned int *)&i); + if (EVP_DigestInit_ex(&md_ctx, + (num == 2) ? s->ctx->md5 + : s->ctx->sha1, + NULL) <= 0 + || EVP_DigestUpdate(&md_ctx, &(s->s3->client_random[0]), + SSL3_RANDOM_SIZE) <= 0 + || EVP_DigestUpdate(&md_ctx, &(s->s3->server_random[0]), + SSL3_RANDOM_SIZE) <= 0 + || EVP_DigestUpdate(&md_ctx, d, n) <= 0 + || EVP_DigestFinal_ex(&md_ctx, q, + (unsigned int *)&i) <= 0) { + SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE, + ERR_LIB_EVP); + al = SSL_AD_INTERNAL_ERROR; + goto f_err; + } q += i; j += i; } @@ -2008,10 +1976,8 @@ int ssl3_send_server_key_exchange(SSL *s) } else #endif if (md) { - /* - * For TLS1.2 and later send signature algorithm - */ - if (TLS1_get_version(s) >= TLS1_2_VERSION) { + /* send signature algorithm */ + if (SSL_USE_SIGALGS(s)) { if (!tls12_get_sigandhash(p, pkey, md)) { /* Should never happen */ al = SSL_AD_INTERNAL_ERROR; @@ -2024,20 +1990,21 @@ int ssl3_send_server_key_exchange(SSL *s) #ifdef SSL_DEBUG fprintf(stderr, "Using hash %s\n", EVP_MD_name(md)); #endif - EVP_SignInit_ex(&md_ctx, md, NULL); - EVP_SignUpdate(&md_ctx, &(s->s3->client_random[0]), - SSL3_RANDOM_SIZE); - EVP_SignUpdate(&md_ctx, &(s->s3->server_random[0]), - SSL3_RANDOM_SIZE); - EVP_SignUpdate(&md_ctx, &(d[4]), n); - if (!EVP_SignFinal(&md_ctx, &(p[2]), - (unsigned int *)&i, pkey)) { + if (EVP_SignInit_ex(&md_ctx, md, NULL) <= 0 + || EVP_SignUpdate(&md_ctx, &(s->s3->client_random[0]), + SSL3_RANDOM_SIZE) <= 0 + || EVP_SignUpdate(&md_ctx, &(s->s3->server_random[0]), + SSL3_RANDOM_SIZE) <= 0 + || EVP_SignUpdate(&md_ctx, d, n) <= 0 + || EVP_SignFinal(&md_ctx, &(p[2]), + (unsigned int *)&i, pkey) <= 0) { SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE, ERR_LIB_EVP); - goto err; + al = SSL_AD_INTERNAL_ERROR; + goto f_err; } s2n(i, p); n += i + 2; - if (TLS1_get_version(s) >= TLS1_2_VERSION) + if (SSL_USE_SIGALGS(s)) n += 2; } else { /* Is this error check actually needed? */ @@ -2048,19 +2015,12 @@ int ssl3_send_server_key_exchange(SSL *s) } } - *(d++) = SSL3_MT_SERVER_KEY_EXCHANGE; - l2n3(n, d); - - /* - * we should now have things packed up, so lets send it off - */ - s->init_num = n + 4; - s->init_off = 0; + ssl_set_handshake_header(s, SSL3_MT_SERVER_KEY_EXCHANGE, n); } s->state = SSL3_ST_SW_KEY_EXCH_B; EVP_MD_CTX_cleanup(&md_ctx); - return (ssl3_do_write(s, SSL3_RT_HANDSHAKE)); + return ssl_do_write(s); f_err: ssl3_send_alert(s, SSL3_AL_FATAL, al); err: @@ -2085,7 +2045,7 @@ int ssl3_send_certificate_request(SSL *s) if (s->state == SSL3_ST_SW_CERT_REQ_A) { buf = s->init_buf; - d = p = (unsigned char *)&(buf->data[4]); + d = p = ssl_handshake_start(s); /* get the list of acceptable cert types */ p++; @@ -2094,10 +2054,12 @@ int ssl3_send_certificate_request(SSL *s) p += n; n++; - if (TLS1_get_version(s) >= TLS1_2_VERSION) { - nl = tls12_get_req_sig_algs(s, p + 2); + if (SSL_USE_SIGALGS(s)) { + const unsigned char *psigs; + nl = tls12_get_psigalgs(s, &psigs); s2n(nl, p); - p += nl + 2; + memcpy(p, psigs, nl); + p += nl; n += nl + 2; } @@ -2111,12 +2073,13 @@ int ssl3_send_certificate_request(SSL *s) for (i = 0; i < sk_X509_NAME_num(sk); i++) { name = sk_X509_NAME_value(sk, i); j = i2d_X509_NAME(name, NULL); - if (!BUF_MEM_grow_clean(buf, 4 + n + j + 2)) { + if (!BUF_MEM_grow_clean + (buf, SSL_HM_HEADER_LENGTH(s) + n + j + 2)) { SSLerr(SSL_F_SSL3_SEND_CERTIFICATE_REQUEST, ERR_R_BUF_LIB); goto err; } - p = (unsigned char *)&(buf->data[4 + n]); + p = ssl_handshake_start(s) + n; if (!(s->options & SSL_OP_NETSCAPE_CA_DN_BUG)) { s2n(j, p); i2d_X509_NAME(name, &p); @@ -2134,39 +2097,32 @@ int ssl3_send_certificate_request(SSL *s) } } /* else no CA names */ - p = (unsigned char *)&(buf->data[4 + off]); + p = ssl_handshake_start(s) + off; s2n(nl, p); - d = (unsigned char *)buf->data; - *(d++) = SSL3_MT_CERTIFICATE_REQUEST; - l2n3(n, d); + ssl_set_handshake_header(s, SSL3_MT_CERTIFICATE_REQUEST, n); - /* - * we should now have things packed up, so lets send it off - */ - - s->init_num = n + 4; - s->init_off = 0; #ifdef NETSCAPE_HANG_BUG - if (!BUF_MEM_grow_clean(buf, s->init_num + 4)) { - SSLerr(SSL_F_SSL3_SEND_CERTIFICATE_REQUEST, ERR_R_BUF_LIB); - goto err; + if (!SSL_IS_DTLS(s)) { + if (!BUF_MEM_grow_clean(buf, s->init_num + 4)) { + SSLerr(SSL_F_SSL3_SEND_CERTIFICATE_REQUEST, ERR_R_BUF_LIB); + goto err; + } + p = (unsigned char *)s->init_buf->data + s->init_num; + /* do the header */ + *(p++) = SSL3_MT_SERVER_DONE; + *(p++) = 0; + *(p++) = 0; + *(p++) = 0; + s->init_num += 4; } - p = (unsigned char *)s->init_buf->data + s->init_num; - - /* do the header */ - *(p++) = SSL3_MT_SERVER_DONE; - *(p++) = 0; - *(p++) = 0; - *(p++) = 0; - s->init_num += 4; #endif s->state = SSL3_ST_SW_CERT_REQ_B; } /* SSL3_ST_SW_CERT_REQ_B */ - return (ssl3_do_write(s, SSL3_RT_HANDSHAKE)); + return ssl_do_write(s); err: s->state = SSL_ST_ERR; return (-1); @@ -2184,7 +2140,7 @@ int ssl3_get_client_key_exchange(SSL *s) #endif #ifndef OPENSSL_NO_DH BIGNUM *pub = NULL; - DH *dh_srvr; + DH *dh_srvr, *dh_clnt = NULL; #endif #ifndef OPENSSL_NO_KRB5 KSSL_ERR kssl_err; @@ -2355,8 +2311,20 @@ int ssl3_get_client_key_exchange(SSL *s) #endif #ifndef OPENSSL_NO_DH if (alg_k & (SSL_kEDH | SSL_kDHr | SSL_kDHd)) { - n2s(p, i); - if (n != i + 2) { + int idx = -1; + EVP_PKEY *skey = NULL; + if (n > 1) { + n2s(p, i); + } else { + if (alg_k & SSL_kDHE) { + al = SSL_AD_HANDSHAKE_FAILURE; + SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, + SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG); + goto f_err; + } + i = 0; + } + if (n && n != i + 2) { if (!(s->options & SSL_OP_SSLEAY_080_CLIENT_DH_BUG)) { SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG); @@ -2366,23 +2334,45 @@ int ssl3_get_client_key_exchange(SSL *s) i = (int)n; } } - - if (n == 0L) { /* the parameters are in the cert */ + if (alg_k & SSL_kDHr) + idx = SSL_PKEY_DH_RSA; + else if (alg_k & SSL_kDHd) + idx = SSL_PKEY_DH_DSA; + if (idx >= 0) { + skey = s->cert->pkeys[idx].privatekey; + if ((skey == NULL) || + (skey->type != EVP_PKEY_DH) || (skey->pkey.dh == NULL)) { + al = SSL_AD_HANDSHAKE_FAILURE; + SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, + SSL_R_MISSING_RSA_CERTIFICATE); + goto f_err; + } + dh_srvr = skey->pkey.dh; + } else if (s->s3->tmp.dh == NULL) { al = SSL_AD_HANDSHAKE_FAILURE; SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, - SSL_R_UNABLE_TO_DECODE_DH_CERTS); + SSL_R_MISSING_TMP_DH_KEY); goto f_err; - } else { - if (s->s3->tmp.dh == NULL) { + } else + dh_srvr = s->s3->tmp.dh; + + if (n == 0L) { + /* Get pubkey from cert */ + EVP_PKEY *clkey = X509_get_pubkey(s->session->peer); + if (clkey) { + if (EVP_PKEY_cmp_parameters(clkey, skey) == 1) + dh_clnt = EVP_PKEY_get1_DH(clkey); + } + if (dh_clnt == NULL) { al = SSL_AD_HANDSHAKE_FAILURE; SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, SSL_R_MISSING_TMP_DH_KEY); goto f_err; - } else - dh_srvr = s->s3->tmp.dh; - } - - pub = BN_bin2bn(p, i, NULL); + } + EVP_PKEY_free(clkey); + pub = dh_clnt->pub_key; + } else + pub = BN_bin2bn(p, i, NULL); if (pub == NULL) { SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, SSL_R_BN_LIB); goto err; @@ -2398,8 +2388,10 @@ int ssl3_get_client_key_exchange(SSL *s) DH_free(s->s3->tmp.dh); s->s3->tmp.dh = NULL; - - BN_clear_free(pub); + if (dh_clnt) + DH_free(dh_clnt); + else + BN_clear_free(pub); pub = NULL; s->session->master_key_length = s->method->ssl3_enc->generate_master_secret(s, @@ -2407,6 +2399,8 @@ int ssl3_get_client_key_exchange(SSL *s) session->master_key, p, i); OPENSSL_cleanse(p, i); + if (dh_clnt) + return 2; } else #endif #ifndef OPENSSL_NO_KRB5 @@ -2879,7 +2873,15 @@ int ssl3_get_client_key_exchange(SSL *s) pk = s->cert->pkeys[SSL_PKEY_GOST01].privatekey; pkey_ctx = EVP_PKEY_CTX_new(pk, NULL); - EVP_PKEY_decrypt_init(pkey_ctx); + if (pkey_ctx == NULL) { + al = SSL_AD_INTERNAL_ERROR; + SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, ERR_R_MALLOC_FAILURE); + goto f_err; + } + if (EVP_PKEY_decrypt_init(pkey_ctx) <= 0) { + SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, ERR_R_INTERNAL_ERROR); + goto gerr; + } /* * If client certificate is present and is of the same type, maybe * use it for key exchange. Don't mind errors from @@ -3007,24 +3009,12 @@ int ssl3_get_cert_verify(SSL *s) pkey->type == NID_id_GostR3410_2001)) { i = 64; } else { - if (TLS1_get_version(s) >= TLS1_2_VERSION) { - int sigalg = tls12_get_sigid(pkey); - /* Should never happen */ - if (sigalg == -1) { - SSLerr(SSL_F_SSL3_GET_CERT_VERIFY, ERR_R_INTERNAL_ERROR); + if (SSL_USE_SIGALGS(s)) { + int rv = tls12_check_peer_sigalg(&md, s, p, pkey); + if (rv == -1) { al = SSL_AD_INTERNAL_ERROR; goto f_err; - } - /* Check key type is consistent with signature */ - if (sigalg != (int)p[1]) { - SSLerr(SSL_F_SSL3_GET_CERT_VERIFY, - SSL_R_WRONG_SIGNATURE_TYPE); - al = SSL_AD_DECODE_ERROR; - goto f_err; - } - md = tls12_get_hash(p[0]); - if (md == NULL) { - SSLerr(SSL_F_SSL3_GET_CERT_VERIFY, SSL_R_UNKNOWN_DIGEST); + } else if (rv == 0) { al = SSL_AD_DECODE_ERROR; goto f_err; } @@ -3049,7 +3039,7 @@ int ssl3_get_cert_verify(SSL *s) goto f_err; } - if (TLS1_get_version(s) >= TLS1_2_VERSION) { + if (SSL_USE_SIGALGS(s)) { long hdatalen = 0; void *hdata; hdatalen = BIO_get_mem_data(s->s3->handshake_buffer, &hdata); @@ -3123,7 +3113,17 @@ int ssl3_get_cert_verify(SSL *s) unsigned char signature[64]; int idx; EVP_PKEY_CTX *pctx = EVP_PKEY_CTX_new(pkey, NULL); - EVP_PKEY_verify_init(pctx); + if (pctx == NULL) { + al = SSL_AD_INTERNAL_ERROR; + SSLerr(SSL_F_SSL3_GET_CERT_VERIFY, ERR_R_MALLOC_FAILURE); + goto f_err; + } + if (EVP_PKEY_verify_init(pctx) <= 0) { + EVP_PKEY_CTX_free(pctx); + al = SSL_AD_INTERNAL_ERROR; + SSLerr(SSL_F_SSL3_GET_CERT_VERIFY, ERR_R_INTERNAL_ERROR); + goto f_err; + } if (i != 64) { fprintf(stderr, "GOST signature length is %d", i); } @@ -3272,7 +3272,7 @@ int ssl3_get_client_certificate(SSL *s) if (i <= 0) { al = ssl_verify_alarm_type(s->verify_result); SSLerr(SSL_F_SSL3_GET_CLIENT_CERTIFICATE, - SSL_R_NO_CERTIFICATE_RETURNED); + SSL_R_CERTIFICATE_VERIFY_FAILED); goto f_err; } } @@ -3320,12 +3320,11 @@ int ssl3_get_client_certificate(SSL *s) int ssl3_send_server_certificate(SSL *s) { - unsigned long l; - X509 *x; + CERT_PKEY *cpk; if (s->state == SSL3_ST_SW_CERT_A) { - x = ssl_get_server_send_cert(s); - if (x == NULL) { + cpk = ssl_get_server_send_pkey(s); + if (cpk == NULL) { /* VRS: allow null cert if auth == KRB5 */ if ((s->s3->tmp.new_cipher->algorithm_auth != SSL_aKRB5) || (s->s3->tmp.new_cipher->algorithm_mkey & SSL_kKRB5)) { @@ -3336,19 +3335,16 @@ int ssl3_send_server_certificate(SSL *s) } } - l = ssl3_output_cert_chain(s, x); - if (!l) { + if (!ssl3_output_cert_chain(s, cpk)) { SSLerr(SSL_F_SSL3_SEND_SERVER_CERTIFICATE, ERR_R_INTERNAL_ERROR); s->state = SSL_ST_ERR; return (0); } s->state = SSL3_ST_SW_CERT_B; - s->init_num = (int)l; - s->init_off = 0; } /* SSL3_ST_SW_CERT_B */ - return (ssl3_do_write(s, SSL3_RT_HANDSHAKE)); + return ssl_do_write(s); } #ifndef OPENSSL_NO_TLSEXT @@ -3415,22 +3411,18 @@ int ssl3_send_newsession_ticket(SSL *s) /*- * Grow buffer if need be: the length calculation is as - * follows 1 (size of message name) + 3 (message length - * bytes) + 4 (ticket lifetime hint) + 2 (ticket length) + + * follows handshake_header_length + + * 4 (ticket lifetime hint) + 2 (ticket length) + * 16 (key name) + max_iv_len (iv length) + * session_length + max_enc_block_size (max encrypted session * length) + max_md_size (HMAC). */ if (!BUF_MEM_grow(s->init_buf, - 26 + EVP_MAX_IV_LENGTH + EVP_MAX_BLOCK_LENGTH + - EVP_MAX_MD_SIZE + slen)) + SSL_HM_HEADER_LENGTH(s) + 22 + EVP_MAX_IV_LENGTH + + EVP_MAX_BLOCK_LENGTH + EVP_MAX_MD_SIZE + slen)) goto err; - p = (unsigned char *)s->init_buf->data; - /* do the header */ - *(p++) = SSL3_MT_NEWSESSION_TICKET; - /* Skip message length for now */ - p += 3; + p = ssl_handshake_start(s); /* * Initialize HMAC and cipher contexts. If callback present it does * all the work otherwise use generated values from parent ctx. @@ -3486,21 +3478,17 @@ int ssl3_send_newsession_ticket(SSL *s) p += hlen; /* Now write out lengths: p points to end of data written */ /* Total length */ - len = p - (unsigned char *)s->init_buf->data; - p = (unsigned char *)s->init_buf->data + 1; - l2n3(len - 4, p); /* Message length */ - p += 4; - s2n(len - 10, p); /* Ticket length */ - - /* number of bytes to write */ - s->init_num = len; + len = p - ssl_handshake_start(s); + /* Skip ticket lifetime hint */ + p = ssl_handshake_start(s) + 4; + s2n(len - 6, p); + ssl_set_handshake_header(s, SSL3_MT_NEWSESSION_TICKET, len); s->state = SSL3_ST_SW_SESSION_TICKET_B; - s->init_off = 0; OPENSSL_free(senc); } /* SSL3_ST_SW_SESSION_TICKET_B */ - return (ssl3_do_write(s, SSL3_RT_HANDSHAKE)); + return ssl_do_write(s); err: if (senc) OPENSSL_free(senc); @@ -3627,4 +3615,5 @@ int ssl3_get_next_proto(SSL *s) return 1; } # endif + #endif diff --git a/libs/openssl/ssl/srtp.h b/libs/openssl/ssl/srtp.h index 10082c93..2279c32b 100644 --- a/libs/openssl/ssl/srtp.h +++ b/libs/openssl/ssl/srtp.h @@ -134,7 +134,6 @@ extern "C" { int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); int SSL_set_tlsext_use_srtp(SSL *ctx, const char *profiles); -SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); diff --git a/libs/openssl/ssl/ssl.h b/libs/openssl/ssl/ssl.h index d2ab0c07..afec1f5b 100644 --- a/libs/openssl/ssl/ssl.h +++ b/libs/openssl/ssl/ssl.h @@ -242,22 +242,24 @@ extern "C" { # define SSL_TXT_NULL "NULL" # define SSL_TXT_kRSA "kRSA" -# define SSL_TXT_kDHr "kDHr"/* no such ciphersuites supported! */ -# define SSL_TXT_kDHd "kDHd"/* no such ciphersuites supported! */ -# define SSL_TXT_kDH "kDH"/* no such ciphersuites supported! */ +# define SSL_TXT_kDHr "kDHr" +# define SSL_TXT_kDHd "kDHd" +# define SSL_TXT_kDH "kDH" # define SSL_TXT_kEDH "kEDH" +# define SSL_TXT_kDHE "kDHE"/* alias for kEDH */ # define SSL_TXT_kKRB5 "kKRB5" # define SSL_TXT_kECDHr "kECDHr" # define SSL_TXT_kECDHe "kECDHe" # define SSL_TXT_kECDH "kECDH" # define SSL_TXT_kEECDH "kEECDH" +# define SSL_TXT_kECDHE "kECDHE"/* alias for kEECDH */ # define SSL_TXT_kPSK "kPSK" # define SSL_TXT_kGOST "kGOST" # define SSL_TXT_kSRP "kSRP" # define SSL_TXT_aRSA "aRSA" # define SSL_TXT_aDSS "aDSS" -# define SSL_TXT_aDH "aDH"/* no such ciphersuites supported! */ +# define SSL_TXT_aDH "aDH" # define SSL_TXT_aECDH "aECDH" # define SSL_TXT_aKRB5 "aKRB5" # define SSL_TXT_aECDSA "aECDSA" @@ -270,10 +272,12 @@ extern "C" { # define SSL_TXT_DSS "DSS" # define SSL_TXT_DH "DH" # define SSL_TXT_EDH "EDH"/* same as "kEDH:-ADH" */ +# define SSL_TXT_DHE "DHE"/* alias for EDH */ # define SSL_TXT_ADH "ADH" # define SSL_TXT_RSA "RSA" # define SSL_TXT_ECDH "ECDH" # define SSL_TXT_EECDH "EECDH"/* same as "kEECDH:-AECDH" */ +# define SSL_TXT_ECDHE "ECDHE"/* alias for ECDHE" */ # define SSL_TXT_AECDH "AECDH" # define SSL_TXT_ECDSA "ECDSA" # define SSL_TXT_KRB5 "KRB5" @@ -370,6 +374,8 @@ typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; typedef struct ssl_method_st SSL_METHOD; typedef struct ssl_cipher_st SSL_CIPHER; typedef struct ssl_session_st SSL_SESSION; +typedef struct tls_sigalgs_st TLS_SIGALGS; +typedef struct ssl_conf_ctx_st SSL_CONF_CTX; DECLARE_STACK_OF(SSL_CIPHER) @@ -389,6 +395,23 @@ typedef int (*tls_session_secret_cb_fn) (SSL *s, void *secret, STACK_OF(SSL_CIPHER) *peer_ciphers, SSL_CIPHER **cipher, void *arg); +# ifndef OPENSSL_NO_TLSEXT + +/* Typedefs for handling custom extensions */ + +typedef int (*custom_ext_add_cb) (SSL *s, unsigned int ext_type, + const unsigned char **out, + size_t *outlen, int *al, void *add_arg); + +typedef void (*custom_ext_free_cb) (SSL *s, unsigned int ext_type, + const unsigned char *out, void *add_arg); + +typedef int (*custom_ext_parse_cb) (SSL *s, unsigned int ext_type, + const unsigned char *in, + size_t inlen, int *al, void *parse_arg); + +# endif + # ifndef OPENSSL_NO_SSL_INTERN /* used to hold info on the particular ciphers used */ @@ -624,6 +647,12 @@ struct ssl_session_st { # define SSL_OP_NO_TLSv1_2 0x08000000L # define SSL_OP_NO_TLSv1_1 0x10000000L +# define SSL_OP_NO_DTLSv1 0x04000000L +# define SSL_OP_NO_DTLSv1_2 0x08000000L + +# define SSL_OP_NO_SSL_MASK (SSL_OP_NO_SSLv2|SSL_OP_NO_SSLv3|\ + SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1|SSL_OP_NO_TLSv1_2) + /* * These next two were never actually used for anything since SSLeay zap so * we have some more flags. @@ -685,6 +714,69 @@ struct ssl_session_st { */ # define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080L +/* Cert related flags */ +/* + * Many implementations ignore some aspects of the TLS standards such as + * enforcing certifcate chain algorithms. When this is set we enforce them. + */ +# define SSL_CERT_FLAG_TLS_STRICT 0x00000001L + +/* Suite B modes, takes same values as certificate verify flags */ +# define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY 0x10000 +/* Suite B 192 bit only mode */ +# define SSL_CERT_FLAG_SUITEB_192_LOS 0x20000 +/* Suite B 128 bit mode allowing 192 bit algorithms */ +# define SSL_CERT_FLAG_SUITEB_128_LOS 0x30000 + +/* Perform all sorts of protocol violations for testing purposes */ +# define SSL_CERT_FLAG_BROKEN_PROTOCOL 0x10000000 + +/* Flags for building certificate chains */ +/* Treat any existing certificates as untrusted CAs */ +# define SSL_BUILD_CHAIN_FLAG_UNTRUSTED 0x1 +/* Don't include root CA in chain */ +# define SSL_BUILD_CHAIN_FLAG_NO_ROOT 0x2 +/* Just check certificates already there */ +# define SSL_BUILD_CHAIN_FLAG_CHECK 0x4 +/* Ignore verification errors */ +# define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR 0x8 +/* Clear verification errors from queue */ +# define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR 0x10 + +/* Flags returned by SSL_check_chain */ +/* Certificate can be used with this session */ +# define CERT_PKEY_VALID 0x1 +/* Certificate can also be used for signing */ +# define CERT_PKEY_SIGN 0x2 +/* EE certificate signing algorithm OK */ +# define CERT_PKEY_EE_SIGNATURE 0x10 +/* CA signature algorithms OK */ +# define CERT_PKEY_CA_SIGNATURE 0x20 +/* EE certificate parameters OK */ +# define CERT_PKEY_EE_PARAM 0x40 +/* CA certificate parameters OK */ +# define CERT_PKEY_CA_PARAM 0x80 +/* Signing explicitly allowed as opposed to SHA1 fallback */ +# define CERT_PKEY_EXPLICIT_SIGN 0x100 +/* Client CA issuer names match (always set for server cert) */ +# define CERT_PKEY_ISSUER_NAME 0x200 +/* Cert type matches client types (always set for server cert) */ +# define CERT_PKEY_CERT_TYPE 0x400 +/* Cert chain suitable to Suite B */ +# define CERT_PKEY_SUITEB 0x800 + +# define SSL_CONF_FLAG_CMDLINE 0x1 +# define SSL_CONF_FLAG_FILE 0x2 +# define SSL_CONF_FLAG_CLIENT 0x4 +# define SSL_CONF_FLAG_SERVER 0x8 +# define SSL_CONF_FLAG_SHOW_ERRORS 0x10 +# define SSL_CONF_FLAG_CERTIFICATE 0x20 +/* Configuration value types */ +# define SSL_CONF_TYPE_UNKNOWN 0x0 +# define SSL_CONF_TYPE_STRING 0x1 +# define SSL_CONF_TYPE_FILE 0x2 +# define SSL_CONF_TYPE_DIR 0x3 + /* * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they * cannot be used to clear bits. @@ -730,6 +822,15 @@ struct ssl_session_st { SSL_ctrl((ssl),SSL_CTRL_TLS_EXT_SEND_HEARTBEAT,0,NULL) # endif +# define SSL_CTX_set_cert_flags(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL) +# define SSL_set_cert_flags(s,op) \ + SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL) +# define SSL_CTX_clear_cert_flags(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) +# define SSL_clear_cert_flags(s,op) \ + SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) + void SSL_CTX_set_msg_callback(SSL_CTX *ctx, void (*cb) (int write_p, int version, int content_type, const void *buf, @@ -1042,6 +1143,43 @@ struct ssl_ctx_st { # endif /* SRTP profiles we are willing to do from RFC 5764 */ STACK_OF(SRTP_PROTECTION_PROFILE) *srtp_profiles; + + /* + * ALPN information (we are in the process of transitioning from NPN to + * ALPN.) + */ + + /*- + * For a server, this contains a callback function that allows the + * server to select the protocol for the connection. + * out: on successful return, this must point to the raw protocol + * name (without the length prefix). + * outlen: on successful return, this contains the length of |*out|. + * in: points to the client's list of supported protocols in + * wire-format. + * inlen: the length of |in|. + */ + int (*alpn_select_cb) (SSL *s, + const unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, void *arg); + void *alpn_select_cb_arg; + + /* + * For a client, this contains the list of supported protocols in wire + * format. + */ + unsigned char *alpn_client_proto_list; + unsigned alpn_client_proto_list_len; + +# ifndef OPENSSL_NO_EC + /* EC extension values inherited by SSL structure */ + size_t tlsext_ecpointformatlist_length; + unsigned char *tlsext_ecpointformatlist; + size_t tlsext_ellipticcurvelist_length; + unsigned char *tlsext_ellipticcurvelist; +# endif /* OPENSSL_NO_EC */ # endif }; @@ -1144,19 +1282,35 @@ void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, const unsigned char *in, unsigned int inlen, void *arg), void *arg); +void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, + unsigned *len); +# endif +# ifndef OPENSSL_NO_TLSEXT int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, const unsigned char *client, unsigned int client_len); -void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, - unsigned *len); - -# define OPENSSL_NPN_UNSUPPORTED 0 -# define OPENSSL_NPN_NEGOTIATED 1 -# define OPENSSL_NPN_NO_OVERLAP 2 # endif +# define OPENSSL_NPN_UNSUPPORTED 0 +# define OPENSSL_NPN_NEGOTIATED 1 +# define OPENSSL_NPN_NO_OVERLAP 2 + +int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, + unsigned protos_len); +int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, + unsigned protos_len); +void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, + int (*cb) (SSL *ssl, + const unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, + void *arg), void *arg); +void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, + unsigned *len); + # ifndef OPENSSL_NO_PSK /* * the maximum length of the buffer given to callbacks containing the @@ -1228,6 +1382,27 @@ const char *SSL_get_psk_identity_hint(const SSL *s); const char *SSL_get_psk_identity(const SSL *s); # endif +# ifndef OPENSSL_NO_TLSEXT +/* Register callbacks to handle custom TLS Extensions for client or server. */ + +int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg); + +int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg); + +int SSL_extension_supported(unsigned int ext_type); + +# endif + # define SSL_NOTHING 1 # define SSL_WRITING 2 # define SSL_READING 3 @@ -1502,6 +1677,14 @@ struct ssl_st { /* ctx for SRP authentication */ SRP_CTX srp_ctx; # endif +# ifndef OPENSSL_NO_TLSEXT + /* + * For a client, this contains the list of supported protocols in wire + * format. + */ + unsigned char *alpn_client_proto_list; + unsigned alpn_client_proto_list_len; +# endif /* OPENSSL_NO_TLSEXT */ }; # endif @@ -1758,7 +1941,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING 86 # define SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS 87 # endif -# endif +# endif /* OPENSSL_NO_TLSEXT */ # define DTLS_CTRL_GET_TIMEOUT 73 # define DTLS_CTRL_HANDLE_TIMEOUT 74 # define DTLS_CTRL_LISTEN 75 @@ -1767,9 +1950,37 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTRL_CLEAR_MODE 78 # define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82 # define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 +# define SSL_CTRL_CHAIN 88 +# define SSL_CTRL_CHAIN_CERT 89 +# define SSL_CTRL_GET_CURVES 90 +# define SSL_CTRL_SET_CURVES 91 +# define SSL_CTRL_SET_CURVES_LIST 92 +# define SSL_CTRL_GET_SHARED_CURVE 93 +# define SSL_CTRL_SET_ECDH_AUTO 94 +# define SSL_CTRL_SET_SIGALGS 97 +# define SSL_CTRL_SET_SIGALGS_LIST 98 +# define SSL_CTRL_CERT_FLAGS 99 +# define SSL_CTRL_CLEAR_CERT_FLAGS 100 +# define SSL_CTRL_SET_CLIENT_SIGALGS 101 +# define SSL_CTRL_SET_CLIENT_SIGALGS_LIST 102 +# define SSL_CTRL_GET_CLIENT_CERT_TYPES 103 +# define SSL_CTRL_SET_CLIENT_CERT_TYPES 104 +# define SSL_CTRL_BUILD_CERT_CHAIN 105 +# define SSL_CTRL_SET_VERIFY_CERT_STORE 106 +# define SSL_CTRL_SET_CHAIN_CERT_STORE 107 +# define SSL_CTRL_GET_PEER_SIGNATURE_NID 108 +# define SSL_CTRL_GET_SERVER_TMP_KEY 109 +# define SSL_CTRL_GET_RAW_CIPHERLIST 110 +# define SSL_CTRL_GET_EC_POINT_FORMATS 111 +# define SSL_CTRL_GET_CHAIN_CERTS 115 +# define SSL_CTRL_SELECT_CURRENT_CERT 116 +# define SSL_CTRL_SET_CURRENT_CERT 117 # define SSL_CTRL_CHECK_PROTO_VERSION 119 # define DTLS_CTRL_SET_LINK_MTU 120 # define DTLS_CTRL_GET_LINK_MIN_MTU 121 +# define SSL_CERT_SET_FIRST 1 +# define SSL_CERT_SET_NEXT 2 +# define SSL_CERT_SET_SERVER 3 # define DTLSv1_get_timeout(ssl, arg) \ SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)arg) # define DTLSv1_handle_timeout(ssl) \ @@ -1804,8 +2015,108 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509) # define SSL_CTX_get_extra_chain_certs(ctx,px509) \ SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509) +# define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509) # define SSL_CTX_clear_extra_chain_certs(ctx) \ SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL) +# define SSL_CTX_set0_chain(ctx,sk) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk) +# define SSL_CTX_set1_chain(ctx,sk) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk) +# define SSL_CTX_add0_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509) +# define SSL_CTX_add1_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509) +# define SSL_CTX_get0_chain_certs(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) +# define SSL_CTX_clear_chain_certs(ctx) \ + SSL_CTX_set0_chain(ctx,NULL) +# define SSL_CTX_build_cert_chain(ctx, flags) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) +# define SSL_CTX_select_current_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509) +# define SSL_CTX_set_current_cert(ctx, op) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) +# define SSL_CTX_set0_verify_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st) +# define SSL_CTX_set1_verify_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st) +# define SSL_CTX_set0_chain_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st) +# define SSL_CTX_set1_chain_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st) +# define SSL_set0_chain(ctx,sk) \ + SSL_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk) +# define SSL_set1_chain(ctx,sk) \ + SSL_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk) +# define SSL_add0_chain_cert(ctx,x509) \ + SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509) +# define SSL_add1_chain_cert(ctx,x509) \ + SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509) +# define SSL_get0_chain_certs(ctx,px509) \ + SSL_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) +# define SSL_clear_chain_certs(ctx) \ + SSL_set0_chain(ctx,NULL) +# define SSL_build_cert_chain(s, flags) \ + SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) +# define SSL_select_current_cert(ctx,x509) \ + SSL_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509) +# define SSL_set_current_cert(ctx,op) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) +# define SSL_set0_verify_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st) +# define SSL_set1_verify_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st) +# define SSL_set0_chain_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st) +# define SSL_set1_chain_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st) +# define SSL_get1_curves(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_GET_CURVES,0,(char *)s) +# define SSL_CTX_set1_curves(ctx, clist, clistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) +# define SSL_CTX_set1_curves_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) +# define SSL_set1_curves(ctx, clist, clistlen) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) +# define SSL_set1_curves_list(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) +# define SSL_get_shared_curve(s, n) \ + SSL_ctrl(s,SSL_CTRL_GET_SHARED_CURVE,n,NULL) +# define SSL_CTX_set_ecdh_auto(ctx, onoff) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_ECDH_AUTO,onoff,NULL) +# define SSL_set_ecdh_auto(s, onoff) \ + SSL_ctrl(s,SSL_CTRL_SET_ECDH_AUTO,onoff,NULL) +# define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) +# define SSL_CTX_set1_sigalgs_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) +# define SSL_set1_sigalgs(ctx, slist, slistlen) \ + SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS,clistlen,(int *)slist) +# define SSL_set1_sigalgs_list(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) +# define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)slist) +# define SSL_CTX_set1_client_sigalgs_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s) +# define SSL_set1_client_sigalgs(ctx, slist, slistlen) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,clistlen,(int *)slist) +# define SSL_set1_client_sigalgs_list(ctx, s) \ + SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s) +# define SSL_get0_certificate_types(s, clist) \ + SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)clist) +# define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist) +# define SSL_set1_client_certificate_types(s, clist, clistlen) \ + SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist) +# define SSL_get_peer_signature_nid(s, pn) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) +# define SSL_get_server_tmp_key(s, pk) \ + SSL_ctrl(s,SSL_CTRL_GET_SERVER_TMP_KEY,0,pk) +# define SSL_get0_raw_cipherlist(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,(char *)plst) +# define SSL_get0_ec_point_formats(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,(char *)plst) # ifndef OPENSSL_NO_BIO BIO_METHOD *BIO_f_ssl(void); BIO *BIO_new_ssl(SSL_CTX *ctx, int client); @@ -1859,6 +2170,7 @@ int (*SSL_get_verify_callback(const SSL *s)) (int, X509_STORE_CTX *); void SSL_set_verify(SSL *s, int mode, int (*callback) (int ok, X509_STORE_CTX *ctx)); void SSL_set_verify_depth(SSL *s, int depth); +void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg); # ifndef OPENSSL_NO_RSA int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); # endif @@ -1869,6 +2181,16 @@ int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, int SSL_use_certificate(SSL *ssl, X509 *x); int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); +# ifndef OPENSSL_NO_TLSEXT +/* Set serverinfo data for the current active cert. */ +int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, + size_t serverinfo_length); +# ifndef OPENSSL_NO_STDIO +int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); +# endif /* NO_STDIO */ + +# endif + # ifndef OPENSSL_NO_STDIO int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); @@ -1943,6 +2265,8 @@ void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth); void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, int (*cb) (X509_STORE_CTX *, void *), void *arg); +void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), + void *arg); # ifndef OPENSSL_NO_RSA int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); # endif @@ -1976,6 +2300,9 @@ int SSL_set_trust(SSL *s, int trust); int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); +X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); +X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); + # ifndef OPENSSL_NO_SRP int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name); int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password); @@ -2000,6 +2327,7 @@ char *SSL_get_srp_username(SSL *s); char *SSL_get_srp_userinfo(SSL *s); # endif +void SSL_certs_clear(SSL *s); void SSL_free(SSL *ssl); int SSL_accept(SSL *ssl); int SSL_connect(SSL *ssl); @@ -2052,6 +2380,14 @@ const SSL_METHOD *DTLSv1_method(void); /* DTLSv1.0 */ const SSL_METHOD *DTLSv1_server_method(void); /* DTLSv1.0 */ const SSL_METHOD *DTLSv1_client_method(void); /* DTLSv1.0 */ +const SSL_METHOD *DTLSv1_2_method(void); /* DTLSv1.2 */ +const SSL_METHOD *DTLSv1_2_server_method(void); /* DTLSv1.2 */ +const SSL_METHOD *DTLSv1_2_client_method(void); /* DTLSv1.2 */ + +const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ +const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ +const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ + STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); int SSL_do_handshake(SSL *s); @@ -2060,6 +2396,7 @@ int SSL_renegotiate_abbreviated(SSL *s); int SSL_renegotiate_pending(SSL *s); int SSL_shutdown(SSL *s); +const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx); const SSL_METHOD *SSL_get_ssl_method(SSL *s); int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); const char *SSL_alert_type_string_long(int value); @@ -2089,7 +2426,10 @@ SSL *SSL_dup(SSL *ssl); X509 *SSL_get_certificate(const SSL *ssl); /* * EVP_PKEY - */ struct evp_pkey_st *SSL_get_privatekey(SSL *ssl); + */ struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl); + +X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); +EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); @@ -2197,6 +2537,9 @@ const COMP_METHOD *SSL_get_current_compression(SSL *s); const COMP_METHOD *SSL_get_current_expansion(SSL *s); const char *SSL_COMP_get_name(const COMP_METHOD *comp); STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); +STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) + *meths); +void SSL_COMP_free_compression_methods(void); int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); # else const void *SSL_get_current_compression(SSL *s); @@ -2206,6 +2549,8 @@ void *SSL_COMP_get_compression_methods(void); int SSL_COMP_add_compression_method(int id, void *cm); # endif +const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); + /* TLS extensions functions */ int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); @@ -2219,6 +2564,27 @@ int SSL_set_session_secret_cb(SSL *s, void SSL_set_debug(SSL *s, int debug); int SSL_cache_hit(SSL *s); +int SSL_is_server(SSL *s); + +SSL_CONF_CTX *SSL_CONF_CTX_new(void); +int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx); +void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx); +unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags); +unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, unsigned int flags); +int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre); + +void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); +void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); + +int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); +int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); +int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); + +# ifndef OPENSSL_NO_SSL_TRACE +void SSL_trace(int write_p, int version, int content_type, + const void *buf, size_t len, SSL *ssl, void *arg); +const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); +# endif # ifndef OPENSSL_NO_UNIT_TEST const struct openssl_ssl_test_functions *SSL_test_functions(void); @@ -2234,6 +2600,7 @@ void ERR_load_SSL_strings(void); /* Error codes for the SSL functions. */ /* Function codes. */ +# define SSL_F_CHECK_SUITEB_CIPHER_LIST 331 # define SSL_F_CLIENT_CERTIFICATE 100 # define SSL_F_CLIENT_FINISHED 167 # define SSL_F_CLIENT_HELLO 101 @@ -2274,6 +2641,7 @@ void ERR_load_SSL_strings(void); # define SSL_F_GET_CLIENT_MASTER_KEY 107 # define SSL_F_GET_SERVER_FINISHED 108 # define SSL_F_GET_SERVER_HELLO 109 +# define SSL_F_GET_SERVER_STATIC_DH_KEY 340 # define SSL_F_GET_SERVER_VERIFY 110 # define SSL_F_I2D_SSL_SESSION 111 # define SSL_F_READ_N 112 @@ -2313,6 +2681,7 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 # define SSL_F_SSL3_ENC 134 # define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 +# define SSL_F_SSL3_GENERATE_MASTER_SECRET 388 # define SSL_F_SSL3_GET_CERTIFICATE_REQUEST 135 # define SSL_F_SSL3_GET_CERT_STATUS 289 # define SSL_F_SSL3_GET_CERT_VERIFY 136 @@ -2346,6 +2715,8 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL3_SETUP_WRITE_BUFFER 291 # define SSL_F_SSL3_WRITE_BYTES 158 # define SSL_F_SSL3_WRITE_PENDING 159 +# define SSL_F_SSL_ADD_CERT_CHAIN 318 +# define SSL_F_SSL_ADD_CERT_TO_BUF 319 # define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 # define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 # define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307 @@ -2355,6 +2726,7 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278 # define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308 # define SSL_F_SSL_BAD_METHOD 160 +# define SSL_F_SSL_BUILD_CERT_CHAIN 332 # define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 # define SSL_F_SSL_CERT_DUP 221 # define SSL_F_SSL_CERT_INST 222 @@ -2367,6 +2739,7 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 # define SSL_F_SSL_CLEAR 164 # define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 +# define SSL_F_SSL_CONF_CMD 334 # define SSL_F_SSL_CREATE_CIPHER_LIST 166 # define SSL_F_SSL_CTRL 232 # define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 @@ -2389,9 +2762,12 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177 # define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178 # define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 +# define SSL_F_SSL_CTX_USE_SERVERINFO 336 +# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337 # define SSL_F_SSL_DO_HANDSHAKE 180 # define SSL_F_SSL_GET_NEW_SESSION 181 # define SSL_F_SSL_GET_PREV_SESSION 217 +# define SSL_F_SSL_GET_SERVER_CERT_INDEX 322 # define SSL_F_SSL_GET_SERVER_SEND_CERT 182 # define SSL_F_SSL_GET_SERVER_SEND_PKEY 317 # define SSL_F_SSL_GET_SIGN_PKEY 183 @@ -2410,6 +2786,8 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL_READ 223 # define SSL_F_SSL_RSA_PRIVATE_DECRYPT 187 # define SSL_F_SSL_RSA_PUBLIC_ENCRYPT 188 +# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320 +# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321 # define SSL_F_SSL_SESSION_DUP 348 # define SSL_F_SSL_SESSION_NEW 189 # define SSL_F_SSL_SESSION_PRINT_FP 190 @@ -2443,16 +2821,19 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206 # define SSL_F_SSL_VERIFY_CERT_CHAIN 207 # define SSL_F_SSL_WRITE 208 +# define SSL_F_TLS12_CHECK_PEER_SIGALG 333 # define SSL_F_TLS1_CERT_VERIFY_MAC 286 # define SSL_F_TLS1_CHANGE_CIPHER_STATE 209 # define SSL_F_TLS1_CHECK_SERVERHELLO_TLSEXT 274 # define SSL_F_TLS1_ENC 210 # define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314 +# define SSL_F_TLS1_GET_CURVELIST 338 # define SSL_F_TLS1_HEARTBEAT 315 # define SSL_F_TLS1_PREPARE_CLIENTHELLO_TLSEXT 275 # define SSL_F_TLS1_PREPARE_SERVERHELLO_TLSEXT 276 # define SSL_F_TLS1_PRF 284 # define SSL_F_TLS1_SETUP_KEY_BLOCK 211 +# define SSL_F_TLS1_SET_SERVER_SIGALGS 335 # define SSL_F_WRITE_PENDING 212 /* Reason codes. */ @@ -2462,11 +2843,15 @@ void ERR_load_SSL_strings(void); # define SSL_R_BAD_AUTHENTICATION_TYPE 102 # define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 # define SSL_R_BAD_CHECKSUM 104 +# define SSL_R_BAD_DATA 390 # define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 # define SSL_R_BAD_DECOMPRESSION 107 # define SSL_R_BAD_DH_G_LENGTH 108 +# define SSL_R_BAD_DH_G_VALUE 375 # define SSL_R_BAD_DH_PUB_KEY_LENGTH 109 +# define SSL_R_BAD_DH_PUB_KEY_VALUE 393 # define SSL_R_BAD_DH_P_LENGTH 110 +# define SSL_R_BAD_DH_P_VALUE 395 # define SSL_R_BAD_DIGEST_LENGTH 111 # define SSL_R_BAD_DSA_SIGNATURE 112 # define SSL_R_BAD_ECC_CERT 304 @@ -2499,6 +2884,7 @@ void ERR_load_SSL_strings(void); # define SSL_R_BAD_SSL_FILETYPE 124 # define SSL_R_BAD_SSL_SESSION_ID_LENGTH 125 # define SSL_R_BAD_STATE 126 +# define SSL_R_BAD_VALUE 384 # define SSL_R_BAD_WRITE_RETRY 127 # define SSL_R_BIO_NOT_SET 128 # define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 @@ -2507,6 +2893,7 @@ void ERR_load_SSL_strings(void); # define SSL_R_CA_DN_TOO_LONG 132 # define SSL_R_CCS_RECEIVED_EARLY 133 # define SSL_R_CERTIFICATE_VERIFY_FAILED 134 +# define SSL_R_CERT_CB_ERROR 377 # define SSL_R_CERT_LENGTH_MISMATCH 135 # define SSL_R_CHALLENGE_IS_DIFFERENT 136 # define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 @@ -2534,6 +2921,7 @@ void ERR_load_SSL_strings(void); # define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 # define SSL_R_ECC_CERT_SHOULD_HAVE_RSA_SIGNATURE 322 # define SSL_R_ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE 323 +# define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 # define SSL_R_ECGROUP_TOO_LARGE_FOR_CIPHER 310 # define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 # define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 @@ -2547,12 +2935,15 @@ void ERR_load_SSL_strings(void); # define SSL_R_HTTPS_PROXY_REQUEST 155 # define SSL_R_HTTP_REQUEST 156 # define SSL_R_ILLEGAL_PADDING 283 +# define SSL_R_ILLEGAL_SUITEB_DIGEST 380 # define SSL_R_INAPPROPRIATE_FALLBACK 373 # define SSL_R_INCONSISTENT_COMPRESSION 340 # define SSL_R_INVALID_CHALLENGE_LENGTH 158 # define SSL_R_INVALID_COMMAND 280 # define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 +# define SSL_R_INVALID_NULL_CMD_NAME 385 # define SSL_R_INVALID_PURPOSE 278 +# define SSL_R_INVALID_SERVERINFO_DATA 388 # define SSL_R_INVALID_SRP_USERNAME 357 # define SSL_R_INVALID_STATUS_RESPONSE 328 # define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 @@ -2578,6 +2969,8 @@ void ERR_load_SSL_strings(void); # define SSL_R_MISSING_DH_KEY 163 # define SSL_R_MISSING_DH_RSA_CERT 164 # define SSL_R_MISSING_DSA_SIGNING_CERT 165 +# define SSL_R_MISSING_ECDH_CERT 382 +# define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 # define SSL_R_MISSING_EXPORT_TMP_DH_KEY 166 # define SSL_R_MISSING_EXPORT_TMP_RSA_KEY 167 # define SSL_R_MISSING_RSA_CERTIFICATE 168 @@ -2606,6 +2999,7 @@ void ERR_load_SSL_strings(void); # define SSL_R_NO_COMPRESSION_SPECIFIED 187 # define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 # define SSL_R_NO_METHOD_SPECIFIED 188 +# define SSL_R_NO_PEM_EXTENSIONS 389 # define SSL_R_NO_PRIVATEKEY 189 # define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 # define SSL_R_NO_PROTOCOLS_AVAILABLE 191 @@ -2613,12 +3007,15 @@ void ERR_load_SSL_strings(void); # define SSL_R_NO_RENEGOTIATION 339 # define SSL_R_NO_REQUIRED_DIGEST 324 # define SSL_R_NO_SHARED_CIPHER 193 +# define SSL_R_NO_SHARED_SIGATURE_ALGORITHMS 376 # define SSL_R_NO_SRTP_PROFILES 359 # define SSL_R_NO_VERIFY_CALLBACK 194 # define SSL_R_NULL_SSL_CTX 195 # define SSL_R_NULL_SSL_METHOD_PASSED 196 # define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 # define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 +# define SSL_R_ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE 387 +# define SSL_R_ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE 379 # define SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE 297 # define SSL_R_OPAQUE_PRF_INPUT_TOO_LONG 327 # define SSL_R_PACKET_LENGTH_TOO_LONG 198 @@ -2630,6 +3027,8 @@ void ERR_load_SSL_strings(void); # define SSL_R_PEER_ERROR_NO_CERTIFICATE 202 # define SSL_R_PEER_ERROR_NO_CIPHER 203 # define SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE 204 +# define SSL_R_PEM_NAME_BAD_PREFIX 391 +# define SSL_R_PEM_NAME_TOO_SHORT 392 # define SSL_R_PRE_MAC_LENGTH_TOO_LONG 205 # define SSL_R_PROBLEMS_MAPPING_CIPHER_FUNCTIONS 206 # define SSL_R_PROTOCOL_IS_SHUTDOWN 207 @@ -2732,6 +3131,7 @@ void ERR_load_SSL_strings(void); # define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 # define SSL_R_UNKNOWN_CIPHER_RETURNED 248 # define SSL_R_UNKNOWN_CIPHER_TYPE 249 +# define SSL_R_UNKNOWN_CMD_NAME 386 # define SSL_R_UNKNOWN_DIGEST 368 # define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 # define SSL_R_UNKNOWN_PKEY_TYPE 251 @@ -2749,7 +3149,9 @@ void ERR_load_SSL_strings(void); # define SSL_R_UNSUPPORTED_STATUS_TYPE 329 # define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 # define SSL_R_WRITE_BIO_NOT_SET 260 +# define SSL_R_WRONG_CERTIFICATE_TYPE 383 # define SSL_R_WRONG_CIPHER_RETURNED 261 +# define SSL_R_WRONG_CURVE 378 # define SSL_R_WRONG_MESSAGE_TYPE 262 # define SSL_R_WRONG_NUMBER_OF_KEY_BITS 263 # define SSL_R_WRONG_SIGNATURE_LENGTH 264 diff --git a/libs/openssl/ssl/ssl3.h b/libs/openssl/ssl/ssl3.h index 2dd54626..e681d50a 100644 --- a/libs/openssl/ssl/ssl3.h +++ b/libs/openssl/ssl/ssl3.h @@ -159,11 +159,17 @@ extern "C" { # define SSL3_CK_DH_RSA_DES_192_CBC3_SHA 0x03000010 # define SSL3_CK_EDH_DSS_DES_40_CBC_SHA 0x03000011 +# define SSL3_CK_DHE_DSS_DES_40_CBC_SHA SSL3_CK_EDH_DSS_DES_40_CBC_SHA # define SSL3_CK_EDH_DSS_DES_64_CBC_SHA 0x03000012 +# define SSL3_CK_DHE_DSS_DES_64_CBC_SHA SSL3_CK_EDH_DSS_DES_64_CBC_SHA # define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA 0x03000013 +# define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA SSL3_CK_EDH_DSS_DES_192_CBC3_SHA # define SSL3_CK_EDH_RSA_DES_40_CBC_SHA 0x03000014 +# define SSL3_CK_DHE_RSA_DES_40_CBC_SHA SSL3_CK_EDH_RSA_DES_40_CBC_SHA # define SSL3_CK_EDH_RSA_DES_64_CBC_SHA 0x03000015 +# define SSL3_CK_DHE_RSA_DES_64_CBC_SHA SSL3_CK_EDH_RSA_DES_64_CBC_SHA # define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA 0x03000016 +# define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA SSL3_CK_EDH_RSA_DES_192_CBC3_SHA # define SSL3_CK_ADH_RC4_40_MD5 0x03000017 # define SSL3_CK_ADH_RC4_128_MD5 0x03000018 @@ -220,6 +226,18 @@ extern "C" { # define SSL3_TXT_DH_RSA_DES_64_CBC_SHA "DH-RSA-DES-CBC-SHA" # define SSL3_TXT_DH_RSA_DES_192_CBC3_SHA "DH-RSA-DES-CBC3-SHA" +# define SSL3_TXT_DHE_DSS_DES_40_CBC_SHA "EXP-DHE-DSS-DES-CBC-SHA" +# define SSL3_TXT_DHE_DSS_DES_64_CBC_SHA "DHE-DSS-DES-CBC-SHA" +# define SSL3_TXT_DHE_DSS_DES_192_CBC3_SHA "DHE-DSS-DES-CBC3-SHA" +# define SSL3_TXT_DHE_RSA_DES_40_CBC_SHA "EXP-DHE-RSA-DES-CBC-SHA" +# define SSL3_TXT_DHE_RSA_DES_64_CBC_SHA "DHE-RSA-DES-CBC-SHA" +# define SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA "DHE-RSA-DES-CBC3-SHA" + +/* + * This next block of six "EDH" labels is for backward compatibility with + * older versions of OpenSSL. New code should use the six "DHE" labels above + * instead: + */ # define SSL3_TXT_EDH_DSS_DES_40_CBC_SHA "EXP-EDH-DSS-DES-CBC-SHA" # define SSL3_TXT_EDH_DSS_DES_64_CBC_SHA "EDH-DSS-DES-CBC-SHA" # define SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA "EDH-DSS-DES-CBC3-SHA" @@ -263,6 +281,8 @@ extern "C" { # define SSL3_SESSION_ID_SIZE 32 # define SSL3_RT_HEADER_LENGTH 5 +# define SSL3_HM_HEADER_LENGTH 4 + # ifndef SSL3_ALIGN_PAYLOAD /* * Some will argue that this increases memory footprint, but it's not @@ -342,6 +362,23 @@ extern "C" { # define SSL3_RT_APPLICATION_DATA 23 # define TLS1_RT_HEARTBEAT 24 +/* Pseudo content types to indicate additional parameters */ +# define TLS1_RT_CRYPTO 0x1000 +# define TLS1_RT_CRYPTO_PREMASTER (TLS1_RT_CRYPTO | 0x1) +# define TLS1_RT_CRYPTO_CLIENT_RANDOM (TLS1_RT_CRYPTO | 0x2) +# define TLS1_RT_CRYPTO_SERVER_RANDOM (TLS1_RT_CRYPTO | 0x3) +# define TLS1_RT_CRYPTO_MASTER (TLS1_RT_CRYPTO | 0x4) + +# define TLS1_RT_CRYPTO_READ 0x0000 +# define TLS1_RT_CRYPTO_WRITE 0x0100 +# define TLS1_RT_CRYPTO_MAC (TLS1_RT_CRYPTO | 0x5) +# define TLS1_RT_CRYPTO_KEY (TLS1_RT_CRYPTO | 0x6) +# define TLS1_RT_CRYPTO_IV (TLS1_RT_CRYPTO | 0x7) +# define TLS1_RT_CRYPTO_FIXED_IV (TLS1_RT_CRYPTO | 0x8) + +/* Pseudo content type for SSL/TLS header info */ +# define SSL3_RT_HEADER 0x100 + # define SSL3_AL_WARNING 1 # define SSL3_AL_FATAL 2 @@ -436,14 +473,7 @@ typedef struct ssl3_buffer_st { */ # define SSL3_FLAGS_CCS_OK 0x0080 -/* - * SSL3_FLAGS_SGC_RESTART_DONE is set when we restart a handshake because of - * MS SGC and so prevents us from restarting the handshake in a loop. It's - * reset on a renegotiation, so effectively limits the client to one restart - * per negotiation. This limits the possibility of a DDoS attack where the - * client handshakes in a loop using SGC to restart. Servers which permit - * renegotiation can still be effected, but we can't prevent that. - */ +/* SSL3_FLAGS_SGC_RESTART_DONE is no longer used */ # define SSL3_FLAGS_SGC_RESTART_DONE 0x0040 # ifndef OPENSSL_NO_SSL_INTERN @@ -584,7 +614,20 @@ typedef struct ssl3_state_st { */ char is_probably_safari; # endif /* !OPENSSL_NO_EC */ -# endif /* !OPENSSL_NO_TLSEXT */ + + /* + * ALPN information (we are in the process of transitioning from NPN to + * ALPN.) + */ + + /* + * In a server these point to the selected ALPN protocol after the + * ClientHello has been processed. In a client these contain the protocol + * that the server selected once the ServerHello has been processed. + */ + unsigned char *alpn_selected; + unsigned alpn_selected_len; +# endif /* OPENSSL_NO_TLSEXT */ } SSL3_STATE; # endif @@ -654,6 +697,7 @@ typedef struct ssl3_state_st { # define SSL3_ST_SR_CLNT_HELLO_A (0x110|SSL_ST_ACCEPT) # define SSL3_ST_SR_CLNT_HELLO_B (0x111|SSL_ST_ACCEPT) # define SSL3_ST_SR_CLNT_HELLO_C (0x112|SSL_ST_ACCEPT) +# define SSL3_ST_SR_CLNT_HELLO_D (0x115|SSL_ST_ACCEPT) /* write to client */ # define DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A (0x113|SSL_ST_ACCEPT) # define DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B (0x114|SSL_ST_ACCEPT) diff --git a/libs/openssl/ssl/ssl_algs.c b/libs/openssl/ssl/ssl_algs.c index 151422ae..e6f515ff 100644 --- a/libs/openssl/ssl/ssl_algs.c +++ b/libs/openssl/ssl/ssl_algs.c @@ -95,6 +95,10 @@ int SSL_library_init(void) EVP_add_cipher(EVP_aes_128_cbc_hmac_sha1()); EVP_add_cipher(EVP_aes_256_cbc_hmac_sha1()); # endif +# if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA256) + EVP_add_cipher(EVP_aes_128_cbc_hmac_sha256()); + EVP_add_cipher(EVP_aes_256_cbc_hmac_sha256()); +# endif #endif #ifndef OPENSSL_NO_CAMELLIA diff --git a/libs/openssl/ssl/ssl_asn1.c b/libs/openssl/ssl/ssl_asn1.c index 39d48eab..35cc27c5 100644 --- a/libs/openssl/ssl/ssl_asn1.c +++ b/libs/openssl/ssl/ssl_asn1.c @@ -121,13 +121,16 @@ typedef struct ssl_session_asn1_st { int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp) { #define LSIZE2 (sizeof(long)*2) - int v1 = 0, v2 = 0, v3 = 0, v4 = 0, v5 = 0, v7 = 0, v8 = 0; + int v1 = 0, v2 = 0, v3 = 0, v4 = 0, v5 = 0; unsigned char buf[4], ibuf1[LSIZE2], ibuf2[LSIZE2]; unsigned char ibuf3[LSIZE2], ibuf4[LSIZE2], ibuf5[LSIZE2]; #ifndef OPENSSL_NO_TLSEXT int v6 = 0, v9 = 0, v10 = 0; unsigned char ibuf6[LSIZE2]; #endif +#ifndef OPENSSL_NO_PSK + int v7 = 0, v8 = 0; +#endif #ifndef OPENSSL_NO_COMP unsigned char cbuf; int v11 = 0; diff --git a/libs/openssl/ssl/ssl_cert.c b/libs/openssl/ssl/ssl_cert.c index 5df2413f..a73f866c 100644 --- a/libs/openssl/ssl/ssl_cert.c +++ b/libs/openssl/ssl/ssl_cert.c @@ -139,29 +139,50 @@ int SSL_get_ex_data_X509_STORE_CTX_idx(void) static volatile int ssl_x509_store_ctx_idx = -1; int got_write_lock = 0; - CRYPTO_r_lock(CRYPTO_LOCK_SSL_CTX); + if (((size_t)&ssl_x509_store_ctx_idx & + (sizeof(ssl_x509_store_ctx_idx) - 1)) + == 0) { /* check alignment, practically always true */ + int ret; + + if ((ret = ssl_x509_store_ctx_idx) < 0) { + CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); + if ((ret = ssl_x509_store_ctx_idx) < 0) { + ret = ssl_x509_store_ctx_idx = + X509_STORE_CTX_get_ex_new_index(0, + "SSL for verify callback", + NULL, NULL, NULL); + } + CRYPTO_w_unlock(CRYPTO_LOCK_SSL_CTX); + } + + return ret; + } else { /* commonly eliminated */ - if (ssl_x509_store_ctx_idx < 0) { - CRYPTO_r_unlock(CRYPTO_LOCK_SSL_CTX); - CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); - got_write_lock = 1; + CRYPTO_r_lock(CRYPTO_LOCK_SSL_CTX); if (ssl_x509_store_ctx_idx < 0) { - ssl_x509_store_ctx_idx = - X509_STORE_CTX_get_ex_new_index(0, "SSL for verify callback", - NULL, NULL, NULL); + CRYPTO_r_unlock(CRYPTO_LOCK_SSL_CTX); + CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); + got_write_lock = 1; + + if (ssl_x509_store_ctx_idx < 0) { + ssl_x509_store_ctx_idx = + X509_STORE_CTX_get_ex_new_index(0, + "SSL for verify callback", + NULL, NULL, NULL); + } } - } - if (got_write_lock) - CRYPTO_w_unlock(CRYPTO_LOCK_SSL_CTX); - else - CRYPTO_r_unlock(CRYPTO_LOCK_SSL_CTX); + if (got_write_lock) + CRYPTO_w_unlock(CRYPTO_LOCK_SSL_CTX); + else + CRYPTO_r_unlock(CRYPTO_LOCK_SSL_CTX); - return ssl_x509_store_ctx_idx; + return ssl_x509_store_ctx_idx; + } } -static void ssl_cert_set_default_md(CERT *cert) +void ssl_cert_set_default_md(CERT *cert) { /* Set digest values to defaults */ #ifndef OPENSSL_NO_DSA @@ -206,6 +227,7 @@ CERT *ssl_cert_dup(CERT *cert) memset(ret, 0, sizeof(CERT)); + ret->references = 1; ret->key = &ret->pkeys[cert->key - &cert->pkeys[0]]; /* * or ret->key = ret->pkeys + (cert->key - cert->pkeys), if you find that @@ -262,32 +284,111 @@ CERT *ssl_cert_dup(CERT *cert) } } ret->ecdh_tmp_cb = cert->ecdh_tmp_cb; + ret->ecdh_tmp_auto = cert->ecdh_tmp_auto; #endif for (i = 0; i < SSL_PKEY_NUM; i++) { - if (cert->pkeys[i].x509 != NULL) { - ret->pkeys[i].x509 = cert->pkeys[i].x509; - CRYPTO_add(&ret->pkeys[i].x509->references, 1, CRYPTO_LOCK_X509); + CERT_PKEY *cpk = cert->pkeys + i; + CERT_PKEY *rpk = ret->pkeys + i; + if (cpk->x509 != NULL) { + rpk->x509 = cpk->x509; + CRYPTO_add(&rpk->x509->references, 1, CRYPTO_LOCK_X509); } - if (cert->pkeys[i].privatekey != NULL) { - ret->pkeys[i].privatekey = cert->pkeys[i].privatekey; - CRYPTO_add(&ret->pkeys[i].privatekey->references, 1, - CRYPTO_LOCK_EVP_PKEY); + if (cpk->privatekey != NULL) { + rpk->privatekey = cpk->privatekey; + CRYPTO_add(&cpk->privatekey->references, 1, CRYPTO_LOCK_EVP_PKEY); } - } - /* - * ret->extra_certs *should* exist, but currently the own certificate - * chain is held inside SSL_CTX - */ + if (cpk->chain) { + rpk->chain = X509_chain_up_ref(cpk->chain); + if (!rpk->chain) { + SSLerr(SSL_F_SSL_CERT_DUP, ERR_R_MALLOC_FAILURE); + goto err; + } + } + rpk->valid_flags = 0; +#ifndef OPENSSL_NO_TLSEXT + if (cert->pkeys[i].serverinfo != NULL) { + /* Just copy everything. */ + ret->pkeys[i].serverinfo = + OPENSSL_malloc(cert->pkeys[i].serverinfo_length); + if (ret->pkeys[i].serverinfo == NULL) { + SSLerr(SSL_F_SSL_CERT_DUP, ERR_R_MALLOC_FAILURE); + return NULL; + } + ret->pkeys[i].serverinfo_length = + cert->pkeys[i].serverinfo_length; + memcpy(ret->pkeys[i].serverinfo, + cert->pkeys[i].serverinfo, + cert->pkeys[i].serverinfo_length); + } +#endif + } - ret->references = 1; /* * Set digests to defaults. NB: we don't copy existing values as they * will be set during handshake. */ ssl_cert_set_default_md(ret); + /* Peer sigalgs set to NULL as we get these from handshake too */ + ret->peer_sigalgs = NULL; + ret->peer_sigalgslen = 0; + /* Configured sigalgs however we copy across */ + + if (cert->conf_sigalgs) { + ret->conf_sigalgs = OPENSSL_malloc(cert->conf_sigalgslen); + if (!ret->conf_sigalgs) + goto err; + memcpy(ret->conf_sigalgs, cert->conf_sigalgs, cert->conf_sigalgslen); + ret->conf_sigalgslen = cert->conf_sigalgslen; + } else + ret->conf_sigalgs = NULL; + + if (cert->client_sigalgs) { + ret->client_sigalgs = OPENSSL_malloc(cert->client_sigalgslen); + if (!ret->client_sigalgs) + goto err; + memcpy(ret->client_sigalgs, cert->client_sigalgs, + cert->client_sigalgslen); + ret->client_sigalgslen = cert->client_sigalgslen; + } else + ret->client_sigalgs = NULL; + /* Shared sigalgs also NULL */ + ret->shared_sigalgs = NULL; + /* Copy any custom client certificate types */ + if (cert->ctypes) { + ret->ctypes = OPENSSL_malloc(cert->ctype_num); + if (!ret->ctypes) + goto err; + memcpy(ret->ctypes, cert->ctypes, cert->ctype_num); + ret->ctype_num = cert->ctype_num; + } + + ret->cert_flags = cert->cert_flags; + + ret->cert_cb = cert->cert_cb; + ret->cert_cb_arg = cert->cert_cb_arg; + + if (cert->verify_store) { + CRYPTO_add(&cert->verify_store->references, 1, + CRYPTO_LOCK_X509_STORE); + ret->verify_store = cert->verify_store; + } + + if (cert->chain_store) { + CRYPTO_add(&cert->chain_store->references, 1, CRYPTO_LOCK_X509_STORE); + ret->chain_store = cert->chain_store; + } + + ret->ciphers_raw = NULL; + +#ifndef OPENSSL_NO_TLSEXT + if (!custom_exts_copy(&ret->cli_ext, &cert->cli_ext)) + goto err; + if (!custom_exts_copy(&ret->srv_ext, &cert->srv_ext)) + goto err; +#endif return (ret); @@ -307,16 +408,49 @@ CERT *ssl_cert_dup(CERT *cert) EC_KEY_free(ret->ecdh_tmp); #endif - for (i = 0; i < SSL_PKEY_NUM; i++) { - if (ret->pkeys[i].x509 != NULL) - X509_free(ret->pkeys[i].x509); - if (ret->pkeys[i].privatekey != NULL) - EVP_PKEY_free(ret->pkeys[i].privatekey); - } +#ifndef OPENSSL_NO_TLSEXT + custom_exts_free(&ret->cli_ext); + custom_exts_free(&ret->srv_ext); +#endif + + ssl_cert_clear_certs(ret); return NULL; } +/* Free up and clear all certificates and chains */ + +void ssl_cert_clear_certs(CERT *c) +{ + int i; + if (c == NULL) + return; + for (i = 0; i < SSL_PKEY_NUM; i++) { + CERT_PKEY *cpk = c->pkeys + i; + if (cpk->x509) { + X509_free(cpk->x509); + cpk->x509 = NULL; + } + if (cpk->privatekey) { + EVP_PKEY_free(cpk->privatekey); + cpk->privatekey = NULL; + } + if (cpk->chain) { + sk_X509_pop_free(cpk->chain, X509_free); + cpk->chain = NULL; + } +#ifndef OPENSSL_NO_TLSEXT + if (cpk->serverinfo) { + OPENSSL_free(cpk->serverinfo); + cpk->serverinfo = NULL; + cpk->serverinfo_length = 0; + } +#endif + /* Clear all flags apart from explicit sign */ + cpk->valid_flags &= CERT_PKEY_EXPLICIT_SIGN; + } +} + void ssl_cert_free(CERT *c) { int i; @@ -350,16 +484,27 @@ void ssl_cert_free(CERT *c) EC_KEY_free(c->ecdh_tmp); #endif - for (i = 0; i < SSL_PKEY_NUM; i++) { - if (c->pkeys[i].x509 != NULL) - X509_free(c->pkeys[i].x509); - if (c->pkeys[i].privatekey != NULL) - EVP_PKEY_free(c->pkeys[i].privatekey); -#if 0 - if (c->pkeys[i].publickey != NULL) - EVP_PKEY_free(c->pkeys[i].publickey); + ssl_cert_clear_certs(c); + if (c->peer_sigalgs) + OPENSSL_free(c->peer_sigalgs); + if (c->conf_sigalgs) + OPENSSL_free(c->conf_sigalgs); + if (c->client_sigalgs) + OPENSSL_free(c->client_sigalgs); + if (c->shared_sigalgs) + OPENSSL_free(c->shared_sigalgs); + if (c->ctypes) + OPENSSL_free(c->ctypes); + if (c->verify_store) + X509_STORE_free(c->verify_store); + if (c->chain_store) + X509_STORE_free(c->chain_store); + if (c->ciphers_raw) + OPENSSL_free(c->ciphers_raw); +#ifndef OPENSSL_NO_TLSEXT + custom_exts_free(&c->cli_ext); + custom_exts_free(&c->srv_ext); #endif - } OPENSSL_free(c); } @@ -388,6 +533,104 @@ int ssl_cert_inst(CERT **o) return (1); } +int ssl_cert_set0_chain(CERT *c, STACK_OF(X509) *chain) +{ + CERT_PKEY *cpk = c->key; + if (!cpk) + return 0; + if (cpk->chain) + sk_X509_pop_free(cpk->chain, X509_free); + cpk->chain = chain; + return 1; +} + +int ssl_cert_set1_chain(CERT *c, STACK_OF(X509) *chain) +{ + STACK_OF(X509) *dchain; + if (!chain) + return ssl_cert_set0_chain(c, NULL); + dchain = X509_chain_up_ref(chain); + if (!dchain) + return 0; + if (!ssl_cert_set0_chain(c, dchain)) { + sk_X509_pop_free(dchain, X509_free); + return 0; + } + return 1; +} + +int ssl_cert_add0_chain_cert(CERT *c, X509 *x) +{ + CERT_PKEY *cpk = c->key; + if (!cpk) + return 0; + if (!cpk->chain) + cpk->chain = sk_X509_new_null(); + if (!cpk->chain || !sk_X509_push(cpk->chain, x)) + return 0; + return 1; +} + +int ssl_cert_add1_chain_cert(CERT *c, X509 *x) +{ + if (!ssl_cert_add0_chain_cert(c, x)) + return 0; + CRYPTO_add(&x->references, 1, CRYPTO_LOCK_X509); + return 1; +} + +int ssl_cert_select_current(CERT *c, X509 *x) +{ + int i; + if (x == NULL) + return 0; + for (i = 0; i < SSL_PKEY_NUM; i++) { + CERT_PKEY *cpk = c->pkeys + i; + if (cpk->x509 == x && cpk->privatekey) { + c->key = cpk; + return 1; + } + } + + for (i = 0; i < SSL_PKEY_NUM; i++) { + CERT_PKEY *cpk = c->pkeys + i; + if (cpk->privatekey && cpk->x509 && !X509_cmp(cpk->x509, x)) { + c->key = cpk; + return 1; + } + } + return 0; +} + +int ssl_cert_set_current(CERT *c, long op) +{ + int i, idx; + if (!c) + return 0; + if (op == SSL_CERT_SET_FIRST) + idx = 0; + else if (op == SSL_CERT_SET_NEXT) { + idx = (int)(c->key - c->pkeys + 1); + if (idx >= SSL_PKEY_NUM) + return 0; + } else + return 0; + for (i = idx; i < SSL_PKEY_NUM; i++) { + CERT_PKEY *cpk = c->pkeys + i; + if (cpk->x509 && cpk->privatekey) { + c->key = cpk; + return 1; + } + } + return 0; +} + +void ssl_cert_set_cert_cb(CERT *c, int (*cb) (SSL *ssl, void *arg), void *arg) +{ + c->cert_cb = cb; + c->cert_cb_arg = arg; +} + SESS_CERT *ssl_sess_cert_new(void) { SESS_CERT *ret; @@ -466,16 +709,24 @@ int ssl_verify_cert_chain(SSL *s, STACK_OF(X509) *sk) { X509 *x; int i; + X509_STORE *verify_store; X509_STORE_CTX ctx; + if (s->cert->verify_store) + verify_store = s->cert->verify_store; + else + verify_store = s->ctx->cert_store; + if ((sk == NULL) || (sk_X509_num(sk) == 0)) return (0); x = sk_X509_value(sk, 0); - if (!X509_STORE_CTX_init(&ctx, s->ctx->cert_store, x, sk)) { + if (!X509_STORE_CTX_init(&ctx, verify_store, x, sk)) { SSLerr(SSL_F_SSL_VERIFY_CERT_CHAIN, ERR_R_X509_LIB); return (0); } + /* Set suite B flags if needed */ + X509_STORE_CTX_set_flags(&ctx, tls1_suiteb(s)); #if 0 if (SSL_get_verify_depth(s) >= 0) X509_STORE_CTX_set_depth(&ctx, SSL_get_verify_depth(s)); @@ -797,3 +1048,210 @@ int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack, CRYPTO_w_unlock(CRYPTO_LOCK_READDIR); return ret; } + +/* Add a certificate to a BUF_MEM structure */ + +static int ssl_add_cert_to_buf(BUF_MEM *buf, unsigned long *l, X509 *x) +{ + int n; + unsigned char *p; + + n = i2d_X509(x, NULL); + if (!BUF_MEM_grow_clean(buf, (int)(n + (*l) + 3))) { + SSLerr(SSL_F_SSL_ADD_CERT_TO_BUF, ERR_R_BUF_LIB); + return 0; + } + p = (unsigned char *)&(buf->data[*l]); + l2n3(n, p); + i2d_X509(x, &p); + *l += n + 3; + + return 1; +} + +/* Add certificate chain to internal SSL BUF_MEM strcuture */ +int ssl_add_cert_chain(SSL *s, CERT_PKEY *cpk, unsigned long *l) +{ + BUF_MEM *buf = s->init_buf; + int no_chain; + int i; + + X509 *x; + STACK_OF(X509) *extra_certs; + X509_STORE *chain_store; + + if (cpk) + x = cpk->x509; + else + x = NULL; + + if (s->cert->chain_store) + chain_store = s->cert->chain_store; + else + chain_store = s->ctx->cert_store; + + /* + * If we have a certificate specific chain use it, else use parent ctx. + */ + if (cpk && cpk->chain) + extra_certs = cpk->chain; + else + extra_certs = s->ctx->extra_certs; + + if ((s->mode & SSL_MODE_NO_AUTO_CHAIN) || extra_certs) + no_chain = 1; + else + no_chain = 0; + + /* TLSv1 sends a chain with nothing in it, instead of an alert */ + if (!BUF_MEM_grow_clean(buf, 10)) { + SSLerr(SSL_F_SSL_ADD_CERT_CHAIN, ERR_R_BUF_LIB); + return 0; + } + if (x != NULL) { + if (no_chain) { + if (!ssl_add_cert_to_buf(buf, l, x)) + return 0; + } else { + X509_STORE_CTX xs_ctx; + + if (!X509_STORE_CTX_init(&xs_ctx, chain_store, x, NULL)) { + SSLerr(SSL_F_SSL_ADD_CERT_CHAIN, ERR_R_X509_LIB); + return (0); + } + X509_verify_cert(&xs_ctx); + /* Don't leave errors in the queue */ + ERR_clear_error(); + for (i = 0; i < sk_X509_num(xs_ctx.chain); i++) { + x = sk_X509_value(xs_ctx.chain, i); + + if (!ssl_add_cert_to_buf(buf, l, x)) { + X509_STORE_CTX_cleanup(&xs_ctx); + return 0; + } + } + X509_STORE_CTX_cleanup(&xs_ctx); + } + } + for (i = 0; i < sk_X509_num(extra_certs); i++) { + x = sk_X509_value(extra_certs, i); + if (!ssl_add_cert_to_buf(buf, l, x)) + return 0; + } + + return 1; +} + +/* Build a certificate chain for current certificate */ +int ssl_build_cert_chain(CERT *c, X509_STORE *chain_store, int flags) +{ + CERT_PKEY *cpk = c->key; + X509_STORE_CTX xs_ctx; + STACK_OF(X509) *chain = NULL, *untrusted = NULL; + X509 *x; + int i, rv = 0; + unsigned long error; + + if (!cpk->x509) { + SSLerr(SSL_F_SSL_BUILD_CERT_CHAIN, SSL_R_NO_CERTIFICATE_SET); + goto err; + } + /* Rearranging and check the chain: add everything to a store */ + if (flags & SSL_BUILD_CHAIN_FLAG_CHECK) { + chain_store = X509_STORE_new(); + if (!chain_store) + goto err; + for (i = 0; i < sk_X509_num(cpk->chain); i++) { + x = sk_X509_value(cpk->chain, i); + if (!X509_STORE_add_cert(chain_store, x)) { + error = ERR_peek_last_error(); + if (ERR_GET_LIB(error) != ERR_LIB_X509 || + ERR_GET_REASON(error) != + X509_R_CERT_ALREADY_IN_HASH_TABLE) + goto err; + ERR_clear_error(); + } + } + /* Add EE cert too: it might be self signed */ + if (!X509_STORE_add_cert(chain_store, cpk->x509)) { + error = ERR_peek_last_error(); + if (ERR_GET_LIB(error) != ERR_LIB_X509 || + ERR_GET_REASON(error) != X509_R_CERT_ALREADY_IN_HASH_TABLE) + goto err; + ERR_clear_error(); + } + } else { + if (c->chain_store) + chain_store = c->chain_store; + + if (flags & SSL_BUILD_CHAIN_FLAG_UNTRUSTED) + untrusted = cpk->chain; + } + + if (!X509_STORE_CTX_init(&xs_ctx, chain_store, cpk->x509, untrusted)) { + SSLerr(SSL_F_SSL_BUILD_CERT_CHAIN, ERR_R_X509_LIB); + goto err; + } + /* Set suite B flags if needed */ + X509_STORE_CTX_set_flags(&xs_ctx, + c->cert_flags & SSL_CERT_FLAG_SUITEB_128_LOS); + + i = X509_verify_cert(&xs_ctx); + if (i <= 0 && flags & SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR) { + if (flags & SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR) + ERR_clear_error(); + i = 1; + rv = 2; + } + if (i > 0) + chain = X509_STORE_CTX_get1_chain(&xs_ctx); + if (i <= 0) { + SSLerr(SSL_F_SSL_BUILD_CERT_CHAIN, SSL_R_CERTIFICATE_VERIFY_FAILED); + i = X509_STORE_CTX_get_error(&xs_ctx); + ERR_add_error_data(2, "Verify error:", + X509_verify_cert_error_string(i)); + + X509_STORE_CTX_cleanup(&xs_ctx); + goto err; + } + X509_STORE_CTX_cleanup(&xs_ctx); + if (cpk->chain) + sk_X509_pop_free(cpk->chain, X509_free); + /* Remove EE certificate from chain */ + x = sk_X509_shift(chain); + X509_free(x); + if (flags & SSL_BUILD_CHAIN_FLAG_NO_ROOT) { + if (sk_X509_num(chain) > 0) { + /* See if last cert is self signed */ + x = sk_X509_value(chain, sk_X509_num(chain) - 1); + X509_check_purpose(x, -1, 0); + if (x->ex_flags & EXFLAG_SS) { + x = sk_X509_pop(chain); + X509_free(x); + } + } + } + cpk->chain = chain; + if (rv == 0) + rv = 1; + err: + if (flags & SSL_BUILD_CHAIN_FLAG_CHECK) + X509_STORE_free(chain_store); + + return rv; +} + +int ssl_cert_set_cert_store(CERT *c, X509_STORE *store, int chain, int ref) +{ + X509_STORE **pstore; + if (chain) + pstore = &c->chain_store; + else + pstore = &c->verify_store; + if (*pstore) + X509_STORE_free(*pstore); + *pstore = store; + if (ref && store) + CRYPTO_add(&store->references, 1, CRYPTO_LOCK_X509_STORE); + return 1; +} diff --git a/libs/openssl/ssl/ssl_ciph.c b/libs/openssl/ssl/ssl_ciph.c index cac525e8..6957bda7 100644 --- a/libs/openssl/ssl/ssl_ciph.c +++ b/libs/openssl/ssl/ssl_ciph.c @@ -245,13 +245,11 @@ static const SSL_CIPHER cipher_aliases[] = { */ {0, SSL_TXT_kRSA, 0, SSL_kRSA, 0, 0, 0, 0, 0, 0, 0, 0}, - /* no such ciphersuites supported! */ {0, SSL_TXT_kDHr, 0, SSL_kDHr, 0, 0, 0, 0, 0, 0, 0, 0}, - /* no such ciphersuites supported! */ {0, SSL_TXT_kDHd, 0, SSL_kDHd, 0, 0, 0, 0, 0, 0, 0, 0}, - /* no such ciphersuites supported! */ {0, SSL_TXT_kDH, 0, SSL_kDHr | SSL_kDHd, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, SSL_TXT_kEDH, 0, SSL_kEDH, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, SSL_TXT_kEDH, 0, SSL_kEDH, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, SSL_TXT_kDHE, 0, SSL_kEDH, 0, 0, 0, 0, 0, 0, 0, 0}, {0, SSL_TXT_DH, 0, SSL_kDHr | SSL_kDHd | SSL_kEDH, 0, 0, 0, 0, 0, 0, 0, 0}, @@ -261,6 +259,7 @@ static const SSL_CIPHER cipher_aliases[] = { {0, SSL_TXT_kECDHe, 0, SSL_kECDHe, 0, 0, 0, 0, 0, 0, 0, 0}, {0, SSL_TXT_kECDH, 0, SSL_kECDHr | SSL_kECDHe, 0, 0, 0, 0, 0, 0, 0, 0}, {0, SSL_TXT_kEECDH, 0, SSL_kEECDH, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, SSL_TXT_kECDHE, 0, SSL_kEECDH, 0, 0, 0, 0, 0, 0, 0, 0}, {0, SSL_TXT_ECDH, 0, SSL_kECDHr | SSL_kECDHe | SSL_kEECDH, 0, 0, 0, 0, 0, 0, 0, 0}, @@ -287,7 +286,9 @@ static const SSL_CIPHER cipher_aliases[] = { /* aliases combining key exchange and server authentication */ {0, SSL_TXT_EDH, 0, SSL_kEDH, ~SSL_aNULL, 0, 0, 0, 0, 0, 0, 0}, + {0, SSL_TXT_DHE, 0, SSL_kEDH, ~SSL_aNULL, 0, 0, 0, 0, 0, 0, 0}, {0, SSL_TXT_EECDH, 0, SSL_kEECDH, ~SSL_aNULL, 0, 0, 0, 0, 0, 0, 0}, + {0, SSL_TXT_ECDHE, 0, SSL_kEECDH, ~SSL_aNULL, 0, 0, 0, 0, 0, 0, 0}, {0, SSL_TXT_NULL, 0, 0, 0, SSL_eNULL, 0, 0, 0, 0, 0, 0}, {0, SSL_TXT_KRB5, 0, SSL_kKRB5, SSL_aKRB5, 0, 0, 0, 0, 0, 0, 0}, {0, SSL_TXT_RSA, 0, SSL_kRSA, SSL_aRSA, 0, 0, 0, 0, 0, 0, 0}, @@ -343,6 +344,25 @@ static const SSL_CIPHER cipher_aliases[] = { {0, SSL_TXT_HIGH, 0, 0, 0, 0, 0, 0, SSL_HIGH, 0, 0, 0}, /* FIPS 140-2 approved ciphersuite */ {0, SSL_TXT_FIPS, 0, 0, 0, ~SSL_eNULL, 0, 0, SSL_FIPS, 0, 0, 0}, + /* "DHE-" aliases to "EDH-" labels (for forward compatibility) */ + {0, SSL3_TXT_DHE_DSS_DES_40_CBC_SHA, 0, + SSL_kDHE, SSL_aDSS, SSL_DES, SSL_SHA1, SSL_SSLV3, SSL_EXPORT | SSL_EXP40, + 0, 0, 0,}, + {0, SSL3_TXT_DHE_DSS_DES_64_CBC_SHA, 0, + SSL_kDHE, SSL_aDSS, SSL_DES, SSL_SHA1, SSL_SSLV3, SSL_NOT_EXP | SSL_LOW, + 0, 0, 0,}, + {0, SSL3_TXT_DHE_DSS_DES_192_CBC3_SHA, 0, + SSL_kDHE, SSL_aDSS, SSL_3DES, SSL_SHA1, SSL_SSLV3, + SSL_NOT_EXP | SSL_HIGH | SSL_FIPS, 0, 0, 0,}, + {0, SSL3_TXT_DHE_RSA_DES_40_CBC_SHA, 0, + SSL_kDHE, SSL_aRSA, SSL_DES, SSL_SHA1, SSL_SSLV3, SSL_EXPORT | SSL_EXP40, + 0, 0, 0,}, + {0, SSL3_TXT_DHE_RSA_DES_64_CBC_SHA, 0, + SSL_kDHE, SSL_aRSA, SSL_DES, SSL_SHA1, SSL_SSLV3, SSL_NOT_EXP | SSL_LOW, + 0, 0, 0,}, + {0, SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA, 0, + SSL_kDHE, SSL_aRSA, SSL_3DES, SSL_SHA1, SSL_SSLV3, + SSL_NOT_EXP | SSL_HIGH | SSL_FIPS, 0, 0, 0,}, }; /* @@ -356,10 +376,11 @@ static int get_optional_pkey_id(const char *pkey_name) const EVP_PKEY_ASN1_METHOD *ameth; int pkey_id = 0; ameth = EVP_PKEY_asn1_find_str(NULL, pkey_name, -1); - if (ameth) { - EVP_PKEY_asn1_get0_info(&pkey_id, NULL, NULL, NULL, NULL, ameth); + if (ameth && EVP_PKEY_asn1_get0_info(&pkey_id, NULL, NULL, NULL, NULL, + ameth) > 0) { + return pkey_id; } - return pkey_id; + return 0; } #else @@ -371,7 +392,9 @@ static int get_optional_pkey_id(const char *pkey_name) int pkey_id = 0; ameth = EVP_PKEY_asn1_find_str(&tmpeng, pkey_name, -1); if (ameth) { - EVP_PKEY_asn1_get0_info(&pkey_id, NULL, NULL, NULL, NULL, ameth); + if (EVP_PKEY_asn1_get0_info(&pkey_id, NULL, NULL, NULL, NULL, + ameth) <= 0) + pkey_id = 0; } if (tmpeng) ENGINE_finish(tmpeng); @@ -638,6 +661,14 @@ int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc, c->algorithm_mac == SSL_SHA1 && (evp = EVP_get_cipherbyname("AES-256-CBC-HMAC-SHA1"))) *enc = evp, *md = NULL; + else if (c->algorithm_enc == SSL_AES128 && + c->algorithm_mac == SSL_SHA256 && + (evp = EVP_get_cipherbyname("AES-128-CBC-HMAC-SHA256"))) + *enc = evp, *md = NULL; + else if (c->algorithm_enc == SSL_AES256 && + c->algorithm_mac == SSL_SHA256 && + (evp = EVP_get_cipherbyname("AES-256-CBC-HMAC-SHA256"))) + *enc = evp, *md = NULL; return (1); } else return (0); @@ -710,8 +741,6 @@ static void ssl_cipher_get_disabled(unsigned long *mkey, unsigned long *auth, #ifdef OPENSSL_NO_DSA *auth |= SSL_aDSS; #endif - *mkey |= SSL_kDHr | SSL_kDHd; /* no such ciphersuites supported! */ - *auth |= SSL_aDH; #ifdef OPENSSL_NO_DH *mkey |= SSL_kDHr | SSL_kDHd | SSL_kEDH; *auth |= SSL_aDH; @@ -996,6 +1025,10 @@ static void ssl_cipher_apply_rule(unsigned long cipher_id, cp->name, cp->algorithm_mkey, cp->algorithm_auth, cp->algorithm_enc, cp->algorithm_mac, cp->algorithm_ssl, cp->algo_strength); +#endif +#ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL + if (cipher_id && cipher_id != cp->id) + continue; #endif if (algo_strength == SSL_EXP_MASK && SSL_C_IS_EXPORT(cp)) goto ok; @@ -1369,10 +1402,72 @@ static int ssl_cipher_process_rulestr(const char *rule_str, return (retval); } +#ifndef OPENSSL_NO_EC +static int check_suiteb_cipher_list(const SSL_METHOD *meth, CERT *c, + const char **prule_str) +{ + unsigned int suiteb_flags = 0, suiteb_comb2 = 0; + if (strncmp(*prule_str, "SUITEB128ONLY", 13) == 0) { + suiteb_flags = SSL_CERT_FLAG_SUITEB_128_LOS_ONLY; + } else if (strncmp(*prule_str, "SUITEB128C2", 11) == 0) { + suiteb_comb2 = 1; + suiteb_flags = SSL_CERT_FLAG_SUITEB_128_LOS; + } else if (strncmp(*prule_str, "SUITEB128", 9) == 0) { + suiteb_flags = SSL_CERT_FLAG_SUITEB_128_LOS; + } else if (strncmp(*prule_str, "SUITEB192", 9) == 0) { + suiteb_flags = SSL_CERT_FLAG_SUITEB_192_LOS; + } + + if (suiteb_flags) { + c->cert_flags &= ~SSL_CERT_FLAG_SUITEB_128_LOS; + c->cert_flags |= suiteb_flags; + } else + suiteb_flags = c->cert_flags & SSL_CERT_FLAG_SUITEB_128_LOS; + + if (!suiteb_flags) + return 1; + /* Check version: if TLS 1.2 ciphers allowed we can use Suite B */ + + if (!(meth->ssl3_enc->enc_flags & SSL_ENC_FLAG_TLS1_2_CIPHERS)) { + if (meth->ssl3_enc->enc_flags & SSL_ENC_FLAG_DTLS) + SSLerr(SSL_F_CHECK_SUITEB_CIPHER_LIST, + SSL_R_ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE); + else + SSLerr(SSL_F_CHECK_SUITEB_CIPHER_LIST, + SSL_R_ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE); + return 0; + } +# ifndef OPENSSL_NO_ECDH + switch (suiteb_flags) { + case SSL_CERT_FLAG_SUITEB_128_LOS: + if (suiteb_comb2) + *prule_str = "ECDHE-ECDSA-AES256-GCM-SHA384"; + else + *prule_str = + "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384"; + break; + case SSL_CERT_FLAG_SUITEB_128_LOS_ONLY: + *prule_str = "ECDHE-ECDSA-AES128-GCM-SHA256"; + break; + case SSL_CERT_FLAG_SUITEB_192_LOS: + *prule_str = "ECDHE-ECDSA-AES256-GCM-SHA384"; + break; + } + /* Set auto ECDH parameter determination */ + c->ecdh_tmp_auto = 1; + return 1; +# else + SSLerr(SSL_F_CHECK_SUITEB_CIPHER_LIST, + SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE); + return 0; +# endif +} +#endif + STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *ssl_method, STACK_OF(SSL_CIPHER) **cipher_list, STACK_OF(SSL_CIPHER) **cipher_list_by_id, - const char *rule_str) + const char *rule_str, CERT *c) { int ok, num_of_ciphers, num_of_alias_max, num_of_group_aliases; unsigned long disabled_mkey, disabled_auth, disabled_enc, disabled_mac, @@ -1387,6 +1482,10 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *ssl_method, STACK */ if (rule_str == NULL || cipher_list == NULL || cipher_list_by_id == NULL) return NULL; +#ifndef OPENSSL_NO_EC + if (!check_suiteb_cipher_list(ssl_method, c, &rule_str)) + return NULL; +#endif /* * To reduce the work to do we only want to process the compiled @@ -1854,6 +1953,26 @@ STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void) return (ssl_comp_methods); } +STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) + *meths) +{ + STACK_OF(SSL_COMP) *old_meths = ssl_comp_methods; + ssl_comp_methods = meths; + return old_meths; +} + +static void cmeth_free(SSL_COMP *cm) +{ + OPENSSL_free(cm); +} + +void SSL_COMP_free_compression_methods(void) +{ + STACK_OF(SSL_COMP) *old_meths = ssl_comp_methods; + ssl_comp_methods = NULL; + sk_SSL_COMP_pop_free(old_meths, cmeth_free); +} + int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm) { SSL_COMP *comp; @@ -1904,5 +2023,55 @@ const char *SSL_COMP_get_name(const COMP_METHOD *comp) return comp->name; return NULL; } - #endif +/* For a cipher return the index corresponding to the certificate type */ +int ssl_cipher_get_cert_index(const SSL_CIPHER *c) +{ + unsigned long alg_k, alg_a; + + alg_k = c->algorithm_mkey; + alg_a = c->algorithm_auth; + + if (alg_k & (SSL_kECDHr | SSL_kECDHe)) { + /* + * we don't need to look at SSL_kEECDH since no certificate is needed + * for anon ECDH and for authenticated EECDH, the check for the auth + * algorithm will set i correctly NOTE: For ECDH-RSA, we need an ECC + * not an RSA cert but for EECDH-RSA we need an RSA cert. Placing the + * checks for SSL_kECDH before RSA checks ensures the correct cert is + * chosen. + */ + return SSL_PKEY_ECC; + } else if (alg_a & SSL_aECDSA) + return SSL_PKEY_ECC; + else if (alg_k & SSL_kDHr) + return SSL_PKEY_DH_RSA; + else if (alg_k & SSL_kDHd) + return SSL_PKEY_DH_DSA; + else if (alg_a & SSL_aDSS) + return SSL_PKEY_DSA_SIGN; + else if (alg_a & SSL_aRSA) + return SSL_PKEY_RSA_ENC; + else if (alg_a & SSL_aKRB5) + /* VRS something else here? */ + return -1; + else if (alg_a & SSL_aGOST94) + return SSL_PKEY_GOST94; + else if (alg_a & SSL_aGOST01) + return SSL_PKEY_GOST01; + return -1; +} + +const SSL_CIPHER *ssl_get_cipher_by_char(SSL *ssl, const unsigned char *ptr) +{ + const SSL_CIPHER *c; + c = ssl->method->get_cipher_by_char(ptr); + if (c == NULL || c->valid == 0) + return NULL; + return c; +} + +const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr) +{ + return ssl->method->get_cipher_by_char(ptr); +} diff --git a/libs/openssl/ssl/ssl_conf.c b/libs/openssl/ssl/ssl_conf.c new file mode 100644 index 00000000..5478840d --- /dev/null +++ b/libs/openssl/ssl/ssl_conf.c @@ -0,0 +1,683 @@ +/* + * ! \file ssl/ssl_conf.c \brief SSL configuration functions + */ +/* ==================================================================== + * Copyright (c) 2012 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +#ifdef REF_CHECK +# include +#endif +#include +#include "ssl_locl.h" +#include +#include +#ifndef OPENSSL_NO_DH +# include +#endif + +/* + * structure holding name tables. This is used for pemitted elements in lists + * such as TLSv1 and single command line switches such as no_tls1 + */ + +typedef struct { + const char *name; + int namelen; + unsigned int name_flags; + unsigned long option_value; +} ssl_flag_tbl; + +/* Sense of name is inverted e.g. "TLSv1" will clear SSL_OP_NO_TLSv1 */ +#define SSL_TFLAG_INV 0x1 +/* Flags refers to cert_flags not options */ +#define SSL_TFLAG_CERT 0x2 +/* Option can only be used for clients */ +#define SSL_TFLAG_CLIENT SSL_CONF_FLAG_CLIENT +/* Option can only be used for servers */ +#define SSL_TFLAG_SERVER SSL_CONF_FLAG_SERVER +#define SSL_TFLAG_BOTH (SSL_TFLAG_CLIENT|SSL_TFLAG_SERVER) + +#define SSL_FLAG_TBL(str, flag) \ + {str, (int)(sizeof(str) - 1), SSL_TFLAG_BOTH, flag} +#define SSL_FLAG_TBL_SRV(str, flag) \ + {str, (int)(sizeof(str) - 1), SSL_TFLAG_SERVER, flag} +#define SSL_FLAG_TBL_CLI(str, flag) \ + {str, (int)(sizeof(str) - 1), SSL_TFLAG_CLIENT, flag} +#define SSL_FLAG_TBL_INV(str, flag) \ + {str, (int)(sizeof(str) - 1), SSL_TFLAG_INV|SSL_TFLAG_BOTH, flag} +#define SSL_FLAG_TBL_SRV_INV(str, flag) \ + {str, (int)(sizeof(str) - 1), SSL_TFLAG_INV|SSL_TFLAG_SERVER, flag} +#define SSL_FLAG_TBL_CERT(str, flag) \ + {str, (int)(sizeof(str) - 1), SSL_TFLAG_CERT|SSL_TFLAG_BOTH, flag} + +/* + * Opaque structure containing SSL configuration context. + */ + +struct ssl_conf_ctx_st { + /* + * Various flags indicating (among other things) which options we will + * recognise. + */ + unsigned int flags; + /* Prefix and length of commands */ + char *prefix; + size_t prefixlen; + /* SSL_CTX or SSL structure to perform operations on */ + SSL_CTX *ctx; + SSL *ssl; + /* Pointer to SSL or SSL_CTX options field or NULL if none */ + unsigned long *poptions; + /* Pointer to SSL or SSL_CTX cert_flags or NULL if none */ + unsigned int *pcert_flags; + /* Current flag table being worked on */ + const ssl_flag_tbl *tbl; + /* Size of table */ + size_t ntbl; +}; + +static int ssl_match_option(SSL_CONF_CTX *cctx, const ssl_flag_tbl *tbl, + const char *name, int namelen, int onoff) +{ + /* If name not relevant for context skip */ + if (!(cctx->flags & tbl->name_flags & SSL_TFLAG_BOTH)) + return 0; + if (namelen == -1) { + if (strcmp(tbl->name, name)) + return 0; + } else if (tbl->namelen != namelen + || strncasecmp(tbl->name, name, namelen)) + return 0; + if (cctx->poptions) { + if (tbl->name_flags & SSL_TFLAG_INV) + onoff ^= 1; + if (tbl->name_flags & SSL_TFLAG_CERT) { + if (onoff) + *cctx->pcert_flags |= tbl->option_value; + else + *cctx->pcert_flags &= ~tbl->option_value; + } else { + if (onoff) + *cctx->poptions |= tbl->option_value; + else + *cctx->poptions &= ~tbl->option_value; + } + } + return 1; +} + +static int ssl_set_option_list(const char *elem, int len, void *usr) +{ + SSL_CONF_CTX *cctx = usr; + size_t i; + const ssl_flag_tbl *tbl; + int onoff = 1; + /* + * len == -1 indicates not being called in list context, just for single + * command line switches, so don't allow +, -. + */ + if (elem == NULL) + return 0; + if (len != -1) { + if (*elem == '+') { + elem++; + len--; + onoff = 1; + } else if (*elem == '-') { + elem++; + len--; + onoff = 0; + } + } + for (i = 0, tbl = cctx->tbl; i < cctx->ntbl; i++, tbl++) { + if (ssl_match_option(cctx, tbl, elem, len, onoff)) + return 1; + } + return 0; +} + +/* Single command line switches with no argument e.g. -no_ssl3 */ +static int ctrl_str_option(SSL_CONF_CTX *cctx, const char *cmd) +{ + static const ssl_flag_tbl ssl_option_single[] = { + SSL_FLAG_TBL("no_ssl2", SSL_OP_NO_SSLv2), + SSL_FLAG_TBL("no_ssl3", SSL_OP_NO_SSLv3), + SSL_FLAG_TBL("no_tls1", SSL_OP_NO_TLSv1), + SSL_FLAG_TBL("no_tls1_1", SSL_OP_NO_TLSv1_1), + SSL_FLAG_TBL("no_tls1_2", SSL_OP_NO_TLSv1_2), + SSL_FLAG_TBL("bugs", SSL_OP_ALL), + SSL_FLAG_TBL("no_comp", SSL_OP_NO_COMPRESSION), + SSL_FLAG_TBL_SRV("ecdh_single", SSL_OP_SINGLE_ECDH_USE), +#ifndef OPENSSL_NO_TLSEXT + SSL_FLAG_TBL("no_ticket", SSL_OP_NO_TICKET), +#endif + SSL_FLAG_TBL_SRV("serverpref", SSL_OP_CIPHER_SERVER_PREFERENCE), + SSL_FLAG_TBL("legacy_renegotiation", + SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION), + SSL_FLAG_TBL_SRV("legacy_server_connect", + SSL_OP_LEGACY_SERVER_CONNECT), + SSL_FLAG_TBL_SRV("no_resumption_on_reneg", + SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION), + SSL_FLAG_TBL_SRV_INV("no_legacy_server_connect", + SSL_OP_LEGACY_SERVER_CONNECT), + SSL_FLAG_TBL_CERT("strict", SSL_CERT_FLAG_TLS_STRICT), +#ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL + SSL_FLAG_TBL_CERT("debug_broken_protocol", + SSL_CERT_FLAG_BROKEN_PROTOCOL), +#endif + }; + cctx->tbl = ssl_option_single; + cctx->ntbl = sizeof(ssl_option_single) / sizeof(ssl_flag_tbl); + return ssl_set_option_list(cmd, -1, cctx); +} + +/* Set supported signature algorithms */ +static int cmd_SignatureAlgorithms(SSL_CONF_CTX *cctx, const char *value) +{ + int rv; + if (cctx->ssl) + rv = SSL_set1_sigalgs_list(cctx->ssl, value); + /* NB: ctx == NULL performs syntax checking only */ + else + rv = SSL_CTX_set1_sigalgs_list(cctx->ctx, value); + return rv > 0; +} + +/* Set supported client signature algorithms */ +static int cmd_ClientSignatureAlgorithms(SSL_CONF_CTX *cctx, + const char *value) +{ + int rv; + if (cctx->ssl) + rv = SSL_set1_client_sigalgs_list(cctx->ssl, value); + /* NB: ctx == NULL performs syntax checking only */ + else + rv = SSL_CTX_set1_client_sigalgs_list(cctx->ctx, value); + return rv > 0; +} + +static int cmd_Curves(SSL_CONF_CTX *cctx, const char *value) +{ + int rv; + if (cctx->ssl) + rv = SSL_set1_curves_list(cctx->ssl, value); + /* NB: ctx == NULL performs syntax checking only */ + else + rv = SSL_CTX_set1_curves_list(cctx->ctx, value); + return rv > 0; +} + +#ifndef OPENSSL_NO_ECDH +/* ECDH temporary parameters */ +static int cmd_ECDHParameters(SSL_CONF_CTX *cctx, const char *value) +{ + int onoff = -1, rv = 1; + if (!(cctx->flags & SSL_CONF_FLAG_SERVER)) + return -2; + if (cctx->flags & SSL_CONF_FLAG_FILE) { + if (*value == '+') { + onoff = 1; + value++; + } + if (*value == '-') { + onoff = 0; + value++; + } + if (!strcasecmp(value, "automatic")) { + if (onoff == -1) + onoff = 1; + } else if (onoff != -1) + return 0; + } else if (cctx->flags & SSL_CONF_FLAG_CMDLINE) { + if (!strcmp(value, "auto")) + onoff = 1; + } + + if (onoff != -1) { + if (cctx->ctx) + rv = SSL_CTX_set_ecdh_auto(cctx->ctx, onoff); + else if (cctx->ssl) + rv = SSL_set_ecdh_auto(cctx->ssl, onoff); + } else { + EC_KEY *ecdh; + int nid; + nid = EC_curve_nist2nid(value); + if (nid == NID_undef) + nid = OBJ_sn2nid(value); + if (nid == 0) + return 0; + ecdh = EC_KEY_new_by_curve_name(nid); + if (!ecdh) + return 0; + if (cctx->ctx) + rv = SSL_CTX_set_tmp_ecdh(cctx->ctx, ecdh); + else if (cctx->ssl) + rv = SSL_set_tmp_ecdh(cctx->ssl, ecdh); + EC_KEY_free(ecdh); + } + + return rv > 0; +} +#endif +static int cmd_CipherString(SSL_CONF_CTX *cctx, const char *value) +{ + int rv = 1; + if (cctx->ctx) + rv = SSL_CTX_set_cipher_list(cctx->ctx, value); + if (cctx->ssl) + rv = SSL_set_cipher_list(cctx->ssl, value); + return rv > 0; +} + +static int cmd_Protocol(SSL_CONF_CTX *cctx, const char *value) +{ + static const ssl_flag_tbl ssl_protocol_list[] = { + SSL_FLAG_TBL_INV("ALL", SSL_OP_NO_SSL_MASK), + SSL_FLAG_TBL_INV("SSLv2", SSL_OP_NO_SSLv2), + SSL_FLAG_TBL_INV("SSLv3", SSL_OP_NO_SSLv3), + SSL_FLAG_TBL_INV("TLSv1", SSL_OP_NO_TLSv1), + SSL_FLAG_TBL_INV("TLSv1.1", SSL_OP_NO_TLSv1_1), + SSL_FLAG_TBL_INV("TLSv1.2", SSL_OP_NO_TLSv1_2) + }; + if (!(cctx->flags & SSL_CONF_FLAG_FILE)) + return -2; + cctx->tbl = ssl_protocol_list; + cctx->ntbl = sizeof(ssl_protocol_list) / sizeof(ssl_flag_tbl); + return CONF_parse_list(value, ',', 1, ssl_set_option_list, cctx); +} + +static int cmd_Options(SSL_CONF_CTX *cctx, const char *value) +{ + static const ssl_flag_tbl ssl_option_list[] = { + SSL_FLAG_TBL_INV("SessionTicket", SSL_OP_NO_TICKET), + SSL_FLAG_TBL_INV("EmptyFragments", + SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS), + SSL_FLAG_TBL("Bugs", SSL_OP_ALL), + SSL_FLAG_TBL_INV("Compression", SSL_OP_NO_COMPRESSION), + SSL_FLAG_TBL_SRV("ServerPreference", SSL_OP_CIPHER_SERVER_PREFERENCE), + SSL_FLAG_TBL_SRV("NoResumptionOnRenegotiation", + SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION), + SSL_FLAG_TBL_SRV("DHSingle", SSL_OP_SINGLE_DH_USE), + SSL_FLAG_TBL_SRV("ECDHSingle", SSL_OP_SINGLE_ECDH_USE), + SSL_FLAG_TBL("UnsafeLegacyRenegotiation", + SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION), + }; + if (!(cctx->flags & SSL_CONF_FLAG_FILE)) + return -2; + if (value == NULL) + return -3; + cctx->tbl = ssl_option_list; + cctx->ntbl = sizeof(ssl_option_list) / sizeof(ssl_flag_tbl); + return CONF_parse_list(value, ',', 1, ssl_set_option_list, cctx); +} + +static int cmd_Certificate(SSL_CONF_CTX *cctx, const char *value) +{ + int rv = 1; + if (!(cctx->flags & SSL_CONF_FLAG_CERTIFICATE)) + return -2; + if (cctx->ctx) + rv = SSL_CTX_use_certificate_chain_file(cctx->ctx, value); + if (cctx->ssl) + rv = SSL_use_certificate_file(cctx->ssl, value, SSL_FILETYPE_PEM); + return rv > 0; +} + +static int cmd_PrivateKey(SSL_CONF_CTX *cctx, const char *value) +{ + int rv = 1; + if (!(cctx->flags & SSL_CONF_FLAG_CERTIFICATE)) + return -2; + if (cctx->ctx) + rv = SSL_CTX_use_PrivateKey_file(cctx->ctx, value, SSL_FILETYPE_PEM); + if (cctx->ssl) + rv = SSL_use_PrivateKey_file(cctx->ssl, value, SSL_FILETYPE_PEM); + return rv > 0; +} + +static int cmd_ServerInfoFile(SSL_CONF_CTX *cctx, const char *value) +{ + int rv = 1; + if (!(cctx->flags & SSL_CONF_FLAG_CERTIFICATE)) + return -2; + if (!(cctx->flags & SSL_CONF_FLAG_SERVER)) + return -2; + if (cctx->ctx) + rv = SSL_CTX_use_serverinfo_file(cctx->ctx, value); + return rv > 0; +} + +#ifndef OPENSSL_NO_DH +static int cmd_DHParameters(SSL_CONF_CTX *cctx, const char *value) +{ + int rv = 0; + DH *dh = NULL; + BIO *in = NULL; + if (!(cctx->flags & SSL_CONF_FLAG_CERTIFICATE)) + return -2; + if (cctx->ctx || cctx->ssl) { + in = BIO_new(BIO_s_file_internal()); + if (!in) + goto end; + if (BIO_read_filename(in, value) <= 0) + goto end; + dh = PEM_read_bio_DHparams(in, NULL, NULL, NULL); + if (!dh) + goto end; + } else + return 1; + if (cctx->ctx) + rv = SSL_CTX_set_tmp_dh(cctx->ctx, dh); + if (cctx->ssl) + rv = SSL_set_tmp_dh(cctx->ssl, dh); + end: + if (dh) + DH_free(dh); + if (in) + BIO_free(in); + return rv > 0; +} +#endif +typedef struct { + int (*cmd) (SSL_CONF_CTX *cctx, const char *value); + const char *str_file; + const char *str_cmdline; + unsigned int value_type; +} ssl_conf_cmd_tbl; + +/* Table of supported parameters */ + +#define SSL_CONF_CMD(name, cmdopt, type) \ + {cmd_##name, #name, cmdopt, type} + +#define SSL_CONF_CMD_STRING(name, cmdopt) \ + SSL_CONF_CMD(name, cmdopt, SSL_CONF_TYPE_STRING) + +static const ssl_conf_cmd_tbl ssl_conf_cmds[] = { + SSL_CONF_CMD_STRING(SignatureAlgorithms, "sigalgs"), + SSL_CONF_CMD_STRING(ClientSignatureAlgorithms, "client_sigalgs"), + SSL_CONF_CMD_STRING(Curves, "curves"), +#ifndef OPENSSL_NO_ECDH + SSL_CONF_CMD_STRING(ECDHParameters, "named_curve"), +#endif + SSL_CONF_CMD_STRING(CipherString, "cipher"), + SSL_CONF_CMD_STRING(Protocol, NULL), + SSL_CONF_CMD_STRING(Options, NULL), + SSL_CONF_CMD(Certificate, "cert", SSL_CONF_TYPE_FILE), + SSL_CONF_CMD(PrivateKey, "key", SSL_CONF_TYPE_FILE), + SSL_CONF_CMD(ServerInfoFile, NULL, SSL_CONF_TYPE_FILE), +#ifndef OPENSSL_NO_DH + SSL_CONF_CMD(DHParameters, "dhparam", SSL_CONF_TYPE_FILE) +#endif +}; + +static int ssl_conf_cmd_skip_prefix(SSL_CONF_CTX *cctx, const char **pcmd) +{ + if (!pcmd || !*pcmd) + return 0; + /* If a prefix is set, check and skip */ + if (cctx->prefix) { + if (strlen(*pcmd) <= cctx->prefixlen) + return 0; + if (cctx->flags & SSL_CONF_FLAG_CMDLINE && + strncmp(*pcmd, cctx->prefix, cctx->prefixlen)) + return 0; + if (cctx->flags & SSL_CONF_FLAG_FILE && + strncasecmp(*pcmd, cctx->prefix, cctx->prefixlen)) + return 0; + *pcmd += cctx->prefixlen; + } else if (cctx->flags & SSL_CONF_FLAG_CMDLINE) { + if (**pcmd != '-' || !(*pcmd)[1]) + return 0; + *pcmd += 1; + } + return 1; +} + +static const ssl_conf_cmd_tbl *ssl_conf_cmd_lookup(SSL_CONF_CTX *cctx, + const char *cmd) +{ + const ssl_conf_cmd_tbl *t; + size_t i; + if (cmd == NULL) + return NULL; + + /* Look for matching parameter name in table */ + for (i = 0, t = ssl_conf_cmds; + i < sizeof(ssl_conf_cmds) / sizeof(ssl_conf_cmd_tbl); i++, t++) { + if (cctx->flags & SSL_CONF_FLAG_CMDLINE) { + if (t->str_cmdline && !strcmp(t->str_cmdline, cmd)) + return t; + } + if (cctx->flags & SSL_CONF_FLAG_FILE) { + if (t->str_file && !strcasecmp(t->str_file, cmd)) + return t; + } + } + return NULL; +} + +int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value) +{ + const ssl_conf_cmd_tbl *runcmd; + if (cmd == NULL) { + SSLerr(SSL_F_SSL_CONF_CMD, SSL_R_INVALID_NULL_CMD_NAME); + return 0; + } + + if (!ssl_conf_cmd_skip_prefix(cctx, &cmd)) + return -2; + + runcmd = ssl_conf_cmd_lookup(cctx, cmd); + + if (runcmd) { + int rv; + if (value == NULL) + return -3; + rv = runcmd->cmd(cctx, value); + if (rv > 0) + return 2; + if (rv == -2) + return -2; + if (cctx->flags & SSL_CONF_FLAG_SHOW_ERRORS) { + SSLerr(SSL_F_SSL_CONF_CMD, SSL_R_BAD_VALUE); + ERR_add_error_data(4, "cmd=", cmd, ", value=", value); + } + return 0; + } + + if (cctx->flags & SSL_CONF_FLAG_CMDLINE) { + if (ctrl_str_option(cctx, cmd)) + return 1; + } + + if (cctx->flags & SSL_CONF_FLAG_SHOW_ERRORS) { + SSLerr(SSL_F_SSL_CONF_CMD, SSL_R_UNKNOWN_CMD_NAME); + ERR_add_error_data(2, "cmd=", cmd); + } + + return -2; +} + +int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv) +{ + int rv; + const char *arg = NULL, *argn; + if (pargc && *pargc == 0) + return 0; + if (!pargc || *pargc > 0) + arg = **pargv; + if (arg == NULL) + return 0; + if (!pargc || *pargc > 1) + argn = (*pargv)[1]; + else + argn = NULL; + cctx->flags &= ~SSL_CONF_FLAG_FILE; + cctx->flags |= SSL_CONF_FLAG_CMDLINE; + rv = SSL_CONF_cmd(cctx, arg, argn); + if (rv > 0) { + /* Success: update pargc, pargv */ + (*pargv) += rv; + if (pargc) + (*pargc) -= rv; + return rv; + } + /* Unknown switch: indicate no arguments processed */ + if (rv == -2) + return 0; + /* Some error occurred processing command, return fatal error */ + if (rv == 0) + return -1; + return rv; +} + +int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd) +{ + if (ssl_conf_cmd_skip_prefix(cctx, &cmd)) { + const ssl_conf_cmd_tbl *runcmd; + runcmd = ssl_conf_cmd_lookup(cctx, cmd); + if (runcmd) + return runcmd->value_type; + } + return SSL_CONF_TYPE_UNKNOWN; +} + +SSL_CONF_CTX *SSL_CONF_CTX_new(void) +{ + SSL_CONF_CTX *ret; + ret = OPENSSL_malloc(sizeof(SSL_CONF_CTX)); + if (ret) { + ret->flags = 0; + ret->prefix = NULL; + ret->prefixlen = 0; + ret->ssl = NULL; + ret->ctx = NULL; + ret->poptions = NULL; + ret->pcert_flags = NULL; + ret->tbl = NULL; + ret->ntbl = 0; + } + return ret; +} + +int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx) +{ + return 1; +} + +void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx) +{ + if (cctx) { + if (cctx->prefix) + OPENSSL_free(cctx->prefix); + OPENSSL_free(cctx); + } +} + +unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags) +{ + cctx->flags |= flags; + return cctx->flags; +} + +unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, unsigned int flags) +{ + cctx->flags &= ~flags; + return cctx->flags; +} + +int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre) +{ + char *tmp = NULL; + if (pre) { + tmp = BUF_strdup(pre); + if (tmp == NULL) + return 0; + } + if (cctx->prefix) + OPENSSL_free(cctx->prefix); + cctx->prefix = tmp; + if (tmp) + cctx->prefixlen = strlen(tmp); + else + cctx->prefixlen = 0; + return 1; +} + +void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl) +{ + cctx->ssl = ssl; + cctx->ctx = NULL; + if (ssl) { + cctx->poptions = &ssl->options; + cctx->pcert_flags = &ssl->cert->cert_flags; + } else { + cctx->poptions = NULL; + cctx->pcert_flags = NULL; + } +} + +void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx) +{ + cctx->ctx = ctx; + cctx->ssl = NULL; + if (ctx) { + cctx->poptions = &ctx->options; + cctx->pcert_flags = &ctx->cert->cert_flags; + } else { + cctx->poptions = NULL; + cctx->pcert_flags = NULL; + } +} diff --git a/libs/openssl/ssl/ssl_err.c b/libs/openssl/ssl/ssl_err.c index 88621b72..6d1366f2 100644 --- a/libs/openssl/ssl/ssl_err.c +++ b/libs/openssl/ssl/ssl_err.c @@ -1,6 +1,6 @@ /* ssl/ssl_err.c */ /* ==================================================================== - * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. + * Copyright (c) 1999-2015 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -70,55 +70,56 @@ # define ERR_REASON(reason) ERR_PACK(ERR_LIB_SSL,0,reason) static ERR_STRING_DATA SSL_str_functs[] = { + {ERR_FUNC(SSL_F_CHECK_SUITEB_CIPHER_LIST), "CHECK_SUITEB_CIPHER_LIST"}, {ERR_FUNC(SSL_F_CLIENT_CERTIFICATE), "CLIENT_CERTIFICATE"}, {ERR_FUNC(SSL_F_CLIENT_FINISHED), "CLIENT_FINISHED"}, {ERR_FUNC(SSL_F_CLIENT_HELLO), "CLIENT_HELLO"}, {ERR_FUNC(SSL_F_CLIENT_MASTER_KEY), "CLIENT_MASTER_KEY"}, {ERR_FUNC(SSL_F_D2I_SSL_SESSION), "d2i_SSL_SESSION"}, - {ERR_FUNC(SSL_F_DO_DTLS1_WRITE), "DO_DTLS1_WRITE"}, + {ERR_FUNC(SSL_F_DO_DTLS1_WRITE), "do_dtls1_write"}, {ERR_FUNC(SSL_F_DO_SSL3_WRITE), "DO_SSL3_WRITE"}, - {ERR_FUNC(SSL_F_DTLS1_ACCEPT), "DTLS1_ACCEPT"}, + {ERR_FUNC(SSL_F_DTLS1_ACCEPT), "dtls1_accept"}, {ERR_FUNC(SSL_F_DTLS1_ADD_CERT_TO_BUF), "DTLS1_ADD_CERT_TO_BUF"}, {ERR_FUNC(SSL_F_DTLS1_BUFFER_RECORD), "DTLS1_BUFFER_RECORD"}, - {ERR_FUNC(SSL_F_DTLS1_CHECK_TIMEOUT_NUM), "DTLS1_CHECK_TIMEOUT_NUM"}, - {ERR_FUNC(SSL_F_DTLS1_CLIENT_HELLO), "DTLS1_CLIENT_HELLO"}, - {ERR_FUNC(SSL_F_DTLS1_CONNECT), "DTLS1_CONNECT"}, - {ERR_FUNC(SSL_F_DTLS1_ENC), "DTLS1_ENC"}, + {ERR_FUNC(SSL_F_DTLS1_CHECK_TIMEOUT_NUM), "dtls1_check_timeout_num"}, + {ERR_FUNC(SSL_F_DTLS1_CLIENT_HELLO), "dtls1_client_hello"}, + {ERR_FUNC(SSL_F_DTLS1_CONNECT), "dtls1_connect"}, {ERR_FUNC(SSL_F_DTLS1_GET_HELLO_VERIFY), "DTLS1_GET_HELLO_VERIFY"}, - {ERR_FUNC(SSL_F_DTLS1_GET_MESSAGE), "DTLS1_GET_MESSAGE"}, + {ERR_FUNC(SSL_F_DTLS1_GET_MESSAGE), "dtls1_get_message"}, {ERR_FUNC(SSL_F_DTLS1_GET_MESSAGE_FRAGMENT), "DTLS1_GET_MESSAGE_FRAGMENT"}, - {ERR_FUNC(SSL_F_DTLS1_GET_RECORD), "DTLS1_GET_RECORD"}, - {ERR_FUNC(SSL_F_DTLS1_HANDLE_TIMEOUT), "DTLS1_HANDLE_TIMEOUT"}, - {ERR_FUNC(SSL_F_DTLS1_HEARTBEAT), "DTLS1_HEARTBEAT"}, - {ERR_FUNC(SSL_F_DTLS1_OUTPUT_CERT_CHAIN), "DTLS1_OUTPUT_CERT_CHAIN"}, + {ERR_FUNC(SSL_F_DTLS1_GET_RECORD), "dtls1_get_record"}, + {ERR_FUNC(SSL_F_DTLS1_HANDLE_TIMEOUT), "dtls1_handle_timeout"}, + {ERR_FUNC(SSL_F_DTLS1_HEARTBEAT), "dtls1_heartbeat"}, + {ERR_FUNC(SSL_F_DTLS1_OUTPUT_CERT_CHAIN), "dtls1_output_cert_chain"}, {ERR_FUNC(SSL_F_DTLS1_PREPROCESS_FRAGMENT), "DTLS1_PREPROCESS_FRAGMENT"}, {ERR_FUNC(SSL_F_DTLS1_PROCESS_OUT_OF_SEQ_MESSAGE), "DTLS1_PROCESS_OUT_OF_SEQ_MESSAGE"}, {ERR_FUNC(SSL_F_DTLS1_PROCESS_RECORD), "DTLS1_PROCESS_RECORD"}, - {ERR_FUNC(SSL_F_DTLS1_READ_BYTES), "DTLS1_READ_BYTES"}, - {ERR_FUNC(SSL_F_DTLS1_READ_FAILED), "DTLS1_READ_FAILED"}, + {ERR_FUNC(SSL_F_DTLS1_READ_BYTES), "dtls1_read_bytes"}, + {ERR_FUNC(SSL_F_DTLS1_READ_FAILED), "dtls1_read_failed"}, {ERR_FUNC(SSL_F_DTLS1_SEND_CERTIFICATE_REQUEST), - "DTLS1_SEND_CERTIFICATE_REQUEST"}, + "dtls1_send_certificate_request"}, {ERR_FUNC(SSL_F_DTLS1_SEND_CLIENT_CERTIFICATE), - "DTLS1_SEND_CLIENT_CERTIFICATE"}, + "dtls1_send_client_certificate"}, {ERR_FUNC(SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE), - "DTLS1_SEND_CLIENT_KEY_EXCHANGE"}, - {ERR_FUNC(SSL_F_DTLS1_SEND_CLIENT_VERIFY), "DTLS1_SEND_CLIENT_VERIFY"}, + "dtls1_send_client_key_exchange"}, + {ERR_FUNC(SSL_F_DTLS1_SEND_CLIENT_VERIFY), "dtls1_send_client_verify"}, {ERR_FUNC(SSL_F_DTLS1_SEND_HELLO_VERIFY_REQUEST), "DTLS1_SEND_HELLO_VERIFY_REQUEST"}, {ERR_FUNC(SSL_F_DTLS1_SEND_SERVER_CERTIFICATE), - "DTLS1_SEND_SERVER_CERTIFICATE"}, - {ERR_FUNC(SSL_F_DTLS1_SEND_SERVER_HELLO), "DTLS1_SEND_SERVER_HELLO"}, + "dtls1_send_server_certificate"}, + {ERR_FUNC(SSL_F_DTLS1_SEND_SERVER_HELLO), "dtls1_send_server_hello"}, {ERR_FUNC(SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE), - "DTLS1_SEND_SERVER_KEY_EXCHANGE"}, + "dtls1_send_server_key_exchange"}, {ERR_FUNC(SSL_F_DTLS1_WRITE_APP_DATA_BYTES), - "DTLS1_WRITE_APP_DATA_BYTES"}, + "dtls1_write_app_data_bytes"}, {ERR_FUNC(SSL_F_GET_CLIENT_FINISHED), "GET_CLIENT_FINISHED"}, {ERR_FUNC(SSL_F_GET_CLIENT_HELLO), "GET_CLIENT_HELLO"}, {ERR_FUNC(SSL_F_GET_CLIENT_MASTER_KEY), "GET_CLIENT_MASTER_KEY"}, {ERR_FUNC(SSL_F_GET_SERVER_FINISHED), "GET_SERVER_FINISHED"}, {ERR_FUNC(SSL_F_GET_SERVER_HELLO), "GET_SERVER_HELLO"}, + {ERR_FUNC(SSL_F_GET_SERVER_STATIC_DH_KEY), "GET_SERVER_STATIC_DH_KEY"}, {ERR_FUNC(SSL_F_GET_SERVER_VERIFY), "GET_SERVER_VERIFY"}, {ERR_FUNC(SSL_F_I2D_SSL_SESSION), "i2d_SSL_SESSION"}, {ERR_FUNC(SSL_F_READ_N), "READ_N"}, @@ -126,119 +127,125 @@ static ERR_STRING_DATA SSL_str_functs[] = { {ERR_FUNC(SSL_F_SERVER_FINISH), "SERVER_FINISH"}, {ERR_FUNC(SSL_F_SERVER_HELLO), "SERVER_HELLO"}, {ERR_FUNC(SSL_F_SERVER_VERIFY), "SERVER_VERIFY"}, - {ERR_FUNC(SSL_F_SSL23_ACCEPT), "SSL23_ACCEPT"}, + {ERR_FUNC(SSL_F_SSL23_ACCEPT), "ssl23_accept"}, {ERR_FUNC(SSL_F_SSL23_CLIENT_HELLO), "SSL23_CLIENT_HELLO"}, - {ERR_FUNC(SSL_F_SSL23_CONNECT), "SSL23_CONNECT"}, + {ERR_FUNC(SSL_F_SSL23_CONNECT), "ssl23_connect"}, {ERR_FUNC(SSL_F_SSL23_GET_CLIENT_HELLO), "SSL23_GET_CLIENT_HELLO"}, {ERR_FUNC(SSL_F_SSL23_GET_SERVER_HELLO), "SSL23_GET_SERVER_HELLO"}, - {ERR_FUNC(SSL_F_SSL23_PEEK), "SSL23_PEEK"}, - {ERR_FUNC(SSL_F_SSL23_READ), "SSL23_READ"}, - {ERR_FUNC(SSL_F_SSL23_WRITE), "SSL23_WRITE"}, - {ERR_FUNC(SSL_F_SSL2_ACCEPT), "SSL2_ACCEPT"}, - {ERR_FUNC(SSL_F_SSL2_CONNECT), "SSL2_CONNECT"}, - {ERR_FUNC(SSL_F_SSL2_ENC_INIT), "SSL2_ENC_INIT"}, + {ERR_FUNC(SSL_F_SSL23_PEEK), "ssl23_peek"}, + {ERR_FUNC(SSL_F_SSL23_READ), "ssl23_read"}, + {ERR_FUNC(SSL_F_SSL23_WRITE), "ssl23_write"}, + {ERR_FUNC(SSL_F_SSL2_ACCEPT), "ssl2_accept"}, + {ERR_FUNC(SSL_F_SSL2_CONNECT), "ssl2_connect"}, + {ERR_FUNC(SSL_F_SSL2_ENC_INIT), "ssl2_enc_init"}, {ERR_FUNC(SSL_F_SSL2_GENERATE_KEY_MATERIAL), - "SSL2_GENERATE_KEY_MATERIAL"}, - {ERR_FUNC(SSL_F_SSL2_PEEK), "SSL2_PEEK"}, - {ERR_FUNC(SSL_F_SSL2_READ), "SSL2_READ"}, + "ssl2_generate_key_material"}, + {ERR_FUNC(SSL_F_SSL2_PEEK), "ssl2_peek"}, + {ERR_FUNC(SSL_F_SSL2_READ), "ssl2_read"}, {ERR_FUNC(SSL_F_SSL2_READ_INTERNAL), "SSL2_READ_INTERNAL"}, - {ERR_FUNC(SSL_F_SSL2_SET_CERTIFICATE), "SSL2_SET_CERTIFICATE"}, - {ERR_FUNC(SSL_F_SSL2_WRITE), "SSL2_WRITE"}, - {ERR_FUNC(SSL_F_SSL3_ACCEPT), "SSL3_ACCEPT"}, + {ERR_FUNC(SSL_F_SSL2_SET_CERTIFICATE), "ssl2_set_certificate"}, + {ERR_FUNC(SSL_F_SSL2_WRITE), "ssl2_write"}, + {ERR_FUNC(SSL_F_SSL3_ACCEPT), "ssl3_accept"}, {ERR_FUNC(SSL_F_SSL3_ADD_CERT_TO_BUF), "SSL3_ADD_CERT_TO_BUF"}, - {ERR_FUNC(SSL_F_SSL3_CALLBACK_CTRL), "SSL3_CALLBACK_CTRL"}, - {ERR_FUNC(SSL_F_SSL3_CHANGE_CIPHER_STATE), "SSL3_CHANGE_CIPHER_STATE"}, + {ERR_FUNC(SSL_F_SSL3_CALLBACK_CTRL), "ssl3_callback_ctrl"}, + {ERR_FUNC(SSL_F_SSL3_CHANGE_CIPHER_STATE), "ssl3_change_cipher_state"}, {ERR_FUNC(SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM), - "SSL3_CHECK_CERT_AND_ALGORITHM"}, - {ERR_FUNC(SSL_F_SSL3_CHECK_CLIENT_HELLO), "SSL3_CHECK_CLIENT_HELLO"}, - {ERR_FUNC(SSL_F_SSL3_CLIENT_HELLO), "SSL3_CLIENT_HELLO"}, - {ERR_FUNC(SSL_F_SSL3_CONNECT), "SSL3_CONNECT"}, - {ERR_FUNC(SSL_F_SSL3_CTRL), "SSL3_CTRL"}, - {ERR_FUNC(SSL_F_SSL3_CTX_CTRL), "SSL3_CTX_CTRL"}, + "ssl3_check_cert_and_algorithm"}, + {ERR_FUNC(SSL_F_SSL3_CHECK_CLIENT_HELLO), "ssl3_check_client_hello"}, + {ERR_FUNC(SSL_F_SSL3_CHECK_FINISHED), "SSL3_CHECK_FINISHED"}, + {ERR_FUNC(SSL_F_SSL3_CLIENT_HELLO), "ssl3_client_hello"}, + {ERR_FUNC(SSL_F_SSL3_CONNECT), "ssl3_connect"}, + {ERR_FUNC(SSL_F_SSL3_CTRL), "ssl3_ctrl"}, + {ERR_FUNC(SSL_F_SSL3_CTX_CTRL), "ssl3_ctx_ctrl"}, {ERR_FUNC(SSL_F_SSL3_DIGEST_CACHED_RECORDS), - "SSL3_DIGEST_CACHED_RECORDS"}, + "ssl3_digest_cached_records"}, {ERR_FUNC(SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC), - "SSL3_DO_CHANGE_CIPHER_SPEC"}, - {ERR_FUNC(SSL_F_SSL3_ENC), "SSL3_ENC"}, - {ERR_FUNC(SSL_F_SSL3_CHECK_FINISHED), "SSL3_CHECK_FINISHED"}, + "ssl3_do_change_cipher_spec"}, + {ERR_FUNC(SSL_F_SSL3_ENC), "ssl3_enc"}, {ERR_FUNC(SSL_F_SSL3_GENERATE_KEY_BLOCK), "SSL3_GENERATE_KEY_BLOCK"}, + {ERR_FUNC(SSL_F_SSL3_GENERATE_MASTER_SECRET), + "ssl3_generate_master_secret"}, {ERR_FUNC(SSL_F_SSL3_GET_CERTIFICATE_REQUEST), - "SSL3_GET_CERTIFICATE_REQUEST"}, - {ERR_FUNC(SSL_F_SSL3_GET_CERT_STATUS), "SSL3_GET_CERT_STATUS"}, - {ERR_FUNC(SSL_F_SSL3_GET_CERT_VERIFY), "SSL3_GET_CERT_VERIFY"}, + "ssl3_get_certificate_request"}, + {ERR_FUNC(SSL_F_SSL3_GET_CERT_STATUS), "ssl3_get_cert_status"}, + {ERR_FUNC(SSL_F_SSL3_GET_CERT_VERIFY), "ssl3_get_cert_verify"}, {ERR_FUNC(SSL_F_SSL3_GET_CLIENT_CERTIFICATE), - "SSL3_GET_CLIENT_CERTIFICATE"}, - {ERR_FUNC(SSL_F_SSL3_GET_CLIENT_HELLO), "SSL3_GET_CLIENT_HELLO"}, + "ssl3_get_client_certificate"}, + {ERR_FUNC(SSL_F_SSL3_GET_CLIENT_HELLO), "ssl3_get_client_hello"}, {ERR_FUNC(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE), - "SSL3_GET_CLIENT_KEY_EXCHANGE"}, - {ERR_FUNC(SSL_F_SSL3_GET_FINISHED), "SSL3_GET_FINISHED"}, - {ERR_FUNC(SSL_F_SSL3_GET_KEY_EXCHANGE), "SSL3_GET_KEY_EXCHANGE"}, - {ERR_FUNC(SSL_F_SSL3_GET_MESSAGE), "SSL3_GET_MESSAGE"}, + "ssl3_get_client_key_exchange"}, + {ERR_FUNC(SSL_F_SSL3_GET_FINISHED), "ssl3_get_finished"}, + {ERR_FUNC(SSL_F_SSL3_GET_KEY_EXCHANGE), "ssl3_get_key_exchange"}, + {ERR_FUNC(SSL_F_SSL3_GET_MESSAGE), "ssl3_get_message"}, {ERR_FUNC(SSL_F_SSL3_GET_NEW_SESSION_TICKET), - "SSL3_GET_NEW_SESSION_TICKET"}, - {ERR_FUNC(SSL_F_SSL3_GET_NEXT_PROTO), "SSL3_GET_NEXT_PROTO"}, + "ssl3_get_new_session_ticket"}, + {ERR_FUNC(SSL_F_SSL3_GET_NEXT_PROTO), "ssl3_get_next_proto"}, {ERR_FUNC(SSL_F_SSL3_GET_RECORD), "SSL3_GET_RECORD"}, {ERR_FUNC(SSL_F_SSL3_GET_SERVER_CERTIFICATE), - "SSL3_GET_SERVER_CERTIFICATE"}, - {ERR_FUNC(SSL_F_SSL3_GET_SERVER_DONE), "SSL3_GET_SERVER_DONE"}, - {ERR_FUNC(SSL_F_SSL3_GET_SERVER_HELLO), "SSL3_GET_SERVER_HELLO"}, + "ssl3_get_server_certificate"}, + {ERR_FUNC(SSL_F_SSL3_GET_SERVER_DONE), "ssl3_get_server_done"}, + {ERR_FUNC(SSL_F_SSL3_GET_SERVER_HELLO), "ssl3_get_server_hello"}, {ERR_FUNC(SSL_F_SSL3_HANDSHAKE_MAC), "ssl3_handshake_mac"}, {ERR_FUNC(SSL_F_SSL3_NEW_SESSION_TICKET), "SSL3_NEW_SESSION_TICKET"}, - {ERR_FUNC(SSL_F_SSL3_OUTPUT_CERT_CHAIN), "SSL3_OUTPUT_CERT_CHAIN"}, - {ERR_FUNC(SSL_F_SSL3_PEEK), "SSL3_PEEK"}, - {ERR_FUNC(SSL_F_SSL3_READ_BYTES), "SSL3_READ_BYTES"}, - {ERR_FUNC(SSL_F_SSL3_READ_N), "SSL3_READ_N"}, + {ERR_FUNC(SSL_F_SSL3_OUTPUT_CERT_CHAIN), "ssl3_output_cert_chain"}, + {ERR_FUNC(SSL_F_SSL3_PEEK), "ssl3_peek"}, + {ERR_FUNC(SSL_F_SSL3_READ_BYTES), "ssl3_read_bytes"}, + {ERR_FUNC(SSL_F_SSL3_READ_N), "ssl3_read_n"}, {ERR_FUNC(SSL_F_SSL3_SEND_CERTIFICATE_REQUEST), - "SSL3_SEND_CERTIFICATE_REQUEST"}, + "ssl3_send_certificate_request"}, {ERR_FUNC(SSL_F_SSL3_SEND_CLIENT_CERTIFICATE), - "SSL3_SEND_CLIENT_CERTIFICATE"}, + "ssl3_send_client_certificate"}, {ERR_FUNC(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE), - "SSL3_SEND_CLIENT_KEY_EXCHANGE"}, - {ERR_FUNC(SSL_F_SSL3_SEND_CLIENT_VERIFY), "SSL3_SEND_CLIENT_VERIFY"}, + "ssl3_send_client_key_exchange"}, + {ERR_FUNC(SSL_F_SSL3_SEND_CLIENT_VERIFY), "ssl3_send_client_verify"}, {ERR_FUNC(SSL_F_SSL3_SEND_SERVER_CERTIFICATE), - "SSL3_SEND_SERVER_CERTIFICATE"}, - {ERR_FUNC(SSL_F_SSL3_SEND_SERVER_HELLO), "SSL3_SEND_SERVER_HELLO"}, + "ssl3_send_server_certificate"}, + {ERR_FUNC(SSL_F_SSL3_SEND_SERVER_HELLO), "ssl3_send_server_hello"}, {ERR_FUNC(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE), - "SSL3_SEND_SERVER_KEY_EXCHANGE"}, - {ERR_FUNC(SSL_F_SSL3_SETUP_KEY_BLOCK), "SSL3_SETUP_KEY_BLOCK"}, - {ERR_FUNC(SSL_F_SSL3_SETUP_READ_BUFFER), "SSL3_SETUP_READ_BUFFER"}, - {ERR_FUNC(SSL_F_SSL3_SETUP_WRITE_BUFFER), "SSL3_SETUP_WRITE_BUFFER"}, - {ERR_FUNC(SSL_F_SSL3_WRITE_BYTES), "SSL3_WRITE_BYTES"}, - {ERR_FUNC(SSL_F_SSL3_WRITE_PENDING), "SSL3_WRITE_PENDING"}, + "ssl3_send_server_key_exchange"}, + {ERR_FUNC(SSL_F_SSL3_SETUP_KEY_BLOCK), "ssl3_setup_key_block"}, + {ERR_FUNC(SSL_F_SSL3_SETUP_READ_BUFFER), "ssl3_setup_read_buffer"}, + {ERR_FUNC(SSL_F_SSL3_SETUP_WRITE_BUFFER), "ssl3_setup_write_buffer"}, + {ERR_FUNC(SSL_F_SSL3_WRITE_BYTES), "ssl3_write_bytes"}, + {ERR_FUNC(SSL_F_SSL3_WRITE_PENDING), "ssl3_write_pending"}, + {ERR_FUNC(SSL_F_SSL_ADD_CERT_CHAIN), "ssl_add_cert_chain"}, + {ERR_FUNC(SSL_F_SSL_ADD_CERT_TO_BUF), "SSL_ADD_CERT_TO_BUF"}, {ERR_FUNC(SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT), - "SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT"}, + "ssl_add_clienthello_renegotiate_ext"}, {ERR_FUNC(SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT), - "SSL_ADD_CLIENTHELLO_TLSEXT"}, + "ssl_add_clienthello_tlsext"}, {ERR_FUNC(SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT), - "SSL_ADD_CLIENTHELLO_USE_SRTP_EXT"}, + "ssl_add_clienthello_use_srtp_ext"}, {ERR_FUNC(SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK), "SSL_add_dir_cert_subjects_to_stack"}, {ERR_FUNC(SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK), "SSL_add_file_cert_subjects_to_stack"}, {ERR_FUNC(SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT), - "SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT"}, + "ssl_add_serverhello_renegotiate_ext"}, {ERR_FUNC(SSL_F_SSL_ADD_SERVERHELLO_TLSEXT), - "SSL_ADD_SERVERHELLO_TLSEXT"}, + "ssl_add_serverhello_tlsext"}, {ERR_FUNC(SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT), - "SSL_ADD_SERVERHELLO_USE_SRTP_EXT"}, - {ERR_FUNC(SSL_F_SSL_BAD_METHOD), "SSL_BAD_METHOD"}, - {ERR_FUNC(SSL_F_SSL_BYTES_TO_CIPHER_LIST), "SSL_BYTES_TO_CIPHER_LIST"}, - {ERR_FUNC(SSL_F_SSL_CERT_DUP), "SSL_CERT_DUP"}, - {ERR_FUNC(SSL_F_SSL_CERT_INST), "SSL_CERT_INST"}, + "ssl_add_serverhello_use_srtp_ext"}, + {ERR_FUNC(SSL_F_SSL_BAD_METHOD), "ssl_bad_method"}, + {ERR_FUNC(SSL_F_SSL_BUILD_CERT_CHAIN), "ssl_build_cert_chain"}, + {ERR_FUNC(SSL_F_SSL_BYTES_TO_CIPHER_LIST), "ssl_bytes_to_cipher_list"}, + {ERR_FUNC(SSL_F_SSL_CERT_DUP), "ssl_cert_dup"}, + {ERR_FUNC(SSL_F_SSL_CERT_INST), "ssl_cert_inst"}, {ERR_FUNC(SSL_F_SSL_CERT_INSTANTIATE), "SSL_CERT_INSTANTIATE"}, - {ERR_FUNC(SSL_F_SSL_CERT_NEW), "SSL_CERT_NEW"}, + {ERR_FUNC(SSL_F_SSL_CERT_NEW), "ssl_cert_new"}, {ERR_FUNC(SSL_F_SSL_CHECK_PRIVATE_KEY), "SSL_check_private_key"}, {ERR_FUNC(SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT), "SSL_CHECK_SERVERHELLO_TLSEXT"}, {ERR_FUNC(SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG), - "SSL_CHECK_SRVR_ECC_CERT_AND_ALG"}, + "ssl_check_srvr_ecc_cert_and_alg"}, {ERR_FUNC(SSL_F_SSL_CIPHER_PROCESS_RULESTR), "SSL_CIPHER_PROCESS_RULESTR"}, {ERR_FUNC(SSL_F_SSL_CIPHER_STRENGTH_SORT), "SSL_CIPHER_STRENGTH_SORT"}, {ERR_FUNC(SSL_F_SSL_CLEAR), "SSL_clear"}, {ERR_FUNC(SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD), "SSL_COMP_add_compression_method"}, - {ERR_FUNC(SSL_F_SSL_CREATE_CIPHER_LIST), "SSL_CREATE_CIPHER_LIST"}, + {ERR_FUNC(SSL_F_SSL_CONF_CMD), "SSL_CONF_cmd"}, + {ERR_FUNC(SSL_F_SSL_CREATE_CIPHER_LIST), "ssl_create_cipher_list"}, {ERR_FUNC(SSL_F_SSL_CTRL), "SSL_ctrl"}, {ERR_FUNC(SSL_F_SSL_CTX_CHECK_PRIVATE_KEY), "SSL_CTX_check_private_key"}, {ERR_FUNC(SSL_F_SSL_CTX_MAKE_PROFILES), "SSL_CTX_MAKE_PROFILES"}, @@ -270,41 +277,49 @@ static ERR_STRING_DATA SSL_str_functs[] = { "SSL_CTX_use_RSAPrivateKey_ASN1"}, {ERR_FUNC(SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE), "SSL_CTX_use_RSAPrivateKey_file"}, + {ERR_FUNC(SSL_F_SSL_CTX_USE_SERVERINFO), "SSL_CTX_use_serverinfo"}, + {ERR_FUNC(SSL_F_SSL_CTX_USE_SERVERINFO_FILE), + "SSL_CTX_use_serverinfo_file"}, {ERR_FUNC(SSL_F_SSL_DO_HANDSHAKE), "SSL_do_handshake"}, - {ERR_FUNC(SSL_F_SSL_GET_NEW_SESSION), "SSL_GET_NEW_SESSION"}, - {ERR_FUNC(SSL_F_SSL_GET_PREV_SESSION), "SSL_GET_PREV_SESSION"}, + {ERR_FUNC(SSL_F_SSL_GET_NEW_SESSION), "ssl_get_new_session"}, + {ERR_FUNC(SSL_F_SSL_GET_PREV_SESSION), "ssl_get_prev_session"}, + {ERR_FUNC(SSL_F_SSL_GET_SERVER_CERT_INDEX), "SSL_GET_SERVER_CERT_INDEX"}, {ERR_FUNC(SSL_F_SSL_GET_SERVER_SEND_CERT), "SSL_GET_SERVER_SEND_CERT"}, - {ERR_FUNC(SSL_F_SSL_GET_SERVER_SEND_PKEY), "SSL_GET_SERVER_SEND_PKEY"}, - {ERR_FUNC(SSL_F_SSL_GET_SIGN_PKEY), "SSL_GET_SIGN_PKEY"}, - {ERR_FUNC(SSL_F_SSL_INIT_WBIO_BUFFER), "SSL_INIT_WBIO_BUFFER"}, + {ERR_FUNC(SSL_F_SSL_GET_SERVER_SEND_PKEY), "ssl_get_server_send_pkey"}, + {ERR_FUNC(SSL_F_SSL_GET_SIGN_PKEY), "ssl_get_sign_pkey"}, + {ERR_FUNC(SSL_F_SSL_INIT_WBIO_BUFFER), "ssl_init_wbio_buffer"}, {ERR_FUNC(SSL_F_SSL_LOAD_CLIENT_CA_FILE), "SSL_load_client_CA_file"}, {ERR_FUNC(SSL_F_SSL_NEW), "SSL_new"}, {ERR_FUNC(SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT), - "SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT"}, + "ssl_parse_clienthello_renegotiate_ext"}, {ERR_FUNC(SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT), - "SSL_PARSE_CLIENTHELLO_TLSEXT"}, + "ssl_parse_clienthello_tlsext"}, {ERR_FUNC(SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT), - "SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT"}, + "ssl_parse_clienthello_use_srtp_ext"}, {ERR_FUNC(SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT), - "SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT"}, + "ssl_parse_serverhello_renegotiate_ext"}, {ERR_FUNC(SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT), - "SSL_PARSE_SERVERHELLO_TLSEXT"}, + "ssl_parse_serverhello_tlsext"}, {ERR_FUNC(SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT), - "SSL_PARSE_SERVERHELLO_USE_SRTP_EXT"}, + "ssl_parse_serverhello_use_srtp_ext"}, {ERR_FUNC(SSL_F_SSL_PEEK), "SSL_peek"}, {ERR_FUNC(SSL_F_SSL_PREPARE_CLIENTHELLO_TLSEXT), - "SSL_PREPARE_CLIENTHELLO_TLSEXT"}, + "ssl_prepare_clienthello_tlsext"}, {ERR_FUNC(SSL_F_SSL_PREPARE_SERVERHELLO_TLSEXT), - "SSL_PREPARE_SERVERHELLO_TLSEXT"}, + "ssl_prepare_serverhello_tlsext"}, {ERR_FUNC(SSL_F_SSL_READ), "SSL_read"}, {ERR_FUNC(SSL_F_SSL_RSA_PRIVATE_DECRYPT), "SSL_RSA_PRIVATE_DECRYPT"}, {ERR_FUNC(SSL_F_SSL_RSA_PUBLIC_ENCRYPT), "SSL_RSA_PUBLIC_ENCRYPT"}, + {ERR_FUNC(SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT), + "SSL_SCAN_CLIENTHELLO_TLSEXT"}, + {ERR_FUNC(SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT), + "SSL_SCAN_SERVERHELLO_TLSEXT"}, {ERR_FUNC(SSL_F_SSL_SESSION_DUP), "ssl_session_dup"}, {ERR_FUNC(SSL_F_SSL_SESSION_NEW), "SSL_SESSION_new"}, {ERR_FUNC(SSL_F_SSL_SESSION_PRINT_FP), "SSL_SESSION_print_fp"}, {ERR_FUNC(SSL_F_SSL_SESSION_SET1_ID_CONTEXT), "SSL_SESSION_set1_id_context"}, - {ERR_FUNC(SSL_F_SSL_SESS_CERT_NEW), "SSL_SESS_CERT_NEW"}, + {ERR_FUNC(SSL_F_SSL_SESS_CERT_NEW), "ssl_sess_cert_new"}, {ERR_FUNC(SSL_F_SSL_SET_CERT), "SSL_SET_CERT"}, {ERR_FUNC(SSL_F_SSL_SET_CIPHER_LIST), "SSL_set_cipher_list"}, {ERR_FUNC(SSL_F_SSL_SET_FD), "SSL_set_fd"}, @@ -321,10 +336,10 @@ static ERR_STRING_DATA SSL_str_functs[] = { {ERR_FUNC(SSL_F_SSL_SHUTDOWN), "SSL_shutdown"}, {ERR_FUNC(SSL_F_SSL_SRP_CTX_INIT), "SSL_SRP_CTX_init"}, {ERR_FUNC(SSL_F_SSL_UNDEFINED_CONST_FUNCTION), - "SSL_UNDEFINED_CONST_FUNCTION"}, - {ERR_FUNC(SSL_F_SSL_UNDEFINED_FUNCTION), "SSL_UNDEFINED_FUNCTION"}, + "ssl_undefined_const_function"}, + {ERR_FUNC(SSL_F_SSL_UNDEFINED_FUNCTION), "ssl_undefined_function"}, {ERR_FUNC(SSL_F_SSL_UNDEFINED_VOID_FUNCTION), - "SSL_UNDEFINED_VOID_FUNCTION"}, + "ssl_undefined_void_function"}, {ERR_FUNC(SSL_F_SSL_USE_CERTIFICATE), "SSL_use_certificate"}, {ERR_FUNC(SSL_F_SSL_USE_CERTIFICATE_ASN1), "SSL_use_certificate_ASN1"}, {ERR_FUNC(SSL_F_SSL_USE_CERTIFICATE_FILE), "SSL_use_certificate_file"}, @@ -337,22 +352,25 @@ static ERR_STRING_DATA SSL_str_functs[] = { "SSL_use_RSAPrivateKey_ASN1"}, {ERR_FUNC(SSL_F_SSL_USE_RSAPRIVATEKEY_FILE), "SSL_use_RSAPrivateKey_file"}, - {ERR_FUNC(SSL_F_SSL_VERIFY_CERT_CHAIN), "SSL_VERIFY_CERT_CHAIN"}, + {ERR_FUNC(SSL_F_SSL_VERIFY_CERT_CHAIN), "ssl_verify_cert_chain"}, {ERR_FUNC(SSL_F_SSL_WRITE), "SSL_write"}, + {ERR_FUNC(SSL_F_TLS12_CHECK_PEER_SIGALG), "tls12_check_peer_sigalg"}, {ERR_FUNC(SSL_F_TLS1_CERT_VERIFY_MAC), "tls1_cert_verify_mac"}, - {ERR_FUNC(SSL_F_TLS1_CHANGE_CIPHER_STATE), "TLS1_CHANGE_CIPHER_STATE"}, + {ERR_FUNC(SSL_F_TLS1_CHANGE_CIPHER_STATE), "tls1_change_cipher_state"}, {ERR_FUNC(SSL_F_TLS1_CHECK_SERVERHELLO_TLSEXT), "TLS1_CHECK_SERVERHELLO_TLSEXT"}, - {ERR_FUNC(SSL_F_TLS1_ENC), "TLS1_ENC"}, + {ERR_FUNC(SSL_F_TLS1_ENC), "tls1_enc"}, {ERR_FUNC(SSL_F_TLS1_EXPORT_KEYING_MATERIAL), - "TLS1_EXPORT_KEYING_MATERIAL"}, - {ERR_FUNC(SSL_F_TLS1_HEARTBEAT), "SSL_F_TLS1_HEARTBEAT"}, + "tls1_export_keying_material"}, + {ERR_FUNC(SSL_F_TLS1_GET_CURVELIST), "TLS1_GET_CURVELIST"}, + {ERR_FUNC(SSL_F_TLS1_HEARTBEAT), "tls1_heartbeat"}, {ERR_FUNC(SSL_F_TLS1_PREPARE_CLIENTHELLO_TLSEXT), "TLS1_PREPARE_CLIENTHELLO_TLSEXT"}, {ERR_FUNC(SSL_F_TLS1_PREPARE_SERVERHELLO_TLSEXT), "TLS1_PREPARE_SERVERHELLO_TLSEXT"}, {ERR_FUNC(SSL_F_TLS1_PRF), "tls1_prf"}, - {ERR_FUNC(SSL_F_TLS1_SETUP_KEY_BLOCK), "TLS1_SETUP_KEY_BLOCK"}, + {ERR_FUNC(SSL_F_TLS1_SETUP_KEY_BLOCK), "tls1_setup_key_block"}, + {ERR_FUNC(SSL_F_TLS1_SET_SERVER_SIGALGS), "tls1_set_server_sigalgs"}, {ERR_FUNC(SSL_F_WRITE_PENDING), "WRITE_PENDING"}, {0, NULL} }; @@ -365,12 +383,16 @@ static ERR_STRING_DATA SSL_str_reasons[] = { {ERR_REASON(SSL_R_BAD_AUTHENTICATION_TYPE), "bad authentication type"}, {ERR_REASON(SSL_R_BAD_CHANGE_CIPHER_SPEC), "bad change cipher spec"}, {ERR_REASON(SSL_R_BAD_CHECKSUM), "bad checksum"}, + {ERR_REASON(SSL_R_BAD_DATA), "bad data"}, {ERR_REASON(SSL_R_BAD_DATA_RETURNED_BY_CALLBACK), "bad data returned by callback"}, {ERR_REASON(SSL_R_BAD_DECOMPRESSION), "bad decompression"}, {ERR_REASON(SSL_R_BAD_DH_G_LENGTH), "bad dh g length"}, + {ERR_REASON(SSL_R_BAD_DH_G_VALUE), "bad dh g value"}, {ERR_REASON(SSL_R_BAD_DH_PUB_KEY_LENGTH), "bad dh pub key length"}, + {ERR_REASON(SSL_R_BAD_DH_PUB_KEY_VALUE), "bad dh pub key value"}, {ERR_REASON(SSL_R_BAD_DH_P_LENGTH), "bad dh p length"}, + {ERR_REASON(SSL_R_BAD_DH_P_VALUE), "bad dh p value"}, {ERR_REASON(SSL_R_BAD_DIGEST_LENGTH), "bad digest length"}, {ERR_REASON(SSL_R_BAD_DSA_SIGNATURE), "bad dsa signature"}, {ERR_REASON(SSL_R_BAD_ECC_CERT), "bad ecc cert"}, @@ -407,6 +429,7 @@ static ERR_STRING_DATA SSL_str_reasons[] = { {ERR_REASON(SSL_R_BAD_SSL_SESSION_ID_LENGTH), "bad ssl session id length"}, {ERR_REASON(SSL_R_BAD_STATE), "bad state"}, + {ERR_REASON(SSL_R_BAD_VALUE), "bad value"}, {ERR_REASON(SSL_R_BAD_WRITE_RETRY), "bad write retry"}, {ERR_REASON(SSL_R_BIO_NOT_SET), "bio not set"}, {ERR_REASON(SSL_R_BLOCK_CIPHER_PAD_IS_WRONG), @@ -417,6 +440,7 @@ static ERR_STRING_DATA SSL_str_reasons[] = { {ERR_REASON(SSL_R_CCS_RECEIVED_EARLY), "ccs received early"}, {ERR_REASON(SSL_R_CERTIFICATE_VERIFY_FAILED), "certificate verify failed"}, + {ERR_REASON(SSL_R_CERT_CB_ERROR), "cert cb error"}, {ERR_REASON(SSL_R_CERT_LENGTH_MISMATCH), "cert length mismatch"}, {ERR_REASON(SSL_R_CHALLENGE_IS_DIFFERENT), "challenge is different"}, {ERR_REASON(SSL_R_CIPHER_CODE_WRONG_LENGTH), "cipher code wrong length"}, @@ -455,6 +479,8 @@ static ERR_STRING_DATA SSL_str_reasons[] = { "ecc cert should have rsa signature"}, {ERR_REASON(SSL_R_ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE), "ecc cert should have sha1 signature"}, + {ERR_REASON(SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE), + "ecdh required for suiteb mode"}, {ERR_REASON(SSL_R_ECGROUP_TOO_LARGE_FOR_CIPHER), "ecgroup too large for cipher"}, {ERR_REASON(SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST), @@ -475,13 +501,16 @@ static ERR_STRING_DATA SSL_str_reasons[] = { {ERR_REASON(SSL_R_HTTPS_PROXY_REQUEST), "https proxy request"}, {ERR_REASON(SSL_R_HTTP_REQUEST), "http request"}, {ERR_REASON(SSL_R_ILLEGAL_PADDING), "illegal padding"}, + {ERR_REASON(SSL_R_ILLEGAL_SUITEB_DIGEST), "illegal Suite B digest"}, {ERR_REASON(SSL_R_INAPPROPRIATE_FALLBACK), "inappropriate fallback"}, {ERR_REASON(SSL_R_INCONSISTENT_COMPRESSION), "inconsistent compression"}, {ERR_REASON(SSL_R_INVALID_CHALLENGE_LENGTH), "invalid challenge length"}, {ERR_REASON(SSL_R_INVALID_COMMAND), "invalid command"}, {ERR_REASON(SSL_R_INVALID_COMPRESSION_ALGORITHM), "invalid compression algorithm"}, + {ERR_REASON(SSL_R_INVALID_NULL_CMD_NAME), "invalid null cmd name"}, {ERR_REASON(SSL_R_INVALID_PURPOSE), "invalid purpose"}, + {ERR_REASON(SSL_R_INVALID_SERVERINFO_DATA), "invalid serverinfo data"}, {ERR_REASON(SSL_R_INVALID_SRP_USERNAME), "invalid srp username"}, {ERR_REASON(SSL_R_INVALID_STATUS_RESPONSE), "invalid status response"}, {ERR_REASON(SSL_R_INVALID_TICKET_KEYS_LENGTH), @@ -508,6 +537,9 @@ static ERR_STRING_DATA SSL_str_reasons[] = { {ERR_REASON(SSL_R_MISSING_DH_KEY), "missing dh key"}, {ERR_REASON(SSL_R_MISSING_DH_RSA_CERT), "missing dh rsa cert"}, {ERR_REASON(SSL_R_MISSING_DSA_SIGNING_CERT), "missing dsa signing cert"}, + {ERR_REASON(SSL_R_MISSING_ECDH_CERT), "missing ecdh cert"}, + {ERR_REASON(SSL_R_MISSING_ECDSA_SIGNING_CERT), + "missing ecdsa signing cert"}, {ERR_REASON(SSL_R_MISSING_EXPORT_TMP_DH_KEY), "missing export tmp dh key"}, {ERR_REASON(SSL_R_MISSING_EXPORT_TMP_RSA_KEY), @@ -540,6 +572,7 @@ static ERR_STRING_DATA SSL_str_reasons[] = { {ERR_REASON(SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER), "Peer haven't sent GOST certificate, required for selected ciphersuite"}, {ERR_REASON(SSL_R_NO_METHOD_SPECIFIED), "no method specified"}, + {ERR_REASON(SSL_R_NO_PEM_EXTENSIONS), "no pem extensions"}, {ERR_REASON(SSL_R_NO_PRIVATEKEY), "no privatekey"}, {ERR_REASON(SSL_R_NO_PRIVATE_KEY_ASSIGNED), "no private key assigned"}, {ERR_REASON(SSL_R_NO_PROTOCOLS_AVAILABLE), "no protocols available"}, @@ -548,6 +581,8 @@ static ERR_STRING_DATA SSL_str_reasons[] = { {ERR_REASON(SSL_R_NO_REQUIRED_DIGEST), "digest requred for handshake isn't computed"}, {ERR_REASON(SSL_R_NO_SHARED_CIPHER), "no shared cipher"}, + {ERR_REASON(SSL_R_NO_SHARED_SIGATURE_ALGORITHMS), + "no shared sigature algorithms"}, {ERR_REASON(SSL_R_NO_SRTP_PROFILES), "no srtp profiles"}, {ERR_REASON(SSL_R_NO_VERIFY_CALLBACK), "no verify callback"}, {ERR_REASON(SSL_R_NULL_SSL_CTX), "null ssl ctx"}, @@ -556,6 +591,10 @@ static ERR_STRING_DATA SSL_str_reasons[] = { "old session cipher not returned"}, {ERR_REASON(SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED), "old session compression algorithm not returned"}, + {ERR_REASON(SSL_R_ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE), + "only DTLS 1.2 allowed in Suite B mode"}, + {ERR_REASON(SSL_R_ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE), + "only TLS 1.2 allowed in Suite B mode"}, {ERR_REASON(SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE), "only tls allowed in fips mode"}, {ERR_REASON(SSL_R_OPAQUE_PRF_INPUT_TOO_LONG), @@ -572,6 +611,8 @@ static ERR_STRING_DATA SSL_str_reasons[] = { {ERR_REASON(SSL_R_PEER_ERROR_NO_CIPHER), "peer error no cipher"}, {ERR_REASON(SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE), "peer error unsupported certificate type"}, + {ERR_REASON(SSL_R_PEM_NAME_BAD_PREFIX), "pem name bad prefix"}, + {ERR_REASON(SSL_R_PEM_NAME_TOO_SHORT), "pem name too short"}, {ERR_REASON(SSL_R_PRE_MAC_LENGTH_TOO_LONG), "pre mac length too long"}, {ERR_REASON(SSL_R_PROBLEMS_MAPPING_CIPHER_FUNCTIONS), "problems mapping cipher functions"}, @@ -742,6 +783,7 @@ static ERR_STRING_DATA SSL_str_reasons[] = { {ERR_REASON(SSL_R_UNKNOWN_CERTIFICATE_TYPE), "unknown certificate type"}, {ERR_REASON(SSL_R_UNKNOWN_CIPHER_RETURNED), "unknown cipher returned"}, {ERR_REASON(SSL_R_UNKNOWN_CIPHER_TYPE), "unknown cipher type"}, + {ERR_REASON(SSL_R_UNKNOWN_CMD_NAME), "unknown cmd name"}, {ERR_REASON(SSL_R_UNKNOWN_DIGEST), "unknown digest"}, {ERR_REASON(SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE), "unknown key exchange type"}, @@ -764,7 +806,9 @@ static ERR_STRING_DATA SSL_str_reasons[] = { {ERR_REASON(SSL_R_UNSUPPORTED_STATUS_TYPE), "unsupported status type"}, {ERR_REASON(SSL_R_USE_SRTP_NOT_NEGOTIATED), "use srtp not negotiated"}, {ERR_REASON(SSL_R_WRITE_BIO_NOT_SET), "write bio not set"}, + {ERR_REASON(SSL_R_WRONG_CERTIFICATE_TYPE), "wrong certificate type"}, {ERR_REASON(SSL_R_WRONG_CIPHER_RETURNED), "wrong cipher returned"}, + {ERR_REASON(SSL_R_WRONG_CURVE), "wrong curve"}, {ERR_REASON(SSL_R_WRONG_MESSAGE_TYPE), "wrong message type"}, {ERR_REASON(SSL_R_WRONG_NUMBER_OF_KEY_BITS), "wrong number of key bits"}, {ERR_REASON(SSL_R_WRONG_SIGNATURE_LENGTH), "wrong signature length"}, diff --git a/libs/openssl/ssl/ssl_lib.c b/libs/openssl/ssl/ssl_lib.c index e11746a6..f2071db9 100644 --- a/libs/openssl/ssl/ssl_lib.c +++ b/libs/openssl/ssl/ssl_lib.c @@ -273,7 +273,7 @@ int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth) &(ctx->cipher_list_by_id), meth->version == SSL2_VERSION ? "SSLv2" : - SSL_DEFAULT_CIPHER_LIST); + SSL_DEFAULT_CIPHER_LIST, ctx->cert); if ((sk == NULL) || (sk_SSL_CIPHER_num(sk) <= 0)) { SSLerr(SSL_F_SSL_CTX_SET_SSL_VERSION, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS); @@ -307,6 +307,7 @@ SSL *SSL_new(SSL_CTX *ctx) s->options = ctx->options; s->mode = ctx->mode; s->max_cert_list = ctx->max_cert_list; + s->references = 1; if (ctx->cert != NULL) { /* @@ -363,9 +364,39 @@ SSL *SSL_new(SSL_CTX *ctx) s->tlsext_ocsp_resplen = -1; CRYPTO_add(&ctx->references, 1, CRYPTO_LOCK_SSL_CTX); s->initial_ctx = ctx; +# ifndef OPENSSL_NO_EC + if (ctx->tlsext_ecpointformatlist) { + s->tlsext_ecpointformatlist = + BUF_memdup(ctx->tlsext_ecpointformatlist, + ctx->tlsext_ecpointformatlist_length); + if (!s->tlsext_ecpointformatlist) + goto err; + s->tlsext_ecpointformatlist_length = + ctx->tlsext_ecpointformatlist_length; + } + if (ctx->tlsext_ellipticcurvelist) { + s->tlsext_ellipticcurvelist = + BUF_memdup(ctx->tlsext_ellipticcurvelist, + ctx->tlsext_ellipticcurvelist_length); + if (!s->tlsext_ellipticcurvelist) + goto err; + s->tlsext_ellipticcurvelist_length = + ctx->tlsext_ellipticcurvelist_length; + } +# endif # ifndef OPENSSL_NO_NEXTPROTONEG s->next_proto_negotiated = NULL; # endif + + if (s->ctx->alpn_client_proto_list) { + s->alpn_client_proto_list = + OPENSSL_malloc(s->ctx->alpn_client_proto_list_len); + if (s->alpn_client_proto_list == NULL) + goto err; + memcpy(s->alpn_client_proto_list, s->ctx->alpn_client_proto_list, + s->ctx->alpn_client_proto_list_len); + s->alpn_client_proto_list_len = s->ctx->alpn_client_proto_list_len; + } #endif s->verify_result = X509_V_OK; @@ -375,7 +406,6 @@ SSL *SSL_new(SSL_CTX *ctx) if (!s->method->ssl_new(s)) goto err; - s->references = 1; s->server = (ctx->method->ssl_accept == ssl_undefined_function) ? 0 : 1; SSL_clear(s); @@ -505,6 +535,21 @@ int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm) return X509_VERIFY_PARAM_set1(ssl->param, vpm); } +X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx) +{ + return ctx->param; +} + +X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl) +{ + return ssl->param; +} + +void SSL_certs_clear(SSL *s) +{ + ssl_cert_clear_certs(s->cert); +} + void SSL_free(SSL *s) { int i; @@ -585,6 +630,8 @@ void SSL_free(SSL *s) sk_OCSP_RESPID_pop_free(s->tlsext_ocsp_ids, OCSP_RESPID_free); if (s->tlsext_ocsp_resp) OPENSSL_free(s->tlsext_ocsp_resp); + if (s->alpn_client_proto_list) + OPENSSL_free(s->alpn_client_proto_list); #endif if (s->client_CA != NULL) @@ -1088,6 +1135,19 @@ long SSL_ctrl(SSL *s, int cmd, long larg, void *parg) return s->s3->send_connection_binding; else return 0; + case SSL_CTRL_CERT_FLAGS: + return (s->cert->cert_flags |= larg); + case SSL_CTRL_CLEAR_CERT_FLAGS: + return (s->cert->cert_flags &= ~larg); + + case SSL_CTRL_GET_RAW_CIPHERLIST: + if (parg) { + if (s->cert->ciphers_raw == NULL) + return 0; + *(unsigned char **)parg = s->cert->ciphers_raw; + return (int)s->cert->ciphers_rawlen; + } else + return ssl_put_cipher_by_char(s, NULL, NULL); default: return (s->method->ssl_ctrl(s, cmd, larg, parg)); } @@ -1116,6 +1176,20 @@ LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx) long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) { long l; + /* For some cases with ctx == NULL perform syntax checks */ + if (ctx == NULL) { + switch (cmd) { +#ifndef OPENSSL_NO_EC + case SSL_CTRL_SET_CURVES_LIST: + return tls1_set_curves_list(NULL, NULL, parg); +#endif + case SSL_CTRL_SET_SIGALGS_LIST: + case SSL_CTRL_SET_CLIENT_SIGALGS_LIST: + return tls1_set_sigalgs_list(NULL, parg, 0); + default: + return 0; + } + } switch (cmd) { case SSL_CTRL_GET_READ_AHEAD: @@ -1186,6 +1260,10 @@ long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) return 0; ctx->max_send_fragment = larg; return 1; + case SSL_CTRL_CERT_FLAGS: + return (ctx->cert->cert_flags |= larg); + case SSL_CTRL_CLEAR_CERT_FLAGS: + return (ctx->cert->cert_flags &= ~larg); default: return (ctx->method->ssl_ctx_ctrl(ctx, cmd, larg, parg)); } @@ -1280,7 +1358,7 @@ int SSL_CTX_set_cipher_list(SSL_CTX *ctx, const char *str) STACK_OF(SSL_CIPHER) *sk; sk = ssl_create_cipher_list(ctx->method, &ctx->cipher_list, - &ctx->cipher_list_by_id, str); + &ctx->cipher_list_by_id, str, ctx->cert); /* * ssl_create_cipher_list may return an empty stack if it was unable to * find a cipher matching the given rule string (for example if the rule @@ -1303,7 +1381,7 @@ int SSL_set_cipher_list(SSL *s, const char *str) STACK_OF(SSL_CIPHER) *sk; sk = ssl_create_cipher_list(s->ctx->method, &s->cipher_list, - &s->cipher_list_by_id, str); + &s->cipher_list_by_id, str, s->cert); /* see comment in SSL_CTX_set_cipher_list */ if (sk == NULL) return 0; @@ -1358,10 +1436,11 @@ int ssl_cipher_list_to_bytes(SSL *s, STACK_OF(SSL_CIPHER) *sk, { int i, j = 0; SSL_CIPHER *c; + CERT *ct = s->cert; unsigned char *q; -#ifndef OPENSSL_NO_KRB5 - int nokrb5 = !kssl_tgt_is_available(s->kssl_ctx); -#endif /* OPENSSL_NO_KRB5 */ + int empty_reneg_info_scsv = !s->renegotiate; + /* Set disabled masks for this session */ + ssl_set_client_disabled(s); if (sk == NULL) return (0); @@ -1371,26 +1450,18 @@ int ssl_cipher_list_to_bytes(SSL *s, STACK_OF(SSL_CIPHER) *sk, for (i = 0; i < sk_SSL_CIPHER_num(sk); i++) { c = sk_SSL_CIPHER_value(sk, i); - /* Skip TLS v1.2 only ciphersuites if lower than v1.2 */ - if ((c->algorithm_ssl & SSL_TLSV1_2) && - (TLS1_get_client_version(s) < TLS1_2_VERSION)) + /* Skip disabled ciphers */ + if (c->algorithm_ssl & ct->mask_ssl || + c->algorithm_mkey & ct->mask_k || c->algorithm_auth & ct->mask_a) continue; -#ifndef OPENSSL_NO_KRB5 - if (((c->algorithm_mkey & SSL_kKRB5) - || (c->algorithm_auth & SSL_aKRB5)) && nokrb5) - continue; -#endif /* OPENSSL_NO_KRB5 */ -#ifndef OPENSSL_NO_PSK - /* with PSK there must be client callback set */ - if (((c->algorithm_mkey & SSL_kPSK) || (c->algorithm_auth & SSL_aPSK)) - && s->psk_client_callback == NULL) - continue; -#endif /* OPENSSL_NO_PSK */ -#ifndef OPENSSL_NO_SRP - if (((c->algorithm_mkey & SSL_kSRP) || (c->algorithm_auth & SSL_aSRP)) - && !(s->srp_ctx.srp_Mask & SSL_kSRP)) - continue; -#endif /* OPENSSL_NO_SRP */ +#ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL + if (c->id == SSL3_CK_SCSV) { + if (!empty_reneg_info_scsv) + continue; + else + empty_reneg_info_scsv = 0; + } +#endif j = put_cb(c, p); p += j; } @@ -1399,7 +1470,7 @@ int ssl_cipher_list_to_bytes(SSL *s, STACK_OF(SSL_CIPHER) *sk, * applicable SCSVs. */ if (p != q) { - if (!s->renegotiate) { + if (empty_reneg_info_scsv) { static SSL_CIPHER scsv = { 0, NULL, SSL3_CK_SCSV, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -1410,7 +1481,6 @@ int ssl_cipher_list_to_bytes(SSL *s, STACK_OF(SSL_CIPHER) *sk, "TLS_EMPTY_RENEGOTIATION_INFO_SCSV sent by client\n"); #endif } - if (s->mode & SSL_MODE_SEND_FALLBACK_SCSV) { static SSL_CIPHER scsv = { 0, NULL, SSL3_CK_FALLBACK_SCSV, 0, 0, 0, 0, 0, 0, 0, 0, 0 @@ -1451,6 +1521,15 @@ STACK_OF(SSL_CIPHER) *ssl_bytes_to_cipher_list(SSL *s, unsigned char *p, sk_SSL_CIPHER_zero(sk); } + if (s->cert->ciphers_raw) + OPENSSL_free(s->cert->ciphers_raw); + s->cert->ciphers_raw = BUF_memdup(p, num); + if (s->cert->ciphers_raw == NULL) { + SSLerr(SSL_F_SSL_BYTES_TO_CIPHER_LIST, ERR_R_MALLOC_FAILURE); + goto err; + } + s->cert->ciphers_rawlen = (size_t)num; + for (i = 0; i < num; i += n) { /* Check for TLS_EMPTY_RENEGOTIATION_INFO_SCSV */ if (s->s3 && (n != 3 || !p[0]) && @@ -1534,7 +1613,6 @@ int SSL_get_servername_type(const SSL *s) return -1; } -# ifndef OPENSSL_NO_NEXTPROTONEG /* * SSL_select_next_proto implements the standard protocol selection. It is * expected that this function is called from the callback set by @@ -1594,6 +1672,7 @@ int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, return status; } +# ifndef OPENSSL_NO_NEXTPROTONEG /* * SSL_get0_next_proto_negotiated sets *data and *len to point to the * client's requested protocol for this connection and returns 0. If the @@ -1655,7 +1734,83 @@ void SSL_CTX_set_next_proto_select_cb(SSL_CTX *ctx, ctx->next_proto_select_cb_arg = arg; } # endif -#endif + +/* + * SSL_CTX_set_alpn_protos sets the ALPN protocol list on |ctx| to |protos|. + * |protos| must be in wire-format (i.e. a series of non-empty, 8-bit + * length-prefixed strings). Returns 0 on success. + */ +int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, + unsigned protos_len) +{ + if (ctx->alpn_client_proto_list) + OPENSSL_free(ctx->alpn_client_proto_list); + + ctx->alpn_client_proto_list = OPENSSL_malloc(protos_len); + if (!ctx->alpn_client_proto_list) + return 1; + memcpy(ctx->alpn_client_proto_list, protos, protos_len); + ctx->alpn_client_proto_list_len = protos_len; + + return 0; +} + +/* + * SSL_set_alpn_protos sets the ALPN protocol list on |ssl| to |protos|. + * |protos| must be in wire-format (i.e. a series of non-empty, 8-bit + * length-prefixed strings). Returns 0 on success. + */ +int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, + unsigned protos_len) +{ + if (ssl->alpn_client_proto_list) + OPENSSL_free(ssl->alpn_client_proto_list); + + ssl->alpn_client_proto_list = OPENSSL_malloc(protos_len); + if (!ssl->alpn_client_proto_list) + return 1; + memcpy(ssl->alpn_client_proto_list, protos, protos_len); + ssl->alpn_client_proto_list_len = protos_len; + + return 0; +} + +/* + * SSL_CTX_set_alpn_select_cb sets a callback function on |ctx| that is + * called during ClientHello processing in order to select an ALPN protocol + * from the client's list of offered protocols. + */ +void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, + int (*cb) (SSL *ssl, + const unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, + void *arg), void *arg) +{ + ctx->alpn_select_cb = cb; + ctx->alpn_select_cb_arg = arg; +} + +/* + * SSL_get0_alpn_selected gets the selected ALPN protocol (if any) from + * |ssl|. On return it sets |*data| to point to |*len| bytes of protocol name + * (not including the leading length-prefix byte). If the server didn't + * respond with a negotiated protocol then |*len| will be zero. + */ +void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, + unsigned *len) +{ + *data = NULL; + if (ssl->s3) + *data = ssl->s3->alpn_selected; + if (*data == NULL) + *len = 0; + else + *len = ssl->s3->alpn_selected_len; +} + +#endif /* !OPENSSL_NO_TLSEXT */ int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, const char *label, size_t llen, @@ -1794,7 +1949,8 @@ SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth) ssl_create_cipher_list(ret->method, &ret->cipher_list, &ret->cipher_list_by_id, meth->version == - SSL2_VERSION ? "SSLv2" : SSL_DEFAULT_CIPHER_LIST); + SSL2_VERSION ? "SSLv2" : SSL_DEFAULT_CIPHER_LIST, + ret->cert); if (ret->cipher_list == NULL || sk_SSL_CIPHER_num(ret->cipher_list) <= 0) { SSLerr(SSL_F_SSL_CTX_NEW, SSL_R_LIBRARY_HAS_NO_CIPHERS); goto err2; @@ -1824,7 +1980,7 @@ SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth) ret->extra_certs = NULL; /* No compression for DTLS */ - if (meth->version != DTLS1_VERSION) + if (!(meth->ssl3_enc->enc_flags & SSL_ENC_FLAG_DTLS)) ret->comp_methods = SSL_COMP_get_compression_methods(); ret->max_send_fragment = SSL3_RT_MAX_PLAIN_LENGTH; @@ -2007,6 +2163,16 @@ void SSL_CTX_free(SSL_CTX *a) if (a->rbuf_freelist) ssl_buf_freelist_free(a->rbuf_freelist); #endif +#ifndef OPENSSL_NO_TLSEXT +# ifndef OPENSSL_NO_EC + if (a->tlsext_ecpointformatlist) + OPENSSL_free(a->tlsext_ecpointformatlist); + if (a->tlsext_ellipticcurvelist) + OPENSSL_free(a->tlsext_ellipticcurvelist); +# endif /* OPENSSL_NO_EC */ + if (a->alpn_client_proto_list != NULL) + OPENSSL_free(a->alpn_client_proto_list); +#endif OPENSSL_free(a); } @@ -2041,6 +2207,17 @@ void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth) X509_VERIFY_PARAM_set_depth(ctx->param, depth); } +void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), + void *arg) +{ + ssl_cert_set_cert_cb(c->cert, cb, arg); +} + +void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg) +{ + ssl_cert_set_cert_cb(s->cert, cb, arg); +} + void ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher) { CERT_PKEY *cpk; @@ -2080,25 +2257,25 @@ void ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher) #endif #ifndef OPENSSL_NO_ECDH - have_ecdh_tmp = (c->ecdh_tmp != NULL || c->ecdh_tmp_cb != NULL); + have_ecdh_tmp = (c->ecdh_tmp || c->ecdh_tmp_cb || c->ecdh_tmp_auto); #endif cpk = &(c->pkeys[SSL_PKEY_RSA_ENC]); - rsa_enc = (cpk->x509 != NULL && cpk->privatekey != NULL); + rsa_enc = cpk->valid_flags & CERT_PKEY_VALID; rsa_enc_export = (rsa_enc && EVP_PKEY_size(cpk->privatekey) * 8 <= kl); cpk = &(c->pkeys[SSL_PKEY_RSA_SIGN]); - rsa_sign = (cpk->x509 != NULL && cpk->privatekey != NULL); + rsa_sign = cpk->valid_flags & CERT_PKEY_SIGN; cpk = &(c->pkeys[SSL_PKEY_DSA_SIGN]); - dsa_sign = (cpk->x509 != NULL && cpk->privatekey != NULL); + dsa_sign = cpk->valid_flags & CERT_PKEY_SIGN; cpk = &(c->pkeys[SSL_PKEY_DH_RSA]); - dh_rsa = (cpk->x509 != NULL && cpk->privatekey != NULL); + dh_rsa = cpk->valid_flags & CERT_PKEY_VALID; dh_rsa_export = (dh_rsa && EVP_PKEY_size(cpk->privatekey) * 8 <= kl); cpk = &(c->pkeys[SSL_PKEY_DH_DSA]); /* FIX THIS EAY EAY EAY */ - dh_dsa = (cpk->x509 != NULL && cpk->privatekey != NULL); + dh_dsa = cpk->valid_flags & CERT_PKEY_VALID; dh_dsa_export = (dh_dsa && EVP_PKEY_size(cpk->privatekey) * 8 <= kl); cpk = &(c->pkeys[SSL_PKEY_ECC]); #ifndef OPENSSL_NO_EC - have_ecc_cert = (cpk->x509 != NULL && cpk->privatekey != NULL); + have_ecc_cert = cpk->valid_flags & CERT_PKEY_VALID; #endif mask_k = 0; mask_a = 0; @@ -2153,6 +2330,9 @@ void ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher) if (dh_dsa_export) emask_k |= SSL_kDHd; + if (mask_k & (SSL_kDHr | SSL_kDHd)) + mask_a |= SSL_aDH; + if (rsa_enc || rsa_sign) { mask_a |= SSL_aRSA; emask_a |= SSL_aRSA; @@ -2179,13 +2359,18 @@ void ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher) */ #ifndef OPENSSL_NO_EC if (have_ecc_cert) { + cpk = &c->pkeys[SSL_PKEY_ECC]; + x = cpk->x509; /* This call populates extension flags (ex_flags) */ - x = (c->pkeys[SSL_PKEY_ECC]).x509; X509_check_purpose(x, -1, 0); +# ifndef OPENSSL_NO_ECDH ecdh_ok = (x->ex_flags & EXFLAG_KUSAGE) ? (x->ex_kusage & X509v3_KU_KEY_AGREEMENT) : 1; +# endif ecdsa_ok = (x->ex_flags & EXFLAG_KUSAGE) ? (x->ex_kusage & X509v3_KU_DIGITAL_SIGNATURE) : 1; + if (!(cpk->valid_flags & CERT_PKEY_SIGN)) + ecdsa_ok = 0; ecc_pkey = X509_get_pubkey(x); ecc_pkey_size = (ecc_pkey != NULL) ? EVP_PKEY_bits(ecc_pkey) : 0; EVP_PKEY_free(ecc_pkey); @@ -2193,7 +2378,7 @@ void ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher) signature_nid = OBJ_obj2nid(x->sig_alg->algorithm); OBJ_find_sigid_algs(signature_nid, &md_nid, &pk_nid); } -#ifndef OPENSSL_NO_ECDH +# ifndef OPENSSL_NO_ECDH if (ecdh_ok) { if (pk_nid == NID_rsaEncryption || pk_nid == NID_rsa) { @@ -2214,15 +2399,16 @@ void ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher) } } } -#endif -#ifndef OPENSSL_NO_ECDSA +# endif +# ifndef OPENSSL_NO_ECDSA if (ecdsa_ok) { mask_a |= SSL_aECDSA; emask_a |= SSL_aECDSA; } -#endif +# endif } #endif + #ifndef OPENSSL_NO_ECDH if (have_ecdh_tmp) { mask_k |= SSL_kEECDH; @@ -2317,65 +2503,44 @@ int ssl_check_srvr_ecc_cert_and_alg(X509 *x, SSL *s) #endif -/* THIS NEEDS CLEANING UP */ +static int ssl_get_server_cert_index(const SSL *s) +{ + int idx; + idx = ssl_cipher_get_cert_index(s->s3->tmp.new_cipher); + if (idx == SSL_PKEY_RSA_ENC && !s->cert->pkeys[SSL_PKEY_RSA_ENC].x509) + idx = SSL_PKEY_RSA_SIGN; + if (idx == -1) + SSLerr(SSL_F_SSL_GET_SERVER_CERT_INDEX, ERR_R_INTERNAL_ERROR); + return idx; +} + CERT_PKEY *ssl_get_server_send_pkey(const SSL *s) { - unsigned long alg_k, alg_a; CERT *c; int i; c = s->cert; + if (!s->s3 || !s->s3->tmp.new_cipher) + return NULL; ssl_set_cert_masks(c, s->s3->tmp.new_cipher); - alg_k = s->s3->tmp.new_cipher->algorithm_mkey; - alg_a = s->s3->tmp.new_cipher->algorithm_auth; - - if (alg_k & (SSL_kECDHr | SSL_kECDHe)) { - /* - * we don't need to look at SSL_kEECDH since no certificate is needed - * for anon ECDH and for authenticated EECDH, the check for the auth - * algorithm will set i correctly NOTE: For ECDH-RSA, we need an ECC - * not an RSA cert but for EECDH-RSA we need an RSA cert. Placing the - * checks for SSL_kECDH before RSA checks ensures the correct cert is - * chosen. - */ - i = SSL_PKEY_ECC; - } else if (alg_a & SSL_aECDSA) { - i = SSL_PKEY_ECC; - } else if (alg_k & SSL_kDHr) - i = SSL_PKEY_DH_RSA; - else if (alg_k & SSL_kDHd) - i = SSL_PKEY_DH_DSA; - else if (alg_a & SSL_aDSS) - i = SSL_PKEY_DSA_SIGN; - else if (alg_a & SSL_aRSA) { - if (c->pkeys[SSL_PKEY_RSA_ENC].x509 == NULL) - i = SSL_PKEY_RSA_SIGN; - else - i = SSL_PKEY_RSA_ENC; - } else if (alg_a & SSL_aKRB5) { - /* VRS something else here? */ - return (NULL); - } else if (alg_a & SSL_aGOST94) - i = SSL_PKEY_GOST94; - else if (alg_a & SSL_aGOST01) - i = SSL_PKEY_GOST01; - else { /* if (alg_a & SSL_aNULL) */ - - SSLerr(SSL_F_SSL_GET_SERVER_SEND_PKEY, ERR_R_INTERNAL_ERROR); - return (NULL); - } +#ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL + /* + * Broken protocol test: return last used certificate: which may mismatch + * the one expected. + */ + if (c->cert_flags & SSL_CERT_FLAG_BROKEN_PROTOCOL) + return c->key; +#endif - return c->pkeys + i; -} + i = ssl_get_server_cert_index(s); -X509 *ssl_get_server_send_cert(const SSL *s) -{ - CERT_PKEY *cpk; - cpk = ssl_get_server_send_pkey(s); - if (!cpk) + /* This may or may not be an error. */ + if (i < 0) return NULL; - return cpk->x509; + + /* May be NULL. */ + return &c->pkeys[i]; } EVP_PKEY *ssl_get_sign_pkey(SSL *s, const SSL_CIPHER *cipher, @@ -2388,8 +2553,18 @@ EVP_PKEY *ssl_get_sign_pkey(SSL *s, const SSL_CIPHER *cipher, alg_a = cipher->algorithm_auth; c = s->cert; +#ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL + /* + * Broken protocol test: use last key: which may mismatch the one + * expected. + */ + if (c->cert_flags & SSL_CERT_FLAG_BROKEN_PROTOCOL) + idx = c->key - c->pkeys; + else +#endif + if ((alg_a & SSL_aDSS) && - (c->pkeys[SSL_PKEY_DSA_SIGN].privatekey != NULL)) + (c->pkeys[SSL_PKEY_DSA_SIGN].privatekey != NULL)) idx = SSL_PKEY_DSA_SIGN; else if (alg_a & SSL_aRSA) { if (c->pkeys[SSL_PKEY_RSA_SIGN].privatekey != NULL) @@ -2408,6 +2583,28 @@ EVP_PKEY *ssl_get_sign_pkey(SSL *s, const SSL_CIPHER *cipher, return c->pkeys[idx].privatekey; } +#ifndef OPENSSL_NO_TLSEXT +int ssl_get_server_cert_serverinfo(SSL *s, const unsigned char **serverinfo, + size_t *serverinfo_length) +{ + CERT *c = NULL; + int i = 0; + *serverinfo_length = 0; + + c = s->cert; + i = ssl_get_server_cert_index(s); + + if (i == -1) + return 0; + if (c->pkeys[i].serverinfo == NULL) + return 0; + + *serverinfo = c->pkeys[i].serverinfo; + *serverinfo_length = c->pkeys[i].serverinfo_length; + return 1; +} +#endif + void ssl_update_cache(SSL *s, int mode) { int i; @@ -2439,6 +2636,11 @@ void ssl_update_cache(SSL *s, int mode) } } +const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx) +{ + return ctx->method; +} + const SSL_METHOD *SSL_get_ssl_method(SSL *s) { return (s->method); @@ -2634,6 +2836,12 @@ const char *SSL_get_version(const SSL *s) return ("SSLv3"); else if (s->version == SSL2_VERSION) return ("SSLv2"); + else if (s->version == DTLS1_BAD_VER) + return ("DTLSv0.9"); + else if (s->version == DTLS1_VERSION) + return ("DTLSv1"); + else if (s->version == DTLS1_2_VERSION) + return ("DTLSv1.2"); else return ("unknown"); } @@ -2784,7 +2992,6 @@ void ssl_clear_cipher_ctx(SSL *s) #endif } -/* Fix this function so that it takes an optional type parameter */ X509 *SSL_get_certificate(const SSL *s) { if (s->cert != NULL) @@ -2793,8 +3000,7 @@ X509 *SSL_get_certificate(const SSL *s) return (NULL); } -/* Fix this function so that it takes an optional type parameter */ -EVP_PKEY *SSL_get_privatekey(SSL *s) +EVP_PKEY *SSL_get_privatekey(const SSL *s) { if (s->cert != NULL) return (s->cert->key->privatekey); @@ -2802,6 +3008,22 @@ EVP_PKEY *SSL_get_privatekey(SSL *s) return (NULL); } +X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx) +{ + if (ctx->cert != NULL) + return ctx->cert->key->x509; + else + return NULL; +} + +EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx) +{ + if (ctx->cert != NULL) + return ctx->cert->key->privatekey; + else + return NULL; +} + const SSL_CIPHER *SSL_get_current_cipher(const SSL *s) { if ((s->session != NULL) && (s->session->cipher != NULL)) @@ -2933,13 +3155,15 @@ SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx) ctx = ssl->initial_ctx; #endif ssl->cert = ssl_cert_dup(ctx->cert); - if (ocert != NULL) { - int i; - /* Copy negotiated digests from original */ - for (i = 0; i < SSL_PKEY_NUM; i++) { - CERT_PKEY *cpk = ocert->pkeys + i; - CERT_PKEY *rpk = ssl->cert->pkeys + i; - rpk->digest = cpk->digest; + if (ocert) { + /* Preserve any already negotiated parameters */ + if (ssl->server) { + ssl->cert->peer_sigalgs = ocert->peer_sigalgs; + ssl->cert->peer_sigalgslen = ocert->peer_sigalgslen; + ocert->peer_sigalgs = NULL; + ssl->cert->ciphers_raw = ocert->ciphers_raw; + ssl->cert->ciphers_rawlen = ocert->ciphers_rawlen; + ocert->ciphers_raw = NULL; } ssl_cert_free(ocert); } @@ -3283,8 +3507,11 @@ EVP_MD_CTX *ssl_replace_hash(EVP_MD_CTX **hash, const EVP_MD *md) { ssl_clear_hash_ctx(hash); *hash = EVP_MD_CTX_create(); - if (md) - EVP_DigestInit_ex(*hash, md, NULL); + if (*hash == NULL || (md && EVP_DigestInit_ex(*hash, md, NULL) <= 0)) { + EVP_MD_CTX_destroy(*hash); + *hash = NULL; + return NULL; + } return *hash; } @@ -3306,6 +3533,11 @@ int SSL_cache_hit(SSL *s) return s->hit; } +int SSL_is_server(SSL *s) +{ + return s->server; +} + #if defined(_WINDLL) && defined(OPENSSL_SYS_WIN16) # include "../crypto/bio/bss_file.c" #endif diff --git a/libs/openssl/ssl/ssl_locl.h b/libs/openssl/ssl/ssl_locl.h index a7f3f8da..a8e4efce 100644 --- a/libs/openssl/ssl/ssl_locl.h +++ b/libs/openssl/ssl/ssl_locl.h @@ -291,13 +291,13 @@ /* RSA key exchange */ # define SSL_kRSA 0x00000001L /* DH cert, RSA CA cert */ -/* no such ciphersuites supported! */ # define SSL_kDHr 0x00000002L /* DH cert, DSA CA cert */ -/* no such ciphersuite supported! */ # define SSL_kDHd 0x00000004L /* tmp DH key no DH cert */ # define SSL_kEDH 0x00000008L +/* forward-compatible synonym */ +# define SSL_kDHE SSL_kEDH /* Kerberos5 key exchange */ # define SSL_kKRB5 0x00000010L /* ECDH cert, RSA CA cert */ @@ -306,6 +306,8 @@ # define SSL_kECDHe 0x00000040L /* ephemeral ECDH */ # define SSL_kEECDH 0x00000080L +/* forward-compatible synonym */ +# define SSL_kECDHE SSL_kEECDH /* PSK */ # define SSL_kPSK 0x00000100L /* GOST key exchange */ @@ -321,7 +323,6 @@ /* no auth (i.e. use ADH or AECDH) */ # define SSL_aNULL 0x00000004L /* Fixed DH auth (kDHd or kDHr) */ -/* no such ciphersuites supported! */ # define SSL_aDH 0x00000008L /* Fixed ECDH auth (kECDHe or kECDHr) */ # define SSL_aECDH 0x00000010L @@ -465,6 +466,31 @@ (c)->algo_strength) # define SSL_C_EXPORT_PKEYLENGTH(c) SSL_EXPORT_PKEYLENGTH((c)->algo_strength) +/* Check if an SSL structure is using DTLS */ +# define SSL_IS_DTLS(s) (s->method->ssl3_enc->enc_flags & SSL_ENC_FLAG_DTLS) +/* See if we need explicit IV */ +# define SSL_USE_EXPLICIT_IV(s) \ + (s->method->ssl3_enc->enc_flags & SSL_ENC_FLAG_EXPLICIT_IV) +/* + * See if we use signature algorithms extension and signature algorithm + * before signatures. + */ +# define SSL_USE_SIGALGS(s) \ + (s->method->ssl3_enc->enc_flags & SSL_ENC_FLAG_SIGALGS) +/* + * Allow TLS 1.2 ciphersuites: applies to DTLS 1.2 as well as TLS 1.2: may + * apply to others in future. + */ +# define SSL_USE_TLS1_2_CIPHERS(s) \ + (s->method->ssl3_enc->enc_flags & SSL_ENC_FLAG_TLS1_2_CIPHERS) +/* + * Determine if a client can use TLS 1.2 ciphersuites: can't rely on method + * flags because it may not be set to correct version yet. + */ +# define SSL_CLIENT_USE_TLS1_2_CIPHERS(s) \ + ((SSL_IS_DTLS(s) && s->client_version <= DTLS1_2_VERSION) || \ + (!SSL_IS_DTLS(s) && s->client_version >= TLS1_2_VERSION)) + /* Mostly for SSLv3 */ # define SSL_PKEY_RSA_ENC 0 # define SSL_PKEY_RSA_SIGN 1 @@ -505,7 +531,63 @@ typedef struct cert_pkey_st { EVP_PKEY *privatekey; /* Digest to use when signing */ const EVP_MD *digest; + /* Chain for this certificate */ + STACK_OF(X509) *chain; +# ifndef OPENSSL_NO_TLSEXT + /*- + * serverinfo data for this certificate. The data is in TLS Extension + * wire format, specifically it's a series of records like: + * uint16_t extension_type; // (RFC 5246, 7.4.1.4, Extension) + * uint16_t length; + * uint8_t data[length]; + */ + unsigned char *serverinfo; + size_t serverinfo_length; +# endif + /* + * Set if CERT_PKEY can be used with current SSL session: e.g. + * appropriate curve, signature algorithms etc. If zero it can't be used + * at all. + */ + int valid_flags; } CERT_PKEY; +/* Retrieve Suite B flags */ +# define tls1_suiteb(s) (s->cert->cert_flags & SSL_CERT_FLAG_SUITEB_128_LOS) +/* Uses to check strict mode: suite B modes are always strict */ +# define SSL_CERT_FLAGS_CHECK_TLS_STRICT \ + (SSL_CERT_FLAG_SUITEB_128_LOS|SSL_CERT_FLAG_TLS_STRICT) + +typedef struct { + unsigned short ext_type; + /* + * Per-connection flags relating to this extension type: not used if + * part of an SSL_CTX structure. + */ + unsigned short ext_flags; + custom_ext_add_cb add_cb; + custom_ext_free_cb free_cb; + void *add_arg; + custom_ext_parse_cb parse_cb; + void *parse_arg; +} custom_ext_method; + +/* ext_flags values */ + +/* + * Indicates an extension has been received. Used to check for unsolicited or + * duplicate extensions. + */ +# define SSL_EXT_FLAG_RECEIVED 0x1 +/* + * Indicates an extension has been sent: used to enable sending of + * corresponding ServerHello extension. + */ +# define SSL_EXT_FLAG_SENT 0x2 + +typedef struct { + custom_ext_method *meths; + size_t meths_count; +} custom_ext_methods; typedef struct cert_st { /* Current active set */ @@ -516,14 +598,17 @@ typedef struct cert_st { */ CERT_PKEY *key; /* - * The following masks are for the key and auth algorithms that are - * supported by the certs below + * For servers the following masks are for the key and auth algorithms + * that are supported by the certs below. For clients they are masks of + * *disabled* algorithms based on the current session. */ int valid; unsigned long mask_k; unsigned long mask_a; unsigned long export_mask_k; unsigned long export_mask_a; + /* Client only */ + unsigned long mask_ssl; # ifndef OPENSSL_NO_RSA RSA *rsa_tmp; RSA *(*rsa_tmp_cb) (SSL *ssl, int is_export, int keysize); @@ -536,8 +621,71 @@ typedef struct cert_st { EC_KEY *ecdh_tmp; /* Callback for generating ephemeral ECDH keys */ EC_KEY *(*ecdh_tmp_cb) (SSL *ssl, int is_export, int keysize); + /* Select ECDH parameters automatically */ + int ecdh_tmp_auto; # endif + /* Flags related to certificates */ + unsigned int cert_flags; CERT_PKEY pkeys[SSL_PKEY_NUM]; + /* + * Certificate types (received or sent) in certificate request message. + * On receive this is only set if number of certificate types exceeds + * SSL3_CT_NUMBER. + */ + unsigned char *ctypes; + size_t ctype_num; + /* + * signature algorithms peer reports: e.g. supported signature algorithms + * extension for server or as part of a certificate request for client. + */ + unsigned char *peer_sigalgs; + /* Size of above array */ + size_t peer_sigalgslen; + /* + * suppported signature algorithms. When set on a client this is sent in + * the client hello as the supported signature algorithms extension. For + * servers it represents the signature algorithms we are willing to use. + */ + unsigned char *conf_sigalgs; + /* Size of above array */ + size_t conf_sigalgslen; + /* + * Client authentication signature algorithms, if not set then uses + * conf_sigalgs. On servers these will be the signature algorithms sent + * to the client in a cerificate request for TLS 1.2. On a client this + * represents the signature algortithms we are willing to use for client + * authentication. + */ + unsigned char *client_sigalgs; + /* Size of above array */ + size_t client_sigalgslen; + /* + * Signature algorithms shared by client and server: cached because these + * are used most often. + */ + TLS_SIGALGS *shared_sigalgs; + size_t shared_sigalgslen; + /* + * Certificate setup callback: if set is called whenever a certificate + * may be required (client or server). the callback can then examine any + * appropriate parameters and setup any certificates required. This + * allows advanced applications to select certificates on the fly: for + * example based on supported signature algorithms or curves. + */ + int (*cert_cb) (SSL *ssl, void *arg); + void *cert_cb_arg; + /* + * Optional X509_STORE for chain building or certificate validation If + * NULL the parent SSL_CTX store is used instead. + */ + X509_STORE *chain_store; + X509_STORE *verify_store; + /* Raw values of the cipher list from a client */ + unsigned char *ciphers_raw; + size_t ciphers_rawlen; + /* Custom extension methods for server and client */ + custom_ext_methods cli_ext; + custom_ext_methods srv_ext; int references; /* >1 only if SSL_copy_session_id is used */ } CERT; @@ -563,6 +711,18 @@ typedef struct sess_cert_st { # endif int references; /* actually always 1 at the moment */ } SESS_CERT; +/* Structure containing decoded values of signature algorithms extension */ +struct tls_sigalgs_st { + /* NID of hash algorithm */ + int hash_nid; + /* NID of signature algorithm */ + int sign_nid; + /* Combined hash and signature NID */ + int signandhash_nid; + /* Raw values used in extension */ + unsigned char rsign; + unsigned char rhash; +}; /* * #define MAC_DEBUG @@ -596,8 +756,6 @@ typedef struct sess_cert_st { # define FP_ICC (int (*)(const void *,const void *)) # define ssl_put_cipher_by_char(ssl,ciph,ptr) \ ((ssl)->method->put_cipher_by_char((ciph),(ptr))) -# define ssl_get_cipher_by_char(ssl,ptr) \ - ((ssl)->method->get_cipher_by_char(ptr)) /* * This is for the SSLv3/TLSv1.0 differences in crypto/hash stuff It is a bit @@ -622,8 +780,39 @@ typedef struct ssl3_enc_method { const char *, size_t, const unsigned char *, size_t, int use_context); + /* Various flags indicating protocol version requirements */ + unsigned int enc_flags; + /* Handshake header length */ + unsigned int hhlen; + /* Set the handshake header */ + void (*set_handshake_header) (SSL *s, int type, unsigned long len); + /* Write out handshake message */ + int (*do_write) (SSL *s); } SSL3_ENC_METHOD; +# define SSL_HM_HEADER_LENGTH(s) s->method->ssl3_enc->hhlen +# define ssl_handshake_start(s) \ + (((unsigned char *)s->init_buf->data) + s->method->ssl3_enc->hhlen) +# define ssl_set_handshake_header(s, htype, len) \ + s->method->ssl3_enc->set_handshake_header(s, htype, len) +# define ssl_do_write(s) s->method->ssl3_enc->do_write(s) + +/* Values for enc_flags */ + +/* Uses explicit IV for CBC mode */ +# define SSL_ENC_FLAG_EXPLICIT_IV 0x1 +/* Uses signature algorithms extension */ +# define SSL_ENC_FLAG_SIGALGS 0x2 +/* Uses SHA256 default PRF */ +# define SSL_ENC_FLAG_SHA256_PRF 0x4 +/* Is DTLS */ +# define SSL_ENC_FLAG_DTLS 0x8 +/* + * Allow TLS 1.2 ciphersuites: applies to DTLS 1.2 as well as TLS 1.2: may + * apply to others in future. + */ +# define SSL_ENC_FLAG_TLS1_2_CIPHERS 0x10 + # ifndef OPENSSL_NO_COMP /* Used for holding the relevant compression methods loaded into SSL_CTX */ typedef struct ssl3_comp_st { @@ -653,13 +842,14 @@ OPENSSL_EXTERN SSL_CIPHER ssl3_ciphers[]; SSL_METHOD *ssl_bad_method(int ver); extern SSL3_ENC_METHOD TLSv1_enc_data; +extern SSL3_ENC_METHOD TLSv1_1_enc_data; +extern SSL3_ENC_METHOD TLSv1_2_enc_data; extern SSL3_ENC_METHOD SSLv3_enc_data; extern SSL3_ENC_METHOD DTLSv1_enc_data; - -# define SSL_IS_DTLS(s) (s->method->version == DTLS1_VERSION) +extern SSL3_ENC_METHOD DTLSv1_2_enc_data; # define IMPLEMENT_tls_meth_func(version, func_name, s_accept, s_connect, \ - s_get_meth) \ + s_get_meth, enc_data) \ const SSL_METHOD *func_name(void) \ { \ static const SSL_METHOD func_name##_data= { \ @@ -688,7 +878,7 @@ const SSL_METHOD *func_name(void) \ ssl3_get_cipher, \ s_get_meth, \ tls1_default_timeout, \ - &TLSv1_enc_data, \ + &enc_data, \ ssl_undefined_void_function, \ ssl3_callback_ctrl, \ ssl3_ctx_callback_ctrl, \ @@ -762,7 +952,7 @@ const SSL_METHOD *func_name(void) \ ssl23_get_cipher, \ s_get_meth, \ ssl23_default_timeout, \ - &ssl3_undef_enc_method, \ + &TLSv1_2_enc_data, \ ssl_undefined_void_function, \ ssl3_callback_ctrl, \ ssl3_ctx_callback_ctrl, \ @@ -807,11 +997,12 @@ const SSL_METHOD *func_name(void) \ return &func_name##_data; \ } -# define IMPLEMENT_dtls1_meth_func(func_name, s_accept, s_connect, s_get_meth) \ +# define IMPLEMENT_dtls1_meth_func(version, func_name, s_accept, s_connect, \ + s_get_meth, enc_data) \ const SSL_METHOD *func_name(void) \ { \ static const SSL_METHOD func_name##_data= { \ - DTLS1_VERSION, \ + version, \ dtls1_new, \ dtls1_clear, \ dtls1_free, \ @@ -836,7 +1027,7 @@ const SSL_METHOD *func_name(void) \ dtls1_get_cipher, \ s_get_meth, \ dtls1_default_timeout, \ - &DTLSv1_enc_data, \ + &enc_data, \ ssl_undefined_void_function, \ ssl3_callback_ctrl, \ ssl3_ctx_callback_ctrl, \ @@ -857,7 +1048,9 @@ void ssl_clear_cipher_ctx(SSL *s); int ssl_clear_bad_session(SSL *s); CERT *ssl_cert_new(void); CERT *ssl_cert_dup(CERT *cert); +void ssl_cert_set_default_md(CERT *cert); int ssl_cert_inst(CERT **o); +void ssl_cert_clear_certs(CERT *c); void ssl_cert_free(CERT *c); SESS_CERT *ssl_sess_cert_new(void); void ssl_sess_cert_free(SESS_CERT *sc); @@ -880,18 +1073,36 @@ int ssl_cipher_list_to_bytes(SSL *s, STACK_OF(SSL_CIPHER) *sk, STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *meth, STACK_OF(SSL_CIPHER) **pref, STACK_OF(SSL_CIPHER) **sorted, - const char *rule_str); + const char *rule_str, CERT *c); void ssl_update_cache(SSL *s, int mode); int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc, const EVP_MD **md, int *mac_pkey_type, int *mac_secret_size, SSL_COMP **comp); int ssl_get_handshake_digest(int i, long *mask, const EVP_MD **md); +int ssl_cipher_get_cert_index(const SSL_CIPHER *c); +const SSL_CIPHER *ssl_get_cipher_by_char(SSL *ssl, const unsigned char *ptr); +int ssl_cert_set0_chain(CERT *c, STACK_OF(X509) *chain); +int ssl_cert_set1_chain(CERT *c, STACK_OF(X509) *chain); +int ssl_cert_add0_chain_cert(CERT *c, X509 *x); +int ssl_cert_add1_chain_cert(CERT *c, X509 *x); +int ssl_cert_select_current(CERT *c, X509 *x); +int ssl_cert_set_current(CERT *c, long arg); +X509 *ssl_cert_get0_next_certificate(CERT *c, int first); +void ssl_cert_set_cert_cb(CERT *c, int (*cb) (SSL *ssl, void *arg), + void *arg); + int ssl_verify_cert_chain(SSL *s, STACK_OF(X509) *sk); +int ssl_add_cert_chain(SSL *s, CERT_PKEY *cpk, unsigned long *l); +int ssl_build_cert_chain(CERT *c, X509_STORE *chain_store, int flags); +int ssl_cert_set_cert_store(CERT *c, X509_STORE *store, int chain, int ref); int ssl_undefined_function(SSL *s); int ssl_undefined_void_function(void); int ssl_undefined_const_function(const SSL *s); CERT_PKEY *ssl_get_server_send_pkey(const SSL *s); -X509 *ssl_get_server_send_cert(const SSL *); +# ifndef OPENSSL_NO_TLSEXT +int ssl_get_server_cert_serverinfo(SSL *s, const unsigned char **serverinfo, + size_t *serverinfo_length); +# endif EVP_PKEY *ssl_get_sign_pkey(SSL *s, const SSL_CIPHER *c, const EVP_MD **pmd); int ssl_cert_type(X509 *x, EVP_PKEY *pkey); void ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher); @@ -962,7 +1173,7 @@ void ssl3_finish_mac(SSL *s, const unsigned char *buf, int len); int ssl3_enc(SSL *s, int send_data); int n_ssl3_mac(SSL *ssl, unsigned char *md, int send_data); void ssl3_free_digest_list(SSL *s); -unsigned long ssl3_output_cert_chain(SSL *s, X509 *x); +unsigned long ssl3_output_cert_chain(SSL *s, CERT_PKEY *cpk); SSL_CIPHER *ssl3_choose_cipher(SSL *ssl, STACK_OF(SSL_CIPHER) *clnt, STACK_OF(SSL_CIPHER) *srvr); int ssl3_setup_buffers(SSL *s); @@ -990,6 +1201,9 @@ void ssl3_record_sequence_update(unsigned char *seq); int ssl3_do_change_cipher_spec(SSL *ssl); long ssl3_default_timeout(void); +void ssl3_set_handshake_header(SSL *s, int htype, unsigned long len); +int ssl3_handshake_write(SSL *s); + int ssl23_num_ciphers(void); const SSL_CIPHER *ssl23_get_cipher(unsigned int u); int ssl23_read(SSL *s, void *buf, int len); @@ -1017,8 +1231,6 @@ int dtls1_write_app_data_bytes(SSL *s, int type, const void *buf, int len); int dtls1_write_bytes(SSL *s, int type, const void *buf, int len); int dtls1_send_change_cipher_spec(SSL *s, int a, int b); -int dtls1_send_finished(SSL *s, int a, int b, const char *sender, int slen); -unsigned long dtls1_output_cert_chain(SSL *s, X509 *x); int dtls1_read_failed(SSL *s, int code); int dtls1_buffer_message(SSL *s, int ccs); int dtls1_retransmit_message(SSL *s, unsigned short seq, @@ -1065,9 +1277,6 @@ int ssl3_send_next_proto(SSL *s); # endif int dtls1_client_hello(SSL *s); -int dtls1_send_client_certificate(SSL *s); -int dtls1_send_client_key_exchange(SSL *s); -int dtls1_send_client_verify(SSL *s); /* some server-only functions */ int ssl3_get_client_hello(SSL *s); @@ -1076,7 +1285,6 @@ int ssl3_send_hello_request(SSL *s); int ssl3_send_server_key_exchange(SSL *s); int ssl3_send_certificate_request(SSL *s); int ssl3_send_server_done(SSL *s); -int ssl3_check_client_hello(SSL *s); int ssl3_get_client_certificate(SSL *s); int ssl3_get_client_key_exchange(SSL *s); int ssl3_get_cert_verify(SSL *s); @@ -1084,13 +1292,6 @@ int ssl3_get_cert_verify(SSL *s); int ssl3_get_next_proto(SSL *s); # endif -int dtls1_send_hello_request(SSL *s); -int dtls1_send_server_hello(SSL *s); -int dtls1_send_server_certificate(SSL *s); -int dtls1_send_server_key_exchange(SSL *s); -int dtls1_send_certificate_request(SSL *s); -int dtls1_send_server_done(SSL *s); - int ssl23_accept(SSL *s); int ssl23_connect(SSL *s); int ssl23_read_bytes(SSL *s, int n); @@ -1115,7 +1316,6 @@ int dtls1_get_record(SSL *s); int do_dtls1_write(SSL *s, int type, const unsigned char *buf, unsigned int len, int create_empty_fragement); int dtls1_dispatch_alert(SSL *s); -int dtls1_enc(SSL *s, int snd); int ssl_init_wbio_buffer(SSL *s, int push); void ssl_free_wbio_buffer(SSL *s); @@ -1146,22 +1346,33 @@ SSL_COMP *ssl3_comp_find(STACK_OF(SSL_COMP) *sk, int n); # ifndef OPENSSL_NO_EC int tls1_ec_curve_id2nid(int curve_id); int tls1_ec_nid2curve_id(int nid); +int tls1_check_curve(SSL *s, const unsigned char *p, size_t len); +int tls1_shared_curve(SSL *s, int nmatch); +int tls1_set_curves(unsigned char **pext, size_t *pextlen, + int *curves, size_t ncurves); +int tls1_set_curves_list(unsigned char **pext, size_t *pextlen, + const char *str); +# ifndef OPENSSL_NO_ECDH +int tls1_check_ec_tmp_key(SSL *s, unsigned long id); +# endif /* OPENSSL_NO_ECDH */ # endif /* OPENSSL_NO_EC */ # ifndef OPENSSL_NO_TLSEXT +int tls1_shared_list(SSL *s, + const unsigned char *l1, size_t l1len, + const unsigned char *l2, size_t l2len, int nmatch); unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *buf, - unsigned char *limit); + unsigned char *limit, int *al); unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *buf, - unsigned char *limit); + unsigned char *limit, int *al); int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **data, - unsigned char *d, int n, int *al); + unsigned char *limit); +int tls1_set_server_sigalgs(SSL *s); +int ssl_check_clienthello_tlsext_late(SSL *s); int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **data, - unsigned char *d, int n, int *al); + unsigned char *d, int n); int ssl_prepare_clienthello_tlsext(SSL *s); int ssl_prepare_serverhello_tlsext(SSL *s); -int ssl_check_clienthello_tlsext_early(SSL *s); -int ssl_check_clienthello_tlsext_late(SSL *s); -int ssl_check_serverhello_tlsext(SSL *s); # ifndef OPENSSL_NO_HEARTBEATS int tls1_heartbeat(SSL *s); @@ -1183,6 +1394,12 @@ int tls12_get_sigandhash(unsigned char *p, const EVP_PKEY *pk, int tls12_get_sigid(const EVP_PKEY *pk); const EVP_MD *tls12_get_hash(unsigned char hash_alg); +int tls1_set_sigalgs_list(CERT *c, const char *str, int client); +int tls1_set_sigalgs(CERT *c, const int *salg, size_t salglen, int client); +int tls1_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain, + int idx); +void tls1_set_cert_validity(SSL *s); + # endif EVP_MD_CTX *ssl_replace_hash(EVP_MD_CTX **hash, const EVP_MD *md); void ssl_clear_hash_ctx(EVP_MD_CTX **hash); @@ -1195,8 +1412,12 @@ int ssl_add_clienthello_renegotiate_ext(SSL *s, unsigned char *p, int *len, int ssl_parse_clienthello_renegotiate_ext(SSL *s, unsigned char *d, int len, int *al); long ssl_get_algorithm2(SSL *s); -int tls1_process_sigalgs(SSL *s, const unsigned char *data, int dsize); -int tls12_get_req_sig_algs(SSL *s, unsigned char *p); +int tls1_save_sigalgs(SSL *s, const unsigned char *data, int dsize); +int tls1_process_sigalgs(SSL *s); +size_t tls12_get_psigalgs(SSL *s, const unsigned char **psigs); +int tls12_check_peer_sigalg(const EVP_MD **pmd, SSL *s, + const unsigned char *sig, EVP_PKEY *pkey); +void ssl_set_client_disabled(SSL *s); int ssl_add_clienthello_use_srtp_ext(SSL *s, unsigned char *p, int *len, int maxlen); @@ -1218,15 +1439,15 @@ int tls1_cbc_remove_padding(const SSL *s, SSL3_RECORD *rec, unsigned block_size, unsigned mac_size); char ssl3_cbc_record_digest_supported(const EVP_MD_CTX *ctx); -void ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, - unsigned char *md_out, - size_t *md_out_size, - const unsigned char header[13], - const unsigned char *data, - size_t data_plus_mac_size, - size_t data_plus_mac_plus_padding_size, - const unsigned char *mac_secret, - unsigned mac_secret_length, char is_sslv3); +int ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, + unsigned char *md_out, + size_t *md_out_size, + const unsigned char header[13], + const unsigned char *data, + size_t data_plus_mac_size, + size_t data_plus_mac_plus_padding_size, + const unsigned char *mac_secret, + unsigned mac_secret_length, char is_sslv3); void tls_fips_digest_extra(const EVP_CIPHER_CTX *cipher_ctx, EVP_MD_CTX *mac_ctx, const unsigned char *data, @@ -1234,6 +1455,19 @@ void tls_fips_digest_extra(const EVP_CIPHER_CTX *cipher_ctx, int srp_verify_server_param(SSL *s, int *al); +/* t1_ext.c */ + +void custom_ext_init(custom_ext_methods *meths); + +int custom_ext_parse(SSL *s, int server, + unsigned int ext_type, + const unsigned char *ext_data, size_t ext_size, int *al); +int custom_ext_add(SSL *s, int server, + unsigned char **pret, unsigned char *limit, int *al); + +int custom_exts_copy(custom_ext_methods *dst, const custom_ext_methods *src); +void custom_exts_free(custom_ext_methods *exts); + # else # define ssl_init_wbio_buffer SSL_test_functions()->p_ssl_init_wbio_buffer diff --git a/libs/openssl/ssl/ssl_rsa.c b/libs/openssl/ssl/ssl_rsa.c index daf15dd9..b0f75c91 100644 --- a/libs/openssl/ssl/ssl_rsa.c +++ b/libs/openssl/ssl/ssl_rsa.c @@ -160,7 +160,10 @@ int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa) } RSA_up_ref(rsa); - EVP_PKEY_assign_RSA(pkey, rsa); + if (EVP_PKEY_assign_RSA(pkey, rsa) <= 0) { + RSA_free(rsa); + return 0; + } ret = ssl_set_pkey(ssl->cert, pkey); EVP_PKEY_free(pkey); @@ -171,8 +174,22 @@ int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa) static int ssl_set_pkey(CERT *c, EVP_PKEY *pkey) { int i; - - i = ssl_cert_type(NULL, pkey); + /* + * Special case for DH: check two DH certificate types for a match. This + * means for DH certificates we must set the certificate first. + */ + if (pkey->type == EVP_PKEY_DH) { + X509 *x; + i = -1; + x = c->pkeys[SSL_PKEY_DH_RSA].x509; + if (x && X509_check_private_key(x, pkey)) + i = SSL_PKEY_DH_RSA; + x = c->pkeys[SSL_PKEY_DH_DSA].x509; + if (i == -1 && x && X509_check_private_key(x, pkey)) + i = SSL_PKEY_DH_DSA; + ERR_clear_error(); + } else + i = ssl_cert_type(NULL, pkey); if (i < 0) { SSLerr(SSL_F_SSL_SET_PKEY, SSL_R_UNKNOWN_CERTIFICATE_TYPE); return (0); @@ -181,6 +198,15 @@ static int ssl_set_pkey(CERT *c, EVP_PKEY *pkey) if (c->pkeys[i].x509 != NULL) { EVP_PKEY *pktmp; pktmp = X509_get_pubkey(c->pkeys[i].x509); + if (pktmp == NULL) { + SSLerr(SSL_F_SSL_SET_PKEY, ERR_R_MALLOC_FAILURE); + EVP_PKEY_free(pktmp); + return 0; + } + /* + * The return code from EVP_PKEY_copy_parameters is deliberately + * ignored. Some EVP_PKEY types cannot do this. + */ EVP_PKEY_copy_parameters(pktmp, pkey); EVP_PKEY_free(pktmp); ERR_clear_error(); @@ -382,6 +408,10 @@ static int ssl_set_cert(CERT *c, X509 *x) } if (c->pkeys[i].privatekey != NULL) { + /* + * The return code from EVP_PKEY_copy_parameters is deliberately + * ignored. Some EVP_PKEY types cannot do this. + */ EVP_PKEY_copy_parameters(pkey, c->pkeys[i].privatekey); ERR_clear_error(); @@ -502,7 +532,10 @@ int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa) } RSA_up_ref(rsa); - EVP_PKEY_assign_RSA(pkey, rsa); + if (EVP_PKEY_assign_RSA(pkey, rsa) <= 0) { + RSA_free(rsa); + return 0; + } ret = ssl_set_pkey(ctx->cert, pkey); EVP_PKEY_free(pkey); @@ -690,16 +723,13 @@ int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file) int r; unsigned long err; - if (ctx->extra_certs != NULL) { - sk_X509_pop_free(ctx->extra_certs, X509_free); - ctx->extra_certs = NULL; - } + SSL_CTX_clear_chain_certs(ctx); while ((ca = PEM_read_bio_X509(in, NULL, ctx->default_passwd_callback, ctx->default_passwd_callback_userdata)) != NULL) { - r = SSL_CTX_add_extra_chain_cert(ctx, ca); + r = SSL_CTX_add0_chain_cert(ctx, ca); if (!r) { X509_free(ca); ret = 0; @@ -728,3 +758,272 @@ int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file) return (ret); } #endif + +#ifndef OPENSSL_NO_TLSEXT +static int serverinfo_find_extension(const unsigned char *serverinfo, + size_t serverinfo_length, + unsigned int extension_type, + const unsigned char **extension_data, + size_t *extension_length) +{ + *extension_data = NULL; + *extension_length = 0; + if (serverinfo == NULL || serverinfo_length == 0) + return -1; + for (;;) { + unsigned int type = 0; + size_t len = 0; + + /* end of serverinfo */ + if (serverinfo_length == 0) + return 0; /* Extension not found */ + + /* read 2-byte type field */ + if (serverinfo_length < 2) + return -1; /* Error */ + type = (serverinfo[0] << 8) + serverinfo[1]; + serverinfo += 2; + serverinfo_length -= 2; + + /* read 2-byte len field */ + if (serverinfo_length < 2) + return -1; /* Error */ + len = (serverinfo[0] << 8) + serverinfo[1]; + serverinfo += 2; + serverinfo_length -= 2; + + if (len > serverinfo_length) + return -1; /* Error */ + + if (type == extension_type) { + *extension_data = serverinfo; + *extension_length = len; + return 1; /* Success */ + } + + serverinfo += len; + serverinfo_length -= len; + } + return 0; /* Error */ +} + +static int serverinfo_srv_parse_cb(SSL *s, unsigned int ext_type, + const unsigned char *in, + size_t inlen, int *al, void *arg) +{ + + if (inlen != 0) { + *al = SSL_AD_DECODE_ERROR; + return 0; + } + + return 1; +} + +static int serverinfo_srv_add_cb(SSL *s, unsigned int ext_type, + const unsigned char **out, size_t *outlen, + int *al, void *arg) +{ + const unsigned char *serverinfo = NULL; + size_t serverinfo_length = 0; + + /* Is there serverinfo data for the chosen server cert? */ + if ((ssl_get_server_cert_serverinfo(s, &serverinfo, + &serverinfo_length)) != 0) { + /* Find the relevant extension from the serverinfo */ + int retval = serverinfo_find_extension(serverinfo, serverinfo_length, + ext_type, out, outlen); + if (retval == -1) { + *al = SSL_AD_DECODE_ERROR; + return -1; /* Error */ + } + if (retval == 0) + return 0; /* No extension found, don't send extension */ + return 1; /* Send extension */ + } + return -1; /* No serverinfo data found, don't send + * extension */ +} + +/* + * With a NULL context, this function just checks that the serverinfo data + * parses correctly. With a non-NULL context, it registers callbacks for + * the included extensions. + */ +static int serverinfo_process_buffer(const unsigned char *serverinfo, + size_t serverinfo_length, SSL_CTX *ctx) +{ + if (serverinfo == NULL || serverinfo_length == 0) + return 0; + for (;;) { + unsigned int ext_type = 0; + size_t len = 0; + + /* end of serverinfo */ + if (serverinfo_length == 0) + return 1; + + /* read 2-byte type field */ + if (serverinfo_length < 2) + return 0; + /* FIXME: check for types we understand explicitly? */ + + /* Register callbacks for extensions */ + ext_type = (serverinfo[0] << 8) + serverinfo[1]; + if (ctx && !SSL_CTX_add_server_custom_ext(ctx, ext_type, + serverinfo_srv_add_cb, + NULL, NULL, + serverinfo_srv_parse_cb, + NULL)) + return 0; + + serverinfo += 2; + serverinfo_length -= 2; + + /* read 2-byte len field */ + if (serverinfo_length < 2) + return 0; + len = (serverinfo[0] << 8) + serverinfo[1]; + serverinfo += 2; + serverinfo_length -= 2; + + if (len > serverinfo_length) + return 0; + + serverinfo += len; + serverinfo_length -= len; + } +} + +int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, + size_t serverinfo_length) +{ + if (ctx == NULL || serverinfo == NULL || serverinfo_length == 0) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO, ERR_R_PASSED_NULL_PARAMETER); + return 0; + } + if (!serverinfo_process_buffer(serverinfo, serverinfo_length, NULL)) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO, SSL_R_INVALID_SERVERINFO_DATA); + return 0; + } + if (!ssl_cert_inst(&ctx->cert)) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO, ERR_R_MALLOC_FAILURE); + return 0; + } + if (ctx->cert->key == NULL) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO, ERR_R_INTERNAL_ERROR); + return 0; + } + ctx->cert->key->serverinfo = OPENSSL_realloc(ctx->cert->key->serverinfo, + serverinfo_length); + if (ctx->cert->key->serverinfo == NULL) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO, ERR_R_MALLOC_FAILURE); + return 0; + } + memcpy(ctx->cert->key->serverinfo, serverinfo, serverinfo_length); + ctx->cert->key->serverinfo_length = serverinfo_length; + + /* + * Now that the serverinfo is validated and stored, go ahead and + * register callbacks. + */ + if (!serverinfo_process_buffer(serverinfo, serverinfo_length, ctx)) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO, SSL_R_INVALID_SERVERINFO_DATA); + return 0; + } + return 1; +} + +# ifndef OPENSSL_NO_STDIO +int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file) +{ + unsigned char *serverinfo = NULL; + size_t serverinfo_length = 0; + unsigned char *extension = 0; + long extension_length = 0; + char *name = NULL; + char *header = NULL; + char namePrefix[] = "SERVERINFO FOR "; + int ret = 0; + BIO *bin = NULL; + size_t num_extensions = 0; + + if (ctx == NULL || file == NULL) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO_FILE, + ERR_R_PASSED_NULL_PARAMETER); + goto end; + } + + bin = BIO_new(BIO_s_file_internal()); + if (bin == NULL) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO_FILE, ERR_R_BUF_LIB); + goto end; + } + if (BIO_read_filename(bin, file) <= 0) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO_FILE, ERR_R_SYS_LIB); + goto end; + } + + for (num_extensions = 0;; num_extensions++) { + if (PEM_read_bio(bin, &name, &header, &extension, &extension_length) + == 0) { + /* + * There must be at least one extension in this file + */ + if (num_extensions == 0) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO_FILE, + SSL_R_NO_PEM_EXTENSIONS); + goto end; + } else /* End of file, we're done */ + break; + } + /* Check that PEM name starts with "BEGIN SERVERINFO FOR " */ + if (strlen(name) < strlen(namePrefix)) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO_FILE, + SSL_R_PEM_NAME_TOO_SHORT); + goto end; + } + if (strncmp(name, namePrefix, strlen(namePrefix)) != 0) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO_FILE, + SSL_R_PEM_NAME_BAD_PREFIX); + goto end; + } + /* + * Check that the decoded PEM data is plausible (valid length field) + */ + if (extension_length < 4 + || (extension[2] << 8) + extension[3] != extension_length - 4) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO_FILE, SSL_R_BAD_DATA); + goto end; + } + /* Append the decoded extension to the serverinfo buffer */ + serverinfo = + OPENSSL_realloc(serverinfo, serverinfo_length + extension_length); + if (serverinfo == NULL) { + SSLerr(SSL_F_SSL_CTX_USE_SERVERINFO_FILE, ERR_R_MALLOC_FAILURE); + goto end; + } + memcpy(serverinfo + serverinfo_length, extension, extension_length); + serverinfo_length += extension_length; + + OPENSSL_free(name); + name = NULL; + OPENSSL_free(header); + header = NULL; + OPENSSL_free(extension); + extension = NULL; + } + + ret = SSL_CTX_use_serverinfo(ctx, serverinfo, serverinfo_length); + end: + /* SSL_CTX_use_serverinfo makes a local copy of the serverinfo. */ + OPENSSL_free(name); + OPENSSL_free(header); + OPENSSL_free(extension); + OPENSSL_free(serverinfo); + if (bin != NULL) + BIO_free(bin); + return ret; +} +# endif /* OPENSSL_NO_STDIO */ +#endif /* OPENSSL_NO_TLSEXT */ diff --git a/libs/openssl/ssl/ssl_sess.c b/libs/openssl/ssl/ssl_sess.c index 1ad9dc79..68390d31 100644 --- a/libs/openssl/ssl/ssl_sess.c +++ b/libs/openssl/ssl/ssl_sess.c @@ -256,8 +256,8 @@ SSL_SESSION *ssl_session_dup(SSL_SESSION *src, int ticket) dest->tlsext_ecpointformatlist = NULL; dest->tlsext_ellipticcurvelist = NULL; # endif -#endif dest->tlsext_tick = NULL; +#endif #ifndef OPENSSL_NO_SRP dest->srp_username = NULL; #endif @@ -324,7 +324,6 @@ SSL_SESSION *ssl_session_dup(SSL_SESSION *src, int ticket) goto err; } # endif -#endif if (ticket != 0) { dest->tlsext_tick = BUF_memdup(src->tlsext_tick, src->tlsext_ticklen); @@ -334,6 +333,7 @@ SSL_SESSION *ssl_session_dup(SSL_SESSION *src, int ticket) dest->tlsext_tick_lifetime_hint = 0; dest->tlsext_ticklen = 0; } +#endif #ifndef OPENSSL_NO_SRP if (src->srp_username) { @@ -444,6 +444,9 @@ int ssl_get_new_session(SSL *s, int session) } else if (s->version == DTLS1_VERSION) { ss->ssl_version = DTLS1_VERSION; ss->session_id_length = SSL3_SSL_SESSION_ID_LENGTH; + } else if (s->version == DTLS1_2_VERSION) { + ss->ssl_version = DTLS1_2_VERSION; + ss->session_id_length = SSL3_SSL_SESSION_ID_LENGTH; } else { SSLerr(SSL_F_SSL_GET_NEW_SESSION, SSL_R_UNSUPPORTED_SSL_VERSION); SSL_SESSION_free(ss); @@ -519,38 +522,6 @@ int ssl_get_new_session(SSL *s, int session) return 0; } } -# ifndef OPENSSL_NO_EC - if (s->tlsext_ecpointformatlist) { - if (ss->tlsext_ecpointformatlist != NULL) - OPENSSL_free(ss->tlsext_ecpointformatlist); - if ((ss->tlsext_ecpointformatlist = - OPENSSL_malloc(s->tlsext_ecpointformatlist_length)) == - NULL) { - SSLerr(SSL_F_SSL_GET_NEW_SESSION, ERR_R_MALLOC_FAILURE); - SSL_SESSION_free(ss); - return 0; - } - ss->tlsext_ecpointformatlist_length = - s->tlsext_ecpointformatlist_length; - memcpy(ss->tlsext_ecpointformatlist, s->tlsext_ecpointformatlist, - s->tlsext_ecpointformatlist_length); - } - if (s->tlsext_ellipticcurvelist) { - if (ss->tlsext_ellipticcurvelist != NULL) - OPENSSL_free(ss->tlsext_ellipticcurvelist); - if ((ss->tlsext_ellipticcurvelist = - OPENSSL_malloc(s->tlsext_ellipticcurvelist_length)) == - NULL) { - SSLerr(SSL_F_SSL_GET_NEW_SESSION, ERR_R_MALLOC_FAILURE); - SSL_SESSION_free(ss); - return 0; - } - ss->tlsext_ellipticcurvelist_length = - s->tlsext_ellipticcurvelist_length; - memcpy(ss->tlsext_ellipticcurvelist, s->tlsext_ellipticcurvelist, - s->tlsext_ellipticcurvelist_length); - } -# endif #endif } else { ss->session_id_length = 0; diff --git a/libs/openssl/ssl/ssl_txt.c b/libs/openssl/ssl/ssl_txt.c index bd67dc70..45308d8b 100644 --- a/libs/openssl/ssl/ssl_txt.c +++ b/libs/openssl/ssl/ssl_txt.c @@ -124,6 +124,8 @@ int SSL_SESSION_print(BIO *bp, const SSL_SESSION *x) s = "TLSv1"; else if (x->ssl_version == DTLS1_VERSION) s = "DTLSv1"; + else if (x->ssl_version == DTLS1_2_VERSION) + s = "DTLSv1.2"; else if (x->ssl_version == DTLS1_BAD_VER) s = "DTLSv1-bad"; else diff --git a/libs/openssl/ssl/t1_clnt.c b/libs/openssl/ssl/t1_clnt.c index 05c7f200..746b4e6b 100644 --- a/libs/openssl/ssl/t1_clnt.c +++ b/libs/openssl/ssl/t1_clnt.c @@ -77,12 +77,14 @@ static const SSL_METHOD *tls1_get_client_method(int ver) IMPLEMENT_tls_meth_func(TLS1_2_VERSION, TLSv1_2_client_method, ssl_undefined_function, - ssl3_connect, tls1_get_client_method) + ssl3_connect, + tls1_get_client_method, TLSv1_2_enc_data) IMPLEMENT_tls_meth_func(TLS1_1_VERSION, TLSv1_1_client_method, ssl_undefined_function, - ssl3_connect, tls1_get_client_method) + ssl3_connect, + tls1_get_client_method, TLSv1_1_enc_data) IMPLEMENT_tls_meth_func(TLS1_VERSION, TLSv1_client_method, ssl_undefined_function, - ssl3_connect, tls1_get_client_method) + ssl3_connect, tls1_get_client_method, TLSv1_enc_data) diff --git a/libs/openssl/ssl/t1_enc.c b/libs/openssl/ssl/t1_enc.c index 8f45294e..f46544b4 100644 --- a/libs/openssl/ssl/t1_enc.c +++ b/libs/openssl/ssl/t1_enc.c @@ -160,7 +160,7 @@ static int tls1_P_hash(const EVP_MD *md, const unsigned char *sec, { int chunk; size_t j; - EVP_MD_CTX ctx, ctx_tmp; + EVP_MD_CTX ctx, ctx_tmp, ctx_init; EVP_PKEY *mac_key; unsigned char A1[EVP_MAX_MD_SIZE]; size_t A1_len; @@ -171,14 +171,14 @@ static int tls1_P_hash(const EVP_MD *md, const unsigned char *sec, EVP_MD_CTX_init(&ctx); EVP_MD_CTX_init(&ctx_tmp); - EVP_MD_CTX_set_flags(&ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); - EVP_MD_CTX_set_flags(&ctx_tmp, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); + EVP_MD_CTX_init(&ctx_init); + EVP_MD_CTX_set_flags(&ctx_init, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); mac_key = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, NULL, sec, sec_len); if (!mac_key) goto err; - if (!EVP_DigestSignInit(&ctx, NULL, md, NULL, mac_key)) + if (!EVP_DigestSignInit(&ctx_init, NULL, md, NULL, mac_key)) goto err; - if (!EVP_DigestSignInit(&ctx_tmp, NULL, md, NULL, mac_key)) + if (!EVP_MD_CTX_copy_ex(&ctx, &ctx_init)) goto err; if (seed1 && !EVP_DigestSignUpdate(&ctx, seed1, seed1_len)) goto err; @@ -195,13 +195,11 @@ static int tls1_P_hash(const EVP_MD *md, const unsigned char *sec, for (;;) { /* Reinit mac contexts */ - if (!EVP_DigestSignInit(&ctx, NULL, md, NULL, mac_key)) - goto err; - if (!EVP_DigestSignInit(&ctx_tmp, NULL, md, NULL, mac_key)) + if (!EVP_MD_CTX_copy_ex(&ctx, &ctx_init)) goto err; if (!EVP_DigestSignUpdate(&ctx, A1, A1_len)) goto err; - if (!EVP_DigestSignUpdate(&ctx_tmp, A1, A1_len)) + if (olen > chunk && !EVP_MD_CTX_copy_ex(&ctx_tmp, &ctx)) goto err; if (seed1 && !EVP_DigestSignUpdate(&ctx, seed1, seed1_len)) goto err; @@ -235,6 +233,7 @@ static int tls1_P_hash(const EVP_MD *md, const unsigned char *sec, EVP_PKEY_free(mac_key); EVP_MD_CTX_cleanup(&ctx); EVP_MD_CTX_cleanup(&ctx_tmp); + EVP_MD_CTX_cleanup(&ctx_init); OPENSSL_cleanse(A1, sizeof(A1)); return ret; } @@ -385,6 +384,8 @@ int tls1_change_cipher_state(SSL *s, int which) EVP_CIPHER_CTX_init(s->enc_read_ctx); dd = s->enc_read_ctx; mac_ctx = ssl_replace_hash(&s->read_hash, NULL); + if (mac_ctx == NULL) + goto err; #ifndef OPENSSL_NO_COMP if (s->expand != NULL) { COMP_CTX_free(s->expand); @@ -405,9 +406,9 @@ int tls1_change_cipher_state(SSL *s, int which) } #endif /* - * this is done by dtls1_reset_seq_numbers for DTLS1_VERSION + * this is done by dtls1_reset_seq_numbers for DTLS */ - if (s->version != DTLS1_VERSION) + if (!SSL_IS_DTLS(s)) memset(&(s->s3->read_sequence[0]), 0, 8); mac_secret = &(s->s3->read_mac_secret[0]); mac_secret_size = &(s->s3->read_mac_secret_size); @@ -423,11 +424,14 @@ int tls1_change_cipher_state(SSL *s, int which) dd = s->enc_write_ctx; if (SSL_IS_DTLS(s)) { mac_ctx = EVP_MD_CTX_create(); - if (!mac_ctx) + if (mac_ctx == NULL) goto err; s->write_hash = mac_ctx; - } else + } else { mac_ctx = ssl_replace_hash(&s->write_hash, NULL); + if (mac_ctx == NULL) + goto err; + } #ifndef OPENSSL_NO_COMP if (s->compress != NULL) { COMP_CTX_free(s->compress); @@ -443,9 +447,9 @@ int tls1_change_cipher_state(SSL *s, int which) } #endif /* - * this is done by dtls1_reset_seq_numbers for DTLS1_VERSION + * this is done by dtls1_reset_seq_numbers for DTLS */ - if (s->version != DTLS1_VERSION) + if (!SSL_IS_DTLS(s)) memset(&(s->s3->write_sequence[0]), 0, 8); mac_secret = &(s->s3->write_mac_secret[0]); mac_secret_size = &(s->s3->write_mac_secret_size); @@ -500,7 +504,12 @@ int tls1_change_cipher_state(SSL *s, int which) if (!(EVP_CIPHER_flags(c) & EVP_CIPH_FLAG_AEAD_CIPHER)) { mac_key = EVP_PKEY_new_mac_key(mac_type, NULL, mac_secret, *mac_secret_size); - EVP_DigestSignInit(mac_ctx, NULL, m, NULL, mac_key); + if (mac_key == NULL + || EVP_DigestSignInit(mac_ctx, NULL, m, NULL, mac_key) <= 0) { + EVP_PKEY_free(mac_key); + SSLerr(SSL_F_TLS1_CHANGE_CIPHER_STATE, ERR_R_INTERNAL_ERROR); + goto err2; + } EVP_PKEY_free(mac_key); } #ifdef TLS_DEBUG @@ -574,6 +583,25 @@ int tls1_change_cipher_state(SSL *s, int which) SSLerr(SSL_F_TLS1_CHANGE_CIPHER_STATE, ERR_R_INTERNAL_ERROR); goto err2; } +#ifdef OPENSSL_SSL_TRACE_CRYPTO + if (s->msg_callback) { + int wh = which & SSL3_CC_WRITE ? TLS1_RT_CRYPTO_WRITE : 0; + if (*mac_secret_size) + s->msg_callback(2, s->version, wh | TLS1_RT_CRYPTO_MAC, + mac_secret, *mac_secret_size, + s, s->msg_callback_arg); + if (c->key_len) + s->msg_callback(2, s->version, wh | TLS1_RT_CRYPTO_KEY, + key, c->key_len, s, s->msg_callback_arg); + if (k) { + if (EVP_CIPHER_mode(c) == EVP_CIPH_GCM_MODE) + wh |= TLS1_RT_CRYPTO_FIXED_IV; + else + wh |= TLS1_RT_CRYPTO_IV; + s->msg_callback(2, s->version, wh, iv, k, s, s->msg_callback_arg); + } + } +#endif #ifdef TLS_DEBUG printf("which = %04X\nkey=", which); @@ -741,7 +769,7 @@ int tls1_enc(SSL *s, int send) int ivlen; enc = EVP_CIPHER_CTX_cipher(s->enc_write_ctx); /* For TLSv1.1 and later explicit IV */ - if (s->version >= TLS1_1_VERSION + if (SSL_USE_EXPLICIT_IV(s) && EVP_CIPHER_mode(enc) == EVP_CIPH_CBC_MODE) ivlen = EVP_CIPHER_iv_length(enc); else @@ -789,7 +817,7 @@ int tls1_enc(SSL *s, int send) seq = send ? s->s3->write_sequence : s->s3->read_sequence; - if (s->version == DTLS1_VERSION || s->version == DTLS1_BAD_VER) { + if (SSL_IS_DTLS(s)) { unsigned char dtlsseq[9], *p = dtlsseq; s2n(send ? s->d1->w_epoch : s->d1->r_epoch, p); @@ -913,8 +941,9 @@ int tls1_cert_verify_mac(SSL *s, int md_nid, unsigned char *out) } EVP_MD_CTX_init(&ctx); - EVP_MD_CTX_copy_ex(&ctx, d); - EVP_DigestFinal_ex(&ctx, out, &ret); + if (EVP_MD_CTX_copy_ex(&ctx, d) <=0 + || EVP_DigestFinal_ex(&ctx, out, &ret) <= 0) + ret = 0; EVP_MD_CTX_cleanup(&ctx); return ((int)ret); } @@ -1010,7 +1039,7 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send) mac_ctx = &hmac; } - if (ssl->version == DTLS1_VERSION || ssl->version == DTLS1_BAD_VER) { + if (SSL_IS_DTLS(ssl)) { unsigned char dtlsseq[8], *p = dtlsseq; s2n(send ? ssl->d1->w_epoch : ssl->d1->r_epoch, p); @@ -1041,17 +1070,24 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send) * are hashing because that gives an attacker a timing-oracle. */ /* Final param == not SSLv3 */ - ssl3_cbc_digest_record(mac_ctx, - md, &md_size, - header, rec->input, - rec->length + md_size, orig_len, - ssl->s3->read_mac_secret, - ssl->s3->read_mac_secret_size, 0); + if (ssl3_cbc_digest_record(mac_ctx, + md, &md_size, + header, rec->input, + rec->length + md_size, orig_len, + ssl->s3->read_mac_secret, + ssl->s3->read_mac_secret_size, 0) <= 0) { + if (!stream_mac) + EVP_MD_CTX_cleanup(&hmac); + return -1; + } } else { - EVP_DigestSignUpdate(mac_ctx, header, sizeof(header)); - EVP_DigestSignUpdate(mac_ctx, rec->input, rec->length); - t = EVP_DigestSignFinal(mac_ctx, md, &md_size); - OPENSSL_assert(t > 0); + if (EVP_DigestSignUpdate(mac_ctx, header, sizeof(header)) <= 0 + || EVP_DigestSignUpdate(mac_ctx, rec->input, rec->length) <= 0 + || EVP_DigestSignFinal(mac_ctx, md, &md_size) <= 0) { + if (!stream_mac) + EVP_MD_CTX_cleanup(&hmac); + return -1; + } #ifdef OPENSSL_FIPS if (!send && FIPS_mode()) tls_fips_digest_extra(ssl->enc_read_ctx, @@ -1078,7 +1114,7 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send) } #endif - if (ssl->version != DTLS1_VERSION && ssl->version != DTLS1_BAD_VER) { + if (!SSL_IS_DTLS(ssl)) { for (i = 7; i >= 0; i--) { ++seq[i]; if (seq[i] != 0) @@ -1144,6 +1180,22 @@ int tls1_generate_master_secret(SSL *s, unsigned char *out, unsigned char *p, SSL3_MASTER_SECRET_SIZE); #endif +#ifdef OPENSSL_SSL_TRACE_CRYPTO + if (s->msg_callback) { + s->msg_callback(2, s->version, TLS1_RT_CRYPTO_PREMASTER, + p, len, s, s->msg_callback_arg); + s->msg_callback(2, s->version, TLS1_RT_CRYPTO_CLIENT_RANDOM, + s->s3->client_random, SSL3_RANDOM_SIZE, + s, s->msg_callback_arg); + s->msg_callback(2, s->version, TLS1_RT_CRYPTO_SERVER_RANDOM, + s->s3->server_random, SSL3_RANDOM_SIZE, + s, s->msg_callback_arg); + s->msg_callback(2, s->version, TLS1_RT_CRYPTO_MASTER, + s->session->master_key, + SSL3_MASTER_SECRET_SIZE, s, s->msg_callback_arg); + } +#endif + #ifdef KSSL_DEBUG fprintf(stderr, "tls1_generate_master_secret() complete\n"); #endif /* KSSL_DEBUG */ diff --git a/libs/openssl/ssl/t1_ext.c b/libs/openssl/ssl/t1_ext.c new file mode 100644 index 00000000..724ddf76 --- /dev/null +++ b/libs/openssl/ssl/t1_ext.c @@ -0,0 +1,298 @@ +/* ssl/t1_ext.c */ +/* ==================================================================== + * Copyright (c) 2014 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + +/* Custom extension utility functions */ + +#include "ssl_locl.h" + +#ifndef OPENSSL_NO_TLSEXT + +/* Find a custom extension from the list. */ +static custom_ext_method *custom_ext_find(custom_ext_methods *exts, + unsigned int ext_type) +{ + size_t i; + custom_ext_method *meth = exts->meths; + for (i = 0; i < exts->meths_count; i++, meth++) { + if (ext_type == meth->ext_type) + return meth; + } + return NULL; +} + +/* + * Initialise custom extensions flags to indicate neither sent nor received. + */ +void custom_ext_init(custom_ext_methods *exts) +{ + size_t i; + custom_ext_method *meth = exts->meths; + for (i = 0; i < exts->meths_count; i++, meth++) + meth->ext_flags = 0; +} + +/* Pass received custom extension data to the application for parsing. */ +int custom_ext_parse(SSL *s, int server, + unsigned int ext_type, + const unsigned char *ext_data, size_t ext_size, int *al) +{ + custom_ext_methods *exts = server ? &s->cert->srv_ext : &s->cert->cli_ext; + custom_ext_method *meth; + meth = custom_ext_find(exts, ext_type); + /* If not found return success */ + if (!meth) + return 1; + if (!server) { + /* + * If it's ServerHello we can't have any extensions not sent in + * ClientHello. + */ + if (!(meth->ext_flags & SSL_EXT_FLAG_SENT)) { + *al = TLS1_AD_UNSUPPORTED_EXTENSION; + return 0; + } + } + /* If already present it's a duplicate */ + if (meth->ext_flags & SSL_EXT_FLAG_RECEIVED) { + *al = TLS1_AD_DECODE_ERROR; + return 0; + } + meth->ext_flags |= SSL_EXT_FLAG_RECEIVED; + /* If no parse function set return success */ + if (!meth->parse_cb) + return 1; + + return meth->parse_cb(s, ext_type, ext_data, ext_size, al, + meth->parse_arg); +} + +/* + * Request custom extension data from the application and add to the return + * buffer. + */ +int custom_ext_add(SSL *s, int server, + unsigned char **pret, unsigned char *limit, int *al) +{ + custom_ext_methods *exts = server ? &s->cert->srv_ext : &s->cert->cli_ext; + custom_ext_method *meth; + unsigned char *ret = *pret; + size_t i; + + for (i = 0; i < exts->meths_count; i++) { + const unsigned char *out = NULL; + size_t outlen = 0; + meth = exts->meths + i; + + if (server) { + /* + * For ServerHello only send extensions present in ClientHello. + */ + if (!(meth->ext_flags & SSL_EXT_FLAG_RECEIVED)) + continue; + /* If callback absent for server skip it */ + if (!meth->add_cb) + continue; + } + if (meth->add_cb) { + int cb_retval = 0; + cb_retval = meth->add_cb(s, meth->ext_type, + &out, &outlen, al, meth->add_arg); + if (cb_retval < 0) + return 0; /* error */ + if (cb_retval == 0) + continue; /* skip this extension */ + } + if (4 > limit - ret || outlen > (size_t)(limit - ret - 4)) + return 0; + s2n(meth->ext_type, ret); + s2n(outlen, ret); + if (outlen) { + memcpy(ret, out, outlen); + ret += outlen; + } + /* + * We can't send duplicates: code logic should prevent this. + */ + OPENSSL_assert(!(meth->ext_flags & SSL_EXT_FLAG_SENT)); + /* + * Indicate extension has been sent: this is both a sanity check to + * ensure we don't send duplicate extensions and indicates that it is + * not an error if the extension is present in ServerHello. + */ + meth->ext_flags |= SSL_EXT_FLAG_SENT; + if (meth->free_cb) + meth->free_cb(s, meth->ext_type, out, meth->add_arg); + } + *pret = ret; + return 1; +} + +/* Copy table of custom extensions */ +int custom_exts_copy(custom_ext_methods *dst, const custom_ext_methods *src) +{ + if (src->meths_count) { + dst->meths = + BUF_memdup(src->meths, + sizeof(custom_ext_method) * src->meths_count); + if (dst->meths == NULL) + return 0; + dst->meths_count = src->meths_count; + } + return 1; +} + +void custom_exts_free(custom_ext_methods *exts) +{ + if (exts->meths) + OPENSSL_free(exts->meths); +} + +/* Set callbacks for a custom extension. */ +static int custom_ext_meth_add(custom_ext_methods *exts, + unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, void *parse_arg) +{ + custom_ext_method *meth; + /* + * Check application error: if add_cb is not set free_cb will never be + * called. + */ + if (!add_cb && free_cb) + return 0; + /* Don't add if extension supported internally. */ + if (SSL_extension_supported(ext_type)) + return 0; + /* Extension type must fit in 16 bits */ + if (ext_type > 0xffff) + return 0; + /* Search for duplicate */ + if (custom_ext_find(exts, ext_type)) + return 0; + exts->meths = OPENSSL_realloc(exts->meths, + (exts->meths_count + + 1) * sizeof(custom_ext_method)); + + if (!exts->meths) { + exts->meths_count = 0; + return 0; + } + + meth = exts->meths + exts->meths_count; + memset(meth, 0, sizeof(custom_ext_method)); + meth->parse_cb = parse_cb; + meth->add_cb = add_cb; + meth->free_cb = free_cb; + meth->ext_type = ext_type; + meth->add_arg = add_arg; + meth->parse_arg = parse_arg; + exts->meths_count++; + return 1; +} + +/* Application level functions to add custom extension callbacks */ +int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg) +{ + return custom_ext_meth_add(&ctx->cert->cli_ext, ext_type, + add_cb, free_cb, add_arg, parse_cb, parse_arg); +} + +int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg) +{ + return custom_ext_meth_add(&ctx->cert->srv_ext, ext_type, + add_cb, free_cb, add_arg, parse_cb, parse_arg); +} + +int SSL_extension_supported(unsigned int ext_type) +{ + switch (ext_type) { + /* Internally supported extensions. */ + case TLSEXT_TYPE_application_layer_protocol_negotiation: + case TLSEXT_TYPE_ec_point_formats: + case TLSEXT_TYPE_elliptic_curves: + case TLSEXT_TYPE_heartbeat: + case TLSEXT_TYPE_next_proto_neg: + case TLSEXT_TYPE_padding: + case TLSEXT_TYPE_renegotiate: + case TLSEXT_TYPE_server_name: + case TLSEXT_TYPE_session_ticket: + case TLSEXT_TYPE_signature_algorithms: + case TLSEXT_TYPE_srp: + case TLSEXT_TYPE_status_request: + case TLSEXT_TYPE_use_srtp: +# ifdef TLSEXT_TYPE_opaque_prf_input + case TLSEXT_TYPE_opaque_prf_input: +# endif +# ifdef TLSEXT_TYPE_encrypt_then_mac + case TLSEXT_TYPE_encrypt_then_mac: +# endif + return 1; + default: + return 0; + } +} +#endif diff --git a/libs/openssl/ssl/t1_lib.c b/libs/openssl/ssl/t1_lib.c index d70b93fe..3176d1e3 100644 --- a/libs/openssl/ssl/t1_lib.c +++ b/libs/openssl/ssl/t1_lib.c @@ -113,6 +113,11 @@ #include #include #include +#ifndef OPENSSL_NO_EC +#ifdef OPENSSL_NO_EC2M +# include +#endif +#endif #include #include #include "ssl_locl.h" @@ -123,6 +128,8 @@ const char tls1_version_str[] = "TLSv1" OPENSSL_VERSION_PTEXT; static int tls_decrypt_ticket(SSL *s, const unsigned char *tick, int ticklen, const unsigned char *sess_id, int sesslen, SSL_SESSION **psess); +static int ssl_check_clienthello_tlsext_early(SSL *s); +int ssl_check_serverhello_tlsext(SSL *s); #endif SSL3_ENC_METHOD TLSv1_enc_data = { @@ -138,6 +145,49 @@ SSL3_ENC_METHOD TLSv1_enc_data = { TLS_MD_SERVER_FINISH_CONST, TLS_MD_SERVER_FINISH_CONST_SIZE, tls1_alert_code, tls1_export_keying_material, + 0, + SSL3_HM_HEADER_LENGTH, + ssl3_set_handshake_header, + ssl3_handshake_write +}; + +SSL3_ENC_METHOD TLSv1_1_enc_data = { + tls1_enc, + tls1_mac, + tls1_setup_key_block, + tls1_generate_master_secret, + tls1_change_cipher_state, + tls1_final_finish_mac, + TLS1_FINISH_MAC_LENGTH, + tls1_cert_verify_mac, + TLS_MD_CLIENT_FINISH_CONST, TLS_MD_CLIENT_FINISH_CONST_SIZE, + TLS_MD_SERVER_FINISH_CONST, TLS_MD_SERVER_FINISH_CONST_SIZE, + tls1_alert_code, + tls1_export_keying_material, + SSL_ENC_FLAG_EXPLICIT_IV, + SSL3_HM_HEADER_LENGTH, + ssl3_set_handshake_header, + ssl3_handshake_write +}; + +SSL3_ENC_METHOD TLSv1_2_enc_data = { + tls1_enc, + tls1_mac, + tls1_setup_key_block, + tls1_generate_master_secret, + tls1_change_cipher_state, + tls1_final_finish_mac, + TLS1_FINISH_MAC_LENGTH, + tls1_cert_verify_mac, + TLS_MD_CLIENT_FINISH_CONST, TLS_MD_CLIENT_FINISH_CONST_SIZE, + TLS_MD_SERVER_FINISH_CONST, TLS_MD_SERVER_FINISH_CONST_SIZE, + tls1_alert_code, + tls1_export_keying_material, + SSL_ENC_FLAG_EXPLICIT_IV | SSL_ENC_FLAG_SIGALGS | SSL_ENC_FLAG_SHA256_PRF + | SSL_ENC_FLAG_TLS1_2_CIPHERS, + SSL3_HM_HEADER_LENGTH, + ssl3_set_handshake_header, + ssl3_handshake_write }; long tls1_default_timeout(void) @@ -200,52 +250,133 @@ static int nid_list[] = { NID_secp256k1, /* secp256k1 (22) */ NID_X9_62_prime256v1, /* secp256r1 (23) */ NID_secp384r1, /* secp384r1 (24) */ - NID_secp521r1 /* secp521r1 (25) */ + NID_secp521r1, /* secp521r1 (25) */ + NID_brainpoolP256r1, /* brainpoolP256r1 (26) */ + NID_brainpoolP384r1, /* brainpoolP384r1 (27) */ + NID_brainpoolP512r1 /* brainpool512r1 (28) */ }; -static int pref_list[] = { -# ifndef OPENSSL_NO_EC2M - NID_sect571r1, /* sect571r1 (14) */ - NID_sect571k1, /* sect571k1 (13) */ -# endif - NID_secp521r1, /* secp521r1 (25) */ -# ifndef OPENSSL_NO_EC2M - NID_sect409k1, /* sect409k1 (11) */ - NID_sect409r1, /* sect409r1 (12) */ -# endif - NID_secp384r1, /* secp384r1 (24) */ -# ifndef OPENSSL_NO_EC2M - NID_sect283k1, /* sect283k1 (9) */ - NID_sect283r1, /* sect283r1 (10) */ -# endif - NID_secp256k1, /* secp256k1 (22) */ - NID_X9_62_prime256v1, /* secp256r1 (23) */ +static const unsigned char ecformats_default[] = { + TLSEXT_ECPOINTFORMAT_uncompressed, + TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime, + TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 +}; + +/* The client's default curves / the server's 'auto' curves. */ +static const unsigned char eccurves_auto[] = { + /* Prefer P-256 which has the fastest and most secure implementations. */ + 0, 23, /* secp256r1 (23) */ + /* Other >= 256-bit prime curves. */ + 0, 25, /* secp521r1 (25) */ + 0, 28, /* brainpool512r1 (28) */ + 0, 27, /* brainpoolP384r1 (27) */ + 0, 24, /* secp384r1 (24) */ + 0, 26, /* brainpoolP256r1 (26) */ + 0, 22, /* secp256k1 (22) */ # ifndef OPENSSL_NO_EC2M - NID_sect239k1, /* sect239k1 (8) */ - NID_sect233k1, /* sect233k1 (6) */ - NID_sect233r1, /* sect233r1 (7) */ + /* >= 256-bit binary curves. */ + 0, 14, /* sect571r1 (14) */ + 0, 13, /* sect571k1 (13) */ + 0, 11, /* sect409k1 (11) */ + 0, 12, /* sect409r1 (12) */ + 0, 9, /* sect283k1 (9) */ + 0, 10, /* sect283r1 (10) */ # endif - NID_secp224k1, /* secp224k1 (20) */ - NID_secp224r1, /* secp224r1 (21) */ +}; + +static const unsigned char eccurves_all[] = { + /* Prefer P-256 which has the fastest and most secure implementations. */ + 0, 23, /* secp256r1 (23) */ + /* Other >= 256-bit prime curves. */ + 0, 25, /* secp521r1 (25) */ + 0, 28, /* brainpool512r1 (28) */ + 0, 27, /* brainpoolP384r1 (27) */ + 0, 24, /* secp384r1 (24) */ + 0, 26, /* brainpoolP256r1 (26) */ + 0, 22, /* secp256k1 (22) */ # ifndef OPENSSL_NO_EC2M - NID_sect193r1, /* sect193r1 (4) */ - NID_sect193r2, /* sect193r2 (5) */ + /* >= 256-bit binary curves. */ + 0, 14, /* sect571r1 (14) */ + 0, 13, /* sect571k1 (13) */ + 0, 11, /* sect409k1 (11) */ + 0, 12, /* sect409r1 (12) */ + 0, 9, /* sect283k1 (9) */ + 0, 10, /* sect283r1 (10) */ # endif - NID_secp192k1, /* secp192k1 (18) */ - NID_X9_62_prime192v1, /* secp192r1 (19) */ + /* + * Remaining curves disabled by default but still permitted if set + * via an explicit callback or parameters. + */ + 0, 20, /* secp224k1 (20) */ + 0, 21, /* secp224r1 (21) */ + 0, 18, /* secp192k1 (18) */ + 0, 19, /* secp192r1 (19) */ + 0, 15, /* secp160k1 (15) */ + 0, 16, /* secp160r1 (16) */ + 0, 17, /* secp160r2 (17) */ # ifndef OPENSSL_NO_EC2M - NID_sect163k1, /* sect163k1 (1) */ - NID_sect163r1, /* sect163r1 (2) */ - NID_sect163r2, /* sect163r2 (3) */ + 0, 8, /* sect239k1 (8) */ + 0, 6, /* sect233k1 (6) */ + 0, 7, /* sect233r1 (7) */ + 0, 4, /* sect193r1 (4) */ + 0, 5, /* sect193r2 (5) */ + 0, 1, /* sect163k1 (1) */ + 0, 2, /* sect163r1 (2) */ + 0, 3, /* sect163r2 (3) */ # endif - NID_secp160k1, /* secp160k1 (15) */ - NID_secp160r1, /* secp160r1 (16) */ - NID_secp160r2, /* secp160r2 (17) */ }; +static const unsigned char suiteb_curves[] = { + 0, TLSEXT_curve_P_256, + 0, TLSEXT_curve_P_384 +}; + +# ifdef OPENSSL_FIPS +/* Brainpool not allowed in FIPS mode */ +static const unsigned char fips_curves_default[] = { +# ifndef OPENSSL_NO_EC2M + 0, 14, /* sect571r1 (14) */ + 0, 13, /* sect571k1 (13) */ +# endif + 0, 25, /* secp521r1 (25) */ +# ifndef OPENSSL_NO_EC2M + 0, 11, /* sect409k1 (11) */ + 0, 12, /* sect409r1 (12) */ +# endif + 0, 24, /* secp384r1 (24) */ +# ifndef OPENSSL_NO_EC2M + 0, 9, /* sect283k1 (9) */ + 0, 10, /* sect283r1 (10) */ +# endif + 0, 22, /* secp256k1 (22) */ + 0, 23, /* secp256r1 (23) */ +# ifndef OPENSSL_NO_EC2M + 0, 8, /* sect239k1 (8) */ + 0, 6, /* sect233k1 (6) */ + 0, 7, /* sect233r1 (7) */ +# endif + 0, 20, /* secp224k1 (20) */ + 0, 21, /* secp224r1 (21) */ +# ifndef OPENSSL_NO_EC2M + 0, 4, /* sect193r1 (4) */ + 0, 5, /* sect193r2 (5) */ +# endif + 0, 18, /* secp192k1 (18) */ + 0, 19, /* secp192r1 (19) */ +# ifndef OPENSSL_NO_EC2M + 0, 1, /* sect163k1 (1) */ + 0, 2, /* sect163r1 (2) */ + 0, 3, /* sect163r2 (3) */ +# endif + 0, 15, /* secp160k1 (15) */ + 0, 16, /* secp160r1 (16) */ + 0, 17, /* secp160r2 (17) */ +}; +# endif + int tls1_ec_curve_id2nid(int curve_id) { - /* ECC curves from RFC 4492 */ + /* ECC curves from RFC 4492 and RFC 7027 */ if ((curve_id < 1) || ((unsigned int)curve_id > sizeof(nid_list) / sizeof(nid_list[0]))) return 0; @@ -254,7 +385,7 @@ int tls1_ec_curve_id2nid(int curve_id) int tls1_ec_nid2curve_id(int nid) { - /* ECC curves from RFC 4492 */ + /* ECC curves from RFC 4492 and RFC 7027 */ switch (nid) { case NID_sect163k1: /* sect163k1 (1) */ return 1; @@ -306,10 +437,548 @@ int tls1_ec_nid2curve_id(int nid) return 24; case NID_secp521r1: /* secp521r1 (25) */ return 25; + case NID_brainpoolP256r1: /* brainpoolP256r1 (26) */ + return 26; + case NID_brainpoolP384r1: /* brainpoolP384r1 (27) */ + return 27; + case NID_brainpoolP512r1: /* brainpool512r1 (28) */ + return 28; default: return 0; } } + +/* + * Get curves list, if "sess" is set return client curves otherwise + * preferred list. + * Sets |num_curves| to the number of curves in the list, i.e., + * the length of |pcurves| is 2 * num_curves. + * Returns 1 on success and 0 if the client curves list has invalid format. + * The latter indicates an internal error: we should not be accepting such + * lists in the first place. + * TODO(emilia): we should really be storing the curves list in explicitly + * parsed form instead. (However, this would affect binary compatibility + * so cannot happen in the 1.0.x series.) + */ +static int tls1_get_curvelist(SSL *s, int sess, + const unsigned char **pcurves, + size_t *num_curves) +{ + size_t pcurveslen = 0; + if (sess) { + *pcurves = s->session->tlsext_ellipticcurvelist; + pcurveslen = s->session->tlsext_ellipticcurvelist_length; + } else { + /* For Suite B mode only include P-256, P-384 */ + switch (tls1_suiteb(s)) { + case SSL_CERT_FLAG_SUITEB_128_LOS: + *pcurves = suiteb_curves; + pcurveslen = sizeof(suiteb_curves); + break; + + case SSL_CERT_FLAG_SUITEB_128_LOS_ONLY: + *pcurves = suiteb_curves; + pcurveslen = 2; + break; + + case SSL_CERT_FLAG_SUITEB_192_LOS: + *pcurves = suiteb_curves + 2; + pcurveslen = 2; + break; + default: + *pcurves = s->tlsext_ellipticcurvelist; + pcurveslen = s->tlsext_ellipticcurvelist_length; + } + if (!*pcurves) { +# ifdef OPENSSL_FIPS + if (FIPS_mode()) { + *pcurves = fips_curves_default; + pcurveslen = sizeof(fips_curves_default); + } else +# endif + { + if (!s->server || s->cert->ecdh_tmp_auto) { + *pcurves = eccurves_auto; + pcurveslen = sizeof(eccurves_auto); + } else { + *pcurves = eccurves_all; + pcurveslen = sizeof(eccurves_all); + } + } + } + } + /* We do not allow odd length arrays to enter the system. */ + if (pcurveslen & 1) { + SSLerr(SSL_F_TLS1_GET_CURVELIST, ERR_R_INTERNAL_ERROR); + *num_curves = 0; + return 0; + } else { + *num_curves = pcurveslen / 2; + return 1; + } +} + +/* Check a curve is one of our preferences */ +int tls1_check_curve(SSL *s, const unsigned char *p, size_t len) +{ + const unsigned char *curves; + size_t num_curves, i; + unsigned int suiteb_flags = tls1_suiteb(s); + if (len != 3 || p[0] != NAMED_CURVE_TYPE) + return 0; + /* Check curve matches Suite B preferences */ + if (suiteb_flags) { + unsigned long cid = s->s3->tmp.new_cipher->id; + if (p[1]) + return 0; + if (cid == TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256) { + if (p[2] != TLSEXT_curve_P_256) + return 0; + } else if (cid == TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384) { + if (p[2] != TLSEXT_curve_P_384) + return 0; + } else /* Should never happen */ + return 0; + } + if (!tls1_get_curvelist(s, 0, &curves, &num_curves)) + return 0; + for (i = 0; i < num_curves; i++, curves += 2) { + if (p[1] == curves[0] && p[2] == curves[1]) + return 1; + } + return 0; +} + +/*- + * Return |nmatch|th shared curve or NID_undef if there is no match. + * For nmatch == -1, return number of matches + * For nmatch == -2, return the NID of the curve to use for + * an EC tmp key, or NID_undef if there is no match. + */ +int tls1_shared_curve(SSL *s, int nmatch) +{ + const unsigned char *pref, *supp; + size_t num_pref, num_supp, i, j; + int k; + /* Can't do anything on client side */ + if (s->server == 0) + return -1; + if (nmatch == -2) { + if (tls1_suiteb(s)) { + /* + * For Suite B ciphersuite determines curve: we already know + * these are acceptable due to previous checks. + */ + unsigned long cid = s->s3->tmp.new_cipher->id; + if (cid == TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256) + return NID_X9_62_prime256v1; /* P-256 */ + if (cid == TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384) + return NID_secp384r1; /* P-384 */ + /* Should never happen */ + return NID_undef; + } + /* If not Suite B just return first preference shared curve */ + nmatch = 0; + } + /* + * Avoid truncation. tls1_get_curvelist takes an int + * but s->options is a long... + */ + if (!tls1_get_curvelist + (s, (s->options & SSL_OP_CIPHER_SERVER_PREFERENCE) != 0, &supp, + &num_supp)) + /* In practice, NID_undef == 0 but let's be precise. */ + return nmatch == -1 ? 0 : NID_undef; + if (!tls1_get_curvelist + (s, !(s->options & SSL_OP_CIPHER_SERVER_PREFERENCE), &pref, + &num_pref)) + return nmatch == -1 ? 0 : NID_undef; + + /* + * If the client didn't send the elliptic_curves extension all of them + * are allowed. + */ + if (num_supp == 0 && (s->options & SSL_OP_CIPHER_SERVER_PREFERENCE) != 0) { + supp = eccurves_all; + num_supp = sizeof(eccurves_all) / 2; + } else if (num_pref == 0 && + (s->options & SSL_OP_CIPHER_SERVER_PREFERENCE) == 0) { + pref = eccurves_all; + num_pref = sizeof(eccurves_all) / 2; + } + + k = 0; + for (i = 0; i < num_pref; i++, pref += 2) { + const unsigned char *tsupp = supp; + for (j = 0; j < num_supp; j++, tsupp += 2) { + if (pref[0] == tsupp[0] && pref[1] == tsupp[1]) { + if (nmatch == k) { + int id = (pref[0] << 8) | pref[1]; + return tls1_ec_curve_id2nid(id); + } + k++; + } + } + } + if (nmatch == -1) + return k; + /* Out of range (nmatch > k). */ + return NID_undef; +} + +int tls1_set_curves(unsigned char **pext, size_t *pextlen, + int *curves, size_t ncurves) +{ + unsigned char *clist, *p; + size_t i; + /* + * Bitmap of curves included to detect duplicates: only works while curve + * ids < 32 + */ + unsigned long dup_list = 0; +# ifdef OPENSSL_NO_EC2M + EC_GROUP *curve; +# endif + + clist = OPENSSL_malloc(ncurves * 2); + if (!clist) + return 0; + for (i = 0, p = clist; i < ncurves; i++) { + unsigned long idmask; + int id; + id = tls1_ec_nid2curve_id(curves[i]); +# ifdef OPENSSL_FIPS + /* NB: 25 is last curve ID supported by FIPS module */ + if (FIPS_mode() && id > 25) { + OPENSSL_free(clist); + return 0; + } +# endif +# ifdef OPENSSL_NO_EC2M + curve = EC_GROUP_new_by_curve_name(curves[i]); + if (!curve || EC_METHOD_get_field_type(EC_GROUP_method_of(curve)) + == NID_X9_62_characteristic_two_field) { + if (curve) + EC_GROUP_free(curve); + OPENSSL_free(clist); + return 0; + } else + EC_GROUP_free(curve); +# endif + idmask = 1L << id; + if (!id || (dup_list & idmask)) { + OPENSSL_free(clist); + return 0; + } + dup_list |= idmask; + s2n(id, p); + } + if (*pext) + OPENSSL_free(*pext); + *pext = clist; + *pextlen = ncurves * 2; + return 1; +} + +# define MAX_CURVELIST 28 + +typedef struct { + size_t nidcnt; + int nid_arr[MAX_CURVELIST]; +} nid_cb_st; + +static int nid_cb(const char *elem, int len, void *arg) +{ + nid_cb_st *narg = arg; + size_t i; + int nid; + char etmp[20]; + if (elem == NULL) + return 0; + if (narg->nidcnt == MAX_CURVELIST) + return 0; + if (len > (int)(sizeof(etmp) - 1)) + return 0; + memcpy(etmp, elem, len); + etmp[len] = 0; + nid = EC_curve_nist2nid(etmp); + if (nid == NID_undef) + nid = OBJ_sn2nid(etmp); + if (nid == NID_undef) + nid = OBJ_ln2nid(etmp); + if (nid == NID_undef) + return 0; + for (i = 0; i < narg->nidcnt; i++) + if (narg->nid_arr[i] == nid) + return 0; + narg->nid_arr[narg->nidcnt++] = nid; + return 1; +} + +/* Set curves based on a colon separate list */ +int tls1_set_curves_list(unsigned char **pext, size_t *pextlen, + const char *str) +{ + nid_cb_st ncb; + ncb.nidcnt = 0; + if (!CONF_parse_list(str, ':', 1, nid_cb, &ncb)) + return 0; + if (pext == NULL) + return 1; + return tls1_set_curves(pext, pextlen, ncb.nid_arr, ncb.nidcnt); +} + +/* For an EC key set TLS id and required compression based on parameters */ +static int tls1_set_ec_id(unsigned char *curve_id, unsigned char *comp_id, + EC_KEY *ec) +{ + int is_prime, id; + const EC_GROUP *grp; + const EC_METHOD *meth; + if (!ec) + return 0; + /* Determine if it is a prime field */ + grp = EC_KEY_get0_group(ec); + if (!grp) + return 0; + meth = EC_GROUP_method_of(grp); + if (!meth) + return 0; + if (EC_METHOD_get_field_type(meth) == NID_X9_62_prime_field) + is_prime = 1; + else + is_prime = 0; + /* Determine curve ID */ + id = EC_GROUP_get_curve_name(grp); + id = tls1_ec_nid2curve_id(id); + /* If we have an ID set it, otherwise set arbitrary explicit curve */ + if (id) { + curve_id[0] = 0; + curve_id[1] = (unsigned char)id; + } else { + curve_id[0] = 0xff; + if (is_prime) + curve_id[1] = 0x01; + else + curve_id[1] = 0x02; + } + if (comp_id) { + if (EC_KEY_get0_public_key(ec) == NULL) + return 0; + if (EC_KEY_get_conv_form(ec) == POINT_CONVERSION_COMPRESSED) { + if (is_prime) + *comp_id = TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime; + else + *comp_id = TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2; + } else + *comp_id = TLSEXT_ECPOINTFORMAT_uncompressed; + } + return 1; +} + +/* Check an EC key is compatible with extensions */ +static int tls1_check_ec_key(SSL *s, + unsigned char *curve_id, unsigned char *comp_id) +{ + const unsigned char *pformats, *pcurves; + size_t num_formats, num_curves, i; + int j; + /* + * If point formats extension present check it, otherwise everything is + * supported (see RFC4492). + */ + if (comp_id && s->session->tlsext_ecpointformatlist) { + pformats = s->session->tlsext_ecpointformatlist; + num_formats = s->session->tlsext_ecpointformatlist_length; + for (i = 0; i < num_formats; i++, pformats++) { + if (*comp_id == *pformats) + break; + } + if (i == num_formats) + return 0; + } + if (!curve_id) + return 1; + /* Check curve is consistent with client and server preferences */ + for (j = 0; j <= 1; j++) { + if (!tls1_get_curvelist(s, j, &pcurves, &num_curves)) + return 0; + if (j == 1 && num_curves == 0) { + /* + * If we've not received any curves then skip this check. + * RFC 4492 does not require the supported elliptic curves extension + * so if it is not sent we can just choose any curve. + * It is invalid to send an empty list in the elliptic curves + * extension, so num_curves == 0 always means no extension. + */ + break; + } + for (i = 0; i < num_curves; i++, pcurves += 2) { + if (pcurves[0] == curve_id[0] && pcurves[1] == curve_id[1]) + break; + } + if (i == num_curves) + return 0; + /* For clients can only check sent curve list */ + if (!s->server) + return 1; + } + return 1; +} + +static void tls1_get_formatlist(SSL *s, const unsigned char **pformats, + size_t *num_formats) +{ + /* + * If we have a custom point format list use it otherwise use default + */ + if (s->tlsext_ecpointformatlist) { + *pformats = s->tlsext_ecpointformatlist; + *num_formats = s->tlsext_ecpointformatlist_length; + } else { + *pformats = ecformats_default; + /* For Suite B we don't support char2 fields */ + if (tls1_suiteb(s)) + *num_formats = sizeof(ecformats_default) - 1; + else + *num_formats = sizeof(ecformats_default); + } +} + +/* + * Check cert parameters compatible with extensions: currently just checks EC + * certificates have compatible curves and compression. + */ +static int tls1_check_cert_param(SSL *s, X509 *x, int set_ee_md) +{ + unsigned char comp_id, curve_id[2]; + EVP_PKEY *pkey; + int rv; + pkey = X509_get_pubkey(x); + if (!pkey) + return 0; + /* If not EC nothing to do */ + if (pkey->type != EVP_PKEY_EC) { + EVP_PKEY_free(pkey); + return 1; + } + rv = tls1_set_ec_id(curve_id, &comp_id, pkey->pkey.ec); + EVP_PKEY_free(pkey); + if (!rv) + return 0; + /* + * Can't check curve_id for client certs as we don't have a supported + * curves extension. + */ + rv = tls1_check_ec_key(s, s->server ? curve_id : NULL, &comp_id); + if (!rv) + return 0; + /* + * Special case for suite B. We *MUST* sign using SHA256+P-256 or + * SHA384+P-384, adjust digest if necessary. + */ + if (set_ee_md && tls1_suiteb(s)) { + int check_md; + size_t i; + CERT *c = s->cert; + if (curve_id[0]) + return 0; + /* Check to see we have necessary signing algorithm */ + if (curve_id[1] == TLSEXT_curve_P_256) + check_md = NID_ecdsa_with_SHA256; + else if (curve_id[1] == TLSEXT_curve_P_384) + check_md = NID_ecdsa_with_SHA384; + else + return 0; /* Should never happen */ + for (i = 0; i < c->shared_sigalgslen; i++) + if (check_md == c->shared_sigalgs[i].signandhash_nid) + break; + if (i == c->shared_sigalgslen) + return 0; + if (set_ee_md == 2) { + if (check_md == NID_ecdsa_with_SHA256) + c->pkeys[SSL_PKEY_ECC].digest = EVP_sha256(); + else + c->pkeys[SSL_PKEY_ECC].digest = EVP_sha384(); + } + } + return rv; +} + +# ifndef OPENSSL_NO_ECDH +/* Check EC temporary key is compatible with client extensions */ +int tls1_check_ec_tmp_key(SSL *s, unsigned long cid) +{ + unsigned char curve_id[2]; + EC_KEY *ec = s->cert->ecdh_tmp; +# ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL + /* Allow any curve: not just those peer supports */ + if (s->cert->cert_flags & SSL_CERT_FLAG_BROKEN_PROTOCOL) + return 1; +# endif + /* + * If Suite B, AES128 MUST use P-256 and AES256 MUST use P-384, no other + * curves permitted. + */ + if (tls1_suiteb(s)) { + /* Curve to check determined by ciphersuite */ + if (cid == TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256) + curve_id[1] = TLSEXT_curve_P_256; + else if (cid == TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384) + curve_id[1] = TLSEXT_curve_P_384; + else + return 0; + curve_id[0] = 0; + /* Check this curve is acceptable */ + if (!tls1_check_ec_key(s, curve_id, NULL)) + return 0; + /* If auto or setting curve from callback assume OK */ + if (s->cert->ecdh_tmp_auto || s->cert->ecdh_tmp_cb) + return 1; + /* Otherwise check curve is acceptable */ + else { + unsigned char curve_tmp[2]; + if (!ec) + return 0; + if (!tls1_set_ec_id(curve_tmp, NULL, ec)) + return 0; + if (!curve_tmp[0] || curve_tmp[1] == curve_id[1]) + return 1; + return 0; + } + + } + if (s->cert->ecdh_tmp_auto) { + /* Need a shared curve */ + if (tls1_shared_curve(s, 0)) + return 1; + else + return 0; + } + if (!ec) { + if (s->cert->ecdh_tmp_cb) + return 1; + else + return 0; + } + if (!tls1_set_ec_id(curve_id, NULL, ec)) + return 0; +/* Set this to allow use of invalid curves for testing */ +# if 0 + return 1; +# else + return tls1_check_ec_key(s, curve_id, NULL); +# endif +} +# endif /* OPENSSL_NO_ECDH */ + +#else + +static int tls1_check_cert_param(SSL *s, X509 *x, int set_ee_md) +{ + return 1; +} + #endif /* OPENSSL_NO_EC */ #ifndef OPENSSL_NO_TLSEXT @@ -330,47 +999,258 @@ int tls1_ec_nid2curve_id(int nid) # else # define tlsext_sigalg_dsa(md) md, TLSEXT_signature_dsa, # endif - -# ifdef OPENSSL_NO_ECDSA -# define tlsext_sigalg_ecdsa(md) - /* */ -# else -# define tlsext_sigalg_ecdsa(md) md, TLSEXT_signature_ecdsa, + +# ifdef OPENSSL_NO_ECDSA +# define tlsext_sigalg_ecdsa(md) + /* */ +# else +# define tlsext_sigalg_ecdsa(md) md, TLSEXT_signature_ecdsa, +# endif + +# define tlsext_sigalg(md) \ + tlsext_sigalg_rsa(md) \ + tlsext_sigalg_dsa(md) \ + tlsext_sigalg_ecdsa(md) + +static unsigned char tls12_sigalgs[] = { +# ifndef OPENSSL_NO_SHA512 + tlsext_sigalg(TLSEXT_hash_sha512) + tlsext_sigalg(TLSEXT_hash_sha384) +# endif +# ifndef OPENSSL_NO_SHA256 + tlsext_sigalg(TLSEXT_hash_sha256) + tlsext_sigalg(TLSEXT_hash_sha224) +# endif +# ifndef OPENSSL_NO_SHA + tlsext_sigalg(TLSEXT_hash_sha1) +# endif +}; + +# ifndef OPENSSL_NO_ECDSA +static unsigned char suiteb_sigalgs[] = { + tlsext_sigalg_ecdsa(TLSEXT_hash_sha256) + tlsext_sigalg_ecdsa(TLSEXT_hash_sha384) +}; +# endif +size_t tls12_get_psigalgs(SSL *s, const unsigned char **psigs) +{ + /* + * If Suite B mode use Suite B sigalgs only, ignore any other + * preferences. + */ +# ifndef OPENSSL_NO_EC + switch (tls1_suiteb(s)) { + case SSL_CERT_FLAG_SUITEB_128_LOS: + *psigs = suiteb_sigalgs; + return sizeof(suiteb_sigalgs); + + case SSL_CERT_FLAG_SUITEB_128_LOS_ONLY: + *psigs = suiteb_sigalgs; + return 2; + + case SSL_CERT_FLAG_SUITEB_192_LOS: + *psigs = suiteb_sigalgs + 2; + return 2; + } +# endif + /* If server use client authentication sigalgs if not NULL */ + if (s->server && s->cert->client_sigalgs) { + *psigs = s->cert->client_sigalgs; + return s->cert->client_sigalgslen; + } else if (s->cert->conf_sigalgs) { + *psigs = s->cert->conf_sigalgs; + return s->cert->conf_sigalgslen; + } else { + *psigs = tls12_sigalgs; + return sizeof(tls12_sigalgs); + } +} + +/* + * Check signature algorithm is consistent with sent supported signature + * algorithms and if so return relevant digest. + */ +int tls12_check_peer_sigalg(const EVP_MD **pmd, SSL *s, + const unsigned char *sig, EVP_PKEY *pkey) +{ + const unsigned char *sent_sigs; + size_t sent_sigslen, i; + int sigalg = tls12_get_sigid(pkey); + /* Should never happen */ + if (sigalg == -1) + return -1; + /* Check key type is consistent with signature */ + if (sigalg != (int)sig[1]) { + SSLerr(SSL_F_TLS12_CHECK_PEER_SIGALG, SSL_R_WRONG_SIGNATURE_TYPE); + return 0; + } +# ifndef OPENSSL_NO_EC + if (pkey->type == EVP_PKEY_EC) { + unsigned char curve_id[2], comp_id; + /* Check compression and curve matches extensions */ + if (!tls1_set_ec_id(curve_id, &comp_id, pkey->pkey.ec)) + return 0; + if (!s->server && !tls1_check_ec_key(s, curve_id, &comp_id)) { + SSLerr(SSL_F_TLS12_CHECK_PEER_SIGALG, SSL_R_WRONG_CURVE); + return 0; + } + /* If Suite B only P-384+SHA384 or P-256+SHA-256 allowed */ + if (tls1_suiteb(s)) { + if (curve_id[0]) + return 0; + if (curve_id[1] == TLSEXT_curve_P_256) { + if (sig[0] != TLSEXT_hash_sha256) { + SSLerr(SSL_F_TLS12_CHECK_PEER_SIGALG, + SSL_R_ILLEGAL_SUITEB_DIGEST); + return 0; + } + } else if (curve_id[1] == TLSEXT_curve_P_384) { + if (sig[0] != TLSEXT_hash_sha384) { + SSLerr(SSL_F_TLS12_CHECK_PEER_SIGALG, + SSL_R_ILLEGAL_SUITEB_DIGEST); + return 0; + } + } else + return 0; + } + } else if (tls1_suiteb(s)) + return 0; +# endif + + /* Check signature matches a type we sent */ + sent_sigslen = tls12_get_psigalgs(s, &sent_sigs); + for (i = 0; i < sent_sigslen; i += 2, sent_sigs += 2) { + if (sig[0] == sent_sigs[0] && sig[1] == sent_sigs[1]) + break; + } + /* Allow fallback to SHA1 if not strict mode */ + if (i == sent_sigslen + && (sig[0] != TLSEXT_hash_sha1 + || s->cert->cert_flags & SSL_CERT_FLAGS_CHECK_TLS_STRICT)) { + SSLerr(SSL_F_TLS12_CHECK_PEER_SIGALG, SSL_R_WRONG_SIGNATURE_TYPE); + return 0; + } + *pmd = tls12_get_hash(sig[0]); + if (*pmd == NULL) { + SSLerr(SSL_F_TLS12_CHECK_PEER_SIGALG, SSL_R_UNKNOWN_DIGEST); + return 0; + } + /* + * Store the digest used so applications can retrieve it if they wish. + */ + if (s->session && s->session->sess_cert) + s->session->sess_cert->peer_key->digest = *pmd; + return 1; +} + +/* + * Get a mask of disabled algorithms: an algorithm is disabled if it isn't + * supported or doesn't appear in supported signature algorithms. Unlike + * ssl_cipher_get_disabled this applies to a specific session and not global + * settings. + */ +void ssl_set_client_disabled(SSL *s) +{ + CERT *c = s->cert; + const unsigned char *sigalgs; + size_t i, sigalgslen; + int have_rsa = 0, have_dsa = 0, have_ecdsa = 0; + c->mask_a = 0; + c->mask_k = 0; + /* Don't allow TLS 1.2 only ciphers if we don't suppport them */ + if (!SSL_CLIENT_USE_TLS1_2_CIPHERS(s)) + c->mask_ssl = SSL_TLSV1_2; + else + c->mask_ssl = 0; + /* + * Now go through all signature algorithms seeing if we support any for + * RSA, DSA, ECDSA. Do this for all versions not just TLS 1.2. + */ + sigalgslen = tls12_get_psigalgs(s, &sigalgs); + for (i = 0; i < sigalgslen; i += 2, sigalgs += 2) { + switch (sigalgs[1]) { +# ifndef OPENSSL_NO_RSA + case TLSEXT_signature_rsa: + have_rsa = 1; + break; +# endif +# ifndef OPENSSL_NO_DSA + case TLSEXT_signature_dsa: + have_dsa = 1; + break; # endif - -# define tlsext_sigalg(md) \ - tlsext_sigalg_rsa(md) \ - tlsext_sigalg_dsa(md) \ - tlsext_sigalg_ecdsa(md) - -static unsigned char tls12_sigalgs[] = { -# ifndef OPENSSL_NO_SHA512 - tlsext_sigalg(TLSEXT_hash_sha512) - tlsext_sigalg(TLSEXT_hash_sha384) +# ifndef OPENSSL_NO_ECDSA + case TLSEXT_signature_ecdsa: + have_ecdsa = 1; + break; # endif -# ifndef OPENSSL_NO_SHA256 - tlsext_sigalg(TLSEXT_hash_sha256) - tlsext_sigalg(TLSEXT_hash_sha224) + } + } + /* + * Disable auth and static DH if we don't include any appropriate + * signature algorithms. + */ + if (!have_rsa) { + c->mask_a |= SSL_aRSA; + c->mask_k |= SSL_kDHr | SSL_kECDHr; + } + if (!have_dsa) { + c->mask_a |= SSL_aDSS; + c->mask_k |= SSL_kDHd; + } + if (!have_ecdsa) { + c->mask_a |= SSL_aECDSA; + c->mask_k |= SSL_kECDHe; + } +# ifndef OPENSSL_NO_KRB5 + if (!kssl_tgt_is_available(s->kssl_ctx)) { + c->mask_a |= SSL_aKRB5; + c->mask_k |= SSL_kKRB5; + } # endif -# ifndef OPENSSL_NO_SHA - tlsext_sigalg(TLSEXT_hash_sha1) +# ifndef OPENSSL_NO_PSK + /* with PSK there must be client callback set */ + if (!s->psk_client_callback) { + c->mask_a |= SSL_aPSK; + c->mask_k |= SSL_kPSK; + } +# endif /* OPENSSL_NO_PSK */ +# ifndef OPENSSL_NO_SRP + if (!(s->srp_ctx.srp_Mask & SSL_kSRP)) { + c->mask_a |= SSL_aSRP; + c->mask_k |= SSL_kSRP; + } # endif -}; - -int tls12_get_req_sig_algs(SSL *s, unsigned char *p) -{ - size_t slen = sizeof(tls12_sigalgs); - if (p) - memcpy(p, tls12_sigalgs, slen); - return (int)slen; + c->valid = 1; } unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *buf, - unsigned char *limit) + unsigned char *limit, int *al) { int extdatalen = 0; unsigned char *orig = buf; unsigned char *ret = buf; +# ifndef OPENSSL_NO_EC + /* See if we support any ECC ciphersuites */ + int using_ecc = 0; + if (s->version >= TLS1_VERSION || SSL_IS_DTLS(s)) { + int i; + unsigned long alg_k, alg_a; + STACK_OF(SSL_CIPHER) *cipher_stack = SSL_get_ciphers(s); + + for (i = 0; i < sk_SSL_CIPHER_num(cipher_stack); i++) { + SSL_CIPHER *c = sk_SSL_CIPHER_value(cipher_stack, i); + + alg_k = c->algorithm_mkey; + alg_a = c->algorithm_auth; + if ((alg_k & (SSL_kEECDH | SSL_kECDHr | SSL_kECDHe) + || (alg_a & SSL_aECDSA))) { + using_ecc = 1; + break; + } + } + } +# endif /* don't add extensions for SSLv3 unless doing secure renegotiation */ if (s->client_version == SSL3_VERSION && !s->s3->send_connection_binding) @@ -466,50 +1346,53 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *buf, # endif # ifndef OPENSSL_NO_EC - if (s->tlsext_ecpointformatlist != NULL) { + if (using_ecc) { /* * Add TLS extension ECPointFormats to the ClientHello message */ long lenmax; + const unsigned char *pcurves, *pformats; + size_t num_curves, num_formats, curves_list_len; + + tls1_get_formatlist(s, &pformats, &num_formats); if ((lenmax = limit - ret - 5) < 0) return NULL; - if (s->tlsext_ecpointformatlist_length > (unsigned long)lenmax) + if (num_formats > (size_t)lenmax) return NULL; - if (s->tlsext_ecpointformatlist_length > 255) { + if (num_formats > 255) { SSLerr(SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT, ERR_R_INTERNAL_ERROR); return NULL; } s2n(TLSEXT_TYPE_ec_point_formats, ret); - s2n(s->tlsext_ecpointformatlist_length + 1, ret); - *(ret++) = (unsigned char)s->tlsext_ecpointformatlist_length; - memcpy(ret, s->tlsext_ecpointformatlist, - s->tlsext_ecpointformatlist_length); - ret += s->tlsext_ecpointformatlist_length; - } - if (s->tlsext_ellipticcurvelist != NULL) { + /* The point format list has 1-byte length. */ + s2n(num_formats + 1, ret); + *(ret++) = (unsigned char)num_formats; + memcpy(ret, pformats, num_formats); + ret += num_formats; + /* * Add TLS extension EllipticCurves to the ClientHello message */ - long lenmax; + pcurves = s->tlsext_ellipticcurvelist; + if (!tls1_get_curvelist(s, 0, &pcurves, &num_curves)) + return NULL; if ((lenmax = limit - ret - 6) < 0) return NULL; - if (s->tlsext_ellipticcurvelist_length > (unsigned long)lenmax) + if (num_curves > (size_t)lenmax / 2) return NULL; - if (s->tlsext_ellipticcurvelist_length > 65532) { + if (num_curves > 65532 / 2) { SSLerr(SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT, ERR_R_INTERNAL_ERROR); return NULL; } - + curves_list_len = 2 * num_curves; s2n(TLSEXT_TYPE_elliptic_curves, ret); - s2n(s->tlsext_ellipticcurvelist_length + 2, ret); - - s2n(s->tlsext_ellipticcurvelist_length, ret); - memcpy(ret, s->tlsext_ellipticcurvelist, - s->tlsext_ellipticcurvelist_length); - ret += s->tlsext_ellipticcurvelist_length; + s2n(curves_list_len + 2, ret); + s2n(curves_list_len, ret); + memcpy(ret, pcurves, curves_list_len); + ret += curves_list_len; } # endif /* OPENSSL_NO_EC */ @@ -546,17 +1429,20 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *buf, } skip_ext: - if (TLS1_get_client_version(s) >= TLS1_2_VERSION) { - if ((size_t)(limit - ret) < sizeof(tls12_sigalgs) + 6) + if (SSL_USE_SIGALGS(s)) { + size_t salglen; + const unsigned char *salg; + salglen = tls12_get_psigalgs(s, &salg); + if ((size_t)(limit - ret) < salglen + 6) return NULL; s2n(TLSEXT_TYPE_signature_algorithms, ret); - s2n(sizeof(tls12_sigalgs) + 2, ret); - s2n(sizeof(tls12_sigalgs), ret); - memcpy(ret, tls12_sigalgs, sizeof(tls12_sigalgs)); - ret += sizeof(tls12_sigalgs); + s2n(salglen + 2, ret); + s2n(salglen, ret); + memcpy(ret, salg, salglen); + ret += salglen; } # ifdef TLSEXT_TYPE_opaque_prf_input - if (s->s3->client_opaque_prf_input != NULL && s->version != DTLS1_VERSION) { + if (s->s3->client_opaque_prf_input != NULL) { size_t col = s->s3->client_opaque_prf_input_len; if ((long)(limit - ret - 6 - col < 0)) @@ -572,8 +1458,7 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *buf, } # endif - if (s->tlsext_status_type == TLSEXT_STATUSTYPE_ocsp && - s->version != DTLS1_VERSION) { + if (s->tlsext_status_type == TLSEXT_STATUSTYPE_ocsp) { int i; long extlen, idlen, itmp; OCSP_RESPID *id; @@ -646,6 +1531,15 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *buf, } # endif + if (s->alpn_client_proto_list && !s->s3->tmp.finish_md_len) { + if ((size_t)(limit - ret) < 6 + s->alpn_client_proto_list_len) + return NULL; + s2n(TLSEXT_TYPE_application_layer_protocol_negotiation, ret); + s2n(2 + s->alpn_client_proto_list_len, ret); + s2n(s->alpn_client_proto_list_len, ret); + memcpy(ret, s->alpn_client_proto_list, s->alpn_client_proto_list_len); + ret += s->alpn_client_proto_list_len; + } # ifndef OPENSSL_NO_SRTP if (SSL_IS_DTLS(s) && SSL_get_srtp_profiles(s)) { int el; @@ -665,6 +1559,11 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *buf, ret += el; } # endif + custom_ext_init(&s->cert->cli_ext); + /* Add custom TLS Extensions to ClientHello */ + if (!custom_ext_add(s, 0, &ret, limit, al)) + return NULL; + /* * Add padding to workaround bugs in F5 terminators. See * https://tools.ietf.org/html/draft-agl-tls-padding-03 NB: because this @@ -702,7 +1601,7 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *buf, } unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *buf, - unsigned char *limit) + unsigned char *limit, int *al) { int extdatalen = 0; unsigned char *orig = buf; @@ -710,7 +1609,13 @@ unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *buf, # ifndef OPENSSL_NO_NEXTPROTONEG int next_proto_neg_seen; # endif - +# ifndef OPENSSL_NO_EC + unsigned long alg_k = s->s3->tmp.new_cipher->algorithm_mkey; + unsigned long alg_a = s->s3->tmp.new_cipher->algorithm_auth; + int using_ecc = (alg_k & (SSL_kEECDH | SSL_kECDHr | SSL_kECDHe)) + || (alg_a & SSL_aECDSA); + using_ecc = using_ecc && (s->session->tlsext_ecpointformatlist != NULL); +# endif /* * don't add extensions for SSLv3, unless doing secure renegotiation */ @@ -752,27 +1657,30 @@ unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *buf, ret += el; } # ifndef OPENSSL_NO_EC - if (s->tlsext_ecpointformatlist != NULL) { + if (using_ecc) { + const unsigned char *plist; + size_t plistlen; /* * Add TLS extension ECPointFormats to the ServerHello message */ long lenmax; + tls1_get_formatlist(s, &plist, &plistlen); + if ((lenmax = limit - ret - 5) < 0) return NULL; - if (s->tlsext_ecpointformatlist_length > (unsigned long)lenmax) + if (plistlen > (size_t)lenmax) return NULL; - if (s->tlsext_ecpointformatlist_length > 255) { + if (plistlen > 255) { SSLerr(SSL_F_SSL_ADD_SERVERHELLO_TLSEXT, ERR_R_INTERNAL_ERROR); return NULL; } s2n(TLSEXT_TYPE_ec_point_formats, ret); - s2n(s->tlsext_ecpointformatlist_length + 1, ret); - *(ret++) = (unsigned char)s->tlsext_ecpointformatlist_length; - memcpy(ret, s->tlsext_ecpointformatlist, - s->tlsext_ecpointformatlist_length); - ret += s->tlsext_ecpointformatlist_length; + s2n(plistlen + 1, ret); + *(ret++) = (unsigned char)plistlen; + memcpy(ret, plist, plistlen); + ret += plistlen; } /* @@ -795,7 +1703,7 @@ unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *buf, s2n(0, ret); } # ifdef TLSEXT_TYPE_opaque_prf_input - if (s->s3->server_opaque_prf_input != NULL && s->version != DTLS1_VERSION) { + if (s->s3->server_opaque_prf_input != NULL) { size_t sol = s->s3->server_opaque_prf_input_len; if ((long)(limit - ret - 6 - sol) < 0) @@ -890,6 +1798,22 @@ unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *buf, } } # endif + if (!custom_ext_add(s, 1, &ret, limit, al)) + return NULL; + + if (s->s3->alpn_selected) { + const unsigned char *selected = s->s3->alpn_selected; + unsigned len = s->s3->alpn_selected_len; + + if ((long)(limit - ret - 4 - 2 - 1 - len) < 0) + return NULL; + s2n(TLSEXT_TYPE_application_layer_protocol_negotiation, ret); + s2n(3 + len, ret); + s2n(1 + len, ret); + *ret++ = len; + memcpy(ret, selected, len); + ret += len; + } if ((extdatalen = ret - orig - 2) == 0) return orig; @@ -913,7 +1837,7 @@ unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *buf, * 10.8..10.8.3 (which don't work). */ static void ssl_check_for_safari(SSL *s, const unsigned char *data, - const unsigned char *d, int n) + const unsigned char *limit) { unsigned short type, size; static const unsigned char kSafariExtensionsBlock[] = { @@ -942,11 +1866,11 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data, 0x02, 0x03, /* SHA-1/ECDSA */ }; - if (data >= (d + n - 2)) + if (data >= (limit - 2)) return; data += 2; - if (data > (d + n - 4)) + if (data > (limit - 4)) return; n2s(data, type); n2s(data, size); @@ -954,7 +1878,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data, if (type != TLSEXT_TYPE_server_name) return; - if (data + size > d + n) + if (data + size > limit) return; data += size; @@ -962,7 +1886,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data, const size_t len1 = sizeof(kSafariExtensionsBlock); const size_t len2 = sizeof(kSafariTLS12ExtensionsBlock); - if (data + len1 + len2 != d + n) + if (data + len1 + len2 != limit) return; if (memcmp(data, kSafariExtensionsBlock, len1) != 0) return; @@ -971,7 +1895,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data, } else { const size_t len = sizeof(kSafariExtensionsBlock); - if (data + len != d + n) + if (data + len != limit) return; if (memcmp(data, kSafariExtensionsBlock, len) != 0) return; @@ -981,15 +1905,82 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data, } # endif /* !OPENSSL_NO_EC */ -int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, - int n, int *al) +/* + * tls1_alpn_handle_client_hello is called to process the ALPN extension in a + * ClientHello. data: the contents of the extension, not including the type + * and length. data_len: the number of bytes in |data| al: a pointer to the + * alert value to send in the event of a non-zero return. returns: 0 on + * success. + */ +static int tls1_alpn_handle_client_hello(SSL *s, const unsigned char *data, + unsigned data_len, int *al) +{ + unsigned i; + unsigned proto_len; + const unsigned char *selected; + unsigned char selected_len; + int r; + + if (s->ctx->alpn_select_cb == NULL) + return 0; + + if (data_len < 2) + goto parse_error; + + /* + * data should contain a uint16 length followed by a series of 8-bit, + * length-prefixed strings. + */ + i = ((unsigned)data[0]) << 8 | ((unsigned)data[1]); + data_len -= 2; + data += 2; + if (data_len != i) + goto parse_error; + + if (data_len < 2) + goto parse_error; + + for (i = 0; i < data_len;) { + proto_len = data[i]; + i++; + + if (proto_len == 0) + goto parse_error; + + if (i + proto_len < i || i + proto_len > data_len) + goto parse_error; + + i += proto_len; + } + + r = s->ctx->alpn_select_cb(s, &selected, &selected_len, data, data_len, + s->ctx->alpn_select_cb_arg); + if (r == SSL_TLSEXT_ERR_OK) { + if (s->s3->alpn_selected) + OPENSSL_free(s->s3->alpn_selected); + s->s3->alpn_selected = OPENSSL_malloc(selected_len); + if (!s->s3->alpn_selected) { + *al = SSL_AD_INTERNAL_ERROR; + return -1; + } + memcpy(s->s3->alpn_selected, selected, selected_len); + s->s3->alpn_selected_len = selected_len; + } + return 0; + + parse_error: + *al = SSL_AD_DECODE_ERROR; + return -1; +} + +static int ssl_scan_clienthello_tlsext(SSL *s, unsigned char **p, + unsigned char *limit, int *al) { unsigned short type; unsigned short size; unsigned short len; unsigned char *data = *p; int renegotiate_seen = 0; - int sigalg_seen = 0; s->servername_done = 0; s->tlsext_status_type = -1; @@ -997,6 +1988,10 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, s->s3->next_proto_neg_seen = 0; # endif + if (s->s3->alpn_selected) { + OPENSSL_free(s->s3->alpn_selected); + s->s3->alpn_selected = NULL; + } # ifndef OPENSSL_NO_HEARTBEATS s->tlsext_heartbeat &= ~(SSL_TLSEXT_HB_ENABLED | SSL_TLSEXT_HB_DONT_SEND_REQUESTS); @@ -1004,9 +1999,14 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, # ifndef OPENSSL_NO_EC if (s->options & SSL_OP_SAFARI_ECDHE_ECDSA_BUG) - ssl_check_for_safari(s, data, d, n); + ssl_check_for_safari(s, data, limit); # endif /* !OPENSSL_NO_EC */ + /* Clear any signature algorithms extension received */ + if (s->cert->peer_sigalgs) { + OPENSSL_free(s->cert->peer_sigalgs); + s->cert->peer_sigalgs = NULL; + } # ifndef OPENSSL_NO_SRP if (s->srp_ctx.login != NULL) { OPENSSL_free(s->srp_ctx.login); @@ -1016,22 +2016,22 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, s->srtp_profile = NULL; - if (data == d + n) + if (data == limit) goto ri_check; - if (data > (d + n - 2)) + if (data > (limit - 2)) goto err; n2s(data, len); - if (data > (d + n - len)) + if (data + len != limit) goto err; - while (data <= (d + n - 4)) { + while (data <= (limit - 4)) { n2s(data, type); n2s(data, size); - if (data + size > (d + n)) + if (data + size > (limit)) goto err; # if 0 fprintf(stderr, "Received extension type %d size %d\n", type, size); @@ -1149,7 +2149,8 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, unsigned char *sdata = data; int ecpointformatlist_length = *(sdata++); - if (ecpointformatlist_length != size - 1) + if (ecpointformatlist_length != size - 1 || + ecpointformatlist_length < 1) goto err; if (!s->hit) { if (s->session->tlsext_ecpointformatlist) { @@ -1214,8 +2215,7 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, } # endif /* OPENSSL_NO_EC */ # ifdef TLSEXT_TYPE_opaque_prf_input - else if (type == TLSEXT_TYPE_opaque_prf_input && - s->version != DTLS1_VERSION) { + else if (type == TLSEXT_TYPE_opaque_prf_input) { unsigned char *sdata = data; if (size < 2) { @@ -1259,17 +2259,15 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, renegotiate_seen = 1; } else if (type == TLSEXT_TYPE_signature_algorithms) { int dsize; - if (sigalg_seen || size < 2) + if (s->cert->peer_sigalgs || size < 2) goto err; - sigalg_seen = 1; n2s(data, dsize); size -= 2; - if (dsize != size || dsize & 1) + if (dsize != size || dsize & 1 || !dsize) goto err; - if (!tls1_process_sigalgs(s, data, dsize)) + if (!tls1_save_sigalgs(s, data, dsize)) goto err; - } else if (type == TLSEXT_TYPE_status_request && - s->version != DTLS1_VERSION) { + } else if (type == TLSEXT_TYPE_status_request) { if (size < 5) goto err; @@ -1361,7 +2359,8 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, # endif # ifndef OPENSSL_NO_NEXTPROTONEG else if (type == TLSEXT_TYPE_next_proto_neg && - s->s3->tmp.finish_md_len == 0) { + s->s3->tmp.finish_md_len == 0 && + s->s3->alpn_selected == NULL) { /*- * We shouldn't accept this extension on a * renegotiation. @@ -1383,6 +2382,16 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, } # endif + else if (type == TLSEXT_TYPE_application_layer_protocol_negotiation && + s->ctx->alpn_select_cb && s->s3->tmp.finish_md_len == 0) { + if (tls1_alpn_handle_client_hello(s, data, size, al) != 0) + return 0; +# ifndef OPENSSL_NO_NEXTPROTONEG + /* ALPN takes precedence over NPN. */ + s->s3->next_proto_neg_seen = 0; +# endif + } + /* session ticket processed earlier */ # ifndef OPENSSL_NO_SRTP else if (SSL_IS_DTLS(s) && SSL_get_srtp_profiles(s) @@ -1396,7 +2405,7 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, } /* Spurious data on the end */ - if (data != d + n) + if (data != limit) goto err; *p = data; @@ -1408,7 +2417,7 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, if (!renegotiate_seen && s->renegotiate && !(s->options & SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION)) { *al = SSL_AD_HANDSHAKE_FAILURE; - SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT, + SSLerr(SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED); return 0; } @@ -1419,6 +2428,73 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, return 0; } +/* + * Parse any custom extensions found. "data" is the start of the extension data + * and "limit" is the end of the record. TODO: add strict syntax checking. + */ + +static int ssl_scan_clienthello_custom_tlsext(SSL *s, + const unsigned char *data, + const unsigned char *limit, + int *al) +{ + unsigned short type, size, len; + /* If resumed session or no custom extensions nothing to do */ + if (s->hit || s->cert->srv_ext.meths_count == 0) + return 1; + + if (data >= limit - 2) + return 1; + n2s(data, len); + + if (data > limit - len) + return 1; + + while (data <= limit - 4) { + n2s(data, type); + n2s(data, size); + + if (data + size > limit) + return 1; + if (custom_ext_parse(s, 1 /* server */ , type, data, size, al) <= 0) + return 0; + + data += size; + } + + return 1; +} + +int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, + unsigned char *limit) +{ + int al = -1; + unsigned char *ptmp = *p; + /* + * Internally supported extensions are parsed first so SNI can be handled + * before custom extensions. An application processing SNI will typically + * switch the parent context using SSL_set_SSL_CTX and custom extensions + * need to be handled by the new SSL_CTX structure. + */ + if (ssl_scan_clienthello_tlsext(s, p, limit, &al) <= 0) { + ssl3_send_alert(s, SSL3_AL_FATAL, al); + return 0; + } + + if (ssl_check_clienthello_tlsext_early(s) <= 0) { + SSLerr(SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT, SSL_R_CLIENTHELLO_TLSEXT); + return 0; + } + + custom_ext_init(&s->cert->srv_ext); + if (ssl_scan_clienthello_custom_tlsext(s, ptmp, limit, &al) <= 0) { + ssl3_send_alert(s, SSL3_AL_FATAL, al); + return 0; + } + + return 1; +} + # ifndef OPENSSL_NO_NEXTPROTONEG /* * ssl_next_proto_validate validates a Next Protocol Negotiation block. No @@ -1440,8 +2516,8 @@ static char ssl_next_proto_validate(unsigned char *d, unsigned len) } # endif -int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, - int n, int *al) +static int ssl_scan_serverhello_tlsext(SSL *s, unsigned char **p, + unsigned char *d, int n, int *al) { unsigned short length; unsigned short type; @@ -1455,6 +2531,10 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, # endif s->tlsext_ticket_expected = 0; + if (s->s3->alpn_selected) { + OPENSSL_free(s->s3->alpn_selected); + s->s3->alpn_selected = NULL; + } # ifndef OPENSSL_NO_HEARTBEATS s->tlsext_heartbeat &= ~(SSL_TLSEXT_HB_ENABLED | SSL_TLSEXT_HB_DONT_SEND_REQUESTS); @@ -1491,8 +2571,7 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, unsigned char *sdata = data; int ecpointformatlist_length = *(sdata++); - if (ecpointformatlist_length != size - 1 || - ecpointformatlist_length < 1) { + if (ecpointformatlist_length != size - 1) { *al = TLS1_AD_DECODE_ERROR; return 0; } @@ -1537,8 +2616,7 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, s->tlsext_ticket_expected = 1; } # ifdef TLSEXT_TYPE_opaque_prf_input - else if (type == TLSEXT_TYPE_opaque_prf_input && - s->version != DTLS1_VERSION) { + else if (type == TLSEXT_TYPE_opaque_prf_input) { unsigned char *sdata = data; if (size < 2) { @@ -1569,8 +2647,7 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, } } # endif - else if (type == TLSEXT_TYPE_status_request && - s->version != DTLS1_VERSION) { + else if (type == TLSEXT_TYPE_status_request) { /* * MUST be empty and only sent if we've requested a status * request message. @@ -1616,6 +2693,48 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, s->s3->next_proto_neg_seen = 1; } # endif + + else if (type == TLSEXT_TYPE_application_layer_protocol_negotiation) { + unsigned len; + + /* We must have requested it. */ + if (s->alpn_client_proto_list == NULL) { + *al = TLS1_AD_UNSUPPORTED_EXTENSION; + return 0; + } + if (size < 4) { + *al = TLS1_AD_DECODE_ERROR; + return 0; + } + /*- + * The extension data consists of: + * uint16 list_length + * uint8 proto_length; + * uint8 proto[proto_length]; + */ + len = data[0]; + len <<= 8; + len |= data[1]; + if (len != (unsigned)size - 2) { + *al = TLS1_AD_DECODE_ERROR; + return 0; + } + len = data[2]; + if (len != (unsigned)size - 3) { + *al = TLS1_AD_DECODE_ERROR; + return 0; + } + if (s->s3->alpn_selected) + OPENSSL_free(s->s3->alpn_selected); + s->s3->alpn_selected = OPENSSL_malloc(len); + if (!s->s3->alpn_selected) { + *al = TLS1_AD_INTERNAL_ERROR; + return 0; + } + memcpy(s->s3->alpn_selected, data + 3, len); + s->s3->alpn_selected_len = len; + } + else if (type == TLSEXT_TYPE_renegotiate) { if (!ssl_parse_serverhello_renegotiate_ext(s, data, size, al)) return 0; @@ -1643,6 +2762,12 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, return 0; } # endif + /* + * If this extension type was not otherwise handled, but matches a + * custom_cli_ext_record, then send it to the c callback + */ + else if (custom_ext_parse(s, 0, type, data, size, al) <= 0) + return 0; data += size; } @@ -1682,7 +2807,7 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, if (!renegotiate_seen && !(s->options & SSL_OP_LEGACY_SERVER_CONNECT) && !(s->options & SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION)) { *al = SSL_AD_HANDSHAKE_FAILURE; - SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT, + SSLerr(SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED); return 0; } @@ -1692,63 +2817,6 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, int ssl_prepare_clienthello_tlsext(SSL *s) { -# ifndef OPENSSL_NO_EC - /* - * If we are client and using an elliptic curve cryptography cipher - * suite, send the point formats and elliptic curves we support. - */ - int using_ecc = 0; - int i; - unsigned char *j; - unsigned long alg_k, alg_a; - STACK_OF(SSL_CIPHER) *cipher_stack = SSL_get_ciphers(s); - - for (i = 0; i < sk_SSL_CIPHER_num(cipher_stack); i++) { - SSL_CIPHER *c = sk_SSL_CIPHER_value(cipher_stack, i); - - alg_k = c->algorithm_mkey; - alg_a = c->algorithm_auth; - if ((alg_k & (SSL_kEECDH | SSL_kECDHr | SSL_kECDHe) - || (alg_a & SSL_aECDSA))) { - using_ecc = 1; - break; - } - } - using_ecc = using_ecc && (s->version >= TLS1_VERSION); - if (using_ecc) { - if (s->tlsext_ecpointformatlist != NULL) - OPENSSL_free(s->tlsext_ecpointformatlist); - if ((s->tlsext_ecpointformatlist = OPENSSL_malloc(3)) == NULL) { - SSLerr(SSL_F_SSL_PREPARE_CLIENTHELLO_TLSEXT, - ERR_R_MALLOC_FAILURE); - return -1; - } - s->tlsext_ecpointformatlist_length = 3; - s->tlsext_ecpointformatlist[0] = TLSEXT_ECPOINTFORMAT_uncompressed; - s->tlsext_ecpointformatlist[1] = - TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime; - s->tlsext_ecpointformatlist[2] = - TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2; - - /* we support all named elliptic curves in RFC 4492 */ - if (s->tlsext_ellipticcurvelist != NULL) - OPENSSL_free(s->tlsext_ellipticcurvelist); - s->tlsext_ellipticcurvelist_length = - sizeof(pref_list) / sizeof(pref_list[0]) * 2; - if ((s->tlsext_ellipticcurvelist = - OPENSSL_malloc(s->tlsext_ellipticcurvelist_length)) == NULL) { - s->tlsext_ellipticcurvelist_length = 0; - SSLerr(SSL_F_SSL_PREPARE_CLIENTHELLO_TLSEXT, - ERR_R_MALLOC_FAILURE); - return -1; - } - for (i = 0, j = s->tlsext_ellipticcurvelist; (unsigned int)i < - sizeof(pref_list) / sizeof(pref_list[0]); i++) { - int id = tls1_ec_nid2curve_id(pref_list[i]); - s2n(id, j); - } - } -# endif /* OPENSSL_NO_EC */ # ifdef TLSEXT_TYPE_opaque_prf_input { @@ -1800,40 +2868,10 @@ int ssl_prepare_clienthello_tlsext(SSL *s) int ssl_prepare_serverhello_tlsext(SSL *s) { -# ifndef OPENSSL_NO_EC - /* - * If we are server and using an ECC cipher suite, send the point formats - * we support if the client sent us an ECPointsFormat extension. Note - * that the server is not supposed to send an EllipticCurves extension. - */ - - unsigned long alg_k = s->s3->tmp.new_cipher->algorithm_mkey; - unsigned long alg_a = s->s3->tmp.new_cipher->algorithm_auth; - int using_ecc = (alg_k & (SSL_kEECDH | SSL_kECDHr | SSL_kECDHe)) - || (alg_a & SSL_aECDSA); - using_ecc = using_ecc && (s->session->tlsext_ecpointformatlist != NULL); - - if (using_ecc) { - if (s->tlsext_ecpointformatlist != NULL) - OPENSSL_free(s->tlsext_ecpointformatlist); - if ((s->tlsext_ecpointformatlist = OPENSSL_malloc(3)) == NULL) { - SSLerr(SSL_F_SSL_PREPARE_SERVERHELLO_TLSEXT, - ERR_R_MALLOC_FAILURE); - return -1; - } - s->tlsext_ecpointformatlist_length = 3; - s->tlsext_ecpointformatlist[0] = TLSEXT_ECPOINTFORMAT_uncompressed; - s->tlsext_ecpointformatlist[1] = - TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime; - s->tlsext_ecpointformatlist[2] = - TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2; - } -# endif /* OPENSSL_NO_EC */ - return 1; } -int ssl_check_clienthello_tlsext_early(SSL *s) +static int ssl_check_clienthello_tlsext_early(SSL *s) { int ret = SSL_TLSEXT_ERR_NOACK; int al = SSL_AD_UNRECOGNIZED_NAME; @@ -1943,6 +2981,44 @@ int ssl_check_clienthello_tlsext_early(SSL *s) } } +int tls1_set_server_sigalgs(SSL *s) +{ + int al; + size_t i; + /* Clear any shared sigtnature algorithms */ + if (s->cert->shared_sigalgs) { + OPENSSL_free(s->cert->shared_sigalgs); + s->cert->shared_sigalgs = NULL; + s->cert->shared_sigalgslen = 0; + } + /* Clear certificate digests and validity flags */ + for (i = 0; i < SSL_PKEY_NUM; i++) { + s->cert->pkeys[i].digest = NULL; + s->cert->pkeys[i].valid_flags = 0; + } + + /* If sigalgs received process it. */ + if (s->cert->peer_sigalgs) { + if (!tls1_process_sigalgs(s)) { + SSLerr(SSL_F_TLS1_SET_SERVER_SIGALGS, ERR_R_MALLOC_FAILURE); + al = SSL_AD_INTERNAL_ERROR; + goto err; + } + /* Fatal error is no shared signature algorithms */ + if (!s->cert->shared_sigalgs) { + SSLerr(SSL_F_TLS1_SET_SERVER_SIGALGS, + SSL_R_NO_SHARED_SIGATURE_ALGORITHMS); + al = SSL_AD_ILLEGAL_PARAMETER; + goto err; + } + } else + ssl_cert_set_default_md(s->cert); + return 1; + err: + ssl3_send_alert(s, SSL3_AL_FATAL, al); + return 0; +} + int ssl_check_clienthello_tlsext_late(SSL *s) { int ret = SSL_TLSEXT_ERR_OK; @@ -1950,9 +3026,9 @@ int ssl_check_clienthello_tlsext_late(SSL *s) /* * If status request then ask callback what to do. Note: this must be - * called after servername callbacks in case the certificate has - * changed, and must be called after the cipher has been chosen because - * this may influence which certificate is sent + * called after servername callbacks in case the certificate has changed, + * and must be called after the cipher has been chosen because this may + * influence which certificate is sent */ if ((s->tlsext_status_type != -1) && s->ctx && s->ctx->tlsext_status_cb) { int r; @@ -2124,6 +3200,24 @@ int ssl_check_serverhello_tlsext(SSL *s) } } +int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, + int n) +{ + int al = -1; + if (s->version < SSL3_VERSION) + return 1; + if (ssl_scan_serverhello_tlsext(s, p, d, n, &al) <= 0) { + ssl3_send_alert(s, SSL3_AL_FATAL, al); + return 0; + } + + if (ssl_check_serverhello_tlsext(s) <= 0) { + SSLerr(SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT, SSL_R_SERVERHELLO_TLSEXT); + return 0; + } + return 1; +} + /*- * Since the server cache lookup is done early on in the processing of the * ClientHello, and other operations depend on the result, we need to handle @@ -2179,7 +3273,7 @@ int tls1_process_ticket(SSL *s, unsigned char *session_id, int len, if (p >= limit) return -1; /* Skip past DTLS cookie */ - if (s->version == DTLS1_VERSION || s->version == DTLS1_BAD_VER) { + if (SSL_IS_DTLS(s)) { i = *(p++); p += i; if (p >= limit) @@ -2291,10 +3385,13 @@ static int tls_decrypt_ticket(SSL *s, const unsigned char *etick, /* Check key name matches */ if (memcmp(etick, tctx->tlsext_tick_key_name, 16)) return 2; - HMAC_Init_ex(&hctx, tctx->tlsext_tick_hmac_key, 16, - tlsext_tick_md(), NULL); - EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, - tctx->tlsext_tick_aes_key, etick + 16); + if (HMAC_Init_ex(&hctx, tctx->tlsext_tick_hmac_key, 16, + tlsext_tick_md(), NULL) <= 0 + || EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, + tctx->tlsext_tick_aes_key, + etick + 16) <= 0) { + goto err; + } } /* * Attempt to process session ticket, first conduct sanity and integrity @@ -2302,13 +3399,14 @@ static int tls_decrypt_ticket(SSL *s, const unsigned char *etick, */ mlen = HMAC_size(&hctx); if (mlen < 0) { - EVP_CIPHER_CTX_cleanup(&ctx); - return -1; + goto err; } eticklen -= mlen; /* Check HMAC of encrypted ticket */ - HMAC_Update(&hctx, etick, eticklen); - HMAC_Final(&hctx, tick_hmac, NULL); + if (HMAC_Update(&hctx, etick, eticklen) <= 0 + || HMAC_Final(&hctx, tick_hmac, NULL) <= 0) { + goto err; + } HMAC_CTX_cleanup(&hctx); if (CRYPTO_memcmp(tick_hmac, etick + eticklen, mlen)) { EVP_CIPHER_CTX_cleanup(&ctx); @@ -2319,11 +3417,10 @@ static int tls_decrypt_ticket(SSL *s, const unsigned char *etick, p = etick + 16 + EVP_CIPHER_CTX_iv_length(&ctx); eticklen -= 16 + EVP_CIPHER_CTX_iv_length(&ctx); sdec = OPENSSL_malloc(eticklen); - if (!sdec) { + if (!sdec || EVP_DecryptUpdate(&ctx, sdec, &slen, p, eticklen) <= 0) { EVP_CIPHER_CTX_cleanup(&ctx); return -1; } - EVP_DecryptUpdate(&ctx, sdec, &slen, p, eticklen); if (EVP_DecryptFinal(&ctx, sdec + slen, &mlen) <= 0) { EVP_CIPHER_CTX_cleanup(&ctx); OPENSSL_free(sdec); @@ -2356,6 +3453,10 @@ static int tls_decrypt_ticket(SSL *s, const unsigned char *etick, * For session parse failure, indicate that we need to send a new ticket. */ return 2; +err: + EVP_CIPHER_CTX_cleanup(&ctx); + HMAC_CTX_cleanup(&hctx); + return -1; } /* Tables to translate from NIDs to TLS v1.2 ids */ @@ -2366,32 +3467,18 @@ typedef struct { } tls12_lookup; static tls12_lookup tls12_md[] = { -# ifndef OPENSSL_NO_MD5 {NID_md5, TLSEXT_hash_md5}, -# endif -# ifndef OPENSSL_NO_SHA {NID_sha1, TLSEXT_hash_sha1}, -# endif -# ifndef OPENSSL_NO_SHA256 {NID_sha224, TLSEXT_hash_sha224}, {NID_sha256, TLSEXT_hash_sha256}, -# endif -# ifndef OPENSSL_NO_SHA512 {NID_sha384, TLSEXT_hash_sha384}, {NID_sha512, TLSEXT_hash_sha512} -# endif }; static tls12_lookup tls12_sig[] = { -# ifndef OPENSSL_NO_RSA {EVP_PKEY_RSA, TLSEXT_signature_rsa}, -# endif -# ifndef OPENSSL_NO_DSA {EVP_PKEY_DSA, TLSEXT_signature_dsa}, -# endif -# ifndef OPENSSL_NO_ECDSA {EVP_PKEY_EC, TLSEXT_signature_ecdsa} -# endif }; static int tls12_find_id(int nid, tls12_lookup *table, size_t tlen) @@ -2404,17 +3491,15 @@ static int tls12_find_id(int nid, tls12_lookup *table, size_t tlen) return -1; } -# if 0 static int tls12_find_nid(int id, tls12_lookup *table, size_t tlen) { size_t i; for (i = 0; i < tlen; i++) { - if (table[i].id == id) + if ((table[i].id) == id) return table[i].nid; } - return -1; + return NID_undef; } -# endif int tls12_get_sigandhash(unsigned char *p, const EVP_PKEY *pk, const EVP_MD *md) @@ -2443,6 +3528,14 @@ int tls12_get_sigid(const EVP_PKEY *pk) const EVP_MD *tls12_get_hash(unsigned char hash_alg) { switch (hash_alg) { +# ifndef OPENSSL_NO_MD5 + case TLSEXT_hash_md5: +# ifdef OPENSSL_FIPS + if (FIPS_mode()) + return NULL; +# endif + return EVP_md5(); +# endif # ifndef OPENSSL_NO_SHA case TLSEXT_hash_sha1: return EVP_sha1(); @@ -2467,83 +3560,274 @@ const EVP_MD *tls12_get_hash(unsigned char hash_alg) } } +static int tls12_get_pkey_idx(unsigned char sig_alg) +{ + switch (sig_alg) { +# ifndef OPENSSL_NO_RSA + case TLSEXT_signature_rsa: + return SSL_PKEY_RSA_SIGN; +# endif +# ifndef OPENSSL_NO_DSA + case TLSEXT_signature_dsa: + return SSL_PKEY_DSA_SIGN; +# endif +# ifndef OPENSSL_NO_ECDSA + case TLSEXT_signature_ecdsa: + return SSL_PKEY_ECC; +# endif + } + return -1; +} + +/* Convert TLS 1.2 signature algorithm extension values into NIDs */ +static void tls1_lookup_sigalg(int *phash_nid, int *psign_nid, + int *psignhash_nid, const unsigned char *data) +{ + int sign_nid = 0, hash_nid = 0; + if (!phash_nid && !psign_nid && !psignhash_nid) + return; + if (phash_nid || psignhash_nid) { + hash_nid = tls12_find_nid(data[0], tls12_md, + sizeof(tls12_md) / sizeof(tls12_lookup)); + if (phash_nid) + *phash_nid = hash_nid; + } + if (psign_nid || psignhash_nid) { + sign_nid = tls12_find_nid(data[1], tls12_sig, + sizeof(tls12_sig) / sizeof(tls12_lookup)); + if (psign_nid) + *psign_nid = sign_nid; + } + if (psignhash_nid) { + if (sign_nid && hash_nid) + OBJ_find_sigid_by_algs(psignhash_nid, hash_nid, sign_nid); + else + *psignhash_nid = NID_undef; + } +} + +/* Given preference and allowed sigalgs set shared sigalgs */ +static int tls12_do_shared_sigalgs(TLS_SIGALGS *shsig, + const unsigned char *pref, size_t preflen, + const unsigned char *allow, + size_t allowlen) +{ + const unsigned char *ptmp, *atmp; + size_t i, j, nmatch = 0; + for (i = 0, ptmp = pref; i < preflen; i += 2, ptmp += 2) { + /* Skip disabled hashes or signature algorithms */ + if (tls12_get_hash(ptmp[0]) == NULL) + continue; + if (tls12_get_pkey_idx(ptmp[1]) == -1) + continue; + for (j = 0, atmp = allow; j < allowlen; j += 2, atmp += 2) { + if (ptmp[0] == atmp[0] && ptmp[1] == atmp[1]) { + nmatch++; + if (shsig) { + shsig->rhash = ptmp[0]; + shsig->rsign = ptmp[1]; + tls1_lookup_sigalg(&shsig->hash_nid, + &shsig->sign_nid, + &shsig->signandhash_nid, ptmp); + shsig++; + } + break; + } + } + } + return nmatch; +} + +/* Set shared signature algorithms for SSL structures */ +static int tls1_set_shared_sigalgs(SSL *s) +{ + const unsigned char *pref, *allow, *conf; + size_t preflen, allowlen, conflen; + size_t nmatch; + TLS_SIGALGS *salgs = NULL; + CERT *c = s->cert; + unsigned int is_suiteb = tls1_suiteb(s); + if (c->shared_sigalgs) { + OPENSSL_free(c->shared_sigalgs); + c->shared_sigalgs = NULL; + c->shared_sigalgslen = 0; + } + /* If client use client signature algorithms if not NULL */ + if (!s->server && c->client_sigalgs && !is_suiteb) { + conf = c->client_sigalgs; + conflen = c->client_sigalgslen; + } else if (c->conf_sigalgs && !is_suiteb) { + conf = c->conf_sigalgs; + conflen = c->conf_sigalgslen; + } else + conflen = tls12_get_psigalgs(s, &conf); + if (s->options & SSL_OP_CIPHER_SERVER_PREFERENCE || is_suiteb) { + pref = conf; + preflen = conflen; + allow = c->peer_sigalgs; + allowlen = c->peer_sigalgslen; + } else { + allow = conf; + allowlen = conflen; + pref = c->peer_sigalgs; + preflen = c->peer_sigalgslen; + } + nmatch = tls12_do_shared_sigalgs(NULL, pref, preflen, allow, allowlen); + if (nmatch) { + salgs = OPENSSL_malloc(nmatch * sizeof(TLS_SIGALGS)); + if (!salgs) + return 0; + nmatch = tls12_do_shared_sigalgs(salgs, pref, preflen, allow, allowlen); + } else { + salgs = NULL; + } + c->shared_sigalgs = salgs; + c->shared_sigalgslen = nmatch; + return 1; +} + /* Set preferred digest for each key type */ -int tls1_process_sigalgs(SSL *s, const unsigned char *data, int dsize) +int tls1_save_sigalgs(SSL *s, const unsigned char *data, int dsize) { - int i, idx; - const EVP_MD *md; CERT *c = s->cert; - /* Extension ignored for TLS versions below 1.2 */ - if (TLS1_get_version(s) < TLS1_2_VERSION) + /* Extension ignored for inappropriate versions */ + if (!SSL_USE_SIGALGS(s)) return 1; /* Should never happen */ if (!c) return 0; - c->pkeys[SSL_PKEY_DSA_SIGN].digest = NULL; - c->pkeys[SSL_PKEY_RSA_SIGN].digest = NULL; - c->pkeys[SSL_PKEY_RSA_ENC].digest = NULL; - c->pkeys[SSL_PKEY_ECC].digest = NULL; + if (c->peer_sigalgs) + OPENSSL_free(c->peer_sigalgs); + c->peer_sigalgs = OPENSSL_malloc(dsize); + if (!c->peer_sigalgs) + return 0; + c->peer_sigalgslen = dsize; + memcpy(c->peer_sigalgs, data, dsize); + return 1; +} - for (i = 0; i < dsize; i += 2) { - unsigned char hash_alg = data[i], sig_alg = data[i + 1]; +int tls1_process_sigalgs(SSL *s) +{ + int idx; + size_t i; + const EVP_MD *md; + CERT *c = s->cert; + TLS_SIGALGS *sigptr; + if (!tls1_set_shared_sigalgs(s)) + return 0; - switch (sig_alg) { -# ifndef OPENSSL_NO_RSA - case TLSEXT_signature_rsa: - idx = SSL_PKEY_RSA_SIGN; - break; -# endif -# ifndef OPENSSL_NO_DSA - case TLSEXT_signature_dsa: - idx = SSL_PKEY_DSA_SIGN; - break; -# endif -# ifndef OPENSSL_NO_ECDSA - case TLSEXT_signature_ecdsa: - idx = SSL_PKEY_ECC; - break; -# endif - default: - continue; +# ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL + if (s->cert->cert_flags & SSL_CERT_FLAG_BROKEN_PROTOCOL) { + /* + * Use first set signature preference to force message digest, + * ignoring any peer preferences. + */ + const unsigned char *sigs = NULL; + if (s->server) + sigs = c->conf_sigalgs; + else + sigs = c->client_sigalgs; + if (sigs) { + idx = tls12_get_pkey_idx(sigs[1]); + md = tls12_get_hash(sigs[0]); + c->pkeys[idx].digest = md; + c->pkeys[idx].valid_flags = CERT_PKEY_EXPLICIT_SIGN; + if (idx == SSL_PKEY_RSA_SIGN) { + c->pkeys[SSL_PKEY_RSA_ENC].valid_flags = + CERT_PKEY_EXPLICIT_SIGN; + c->pkeys[SSL_PKEY_RSA_ENC].digest = md; + } } + } +# endif - if (c->pkeys[idx].digest == NULL) { - md = tls12_get_hash(hash_alg); - if (md) { - c->pkeys[idx].digest = md; - if (idx == SSL_PKEY_RSA_SIGN) - c->pkeys[SSL_PKEY_RSA_ENC].digest = md; + for (i = 0, sigptr = c->shared_sigalgs; + i < c->shared_sigalgslen; i++, sigptr++) { + idx = tls12_get_pkey_idx(sigptr->rsign); + if (idx > 0 && c->pkeys[idx].digest == NULL) { + md = tls12_get_hash(sigptr->rhash); + c->pkeys[idx].digest = md; + c->pkeys[idx].valid_flags = CERT_PKEY_EXPLICIT_SIGN; + if (idx == SSL_PKEY_RSA_SIGN) { + c->pkeys[SSL_PKEY_RSA_ENC].valid_flags = + CERT_PKEY_EXPLICIT_SIGN; + c->pkeys[SSL_PKEY_RSA_ENC].digest = md; } } } - /* - * Set any remaining keys to default values. NOTE: if alg is not - * supported it stays as NULL. + * In strict mode leave unset digests as NULL to indicate we can't use + * the certificate for signing. */ + if (!(s->cert->cert_flags & SSL_CERT_FLAGS_CHECK_TLS_STRICT)) { + /* + * Set any remaining keys to default values. NOTE: if alg is not + * supported it stays as NULL. + */ # ifndef OPENSSL_NO_DSA - if (!c->pkeys[SSL_PKEY_DSA_SIGN].digest) - c->pkeys[SSL_PKEY_DSA_SIGN].digest = EVP_sha1(); + if (!c->pkeys[SSL_PKEY_DSA_SIGN].digest) + c->pkeys[SSL_PKEY_DSA_SIGN].digest = EVP_sha1(); # endif # ifndef OPENSSL_NO_RSA - if (!c->pkeys[SSL_PKEY_RSA_SIGN].digest) { - c->pkeys[SSL_PKEY_RSA_SIGN].digest = EVP_sha1(); - c->pkeys[SSL_PKEY_RSA_ENC].digest = EVP_sha1(); - } + if (!c->pkeys[SSL_PKEY_RSA_SIGN].digest) { + c->pkeys[SSL_PKEY_RSA_SIGN].digest = EVP_sha1(); + c->pkeys[SSL_PKEY_RSA_ENC].digest = EVP_sha1(); + } # endif # ifndef OPENSSL_NO_ECDSA - if (!c->pkeys[SSL_PKEY_ECC].digest) - c->pkeys[SSL_PKEY_ECC].digest = EVP_sha1(); + if (!c->pkeys[SSL_PKEY_ECC].digest) + c->pkeys[SSL_PKEY_ECC].digest = EVP_sha1(); # endif + } return 1; } -#endif +int SSL_get_sigalgs(SSL *s, int idx, + int *psign, int *phash, int *psignhash, + unsigned char *rsig, unsigned char *rhash) +{ + const unsigned char *psig = s->cert->peer_sigalgs; + if (psig == NULL) + return 0; + if (idx >= 0) { + idx <<= 1; + if (idx >= (int)s->cert->peer_sigalgslen) + return 0; + psig += idx; + if (rhash) + *rhash = psig[0]; + if (rsig) + *rsig = psig[1]; + tls1_lookup_sigalg(phash, psign, psignhash, psig); + } + return s->cert->peer_sigalgslen / 2; +} + +int SSL_get_shared_sigalgs(SSL *s, int idx, + int *psign, int *phash, int *psignhash, + unsigned char *rsig, unsigned char *rhash) +{ + TLS_SIGALGS *shsigalgs = s->cert->shared_sigalgs; + if (!shsigalgs || idx >= (int)s->cert->shared_sigalgslen) + return 0; + shsigalgs += idx; + if (phash) + *phash = shsigalgs->hash_nid; + if (psign) + *psign = shsigalgs->sign_nid; + if (psignhash) + *psignhash = shsigalgs->signandhash_nid; + if (rsig) + *rsig = shsigalgs->rsign; + if (rhash) + *rhash = shsigalgs->rhash; + return s->cert->shared_sigalgslen; +} -#ifndef OPENSSL_NO_HEARTBEATS +# ifndef OPENSSL_NO_HEARTBEATS int tls1_process_heartbeat(SSL *s) { unsigned char *p = &s->s3->rrec.data[0], *pl; @@ -2694,4 +3978,426 @@ int tls1_heartbeat(SSL *s) return ret; } +# endif + +# define MAX_SIGALGLEN (TLSEXT_hash_num * TLSEXT_signature_num * 2) + +typedef struct { + size_t sigalgcnt; + int sigalgs[MAX_SIGALGLEN]; +} sig_cb_st; + +static int sig_cb(const char *elem, int len, void *arg) +{ + sig_cb_st *sarg = arg; + size_t i; + char etmp[20], *p; + int sig_alg, hash_alg; + if (elem == NULL) + return 0; + if (sarg->sigalgcnt == MAX_SIGALGLEN) + return 0; + if (len > (int)(sizeof(etmp) - 1)) + return 0; + memcpy(etmp, elem, len); + etmp[len] = 0; + p = strchr(etmp, '+'); + if (!p) + return 0; + *p = 0; + p++; + if (!*p) + return 0; + + if (!strcmp(etmp, "RSA")) + sig_alg = EVP_PKEY_RSA; + else if (!strcmp(etmp, "DSA")) + sig_alg = EVP_PKEY_DSA; + else if (!strcmp(etmp, "ECDSA")) + sig_alg = EVP_PKEY_EC; + else + return 0; + + hash_alg = OBJ_sn2nid(p); + if (hash_alg == NID_undef) + hash_alg = OBJ_ln2nid(p); + if (hash_alg == NID_undef) + return 0; + + for (i = 0; i < sarg->sigalgcnt; i += 2) { + if (sarg->sigalgs[i] == sig_alg && sarg->sigalgs[i + 1] == hash_alg) + return 0; + } + sarg->sigalgs[sarg->sigalgcnt++] = hash_alg; + sarg->sigalgs[sarg->sigalgcnt++] = sig_alg; + return 1; +} + +/* + * Set suppored signature algorithms based on a colon separated list of the + * form sig+hash e.g. RSA+SHA512:DSA+SHA512 + */ +int tls1_set_sigalgs_list(CERT *c, const char *str, int client) +{ + sig_cb_st sig; + sig.sigalgcnt = 0; + if (!CONF_parse_list(str, ':', 1, sig_cb, &sig)) + return 0; + if (c == NULL) + return 1; + return tls1_set_sigalgs(c, sig.sigalgs, sig.sigalgcnt, client); +} + +int tls1_set_sigalgs(CERT *c, const int *psig_nids, size_t salglen, + int client) +{ + unsigned char *sigalgs, *sptr; + int rhash, rsign; + size_t i; + if (salglen & 1) + return 0; + sigalgs = OPENSSL_malloc(salglen); + if (sigalgs == NULL) + return 0; + for (i = 0, sptr = sigalgs; i < salglen; i += 2) { + rhash = tls12_find_id(*psig_nids++, tls12_md, + sizeof(tls12_md) / sizeof(tls12_lookup)); + rsign = tls12_find_id(*psig_nids++, tls12_sig, + sizeof(tls12_sig) / sizeof(tls12_lookup)); + + if (rhash == -1 || rsign == -1) + goto err; + *sptr++ = rhash; + *sptr++ = rsign; + } + + if (client) { + if (c->client_sigalgs) + OPENSSL_free(c->client_sigalgs); + c->client_sigalgs = sigalgs; + c->client_sigalgslen = salglen; + } else { + if (c->conf_sigalgs) + OPENSSL_free(c->conf_sigalgs); + c->conf_sigalgs = sigalgs; + c->conf_sigalgslen = salglen; + } + + return 1; + + err: + OPENSSL_free(sigalgs); + return 0; +} + +static int tls1_check_sig_alg(CERT *c, X509 *x, int default_nid) +{ + int sig_nid; + size_t i; + if (default_nid == -1) + return 1; + sig_nid = X509_get_signature_nid(x); + if (default_nid) + return sig_nid == default_nid ? 1 : 0; + for (i = 0; i < c->shared_sigalgslen; i++) + if (sig_nid == c->shared_sigalgs[i].signandhash_nid) + return 1; + return 0; +} + +/* Check to see if a certificate issuer name matches list of CA names */ +static int ssl_check_ca_name(STACK_OF(X509_NAME) *names, X509 *x) +{ + X509_NAME *nm; + int i; + nm = X509_get_issuer_name(x); + for (i = 0; i < sk_X509_NAME_num(names); i++) { + if (!X509_NAME_cmp(nm, sk_X509_NAME_value(names, i))) + return 1; + } + return 0; +} + +/* + * Check certificate chain is consistent with TLS extensions and is usable by + * server. This servers two purposes: it allows users to check chains before + * passing them to the server and it allows the server to check chains before + * attempting to use them. + */ + +/* Flags which need to be set for a certificate when stict mode not set */ + +# define CERT_PKEY_VALID_FLAGS \ + (CERT_PKEY_EE_SIGNATURE|CERT_PKEY_EE_PARAM) +/* Strict mode flags */ +# define CERT_PKEY_STRICT_FLAGS \ + (CERT_PKEY_VALID_FLAGS|CERT_PKEY_CA_SIGNATURE|CERT_PKEY_CA_PARAM \ + | CERT_PKEY_ISSUER_NAME|CERT_PKEY_CERT_TYPE) + +int tls1_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain, + int idx) +{ + int i; + int rv = 0; + int check_flags = 0, strict_mode; + CERT_PKEY *cpk = NULL; + CERT *c = s->cert; + unsigned int suiteb_flags = tls1_suiteb(s); + /* idx == -1 means checking server chains */ + if (idx != -1) { + /* idx == -2 means checking client certificate chains */ + if (idx == -2) { + cpk = c->key; + idx = cpk - c->pkeys; + } else + cpk = c->pkeys + idx; + x = cpk->x509; + pk = cpk->privatekey; + chain = cpk->chain; + strict_mode = c->cert_flags & SSL_CERT_FLAGS_CHECK_TLS_STRICT; + /* If no cert or key, forget it */ + if (!x || !pk) + goto end; +# ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL + /* Allow any certificate to pass test */ + if (s->cert->cert_flags & SSL_CERT_FLAG_BROKEN_PROTOCOL) { + rv = CERT_PKEY_STRICT_FLAGS | CERT_PKEY_EXPLICIT_SIGN | + CERT_PKEY_VALID | CERT_PKEY_SIGN; + cpk->valid_flags = rv; + return rv; + } +# endif + } else { + if (!x || !pk) + return 0; + idx = ssl_cert_type(x, pk); + if (idx == -1) + return 0; + cpk = c->pkeys + idx; + if (c->cert_flags & SSL_CERT_FLAGS_CHECK_TLS_STRICT) + check_flags = CERT_PKEY_STRICT_FLAGS; + else + check_flags = CERT_PKEY_VALID_FLAGS; + strict_mode = 1; + } + + if (suiteb_flags) { + int ok; + if (check_flags) + check_flags |= CERT_PKEY_SUITEB; + ok = X509_chain_check_suiteb(NULL, x, chain, suiteb_flags); + if (ok == X509_V_OK) + rv |= CERT_PKEY_SUITEB; + else if (!check_flags) + goto end; + } + + /* + * Check all signature algorithms are consistent with signature + * algorithms extension if TLS 1.2 or later and strict mode. + */ + if (TLS1_get_version(s) >= TLS1_2_VERSION && strict_mode) { + int default_nid; + unsigned char rsign = 0; + if (c->peer_sigalgs) + default_nid = 0; + /* If no sigalgs extension use defaults from RFC5246 */ + else { + switch (idx) { + case SSL_PKEY_RSA_ENC: + case SSL_PKEY_RSA_SIGN: + case SSL_PKEY_DH_RSA: + rsign = TLSEXT_signature_rsa; + default_nid = NID_sha1WithRSAEncryption; + break; + + case SSL_PKEY_DSA_SIGN: + case SSL_PKEY_DH_DSA: + rsign = TLSEXT_signature_dsa; + default_nid = NID_dsaWithSHA1; + break; + + case SSL_PKEY_ECC: + rsign = TLSEXT_signature_ecdsa; + default_nid = NID_ecdsa_with_SHA1; + break; + + default: + default_nid = -1; + break; + } + } + /* + * If peer sent no signature algorithms extension and we have set + * preferred signature algorithms check we support sha1. + */ + if (default_nid > 0 && c->conf_sigalgs) { + size_t j; + const unsigned char *p = c->conf_sigalgs; + for (j = 0; j < c->conf_sigalgslen; j += 2, p += 2) { + if (p[0] == TLSEXT_hash_sha1 && p[1] == rsign) + break; + } + if (j == c->conf_sigalgslen) { + if (check_flags) + goto skip_sigs; + else + goto end; + } + } + /* Check signature algorithm of each cert in chain */ + if (!tls1_check_sig_alg(c, x, default_nid)) { + if (!check_flags) + goto end; + } else + rv |= CERT_PKEY_EE_SIGNATURE; + rv |= CERT_PKEY_CA_SIGNATURE; + for (i = 0; i < sk_X509_num(chain); i++) { + if (!tls1_check_sig_alg(c, sk_X509_value(chain, i), default_nid)) { + if (check_flags) { + rv &= ~CERT_PKEY_CA_SIGNATURE; + break; + } else + goto end; + } + } + } + /* Else not TLS 1.2, so mark EE and CA signing algorithms OK */ + else if (check_flags) + rv |= CERT_PKEY_EE_SIGNATURE | CERT_PKEY_CA_SIGNATURE; + skip_sigs: + /* Check cert parameters are consistent */ + if (tls1_check_cert_param(s, x, check_flags ? 1 : 2)) + rv |= CERT_PKEY_EE_PARAM; + else if (!check_flags) + goto end; + if (!s->server) + rv |= CERT_PKEY_CA_PARAM; + /* In strict mode check rest of chain too */ + else if (strict_mode) { + rv |= CERT_PKEY_CA_PARAM; + for (i = 0; i < sk_X509_num(chain); i++) { + X509 *ca = sk_X509_value(chain, i); + if (!tls1_check_cert_param(s, ca, 0)) { + if (check_flags) { + rv &= ~CERT_PKEY_CA_PARAM; + break; + } else + goto end; + } + } + } + if (!s->server && strict_mode) { + STACK_OF(X509_NAME) *ca_dn; + int check_type = 0; + switch (pk->type) { + case EVP_PKEY_RSA: + check_type = TLS_CT_RSA_SIGN; + break; + case EVP_PKEY_DSA: + check_type = TLS_CT_DSS_SIGN; + break; + case EVP_PKEY_EC: + check_type = TLS_CT_ECDSA_SIGN; + break; + case EVP_PKEY_DH: + case EVP_PKEY_DHX: + { + int cert_type = X509_certificate_type(x, pk); + if (cert_type & EVP_PKS_RSA) + check_type = TLS_CT_RSA_FIXED_DH; + if (cert_type & EVP_PKS_DSA) + check_type = TLS_CT_DSS_FIXED_DH; + } + } + if (check_type) { + const unsigned char *ctypes; + int ctypelen; + if (c->ctypes) { + ctypes = c->ctypes; + ctypelen = (int)c->ctype_num; + } else { + ctypes = (unsigned char *)s->s3->tmp.ctype; + ctypelen = s->s3->tmp.ctype_num; + } + for (i = 0; i < ctypelen; i++) { + if (ctypes[i] == check_type) { + rv |= CERT_PKEY_CERT_TYPE; + break; + } + } + if (!(rv & CERT_PKEY_CERT_TYPE) && !check_flags) + goto end; + } else + rv |= CERT_PKEY_CERT_TYPE; + + ca_dn = s->s3->tmp.ca_names; + + if (!sk_X509_NAME_num(ca_dn)) + rv |= CERT_PKEY_ISSUER_NAME; + + if (!(rv & CERT_PKEY_ISSUER_NAME)) { + if (ssl_check_ca_name(ca_dn, x)) + rv |= CERT_PKEY_ISSUER_NAME; + } + if (!(rv & CERT_PKEY_ISSUER_NAME)) { + for (i = 0; i < sk_X509_num(chain); i++) { + X509 *xtmp = sk_X509_value(chain, i); + if (ssl_check_ca_name(ca_dn, xtmp)) { + rv |= CERT_PKEY_ISSUER_NAME; + break; + } + } + } + if (!check_flags && !(rv & CERT_PKEY_ISSUER_NAME)) + goto end; + } else + rv |= CERT_PKEY_ISSUER_NAME | CERT_PKEY_CERT_TYPE; + + if (!check_flags || (rv & check_flags) == check_flags) + rv |= CERT_PKEY_VALID; + + end: + + if (TLS1_get_version(s) >= TLS1_2_VERSION) { + if (cpk->valid_flags & CERT_PKEY_EXPLICIT_SIGN) + rv |= CERT_PKEY_EXPLICIT_SIGN | CERT_PKEY_SIGN; + else if (cpk->digest) + rv |= CERT_PKEY_SIGN; + } else + rv |= CERT_PKEY_SIGN | CERT_PKEY_EXPLICIT_SIGN; + + /* + * When checking a CERT_PKEY structure all flags are irrelevant if the + * chain is invalid. + */ + if (!check_flags) { + if (rv & CERT_PKEY_VALID) + cpk->valid_flags = rv; + else { + /* Preserve explicit sign flag, clear rest */ + cpk->valid_flags &= CERT_PKEY_EXPLICIT_SIGN; + return 0; + } + } + return rv; +} + +/* Set validity of certificates in an SSL structure */ +void tls1_set_cert_validity(SSL *s) +{ + tls1_check_chain(s, NULL, NULL, NULL, SSL_PKEY_RSA_ENC); + tls1_check_chain(s, NULL, NULL, NULL, SSL_PKEY_RSA_SIGN); + tls1_check_chain(s, NULL, NULL, NULL, SSL_PKEY_DSA_SIGN); + tls1_check_chain(s, NULL, NULL, NULL, SSL_PKEY_DH_RSA); + tls1_check_chain(s, NULL, NULL, NULL, SSL_PKEY_DH_DSA); + tls1_check_chain(s, NULL, NULL, NULL, SSL_PKEY_ECC); +} + +/* User level utiity function to check a chain is suitable */ +int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain) +{ + return tls1_check_chain(s, x, pk, chain, -1); +} + #endif diff --git a/libs/openssl/ssl/t1_meth.c b/libs/openssl/ssl/t1_meth.c index 4a1b0529..335d57b5 100644 --- a/libs/openssl/ssl/t1_meth.c +++ b/libs/openssl/ssl/t1_meth.c @@ -72,10 +72,13 @@ static const SSL_METHOD *tls1_get_method(int ver) } IMPLEMENT_tls_meth_func(TLS1_2_VERSION, TLSv1_2_method, - ssl3_accept, ssl3_connect, tls1_get_method) + ssl3_accept, + ssl3_connect, tls1_get_method, TLSv1_2_enc_data) IMPLEMENT_tls_meth_func(TLS1_1_VERSION, TLSv1_1_method, - ssl3_accept, ssl3_connect, tls1_get_method) + ssl3_accept, + ssl3_connect, tls1_get_method, TLSv1_1_enc_data) IMPLEMENT_tls_meth_func(TLS1_VERSION, TLSv1_method, - ssl3_accept, ssl3_connect, tls1_get_method) + ssl3_accept, + ssl3_connect, tls1_get_method, TLSv1_enc_data) diff --git a/libs/openssl/ssl/t1_srvr.c b/libs/openssl/ssl/t1_srvr.c index 076ec86e..8c6b3dff 100644 --- a/libs/openssl/ssl/t1_srvr.c +++ b/libs/openssl/ssl/t1_srvr.c @@ -78,12 +78,15 @@ static const SSL_METHOD *tls1_get_server_method(int ver) IMPLEMENT_tls_meth_func(TLS1_2_VERSION, TLSv1_2_server_method, ssl3_accept, - ssl_undefined_function, tls1_get_server_method) + ssl_undefined_function, + tls1_get_server_method, TLSv1_2_enc_data) IMPLEMENT_tls_meth_func(TLS1_1_VERSION, TLSv1_1_server_method, ssl3_accept, - ssl_undefined_function, tls1_get_server_method) + ssl_undefined_function, + tls1_get_server_method, TLSv1_1_enc_data) IMPLEMENT_tls_meth_func(TLS1_VERSION, TLSv1_server_method, ssl3_accept, - ssl_undefined_function, tls1_get_server_method) + ssl_undefined_function, + tls1_get_server_method, TLSv1_enc_data) diff --git a/libs/openssl/ssl/t1_trce.c b/libs/openssl/ssl/t1_trce.c new file mode 100644 index 00000000..c5e21df7 --- /dev/null +++ b/libs/openssl/ssl/t1_trce.c @@ -0,0 +1,1266 @@ +/* ssl/t1_trce.c */ +/* + * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL + * project. + */ +/* ==================================================================== + * Copyright (c) 2012 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * licensing@OpenSSL.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + */ + +#include "ssl_locl.h" + +#ifndef OPENSSL_NO_SSL_TRACE + +/* Packet trace support for OpenSSL */ + +typedef struct { + int num; + const char *name; +} ssl_trace_tbl; + +# define ssl_trace_str(val, tbl) \ + do_ssl_trace_str(val, tbl, sizeof(tbl)/sizeof(ssl_trace_tbl)) + +# define ssl_trace_list(bio, indent, msg, msglen, value, table) \ + do_ssl_trace_list(bio, indent, msg, msglen, value, \ + table, sizeof(table)/sizeof(ssl_trace_tbl)) + +static const char *do_ssl_trace_str(int val, ssl_trace_tbl *tbl, size_t ntbl) +{ + size_t i; + for (i = 0; i < ntbl; i++, tbl++) { + if (tbl->num == val) + return tbl->name; + } + return "UNKNOWN"; +} + +static int do_ssl_trace_list(BIO *bio, int indent, + const unsigned char *msg, size_t msglen, + size_t vlen, ssl_trace_tbl *tbl, size_t ntbl) +{ + int val; + if (msglen % vlen) + return 0; + while (msglen) { + val = msg[0]; + if (vlen == 2) + val = (val << 8) | msg[1]; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "%s (%d)\n", do_ssl_trace_str(val, tbl, ntbl), val); + msg += vlen; + msglen -= vlen; + } + return 1; +} + +/* Version number */ + +static ssl_trace_tbl ssl_version_tbl[] = { + {SSL2_VERSION, "SSL 2.0"}, + {SSL3_VERSION, "SSL 3.0"}, + {TLS1_VERSION, "TLS 1.0"}, + {TLS1_1_VERSION, "TLS 1.1"}, + {TLS1_2_VERSION, "TLS 1.2"}, + {DTLS1_VERSION, "DTLS 1.0"}, + {DTLS1_2_VERSION, "DTLS 1.2"}, + {DTLS1_BAD_VER, "DTLS 1.0 (bad)"} +}; + +static ssl_trace_tbl ssl_content_tbl[] = { + {SSL3_RT_CHANGE_CIPHER_SPEC, "ChangeCipherSpec"}, + {SSL3_RT_ALERT, "Alert"}, + {SSL3_RT_HANDSHAKE, "Handshake"}, + {SSL3_RT_APPLICATION_DATA, "ApplicationData"}, + {TLS1_RT_HEARTBEAT, "HeartBeat"} +}; + +/* Handshake types */ +static ssl_trace_tbl ssl_handshake_tbl[] = { + {SSL3_MT_HELLO_REQUEST, "HelloRequest"}, + {SSL3_MT_CLIENT_HELLO, "ClientHello"}, + {SSL3_MT_SERVER_HELLO, "ServerHello"}, + {DTLS1_MT_HELLO_VERIFY_REQUEST, "HelloVerifyRequest"}, + {SSL3_MT_NEWSESSION_TICKET, "NewSessionTicket"}, + {SSL3_MT_CERTIFICATE, "Certificate"}, + {SSL3_MT_SERVER_KEY_EXCHANGE, "ServerKeyExchange"}, + {SSL3_MT_CERTIFICATE_REQUEST, "CertificateRequest"}, + {SSL3_MT_CLIENT_KEY_EXCHANGE, "ClientKeyExchange"}, + {SSL3_MT_CERTIFICATE_STATUS, "CertificateStatus"}, + {SSL3_MT_SERVER_DONE, "ServerHelloDone"}, + {SSL3_MT_CERTIFICATE_VERIFY, "CertificateVerify"}, + {SSL3_MT_CLIENT_KEY_EXCHANGE, "ClientKeyExchange"}, + {SSL3_MT_FINISHED, "Finished"}, + {SSL3_MT_CERTIFICATE_STATUS, "CertificateStatus"} +}; + +/* Cipher suites */ +static ssl_trace_tbl ssl_ciphers_tbl[] = { + {0x0000, "SSL_NULL_WITH_NULL_NULL"}, + {0x0001, "SSL_RSA_WITH_NULL_MD5"}, + {0x0002, "SSL_RSA_WITH_NULL_SHA"}, + {0x0003, "SSL_RSA_EXPORT_WITH_RC4_40_MD5"}, + {0x0004, "SSL_RSA_WITH_RC4_128_MD5"}, + {0x0005, "SSL_RSA_WITH_RC4_128_SHA"}, + {0x0006, "SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5"}, + {0x0007, "SSL_RSA_WITH_IDEA_CBC_SHA"}, + {0x0008, "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA"}, + {0x0009, "SSL_RSA_WITH_DES_CBC_SHA"}, + {0x000A, "SSL_RSA_WITH_3DES_EDE_CBC_SHA"}, + {0x000B, "SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA"}, + {0x000C, "SSL_DH_DSS_WITH_DES_CBC_SHA"}, + {0x000D, "SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA"}, + {0x000E, "SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA"}, + {0x000F, "SSL_DH_RSA_WITH_DES_CBC_SHA"}, + {0x0010, "SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA"}, + {0x0011, "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"}, + {0x0012, "SSL_DHE_DSS_WITH_DES_CBC_SHA"}, + {0x0013, "SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"}, + {0x0014, "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA"}, + {0x0015, "SSL_DHE_RSA_WITH_DES_CBC_SHA"}, + {0x0016, "SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA"}, + {0x0017, "SSL_DH_anon_EXPORT_WITH_RC4_40_MD5"}, + {0x0018, "SSL_DH_anon_WITH_RC4_128_MD5"}, + {0x0019, "SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA"}, + {0x001A, "SSL_DH_anon_WITH_DES_CBC_SHA"}, + {0x001B, "SSL_DH_anon_WITH_3DES_EDE_CBC_SHA"}, + {0x001D, "SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA"}, + {0x001E, "SSL_FORTEZZA_KEA_WITH_RC4_128_SHA"}, + {0x001F, "TLS_KRB5_WITH_3DES_EDE_CBC_SHA"}, + {0x0020, "TLS_KRB5_WITH_RC4_128_SHA"}, + {0x0021, "TLS_KRB5_WITH_IDEA_CBC_SHA"}, + {0x0022, "TLS_KRB5_WITH_DES_CBC_MD5"}, + {0x0023, "TLS_KRB5_WITH_3DES_EDE_CBC_MD5"}, + {0x0024, "TLS_KRB5_WITH_RC4_128_MD5"}, + {0x0025, "TLS_KRB5_WITH_IDEA_CBC_MD5"}, + {0x0026, "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA"}, + {0x0027, "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA"}, + {0x0028, "TLS_KRB5_EXPORT_WITH_RC4_40_SHA"}, + {0x0029, "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5"}, + {0x002A, "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5"}, + {0x002B, "TLS_KRB5_EXPORT_WITH_RC4_40_MD5"}, + {0x002F, "TLS_RSA_WITH_AES_128_CBC_SHA"}, + {0x0030, "TLS_DH_DSS_WITH_AES_128_CBC_SHA"}, + {0x0031, "TLS_DH_RSA_WITH_AES_128_CBC_SHA"}, + {0x0032, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA"}, + {0x0033, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA"}, + {0x0034, "TLS_DH_anon_WITH_AES_128_CBC_SHA"}, + {0x0035, "TLS_RSA_WITH_AES_256_CBC_SHA"}, + {0x0036, "TLS_DH_DSS_WITH_AES_256_CBC_SHA"}, + {0x0037, "TLS_DH_RSA_WITH_AES_256_CBC_SHA"}, + {0x0038, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA"}, + {0x0039, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA"}, + {0x003A, "TLS_DH_anon_WITH_AES_256_CBC_SHA"}, + {0x003B, "TLS_RSA_WITH_NULL_SHA256"}, + {0x003C, "TLS_RSA_WITH_AES_128_CBC_SHA256"}, + {0x003D, "TLS_RSA_WITH_AES_256_CBC_SHA256"}, + {0x003E, "TLS_DH_DSS_WITH_AES_128_CBC_SHA256"}, + {0x003F, "TLS_DH_RSA_WITH_AES_128_CBC_SHA256"}, + {0x0040, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256"}, + {0x0041, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA"}, + {0x0042, "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA"}, + {0x0043, "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA"}, + {0x0044, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA"}, + {0x0045, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA"}, + {0x0046, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA"}, + {0x0067, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256"}, + {0x0068, "TLS_DH_DSS_WITH_AES_256_CBC_SHA256"}, + {0x0069, "TLS_DH_RSA_WITH_AES_256_CBC_SHA256"}, + {0x006A, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256"}, + {0x006B, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256"}, + {0x006C, "TLS_DH_anon_WITH_AES_128_CBC_SHA256"}, + {0x006D, "TLS_DH_anon_WITH_AES_256_CBC_SHA256"}, + {0x0084, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA"}, + {0x0085, "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA"}, + {0x0086, "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA"}, + {0x0087, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA"}, + {0x0088, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA"}, + {0x0089, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA"}, + {0x008A, "TLS_PSK_WITH_RC4_128_SHA"}, + {0x008B, "TLS_PSK_WITH_3DES_EDE_CBC_SHA"}, + {0x008C, "TLS_PSK_WITH_AES_128_CBC_SHA"}, + {0x008D, "TLS_PSK_WITH_AES_256_CBC_SHA"}, + {0x008E, "TLS_DHE_PSK_WITH_RC4_128_SHA"}, + {0x008F, "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA"}, + {0x0090, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA"}, + {0x0091, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA"}, + {0x0092, "TLS_RSA_PSK_WITH_RC4_128_SHA"}, + {0x0093, "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA"}, + {0x0094, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA"}, + {0x0095, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA"}, + {0x0096, "TLS_RSA_WITH_SEED_CBC_SHA"}, + {0x0097, "TLS_DH_DSS_WITH_SEED_CBC_SHA"}, + {0x0098, "TLS_DH_RSA_WITH_SEED_CBC_SHA"}, + {0x0099, "TLS_DHE_DSS_WITH_SEED_CBC_SHA"}, + {0x009A, "TLS_DHE_RSA_WITH_SEED_CBC_SHA"}, + {0x009B, "TLS_DH_anon_WITH_SEED_CBC_SHA"}, + {0x009C, "TLS_RSA_WITH_AES_128_GCM_SHA256"}, + {0x009D, "TLS_RSA_WITH_AES_256_GCM_SHA384"}, + {0x009E, "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"}, + {0x009F, "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384"}, + {0x00A0, "TLS_DH_RSA_WITH_AES_128_GCM_SHA256"}, + {0x00A1, "TLS_DH_RSA_WITH_AES_256_GCM_SHA384"}, + {0x00A2, "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256"}, + {0x00A3, "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384"}, + {0x00A4, "TLS_DH_DSS_WITH_AES_128_GCM_SHA256"}, + {0x00A5, "TLS_DH_DSS_WITH_AES_256_GCM_SHA384"}, + {0x00A6, "TLS_DH_anon_WITH_AES_128_GCM_SHA256"}, + {0x00A7, "TLS_DH_anon_WITH_AES_256_GCM_SHA384"}, + {0x00A8, "TLS_PSK_WITH_AES_128_GCM_SHA256"}, + {0x00A9, "TLS_PSK_WITH_AES_256_GCM_SHA384"}, + {0x00AA, "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256"}, + {0x00AB, "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384"}, + {0x00AC, "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256"}, + {0x00AD, "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384"}, + {0x00AE, "TLS_PSK_WITH_AES_128_CBC_SHA256"}, + {0x00AF, "TLS_PSK_WITH_AES_256_CBC_SHA384"}, + {0x00B0, "TLS_PSK_WITH_NULL_SHA256"}, + {0x00B1, "TLS_PSK_WITH_NULL_SHA384"}, + {0x00B2, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256"}, + {0x00B3, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384"}, + {0x00B4, "TLS_DHE_PSK_WITH_NULL_SHA256"}, + {0x00B5, "TLS_DHE_PSK_WITH_NULL_SHA384"}, + {0x00B6, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256"}, + {0x00B7, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384"}, + {0x00B8, "TLS_RSA_PSK_WITH_NULL_SHA256"}, + {0x00B9, "TLS_RSA_PSK_WITH_NULL_SHA384"}, + {0x00BA, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256"}, + {0x00BB, "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256"}, + {0x00BC, "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256"}, + {0x00BD, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256"}, + {0x00BE, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256"}, + {0x00BF, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256"}, + {0x00C0, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256"}, + {0x00C1, "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256"}, + {0x00C2, "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256"}, + {0x00C3, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256"}, + {0x00C4, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256"}, + {0x00C5, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256"}, + {0x00FF, "TLS_EMPTY_RENEGOTIATION_INFO_SCSV"}, + {0xC001, "TLS_ECDH_ECDSA_WITH_NULL_SHA"}, + {0xC002, "TLS_ECDH_ECDSA_WITH_RC4_128_SHA"}, + {0xC003, "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA"}, + {0xC004, "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA"}, + {0xC005, "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA"}, + {0xC006, "TLS_ECDHE_ECDSA_WITH_NULL_SHA"}, + {0xC007, "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA"}, + {0xC008, "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA"}, + {0xC009, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA"}, + {0xC00A, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA"}, + {0xC00B, "TLS_ECDH_RSA_WITH_NULL_SHA"}, + {0xC00C, "TLS_ECDH_RSA_WITH_RC4_128_SHA"}, + {0xC00D, "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA"}, + {0xC00E, "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA"}, + {0xC00F, "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA"}, + {0xC010, "TLS_ECDHE_RSA_WITH_NULL_SHA"}, + {0xC011, "TLS_ECDHE_RSA_WITH_RC4_128_SHA"}, + {0xC012, "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA"}, + {0xC013, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"}, + {0xC014, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"}, + {0xC015, "TLS_ECDH_anon_WITH_NULL_SHA"}, + {0xC016, "TLS_ECDH_anon_WITH_RC4_128_SHA"}, + {0xC017, "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA"}, + {0xC018, "TLS_ECDH_anon_WITH_AES_128_CBC_SHA"}, + {0xC019, "TLS_ECDH_anon_WITH_AES_256_CBC_SHA"}, + {0xC01A, "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA"}, + {0xC01B, "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA"}, + {0xC01C, "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA"}, + {0xC01D, "TLS_SRP_SHA_WITH_AES_128_CBC_SHA"}, + {0xC01E, "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA"}, + {0xC01F, "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA"}, + {0xC020, "TLS_SRP_SHA_WITH_AES_256_CBC_SHA"}, + {0xC021, "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA"}, + {0xC022, "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA"}, + {0xC023, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"}, + {0xC024, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"}, + {0xC025, "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256"}, + {0xC026, "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384"}, + {0xC027, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"}, + {0xC028, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"}, + {0xC029, "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256"}, + {0xC02A, "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384"}, + {0xC02B, "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"}, + {0xC02C, "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"}, + {0xC02D, "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256"}, + {0xC02E, "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384"}, + {0xC02F, "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"}, + {0xC030, "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"}, + {0xC031, "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256"}, + {0xC032, "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384"}, + {0xFEFE, "SSL_RSA_FIPS_WITH_DES_CBC_SHA"}, + {0xFEFF, "SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA"}, +}; + +/* Compression methods */ +static ssl_trace_tbl ssl_comp_tbl[] = { + {0x0000, "No Compression"}, + {0x0001, "Zlib Compression"} +}; + +/* Extensions */ +static ssl_trace_tbl ssl_exts_tbl[] = { + {TLSEXT_TYPE_server_name, "server_name"}, + {TLSEXT_TYPE_max_fragment_length, "max_fragment_length"}, + {TLSEXT_TYPE_client_certificate_url, "client_certificate_url"}, + {TLSEXT_TYPE_trusted_ca_keys, "trusted_ca_keys"}, + {TLSEXT_TYPE_truncated_hmac, "truncated_hmac"}, + {TLSEXT_TYPE_status_request, "status_request"}, + {TLSEXT_TYPE_user_mapping, "user_mapping"}, + {TLSEXT_TYPE_client_authz, "client_authz"}, + {TLSEXT_TYPE_server_authz, "server_authz"}, + {TLSEXT_TYPE_cert_type, "cert_type"}, + {TLSEXT_TYPE_elliptic_curves, "elliptic_curves"}, + {TLSEXT_TYPE_ec_point_formats, "ec_point_formats"}, + {TLSEXT_TYPE_srp, "srp"}, + {TLSEXT_TYPE_signature_algorithms, "signature_algorithms"}, + {TLSEXT_TYPE_use_srtp, "use_srtp"}, + {TLSEXT_TYPE_heartbeat, "heartbeat"}, + {TLSEXT_TYPE_session_ticket, "session_ticket"}, +# ifdef TLSEXT_TYPE_opaque_prf_input + {TLSEXT_TYPE_opaque_prf_input, "opaque_prf_input"}, +# endif + {TLSEXT_TYPE_renegotiate, "renegotiate"}, + {TLSEXT_TYPE_next_proto_neg, "next_proto_neg"}, + {TLSEXT_TYPE_padding, "padding"} +}; + +static ssl_trace_tbl ssl_curve_tbl[] = { + {1, "sect163k1 (K-163)"}, + {2, "sect163r1"}, + {3, "sect163r2 (B-163)"}, + {4, "sect193r1"}, + {5, "sect193r2"}, + {6, "sect233k1 (K-233)"}, + {7, "sect233r1 (B-233)"}, + {8, "sect239k1"}, + {9, "sect283k1 (K-283)"}, + {10, "sect283r1 (B-283)"}, + {11, "sect409k1 (K-409)"}, + {12, "sect409r1 (B-409)"}, + {13, "sect571k1 (K-571)"}, + {14, "sect571r1 (B-571)"}, + {15, "secp160k1"}, + {16, "secp160r1"}, + {17, "secp160r2"}, + {18, "secp192k1"}, + {19, "secp192r1 (P-192)"}, + {20, "secp224k1"}, + {21, "secp224r1 (P-224)"}, + {22, "secp256k1"}, + {23, "secp256r1 (P-256)"}, + {24, "secp384r1 (P-384)"}, + {25, "secp521r1 (P-521)"}, + {26, "brainpoolP256r1"}, + {27, "brainpoolP384r1"}, + {28, "brainpoolP512r1"}, + {0xFF01, "arbitrary_explicit_prime_curves"}, + {0xFF02, "arbitrary_explicit_char2_curves"} +}; + +static ssl_trace_tbl ssl_point_tbl[] = { + {0, "uncompressed"}, + {1, "ansiX962_compressed_prime"}, + {2, "ansiX962_compressed_char2"} +}; + +static ssl_trace_tbl ssl_md_tbl[] = { + {0, "none"}, + {1, "md5"}, + {2, "sha1"}, + {3, "sha224"}, + {4, "sha256"}, + {5, "sha384"}, + {6, "sha512"} +}; + +static ssl_trace_tbl ssl_sig_tbl[] = { + {0, "anonymous"}, + {1, "rsa"}, + {2, "dsa"}, + {3, "ecdsa"} +}; + +static ssl_trace_tbl ssl_hb_tbl[] = { + {1, "peer_allowed_to_send"}, + {2, "peer_not_allowed_to_send"} +}; + +static ssl_trace_tbl ssl_hb_type_tbl[] = { + {1, "heartbeat_request"}, + {2, "heartbeat_response"} +}; + +static ssl_trace_tbl ssl_ctype_tbl[] = { + {1, "rsa_sign"}, + {2, "dss_sign"}, + {3, "rsa_fixed_dh"}, + {4, "dss_fixed_dh"}, + {5, "rsa_ephemeral_dh"}, + {6, "dss_ephemeral_dh"}, + {20, "fortezza_dms"}, + {64, "ecdsa_sign"}, + {65, "rsa_fixed_ecdh"}, + {66, "ecdsa_fixed_ecdh"} +}; + +static ssl_trace_tbl ssl_crypto_tbl[] = { + {TLS1_RT_CRYPTO_PREMASTER, "Premaster Secret"}, + {TLS1_RT_CRYPTO_CLIENT_RANDOM, "Client Random"}, + {TLS1_RT_CRYPTO_SERVER_RANDOM, "Server Random"}, + {TLS1_RT_CRYPTO_MASTER, "Master Secret"}, + {TLS1_RT_CRYPTO_MAC | TLS1_RT_CRYPTO_WRITE, "Write Mac Secret"}, + {TLS1_RT_CRYPTO_MAC | TLS1_RT_CRYPTO_READ, "Read Mac Secret"}, + {TLS1_RT_CRYPTO_KEY | TLS1_RT_CRYPTO_WRITE, "Write Key"}, + {TLS1_RT_CRYPTO_KEY | TLS1_RT_CRYPTO_READ, "Read Key"}, + {TLS1_RT_CRYPTO_IV | TLS1_RT_CRYPTO_WRITE, "Write IV"}, + {TLS1_RT_CRYPTO_IV | TLS1_RT_CRYPTO_READ, "Read IV"}, + {TLS1_RT_CRYPTO_FIXED_IV | TLS1_RT_CRYPTO_WRITE, "Write IV (fixed part)"}, + {TLS1_RT_CRYPTO_FIXED_IV | TLS1_RT_CRYPTO_READ, "Read IV (fixed part)"} +}; + +static void ssl_print_hex(BIO *bio, int indent, const char *name, + const unsigned char *msg, size_t msglen) +{ + size_t i; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "%s (len=%d): ", name, (int)msglen); + for (i = 0; i < msglen; i++) + BIO_printf(bio, "%02X", msg[i]); + BIO_puts(bio, "\n"); +} + +static int ssl_print_hexbuf(BIO *bio, int indent, + const char *name, size_t nlen, + const unsigned char **pmsg, size_t *pmsglen) +{ + size_t blen; + const unsigned char *p = *pmsg; + if (*pmsglen < nlen) + return 0; + blen = p[0]; + if (nlen > 1) + blen = (blen << 8) | p[1]; + if (*pmsglen < nlen + blen) + return 0; + p += nlen; + ssl_print_hex(bio, indent, name, p, blen); + *pmsg += blen + nlen; + *pmsglen -= blen + nlen; + return 1; +} + +static int ssl_print_version(BIO *bio, int indent, const char *name, + const unsigned char **pmsg, size_t *pmsglen) +{ + int vers; + if (*pmsglen < 2) + return 0; + vers = ((*pmsg)[0] << 8) | (*pmsg)[1]; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "%s=0x%x (%s)\n", + name, vers, ssl_trace_str(vers, ssl_version_tbl)); + *pmsg += 2; + *pmsglen -= 2; + return 1; +} + +static int ssl_print_random(BIO *bio, int indent, + const unsigned char **pmsg, size_t *pmsglen) +{ + unsigned int tm; + const unsigned char *p = *pmsg; + if (*pmsglen < 32) + return 0; + tm = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]; + p += 4; + BIO_indent(bio, indent, 80); + BIO_puts(bio, "Random:\n"); + BIO_indent(bio, indent + 2, 80); + BIO_printf(bio, "gmt_unix_time=0x%08X\n", tm); + ssl_print_hex(bio, indent + 2, "random_bytes", p, 28); + *pmsg += 32; + *pmsglen -= 32; + return 1; +} + +static int ssl_print_signature(BIO *bio, int indent, SSL *s, + const unsigned char **pmsg, size_t *pmsglen) +{ + if (*pmsglen < 2) + return 0; + if (SSL_USE_SIGALGS(s)) { + const unsigned char *p = *pmsg; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "Signature Algorithm %s+%s (%d+%d)\n", + ssl_trace_str(p[0], ssl_md_tbl), + ssl_trace_str(p[1], ssl_sig_tbl), p[0], p[1]); + *pmsg += 2; + *pmsglen -= 2; + } + return ssl_print_hexbuf(bio, indent, "Signature", 2, pmsg, pmsglen); +} + +static int ssl_print_extension(BIO *bio, int indent, int server, int extype, + const unsigned char *ext, size_t extlen) +{ + size_t xlen; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "extension_type=%s(%d), length=%d\n", + ssl_trace_str(extype, ssl_exts_tbl), extype, (int)extlen); + switch (extype) { + case TLSEXT_TYPE_ec_point_formats: + if (extlen < 1) + return 0; + xlen = ext[0]; + if (extlen != xlen + 1) + return 0; + return ssl_trace_list(bio, indent + 2, + ext + 1, xlen, 1, ssl_point_tbl); + + case TLSEXT_TYPE_elliptic_curves: + if (extlen < 2) + return 0; + xlen = (ext[0] << 8) | ext[1]; + if (extlen != xlen + 2) + return 0; + return ssl_trace_list(bio, indent + 2, + ext + 2, xlen, 2, ssl_curve_tbl); + + case TLSEXT_TYPE_signature_algorithms: + + if (extlen < 2) + return 0; + xlen = (ext[0] << 8) | ext[1]; + if (extlen != xlen + 2) + return 0; + if (xlen & 1) + return 0; + ext += 2; + while (xlen > 0) { + BIO_indent(bio, indent + 2, 80); + BIO_printf(bio, "%s+%s (%d+%d)\n", + ssl_trace_str(ext[0], ssl_md_tbl), + ssl_trace_str(ext[1], ssl_sig_tbl), ext[0], ext[1]); + xlen -= 2; + ext += 2; + } + break; + + case TLSEXT_TYPE_renegotiate: + if (extlen < 1) + return 0; + xlen = ext[0]; + if (xlen + 1 != extlen) + return 0; + ext++; + if (xlen) { + if (server) { + if (xlen & 1) + return 0; + xlen >>= 1; + } + ssl_print_hex(bio, indent + 4, "client_verify_data", ext, xlen); + if (server) { + ext += xlen; + ssl_print_hex(bio, indent + 4, + "server_verify_data", ext, xlen); + } + } else { + BIO_indent(bio, indent + 4, 80); + BIO_puts(bio, "\n"); + } + break; + + case TLSEXT_TYPE_heartbeat: + if (extlen != 1) + return 0; + BIO_indent(bio, indent + 2, 80); + BIO_printf(bio, "HeartbeatMode: %s\n", + ssl_trace_str(ext[0], ssl_hb_tbl)); + break; + + case TLSEXT_TYPE_session_ticket: + if (extlen != 0) + ssl_print_hex(bio, indent + 4, "ticket", ext, extlen); + break; + + default: + BIO_dump_indent(bio, (char *)ext, extlen, indent + 2); + } + return 1; +} + +static int ssl_print_extensions(BIO *bio, int indent, int server, + const unsigned char *msg, size_t msglen) +{ + size_t extslen; + BIO_indent(bio, indent, 80); + if (msglen == 0) { + BIO_puts(bio, "No Extensions\n"); + return 1; + } + extslen = (msg[0] << 8) | msg[1]; + if (extslen != msglen - 2) + return 0; + msg += 2; + msglen = extslen; + BIO_printf(bio, "extensions, length = %d\n", (int)msglen); + while (msglen > 0) { + int extype; + size_t extlen; + if (msglen < 4) + return 0; + extype = (msg[0] << 8) | msg[1]; + extlen = (msg[2] << 8) | msg[3]; + if (msglen < extlen + 4) + return 0; + msg += 4; + if (!ssl_print_extension(bio, indent + 2, server, + extype, msg, extlen)) + return 0; + msg += extlen; + msglen -= extlen + 4; + } + return 1; +} + +static int ssl_print_client_hello(BIO *bio, SSL *ssl, int indent, + const unsigned char *msg, size_t msglen) +{ + size_t len; + unsigned int cs; + if (!ssl_print_version(bio, indent, "client_version", &msg, &msglen)) + return 0; + if (!ssl_print_random(bio, indent, &msg, &msglen)) + return 0; + if (!ssl_print_hexbuf(bio, indent, "session_id", 1, &msg, &msglen)) + return 0; + if (SSL_IS_DTLS(ssl)) { + if (!ssl_print_hexbuf(bio, indent, "cookie", 1, &msg, &msglen)) + return 0; + } + if (msglen < 2) + return 0; + len = (msg[0] << 8) | msg[1]; + msg += 2; + msglen -= 2; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "cipher_suites (len=%d)\n", (int)len); + if (msglen < len || len & 1) + return 0; + while (len > 0) { + cs = (msg[0] << 8) | msg[1]; + BIO_indent(bio, indent + 2, 80); + BIO_printf(bio, "{0x%02X, 0x%02X} %s\n", + msg[0], msg[1], ssl_trace_str(cs, ssl_ciphers_tbl)); + msg += 2; + msglen -= 2; + len -= 2; + } + if (msglen < 1) + return 0; + len = msg[0]; + msg++; + msglen--; + if (msglen < len) + return 0; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "compression_methods (len=%d)\n", (int)len); + while (len > 0) { + BIO_indent(bio, indent + 2, 80); + BIO_printf(bio, "%s (0x%02X)\n", + ssl_trace_str(msg[0], ssl_comp_tbl), msg[0]); + msg++; + msglen--; + len--; + } + if (!ssl_print_extensions(bio, indent, 0, msg, msglen)) + return 0; + return 1; +} + +static int dtls_print_hello_vfyrequest(BIO *bio, int indent, + const unsigned char *msg, + size_t msglen) +{ + if (!ssl_print_version(bio, indent, "server_version", &msg, &msglen)) + return 0; + if (!ssl_print_hexbuf(bio, indent, "cookie", 1, &msg, &msglen)) + return 0; + return 1; +} + +static int ssl_print_server_hello(BIO *bio, int indent, + const unsigned char *msg, size_t msglen) +{ + unsigned int cs; + if (!ssl_print_version(bio, indent, "server_version", &msg, &msglen)) + return 0; + if (!ssl_print_random(bio, indent, &msg, &msglen)) + return 0; + if (!ssl_print_hexbuf(bio, indent, "session_id", 1, &msg, &msglen)) + return 0; + if (msglen < 2) + return 0; + cs = (msg[0] << 8) | msg[1]; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "cipher_suite {0x%02X, 0x%02X} %s\n", + msg[0], msg[1], ssl_trace_str(cs, ssl_ciphers_tbl)); + msg += 2; + msglen -= 2; + if (msglen < 1) + return 0; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "compression_method: %s (0x%02X)\n", + ssl_trace_str(msg[0], ssl_comp_tbl), msg[0]); + msg++; + msglen--; + if (!ssl_print_extensions(bio, indent, 1, msg, msglen)) + return 0; + return 1; +} + +static int ssl_get_keyex(const char **pname, SSL *ssl) +{ + unsigned long alg_k = ssl->s3->tmp.new_cipher->algorithm_mkey; + if (alg_k & SSL_kRSA) { + *pname = "rsa"; + return SSL_kRSA; + } + if (alg_k & SSL_kDHr) { + *pname = "dh_rsa"; + return SSL_kDHr; + } + if (alg_k & SSL_kDHd) { + *pname = "dh_dss"; + return SSL_kDHd; + } + if (alg_k & SSL_kKRB5) { + *pname = "krb5"; + return SSL_kKRB5; + } + if (alg_k & SSL_kEDH) { + *pname = "edh"; + return SSL_kEDH; + } + if (alg_k & SSL_kEECDH) { + *pname = "EECDH"; + return SSL_kEECDH; + } + if (alg_k & SSL_kECDHr) { + *pname = "ECDH RSA"; + return SSL_kECDHr; + } + if (alg_k & SSL_kECDHe) { + *pname = "ECDH ECDSA"; + return SSL_kECDHe; + } + if (alg_k & SSL_kPSK) { + *pname = "PSK"; + return SSL_kPSK; + } + if (alg_k & SSL_kSRP) { + *pname = "SRP"; + return SSL_kSRP; + } + if (alg_k & SSL_kGOST) { + *pname = "GOST"; + return SSL_kGOST; + } + *pname = "UNKNOWN"; + return 0; +} + +static int ssl_print_client_keyex(BIO *bio, int indent, SSL *ssl, + const unsigned char *msg, size_t msglen) +{ + const char *algname; + int id; + id = ssl_get_keyex(&algname, ssl); + BIO_indent(bio, indent, 80); + BIO_printf(bio, "KeyExchangeAlgorithm=%s\n", algname); + switch (id) { + + case SSL_kRSA: + if (TLS1_get_version(ssl) == SSL3_VERSION) { + ssl_print_hex(bio, indent + 2, + "EncyptedPreMasterSecret", msg, msglen); + } else { + if (!ssl_print_hexbuf(bio, indent + 2, + "EncyptedPreMasterSecret", 2, + &msg, &msglen)) + return 0; + } + break; + + /* Implicit parameters only allowed for static DH */ + case SSL_kDHd: + case SSL_kDHr: + if (msglen == 0) { + BIO_indent(bio, indent + 2, 80); + BIO_puts(bio, "implicit\n"); + break; + } + case SSL_kEDH: + if (!ssl_print_hexbuf(bio, indent + 2, "dh_Yc", 2, &msg, &msglen)) + return 0; + break; + + case SSL_kECDHr: + case SSL_kECDHe: + if (msglen == 0) { + BIO_indent(bio, indent + 2, 80); + BIO_puts(bio, "implicit\n"); + break; + } + case SSL_kEECDH: + if (!ssl_print_hexbuf(bio, indent + 2, "ecdh_Yc", 1, &msg, &msglen)) + return 0; + break; + } + + return 1; +} + +static int ssl_print_server_keyex(BIO *bio, int indent, SSL *ssl, + const unsigned char *msg, size_t msglen) +{ + const char *algname; + int id; + id = ssl_get_keyex(&algname, ssl); + BIO_indent(bio, indent, 80); + BIO_printf(bio, "KeyExchangeAlgorithm=%s\n", algname); + switch (id) { + /* Should never happen */ + case SSL_kDHd: + case SSL_kDHr: + case SSL_kECDHr: + case SSL_kECDHe: + BIO_indent(bio, indent + 2, 80); + BIO_printf(bio, "Unexpected Message\n"); + break; + + case SSL_kRSA: + + if (!ssl_print_hexbuf(bio, indent + 2, "rsa_modulus", 2, + &msg, &msglen)) + return 0; + if (!ssl_print_hexbuf(bio, indent + 2, "rsa_exponent", 2, + &msg, &msglen)) + return 0; + break; + + case SSL_kEDH: + if (!ssl_print_hexbuf(bio, indent + 2, "dh_p", 2, &msg, &msglen)) + return 0; + if (!ssl_print_hexbuf(bio, indent + 2, "dh_g", 2, &msg, &msglen)) + return 0; + if (!ssl_print_hexbuf(bio, indent + 2, "dh_Ys", 2, &msg, &msglen)) + return 0; + break; + + case SSL_kEECDH: + if (msglen < 1) + return 0; + BIO_indent(bio, indent + 2, 80); + if (msg[0] == EXPLICIT_PRIME_CURVE_TYPE) + BIO_puts(bio, "explicit_prime\n"); + else if (msg[0] == EXPLICIT_CHAR2_CURVE_TYPE) + BIO_puts(bio, "explicit_char2\n"); + else if (msg[0] == NAMED_CURVE_TYPE) { + int curve; + if (msglen < 3) + return 0; + curve = (msg[1] << 8) | msg[2]; + BIO_printf(bio, "named_curve: %s (%d)\n", + ssl_trace_str(curve, ssl_curve_tbl), curve); + msg += 3; + msglen -= 3; + if (!ssl_print_hexbuf(bio, indent + 2, "point", 1, &msg, &msglen)) + return 0; + } + break; + } + return ssl_print_signature(bio, indent, ssl, &msg, &msglen); +} + +static int ssl_print_certificate(BIO *bio, int indent, + const unsigned char **pmsg, size_t *pmsglen) +{ + size_t msglen = *pmsglen; + size_t clen; + X509 *x; + const unsigned char *p = *pmsg, *q; + if (msglen < 3) + return 0; + clen = (p[0] << 16) | (p[1] << 8) | p[2]; + if (msglen < clen + 3) + return 0; + q = p + 3; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "ASN.1Cert, length=%d", (int)clen); + x = d2i_X509(NULL, &q, clen); + if (!x) + BIO_puts(bio, "\n"); + else { + BIO_puts(bio, "\n------details-----\n"); + X509_print_ex(bio, x, XN_FLAG_ONELINE, 0); + PEM_write_bio_X509(bio, x); + /* Print certificate stuff */ + BIO_puts(bio, "------------------\n"); + X509_free(x); + } + if (q != p + 3 + clen) { + BIO_puts(bio, "\n"); + } + *pmsg += clen + 3; + *pmsglen -= clen + 3; + return 1; +} + +static int ssl_print_certificates(BIO *bio, int indent, + const unsigned char *msg, size_t msglen) +{ + size_t clen; + if (msglen < 3) + return 0; + clen = (msg[0] << 16) | (msg[1] << 8) | msg[2]; + if (msglen != clen + 3) + return 0; + msg += 3; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "certificate_list, length=%d\n", (int)clen); + while (clen > 0) { + if (!ssl_print_certificate(bio, indent + 2, &msg, &clen)) + return 0; + } + return 1; +} + +static int ssl_print_cert_request(BIO *bio, int indent, SSL *s, + const unsigned char *msg, size_t msglen) +{ + size_t xlen; + if (msglen < 1) + return 0; + xlen = msg[0]; + if (msglen < xlen + 1) + return 0; + msg++; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "certificate_types (len=%d)\n", (int)xlen); + if (!ssl_trace_list(bio, indent + 2, msg, xlen, 1, ssl_ctype_tbl)) + return 0; + msg += xlen; + msglen -= xlen + 1; + if (!SSL_USE_SIGALGS(s)) + goto skip_sig; + if (msglen < 2) + return 0; + xlen = (msg[0] << 8) | msg[1]; + if (msglen < xlen + 2 || (xlen & 1)) + return 0; + msg += 2; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "signature_algorithms (len=%d)\n", (int)xlen); + while (xlen > 0) { + BIO_indent(bio, indent + 2, 80); + BIO_printf(bio, "%s+%s (%d+%d)\n", + ssl_trace_str(msg[0], ssl_md_tbl), + ssl_trace_str(msg[1], ssl_sig_tbl), msg[0], msg[1]); + xlen -= 2; + msg += 2; + } + msg += xlen; + msglen -= xlen + 2; + + skip_sig: + xlen = (msg[0] << 8) | msg[1]; + BIO_indent(bio, indent, 80); + if (msglen < xlen + 2) + return 0; + msg += 2; + msglen -= 2; + BIO_printf(bio, "certificate_authorities (len=%d)\n", (int)xlen); + while (xlen > 0) { + size_t dlen; + X509_NAME *nm; + const unsigned char *p; + if (xlen < 2) + return 0; + dlen = (msg[0] << 8) | msg[1]; + if (xlen < dlen + 2) + return 0; + msg += 2; + BIO_indent(bio, indent + 2, 80); + BIO_printf(bio, "DistinguishedName (len=%d): ", (int)dlen); + p = msg; + nm = d2i_X509_NAME(NULL, &p, dlen); + if (!nm) { + BIO_puts(bio, "\n"); + } else { + X509_NAME_print_ex(bio, nm, 0, XN_FLAG_ONELINE); + BIO_puts(bio, "\n"); + X509_NAME_free(nm); + } + xlen -= dlen + 2; + msg += dlen; + } + return 1; +} + +static int ssl_print_ticket(BIO *bio, int indent, + const unsigned char *msg, size_t msglen) +{ + unsigned int tick_life; + if (msglen == 0) { + BIO_indent(bio, indent + 2, 80); + BIO_puts(bio, "No Ticket\n"); + return 1; + } + if (msglen < 4) + return 0; + tick_life = (msg[0] << 24) | (msg[1] << 16) | (msg[2] << 8) | msg[3]; + msglen -= 4; + msg += 4; + BIO_indent(bio, indent + 2, 80); + BIO_printf(bio, "ticket_lifetime_hint=%u\n", tick_life); + if (!ssl_print_hexbuf(bio, indent + 2, "ticket", 2, &msg, &msglen)) + return 0; + if (msglen) + return 0; + return 1; +} + +static int ssl_print_handshake(BIO *bio, SSL *ssl, + const unsigned char *msg, size_t msglen, + int indent) +{ + size_t hlen; + unsigned char htype; + if (msglen < 4) + return 0; + htype = msg[0]; + hlen = (msg[1] << 16) | (msg[2] << 8) | msg[3]; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "%s, Length=%d\n", + ssl_trace_str(htype, ssl_handshake_tbl), (int)hlen); + msg += 4; + msglen -= 4; + if (SSL_IS_DTLS(ssl)) { + if (msglen < 8) + return 0; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "message_seq=%d, fragment_offset=%d, " + "fragment_length=%d\n", + (msg[0] << 8) | msg[1], + (msg[2] << 16) | (msg[3] << 8) | msg[4], + (msg[5] << 16) | (msg[6] << 8) | msg[7]); + msg += 8; + msglen -= 8; + } + if (msglen < hlen) + return 0; + switch (htype) { + case SSL3_MT_CLIENT_HELLO: + if (!ssl_print_client_hello(bio, ssl, indent + 2, msg, msglen)) + return 0; + break; + + case DTLS1_MT_HELLO_VERIFY_REQUEST: + if (!dtls_print_hello_vfyrequest(bio, indent + 2, msg, msglen)) + return 0; + break; + + case SSL3_MT_SERVER_HELLO: + if (!ssl_print_server_hello(bio, indent + 2, msg, msglen)) + return 0; + break; + + case SSL3_MT_SERVER_KEY_EXCHANGE: + if (!ssl_print_server_keyex(bio, indent + 2, ssl, msg, msglen)) + return 0; + break; + + case SSL3_MT_CLIENT_KEY_EXCHANGE: + if (!ssl_print_client_keyex(bio, indent + 2, ssl, msg, msglen)) + return 0; + break; + + case SSL3_MT_CERTIFICATE: + if (!ssl_print_certificates(bio, indent + 2, msg, msglen)) + return 0; + break; + + case SSL3_MT_CERTIFICATE_VERIFY: + if (!ssl_print_signature(bio, indent + 2, ssl, &msg, &msglen)) + return 0; + break; + + case SSL3_MT_CERTIFICATE_REQUEST: + if (!ssl_print_cert_request(bio, indent + 2, ssl, msg, msglen)) + return 0; + break; + + case SSL3_MT_FINISHED: + ssl_print_hex(bio, indent + 2, "verify_data", msg, msglen); + break; + + case SSL3_MT_SERVER_DONE: + if (msglen != 0) + ssl_print_hex(bio, indent + 2, "unexpected value", msg, msglen); + break; + + case SSL3_MT_NEWSESSION_TICKET: + if (!ssl_print_ticket(bio, indent + 2, msg, msglen)) + return 0; + break; + + default: + BIO_indent(bio, indent + 2, 80); + BIO_puts(bio, "Unsupported, hex dump follows:\n"); + BIO_dump_indent(bio, (char *)msg, msglen, indent + 4); + } + return 1; +} + +static int ssl_print_heartbeat(BIO *bio, int indent, + const unsigned char *msg, size_t msglen) +{ + if (msglen < 3) + return 0; + BIO_indent(bio, indent, 80); + BIO_printf(bio, "HeartBeatMessageType: %s\n", + ssl_trace_str(msg[0], ssl_hb_type_tbl)); + msg++; + msglen--; + if (!ssl_print_hexbuf(bio, indent, "payload", 2, &msg, &msglen)) + return 0; + ssl_print_hex(bio, indent, "padding", msg, msglen); + return 1; +} + +const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c) +{ + if (c->algorithm_ssl & SSL_SSLV2) + return NULL; + return ssl_trace_str(c->id & 0xFFFF, ssl_ciphers_tbl); +} + +void SSL_trace(int write_p, int version, int content_type, + const void *buf, size_t msglen, SSL *ssl, void *arg) +{ + const unsigned char *msg = buf; + BIO *bio = arg; + + if (write_p == 2) { + BIO_puts(bio, "Session "); + ssl_print_hex(bio, 0, + ssl_trace_str(content_type, ssl_crypto_tbl), + msg, msglen); + return; + } + switch (content_type) { + case SSL3_RT_HEADER: + { + int hvers = msg[1] << 8 | msg[2]; + BIO_puts(bio, write_p ? "Sent" : "Received"); + BIO_printf(bio, " Record\nHeader:\n Version = %s (0x%x)\n", + ssl_trace_str(hvers, ssl_version_tbl), hvers); + if (SSL_IS_DTLS(ssl)) { + BIO_printf(bio, + " epoch=%d, sequence_number=%04x%04x%04x\n", + (msg[3] << 8 | msg[4]), + (msg[5] << 8 | msg[6]), + (msg[7] << 8 | msg[8]), (msg[9] << 8 | msg[10])); +# if 0 + /* + * Just print handshake type so we can see what is going on + * during fragmentation. + */ + BIO_printf(bio, "(%s)\n", + ssl_trace_str(msg[msglen], ssl_handshake_tbl)); +# endif + } + + BIO_printf(bio, " Content Type = %s (%d)\n Length = %d", + ssl_trace_str(msg[0], ssl_content_tbl), msg[0], + msg[msglen - 2] << 8 | msg[msglen - 1]); + } + break; + case SSL3_RT_HANDSHAKE: + if (!ssl_print_handshake(bio, ssl, msg, msglen, 4)) + BIO_printf(bio, "Message length parse error!\n"); + break; + + case SSL3_RT_CHANGE_CIPHER_SPEC: + if (msglen == 1 && msg[0] == 1) + BIO_puts(bio, " change_cipher_spec (1)\n"); + else + ssl_print_hex(bio, 4, "unknown value", msg, msglen); + break; + + case SSL3_RT_ALERT: + if (msglen != 2) + BIO_puts(bio, " Illegal Alert Length\n"); + else { + BIO_printf(bio, " Level=%s(%d), description=%s(%d)\n", + SSL_alert_type_string_long(msg[0] << 8), + msg[0], SSL_alert_desc_string_long(msg[1]), msg[1]); + } + case TLS1_RT_HEARTBEAT: + ssl_print_heartbeat(bio, 4, msg, msglen); + break; + + } + + BIO_puts(bio, "\n"); +} + +#endif diff --git a/libs/openssl/ssl/tls1.h b/libs/openssl/ssl/tls1.h index 69d8186a..7e237d06 100644 --- a/libs/openssl/ssl/tls1.h +++ b/libs/openssl/ssl/tls1.h @@ -209,11 +209,9 @@ extern "C" { # define TLSEXT_TYPE_status_request 5 /* ExtensionType values from RFC4681 */ # define TLSEXT_TYPE_user_mapping 6 - /* ExtensionType values from RFC5878 */ # define TLSEXT_TYPE_client_authz 7 # define TLSEXT_TYPE_server_authz 8 - /* ExtensionType values from RFC6091 */ # define TLSEXT_TYPE_cert_type 9 @@ -233,10 +231,12 @@ extern "C" { /* ExtensionType value from RFC5620 */ # define TLSEXT_TYPE_heartbeat 15 +/* ExtensionType value from RFC7301 */ +# define TLSEXT_TYPE_application_layer_protocol_negotiation 16 + /* * ExtensionType value for TLS padding extension. - * http://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml - * http://tools.ietf.org/html/draft-agl-tls-padding-03 + * http://tools.ietf.org/html/draft-agl-tls-padding */ # define TLSEXT_TYPE_padding 21 @@ -250,7 +250,7 @@ extern "C" { * i.e. build with -DTLSEXT_TYPE_opaque_prf_input=38183 * using whatever extension number you'd like to try */ -# define TLSEXT_TYPE_opaque_prf_input ?? */ +# define TLSEXT_TYPE_opaque_prf_input ?? # endif /* Temporary extension type */ @@ -261,25 +261,27 @@ extern "C" { # define TLSEXT_TYPE_next_proto_neg 13172 # endif -/* NameType value from RFC 3546 */ +/* NameType value from RFC3546 */ # define TLSEXT_NAMETYPE_host_name 0 -/* status request value from RFC 3546 */ +/* status request value from RFC3546 */ # define TLSEXT_STATUSTYPE_ocsp 1 -/* ECPointFormat values from draft-ietf-tls-ecc-12 */ +/* ECPointFormat values from RFC4492 */ # define TLSEXT_ECPOINTFORMAT_first 0 # define TLSEXT_ECPOINTFORMAT_uncompressed 0 # define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1 # define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2 # define TLSEXT_ECPOINTFORMAT_last 2 -/* Signature and hash algorithms from RFC 5246 */ - +/* Signature and hash algorithms from RFC5246 */ # define TLSEXT_signature_anonymous 0 # define TLSEXT_signature_rsa 1 # define TLSEXT_signature_dsa 2 # define TLSEXT_signature_ecdsa 3 +/* Total number of different signature algorithms */ +# define TLSEXT_signature_num 4 + # define TLSEXT_hash_none 0 # define TLSEXT_hash_md5 1 # define TLSEXT_hash_sha1 2 @@ -288,6 +290,18 @@ extern "C" { # define TLSEXT_hash_sha384 5 # define TLSEXT_hash_sha512 6 +/* Total number of different digest algorithms */ + +# define TLSEXT_hash_num 7 + +/* Flag set for unrecognised algorithms */ +# define TLSEXT_nid_unknown 0x1000000 + +/* ECC curves */ + +# define TLSEXT_curve_P_256 23 +# define TLSEXT_curve_P_384 24 + # ifndef OPENSSL_NO_TLSEXT # define TLSEXT_MAXLEN_host_name 255 @@ -306,6 +320,16 @@ int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, const unsigned char *p, size_t plen, int use_context); +int SSL_get_sigalgs(SSL *s, int idx, + int *psign, int *phash, int *psignandhash, + unsigned char *rsig, unsigned char *rhash); + +int SSL_get_shared_sigalgs(SSL *s, int idx, + int *psign, int *phash, int *psignandhash, + unsigned char *rsig, unsigned char *rhash); + +int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain); + # define SSL_set_tlsext_host_name(s,name) \ SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,(char *)name) @@ -404,7 +428,6 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_CK_DHE_DSS_WITH_RC4_128_SHA 0x03000066 /* AES ciphersuites from RFC3268 */ - # define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F # define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030 # define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031 @@ -541,11 +564,10 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032 /* - * XXX Inconsistency alert: The OpenSSL names of ciphers with ephemeral DH - * here include the string "DHE", while elsewhere it has always been "EDH". - * (The alias for the list of all such ciphers also is "EDH".) The - * specifications speak of "EDH"; maybe we should allow both forms for - * everything. + * XXX * Backward compatibility alert: + * Older versions of OpenSSL gave + * some DHE ciphers names with "EDH" + * instead of "DHE". Going forward, we + * should be using DHE + * everywhere, though we may indefinitely maintain + * aliases for users + * or configurations that used "EDH" + */ # define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5 "EXP1024-RC4-MD5" # define TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 "EXP1024-RC2-CBC-MD5" @@ -570,7 +592,7 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA" # define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA" -/* ECC ciphersuites from draft-ietf-tls-ecc-01.txt (Mar 15, 2001) */ +/* ECC ciphersuites from RFC4492 */ # define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA" # define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA" # define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA" diff --git a/libs/puttyvs/PuTTYVS.sln b/libs/puttyvs/PuTTYVS.sln new file mode 100644 index 00000000..f7f2c346 --- /dev/null +++ b/libs/puttyvs/PuTTYVS.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Express 2013 for Windows Desktop +VisualStudioVersion = 12.0.31101.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PuTTYVS", "PuTTYVS.vcxproj", "{72E46F2A-361D-490E-B8A2-C5CD8D56C3A6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {72E46F2A-361D-490E-B8A2-C5CD8D56C3A6}.Debug|Win32.ActiveCfg = Debug|Win32 + {72E46F2A-361D-490E-B8A2-C5CD8D56C3A6}.Debug|Win32.Build.0 = Debug|Win32 + {72E46F2A-361D-490E-B8A2-C5CD8D56C3A6}.Release|Win32.ActiveCfg = Release|Win32 + {72E46F2A-361D-490E-B8A2-C5CD8D56C3A6}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/libs/puttyvs/PuTTYVS.vcxproj b/libs/puttyvs/PuTTYVS.vcxproj new file mode 100644 index 00000000..d5c3237f --- /dev/null +++ b/libs/puttyvs/PuTTYVS.vcxproj @@ -0,0 +1,86 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {72E46F2A-361D-490E-B8A2-C5CD8D56C3A6} + Win32Proj + PuTTYVS + + + + StaticLibrary + false + v120 + Unicode + + + StaticLibrary + false + v120 + Unicode + + + + + + + + + + + + + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;SECURITY_WIN32;WINSCP_VS;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + ProgramDatabase + Default + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_LIB;SECURITY_WIN32;WINSCP_VS;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + false + false + StreamingSIMDExtensions + + + Windows + true + true + true + + + + + + + + + + \ No newline at end of file diff --git a/libs/puttyvs/build.bat b/libs/puttyvs/build.bat new file mode 100644 index 00000000..1b2719f1 --- /dev/null +++ b/libs/puttyvs/build.bat @@ -0,0 +1,5 @@ +@echo off +set BUILDTOOLS_PATH=%1 +if "%BUILDTOOLS_PATH%" == "" set BUILDTOOLS_PATH=..\..\buildtools +%WINDIR%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe PuTTYVS.vcxproj /p:Configuration=Release +%BUILDTOOLS_PATH%\tools\objconv.exe -fomf32 Release\PuTTYVS.lib ..\lib\PuTTYVS.lib diff --git a/license.txt b/license.txt index 3c03f9b5..b2f612a0 100644 --- a/license.txt +++ b/license.txt @@ -2,7 +2,7 @@ B. License of WinSCP Icon Set C. Privacy Policy - + A. GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 @@ -680,7 +680,7 @@ Public License instead of this License. But first, please read B. License of WinSCP Icon Set - + Note that all images distributed in or with WinSCP application are NOT published under the GNU General Public License. It means that it is not allowed to redistribute or reuse these images or parts of them or modifications @@ -719,4 +719,3 @@ If you still want to disable WinSCP Usage statistics already during installation, you may do so using Custom installation. Thank you! - diff --git a/readme.txt b/readme.txt index e0ff03f6..05719abe 100644 --- a/readme.txt +++ b/readme.txt @@ -7,10 +7,7 @@ To build WinSCP you need: http://www.microsoft.com/netframework - nasm from http://www.nasm.us/ - Build MFC (see readme_mfc.txt). -- To build 64-bit version of drag&drop shell extension, you need - Windows Platform SDK: - http://msdn.microsoft.com/en-us/windows/bb980924 -- To build WinSCP .NET assembly, you need Microsoft Visual Studio 2012 +- To build WinSCP .NET assembly, you need Microsoft Visual Studio 2013 http://www.microsoft.com/visualstudio and Microsoft .NET Framework 4.0 @@ -22,12 +19,12 @@ Directory structure: /source/components native WinSCP visual components /source/console console interface /source/core core (non-visual) part of WinSCP - (SSH, SFTP, FTP and SCP code) + (SSH, SFTP, FTP, WebDAV and SCP code) /source/dragext drag&drop shell extension /source/filezilla source code of FileZilla FTP client /source/forms visual part of WinSCP (dialogs and windows) /source/packages general visual components (both mine and 3rd party) -/source/putty source code of Putty SSH client +/source/putty source code of PuTTY SSH client /source/resource resources strings /source/windows other sources /deployment Inno Setup script to create setup package diff --git a/source/Console.cbproj b/source/Console.cbproj index f4bfe9e6..945aa113 100644 --- a/source/Console.cbproj +++ b/source/Console.cbproj @@ -17,35 +17,11 @@ Base true - - true - Cfg_1 - true - true - - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>wchar_t rtl.lib @@ -54,8 +30,10 @@ true JPHNE System;Xml;Data;Datasnap;Web;Soap;Vcl;$(DCC_Namespace) - console\;$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(ILINK_LibraryPath) + $(FINAL_PATH)\$(Platform)\$(Config) + console\;$(ILINK_LibraryPath) console\;$(BDS)\include;$(BDS)\include\windows\vcl;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) rtl.lib None true @@ -65,10 +43,10 @@ CppConsoleApplication Console true - CompanyName=Martin Prikryl;FileDescription=Console interface for WinSCP;FileVersion=4.1.0.0;InternalName=console;LegalCopyright=(c) 2000-2015 Martin Prikryl;LegalTrademarks=;OriginalFilename=winscp.com;ProductName=WinSCP;ProductVersion=5.7.6.0;ReleaseType=stable;WWW=http://winscp.net/ + CompanyName=Martin Prikryl;FileDescription=Console interface for WinSCP;FileVersion=4.2.0.0;InternalName=console;LegalCopyright=(c) 2000-2015 Martin Prikryl;LegalTrademarks=;OriginalFilename=winscp.com;ProductName=WinSCP;ProductVersion=5.8.0.0;ReleaseType=beta;WWW=http://winscp.net/ 1033 4 - 1 + 2 true @@ -81,30 +59,14 @@ true DEBUG false - $(FINAL_PATH)\Debug + _DEBUG;$(Defines) true - $(BDS)\lib\debug;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - - - _DEBUG;$(Defines) - - $(FINAL_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - - NDEBUG;$(Defines) + None diff --git a/source/DScpComp.cbproj b/source/DScpComp.cbproj index 961f1328..3e6f1cf2 100644 --- a/source/DScpComp.cbproj +++ b/source/DScpComp.cbproj @@ -18,11 +18,6 @@ Base true - - true - Base - true - true Base @@ -34,43 +29,29 @@ true true - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>wchar_t rtl.lib;vcl.lib;vclx.lib true true true + $(INTERM_PATH)\$(Platform)\$(Config) JPHNE Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Vcl;$(DCC_Namespace) + DESIGN_ONLY;$(Defines) true + $(INTERM_PATH)\$(Platform)\$(Config) WinSCP components true true - components\;$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(ILINK_LibraryPath) + components\;$(ILINK_LibraryPath) components\;core;packages\filemng;packages\dragndrop;packages\my;$(BDS)\include;$(BDS)\include\windows\vcl;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) rtl.lib;vcl.lib;vclx.lib true bpl @@ -82,12 +63,8 @@ Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) - DESIGN_ONLY;$(Defines) true - - DESIGN_ONLY;$(Defines) - true true @@ -96,35 +73,16 @@ true true None - $(INTERM_PATH)\Debug true false - $(INTERM_PATH)\Debug + NDEBUG;$(Defines) true - $(BDS)\lib\debug;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - - NDEBUG;$(Defines) - $(BDS)\lib\win32\release\;$(ILINK_LibraryPath) - - - NDEBUG;$(Defines) - - $(INTERM_PATH)\Release - $(INTERM_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - - NDEBUG;$(Defines) + None diff --git a/source/DragDropP.cbproj b/source/DragDropP.cbproj index 94264d92..2c24725c 100644 --- a/source/DragDropP.cbproj +++ b/source/DragDropP.cbproj @@ -34,33 +34,16 @@ true true - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>wchar_t true true + $(INTERM_PATH)\$(Platform)\$(Config) JPHNE true true @@ -68,11 +51,13 @@ true System;Xml;Data;Datasnap;Web;Soap;Vcl;$(DCC_Namespace) true + $(INTERM_PATH)\$(Platform)\$(Config) Drag and Drop Components true true packages\dragndrop\;$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(ILINK_LibraryPath) packages\dragndrop\;$(BDS)\include;$(BDS)\include\windows\vcl;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) true bpl CppPackage @@ -97,35 +82,17 @@ true true None - $(INTERM_PATH)\Debug true DEBUG false - $(INTERM_PATH)\Debug + _DEBUG;$(Defines) true - $(BDS)\lib\debug;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - - - _DEBUG;$(Defines) - - $(INTERM_PATH)\Release - $(INTERM_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - - NDEBUG;$(Defines) + None diff --git a/source/DragExt.cbproj b/source/DragExt.cbproj index a1f283bd..dd31721e 100644 --- a/source/DragExt.cbproj +++ b/source/DragExt.cbproj @@ -6,27 +6,20 @@ None True Win32 - 1 + 3 Library true - - true + + true Base true - - true - Cfg_1 - true - true - - - true - Cfg_1 + true + Base true @@ -34,18 +27,6 @@ Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>wchar_t true @@ -54,9 +35,11 @@ false JPHNE System;Xml;Data;Datasnap;Web;Soap;Vcl;$(DCC_Namespace) + $(FINAL_PATH)\$(Platform)\$(Config) true dragext\;$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(ILINK_LibraryPath) dragext\;$(BDS)\include;$(BDS)\include\windows\vcl;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) None true true @@ -66,10 +49,12 @@ DragExt true true - CompanyName=Martin Prikryl;FileDescription=Drag&Drop shell extension for WinSCP (32-bit);FileVersion=1.2.1.0;InternalName=dragext32;LegalCopyright=(c) 2000-2015 Martin Prikryl;LegalTrademarks=;OriginalFilename=dragext.dll;ProductName=WinSCP;ProductVersion=5.7.6.0;ReleaseType=stable;WWW=http://winscp.net/ + CompanyName=Martin Prikryl;FileDescription=Drag&Drop shell extension for WinSCP ($(Platform));FileVersion=1.3.0.0;InternalName=dragext;LegalCopyright=(c) 2000-2015 Martin Prikryl;LegalTrademarks=;OriginalFilename=dragext.dll;ProductName=WinSCP;ProductVersion=5.8.0.0;ReleaseType=beta;WWW=http://winscp.net/ 1033 - 2 - 1 + 3 + + + DragExt64 true @@ -82,30 +67,14 @@ true DEBUG false - $(FINAL_PATH)\Debug + _DEBUG;$(Defines) true - $(BDS)\lib\debug;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - - - _DEBUG;$(Defines) - - $(FINAL_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - - NDEBUG;$(Defines) + None @@ -126,12 +95,7 @@ - - if "1"=="$(WITH_DRAGEXT64)" ( -if exist "$(FinalOutputDir)\DragExt.dll" "$(BDS)\Bin\make.exe" -fmakefile.dragext64 -DDRAGEXT64OUTPUTPATH=$(FinalOutputDir) -) - - + CPlusPlusBuilder.Personality.12 CppDynamicLibrary @@ -145,7 +109,7 @@ if exist "$(FinalOutputDir)\DragExt.dll" "$(BDS)\Bin\make.exe" -fmakefile.dragex True - False + True 12 diff --git a/source/DragExt64.rc b/source/DragExt64.rc deleted file mode 100644 index ab360e92..00000000 --- a/source/DragExt64.rc +++ /dev/null @@ -1,29 +0,0 @@ -1 VERSIONINFO -FILEVERSION 1,2,1,0 -PRODUCTVERSION 5,7,6,0 -FILEOS 0x4 -FILETYPE 0x2 -{ - BLOCK "StringFileInfo" - { - BLOCK "040904E4" - { - VALUE "CompanyName", "Martin Prikryl\0" - VALUE "FileDescription", "Drag&Drop shell extension for WinSCP (64-bit)\0" - VALUE "FileVersion", "1.2.1.0\0" - VALUE "InternalName", "dragext64\0" - VALUE "LegalCopyright", "(c) 2000-2015 Martin Prikryl\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "dragext64.dll\0" - VALUE "ProductName", "WinSCP\0" - VALUE "ProductVersion", "5.7.6.0\0" - VALUE "ReleaseType", "stable\0" - VALUE "WWW", "http://winscp.net/\0" - } - } - - BLOCK "VarFileInfo" - { - VALUE "Translation", 0x0409 0x04E4 - } -} \ No newline at end of file diff --git a/source/DriveDir.cbproj b/source/DriveDir.cbproj index 40ce0671..65e09cea 100644 --- a/source/DriveDir.cbproj +++ b/source/DriveDir.cbproj @@ -28,39 +28,16 @@ Base true - - true - Cfg_1 - true - true - - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>wchar_t true true + $(INTERM_PATH)\$(Platform)\$(Config) JPHNE true true @@ -70,11 +47,13 @@ false packages\my;packages\dragndrop;$(DCC_UnitSearchPath) true + $(INTERM_PATH)\$(Platform)\$(Config) Filemanager Toolset true true - packages\filemng\;packages\my;packages\dragndrop;$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\win32\release\psdk\;$(ILINK_LibraryPath) + packages\filemng\;packages\my;packages\dragndrop;$(ILINK_LibraryPath) packages\filemng\;packages\my;packages\dragndrop;$(BDS)\include;$(BDS)\include\windows\vcl;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) true bpl CppPackage @@ -97,37 +76,17 @@ true true None - $(INTERM_PATH)\Debug true DEBUG false - $(INTERM_PATH)\Debug + _DEBUG;$(Defines) true - $(BDS)\lib\debug;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - true - - - _DEBUG;$(Defines) - - $(INTERM_PATH)\Release - $(INTERM_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - true - - NDEBUG;$(Defines) + None diff --git a/source/FileZilla.cbproj b/source/FileZilla.cbproj index 0008c944..c3f428d3 100644 --- a/source/FileZilla.cbproj +++ b/source/FileZilla.cbproj @@ -17,45 +17,16 @@ Base true - - true - Base - true - true Base true - - true - Cfg_1 - true - true - - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>wchar_t true @@ -72,8 +43,11 @@ false JPHNE System;Xml;Data;Datasnap;Web;Soap;Vcl;$(DCC_Namespace) + _WIN32;$(Defines) + $(INTERM_PATH)\$(Platform)\$(Config) $(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(ILINK_LibraryPath) - filezilla\misc\;filezilla\;resource;..\libs\openssl;$(BDS)\include;$(BDS)\include\windows\vcl;$(BDS)\include\mfc;$(IncludePath) + filezilla\misc\;filezilla\;resource;core;..\libs\openssl;$(BDS)\include;$(BDS)\include\windows\vcl;$(BDS)\include\mfc;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) None true lib @@ -85,10 +59,6 @@ Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) - _WIN32;$(Defines) - - - _WIN32;$(Defines) true @@ -104,30 +74,14 @@ true DEBUG false - $(INTERM_PATH)\Debug + _DEBUG;$(Defines) true - $(BDS)\lib\debug;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - - - _DEBUG;$(Defines) - - $(INTERM_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - - NDEBUG;$(Defines) + None @@ -144,12 +98,6 @@ 4 - - - 5 - - - 6 7 @@ -176,16 +124,6 @@ 14 - - - 20 - - - 21 - - - filezilla\Options.h - 15 17 diff --git a/source/Jcl.cbproj b/source/Jcl.cbproj index 473b289b..c7aef008 100644 --- a/source/Jcl.cbproj +++ b/source/Jcl.cbproj @@ -34,43 +34,28 @@ true true - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>char true true false + $(INTERM_PATH)\$(Platform)\$(Config) JPHNE System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) packages\jcl;$(DCC_UnitSearchPath) + WINSCP;$(Defines) true + $(INTERM_PATH)\$(Platform)\$(Config) true true packages\jcl\;$(ILINK_LibraryPath) - $(BDSLIB)\$(PLATFORM)\release\$(LANGDIR);$(ILINK_TranslatedLibraryPath) packages\jcl\;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) true CppPackage true @@ -80,13 +65,11 @@ Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) - WINSCP;$(Defines) vcldbx;vclib;inetdbbde;tbxp;ibxpress;vclimg;vclactnband;vcldb;vcldsnap;bindcompvcl;vclie;vcltouch;bcbsmp;websnap;vclribbon;Moje;vcl;DriveDir;CloudService;CodeSiteExpressPkg;dsnapcon;vclx;webdsnap;tb2k;bdertl;DragDropP;bcbie;adortl;$(PackageImports) true CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= - WINSCP;$(Defines) vcldbx;vclib;inetdbbde;tbxp;ibxpress;vclimg;vclactnband;vcldb;vcldsnap;bindcompvcl;vclie;vcltouch;bcbsmp;websnap;vclribbon;Moje;vcl;DriveDir;CloudService;CodeSiteExpressPkg;dsnapcon;vclx;webdsnap;tb2k;bdertl;DragDropP;bcbie;adortl;$(PackageImports) @@ -97,38 +80,17 @@ true true None - $(INTERM_PATH)\Debug true DEBUG false - $(INTERM_PATH)\Debug + _DEBUG;$(Defines) true - $(BDSLIB)\$(PLATFORM)\debug;$(ILINK_LibraryPath) - $(BDSLIB)\$(PLATFORM)\debug\$(LANGDIR);$(ILINK_TranslatedLibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - true - 1029 - - - _DEBUG;$(Defines) - - $(INTERM_PATH)\Release - $(INTERM_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - - NDEBUG;$(Defines) + None diff --git a/source/Moje.cbproj b/source/Moje.cbproj index bee5c45a..6ea97340 100644 --- a/source/Moje.cbproj +++ b/source/Moje.cbproj @@ -29,33 +29,16 @@ true true - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>wchar_t true true + $(INTERM_PATH)\$(Platform)\$(Config) JPHNE true true @@ -63,11 +46,13 @@ true System;Xml;Data;Datasnap;Web;Soap;Vcl;$(DCC_Namespace) true + $(INTERM_PATH)\$(Platform)\$(Config) Martin's components true true - packages\my\;$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(ILINK_LibraryPath) + packages\my\;$(ILINK_LibraryPath) packages\my\;$(BDS)\include;$(BDS)\include\windows\vcl;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) true bpl CppPackage @@ -88,35 +73,17 @@ true true None - $(INTERM_PATH)\Debug true DEBUG false - $(INTERM_PATH)\Debug + _DEBUG;$(Defines) true - $(BDS)\lib\debug;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - - - _DEBUG;$(Defines) - - $(INTERM_PATH)\Release - $(INTERM_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - - NDEBUG;$(Defines) + None @@ -168,9 +135,6 @@ 17 - - 20 - 23 diff --git a/source/PngComponents.cbproj b/source/PngComponents.cbproj index 426df85b..d7ad720b 100644 --- a/source/PngComponents.cbproj +++ b/source/PngComponents.cbproj @@ -34,45 +34,29 @@ true true - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>char true true false + $(INTERM_PATH)\$(Platform)\$(Config) -LUDesignIDE JPHNE System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) packages\png;packages\my;$(DCC_UnitSearchPath) true + $(INTERM_PATH)\$(Platform)\$(Config) Png Components true true - packages\png\;packages\my;$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(BDS)\source\toolsapi\;$(ILINK_LibraryPath) - $(BDSLIB)\$(PLATFORM)\release\$(LANGDIR);$(ILINK_TranslatedLibraryPath) + packages\png\;packages\my;$(BDS)\lib;$(BDS)\source\toolsapi\;$(ILINK_LibraryPath) packages\png\;packages\my;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) true CppPackage PngComponents @@ -95,38 +79,17 @@ true true None - $(INTERM_PATH)\Debug true DEBUG false - $(INTERM_PATH)\Debug + _DEBUG;$(Defines) true - $(BDSLIB)\$(PLATFORM)\debug;$(ILINK_LibraryPath) - $(BDSLIB)\$(PLATFORM)\debug\$(LANGDIR);$(ILINK_TranslatedLibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - true - 1029 - - - _DEBUG;$(Defines) - - $(INTERM_PATH)\Release - $(INTERM_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - - NDEBUG;$(Defines) + None diff --git a/source/Putty.cbproj b/source/Putty.cbproj index 78c7f49f..4651a385 100644 --- a/source/Putty.cbproj +++ b/source/Putty.cbproj @@ -17,45 +17,16 @@ Base true - - true - Base - true - true Base true - - true - Cfg_1 - true - true - - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - rtl.lib true @@ -86,8 +57,10 @@ false JPHNE System;Xml;Data;Datasnap;Web;Soap;Vcl;$(DCC_Namespace) - $(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(ILINK_LibraryPath) - putty\;putty\WINDOWS\;$(BDS)\include;$(IncludePath) + SECURITY_WIN32;MPEXT;_WINDOWS;$(Defines) + $(INTERM_PATH)\$(Platform)\$(Config) + putty\;putty\windows\;$(BDS)\include;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) None true lib @@ -99,10 +72,6 @@ Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) - SECURITY_WIN32;MPEXT;_WINDOWS;$(Defines) - - - SECURITY_WIN32;MPEXT;_WINDOWS;$(Defines) true @@ -115,189 +84,190 @@ true DEBUG false - $(INTERM_PATH)\Debug + _DEBUG;$(Defines) true - $(BDS)\lib\debug;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - - - _DEBUG;$(Defines) - - $(INTERM_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - - NDEBUG;$(Defines) + None - + 5 25 - + 5 25 - + 5 25 - + + 44 + + + 46 + + 8 24 - + 27 11 - + 26 14 - + + 41 + + 37 - + 23 17 - + 20 - + 23 19 - + 26 22 - + 29 21 - + 34 32 - + 35 33 - + 38 36 - + 41 35 - + 44 32 - + 47 29 - + 50 28 - + 38 - + 53 31 - + 56 30 - + 59 18 - + 62 6 - + 65 5 - + 8 68 - + 71 7 - + + 42 + + 74 4 - + 77 1 - + 83 3 - + 86 2 - - 89 - 15 + + 43 - + + 45 + + 92 14 - + 95 17 - + 98 16 - + 39 - + 13 101 - + 104 10 - + + 43 + + 9 107 - + 12 110 - + 113 11 diff --git a/source/RScpComp.cbproj b/source/RScpComp.cbproj index 358baed6..98f787f0 100644 --- a/source/RScpComp.cbproj +++ b/source/RScpComp.cbproj @@ -22,35 +22,11 @@ Base true - - true - Cfg_1 - true - true - - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>wchar_t vclx.lib;vcl.lib;rtl.lib;DriveDir.lib;Moje.lib;DragDropP.lib @@ -60,8 +36,10 @@ false JPHNE System;Xml;Data;Datasnap;Web;Soap;Vcl;$(DCC_Namespace) - $(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(ILINK_LibraryPath) + $(INTERM_PATH)\$(Platform)\$(Config) + $(BDS)\lib;$(ILINK_LibraryPath) components\;core;windows;packages\filemng;packages\dragndrop;packages\my;$(BDS)\include;$(BDS)\include\windows\vcl;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) None true lib @@ -89,30 +67,14 @@ true DEBUG false - $(INTERM_PATH)\Debug + _DEBUG;$(Defines) true - $(BDS)\lib\debug;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - - - _DEBUG;$(Defines) - - $(INTERM_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(BCC_Defines);$(Defines) - - NDEBUG;$(BCC_Defines);$(Defines) + None diff --git a/source/ScpCore.cbproj b/source/ScpCore.cbproj index b34760c8..d6115ff4 100644 --- a/source/ScpCore.cbproj +++ b/source/ScpCore.cbproj @@ -17,45 +17,16 @@ Base true - - true - Base - true - true Base true - - true - Cfg_1 - true - true - - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>wchar_t rtl.lib;vclx.lib;vcl.lib;xmlrtl.lib @@ -65,8 +36,11 @@ false JPHNE System;Xml;Data;Datasnap;Web;Soap;Vcl;$(DCC_Namespace) - $(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(ILINK_LibraryPath) + USE_COMPATIBLE_THREAD;_WINDOWS;WIN32;WINNT;_CRTIMP=;_LIB;$(BUILD_TYPE);$(Defines) + $(INTERM_PATH)\$(Platform)\$(Config) + $(BDS)\lib;$(ILINK_LibraryPath) core\;putty;putty\windows;filezilla;resource;..\libs\openssl;..\libs\expat\lib;..\libs\neon\src;$(BDS)\include;$(BDS)\include\windows\vcl;$(BDS)\include\Mfc;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) None true lib @@ -79,12 +53,6 @@ Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) - C:\Misto\bin\final\Debug\WinSCP.exe - /console - USE_COMPATIBLE_THREAD;_WINDOWS;WIN32;WINNT;_CRTIMP=;_LIB;$(BUILD_TYPE);$(Defines) - - - USE_COMPATIBLE_THREAD;_WINDOWS;WIN32;WINNT;_CRTIMP=;_LIB;$(BUILD_TYPE);$(Defines) true @@ -100,30 +68,14 @@ true DEBUG false - $(INTERM_PATH)\Debug + _DEBUG;$(Defines) true - $(BDS)\lib\debug;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - - - _DEBUG;$(Defines) - - $(INTERM_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - - NDEBUG;$(Defines) + None @@ -176,14 +128,24 @@ 41 23 + + + 29 44 13 + + + 4 47 3 + + + 47 + 3 50 diff --git a/source/ScpForms.cbproj b/source/ScpForms.cbproj index d8e8ab9e..063a5642 100644 --- a/source/ScpForms.cbproj +++ b/source/ScpForms.cbproj @@ -17,35 +17,11 @@ Base true - - true - Cfg_1 - true - true - - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>wchar_t vcl.lib;rtl.lib;Moje.lib;vclx.lib;DriveDir.lib;DragDropP.lib;tb2k.lib;tbxp.lib;bcbie.lib;PngComponents.lib;xmlrtl.lib;vclactnband.lib;vclimg.lib;vclie.lib @@ -55,8 +31,9 @@ false JPHNE System;Xml;Data;Datasnap;Web;Soap;Vcl;$(DCC_Namespace) - $(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(ILINK_LibraryPath) + $(INTERM_PATH)\$(Platform)\$(Config) windows\;forms\;core;components;resource;packages\filemng;packages\dragndrop;packages\my;packages\tb2k;packages\tbx;packages\png;packages\jcl;$(BDS)\include\windows;$(BDS)\include\windows\vcl;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) None true lib @@ -82,30 +59,14 @@ true DEBUG false - $(INTERM_PATH)\Debug + _DEBUG;$(Defines) true - $(BDS)\lib\debug;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - - - _DEBUG;$(Defines) - - $(INTERM_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - - NDEBUG;$(Defines) + None diff --git a/source/ScpResources.cbproj b/source/ScpResources.cbproj new file mode 100644 index 00000000..74ec9da7 --- /dev/null +++ b/source/ScpResources.cbproj @@ -0,0 +1,171 @@ + + + {F3609D87-2D06-465B-8878-353EAF3E894F} + 15.4 + Release + None + True + Win32 + 1 + StaticLibrary + + + true + + + true + Base + true + + + true + Base + true + + + <_TCHARMapping>wchar_t + true + true + true + JPHNE + System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) + $(INTERM_PATH)\$(Platform)\$(Config) + core\;forms\;windows\;packages\png;packages\tb2k;packages\tbx;$(BDS)\include\windows;$(BDS)\include\windows\vcl;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) + None + true + CppStaticLibrary + ScpResources + 64 + 1033 + + + true + true + false + true + true + true + false + true + true + None + true + DEBUG + false + _DEBUG;$(Defines) + true + Full + true + + + NDEBUG;$(Defines) + None + + + +
AnimationsModule
+ dfm + TDataModule + forms\Animations.h + 1 +
+ + +
Animations120Module
+ dfm + TDataModule + forms\Animations120.h + 3 +
+ + +
Animations144Module
+ dfm + TDataModule + forms\Animations144.h + 2 +
+ + +
Animations192Module
+ dfm + TDataModule + forms\Animations192.h + 8 +
+ + +
Animations96Module
+ dfm + TDataModule + forms\Animations96.h + 5 +
+ + +
GlyphsModule
+ dfm + TDataModule + forms\Glyphs.h + 0 +
+ + +
Glyphs120Module
+ dfm + TDataModule + forms\Glyphs120.h + 7 +
+ + +
Glyphs144Module
+ dfm + TDataModule + forms\Glyphs144.h + 8 +
+ + +
Glyphs192Module
+ dfm + TDataModule + forms\Glyphs192.h + 9 +
+ + + Base + + + Cfg_1 + Base + + + Cfg_2 + Base + +
+ + + CPlusPlusBuilder.Personality.12 + CppStaticLibrary + + + + False + True + True + False + + + + True + False + + + 12 + + +
\ No newline at end of file diff --git a/source/WinSCP.cbproj b/source/WinSCP.cbproj index 4753d695..351f9e60 100644 --- a/source/WinSCP.cbproj +++ b/source/WinSCP.cbproj @@ -13,16 +13,6 @@ true - - true - Base - true - - - true - Base - true - true Base @@ -59,7 +49,7 @@ <_TCHARMapping>wchar_t - vcl.lib;rtl.lib;vclx.lib;ws2_32.lib;secur32.lib;Moje.lib;DriveDir.lib;DragDropP.lib;tb2k.lib;tbxp.lib;bcbie.lib;Crypt32.lib;PngComponents.lib;xmlrtl.lib;vclactnband.lib;vclimg.lib;winhttp.lib;jcl.lib;vclie.lib;urlmon.lib;shlwapi.lib;powrprof.lib;soaprtl.lib + vcl.lib;rtl.lib;vclx.lib;ws2_32.lib;secur32.lib;Moje.lib;DriveDir.lib;DragDropP.lib;tb2k.lib;tbxp.lib;bcbie.lib;Crypt32.lib;PngComponents.lib;xmlrtl.lib;vclactnband.lib;vclimg.lib;winhttp.lib;jcl.lib;vclie.lib;urlmon.lib;shlwapi.lib;powrprof.lib;soaprtl.lib;fmx.lib true true true @@ -70,12 +60,15 @@ false false false - resource\Icon256.ico + IDE;STRICT;$(Defines) + $(FINAL_PATH)\$(Platform)\$(Config) + resource\Application.ico true - windows\;forms\;packages\filemng;packages\tbx;packages\png;..\libs\lib;$(BDS)\lib\win32\release\psdk\;$(BDS)\lib\win32\release\;$(LIB_PATH);$(ILINK_LibraryPath) + windows\;forms\;packages\filemng;packages\tbx;packages\png;..\libs\lib;$(LIB_PATH);$(ILINK_LibraryPath) DetailedSegments console;windows\;forms\;core;resource;components;dragext;packages\filemng;packages\dragndrop;packages\my;packages\tb2k;packages\tbx;packages\png;packages\jcl;$(BDS)\include\mfc;$(BDS)\include\windows;$(BDS)\include\windows\sdk;$(BDS)\include\windows\vcl;$(IncludePath) - vcl.lib;rtl.lib;vclx.lib;ws2_32.lib;secur32.lib;Moje.lib;DriveDir.lib;DragDropP.lib;tb2k.lib;tbxp.lib;bcbie.lib;Crypt32.lib;PngComponents.lib;xmlrtl.lib;vclactnband.lib;vclimg.lib;winhttp.lib;jcl.lib;vclie.lib;urlmon.lib;shlwapi.lib + $(INTERM_PATH)\$(Platform)\$(Config) + vcl.lib;rtl.lib;vclx.lib;ws2_32.lib;secur32.lib;Moje.lib;DriveDir.lib;DragDropP.lib;tb2k.lib;tbxp.lib;bcbie.lib;Crypt32.lib;PngComponents.lib;xmlrtl.lib;vclactnband.lib;vclimg.lib;winhttp.lib;jcl.lib;vclie.lib;urlmon.lib;shlwapi.lib;powrprof.lib;soaprtl.lib windows\WinSCP.exe.manifest true exe @@ -83,59 +76,50 @@ WinSCP true true - CompanyName=Martin Prikryl;FileDescription=WinSCP: SFTP, FTP and SCP client;FileVersion=5.7.6.0;InternalName=winscp;LegalCopyright=(c) 2000-2015 Martin Prikryl;LegalTrademarks=;OriginalFilename=winscp.exe;ProductName=WinSCP;ProductVersion=5.7.6.0;ReleaseType=stable;WWW=http://winscp.net/ + CompanyName=Martin Prikryl;FileDescription=WinSCP: SFTP, FTP, WebDAV and SCP client;FileVersion=5.8.0.0;InternalName=winscp;LegalCopyright=(c) 2000-2015 Martin Prikryl;LegalTrademarks=;OriginalFilename=winscp.exe;ProductName=WinSCP;ProductVersion=5.8.0.0;ReleaseType=beta;WWW=http://winscp.net/ 1033 5 - 7 - 6 - - - IDE;STRICT;$(Defines) - - - IDE;STRICT;$(Defines) + 8 + true true true false + true + true + true false true true None + true true DEBUG false - $(FINAL_PATH)\Debug + packages\my;packages\filemng;packages\jcl;..\libs\openssl\crypto\bio;..\libs\openssl\ssl;..\libs\openssl\crypto\stack;..\libs\openssl\crypto\x509;..\libs\openssl\crypto\evp;..\libs\openssl\crypto\pkcs12;..\libs\openssl\crypto\pem;..\libs\openssl\crypto\asn1;..\libs\openssl\crypto\err;..\libs\neon\src;$(Debugger_DebugSourcePath) + _DEBUG;$(Defines) true - $(INTERM_PATH)\Debug\;$(BDS)\lib\win32\debug\;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - true - true - true - true - true - packages\my;packages\filemng;packages\jcl;..\libs\openssl\crypto\bio;..\libs\openssl\ssl;..\libs\openssl\crypto\stack;..\libs\openssl\crypto\x509;..\libs\neon\src;$(Debugger_DebugSourcePath) - _DEBUG;$(Defines) + true + $(INTERM_PATH)\Win32\Debug\;$(BDS)\lib\Win32\Debug\;$(BDS)\lib\Win32\Release\;$(BDS)\lib\Win32\Release\psdk\;$(ILINK_LibraryPath) + vcl.lib;rtl.lib;vclx.lib;ws2_32.lib;secur32.lib;Moje.lib;DriveDir.lib;DragDropP.lib;tb2k.lib;tbxp.lib;bcbie.lib;Crypt32.lib;PngComponents.lib;xmlrtl.lib;vclactnband.lib;vclimg.lib;winhttp.lib;jcl.lib;vclie.lib;urlmon.lib;shlwapi.lib;powrprof.lib;soaprtl.lib;fmx.lib - _DEBUG;$(Defines) + $(INTERM_PATH)\Win64\Debug\;$(BDS)\lib\Win64\Debug\;$(BDS)\lib\Win64\Release\;$(BDS)\lib\Win64\Release\psdk\;$(ILINK_LibraryPath) - $(FINAL_PATH)\Release - $(INTERM_PATH)\Release;$(BDS)\lib\win32\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release + NDEBUG;$(Defines) None - NDEBUG;$(Defines) + $(INTERM_PATH)\Win32\Release\;$(BDS)\lib\Win32\Release\;$(BDS)\lib\Win32\Release\psdk\;$(ILINK_LibraryPath) - NDEBUG;$(Defines) + $(INTERM_PATH)\Win64\Release\;$(BDS)\lib\Win64\Release\;$(BDS)\lib\Win64\Release\psdk\;$(ILINK_LibraryPath) @@ -145,13 +129,6 @@ 21 - -
GlyphsModule
- TDataModule - forms\Glyphs.h - 30 -
- 23
NonVisualDataModule
@@ -266,6 +243,10 @@ 23 true + + + 33 + true 24 @@ -278,6 +259,10 @@ 26 true + + + 26 + true 29 diff --git a/source/WinSCP.cpp b/source/WinSCP.cpp index 668c5926..44f577eb 100644 --- a/source/WinSCP.cpp +++ b/source/WinSCP.cpp @@ -6,7 +6,6 @@ USEFORM("forms\CustomScpExplorer.cpp", CustomScpExplorerForm); USEFORM("forms\NonVisual.cpp", NonVisualDataModule); /* TDataModule: File Type */ USEFORM("forms\ScpCommander.cpp", ScpCommanderForm); USEFORM("forms\ScpExplorer.cpp", ScpExplorerForm); -USEFORM("forms\Glyphs.cpp", GlyphsModule); /* TDataModule: File Type */ //--------------------------------------------------------------------------- #include #include @@ -28,9 +27,6 @@ WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int) CoreInitialize(); InitializeWinHelp(); InitializeSystemSettings(); - // now everything is setup and mainly the configured locale is already loaded, - // detect scaling type and possibly forbid further runtime changes to locale - GUIConfiguration->DetectScalingType(); try { diff --git a/source/WinSCP.drc b/source/WinSCP.drc index ce8f296b..6f98c62d 100644 --- a/source/WinSCP.drc +++ b/source/WinSCP.drc @@ -7,360 +7,357 @@ produced executable. */ -#define Ieconst_sChildWindowsAlreadyHooked 64720 -#define Ieconst_sSaveCurrentFile 64721 -#define Jclresources_RsIntelCacheDescrE4 64736 -#define Jclresources_RsIntelCacheDescrEA 64737 -#define Jclresources_RsIntelCacheDescrEB 64738 -#define Jclresources_RsIntelCacheDescrEC 64739 -#define Jclresources_RsIntelCacheDescrF0 64740 -#define Jclresources_RsIntelCacheDescrF1 64741 -#define Jclresources_RsIntelCacheDescrFF 64742 -#define Jclresources_RsOSVersionWin81 64743 -#define Jclresources_RsOSVersionWinServer2012R2 64744 -#define Jclresources_RsWin32Error 64745 -#define Jclresources_RsELibraryNotFound 64746 -#define Jclresources_RsEFunctionNotFound 64747 -#define Ieconst_sNoPageLoaded 64748 -#define Ieconst_sNilProvider 64749 -#define Ieconst_sInvalidServiceProviderGUID 64750 -#define Ieconst_sClassSinkingError 64751 -#define Jclresources_RsIntelCacheDescrB3 64752 -#define Jclresources_RsIntelCacheDescrB4 64753 -#define Jclresources_RsIntelCacheDescrBA 64754 -#define Jclresources_RsIntelCacheDescrC0 64755 -#define Jclresources_RsIntelCacheDescrCA 64756 -#define Jclresources_RsIntelCacheDescrD0 64757 -#define Jclresources_RsIntelCacheDescrD1 64758 -#define Jclresources_RsIntelCacheDescrD2 64759 -#define Jclresources_RsIntelCacheDescrD6 64760 -#define Jclresources_RsIntelCacheDescrD7 64761 -#define Jclresources_RsIntelCacheDescrD8 64762 -#define Jclresources_RsIntelCacheDescrDC 64763 -#define Jclresources_RsIntelCacheDescrDD 64764 -#define Jclresources_RsIntelCacheDescrDE 64765 -#define Jclresources_RsIntelCacheDescrE2 64766 -#define Jclresources_RsIntelCacheDescrE3 64767 -#define Jclresources_RsIntelCacheDescr79 64768 -#define Jclresources_RsIntelCacheDescr7A 64769 -#define Jclresources_RsIntelCacheDescr7B 64770 -#define Jclresources_RsIntelCacheDescr7C 64771 -#define Jclresources_RsIntelCacheDescr7D 64772 -#define Jclresources_RsIntelCacheDescr7F 64773 -#define Jclresources_RsIntelCacheDescr80 64774 -#define Jclresources_RsIntelCacheDescr82 64775 -#define Jclresources_RsIntelCacheDescr83 64776 -#define Jclresources_RsIntelCacheDescr84 64777 -#define Jclresources_RsIntelCacheDescr85 64778 -#define Jclresources_RsIntelCacheDescr86 64779 -#define Jclresources_RsIntelCacheDescr87 64780 -#define Jclresources_RsIntelCacheDescrB0 64781 -#define Jclresources_RsIntelCacheDescrB1 64782 -#define Jclresources_RsIntelCacheDescrB2 64783 -#define Jclresources_RsIntelCacheDescr57 64784 -#define Jclresources_RsIntelCacheDescr59 64785 -#define Jclresources_RsIntelCacheDescr5A 64786 -#define Jclresources_RsIntelCacheDescr5B 64787 -#define Jclresources_RsIntelCacheDescr5C 64788 -#define Jclresources_RsIntelCacheDescr5D 64789 -#define Jclresources_RsIntelCacheDescr60 64790 -#define Jclresources_RsIntelCacheDescr66 64791 -#define Jclresources_RsIntelCacheDescr67 64792 -#define Jclresources_RsIntelCacheDescr68 64793 -#define Jclresources_RsIntelCacheDescr70 64794 -#define Jclresources_RsIntelCacheDescr71 64795 -#define Jclresources_RsIntelCacheDescr72 64796 -#define Jclresources_RsIntelCacheDescr73 64797 -#define Jclresources_RsIntelCacheDescr76 64798 -#define Jclresources_RsIntelCacheDescr78 64799 -#define Jclresources_RsIntelCacheDescr45 64800 -#define Jclresources_RsIntelCacheDescr46 64801 -#define Jclresources_RsIntelCacheDescr47 64802 -#define Jclresources_RsIntelCacheDescr48 64803 -#define Jclresources_RsIntelCacheDescr49 64804 -#define Jclresources_RsIntelCacheDescr4A 64805 -#define Jclresources_RsIntelCacheDescr4B 64806 -#define Jclresources_RsIntelCacheDescr4C 64807 -#define Jclresources_RsIntelCacheDescr4D 64808 -#define Jclresources_RsIntelCacheDescr4E 64809 -#define Jclresources_RsIntelCacheDescr4F 64810 -#define Jclresources_RsIntelCacheDescr50 64811 -#define Jclresources_RsIntelCacheDescr51 64812 -#define Jclresources_RsIntelCacheDescr52 64813 -#define Jclresources_RsIntelCacheDescr55 64814 -#define Jclresources_RsIntelCacheDescr56 64815 -#define Jclresources_RsIntelCacheDescr23 64816 -#define Jclresources_RsIntelCacheDescr25 64817 -#define Jclresources_RsIntelCacheDescr29 64818 -#define Jclresources_RsIntelCacheDescr2C 64819 -#define Jclresources_RsIntelCacheDescr30 64820 -#define Jclresources_RsIntelCacheDescr39 64821 -#define Jclresources_RsIntelCacheDescr3A 64822 -#define Jclresources_RsIntelCacheDescr3B 64823 -#define Jclresources_RsIntelCacheDescr3C 64824 -#define Jclresources_RsIntelCacheDescr3D 64825 -#define Jclresources_RsIntelCacheDescr3E 64826 -#define Jclresources_RsIntelCacheDescr40 64827 -#define Jclresources_RsIntelCacheDescr41 64828 -#define Jclresources_RsIntelCacheDescr42 64829 -#define Jclresources_RsIntelCacheDescr43 64830 -#define Jclresources_RsIntelCacheDescr44 64831 -#define Jclresources_RsIntelCacheDescr00 64832 -#define Jclresources_RsIntelCacheDescr01 64833 -#define Jclresources_RsIntelCacheDescr02 64834 -#define Jclresources_RsIntelCacheDescr03 64835 -#define Jclresources_RsIntelCacheDescr04 64836 -#define Jclresources_RsIntelCacheDescr05 64837 -#define Jclresources_RsIntelCacheDescr06 64838 -#define Jclresources_RsIntelCacheDescr08 64839 -#define Jclresources_RsIntelCacheDescr09 64840 -#define Jclresources_RsIntelCacheDescr0A 64841 -#define Jclresources_RsIntelCacheDescr0B 64842 -#define Jclresources_RsIntelCacheDescr0C 64843 -#define Jclresources_RsIntelCacheDescr0D 64844 -#define Jclresources_RsIntelCacheDescr0E 64845 -#define Jclresources_RsIntelCacheDescr21 64846 -#define Jclresources_RsIntelCacheDescr22 64847 -#define Jclresources_RsPeDEBUG_OMAP_FROM_SRC 64848 -#define Jclresources_RsPePkgExecutable 64849 -#define Jclresources_RsPePkgPackage 64850 -#define Jclresources_PsPePkgLibrary 64851 -#define Jclresources_RsPePkgNeverBuild 64852 -#define Jclresources_RsPePkgDesignOnly 64853 -#define Jclresources_RsPePkgRunOnly 64854 -#define Jclresources_RsPePkgIgnoreDupUnits 64855 -#define Jclresources_RsPePkgV3Produced 64856 -#define Jclresources_RsPePkgProducerUndefined 64857 -#define Jclresources_RsPePkgBCB4Produced 64858 -#define Jclresources_RsPePkgDelphi4Produced 64859 -#define Jclresources_RsPePkgMain 64860 -#define Jclresources_RsPePkgWeak 64861 -#define Jclresources_RsPePkgOrgWeak 64862 -#define Jclresources_RsPePkgImplicit 64863 -#define Jclresources_RsPeMACHINE_CEE 64864 -#define Jclresources_RsPeSUBSYSTEM_UNKNOWN 64865 -#define Jclresources_RsPeSUBSYSTEM_NATIVE 64866 -#define Jclresources_RsPeSUBSYSTEM_WINDOWS_GUI 64867 -#define Jclresources_RsPeSUBSYSTEM_WINDOWS_CUI 64868 -#define Jclresources_RsPeSUBSYSTEM_OS2_CUI 64869 -#define Jclresources_RsPeSUBSYSTEM_POSIX_CUI 64870 -#define Jclresources_RsPeSUBSYSTEM_RESERVED8 64871 -#define Jclresources_RsPeDEBUG_UNKNOWN 64872 -#define Jclresources_RsPeDEBUG_COFF 64873 -#define Jclresources_RsPeDEBUG_CODEVIEW 64874 -#define Jclresources_RsPeDEBUG_FPO 64875 -#define Jclresources_RsPeDEBUG_MISC 64876 -#define Jclresources_RsPeDEBUG_EXCEPTION 64877 -#define Jclresources_RsPeDEBUG_FIXUP 64878 -#define Jclresources_RsPeDEBUG_OMAP_TO_SRC 64879 -#define Jclresources_RsPeMACHINE_SH5 64880 -#define Jclresources_RsPeMACHINE_ARM 64881 -#define Jclresources_RsPeMACHINE_THUMB 64882 -#define Jclresources_RsPeMACHINE_AM33 64883 -#define Jclresources_RsPeMACHINE_POWERPC 64884 -#define Jclresources_RsPeMACHINE_POWERPCFP 64885 -#define Jclresources_RsPeMACHINE_IA64 64886 -#define Jclresources_RsPeMACHINE_MIPS16 64887 -#define Jclresources_RsPeMACHINE_AMPHA64 64888 -#define Jclresources_RsPeMACHINE_MIPSFPU 64889 -#define Jclresources_RsPeMACHINE_MIPSFPU16 64890 -#define Jclresources_RsPeMACHINE_TRICORE 64891 -#define Jclresources_RsPeMACHINE_CEF 64892 -#define Jclresources_RsPeMACHINE_EBC 64893 -#define Jclresources_RsPeMACHINE_AMD64 64894 -#define Jclresources_RsPeMACHINE_M32R 64895 -#define Jclresources_RsPeProcessHeapFlags 64896 -#define Jclresources_RsPeProcessAffinityMask 64897 -#define Jclresources_RsPeCSDVersion 64898 -#define Jclresources_RsPeReserved 64899 -#define Jclresources_RsPeEditList 64900 -#define Jclresources_RsPeMACHINE_UNKNOWN 64901 -#define Jclresources_RsPeMACHINE_I386 64902 -#define Jclresources_RsPeMACHINE_R3000 64903 -#define Jclresources_RsPeMACHINE_R4000 64904 -#define Jclresources_RsPeMACHINE_R10000 64905 -#define Jclresources_RsPeMACHINE_WCEMIPSV2 64906 -#define Jclresources_RsPeMACHINE_ALPHA 64907 -#define Jclresources_RsPeMACHINE_SH3 64908 -#define Jclresources_RsPeMACHINE_SH3DSP 64909 -#define Jclresources_RsPeMACHINE_SH3E 64910 -#define Jclresources_RsPeMACHINE_SH4 64911 -#define Jclresources_RsPeDllCharacteristics 64912 -#define Jclresources_RsPeSizeOfStackReserve 64913 -#define Jclresources_RsPeSizeOfStackCommit 64914 -#define Jclresources_RsPeSizeOfHeapReserve 64915 -#define Jclresources_RsPeSizeOfHeapCommit 64916 -#define Jclresources_RsPeLoaderFlags 64917 -#define Jclresources_RsPeNumberOfRvaAndSizes 64918 -#define Jclresources_RsPeVersion 64919 -#define Jclresources_RsPeGlobalFlagsClear 64920 -#define Jclresources_RsPeGlobalFlagsSet 64921 -#define Jclresources_RsPeCriticalSectionDefaultTimeout 64922 -#define Jclresources_RsPeDeCommitFreeBlockThreshold 64923 -#define Jclresources_RsPeDeCommitTotalFreeThreshold 64924 -#define Jclresources_RsPeLockPrefixTable 64925 -#define Jclresources_RsPeMaximumAllocationSize 64926 -#define Jclresources_RsPeVirtualMemoryThreshold 64927 -#define Jclresources_RsPeSizeOfInitializedData 64928 -#define Jclresources_RsPeSizeOfUninitializedData 64929 -#define Jclresources_RsPeAddressOfEntryPoint 64930 -#define Jclresources_RsPeBaseOfCode 64931 -#define Jclresources_RsPeBaseOfData 64932 -#define Jclresources_RsPeImageBase 64933 -#define Jclresources_RsPeSectionAlignment 64934 -#define Jclresources_RsPeFileAlignment 64935 -#define Jclresources_RsPeOperatingSystemVersion 64936 -#define Jclresources_RsPeImageVersion 64937 -#define Jclresources_RsPeSubsystemVersion 64938 -#define Jclresources_RsPeWin32VersionValue 64939 -#define Jclresources_RsPeSizeOfImage 64940 -#define Jclresources_RsPeSizeOfHeaders 64941 -#define Jclresources_RsPeCheckSum 64942 -#define Jclresources_RsPeSubsystem 64943 -#define Jclresources_RsPeImg_11 64944 -#define Jclresources_RsPeImg_12 64945 -#define Jclresources_RsPeImg_13 64946 -#define Jclresources_RsPeImg_14 64947 -#define Jclresources_RsPeImg_Reserved 64948 -#define Jclresources_RsPeSignature 64949 -#define Jclresources_RsPeMachine 64950 -#define Jclresources_RsPeNumberOfSections 64951 -#define Jclresources_RsPeTimeDateStamp 64952 -#define Jclresources_RsPePointerToSymbolTable 64953 -#define Jclresources_RsPeNumberOfSymbols 64954 -#define Jclresources_RsPeSizeOfOptionalHeader 64955 -#define Jclresources_RsPeCharacteristics 64956 -#define Jclresources_RsPeMagic 64957 -#define Jclresources_RsPeLinkerVersion 64958 -#define Jclresources_RsPeSizeOfCode 64959 -#define Jclresources_RsPeNotPE 64960 -#define Jclresources_RsPeUnknownTarget 64961 -#define Jclresources_RsPeNotResDir 64962 -#define Jclresources_RsPeNotAvailableForAttached 64963 -#define Jclresources_RsPeSectionNotFound 64964 -#define Jclresources_RsPeImg_00 64965 -#define Jclresources_RsPeImg_01 64966 -#define Jclresources_RsPeImg_02 64967 -#define Jclresources_RsPeImg_03 64968 -#define Jclresources_RsPeImg_04 64969 -#define Jclresources_RsPeImg_05 64970 -#define Jclresources_RsPeImg_06 64971 -#define Jclresources_RsPeImg_07 64972 -#define Jclresources_RsPeImg_08 64973 -#define Jclresources_RsPeImg_09 64974 -#define Jclresources_RsPeImg_10 64975 -#define Vcl_Imaging_Pnglang_EInvalidSpec 64976 -#define Jclresources_RsEReplacementChar 64977 -#define Jclresources_RsEWindowsVersionNotSupported 64978 -#define Jclresources_RsEWindowNotValid 64979 -#define Jclresources_RsEProcessNotValid 64980 -#define Jclresources_RsEModuleNotValid 64981 -#define Jclresources_RsFileUtilsNoVersionInfo 64982 -#define Jclresources_RsFileUtilsFileDoesNotExist 64983 -#define Jclresources_RsFileUtilsLanguageIndex 64984 -#define Jclresources_RsFileUtilsEmptyValue 64985 -#define Jclresources_RsFileUtilsValueNotFound 64986 -#define Jclresources_RsCreateFileMapping 64987 -#define Jclresources_RsCreateFileMappingView 64988 -#define Jclresources_RsFailedToObtainSize 64989 -#define Jclresources_RsPeReadOnlyStream 64990 -#define Jclresources_RsPeCantOpen 64991 -#define Vcl_Imaging_Pnglang_EPNGIHDRNotFirstText 64992 -#define Vcl_Imaging_Pnglang_EPNGSizeExceedsText 64993 -#define Vcl_Imaging_Pnglang_EPNGUnknownPalEntryText 64994 -#define Vcl_Imaging_Pnglang_EPNGUnknownCriticalChunkText 64995 -#define Vcl_Imaging_Pnglang_EPNGUnknownCompressionText 64996 -#define Vcl_Imaging_Pnglang_EPNGUnknownInterlaceText 64997 -#define Vcl_Imaging_Pnglang_EPNGCannotAssignChunkText 64998 -#define Vcl_Imaging_Pnglang_EPNGUnexpectedEndText 64999 -#define Vcl_Imaging_Pnglang_EPNGNoImageDataText 65000 -#define Vcl_Imaging_Pnglang_EPNGCannotAddChunkText 65001 -#define Vcl_Imaging_Pnglang_EPNGCannotAddInvalidImageText 65002 -#define Vcl_Imaging_Pnglang_EPNGCouldNotLoadResourceText 65003 -#define Vcl_Imaging_Pnglang_EPNGOutMemoryText 65004 -#define Vcl_Imaging_Pnglang_EPNGCannotChangeTransparentText 65005 -#define Vcl_Imaging_Pnglang_EPNGHeaderNotPresentText 65006 -#define Vcl_Imaging_Pnglang_EInvalidNewSize 65007 -#define Xml_Xmlconst_SNoAttributes 65008 -#define Xml_Xmlconst_SInvalidNodeType 65009 -#define Xml_Xmlconst_SMismatchedRegItems 65010 -#define Xml_Xmlconst_SNotSingleTextNode 65011 -#define Xml_Xmlconst_SNoDOMParseOptions 65012 -#define Xml_Xmlconst_SMissingItemTag 65013 -#define Xml_Xmlconst_SNodeReadOnly 65014 -#define Xml_Xmlconst_SNoRefresh 65015 -#define Xml_Xmlconst_SMissingFileName 65016 -#define Xml_Xmlconst_SLine 65017 -#define Vcl_Imaging_Pnglang_EPngInvalidCRCText 65018 -#define Vcl_Imaging_Pnglang_EPNGInvalidIHDRText 65019 -#define Vcl_Imaging_Pnglang_EPNGMissingMultipleIDATText 65020 -#define Vcl_Imaging_Pnglang_EPNGZLIBErrorText 65021 -#define Vcl_Imaging_Pnglang_EPNGInvalidPaletteText 65022 -#define Vcl_Imaging_Pnglang_EPNGInvalidFileHeaderText 65023 -#define Tb2consts_STBToolbarItemReinserted 65024 -#define Tb2consts_STBViewerNotFound 65025 -#define Tb2consts_STBChevronItemMoreButtonsHint 65026 -#define Tb2consts_STBDockParentNotAllowed 65027 -#define Tb2consts_STBDockCannotChangePosition 65028 -#define Tb2consts_STBToolwinNameNotSet 65029 -#define Tb2consts_STBToolwinDockedToNameNotSet 65030 -#define Xml_Xmlconst_SDuplicateRegistration 65031 -#define Xml_Xmlconst_SNoMatchingDOMVendor 65032 -#define Xml_Xmlconst_SNoDOMNodeEx 65033 -#define Xml_Xmlconst_SDOMNotSupported 65034 -#define Xml_Xmlconst_SNodeExpected 65035 -#define Xml_Xmlconst_SMSDOMNotInstalled 65036 -#define Xml_Xmlconst_SNotActive 65037 -#define Xml_Xmlconst_SNodeNotFound 65038 -#define Xml_Xmlconst_SMissingNode 65039 -#define Driveview_coFileOperatorTitle 65040 -#define Driveview_coInvalidDosChars 65041 -#define Driveview_Space 65042 -#define Driveview_16405 65043 -#define Fileoperator_SFileOperation 65044 -#define Iedriveinfo_ErrorInvalidDrive 65045 -#define Unixdirviewcolproperties_SUnixDirViewRightsCol 65046 -#define Unixdirviewcolproperties_SUnixDirViewOwnerCol 65047 -#define Unixdirviewcolproperties_SUnixDirViewGroupCol 65048 -#define Unixdirviewcolproperties_SUnixDirViewLinkTargetCol 65049 -#define Unixdirviewcolproperties_SUnixDirViewTypeCol 65050 -#define Dragdrop_MICopyStr 65051 -#define Dragdrop_MIMoveStr 65052 -#define Dragdrop_MILinkStr 65053 -#define Dragdrop_MIAbortStr 65054 -#define Tb2consts_STBToolbarIndexOutOfBounds 65055 -#define Customdirview_STextFileExt 65056 -#define Customdirview_STextFiles 65057 -#define Customdirview_STextDirectories 65058 -#define Customdirview_SParentDir 65059 -#define Customdirview_SIconUpdateThreadTerminationError 65060 -#define Customdirview_SDriveNotReady 65061 -#define Customdirview_SDirNotExists 65062 -#define Customdriveview_SDragDropError 65063 -#define Customunixdirview_SUnixDefaultRootName 65064 -#define Dirview_coFileOperatorTitle 65065 -#define Dirviewcolproperties_SDirViewNameCol 65066 -#define Dirviewcolproperties_SDirViewSizeCol 65067 -#define Dirviewcolproperties_SDirViewTypeCol 65068 -#define Dirviewcolproperties_SDirViewChangedCol 65069 -#define Dirviewcolproperties_SDirViewAttrCol 65070 -#define Dirviewcolproperties_SDirViewExtCol 65071 +#define Jclresources_RsIntelCacheDescrF1 64736 +#define Jclresources_RsIntelCacheDescrFF 64737 +#define Jclresources_RsOSVersionWin8 64738 +#define Jclresources_RsOSVersionWinServer2012 64739 +#define Jclresources_RsOSVersionWin81 64740 +#define Jclresources_RsOSVersionWinServer2012R2 64741 +#define Jclresources_RsWin32Error 64742 +#define Jclresources_RsELibraryNotFound 64743 +#define Jclresources_RsEFunctionNotFound 64744 +#define Ieconst_sNoPageLoaded 64745 +#define Ieconst_sNilProvider 64746 +#define Ieconst_sInvalidServiceProviderGUID 64747 +#define Ieconst_sClassSinkingError 64748 +#define Ieconst_sChildWindowsAlreadyHooked 64749 +#define Ieconst_sSaveCurrentFile 64750 +#define Jclresources_RsIntelCacheDescrD0 64752 +#define Jclresources_RsIntelCacheDescrD1 64753 +#define Jclresources_RsIntelCacheDescrD2 64754 +#define Jclresources_RsIntelCacheDescrD6 64755 +#define Jclresources_RsIntelCacheDescrD7 64756 +#define Jclresources_RsIntelCacheDescrD8 64757 +#define Jclresources_RsIntelCacheDescrDC 64758 +#define Jclresources_RsIntelCacheDescrDD 64759 +#define Jclresources_RsIntelCacheDescrDE 64760 +#define Jclresources_RsIntelCacheDescrE2 64761 +#define Jclresources_RsIntelCacheDescrE3 64762 +#define Jclresources_RsIntelCacheDescrE4 64763 +#define Jclresources_RsIntelCacheDescrEA 64764 +#define Jclresources_RsIntelCacheDescrEB 64765 +#define Jclresources_RsIntelCacheDescrEC 64766 +#define Jclresources_RsIntelCacheDescrF0 64767 +#define Jclresources_RsIntelCacheDescr7F 64768 +#define Jclresources_RsIntelCacheDescr80 64769 +#define Jclresources_RsIntelCacheDescr82 64770 +#define Jclresources_RsIntelCacheDescr83 64771 +#define Jclresources_RsIntelCacheDescr84 64772 +#define Jclresources_RsIntelCacheDescr85 64773 +#define Jclresources_RsIntelCacheDescr86 64774 +#define Jclresources_RsIntelCacheDescr87 64775 +#define Jclresources_RsIntelCacheDescrB0 64776 +#define Jclresources_RsIntelCacheDescrB1 64777 +#define Jclresources_RsIntelCacheDescrB2 64778 +#define Jclresources_RsIntelCacheDescrB3 64779 +#define Jclresources_RsIntelCacheDescrB4 64780 +#define Jclresources_RsIntelCacheDescrBA 64781 +#define Jclresources_RsIntelCacheDescrC0 64782 +#define Jclresources_RsIntelCacheDescrCA 64783 +#define Jclresources_RsIntelCacheDescr5D 64784 +#define Jclresources_RsIntelCacheDescr60 64785 +#define Jclresources_RsIntelCacheDescr66 64786 +#define Jclresources_RsIntelCacheDescr67 64787 +#define Jclresources_RsIntelCacheDescr68 64788 +#define Jclresources_RsIntelCacheDescr70 64789 +#define Jclresources_RsIntelCacheDescr71 64790 +#define Jclresources_RsIntelCacheDescr72 64791 +#define Jclresources_RsIntelCacheDescr73 64792 +#define Jclresources_RsIntelCacheDescr76 64793 +#define Jclresources_RsIntelCacheDescr78 64794 +#define Jclresources_RsIntelCacheDescr79 64795 +#define Jclresources_RsIntelCacheDescr7A 64796 +#define Jclresources_RsIntelCacheDescr7B 64797 +#define Jclresources_RsIntelCacheDescr7C 64798 +#define Jclresources_RsIntelCacheDescr7D 64799 +#define Jclresources_RsIntelCacheDescr4A 64800 +#define Jclresources_RsIntelCacheDescr4B 64801 +#define Jclresources_RsIntelCacheDescr4C 64802 +#define Jclresources_RsIntelCacheDescr4D 64803 +#define Jclresources_RsIntelCacheDescr4E 64804 +#define Jclresources_RsIntelCacheDescr4F 64805 +#define Jclresources_RsIntelCacheDescr50 64806 +#define Jclresources_RsIntelCacheDescr51 64807 +#define Jclresources_RsIntelCacheDescr52 64808 +#define Jclresources_RsIntelCacheDescr55 64809 +#define Jclresources_RsIntelCacheDescr56 64810 +#define Jclresources_RsIntelCacheDescr57 64811 +#define Jclresources_RsIntelCacheDescr59 64812 +#define Jclresources_RsIntelCacheDescr5A 64813 +#define Jclresources_RsIntelCacheDescr5B 64814 +#define Jclresources_RsIntelCacheDescr5C 64815 +#define Jclresources_RsIntelCacheDescr39 64816 +#define Jclresources_RsIntelCacheDescr3A 64817 +#define Jclresources_RsIntelCacheDescr3B 64818 +#define Jclresources_RsIntelCacheDescr3C 64819 +#define Jclresources_RsIntelCacheDescr3D 64820 +#define Jclresources_RsIntelCacheDescr3E 64821 +#define Jclresources_RsIntelCacheDescr40 64822 +#define Jclresources_RsIntelCacheDescr41 64823 +#define Jclresources_RsIntelCacheDescr42 64824 +#define Jclresources_RsIntelCacheDescr43 64825 +#define Jclresources_RsIntelCacheDescr44 64826 +#define Jclresources_RsIntelCacheDescr45 64827 +#define Jclresources_RsIntelCacheDescr46 64828 +#define Jclresources_RsIntelCacheDescr47 64829 +#define Jclresources_RsIntelCacheDescr48 64830 +#define Jclresources_RsIntelCacheDescr49 64831 +#define Jclresources_RsIntelCacheDescr05 64832 +#define Jclresources_RsIntelCacheDescr06 64833 +#define Jclresources_RsIntelCacheDescr08 64834 +#define Jclresources_RsIntelCacheDescr09 64835 +#define Jclresources_RsIntelCacheDescr0A 64836 +#define Jclresources_RsIntelCacheDescr0B 64837 +#define Jclresources_RsIntelCacheDescr0C 64838 +#define Jclresources_RsIntelCacheDescr0D 64839 +#define Jclresources_RsIntelCacheDescr0E 64840 +#define Jclresources_RsIntelCacheDescr21 64841 +#define Jclresources_RsIntelCacheDescr22 64842 +#define Jclresources_RsIntelCacheDescr23 64843 +#define Jclresources_RsIntelCacheDescr25 64844 +#define Jclresources_RsIntelCacheDescr29 64845 +#define Jclresources_RsIntelCacheDescr2C 64846 +#define Jclresources_RsIntelCacheDescr30 64847 +#define Jclresources_RsPePkgDesignOnly 64848 +#define Jclresources_RsPePkgRunOnly 64849 +#define Jclresources_RsPePkgIgnoreDupUnits 64850 +#define Jclresources_RsPePkgV3Produced 64851 +#define Jclresources_RsPePkgProducerUndefined 64852 +#define Jclresources_RsPePkgBCB4Produced 64853 +#define Jclresources_RsPePkgDelphi4Produced 64854 +#define Jclresources_RsPePkgMain 64855 +#define Jclresources_RsPePkgWeak 64856 +#define Jclresources_RsPePkgOrgWeak 64857 +#define Jclresources_RsPePkgImplicit 64858 +#define Jclresources_RsIntelCacheDescr00 64859 +#define Jclresources_RsIntelCacheDescr01 64860 +#define Jclresources_RsIntelCacheDescr02 64861 +#define Jclresources_RsIntelCacheDescr03 64862 +#define Jclresources_RsIntelCacheDescr04 64863 +#define Jclresources_RsPeSUBSYSTEM_OS2_CUI 64864 +#define Jclresources_RsPeSUBSYSTEM_POSIX_CUI 64865 +#define Jclresources_RsPeSUBSYSTEM_RESERVED8 64866 +#define Jclresources_RsPeDEBUG_UNKNOWN 64867 +#define Jclresources_RsPeDEBUG_COFF 64868 +#define Jclresources_RsPeDEBUG_CODEVIEW 64869 +#define Jclresources_RsPeDEBUG_FPO 64870 +#define Jclresources_RsPeDEBUG_MISC 64871 +#define Jclresources_RsPeDEBUG_EXCEPTION 64872 +#define Jclresources_RsPeDEBUG_FIXUP 64873 +#define Jclresources_RsPeDEBUG_OMAP_TO_SRC 64874 +#define Jclresources_RsPeDEBUG_OMAP_FROM_SRC 64875 +#define Jclresources_RsPePkgExecutable 64876 +#define Jclresources_RsPePkgPackage 64877 +#define Jclresources_PsPePkgLibrary 64878 +#define Jclresources_RsPePkgNeverBuild 64879 +#define Jclresources_RsPeMACHINE_POWERPCFP 64880 +#define Jclresources_RsPeMACHINE_IA64 64881 +#define Jclresources_RsPeMACHINE_MIPS16 64882 +#define Jclresources_RsPeMACHINE_AMPHA64 64883 +#define Jclresources_RsPeMACHINE_MIPSFPU 64884 +#define Jclresources_RsPeMACHINE_MIPSFPU16 64885 +#define Jclresources_RsPeMACHINE_TRICORE 64886 +#define Jclresources_RsPeMACHINE_CEF 64887 +#define Jclresources_RsPeMACHINE_EBC 64888 +#define Jclresources_RsPeMACHINE_AMD64 64889 +#define Jclresources_RsPeMACHINE_M32R 64890 +#define Jclresources_RsPeMACHINE_CEE 64891 +#define Jclresources_RsPeSUBSYSTEM_UNKNOWN 64892 +#define Jclresources_RsPeSUBSYSTEM_NATIVE 64893 +#define Jclresources_RsPeSUBSYSTEM_WINDOWS_GUI 64894 +#define Jclresources_RsPeSUBSYSTEM_WINDOWS_CUI 64895 +#define Jclresources_RsPeMACHINE_UNKNOWN 64896 +#define Jclresources_RsPeMACHINE_I386 64897 +#define Jclresources_RsPeMACHINE_R3000 64898 +#define Jclresources_RsPeMACHINE_R4000 64899 +#define Jclresources_RsPeMACHINE_R10000 64900 +#define Jclresources_RsPeMACHINE_WCEMIPSV2 64901 +#define Jclresources_RsPeMACHINE_ALPHA 64902 +#define Jclresources_RsPeMACHINE_SH3 64903 +#define Jclresources_RsPeMACHINE_SH3DSP 64904 +#define Jclresources_RsPeMACHINE_SH3E 64905 +#define Jclresources_RsPeMACHINE_SH4 64906 +#define Jclresources_RsPeMACHINE_SH5 64907 +#define Jclresources_RsPeMACHINE_ARM 64908 +#define Jclresources_RsPeMACHINE_THUMB 64909 +#define Jclresources_RsPeMACHINE_AM33 64910 +#define Jclresources_RsPeMACHINE_POWERPC 64911 +#define Jclresources_RsPeLoaderFlags 64912 +#define Jclresources_RsPeNumberOfRvaAndSizes 64913 +#define Jclresources_RsPeVersion 64914 +#define Jclresources_RsPeGlobalFlagsClear 64915 +#define Jclresources_RsPeGlobalFlagsSet 64916 +#define Jclresources_RsPeCriticalSectionDefaultTimeout 64917 +#define Jclresources_RsPeDeCommitFreeBlockThreshold 64918 +#define Jclresources_RsPeDeCommitTotalFreeThreshold 64919 +#define Jclresources_RsPeLockPrefixTable 64920 +#define Jclresources_RsPeMaximumAllocationSize 64921 +#define Jclresources_RsPeVirtualMemoryThreshold 64922 +#define Jclresources_RsPeProcessHeapFlags 64923 +#define Jclresources_RsPeProcessAffinityMask 64924 +#define Jclresources_RsPeCSDVersion 64925 +#define Jclresources_RsPeReserved 64926 +#define Jclresources_RsPeEditList 64927 +#define Jclresources_RsPeImageBase 64928 +#define Jclresources_RsPeSectionAlignment 64929 +#define Jclresources_RsPeFileAlignment 64930 +#define Jclresources_RsPeOperatingSystemVersion 64931 +#define Jclresources_RsPeImageVersion 64932 +#define Jclresources_RsPeSubsystemVersion 64933 +#define Jclresources_RsPeWin32VersionValue 64934 +#define Jclresources_RsPeSizeOfImage 64935 +#define Jclresources_RsPeSizeOfHeaders 64936 +#define Jclresources_RsPeCheckSum 64937 +#define Jclresources_RsPeSubsystem 64938 +#define Jclresources_RsPeDllCharacteristics 64939 +#define Jclresources_RsPeSizeOfStackReserve 64940 +#define Jclresources_RsPeSizeOfStackCommit 64941 +#define Jclresources_RsPeSizeOfHeapReserve 64942 +#define Jclresources_RsPeSizeOfHeapCommit 64943 +#define Jclresources_RsPeSignature 64944 +#define Jclresources_RsPeMachine 64945 +#define Jclresources_RsPeNumberOfSections 64946 +#define Jclresources_RsPeTimeDateStamp 64947 +#define Jclresources_RsPePointerToSymbolTable 64948 +#define Jclresources_RsPeNumberOfSymbols 64949 +#define Jclresources_RsPeSizeOfOptionalHeader 64950 +#define Jclresources_RsPeCharacteristics 64951 +#define Jclresources_RsPeMagic 64952 +#define Jclresources_RsPeLinkerVersion 64953 +#define Jclresources_RsPeSizeOfCode 64954 +#define Jclresources_RsPeSizeOfInitializedData 64955 +#define Jclresources_RsPeSizeOfUninitializedData 64956 +#define Jclresources_RsPeAddressOfEntryPoint 64957 +#define Jclresources_RsPeBaseOfCode 64958 +#define Jclresources_RsPeBaseOfData 64959 +#define Jclresources_RsPeImg_00 64960 +#define Jclresources_RsPeImg_01 64961 +#define Jclresources_RsPeImg_02 64962 +#define Jclresources_RsPeImg_03 64963 +#define Jclresources_RsPeImg_04 64964 +#define Jclresources_RsPeImg_05 64965 +#define Jclresources_RsPeImg_06 64966 +#define Jclresources_RsPeImg_07 64967 +#define Jclresources_RsPeImg_08 64968 +#define Jclresources_RsPeImg_09 64969 +#define Jclresources_RsPeImg_10 64970 +#define Jclresources_RsPeImg_11 64971 +#define Jclresources_RsPeImg_12 64972 +#define Jclresources_RsPeImg_13 64973 +#define Jclresources_RsPeImg_14 64974 +#define Jclresources_RsPeImg_Reserved 64975 +#define Jclresources_RsEModuleNotValid 64976 +#define Jclresources_RsFileUtilsNoVersionInfo 64977 +#define Jclresources_RsFileUtilsFileDoesNotExist 64978 +#define Jclresources_RsFileUtilsLanguageIndex 64979 +#define Jclresources_RsFileUtilsEmptyValue 64980 +#define Jclresources_RsFileUtilsValueNotFound 64981 +#define Jclresources_RsCreateFileMapping 64982 +#define Jclresources_RsCreateFileMappingView 64983 +#define Jclresources_RsFailedToObtainSize 64984 +#define Jclresources_RsPeReadOnlyStream 64985 +#define Jclresources_RsPeCantOpen 64986 +#define Jclresources_RsPeNotPE 64987 +#define Jclresources_RsPeUnknownTarget 64988 +#define Jclresources_RsPeNotResDir 64989 +#define Jclresources_RsPeNotAvailableForAttached 64990 +#define Jclresources_RsPeSectionNotFound 64991 +#define Vcl_Imaging_Pnglang_EPNGUnknownInterlaceText 64992 +#define Vcl_Imaging_Pnglang_EPNGCannotAssignChunkText 64993 +#define Vcl_Imaging_Pnglang_EPNGUnexpectedEndText 64994 +#define Vcl_Imaging_Pnglang_EPNGNoImageDataText 64995 +#define Vcl_Imaging_Pnglang_EPNGCannotAddChunkText 64996 +#define Vcl_Imaging_Pnglang_EPNGCannotAddInvalidImageText 64997 +#define Vcl_Imaging_Pnglang_EPNGCouldNotLoadResourceText 64998 +#define Vcl_Imaging_Pnglang_EPNGOutMemoryText 64999 +#define Vcl_Imaging_Pnglang_EPNGCannotChangeTransparentText 65000 +#define Vcl_Imaging_Pnglang_EPNGHeaderNotPresentText 65001 +#define Vcl_Imaging_Pnglang_EInvalidNewSize 65002 +#define Vcl_Imaging_Pnglang_EInvalidSpec 65003 +#define Jclresources_RsEReplacementChar 65004 +#define Jclresources_RsEWindowsVersionNotSupported 65005 +#define Jclresources_RsEWindowNotValid 65006 +#define Jclresources_RsEProcessNotValid 65007 +#define Xml_Xmlconst_SMissingItemTag 65008 +#define Xml_Xmlconst_SNodeReadOnly 65009 +#define Xml_Xmlconst_SNoRefresh 65010 +#define Xml_Xmlconst_SMissingFileName 65011 +#define Xml_Xmlconst_SLine 65012 +#define Vcl_Imaging_Pnglang_EPngInvalidCRCText 65013 +#define Vcl_Imaging_Pnglang_EPNGInvalidIHDRText 65014 +#define Vcl_Imaging_Pnglang_EPNGMissingMultipleIDATText 65015 +#define Vcl_Imaging_Pnglang_EPNGZLIBErrorText 65016 +#define Vcl_Imaging_Pnglang_EPNGInvalidPaletteText 65017 +#define Vcl_Imaging_Pnglang_EPNGInvalidFileHeaderText 65018 +#define Vcl_Imaging_Pnglang_EPNGIHDRNotFirstText 65019 +#define Vcl_Imaging_Pnglang_EPNGSizeExceedsText 65020 +#define Vcl_Imaging_Pnglang_EPNGUnknownPalEntryText 65021 +#define Vcl_Imaging_Pnglang_EPNGUnknownCriticalChunkText 65022 +#define Vcl_Imaging_Pnglang_EPNGUnknownCompressionText 65023 +#define Tb2consts_STBToolwinNameNotSet 65024 +#define Tb2consts_STBToolwinDockedToNameNotSet 65025 +#define Xml_Xmlconst_SDuplicateRegistration 65026 +#define Xml_Xmlconst_SNoMatchingDOMVendor 65027 +#define Xml_Xmlconst_SNoDOMNodeEx 65028 +#define Xml_Xmlconst_SDOMNotSupported 65029 +#define Xml_Xmlconst_SNodeExpected 65030 +#define Xml_Xmlconst_SMSDOMNotInstalled 65031 +#define Xml_Xmlconst_SNotActive 65032 +#define Xml_Xmlconst_SNodeNotFound 65033 +#define Xml_Xmlconst_SMissingNode 65034 +#define Xml_Xmlconst_SNoAttributes 65035 +#define Xml_Xmlconst_SInvalidNodeType 65036 +#define Xml_Xmlconst_SMismatchedRegItems 65037 +#define Xml_Xmlconst_SNotSingleTextNode 65038 +#define Xml_Xmlconst_SNoDOMParseOptions 65039 +#define Iedriveinfo_ErrorInvalidDrive 65040 +#define Unixdirviewcolproperties_SUnixDirViewRightsCol 65041 +#define Unixdirviewcolproperties_SUnixDirViewOwnerCol 65042 +#define Unixdirviewcolproperties_SUnixDirViewGroupCol 65043 +#define Unixdirviewcolproperties_SUnixDirViewLinkTargetCol 65044 +#define Unixdirviewcolproperties_SUnixDirViewTypeCol 65045 +#define Dragdrop_MICopyStr 65046 +#define Dragdrop_MIMoveStr 65047 +#define Dragdrop_MILinkStr 65048 +#define Dragdrop_MIAbortStr 65049 +#define Tb2consts_STBToolbarIndexOutOfBounds 65050 +#define Tb2consts_STBToolbarItemReinserted 65051 +#define Tb2consts_STBViewerNotFound 65052 +#define Tb2consts_STBChevronItemMoreButtonsHint 65053 +#define Tb2consts_STBDockParentNotAllowed 65054 +#define Tb2consts_STBDockCannotChangePosition 65055 +#define Customdirview_SDriveNotReady 65056 +#define Customdirview_SDirNotExists 65057 +#define Customdriveview_SDragDropError 65058 +#define Customunixdirview_SUnixDefaultRootName 65059 +#define Dirview_coFileOperatorTitle 65060 +#define Dirviewcolproperties_SDirViewNameCol 65061 +#define Dirviewcolproperties_SDirViewSizeCol 65062 +#define Dirviewcolproperties_SDirViewTypeCol 65063 +#define Dirviewcolproperties_SDirViewChangedCol 65064 +#define Dirviewcolproperties_SDirViewAttrCol 65065 +#define Dirviewcolproperties_SDirViewExtCol 65066 +#define Driveview_coFileOperatorTitle 65067 +#define Driveview_coInvalidDosChars 65068 +#define Driveview_Space 65069 +#define Driveview_16405 65070 +#define Fileoperator_SFileOperation 65071 #define Comboedit_SDefaultFilter 65072 #define Comboedit_SInvalidFileName 65073 -#define Tcpip_SSocketError2 65074 -#define Tcpip_STimeout 65075 -#define Tcpip_SUnknownSockError 65076 -#define Tcpip_SHttpError 65077 -#define Tcpip_SRedirectLimitError 65078 -#define Baseutils_SNoValidPath 65079 -#define Baseutils_SUcpPathsNotSupported 65080 -#define Baseutils_SByte 65081 -#define Baseutils_SKiloByte 65082 -#define Baseutils_SMegaByte 65083 -#define Baseutils_SGigaByte 65084 -#define Customdirview_SErrorRenameFile 65085 -#define Customdirview_SErrorRenameFileExists 65086 -#define Customdirview_SErrorInvalidName 65087 +#define Baseutils_SNoValidPath 65074 +#define Baseutils_SUcpPathsNotSupported 65075 +#define Baseutils_SByte 65076 +#define Baseutils_SKiloByte 65077 +#define Baseutils_SMegaByte 65078 +#define Baseutils_SGigaByte 65079 +#define Customdirview_SErrorRenameFile 65080 +#define Customdirview_SErrorRenameFileExists 65081 +#define Customdirview_SErrorInvalidName 65082 +#define Customdirview_STextFileExt 65083 +#define Customdirview_STextFiles 65084 +#define Customdirview_STextDirectories 65085 +#define Customdirview_SParentDir 65086 +#define Customdirview_SIconUpdateThreadTerminationError 65087 #define System_Sysconst_SLongDayNameTue 65088 #define System_Sysconst_SLongDayNameWed 65089 #define System_Sysconst_SLongDayNameThu 65090 @@ -811,15 +808,10 @@ #define Vcl_Consts_SInvalidTextFormatFlag 65535 STRINGTABLE BEGIN - Ieconst_sChildWindowsAlreadyHooked, "Attempting to hook child windows twice" - Ieconst_sSaveCurrentFile, "Save the current file?" - Jclresources_RsIntelCacheDescrE4, "3rd-level cache: 8 MByte, 16-way set associative, 64 byte line size" - Jclresources_RsIntelCacheDescrEA, "3rd-level cache: 12 MByte, 24-way set associative, 64 byte line size" - Jclresources_RsIntelCacheDescrEB, "3rd-level cache: 18 MByte, 24-way set associative, 64 byte line size" - Jclresources_RsIntelCacheDescrEC, "3rd-level cache: 24 MByte, 24-way set associative, 64 byte line size" - Jclresources_RsIntelCacheDescrF0, "64-Byte Prefetching" Jclresources_RsIntelCacheDescrF1, "128-Byte Prefetching" Jclresources_RsIntelCacheDescrFF, "CPUID leaf 2 does not report cache descriptor information, use CPUID leaf 4 to query cache parameters" + Jclresources_RsOSVersionWin8, "Windows 8" + Jclresources_RsOSVersionWinServer2012, "Windows Server 2012" Jclresources_RsOSVersionWin81, "Windows 8.1" Jclresources_RsOSVersionWinServer2012R2, "Windows Server 2012 R2" Jclresources_RsWin32Error, "Win32 error: %s (%u)%s%s" @@ -829,11 +821,8 @@ BEGIN Ieconst_sNilProvider, "Cannot register a nil provider" Ieconst_sInvalidServiceProviderGUID, "Invalid service provider GUID" Ieconst_sClassSinkingError, "%s only supports sinking of method calls!" - Jclresources_RsIntelCacheDescrB3, "Data TLB: 4 KByte pages, 4-way set associative, 128 entries" - Jclresources_RsIntelCacheDescrB4, "Data TLB1: 4 KByte pages, 4-way set associative, 256 entries" - Jclresources_RsIntelCacheDescrBA, "Data TLB1: 4 KByte pages, 4-way set associative, 64 entries" - Jclresources_RsIntelCacheDescrC0, "Data TLB: 4 KByte and 4 MByte pages, 4-way set associative, 8 entries" - Jclresources_RsIntelCacheDescrCA, "Shared 2nd-Level TLB: 4 KByte pages, 4-way associative, 512 entries" + Ieconst_sChildWindowsAlreadyHooked, "Attempting to hook child windows twice" + Ieconst_sSaveCurrentFile, "Save the current file?" Jclresources_RsIntelCacheDescrD0, "3rd-level cache: 512 KByte, 4-way set associative, 64 byte line size" Jclresources_RsIntelCacheDescrD1, "3rd-level cache: 1 MByte, 4-way set associative, 64 byte line size" Jclresources_RsIntelCacheDescrD2, "3rd-level cache: 2 MByte, 4-way set associative, 64 byte line size" @@ -845,11 +834,11 @@ BEGIN Jclresources_RsIntelCacheDescrDE, "3rd-level cache: 6 MByte, 12-way set associative, 64 byte line size" Jclresources_RsIntelCacheDescrE2, "3rd-level cache: 2 MByte, 16-way set associative, 64 byte line size" Jclresources_RsIntelCacheDescrE3, "3rd-level cache: 4 MByte, 16-way set associative, 64 byte line size" - Jclresources_RsIntelCacheDescr79, "2nd-level cache: 128 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" - Jclresources_RsIntelCacheDescr7A, "2nd-level cache: 256 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" - Jclresources_RsIntelCacheDescr7B, "2nd-level cache: 512 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" - Jclresources_RsIntelCacheDescr7C, "2nd-level cache: 1 MBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" - Jclresources_RsIntelCacheDescr7D, "2nd-level cache: 2 MBytes, 8-way set associative, 64 byte line size" + Jclresources_RsIntelCacheDescrE4, "3rd-level cache: 8 MByte, 16-way set associative, 64 byte line size" + Jclresources_RsIntelCacheDescrEA, "3rd-level cache: 12 MByte, 24-way set associative, 64 byte line size" + Jclresources_RsIntelCacheDescrEB, "3rd-level cache: 18 MByte, 24-way set associative, 64 byte line size" + Jclresources_RsIntelCacheDescrEC, "3rd-level cache: 24 MByte, 24-way set associative, 64 byte line size" + Jclresources_RsIntelCacheDescrF0, "64-Byte Prefetching" Jclresources_RsIntelCacheDescr7F, "2nd-level cache: 512 KBytes, 2-way set associative, 64 byte line size" Jclresources_RsIntelCacheDescr80, "2nd-level cache: 512 KBytes, 8-way set associative, 64 byte line size" Jclresources_RsIntelCacheDescr82, "2nd-level cache: 256 KBytes, 8-way associative, 32 byte line size" @@ -861,11 +850,11 @@ BEGIN Jclresources_RsIntelCacheDescrB0, "Instruction TLB: 4 KByte pages, 4-way set associative, 128 entries" Jclresources_RsIntelCacheDescrB1, "Instruction TLB: 2 MByte pages, 4-way, 8 entries or 4 MByte pages, 4-way, 4 entries" Jclresources_RsIntelCacheDescrB2, "Instruction TLB: 4 KByte pages, 4-way set associative, 64 entries" - Jclresources_RsIntelCacheDescr57, "Data TLB0: 4 KByte pages, 4-way associative, 16 entries" - Jclresources_RsIntelCacheDescr59, "Data TLB0: 4 KByte pages, fully associative, 16 entries" - Jclresources_RsIntelCacheDescr5A, "Data TLB0: 2 MByte or 4 MByte pages, 4-way set associative, 32 entries" - Jclresources_RsIntelCacheDescr5B, "Data TLB: 4 KByte and 4 MByte pages, 64 Entries" - Jclresources_RsIntelCacheDescr5C, "Data TLB: 4 KByte and 4 MByte pages, 128 Entries" + Jclresources_RsIntelCacheDescrB3, "Data TLB: 4 KByte pages, 4-way set associative, 128 entries" + Jclresources_RsIntelCacheDescrB4, "Data TLB1: 4 KByte pages, 4-way set associative, 256 entries" + Jclresources_RsIntelCacheDescrBA, "Data TLB1: 4 KByte pages, 4-way set associative, 64 entries" + Jclresources_RsIntelCacheDescrC0, "Data TLB: 4 KByte and 4 MByte pages, 4-way set associative, 8 entries" + Jclresources_RsIntelCacheDescrCA, "Shared 2nd-Level TLB: 4 KByte pages, 4-way associative, 512 entries" Jclresources_RsIntelCacheDescr5D, "Data TLB: 4 KByte and 4 MByte pages, 256 Entries" Jclresources_RsIntelCacheDescr60, "1st-level data cache: 16 KByte, 8-way set associative, 64 byte line size" Jclresources_RsIntelCacheDescr66, "1st-level data cache: 8 KBytes, 4-way set associative, 64 byte line size" @@ -877,11 +866,11 @@ BEGIN Jclresources_RsIntelCacheDescr73, "Trace cache: 64 K-Ops, 8-way set associative" Jclresources_RsIntelCacheDescr76, "Instruction TLB: 2M/4M pages, fully associative, 8 entries" Jclresources_RsIntelCacheDescr78, "2nd-level cache: 1 MBytes, 4-way set associative, 64 bytes line size" - Jclresources_RsIntelCacheDescr45, "2nd-level cache: 2 MBytes, 4-way set associative, 32 byte line size" - Jclresources_RsIntelCacheDescr46, "3rd-level cache: 4 MBytes, 4-way set associative, 64 byte line size" - Jclresources_RsIntelCacheDescr47, "3rd-level cache: 8 MBytes, 4-way set associative, 64 byte line size" - Jclresources_RsIntelCacheDescr48, "3rd-level cache: 8 MByte, 8-way set associative, 64 byte line size" - Jclresources_RsIntelCacheDescr49, "2nd-level cache: 4 MBytes, 16-way set associative, 64 byte line size" + Jclresources_RsIntelCacheDescr79, "2nd-level cache: 128 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + Jclresources_RsIntelCacheDescr7A, "2nd-level cache: 256 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + Jclresources_RsIntelCacheDescr7B, "2nd-level cache: 512 KBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + Jclresources_RsIntelCacheDescr7C, "2nd-level cache: 1 MBytes, 8-way set associative, 64 bytes line size, 2 lines per sector" + Jclresources_RsIntelCacheDescr7D, "2nd-level cache: 2 MBytes, 8-way set associative, 64 byte line size" Jclresources_RsIntelCacheDescr4A, "3rd-level cache: 6MByte, 12-way set associative, 64 byte line size" Jclresources_RsIntelCacheDescr4B, "3rd-level cache: 8MByte, 16-way set associative, 64 byte line size" Jclresources_RsIntelCacheDescr4C, "3rd-level cache: 12MByte, 12-way set associative, 64 byte line size" @@ -893,11 +882,11 @@ BEGIN Jclresources_RsIntelCacheDescr52, "Instruction TLB: 4 KByte and 2 MByte or 4 MByte pages, 256 Entries" Jclresources_RsIntelCacheDescr55, "Instruction TLB: 2-MByte or 4-MByte pages, fully associative, 7 entries" Jclresources_RsIntelCacheDescr56, "Data TLB0: 4 MByte pages, 4-way set associative, 16 entries" - Jclresources_RsIntelCacheDescr23, "3rd level cache: 1 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" - Jclresources_RsIntelCacheDescr25, "3rd level cache: 2 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" - Jclresources_RsIntelCacheDescr29, "3rd level cache: 4 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" - Jclresources_RsIntelCacheDescr2C, "1st level data cache: 32 KBytes, 8-way set associative, 64 byte line size" - Jclresources_RsIntelCacheDescr30, "1st level instruction cache: 32 KBytes, 8-way set associative, 64 byte line size" + Jclresources_RsIntelCacheDescr57, "Data TLB0: 4 KByte pages, 4-way associative, 16 entries" + Jclresources_RsIntelCacheDescr59, "Data TLB0: 4 KByte pages, fully associative, 16 entries" + Jclresources_RsIntelCacheDescr5A, "Data TLB0: 2 MByte or 4 MByte pages, 4-way set associative, 32 entries" + Jclresources_RsIntelCacheDescr5B, "Data TLB: 4 KByte and 4 MByte pages, 64 Entries" + Jclresources_RsIntelCacheDescr5C, "Data TLB: 4 KByte and 4 MByte pages, 128 Entries" Jclresources_RsIntelCacheDescr39, "2nd-level cache: 128 KBytes, 4-way set associative, sectored cache, 64-byte line size" Jclresources_RsIntelCacheDescr3A, "2nd-level cache: 192 KBytes, 6-way set associative, sectored cache, 64-byte line size" Jclresources_RsIntelCacheDescr3B, "2nd-level cache: 128 KBytes, 2-way set associative, sectored cache, 64-byte line size" @@ -909,11 +898,11 @@ BEGIN Jclresources_RsIntelCacheDescr42, "2nd-level cache: 256 KBytes, 4-way set associative, 32 byte line size" Jclresources_RsIntelCacheDescr43, "2nd-level cache: 512 KBytes, 4-way set associative, 32 byte line size" Jclresources_RsIntelCacheDescr44, "2nd-level cache: 1 MBytes, 4-way set associative, 32 byte line size" - Jclresources_RsIntelCacheDescr00, "Null descriptor" - Jclresources_RsIntelCacheDescr01, "Instruction TLB: 4 KByte pages, 4-way set associative, 32 entries" - Jclresources_RsIntelCacheDescr02, "Instruction TLB: 4 MByte pages, 4-way set associative, 2 entries" - Jclresources_RsIntelCacheDescr03, "Data TLB: 4 KByte pages, 4-way set associative, 64 entries" - Jclresources_RsIntelCacheDescr04, "Data TLB: 4 MByte pages, 4-way set associative, 8 entries" + Jclresources_RsIntelCacheDescr45, "2nd-level cache: 2 MBytes, 4-way set associative, 32 byte line size" + Jclresources_RsIntelCacheDescr46, "3rd-level cache: 4 MBytes, 4-way set associative, 64 byte line size" + Jclresources_RsIntelCacheDescr47, "3rd-level cache: 8 MBytes, 4-way set associative, 64 byte line size" + Jclresources_RsIntelCacheDescr48, "3rd-level cache: 8 MByte, 8-way set associative, 64 byte line size" + Jclresources_RsIntelCacheDescr49, "2nd-level cache: 4 MBytes, 16-way set associative, 64 byte line size" Jclresources_RsIntelCacheDescr05, "Data TLB1: 4 MByte pages, 4-way set associative, 32 entries" Jclresources_RsIntelCacheDescr06, "1st level instruction cache: 8 KBytes, 4-way set associative, 32 byte line size" Jclresources_RsIntelCacheDescr08, "1st level instruction cache: 16 KBytes, 4-way set associative, 32 byte line size" @@ -925,11 +914,11 @@ BEGIN Jclresources_RsIntelCacheDescr0E, "1st level data cache: 24 KBytes, 6-way set associative, 64 byte line size" Jclresources_RsIntelCacheDescr21, "2nd level cache: 256 KBytes, 8-way set associative, 64 byte line size" Jclresources_RsIntelCacheDescr22, "3rd level cache: 512 KBytes, 4-way set associative, 64 byte line size, 2 lines per sector" - Jclresources_RsPeDEBUG_OMAP_FROM_SRC, "OMAP_FROM_SRC" - Jclresources_RsPePkgExecutable, "Executable" - Jclresources_RsPePkgPackage, "Package" - Jclresources_PsPePkgLibrary, "Library" - Jclresources_RsPePkgNeverBuild, "NeverBuild" + Jclresources_RsIntelCacheDescr23, "3rd level cache: 1 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" + Jclresources_RsIntelCacheDescr25, "3rd level cache: 2 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" + Jclresources_RsIntelCacheDescr29, "3rd level cache: 4 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector" + Jclresources_RsIntelCacheDescr2C, "1st level data cache: 32 KBytes, 8-way set associative, 64 byte line size" + Jclresources_RsIntelCacheDescr30, "1st level instruction cache: 32 KBytes, 8-way set associative, 64 byte line size" Jclresources_RsPePkgDesignOnly, "DesignOnly" Jclresources_RsPePkgRunOnly, "RunOnly" Jclresources_RsPePkgIgnoreDupUnits, "IgnoreDupUnits" @@ -941,11 +930,11 @@ BEGIN Jclresources_RsPePkgWeak, "Weak" Jclresources_RsPePkgOrgWeak, "OrgWeak" Jclresources_RsPePkgImplicit, "Implicit" - Jclresources_RsPeMACHINE_CEE, "CEE" - Jclresources_RsPeSUBSYSTEM_UNKNOWN, "Unknown" - Jclresources_RsPeSUBSYSTEM_NATIVE, "Native" - Jclresources_RsPeSUBSYSTEM_WINDOWS_GUI, "GUI" - Jclresources_RsPeSUBSYSTEM_WINDOWS_CUI, "Console" + Jclresources_RsIntelCacheDescr00, "Null descriptor" + Jclresources_RsIntelCacheDescr01, "Instruction TLB: 4 KByte pages, 4-way set associative, 32 entries" + Jclresources_RsIntelCacheDescr02, "Instruction TLB: 4 MByte pages, 4-way set associative, 2 entries" + Jclresources_RsIntelCacheDescr03, "Data TLB: 4 KByte pages, 4-way set associative, 64 entries" + Jclresources_RsIntelCacheDescr04, "Data TLB: 4 MByte pages, 4-way set associative, 8 entries" Jclresources_RsPeSUBSYSTEM_OS2_CUI, "OS/2" Jclresources_RsPeSUBSYSTEM_POSIX_CUI, "Posix" Jclresources_RsPeSUBSYSTEM_RESERVED8, "Reserved 8" @@ -957,11 +946,11 @@ BEGIN Jclresources_RsPeDEBUG_EXCEPTION, "EXCEPTION" Jclresources_RsPeDEBUG_FIXUP, "FIXUP" Jclresources_RsPeDEBUG_OMAP_TO_SRC, "OMAP_TO_SRC" - Jclresources_RsPeMACHINE_SH5, "SH5" - Jclresources_RsPeMACHINE_ARM, "ARM Little-Endian" - Jclresources_RsPeMACHINE_THUMB, "THUMB" - Jclresources_RsPeMACHINE_AM33, "AM33" - Jclresources_RsPeMACHINE_POWERPC, "IBM PowerPC Little-Endian" + Jclresources_RsPeDEBUG_OMAP_FROM_SRC, "OMAP_FROM_SRC" + Jclresources_RsPePkgExecutable, "Executable" + Jclresources_RsPePkgPackage, "Package" + Jclresources_PsPePkgLibrary, "Library" + Jclresources_RsPePkgNeverBuild, "NeverBuild" Jclresources_RsPeMACHINE_POWERPCFP, "IBM PowerPC FP" Jclresources_RsPeMACHINE_IA64, "Intel 64" Jclresources_RsPeMACHINE_MIPS16, "MIPS16" @@ -973,11 +962,11 @@ BEGIN Jclresources_RsPeMACHINE_EBC, "EFI Byte Code" Jclresources_RsPeMACHINE_AMD64, "AMD64 (K8)" Jclresources_RsPeMACHINE_M32R, "M32R little-endian" - Jclresources_RsPeProcessHeapFlags, "ProcessHeapFlags" - Jclresources_RsPeProcessAffinityMask, "ProcessAffinityMask" - Jclresources_RsPeCSDVersion, "CSDVersion" - Jclresources_RsPeReserved, "Reserved" - Jclresources_RsPeEditList, "EditList" + Jclresources_RsPeMACHINE_CEE, "CEE" + Jclresources_RsPeSUBSYSTEM_UNKNOWN, "Unknown" + Jclresources_RsPeSUBSYSTEM_NATIVE, "Native" + Jclresources_RsPeSUBSYSTEM_WINDOWS_GUI, "GUI" + Jclresources_RsPeSUBSYSTEM_WINDOWS_CUI, "Console" Jclresources_RsPeMACHINE_UNKNOWN, "Unknown" Jclresources_RsPeMACHINE_I386, "Intel 386" Jclresources_RsPeMACHINE_R3000, "MIPS little-endian R3000" @@ -989,11 +978,11 @@ BEGIN Jclresources_RsPeMACHINE_SH3DSP, "SH3 DSP" Jclresources_RsPeMACHINE_SH3E, "SH3E little-endian" Jclresources_RsPeMACHINE_SH4, "SH4 little-endian" - Jclresources_RsPeDllCharacteristics, "Dll Characteristics" - Jclresources_RsPeSizeOfStackReserve, "Size of Stack Reserve" - Jclresources_RsPeSizeOfStackCommit, "Size of Stack Commit" - Jclresources_RsPeSizeOfHeapReserve, "Size of Heap Reserve" - Jclresources_RsPeSizeOfHeapCommit, "Size of Heap Commit" + Jclresources_RsPeMACHINE_SH5, "SH5" + Jclresources_RsPeMACHINE_ARM, "ARM Little-Endian" + Jclresources_RsPeMACHINE_THUMB, "THUMB" + Jclresources_RsPeMACHINE_AM33, "AM33" + Jclresources_RsPeMACHINE_POWERPC, "IBM PowerPC Little-Endian" Jclresources_RsPeLoaderFlags, "Loader Flags" Jclresources_RsPeNumberOfRvaAndSizes, "Number of RVA" Jclresources_RsPeVersion, "Version" @@ -1005,11 +994,11 @@ BEGIN Jclresources_RsPeLockPrefixTable, "LockPrefixTable" Jclresources_RsPeMaximumAllocationSize, "MaximumAllocationSize" Jclresources_RsPeVirtualMemoryThreshold, "VirtualMemoryThreshold" - Jclresources_RsPeSizeOfInitializedData, "Size of Initialized Data" - Jclresources_RsPeSizeOfUninitializedData, "Size of Uninitialized Data" - Jclresources_RsPeAddressOfEntryPoint, "Address of Entry Point" - Jclresources_RsPeBaseOfCode, "Base of Code" - Jclresources_RsPeBaseOfData, "Base of Data" + Jclresources_RsPeProcessHeapFlags, "ProcessHeapFlags" + Jclresources_RsPeProcessAffinityMask, "ProcessAffinityMask" + Jclresources_RsPeCSDVersion, "CSDVersion" + Jclresources_RsPeReserved, "Reserved" + Jclresources_RsPeEditList, "EditList" Jclresources_RsPeImageBase, "Image Base" Jclresources_RsPeSectionAlignment, "Section Alignment" Jclresources_RsPeFileAlignment, "File Alignment" @@ -1021,11 +1010,11 @@ BEGIN Jclresources_RsPeSizeOfHeaders, "Size of Headers" Jclresources_RsPeCheckSum, "CheckSum" Jclresources_RsPeSubsystem, "Subsystem" - Jclresources_RsPeImg_11, "Bound Import" - Jclresources_RsPeImg_12, "IAT" - Jclresources_RsPeImg_13, "Delay load import" - Jclresources_RsPeImg_14, "COM run-time" - Jclresources_RsPeImg_Reserved, "reserved [%.2d]" + Jclresources_RsPeDllCharacteristics, "Dll Characteristics" + Jclresources_RsPeSizeOfStackReserve, "Size of Stack Reserve" + Jclresources_RsPeSizeOfStackCommit, "Size of Stack Commit" + Jclresources_RsPeSizeOfHeapReserve, "Size of Heap Reserve" + Jclresources_RsPeSizeOfHeapCommit, "Size of Heap Commit" Jclresources_RsPeSignature, "Signature" Jclresources_RsPeMachine, "Machine" Jclresources_RsPeNumberOfSections, "Number of Sections" @@ -1037,11 +1026,11 @@ BEGIN Jclresources_RsPeMagic, "Magic" Jclresources_RsPeLinkerVersion, "Linker Version" Jclresources_RsPeSizeOfCode, "Size of Code" - Jclresources_RsPeNotPE, "This is not a PE format" - Jclresources_RsPeUnknownTarget, "Unknown PE target" - Jclresources_RsPeNotResDir, "Not a resource directory" - Jclresources_RsPeNotAvailableForAttached, "Feature is not available for attached images" - Jclresources_RsPeSectionNotFound, "Section \"%s\" not found" + Jclresources_RsPeSizeOfInitializedData, "Size of Initialized Data" + Jclresources_RsPeSizeOfUninitializedData, "Size of Uninitialized Data" + Jclresources_RsPeAddressOfEntryPoint, "Address of Entry Point" + Jclresources_RsPeBaseOfCode, "Base of Code" + Jclresources_RsPeBaseOfData, "Base of Data" Jclresources_RsPeImg_00, "Exports" Jclresources_RsPeImg_01, "Imports" Jclresources_RsPeImg_02, "Resources" @@ -1053,11 +1042,11 @@ BEGIN Jclresources_RsPeImg_08, "Machine Value" Jclresources_RsPeImg_09, "TLS" Jclresources_RsPeImg_10, "Load configuration" - Vcl_Imaging_Pnglang_EInvalidSpec, "The \"Portable Network Graphics\" could not be created because invalid image type parameters have being provided." - Jclresources_RsEReplacementChar, "Failed to get ANSI replacement character" - Jclresources_RsEWindowsVersionNotSupported, "This windows version is not supported" - Jclresources_RsEWindowNotValid, "The window with handle %d is not valid" - Jclresources_RsEProcessNotValid, "The process with ID %d is not valid" + Jclresources_RsPeImg_11, "Bound Import" + Jclresources_RsPeImg_12, "IAT" + Jclresources_RsPeImg_13, "Delay load import" + Jclresources_RsPeImg_14, "COM run-time" + Jclresources_RsPeImg_Reserved, "reserved [%.2d]" Jclresources_RsEModuleNotValid, "The Module with handle %d is not valid" Jclresources_RsFileUtilsNoVersionInfo, "File contains no version information" Jclresources_RsFileUtilsFileDoesNotExist, "The file %s does not exist" @@ -1069,11 +1058,11 @@ BEGIN Jclresources_RsFailedToObtainSize, "Failed to obtain size of file" Jclresources_RsPeReadOnlyStream, "Stream is read-only" Jclresources_RsPeCantOpen, "Cannot open file \"%s\"" - Vcl_Imaging_Pnglang_EPNGIHDRNotFirstText, "This \"Portable Network Graphics\" image is not supported or it might be invalid.\r\n(IHDR chunk is not the first)" - Vcl_Imaging_Pnglang_EPNGSizeExceedsText, "This \"Portable Network Graphics\" image is not supported because either its width or height exceeds the maximum size of 65535 pixels." - Vcl_Imaging_Pnglang_EPNGUnknownPalEntryText, "There is no such palette entry." - Vcl_Imaging_Pnglang_EPNGUnknownCriticalChunkText, "This \"Portable Network Graphics\" image contains an unknown critical part which could not be decoded." - Vcl_Imaging_Pnglang_EPNGUnknownCompressionText, "This \"Portable Network Graphics\" image is encoded with an unknown compression scheme which could not be decoded." + Jclresources_RsPeNotPE, "This is not a PE format" + Jclresources_RsPeUnknownTarget, "Unknown PE target" + Jclresources_RsPeNotResDir, "Not a resource directory" + Jclresources_RsPeNotAvailableForAttached, "Feature is not available for attached images" + Jclresources_RsPeSectionNotFound, "Section \"%s\" not found" Vcl_Imaging_Pnglang_EPNGUnknownInterlaceText, "This \"Portable Network Graphics\" image uses an unknown interlace scheme which could not be decoded." Vcl_Imaging_Pnglang_EPNGCannotAssignChunkText, "The chunks must be compatible to be assigned." Vcl_Imaging_Pnglang_EPNGUnexpectedEndText, "This \"Portable Network Graphics\" image is invalid because the decoder found an unexpected end of the file." @@ -1085,11 +1074,11 @@ BEGIN Vcl_Imaging_Pnglang_EPNGCannotChangeTransparentText, "Setting bit transparency color is not allowed for png images containing alpha value for each pixel (COLOR_RGBALPHA and COLOR_GRAYSCALEALPHA)" Vcl_Imaging_Pnglang_EPNGHeaderNotPresentText, "This operation is not valid because the current image contains no valid header." Vcl_Imaging_Pnglang_EInvalidNewSize, "The new size provided for image resizing is invalid." - Xml_Xmlconst_SNoAttributes, "Attributes are not supported on this node type" - Xml_Xmlconst_SInvalidNodeType, "Invalid node type" - Xml_Xmlconst_SMismatchedRegItems, "Mismatched paramaters to RegisterChildNodes" - Xml_Xmlconst_SNotSingleTextNode, "Element \"%s\" does not contain a single text node" - Xml_Xmlconst_SNoDOMParseOptions, "DOM Implementation does not support IDOMParseOptions" + Vcl_Imaging_Pnglang_EInvalidSpec, "The \"Portable Network Graphics\" could not be created because invalid image type parameters have being provided." + Jclresources_RsEReplacementChar, "Failed to get ANSI replacement character" + Jclresources_RsEWindowsVersionNotSupported, "This windows version is not supported" + Jclresources_RsEWindowNotValid, "The window with handle %d is not valid" + Jclresources_RsEProcessNotValid, "The process with ID %d is not valid" Xml_Xmlconst_SMissingItemTag, "ItemTag property is not initialized" Xml_Xmlconst_SNodeReadOnly, "Node is readonly" Xml_Xmlconst_SNoRefresh, "Refresh is only supported if the FileName or XML properties are set" @@ -1101,11 +1090,11 @@ BEGIN Vcl_Imaging_Pnglang_EPNGZLIBErrorText, "Could not decompress the image because it contains invalid compressed data.\r\n Description: " Vcl_Imaging_Pnglang_EPNGInvalidPaletteText, "The \"Portable Network Graphics\" image contains an invalid palette." Vcl_Imaging_Pnglang_EPNGInvalidFileHeaderText, "The file being read is not a valid \"Portable Network Graphics\" image because it contains an invalid header. This file may be corrupted, try obtaining it again" - Tb2consts_STBToolbarItemReinserted, "Toolbar item already inserted" - Tb2consts_STBViewerNotFound, "An item viewer associated the specified item could not be found" - Tb2consts_STBChevronItemMoreButtonsHint, "More Buttons|" - Tb2consts_STBDockParentNotAllowed, "A TTBDock control cannot be placed inside a tool window or another TTBDock" - Tb2consts_STBDockCannotChangePosition, "Cannot change Position of a TTBDock if it already contains controls" + Vcl_Imaging_Pnglang_EPNGIHDRNotFirstText, "This \"Portable Network Graphics\" image is not supported or it might be invalid.\r\n(IHDR chunk is not the first)" + Vcl_Imaging_Pnglang_EPNGSizeExceedsText, "This \"Portable Network Graphics\" image is not supported because either its width or height exceeds the maximum size of 65535 pixels." + Vcl_Imaging_Pnglang_EPNGUnknownPalEntryText, "There is no such palette entry." + Vcl_Imaging_Pnglang_EPNGUnknownCriticalChunkText, "This \"Portable Network Graphics\" image contains an unknown critical part which could not be decoded." + Vcl_Imaging_Pnglang_EPNGUnknownCompressionText, "This \"Portable Network Graphics\" image is encoded with an unknown compression scheme which could not be decoded." Tb2consts_STBToolwinNameNotSet, "Cannot save dockable window's position because Name property is not set" Tb2consts_STBToolwinDockedToNameNotSet, "Cannot save dockable window's position because DockedTo's Name property not set" Xml_Xmlconst_SDuplicateRegistration, "\"%s\" DOMImplementation already registered" @@ -1117,11 +1106,11 @@ BEGIN Xml_Xmlconst_SNotActive, "No active document" Xml_Xmlconst_SNodeNotFound, "Node \"%s\" not found" Xml_Xmlconst_SMissingNode, "IDOMNode required" - Driveview_coFileOperatorTitle, "Filesystem Operation" - Driveview_coInvalidDosChars, "\\/:*?\"<>|" - Driveview_Space, " " - Driveview_16405, "New name contains invalid characters %s" - Fileoperator_SFileOperation, "File Operation" + Xml_Xmlconst_SNoAttributes, "Attributes are not supported on this node type" + Xml_Xmlconst_SInvalidNodeType, "Invalid node type" + Xml_Xmlconst_SMismatchedRegItems, "Mismatched paramaters to RegisterChildNodes" + Xml_Xmlconst_SNotSingleTextNode, "Element \"%s\" does not contain a single text node" + Xml_Xmlconst_SNoDOMParseOptions, "DOM Implementation does not support IDOMParseOptions" Iedriveinfo_ErrorInvalidDrive, "%s is a invalid drive letter." Unixdirviewcolproperties_SUnixDirViewRightsCol, "Rights" Unixdirviewcolproperties_SUnixDirViewOwnerCol, "Owner" @@ -1133,11 +1122,11 @@ BEGIN Dragdrop_MILinkStr, "&Shortcut(s) Create Here" Dragdrop_MIAbortStr, "&Abort" Tb2consts_STBToolbarIndexOutOfBounds, "Toolbar item index out of range" - Customdirview_STextFileExt, "File %s" - Customdirview_STextFiles, "%u Files" - Customdirview_STextDirectories, "%u Directories" - Customdirview_SParentDir, "Parent directory" - Customdirview_SIconUpdateThreadTerminationError, "Can't terminate icon update thread." + Tb2consts_STBToolbarItemReinserted, "Toolbar item already inserted" + Tb2consts_STBViewerNotFound, "An item viewer associated the specified item could not be found" + Tb2consts_STBChevronItemMoreButtonsHint, "More Buttons|" + Tb2consts_STBDockParentNotAllowed, "A TTBDock control cannot be placed inside a tool window or another TTBDock" + Tb2consts_STBDockCannotChangePosition, "Cannot change Position of a TTBDock if it already contains controls" Customdirview_SDriveNotReady, "Drive '%s:' is not ready." Customdirview_SDirNotExists, "Directory '%s' doesn't exist." Customdriveview_SDragDropError, "Drag&drop error: %d" @@ -1149,13 +1138,13 @@ BEGIN Dirviewcolproperties_SDirViewChangedCol, "Changed" Dirviewcolproperties_SDirViewAttrCol, "Attr" Dirviewcolproperties_SDirViewExtCol, "Ext" + Driveview_coFileOperatorTitle, "Filesystem Operation" + Driveview_coInvalidDosChars, "\\/:*?\"<>|" + Driveview_Space, " " + Driveview_16405, "New name contains invalid characters %s" + Fileoperator_SFileOperation, "File Operation" Comboedit_SDefaultFilter, "All files (*.*)|*.*" Comboedit_SInvalidFileName, "Invalid file name - %s" - Tcpip_SSocketError2, "Socket error (%s)" - Tcpip_STimeout, "Timeout" - Tcpip_SUnknownSockError, "Unknown error" - Tcpip_SHttpError, "Received response %d %s from %s" - Tcpip_SRedirectLimitError, "Exceeded maximal redirect limie %d" Baseutils_SNoValidPath, "Can't find any valid path." Baseutils_SUcpPathsNotSupported, "UNC paths are not supported." Baseutils_SByte, "B" @@ -1165,6 +1154,11 @@ BEGIN Customdirview_SErrorRenameFile, "Can't rename file or directory: " Customdirview_SErrorRenameFileExists, "File already exists: " Customdirview_SErrorInvalidName, "Filename contains invalid characters:" + Customdirview_STextFileExt, "File %s" + Customdirview_STextFiles, "%u Files" + Customdirview_STextDirectories, "%u Directories" + Customdirview_SParentDir, "Parent directory" + Customdirview_SIconUpdateThreadTerminationError, "Can't terminate icon update thread." System_Sysconst_SLongDayNameTue, "Tuesday" System_Sysconst_SLongDayNameWed, "Wednesday" System_Sysconst_SLongDayNameThu, "Thursday" diff --git a/source/WinSCP.groupproj b/source/WinSCP.groupproj index 8b11deb2..57d25c6d 100644 --- a/source/WinSCP.groupproj +++ b/source/WinSCP.groupproj @@ -39,8 +39,11 @@ + + + - Putty.cbproj;FileZilla.cbproj;ScpCore.cbproj;RScpComp.cbproj;ScpForms.cbproj + Putty.cbproj;FileZilla.cbproj;ScpCore.cbproj;RScpComp.cbproj;ScpForms.cbproj;ScpResources.cbproj @@ -164,13 +167,22 @@ - + + + + + + + + + + - + - + @@ -192,13 +204,13 @@ - + - + - + diff --git a/source/components/LogMemo.cpp b/source/components/LogMemo.cpp index c416ce75..2323ac84 100644 --- a/source/components/LogMemo.cpp +++ b/source/components/LogMemo.cpp @@ -103,9 +103,9 @@ void __fastcall TLogMemo::SetSessionLog(TSessionLog * value) //--------------------------------------------------------------------------- void __fastcall TLogMemo::SessionLogChange(TObject * Sender) { - USEDPARAM(Sender); + DebugUsedParam(Sender); #ifndef DESIGN_ONLY - assert(Sender && (Sender == (TObject*)SessionLog)); + DebugAssert(Sender && (Sender == (TObject*)SessionLog)); #endif if (HandleAllocated()) { @@ -132,7 +132,7 @@ void __fastcall TLogMemo::UpdateFromLog() #ifndef DESIGN_ONLY if (SessionLog && Parent && !Application->Terminated) { - assert(FIndexes->Count == Lines->Count); + DebugAssert(FIndexes->Count == Lines->Count); FUpdating = true; bool Updated = false; SessionLog->Lock(); @@ -204,7 +204,7 @@ void __fastcall TLogMemo::UpdateFromLog() { FIndexes->Delete(FIndexes->Count - 1); } - assert(FIndexes->Count == Lines->Count); + DebugAssert(FIndexes->Count == Lines->Count); // LastIndex is strangely reset to 0 when exception is caught LastIndex = Indexes[Lines->Count-1]; } @@ -223,7 +223,7 @@ void __fastcall TLogMemo::UpdateFromLog() } } - assert(!Parent || FIndexes->Count == Lines->Count); + DebugAssert(!Parent || FIndexes->Count == Lines->Count); FLastUpdate = GetTickCount(); } @@ -263,7 +263,7 @@ void __fastcall TLogMemo::ReloadFromLog() //--------------------------------------------------------------------------- int __fastcall TLogMemo::GetIndexes(int Index) { - assert((Index >= 0) && (Index < Lines->Count) && (FIndexes->Count == Lines->Count)); + DebugAssert((Index >= 0) && (Index < Lines->Count) && (FIndexes->Count == Lines->Count)); return ((int)FIndexes->Items[Index]); } //--------------------------------------------------------------------------- diff --git a/source/components/ThemePageControl.cpp b/source/components/ThemePageControl.cpp index 469563f2..7f248a89 100644 --- a/source/components/ThemePageControl.cpp +++ b/source/components/ThemePageControl.cpp @@ -48,7 +48,7 @@ void __fastcall TThemeTabSheet::SetShadowed(bool Value) FShadowed = Value; TThemePageControl * ThemePageControl = dynamic_cast(Parent); - if (ALWAYS_TRUE(ThemePageControl != NULL)) + if (DebugAlwaysTrue(ThemePageControl != NULL)) { ThemePageControl->InvalidateTab(TabIndex); } @@ -75,15 +75,24 @@ int __fastcall TThemePageControl::GetTabsHeight() ::SendMessage(Handle, TCM_ADJUSTRECT, FALSE, (LPARAM)&Rect); int Result = Rect.Top - 1; - // two different ways to calculate the same, not sure which one is more reliable, - // so we want to know in case they differ - if (ALWAYS_TRUE(PageCount >= 0)) + // Two different ways to calculate the same, not sure which one is more reliable, + // so we want to know in case they differ. + if (DebugAlwaysTrue(PageCount >= 0)) { TRect Rect = TabRect(0); int Result2 = Rect.Bottom + 1; - if (ALWAYS_FALSE(Result != Result2)) + if (Result != Result2) { - Result = Result2; + // On Windows 10 with 200% scaling, the first is 40, the second is 42. + // The correct size is probably 41. Will wait for final release before settling on solution. + if (DebugAlwaysTrue(IsWin10() && (Result - 2) == Result2)) + { + Result--; + } + else + { + Result = Result2; + } } } @@ -299,3 +308,10 @@ void __fastcall TThemePageControl::Change() TPageControl::Change(); } //---------------------------------------------------------------------------------------------------------- +#ifdef _DEBUG +void __fastcall TThemePageControl::RequestAlign() +{ + TPageControl::RequestAlign(); +} +#endif +//---------------------------------------------------------------------------------------------------------- diff --git a/source/components/ThemePageControl.h b/source/components/ThemePageControl.h index 870d0c78..f311c0ba 100644 --- a/source/components/ThemePageControl.h +++ b/source/components/ThemePageControl.h @@ -29,6 +29,9 @@ friend class TThemeTabSheet; virtual void __fastcall PaintWindow(HDC DC); DYNAMIC bool __fastcall CanChange(); DYNAMIC void __fastcall Change(); + #ifdef _DEBUG + virtual void __fastcall RequestAlign(); + #endif private: void __fastcall DrawThemesXpTabItem(HDC DC, int Item, const TRect & Rect, bool Body, int State); diff --git a/source/components/UnixDirView.cpp b/source/components/UnixDirView.cpp index d3bc4dba..3dad847d 100644 --- a/source/components/UnixDirView.cpp +++ b/source/components/UnixDirView.cpp @@ -99,7 +99,7 @@ void __fastcall TUnixDirView::ExecuteFile(TListItem * Item) DisplayPropertiesMenu(); } #else - USEDPARAM(Item); + DebugUsedParam(Item); #endif } //--------------------------------------------------------------------------- @@ -172,7 +172,7 @@ bool __fastcall TUnixDirView::ItemIsDirectory(TListItem * Item) ASSERT_VALID_ITEM; return ITEMFILE->IsDirectory; #else - USEDPARAM(Item); + DebugUsedParam(Item); return false; #endif } @@ -183,7 +183,7 @@ bool __fastcall TUnixDirView::ItemIsFile(TListItem * Item) ASSERT_VALID_ITEM; return !(ITEMFILE->IsParentDirectory); #else - USEDPARAM(Item); + DebugUsedParam(Item); return false; #endif } @@ -194,7 +194,7 @@ bool __fastcall TUnixDirView::ItemIsParentDirectory(TListItem * Item) ASSERT_VALID_ITEM; return ITEMFILE->IsParentDirectory; #else - USEDPARAM(Item); + DebugUsedParam(Item); return false; #endif } @@ -205,7 +205,7 @@ UnicodeString __fastcall TUnixDirView::ItemFileName(TListItem * Item) ASSERT_VALID_ITEM; return ITEMFILE->FileName; #else - USEDPARAM(Item); + DebugUsedParam(Item); return UnicodeString(); #endif } @@ -216,7 +216,7 @@ __int64 __fastcall TUnixDirView::ItemFileSize(TListItem * Item) ASSERT_VALID_ITEM; return ITEMFILE->Size; #else - USEDPARAM(Item); + DebugUsedParam(Item); return 0; #endif } @@ -227,7 +227,7 @@ UnicodeString __fastcall TUnixDirView::ItemFullFileName(TListItem * Item) ASSERT_VALID_ITEM; return ITEMFILE->FullFileName; #else - USEDPARAM(Item); + DebugUsedParam(Item); return UnicodeString(); #endif } @@ -240,7 +240,7 @@ int __fastcall TUnixDirView::ItemImageIndex(TListItem * Item, bool /*Cache*/) // so we don't need it here. But it's implemented anyway. return ITEMFILE->IconIndex; #else - USEDPARAM(Item); + DebugUsedParam(Item); return 0; #endif } @@ -265,8 +265,8 @@ bool __fastcall TUnixDirView::ItemMatchesFilter(TListItem * Item, (File->IsDirectory && Filter.Directories && FileNameMatchesMasks(File->FileName, false, File->Size, File->Modification, Filter.Masks, false))); #else - USEDPARAM(Item); - USEDPARAM(Filter); + DebugUsedParam(Item); + DebugUsedParam(Filter); return false; #endif } @@ -286,7 +286,7 @@ Word __fastcall TUnixDirView::ItemOverlayIndexes(TListItem * Item) } return Result; #else - USEDPARAM(Item); + DebugUsedParam(Item); return 0; #endif } @@ -294,7 +294,7 @@ Word __fastcall TUnixDirView::ItemOverlayIndexes(TListItem * Item) void __fastcall TUnixDirView::LoadFiles() { #ifndef DESIGN_ONLY - assert(Terminal); + DebugAssert(Terminal); if (DirOK) { // it's enough if we reach this point, we don't require that loading files into @@ -310,7 +310,7 @@ void __fastcall TUnixDirView::LoadFiles() for (int Index = 0; Index < Terminal->Files->Count; Index++) { TRemoteFile *File = Terminal->Files->Files[Index]; - assert(File); + DebugAssert(File); if ((!ShowHiddenFiles && File->IsHidden) || (!ShowInaccesibleDirectories && File->IsInaccesibleDirectory)) { @@ -384,7 +384,7 @@ void __fastcall TUnixDirView::GetDisplayInfo(TListItem * Item, tagLVITEMW &DispI case uvExt: Value = File->Extension; break; case uvLinkTarget: Value = File->LinkTo; break; case uvType: Value = File->TypeName; break; - default: FAIL; + default: DebugFail(); } StrPLCopy(DispInfo.pszText, Value, DispInfo.cchTextMax); } @@ -395,8 +395,8 @@ void __fastcall TUnixDirView::GetDisplayInfo(TListItem * Item, tagLVITEMW &DispI DispInfo.mask |= LVIF_DI_SETITEM; } #else - USEDPARAM(Item); - USEDPARAM(DispInfo); + DebugUsedParam(Item); + DebugUsedParam(DispInfo); #endif } } @@ -440,7 +440,7 @@ void __fastcall TUnixDirView::PerformItemDragDropOperation(TListItem * Item, SourceDirectory = ExtractFilePath(DragDropFilesEx->FileList->Items[0]->Name); if (Item) { - assert(ITEMFILE->IsDirectory && (Terminal->Files->IndexOf(ITEMFILE) >= 0)); + DebugAssert(ITEMFILE->IsDirectory && (Terminal->Files->IndexOf(ITEMFILE) >= 0)); TargetDirectory = ITEMFILE->FullFileName; } else @@ -454,8 +454,8 @@ void __fastcall TUnixDirView::PerformItemDragDropOperation(TListItem * Item, } } #else - USEDPARAM(Item); - USEDPARAM(Effect); + DebugUsedParam(Item); + DebugUsedParam(Effect); #endif } //--------------------------------------------------------------------------- @@ -495,11 +495,11 @@ void __fastcall TUnixDirView::SetTerminal(TTerminal *value) { if (FTerminal) { - assert(FTerminal->OnReadDirectory == DoReadDirectory); + DebugAssert(FTerminal->OnReadDirectory == DoReadDirectory); FTerminal->OnReadDirectory = NULL; - assert(FTerminal->OnStartReadDirectory == DoStartReadDirectory); + DebugAssert(FTerminal->OnStartReadDirectory == DoStartReadDirectory); FTerminal->OnStartReadDirectory = NULL; - assert(FTerminal->OnChangeDirectory == DoChangeDirectory); + DebugAssert(FTerminal->OnChangeDirectory == DoChangeDirectory); FTerminal->OnChangeDirectory = NULL; if (!value || !value->Files->Loaded) { @@ -525,13 +525,14 @@ void __fastcall TUnixDirView::SetTerminal(TTerminal *value) DoReadDirectoryImpl(FTerminal, false); } } + UpdatePathLabel(); } } #endif //--------------------------------------------------------------------------- void __fastcall TUnixDirView::DoStartReadDirectory(TObject * /*Sender*/) { - assert(!FLoading); + DebugAssert(!FLoading); FLoading = true; } //--------------------------------------------------------------------------- @@ -546,7 +547,7 @@ void __fastcall TUnixDirView::DoReadDirectory(TObject * Sender, bool ReloadOnly) //--------------------------------------------------------------------------- void __fastcall TUnixDirView::DoReadDirectoryImpl(TObject * /*Sender*/, bool ReloadOnly) { - assert(FLoading); + DebugAssert(FLoading); FLoading = false; #ifndef DESIGN_ONLY @@ -577,7 +578,7 @@ void __fastcall TUnixDirView::DoReadDirectoryImpl(TObject * /*Sender*/, bool Rel Load(); } #else - USEDPARAM(ReloadOnly); + DebugUsedParam(ReloadOnly); #endif } //--------------------------------------------------------------------------- @@ -633,9 +634,9 @@ void __fastcall TUnixDirView::SetPath(UnicodeString Value) //--------------------------------------------------------------------------- int __stdcall CompareFile(TListItem * Item1, TListItem * Item2, TUnixDirView * DirView) { - assert((Item1 != NULL) && (Item2 != NULL)); - TRemoteFile * File1 = NOT_NULL((TRemoteFile *)(Item1->Data)); - TRemoteFile * File2 = NOT_NULL((TRemoteFile *)(Item2->Data)); + DebugAssert((Item1 != NULL) && (Item2 != NULL)); + TRemoteFile * File1 = DebugNotNull((TRemoteFile *)(Item1->Data)); + TRemoteFile * File2 = DebugNotNull((TRemoteFile *)(Item2->Data)); int Result; if (File1->IsParentDirectory && !File2->IsParentDirectory) @@ -710,7 +711,7 @@ int __stdcall CompareFile(TListItem * Item1, TListItem * Item2, TUnixDirView * D break; default: - FAIL; + DebugFail(); } if (Result == 0) @@ -733,7 +734,7 @@ int __stdcall CompareFile(TListItem * Item1, TListItem * Item2, TUnixDirView * D void __fastcall TUnixDirView::SortItems() { #ifndef DESIGN_ONLY - assert(Terminal); + DebugAssert(Terminal); if (HandleAllocated()) { CustomSortItems(CompareFile); @@ -789,7 +790,7 @@ void __fastcall TUnixDirView::SetDDAllowMove(bool value) { if (DDAllowMove != value) { - assert(DragDropFilesEx); + DebugAssert(DragDropFilesEx); FDDAllowMove = value; DragDropFilesEx->SourceEffects = DragSourceEffects; } @@ -843,10 +844,10 @@ void __fastcall TUnixDirView::ChangeDirectory(UnicodeString Path) bool __fastcall TUnixDirView::CanEdit(TListItem* Item) { #ifndef DESIGN_ONLY - assert(Terminal); + DebugAssert(Terminal); return TCustomUnixDirView::CanEdit(Item) && Terminal->IsCapable[fcRename]; #else - USEDPARAM(Item); + DebugUsedParam(Item); return false; #endif } @@ -863,7 +864,7 @@ void __fastcall TUnixDirView::InternalEdit(const tagLVITEMW & HItem) Terminal->RenameFile(ITEMFILE, HItem.pszText, true); } #else - USEDPARAM(HItem); + DebugUsedParam(HItem); #endif } //--------------------------------------------------------------------------- @@ -885,7 +886,7 @@ void __fastcall TUnixDirView::CreateDirectory(UnicodeString DirName) void __fastcall TUnixDirView::CreateDirectoryEx(UnicodeString DirName, const TRemoteProperties * Properties) { #ifndef DESIGN_ONLY - assert(Terminal); + DebugAssert(Terminal); // if file would be created in current directory, select it after reload if (UnixExtractFileName(DirName) == DirName) { @@ -893,7 +894,7 @@ void __fastcall TUnixDirView::CreateDirectoryEx(UnicodeString DirName, const TRe } Terminal->CreateDirectory(DirName, Properties); #else - USEDPARAM(Properties); + DebugUsedParam(Properties); #endif } //--------------------------------------------------------------------------- @@ -908,7 +909,7 @@ bool __fastcall TUnixDirView::GetIsRoot() //--------------------------------------------------------------------------- TColor __fastcall TUnixDirView::ItemColor(TListItem * Item) { - assert(Item); + DebugAssert(Item); #ifndef DESIGN_ONLY if (DimmHiddenFiles && !Item->Selected && ITEMFILE->IsHidden) { @@ -916,7 +917,7 @@ TColor __fastcall TUnixDirView::ItemColor(TListItem * Item) } else #else - USEDPARAM(Item); + DebugUsedParam(Item); #endif { return (TColor)clDefaultItemColor; @@ -926,7 +927,7 @@ TColor __fastcall TUnixDirView::ItemColor(TListItem * Item) TDateTime __fastcall TUnixDirView::ItemFileTime(TListItem * Item, TDateTimePrecision & Precision) { - assert(Item); + DebugAssert(Item); #ifndef DESIGN_ONLY switch (ITEMFILE->ModificationFmt) { @@ -949,7 +950,7 @@ TDateTime __fastcall TUnixDirView::ItemFileTime(TListItem * Item, } return ITEMFILE->Modification; #else - USEDPARAM(Item); + DebugUsedParam(Item); Precision = tpSecond; return Now(); #endif @@ -976,3 +977,16 @@ void __fastcall TUnixDirView::AddToDragFileList(TFileList * FileList, #endif FileList->AddItem(NULL, FileName); } +//--------------------------------------------------------------------------- +void __fastcall TUnixDirView::UpdatePathLabelCaption() +{ + if (Terminal != NULL) + { + TCustomDirView::UpdatePathLabelCaption(); + } + else + { + PathLabel->Caption = UnicodeString(); + PathLabel->Mask = UnicodeString(); + } +} diff --git a/source/components/UnixDirView.h b/source/components/UnixDirView.h index 6fea2a30..3379130d 100644 --- a/source/components/UnixDirView.h +++ b/source/components/UnixDirView.h @@ -76,6 +76,7 @@ friend class TCustomUnixDriveView; void __fastcall SetDriveView(TCustomUnixDriveView * Value); virtual int __fastcall HiddenCount(); virtual int __fastcall FilteredCount(); + DYNAMIC void __fastcall UpdatePathLabelCaption(); __property TCustomUnixDriveView * DriveView = { read = FDriveView, write = SetDriveView }; @@ -104,6 +105,7 @@ friend class TCustomUnixDriveView; write = SetDDAllowMove, default = False }; __property TDDDragFileName OnDDDragFileName = { read = FOnDDDragFileName, write = FOnDDDragFileName}; + __property OnBusy; __property bool ShowInaccesibleDirectories = { read=FShowInaccesibleDirectories, write=SetShowInaccesibleDirectories, default=true }; diff --git a/source/components/UnixDriveView.cpp b/source/components/UnixDriveView.cpp index 87a3d021..9fa14025 100644 --- a/source/components/UnixDriveView.cpp +++ b/source/components/UnixDriveView.cpp @@ -212,7 +212,7 @@ void __fastcall TCustomUnixDriveView::UpdatePath(TTreeNode * Node, bool Force, else { UnicodeString ChildPath = UnixIncludeTrailingBackslash(Path) + File->FileName; - assert(!IsUnixRootPath(ChildPath)); + DebugAssert(!IsUnixRootPath(ChildPath)); LoadPathEasy(Node, ChildPath, File); } @@ -253,9 +253,9 @@ void __fastcall TCustomUnixDriveView::UpdatePath(TTreeNode * Node, bool Force, } } #else - USEDPARAM(Node); - USEDPARAM(Force); - USEDPARAM(CanLoad); + DebugUsedParam(Node); + DebugUsedParam(Force); + DebugUsedParam(CanLoad); #endif } //--------------------------------------------------------------------------- @@ -263,7 +263,7 @@ TTreeNode * __fastcall TCustomUnixDriveView::LoadPathEasy(TTreeNode * Parent, UnicodeString Path, TRemoteFile * File) { #ifndef DESIGN_ONLY - assert(Path == UnixExcludeTrailingBackslash(Path)); + DebugAssert(Path == UnixExcludeTrailingBackslash(Path)); UnicodeString DirName; if (IsUnixRootPath(Path)) @@ -286,8 +286,8 @@ TTreeNode * __fastcall TCustomUnixDriveView::LoadPathEasy(TTreeNode * Parent, return Node; #else - USEDPARAM(Parent); - USEDPARAM(File); + DebugUsedParam(Parent); + DebugUsedParam(File); return NULL; #endif } @@ -352,12 +352,12 @@ TTreeNode * __fastcall TCustomUnixDriveView::LoadPath(UnicodeString Path) void __fastcall TCustomUnixDriveView::LoadDirectory() { #ifndef DESIGN_ONLY - assert(!FIgnoreChange); + DebugAssert(!FIgnoreChange); FIgnoreChange = true; try { Selected = LoadPath(FTerminal->Files->Directory); - assert(Selected != NULL); + DebugAssert(Selected != NULL); FPrevSelected = Selected; } __finally @@ -370,21 +370,21 @@ void __fastcall TCustomUnixDriveView::LoadDirectory() //--------------------------------------------------------------------------- TNodeData * __fastcall TCustomUnixDriveView::NodeData(const TTreeNode * Node) { - assert(Node->Data != NULL); + DebugAssert(Node->Data != NULL); return static_cast(Node->Data); } //--------------------------------------------------------------------------- TRemoteFileList * __fastcall TCustomUnixDriveView::NodeFileList(const TTreeNode * Node) { - assert(Node->Data != NULL); + DebugAssert(Node->Data != NULL); return static_cast(Node->Data)->FileList; } //--------------------------------------------------------------------------- TRemoteFile * __fastcall TCustomUnixDriveView::NodeFile(const TTreeNode * Node) { - assert(Node->Data != NULL); + DebugAssert(Node->Data != NULL); return static_cast(Node->Data)->File; } @@ -479,7 +479,7 @@ void __fastcall TCustomUnixDriveView::Change(TTreeNode * Node) { if (!FDirectoryLoaded) { - assert(!FIgnoreChange); + DebugAssert(!FIgnoreChange); Expand = false; FIgnoreChange = true; try @@ -531,7 +531,7 @@ void __fastcall TCustomUnixDriveView::PerformDragDropFileOperation( // see a comment in TUnixDirView::PerformItemDragDropOperation if (DragDropFilesEx->FileList->Count > 0) { - assert(Node != NULL); + DebugAssert(Node != NULL); UnicodeString SourceDirectory; UnicodeString TargetDirectory; @@ -588,7 +588,7 @@ void __fastcall TCustomUnixDriveView::UpdateDropSource() //--------------------------------------------------------------------------- TStrings * __fastcall TCustomUnixDriveView::DragFileList() { - assert(DragNode != NULL); + DebugAssert(DragNode != NULL); TStrings * FileList = new TStringList(); try { @@ -669,7 +669,7 @@ bool __fastcall TCustomUnixDriveView::NodePathExists(TTreeNode * /*Node*/) //--------------------------------------------------------------------------- TColor __fastcall TCustomUnixDriveView::NodeColor(TTreeNode * Node) { - assert(Node != NULL); + DebugAssert(Node != NULL); TColor Result = static_cast(clDefaultItemColor); #ifndef DESIGN_ONLY if (FDimmHiddenDirs && !Node->Selected) @@ -680,7 +680,7 @@ TColor __fastcall TCustomUnixDriveView::NodeColor(TTreeNode * Node) } } #else - USEDPARAM(Node); + DebugUsedParam(Node); #endif return Result; } @@ -702,7 +702,7 @@ Word __fastcall TCustomUnixDriveView::NodeOverlayIndexes(TTreeNode * Node) } return Result; #else - USEDPARAM(Node); + DebugUsedParam(Node); return 0; #endif } @@ -786,7 +786,7 @@ TTreeNode * __fastcall TCustomUnixDriveView::FindPathNode(UnicodeString Path) Result = FindNodeToPath(Path); if (Result == NULL) { - assert(!IsUnixRootPath(Path)); + DebugAssert(!IsUnixRootPath(Path)); Path = UnixExtractFileDir(UnixExcludeTrailingBackslash(Path)); } } diff --git a/source/console/Main.cpp b/source/console/Main.cpp index 28d53fd0..5062df93 100644 --- a/source/console/Main.cpp +++ b/source/console/Main.cpp @@ -467,10 +467,60 @@ void BreakInput() DWORD WINAPI InputTimerThreadProc(void* Parameter) { unsigned int Timer = reinterpret_cast(Parameter); + unsigned int Remaining = Timer; + const unsigned int Step = 1000; + const int FirstKey = VK_LBUTTON; // 0x01 + const int LastKey = VK_OEM_CLEAR; // 0xFE - if (WaitForSingleObject(InputTimerEvent, Timer) == WAIT_TIMEOUT) + // reset key state + for (int Key = FirstKey; Key <= LastKey; Key++) { - BreakInput(); + GetAsyncKeyState(Key); + } + + while (Remaining > 0) + { + unsigned long WaitResult = WaitForSingleObject(InputTimerEvent, Step); + + if (WaitResult == WAIT_OBJECT_0) + { + // input entered + Remaining = 0; + } + else if (WaitResult == WAIT_TIMEOUT) + { + bool Input = false; + + for (int Key = FirstKey; Key <= LastKey; Key++) + { + if ((GetAsyncKeyState(Key) & 0x01) != 0) + { + Input = true; + // Finishing the loop nevertheless to reset state of all keys + } + } + + if (Input) + { + // If we have new input, reset timer + Remaining = Timer; + } + else if (Remaining > Step) + { + Remaining -= Step; + } + else + { + BreakInput(); + Remaining = 0; + } + } + else + { + // abort input on (unlikely) error + BreakInput(); + Remaining = 0; + } } return 0; diff --git a/source/core/Bookmarks.cpp b/source/core/Bookmarks.cpp index c2d8f255..0d8ae666 100644 --- a/source/core/Bookmarks.cpp +++ b/source/core/Bookmarks.cpp @@ -103,7 +103,7 @@ void __fastcall TBookmarks::LoadLevel(THierarchicalStorage * Storage, const Unic TBookmark * Bookmark; if (IsNumber(Name)) { - assert(IsDirectory); // unless malformed + DebugAssert(IsDirectory); // unless malformed Name = Directory; } if (!Name.IsEmpty()) @@ -194,7 +194,7 @@ void __fastcall TBookmarks::Save(THierarchicalStorage * Storage, bool All) break; case 2: - assert(Bookmark->ShortCut != 0); + DebugAssert(Bookmark->ShortCut != 0); Storage->WriteInteger(Bookmark->Name, Bookmark->ShortCut); break; } @@ -231,7 +231,7 @@ void __fastcall TBookmarks::ModifyAll(bool Modify) for (int i = 0; i < FBookmarkLists->Count; i++) { BookmarkList = dynamic_cast(FBookmarkLists->Objects[i]); - assert(BookmarkList); + DebugAssert(BookmarkList); BookmarkList->Modified = Modify; } } @@ -341,18 +341,18 @@ void __fastcall TBookmarkList::Add(TBookmark * Bookmark) //--------------------------------------------------------------------------- void __fastcall TBookmarkList::InsertBefore(TBookmark * BeforeBookmark, TBookmark * Bookmark) { - assert(BeforeBookmark); + DebugAssert(BeforeBookmark); int I = FBookmarks->IndexOf(BeforeBookmark->Key); - assert(I >= 0); + DebugAssert(I >= 0); Insert(I, Bookmark); } //--------------------------------------------------------------------------- void __fastcall TBookmarkList::MoveTo(TBookmark * ToBookmark, TBookmark * Bookmark, bool Before) { - assert(ToBookmark != NULL); + DebugAssert(ToBookmark != NULL); int NewIndex = FBookmarks->IndexOf(ToBookmark->Key); - assert(Bookmark != NULL); + DebugAssert(Bookmark != NULL); int OldIndex = FBookmarks->IndexOf(Bookmark->Key); if (Before && (NewIndex > OldIndex)) { @@ -369,9 +369,9 @@ void __fastcall TBookmarkList::MoveTo(TBookmark * ToBookmark, //--------------------------------------------------------------------------- void __fastcall TBookmarkList::Insert(int Index, TBookmark * Bookmark) { - assert(Bookmark); - assert(!Bookmark->FOwner); - assert(!Bookmark->Name.IsEmpty()); + DebugAssert(Bookmark); + DebugAssert(!Bookmark->FOwner); + DebugAssert(!Bookmark->Name.IsEmpty()); FModified = true; Bookmark->FOwner = this; @@ -384,10 +384,10 @@ void __fastcall TBookmarkList::Insert(int Index, TBookmark * Bookmark) //--------------------------------------------------------------------------- void __fastcall TBookmarkList::Delete(TBookmark * Bookmark) { - assert(Bookmark); - assert(Bookmark->FOwner == this); + DebugAssert(Bookmark); + DebugAssert(Bookmark->FOwner == this); int I = IndexOf(Bookmark); - assert(I >= 0); + DebugAssert(I >= 0); FModified = true; Bookmark->FOwner = NULL; FBookmarks->Delete(I); @@ -401,9 +401,9 @@ int __fastcall TBookmarkList::IndexOf(TBookmark * Bookmark) //--------------------------------------------------------------------------- void __fastcall TBookmarkList::KeyChanged(int Index) { - assert(Index < Count); + DebugAssert(Index < Count); TBookmark * Bookmark = dynamic_cast(FBookmarks->Objects[Index]); - assert(FBookmarks->Strings[Index] != Bookmark->Key); + DebugAssert(FBookmarks->Strings[Index] != Bookmark->Key); if (FBookmarks->IndexOf(Bookmark->Key) >= 0) { throw Exception(FMTLOAD(DUPLICATE_BOOKMARK, (Bookmark->Name))); @@ -415,7 +415,7 @@ TBookmark * __fastcall TBookmarkList::FindByName(const UnicodeString Node, const { int I = FBookmarks->IndexOf(TBookmark::BookmarkKey(Node, Name)); TBookmark * Bookmark = I >= 0 ? dynamic_cast(FBookmarks->Objects[I]) : NULL; - assert(!Bookmark || (Bookmark->Node == Node && Bookmark->Name == Name)); + DebugAssert(!Bookmark || (Bookmark->Node == Node && Bookmark->Name == Name)); return Bookmark; } //--------------------------------------------------------------------------- @@ -439,7 +439,7 @@ int __fastcall TBookmarkList::GetCount() TBookmark * __fastcall TBookmarkList::GetBookmarks(int Index) { TBookmark * Bookmark = dynamic_cast(FBookmarks->Objects[Index]); - assert(Bookmark); + DebugAssert(Bookmark); return Bookmark; } //--------------------------------------------------------------------------- diff --git a/source/core/Common.cpp b/source/core/Common.cpp index f593c2c7..fd48a40a 100644 --- a/source/core/Common.cpp +++ b/source/core/Common.cpp @@ -14,37 +14,13 @@ #include #include #include +#include +#include +#include //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- -//--------------------------------------------------------------------------- -// TGuard -//--------------------------------------------------------------------------- -__fastcall TGuard::TGuard(TCriticalSection * ACriticalSection) : - FCriticalSection(ACriticalSection) -{ - assert(ACriticalSection != NULL); - FCriticalSection->Enter(); -} -//--------------------------------------------------------------------------- -__fastcall TGuard::~TGuard() -{ - FCriticalSection->Leave(); -} -//--------------------------------------------------------------------------- -// TUnguard -//--------------------------------------------------------------------------- -__fastcall TUnguard::TUnguard(TCriticalSection * ACriticalSection) : - FCriticalSection(ACriticalSection) -{ - assert(ACriticalSection != NULL); - FCriticalSection->Leave(); -} -//--------------------------------------------------------------------------- -__fastcall TUnguard::~TUnguard() -{ - FCriticalSection->Enter(); -} +const wchar_t * DSTModeNames = L"Win;Unix;Keep"; //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- const wchar_t EngShortMonthNames[12][4] = @@ -74,19 +50,30 @@ UnicodeString DeleteChar(UnicodeString Str, wchar_t C) return Str; } //--------------------------------------------------------------------------- -void PackStr(UnicodeString &Str) +template +void DoPackStr(T & Str) { // Following will free unnecessary bytes Str = Str.c_str(); } //--------------------------------------------------------------------------- -void PackStr(RawByteString &Str) +void PackStr(UnicodeString & Str) { - // Following will free unnecessary bytes - Str = Str.c_str(); + DoPackStr(Str); } //--------------------------------------------------------------------------- -void __fastcall Shred(UnicodeString & Str) +void PackStr(RawByteString & Str) +{ + DoPackStr(Str); +} +//--------------------------------------------------------------------------- +void PackStr(AnsiString & Str) +{ + DoPackStr(Str); +} +//--------------------------------------------------------------------------- +template +void __fastcall DoShred(T & Str) { if (!Str.IsEmpty()) { @@ -96,6 +83,21 @@ void __fastcall Shred(UnicodeString & Str) } } //--------------------------------------------------------------------------- +void __fastcall Shred(UnicodeString & Str) +{ + DoShred(Str); +} +//--------------------------------------------------------------------------- +void __fastcall Shred(UTF8String & Str) +{ + DoShred(Str); +} +//--------------------------------------------------------------------------- +void __fastcall Shred(AnsiString & Str) +{ + DoShred(Str); +} +//--------------------------------------------------------------------------- UnicodeString AnsiToString(const RawByteString & S) { return UnicodeString(AnsiString(S)); @@ -279,7 +281,7 @@ UnicodeString ShellDelimitStr(UnicodeString Str, wchar_t Quote) //--------------------------------------------------------------------------- UnicodeString ExceptionLogString(Exception *E) { - assert(E); + DebugAssert(E); if (E->InheritsFrom(__classid(Exception))) { UnicodeString Msg; @@ -309,6 +311,11 @@ UnicodeString __fastcall MainInstructions(const UnicodeString & S) return MainMsgTag + S + MainMsgTag; } //--------------------------------------------------------------------------- +bool __fastcall HasParagraphs(const UnicodeString & S) +{ + return (S.Pos(L"\n\n") > 0); +} +//--------------------------------------------------------------------------- UnicodeString __fastcall MainInstructionsFirstParagraph(const UnicodeString & S) { // WORKAROUND, we consider it bad practice, the highlighting should better @@ -316,7 +323,7 @@ UnicodeString __fastcall MainInstructionsFirstParagraph(const UnicodeString & S) UnicodeString Result; int Pos = S.Pos(L"\n\n"); // we would not be calling this on single paragraph message - if (ALWAYS_TRUE(Pos > 0)) + if (DebugAlwaysTrue(Pos > 0)) { Result = MainInstructions(S.SubString(1, Pos - 1)) + @@ -345,8 +352,8 @@ bool ExtractMainInstructions(UnicodeString & S, UnicodeString & MainInstructions } } - assert(MainInstructions.Pos(MainMsgTag) == 0); - assert(S.Pos(MainMsgTag) == 0); + DebugAssert(MainInstructions.Pos(MainMsgTag) == 0); + DebugAssert(S.Pos(MainMsgTag) == 0); return Result; } @@ -401,6 +408,14 @@ UnicodeString RemoveInteractiveMsgTag(UnicodeString S) return S; } //--------------------------------------------------------------------------- +UnicodeString RemoveEmptyLines(const UnicodeString & S) +{ + return + ReplaceStr( + ReplaceStr(S.TrimRight(), L"\n\n", L"\n"), + L"\n \n", L"\n"); +} +//--------------------------------------------------------------------------- bool IsNumber(const UnicodeString Str) { int Value; @@ -441,14 +456,19 @@ UnicodeString __fastcall StripPathQuotes(const UnicodeString Path) } } //--------------------------------------------------------------------------- -UnicodeString __fastcall AddPathQuotes(UnicodeString Path) +UnicodeString __fastcall AddQuotes(UnicodeString Str) { - Path = StripPathQuotes(Path); - if (Path.Pos(L" ")) + if (Str.Pos(L" ") > 0) { - Path = L"\"" + Path + L"\""; + Str = L"\"" + Str + L"\""; } - return Path; + return Str; +} +//--------------------------------------------------------------------------- +UnicodeString __fastcall AddPathQuotes(UnicodeString Path) +{ + Path = StripPathQuotes(Path); + return AddQuotes(Path); } //--------------------------------------------------------------------------- static wchar_t * __fastcall ReplaceChar( @@ -596,7 +616,7 @@ UnicodeString __fastcall FormatCommand(UnicodeString Program, UnicodeString Para Program = Program.Trim(); Params = Params.Trim(); if (!Params.IsEmpty()) Params = L" " + Params; - if (Program.Pos(L" ")) Program = L"\"" + Program + L"\""; + Program = AddQuotes(Program); return Program + Params; } //--------------------------------------------------------------------------- @@ -623,6 +643,11 @@ UnicodeString __fastcall ExpandFileNameCommand(const UnicodeString Command, AddPathQuotes(FileName)); } //--------------------------------------------------------------------------- +UnicodeString __fastcall EscapeParam(const UnicodeString & Param) +{ + return ReplaceStr(Param, L"\"", L"\"\""); +} +//--------------------------------------------------------------------------- UnicodeString __fastcall EscapePuttyCommandParam(UnicodeString Param) { bool Space = false; @@ -984,6 +1009,11 @@ UnicodeString __fastcall MakeUnicodeLargePath(UnicodeString Path) // Add \\?\UNC\ prefix Result = L"\\\\?\\UNC\\" + Result; break; + + case PPT_LONG_UNICODE: + case PPT_LONG_UNICODE_UNC: + // nothing to do + break; } } @@ -1129,7 +1159,7 @@ RawByteString __fastcall HexToBytes(const UnicodeString Hex) unsigned char __fastcall HexToByte(const UnicodeString Hex) { static UnicodeString Digits = L"0123456789ABCDEF"; - assert(Hex.Length() == 2); + DebugAssert(Hex.Length() == 2); int P1 = Digits.Pos((wchar_t)toupper(Hex[1])); int P2 = Digits.Pos((wchar_t)toupper(Hex[2])); @@ -1188,12 +1218,18 @@ int __fastcall FindFirstChecked(const UnicodeString & Path, int Attr, TSearchRec return FindCheck(Result, F.Path); } //--------------------------------------------------------------------------- +// Equivalent to FindNext, just to complement to FindFirstUnchecked +int __fastcall FindNextUnchecked(TSearchRecChecked & F) +{ + return FindNext(F); +} +//--------------------------------------------------------------------------- // It can make sense to use FindNextChecked, even if unchecked FindFirst is used. // I.e. even if we do not care that FindFirst failed, if FindNext -// failes after successfull FindFirst, it mean some terrible problem +// fails after successful FindFirst, it means some terrible problem int __fastcall FindNextChecked(TSearchRecChecked & F) { - return FindCheck(FindNext(F), F.Path); + return FindCheck(FindNextUnchecked(F), F.Path); } //--------------------------------------------------------------------------- bool __fastcall FileSearchRec(const UnicodeString FileName, TSearchRec & Rec) @@ -1211,7 +1247,7 @@ void __fastcall ProcessLocalDirectory(UnicodeString DirName, TProcessLocalFileEvent CallBackFunc, void * Param, int FindAttrs) { - assert(CallBackFunc); + DebugAssert(CallBackFunc); if (FindAttrs < 0) { FindAttrs = faReadOnly | faHidden | faSysFile | faDirectory | faArchive; @@ -1496,7 +1532,7 @@ bool __fastcall UsesDaylightHack() //--------------------------------------------------------------------------- TDateTime __fastcall UnixToDateTime(__int64 TimeStamp, TDSTMode DSTMode) { - assert(int(EncodeDateVerbose(1970, 1, 1)) == UnixDateDelta); + DebugAssert(int(EncodeDateVerbose(1970, 1, 1)) == UnixDateDelta); TDateTime Result = UnixDateDelta + (double(TimeStamp) / SecsPerDay); @@ -1584,7 +1620,7 @@ static __int64 __fastcall DateTimeToUnix(const TDateTime DateTime) { const TDateTimeParams * CurrentParams = GetDateTimeParams(0); - assert(int(EncodeDateVerbose(1970, 1, 1)) == UnixDateDelta); + DebugAssert(int(EncodeDateVerbose(1970, 1, 1)) == UnixDateDelta); return Round(double(DateTime - UnixDateDelta) * SecsPerDay) + CurrentParams->CurrentDifferenceSec; @@ -1976,43 +2012,123 @@ int __fastcall TimeToMinutes(TDateTime T) return TimeToSeconds(T) / SecsPerMin; } //--------------------------------------------------------------------------- -bool __fastcall RecursiveDeleteFile(const UnicodeString FileName, bool ToRecycleBin) +static bool __fastcall DoRecursiveDeleteFile(const UnicodeString FileName, bool ToRecycleBin, UnicodeString & ErrorPath) { - SHFILEOPSTRUCT Data; + bool Result; + + UnicodeString AErrorPath = FileName; + + if (!ToRecycleBin) + { + TSearchRecChecked SearchRec; + Result = FileSearchRec(FileName, SearchRec); + if (Result) + { + if (FLAGCLEAR(SearchRec.Attr, faDirectory)) + { + Result = DeleteFile(ApiPath(FileName)); + } + else + { + Result = (FindFirstUnchecked(FileName + L"\\*", faAnyFile, SearchRec) == 0); - memset(&Data, 0, sizeof(Data)); - Data.hwnd = NULL; - Data.wFunc = FO_DELETE; - // SHFileOperation does not support long paths anyway - UnicodeString FileList(ApiPath(FileName)); - FileList.SetLength(FileList.Length() + 2); - FileList[FileList.Length() - 1] = L'\0'; - FileList[FileList.Length()] = L'\0'; - Data.pFrom = FileList.c_str(); - Data.pTo = L"\0\0"; // this will actually give one null more than needed - Data.fFlags = FOF_NOCONFIRMATION | FOF_RENAMEONCOLLISION | FOF_NOCONFIRMMKDIR | - FOF_NOERRORUI | FOF_SILENT; - if (ToRecycleBin) + if (Result) + { + try + { + do + { + UnicodeString FileName2 = FileName + L"\\" + SearchRec.Name; + if (FLAGSET(SearchRec.Attr, faDirectory)) + { + if ((SearchRec.Name != L".") && (SearchRec.Name != L"..")) + { + Result = DoRecursiveDeleteFile(FileName2, DebugAlwaysFalse(ToRecycleBin), AErrorPath); + } + } + else + { + Result = DeleteFile(ApiPath(FileName2)); + if (!Result) + { + AErrorPath = FileName2; + } + } + } + while (Result && (FindNextUnchecked(SearchRec) == 0)); + } + __finally + { + FindClose(SearchRec); + } + + if (Result) + { + Result = RemoveDir(ApiPath(FileName)); + } + } + } + } + } + else { - Data.fFlags |= FOF_ALLOWUNDO; + SHFILEOPSTRUCT Data; + + memset(&Data, 0, sizeof(Data)); + Data.hwnd = NULL; + Data.wFunc = FO_DELETE; + // SHFileOperation does not support long paths anyway + UnicodeString FileList(ApiPath(FileName)); + FileList.SetLength(FileList.Length() + 2); + FileList[FileList.Length() - 1] = L'\0'; + FileList[FileList.Length()] = L'\0'; + Data.pFrom = FileList.c_str(); + Data.pTo = L"\0\0"; // this will actually give one null more than needed + Data.fFlags = FOF_NOCONFIRMATION | FOF_RENAMEONCOLLISION | FOF_NOCONFIRMMKDIR | + FOF_NOERRORUI | FOF_SILENT; + if (DebugAlwaysTrue(ToRecycleBin)) + { + Data.fFlags |= FOF_ALLOWUNDO; + } + int ErrorCode = SHFileOperation(&Data); + Result = (ErrorCode == 0); + if (!Result) + { + // according to MSDN, SHFileOperation may return following non-Win32 + // error codes + if (((ErrorCode >= 0x71) && (ErrorCode <= 0x88)) || + (ErrorCode == 0xB7) || (ErrorCode == 0x402) || (ErrorCode == 0x10000) || + (ErrorCode == 0x10074)) + { + ErrorCode = 0; + } + SetLastError(ErrorCode); + } } - int ErrorCode = SHFileOperation(&Data); - bool Result = (ErrorCode == 0); + if (!Result) { - // according to MSDN, SHFileOperation may return following non-Win32 - // error codes - if (((ErrorCode >= 0x71) && (ErrorCode <= 0x88)) || - (ErrorCode == 0xB7) || (ErrorCode == 0x402) || (ErrorCode == 0x10000) || - (ErrorCode == 0x10074)) - { - ErrorCode = 0; - } - SetLastError(ErrorCode); + ErrorPath = AErrorPath; } + return Result; } //--------------------------------------------------------------------------- +bool __fastcall RecursiveDeleteFile(const UnicodeString & FileName, bool ToRecycleBin) +{ + UnicodeString ErrorPath; // unused + return DoRecursiveDeleteFile(FileName, ToRecycleBin, ErrorPath); +} +//--------------------------------------------------------------------------- +void __fastcall RecursiveDeleteFileChecked(const UnicodeString & FileName, bool ToRecycleBin) +{ + UnicodeString ErrorPath; + if (!DoRecursiveDeleteFile(FileName, ToRecycleBin, ErrorPath)) + { + throw EOSExtException(FMTLOAD(DELETE_LOCAL_FILE_ERROR, (ErrorPath))); + } +} +//--------------------------------------------------------------------------- void __fastcall DeleteFileChecked(const UnicodeString & FileName) { if (!DeleteFile(ApiPath(FileName))) @@ -2042,7 +2158,7 @@ unsigned int __fastcall CancelAnswer(unsigned int Answers) } else { - FAIL; + DebugFail(); Result = qaCancel; } return Result; @@ -2114,7 +2230,7 @@ TLibModule * __fastcall FindModule(void * Instance) UnicodeString __fastcall LoadStr(int Ident, unsigned int MaxLength) { TLibModule * MainModule = FindModule(HInstance); - assert(MainModule != NULL); + DebugAssert(MainModule != NULL); UnicodeString Result; Result.SetLength(MaxLength); @@ -2161,8 +2277,7 @@ UnicodeString __fastcall DecodeUrlChars(UnicodeString S) if (!Hex.IsEmpty()) { RawByteString Bytes = HexToBytes(Hex); - UTF8String UTF8(Bytes.c_str(), Bytes.Length()); - UnicodeString Chars(UTF8); + UnicodeString Chars(UTF8ToString(Bytes)); S.Insert(Chars, i); i += Chars.Length() - 1; } @@ -2174,44 +2289,30 @@ UnicodeString __fastcall DecodeUrlChars(UnicodeString S) return S; } //--------------------------------------------------------------------------- -UnicodeString __fastcall DoEncodeUrl(UnicodeString S, UnicodeString Chars) -{ - int i = 1; - while (i <= S.Length()) - { - if (Chars.Pos(S[i]) > 0) - { - UnicodeString H = ByteToHex(AnsiString(UnicodeString(S[i]))[1]); - S.Insert(H, i + 1); - S[i] = '%'; - i += H.Length(); - } - i++; - } - return S; -} -//--------------------------------------------------------------------------- -// we should probably replace all uses with EncodeUrlString -UnicodeString __fastcall EncodeUrlChars(UnicodeString S) +UnicodeString __fastcall DoEncodeUrl(UnicodeString S, bool EncodeSlash) { - return DoEncodeUrl(S, L" /"); -} -//--------------------------------------------------------------------------- -UnicodeString __fastcall NonUrlChars() -{ - UnicodeString S; - for (unsigned int I = 0; I <= 127; I++) + int Index = 1; + while (Index <= S.Length()) { - wchar_t C = static_cast(I); + wchar_t C = S[Index]; if (IsLetter(C) || IsDigit(C) || - (C == L'_') || (C == L'-') || (C == L'.')) + (C == L'_') || (C == L'-') || (C == L'.') || + ((C == L'/') && !EncodeSlash)) { - // noop + Index++; } else { - S += C; + UTF8String UtfS(S.SubString(Index, 1)); + UnicodeString H; + for (int Index2 = 1; Index2 <= UtfS.Length(); Index2++) + { + H += L"%" + ByteToHex(static_cast(UtfS[Index2])); + } + S.Delete(Index, 1); + S.Insert(H, Index); + Index += H.Length(); } } return S; @@ -2219,25 +2320,19 @@ UnicodeString __fastcall NonUrlChars() //--------------------------------------------------------------------------- UnicodeString __fastcall EncodeUrlString(UnicodeString S) { - return DoEncodeUrl(S, NonUrlChars()); + return DoEncodeUrl(S, true); } //--------------------------------------------------------------------------- UnicodeString __fastcall EncodeUrlPath(UnicodeString S) { - UnicodeString Ignore = NonUrlChars(); - int P = Ignore.Pos(L"/"); - if (ALWAYS_TRUE(P > 0)) - { - Ignore.Delete(P, 1); - } - return DoEncodeUrl(S, Ignore); + return DoEncodeUrl(S, false); } //--------------------------------------------------------------------------- UnicodeString __fastcall AppendUrlParams(UnicodeString AURL, UnicodeString Params) { // see also TWebHelpSystem::ShowHelp const wchar_t FragmentSeparator = L'#'; - UnicodeString URL = ::CutToChar(AURL, FragmentSeparator, false); + UnicodeString URL = CutToChar(AURL, FragmentSeparator, false); if (URL.Pos(L"?") == 0) { @@ -2262,7 +2357,7 @@ UnicodeString __fastcall EscapeHotkey(const UnicodeString & Caption) //--------------------------------------------------------------------------- // duplicated in console's Main.cpp bool __fastcall CutToken(UnicodeString & Str, UnicodeString & Token, - UnicodeString * RawToken) + UnicodeString * RawToken, UnicodeString * Separator) { bool Result; @@ -2286,6 +2381,9 @@ bool __fastcall CutToken(UnicodeString & Str, UnicodeString & Token, { break; } + // We should escape quotes only within quotes + // otherwise the "" means " (quote), but it should mean empty string. + // Or have a special case for bare "". else if ((Str[Index] == L'"') && (Index + 1 <= Str.Length()) && (Str[Index + 1] == L'"')) { @@ -2311,8 +2409,19 @@ bool __fastcall CutToken(UnicodeString & Str, UnicodeString & Token, if (Index <= Str.Length()) { + if (Separator != NULL) + { + *Separator = Str.SubString(Index, 1); + } Index++; } + else + { + if (Separator != NULL) + { + *Separator = UnicodeString(); + } + } Str = Str.SubString(Index, Str.Length()); @@ -2355,11 +2464,21 @@ bool __fastcall IsWin7() return CheckWin32Version(6, 1); } //--------------------------------------------------------------------------- +bool __fastcall IsWin8() +{ + return CheckWin32Version(6, 2); +} +//--------------------------------------------------------------------------- +bool __fastcall IsWin10() +{ + return CheckWin32Version(10, 0); +} +//--------------------------------------------------------------------------- bool __fastcall IsWine() { HMODULE NtDll = GetModuleHandle(L"ntdll.dll"); return - ALWAYS_TRUE(NtDll != NULL) && + DebugAlwaysTrue(NtDll != NULL) && (GetProcAddress(NtDll, "wine_get_version") != NULL); } //--------------------------------------------------------------------------- @@ -2532,3 +2651,183 @@ UnicodeString __fastcall FindIdent(const UnicodeString & Ident, TStrings * Ident } return Ident; } +//--------------------------------------------------------------------------- +static UnicodeString __fastcall GetTlsErrorStr(int Err) +{ + char * Buffer = new char[512]; + ERR_error_string(Err, Buffer); + // not sure about the UTF8 + return UnicodeString(UTF8String(Buffer)); +} +//--------------------------------------------------------------------------- +static FILE * __fastcall OpenCertificate(const UnicodeString & Path) +{ + FILE * Result = _wfopen(ApiPath(Path).c_str(), L"rb"); + if (Result == NULL) + { + int Error = errno; + throw EOSExtException(MainInstructions(FMTLOAD(CERTIFICATE_OPEN_ERROR, (Path))), Error); + } + + return Result; +} +//--------------------------------------------------------------------------- +struct TPemPasswordCallbackData +{ + UnicodeString * Passphrase; +}; +//--------------------------------------------------------------------------- +static int PemPasswordCallback(char * Buf, int Size, int /*RWFlag*/, void * UserData) +{ + TPemPasswordCallbackData & Data = *reinterpret_cast(UserData); + UTF8String UtfPassphrase = UTF8String(*Data.Passphrase); + strncpy(Buf, UtfPassphrase.c_str(), Size); + Shred(UtfPassphrase); + Buf[Size - 1] = '\0'; + return strlen(Buf); +} +//--------------------------------------------------------------------------- +static bool __fastcall IsTlsPassphraseError(int Error) +{ + bool Result = + ((ERR_GET_LIB(Error) == ERR_LIB_PKCS12) && + (ERR_GET_REASON(Error) == PKCS12_R_MAC_VERIFY_FAILURE)) || + ((ERR_GET_LIB(Error) == ERR_LIB_PEM) && + (ERR_GET_REASON(Error) == PEM_R_BAD_PASSWORD_READ)); + return Result; +} +//--------------------------------------------------------------------------- +static void __fastcall ThrowTlsCertificateErrorIgnorePassphraseErrors(const UnicodeString & Path) +{ + int Error = ERR_get_error(); + if (!IsTlsPassphraseError(Error)) + { + throw ExtException(MainInstructions(FMTLOAD(CERTIFICATE_READ_ERROR, (Path))), GetTlsErrorStr(Error)); + } +} +//--------------------------------------------------------------------------- +void __fastcall ParseCertificate(const UnicodeString & Path, + const UnicodeString & Passphrase, X509 *& Certificate, EVP_PKEY *& PrivateKey, + bool & WrongPassphrase) +{ + FILE * File; + + // Inspired by neon's ne_ssl_clicert_read + File = OpenCertificate(Path); + PKCS12 * Pkcs12 = d2i_PKCS12_fp(File, NULL); + fclose(File); + + if (Pkcs12 != NULL) + { + // Not sure about the UTF-8 encoding, but there's no wchar_t API + bool Result = + (PKCS12_parse(Pkcs12, UTF8String(Passphrase).c_str(), &PrivateKey, &Certificate, NULL) == 1); + PKCS12_free(Pkcs12); + + if (!Result) + { + ThrowTlsCertificateErrorIgnorePassphraseErrors(Path); + WrongPassphrase = true; + } + } + else + { + ERR_clear_error(); + + TPemPasswordCallbackData CallbackUserData; + // PemPasswordCallback never writes to the .Passphrase + CallbackUserData.Passphrase = const_cast(&Passphrase); + + File = OpenCertificate(Path); + PrivateKey = PEM_read_PrivateKey(File, NULL, PemPasswordCallback, &CallbackUserData); + fclose(File); + + try + { + if (PrivateKey == NULL) + { + ThrowTlsCertificateErrorIgnorePassphraseErrors(Path); + WrongPassphrase = true; + } + + File = OpenCertificate(Path); + Certificate = PEM_read_X509(File, NULL, PemPasswordCallback, &CallbackUserData); + fclose(File); + + if (Certificate == NULL) + { + int Error = ERR_get_error(); + // unlikely + if (IsTlsPassphraseError(Error)) + { + WrongPassphrase = true; + } + else + { + UnicodeString CertificatePath = ChangeFileExt(Path, L".cer"); + if (!FileExists(CertificatePath)) + { + CertificatePath = ChangeFileExt(Path, L".crt"); + } + + if (!FileExists(CertificatePath)) + { + throw Exception(MainInstructions(FMTLOAD(CERTIFICATE_PUBLIC_KEY_NOT_FOUND, (Path)))); + } + else + { + File = OpenCertificate(CertificatePath); + Certificate = PEM_read_X509(File, NULL, PemPasswordCallback, &CallbackUserData); + fclose(File); + + if (Certificate == NULL) + { + ThrowTlsCertificateErrorIgnorePassphraseErrors(CertificatePath); + WrongPassphrase = true; + } + } + } + } + } + __finally + { + // We loaded private key, but failed to load certificate, discard the certificate + // (either exception was thrown or WrongPassphrase) + if ((PrivateKey != NULL) && (Certificate == NULL)) + { + EVP_PKEY_free(PrivateKey); + PrivateKey = NULL; + } + // Certificate was verified, but passphrase was wrong when loading private key, + // so discard the certificate + else if ((Certificate != NULL) && (PrivateKey == NULL)) + { + X509_free(Certificate); + Certificate = NULL; + } + } + } +} +//--------------------------------------------------------------------------- +void __fastcall CheckCertificate(const UnicodeString & Path) +{ + X509 * Certificate; + EVP_PKEY * PrivateKey; + bool WrongPassphrase; + + ParseCertificate(Path, L"", Certificate, PrivateKey, WrongPassphrase); + + if (PrivateKey != NULL) + { + EVP_PKEY_free(PrivateKey); + } + if (Certificate != NULL) + { + X509_free(Certificate); + } +} +//--------------------------------------------------------------------------- +bool __fastcall IsHttpUrl(const UnicodeString & S) +{ + return SameText(S.SubString(1, 4), L"http"); +} diff --git a/source/core/Common.h b/source/core/Common.h index bed0a4af..e9c10a2d 100644 --- a/source/core/Common.h +++ b/source/core/Common.h @@ -13,12 +13,6 @@ strncpy(dest, CopyBuf.c_str(), LENOF(dest)); \ dest[LENOF(dest)-1] = '\0'; \ } -#define FORMAT(S, F) Format(S, ARRAYOFCONST(F)) -#define FMTLOAD(I, F) FmtLoadStr(I, ARRAYOFCONST(F)) -#define LENOF(x) ( (sizeof((x))) / (sizeof(*(x)))) -#define FLAGSET(SET, FLAG) (((SET) & (FLAG)) == (FLAG)) -#define FLAGCLEAR(SET, FLAG) (((SET) & (FLAG)) == 0) -#define FLAGMASK(ENABLE, FLAG) ((ENABLE) ? (FLAG) : 0) #define SWAP(TYPE, FIRST, SECOND) \ { TYPE __Backup = FIRST; FIRST = SECOND; SECOND = __Backup; } //--------------------------------------------------------------------------- @@ -32,9 +26,12 @@ extern const UnicodeString PasswordMask; //--------------------------------------------------------------------------- UnicodeString ReplaceChar(UnicodeString Str, wchar_t A, wchar_t B); UnicodeString DeleteChar(UnicodeString Str, wchar_t C); -void PackStr(UnicodeString &Str); -void PackStr(RawByteString &Str); +void PackStr(UnicodeString & Str); +void PackStr(RawByteString & Str); +void PackStr(AnsiString & Str); void __fastcall Shred(UnicodeString & Str); +void __fastcall Shred(UTF8String & Str); +void __fastcall Shred(AnsiString & Str); UnicodeString AnsiToString(const RawByteString & S); UnicodeString AnsiToString(const char * S, size_t Len); UnicodeString MakeValidFileName(UnicodeString FileName); @@ -50,15 +47,18 @@ UnicodeString DelimitStr(UnicodeString Str, UnicodeString Chars); UnicodeString ShellDelimitStr(UnicodeString Str, wchar_t Quote); UnicodeString ExceptionLogString(Exception *E); UnicodeString __fastcall MainInstructions(const UnicodeString & S); +bool __fastcall HasParagraphs(const UnicodeString & S); UnicodeString __fastcall MainInstructionsFirstParagraph(const UnicodeString & S); bool ExtractMainInstructions(UnicodeString & S, UnicodeString & MainInstructions); UnicodeString RemoveMainInstructionsTag(UnicodeString S); UnicodeString UnformatMessage(UnicodeString S); UnicodeString RemoveInteractiveMsgTag(UnicodeString S); +UnicodeString RemoveEmptyLines(const UnicodeString & S); bool IsNumber(const UnicodeString Str); UnicodeString __fastcall SystemTemporaryDirectory(); UnicodeString __fastcall GetShellFolderPath(int CSIdl); UnicodeString __fastcall StripPathQuotes(const UnicodeString Path); +UnicodeString __fastcall AddQuotes(UnicodeString Str); UnicodeString __fastcall AddPathQuotes(UnicodeString Path); void __fastcall SplitCommand(UnicodeString Command, UnicodeString &Program, UnicodeString & Params, UnicodeString & Dir); @@ -72,6 +72,7 @@ UnicodeString __fastcall FormatCommand(UnicodeString Program, UnicodeString Para UnicodeString __fastcall ExpandFileNameCommand(const UnicodeString Command, const UnicodeString FileName); void __fastcall ReformatFileNameCommand(UnicodeString & Command); +UnicodeString __fastcall EscapeParam(const UnicodeString & Param); UnicodeString __fastcall EscapePuttyCommandParam(UnicodeString Param); UnicodeString __fastcall ExpandEnvironmentVariables(const UnicodeString & Str); bool __fastcall ComparePaths(const UnicodeString & Path1, const UnicodeString & Path2); @@ -92,11 +93,11 @@ bool __fastcall IsLetter(wchar_t Ch); bool __fastcall IsDigit(wchar_t Ch); bool __fastcall IsHex(wchar_t Ch); UnicodeString __fastcall DecodeUrlChars(UnicodeString S); -UnicodeString __fastcall EncodeUrlChars(UnicodeString S); UnicodeString __fastcall EncodeUrlString(UnicodeString S); UnicodeString __fastcall EncodeUrlPath(UnicodeString S); UnicodeString __fastcall AppendUrlParams(UnicodeString URL, UnicodeString Params); -bool __fastcall RecursiveDeleteFile(const UnicodeString FileName, bool ToRecycleBin); +bool __fastcall RecursiveDeleteFile(const UnicodeString & FileName, bool ToRecycleBin); +void __fastcall RecursiveDeleteFileChecked(const UnicodeString & FileName, bool ToRecycleBin); void __fastcall DeleteFileChecked(const UnicodeString & FileName); unsigned int __fastcall CancelAnswer(unsigned int Answers); unsigned int __fastcall AbortAnswer(unsigned int Answers); @@ -105,10 +106,12 @@ UnicodeString __fastcall LoadStr(int Ident, unsigned int MaxLength); UnicodeString __fastcall LoadStrPart(int Ident, int Part); UnicodeString __fastcall EscapeHotkey(const UnicodeString & Caption); bool __fastcall CutToken(UnicodeString & Str, UnicodeString & Token, - UnicodeString * RawToken = NULL); + UnicodeString * RawToken = NULL, UnicodeString * Separator = NULL); void __fastcall AddToList(UnicodeString & List, const UnicodeString & Value, const UnicodeString & Delimiter); bool __fastcall IsWinVista(); bool __fastcall IsWin7(); +bool __fastcall IsWin8(); +bool __fastcall IsWin10(); bool __fastcall IsWine(); TLibModule * __fastcall FindModule(void * Instance); __int64 __fastcall Round(double Number); @@ -130,6 +133,13 @@ int __fastcall ParseShortEngMonthName(const UnicodeString & MonthStr); // The defaults are equal to defaults of TStringList class (except for Sorted) TStringList * __fastcall CreateSortedStringList(bool CaseSensitive = false, System::Types::TDuplicates Duplicates = dupIgnore); UnicodeString __fastcall FindIdent(const UnicodeString & Ident, TStrings * Idents); +void __fastcall CheckCertificate(const UnicodeString & Path); +typedef struct x509_st X509; +typedef struct evp_pkey_st EVP_PKEY; +void __fastcall ParseCertificate(const UnicodeString & Path, + const UnicodeString & Passphrase, X509 *& Certificate, EVP_PKEY *& PrivateKey, + bool & WrongPassphrase); +bool __fastcall IsHttpUrl(const UnicodeString & S); //--------------------------------------------------------------------------- typedef void __fastcall (__closure* TProcessLocalFileEvent) (const UnicodeString FileName, const TSearchRec Rec, void * Param); @@ -145,6 +155,7 @@ int __fastcall FindNextChecked(TSearchRecChecked & F); void __fastcall ProcessLocalDirectory(UnicodeString DirName, TProcessLocalFileEvent CallBackFunc, void * Param = NULL, int FindAttrs = -1); //--------------------------------------------------------------------------- +extern const wchar_t * DSTModeNames; enum TDSTMode { dstmWin = 0, // @@ -187,45 +198,7 @@ MethodT __fastcall MakeMethod(void * Data, void * Code) return Method; } //--------------------------------------------------------------------------- -class TGuard -{ -public: - __fastcall TGuard(TCriticalSection * ACriticalSection); - __fastcall ~TGuard(); - -private: - TCriticalSection * FCriticalSection; -}; -//--------------------------------------------------------------------------- -class TUnguard -{ -public: - __fastcall TUnguard(TCriticalSection * ACriticalSection); - __fastcall ~TUnguard(); - -private: - TCriticalSection * FCriticalSection; -}; -//--------------------------------------------------------------------------- -//--------------------------------------------------------------------------- -#include -#define ACCESS_VIOLATION_TEST { (*((int*)NULL)) = 0; } -#ifndef _DEBUG -#undef assert -#define assert(p) ((void)0) -#define CHECK(p) p -#define FAIL -#define ALWAYS_TRUE(p) p -#define ALWAYS_FALSE(p) p -#define NOT_NULL(P) P -#else -#define CHECK(p) { bool __CHECK_RESULT__ = (p); assert(__CHECK_RESULT__); } -#define FAIL assert(false) -#define ALWAYS_TRUE(p) (p) -#define ALWAYS_FALSE(p) (p) -#define NOT_NULL(P) P -#endif -#define USEDPARAM(p) ((&p) == (&p)) +#include "Global.h" //--------------------------------------------------------------------------- template class TValueRestorer @@ -271,13 +244,13 @@ class TAutoNestingCounter : public TValueRestorer __fastcall TAutoNestingCounter(int & Target) : TValueRestorer(Target) { - assert(Target >= 0); + DebugAssert(Target >= 0); ++Target; } __fastcall ~TAutoNestingCounter() { - assert(!FArmed || (FTarget == (FValue + 1))); + DebugAssert(!FArmed || (FTarget == (FValue + 1))); } }; //--------------------------------------------------------------------------- @@ -287,14 +260,59 @@ class TAutoFlag : public TValueRestorer __fastcall TAutoFlag(bool & Target) : TValueRestorer(Target) { - assert(!Target); + DebugAssert(!Target); Target = true; } __fastcall ~TAutoFlag() { - assert(!FArmed || FTarget); + DebugAssert(!FArmed || FTarget); + } +}; +//--------------------------------------------------------------------------- +#include +//--------------------------------------------------------------------------- +template +class BiDiMap +{ +public: + typedef std::map TFirstToSecond; + typedef TFirstToSecond::const_iterator const_iterator; + + void Add(const T1 & Value1, const T2 & Value2) + { + FFirstToSecond.insert(std::make_pair(Value1, Value2)); + FSecondToFirst.insert(std::make_pair(Value2, Value1)); + } + + T1 LookupFirst(const T2 & Value2) const + { + TSecondToFirst::const_iterator Iterator = FSecondToFirst.find(Value2); + DebugAssert(Iterator != FSecondToFirst.end()); + return Iterator->second; + } + + T2 LookupSecond(const T1 & Value1) const + { + const_iterator Iterator = FFirstToSecond.find(Value1); + DebugAssert(Iterator != FFirstToSecond.end()); + return Iterator->second; } + + const_iterator begin() + { + return FFirstToSecond.begin(); + } + + const_iterator end() + { + return FFirstToSecond.end(); + } + +private: + TFirstToSecond FFirstToSecond; + typedef std::map TSecondToFirst; + TSecondToFirst FSecondToFirst; }; //--------------------------------------------------------------------------- #endif diff --git a/source/core/Configuration.cpp b/source/core/Configuration.cpp index 86cc545d..4d1b58ea 100644 --- a/source/core/Configuration.cpp +++ b/source/core/Configuration.cpp @@ -18,6 +18,9 @@ //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- +const wchar_t * AutoSwitchNames = L"On;Off;Auto"; +const wchar_t * NotAutoSwitchNames = L"Off;On;Auto"; +//--------------------------------------------------------------------------- // See http://www.iana.org/assignments/hash-function-text-names/hash-function-text-names.xhtml const UnicodeString Sha1ChecksumAlg(L"sha-1"); const UnicodeString Sha224ChecksumAlg(L"sha-224"); @@ -28,6 +31,9 @@ const UnicodeString Md5ChecksumAlg(L"md5"); // Not defined by IANA const UnicodeString Crc32ChecksumAlg(L"crc32"); //--------------------------------------------------------------------------- +const UnicodeString SshFingerprintType(L"ssh"); +const UnicodeString TlsFingerprintType(L"tls"); +//--------------------------------------------------------------------------- __fastcall TConfiguration::TConfiguration() { FCriticalSection = new TCriticalSection(); @@ -37,6 +43,7 @@ __fastcall TConfiguration::TConfiguration() FApplicationInfo = NULL; FUsage = new TUsage(this); FDefaultCollectUsage = false; + FScripting = false; UnicodeString RandomSeedPath; if (!GetEnvironmentVariable(L"APPDATA").IsEmpty()) @@ -117,7 +124,7 @@ void __fastcall TConfiguration::Default() //--------------------------------------------------------------------------- __fastcall TConfiguration::~TConfiguration() { - assert(!FUpdating); + DebugAssert(!FUpdating); if (FApplicationInfo) FreeFileInfo(FApplicationInfo); delete FCriticalSection; delete FUsage; @@ -571,6 +578,40 @@ void __fastcall TConfiguration::NeverShowBanner(const UnicodeString SessionKey, } } //--------------------------------------------------------------------------- +UnicodeString __fastcall TConfiguration::FormatFingerprintKey(const UnicodeString & SiteKey, const UnicodeString & FingerprintType) +{ + return FORMAT(L"%s:%s", (SiteKey, FingerprintType)); +} +//--------------------------------------------------------------------------- +void __fastcall TConfiguration::RememberLastFingerprint(const UnicodeString & SiteKey, const UnicodeString & FingerprintType, const UnicodeString & Fingerprint) +{ + std::unique_ptr Storage(CreateConfigStorage()); + Storage->AccessMode = smReadWrite; + + if (Storage->OpenSubKey(ConfigurationSubKey, true) && + Storage->OpenSubKey(L"LastFingerprints", true)) + { + UnicodeString FingerprintKey = FormatFingerprintKey(SiteKey, FingerprintType); + Storage->WriteString(FingerprintKey, Fingerprint); + } +} +//--------------------------------------------------------------------------- +UnicodeString __fastcall TConfiguration::LastFingerprint(const UnicodeString & SiteKey, const UnicodeString & FingerprintType) +{ + UnicodeString Result; + + std::unique_ptr Storage(CreateConfigStorage()); + Storage->AccessMode = smRead; + + if (Storage->OpenSubKey(ConfigurationSubKey, false) && + Storage->OpenSubKey(L"LastFingerprints", false)) + { + UnicodeString FingerprintKey = FormatFingerprintKey(SiteKey, FingerprintType); + Result = Storage->ReadString(FingerprintKey, L""); + } + return Result; +} +//--------------------------------------------------------------------------- void __fastcall TConfiguration::Changed() { if (FUpdating == 0) @@ -594,12 +635,12 @@ void __fastcall TConfiguration::BeginUpdate() } FUpdating++; // Greater value would probably indicate some nesting problem in code - assert(FUpdating < 6); + DebugAssert(FUpdating < 6); } //--------------------------------------------------------------------------- void __fastcall TConfiguration::EndUpdate() { - assert(FUpdating > 0); + DebugAssert(FUpdating > 0); FUpdating--; if ((FUpdating == 0) && FChanged) { @@ -870,7 +911,7 @@ UnicodeString __fastcall TConfiguration::GetVersionStr() UnicodeString FullVersion = Version; UnicodeString AReleaseType = GetReleaseType(); - if (ALWAYS_TRUE(!AReleaseType.IsEmpty()) && + if (DebugAlwaysTrue(!AReleaseType.IsEmpty()) && !SameText(AReleaseType, L"stable") && !SameText(AReleaseType, L"development")) { @@ -891,12 +932,26 @@ UnicodeString __fastcall TConfiguration::GetVersionStr() } } //--------------------------------------------------------------------------- -UnicodeString __fastcall TConfiguration::GetVersion() +UnicodeString __fastcall TConfiguration::GetFileVersion(const UnicodeString & FileName) +{ + UnicodeString Result; + void * FileInfo = CreateFileInfo(FileName); + try + { + Result = GetFileVersion(GetFixedFileInfo(FileInfo)); + } + __finally + { + FreeFileInfo(FileInfo); + } + return Result; +} +//--------------------------------------------------------------------------- +UnicodeString __fastcall TConfiguration::GetFileVersion(TVSFixedFileInfo * Info) { TGuard Guard(FCriticalSection); try { - TVSFixedFileInfo * Info = FixedApplicationInfo; UnicodeString Result = FormatVersion( HIWORD(Info->dwFileVersionMS), @@ -906,10 +961,15 @@ UnicodeString __fastcall TConfiguration::GetVersion() } catch (Exception &E) { - throw ExtException(&E, L"Can't get application version"); + throw ExtException(&E, L"Can't get file version"); } } //--------------------------------------------------------------------------- +UnicodeString __fastcall TConfiguration::GetVersion() +{ + return GetFileVersion(FixedApplicationInfo); +} +//--------------------------------------------------------------------------- UnicodeString __fastcall TConfiguration::GetFileFileInfoString(const UnicodeString Key, const UnicodeString FileName, bool AllowEmpty) { @@ -927,7 +987,7 @@ UnicodeString __fastcall TConfiguration::GetFileFileInfoString(const UnicodeStri } else { - assert(!FileName.IsEmpty()); + DebugAssert(!FileName.IsEmpty()); } } __finally @@ -1152,6 +1212,51 @@ TStorage __fastcall TConfiguration::GetStorage() } return FStorage; } +//--------------------------------------------------------------------- +TStoredSessionList * __fastcall TConfiguration::SelectFilezillaSessionsForImport( + TStoredSessionList * Sessions, UnicodeString & Error) +{ + std::unique_ptr ImportSessionList(new TStoredSessionList(true)); + ImportSessionList->DefaultSettings = Sessions->DefaultSettings; + + UnicodeString AppDataPath = GetShellFolderPath(CSIDL_APPDATA); + UnicodeString FilezillaSiteManagerFile = + IncludeTrailingBackslash(AppDataPath) + L"FileZilla\\sitemanager.xml"; + + if (FileExists(ApiPath(FilezillaSiteManagerFile))) + { + ImportSessionList->ImportFromFilezilla(FilezillaSiteManagerFile); + + if (ImportSessionList->Count > 0) + { + ImportSessionList->SelectSessionsToImport(Sessions, true); + } + else + { + Error = FMTLOAD(FILEZILLA_NO_SITES, (FilezillaSiteManagerFile)); + } + } + else + { + Error = FMTLOAD(FILEZILLA_SITE_MANAGER_NOT_FOUND, (FilezillaSiteManagerFile)); + } + + return ImportSessionList.release(); +} +//--------------------------------------------------------------------- +bool __fastcall TConfiguration::AnyFilezillaSessionForImport(TStoredSessionList * Sessions) +{ + try + { + UnicodeString Error; + std::unique_ptr Sesssions(SelectFilezillaSessionsForImport(Sessions, Error)); + return (Sesssions->Count > 0); + } + catch (...) + { + return false; + } +} //--------------------------------------------------------------------------- void __fastcall TConfiguration::SetRandomSeedFile(UnicodeString value) { @@ -1179,6 +1284,7 @@ void __fastcall TConfiguration::SetRandomSeedFile(UnicodeString value) //--------------------------------------------------------------------- UnicodeString __fastcall TConfiguration::GetRandomSeedFileName() { + // StripPathQuotes should not be needed as we do not feed quotes anymore return StripPathQuotes(ExpandEnvironmentVariables(FRandomSeedFile)).Trim(); } //--------------------------------------------------------------------- @@ -1439,6 +1545,11 @@ void __fastcall TConfiguration::SetShowFtpWelcomeMessage(bool value) SET_CONFIG_PROPERTY(ShowFtpWelcomeMessage); } //--------------------------------------------------------------------------- +bool __fastcall TConfiguration::GetPersistent() +{ + return (Storage != stNul); +} +//--------------------------------------------------------------------------- //--------------------------------------------------------------------------- void __fastcall TShortCuts::Add(TShortCut ShortCut) { diff --git a/source/core/Configuration.h b/source/core/Configuration.h index 181dc71e..e5a5171d 100644 --- a/source/core/Configuration.h +++ b/source/core/Configuration.h @@ -13,7 +13,12 @@ #define SET_CONFIG_PROPERTY(PROPERTY) \ SET_CONFIG_PROPERTY_EX(PROPERTY, ) //--------------------------------------------------------------------------- +extern const wchar_t * AutoSwitchNames; +extern const wchar_t * NotAutoSwitchNames; enum TAutoSwitch { asOn, asOff, asAuto }; +enum TAssemblyLanguage { alCSharp, alVBNET, alPowerShell }; +//--------------------------------------------------------------------------- +class TStoredSessionList; //--------------------------------------------------------------------------- class TConfiguration : public TObject { @@ -60,6 +65,7 @@ class TConfiguration : public TObject UnicodeString FPuttyRegistryStorageKey; UnicodeString FExternalIpAddress; bool FTryFtpWhenSshFails; + bool FScripting; bool FDisablePasswordStoring; bool FForceBanners; @@ -74,6 +80,7 @@ class TConfiguration : public TObject UnicodeString __fastcall GetProductVersion(); UnicodeString __fastcall GetProductName(); UnicodeString __fastcall GetCompanyName(); + UnicodeString __fastcall GetFileVersion(TVSFixedFileInfo * Info); UnicodeString __fastcall GetStoredSessionsSubKey(); UnicodeString __fastcall GetPuttySessionsKey(); void __fastcall SetRandomSeedFile(UnicodeString value); @@ -121,6 +128,7 @@ class TConfiguration : public TObject bool __fastcall GetCollectUsage(); void __fastcall SetCollectUsage(bool value); bool __fastcall GetIsUnofficial(); + bool __fastcall GetPersistent(); protected: TStorage FStorage; @@ -139,6 +147,7 @@ class TConfiguration : public TObject UnicodeString __fastcall BannerHash(const UnicodeString & Banner); static UnicodeString __fastcall PropertyToKey(const UnicodeString & Property); virtual void __fastcall DoSave(bool All, bool Explicit); + UnicodeString __fastcall FormatFingerprintKey(const UnicodeString & SiteKey, const UnicodeString & FingerprintType); virtual bool __fastcall GetConfirmOverwriting(); virtual void __fastcall SetConfirmOverwriting(bool value); @@ -190,6 +199,8 @@ class TConfiguration : public TObject TRemoteDirectoryChangesCache * DirectoryChangesCache); bool __fastcall ShowBanner(const UnicodeString SessionKey, const UnicodeString & Banner); void __fastcall NeverShowBanner(const UnicodeString SessionKey, const UnicodeString & Banner); + void __fastcall RememberLastFingerprint(const UnicodeString & SiteKey, const UnicodeString & FingerprintType, const UnicodeString & Fingerprint); + UnicodeString __fastcall LastFingerprint(const UnicodeString & SiteKey, const UnicodeString & FingerprintType); THierarchicalStorage * CreateConfigStorage(); virtual THierarchicalStorage * CreateScpStorage(bool & SessionList); void __fastcall TemporaryLogging(const UnicodeString ALogFileName); @@ -200,6 +211,11 @@ class TConfiguration : public TObject virtual UnicodeString __fastcall DecryptPassword(RawByteString Password, UnicodeString Key); virtual RawByteString __fastcall StronglyRecryptPassword(RawByteString Password, UnicodeString Key); UnicodeString __fastcall GetFileDescription(const UnicodeString & FileName); + UnicodeString __fastcall GetFileVersion(const UnicodeString & FileName); + + TStoredSessionList * __fastcall SelectFilezillaSessionsForImport( + TStoredSessionList * Sessions, UnicodeString & Error); + bool __fastcall AnyFilezillaSessionForImport(TStoredSessionList * Sessions); __property TVSFixedFileInfo *FixedApplicationInfo = { read=GetFixedApplicationInfo }; __property void * ApplicationInfo = { read=GetApplicationInfo }; @@ -257,6 +273,8 @@ class TConfiguration : public TObject __property UnicodeString IniFileStorageName = { read=GetIniFileStorageNameForReadingWriting, write=SetIniFileStorageName }; __property UnicodeString IniFileStorageNameForReading = { read=GetIniFileStorageNameForReading }; __property TStrings * OptionsStorage = { read = GetOptionsStorage, write = SetOptionsStorage }; + __property bool Persistent = { read = GetPersistent }; + __property bool Scripting = { read = FScripting, write = FScripting }; __property UnicodeString DefaultKeyFile = { read = GetDefaultKeyFile }; @@ -288,4 +306,7 @@ extern const UnicodeString Sha512ChecksumAlg; extern const UnicodeString Md5ChecksumAlg; extern const UnicodeString Crc32ChecksumAlg; //--------------------------------------------------------------------------- +extern const UnicodeString SshFingerprintType; +extern const UnicodeString TlsFingerprintType; +//--------------------------------------------------------------------------- #endif diff --git a/source/core/CopyParam.cpp b/source/core/CopyParam.cpp index a93e3c13..dc098048 100644 --- a/source/core/CopyParam.cpp +++ b/source/core/CopyParam.cpp @@ -28,6 +28,7 @@ void __fastcall TCopyParamType::Default() FileNameCase = ncNoChange; PreserveReadOnly = false; PreserveTime = true; + PreserveTimeDirs = false; Rights.Number = TRights::rfDefault; PreserveRights = false; // Was True until #106 IgnorePermErrors = false; @@ -143,7 +144,7 @@ void __fastcall TCopyParamType::DoGetInfoStr( if ((InvalidCharsReplacement == NoReplacement) != (Defaults.InvalidCharsReplacement == NoReplacement)) { - assert(InvalidCharsReplacement == NoReplacement); + DebugAssert(InvalidCharsReplacement == NoReplacement); if (InvalidCharsReplacement == NoReplacement) { ADD(LoadStr(COPY_INFO_DONT_REPLACE_INV_CHARS), cpaIncludeMaskOnly); @@ -154,7 +155,7 @@ void __fastcall TCopyParamType::DoGetInfoStr( (PreserveRights && ((Rights != Defaults.Rights) || (AddXToDirectories != Defaults.AddXToDirectories)))) { - assert(PreserveRights); + DebugAssert(PreserveRights); if (PreserveRights) { @@ -168,16 +169,35 @@ void __fastcall TCopyParamType::DoGetInfoStr( } } - if (PreserveTime != Defaults.PreserveTime) + bool AddPreserveTime = (PreserveTime != Defaults.PreserveTime); + bool APreserveTimeDirs = PreserveTime && PreserveTimeDirs; + if (AddPreserveTime || (APreserveTimeDirs != Defaults.PreserveTimeDirs)) { - ADD(LoadStr(PreserveTime ? COPY_INFO_TIMESTAMP : COPY_INFO_DONT_PRESERVE_TIME), - cpaIncludeMaskOnly | cpaNoPreserveTime); + UnicodeString Str = LoadStr(PreserveTime ? COPY_INFO_TIMESTAMP : COPY_INFO_DONT_PRESERVE_TIME); + + if (APreserveTimeDirs != Defaults.PreserveTimeDirs) + { + if (DebugAlwaysTrue(PreserveTimeDirs)) + { + if (FLAGCLEAR(Options, cpaNoPreserveTimeDirs)) + { + Str = FMTLOAD(COPY_INFO_PRESERVE_TIME_DIRS, (Str)); + AddPreserveTime = true; + } + } + ADD("", cpaIncludeMaskOnly | cpaNoPreserveTime | cpaNoPreserveTimeDirs); + } + + if (AddPreserveTime) + { + ADD(Str, cpaIncludeMaskOnly | cpaNoPreserveTime); + } } if ((PreserveRights || PreserveTime) && (IgnorePermErrors != Defaults.IgnorePermErrors)) { - assert(IgnorePermErrors); + DebugAssert(IgnorePermErrors); if (IgnorePermErrors) { @@ -188,7 +208,7 @@ void __fastcall TCopyParamType::DoGetInfoStr( if (PreserveReadOnly != Defaults.PreserveReadOnly) { - assert(PreserveReadOnly); + DebugAssert(PreserveReadOnly); if (PreserveReadOnly) { ADD(LoadStr(COPY_INFO_PRESERVE_READONLY), @@ -198,7 +218,7 @@ void __fastcall TCopyParamType::DoGetInfoStr( if (CalculateSize != Defaults.CalculateSize) { - assert(!CalculateSize); + DebugAssert(!CalculateSize); if (!CalculateSize) { ADD(LoadStr(COPY_INFO_DONT_CALCULATE_SIZE), cpaIncludeMaskOnly); @@ -207,7 +227,7 @@ void __fastcall TCopyParamType::DoGetInfoStr( if (ClearArchive != Defaults.ClearArchive) { - assert(ClearArchive); + DebugAssert(ClearArchive); if (ClearArchive) { ADD(LoadStr(COPY_INFO_CLEAR_ARCHIVE), @@ -219,7 +239,7 @@ void __fastcall TCopyParamType::DoGetInfoStr( { if (RemoveBOM != Defaults.RemoveBOM) { - if (ALWAYS_TRUE(RemoveBOM)) + if (DebugAlwaysTrue(RemoveBOM)) { ADD(LoadStr(COPY_INFO_REMOVE_BOM), cpaIncludeMaskOnly | cpaNoRemoveBOM | cpaNoTransferMode); @@ -228,7 +248,7 @@ void __fastcall TCopyParamType::DoGetInfoStr( if (RemoveCtrlZ != Defaults.RemoveCtrlZ) { - if (ALWAYS_TRUE(RemoveCtrlZ)) + if (DebugAlwaysTrue(RemoveCtrlZ)) { ADD(LoadStr(COPY_INFO_REMOVE_CTRLZ), cpaIncludeMaskOnly | cpaNoRemoveCtrlZ | cpaNoTransferMode); @@ -242,8 +262,8 @@ void __fastcall TCopyParamType::DoGetInfoStr( cpaNoIncludeMask); } - assert(FTransferSkipList.get() == NULL); - assert(FTransferResumeFile.IsEmpty()); + DebugAssert(FTransferSkipList.get() == NULL); + DebugAssert(FTransferResumeFile.IsEmpty()); if (CPSLimit > 0) { @@ -252,7 +272,7 @@ void __fastcall TCopyParamType::DoGetInfoStr( if (NewerOnly != Defaults.NewerOnly) { - if (ALWAYS_TRUE(NewerOnly)) + if (DebugAlwaysTrue(NewerOnly)) { ADD(StripHotkey(LoadStr(COPY_PARAM_NEWER_ONLY)), cpaIncludeMaskOnly | cpaNoNewerOnly); } @@ -273,11 +293,12 @@ void __fastcall TCopyParamType::DoGetInfoStr( //--------------------------------------------------------------------------- void __fastcall TCopyParamType::Assign(const TCopyParamType * Source) { - assert(Source != NULL); + DebugAssert(Source != NULL); #define COPY(Prop) Prop = Source->Prop COPY(FileNameCase); COPY(PreserveReadOnly); COPY(PreserveTime); + COPY(PreserveTimeDirs); COPY(Rights); COPY(AsciiFileMask); COPY(TransferMode); @@ -433,7 +454,7 @@ bool __fastcall TCopyParamType::UseAsciiTransfer(UnicodeString FileName, case tmAscii: return true; case tmAutomatic: return AsciiFileMask.Matches(FileName, (Side == osLocal), false, &Params); - default: FAIL; return false; + default: DebugFail(); return false; } } //--------------------------------------------------------------------------- @@ -453,9 +474,10 @@ UnicodeString __fastcall TCopyParamType::GetLogStr() const // OpenArray (ARRAYOFCONST) supports only up to 19 arguments, so we had to split it return FORMAT( - L" PrTime: %s; PrRO: %s; Rght: %s; PrR: %s (%s); FnCs: %s; RIC: %s; " + L" PrTime: %s%s; PrRO: %s; Rght: %s; PrR: %s (%s); FnCs: %s; RIC: %s; " "Resume: %s (%d); CalcS: %s; Mask: %s\n", (BooleanToEngStr(PreserveTime), + UnicodeString(PreserveTime && PreserveTimeDirs ? L"+Dirs" : L""), BooleanToEngStr(PreserveReadOnly), Rights.Text, BooleanToEngStr(PreserveRights), @@ -497,7 +519,7 @@ bool __fastcall TCopyParamType::AllowResume(__int64 Size) const case rsOn: return true; case rsOff: return false; case rsSmart: return (Size >= ResumeThreshold); - default: FAIL; return false; + default: DebugFail(); return false; } } //--------------------------------------------------------------------------- @@ -540,7 +562,7 @@ bool __fastcall TCopyParamType::ResumeTransfer(UnicodeString FileName) const // Returning true has the same effect as cpResume return (FileName == FTransferResumeFile) && - ALWAYS_TRUE(!FTransferResumeFile.IsEmpty()); + DebugAlwaysTrue(!FTransferResumeFile.IsEmpty()); } //--------------------------------------------------------------------------- TStrings * __fastcall TCopyParamType::GetTransferSkipList() const @@ -569,6 +591,7 @@ void __fastcall TCopyParamType::Load(THierarchicalStorage * Storage) FileNameCase = (TFileNameCase)Storage->ReadInteger(L"FileNameCase", FileNameCase); PreserveReadOnly = Storage->ReadBool(L"PreserveReadOnly", PreserveReadOnly); PreserveTime = Storage->ReadBool(L"PreserveTime", PreserveTime); + PreserveTimeDirs = Storage->ReadBool(L"PreserveTimeDirs", PreserveTimeDirs); PreserveRights = Storage->ReadBool(L"PreserveRights", PreserveRights); IgnorePermErrors = Storage->ReadBool(L"IgnorePermErrors", IgnorePermErrors); Rights.Text = Storage->ReadString(L"Text", Rights.Text); @@ -616,6 +639,7 @@ void __fastcall TCopyParamType::Save(THierarchicalStorage * Storage) const Storage->WriteInteger(L"FileNameCase", FileNameCase); Storage->WriteBool(L"PreserveReadOnly", PreserveReadOnly); Storage->WriteBool(L"PreserveTime", PreserveTime); + Storage->WriteBool(L"PreserveTimeDirs", PreserveTimeDirs); Storage->WriteBool(L"PreserveRights", PreserveRights); Storage->WriteBool(L"IgnorePermErrors", IgnorePermErrors); Storage->WriteString(L"Text", Rights.Text); @@ -628,8 +652,8 @@ void __fastcall TCopyParamType::Save(THierarchicalStorage * Storage) const Storage->WriteString(L"IncludeFileMask", IncludeFileMask.Masks); Storage->DeleteValue(L"ExcludeFileMask"); // obsolete Storage->DeleteValue(L"NegativeExclude"); // obsolete - assert(FTransferSkipList.get() == NULL); - assert(FTransferResumeFile.IsEmpty()); + DebugAssert(FTransferSkipList.get() == NULL); + DebugAssert(FTransferResumeFile.IsEmpty()); Storage->WriteBool(L"ClearArchive", ClearArchive); Storage->WriteBool(L"RemoveCtrlZ", RemoveCtrlZ); Storage->WriteBool(L"RemoveBOM", RemoveBOM); @@ -640,16 +664,17 @@ void __fastcall TCopyParamType::Save(THierarchicalStorage * Storage) const #define C(Property) (Property == rhp.Property) bool __fastcall TCopyParamType::operator==(const TCopyParamType & rhp) const { - assert(FTransferSkipList.get() == NULL); - assert(FTransferResumeFile.IsEmpty()); - assert(rhp.FTransferSkipList.get() == NULL); - assert(rhp.FTransferResumeFile.IsEmpty()); + DebugAssert(FTransferSkipList.get() == NULL); + DebugAssert(FTransferResumeFile.IsEmpty()); + DebugAssert(rhp.FTransferSkipList.get() == NULL); + DebugAssert(rhp.FTransferResumeFile.IsEmpty()); return C(AddXToDirectories) && C(AsciiFileMask) && C(FileNameCase) && C(PreserveReadOnly) && C(PreserveTime) && + C(PreserveTimeDirs) && C(PreserveRights) && C(IgnorePermErrors) && C(Rights) && @@ -669,24 +694,34 @@ bool __fastcall TCopyParamType::operator==(const TCopyParamType & rhp) const } #undef C //--------------------------------------------------------------------------- -unsigned long __fastcall GetSpeedLimit(const UnicodeString & Text) +static bool __fastcall TryGetSpeedLimit(const UnicodeString & Text, unsigned long & Speed) { - unsigned long Speed; + bool Result; if (AnsiSameText(Text, LoadStr(SPEED_UNLIMITED))) { Speed = 0; + Result = true; } else { int SSpeed; - if (!TryStrToInt(Text, SSpeed) || - (SSpeed < 0)) + Result = TryStrToInt(Text, SSpeed) && (SSpeed >= 0); + if (Result) { - throw Exception(FMTLOAD(SPEED_INVALID, (Text))); + Speed = SSpeed * 1024; } - Speed = SSpeed; } - return Speed * 1024; + return Result; +} +//--------------------------------------------------------------------------- +unsigned long __fastcall GetSpeedLimit(const UnicodeString & Text) +{ + unsigned long Speed; + if (!TryGetSpeedLimit(Text, Speed)) + { + throw Exception(FMTLOAD(SPEED_INVALID, (Text))); + } + return Speed; } //--------------------------------------------------------------------------- UnicodeString __fastcall SetSpeedLimit(unsigned long Limit) @@ -702,3 +737,32 @@ UnicodeString __fastcall SetSpeedLimit(unsigned long Limit) } return Text; } +//--------------------------------------------------------------------------- +void __fastcall CopySpeedLimits(TStrings * Source, TStrings * Dest) +{ + std::unique_ptr Temp(new TStringList()); + + bool Unlimited = false; + for (int Index = 0; Index < Source->Count; Index++) + { + UnicodeString Text = Source->Strings[Index]; + unsigned long Speed; + bool Valid = TryGetSpeedLimit(Text, Speed); + if ((!Valid || (Speed == 0)) && !Unlimited) + { + Temp->Add(LoadStr(SPEED_UNLIMITED)); + Unlimited = true; + } + else if (Valid && (Speed > 0)) + { + Temp->Add(Text); + } + } + + if (!Unlimited) + { + Temp->Insert(0, LoadStr(SPEED_UNLIMITED)); + } + + Dest->Assign(Temp.get()); +} diff --git a/source/core/CopyParam.h b/source/core/CopyParam.h index 45e65eb9..dac36163 100644 --- a/source/core/CopyParam.h +++ b/source/core/CopyParam.h @@ -23,6 +23,7 @@ const int cpaNoIgnorePermErrors = 0x80; const int cpaNoNewerOnly = 0x100; const int cpaNoRemoveCtrlZ = 0x200; const int cpaNoRemoveBOM = 0x400; +const int cpaNoPreserveTimeDirs = 0x800; //--------------------------------------------------------------------------- struct TUsableCopyParamAttrs { @@ -38,6 +39,7 @@ class TCopyParamType TFileNameCase FFileNameCase; bool FPreserveReadOnly; bool FPreserveTime; + bool FPreserveTimeDirs; TRights FRights; TTransferMode FTransferMode; bool FAddXToDirectories; @@ -105,6 +107,7 @@ class TCopyParamType __property TFileNameCase FileNameCase = { read = FFileNameCase, write = FFileNameCase }; __property bool PreserveReadOnly = { read = FPreserveReadOnly, write = FPreserveReadOnly }; __property bool PreserveTime = { read = FPreserveTime, write = FPreserveTime }; + __property bool PreserveTimeDirs = { read = FPreserveTimeDirs, write = FPreserveTimeDirs }; __property TRights Rights = { read = FRights, write = FRights }; __property TTransferMode TransferMode = { read = FTransferMode, write = FTransferMode }; __property UnicodeString LogStr = { read=GetLogStr }; @@ -130,5 +133,6 @@ class TCopyParamType //--------------------------------------------------------------------------- unsigned long __fastcall GetSpeedLimit(const UnicodeString & Text); UnicodeString __fastcall SetSpeedLimit(unsigned long Limit); +void __fastcall CopySpeedLimits(TStrings * Source, TStrings * Dest); //--------------------------------------------------------------------------- #endif diff --git a/source/core/CoreMain.cpp b/source/core/CoreMain.cpp index 897607b3..cbedf33f 100644 --- a/source/core/CoreMain.cpp +++ b/source/core/CoreMain.cpp @@ -24,6 +24,7 @@ TQueryButtonAlias::TQueryButtonAlias() { OnClick = NULL; GroupWith = -1; + ElevationRequired = false; } //--------------------------------------------------------------------------- TQueryParams::TQueryParams(unsigned int AParams, UnicodeString AHelpKeyword) @@ -125,7 +126,7 @@ void CoreInitialize() CryptographyInitialize(); // we do not expect configuration re-creation - assert(Configuration == NULL); + DebugAssert(Configuration == NULL); // configuration needs to be created and loaded before putty is initialized, // so that random seed path is known Configuration = CreateConfiguration(); @@ -169,7 +170,7 @@ void CoreSetResourceModule(void * ResourceHandle) #ifndef NO_FILEZILLA TFileZillaIntf::SetResourceModule(ResourceHandle); #else - USEDPARAM(ResourceHandle); + DebugUsedParam(ResourceHandle); #endif } //--------------------------------------------------------------------------- diff --git a/source/core/Cryptography.cpp b/source/core/Cryptography.cpp index 89b5dea7..f2631462 100644 --- a/source/core/Cryptography.cpp +++ b/source/core/Cryptography.cpp @@ -387,7 +387,7 @@ void __fastcall AES256EncyptWithMAC(RawByteString Input, UnicodeString Password, { Salt = AES256Salt(); } - assert(Salt.Length() == SALT_LENGTH(PASSWORD_MANAGER_AES_MODE)); + DebugAssert(Salt.Length() == SALT_LENGTH(PASSWORD_MANAGER_AES_MODE)); UTF8String UtfPassword = Password; fcrypt_init(PASSWORD_MANAGER_AES_MODE, reinterpret_cast(UtfPassword.c_str()), UtfPassword.Length(), @@ -413,7 +413,7 @@ bool __fastcall AES256DecryptWithMAC(RawByteString Input, UnicodeString Password RawByteString Salt, RawByteString & Output, RawByteString Mac) { fcrypt_ctx aes; - assert(Salt.Length() == SALT_LENGTH(PASSWORD_MANAGER_AES_MODE)); + DebugAssert(Salt.Length() == SALT_LENGTH(PASSWORD_MANAGER_AES_MODE)); UTF8String UtfPassword = Password; fcrypt_init(PASSWORD_MANAGER_AES_MODE, reinterpret_cast(UtfPassword.c_str()), UtfPassword.Length(), @@ -423,7 +423,7 @@ bool __fastcall AES256DecryptWithMAC(RawByteString Input, UnicodeString Password fcrypt_decrypt(reinterpret_cast(Output.c_str()), Output.Length(), &aes); RawByteString Mac2; Mac2.SetLength(MAC_LENGTH(PASSWORD_MANAGER_AES_MODE)); - assert(Mac.Length() == Mac2.Length()); + DebugAssert(Mac.Length() == Mac2.Length()); fcrypt_end(reinterpret_cast(Mac2.c_str()), &aes); return (Mac2 == Mac); } @@ -470,7 +470,7 @@ bool __fastcall AES256Verify(UnicodeString Input, RawByteString Verifier) RawByteString Mac2; AES256EncyptWithMAC(Dummy, Input, Salt, Encrypted, Mac2); - assert(Mac2.Length() == Mac.Length()); + DebugAssert(Mac2.Length() == Mac.Length()); return (Mac == Mac2); } @@ -567,7 +567,7 @@ bool __fastcall UnscramblePassword(RawByteString Scrambled, UnicodeString & Pass } if (Result) { - Password = UTF8String(Scrambled.c_str(), Scrambled.Length()); + Password = UTF8ToString(Scrambled); } else { diff --git a/source/core/Exceptions.cpp b/source/core/Exceptions.cpp index 06f06a41..aeb0d825 100644 --- a/source/core/Exceptions.cpp +++ b/source/core/Exceptions.cpp @@ -85,7 +85,7 @@ static bool __fastcall WellKnownException( } if (AClone != NULL) { - (*AClone) = NOT_NULL(Clone.release()); + (*AClone) = DebugNotNull(Clone.release()); } } @@ -419,7 +419,7 @@ Exception * __fastcall CloneException(Exception * E) else { // we do not expect this to happen - if (ALWAYS_FALSE(IsInternalException(E))) + if (DebugAlwaysFalse(IsInternalException(E))) { // to save exception stack trace Result = ExtException::CloneFrom(E); @@ -434,8 +434,8 @@ Exception * __fastcall CloneException(Exception * E) //--------------------------------------------------------------------------- void __fastcall RethrowException(Exception * E) { - // this list has to be in sync with ExceptionMessage - if (dynamic_cast(E) != NULL) + // this list has to be in sync with ExceptionMessage + if (dynamic_cast(E) != NULL) { throw EFatal(E, L""); } diff --git a/source/core/FileBuffer.cpp b/source/core/FileBuffer.cpp index b027d4b7..5aa75267 100644 --- a/source/core/FileBuffer.cpp +++ b/source/core/FileBuffer.cpp @@ -7,13 +7,15 @@ //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- +const wchar_t * EOLTypeNames = L"LF;CRLF;CR"; +//--------------------------------------------------------------------------- char * __fastcall EOLToStr(TEOLType EOLType) { switch (EOLType) { case eolLF: return "\n"; case eolCRLF: return "\r\n"; case eolCR: return "\r"; - default: FAIL; return ""; + default: DebugFail(); return ""; } } //--------------------------------------------------------------------------- @@ -95,8 +97,8 @@ DWORD __fastcall TFileBuffer::LoadStream(TStream * Stream, const DWORD Len, bool void __fastcall TFileBuffer::Convert(char * Source, char * Dest, int Params, bool & Token) { - assert(strlen(Source) <= 2); - assert(strlen(Dest) <= 2); + DebugAssert(strlen(Source) <= 2); + DebugAssert(strlen(Dest) <= 2); if (FLAGSET(Params, cpRemoveBOM) && (Size >= 3) && (memcmp(Data, Bom, sizeof(Bom)) == 0)) @@ -260,7 +262,7 @@ int __fastcall TSafeHandleStream::Write(const void * Buffer, int Count) //--------------------------------------------------------------------------- int __fastcall TSafeHandleStream::Read(System::DynamicArray Buffer, int Offset, int Count) { - FAIL; // untested + DebugFail(); // untested int Result = FileRead(FHandle, Buffer, Offset, Count); if (Result == -1) { @@ -271,7 +273,7 @@ int __fastcall TSafeHandleStream::Read(System::DynamicArray Buffer //--------------------------------------------------------------------------- int __fastcall TSafeHandleStream::Write(const System::DynamicArray Buffer, int Offset, int Count) { - FAIL; // untested + DebugFail(); // untested int Result = FileWrite(FHandle, Buffer, Offset, Count); if (Result == -1) { diff --git a/source/core/FileBuffer.h b/source/core/FileBuffer.h index 8572733d..c7ac39c2 100644 --- a/source/core/FileBuffer.h +++ b/source/core/FileBuffer.h @@ -4,6 +4,7 @@ #include //--------------------------------------------------------------------------- +extern const wchar_t * EOLTypeNames; enum TEOLType { eolLF /* \n */, eolCRLF /* \r\n */, eolCR /* \r */ }; const int cpRemoveCtrlZ = 0x01; const int cpRemoveBOM = 0x02; diff --git a/source/core/FileMasks.cpp b/source/core/FileMasks.cpp index b91e4bce..ac3f6903 100644 --- a/source/core/FileMasks.cpp +++ b/source/core/FileMasks.cpp @@ -105,6 +105,16 @@ UnicodeString __fastcall MaskFileName(UnicodeString FileName, const UnicodeStrin return FileName; } //--------------------------------------------------------------------------- +bool __fastcall IsFileNameMask(const UnicodeString & Mask) +{ + bool Result = Mask.IsEmpty(); // empty mask is the same as * + if (!Result) + { + MaskFilePart(UnicodeString(), Mask, Result); + } + return Result; +} +//--------------------------------------------------------------------------- bool __fastcall IsEffectiveFileNameMask(const UnicodeString & Mask) { return !Mask.IsEmpty() && (Mask != L"*") && (Mask != L"*.*"); @@ -395,7 +405,7 @@ bool __fastcall TFileMasks::MatchesMasks(const UnicodeString FileName, bool Dire UnicodeString ParentPath = SimpleUnixExcludeTrailingBackslash(UnixExtractFilePath(Path)); // Pass Params down or not? // Currently it includes Size/Time only, what is not used for directories. - // So it depends of future use. Possibly we should make a copy + // So it depends on future use. Possibly we should make a copy // and pass on only relevant fields. Result = MatchesMasks(ParentFileName, true, ParentPath, Params, Masks, Recurse); } @@ -490,7 +500,7 @@ void __fastcall TFileMasks::CreateMaskMask(const UnicodeString & Mask, int Start { try { - assert(MaskMask.Mask == NULL); + DebugAssert(MaskMask.Mask == NULL); if (Ex && IsAnyMask(Mask)) { MaskMask.Kind = TMaskMask::Any; @@ -510,7 +520,7 @@ void __fastcall TFileMasks::CreateMaskMask(const UnicodeString & Mask, int Start //--------------------------------------------------------------------------- UnicodeString __fastcall TFileMasks::MakeDirectoryMask(UnicodeString Str) { - assert(!Str.IsEmpty()); + DebugAssert(!Str.IsEmpty()); if (Str.IsEmpty() || !Str.IsDelimiter(DirectoryMaskDelimiters, Str.Length())) { int D = Str.LastDelimiter(DirectoryMaskDelimiters); @@ -786,7 +796,7 @@ TCustomCommand::TCustomCommand() void __fastcall TCustomCommand::GetToken( const UnicodeString & Command, int Index, int & Len, wchar_t & PatternCmd) { - assert(Index <= Command.Length()); + DebugAssert(Index <= Command.Length()); const wchar_t * Ptr = Command.c_str() + Index - 1; if (Ptr[0] == L'!') @@ -1079,7 +1089,7 @@ void __fastcall TCustomCommandData::Init( //--------------------------------------------------------------------------- void __fastcall TCustomCommandData::operator=(const TCustomCommandData & Data) { - assert(Data.SessionData != NULL); + DebugAssert(Data.SessionData != NULL); FSessionData.reset(new TSessionData(L"")); FSessionData->Assign(Data.SessionData); } @@ -1122,8 +1132,10 @@ int __fastcall TFileCustomCommand::PatternLen(const UnicodeString & Command, int case L'@': case L'U': case L'P': + case L'#': case L'/': case L'&': + case L'N': Len = 2; break; @@ -1155,6 +1167,10 @@ bool __fastcall TFileCustomCommand::PatternReplacement( { Replacement = FData.SessionData->Password; } + else if (AnsiSameText(Pattern, L"!#")) + { + Replacement = IntToStr(FData.SessionData->PortNumber); + } else if (Pattern == L"!/") { Replacement = UnixIncludeTrailingBackslash(FPath); @@ -1165,9 +1181,13 @@ bool __fastcall TFileCustomCommand::PatternReplacement( // already delimited Delimit = false; } + else if (AnsiSameText(Pattern, L"!n")) + { + Replacement = FData.SessionData->SessionName; + } else { - assert(Pattern.Length() == 1); + DebugAssert(Pattern.Length() == 1); Replacement = FFileName; } @@ -1190,7 +1210,7 @@ void __fastcall TFileCustomCommand::ValidatePattern(const UnicodeString & Comman { int * Found = static_cast(Arg); - assert(Index > 0); + DebugAssert(Index > 0); if (PatternCmd == L'&') { diff --git a/source/core/FileMasks.h b/source/core/FileMasks.h index 3c1a07c2..74cff5ab 100644 --- a/source/core/FileMasks.h +++ b/source/core/FileMasks.h @@ -121,6 +121,7 @@ class TFileMasks }; //--------------------------------------------------------------------------- UnicodeString __fastcall MaskFileName(UnicodeString FileName, const UnicodeString Mask); +bool __fastcall IsFileNameMask(const UnicodeString & Mask); bool __fastcall IsEffectiveFileNameMask(const UnicodeString & Mask); UnicodeString __fastcall DelimitFileNameMask(UnicodeString Mask); //--------------------------------------------------------------------------- diff --git a/source/core/FileOperationProgress.cpp b/source/core/FileOperationProgress.cpp index b30eb749..9d868680 100644 --- a/source/core/FileOperationProgress.cpp +++ b/source/core/FileOperationProgress.cpp @@ -6,7 +6,7 @@ #include "FileOperationProgress.h" #include "CoreMain.h" //--------------------------------------------------------------------------- -#define TRANSFER_BUF_SIZE 4096 +#define TRANSFER_BUF_SIZE 32768 //--------------------------------------------------------------------------- __fastcall TFileOperationProgressType::TFileOperationProgressType() { @@ -26,8 +26,8 @@ __fastcall TFileOperationProgressType::TFileOperationProgressType( //--------------------------------------------------------------------------- __fastcall TFileOperationProgressType::~TFileOperationProgressType() { - assert(!InProgress || FReset); - assert(!Suspended || FReset); + DebugAssert(!InProgress || FReset); + DebugAssert(!Suspended || FReset); } //--------------------------------------------------------------------------- void __fastcall TFileOperationProgressType::AssignButKeepSuspendState(const TFileOperationProgressType & Other) @@ -131,7 +131,7 @@ void __fastcall TFileOperationProgressType::Stop() //--------------------------------------------------------------------------- void __fastcall TFileOperationProgressType::Suspend() { - assert(!Suspended); + DebugAssert(!Suspended); Suspended = true; FSuspendTime = GetTickCount(); DoProgress(); @@ -139,7 +139,7 @@ void __fastcall TFileOperationProgressType::Suspend() //--------------------------------------------------------------------------- void __fastcall TFileOperationProgressType::Resume() { - assert(Suspended); + DebugAssert(Suspended); Suspended = false; // shift timestamps for CPS calculation in advance @@ -157,7 +157,7 @@ void __fastcall TFileOperationProgressType::Resume() //--------------------------------------------------------------------------- int __fastcall TFileOperationProgressType::OperationProgress() { - assert(Count); + DebugAssert(Count); int Result = (FFilesFinished * 100)/Count; return Result; } @@ -178,7 +178,7 @@ int __fastcall TFileOperationProgressType::TransferProgress() //--------------------------------------------------------------------------- int __fastcall TFileOperationProgressType::TotalTransferProgress() { - assert(TotalSizeSet); + DebugAssert(TotalSizeSet); int Result = TotalSize > 0 ? (int)(((TotalTransfered + TotalSkipped) * 100)/TotalSize) : 0; return Result < 100 ? Result : 100; } @@ -187,7 +187,7 @@ int __fastcall TFileOperationProgressType::OverallProgress() { if (TotalSizeSet) { - assert((Operation == foCopy) || (Operation == foMove)); + DebugAssert((Operation == foCopy) || (Operation == foMove)); return TotalTransferProgress(); } else @@ -210,7 +210,7 @@ void __fastcall TFileOperationProgressType::DoProgress() void __fastcall TFileOperationProgressType::Finish(UnicodeString FileName, bool Success, TOnceDoneOperation & OnceDoneOperation) { - assert(InProgress); + DebugAssert(InProgress); FOnFinished(Operation, Side, Temp, FileName, /* TODO : There wasn't 'Success' condition, was it by mistake or by purpose? */ @@ -238,7 +238,7 @@ void __fastcall TFileOperationProgressType::SetFile(UnicodeString AFileName, boo //--------------------------------------------------------------------------- void __fastcall TFileOperationProgressType::SetFileInProgress() { - assert(!FileInProgress); + DebugAssert(!FileInProgress); FileInProgress = true; DoProgress(); } @@ -261,7 +261,7 @@ void __fastcall TFileOperationProgressType::AddLocallyUsed(__int64 ASize) //--------------------------------------------------------------------------- bool __fastcall TFileOperationProgressType::IsLocallyDone() { - assert(LocallyUsed <= LocalSize); + DebugAssert(LocallyUsed <= LocalSize); return (LocallyUsed == LocalSize); } //--------------------------------------------------------------------------- @@ -364,9 +364,9 @@ void __fastcall TFileOperationProgressType::ChangeTransferSize(__int64 ASize) void __fastcall TFileOperationProgressType::RollbackTransfer() { TransferedSize -= SkippedSize; - assert(TransferedSize <= TotalTransfered); + DebugAssert(TransferedSize <= TotalTransfered); TotalTransfered -= TransferedSize; - assert(SkippedSize <= TotalSkipped); + DebugAssert(SkippedSize <= TotalSkipped); FTicks.clear(); FTotalTransferredThen.clear(); TotalSkipped -= SkippedSize; @@ -444,7 +444,7 @@ unsigned long __fastcall TFileOperationProgressType::StaticBlockSize() //--------------------------------------------------------------------------- bool __fastcall TFileOperationProgressType::IsTransferDone() { - assert(TransferedSize <= TransferSize); + DebugAssert(TransferedSize <= TransferSize); return (TransferedSize == TransferSize); } //--------------------------------------------------------------------------- @@ -508,7 +508,7 @@ TDateTime __fastcall TFileOperationProgressType::TimeExpected() //--------------------------------------------------------------------------- TDateTime __fastcall TFileOperationProgressType::TotalTimeExpected() { - assert(TotalSizeSet); + DebugAssert(TotalSizeSet); unsigned int CurCps = CPS(); // sanity check if ((CurCps > 0) && (TotalSize > TotalSkipped)) @@ -524,7 +524,7 @@ TDateTime __fastcall TFileOperationProgressType::TotalTimeExpected() //--------------------------------------------------------------------------- TDateTime __fastcall TFileOperationProgressType::TotalTimeLeft() { - assert(TotalSizeSet); + DebugAssert(TotalSizeSet); unsigned int CurCps = CPS(); // sanity check if ((CurCps > 0) && (TotalSize > TotalSkipped + TotalTransfered)) diff --git a/source/core/FileOperationProgress.h b/source/core/FileOperationProgress.h index 32ac2f02..18a14c8c 100644 --- a/source/core/FileOperationProgress.h +++ b/source/core/FileOperationProgress.h @@ -10,7 +10,7 @@ class TFileOperationProgressType; enum TFileOperation { foNone, foCopy, foMove, foDelete, foSetProperties, foRename, foCustomCommand, foCalculateSize, foRemoteMove, foRemoteCopy, - foGetProperties, foCalculateChecksum }; + foGetProperties, foCalculateChecksum, foLock, foUnlock }; // csCancelTransfer and csRemoteAbort are used with SCP only enum TCancelStatus { csContinue = 0, csCancel, csCancelTransfer, csRemoteAbort }; enum TBatchOverwrite { boNo, boAll, boNone, boOlder, boAlternateResume, boAppend, boResume }; diff --git a/source/core/FileSystems.cpp b/source/core/FileSystems.cpp index dbd8d86c..f5d2ec0c 100644 --- a/source/core/FileSystems.cpp +++ b/source/core/FileSystems.cpp @@ -11,7 +11,7 @@ __fastcall TCustomFileSystem::TCustomFileSystem(TTerminal * ATerminal): FTerminal(ATerminal) { - assert(FTerminal); + DebugAssert(FTerminal); } //--------------------------------------------------------------------------- __fastcall TCustomFileSystem::~TCustomFileSystem() diff --git a/source/core/FileSystems.h b/source/core/FileSystems.h index a8a27b02..3d8c0382 100644 --- a/source/core/FileSystems.h +++ b/source/core/FileSystems.h @@ -19,7 +19,8 @@ enum TFSCommand { fsNull = 0, fsVarValue, fsLastLine, fsFirstLine, fsListFile, fsLookupUsersGroups, fsCopyToRemote, fsCopyToLocal, fsDeleteFile, fsRenameFile, fsCreateDirectory, fsChangeMode, fsChangeGroup, fsChangeOwner, fsHomeDirectory, fsUnset, fsUnalias, fsCreateLink, fsCopyFile, - fsAnyCommand, fsLang, fsReadSymlink, fsChangeProperties, fsMoveFile }; + fsAnyCommand, fsLang, fsReadSymlink, fsChangeProperties, fsMoveFile, + fsLock }; //--------------------------------------------------------------------------- const int dfNoRecursive = 0x01; const int dfAlternative = 0x02; @@ -86,6 +87,9 @@ class TCustomFileSystem virtual bool __fastcall GetStoredCredentialsTried() = 0; virtual UnicodeString __fastcall GetUserName() = 0; virtual void __fastcall GetSupportedChecksumAlgs(TStrings * Algs) = 0; + virtual void __fastcall LockFile(const UnicodeString & FileName, const TRemoteFile * File) = 0; + virtual void __fastcall UnlockFile(const UnicodeString & FileName, const TRemoteFile * File) = 0; + virtual void __fastcall UpdateFromMain(TCustomFileSystem * MainFileSystem) = 0; __property UnicodeString CurrentDirectory = { read = GetCurrentDirectory }; diff --git a/source/core/FtpFileSystem.cpp b/source/core/FtpFileSystem.cpp index 3eed5fbb..0f3ec5dd 100644 --- a/source/core/FtpFileSystem.cpp +++ b/source/core/FtpFileSystem.cpp @@ -53,8 +53,7 @@ class TFileZillaImpl : public TFileZillaIntf virtual bool __fastcall HandleListData(const wchar_t * Path, const TListDataEntry * Entries, unsigned int Count); virtual bool __fastcall HandleTransferStatus(bool Valid, __int64 TransferSize, - __int64 Bytes, int Percent, int TimeElapsed, int TimeLeft, int TransferRate, - bool FileTransfer); + __int64 Bytes, bool FileTransfer); virtual bool __fastcall HandleReply(int Command, unsigned int Reply); virtual bool __fastcall HandleCapabilities(TFTPServerCapabilities * ServerCapabilities); virtual bool __fastcall CheckError(int ReturnCode, const wchar_t * Context); @@ -123,11 +122,9 @@ bool __fastcall TFileZillaImpl::HandleListData(const wchar_t * Path, } //--------------------------------------------------------------------------- bool __fastcall TFileZillaImpl::HandleTransferStatus(bool Valid, __int64 TransferSize, - __int64 Bytes, int Percent, int TimeElapsed, int TimeLeft, int TransferRate, - bool FileTransfer) + __int64 Bytes, bool FileTransfer) { - return FFileSystem->HandleTransferStatus(Valid, TransferSize, Bytes, Percent, - TimeElapsed, TimeLeft, TransferRate, FileTransfer); + return FFileSystem->HandleTransferStatus(Valid, TransferSize, Bytes, FileTransfer); } //--------------------------------------------------------------------------- bool __fastcall TFileZillaImpl::HandleReply(int Command, unsigned int Reply) @@ -266,6 +263,8 @@ __fastcall TFTPFileSystem::TFTPFileSystem(TTerminal * ATerminal): FHashAlgs.reset(new TStringList()); FSupportedCommands.reset(CreateSortedStringList()); FSupportedSiteCommands.reset(CreateSortedStringList()); + FCertificate = NULL; + FPrivateKey = NULL; FChecksumAlgs.reset(new TStringList()); FChecksumCommands.reset(new TStringList()); @@ -279,7 +278,7 @@ __fastcall TFTPFileSystem::TFTPFileSystem(TTerminal * ATerminal): //--------------------------------------------------------------------------- __fastcall TFTPFileSystem::~TFTPFileSystem() { - assert(FFileList == NULL); + DebugAssert(FFileList == NULL); FFileZillaIntf->Destroying(); @@ -322,30 +321,6 @@ void __fastcall TFTPFileSystem::Open() FReadCurrentDirectory = true; FHomeDirectory = L""; - TSessionData * Data = FTerminal->SessionData; - - FSessionInfo.LoginTime = Now(); - - switch (Data->Ftps) - { - case ftpsNone: - // noop; - break; - - case ftpsImplicit: - FSessionInfo.SecurityProtocolName = LoadStr(FTPS_IMPLICIT); - break; - - case ftpsExplicitSsl: - case ftpsExplicitTls: - FSessionInfo.SecurityProtocolName = LoadStr(FTPS_EXPLICIT); - break; - - default: - FAIL; - break; - } - FLastDataSent = Now(); FMultineResponse = false; @@ -382,8 +357,12 @@ void __fastcall TFTPFileSystem::Open() } } + TSessionData * Data = FTerminal->SessionData; + FTransferActiveImmediately = (Data->FtpTransferActiveImmediately == asOn); + FSessionInfo.LoginTime = Now(); + UnicodeString HostName = Data->HostNameExpanded; UnicodeString UserName = Data->UserNameExpanded; UnicodeString Password = Data->Password; @@ -392,21 +371,27 @@ void __fastcall TFTPFileSystem::Open() int ServerType; switch (Data->Ftps) { + case ftpsNone: + ServerType = TFileZillaIntf::SERVER_FTP; + break; + case ftpsImplicit: ServerType = TFileZillaIntf::SERVER_FTP_SSL_IMPLICIT; + FSessionInfo.SecurityProtocolName = LoadStr(FTPS_IMPLICIT); break; case ftpsExplicitSsl: ServerType = TFileZillaIntf::SERVER_FTP_SSL_EXPLICIT; + FSessionInfo.SecurityProtocolName = LoadStr(FTPS_EXPLICIT); break; case ftpsExplicitTls: ServerType = TFileZillaIntf::SERVER_FTP_TLS_EXPLICIT; + FSessionInfo.SecurityProtocolName = LoadStr(FTPS_EXPLICIT); break; default: - assert(Data->Ftps == ftpsNone); - ServerType = TFileZillaIntf::SERVER_FTP; + DebugFail(); break; } @@ -482,16 +467,21 @@ void __fastcall TFTPFileSystem::Open() } } + if ((Data->Ftps != ftpsNone) && (FCertificate == NULL)) + { + FTerminal->LoadTlsCertificate(FCertificate, FPrivateKey); + } + FPasswordFailed = false; TAutoFlag OpeningFlag(FOpening); FActive = FFileZillaIntf->Connect( HostName.c_str(), Data->PortNumber, UserName.c_str(), - Password.c_str(), Account.c_str(), false, Path.c_str(), + Password.c_str(), Account.c_str(), Path.c_str(), ServerType, Pasv, TimeZoneOffset, UTF8, Data->FtpForcePasvIp, - Data->FtpUseMlsd); + Data->FtpUseMlsd, FCertificate, FPrivateKey); - assert(FActive); + DebugAssert(FActive); try { @@ -502,7 +492,7 @@ void __fastcall TFTPFileSystem::Open() // we have passed, even if we got 530 on the way (if it is possible at all), // ignore it - assert(!FPasswordFailed); + DebugAssert(!FPasswordFailed); FPasswordFailed = false; } catch(...) @@ -530,11 +520,11 @@ void __fastcall TFTPFileSystem::Open() //--------------------------------------------------------------------------- void __fastcall TFTPFileSystem::Close() { - assert(FActive); + DebugAssert(FActive); bool Result; if (FFileZillaIntf->Close(FOpening)) { - CHECK(FLAGSET(WaitForCommandReply(false), TFileZillaIntf::REPLY_DISCONNECTED)); + DebugCheck(FLAGSET(WaitForCommandReply(false), TFileZillaIntf::REPLY_DISCONNECTED)); Result = true; } else @@ -543,9 +533,9 @@ void __fastcall TFTPFileSystem::Close() Result = FOpening; } - if (ALWAYS_TRUE(Result)) + if (DebugAlwaysTrue(Result)) { - assert(FActive); + DebugAssert(FActive); Discard(); FTerminal->Closed(); } @@ -577,10 +567,15 @@ void __fastcall TFTPFileSystem::CollectUsage() break; default: - FAIL; + DebugFail(); break; } + if (!FTerminal->SessionData->TlsCertificateFile.IsEmpty()) + { + FTerminal->Configuration->Usage->Inc(L"OpenedSessionsFTPSCertificate"); + } + if (FFileZillaIntf->UsingMlsd()) { FTerminal->Configuration->Usage->Inc(L"OpenedSessionsFTPMLSD"); @@ -805,8 +800,20 @@ void __fastcall TFTPFileSystem::Discard() // note that we need to retry discard on reconnect, as there still may be another // "disconnect/timeout/..." status messages coming DiscardMessages(); - assert(FActive); + DebugAssert(FActive); FActive = false; + + // See neon's ne_ssl_clicert_free + if (FPrivateKey != NULL) + { + EVP_PKEY_free(FPrivateKey); + FPrivateKey = NULL; + } + if (FCertificate != NULL) + { + X509_free(FCertificate); + FCertificate = NULL; + } } //--------------------------------------------------------------------------- UnicodeString __fastcall TFTPFileSystem::AbsolutePath(UnicodeString Path, bool /*Local*/) @@ -858,7 +865,7 @@ void __fastcall TFTPFileSystem::AnyCommand(const UnicodeString Command, // current directory for the server EnsureLocation(); - assert(FOnCaptureOutput == NULL); + DebugAssert(FOnCaptureOutput == NULL); FOnCaptureOutput = OutputEvent; try { @@ -933,11 +940,11 @@ void __fastcall TFTPFileSystem::ChangeFileProperties(const UnicodeString AFileNa const TRemoteFile * File, const TRemoteProperties * Properties, TChmodSessionAction & Action) { - assert(Properties); - assert(!Properties->Valid.Contains(vpGroup)); - assert(!Properties->Valid.Contains(vpOwner)); - assert(!Properties->Valid.Contains(vpLastAccess)); - assert(!Properties->Valid.Contains(vpModification)); + DebugAssert(Properties); + DebugAssert(!Properties->Valid.Contains(vpGroup)); + DebugAssert(!Properties->Valid.Contains(vpOwner)); + DebugAssert(!Properties->Valid.Contains(vpLastAccess)); + DebugAssert(!Properties->Valid.Contains(vpModification)); if (Properties->Valid.Contains(vpRights)) { @@ -1001,7 +1008,7 @@ void __fastcall TFTPFileSystem::ChangeFileProperties(const UnicodeString AFileNa //--------------------------------------------------------------------------- bool __fastcall TFTPFileSystem::LoadFilesProperties(TStrings * /*FileList*/) { - FAIL; + DebugFail(); return false; } //--------------------------------------------------------------------------- @@ -1022,7 +1029,7 @@ UnicodeString __fastcall TFTPFileSystem::DoCalculateFileChecksum( int Index = FChecksumAlgs->IndexOf(Alg); if (Index < 0) { - FAIL; + DebugFail(); EXCEPTION; } else @@ -1123,7 +1130,7 @@ void __fastcall TFTPFileSystem::DoCalculateFilesChecksum(bool UsingHashCommand, while ((Index < FileList->Count) && !OperationProgress->Cancel) { TRemoteFile * File = (TRemoteFile *)FileList->Objects[Index]; - assert(File != NULL); + DebugAssert(File != NULL); if (File->IsDirectory) { @@ -1271,7 +1278,7 @@ bool __fastcall TFTPFileSystem::ConfirmOverwrite( { if (DestIsSame) { - assert(CanAutoResume); + DebugAssert(CanAutoResume); Answer = qaSkip; } else @@ -1328,8 +1335,8 @@ bool __fastcall TFTPFileSystem::ConfirmOverwrite( // resume case qaRetry: OverwriteMode = omResume; - assert(FileParams != NULL); - assert(CanResume); + DebugAssert(FileParams != NULL); + DebugAssert(CanResume); FFileTransferResumed = FileParams->DestSize; break; @@ -1374,7 +1381,7 @@ bool __fastcall TFTPFileSystem::ConfirmOverwrite( break; default: - FAIL; + DebugFail(); Result = false; break; } @@ -1421,7 +1428,7 @@ void __fastcall TFTPFileSystem::DoFileTransferProgress(__int64 TransferSize, } __int64 Diff = Bytes - OperationProgress->TransferedSize; - if (ALWAYS_TRUE(Diff >= 0)) + if (DebugAlwaysTrue(Diff >= 0)) { OperationProgress->AddTransfered(Diff); } @@ -1561,7 +1568,7 @@ void __fastcall TFTPFileSystem::SinkRobust(const UnicodeString FileName, { OperationProgress->RollbackTransfer(); Action.Restart(); - assert(File != NULL); + DebugAssert(File != NULL); if (!File->IsDirectory) { // prevent overwrite confirmations @@ -1584,11 +1591,12 @@ void __fastcall TFTPFileSystem::Sink(const UnicodeString FileName, Action.FileName(FileName); TFileMasks::TParams MaskParams; - assert(File); + DebugAssert(File); MaskParams.Size = File->Size; MaskParams.Modification = File->Modification; - if (!CopyParam->AllowTransfer(FileName, osRemote, File->IsDirectory, MaskParams)) + UnicodeString BaseFileName = FTerminal->GetBaseFileName(FileName); + if (!CopyParam->AllowTransfer(BaseFileName, osRemote, File->IsDirectory, MaskParams)) { FTerminal->LogEvent(FORMAT(L"File \"%s\" excluded from transfer", (FileName))); THROW_SKIP_FILE_NULL; @@ -1604,8 +1612,9 @@ void __fastcall TFTPFileSystem::Sink(const UnicodeString FileName, OperationProgress->SetFile(FileName); - UnicodeString DestFileName = CopyParam->ChangeFileName(OnlyFileName, - osRemote, FLAGSET(Flags, tfFirstLevel)); + UnicodeString DestFileName = + FTerminal->ChangeFileName( + CopyParam, OnlyFileName, osRemote, FLAGSET(Flags, tfFirstLevel)); UnicodeString DestFullName = TargetDir + DestFileName; if (File->IsDirectory) @@ -1658,7 +1667,7 @@ void __fastcall TFTPFileSystem::Sink(const UnicodeString FileName, // Will we use ASCII of BINARY file transfer? OperationProgress->SetAsciiTransfer( - CopyParam->UseAsciiTransfer(FileName, osRemote, MaskParams)); + CopyParam->UseAsciiTransfer(BaseFileName, osRemote, MaskParams)); FTerminal->LogEvent(UnicodeString((OperationProgress->AsciiTransfer ? L"Ascii" : L"Binary")) + L" transfer mode selected."); @@ -1743,7 +1752,7 @@ void __fastcall TFTPFileSystem::SinkFile(UnicodeString FileName, const TRemoteFile * File, void * Param) { TSinkFileParams * Params = (TSinkFileParams *)Param; - assert(Params->OperationProgress); + DebugAssert(Params->OperationProgress); try { SinkRobust(FileName, File, Params->TargetDir, Params->CopyParam, @@ -1775,7 +1784,7 @@ void __fastcall TFTPFileSystem::CopyToRemote(TStrings * FilesToCopy, int Params, TFileOperationProgressType * OperationProgress, TOnceDoneOperation & OnceDoneOperation) { - assert((FilesToCopy != NULL) && (OperationProgress != NULL)); + DebugAssert((FilesToCopy != NULL) && (OperationProgress != NULL)); Params &= ~cpAppend; UnicodeString FileName, FileNameOnly; @@ -1892,8 +1901,10 @@ void __fastcall TFTPFileSystem::Source(const UnicodeString FileName, } else { - UnicodeString DestFileName = CopyParam->ChangeFileName(ExtractFileName(FileName), - osLocal, FLAGSET(Flags, tfFirstLevel)); + UnicodeString DestFileName = + FTerminal->ChangeFileName( + CopyParam, ExtractFileName(FileName), osLocal, + FLAGSET(Flags, tfFirstLevel)); FTerminal->LogEvent(FORMAT(L"Copying \"%s\" to remote directory started.", (FileName))); @@ -1921,8 +1932,9 @@ void __fastcall TFTPFileSystem::Source(const UnicodeString FileName, TFileMasks::TParams MaskParams; MaskParams.Size = Size; MaskParams.Modification = Modification; + UnicodeString BaseFileName = FTerminal->GetBaseFileName(FileName); OperationProgress->SetAsciiTransfer( - CopyParam->UseAsciiTransfer(FileName, osLocal, MaskParams)); + CopyParam->UseAsciiTransfer(BaseFileName, osLocal, MaskParams)); FTerminal->LogEvent( UnicodeString(OperationProgress->AsciiTransfer ? L"Ascii" : L"Binary") + L" transfer mode selected."); @@ -1997,9 +2009,11 @@ void __fastcall TFTPFileSystem::DirectorySource(const UnicodeString DirectoryNam const UnicodeString TargetDir, int Attrs, const TCopyParamType * CopyParam, int Params, TFileOperationProgressType * OperationProgress, unsigned int Flags) { - UnicodeString DestDirectoryName = CopyParam->ChangeFileName( - ExtractFileName(ExcludeTrailingBackslash(DirectoryName)), osLocal, - FLAGSET(Flags, tfFirstLevel)); + UnicodeString DestDirectoryName = + FTerminal->ChangeFileName( + CopyParam, + ExtractFileName(ExcludeTrailingBackslash(DirectoryName)), + osLocal, FLAGSET(Flags, tfFirstLevel)); UnicodeString DestFullName = UnixIncludeTrailingBackslash(TargetDir + DestDirectoryName); OperationProgress->SetFile(DirectoryName); @@ -2133,8 +2147,8 @@ void __fastcall TFTPFileSystem::CreateDirectory(const UnicodeString ADirName) void __fastcall TFTPFileSystem::CreateLink(const UnicodeString FileName, const UnicodeString PointTo, bool Symbolic) { - assert(SupportsSiteCommand(SymlinkSiteCommand)); - if (ALWAYS_TRUE(Symbolic)) + DebugAssert(SupportsSiteCommand(SymlinkSiteCommand)); + if (DebugAlwaysTrue(Symbolic)) { EnsureLocation(); @@ -2199,7 +2213,7 @@ void __fastcall TFTPFileSystem::CustomCommandOnFile(const UnicodeString /*FileNa { // if ever implemented, do not forget to add EnsureLocation, // see AnyCommand for a reason why - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void __fastcall TFTPFileSystem::DoStartup() @@ -2242,7 +2256,7 @@ void __fastcall TFTPFileSystem::HomeDirectory() //--------------------------------------------------------------------------- bool __fastcall TFTPFileSystem::IsCapable(int Capability) const { - assert(FTerminal); + DebugAssert(FTerminal); switch (Capability) { case fcResolveSymlink: // sic @@ -2284,17 +2298,19 @@ bool __fastcall TFTPFileSystem::IsCapable(int Capability) const case fcTimestampChanging: case fcIgnorePermErrors: case fcRemoveCtrlZUpload: + case fcLocking: + case fcPreservingTimestampDirs: return false; default: - FAIL; + DebugFail(); return false; } } //--------------------------------------------------------------------------- void __fastcall TFTPFileSystem::LookupUsersGroups() { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void __fastcall TFTPFileSystem::ReadCurrentDirectory() @@ -2303,7 +2319,7 @@ void __fastcall TFTPFileSystem::ReadCurrentDirectory() // and immediately after call to CWD, // later our current directory may be not synchronized with FZAPI current // directory anyway, see comments in EnsureLocation - if (FReadCurrentDirectory || ALWAYS_FALSE(FCurrentDirectory.IsEmpty())) + if (FReadCurrentDirectory || DebugAlwaysFalse(FCurrentDirectory.IsEmpty())) { UnicodeString Command = L"PWD"; SendCommand(Command); @@ -2314,7 +2330,7 @@ void __fastcall TFTPFileSystem::ReadCurrentDirectory() try { - assert(Response != NULL); + DebugAssert(Response != NULL); bool Result = false; // the only allowed 2XX code to "PWD" @@ -2401,7 +2417,7 @@ void __fastcall TFTPFileSystem::DoReadDirectory(TRemoteFileList * FileList) //--------------------------------------------------------------------------- void __fastcall TFTPFileSystem::ApplyTimeDifference(TRemoteFile * File) { - assert(File->Modification == File->LastAccess); + DebugAssert(File->Modification == File->LastAccess); File->ShiftTimeInSeconds(FTimeDifference); } //--------------------------------------------------------------------------- @@ -2491,7 +2507,7 @@ void __fastcall TFTPFileSystem::ReadDirectory(TRemoteFileList * FileList) // so it was not "-a"'s problem, revert to auto and let it decide the next time if (GotNoFilesForAll && (FileList->Count == 0)) { - assert(FListAll == asOff); + DebugAssert(FListAll == asOff); FListAll = asAuto; } else if (FListAll == asAuto) @@ -2609,6 +2625,7 @@ void __fastcall TFTPFileSystem::ReadFile(const UnicodeString FileName, { if (IsUnixRootPath(FileName)) { + FTerminal->LogEvent(FORMAT(L"%s is a root path", (FileName))); AFile = new TRemoteDirectoryFile(); AFile->FullFileName = FileName; AFile->FileName = L""; @@ -2659,7 +2676,7 @@ void __fastcall TFTPFileSystem::ReadFile(const UnicodeString FileName, throw Exception(FMTLOAD(FILE_NOT_EXISTS, (FileName))); } - assert(AFile != NULL); + DebugAssert(AFile != NULL); File = Own ? AFile : AFile->Duplicate(); } //--------------------------------------------------------------------------- @@ -2711,7 +2728,7 @@ void __fastcall TFTPFileSystem::RenameFile(const UnicodeString AFileName, void __fastcall TFTPFileSystem::CopyFile(const UnicodeString FileName, const UnicodeString NewName) { - assert(SupportsSiteCommand(CopySiteCommand)); + DebugAssert(SupportsSiteCommand(CopySiteCommand)); EnsureLocation(); UnicodeString Command; @@ -2868,7 +2885,7 @@ const wchar_t * __fastcall TFTPFileSystem::GetOption(int OptionID) const break; default: - FAIL; + DebugFail(); FOptionScratch = L""; } @@ -2904,7 +2921,7 @@ int __fastcall TFTPFileSystem::GetOptionVal(int OptionID) const case pmTelnet: case pmCmd: default: - FAIL; + DebugFail(); Result = 0; // PROXYTYPE_NOPROXY; break; } @@ -2933,7 +2950,7 @@ int __fastcall TFTPFileSystem::GetOptionVal(int OptionID) const case OPTION_PASV: // should never get here t_server.nPasv being nonzero - FAIL; + DebugFail(); Result = FALSE; break; @@ -2949,12 +2966,12 @@ int __fastcall TFTPFileSystem::GetOptionVal(int OptionID) const case OPTION_PORTRANGELOW: case OPTION_PORTRANGEHIGH: // should never get here OPTION_LIMITPORTRANGE being zero - FAIL; + DebugFail(); Result = 0; break; case OPTION_ENABLE_IPV6: - Result = ((Data->AddressFamily == afIPv6) ? TRUE : FALSE); + Result = ((Data->AddressFamily != afIPv4) ? TRUE : FALSE); break; case OPTION_KEEPALIVE: @@ -3021,7 +3038,7 @@ int __fastcall TFTPFileSystem::GetOptionVal(int OptionID) const break; default: - FAIL; + DebugFail(); Result = FALSE; break; } @@ -3100,9 +3117,9 @@ void __fastcall TFTPFileSystem::WaitForMessages() //--------------------------------------------------------------------------- void __fastcall TFTPFileSystem::PoolForFatalNonCommandReply() { - assert(FReply == 0); - assert(FCommandReply == 0); - assert(!FWaitingForReply); + DebugAssert(FReply == 0); + DebugAssert(FCommandReply == 0); + DebugAssert(!FWaitingForReply); FWaitingForReply = true; @@ -3118,9 +3135,9 @@ void __fastcall TFTPFileSystem::PoolForFatalNonCommandReply() __finally { FReply = 0; - assert(FCommandReply == 0); + DebugAssert(FCommandReply == 0); FCommandReply = 0; - assert(FWaitingForReply); + DebugAssert(FWaitingForReply); FWaitingForReply = false; } @@ -3185,9 +3202,9 @@ void __fastcall TFTPFileSystem::DoWaitForReply(unsigned int & ReplyToAwait, bool //--------------------------------------------------------------------------- unsigned int __fastcall TFTPFileSystem::WaitForReply(bool Command, bool WantLastCode) { - assert(FReply == 0); - assert(FCommandReply == 0); - assert(!FWaitingForReply); + DebugAssert(FReply == 0); + DebugAssert(FCommandReply == 0); + DebugAssert(!FWaitingForReply); ResetReply(); FWaitingForReply = true; @@ -3205,7 +3222,7 @@ unsigned int __fastcall TFTPFileSystem::WaitForReply(bool Command, bool WantLast { FReply = 0; FCommandReply = 0; - assert(FWaitingForReply); + DebugAssert(FWaitingForReply); FWaitingForReply = false; } @@ -3220,27 +3237,27 @@ unsigned int __fastcall TFTPFileSystem::WaitForCommandReply(bool WantLastCode) void __fastcall TFTPFileSystem::WaitForFatalNonCommandReply() { WaitForReply(false, false); - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void __fastcall TFTPFileSystem::ResetReply() { FLastCode = 0; FLastCodeClass = 0; - assert(FLastResponse != NULL); + DebugAssert(FLastResponse != NULL); FLastResponse->Clear(); - assert(FLastErrorResponse != NULL); + DebugAssert(FLastErrorResponse != NULL); FLastErrorResponse->Clear(); - assert(FLastError != NULL); + DebugAssert(FLastError != NULL); FLastError->Clear(); } //--------------------------------------------------------------------------- void __fastcall TFTPFileSystem::GotNonCommandReply(unsigned int Reply) { - assert(FLAGSET(Reply, TFileZillaIntf::REPLY_DISCONNECTED)); + DebugAssert(FLAGSET(Reply, TFileZillaIntf::REPLY_DISCONNECTED)); GotReply(Reply); // should never get here as GotReply should raise fatal exception - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- UnicodeString __fastcall TFTPFileSystem::GotReply(unsigned int Reply, unsigned int Flags, @@ -3251,7 +3268,7 @@ UnicodeString __fastcall TFTPFileSystem::GotReply(unsigned int Reply, unsigned i { if (FLAGSET(Reply, TFileZillaIntf::REPLY_OK)) { - assert(Reply == TFileZillaIntf::REPLY_OK); + DebugAssert(Reply == TFileZillaIntf::REPLY_OK); // With REPLY_2XX_CODE treat "OK" non-2xx code like an error. // REPLY_3XX_CODE has to be always used along with REPLY_2XX_CODE. @@ -3264,7 +3281,7 @@ UnicodeString __fastcall TFTPFileSystem::GotReply(unsigned int Reply, unsigned i else if (FLAGSET(Reply, TFileZillaIntf::REPLY_CANCEL) && FLAGSET(Flags, REPLY_ALLOW_CANCEL)) { - assert( + DebugAssert( (Reply == (TFileZillaIntf::REPLY_CANCEL | TFileZillaIntf::REPLY_ERROR)) || (Reply == (TFileZillaIntf::REPLY_ABORTED | TFileZillaIntf::REPLY_CANCEL | TFileZillaIntf::REPLY_ERROR))); // noop @@ -3281,7 +3298,7 @@ UnicodeString __fastcall TFTPFileSystem::GotReply(unsigned int Reply, unsigned i else { // everything else must be an error or disconnect notification - assert( + DebugAssert( FLAGSET(Reply, TFileZillaIntf::REPLY_ERROR) || FLAGSET(Reply, TFileZillaIntf::REPLY_DISCONNECTED)); @@ -3294,7 +3311,7 @@ UnicodeString __fastcall TFTPFileSystem::GotReply(unsigned int Reply, unsigned i FLAGSET(Reply, TFileZillaIntf::REPLY_DISCONNECTED) || FLAGSET(Reply, TFileZillaIntf::REPLY_NOTCONNECTED); - AnsiString HelpKeyword; + UnicodeString HelpKeyword; TStrings * MoreMessages = new TStringList(); try { @@ -3379,7 +3396,7 @@ UnicodeString __fastcall TFTPFileSystem::GotReply(unsigned int Reply, unsigned i if (Error.IsEmpty() && (MoreMessages != NULL)) { - assert(MoreMessages->Count > 0); + DebugAssert(MoreMessages->Count > 0); // bit too generic assigning of main instructions, let's see how it works Error = MainInstructions(MoreMessages->Strings[0]); MoreMessages->Delete(0); @@ -3388,7 +3405,7 @@ UnicodeString __fastcall TFTPFileSystem::GotReply(unsigned int Reply, unsigned i if (Disconnected) { // for fatal error, it is essential that there is some message - assert(!Error.IsEmpty()); + DebugAssert(!Error.IsEmpty()); ExtException * E = new ExtException(Error, MoreMessages, true, HelpKeyword); try { @@ -3465,6 +3482,11 @@ void __fastcall TFTPFileSystem::HandleReplyStatus(UnicodeString Response) FOnCaptureOutput(Response, cotOutput); } + if (FWelcomeMessage.IsEmpty() && StartsStr(L"SSH", Response)) + { + FLastErrorResponse->Add(LoadStr(SFTP_AS_FTP_ERROR)); + } + // Two forms of multiline responses were observed // (the first is according to the RFC 959): @@ -3543,7 +3565,7 @@ void __fastcall TFTPFileSystem::HandleReplyStatus(UnicodeString Response) if (FLastCode == 220) { // HOST command also uses 220 response. - // Neither our use of welcome messagfe is prepared for changing it + // Neither our use of welcome message is prepared for changing it // during the session, so we keep the initial message only. // Theoretically the welcome message can be host-specific, // but IIS uses "220 Host accepted", and we are not interested in that anyway. @@ -3575,7 +3597,7 @@ void __fastcall TFTPFileSystem::HandleReplyStatus(UnicodeString Response) } else if (FLastCommand == SYST) { - assert(FSystem.IsEmpty()); + DebugAssert(FSystem.IsEmpty()); // Positive reply to "SYST" must be 215, see RFC 959 if (FLastCode == 215) { @@ -3672,26 +3694,6 @@ void __fastcall TFTPFileSystem::HandleFeatReply() } } //--------------------------------------------------------------------------- -UnicodeString __fastcall TFTPFileSystem::ExtractStatusMessage(UnicodeString Status) -{ - // CApiLog::LogMessage - // (note that the formatting may not be present when LogMessageRaw is used) - int P1 = Status.Pos(L"): "); - if (P1 > 0) - { - int P2 = Status.Pos(L".cpp("); - if ((P2 > 0) && (P2 < P1)) - { - int P3 = Status.Pos(L" caller=0x"); - if ((P3 > 0) && (P3 > P1)) - { - Status = Status.SubString(P1 + 3, P3 - P1 - 3); - } - } - } - return Status; -} -//--------------------------------------------------------------------------- bool __fastcall TFTPFileSystem::HandleStatus(const wchar_t * AStatus, int Type) { TLogLineType LogType = (TLogLineType)-1; @@ -3751,7 +3753,6 @@ bool __fastcall TFTPFileSystem::HandleStatus(const wchar_t * AStatus, int Type) } // there can be multiple error messages associated with single failure // (such as "cannot open local file..." followed by "download failed") - Status = ExtractStatusMessage(Status); FLastError->Add(Status); LogType = llMessage; break; @@ -3766,7 +3767,6 @@ bool __fastcall TFTPFileSystem::HandleStatus(const wchar_t * AStatus, int Type) break; case TFileZillaIntf::LOG_INFO: - Status = ExtractStatusMessage(Status); LogType = llMessage; break; @@ -3776,7 +3776,7 @@ bool __fastcall TFTPFileSystem::HandleStatus(const wchar_t * AStatus, int Type) break; default: - FAIL; + DebugFail(); break; } @@ -3843,7 +3843,7 @@ bool __fastcall TFTPFileSystem::HandleAsynchRequestOverwrite( { TFileOperationProgressType * OperationProgress = FTerminal->OperationProgress; UnicodeString TargetFileName = FileName1; - assert(UserData.FileName == TargetFileName); + DebugAssert(UserData.FileName == TargetFileName); TOverwriteMode OverwriteMode = omOverwrite; TOverwriteFileParams FileParams; bool NoFileParams = @@ -3907,7 +3907,7 @@ bool __fastcall TFTPFileSystem::HandleAsynchRequestOverwrite( break; default: - FAIL; + DebugFail(); RequestResult = TFileZillaIntf::FILEEXISTS_OVERWRITE; break; } @@ -4058,6 +4058,32 @@ bool __fastcall TFTPFileSystem::VerifyCertificateHostName(const TFtpsCertificate return Result; } //--------------------------------------------------------------------------- +static bool __fastcall IsIPAddress(const UnicodeString & HostName) +{ + bool IPv4 = true; + bool IPv6 = true; + bool AnyColon = false; + + for (int Index = 1; Index <= HostName.Length(); Index++) + { + wchar_t C = HostName[Index]; + if (!IsDigit(C) && (C != L'.')) + { + IPv4 = false; + } + if (!IsHex(C) && (C != L':')) + { + IPv6 = false; + } + if (C == L':') + { + AnyColon = true; + } + } + + return IPv4 || (IPv6 && AnyColon); +} +//--------------------------------------------------------------------------- bool __fastcall TFTPFileSystem::HandleAsynchRequestVerifyCertificate( const TFtpsCertificateData & Data, int & RequestResult) { @@ -4168,7 +4194,12 @@ bool __fastcall TFTPFileSystem::HandleAsynchRequestVerifyCertificate( Summary = VerificationResultStr + L" " + FMTLOAD(CERT_ERRDEPTH, (Data.VerificationDepth + 1)); } - if (!VerifyCertificateHostName(Data)) + if (IsIPAddress(FTerminal->SessionData->HostNameExpanded)) + { + VerificationResult = false; + AddToList(Summary, FMTLOAD(CERT_IP_CANNOT_VERIFY, (FTerminal->SessionData->HostNameExpanded)), L"\n\n"); + } + else if (!VerifyCertificateHostName(Data)) { VerificationResult = false; AddToList(Summary, FMTLOAD(CERT_NAME_MISMATCH, (FTerminal->SessionData->HostNameExpanded)), L"\n\n"); @@ -4215,7 +4246,7 @@ bool __fastcall TFTPFileSystem::HandleAsynchRequestVerifyCertificate( Aliases[0].Alias = LoadStr(COPY_KEY_BUTTON); Aliases[0].OnClick = &ClipboardHandler.Copy; - TQueryParams Params; + TQueryParams Params(qpWaitInBatch); Params.HelpKeyword = HELP_VERIFY_CERTIFICATE; Params.NoBatchAnswers = qaYes | qaRetry; Params.Aliases = Aliases; @@ -4242,7 +4273,7 @@ bool __fastcall TFTPFileSystem::HandleAsynchRequestVerifyCertificate( break; default: - FAIL; + DebugFail(); RequestResult = 0; break; } @@ -4255,6 +4286,13 @@ bool __fastcall TFTPFileSystem::HandleAsynchRequestVerifyCertificate( } } + // Cache only if the certificate was not automatically accepted + if (!VerificationResult && (RequestResult != 0)) + { + FTerminal->Configuration->RememberLastFingerprint( + FTerminal->SessionData->SiteKey, TlsFingerprintType, FSessionInfo.CertificateFingerprint); + } + return true; } } @@ -4268,17 +4306,31 @@ bool __fastcall TFTPFileSystem::HandleAsynchRequestNeedPass( } else { - UnicodeString Password = L""; - if (FTerminal->PromptUser(FTerminal->SessionData, pkPassword, LoadStr(PASSWORD_TITLE), L"", - LoadStr(PASSWORD_PROMPT), false, 0, Password)) + UnicodeString Password; + if (FCertificate != NULL) { - Data.Password = _wcsdup(Password.c_str()); + FTerminal->LogEvent(L"Server asked for password, but we are using certificate, and no password was specified upfront, using fake password"); + Password = L"USINGCERT"; RequestResult = TFileZillaIntf::REPLY_OK; } else { - RequestResult = TFileZillaIntf::REPLY_ABORTED; + if (FTerminal->PromptUser(FTerminal->SessionData, pkPassword, LoadStr(PASSWORD_TITLE), L"", + LoadStr(PASSWORD_PROMPT), false, 0, Password)) + { + RequestResult = TFileZillaIntf::REPLY_OK; + } + else + { + RequestResult = TFileZillaIntf::REPLY_ABORTED; + } + } + + if (!Password.IsEmpty()) + { + Data.Password = _wcsdup(Password.c_str()); } + return true; } } @@ -4330,17 +4382,17 @@ bool __fastcall TFTPFileSystem::HandleListData(const wchar_t * Path, else if (FIgnoreFileList) { // directory listing provided implicitly by FZAPI during certain operations is ignored - assert(FFileList == NULL); + DebugAssert(FFileList == NULL); return false; } else { - assert(FFileList != NULL); + DebugAssert(FFileList != NULL); // This can actually fail in real life, // when connected to server with case insensitive paths. // Is empty when called from DoReadFile - assert(FFileList->Directory.IsEmpty() || UnixSamePath(AbsolutePath(FFileList->Directory, false), Path)); - USEDPARAM(Path); + DebugAssert(FFileList->Directory.IsEmpty() || UnixSamePath(AbsolutePath(FFileList->Directory, false), Path)); + DebugUsedParam(Path); for (unsigned int Index = 0; Index < Count; Index++) { @@ -4426,8 +4478,7 @@ bool __fastcall TFTPFileSystem::HandleListData(const wchar_t * Path, } //--------------------------------------------------------------------------- bool __fastcall TFTPFileSystem::HandleTransferStatus(bool Valid, __int64 TransferSize, - __int64 Bytes, int /*Percent*/, int /*TimeElapsed*/, int /*TimeLeft*/, int /*TransferRate*/, - bool FileTransfer) + __int64 Bytes, bool FileTransfer) { if (!FActive) { @@ -4465,12 +4516,12 @@ bool __fastcall TFTPFileSystem::HandleReply(int Command, unsigned int Reply) // (it is typically used asynchronously to notify about disconnects) if (Command != 0) { - assert(FCommandReply == 0); + DebugAssert(FCommandReply == 0); FCommandReply = Reply; } else { - assert(FReply == 0); + DebugAssert(FReply == 0); FReply = Reply; } return true; @@ -4510,7 +4561,7 @@ bool __fastcall TFTPFileSystem::CheckError(int ReturnCode, const wchar_t * Conte { FTerminal->FatalError(NULL, FMTLOAD(INTERNAL_ERROR, (FORMAT(L"fz#%s", (Context)), IntToHex(ReturnCode, 4)))); - FAIL; + DebugFail(); } return false; @@ -4527,7 +4578,7 @@ bool __fastcall TFTPFileSystem::Unquote(UnicodeString & Str) } State; State = INIT; - assert((Str.Length() > 0) && ((Str[1] == L'"') || (Str[1] == L'\''))); + DebugAssert((Str.Length() > 0) && ((Str[1] == L'"') || (Str[1] == L'\''))); int Index = 1; wchar_t Quote; @@ -4544,7 +4595,7 @@ bool __fastcall TFTPFileSystem::Unquote(UnicodeString & Str) } else { - FAIL; + DebugFail(); // no quoted string Str.SetLength(0); } @@ -4675,6 +4726,21 @@ bool __fastcall TFTPFileSystem::SupportsCommand(const UnicodeString & Command) c return (FSupportedCommands->IndexOf(Command) >= 0); } //--------------------------------------------------------------------------- +void __fastcall TFTPFileSystem::LockFile(const UnicodeString & /*FileName*/, const TRemoteFile * /*File*/) +{ + DebugFail(); +} +//--------------------------------------------------------------------------- +void __fastcall TFTPFileSystem::UnlockFile(const UnicodeString & /*FileName*/, const TRemoteFile * /*File*/) +{ + DebugFail(); +} +//--------------------------------------------------------------------------- +void __fastcall TFTPFileSystem::UpdateFromMain(TCustomFileSystem * /*MainFileSystem*/) +{ + // noop +} +//--------------------------------------------------------------------------- UnicodeString __fastcall GetOpenSSLVersionText() { return OPENSSL_VERSION_TEXT; diff --git a/source/core/FtpFileSystem.h b/source/core/FtpFileSystem.h index d1b9dd57..221fdd6c 100644 --- a/source/core/FtpFileSystem.h +++ b/source/core/FtpFileSystem.h @@ -81,6 +81,9 @@ friend class TFileListHelper; virtual bool __fastcall GetStoredCredentialsTried(); virtual UnicodeString __fastcall GetUserName(); virtual void __fastcall GetSupportedChecksumAlgs(TStrings * Algs); + virtual void __fastcall LockFile(const UnicodeString & FileName, const TRemoteFile * File); + virtual void __fastcall UnlockFile(const UnicodeString & FileName, const TRemoteFile * File); + virtual void __fastcall UpdateFromMain(TCustomFileSystem * MainFileSystem); protected: enum TOverwriteMode { omOverwrite, omResume, omComplete }; @@ -130,8 +133,7 @@ friend class TFileListHelper; bool __fastcall HandleListData(const wchar_t * Path, const TListDataEntry * Entries, unsigned int Count); bool __fastcall HandleTransferStatus(bool Valid, __int64 TransferSize, - __int64 Bytes, int Percent, int TimeElapsed, int TimeLeft, int TransferRate, - bool FileTransfer); + __int64 Bytes, bool FileTransfer); bool __fastcall HandleReply(int Command, unsigned int Reply); bool __fastcall HandleCapabilities(TFTPServerCapabilities * ServerCapabilities); bool __fastcall CheckError(int ReturnCode, const wchar_t * Context); @@ -201,7 +203,6 @@ friend class TFileListHelper; void __fastcall SendCommand(const UnicodeString & Command); static bool __fastcall Unquote(UnicodeString & Str); - static UnicodeString __fastcall ExtractStatusMessage(UnicodeString Status); private: enum TCommand @@ -268,6 +269,8 @@ friend class TFileListHelper; std::unique_ptr FHashAlgs; bool FSupportsAnyChecksumFeature; UnicodeString FLastCommandSent; + X509 * FCertificate; + EVP_PKEY * FPrivateKey; bool FTransferActiveImmediately; mutable UnicodeString FOptionScratch; }; diff --git a/source/core/Global.cpp b/source/core/Global.cpp new file mode 100644 index 00000000..e933e97c --- /dev/null +++ b/source/core/Global.cpp @@ -0,0 +1,36 @@ +//--------------------------------------------------------------------------- +#include +#pragma hdrstop + +#include "Global.h" +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- +// TGuard +//--------------------------------------------------------------------------- +__fastcall TGuard::TGuard(TCriticalSection * ACriticalSection) : + FCriticalSection(ACriticalSection) +{ + DebugAssert(ACriticalSection != NULL); + FCriticalSection->Enter(); +} +//--------------------------------------------------------------------------- +__fastcall TGuard::~TGuard() +{ + FCriticalSection->Leave(); +} +//--------------------------------------------------------------------------- +// TUnguard +//--------------------------------------------------------------------------- +__fastcall TUnguard::TUnguard(TCriticalSection * ACriticalSection) : + FCriticalSection(ACriticalSection) +{ + DebugAssert(ACriticalSection != NULL); + FCriticalSection->Leave(); +} +//--------------------------------------------------------------------------- +__fastcall TUnguard::~TUnguard() +{ + FCriticalSection->Enter(); +} +//--------------------------------------------------------------------------- diff --git a/source/core/Global.h b/source/core/Global.h new file mode 100644 index 00000000..430cd776 --- /dev/null +++ b/source/core/Global.h @@ -0,0 +1,53 @@ +//--------------------------------------------------------------------------- +#ifndef GlobalH +#define GlobalH +//--------------------------------------------------------------------------- +#define FORMAT(S, F) Format(S, ARRAYOFCONST(F)) +#define FMTLOAD(I, F) FmtLoadStr(I, ARRAYOFCONST(F)) +#define LENOF(x) ( (sizeof((x))) / (sizeof(*(x)))) +#define FLAGSET(SET, FLAG) (((SET) & (FLAG)) == (FLAG)) +#define FLAGCLEAR(SET, FLAG) (((SET) & (FLAG)) == 0) +#define FLAGMASK(ENABLE, FLAG) ((ENABLE) ? (FLAG) : 0) +//--------------------------------------------------------------------------- +#include +//--------------------------------------------------------------------------- +class TGuard +{ +public: + __fastcall TGuard(TCriticalSection * ACriticalSection); + __fastcall ~TGuard(); + +private: + TCriticalSection * FCriticalSection; +}; +//--------------------------------------------------------------------------- +class TUnguard +{ +public: + __fastcall TUnguard(TCriticalSection * ACriticalSection); + __fastcall ~TUnguard(); + +private: + TCriticalSection * FCriticalSection; +}; +//--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- +#include +#define ACCESS_VIOLATION_TEST { (*((int*)NULL)) = 0; } +#if !defined(_DEBUG) || defined(DESIGN_ONLY) +#define DebugAssert(p) ((void)0) +#define DebugCheck(p) (p) +#define DebugFail() +#else // if !defined(_DEBUG) || defined(DESIGN_ONLY) +void __fastcall DoAssert(wchar_t * Message, wchar_t * Filename, int LineNumber); +#define DebugAssert(p) ((p) ? (void)0 : DoAssert(TEXT(#p), TEXT(__FILE__), __LINE__)) +#define DebugCheck(p) { bool __CHECK_RESULT__ = (p); DebugAssert(__CHECK_RESULT__); } +#define DebugFail() DebugAssert(false) +#endif // if !defined(_DEBUG) || defined(DESIGN_ONLY) +//--------------------------------------------------------------------------- +#define DebugAlwaysTrue(p) (p) +#define DebugAlwaysFalse(p) (p) +#define DebugNotNull(p) (p) +#define DebugUsedParam(p) ((&p) == (&p)) +//--------------------------------------------------------------------------- +#endif diff --git a/source/core/HierarchicalStorage.cpp b/source/core/HierarchicalStorage.cpp index 809aebd2..f18afdf2 100644 --- a/source/core/HierarchicalStorage.cpp +++ b/source/core/HierarchicalStorage.cpp @@ -25,11 +25,11 @@ UnicodeString __fastcall MungeStr(const UnicodeString & Str, bool ForceAnsi) RawByteString Source; if (ForceAnsi) { - Source = AnsiString(Str); + Source = RawByteString(AnsiString(Str)); } else { - Source = UTF8String(Str); + Source = RawByteString(UTF8String(Str)); if (Source.Length() > Str.Length()) { Source.Insert(Bom, 1); @@ -50,15 +50,17 @@ UnicodeString __fastcall UnMungeStr(const UnicodeString & Str) RawByteString Dest; Dest.SetLength(Source.Length() + 1); putty_unmungestr(Source.c_str(), Dest.c_str(), Dest.Length()); + // Cut the string at null character + PackStr(Dest); UnicodeString Result; if (Dest.SubString(1, LENOF(Bom)) == Bom) { Dest.Delete(1, LENOF(Bom)); - Result = UTF8String(Dest.c_str()); + Result = UTF8ToString(Dest); } else { - Result = AnsiString(Dest.c_str()); + Result = AnsiToString(Dest); } return Result; } @@ -156,7 +158,7 @@ bool __fastcall THierarchicalStorage::OpenSubKey(UnicodeString Key, bool CanCrea UnicodeString MungedKey; if (Path) { - assert(Key.IsEmpty() || (Key[Key.Length()] != L'\\')); + DebugAssert(Key.IsEmpty() || (Key[Key.Length()] != L'\\')); Result = true; while (!Key.IsEmpty() && Result) { @@ -315,7 +317,7 @@ void __fastcall THierarchicalStorage::WriteValues(Classes::TStrings * Strings, { if (MaintainKeys) { - assert(Strings->Strings[Index].Pos(L"=") > 1); + DebugAssert(Strings->Strings[Index].Pos(L"=") > 1); WriteString(Strings->Names[Index], Strings->Values[Strings->Names[Index]]); } else @@ -351,7 +353,7 @@ RawByteString __fastcall THierarchicalStorage::ReadBinaryData(const UnicodeStrin //--------------------------------------------------------------------------- RawByteString __fastcall THierarchicalStorage::ReadStringAsBinaryData(const UnicodeString Name, const RawByteString Default) { - UnicodeString UnicodeDefault = UnicodeString(AnsiString(Default.c_str(), Default.Length())); + UnicodeString UnicodeDefault = AnsiToString(Default); // This should be exactly the same operation as calling ReadString in // C++Builder 6 (non-Unicode) on Unicode-based OS // (conversion is done by Ansi layer of the OS) @@ -384,8 +386,7 @@ void __fastcall THierarchicalStorage::WriteBinaryDataAsString(const UnicodeStrin // This should be exactly the same operation as calling WriteString in // C++Builder 6 (non-Unicode) on Unicode-based OS // (conversion is done by Ansi layer of the OS) - AnsiString Ansi = AnsiString(Value.c_str(), Value.Length()); - WriteString(Name, UnicodeString(Ansi)); + WriteString(Name, AnsiToString(Value)); } //--------------------------------------------------------------------------- UnicodeString __fastcall THierarchicalStorage::IncludeTrailingBackslash(const UnicodeString & S) @@ -770,7 +771,7 @@ bool __fastcall TCustomIniFileStorage::OpenRootKey(bool CanCreate) { // Not supported with master storage. // Actually currently, we use OpenRootKey with TRegistryStorage only. - assert(FMasterStorage.get() == NULL); + DebugAssert(FMasterStorage.get() == NULL); return THierarchicalStorage::OpenRootKey(CanCreate); } @@ -796,7 +797,7 @@ bool __fastcall TCustomIniFileStorage::OpenSubKey(UnicodeString Key, bool CanCre if (!Result && MasterResult) { Result = THierarchicalStorage::OpenSubKey(Key, true, Path); - assert(Result); + DebugAssert(Result); } else if (Result && !MasterResult) { @@ -1096,7 +1097,7 @@ size_t __fastcall TCustomIniFileStorage::ReadBinaryData(const UnicodeString Name { Size = Len; } - assert(Buffer); + DebugAssert(Buffer); memcpy(Buffer, Value.c_str(), Size); } return Size; @@ -1293,10 +1294,12 @@ void __fastcall TIniFileStorage::ApplyOverrides() } } //=========================================================================== +enum TWriteMode { wmAllow, wmFail, wmIgnore }; +//--------------------------------------------------------------------------- class TOptionsIniFile : public TCustomIniFile { public: - __fastcall TOptionsIniFile(TStrings * Options, bool IgnoreWrite, const UnicodeString & RootKey); + __fastcall TOptionsIniFile(TStrings * Options, TWriteMode WriteMode, const UnicodeString & RootKey); virtual UnicodeString __fastcall ReadString(const UnicodeString Section, const UnicodeString Ident, const UnicodeString Default); virtual void __fastcall WriteString(const UnicodeString Section, const UnicodeString Ident, const UnicodeString Value); @@ -1312,18 +1315,18 @@ class TOptionsIniFile : public TCustomIniFile private: TStrings * FOptions; - bool FIgnoreWrite; + TWriteMode FWriteMode; UnicodeString FRootKey; - void __fastcall HandleWrite(); + bool __fastcall AllowWrite(); void __fastcall NotImplemented(); }; //--------------------------------------------------------------------------- -__fastcall TOptionsIniFile::TOptionsIniFile(TStrings * Options, bool IgnoreWrite, const UnicodeString & RootKey) : +__fastcall TOptionsIniFile::TOptionsIniFile(TStrings * Options, TWriteMode WriteMode, const UnicodeString & RootKey) : TCustomIniFile(UnicodeString()) { FOptions = Options; - FIgnoreWrite = IgnoreWrite; + FWriteMode = WriteMode; FRootKey = RootKey; if (!FRootKey.IsEmpty()) { @@ -1336,11 +1339,23 @@ void __fastcall TOptionsIniFile::NotImplemented() throw Exception(L"Not implemented"); } //--------------------------------------------------------------------------- -void __fastcall TOptionsIniFile::HandleWrite() +bool __fastcall TOptionsIniFile::AllowWrite() { - if (!FIgnoreWrite) + switch (FWriteMode) { - NotImplemented(); + case wmAllow: + return true; + + case wmFail: + NotImplemented(); + return false; // never gets here + + case wmIgnore: + return false; + + default: + DebugFail(); + return false; } } //--------------------------------------------------------------------------- @@ -1376,7 +1391,12 @@ UnicodeString __fastcall TOptionsIniFile::ReadString(const UnicodeString Section //--------------------------------------------------------------------------- void __fastcall TOptionsIniFile::WriteString(const UnicodeString Section, const UnicodeString Ident, const UnicodeString Value) { - HandleWrite(); + if (AllowWrite() && + // Implemented for TSessionData.DoSave only + DebugAlwaysTrue(Section.IsEmpty() && FRootKey.IsEmpty())) + { + FOptions->Values[Ident] = Value; + } } //--------------------------------------------------------------------------- void __fastcall TOptionsIniFile::ReadSection(const UnicodeString Section, TStrings * Strings) @@ -1443,17 +1463,32 @@ void __fastcall TOptionsIniFile::ReadSectionValues(const UnicodeString Section, //--------------------------------------------------------------------------- void __fastcall TOptionsIniFile::EraseSection(const UnicodeString Section) { - HandleWrite(); + if (AllowWrite()) + { + NotImplemented(); + } } //--------------------------------------------------------------------------- void __fastcall TOptionsIniFile::DeleteKey(const UnicodeString Section, const UnicodeString Ident) { - HandleWrite(); + if (AllowWrite() && + // Implemented for TSessionData.DoSave only + DebugAlwaysTrue(Section.IsEmpty() && FRootKey.IsEmpty())) + { + int Index = FOptions->IndexOfName(Ident); + if (Index >= 0) + { + FOptions->Delete(Index); + } + } } //--------------------------------------------------------------------------- void __fastcall TOptionsIniFile::UpdateFile() { - HandleWrite(); + if (AllowWrite()) + { + // noop + } } //--------------------------------------------------------------------------- void __fastcall TOptionsIniFile::ReadSections(const UnicodeString /*Section*/, TStrings * /*Strings*/) @@ -1461,17 +1496,17 @@ void __fastcall TOptionsIniFile::ReadSections(const UnicodeString /*Section*/, T NotImplemented(); } //=========================================================================== -__fastcall TOptionsStorage::TOptionsStorage(TStrings * Options): +__fastcall TOptionsStorage::TOptionsStorage(TStrings * Options, bool AllowWrite): TCustomIniFileStorage( UnicodeString(L"Command-line options"), - new TOptionsIniFile(Options, false, UnicodeString())) + new TOptionsIniFile(Options, (AllowWrite ? wmAllow : wmFail), UnicodeString())) { } //--------------------------------------------------------------------------- __fastcall TOptionsStorage::TOptionsStorage(TStrings * Options, const UnicodeString & RootKey, THierarchicalStorage * MasterStorage) : TCustomIniFileStorage( UnicodeString(L"Command-line options overriding " + MasterStorage->Source), - new TOptionsIniFile(Options, true, RootKey)) + new TOptionsIniFile(Options, wmIgnore, RootKey)) { FMasterStorage.reset(MasterStorage); } diff --git a/source/core/HierarchicalStorage.h b/source/core/HierarchicalStorage.h index fd20f1a3..c94c4a59 100644 --- a/source/core/HierarchicalStorage.h +++ b/source/core/HierarchicalStorage.h @@ -215,7 +215,7 @@ class TIniFileStorage : public TCustomIniFileStorage class TOptionsStorage : public TCustomIniFileStorage { public: - __fastcall TOptionsStorage(TStrings * Options); + __fastcall TOptionsStorage(TStrings * Options, bool AllowWrite); __fastcall TOptionsStorage(TStrings * Options, const UnicodeString & RootKey, THierarchicalStorage * MasterStorage); protected: diff --git a/source/core/Http.cpp b/source/core/Http.cpp new file mode 100644 index 00000000..ceb014ef --- /dev/null +++ b/source/core/Http.cpp @@ -0,0 +1,231 @@ +//--------------------------------------------------------------------------- +#include +#pragma hdrstop + +#include "Http.h" +#include "NeonIntf.h" +#include "Exceptions.h" +#include "ne_request.h" +#include "TextsCore.h" +#include +//--------------------------------------------------------------------------- +THttp::THttp() +{ + FProxyPort = 0; + FOnDownload = NULL; + FResponseLimit = -1; +} +//--------------------------------------------------------------------------- +THttp::~THttp() +{ +} +//--------------------------------------------------------------------------- +void THttp::SendRequest(const char * Method, const UnicodeString & Request) +{ + std::unique_ptr AttemptedUrls(CreateSortedStringList()); + AttemptedUrls->Add(URL); + UnicodeString RequestUrl = URL; + bool WasTlsUri = false; // shut up + + bool Retry; + + do + { + ne_uri uri; + NeonParseUrl(RequestUrl, uri); + + bool IsTls = IsTlsUri(uri); + if (RequestUrl == URL) + { + WasTlsUri = IsTls; + } + else + { + if (!IsTls && WasTlsUri) + { + throw Exception(LoadStr(UNENCRYPTED_REDIRECT)); + } + } + + FHostName = StrFromNeon(uri.host); + + UnicodeString Uri = StrFromNeon(uri.path); + if (uri.query != NULL) + { + Uri += L"?" + StrFromNeon(uri.query); + } + + FResponse.SetLength(0); + FCertificateError.SetLength(0); + FException.reset(NULL); + + TProxyMethod ProxyMethod = ProxyHost.IsEmpty() ? ::pmNone : pmHTTP; + + ne_session_s * NeonSession = + CreateNeonSession( + uri, ProxyMethod, ProxyHost, ProxyPort, UnicodeString(), UnicodeString()); + try + { + if (IsTls) + { + SetNeonTlsInit(NeonSession, InitSslSession); + + ne_ssl_set_verify(NeonSession, NeonServerSSLCallback, this); + + ne_ssl_trust_default_ca(NeonSession); + } + + ne_request_s * NeonRequest = ne_request_create(NeonSession, Method, StrToNeon(Uri)); + try + { + UTF8String RequestUtf; + if (!Request.IsEmpty()) + { + RequestUtf = UTF8String(Request); + ne_set_request_body_buffer(NeonRequest, RequestUtf.c_str(), RequestUtf.Length()); + } + + ne_add_response_body_reader(NeonRequest, ne_accept_2xx, NeonBodyReader, this); + + int Status = ne_request_dispatch(NeonRequest); + + // Exception has precedence over status as status will always be NE_ERROR, + // as we returned 1 from NeonBodyReader + if (FException.get() != NULL) + { + RethrowException(FException.get()); + } + + if (Status == NE_REDIRECT) + { + Retry = true; + RequestUrl = GetNeonRedirectUrl(NeonSession); + CheckRedirectLoop(RequestUrl, AttemptedUrls.get()); + } + else + { + Retry = false; + CheckNeonStatus(NeonSession, Status, FHostName, FCertificateError); + + const ne_status * NeonStatus = ne_get_status(NeonRequest); + if (NeonStatus->klass != 2) + { + throw Exception(FMTLOAD(HTTP_ERROR, (NeonStatus->code, StrFromNeon(NeonStatus->reason_phrase), FHostName))); + } + } + } + __finally + { + ne_request_destroy(NeonRequest); + } + } + __finally + { + DestroyNeonSession(NeonSession); + ne_uri_free(&uri); + } + } + while (Retry); +} +//--------------------------------------------------------------------------- +void THttp::Get() +{ + SendRequest("GET", UnicodeString()); +} +//--------------------------------------------------------------------------- +void THttp::Post(const UnicodeString & Request) +{ + SendRequest("POST", Request); +} +//--------------------------------------------------------------------------- +UnicodeString THttp::GetResponse() +{ + UTF8String UtfResponse(FResponse); + return UnicodeString(UtfResponse); +} +//--------------------------------------------------------------------------- +int THttp::NeonBodyReaderImpl(const char * Buf, size_t Len) +{ + bool Result = true; + if ((FResponseLimit < 0) || + (FResponse.Length() + Len <= FResponseLimit)) + { + FResponse += RawByteString(Buf, Len); + + if (FOnDownload != NULL) + { + bool Cancel = false; + + try + { + FOnDownload(this, ResponseLength, Cancel); + } + catch (Exception & E) + { + FException.reset(CloneException(&E)); + Result = false; + } + + if (Cancel) + { + FException.reset(new EAbort(UnicodeString())); + Result = false; + } + } + } + + // neon wants 0 for success + return Result ? 0 : 1; +} +//--------------------------------------------------------------------------- +int THttp::NeonBodyReader(void * UserData, const char * Buf, size_t Len) +{ + THttp * Http = static_cast(UserData); + return Http->NeonBodyReaderImpl(Buf, Len); +} +//--------------------------------------------------------------------------- +__int64 THttp::GetResponseLength() +{ + return FResponse.Length(); +} +//------------------------------------------------------------------------------ +void THttp::InitSslSession(ssl_st * Ssl, ne_session * /*Session*/) +{ + int Options = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1; + SSL_ctrl(Ssl, SSL_CTRL_OPTIONS, Options, NULL); +} +//--------------------------------------------------------------------------- +int THttp::NeonServerSSLCallback(void * UserData, int Failures, const ne_ssl_certificate * Certificate) +{ + THttp * Http = static_cast(UserData); + return Http->NeonServerSSLCallbackImpl(Failures, Certificate); +} +//--------------------------------------------------------------------------- +int THttp::NeonServerSSLCallbackImpl(int Failures, const ne_ssl_certificate * Certificate) +{ + AnsiString AsciiCert = NeonExportCertificate(Certificate); + + // winscp.net 31.05.2015 - 02.06.2016 + const AnsiString WebCert = "MIIEqzCCA5OgAwIBAgIDBMLgMA0GCSqGSIb3DQEBCwUAMEcxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMSAwHgYDVQQDExdSYXBpZFNTTCBTSEEyNTYgQ0EgLSBHMzAeFw0xNTA1MzEwMDA1NTRaFw0xNjA2MDIwNTUxNTNaMIGSMRMwEQYDVQQLEwpHVDUyNTA2NDcyMTEwLwYDVQQLEyhTZWUgd3d3LnJhcGlkc3NsLmNvbS9yZXNvdXJjZXMvY3BzIChjKTE1MS8wLQYDVQQLEyZEb21haW4gQ29udHJvbCBWYWxpZGF0ZWQgLSBSYXBpZFNTTChSKTEXMBUGA1UEAxMOd3d3LndpbnNjcC5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRHP+5FLE+q+oeu0Qlx2eX1nV8Vc0jOkwam95Vr6JV9Ar5ZZIbR8a/jBJv/tDlQ8nvx38gPoFCcPX3qBjRhxIBuNETbLi+7Yd69CXyZKNrbo0pxAbn5C/JKFgog5EkSdR65gia0J6YGPDw/iq180MpkNIBAFInq8Pc36hLz4jrAunFjxJ18pkmBlOVSr7/4Ppd15Co9fhF4A3QI2wcrAOjEfGhssfk7aRp8x36/GI3rs/Or1SbO6/ZSg9h7a5uvJFgQPDVRmqytd03EC9HLVOvRK/70gcQfYcOSEWkEkEO8jQ7eXv0u1y5E20Te0Zk9hVXll2RpCO8u5RyyzhSKW1DAgMBAAGjggFSMIIBTjAfBgNVHSMEGDAWgBTDnPP800YINLvORn+gfFvz4gjLWTBXBggrBgEFBQcBAQRLMEkwHwYIKwYBBQUHMAGGE2h0dHA6Ly9ndi5zeW1jZC5jb20wJgYIKwYBBQUHMAKGGmh0dHA6Ly9ndi5zeW1jYi5jb20vZ3YuY3J0MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwJQYDVR0RBB4wHIIOd3d3LndpbnNjcC5uZXSCCndpbnNjcC5uZXQwKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL2d2LnN5bWNiLmNvbS9ndi5jcmwwDAYDVR0TAQH/BAIwADBBBgNVHSAEOjA4MDYGBmeBDAECATAsMCoGCCsGAQUFBwIBFh5odHRwczovL3d3dy5yYXBpZHNzbC5jb20vbGVnYWwwDQYJKoZIhvcNAQELBQADggEBAHzQ0JNQOtaYUbcw6OCyyiV5O5VemJSDagD5VG5W2gkLfxa9v1ly9hxbdlkKv4d9ruq36ZiHxqKBLoBzw68RNOG/CFY85Xam5Wygo8afSIuhLOYgSUMriH8aoBUXssG15t54z1em58Qh5xMp0crQAbY7D4opo0pEzkaTaS8ulwOxu5SSpK3DF12VKUdKhBs7T0QY+oOJZsqkx7GdmeKxoKRpBQvnRegCszR7vkdWsY0fFZHeNdThkY1iRxI6b4tyDYgZ0COj8WXCBia9wZm/czMmq/d7KED2V06w3Ttc4hDOHl+Onm/gQFLs++1f2Z/X6iPNhIEMNKKH51y/eHJQMxE="; + // cdn.winscp.net 02.06.2015 - 04.06.2016 + const AnsiString CdnCert = "MIIEnzCCA4egAwIBAgIDBMxPMA0GCSqGSIb3DQEBCwUAMEcxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMSAwHgYDVQQDExdSYXBpZFNTTCBTSEEyNTYgQ0EgLSBHMzAeFw0xNTA2MDIwNjIzMDFaFw0xNjA2MDQwMDU0NTVaMIGSMRMwEQYDVQQLEwpHVDUwMzQ0NzgyMTEwLwYDVQQLEyhTZWUgd3d3LnJhcGlkc3NsLmNvbS9yZXNvdXJjZXMvY3BzIChjKTE1MS8wLQYDVQQLEyZEb21haW4gQ29udHJvbCBWYWxpZGF0ZWQgLSBSYXBpZFNTTChSKTEXMBUGA1UEAxMOY2RuLndpbnNjcC5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5ykjjmhjnd6hMmb7WNlQwSzjGCiLA3b+U2xfUYGsR+0o8frU3bv50vNp+IlTFXn32Qt3QtskuoLdi/nip0ABBtgEUt4FAoZ/AMKPyT0hD95ZEFlaclCzUANmSJswWdQIZltbLulMAqt618Snkog3Z3nkjzAMZuKvEYvPV9ujuM2kzkWZr0/OoPHINUkaI6mZwTxCvxwmazBtyIx5tXqmfiOJ1R+viAZm4Av5nqaXz1dTqSjrgpvFtwkTu8YQpK3qrpjN+H67PnClOAS1GY0oaSMccxq0bYL1w0hORa+NyQ+ZTIiXVwiXFJ0w23qHadaoKOiG8WnQ49YvCpbDhMU+3AgMBAAGjggFGMIIBQjAfBgNVHSMEGDAWgBTDnPP800YINLvORn+gfFvz4gjLWTBXBggrBgEFBQcBAQRLMEkwHwYIKwYBBQUHMAGGE2h0dHA6Ly9ndi5zeW1jZC5jb20wJgYIKwYBBQUHMAKGGmh0dHA6Ly9ndi5zeW1jYi5jb20vZ3YuY3J0MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGQYDVR0RBBIwEIIOY2RuLndpbnNjcC5uZXQwKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL2d2LnN5bWNiLmNvbS9ndi5jcmwwDAYDVR0TAQH/BAIwADBBBgNVHSAEOjA4MDYGBmeBDAECATAsMCoGCCsGAQUFBwIBFh5odHRwczovL3d3dy5yYXBpZHNzbC5jb20vbGVnYWwwDQYJKoZIhvcNAQELBQADggEBAF9BN1+whMrK/HCDggLi/76+zDkzqVvNjdTgOLLSBCZaTJV1xNwIfxrPVwECEKkqV0D3eYx53aMxudVq+QuQ7VlS2k0Nu12Bfr0LFcUIOOO55jfjXUnJ8QLWoZQIJ6spOk0Bilxos4yzcORxOfASjkECEg1XUK3THnNgVLKZS92JSdxzsRkZvkpKCSNlX4ftoaPyDsgYWv0gBBA4RPAjAJB5qQTUeu0xIO/r1IhqLqnhlnJ3ewE68ScHbE5sMpl5RLEiaVRBeNw/whVEDPe2TY+JNzk6NdsGWq6uPCFsCXTGzX2QkAwR+rk2y4PPoY2vnj2cQoYWXF5pBjpMPYyRu8Q="; + + if ((AsciiCert == WebCert) || + (AsciiCert == CdnCert)) + { + Failures &= ~NE_SSL_UNTRUSTED; + } + + if (Failures != 0) + { + NeonWindowsValidateCertificate(Failures, AsciiCert); + } + + if (Failures != 0) + { + FCertificateError = NeonCertificateFailuresErrorStr(Failures, FHostName); + } + + return (Failures == 0) ? NE_OK : NE_ERROR; +} +//--------------------------------------------------------------------------- diff --git a/source/core/Http.h b/source/core/Http.h new file mode 100644 index 00000000..0687ebbe --- /dev/null +++ b/source/core/Http.h @@ -0,0 +1,54 @@ +//--------------------------------------------------------------------------- +#ifndef HttpH +#define HttpH +//--------------------------------------------------------------------------- +#include +//--------------------------------------------------------------------------- +struct ne_session_s; +struct ne_request_s; +struct ne_ssl_certificate_s; +struct ssl_st; +//--------------------------------------------------------------------------- +class THttp; +typedef void __fastcall (__closure * THttpDownloadEvent)(THttp * Sender, __int64 Size, bool & Cancel); +//--------------------------------------------------------------------------- +class THttp +{ +public: + THttp(); + ~THttp(); + + void Get(); + void Post(const UnicodeString & Request); + + __property UnicodeString URL = { read = FURL, write = FURL }; + __property UnicodeString ProxyHost = { read = FProxyHost, write = FProxyHost }; + __property int ProxyPort = { read = FProxyPort, write = FProxyPort }; + __property UnicodeString Response = { read = GetResponse }; + __property RawByteString ResponseRaw = { read = FResponse }; + __property __int64 ResponseLength = { read = GetResponseLength }; + __property __int64 ResponseLimit = { read = FResponseLimit, write = FResponseLimit }; + __property THttpDownloadEvent OnDownload = { read = FOnDownload, write = FOnDownload}; + +private: + UnicodeString FURL; + UnicodeString FProxyHost; + int FProxyPort; + RawByteString FResponse; + __int64 FResponseLimit; + std::unique_ptr FException; + THttpDownloadEvent FOnDownload; + UnicodeString FHostName; + UnicodeString FCertificateError; + + static int NeonBodyReader(void * UserData, const char * Buf, size_t Len); + int NeonBodyReaderImpl(const char * Buf, size_t Len); + void SendRequest(const char * Method, const UnicodeString & Request); + UnicodeString GetResponse(); + __int64 GetResponseLength(); + static void InitSslSession(ssl_st * Ssl, ne_session_s * Session); + static int NeonServerSSLCallback(void * UserData, int Failures, const ne_ssl_certificate_s * Certificate); + int NeonServerSSLCallbackImpl(int Failures, const ne_ssl_certificate_s * Certificate); +}; +//--------------------------------------------------------------------------- +#endif diff --git a/source/core/Interface.h b/source/core/Interface.h index 88a869ee..7d6fb84d 100644 --- a/source/core/Interface.h +++ b/source/core/Interface.h @@ -5,6 +5,8 @@ #include "Configuration.h" #include "SessionData.h" #define HELP_NONE "" +#define COMMAND_SWITCH L"Command" +#define SESSIONNAME_SWICH L"SessionName" //--------------------------------------------------------------------------- TConfiguration * __fastcall CreateConfiguration(); class TOptions; @@ -17,7 +19,7 @@ UnicodeString __fastcall GetCompanyRegistryKey(); UnicodeString __fastcall GetRegistryKey(); void * __fastcall BusyStart(); void __fastcall BusyEnd(void * Token); -const unsigned int GUIUpdateInterval = 200; +const unsigned int GUIUpdateInterval = 100; void __fastcall SetNoGUI(); bool __fastcall ProcessGUI(bool Force = false); UnicodeString __fastcall AppNameString(); @@ -53,6 +55,7 @@ const int qpFatalAbort = 0x01; const int qpNeverAskAgainCheck = 0x02; const int qpAllowContinueOnError = 0x04; const int qpIgnoreAbort = 0x08; +const int qpWaitInBatch = 0x10; struct TQueryButtonAlias { @@ -63,6 +66,7 @@ struct TQueryButtonAlias TNotifyEvent OnClick; int GroupWith; TShiftState GrouppedShiftState; + bool ElevationRequired; }; typedef void __fastcall (__closure *TQueryParamsTimerEvent)(unsigned int & Result); diff --git a/source/core/KeyGen.cpp b/source/core/KeyGen.cpp index 8fd7c108..0183d1ef 100644 --- a/source/core/KeyGen.cpp +++ b/source/core/KeyGen.cpp @@ -155,7 +155,7 @@ class TKeyGenerationThread : public THREAD_CLASS void KeyGenerationProgressUpdate(void * Thread, int Action, int Phase, int IProgress) { - assert(Thread); + DebugAssert(Thread); ((TKeyGenerationThread*)Thread)->ProgressUpdate(Action, Phase, IProgress); } //--------------------------------------------------------------------------- @@ -175,7 +175,7 @@ __fastcall TKeyGenerator::TKeyGenerator(): //--------------------------------------------------------------------------- __fastcall TKeyGenerator::~TKeyGenerator() { - assert(FState != kgGenerating); + DebugAssert(FState != kgGenerating); if (FEntropy) delete FEntropy; delete FSSH2Key; delete FRSAKey; @@ -184,7 +184,7 @@ __fastcall TKeyGenerator::~TKeyGenerator() //--------------------------------------------------------------------------- void __fastcall TKeyGenerator::SetKeySize(int value) { - assert(FState != kgGenerating); + DebugAssert(FState != kgGenerating); FState = kgInitializing; FKeySize = value; FEntropyRequired = (KeySize / 2) * 2; @@ -195,16 +195,16 @@ void __fastcall TKeyGenerator::SetKeySize(int value) //--------------------------------------------------------------------------- void __fastcall TKeyGenerator::SetKeyType(TKeyType value) { - assert(FState != kgGenerating); + DebugAssert(FState != kgGenerating); FState = kgInitializing; FKeyType = value; } //--------------------------------------------------------------------------- void __fastcall TKeyGenerator::AddEntropy(TEntropyBit Entropy) { - assert(FState == kgInitializing); - assert(FEntropy); - assert(FEntropyGot < FEntropyRequired); + DebugAssert(FState == kgInitializing); + DebugAssert(FEntropy); + DebugAssert(FEntropyGot < FEntropyRequired); FEntropy[FEntropyGot++] = Entropy; if (FEntropyGot == FEntropyRequired) { @@ -217,7 +217,7 @@ void __fastcall TKeyGenerator::AddEntropy(TEntropyBit Entropy) //--------------------------------------------------------------------------- void __fastcall TKeyGenerator::ResetKey() { - assert(FSSH2Key); + DebugAssert(FSSH2Key); switch (KeyType) { case ktDSA: FSSH2Key->data = FDSSKey; @@ -242,14 +242,14 @@ void __fastcall TKeyGenerator::ResetKey() //--------------------------------------------------------------------------- void __fastcall TKeyGenerator::StartGenerationThread() { - assert(FState == kgInitialized); + DebugAssert(FState == kgInitialized); FState = kgGenerating; new TKeyGenerationThread(this); } //--------------------------------------------------------------------------- void __fastcall TKeyGenerator::Generate() { - assert(FState == kgInitialized); + DebugAssert(FState == kgInitialized); THREAD_CLASS * Thread; FState = kgGenerating; Thread = new TKeyGenerationThread(this); @@ -259,7 +259,7 @@ void __fastcall TKeyGenerator::Generate() void __fastcall TKeyGenerator::ProgressUpdate(int Range, int Position, TKeyGenerationComplete Complete) { - assert(FState == kgGenerating); + DebugAssert(FState == kgGenerating); if (Complete == kgSuccess) { FState = kgComplete; @@ -285,7 +285,7 @@ void __fastcall TKeyGenerator::SetComment(AnsiString value) { FComment = value; FPublicKey = ""; - assert(FSSH2Key); + DebugAssert(FSSH2Key); FSSH2Key->comment = FComment.c_str(); FRSAKey->comment = FComment.c_str(); } @@ -297,7 +297,7 @@ AnsiString __fastcall TKeyGenerator::GetFingerprint() { if (IsSSH2) { - assert(FSSH2Key); + DebugAssert(FSSH2Key); FFingerprint = FSSH2Key->alg->fingerprint(FSSH2Key->data); } else @@ -324,7 +324,7 @@ AnsiString __fastcall TKeyGenerator::GetPublicKey() int pub_len; int i; - assert(FSSH2Key); + DebugAssert(FSSH2Key); pub_blob = FSSH2Key->alg->public_blob(FSSH2Key->data, &pub_len); buffer = new char[4 * ((pub_len + 2) / 3) + 1]; p = buffer; @@ -346,16 +346,16 @@ AnsiString __fastcall TKeyGenerator::GetPublicKey() //--------------------------------------------------------------------------- AnsiString __fastcall TKeyGenerator::GetAuthorizedKeysLine() { - assert(FSSH2Key); + DebugAssert(FSSH2Key); return FORMAT("%s %s %s", (FSSH2Key->alg->name, PublicKey, Comment)); } //--------------------------------------------------------------------------- void __fastcall TKeyGenerator::SaveKey(const AnsiString FileName, const AnsiString Passphrase, TKeyFormat Format) { - assert(FSSH2Key); - assert(FState == kgComplete); - assert((Format != kfOpenSSH && Format != kfSSHCom) || IsSSH2); + DebugAssert(FSSH2Key); + DebugAssert(FState == kgComplete); + DebugAssert((Format != kfOpenSSH && Format != kfSSHCom) || IsSSH2); int Result; @@ -379,12 +379,12 @@ void __fastcall TKeyGenerator::SaveKey(const AnsiString FileName, break; default: - FAIL; + DebugFail(); } } else { - assert(Format == kfPutty); + DebugAssert(Format == kfPutty); Result = saversakey(FileName.c_str(), FRSAKey, (char*)Passphrase.data()); } diff --git a/source/core/NamedObjs.cpp b/source/core/NamedObjs.cpp index de9ca6fe..cf9f5a4e 100644 --- a/source/core/NamedObjs.cpp +++ b/source/core/NamedObjs.cpp @@ -76,6 +76,7 @@ __fastcall TNamedObjectList::TNamedObjectList(): { AutoSort = True; FHiddenCount = 0; + FControlledAdd = false; } //--------------------------------------------------------------------------- TNamedObject * __fastcall TNamedObjectList::AtObject(Integer Index) @@ -96,12 +97,43 @@ void __fastcall TNamedObjectList::AlphaSort() Recount(); } //--------------------------------------------------------------------------- +int __fastcall TNamedObjectList::Add(TObject * AObject) +{ + int Result; + TAutoFlag ControlledAddFlag(FControlledAdd); + TNamedObject * NamedObject = static_cast(AObject); + // If temporarily not auto-sorting (when loading session list), + // keep the hidden objects in front, so that HiddenCount is correct + if (!AutoSort && NamedObject->Hidden) + { + Result = 0; + Insert(Result, AObject); + FHiddenCount++; + } + else + { + Result = TObjectList::Add(AObject); + } + return Result; +} +//--------------------------------------------------------------------------- void __fastcall TNamedObjectList::Notify(void *Ptr, TListNotification Action) { + if (Action == lnDeleted) + { + TNamedObject * NamedObject = static_cast(Ptr); + if (NamedObject->Hidden && (FHiddenCount >= 0)) + { + FHiddenCount--; + } + } TObjectList::Notify(Ptr, Action); if (Action == lnAdded) { - FHiddenCount = -1; + if (!FControlledAdd) + { + FHiddenCount = -1; + } if (AutoSort) { AlphaSort(); @@ -131,12 +163,12 @@ void __fastcall TNamedObjectList::SetCount(int value) //--------------------------------------------------------------------------- int __fastcall TNamedObjectList::GetCount() { - assert(FHiddenCount >= 0); + DebugAssert(FHiddenCount >= 0); return TObjectList::Count - FHiddenCount; } //--------------------------------------------------------------------------- int __fastcall TNamedObjectList::GetCountIncludingHidden() { - assert(FHiddenCount >= 0); + DebugAssert(FHiddenCount >= 0); return TObjectList::Count; } diff --git a/source/core/NamedObjs.h b/source/core/NamedObjs.h index 1027ac63..486ad835 100644 --- a/source/core/NamedObjs.h +++ b/source/core/NamedObjs.h @@ -32,6 +32,7 @@ class TNamedObjectList : public TObjectList void __fastcall SetCount(int value); protected: int FHiddenCount; + bool FControlledAdd; void __fastcall Recount(); public: static const UnicodeString HiddenPrefix; @@ -40,6 +41,7 @@ class TNamedObjectList : public TObjectList __fastcall TNamedObjectList(); void __fastcall AlphaSort(); + int __fastcall Add(TObject * AObject); virtual TNamedObject * __fastcall AtObject(Integer Index); TNamedObject * __fastcall FindByName(const UnicodeString & Name); __property int Count = { read = GetCount, write = SetCount }; diff --git a/source/core/NeonIntf.cpp b/source/core/NeonIntf.cpp new file mode 100644 index 00000000..52b27e1c --- /dev/null +++ b/source/core/NeonIntf.cpp @@ -0,0 +1,305 @@ +//--------------------------------------------------------------------------- +#include +#pragma hdrstop + +#include "NeonIntf.h" +#include "Interface.h" +#include "CoreMain.h" +#include "Exceptions.h" +#include "Security.h" +#include +#include +#include +#include +//--------------------------------------------------------------------------- +#define SESSION_PROXY_AUTH_KEY "proxyauth" +#define SESSION_TLS_INIT_KEY "tlsinit" +//--------------------------------------------------------------------------- +void NeonParseUrl(const UnicodeString & Url, ne_uri & uri) +{ + if (ne_uri_parse(StrToNeon(Url), &uri) != 0) + { + // should never happen + throw Exception(FMTLOAD(INVALID_URL, (Url))); + } + + // Will never happen for initial URL, but may happen for redirect URLs + if (uri.port == 0) + { + uri.port = ne_uri_defaultport(uri.scheme); + } +} +//--------------------------------------------------------------------------- +bool IsTlsUri(const ne_uri & uri) +{ + return SameText(StrFromNeon(uri.scheme), WebDAVSProtocol); +} +//--------------------------------------------------------------------------- +struct TProxyAuthData +{ + UnicodeString UserName; + UnicodeString Password; +}; +//------------------------------------------------------------------------------ +static int NeonProxyAuth( + void * UserData, const char * /*Realm*/, int Attempt, char * UserName, char * Password) +{ + TProxyAuthData * ProxyAuthData = static_cast(UserData); + + int Result; + // no point trying too many times as we always return the same credentials + // (maybe just one would be enough) + if (Attempt >= 2) + { + Result = 1; + } + else + { + strncpy(UserName, StrToNeon(ProxyAuthData->UserName), NE_ABUFSIZ); + strncpy(Password, StrToNeon(ProxyAuthData->Password), NE_ABUFSIZ); + Result = 0; + } + + return Result; +} +//--------------------------------------------------------------------------- +ne_session * CreateNeonSession( + const ne_uri & uri, TProxyMethod ProxyMethod, const UnicodeString & ProxyHost, + int ProxyPort, const UnicodeString & ProxyUsername, const UnicodeString & ProxyPassword) +{ + ne_session * Session = ne_session_create(uri.scheme, uri.host, uri.port); + + if (ProxyMethod != ::pmNone) + { + if ((ProxyMethod == pmSocks4) || (ProxyMethod == pmSocks5)) + { + enum ne_sock_sversion vers = (ProxyMethod == pmSocks4) ? NE_SOCK_SOCKSV4A : NE_SOCK_SOCKSV5; + ne_session_socks_proxy(Session, vers, StrToNeon(ProxyHost), ProxyPort, StrToNeon(ProxyUsername), StrToNeon(ProxyPassword)); + } + else if (!ProxyHost.IsEmpty()) + { + ne_session_proxy(Session, StrToNeon(ProxyHost), ProxyPort); + + if (!ProxyUsername.IsEmpty()) + { + TProxyAuthData * ProxyAuthData = new TProxyAuthData(); + ProxyAuthData->UserName = ProxyUsername; + ProxyAuthData->Password = ProxyPassword; + ne_set_session_private(Session, SESSION_PROXY_AUTH_KEY, ProxyAuthData); + ne_set_proxy_auth(Session, NeonProxyAuth, ProxyAuthData); + } + else + { + // Enable (only) the Negotiate scheme for proxy + // authentication, if no username/password is + // configured. + ne_add_proxy_auth(Session, NE_AUTH_NEGOTIATE, NULL, NULL); + } + } + } + + ne_redirect_register(Session); + ne_set_useragent(Session, StrToNeon(FORMAT(L"%s/%s", (AppNameString(), Configuration->Version)))); + + return Session; +} +//--------------------------------------------------------------------------- +void DestroyNeonSession(ne_session * Session) +{ + TProxyAuthData * ProxyAuthData = + static_cast(ne_get_session_private(Session, SESSION_PROXY_AUTH_KEY)); + if (ProxyAuthData != NULL) + { + delete ProxyAuthData; + } + ne_session_destroy(Session); +} +//--------------------------------------------------------------------------- +UnicodeString GetNeonError(ne_session * Session) +{ + return StrFromNeon(ne_get_error(Session)); +} +//--------------------------------------------------------------------------- +void CheckNeonStatus(ne_session * Session, int NeonStatus, + const UnicodeString & HostName, const UnicodeString & CustomError) +{ + if (NeonStatus == NE_OK) + { + // noop + } + else + { + UnicodeString NeonError = GetNeonError(Session); + UnicodeString Error; + if (!CustomError.IsEmpty()) + { + Error = CustomError; + } + else + { + switch (NeonStatus) + { + case NE_ERROR: + // noop + DebugAssert(!NeonError.IsEmpty()); + Error = NeonError; + NeonError = L""; + break; + + case NE_LOOKUP: + Error = ReplaceStr(LoadStr(NET_TRANSL_HOST_NOT_EXIST2), L"%HOST%", HostName); + break; + + case NE_AUTH: + Error = LoadStr(AUTHENTICATION_FAILED); + break; + + case NE_PROXYAUTH: + Error = LoadStr(PROXY_AUTHENTICATION_FAILED); + break; + + case NE_CONNECT: + Error = LoadStr(CONNECTION_FAILED); + break; + + case NE_TIMEOUT: + Error = ReplaceStr(LoadStr(NET_TRANSL_TIMEOUT2), L"%HOST%", HostName); + break; + + case NE_REDIRECT: + { + char * Uri = ne_uri_unparse(ne_redirect_location(Session)); + Error = FMTLOAD(REQUEST_REDIRECTED, (Uri)); + ne_free(Uri); + } + break; + + case NE_FAILED: // never used by neon as of 0.30.0 + case NE_RETRY: // not sure if this is a public API + default: + DebugFail(); + Error = FORMAT(L"Unexpected neon error %d", (NeonStatus)); + break; + } + } + + throw ExtException(Error, NeonError); + } +} +//--------------------------------------------------------------------------- +UnicodeString GetNeonRedirectUrl(ne_session * Session) +{ + const ne_uri * RedirectUri = ne_redirect_location(Session); + char * RedirectUriStr = ne_uri_unparse(RedirectUri); + UnicodeString Result = StrFromNeon(RedirectUriStr); + ne_free(RedirectUriStr); + return Result; +} +//--------------------------------------------------------------------------- +#define MAX_REDIRECT_ATTEMPTS 5 +//--------------------------------------------------------------------------- +void CheckRedirectLoop(const UnicodeString & RedirectUrl, TStrings * AttemptedUrls) +{ + if (AttemptedUrls->Count > MAX_REDIRECT_ATTEMPTS) + { + throw Exception(LoadStr(TOO_MANY_REDIRECTS)); + } + else + { + // Make sure we've not attempted this URL before. + if (AttemptedUrls->IndexOf(RedirectUrl) >= 0) + { + throw Exception(LoadStr(REDIRECT_LOOP)); + } + AttemptedUrls->Add(RedirectUrl); + } +} +//--------------------------------------------------------------------------- +extern "C" +{ + +void ne_init_ssl_session(struct ssl_st * Ssl, ne_session * Session) +{ + TNeonTlsInit OnNeonTlsInit = + reinterpret_cast(ne_get_session_private(Session, SESSION_TLS_INIT_KEY)); + if (DebugAlwaysTrue(OnNeonTlsInit != NULL)) + { + OnNeonTlsInit(Ssl, Session); + } +} + +} // extern "C" +//--------------------------------------------------------------------------- +void SetNeonTlsInit(ne_session * Session, TNeonTlsInit OnNeonTlsInit) +{ + ne_set_session_private(Session, SESSION_TLS_INIT_KEY, OnNeonTlsInit); +} +//--------------------------------------------------------------------------- +AnsiString NeonExportCertificate(const ne_ssl_certificate * Certificate) +{ + char * AsciiCert = ne_ssl_cert_export(Certificate); + AnsiString Result = AsciiCert; + ne_free(AsciiCert); + return Result; +} +//--------------------------------------------------------------------------- +bool NeonWindowsValidateCertificate(int & Failures, const AnsiString & AsciiCert) +{ + bool Result = false; + // We can accept only unknown certificate authority. + if (FLAGSET(Failures, NE_SSL_UNTRUSTED)) + { + unsigned char * Certificate; + size_t CertificateLen = ne_unbase64(AsciiCert.c_str(), &Certificate); + + if (CertificateLen > 0) + { + if (WindowsValidateCertificate(Certificate, CertificateLen)) + { + Failures &= ~NE_SSL_UNTRUSTED; + Result = true; + } + ne_free(Certificate); + } + } + return Result; +} +//--------------------------------------------------------------------------- +UnicodeString NeonCertificateFailuresErrorStr(int Failures, const UnicodeString & HostName) +{ + int FailuresToList = Failures; + + UnicodeString Result; + if (FLAGSET(FailuresToList, NE_SSL_NOTYETVALID)) + { + AddToList(Result, LoadStr(CERT_ERR_CERT_NOT_YET_VALID), L" "); + FailuresToList &= ~NE_SSL_NOTYETVALID; + } + if (FLAGSET(FailuresToList, NE_SSL_EXPIRED)) + { + AddToList(Result, LoadStr(CERT_ERR_CERT_HAS_EXPIRED), L" "); + FailuresToList &= ~NE_SSL_EXPIRED; + } + // NEON checks certificate host name on its own + if (FLAGSET(FailuresToList, NE_SSL_IDMISMATCH)) + { + AddToList(Result, FMTLOAD(CERT_NAME_MISMATCH, (HostName)), L" "); + FailuresToList &= ~NE_SSL_IDMISMATCH; + } + if (FLAGSET(FailuresToList, NE_SSL_UNTRUSTED)) + { + AddToList(Result, LoadStr(CERT_ERR_CERT_UNTRUSTED), L" "); + FailuresToList &= ~NE_SSL_UNTRUSTED; + } + if (FLAGSET(FailuresToList, NE_SSL_BADCHAIN)) + { + AddToList(Result, LoadStr(CERT_ERR_BAD_CHAIN), L" "); + FailuresToList &= ~NE_SSL_BADCHAIN; + } + // nb, NE_SSL_REVOKED is never used by OpenSSL implementation + if (FailuresToList != 0) + { + AddToList(Result, LoadStr(CERT_ERR_UNKNOWN), L" "); + } + return Result; +} diff --git a/source/core/NeonIntf.h b/source/core/NeonIntf.h new file mode 100644 index 00000000..b4ae859b --- /dev/null +++ b/source/core/NeonIntf.h @@ -0,0 +1,28 @@ +//--------------------------------------------------------------------------- +#ifndef NeonIntfH +#define NeonIntfH +//--------------------------------------------------------------------------- +#include +#include +#include +//--------------------------------------------------------------------------- +#define StrToNeon(S) UTF8String(S).c_str() +#define StrFromNeon(S) UnicodeString(UTF8String(S)) +//--------------------------------------------------------------------------- +void NeonParseUrl(const UnicodeString & Url, ne_uri & uri); +bool IsTlsUri(const ne_uri & uri); +ne_session * CreateNeonSession(const ne_uri & uri, TProxyMethod ProxyMethod, const UnicodeString & ProxyHost, + int ProxyPort, const UnicodeString & ProxyUsername, const UnicodeString & ProxyPassword); +void DestroyNeonSession(ne_session * Session); +UnicodeString GetNeonError(ne_session * Session); +void CheckNeonStatus(ne_session * Session, int NeonStatus, + const UnicodeString & HostName, const UnicodeString & CustomError = L""); +UnicodeString GetNeonRedirectUrl(ne_session * Session); +void CheckRedirectLoop(const UnicodeString & RedirectUrl, TStrings * AttemptedUrls); +typedef void (*TNeonTlsInit)(struct ssl_st * Ssl, ne_session * Session); +void SetNeonTlsInit(ne_session * Session, TNeonTlsInit OnNeonTlsInit); +AnsiString NeonExportCertificate(const ne_ssl_certificate * Certificate); +bool NeonWindowsValidateCertificate(int & Failures, const AnsiString & AsciiCert); +UnicodeString NeonCertificateFailuresErrorStr(int Failures, const UnicodeString & HostName); +//--------------------------------------------------------------------------- +#endif diff --git a/source/core/Option.cpp b/source/core/Option.cpp index 432b155e..c388b26d 100644 --- a/source/core/Option.cpp +++ b/source/core/Option.cpp @@ -29,12 +29,14 @@ void __fastcall TOptions::Add(UnicodeString Value) { bool Switch = false; int Index = 0; // shut up + wchar_t SwitchMark = L'\0'; if (!FNoMoreSwitches && (Value.Length() >= 2) && (FSwitchMarks.Pos(Value[1]) > 0)) { Index = 2; Switch = true; + SwitchMark = Value[1]; while (Switch && (Index <= Value.Length())) { if (Value.IsDelimiter(FSwitchValueDelimiters, Index)) @@ -51,24 +53,27 @@ void __fastcall TOptions::Add(UnicodeString Value) } } + TOption Option; + if (Switch) { - TOption Option; Option.Type = otSwitch; Option.Name = Value.SubString(2, Index - 2); Option.Value = Value.SubString(Index + 1, Value.Length()); - Option.Used = false; - FOptions.push_back(Option); + Option.ValueSet = (Index <= Value.Length()); } else { - TOption Option; Option.Type = otParam; Option.Value = Value; - Option.Used = false; - FOptions.push_back(Option); + Option.ValueSet = false; // unused ++FParamCount; } + + Option.Used = false; + Option.SwitchMark = SwitchMark; + + FOptions.push_back(Option); } FOriginalOptions = FOptions; @@ -76,7 +81,7 @@ void __fastcall TOptions::Add(UnicodeString Value) //--------------------------------------------------------------------------- UnicodeString __fastcall TOptions::GetParam(int Index) { - assert((Index >= 1) && (Index <= FParamCount)); + DebugAssert((Index >= 1) && (Index <= FParamCount)); UnicodeString Result; size_t I = 0; @@ -103,9 +108,10 @@ bool __fastcall TOptions::GetEmpty() } //--------------------------------------------------------------------------- bool __fastcall TOptions::FindSwitch(const UnicodeString Switch, - UnicodeString & Value, int & ParamsStart, int & ParamsCount) + UnicodeString & Value, int & ParamsStart, int & ParamsCount, bool CaseSensitive, bool & ValueSet) { ParamsStart = 0; + ValueSet = false; int Index = 0; bool Found = false; while ((Index < int(FOptions.size())) && !Found) @@ -116,10 +122,12 @@ bool __fastcall TOptions::FindSwitch(const UnicodeString Switch, } else if (FOptions[Index].Type == otSwitch) { - if (AnsiSameText(FOptions[Index].Name, Switch)) + if ((!CaseSensitive && AnsiSameText(FOptions[Index].Name, Switch)) || + (CaseSensitive && AnsiSameStr(FOptions[Index].Name, Switch))) { Found = true; Value = FOptions[Index].Value; + ValueSet = FOptions[Index].ValueSet; FOptions[Index].Used = true; } } @@ -145,10 +153,16 @@ bool __fastcall TOptions::FindSwitch(const UnicodeString Switch, } //--------------------------------------------------------------------------- bool __fastcall TOptions::FindSwitch(const UnicodeString Switch, UnicodeString & Value) +{ + bool ValueSet; + return FindSwitch(Switch, Value, ValueSet); +} +//--------------------------------------------------------------------------- +bool __fastcall TOptions::FindSwitch(const UnicodeString Switch, UnicodeString & Value, bool & ValueSet) { int ParamsStart; int ParamsCount; - return FindSwitch(Switch, Value, ParamsStart, ParamsCount); + return FindSwitch(Switch, Value, ParamsStart, ParamsCount, false, ValueSet); } //--------------------------------------------------------------------------- bool __fastcall TOptions::FindSwitch(const UnicodeString Switch) @@ -156,16 +170,39 @@ bool __fastcall TOptions::FindSwitch(const UnicodeString Switch) UnicodeString Value; int ParamsStart; int ParamsCount; - return FindSwitch(Switch, Value, ParamsStart, ParamsCount); + bool ValueSet; + return FindSwitch(Switch, Value, ParamsStart, ParamsCount, false, ValueSet); +} +//--------------------------------------------------------------------------- +bool __fastcall TOptions::FindSwitchCaseSensitive(const UnicodeString Switch) +{ + UnicodeString Value; + int ParamsStart; + int ParamsCount; + bool ValueSet; + return FindSwitch(Switch, Value, ParamsStart, ParamsCount, true, ValueSet); } //--------------------------------------------------------------------------- bool __fastcall TOptions::FindSwitch(const UnicodeString Switch, TStrings * Params, int ParamsMax) +{ + return DoFindSwitch(Switch, Params, ParamsMax, false); +} +//--------------------------------------------------------------------------- +bool __fastcall TOptions::FindSwitchCaseSensitive(const UnicodeString Switch, + TStrings * Params, int ParamsMax) +{ + return DoFindSwitch(Switch, Params, ParamsMax, true); +} +//--------------------------------------------------------------------------- +bool __fastcall TOptions::DoFindSwitch(const UnicodeString Switch, + TStrings * Params, int ParamsMax, bool CaseSensitive) { UnicodeString Value; int ParamsStart; int ParamsCount; - bool Result = FindSwitch(Switch, Value, ParamsStart, ParamsCount); + bool ValueSet; + bool Result = FindSwitch(Switch, Value, ParamsStart, ParamsCount, CaseSensitive, ValueSet); if (Result) { if ((ParamsMax >= 0) && (ParamsCount > ParamsMax)) @@ -251,14 +288,16 @@ bool __fastcall TOptions::UnusedSwitch(UnicodeString & Switch) return Result; } //--------------------------------------------------------------------------- -bool __fastcall TOptions::WasSwitchAdded(UnicodeString & Switch) +bool __fastcall TOptions::WasSwitchAdded(UnicodeString & Switch, wchar_t & SwitchMark) { bool Result = - ALWAYS_TRUE(FOptions.size() > 0) && + DebugAlwaysTrue(FOptions.size() > 0) && (FOptions.back().Type == otSwitch); if (Result) { - Switch = FOptions.back().Name; + TOption & Option = FOptions.back(); + Switch = Option.Name; + SwitchMark = Option.SwitchMark; } return Result; } @@ -267,7 +306,7 @@ void __fastcall TOptions::ParamsProcessed(int ParamsStart, int ParamsCount) { if (ParamsCount > 0) { - assert((ParamsStart >= 0) && ((ParamsStart - ParamsCount + 1) <= FParamCount)); + DebugAssert((ParamsStart >= 0) && ((ParamsStart - ParamsCount + 1) <= FParamCount)); size_t Index = 0; while ((Index < FOptions.size()) && (ParamsStart > 0)) @@ -280,8 +319,8 @@ void __fastcall TOptions::ParamsProcessed(int ParamsStart, int ParamsCount) { while (ParamsCount > 0) { - assert(Index < FOptions.size()); - assert(FOptions[Index].Type == otParam); + DebugAssert(Index < FOptions.size()); + DebugAssert(FOptions[Index].Type == otParam); FOptions.erase(FOptions.begin() + Index); --FParamCount; --ParamsCount; @@ -303,7 +342,7 @@ void __fastcall TOptions::LogOptions(TLogOptionEvent OnLogOption) { case otParam: LogStr = FORMAT(L"Parameter: %s", (Option.Value)); - assert(Option.Name.IsEmpty()); + DebugAssert(Option.Name.IsEmpty()); break; case otSwitch: @@ -313,7 +352,7 @@ void __fastcall TOptions::LogOptions(TLogOptionEvent OnLogOption) break; default: - FAIL; + DebugFail(); break; } OnLogOption(LogStr); diff --git a/source/core/Option.h b/source/core/Option.h index 054bb1eb..776f33a4 100644 --- a/source/core/Option.h +++ b/source/core/Option.h @@ -13,18 +13,24 @@ class TOptions public: __fastcall TOptions(); + void __fastcall Add(UnicodeString Option); + bool __fastcall FindSwitch(const UnicodeString Switch); bool __fastcall FindSwitch(const UnicodeString Switch, UnicodeString & Value); + bool __fastcall FindSwitch(const UnicodeString Switch, UnicodeString & Value, bool & ValueSet); bool __fastcall FindSwitch(const UnicodeString Switch, int & ParamsStart, int & ParamsCount); bool __fastcall FindSwitch(const UnicodeString Switch, TStrings * Params, int ParamsMax = -1); + bool __fastcall FindSwitchCaseSensitive(const UnicodeString Switch); + bool __fastcall FindSwitchCaseSensitive(const UnicodeString Switch, TStrings * Params, + int ParamsMax = -1); void __fastcall ParamsProcessed(int Position, int Count); UnicodeString __fastcall SwitchValue(const UnicodeString Switch, const UnicodeString Default = L""); bool __fastcall SwitchValue(const UnicodeString Switch, bool Default); bool __fastcall SwitchValue(const UnicodeString Switch, bool Default, bool DefaultOnNonExistence); bool __fastcall UnusedSwitch(UnicodeString & Switch); - bool __fastcall WasSwitchAdded(UnicodeString & Switch); + bool __fastcall WasSwitchAdded(UnicodeString & Switch, wchar_t & SwitchMark); void __fastcall LogOptions(TLogOptionEvent OnEnumOption); @@ -36,10 +42,10 @@ class TOptions UnicodeString FSwitchMarks; UnicodeString FSwitchValueDelimiters; - void __fastcall Add(UnicodeString Option); - bool __fastcall FindSwitch(const UnicodeString Switch, - UnicodeString & Value, int & ParamsStart, int & ParamsCount); + UnicodeString & Value, int & ParamsStart, int & ParamsCount, bool CaseSensitive, bool & ValueSet); + bool __fastcall DoFindSwitch(const UnicodeString Switch, TStrings * Params, + int ParamsMax, bool CaseInsensitive); private: struct TOption @@ -47,7 +53,9 @@ class TOptions TOptionType Type; UnicodeString Name; UnicodeString Value; + bool ValueSet; bool Used; + wchar_t SwitchMark; }; typedef std::vector TOptionsVector; diff --git a/source/core/PuttyIntf.cpp b/source/core/PuttyIntf.cpp index b8e8e507..84d40b05 100644 --- a/source/core/PuttyIntf.cpp +++ b/source/core/PuttyIntf.cpp @@ -17,6 +17,8 @@ CRITICAL_SECTION putty_section; bool SaveRandomSeed; char appname_[50]; const char *const appname = appname_; +extern const int share_can_be_downstream = FALSE; +extern const int share_can_be_upstream = FALSE; //--------------------------------------------------------------------------- extern "C" { @@ -41,11 +43,11 @@ void __fastcall PuttyInitialize() sk_init(); - AnsiString VersionString = SshVersionString(); - assert(!VersionString.IsEmpty() && (static_cast(VersionString.Length()) < LENOF(sshver))); + AnsiString VersionString = AnsiString(SshVersionString()); + DebugAssert(!VersionString.IsEmpty() && (static_cast(VersionString.Length()) < LENOF(sshver))); strcpy(sshver, VersionString.c_str()); - AnsiString AppName = AppNameString(); - assert(!AppName.IsEmpty() && (static_cast(AppName.Length()) < LENOF(appname_))); + AnsiString AppName = AnsiString(AppNameString()); + DebugAssert(!AppName.IsEmpty() && (static_cast(AppName.Length()) < LENOF(appname_))); strcpy(appname_, AppName.c_str()); } //--------------------------------------------------------------------------- @@ -86,7 +88,7 @@ extern "C" char * do_select(Plug plug, SOCKET skt, int startup) } frontend = get_ssh_frontend(plug); - assert(frontend); + DebugAssert(frontend); TSecureShell * SecureShell = reinterpret_cast(frontend); if (!pfwd) @@ -103,15 +105,15 @@ extern "C" char * do_select(Plug plug, SOCKET skt, int startup) //--------------------------------------------------------------------------- int from_backend(void * frontend, int is_stderr, const char * data, int datalen) { - assert(frontend); + DebugAssert(frontend); if (is_stderr >= 0) { - assert((is_stderr == 0) || (is_stderr == 1)); + DebugAssert((is_stderr == 0) || (is_stderr == 1)); ((TSecureShell *)frontend)->FromBackend((is_stderr == 1), reinterpret_cast(data), datalen); } else { - assert(is_stderr == -1); + DebugAssert(is_stderr == -1); ((TSecureShell *)frontend)->CWrite(data, datalen); } return 0; @@ -131,32 +133,56 @@ int from_backend_eof(void * /*frontend*/) //--------------------------------------------------------------------------- int get_userpass_input(prompts_t * p, unsigned char * /*in*/, int /*inlen*/) { - assert(p != NULL); + DebugAssert(p != NULL); TSecureShell * SecureShell = reinterpret_cast(p->frontend); - assert(SecureShell != NULL); + DebugAssert(SecureShell != NULL); int Result; TStrings * Prompts = new TStringList(); TStrings * Results = new TStringList(); try { + UnicodeString Name = UTF8ToString(p->name); + UnicodeString AName = Name; + TPromptKind PromptKind = SecureShell->IdentifyPromptKind(AName); + bool UTF8Prompt = (PromptKind != pkPassphrase); + for (int Index = 0; Index < int(p->n_prompts); Index++) { prompt_t * Prompt = p->prompts[Index]; - Prompts->AddObject(Prompt->prompt, (TObject *)(FLAGMASK(Prompt->echo, pupEcho))); + UnicodeString S; + if (UTF8Prompt) + { + S = UTF8ToString(Prompt->prompt); + } + else + { + S = UnicodeString(AnsiString(Prompt->prompt)); + } + Prompts->AddObject(S, (TObject *)(FLAGMASK(Prompt->echo, pupEcho))); // this fails, when new passwords do not match on change password prompt, // and putty retries the prompt - assert(Prompt->resultsize == 0); + DebugAssert(Prompt->resultsize == 0); Results->Add(L""); } - if (SecureShell->PromptUser(p->to_server, p->name, p->name_reqd, - p->instruction, p->instr_reqd, Prompts, Results)) + UnicodeString Instructions = UTF8ToString(p->instruction); + if (SecureShell->PromptUser(p->to_server, Name, p->name_reqd, + Instructions, p->instr_reqd, Prompts, Results)) { for (int Index = 0; Index < int(p->n_prompts); Index++) { prompt_t * Prompt = p->prompts[Index]; - prompt_set_result(Prompt, AnsiString(Results->Strings[Index]).c_str()); + RawByteString S; + if (UTF8Prompt) + { + S = RawByteString(UTF8String(Results->Strings[Index])); + } + else + { + S = RawByteString(AnsiString(Results->Strings[Index])); + } + prompt_set_result(Prompt, S.c_str()); } Result = 1; } @@ -177,7 +203,7 @@ int get_userpass_input(prompts_t * p, unsigned char * /*in*/, int /*inlen*/) char * get_ttymode(void * /*frontend*/, const char * /*mode*/) { // should never happen when Config.nopty == TRUE - FAIL; + DebugFail(); return NULL; } //--------------------------------------------------------------------------- @@ -199,7 +225,7 @@ void connection_fatal(void * frontend, char * fmt, ...) Buf[LENOF(Buf) - 1] = '\0'; \ va_end(Param); - assert(frontend != NULL); + DebugAssert(frontend != NULL); ((TSecureShell *)frontend)->PuttyFatalError(Buf); } //--------------------------------------------------------------------------- @@ -207,7 +233,7 @@ int verify_ssh_host_key(void * frontend, char * host, int port, char * keytype, char * keystr, char * fingerprint, void (*/*callback*/)(void * ctx, int result), void * /*ctx*/) { - assert(frontend != NULL); + DebugAssert(frontend != NULL); ((TSecureShell *)frontend)->VerifyHostKey(host, port, keytype, keystr, fingerprint); // We should return 0 when key was not confirmed, we throw exception instead. @@ -217,7 +243,7 @@ int verify_ssh_host_key(void * frontend, char * host, int port, char * keytype, int askalg(void * frontend, const char * algtype, const char * algname, void (*/*callback*/)(void * ctx, int result), void * /*ctx*/) { - assert(frontend != NULL); + DebugAssert(frontend != NULL); ((TSecureShell *)frontend)->AskAlg(algtype, algname); // We should return 0 when alg was not confirmed, we throw exception instead. @@ -231,8 +257,8 @@ void old_keyfile_warning(void) //--------------------------------------------------------------------------- void display_banner(void * frontend, const char * banner, int size) { - assert(frontend); - UnicodeString Banner(banner, size); + DebugAssert(frontend); + UnicodeString Banner(UTF8String(banner, size)); ((TSecureShell *)frontend)->DisplayBanner(Banner); } //--------------------------------------------------------------------------- @@ -281,7 +307,7 @@ int askappend(void * /*frontend*/, Filename * /*filename*/, void (*/*callback*/)(void * ctx, int result), void * /*ctx*/) { // this is called from logging.c of putty, which is never used with WinSCP - FAIL; + DebugFail(); return 0; } //--------------------------------------------------------------------------- @@ -291,14 +317,14 @@ void ldisc_send(void * /*handle*/, char * /*buf*/, int len, int /*interactive*/) // 0) in ssh.c. Nothing in PSCP actually needs to use the ldisc // as an ldisc. So if we get called with any real data, I want // to know about it. - assert(len == 0); - USEDPARAM(len); + DebugAssert(len == 0); + DebugUsedParam(len); } //--------------------------------------------------------------------------- void agent_schedule_callback(void (* /*callback*/)(void *, void *, int), void * /*callback_ctx*/, void * /*data*/, int /*len*/) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void notify_remote_exit(void * /*frontend*/) @@ -365,18 +391,18 @@ char * get_remote_username(Conf * conf) static long OpenWinSCPKey(HKEY Key, const char * SubKey, HKEY * Result, bool CanCreate) { long R; - assert(Configuration != NULL); + DebugAssert(Configuration != NULL); - assert(Key == HKEY_CURRENT_USER); - USEDPARAM(Key); + DebugAssert(Key == HKEY_CURRENT_USER); + DebugUsedParam(Key); UnicodeString RegKey = SubKey; int PuttyKeyLen = OriginalPuttyRegistryStorageKey.Length(); - assert(RegKey.SubString(1, PuttyKeyLen) == OriginalPuttyRegistryStorageKey); + DebugAssert(RegKey.SubString(1, PuttyKeyLen) == OriginalPuttyRegistryStorageKey); RegKey = RegKey.SubString(PuttyKeyLen + 1, RegKey.Length() - PuttyKeyLen); if (!RegKey.IsEmpty()) { - assert(RegKey[1] == L'\\'); + DebugAssert(RegKey[1] == L'\\'); RegKey.Delete(1, 1); } @@ -388,7 +414,7 @@ static long OpenWinSCPKey(HKEY Key, const char * SubKey, HKEY * Result, bool Can else { // we expect this to be called only from verify_host_key() or store_host_key() - assert(RegKey == L"SshHostKeys"); + DebugAssert(RegKey == L"SshHostKeys"); THierarchicalStorage * Storage = Configuration->CreateConfigStorage(); Storage->AccessMode = (CanCreate ? smReadWrite : smRead); @@ -421,7 +447,7 @@ long reg_query_winscp_value_ex(HKEY Key, const char * ValueName, unsigned long * unsigned long * Type, unsigned char * Data, unsigned long * DataSize) { long R; - assert(Configuration != NULL); + DebugAssert(Configuration != NULL); THierarchicalStorage * Storage = reinterpret_cast(Key); AnsiString Value; @@ -429,12 +455,12 @@ long reg_query_winscp_value_ex(HKEY Key, const char * ValueName, unsigned long * { if (UnicodeString(ValueName) == L"RandSeedFile") { - Value = Configuration->RandomSeedFileName; + Value = AnsiString(Configuration->RandomSeedFileName); R = ERROR_SUCCESS; } else { - FAIL; + DebugFail(); R = ERROR_READ_FAULT; } } @@ -442,7 +468,7 @@ long reg_query_winscp_value_ex(HKEY Key, const char * ValueName, unsigned long * { if (Storage->ValueExists(ValueName)) { - Value = Storage->ReadStringRaw(ValueName, L""); + Value = AnsiString(Storage->ReadStringRaw(ValueName, L"")); R = ERROR_SUCCESS; } else @@ -453,7 +479,7 @@ long reg_query_winscp_value_ex(HKEY Key, const char * ValueName, unsigned long * if (R == ERROR_SUCCESS) { - assert(Type != NULL); + DebugAssert(Type != NULL); *Type = REG_SZ; char * DataStr = reinterpret_cast(Data); strncpy(DataStr, Value.c_str(), *DataSize); @@ -467,12 +493,12 @@ long reg_query_winscp_value_ex(HKEY Key, const char * ValueName, unsigned long * long reg_set_winscp_value_ex(HKEY Key, const char * ValueName, unsigned long /*Reserved*/, unsigned long Type, const unsigned char * Data, unsigned long DataSize) { - assert(Configuration != NULL); + DebugAssert(Configuration != NULL); - assert(Type == REG_SZ); - USEDPARAM(Type); + DebugAssert(Type == REG_SZ); + DebugUsedParam(Type); THierarchicalStorage * Storage = reinterpret_cast(Key); - assert(Storage != NULL); + DebugAssert(Storage != NULL); if (Storage != NULL) { UnicodeString Value(reinterpret_cast(Data), DataSize - 1); @@ -484,7 +510,7 @@ long reg_set_winscp_value_ex(HKEY Key, const char * ValueName, unsigned long /*R //--------------------------------------------------------------------------- long reg_close_winscp_key(HKEY Key) { - assert(Configuration != NULL); + DebugAssert(Configuration != NULL); THierarchicalStorage * Storage = reinterpret_cast(Key); if (Storage != NULL) @@ -497,8 +523,8 @@ long reg_close_winscp_key(HKEY Key) //--------------------------------------------------------------------------- TKeyType KeyType(UnicodeString FileName) { - assert(ktUnopenable == SSH_KEYTYPE_UNOPENABLE); - assert(ktSSHCom == SSH_KEYTYPE_SSHCOM); + DebugAssert(ktUnopenable == SSH_KEYTYPE_UNOPENABLE); + DebugAssert(ktSSHCom == SSH_KEYTYPE_SSHCOM); UTF8String UtfFileName = UTF8String(FileName); Filename * KeyFile = filename_from_str(UtfFileName.c_str()); TKeyType Result = (TKeyType)key_type(KeyFile); @@ -506,6 +532,125 @@ TKeyType KeyType(UnicodeString FileName) return Result; } //--------------------------------------------------------------------------- +bool IsKeyEncrypted(TKeyType KeyType, const UnicodeString & FileName, UnicodeString & Comment) +{ + UTF8String UtfFileName = UTF8String(FileName); + Filename * KeyFile = filename_from_str(UtfFileName.c_str()); + bool Result; + char * CommentStr = NULL; + switch (KeyType) + { + case ktSSH2: + Result = (ssh2_userkey_encrypted(KeyFile, &CommentStr) != 0); + break; + + case ktOpenSSH: + case ktSSHCom: + Result = (import_encrypted(KeyFile, KeyType, &CommentStr) != NULL); + break; + + default: + DebugFail(); + Result = false; + break; + } + + if (CommentStr != NULL) + { + Comment = UnicodeString(AnsiString(CommentStr)); + // ktOpenSSH has no comment, PuTTY defaults to file path + if (Comment == FileName) + { + Comment = ExtractFileName(FileName); + } + sfree(CommentStr); + } + + return Result; +} +//--------------------------------------------------------------------------- +TPrivateKey * LoadKey(TKeyType KeyType, const UnicodeString & FileName, const UnicodeString & Passphrase) +{ + UTF8String UtfFileName = UTF8String(FileName); + Filename * KeyFile = filename_from_str(UtfFileName.c_str()); + AnsiString AnsiPassphrase = Passphrase; + struct ssh2_userkey * Ssh2Key = NULL; + const char * ErrorStr = NULL; + + switch (KeyType) + { + case ktSSH2: + Ssh2Key = ssh2_load_userkey(KeyFile, AnsiPassphrase.c_str(), &ErrorStr); + break; + + case ktOpenSSH: + case ktSSHCom: + Ssh2Key = import_ssh2(KeyFile, KeyType, AnsiPassphrase.c_str(), &ErrorStr); + break; + + default: + DebugFail(); + break; + } + + Shred(AnsiPassphrase); + + if (Ssh2Key == NULL) + { + UnicodeString Error = AnsiString(ErrorStr); + // While theoretically we may get "unable to open key file" and + // so we should check system error code, + // we actully never get here unless we call KeyType previously + // and handle ktUnopenable accordingly. + throw Exception(Error); + } + else if (Ssh2Key == SSH2_WRONG_PASSPHRASE) + { + throw Exception(LoadStr(AUTH_TRANSL_WRONG_PASSPHRASE)); + } + + return reinterpret_cast(Ssh2Key); +} +//--------------------------------------------------------------------------- +void ChangeKeyComment(TPrivateKey * PrivateKey, const UnicodeString & Comment) +{ + AnsiString AnsiComment(Comment); + struct ssh2_userkey * Ssh2Key = reinterpret_cast(PrivateKey); + sfree(Ssh2Key->comment); + Ssh2Key->comment = dupstr(AnsiComment.c_str()); +} +//--------------------------------------------------------------------------- +void SaveKey(TKeyType KeyType, const UnicodeString & FileName, + const UnicodeString & Passphrase, TPrivateKey * PrivateKey) +{ + UTF8String UtfFileName = UTF8String(FileName); + Filename * KeyFile = filename_from_str(UtfFileName.c_str()); + struct ssh2_userkey * Ssh2Key = reinterpret_cast(PrivateKey); + AnsiString AnsiPassphrase = Passphrase; + char * PassphrasePtr = (AnsiPassphrase.IsEmpty() ? NULL : AnsiPassphrase.c_str()); + switch (KeyType) + { + case ktSSH2: + if (!ssh2_save_userkey(KeyFile, Ssh2Key, PassphrasePtr)) + { + int Error = errno; + throw EOSExtException(FMTLOAD(KEY_SAVE_ERROR, (FileName)), Error); + } + break; + + default: + DebugFail(); + break; + } +} +//--------------------------------------------------------------------------- +void FreeKey(TPrivateKey * PrivateKey) +{ + struct ssh2_userkey * Ssh2Key = reinterpret_cast(PrivateKey); + Ssh2Key->alg->freekey(Ssh2Key->data); + sfree(Ssh2Key); +} +//--------------------------------------------------------------------------- UnicodeString KeyTypeName(TKeyType KeyType) { return key_type_to_str(KeyType); @@ -513,7 +658,7 @@ UnicodeString KeyTypeName(TKeyType KeyType) //--------------------------------------------------------------------------- __int64 __fastcall ParseSize(UnicodeString SizeStr) { - AnsiString AnsiSizeStr = SizeStr; + AnsiString AnsiSizeStr = AnsiString(SizeStr); return parse_blocksize64(AnsiSizeStr.c_str()); } //--------------------------------------------------------------------------- @@ -576,7 +721,7 @@ UnicodeString __fastcall NormalizeFingerprint(UnicodeString Fingerprint) { Fingerprint[LenStart - 1] = L'-'; int Space = Fingerprint.Pos(L" "); - assert(IsNumber(Fingerprint.SubString(LenStart, Space - LenStart))); + DebugAssert(IsNumber(Fingerprint.SubString(LenStart, Space - LenStart))); Fingerprint.Delete(LenStart, Space - LenStart + 1); Fingerprint = ReplaceChar(Fingerprint, L':', L'-'); } @@ -598,3 +743,22 @@ UnicodeString __fastcall KeyTypeFromFingerprint(UnicodeString Fingerprint) return Type; } //--------------------------------------------------------------------------- +UnicodeString __fastcall GetPuTTYVersion() +{ + // "Release 0.64" + // "Pre-release 0.65:2015-07-20.95501a1" + UnicodeString Result = get_putty_version(); + // Skip "Release" (or "Pre-release") + CutToChar(Result, L' ', true); + return Result; +} +//--------------------------------------------------------------------------- +UnicodeString __fastcall Sha256(const char * Data, size_t Size) +{ + unsigned char Digest[32]; + SHA256_Simple(Data, Size, Digest); + UnicodeString Result(BytesToHex(Digest, LENOF(Digest))); + return Result; +} +//--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- diff --git a/source/core/PuttyIntf.h b/source/core/PuttyIntf.h index 5bb421f6..018d9550 100644 --- a/source/core/PuttyIntf.h +++ b/source/core/PuttyIntf.h @@ -17,6 +17,9 @@ extern "C" #include #include #include +// Defined in misc.h - Conflicts with std::min/max +#undef min +#undef max } //--------------------------------------------------------------------------- #endif diff --git a/source/core/PuttyTools.h b/source/core/PuttyTools.h index 0a63f123..25d51142 100644 --- a/source/core/PuttyTools.h +++ b/source/core/PuttyTools.h @@ -5,6 +5,13 @@ enum TKeyType { ktUnopenable, ktUnknown, ktSSH1, ktSSH2, ktOpenSSH, ktSSHCom }; TKeyType KeyType(UnicodeString FileName); UnicodeString KeyTypeName(TKeyType KeyType); +bool IsKeyEncrypted(TKeyType KeyType, const UnicodeString & FileName, UnicodeString & Comment); +struct TPrivateKey; +TPrivateKey * LoadKey(TKeyType KeyType, const UnicodeString & FileName, const UnicodeString & Passphrase); +void ChangeKeyComment(TPrivateKey * PrivateKey, const UnicodeString & Comment); +void SaveKey(TKeyType KeyType, const UnicodeString & FileName, + const UnicodeString & Passphrase, TPrivateKey * PrivateKey); +void FreeKey(TPrivateKey * PrivateKey); //--------------------------------------------------------------------------- __int64 __fastcall ParseSize(UnicodeString SizeStr); //--------------------------------------------------------------------------- @@ -16,4 +23,8 @@ void __fastcall AES256EncodeWithMAC(char * Data, size_t Len, const char * Passwo UnicodeString __fastcall NormalizeFingerprint(UnicodeString Fingerprint); UnicodeString __fastcall KeyTypeFromFingerprint(UnicodeString Fingerprint); //--------------------------------------------------------------------------- +UnicodeString __fastcall GetPuTTYVersion(); +//--------------------------------------------------------------------------- +UnicodeString __fastcall Sha256(const char * Data, size_t Size); +//--------------------------------------------------------------------------- #endif diff --git a/source/core/Queue.cpp b/source/core/Queue.cpp index fefb410c..ed387357 100644 --- a/source/core/Queue.cpp +++ b/source/core/Queue.cpp @@ -265,7 +265,7 @@ friend class TBackgroundTerminal; int __fastcall TSimpleThread::ThreadProc(void * Thread) { TSimpleThread * SimpleThread = reinterpret_cast(Thread); - assert(SimpleThread != NULL); + DebugAssert(SimpleThread != NULL); try { SimpleThread->Execute(); @@ -273,7 +273,7 @@ int __fastcall TSimpleThread::ThreadProc(void * Thread) catch(...) { // we do not expect thread to be terminated with exception - FAIL; + DebugFail(); } SimpleThread->FFinished = true; SimpleThread->Finished(); @@ -335,7 +335,7 @@ __fastcall TSignalThread::TSignalThread(bool LowPriority) : FTerminated(true), FEvent(NULL) { FEvent = CreateEvent(NULL, false, false, NULL); - assert(FEvent != NULL); + DebugAssert(FEvent != NULL); if (LowPriority) { @@ -423,7 +423,7 @@ __fastcall TTerminalQueue::TTerminalQueue(TTerminal * Terminal, FLastIdle = Now(); FIdleInterval = EncodeTimeVerbose(0, 0, 2, 0); - assert(Terminal != NULL); + DebugAssert(Terminal != NULL); FSessionData = new TSessionData(L""); FSessionData->Assign(Terminal->SessionData); @@ -481,7 +481,7 @@ void __fastcall TTerminalQueue::TerminalFinished(TTerminalItem * TerminalItem) TGuard Guard(FItemsSection); int Index = FTerminals->IndexOf(TerminalItem); - assert(Index >= 0); + DebugAssert(Index >= 0); if (Index < FFreeTerminals) { @@ -515,8 +515,8 @@ bool __fastcall TTerminalQueue::TerminalFree(TTerminalItem * TerminalItem) TGuard Guard(FItemsSection); int Index = FTerminals->IndexOf(TerminalItem); - assert(Index >= 0); - assert(Index >= FFreeTerminals); + DebugAssert(Index >= 0); + DebugAssert(Index >= FFreeTerminals); Result = (FTransfersLimit < 0) || (Index < FTransfersLimit); if (Result) @@ -534,7 +534,7 @@ bool __fastcall TTerminalQueue::TerminalFree(TTerminalItem * TerminalItem) //--------------------------------------------------------------------------- void __fastcall TTerminalQueue::AddItem(TQueueItem * Item) { - assert(!FTerminated); + DebugAssert(!FTerminated); Item->SetStatus(TQueueItem::qsPending); @@ -558,8 +558,8 @@ void __fastcall TTerminalQueue::RetryItem(TQueueItem * Item) TGuard Guard(FItemsSection); int Index = FItems->Remove(Item); - assert(Index < FItemsInProcess); - USEDPARAM(Index); + DebugAssert(Index < FItemsInProcess); + DebugUsedParam(Index); FItemsInProcess--; FItems->Add(Item); } @@ -583,15 +583,15 @@ void __fastcall TTerminalQueue::DeleteItem(TQueueItem * Item, bool CanKeep) // does this need to be within guard? Monitored = (Item->CompleteEvent != INVALID_HANDLE_VALUE); int Index = FItems->Remove(Item); - assert(Index < FItemsInProcess); - USEDPARAM(Index); + DebugAssert(Index < FItemsInProcess); + DebugUsedParam(Index); FItemsInProcess--; FForcedItems->Remove(Item); // =0 do not keep // <0 infinity if ((FKeepDoneItemsFor != 0) && CanKeep) { - assert(Item->Status == TQueueItem::qsDone); + DebugAssert(Item->Status == TQueueItem::qsDone); Item->Complete(); FDoneItems->Add(Item); } @@ -1199,7 +1199,7 @@ __fastcall TTerminalItem::~TTerminalItem() { Close(); - assert(FItem == NULL); + DebugAssert(FItem == NULL); delete FTerminal; delete FCriticalSection; } @@ -1209,7 +1209,7 @@ void __fastcall TTerminalItem::Process(TQueueItem * Item) { TGuard Guard(FCriticalSection); - assert(FItem == NULL); + DebugAssert(FItem == NULL); FItem = Item; } @@ -1228,7 +1228,7 @@ void __fastcall TTerminalItem::ProcessEvent() try { - assert(FItem != NULL); + DebugAssert(FItem != NULL); if (!FTerminal->Active) { @@ -1242,6 +1242,8 @@ void __fastcall TTerminalItem::ProcessEvent() if (!FCancel) { + FTerminal->UpdateFromMain(); + FItem->SetStatus(TQueueItem::qsProcessing); FItem->Execute(this); @@ -1289,7 +1291,7 @@ void __fastcall TTerminalItem::Idle() { TGuard Guard(FCriticalSection); - assert(FTerminal->Active); + DebugAssert(FTerminal->Active); try { @@ -1318,7 +1320,7 @@ void __fastcall TTerminalItem::Cancel() //--------------------------------------------------------------------------- bool __fastcall TTerminalItem::Pause() { - assert(FItem != NULL); + DebugAssert(FItem != NULL); bool Result = (FItem->GetStatus() == TQueueItem::qsProcessing) && !FPause; if (Result) { @@ -1329,7 +1331,7 @@ bool __fastcall TTerminalItem::Pause() //--------------------------------------------------------------------------- bool __fastcall TTerminalItem::Resume() { - assert(FItem != NULL); + DebugAssert(FItem != NULL); bool Result = (FItem->GetStatus() == TQueueItem::qsPaused); if (Result) { @@ -1348,7 +1350,7 @@ bool __fastcall TTerminalItem::ProcessUserAction(void * Arg) bool Result = (FUserAction != NULL); if (Result) { - assert(FItem != NULL); + DebugAssert(FItem != NULL); FUserAction->Execute(Arg); FUserAction = NULL; @@ -1361,8 +1363,8 @@ bool __fastcall TTerminalItem::ProcessUserAction(void * Arg) bool __fastcall TTerminalItem::WaitForUserAction( TQueueItem::TStatus ItemStatus, TUserAction * UserAction) { - assert(FItem != NULL); - assert((FItem->GetStatus() == TQueueItem::qsProcessing) || + DebugAssert(FItem != NULL); + DebugAssert((FItem->GetStatus() == TQueueItem::qsProcessing) || (FItem->GetStatus() == TQueueItem::qsConnecting)); bool Result; @@ -1402,8 +1404,8 @@ void __fastcall TTerminalItem::TerminalQueryUser(TObject * Sender, // on re-key with non-cached host key. make it fail. if (FItem != NULL) { - USEDPARAM(Arg); - assert(Arg == NULL); + DebugUsedParam(Arg); + DebugAssert(Arg == NULL); TQueryUserAction Action(FQueue->OnQueryUser); Action.Sender = Sender; @@ -1434,13 +1436,13 @@ void __fastcall TTerminalItem::TerminalPromptUser(TTerminal * Terminal, if (FItem == NULL) { // sanity, should not occur - FAIL; + DebugFail(); Result = false; } else { - USEDPARAM(Arg); - assert(Arg == NULL); + DebugUsedParam(Arg); + DebugAssert(Arg == NULL); TPromptUserAction Action(FQueue->OnPromptUser); Action.Terminal = Terminal; @@ -1462,8 +1464,8 @@ void __fastcall TTerminalItem::TerminalPromptUser(TTerminal * Terminal, void __fastcall TTerminalItem::TerminalShowExtendedException( TTerminal * Terminal, Exception * E, void * Arg) { - USEDPARAM(Arg); - assert(Arg == NULL); + DebugUsedParam(Arg); + DebugAssert(Arg == NULL); if ((FItem != NULL) && ShouldDisplayException(E)) @@ -1488,9 +1490,9 @@ void __fastcall TTerminalItem::OperationProgress( { if (FPause && !FTerminated && !FCancel) { - assert(FItem != NULL); + DebugAssert(FItem != NULL); TQueueItem::TStatus PrevStatus = FItem->GetStatus(); - assert(PrevStatus == TQueueItem::qsProcessing); + DebugAssert(PrevStatus == TQueueItem::qsProcessing); // must be set before TFileOperationProgressType::Suspend(), because // it invokes this method back FPause = false; @@ -1521,13 +1523,13 @@ void __fastcall TTerminalItem::OperationProgress( } } - assert(FItem != NULL); + DebugAssert(FItem != NULL); FItem->SetProgress(ProgressData); } //--------------------------------------------------------------------------- bool __fastcall TTerminalItem::OverrideItemStatus(TQueueItem::TStatus & ItemStatus) { - assert(FTerminal != NULL); + DebugAssert(FTerminal != NULL); bool Result = (FTerminal->Status < ssOpened) && (ItemStatus == TQueueItem::qsProcessing); if (Result) { @@ -1594,7 +1596,7 @@ void __fastcall TQueueItem::SetStatus(TStatus Status) } } - assert((FQueue != NULL) || (Status == qsPending)); + DebugAssert((FQueue != NULL) || (Status == qsPending)); if (FQueue != NULL) { FQueue->DoQueueItemUpdate(this); @@ -1615,7 +1617,7 @@ void __fastcall TQueueItem::SetProgress( FCPSLimit = -1; } - assert(FProgressData != NULL); + DebugAssert(FProgressData != NULL); *FProgressData = ProgressData; FProgressData->Reset(); } @@ -1626,7 +1628,7 @@ void __fastcall TQueueItem::GetData(TQueueItemProxy * Proxy) { TGuard Guard(FSection); - assert(Proxy->FProgressData != NULL); + DebugAssert(Proxy->FProgressData != NULL); if (FProgressData != NULL) { *Proxy->FProgressData = *FProgressData; @@ -1646,7 +1648,7 @@ void __fastcall TQueueItem::GetData(TQueueItemProxy * Proxy) void __fastcall TQueueItem::Execute(TTerminalItem * TerminalItem) { { - assert(FProgressData == NULL); + DebugAssert(FProgressData == NULL); TGuard Guard(FSection); FProgressData = new TFileOperationProgressType(); } @@ -1717,7 +1719,7 @@ __int64 __fastcall TQueueItemProxy::GetTotalTransferred() //--------------------------------------------------------------------------- bool __fastcall TQueueItemProxy::Update() { - assert(FQueueItem != NULL); + DebugAssert(FQueueItem != NULL); TQueueItem::TStatus PrevStatus = Status; @@ -1779,7 +1781,7 @@ bool __fastcall TQueueItemProxy::Resume() //--------------------------------------------------------------------------- bool __fastcall TQueueItemProxy::ProcessUserAction() { - assert(FQueueItem != NULL); + DebugAssert(FQueueItem != NULL); bool Result; FProcessingUserAction = true; @@ -1806,9 +1808,9 @@ bool __fastcall TQueueItemProxy::SetCPSLimit(unsigned long CPSLimit) //--------------------------------------------------------------------------- int __fastcall TQueueItemProxy::GetIndex() { - assert(FQueueStatus != NULL); + DebugAssert(FQueueStatus != NULL); int Index = FQueueStatus->FList->IndexOf(this); - assert(Index >= 0); + DebugAssert(Index >= 0); return Index; } //--------------------------------------------------------------------------- @@ -1914,7 +1916,7 @@ TQueueItemProxy * __fastcall TTerminalQueueStatus::FindByQueueItem( __fastcall TLocatedQueueItem::TLocatedQueueItem(TTerminal * Terminal) : TQueueItem() { - assert(Terminal != NULL); + DebugAssert(Terminal != NULL); FCurrentDir = Terminal->CurrentDirectory; } //--------------------------------------------------------------------------- @@ -1925,7 +1927,7 @@ UnicodeString __fastcall TLocatedQueueItem::StartupDirectory() //--------------------------------------------------------------------------- void __fastcall TLocatedQueueItem::DoExecute(TTerminal * Terminal) { - assert(Terminal != NULL); + DebugAssert(Terminal != NULL); Terminal->CurrentDirectory = FCurrentDir; } //--------------------------------------------------------------------------- @@ -1941,7 +1943,7 @@ __fastcall TTransferQueueItem::TTransferQueueItem(TTerminal * Terminal, FInfo->Side = Side; FInfo->SingleFile = SingleFile; - assert(FilesToCopy != NULL); + DebugAssert(FilesToCopy != NULL); FFilesToCopy = new TStringList(); for (int Index = 0; Index < FilesToCopy->Count; Index++) { @@ -1952,7 +1954,7 @@ __fastcall TTransferQueueItem::TTransferQueueItem(TTerminal * Terminal, FTargetDir = TargetDir; - assert(CopyParam != NULL); + DebugAssert(CopyParam != NULL); FCopyParam = new TCopyParamType(*CopyParam); FParams = Params; @@ -2005,7 +2007,7 @@ __fastcall TUploadQueueItem::TUploadQueueItem(TTerminal * Terminal, } else { - assert(FilesToCopy->Count > 0); + DebugAssert(FilesToCopy->Count > 0); FInfo->Source = FilesToCopy->Strings[0]; FInfo->ModifiedLocal = FLAGCLEAR(Params, cpDelete) ? UnicodeString() : IncludeTrailingBackslash(ExtractFilePath(FInfo->Source)); @@ -2021,7 +2023,7 @@ void __fastcall TUploadQueueItem::DoExecute(TTerminal * Terminal) { TTransferQueueItem::DoExecute(Terminal); - assert(Terminal != NULL); + DebugAssert(Terminal != NULL); Terminal->CopyToRemote(FFilesToCopy, FTargetDir, FCopyParam, FParams); } //--------------------------------------------------------------------------- @@ -2044,7 +2046,7 @@ __fastcall TDownloadQueueItem::TDownloadQueueItem(TTerminal * Terminal, } else { - assert(FilesToCopy->Count > 0); + DebugAssert(FilesToCopy->Count > 0); FInfo->Source = FilesToCopy->Strings[0]; if (UnixExtractFilePath(FInfo->Source).IsEmpty()) { @@ -2076,7 +2078,7 @@ void __fastcall TDownloadQueueItem::DoExecute(TTerminal * Terminal) { TTransferQueueItem::DoExecute(Terminal); - assert(Terminal != NULL); + DebugAssert(Terminal != NULL); Terminal->CopyToLocal(FFilesToCopy, FTargetDir, FCopyParam, FParams); } //--------------------------------------------------------------------------- @@ -2126,16 +2128,16 @@ __fastcall TTerminalThread::~TTerminalThread() CloseHandle(FActionEvent); - assert(FTerminal->OnInformation == TerminalInformation); - assert(FTerminal->OnQueryUser == TerminalQueryUser); - assert(FTerminal->OnPromptUser == TerminalPromptUser); - assert(FTerminal->OnShowExtendedException == TerminalShowExtendedException); - assert(FTerminal->OnDisplayBanner == TerminalDisplayBanner); - assert(FTerminal->OnChangeDirectory == TerminalChangeDirectory); - assert(FTerminal->OnReadDirectory == TerminalReadDirectory); - assert(FTerminal->OnStartReadDirectory == TerminalStartReadDirectory); - assert(FTerminal->OnReadDirectoryProgress == TerminalReadDirectoryProgress); - assert(FTerminal->OnInitializeLog == TerminalInitializeLog); + DebugAssert(FTerminal->OnInformation == TerminalInformation); + DebugAssert(FTerminal->OnQueryUser == TerminalQueryUser); + DebugAssert(FTerminal->OnPromptUser == TerminalPromptUser); + DebugAssert(FTerminal->OnShowExtendedException == TerminalShowExtendedException); + DebugAssert(FTerminal->OnDisplayBanner == TerminalDisplayBanner); + DebugAssert(FTerminal->OnChangeDirectory == TerminalChangeDirectory); + DebugAssert(FTerminal->OnReadDirectory == TerminalReadDirectory); + DebugAssert(FTerminal->OnStartReadDirectory == TerminalStartReadDirectory); + DebugAssert(FTerminal->OnReadDirectoryProgress == TerminalReadDirectoryProgress); + DebugAssert(FTerminal->OnInitializeLog == TerminalInitializeLog); FTerminal->OnInformation = FOnInformation; FTerminal->OnQueryUser = FOnQueryUser; @@ -2182,10 +2184,10 @@ void __fastcall TTerminalThread::TerminalReopen() //--------------------------------------------------------------------------- void __fastcall TTerminalThread::RunAction(TNotifyEvent Action) { - assert(FAction == NULL); - assert(FException == NULL); - assert(FIdleException == NULL); - assert(FOnIdle != NULL); + DebugAssert(FAction == NULL); + DebugAssert(FException == NULL); + DebugAssert(FIdleException == NULL); + DebugAssert(FOnIdle != NULL); FCancelled = false; FAction = Action; @@ -2272,8 +2274,8 @@ void __fastcall TTerminalThread::TerminalReopenEvent(TObject * /*Sender*/) //--------------------------------------------------------------------------- void __fastcall TTerminalThread::ProcessEvent() { - assert(FEvent != NULL); - assert(FException == NULL); + DebugAssert(FEvent != NULL); + DebugAssert(FException == NULL); try { @@ -2304,7 +2306,7 @@ void __fastcall TTerminalThread::Rethrow(Exception *& Exception) //--------------------------------------------------------------------------- void __fastcall TTerminalThread::SaveException(Exception & E, Exception *& Exception) { - assert(Exception == NULL); + DebugAssert(Exception == NULL); Exception = CloneException(&E); } @@ -2339,10 +2341,10 @@ void __fastcall TTerminalThread::WaitForUserAction(TUserAction * UserAction) { // we should be called from our thread only, // with exception noted above - assert(Thread == FThreadId); + DebugAssert(Thread == FThreadId); bool DoCheckCancel = - ALWAYS_FALSE(UserAction == NULL) || !UserAction->Force(); + DebugAlwaysFalse(UserAction == NULL) || !UserAction->Force(); if (DoCheckCancel) { CheckCancel(); @@ -2435,8 +2437,8 @@ void __fastcall TTerminalThread::TerminalQueryUser(TObject * Sender, const UnicodeString Query, TStrings * MoreMessages, unsigned int Answers, const TQueryParams * Params, unsigned int & Answer, TQueryType Type, void * Arg) { - USEDPARAM(Arg); - assert(Arg == NULL); + DebugUsedParam(Arg); + DebugAssert(Arg == NULL); // note about TQueryParams::TimerEvent // So far there is only one use for this, the TSecureShell::SendBuffer, @@ -2466,7 +2468,7 @@ void __fastcall TTerminalThread::TerminalInitializeLog(TObject * Sender) if (FOnInitializeLog != NULL) { // never used, so not tested either - FAIL; + DebugFail(); TNotifyAction Action(FOnInitializeLog); Action.Sender = Sender; @@ -2478,8 +2480,8 @@ void __fastcall TTerminalThread::TerminalPromptUser(TTerminal * Terminal, TPromptKind Kind, UnicodeString Name, UnicodeString Instructions, TStrings * Prompts, TStrings * Results, bool & Result, void * Arg) { - USEDPARAM(Arg); - assert(Arg == NULL); + DebugUsedParam(Arg); + DebugAssert(Arg == NULL); TPromptUserAction Action(FOnPromptUser); Action.Terminal = Terminal; @@ -2499,8 +2501,8 @@ void __fastcall TTerminalThread::TerminalPromptUser(TTerminal * Terminal, void __fastcall TTerminalThread::TerminalShowExtendedException( TTerminal * Terminal, Exception * E, void * Arg) { - USEDPARAM(Arg); - assert(Arg == NULL); + DebugUsedParam(Arg); + DebugAssert(Arg == NULL); TShowExtendedExceptionAction Action(FOnShowExtendedException); Action.Terminal = Terminal; diff --git a/source/core/RemoteFiles.cpp b/source/core/RemoteFiles.cpp index f51d0bd3..4a9994ab 100644 --- a/source/core/RemoteFiles.cpp +++ b/source/core/RemoteFiles.cpp @@ -94,7 +94,14 @@ UnicodeString __fastcall UnixExtractFilePath(const UnicodeString Path) { int Pos = Path.LastDelimiter(L'/'); // it used to return Path when no slash was found - return (Pos > 0) ? Path.SubString(1, Pos) : UnicodeString(); + if (Pos > 0) + { + return Path.SubString(1, Pos); + } + else + { + return UnicodeString(); + } } //--------------------------------------------------------------------------- UnicodeString __fastcall UnixExtractFileName(const UnicodeString Path) @@ -133,7 +140,7 @@ UnicodeString __fastcall ExtractFileName(const UnicodeString & Path, bool Unix) //--------------------------------------------------------------------------- bool __fastcall ExtractCommonPath(TStrings * Files, UnicodeString & Path) { - assert(Files->Count > 0); + DebugAssert(Files->Count > 0); Path = ExtractFilePath(Files->Strings[0]); bool Result = !Path.IsEmpty(); @@ -160,7 +167,7 @@ bool __fastcall ExtractCommonPath(TStrings * Files, UnicodeString & Path) //--------------------------------------------------------------------------- bool __fastcall UnixExtractCommonPath(TStrings * Files, UnicodeString & Path) { - assert(Files->Count > 0); + DebugAssert(Files->Count > 0); Path = UnixExtractFilePath(Files->Strings[0]); bool Result = !Path.IsEmpty(); @@ -192,7 +199,7 @@ bool __fastcall IsUnixRootPath(const UnicodeString Path) //--------------------------------------------------------------------------- bool __fastcall IsUnixHiddenFile(const UnicodeString FileName) { - return (FileName != ROOTDIRECTORY) && (FileName != PARENTDIRECTORY) && + return (FileName != THISDIRECTORY) && (FileName != PARENTDIRECTORY) && !FileName.IsEmpty() && (FileName[1] == L'.'); } //--------------------------------------------------------------------------- @@ -223,7 +230,7 @@ UnicodeString __fastcall AbsolutePath(const UnicodeString & Base, const UnicodeS else { int P2 = Result.SubString(1, P-1).LastDelimiter(L"/"); - assert(P2 > 0); + DebugAssert(P2 > 0); Result.Delete(P2, P - P2 + 3); } } @@ -348,21 +355,9 @@ UnicodeString __fastcall MakeFileList(TStrings * FileList) UnicodeString Result; for (int Index = 0; Index < FileList->Count; Index++) { - if (!Result.IsEmpty()) - { - Result += L" "; - } - UnicodeString FileName = FileList->Strings[Index]; // currently this is used for local file only, so no delimiting is done - if (FileName.Pos(L" ") > 0) - { - Result += L"\"" + FileName + L"\""; - } - else - { - Result += FileName; - } + AddToList(Result, AddQuotes(FileName), L" "); } return Result; } @@ -396,7 +391,7 @@ TDateTime __fastcall ReduceDateTimePrecision(TDateTime DateTime, break; default: - FAIL; + DebugFail(); } DateTime = EncodeDateVerbose(Y, M, D) + EncodeTimeVerbose(H, N, S, MS); @@ -446,7 +441,7 @@ UnicodeString __fastcall ModificationStr(TDateTime DateTime, (EngShortMonthNames[Month-1], Day, Hour, Min)); default: - FAIL; + DebugFail(); // fall thru case mfFull: @@ -477,7 +472,7 @@ int __fastcall FakeFileImageIndex(UnicodeString FileName, unsigned long Attrs, } int Icon; - if (SHGetFileInfo(UnicodeString(FileName).c_str(), + if (SHGetFileInfo(FileName.c_str(), Attrs, &SHFileInfo, sizeof(SHFileInfo), SHGFI_SYSICONINDEX | SHGFI_USEFILEATTRIBUTES | SHGFI_TYPENAME) != 0) { @@ -507,6 +502,26 @@ bool __fastcall SameUserName(const UnicodeString & UserName1, const UnicodeStrin return SameText(AUserName1, AUserName2); } //--------------------------------------------------------------------------- +UnicodeString __fastcall FormatMultiFilesToOneConfirmation(const UnicodeString & Target, bool Unix) +{ + UnicodeString Dir; + UnicodeString Name; + UnicodeString Path; + if (Unix) + { + Dir = UnixExtractFileDir(Target); + Name = UnixExtractFileName(Target); + Path = UnixIncludeTrailingBackslash(Target); + } + else + { + Dir = ExtractFilePath(Target); + Name = ExtractFileName(Target); + Path = IncludeTrailingBackslash(Target); + } + return FMTLOAD(MULTI_FILES_TO_ONE, (Name, Dir, Path)); +} +//--------------------------------------------------------------------------- //--------------------------------------------------------------------------- __fastcall TRemoteToken::TRemoteToken() : FID(0), @@ -923,7 +938,7 @@ Boolean __fastcall TRemoteFile::GetIsInaccesibleDirectory() const Boolean Result; if (IsDirectory) { - assert(Terminal); + DebugAssert(Terminal); Result = ! (SameUserName(Terminal->UserName, L"root") || ((Rights->RightUndef[TRights::rrOtherExec] != TRights::rsNo)) || @@ -965,7 +980,7 @@ void __fastcall TRemoteFile::SetLinkedFile(TRemoteFile * value) //--------------------------------------------------------------------------- bool __fastcall TRemoteFile::GetBrokenLink() { - assert(Terminal); + DebugAssert(Terminal); // If file is symlink but we couldn't find linked file we assume broken link return (IsSymLink && (FCyclicLink || !FLinkedFile) && Terminal->ResolvingSymlinks); @@ -981,9 +996,9 @@ void __fastcall TRemoteFile::ShiftTimeInSeconds(__int64 Seconds) { if ((Seconds != 0) && IsTimeShiftingApplicable()) { - assert(int(FModification) != 0); + DebugAssert(int(FModification) != 0); FModification = IncSecond(FModification, Seconds); - assert(int(FLastAccess) != 0); + DebugAssert(int(FLastAccess) != 0); FLastAccess = IncSecond(FLastAccess, Seconds); } } @@ -1089,7 +1104,7 @@ void __fastcall TRemoteFile::SetListingStr(UnicodeString value) { FGroup.Name = FGroup.Name + Col; GETCOL; - assert(!Col.IsEmpty()); + DebugAssert(!Col.IsEmpty()); // for devices etc.. there is additional column ending by comma, we ignore it if (Col[Col.Length()] == L',') GETCOL; ASize = StrToInt64Def(Col, -1); @@ -1237,7 +1252,7 @@ void __fastcall TRemoteFile::SetListingStr(UnicodeString value) // adjusting default "midnight" time makes no sense if ((FModificationFmt == mfMDHM) || (FModificationFmt == mfFull)) { - assert(Terminal != NULL); + DebugAssert(Terminal != NULL); FModification = AdjustDateTimeFromUnix(FModification, Terminal->SessionData->DSTMode); } @@ -1282,7 +1297,7 @@ void __fastcall TRemoteFile::SetListingStr(UnicodeString value) //--------------------------------------------------------------------------- void __fastcall TRemoteFile::Complete() { - assert(Terminal != NULL); + DebugAssert(Terminal != NULL); if (IsSymLink && Terminal->ResolvingSymlinks) { FindLinkedFile(); @@ -1291,7 +1306,7 @@ void __fastcall TRemoteFile::Complete() //--------------------------------------------------------------------------- void __fastcall TRemoteFile::FindLinkedFile() { - assert(Terminal && IsSymLink); + DebugAssert(Terminal && IsSymLink); if (FLinkedFile) delete FLinkedFile; FLinkedFile = NULL; @@ -1326,7 +1341,7 @@ void __fastcall TRemoteFile::FindLinkedFile() } else { - assert(Terminal->ResolvingSymlinks); + DebugAssert(Terminal->ResolvingSymlinks); Terminal->ExceptionOnFail = true; try { @@ -1370,8 +1385,8 @@ UnicodeString __fastcall TRemoteFile::GetFullFileName() const { if (FFullFileName.IsEmpty()) { - assert(Terminal); - assert(Directory != NULL); + DebugAssert(Terminal); + DebugAssert(Directory != NULL); UnicodeString Path; if (IsParentDirectory) Path = Directory->ParentPath; else if (IsDirectory) Path = UnixIncludeTrailingBackslash(Directory->FullDirectory + FileName); @@ -1601,12 +1616,12 @@ void __fastcall TRemoteDirectory::SetIncludeParentDirectory(Boolean value) FIncludeParentDirectory = value; if (value && ParentDirectory) { - assert(IndexOf(ParentDirectory) < 0); + DebugAssert(IndexOf(ParentDirectory) < 0); Add(ParentDirectory); } else if (!value && ParentDirectory) { - assert(IndexOf(ParentDirectory) >= 0); + DebugAssert(IndexOf(ParentDirectory) >= 0); Extract(ParentDirectory); } } @@ -1619,12 +1634,12 @@ void __fastcall TRemoteDirectory::SetIncludeThisDirectory(Boolean value) FIncludeThisDirectory = value; if (value && ThisDirectory) { - assert(IndexOf(ThisDirectory) < 0); + DebugAssert(IndexOf(ThisDirectory) < 0); Add(ThisDirectory); } else if (!value && ThisDirectory) { - assert(IndexOf(ThisDirectory) >= 0); + DebugAssert(IndexOf(ThisDirectory) >= 0); Extract(ThisDirectory); } } @@ -1703,7 +1718,7 @@ bool __fastcall TRemoteDirectoryCache::GetFileList(const UnicodeString Directory bool Result = (Index >= 0); if (Result) { - assert(Objects[Index] != NULL); + DebugAssert(Objects[Index] != NULL); dynamic_cast(Objects[Index])->DuplicateTo(FileList); } return Result; @@ -1711,7 +1726,7 @@ bool __fastcall TRemoteDirectoryCache::GetFileList(const UnicodeString Directory //--------------------------------------------------------------------------- void __fastcall TRemoteDirectoryCache::AddFileList(TRemoteFileList * FileList) { - assert(FileList); + DebugAssert(FileList); TRemoteFileList * Copy = new TRemoteFileList(); FileList->DuplicateTo(Copy); @@ -1799,7 +1814,7 @@ void __fastcall TRemoteDirectoryChangesCache::AddDirectoryChange( const UnicodeString SourceDir, const UnicodeString Change, const UnicodeString TargetDir) { - assert(!TargetDir.IsEmpty()); + DebugAssert(!TargetDir.IsEmpty()); SetValue(TargetDir, L"//"); if (TTerminal::ExpandFileName(Change, SourceDir) != TargetDir) { @@ -2101,7 +2116,7 @@ void __fastcall TRights::SetAllowUndef(bool value) { if (FAllowUndef != value) { - assert(!value || ((FSet | FUnset) == rfAllSpecials)); + DebugAssert(!value || ((FSet | FUnset) == rfAllSpecials)); FAllowUndef = value; } } @@ -2292,7 +2307,7 @@ void __fastcall TRights::SetNumber(unsigned short value) //--------------------------------------------------------------------------- unsigned short __fastcall TRights::GetNumber() const { - assert(!IsUndef); + DebugAssert(!IsUndef); return FSet; } //--------------------------------------------------------------------------- @@ -2304,7 +2319,7 @@ void __fastcall TRights::SetRight(TRight Right, bool value) bool __fastcall TRights::GetRight(TRight Right) const { TState State = RightUndef[Right]; - assert(State != rsUndef); + DebugAssert(State != rsUndef); return (State == rsYes); } //--------------------------------------------------------------------------- @@ -2312,7 +2327,7 @@ void __fastcall TRights::SetRightUndef(TRight Right, TState value) { if (value != RightUndef[Right]) { - assert((value != rsUndef) || AllowUndef); + DebugAssert((value != rsUndef) || AllowUndef); TFlag Flag = RightToFlag(Right); @@ -2542,7 +2557,7 @@ TRemoteProperties __fastcall TRemoteProperties::CommonProperties(TStrings * File for (int Index = 0; Index < FileList->Count; Index++) { TRemoteFile * File = (TRemoteFile *)(FileList->Objects[Index]); - assert(File); + DebugAssert(File); if (!Index) { CommonProperties.Rights = *(File->Rights); diff --git a/source/core/RemoteFiles.h b/source/core/RemoteFiles.h index 8cf4e5b5..0bed6565 100644 --- a/source/core/RemoteFiles.h +++ b/source/core/RemoteFiles.h @@ -462,5 +462,6 @@ UnicodeString __fastcall ModificationStr(TDateTime DateTime, int __fastcall FakeFileImageIndex(UnicodeString FileName, unsigned long Attrs = 0, UnicodeString * TypeName = NULL); bool __fastcall SameUserName(const UnicodeString & UserName1, const UnicodeString & UserName2); +UnicodeString __fastcall FormatMultiFilesToOneConfirmation(const UnicodeString & Target, bool Unix); //--------------------------------------------------------------------------- #endif diff --git a/source/core/ScpFileSystem.cpp b/source/core/ScpFileSystem.cpp index 46ae0836..a52ead64 100644 --- a/source/core/ScpFileSystem.cpp +++ b/source/core/ScpFileSystem.cpp @@ -59,7 +59,7 @@ extern const TCommandType DefaultCommandSet[]; #define NationalVarCount 10 extern const wchar_t NationalVars[NationalVarCount][15]; -#define CHECK_CMD assert((Cmd >=0) && (Cmd <= MaxShellCommand)) +#define CHECK_CMD DebugAssert((Cmd >=0) && (Cmd <= MaxShellCommand)) class TSessionData; //--------------------------------------------------------------------------- @@ -136,7 +136,7 @@ const TCommandType DefaultCommandSet[ShellCommandCount] = { /*CreateLink*/ { 0, 0, T, F, F, L"ln %s \"%s\" \"%s\"" /*symbolic (-s), filename, point to*/}, /*CopyFile*/ { 0, 0, T, F, F, L"cp -p -r -f %s \"%s\" \"%s\"" /* file/directory, target name*/}, /*AnyCommand*/ { 0, -1, T, T, F, L"%s" }, -/*Lang*/ { 0, 1, F, F, F, L"echo $LANG"} +/*Lang*/ { 0, 1, F, F, F, L"printenv LANG"} }; #undef F #undef T @@ -144,7 +144,7 @@ const TCommandType DefaultCommandSet[ShellCommandCount] = { __fastcall TCommandSet::TCommandSet(TSessionData *aSessionData): FSessionData(aSessionData), FReturnVar(L"") { - assert(FSessionData); + DebugAssert(FSessionData); Default(); } //--------------------------------------------------------------------------- @@ -155,7 +155,7 @@ void __fastcall TCommandSet::CopyFrom(TCommandSet * Source) //--------------------------------------------------------------------------- void __fastcall TCommandSet::Default() { - assert(sizeof(CommandSet) == sizeof(DefaultCommandSet)); + DebugAssert(sizeof(CommandSet) == sizeof(DefaultCommandSet)); memmove(&CommandSet, &DefaultCommandSet, sizeof(CommandSet)); } //--------------------------------------------------------------------------- @@ -247,7 +247,7 @@ UnicodeString __fastcall TCommandSet::GetLastLine() //--------------------------------------------------------------------------- UnicodeString __fastcall TCommandSet::GetReturnVar() { - assert(SessionData); + DebugAssert(SessionData); if (!FReturnVar.IsEmpty()) { return UnicodeString(L'$') + FReturnVar; @@ -426,7 +426,7 @@ UnicodeString __fastcall TSCPFileSystem::AbsolutePath(UnicodeString Path, bool / //--------------------------------------------------------------------------- bool __fastcall TSCPFileSystem::IsCapable(int Capability) const { - assert(FTerminal); + DebugAssert(FTerminal); switch (Capability) { case fcUserGroupListing: case fcModeChanging: @@ -459,10 +459,12 @@ bool __fastcall TSCPFileSystem::IsCapable(int Capability) const case fcSecondaryShell: // has fcShellAnyCommand case fcGroupOwnerChangingByID: // by name case fcMoveToQueue: + case fcLocking: + case fcPreservingTimestampDirs: return false; default: - FAIL; + DebugFail(); return false; } } @@ -634,7 +636,7 @@ void __fastcall TSCPFileSystem::ReadCommandOutput(int Params, const UnicodeStrin ((!Message.IsEmpty() && ((FOutput->Count == 0) || !(Params & coIgnoreWarnings))) || WrongReturnCode)) { - assert(Cmd != NULL); + DebugAssert(Cmd != NULL); FTerminal->TerminalError(FMTLOAD(COMMAND_FAILED, (*Cmd, ReturnCode, Message))); } } @@ -730,7 +732,7 @@ void __fastcall TSCPFileSystem::DetectUtf() break; default: - FAIL; + DebugFail(); case asAuto: FSecureShell->UtfStrings = false; // noop try @@ -951,7 +953,7 @@ void __fastcall TSCPFileSystem::CachedChangeDirectory(const UnicodeString Direct //--------------------------------------------------------------------------- void __fastcall TSCPFileSystem::ReadDirectory(TRemoteFileList * FileList) { - assert(FileList); + DebugAssert(FileList); // emptying file list moved before command execution FileList->Reset(); @@ -1029,7 +1031,7 @@ void __fastcall TSCPFileSystem::ReadDirectory(TRemoteFileList * FileList) Empty = (File == NULL); if (!Empty) { - assert(File->IsParentDirectory); + DebugAssert(File->IsParentDirectory); FileList->AddFile(File); } } @@ -1141,10 +1143,10 @@ void __fastcall TSCPFileSystem::CustomReadFile(const UnicodeString FileName, void __fastcall TSCPFileSystem::DeleteFile(const UnicodeString FileName, const TRemoteFile * File, int Params, TRmSessionAction & Action) { - USEDPARAM(File); - USEDPARAM(Params); + DebugUsedParam(File); + DebugUsedParam(Params); Action.Recursive(); - assert(FLAGCLEAR(Params, dfNoRecursive) || (File && File->IsSymLink)); + DebugAssert(FLAGCLEAR(Params, dfNoRecursive) || (File && File->IsSymLink)); ExecCommand(fsDeleteFile, ARRAYOFCONST((DelimitStr(FileName)))); } //--------------------------------------------------------------------------- @@ -1215,7 +1217,7 @@ void __fastcall TSCPFileSystem::ChangeFileProperties(const UnicodeString FileNam const TRemoteFile * File, const TRemoteProperties * Properties, TChmodSessionAction & Action) { - assert(Properties); + DebugAssert(Properties); bool IsDirectory = File && File->IsDirectory; bool Recursive = Properties->Recursive && IsDirectory; UnicodeString RecursiveStr = Recursive ? L"-R" : L""; @@ -1264,13 +1266,13 @@ void __fastcall TSCPFileSystem::ChangeFileProperties(const UnicodeString FileNam { Action.Cancel(); } - assert(!Properties->Valid.Contains(vpLastAccess)); - assert(!Properties->Valid.Contains(vpModification)); + DebugAssert(!Properties->Valid.Contains(vpLastAccess)); + DebugAssert(!Properties->Valid.Contains(vpModification)); } //--------------------------------------------------------------------------- bool __fastcall TSCPFileSystem::LoadFilesProperties(TStrings * /*FileList*/ ) { - FAIL; + DebugFail(); return false; } //--------------------------------------------------------------------------- @@ -1278,14 +1280,14 @@ void __fastcall TSCPFileSystem::CalculateFilesChecksum(const UnicodeString & /*A TStrings * /*FileList*/, TStrings * /*Checksums*/, TCalculatedChecksumEvent /*OnCalculatedChecksum*/) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void __fastcall TSCPFileSystem::CustomCommandOnFile(const UnicodeString FileName, const TRemoteFile * File, UnicodeString Command, int Params, TCaptureOutputEvent OutputEvent) { - assert(File); + DebugAssert(File); bool Dir = File->IsDirectory && !File->IsSymLink; if (Dir && (Params & ccRecursive)) { @@ -1313,12 +1315,12 @@ void __fastcall TSCPFileSystem::CaptureOutput(const UnicodeString & AddedLine, T int ReturnCode; UnicodeString Line = AddedLine; // TSecureShell never uses cotExitCode - assert((OutputType == cotOutput) || (OutputType == cotError)); - if ((OutputType == cotError) || ALWAYS_FALSE(OutputType == cotExitCode) || + DebugAssert((OutputType == cotOutput) || (OutputType == cotError)); + if ((OutputType == cotError) || DebugAlwaysFalse(OutputType == cotExitCode) || !RemoveLastLine(Line, ReturnCode) || !Line.IsEmpty()) { - assert(FOnCaptureOutput != NULL); + DebugAssert(FOnCaptureOutput != NULL); FOnCaptureOutput(Line, OutputType); } } @@ -1326,7 +1328,7 @@ void __fastcall TSCPFileSystem::CaptureOutput(const UnicodeString & AddedLine, T void __fastcall TSCPFileSystem::AnyCommand(const UnicodeString Command, TCaptureOutputEvent OutputEvent) { - assert(FSecureShell->OnCaptureOutput == NULL); + DebugAssert(FSecureShell->OnCaptureOutput == NULL); if (OutputEvent != NULL) { FSecureShell->OnCaptureOutput = CaptureOutput; @@ -1353,7 +1355,7 @@ TStrings * __fastcall TSCPFileSystem::GetFixedPaths() void __fastcall TSCPFileSystem::SpaceAvailable(const UnicodeString Path, TSpaceAvailable & /*ASpaceAvailable*/) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- // transfer protocol @@ -1457,7 +1459,7 @@ void __fastcall TSCPFileSystem::CopyToRemote(TStrings * FilesToCopy, TOnceDoneOperation & OnceDoneOperation) { // scp.c: source(), toremote() - assert(FilesToCopy && OperationProgress); + DebugAssert(FilesToCopy && OperationProgress); Params &= ~(cpAppend | cpResume); UnicodeString Options = L""; @@ -1509,7 +1511,8 @@ void __fastcall TSCPFileSystem::CopyToRemote(TStrings * FilesToCopy, bool CanProceed; UnicodeString FileNameOnly = - CopyParam->ChangeFileName(ExtractFileName(FileName), osLocal, true); + FTerminal->ChangeFileName( + CopyParam, ExtractFileName(FileName), osLocal, true); if (CheckExistence) { @@ -1561,7 +1564,7 @@ void __fastcall TSCPFileSystem::CopyToRemote(TStrings * FilesToCopy, break; default: - FAIL; + DebugFail(); break; } } @@ -1670,8 +1673,9 @@ void __fastcall TSCPFileSystem::SCPSource(const UnicodeString FileName, const UnicodeString TargetDir, const TCopyParamType * CopyParam, int Params, TFileOperationProgressType * OperationProgress, int Level) { - UnicodeString DestFileName = CopyParam->ChangeFileName( - ExtractFileName(FileName), osLocal, Level == 0); + UnicodeString DestFileName = + FTerminal->ChangeFileName( + CopyParam, ExtractFileName(FileName), osLocal, Level == 0); FTerminal->LogEvent(FORMAT(L"File: \"%s\"", (FileName))); @@ -1704,7 +1708,7 @@ void __fastcall TSCPFileSystem::SCPSource(const UnicodeString FileName, { UnicodeString AbsoluteFileName = FTerminal->AbsolutePath(TargetDir + DestFileName, false); - assert(File); + DebugAssert(File); // File is regular file (not directory) FTerminal->LogEvent(FORMAT(L"Copying \"%s\" to remote directory started.", (FileName))); @@ -1722,8 +1726,9 @@ void __fastcall TSCPFileSystem::SCPSource(const UnicodeString FileName, TFileMasks::TParams MaskParams; MaskParams.Size = Size; MaskParams.Modification = Modification; + UnicodeString BaseFileName = FTerminal->GetBaseFileName(FileName); OperationProgress->SetAsciiTransfer( - CopyParam->UseAsciiTransfer(FileName, osLocal, MaskParams)); + CopyParam->UseAsciiTransfer(BaseFileName, osLocal, MaskParams)); FTerminal->LogEvent( UnicodeString((OperationProgress->AsciiTransfer ? L"Ascii" : L"Binary")) + L" transfer mode selected."); @@ -1980,8 +1985,9 @@ void __fastcall TSCPFileSystem::SCPDirectorySource(const UnicodeString Directory FTerminal->LogEvent(FORMAT(L"Entering directory \"%s\".", (DirectoryName))); OperationProgress->SetFile(DirectoryName); - UnicodeString DestFileName = CopyParam->ChangeFileName( - ExtractFileName(DirectoryName), osLocal, Level == 0); + UnicodeString DestFileName = + FTerminal->ChangeFileName( + CopyParam, ExtractFileName(DirectoryName), osLocal, Level == 0); // Get directory attributes FILE_OPERATION_LOOP_BEGIN @@ -2121,7 +2127,7 @@ void __fastcall TSCPFileSystem::CopyToLocal(TStrings * FilesToCopy, { UnicodeString FileName = FilesToCopy->Strings[IFile]; TRemoteFile * File = (TRemoteFile *)FilesToCopy->Objects[IFile]; - assert(File); + DebugAssert(File); try { @@ -2404,7 +2410,8 @@ void __fastcall TSCPFileSystem::SCPSink(const UnicodeString TargetDir, } bool Dir = (Ctrl == L'D'); - if (!CopyParam->AllowTransfer(AbsoluteFileName, osRemote, Dir, MaskParams)) + UnicodeString BaseFileName = FTerminal->GetBaseFileName(AbsoluteFileName); + if (!CopyParam->AllowTransfer(BaseFileName, osRemote, Dir, MaskParams)) { FTerminal->LogEvent(FORMAT(L"File \"%s\" excluded from transfer", (AbsoluteFileName))); @@ -2422,7 +2429,8 @@ void __fastcall TSCPFileSystem::SCPSink(const UnicodeString TargetDir, FTerminal->LogFileDetails(FileName, SourceTimestamp, MaskParams.Size); UnicodeString DestFileNameOnly = - CopyParam->ChangeFileName(OperationProgress->FileName, osRemote, + FTerminal->ChangeFileName( + CopyParam, OperationProgress->FileName, osRemote, Level == 0); UnicodeString DestFileName = IncludeTrailingBackslash(TargetDir) + DestFileNameOnly; @@ -2522,7 +2530,7 @@ void __fastcall TSCPFileSystem::SCPSink(const UnicodeString TargetDir, // Will we use ASCII of BINARY file transfer? OperationProgress->SetAsciiTransfer( - CopyParam->UseAsciiTransfer(AbsoluteFileName, osRemote, MaskParams)); + CopyParam->UseAsciiTransfer(BaseFileName, osRemote, MaskParams)); FTerminal->LogEvent(UnicodeString((OperationProgress->AsciiTransfer ? L"Ascii" : L"Binary")) + L" transfer mode selected."); @@ -2664,3 +2672,18 @@ void __fastcall TSCPFileSystem::GetSupportedChecksumAlgs(TStrings * /*Algs*/) { // NOOP } +//--------------------------------------------------------------------------- +void __fastcall TSCPFileSystem::LockFile(const UnicodeString & /*FileName*/, const TRemoteFile * /*File*/) +{ + DebugFail(); +} +//--------------------------------------------------------------------------- +void __fastcall TSCPFileSystem::UnlockFile(const UnicodeString & /*FileName*/, const TRemoteFile * /*File*/) +{ + DebugFail(); +} +//--------------------------------------------------------------------------- +void __fastcall TSCPFileSystem::UpdateFromMain(TCustomFileSystem * /*MainFileSystem*/) +{ + // noop +} diff --git a/source/core/ScpFileSystem.h b/source/core/ScpFileSystem.h index 7e7a3b7b..bfc49012 100644 --- a/source/core/ScpFileSystem.h +++ b/source/core/ScpFileSystem.h @@ -70,6 +70,9 @@ class TSCPFileSystem : public TCustomFileSystem virtual bool __fastcall GetStoredCredentialsTried(); virtual UnicodeString __fastcall GetUserName(); virtual void __fastcall GetSupportedChecksumAlgs(TStrings * Algs); + virtual void __fastcall LockFile(const UnicodeString & FileName, const TRemoteFile * File); + virtual void __fastcall UnlockFile(const UnicodeString & FileName, const TRemoteFile * File); + virtual void __fastcall UpdateFromMain(TCustomFileSystem * MainFileSystem); protected: __property TStrings * Output = { read = FOutput }; diff --git a/source/core/Script.cpp b/source/core/Script.cpp index 4772fd85..02eb383b 100644 --- a/source/core/Script.cpp +++ b/source/core/Script.cpp @@ -21,7 +21,7 @@ static const wchar_t * ToggleNames[] = { L"off", L"on" }; __fastcall TScriptProcParams::TScriptProcParams(UnicodeString ParamsStr) { int P = FSwitchMarks.Pos(L"/"); - assert(P > 0); + DebugAssert(P > 0); if (P > 0) { FSwitchMarks.Delete(P, 1); @@ -362,12 +362,12 @@ void __fastcall TScript::Init() FCommands->Register(L"ln", SCRIPT_LN_DESC, SCRIPT_LN_HELP, &LnProc, 2, 2, false); FCommands->Register(L"symlink", 0, SCRIPT_LN_HELP, &LnProc, 2, 2, false); FCommands->Register(L"mkdir", SCRIPT_MKDIR_DESC, SCRIPT_MKDIR_HELP, &MkDirProc, 1, 1, false); - FCommands->Register(L"get", SCRIPT_GET_DESC, SCRIPT_GET_HELP7, &GetProc, 1, -1, true); - FCommands->Register(L"recv", 0, SCRIPT_GET_HELP7, &GetProc, 1, -1, true); - FCommands->Register(L"mget", 0, SCRIPT_GET_HELP7, &GetProc, 1, -1, true); - FCommands->Register(L"put", SCRIPT_PUT_DESC, SCRIPT_PUT_HELP7, &PutProc, 1, -1, true); - FCommands->Register(L"send", 0, SCRIPT_PUT_HELP7, &PutProc, 1, -1, true); - FCommands->Register(L"mput", 0, SCRIPT_PUT_HELP7, &PutProc, 1, -1, true); + FCommands->Register(L"get", SCRIPT_GET_DESC, SCRIPT_GET_HELP8, &GetProc, 1, -1, true); + FCommands->Register(L"recv", 0, SCRIPT_GET_HELP8, &GetProc, 1, -1, true); + FCommands->Register(L"mget", 0, SCRIPT_GET_HELP8, &GetProc, 1, -1, true); + FCommands->Register(L"put", SCRIPT_PUT_DESC, SCRIPT_PUT_HELP8, &PutProc, 1, -1, true); + FCommands->Register(L"send", 0, SCRIPT_PUT_HELP8, &PutProc, 1, -1, true); + FCommands->Register(L"mput", 0, SCRIPT_PUT_HELP8, &PutProc, 1, -1, true); FCommands->Register(L"option", SCRIPT_OPTION_DESC, SCRIPT_OPTION_HELP7, &OptionProc, -1, 2, false); FCommands->Register(L"ascii", 0, SCRIPT_OPTION_HELP7, &AsciiProc, 0, 0, false); FCommands->Register(L"binary", 0, SCRIPT_OPTION_HELP7, &BinaryProc, 0, 0, false); @@ -430,7 +430,7 @@ bool __fastcall TScript::IsTerminalLogging(TTerminal * ATerminal) } //--------------------------------------------------------------------------- const static UnicodeString ScriptLogFormat(L"Script: %s"); -void __fastcall TScript::Log(TLogLineType Type, AnsiString Str) +void __fastcall TScript::Log(TLogLineType Type, UnicodeString Str) { Str = FORMAT(ScriptLogFormat, (Str)); if (IsTerminalLogging(Terminal)) @@ -495,7 +495,7 @@ void __fastcall TScript::Command(UnicodeString Cmd) if (Configuration->LogProtocol >= 1) { UnicodeString DummyLogCmd; - if (ALWAYS_TRUE(CutToken(LogCmd, DummyLogCmd))) + if (DebugAlwaysTrue(CutToken(LogCmd, DummyLogCmd))) { std::unique_ptr Parameters(new TScriptProcParams(LogCmd)); Parameters->LogOptions(LogOption); @@ -677,6 +677,30 @@ TStrings * __fastcall TScript::CreateFileList(TScriptProcParams * Parameters, in delete FileLists; } } + + if (FLAGSET(ListType, fltLatest) && (Result->Count > 1)) + { + // otherwise we do not have TRemoteFile's + DebugAssert(FLAGSET(ListType, fltQueryServer)); + int LatestIndex = 0; + + for (int Index = 1; Index < Result->Count; Index++) + { + TRemoteFile * File = dynamic_cast(Result->Objects[Index]); + if (dynamic_cast(Result->Objects[LatestIndex])->Modification < File->Modification) + { + LatestIndex = Index; + } + } + + TRemoteFile * File = dynamic_cast(Result->Objects[LatestIndex]); + UnicodeString Path = Result->Strings[LatestIndex]; + Result->Delete(LatestIndex); + FreeFiles(Result); + Result->Clear(); + Result->AddObject(Path, File); + } + return Result; } //--------------------------------------------------------------------------- @@ -686,6 +710,9 @@ TStrings * __fastcall TScript::CreateLocalFileList(TScriptProcParams * Parameter TStrings * Result = new TStringList(); try { + UnicodeString LatestFileName; + TDateTime LatestModification; // initialized to 0 + for (int i = Start; i <= End; i++) { // FindFirstFile called (indirectly) below fails if path ends with slash. @@ -713,7 +740,13 @@ TStrings * __fastcall TScript::CreateLocalFileList(TScriptProcParams * Parameter { if ((SearchRec.Name != L".") && (SearchRec.Name != L"..")) { - Result->Add(Directory + SearchRec.Name); + UnicodeString FileName = Directory + SearchRec.Name; + Result->Add(FileName); + if (SearchRec.TimeStamp > LatestModification) + { + LatestFileName = FileName; + LatestModification = SearchRec.TimeStamp; + } AnyFound = true; } } @@ -728,7 +761,14 @@ TStrings * __fastcall TScript::CreateLocalFileList(TScriptProcParams * Parameter { if (FileName.LastDelimiter(L"?*") == 0) { - // no match, and it is not a mask, let it fail latter + // No match, and it is not a mask, let it fail latter. + // But with -latest, we have to fail straight away + // (so maybe we should fail unconditionally now, + // once we need to have the code in place anyway) + if (FLAGSET(ListType, fltLatest)) + { + throw Exception(FMTLOAD(FILE_NOT_EXISTS, (FileName))); + } Result->Add(FileName); AnyFound = true; } @@ -745,9 +785,20 @@ TStrings * __fastcall TScript::CreateLocalFileList(TScriptProcParams * Parameter } else { + DebugAssert(FLAGCLEAR(ListType, fltLatest)); + // this branch is currently never used Result->Add(FileName); } } + + if (FLAGSET(ListType, fltLatest)) + { + Result->Clear(); + if (!LatestFileName.IsEmpty()) + { + Result->Add(LatestFileName); + } + } } catch(...) { @@ -789,7 +840,7 @@ void __fastcall TScript::NoMatch(const UnicodeString & Mask, const UnicodeString } } //--------------------------------------------------------------------------- -void __fastcall TScript::FreeFileList(TStrings * FileList) +void __fastcall TScript::FreeFiles(TStrings * FileList) { for (int i = 0; i < FileList->Count; i++) { @@ -799,6 +850,11 @@ void __fastcall TScript::FreeFileList(TStrings * FileList) delete File; } } +} +//--------------------------------------------------------------------------- +void __fastcall TScript::FreeFileList(TStrings * FileList) +{ + FreeFiles(FileList); delete FileList; } //--------------------------------------------------------------------------- @@ -851,6 +907,26 @@ void __fastcall TScript::NotSupported() throw Exception(LoadStr(NOTSUPPORTED)); } //--------------------------------------------------------------------------- +void __fastcall TScript::CheckMultiFilesToOne(TStrings * FileList, const UnicodeString & Target, bool Unix) +{ + UnicodeString Name; + if (Unix) + { + Name = UnixExtractFileName(Target); + } + else + { + Name = ExtractFileName(Target); + } + + if (!IsFileNameMask(Name) && (FileList->Count > 1)) + { + UnicodeString Message = + RemoveEmptyLines(UnformatMessage(FormatMultiFilesToOneConfirmation(Target, Unix))); + PrintLine(Message); + } +} +//--------------------------------------------------------------------------- void __fastcall TScript::CheckParams(TScriptProcParams * Parameters) { TScriptCommands::CheckParams(Parameters, false); @@ -888,11 +964,17 @@ void __fastcall TScript::CopyParamParams(TCopyParamType & CopyParam, TScriptProc if (Parameters->FindSwitch(L"nopreservetime")) { CopyParam.PreserveTime = false; + CopyParam.PreserveTimeDirs = false; } - if (Parameters->FindSwitch(L"preservetime")) + if (Parameters->FindSwitch(L"preservetime", Value)) { CopyParam.PreserveTime = true; + + if (SameText(Value, L"all")) + { + CopyParam.PreserveTimeDirs = true; + } } if (Parameters->FindSwitch(L"nopermissions")) @@ -955,7 +1037,7 @@ void __fastcall TScript::CopyParamParams(TCopyParamType & CopyParam, TScriptProc break; default: - FAIL; + DebugFail(); break; } } @@ -1105,14 +1187,14 @@ void __fastcall TScript::ChecksumProc(TScriptProcParams * Parameters) try { if ((FileList->Count != 1) || - NOT_NULL(dynamic_cast(FileList->Objects[0]))->IsDirectory) + DebugNotNull(dynamic_cast(FileList->Objects[0]))->IsDirectory) { throw Exception(FMTLOAD(NOT_FILE_ERROR, (FileList->Strings[0]))); } FTerminal->CalculateFilesChecksum(Alg, FileList, Checksums.get(), NULL); - if (ALWAYS_TRUE(Checksums->Count == 1)) + if (DebugAlwaysTrue(Checksums->Count == 1)) { PrintLine(FORMAT(L"%s %s", (Checksums->Strings[0], FileList->Strings[0]))); } @@ -1249,10 +1331,13 @@ void __fastcall TScript::MvProc(TScriptProcParams * Parameters) fltMask); try { - assert(Parameters->ParamCount >= 1); + DebugAssert(Parameters->ParamCount >= 1); UnicodeString Target = Parameters->Param[Parameters->ParamCount]; UnicodeString TargetDirectory = UnixExtractFilePath(Target); UnicodeString FileMask = UnixExtractFileName(Target); + + Target = UnixIncludeTrailingBackslash(TargetDirectory) + FileMask; + CheckMultiFilesToOne(FileList, Target, true); FTerminal->MoveFiles(FileList, TargetDirectory, FileMask); } __finally @@ -1289,7 +1374,7 @@ void __fastcall TScript::LnProc(TScriptProcParams * Parameters) { CheckSession(); - assert(Parameters->ParamCount == 2); + DebugAssert(Parameters->ParamCount == 2); FTerminal->CreateLink(Parameters->Param[2], Parameters->Param[1], true); } @@ -1306,9 +1391,10 @@ void __fastcall TScript::GetProc(TScriptProcParams * Parameters) CheckSession(); ResetTransfer(); + bool Latest = Parameters->FindSwitch(L"latest"); int LastFileParam = (Parameters->ParamCount == 1 ? 1 : Parameters->ParamCount - 1); TStrings * FileList = CreateFileList(Parameters, 1, LastFileParam, - (TFileListType)(fltQueryServer | fltMask)); + (TFileListType)(fltQueryServer | fltMask | FLAGMASK(Latest, fltLatest))); try { CheckDefaultCopyParam(); @@ -1329,6 +1415,8 @@ void __fastcall TScript::GetProc(TScriptProcParams * Parameters) TargetDirectory = GetCurrentDir(); } CopyParam.FileMask = ExtractFileName(Target); + Target = IncludeTrailingBackslash(TargetDirectory) + CopyParam.FileMask; + CheckMultiFilesToOne(FileList, Target, false); } int Params = 0; @@ -1349,8 +1437,11 @@ void __fastcall TScript::PutProc(TScriptProcParams * Parameters) CheckSession(); ResetTransfer(); + bool Latest = Parameters->FindSwitch(L"latest"); int LastFileParam = (Parameters->ParamCount == 1 ? 1 : Parameters->ParamCount - 1); - TStrings * FileList = CreateLocalFileList(Parameters, 1, LastFileParam, fltMask); + TStrings * FileList = + CreateLocalFileList( + Parameters, 1, LastFileParam, (TFileListType)(fltMask | FLAGMASK(Latest, fltLatest))); try { CheckDefaultCopyParam(); @@ -1371,6 +1462,8 @@ void __fastcall TScript::PutProc(TScriptProcParams * Parameters) TargetDirectory = FTerminal->CurrentDirectory; } CopyParam.FileMask = UnixExtractFileName(Target); + Target = UnixIncludeTrailingBackslash(TargetDirectory) + CopyParam.FileMask; + CheckMultiFilesToOne(FileList, Target, true); } int Params = 0; @@ -1388,7 +1481,7 @@ void __fastcall TScript::PutProc(TScriptProcParams * Parameters) //--------------------------------------------------------------------------- TTransferMode __fastcall TScript::ParseTransferModeName(UnicodeString Name) { - assert((tmBinary == 0) && (tmAscii == 1) && (tmAutomatic == 2)); + DebugAssert((tmBinary == 0) && (tmAscii == 1) && (tmAutomatic == 2)); int Value = TScriptCommands::FindCommand(TransferModeNames, LENOF(TransferModeNames), Name); @@ -1406,7 +1499,7 @@ void __fastcall TScript::OptionImpl(UnicodeString OptionName, UnicodeString Valu static const wchar_t * Names[] = { L"echo", L"batch", L"confirm", L"transfer", L"synchdelete", L"exclude", L"include", L"reconnecttime", L"failonnomatch" }; - assert((BatchOff == 0) && (BatchOn == 1) && (BatchAbort == 2) && (BatchContinue == 3)); + DebugAssert((BatchOff == 0) && (BatchOn == 1) && (BatchAbort == 2) && (BatchContinue == 3)); static const wchar_t * BatchModeNames[] = { L"off", L"on", L"abort", L"continue" }; int Option = -1; @@ -1490,7 +1583,7 @@ void __fastcall TScript::OptionImpl(UnicodeString OptionName, UnicodeString Valu FCopyParam.TransferMode = ParseTransferModeName(ValueName); } - assert(FCopyParam.TransferMode < (TTransferMode)LENOF(TransferModeNames)); + DebugAssert(FCopyParam.TransferMode < (TTransferMode)LENOF(TransferModeNames)); const wchar_t * Value = TransferModeNames[FCopyParam.TransferMode]; PrintLine(FORMAT(ListFormat, (Names[Transfer], Value))); } @@ -1740,7 +1833,7 @@ void __fastcall TScript::SynchronizePreview( break; default: - FAIL; + DebugFail(); } PrintLine(Message); } @@ -1755,7 +1848,7 @@ void __fastcall TScript::SynchronizeProc(TScriptProcParams * Parameters) static const wchar_t * ModeNames[] = { L"remote", L"local", L"both" }; UnicodeString ModeName = Parameters->Param[1]; - assert(FSynchronizeMode < 0); + DebugAssert(FSynchronizeMode < 0); FSynchronizeMode = TScriptCommands::FindCommand(ModeNames, LENOF(ModeNames), ModeName); try @@ -1954,7 +2047,7 @@ __fastcall TManagementScript::TManagementScript(TStoredSessionList * StoredSessi bool LimitedOutput) : TScript(LimitedOutput) { - assert(StoredSessions != NULL); + DebugAssert(StoredSessions != NULL); FOnInput = NULL; FOnTerminalPromptUser = NULL; FOnShowExtendedException = NULL; @@ -1968,7 +2061,7 @@ __fastcall TManagementScript::TManagementScript(TStoredSessionList * StoredSessi FCommands->Register(L"exit", SCRIPT_EXIT_DESC, SCRIPT_EXIT_HELP, &ExitProc, 0, 0, false); FCommands->Register(L"bye", 0, SCRIPT_EXIT_HELP, &ExitProc, 0, 0, false); - FCommands->Register(L"open", SCRIPT_OPEN_DESC, SCRIPT_OPEN_HELP6, &OpenProc, 0, -1, true); + FCommands->Register(L"open", SCRIPT_OPEN_DESC, SCRIPT_OPEN_HELP8, &OpenProc, 0, -1, true); FCommands->Register(L"close", SCRIPT_CLOSE_DESC, SCRIPT_CLOSE_HELP, &CloseProc, 0, 1, false); FCommands->Register(L"session", SCRIPT_SESSION_DESC, SCRIPT_SESSION_HELP, &SessionProc, 0, 1, false); FCommands->Register(L"lpwd", SCRIPT_LPWD_DESC, SCRIPT_LPWD_HELP, &LPwdProc, 0, 0, false); @@ -2060,7 +2153,7 @@ bool __fastcall TManagementScript::QueryCancel() void __fastcall TManagementScript::TerminalInformation(TTerminal * ATerminal, const UnicodeString & Str, bool /*Status*/, int Phase) { - assert(ATerminal != NULL); + DebugAssert(ATerminal != NULL); if ((Phase < 0) && (ATerminal->Status == ssOpening)) { PrintLine(Str); @@ -2270,7 +2363,7 @@ void __fastcall TManagementScript::TerminalSynchronizeDirectory( void __fastcall TManagementScript::TerminalInitializeLog(TObject * Sender) { TTerminal * ATerminal = dynamic_cast(Sender); - if (ALWAYS_TRUE(ATerminal != NULL)) + if (DebugAlwaysTrue(ATerminal != NULL)) { LogPendingLines(ATerminal); } @@ -2292,7 +2385,7 @@ TTerminal * __fastcall TManagementScript::FindSession(const UnicodeString Index) //--------------------------------------------------------------------------- void __fastcall TManagementScript::PrintActiveSession() { - assert(FTerminal != NULL); + DebugAssert(FTerminal != NULL); PrintLine(FMTLOAD(SCRIPT_ACTIVE_SESSION, (FTerminalList->IndexOf(FTerminal) + 1, FTerminal->SessionData->SessionName))); } @@ -2322,68 +2415,110 @@ bool __fastcall TManagementScript::HandleExtendedException(Exception * E, return Result; } //--------------------------------------------------------------------------- -UnicodeString __fastcall TManagementScript::GetLogCmd(const UnicodeString & FullCommand, - const UnicodeString & Command, const UnicodeString & Params) +void __fastcall TManagementScript::MaskPasswordInCommandLine(UnicodeString & Command, bool Recurse) { - UnicodeString Result = FullCommand; - if (SameText(FCommands->ResolveCommand(Command), L"open") && - !Configuration->LogSensitive) - { - UnicodeString AParams = Params; - std::unique_ptr Parameters(new TScriptProcParams(L"")); + UnicodeString Url; + UnicodeString MaskedParamsPre; + UnicodeString MaskedParamsPost; - UnicodeString Url; - UnicodeString MaskedParamsPre; - UnicodeString MaskedParamsPost; + UnicodeString Param; + UnicodeString RawParam; + UnicodeString Separator; + UnicodeString Separator2; + bool AnyMaskedParam = false; - UnicodeString Param; - UnicodeString RawParam; - bool AnySensitiveOption = false; + TOptions Options; + UnicodeString ACommand = Command; + bool SubCommands = false; - while (CutToken(AParams, Param, &RawParam)) + while (CutToken(ACommand, Param, &RawParam, &Separator2)) + { + Options.Add(Param); + + // "Param 1" is the "winscp.exe" or "open" + if ((Options.ParamCount == 2) && Url.IsEmpty() && !SubCommands) + { + Url = Param; + } + else { - Parameters->Add(Param); - if ((Parameters->ParamCount == 1) && Url.IsEmpty()) + UnicodeString & MaskedParams = Url.IsEmpty() ? MaskedParamsPre : MaskedParamsPost; + + UnicodeString Switch; + wchar_t SwitchMark; + if (Options.WasSwitchAdded(Switch, SwitchMark)) { - Url = Param; + if (TSessionData::IsSensitiveOption(Switch)) + { + // We should use something like TProgramParams::FormatSwitch here + RawParam = FORMAT(L"%s%s=***", (SwitchMark, Switch)); + AnyMaskedParam = true; + } + + SubCommands = SameText(Switch, COMMAND_SWITCH); } else { - UnicodeString & MaskedParams = Url.IsEmpty() ? MaskedParamsPre : MaskedParamsPost; - - UnicodeString Switch; - if (Parameters->WasSwitchAdded(Switch) && - TSessionData::IsSensitiveOption(Switch)) + if (Recurse && SubCommands) { - // We should use something like TProgramParams::FormatSwitch here - RawParam = FORMAT(L"-%s=***", (Switch)); - AnySensitiveOption = true; + UnicodeString Cmd2 = Param; + UnicodeString Command2; + if (CutToken(Cmd2, Command2)) + { + UnicodeString MaskedParam = MaskPasswordInCommand(Param, Command2); + if (MaskedParam != Param) + { + RawParam = AddQuotes(EscapeParam(MaskedParam)); + AnyMaskedParam = true; + } + } } - AddToList(MaskedParams, RawParam, L" "); } + // Separator is empty on the first loop, but so is the MaskedParams + AddToList(MaskedParams, RawParam, Separator); } - if (!Url.IsEmpty() || AnySensitiveOption) + Separator = Separator2; + } + + if (!Url.IsEmpty() || AnyMaskedParam) + { + UnicodeString MaskedUrl; + + if (!Url.IsEmpty()) { - UnicodeString MaskedUrl; bool DefaultsOnly; + std::unique_ptr Data( + StoredSessions->ParseUrl(Url, &Options, DefaultsOnly, NULL, NULL, &MaskedUrl)); + } - if (!Url.IsEmpty()) - { - std::unique_ptr Data( - FStoredSessions->ParseUrl(Url, Parameters.get(), DefaultsOnly, NULL, NULL, &MaskedUrl)); - } - - if ((Url != MaskedUrl) || AnySensitiveOption) - { - Result = Command; - // AddToList is noop, when respective component is empty - AddToList(Result, MaskedParamsPre, L" "); - AddToList(Result, MaskedUrl, L" "); - AddToList(Result, MaskedParamsPost, L" "); - } + if ((Url != MaskedUrl) || AnyMaskedParam) + { + Command = MaskedParamsPre; + // AddToList is noop, when respective component is empty + AddToList(Command, AddQuotes(MaskedUrl), L" "); + AddToList(Command, MaskedParamsPost, L" "); } } +} +//--------------------------------------------------------------------------- +UnicodeString __fastcall TManagementScript::MaskPasswordInCommand(const UnicodeString & FullCommand, + const UnicodeString & Command) +{ + UnicodeString Result = FullCommand; + if (SameText(FCommands->ResolveCommand(Command), L"open") && + !Configuration->LogSensitive) + { + MaskPasswordInCommandLine(Result, false); + } + + return Result; +} +//--------------------------------------------------------------------------- +UnicodeString __fastcall TManagementScript::GetLogCmd(const UnicodeString & FullCommand, + const UnicodeString & Command, const UnicodeString & Params) +{ + UnicodeString Result = MaskPasswordInCommand(FullCommand, Command); return TScript::GetLogCmd(Result, Command, Params); } @@ -2395,13 +2530,38 @@ void __fastcall TManagementScript::Connect(const UnicodeString Session, { bool DefaultsOnly; - if (FStoredSessions->IsFolder(Session) || - FStoredSessions->IsWorkspace(Session)) + TSessionData * Data; + if (Options->FindSwitch(L"filezilla")) + { + UnicodeString Error; + std::unique_ptr FilezillaSessionList( + Configuration->SelectFilezillaSessionsForImport(StoredSessions, Error)); + if (!Error.IsEmpty()) + { + throw Exception(Error); + } + + Data = dynamic_cast(FilezillaSessionList->FindByName(Session)); + if (Data == NULL) + { + throw Exception(FMTLOAD(FILEZILLA_SITE_NOT_EXIST, (Session))); + } + else + { + Data = Data->Clone(); + } + } + else { - throw Exception(LoadStr(CANNOT_OPEN_SESSION_FOLDER)); + if (FStoredSessions->IsFolder(Session) || + FStoredSessions->IsWorkspace(Session)) + { + throw Exception(LoadStr(CANNOT_OPEN_SESSION_FOLDER)); + } + + Data = FStoredSessions->ParseUrl(Session, Options, DefaultsOnly); } - TSessionData * Data = FStoredSessions->ParseUrl(Session, Options, DefaultsOnly); try { if (CheckParams) @@ -2414,7 +2574,16 @@ void __fastcall TManagementScript::Connect(const UnicodeString Session, TScriptCommands::CheckParams(Options, false); } - assert(Data != NULL); + if (!Data->Name.IsEmpty() && (Batch != TScript::BatchOff)) + { + std::unique_ptr DataWithFingerprint(Data->Clone()); + DataWithFingerprint->LookupLastFingerprint(); + + PrintLine(LoadStr(SCRIPT_SITE_WARNING)); + PrintLine(L"open " + DataWithFingerprint->GenerateOpenCommandArgs()); + } + + DebugAssert(Data != NULL); if (!Data->CanLogin || DefaultsOnly) { @@ -2425,7 +2594,7 @@ void __fastcall TManagementScript::Connect(const UnicodeString Session, Data->HostName = Value; } - assert(Data->CanLogin); + DebugAssert(Data->CanLogin); } TTerminal * ATerminal = FTerminalList->NewTerminal(Data); @@ -2495,7 +2664,7 @@ void __fastcall TManagementScript::Connect(const UnicodeString Session, void __fastcall TManagementScript::DoClose(TTerminal * ATerminal) { int Index = FTerminalList->IndexOf(ATerminal); - assert(Index >= 0); + DebugAssert(Index >= 0); bool WasActiveTerminal = (FTerminal == ATerminal); @@ -2605,7 +2774,7 @@ void __fastcall TManagementScript::LPwdProc(TScriptProcParams * /*Parameters*/) //--------------------------------------------------------------------------- void __fastcall TManagementScript::LCdProc(TScriptProcParams * Parameters) { - assert(Parameters->ParamCount == 1); + DebugAssert(Parameters->ParamCount == 1); DoChangeLocalDirectory(Parameters->Param[1]); PrintLine(GetCurrentDir()); diff --git a/source/core/Script.h b/source/core/Script.h index d9d68fc4..1013442d 100644 --- a/source/core/Script.h +++ b/source/core/Script.h @@ -53,7 +53,7 @@ class TScript virtual __fastcall ~TScript(); void __fastcall Command(UnicodeString Cmd); - void __fastcall Log(TLogLineType Type, AnsiString Str); + void __fastcall Log(TLogLineType Type, UnicodeString Str); void __fastcall PrintLine(const UnicodeString Str); void __fastcall StartInteractive(); @@ -115,12 +115,14 @@ class TScript fltDefault = 0x00, fltDirectories = 0x01, fltQueryServer = 0x02, - fltMask = 0x04 + fltMask = 0x04, + fltLatest = 0x08 }; TStrings * __fastcall CreateFileList(TScriptProcParams * Parameters, int Start, int End, TFileListType ListType = fltDefault); TStrings * __fastcall CreateLocalFileList(TScriptProcParams * Parameters, int Start, int End, TFileListType ListType); + void __fastcall FreeFiles(TStrings * FileList); void __fastcall FreeFileList(TStrings * FileList); void __fastcall LogPendingLines(TTerminal * ATerminal); @@ -173,6 +175,7 @@ class TScript bool __fastcall HasNonDefaultCopyParams(); void __fastcall CheckDefaultSynchronizeParams(); void __fastcall NotSupported(); + void __fastcall CheckMultiFilesToOne(TStrings * FileList, const UnicodeString & Target, bool Unix); void __fastcall LogOption(const UnicodeString & LogStr); }; //--------------------------------------------------------------------------- @@ -189,6 +192,8 @@ class TManagementScript : public TScript void __fastcall Connect(const UnicodeString Session, TOptions * Options, bool CheckParams); void __fastcall ReflectSettings(); + void __fastcall MaskPasswordInCommandLine(UnicodeString & Command, bool Recurse); + __property TScriptInputEvent OnInput = { read = FOnInput, write = FOnInput }; __property TScriptQueryCancelEvent OnQueryCancel = { read = FOnQueryCancel, write = FOnQueryCancel }; __property TPromptUserEvent OnTerminalPromptUser = { read = FOnTerminalPromptUser, write = FOnTerminalPromptUser }; @@ -238,6 +243,8 @@ class TManagementScript : public TScript inline void __fastcall ShowPendingProgress(); virtual UnicodeString __fastcall GetLogCmd(const UnicodeString & FullCommand, const UnicodeString & Command, const UnicodeString & Params); + UnicodeString __fastcall MaskPasswordInCommand(const UnicodeString & FullCommand, + const UnicodeString & Command); void __fastcall ExitProc(TScriptProcParams * Parameters); void __fastcall OpenProc(TScriptProcParams * Parameters); diff --git a/source/core/SecureShell.cpp b/source/core/SecureShell.cpp index 061efd10..25a4b7dc 100644 --- a/source/core/SecureShell.cpp +++ b/source/core/SecureShell.cpp @@ -27,19 +27,6 @@ struct TPuttyTranslation UnicodeString HelpKeyword; }; //--------------------------------------------------------------------------- -char * __fastcall AnsiStrNew(const wchar_t * S) -{ - AnsiString Buf = S; - char * Result = new char[Buf.Length() + 1]; - memcpy(Result, Buf.c_str(), Buf.Length() + 1); - return Result; -} -//--------------------------------------------------------------------------- -void __fastcall AnsiStrDispose(char * S) -{ - delete [] S; -} -//--------------------------------------------------------------------------- __fastcall TSecureShell::TSecureShell(TSessionUI* UI, TSessionData * SessionData, TSessionLog * Log, TConfiguration * Configuration) { @@ -67,7 +54,7 @@ __fastcall TSecureShell::TSecureShell(TSessionUI* UI, //--------------------------------------------------------------------------- __fastcall TSecureShell::~TSecureShell() { - assert(FWaiting == 0); + DebugAssert(FWaiting == 0); Active = false; ResetConnection(); CloseHandle(FSocketEvent); @@ -139,17 +126,17 @@ Conf * __fastcall TSecureShell::StoreToConfig(TSessionData * Data, bool Simple) { Conf * conf = conf_new(); - assert((asOn == FORCE_ON) && (asOff == FORCE_OFF) && (asAuto == AUTO)); + DebugAssert((asOn == FORCE_ON) && (asOff == FORCE_OFF) && (asAuto == AUTO)); #define CONF_ssh_cipherlist_MAX CIPHER_MAX #define CONF_DEF_INT_NONE(KEY) conf_set_int(conf, KEY, 0); #define CONF_DEF_STR_NONE(KEY) conf_set_str(conf, KEY, ""); // noop, used only for these and we set the first three explicitly below and latter two are not used in our code - #define CONF_DEF_INT_INT(KEY) assert((KEY == CONF_ssh_cipherlist) || (KEY == CONF_ssh_kexlist) || (KEY == CONF_ssh_gsslist) || (KEY == CONF_colours) || (KEY == CONF_wordness)); + #define CONF_DEF_INT_INT(KEY) DebugAssert((KEY == CONF_ssh_cipherlist) || (KEY == CONF_ssh_kexlist) || (KEY == CONF_ssh_gsslist) || (KEY == CONF_colours) || (KEY == CONF_wordness)); // noop, used only for these three and they all can handle undef value - #define CONF_DEF_STR_STR(KEY) assert((KEY == CONF_ttymodes) || (KEY == CONF_portfwd) || (KEY == CONF_environmt)); + #define CONF_DEF_STR_STR(KEY) DebugAssert((KEY == CONF_ttymodes) || (KEY == CONF_portfwd) || (KEY == CONF_environmt) || (KEY == CONF_ssh_manual_hostkeys)); // noop, not used in our code - #define CONF_DEF_FONT_NONE(KEY) assert((KEY == CONF_font) || (KEY == CONF_boldfont) || (KEY == CONF_widefont) || (KEY == CONF_wideboldfont)); + #define CONF_DEF_FONT_NONE(KEY) DebugAssert((KEY == CONF_font) || (KEY == CONF_boldfont) || (KEY == CONF_widefont) || (KEY == CONF_wideboldfont)); #define CONF_DEF_FILENAME_NONE(KEY) \ { \ Filename * filename = filename_from_str(""); \ @@ -168,7 +155,7 @@ Conf * __fastcall TSecureShell::StoreToConfig(TSessionData * Data, bool Simple) // user-configurable settings conf_set_str(conf, CONF_host, AnsiString(Data->HostNameExpanded).c_str()); - conf_set_str(conf, CONF_username, AnsiString(Data->UserNameExpanded).c_str()); + conf_set_str(conf, CONF_username, UTF8String(Data->UserNameExpanded).c_str()); conf_set_int(conf, CONF_port, Data->PortNumber); conf_set_int(conf, CONF_protocol, PROT_SSH); // always set 0, as we will handle keepalives ourselves to avoid @@ -191,7 +178,7 @@ Conf * __fastcall TSecureShell::StoreToConfig(TSessionData * Data, bool Simple) case cipAES: pcipher = CIPHER_AES; break; case cipDES: pcipher = CIPHER_DES; break; case cipArcfour: pcipher = CIPHER_ARCFOUR; break; - default: FAIL; + default: DebugFail(); } conf_set_int_int(conf, CONF_ssh_cipherlist, c, pcipher); } @@ -205,13 +192,14 @@ Conf * __fastcall TSecureShell::StoreToConfig(TSessionData * Data, bool Simple) case kexDHGroup14: pkex = KEX_DHGROUP14; break; case kexDHGEx: pkex = KEX_DHGEX; break; case kexRSA: pkex = KEX_RSA; break; - default: FAIL; + default: DebugFail(); } conf_set_int_int(conf, CONF_ssh_kexlist, k, pkex); } UnicodeString SPublicKeyFile = Data->PublicKeyFile; if (SPublicKeyFile.IsEmpty()) SPublicKeyFile = Configuration->DefaultKeyFile; + // StripPathQuotes should not be needed as we do not feed quotes anymore SPublicKeyFile = StripPathQuotes(ExpandEnvironmentVariables(SPublicKeyFile)); Filename * KeyFileFileName = filename_from_str(UTF8String(SPublicKeyFile).c_str()); conf_set_filename(conf, CONF_keyfile, KeyFileFileName); @@ -229,8 +217,8 @@ Conf * __fastcall TSecureShell::StoreToConfig(TSessionData * Data, bool Simple) conf_set_int(conf, CONF_proxy_type, Data->ProxyMethod); conf_set_str(conf, CONF_proxy_host, AnsiString(Data->ProxyHost).c_str()); conf_set_int(conf, CONF_proxy_port, Data->ProxyPort); - conf_set_str(conf, CONF_proxy_username, AnsiString(Data->ProxyUsername).c_str()); - conf_set_str(conf, CONF_proxy_password, AnsiString(Data->ProxyPassword).c_str()); + conf_set_str(conf, CONF_proxy_username, UTF8String(Data->ProxyUsername).c_str()); + conf_set_str(conf, CONF_proxy_password, UTF8String(Data->ProxyPassword).c_str()); if (Data->ProxyMethod == pmCmd) { conf_set_str(conf, CONF_proxy_telnet_command, AnsiString(Data->ProxyLocalCommand).c_str()); @@ -257,7 +245,7 @@ Conf * __fastcall TSecureShell::StoreToConfig(TSessionData * Data, bool Simple) if (!Data->TunnelPortFwd.IsEmpty()) { - assert(!Simple); + DebugAssert(!Simple); UnicodeString TunnelPortFwd = Data->TunnelPortFwd; while (!TunnelPortFwd.IsEmpty()) { @@ -272,7 +260,7 @@ Conf * __fastcall TSecureShell::StoreToConfig(TSessionData * Data, bool Simple) } else { - assert(Simple); + DebugAssert(Simple); conf_set_int(conf, CONF_ssh_simple, Data->SshSimple && Simple); if (Data->FSProtocol == fsSCPonly) @@ -415,7 +403,7 @@ void __fastcall TSecureShell::Open() ResetSessionInfo(); - assert(!FSessionInfo.SshImplementation.IsEmpty()); + DebugAssert(!FSessionInfo.SshImplementation.IsEmpty()); FOpened = true; UnicodeString SshImplementation = GetSessionInfo().SshImplementation; @@ -441,6 +429,10 @@ void __fastcall TSecureShell::Open() { FSshImplementation = sshiTitan; } + else if (ContainsText(FSessionInfo.SshImplementation, L"OpenVMS")) + { + FSshImplementation = sshiOpenVMS; + } else if (ContainsText(FSessionInfo.SshImplementation, L"CerberusFTPServer")) { FSshImplementation = sshiCerberus; @@ -538,7 +530,7 @@ void __fastcall TSecureShell::Init() } // unless this is tunnel session, it must be safe to send now - assert(FBackend->sendok(FBackendHandle) || !FSessionData->TunnelPortFwd.IsEmpty()); + DebugAssert(FBackend->sendok(FBackendHandle) || !FSessionData->TunnelPortFwd.IsEmpty()); } catch(Exception & E) { @@ -571,11 +563,11 @@ UnicodeString __fastcall TSecureShell::ConvertFromPutty(const char * Str, int Le if ((Length >= BomLength) && (strncmp(Str, MPEXT_BOM, BomLength) == 0)) { - return UnicodeString(UTF8String(Str + BomLength, Length - BomLength)); + return UTF8ToString(Str + BomLength, Length - BomLength); } else { - return UnicodeString(AnsiString(Str, Length)); + return AnsiToString(Str, Length); } } //--------------------------------------------------------------------------- @@ -611,16 +603,8 @@ void __fastcall TSecureShell::PuttyLogEvent(const char * AStr) LogEvent(Str); } //--------------------------------------------------------------------------- -bool __fastcall TSecureShell::PromptUser(bool /*ToServer*/, - UnicodeString AName, bool /*NameRequired*/, - UnicodeString Instructions, bool InstructionsRequired, - TStrings * Prompts, TStrings * Results) +TPromptKind __fastcall TSecureShell::IdentifyPromptKind(UnicodeString & Name) { - // there can be zero prompts! - - assert(Results->Count == Prompts->Count); - - TPromptKind PromptKind; // beware of changing order static const TPuttyTranslation NameTranslation[] = { { L"SSH login name", USERNAME_TITLE }, @@ -633,35 +617,83 @@ bool __fastcall TSecureShell::PromptUser(bool /*ToServer*/, { L"New SSH password", NEW_PASSWORD_TITLE }, }; - UnicodeString Name = AName; int Index = TranslatePuttyMessage(NameTranslation, LENOF(NameTranslation), Name); + TPromptKind PromptKind; + if (Index == 0) // username + { + PromptKind = pkUserName; + } + else if (Index == 1) // passphrase + { + PromptKind = pkPassphrase; + } + else if (Index == 2) // TIS + { + PromptKind = pkTIS; + } + else if (Index == 3) // CryptoCard + { + PromptKind = pkCryptoCard; + } + else if ((Index == 4) || (Index == 5)) + { + PromptKind = pkKeybInteractive; + } + else if (Index == 6) + { + PromptKind = pkPassword; + } + else if (Index == 7) + { + PromptKind = pkNewPassword; + } + else + { + PromptKind = pkPrompt; + DebugFail(); + } + + return PromptKind; +} + +//--------------------------------------------------------------------------- +bool __fastcall TSecureShell::PromptUser(bool /*ToServer*/, + UnicodeString AName, bool /*NameRequired*/, + UnicodeString Instructions, bool InstructionsRequired, + TStrings * Prompts, TStrings * Results) +{ + // there can be zero prompts! + + DebugAssert(Results->Count == Prompts->Count); + + UnicodeString Name = AName; + TPromptKind PromptKind = IdentifyPromptKind(Name); + const TPuttyTranslation * InstructionTranslation = NULL; const TPuttyTranslation * PromptTranslation = NULL; size_t PromptTranslationCount = 1; UnicodeString PromptDesc; - if (Index == 0) // username + if (PromptKind == pkUserName) { static const TPuttyTranslation UsernamePromptTranslation[] = { { L"login as: ", USERNAME_PROMPT2 }, }; PromptTranslation = UsernamePromptTranslation; - PromptKind = pkUserName; PromptDesc = L"username"; } - else if (Index == 1) // passphrase + else if (PromptKind == pkPassphrase) { static const TPuttyTranslation PassphrasePromptTranslation[] = { { L"Passphrase for key \"%\": ", PROMPT_KEY_PASSPHRASE }, }; PromptTranslation = PassphrasePromptTranslation; - PromptKind = pkPassphrase; PromptDesc = L"passphrase"; } - else if (Index == 2) // TIS + else if (PromptKind == pkTIS) { static const TPuttyTranslation TISInstructionTranslation[] = { { L"Using TIS authentication.%", TIS_INSTRUCTION }, @@ -672,10 +704,9 @@ bool __fastcall TSecureShell::PromptUser(bool /*ToServer*/, InstructionTranslation = TISInstructionTranslation; PromptTranslation = TISPromptTranslation; - PromptKind = pkTIS; PromptDesc = L"tis"; } - else if (Index == 3) // CryptoCard + else if (PromptKind == pkCryptoCard) { static const TPuttyTranslation CryptoCardInstructionTranslation[] = { { L"Using CryptoCard authentication.%", CRYPTOCARD_INSTRUCTION }, @@ -686,10 +717,9 @@ bool __fastcall TSecureShell::PromptUser(bool /*ToServer*/, InstructionTranslation = CryptoCardInstructionTranslation; PromptTranslation = CryptoCardPromptTranslation; - PromptKind = pkCryptoCard; PromptDesc = L"cryptocard"; } - else if ((Index == 4) || (Index == 5)) + else if (PromptKind == pkKeybInteractive) { static const TPuttyTranslation KeybInteractiveInstructionTranslation[] = { { L"Using keyboard-interactive authentication.%", KEYBINTER_INSTRUCTION }, @@ -702,17 +732,15 @@ bool __fastcall TSecureShell::PromptUser(bool /*ToServer*/, InstructionTranslation = KeybInteractiveInstructionTranslation; PromptTranslation = KeybInteractivePromptTranslation; - PromptKind = pkKeybInteractive; PromptDesc = L"keyboard interactive"; } - else if (Index == 6) + else if (PromptKind == pkPassword) { - assert(Prompts->Count == 1); + DebugAssert(Prompts->Count == 1); Prompts->Strings[0] = LoadStr(PASSWORD_PROMPT); - PromptKind = pkPassword; PromptDesc = L"password"; } - else if (Index == 7) + else if (PromptKind == pkNewPassword) { // Can be tested with WS_FTP server static const TPuttyTranslation NewPasswordPromptTranslation[] = { @@ -722,14 +750,12 @@ bool __fastcall TSecureShell::PromptUser(bool /*ToServer*/, }; PromptTranslation = NewPasswordPromptTranslation; PromptTranslationCount = LENOF(NewPasswordPromptTranslation); - PromptKind = pkNewPassword; PromptDesc = L"new password"; } else { - PromptKind = pkPrompt; PromptDesc = L"unknown"; - FAIL; + DebugFail(); } UnicodeString InstructionsLog = @@ -763,18 +789,7 @@ bool __fastcall TSecureShell::PromptUser(bool /*ToServer*/, } bool Result = false; - if (PromptKind == pkUserName) - { - if (FSessionData->AuthGSSAPI) - { - // use empty username if no username was filled on login dialog - // and GSSAPI auth is enabled, hence there's chance that the server can - // deduce the username otherwise - Results->Strings[0] = L""; - Result = true; - } - } - else if ((PromptKind == pkTIS) || (PromptKind == pkCryptoCard) || + if ((PromptKind == pkTIS) || (PromptKind == pkCryptoCard) || (PromptKind == pkKeybInteractive)) { if (FSessionData->AuthKIPassword && !FSessionData->Password.IsEmpty() && @@ -877,14 +892,14 @@ void __fastcall TSecureShell::CWrite(const char * Data, int Length) //--------------------------------------------------------------------------- void __fastcall TSecureShell::RegisterReceiveHandler(TNotifyEvent Handler) { - assert(FOnReceive == NULL); + DebugAssert(FOnReceive == NULL); FOnReceive = Handler; } //--------------------------------------------------------------------------- void __fastcall TSecureShell::UnregisterReceiveHandler(TNotifyEvent Handler) { - assert(FOnReceive == Handler); - USEDPARAM(Handler); + DebugAssert(FOnReceive == Handler); + DebugUsedParam(Handler); FOnReceive = NULL; } //--------------------------------------------------------------------------- @@ -1194,7 +1209,7 @@ void __fastcall TSecureShell::DispatchSendBuffer(int BufSize) break; default: - FAIL; + DebugFail(); // fallthru case qaAbort: @@ -1307,8 +1322,8 @@ int __fastcall TSecureShell::TranslateAuthenticationMessage( { L"Wrong passphrase.", AUTH_TRANSL_WRONG_PASSPHRASE }, { L"Access denied", AUTH_TRANSL_ACCESS_DENIED }, { L"Trying public key authentication.", AUTH_TRANSL_TRY_PUBLIC_KEY }, - { L"Server refused our public key.", AUTH_TRANSL_KEY_REFUSED }, - { L"Server refused our key", AUTH_TRANSL_KEY_REFUSED } + { L"Server refused our public key.", AUTH_TRANSL_KEY_REFUSED, HELP_AUTH_TRANSL_KEY_REFUSED }, // help mapping probably never used + { L"Server refused our key", AUTH_TRANSL_KEY_REFUSED, HELP_AUTH_TRANSL_KEY_REFUSED } }; int Result = TranslatePuttyMessage(Translation, LENOF(Translation), Message, HelpKeyword); @@ -1472,8 +1487,8 @@ void __fastcall TSecureShell::UpdateSocket(SOCKET value, bool Startup) } else { - assert(value); - assert((FActive && (FSocket == value)) || (!FActive && Startup)); + DebugAssert(value); + DebugAssert((FActive && (FSocket == value)) || (!FActive && Startup)); // filter our "local proxy" connection, which have no socket if (value != INVALID_SOCKET) @@ -1482,7 +1497,7 @@ void __fastcall TSecureShell::UpdateSocket(SOCKET value, bool Startup) } else { - assert(FSessionData->ProxyMethod == pmCmd); + DebugAssert(FSessionData->ProxyMethod == pmCmd); } if (Startup) @@ -1556,7 +1571,7 @@ void __fastcall TSecureShell::Discard() void __fastcall TSecureShell::Close() { LogEvent(L"Closing connection."); - assert(FActive); + DebugAssert(FActive); // this is particularly necessary when using local proxy command // (e.g. plink), otherwise it hangs in sk_localproxy_close @@ -1667,7 +1682,7 @@ void __fastcall TSecureShell::WaitForData() IncomingData = EventSelectLoop(FSessionData->Timeout * MSecsPerSec, true, NULL); if (!IncomingData) { - assert(FWaitingForData == 0); + DebugAssert(FWaitingForData == 0); TAutoNestingCounter NestingCounter(FWaitingForData); WSANETWORKEVENTS Events; @@ -1691,7 +1706,7 @@ void __fastcall TSecureShell::WaitForData() break; default: - FAIL; + DebugFail(); // fallthru case qaAbort: @@ -1982,7 +1997,7 @@ TCipher __fastcall TSecureShell::FuncToSsh1Cipher(const void * Cipher) const ssh_cipher *CipherFuncs[] = {&ssh_3des, &ssh_des, &ssh_blowfish_ssh1}; const TCipher TCiphers[] = {cip3DES, cipDES, cipBlowfish}; - assert(LENOF(CipherFuncs) == LENOF(TCiphers)); + DebugAssert(LENOF(CipherFuncs) == LENOF(TCiphers)); TCipher Result = cipWarn; for (unsigned int Index = 0; Index < LENOF(TCiphers); Index++) @@ -1993,7 +2008,7 @@ TCipher __fastcall TSecureShell::FuncToSsh1Cipher(const void * Cipher) } } - assert(Result != cipWarn); + DebugAssert(Result != cipWarn); return Result; } //--------------------------------------------------------------------------- @@ -2002,7 +2017,7 @@ TCipher __fastcall TSecureShell::FuncToSsh2Cipher(const void * Cipher) const ssh2_ciphers *CipherFuncs[] = {&ssh2_3des, &ssh2_des, &ssh2_aes, &ssh2_blowfish, &ssh2_arcfour}; const TCipher TCiphers[] = {cip3DES, cipDES, cipAES, cipBlowfish, cipArcfour}; - assert(LENOF(CipherFuncs) == LENOF(TCiphers)); + DebugAssert(LENOF(CipherFuncs) == LENOF(TCiphers)); TCipher Result = cipWarn; for (unsigned int C = 0; C < LENOF(TCiphers); C++) @@ -2016,7 +2031,7 @@ TCipher __fastcall TSecureShell::FuncToSsh2Cipher(const void * Cipher) } } - assert(Result != cipWarn); + DebugAssert(Result != cipWarn); return Result; } //--------------------------------------------------------------------------- @@ -2053,7 +2068,7 @@ void __fastcall TSecureShell::VerifyHostKey(UnicodeString Host, int Port, GotHostKey(); wchar_t Delimiter = L';'; - assert(KeyStr.Pos(Delimiter) == 0); + DebugAssert(KeyStr.Pos(Delimiter) == 0); if (FSessionData->Tunnel) { @@ -2072,7 +2087,8 @@ void __fastcall TSecureShell::VerifyHostKey(UnicodeString Host, int Port, if (retrieve_host_key(AnsiString(Host).c_str(), Port, AnsiString(KeyType).c_str(), AnsiStoredKeys.c_str(), AnsiStoredKeys.Length()) == 0) { - StoredKeys = AnsiStoredKeys.c_str(); + PackStr(AnsiStoredKeys); + StoredKeys = UnicodeString(AnsiStoredKeys); UnicodeString Buf = StoredKeys; while (!Result && !Buf.IsEmpty()) { @@ -2139,8 +2155,16 @@ void __fastcall TSecureShell::VerifyHostKey(UnicodeString Host, int Port, { Verified = false; } + // no point offering manual verification, if we cannot persist the verified key + else if (!Configuration->Persistent && Configuration->Scripting) + { + Verified = false; + } else { + // We should not offer caching if !Configuration->Persistent, + // but as scripting mode is handled earlier and in GUI it hardly happens, + // it's a small issue. TClipboardHandler ClipboardHandler; ClipboardHandler.Text = Fingerprint; @@ -2168,18 +2192,24 @@ void __fastcall TSecureShell::VerifyHostKey(UnicodeString Host, int Port, Answers |= qaNo; } - TQueryParams Params; + TQueryParams Params(qpWaitInBatch); Params.NoBatchAnswers = qaYes | qaRetry | qaSkip | qaOK; Params.HelpKeyword = (Unknown ? HELP_UNKNOWN_KEY : HELP_DIFFERENT_KEY); Params.Aliases = Aliases; Params.AliasesCount = AliasesCount; - unsigned int R = FUI->QueryUser( - FMTLOAD((Unknown ? UNKNOWN_KEY3 : DIFFERENT_KEY4), (KeyType, Fingerprint)), - NULL, Answers, &Params, qtWarning); + + UnicodeString Message = FMTLOAD((Unknown ? UNKNOWN_KEY3 : DIFFERENT_KEY4), (KeyType, Fingerprint)); + if (Configuration->Scripting) + { + AddToList(Message, LoadStr(SCRIPTING_USE_HOSTKEY), L"\n"); + } + + unsigned int R = + FUI->QueryUser(Message, NULL, Answers, &Params, qtWarning); switch (R) { case qaOK: - assert(!Unknown); + DebugAssert(!Unknown); KeyStr = (StoredKeys + Delimiter + KeyStr); // fall thru case qaYes: @@ -2201,8 +2231,20 @@ void __fastcall TSecureShell::VerifyHostKey(UnicodeString Host, int Port, { Configuration->Usage->Inc(L"HostNotVerified"); - UnicodeString Message = - ConfiguredKeyNotMatch ? FMTLOAD(CONFIGURED_KEY_NOT_MATCH, (FSessionData->HostKey)) : LoadStr(KEY_NOT_VERIFIED); + UnicodeString Message; + if (ConfiguredKeyNotMatch) + { + Message = FMTLOAD(CONFIGURED_KEY_NOT_MATCH, (FSessionData->HostKey)); + } + else if (!Configuration->Persistent && Configuration->Scripting) + { + Message = LoadStr(HOSTKEY_NOT_CONFIGURED); + } + else + { + Message = LoadStr(KEY_NOT_VERIFIED); + } + Exception * E = new Exception(MainInstructions(Message)); try { @@ -2214,6 +2256,8 @@ void __fastcall TSecureShell::VerifyHostKey(UnicodeString Host, int Port, } } } + + Configuration->RememberLastFingerprint(FSessionData->SiteKey, SshFingerprintType, Fingerprint); } //--------------------------------------------------------------------------- void __fastcall TSecureShell::AskAlg(const UnicodeString AlgType, @@ -2243,7 +2287,7 @@ void __fastcall TSecureShell::AskAlg(const UnicodeString AlgType, } else { - FAIL; + DebugFail(); } Msg = FMTLOAD(CIPHER_BELOW_TRESHOLD, (LoadStr(CipherType), AlgName)); @@ -2309,6 +2353,10 @@ void __fastcall TSecureShell::CollectUsage() { Configuration->Usage->Inc(L"OpenedSessionsSSHTitan"); } + else if (SshImplementation == sshiOpenVMS) + { + Configuration->Usage->Inc(L"OpenedSessionsSSHOpenVMS"); + } else if (ContainsText(FSessionInfo.SshImplementation, L"Serv-U")) { Configuration->Usage->Inc(L"OpenedSessionsSSHServU"); @@ -2344,10 +2392,6 @@ void __fastcall TSecureShell::CollectUsage() { Configuration->Usage->Inc(L"OpenedSessionsSSHApache"); } - else if (ContainsText(FSessionInfo.SshImplementation, L"OpenVMS")) - { - Configuration->Usage->Inc(L"OpenedSessionsSSHOpenVMS"); - } // SSH-2.0-Syncplify_Me_Server else if (ContainsText(FSessionInfo.SshImplementation, L"Syncplify")) { diff --git a/source/core/SecureShell.h b/source/core/SecureShell.h index 47ec18f7..7284f970 100644 --- a/source/core/SecureShell.h +++ b/source/core/SecureShell.h @@ -142,6 +142,7 @@ friend class TPoolForDataEvent; void __fastcall UpdateSocket(SOCKET value, bool Startup); void __fastcall UpdatePortFwdSocket(SOCKET value, bool Startup); void __fastcall PuttyFatalError(UnicodeString Error); + TPromptKind __fastcall IdentifyPromptKind(UnicodeString & Name); bool __fastcall PromptUser(bool ToServer, UnicodeString AName, bool NameRequired, UnicodeString Instructions, bool InstructionsRequired, diff --git a/source/core/Security.cpp b/source/core/Security.cpp index 936eed2e..da2de94b 100644 --- a/source/core/Security.cpp +++ b/source/core/Security.cpp @@ -97,7 +97,7 @@ bool GetExternalEncryptedPassword(RawByteString Encrypted, RawByteString & Passw (SimpleDecryptNextChar(Encrypted) == PWALG_SIMPLE_EXTERNAL); if (Result) { - Password = HexToBytes(UnicodeString(UTF8String(Encrypted.c_str(), Encrypted.Length()))); + Password = HexToBytes(UTF8ToString(Encrypted)); } return Result; } diff --git a/source/core/SessionData.cpp b/source/core/SessionData.cpp index cdf44d7e..c44b8202 100644 --- a/source/core/SessionData.cpp +++ b/source/core/SessionData.cpp @@ -19,11 +19,12 @@ //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- +const wchar_t * PingTypeNames = L"Off;Null;Dummy"; +const wchar_t * ProxyMethodNames = L"None;SOCKS4;SOCKS5;HTTP;Telnet;Cmd"; const wchar_t * DefaultName = L"Default Settings"; const wchar_t CipherNames[CIPHER_COUNT][10] = {L"WARN", L"3des", L"blowfish", L"aes", L"des", L"arcfour"}; const wchar_t KexNames[KEX_COUNT][20] = {L"WARN", L"dh-group1-sha1", L"dh-group14-sha1", L"dh-gex-sha1", L"rsa" }; const wchar_t SshProtList[][10] = {L"1 only", L"1", L"2", L"2 only"}; -const wchar_t ProxyMethodList[][10] = {L"none", L"SOCKS4", L"SOCKS5", L"HTTP", L"Telnet", L"Cmd" }; const TCipher DefaultCipherList[CIPHER_COUNT] = { cipAES, cipBlowfish, cip3DES, cipWarn, cipArcfour, cipDES }; const TKex DefaultKexList[KEX_COUNT] = @@ -45,8 +46,10 @@ const UnicodeString SftpProtocol(L"sftp"); const UnicodeString ScpProtocol(L"scp"); const UnicodeString FtpProtocol(L"ftp"); const UnicodeString FtpsProtocol(L"ftps"); +const UnicodeString FtpesProtocol(L"ftpes"); const UnicodeString WebDAVProtocol(L"http"); const UnicodeString WebDAVSProtocol(L"https"); +const UnicodeString SshProtocol(L"ssh"); const UnicodeString ProtocolSeparator(L"://"); const UnicodeString WinSCPProtocolPrefix(L"winscp-"); const wchar_t UrlParamSeparator = L';'; @@ -76,7 +79,7 @@ int __fastcall TSessionData::Compare(TNamedObject * Other) int Result; // To avoid using CompareLogicalText on hex names of sessions in workspace. // The session 000A would be sorted before 0001. - if (IsWorkspace && NOT_NULL(dynamic_cast(Other))->IsWorkspace) + if (IsWorkspace && DebugNotNull(dynamic_cast(Other))->IsWorkspace) { Result = CompareText(Name, Other->Name); } @@ -87,6 +90,13 @@ int __fastcall TSessionData::Compare(TNamedObject * Other) return Result; } //--------------------------------------------------------------------- +TSessionData * __fastcall TSessionData::Clone() +{ + std::unique_ptr Data(new TSessionData(L"")); + Data->Assign(this); + return Data.release(); +} +//--------------------------------------------------------------------- void __fastcall TSessionData::Default() { HostName = L""; @@ -119,7 +129,7 @@ void __fastcall TSessionData::Default() } PublicKeyFile = L""; Passphrase = L""; - FPuttyProtocol = PuttySshProtocol; + FPuttyProtocol = L""; TcpNoDelay = false; SendBuf = DefaultSendBuf; SshSimple = true; @@ -169,6 +179,7 @@ void __fastcall TSessionData::Default() ReturnVar = L""; LookupUserGroups = asAuto; EOLType = eolLF; + TrimVMSVersions = false; Shell = L""; //default shell ReturnVar = L""; ClearAliases = true; @@ -183,8 +194,8 @@ void __fastcall TSessionData::Default() // SFTP SftpServer = L""; - SFTPDownloadQueue = 4; - SFTPUploadQueue = 4; + SFTPDownloadQueue = 32; + SFTPUploadQueue = 32; SFTPListingQueue = 2; SFTPMaxVersion = ::SFTPMaxVersion; SFTPMaxPacketSize = 0; @@ -218,6 +229,7 @@ void __fastcall TSessionData::Default() FtpListAll = asAuto; FtpHost = asAuto; SslSessionReuse = true; + TlsCertificateFile = L""; FtpProxyLogonType = 0; // none @@ -288,6 +300,7 @@ void __fastcall TSessionData::NonPersistant() PROPERTY(ReturnVar); \ PROPERTY(LookupUserGroups); \ PROPERTY(EOLType); \ + PROPERTY(TrimVMSVersions); \ PROPERTY(Shell); \ PROPERTY(ClearAliases); \ PROPERTY(Scp1Compatibility); \ @@ -359,6 +372,7 @@ void __fastcall TSessionData::NonPersistant() PROPERTY(FtpListAll); \ PROPERTY(FtpHost); \ PROPERTY(SslSessionReuse); \ + PROPERTY(TlsCertificateFile); \ \ PROPERTY(FtpProxyLogonType); \ \ @@ -420,6 +434,13 @@ void __fastcall TSessionData::CopyStateData(TSessionData * SourceData) Color = SourceData->Color; } //--------------------------------------------------------------------- +void __fastcall TSessionData::CopyNonCoreData(TSessionData * SourceData) +{ + CopyStateData(SourceData); + UpdateDirectories = SourceData->UpdateDirectories; + Note = SourceData->Note; +} +//--------------------------------------------------------------------- bool __fastcall TSessionData::IsSame(const TSessionData * Default, bool AdvancedOnly, TStrings * DifferentProperties) { bool Result = true; @@ -557,6 +578,7 @@ void __fastcall TSessionData::DoLoad(THierarchicalStorage * Storage, bool & Rewr ReturnVar = Storage->ReadString(L"ReturnVar", ReturnVar); LookupUserGroups = TAutoSwitch(Storage->ReadInteger(L"LookupUserGroups2", LookupUserGroups)); EOLType = (TEOLType)Storage->ReadInteger(L"EOLType", EOLType); + TrimVMSVersions = Storage->ReadBool(L"TrimVMSVersions", TrimVMSVersions); NotUtf = TAutoSwitch(Storage->ReadInteger(L"Utf", Storage->ReadInteger(L"SFTPUtfBug", NotUtf))); TcpNoDelay = Storage->ReadBool(L"TcpNoDelay", TcpNoDelay); @@ -662,6 +684,7 @@ void __fastcall TSessionData::DoLoad(THierarchicalStorage * Storage, bool & Rewr FtpListAll = TAutoSwitch(Storage->ReadInteger(L"FtpListAll", FtpListAll)); FtpHost = TAutoSwitch(Storage->ReadInteger(L"FtpHost", FtpHost)); SslSessionReuse = Storage->ReadBool(L"SslSessionReuse", SslSessionReuse); + TlsCertificateFile = Storage->ReadString(L"TlsCertificateFile", TlsCertificateFile); FtpProxyLogonType = Storage->ReadInteger(L"FtpProxyLogonType", FtpProxyLogonType); @@ -727,218 +750,234 @@ void __fastcall TSessionData::Load(THierarchicalStorage * Storage) FSource = ssStored; } //--------------------------------------------------------------------- -void __fastcall TSessionData::Save(THierarchicalStorage * Storage, - bool PuttyExport, const TSessionData * Default) +void __fastcall TSessionData::DoSave(THierarchicalStorage * Storage, + bool PuttyExport, const TSessionData * Default, bool DoNotEncryptPasswords) { - if (Storage->OpenSubKey(InternalStorageKey, true)) - { - #define WRITE_DATA_EX(TYPE, NAME, PROPERTY, CONV) \ - if ((Default != NULL) && (CONV(Default->PROPERTY) == CONV(PROPERTY))) \ - { \ - Storage->DeleteValue(NAME); \ - } \ - else \ - { \ - Storage->Write ## TYPE(NAME, CONV(PROPERTY)); \ - } - #define WRITE_DATA_CONV(TYPE, NAME, PROPERTY) WRITE_DATA_EX(TYPE, NAME, PROPERTY, WRITE_DATA_CONV_FUNC) - #define WRITE_DATA(TYPE, PROPERTY) WRITE_DATA_EX(TYPE, TEXT(#PROPERTY), PROPERTY, ) - - WRITE_DATA(String, HostName); - WRITE_DATA(Integer, PortNumber); - WRITE_DATA_EX(Integer, L"PingInterval", PingInterval / SecsPerMin, ); - WRITE_DATA_EX(Integer, L"PingIntervalSecs", PingInterval % SecsPerMin, ); - Storage->DeleteValue(L"PingIntervalSec"); // obsolete - WRITE_DATA(Integer, PingType); - WRITE_DATA(Integer, Timeout); - WRITE_DATA(Bool, TryAgent); - WRITE_DATA(Bool, AgentFwd); - WRITE_DATA(Bool, AuthTIS); - WRITE_DATA(Bool, AuthKI); - WRITE_DATA(Bool, AuthKIPassword); - WRITE_DATA(String, Note); - - WRITE_DATA(Bool, AuthGSSAPI); - WRITE_DATA(Bool, GSSAPIFwdTGT); - WRITE_DATA(String, GSSAPIServerRealm); - Storage->DeleteValue(L"TryGSSKEX"); - Storage->DeleteValue(L"UserNameFromEnvironment"); - Storage->DeleteValue("GSSAPIServerChoosesUserName"); - Storage->DeleteValue(L"GSSAPITrustDNS"); - if (PuttyExport) - { - // duplicate kerberos setting with keys of the vintela quest putty - WRITE_DATA_EX(Bool, L"AuthSSPI", AuthGSSAPI, ); - WRITE_DATA_EX(Bool, L"SSPIFwdTGT", GSSAPIFwdTGT, ); - WRITE_DATA_EX(String, L"KerbPrincipal", GSSAPIServerRealm, ); - // duplicate kerberos setting with keys of the official putty - WRITE_DATA_EX(Bool, L"GssapiFwd", GSSAPIFwdTGT, ); - } - - WRITE_DATA(Bool, ChangeUsername); - WRITE_DATA(Bool, Compression); - WRITE_DATA(Integer, SshProt); - WRITE_DATA(Bool, Ssh2DES); - WRITE_DATA(Bool, SshNoUserAuth); - WRITE_DATA_EX(String, L"Cipher", CipherList, ); - WRITE_DATA_EX(String, L"KEX", KexList, ); - WRITE_DATA(Integer, AddressFamily); - WRITE_DATA_EX(String, L"RekeyBytes", RekeyData, ); - WRITE_DATA(Integer, RekeyTime); - - WRITE_DATA(Bool, TcpNoDelay); - - if (PuttyExport) - { - WRITE_DATA(StringRaw, UserName); - WRITE_DATA(StringRaw, PublicKeyFile); + #define WRITE_DATA_EX(TYPE, NAME, PROPERTY, CONV) \ + if ((Default != NULL) && (CONV(Default->PROPERTY) == CONV(PROPERTY))) \ + { \ + Storage->DeleteValue(NAME); \ + } \ + else \ + { \ + Storage->Write ## TYPE(NAME, CONV(PROPERTY)); \ } - else - { - WRITE_DATA(String, UserName); - WRITE_DATA(String, PublicKeyFile); - WRITE_DATA(Integer, FSProtocol); - WRITE_DATA(String, LocalDirectory); - WRITE_DATA(String, RemoteDirectory); - WRITE_DATA(Bool, SynchronizeBrowsing); - WRITE_DATA(Bool, UpdateDirectories); - WRITE_DATA(Bool, CacheDirectories); - WRITE_DATA(Bool, CacheDirectoryChanges); - WRITE_DATA(Bool, PreserveDirectoryChanges); - - WRITE_DATA(Bool, ResolveSymlinks); - WRITE_DATA_EX(Integer, L"ConsiderDST", DSTMode, ); - WRITE_DATA(Bool, LockInHome); - // Special is never stored (if it would, login dialog must be modified not to - // duplicate Special parameter when Special session is loaded and then stored - // under different name) - // WRITE_DATA(Bool, Special); - WRITE_DATA(String, Shell); - WRITE_DATA(Bool, ClearAliases); - WRITE_DATA(Bool, UnsetNationalVars); - WRITE_DATA(String, ListingCommand); - WRITE_DATA(Bool, IgnoreLsWarnings); - WRITE_DATA(Integer, SCPLsFullTime); - WRITE_DATA(Bool, Scp1Compatibility); - // TimeDifferenceAuto is valid for FTP protocol only. - // For other protocols it's typically true (default value), - // but ignored so TimeDifference is still taken into account (SCP only actually) - if (TimeDifferenceAuto && (FSProtocol == fsFTP)) - { - // Have to delete it as TimeDifferenceAuto is not saved when enabled, - // but the default is derived from value of TimeDifference. - Storage->DeleteValue(L"TimeDifference"); - } - else - { - WRITE_DATA(Float, TimeDifference); - } - WRITE_DATA(Bool, TimeDifferenceAuto); - WRITE_DATA(Bool, DeleteToRecycleBin); - WRITE_DATA(Bool, OverwrittenToRecycleBin); - WRITE_DATA(String, RecycleBinPath); - WRITE_DATA(String, PostLoginCommands); + #define WRITE_DATA_CONV(TYPE, NAME, PROPERTY) WRITE_DATA_EX(TYPE, NAME, PROPERTY, WRITE_DATA_CONV_FUNC) + #define WRITE_DATA(TYPE, PROPERTY) WRITE_DATA_EX(TYPE, TEXT(#PROPERTY), PROPERTY, ) + + WRITE_DATA(String, HostName); + WRITE_DATA(Integer, PortNumber); + WRITE_DATA_EX(Integer, L"PingInterval", PingInterval / SecsPerMin, ); + WRITE_DATA_EX(Integer, L"PingIntervalSecs", PingInterval % SecsPerMin, ); + Storage->DeleteValue(L"PingIntervalSec"); // obsolete + WRITE_DATA(Integer, PingType); + WRITE_DATA(Integer, Timeout); + WRITE_DATA(Bool, TryAgent); + WRITE_DATA(Bool, AgentFwd); + WRITE_DATA(Bool, AuthTIS); + WRITE_DATA(Bool, AuthKI); + WRITE_DATA(Bool, AuthKIPassword); + WRITE_DATA(String, Note); + + WRITE_DATA(Bool, AuthGSSAPI); + WRITE_DATA(Bool, GSSAPIFwdTGT); + WRITE_DATA(String, GSSAPIServerRealm); + Storage->DeleteValue(L"TryGSSKEX"); + Storage->DeleteValue(L"UserNameFromEnvironment"); + Storage->DeleteValue("GSSAPIServerChoosesUserName"); + Storage->DeleteValue(L"GSSAPITrustDNS"); + if (PuttyExport) + { + // duplicate kerberos setting with keys of the vintela quest putty + WRITE_DATA_EX(Bool, L"AuthSSPI", AuthGSSAPI, ); + WRITE_DATA_EX(Bool, L"SSPIFwdTGT", GSSAPIFwdTGT, ); + WRITE_DATA_EX(String, L"KerbPrincipal", GSSAPIServerRealm, ); + // duplicate kerberos setting with keys of the official putty + WRITE_DATA_EX(Bool, L"GssapiFwd", GSSAPIFwdTGT, ); + } - WRITE_DATA(String, ReturnVar); - WRITE_DATA_EX(Integer, L"LookupUserGroups2", LookupUserGroups, ); - WRITE_DATA(Integer, EOLType); - Storage->DeleteValue(L"SFTPUtfBug"); - WRITE_DATA_EX(Integer, L"Utf", NotUtf, ); - WRITE_DATA(Integer, SendBuf); - WRITE_DATA(Bool, SshSimple); - } + WRITE_DATA(Bool, ChangeUsername); + WRITE_DATA(Bool, Compression); + WRITE_DATA(Integer, SshProt); + WRITE_DATA(Bool, Ssh2DES); + WRITE_DATA(Bool, SshNoUserAuth); + WRITE_DATA_EX(String, L"Cipher", CipherList, ); + WRITE_DATA_EX(String, L"KEX", KexList, ); + WRITE_DATA(Integer, AddressFamily); + WRITE_DATA_EX(String, L"RekeyBytes", RekeyData, ); + WRITE_DATA(Integer, RekeyTime); - WRITE_DATA(Integer, ProxyMethod); - WRITE_DATA(String, ProxyHost); - WRITE_DATA(Integer, ProxyPort); - WRITE_DATA(String, ProxyUsername); - if (ProxyMethod == pmCmd) + WRITE_DATA(Bool, TcpNoDelay); + + if (PuttyExport) + { + WRITE_DATA(StringRaw, UserName); + WRITE_DATA(StringRaw, PublicKeyFile); + } + else + { + WRITE_DATA(String, UserName); + WRITE_DATA(String, PublicKeyFile); + WRITE_DATA(Integer, FSProtocol); + WRITE_DATA(String, LocalDirectory); + WRITE_DATA(String, RemoteDirectory); + WRITE_DATA(Bool, SynchronizeBrowsing); + WRITE_DATA(Bool, UpdateDirectories); + WRITE_DATA(Bool, CacheDirectories); + WRITE_DATA(Bool, CacheDirectoryChanges); + WRITE_DATA(Bool, PreserveDirectoryChanges); + + WRITE_DATA(Bool, ResolveSymlinks); + WRITE_DATA_EX(Integer, L"ConsiderDST", DSTMode, ); + WRITE_DATA(Bool, LockInHome); + // Special is never stored (if it would, login dialog must be modified not to + // duplicate Special parameter when Special session is loaded and then stored + // under different name) + // WRITE_DATA(Bool, Special); + WRITE_DATA(String, Shell); + WRITE_DATA(Bool, ClearAliases); + WRITE_DATA(Bool, UnsetNationalVars); + WRITE_DATA(String, ListingCommand); + WRITE_DATA(Bool, IgnoreLsWarnings); + WRITE_DATA(Integer, SCPLsFullTime); + WRITE_DATA(Bool, Scp1Compatibility); + // TimeDifferenceAuto is valid for FTP protocol only. + // For other protocols it's typically true (default value), + // but ignored so TimeDifference is still taken into account (SCP only actually) + if (TimeDifferenceAuto && (FSProtocol == fsFTP)) { - WRITE_DATA_EX(StringRaw, L"ProxyTelnetCommand", ProxyLocalCommand, ); + // Have to delete it as TimeDifferenceAuto is not saved when enabled, + // but the default is derived from value of TimeDifference. + Storage->DeleteValue(L"TimeDifference"); } else { - WRITE_DATA(StringRaw, ProxyTelnetCommand); + WRITE_DATA(Float, TimeDifference); } - #define WRITE_DATA_CONV_FUNC(X) (((X) + 2) % 3) - WRITE_DATA_CONV(Integer, L"ProxyDNS", ProxyDNS); - #undef WRITE_DATA_CONV_FUNC - WRITE_DATA(Bool, ProxyLocalhost); - - #define WRITE_DATA_CONV_FUNC(X) (2 - (X)) - #define WRITE_BUG(BUG) WRITE_DATA_CONV(Integer, L"Bug" #BUG, Bug[sb##BUG]); - WRITE_BUG(Ignore1); - WRITE_BUG(PlainPW1); - WRITE_BUG(RSA1); - WRITE_BUG(HMAC2); - WRITE_BUG(DeriveKey2); - WRITE_BUG(RSAPad2); - WRITE_BUG(PKSessID2); - WRITE_BUG(Rekey2); - WRITE_BUG(MaxPkt2); - WRITE_BUG(Ignore2); - WRITE_BUG(OldGex2); - WRITE_BUG(WinAdj); - #undef WRITE_BUG - #undef WRITE_DATA_CONV_FUNC - - Storage->DeleteValue(L"BuggyMAC"); - Storage->DeleteValue(L"AliasGroupList"); + WRITE_DATA(Bool, TimeDifferenceAuto); + WRITE_DATA(Bool, DeleteToRecycleBin); + WRITE_DATA(Bool, OverwrittenToRecycleBin); + WRITE_DATA(String, RecycleBinPath); + WRITE_DATA(String, PostLoginCommands); + + WRITE_DATA(String, ReturnVar); + WRITE_DATA_EX(Integer, L"LookupUserGroups2", LookupUserGroups, ); + WRITE_DATA(Integer, EOLType); + WRITE_DATA(Bool, TrimVMSVersions); + Storage->DeleteValue(L"SFTPUtfBug"); + WRITE_DATA_EX(Integer, L"Utf", NotUtf, ); + WRITE_DATA(Integer, SendBuf); + WRITE_DATA(Bool, SshSimple); + } + + WRITE_DATA(Integer, ProxyMethod); + WRITE_DATA(String, ProxyHost); + WRITE_DATA(Integer, ProxyPort); + WRITE_DATA(String, ProxyUsername); + if (ProxyMethod == pmCmd) + { + WRITE_DATA_EX(StringRaw, L"ProxyTelnetCommand", ProxyLocalCommand, ); + } + else + { + WRITE_DATA(StringRaw, ProxyTelnetCommand); + } + #define WRITE_DATA_CONV_FUNC(X) (((X) + 2) % 3) + WRITE_DATA_CONV(Integer, L"ProxyDNS", ProxyDNS); + #undef WRITE_DATA_CONV_FUNC + WRITE_DATA(Bool, ProxyLocalhost); + + #define WRITE_DATA_CONV_FUNC(X) (2 - (X)) + #define WRITE_BUG(BUG) WRITE_DATA_CONV(Integer, L"Bug" #BUG, Bug[sb##BUG]); + WRITE_BUG(Ignore1); + WRITE_BUG(PlainPW1); + WRITE_BUG(RSA1); + WRITE_BUG(HMAC2); + WRITE_BUG(DeriveKey2); + WRITE_BUG(RSAPad2); + WRITE_BUG(PKSessID2); + WRITE_BUG(Rekey2); + WRITE_BUG(MaxPkt2); + WRITE_BUG(Ignore2); + WRITE_BUG(OldGex2); + WRITE_BUG(WinAdj); + #undef WRITE_BUG + #undef WRITE_DATA_CONV_FUNC + + Storage->DeleteValue(L"BuggyMAC"); + Storage->DeleteValue(L"AliasGroupList"); - if (PuttyExport) - { - WRITE_DATA_EX(String, L"Protocol", PuttyProtocol, ); - } + if (PuttyExport) + { + WRITE_DATA_EX(String, L"Protocol", GetNormalizedPuttyProtocol(), ); + } - if (!PuttyExport) - { - WRITE_DATA(String, SftpServer); + if (!PuttyExport) + { + WRITE_DATA(String, SftpServer); - #define WRITE_SFTP_BUG(BUG) WRITE_DATA_EX(Integer, L"SFTP" #BUG "Bug", SFTPBug[sb##BUG], ); - WRITE_SFTP_BUG(Symlink); - WRITE_SFTP_BUG(SignedTS); - #undef WRITE_SFTP_BUG + #define WRITE_SFTP_BUG(BUG) WRITE_DATA_EX(Integer, L"SFTP" #BUG "Bug", SFTPBug[sb##BUG], ); + WRITE_SFTP_BUG(Symlink); + WRITE_SFTP_BUG(SignedTS); + #undef WRITE_SFTP_BUG - WRITE_DATA(Integer, SFTPMaxVersion); - WRITE_DATA(Integer, SFTPMaxPacketSize); - WRITE_DATA(Integer, SFTPDownloadQueue); - WRITE_DATA(Integer, SFTPUploadQueue); - WRITE_DATA(Integer, SFTPListingQueue); + WRITE_DATA(Integer, SFTPMaxVersion); + WRITE_DATA(Integer, SFTPMaxPacketSize); + WRITE_DATA(Integer, SFTPDownloadQueue); + WRITE_DATA(Integer, SFTPUploadQueue); + WRITE_DATA(Integer, SFTPListingQueue); - WRITE_DATA(Integer, Color); + WRITE_DATA(Integer, Color); - WRITE_DATA(Bool, Tunnel); - WRITE_DATA(String, TunnelHostName); - WRITE_DATA(Integer, TunnelPortNumber); - WRITE_DATA(String, TunnelUserName); - WRITE_DATA(String, TunnelPublicKeyFile); - WRITE_DATA(Integer, TunnelLocalPortNumber); + WRITE_DATA(Bool, Tunnel); + WRITE_DATA(String, TunnelHostName); + WRITE_DATA(Integer, TunnelPortNumber); + WRITE_DATA(String, TunnelUserName); + WRITE_DATA(String, TunnelPublicKeyFile); + WRITE_DATA(Integer, TunnelLocalPortNumber); - WRITE_DATA(Bool, FtpPasvMode); - WRITE_DATA_EX(Integer, L"FtpForcePasvIp2", FtpForcePasvIp, ); - WRITE_DATA(Integer, FtpUseMlsd); - WRITE_DATA(String, FtpAccount); - WRITE_DATA(Integer, FtpPingInterval); - WRITE_DATA(Integer, FtpPingType); - WRITE_DATA_EX(Integer, L"FtpTransferActiveImmediately2", FtpTransferActiveImmediately, ); - WRITE_DATA(Integer, Ftps); - WRITE_DATA(Integer, FtpListAll); - WRITE_DATA(Integer, FtpHost); - WRITE_DATA(Bool, SslSessionReuse); + WRITE_DATA(Bool, FtpPasvMode); + WRITE_DATA_EX(Integer, L"FtpForcePasvIp2", FtpForcePasvIp, ); + WRITE_DATA(Integer, FtpUseMlsd); + WRITE_DATA(String, FtpAccount); + WRITE_DATA(Integer, FtpPingInterval); + WRITE_DATA(Integer, FtpPingType); + WRITE_DATA_EX(Integer, L"FtpTransferActiveImmediately2", FtpTransferActiveImmediately, ); + WRITE_DATA(Integer, Ftps); + WRITE_DATA(Integer, FtpListAll); + WRITE_DATA(Integer, FtpHost); + WRITE_DATA(Bool, SslSessionReuse); + WRITE_DATA(String, TlsCertificateFile); - WRITE_DATA(Integer, FtpProxyLogonType); + WRITE_DATA(Integer, FtpProxyLogonType); - WRITE_DATA(Integer, MinTlsVersion); - WRITE_DATA(Integer, MaxTlsVersion); + WRITE_DATA(Integer, MinTlsVersion); + WRITE_DATA(Integer, MaxTlsVersion); - WRITE_DATA(Bool, IsWorkspace); - WRITE_DATA(String, Link); + WRITE_DATA(Bool, IsWorkspace); + WRITE_DATA(String, Link); - WRITE_DATA(String, CustomParam1); - WRITE_DATA(String, CustomParam2); - } + WRITE_DATA(String, CustomParam1); + WRITE_DATA(String, CustomParam2); + } - SavePasswords(Storage, PuttyExport); + SavePasswords(Storage, PuttyExport, DoNotEncryptPasswords); +} +//--------------------------------------------------------------------- +TStrings * __fastcall TSessionData::SaveToOptions(const TSessionData * Default) +{ + std::unique_ptr Options(new TStringList()); + std::unique_ptr OptionsStorage(new TOptionsStorage(Options.get(), true)); + DoSave(OptionsStorage.get(), false, Default, true); + return Options.release(); +} +//--------------------------------------------------------------------- +void __fastcall TSessionData::Save(THierarchicalStorage * Storage, + bool PuttyExport, const TSessionData * Default) +{ + if (Storage->OpenSubKey(InternalStorageKey, true)) + { + DoSave(Storage, PuttyExport, Default, false); Storage->CloseSubKey(); } @@ -1003,7 +1042,7 @@ void __fastcall TSessionData::ImportFromFilezilla(_di_IXMLNode Node, const Unico case 4: // FTPES FSProtocol = fsFTP; - Ftps = ftpsExplicitSsl; + Ftps = ftpsExplicitTls; break; } @@ -1091,10 +1130,14 @@ void __fastcall TSessionData::ImportFromFilezilla(_di_IXMLNode Node, const Unico } //--------------------------------------------------------------------- -void __fastcall TSessionData::SavePasswords(THierarchicalStorage * Storage, bool PuttyExport) +void __fastcall TSessionData::SavePasswords(THierarchicalStorage * Storage, bool PuttyExport, bool DoNotEncryptPasswords) { if (!Configuration->DisablePasswordStoring && !PuttyExport && !FPassword.IsEmpty()) { + // DoNotEncryptPasswords is set when called from GenerateOpenCommandArgs only + // and it never saves session password + DebugAssert(!DoNotEncryptPasswords); + Storage->WriteBinaryDataAsString(L"Password", StronglyRecryptPassword(FPassword, UserName+HostName)); } else @@ -1110,24 +1153,53 @@ void __fastcall TSessionData::SavePasswords(THierarchicalStorage * Storage, bool } else { - // save password encrypted - if (!FProxyPassword.IsEmpty()) + if (DoNotEncryptPasswords) { - Storage->WriteBinaryDataAsString(L"ProxyPasswordEnc", StronglyRecryptPassword(FProxyPassword, ProxyUsername+ProxyHost)); + if (!FProxyPassword.IsEmpty()) + { + Storage->WriteString(L"ProxyPassword", ProxyPassword); + } + else + { + Storage->DeleteValue(L"ProxyPassword"); + } + Storage->DeleteValue(L"ProxyPasswordEnc"); } else { - Storage->DeleteValue(L"ProxyPasswordEnc"); + // save password encrypted + if (!FProxyPassword.IsEmpty()) + { + Storage->WriteBinaryDataAsString(L"ProxyPasswordEnc", StronglyRecryptPassword(FProxyPassword, ProxyUsername+ProxyHost)); + } + else + { + Storage->DeleteValue(L"ProxyPasswordEnc"); + } + Storage->DeleteValue(L"ProxyPassword"); } - Storage->DeleteValue(L"ProxyPassword"); - if (!Configuration->DisablePasswordStoring && !FTunnelPassword.IsEmpty()) + if (DoNotEncryptPasswords) { - Storage->WriteBinaryDataAsString(L"TunnelPassword", StronglyRecryptPassword(FTunnelPassword, TunnelUserName+TunnelHostName)); + if (!FTunnelPassword.IsEmpty()) + { + Storage->WriteString(L"TunnelPasswordPlain", TunnelPassword); + } + else + { + Storage->DeleteValue(L"TunnelPasswordPlain"); + } } else { - Storage->DeleteValue(L"TunnelPassword"); + if (!Configuration->DisablePasswordStoring && !FTunnelPassword.IsEmpty()) + { + Storage->WriteBinaryDataAsString(L"TunnelPassword", StronglyRecryptPassword(FTunnelPassword, TunnelUserName+TunnelHostName)); + } + else + { + Storage->DeleteValue(L"TunnelPassword"); + } } } } @@ -1184,7 +1256,7 @@ UnicodeString __fastcall TSessionData::GetSource() return L"Modified site"; default: - FAIL; + DebugFail(); return L""; } } @@ -1197,7 +1269,7 @@ void __fastcall TSessionData::SaveRecryptedPasswords(THierarchicalStorage * Stor { RecryptPasswords(); - SavePasswords(Storage, false); + SavePasswords(Storage, false, false); } __finally { @@ -1318,6 +1390,14 @@ bool __fastcall TSessionData::ParseUrl(UnicodeString Url, TOptions * Options, MoveStr(Url, MaskedUrl, ProtocolLen); ProtocolDefined = true; } + else if (IsProtocolUrl(Url, FtpesProtocol, ProtocolLen)) + { + AFSProtocol = fsFTP; + AFtps = ftpsExplicitTls; + APortNumber = FtpPortNumber; + MoveStr(Url, MaskedUrl, ProtocolLen); + ProtocolDefined = true; + } else if (IsProtocolUrl(Url, WebDAVProtocol, ProtocolLen)) { AFSProtocol = fsWebDAV; @@ -1334,6 +1414,16 @@ bool __fastcall TSessionData::ParseUrl(UnicodeString Url, TOptions * Options, MoveStr(Url, MaskedUrl, ProtocolLen); ProtocolDefined = true; } + else if (IsProtocolUrl(Url, SshProtocol, ProtocolLen)) + { + // For most uses, handling ssh:// the same way as sftp:// + // The only place where a difference is made is GetLoginData() in WinMain.cpp + AFSProtocol = fsSFTPonly; + PuttyProtocol = PuttySshProtocol; + APortNumber = SshPortNumber; + MoveStr(Url, MaskedUrl, ProtocolLen); + ProtocolDefined = true; + } if (ProtocolDefined && (Url.SubString(1, 2) == L"//")) { @@ -1395,7 +1485,7 @@ bool __fastcall TSessionData::ParseUrl(UnicodeString Url, TOptions * Options, while (!AnsiSameText(DecodeUrlChars(Url.SubString(1, P)), Data->Name)) { P++; - assert(P <= Url.Length()); + DebugAssert(P <= Url.Length()); } ARemoteDirectory = Url.SubString(P + 1, Url.Length() - P); @@ -1559,10 +1649,18 @@ bool __fastcall TSessionData::ParseUrl(UnicodeString Url, TOptions * Options, // as the option should not make session "connectable" UnicodeString Value; + if (Options->FindSwitch(SESSIONNAME_SWICH, Value)) + { + Name = Value; + } if (Options->FindSwitch(L"privatekey", Value)) { PublicKeyFile = Value; } + if (Options->FindSwitch(L"clientcert", Value)) + { + TlsCertificateFile = Value; + } if (Options->FindSwitch(PassphraseOption, Value)) { Passphrase = Value; @@ -1620,7 +1718,7 @@ bool __fastcall TSessionData::ParseUrl(UnicodeString Url, TOptions * Options, if (Options->FindSwitch(L"rawsettings", RawSettings)) { - OptionsStorage = new TOptionsStorage(RawSettings); + OptionsStorage = new TOptionsStorage(RawSettings, false); ApplyRawSettings(OptionsStorage); } } @@ -1922,13 +2020,13 @@ bool __fastcall TSessionData::GetUsesSsh() //--------------------------------------------------------------------- void __fastcall TSessionData::SetCipher(int Index, TCipher value) { - assert(Index >= 0 && Index < CIPHER_COUNT); + DebugAssert(Index >= 0 && Index < CIPHER_COUNT); SET_SESSION_PROPERTY(Ciphers[Index]); } //--------------------------------------------------------------------- TCipher __fastcall TSessionData::GetCipher(int Index) const { - assert(Index >= 0 && Index < CIPHER_COUNT); + DebugAssert(Index >= 0 && Index < CIPHER_COUNT); return FCiphers[Index]; } //--------------------------------------------------------------------- @@ -1972,13 +2070,13 @@ UnicodeString __fastcall TSessionData::GetCipherList() const //--------------------------------------------------------------------- void __fastcall TSessionData::SetKex(int Index, TKex value) { - assert(Index >= 0 && Index < KEX_COUNT); + DebugAssert(Index >= 0 && Index < KEX_COUNT); SET_SESSION_PROPERTY(Kex[Index]); } //--------------------------------------------------------------------- TKex __fastcall TSessionData::GetKex(int Index) const { - assert(Index >= 0 && Index < KEX_COUNT); + DebugAssert(Index >= 0 && Index < KEX_COUNT); return FKex[Index]; } //--------------------------------------------------------------------- @@ -2027,6 +2125,7 @@ void __fastcall TSessionData::SetPublicKeyFile(UnicodeString value) // PublicKeyFile is key for Passphrase encryption UnicodeString XPassphrase = Passphrase; + // StripPathQuotes should not be needed as we do not feed quotes anymore FPublicKeyFile = StripPathQuotes(value); Modify(); @@ -2061,6 +2160,11 @@ void __fastcall TSessionData::SetEOLType(TEOLType value) SET_SESSION_PROPERTY(EOLType); } //--------------------------------------------------------------------------- +void __fastcall TSessionData::SetTrimVMSVersions(bool value) +{ + SET_SESSION_PROPERTY(TrimVMSVersions); +} +//--------------------------------------------------------------------------- TDateTime __fastcall TSessionData::GetTimeoutDT() { return SecToDateTime(Timeout); @@ -2078,7 +2182,7 @@ void __fastcall TSessionData::SetFSProtocol(TFSProtocol value) //--------------------------------------------------------------------- UnicodeString __fastcall TSessionData::GetFSProtocolStr() { - assert(FSProtocol >= 0 && FSProtocol < FSPROTOCOL_COUNT); + DebugAssert(FSProtocol >= 0 && FSProtocol < FSPROTOCOL_COUNT); return FSProtocolNames[FSProtocol]; } //--------------------------------------------------------------------------- @@ -2113,6 +2217,11 @@ void __fastcall TSessionData::SetPuttyProtocol(UnicodeString value) SET_SESSION_PROPERTY(PuttyProtocol); } //--------------------------------------------------------------------- +UnicodeString __fastcall TSessionData::GetNormalizedPuttyProtocol() const +{ + return DefaultStr(PuttyProtocol, PuttySshProtocol); +} +//--------------------------------------------------------------------- void __fastcall TSessionData::SetPingIntervalDT(TDateTime value) { unsigned short hour, min, sec, msec; @@ -2193,6 +2302,29 @@ UnicodeString __fastcall TSessionData::GetSessionName() return Result; } //--------------------------------------------------------------------- +bool __fastcall TSessionData::IsSecure() +{ + bool Result; + switch (FSProtocol) + { + case fsSCPonly: + case fsSFTP: + case fsSFTPonly: + Result = true; + break; + + case fsFTP: + case fsWebDAV: + Result = (Ftps != ftpsNone); + break; + + default: + DebugFail(); + break; + } + return Result; +} +//--------------------------------------------------------------------- UnicodeString __fastcall TSessionData::GetProtocolUrl() { UnicodeString Url; @@ -2203,7 +2335,7 @@ UnicodeString __fastcall TSessionData::GetProtocolUrl() break; default: - FAIL; + DebugFail(); // fallback case fsSFTP: case fsSFTPonly: @@ -2215,6 +2347,10 @@ UnicodeString __fastcall TSessionData::GetProtocolUrl() { Url = FtpsProtocol; } + else if ((Ftps == ftpsExplicitTls) || (Ftps == ftpsExplicitSsl)) + { + Url = FtpesProtocol; + } else { Url = FtpProtocol; @@ -2282,7 +2418,7 @@ UnicodeString __fastcall TSessionData::GenerateSessionUrl(unsigned int Flags) Url += L"@"; } - assert(!HostNameExpanded.IsEmpty()); + DebugAssert(!HostNameExpanded.IsEmpty()); if (IsIPv6Literal(HostNameExpanded)) { Url += L"[" + HostNameExpanded + L"]"; @@ -2301,6 +2437,504 @@ UnicodeString __fastcall TSessionData::GenerateSessionUrl(unsigned int Flags) return Url; } //--------------------------------------------------------------------- +void __fastcall TSessionData::AddSwitch(UnicodeString & Result, const UnicodeString & Switch) +{ + Result += FORMAT(L" -%s", (Switch)); +} +//--------------------------------------------------------------------- +void __fastcall TSessionData::AddSwitchValue(UnicodeString & Result, const UnicodeString & Name, const UnicodeString & Value) +{ + AddSwitch(Result, FORMAT(L"%s=%s", (Name, Value))); +} +//--------------------------------------------------------------------- +void __fastcall TSessionData::AddSwitch(UnicodeString & Result, const UnicodeString & Name, const UnicodeString & Value) +{ + AddSwitchValue(Result, Name, FORMAT("\"%s\"", (EscapeParam(Value)))); +} +//--------------------------------------------------------------------- +void __fastcall TSessionData::AddSwitch(UnicodeString & Result, const UnicodeString & Name, int Value) +{ + AddSwitchValue(Result, Name, IntToStr(Value)); +} +//--------------------------------------------------------------------- +void __fastcall TSessionData::LookupLastFingerprint() +{ + UnicodeString FingerprintType; + if (IsSshProtocol(FSProtocol)) + { + FingerprintType = SshFingerprintType; + } + else if (Ftps != ftpsNone) + { + FingerprintType = TlsFingerprintType; + } + + if (!FingerprintType.IsEmpty()) + { + HostKey = Configuration->LastFingerprint(SiteKey, FingerprintType); + } +} +//--------------------------------------------------------------------- +UnicodeString __fastcall TSessionData::GenerateOpenCommandArgs() +{ + std::unique_ptr FactoryDefaults(new TSessionData(L"")); + std::unique_ptr SessionData(new TSessionData(L"")); + + SessionData->Assign(this); + + UnicodeString Result = SessionData->GenerateSessionUrl(sufOpen); + + // Before we reset the FSProtocol + bool AUsesSsh = SessionData->UsesSsh; + // SFTP-only is not reflected by the protocol prefix, we have to use rawsettings for that + if (SessionData->FSProtocol != fsSFTPonly) + { + SessionData->FSProtocol = FactoryDefaults->FSProtocol; + } + SessionData->HostName = FactoryDefaults->HostName; + SessionData->PortNumber = FactoryDefaults->PortNumber; + SessionData->UserName = FactoryDefaults->UserName; + SessionData->Password = FactoryDefaults->Password; + SessionData->CopyNonCoreData(FactoryDefaults.get()); + SessionData->Ftps = FactoryDefaults->Ftps; + + if (SessionData->HostKey != FactoryDefaults->HostKey) + { + UnicodeString SwitchName = AUsesSsh ? L"hostkey" : L"certificate"; + AddSwitch(Result, SwitchName, SessionData->HostKey); + SessionData->HostKey = FactoryDefaults->HostKey; + } + if (SessionData->PublicKeyFile != FactoryDefaults->PublicKeyFile) + { + AddSwitch(Result, L"privatekey", SessionData->PublicKeyFile); + SessionData->PublicKeyFile = FactoryDefaults->PublicKeyFile; + } + if (SessionData->TlsCertificateFile != FactoryDefaults->TlsCertificateFile) + { + AddSwitch(Result, L"clientcert", SessionData->TlsCertificateFile); + SessionData->TlsCertificateFile = FactoryDefaults->TlsCertificateFile; + } + if (SessionData->Passphrase != FactoryDefaults->Passphrase) + { + AddSwitch(Result, PassphraseOption, SessionData->Passphrase); + SessionData->Passphrase = FactoryDefaults->Passphrase; + } + if (SessionData->FtpPasvMode != FactoryDefaults->FtpPasvMode) + { + AddSwitch(Result, L"passive", SessionData->FtpPasvMode ? 1 : 0); + SessionData->FtpPasvMode = FactoryDefaults->FtpPasvMode; + } + if (SessionData->Timeout != FactoryDefaults->Timeout) + { + AddSwitch(Result, L"timeout", SessionData->Timeout); + SessionData->Timeout = FactoryDefaults->Timeout; + } + + std::unique_ptr RawSettings(SessionData->SaveToOptions(FactoryDefaults.get())); + + if (RawSettings->Count > 0) + { + AddSwitch(Result, L"rawsettings"); + + for (int Index = 0; Index < RawSettings->Count; Index++) + { + UnicodeString Name = RawSettings->Names[Index]; + UnicodeString Value = RawSettings->ValueFromIndex[Index]; + // Do not quote if it is all-numeric + if (IntToStr(StrToIntDef(Value, -1)) != Value) + { + Value = FORMAT(L"\"%s\"", (EscapeParam(Value))); + } + Result += FORMAT(L" %s=%s", (Name, Value)); + } + } + + return Result; +} +//--------------------------------------------------------------------- +void __fastcall TSessionData::AddAssemblyProperty( + UnicodeString & Result, TAssemblyLanguage Language, + const UnicodeString & Name, const UnicodeString & Type, + const UnicodeString & Member) +{ + UnicodeString PropertyCode; + + switch (Language) + { + case alCSharp: + PropertyCode = L" %s = %s.%s,\n"; + break; + + case alVBNET: + PropertyCode = L" .%s = %s.%s\n"; + break; + + case alPowerShell: + PropertyCode = L"$sessionOptions.%s = [WinSCP.%s]::%s\n"; + break; + } + + Result += FORMAT(PropertyCode, (Name, Type, Member)); +} +//--------------------------------------------------------------------- +UnicodeString __fastcall TSessionData::AssemblyString(TAssemblyLanguage Language, UnicodeString S) +{ + switch (Language) + { + case alCSharp: + if (S.Pos(L"\\") > 0) + { + S = FORMAT(L"@\"%s\"", (ReplaceStr(S, L"\"", L"\"\""))); + } + else + { + S = FORMAT(L"\"%s\"", (ReplaceStr(S, L"\"", L"\\\""))); + } + break; + + case alVBNET: + S = FORMAT(L"\"%s\"", (ReplaceStr(S, L"\"", L"\"\""))); + break; + + case alPowerShell: + S = FORMAT(L"\"%s\"", (ReplaceStr(S, L"\"", L"`\""))); + break; + + default: + DebugFail(); + break; + } + + return S; +} +//--------------------------------------------------------------------- +void __fastcall TSessionData::AddAssemblyPropertyRaw( + UnicodeString & Result, TAssemblyLanguage Language, + const UnicodeString & Name, const UnicodeString & Value) +{ + UnicodeString PropertyCode; + + switch (Language) + { + case alCSharp: + PropertyCode = L" %s = %s,\n"; + break; + + case alVBNET: + PropertyCode = L" .%s = %s\n"; + break; + + case alPowerShell: + PropertyCode = L"$sessionOptions.%s = %s\n"; + break; + } + + Result += FORMAT(PropertyCode, (Name, Value)); +} +//--------------------------------------------------------------------- +void __fastcall TSessionData::AddAssemblyProperty( + UnicodeString & Result, TAssemblyLanguage Language, + const UnicodeString & Name, UnicodeString Value) +{ + AddAssemblyPropertyRaw(Result, Language, Name, AssemblyString(Language, Value)); +} +//--------------------------------------------------------------------- +void __fastcall TSessionData::AddAssemblyProperty( + UnicodeString & Result, TAssemblyLanguage Language, + const UnicodeString & Name, int Value) +{ + AddAssemblyPropertyRaw(Result, Language, Name, IntToStr(Value)); +} +//--------------------------------------------------------------------- +void __fastcall TSessionData::AddAssemblyProperty( + UnicodeString & Result, TAssemblyLanguage Language, + const UnicodeString & Name, bool Value) +{ + UnicodeString PropertyValue; + + switch (Language) + { + case alCSharp: + PropertyValue = (Value ? L"true" : L"false"); + break; + + case alVBNET: + PropertyValue = (Value ? L"True" : L"False"); + break; + + case alPowerShell: + PropertyValue = (Value ? L"$True" : L"$False"); + break; + } + + AddAssemblyPropertyRaw(Result, Language, Name, PropertyValue); +} +//--------------------------------------------------------------------- +UnicodeString __fastcall TSessionData::GenerateAssemblyCode( + TAssemblyLanguage Language) +{ + std::unique_ptr FactoryDefaults(new TSessionData(L"")); + std::unique_ptr SessionData(Clone()); + + UnicodeString Result; + + UnicodeString SessionOptionsPreamble; + switch (Language) + { + case alCSharp: + SessionOptionsPreamble = + L"// %s\n" + "SessionOptions sessionOptions = new SessionOptions\n" + "{\n"; + break; + + case alVBNET: + SessionOptionsPreamble = + L"' %s\n" + "Dim mySessionOptions As New SessionOptions\n" + "With mySessionOptions\n"; + break; + + case alPowerShell: + SessionOptionsPreamble = + FORMAT(L"# %s\n", (LoadStr(CODE_PS_ADD_TYPE))) + + L"Add-Type -Path \"WinSCPnet.dll\"\n" + "\n" + "# %s\n" + "$sessionOptions = New-Object WinSCP.SessionOptions\n"; + break; + + default: + DebugFail(); + break; + } + + Result = FORMAT(SessionOptionsPreamble, (LoadStr(CODE_SESSION_OPTIONS))); + + UnicodeString ProtocolMember; + switch (SessionData->FSProtocol) + { + case fsSCPonly: + ProtocolMember = "Scp"; + break; + + default: + DebugFail(); + // fallback + case fsSFTP: + case fsSFTPonly: + ProtocolMember = "Sftp"; + break; + + case fsFTP: + ProtocolMember = "Ftp"; + break; + + case fsWebDAV: + ProtocolMember = "Webdav"; + break; + } + + // Before we reset the FSProtocol + bool AUsesSsh = SessionData->UsesSsh; + + // Protocol is set unconditionally, we want even the default SFTP + AddAssemblyProperty(Result, Language, L"Protocol", L"Protocol", ProtocolMember); + // SFTP-only is not reflected by the protocol prefix, we have to use rawsettings for that + if (SessionData->FSProtocol != fsSFTPonly) + { + SessionData->FSProtocol = FactoryDefaults->FSProtocol; + } + if (SessionData->HostName != FactoryDefaults->HostName) + { + AddAssemblyProperty(Result, Language, L"HostName", HostName); + SessionData->HostName = FactoryDefaults->HostName; + } + if (SessionData->PortNumber != FactoryDefaults->PortNumber) + { + AddAssemblyProperty(Result, Language, L"PortNumber", PortNumber); + SessionData->PortNumber = FactoryDefaults->PortNumber; + } + if (SessionData->UserName != FactoryDefaults->UserName) + { + AddAssemblyProperty(Result, Language, L"UserName", UserName); + SessionData->UserName = FactoryDefaults->UserName; + } + if (SessionData->Password != FactoryDefaults->Password) + { + AddAssemblyProperty(Result, Language, L"Password", Password); + SessionData->Password = FactoryDefaults->Password; + } + + SessionData->CopyNonCoreData(FactoryDefaults.get()); + + if (SessionData->Ftps != FactoryDefaults->Ftps) + { + // SessionData->FSProtocol is reset already + switch (FSProtocol) + { + case fsFTP: + { + UnicodeString FtpSecureMember; + switch (SessionData->Ftps) + { + case ftpsNone: + // noop + break; + + case ftpsImplicit: + FtpSecureMember = L"Implicit"; + break; + + case ftpsExplicitTls: + case ftpsExplicitSsl: + FtpSecureMember = L"Explicit"; + break; + + default: + DebugFail(); + break; + } + AddAssemblyProperty(Result, Language, L"FtpSecure", L"FtpSecure", FtpSecureMember); + } + break; + + case fsWebDAV: + AddAssemblyProperty(Result, Language, L"WebdavSecure", (SessionData->Ftps != ftpsNone)); + break; + + default: + DebugFail(); + break; + } + SessionData->Ftps = FactoryDefaults->Ftps; + } + + if (SessionData->HostKey != FactoryDefaults->HostKey) + { + UnicodeString PropertyName = AUsesSsh ? L"SshHostKeyFingerprint" : L"TlsHostCertificateFingerprint"; + AddAssemblyProperty(Result, Language, PropertyName, SessionData->HostKey); + SessionData->HostKey = FactoryDefaults->HostKey; + } + if (SessionData->PublicKeyFile != FactoryDefaults->PublicKeyFile) + { + AddAssemblyProperty(Result, Language, L"SshPrivateKeyPath", SessionData->PublicKeyFile); + SessionData->PublicKeyFile = FactoryDefaults->PublicKeyFile; + } + if (SessionData->TlsCertificateFile != FactoryDefaults->TlsCertificateFile) + { + AddAssemblyProperty(Result, Language, L"TlsClientCertificatePath", SessionData->TlsCertificateFile); + SessionData->TlsCertificateFile = FactoryDefaults->TlsCertificateFile; + } + if (SessionData->Passphrase != FactoryDefaults->Passphrase) + { + AddAssemblyProperty(Result, Language, L"PrivateKeyPassphrase", SessionData->Passphrase); + SessionData->Passphrase = FactoryDefaults->Passphrase; + } + if (SessionData->FtpPasvMode != FactoryDefaults->FtpPasvMode) + { + AddAssemblyProperty(Result, Language, L"FtpMode", L"FtpMode", (SessionData->FtpPasvMode ? L"Passive" : L"Active")); + SessionData->FtpPasvMode = FactoryDefaults->FtpPasvMode; + } + if (SessionData->Timeout != FactoryDefaults->Timeout) + { + AddAssemblyProperty(Result, Language, L"TimeoutInMilliseconds", SessionData->Timeout); + SessionData->Timeout = FactoryDefaults->Timeout; + } + + switch (Language) + { + case alCSharp: + Result += L"};\n"; + break; + + case alVBNET: + // noop + // Ending With only after AddRawSettings + break; + } + + std::unique_ptr RawSettings(SessionData->SaveToOptions(FactoryDefaults.get())); + + if (RawSettings->Count > 0) + { + Result += L"\n"; + + for (int Index = 0; Index < RawSettings->Count; Index++) + { + UnicodeString Name = RawSettings->Names[Index]; + UnicodeString Value = RawSettings->ValueFromIndex[Index]; + UnicodeString SettingsCode; + switch (Language) + { + case alCSharp: + SettingsCode = L"sessionOptions.AddRawSettings(\"%s\", %s);\n"; + break; + + case alVBNET: + SettingsCode = L" .AddRawSettings(\"%s\", %s)\n"; + break; + + case alPowerShell: + SettingsCode = L"$sessionOptions.AddRawSettings(\"%s\", %s)\n"; + break; + } + Result += FORMAT(SettingsCode, (Name, AssemblyString(Language, Value))); + } + } + + UnicodeString SessionCode; + + switch (Language) + { + case alCSharp: + SessionCode = + L"\n" + "using (Session session = new Session())\n" + "{\n" + " // %s\n" + " session.Open(sessionOptions);\n" + "\n" + " // %s\n" + "}\n"; + break; + + case alVBNET: + SessionCode = + L"End With\n" + "\n" + "Using mySession As Session = New Session\n" + " ' %s\n" + " mySession.Open(mySessionOptions)\n" + "\n" + " ' %s\n" + "End Using\n"; + break; + + case alPowerShell: + SessionCode = + L"\n" + "$session = New-Object WinSCP.Session\n" + "\n" + "try\n" + "{\n" + " # %s\n" + " $session.Open($sessionOptions)\n" + "\n" + " # %s\n" + "}\n" + "finally\n" + "{\n" + " $session.Dispose()\n" + "}\n"; + break; + } + + Result += FORMAT(SessionCode, (LoadStr(CODE_CONNECT), LoadStr(CODE_YOUR_CODE))); + + return Result; +} +//--------------------------------------------------------------------- void __fastcall TSessionData::SetTimeDifference(TDateTime value) { SET_SESSION_PROPERTY(TimeDifference); @@ -2464,13 +3098,13 @@ void __fastcall TSessionData::SetFtpProxyLogonType(int value) //--------------------------------------------------------------------- void __fastcall TSessionData::SetBug(TSshBug Bug, TAutoSwitch value) { - assert(Bug >= 0 && static_cast(Bug) < LENOF(FBugs)); + DebugAssert(Bug >= 0 && static_cast(Bug) < LENOF(FBugs)); SET_SESSION_PROPERTY(Bugs[Bug]); } //--------------------------------------------------------------------- TAutoSwitch __fastcall TSessionData::GetBug(TSshBug Bug) const { - assert(Bug >= 0 && static_cast(Bug) < LENOF(FBugs)); + DebugAssert(Bug >= 0 && static_cast(Bug) < LENOF(FBugs)); return FBugs[Bug]; } //--------------------------------------------------------------------- @@ -2511,13 +3145,13 @@ void __fastcall TSessionData::SetSFTPMaxPacketSize(unsigned long value) //--------------------------------------------------------------------- void __fastcall TSessionData::SetSFTPBug(TSftpBug Bug, TAutoSwitch value) { - assert(Bug >= 0 && static_cast(Bug) < LENOF(FSFTPBugs)); + DebugAssert(Bug >= 0 && static_cast(Bug) < LENOF(FSFTPBugs)); SET_SESSION_PROPERTY(SFTPBugs[Bug]); } //--------------------------------------------------------------------- TAutoSwitch __fastcall TSessionData::GetSFTPBug(TSftpBug Bug) const { - assert(Bug >= 0 && static_cast(Bug) < LENOF(FSFTPBugs)); + DebugAssert(Bug >= 0 && static_cast(Bug) < LENOF(FSFTPBugs)); return FSFTPBugs[Bug]; } //--------------------------------------------------------------------- @@ -2590,6 +3224,7 @@ void __fastcall TSessionData::SetTunnelPublicKeyFile(UnicodeString value) { if (FTunnelPublicKeyFile != value) { + // StripPathQuotes should not be needed as we do not feed quotes anymore FTunnelPublicKeyFile = StripPathQuotes(value); Modify(); } @@ -2685,6 +3320,11 @@ void __fastcall TSessionData::SetSslSessionReuse(bool value) SET_SESSION_PROPERTY(SslSessionReuse); } //--------------------------------------------------------------------- +void __fastcall TSessionData::SetTlsCertificateFile(UnicodeString value) +{ + SET_SESSION_PROPERTY(TlsCertificateFile); +} +//--------------------------------------------------------------------- void __fastcall TSessionData::SetNotUtf(TAutoSwitch value) { SET_SESSION_PROPERTY(NotUtf); @@ -2781,13 +3421,13 @@ UnicodeString __fastcall TSessionData::ComposePath( __fastcall TStoredSessionList::TStoredSessionList(bool aReadOnly): TNamedObjectList(), FReadOnly(aReadOnly) { - assert(Configuration); + DebugAssert(Configuration); FDefaultSettings = new TSessionData(DefaultName); } //--------------------------------------------------------------------- __fastcall TStoredSessionList::~TStoredSessionList() { - assert(Configuration); + DebugAssert(Configuration); delete FDefaultSettings; } //--------------------------------------------------------------------- @@ -2798,7 +3438,7 @@ void __fastcall TStoredSessionList::Load(THierarchicalStorage * Storage, TList * Loaded = new TList; try { - assert(AutoSort); + DebugAssert(AutoSort); AutoSort = false; bool WasEmpty = (Count == 0); @@ -2932,7 +3572,7 @@ void __fastcall TStoredSessionList::DoSave(THierarchicalStorage * Storage, catch (Exception & E) { UnicodeString Message; - if (RecryptPasswordOnly && ALWAYS_TRUE(RecryptPasswordErrors != NULL) && + if (RecryptPasswordOnly && DebugAlwaysTrue(RecryptPasswordErrors != NULL) && ExceptionMessage(&E, Message)) { RecryptPasswordErrors->Add(FORMAT("%s: %s", (SessionData->SessionName, Message))); @@ -3095,7 +3735,7 @@ void __fastcall TStoredSessionList::SelectSessionsToImport for (int Index = 0; Index < Count; Index++) { Sessions[Index]->Selected = - (!SSHOnly || (Sessions[Index]->PuttyProtocol == PuttySshProtocol)) && + (!SSHOnly || (Sessions[Index]->GetNormalizedPuttyProtocol() == PuttySshProtocol)) && !Dest->FindByName(Sessions[Index]->Name); } } @@ -3297,7 +3937,7 @@ TSessionData * __fastcall TStoredSessionList::NewSession( //--------------------------------------------------------------------------- void __fastcall TStoredSessionList::SetDefaultSettings(TSessionData * value) { - assert(FDefaultSettings); + DebugAssert(FDefaultSettings); if (FDefaultSettings != value) { FDefaultSettings->Assign(value); @@ -3333,7 +3973,7 @@ void __fastcall TStoredSessionList::ImportHostKeys(const UnicodeString TargetKey TSessionData * Session; UnicodeString HostKeyName; - assert(Sessions != NULL); + DebugAssert(Sessions != NULL); for (int Index = 0; Index < Sessions->Count; Index++) { Session = Sessions->Sessions[Index]; @@ -3382,7 +4022,7 @@ bool __fastcall TStoredSessionList::IsFolderOrWorkspace( return Result && - ALWAYS_TRUE(FirstData != NULL) && + DebugAlwaysTrue(FirstData != NULL) && (FirstData->IsWorkspace == Workspace); } //--------------------------------------------------------------------------- @@ -3404,7 +4044,7 @@ TSessionData * __fastcall TStoredSessionList::CheckIsInFolderOrWorkspaceAndResol Data = ResolveWorkspaceData(Data); if ((Data != NULL) && Data->CanLogin && - ALWAYS_TRUE(Data->Link.IsEmpty())) + DebugAlwaysTrue(Data->Link.IsEmpty())) { return Data; } @@ -3425,7 +4065,7 @@ void __fastcall TStoredSessionList::GetFolderOrWorkspace(const UnicodeString & N TSessionData * Data2 = new TSessionData(L""); Data2->Assign(Data); - if (!RawData->Link.IsEmpty() && (ALWAYS_TRUE(Data != RawData)) && + if (!RawData->Link.IsEmpty() && (DebugAlwaysTrue(Data != RawData)) && // BACKWARD COMPATIBILITY // When loading pre-5.6.4 workspace, that does not have state saved, // do not overwrite the site "state" defaults @@ -3581,6 +4221,7 @@ bool __fastcall TStoredSessionList::CanLogin(TSessionData * Data) //--------------------------------------------------------------------- UnicodeString GetExpandedLogFileName(UnicodeString LogFileName, TSessionData * SessionData) { + // StripPathQuotes should not be needed as we do not feed quotes anymore UnicodeString ANewFileName = StripPathQuotes(ExpandEnvironmentVariables(LogFileName)); TDateTime N = Now(); for (int Index = 1; Index < ANewFileName.Length(); Index++) @@ -3690,7 +4331,7 @@ int __fastcall DefaultPort(TFSProtocol FSProtocol, TFtps Ftps) } else { - FAIL; + DebugFail(); Result = -1; } break; diff --git a/source/core/SessionData.h b/source/core/SessionData.h index e88bc894..91a2fb8d 100644 --- a/source/core/SessionData.h +++ b/source/core/SessionData.h @@ -18,6 +18,7 @@ enum TCipher { cipWarn, cip3DES, cipBlowfish, cipAES, cipDES, cipArcfour }; // explicit values to skip obsoleted fsExternalSSH, fsExternalSFTP enum TFSProtocol { fsSCPonly = 0, fsSFTP = 1, fsSFTPonly = 2, fsFTP = 5, fsWebDAV = 6 }; #define FSPROTOCOL_COUNT (fsWebDAV+1) +extern const wchar_t * ProxyMethodNames; enum TProxyMethod { pmNone, pmSocks4, pmSocks5, pmHTTP, pmTelnet, pmCmd }; enum TSshProt { ssh1only, ssh1, ssh2, ssh2only }; enum TKex { kexWarn, kexDHGroup1, kexDHGroup14, kexDHGEx, kexRSA }; @@ -27,6 +28,7 @@ enum TSshBug { sbIgnore1, sbPlainPW1, sbRSA1, sbHMAC2, sbDeriveKey2, sbRSAPad2, #define BUG_COUNT (sbWinAdj+1) enum TSftpBug { sbSymlink, sbSignedTS }; #define SFTP_BUG_COUNT (sbSignedTS+1) +extern const wchar_t * PingTypeNames; enum TPingType { ptOff, ptNullPacket, ptDummyCommand }; enum TAddressFamily { afAuto, afIPv4, afIPv6 }; enum TFtps { ftpsNone, ftpsImplicit, ftpsExplicitSsl, ftpsExplicitTls }; @@ -39,13 +41,13 @@ enum TSessionUrlFlags sufUserName = 0x02, sufPassword = 0x04, sufHostKey = 0x08, - sufComplete = sufUserName | sufPassword | sufHostKey + sufComplete = sufUserName | sufPassword | sufHostKey, + sufOpen = sufUserName | sufPassword }; //--------------------------------------------------------------------------- extern const wchar_t CipherNames[CIPHER_COUNT][10]; extern const wchar_t KexNames[KEX_COUNT][20]; extern const wchar_t SshProtList[][10]; -extern const wchar_t ProxyMethodList[][10]; extern const TCipher DefaultCipherList[CIPHER_COUNT]; extern const TKex DefaultKexList[KEX_COUNT]; extern const wchar_t FSProtocolNames[FSPROTOCOL_COUNT][16]; @@ -65,14 +67,17 @@ extern const UnicodeString SftpProtocol; extern const UnicodeString ScpProtocol; extern const UnicodeString FtpProtocol; extern const UnicodeString FtpsProtocol; +extern const UnicodeString FtpesProtocol; extern const UnicodeString WebDAVProtocol; extern const UnicodeString WebDAVSProtocol; +extern const UnicodeString SshProtocol; extern const UnicodeString ProtocolSeparator; extern const UnicodeString WinSCPProtocolPrefix; extern const wchar_t UrlParamSeparator; extern const wchar_t UrlParamValueSeparator; extern const UnicodeString UrlHostKeyParamName; extern const UnicodeString UrlSaveParamName; +extern const UnicodeString PassphraseOption; //--------------------------------------------------------------------------- class TStoredSessionList; //--------------------------------------------------------------------------- @@ -105,6 +110,7 @@ friend class TStoredSessionList; TKex FKex[KEX_COUNT]; bool FClearAliases; TEOLType FEOLType; + bool FTrimVMSVersions; UnicodeString FPublicKeyFile; UnicodeString FPassphrase; UnicodeString FPuttyProtocol; @@ -162,6 +168,7 @@ friend class TStoredSessionList; TAutoSwitch FFtpListAll; TAutoSwitch FFtpHost; bool FSslSessionReuse; + UnicodeString FTlsCertificateFile; TAddressFamily FAddressFamily; UnicodeString FRekeyData; unsigned int FRekeyTime; @@ -258,6 +265,7 @@ friend class TStoredSessionList; void __fastcall SetClearAliases(bool value); void __fastcall SetDefaultShell(bool value); void __fastcall SetEOLType(TEOLType value); + void __fastcall SetTrimVMSVersions(bool value); void __fastcall SetLookupUserGroups(TAutoSwitch value); void __fastcall SetReturnVar(UnicodeString value); void __fastcall SetScp1Compatibility(bool value); @@ -303,6 +311,7 @@ friend class TStoredSessionList; void __fastcall SetFtpListAll(TAutoSwitch value); void __fastcall SetFtpHost(TAutoSwitch value); void __fastcall SetSslSessionReuse(bool value); + void __fastcall SetTlsCertificateFile(UnicodeString value); UnicodeString __fastcall GetStorageKey(); UnicodeString __fastcall GetInternalStorageKey(); UnicodeString __fastcall GetSiteKey(); @@ -342,29 +351,56 @@ friend class TStoredSessionList; void __fastcall SetHostKey(UnicodeString value); void __fastcall SetNote(UnicodeString value); TDateTime __fastcall GetTimeoutDT(); - void __fastcall SavePasswords(THierarchicalStorage * Storage, bool PuttyExport); + void __fastcall SavePasswords(THierarchicalStorage * Storage, bool PuttyExport, bool DoNotEncryptPasswords); UnicodeString __fastcall GetLocalName(); UnicodeString __fastcall GetFolderName(); void __fastcall Modify(); UnicodeString __fastcall GetSource(); void __fastcall DoLoad(THierarchicalStorage * Storage, bool & RewritePassword); + void __fastcall DoSave(THierarchicalStorage * Storage, + bool PuttyExport, const TSessionData * Default, bool DoNotEncryptPasswords); UnicodeString __fastcall ReadXmlNode(_di_IXMLNode Node, const UnicodeString & Name, const UnicodeString & Default); int __fastcall ReadXmlNode(_di_IXMLNode Node, const UnicodeString & Name, int Default); bool __fastcall IsSame(const TSessionData * Default, bool AdvancedOnly, TStrings * DifferentProperties); UnicodeString __fastcall GetNameWithoutHiddenPrefix(); bool __fastcall HasStateData(); void __fastcall CopyStateData(TSessionData * SourceData); + void __fastcall CopyNonCoreData(TSessionData * SourceData); + UnicodeString __fastcall GetNormalizedPuttyProtocol() const; static RawByteString __fastcall EncryptPassword(const UnicodeString & Password, UnicodeString Key); static UnicodeString __fastcall DecryptPassword(const RawByteString & Password, UnicodeString Key); static RawByteString __fastcall StronglyRecryptPassword(const RawByteString & Password, UnicodeString Key); static bool __fastcall DoIsProtocolUrl(const UnicodeString & Url, const UnicodeString & Protocol, int & ProtocolLen); static bool __fastcall IsProtocolUrl(const UnicodeString & Url, const UnicodeString & Protocol, int & ProtocolLen); + static void __fastcall AddSwitch(UnicodeString & Result, const UnicodeString & Switch); + static void __fastcall AddSwitchValue(UnicodeString & Result, const UnicodeString & Name, const UnicodeString & Value); + static void __fastcall AddSwitch(UnicodeString & Result, const UnicodeString & Name, const UnicodeString & Value); + static void __fastcall AddSwitch(UnicodeString & Result, const UnicodeString & Name, int Value); + static UnicodeString __fastcall AssemblyString(TAssemblyLanguage Language, UnicodeString S); + static void __fastcall AddAssemblyPropertyRaw( + UnicodeString & Result, TAssemblyLanguage Language, + const UnicodeString & Name, const UnicodeString & Value); + static void __fastcall AddAssemblyProperty( + UnicodeString & Result, TAssemblyLanguage Language, + const UnicodeString & Name, UnicodeString Value); + static void __fastcall AddAssemblyProperty( + UnicodeString & Result, TAssemblyLanguage Language, + const UnicodeString & Name, const UnicodeString & Type, + const UnicodeString & Member); + static void __fastcall AddAssemblyProperty( + UnicodeString & Result, TAssemblyLanguage Language, + const UnicodeString & Name, int Value); + void __fastcall AddAssemblyProperty( + UnicodeString & Result, TAssemblyLanguage Language, + const UnicodeString & Name, bool Value); + TStrings * __fastcall SaveToOptions(const TSessionData * Default); __property UnicodeString InternalStorageKey = { read = GetInternalStorageKey }; public: __fastcall TSessionData(UnicodeString aName); virtual __fastcall ~TSessionData(); + TSessionData * __fastcall Clone(); void __fastcall Default(); void __fastcall NonPersistant(); void __fastcall Load(THierarchicalStorage * Storage); @@ -395,6 +431,10 @@ friend class TStoredSessionList; bool __fastcall IsSameSite(const TSessionData * Default); bool __fastcall IsInFolderOrWorkspace(UnicodeString Name); UnicodeString __fastcall GenerateSessionUrl(unsigned int Flags); + UnicodeString __fastcall GenerateOpenCommandArgs(); + UnicodeString __fastcall GenerateAssemblyCode(TAssemblyLanguage Language); + void __fastcall LookupLastFingerprint(); + bool __fastcall IsSecure(); static void __fastcall ValidatePath(const UnicodeString Path); static void __fastcall ValidateName(const UnicodeString Name); static UnicodeString __fastcall MakeValidName(const UnicodeString & Name); @@ -456,6 +496,7 @@ friend class TStoredSessionList; __property bool DefaultShell = { read = GetDefaultShell, write = SetDefaultShell }; __property bool DetectReturnVar = { read = GetDetectReturnVar, write = SetDetectReturnVar }; __property TEOLType EOLType = { read = FEOLType, write = SetEOLType }; + __property bool TrimVMSVersions = { read = FTrimVMSVersions, write = SetTrimVMSVersions }; __property TAutoSwitch LookupUserGroups = { read = FLookupUserGroups, write = SetLookupUserGroups }; __property UnicodeString ReturnVar = { read = FReturnVar, write = SetReturnVar }; __property bool Scp1Compatibility = { read = FScp1Compatibility, write = SetScp1Compatibility }; @@ -496,6 +537,7 @@ friend class TStoredSessionList; __property TAutoSwitch FtpListAll = { read = FFtpListAll, write = SetFtpListAll }; __property TAutoSwitch FtpHost = { read = FFtpHost, write = SetFtpHost }; __property bool SslSessionReuse = { read = FSslSessionReuse, write = SetSslSessionReuse }; + __property UnicodeString TlsCertificateFile = { read=FTlsCertificateFile, write=SetTlsCertificateFile }; __property TDSTMode DSTMode = { read = FDSTMode, write = SetDSTMode }; __property bool DeleteToRecycleBin = { read = FDeleteToRecycleBin, write = SetDeleteToRecycleBin }; __property bool OverwrittenToRecycleBin = { read = FOverwrittenToRecycleBin, write = SetOverwrittenToRecycleBin }; diff --git a/source/core/SessionInfo.cpp b/source/core/SessionInfo.cpp index 16c20b21..3268e1e2 100644 --- a/source/core/SessionInfo.cpp +++ b/source/core/SessionInfo.cpp @@ -12,6 +12,8 @@ #include "SessionInfo.h" #include "Exceptions.h" #include "TextsCore.h" +#include "CoreMain.h" +#include "Script.h" //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- @@ -211,7 +213,7 @@ class TSessionActionRecord void __fastcall Rollback(Exception * E) { - assert(FErrorMessages == NULL); + DebugAssert(FErrorMessages == NULL); FErrorMessages = ExceptionToMoreMessages(E); Close(RolledBack); } @@ -304,7 +306,7 @@ class TSessionActionRecord inline void __fastcall Close(TState State) { - assert(FState == Opened); + DebugAssert(FState == Opened); FState = State; FLog->RecordPendingActions(); } @@ -325,7 +327,7 @@ class TSessionActionRecord case laStat: return L"stat"; case laChecksum: return L"checksum"; case laCwd: return L"cwd"; - default: FAIL; return L""; + default: DebugFail(); return L""; } } @@ -664,7 +666,7 @@ __fastcall TSessionLog::~TSessionLog() { FClosed = true; ReflectSettings(); - assert(FFile == NULL); + DebugAssert(FFile == NULL); delete FCriticalSection; } //--------------------------------------------------------------------------- @@ -680,7 +682,7 @@ void __fastcall TSessionLog::Unlock() //--------------------------------------------------------------------------- UnicodeString __fastcall TSessionLog::GetSessionName() { - assert(FSessionData != NULL); + DebugAssert(FSessionData != NULL); return FSessionData->SessionName; } //--------------------------------------------------------------------------- @@ -696,7 +698,7 @@ TLogLineType __fastcall TSessionLog::GetType(int Index) //--------------------------------------------------------------------------- void __fastcall TSessionLog::DoAddToParent(TLogLineType Type, const UnicodeString & Line) { - assert(FParent != NULL); + DebugAssert(FParent != NULL); FParent->Add(Type, Line); } //--------------------------------------------------------------------------- @@ -745,7 +747,7 @@ void __fastcall TSessionLog::DoAdd(TLogLineType Type, UnicodeString Line, //--------------------------------------------------------------------------- void __fastcall TSessionLog::Add(TLogLineType Type, const UnicodeString & Line) { - assert(FConfiguration); + DebugAssert(FConfiguration); if (Logging) { try @@ -850,8 +852,8 @@ void __fastcall TSessionLog::OpenLogFile() { try { - assert(FFile == NULL); - assert(FConfiguration != NULL); + DebugAssert(FFile == NULL); + DebugAssert(FConfiguration != NULL); FCurrentLogFileName = FConfiguration->LogFileName; FFile = OpenFile(FCurrentLogFileName, FSessionData, FConfiguration->LogFileAppend, FCurrentFileName); } @@ -938,7 +940,7 @@ UnicodeString __fastcall TSessionLog::GetTlsVersionName(TTlsVersion TlsVersion) switch (TlsVersion) { default: - FAIL; + DebugFail(); case ssl2: return "SSLv2"; case ssl3: @@ -964,6 +966,38 @@ UnicodeString __fastcall TSessionLog::LogSensitive(const UnicodeString & Str) } } //--------------------------------------------------------------------------- +UnicodeString __fastcall TSessionLog::GetCmdLineLog() +{ + UnicodeString Result = CmdLine; + + if (!Configuration->LogSensitive) + { + TManagementScript Script(StoredSessions, false); + Script.MaskPasswordInCommandLine(Result, true); + } + + return Result; +} +//--------------------------------------------------------------------------- +template +UnicodeString __fastcall EnumName(T Value, UnicodeString Names) +{ + int N = int(Value); + + do + { + UnicodeString Name = CutToChar(Names, L';', true); + if (N == 0) + { + return Name; + } + N--; + } + while ((N >= 0) && !Names.IsEmpty()); + + return L"(unknown)"; +} +//--------------------------------------------------------------------------- #define ADSTR(S) DoAdd(llMessage, S, DoAddToSelf); #define ADF(S, F) ADSTR(FORMAT(S, F)); //--------------------------------------------------------------------------- @@ -990,7 +1024,7 @@ void __fastcall TSessionLog::DoAddStartupInfo(TSessionData * Data) wchar_t UserName[UNLEN + 1]; unsigned long UserNameSize = LENOF(UserName); - if (ALWAYS_FALSE(!GetUserNameEx(NameSamCompatible, UserName, &UserNameSize))) + if (DebugAlwaysFalse(!GetUserNameEx(NameSamCompatible, UserName, &UserNameSize))) { wcscpy(UserName, L""); } @@ -1015,7 +1049,7 @@ void __fastcall TSessionLog::DoAddStartupInfo(TSessionData * Data) ADF(L"Local account: %s", (UserName)); ADF(L"Working directory: %s", (GetCurrentDir())); ADF(L"Process ID: %d", (int(GetCurrentProcessId()))); - ADF(L"Command-line: %s", (CmdLine)); + ADF(L"Command-line: %s", (GetCmdLineLog())); if (FConfiguration->LogProtocol >= 1) { AddOptions(GetGlobalOptions()); @@ -1049,7 +1083,6 @@ void __fastcall TSessionLog::DoAddStartupInfo(TSessionData * Data) } } ADF(L"Transfer Protocol: %s", (Data->FSProtocolStr)); - wchar_t * PingTypes = L"-NC"; if (Data->UsesSsh || (Data->FSProtocol == fsFTP)) { TPingType PingType; @@ -1065,14 +1098,14 @@ void __fastcall TSessionLog::DoAddStartupInfo(TSessionData * Data) PingInterval = Data->PingInterval; } ADF(L"Ping type: %s, Ping interval: %d sec; Timeout: %d sec", - (UnicodeString(PingTypes[PingType]), PingInterval, Data->Timeout)); + (EnumName(PingType, PingTypeNames), PingInterval, Data->Timeout)); ADF(L"Disable Nagle: %s", (BooleanToEngStr(Data->TcpNoDelay))); } ADF(L"Proxy: %s", ((Data->FtpProxyLogonType != 0) ? FORMAT(L"FTP proxy %d", (Data->FtpProxyLogonType)) : - UnicodeString(ProxyMethodList[Data->ProxyMethod]))); + EnumName(Data->ProxyMethod, ProxyMethodNames))); if ((Data->FtpProxyLogonType != 0) || (Data->ProxyMethod != ::pmNone)) { ADF(L"HostName: %s (Port: %d); Username: %s; Passwd: %s", @@ -1091,7 +1124,6 @@ void __fastcall TSessionLog::DoAddStartupInfo(TSessionData * Data) { ADF(L"Send buffer: %d", (Data->SendBuf)); } - wchar_t const * BugFlags = L"+-A"; if (Data->UsesSsh) { ADF(L"SSH protocol version: %s; Compression: %s", @@ -1112,15 +1144,15 @@ void __fastcall TSessionLog::DoAddStartupInfo(TSessionData * Data) UnicodeString Bugs; for (int Index = 0; Index < BUG_COUNT; Index++) { - Bugs += UnicodeString(BugFlags[Data->Bug[(TSshBug)Index]])+(IndexBug[(TSshBug)Index], AutoSwitchNames), L","); } ADF(L"SSH Bugs: %s", (Bugs)); ADF(L"Simple channel: %s", (BooleanToEngStr(Data->SshSimple))); ADF(L"Return code variable: %s; Lookup user groups: %s", ((Data->DetectReturnVar ? UnicodeString(L"Autodetect") : Data->ReturnVar), - BugFlags[Data->LookupUserGroups])); + EnumName(Data->LookupUserGroups, AutoSwitchNames))); ADF(L"Shell: %s", ((Data->Shell.IsEmpty()? UnicodeString(L"default") : Data->Shell))); - ADF(L"EOL: %d, UTF: %d", (Data->EOLType, Data->NotUtf)); // NotUtf duplicated in FTP branch + ADF(L"EOL: %s, UTF: %s", (EnumName(Data->EOLType, EOLTypeNames), EnumName(Data->NotUtf, NotAutoSwitchNames))); // NotUtf duplicated in FTP branch ADF(L"Clear aliases: %s, Unset nat.vars: %s, Resolve symlinks: %s", (BooleanToEngStr(Data->ClearAliases), BooleanToEngStr(Data->UnsetNationalVars), BooleanToEngStr(Data->ResolveSymlinks))); @@ -1134,49 +1166,62 @@ void __fastcall TSessionLog::DoAddStartupInfo(TSessionData * Data) UnicodeString Bugs; for (int Index = 0; Index < SFTP_BUG_COUNT; Index++) { - Bugs += UnicodeString(BugFlags[Data->SFTPBug[(TSftpBug)Index]])+(IndexSFTPBug[(TSftpBug)Index], AutoSwitchNames), L","); } ADF(L"SFTP Bugs: %s", (Bugs)); ADF(L"SFTP Server: %s", ((Data->SftpServer.IsEmpty()? UnicodeString(L"default") : Data->SftpServer))); } + bool FtpsOn = false; if (Data->FSProtocol == fsFTP) { - ADF(L"UTF: %d", (Data->NotUtf)); // duplicated in UsesSsh branch + ADF(L"UTF: %s", (EnumName(Data->NotUtf, NotAutoSwitchNames))); // duplicated in UsesSsh branch UnicodeString Ftps; switch (Data->Ftps) { case ftpsImplicit: Ftps = L"Implicit TLS/SSL"; + FtpsOn = true; break; case ftpsExplicitSsl: - Ftps = L"Explicit SSL"; + Ftps = L"Explicit SSL/TLS"; + FtpsOn = true; break; case ftpsExplicitTls: - Ftps = L"Explicit TLS"; + Ftps = L"Explicit TLS/SSL"; + FtpsOn = true; break; default: - assert(Data->Ftps == ftpsNone); + DebugAssert(Data->Ftps == ftpsNone); Ftps = L"None"; break; } + // kind of hidden option, so do not reveal it unless it is set + if (Data->FtpTransferActiveImmediately != asAuto) + { + ADF(L"Transfer active immediately: %s", (EnumName(Data->FtpTransferActiveImmediately, AutoSwitchNames))); + } ADF(L"FTP: FTPS: %s; Passive: %s [Force IP: %s]; MLSD: %s [List all: %s]", (Ftps, BooleanToEngStr(Data->FtpPasvMode), - BugFlags[Data->FtpForcePasvIp], - BugFlags[Data->FtpUseMlsd], - BugFlags[Data->FtpListAll])); - if (Data->Ftps != ftpsNone) + EnumName(Data->FtpForcePasvIp, AutoSwitchNames), + EnumName(Data->FtpUseMlsd, AutoSwitchNames), + EnumName(Data->FtpListAll, AutoSwitchNames))); + } + if (Data->FSProtocol == fsWebDAV) + { + FtpsOn = (Data->Ftps != ftpsNone); + ADF(L"HTTPS: %s", + (BooleanToEngStr(FtpsOn))); + } + if (FtpsOn) + { + if (Data->FSProtocol == fsFTP) { ADF(L"Session reuse: %s", (BooleanToEngStr(Data->SslSessionReuse))); - ADF(L"TLS/SSL versions: %s-%s", (GetTlsVersionName(Data->MinTlsVersion), GetTlsVersionName(Data->MaxTlsVersion))); - } - // kind of hidden option, so do not reveal it unless it is set - if (Data->FtpTransferActiveImmediately != asAuto) - { - ADF(L"Transfer active immediately: %s", (BugFlags[Data->FtpTransferActiveImmediately])); } + ADF(L"TLS/SSL versions: %s-%s", (GetTlsVersionName(Data->MinTlsVersion), GetTlsVersionName(Data->MaxTlsVersion))); } ADF(L"Local directory: %s, Remote directory: %s, Update: %s, Cache: %s", ((Data->LocalDirectory.IsEmpty() ? UnicodeString(L"default") : Data->LocalDirectory), @@ -1186,10 +1231,19 @@ void __fastcall TSessionLog::DoAddStartupInfo(TSessionData * Data) ADF(L"Cache directory changes: %s, Permanent: %s", (BooleanToEngStr(Data->CacheDirectoryChanges), BooleanToEngStr(Data->PreserveDirectoryChanges))); + ADF(L"Recycle bin: Delete to: %s, Overwritten to: %s, Bin path: %s", + (BooleanToEngStr(Data->DeleteToRecycleBin), + BooleanToEngStr(Data->OverwrittenToRecycleBin), + Data->RecycleBinPath)); + if (Data->TrimVMSVersions) + { + ADF(L"Trim VMS versions: %s", + (BooleanToEngStr(Data->TrimVMSVersions))); + } UnicodeString TimeInfo; if ((Data->FSProtocol == fsSFTP) || (Data->FSProtocol == fsSFTPonly) || (Data->FSProtocol == fsSCPonly) || (Data->FSProtocol == fsWebDAV)) { - AddToList(TimeInfo, FORMAT(L"DST mode: %d", (int(Data->DSTMode))), L";"); + AddToList(TimeInfo, FORMAT(L"DST mode: %s", (EnumName(Data->DSTMode, DSTModeNames))), L";"); } if ((Data->FSProtocol == fsSCPonly) || (Data->FSProtocol == fsFTP)) { @@ -1240,7 +1294,7 @@ int __fastcall TSessionLog::GetBottomIndex() //--------------------------------------------------------------------------- bool __fastcall TSessionLog::GetLoggingToFile() { - assert((FFile == NULL) || LogToFile()); + DebugAssert((FFile == NULL) || LogToFile()); return (FFile != NULL); } //--------------------------------------------------------------------------- @@ -1256,8 +1310,8 @@ void __fastcall TSessionLog::Clear() __fastcall TActionLog::TActionLog(TSessionUI * UI, TSessionData * SessionData, TConfiguration * Configuration) { - assert(UI != NULL); - assert(SessionData != NULL); + DebugAssert(UI != NULL); + DebugAssert(SessionData != NULL); Init(UI, SessionData, Configuration); } //--------------------------------------------------------------------------- @@ -1288,17 +1342,17 @@ void __fastcall TActionLog::Init(TSessionUI * UI, TSessionData * SessionData, //--------------------------------------------------------------------------- __fastcall TActionLog::~TActionLog() { - assert(FPendingActions->Count == 0); + DebugAssert(FPendingActions->Count == 0); delete FPendingActions; FClosed = true; ReflectSettings(); - assert(FFile == NULL); + DebugAssert(FFile == NULL); delete FCriticalSection; } //--------------------------------------------------------------------------- void __fastcall TActionLog::Add(const UnicodeString & Line) { - assert(FConfiguration); + DebugAssert(FConfiguration); if (FLogging) { try @@ -1420,8 +1474,8 @@ void __fastcall TActionLog::OpenLogFile() { try { - assert(FFile == NULL); - assert(FConfiguration != NULL); + DebugAssert(FFile == NULL); + DebugAssert(FConfiguration != NULL); FCurrentLogFileName = FConfiguration->ActionsLogFileName; FFile = OpenFile(FCurrentLogFileName, FSessionData, false, FCurrentFileName); } @@ -1461,9 +1515,9 @@ void __fastcall TActionLog::RecordPendingActions() //--------------------------------------------------------------------------- void __fastcall TActionLog::BeginGroup(UnicodeString Name) { - assert(!FInGroup); + DebugAssert(!FInGroup); FInGroup = true; - assert(FIndent == L" "); + DebugAssert(FIndent == L" "); AddIndented(FORMAT(L"", (XmlAttributeEscape(Name), StandardTimestamp()))); FIndent = L" "; @@ -1471,9 +1525,9 @@ void __fastcall TActionLog::BeginGroup(UnicodeString Name) //--------------------------------------------------------------------------- void __fastcall TActionLog::EndGroup() { - assert(FInGroup); + DebugAssert(FInGroup); FInGroup = false; - assert(FIndent == L" "); + DebugAssert(FIndent == L" "); FIndent = L" "; // this is called from ReflectSettings that in turn is called when logging fails, // so do not try to close the group, if it has not been opened, to avoid recursion diff --git a/source/core/SessionInfo.h b/source/core/SessionInfo.h index 0990e545..d1d8348d 100644 --- a/source/core/SessionInfo.h +++ b/source/core/SessionInfo.h @@ -41,6 +41,7 @@ enum TFSCapability { fcUserGroupListing, fcModeChanging, fcGroupChanging, fcCheckingSpaceAvailable, fcIgnorePermErrors, fcCalculatingChecksum, fcModeChangingUpload, fcPreservingTimestampUpload, fcShellAnyCommand, fcSecondaryShell, fcRemoveCtrlZUpload, fcRemoveBOMUpload, fcMoveToQueue, + fcLocking, fcPreservingTimestampDirs, fcCount }; //--------------------------------------------------------------------------- struct TFileSystemInfo @@ -288,6 +289,7 @@ class TSessionLog : protected TStringList UnicodeString __fastcall LogSensitive(const UnicodeString & Str); void __fastcall AddOption(const UnicodeString & LogStr); void __fastcall AddOptions(TOptions * Options); + UnicodeString __fastcall GetCmdLineLog(); }; //--------------------------------------------------------------------------- class TActionLog diff --git a/source/core/SftpFileSystem.cpp b/source/core/SftpFileSystem.cpp index 4c7c4089..c04692a7 100644 --- a/source/core/SftpFileSystem.cpp +++ b/source/core/SftpFileSystem.cpp @@ -290,7 +290,7 @@ class TSFTPPacket { AssignNumber(); - assert(Length >= 5); + DebugAssert(Length >= 5); // duplicated in AddCardinal() unsigned char Buf[4]; @@ -354,7 +354,7 @@ class TSFTPPacket } else { - AddString(AnsiString(Value)); + AddString(RawByteString(AnsiString(Value))); } } @@ -379,17 +379,17 @@ class TSFTPPacket Flags |= AllocationSizeAttribute(Version); } // both or neither - assert((Owner != NULL) == (Group != NULL)); + DebugAssert((Owner != NULL) == (Group != NULL)); if ((Owner != NULL) && (Group != NULL)) { if (Version < 4) { - assert(Owner->IDValid && Group->IDValid); + DebugAssert(Owner->IDValid && Group->IDValid); Flags |= SSH_FILEXFER_ATTR_UIDGID; } else { - assert(Owner->NameValid && Group->NameValid); + DebugAssert(Owner->NameValid && Group->NameValid); Flags |= SSH_FILEXFER_ATTR_OWNERGROUP; } } @@ -428,13 +428,13 @@ class TSFTPPacket { if (Version < 4) { - assert(Owner->IDValid && Group->IDValid); + DebugAssert(Owner->IDValid && Group->IDValid); AddCardinal(Owner->ID); AddCardinal(Group->ID); } else { - assert(Owner->NameValid && Group->NameValid); + DebugAssert(Owner->NameValid && Group->NameValid); AddString(Owner->Name, Utf); AddString(Group->Name, Utf); } @@ -586,7 +586,7 @@ class TSFTPPacket unsigned long Len = GetCardinal(); Need(Len); // cannot happen anyway as Need() would raise exception - assert(Len < SFTP_MAX_PACKET_LEN); + DebugAssert(Len < SFTP_MAX_PACKET_LEN); Result.SetLength(Len); memcpy(Result.c_str(), FData + FPosition, Len); DataConsumed(Len); @@ -611,7 +611,7 @@ class TSFTPPacket // the content should be pure ASCII (e.g. extension names, etc.) inline UnicodeString GetAnsiString() { - return AsAnsiString(GetRawByteString()); + return AnsiToString(GetRawByteString()); } inline RawByteString GetFileHandle() @@ -639,7 +639,7 @@ class TSFTPPacket void GetFile(TRemoteFile * File, int Version, TDSTMode DSTMode, TAutoSwitch & Utf, bool SignedTS, bool Complete) { - assert(File); + DebugAssert(File); unsigned int Flags; UnicodeString ListingStr; unsigned long Permissions = 0; @@ -686,7 +686,7 @@ class TSFTPPacket } if (Flags & SSH_FILEXFER_ATTR_OWNERGROUP) { - assert(Version >= 4); + DebugAssert(Version >= 4); File->Owner.Name = GetString(Utf); File->Group.Name = GetString(Utf); } @@ -880,7 +880,7 @@ class TSFTPPacket try { DumpLines->LoadFromFile(FileName); - Dump = AnsiString(DumpLines->Text); + Dump = RawByteString(AnsiString(DumpLines->Text)); } __finally { @@ -904,7 +904,7 @@ class TSFTPPacket else { Byte[1] = C; - assert(Length < Capacity); + DebugAssert(Length < Capacity); Data[Length] = HexToByte(UnicodeString(reinterpret_cast(Byte))); Length++; memset(Byte, '\0', sizeof(Byte)); @@ -990,7 +990,7 @@ class TSFTPPacket } else { - assert(Type == SSH_FXP_VERSION); + DebugAssert(Type == SSH_FXP_VERSION); return SSH_FXP_INIT; } } @@ -1101,14 +1101,9 @@ class TSFTPPacket return Result; } - inline UnicodeString AsAnsiString(const RawByteString & S) - { - return UnicodeString(AnsiString(S.c_str())); - } - inline UnicodeString GetUtfString(TAutoSwitch & Utf) { - assert(Utf != asOff); + DebugAssert(Utf != asOff); UnicodeString Result; RawByteString S = GetRawByteString(); @@ -1118,13 +1113,13 @@ class TSFTPPacket if (EncodeType == etANSI) { Utf = asOff; - Result = AsAnsiString(S); + Result = AnsiToString(S); } } if (Utf != asOff) { - Result = UnicodeString(UTF8String(S.c_str())); + Result = UTF8ToString(S); } return Result; @@ -1139,7 +1134,7 @@ class TSFTPQueue __fastcall TSFTPQueue(TSFTPFileSystem * AFileSystem) { FFileSystem = AFileSystem; - assert(FFileSystem); + DebugAssert(FFileSystem); FRequests = new TList(); FResponses = new TList(); } @@ -1149,15 +1144,15 @@ class TSFTPQueue TSFTPQueuePacket * Request; TSFTPPacket * Response; - assert(FResponses->Count == FRequests->Count); + DebugAssert(FResponses->Count == FRequests->Count); for (int Index = 0; Index < FRequests->Count; Index++) { Request = static_cast(FRequests->Items[Index]); - assert(Request); + DebugAssert(Request); delete Request; Response = static_cast(FResponses->Items[Index]); - assert(Response); + DebugAssert(Response); delete Response; } delete FRequests; @@ -1171,20 +1166,20 @@ class TSFTPQueue virtual void __fastcall Dispose() { - assert(FFileSystem->FTerminal->Active); + DebugAssert(FFileSystem->FTerminal->Active); TSFTPQueuePacket * Request; TSFTPPacket * Response; while (FRequests->Count) { - assert(FResponses->Count); + DebugAssert(FResponses->Count); Request = static_cast(FRequests->Items[0]); - assert(Request); + DebugAssert(Request); Response = static_cast(FResponses->Items[0]); - assert(Response); + DebugAssert(Response); try { @@ -1220,9 +1215,9 @@ class TSFTPQueue } bool __fastcall ReceivePacket(TSFTPPacket * Packet, - int ExpectedType = -1, int AllowStatus = -1, void ** Token = NULL) + int ExpectedType = -1, int AllowStatus = -1, void ** Token = NULL, bool TryOnly = false) { - assert(FRequests->Count); + DebugAssert(FRequests->Count); bool Result; TSFTPQueuePacket * Request = NULL; TSFTPPacket * Response = NULL; @@ -1230,7 +1225,7 @@ class TSFTPQueue { Request = static_cast(FRequests->Items[0]); FRequests->Delete(0); - assert(Request); + DebugAssert(Request); if (Token != NULL) { *Token = Request->Token; @@ -1238,19 +1233,30 @@ class TSFTPQueue Response = static_cast(FResponses->Items[0]); FResponses->Delete(0); - assert(Response); + DebugAssert(Response); - ReceiveResponse(Request, Response, ExpectedType, AllowStatus); + ReceiveResponse(Request, Response, ExpectedType, AllowStatus, TryOnly); - if (Packet) + if ((Response->Capacity == 0) && DebugAlwaysTrue(TryOnly)) { - *Packet = *Response; + FRequests->Insert(0, Request); + Request = NULL; + FResponses->Insert(0, Response); + Response = NULL; + Result = true; } - - Result = !End(Response); - if (Result) + else { - SendRequests(); + if (Packet) + { + *Packet = *Response; + } + + Result = !End(Response); + if (Result) + { + SendRequests(); + } } } __finally @@ -1295,9 +1301,9 @@ class TSFTPQueue virtual void __fastcall ReceiveResponse( const TSFTPPacket * Packet, TSFTPPacket * Response, int ExpectedType = -1, - int AllowStatus = -1) + int AllowStatus = -1, bool TryOnly = false) { - FFileSystem->ReceiveResponse(Packet, Response, ExpectedType, AllowStatus); + FFileSystem->ReceiveResponse(Packet, Response, ExpectedType, AllowStatus, TryOnly); } // sends as many requests as allowed by implementation @@ -1401,7 +1407,9 @@ class TSFTPAsynchronousQueue : public TSFTPQueue // event handler for incoming data void __fastcall ReceiveHandler(TObject * /*Sender*/) { - while (FFileSystem->PeekPacket() && ReceivePacketAsynchronously()) + while (// optimization only as we call ReceivePacket with TryOnly anyway + FFileSystem->PeekPacket() && + ReceivePacketAsynchronously()) { // loop } @@ -1587,15 +1595,23 @@ class TSFTPUploadQueue : public TSFTPAsynchronousQueue virtual void __fastcall ReceiveResponse( const TSFTPPacket * Packet, TSFTPPacket * Response, int ExpectedType, - int AllowStatus) + int AllowStatus, bool TryOnly) { - TSFTPAsynchronousQueue::ReceiveResponse(Packet, Response, ExpectedType, AllowStatus); - // particularly when uploading a file that completelly fits into send buffer - // over slow line, we may end up seemingly completing the transfer immediatelly - // but hanging the application for a long time waiting for responses - // (common is that the progress window would not even manage to draw itself, - // showing that upload finished, before the application "hangs") - FFileSystem->Progress(OperationProgress); + TSFTPAsynchronousQueue::ReceiveResponse(Packet, Response, ExpectedType, AllowStatus, TryOnly); + + if (Response->Capacity > 0) + { + // particularly when uploading a file that completelly fits into send buffer + // over slow line, we may end up seemingly completing the transfer immediatelly + // but hanging the application for a long time waiting for responses + // (common is that the progress window would not even manage to draw itself, + // showing that upload finished, before the application "hangs") + FFileSystem->Progress(OperationProgress); + } + else + { + DebugAssert(TryOnly); + } } virtual bool __fastcall ReceivePacketAsynchronously() @@ -1604,7 +1620,10 @@ class TSFTPUploadQueue : public TSFTPAsynchronousQueue bool Result = (FRequests->Count > 0); if (Result) { - ReceivePacket(NULL, SSH_FXP_STATUS); + // Try only: We cannot read from the socket here as we are already called + // from TSecureShell::HandleNetworkEvents as it would cause a recursion + // that would potentially make PuTTY code process the SSH packets in wrong order. + ReceivePacket(NULL, SSH_FXP_STATUS, -1, NULL, true); } return Result; } @@ -1752,13 +1771,13 @@ class TSFTPCalculateFilesChecksumQueue : public TSFTPFixedLenQueue while (!Result && (FIndex < FFileList->Count)) { TRemoteFile * File = static_cast(FFileList->Objects[FIndex]); - assert(File != NULL); + DebugAssert(File != NULL); FIndex++; Result = !File->IsDirectory; if (Result) { - assert(!File->IsParentDirectory && !File->IsThisDirectory); + DebugAssert(!File->IsParentDirectory && !File->IsThisDirectory); Request->ChangeType(SSH_FXP_EXTENDED); Request->AddString(SFTP_EXT_CHECK_FILE_NAME); @@ -1803,7 +1822,7 @@ class TSFTPBusy __fastcall TSFTPBusy(TSFTPFileSystem * FileSystem) { FFileSystem = FileSystem; - assert(FFileSystem != NULL); + DebugAssert(FFileSystem != NULL); FFileSystem->BusyStart(); } @@ -1930,7 +1949,7 @@ void __fastcall TSFTPFileSystem::CollectUsage() VersionCounter = L"OpenedSessionsSFTP6"; break; default: - FAIL; + DebugFail(); } FTerminal->Configuration->Usage->Inc(VersionCounter); } @@ -2031,7 +2050,7 @@ void __fastcall TSFTPFileSystem::ResetConnection() // there must be no valid packet reservation at the end for (int i = 0; i < FPacketReservations->Count; i++) { - assert(FPacketReservations->Items[i] == NULL); + DebugAssert(FPacketReservations->Items[i] == NULL); delete (TSFTPPacket *)FPacketReservations->Items[i]; } FPacketReservations->Clear(); @@ -2040,7 +2059,7 @@ void __fastcall TSFTPFileSystem::ResetConnection() //--------------------------------------------------------------------------- bool __fastcall TSFTPFileSystem::IsCapable(int Capability) const { - assert(FTerminal); + DebugAssert(FTerminal); switch (Capability) { case fcAnyCommand: case fcShellAnyCommand: @@ -2054,6 +2073,7 @@ bool __fastcall TSFTPFileSystem::IsCapable(int Capability) const case fcRemoveCtrlZUpload: case fcRemoveBOMUpload: case fcMoveToQueue: + case fcPreservingTimestampDirs: return true; case fcRename: @@ -2097,7 +2117,7 @@ bool __fastcall TSFTPFileSystem::IsCapable(int Capability) const // This is here only because of VShell // (it supports owner/group, but does not include them into response to // SSH_FXP_READDIR) - // and Bitwise (the same as VShell, but it does not even bother to provide "supported" extension) + // and Bitwise (the same as VShell, but it does not even bother to provide "supported" extension until 6.21) // No other use is known. return (FSupport->Loaded && @@ -2113,7 +2133,7 @@ bool __fastcall TSFTPFileSystem::IsCapable(int Capability) const SupportsExtension(SFTP_EXT_SPACE_AVAILABLE) || // extension announced by proprietary SFTP_EXT_STATVFS extension FSupportsStatVfsV2 || - // Bitwise (as of 6.07) fails to report it's supported extensions. + // Bitwise (until 6.21) fails to report it's supported extensions. (FSecureShell->SshImplementation == sshiBitvise); case fcCalculatingChecksum: @@ -2137,8 +2157,11 @@ bool __fastcall TSFTPFileSystem::IsCapable(int Capability) const (FVersion >= 6) || FSupportsHardlink; + case fcLocking: + return false; + default: - FAIL; + DebugFail(); return false; } } @@ -2155,12 +2178,12 @@ inline void __fastcall TSFTPFileSystem::BusyStart() FBusyToken = ::BusyStart(); } FBusy++; - assert(FBusy < 10); + DebugAssert(FBusy < 10); } //--------------------------------------------------------------------------- inline void __fastcall TSFTPFileSystem::BusyEnd() { - assert(FBusy > 0); + DebugAssert(FBusy > 0); FBusy--; if (FBusy == 0 && FTerminal->UseBusyCursor && !FAvoidBusy) { @@ -2172,7 +2195,7 @@ inline void __fastcall TSFTPFileSystem::BusyEnd() unsigned long __fastcall TSFTPFileSystem::TransferBlockSize(unsigned long Overhead, TFileOperationProgressType * OperationProgress, unsigned long MaxPacketSize) { - const unsigned long MinPacketSize = 4096; + const unsigned long MinPacketSize = 32768; // size + message number + type const unsigned long SFTPPacketOverhead = 4 + 4 + 1; unsigned long AMaxPacketSize = FSecureShell->MaxPacketSize(); @@ -2209,7 +2232,7 @@ unsigned long __fastcall TSFTPFileSystem::TransferBlockSize(unsigned long Overhe if (AMaxPacketSize < Overhead) { // do not send another request - // (generally should happen only if upload buffer if full) + // (generally should happen only if upload buffer is full) Result = 0; } else @@ -2410,6 +2433,7 @@ unsigned long __fastcall TSFTPFileSystem::GotStatusPacket(TSFTPPacket * Packet, if (Code == SSH_FX_FAILURE) { FTerminal->Configuration->Usage->Inc(L"SftpFailureErrors"); + Error += L"\n\n" + LoadStr(SFTP_STATUS_4); } FTerminal->TerminalError(NULL, Error, HelpKeyword); return 0; @@ -2433,7 +2457,7 @@ void __fastcall TSFTPFileSystem::RemoveReservation(int Reservation) TSFTPPacket * Packet = (TSFTPPacket *)FPacketReservations->Items[Reservation]; if (Packet) { - assert(Packet->ReservedBy == this); + DebugAssert(Packet->ReservedBy == this); Packet->ReservedBy = NULL; } FPacketReservations->Delete(Reservation); @@ -2471,7 +2495,7 @@ bool __fastcall TSFTPFileSystem::PeekPacket() } //--------------------------------------------------------------------------- int __fastcall TSFTPFileSystem::ReceivePacket(TSFTPPacket * Packet, - int ExpectedType, int AllowStatus) + int ExpectedType, int AllowStatus, bool TryOnly) { TSFTPBusy Busy(this); @@ -2485,68 +2509,78 @@ int __fastcall TSFTPFileSystem::ReceivePacket(TSFTPPacket * Packet, { IsReserved = false; - assert(Packet); - unsigned char LenBuf[4]; - FSecureShell->Receive(LenBuf, sizeof(LenBuf)); - int Length = PacketLength(LenBuf, ExpectedType); - Packet->Capacity = Length; - FSecureShell->Receive(Packet->Data, Length); - Packet->DataUpdated(Length); + DebugAssert(Packet); - if (FTerminal->Log->Logging) + if (TryOnly && !PeekPacket()) + { + // Reset packet in case it was filled by previous out-of-order + // reserved packet + *Packet = TSFTPPacket(); + } + else { - if ((FPreviousLoggedPacket != SSH_FXP_READ && - FPreviousLoggedPacket != SSH_FXP_WRITE) || - (Packet->Type != SSH_FXP_STATUS && Packet->Type != SSH_FXP_DATA) || - (FTerminal->Configuration->ActualLogProtocol >= 1)) + unsigned char LenBuf[4]; + FSecureShell->Receive(LenBuf, sizeof(LenBuf)); + int Length = PacketLength(LenBuf, ExpectedType); + Packet->Capacity = Length; + FSecureShell->Receive(Packet->Data, Length); + Packet->DataUpdated(Length); + + if (FTerminal->Log->Logging) { - if (FNotLoggedPackets) + if ((FPreviousLoggedPacket != SSH_FXP_READ && + FPreviousLoggedPacket != SSH_FXP_WRITE) || + (Packet->Type != SSH_FXP_STATUS && Packet->Type != SSH_FXP_DATA) || + (FTerminal->Configuration->ActualLogProtocol >= 1)) { - FTerminal->LogEvent(FORMAT(L"%d skipped SSH_FXP_WRITE, SSH_FXP_READ, SSH_FXP_DATA and SSH_FXP_STATUS packets.", - (FNotLoggedPackets))); - FNotLoggedPackets = 0; + if (FNotLoggedPackets) + { + FTerminal->LogEvent(FORMAT(L"%d skipped SSH_FXP_WRITE, SSH_FXP_READ, SSH_FXP_DATA and SSH_FXP_STATUS packets.", + (FNotLoggedPackets))); + FNotLoggedPackets = 0; + } + FTerminal->Log->Add(llOutput, FORMAT(L"Type: %s, Size: %d, Number: %d", + (Packet->TypeName, (int)Packet->Length, (int)Packet->MessageNumber))); + if (FTerminal->Configuration->ActualLogProtocol >= 2) + { + FTerminal->Log->Add(llOutput, Packet->Dump()); + } } - FTerminal->Log->Add(llOutput, FORMAT(L"Type: %s, Size: %d, Number: %d", - (Packet->TypeName, (int)Packet->Length, (int)Packet->MessageNumber))); - if (FTerminal->Configuration->ActualLogProtocol >= 2) + else { - FTerminal->Log->Add(llOutput, Packet->Dump()); + FNotLoggedPackets++; } } - else - { - FNotLoggedPackets++; - } - } - if (Reservation < 0 || - Packet->MessageNumber != (unsigned int)FPacketNumbers.GetElement(Reservation)) - { - TSFTPPacket * ReservedPacket; - unsigned int MessageNumber; - for (int Index = 0; Index < FPacketReservations->Count; Index++) + if (Reservation < 0 || + Packet->MessageNumber != (unsigned int)FPacketNumbers.GetElement(Reservation)) { - MessageNumber = (unsigned int)FPacketNumbers.GetElement(Index); - if (MessageNumber == Packet->MessageNumber) + TSFTPPacket * ReservedPacket; + unsigned int MessageNumber; + for (int Index = 0; Index < FPacketReservations->Count; Index++) { - ReservedPacket = (TSFTPPacket *)FPacketReservations->Items[Index]; - IsReserved = true; - if (ReservedPacket) + MessageNumber = (unsigned int)FPacketNumbers.GetElement(Index); + if (MessageNumber == Packet->MessageNumber) { - FTerminal->LogEvent(L"Storing reserved response"); - *ReservedPacket = *Packet; - } - else - { - FTerminal->LogEvent(L"Discarding reserved response"); - RemoveReservation(Index); - if ((Reservation >= 0) && (Reservation > Index)) + ReservedPacket = (TSFTPPacket *)FPacketReservations->Items[Index]; + IsReserved = true; + if (ReservedPacket) { - Reservation--; - assert(Reservation == FPacketReservations->IndexOf(Packet)); + FTerminal->LogEvent(L"Storing reserved response"); + *ReservedPacket = *Packet; } + else + { + FTerminal->LogEvent(L"Discarding reserved response"); + RemoveReservation(Index); + if ((Reservation >= 0) && (Reservation > Index)) + { + Reservation--; + DebugAssert(Reservation == FPacketReservations->IndexOf(Packet)); + } + } + break; } - break; } } } @@ -2554,29 +2588,36 @@ int __fastcall TSFTPFileSystem::ReceivePacket(TSFTPPacket * Packet, while (IsReserved); } - // before we removed the reservation after check for packet type, - // but if it raises exception, removal is unnecessarily - // postponed until the packet is removed - // (and it have not worked anyway until recent fix to UnreserveResponse) - if (Reservation >= 0) + if ((Packet->Capacity == 0) && DebugAlwaysTrue(TryOnly)) { - assert(Packet->MessageNumber == (unsigned int)FPacketNumbers.GetElement(Reservation)); - RemoveReservation(Reservation); + // noop } - - if (ExpectedType >= 0) + else { - if (Packet->Type == SSH_FXP_STATUS) + // before we removed the reservation after check for packet type, + // but if it raises exception, removal is unnecessarily + // postponed until the packet is removed + // (and it have not worked anyway until recent fix to UnreserveResponse) + if (Reservation >= 0) { - if (AllowStatus < 0) - { - AllowStatus = (ExpectedType == SSH_FXP_STATUS ? asOK : asNo); - } - Result = GotStatusPacket(Packet, AllowStatus); + DebugAssert(Packet->MessageNumber == (unsigned int)FPacketNumbers.GetElement(Reservation)); + RemoveReservation(Reservation); } - else if (ExpectedType != Packet->Type) + + if (ExpectedType >= 0) { - FTerminal->FatalError(NULL, FMTLOAD(SFTP_INVALID_TYPE, ((int)Packet->Type))); + if (Packet->Type == SSH_FXP_STATUS) + { + if (AllowStatus < 0) + { + AllowStatus = (ExpectedType == SSH_FXP_STATUS ? asOK : asNo); + } + Result = GotStatusPacket(Packet, AllowStatus); + } + else if (ExpectedType != Packet->Type) + { + FTerminal->FatalError(NULL, FMTLOAD(SFTP_INVALID_TYPE, ((int)Packet->Type))); + } } } @@ -2588,7 +2629,7 @@ void __fastcall TSFTPFileSystem::ReserveResponse(const TSFTPPacket * Packet, { if (Response != NULL) { - assert(FPacketReservations->IndexOf(Response) < 0); + DebugAssert(FPacketReservations->IndexOf(Response) < 0); // mark response as not received yet Response->Capacity = 0; Response->ReservedBy = this; @@ -2626,14 +2667,14 @@ void __fastcall TSFTPFileSystem::UnreserveResponse(TSFTPPacket * Response) //--------------------------------------------------------------------------- int __fastcall TSFTPFileSystem::ReceiveResponse( const TSFTPPacket * Packet, TSFTPPacket * Response, int ExpectedType, - int AllowStatus) + int AllowStatus, bool TryOnly) { int Result; unsigned int MessageNumber = Packet->MessageNumber; TSFTPPacket * AResponse = (Response ? Response : new TSFTPPacket()); try { - Result = ReceivePacket(AResponse, ExpectedType, AllowStatus); + Result = ReceivePacket(AResponse, ExpectedType, AllowStatus, TryOnly); if (MessageNumber != AResponse->MessageNumber) { FTerminal->FatalError(NULL, FMTLOAD(SFTP_MESSAGE_NUMBER, @@ -2932,7 +2973,7 @@ void __fastcall TSFTPFileSystem::DoStartup() if (ExtensionName == SFTP_EXT_NEWLINE) { - FEOL = AnsiString(ExtensionData.c_str()); + FEOL = AnsiString(ExtensionData); FTerminal->LogEvent(FORMAT(L"Server requests EOL sequence %s.", (ExtensionDisplayData))); if (FEOL.Length() < 1 || FEOL.Length() > 2) @@ -3020,7 +3061,7 @@ void __fastcall TSFTPFileSystem::DoStartup() else if (ExtensionName == SFTP_EXT_FSROOTS) { FTerminal->LogEvent(L"File system roots:\n"); - assert(FFixedPaths == NULL); + DebugAssert(FFixedPaths == NULL); FFixedPaths = new TStringList(); try { @@ -3066,12 +3107,12 @@ void __fastcall TSFTPFileSystem::DoStartup() { // if that fails, fallback to proper decoding FTerminal->LogEvent(FORMAT(L"SFTP versions supported by the server: %s", - (UnicodeString(AnsiString(ExtensionData.c_str()))))); + (AnsiToString(ExtensionData)))); } } else if (ExtensionName == SFTP_EXT_STATVFS) { - UnicodeString StatVfsVersion = UnicodeString(AnsiString(ExtensionData.c_str())); + UnicodeString StatVfsVersion = AnsiToString(ExtensionData); if (StatVfsVersion == SFTP_EXT_STATVFS_VALUE_V2) { FSupportsStatVfsV2 = true; @@ -3084,7 +3125,7 @@ void __fastcall TSFTPFileSystem::DoStartup() } else if (ExtensionName == SFTP_EXT_HARDLINK) { - UnicodeString HardlinkVersion = UnicodeString(AnsiString(ExtensionData.c_str())); + UnicodeString HardlinkVersion = AnsiToString(ExtensionData); if (HardlinkVersion == SFTP_EXT_HARDLINK_VALUE_V1) { FSupportsHardlink = true; @@ -3141,7 +3182,7 @@ void __fastcall TSFTPFileSystem::DoStartup() break; default: - FAIL; + DebugFail(); case asAuto: // Nb, Foxit server does not exist anymore if (GetSessionInfo().SshImplementation.Pos(L"Foxit-WAC-Server") == 1) @@ -3158,7 +3199,7 @@ void __fastcall TSFTPFileSystem::DoStartup() } else { - FTerminal->LogEvent(L"We will use UTF-8 strings until server sends an invalid UTF-8 string as with SFTP version 3 and older UTF-8 string are not mandatory"); + FTerminal->LogEvent(L"We will use UTF-8 strings until server sends an invalid UTF-8 string as with SFTP version 3 and older UTF-8 strings are not mandatory"); FUtfStrings = asAuto; FUtfDisablingAnnounced = false; } @@ -3195,7 +3236,7 @@ char * __fastcall TSFTPFileSystem::GetEOL() const { if (FVersion >= 4) { - assert(!FEOL.IsEmpty()); + DebugAssert(!FEOL.IsEmpty()); return FEOL.c_str(); } else @@ -3206,7 +3247,7 @@ char * __fastcall TSFTPFileSystem::GetEOL() const //--------------------------------------------------------------------------- void __fastcall TSFTPFileSystem::LookupUsersGroups() { - assert(SupportsExtension(SFTP_EXT_OWNER_GROUP)); + DebugAssert(SupportsExtension(SFTP_EXT_OWNER_GROUP)); TSFTPPacket PacketOwners(SSH_FXP_EXTENDED); TSFTPPacket PacketGroups(SSH_FXP_EXTENDED); @@ -3324,7 +3365,7 @@ void __fastcall TSFTPFileSystem::CachedChangeDirectory(const UnicodeString Direc //--------------------------------------------------------------------------- void __fastcall TSFTPFileSystem::ReadDirectory(TRemoteFileList * FileList) { - assert(FileList && !FileList->Directory.IsEmpty()); + DebugAssert(FileList && !FileList->Directory.IsEmpty()); UnicodeString Directory; Directory = UnixExcludeTrailingBackslash(LocalCanonify(FileList->Directory)); @@ -3359,6 +3400,7 @@ void __fastcall TSFTPFileSystem::ReadDirectory(TRemoteFileList * FileList) { bool isEOF = false; int Total = 0; + bool HasParentDirectory = false; TRemoteFile * File; Packet.ChangeType(SSH_FXP_READDIR); @@ -3393,6 +3435,10 @@ void __fastcall TSFTPFileSystem::ReadDirectory(TRemoteFileList * FileList) { ResolvedLinks++; } + if (File->IsParentDirectory) + { + HasParentDirectory = true; + } FileList->AddFile(File); Total++; @@ -3478,7 +3524,7 @@ void __fastcall TSFTPFileSystem::ReadDirectory(TRemoteFileList * FileList) File = new TRemoteParentDirectory(FTerminal); } - assert(File && File->IsParentDirectory); + DebugAssert(File && File->IsParentDirectory); FileList->AddFile(File); if (Failure) @@ -3488,6 +3534,13 @@ void __fastcall TSFTPFileSystem::ReadDirectory(TRemoteFileList * FileList) HELP_EMPTY_DIRECTORY); } } + else + { + if (!HasParentDirectory) + { + FileList->AddFile(new TRemoteParentDirectory(FTerminal)); + } + } } __finally { @@ -3505,8 +3558,8 @@ void __fastcall TSFTPFileSystem::ReadDirectory(TRemoteFileList * FileList) void __fastcall TSFTPFileSystem::ReadSymlink(TRemoteFile * SymlinkFile, TRemoteFile *& File) { - assert(SymlinkFile && SymlinkFile->IsSymLink); - assert(FVersion >= 3); // symlinks are supported with SFTP version 3 and later + DebugAssert(SymlinkFile && SymlinkFile->IsSymLink); + DebugAssert(FVersion >= 3); // symlinks are supported with SFTP version 3 and later // need to use full filename when resolving links within subdirectory // (i.e. for download) @@ -3610,7 +3663,7 @@ void __fastcall TSFTPFileSystem::CustomReadFile(const UnicodeString FileName, } else { - assert(AllowStatus > 0); + DebugAssert(AllowStatus > 0); File = NULL; } } @@ -3679,7 +3732,7 @@ void __fastcall TSFTPFileSystem::CopyFile(const UnicodeString FileName, const UnicodeString NewName) { // Implemented by ProFTPD/mod_sftp and Bitvise WinSSHD (without announcing it) - assert(SupportsExtension(SFTP_EXT_COPY_FILE) || (FSecureShell->SshImplementation == sshiBitvise)); + DebugAssert(SupportsExtension(SFTP_EXT_COPY_FILE) || (FSecureShell->SshImplementation == sshiBitvise)); TSFTPPacket Packet(SSH_FXP_EXTENDED); Packet.AddString(SFTP_EXT_COPY_FILE); Packet.AddPathString(Canonify(FileName), FUtfStrings); @@ -3705,7 +3758,7 @@ void __fastcall TSFTPFileSystem::CreateLink(const UnicodeString FileName, // Unrecognized SFTP client command: (20) // Unknown SFTP packet - Sending Unsupported OP response - assert(FVersion >= 3); // links are supported with SFTP version 3 and later + DebugAssert(FVersion >= 3); // links are supported with SFTP version 3 and later bool UseLink = (FVersion >= 6); bool UseHardlink = !Symbolic && !UseLink && FSupportsHardlink; TSFTPPacket Packet(UseHardlink ? SSH_FXP_EXTENDED : (UseLink ? SSH_FXP_LINK : SSH_FXP_SYMLINK)); @@ -3802,7 +3855,7 @@ void __fastcall TSFTPFileSystem::ChangeFileProperties(const UnicodeString FileNa const TRemoteFile * /*File*/, const TRemoteProperties * AProperties, TChmodSessionAction & Action) { - assert(AProperties != NULL); + DebugAssert(AProperties != NULL); TRemoteFile * File; @@ -3811,7 +3864,7 @@ void __fastcall TSFTPFileSystem::ChangeFileProperties(const UnicodeString FileNa try { - assert(File); + DebugAssert(File); if (File->IsDirectory && !File->IsSymLink && AProperties->Recursive) { @@ -3878,10 +3931,10 @@ bool __fastcall TSFTPFileSystem::LoadFilesProperties(TStrings * FileList) do { Next = Queue.ReceivePacket(&Packet, File); - assert((Packet.Type == SSH_FXP_ATTRS) || (Packet.Type == SSH_FXP_STATUS)); + DebugAssert((Packet.Type == SSH_FXP_ATTRS) || (Packet.Type == SSH_FXP_STATUS)); if (Packet.Type == SSH_FXP_ATTRS) { - assert(File != NULL); + DebugAssert(File != NULL); Progress.SetFile(File->FileName); LoadFile(File, &Packet); Result = true; @@ -3923,7 +3976,7 @@ void __fastcall TSFTPFileSystem::DoCalculateFilesChecksum( for (int Index = 0; Index < FileList->Count; Index++) { TRemoteFile * File = (TRemoteFile *)FileList->Objects[Index]; - assert(File != NULL); + DebugAssert(File != NULL); if (File->IsDirectory && !File->IsSymLink && !File->IsParentDirectory && !File->IsThisDirectory) { @@ -3987,7 +4040,7 @@ void __fastcall TSFTPFileSystem::DoCalculateFilesChecksum( try { Next = Queue.ReceivePacket(&Packet, File); - assert(Packet.Type == SSH_FXP_EXTENDED_REPLY); + DebugAssert(Packet.Type == SSH_FXP_EXTENDED_REPLY); OperationProgress->SetFile(File->FileName); Action.FileName(FTerminal->AbsolutePath(File->FullFileName, true)); @@ -4082,13 +4135,13 @@ void __fastcall TSFTPFileSystem::CustomCommandOnFile(const UnicodeString /*FileN const TRemoteFile * /*File*/, UnicodeString /*Command*/, int /*Params*/, TCaptureOutputEvent /*OutputEvent*/) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void __fastcall TSFTPFileSystem::AnyCommand(const UnicodeString /*Command*/, TCaptureOutputEvent /*OutputEvent*/) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- TStrings * __fastcall TSFTPFileSystem::GetFixedPaths() @@ -4131,7 +4184,7 @@ void __fastcall TSFTPFileSystem::SpaceAvailable(const UnicodeString Path, FTerminal->LogEvent(L"Missing bytes-per-allocation-unit field"); } } - else if (ALWAYS_TRUE(FSupportsStatVfsV2)) + else if (DebugAlwaysTrue(FSupportsStatVfsV2)) { // http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL?rev=HEAD;content-type=text/plain TSFTPPacket Packet(SSH_FXP_EXTENDED); @@ -4199,7 +4252,7 @@ void __fastcall TSFTPFileSystem::CopyToRemote(TStrings * FilesToCopy, int Params, TFileOperationProgressType * OperationProgress, TOnceDoneOperation & OnceDoneOperation) { - assert(FilesToCopy && OperationProgress); + DebugAssert(FilesToCopy && OperationProgress); UnicodeString FileName, FileNameOnly; UnicodeString FullTargetDir = UnixIncludeTrailingBackslash(TargetDir); @@ -4209,7 +4262,7 @@ void __fastcall TSFTPFileSystem::CopyToRemote(TStrings * FilesToCopy, bool Success = false; FileName = FilesToCopy->Strings[Index]; FileNameOnly = ExtractFileName(FileName); - assert(!FAvoidBusy); + DebugAssert(!FAvoidBusy); FAvoidBusy = true; try @@ -4343,7 +4396,7 @@ void __fastcall TSFTPFileSystem::SFTPConfirmOverwrite( OperationProgress->BatchOverwrite = boAlternateResume; break; - default: FAIL; //fallthru + default: DebugFail(); //fallthru case qaCancel: if (!OperationProgress->Cancel) { @@ -4393,7 +4446,7 @@ bool TSFTPFileSystem::SFTPConfirmResume(const UnicodeString DestFileName, bool PartialBiggerThanSource, TFileOperationProgressType * OperationProgress) { bool ResumeTransfer; - assert(OperationProgress); + DebugAssert(OperationProgress); if (PartialBiggerThanSource) { unsigned int Answer; @@ -4538,10 +4591,12 @@ void __fastcall TSFTPFileSystem::SFTPSource(const UnicodeString FileName, else { // File is regular file (not directory) - assert(File); + DebugAssert(File); - UnicodeString DestFileName = CopyParam->ChangeFileName(ExtractFileName(FileName), - osLocal, FLAGSET(Flags, tfFirstLevel)); + UnicodeString DestFileName = + FTerminal->ChangeFileName( + CopyParam, ExtractFileName(FileName), osLocal, + FLAGSET(Flags, tfFirstLevel)); UnicodeString DestFullName = LocalCanonify(TargetDir + DestFileName); UnicodeString DestPartialFullName; bool ResumeAllowed; @@ -4566,8 +4621,9 @@ void __fastcall TSFTPFileSystem::SFTPSource(const UnicodeString FileName, TFileMasks::TParams MaskParams; MaskParams.Size = Size; MaskParams.Modification = Modification; + UnicodeString BaseFileName = FTerminal->GetBaseFileName(FileName); OperationProgress->SetAsciiTransfer( - CopyParam->UseAsciiTransfer(FileName, osLocal, MaskParams)); + CopyParam->UseAsciiTransfer(BaseFileName, osLocal, MaskParams)); FTerminal->LogEvent( UnicodeString((OperationProgress->AsciiTransfer ? L"Ascii" : L"Binary")) + L" transfer mode selected."); @@ -4699,11 +4755,11 @@ void __fastcall TSFTPFileSystem::SFTPSource(const UnicodeString FileName, if (OpenParams.RemoteFileName != RemoteFileName) { - assert(!DoResume); - assert(UnixExtractFilePath(OpenParams.RemoteFileName) == UnixExtractFilePath(RemoteFileName)); + DebugAssert(!DoResume); + DebugAssert(UnixExtractFilePath(OpenParams.RemoteFileName) == UnixExtractFilePath(RemoteFileName)); DestFullName = OpenParams.RemoteFileName; UnicodeString NewFileName = UnixExtractFileName(DestFullName); - assert(DestFileName != NewFileName); + DebugAssert(DestFileName != NewFileName); DestFileName = NewFileName; } @@ -4730,7 +4786,7 @@ void __fastcall TSFTPFileSystem::SFTPSource(const UnicodeString FileName, } else { - assert(!SetRights); + DebugAssert(!SetRights); } unsigned short RightsNumber = Rights.NumberSet; @@ -4908,7 +4964,7 @@ void __fastcall TSFTPFileSystem::SFTPSource(const UnicodeString FileName, if (FTerminal->Active && (!CopyParam->PreserveRights && !CopyParam->PreserveTime)) { - assert(DoResume); + DebugAssert(DoResume); FTerminal->LogEvent(L"Ignoring error preserving permissions of overwritten file"); } else @@ -5032,7 +5088,7 @@ RawByteString __fastcall TSFTPFileSystem::SFTPOpenRemoteFile( int __fastcall TSFTPFileSystem::SFTPOpenRemote(void * AOpenParams, void * /*Param2*/) { TOpenRemoteFileParams * OpenParams = (TOpenRemoteFileParams *)AOpenParams; - assert(OpenParams); + DebugAssert(OpenParams); TFileOperationProgressType * OperationProgress = OpenParams->OperationProgress; int OpenType; @@ -5086,7 +5142,7 @@ int __fastcall TSFTPFileSystem::SFTPOpenRemote(void * AOpenParams, void * /*Para TRemoteFile * File; UnicodeString RealFileName = LocalCanonify(OpenParams->RemoteFileName); ReadFile(RealFileName, File); - assert(File); + DebugAssert(File); OpenParams->DestFileSize = File->Size; if (OpenParams->FileParams != NULL) { @@ -5131,7 +5187,7 @@ int __fastcall TSFTPFileSystem::SFTPOpenRemote(void * AOpenParams, void * /*Para } else { - assert(FTerminal->SessionData->OverwrittenToRecycleBin); + DebugAssert(FTerminal->SessionData->OverwrittenToRecycleBin); } if ((OpenParams->OverwriteMode == omOverwrite) && @@ -5220,7 +5276,7 @@ void __fastcall TSFTPFileSystem::SFTPCloseRemote(const RawByteString Handle, } else { - assert(Packet != NULL); + DebugAssert(Packet != NULL); ReceiveResponse(P, Packet, SSH_FXP_STATUS); } } @@ -5239,9 +5295,10 @@ void __fastcall TSFTPFileSystem::SFTPDirectorySource(const UnicodeString Directo const UnicodeString TargetDir, int Attrs, const TCopyParamType * CopyParam, int Params, TFileOperationProgressType * OperationProgress, unsigned int Flags) { - UnicodeString DestDirectoryName = CopyParam->ChangeFileName( - ExtractFileName(ExcludeTrailingBackslash(DirectoryName)), osLocal, - FLAGSET(Flags, tfFirstLevel)); + UnicodeString DestDirectoryName = + FTerminal->ChangeFileName( + CopyParam, ExtractFileName(ExcludeTrailingBackslash(DirectoryName)), + osLocal, FLAGSET(Flags, tfFirstLevel)); UnicodeString DestFullName = UnixIncludeTrailingBackslash(TargetDir + DestDirectoryName); OperationProgress->SetFile(DirectoryName); @@ -5330,6 +5387,18 @@ void __fastcall TSFTPFileSystem::SFTPDirectorySource(const UnicodeString Directo /* TODO : Show error message on failure. */ if (!OperationProgress->Cancel) { + if (CopyParam->PreserveTime && CopyParam->PreserveTimeDirs) + { + TRemoteProperties Properties; + Properties.Valid << vpModification; + + FTerminal->OpenLocalFile( + ExcludeTrailingBackslash(DirectoryName), GENERIC_READ, NULL, NULL, NULL, + &Properties.Modification, &Properties.LastAccess, NULL); + + FTerminal->ChangeFileProperties(DestFullName, NULL, &Properties); + } + if (FLAGSET(Params, cpDelete)) { RemoveDir(ApiPath(DirectoryName)); @@ -5350,7 +5419,7 @@ void __fastcall TSFTPFileSystem::CopyToLocal(TStrings * FilesToCopy, int Params, TFileOperationProgressType * OperationProgress, TOnceDoneOperation & OnceDoneOperation) { - assert(FilesToCopy && OperationProgress); + DebugAssert(FilesToCopy && OperationProgress); UnicodeString FileName; UnicodeString FullTargetDir = IncludeTrailingBackslash(TargetDir); @@ -5363,7 +5432,7 @@ void __fastcall TSFTPFileSystem::CopyToLocal(TStrings * FilesToCopy, FileName = FilesToCopy->Strings[Index]; File = (TRemoteFile *)FilesToCopy->Objects[Index]; - assert(!FAvoidBusy); + DebugAssert(!FAvoidBusy); FAvoidBusy = true; try @@ -5431,7 +5500,7 @@ void __fastcall TSFTPFileSystem::SFTPSinkRobust(const UnicodeString FileName, { OperationProgress->RollbackTransfer(); Action.Restart(); - assert(File != NULL); + DebugAssert(File != NULL); if (!File->IsDirectory) { // prevent overwrite and resume confirmations @@ -5454,11 +5523,12 @@ void __fastcall TSFTPFileSystem::SFTPSink(const UnicodeString FileName, UnicodeString OnlyFileName = UnixExtractFileName(FileName); TFileMasks::TParams MaskParams; - assert(File); + DebugAssert(File); MaskParams.Size = File->Size; MaskParams.Modification = File->Modification; - if (!CopyParam->AllowTransfer(FileName, osRemote, File->IsDirectory, MaskParams)) + UnicodeString BaseFileName = FTerminal->GetBaseFileName(FileName); + if (!CopyParam->AllowTransfer(BaseFileName, osRemote, File->IsDirectory, MaskParams)) { FTerminal->LogEvent(FORMAT(L"File \"%s\" excluded from transfer", (FileName))); THROW_SKIP_FILE_NULL; @@ -5474,8 +5544,9 @@ void __fastcall TSFTPFileSystem::SFTPSink(const UnicodeString FileName, OperationProgress->SetFile(FileName); - UnicodeString DestFileName = CopyParam->ChangeFileName(OnlyFileName, - osRemote, FLAGSET(Flags, tfFirstLevel)); + UnicodeString DestFileName = + FTerminal->ChangeFileName( + CopyParam, OnlyFileName, osRemote, FLAGSET(Flags, tfFirstLevel)); UnicodeString DestFullName = TargetDir + DestFileName; if (File->IsDirectory) @@ -5506,6 +5577,36 @@ void __fastcall TSFTPFileSystem::SFTPSink(const UnicodeString FileName, FTerminal->ProcessDirectory(FileName, SFTPSinkFile, &SinkFileParams); + if (CopyParam->PreserveTime && CopyParam->PreserveTimeDirs) + { + FTerminal->LogEvent(FORMAT(L"Preserving directory timestamp [%s]", + (StandardTimestamp(File->Modification)))); + int SetFileTimeError = ERROR_SUCCESS; + // FILE_FLAG_BACKUP_SEMANTICS is needed to "open" directory + HANDLE LocalHandle = CreateFile(ApiPath(DestFullName).c_str(), GENERIC_WRITE, + FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0); + if (LocalHandle == INVALID_HANDLE_VALUE) + { + SetFileTimeError = GetLastError(); + } + else + { + FILETIME AcTime = DateTimeToFileTime(File->LastAccess, FTerminal->SessionData->DSTMode); + FILETIME WrTime = DateTimeToFileTime(File->Modification, FTerminal->SessionData->DSTMode); + if (!SetFileTime(LocalHandle, NULL, &AcTime, &WrTime)) + { + SetFileTimeError = GetLastError(); + } + CloseHandle(LocalHandle); + } + + if (SetFileTimeError != ERROR_SUCCESS) + { + FTerminal->LogEvent(FORMAT(L"Preserving timestamp failed, ignoring: %s", + (SysErrorMessageForError(SetFileTimeError)))); + } + } + // Do not delete directory if some of its files were skip. // Throw "skip file" for the directory to avoid attempt to deletion // of any parent directory @@ -5530,7 +5631,7 @@ void __fastcall TSFTPFileSystem::SFTPSink(const UnicodeString FileName, // Will we use ASCII of BINARY file transfer? OperationProgress->SetAsciiTransfer( - CopyParam->UseAsciiTransfer(FileName, osRemote, MaskParams)); + CopyParam->UseAsciiTransfer(BaseFileName, osRemote, MaskParams)); FTerminal->LogEvent(UnicodeString((OperationProgress->AsciiTransfer ? L"Ascii" : L"Binary")) + " transfer mode selected."); @@ -5727,7 +5828,7 @@ void __fastcall TSFTPFileSystem::SFTPSink(const UnicodeString FileName, else { FTerminal->LogEvent(L"Resuming file transfer (append style)."); - assert(OverwriteMode == omResume); + DebugAssert(OverwriteMode == omResume); OperationProgress->AddResumed(DestFileSize); } } @@ -5744,7 +5845,7 @@ void __fastcall TSFTPFileSystem::SFTPSink(const UnicodeString FileName, THROW_SKIP_FILE_NULL; } } - assert(LocalHandle); + DebugAssert(LocalHandle); DeleteLocalFile = true; @@ -5830,7 +5931,7 @@ void __fastcall TSFTPFileSystem::SFTPSink(const UnicodeString FileName, PrevIncomplete = false; if (Missing > 0) { - assert(DataLen <= Missing); + DebugAssert(DataLen <= Missing); Missing -= DataLen; } else if (DataLen < BlockSize) @@ -5852,7 +5953,7 @@ void __fastcall TSFTPFileSystem::SFTPSink(const UnicodeString FileName, } } - assert(DataLen <= BlockSize); + DebugAssert(DataLen <= BlockSize); BlockBuf.Insert(0, reinterpret_cast(DataPacket.GetNextData(DataLen)), DataLen); DataPacket.DataConsumed(DataLen); OperationProgress->AddTransfered(DataLen); @@ -5864,7 +5965,7 @@ void __fastcall TSFTPFileSystem::SFTPSink(const UnicodeString FileName, if (OperationProgress->AsciiTransfer) { - assert(!ResumeTransfer && !ResumeAllowed); + DebugAssert(!ResumeTransfer && !ResumeAllowed); unsigned int PrevBlockSize = BlockBuf.Size; BlockBuf.Convert(GetEOL(), FTerminal->Configuration->LocalEOLType, 0, ConvertToken); @@ -5985,7 +6086,7 @@ void __fastcall TSFTPFileSystem::SFTPSinkFile(UnicodeString FileName, const TRemoteFile * File, void * Param) { TSinkFileParams * Params = (TSinkFileParams *)Param; - assert(Params->OperationProgress); + DebugAssert(Params->OperationProgress); try { SFTPSinkRobust(FileName, File, Params->TargetDir, Params->CopyParam, @@ -6022,3 +6123,18 @@ void __fastcall TSFTPFileSystem::GetSupportedChecksumAlgs(TStrings * Algs) { Algs->AddStrings(FChecksumAlgs.get()); } +//--------------------------------------------------------------------------- +void __fastcall TSFTPFileSystem::LockFile(const UnicodeString & /*FileName*/, const TRemoteFile * /*File*/) +{ + DebugFail(); +} +//--------------------------------------------------------------------------- +void __fastcall TSFTPFileSystem::UnlockFile(const UnicodeString & /*FileName*/, const TRemoteFile * /*File*/) +{ + DebugFail(); +} +//--------------------------------------------------------------------------- +void __fastcall TSFTPFileSystem::UpdateFromMain(TCustomFileSystem * /*MainFileSystem*/) +{ + // noop +} diff --git a/source/core/SftpFileSystem.h b/source/core/SftpFileSystem.h index 8f49b3fd..1e083b75 100644 --- a/source/core/SftpFileSystem.h +++ b/source/core/SftpFileSystem.h @@ -81,6 +81,9 @@ friend class TSFTPBusy; virtual bool __fastcall GetStoredCredentialsTried(); virtual UnicodeString __fastcall GetUserName(); virtual void __fastcall GetSupportedChecksumAlgs(TStrings * Algs); + virtual void __fastcall LockFile(const UnicodeString & FileName, const TRemoteFile * File); + virtual void __fastcall UnlockFile(const UnicodeString & FileName, const TRemoteFile * File); + virtual void __fastcall UpdateFromMain(TCustomFileSystem * MainFileSystem); protected: TSecureShell * FSecureShell; @@ -131,12 +134,12 @@ friend class TSFTPBusy; void __fastcall ReserveResponse(const TSFTPPacket * Packet, TSFTPPacket * Response); int __fastcall ReceivePacket(TSFTPPacket * Packet, int ExpectedType = -1, - int AllowStatus = -1); + int AllowStatus = -1, bool TryOnly = false); bool __fastcall PeekPacket(); void __fastcall RemoveReservation(int Reservation); void __fastcall SendPacket(const TSFTPPacket * Packet); int __fastcall ReceiveResponse(const TSFTPPacket * Packet, - TSFTPPacket * Response, int ExpectedType = -1, int AllowStatus = -1); + TSFTPPacket * Response, int ExpectedType = -1, int AllowStatus = -1, bool TryOnly = false); int __fastcall SendPacketAndReceiveResponse(const TSFTPPacket * Packet, TSFTPPacket * Response, int ExpectedType = -1, int AllowStatus = -1); void __fastcall UnreserveResponse(TSFTPPacket * Response); diff --git a/source/core/Terminal.cpp b/source/core/Terminal.cpp index 098880c2..b5e13765 100644 --- a/source/core/Terminal.cpp +++ b/source/core/Terminal.cpp @@ -23,6 +23,8 @@ #include "HelpCore.h" #include "CoreMain.h" #include "Queue.h" +#include +#include #ifndef AUTO_WINSOCK #include @@ -30,36 +32,6 @@ //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- -#define COMMAND_ERROR_ARI(MESSAGE, REPEAT) \ - { \ - unsigned int Result = CommandError(&E, MESSAGE, qaRetry | qaSkip | qaAbort); \ - switch (Result) { \ - case qaRetry: { REPEAT; } break; \ - case qaAbort: Abort(); \ - } \ - } -//--------------------------------------------------------------------------- -// Note that the action may already be canceled when RollbackAction is called -#define COMMAND_ERROR_ARI_ACTION(MESSAGE, REPEAT, ACTION) \ - { \ - unsigned int Result; \ - try \ - { \ - Result = CommandError(&E, MESSAGE, qaRetry | qaSkip | qaAbort); \ - } \ - catch(Exception & E2) \ - { \ - RollbackAction(ACTION, NULL, &E2); \ - throw; \ - } \ - switch (Result) { \ - case qaRetry: ACTION.Cancel(); { REPEAT; } break; \ - case qaAbort: RollbackAction(ACTION, NULL, &E); Abort(); \ - case qaSkip: ACTION.Cancel(); break; \ - default: FAIL; \ - } \ - } - #define FILE_OPERATION_LOOP_TERMINAL this //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- @@ -87,7 +59,7 @@ void __fastcall TLoopDetector::RecordVisitedDirectory(const UnicodeString & Dire //--------------------------------------------------------------------------- bool __fastcall TLoopDetector::IsUnvisitedDirectory(const TRemoteFile * File) { - assert(File->IsDirectory); + DebugAssert(File->IsDirectory); UnicodeString Directory = UnixExcludeTrailingBackslash(File->FullFileName); bool Result = (FVisitedDirectories->IndexOf(Directory) < 0); if (Result) @@ -193,7 +165,7 @@ const UnicodeString& TSynchronizeChecklist::TItem::GetFileName() const } else { - assert(!Local.FileName.IsEmpty()); + DebugAssert(!Local.FileName.IsEmpty()); return Local.FileName; } } @@ -230,7 +202,7 @@ int __fastcall TSynchronizeChecklist::Compare(void * AItem1, void * AItem2) } else { - assert(!Item1->Remote.Directory.IsEmpty()); + DebugAssert(!Item1->Remote.Directory.IsEmpty()); Result = AnsiCompareText(Item1->Remote.Directory, Item2->Remote.Directory); } @@ -262,7 +234,7 @@ void __fastcall TSynchronizeChecklist::Update(const TItem * Item, bool Check, TA // TSynchronizeChecklist owns non-const items so it can manipulate them freely, // const_cast here is just an optimization TItem * MutableItem = const_cast(Item); - assert(FList->IndexOf(MutableItem) >= 0); + DebugAssert(FList->IndexOf(MutableItem) >= 0); MutableItem->Checked = Check; MutableItem->Action = Action; } @@ -291,7 +263,7 @@ TSynchronizeChecklist::TAction __fastcall TSynchronizeChecklist::Reverse(TSynchr default: case saNone: - FAIL; + DebugFail(); return saNone; } } @@ -507,7 +479,7 @@ __fastcall TCallbackGuard::~TCallbackGuard() { if (FGuarding) { - assert((FTerminal->FCallbackGuard == this) || (FTerminal->FCallbackGuard == NULL)); + DebugAssert((FTerminal->FCallbackGuard == this) || (FTerminal->FCallbackGuard == NULL)); FTerminal->FCallbackGuard = NULL; } @@ -516,7 +488,7 @@ __fastcall TCallbackGuard::~TCallbackGuard() //--------------------------------------------------------------------------- void __fastcall TCallbackGuard::FatalError(Exception * E, const UnicodeString & Msg, const UnicodeString & HelpKeyword) { - assert(FGuarding); + DebugAssert(FGuarding); // make sure we do not bother about getting back the silent abort exception // we issued ourselves. this may happen when there is an exception handler @@ -536,7 +508,7 @@ void __fastcall TCallbackGuard::FatalError(Exception * E, const UnicodeString & //--------------------------------------------------------------------------- void __fastcall TCallbackGuard::Dismiss() { - assert(FFatalError == NULL); + DebugAssert(FFatalError == NULL); FGuarding = false; } //--------------------------------------------------------------------------- @@ -545,7 +517,7 @@ void __fastcall TCallbackGuard::Verify() if (FGuarding) { FGuarding = false; - assert(FTerminal->FCallbackGuard == this); + DebugAssert(FTerminal->FCallbackGuard == this); FTerminal->FCallbackGuard = NULL; if (FFatalError != NULL) @@ -583,6 +555,105 @@ bool TRobustOperationLoop::Retry() return Result; } //--------------------------------------------------------------------------- +class TRetryOperationLoop +{ +public: + TRetryOperationLoop(TTerminal * Terminal); + + void Error(Exception & E); + void Error(Exception & E, TSessionAction & Action); + void Error(Exception & E, const UnicodeString & Message); + void Error(Exception & E, TSessionAction & Action, const UnicodeString & Message); + bool Retry(); + +private: + TTerminal * FTerminal; + bool FRetry; + + void DoError(Exception & E, TSessionAction * Action, const UnicodeString & Message); +}; +//--------------------------------------------------------------------------- +TRetryOperationLoop::TRetryOperationLoop(TTerminal * Terminal) +{ + FTerminal = Terminal; + FRetry = false; +} +//--------------------------------------------------------------------------- +void TRetryOperationLoop::DoError(Exception & E, TSessionAction * Action, const UnicodeString & Message) +{ + // Note that the action may already be canceled when RollbackAction is called + unsigned int Result; + try + { + Result = FTerminal->CommandError(&E, Message, qaRetry | qaSkip | qaAbort); + } + catch (Exception & E2) + { + if (Action != NULL) + { + FTerminal->RollbackAction(*Action, NULL, &E2); + } + throw; + } + + switch (Result) + { + case qaRetry: + FRetry = true; + if (Action != NULL) + { + Action->Cancel(); + } + break; + + case qaAbort: + if (Action != NULL) + { + FTerminal->RollbackAction(*Action, NULL, &E); + } + Abort(); + break; + + case qaSkip: + if (Action != NULL) + { + Action->Cancel(); + } + break; + + default: + DebugFail(); + break; + } +} +//--------------------------------------------------------------------------- +void TRetryOperationLoop::Error(Exception & E) +{ + DoError(E, NULL, UnicodeString()); +} +//--------------------------------------------------------------------------- +void TRetryOperationLoop::Error(Exception & E, TSessionAction & Action) +{ + DoError(E, &Action, UnicodeString()); +} +//--------------------------------------------------------------------------- +void TRetryOperationLoop::Error(Exception & E, const UnicodeString & Message) +{ + DoError(E, NULL, Message); +} +//--------------------------------------------------------------------------- +void TRetryOperationLoop::Error(Exception & E, TSessionAction & Action, const UnicodeString & Message) +{ + DoError(E, &Action, Message); +} +//--------------------------------------------------------------------------- +bool TRetryOperationLoop::Retry() +{ + bool Result = FRetry; + FRetry = false; + return Result; +} +//--------------------------------------------------------------------------- //--------------------------------------------------------------------------- __fastcall TTerminal::TTerminal(TSessionData * SessionData, TConfiguration * Configuration) @@ -645,7 +716,7 @@ __fastcall TTerminal::~TTerminal() // see TTerminal::HandleExtendedException FCallbackGuard->Dismiss(); } - assert(FTunnel == NULL); + DebugAssert(FTunnel == NULL); SAFE_DESTROY(FCommandSession); @@ -680,7 +751,7 @@ void __fastcall TTerminal::Idle() LogEvent(L"Session upkeep"); } - assert(FFileSystem != NULL); + DebugAssert(FFileSystem != NULL); FFileSystem->Idle(); if (CommandSessionOpened) @@ -760,8 +831,12 @@ void __fastcall TTerminal::Close() { FFileSystem->Close(); - if (CommandSessionOpened) + // Cannot rely on CommandSessionOpened here as Status is set to ssClosed + // only after the OnClose is called + if ((FCommandSession != NULL) && FCommandSession->Active) { + // prevent recursion + FCommandSession->OnClose = NULL; FCommandSession->Close(); } } @@ -772,7 +847,11 @@ void __fastcall TTerminal::ResetConnection() FTunnelError = L""; FRememberedPasswordTried = false; + // Particularly to prevent reusing a wrong client certificate passphrase + // from a previous login attempt + FRememberedPassword = UnicodeString(); FRememberedTunnelPasswordTried = false; + FRememberedTunnelPassword = UnicodeString(); if (FDirectoryChangesCache != NULL) { @@ -808,7 +887,7 @@ void __fastcall TTerminal::Open() Log->AddStartupInfo(); } - assert(FTunnel == NULL); + DebugAssert(FTunnel == NULL); if (FSessionData->Tunnel) { DoInformation(LoadStr(OPEN_TUNNEL), true); @@ -824,7 +903,7 @@ void __fastcall TTerminal::Open() } else { - assert(FTunnelLocalPortNumber == 0); + DebugAssert(FTunnelLocalPortNumber == 0); } if (FFileSystem == NULL) @@ -852,7 +931,7 @@ void __fastcall TTerminal::Open() } else { - assert(FSecureShell == NULL); + DebugAssert(FSecureShell == NULL); try { FSecureShell = new TSecureShell(this, FSessionData, Log, Configuration); @@ -864,11 +943,11 @@ void __fastcall TTerminal::Open() } catch(Exception & E) { - assert(!FSecureShell->Active); + DebugAssert(!FSecureShell->Active); if (!FSecureShell->Active && !FTunnelError.IsEmpty()) { // the only case where we expect this to happen - assert(E.Message == LoadStr(UNEXPECTED_CLOSE_ERROR)); + DebugAssert(E.Message == LoadStr(UNEXPECTED_CLOSE_ERROR)); FatalError(&E, FMTLOAD(TUNNEL_ERROR, (FTunnelError))); } else @@ -917,7 +996,7 @@ void __fastcall TTerminal::Open() if (SessionData->CacheDirectoryChanges) { - assert(FDirectoryChangesCache == NULL); + DebugAssert(FDirectoryChangesCache == NULL); FDirectoryChangesCache = new TRemoteDirectoryChangesCache( Configuration->CacheDirectoryChangesMaxSize); if (SessionData->PreserveDirectoryChanges) @@ -985,7 +1064,7 @@ bool __fastcall TTerminal::IsListenerFree(unsigned int PortNumber) //--------------------------------------------------------------------------- void __fastcall TTerminal::OpenTunnel() { - assert(FTunnelData == NULL); + DebugAssert(FTunnelData == NULL); FTunnelLocalPortNumber = FSessionData->TunnelLocalPortNumber; if (FTunnelLocalPortNumber == 0) @@ -1110,7 +1189,7 @@ void __fastcall TTerminal::Reopen(int Params) UnicodeString PrevRemoteDirectory = SessionData->RemoteDirectory; bool PrevReadCurrentDirectoryPending = FReadCurrentDirectoryPending; bool PrevReadDirectoryPending = FReadDirectoryPending; - assert(!FSuspendTransaction); + DebugAssert(!FSuspendTransaction); bool PrevAutoReadDirectory = FAutoReadDirectory; // here used to be a check for FExceptionOnFail being 0 // but it can happen, e.g. when we are downloading file to execute it. @@ -1132,7 +1211,7 @@ void __fastcall TTerminal::Reopen(int Params) // only peek, we may not be connected at all atm, // so make sure we do not try retrieving current directory from the server // (particularly with FTP) - AnsiString ACurrentDirectory = PeekCurrentDirectory(); + UnicodeString ACurrentDirectory = PeekCurrentDirectory(); if (!ACurrentDirectory.IsEmpty()) { SessionData->RemoteDirectory = ACurrentDirectory; @@ -1142,7 +1221,10 @@ void __fastcall TTerminal::Reopen(int Params) SessionData->FSProtocol = (FFSProtocol == cfsSCP ? fsSCPonly : fsSFTPonly); } - if (Active) + // Could be active before, if fatal error occured in the secondary terminal. + // But now, since we handle the secondary terminal's OnClose, + // by closing outselves, it should not happen anymore. + if (DebugAlwaysFalse(Active)) { Close(); } @@ -1289,7 +1371,7 @@ unsigned int __fastcall TTerminal::QueryUserException(const UnicodeString Query, { unsigned int Result; UnicodeString ExMessage; - if (ALWAYS_TRUE(ExceptionMessage(E, ExMessage) || !Query.IsEmpty())) + if (DebugAlwaysTrue(ExceptionMessage(E, ExMessage) || !Query.IsEmpty())) { TStrings * MoreMessages = new TStringList(); try @@ -1308,7 +1390,7 @@ unsigned int __fastcall TTerminal::QueryUserException(const UnicodeString Query, // We know MoreMessages not to be NULL here, // AppendExceptionStackTraceAndForget should never return true // (indicating it had to create the string list) - ALWAYS_FALSE(AppendExceptionStackTraceAndForget(MoreMessages)); + DebugAlwaysFalse(AppendExceptionStackTraceAndForget(MoreMessages)); TQueryParams HelpKeywordOverrideParams; if (Params != NULL) @@ -1421,7 +1503,7 @@ void __fastcall TTerminal::SaveCapabilities(TFileSystemInfo & FileSystemInfo) //--------------------------------------------------------------------------- bool __fastcall TTerminal::GetIsCapable(TFSCapability Capability) const { - assert(FFileSystem); + DebugAssert(FFileSystem); return FFileSystem->IsCapable(Capability); } //--------------------------------------------------------------------------- @@ -1451,6 +1533,7 @@ void __fastcall TTerminal::ReactOnCommand(int /*TFSCommand*/ Cmd) case fsChangeGroup: case fsChangeOwner: case fsChangeProperties: + case fsLock: ModifiesFiles = true; break; @@ -1506,7 +1589,7 @@ void __fastcall TTerminal::TerminalError( bool __fastcall TTerminal::DoQueryReopen(Exception * E) { EFatal * Fatal = dynamic_cast(E); - assert(Fatal != NULL); + DebugAssert(Fatal != NULL); bool Result; if ((Fatal != NULL) && Fatal->ReopenQueried) { @@ -1621,7 +1704,7 @@ bool __fastcall TTerminal::FileOperationLoopQuery(Exception & E, if (Answer == qaAll) { - assert(OperationProgress != NULL); + DebugAssert(OperationProgress != NULL); OperationProgress->SkipToAll = true; Answer = qaSkip; } @@ -1657,7 +1740,7 @@ int __fastcall TTerminal::FileOperationLoop(TFileOperationEvent CallBackFunc, TFileOperationProgressType * OperationProgress, bool AllowSkip, const UnicodeString Message, void * Param1, void * Param2) { - assert(CallBackFunc); + DebugAssert(CallBackFunc); int Result; FILE_OPERATION_LOOP_BEGIN { @@ -1778,7 +1861,7 @@ bool __fastcall TTerminal::DirectoryFileList(const UnicodeString Path, //--------------------------------------------------------------------------- void __fastcall TTerminal::SetCurrentDirectory(UnicodeString value) { - assert(FFileSystem); + DebugAssert(FFileSystem); value = TranslateLockedPath(value, false); if (value != FFileSystem->CurrentDirectory) { @@ -1818,21 +1901,21 @@ UnicodeString __fastcall TTerminal::PeekCurrentDirectory() //--------------------------------------------------------------------------- const TRemoteTokenList * __fastcall TTerminal::GetGroups() { - assert(FFileSystem); + DebugAssert(FFileSystem); LookupUsersGroups(); return &FGroups; } //--------------------------------------------------------------------------- const TRemoteTokenList * __fastcall TTerminal::GetUsers() { - assert(FFileSystem); + DebugAssert(FFileSystem); LookupUsersGroups(); return &FUsers; } //--------------------------------------------------------------------------- const TRemoteTokenList * __fastcall TTerminal::GetMembership() { - assert(FFileSystem); + DebugAssert(FFileSystem); LookupUsersGroups(); return &FMembership; } @@ -1840,7 +1923,7 @@ const TRemoteTokenList * __fastcall TTerminal::GetMembership() UnicodeString __fastcall TTerminal::GetUserName() const { // in future might also be implemented to detect username similar to GetUserGroups - assert(FFileSystem != NULL); + DebugAssert(FFileSystem != NULL); UnicodeString Result = FFileSystem->GetUserName(); // Is empty also when stored username was used if (Result.IsEmpty()) @@ -1941,7 +2024,7 @@ void __fastcall TTerminal::DoEndTransaction(bool Inform) { if (FInTransaction == 0) TerminalError(L"Can't end transaction, not in transaction"); - assert(FInTransaction > 0); + DebugAssert(FInTransaction > 0); FInTransaction--; // it connection was closed due to fatal error during transaction, do nothing @@ -2053,7 +2136,7 @@ unsigned int __fastcall TTerminal::CommandError(Exception * E, const UnicodeStri { // may not be, particularly when TTerminal::Reopen is being called // from within OnShowExtendedException handler - assert(FCallbackGuard == NULL); + DebugAssert(FCallbackGuard == NULL); unsigned int Result = 0; if (E && E->InheritsFrom(__classid(EFatal))) { @@ -2082,7 +2165,7 @@ unsigned int __fastcall TTerminal::CommandError(Exception * E, const UnicodeStri } else { - // small hack to enable "skip to all" for COMMAND_ERROR_ARI + // small hack to enable "skip to all" for TRetryOperationLoop bool CanSkip = FLAGSET(Answers, qaSkip) && (OperationProgress != NULL); if (CanSkip && OperationProgress->SkipToAll) { @@ -2103,7 +2186,7 @@ unsigned int __fastcall TTerminal::CommandError(Exception * E, const UnicodeStri Result = QueryUserException(Msg, E, Answers, &Params, qtError); if (Result == qaAll) { - assert(OperationProgress != NULL); + DebugAssert(OperationProgress != NULL); OperationProgress->SkipToAll = true; Result = qaSkip; } @@ -2158,7 +2241,7 @@ TBatchOverwrite __fastcall TTerminal::EffectiveBatchOverwrite( else if (FLAGSET(Params, cpNoConfirmation) || !Configuration->ConfirmOverwriting) { // no way to change batch overwrite mode when overwrite confirmations are off - assert(OperationProgress->BatchOverwrite == boNo); + DebugAssert(OperationProgress->BatchOverwrite == boNo); Result = boAll; } else @@ -2211,7 +2294,7 @@ unsigned int __fastcall TTerminal::ConfirmFileOverwrite( if (!Applicable) { TBatchOverwrite ABatchOverwrite = EffectiveBatchOverwrite(SourceFullFileName, CopyParam, Params, OperationProgress, false); - assert(BatchOverwrite != ABatchOverwrite); + DebugAssert(BatchOverwrite != ABatchOverwrite); BatchOverwrite = ABatchOverwrite; } @@ -2231,7 +2314,7 @@ unsigned int __fastcall TTerminal::ConfirmFileOverwrite( FormatSize(FileParams->DestSize), UserModificationStr(FileParams->DestTimestamp, FileParams->DestPrecision))); } - if (ALWAYS_TRUE(QueryParams->HelpKeyword.IsEmpty())) + if (DebugAlwaysTrue(QueryParams->HelpKeyword.IsEmpty())) { QueryParams->HelpKeyword = HELP_OVERWRITE; } @@ -2303,7 +2386,7 @@ unsigned int __fastcall TTerminal::ConfirmFileOverwrite( break; case boAlternateResume: - assert(CanAlternateResume); + DebugAssert(CanAlternateResume); Result = qaSkip; // ugh break; @@ -2400,7 +2483,7 @@ void __fastcall TTerminal::ReloadDirectory() } if (SessionData->CacheDirectoryChanges) { - assert(FDirectoryChangesCache != NULL); + DebugAssert(FDirectoryChangesCache != NULL); FDirectoryChangesCache->ClearDirectoryChange(CurrentDirectory); } @@ -2498,7 +2581,7 @@ void __fastcall TTerminal::DoStartup() //--------------------------------------------------------------------------- void __fastcall TTerminal::ReadCurrentDirectory() { - assert(FFileSystem); + DebugAssert(FFileSystem); try { // reset flag is case we are called externally (like from console dialog) @@ -2512,7 +2595,7 @@ void __fastcall TTerminal::ReadCurrentDirectory() if (SessionData->CacheDirectoryChanges) { - assert(FDirectoryChangesCache != NULL); + DebugAssert(FDirectoryChangesCache != NULL); if (!CurrentDirectory.IsEmpty() && !FLastDirectoryChange.IsEmpty() && (CurrentDirectory != OldDirectory)) { FDirectoryChangesCache->AddDirectoryChange(OldDirectory, @@ -2624,8 +2707,8 @@ void __fastcall TTerminal::LogRemoteFile(TRemoteFile * File) // optimization if (Log->Logging) { - LogEvent(FORMAT(L"%s;%s;%d;%s;%s;%s;%s;%d", - (File->FileName, File->Type, File->Size, StandardTimestamp(File->Modification), + LogEvent(FORMAT(L"%s;%s;%d;%s;%d;%s;%s;%s;%d", + (File->FileName, File->Type, File->Size, StandardTimestamp(File->Modification), int(File->ModificationFmt), File->Owner.LogText, File->Group.LogText, File->Rights->Text, File->Attr))); } @@ -2662,8 +2745,8 @@ void __fastcall TTerminal::LogFileDone(TFileOperationProgressType * OperationPro //--------------------------------------------------------------------------- void __fastcall TTerminal::CustomReadDirectory(TRemoteFileList * FileList) { - assert(FileList); - assert(FFileSystem); + DebugAssert(FileList); + DebugAssert(FFileSystem); TRobustOperationLoop RobustLoop(this, OperationProgress); @@ -2701,85 +2784,89 @@ void __fastcall TTerminal::CustomReadDirectory(TRemoteFileList * FileList) //--------------------------------------------------------------------------- TRemoteFileList * __fastcall TTerminal::ReadDirectoryListing(UnicodeString Directory, const TFileMasks & Mask) { - TLsSessionAction Action(ActionLog, AbsolutePath(Directory, true)); - TRemoteFileList * FileList = NULL; - try + TRemoteFileList * FileList; + TRetryOperationLoop RetryLoop(this); + do { - FileList = DoReadDirectoryListing(Directory, false); - if (FileList != NULL) + FileList = NULL; + TLsSessionAction Action(ActionLog, AbsolutePath(Directory, true)); + + try { - int Index = 0; - while (Index < FileList->Count) + FileList = DoReadDirectoryListing(Directory, false); + if (FileList != NULL) { - TRemoteFile * File = FileList->Files[Index]; - TFileMasks::TParams Params; - Params.Size = File->Size; - Params.Modification = File->Modification; - // Have to use UnicodeString(), instead of L"", as with that - // overload with (UnicodeString, bool, bool, TParams*) wins - if (!Mask.Matches(File->FileName, false, UnicodeString(), &Params)) - { - FileList->Delete(Index); - } - else + int Index = 0; + while (Index < FileList->Count) { - Index++; + TRemoteFile * File = FileList->Files[Index]; + TFileMasks::TParams Params; + Params.Size = File->Size; + Params.Modification = File->Modification; + // Have to use UnicodeString(), instead of L"", as with that + // overload with (UnicodeString, bool, bool, TParams*) wins + if (!Mask.Matches(File->FileName, false, UnicodeString(), &Params)) + { + FileList->Delete(Index); + } + else + { + Index++; + } } - } - Action.FileList(FileList); + Action.FileList(FileList); + } + } + catch(Exception & E) + { + RetryLoop.Error(E, Action); } } - catch(Exception & E) - { - COMMAND_ERROR_ARI_ACTION - ( - L"", - FileList = ReadDirectoryListing(Directory, Mask), - Action - ); - } + while (RetryLoop.Retry()); return FileList; } //--------------------------------------------------------------------------- TRemoteFile * __fastcall TTerminal::ReadFileListing(UnicodeString Path) { - TStatSessionAction Action(ActionLog, AbsolutePath(Path, true)); - TRemoteFile * File = NULL; - try - { - // reset caches - AnnounceFileListOperation(); - ReadFile(Path, File); - Action.File(File); - } - catch(Exception & E) + TRemoteFile * File; + TRetryOperationLoop RetryLoop(this); + do { - COMMAND_ERROR_ARI_ACTION - ( - L"", - File = ReadFileListing(Path), - Action - ); + File = NULL; + TStatSessionAction Action(ActionLog, AbsolutePath(Path, true)); + try + { + // reset caches + AnnounceFileListOperation(); + ReadFile(Path, File); + Action.File(File); + } + catch(Exception & E) + { + RetryLoop.Error(E, Action); + } } + while (RetryLoop.Retry()); return File; } //--------------------------------------------------------------------------- TRemoteFileList * __fastcall TTerminal::CustomReadDirectoryListing(UnicodeString Directory, bool UseCache) { TRemoteFileList * FileList = NULL; - try - { - FileList = DoReadDirectoryListing(Directory, UseCache); - } - catch(Exception & E) + TRetryOperationLoop RetryLoop(this); + do { - COMMAND_ERROR_ARI - ( - L"", - FileList = CustomReadDirectoryListing(Directory, UseCache); - ); + try + { + FileList = DoReadDirectoryListing(Directory, UseCache); + } + catch(Exception & E) + { + RetryLoop.Error(E); + } } + while (RetryLoop.Retry()); return FileList; } //--------------------------------------------------------------------------- @@ -2895,7 +2982,7 @@ void __fastcall TTerminal::ReadDirectory(TRemoteFileList * FileList) void __fastcall TTerminal::ReadSymlink(TRemoteFile * SymlinkFile, TRemoteFile *& File) { - assert(FFileSystem); + DebugAssert(FFileSystem); try { LogEvent(FORMAT(L"Reading symlink \"%s\".", (SymlinkFile->FileName))); @@ -2911,7 +2998,7 @@ void __fastcall TTerminal::ReadSymlink(TRemoteFile * SymlinkFile, void __fastcall TTerminal::ReadFile(const UnicodeString FileName, TRemoteFile *& File) { - assert(FFileSystem); + DebugAssert(FFileSystem); File = NULL; try { @@ -2977,8 +3064,8 @@ bool __fastcall TTerminal::ProcessFiles(TStrings * FileList, TFileOperation Operation, TProcessFileEvent ProcessFile, void * Param, TOperationSide Side, bool Ex) { - assert(FFileSystem); - assert(FileList); + DebugAssert(FFileSystem); + DebugAssert(FileList); bool Result = false; TOnceDoneOperation OnceDoneOperation = odoIdle; @@ -3082,7 +3169,7 @@ bool __fastcall TTerminal::ProcessFilesEx(TStrings * FileList, TFileOperation Op //--------------------------------------------------------------------------- TStrings * __fastcall TTerminal::GetFixedPaths() { - assert(FFileSystem != NULL); + DebugAssert(FFileSystem != NULL); return FFileSystem->GetFixedPaths(); } //--------------------------------------------------------------------------- @@ -3106,7 +3193,8 @@ TUsableCopyParamAttrs __fastcall TTerminal::UsableCopyParamAttrs(int Params) // Synchronize dialog. FLAGMASK(!IsCapable[fcModeChangingUpload], cpaNoRights) | FLAGMASK(!IsCapable[fcRemoveCtrlZUpload], cpaNoRemoveCtrlZ) | - FLAGMASK(!IsCapable[fcRemoveBOMUpload], cpaNoRemoveBOM); + FLAGMASK(!IsCapable[fcRemoveBOMUpload], cpaNoRemoveBOM) | + FLAGMASK(!IsCapable[fcPreservingTimestampDirs], cpaNoPreserveTimeDirs); Result.Download = Result.General | cpaNoClearArchive | cpaNoIgnorePermErrors | // May be already set in General flags, but it's unconditional here @@ -3136,7 +3224,7 @@ void __fastcall TTerminal::RecycleFile(UnicodeString FileName, { if (FileName.IsEmpty()) { - assert(File != NULL); + DebugAssert(File != NULL); FileName = File->FileName; } @@ -3153,6 +3241,35 @@ void __fastcall TTerminal::RecycleFile(UnicodeString FileName, } } //--------------------------------------------------------------------------- +bool __fastcall TTerminal::TryStartOperationWithFile( + const UnicodeString & FileName, TFileOperation Operation1, TFileOperation Operation2) +{ + bool Result = true; + if ((OperationProgress != NULL) && + ((OperationProgress->Operation == Operation1) || + ((Operation2 != foNone) && (OperationProgress->Operation == Operation2)))) + { + if (OperationProgress->Cancel != csContinue) + { + Result = false; + } + else + { + OperationProgress->SetFile(FileName); + } + } + return Result; +} +//--------------------------------------------------------------------------- +void __fastcall TTerminal::StartOperationWithFile( + const UnicodeString & FileName, TFileOperation Operation1, TFileOperation Operation2) +{ + if (!TryStartOperationWithFile(FileName, Operation1, Operation2)) + { + Abort(); + } +} +//--------------------------------------------------------------------------- void __fastcall TTerminal::DeleteFile(UnicodeString FileName, const TRemoteFile * File, void * AParams) { @@ -3160,11 +3277,7 @@ void __fastcall TTerminal::DeleteFile(UnicodeString FileName, { FileName = File->FileName; } - if (OperationProgress && OperationProgress->Operation == foDelete) - { - if (OperationProgress->Cancel != csContinue) Abort(); - OperationProgress->SetFile(FileName); - } + StartOperationWithFile(FileName, foDelete); int Params = (AParams != NULL) ? *((int*)AParams) : 0; bool Recycle = FLAGCLEAR(Params, dfForceDelete) && @@ -3177,7 +3290,7 @@ void __fastcall TTerminal::DeleteFile(UnicodeString FileName, else { LogEvent(FORMAT(L"Deleting file \"%s\".", (FileName))); - if (File) FileModified(File, FileName, true); + FileModified(File, FileName, true); DoDeleteFile(FileName, File, Params); ReactOnCommand(fsDeleteFile); } @@ -3186,22 +3299,22 @@ void __fastcall TTerminal::DeleteFile(UnicodeString FileName, void __fastcall TTerminal::DoDeleteFile(const UnicodeString FileName, const TRemoteFile * File, int Params) { - TRmSessionAction Action(ActionLog, AbsolutePath(FileName, true)); - try - { - assert(FFileSystem); - // 'File' parameter: SFTPFileSystem needs to know if file is file or directory - FFileSystem->DeleteFile(FileName, File, Params, Action); - } - catch(Exception & E) + TRetryOperationLoop RetryLoop(this); + do { - COMMAND_ERROR_ARI_ACTION - ( - FMTLOAD(DELETE_FILE_ERROR, (FileName)), - DoDeleteFile(FileName, File, Params), - Action - ); + TRmSessionAction Action(ActionLog, AbsolutePath(FileName, true)); + try + { + DebugAssert(FFileSystem); + // 'File' parameter: SFTPFileSystem needs to know if file is file or directory + FFileSystem->DeleteFile(FileName, File, Params, Action); + } + catch(Exception & E) + { + RetryLoop.Error(E, Action, FMTLOAD(DELETE_FILE_ERROR, (FileName))); + } } + while (RetryLoop.Retry()); } //--------------------------------------------------------------------------- bool __fastcall TTerminal::DeleteFiles(TStrings * FilesToDelete, int Params) @@ -3215,16 +3328,10 @@ bool __fastcall TTerminal::DeleteFiles(TStrings * FilesToDelete, int Params) void __fastcall TTerminal::DeleteLocalFile(UnicodeString FileName, const TRemoteFile * /*File*/, void * Params) { - if ((OperationProgress != NULL) && (OperationProgress->Operation == foDelete)) - { - OperationProgress->SetFile(FileName); - } + StartOperationWithFile(FileName, foDelete); if (OnDeleteLocalFile == NULL) { - if (!RecursiveDeleteFile(FileName, false)) - { - throw Exception(FMTLOAD(DELETE_FILE_ERROR, (FileName))); - } + RecursiveDeleteFileChecked(FileName, false); } else { @@ -3245,14 +3352,10 @@ void __fastcall TTerminal::CustomCommandOnFile(UnicodeString FileName, { FileName = File->FileName; } - if (OperationProgress && OperationProgress->Operation == foCustomCommand) - { - if (OperationProgress->Cancel != csContinue) Abort(); - OperationProgress->SetFile(FileName); - } + StartOperationWithFile(FileName, foCustomCommand); LogEvent(FORMAT(L"Executing custom command \"%s\" (%d) on file \"%s\".", (Params->Command, Params->Params, FileName))); - if (File) FileModified(File, FileName); + FileModified(File, FileName); DoCustomCommandOnFile(FileName, File, Params->Command, Params->Params, Params->OutputEvent); ReactOnCommand(fsAnyCommand); @@ -3262,47 +3365,48 @@ void __fastcall TTerminal::DoCustomCommandOnFile(UnicodeString FileName, const TRemoteFile * File, UnicodeString Command, int Params, TCaptureOutputEvent OutputEvent) { - try + TRetryOperationLoop RetryLoop(this); + do { - if (IsCapable[fcAnyCommand]) - { - assert(FFileSystem); - assert(fcShellAnyCommand); - FFileSystem->CustomCommandOnFile(FileName, File, Command, Params, OutputEvent); - } - else + try { - assert(CommandSessionOpened); - assert(FCommandSession->FSProtocol == cfsSCP); - LogEvent(L"Executing custom command on command session."); - - if (FCommandSession->CurrentDirectory != CurrentDirectory) + if (IsCapable[fcAnyCommand]) { - FCommandSession->CurrentDirectory = CurrentDirectory; - // We are likely in transaction, so ReadCurrentDirectory won't get called - // until transaction ends. But we need to know CurrentDirectory to - // expand !/ pattern. - // Doing this only, when current directory of the main and secondary shell differs, - // what would be the case before the first file in transaction. - // Otherwise we would be reading pwd before every time as the - // CustomCommandOnFile on its own sets FReadCurrentDirectoryPending - if (FCommandSession->FReadCurrentDirectoryPending) + DebugAssert(FFileSystem); + DebugAssert(fcShellAnyCommand); + FFileSystem->CustomCommandOnFile(FileName, File, Command, Params, OutputEvent); + } + else + { + DebugAssert(CommandSessionOpened); + DebugAssert(FCommandSession->FSProtocol == cfsSCP); + LogEvent(L"Executing custom command on command session."); + + if (FCommandSession->CurrentDirectory != CurrentDirectory) { - FCommandSession->ReadCurrentDirectory(); + FCommandSession->CurrentDirectory = CurrentDirectory; + // We are likely in transaction, so ReadCurrentDirectory won't get called + // until transaction ends. But we need to know CurrentDirectory to + // expand !/ pattern. + // Doing this only, when current directory of the main and secondary shell differs, + // what would be the case before the first file in transaction. + // Otherwise we would be reading pwd before every time as the + // CustomCommandOnFile on its own sets FReadCurrentDirectoryPending + if (FCommandSession->FReadCurrentDirectoryPending) + { + FCommandSession->ReadCurrentDirectory(); + } } + FCommandSession->FFileSystem->CustomCommandOnFile(FileName, File, Command, + Params, OutputEvent); } - FCommandSession->FFileSystem->CustomCommandOnFile(FileName, File, Command, - Params, OutputEvent); + } + catch(Exception & E) + { + RetryLoop.Error(E, FMTLOAD(CUSTOM_COMMAND_ERROR, (Command, FileName))); } } - catch(Exception & E) - { - COMMAND_ERROR_ARI - ( - FMTLOAD(CUSTOM_COMMAND_ERROR, (Command, FileName)), - DoCustomCommandOnFile(FileName, File, Command, Params, OutputEvent) - ); - } + while (RetryLoop.Retry()); } //--------------------------------------------------------------------------- void __fastcall TTerminal::CustomCommandOnFiles(UnicodeString Command, @@ -3347,17 +3451,13 @@ void __fastcall TTerminal::ChangeFileProperties(UnicodeString FileName, const TRemoteFile * File, /*const TRemoteProperties*/ void * Properties) { TRemoteProperties * RProperties = (TRemoteProperties *)Properties; - assert(RProperties && !RProperties->Valid.Empty()); + DebugAssert(RProperties && !RProperties->Valid.Empty()); if (FileName.IsEmpty() && File) { FileName = File->FileName; } - if (OperationProgress && OperationProgress->Operation == foSetProperties) - { - if (OperationProgress->Cancel != csContinue) Abort(); - OperationProgress->SetFile(FileName); - } + StartOperationWithFile(FileName, foSetProperties); if (Log->Logging) { LogEvent(FORMAT(L"Changing properties of \"%s\" (%s)", @@ -3395,21 +3495,21 @@ void __fastcall TTerminal::ChangeFileProperties(UnicodeString FileName, void __fastcall TTerminal::DoChangeFileProperties(const UnicodeString FileName, const TRemoteFile * File, const TRemoteProperties * Properties) { - TChmodSessionAction Action(ActionLog, AbsolutePath(FileName, true)); - try - { - assert(FFileSystem); - FFileSystem->ChangeFileProperties(FileName, File, Properties, Action); - } - catch(Exception & E) + TRetryOperationLoop RetryLoop(this); + do { - COMMAND_ERROR_ARI_ACTION - ( - FMTLOAD(CHANGE_PROPERTIES_ERROR, (FileName)), - DoChangeFileProperties(FileName, File, Properties), - Action - ); + TChmodSessionAction Action(ActionLog, AbsolutePath(FileName, true)); + try + { + DebugAssert(FFileSystem); + FFileSystem->ChangeFileProperties(FileName, File, Properties, Action); + } + catch(Exception & E) + { + RetryLoop.Error(E, Action, FMTLOAD(CHANGE_PROPERTIES_ERROR, (FileName))); + } } + while (RetryLoop.Retry()); } //--------------------------------------------------------------------------- void __fastcall TTerminal::ChangeFilesProperties(TStrings * FileList, @@ -3437,8 +3537,8 @@ bool __fastcall TTerminal::LoadFilesProperties(TStrings * FileList) void __fastcall TTerminal::CalculateFileSize(UnicodeString FileName, const TRemoteFile * File, /*TCalculateSizeParams*/ void * Param) { - assert(Param); - assert(File); + DebugAssert(Param); + DebugAssert(File); TCalculateSizeParams * AParams = static_cast(Param); if (FileName.IsEmpty()) @@ -3446,14 +3546,10 @@ void __fastcall TTerminal::CalculateFileSize(UnicodeString FileName, FileName = File->FileName; } - if (OperationProgress && OperationProgress->Operation == foCalculateSize) + if (!TryStartOperationWithFile(FileName, foCalculateSize)) { - if (OperationProgress->Cancel != csContinue) - { - AParams->Result = false; - Abort(); - } - OperationProgress->SetFile(FileName); + AParams->Result = false; + Abort(); } bool AllowTransfer = (AParams->CopyParam == NULL); @@ -3463,9 +3559,10 @@ void __fastcall TTerminal::CalculateFileSize(UnicodeString FileName, MaskParams.Size = File->Size; MaskParams.Modification = File->Modification; + UnicodeString BaseFileName = + GetBaseFileName(UnixExcludeTrailingBackslash(File->FullFileName)); AllowTransfer = AParams->CopyParam->AllowTransfer( - UnixExcludeTrailingBackslash(File->FullFileName), osRemote, File->IsDirectory, - MaskParams); + BaseFileName, osRemote, File->IsDirectory, MaskParams); } if (AllowTransfer) @@ -3509,33 +3606,37 @@ void __fastcall TTerminal::CalculateFileSize(UnicodeString FileName, } //--------------------------------------------------------------------------- void __fastcall TTerminal::DoCalculateDirectorySize(const UnicodeString FileName, - const TRemoteFile * File, TCalculateSizeParams * Params) + const TRemoteFile * /*File*/, TCalculateSizeParams * Params) { - try - { - ProcessDirectory(FileName, CalculateFileSize, Params); - } - catch(Exception & E) + TRetryOperationLoop RetryLoop(this); + do { - if (!Active || ((Params->Params & csIgnoreErrors) == 0)) + try + { + ProcessDirectory(FileName, CalculateFileSize, Params); + } + catch(Exception & E) { - COMMAND_ERROR_ARI - ( - FMTLOAD(CALCULATE_SIZE_ERROR, (FileName)), - DoCalculateDirectorySize(FileName, File, Params) - ); + if (!Active || ((Params->Params & csIgnoreErrors) == 0)) + { + RetryLoop.Error(E, FMTLOAD(CALCULATE_SIZE_ERROR, (FileName))); + } } } + while (RetryLoop.Retry()); } //--------------------------------------------------------------------------- bool __fastcall TTerminal::CalculateFilesSize(TStrings * FileList, __int64 & Size, int Params, const TCopyParamType * CopyParam, bool AllowDirs, TCalculateSizeStats * Stats) { - // With FTP protocol, we may se DSIZ command from + // With FTP protocol, we may use DSIZ command from // draft-peterson-streamlined-ftp-command-extensions-10 // Implemented by Serv-U FTP. + TValueRestorer UseBusyCursorRestorer(FUseBusyCursor); + FUseBusyCursor = false; + TCalculateSizeParams Param; Param.Size = 0; Param.Params = Params; @@ -3566,7 +3667,7 @@ void __fastcall TTerminal::RenameFile(const UnicodeString FileName, void __fastcall TTerminal::RenameFile(const TRemoteFile * File, const UnicodeString NewName, bool CheckExistence) { - assert(File && File->Directory == FFiles); + DebugAssert(File && File->Directory == FFiles); bool Proceed = true; // if filename doesn't contain path, we check for existence of file if ((File->FileName != NewName) && CheckExistence && @@ -3611,35 +3712,29 @@ void __fastcall TTerminal::RenameFile(const TRemoteFile * File, void __fastcall TTerminal::DoRenameFile(const UnicodeString FileName, const UnicodeString NewName, bool Move) { - TMvSessionAction Action(ActionLog, AbsolutePath(FileName, true), AbsolutePath(NewName, true)); - try - { - assert(FFileSystem); - FFileSystem->RenameFile(FileName, NewName); - } - catch(Exception & E) + TRetryOperationLoop RetryLoop(this); + do { - COMMAND_ERROR_ARI_ACTION - ( - FMTLOAD(Move ? MOVE_FILE_ERROR : RENAME_FILE_ERROR, (FileName, NewName)), - DoRenameFile(FileName, NewName, Move), - Action - ); + TMvSessionAction Action(ActionLog, AbsolutePath(FileName, true), AbsolutePath(NewName, true)); + try + { + DebugAssert(FFileSystem); + FFileSystem->RenameFile(FileName, NewName); + } + catch(Exception & E) + { + UnicodeString Message = FMTLOAD(Move ? MOVE_FILE_ERROR : RENAME_FILE_ERROR, (FileName, NewName)); + RetryLoop.Error(E, Action, Message); + } } + while (RetryLoop.Retry()); } //--------------------------------------------------------------------------- void __fastcall TTerminal::MoveFile(const UnicodeString FileName, const TRemoteFile * File, /*const TMoveFileParams*/ void * Param) { - if (OperationProgress && - ((OperationProgress->Operation == foRemoteMove) || - (OperationProgress->Operation == foDelete))) - { - if (OperationProgress->Cancel != csContinue) Abort(); - OperationProgress->SetFile(FileName); - } - - assert(Param != NULL); + StartOperationWithFile(FileName, foRemoteMove, foDelete); + DebugAssert(Param != NULL); const TMoveFileParams & Params = *static_cast(Param); UnicodeString NewName = UnixIncludeTrailingBackslash(Params.Target) + MaskFileName(UnixExtractFileName(FileName), Params.FileMask); @@ -3708,42 +3803,38 @@ bool __fastcall TTerminal::MoveFiles(TStrings * FileList, const UnicodeString Ta void __fastcall TTerminal::DoCopyFile(const UnicodeString FileName, const UnicodeString NewName) { - try + TRetryOperationLoop RetryLoop(this); + do { - assert(FFileSystem); - if (IsCapable[fcRemoteCopy]) + try { - FFileSystem->CopyFile(FileName, NewName); + DebugAssert(FFileSystem); + if (IsCapable[fcRemoteCopy]) + { + FFileSystem->CopyFile(FileName, NewName); + } + else + { + DebugAssert(CommandSessionOpened); + DebugAssert(FCommandSession->FSProtocol == cfsSCP); + LogEvent(L"Copying file on command session."); + FCommandSession->CurrentDirectory = CurrentDirectory; + FCommandSession->FFileSystem->CopyFile(FileName, NewName); + } } - else + catch(Exception & E) { - assert(CommandSessionOpened); - assert(FCommandSession->FSProtocol == cfsSCP); - LogEvent(L"Copying file on command session."); - FCommandSession->CurrentDirectory = CurrentDirectory; - FCommandSession->FFileSystem->CopyFile(FileName, NewName); + RetryLoop.Error(E, FMTLOAD(COPY_FILE_ERROR, (FileName, NewName))); } } - catch(Exception & E) - { - COMMAND_ERROR_ARI - ( - FMTLOAD(COPY_FILE_ERROR, (FileName, NewName)), - DoCopyFile(FileName, NewName) - ); - } + while (RetryLoop.Retry()); } //--------------------------------------------------------------------------- void __fastcall TTerminal::CopyFile(const UnicodeString FileName, const TRemoteFile * /*File*/, /*const TMoveFileParams*/ void * Param) { - if (OperationProgress && (OperationProgress->Operation == foRemoteCopy)) - { - if (OperationProgress->Cancel != csContinue) Abort(); - OperationProgress->SetFile(FileName); - } - - assert(Param != NULL); + StartOperationWithFile(FileName, foRemoteCopy); + DebugAssert(Param != NULL); const TMoveFileParams & Params = *static_cast(Param); UnicodeString NewName = UnixIncludeTrailingBackslash(Params.Target) + MaskFileName(UnixExtractFileName(FileName), Params.FileMask); @@ -3765,7 +3856,7 @@ bool __fastcall TTerminal::CopyFiles(TStrings * FileList, const UnicodeString Ta void __fastcall TTerminal::CreateDirectory(const UnicodeString DirName, const TRemoteProperties * Properties) { - assert(FFileSystem); + DebugAssert(FFileSystem); EnsureNonExistence(DirName); FileModified(NULL, DirName); @@ -3782,27 +3873,27 @@ void __fastcall TTerminal::CreateDirectory(const UnicodeString DirName, //--------------------------------------------------------------------------- void __fastcall TTerminal::DoCreateDirectory(const UnicodeString DirName) { - TMkdirSessionAction Action(ActionLog, AbsolutePath(DirName, true)); - try - { - assert(FFileSystem); - FFileSystem->CreateDirectory(DirName); - } - catch(Exception & E) + TRetryOperationLoop RetryLoop(this); + do { - COMMAND_ERROR_ARI_ACTION - ( - FMTLOAD(CREATE_DIR_ERROR, (DirName)), - DoCreateDirectory(DirName), - Action - ); + TMkdirSessionAction Action(ActionLog, AbsolutePath(DirName, true)); + try + { + DebugAssert(FFileSystem); + FFileSystem->CreateDirectory(DirName); + } + catch(Exception & E) + { + RetryLoop.Error(E, Action, FMTLOAD(CREATE_DIR_ERROR, (DirName))); + } } + while (RetryLoop.Retry()); } //--------------------------------------------------------------------------- void __fastcall TTerminal::CreateLink(const UnicodeString FileName, const UnicodeString PointTo, bool Symbolic) { - assert(FFileSystem); + DebugAssert(FFileSystem); EnsureNonExistence(FileName); if (SessionData->CacheDirectories) { @@ -3818,24 +3909,25 @@ void __fastcall TTerminal::CreateLink(const UnicodeString FileName, void __fastcall TTerminal::DoCreateLink(const UnicodeString FileName, const UnicodeString PointTo, bool Symbolic) { - try - { - assert(FFileSystem); - FFileSystem->CreateLink(FileName, PointTo, Symbolic); - } - catch(Exception & E) + TRetryOperationLoop RetryLoop(this); + do { - COMMAND_ERROR_ARI - ( - FMTLOAD(CREATE_LINK_ERROR, (FileName)), - DoCreateLink(FileName, PointTo, Symbolic); - ); + try + { + DebugAssert(FFileSystem); + FFileSystem->CreateLink(FileName, PointTo, Symbolic); + } + catch(Exception & E) + { + RetryLoop.Error(E, FMTLOAD(CREATE_LINK_ERROR, (FileName))); + } } + while (RetryLoop.Retry()); } //--------------------------------------------------------------------------- void __fastcall TTerminal::HomeDirectory() { - assert(FFileSystem); + DebugAssert(FFileSystem); try { LogEvent(L"Changing directory to home directory."); @@ -3850,11 +3942,11 @@ void __fastcall TTerminal::HomeDirectory() //--------------------------------------------------------------------------- void __fastcall TTerminal::ChangeDirectory(const UnicodeString Directory) { - assert(FFileSystem); + DebugAssert(FFileSystem); try { UnicodeString CachedDirectory; - assert(!SessionData->CacheDirectoryChanges || (FDirectoryChangesCache != NULL)); + DebugAssert(!SessionData->CacheDirectoryChanges || (FDirectoryChangesCache != NULL)); // never use directory change cache during startup, this ensures, we never // end-up initially in non-existing directory if ((Status == ssOpened) && @@ -3885,7 +3977,7 @@ void __fastcall TTerminal::LookupUsersGroups() if (!FUsersGroupsLookedup && (SessionData->LookupUserGroups != asOff) && IsCapable[fcUserGroupListing]) { - assert(FFileSystem); + DebugAssert(FFileSystem); try { @@ -3935,7 +4027,7 @@ TTerminal * __fastcall TTerminal::GetCommandSession() { // transaction cannot be started yet to allow proper matching transaction // levels between main and command session - assert(FInTransaction == 0); + DebugAssert(FInTransaction == 0); try { @@ -3959,6 +4051,7 @@ TTerminal * __fastcall TTerminal::GetCommandSession() FCommandSession->OnProgress = OnProgress; FCommandSession->OnFinished = OnFinished; FCommandSession->OnInformation = OnInformation; + FCommandSession->OnClose = CommandSessionClose; // do not copy OnDisplayBanner to avoid it being displayed } catch(...) @@ -3971,6 +4064,14 @@ TTerminal * __fastcall TTerminal::GetCommandSession() return FCommandSession; } //--------------------------------------------------------------------------- +void __fastcall TTerminal::CommandSessionClose(TObject * /*Sender*/) +{ + // Keep the states in sync. + // This is particularly to invoke ours OnClose, + // So that it is triggered before Reopen is called + Close(); +} +//--------------------------------------------------------------------------- void __fastcall TTerminal::AnyCommand(const UnicodeString Command, TCaptureOutputEvent OutputEvent) { @@ -4018,7 +4119,7 @@ void __fastcall TTerminal::AnyCommand(const UnicodeString Command, void __fastcall TTerminal::DoAnyCommand(const UnicodeString Command, TCaptureOutputEvent OutputEvent, TCallSessionAction * Action) { - assert(FFileSystem); + DebugAssert(FFileSystem); try { DirectoryModified(CurrentDirectory, false); @@ -4029,8 +4130,8 @@ void __fastcall TTerminal::DoAnyCommand(const UnicodeString Command, } else { - assert(CommandSessionOpened); - assert(FCommandSession->FSProtocol == cfsSCP); + DebugAssert(CommandSessionOpened); + DebugAssert(FCommandSession->FSProtocol == cfsSCP); LogEvent(L"Executing user defined command on command session."); FCommandSession->CurrentDirectory = CurrentDirectory; @@ -4101,7 +4202,7 @@ bool __fastcall TTerminal::DoCreateLocalFile(const UnicodeString FileName, } else { - assert(FLAGSET(FileAttr, faHidden)); + DebugAssert(FLAGSET(FileAttr, faHidden)); Result = true; } @@ -4140,7 +4241,7 @@ bool __fastcall TTerminal::CreateLocalFile(const UnicodeString FileName, TFileOperationProgressType * OperationProgress, HANDLE * AHandle, bool NoConfirmation) { - assert(AHandle); + DebugAssert(AHandle); bool Result = true; FILE_OPERATION_LOOP_BEGIN @@ -4162,13 +4263,16 @@ void __fastcall TTerminal::OpenLocalFile(const UnicodeString FileName, FILE_OPERATION_LOOP_BEGIN { - Attrs = FileGetAttr(ApiPath(FileName)); - if (Attrs < 0) RaiseLastOSError(); + UnicodeString FileNameApi = ApiPath(FileName); + Attrs = FileGetAttr(FileNameApi); + if (Attrs < 0) + { + RaiseLastOSError(); + } } FILE_OPERATION_LOOP_END(FMTLOAD(FILE_NOT_EXISTS, (FileName))); - - if ((Attrs & faDirectory) == 0) + if (FLAGCLEAR(Attrs, faDirectory) || (AHandle == NULL)) { bool NoHandle = false; if (!TryWriteReadOnly && (Access == GENERIC_WRITE) && @@ -4180,9 +4284,10 @@ void __fastcall TTerminal::OpenLocalFile(const UnicodeString FileName, FILE_OPERATION_LOOP_BEGIN { + DWORD Flags = FLAGMASK(FLAGSET(Attrs, faDirectory), FILE_FLAG_BACKUP_SEMANTICS); Handle = CreateFile(ApiPath(FileName).c_str(), Access, Access == GENERIC_READ ? FILE_SHARE_READ | FILE_SHARE_WRITE : FILE_SHARE_READ, - NULL, OPEN_EXISTING, 0, 0); + NULL, OPEN_EXISTING, Flags, 0); if (Handle == INVALID_HANDLE_VALUE) { Handle = 0; @@ -4278,7 +4383,8 @@ bool __fastcall TTerminal::AllowLocalFileTransfer(UnicodeString FileName, (static_cast<__int64>(FindData.nFileSizeHigh) << 32) + FindData.nFileSizeLow; Params.Modification = FileTimeToDateTime(FindData.ftLastWriteTime); - if (!CopyParam->AllowTransfer(FileName, osLocal, Directory, Params)) + UnicodeString BaseFileName = GetBaseFileName(FileName); + if (!CopyParam->AllowTransfer(BaseFileName, osLocal, Directory, Params)) { LogEvent(FORMAT(L"File \"%s\" excluded from transfer", (FileName))); Result = false; @@ -4337,7 +4443,8 @@ void __fastcall TTerminal::CalculateLocalFileSize(const UnicodeString FileName, MaskParams.Size = Size; MaskParams.Modification = FileTimeToDateTime(Rec.FindData.ftLastWriteTime); - AllowTransfer = AParams->CopyParam->AllowTransfer(FileName, osLocal, Dir, MaskParams); + UnicodeString BaseFileName = GetBaseFileName(FileName); + AllowTransfer = AParams->CopyParam->AllowTransfer(BaseFileName, osLocal, Dir, MaskParams); } if (AllowTransfer) @@ -4352,11 +4459,7 @@ void __fastcall TTerminal::CalculateLocalFileSize(const UnicodeString FileName, } } - if (OperationProgress && OperationProgress->Operation == foCalculateSize) - { - if (OperationProgress->Cancel != csContinue) Abort(); - OperationProgress->SetFile(FileName); - } + StartOperationWithFile(FileName, foCalculateSize); } //--------------------------------------------------------------------------- bool __fastcall TTerminal::CalculateLocalFilesSize(TStrings * FileList, @@ -4373,7 +4476,7 @@ bool __fastcall TTerminal::CalculateLocalFilesSize(TStrings * FileList, Params.Params = 0; Params.CopyParam = CopyParam; - assert(!FOperationProgress); + DebugAssert(!FOperationProgress); FOperationProgress = &OperationProgress; for (int Index = 0; Result && (Index < FileList->Count); Index++) { @@ -4441,6 +4544,9 @@ TSynchronizeChecklist * __fastcall TTerminal::SynchronizeCollect(const UnicodeSt TSynchronizeDirectory OnSynchronizeDirectory, TSynchronizeOptions * Options) { + TValueRestorer UseBusyCursorRestorer(FUseBusyCursor); + FUseBusyCursor = false; + TSynchronizeChecklist * Checklist = new TSynchronizeChecklist(); try { @@ -4571,10 +4677,11 @@ void __fastcall TTerminal::DoSynchronizeCollectDirectory(const UnicodeString Loc MaskParams.Size = Size; MaskParams.Modification = Modification; UnicodeString RemoteFileName = - CopyParam->ChangeFileName(FileName, osLocal, false); + ChangeFileName(CopyParam, FileName, osLocal, false); UnicodeString FullLocalFileName = Data.LocalDirectory + FileName; + UnicodeString BaseFileName = GetBaseFileName(FullLocalFileName); if ((FileName != L".") && (FileName != L"..") && - CopyParam->AllowTransfer(FullLocalFileName, osLocal, + CopyParam->AllowTransfer(BaseFileName, osLocal, FLAGSET(SearchRec.Attr, faDirectory), MaskParams) && !FFileSystem->TemporaryTransferFile(FileName) && (FLAGCLEAR(Flags, sfFirstLevel) || @@ -4661,7 +4768,7 @@ void __fastcall TTerminal::DoSynchronizeCollectDirectory(const UnicodeString Loc if (Modified) { - assert(!FileData->MatchingRemoteFile.Directory.IsEmpty()); + DebugAssert(!FileData->MatchingRemoteFile.Directory.IsEmpty()); ChecklistItem->Remote = FileData->MatchingRemoteFile; ChecklistItem->ImageIndex = FileData->MatchingRemoteFileImageIndex; ChecklistItem->RemoteFile = FileData->MatchingRemoteFileFile; @@ -4751,11 +4858,12 @@ void __fastcall TTerminal::DoSynchronizeCollectFile(const UnicodeString FileName MaskParams.Size = File->Size; MaskParams.Modification = File->Modification; UnicodeString LocalFileName = - Data->CopyParam->ChangeFileName(File->FileName, osRemote, false); + ChangeFileName(Data->CopyParam, File->FileName, osRemote, false); UnicodeString FullRemoteFileName = UnixExcludeTrailingBackslash(File->FullFileName); + UnicodeString BaseFileName = GetBaseFileName(FullRemoteFileName); if (Data->CopyParam->AllowTransfer( - FullRemoteFileName, osRemote, + BaseFileName, osRemote, File->IsDirectory, MaskParams) && !FFileSystem->TemporaryTransferFile(File->FileName) && (FLAGCLEAR(Data->Flags, sfFirstLevel) || @@ -4776,118 +4884,126 @@ void __fastcall TTerminal::DoSynchronizeCollectFile(const UnicodeString FileName ChecklistItem->Remote.Size = File->Size; bool Modified = false; - int LocalIndex = Data->LocalFileList->IndexOf(LocalFileName); - bool New = (LocalIndex < 0); - if (!New) + bool New = false; + if (File->IsDirectory && File->IsSymLink) + { + LogEvent(FORMAT(L"Skipping symlink to directory \"%s\".", (File->FileName))); + } + else { - TSynchronizeFileData * LocalData = - reinterpret_cast(Data->LocalFileList->Objects[LocalIndex]); + int LocalIndex = Data->LocalFileList->IndexOf(LocalFileName); + New = (LocalIndex < 0); + if (!New) + { + TSynchronizeFileData * LocalData = + reinterpret_cast(Data->LocalFileList->Objects[LocalIndex]); - LocalData->New = false; + LocalData->New = false; - if (File->IsDirectory != LocalData->IsDirectory) - { - LogEvent(FORMAT(L"%s is directory on one side, but file on the another", - (File->FileName))); - } - else if (!File->IsDirectory) - { - ChecklistItem->Local = LocalData->Info; - - ChecklistItem->Local.Modification = - ReduceDateTimePrecision(ChecklistItem->Local.Modification, File->ModificationFmt); - - bool LocalModified = false; - // for spTimestamp+spBySize require that the file sizes are the same - // before comparing file time - int TimeCompare; - if (FLAGCLEAR(Data->Params, spNotByTime) && - (FLAGCLEAR(Data->Params, spTimestamp) || - FLAGCLEAR(Data->Params, spBySize) || - (ChecklistItem->Local.Size == ChecklistItem->Remote.Size))) - { - TimeCompare = CompareFileTime(ChecklistItem->Local.Modification, - ChecklistItem->Remote.Modification); - } - else + if (File->IsDirectory != LocalData->IsDirectory) { - TimeCompare = 0; + LogEvent(FORMAT(L"%s is directory on one side, but file on the another", + (File->FileName))); } - if (TimeCompare < 0) + else if (!File->IsDirectory) { - if ((FLAGCLEAR(Data->Params, spTimestamp) && FLAGCLEAR(Data->Params, spMirror)) || - (Data->Mode == smBoth) || (Data->Mode == smLocal)) + ChecklistItem->Local = LocalData->Info; + + ChecklistItem->Local.Modification = + ReduceDateTimePrecision(ChecklistItem->Local.Modification, File->ModificationFmt); + + bool LocalModified = false; + // for spTimestamp+spBySize require that the file sizes are the same + // before comparing file time + int TimeCompare; + if (FLAGCLEAR(Data->Params, spNotByTime) && + (FLAGCLEAR(Data->Params, spTimestamp) || + FLAGCLEAR(Data->Params, spBySize) || + (ChecklistItem->Local.Size == ChecklistItem->Remote.Size))) { - Modified = true; + TimeCompare = CompareFileTime(ChecklistItem->Local.Modification, + ChecklistItem->Remote.Modification); } else { - LocalModified = true; + TimeCompare = 0; } - } - else if (TimeCompare > 0) - { - if ((FLAGCLEAR(Data->Params, spTimestamp) && FLAGCLEAR(Data->Params, spMirror)) || - (Data->Mode == smBoth) || (Data->Mode == smRemote)) + if (TimeCompare < 0) { - LocalModified = true; + if ((FLAGCLEAR(Data->Params, spTimestamp) && FLAGCLEAR(Data->Params, spMirror)) || + (Data->Mode == smBoth) || (Data->Mode == smLocal)) + { + Modified = true; + } + else + { + LocalModified = true; + } } - else + else if (TimeCompare > 0) + { + if ((FLAGCLEAR(Data->Params, spTimestamp) && FLAGCLEAR(Data->Params, spMirror)) || + (Data->Mode == smBoth) || (Data->Mode == smRemote)) + { + LocalModified = true; + } + else + { + Modified = true; + } + } + else if (FLAGSET(Data->Params, spBySize) && + (ChecklistItem->Local.Size != ChecklistItem->Remote.Size) && + FLAGCLEAR(Data->Params, spTimestamp)) { Modified = true; + LocalModified = true; } - } - else if (FLAGSET(Data->Params, spBySize) && - (ChecklistItem->Local.Size != ChecklistItem->Remote.Size) && - FLAGCLEAR(Data->Params, spTimestamp)) - { - Modified = true; - LocalModified = true; - } - if (LocalModified) - { - LocalData->Modified = true; - LocalData->MatchingRemoteFile = ChecklistItem->Remote; - LocalData->MatchingRemoteFileImageIndex = ChecklistItem->ImageIndex; - // we need this for custom commands over checklist only, - // not for sync itself - LocalData->MatchingRemoteFileFile = File->Duplicate(); - LogEvent(FORMAT(L"Local file %s is modified comparing to remote file %s", - (FormatFileDetailsForLog(LocalData->Info.Directory + LocalData->Info.FileName, - LocalData->Info.Modification, LocalData->Info.Size), - FormatFileDetailsForLog(FullRemoteFileName, - File->Modification, File->Size)))); - } + if (LocalModified) + { + LocalData->Modified = true; + LocalData->MatchingRemoteFile = ChecklistItem->Remote; + LocalData->MatchingRemoteFileImageIndex = ChecklistItem->ImageIndex; + // we need this for custom commands over checklist only, + // not for sync itself + LocalData->MatchingRemoteFileFile = File->Duplicate(); + LogEvent(FORMAT(L"Local file %s is modified comparing to remote file %s", + (FormatFileDetailsForLog(LocalData->Info.Directory + LocalData->Info.FileName, + LocalData->Info.Modification, LocalData->Info.Size), + FormatFileDetailsForLog(FullRemoteFileName, + File->Modification, File->Size)))); + } - if (Modified) + if (Modified) + { + LogEvent(FORMAT(L"Remote file %s is modified comparing to local file %s", + (FormatFileDetailsForLog(FullRemoteFileName, File->Modification, File->Size), + FormatFileDetailsForLog(LocalData->Info.Directory + LocalData->Info.FileName, + LocalData->Info.Modification, LocalData->Info.Size)))); + } + } + else if (FLAGCLEAR(Data->Params, spNoRecurse)) { - LogEvent(FORMAT(L"Remote file %s is modified comparing to local file %s", - (FormatFileDetailsForLog(FullRemoteFileName, File->Modification, File->Size), - FormatFileDetailsForLog(LocalData->Info.Directory + LocalData->Info.FileName, - LocalData->Info.Modification, LocalData->Info.Size)))); + DoSynchronizeCollectDirectory( + Data->LocalDirectory + LocalData->Info.FileName, + Data->RemoteDirectory + File->FileName, + Data->Mode, Data->CopyParam, Data->Params, Data->OnSynchronizeDirectory, + Data->Options, (Data->Flags & ~sfFirstLevel), + Data->Checklist); } } - else if (FLAGCLEAR(Data->Params, spNoRecurse)) + else { - DoSynchronizeCollectDirectory( - Data->LocalDirectory + LocalData->Info.FileName, - Data->RemoteDirectory + File->FileName, - Data->Mode, Data->CopyParam, Data->Params, Data->OnSynchronizeDirectory, - Data->Options, (Data->Flags & ~sfFirstLevel), - Data->Checklist); + ChecklistItem->Local.Directory = Data->LocalDirectory; + LogEvent(FORMAT(L"Remote file %s is new", + (FormatFileDetailsForLog(FullRemoteFileName, File->Modification, File->Size)))); } } - else - { - ChecklistItem->Local.Directory = Data->LocalDirectory; - LogEvent(FORMAT(L"Remote file %s is new", - (FormatFileDetailsForLog(FullRemoteFileName, File->Modification, File->Size)))); - } if (New || Modified) { - assert(!New || !Modified); + DebugAssert(!New || !Modified); // download the file if it changed or is new and we want to have it locally if ((Data->Mode == smBoth) || (Data->Mode == smLocal)) @@ -5012,7 +5128,7 @@ void __fastcall TTerminal::SynchronizeApply(TSynchronizeChecklist * Checklist, break; default: - FAIL; + DebugFail(); break; } } @@ -5049,7 +5165,7 @@ void __fastcall TTerminal::SynchronizeApply(TSynchronizeChecklist * Checklist, break; default: - FAIL; + DebugFail(); break; } } @@ -5184,8 +5300,8 @@ void __fastcall TTerminal::FileFind(UnicodeString FileName, // see DoFilesFind FOnFindingFile = NULL; - assert(Param); - assert(File); + DebugAssert(Param); + DebugAssert(File); TFilesFindParams * AParams = static_cast(Param); if (!AParams->Cancel) @@ -5230,7 +5346,7 @@ void __fastcall TTerminal::DoFilesFind(UnicodeString Directory, TFilesFindParams Params.OnFindingFile(this, Directory, Params.Cancel); if (!Params.Cancel) { - assert(FOnFindingFile == NULL); + DebugAssert(FOnFindingFile == NULL); // ideally we should set the handler only around actually reading // of the directory listing, so we at least reset the handler in // FileFind @@ -5263,7 +5379,7 @@ void __fastcall TTerminal::FilesFind(UnicodeString Directory, const TFileMasks & void __fastcall TTerminal::SpaceAvailable(const UnicodeString Path, TSpaceAvailable & ASpaceAvailable) { - assert(IsCapable[fcCheckingSpaceAvailable]); + DebugAssert(IsCapable[fcCheckingSpaceAvailable]); try { @@ -5275,6 +5391,90 @@ void __fastcall TTerminal::SpaceAvailable(const UnicodeString Path, } } //--------------------------------------------------------------------------- +void __fastcall TTerminal::LockFile(const UnicodeString FileName, + const TRemoteFile * File, void * /*Param*/) +{ + StartOperationWithFile(FileName, foLock); + + LogEvent(FORMAT(L"Locking file \"%s\".", (FileName))); + FileModified(File, FileName, true); + + DoLockFile(FileName, File); + ReactOnCommand(fsLock); +} +//--------------------------------------------------------------------------- +void __fastcall TTerminal::DoLockFile(const UnicodeString & FileName, const TRemoteFile * File) +{ + TRetryOperationLoop RetryLoop(this); + do + { + try + { + FFileSystem->LockFile(FileName, File); + } + catch(Exception & E) + { + RetryLoop.Error(E, FMTLOAD(LOCK_FILE_ERROR, (FileName))); + } + } + while (RetryLoop.Retry()); +} +//--------------------------------------------------------------------------- +void __fastcall TTerminal::UnlockFile(const UnicodeString FileName, + const TRemoteFile * File, void * /*Param*/) +{ + StartOperationWithFile(FileName, foUnlock); + + LogEvent(FORMAT(L"Unlocking file \"%s\".", (FileName))); + FileModified(File, FileName, true); + + DoUnlockFile(FileName, File); + ReactOnCommand(fsLock); +} +//--------------------------------------------------------------------------- +void __fastcall TTerminal::DoUnlockFile(const UnicodeString & FileName, const TRemoteFile * File) +{ + TRetryOperationLoop RetryLoop(this); + do + { + try + { + FFileSystem->UnlockFile(FileName, File); + } + catch(Exception & E) + { + RetryLoop.Error(E, FMTLOAD(UNLOCK_FILE_ERROR, (FileName))); + } + } + while (RetryLoop.Retry()); +} +//--------------------------------------------------------------------------- +void __fastcall TTerminal::LockFiles(TStrings * FileList) +{ + BeginTransaction(); + try + { + ProcessFiles(FileList, foLock, LockFile, NULL); + } + __finally + { + EndTransaction(); + } +} +//--------------------------------------------------------------------------- +void __fastcall TTerminal::UnlockFiles(TStrings * FileList) +{ + BeginTransaction(); + try + { + ProcessFiles(FileList, foUnlock, UnlockFile, NULL); + } + __finally + { + EndTransaction(); + } +} +//--------------------------------------------------------------------------- const TSessionInfo & __fastcall TTerminal::GetSessionInfo() { return FFileSystem->GetSessionInfo(); @@ -5328,7 +5528,7 @@ bool __fastcall TTerminal::GetStoredCredentialsTried() } else { - assert(FTunnelOpening); + DebugAssert(FTunnelOpening); Result = false; } return Result; @@ -5337,8 +5537,8 @@ bool __fastcall TTerminal::GetStoredCredentialsTried() bool __fastcall TTerminal::CopyToRemote(TStrings * FilesToCopy, const UnicodeString TargetDir, const TCopyParamType * CopyParam, int Params) { - assert(FFileSystem); - assert(FilesToCopy); + DebugAssert(FFileSystem); + DebugAssert(FilesToCopy); bool Result = false; @@ -5433,7 +5633,7 @@ bool __fastcall TTerminal::CopyToRemote(TStrings * FilesToCopy, bool __fastcall TTerminal::CopyToLocal(TStrings * FilesToCopy, const UnicodeString TargetDir, const TCopyParamType * CopyParam, int Params) { - assert(FFileSystem); + DebugAssert(FFileSystem); // see scp.c: sink(), tolocal() @@ -5562,9 +5762,9 @@ bool __fastcall TTerminal::CopyToLocal(TStrings * FilesToCopy, //--------------------------------------------------------------------------- void __fastcall TTerminal::ReflectSettings() { - assert(FLog != NULL); + DebugAssert(FLog != NULL); FLog->ReflectSettings(); - assert(FActionLog != NULL); + DebugAssert(FActionLog != NULL); FActionLog->ReflectSettings(); // also FTunnelLog ? } @@ -5731,10 +5931,78 @@ void __fastcall TTerminal::CollectTlsUsage(const UnicodeString & TlsVersionStr) } else { - FAIL; + DebugFail(); } } //--------------------------------------------------------------------------- +bool __fastcall TTerminal::LoadTlsCertificate(X509 *& Certificate, EVP_PKEY *& PrivateKey) +{ + bool Result = !SessionData->TlsCertificateFile.IsEmpty(); + if (Result) + { + UnicodeString Passphrase = SessionData->Passphrase; + + // Inspired by neon's ne_ssl_clicert_read + bool Retry; + + do + { + Retry = false; + + bool WrongPassphrase = false; + ParseCertificate(SessionData->TlsCertificateFile, Passphrase, Certificate, PrivateKey, WrongPassphrase); + if (WrongPassphrase) + { + if (Passphrase.IsEmpty()) + { + LogEvent(L"Certificate is encrypted, need passphrase"); + Information(LoadStr(CLIENT_CERTIFICATE_LOADING), false); + } + else + { + Information(LoadStr(CERTIFICATE_DECODE_ERROR_INFO), false); + } + + Passphrase = L""; + if (PromptUser( + SessionData, pkPassphrase, + LoadStr(CERTIFICATE_PASSPHRASE_TITLE), L"", + LoadStr(CERTIFICATE_PASSPHRASE_PROMPT), false, 0, Passphrase)) + { + Retry = true; + } + else + { + Abort(); + } + } + } + while (Retry); + } + return Result; +} +//--------------------------------------------------------------------------- +UnicodeString __fastcall TTerminal::GetBaseFileName(UnicodeString FileName) +{ + if (FSessionData->TrimVMSVersions) + { + int P = FileName.LastDelimiter(L";"); + if (P > 0) + { + FileName.SetLength(P - 1); + } + } + return FileName; +} +//--------------------------------------------------------------------------- +UnicodeString __fastcall TTerminal::ChangeFileName(const TCopyParamType * CopyParam, + UnicodeString FileName, TOperationSide Side, bool FirstLevel) +{ + FileName = GetBaseFileName(FileName); + FileName = CopyParam->ChangeFileName(FileName, Side, FirstLevel); + return FileName; +} +//--------------------------------------------------------------------------- __fastcall TSecondaryTerminal::TSecondaryTerminal(TTerminal * MainTerminal, TSessionData * ASessionData, TConfiguration * Configuration, const UnicodeString & Name) : TTerminal(ASessionData, Configuration), @@ -5744,17 +6012,25 @@ __fastcall TSecondaryTerminal::TSecondaryTerminal(TTerminal * MainTerminal, Log->Name = Name; ActionLog->Enabled = false; SessionData->NonPersistant(); - assert(FMainTerminal != NULL); + DebugAssert(FMainTerminal != NULL); if (!FMainTerminal->UserName.IsEmpty()) { SessionData->UserName = FMainTerminal->UserName; } } //--------------------------------------------------------------------------- +void __fastcall TSecondaryTerminal::UpdateFromMain() +{ + if ((FFileSystem != NULL) && (FMainTerminal->FFileSystem != NULL)) + { + FFileSystem->UpdateFromMain(FMainTerminal->FFileSystem); + } +} +//--------------------------------------------------------------------------- void __fastcall TSecondaryTerminal::DirectoryLoaded(TRemoteFileList * FileList) { FMainTerminal->DirectoryLoaded(FileList); - assert(FileList != NULL); + DebugAssert(FileList != NULL); } //--------------------------------------------------------------------------- void __fastcall TSecondaryTerminal::DirectoryModified(const UnicodeString Path, @@ -5772,13 +6048,13 @@ TTerminal * __fastcall TSecondaryTerminal::GetPasswordSource() __fastcall TTerminalList::TTerminalList(TConfiguration * AConfiguration) : TObjectList() { - assert(AConfiguration); + DebugAssert(AConfiguration); FConfiguration = AConfiguration; } //--------------------------------------------------------------------------- __fastcall TTerminalList::~TTerminalList() { - assert(Count == 0); + DebugAssert(Count == 0); } //--------------------------------------------------------------------------- TTerminal * __fastcall TTerminalList::CreateTerminal(TSessionData * Data) @@ -5795,7 +6071,7 @@ TTerminal * __fastcall TTerminalList::NewTerminal(TSessionData * Data) //--------------------------------------------------------------------------- void __fastcall TTerminalList::FreeTerminal(TTerminal * Terminal) { - assert(IndexOf(Terminal) >= 0); + DebugAssert(IndexOf(Terminal) >= 0); Remove(Terminal); } //--------------------------------------------------------------------------- diff --git a/source/core/Terminal.h b/source/core/Terminal.h index 0bd89266..9aaab5c4 100644 --- a/source/core/Terminal.h +++ b/source/core/Terminal.h @@ -145,6 +145,8 @@ friend class TFTPFileSystem; friend class TWebDAVFileSystem; friend class TTunnelUI; friend class TCallbackGuard; +friend class TSecondaryTerminal; +friend class TRetryOperationLoop; private: TSessionData * FSessionData; @@ -173,7 +175,6 @@ friend class TCallbackGuard; bool FUseBusyCursor; TRemoteDirectoryCache * FDirectoryCache; TRemoteDirectoryChangesCache * FDirectoryChangesCache; - TCustomFileSystem * FFileSystem; TSecureShell * FSecureShell; UnicodeString FLastDirectoryChange; TCurrentFSProtocol FFSProtocol; @@ -238,6 +239,7 @@ friend class TCallbackGuard; bool FReadCurrentDirectoryPending; bool FReadDirectoryPending; bool FTunnelOpening; + TCustomFileSystem * FFileSystem; void __fastcall DoStartReadDirectory(); void __fastcall DoReadDirectoryProgress(int Progress, int ResolvedLinks, bool & Cancel); @@ -339,6 +341,10 @@ friend class TCallbackGuard; bool __fastcall DoCreateLocalFile(const UnicodeString FileName, TFileOperationProgressType * OperationProgress, HANDLE * AHandle, bool NoConfirmation); + void __fastcall LockFile(const UnicodeString FileName, const TRemoteFile * File, void * Param); + void __fastcall UnlockFile(const UnicodeString FileName, const TRemoteFile * File, void * Param); + void __fastcall DoLockFile(const UnicodeString & FileName, const TRemoteFile * File); + void __fastcall DoUnlockFile(const UnicodeString & FileName, const TRemoteFile * File); virtual void __fastcall Information(const UnicodeString & Str, bool Status); virtual unsigned int __fastcall QueryUser(const UnicodeString Query, @@ -378,6 +384,12 @@ friend class TCallbackGuard; void __fastcall CacheCertificate(const UnicodeString & CertificateStorageKey, const UnicodeString & SiteKey, const UnicodeString & Fingerprint, int Failures); void __fastcall CollectTlsUsage(const UnicodeString & TlsVersionStr); + bool __fastcall LoadTlsCertificate(X509 *& Certificate, EVP_PKEY *& PrivateKey); + bool __fastcall TryStartOperationWithFile( + const UnicodeString & FileName, TFileOperation Operation1, TFileOperation Operation2 = foNone); + void __fastcall StartOperationWithFile( + const UnicodeString & FileName, TFileOperation Operation1, TFileOperation Operation2 = foNone); + void __fastcall CommandSessionClose(TObject * Sender); __property TFileOperationProgressType * OperationProgress = { read=FOperationProgress }; @@ -460,6 +472,8 @@ friend class TCallbackGuard; void __fastcall FilesFind(UnicodeString Directory, const TFileMasks & FileMask, TFileFoundEvent OnFileFound, TFindingFileEvent OnFindingFile); void __fastcall SpaceAvailable(const UnicodeString Path, TSpaceAvailable & ASpaceAvailable); + void __fastcall LockFiles(TStrings * FileList); + void __fastcall UnlockFiles(TStrings * FileList); bool __fastcall DirectoryFileList(const UnicodeString Path, TRemoteFileList *& FileList, bool CanLoad); void __fastcall MakeLocalFileList(const UnicodeString FileName, @@ -479,6 +493,9 @@ friend class TCallbackGuard; const TFileSystemInfo & __fastcall GetFileSystemInfo(bool Retrieve = false); void __fastcall inline LogEvent(const UnicodeString & Str); void __fastcall GetSupportedChecksumAlgs(TStrings * Algs); + UnicodeString __fastcall ChangeFileName(const TCopyParamType * CopyParam, + UnicodeString FileName, TOperationSide Side, bool FirstLevel); + UnicodeString __fastcall GetBaseFileName(UnicodeString FileName); static UnicodeString __fastcall ExpandFileName(UnicodeString Path, const UnicodeString BasePath); @@ -533,6 +550,8 @@ class TSecondaryTerminal : public TTerminal TSessionData * SessionData, TConfiguration * Configuration, const UnicodeString & Name); + void __fastcall UpdateFromMain(); + __property TTerminal * MainTerminal = { read = FMainTerminal }; protected: diff --git a/source/core/WebDAVFileSystem.cpp b/source/core/WebDAVFileSystem.cpp index ef805505..e3b6e678 100644 --- a/source/core/WebDAVFileSystem.cpp +++ b/source/core/WebDAVFileSystem.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include "WebDAVFileSystem.h" @@ -31,6 +32,7 @@ #include "CoreMain.h" #include "Security.h" #include +#include #include //--------------------------------------------------------------------------- #pragma package(smart_init) @@ -64,17 +66,19 @@ struct TWebDAVCertificateData }; //--------------------------------------------------------------------------- #define SESSION_FS_KEY "filesystem" -#define MAX_REDIRECT_ATTEMPTS 5 static const char CertificateStorageKey[] = "HttpsCertificates"; static const UnicodeString CONST_WEBDAV_PROTOCOL_BASE_NAME = L"WebDAV"; //--------------------------------------------------------------------------- #define DAV_PROP_NAMESPACE "DAV:" +#define MODDAV_PROP_NAMESPACE "http://apache.org/dav/props/" #define PROP_CONTENT_LENGTH "getcontentlength" #define PROP_LAST_MODIFIED "getlastmodified" #define PROP_RESOURCE_TYPE "resourcetype" #define PROP_HIDDEN "ishidden" #define PROP_QUOTA_AVAILABLE "quota-available-bytes" #define PROP_QUOTA_USED "quota-used-bytes" +#define PROP_EXECUTABLE "executable" +#define PROP_OWNER "owner" //--------------------------------------------------------------------------- static std::unique_ptr DebugSection(new TCriticalSection); static std::set FileSystems; @@ -107,48 +111,51 @@ void ne_debug(void * Context, int Channel, const char * Format, ...) else { DoLog = false; - FAIL; + DebugFail(); } + #ifndef _DEBUG if (DoLog) + #endif { - TWebDAVFileSystem * FileSystem = NULL; - if (Context != NULL) - { - ne_session * Session = static_cast(Context); + va_list Args; + va_start(Args, Format); + UTF8String UTFMessage; + UTFMessage.vprintf(Format, Args); + va_end(Args); - FileSystem = - static_cast(ne_get_session_private(Session, SESSION_FS_KEY)); - } - else + UnicodeString Message = UTFMessage; + + if (DoLog) { - TGuard Guard(DebugSection.get()); + // Note that this gets called for THttp sessions too. + // It does no harm atm. + TWebDAVFileSystem * FileSystem = NULL; + if (Context != NULL) + { + ne_session * Session = static_cast(Context); - if (FileSystems.size() == 1) + FileSystem = + static_cast(ne_get_session_private(Session, SESSION_FS_KEY)); + } + else { - FileSystem = *FileSystems.begin(); + TGuard Guard(DebugSection.get()); + + if (FileSystems.size() == 1) + { + FileSystem = *FileSystems.begin(); + } } - } - if (FileSystem != NULL) - { - va_list Args; - va_start(Args, Format); - UTF8String Message; - Message.vprintf(Format, Args); - FileSystem->NeonDebug(UnicodeString(Message)); - va_end(Args); + if (FileSystem != NULL) + { + FileSystem->NeonDebug(Message); + } } } } -void ne_init_ssl_session(struct ssl_st * Ssl, ne_session * Session) -{ - TWebDAVFileSystem * FileSystem = - static_cast(ne_get_session_private(Session, SESSION_FS_KEY)); - FileSystem->InitSslSession(Ssl); -} - } // extern "C" //------------------------------------------------------------------------------ //--------------------------------------------------------------------------- @@ -170,28 +177,46 @@ static UTF8String PathUnescape(const char * Path) return Result; } //--------------------------------------------------------------------------- -#define StrToNeon(S) UTF8String(S).c_str() -#define StrFromNeon(S) UnicodeString(UTF8String(S)) #define AbsolutePathToNeon(P) PathEscape(StrToNeon(P)).c_str() #define PathToNeonStatic(THIS, P) AbsolutePathToNeon((THIS)->AbsolutePath(P, false)) #define PathToNeon(P) PathToNeonStatic(this, P) //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- +static bool NeonInitialized = false; +static bool NeonSspiInitialized = false; +//--------------------------------------------------------------------------- void __fastcall NeonInitialize() { // Even if this fails, we do not want to interrupt WinSCP starting for that. - // We may possibly remember that and fail opening session later. // Anyway, it can hardly fail. - // Though it fails on Wine on Debian VM. - // Probably because of ne_sspi_init() as we get this message on stderr: - // p11-kit: couldn't load module: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: cannot open shared object file: No such file or directory - // err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution. - ALWAYS_TRUE(ne_sock_init() == 0); + // Though it fails on Wine on Debian VM, because of ne_sspi_init(): + // sspi: QuerySecurityPackageInfo [failed] [80090305]. + // sspi: Unable to get negotiate maximum packet size + int NeonResult = ne_sock_init(); + if (NeonResult == 0) + { + NeonInitialized = true; + NeonSspiInitialized = true; + } + else if (NeonResult == -2) + { + NeonInitialized = true; + NeonSspiInitialized = false; + } + else + { + NeonInitialized = false; + NeonSspiInitialized = false; + } } //--------------------------------------------------------------------------- void __fastcall NeonFinalize() { - ne_sock_exit(); + if (NeonInitialized) + { + ne_sock_exit(); + NeonInitialized = false; + } } //--------------------------------------------------------------------------- UnicodeString __fastcall NeonVersion() @@ -213,6 +238,8 @@ TWebDAVFileSystem::TWebDAVFileSystem(TTerminal * ATerminal) : FActive(false), FHasTrailingSlash(false), FNeonSession(NULL), + FNeonLockStore(NULL), + FNeonLockStoreSection(new TCriticalSection()), FUploading(false), FDownloading(false), FInitialHandshake(false), @@ -225,16 +252,39 @@ TWebDAVFileSystem::TWebDAVFileSystem(TTerminal * ATerminal) : __fastcall TWebDAVFileSystem::~TWebDAVFileSystem() { UnregisterFromDebug(); + + { + TGuard Guard(FNeonLockStoreSection); + if (FNeonLockStore != NULL) + { + ne_lockstore_destroy(FNeonLockStore); + FNeonLockStore = NULL; + } + } + + delete FNeonLockStoreSection; } //--------------------------------------------------------------------------- void __fastcall TWebDAVFileSystem::Open() { + + if (!NeonInitialized) + { + throw Exception(LoadStr(NEON_INIT_FAILED)); + } + + if (!NeonSspiInitialized) + { + FTerminal->LogEvent(L"Warning: SSPI initialization failed."); + } + RegisterForDebug(); FCurrentDirectory = L""; FHasTrailingSlash = true; FStoredPasswordTried = false; FTlsVersionStr = L""; + FCapabilities = 0; TSessionData * Data = FTerminal->SessionData; @@ -245,7 +295,7 @@ void __fastcall TWebDAVFileSystem::Open() UnicodeString ProtocolName = (FTerminal->SessionData->Ftps == ftpsNone) ? WebDAVProtocol : WebDAVSProtocol; UnicodeString Path = Data->RemoteDirectory; // PathToNeon is not used as we cannot call AbsolutePath here - UnicodeString EscapedPath = UnicodeString(UTF8String(PathEscape(StrToNeon(Path)).c_str())); + UnicodeString EscapedPath = StrFromNeon(PathEscape(StrToNeon(Path)).c_str()); UnicodeString Url = FORMAT(L"%s://%s:%d%s", (ProtocolName, HostName, Port, EscapedPath)); FTerminal->Information(LoadStr(STATUS_CONNECT), true); @@ -284,7 +334,7 @@ void TWebDAVFileSystem::OpenUrl(const UnicodeString & Url) { CorrectedUrl = Url; } - AnsiString ParsedPath = ParsePathFromUrl(CorrectedUrl); + UnicodeString ParsedPath = ParsePathFromUrl(CorrectedUrl); if (!ParsedPath.IsEmpty()) { // this is most likely pointless as it get overwritten by @@ -296,7 +346,7 @@ void TWebDAVFileSystem::OpenUrl(const UnicodeString & Url) void TWebDAVFileSystem::NeonClientOpenSessionInternal(UnicodeString & CorrectedUrl, UnicodeString Url) { std::unique_ptr AttemptedUrls(CreateSortedStringList()); - int AttemptsLeft = MAX_REDIRECT_ATTEMPTS; + AttemptedUrls->Add(Url); while (true) { CorrectedUrl = L""; @@ -306,23 +356,10 @@ void TWebDAVFileSystem::NeonClientOpenSessionInternal(UnicodeString & CorrectedU { break; } - if (AttemptsLeft == 0) - { - throw Exception(LoadStr(TOO_MANY_REDIRECTS)); - } - else - { - CloseNeonSession(); - AttemptsLeft--; - // Our caller will want to know what our final corrected URL was. - // Make sure we've not attempted this URL before. - if (AttemptedUrls->IndexOf(CorrectedUrl) >= 0) - { - throw Exception(LoadStr(REDIRECT_LOOP)); - } - AttemptedUrls->Add(CorrectedUrl); - Url = CorrectedUrl; - } + CloseNeonSession(); + CheckRedirectLoop(CorrectedUrl, AttemptedUrls.get()); + // Our caller will want to know what our final corrected URL was. + Url = CorrectedUrl; } CorrectedUrl = Url; @@ -331,35 +368,29 @@ void TWebDAVFileSystem::NeonClientOpenSessionInternal(UnicodeString & CorrectedU void TWebDAVFileSystem::NeonOpen(UnicodeString & CorrectedUrl, const UnicodeString & Url) { ne_uri uri; - if (ne_uri_parse(StrToNeon(Url), &uri) != 0) - { - // should never happen - throw Exception(FMTLOAD(INVALID_URL, (Url))); - } - - // Will never happen for initial URL, but may happen for redirect URLs - if (uri.port == 0) - { - uri.port = ne_uri_defaultport(uri.scheme); - } + NeonParseUrl(Url, uri); FHostName = StrFromNeon(uri.host); FPortNumber = uri.port; FSessionInfo.CSCipher = UnicodeString(); FSessionInfo.SCCipher = UnicodeString(); - bool Ssl = SameText(StrFromNeon(uri.scheme), WebDAVSProtocol); + bool Ssl = IsTlsUri(uri); FSessionInfo.SecurityProtocolName = Ssl ? LoadStr(FTPS_IMPLICIT) : UnicodeString(); if (Ssl != (FTerminal->SessionData->Ftps != ftpsNone)) { - FTerminal->LogEvent(L"Warning: Redirected to an unencrypted URL."); + FTerminal->LogEvent(FORMAT(L"Warning: %s", (LoadStr(UNENCRYPTED_REDIRECT)))); } TSessionData * Data = FTerminal->SessionData; - assert(FNeonSession == NULL); - FNeonSession = ne_session_create(uri.scheme, uri.host, uri.port); + DebugAssert(FNeonSession == NULL); + FNeonSession = + CreateNeonSession( + uri, Data->ProxyMethod, Data->ProxyHost, Data->ProxyPort, + Data->ProxyUsername, Data->ProxyPassword); + UTF8String Path = uri.path; ne_uri_free(&uri); ne_set_session_private(FNeonSession, SESSION_FS_KEY, this); @@ -376,41 +407,13 @@ void TWebDAVFileSystem::NeonOpen(UnicodeString & CorrectedUrl, const UnicodeStri NE_DBG_LOCKS | // very details NE_DBG_XMLPARSE | // very details NE_DBG_HTTPBODY | // very details - NE_DBG_SSL; - - if (Data->ProxyMethod != ::pmNone) - { - if ((Data->ProxyMethod == pmSocks4) || (Data->ProxyMethod == pmSocks5)) - { - enum ne_sock_sversion vers = (Data->ProxyMethod == pmSocks4) ? NE_SOCK_SOCKSV4A : NE_SOCK_SOCKSV5; - ne_session_socks_proxy(FNeonSession, vers, StrToNeon(Data->ProxyHost), Data->ProxyPort, StrToNeon(Data->ProxyUsername), StrToNeon(Data->ProxyPassword)); - } - else if (!Data->ProxyHost.IsEmpty()) - { - ne_session_proxy(FNeonSession, StrToNeon(Data->ProxyHost), Data->ProxyPort); - - if (!Data->ProxyUsername.IsEmpty()) - { - ne_set_proxy_auth(FNeonSession, NeonProxyAuth, this); - } - else - { - // Enable (only) the Negotiate scheme for proxy - // authentication, if no username/password is - // configured. - ne_add_proxy_auth(FNeonSession, NE_AUTH_NEGOTIATE, NULL, NULL); - } - } - } + NE_DBG_SSL | + FLAGMASK(Configuration->LogSensitive, NE_DBG_HTTPPLAIN); ne_set_read_timeout(FNeonSession, Data->Timeout); ne_set_connect_timeout(FNeonSession, Data->Timeout); - ne_redirect_register(FNeonSession); - - ne_set_useragent(FNeonSession, StrToNeon(FORMAT(L"%s/%s", (AppNameString(), Configuration->Version)))); - unsigned int NeonAuthTypes = NE_AUTH_BASIC | NE_AUTH_DIGEST; if (Ssl) { @@ -420,12 +423,16 @@ void TWebDAVFileSystem::NeonOpen(UnicodeString & CorrectedUrl, const UnicodeStri if (Ssl) { + SetNeonTlsInit(FNeonSession, InitSslSession); + // When the CA certificate or server certificate has // verification problems, neon will call our verify function before // outright rejection of the connection. ne_ssl_set_verify(FNeonSession, NeonServerSSLCallback, this); ne_ssl_trust_default_ca(FNeonSession); + + ne_ssl_provide_clicert(FNeonSession, NeonProvideClientCert, this); } ne_set_notifier(FNeonSession, NeonNotifier, this); @@ -439,29 +446,26 @@ void TWebDAVFileSystem::NeonOpen(UnicodeString & CorrectedUrl, const UnicodeStri //--------------------------------------------------------------------------- UnicodeString __fastcall TWebDAVFileSystem::GetRedirectUrl() { - const ne_uri * RedirectUri = ne_redirect_location(FNeonSession); - char * RedirectUriStr = ne_uri_unparse(RedirectUri); - UnicodeString Result = StrFromNeon(RedirectUriStr); - ne_free(RedirectUriStr); + UnicodeString Result = GetNeonRedirectUrl(FNeonSession); FTerminal->LogEvent(FORMAT(L"Redirected to \"%s\".", (Result))); return Result; } //--------------------------------------------------------------------------- void TWebDAVFileSystem::ExchangeCapabilities(const char * Path, UnicodeString & CorrectedUrl) { - unsigned int Capabilities = 0; ClearNeonError(); - int NeonStatus = ne_options2(FNeonSession, Path, &Capabilities); + int NeonStatus = ne_options2(FNeonSession, Path, &FCapabilities); if (NeonStatus == NE_REDIRECT) { CorrectedUrl = GetRedirectUrl(); } else if (NeonStatus == NE_OK) { - if (Capabilities > 0) + if (FCapabilities > 0) { UnicodeString Str; unsigned int Capability = 0x01; + unsigned int Capabilities = FCapabilities; while (Capabilities > 0) { if (FLAGSET(Capabilities, Capability)) @@ -489,14 +493,14 @@ void __fastcall TWebDAVFileSystem::CloseNeonSession() { if (FNeonSession != NULL) { - ne_session_destroy(FNeonSession); + DestroyNeonSession(FNeonSession); FNeonSession = NULL; } } //--------------------------------------------------------------------------- void __fastcall TWebDAVFileSystem::Close() { - assert(FActive); + DebugAssert(FActive); CloseNeonSession(); FTerminal->Closed(); FActive = false; @@ -527,6 +531,11 @@ void __fastcall TWebDAVFileSystem::CollectUsage() FTerminal->CollectTlsUsage(FTlsVersionStr); } + if (!FTerminal->SessionData->TlsCertificateFile.IsEmpty()) + { + Configuration->Usage->Inc(L"OpenedSessionsWebDAVSCertificate"); + } + UnicodeString RemoteSystem = FFileSystemInfo.RemoteSystem; if (ContainsText(RemoteSystem, L"Microsoft-IIS")) { @@ -606,7 +615,7 @@ UnicodeString __fastcall TWebDAVFileSystem::AbsolutePath(const UnicodeString Pat //--------------------------------------------------------------------------- bool __fastcall TWebDAVFileSystem::IsCapable(int Capability) const { - assert(FTerminal); + DebugAssert(FTerminal); switch (Capability) { case fcRename: @@ -640,10 +649,14 @@ bool __fastcall TWebDAVFileSystem::IsCapable(int Capability) const case fcRemoveCtrlZUpload: case fcRemoveBOMUpload: case fcRemoteCopy: + case fcPreservingTimestampDirs: return false; + case fcLocking: + return FLAGSET(FCapabilities, NE_CAP_DAV_CLASS2); + default: - FAIL; + DebugFail(); return false; } } @@ -670,76 +683,25 @@ void __fastcall TWebDAVFileSystem::ClearNeonError() //--------------------------------------------------------------------------- UnicodeString __fastcall TWebDAVFileSystem::GetNeonError() { - return StrFromNeon(ne_get_error(FNeonSession)); + return ::GetNeonError(FNeonSession); } //--------------------------------------------------------------------------- void __fastcall TWebDAVFileSystem::CheckStatus(int NeonStatus) { - if (NeonStatus == NE_OK) - { - // noop - } - else if ((NeonStatus == NE_ERROR) && FCancelled) + if ((NeonStatus == NE_ERROR) && FCancelled) { FCancelled = false; Abort(); } else { - UnicodeString NeonError = GetNeonError(); - UnicodeString Error; - switch (NeonStatus) - { - case NE_ERROR: - // noop - assert(!NeonError.IsEmpty()); - Error = NeonError; - NeonError = L""; - break; - - case NE_LOOKUP: - Error = ReplaceStr(LoadStr(NET_TRANSL_HOST_NOT_EXIST2), L"%HOST%", FHostName); - break; - - case NE_AUTH: - Error = LoadStr(AUTHENTICATION_FAILED); - break; - - case NE_PROXYAUTH: - Error = LoadStr(PROXY_AUTHENTICATION_FAILED); - break; - - case NE_CONNECT: - Error = LoadStr(CONNECTION_FAILED); - break; - - case NE_TIMEOUT: - Error = ReplaceStr(LoadStr(NET_TRANSL_TIMEOUT2), L"%HOST%", FHostName); - break; - - case NE_REDIRECT: - { - char * Uri = ne_uri_unparse(ne_redirect_location(FNeonSession)); - Error = FMTLOAD(REQUEST_REDIRECTED, (Uri)); - ne_free(Uri); - } - break; - - case NE_FAILED: // never used by neon as of 0.30.0 - case NE_RETRY: // not sure if this is a public API - default: - FAIL; - Error = FORMAT(L"Unexpected neon error %d", (NeonStatus)); - break; - } - - throw ExtException(Error, NeonError); + CheckNeonStatus(FNeonSession, NeonStatus, FHostName); } } //--------------------------------------------------------------------------- void __fastcall TWebDAVFileSystem::LookupUsersGroups() { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void __fastcall TWebDAVFileSystem::ReadCurrentDirectory() @@ -769,6 +731,16 @@ UnicodeString __fastcall TWebDAVFileSystem::DirectoryPath(UnicodeString Path) return Path; } //--------------------------------------------------------------------------- +UnicodeString __fastcall TWebDAVFileSystem::FilePath(const TRemoteFile * File) +{ + UnicodeString Result = File->FullFileName; + if (File->IsDirectory) + { + Result = DirectoryPath(Result); + } + return Result; +} +//--------------------------------------------------------------------------- void __fastcall TWebDAVFileSystem::TryOpenDirectory(UnicodeString Directory) { Directory = DirectoryPath(Directory); @@ -814,9 +786,19 @@ int __fastcall TWebDAVFileSystem::ReadDirectoryInternal( Data.File = NULL; Data.FileList = FileList; ClearNeonError(); - return - ne_simple_propfind(FNeonSession, PathToNeon(Path), NE_DEPTH_ONE, NULL, - NeonPropsResult, &Data); + ne_propfind_handler * PropFindHandler = ne_propfind_create(FNeonSession, PathToNeon(Path), NE_DEPTH_ONE); + void * DiscoveryContext = ne_lock_register_discovery(PropFindHandler); + int Result; + try + { + Result = ne_propfind_allprop(PropFindHandler, NeonPropsResult, &Data); + } + __finally + { + ne_lock_discovery_free(DiscoveryContext); + ne_propfind_destroy(PropFindHandler); + } + return Result; } //--------------------------------------------------------------------------- bool __fastcall TWebDAVFileSystem::IsValidRedirect(int NeonStatus, UnicodeString & Path) @@ -863,7 +845,7 @@ void __fastcall TWebDAVFileSystem::ReadSymlink(TRemoteFile * /*SymlinkFile*/, TRemoteFile *& /*File*/) { // we never set SymLink flag, so we should never get here - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void __fastcall TWebDAVFileSystem::ReadFile(const UnicodeString FileName, @@ -875,8 +857,7 @@ void __fastcall TWebDAVFileSystem::ReadFile(const UnicodeString FileName, void TWebDAVFileSystem::NeonPropsResult( void * UserData, const ne_uri * Uri, const ne_prop_result_set * Results) { - UTF8String UnescapedUri = PathUnescape(Uri->path).c_str(); - UnicodeString Path = StrFromNeon(UnescapedUri); + UnicodeString Path = StrFromNeon(PathUnescape(Uri->path).c_str()); TReadFileData & Data = *static_cast(UserData); if (Data.FileList != NULL) @@ -897,10 +878,11 @@ void TWebDAVFileSystem::NeonPropsResult( } } //--------------------------------------------------------------------------- -const char * __fastcall TWebDAVFileSystem::GetProp(const ne_prop_result_set * Results, const char * Name) +const char * __fastcall TWebDAVFileSystem::GetProp( + const ne_prop_result_set * Results, const char * Name, const char * NameSpace) { ne_propname Prop; - Prop.nspace = DAV_PROP_NAMESPACE; + Prop.nspace = (NameSpace == NULL) ? DAV_PROP_NAMESPACE : NameSpace; Prop.name = Name; return ne_propset_value(Results, &Prop); } @@ -920,7 +902,7 @@ void __fastcall TWebDAVFileSystem::ParsePropResultSet(TRemoteFile * File, File->Size = StrToInt64Def(ContentLength, 0); } const char * LastModified = GetProp(Results, PROP_LAST_MODIFIED); - if (ALWAYS_TRUE(LastModified != NULL)) + if (DebugAlwaysTrue(LastModified != NULL)) { char WeekDay[4] = { L'\0' }; int Year = 0; @@ -972,6 +954,64 @@ void __fastcall TWebDAVFileSystem::ParsePropResultSet(TRemoteFile * File, { File->IsHidden = (StrToIntDef(IsHidden, 0) != 0); } + + const char * Owner = GetProp(Results, PROP_OWNER); + if (Owner != NULL) + { + File->Owner.Name = Owner; + } + + const UnicodeString RightsDelimiter(L", "); + UnicodeString HumanRights; + + // Proprietary property of mod_dav + // http://www.webdav.org/mod_dav/#imp + const char * Executable = GetProp(Results, PROP_EXECUTABLE, MODDAV_PROP_NAMESPACE); + if (Executable != NULL) + { + if (strcmp(Executable, "T") == NULL) + { + UnicodeString ExecutableRights; + // The "gear" character is supported since Windows 8 + if (IsWin8()) + { + ExecutableRights = L"\u2699"; + } + else + { + ExecutableRights = LoadStr(EXECUTABLE); + } + AddToList(HumanRights, ExecutableRights, RightsDelimiter); + } + } + + struct ne_lock * Lock = static_cast(ne_propset_private(Results)); + if ((Lock != NULL) && (Lock->token != NULL)) + { + UnicodeString Owner; + if (Lock->owner != NULL) + { + Owner = StrFromNeon(Lock->owner).Trim(); + } + UnicodeString LockRights; + if (IsWin8()) + { + // The "lock" character is supported since Windows 8 + LockRights = L"\uD83D\uDD12" + Owner; + } + else + { + LockRights = LoadStr(LOCKED); + if (!Owner.IsEmpty()) + { + LockRights = FORMAT(L"%s (%s)", (LockRights, Owner)); + } + } + + AddToList(HumanRights, LockRights, RightsDelimiter); + } + + File->HumanRights = HumanRights; } //--------------------------------------------------------------------------- int __fastcall TWebDAVFileSystem::CustomReadFileInternal(const UnicodeString FileName, @@ -1012,16 +1052,16 @@ void __fastcall TWebDAVFileSystem::DeleteFile(const UnicodeString FileName, Action.Recursive(); ClearNeonError(); TOperationVisualizer Visualizer(FTerminal->UseBusyCursor); - UnicodeString Path = File->FullFileName; - if (File->IsDirectory) - { - Path = DirectoryPath(Path); - } + RawByteString Path = PathToNeon(FilePath(File)); // WebDAV does not allow non-recursive delete: // RFC 4918, section 9.6.1: // "A client MUST NOT submit a Depth header with a DELETE on a collection with any value but infinity." // We should check that folder is empty when called with FLAGSET(Params, dfNoRecursive) - CheckStatus(ne_delete(FNeonSession, PathToNeon(Path))); + CheckStatus(ne_delete(FNeonSession, Path.c_str())); + // The lock is removed with the file, but if a file with the same name gets created, + // we would try to use obsoleted lock token with it, what the server would reject + // (mod_dav returns "412 Precondition Failed") + DiscardLock(Path); } //--------------------------------------------------------------------------- int __fastcall TWebDAVFileSystem::RenameFileInternal(const UnicodeString & FileName, @@ -1044,12 +1084,14 @@ void __fastcall TWebDAVFileSystem::RenameFile(const UnicodeString FileName, NeonStatus = RenameFileInternal(Path, NewName); } CheckStatus(NeonStatus); + // See a comment in DeleteFile + DiscardLock(PathToNeon(Path)); } //--------------------------------------------------------------------------- void __fastcall TWebDAVFileSystem::CopyFile(const UnicodeString FileName, const UnicodeString NewName) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void __fastcall TWebDAVFileSystem::CreateDirectory(const UnicodeString DirName) @@ -1062,19 +1104,19 @@ void __fastcall TWebDAVFileSystem::CreateDirectory(const UnicodeString DirName) void __fastcall TWebDAVFileSystem::CreateLink(const UnicodeString FileName, const UnicodeString PointTo, bool /*Symbolic*/) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void __fastcall TWebDAVFileSystem::ChangeFileProperties(const UnicodeString FileName, const TRemoteFile * /*File*/, const TRemoteProperties * /*Properties*/, TChmodSessionAction & /*Action*/) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- bool __fastcall TWebDAVFileSystem::LoadFilesProperties(TStrings * /*FileList*/) { - FAIL; + DebugFail(); return false; } //--------------------------------------------------------------------------- @@ -1082,7 +1124,7 @@ void __fastcall TWebDAVFileSystem::CalculateFilesChecksum(const UnicodeString & TStrings * /*FileList*/, TStrings * /*Checksums*/, TCalculatedChecksumEvent /*OnCalculatedChecksum*/) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void __fastcall TWebDAVFileSystem::ConfirmOverwrite( @@ -1129,7 +1171,7 @@ void __fastcall TWebDAVFileSystem::ConfirmOverwrite( THROW_SKIP_FILE_NULL; default: - FAIL; + DebugFail(); case qaCancel: if (!OperationProgress->Cancel) { @@ -1143,13 +1185,13 @@ void __fastcall TWebDAVFileSystem::ConfirmOverwrite( void __fastcall TWebDAVFileSystem::CustomCommandOnFile(const UnicodeString FileName, const TRemoteFile * /*File*/, UnicodeString Command, int /*Params*/, TCaptureOutputEvent /*OutputEvent*/) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void __fastcall TWebDAVFileSystem::AnyCommand(const UnicodeString Command, TCaptureOutputEvent /*OutputEvent*/) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- TStrings * __fastcall TWebDAVFileSystem::GetFixedPaths() @@ -1221,7 +1263,7 @@ void __fastcall TWebDAVFileSystem::CopyToRemote(TStrings * FilesToCopy, int Params, TFileOperationProgressType * OperationProgress, TOnceDoneOperation & OnceDoneOperation) { - assert((FilesToCopy != NULL) && (OperationProgress != NULL)); + DebugAssert((FilesToCopy != NULL) && (OperationProgress != NULL)); Params &= ~cpAppend; UnicodeString FileName, FileNameOnly; @@ -1346,8 +1388,10 @@ void __fastcall TWebDAVFileSystem::Source(const UnicodeString FileName, } else { - UnicodeString DestFileName = CopyParam->ChangeFileName(ExtractFileName(FileName), - osLocal, FLAGSET(Flags, tfFirstLevel)); + UnicodeString DestFileName = + FTerminal->ChangeFileName( + CopyParam, ExtractFileName(FileName), osLocal, + FLAGSET(Flags, tfFirstLevel)); FTerminal->LogEvent(FORMAT(L"Copying \"%s\" to remote directory started.", (FileName))); @@ -1505,9 +1549,10 @@ void __fastcall TWebDAVFileSystem::DirectorySource(const UnicodeString Directory const UnicodeString TargetDir, int Attrs, const TCopyParamType * CopyParam, int Params, TFileOperationProgressType * OperationProgress, unsigned int Flags) { - UnicodeString DestDirectoryName = CopyParam->ChangeFileName( - ExtractFileName(ExcludeTrailingBackslash(DirectoryName)), osLocal, - FLAGSET(Flags, tfFirstLevel)); + UnicodeString DestDirectoryName = + FTerminal->ChangeFileName( + CopyParam, ExtractFileName(ExcludeTrailingBackslash(DirectoryName)), + osLocal, FLAGSET(Flags, tfFirstLevel)); UnicodeString DestFullName = UnixIncludeTrailingBackslash(TargetDir + DestDirectoryName); // create DestFullName if it does not exist if (!FTerminal->FileExists(DestFullName)) @@ -1664,7 +1709,7 @@ void __fastcall TWebDAVFileSystem::SinkRobust(const UnicodeString FileName, { OperationProgress->RollbackTransfer(); Action.Restart(); - assert(File != NULL); + DebugAssert(File != NULL); if (!File->IsDirectory) { // prevent overwrite confirmations @@ -1711,7 +1756,7 @@ void TWebDAVFileSystem::NeonPreSend( { // all neon request types that use ne_add_request_header // use XML content-type, so it's text-based - assert(ContainsStr(AnsiString(Header->data, Header->used), "Content-Type: " NE_XML_MEDIA_TYPE)); + DebugAssert(ContainsStr(AnsiString(Header->data, Header->used), "Content-Type: " NE_XML_MEDIA_TYPE)); FileSystem->FTerminal->Log->Add(llInput, UnicodeString(UTF8String(Buffer, Size))); } } @@ -1753,8 +1798,7 @@ ssize_t TWebDAVFileSystem::NeonUploadBodyProvider(void * UserData, char * /*Buff //--------------------------------------------------------------------------- static void __fastcall AddHeaderValueToList(UnicodeString & List, ne_request * Request, const char * Name) { - const char * Value; - Value = ne_get_response_header(Request, Name); + const char * Value = ne_get_response_header(Request, Name); if (Value != NULL) { AddToList(List, StrFromNeon(Value), L"; "); @@ -1763,7 +1807,7 @@ static void __fastcall AddHeaderValueToList(UnicodeString & List, ne_request * R //--------------------------------------------------------------------------- int TWebDAVFileSystem::NeonBodyAccepter(void * UserData, ne_request * Request, const ne_status * Status) { - assert(UserData == Request); + DebugAssert(UserData == Request); TWebDAVFileSystem * FileSystem = static_cast(ne_get_request_private(Request, SESSION_FS_KEY)); @@ -1885,11 +1929,12 @@ void __fastcall TWebDAVFileSystem::Sink(const UnicodeString FileName, Action.FileName(FileName); - assert(File); + DebugAssert(File); TFileMasks::TParams MaskParams; MaskParams.Size = File->Size; - if (!CopyParam->AllowTransfer(FileName, osRemote, File->IsDirectory, MaskParams)) + UnicodeString BaseFileName = FTerminal->GetBaseFileName(FileName); + if (!CopyParam->AllowTransfer(BaseFileName, osRemote, File->IsDirectory, MaskParams)) { FTerminal->LogEvent(FORMAT(L"File \"%s\" excluded from transfer", (FileName))); THROW_SKIP_FILE_NULL; @@ -1905,14 +1950,15 @@ void __fastcall TWebDAVFileSystem::Sink(const UnicodeString FileName, OperationProgress->SetFile(FileName); - UnicodeString DestFileName = CopyParam->ChangeFileName(FileNameOnly, - osRemote, FLAGSET(Flags, tfFirstLevel)); + UnicodeString DestFileName = + FTerminal->ChangeFileName( + CopyParam, FileNameOnly, osRemote, FLAGSET(Flags, tfFirstLevel)); UnicodeString DestFullName = TargetDir + DestFileName; if (File->IsDirectory) { Action.Cancel(); - if (ALWAYS_TRUE(!File->IsSymLink)) + if (DebugAlwaysTrue(!File->IsSymLink)) { FILE_OPERATION_LOOP_BEGIN { @@ -2087,7 +2133,7 @@ void __fastcall TWebDAVFileSystem::SinkFile(const UnicodeString FileName, const TRemoteFile * File, void * Param) { TSinkFileParams * Params = static_cast(Param); - assert(Params->OperationProgress); + DebugAssert(Params->OperationProgress); try { SinkRobust(FileName, File, Params->TargetDir, Params->CopyParam, @@ -2121,21 +2167,9 @@ bool TWebDAVFileSystem::VerifyCertificate(const TWebDAVCertificateData & Data) (Data.Subject, Data.Fingerprint, Data.Failures))); int Failures = Data.Failures; - // We can accept only unknown certificate authority. - if (FLAGSET(Data.Failures, NE_SSL_UNTRUSTED)) + if (NeonWindowsValidateCertificate(Failures, Data.AsciiCert)) { - unsigned char * Certificate; - size_t CertificateLen = ne_unbase64(Data.AsciiCert.c_str(), &Certificate); - - if (CertificateLen > 0) - { - if (WindowsValidateCertificate(Certificate, CertificateLen)) - { - FTerminal->LogEvent(L"Certificate verified against Windows certificate store"); - Failures &= ~NE_SSL_UNTRUSTED; - } - ne_free(Certificate); - } + FTerminal->LogEvent(L"Certificate verified against Windows certificate store"); } UnicodeString Summary; @@ -2146,39 +2180,7 @@ bool TWebDAVFileSystem::VerifyCertificate(const TWebDAVCertificateData & Data) } else { - int FailuresToList = Failures; - - if (FLAGSET(FailuresToList, NE_SSL_NOTYETVALID)) - { - AddToList(Summary, LoadStr(CERT_ERR_CERT_NOT_YET_VALID), L" "); - FailuresToList &= ~NE_SSL_NOTYETVALID; - } - if (FLAGSET(FailuresToList, NE_SSL_EXPIRED)) - { - AddToList(Summary, LoadStr(CERT_ERR_CERT_HAS_EXPIRED), L" "); - FailuresToList &= ~NE_SSL_EXPIRED; - } - // NEON checks certificate host name on its own - if (FLAGSET(FailuresToList, NE_SSL_IDMISMATCH)) - { - AddToList(Summary, FMTLOAD(CERT_NAME_MISMATCH, (FHostName)), L" "); - FailuresToList &= ~NE_SSL_IDMISMATCH; - } - if (FLAGSET(FailuresToList, NE_SSL_UNTRUSTED)) - { - AddToList(Summary, LoadStr(CERT_ERR_CERT_UNTRUSTED), L" "); - FailuresToList &= ~NE_SSL_UNTRUSTED; - } - if (FLAGSET(FailuresToList, NE_SSL_BADCHAIN)) - { - AddToList(Summary, LoadStr(CERT_ERR_BAD_CHAIN), L" "); - FailuresToList &= ~NE_SSL_BADCHAIN; - } - // nb, NE_SSL_REVOKED is never used by OpenSSL implementation - if (FailuresToList != 0) - { - AddToList(Summary, LoadStr(CERT_ERR_UNKNOWN), L" "); - } + Summary = NeonCertificateFailuresErrorStr(Failures, FHostName); } UnicodeString ValidityTimeFormat = L"ddddd tt"; @@ -2233,13 +2235,19 @@ bool TWebDAVFileSystem::VerifyCertificate(const TWebDAVCertificateData & Data) break; default: - FAIL; + DebugFail(); case qaCancel: FTerminal->Configuration->Usage->Inc(L"HostNotVerified"); Result = false; break; } } + + if (Result) + { + FTerminal->Configuration->RememberLastFingerprint( + FTerminal->SessionData->SiteKey, TlsFingerprintType, FSessionInfo.CertificateFingerprint); + } } if (Result) @@ -2279,9 +2287,7 @@ int TWebDAVFileSystem::NeonServerSSLCallback(void * UserData, int Failures, cons strcpy(Fingerprint, ""); } Data.Fingerprint = StrFromNeon(Fingerprint); - char * AsciiCert = ne_ssl_cert_export(Certificate); - Data.AsciiCert = StrFromNeon(AsciiCert); - ne_free(AsciiCert); + Data.AsciiCert = NeonExportCertificate(Certificate); char * Subject = ne_ssl_readable_dname(ne_ssl_cert_subject(Certificate)); Data.Subject = StrFromNeon(Subject); @@ -2303,6 +2309,23 @@ int TWebDAVFileSystem::NeonServerSSLCallback(void * UserData, int Failures, cons return FileSystem->VerifyCertificate(Data) ? NE_OK : NE_ERROR; } //------------------------------------------------------------------------------ +void TWebDAVFileSystem::NeonProvideClientCert(void * UserData, ne_session * Sess, + const ne_ssl_dname * const * /*DNames*/, int /*DNCount*/) +{ + TWebDAVFileSystem * FileSystem = static_cast(UserData); + + FileSystem->FTerminal->LogEvent(LoadStr(NEED_CLIENT_CERTIFICATE)); + + X509 * Certificate; + EVP_PKEY * PrivateKey; + if (FileSystem->FTerminal->LoadTlsCertificate(Certificate, PrivateKey)) + { + ne_ssl_client_cert * NeonCertificate = ne_ssl_clicert_create(Certificate, PrivateKey); + ne_ssl_set_clicert(Sess, NeonCertificate); + ne_ssl_clicert_free(NeonCertificate); + } +} +//------------------------------------------------------------------------------ int TWebDAVFileSystem::NeonRequestAuth( void * UserData, const char * /*Realm*/, int /*Attempt*/, char * UserName, char * Password) { @@ -2396,29 +2419,6 @@ int TWebDAVFileSystem::NeonRequestAuth( return Result ? 0 : -1; } //------------------------------------------------------------------------------ -int TWebDAVFileSystem::NeonProxyAuth( - void * UserData, const char * /*Realm*/, int Attempt, char * UserName, char * Password) -{ - TWebDAVFileSystem * FileSystem = static_cast(UserData); - TSessionData * SessionData = FileSystem->FTerminal->SessionData; - - int Result; - // no point trying too many times as we always return the same credentials - // (maybe just one would be enough) - if (Attempt >= 2) - { - Result = 1; - } - else - { - strncpy(UserName, StrToNeon(SessionData->ProxyUsername), NE_ABUFSIZ); - strncpy(Password, StrToNeon(SessionData->ProxyPassword), NE_ABUFSIZ); - Result = 0; - } - - return Result; -} -//------------------------------------------------------------------------------ void TWebDAVFileSystem::NeonNotifier(void * UserData, ne_session_status Status, const ne_session_status_info * StatusInfo) { TWebDAVFileSystem * FileSystem = static_cast(UserData); @@ -2428,7 +2428,7 @@ void TWebDAVFileSystem::NeonNotifier(void * UserData, ne_session_status Status, // handling that would reset the upload progress back to low number (response is small). if (((FileSystem->FUploading && (Status == ne_status_sending)) || (FileSystem->FDownloading && (Status == ne_status_recving))) && - ALWAYS_TRUE(OperationProgress != NULL)) + DebugAlwaysTrue(OperationProgress != NULL)) { __int64 Progress = StatusInfo->sr.progress; __int64 Diff = Progress - OperationProgress->TransferedSize; @@ -2466,7 +2466,14 @@ void __fastcall TWebDAVFileSystem::NeonDebug(const UnicodeString & Message) FTerminal->LogEvent(Message); } //------------------------------------------------------------------------------ -void __fastcall TWebDAVFileSystem::InitSslSession(ssl_st * Ssl) +void TWebDAVFileSystem::InitSslSession(ssl_st * Ssl, ne_session * Session) +{ + TWebDAVFileSystem * FileSystem = + static_cast(ne_get_session_private(Session, SESSION_FS_KEY)); + FileSystem->InitSslSessionImpl(Ssl); +} +//------------------------------------------------------------------------------ +void __fastcall TWebDAVFileSystem::InitSslSessionImpl(ssl_st * Ssl) { // See also CAsyncSslSocketLayer::InitSSLConnection TSessionData * Data = FTerminal->SessionData; @@ -2485,4 +2492,163 @@ void __fastcall TWebDAVFileSystem::GetSupportedChecksumAlgs(TStrings * /*Algs*/) { // NOOP } +//--------------------------------------------------------------------------- +void __fastcall TWebDAVFileSystem::LockFile(const UnicodeString & /*FileName*/, const TRemoteFile * File) +{ + ClearNeonError(); + struct ne_lock * Lock = ne_lock_create(); + try + { + Lock->uri.path = ne_strdup(PathToNeon(FilePath(File))); + Lock->depth = NE_DEPTH_INFINITE; + Lock->timeout = NE_TIMEOUT_INFINITE; + Lock->owner = ne_strdup(StrToNeon(FTerminal->UserName)); + CheckStatus(ne_lock(FNeonSession, Lock)); + + { + TGuard Guard(FNeonLockStoreSection); + + RequireLockStore(); + + ne_lockstore_add(FNeonLockStore, Lock); + } + // ownership passed + Lock = NULL; + } + __finally + { + if (Lock != NULL) + { + ne_lock_destroy(Lock); + } + } +} +//--------------------------------------------------------------------------- +void __fastcall TWebDAVFileSystem::RequireLockStore() +{ + // Create store only when needed, + // to limit the use of cross-thread code in UpdateFromMain + if (FNeonLockStore == NULL) + { + FNeonLockStore = ne_lockstore_create(); + ne_lockstore_register(FNeonLockStore, FNeonSession); + } +} +//--------------------------------------------------------------------------- +void TWebDAVFileSystem::LockResult(void * UserData, const struct ne_lock * Lock, + const ne_uri * /*Uri*/, const ne_status * /*Status*/) +{ + // Is NULL on failure (Status is not NULL then) + if (Lock != NULL) + { + RawByteString & LockToken = *static_cast(UserData); + LockToken = Lock->token; + } +} +//--------------------------------------------------------------------------- +struct ne_lock * __fastcall TWebDAVFileSystem::FindLock(const RawByteString & Path) +{ + ne_uri Uri = {0}; + Uri.path = Path.c_str(); + return ne_lockstore_findbyuri(FNeonLockStore, &Uri); +} +//--------------------------------------------------------------------------- +void __fastcall TWebDAVFileSystem::DiscardLock(const RawByteString & Path) +{ + TGuard Guard(FNeonLockStoreSection); + if (FNeonLockStore != NULL) + { + struct ne_lock * Lock = FindLock(Path); + if (Lock != NULL) + { + ne_lockstore_remove(FNeonLockStore, Lock); + } + } +} +//--------------------------------------------------------------------------- +void __fastcall TWebDAVFileSystem::UnlockFile(const UnicodeString & FileName, const TRemoteFile * File) +{ + ClearNeonError(); + struct ne_lock * Lock = ne_lock_create(); + try + { + RawByteString Path = PathToNeon(FilePath(File)); + RawByteString LockToken; + + struct ne_lock * Lock = NULL; + + { + TGuard Guard(FNeonLockStoreSection); + if (FNeonLockStore != NULL) + { + Lock = FindLock(Path); + } + } + + // we are not aware of the file being locked, + // though it can be locked from another (previous and already closed) + // session, so query the server. + if (Lock == NULL) + { + CheckStatus(ne_lock_discover(FNeonSession, Path.c_str(), LockResult, &LockToken)); + } + + if ((Lock == NULL) && (LockToken.IsEmpty())) + { + throw Exception(FMTLOAD(NOT_LOCKED, (FileName))); + } + else + { + struct ne_lock * Unlock; + if (Lock == NULL) + { + DebugAssert(!LockToken.IsEmpty()); + Unlock = ne_lock_create(); + Unlock->uri.path = ne_strdup(Path.c_str()); + Unlock->token = ne_strdup(LockToken.c_str()); + } + else + { + Unlock = Lock; + } + CheckStatus(ne_unlock(FNeonSession, Unlock)); + + DiscardLock(Path); + } + } + __finally + { + ne_lock_destroy(Lock); + } +} +//--------------------------------------------------------------------------- +void __fastcall TWebDAVFileSystem::UpdateFromMain(TCustomFileSystem * AMainFileSystem) +{ + TWebDAVFileSystem * MainFileSystem = dynamic_cast(AMainFileSystem); + if (DebugAlwaysTrue(MainFileSystem != NULL)) + { + TGuard Guard(FNeonLockStoreSection); + TGuard MainGuard(MainFileSystem->FNeonLockStoreSection); + + if (FNeonLockStore != NULL) + { + struct ne_lock * Lock; + while ((Lock = ne_lockstore_first(FNeonLockStore)) != NULL) + { + ne_lockstore_remove(FNeonLockStore, Lock); + } + } + + if (DebugAlwaysTrue(MainFileSystem->FNeonLockStore != NULL)) + { + RequireLockStore(); + struct ne_lock * Lock = ne_lockstore_first(MainFileSystem->FNeonLockStore); + while (Lock != NULL) + { + ne_lockstore_add(FNeonLockStore, ne_lock_copy(Lock)); + Lock = ne_lockstore_next(MainFileSystem->FNeonLockStore); + } + } + } +} //------------------------------------------------------------------------------ diff --git a/source/core/WebDAVFileSystem.h b/source/core/WebDAVFileSystem.h index 831ce4c9..e81dc175 100644 --- a/source/core/WebDAVFileSystem.h +++ b/source/core/WebDAVFileSystem.h @@ -13,8 +13,10 @@ struct TWebDAVCertificateData; struct ne_ssl_certificate_s; struct ne_session_s; struct ne_prop_result_set_s; +struct ne_lock_store_s; struct TOverwriteFileParams; struct ssl_st; +struct ne_lock; //------------------------------------------------------------------------------ class TWebDAVFileSystem : public TCustomFileSystem { @@ -77,9 +79,11 @@ class TWebDAVFileSystem : public TCustomFileSystem virtual bool __fastcall GetStoredCredentialsTried(); virtual UnicodeString __fastcall GetUserName(); virtual void __fastcall GetSupportedChecksumAlgs(TStrings * Algs); + virtual void __fastcall LockFile(const UnicodeString & FileName, const TRemoteFile * File); + virtual void __fastcall UnlockFile(const UnicodeString & FileName, const TRemoteFile * File); + virtual void __fastcall UpdateFromMain(TCustomFileSystem * MainFileSystem); void __fastcall NeonDebug(const UnicodeString & Message); - void __fastcall InitSslSession(ssl_st * Ssl); protected: virtual UnicodeString __fastcall GetCurrentDirectory(); @@ -123,18 +127,23 @@ class TWebDAVFileSystem : public TCustomFileSystem static int NeonRequestAuth(void * UserData, const char * Realm, int Attempt, char * UserName, char * Password); void NeonOpen(UnicodeString & CorrectedUrl, const UnicodeString & Url); void NeonClientOpenSessionInternal(UnicodeString & CorrectedUrl, UnicodeString Url); - static int NeonProxyAuth( - void * UserData, const char * Realm, int Attempt, char * UserName, char * Password); static void NeonNotifier(void * UserData, ne_session_status Status, const ne_session_status_info * StatusInfo); static ssize_t NeonUploadBodyProvider(void * UserData, char * Buffer, size_t BufLen); static int NeonPostSend(ne_request * Req, void * UserData, const ne_status * Status); void ExchangeCapabilities(const char * Path, UnicodeString & CorrectedUrl); static int NeonServerSSLCallback(void * UserData, int Failures, const struct ne_ssl_certificate_s * Certificate); + static void NeonProvideClientCert(void * UserData, ne_session * Sess, const ne_ssl_dname * const * DNames, int DNCount); void __fastcall CloseNeonSession(); bool __fastcall CancelTransfer(); UnicodeString __fastcall GetNeonError(); static void NeonQuotaResult(void * UserData, const ne_uri * Uri, const ne_prop_result_set_s * Results); - static const char * __fastcall GetProp(const ne_prop_result_set_s * Results, const char * Name); + static const char * __fastcall GetProp(const ne_prop_result_set_s * Results, + const char * Name, const char * NameSpace = NULL); + static void LockResult(void * UserData, const struct ne_lock * Lock, + const ne_uri * Uri, const ne_status * Status); + void __fastcall RequireLockStore(); + static void InitSslSession(ssl_st * Ssl, ne_session * Session); + void __fastcall InitSslSessionImpl(ssl_st * Ssl); private: TFileSystemInfo FFileSystemInfo; @@ -149,11 +158,14 @@ class TWebDAVFileSystem : public TCustomFileSystem bool FUploading; bool FDownloading; ne_session_s * FNeonSession; + ne_lock_store_s * FNeonLockStore; + TCriticalSection * FNeonLockStoreSection; bool FInitialHandshake; bool FAuthenticationRequested; UnicodeString FResponse; RawByteString FPassword; UnicodeString FTlsVersionStr; + unsigned int FCapabilities; UnicodeString FHostName; int FPortNumber; enum TIgnoreAuthenticationFailure { iafNo, iafWaiting, iafPasswordFailed } FIgnoreAuthenticationFailure; @@ -174,6 +186,9 @@ class TWebDAVFileSystem : public TCustomFileSystem int __fastcall RenameFileInternal(const UnicodeString & FileName, const UnicodeString & NewName); bool __fastcall IsValidRedirect(int NeonStatus, UnicodeString & Path); UnicodeString __fastcall DirectoryPath(UnicodeString Path); + UnicodeString __fastcall FilePath(const TRemoteFile * File); + struct ne_lock * __fastcall FindLock(const RawByteString & Path); + void __fastcall DiscardLock(const RawByteString & Path); }; //------------------------------------------------------------------------------ void __fastcall NeonInitialize(); diff --git a/source/dragext/DragExt.cpp b/source/dragext/DragExt.cpp index 97fc790f..10dbbfb1 100644 --- a/source/dragext/DragExt.cpp +++ b/source/dragext/DragExt.cpp @@ -14,6 +14,7 @@ //--------------------------------------------------------------------------- #include #include +#include #include #pragma warn -inl #include @@ -27,10 +28,10 @@ #define STDAPI EXTERN_C __declspec(dllexport) HRESULT STDAPICALLTYPE #endif //--------------------------------------------------------------------------- -#define DEBUG(MSG) \ +#define Debug(MSG) \ if (GLogOn) \ { \ - Debug(MSG); \ + DoDebug(__FUNC__, MSG); \ } //--------------------------------------------------------------------------- #define DRAG_EXT_REG_KEY L"Software\\Martin Prikryl\\WinSCP 2\\DragExt" @@ -57,6 +58,11 @@ class CShellExtClassFactory : public IClassFactory unsigned long FReferenceCounter; }; //--------------------------------------------------------------------------- +#ifdef _WIN64 +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +#endif +//--------------------------------------------------------------------------- class CShellExt : public IShellExtInit, ICopyHook { public: @@ -82,6 +88,10 @@ class CShellExt : public IShellExtInit, ICopyHook unsigned long FLastTicks; }; //--------------------------------------------------------------------------- +#ifdef WIN64 +#pragma clang diagnostic pop +#endif +//--------------------------------------------------------------------------- unsigned int GRefThisDll = 0; bool GEnabled = false; wchar_t GLogFile[MAX_PATH] = L""; @@ -90,7 +100,7 @@ FILE* GLogHandle = NULL; HANDLE GLogMutex; HINSTANCE GInstance; //--------------------------------------------------------------------------- -void Debug(const wchar_t* Message) +static void DoDebug(const char* Func, const wchar_t* Message) { if (GLogOn) { @@ -125,9 +135,17 @@ void Debug(const wchar_t* Message) SYSTEMTIME Time; GetSystemTime(&Time); - fwprintf(GLogHandle, L"[%2d/%2d/%4d %2d:%02d:%02d.%03d][%04x] %s\n", + // cannot use TEXT(__FUNC__) as that does not work in clang, + // where __FUCT__ behaves like a static variable + const size_t FuncLen = strlen(Func) + 1; + wchar_t* WideFunc = new wchar_t[FuncLen]; + mbstowcs(WideFunc, Func, FuncLen); + + fwprintf(GLogHandle, L"[%2d/%2d/%4d %2d:%02d:%02d.%03d][%04x] [%s] %s\n", Time.wDay, Time.wMonth, Time.wYear, Time.wHour, Time.wMinute, - Time.wSecond, Time.wMilliseconds, GetCurrentThreadId(), Message); + Time.wSecond, Time.wMilliseconds, GetCurrentThreadId(), WideFunc, Message); + + delete[] WideFunc; } } catch(...) @@ -138,7 +156,7 @@ void Debug(const wchar_t* Message) } } //--------------------------------------------------------------------------- -void LogVersion(HINSTANCE HInstance) +static void LogVersion(HINSTANCE HInstance) { if (GLogOn) { @@ -161,7 +179,7 @@ void LogVersion(HINSTANCE HInstance) &VersionInfoSize) != 0) { wchar_t VersionStr[100]; - snwprintf(VersionStr, LENOF(VersionStr), L"LogVersion %d.%d.%d.%d", + snwprintf(VersionStr, LENOF(VersionStr), L"%d.%d.%d.%d", HIWORD(VersionInfo->dwFileVersionMS), LOWORD(VersionInfo->dwFileVersionMS), HIWORD(VersionInfo->dwFileVersionLS), @@ -170,17 +188,17 @@ void LogVersion(HINSTANCE HInstance) } else { - Debug(L"LogVersion no fixed version info"); + Debug(L"no fixed version info"); } } else { - Debug(L"LogVersion cannot read version info"); + Debug(L"cannot read version info"); } } else { - Debug(L"LogVersion no version info"); + Debug(L"no version info"); } } } @@ -231,25 +249,43 @@ DllMain(HINSTANCE HInstance, DWORD Reason, LPVOID /*Reserved*/) RegCloseKey(Key); } } - DEBUG(L"DllMain loaded settings"); - DEBUG(GEnabled ? L"DllMain enabled" : L"DllMain disabled"); - #ifdef UNICODE - DEBUG(L"Unicode"); - #else - DEBUG(L"Ansi"); - #endif - LogVersion(HInstance); + + if (GLogOn) + { + Debug(L"loaded settings"); + Debug(GEnabled ? L"enabled" : L"disabled"); + #ifdef UNICODE + Debug(L"Unicode"); + #else + Debug(L"Ansi"); + #endif + #ifdef _WIN64 + Debug(L"Win64"); + #else + Debug(L"Win32"); + #endif + LogVersion(HInstance); + + TDragExtCommStruct CommStruct; + const char * CommStructPtr = reinterpret_cast(&CommStruct); + wchar_t Buf[1024]; + swprintf(Buf, L"Comm struct layout - Size %d - Version @%d + %d - Dragging @%d + %d - DropDest @%d + %d", + sizeof(CommStruct), reinterpret_cast(&CommStruct.Version) - CommStructPtr, sizeof(CommStruct.Version), + reinterpret_cast(&CommStruct.Dragging) - CommStructPtr, sizeof(CommStruct.Dragging), + reinterpret_cast(&CommStruct.DropDest) - CommStructPtr, sizeof(CommStruct.DropDest)); + Debug(Buf); + } } else { - DEBUG(L"DllMain settings already loaded"); + Debug(L"settings already loaded"); } - DEBUG(L"DllMain attach leave"); + Debug(L"attach leave"); } else if (Reason == DLL_PROCESS_DETACH) { - DEBUG(L"DllMain detach enter"); + Debug(L"detach enter"); CloseHandle(GLogMutex); } @@ -259,19 +295,19 @@ DllMain(HINSTANCE HInstance, DWORD Reason, LPVOID /*Reserved*/) STDAPI DllCanUnloadNow(void) { bool CanUnload = (GRefThisDll == 0); - DEBUG(CanUnload ? L"DllCanUnloadNow can" : L"DllCanUnloadNow cannot"); + Debug(CanUnload ? L"can" : L"cannot"); return (CanUnload ? S_OK : S_FALSE); } //--------------------------------------------------------------------------- STDAPI DllGetClassObject(REFCLSID Rclsid, REFIID Riid, LPVOID* PpvOut) { - DEBUG(L"DllGetClassObject"); + Debug(L"enter"); *PpvOut = NULL; if (IsEqualIID(Rclsid, CLSID_ShellExtension)) { - DEBUG(L"DllGetClassObject is ShellExtension"); + Debug(L"is ShellExtension"); CShellExtClassFactory* Pcf = new CShellExtClassFactory; @@ -281,11 +317,11 @@ STDAPI DllGetClassObject(REFCLSID Rclsid, REFIID Riid, LPVOID* PpvOut) return CLASS_E_CLASSNOTAVAILABLE; } //--------------------------------------------------------------------------- -bool RegisterServer(bool AllUsers) +static bool RegisterServer(bool AllUsers) { - DEBUG(L"RegisterServer enter"); + Debug(L"enter"); - DEBUG(AllUsers ? L"RegisterServer all users" : L"RegisterServer current users"); + Debug(AllUsers ? L"all users" : L"current users"); bool Result = false; HKEY RootKey = AllUsers ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER; @@ -301,18 +337,18 @@ bool RegisterServer(bool AllUsers) REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &HKey, &Unused) == ERROR_SUCCESS)) { - DEBUG(L"RegisterServer CLSID created"); + Debug(L"CLSID created"); if (RegCreateKey(HKey, ClassID, &HKey) == ERROR_SUCCESS) { - DEBUG(L"RegisterServer class ID created"); + Debug(L"class ID created"); RegSetValueEx(HKey, NULL, 0, REG_SZ, reinterpret_cast(DRAG_EXT_NAME), sizeof(DRAG_EXT_NAME)); if (RegCreateKey(HKey, L"InProcServer32", &HKey) == ERROR_SUCCESS) { - DEBUG(L"RegisterServer InProcServer32 created"); + Debug(L"InProcServer32 created"); wchar_t Filename[MAX_PATH]; GetModuleFileName(GInstance, Filename, LENOF(Filename)); @@ -333,7 +369,7 @@ bool RegisterServer(bool AllUsers) 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &HKey, &Unused) == ERROR_SUCCESS)) { - DEBUG(L"RegisterServer WinSCPCopyHook created"); + Debug(L"WinSCPCopyHook created"); RegSetValueEx(HKey, NULL, 0, REG_SZ, reinterpret_cast(ClassID), (wcslen(ClassID) + 1) * sizeof(wchar_t)); @@ -343,7 +379,7 @@ bool RegisterServer(bool AllUsers) 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &HKey, &Unused) == ERROR_SUCCESS)) { - DEBUG(L"RegisterServer drag ext key created"); + Debug(L"drag ext key created"); unsigned long Value = 1; RegSetValueEx(HKey, L"Enable", 0, REG_DWORD, @@ -358,14 +394,14 @@ bool RegisterServer(bool AllUsers) } } - DEBUG(L"RegisterServer leave"); + Debug(L"leave"); return Result; } //--------------------------------------------------------------------------- STDAPI DllRegisterServer() { - DEBUG(L"DllRegisterServer enter"); + Debug(L"enter"); HRESULT Result; if (RegisterServer(true) || RegisterServer(false)) @@ -377,16 +413,16 @@ STDAPI DllRegisterServer() Result = SELFREG_E_CLASS; } - DEBUG(L"DllRegisterServer leave"); + Debug(L"leave"); return Result; } //--------------------------------------------------------------------------- -bool UnregisterServer(bool AllUsers) +static bool UnregisterServer(bool AllUsers) { - DEBUG(L"UnregisterServer enter"); + Debug(L"enter"); - DEBUG(AllUsers ? L"UnregisterServer all users" : L"UnregisterServer current users"); + Debug(AllUsers ? L"all users" : L"current users"); bool Result = false; wchar_t ClassID[CLSID_SIZE]; @@ -448,14 +484,14 @@ bool UnregisterServer(bool AllUsers) SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0); - DEBUG(L"UnregisterServer leave"); + Debug(L"leave"); return Result; } //--------------------------------------------------------------------------- STDAPI DllUnregisterServer() { - DEBUG(L"DllUnregisterServer enter"); + Debug(L"enter"); HRESULT Result = SELFREG_E_CLASS; if (UnregisterServer(true)) @@ -468,14 +504,14 @@ STDAPI DllUnregisterServer() Result = S_OK; } - DEBUG(L"DllUnregisterServer leave"); + Debug(L"leave"); return Result; } //--------------------------------------------------------------------------- CShellExtClassFactory::CShellExtClassFactory() { - DEBUG(L"CShellExtClassFactory"); + Debug(L"enter"); FReferenceCounter = 0; @@ -484,14 +520,14 @@ CShellExtClassFactory::CShellExtClassFactory() //--------------------------------------------------------------------------- CShellExtClassFactory::~CShellExtClassFactory() { - DEBUG(L"~CShellExtClassFactory"); + Debug(L"enter"); GRefThisDll--; } //--------------------------------------------------------------------------- STDMETHODIMP CShellExtClassFactory::QueryInterface(REFIID Riid, LPVOID FAR* Ppv) { - DEBUG(L"QueryInterface"); + Debug(L"enter"); *Ppv = NULL; @@ -499,7 +535,7 @@ STDMETHODIMP CShellExtClassFactory::QueryInterface(REFIID Riid, LPVOID FAR* Ppv) if (IsEqualIID(Riid, IID_IUnknown) || IsEqualIID(Riid, IID_IClassFactory)) { - DEBUG(L"QueryInterface is IUnknown or IClassFactory"); + Debug(L"is IUnknown or IClassFactory"); *Ppv = (LPCLASSFACTORY)this; @@ -513,13 +549,13 @@ STDMETHODIMP CShellExtClassFactory::QueryInterface(REFIID Riid, LPVOID FAR* Ppv) //--------------------------------------------------------------------------- STDMETHODIMP_(ULONG) CShellExtClassFactory::AddRef() { - DEBUG(L"AddRef"); + Debug(L"enter"); return ++FReferenceCounter; } //--------------------------------------------------------------------------- STDMETHODIMP_(ULONG) CShellExtClassFactory::Release() { - DEBUG(L"Release"); + Debug(L"enter"); if (--FReferenceCounter) { @@ -534,7 +570,7 @@ STDMETHODIMP_(ULONG) CShellExtClassFactory::Release() STDMETHODIMP CShellExtClassFactory::CreateInstance(LPUNKNOWN UnkOuter, REFIID Riid, LPVOID* PpvObj) { - DEBUG(L"CreateInstance"); + Debug(L"enter"); *PpvObj = NULL; @@ -556,7 +592,7 @@ STDMETHODIMP CShellExtClassFactory::CreateInstance(LPUNKNOWN UnkOuter, //--------------------------------------------------------------------------- STDMETHODIMP CShellExtClassFactory::LockServer(BOOL /*Lock*/) { - DEBUG(L"LockServer"); + Debug(L"enter"); return NOERROR; } @@ -564,7 +600,7 @@ STDMETHODIMP CShellExtClassFactory::LockServer(BOOL /*Lock*/) // CShellExt CShellExt::CShellExt() { - DEBUG(L"CShellExt enter"); + Debug(L"enter"); FReferenceCounter = 0L; FDataObj = NULL; @@ -574,12 +610,12 @@ CShellExt::CShellExt() GRefThisDll++; - DEBUG(L"CShellExt leave"); + Debug(L"leave"); } //--------------------------------------------------------------------------- CShellExt::~CShellExt() { - DEBUG(L"~CShellExt enter"); + Debug(L"enter"); if (FDataObj) { @@ -590,30 +626,30 @@ CShellExt::~CShellExt() GRefThisDll--; - DEBUG(L"~CShellExt leave"); + Debug(L"leave"); } //--------------------------------------------------------------------------- STDMETHODIMP CShellExt::QueryInterface(REFIID Riid, LPVOID FAR* Ppv) { - DEBUG(L"CShellExt::QueryInterface enter"); + Debug(L"enter"); HRESULT Result = E_NOINTERFACE; *Ppv = NULL; if (!GEnabled) { - DEBUG(L"CShellExt::QueryInterface shellext disabled"); + Debug(L"shellext disabled"); } else { if (IsEqualIID(Riid, IID_IShellExtInit) || IsEqualIID(Riid, IID_IUnknown)) { - DEBUG(L"CShellExt::QueryInterface is IShellExtInit or IUnknown"); + Debug(L"is IShellExtInit or IUnknown"); *Ppv = (LPSHELLEXTINIT)this; } else if (IsEqualIID(Riid, IID_IShellCopyHook)) { - DEBUG(L"CShellExt::QueryInterface is IShellCopyHook"); + Debug(L"is IShellCopyHook"); *Ppv = (LPCOPYHOOK)this; } @@ -625,21 +661,21 @@ STDMETHODIMP CShellExt::QueryInterface(REFIID Riid, LPVOID FAR* Ppv) } } - DEBUG(L"CShellExt::QueryInterface leave"); + Debug(L"leave"); return Result; } //--------------------------------------------------------------------------- STDMETHODIMP_(ULONG) CShellExt::AddRef() { - DEBUG(L"CShellExt::AddRef"); + Debug(L"enter"); return ++FReferenceCounter; } //--------------------------------------------------------------------------- STDMETHODIMP_(ULONG) CShellExt::Release() { - DEBUG(L"CShellExt::Release"); + Debug(L"enter"); if (--FReferenceCounter) { return FReferenceCounter; @@ -653,7 +689,7 @@ STDMETHODIMP_(ULONG) CShellExt::Release() STDMETHODIMP CShellExt::Initialize(LPCITEMIDLIST /*IDFolder*/, LPDATAOBJECT DataObj, HKEY /*RegKey*/) { - DEBUG(L"CShellExt::Initialize enter"); + Debug(L"enter"); if (FDataObj != NULL) { @@ -669,7 +705,7 @@ STDMETHODIMP CShellExt::Initialize(LPCITEMIDLIST /*IDFolder*/, DataObj->AddRef(); } - DEBUG(L"CShellExt::Initialize leave"); + Debug(L"leave"); return NOERROR; } @@ -677,23 +713,23 @@ STDMETHODIMP CShellExt::Initialize(LPCITEMIDLIST /*IDFolder*/, STDMETHODIMP_(UINT) CShellExt::CopyCallback(HWND /*Hwnd*/, UINT Func, UINT /*Flags*/, LPCWSTR SrcFile, DWORD /*SrcAttribs*/, LPCWSTR DestFile, DWORD /*DestAttribs*/) { - DEBUG(L"CShellExt::CopyCallback enter"); + Debug(L"enter"); UINT Result = IDYES; if (GEnabled && ((Func == FO_COPY) || (Func == FO_MOVE))) { - DEBUG(L"CShellExt::CopyCallback copy or move"); + Debug(L"copy or move"); unsigned long Ticks = GetTickCount(); if (((Ticks - FLastTicks) >= 100) || (FLastTicks > Ticks)) { - DEBUG(L"CShellExt::CopyCallback interval elapsed"); + Debug(L"interval elapsed"); - DEBUG(L"CShellExt::CopyCallback source / dest:"); - DEBUG(SrcFile); - DEBUG(DestFile); + Debug(L"source / dest:"); + Debug(SrcFile); + Debug(DestFile); FLastTicks = Ticks; const wchar_t* BackPtr = wcsrchr(SrcFile, L'\\'); @@ -702,14 +738,14 @@ STDMETHODIMP_(UINT) CShellExt::CopyCallback(HWND /*Hwnd*/, UINT Func, UINT /*Fla (wcsncmp(BackPtr + 1, DRAG_EXT_DUMMY_DIR_PREFIX, DRAG_EXT_DUMMY_DIR_PREFIX_LEN) == 0)) { - DEBUG(L"CShellExt::CopyCallback filename has prefix"); + Debug(L"filename has prefix"); HANDLE MapFile = OpenFileMapping(FILE_MAP_ALL_ACCESS, false, DRAG_EXT_MAPPING); if (MapFile != NULL) { - DEBUG(L"CShellExt::CopyCallback mapfile found"); + Debug(L"mapfile found"); TDragExtCommStruct* CommStruct; CommStruct = static_cast(MapViewOfFile(MapFile, @@ -717,23 +753,23 @@ STDMETHODIMP_(UINT) CShellExt::CopyCallback(HWND /*Hwnd*/, UINT Func, UINT /*Fla if (CommStruct != NULL) { - DEBUG(L"CShellExt::CopyCallback mapview created"); + Debug(L"mapview created"); unsigned long WaitResult = WaitForSingleObject(FMutex, 1000); if (WaitResult != WAIT_TIMEOUT) { - DEBUG(L"CShellExt::CopyCallback mutex got"); + Debug(L"mutex got"); if (CommStruct->Version >= TDragExtCommStruct::MinVersion) { - DEBUG(L"CShellExt::CopyCallback supported structure version"); + Debug(L"supported structure version"); if (CommStruct->Dragging) { - DEBUG(L"CShellExt::CopyCallback dragging"); - DEBUG(CommStruct->DropDest); + Debug(L"dragging"); + Debug(CommStruct->DropDest); bool IsDropDest; if (_wcsicmp(CommStruct->DropDest, SrcFile) == 0) { IsDropDest = true; - DEBUG(L"CShellExt::CopyCallback dragged file match as is"); + Debug(L"dragged file match as is"); } else { @@ -745,28 +781,28 @@ STDMETHODIMP_(UINT) CShellExt::CopyCallback(HWND /*Hwnd*/, UINT Func, UINT /*Fla SrcFileShort, LENOF(SrcFileShort)); if ((DropDestSize == 0) || (SrcFileSize == 0)) { - DEBUG(L"CShellExt::CopyCallback cannot convert paths to short form"); + Debug(L"cannot convert paths to short form"); IsDropDest = false; } else if ((DropDestSize >= LENOF(DropDestShort)) || (SrcFileSize >= LENOF(SrcFileShort))) { - DEBUG(L"CShellExt::CopyCallback short paths too long"); + Debug(L"short paths too long"); IsDropDest = false; } else { - DEBUG(DropDestShort); - DEBUG(SrcFileShort); + Debug(DropDestShort); + Debug(SrcFileShort); if (_wcsicmp(DropDestShort, SrcFileShort) == 0) { - DEBUG(L"CShellExt::CopyCallback dragged file match after converted to short form"); + Debug(L"dragged file match after converted to short form"); IsDropDest = true; } else { - DEBUG(L"CShellExt::CopyCallback dragged file does NOT match"); + Debug(L"dragged file does NOT match"); IsDropDest = false; } } @@ -778,68 +814,67 @@ STDMETHODIMP_(UINT) CShellExt::CopyCallback(HWND /*Hwnd*/, UINT Func, UINT /*Fla wcsncpy(CommStruct->DropDest, DestFile, LENOF(CommStruct->DropDest)); CommStruct->DropDest[LENOF(CommStruct->DropDest)-1] = L'\0'; Result = IDNO; - DEBUG(L"CShellExt::CopyCallback dragging refused"); + Debug(L"dragging refused"); } } else { - DEBUG(L"CShellExt::CopyCallback NOT dragging"); + Debug(L"NOT dragging"); } } else { - DEBUG(L"CShellExt::CopyCallback unsupported structure version"); + Debug(L"unsupported structure version"); } ReleaseMutex(FMutex); - DEBUG(L"CShellExt::CopyCallback mutex released"); + Debug(L"mutex released"); } else { - DEBUG(L"CShellExt::CopyCallback mutex timeout"); + Debug(L"mutex timeout"); } UnmapViewOfFile(CommStruct); } else { - DEBUG(L"CShellExt::CopyCallback mapview NOT created"); + Debug(L"mapview NOT created"); } CloseHandle(MapFile); } else { - DEBUG(L"CShellExt::CopyCallback mapfile NOT found"); + Debug(L"mapfile NOT found"); } } else { - DEBUG(L"CShellExt::CopyCallback filename has NOT prefix"); + Debug(L"filename has NOT prefix"); } } else { - DEBUG(L"CShellExt::CopyCallback interval NOT elapsed"); + Debug(L"interval NOT elapsed"); } } else { - if (!GEnabled) + if (GLogOn) { - DEBUG(L"CShellExt::CopyCallback Disabled"); - } - else - { - wchar_t Buf[1024]; - wcscpy(Buf, L"CShellExt::CopyCallback NOT copy nor move - X"); - // This is to avoid using swprintf, what's in a lib, - // we do not link yet, in 64-bit build (maybe this changes, once - // we switch to BCB build) - Buf[wcslen(Buf) - 1] = L'0' + Func; - DEBUG(Buf); + if (!GEnabled) + { + Debug(L"disabled"); + } + else + { + wchar_t Buf[1024]; + swprintf(Buf, L"NOT copy nor move - %d", Func); + Debug(Buf); + } } } - DEBUG(L"CShellExt::CopyCallback leave"); + Debug(L"leave"); return Result; } diff --git a/source/dragext/DragExt.h b/source/dragext/DragExt.h index 9819055c..32377f23 100644 --- a/source/dragext/DragExt.h +++ b/source/dragext/DragExt.h @@ -10,7 +10,12 @@ DEFINE_GUID(CLSID_ShellExtension, 0xe15e1d68, 0x0d1c, 0x49f7, 0xbe, 0xb8, 0x81, 0x2b, 0x1e, 0x00, 0xfa, 0x60 ); //--------------------------------------------------------------------------- +#ifdef _WIN64 +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpadded" +#endif #pragma pack(push, 4) +//--------------------------------------------------------------------------- struct TDragExtCommStruct { enum TVersion @@ -26,6 +31,10 @@ struct TDragExtCommStruct bool Dragging; wchar_t DropDest[MAX_PATH]; }; +//--------------------------------------------------------------------------- #pragma pack(pop) +#ifdef _WIN64 +#pragma clang diagnostic pop +#endif //--------------------------------------------------------------------------- #endif // DragExtH diff --git a/source/dragext/DragExt64.def b/source/dragext/DragExt64.def deleted file mode 100644 index 88fa8fcb..00000000 --- a/source/dragext/DragExt64.def +++ /dev/null @@ -1,7 +0,0 @@ -LIBRARY "dragext64" - -EXPORTS - DllCanUnloadNow PRIVATE - DllGetClassObject PRIVATE - DllRegisterServer PRIVATE - DllUnregisterServer PRIVATE diff --git a/source/filezilla/ApiLog.cpp b/source/filezilla/ApiLog.cpp index 514dbcea..95f9237d 100644 --- a/source/filezilla/ApiLog.cpp +++ b/source/filezilla/ApiLog.cpp @@ -1,247 +1,108 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// ApiLog.cpp: Implementierung der Klasse CApiLog. -// -////////////////////////////////////////////////////////////////////// - +//--------------------------------------------------------------------------- #include "stdafx.h" #include "ApiLog.h" -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#define new DEBUG_NEW -#endif - ////////////////////////////////////////////////////////////////////// // Konstruktion/Destruktion ////////////////////////////////////////////////////////////////////// CApiLog::CApiLog() { - m_hTargetWnd=0; - m_pApiLogParent=0; - m_nDebugLevel=0; - m_nLogMessage=0; + FIntern = NULL; } CApiLog::~CApiLog() { - } -BOOL CApiLog::InitLog(CApiLog *pParent) +void CApiLog::InitIntern(TFileZillaIntern * Intern) { - if (!pParent) - return FALSE; - while (pParent->m_pApiLogParent) - pParent=pParent->m_pApiLogParent; - m_hTargetWnd=0; - m_pApiLogParent=pParent; - return TRUE; + FIntern = Intern; } -BOOL CApiLog::InitLog(HWND hTargetWnd, int nLogMessage) +TFileZillaIntern * CApiLog::GetIntern() { - if (!hTargetWnd) - return FALSE; - m_hTargetWnd=hTargetWnd; - m_nLogMessage=nLogMessage; - m_pApiLogParent=0; - return TRUE; + return FIntern; } bool CApiLog::LoggingMessageType(int nMessageType) const { return (nMessageType < FZ_LOG_APIERROR) || - ((nMessageType-FZ_LOG_APIERROR) < m_pApiLogParent->m_nDebugLevel); + ((nMessageType-FZ_LOG_APIERROR) < FIntern->GetDebugLevel()); } void CApiLog::LogMessage(int nMessageType, LPCTSTR pMsgFormat, ...) const { - ASSERT(nMessageType>=FZ_LOG_STATUS && nMessageType<=FZ_LOG_DEBUG); - ASSERT(m_hTargetWnd || m_pApiLogParent); - if (!LoggingMessageType(nMessageType)) - return; - - va_list ap; - - va_start(ap, pMsgFormat); - CString text; - text.FormatV(pMsgFormat, ap); - va_end(ap); - -#ifdef MPEXT - if (nMessageType>=FZ_LOG_DEBUG) - return; -#endif - SendLogMessage(nMessageType, text); + DebugAssert(nMessageType>=FZ_LOG_STATUS && nMessageType<=FZ_LOG_DEBUG); + if (!LoggingMessageType(nMessageType)) + return; + + va_list ap; + + va_start(ap, pMsgFormat); + CString text; + text.FormatV(pMsgFormat, ap); + va_end(ap); + + if (nMessageType>=FZ_LOG_DEBUG) + return; + SendLogMessage(nMessageType, text); } void CApiLog::LogMessageRaw(int nMessageType, LPCTSTR pMsg) const { - ASSERT(nMessageType>=FZ_LOG_STATUS && nMessageType<=FZ_LOG_DEBUG); - ASSERT(m_hTargetWnd || m_pApiLogParent); - if (!LoggingMessageType(nMessageType)) - return; - -#ifdef MPEXT - if (nMessageType>=FZ_LOG_DEBUG) - return; -#endif - SendLogMessage(nMessageType, pMsg); + DebugAssert(nMessageType>=FZ_LOG_STATUS && nMessageType<=FZ_LOG_DEBUG); + if (!LoggingMessageType(nMessageType)) + return; + + if (nMessageType>=FZ_LOG_DEBUG) + return; + SendLogMessage(nMessageType, pMsg); } void CApiLog::LogMessage(int nMessageType, UINT nFormatID, ...) const { - ASSERT(nMessageType>=FZ_LOG_STATUS && nMessageType<=FZ_LOG_DEBUG); - ASSERT(m_hTargetWnd || m_pApiLogParent); - if (!LoggingMessageType(nMessageType)) - return; - - CString str; - str.LoadString(nFormatID); - - va_list ap; - - va_start(ap, nFormatID); - CString text; - text.FormatV(str, ap); - va_end(ap); - -#ifdef MPEXT - if (nMessageType>=FZ_LOG_DEBUG) - return; -#endif - SendLogMessage(nMessageType, text); -} + DebugAssert(nMessageType>=FZ_LOG_STATUS && nMessageType<=FZ_LOG_DEBUG); + if (!LoggingMessageType(nMessageType)) + return; -void CApiLog::LogMessage(CString SourceFile, int nSourceLine, void *pInstance, int nMessageType, LPCTSTR pMsgFormat, ...) const -{ - ASSERT(nMessageType>=FZ_LOG_LIST && nMessageType<=FZ_LOG_DEBUG); - ASSERT(m_hTargetWnd || m_pApiLogParent); - ASSERT(nSourceLine>0); - - - int pos=SourceFile.ReverseFind(_MPT('\\')); - if (pos!=-1) - SourceFile=SourceFile.Mid(pos+1); - - va_list ap; - - va_start(ap, pMsgFormat); - CString text; - text.FormatV(pMsgFormat, ap); - va_end(ap); - -#ifdef MPEXT - if (nMessageType>=FZ_LOG_DEBUG) - return; -#endif - - CString msg; - msg.Format(_T("%s(%d): %s caller=0x%08x"), SourceFile, nSourceLine, text, (int)this); - - SendLogMessage(nMessageType, msg); -} + CString str; + str.LoadString(nFormatID); -#ifdef MPEXT -BOOL CApiLog::PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) const -{ - return m_pApiLogParent->PostMessage(hWnd, Msg, wParam, lParam); + va_list ap; + + va_start(ap, nFormatID); + CString text; + text.FormatV(str, ap); + va_end(ap); + + if (nMessageType>=FZ_LOG_DEBUG) + return; + SendLogMessage(nMessageType, text); } -#endif -void CApiLog::LogMessageRaw(CString SourceFile, int nSourceLine, void *pInstance, int nMessageType, LPCTSTR pMsg) const +void CApiLog::SendLogMessage(int nMessageType, LPCTSTR pMsg) const { - ASSERT(nMessageType>=FZ_LOG_LIST && FZ_LOG_DEBUG<=FZ_LOG_DEBUG); - ASSERT(m_hTargetWnd || m_pApiLogParent); - ASSERT(nSourceLine>0); - - int pos=SourceFile.ReverseFind(_MPT('\\')); - if (pos!=-1) - SourceFile=SourceFile.Mid(pos+1); - -#ifdef MPEXT - if (nMessageType>=FZ_LOG_DEBUG) - return; -#endif - - CString msg; - msg.Format(_T("%s(%d): %s caller=0x%08x"), SourceFile, nSourceLine, pMsg, (int)this); - - SendLogMessage(nMessageType, msg); + if (!LoggingMessageType(nMessageType)) + return; + //Displays a message in the message log + t_ffam_statusmessage *pStatus = new t_ffam_statusmessage; + pStatus->post = TRUE; + pStatus->status = pMsg; + pStatus->type = nMessageType; + if (!FIntern->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_STATUS, 0), (LPARAM)pStatus)) + delete pStatus; } -void CApiLog::SendLogMessage(int nMessageType, LPCTSTR pMsg) const +CString CApiLog::GetOption(int OptionID) const { -#ifdef MPEXT - ASSERT(m_pApiLogParent); - ASSERT(m_pApiLogParent->m_hTargetWnd == 0); - ASSERT(m_pApiLogParent->m_nLogMessage == 0); - if (!LoggingMessageType(nMessageType)) - return; - //Displays a message in the message log - t_ffam_statusmessage *pStatus = new t_ffam_statusmessage; - pStatus->post = TRUE; - pStatus->status = pMsg; - pStatus->type = nMessageType; - if (!this->PostMessage(m_pApiLogParent->m_hTargetWnd, m_pApiLogParent->m_nLogMessage, FZ_MSG_MAKEMSG(FZ_MSG_STATUS, 0), (LPARAM)pStatus)) - delete pStatus; -#else - if (m_hTargetWnd) - { - ASSERT(m_nLogMessage); - if (nMessageType>=FZ_LOG_APIERROR && (nMessageType-FZ_LOG_APIERROR)>=m_nDebugLevel) - return; - } - else - { - ASSERT(m_pApiLogParent); - ASSERT(m_pApiLogParent->m_hTargetWnd); - ASSERT(m_pApiLogParent->m_nLogMessage); - if (!LoggingMessageType(nMessageType)) - return; - } - //Displays a message in the message log - t_ffam_statusmessage *pStatus = new t_ffam_statusmessage; - pStatus->post = TRUE; - pStatus->status = pMsg; - pStatus->type = nMessageType; - if (m_hTargetWnd) - { - if (!PostMessage(m_hTargetWnd, m_nLogMessage, FZ_MSG_MAKEMSG(FZ_MSG_STATUS, 0), (LPARAM)pStatus)) - delete pStatus; - } - else - if (!PostMessage(m_pApiLogParent->m_hTargetWnd, m_pApiLogParent->m_nLogMessage, FZ_MSG_MAKEMSG(FZ_MSG_STATUS, 0), (LPARAM)pStatus)) - delete pStatus; -#endif + DebugAssert(FIntern != NULL); + return FIntern->GetOption(OptionID); } -BOOL CApiLog::SetDebugLevel(int nDebugLevel) +int CApiLog::GetOptionVal(int OptionID) const { - if (m_pApiLogParent) - return FALSE; - if (nDebugLevel<0 || nDebugLevel>5) - return FALSE; - m_nDebugLevel=nDebugLevel; - return TRUE; + DebugAssert(FIntern != NULL); + return FIntern->GetOptionVal(OptionID); } diff --git a/source/filezilla/ApiLog.h b/source/filezilla/ApiLog.h index 8b86f76e..4ed95f99 100644 --- a/source/filezilla/ApiLog.h +++ b/source/filezilla/ApiLog.h @@ -1,59 +1,32 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// ApiLog.h: Schnittstelle für die Klasse CApiLog. -// -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_APILOG_H__D9CD5BA6_3B94_4BF4_BF59_BD20CEB61811__INCLUDED_) -#define AFX_APILOG_H__D9CD5BA6_3B94_4BF4_BF59_BD20CEB61811__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -class CApiLog +//--------------------------------------------------------------------------- +#ifndef ApiLogH +#define ApiLogH +//--------------------------------------------------------------------------- +#include "FileZillaIntern.h" +//--------------------------------------------------------------------------- +class CApiLog { public: - CApiLog(); - virtual ~CApiLog(); + CApiLog(); + virtual ~CApiLog(); + + void InitIntern(TFileZillaIntern * Intern); + TFileZillaIntern * GetIntern(); - BOOL InitLog(HWND hTargerWnd, int nLogMessage); - BOOL InitLog(CApiLog *pParent); + bool LoggingMessageType(int nMessageType) const; - bool LoggingMessageType(int nMessageType) const; + void LogMessage(int nMessageType, LPCTSTR pMsgFormat, ...) const; + void LogMessageRaw(int nMessageType, LPCTSTR pMsg) const; + void LogMessage(int nMessageType, UINT nFormatID, ...) const; - void LogMessage(int nMessageType, LPCTSTR pMsgFormat, ...) const; - void LogMessageRaw(int nMessageType, LPCTSTR pMsg) const; - void LogMessage(int nMessageType, UINT nFormatID, ...) const; - void LogMessage(CString SourceFile, int nSourceLine, void *pInstance, int nMessageType, LPCTSTR pMsgFormat, ...) const; - void LogMessageRaw(CString SourceFile, int nSourceLine, void *pInstance, int nMessageType, LPCTSTR pMsg) const; + CString GetOption(int OptionID) const; + int GetOptionVal(int OptionID) const; - BOOL SetDebugLevel(int nLogLevel); protected: -#ifdef MPEXT - virtual BOOL PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) const; -#endif - void SendLogMessage(int nMessageType, LPCTSTR pMsg) const; - int m_nDebugLevel; - CApiLog *m_pApiLogParent; //Pointer to topmost parent - int m_nLogMessage; - HWND m_hTargetWnd; -}; + void SendLogMessage(int nMessageType, LPCTSTR pMsg) const; -#endif // !defined(AFX_APILOG_H__D9CD5BA6_3B94_4BF4_BF59_BD20CEB61811__INCLUDED_) + TFileZillaIntern * FIntern; +}; +//--------------------------------------------------------------------------- +//!CLEANEND +#endif // ApiLogH diff --git a/source/filezilla/AsyncProxySocketLayer.cpp b/source/filezilla/AsyncProxySocketLayer.cpp index 8829f879..262e5743 100644 --- a/source/filezilla/AsyncProxySocketLayer.cpp +++ b/source/filezilla/AsyncProxySocketLayer.cpp @@ -1,129 +1,15 @@ -/*CAsyncProxySocketLayer by Tim Kosse (Tim.Kosse@gmx.de) - Version 1.6 (2003-03-26) --------------------------------------------------------- - -Introduction: -------------- - -This class is layer class for CAsyncSocketEx. With this class you -can connect through SOCKS4/5 and HTTP 1.1 proxies. This class works -as semi-transparent layer between CAsyncSocketEx and the actual socket. -This class is used in FileZilla, a powerful open-source FTP client. -It can be found under http://sourceforge.net/projects/filezilla -For more information about SOCKS4/5 goto -http://www.socks.nec.com/socksprot.html -For more information about HTTP 1.1 goto http://www.rfc-editor.org -and search for RFC2616 - -How to use? ------------ - -You don't have to change much in you already existing code to use -CAsyncProxySocketLayer. -To use it, create an instance of CAsyncProxySocketLayer, call SetProxy -and attach it to a CAsyncSocketEx instance. -You have to process OnLayerCallback in you CAsyncSocketEx instance as it will -receive all layer nofications. -The following notifications are sent: - -//Error codes -PROXYERROR_NOERROR 0 -PROXYERROR_NOCONN 1 //Can't connect to proxy server, use GetLastError for more information -PROXYERROR_REQUESTFAILED 2 //Request failed, can't send data -PROXYERROR_AUTHREQUIRED 3 //Authentication required -PROXYERROR_AUTHTYPEUNKNOWN 4 //Authtype unknown or not supported -PROXYERROR_AUTHFAILED 5 //Authentication failed -PROXYERROR_AUTHNOLOGON 6 -PROXYERROR_CANTRESOLVEHOST 7 - -//Status messages -PROXYSTATUS_LISTENSOCKETCREATED 8 //Called when a listen socket was created successfully. Unlike the normal listen function, - //a socksified socket has to connect to the proxy to negotiate the details with the server - //on which the listen socket will be created - //The two parameters will contain the ip and port of the listen socket on the server. - -If you want to use CAsyncProxySocketLayer to create a listen socket, you -have to use this overloaded function: -BOOL PrepareListen(unsigned long serverIp); -serverIP is the IP of the server you are already connected -through the SOCKS proxy. You can't use listen sockets over a -SOCKS proxy without a primary connection. Listen sockets are only -supported by SOCKS proxies, this won't work with HTTP proxies. -When the listen socket is created successfully, the PROXYSTATUS_LISTENSOCKETCREATED -notification is sent. The parameters will tell you the ip and the port of the listen socket. -After it you have to handle the OnAccept message and accept the -connection. -Be carful when calling Accept: rConnected socket will NOT be filled! Instead use the instance which created the -listen socket, it will handle the data connection. -If you want to accept more than one connection, you have to create a listing socket for each of them! - -Description of important functions and their parameters: --------------------------------------------------------- - -void SetProxy(int nProxyType); -void SetProxy(int nProxyType, const char * pProxyHost, int nProxyPort); -void SetProxy(int nProxyType, const char * pProxyHost, int nProxyPort, const char *pProxyUser, const char * pProxyPass); - -Call one of this functions to set the proxy type. -Parametes: -- nProxyType specifies the Proxy Type. -- ProxyHost and nProxyPort specify the address of the proxy -- ProxyUser and ProxyPass are only available for SOCKS5 proxies. - -supported proxy types: -PROXYTYPE_NOPROXY -PROXYTYPE_SOCKS4 -PROXYTYPE_SOCKS4A -PROXYTYPE_SOCKS5 -PROXYTYPE_HTTP11 - -There are also some other functions: - -GetProxyPeerName -Like GetPeerName of CAsyncSocket, but returns the address of the -server connected through the proxy. If using proxies, GetPeerName -only returns the address of the proxy. - -int GetProxyType(); -Returns the used proxy - -const int GetLastProxyError() const; -Returns the last proxy error - -License -------- - -Feel free to use this class, as long as you don't claim that you wrote it -and this copyright notice stays intact in the source files. -If you use this class in commercial applications, please send a short message -to tim.kosse@gmx.de - -Version history ---------------- - -- 1.6 got rid of MFC -- 1.5 released CAsyncSocketExLayer version -- 1.4 added UNICODE support -- 1.3 added basic HTTP1.1 authentication - fixed memory leak in SOCKS5 code - OnSocksOperationFailed will be called after Socket has been closed - fixed some minor bugs -- 1.2 renamed into CAsyncProxySocketLayer - added HTTP1.1 proxy support -- 1.1 fixes all known bugs, mostly with SOCKS5 authentication -- 1.0 initial release -*/ - +// CAsyncProxySocketLayer by Tim Kosse (Tim.Kosse@gmx.de) +// Version 1.6 (2003-03-26) +//--------------------------------------------------------------------------- +// Feel free to use this class, as long as you don't claim that you wrote it +// and this copyright notice stays intact in the source files. +// If you use this class in commercial applications, please send a short message +// to tim.kosse@gmx.de +//--------------------------------------------------------------------------- #include "stdafx.h" #include "AsyncProxySocketLayer.h" #include "atlconv.h" //Unicode<->Ascii conversion macros declared here -#include "CBase64coding.hpp" - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#define new DEBUG_NEW -#endif +#include ////////////////////////////////////////////////////////////////////// // Konstruktion/Destruktion @@ -131,29 +17,29 @@ static char THIS_FILE[]=__FILE__; CAsyncProxySocketLayer::CAsyncProxySocketLayer() { - m_nProxyOpID=0; - m_nProxyOpState=0; - m_pRecvBuffer=0; - m_nRecvBufferLen=0; - m_nRecvBufferPos=0; - m_ProxyData.nProxyType=0; - m_nProxyPeerIp=0; - m_nProxyPeerPort=0; - m_pProxyPeerHost = NULL; - m_pStrBuffer = NULL; - m_ProxyData.pProxyHost = NULL; - m_ProxyData.pProxyUser = NULL; - m_ProxyData.pProxyPass = NULL; - m_pProxyPeerHost = NULL; + m_nProxyOpID=0; + m_nProxyOpState=0; + m_pRecvBuffer=0; + m_nRecvBufferLen=0; + m_nRecvBufferPos=0; + m_ProxyData.nProxyType=0; + m_nProxyPeerIp=0; + m_nProxyPeerPort=0; + m_pProxyPeerHost = NULL; + m_pStrBuffer = NULL; + m_ProxyData.pProxyHost = NULL; + m_ProxyData.pProxyUser = NULL; + m_ProxyData.pProxyPass = NULL; + m_pProxyPeerHost = NULL; } CAsyncProxySocketLayer::~CAsyncProxySocketLayer() { - delete [] m_ProxyData.pProxyHost; - delete [] m_ProxyData.pProxyUser; - delete [] m_ProxyData.pProxyPass; - delete [] m_pProxyPeerHost; - ClearBuffer(); + delete [] m_ProxyData.pProxyHost; + delete [] m_ProxyData.pProxyUser; + delete [] m_ProxyData.pProxyPass; + delete [] m_pProxyPeerHost; + ClearBuffer(); } ///////////////////////////////////////////////////////////////////////////// @@ -161,1098 +47,1075 @@ CAsyncProxySocketLayer::~CAsyncProxySocketLayer() void CAsyncProxySocketLayer::SetProxy(int nProxyType) { - //Validate the parameters - ASSERT(nProxyType==PROXYTYPE_NOPROXY); - m_ProxyData.nProxyType=nProxyType; + //Validate the parameters + DebugAssert(nProxyType==PROXYTYPE_NOPROXY); + m_ProxyData.nProxyType=nProxyType; } void CAsyncProxySocketLayer::SetProxy(int nProxyType, const char * pProxyHost, int ProxyPort) { - USES_CONVERSION; - //Validate the parameters - ASSERT(nProxyType==PROXYTYPE_SOCKS4 || - nProxyType==PROXYTYPE_SOCKS4A || - nProxyType==PROXYTYPE_SOCKS5 || - nProxyType==PROXYTYPE_HTTP11); - ASSERT(!m_nProxyOpID); - ASSERT(pProxyHost && *pProxyHost); - ASSERT(ProxyPort>0); - ASSERT(ProxyPort<=65535); - - delete m_ProxyData.pProxyHost; - delete m_ProxyData.pProxyUser; - delete m_ProxyData.pProxyPass; - m_ProxyData.pProxyUser = NULL; - m_ProxyData.pProxyPass = NULL; - - m_ProxyData.nProxyType = nProxyType; - m_ProxyData.pProxyHost = new char[strlen(pProxyHost)+1]; - strcpy(m_ProxyData.pProxyHost, pProxyHost); - m_ProxyData.nProxyPort = ProxyPort; - m_ProxyData.bUseLogon = FALSE; + USES_CONVERSION; + //Validate the parameters + DebugAssert(nProxyType==PROXYTYPE_SOCKS4 || + nProxyType==PROXYTYPE_SOCKS4A || + nProxyType==PROXYTYPE_SOCKS5 || + nProxyType==PROXYTYPE_HTTP11); + DebugAssert(!m_nProxyOpID); + DebugAssert(pProxyHost && *pProxyHost); + DebugAssert(ProxyPort>0); + DebugAssert(ProxyPort<=65535); + + delete m_ProxyData.pProxyHost; + delete m_ProxyData.pProxyUser; + delete m_ProxyData.pProxyPass; + m_ProxyData.pProxyUser = NULL; + m_ProxyData.pProxyPass = NULL; + + m_ProxyData.nProxyType = nProxyType; + m_ProxyData.pProxyHost = new char[strlen(pProxyHost)+1]; + strcpy(m_ProxyData.pProxyHost, pProxyHost); + m_ProxyData.nProxyPort = ProxyPort; + m_ProxyData.bUseLogon = FALSE; } void CAsyncProxySocketLayer::SetProxy(int nProxyType, const char * pProxyHost, int ProxyPort, const char * pProxyUser, const char * pProxyPass) { - USES_CONVERSION; - //Validate the parameters - ASSERT(nProxyType==PROXYTYPE_SOCKS5 || nProxyType==PROXYTYPE_HTTP11); - ASSERT(!m_nProxyOpID); - ASSERT(pProxyHost && *pProxyHost); - ASSERT(ProxyPort>0); - ASSERT(ProxyPort<=65535); - - delete m_ProxyData.pProxyHost; - delete m_ProxyData.pProxyUser; - delete m_ProxyData.pProxyPass; - m_ProxyData.pProxyUser = NULL; - m_ProxyData.pProxyPass = NULL; - - m_ProxyData.nProxyType = nProxyType; - m_ProxyData.pProxyHost = new char[strlen(pProxyHost)+1]; - strcpy(m_ProxyData.pProxyHost, pProxyHost); - m_ProxyData.nProxyPort=ProxyPort; - if (pProxyUser) - { - m_ProxyData.pProxyUser = new char[strlen(pProxyUser)+1]; - strcpy(m_ProxyData.pProxyUser, pProxyUser); - } - if (pProxyPass) - { - m_ProxyData.pProxyPass = new char[strlen(pProxyPass)+1]; - strcpy(m_ProxyData.pProxyPass, pProxyPass); - } - m_ProxyData.bUseLogon = TRUE; + USES_CONVERSION; + //Validate the parameters + DebugAssert(nProxyType==PROXYTYPE_SOCKS5 || nProxyType==PROXYTYPE_HTTP11); + DebugAssert(!m_nProxyOpID); + DebugAssert(pProxyHost && *pProxyHost); + DebugAssert(ProxyPort>0); + DebugAssert(ProxyPort<=65535); + + delete m_ProxyData.pProxyHost; + delete m_ProxyData.pProxyUser; + delete m_ProxyData.pProxyPass; + m_ProxyData.pProxyUser = NULL; + m_ProxyData.pProxyPass = NULL; + + m_ProxyData.nProxyType = nProxyType; + m_ProxyData.pProxyHost = new char[strlen(pProxyHost)+1]; + strcpy(m_ProxyData.pProxyHost, pProxyHost); + m_ProxyData.nProxyPort=ProxyPort; + if (pProxyUser) + { + m_ProxyData.pProxyUser = new char[strlen(pProxyUser)+1]; + strcpy(m_ProxyData.pProxyUser, pProxyUser); + } + if (pProxyPass) + { + m_ProxyData.pProxyPass = new char[strlen(pProxyPass)+1]; + strcpy(m_ProxyData.pProxyPass, pProxyPass); + } + m_ProxyData.bUseLogon = TRUE; } void CAsyncProxySocketLayer::OnReceive(int nErrorCode) { - //Here we handle the responses from the SOCKS proxy - if (!m_nProxyOpID) - { - TriggerEvent(FD_READ, nErrorCode, TRUE); - return; - } - if (nErrorCode) - { - TriggerEvent(FD_READ, nErrorCode, TRUE); - } - if (!m_nProxyOpState) //We should not receive a response yet! - { - //Ignore it - return; - } - if (m_ProxyData.nProxyType==PROXYTYPE_SOCKS4 || m_ProxyData.nProxyType==PROXYTYPE_SOCKS4A) - { - if (m_nProxyOpState==1) //Both for PROXYOP_CONNECT and PROXYOP_BIND - { - if (!m_pRecvBuffer) - m_pRecvBuffer=new char[8]; - int numread=ReceiveNext(m_pRecvBuffer+m_nRecvBufferPos, 8-m_nRecvBufferPos); - if (numread==SOCKET_ERROR) - { - if (WSAGetLastError()!=WSAEWOULDBLOCK) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, WSAGetLastError(), TRUE); - else - TriggerEvent(FD_ACCEPT, WSAGetLastError(), TRUE); - Reset(); - ClearBuffer(); - } - return; - } - m_nRecvBufferPos+=numread; - if (m_nRecvBufferPos==8) - { - if (m_pRecvBuffer[1]!=90 || m_pRecvBuffer[0]!=0) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); - else - TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); - Reset(); - ClearBuffer(); - return; - } - if (m_nProxyOpID==PROXYOP_CONNECT) - { - //OK, we are connected with the remote server - ClearBuffer(); - Reset(); - TriggerEvent(FD_CONNECT, 0, TRUE); - TriggerEvent(FD_READ, 0, TRUE); - TriggerEvent(FD_WRITE, 0, TRUE); - return; - } - else - { - //Listen socket created - m_nProxyOpState++; - unsigned long ip; - int port; - memcpy(&ip,&m_pRecvBuffer[4],4); - if (!ip) - { - //No IP return, use the IP of the proxy server - SOCKADDR SockAddr; - memset(&SockAddr,0,sizeof(SockAddr)); - int SockAddrLen=sizeof(SockAddr); - if (GetPeerName(&SockAddr, &SockAddrLen )) - { - ip=((LPSOCKADDR_IN)&SockAddr)->sin_addr.S_un.S_addr; - } - else - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); - else - TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); - Reset(); - ClearBuffer(); - return; - } - } - memcpy(&port,&m_pRecvBuffer[2],2); - t_ListenSocketCreatedStruct data; - data.ip=ip; - data.nPort=port; - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYSTATUS_LISTENSOCKETCREATED, (int)&data); - } - ClearBuffer(); - } - } - else if (m_nProxyOpID==2) - { - if (!m_pRecvBuffer) - m_pRecvBuffer=new char[8]; - int numread=ReceiveNext(m_pRecvBuffer+m_nRecvBufferPos,8-m_nRecvBufferPos); - if (numread==SOCKET_ERROR) - { - if (WSAGetLastError()!=WSAEWOULDBLOCK) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, WSAGetLastError(), TRUE); - else - TriggerEvent(FD_ACCEPT, WSAGetLastError(), TRUE); - Reset(); - ClearBuffer(); - } - return; - } - m_nRecvBufferPos+=numread; - if (m_nRecvBufferPos==8) - { - if (m_pRecvBuffer[1]!=90 || m_pRecvBuffer[0]!=0) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); - else - TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); - Reset(); - ClearBuffer(); - return; - } - //Connection to remote server established - ClearBuffer(); - Reset(); - TriggerEvent(FD_ACCEPT, 0, TRUE); - TriggerEvent(FD_READ, 0, TRUE); - TriggerEvent(FD_WRITE, 0, TRUE); - } - } - } - else if (m_ProxyData.nProxyType==PROXYTYPE_SOCKS5) - { - if (m_nProxyOpState==1) //Get respone to initialization message - { - if (!m_pRecvBuffer) - m_pRecvBuffer=new char[2]; - int numread=ReceiveNext(m_pRecvBuffer+m_nRecvBufferPos,2-m_nRecvBufferPos); - if (numread==SOCKET_ERROR) - { - if (WSAGetLastError()!=WSAEWOULDBLOCK) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, WSAGetLastError(), TRUE); - else - TriggerEvent(FD_ACCEPT, WSAGetLastError(), TRUE); - Reset(); - } - return; - } - m_nRecvBufferPos+=numread; - if (m_nRecvBufferPos==2) - { - if (m_pRecvBuffer[0]!=5) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); - else - TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); - Reset(); - ClearBuffer(); - return; - } - if (m_pRecvBuffer[1]) - { - //Auth needed - if (m_pRecvBuffer[1]!=2) - { - //Unknown auth type - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_AUTHTYPEUNKNOWN, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); - else - TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); - Reset(); - ClearBuffer(); - return; - } - - if (!m_ProxyData.bUseLogon) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_AUTHNOLOGON, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); - else - TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); - Reset(); - ClearBuffer(); - return; - } - //Send authentication - LPCSTR lpszAsciiUser = m_ProxyData.pProxyUser; - LPCSTR lpszAsciiPass = m_ProxyData.pProxyPass; - ASSERT(strlen(lpszAsciiUser)<=255); - ASSERT(strlen(lpszAsciiPass)<=255); - unsigned char *buffer = new unsigned char[3 + (lpszAsciiUser?strlen(lpszAsciiUser):0) + (lpszAsciiPass?strlen(lpszAsciiPass):0) + 1]; - sprintf((char *)buffer, " %s %s", lpszAsciiUser?lpszAsciiUser:"", lpszAsciiPass?lpszAsciiPass:""); - buffer[0]=1; - buffer[1]=static_cast(strlen(lpszAsciiUser)); - buffer[2+strlen(lpszAsciiUser)]=static_cast(strlen(lpszAsciiPass)); - int len=3+strlen(lpszAsciiUser)+strlen(lpszAsciiPass); - int res=SendNext(buffer,len); - delete [] buffer; - if (res==SOCKET_ERROR || resstrlen(m_pStrBuffer)) ? strlen(m_pStrBuffer) : strlen(start))) - { - char* str = new char[strlen("No valid HTTP response") + 1]; - strcpy(str, "No valid HTTP response"); - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0, str); - Reset(); - ClearBuffer(); - TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE ); - return; - } - char *pos = strstr(m_pStrBuffer, "\r\n"); - if (pos) - { - char *pos2 = strstr(m_pStrBuffer, " "); - if (!pos2 || *(pos2+1)!='2' || pos2>pos) - { - char *tmp = new char[pos-m_pStrBuffer + 1]; - tmp[pos-m_pStrBuffer] = 0; - strncpy(tmp, m_pStrBuffer, pos-m_pStrBuffer); - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0, tmp); - Reset(); - ClearBuffer(); - TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE ); - return; - } - } - if (strlen(m_pStrBuffer)>3 && !memcmp(m_pStrBuffer+strlen(m_pStrBuffer)-4, "\r\n\r\n", 4)) //End of the HTTP header - { - Reset(); - ClearBuffer(); - TriggerEvent(FD_CONNECT, 0, TRUE); - TriggerEvent(FD_READ, 0, TRUE); - TriggerEvent(FD_WRITE, 0, TRUE); - return; - } - } - } + //Here we handle the responses from the SOCKS proxy + if (!m_nProxyOpID) + { + TriggerEvent(FD_READ, nErrorCode, TRUE); + return; + } + if (nErrorCode) + { + TriggerEvent(FD_READ, nErrorCode, TRUE); + } + if (!m_nProxyOpState) //We should not receive a response yet! + { + //Ignore it + return; + } + if (m_ProxyData.nProxyType==PROXYTYPE_SOCKS4 || m_ProxyData.nProxyType==PROXYTYPE_SOCKS4A) + { + if (m_nProxyOpState==1) //Both for PROXYOP_CONNECT and PROXYOP_BIND + { + if (!m_pRecvBuffer) + m_pRecvBuffer=new char[8]; + int numread=ReceiveNext(m_pRecvBuffer+m_nRecvBufferPos, 8-m_nRecvBufferPos); + if (numread==SOCKET_ERROR) + { + if (WSAGetLastError()!=WSAEWOULDBLOCK) + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); + if (m_nProxyOpID==PROXYOP_CONNECT) + TriggerEvent(FD_CONNECT, WSAGetLastError(), TRUE); + else + TriggerEvent(FD_ACCEPT, WSAGetLastError(), TRUE); + Reset(); + ClearBuffer(); + } + return; + } + m_nRecvBufferPos+=numread; + if (m_nRecvBufferPos==8) + { + if (m_pRecvBuffer[1]!=90 || m_pRecvBuffer[0]!=0) + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); + if (m_nProxyOpID==PROXYOP_CONNECT) + TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); + else + TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); + Reset(); + ClearBuffer(); + return; + } + if (m_nProxyOpID==PROXYOP_CONNECT) + { + //OK, we are connected with the remote server + ClearBuffer(); + Reset(); + TriggerEvent(FD_CONNECT, 0, TRUE); + TriggerEvent(FD_READ, 0, TRUE); + TriggerEvent(FD_WRITE, 0, TRUE); + return; + } + else + { + //Listen socket created + m_nProxyOpState++; + unsigned long ip; + int port; + memcpy(&ip,&m_pRecvBuffer[4],4); + if (!ip) + { + //No IP return, use the IP of the proxy server + SOCKADDR SockAddr; + memset(&SockAddr,0,sizeof(SockAddr)); + int SockAddrLen=sizeof(SockAddr); + if (GetPeerName(&SockAddr, &SockAddrLen )) + { + ip=((LPSOCKADDR_IN)&SockAddr)->sin_addr.S_un.S_addr; + } + else + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); + if (m_nProxyOpID==PROXYOP_CONNECT) + TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); + else + TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); + Reset(); + ClearBuffer(); + return; + } + } + memcpy(&port,&m_pRecvBuffer[2],2); + t_ListenSocketCreatedStruct data; + data.ip=ip; + data.nPort=port; + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYSTATUS_LISTENSOCKETCREATED, (int)&data); + } + ClearBuffer(); + } + } + else if (m_nProxyOpID==2) + { + if (!m_pRecvBuffer) + m_pRecvBuffer=new char[8]; + int numread=ReceiveNext(m_pRecvBuffer+m_nRecvBufferPos,8-m_nRecvBufferPos); + if (numread==SOCKET_ERROR) + { + if (WSAGetLastError()!=WSAEWOULDBLOCK) + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); + if (m_nProxyOpID==PROXYOP_CONNECT) + TriggerEvent(FD_CONNECT, WSAGetLastError(), TRUE); + else + TriggerEvent(FD_ACCEPT, WSAGetLastError(), TRUE); + Reset(); + ClearBuffer(); + } + return; + } + m_nRecvBufferPos+=numread; + if (m_nRecvBufferPos==8) + { + if (m_pRecvBuffer[1]!=90 || m_pRecvBuffer[0]!=0) + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); + if (m_nProxyOpID==PROXYOP_CONNECT) + TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); + else + TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); + Reset(); + ClearBuffer(); + return; + } + //Connection to remote server established + ClearBuffer(); + Reset(); + TriggerEvent(FD_ACCEPT, 0, TRUE); + TriggerEvent(FD_READ, 0, TRUE); + TriggerEvent(FD_WRITE, 0, TRUE); + } + } + } + else if (m_ProxyData.nProxyType==PROXYTYPE_SOCKS5) + { + if (m_nProxyOpState==1) //Get respone to initialization message + { + if (!m_pRecvBuffer) + m_pRecvBuffer=new char[2]; + int numread=ReceiveNext(m_pRecvBuffer+m_nRecvBufferPos,2-m_nRecvBufferPos); + if (numread==SOCKET_ERROR) + { + if (WSAGetLastError()!=WSAEWOULDBLOCK) + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); + if (m_nProxyOpID==PROXYOP_CONNECT) + TriggerEvent(FD_CONNECT, WSAGetLastError(), TRUE); + else + TriggerEvent(FD_ACCEPT, WSAGetLastError(), TRUE); + Reset(); + } + return; + } + m_nRecvBufferPos+=numread; + if (m_nRecvBufferPos==2) + { + if (m_pRecvBuffer[0]!=5) + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); + if (m_nProxyOpID==PROXYOP_CONNECT) + TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); + else + TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); + Reset(); + ClearBuffer(); + return; + } + if (m_pRecvBuffer[1]) + { + //Auth needed + if (m_pRecvBuffer[1]!=2) + { + //Unknown auth type + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_AUTHTYPEUNKNOWN, 0); + if (m_nProxyOpID==PROXYOP_CONNECT) + TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); + else + TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); + Reset(); + ClearBuffer(); + return; + } + + if (!m_ProxyData.bUseLogon) + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_AUTHNOLOGON, 0); + if (m_nProxyOpID==PROXYOP_CONNECT) + TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); + else + TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); + Reset(); + ClearBuffer(); + return; + } + //Send authentication + LPCSTR lpszAsciiUser = m_ProxyData.pProxyUser; + LPCSTR lpszAsciiPass = m_ProxyData.pProxyPass; + DebugAssert(strlen(lpszAsciiUser)<=255); + DebugAssert(strlen(lpszAsciiPass)<=255); + unsigned char *buffer = new unsigned char[3 + (lpszAsciiUser?strlen(lpszAsciiUser):0) + (lpszAsciiPass?strlen(lpszAsciiPass):0) + 1]; + sprintf((char *)buffer, " %s %s", lpszAsciiUser?lpszAsciiUser:"", lpszAsciiPass?lpszAsciiPass:""); + buffer[0]=1; + buffer[1]=static_cast(strlen(lpszAsciiUser)); + buffer[2+strlen(lpszAsciiUser)]=static_cast(strlen(lpszAsciiPass)); + int len=3+strlen(lpszAsciiUser)+strlen(lpszAsciiPass); + int res=SendNext(buffer,len); + delete [] buffer; + if (res==SOCKET_ERROR || resstrlen(m_pStrBuffer)) ? strlen(m_pStrBuffer) : strlen(start))) + { + char* str = new char[strlen("No valid HTTP response") + 1]; + strcpy(str, "No valid HTTP response"); + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0, str); + Reset(); + ClearBuffer(); + TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE ); + return; + } + char *pos = strstr(m_pStrBuffer, "\r\n"); + if (pos) + { + char *pos2 = strstr(m_pStrBuffer, " "); + if (!pos2 || *(pos2+1)!='2' || pos2>pos) + { + char *tmp = new char[pos-m_pStrBuffer + 1]; + tmp[pos-m_pStrBuffer] = 0; + strncpy(tmp, m_pStrBuffer, pos-m_pStrBuffer); + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0, tmp); + Reset(); + ClearBuffer(); + TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE ); + return; + } + } + if (strlen(m_pStrBuffer)>3 && !memcmp(m_pStrBuffer+strlen(m_pStrBuffer)-4, "\r\n\r\n", 4)) //End of the HTTP header + { + Reset(); + ClearBuffer(); + TriggerEvent(FD_CONNECT, 0, TRUE); + TriggerEvent(FD_READ, 0, TRUE); + TriggerEvent(FD_WRITE, 0, TRUE); + return; + } + } + } } BOOL CAsyncProxySocketLayer::Connect( LPCTSTR lpszHostAddress, UINT nHostPort ) { - if (!m_ProxyData.nProxyType) - //Connect normally because there is no proxy - return ConnectNext(lpszHostAddress, nHostPort); - - USES_CONVERSION; - - //Translate the host address - ASSERT(lpszHostAddress != NULL); - - if (m_ProxyData.nProxyType != PROXYTYPE_SOCKS4) - { - // We can send hostname to proxy, no need to resolve it - - //Connect to proxy server - BOOL res = ConnectNext(A2CT(m_ProxyData.pProxyHost), m_ProxyData.nProxyPort); - if (!res) - { - if (WSAGetLastError() != WSAEWOULDBLOCK) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_NOCONN, 0); - return FALSE; - } - } - m_nProxyPeerPort = htons((u_short)nHostPort); - m_nProxyPeerIp = 0; - delete [] m_pProxyPeerHost; - m_pProxyPeerHost = new char[_tcslen(lpszHostAddress)+1]; - strcpy(m_pProxyPeerHost, T2CA(lpszHostAddress)); - m_nProxyOpID=PROXYOP_CONNECT; - return TRUE; - } - - SOCKADDR_IN sockAddr; - memset(&sockAddr,0,sizeof(sockAddr)); - - LPCSTR lpszAscii = T2A((LPTSTR)lpszHostAddress); - sockAddr.sin_family = AF_INET; - sockAddr.sin_addr.s_addr = inet_addr(lpszAscii); - - if (sockAddr.sin_addr.s_addr == INADDR_NONE) - { - LPHOSTENT lphost; - lphost = gethostbyname(lpszAscii); - if (lphost != NULL) - sockAddr.sin_addr.s_addr = ((LPIN_ADDR)lphost->h_addr)->s_addr; - else - { - //Can't resolve hostname - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_CANTRESOLVEHOST, 0); - WSASetLastError(WSAEINVAL); - return FALSE; - } - } - - sockAddr.sin_port = htons((u_short)nHostPort); - BOOL res=CAsyncProxySocketLayer::Connect((SOCKADDR*)&sockAddr, sizeof(sockAddr)); - if (res || WSAGetLastError()==WSAEWOULDBLOCK) - { - delete [] m_pProxyPeerHost; - m_pProxyPeerHost = new char[strlen(T2CA(lpszHostAddress))+1]; - strcpy(m_pProxyPeerHost, T2CA(lpszHostAddress)); - } - return res; + if (!m_ProxyData.nProxyType) + //Connect normally because there is no proxy + return ConnectNext(lpszHostAddress, nHostPort); + + USES_CONVERSION; + + //Translate the host address + DebugAssert(lpszHostAddress != NULL); + + if (m_ProxyData.nProxyType != PROXYTYPE_SOCKS4) + { + // We can send hostname to proxy, no need to resolve it + + //Connect to proxy server + BOOL res = ConnectNext(A2CT(m_ProxyData.pProxyHost), m_ProxyData.nProxyPort); + if (!res) + { + if (WSAGetLastError() != WSAEWOULDBLOCK) + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_NOCONN, 0); + return FALSE; + } + } + m_nProxyPeerPort = htons((u_short)nHostPort); + m_nProxyPeerIp = 0; + delete [] m_pProxyPeerHost; + m_pProxyPeerHost = new char[_tcslen(lpszHostAddress)+1]; + strcpy(m_pProxyPeerHost, T2CA(lpszHostAddress)); + m_nProxyOpID=PROXYOP_CONNECT; + return TRUE; + } + + SOCKADDR_IN sockAddr; + memset(&sockAddr,0,sizeof(sockAddr)); + + LPCSTR lpszAscii = T2A((LPTSTR)lpszHostAddress); + sockAddr.sin_family = AF_INET; + sockAddr.sin_addr.s_addr = inet_addr(lpszAscii); + + if (sockAddr.sin_addr.s_addr == INADDR_NONE) + { + LPHOSTENT lphost; + lphost = gethostbyname(lpszAscii); + if (lphost != NULL) + sockAddr.sin_addr.s_addr = ((LPIN_ADDR)lphost->h_addr)->s_addr; + else + { + //Can't resolve hostname + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_CANTRESOLVEHOST, 0); + WSASetLastError(WSAEINVAL); + return FALSE; + } + } + + sockAddr.sin_port = htons((u_short)nHostPort); + BOOL res=CAsyncProxySocketLayer::Connect((SOCKADDR*)&sockAddr, sizeof(sockAddr)); + if (res || WSAGetLastError()==WSAEWOULDBLOCK) + { + delete [] m_pProxyPeerHost; + m_pProxyPeerHost = new char[strlen(T2CA(lpszHostAddress))+1]; + strcpy(m_pProxyPeerHost, T2CA(lpszHostAddress)); + } + return res; } BOOL CAsyncProxySocketLayer::Connect( const SOCKADDR* lpSockAddr, int nSockAddrLen ) { - if (!m_ProxyData.nProxyType) - { - //Connect normally because there is no proxy - return ConnectNext(lpSockAddr, nSockAddrLen ); - } - - LPSOCKADDR_IN sockAddr=(LPSOCKADDR_IN)lpSockAddr; - - //Save server details - m_nProxyPeerIp=sockAddr->sin_addr.S_un.S_addr; - m_nProxyPeerPort=sockAddr->sin_port; - delete [] m_pProxyPeerHost; - m_pProxyPeerHost = NULL; - - m_nProxyOpID=PROXYOP_CONNECT; - - USES_CONVERSION; - - BOOL res = ConnectNext(A2T(m_ProxyData.pProxyHost), m_ProxyData.nProxyPort); - if (!res) - { - if (WSAGetLastError()!=WSAEWOULDBLOCK) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_NOCONN, 0); - return FALSE; - } - } - - return res; + if (!m_ProxyData.nProxyType) + { + //Connect normally because there is no proxy + return ConnectNext(lpSockAddr, nSockAddrLen ); + } + + LPSOCKADDR_IN sockAddr=(LPSOCKADDR_IN)lpSockAddr; + + //Save server details + m_nProxyPeerIp=sockAddr->sin_addr.S_un.S_addr; + m_nProxyPeerPort=sockAddr->sin_port; + delete [] m_pProxyPeerHost; + m_pProxyPeerHost = NULL; + + m_nProxyOpID=PROXYOP_CONNECT; + + USES_CONVERSION; + + BOOL res = ConnectNext(A2T(m_ProxyData.pProxyHost), m_ProxyData.nProxyPort); + if (!res) + { + if (WSAGetLastError()!=WSAEWOULDBLOCK) + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_NOCONN, 0); + return FALSE; + } + } + + return res; } void CAsyncProxySocketLayer::OnConnect(int nErrorCode) { - if (m_ProxyData.nProxyType==PROXYTYPE_NOPROXY) - { - TriggerEvent(FD_CONNECT, nErrorCode, TRUE); - return; - } - ASSERT(m_nProxyOpID); - if (!m_nProxyOpID) - { - //This should not happen - return; - }; - - if (nErrorCode) - { //Can't connect to proxy - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_NOCONN, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, nErrorCode, TRUE); - else - TriggerEvent(FD_ACCEPT, nErrorCode, TRUE); - Reset(); - ClearBuffer(); - return; - } - if (m_nProxyOpID==PROXYOP_CONNECT || m_nProxyOpID==PROXYOP_LISTEN) - { - if (m_nProxyOpState) - //Somehow OnConnect has been called more than once - return; - ASSERT(m_ProxyData.nProxyType!=PROXYTYPE_NOPROXY); - ClearBuffer(); - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_NOERROR, 0); - //Send the initial request - if (m_ProxyData.nProxyType==PROXYTYPE_SOCKS4 || m_ProxyData.nProxyType==PROXYTYPE_SOCKS4A) - { //SOCKS4 proxy - //Send request - LPCSTR lpszAscii = m_pProxyPeerHost?m_pProxyPeerHost:""; - char *command=new char [9+strlen(lpszAscii)+1]; - memset(command,0,9+strlen(lpszAscii)+1); - int len=9; - command[0]=4; - command[1]=(m_nProxyOpID==PROXYOP_CONNECT)?1:2; //CONNECT or BIND request - memcpy(&command[2],&m_nProxyPeerPort,2); //Copy target address - if (!m_nProxyPeerIp || m_ProxyData.nProxyType==PROXYTYPE_SOCKS4A) - { - ASSERT(m_ProxyData.nProxyType==PROXYTYPE_SOCKS4A); - ASSERT(strcmp(lpszAscii, "")); - //Set the IP to 0.0.0.x (x is nonzero) - command[4]=0; - command[5]=0; - command[6]=0; - command[7]=1; - //Add host as URL - strcpy(&command[9],lpszAscii); - len+=strlen(lpszAscii)+1; - } - else - memcpy(&command[4],&m_nProxyPeerIp,4); - int res=SendNext(command,len); //Send command - delete [] command; - int nErrorCode=WSAGetLastError(); - if (res==SOCKET_ERROR)//nErrorCode!=WSAEWOULDBLOCK) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, (nErrorCode==WSAEWOULDBLOCK)?WSAECONNABORTED:nErrorCode, TRUE); - else - TriggerEvent(FD_ACCEPT, nErrorCode, TRUE); - Reset(); - ClearBuffer(); - return; - } - else if (res>8) % 256, (m_nProxyPeerIp>>16) %256, m_nProxyPeerIp>>24); - } - if (!m_ProxyData.bUseLogon) - sprintf(str, "CONNECT %s:%d HTTP/1.1\r\nHost: %s:%d\r\n\r\n", pHost, ntohs(m_nProxyPeerPort), - pHost, ntohs(m_nProxyPeerPort)); - else - { - sprintf(str, "CONNECT %s:%d HTTP/1.1\r\nHost: %s:%d\r\n", pHost, ntohs(m_nProxyPeerPort), - pHost, ntohs(m_nProxyPeerPort)); - - char userpass[4096]; - sprintf(userpass, "%s:%s", m_ProxyData.pProxyUser?m_ProxyData.pProxyUser:"", m_ProxyData.pProxyPass?m_ProxyData.pProxyPass:""); - char base64str[4096]; - - CBase64Coding base64coding; - if (!base64coding.Encode(userpass, strlen(userpass), base64str)) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); - else - TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); - Reset(); - ClearBuffer(); - delete [] pHost; - return; - } - strcat(str, "Authorization: Basic "); - strcat(str, base64str); - strcat(str, "\r\nProxy-Authorization: Basic "); - strcat(str, base64str); - strcat(str, "\r\n\r\n"); - } - delete [] pHost; - - USES_CONVERSION; - int numsent=SendNext(str, strlen(str) ); - int nErrorCode=WSAGetLastError(); - if (numsent==SOCKET_ERROR)//nErrorCode!=WSAEWOULDBLOCK) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, (nErrorCode==WSAEWOULDBLOCK)?WSAECONNABORTED:nErrorCode, TRUE); - else - TriggerEvent(FD_ACCEPT, nErrorCode, TRUE); - Reset(); - ClearBuffer(); - return; - } - else if ( numsent < static_cast( strlen(str) ) ) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); - if (m_nProxyOpID==PROXYOP_CONNECT) - TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); - else - TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); - Reset(); - ClearBuffer(); - return; - } - m_nProxyOpState++; - return; - } - else - ASSERT(FALSE); - //Now we'll wait for the response, handled in OnReceive - m_nProxyOpState++; - } + if (m_ProxyData.nProxyType==PROXYTYPE_NOPROXY) + { + TriggerEvent(FD_CONNECT, nErrorCode, TRUE); + return; + } + DebugAssert(m_nProxyOpID); + if (!m_nProxyOpID) + { + //This should not happen + return; + }; + + if (nErrorCode) + { //Can't connect to proxy + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_NOCONN, 0); + if (m_nProxyOpID==PROXYOP_CONNECT) + TriggerEvent(FD_CONNECT, nErrorCode, TRUE); + else + TriggerEvent(FD_ACCEPT, nErrorCode, TRUE); + Reset(); + ClearBuffer(); + return; + } + if (m_nProxyOpID==PROXYOP_CONNECT || m_nProxyOpID==PROXYOP_LISTEN) + { + if (m_nProxyOpState) + //Somehow OnConnect has been called more than once + return; + DebugAssert(m_ProxyData.nProxyType!=PROXYTYPE_NOPROXY); + ClearBuffer(); + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_NOERROR, 0); + //Send the initial request + if (m_ProxyData.nProxyType==PROXYTYPE_SOCKS4 || m_ProxyData.nProxyType==PROXYTYPE_SOCKS4A) + { //SOCKS4 proxy + //Send request + LPCSTR lpszAscii = m_pProxyPeerHost?m_pProxyPeerHost:""; + char *command=new char [9+strlen(lpszAscii)+1]; + memset(command,0,9+strlen(lpszAscii)+1); + int len=9; + command[0]=4; + command[1]=(m_nProxyOpID==PROXYOP_CONNECT)?1:2; //CONNECT or BIND request + memcpy(&command[2],&m_nProxyPeerPort,2); //Copy target address + if (!m_nProxyPeerIp || m_ProxyData.nProxyType==PROXYTYPE_SOCKS4A) + { + DebugAssert(m_ProxyData.nProxyType==PROXYTYPE_SOCKS4A); + DebugAssert(strcmp(lpszAscii, "")); + //Set the IP to 0.0.0.x (x is nonzero) + command[4]=0; + command[5]=0; + command[6]=0; + command[7]=1; + //Add host as URL + strcpy(&command[9],lpszAscii); + len+=strlen(lpszAscii)+1; + } + else + memcpy(&command[4],&m_nProxyPeerIp,4); + int res=SendNext(command,len); //Send command + delete [] command; + int nErrorCode=WSAGetLastError(); + if (res==SOCKET_ERROR)//nErrorCode!=WSAEWOULDBLOCK) + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); + if (m_nProxyOpID==PROXYOP_CONNECT) + TriggerEvent(FD_CONNECT, (nErrorCode==WSAEWOULDBLOCK)?WSAECONNABORTED:nErrorCode, TRUE); + else + TriggerEvent(FD_ACCEPT, nErrorCode, TRUE); + Reset(); + ClearBuffer(); + return; + } + else if (res>8) % 256, (m_nProxyPeerIp>>16) %256, m_nProxyPeerIp>>24); + } + if (!m_ProxyData.bUseLogon) + sprintf(str, "CONNECT %s:%d HTTP/1.1\r\nHost: %s:%d\r\n\r\n", pHost, ntohs(m_nProxyPeerPort), + pHost, ntohs(m_nProxyPeerPort)); + else + { + sprintf(str, "CONNECT %s:%d HTTP/1.1\r\nHost: %s:%d\r\n", pHost, ntohs(m_nProxyPeerPort), + pHost, ntohs(m_nProxyPeerPort)); + + char userpass[4096]; + sprintf(userpass, "%s:%s", m_ProxyData.pProxyUser?m_ProxyData.pProxyUser:"", m_ProxyData.pProxyPass?m_ProxyData.pProxyPass:""); + + AnsiString base64str = EncodeBase64(userpass, strlen(userpass)); + strcat(str, "Authorization: Basic "); + strcat(str, base64str.c_str()); + strcat(str, "\r\nProxy-Authorization: Basic "); + strcat(str, base64str.c_str()); + strcat(str, "\r\n\r\n"); + } + delete [] pHost; + + USES_CONVERSION; + int numsent=SendNext(str, strlen(str) ); + int nErrorCode=WSAGetLastError(); + if (numsent==SOCKET_ERROR)//nErrorCode!=WSAEWOULDBLOCK) + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); + if (m_nProxyOpID==PROXYOP_CONNECT) + TriggerEvent(FD_CONNECT, (nErrorCode==WSAEWOULDBLOCK)?WSAECONNABORTED:nErrorCode, TRUE); + else + TriggerEvent(FD_ACCEPT, nErrorCode, TRUE); + Reset(); + ClearBuffer(); + return; + } + else if ( numsent < static_cast( strlen(str) ) ) + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_REQUESTFAILED, 0); + if (m_nProxyOpID==PROXYOP_CONNECT) + TriggerEvent(FD_CONNECT, WSAECONNABORTED, TRUE); + else + TriggerEvent(FD_ACCEPT, WSAECONNABORTED, TRUE); + Reset(); + ClearBuffer(); + return; + } + m_nProxyOpState++; + return; + } + else + DebugFail(); + //Now we'll wait for the response, handled in OnReceive + m_nProxyOpState++; + } } void CAsyncProxySocketLayer::ClearBuffer() { - delete [] m_pStrBuffer; - m_pStrBuffer = NULL; - if (m_pRecvBuffer) - { - delete [] m_pRecvBuffer; - m_pRecvBuffer=0; - } - m_nRecvBufferLen=0; - m_nRecvBufferPos=0; - + delete [] m_pStrBuffer; + m_pStrBuffer = NULL; + if (m_pRecvBuffer) + { + delete [] m_pRecvBuffer; + m_pRecvBuffer=0; + } + m_nRecvBufferLen=0; + m_nRecvBufferPos=0; } BOOL CAsyncProxySocketLayer::Listen( int nConnectionBacklog) { - if (GetProxyType()==PROXYTYPE_NOPROXY) - return ListenNext(nConnectionBacklog); - - USES_CONVERSION; - - //Connect to proxy server - BOOL res = ConnectNext(A2T(m_ProxyData.pProxyHost), m_ProxyData.nProxyPort); - if (!res) - { - if (WSAGetLastError()!=WSAEWOULDBLOCK) - { - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_NOCONN, 0); - return FALSE; - } - } - m_nProxyPeerPort=0; - m_nProxyPeerIp=(unsigned int)nConnectionBacklog; - - m_nProxyOpID=PROXYOP_LISTEN; - return TRUE; + if (GetProxyType()==PROXYTYPE_NOPROXY) + return ListenNext(nConnectionBacklog); + + USES_CONVERSION; + + //Connect to proxy server + BOOL res = ConnectNext(A2T(m_ProxyData.pProxyHost), m_ProxyData.nProxyPort); + if (!res) + { + if (WSAGetLastError()!=WSAEWOULDBLOCK) + { + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, PROXYERROR_NOCONN, 0); + return FALSE; + } + } + m_nProxyPeerPort=0; + m_nProxyPeerIp=(unsigned int)nConnectionBacklog; + + m_nProxyOpID=PROXYOP_LISTEN; + return TRUE; } -#ifdef _AFX BOOL CAsyncProxySocketLayer::GetPeerName(CString &rPeerAddress, UINT &rPeerPort) { - if (m_ProxyData.nProxyType==PROXYTYPE_NOPROXY) - { - return GetPeerNameNext(rPeerAddress, rPeerPort); - } - - if (GetLayerState()==notsock) - { - WSASetLastError(WSAENOTSOCK); - return FALSE; - } - else if (GetLayerState()!=connected) - { - WSASetLastError(WSAENOTCONN); - return FALSE; - } - else if (!m_nProxyPeerIp || !m_nProxyPeerPort) - { - WSASetLastError(WSAENOTCONN); - return FALSE; - } - - ASSERT(m_ProxyData.nProxyType); - BOOL res=GetPeerNameNext( rPeerAddress, rPeerPort ); - if (res) - { - rPeerPort=ntohs(m_nProxyPeerPort); - rPeerAddress.Format(_T("%d.%d.%d.%d"), m_nProxyPeerIp%256,(m_nProxyPeerIp>>8)%256,(m_nProxyPeerIp>>16)%256, m_nProxyPeerIp>>24); - } - return res; + if (m_ProxyData.nProxyType==PROXYTYPE_NOPROXY) + { + return GetPeerNameNext(rPeerAddress, rPeerPort); + } + + if (GetLayerState()==notsock) + { + WSASetLastError(WSAENOTSOCK); + return FALSE; + } + else if (GetLayerState()!=connected) + { + WSASetLastError(WSAENOTCONN); + return FALSE; + } + else if (!m_nProxyPeerIp || !m_nProxyPeerPort) + { + WSASetLastError(WSAENOTCONN); + return FALSE; + } + + DebugAssert(m_ProxyData.nProxyType); + BOOL res=GetPeerNameNext( rPeerAddress, rPeerPort ); + if (res) + { + rPeerPort=ntohs(m_nProxyPeerPort); + rPeerAddress.Format(L"%d.%d.%d.%d", m_nProxyPeerIp%256,(m_nProxyPeerIp>>8)%256,(m_nProxyPeerIp>>16)%256, m_nProxyPeerIp>>24); + } + return res; } -#endif BOOL CAsyncProxySocketLayer::GetPeerName( SOCKADDR* lpSockAddr, int* lpSockAddrLen ) { - if (m_ProxyData.nProxyType==PROXYTYPE_NOPROXY) - { - return GetPeerNameNext(lpSockAddr, lpSockAddrLen); - } - - if (GetLayerState()==notsock) - { - WSASetLastError(WSAENOTSOCK); - return FALSE; - } - else if (GetLayerState()!=connected) - { - WSASetLastError(WSAENOTCONN); - return FALSE; - } - else if (!m_nProxyPeerIp || !m_nProxyPeerPort) - { - WSASetLastError(WSAENOTCONN); - return FALSE; - } - - ASSERT(m_ProxyData.nProxyType); - BOOL res=GetPeerNameNext(lpSockAddr,lpSockAddrLen); - if (res) - { - LPSOCKADDR_IN addr=(LPSOCKADDR_IN)lpSockAddr; - addr->sin_port=m_nProxyPeerPort; - addr->sin_addr.S_un.S_addr=m_nProxyPeerIp; - } - return res; + if (m_ProxyData.nProxyType==PROXYTYPE_NOPROXY) + { + return GetPeerNameNext(lpSockAddr, lpSockAddrLen); + } + + if (GetLayerState()==notsock) + { + WSASetLastError(WSAENOTSOCK); + return FALSE; + } + else if (GetLayerState()!=connected) + { + WSASetLastError(WSAENOTCONN); + return FALSE; + } + else if (!m_nProxyPeerIp || !m_nProxyPeerPort) + { + WSASetLastError(WSAENOTCONN); + return FALSE; + } + + DebugAssert(m_ProxyData.nProxyType); + BOOL res=GetPeerNameNext(lpSockAddr,lpSockAddrLen); + if (res) + { + LPSOCKADDR_IN addr=(LPSOCKADDR_IN)lpSockAddr; + addr->sin_port=m_nProxyPeerPort; + addr->sin_addr.S_un.S_addr=m_nProxyPeerIp; + } + return res; } int CAsyncProxySocketLayer::GetProxyType() const { - return m_ProxyData.nProxyType; + return m_ProxyData.nProxyType; } void CAsyncProxySocketLayer::Close() { - delete [] m_ProxyData.pProxyHost; - delete [] m_ProxyData.pProxyUser; - delete [] m_ProxyData.pProxyPass; - delete [] m_pProxyPeerHost; - m_ProxyData.pProxyHost = NULL; - m_ProxyData.pProxyUser = NULL; - m_ProxyData.pProxyPass = NULL; - m_pProxyPeerHost = NULL; - ClearBuffer(); - Reset(); - CloseNext(); + delete [] m_ProxyData.pProxyHost; + delete [] m_ProxyData.pProxyUser; + delete [] m_ProxyData.pProxyPass; + delete [] m_pProxyPeerHost; + m_ProxyData.pProxyHost = NULL; + m_ProxyData.pProxyUser = NULL; + m_ProxyData.pProxyPass = NULL; + m_pProxyPeerHost = NULL; + ClearBuffer(); + Reset(); + CloseNext(); } void CAsyncProxySocketLayer::Reset() { - m_nProxyOpState=0; - m_nProxyOpID=0; + m_nProxyOpState=0; + m_nProxyOpID=0; } - int CAsyncProxySocketLayer::Send(const void* lpBuf, int nBufLen, int nFlags) { - if (m_nProxyOpID) - { - WSASetLastError(WSAEWOULDBLOCK); - return SOCKET_ERROR; - } + if (m_nProxyOpID) + { + WSASetLastError(WSAEWOULDBLOCK); + return SOCKET_ERROR; + } - return SendNext(lpBuf, nBufLen, nFlags); + return SendNext(lpBuf, nBufLen, nFlags); } int CAsyncProxySocketLayer::Receive(void* lpBuf, int nBufLen, int nFlags) { - if (m_nProxyOpID) - { - WSASetLastError(WSAEWOULDBLOCK); - return SOCKET_ERROR; - } + if (m_nProxyOpID) + { + WSASetLastError(WSAEWOULDBLOCK); + return SOCKET_ERROR; + } - return ReceiveNext(lpBuf, nBufLen, nFlags); + return ReceiveNext(lpBuf, nBufLen, nFlags); } BOOL CAsyncProxySocketLayer::PrepareListen(unsigned long ip) { - if (GetLayerState()!=notsock && GetLayerState()!=unconnected) - return FALSE; - m_nProxyPeerIp=ip; - return TRUE; + if (GetLayerState()!=notsock && GetLayerState()!=unconnected) + return FALSE; + m_nProxyPeerIp=ip; + return TRUE; } BOOL CAsyncProxySocketLayer::Accept( CAsyncSocketEx& rConnectedSocket, SOCKADDR* lpSockAddr /*=NULL*/, int* lpSockAddrLen /*=NULL*/ ) { - if (!m_ProxyData.nProxyType) - return AcceptNext(rConnectedSocket, lpSockAddr, lpSockAddrLen); + if (!m_ProxyData.nProxyType) + return AcceptNext(rConnectedSocket, lpSockAddr, lpSockAddrLen); - GetPeerName(lpSockAddr, lpSockAddrLen); - return TRUE; -} \ No newline at end of file + GetPeerName(lpSockAddr, lpSockAddrLen); + return TRUE; +} diff --git a/source/filezilla/AsyncProxySocketLayer.h b/source/filezilla/AsyncProxySocketLayer.h index 1c8fb209..afed8a98 100644 --- a/source/filezilla/AsyncProxySocketLayer.h +++ b/source/filezilla/AsyncProxySocketLayer.h @@ -38,9 +38,9 @@ PROXYERROR_CANTRESOLVEHOST 7 //Status messages PROXYSTATUS_LISTENSOCKETCREATED 8 //Called when a listen socket was created successfully. Unlike the normal listen function, - //a socksified socket has to connect to the proxy to negotiate the details with the server - //on which the listen socket will be created - //The two parameters will contain the ip and port of the listen socket on the server. + //a socksified socket has to connect to the proxy to negotiate the details with the server + //on which the listen socket will be created + //The two parameters will contain the ip and port of the listen socket on the server. If you want to use CAsyncProxySocketLayer to create a listen socket, you have to use this overloaded function: @@ -81,7 +81,7 @@ There are also some other functions: GetProxyPeerName Like GetPeerName of CAsyncSocket, but returns the address of the -server connected through the proxy. If using proxies, GetPeerName +server connected through the proxy. If using proxies, GetPeerName only returns the address of the proxy. int GetProxyType(); @@ -97,110 +97,81 @@ Feel free to use this class, as long as you don't claim that you wrote it and this copyright notice stays intact in the source files. If you use this class in commercial applications, please send a short message to tim.kosse@gmx.de - - -Version history ---------------- - -- 1.6 got rid of MFC -- 1.5 released CAsyncSocketExLayer version -- 1.4 added UNICODE support -- 1.3 added basic HTTP1.1 authentication - fixed memory leak in SOCKS5 code - OnSocksOperationFailed will be called after Socket has been closed - fixed some minor bugs -- 1.2 renamed into CAsyncProxySocketLayer - added HTTP1.1 proxy support -- 1.1 fixes all known bugs, mostly with SOCKS5 authentication -- 1.0 initial release */ - -#if !defined(AFX_ASYNCPROXYSOCKETLAYER_H__6B19D281_F1D0_4EF2_984A_31639A038AE5__INCLUDED_) -#define AFX_ASYNCPROXYSOCKETLAYER_H__6B19D281_F1D0_4EF2_984A_31639A038AE5__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - +//--------------------------------------------------------------------------- +#ifndef AsyncProxySocketLayerH +#define AsyncProxySocketLayerH +//--------------------------------------------------------------------------- #include "AsyncSocketExLayer.h" - +//--------------------------------------------------------------------------- class CAsyncProxySocketLayer : public CAsyncSocketExLayer { -// Attribute public: -// Operationen public: - CAsyncProxySocketLayer(); - virtual ~CAsyncProxySocketLayer(); + CAsyncProxySocketLayer(); + virtual ~CAsyncProxySocketLayer(); - -// Überschreibungen public: - virtual void Close(); - virtual BOOL Connect( LPCTSTR lpHostAddress, UINT nHostPort ); - virtual BOOL Connect( const SOCKADDR* lpSockAddr, int nSockAddrLen ); - virtual BOOL Listen( int nConnectionBacklog); - - void SetProxy(int nProxyType); //Only PROXYTYPE_NOPROXY - void SetProxy(int nProxyType, const char * pProxyHost, int ProxyPort); //May not be PROXYTYPE_NOPROXY - void SetProxy(int nProxyType, const char * pProxyHost, int ProxyPort, const char * pProxyUser, const char * pProxyPass); //Only SOCKS5 and HTTP1.1 proxies - //Sets the proxy details. - //nProxyType - Type of the proxy. May be PROXYTYPE_NONE, PROXYTYPE_SOCKS4, PROXYTYPE_SOCKS5 or PROXYTYPE_HTTP11 - //ProxyHost - The address of the proxy. Can be either IP or URL - //ProxyPort - The port of the proxy - //ProxyUser - the username for SOCKS5 proxies - //ProxyPass - the password for SOCKS5 proxies + virtual void Close(); + virtual BOOL Connect(LPCTSTR lpHostAddress, UINT nHostPort); + virtual BOOL Connect(const SOCKADDR * lpSockAddr, int nSockAddrLen); + virtual BOOL Listen(int nConnectionBacklog); - //Prepare listen - BOOL PrepareListen(unsigned long ip); + void SetProxy(int nProxyType); // Only PROXYTYPE_NOPROXY + void SetProxy(int nProxyType, const char * pProxyHost, int ProxyPort); // May not be PROXYTYPE_NOPROXY - int GetProxyType() const; - //Returns the type of the proxy + // Sets the proxy details. + // nProxyType - Type of the proxy. May be PROXYTYPE_NONE, PROXYTYPE_SOCKS4, PROXYTYPE_SOCKS5 or PROXYTYPE_HTTP11 + // ProxyHost - The address of the proxy. Can be either IP or URL + // ProxyPort - The port of the proxy + // ProxyUser - the username for SOCKS5 proxies + // ProxyPass - the password for SOCKS5 proxies + void SetProxy(int nProxyType, const char * pProxyHost, int ProxyPort, const char * pProxyUser, const char * pProxyPass); // Only SOCKS5 and HTTP1.1 proxies -#ifdef _AFX - virtual BOOL GetPeerName( CString& rPeerAddress, UINT& rPeerPort ); -#endif - virtual BOOL GetPeerName( SOCKADDR* lpSockAddr, int* lpSockAddrLen ); + // Prepare listen + BOOL PrepareListen(unsigned long ip); + int GetProxyType() const; + // Returns the type of the proxy - //Returns the address of the server behind the SOCKS proxy you are connected to + // Returns the address of the server behind the SOCKS proxy you are connected to + virtual BOOL GetPeerName(CString & rPeerAddress, UINT & rPeerPort); + virtual BOOL GetPeerName(SOCKADDR * lpSockAddr, int * lpSockAddrLen); - -// Implementierung protected: - virtual BOOL Accept( CAsyncSocketEx& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL ); - virtual void OnReceive(int nErrorCode); - virtual void OnConnect(int nErrorCode); - virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0); - virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); + virtual BOOL Accept(CAsyncSocketEx & rConnectedSocket, SOCKADDR * lpSockAddr = NULL, int * lpSockAddrLen = NULL); + virtual void OnReceive(int nErrorCode); + virtual void OnConnect(int nErrorCode); + virtual int Send(const void * lpBuf, int nBufLen, int nFlags = 0); + virtual int Receive(void * lpBuf, int nBufLen, int nFlags = 0); private: - void Reset(); - void ClearBuffer(); //Clears the receive buffer - char *m_pRecvBuffer; //The receive buffer - int m_nRecvBufferLen; //Length of the RecvBuffer - int m_nRecvBufferPos; //Position within the receive buffer - char *m_pStrBuffer; //Recvbuffer needed by HTTP1.1 proxy - int m_nProxyOpState; //State of an operation - int m_nProxyOpID; //Currently active operation (0 if none) - int m_nProxyPeerPort; //Port of the server you are connected to, retrieve via GetPeerName - ULONG m_nProxyPeerIp; //IP of the server you are connected to, retrieve via GetPeerName - typedef struct - { - int nProxyType; - char * pProxyHost; - int nProxyPort; - char * pProxyUser; - char * pProxyPass; - BOOL bUseLogon; - } t_proxydata; //This structure will be used to hold the proxy details - - t_proxydata m_ProxyData; //Structure to hold the data set by SetProxy - char * m_pProxyPeerHost; //The host connected to + void Reset(); + void ClearBuffer(); // Clears the receive buffer + char *m_pRecvBuffer; // The receive buffer + int m_nRecvBufferLen; // Length of the RecvBuffer + int m_nRecvBufferPos; // Position within the receive buffer + char *m_pStrBuffer; // Recvbuffer needed by HTTP1.1 proxy + int m_nProxyOpState; // State of an operation + int m_nProxyOpID; // Currently active operation (0 if none) + int m_nProxyPeerPort; // Port of the server you are connected to, retrieve via GetPeerName + ULONG m_nProxyPeerIp; // IP of the server you are connected to, retrieve via GetPeerName + typedef struct + { + int nProxyType; + char * pProxyHost; + int nProxyPort; + char * pProxyUser; + char * pProxyPass; + BOOL bUseLogon; + } t_proxydata; // This structure will be used to hold the proxy details + + t_proxydata m_ProxyData; // Structure to hold the data set by SetProxy + char * m_pProxyPeerHost; // The host connected to }; - -//Errorcodes +//--------------------------------------------------------------------------- +// Errorcodes #define PROXYERROR_NOERROR 0 #define PROXYERROR_NOCONN 1 //Can't connect to proxy server, use GetLastError for more information #define PROXYERROR_REQUESTFAILED 2 //Request failed, can't send data @@ -209,27 +180,27 @@ class CAsyncProxySocketLayer : public CAsyncSocketExLayer #define PROXYERROR_AUTHFAILED 5 //Authentication failed #define PROXYERROR_AUTHNOLOGON 6 #define PROXYERROR_CANTRESOLVEHOST 7 - -//Status messages -#define PROXYSTATUS_LISTENSOCKETCREATED 8 //Called when a listen socket was created successfully. Unlike the normal listen function, - //a socksified socket has to connect to the proxy to negotiate the details with the server - //on which the listen socket will be created - //The two parameters will contain the ip and port of the listen socket on the server. +//--------------------------------------------------------------------------- +// Status messages +// Called when a listen socket was created successfully. Unlike the normal listen function, +// a socksified socket has to connect to the proxy to negotiate the details with the server +// on which the listen socket will be created +// The two parameters will contain the ip and port of the listen socket on the server. +#define PROXYSTATUS_LISTENSOCKETCREATED 8 struct t_ListenSocketCreatedStruct { - unsigned long ip; - UINT nPort; + unsigned long ip; + UINT nPort; }; - -//Proxytypes +//--------------------------------------------------------------------------- +// Proxytypes #define PROXYTYPE_NOPROXY 0 #define PROXYTYPE_SOCKS4 1 #define PROXYTYPE_SOCKS4A 2 #define PROXYTYPE_SOCKS5 3 #define PROXYTYPE_HTTP11 4 - +//--------------------------------------------------------------------------- #define PROXYOP_CONNECT 1 #define PROXYOP_LISTEN 2 - - -#endif // !defined(AFX_ASYNCPROXYSOCKETLAYER_H__6B19D281_F1D0_4EF2_984A_31639A038AE5__INCLUDED_) +//--------------------------------------------------------------------------- +#endif // AsyncProxySocketLayerH diff --git a/source/filezilla/AsyncSocketEx.cpp b/source/filezilla/AsyncSocketEx.cpp index 6b4b4429..c2bcd590 100644 --- a/source/filezilla/AsyncSocketEx.cpp +++ b/source/filezilla/AsyncSocketEx.cpp @@ -1,134 +1,25 @@ -/*CAsyncSocketEx by Tim Kosse (Tim.Kosse@gmx.de) - Version 1.3 (2003-04-26) --------------------------------------------------------- - -Introduction: -------------- - -CAsyncSocketEx is a replacement for the MFC class CAsyncSocket. -This class was written because CAsyncSocket is not the fastest WinSock -wrapper and it's very hard to add new functionality to CAsyncSocket -derived classes. This class offers the same functionality as CAsyncSocket. -Also, CAsyncSocketEx offers some enhancements which were not possible with -CAsyncSocket without some tricks. - -How do I use it? ----------------- -Basically exactly like CAsyncSocket. -To use CAsyncSocketEx, just replace all occurrences of CAsyncSocket in your -code with CAsyncSocketEx, if you did not enhance CAsyncSocket yourself in -any way, you won't have to change anything else in your code. - -Why is CAsyncSocketEx faster? ------------------------------ - -CAsyncSocketEx is slightly faster when dispatching notification event messages. -First have a look at the way CAsyncSocket works. For each thread that uses -CAsyncSocket, a window is created. CAsyncSocket calls WSAAsyncSelect with -the handle of that window. Until here, CAsyncSocketEx works the same way. -But CAsyncSocket uses only one window message (WM_SOCKET_NOTIFY) for all -sockets within one thread. When the window recieve WM_SOCKET_NOTIFY, wParam -contains the socket handle and the window looks up an CAsyncSocket instance -using a map. CAsyncSocketEx works differently. It's helper window uses a -wide range of different window messages (WM_USER through 0xBFFF) and passes -a different message to WSAAsyncSelect for each socket. When a message in -the specified range is received, CAsyncSocketEx looks up the pointer to a -CAsyncSocketEx instance in an Array using the index of message - WM_USER. -As you can see, CAsyncSocketEx uses the helper window in a more efficient -way, as it don't have to use the slow maps to lookup it's own instance. -Still, speed increase is not very much, but it may be noticeable when using -a lot of sockets at the same time. -Please note that the changes do not affect the raw data throughput rate, -CAsyncSocketEx only dispatches the notification messages faster. - -What else does CAsyncSocketEx offer? ------------------------------------- - -CAsyncSocketEx offers a flexible layer system. One example is the proxy layer. -Just create an instance of the proxy layer, configure it and add it to the layer -chain of your CAsyncSocketEx instance. After that, you can connect through -proxies. -Benefit: You don't have to change much to use the layer system. -Another layer that is currently in development is the SSL layer to establish -SSL encrypted connections. - -License -------- - -Feel free to use this class, as long as you don't claim that you wrote it -and this copyright notice stays intact in the source files. -If you use this class in commercial applications, please send a short message -to tim.kosse@gmx.de -*/ - +// CAsyncSocketEx by Tim Kosse (Tim.Kosse@gmx.de) +// Version 1.3 (2003-04-26) +//--------------------------------------------------------------------------- +// Feel free to use this class, as long as you don't claim that you wrote it +// and this copyright notice stays intact in the source files. +// If you use this class in commercial applications, please send a short message +// to tim.kosse@gmx.de +//--------------------------------------------------------------------------- #include "stdafx.h" #include "AsyncSocketEx.h" #include "wtypes.h" #include "oleauto.h" #include "atlconv.h" -#ifndef NOLAYERS #include "AsyncSocketExLayer.h" -#endif //NOLAYERS #undef TRACE_TRANSMIT -#ifdef MPEXT -#pragma warn -inl -#endif - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#endif - -#ifndef CCRITICALSECTIONWRAPPERINCLUDED -class CCriticalSectionWrapper -{ -public: - CCriticalSectionWrapper() - { - m_bInitialized = TRUE; - InitializeCriticalSection(&m_criticalSection); - } - - ~CCriticalSectionWrapper() - { - if (m_bInitialized) - DeleteCriticalSection(&m_criticalSection); - m_bInitialized = FALSE; - } - - void Lock() - { - if (m_bInitialized) - EnterCriticalSection(&m_criticalSection); - } - void Unlock() - { - if (m_bInitialized) - LeaveCriticalSection(&m_criticalSection); - } -protected: - CRITICAL_SECTION m_criticalSection; - BOOL m_bInitialized; -}; -#define CCRITICALSECTIONWRAPPERINCLUDED -#endif - CCriticalSectionWrapper CAsyncSocketEx::m_sGlobalCriticalSection; CAsyncSocketEx::t_AsyncSocketExThreadDataList *CAsyncSocketEx::m_spAsyncSocketExThreadDataList = 0; -#ifndef _AFX -#ifndef VERIFY -#define VERIFY(x) (void(x)) -#endif //VERIFY -#ifndef ASSERT -#define ASSERT(x) -#endif //ASSERT -#endif //_AFX - ///////////////////////////// //Helper Window class #define WM_SOCKETEX_NOTIFY (WM_USER+3) @@ -137,641 +28,593 @@ CAsyncSocketEx::t_AsyncSocketExThreadDataList *CAsyncSocketEx::m_spAsyncSocketEx class CAsyncSocketExHelperWindow { public: - CAsyncSocketExHelperWindow(CAsyncSocketEx::t_AsyncSocketExThreadData* pThreadData) - { - //Initialize data - m_pAsyncSocketExWindowData = new t_AsyncSocketExWindowData[512]; //Reserve space for 512 active sockets - memset(m_pAsyncSocketExWindowData, 0, 512*sizeof(t_AsyncSocketExWindowData)); - m_nWindowDataSize=512; - m_nSocketCount=0; - m_nWindowDataPos=0; - m_pThreadData = pThreadData; - - //Create window - WNDCLASSEX wndclass; - wndclass.cbSize=sizeof wndclass; - wndclass.style=0; - wndclass.lpfnWndProc=WindowProc; - wndclass.cbClsExtra=0; - wndclass.cbWndExtra=0; - wndclass.hInstance=GetModuleHandle(0); - wndclass.hIcon=0; - wndclass.hCursor=0; - wndclass.hbrBackground=0; - wndclass.lpszMenuName=0; - wndclass.lpszClassName=_T("CAsyncSocketEx Helper Window"); - wndclass.hIconSm=0; - - #ifdef _DEBUG - ATOM ClassAtom = - #endif - RegisterClassEx(&wndclass); - - m_hWnd=CreateWindow(_T("CAsyncSocketEx Helper Window"), _T("CAsyncSocketEx Helper Window"), 0, 0, 0, 0, 0, 0, 0, GetModuleHandle(0), 0); - ASSERT(m_hWnd); - SetWindowLongPtr(m_hWnd, GWL_USERDATA, (LONG)this); - }; - - virtual ~CAsyncSocketExHelperWindow() - { - //Clean up socket storage - delete [] m_pAsyncSocketExWindowData; - m_pAsyncSocketExWindowData=0; - m_nWindowDataSize=0; - m_nSocketCount=0; - - //Destroy window - if (m_hWnd) - { - DestroyWindow(m_hWnd); - m_hWnd=0; - } - } - - //Adds a socket to the list of attached sockets - BOOL AddSocket(CAsyncSocketEx *pSocket, int &nSocketIndex) - { - ASSERT(pSocket); - if (!m_nWindowDataSize) - { - ASSERT(!m_nSocketCount); - m_nWindowDataSize=512; - m_pAsyncSocketExWindowData=new t_AsyncSocketExWindowData[512]; //Reserve space for 512 active sockets - memset(m_pAsyncSocketExWindowData, 0, 512*sizeof(t_AsyncSocketExWindowData)); - } - - if (nSocketIndex!=-1) - { - ASSERT(m_pAsyncSocketExWindowData); - ASSERT(m_nWindowDataSize>nSocketIndex); - ASSERT(m_pAsyncSocketExWindowData[nSocketIndex].m_pSocket==pSocket); - ASSERT(m_nSocketCount); - return TRUE; - } - - //Increase socket storage if too small - if (m_nSocketCount>=(m_nWindowDataSize-10)) - { - int nOldWindowDataSize=m_nWindowDataSize; - ASSERT(m_nWindowDataSizeMAX_SOCKETS) - m_nWindowDataSize=MAX_SOCKETS; - t_AsyncSocketExWindowData *tmp=m_pAsyncSocketExWindowData; - m_pAsyncSocketExWindowData = new t_AsyncSocketExWindowData[m_nWindowDataSize]; - memcpy(m_pAsyncSocketExWindowData, tmp, nOldWindowDataSize * sizeof(t_AsyncSocketExWindowData)); - memset(m_pAsyncSocketExWindowData+nOldWindowDataSize, 0, (m_nWindowDataSize-nOldWindowDataSize)*sizeof(t_AsyncSocketExWindowData)); - delete [] tmp; - } - - //Search for free slot - for (int i=m_nWindowDataPos;i<(m_nWindowDataSize+m_nWindowDataPos);i++) - { - if (!m_pAsyncSocketExWindowData[i%m_nWindowDataSize].m_pSocket) - { - m_pAsyncSocketExWindowData[i%m_nWindowDataSize].m_pSocket=pSocket; - nSocketIndex=i%m_nWindowDataSize; - m_nWindowDataPos=(i+1)%m_nWindowDataSize; - m_nSocketCount++; - return TRUE; - } - } - - //No slot found, maybe there are too much sockets! - return FALSE; - } - - //Removes a socket from the socket storage - BOOL RemoveSocket(CAsyncSocketEx *pSocket, int &nSocketIndex) - { - ASSERT(pSocket); - if (nSocketIndex==-1) - return TRUE; - - // Remove additional messages from queue - MSG msg; - while (PeekMessage(&msg, m_hWnd, WM_SOCKETEX_NOTIFY + nSocketIndex, WM_SOCKETEX_NOTIFY + nSocketIndex, PM_REMOVE)); - - ASSERT(m_pAsyncSocketExWindowData); - ASSERT(m_nWindowDataSize>0); - ASSERT(m_nSocketCount>0); - ASSERT(m_pAsyncSocketExWindowData[nSocketIndex].m_pSocket==pSocket); - m_pAsyncSocketExWindowData[nSocketIndex].m_pSocket=0; - nSocketIndex=-1; - m_nSocketCount--; - - return TRUE; - } - - void RemoveLayers(CAsyncSocketEx *pOrigSocket) - { - // Remove all layer messages from old socket - std::list msgList; - MSG msg; - while (PeekMessage(&msg, m_hWnd, WM_USER, WM_USER, PM_REMOVE)) - { - //Verify parameters, lookup socket and notification message - //Verify parameters - if (msg.wParam >= static_cast(m_nWindowDataSize)) //Index is within socket storage - continue; - - CAsyncSocketEx *pSocket = m_pAsyncSocketExWindowData[msg.wParam].m_pSocket; - CAsyncSocketExLayer::t_LayerNotifyMsg *pMsg=(CAsyncSocketExLayer::t_LayerNotifyMsg *)msg.lParam; - if (!pMsg || !pSocket || pSocket == pOrigSocket || pSocket->m_SocketData.hSocket != pMsg->hSocket) - { - delete pMsg; - continue; - } - - msgList.push_back(msg); - } - - for (std::list::iterator iter = msgList.begin(); iter != msgList.end(); iter++) - { - PostMessage(m_hWnd, iter->message, iter->wParam, iter->lParam); - } - } - - //Processes event notifications sent by the sockets or the layers - static LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) - { - //Verify parameters - ASSERT(hWnd); - if (!hWnd) - return 0; - CAsyncSocketExHelperWindow *pWnd=(CAsyncSocketExHelperWindow *)GetWindowLongPtr(hWnd, GWL_USERDATA); - if (message>=WM_SOCKETEX_NOTIFY) - { - ASSERT(pWnd); - - if (message(WM_SOCKETEX_NOTIFY+pWnd->m_nWindowDataSize)) //Index is within socket storage - { - //Lookup socket and verify if it's valid - CAsyncSocketEx *pSocket=pWnd->m_pAsyncSocketExWindowData[message-WM_SOCKETEX_NOTIFY].m_pSocket; - SOCKET hSocket=wParam; - if (!pSocket) - return 0; - if (hSocket==INVALID_SOCKET) - return 0; - if (pSocket->m_SocketData.hSocket != hSocket) - return 0; - - int nEvent=lParam&0xFFFF; - int nErrorCode=lParam>>16; - - //Dispatch notification -#ifndef NOLAYERS - if (!pSocket->m_pFirstLayer) - { -#endif //NOLAYERS - //Dispatch to CAsyncSocketEx instance - switch (nEvent) - { - case FD_READ: -#ifndef NOSOCKETSTATES - if (pSocket->GetState() == connecting && !nErrorCode) - { - pSocket->m_nPendingEvents |= FD_READ; - break; - } - else if (pSocket->GetState() == attached) - { - pSocket->SetState(connected); - } - if (pSocket->GetState() != connected) - break; - - // Ignore further FD_READ events after FD_CLOSE has been received - if (pSocket->m_SocketData.onCloseCalled) - break; -#endif //NOSOCKETSTATES - - if (pSocket->m_lEvent & FD_READ) - { - DWORD nBytes = 0; - if (!nErrorCode) - if (!pSocket->IOCtl(FIONREAD, &nBytes)) - nErrorCode = WSAGetLastError(); -#ifndef NOSOCKETSTATES - if (nErrorCode) - { - pSocket->SetState(aborted); - } -#endif //NOSOCKETSTATES - if (nBytes != 0 || nErrorCode != 0) - pSocket->OnReceive(nErrorCode); - } - break; - case FD_FORCEREAD: //Forceread does not check if there's data waiting -#ifndef NOSOCKETSTATES - if (pSocket->GetState() == connecting && !nErrorCode) - { - pSocket->m_nPendingEvents |= FD_FORCEREAD; - break; - } - else if (pSocket->GetState() == attached) - { - pSocket->SetState(connected); - } - if (pSocket->GetState() != connected) - break; -#endif //NOSOCKETSTATES - if (pSocket->m_lEvent & FD_READ) - { -#ifndef NOSOCKETSTATES - if (nErrorCode) - { - pSocket->SetState(aborted); - } -#endif //NOSOCKETSTATES - pSocket->OnReceive(nErrorCode); - } - break; - case FD_WRITE: -#ifndef NOSOCKETSTATES - if (pSocket->GetState() == connecting && !nErrorCode) - { - pSocket->m_nPendingEvents |= FD_WRITE; - break; - } - else if (pSocket->GetState() == attached && !nErrorCode) - { - pSocket->SetState(connected); - } - if (pSocket->GetState() != connected) - break; -#endif //NOSOCKETSTATES - if (pSocket->m_lEvent & FD_WRITE) - { -#ifndef NOSOCKETSTATES - if (nErrorCode) - { - pSocket->SetState(aborted); - } -#endif //NOSOCKETSTATES - pSocket->OnSend(nErrorCode); - } - break; - case FD_CONNECT: -#ifndef NOSOCKETSTATES - if (pSocket->GetState() == connecting) - { - if (nErrorCode && pSocket->m_SocketData.nextAddr) - { - if (pSocket->TryNextProtocol()) + CAsyncSocketExHelperWindow(CAsyncSocketEx::t_AsyncSocketExThreadData* pThreadData) + { + //Initialize data + m_pAsyncSocketExWindowData = new t_AsyncSocketExWindowData[512]; //Reserve space for 512 active sockets + memset(m_pAsyncSocketExWindowData, 0, 512*sizeof(t_AsyncSocketExWindowData)); + m_nWindowDataSize=512; + m_nSocketCount=0; + m_nWindowDataPos=0; + m_pThreadData = pThreadData; + + //Create window + WNDCLASSEX wndclass; + wndclass.cbSize=sizeof wndclass; + wndclass.style=0; + wndclass.lpfnWndProc=WindowProc; + wndclass.cbClsExtra=0; + wndclass.cbWndExtra=0; + wndclass.hInstance=GetModuleHandle(0); + wndclass.hIcon=0; + wndclass.hCursor=0; + wndclass.hbrBackground=0; + wndclass.lpszMenuName=0; + wndclass.lpszClassName=L"CAsyncSocketEx Helper Window"; + wndclass.hIconSm=0; + + #ifdef _DEBUG + ATOM ClassAtom = + #endif + RegisterClassEx(&wndclass); + + m_hWnd=CreateWindow(L"CAsyncSocketEx Helper Window", L"CAsyncSocketEx Helper Window", 0, 0, 0, 0, 0, 0, 0, GetModuleHandle(0), 0); + DebugAssert(m_hWnd); + SetWindowLongPtr(m_hWnd, GWL_USERDATA, (LONG)this); + }; + + virtual ~CAsyncSocketExHelperWindow() + { + //Clean up socket storage + delete [] m_pAsyncSocketExWindowData; + m_pAsyncSocketExWindowData=0; + m_nWindowDataSize=0; + m_nSocketCount=0; + + //Destroy window + if (m_hWnd) + { + DestroyWindow(m_hWnd); + m_hWnd=0; + } + } + + //Adds a socket to the list of attached sockets + BOOL AddSocket(CAsyncSocketEx *pSocket, int &nSocketIndex) + { + DebugAssert(pSocket); + if (!m_nWindowDataSize) + { + DebugAssert(!m_nSocketCount); + m_nWindowDataSize=512; + m_pAsyncSocketExWindowData=new t_AsyncSocketExWindowData[512]; //Reserve space for 512 active sockets + memset(m_pAsyncSocketExWindowData, 0, 512*sizeof(t_AsyncSocketExWindowData)); + } + + if (nSocketIndex!=-1) + { + DebugAssert(m_pAsyncSocketExWindowData); + DebugAssert(m_nWindowDataSize>nSocketIndex); + DebugAssert(m_pAsyncSocketExWindowData[nSocketIndex].m_pSocket==pSocket); + DebugAssert(m_nSocketCount); + return TRUE; + } + + //Increase socket storage if too small + if (m_nSocketCount>=(m_nWindowDataSize-10)) + { + int nOldWindowDataSize=m_nWindowDataSize; + DebugAssert(m_nWindowDataSizeMAX_SOCKETS) + m_nWindowDataSize=MAX_SOCKETS; + t_AsyncSocketExWindowData *tmp=m_pAsyncSocketExWindowData; + m_pAsyncSocketExWindowData = new t_AsyncSocketExWindowData[m_nWindowDataSize]; + memcpy(m_pAsyncSocketExWindowData, tmp, nOldWindowDataSize * sizeof(t_AsyncSocketExWindowData)); + memset(m_pAsyncSocketExWindowData+nOldWindowDataSize, 0, (m_nWindowDataSize-nOldWindowDataSize)*sizeof(t_AsyncSocketExWindowData)); + delete [] tmp; + } + + //Search for free slot + for (int i=m_nWindowDataPos;i<(m_nWindowDataSize+m_nWindowDataPos);i++) + { + if (!m_pAsyncSocketExWindowData[i%m_nWindowDataSize].m_pSocket) + { + m_pAsyncSocketExWindowData[i%m_nWindowDataSize].m_pSocket=pSocket; + nSocketIndex=i%m_nWindowDataSize; + m_nWindowDataPos=(i+1)%m_nWindowDataSize; + m_nSocketCount++; + return TRUE; + } + } + + //No slot found, maybe there are too much sockets! + return FALSE; + } + + //Removes a socket from the socket storage + BOOL RemoveSocket(CAsyncSocketEx *pSocket, int &nSocketIndex) + { + DebugAssert(pSocket); + if (nSocketIndex==-1) + return TRUE; + + // Remove additional messages from queue + MSG msg; + while (PeekMessage(&msg, m_hWnd, WM_SOCKETEX_NOTIFY + nSocketIndex, WM_SOCKETEX_NOTIFY + nSocketIndex, PM_REMOVE)); + + DebugAssert(m_pAsyncSocketExWindowData); + DebugAssert(m_nWindowDataSize>0); + DebugAssert(m_nSocketCount>0); + DebugAssert(m_pAsyncSocketExWindowData[nSocketIndex].m_pSocket==pSocket); + m_pAsyncSocketExWindowData[nSocketIndex].m_pSocket=0; + nSocketIndex=-1; + m_nSocketCount--; + + return TRUE; + } + + void RemoveLayers(CAsyncSocketEx *pOrigSocket) + { + // Remove all layer messages from old socket + std::list msgList; + MSG msg; + while (PeekMessage(&msg, m_hWnd, WM_USER, WM_USER, PM_REMOVE)) + { + //Verify parameters, lookup socket and notification message + //Verify parameters + if (msg.wParam >= static_cast(m_nWindowDataSize)) //Index is within socket storage + continue; + + CAsyncSocketEx *pSocket = m_pAsyncSocketExWindowData[msg.wParam].m_pSocket; + CAsyncSocketExLayer::t_LayerNotifyMsg *pMsg=(CAsyncSocketExLayer::t_LayerNotifyMsg *)msg.lParam; + if (!pMsg || !pSocket || pSocket == pOrigSocket || pSocket->m_SocketData.hSocket != pMsg->hSocket) + { + delete pMsg; + continue; + } + + msgList.push_back(msg); + } + + for (std::list::iterator iter = msgList.begin(); iter != msgList.end(); iter++) + { + PostMessage(m_hWnd, iter->message, iter->wParam, iter->lParam); + } + } + + //Processes event notifications sent by the sockets or the layers + static LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) + { + //Verify parameters + DebugAssert(hWnd); + if (!hWnd) + return 0; + CAsyncSocketExHelperWindow *pWnd=(CAsyncSocketExHelperWindow *)GetWindowLongPtr(hWnd, GWL_USERDATA); + if (message>=WM_SOCKETEX_NOTIFY) + { + DebugAssert(pWnd); + + if (message(WM_SOCKETEX_NOTIFY+pWnd->m_nWindowDataSize)) //Index is within socket storage + { + //Lookup socket and verify if it's valid + CAsyncSocketEx *pSocket=pWnd->m_pAsyncSocketExWindowData[message-WM_SOCKETEX_NOTIFY].m_pSocket; + SOCKET hSocket=wParam; + if (!pSocket) + return 0; + if (hSocket==INVALID_SOCKET) + return 0; + if (pSocket->m_SocketData.hSocket != hSocket) + return 0; + + int nEvent=lParam&0xFFFF; + int nErrorCode=lParam>>16; + + //Dispatch notification + if (!pSocket->m_pFirstLayer) + { + //Dispatch to CAsyncSocketEx instance + switch (nEvent) + { + case FD_READ: + if (pSocket->GetState() == connecting && !nErrorCode) + { + pSocket->m_nPendingEvents |= FD_READ; + break; + } + else if (pSocket->GetState() == attached) + { + pSocket->SetState(connected); + } + if (pSocket->GetState() != connected) + break; + + // Ignore further FD_READ events after FD_CLOSE has been received + if (pSocket->m_SocketData.onCloseCalled) + break; + + if (pSocket->m_lEvent & FD_READ) + { + DWORD nBytes = 0; + if (!nErrorCode) + if (!pSocket->IOCtl(FIONREAD, &nBytes)) + nErrorCode = WSAGetLastError(); + if (nErrorCode) + { + pSocket->SetState(aborted); + } + if (nBytes != 0 || nErrorCode != 0) + pSocket->OnReceive(nErrorCode); + } + break; + case FD_FORCEREAD: //Forceread does not check if there's data waiting + if (pSocket->GetState() == connecting && !nErrorCode) + { + pSocket->m_nPendingEvents |= FD_FORCEREAD; + break; + } + else if (pSocket->GetState() == attached) + { + pSocket->SetState(connected); + } + if (pSocket->GetState() != connected) + break; + if (pSocket->m_lEvent & FD_READ) + { + if (nErrorCode) + { + pSocket->SetState(aborted); + } + pSocket->OnReceive(nErrorCode); + } + break; + case FD_WRITE: + if (pSocket->GetState() == connecting && !nErrorCode) + { + pSocket->m_nPendingEvents |= FD_WRITE; + break; + } + else if (pSocket->GetState() == attached && !nErrorCode) + { + pSocket->SetState(connected); + } + if (pSocket->GetState() != connected) + break; + if (pSocket->m_lEvent & FD_WRITE) + { + if (nErrorCode) + { + pSocket->SetState(aborted); + } + pSocket->OnSend(nErrorCode); + } + break; + case FD_CONNECT: + if (pSocket->GetState() == connecting) + { + if (nErrorCode && pSocket->m_SocketData.nextAddr) + { + if (pSocket->TryNextProtocol()) break; - } - pSocket->SetState(connected); - } - else if (pSocket->GetState() == attached && !nErrorCode) - { - pSocket->SetState(connected); - } -#endif //NOSOCKETSTATES - if (pSocket->m_lEvent & FD_CONNECT) - pSocket->OnConnect(nErrorCode); -#ifndef NOSOCKETSTATES - if (!nErrorCode) - { - if ((pSocket->m_nPendingEvents&FD_READ) && pSocket->GetState() == connected) - pSocket->OnReceive(0); - if ((pSocket->m_nPendingEvents&FD_FORCEREAD) && pSocket->GetState() == connected) - pSocket->OnReceive(0); - if ((pSocket->m_nPendingEvents&FD_WRITE) && pSocket->GetState() == connected) - pSocket->OnSend(0); - } - pSocket->m_nPendingEvents = 0; -#endif - break; - case FD_ACCEPT: -#ifndef NOSOCKETSTATES - if (pSocket->GetState() != listening && pSocket->GetState() != attached) - break; -#endif //NOSOCKETSTATES - if (pSocket->m_lEvent & FD_ACCEPT) - pSocket->OnAccept(nErrorCode); - break; - case FD_CLOSE: -#ifndef NOSOCKETSTATES - if (pSocket->GetState() != connected && pSocket->GetState() != attached) - break; - - // If there are still bytes left to read, call OnReceive instead of - // OnClose and trigger a new OnClose - DWORD nBytes = 0; - if (!nErrorCode && pSocket->IOCtl(FIONREAD, &nBytes)) - { - if (nBytes > 0) - { - // Just repeat message. - PostMessage(hWnd, message, wParam, lParam); - pSocket->m_SocketData.onCloseCalled = true; - pSocket->OnReceive(WSAESHUTDOWN); - break; - } - } - - pSocket->SetState(nErrorCode?aborted:closed); -#endif //NOSOCKETSTATES - pSocket->OnClose(nErrorCode); - break; - } - } -#ifndef NOLAYERS - else //Dispatch notification to the lowest layer - { - if (nEvent == FD_READ) - { - // Ignore further FD_READ events after FD_CLOSE has been received - if (pSocket->m_SocketData.onCloseCalled) - return 0; - - DWORD nBytes; - if (!pSocket->IOCtl(FIONREAD, &nBytes)) - nErrorCode = WSAGetLastError(); - if (nBytes != 0 || nErrorCode != 0) - pSocket->m_pLastLayer->CallEvent(nEvent, nErrorCode); - } - else if (nEvent == FD_CLOSE) - { - // If there are still bytes left to read, call OnReceive instead of - // OnClose and trigger a new OnClose - DWORD nBytes = 0; - if (!nErrorCode && pSocket->IOCtl(FIONREAD, &nBytes)) - { - if (nBytes > 0) - { - // Just repeat message. - pSocket->ResendCloseNotify(); - pSocket->m_pLastLayer->CallEvent(FD_READ, 0); - return 0; - } - } - pSocket->m_SocketData.onCloseCalled = true; - pSocket->m_pLastLayer->CallEvent(nEvent, nErrorCode); - } - else - { - pSocket->m_pLastLayer->CallEvent(nEvent, nErrorCode); - } - } - } -#endif //NOLAYERS - return 0; - } -#ifndef NOLAYERS - else if (message == WM_USER) //Notification event sent by a layer - { - ASSERT(pWnd); - - if (wParam >= static_cast(pWnd->m_nWindowDataSize)) //Index is within socket storage - { - return 0; - } - - CAsyncSocketEx *pSocket=pWnd->m_pAsyncSocketExWindowData[wParam].m_pSocket; - CAsyncSocketExLayer::t_LayerNotifyMsg *pMsg=(CAsyncSocketExLayer::t_LayerNotifyMsg *)lParam; - if (!pMsg || !pSocket || pSocket->m_SocketData.hSocket != pMsg->hSocket) - { - delete pMsg; - return 0; - } - int nEvent=pMsg->lEvent&0xFFFF; - int nErrorCode=pMsg->lEvent>>16; - - //Dispatch to layer - if (pMsg->pLayer) - { - pMsg->pLayer->CallEvent(nEvent, nErrorCode); - } - else - { - //Dispatch to CAsyncSocketEx instance - switch (nEvent) - { - case FD_READ: -#ifndef NOSOCKETSTATES - if (pSocket->GetState() == connecting && !nErrorCode) - { - pSocket->m_nPendingEvents |= FD_READ; - break; - } - else if (pSocket->GetState() == attached && !nErrorCode) - { - pSocket->SetState(connected); - } - if (pSocket->GetState() != connected) - break; -#endif //NOSOCKETSTATES - if (pSocket->m_lEvent & FD_READ) - { -#ifndef NOSOCKETSTATES - if (nErrorCode) - { - pSocket->SetState(aborted); - } -#endif //NOSOCKETSTATES - pSocket->OnReceive(nErrorCode); - } - break; - case FD_FORCEREAD: //Forceread does not check if there's data waiting -#ifndef NOSOCKETSTATES - if (pSocket->GetState() == connecting && !nErrorCode) - { - pSocket->m_nPendingEvents |= FD_FORCEREAD; - break; - } - else if (pSocket->GetState() == attached && !nErrorCode) - { - pSocket->SetState(connected); - } - if (pSocket->GetState() != connected) - break; -#endif //NOSOCKETSTATES - if (pSocket->m_lEvent & FD_READ) - { -#ifndef NOSOCKETSTATES - if (nErrorCode) - { - pSocket->SetState(aborted); - } -#endif //NOSOCKETSTATES - pSocket->OnReceive(nErrorCode); - } - break; - case FD_WRITE: -#ifndef NOSOCKETSTATES - if (pSocket->GetState() == connecting && !nErrorCode) - { - pSocket->m_nPendingEvents |= FD_WRITE; - break; - } - else if (pSocket->GetState() == attached && !nErrorCode) - { - pSocket->SetState(connected); - } - if (pSocket->GetState() != connected) - break; -#endif //NOSOCKETSTATES - if (pSocket->m_lEvent & FD_WRITE) - { -#ifndef NOSOCKETSTATES - if (nErrorCode) - { - pSocket->SetState(aborted); - } -#endif //NOSOCKETSTATES - pSocket->OnSend(nErrorCode); - } - break; - case FD_CONNECT: -#ifndef NOSOCKETSTATES - if (pSocket->GetState() == connecting) - { - pSocket->SetState(connected); - } - else if (pSocket->GetState() == attached && !nErrorCode) - { - pSocket->SetState(connected); - } -#endif //NOSOCKETSTATES - if (pSocket->m_lEvent & FD_CONNECT) - pSocket->OnConnect(nErrorCode); -#ifndef NOSOCKETSTATES - if (!nErrorCode) - { - if (((pSocket->m_nPendingEvents&FD_READ) && pSocket->GetState() == connected) && (pSocket->m_lEvent & FD_READ)) - pSocket->OnReceive(0); - if (((pSocket->m_nPendingEvents&FD_FORCEREAD) && pSocket->GetState() == connected) && (pSocket->m_lEvent & FD_READ)) - pSocket->OnReceive(0); - if (((pSocket->m_nPendingEvents&FD_WRITE) && pSocket->GetState() == connected) && (pSocket->m_lEvent & FD_WRITE)) - pSocket->OnSend(0); - } - pSocket->m_nPendingEvents = 0; -#endif //NOSOCKETSTATES - break; - case FD_ACCEPT: -#ifndef NOSOCKETSTATES - if ((pSocket->GetState() == listening || pSocket->GetState() == attached) && (pSocket->m_lEvent & FD_ACCEPT)) -#endif //NOSOCKETSTATES - { - pSocket->OnAccept(nErrorCode); - } - break; - case FD_CLOSE: -#ifndef NOSOCKETSTATES - if ((pSocket->GetState() == connected || pSocket->GetState() == attached) && (pSocket->m_lEvent & FD_CLOSE)) - { - pSocket->SetState(nErrorCode?aborted:closed); -#else - { -#endif //NOSOCKETSTATES - pSocket->OnClose(nErrorCode); - } - break; - } - } - delete pMsg; - return 0; - } -#endif //NOLAYERS - else if (message == WM_USER+1) - { - ASSERT(pWnd); - // WSAAsyncGetHostByName reply - - // Verify parameters - ASSERT(hWnd); - CAsyncSocketExHelperWindow *pWnd = (CAsyncSocketExHelperWindow *)GetWindowLongPtr(hWnd, GWL_USERDATA); - ASSERT(pWnd); - - CAsyncSocketEx *pSocket = NULL; - for (int i = 0; i < pWnd->m_nWindowDataSize; i++) - { - pSocket = pWnd->m_pAsyncSocketExWindowData[i].m_pSocket; - if (pSocket && pSocket->m_hAsyncGetHostByNameHandle && - pSocket->m_hAsyncGetHostByNameHandle == (HANDLE)wParam) - break; - } - if (!pSocket) - return 0; - - int nErrorCode = lParam >> 16; - if (nErrorCode) - { - pSocket->OnConnect(nErrorCode); - return 0; - } - - SOCKADDR_IN sockAddr; - memset(&sockAddr,0,sizeof(sockAddr)); - sockAddr.sin_family=AF_INET; - sockAddr.sin_addr.s_addr = ((LPIN_ADDR)((LPHOSTENT)pSocket->m_pAsyncGetHostByNameBuffer)->h_addr)->s_addr; - - sockAddr.sin_port = htons(pSocket->m_nAsyncGetHostByNamePort); - - BOOL res = pSocket->Connect((SOCKADDR*)&sockAddr, sizeof(sockAddr)); - delete [] pSocket->m_pAsyncGetHostByNameBuffer; - pSocket->m_pAsyncGetHostByNameBuffer=0; - pSocket->m_hAsyncGetHostByNameHandle=0; - - if (!res) - if (GetLastError()!=WSAEWOULDBLOCK) - pSocket->OnConnect(GetLastError()); - return 0; - } - else if (message == WM_USER + 2) - { - ASSERT(pWnd); - if (wParam >= static_cast(pWnd->m_nWindowDataSize)) //Index is within socket storage - return 0; - - CAsyncSocketEx *pSocket = pWnd->m_pAsyncSocketExWindowData[wParam].m_pSocket; - if (!pSocket) - return 0; - - // Process pending callbacks - std::list tmp; - tmp.swap(pSocket->m_pendingCallbacks); - pSocket->OnLayerCallback(tmp); - } - else if (message == WM_TIMER) - { - ASSERT(pWnd); - if (wParam != 1) - return 0; - - if (pWnd->m_pThreadData->layerCloseNotify.empty()) - { - KillTimer(hWnd, 1); - return 0; - } - CAsyncSocketEx* socket = pWnd->m_pThreadData->layerCloseNotify.front(); - pWnd->m_pThreadData->layerCloseNotify.pop_front(); - if (pWnd->m_pThreadData->layerCloseNotify.empty()) - KillTimer(hWnd, 1); - - PostMessage(hWnd, socket->m_SocketData.nSocketIndex + WM_SOCKETEX_NOTIFY, socket->m_SocketData.hSocket, FD_CLOSE); - return 0; - } - return DefWindowProc(hWnd, message, wParam, lParam); - } - - HWND GetHwnd() - { - return m_hWnd; - } + } + pSocket->SetState(connected); + } + else if (pSocket->GetState() == attached && !nErrorCode) + { + pSocket->SetState(connected); + } + if (pSocket->m_lEvent & FD_CONNECT) + pSocket->OnConnect(nErrorCode); + if (!nErrorCode) + { + if ((pSocket->m_nPendingEvents&FD_READ) && pSocket->GetState() == connected) + pSocket->OnReceive(0); + if ((pSocket->m_nPendingEvents&FD_FORCEREAD) && pSocket->GetState() == connected) + pSocket->OnReceive(0); + if ((pSocket->m_nPendingEvents&FD_WRITE) && pSocket->GetState() == connected) + pSocket->OnSend(0); + } + pSocket->m_nPendingEvents = 0; + break; + case FD_ACCEPT: + if (pSocket->GetState() != listening && pSocket->GetState() != attached) + break; + if (pSocket->m_lEvent & FD_ACCEPT) + pSocket->OnAccept(nErrorCode); + break; + case FD_CLOSE: + if (pSocket->GetState() != connected && pSocket->GetState() != attached) + break; + + // If there are still bytes left to read, call OnReceive instead of + // OnClose and trigger a new OnClose + DWORD nBytes = 0; + if (!nErrorCode && pSocket->IOCtl(FIONREAD, &nBytes)) + { + if (nBytes > 0) + { + // Just repeat message. + PostMessage(hWnd, message, wParam, lParam); + pSocket->m_SocketData.onCloseCalled = true; + pSocket->OnReceive(WSAESHUTDOWN); + break; + } + } + + pSocket->SetState(nErrorCode?aborted:closed); + pSocket->OnClose(nErrorCode); + break; + } + } + else //Dispatch notification to the lowest layer + { + if (nEvent == FD_READ) + { + // Ignore further FD_READ events after FD_CLOSE has been received + if (pSocket->m_SocketData.onCloseCalled) + return 0; + + DWORD nBytes; + if (!pSocket->IOCtl(FIONREAD, &nBytes)) + nErrorCode = WSAGetLastError(); + if (nBytes != 0 || nErrorCode != 0) + pSocket->m_pLastLayer->CallEvent(nEvent, nErrorCode); + } + else if (nEvent == FD_CLOSE) + { + // If there are still bytes left to read, call OnReceive instead of + // OnClose and trigger a new OnClose + DWORD nBytes = 0; + if (!nErrorCode && pSocket->IOCtl(FIONREAD, &nBytes)) + { + if (nBytes > 0) + { + // Just repeat message. + pSocket->ResendCloseNotify(); + pSocket->m_pLastLayer->CallEvent(FD_READ, 0); + return 0; + } + } + pSocket->m_SocketData.onCloseCalled = true; + pSocket->m_pLastLayer->CallEvent(nEvent, nErrorCode); + } + else + { + pSocket->m_pLastLayer->CallEvent(nEvent, nErrorCode); + } + } + } + return 0; + } + else if (message == WM_USER) //Notification event sent by a layer + { + DebugAssert(pWnd); + + if (wParam >= static_cast(pWnd->m_nWindowDataSize)) //Index is within socket storage + { + return 0; + } + + CAsyncSocketEx *pSocket=pWnd->m_pAsyncSocketExWindowData[wParam].m_pSocket; + CAsyncSocketExLayer::t_LayerNotifyMsg *pMsg=(CAsyncSocketExLayer::t_LayerNotifyMsg *)lParam; + if (!pMsg || !pSocket || pSocket->m_SocketData.hSocket != pMsg->hSocket) + { + delete pMsg; + return 0; + } + int nEvent=pMsg->lEvent&0xFFFF; + int nErrorCode=pMsg->lEvent>>16; + + //Dispatch to layer + if (pMsg->pLayer) + { + pMsg->pLayer->CallEvent(nEvent, nErrorCode); + } + else + { + //Dispatch to CAsyncSocketEx instance + switch (nEvent) + { + case FD_READ: + if (pSocket->GetState() == connecting && !nErrorCode) + { + pSocket->m_nPendingEvents |= FD_READ; + break; + } + else if (pSocket->GetState() == attached && !nErrorCode) + { + pSocket->SetState(connected); + } + if (pSocket->GetState() != connected) + break; + if (pSocket->m_lEvent & FD_READ) + { + if (nErrorCode) + { + pSocket->SetState(aborted); + } + pSocket->OnReceive(nErrorCode); + } + break; + case FD_FORCEREAD: //Forceread does not check if there's data waiting + if (pSocket->GetState() == connecting && !nErrorCode) + { + pSocket->m_nPendingEvents |= FD_FORCEREAD; + break; + } + else if (pSocket->GetState() == attached && !nErrorCode) + { + pSocket->SetState(connected); + } + if (pSocket->GetState() != connected) + break; + if (pSocket->m_lEvent & FD_READ) + { + if (nErrorCode) + { + pSocket->SetState(aborted); + } + pSocket->OnReceive(nErrorCode); + } + break; + case FD_WRITE: + if (pSocket->GetState() == connecting && !nErrorCode) + { + pSocket->m_nPendingEvents |= FD_WRITE; + break; + } + else if (pSocket->GetState() == attached && !nErrorCode) + { + pSocket->SetState(connected); + } + if (pSocket->GetState() != connected) + break; + if (pSocket->m_lEvent & FD_WRITE) + { + if (nErrorCode) + { + pSocket->SetState(aborted); + } + pSocket->OnSend(nErrorCode); + } + break; + case FD_CONNECT: + if (pSocket->GetState() == connecting) + { + pSocket->SetState(connected); + } + else if (pSocket->GetState() == attached && !nErrorCode) + { + pSocket->SetState(connected); + } + if (pSocket->m_lEvent & FD_CONNECT) + pSocket->OnConnect(nErrorCode); + if (!nErrorCode) + { + if (((pSocket->m_nPendingEvents&FD_READ) && pSocket->GetState() == connected) && (pSocket->m_lEvent & FD_READ)) + pSocket->OnReceive(0); + if (((pSocket->m_nPendingEvents&FD_FORCEREAD) && pSocket->GetState() == connected) && (pSocket->m_lEvent & FD_READ)) + pSocket->OnReceive(0); + if (((pSocket->m_nPendingEvents&FD_WRITE) && pSocket->GetState() == connected) && (pSocket->m_lEvent & FD_WRITE)) + pSocket->OnSend(0); + } + pSocket->m_nPendingEvents = 0; + break; + case FD_ACCEPT: + if ((pSocket->GetState() == listening || pSocket->GetState() == attached) && (pSocket->m_lEvent & FD_ACCEPT)) + { + pSocket->OnAccept(nErrorCode); + } + break; + case FD_CLOSE: + if ((pSocket->GetState() == connected || pSocket->GetState() == attached) && (pSocket->m_lEvent & FD_CLOSE)) + { + pSocket->SetState(nErrorCode?aborted:closed); + pSocket->OnClose(nErrorCode); + } + break; + } + } + delete pMsg; + return 0; + } + else if (message == WM_USER+1) + { + DebugAssert(pWnd); + // WSAAsyncGetHostByName reply + + // Verify parameters + DebugAssert(hWnd); + CAsyncSocketExHelperWindow *pWnd = (CAsyncSocketExHelperWindow *)GetWindowLongPtr(hWnd, GWL_USERDATA); + DebugAssert(pWnd); + + CAsyncSocketEx *pSocket = NULL; + for (int i = 0; i < pWnd->m_nWindowDataSize; i++) + { + pSocket = pWnd->m_pAsyncSocketExWindowData[i].m_pSocket; + if (pSocket && pSocket->m_hAsyncGetHostByNameHandle && + pSocket->m_hAsyncGetHostByNameHandle == (HANDLE)wParam) + break; + } + if (!pSocket) + return 0; + + int nErrorCode = lParam >> 16; + if (nErrorCode) + { + pSocket->OnConnect(nErrorCode); + return 0; + } + + SOCKADDR_IN sockAddr; + memset(&sockAddr,0,sizeof(sockAddr)); + sockAddr.sin_family=AF_INET; + sockAddr.sin_addr.s_addr = ((LPIN_ADDR)((LPHOSTENT)pSocket->m_pAsyncGetHostByNameBuffer)->h_addr)->s_addr; + + sockAddr.sin_port = htons(pSocket->m_nAsyncGetHostByNamePort); + + BOOL res = pSocket->Connect((SOCKADDR*)&sockAddr, sizeof(sockAddr)); + delete [] pSocket->m_pAsyncGetHostByNameBuffer; + pSocket->m_pAsyncGetHostByNameBuffer=0; + pSocket->m_hAsyncGetHostByNameHandle=0; + + if (!res) + if (GetLastError()!=WSAEWOULDBLOCK) + pSocket->OnConnect(GetLastError()); + return 0; + } + else if (message == WM_USER + 2) + { + DebugAssert(pWnd); + if (wParam >= static_cast(pWnd->m_nWindowDataSize)) //Index is within socket storage + return 0; + + CAsyncSocketEx *pSocket = pWnd->m_pAsyncSocketExWindowData[wParam].m_pSocket; + if (!pSocket) + return 0; + + // Process pending callbacks + std::list tmp; + tmp.swap(pSocket->m_pendingCallbacks); + pSocket->OnLayerCallback(tmp); + } + else if (message == WM_TIMER) + { + DebugAssert(pWnd); + if (wParam != 1) + return 0; + + if (pWnd->m_pThreadData->layerCloseNotify.empty()) + { + KillTimer(hWnd, 1); + return 0; + } + CAsyncSocketEx* socket = pWnd->m_pThreadData->layerCloseNotify.front(); + pWnd->m_pThreadData->layerCloseNotify.pop_front(); + if (pWnd->m_pThreadData->layerCloseNotify.empty()) + KillTimer(hWnd, 1); + + PostMessage(hWnd, socket->m_SocketData.nSocketIndex + WM_SOCKETEX_NOTIFY, socket->m_SocketData.hSocket, FD_CLOSE); + return 0; + } + return DefWindowProc(hWnd, message, wParam, lParam); + } + + HWND GetHwnd() + { + return m_hWnd; + } private: - HWND m_hWnd; - struct t_AsyncSocketExWindowData - { - CAsyncSocketEx *m_pSocket; - } *m_pAsyncSocketExWindowData; - int m_nWindowDataSize; - int m_nWindowDataPos; - int m_nSocketCount; - CAsyncSocketEx::t_AsyncSocketExThreadData* m_pThreadData; + HWND m_hWnd; + struct t_AsyncSocketExWindowData + { + CAsyncSocketEx *m_pSocket; + } *m_pAsyncSocketExWindowData; + int m_nWindowDataSize; + int m_nWindowDataPos; + int m_nSocketCount; + CAsyncSocketEx::t_AsyncSocketExThreadData* m_pThreadData; }; ////////////////////////////////////////////////////////////////////// @@ -780,136 +623,122 @@ class CAsyncSocketExHelperWindow CAsyncSocketEx::CAsyncSocketEx() { - m_SocketData.hSocket = INVALID_SOCKET; - m_SocketData.nSocketIndex = -1; - m_SocketData.nFamily = AF_UNSPEC; - m_SocketData.onCloseCalled = false; - m_pLocalAsyncSocketExThreadData = 0; - -#ifndef NOSOCKETSTATES - m_nPendingEvents = 0; - m_nState = notsock; -#endif //NOSOCKETSTATES - -#ifndef NOLAYERS - m_pFirstLayer = 0; - m_pLastLayer = 0; -#endif //NOLAYERS - m_lEvent = 0; - m_pAsyncGetHostByNameBuffer = NULL; - m_hAsyncGetHostByNameHandle = NULL; - m_nAsyncGetHostByNamePort = 0; - - m_nSocketPort = 0; - m_lpszSocketAddress = 0; - - m_SocketData.addrInfo = 0; - m_SocketData.nextAddr = 0; + m_SocketData.hSocket = INVALID_SOCKET; + m_SocketData.nSocketIndex = -1; + m_SocketData.nFamily = AF_UNSPEC; + m_SocketData.onCloseCalled = false; + m_pLocalAsyncSocketExThreadData = 0; + + m_nPendingEvents = 0; + m_nState = notsock; + + m_pFirstLayer = 0; + m_pLastLayer = 0; + m_lEvent = 0; + m_pAsyncGetHostByNameBuffer = NULL; + m_hAsyncGetHostByNameHandle = NULL; + m_nAsyncGetHostByNamePort = 0; + + m_nSocketPort = 0; + m_lpszSocketAddress = 0; + + m_SocketData.addrInfo = 0; + m_SocketData.nextAddr = 0; } CAsyncSocketEx::~CAsyncSocketEx() { - Close(); - FreeAsyncSocketExInstance(); + Close(); + FreeAsyncSocketExInstance(); } BOOL CAsyncSocketEx::Create(UINT nSocketPort /*=0*/, int nSocketType /*=SOCK_STREAM*/, long lEvent /*=FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE*/, LPCTSTR lpszSocketAddress /*=NULL*/, int nFamily /*=AF_INET*/) { - ASSERT(GetSocketHandle() == INVALID_SOCKET); - - //Close the socket, although this should not happen - if (GetSocketHandle() != INVALID_SOCKET) - { - WSASetLastError(WSAEALREADY); - return FALSE; - } - - BOOL res = InitAsyncSocketExInstance(); - ASSERT(res); - if (!res) - { - WSASetLastError(WSANOTINITIALISED); - return FALSE; - } - - m_SocketData.nFamily = nFamily; - -#ifndef NOLAYERS - if (m_pFirstLayer) - { - BOOL res = m_pFirstLayer->Create(nSocketPort, nSocketType, lEvent, lpszSocketAddress, nFamily); -#ifndef NOSOCKETSTATES - if (res) - { - SetState(unconnected); - } -#endif //NOSOCKETSTATES - return res; - } - else -#endif //NOLAYERS - { - if (m_SocketData.nFamily == AF_UNSPEC) - { -#ifndef NOSOCKETSTATES - SetState(unconnected); -#endif //NOSOCKETSTATES - m_lEvent = lEvent; - - m_nSocketPort = nSocketPort; - - delete [] m_lpszSocketAddress; - if (lpszSocketAddress && *lpszSocketAddress) - { - m_lpszSocketAddress = new TCHAR[_tcslen(lpszSocketAddress) + 1]; - _tcscpy(m_lpszSocketAddress, lpszSocketAddress); - } - else - m_lpszSocketAddress = 0; - - return TRUE; - } - else - { - SOCKET hSocket = socket(m_SocketData.nFamily, nSocketType, 0); - if (hSocket == INVALID_SOCKET) - return FALSE; - m_SocketData.hSocket = hSocket; - AttachHandle(hSocket); - -#ifndef NOLAYERS - if (m_pFirstLayer) - { - m_lEvent = lEvent; - if (WSAAsyncSelect(m_SocketData.hSocket, GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE) ) - { - Close(); - return FALSE; - } - } - else -#endif //NOLAYERS - { - if (!AsyncSelect(lEvent)) - { - Close(); - return FALSE; - } - } - - if (!Bind(nSocketPort, lpszSocketAddress)) - { - Close(); - return FALSE; - } - -#ifndef NOSOCKETSTATES - SetState(unconnected); -#endif //NOSOCKETSTATES - - return TRUE; - } - } + DebugAssert(GetSocketHandle() == INVALID_SOCKET); + + //Close the socket, although this should not happen + if (GetSocketHandle() != INVALID_SOCKET) + { + WSASetLastError(WSAEALREADY); + return FALSE; + } + + BOOL res = InitAsyncSocketExInstance(); + DebugAssert(res); + if (!res) + { + WSASetLastError(WSANOTINITIALISED); + return FALSE; + } + + m_SocketData.nFamily = nFamily; + + if (m_pFirstLayer) + { + BOOL res = m_pFirstLayer->Create(nSocketPort, nSocketType, lEvent, lpszSocketAddress, nFamily); + if (res) + { + SetState(unconnected); + } + return res; + } + else + { + if (m_SocketData.nFamily == AF_UNSPEC) + { + SetState(unconnected); + m_lEvent = lEvent; + + m_nSocketPort = nSocketPort; + + delete [] m_lpszSocketAddress; + if (lpszSocketAddress && *lpszSocketAddress) + { + m_lpszSocketAddress = new TCHAR[_tcslen(lpszSocketAddress) + 1]; + _tcscpy(m_lpszSocketAddress, lpszSocketAddress); + } + else + m_lpszSocketAddress = 0; + + return TRUE; + } + else + { + SOCKET hSocket = socket(m_SocketData.nFamily, nSocketType, 0); + if (hSocket == INVALID_SOCKET) + return FALSE; + m_SocketData.hSocket = hSocket; + AttachHandle(hSocket); + + if (m_pFirstLayer) + { + m_lEvent = lEvent; + if (WSAAsyncSelect(m_SocketData.hSocket, GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE) ) + { + Close(); + return FALSE; + } + } + else + { + if (!AsyncSelect(lEvent)) + { + Close(); + return FALSE; + } + } + + if (!Bind(nSocketPort, lpszSocketAddress)) + { + Close(); + return FALSE; + } + + SetState(unconnected); + + return TRUE; + } + } } void CAsyncSocketEx::OnReceive(int nErrorCode) @@ -934,837 +763,783 @@ void CAsyncSocketEx::OnClose(int nErrorCode) BOOL CAsyncSocketEx::Bind(UINT nSocketPort, LPCTSTR lpszSocketAddress) { - delete [] m_lpszSocketAddress; - if (lpszSocketAddress && *lpszSocketAddress) - { - m_lpszSocketAddress = new TCHAR[_tcslen(lpszSocketAddress) + 1]; - _tcscpy(m_lpszSocketAddress, lpszSocketAddress); - } - else - m_lpszSocketAddress = 0; - m_nSocketPort = nSocketPort; - - if (m_SocketData.nFamily == AF_UNSPEC) - return TRUE; - - USES_CONVERSION; - - LPSTR lpszAscii = (lpszSocketAddress && *lpszSocketAddress) ? T2A((LPTSTR)lpszSocketAddress) : 0; - - if ((m_SocketData.nFamily == AF_INET6 || m_SocketData.nFamily == AF_INET) && lpszAscii) - { - addrinfo hints, *res0, *res; - int error; - char port[10]; - BOOL ret = FALSE; - - memset(&hints, 0, sizeof(addrinfo)); - hints.ai_family = m_SocketData.nFamily; - hints.ai_socktype = SOCK_STREAM; - _snprintf(port, 9, "%lu", nSocketPort); - error = getaddrinfo(lpszAscii, port, &hints, &res0); - if (error) - return FALSE; - - for (res = res0; res; res = res->ai_next) - if (Bind(res->ai_addr, res->ai_addrlen)) - { - ret = TRUE; - break; - } - else - continue ; - - freeaddrinfo(res0); - - return ret ; - } - else if (!lpszAscii && m_SocketData.nFamily == AF_INET6) - { - SOCKADDR_IN6 sockAddr6; - - memset(&sockAddr6, 0, sizeof(sockAddr6)); - sockAddr6.sin6_family = AF_INET6 ; - sockAddr6.sin6_addr = in6addr_any ; - sockAddr6.sin6_port = htons((u_short)nSocketPort); - - return Bind((SOCKADDR*)&sockAddr6, sizeof(sockAddr6)); - } - else if (!lpszAscii && m_SocketData.nFamily == AF_INET) - { - SOCKADDR_IN sockAddr; - - memset(&sockAddr, 0, sizeof(sockAddr)); - sockAddr.sin_family = AF_INET ; - sockAddr.sin_addr.s_addr = INADDR_ANY ; - sockAddr.sin_port = htons((u_short)nSocketPort); - - return Bind((SOCKADDR*)&sockAddr, sizeof(sockAddr)); - } - else - return FALSE ; + delete [] m_lpszSocketAddress; + if (lpszSocketAddress && *lpszSocketAddress) + { + m_lpszSocketAddress = new TCHAR[_tcslen(lpszSocketAddress) + 1]; + _tcscpy(m_lpszSocketAddress, lpszSocketAddress); + } + else + m_lpszSocketAddress = 0; + m_nSocketPort = nSocketPort; + + if (m_SocketData.nFamily == AF_UNSPEC) + return TRUE; + + USES_CONVERSION; + + LPSTR lpszAscii = (lpszSocketAddress && *lpszSocketAddress) ? T2A((LPTSTR)lpszSocketAddress) : 0; + + if ((m_SocketData.nFamily == AF_INET6 || m_SocketData.nFamily == AF_INET) && lpszAscii) + { + addrinfo hints, *res0, *res; + int error; + char port[10]; + BOOL ret = FALSE; + + memset(&hints, 0, sizeof(addrinfo)); + hints.ai_family = m_SocketData.nFamily; + hints.ai_socktype = SOCK_STREAM; + _snprintf(port, 9, "%lu", nSocketPort); + error = getaddrinfo(lpszAscii, port, &hints, &res0); + if (error) + return FALSE; + + for (res = res0; res; res = res->ai_next) + if (Bind(res->ai_addr, res->ai_addrlen)) + { + ret = TRUE; + break; + } + else + continue ; + + freeaddrinfo(res0); + + return ret ; + } + else if (!lpszAscii && m_SocketData.nFamily == AF_INET6) + { + SOCKADDR_IN6 sockAddr6; + + memset(&sockAddr6, 0, sizeof(sockAddr6)); + sockAddr6.sin6_family = AF_INET6 ; + sockAddr6.sin6_addr = in6addr_any ; + sockAddr6.sin6_port = htons((u_short)nSocketPort); + + return Bind((SOCKADDR*)&sockAddr6, sizeof(sockAddr6)); + } + else if (!lpszAscii && m_SocketData.nFamily == AF_INET) + { + SOCKADDR_IN sockAddr; + + memset(&sockAddr, 0, sizeof(sockAddr)); + sockAddr.sin_family = AF_INET ; + sockAddr.sin_addr.s_addr = INADDR_ANY ; + sockAddr.sin_port = htons((u_short)nSocketPort); + + return Bind((SOCKADDR*)&sockAddr, sizeof(sockAddr)); + } + else + return FALSE ; } BOOL CAsyncSocketEx::Bind(const SOCKADDR* lpSockAddr, int nSockAddrLen) { - if (!bind(m_SocketData.hSocket, lpSockAddr, nSockAddrLen)) - return TRUE; - else - return FALSE; + if (!bind(m_SocketData.hSocket, lpSockAddr, nSockAddrLen)) + return TRUE; + else + return FALSE; } void CAsyncSocketEx::AttachHandle(SOCKET hSocket) { - ASSERT(m_pLocalAsyncSocketExThreadData); - VERIFY(m_pLocalAsyncSocketExThreadData->m_pHelperWindow->AddSocket(this, m_SocketData.nSocketIndex)); -#ifndef NOSOCKETSTATES - SetState(attached); -#endif //NOSOCKETSTATES + DebugAssert(m_pLocalAsyncSocketExThreadData); + VERIFY(m_pLocalAsyncSocketExThreadData->m_pHelperWindow->AddSocket(this, m_SocketData.nSocketIndex)); + SetState(attached); } void CAsyncSocketEx::DetachHandle(SOCKET hSocket) { - ASSERT(m_pLocalAsyncSocketExThreadData); - if (!m_pLocalAsyncSocketExThreadData) - return; - ASSERT(m_pLocalAsyncSocketExThreadData->m_pHelperWindow); - if (!m_pLocalAsyncSocketExThreadData->m_pHelperWindow) - return; - VERIFY(m_pLocalAsyncSocketExThreadData->m_pHelperWindow->RemoveSocket(this, m_SocketData.nSocketIndex)); -#ifndef NOSOCKETSTATES - SetState(notsock); -#endif //NOSOCKETSTATES + DebugAssert(m_pLocalAsyncSocketExThreadData); + if (!m_pLocalAsyncSocketExThreadData) + return; + DebugAssert(m_pLocalAsyncSocketExThreadData->m_pHelperWindow); + if (!m_pLocalAsyncSocketExThreadData->m_pHelperWindow) + return; + VERIFY(m_pLocalAsyncSocketExThreadData->m_pHelperWindow->RemoveSocket(this, m_SocketData.nSocketIndex)); + SetState(notsock); } void CAsyncSocketEx::Close() { -#ifndef NOSOCKETSTATES - m_nPendingEvents = 0; -#endif //NOSOCKETSTATES -#ifndef NOLAYERS - if (m_pFirstLayer) - m_pFirstLayer->Close(); -#endif //NOLAYERS - if (m_SocketData.hSocket != INVALID_SOCKET) - { - VERIFY((closesocket(m_SocketData.hSocket) != SOCKET_ERROR)); - DetachHandle(m_SocketData.hSocket); - m_SocketData.hSocket = INVALID_SOCKET; - } - if (m_SocketData.addrInfo) - { - freeaddrinfo(m_SocketData.addrInfo); - m_SocketData.addrInfo = 0; - m_SocketData.nextAddr = 0; - } - m_SocketData.nFamily = AF_UNSPEC; - delete [] m_lpszSocketAddress; - m_lpszSocketAddress = 0; - m_nSocketPort = 0; -#ifndef NOLAYERS - RemoveAllLayers(); -#endif //NOLAYERS - delete [] m_pAsyncGetHostByNameBuffer; - m_pAsyncGetHostByNameBuffer = NULL; - if (m_hAsyncGetHostByNameHandle) - WSACancelAsyncRequest(m_hAsyncGetHostByNameHandle); - m_hAsyncGetHostByNameHandle = NULL; - m_SocketData.onCloseCalled = false; + m_nPendingEvents = 0; + if (m_pFirstLayer) + m_pFirstLayer->Close(); + if (m_SocketData.hSocket != INVALID_SOCKET) + { + VERIFY((closesocket(m_SocketData.hSocket) != SOCKET_ERROR)); + DetachHandle(m_SocketData.hSocket); + m_SocketData.hSocket = INVALID_SOCKET; + } + if (m_SocketData.addrInfo) + { + freeaddrinfo(m_SocketData.addrInfo); + m_SocketData.addrInfo = 0; + m_SocketData.nextAddr = 0; + } + m_SocketData.nFamily = AF_UNSPEC; + delete [] m_lpszSocketAddress; + m_lpszSocketAddress = 0; + m_nSocketPort = 0; + RemoveAllLayers(); + delete [] m_pAsyncGetHostByNameBuffer; + m_pAsyncGetHostByNameBuffer = NULL; + if (m_hAsyncGetHostByNameHandle) + WSACancelAsyncRequest(m_hAsyncGetHostByNameHandle); + m_hAsyncGetHostByNameHandle = NULL; + m_SocketData.onCloseCalled = false; } BOOL CAsyncSocketEx::InitAsyncSocketExInstance() { - //Check if already initialized - if (m_pLocalAsyncSocketExThreadData) - return TRUE; - - DWORD id=GetCurrentThreadId(); - - m_sGlobalCriticalSection.Lock(); - - //Get thread specific data - if (m_spAsyncSocketExThreadDataList) - { - t_AsyncSocketExThreadDataList *pList=m_spAsyncSocketExThreadDataList; - while (pList) - { - ASSERT(pList->pThreadData); - ASSERT(pList->pThreadData->nInstanceCount>0); - - if (pList->pThreadData->nThreadId==id) - { - m_pLocalAsyncSocketExThreadData=pList->pThreadData; - m_pLocalAsyncSocketExThreadData->nInstanceCount++; - break; - } - pList=pList->pNext; - } - //Current thread yet has no sockets - if (!pList) - { - //Initialize data for current thread - pList=new t_AsyncSocketExThreadDataList; - pList->pNext=m_spAsyncSocketExThreadDataList; - m_spAsyncSocketExThreadDataList=pList; - m_pLocalAsyncSocketExThreadData=new t_AsyncSocketExThreadData; - m_pLocalAsyncSocketExThreadData->nInstanceCount=1; - m_pLocalAsyncSocketExThreadData->nThreadId=id; - m_pLocalAsyncSocketExThreadData->m_pHelperWindow=new CAsyncSocketExHelperWindow(m_pLocalAsyncSocketExThreadData); - m_spAsyncSocketExThreadDataList->pThreadData=m_pLocalAsyncSocketExThreadData; - } - } - else - { //No thread has instances of CAsyncSocketEx; Initialize data - m_spAsyncSocketExThreadDataList=new t_AsyncSocketExThreadDataList; - m_spAsyncSocketExThreadDataList->pNext=0; - m_pLocalAsyncSocketExThreadData=new t_AsyncSocketExThreadData; - m_pLocalAsyncSocketExThreadData->nInstanceCount=1; - m_pLocalAsyncSocketExThreadData->nThreadId=id; - m_pLocalAsyncSocketExThreadData->m_pHelperWindow=new CAsyncSocketExHelperWindow(m_pLocalAsyncSocketExThreadData); - m_spAsyncSocketExThreadDataList->pThreadData=m_pLocalAsyncSocketExThreadData; - } - m_sGlobalCriticalSection.Unlock(); - return TRUE; + //Check if already initialized + if (m_pLocalAsyncSocketExThreadData) + return TRUE; + + DWORD id=GetCurrentThreadId(); + + m_sGlobalCriticalSection.Lock(); + + //Get thread specific data + if (m_spAsyncSocketExThreadDataList) + { + t_AsyncSocketExThreadDataList *pList=m_spAsyncSocketExThreadDataList; + while (pList) + { + DebugAssert(pList->pThreadData); + DebugAssert(pList->pThreadData->nInstanceCount>0); + + if (pList->pThreadData->nThreadId==id) + { + m_pLocalAsyncSocketExThreadData=pList->pThreadData; + m_pLocalAsyncSocketExThreadData->nInstanceCount++; + break; + } + pList=pList->pNext; + } + //Current thread yet has no sockets + if (!pList) + { + //Initialize data for current thread + pList=new t_AsyncSocketExThreadDataList; + pList->pNext=m_spAsyncSocketExThreadDataList; + m_spAsyncSocketExThreadDataList=pList; + m_pLocalAsyncSocketExThreadData=new t_AsyncSocketExThreadData; + m_pLocalAsyncSocketExThreadData->nInstanceCount=1; + m_pLocalAsyncSocketExThreadData->nThreadId=id; + m_pLocalAsyncSocketExThreadData->m_pHelperWindow=new CAsyncSocketExHelperWindow(m_pLocalAsyncSocketExThreadData); + m_spAsyncSocketExThreadDataList->pThreadData=m_pLocalAsyncSocketExThreadData; + } + } + else + { //No thread has instances of CAsyncSocketEx; Initialize data + m_spAsyncSocketExThreadDataList=new t_AsyncSocketExThreadDataList; + m_spAsyncSocketExThreadDataList->pNext=0; + m_pLocalAsyncSocketExThreadData=new t_AsyncSocketExThreadData; + m_pLocalAsyncSocketExThreadData->nInstanceCount=1; + m_pLocalAsyncSocketExThreadData->nThreadId=id; + m_pLocalAsyncSocketExThreadData->m_pHelperWindow=new CAsyncSocketExHelperWindow(m_pLocalAsyncSocketExThreadData); + m_spAsyncSocketExThreadDataList->pThreadData=m_pLocalAsyncSocketExThreadData; + } + m_sGlobalCriticalSection.Unlock(); + return TRUE; } void CAsyncSocketEx::FreeAsyncSocketExInstance() { - //Check if already freed - if (!m_pLocalAsyncSocketExThreadData) - return; - - for (std::list::iterator iter = m_pLocalAsyncSocketExThreadData->layerCloseNotify.begin(); iter != m_pLocalAsyncSocketExThreadData->layerCloseNotify.end(); iter++) - { - if (*iter != this) - continue; - - m_pLocalAsyncSocketExThreadData->layerCloseNotify.erase(iter); - if (m_pLocalAsyncSocketExThreadData->layerCloseNotify.empty()) - KillTimer(m_pLocalAsyncSocketExThreadData->m_pHelperWindow->GetHwnd(), 1); - break; - } - - DWORD id=m_pLocalAsyncSocketExThreadData->nThreadId; - m_sGlobalCriticalSection.Lock(); - - ASSERT(m_spAsyncSocketExThreadDataList); - t_AsyncSocketExThreadDataList *pList=m_spAsyncSocketExThreadDataList; - t_AsyncSocketExThreadDataList *pPrev=0; - - //Serach for data for current thread and decrease instance count - while (pList) - { - ASSERT(pList->pThreadData); - ASSERT(pList->pThreadData->nInstanceCount>0); - - if (pList->pThreadData->nThreadId==id) - { - ASSERT(m_pLocalAsyncSocketExThreadData==pList->pThreadData); - m_pLocalAsyncSocketExThreadData->nInstanceCount--; - - //Freeing last instance? - //If so, destroy helper window - if (!m_pLocalAsyncSocketExThreadData->nInstanceCount) - { - delete m_pLocalAsyncSocketExThreadData->m_pHelperWindow; - delete m_pLocalAsyncSocketExThreadData; - if (pPrev) - pPrev->pNext=pList->pNext; - else - m_spAsyncSocketExThreadDataList=pList->pNext; - delete pList; - break; - } - - break; - } - pPrev=pList; - pList=pList->pNext; - ASSERT(pList); - } - - m_sGlobalCriticalSection.Unlock(); + //Check if already freed + if (!m_pLocalAsyncSocketExThreadData) + return; + + for (std::list::iterator iter = m_pLocalAsyncSocketExThreadData->layerCloseNotify.begin(); iter != m_pLocalAsyncSocketExThreadData->layerCloseNotify.end(); iter++) + { + if (*iter != this) + continue; + + m_pLocalAsyncSocketExThreadData->layerCloseNotify.erase(iter); + if (m_pLocalAsyncSocketExThreadData->layerCloseNotify.empty()) + KillTimer(m_pLocalAsyncSocketExThreadData->m_pHelperWindow->GetHwnd(), 1); + break; + } + + DWORD id=m_pLocalAsyncSocketExThreadData->nThreadId; + m_sGlobalCriticalSection.Lock(); + + DebugAssert(m_spAsyncSocketExThreadDataList); + t_AsyncSocketExThreadDataList *pList=m_spAsyncSocketExThreadDataList; + t_AsyncSocketExThreadDataList *pPrev=0; + + //Serach for data for current thread and decrease instance count + while (pList) + { + DebugAssert(pList->pThreadData); + DebugAssert(pList->pThreadData->nInstanceCount>0); + + if (pList->pThreadData->nThreadId==id) + { + DebugAssert(m_pLocalAsyncSocketExThreadData==pList->pThreadData); + m_pLocalAsyncSocketExThreadData->nInstanceCount--; + + //Freeing last instance? + //If so, destroy helper window + if (!m_pLocalAsyncSocketExThreadData->nInstanceCount) + { + delete m_pLocalAsyncSocketExThreadData->m_pHelperWindow; + delete m_pLocalAsyncSocketExThreadData; + if (pPrev) + pPrev->pNext=pList->pNext; + else + m_spAsyncSocketExThreadDataList=pList->pNext; + delete pList; + break; + } + + break; + } + pPrev=pList; + pList=pList->pNext; + DebugAssert(pList); + } + + m_sGlobalCriticalSection.Unlock(); } int CAsyncSocketEx::Receive(void* lpBuf, int nBufLen, int nFlags /*=0*/) { -#ifndef NOLAYERS - if (m_pFirstLayer) - return m_pFirstLayer->Receive(lpBuf, nBufLen, nFlags); - else -#endif //NOLAYERS - return recv(m_SocketData.hSocket, (LPSTR)lpBuf, nBufLen, nFlags); + if (m_pFirstLayer) + return m_pFirstLayer->Receive(lpBuf, nBufLen, nFlags); + else + return recv(m_SocketData.hSocket, (LPSTR)lpBuf, nBufLen, nFlags); } int CAsyncSocketEx::Send(const void* lpBuf, int nBufLen, int nFlags /*=0*/) { -#ifndef NOLAYERS - if (m_pFirstLayer) - { - return m_pFirstLayer->Send(lpBuf, nBufLen, nFlags); - } - else -#endif //NOLAYERS - { - return send(m_SocketData.hSocket, (LPSTR)lpBuf, nBufLen, nFlags); - } + if (m_pFirstLayer) + { + return m_pFirstLayer->Send(lpBuf, nBufLen, nFlags); + } + else + { + return send(m_SocketData.hSocket, (LPSTR)lpBuf, nBufLen, nFlags); + } } BOOL CAsyncSocketEx::Connect(LPCTSTR lpszHostAddress, UINT nHostPort) { -#ifndef NOLAYERS - if (m_pFirstLayer) - { - BOOL res = m_pFirstLayer->Connect(lpszHostAddress, nHostPort); -#ifndef NOSOCKETSTATES - if (res || GetLastError()==WSAEWOULDBLOCK) - { - SetState(connecting); - } -#endif //NOSOCKETSTATES - return res; - } else -#endif //NOLAYERS - if (m_SocketData.nFamily == AF_INET) - { - USES_CONVERSION; - - ASSERT(lpszHostAddress != NULL); - - SOCKADDR_IN sockAddr; - memset(&sockAddr,0,sizeof(sockAddr)); - - LPSTR lpszAscii = T2A((LPTSTR)lpszHostAddress); - sockAddr.sin_family = AF_INET; - sockAddr.sin_addr.s_addr = inet_addr(lpszAscii); - - if (sockAddr.sin_addr.s_addr == INADDR_NONE) - { - if (m_pAsyncGetHostByNameBuffer) - delete [] m_pAsyncGetHostByNameBuffer; - m_pAsyncGetHostByNameBuffer=new char[MAXGETHOSTSTRUCT]; - - m_nAsyncGetHostByNamePort=nHostPort; - - m_hAsyncGetHostByNameHandle=WSAAsyncGetHostByName(GetHelperWindowHandle(), WM_USER+1, lpszAscii, m_pAsyncGetHostByNameBuffer, MAXGETHOSTSTRUCT); - if (!m_hAsyncGetHostByNameHandle) - return FALSE; - - WSASetLastError(WSAEWOULDBLOCK); -#ifndef NOSOCKETSTATES - SetState(connecting); -#endif //NOSOCKETSTATES - return FALSE; - } - - sockAddr.sin_port = htons((u_short)nHostPort); - - return CAsyncSocketEx::Connect((SOCKADDR*)&sockAddr, sizeof(sockAddr)); - } - else - { - USES_CONVERSION; - - ASSERT( lpszHostAddress != NULL ); - - if (m_SocketData.addrInfo) - { - freeaddrinfo(m_SocketData.addrInfo); - m_SocketData.addrInfo = 0; - m_SocketData.nextAddr = 0; - } - - addrinfo hints; - int error; - BOOL ret; - char port[10]; - - memset(&hints, 0, sizeof(addrinfo)); - hints.ai_family = m_SocketData.nFamily; - hints.ai_socktype = SOCK_STREAM; - _snprintf(port, 9, "%lu", nHostPort); - error = getaddrinfo(T2CA(lpszHostAddress), port, &hints, &m_SocketData.addrInfo); - if (error) - return FALSE; - - for (m_SocketData.nextAddr = m_SocketData.addrInfo; m_SocketData.nextAddr; m_SocketData.nextAddr = m_SocketData.nextAddr->ai_next) - { - bool newSocket = false; - if (m_SocketData.nFamily == AF_UNSPEC) - { - newSocket = true; - m_SocketData.hSocket = socket(m_SocketData.nextAddr->ai_family, m_SocketData.nextAddr->ai_socktype, m_SocketData.nextAddr->ai_protocol); - - if (m_SocketData.hSocket == INVALID_SOCKET) - continue; - - m_SocketData.nFamily = m_SocketData.nextAddr->ai_family; - AttachHandle(m_SocketData.hSocket); - if (!AsyncSelect(m_lEvent)) - { - if (newSocket) - { - DetachHandle(m_SocketData.hSocket); - closesocket(m_SocketData.hSocket); - m_SocketData.hSocket = INVALID_SOCKET; - } - continue; - } - } - else if (m_SocketData.hSocket == INVALID_SOCKET) - continue; - -#ifndef NOLAYERS - if (m_pFirstLayer) - { - if (WSAAsyncSelect(m_SocketData.hSocket, GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE)) - { - if (newSocket) - { - m_SocketData.nFamily = AF_UNSPEC; - DetachHandle(m_SocketData.hSocket); - closesocket(m_SocketData.hSocket); - m_SocketData.hSocket = INVALID_SOCKET; - } - continue; - } - } -#endif //NOLAYERS - - if (newSocket) - { - m_SocketData.nFamily = m_SocketData.nextAddr->ai_family; - if (!Bind(m_nSocketPort, m_lpszSocketAddress)) - { - m_SocketData.nFamily = AF_UNSPEC; - DetachHandle(m_SocketData.hSocket); - closesocket(m_SocketData.hSocket); - m_SocketData.hSocket = INVALID_SOCKET; - continue; - } - } - - if (!(ret = CAsyncSocketEx::Connect(m_SocketData.nextAddr->ai_addr, m_SocketData.nextAddr->ai_addrlen)) && GetLastError() != WSAEWOULDBLOCK) - { - if (newSocket) - { - m_SocketData.nFamily = AF_UNSPEC; - DetachHandle(m_SocketData.hSocket); - closesocket(m_SocketData.hSocket); - m_SocketData.hSocket = INVALID_SOCKET; - } - continue; - } - - break; - } - - if (m_SocketData.nextAddr) - m_SocketData.nextAddr = m_SocketData.nextAddr->ai_next; - - if (!m_SocketData.nextAddr) - { - freeaddrinfo(m_SocketData.addrInfo); - m_SocketData.nextAddr = 0; - m_SocketData.addrInfo = 0; - } - - if (m_SocketData.hSocket == INVALID_SOCKET || !ret) - return FALSE; - else - return TRUE; - } + if (m_pFirstLayer) + { + BOOL res = m_pFirstLayer->Connect(lpszHostAddress, nHostPort); + if (res || GetLastError()==WSAEWOULDBLOCK) + { + SetState(connecting); + } + return res; + } else + if (m_SocketData.nFamily == AF_INET) + { + USES_CONVERSION; + + DebugAssert(lpszHostAddress != NULL); + + SOCKADDR_IN sockAddr; + memset(&sockAddr,0,sizeof(sockAddr)); + + LPSTR lpszAscii = T2A((LPTSTR)lpszHostAddress); + sockAddr.sin_family = AF_INET; + sockAddr.sin_addr.s_addr = inet_addr(lpszAscii); + + if (sockAddr.sin_addr.s_addr == INADDR_NONE) + { + if (m_pAsyncGetHostByNameBuffer) + delete [] m_pAsyncGetHostByNameBuffer; + m_pAsyncGetHostByNameBuffer=new char[MAXGETHOSTSTRUCT]; + + m_nAsyncGetHostByNamePort=nHostPort; + + m_hAsyncGetHostByNameHandle=WSAAsyncGetHostByName(GetHelperWindowHandle(), WM_USER+1, lpszAscii, m_pAsyncGetHostByNameBuffer, MAXGETHOSTSTRUCT); + if (!m_hAsyncGetHostByNameHandle) + return FALSE; + + WSASetLastError(WSAEWOULDBLOCK); + SetState(connecting); + return FALSE; + } + + sockAddr.sin_port = htons((u_short)nHostPort); + + return CAsyncSocketEx::Connect((SOCKADDR*)&sockAddr, sizeof(sockAddr)); + } + else + { + USES_CONVERSION; + + DebugAssert( lpszHostAddress != NULL ); + + if (m_SocketData.addrInfo) + { + freeaddrinfo(m_SocketData.addrInfo); + m_SocketData.addrInfo = 0; + m_SocketData.nextAddr = 0; + } + + addrinfo hints; + int error; + BOOL ret; + char port[10]; + + memset(&hints, 0, sizeof(addrinfo)); + hints.ai_family = m_SocketData.nFamily; + hints.ai_socktype = SOCK_STREAM; + _snprintf(port, 9, "%lu", nHostPort); + error = getaddrinfo(T2CA(lpszHostAddress), port, &hints, &m_SocketData.addrInfo); + if (error) + return FALSE; + + for (m_SocketData.nextAddr = m_SocketData.addrInfo; m_SocketData.nextAddr; m_SocketData.nextAddr = m_SocketData.nextAddr->ai_next) + { + bool newSocket = false; + if (m_SocketData.nFamily == AF_UNSPEC) + { + newSocket = true; + m_SocketData.hSocket = socket(m_SocketData.nextAddr->ai_family, m_SocketData.nextAddr->ai_socktype, m_SocketData.nextAddr->ai_protocol); + + if (m_SocketData.hSocket == INVALID_SOCKET) + continue; + + m_SocketData.nFamily = m_SocketData.nextAddr->ai_family; + AttachHandle(m_SocketData.hSocket); + if (!AsyncSelect(m_lEvent)) + { + if (newSocket) + { + DetachHandle(m_SocketData.hSocket); + closesocket(m_SocketData.hSocket); + m_SocketData.hSocket = INVALID_SOCKET; + } + continue; + } + } + else if (m_SocketData.hSocket == INVALID_SOCKET) + continue; + + if (m_pFirstLayer) + { + if (WSAAsyncSelect(m_SocketData.hSocket, GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE)) + { + if (newSocket) + { + m_SocketData.nFamily = AF_UNSPEC; + DetachHandle(m_SocketData.hSocket); + closesocket(m_SocketData.hSocket); + m_SocketData.hSocket = INVALID_SOCKET; + } + continue; + } + } + + if (newSocket) + { + m_SocketData.nFamily = m_SocketData.nextAddr->ai_family; + if (!Bind(m_nSocketPort, m_lpszSocketAddress)) + { + m_SocketData.nFamily = AF_UNSPEC; + DetachHandle(m_SocketData.hSocket); + closesocket(m_SocketData.hSocket); + m_SocketData.hSocket = INVALID_SOCKET; + continue; + } + } + + if (!(ret = CAsyncSocketEx::Connect(m_SocketData.nextAddr->ai_addr, m_SocketData.nextAddr->ai_addrlen)) && GetLastError() != WSAEWOULDBLOCK) + { + if (newSocket) + { + m_SocketData.nFamily = AF_UNSPEC; + DetachHandle(m_SocketData.hSocket); + closesocket(m_SocketData.hSocket); + m_SocketData.hSocket = INVALID_SOCKET; + } + continue; + } + + break; + } + + if (m_SocketData.nextAddr) + m_SocketData.nextAddr = m_SocketData.nextAddr->ai_next; + + if (!m_SocketData.nextAddr) + { + freeaddrinfo(m_SocketData.addrInfo); + m_SocketData.nextAddr = 0; + m_SocketData.addrInfo = 0; + } + + if (m_SocketData.hSocket == INVALID_SOCKET || !ret) + return FALSE; + else + return TRUE; + } } BOOL CAsyncSocketEx::Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen) { - BOOL res; -#ifndef NOLAYERS - if (m_pFirstLayer) - res = SOCKET_ERROR!=m_pFirstLayer->Connect(lpSockAddr, nSockAddrLen); - else -#endif //NOLAYERS - { - ConfigureSocket(); - res = SOCKET_ERROR!=connect(m_SocketData.hSocket, lpSockAddr, nSockAddrLen); - } - -#ifndef NOSOCKETSTATES - if (res || GetLastError()==WSAEWOULDBLOCK) - { - SetState(connecting); - } -#endif //NOSOCKETSTATES - return res; + BOOL res; + if (m_pFirstLayer) + res = SOCKET_ERROR!=m_pFirstLayer->Connect(lpSockAddr, nSockAddrLen); + else + { + ConfigureSocket(); + res = SOCKET_ERROR!=connect(m_SocketData.hSocket, lpSockAddr, nSockAddrLen); + } + + if (res || GetLastError()==WSAEWOULDBLOCK) + { + SetState(connecting); + } + return res; } -#ifdef _AFX BOOL CAsyncSocketEx::GetPeerName( CString& rPeerAddress, UINT& rPeerPort ) { -#ifndef NOLAYERS - if (m_pFirstLayer) - return m_pFirstLayer->GetPeerName(rPeerAddress, rPeerPort); -#endif NOLAYERS - - SOCKADDR* sockAddr; - int nSockAddrLen; - - if (m_SocketData.nFamily == AF_INET6) - { - sockAddr = (SOCKADDR*)new SOCKADDR_IN6; - nSockAddrLen = sizeof(SOCKADDR_IN6); - } - else if (m_SocketData.nFamily == AF_INET) - { - sockAddr = (SOCKADDR*)new SOCKADDR_IN; - nSockAddrLen = sizeof(SOCKADDR_IN); - } - - memset(sockAddr, 0, nSockAddrLen); - - BOOL bResult = GetPeerName(sockAddr, &nSockAddrLen); - - if (bResult) - { - if (m_SocketData.nFamily == AF_INET6) - { - rPeerPort = ntohs(((SOCKADDR_IN6*)sockAddr)->sin6_port); - LPTSTR buf = Inet6AddrToString(((SOCKADDR_IN6*)sockAddr)->sin6_addr); - rPeerAddress = buf; - delete [] buf; - } - else if (m_SocketData.nFamily == AF_INET) - { - rPeerPort = ntohs(((SOCKADDR_IN*)sockAddr)->sin_port); - rPeerAddress = inet_ntoa(((SOCKADDR_IN*)sockAddr)->sin_addr); - } - else - { - delete sockAddr; - return FALSE; - } - } - delete sockAddr; - - return bResult; + if (m_pFirstLayer) + return m_pFirstLayer->GetPeerName(rPeerAddress, rPeerPort); + + SOCKADDR* sockAddr; + int nSockAddrLen; + + if (m_SocketData.nFamily == AF_INET6) + { + sockAddr = (SOCKADDR*)new SOCKADDR_IN6; + nSockAddrLen = sizeof(SOCKADDR_IN6); + } + else if (m_SocketData.nFamily == AF_INET) + { + sockAddr = (SOCKADDR*)new SOCKADDR_IN; + nSockAddrLen = sizeof(SOCKADDR_IN); + } + + memset(sockAddr, 0, nSockAddrLen); + + BOOL bResult = GetPeerName(sockAddr, &nSockAddrLen); + + if (bResult) + { + if (m_SocketData.nFamily == AF_INET6) + { + rPeerPort = ntohs(((SOCKADDR_IN6*)sockAddr)->sin6_port); + LPTSTR buf = Inet6AddrToString(((SOCKADDR_IN6*)sockAddr)->sin6_addr); + rPeerAddress = buf; + delete [] buf; + } + else if (m_SocketData.nFamily == AF_INET) + { + rPeerPort = ntohs(((SOCKADDR_IN*)sockAddr)->sin_port); + rPeerAddress = inet_ntoa(((SOCKADDR_IN*)sockAddr)->sin_addr); + } + else + { + delete sockAddr; + return FALSE; + } + } + delete sockAddr; + + return bResult; } -#endif //_AFX BOOL CAsyncSocketEx::GetPeerName( SOCKADDR* lpSockAddr, int* lpSockAddrLen ) { -#ifndef NOLAYERS - if (m_pFirstLayer) - return m_pFirstLayer->GetPeerName(lpSockAddr, lpSockAddrLen); -#endif //NOLAYERS - - if (!getpeername(m_SocketData.hSocket, lpSockAddr, lpSockAddrLen)) - { - return TRUE; - } - else - { - return FALSE; - } + if (m_pFirstLayer) + return m_pFirstLayer->GetPeerName(lpSockAddr, lpSockAddrLen); + + if (!getpeername(m_SocketData.hSocket, lpSockAddr, lpSockAddrLen)) + { + return TRUE; + } + else + { + return FALSE; + } } -#ifdef _AFX BOOL CAsyncSocketEx::GetSockName(CString& rSocketAddress, UINT& rSocketPort) { - SOCKADDR* sockAddr; - int nSockAddrLen; - - if (m_SocketData.nFamily == AF_INET6) - { - sockAddr = (SOCKADDR*)new SOCKADDR_IN6; - nSockAddrLen = sizeof(SOCKADDR_IN6); - } - else if (m_SocketData.nFamily == AF_INET) - { - sockAddr = (SOCKADDR*)new SOCKADDR_IN; - nSockAddrLen = sizeof(SOCKADDR_IN); - } - - memset(sockAddr, 0, nSockAddrLen); - - BOOL bResult = GetSockName(sockAddr, &nSockAddrLen); - - if (bResult) - { - if (m_SocketData.nFamily == AF_INET6) - { - rSocketPort = ntohs(((SOCKADDR_IN6*)sockAddr)->sin6_port); - LPTSTR buf = Inet6AddrToString(((SOCKADDR_IN6*)sockAddr)->sin6_addr); - rSocketAddress = buf; - delete [] buf; - } - else if (m_SocketData.nFamily == AF_INET) - { - rSocketPort = ntohs(((SOCKADDR_IN*)sockAddr)->sin_port); - rSocketAddress = inet_ntoa(((SOCKADDR_IN*)sockAddr)->sin_addr); - } - else - { - delete sockAddr; - return FALSE; - } - } - delete sockAddr; - - return bResult; + SOCKADDR* sockAddr; + int nSockAddrLen; + + if (m_SocketData.nFamily == AF_INET6) + { + sockAddr = (SOCKADDR*)new SOCKADDR_IN6; + nSockAddrLen = sizeof(SOCKADDR_IN6); + } + else if (m_SocketData.nFamily == AF_INET) + { + sockAddr = (SOCKADDR*)new SOCKADDR_IN; + nSockAddrLen = sizeof(SOCKADDR_IN); + } + + memset(sockAddr, 0, nSockAddrLen); + + BOOL bResult = GetSockName(sockAddr, &nSockAddrLen); + + if (bResult) + { + if (m_SocketData.nFamily == AF_INET6) + { + rSocketPort = ntohs(((SOCKADDR_IN6*)sockAddr)->sin6_port); + LPTSTR buf = Inet6AddrToString(((SOCKADDR_IN6*)sockAddr)->sin6_addr); + rSocketAddress = buf; + delete [] buf; + } + else if (m_SocketData.nFamily == AF_INET) + { + rSocketPort = ntohs(((SOCKADDR_IN*)sockAddr)->sin_port); + rSocketAddress = inet_ntoa(((SOCKADDR_IN*)sockAddr)->sin_addr); + } + else + { + delete sockAddr; + return FALSE; + } + } + delete sockAddr; + + return bResult; } -#endif //_AFX BOOL CAsyncSocketEx::GetSockName( SOCKADDR* lpSockAddr, int* lpSockAddrLen ) { - if ( !getsockname(m_SocketData.hSocket, lpSockAddr, lpSockAddrLen) ) - return TRUE; - else - return FALSE; + if ( !getsockname(m_SocketData.hSocket, lpSockAddr, lpSockAddrLen) ) + return TRUE; + else + return FALSE; } BOOL CAsyncSocketEx::ShutDown(int nHow /*=sends*/) { -#ifndef NOLAYERS - if (m_pFirstLayer) - { - return m_pFirstLayer->ShutDown(); - } - else -#endif //NOLAYERS - { - if (!shutdown(m_SocketData.hSocket, nHow)) - return TRUE; - else - return FALSE; - } + if (m_pFirstLayer) + { + return m_pFirstLayer->ShutDown(); + } + else + { + if (!shutdown(m_SocketData.hSocket, nHow)) + return TRUE; + else + return FALSE; + } } SOCKET CAsyncSocketEx::Detach() { - SOCKET socket = m_SocketData.hSocket; - DetachHandle(socket); - m_SocketData.hSocket = INVALID_SOCKET; - m_SocketData.nFamily = AF_UNSPEC; - return socket; + SOCKET socket = m_SocketData.hSocket; + DetachHandle(socket); + m_SocketData.hSocket = INVALID_SOCKET; + m_SocketData.nFamily = AF_UNSPEC; + return socket; } BOOL CAsyncSocketEx::Attach(SOCKET hSocket, long lEvent /*= FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE*/) { - if (hSocket==INVALID_SOCKET || !hSocket) - return FALSE; - - VERIFY(InitAsyncSocketExInstance()); - m_SocketData.hSocket=hSocket; - AttachHandle(hSocket); - -#ifndef NOLAYERS - if (m_pFirstLayer) - { - m_lEvent = lEvent; - return !WSAAsyncSelect(m_SocketData.hSocket, GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE); - } - else -#endif //NOLAYERS - { - return AsyncSelect(lEvent); - } + if (hSocket==INVALID_SOCKET || !hSocket) + return FALSE; + + VERIFY(InitAsyncSocketExInstance()); + m_SocketData.hSocket=hSocket; + AttachHandle(hSocket); + + if (m_pFirstLayer) + { + m_lEvent = lEvent; + return !WSAAsyncSelect(m_SocketData.hSocket, GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE); + } + else + { + return AsyncSelect(lEvent); + } } BOOL CAsyncSocketEx::AsyncSelect( long lEvent /*= FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE*/ ) { - ASSERT(m_pLocalAsyncSocketExThreadData); - m_lEvent = lEvent; -#ifndef NOLAYERS - if (m_pFirstLayer) - return TRUE; - else -#endif //NOLAYERS - { - if (m_SocketData.hSocket == INVALID_SOCKET && m_SocketData.nFamily == AF_UNSPEC) - return true; - - if ( !WSAAsyncSelect(m_SocketData.hSocket, GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, lEvent) ) - return TRUE; - else - return FALSE; - } - return TRUE; + DebugAssert(m_pLocalAsyncSocketExThreadData); + m_lEvent = lEvent; + if (m_pFirstLayer) + return TRUE; + else + { + if (m_SocketData.hSocket == INVALID_SOCKET && m_SocketData.nFamily == AF_UNSPEC) + return true; + + if ( !WSAAsyncSelect(m_SocketData.hSocket, GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, lEvent) ) + return TRUE; + else + return FALSE; + } + return TRUE; } BOOL CAsyncSocketEx::Listen( int nConnectionBacklog /*=5*/ ) { -#ifndef NOLAYERS - if (m_pFirstLayer) - return m_pFirstLayer->Listen(nConnectionBacklog); -#endif //NOLAYERS - - if (!listen(m_SocketData.hSocket, nConnectionBacklog)) - { -#ifndef NOSOCKETSTATES - SetState(listening); -#endif //NOSOCKETSTATES - return TRUE; - } - else - return FALSE; + if (m_pFirstLayer) + return m_pFirstLayer->Listen(nConnectionBacklog); + + if (!listen(m_SocketData.hSocket, nConnectionBacklog)) + { + SetState(listening); + return TRUE; + } + else + return FALSE; } BOOL CAsyncSocketEx::Accept( CAsyncSocketEx& rConnectedSocket, SOCKADDR* lpSockAddr /*=NULL*/, int* lpSockAddrLen /*=NULL*/ ) { - ASSERT(rConnectedSocket.m_SocketData.hSocket == INVALID_SOCKET); -#ifndef NOLAYERS - if (m_pFirstLayer) - { - return m_pFirstLayer->Accept(rConnectedSocket, lpSockAddr, lpSockAddrLen); - } - else -#endif //NOLAYERS - { - SOCKET hTemp = accept(m_SocketData.hSocket, lpSockAddr, lpSockAddrLen); - - if (hTemp == INVALID_SOCKET) - return FALSE; - VERIFY(rConnectedSocket.InitAsyncSocketExInstance()); - rConnectedSocket.m_SocketData.hSocket=hTemp; - rConnectedSocket.AttachHandle(hTemp); - rConnectedSocket.SetFamily(GetFamily()); -#ifndef NOSOCKETSTATES - rConnectedSocket.SetState(connected); -#endif //NOSOCKETSTATES - } - return TRUE; + DebugAssert(rConnectedSocket.m_SocketData.hSocket == INVALID_SOCKET); + if (m_pFirstLayer) + { + return m_pFirstLayer->Accept(rConnectedSocket, lpSockAddr, lpSockAddrLen); + } + else + { + SOCKET hTemp = accept(m_SocketData.hSocket, lpSockAddr, lpSockAddrLen); + + if (hTemp == INVALID_SOCKET) + return FALSE; + VERIFY(rConnectedSocket.InitAsyncSocketExInstance()); + rConnectedSocket.m_SocketData.hSocket=hTemp; + rConnectedSocket.AttachHandle(hTemp); + rConnectedSocket.SetFamily(GetFamily()); + rConnectedSocket.SetState(connected); + } + return TRUE; } BOOL CAsyncSocketEx::IOCtl( long lCommand, DWORD* lpArgument ) { - return ioctlsocket(m_SocketData.hSocket, lCommand, lpArgument) != SOCKET_ERROR; + return ioctlsocket(m_SocketData.hSocket, lCommand, lpArgument) != SOCKET_ERROR; } int CAsyncSocketEx::GetLastError() { - return WSAGetLastError(); + return WSAGetLastError(); } BOOL CAsyncSocketEx::TriggerEvent(long lEvent) { - if (m_SocketData.hSocket==INVALID_SOCKET) - return FALSE; - - ASSERT(m_pLocalAsyncSocketExThreadData); - ASSERT(m_pLocalAsyncSocketExThreadData->m_pHelperWindow); - ASSERT(m_SocketData.nSocketIndex!=-1); - -#ifndef NOLAYERS - if (m_pFirstLayer) - { - CAsyncSocketExLayer::t_LayerNotifyMsg *pMsg = new CAsyncSocketExLayer::t_LayerNotifyMsg; - pMsg->hSocket = m_SocketData.hSocket; - pMsg->lEvent=lEvent%0xFFFF; - pMsg->pLayer=0; - BOOL res=PostMessage(GetHelperWindowHandle(), WM_USER, (WPARAM)m_SocketData.nSocketIndex, (LPARAM)pMsg); - if (!res) - delete pMsg; - return res; - } - else -#endif //NOLAYERS - { - return PostMessage(GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, m_SocketData.hSocket, lEvent%0xFFFF); - } + if (m_SocketData.hSocket==INVALID_SOCKET) + return FALSE; + + DebugAssert(m_pLocalAsyncSocketExThreadData); + DebugAssert(m_pLocalAsyncSocketExThreadData->m_pHelperWindow); + DebugAssert(m_SocketData.nSocketIndex!=-1); + + if (m_pFirstLayer) + { + CAsyncSocketExLayer::t_LayerNotifyMsg *pMsg = new CAsyncSocketExLayer::t_LayerNotifyMsg; + pMsg->hSocket = m_SocketData.hSocket; + pMsg->lEvent=lEvent%0xFFFF; + pMsg->pLayer=0; + BOOL res=PostMessage(GetHelperWindowHandle(), WM_USER, (WPARAM)m_SocketData.nSocketIndex, (LPARAM)pMsg); + if (!res) + delete pMsg; + return res; + } + else + { + return PostMessage(GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, m_SocketData.hSocket, lEvent%0xFFFF); + } } SOCKET CAsyncSocketEx::GetSocketHandle() { - return m_SocketData.hSocket; + return m_SocketData.hSocket; } HWND CAsyncSocketEx::GetHelperWindowHandle() { - if (!m_pLocalAsyncSocketExThreadData) - return 0; - if (!m_pLocalAsyncSocketExThreadData->m_pHelperWindow) - return 0; - return m_pLocalAsyncSocketExThreadData->m_pHelperWindow->GetHwnd(); + if (!m_pLocalAsyncSocketExThreadData) + return 0; + if (!m_pLocalAsyncSocketExThreadData->m_pHelperWindow) + return 0; + return m_pLocalAsyncSocketExThreadData->m_pHelperWindow->GetHwnd(); } -#ifndef NOLAYERS BOOL CAsyncSocketEx::AddLayer(CAsyncSocketExLayer *pLayer) { - ASSERT(pLayer); - - if (m_pFirstLayer) - { - ASSERT(m_pLastLayer); - m_pLastLayer=m_pLastLayer->AddLayer(pLayer, this); - return m_pLastLayer?TRUE:FALSE; - } - else - { - ASSERT(!m_pLastLayer); - pLayer->Init(0, this); - m_pFirstLayer=pLayer; - m_pLastLayer=m_pFirstLayer; - if (m_SocketData.hSocket != INVALID_SOCKET) - if (WSAAsyncSelect(m_SocketData.hSocket, GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE)) - return FALSE; - } - - return TRUE; + DebugAssert(pLayer); + + if (m_pFirstLayer) + { + DebugAssert(m_pLastLayer); + m_pLastLayer=m_pLastLayer->AddLayer(pLayer, this); + return m_pLastLayer?TRUE:FALSE; + } + else + { + DebugAssert(!m_pLastLayer); + pLayer->Init(0, this); + m_pFirstLayer=pLayer; + m_pLastLayer=m_pFirstLayer; + if (m_SocketData.hSocket != INVALID_SOCKET) + if (WSAAsyncSelect(m_SocketData.hSocket, GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE)) + return FALSE; + } + + return TRUE; } void CAsyncSocketEx::RemoveAllLayers() { - for (std::list::iterator iter = m_pendingCallbacks.begin(); iter != m_pendingCallbacks.end(); iter++) - delete [] iter->str; - m_pendingCallbacks.clear(); - - m_pFirstLayer = 0; - m_pLastLayer = 0; - - if (!m_pLocalAsyncSocketExThreadData) - return; - if (!m_pLocalAsyncSocketExThreadData->m_pHelperWindow) - return; - m_pLocalAsyncSocketExThreadData->m_pHelperWindow->RemoveLayers(this); + for (std::list::iterator iter = m_pendingCallbacks.begin(); iter != m_pendingCallbacks.end(); iter++) + delete [] iter->str; + m_pendingCallbacks.clear(); + + m_pFirstLayer = 0; + m_pLastLayer = 0; + + if (!m_pLocalAsyncSocketExThreadData) + return; + if (!m_pLocalAsyncSocketExThreadData->m_pHelperWindow) + return; + m_pLocalAsyncSocketExThreadData->m_pHelperWindow->RemoveLayers(this); } int CAsyncSocketEx::OnLayerCallback(std::list& callbacks) { - for (std::list::iterator iter = callbacks.begin(); iter != callbacks.end(); iter++) - { - delete [] iter->str; - } - return 0; + for (std::list::iterator iter = callbacks.begin(); iter != callbacks.end(); iter++) + { + delete [] iter->str; + } + return 0; } BOOL CAsyncSocketEx::IsLayerAttached() const { - return m_pFirstLayer ? TRUE : FALSE; + return m_pFirstLayer ? TRUE : FALSE; } -#endif //NOLAYERS BOOL CAsyncSocketEx::GetSockOpt(int nOptionName, void* lpOptionValue, int* lpOptionLen, int nLevel /*=SOL_SOCKET*/) { - return (SOCKET_ERROR != getsockopt(m_SocketData.hSocket, nLevel, nOptionName, (LPSTR)lpOptionValue, lpOptionLen)); + return (SOCKET_ERROR != getsockopt(m_SocketData.hSocket, nLevel, nOptionName, (LPSTR)lpOptionValue, lpOptionLen)); } BOOL CAsyncSocketEx::SetSockOpt(int nOptionName, const void* lpOptionValue, int nOptionLen, int nLevel /*=SOL_SOCKET*/) { - return (SOCKET_ERROR != setsockopt(m_SocketData.hSocket, nLevel, nOptionName, (LPSTR)lpOptionValue, nOptionLen)); + return (SOCKET_ERROR != setsockopt(m_SocketData.hSocket, nLevel, nOptionName, (LPSTR)lpOptionValue, nOptionLen)); } -#ifndef NOSOCKETSTATES - int CAsyncSocketEx::GetState() const { - return m_nState; + return m_nState; } void CAsyncSocketEx::SetState(int nState) { - m_nState = nState; + m_nState = nState; } const TCHAR * CAsyncSocketEx::GetStateDesc(int nState) @@ -1772,23 +1547,23 @@ const TCHAR * CAsyncSocketEx::GetStateDesc(int nState) switch (nState) { case notsock: - return _T("none"); + return L"none"; case unconnected: - return _T("unconnected"); + return L"unconnected"; case connecting: - return _T("connecting"); + return L"connecting"; case listening: - return _T("listening"); + return L"listening"; case connected: - return _T("connected"); + return L"connected"; case closed: - return _T("closed"); + return L"closed"; case aborted: - return _T("aborted"); + return L"aborted"; case attached: - return _T("attached"); + return L"attached"; default: - return _T("unknown"); + return L"unknown"; } } @@ -1797,120 +1572,112 @@ bool CAsyncSocketEx::LogStateChange(int nState1, int nState2) return (nState2 != notsock) || (nState1 != unconnected); } -#endif //NOSOCKETSTATES - int CAsyncSocketEx::GetFamily() const { - return m_SocketData.nFamily; + return m_SocketData.nFamily; } bool CAsyncSocketEx::SetFamily(int nFamily) { - if (m_SocketData.nFamily != AF_UNSPEC) - return false; + if (m_SocketData.nFamily != AF_UNSPEC) + return false; - m_SocketData.nFamily = nFamily; - return true; + m_SocketData.nFamily = nFamily; + return true; } bool CAsyncSocketEx::TryNextProtocol() { - DetachHandle(m_SocketData.hSocket); - closesocket(m_SocketData.hSocket); - m_SocketData.hSocket = INVALID_SOCKET; - - BOOL ret = FALSE; - for (; m_SocketData.nextAddr; m_SocketData.nextAddr = m_SocketData.nextAddr->ai_next) - { - m_SocketData.hSocket = socket(m_SocketData.nextAddr->ai_family, m_SocketData.nextAddr->ai_socktype, m_SocketData.nextAddr->ai_protocol); - - if (m_SocketData.hSocket == INVALID_SOCKET) - continue; - - AttachHandle(m_SocketData.hSocket); - m_SocketData.nFamily = m_SocketData.nextAddr->ai_family; - if (!AsyncSelect(m_lEvent)) - { - DetachHandle(m_SocketData.hSocket); - closesocket(m_SocketData.hSocket); - m_SocketData.hSocket = INVALID_SOCKET; - continue; - } - -#ifndef NOLAYERS - if (m_pFirstLayer) - { - if (WSAAsyncSelect(m_SocketData.hSocket, GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE)) - { - DetachHandle(m_SocketData.hSocket); - closesocket(m_SocketData.hSocket); - m_SocketData.hSocket = INVALID_SOCKET; - continue; - } - } -#endif //NOLAYERS - - if (!Bind(m_nSocketPort, m_lpszSocketAddress)) - { - DetachHandle(m_SocketData.hSocket); - closesocket(m_SocketData.hSocket); - m_SocketData.hSocket = INVALID_SOCKET; - continue; - } - - ret = CAsyncSocketEx::Connect(m_SocketData.nextAddr->ai_addr, m_SocketData.nextAddr->ai_addrlen); - if (!ret && GetLastError() != WSAEWOULDBLOCK) - { - DetachHandle(m_SocketData.hSocket); - closesocket(m_SocketData.hSocket); - m_SocketData.hSocket = INVALID_SOCKET; - continue; - } - - ret = true; - break; - } - - if (m_SocketData.nextAddr) - m_SocketData.nextAddr = m_SocketData.nextAddr->ai_next; - - if (!m_SocketData.nextAddr) - { - freeaddrinfo(m_SocketData.addrInfo); - m_SocketData.nextAddr = 0; - m_SocketData.addrInfo = 0; - } - - if (m_SocketData.hSocket == INVALID_SOCKET || !ret) - return FALSE; - else - return TRUE; -} + DetachHandle(m_SocketData.hSocket); + closesocket(m_SocketData.hSocket); + m_SocketData.hSocket = INVALID_SOCKET; + + BOOL ret = FALSE; + for (; m_SocketData.nextAddr; m_SocketData.nextAddr = m_SocketData.nextAddr->ai_next) + { + m_SocketData.hSocket = socket(m_SocketData.nextAddr->ai_family, m_SocketData.nextAddr->ai_socktype, m_SocketData.nextAddr->ai_protocol); + + if (m_SocketData.hSocket == INVALID_SOCKET) + continue; + + AttachHandle(m_SocketData.hSocket); + m_SocketData.nFamily = m_SocketData.nextAddr->ai_family; + if (!AsyncSelect(m_lEvent)) + { + DetachHandle(m_SocketData.hSocket); + closesocket(m_SocketData.hSocket); + m_SocketData.hSocket = INVALID_SOCKET; + continue; + } + + if (m_pFirstLayer) + { + if (WSAAsyncSelect(m_SocketData.hSocket, GetHelperWindowHandle(), m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE)) + { + DetachHandle(m_SocketData.hSocket); + closesocket(m_SocketData.hSocket); + m_SocketData.hSocket = INVALID_SOCKET; + continue; + } + } + + if (!Bind(m_nSocketPort, m_lpszSocketAddress)) + { + DetachHandle(m_SocketData.hSocket); + closesocket(m_SocketData.hSocket); + m_SocketData.hSocket = INVALID_SOCKET; + continue; + } + + ret = CAsyncSocketEx::Connect(m_SocketData.nextAddr->ai_addr, m_SocketData.nextAddr->ai_addrlen); + if (!ret && GetLastError() != WSAEWOULDBLOCK) + { + DetachHandle(m_SocketData.hSocket); + closesocket(m_SocketData.hSocket); + m_SocketData.hSocket = INVALID_SOCKET; + continue; + } + + ret = true; + break; + } + + if (m_SocketData.nextAddr) + m_SocketData.nextAddr = m_SocketData.nextAddr->ai_next; -#ifndef NOLAYERS + if (!m_SocketData.nextAddr) + { + freeaddrinfo(m_SocketData.addrInfo); + m_SocketData.nextAddr = 0; + m_SocketData.addrInfo = 0; + } + + if (m_SocketData.hSocket == INVALID_SOCKET || !ret) + return FALSE; + else + return TRUE; +} void CAsyncSocketEx::AddCallbackNotification(const t_callbackMsg& msg) { - m_pendingCallbacks.push_back(msg); + m_pendingCallbacks.push_back(msg); - if(m_pendingCallbacks.size() == 1 && m_SocketData.nSocketIndex != -1) - { - PostMessage(GetHelperWindowHandle(), WM_USER + 2, (WPARAM)m_SocketData.nSocketIndex, 0); - } + if(m_pendingCallbacks.size() == 1 && m_SocketData.nSocketIndex != -1) + { + PostMessage(GetHelperWindowHandle(), WM_USER + 2, (WPARAM)m_SocketData.nSocketIndex, 0); + } } -#endif //NOLAYERS - void CAsyncSocketEx::ResendCloseNotify() { - for (std::list::iterator iter = m_pLocalAsyncSocketExThreadData->layerCloseNotify.begin(); iter != m_pLocalAsyncSocketExThreadData->layerCloseNotify.end(); iter++) - { - if (*iter == this) - return; - } - m_pLocalAsyncSocketExThreadData->layerCloseNotify.push_back(this); - if (m_pLocalAsyncSocketExThreadData->layerCloseNotify.size() == 1) - { - SetTimer(m_pLocalAsyncSocketExThreadData->m_pHelperWindow->GetHwnd(), 1, 10, 0); - } + for (std::list::iterator iter = m_pLocalAsyncSocketExThreadData->layerCloseNotify.begin(); iter != m_pLocalAsyncSocketExThreadData->layerCloseNotify.end(); iter++) + { + if (*iter == this) + return; + } + m_pLocalAsyncSocketExThreadData->layerCloseNotify.push_back(this); + if (m_pLocalAsyncSocketExThreadData->layerCloseNotify.size() == 1) + { + SetTimer(m_pLocalAsyncSocketExThreadData->m_pHelperWindow->GetHwnd(), 1, 10, 0); + } } diff --git a/source/filezilla/AsyncSocketEx.h b/source/filezilla/AsyncSocketEx.h index fcff24b6..5a916af4 100644 --- a/source/filezilla/AsyncSocketEx.h +++ b/source/filezilla/AsyncSocketEx.h @@ -60,306 +60,289 @@ and this copyright notice stays intact in the source files. If you use this class in commercial applications, please send a short message to tim.kosse@gmx.de */ - -#if !defined(AFX_ASYNCSOCKETEX_H__AA9E4531_63B1_442F_9A71_09B2FEEDF34E__INCLUDED_) -#define AFX_ASYNCSOCKETEX_H__AA9E4531_63B1_442F_9A71_09B2FEEDF34E__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - +//--------------------------------------------------------------------------- +#ifndef AsyncSocketExH +#define AsyncSocketExH +//--------------------------------------------------------------------------- #define FD_FORCEREAD (1<<15) - +//--------------------------------------------------------------------------- #include #include - +//--------------------------------------------------------------------------- class CAsyncSocketExHelperWindow; - -#ifndef NOLAYERS class CAsyncSocketExLayer; - +class CCriticalSectionWrapper; +//--------------------------------------------------------------------------- struct t_callbackMsg { - CAsyncSocketExLayer* pLayer; - int nType; - int nParam1; - int nParam2; - char* str; + CAsyncSocketExLayer* pLayer; + int nType; + int nParam1; + int nParam2; + char* str; }; - -#endif //NOLAYERS - -class CCriticalSectionWrapper; +//--------------------------------------------------------------------------- class CAsyncSocketEx { public: - /////////////////////////////////////// - //Functions that imitate CAsyncSocket// - /////////////////////////////////////// + CAsyncSocketEx(); + virtual ~CAsyncSocketEx(); - //Construction - //------------ + BOOL Create(UINT nSocketPort = 0, int nSocketType = SOCK_STREAM, + long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, + LPCTSTR lpszSocketAddress = NULL, int nFamily = AF_INET); - //Constructs a CAsyncSocketEx object. - CAsyncSocketEx(); - virtual ~CAsyncSocketEx(); + // Attaches a socket handle to a CAsyncSocketEx object. + BOOL Attach(SOCKET hSocket, + long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE); - //Creates a socket. - BOOL Create(UINT nSocketPort = 0, int nSocketType = SOCK_STREAM, - long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, - LPCTSTR lpszSocketAddress = NULL, int nFamily = AF_INET); + // Detaches a socket handle from a CAsyncSocketEx object. + SOCKET Detach( ); - //Attributes - //--------- + // Gets the error status for the last operation that failed. + static int GetLastError(); - //Attaches a socket handle to a CAsyncSocketEx object. - BOOL Attach( SOCKET hSocket, - long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | - FD_CONNECT | FD_CLOSE ); + // Gets the address of the peer socket to which the socket is connected. + BOOL GetPeerName(CString& rPeerAddress, UINT& rPeerPort); + BOOL GetPeerName(SOCKADDR* lpSockAddr, int* lpSockAddrLen); - //Detaches a socket handle from a CAsyncSocketEx object. - SOCKET Detach( ); + // Gets the local name for a socket. + BOOL GetSockName(CString& rSocketAddress, UINT& rSocketPort); + BOOL GetSockName(SOCKADDR* lpSockAddr, int* lpSockAddrLen); - //Gets the error status for the last operation that failed. - static int GetLastError(); + // Retrieves a socket option. + BOOL GetSockOpt(int nOptionName, void* lpOptionValue, int* lpOptionLen, int nLevel = SOL_SOCKET); - //Gets the address of the peer socket to which the socket is connected. -#ifdef _AFX - BOOL GetPeerName( CString& rPeerAddress, UINT& rPeerPort ); -#endif - BOOL GetPeerName( SOCKADDR* lpSockAddr, int* lpSockAddrLen ); + // Sets a socket option. + BOOL SetSockOpt(int nOptionName, const void* lpOptionValue, int nOptionLen, int nLevel = SOL_SOCKET); - //Gets the local name for a socket. -#ifdef _AFX - BOOL GetSockName( CString& rSocketAddress, UINT& rSocketPort ); -#endif - BOOL GetSockName( SOCKADDR* lpSockAddr, int* lpSockAddrLen ); + // Gets the socket family + int GetFamily() const; - //Retrieves a socket option. - BOOL GetSockOpt(int nOptionName, void* lpOptionValue, int* lpOptionLen, int nLevel = SOL_SOCKET); + // Sets the socket family + bool SetFamily(int nFamily); - //Sets a socket option. - BOOL SetSockOpt(int nOptionName, const void* lpOptionValue, int nOptionLen, int nLevel = SOL_SOCKET); + // Operations - //Gets the socket family - int GetFamily() const; + // Accepts a connection on the socket. + virtual BOOL Accept(CAsyncSocketEx& rConnectedSocket, SOCKADDR * lpSockAddr = NULL, int * lpSockAddrLen = NULL); - //Sets the socket family - bool SetFamily(int nFamily); + // Requests event notification for the socket. + BOOL AsyncSelect(long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE); - //Operations - //---------- + // Associates a local address with the socket. + BOOL Bind(UINT nSocketPort, LPCTSTR lpszSocketAddress); + BOOL Bind(const SOCKADDR* lpSockAddr, int nSockAddrLen); - //Accepts a connection on the socket. - virtual BOOL Accept( CAsyncSocketEx& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL ); + // Closes the socket. + virtual void Close(); - //Requests event notification for the socket. - BOOL AsyncSelect( long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE ); + // Establishes a connection to a peer socket. + virtual BOOL Connect(LPCTSTR lpszHostAddress, UINT nHostPort); + virtual BOOL Connect(const SOCKADDR * lpSockAddr, int nSockAddrLen); - //Associates a local address with the socket. - BOOL Bind(UINT nSocketPort, LPCTSTR lpszSocketAddress); - BOOL Bind(const SOCKADDR* lpSockAddr, int nSockAddrLen); + // Controls the mode of the socket. + BOOL IOCtl(long lCommand, DWORD * lpArgument); - //Closes the socket. - virtual void Close(); + // Establishes a socket to listen for incoming connection requests. + BOOL Listen(int nConnectionBacklog = 5); - //Establishes a connection to a peer socket. - virtual BOOL Connect(LPCTSTR lpszHostAddress, UINT nHostPort); - virtual BOOL Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen); + // Receives data from the socket. + virtual int Receive(void * lpBuf, int nBufLen, int nFlags = 0); - //Controls the mode of the socket. - BOOL IOCtl( long lCommand, DWORD* lpArgument ); + // Sends data to a connected socket. + virtual int Send(const void * lpBuf, int nBufLen, int nFlags = 0); - //Establishes a socket to listen for incoming connection requests. - BOOL Listen( int nConnectionBacklog = 5 ); + // Disables Send and/or Receive calls on the socket. + BOOL ShutDown(int nHow = sends); + enum { receives = 0, sends = 1, both = 2 }; - //Receives data from the socket. - virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); + // Overridable Notification Functions + //---------------------------------- - //Sends data to a connected socket. - virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0); + // Notifies a listening socket that it can accept pending connection requests by calling Accept. + virtual void OnAccept(int nErrorCode); - //Disables Send and/or Receive calls on the socket. - BOOL ShutDown( int nHow = sends ); - enum { receives = 0, sends = 1, both = 2 }; + // Notifies a socket that the socket connected to it has closed. + virtual void OnClose(int nErrorCode); - //Overridable Notification Functions - //---------------------------------- + // Notifies a connecting socket that the connection attempt is complete, whether successfully or in error. + virtual void OnConnect(int nErrorCode); - //Notifies a listening socket that it can accept pending connection requests by calling Accept. - virtual void OnAccept(int nErrorCode); + // Notifies a listening socket that there is data to be retrieved by calling Receive. + virtual void OnReceive(int nErrorCode); - //Notifies a socket that the socket connected to it has closed. - virtual void OnClose(int nErrorCode); + // Notifies a socket that it can send data by calling Send. + virtual void OnSend(int nErrorCode); - //Notifies a connecting socket that the connection attempt is complete, whether successfully or in error. - virtual void OnConnect(int nErrorCode); + // Additional functions - //Notifies a listening socket that there is data to be retrieved by calling Receive. - virtual void OnReceive(int nErrorCode); + // Resets layer chain. + void RemoveAllLayers(); - //Notifies a socket that it can send data by calling Send. - virtual void OnSend(int nErrorCode); + // Attaches a new layer to the socket. + BOOL AddLayer(CAsyncSocketExLayer * pLayer); - //////////////////////// - //Additional functions// - //////////////////////// + // Is a layer attached to the socket? + BOOL IsLayerAttached() const; -#ifndef NOLAYERS - //Resets layer chain. - void RemoveAllLayers(); + // Returns the handle of the socket. + SOCKET GetSocketHandle(); - //Attaches a new layer to the socket. - BOOL AddLayer(CAsyncSocketExLayer *pLayer); + // Trigers an event on the socket + // Any combination of FD_READ, FD_WRITE, FD_CLOSE, FD_ACCEPT, FD_CONNECT and FD_FORCEREAD is valid for lEvent. + BOOL TriggerEvent(long lEvent); - //Is a layer attached to the socket? - BOOL IsLayerAttached() const; -#endif //NOLAYERS +protected: + // Strucure to hold the socket data + struct t_AsyncSocketExData + { + SOCKET hSocket; // Socket handle + int nSocketIndex; // Index of socket, required by CAsyncSocketExHelperWindow + int nFamily; + addrinfo * addrInfo, * nextAddr; // Iterate through protocols on connect failure + bool onCloseCalled; // Set to true on first received OnClose event + } m_SocketData; - //Returns the handle of the socket. - SOCKET GetSocketHandle(); + // If using layers, only the events specified with m_lEvent will send to the event handlers. + long m_lEvent; - //Trigers an event on the socket - // Any combination of FD_READ, FD_WRITE, FD_CLOSE, FD_ACCEPT, FD_CONNECT and FD_FORCEREAD is valid for lEvent. - BOOL TriggerEvent(long lEvent); + // AsyncGetHostByName + char *m_pAsyncGetHostByNameBuffer; // Buffer for hostend structure + HANDLE m_hAsyncGetHostByNameHandle; // TaskHandle + int m_nAsyncGetHostByNamePort; // Port to connect to -protected: - //Strucure to hold the socket data - struct t_AsyncSocketExData - { - SOCKET hSocket; //Socket handle - int nSocketIndex; //Index of socket, required by CAsyncSocketExHelperWindow - int nFamily; - addrinfo *addrInfo, *nextAddr; // Iterate through protocols on connect failure - bool onCloseCalled; // Set to true on first received OnClose event - } m_SocketData; - - //If using layers, only the events specified with m_lEvent will send to the event handlers. - long m_lEvent; - - //AsyncGetHostByName - char *m_pAsyncGetHostByNameBuffer; //Buffer for hostend structure - HANDLE m_hAsyncGetHostByNameHandle; //TaskHandle - int m_nAsyncGetHostByNamePort; //Port to connect to - - //Returns the handle of the helper window - HWND GetHelperWindowHandle(); - - //Attaches socket handle to helper window - void AttachHandle(SOCKET hSocket); - - //Detaches socket handle to helper window - void DetachHandle(SOCKET hSocket); - - //Critical section for thread synchronization - static CCriticalSectionWrapper m_sGlobalCriticalSection; - - //Pointer to the data of the local thread - struct t_AsyncSocketExThreadData - { - CAsyncSocketExHelperWindow *m_pHelperWindow; - int nInstanceCount; - DWORD nThreadId; - std::list layerCloseNotify; - } *m_pLocalAsyncSocketExThreadData; - - //List of the data structures for all threads - static struct t_AsyncSocketExThreadDataList - { - t_AsyncSocketExThreadDataList *pNext; - t_AsyncSocketExThreadData *pThreadData; - } *m_spAsyncSocketExThreadDataList; - - //Initializes Thread data and helper window, fills m_pLocalAsyncSocketExThreadData - BOOL InitAsyncSocketExInstance(); - - //Destroys helper window after last instance of CAsyncSocketEx in current thread has been closed - void FreeAsyncSocketExInstance(); - - // Iterate through protocols on failure - bool TryNextProtocol(); - - void ResendCloseNotify(); - -#ifndef NOLAYERS - // Add a new notification to the list of pending callbacks - void AddCallbackNotification(const t_callbackMsg& msg); -#endif // NOLAYERS - -#ifndef NOSOCKETSTATES - int m_nPendingEvents; - - int GetState() const; - void SetState(int nState); - static const TCHAR * GetStateDesc(int nState); - static bool LogStateChange(int nState1, int nState2); - - int m_nState; -#endif //NOSOCKETSTATES - -#ifndef NOLAYERS - //Layer chain - CAsyncSocketExLayer *m_pFirstLayer; - CAsyncSocketExLayer *m_pLastLayer; - - friend CAsyncSocketExLayer; - - //Called by the layers to notify application of some events - virtual int OnLayerCallback(std::list& callbacks); -#endif //NOLAYERS - - // Used by Bind with AF_UNSPEC sockets - UINT m_nSocketPort; - LPTSTR m_lpszSocketAddress; - - friend CAsyncSocketExHelperWindow; - -#ifndef NOLAYERS - // Pending callbacks - std::list m_pendingCallbacks; -#endif // NOLAYERS - - virtual void LogSocketMessage(int nMessageType, LPCTSTR pMsgFormat) {}; - virtual bool LoggingSocketMessage(int nMessageType) { return true; }; - virtual void ConfigureSocket() {}; -}; + // Returns the handle of the helper window + HWND GetHelperWindowHandle(); + + // Attaches socket handle to helper window + void AttachHandle(SOCKET hSocket); + + // Detaches socket handle to helper window + void DetachHandle(SOCKET hSocket); + + // Critical section for thread synchronization + static CCriticalSectionWrapper m_sGlobalCriticalSection; + + // Pointer to the data of the local thread + struct t_AsyncSocketExThreadData + { + CAsyncSocketExHelperWindow * m_pHelperWindow; + int nInstanceCount; + DWORD nThreadId; + std::list layerCloseNotify; + } * m_pLocalAsyncSocketExThreadData; + + // List of the data structures for all threads + static struct t_AsyncSocketExThreadDataList + { + t_AsyncSocketExThreadDataList * pNext; + t_AsyncSocketExThreadData * pThreadData; + } *m_spAsyncSocketExThreadDataList; + + // Initializes Thread data and helper window, fills m_pLocalAsyncSocketExThreadData + BOOL InitAsyncSocketExInstance(); + + // Destroys helper window after last instance of CAsyncSocketEx in current thread has been closed + void FreeAsyncSocketExInstance(); -#ifndef NOLAYERS + // Iterate through protocols on failure + bool TryNextProtocol(); + + void ResendCloseNotify(); + + // Add a new notification to the list of pending callbacks + void AddCallbackNotification(const t_callbackMsg & msg); + + int m_nPendingEvents; + + int GetState() const; + void SetState(int nState); + static const TCHAR * GetStateDesc(int nState); + static bool LogStateChange(int nState1, int nState2); + + int m_nState; + + // Layer chain + CAsyncSocketExLayer * m_pFirstLayer; + CAsyncSocketExLayer * m_pLastLayer; + + friend CAsyncSocketExLayer; + + // Called by the layers to notify application of some events + virtual int OnLayerCallback(std::list & callbacks); + + // Used by Bind with AF_UNSPEC sockets + UINT m_nSocketPort; + LPTSTR m_lpszSocketAddress; + + friend CAsyncSocketExHelperWindow; + + // Pending callbacks + std::list m_pendingCallbacks; + + virtual void LogSocketMessageRaw(int nMessageType, LPCTSTR pMsg) {}; + virtual bool LoggingSocketMessage(int nMessageType) { return true; }; + virtual void ConfigureSocket() {}; +}; +//--------------------------------------------------------------------------- #define LAYERCALLBACK_STATECHANGE 0 #define LAYERCALLBACK_LAYERSPECIFIC 1 -#endif //NOLAYERS - +//--------------------------------------------------------------------------- enum SocketState { - notsock, - unconnected, - connecting, - listening, - connected, - closed, - aborted, - attached + notsock, + unconnected, + connecting, + listening, + connected, + closed, + aborted, + attached }; - -#ifndef MPEXT -#ifdef _UNICODE -#define _sntprintf _snwprintf -#else -#define _sntprintf _snprintf -#endif -#endif - -inline TCHAR* Inet6AddrToString(in6_addr& addr) +//--------------------------------------------------------------------------- +inline TCHAR* Inet6AddrToString(in6_addr & addr) { - LPTSTR buf = new TCHAR[512]; + LPTSTR buf = new TCHAR[512]; - _sntprintf(buf, 512, _T("%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x"), - addr.s6_bytes[0], addr.s6_bytes[1], addr.s6_bytes[2], addr.s6_bytes[3], - addr.s6_bytes[4], addr.s6_bytes[5], addr.s6_bytes[6], addr.s6_bytes[7], - addr.s6_bytes[8], addr.s6_bytes[9], addr.s6_bytes[10], addr.s6_bytes[11], - addr.s6_bytes[12], addr.s6_bytes[13], addr.s6_bytes[14], addr.s6_bytes[15]); + _sntprintf(buf, 512, L"%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x", + addr.s6_bytes[0], addr.s6_bytes[1], addr.s6_bytes[2], addr.s6_bytes[3], + addr.s6_bytes[4], addr.s6_bytes[5], addr.s6_bytes[6], addr.s6_bytes[7], + addr.s6_bytes[8], addr.s6_bytes[9], addr.s6_bytes[10], addr.s6_bytes[11], + addr.s6_bytes[12], addr.s6_bytes[13], addr.s6_bytes[14], addr.s6_bytes[15]); - return buf ; + return buf; } - -#endif // !defined(AFX_ASYNCSOCKETEX_H__AA9E4531_63B1_442F_9A71_09B2FEEDF34E__INCLUDED_) +//--------------------------------------------------------------------------- +class CCriticalSectionWrapper +{ +public: + CCriticalSectionWrapper() + { + m_bInitialized = TRUE; + InitializeCriticalSection(&m_criticalSection); + } + + ~CCriticalSectionWrapper() + { + if (m_bInitialized) + DeleteCriticalSection(&m_criticalSection); + m_bInitialized = FALSE; + } + + void Lock() + { + if (m_bInitialized) + EnterCriticalSection(&m_criticalSection); + } + void Unlock() + { + if (m_bInitialized) + LeaveCriticalSection(&m_criticalSection); + } +protected: + CRITICAL_SECTION m_criticalSection; + BOOL m_bInitialized; +}; +//--------------------------------------------------------------------------- +#endif // AsyncSocketExH diff --git a/source/filezilla/AsyncSocketExLayer.cpp b/source/filezilla/AsyncSocketExLayer.cpp index 73e9211f..a7326b4c 100644 --- a/source/filezilla/AsyncSocketExLayer.cpp +++ b/source/filezilla/AsyncSocketExLayer.cpp @@ -1,77 +1,16 @@ -/*CAsyncSocketEx by Tim Kosse (Tim.Kosse@gmx.de) - Version 1.1 (2002-11-01) --------------------------------------------------------- - -Introduction: -------------- - -CAsyncSocketEx is a replacement for the MFC class CAsyncSocket. -This class was written because CAsyncSocket is not the fastest WinSock -wrapper and it's very hard to add new functionality to CAsyncSocket -derived classes. This class offers the same functionality as CAsyncSocket. -Also, CAsyncSocketEx offers some enhancements which were not possible with -CAsyncSocket without some tricks. - -How do I use it? ----------------- -Basically exactly like CAsyncSocket. -To use CAsyncSocketEx, just replace all occurrences of CAsyncSocket in your -code with CAsyncSocketEx, if you did not enhance CAsyncSocket yourself in -any way, you won't have to change anything else in your code. - -Why is CAsyncSocketEx faster? ------------------------------ - -CAsyncSocketEx is slightly faster when dispatching notification event messages. -First have a look at the way CAsyncSocket works. For each thread that uses -CAsyncSocket, a window is created. CAsyncSocket calls WSAAsyncSelect with -the handle of that window. Until here, CAsyncSocketEx works the same way. -But CAsyncSocket uses only one window message (WM_SOCKET_NOTIFY) for all -sockets within one thread. When the window recieve WM_SOCKET_NOTIFY, wParam -contains the socket handle and the window looks up an CAsyncSocket instance -using a map. CAsyncSocketEx works differently. It's helper window uses a -wide range of different window messages (WM_USER through 0xBFFF) and passes -a different message to WSAAsyncSelect for each socket. When a message in -the specified range is received, CAsyncSocketEx looks up the pointer to a -CAsyncSocketEx instance in an Array using the index of message - WM_USER. -As you can see, CAsyncSocketEx uses the helper window in a more efficient -way, as it don't have to use the slow maps to lookup it's own instance. -Still, speed increase is not very much, but it may be noticeable when using -a lot of sockets at the same time. -Please note that the changes do not affect the raw data throughput rate, -CAsyncSocketEx only dispatches the notification messages faster. - -What else does CAsyncSocketEx offer? ------------------------------------- - -CAsyncSocketEx offers a flexible layer system. One example is the proxy layer. -Just create an instance of the proxy layer, configure it and add it to the layer -chain of your CAsyncSocketEx instance. After that, you can connect through -proxies. -Benefit: You don't have to change much to use the layer system. -Another layer that is currently in development is the SSL layer to establish -SSL encrypted connections. - -License -------- - -Feel free to use this class, as long as you don't claim that you wrote it -and this copyright notice stays intact in the source files. -If you use this class in commercial applications, please send a short message -to tim.kosse@gmx.de -*/#include "stdafx.h" +// CAsyncSocketEx by Tim Kosse (Tim.Kosse@gmx.de) +// Version 1.1 (2002-11-01) +//--------------------------------------------------------------------------- +// Feel free to use this class, as long as you don't claim that you wrote it +// and this copyright notice stays intact in the source files. +// If you use this class in commercial applications, please send a short message +// to tim.kosse@gmx.de +//--------------------------------------------------------------------------- +#include "stdafx.h" #include "AsyncSocketExLayer.h" #include "AsyncSocketEx.h" -#ifdef _DEBUG - #undef THIS_FILE - static char THIS_FILE[]=__FILE__; - #ifdef DEBUG_NEW - #define new DEBUG_NEW - #endif -#endif - #define WM_SOCKETEX_NOTIFY (WM_USER+3) @@ -81,980 +20,963 @@ to tim.kosse@gmx.de CAsyncSocketExLayer::CAsyncSocketExLayer() { - m_pOwnerSocket = NULL; - m_pNextLayer = NULL; - m_pPrevLayer = NULL; + m_pOwnerSocket = NULL; + m_pNextLayer = NULL; + m_pPrevLayer = NULL; - m_nLayerState = notsock; - m_nCriticalError=0; + m_nLayerState = notsock; + m_nCriticalError=0; - m_nPendingEvents = 0; + m_nPendingEvents = 0; - m_nFamily = AF_UNSPEC; - m_lEvent = 0; - m_lpszSocketAddress = 0; - m_nSocketPort = 0; + m_nFamily = AF_UNSPEC; + m_lEvent = 0; + m_lpszSocketAddress = 0; + m_nSocketPort = 0; - m_nextAddr = 0; - m_addrInfo = 0; + m_nextAddr = 0; + m_addrInfo = 0; } CAsyncSocketExLayer::~CAsyncSocketExLayer() { - delete [] m_lpszSocketAddress; + delete [] m_lpszSocketAddress; } CAsyncSocketExLayer *CAsyncSocketExLayer::AddLayer(CAsyncSocketExLayer *pLayer, CAsyncSocketEx *pOwnerSocket) { - ASSERT(pLayer); - ASSERT(pOwnerSocket); - if (m_pNextLayer) - { - return m_pNextLayer->AddLayer(pLayer, pOwnerSocket); - } - else - { - ASSERT(m_pOwnerSocket==pOwnerSocket); - pLayer->Init(this, m_pOwnerSocket); - m_pNextLayer=pLayer; - } - return m_pNextLayer; + DebugAssert(pLayer); + DebugAssert(pOwnerSocket); + if (m_pNextLayer) + { + return m_pNextLayer->AddLayer(pLayer, pOwnerSocket); + } + else + { + DebugAssert(m_pOwnerSocket==pOwnerSocket); + pLayer->Init(this, m_pOwnerSocket); + m_pNextLayer=pLayer; + } + return m_pNextLayer; } int CAsyncSocketExLayer::Receive(void* lpBuf, int nBufLen, int nFlags /*=0*/) { - int Result = ReceiveNext(lpBuf, nBufLen, nFlags); - return Result; + return ReceiveNext(lpBuf, nBufLen, nFlags); } int CAsyncSocketExLayer::Send(const void* lpBuf, int nBufLen, int nFlags /*=0*/) { - int Result = SendNext(lpBuf, nBufLen, nFlags); - return Result; + return SendNext(lpBuf, nBufLen, nFlags); } void CAsyncSocketExLayer::OnReceive(int nErrorCode) { - if (m_pPrevLayer) - { - m_pPrevLayer->OnReceive(nErrorCode); - } - else - { - if (m_pOwnerSocket->m_lEvent&FD_READ) - { - m_pOwnerSocket->OnReceive(nErrorCode); - } - } + if (m_pPrevLayer) + { + m_pPrevLayer->OnReceive(nErrorCode); + } + else + { + if (m_pOwnerSocket->m_lEvent&FD_READ) + { + m_pOwnerSocket->OnReceive(nErrorCode); + } + } } void CAsyncSocketExLayer::OnSend(int nErrorCode) { - if (m_pPrevLayer) - { - m_pPrevLayer->OnSend(nErrorCode); - } - else - { - if (m_pOwnerSocket->m_lEvent&FD_WRITE) - { - m_pOwnerSocket->OnSend(nErrorCode); - } - } + if (m_pPrevLayer) + { + m_pPrevLayer->OnSend(nErrorCode); + } + else + { + if (m_pOwnerSocket->m_lEvent&FD_WRITE) + { + m_pOwnerSocket->OnSend(nErrorCode); + } + } } void CAsyncSocketExLayer::OnConnect(int nErrorCode) { - TriggerEvent(FD_CONNECT, nErrorCode, TRUE); + TriggerEvent(FD_CONNECT, nErrorCode, TRUE); } void CAsyncSocketExLayer::OnAccept(int nErrorCode) { - if (m_pPrevLayer) - m_pPrevLayer->OnAccept(nErrorCode); - else - if (m_pOwnerSocket->m_lEvent&FD_ACCEPT) - m_pOwnerSocket->OnAccept(nErrorCode); + if (m_pPrevLayer) + m_pPrevLayer->OnAccept(nErrorCode); + else + if (m_pOwnerSocket->m_lEvent&FD_ACCEPT) + m_pOwnerSocket->OnAccept(nErrorCode); } void CAsyncSocketExLayer::OnClose(int nErrorCode) { - if (m_pPrevLayer) - m_pPrevLayer->OnClose(nErrorCode); - else - if (m_pOwnerSocket->m_lEvent&FD_CLOSE) - m_pOwnerSocket->OnClose(nErrorCode); + if (m_pPrevLayer) + m_pPrevLayer->OnClose(nErrorCode); + else + if (m_pOwnerSocket->m_lEvent&FD_CLOSE) + m_pOwnerSocket->OnClose(nErrorCode); } BOOL CAsyncSocketExLayer::TriggerEvent(long lEvent, int nErrorCode, BOOL bPassThrough /*=FALSE*/ ) { - ASSERT(m_pOwnerSocket); - if (m_pOwnerSocket->m_SocketData.hSocket==INVALID_SOCKET) - { - return FALSE; - } - - if (!bPassThrough) - { - if (m_nPendingEvents & lEvent) - { - return TRUE; - } - - m_nPendingEvents |= lEvent; - } - - if (lEvent & FD_CONNECT) - { - ASSERT(bPassThrough); - if (!nErrorCode) - { - ASSERT(bPassThrough && (GetLayerState()==connected || GetLayerState()==attached)); - } - else if (nErrorCode) - { - SetLayerState(aborted); - m_nCriticalError=nErrorCode; - } - } - else if (lEvent & FD_CLOSE) - { - if (!nErrorCode) - { - SetLayerState(closed); - } - else - { - SetLayerState(aborted); - m_nCriticalError = nErrorCode; - } - } - ASSERT(m_pOwnerSocket->m_pLocalAsyncSocketExThreadData); - ASSERT(m_pOwnerSocket->m_pLocalAsyncSocketExThreadData->m_pHelperWindow); - ASSERT(m_pOwnerSocket->m_SocketData.nSocketIndex!=-1); - t_LayerNotifyMsg *pMsg=new t_LayerNotifyMsg; - pMsg->hSocket = m_pOwnerSocket->m_SocketData.hSocket; - pMsg->lEvent = ( lEvent % 0xffff ) + ( nErrorCode << 16); - pMsg->pLayer=bPassThrough?m_pPrevLayer:this; - BOOL res=PostMessage(m_pOwnerSocket->GetHelperWindowHandle(), WM_USER, (WPARAM)m_pOwnerSocket->m_SocketData.nSocketIndex, (LPARAM)pMsg); - if (!res) - { - delete pMsg; - } - return res; + DebugAssert(m_pOwnerSocket); + if (m_pOwnerSocket->m_SocketData.hSocket==INVALID_SOCKET) + { + return FALSE; + } + + if (!bPassThrough) + { + if (m_nPendingEvents & lEvent) + { + return TRUE; + } + + m_nPendingEvents |= lEvent; + } + + if (lEvent & FD_CONNECT) + { + DebugAssert(bPassThrough); + if (!nErrorCode) + { + DebugAssert(bPassThrough && (GetLayerState()==connected || GetLayerState()==attached)); + } + else if (nErrorCode) + { + SetLayerState(aborted); + m_nCriticalError=nErrorCode; + } + } + else if (lEvent & FD_CLOSE) + { + if (!nErrorCode) + { + SetLayerState(closed); + } + else + { + SetLayerState(aborted); + m_nCriticalError = nErrorCode; + } + } + DebugAssert(m_pOwnerSocket->m_pLocalAsyncSocketExThreadData); + DebugAssert(m_pOwnerSocket->m_pLocalAsyncSocketExThreadData->m_pHelperWindow); + DebugAssert(m_pOwnerSocket->m_SocketData.nSocketIndex!=-1); + t_LayerNotifyMsg *pMsg=new t_LayerNotifyMsg; + pMsg->hSocket = m_pOwnerSocket->m_SocketData.hSocket; + pMsg->lEvent = ( lEvent % 0xffff ) + ( nErrorCode << 16); + pMsg->pLayer=bPassThrough?m_pPrevLayer:this; + BOOL res=PostMessage(m_pOwnerSocket->GetHelperWindowHandle(), WM_USER, (WPARAM)m_pOwnerSocket->m_SocketData.nSocketIndex, (LPARAM)pMsg); + if (!res) + { + delete pMsg; + } + return res; } void CAsyncSocketExLayer::Close() { - CloseNext(); + CloseNext(); } void CAsyncSocketExLayer::CloseNext() { - if (m_addrInfo) - freeaddrinfo(m_addrInfo); - m_nextAddr = 0; - m_addrInfo = 0; + if (m_addrInfo) + freeaddrinfo(m_addrInfo); + m_nextAddr = 0; + m_addrInfo = 0; - m_nPendingEvents = 0; + m_nPendingEvents = 0; - SetLayerState(notsock); - if (m_pNextLayer) - m_pNextLayer->Close(); + SetLayerState(notsock); + if (m_pNextLayer) + m_pNextLayer->Close(); } BOOL CAsyncSocketExLayer::Connect(LPCTSTR lpszHostAddress, UINT nHostPort) { - return ConnectNext(lpszHostAddress, nHostPort); + return ConnectNext(lpszHostAddress, nHostPort); } BOOL CAsyncSocketExLayer::Connect( const SOCKADDR* lpSockAddr, int nSockAddrLen ) { - return ConnectNext(lpSockAddr, nSockAddrLen); + return ConnectNext(lpSockAddr, nSockAddrLen); } int CAsyncSocketExLayer::SendNext(const void *lpBuf, int nBufLen, int nFlags /*=0*/) { - if (m_nCriticalError) - { - WSASetLastError(m_nCriticalError); - return SOCKET_ERROR; - } - else if (GetLayerState()==notsock) - { - WSASetLastError(WSAENOTSOCK); - return SOCKET_ERROR; - } - else if (GetLayerState()==unconnected || GetLayerState()==connecting || GetLayerState()==listening) - { - WSASetLastError(WSAENOTCONN); - return SOCKET_ERROR; - } - - if (!m_pNextLayer) - { - ASSERT(m_pOwnerSocket); - int sent = send(m_pOwnerSocket->GetSocketHandle(), (LPSTR)lpBuf, nBufLen, nFlags); - return sent; - } - else - { - return m_pNextLayer->Send(lpBuf, nBufLen, nFlags); - } + if (m_nCriticalError) + { + WSASetLastError(m_nCriticalError); + return SOCKET_ERROR; + } + else if (GetLayerState()==notsock) + { + WSASetLastError(WSAENOTSOCK); + return SOCKET_ERROR; + } + else if (GetLayerState()==unconnected || GetLayerState()==connecting || GetLayerState()==listening) + { + WSASetLastError(WSAENOTCONN); + return SOCKET_ERROR; + } + + if (!m_pNextLayer) + { + DebugAssert(m_pOwnerSocket); + int sent = send(m_pOwnerSocket->GetSocketHandle(), (LPSTR)lpBuf, nBufLen, nFlags); + return sent; + } + else + { + return m_pNextLayer->Send(lpBuf, nBufLen, nFlags); + } } int CAsyncSocketExLayer::ReceiveNext(void *lpBuf, int nBufLen, int nFlags /*=0*/) { - if (m_nCriticalError) - { - WSASetLastError(m_nCriticalError); - return SOCKET_ERROR; - } - else if (GetLayerState()==notsock) - { - WSASetLastError(WSAENOTSOCK); - return SOCKET_ERROR; - } - else if (GetLayerState()==unconnected || GetLayerState()==connecting || GetLayerState()==listening) - { - WSASetLastError(WSAENOTCONN); - return SOCKET_ERROR; - } - - if (!m_pNextLayer) - { - ASSERT(m_pOwnerSocket); - return recv(m_pOwnerSocket->GetSocketHandle(), (LPSTR)lpBuf, nBufLen, nFlags); - } - else - { - return m_pNextLayer->Receive(lpBuf, nBufLen, nFlags); - } + if (m_nCriticalError) + { + WSASetLastError(m_nCriticalError); + return SOCKET_ERROR; + } + else if (GetLayerState()==notsock) + { + WSASetLastError(WSAENOTSOCK); + return SOCKET_ERROR; + } + else if (GetLayerState()==unconnected || GetLayerState()==connecting || GetLayerState()==listening) + { + WSASetLastError(WSAENOTCONN); + return SOCKET_ERROR; + } + + if (!m_pNextLayer) + { + DebugAssert(m_pOwnerSocket); + return recv(m_pOwnerSocket->GetSocketHandle(), (LPSTR)lpBuf, nBufLen, nFlags); + } + else + { + return m_pNextLayer->Receive(lpBuf, nBufLen, nFlags); + } } BOOL CAsyncSocketExLayer::ConnectNext(LPCTSTR lpszHostAddress, UINT nHostPort) { - ASSERT(GetLayerState()==unconnected); - ASSERT(m_pOwnerSocket); - BOOL res = FALSE; - if (m_pNextLayer) - res = m_pNextLayer->Connect(lpszHostAddress, nHostPort); - else if (m_nFamily == AF_INET) - { - USES_CONVERSION; - - ASSERT(lpszHostAddress != NULL); - - SOCKADDR_IN sockAddr; - memset(&sockAddr,0,sizeof(sockAddr)); - - LPSTR lpszAscii = T2A((LPTSTR)lpszHostAddress); - sockAddr.sin_family = AF_INET; - sockAddr.sin_addr.s_addr = inet_addr(lpszAscii); - - if (sockAddr.sin_addr.s_addr == INADDR_NONE) - { - LPHOSTENT lphost; - lphost = gethostbyname(lpszAscii); - if (lphost != NULL) - sockAddr.sin_addr.s_addr = ((LPIN_ADDR)lphost->h_addr)->s_addr; - else - { - WSASetLastError(WSAEINVAL); - res = FALSE; - } - } - - sockAddr.sin_port = htons((u_short)nHostPort); - - res = (SOCKET_ERROR != connect(m_pOwnerSocket->GetSocketHandle(), (SOCKADDR*)&sockAddr, sizeof(sockAddr)) ); - } - else if (m_nFamily == AF_INET6 || m_nFamily == AF_UNSPEC) - { - USES_CONVERSION; - - ASSERT(lpszHostAddress != NULL); - - addrinfo hints, *res0, *res1; - SOCKET hSocket; - int error; - char port[10]; - - freeaddrinfo(m_addrInfo); - m_nextAddr = 0; - m_addrInfo = 0; - - memset(&hints, 0, sizeof(addrinfo)); - hints.ai_family = m_nFamily; - hints.ai_socktype = SOCK_STREAM; - hints.ai_flags = 0; - _snprintf(port, 9, "%lu", nHostPort); - error = getaddrinfo(T2CA(lpszHostAddress), port, &hints, &res0); - if (error) - return FALSE; - - for (res1 = res0; res1; res1 = res1->ai_next) - { - if (m_nFamily == AF_UNSPEC) - hSocket = socket(res1->ai_family, res1->ai_socktype, res1->ai_protocol); - else - hSocket = m_pOwnerSocket->GetSocketHandle(); - - if (INVALID_SOCKET == hSocket) - { - res = FALSE; - continue; - } - - if (m_nFamily == AF_UNSPEC) - { - m_pOwnerSocket->m_SocketData.hSocket = hSocket; - m_pOwnerSocket->AttachHandle(hSocket); - if (!m_pOwnerSocket->AsyncSelect(m_lEvent)) - { - m_pOwnerSocket->Close(); - res = FALSE; - continue ; - } - if (m_pOwnerSocket->m_pFirstLayer) - { - if (WSAAsyncSelect(m_pOwnerSocket->m_SocketData.hSocket, m_pOwnerSocket->GetHelperWindowHandle(), m_pOwnerSocket->m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE) ) - { - m_pOwnerSocket->Close(); - res = FALSE; - continue; - } - } - if (m_pOwnerSocket->m_pendingCallbacks.size()) - PostMessage(m_pOwnerSocket->GetHelperWindowHandle(), WM_USER + 2, (WPARAM)m_pOwnerSocket->m_SocketData.nSocketIndex, 0); - } - - if (m_nFamily == AF_UNSPEC) - { - m_pOwnerSocket->m_SocketData.nFamily = m_nFamily = res1->ai_family; - if (!m_pOwnerSocket->Bind(m_nSocketPort, m_lpszSocketAddress)) - { - m_pOwnerSocket->m_SocketData.nFamily = m_nFamily = AF_UNSPEC; - Close(); - continue; - } - } - - if (!( res = ( SOCKET_ERROR != connect(m_pOwnerSocket->GetSocketHandle(), res1->ai_addr, res1->ai_addrlen) ) ) - && WSAGetLastError() != WSAEWOULDBLOCK) - { - if (hints.ai_family == AF_UNSPEC) - { - m_nFamily = AF_UNSPEC; - Close(); - } - continue ; - } - - m_nFamily = res1->ai_family; - m_pOwnerSocket->m_SocketData.nFamily = res1->ai_family; - res = TRUE; - break; - } - - if (res1) - res1 = res0->ai_next; - - if (res1) - { - m_addrInfo = res0; - m_nextAddr = res1; - } - else - freeaddrinfo(res0); - - if (INVALID_SOCKET == m_pOwnerSocket->GetSocketHandle()) - res = FALSE ; - } - - if (res || WSAGetLastError() == WSAEWOULDBLOCK) - { - SetLayerState(connecting); - } - return res; + DebugAssert(GetLayerState()==unconnected); + DebugAssert(m_pOwnerSocket); + BOOL res = FALSE; + if (m_pNextLayer) + res = m_pNextLayer->Connect(lpszHostAddress, nHostPort); + else if (m_nFamily == AF_INET) + { + USES_CONVERSION; + + DebugAssert(lpszHostAddress != NULL); + + SOCKADDR_IN sockAddr; + memset(&sockAddr,0,sizeof(sockAddr)); + + LPSTR lpszAscii = T2A((LPTSTR)lpszHostAddress); + sockAddr.sin_family = AF_INET; + sockAddr.sin_addr.s_addr = inet_addr(lpszAscii); + + if (sockAddr.sin_addr.s_addr == INADDR_NONE) + { + LPHOSTENT lphost; + lphost = gethostbyname(lpszAscii); + if (lphost != NULL) + sockAddr.sin_addr.s_addr = ((LPIN_ADDR)lphost->h_addr)->s_addr; + else + { + WSASetLastError(WSAEINVAL); + res = FALSE; + } + } + + sockAddr.sin_port = htons((u_short)nHostPort); + + res = (SOCKET_ERROR != connect(m_pOwnerSocket->GetSocketHandle(), (SOCKADDR*)&sockAddr, sizeof(sockAddr)) ); + } + else if (m_nFamily == AF_INET6 || m_nFamily == AF_UNSPEC) + { + USES_CONVERSION; + + DebugAssert(lpszHostAddress != NULL); + + addrinfo hints, *res0, *res1; + SOCKET hSocket; + int error; + char port[10]; + + freeaddrinfo(m_addrInfo); + m_nextAddr = 0; + m_addrInfo = 0; + + memset(&hints, 0, sizeof(addrinfo)); + hints.ai_family = m_nFamily; + hints.ai_socktype = SOCK_STREAM; + hints.ai_flags = 0; + _snprintf(port, 9, "%lu", nHostPort); + error = getaddrinfo(T2CA(lpszHostAddress), port, &hints, &res0); + if (error) + return FALSE; + + for (res1 = res0; res1; res1 = res1->ai_next) + { + if (m_nFamily == AF_UNSPEC) + hSocket = socket(res1->ai_family, res1->ai_socktype, res1->ai_protocol); + else + hSocket = m_pOwnerSocket->GetSocketHandle(); + + if (INVALID_SOCKET == hSocket) + { + res = FALSE; + continue; + } + + if (m_nFamily == AF_UNSPEC) + { + m_pOwnerSocket->m_SocketData.hSocket = hSocket; + m_pOwnerSocket->AttachHandle(hSocket); + if (!m_pOwnerSocket->AsyncSelect(m_lEvent)) + { + m_pOwnerSocket->Close(); + res = FALSE; + continue ; + } + if (m_pOwnerSocket->m_pFirstLayer) + { + if (WSAAsyncSelect(m_pOwnerSocket->m_SocketData.hSocket, m_pOwnerSocket->GetHelperWindowHandle(), m_pOwnerSocket->m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE) ) + { + m_pOwnerSocket->Close(); + res = FALSE; + continue; + } + } + if (m_pOwnerSocket->m_pendingCallbacks.size()) + PostMessage(m_pOwnerSocket->GetHelperWindowHandle(), WM_USER + 2, (WPARAM)m_pOwnerSocket->m_SocketData.nSocketIndex, 0); + } + + if (m_nFamily == AF_UNSPEC) + { + m_pOwnerSocket->m_SocketData.nFamily = m_nFamily = res1->ai_family; + if (!m_pOwnerSocket->Bind(m_nSocketPort, m_lpszSocketAddress)) + { + m_pOwnerSocket->m_SocketData.nFamily = m_nFamily = AF_UNSPEC; + Close(); + continue; + } + } + + if (!( res = ( SOCKET_ERROR != connect(m_pOwnerSocket->GetSocketHandle(), res1->ai_addr, res1->ai_addrlen) ) ) + && WSAGetLastError() != WSAEWOULDBLOCK) + { + if (hints.ai_family == AF_UNSPEC) + { + m_nFamily = AF_UNSPEC; + Close(); + } + continue ; + } + + m_nFamily = res1->ai_family; + m_pOwnerSocket->m_SocketData.nFamily = res1->ai_family; + res = TRUE; + break; + } + + if (res1) + res1 = res0->ai_next; + + if (res1) + { + m_addrInfo = res0; + m_nextAddr = res1; + } + else + freeaddrinfo(res0); + + if (INVALID_SOCKET == m_pOwnerSocket->GetSocketHandle()) + res = FALSE ; + } + + if (res || WSAGetLastError() == WSAEWOULDBLOCK) + { + SetLayerState(connecting); + } + return res; } BOOL CAsyncSocketExLayer::ConnectNext( const SOCKADDR* lpSockAddr, int nSockAddrLen ) { - ASSERT(GetLayerState()==unconnected); - ASSERT(m_pOwnerSocket); - BOOL res; - if (m_pNextLayer) - res=m_pNextLayer->Connect(lpSockAddr, nSockAddrLen); - else - res = (SOCKET_ERROR!=connect(m_pOwnerSocket->GetSocketHandle(), lpSockAddr, nSockAddrLen)); - - if (res || WSAGetLastError()==WSAEWOULDBLOCK) - SetLayerState(connecting); - return res; + DebugAssert(GetLayerState()==unconnected); + DebugAssert(m_pOwnerSocket); + BOOL res; + if (m_pNextLayer) + res=m_pNextLayer->Connect(lpSockAddr, nSockAddrLen); + else + res = (SOCKET_ERROR!=connect(m_pOwnerSocket->GetSocketHandle(), lpSockAddr, nSockAddrLen)); + + if (res || WSAGetLastError()==WSAEWOULDBLOCK) + SetLayerState(connecting); + return res; } //Gets the address of the peer socket to which the socket is connected -#ifdef _AFX - BOOL CAsyncSocketExLayer::GetPeerName( CString& rPeerAddress, UINT& rPeerPort ) { - return GetPeerNameNext(rPeerAddress, rPeerPort); + return GetPeerNameNext(rPeerAddress, rPeerPort); } BOOL CAsyncSocketExLayer::GetPeerNameNext( CString& rPeerAddress, UINT& rPeerPort ) { - if (m_pNextLayer) - { - return m_pNextLayer->GetPeerName(rPeerAddress, rPeerPort); - } - else - { - SOCKADDR* sockAddr; - int nSockAddrLen; - - if (m_nFamily == AF_INET6) - { - sockAddr = (SOCKADDR*)new SOCKADDR_IN6; - nSockAddrLen = sizeof(SOCKADDR_IN6); - } - else if (m_nFamily == AF_INET) - { - sockAddr = (SOCKADDR*)new SOCKADDR_IN; - nSockAddrLen = sizeof(SOCKADDR_IN); - } - - memset(sockAddr, 0, nSockAddrLen); - - BOOL bResult = GetPeerName(sockAddr, &nSockAddrLen); - - if (bResult) - { - if (m_nFamily == AF_INET6) - { - rPeerPort = ntohs(((SOCKADDR_IN6*)sockAddr)->sin6_port); - LPTSTR buf = Inet6AddrToString(((SOCKADDR_IN6*)sockAddr)->sin6_addr); - rPeerAddress = buf; - delete [] buf; - } - else if (m_nFamily == AF_INET) - { - rPeerPort = ntohs(((SOCKADDR_IN*)sockAddr)->sin_port); - rPeerAddress = inet_ntoa(((SOCKADDR_IN*)sockAddr)->sin_addr); - } - else - { - delete sockAddr; - return FALSE; - } - } - delete sockAddr; - - return bResult; - } + if (m_pNextLayer) + { + return m_pNextLayer->GetPeerName(rPeerAddress, rPeerPort); + } + else + { + SOCKADDR* sockAddr; + int nSockAddrLen; + + if (m_nFamily == AF_INET6) + { + sockAddr = (SOCKADDR*)new SOCKADDR_IN6; + nSockAddrLen = sizeof(SOCKADDR_IN6); + } + else if (m_nFamily == AF_INET) + { + sockAddr = (SOCKADDR*)new SOCKADDR_IN; + nSockAddrLen = sizeof(SOCKADDR_IN); + } + + memset(sockAddr, 0, nSockAddrLen); + + BOOL bResult = GetPeerName(sockAddr, &nSockAddrLen); + + if (bResult) + { + if (m_nFamily == AF_INET6) + { + rPeerPort = ntohs(((SOCKADDR_IN6*)sockAddr)->sin6_port); + LPTSTR buf = Inet6AddrToString(((SOCKADDR_IN6*)sockAddr)->sin6_addr); + rPeerAddress = buf; + delete [] buf; + } + else if (m_nFamily == AF_INET) + { + rPeerPort = ntohs(((SOCKADDR_IN*)sockAddr)->sin_port); + rPeerAddress = inet_ntoa(((SOCKADDR_IN*)sockAddr)->sin_addr); + } + else + { + delete sockAddr; + return FALSE; + } + } + delete sockAddr; + + return bResult; + } } -#endif //_AFX - BOOL CAsyncSocketExLayer::GetPeerName( SOCKADDR* lpSockAddr, int* lpSockAddrLen ) { - return GetPeerNameNext(lpSockAddr, lpSockAddrLen); + return GetPeerNameNext(lpSockAddr, lpSockAddrLen); } BOOL CAsyncSocketExLayer::GetPeerNameNext( SOCKADDR* lpSockAddr, int* lpSockAddrLen ) { - if (m_pNextLayer) - { - return m_pNextLayer->GetPeerName(lpSockAddr, lpSockAddrLen); - } - else - { - ASSERT(m_pOwnerSocket); - if ( !getpeername(m_pOwnerSocket->GetSocketHandle(), lpSockAddr, lpSockAddrLen) ) - { - return TRUE; - } - else - { - return FALSE; - } - } + if (m_pNextLayer) + { + return m_pNextLayer->GetPeerName(lpSockAddr, lpSockAddrLen); + } + else + { + DebugAssert(m_pOwnerSocket); + if ( !getpeername(m_pOwnerSocket->GetSocketHandle(), lpSockAddr, lpSockAddrLen) ) + { + return TRUE; + } + else + { + return FALSE; + } + } } //Gets the address of the sock socket to which the socket is connected -#ifdef _AFX - BOOL CAsyncSocketExLayer::GetSockName( CString& rSockAddress, UINT& rSockPort ) { - return GetSockNameNext(rSockAddress, rSockPort); + return GetSockNameNext(rSockAddress, rSockPort); } BOOL CAsyncSocketExLayer::GetSockNameNext( CString& rSockAddress, UINT& rSockPort ) { - if (m_pNextLayer) - return m_pNextLayer->GetSockName(rSockAddress, rSockPort); - else - { - SOCKADDR* sockAddr; - int nSockAddrLen; - - if (m_nFamily == AF_INET6) - { - sockAddr = (SOCKADDR*)new SOCKADDR_IN6; - nSockAddrLen = sizeof(SOCKADDR_IN6); - } - else if (m_nFamily == AF_INET) - { - sockAddr = (SOCKADDR*)new SOCKADDR_IN; - nSockAddrLen = sizeof(SOCKADDR_IN); - } - - memset(sockAddr, 0, nSockAddrLen); - - BOOL bResult = GetSockName(sockAddr, &nSockAddrLen); - - if (bResult) - { - if (m_nFamily == AF_INET6) - { - rSockPort = ntohs(((SOCKADDR_IN6*)sockAddr)->sin6_port); - LPTSTR buf = Inet6AddrToString(((SOCKADDR_IN6*)sockAddr)->sin6_addr); - rSockAddress = buf; - delete [] buf; - } - else if (m_nFamily == AF_INET) - { - rSockPort = ntohs(((SOCKADDR_IN*)sockAddr)->sin_port); - rSockAddress = inet_ntoa(((SOCKADDR_IN*)sockAddr)->sin_addr); - } - else - { - delete sockAddr; - return FALSE; - } - } - delete sockAddr; - - return bResult; - } + if (m_pNextLayer) + return m_pNextLayer->GetSockName(rSockAddress, rSockPort); + else + { + SOCKADDR* sockAddr; + int nSockAddrLen; + + if (m_nFamily == AF_INET6) + { + sockAddr = (SOCKADDR*)new SOCKADDR_IN6; + nSockAddrLen = sizeof(SOCKADDR_IN6); + } + else if (m_nFamily == AF_INET) + { + sockAddr = (SOCKADDR*)new SOCKADDR_IN; + nSockAddrLen = sizeof(SOCKADDR_IN); + } + + memset(sockAddr, 0, nSockAddrLen); + + BOOL bResult = GetSockName(sockAddr, &nSockAddrLen); + + if (bResult) + { + if (m_nFamily == AF_INET6) + { + rSockPort = ntohs(((SOCKADDR_IN6*)sockAddr)->sin6_port); + LPTSTR buf = Inet6AddrToString(((SOCKADDR_IN6*)sockAddr)->sin6_addr); + rSockAddress = buf; + delete [] buf; + } + else if (m_nFamily == AF_INET) + { + rSockPort = ntohs(((SOCKADDR_IN*)sockAddr)->sin_port); + rSockAddress = inet_ntoa(((SOCKADDR_IN*)sockAddr)->sin_addr); + } + else + { + delete sockAddr; + return FALSE; + } + } + delete sockAddr; + + return bResult; + } } -#endif //_AFX - BOOL CAsyncSocketExLayer::GetSockName( SOCKADDR* lpSockAddr, int* lpSockAddrLen ) { - return GetSockNameNext(lpSockAddr, lpSockAddrLen); + return GetSockNameNext(lpSockAddr, lpSockAddrLen); } BOOL CAsyncSocketExLayer::GetSockNameNext( SOCKADDR* lpSockAddr, int* lpSockAddrLen ) { - if (m_pNextLayer) - return m_pNextLayer->GetSockName(lpSockAddr, lpSockAddrLen); - else - { - ASSERT(m_pOwnerSocket); - if ( !getsockname(m_pOwnerSocket->GetSocketHandle(), lpSockAddr, lpSockAddrLen) ) - return TRUE; - else - return FALSE; - } + if (m_pNextLayer) + return m_pNextLayer->GetSockName(lpSockAddr, lpSockAddrLen); + else + { + DebugAssert(m_pOwnerSocket); + if ( !getsockname(m_pOwnerSocket->GetSocketHandle(), lpSockAddr, lpSockAddrLen) ) + return TRUE; + else + return FALSE; + } } void CAsyncSocketExLayer::Init(CAsyncSocketExLayer *pPrevLayer, CAsyncSocketEx *pOwnerSocket) { - ASSERT(pOwnerSocket); - m_pPrevLayer=pPrevLayer; - m_pOwnerSocket=pOwnerSocket; - m_pNextLayer=0; -#ifndef NOSOCKETSTATES - SetLayerState(pOwnerSocket->GetState()); -#endif //NOSOCKETSTATES + DebugAssert(pOwnerSocket); + m_pPrevLayer=pPrevLayer; + m_pOwnerSocket=pOwnerSocket; + m_pNextLayer=0; + SetLayerState(pOwnerSocket->GetState()); } int CAsyncSocketExLayer::GetLayerState() { - return m_nLayerState; + return m_nLayerState; } void CAsyncSocketExLayer::SetLayerState(int nLayerState) { - ASSERT(m_pOwnerSocket); - int nOldLayerState=GetLayerState(); - m_nLayerState=nLayerState; - if (nOldLayerState!=nLayerState) - DoLayerCallback(LAYERCALLBACK_STATECHANGE, GetLayerState(), nOldLayerState); + DebugAssert(m_pOwnerSocket); + int nOldLayerState=GetLayerState(); + m_nLayerState=nLayerState; + if (nOldLayerState!=nLayerState) + DoLayerCallback(LAYERCALLBACK_STATECHANGE, GetLayerState(), nOldLayerState); } void CAsyncSocketExLayer::CallEvent(int nEvent, int nErrorCode) { - if (m_nCriticalError) - { - return; - } - m_nCriticalError = nErrorCode; - switch (nEvent) - { - case FD_READ: - case FD_FORCEREAD: - if (GetLayerState()==connecting && !nErrorCode) - { - m_nPendingEvents |= nEvent; - break; - } - else if (GetLayerState()==attached) - SetLayerState(connected); - if (nEvent & FD_READ) - m_nPendingEvents &= ~FD_READ; - else - m_nPendingEvents &= ~FD_FORCEREAD; - if (GetLayerState()==connected || nErrorCode) - { - if (nErrorCode) - SetLayerState(aborted); - OnReceive(nErrorCode); - } - break; - case FD_WRITE: - if (GetLayerState()==connecting && !nErrorCode) - { - m_nPendingEvents |= nEvent; - break; - } - else if (GetLayerState()==attached) - SetLayerState(connected); - m_nPendingEvents &= ~FD_WRITE; - if (GetLayerState()==connected || nErrorCode) - { - if (nErrorCode) - SetLayerState(aborted); - OnSend(nErrorCode); - } - break; - case FD_CONNECT: - if (GetLayerState()==connecting || GetLayerState() == attached) - { - if (!nErrorCode) - SetLayerState(connected); - else - { - if (!m_pNextLayer && m_nextAddr) - if (TryNextProtocol()) - { - m_nCriticalError = 0; - return; - } - SetLayerState(aborted); - } - m_nPendingEvents &= ~FD_CONNECT; - OnConnect(nErrorCode); - - if (!nErrorCode) - { - if ((m_nPendingEvents & FD_READ) && GetLayerState()==connected) - OnReceive(0); - if ((m_nPendingEvents & FD_FORCEREAD) && GetLayerState()==connected) - OnReceive(0); - if ((m_nPendingEvents & FD_WRITE) && GetLayerState()==connected) - OnSend(0); - } - m_nPendingEvents = 0; - } - break; - case FD_ACCEPT: - if (GetLayerState()==listening) - { - if (nErrorCode) - SetLayerState(aborted); - m_nPendingEvents &= ~FD_ACCEPT; - OnAccept(nErrorCode); - } - break; - case FD_CLOSE: - if (GetLayerState()==connected || GetLayerState()==attached) - { - if (nErrorCode) - SetLayerState(aborted); - else - SetLayerState(closed); - m_nPendingEvents &= ~FD_CLOSE; - OnClose(nErrorCode); - } - break; - } + if (m_nCriticalError) + { + return; + } + m_nCriticalError = nErrorCode; + switch (nEvent) + { + case FD_READ: + case FD_FORCEREAD: + if (GetLayerState()==connecting && !nErrorCode) + { + m_nPendingEvents |= nEvent; + break; + } + else if (GetLayerState()==attached) + SetLayerState(connected); + if (nEvent & FD_READ) + m_nPendingEvents &= ~FD_READ; + else + m_nPendingEvents &= ~FD_FORCEREAD; + if (GetLayerState()==connected || nErrorCode) + { + if (nErrorCode) + SetLayerState(aborted); + OnReceive(nErrorCode); + } + break; + case FD_WRITE: + if (GetLayerState()==connecting && !nErrorCode) + { + m_nPendingEvents |= nEvent; + break; + } + else if (GetLayerState()==attached) + SetLayerState(connected); + m_nPendingEvents &= ~FD_WRITE; + if (GetLayerState()==connected || nErrorCode) + { + if (nErrorCode) + SetLayerState(aborted); + OnSend(nErrorCode); + } + break; + case FD_CONNECT: + if (GetLayerState()==connecting || GetLayerState() == attached) + { + if (!nErrorCode) + SetLayerState(connected); + else + { + if (!m_pNextLayer && m_nextAddr) + if (TryNextProtocol()) + { + m_nCriticalError = 0; + return; + } + SetLayerState(aborted); + } + m_nPendingEvents &= ~FD_CONNECT; + OnConnect(nErrorCode); + + if (!nErrorCode) + { + if ((m_nPendingEvents & FD_READ) && GetLayerState()==connected) + OnReceive(0); + if ((m_nPendingEvents & FD_FORCEREAD) && GetLayerState()==connected) + OnReceive(0); + if ((m_nPendingEvents & FD_WRITE) && GetLayerState()==connected) + OnSend(0); + } + m_nPendingEvents = 0; + } + break; + case FD_ACCEPT: + if (GetLayerState()==listening) + { + if (nErrorCode) + SetLayerState(aborted); + m_nPendingEvents &= ~FD_ACCEPT; + OnAccept(nErrorCode); + } + break; + case FD_CLOSE: + if (GetLayerState()==connected || GetLayerState()==attached) + { + if (nErrorCode) + SetLayerState(aborted); + else + SetLayerState(closed); + m_nPendingEvents &= ~FD_CLOSE; + OnClose(nErrorCode); + } + break; + } } //Creates a socket BOOL CAsyncSocketExLayer::Create(UINT nSocketPort, int nSocketType, - long lEvent, LPCTSTR lpszSocketAddress, int nFamily /*=AF_INET*/) + long lEvent, LPCTSTR lpszSocketAddress, int nFamily /*=AF_INET*/) { - return CreateNext(nSocketPort, nSocketType, lEvent, lpszSocketAddress, nFamily); + return CreateNext(nSocketPort, nSocketType, lEvent, lpszSocketAddress, nFamily); } BOOL CAsyncSocketExLayer::CreateNext(UINT nSocketPort, int nSocketType, long lEvent, LPCTSTR lpszSocketAddress, int nFamily /*=AF_INET*/) { - ASSERT(GetLayerState()==notsock); - BOOL res = FALSE; - - m_nFamily = nFamily; - - if (m_pNextLayer) - res = m_pNextLayer->Create(nSocketPort, nSocketType, lEvent, lpszSocketAddress, nFamily); - else if (m_nFamily == AF_UNSPEC) - { - m_lEvent = lEvent; - delete [] m_lpszSocketAddress; - if (lpszSocketAddress && *lpszSocketAddress) - { - m_lpszSocketAddress = new TCHAR[_tcslen(lpszSocketAddress) + 1]; - _tcscpy(m_lpszSocketAddress, lpszSocketAddress); - } - else - m_lpszSocketAddress = 0; - m_nSocketPort = nSocketPort; - res = TRUE; - } - else - { - SOCKET hSocket=socket(nFamily, nSocketType, 0); - if (hSocket == INVALID_SOCKET) - { - m_pOwnerSocket->Close(); - return FALSE; - } - m_pOwnerSocket->m_SocketData.hSocket=hSocket; - m_pOwnerSocket->AttachHandle(hSocket); - if (!m_pOwnerSocket->AsyncSelect(lEvent)) - { - m_pOwnerSocket->Close(); - return FALSE; - } - if (m_pOwnerSocket->m_pFirstLayer) - { - if (WSAAsyncSelect(m_pOwnerSocket->m_SocketData.hSocket, m_pOwnerSocket->GetHelperWindowHandle(), m_pOwnerSocket->m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE) ) - { - m_pOwnerSocket->Close(); - return FALSE; - } - } - if (!m_pOwnerSocket->Bind(nSocketPort, lpszSocketAddress)) - { - m_pOwnerSocket->Close(); - return FALSE; - } - res = TRUE; - } - if (res) - SetLayerState(unconnected); - return res; + DebugAssert(GetLayerState()==notsock); + BOOL res = FALSE; + + m_nFamily = nFamily; + + if (m_pNextLayer) + res = m_pNextLayer->Create(nSocketPort, nSocketType, lEvent, lpszSocketAddress, nFamily); + else if (m_nFamily == AF_UNSPEC) + { + m_lEvent = lEvent; + delete [] m_lpszSocketAddress; + if (lpszSocketAddress && *lpszSocketAddress) + { + m_lpszSocketAddress = new TCHAR[_tcslen(lpszSocketAddress) + 1]; + _tcscpy(m_lpszSocketAddress, lpszSocketAddress); + } + else + m_lpszSocketAddress = 0; + m_nSocketPort = nSocketPort; + res = TRUE; + } + else + { + SOCKET hSocket=socket(nFamily, nSocketType, 0); + if (hSocket == INVALID_SOCKET) + { + m_pOwnerSocket->Close(); + return FALSE; + } + m_pOwnerSocket->m_SocketData.hSocket=hSocket; + m_pOwnerSocket->AttachHandle(hSocket); + if (!m_pOwnerSocket->AsyncSelect(lEvent)) + { + m_pOwnerSocket->Close(); + return FALSE; + } + if (m_pOwnerSocket->m_pFirstLayer) + { + if (WSAAsyncSelect(m_pOwnerSocket->m_SocketData.hSocket, m_pOwnerSocket->GetHelperWindowHandle(), m_pOwnerSocket->m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE) ) + { + m_pOwnerSocket->Close(); + return FALSE; + } + } + if (!m_pOwnerSocket->Bind(nSocketPort, lpszSocketAddress)) + { + m_pOwnerSocket->Close(); + return FALSE; + } + res = TRUE; + } + if (res) + SetLayerState(unconnected); + return res; } int CAsyncSocketExLayer::DoLayerCallback(int nType, int nParam1, int nParam2, char* str /*=0*/) { - if (!m_pOwnerSocket) - return 0; + if (!m_pOwnerSocket) + return 0; - int nError = WSAGetLastError(); + int nError = WSAGetLastError(); - t_callbackMsg msg; - msg.pLayer = this; - msg.nType = nType; - msg.nParam1 = nParam1; - msg.nParam2 = nParam2; - msg.str = str; + t_callbackMsg msg; + msg.pLayer = this; + msg.nType = nType; + msg.nParam1 = nParam1; + msg.nParam2 = nParam2; + msg.str = str; - m_pOwnerSocket->AddCallbackNotification(msg); + m_pOwnerSocket->AddCallbackNotification(msg); - WSASetLastError(nError); + WSASetLastError(nError); - return 0; + return 0; } BOOL CAsyncSocketExLayer::Listen( int nConnectionBacklog) { - return ListenNext( nConnectionBacklog); + return ListenNext( nConnectionBacklog); } BOOL CAsyncSocketExLayer::ListenNext( int nConnectionBacklog) { - ASSERT(GetLayerState()==unconnected); - BOOL res; - if (m_pNextLayer) - res=m_pNextLayer->Listen(nConnectionBacklog); - else - res=listen(m_pOwnerSocket->GetSocketHandle(), nConnectionBacklog); - if (res!=SOCKET_ERROR) - { - SetLayerState(listening); - } - return res!=SOCKET_ERROR; + DebugAssert(GetLayerState()==unconnected); + BOOL res; + if (m_pNextLayer) + res=m_pNextLayer->Listen(nConnectionBacklog); + else + res=listen(m_pOwnerSocket->GetSocketHandle(), nConnectionBacklog); + if (res!=SOCKET_ERROR) + { + SetLayerState(listening); + } + return res!=SOCKET_ERROR; } BOOL CAsyncSocketExLayer::Accept( CAsyncSocketEx& rConnectedSocket, SOCKADDR* lpSockAddr /*=NULL*/, int* lpSockAddrLen /*=NULL*/ ) { - return AcceptNext(rConnectedSocket, lpSockAddr, lpSockAddrLen); + return AcceptNext(rConnectedSocket, lpSockAddr, lpSockAddrLen); } BOOL CAsyncSocketExLayer::AcceptNext( CAsyncSocketEx& rConnectedSocket, SOCKADDR* lpSockAddr /*=NULL*/, int* lpSockAddrLen /*=NULL*/ ) { - ASSERT(GetLayerState()==listening); - BOOL res; - if (m_pNextLayer) - res=m_pNextLayer->Accept(rConnectedSocket, lpSockAddr, lpSockAddrLen); - else - { - SOCKET hTemp = accept(m_pOwnerSocket->m_SocketData.hSocket, lpSockAddr, lpSockAddrLen); - - if (hTemp == INVALID_SOCKET) - return FALSE; - VERIFY(rConnectedSocket.InitAsyncSocketExInstance()); - rConnectedSocket.m_SocketData.hSocket=hTemp; - rConnectedSocket.AttachHandle(hTemp); - rConnectedSocket.SetFamily(GetFamily()); -#ifndef NOSOCKETSTATES - rConnectedSocket.SetState(connected); -#endif //NOSOCKETSTATES - } - return TRUE; + DebugAssert(GetLayerState()==listening); + BOOL res; + if (m_pNextLayer) + res=m_pNextLayer->Accept(rConnectedSocket, lpSockAddr, lpSockAddrLen); + else + { + SOCKET hTemp = accept(m_pOwnerSocket->m_SocketData.hSocket, lpSockAddr, lpSockAddrLen); + + if (hTemp == INVALID_SOCKET) + return FALSE; + VERIFY(rConnectedSocket.InitAsyncSocketExInstance()); + rConnectedSocket.m_SocketData.hSocket=hTemp; + rConnectedSocket.AttachHandle(hTemp); + rConnectedSocket.SetFamily(GetFamily()); + rConnectedSocket.SetState(connected); + } + return TRUE; } BOOL CAsyncSocketExLayer::ShutDown(int nHow /*=sends*/) { - return ShutDownNext(nHow); + return ShutDownNext(nHow); } BOOL CAsyncSocketExLayer::ShutDownNext(int nHow /*=sends*/) { - if (m_nCriticalError) - { - WSASetLastError(m_nCriticalError); - return FALSE; - } - else if (GetLayerState()==notsock) - { - WSASetLastError(WSAENOTSOCK); - return FALSE; - } - else if (GetLayerState()==unconnected || GetLayerState()==connecting || GetLayerState()==listening) - { - WSASetLastError(WSAENOTCONN); - return FALSE; - } - - if (!m_pNextLayer) - { - ASSERT(m_pOwnerSocket); - return (shutdown(m_pOwnerSocket->GetSocketHandle(), nHow) == 0); - } - else - { - return m_pNextLayer->ShutDown(nHow); - } + if (m_nCriticalError) + { + WSASetLastError(m_nCriticalError); + return FALSE; + } + else if (GetLayerState()==notsock) + { + WSASetLastError(WSAENOTSOCK); + return FALSE; + } + else if (GetLayerState()==unconnected || GetLayerState()==connecting || GetLayerState()==listening) + { + WSASetLastError(WSAENOTCONN); + return FALSE; + } + + if (!m_pNextLayer) + { + DebugAssert(m_pOwnerSocket); + return (shutdown(m_pOwnerSocket->GetSocketHandle(), nHow) == 0); + } + else + { + return m_pNextLayer->ShutDown(nHow); + } } int CAsyncSocketExLayer::GetFamily() const { - return m_nFamily; + return m_nFamily; } bool CAsyncSocketExLayer::SetFamily(int nFamily) { - if (m_nFamily != AF_UNSPEC) - return false; - - m_nFamily = nFamily; - return true; -} + if (m_nFamily != AF_UNSPEC) + return false; -bool CAsyncSocketExLayer::TryNextProtocol() -{ - m_pOwnerSocket->DetachHandle(m_pOwnerSocket->m_SocketData.hSocket); - closesocket(m_pOwnerSocket->m_SocketData.hSocket); - m_pOwnerSocket->m_SocketData.hSocket = INVALID_SOCKET; - - BOOL ret = FALSE; - for (; m_nextAddr; m_nextAddr = m_nextAddr->ai_next) - { - m_pOwnerSocket->m_SocketData.hSocket = socket(m_nextAddr->ai_family, m_nextAddr->ai_socktype, m_nextAddr->ai_protocol); - - if (m_pOwnerSocket->m_SocketData.hSocket == INVALID_SOCKET) - continue; - - m_pOwnerSocket->AttachHandle(m_pOwnerSocket->m_SocketData.hSocket); - if (!m_pOwnerSocket->AsyncSelect(m_lEvent)) - { - m_pOwnerSocket->DetachHandle(m_pOwnerSocket->m_SocketData.hSocket); - closesocket(m_pOwnerSocket->m_SocketData.hSocket); - m_pOwnerSocket->m_SocketData.hSocket = INVALID_SOCKET; - continue; - } - -#ifndef NOLAYERS - if (m_pOwnerSocket->m_pFirstLayer) - { - if (WSAAsyncSelect(m_pOwnerSocket->m_SocketData.hSocket, m_pOwnerSocket->GetHelperWindowHandle(), m_pOwnerSocket->m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE)) - { - m_pOwnerSocket->DetachHandle(m_pOwnerSocket->m_SocketData.hSocket); - closesocket(m_pOwnerSocket->m_SocketData.hSocket); - m_pOwnerSocket->m_SocketData.hSocket = INVALID_SOCKET; - continue; - } - } -#endif //NOLAYERS - - m_pOwnerSocket->m_SocketData.nFamily = m_nextAddr->ai_family; - m_nFamily = m_nextAddr->ai_family; - if (!m_pOwnerSocket->Bind(m_nSocketPort, m_lpszSocketAddress)) - { - m_pOwnerSocket->DetachHandle(m_pOwnerSocket->m_SocketData.hSocket); - closesocket(m_pOwnerSocket->m_SocketData.hSocket); - m_pOwnerSocket->m_SocketData.hSocket = INVALID_SOCKET; - continue; - } - - if (connect(m_pOwnerSocket->GetSocketHandle(), m_nextAddr->ai_addr, m_nextAddr->ai_addrlen) == SOCKET_ERROR && WSAGetLastError() != WSAEWOULDBLOCK) - { - m_pOwnerSocket->DetachHandle(m_pOwnerSocket->m_SocketData.hSocket); - closesocket(m_pOwnerSocket->m_SocketData.hSocket); - m_pOwnerSocket->m_SocketData.hSocket = INVALID_SOCKET; - continue; - } - - SetLayerState(connecting); - - ret = true; - break; - } - - if (m_nextAddr) - m_nextAddr = m_nextAddr->ai_next; - - if (!m_nextAddr) - { - freeaddrinfo(m_addrInfo); - m_nextAddr = 0; - m_addrInfo = 0; - } - - if (m_pOwnerSocket->m_SocketData.hSocket == INVALID_SOCKET || !ret) - return FALSE; - else - return TRUE; + m_nFamily = nFamily; + return true; } -void CAsyncSocketExLayer::LogSocketMessage(int nMessageType, LPCTSTR pMsgFormat) +bool CAsyncSocketExLayer::TryNextProtocol() { - if (m_pPrevLayer) - m_pPrevLayer->LogSocketMessage(nMessageType, pMsgFormat); - else - m_pOwnerSocket->LogSocketMessage(nMessageType, pMsgFormat); + m_pOwnerSocket->DetachHandle(m_pOwnerSocket->m_SocketData.hSocket); + closesocket(m_pOwnerSocket->m_SocketData.hSocket); + m_pOwnerSocket->m_SocketData.hSocket = INVALID_SOCKET; + + BOOL ret = FALSE; + for (; m_nextAddr; m_nextAddr = m_nextAddr->ai_next) + { + m_pOwnerSocket->m_SocketData.hSocket = socket(m_nextAddr->ai_family, m_nextAddr->ai_socktype, m_nextAddr->ai_protocol); + + if (m_pOwnerSocket->m_SocketData.hSocket == INVALID_SOCKET) + continue; + + m_pOwnerSocket->AttachHandle(m_pOwnerSocket->m_SocketData.hSocket); + if (!m_pOwnerSocket->AsyncSelect(m_lEvent)) + { + m_pOwnerSocket->DetachHandle(m_pOwnerSocket->m_SocketData.hSocket); + closesocket(m_pOwnerSocket->m_SocketData.hSocket); + m_pOwnerSocket->m_SocketData.hSocket = INVALID_SOCKET; + continue; + } + + if (m_pOwnerSocket->m_pFirstLayer) + { + if (WSAAsyncSelect(m_pOwnerSocket->m_SocketData.hSocket, m_pOwnerSocket->GetHelperWindowHandle(), m_pOwnerSocket->m_SocketData.nSocketIndex+WM_SOCKETEX_NOTIFY, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE)) + { + m_pOwnerSocket->DetachHandle(m_pOwnerSocket->m_SocketData.hSocket); + closesocket(m_pOwnerSocket->m_SocketData.hSocket); + m_pOwnerSocket->m_SocketData.hSocket = INVALID_SOCKET; + continue; + } + } + + m_pOwnerSocket->m_SocketData.nFamily = m_nextAddr->ai_family; + m_nFamily = m_nextAddr->ai_family; + if (!m_pOwnerSocket->Bind(m_nSocketPort, m_lpszSocketAddress)) + { + m_pOwnerSocket->DetachHandle(m_pOwnerSocket->m_SocketData.hSocket); + closesocket(m_pOwnerSocket->m_SocketData.hSocket); + m_pOwnerSocket->m_SocketData.hSocket = INVALID_SOCKET; + continue; + } + + if (connect(m_pOwnerSocket->GetSocketHandle(), m_nextAddr->ai_addr, m_nextAddr->ai_addrlen) == SOCKET_ERROR && WSAGetLastError() != WSAEWOULDBLOCK) + { + m_pOwnerSocket->DetachHandle(m_pOwnerSocket->m_SocketData.hSocket); + closesocket(m_pOwnerSocket->m_SocketData.hSocket); + m_pOwnerSocket->m_SocketData.hSocket = INVALID_SOCKET; + continue; + } + + SetLayerState(connecting); + + ret = true; + break; + } + + if (m_nextAddr) + m_nextAddr = m_nextAddr->ai_next; + + if (!m_nextAddr) + { + freeaddrinfo(m_addrInfo); + m_nextAddr = 0; + m_addrInfo = 0; + } + + if (m_pOwnerSocket->m_SocketData.hSocket == INVALID_SOCKET || !ret) + return FALSE; + else + return TRUE; +} + +void CAsyncSocketExLayer::LogSocketMessageRaw(int nMessageType, LPCTSTR pMsg) +{ + if (m_pPrevLayer) + m_pPrevLayer->LogSocketMessageRaw(nMessageType, pMsg); + else + m_pOwnerSocket->LogSocketMessageRaw(nMessageType, pMsg); } bool CAsyncSocketExLayer::LoggingSocketMessage(int nMessageType) { - if (m_pPrevLayer) - return m_pPrevLayer->LoggingSocketMessage(nMessageType); - else - return m_pOwnerSocket->LoggingSocketMessage(nMessageType); + if (m_pPrevLayer) + return m_pPrevLayer->LoggingSocketMessage(nMessageType); + else + return m_pOwnerSocket->LoggingSocketMessage(nMessageType); } - diff --git a/source/filezilla/AsyncSocketExLayer.h b/source/filezilla/AsyncSocketExLayer.h index 1beba9ec..6dc2f10d 100644 --- a/source/filezilla/AsyncSocketExLayer.h +++ b/source/filezilla/AsyncSocketExLayer.h @@ -59,120 +59,114 @@ Feel free to use this class, as long as you don't claim that you wrote it and this copyright notice stays intact in the source files. If you use this class in commercial applications, please send a short message to tim.kosse@gmx.de - -*/#if !defined(AFX_ASYNCSOCKETEXLAYER_H__90C7FDB6_F3F1_4CC0_B77B_858458A563F3__INCLUDED_) -#define AFX_ASYNCSOCKETEXLAYER_H__90C7FDB6_F3F1_4CC0_B77B_858458A563F3__INCLUDED_ - -#include "AsyncSocketEx.h" // Hinzugefügt von der Klassenansicht -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - +*/ +//--------------------------------------------------------------------------- +#ifndef AsyncSocketExLayerH +#define AsyncSocketExLayerH +//--------------------------------------------------------------------------- +#include "AsyncSocketEx.h" +//--------------------------------------------------------------------------- class CAsyncSocketEx; +//--------------------------------------------------------------------------- class CAsyncSocketExLayer { - friend CAsyncSocketEx; - friend CAsyncSocketExHelperWindow; + friend CAsyncSocketEx; + friend CAsyncSocketExHelperWindow; protected: - //Protected constructor so that CAsyncSocketExLayer can't be instantiated - CAsyncSocketExLayer(); - virtual ~CAsyncSocketExLayer(); - - //Notification event handlers - virtual void OnAccept(int nErrorCode); - virtual void OnClose(int nErrorCode); - virtual void OnConnect(int nErrorCode); - virtual void OnReceive(int nErrorCode); - virtual void OnSend(int nErrorCode); - - //Operations - virtual BOOL Accept( CAsyncSocketEx& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL ); - virtual void Close(); - virtual BOOL Connect(LPCTSTR lpszHostAddress, UINT nHostPort); - virtual BOOL Connect( const SOCKADDR* lpSockAddr, int nSockAddrLen ); - virtual BOOL Create(UINT nSocketPort = 0, int nSocketType = SOCK_STREAM, - long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | - FD_CONNECT | FD_CLOSE, - LPCTSTR lpszSocketAddress = NULL, int nFamily = AF_INET); - virtual BOOL GetPeerName( SOCKADDR* lpSockAddr, int* lpSockAddrLen ); - virtual BOOL GetSockName( SOCKADDR* lpSockAddr, int* lpSockAddrLen ); -#ifdef _AFX - virtual BOOL GetPeerName( CString& rPeerAddress, UINT& rPeerPort ); - virtual BOOL GetSockName( CString& rPeerAddress, UINT& rPeerPort ); -#endif - virtual BOOL Listen( int nConnectionBacklog); - virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); - virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0); - virtual BOOL ShutDown( int nHow = sends ); - enum { receives = 0, sends = 1, both = 2 }; - - //Functions that will call next layer - BOOL ShutDownNext( int nHow = sends ); - BOOL AcceptNext( CAsyncSocketEx& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL ); - void CloseNext(); - BOOL ConnectNext(LPCTSTR lpszHostAddress, UINT nHostPort); - BOOL ConnectNext( const SOCKADDR* lpSockAddr, int nSockAddrLen ); - BOOL CreateNext(UINT nSocketPort, int nSocketType, long lEvent, LPCTSTR lpszSocketAddress, int nFamily = AF_INET); - BOOL GetPeerNameNext( SOCKADDR* lpSockAddr, int* lpSockAddrLen ); - BOOL GetSockNameNext( SOCKADDR* lpSockAddr, int* lpSockAddrLen ); - #ifdef _AFX - BOOL GetPeerNameNext( CString& rPeerAddress, UINT& rPeerPort ); - BOOL GetSockNameNext( CString& rPeerAddress, UINT& rPeerPort ); - #endif - BOOL ListenNext( int nConnectionBacklog); - int ReceiveNext(void *lpBuf, int nBufLen, int nFlags = 0); - int SendNext(const void *lpBuf, int nBufLen, int nFlags = 0); - - CAsyncSocketEx *m_pOwnerSocket; - - //Calls OnLayerCallback on owner socket - int DoLayerCallback(int nType, int nParam1, int nParam2, char* str = 0); - - int GetLayerState(); - BOOL TriggerEvent(long lEvent, int nErrorCode, BOOL bPassThrough = FALSE ); - - //Gets the socket family - int GetFamily() const; - - //Sets the socket family - bool SetFamily(int nFamily); - - // Iterate through protocols - bool TryNextProtocol(); - - void LogSocketMessage(int nMessageType, LPCTSTR pMsgFormat); - bool LoggingSocketMessage(int nMessageType); + // Protected constructor so that CAsyncSocketExLayer can't be instantiated + CAsyncSocketExLayer(); + virtual ~CAsyncSocketExLayer(); + + // Notification event handlers + virtual void OnAccept(int nErrorCode); + virtual void OnClose(int nErrorCode); + virtual void OnConnect(int nErrorCode); + virtual void OnReceive(int nErrorCode); + virtual void OnSend(int nErrorCode); + + // Operations + virtual BOOL Accept(CAsyncSocketEx & rConnectedSocket, SOCKADDR * lpSockAddr = NULL, int * lpSockAddrLen = NULL); + virtual void Close(); + virtual BOOL Connect(LPCTSTR lpszHostAddress, UINT nHostPort); + virtual BOOL Connect(const SOCKADDR * lpSockAddr, int nSockAddrLen); + virtual BOOL Create(UINT nSocketPort = 0, int nSocketType = SOCK_STREAM, + long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, + LPCTSTR lpszSocketAddress = NULL, int nFamily = AF_INET); + virtual BOOL GetPeerName(SOCKADDR * lpSockAddr, int * lpSockAddrLen); + virtual BOOL GetSockName(SOCKADDR * lpSockAddr, int * lpSockAddrLen); + virtual BOOL GetPeerName(CString& rPeerAddress, UINT& rPeerPort); + virtual BOOL GetSockName(CString& rPeerAddress, UINT& rPeerPort); + virtual BOOL Listen(int nConnectionBacklog); + virtual int Receive(void * lpBuf, int nBufLen, int nFlags = 0); + virtual int Send(const void * lpBuf, int nBufLen, int nFlags = 0); + virtual BOOL ShutDown(int nHow = sends); + enum { receives = 0, sends = 1, both = 2 }; + + // Functions that will call next layer + BOOL ShutDownNext(int nHow = sends); + BOOL AcceptNext(CAsyncSocketEx& rConnectedSocket, SOCKADDR * lpSockAddr = NULL, int * lpSockAddrLen = NULL); + void CloseNext(); + BOOL ConnectNext(LPCTSTR lpszHostAddress, UINT nHostPort); + BOOL ConnectNext( const SOCKADDR * lpSockAddr, int nSockAddrLen); + BOOL CreateNext(UINT nSocketPort, int nSocketType, long lEvent, LPCTSTR lpszSocketAddress, int nFamily = AF_INET); + BOOL GetPeerNameNext(SOCKADDR * lpSockAddr, int* lpSockAddrLen); + BOOL GetSockNameNext(SOCKADDR * lpSockAddr, int* lpSockAddrLen); + BOOL GetPeerNameNext(CString & rPeerAddress, UINT& rPeerPort); + BOOL GetSockNameNext(CString & rPeerAddress, UINT& rPeerPort); + BOOL ListenNext(int nConnectionBacklog); + int ReceiveNext(void * lpBuf, int nBufLen, int nFlags = 0); + int SendNext(const void * lpBuf, int nBufLen, int nFlags = 0); + + CAsyncSocketEx *m_pOwnerSocket; + + // Calls OnLayerCallback on owner socket + int DoLayerCallback(int nType, int nParam1, int nParam2, char * str = 0); + + int GetLayerState(); + BOOL TriggerEvent(long lEvent, int nErrorCode, BOOL bPassThrough = FALSE); + + // Gets the socket family + int GetFamily() const; + + // Sets the socket family + bool SetFamily(int nFamily); + + // Iterate through protocols + bool TryNextProtocol(); + + void LogSocketMessageRaw(int nMessageType, LPCTSTR pMsg); + bool LoggingSocketMessage(int nMessageType); private: - //Layer state can't be set directly from derived classes - void SetLayerState(int nLayerState); - int m_nLayerState; + // Layer state can't be set directly from derived classes + void SetLayerState(int nLayerState); + int m_nLayerState; - int m_nFamily; - int m_lEvent; - LPTSTR m_lpszSocketAddress; - UINT m_nSocketPort; + int m_nFamily; + int m_lEvent; + LPTSTR m_lpszSocketAddress; + UINT m_nSocketPort; - addrinfo *m_addrInfo, *m_nextAddr; + addrinfo * m_addrInfo, * m_nextAddr; - //Called by helper window, dispatches event notification and updated layer state - void CallEvent(int nEvent, int nErrorCode); + // Called by helper window, dispatches event notification and updated layer state + void CallEvent(int nEvent, int nErrorCode); - int m_nPendingEvents; - int m_nCriticalError; + int m_nPendingEvents; + int m_nCriticalError; - void Init(CAsyncSocketExLayer *pPrevLayer, CAsyncSocketEx *pOwnerSocket); - CAsyncSocketExLayer *AddLayer(CAsyncSocketExLayer *pLayer, CAsyncSocketEx *pOwnerSocket); + void Init(CAsyncSocketExLayer * pPrevLayer, CAsyncSocketEx * pOwnerSocket); + CAsyncSocketExLayer * AddLayer(CAsyncSocketExLayer * pLayer, CAsyncSocketEx * pOwnerSocket); - CAsyncSocketExLayer *m_pNextLayer; - CAsyncSocketExLayer *m_pPrevLayer; + CAsyncSocketExLayer * m_pNextLayer; + CAsyncSocketExLayer * m_pPrevLayer; - struct t_LayerNotifyMsg - { - SOCKET hSocket; - CAsyncSocketExLayer *pLayer; - long lEvent; - }; + struct t_LayerNotifyMsg + { + SOCKET hSocket; + CAsyncSocketExLayer * pLayer; + long lEvent; + }; }; - -#endif // !defined(AFX_ASYNCSOCKETEXLAYER_H__90C7FDB6_F3F1_4CC0_B77B_858458A563F3__INCLUDED_) +//--------------------------------------------------------------------------- +#endif // AsyncSocketExLayerH diff --git a/source/filezilla/AsyncSslSocketLayer.cpp b/source/filezilla/AsyncSslSocketLayer.cpp index 6c1f93cf..cc4034d0 100644 --- a/source/filezilla/AsyncSslSocketLayer.cpp +++ b/source/filezilla/AsyncSslSocketLayer.cpp @@ -1,132 +1,17 @@ -/* CAsyncSslSocketLayer by Tim Kosse - mailto: tim.kosse@filezilla-project.org) - Version 2.0 (2005-02-27) -------------------------------------------------------------- - -Introduction ------------- - -CAsyncSslSocketLayer is a layer class for CAsyncSocketEx which allows you to establish SSL secured -connections. Support for both client and server side is provided. - -How to use ----------- - -Using this class is really simple. In the easiest case, just add an instance of -CAsyncSslSocketLayer to your socket and call InitClientSsl after creation of the socket. - -This class only has a couple of public functions: -- InitSSLConnection(bool clientMode); - This functions establishes an SSL connection. The clientMode parameter specifies whether the SSL connection - is in server or in client mode. - Most likely you want to call this function right after calling Create for the socket. - But sometimes, you'll need to call this function later. One example is for an FTP connection - with explicit SSL: In this case you would have to call InitSSLConnection after receiving the reply - to an 'AUTH SSL' command. -- Is UsingSSL(); - Returns true if you've previously called InitClientSsl() -- SetNotifyReply(SetNotifyReply(int nID, int nCode, int result); - You can call this function only after receiving a layerspecific callback with the SSL_VERIFY_CERT - id. Set result to 1 if you trust the certificate and 0 if you don't trust it. - nID has to be the priv_data element of the t_SslCertData structure and nCode has to be SSL_VERIFY_CERT. - -This layer sends some layerspecific notifications to your socket instance, you can handle them in -OnLayerCallback of your socket class. -Valid notification IDs are: -- SSL_INFO 0 - There are two possible values for param2: - SSL_INFO_ESTABLISHED 0 - You'll get this notification if the SSL negotiation was successful - SSL_INFO_SHUTDOWNCOMPLETE 1 - You'll get this notification if the SSL connection has been shut - down sucessfully. See below for details. -- SSL_FAILURE 1 - This notification is sent if the SSL connection could not be established or if an existing - connection failed. Valid values for param2 are: - - SSL_FAILURE_UNKNOWN 0 - Details may have been sent with a SSL_VERBOSE_* notification. - - SSL_FAILURE_ESTABLISH 1 - Problem during SSL negotiation - - SSL_FAILURE_INITSSL 4 - - SSL_FAILURE_VERIFYCERT 8 - The remote SSL certificate was invalid - - SSL_FAILURE_CERTREJECTED 16 - The remote SSL certificate was rejected by user -- SSL_VERBOSE_WARNING 3 - SSL_VERBOSE_INFO 4 - This two notifications contain some additional information. The value given by param2 is a - pointer to a null-terminated char string (char *) with some useful information. -- SSL_VERIFY_CERT 2 - This notification is sent each time a remote certificate has to be verified. - param2 is a pointer to a t_SslCertData structure which contains some information - about the remote certificate. - You have to set the reply to this message using the SetNotifyReply function. - -Be careful with closing the connection after sending data, not all data may have been sent already. -Before closing the connection, you should call Shutdown() and wait for the SSL_INFO_SHUTDOWNCOMPLETE -notification. This assures that all encrypted data really has been sent. - -License -------- - -Feel free to use this class, as long as you don't claim that you wrote it -and this copyright notice stays intact in the source files. -If you want to use this class in a commercial application, a short message -to tim.kosse@filezilla-project.org would be appreciated but is not required. - -This product includes software developed by the OpenSSL Project -for use in the OpenSSL Toolkit. (http://www.openssl.org/) - -Version history ---------------- - -Version 2.0: -- Add server support -- a lot of bug fixes - -*/ - +// CAsyncSslSocketLayer by Tim Kosse (Tim.Kosse@gmx.de) +// Version 2.0 (2005-02-27) +//--------------------------------------------------------------------------- +// Feel free to use this class, as long as you don't claim that you wrote it +// and this copyright notice stays intact in the source files. +// If you use this class in commercial applications, please send a short message +// to tim.kosse@gmx.de +//--------------------------------------------------------------------------- #include "stdafx.h" #include "AsyncSslSocketLayer.h" -#if defined _DEBUG && defined _AFX -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - #include #include -// Critical section wrapper class -#ifndef CCRITICALSECTIONWRAPPERINCLUDED -class CCriticalSectionWrapper -{ -public: - CCriticalSectionWrapper() - { - m_bInitialized = TRUE; - InitializeCriticalSection(&m_criticalSection); - } - - ~CCriticalSectionWrapper() - { - if (m_bInitialized) - DeleteCriticalSection(&m_criticalSection); - m_bInitialized = FALSE; - } - - void Lock() - { - if (m_bInitialized) - EnterCriticalSection(&m_criticalSection); - } - void Unlock() - { - if (m_bInitialized) - LeaveCriticalSection(&m_criticalSection); - } -protected: - CRITICAL_SECTION m_criticalSection; - BOOL m_bInitialized; -}; -#define CCRITICALSECTIONWRAPPERINCLUDED -#endif - ///////////////////////////////////////////////////////////////////////////// // CAsyncSslSocketLayer CCriticalSectionWrapper CAsyncSslSocketLayer::m_sCriticalSection; @@ -137,1651 +22,1670 @@ std::map CAsyncSslSocketLayer::m_contextRefCount; CAsyncSslSocketLayer::CAsyncSslSocketLayer() { - m_ssl = 0; - m_sslbio = 0; - m_ibio = 0; - m_nbio = 0; - m_ssl_ctx = 0; - - m_bUseSSL = false; - m_bSslInitialized = FALSE; - m_bSslEstablished = FALSE; - m_nNetworkSendBufferLen = 0; - m_nNetworkSendBufferMaxLen = 0; - m_pNetworkSendBuffer = NULL; - m_pRetrySendBuffer = 0; - m_nRetrySendBufferLen = 0; - m_nNetworkError = 0; - m_nShutDown = 0; - - m_bBlocking = FALSE; - m_nSslAsyncNotifyId = 0; - m_bFailureSent = FALSE; - m_nVerificationResult = 0; - m_nVerificationDepth = 0; - m_mayTriggerRead = true; - m_mayTriggerWrite = true; - m_mayTriggerReadUp = true; - m_mayTriggerWriteUp = true; - - m_onCloseCalled = false; - m_pKeyPassword = 0; - m_Main = NULL; - m_sessionid = NULL; - m_sessionreuse = true; + m_ssl = 0; + m_sslbio = 0; + m_ibio = 0; + m_nbio = 0; + m_ssl_ctx = 0; + + m_bUseSSL = false; + m_bSslInitialized = FALSE; + m_bSslEstablished = FALSE; + m_nNetworkSendBufferLen = 0; + m_nNetworkSendBufferMaxLen = 0; + m_pNetworkSendBuffer = NULL; + m_pRetrySendBuffer = 0; + m_nRetrySendBufferLen = 0; + m_nNetworkError = 0; + m_nShutDown = 0; + + m_bBlocking = FALSE; + m_nSslAsyncNotifyId = 0; + m_bFailureSent = FALSE; + m_nVerificationResult = 0; + m_nVerificationDepth = 0; + m_mayTriggerRead = true; + m_mayTriggerWrite = true; + m_mayTriggerReadUp = true; + m_mayTriggerWriteUp = true; + + m_onCloseCalled = false; + m_Main = NULL; + m_sessionid = NULL; + m_sessionreuse = true; + + FCertificate = NULL; + FPrivateKey = NULL; } CAsyncSslSocketLayer::~CAsyncSslSocketLayer() { - UnloadSSL(); - delete [] m_pNetworkSendBuffer; - delete [] m_pRetrySendBuffer; - delete [] m_pKeyPassword; + UnloadSSL(); + delete [] m_pNetworkSendBuffer; + delete [] m_pRetrySendBuffer; } int CAsyncSslSocketLayer::InitSSL() { - if (m_bSslInitialized) - return 0; + if (m_bSslInitialized) + return 0; - m_sCriticalSection.Lock(); + m_sCriticalSection.Lock(); - if (!m_nSslRefCount) - { - SSL_load_error_strings(); - if (!SSL_library_init()) - { - return SSL_FAILURE_INITSSL; - } - } + if (!m_nSslRefCount) + { + SSL_load_error_strings(); + if (!SSL_library_init()) + { + return SSL_FAILURE_INITSSL; + } + } - m_nSslRefCount++; - m_sCriticalSection.Unlock(); + m_nSslRefCount++; + m_sCriticalSection.Unlock(); - m_bSslInitialized = true; + m_bSslInitialized = true; - return 0; + return 0; } void CAsyncSslSocketLayer::OnReceive(int nErrorCode) { - if (m_bUseSSL) - { - if (m_bBlocking) - { - m_mayTriggerRead = true; - return; - } - if (m_nNetworkError) - { - return; - } - - char buffer[16384]; - - m_mayTriggerRead = false; - - //Get number of bytes we can receive and store in the network input bio - int len = BIO_ctrl_get_write_guarantee(m_nbio); - if (len > 16384) - len = 16384; - else if (!len) - { - m_mayTriggerRead = true; - TriggerEvents(); - return; - } - - int numread = 0; - - // Receive data - numread = ReceiveNext(buffer, len); - if (numread > 0) - { - //Store it in the network input bio and process data - int numwritten = BIO_write(m_nbio, buffer, numread); - BIO_ctrl(m_nbio, BIO_CTRL_FLUSH, 0, NULL); - - // I have no idea why this call is needed, but without it, connections - // will stall. Perhaps it triggers some internal processing. - // Also, ignore return value, don't do any error checking. This function - // can report errors, even though a later call can succeed. - char buffer; - BIO_read(m_sslbio, &buffer, 0); - } - if (!numread) - { - if (GetLayerState() == connected) - TriggerEvent(FD_CLOSE, nErrorCode, TRUE); - } - else if (numread == SOCKET_ERROR) - { - int nError = GetLastError(); - if (nError != WSAEWOULDBLOCK && nError != WSAENOTCONN) - { - m_nNetworkError = GetLastError(); - TriggerEvent(FD_CLOSE, 0, TRUE); - return; - } - } - - if (m_pRetrySendBuffer) - { - int numwrite = BIO_write(m_sslbio, m_pRetrySendBuffer, m_nRetrySendBufferLen); - if (numwrite >= 0) - { - BIO_ctrl(m_sslbio, BIO_CTRL_FLUSH, 0, NULL); - delete [] m_pRetrySendBuffer; - m_pRetrySendBuffer = 0; - } - else if (numwrite == -1) - { - if (!BIO_should_retry(m_sslbio)) - { - delete [] m_pRetrySendBuffer; - m_pRetrySendBuffer = 0; - - SetLastError(WSAECONNABORTED); - TriggerEvent(FD_CLOSE, 0, TRUE); - return; - } - } - } - - if (!m_nShutDown && SSL_get_shutdown(m_ssl)) - { - size_t pending = BIO_ctrl_pending(m_sslbio); - if (pending <= 0) - { - if (ShutDown() || GetLastError() == WSAEWOULDBLOCK) - { - if (ShutDownComplete()) - TriggerEvent(FD_CLOSE, 0, TRUE); - } - else - { - m_nNetworkError = WSAECONNABORTED; - WSASetLastError(WSAECONNABORTED); - TriggerEvent(FD_CLOSE, WSAECONNABORTED, TRUE); - } - return; - } - } - - if (ShutDownComplete() && m_nShutDown == 1) - { - //Send shutdown notification if all pending data has been sent - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_INFO, SSL_INFO_SHUTDOWNCOMPLETE); - m_nShutDown++; - } - - TriggerEvents(); - } - else - { - TriggerEvent(FD_READ, nErrorCode, TRUE); - } + if (m_bUseSSL) + { + if (m_bBlocking) + { + m_mayTriggerRead = true; + return; + } + if (m_nNetworkError) + { + return; + } + + char buffer[16384]; + + m_mayTriggerRead = false; + + //Get number of bytes we can receive and store in the network input bio + int len = BIO_ctrl_get_write_guarantee(m_nbio); + if (len > 16384) + len = 16384; + else if (!len) + { + m_mayTriggerRead = true; + TriggerEvents(); + return; + } + + int numread = 0; + + // Receive data + numread = ReceiveNext(buffer, len); + if (numread > 0) + { + //Store it in the network input bio and process data + int numwritten = BIO_write(m_nbio, buffer, numread); + BIO_ctrl(m_nbio, BIO_CTRL_FLUSH, 0, NULL); + + // I have no idea why this call is needed, but without it, connections + // will stall. Perhaps it triggers some internal processing. + // Also, ignore return value, don't do any error checking. This function + // can report errors, even though a later call can succeed. + char buffer; + BIO_read(m_sslbio, &buffer, 0); + } + if (!numread) + { + if (GetLayerState() == connected) + TriggerEvent(FD_CLOSE, nErrorCode, TRUE); + } + else if (numread == SOCKET_ERROR) + { + int nError = GetLastError(); + if (nError != WSAEWOULDBLOCK && nError != WSAENOTCONN) + { + m_nNetworkError = GetLastError(); + TriggerEvent(FD_CLOSE, 0, TRUE); + return; + } + } + + if (m_pRetrySendBuffer) + { + int numwrite = BIO_write(m_sslbio, m_pRetrySendBuffer, m_nRetrySendBufferLen); + if (numwrite >= 0) + { + BIO_ctrl(m_sslbio, BIO_CTRL_FLUSH, 0, NULL); + delete [] m_pRetrySendBuffer; + m_pRetrySendBuffer = 0; + } + else if (numwrite == -1) + { + if (!BIO_should_retry(m_sslbio)) + { + delete [] m_pRetrySendBuffer; + m_pRetrySendBuffer = 0; + + ::SetLastError(WSAECONNABORTED); + TriggerEvent(FD_CLOSE, 0, TRUE); + return; + } + } + } + + if (!m_nShutDown && SSL_get_shutdown(m_ssl)) + { + size_t pending = BIO_ctrl_pending(m_sslbio); + if (pending <= 0) + { + if (ShutDown() || GetLastError() == WSAEWOULDBLOCK) + { + if (ShutDownComplete()) + TriggerEvent(FD_CLOSE, 0, TRUE); + } + else + { + m_nNetworkError = WSAECONNABORTED; + WSASetLastError(WSAECONNABORTED); + TriggerEvent(FD_CLOSE, WSAECONNABORTED, TRUE); + } + return; + } + } + + if (ShutDownComplete() && m_nShutDown == 1) + { + //Send shutdown notification if all pending data has been sent + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_INFO, SSL_INFO_SHUTDOWNCOMPLETE); + m_nShutDown++; + } + + TriggerEvents(); + } + else + { + TriggerEvent(FD_READ, nErrorCode, TRUE); + } } void CAsyncSslSocketLayer::OnSend(int nErrorCode) { - if (m_bUseSSL) - { - if (m_nNetworkError) - { - return; - } - - m_mayTriggerWrite = false; - - //Send data in the send buffer - while (m_nNetworkSendBufferLen) - { - int numsent = SendNext(m_pNetworkSendBuffer, m_nNetworkSendBufferLen); - if (numsent == SOCKET_ERROR) - { - int nError = GetLastError(); - if (nError != WSAEWOULDBLOCK && nError != WSAENOTCONN) - { - m_nNetworkError = nError; - TriggerEvent(FD_CLOSE, 0, TRUE); - } - return; - } - else if (!numsent) - { - if (GetLayerState() == connected) - TriggerEvent(FD_CLOSE, nErrorCode, TRUE); - } - if (numsent == m_nNetworkSendBufferLen) - { - m_nNetworkSendBufferLen = 0; - } - else - { - memmove(m_pNetworkSendBuffer, m_pNetworkSendBuffer + numsent, m_nNetworkSendBufferLen - numsent); - m_nNetworkSendBufferLen -= numsent; - } - } - - //Send the data waiting in the network bio - char buffer[16384]; - size_t len = BIO_ctrl_pending(m_nbio); - int numread = BIO_read(m_nbio, buffer, len); - if (numread <= 0) - m_mayTriggerWrite = true; - while (numread > 0) - { - int numsent = SendNext(buffer, numread); - if (!numsent) - { - if (GetLayerState() == connected) - TriggerEvent(FD_CLOSE, nErrorCode, TRUE); - } - if (numsent == SOCKET_ERROR || numsent < numread) - { - if (numsent == SOCKET_ERROR) - if (GetLastError() != WSAEWOULDBLOCK && GetLastError() != WSAENOTCONN) - { - m_nNetworkError = GetLastError(); - TriggerEvent(FD_CLOSE, 0, TRUE); - return; - } - else - numsent = 0; - - // Add all data that was retrieved from the network bio but could not be sent to the send buffer. - if (m_nNetworkSendBufferMaxLen < (m_nNetworkSendBufferLen + numread - numsent)) - { - char * tmp = m_pNetworkSendBuffer; - m_nNetworkSendBufferMaxLen = static_cast((m_nNetworkSendBufferLen + numread - numsent) * 1.5); - m_pNetworkSendBuffer = new char[m_nNetworkSendBufferMaxLen]; - if (tmp) - { - memcpy(m_pNetworkSendBuffer, tmp, m_nNetworkSendBufferLen); - delete [] tmp; - } - } - ASSERT(m_pNetworkSendBuffer); - memcpy(m_pNetworkSendBuffer + m_nNetworkSendBufferLen, buffer, numread-numsent); - m_nNetworkSendBufferLen += numread - numsent; - } - if (!numsent) - { - break; - } - len = BIO_ctrl_pending(m_nbio); - if (!len) - { - m_mayTriggerWrite = true; - break; - } - numread = BIO_read(m_nbio, buffer, len); - if (numread <= 0) - { - m_mayTriggerWrite = true; - } - } - - if (m_pRetrySendBuffer) - { - int numwrite = BIO_write(m_sslbio, m_pRetrySendBuffer, m_nRetrySendBufferLen); - if (numwrite >= 0) - { - BIO_ctrl(m_sslbio, BIO_CTRL_FLUSH, 0, NULL); - delete [] m_pRetrySendBuffer; - m_pRetrySendBuffer = 0; - } - else if (numwrite == -1) - { - if (!BIO_should_retry(m_sslbio)) - { - delete [] m_pRetrySendBuffer; - m_pRetrySendBuffer = 0; - - SetLastError(WSAECONNABORTED); - TriggerEvent(FD_CLOSE, 0, TRUE); - return; - } - } - } - - // No more data available, ask for more. - TriggerEvents(); - if (m_nShutDown == 1 && ShutDownComplete()) - { - //Send shutdown notification if all pending data has been sent - // FileZilla3 calls ShutDownNext() here - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_INFO, SSL_INFO_SHUTDOWNCOMPLETE); - m_nShutDown++; - } - } - else - { - TriggerEvent(FD_WRITE, nErrorCode, TRUE); - } + if (m_bUseSSL) + { + if (m_nNetworkError) + { + return; + } + + m_mayTriggerWrite = false; + + //Send data in the send buffer + while (m_nNetworkSendBufferLen) + { + int numsent = SendNext(m_pNetworkSendBuffer, m_nNetworkSendBufferLen); + if (numsent == SOCKET_ERROR) + { + int nError = GetLastError(); + if (nError != WSAEWOULDBLOCK && nError != WSAENOTCONN) + { + m_nNetworkError = nError; + TriggerEvent(FD_CLOSE, 0, TRUE); + } + return; + } + else if (!numsent) + { + if (GetLayerState() == connected) + TriggerEvent(FD_CLOSE, nErrorCode, TRUE); + } + if (numsent == m_nNetworkSendBufferLen) + { + m_nNetworkSendBufferLen = 0; + } + else + { + memmove(m_pNetworkSendBuffer, m_pNetworkSendBuffer + numsent, m_nNetworkSendBufferLen - numsent); + m_nNetworkSendBufferLen -= numsent; + } + } + + //Send the data waiting in the network bio + char buffer[32 * 1024]; + size_t len = BIO_ctrl_pending(m_nbio); + int numread = BIO_read(m_nbio, buffer, std::min(len, sizeof(buffer))); + if (numread <= 0) + m_mayTriggerWrite = true; + while (numread > 0) + { + int numsent = SendNext(buffer, numread); + if (!numsent) + { + if (GetLayerState() == connected) + TriggerEvent(FD_CLOSE, nErrorCode, TRUE); + } + if (numsent == SOCKET_ERROR || numsent < numread) + { + if (numsent == SOCKET_ERROR) + if (GetLastError() != WSAEWOULDBLOCK && GetLastError() != WSAENOTCONN) + { + m_nNetworkError = GetLastError(); + TriggerEvent(FD_CLOSE, 0, TRUE); + return; + } + else + numsent = 0; + + // Add all data that was retrieved from the network bio but could not be sent to the send buffer. + if (m_nNetworkSendBufferMaxLen < (m_nNetworkSendBufferLen + numread - numsent)) + { + char * tmp = m_pNetworkSendBuffer; + m_nNetworkSendBufferMaxLen = static_cast((m_nNetworkSendBufferLen + numread - numsent) * 1.5); + m_pNetworkSendBuffer = new char[m_nNetworkSendBufferMaxLen]; + if (tmp) + { + memcpy(m_pNetworkSendBuffer, tmp, m_nNetworkSendBufferLen); + delete [] tmp; + } + } + DebugAssert(m_pNetworkSendBuffer); + memcpy(m_pNetworkSendBuffer + m_nNetworkSendBufferLen, buffer, numread-numsent); + m_nNetworkSendBufferLen += numread - numsent; + } + if (!numsent) + { + break; + } + len = BIO_ctrl_pending(m_nbio); + if (!len) + { + m_mayTriggerWrite = true; + break; + } + numread = BIO_read(m_nbio, buffer, len); + if (numread <= 0) + { + m_mayTriggerWrite = true; + } + } + + if (m_pRetrySendBuffer) + { + int numwrite = BIO_write(m_sslbio, m_pRetrySendBuffer, m_nRetrySendBufferLen); + if (numwrite >= 0) + { + BIO_ctrl(m_sslbio, BIO_CTRL_FLUSH, 0, NULL); + delete [] m_pRetrySendBuffer; + m_pRetrySendBuffer = 0; + } + else if (numwrite == -1) + { + if (!BIO_should_retry(m_sslbio)) + { + delete [] m_pRetrySendBuffer; + m_pRetrySendBuffer = 0; + + ::SetLastError(WSAECONNABORTED); + TriggerEvent(FD_CLOSE, 0, TRUE); + return; + } + } + } + + // No more data available, ask for more. + TriggerEvents(); + if (m_nShutDown == 1 && ShutDownComplete()) + { + //Send shutdown notification if all pending data has been sent + // FileZilla3 calls ShutDownNext() here + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_INFO, SSL_INFO_SHUTDOWNCOMPLETE); + m_nShutDown++; + } + } + else + { + TriggerEvent(FD_WRITE, nErrorCode, TRUE); + } } int CAsyncSslSocketLayer::Send(const void* lpBuf, int nBufLen, int nFlags) { - if (m_bUseSSL) - { - if (!lpBuf) - { - return 0; - } - if (m_bBlocking || m_pRetrySendBuffer) - { - m_mayTriggerWriteUp = true; - SetLastError(WSAEWOULDBLOCK); - return SOCKET_ERROR; - } - if (m_nNetworkError) - { - SetLastError(m_nNetworkError); - return SOCKET_ERROR; - } - if (m_nShutDown) - { - SetLastError(WSAESHUTDOWN); - return SOCKET_ERROR; - } - if (!m_bSslEstablished) - { - m_mayTriggerWriteUp = true; - SetLastError(WSAEWOULDBLOCK); - return SOCKET_ERROR; - } - if (!nBufLen) - { - return 0; - } - - if (m_onCloseCalled) - { - TriggerEvent(FD_CLOSE, 0, TRUE); - return 0; - } - - int len = BIO_ctrl_get_write_guarantee(m_sslbio); - if (nBufLen > len) - nBufLen = len; - if (!len) - { - m_mayTriggerWriteUp = true; - TriggerEvents(); - SetLastError(WSAEWOULDBLOCK); - } - - m_pRetrySendBuffer = new char[nBufLen]; - m_nRetrySendBufferLen = nBufLen; - memcpy(m_pRetrySendBuffer, lpBuf, nBufLen); - - int numwrite = BIO_write(m_sslbio, m_pRetrySendBuffer, m_nRetrySendBufferLen); - if (numwrite >= 0) - { - BIO_ctrl(m_sslbio, BIO_CTRL_FLUSH, 0, NULL); - delete [] m_pRetrySendBuffer; - m_pRetrySendBuffer = 0; - } - else if (numwrite == -1) - { - if (BIO_should_retry(m_sslbio)) - { - if (GetLayerState() == closed) - { - return 0; - } - else if (GetLayerState() != connected) - { - SetLastError(m_nNetworkError); - return SOCKET_ERROR; - } - - TriggerEvents(); - - return nBufLen; - } - else - { - delete [] m_pRetrySendBuffer; - m_pRetrySendBuffer = 0; - - SetLastError(WSAECONNABORTED); - } - return SOCKET_ERROR; - } - - m_mayTriggerWriteUp = true; - TriggerEvents(); - - return numwrite; - } - else - { - return SendNext(lpBuf, nBufLen, nFlags); - } + if (m_bUseSSL) + { + if (!lpBuf) + { + return 0; + } + if (m_bBlocking || m_pRetrySendBuffer) + { + m_mayTriggerWriteUp = true; + ::SetLastError(WSAEWOULDBLOCK); + return SOCKET_ERROR; + } + if (m_nNetworkError) + { + SetLastError(m_nNetworkError); + return SOCKET_ERROR; + } + if (m_nShutDown) + { + ::SetLastError(WSAESHUTDOWN); + return SOCKET_ERROR; + } + if (!m_bSslEstablished) + { + m_mayTriggerWriteUp = true; + ::SetLastError(WSAEWOULDBLOCK); + return SOCKET_ERROR; + } + if (!nBufLen) + { + return 0; + } + + if (m_onCloseCalled) + { + TriggerEvent(FD_CLOSE, 0, TRUE); + return 0; + } + + int len = BIO_ctrl_get_write_guarantee(m_sslbio); + if (nBufLen > len) + nBufLen = len; + if (!len) + { + m_mayTriggerWriteUp = true; + TriggerEvents(); + ::SetLastError(WSAEWOULDBLOCK); + } + + m_pRetrySendBuffer = new char[nBufLen]; + m_nRetrySendBufferLen = nBufLen; + memcpy(m_pRetrySendBuffer, lpBuf, nBufLen); + + int numwrite = BIO_write(m_sslbio, m_pRetrySendBuffer, m_nRetrySendBufferLen); + if (numwrite >= 0) + { + BIO_ctrl(m_sslbio, BIO_CTRL_FLUSH, 0, NULL); + delete [] m_pRetrySendBuffer; + m_pRetrySendBuffer = 0; + } + else if (numwrite == -1) + { + if (BIO_should_retry(m_sslbio)) + { + if (GetLayerState() == closed) + { + return 0; + } + else if (GetLayerState() != connected) + { + SetLastError(m_nNetworkError); + return SOCKET_ERROR; + } + + TriggerEvents(); + + return nBufLen; + } + else + { + delete [] m_pRetrySendBuffer; + m_pRetrySendBuffer = 0; + + ::SetLastError(WSAECONNABORTED); + } + return SOCKET_ERROR; + } + + m_mayTriggerWriteUp = true; + TriggerEvents(); + + return numwrite; + } + else + { + return SendNext(lpBuf, nBufLen, nFlags); + } } int CAsyncSslSocketLayer::Receive(void* lpBuf, int nBufLen, int nFlags) { - if (m_bUseSSL) - { - if (m_bBlocking) - { - m_mayTriggerReadUp = true; - SetLastError(WSAEWOULDBLOCK); - return SOCKET_ERROR; - } - if (m_nNetworkError) - { - size_t pending = BIO_ctrl_pending(m_sslbio); - if (pending && !m_nShutDown) - { - m_mayTriggerReadUp = true; - TriggerEvents(); - return BIO_read(m_sslbio, lpBuf,nBufLen); - } - WSASetLastError(m_nNetworkError); - return SOCKET_ERROR; - } - if (m_nShutDown) - { - SetLastError(WSAESHUTDOWN); - return SOCKET_ERROR; - } - if (!nBufLen) - { - return 0; - } - size_t pending = BIO_ctrl_pending(m_sslbio); - if (!pending) - { - if (GetLayerState() == closed) - { - return 0; - } - if (m_onCloseCalled) - { - TriggerEvent(FD_CLOSE, 0, TRUE); - return 0; - } - else if (GetLayerState() != connected) - { - SetLastError(m_nNetworkError); - return SOCKET_ERROR; - } - else - { - if (SSL_get_shutdown(m_ssl)) - { - if (ShutDown() || GetLastError() == WSAEWOULDBLOCK) - { - if (ShutDownComplete()) - { - TriggerEvent(FD_CLOSE, 0, TRUE); - return 0; - } - else - WSASetLastError(WSAEWOULDBLOCK); - } - else - { - m_nNetworkError = WSAECONNABORTED; - WSASetLastError(WSAECONNABORTED); - TriggerEvent(FD_CLOSE, WSAECONNABORTED, TRUE); - } - return SOCKET_ERROR; - } - } - m_mayTriggerReadUp = true; - TriggerEvents(); - SetLastError(WSAEWOULDBLOCK); - return SOCKET_ERROR; - } - int numread = BIO_read(m_sslbio, lpBuf, nBufLen); - if (!numread) - { - if (SSL_get_shutdown(m_ssl)) - { - if (ShutDown() || GetLastError() == WSAEWOULDBLOCK) - { - if (ShutDownComplete()) - { - TriggerEvent(FD_CLOSE, 0, TRUE); - return 0; - } - else - WSASetLastError(WSAEWOULDBLOCK); - } - else - { - m_nNetworkError = WSAECONNABORTED; - WSASetLastError(WSAECONNABORTED); - TriggerEvent(FD_CLOSE, WSAECONNABORTED, TRUE); - } - return SOCKET_ERROR; - } - m_mayTriggerReadUp = true; - TriggerEvents(); - SetLastError(WSAEWOULDBLOCK); - return SOCKET_ERROR; - } - if (numread < 0) - { - if (!BIO_should_retry(m_sslbio)) - { - PrintLastErrorMsg(); - m_nNetworkError = WSAECONNABORTED; - WSASetLastError(WSAECONNABORTED); - TriggerEvent(FD_CLOSE, 0, TRUE); - return SOCKET_ERROR; - } - else - { - if (SSL_get_shutdown(m_ssl)) - { - if (ShutDown() || GetLastError() == WSAEWOULDBLOCK) - { - if (ShutDownComplete()) - { - TriggerEvent(FD_CLOSE, 0, TRUE); - return 0; - } - else - WSASetLastError(WSAEWOULDBLOCK); - } - else - { - m_nNetworkError = WSAECONNABORTED; - WSASetLastError(WSAECONNABORTED); - TriggerEvent(FD_CLOSE, 0, TRUE); - } - return SOCKET_ERROR; - } - m_mayTriggerReadUp = true; - TriggerEvents(); - SetLastError(WSAEWOULDBLOCK); - return SOCKET_ERROR; - } - } - - m_mayTriggerReadUp = true; - TriggerEvents(); - return numread; - } - else - { - return ReceiveNext(lpBuf, nBufLen, nFlags); - } + if (m_bUseSSL) + { + if (m_bBlocking) + { + m_mayTriggerReadUp = true; + ::SetLastError(WSAEWOULDBLOCK); + return SOCKET_ERROR; + } + if (m_nNetworkError) + { + size_t pending = BIO_ctrl_pending(m_sslbio); + if (pending && !m_nShutDown) + { + m_mayTriggerReadUp = true; + TriggerEvents(); + return BIO_read(m_sslbio, lpBuf,nBufLen); + } + WSASetLastError(m_nNetworkError); + return SOCKET_ERROR; + } + if (m_nShutDown) + { + ::SetLastError(WSAESHUTDOWN); + return SOCKET_ERROR; + } + if (!nBufLen) + { + return 0; + } + size_t pending = BIO_ctrl_pending(m_sslbio); + if (!pending) + { + if (GetLayerState() == closed) + { + return 0; + } + if (m_onCloseCalled) + { + TriggerEvent(FD_CLOSE, 0, TRUE); + return 0; + } + else if (GetLayerState() != connected) + { + SetLastError(m_nNetworkError); + return SOCKET_ERROR; + } + else + { + if (SSL_get_shutdown(m_ssl)) + { + if (ShutDown() || GetLastError() == WSAEWOULDBLOCK) + { + if (ShutDownComplete()) + { + TriggerEvent(FD_CLOSE, 0, TRUE); + return 0; + } + else + WSASetLastError(WSAEWOULDBLOCK); + } + else + { + m_nNetworkError = WSAECONNABORTED; + WSASetLastError(WSAECONNABORTED); + TriggerEvent(FD_CLOSE, WSAECONNABORTED, TRUE); + } + return SOCKET_ERROR; + } + } + m_mayTriggerReadUp = true; + TriggerEvents(); + ::SetLastError(WSAEWOULDBLOCK); + return SOCKET_ERROR; + } + int numread = BIO_read(m_sslbio, lpBuf, nBufLen); + if (!numread) + { + if (SSL_get_shutdown(m_ssl)) + { + if (ShutDown() || GetLastError() == WSAEWOULDBLOCK) + { + if (ShutDownComplete()) + { + TriggerEvent(FD_CLOSE, 0, TRUE); + return 0; + } + else + WSASetLastError(WSAEWOULDBLOCK); + } + else + { + m_nNetworkError = WSAECONNABORTED; + WSASetLastError(WSAECONNABORTED); + TriggerEvent(FD_CLOSE, WSAECONNABORTED, TRUE); + } + return SOCKET_ERROR; + } + m_mayTriggerReadUp = true; + TriggerEvents(); + ::SetLastError(WSAEWOULDBLOCK); + return SOCKET_ERROR; + } + if (numread < 0) + { + if (!BIO_should_retry(m_sslbio)) + { + PrintLastErrorMsg(); + m_nNetworkError = WSAECONNABORTED; + WSASetLastError(WSAECONNABORTED); + TriggerEvent(FD_CLOSE, 0, TRUE); + return SOCKET_ERROR; + } + else + { + if (SSL_get_shutdown(m_ssl)) + { + if (ShutDown() || GetLastError() == WSAEWOULDBLOCK) + { + if (ShutDownComplete()) + { + TriggerEvent(FD_CLOSE, 0, TRUE); + return 0; + } + else + WSASetLastError(WSAEWOULDBLOCK); + } + else + { + m_nNetworkError = WSAECONNABORTED; + WSASetLastError(WSAECONNABORTED); + TriggerEvent(FD_CLOSE, 0, TRUE); + } + return SOCKET_ERROR; + } + m_mayTriggerReadUp = true; + TriggerEvents(); + ::SetLastError(WSAEWOULDBLOCK); + return SOCKET_ERROR; + } + } + + m_mayTriggerReadUp = true; + TriggerEvents(); + return numread; + } + else + { + return ReceiveNext(lpBuf, nBufLen, nFlags); + } } void CAsyncSslSocketLayer::Close() { - m_nShutDown = 0; - m_onCloseCalled = false; - ResetSslSession(); - CloseNext(); + m_nShutDown = 0; + m_onCloseCalled = false; + ResetSslSession(); + CloseNext(); } BOOL CAsyncSslSocketLayer::Connect(const SOCKADDR *lpSockAddr, int nSockAddrLen) { - BOOL res = ConnectNext(lpSockAddr, nSockAddrLen); - if (!res) - { - if (GetLastError() != WSAEWOULDBLOCK) - { - ResetSslSession(); - } - } - return res; + BOOL res = ConnectNext(lpSockAddr, nSockAddrLen); + if (!res) + { + if (GetLastError() != WSAEWOULDBLOCK) + { + ResetSslSession(); + } + } + return res; } BOOL CAsyncSslSocketLayer::Connect(LPCTSTR lpszHostAddress, UINT nHostPort) { - BOOL res = ConnectNext(lpszHostAddress, nHostPort); - if (!res) - { - if (GetLastError()!=WSAEWOULDBLOCK) - { - ResetSslSession(); - } - } - return res; + BOOL res = ConnectNext(lpszHostAddress, nHostPort); + if (!res) + { + if (GetLastError()!=WSAEWOULDBLOCK) + { + ResetSslSession(); + } + } + return res; } int CAsyncSslSocketLayer::InitSSLConnection(bool clientMode, - CAsyncSslSocketLayer* main, bool sessionreuse, - int minTlsVersion, int maxTlsVersion, - void* pSslContext /*=0*/) + CAsyncSslSocketLayer* main, bool sessionreuse, + int minTlsVersion, int maxTlsVersion, + void* pSslContext /*=0*/) { - if (m_bUseSSL) - return 0; - int res = InitSSL(); - if (res) - return res; - - m_sCriticalSection.Lock(); - if ((SSL_CTX*)pSslContext) - { - if (m_ssl_ctx) - { - m_sCriticalSection.Unlock(); - ResetSslSession(); - return SSL_FAILURE_INITSSL; - } - -#ifdef MPEXT - std::map::iterator iter = m_contextRefCount.find((SSL_CTX*)pSslContext); -#else - std::map::iterator& iter = m_contextRefCount.find((SSL_CTX*)pSslContext); -#endif - if (iter == m_contextRefCount.end() || iter->second < 1) - { - m_sCriticalSection.Unlock(); - ResetSslSession(); - return SSL_FAILURE_INITSSL; - } - m_ssl_ctx = (SSL_CTX*)pSslContext; - iter->second++; - } - else if (!m_ssl_ctx) - { - // Create new context if none given - if (!(m_ssl_ctx = SSL_CTX_new( SSLv23_method()))) - { - m_sCriticalSection.Unlock(); - ResetSslSession(); - return SSL_FAILURE_INITSSL; - } - m_contextRefCount[m_ssl_ctx] = 1; - - if (clientMode) - { - USES_CONVERSION; - SSL_CTX_set_verify(m_ssl_ctx, SSL_VERIFY_PEER, verify_callback); - CFileStatus Dummy; - if (CFile::GetStatus((LPCTSTR)m_CertStorage, Dummy)) - { - SSL_CTX_load_verify_locations(m_ssl_ctx, T2CA(m_CertStorage), 0); - } - } - } - - //Create new SSL session - if (!(m_ssl = SSL_new(m_ssl_ctx))) - { - m_sCriticalSection.Unlock(); - ResetSslSession(); - return SSL_FAILURE_INITSSL; - } + if (m_bUseSSL) + return 0; + int res = InitSSL(); + if (res) + return res; + + m_sCriticalSection.Lock(); + if ((SSL_CTX*)pSslContext) + { + if (m_ssl_ctx) + { + m_sCriticalSection.Unlock(); + ResetSslSession(); + return SSL_FAILURE_INITSSL; + } + + std::map::iterator iter = m_contextRefCount.find((SSL_CTX*)pSslContext); + if (iter == m_contextRefCount.end() || iter->second < 1) + { + m_sCriticalSection.Unlock(); + ResetSslSession(); + return SSL_FAILURE_INITSSL; + } + m_ssl_ctx = (SSL_CTX*)pSslContext; + iter->second++; + } + else if (!m_ssl_ctx) + { + // Create new context if none given + if (!(m_ssl_ctx = SSL_CTX_new( SSLv23_method()))) + { + m_sCriticalSection.Unlock(); + ResetSslSession(); + return SSL_FAILURE_INITSSL; + } + m_contextRefCount[m_ssl_ctx] = 1; + + if (clientMode) + { + USES_CONVERSION; + SSL_CTX_set_verify(m_ssl_ctx, SSL_VERIFY_PEER, verify_callback); + SSL_CTX_set_client_cert_cb(m_ssl_ctx, ProvideClientCert); + CFileStatus Dummy; + if (CFile::GetStatus((LPCTSTR)m_CertStorage, Dummy)) + { + SSL_CTX_load_verify_locations(m_ssl_ctx, T2CA(m_CertStorage), 0); + } + } + } + + //Create new SSL session + if (!(m_ssl = SSL_new(m_ssl_ctx))) + { + m_sCriticalSection.Unlock(); + ResetSslSession(); + return SSL_FAILURE_INITSSL; + } #ifdef _DEBUG - if ((main == NULL) && LoggingSocketMessage(FZ_LOG_INFO)) - { - USES_CONVERSION; - LogSocketMessage(FZ_LOG_INFO, _T("Supported ciphersuites:")); - STACK_OF(SSL_CIPHER) * ciphers = SSL_get_ciphers(m_ssl); - for (int i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) - { - SSL_CIPHER * cipher = sk_SSL_CIPHER_value(ciphers, i); - LogSocketMessage(FZ_LOG_INFO, A2CT(cipher->name)); - } - } + if ((main == NULL) && LoggingSocketMessage(FZ_LOG_INFO)) + { + USES_CONVERSION; + LogSocketMessageRaw(FZ_LOG_INFO, L"Supported ciphersuites:"); + STACK_OF(SSL_CIPHER) * ciphers = SSL_get_ciphers(m_ssl); + for (int i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) + { + SSL_CIPHER * cipher = sk_SSL_CIPHER_value(ciphers, i); + LogSocketMessageRaw(FZ_LOG_INFO, A2CT(cipher->name)); + } + } #endif - //Add current instance to list of active instances - t_SslLayerList *tmp = m_pSslLayerList; - m_pSslLayerList = new t_SslLayerList; - m_pSslLayerList->pNext = tmp; - m_pSslLayerList->pLayer = this; - m_sCriticalSection.Unlock(); - - SSL_set_info_callback(m_ssl, apps_ssl_info_callback); - - //Create bios - m_sslbio = BIO_new(BIO_f_ssl()); - BIO_new_bio_pair(&m_ibio, 4096, &m_nbio, 4096); - - if (!m_sslbio || !m_nbio || !m_ibio) - { - ResetSslSession(); - return SSL_FAILURE_INITSSL; - } - - // See also TWebDAVFileSystem::InitSslSession - #define MASK_TLS_VERSION(VERSION, FLAG) ((minTlsVersion > VERSION) || (maxTlsVersion < VERSION) ? FLAG : 0) - long options = - SSL_OP_ALL | - MASK_TLS_VERSION(SSL_VERSION_SSL2, SSL_OP_NO_SSLv2) | - MASK_TLS_VERSION(SSL_VERSION_SSL3, SSL_OP_NO_SSLv3) | - MASK_TLS_VERSION(SSL_VERSION_TLS10, SSL_OP_NO_TLSv1) | - MASK_TLS_VERSION(SSL_VERSION_TLS11, SSL_OP_NO_TLSv1_1) | - MASK_TLS_VERSION(SSL_VERSION_TLS12, SSL_OP_NO_TLSv1_2); - // SSL_ctrl() with SSL_CTRL_OPTIONS adds flags (not sets) - SSL_ctrl(m_ssl, SSL_CTRL_OPTIONS, options, NULL); - - //Init SSL connection - void *ssl_sessionid = NULL; - m_Main = main; - m_sessionreuse = sessionreuse; - if ((m_Main != NULL) && m_sessionreuse) - { - if (m_Main->m_sessionid != NULL) - { - if (!SSL_set_session(m_ssl, m_Main->m_sessionid)) - { - LogSocketMessage(FZ_LOG_INFO, _T("SSL_set_session failed")); - return SSL_FAILURE_INITSSL; - } - LogSocketMessage(FZ_LOG_INFO, _T("Trying reuse main TLS session ID")); - } - else - { - LogSocketMessage(FZ_LOG_INFO, _T("Main TLS session ID was not reused previously, not trying again")); - SSL_set_session(m_ssl, NULL); - } - } - else - { - SSL_set_session(m_ssl, NULL); - } - if (clientMode) - { - SSL_set_connect_state(m_ssl); - } - else - { - SSL_set_accept_state(m_ssl); - } - SSL_set_bio(m_ssl, m_ibio, m_ibio); - BIO_ctrl(m_sslbio, BIO_C_SET_SSL, BIO_NOCLOSE, m_ssl); - BIO_read(m_sslbio, (void *)1, 0); - - // Trigger FD_WRITE so that we can initialize SSL negotiation - if (GetLayerState() == connected || GetLayerState() == attached) - { - TriggerEvent(FD_READ, 0); - TriggerEvent(FD_WRITE, 0); - TriggerEvent(FD_READ, 0, TRUE); - TriggerEvent(FD_WRITE, 0, TRUE); - } - - m_bUseSSL = true; - - return 0; + //Add current instance to list of active instances + t_SslLayerList *tmp = m_pSslLayerList; + m_pSslLayerList = new t_SslLayerList; + m_pSslLayerList->pNext = tmp; + m_pSslLayerList->pLayer = this; + m_sCriticalSection.Unlock(); + + SSL_set_info_callback(m_ssl, apps_ssl_info_callback); + + //Create bios + m_sslbio = BIO_new(BIO_f_ssl()); + BIO_new_bio_pair(&m_ibio, 32768, &m_nbio, 32768); + + if (!m_sslbio || !m_nbio || !m_ibio) + { + ResetSslSession(); + return SSL_FAILURE_INITSSL; + } + + // See also TWebDAVFileSystem::InitSslSession + #define MASK_TLS_VERSION(VERSION, FLAG) ((minTlsVersion > VERSION) || (maxTlsVersion < VERSION) ? FLAG : 0) + long options = + SSL_OP_ALL | + MASK_TLS_VERSION(SSL_VERSION_SSL2, SSL_OP_NO_SSLv2) | + MASK_TLS_VERSION(SSL_VERSION_SSL3, SSL_OP_NO_SSLv3) | + MASK_TLS_VERSION(SSL_VERSION_TLS10, SSL_OP_NO_TLSv1) | + MASK_TLS_VERSION(SSL_VERSION_TLS11, SSL_OP_NO_TLSv1_1) | + MASK_TLS_VERSION(SSL_VERSION_TLS12, SSL_OP_NO_TLSv1_2); + // SSL_ctrl() with SSL_CTRL_OPTIONS adds flags (not sets) + SSL_ctrl(m_ssl, SSL_CTRL_OPTIONS, options, NULL); + + //Init SSL connection + void *ssl_sessionid = NULL; + m_Main = main; + m_sessionreuse = sessionreuse; + if ((m_Main != NULL) && m_sessionreuse) + { + if (m_Main->m_sessionid != NULL) + { + if (!SSL_set_session(m_ssl, m_Main->m_sessionid)) + { + LogSocketMessageRaw(FZ_LOG_INFO, L"SSL_set_session failed"); + return SSL_FAILURE_INITSSL; + } + LogSocketMessageRaw(FZ_LOG_INFO, L"Trying reuse main TLS session ID"); + } + else + { + LogSocketMessageRaw(FZ_LOG_INFO, L"Main TLS session ID was not reused previously, not trying again"); + SSL_set_session(m_ssl, NULL); + } + } + else + { + SSL_set_session(m_ssl, NULL); + } + if (clientMode) + { + SSL_set_connect_state(m_ssl); + } + else + { + SSL_set_accept_state(m_ssl); + } + SSL_set_bio(m_ssl, m_ibio, m_ibio); + BIO_ctrl(m_sslbio, BIO_C_SET_SSL, BIO_NOCLOSE, m_ssl); + BIO_read(m_sslbio, (void *)1, 0); + + // Trigger FD_WRITE so that we can initialize SSL negotiation + if (GetLayerState() == connected || GetLayerState() == attached) + { + TriggerEvent(FD_READ, 0); + TriggerEvent(FD_WRITE, 0); + TriggerEvent(FD_READ, 0, TRUE); + TriggerEvent(FD_WRITE, 0, TRUE); + } + + m_bUseSSL = true; + + return 0; } void CAsyncSslSocketLayer::ResetSslSession() { - if (m_pRetrySendBuffer) - { - delete [] m_pRetrySendBuffer; - m_pRetrySendBuffer = 0; - } - - m_bFailureSent = FALSE; - m_bBlocking = FALSE; - m_nSslAsyncNotifyId++; - m_nNetworkError = 0; - m_bUseSSL = FALSE; - m_nVerificationResult = 0; - m_nVerificationDepth = 0; - - m_bSslEstablished = FALSE; - if (m_sslbio) - { - BIO_free(m_sslbio); - } - if (m_ssl) - { - SSL_set_session(m_ssl,NULL); - } - if (m_nbio) - { - BIO_free(m_nbio); - } - if (m_ibio) - { - BIO_free(m_ibio); - } - - m_nNetworkSendBufferLen = 0; - - m_nbio = 0; - m_ibio = 0; - m_sslbio = 0; - - if (m_ssl) - { - SSL_free(m_ssl); - } - - m_sCriticalSection.Lock(); - - if (m_ssl_ctx) - { -#ifdef MPEXT - std::map::iterator iter = m_contextRefCount.find(m_ssl_ctx); -#else - std::map::iterator& iter = m_contextRefCount.find(m_ssl_ctx); -#endif - if (iter != m_contextRefCount.end()) - { - if (iter->second <= 1) - { - SSL_CTX_free(m_ssl_ctx); - m_contextRefCount.erase(iter); - } - else - iter->second--; - } - m_ssl_ctx = 0; - } - - delete [] m_pKeyPassword; - m_pKeyPassword = 0; - - m_ssl = 0; - t_SslLayerList *cur = m_pSslLayerList; - if (!cur) - { - m_sCriticalSection.Unlock(); - return; - } - - if (cur->pLayer == this) - { - m_pSslLayerList = cur->pNext; - delete cur; - } - else - while (cur->pNext) - { - if (cur->pNext->pLayer == this) - { - t_SslLayerList *tmp = cur->pNext; - cur->pNext = cur->pNext->pNext; - delete tmp; - - m_sCriticalSection.Unlock(); - return; - } - cur = cur->pNext; - } - - if (m_sessionid != NULL) - { - SSL_SESSION_free(m_sessionid); - m_sessionid = NULL; - } - m_sessionreuse = true; - - m_sCriticalSection.Unlock(); + if (m_pRetrySendBuffer) + { + delete [] m_pRetrySendBuffer; + m_pRetrySendBuffer = 0; + } + + m_bFailureSent = FALSE; + m_bBlocking = FALSE; + m_nSslAsyncNotifyId++; + m_nNetworkError = 0; + m_bUseSSL = FALSE; + m_nVerificationResult = 0; + m_nVerificationDepth = 0; + + m_bSslEstablished = FALSE; + if (m_sslbio) + { + BIO_free(m_sslbio); + } + if (m_ssl) + { + SSL_set_session(m_ssl,NULL); + } + if (m_nbio) + { + BIO_free(m_nbio); + } + if (m_ibio) + { + BIO_free(m_ibio); + } + + m_nNetworkSendBufferLen = 0; + + m_nbio = 0; + m_ibio = 0; + m_sslbio = 0; + + if (m_ssl) + { + SSL_free(m_ssl); + } + + m_sCriticalSection.Lock(); + + if (m_ssl_ctx) + { + std::map::iterator iter = m_contextRefCount.find(m_ssl_ctx); + if (iter != m_contextRefCount.end()) + { + if (iter->second <= 1) + { + SSL_CTX_free(m_ssl_ctx); + m_contextRefCount.erase(iter); + } + else + iter->second--; + } + m_ssl_ctx = 0; + } + + m_ssl = 0; + t_SslLayerList *cur = m_pSslLayerList; + if (!cur) + { + m_sCriticalSection.Unlock(); + return; + } + + if (cur->pLayer == this) + { + m_pSslLayerList = cur->pNext; + delete cur; + } + else + while (cur->pNext) + { + if (cur->pNext->pLayer == this) + { + t_SslLayerList *tmp = cur->pNext; + cur->pNext = cur->pNext->pNext; + delete tmp; + + m_sCriticalSection.Unlock(); + return; + } + cur = cur->pNext; + } + + if (m_sessionid != NULL) + { + SSL_SESSION_free(m_sessionid); + m_sessionid = NULL; + } + m_sessionreuse = true; + + m_sCriticalSection.Unlock(); } bool CAsyncSslSocketLayer::IsUsingSSL() { - return m_bUseSSL; + return m_bUseSSL; } BOOL CAsyncSslSocketLayer::ShutDown(int nHow /*=sends*/) { - if (m_bUseSSL) - { - if (m_pRetrySendBuffer) - { - if (!m_nShutDown) - m_nShutDown = 1; - WSASetLastError(WSAEWOULDBLOCK); - return false; - } -#ifdef MPEXT - if (!m_bSslEstablished) - { - m_mayTriggerWriteUp = true; - SetLastError(WSAEWOULDBLOCK); - return false; - } -#endif - if (!m_nShutDown) - m_nShutDown = 1; - else - { - if (ShutDownComplete()) - return ShutDownNext(); - else - { - TriggerEvents(); - WSASetLastError(WSAEWOULDBLOCK); - return false; - } - } - - int res = SSL_shutdown(m_ssl); - if (res != -1) - { - if (!res) - { - SSL_shutdown(m_ssl); - } - if (ShutDownComplete()) - return ShutDownNext(); - else - { - TriggerEvents(); - WSASetLastError(WSAEWOULDBLOCK); - return FALSE; - } - } - else - { - int error = SSL_get_error(m_ssl, -1); - if (error == SSL_ERROR_WANT_READ || error == SSL_ERROR_WANT_WRITE) - { -#ifdef MPEXT - // retry shutdown later - m_nShutDown = 0; -#endif - TriggerEvents(); - WSASetLastError(WSAEWOULDBLOCK); - return FALSE; - } - else if (ShutDownComplete()) - return ShutDownNext(); - else - { - TriggerEvents(); - WSASetLastError(WSAEWOULDBLOCK); - return FALSE; - } - } - } - else - { - if (!m_nShutDown) - m_nShutDown = 1; - return ShutDownNext(nHow); - } + if (m_bUseSSL) + { + if (m_pRetrySendBuffer) + { + if (!m_nShutDown) + m_nShutDown = 1; + WSASetLastError(WSAEWOULDBLOCK); + return false; + } + if (!m_bSslEstablished) + { + m_mayTriggerWriteUp = true; + ::SetLastError(WSAEWOULDBLOCK); + return false; + } + if (!m_nShutDown) + m_nShutDown = 1; + else + { + if (ShutDownComplete()) + return ShutDownNext(); + else + { + TriggerEvents(); + WSASetLastError(WSAEWOULDBLOCK); + return false; + } + } + + int res = SSL_shutdown(m_ssl); + if (res != -1) + { + if (!res) + { + SSL_shutdown(m_ssl); + } + if (ShutDownComplete()) + return ShutDownNext(); + else + { + TriggerEvents(); + WSASetLastError(WSAEWOULDBLOCK); + return FALSE; + } + } + else + { + int error = SSL_get_error(m_ssl, -1); + if (error == SSL_ERROR_WANT_READ || error == SSL_ERROR_WANT_WRITE) + { + // retry shutdown later + m_nShutDown = 0; + TriggerEvents(); + WSASetLastError(WSAEWOULDBLOCK); + return FALSE; + } + else if (ShutDownComplete()) + return ShutDownNext(); + else + { + TriggerEvents(); + WSASetLastError(WSAEWOULDBLOCK); + return FALSE; + } + } + } + else + { + if (!m_nShutDown) + m_nShutDown = 1; + return ShutDownNext(nHow); + } } BOOL CAsyncSslSocketLayer::ShutDownComplete() { - //If a ShutDown was issued, has the connection already been shut down? - if (!m_nShutDown) - return FALSE; - else if (!m_bUseSSL) - return FALSE; - else if (m_nNetworkSendBufferLen) - return FALSE; - else if (m_pRetrySendBuffer) - return FALSE; - - // Empty read buffer - char buffer[1000]; - int numread; - do - { - numread = BIO_read(m_sslbio, buffer, 1000); - } while (numread > 0); - - size_t pending = BIO_ctrl_pending(m_nbio); - if (pending) - { - return FALSE; - } - else - { - return TRUE; - } + //If a ShutDown was issued, has the connection already been shut down? + if (!m_nShutDown) + return FALSE; + else if (!m_bUseSSL) + return FALSE; + else if (m_nNetworkSendBufferLen) + return FALSE; + else if (m_pRetrySendBuffer) + return FALSE; + + // Empty read buffer + char buffer[1000]; + int numread; + do + { + numread = BIO_read(m_sslbio, buffer, 1000); + } while (numread > 0); + + size_t pending = BIO_ctrl_pending(m_nbio); + if (pending) + { + return FALSE; + } + else + { + return TRUE; + } } void CAsyncSslSocketLayer::apps_ssl_info_callback(const SSL *s, int where, int ret) { - USES_CONVERSION; - CAsyncSslSocketLayer *pLayer = 0; - m_sCriticalSection.Lock(); - t_SslLayerList *cur = m_pSslLayerList; - while (cur) - { - if (cur->pLayer->m_ssl == s) - break; - cur = cur->pNext; - } - if (!cur) - { - m_sCriticalSection.Unlock(); - MessageBox(0, _T("Can't lookup TLS session!"), _T("Critical error"), MB_ICONEXCLAMATION); - return; - } - else - pLayer = cur->pLayer; - m_sCriticalSection.Unlock(); - - // Called while unloading? - if (!pLayer->m_bUseSSL && (where != SSL_CB_LOOP)) - return; - - char * str; - int w; - - w = where& ~SSL_ST_MASK; - - if (w & SSL_ST_CONNECT) - { - str = "TLS connect"; - if (pLayer->m_sessionreuse) - { - SSL_SESSION * sessionid = SSL_get1_session(pLayer->m_ssl); - if (pLayer->m_sessionid != sessionid) - { - if (pLayer->m_sessionid == NULL) - { - if (SSL_session_reused(pLayer->m_ssl)) - { - pLayer->LogSocketMessage(FZ_LOG_PROGRESS, _T("Session ID reused")); - } - else - { - if ((pLayer->m_Main != NULL) && (pLayer->m_Main->m_sessionid != NULL)) - { - pLayer->LogSocketMessage(FZ_LOG_INFO, _T("Main TLS session ID not reused, will not try again")); - SSL_SESSION_free(pLayer->m_Main->m_sessionid); - pLayer->m_Main->m_sessionid = NULL; - } - } - pLayer->LogSocketMessage(FZ_LOG_DEBUG, _T("Saving session ID")); - } - else - { - SSL_SESSION_free(pLayer->m_sessionid); - pLayer->LogSocketMessage(FZ_LOG_INFO, _T("Session ID changed")); - } - pLayer->m_sessionid = sessionid; - } - else - { - SSL_SESSION_free(sessionid); - } - } - } - else if (w & SSL_ST_ACCEPT) - str = "TLS accept"; - else - str = "Undefined"; - - if (where & SSL_CB_LOOP) - { - char* debug = NULL; - // exact SSL_CB_LOOP is abused for debugging - if (where == SSL_CB_LOOP) - { - debug = reinterpret_cast(ret); - } - char *buffer = new char[4096 + ((debug != NULL) ? strlen(debug) : 0)]; - sprintf(buffer, "%s: %s", - str, - SSL_state_string_long(s)); - if (debug != NULL) - { - sprintf(buffer + strlen(buffer), " [%s]", debug); - OPENSSL_free(debug); - } - pLayer->DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_VERBOSE_INFO, 0, buffer); - } - else if (where & SSL_CB_ALERT) - { - str=(where & SSL_CB_READ)? "read" : "write"; - const char* desc = SSL_alert_desc_string_long(ret); - - // Don't send close notify warning - if (desc) - { - if (strcmp(desc, "close notify")) - { - char *buffer = new char[4096]; - sprintf(buffer, "SSL3 alert %s: %s: %s", - str, - SSL_alert_type_string_long(ret), - desc); - pLayer->DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_VERBOSE_WARNING, 0, buffer); - } - } - } - - else if (where & SSL_CB_EXIT) - { - if (ret == 0) - { - char *buffer = new char[4096]; - sprintf(buffer, "%s: failed in %s", - str, - SSL_state_string_long(s)); - pLayer->DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_VERBOSE_WARNING, 0, buffer); - if (!pLayer->m_bFailureSent) - { - pLayer->m_bFailureSent=TRUE; - pLayer->DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_FAILURE, pLayer->m_bSslEstablished ? SSL_FAILURE_UNKNOWN : SSL_FAILURE_ESTABLISH); - } - } - else if (ret < 0) - { - int error = SSL_get_error(s,ret); - if (error != SSL_ERROR_WANT_READ && error != SSL_ERROR_WANT_WRITE) - { - char *buffer = new char[4096]; - sprintf(buffer, "%s: error in %s", - str, - SSL_state_string_long(s)); - pLayer->DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_VERBOSE_WARNING, 0, buffer); - if (!pLayer->m_bFailureSent) - { - pLayer->m_bFailureSent=TRUE; - pLayer->DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_FAILURE, pLayer->m_bSslEstablished ? SSL_FAILURE_UNKNOWN : SSL_FAILURE_ESTABLISH); - } - } - } - } - if (where & SSL_CB_HANDSHAKE_DONE) - { - int error = SSL_get_verify_result(pLayer->m_ssl); - pLayer->DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_VERIFY_CERT, error); - pLayer->m_bBlocking = TRUE; - } + USES_CONVERSION; + CAsyncSslSocketLayer *pLayer = 0; + m_sCriticalSection.Lock(); + t_SslLayerList *cur = m_pSslLayerList; + while (cur) + { + if (cur->pLayer->m_ssl == s) + break; + cur = cur->pNext; + } + if (!cur) + { + m_sCriticalSection.Unlock(); + MessageBox(0, L"Can't lookup TLS session!", L"Critical error", MB_ICONEXCLAMATION); + return; + } + else + pLayer = cur->pLayer; + m_sCriticalSection.Unlock(); + + // Called while unloading? + if (!pLayer->m_bUseSSL && (where != SSL_CB_LOOP)) + return; + + char * str; + int w; + + w = where& ~SSL_ST_MASK; + + if (w & SSL_ST_CONNECT) + { + str = "TLS connect"; + if (pLayer->m_sessionreuse) + { + SSL_SESSION * sessionid = SSL_get1_session(pLayer->m_ssl); + if (pLayer->m_sessionid != sessionid) + { + if (pLayer->m_sessionid == NULL) + { + if (SSL_session_reused(pLayer->m_ssl)) + { + pLayer->LogSocketMessageRaw(FZ_LOG_PROGRESS, L"Session ID reused"); + } + else + { + if ((pLayer->m_Main != NULL) && (pLayer->m_Main->m_sessionid != NULL)) + { + pLayer->LogSocketMessageRaw(FZ_LOG_INFO, L"Main TLS session ID not reused, will not try again"); + SSL_SESSION_free(pLayer->m_Main->m_sessionid); + pLayer->m_Main->m_sessionid = NULL; + } + } + pLayer->LogSocketMessageRaw(FZ_LOG_DEBUG, L"Saving session ID"); + } + else + { + SSL_SESSION_free(pLayer->m_sessionid); + pLayer->LogSocketMessageRaw(FZ_LOG_INFO, L"Session ID changed"); + } + pLayer->m_sessionid = sessionid; + } + else + { + SSL_SESSION_free(sessionid); + } + } + } + else if (w & SSL_ST_ACCEPT) + str = "TLS accept"; + else + str = "Undefined"; + + if (where & SSL_CB_LOOP) + { + char* debug = NULL; + // exact SSL_CB_LOOP is abused for debugging + if (where == SSL_CB_LOOP) + { + debug = reinterpret_cast(ret); + } + char *buffer = new char[4096 + ((debug != NULL) ? strlen(debug) : 0)]; + sprintf(buffer, "%s: %s", + str, + SSL_state_string_long(s)); + if (debug != NULL) + { + sprintf(buffer + strlen(buffer), " [%s]", debug); + OPENSSL_free(debug); + } + USES_CONVERSION; + pLayer->LogSocketMessageRaw(FZ_LOG_INFO, A2T(buffer)); + delete[] buffer; + } + else if (where & SSL_CB_ALERT) + { + str=(where & SSL_CB_READ)? "read" : "write"; + const char* desc = SSL_alert_desc_string_long(ret); + + // Don't send close notify warning + if (desc) + { + if (strcmp(desc, "close notify")) + { + char *buffer = new char[4096]; + sprintf(buffer, "SSL3 alert %s: %s: %s", + str, + SSL_alert_type_string_long(ret), + desc); + pLayer->LogSocketMessageRaw(FZ_LOG_WARNING, A2T(buffer)); + delete [] buffer; + } + } + } + + else if (where & SSL_CB_EXIT) + { + if (ret == 0) + { + char *buffer = new char[4096]; + sprintf(buffer, "%s: failed in %s", + str, + SSL_state_string_long(s)); + pLayer->LogSocketMessageRaw(FZ_LOG_WARNING, A2T(buffer)); + delete [] buffer; + if (!pLayer->m_bFailureSent) + { + pLayer->m_bFailureSent=TRUE; + pLayer->DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_FAILURE, pLayer->m_bSslEstablished ? SSL_FAILURE_UNKNOWN : SSL_FAILURE_ESTABLISH); + } + } + else if (ret < 0) + { + int error = SSL_get_error(s,ret); + if (error != SSL_ERROR_WANT_READ && error != SSL_ERROR_WANT_WRITE) + { + char *buffer = new char[4096]; + sprintf(buffer, "%s: error in %s", + str, + SSL_state_string_long(s)); + pLayer->LogSocketMessageRaw(FZ_LOG_WARNING, A2T(buffer)); + delete [] buffer; + if (!pLayer->m_bFailureSent) + { + pLayer->m_bFailureSent=TRUE; + pLayer->DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_FAILURE, pLayer->m_bSslEstablished ? SSL_FAILURE_UNKNOWN : SSL_FAILURE_ESTABLISH); + } + } + } + } + if (where & SSL_CB_HANDSHAKE_DONE) + { + int error = SSL_get_verify_result(pLayer->m_ssl); + pLayer->DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_VERIFY_CERT, error); + pLayer->m_bBlocking = TRUE; + } } void CAsyncSslSocketLayer::UnloadSSL() { - if (!m_bSslInitialized) - return; - ResetSslSession(); - - m_bSslInitialized = false; - - m_sCriticalSection.Lock(); - m_nSslRefCount--; - if (m_nSslRefCount) - { - m_sCriticalSection.Unlock(); - return; - } + if (!m_bSslInitialized) + return; + ResetSslSession(); + + m_bSslInitialized = false; + + m_sCriticalSection.Lock(); + m_nSslRefCount--; + if (m_nSslRefCount) + { + m_sCriticalSection.Unlock(); + return; + } - m_sCriticalSection.Unlock(); + m_sCriticalSection.Unlock(); } bool AsnTimeToValidTime(ASN1_TIME * AsnTime, t_SslCertData::t_validTime & ValidTime) { - int i = AsnTime->length; - const char * v = (const char *)AsnTime->data; - - if (i < 10) - { - return FALSE; - } - - for (int i2 = 0; i2 < 10; i2++) - { - if ((v[i2] > '9') || (v[i2] < '0')) - { - return FALSE; - } - } - - if (AsnTime->type == V_ASN1_UTCTIME) - { - ValidTime.y= (v[0]-'0')*10+(v[1]-'0'); - if (ValidTime.y < 50) ValidTime.y+=100; - ValidTime.y += 1900; - v += 2; - i -= 2; - } - else if (AsnTime->type == V_ASN1_GENERALIZEDTIME) - { - if (i < 12) - { - return FALSE; - } - ValidTime.y = (v[0]-'0')*1000+(v[1]-'0')*100 + (v[2]-'0')*10+(v[3]-'0'); - v += 4; - i -= 4; - } - else - { - return FALSE; - } - - ValidTime.M = (v[0]-'0')*10+(v[1]-'0'); - if ((ValidTime.M > 12) || (ValidTime.M < 1)) - { - return FALSE; - } - - ValidTime.d = (v[2]-'0')*10+(v[3]-'0'); - ValidTime.h = (v[4]-'0')*10+(v[5]-'0'); - ValidTime.m = (v[6]-'0')*10+(v[7]-'0'); - - if ((i >= 10) && - (v[8] >= '0') && (v[8] <= '9') && - (v[9] >= '0') && (v[9] <= '9')) - { - ValidTime.s = (v[8]-'0')*10+(v[9]-'0'); - } - else - { - ValidTime.s = 0; - } - - return TRUE; + int i = AsnTime->length; + const char * v = (const char *)AsnTime->data; + + if (i < 10) + { + return FALSE; + } + + for (int i2 = 0; i2 < 10; i2++) + { + if ((v[i2] > '9') || (v[i2] < '0')) + { + return FALSE; + } + } + + if (AsnTime->type == V_ASN1_UTCTIME) + { + ValidTime.y= (v[0]-'0')*10+(v[1]-'0'); + if (ValidTime.y < 50) ValidTime.y+=100; + ValidTime.y += 1900; + v += 2; + i -= 2; + } + else if (AsnTime->type == V_ASN1_GENERALIZEDTIME) + { + if (i < 12) + { + return FALSE; + } + ValidTime.y = (v[0]-'0')*1000+(v[1]-'0')*100 + (v[2]-'0')*10+(v[3]-'0'); + v += 4; + i -= 4; + } + else + { + return FALSE; + } + + ValidTime.M = (v[0]-'0')*10+(v[1]-'0'); + if ((ValidTime.M > 12) || (ValidTime.M < 1)) + { + return FALSE; + } + + ValidTime.d = (v[2]-'0')*10+(v[3]-'0'); + ValidTime.h = (v[4]-'0')*10+(v[5]-'0'); + ValidTime.m = (v[6]-'0')*10+(v[7]-'0'); + + if ((i >= 10) && + (v[8] >= '0') && (v[8] <= '9') && + (v[9] >= '0') && (v[9] <= '9')) + { + ValidTime.s = (v[8]-'0')*10+(v[9]-'0'); + } + else + { + ValidTime.s = 0; + } + + return TRUE; } BOOL CAsyncSslSocketLayer::GetPeerCertificateData(t_SslCertData &SslCertData, LPCTSTR & Error) { - X509 *pX509=SSL_get_peer_certificate(m_ssl); - if (!pX509) - { - Error = _T("Cannot get certificate"); - return FALSE; - } - - //Reset the contents of SslCertData - memset(&SslCertData, 0, sizeof(t_SslCertData)); - - //Set subject data fields - X509_NAME *pX509Name=X509_get_subject_name(pX509); - - if (pX509Name) - { - int count=X509_NAME_entry_count(pX509Name); - for (int i=0;i 0) - { - // Keep it huge - LPWSTR unicode = new WCHAR[len * 10]; - memset(unicode, 0, sizeof(WCHAR) * len * 10); - int unicodeLen = MultiByteToWideChar(CP_UTF8, 0, (const char *)out, len, unicode, len * 10); - if (unicodeLen > 0) - { + X509 *pX509=SSL_get_peer_certificate(m_ssl); + if (!pX509) + { + Error = L"Cannot get certificate"; + return FALSE; + } + + //Reset the contents of SslCertData + memset(&SslCertData, 0, sizeof(t_SslCertData)); + + //Set subject data fields + X509_NAME *pX509Name=X509_get_subject_name(pX509); + + if (pX509Name) + { + int count=X509_NAME_entry_count(pX509Name); + for (int i=0;i 0) + { + // Keep it huge + LPWSTR unicode = new WCHAR[len * 10]; + memset(unicode, 0, sizeof(WCHAR) * len * 10); + int unicodeLen = MultiByteToWideChar(CP_UTF8, 0, (const char *)out, len, unicode, len * 10); + if (unicodeLen > 0) + { #ifdef _UNICODE - str = unicode; + str = unicode; #else - LPSTR ansi = new CHAR[len * 10]; - memset(ansi, 0, sizeof(CHAR) * len * 10); - int ansiLen = WideCharToMultiByte(CP_ACP, 0, unicode, unicodeLen, ansi, len * 10, 0, 0); - if (ansiLen > 0) - str = ansi; + LPSTR ansi = new CHAR[len * 10]; + memset(ansi, 0, sizeof(CHAR) * len * 10); + int ansiLen = WideCharToMultiByte(CP_ACP, 0, unicode, unicodeLen, ansi, len * 10, 0, 0); + if (ansiLen > 0) + str = ansi; - delete [] ansi; + delete [] ansi; #endif - } - delete [] unicode; - CRYPTO_free(out); - } - - switch(OBJ_obj2nid(pObject)) - { - case NID_organizationName: - _tcsncpy(SslCertData.subject.Organization, str, 255); - SslCertData.subject.Organization[255] = 0; - break; - case NID_organizationalUnitName: - _tcsncpy(SslCertData.subject.Unit, str, 255); - SslCertData.subject.Unit[255] = 0; - break; - case NID_commonName: - _tcsncpy(SslCertData.subject.CommonName, str, 255); - SslCertData.subject.CommonName[255] = 0; - break; - case NID_pkcs9_emailAddress: - _tcsncpy(SslCertData.subject.Mail, str, 255); - SslCertData.subject.Mail[255] = 0; - break; - case NID_countryName: - _tcsncpy(SslCertData.subject.Country, str, 255); - SslCertData.subject.Country[255] = 0; - break; - case NID_stateOrProvinceName: - _tcsncpy(SslCertData.subject.StateProvince, str, 255); - SslCertData.subject.StateProvince[255] = 0; - break; - case NID_localityName: - _tcsncpy(SslCertData.subject.Town, str, 255); - SslCertData.subject.Town[255] = 0; - break; - default: - if ( !OBJ_nid2sn(OBJ_obj2nid(pObject)) ) - { - TCHAR tmp[20]; - _stprintf(tmp, _T("%d"), OBJ_obj2nid(pObject)); - int maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; - _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), tmp, maxlen); - - maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; - _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), _T("="), maxlen); - - maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; - _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), str, maxlen); - - maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; - _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), _T(";"), maxlen); - } - else - { - int maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; - - USES_CONVERSION; - _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), A2CT(OBJ_nid2sn(OBJ_obj2nid(pObject))), maxlen); - - maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; - _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), _T("="), maxlen); - - maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; - _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), str, maxlen); - - maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; - _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), _T(";"), maxlen); - } - break; - } - } - } - - //Set issuer data fields - pX509Name=X509_get_issuer_name(pX509); - if (pX509Name) - { - int count=X509_NAME_entry_count(pX509Name); - for (int i=0;i 0) - { - // Keep it huge - LPWSTR unicode = new WCHAR[len * 10]; - memset(unicode, 0, sizeof(WCHAR) * len * 10); - int unicodeLen = MultiByteToWideChar(CP_UTF8, 0, (const char *)out, len, unicode, len * 10); - if (unicodeLen > 0) - { + } + delete [] unicode; + CRYPTO_free(out); + } + + switch(OBJ_obj2nid(pObject)) + { + case NID_organizationName: + _tcsncpy(SslCertData.subject.Organization, str, 255); + SslCertData.subject.Organization[255] = 0; + break; + case NID_organizationalUnitName: + _tcsncpy(SslCertData.subject.Unit, str, 255); + SslCertData.subject.Unit[255] = 0; + break; + case NID_commonName: + _tcsncpy(SslCertData.subject.CommonName, str, 255); + SslCertData.subject.CommonName[255] = 0; + break; + case NID_pkcs9_emailAddress: + _tcsncpy(SslCertData.subject.Mail, str, 255); + SslCertData.subject.Mail[255] = 0; + break; + case NID_countryName: + _tcsncpy(SslCertData.subject.Country, str, 255); + SslCertData.subject.Country[255] = 0; + break; + case NID_stateOrProvinceName: + _tcsncpy(SslCertData.subject.StateProvince, str, 255); + SslCertData.subject.StateProvince[255] = 0; + break; + case NID_localityName: + _tcsncpy(SslCertData.subject.Town, str, 255); + SslCertData.subject.Town[255] = 0; + break; + default: + if ( !OBJ_nid2sn(OBJ_obj2nid(pObject)) ) + { + TCHAR tmp[20]; + _stprintf(tmp, L"%d", OBJ_obj2nid(pObject)); + int maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; + _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), tmp, maxlen); + + maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; + _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), L"=", maxlen); + + maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; + _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), str, maxlen); + + maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; + _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), L";", maxlen); + } + else + { + int maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; + + USES_CONVERSION; + _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), A2CT(OBJ_nid2sn(OBJ_obj2nid(pObject))), maxlen); + + maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; + _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), L"=", maxlen); + + maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; + _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), str, maxlen); + + maxlen = 1024 - _tcslen(SslCertData.subject.Other)-1; + _tcsncpy(SslCertData.subject.Other+_tcslen(SslCertData.subject.Other), L";", maxlen); + } + break; + } + } + } + + //Set issuer data fields + pX509Name=X509_get_issuer_name(pX509); + if (pX509Name) + { + int count=X509_NAME_entry_count(pX509Name); + for (int i=0;i 0) + { + // Keep it huge + LPWSTR unicode = new WCHAR[len * 10]; + memset(unicode, 0, sizeof(WCHAR) * len * 10); + int unicodeLen = MultiByteToWideChar(CP_UTF8, 0, (const char *)out, len, unicode, len * 10); + if (unicodeLen > 0) + { #ifdef _UNICODE - str = unicode; + str = unicode; #else - LPSTR ansi = new CHAR[len * 10]; - memset(ansi, 0, sizeof(CHAR) * len * 10); - int ansiLen = WideCharToMultiByte(CP_ACP, 0, unicode, unicodeLen, ansi, len * 10, 0, 0); - if (ansiLen > 0) - str = ansi; + LPSTR ansi = new CHAR[len * 10]; + memset(ansi, 0, sizeof(CHAR) * len * 10); + int ansiLen = WideCharToMultiByte(CP_ACP, 0, unicode, unicodeLen, ansi, len * 10, 0, 0); + if (ansiLen > 0) + str = ansi; - delete [] ansi; + delete [] ansi; #endif - } - delete [] unicode; - CRYPTO_free(out); - } - - switch(OBJ_obj2nid(pObject)) - { - case NID_organizationName: - _tcsncpy(SslCertData.issuer.Organization, str, 255); - SslCertData.issuer.Organization[255] = 0; - break; - case NID_organizationalUnitName: - _tcsncpy(SslCertData.issuer.Unit, str, 255); - SslCertData.issuer.Unit[255] = 0; - break; - case NID_commonName: - _tcsncpy(SslCertData.issuer.CommonName, str, 255); - SslCertData.issuer.CommonName[255] = 0; - break; - case NID_pkcs9_emailAddress: - _tcsncpy(SslCertData.issuer.Mail, str, 255); - SslCertData.issuer.Mail[255] = 0; - break; - case NID_countryName: - _tcsncpy(SslCertData.issuer.Country, str, 255); - SslCertData.issuer.Country[255] = 0; - break; - case NID_stateOrProvinceName: - _tcsncpy(SslCertData.issuer.StateProvince, str, 255); - SslCertData.issuer.StateProvince[255] = 0; - break; - case NID_localityName: - _tcsncpy(SslCertData.issuer.Town, str, 255); - SslCertData.issuer.Town[255] = 0; - break; - default: - if ( !OBJ_nid2sn(OBJ_obj2nid(pObject)) ) - { - TCHAR tmp[20]; - _stprintf(tmp, _T("%d"), OBJ_obj2nid(pObject)); - int maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; - _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), tmp, maxlen); - - maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; - _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), _T("="), maxlen); - - maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; - _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), str, maxlen); - - maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; - _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), _T(";"), maxlen); - } - else - { - int maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; - - USES_CONVERSION; - _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), A2CT(OBJ_nid2sn(OBJ_obj2nid(pObject))), maxlen); - - maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; - _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), _T("="), maxlen); - - maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; - _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), str, maxlen); - - maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; - _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), _T(";"), maxlen); - } - break; - } - } - } - - //Set date fields - - //Valid from - ASN1_TIME *pTime=X509_get_notBefore(pX509); - if (!pTime) - { - X509_free(pX509); - Error = _T("Cannot get start time"); - return FALSE; - } - - if (!AsnTimeToValidTime(pTime, SslCertData.validFrom)) - { - X509_free(pX509); - Error = _T("Invalid start time"); - return FALSE; - } - - //Valid until - pTime = X509_get_notAfter(pX509); - if (!pTime) - { - X509_free(pX509); - Error = _T("Cannot get end time"); - return FALSE; - } - - if (!AsnTimeToValidTime(pTime, SslCertData.validUntil)) - { - X509_free(pX509); - Error = _T("Invalid end time"); - return FALSE; - } - - int subjectAltNamePos = X509_get_ext_by_NID(pX509, NID_subject_alt_name, -1); - if (subjectAltNamePos >= 0) - { - X509_EXTENSION * subjectAltNameExtension = X509_get_ext(pX509, subjectAltNamePos); - BIO * subjectAltNameBio = BIO_new(BIO_s_mem()); - - if (X509V3_EXT_print(subjectAltNameBio, subjectAltNameExtension, 0, 0) == 1) - { - USES_CONVERSION; - u_char *data; - int len = BIO_get_mem_data(subjectAltNameBio, &data); - char * buf = new char[len + 1]; - memcpy(buf, data, len); - buf[len] = '\0'; - _tcsncpy(SslCertData.subjectAltName, A2CT(buf), LENOF(SslCertData.subjectAltName)); - SslCertData.subjectAltName[LENOF(SslCertData.subjectAltName) - 1] = '\0'; - delete [] buf; - } - - BIO_vfree(subjectAltNameBio); - } - - unsigned int length = 20; - X509_digest(pX509, EVP_sha1(), SslCertData.hash, &length); - - // Inspired by ne_ssl_cert_export() - // Find the length of the DER encoding. - SslCertData.certificateLen = i2d_X509(pX509, NULL); - SslCertData.certificate = new unsigned char[SslCertData.certificateLen]; - unsigned char * p = SslCertData.certificate; - i2d_X509(pX509, &p); - - SslCertData.priv_data = m_nSslAsyncNotifyId; - - X509_free(pX509); - - SslCertData.verificationResult = m_nVerificationResult; - SslCertData.verificationDepth = m_nVerificationDepth; - - return TRUE; + } + delete [] unicode; + CRYPTO_free(out); + } + + switch(OBJ_obj2nid(pObject)) + { + case NID_organizationName: + _tcsncpy(SslCertData.issuer.Organization, str, 255); + SslCertData.issuer.Organization[255] = 0; + break; + case NID_organizationalUnitName: + _tcsncpy(SslCertData.issuer.Unit, str, 255); + SslCertData.issuer.Unit[255] = 0; + break; + case NID_commonName: + _tcsncpy(SslCertData.issuer.CommonName, str, 255); + SslCertData.issuer.CommonName[255] = 0; + break; + case NID_pkcs9_emailAddress: + _tcsncpy(SslCertData.issuer.Mail, str, 255); + SslCertData.issuer.Mail[255] = 0; + break; + case NID_countryName: + _tcsncpy(SslCertData.issuer.Country, str, 255); + SslCertData.issuer.Country[255] = 0; + break; + case NID_stateOrProvinceName: + _tcsncpy(SslCertData.issuer.StateProvince, str, 255); + SslCertData.issuer.StateProvince[255] = 0; + break; + case NID_localityName: + _tcsncpy(SslCertData.issuer.Town, str, 255); + SslCertData.issuer.Town[255] = 0; + break; + default: + if ( !OBJ_nid2sn(OBJ_obj2nid(pObject)) ) + { + TCHAR tmp[20]; + _stprintf(tmp, L"%d", OBJ_obj2nid(pObject)); + int maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; + _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), tmp, maxlen); + + maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; + _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), L"=", maxlen); + + maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; + _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), str, maxlen); + + maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; + _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), L";", maxlen); + } + else + { + int maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; + + USES_CONVERSION; + _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), A2CT(OBJ_nid2sn(OBJ_obj2nid(pObject))), maxlen); + + maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; + _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), L"=", maxlen); + + maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; + _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), str, maxlen); + + maxlen = 1024 - _tcslen(SslCertData.issuer.Other)-1; + _tcsncpy(SslCertData.issuer.Other+_tcslen(SslCertData.issuer.Other), L";", maxlen); + } + break; + } + } + } + + //Set date fields + + //Valid from + ASN1_TIME *pTime=X509_get_notBefore(pX509); + if (!pTime) + { + X509_free(pX509); + Error = L"Cannot get start time"; + return FALSE; + } + + if (!AsnTimeToValidTime(pTime, SslCertData.validFrom)) + { + X509_free(pX509); + Error = L"Invalid start time"; + return FALSE; + } + + //Valid until + pTime = X509_get_notAfter(pX509); + if (!pTime) + { + X509_free(pX509); + Error = L"Cannot get end time"; + return FALSE; + } + + if (!AsnTimeToValidTime(pTime, SslCertData.validUntil)) + { + X509_free(pX509); + Error = L"Invalid end time"; + return FALSE; + } + + int subjectAltNamePos = X509_get_ext_by_NID(pX509, NID_subject_alt_name, -1); + if (subjectAltNamePos >= 0) + { + X509_EXTENSION * subjectAltNameExtension = X509_get_ext(pX509, subjectAltNamePos); + BIO * subjectAltNameBio = BIO_new(BIO_s_mem()); + + if (X509V3_EXT_print(subjectAltNameBio, subjectAltNameExtension, 0, 0) == 1) + { + USES_CONVERSION; + u_char *data; + int len = BIO_get_mem_data(subjectAltNameBio, &data); + char * buf = new char[len + 1]; + memcpy(buf, data, len); + buf[len] = '\0'; + _tcsncpy(SslCertData.subjectAltName, A2CT(buf), LENOF(SslCertData.subjectAltName)); + SslCertData.subjectAltName[LENOF(SslCertData.subjectAltName) - 1] = '\0'; + delete [] buf; + } + + BIO_vfree(subjectAltNameBio); + } + + unsigned int length = 20; + X509_digest(pX509, EVP_sha1(), SslCertData.hash, &length); + + // Inspired by ne_ssl_cert_export() + // Find the length of the DER encoding. + SslCertData.certificateLen = i2d_X509(pX509, NULL); + SslCertData.certificate = new unsigned char[SslCertData.certificateLen]; + unsigned char * p = SslCertData.certificate; + i2d_X509(pX509, &p); + + SslCertData.priv_data = m_nSslAsyncNotifyId; + + X509_free(pX509); + + SslCertData.verificationResult = m_nVerificationResult; + SslCertData.verificationDepth = m_nVerificationDepth; + + return TRUE; } std::string CAsyncSslSocketLayer::GetTlsVersionStr() { - return m_TlsVersionStr; + return m_TlsVersionStr; } std::string CAsyncSslSocketLayer::GetCipherName() { - return m_CipherName; + return m_CipherName; } void CAsyncSslSocketLayer::SetNotifyReply(int nID, int nCode, int result) { - if (!m_bBlocking) - return; - if (nID != m_nSslAsyncNotifyId) - return; - if (nCode != SSL_VERIFY_CERT) - return; - - m_bBlocking = FALSE; - - if (!result) - { - m_nNetworkError = WSAECONNABORTED; - WSASetLastError(WSAECONNABORTED); - if (!m_bFailureSent) - { - m_bFailureSent = TRUE; - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_FAILURE, SSL_FAILURE_CERTREJECTED); - } - TriggerEvent(FD_CLOSE, 0, TRUE); - return; - } - m_bSslEstablished = TRUE; - PrintSessionInfo(); - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_INFO, SSL_INFO_ESTABLISHED); - - TriggerEvents(); + if (!m_bBlocking) + return; + if (nID != m_nSslAsyncNotifyId) + return; + if (nCode != SSL_VERIFY_CERT) + return; + + m_bBlocking = FALSE; + + if (!result) + { + m_nNetworkError = WSAECONNABORTED; + WSASetLastError(WSAECONNABORTED); + if (!m_bFailureSent) + { + m_bFailureSent = TRUE; + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_FAILURE, SSL_FAILURE_CERTREJECTED); + } + TriggerEvent(FD_CLOSE, 0, TRUE); + return; + } + m_bSslEstablished = TRUE; + PrintSessionInfo(); + DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_INFO, SSL_INFO_ESTABLISHED); + + TriggerEvents(); } void CAsyncSslSocketLayer::PrintSessionInfo() { - #ifdef MPEXT - const - #endif - SSL_CIPHER *ciph; - X509 *cert; - - ciph = SSL_get_current_cipher(m_ssl); - char enc[4096] = {0}; - cert=SSL_get_peer_certificate(m_ssl); - - if (cert != NULL) - { - EVP_PKEY *pkey = X509_get_pubkey(cert); - if (pkey != NULL) - { - if (0) - ; + const SSL_CIPHER *ciph; + X509 *cert; + + ciph = SSL_get_current_cipher(m_ssl); + char enc[4096] = {0}; + cert=SSL_get_peer_certificate(m_ssl); + + if (cert != NULL) + { + EVP_PKEY *pkey = X509_get_pubkey(cert); + if (pkey != NULL) + { + if (0) + ; #ifndef NO_RSA - else if (pkey->type == EVP_PKEY_RSA && pkey->pkey.rsa != NULL - && pkey->pkey.rsa->n != NULL) - sprintf(enc, "%d bit RSA", BN_num_bits(pkey->pkey.rsa->n)); + else if (pkey->type == EVP_PKEY_RSA && pkey->pkey.rsa != NULL + && pkey->pkey.rsa->n != NULL) + sprintf(enc, "%d bit RSA", BN_num_bits(pkey->pkey.rsa->n)); #endif #ifndef NO_DSA - else if (pkey->type == EVP_PKEY_DSA && pkey->pkey.dsa != NULL - && pkey->pkey.dsa->p != NULL) - sprintf(enc, "%d bit DSA", BN_num_bits(pkey->pkey.dsa->p)); + else if (pkey->type == EVP_PKEY_DSA && pkey->pkey.dsa != NULL + && pkey->pkey.dsa->p != NULL) + sprintf(enc, "%d bit DSA", BN_num_bits(pkey->pkey.dsa->p)); #endif - EVP_PKEY_free(pkey); - } - X509_free(cert); - /* The SSL API does not allow us to look at temporary RSA/DH keys, - * otherwise we should print their lengths too */ - } - - char *buffer = new char[4096]; - // see also ne_ssl_get_version and ne_ssl_get_cipher - m_TlsVersionStr = SSL_get_version(m_ssl); - sprintf(buffer, "%s: %s, %s", - SSL_CIPHER_get_version(ciph), - SSL_CIPHER_get_name(ciph), - enc); - m_CipherName = buffer; - // see TWebDAVFileSystem::CollectTLSSessionInfo() - sprintf(buffer, "Using %s, cipher %s", - m_TlsVersionStr.c_str(), - m_CipherName.c_str()); - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_VERBOSE_WARNING, 0, buffer); + EVP_PKEY_free(pkey); + } + X509_free(cert); + /* The SSL API does not allow us to look at temporary RSA/DH keys, + * otherwise we should print their lengths too */ + } + + char *buffer = new char[4096]; + // see also ne_ssl_get_version and ne_ssl_get_cipher + m_TlsVersionStr = SSL_get_version(m_ssl); + sprintf(buffer, "%s: %s, %s", + SSL_CIPHER_get_version(ciph), + SSL_CIPHER_get_name(ciph), + enc); + m_CipherName = buffer; + // see TWebDAVFileSystem::CollectTLSSessionInfo() + sprintf(buffer, "Using %s, cipher %s", + m_TlsVersionStr.c_str(), + m_CipherName.c_str()); + USES_CONVERSION; + LogSocketMessageRaw(FZ_LOG_WARNING, A2T(buffer)); + delete [] buffer; } void CAsyncSslSocketLayer::OnConnect(int nErrorCode) { - if (m_bUseSSL && nErrorCode) - TriggerEvent(FD_WRITE, 0); - TriggerEvent(FD_CONNECT, nErrorCode, TRUE); + if (m_bUseSSL && nErrorCode) + TriggerEvent(FD_WRITE, 0); + TriggerEvent(FD_CONNECT, nErrorCode, TRUE); +} + +CAsyncSslSocketLayer * CAsyncSslSocketLayer::LookupLayer(SSL * Ssl) +{ + CAsyncSslSocketLayer * Result = NULL; + m_sCriticalSection.Lock(); + t_SslLayerList * Cur = m_pSslLayerList; + while (Cur != NULL) + { + if (Cur->pLayer->m_ssl == Ssl) + { + break; + } + Cur = Cur->pNext; + } + m_sCriticalSection.Unlock(); + + if (Cur == NULL) + { + MessageBox(0, L"Can't lookup TLS session!", L"Critical error", MB_ICONEXCLAMATION); + Result = NULL; + } + else + { + Result = Cur->pLayer; + } + + return Result; } int CAsyncSslSocketLayer::verify_callback(int preverify_ok, X509_STORE_CTX *ctx) { - X509 *err_cert; + X509 *err_cert; int err, depth; SSL *ssl; @@ -1795,25 +1699,13 @@ int CAsyncSslSocketLayer::verify_callback(int preverify_ok, X509_STORE_CTX *ctx) */ ssl = (SSL *)X509_STORE_CTX_get_ex_data(ctx, SSL_get_ex_data_X509_STORE_CTX_idx()); - // Lookup CAsyncSslSocketLayer instance - CAsyncSslSocketLayer *pLayer = 0; - m_sCriticalSection.Lock(); - t_SslLayerList *cur = m_pSslLayerList; - while (cur) - { - if (cur->pLayer->m_ssl == ssl) - break; - cur = cur->pNext; - } - if (!cur) - { - m_sCriticalSection.Unlock(); - MessageBox(0, _T("Can't lookup TLS session!"), _T("Critical error"), MB_ICONEXCLAMATION); - return 1; - } - else - pLayer = cur->pLayer; - m_sCriticalSection.Unlock(); + + CAsyncSslSocketLayer * pLayer = LookupLayer(ssl); + + if (pLayer == NULL) + { + return 1; + } /* * Catch a too long certificate chain. The depth limit set using @@ -1830,113 +1722,137 @@ int CAsyncSslSocketLayer::verify_callback(int preverify_ok, X509_STORE_CTX *ctx) X509_STORE_CTX_set_error(ctx, err); } - if (!preverify_ok) - { - if (!pLayer->m_nVerificationResult) - { - pLayer->m_nVerificationDepth = depth; - pLayer->m_nVerificationResult = err; - } - } - return 1; + if (!preverify_ok) + { + if (!pLayer->m_nVerificationResult) + { + pLayer->m_nVerificationDepth = depth; + pLayer->m_nVerificationResult = err; + } + } + return 1; } -BOOL CAsyncSslSocketLayer::SetCertStorage(CString file) +int CAsyncSslSocketLayer::ProvideClientCert( + SSL * Ssl, X509 ** Certificate, EVP_PKEY ** PrivateKey) { - m_CertStorage = file; - return TRUE; + CAsyncSslSocketLayer * Layer = LookupLayer(Ssl); + + USES_CONVERSION; + CString Message; + Message.LoadString(NEED_CLIENT_CERTIFICATE); + char * Buffer = new char[Message.GetLength() + 1]; + strcpy(Buffer, T2A(Message)); + + int Level; + int Result; + if ((Layer->FCertificate == NULL) || (Layer->FPrivateKey == NULL)) + { + Level = FZ_LOG_WARNING; + Result = 0; + } + else + { + Level = FZ_LOG_INFO; + *Certificate = X509_dup(Layer->FCertificate); + CRYPTO_add(&Layer->FPrivateKey->references, 1, CRYPTO_LOCK_EVP_PKEY); + *PrivateKey = Layer->FPrivateKey; + Result = 1; + } + + Layer->LogSocketMessageRaw(Level, A2T(Buffer)); + delete [] Buffer; + + return Result; } -void CAsyncSslSocketLayer::OnClose(int nErrorCode) +void CAsyncSslSocketLayer::SetClientCertificate(X509 * Certificate, EVP_PKEY * PrivateKey) { - m_onCloseCalled = true; - if (m_bUseSSL && BIO_ctrl) - { - size_t pending = BIO_ctrl_pending(m_sslbio); - if (pending > 0) - { - TriggerEvents(); - } - else TriggerEvent(FD_CLOSE, nErrorCode, TRUE); - } - else - TriggerEvent(FD_CLOSE, nErrorCode, TRUE); + FCertificate = Certificate; + FPrivateKey = PrivateKey; } -void CAsyncSslSocketLayer::PrintLastErrorMsg() +BOOL CAsyncSslSocketLayer::SetCertStorage(CString file) { - int err = ERR_get_error(); - while (err) - { - char *buffer = new char[512]; - ERR_error_string(err, buffer); - err = ERR_get_error(); - DoLayerCallback(LAYERCALLBACK_LAYERSPECIFIC, SSL_VERBOSE_WARNING, 0, buffer); - } + m_CertStorage = file; + return TRUE; } -void CAsyncSslSocketLayer::TriggerEvents() +void CAsyncSslSocketLayer::OnClose(int nErrorCode) { - size_t pending = BIO_ctrl_pending(m_nbio); - if (pending > 0) - { - if (m_mayTriggerWrite) - { - m_mayTriggerWrite = false; - TriggerEvent(FD_WRITE, 0); - } - } - else if (!m_nNetworkSendBufferLen && m_bSslEstablished && !m_pRetrySendBuffer) - { - if (BIO_ctrl_get_write_guarantee(m_sslbio) > 0 && m_mayTriggerWriteUp) - { - m_mayTriggerWriteUp = false; - TriggerEvent(FD_WRITE, 0, TRUE); - } - } - - if (m_bSslEstablished && BIO_ctrl_pending(m_sslbio) > 0) - { - if (m_mayTriggerReadUp && !m_bBlocking) - { - m_mayTriggerReadUp = false; - TriggerEvent(FD_READ, 0, TRUE); - } - } - else - { - int len = BIO_ctrl_get_write_guarantee(m_nbio); - if (len > 0 && m_mayTriggerRead) - { - m_mayTriggerRead = false; - TriggerEvent(FD_READ, 0); - } - } - - if (m_onCloseCalled && m_bSslEstablished) - { - if (BIO_ctrl_pending(m_sslbio) <= 0) - { - TriggerEvent(FD_CLOSE, 0, TRUE); - } - } + m_onCloseCalled = true; + if (m_bUseSSL && BIO_ctrl) + { + size_t pending = BIO_ctrl_pending(m_sslbio); + if (pending > 0) + { + TriggerEvents(); + } + else TriggerEvent(FD_CLOSE, nErrorCode, TRUE); + } + else + TriggerEvent(FD_CLOSE, nErrorCode, TRUE); } -int CAsyncSslSocketLayer::pem_passwd_cb(char *buf, int size, int rwflag, void *userdata) +void CAsyncSslSocketLayer::PrintLastErrorMsg() { - CAsyncSslSocketLayer* pThis = (CAsyncSslSocketLayer*)userdata; - - if (!pThis || !pThis->m_pKeyPassword) - return 0; + int err = ERR_get_error(); + while (err) + { + char *buffer = new char[512]; + ERR_error_string(err, buffer); + err = ERR_get_error(); + USES_CONVERSION; + LogSocketMessageRaw(FZ_LOG_WARNING, A2T(buffer)); + delete [] buffer; + } +} - int len = strlen(pThis->m_pKeyPassword); - if (len >= size) - len = size - 1; +void CAsyncSslSocketLayer::TriggerEvents() +{ + size_t pending = BIO_ctrl_pending(m_nbio); + if (pending > 0) + { + if (m_mayTriggerWrite) + { + m_mayTriggerWrite = false; + TriggerEvent(FD_WRITE, 0); + } + } + else if (!m_nNetworkSendBufferLen && m_bSslEstablished && !m_pRetrySendBuffer) + { + if (BIO_ctrl_get_write_guarantee(m_sslbio) > 0 && m_mayTriggerWriteUp) + { + m_mayTriggerWriteUp = false; + TriggerEvent(FD_WRITE, 0, TRUE); + } + } - memcpy(buf, pThis->m_pKeyPassword, len); - buf[len] = 0; + if (m_bSslEstablished && BIO_ctrl_pending(m_sslbio) > 0) + { + if (m_mayTriggerReadUp && !m_bBlocking) + { + m_mayTriggerReadUp = false; + TriggerEvent(FD_READ, 0, TRUE); + } + } + else + { + int len = BIO_ctrl_get_write_guarantee(m_nbio); + if (len > 0 && m_mayTriggerRead) + { + m_mayTriggerRead = false; + TriggerEvent(FD_READ, 0); + } + } - return len; + if (m_onCloseCalled && m_bSslEstablished) + { + if (BIO_ctrl_pending(m_sslbio) <= 0) + { + TriggerEvent(FD_CLOSE, 0, TRUE); + } + } } -//--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- diff --git a/source/filezilla/AsyncSslSocketLayer.h b/source/filezilla/AsyncSslSocketLayer.h index ce4fde49..4e2c2613 100644 --- a/source/filezilla/AsyncSslSocketLayer.h +++ b/source/filezilla/AsyncSslSocketLayer.h @@ -1,4 +1,4 @@ -/* CAsyncSslSocketLayer by Tim Kosse +/* CAsyncSslSocketLayer by Tim Kosse mailto: tim.kosse@filezilla-project.org) Version 2.0 (2005-02-27) ------------------------------------------------------------- @@ -17,7 +17,7 @@ CAsyncSslSocketLayer to your socket and call InitClientSsl after creation of the This class only has a couple of public functions: - int InitSSLConnection(bool clientMode); - This functions establishes an SSL connection. The clientMode parameter specifies whether the SSL connection + This functions establishes an SSL connection. The clientMode parameter specifies whether the SSL connection is in server or in client mode. Most likely you want to call this function right after calling Create for the socket. But sometimes, you'll need to call this function later. One example is for an FTP connection @@ -27,7 +27,7 @@ This class only has a couple of public functions: - Is UsingSSL(); Returns true if you've previously called InitClientSsl() - SetNotifyReply(SetNotifyReply(int nID, int nCode, int result); - You can call this function only after receiving a layerspecific callback with the SSL_VERIFY_CERT + You can call this function only after receiving a layerspecific callback with the SSL_VERIFY_CERT id. Set result to 1 if you trust the certificate and 0 if you don't trust it. nID has to be the priv_data element of the t_SslCertData structure and nCode has to be SSL_VERIFY_CERT. @@ -36,11 +36,11 @@ OnLayerCallback of your socket class. Valid notification IDs are: - SSL_INFO 0 There are two possible values for param2: - SSL_INFO_ESTABLISHED 0 - You'll get this notification if the SSL negotiation was successful - SSL_INFO_SHUTDOWNCOMPLETE 1 - You'll get this notification if the SSL connection has been shut + SSL_INFO_ESTABLISHED 0 - You'll get this notification if the SSL negotiation was successful + SSL_INFO_SHUTDOWNCOMPLETE 1 - You'll get this notification if the SSL connection has been shut down successfully. See below for details. - SSL_FAILURE 1 - This notification is sent if the SSL connection could not be established or if an existing + This notification is sent if the SSL connection could not be established or if an existing connection failed. Valid values for param2 are: - SSL_FAILURE_NONE 0 - Everything OK - SSL_FAILURE_UNKNOWN 1 - Details may have been sent with a SSL_VERBOSE_* notification. @@ -48,16 +48,12 @@ Valid notification IDs are: - SSL_FAILURE_INITSSL 8 - SSL_FAILURE_VERIFYCERT 16 - The remote SSL certificate was invalid - SSL_FAILURE_CERTREJECTED 32 - The remote SSL certificate was rejected by user -- SSL_VERBOSE_WARNING 3 - SSL_VERBOSE_INFO 4 - This two notifications contain some additional information. The value given by param2 is a - pointer to a null-terminated char string (char *) with some useful information. - SSL_VERIFY_CERT 2 This notification is sent each time a remote certificate has to be verified. param2 is a pointer to a t_SslCertData structure which contains some information about the remote certificate. You have to set the reply to this message using the SetNotifyReply function. - + Be careful with closing the connection after sending data, not all data may have been sent already. Before closing the connection, you should call Shutdown() and wait for the SSL_INFO_SHUTDOWNCOMPLETE notification. This assures that all encrypted data really has been sent. @@ -72,193 +68,184 @@ to tim.kosse@filezilla-project.org would be appreciated but is not required. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/) - -Version history ---------------- - -Version 2.0: -- Add server support -- a lot of bug fixes - */ - -#ifndef ASYNCSSLSOCKETLEAYER_INCLUDED -#define ASYNCSSLSOCKETLEAYER_INCLUDED - -#ifndef _AFX -#define CString CStdString -#endif - +//--------------------------------------------------------------------------- +#ifndef AsyncSslSocketLayerH +#define AsyncSslSocketLayerH +//--------------------------------------------------------------------------- #include "AsyncSocketExLayer.h" #include - +//--------------------------------------------------------------------------- // Details of SSL certificate, can be used by app to verify if certificate is valid struct t_SslCertData { - ~t_SslCertData() - { - delete [] certificate; - } - - struct t_Contact - { - TCHAR Organization[256]; - TCHAR Unit[256]; - TCHAR CommonName[256]; - TCHAR Mail[256]; - TCHAR Country[256]; - TCHAR StateProvince[256]; - TCHAR Town[256]; - TCHAR Other[1024]; - } subject, issuer; - - struct t_validTime - { - //Year, Month, day, hour, minute, second - int y,M,d,h,m,s; - } validFrom, validUntil; - - TCHAR subjectAltName[10240]; - - unsigned char hash[20]; - - unsigned char * certificate; - size_t certificateLen; - - int verificationResult; - int verificationDepth; - - int priv_data; //Internal data, do not modify + ~t_SslCertData() + { + delete [] certificate; + } + + struct t_Contact + { + TCHAR Organization[256]; + TCHAR Unit[256]; + TCHAR CommonName[256]; + TCHAR Mail[256]; + TCHAR Country[256]; + TCHAR StateProvince[256]; + TCHAR Town[256]; + TCHAR Other[1024]; + } subject, issuer; + + struct t_validTime + { + // Year, Month, day, hour, minute, second + int y, M, d, h, m, s; + } validFrom, validUntil; + + TCHAR subjectAltName[10240]; + + unsigned char hash[20]; + + unsigned char * certificate; + size_t certificateLen; + + int verificationResult; + int verificationDepth; + + int priv_data; //Internal data, do not modify }; - +//--------------------------------------------------------------------------- class CCriticalSectionWrapper; +//--------------------------------------------------------------------------- class CAsyncSslSocketLayer : public CAsyncSocketExLayer { public: - BOOL SetCertStorage(CString file); - CAsyncSslSocketLayer(); - virtual ~CAsyncSslSocketLayer(); - - void SetNotifyReply(int nID, int nCode, int result); - BOOL GetPeerCertificateData(t_SslCertData &SslCertData, LPCTSTR & Error); - std::string GetTlsVersionStr(); - std::string GetCipherName(); - - bool IsUsingSSL(); - int InitSSLConnection(bool clientMode, - CAsyncSslSocketLayer* main, - bool sessionreuse, int minTlsVersion, int maxTlsVersion, - void* pContext = 0); - - // Send raw text, useful to send a confirmation after the ssl connection - // has been initialized - int SendRaw(const void* lpBuf, int nBufLen, int nFlags = 0); - - void* GetContext() { return m_ssl_ctx; } - + BOOL SetCertStorage(CString file); + CAsyncSslSocketLayer(); + virtual ~CAsyncSslSocketLayer(); + + void SetNotifyReply(int nID, int nCode, int result); + BOOL GetPeerCertificateData(t_SslCertData & SslCertData, LPCTSTR & Error); + std::string GetTlsVersionStr(); + std::string GetCipherName(); + void SetClientCertificate(X509 * Certificate, EVP_PKEY * PrivateKey); + + bool IsUsingSSL(); + int InitSSLConnection(bool clientMode, + CAsyncSslSocketLayer * main, + bool sessionreuse, int minTlsVersion, int maxTlsVersion, + void* pContext = 0); + + // Send raw text, useful to send a confirmation after the ssl connection + // has been initialized + int SendRaw(const void * lpBuf, int nBufLen, int nFlags = 0); + + void* GetContext() { return m_ssl_ctx; } + private: - virtual void Close(); - virtual BOOL Connect(LPCTSTR lpszHostAddress, UINT nHostPort ); - virtual BOOL Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen ); - virtual void OnConnect(int nErrorCode); - virtual void OnReceive(int nErrorCode); - virtual void OnSend(int nErrorCode); - virtual void OnClose(int nErrorCode); - virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0); - virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0); - virtual BOOL ShutDown( int nHow = sends ); - - void ResetSslSession(); - void PrintSessionInfo(); - BOOL ShutDownComplete(); - int InitSSL(); - void UnloadSSL(); - void PrintLastErrorMsg(); - - void TriggerEvents(); - - //Will be called from the OpenSSL library - static void apps_ssl_info_callback(const SSL *s, int where, int ret); - static int verify_callback(int preverify_ok, X509_STORE_CTX *ctx); - static int pem_passwd_cb(char *buf, int size, int rwflag, void *userdata); - - bool m_bUseSSL; - BOOL m_bFailureSent; - - //Critical section for thread synchronization - static CCriticalSectionWrapper m_sCriticalSection; - - // Status variables - static int m_nSslRefCount; - BOOL m_bSslInitialized; - int m_nShutDown; - int m_nNetworkError; - int m_nSslAsyncNotifyId; - BOOL m_bBlocking; - BOOL m_bSslEstablished; - CString m_CertStorage; - int m_nVerificationResult; - int m_nVerificationDepth; - - static struct t_SslLayerList - { - CAsyncSslSocketLayer *pLayer; - t_SslLayerList *pNext; - } *m_pSslLayerList; - - // SSL data - SSL_CTX* m_ssl_ctx; // SSL context - static std::map m_contextRefCount; - SSL* m_ssl; // current session handle - SSL_SESSION * m_sessionid; - bool m_sessionreuse; - CAsyncSslSocketLayer * m_Main; - - //Data channels for encrypted/unencrypted data - BIO* m_nbio; //Network side, sends/receives encrypted data - BIO* m_ibio; //Internal side, won't be used directly - BIO* m_sslbio; //The data to encrypt / the decrypted data has to go though this bio - - //Send buffer - char* m_pNetworkSendBuffer; - int m_nNetworkSendBufferLen; - int m_nNetworkSendBufferMaxLen; - - char* m_pRetrySendBuffer; - int m_nRetrySendBufferLen; - - bool m_mayTriggerRead; - bool m_mayTriggerWrite; - bool m_mayTriggerReadUp; - bool m_mayTriggerWriteUp; - - bool m_onCloseCalled; - - char* m_pKeyPassword; - - std::string m_TlsVersionStr; - std::string m_CipherName; + virtual void Close(); + virtual BOOL Connect(LPCTSTR lpszHostAddress, UINT nHostPort); + virtual BOOL Connect(const SOCKADDR* lpSockAddr, int nSockAddrLen); + virtual void OnConnect(int nErrorCode); + virtual void OnReceive(int nErrorCode); + virtual void OnSend(int nErrorCode); + virtual void OnClose(int nErrorCode); + virtual int Receive(void * lpBuf, int nBufLen, int nFlags = 0); + virtual int Send(const void * lpBuf, int nBufLen, int nFlags = 0); + virtual BOOL ShutDown( int nHow = sends ); + + void ResetSslSession(); + void PrintSessionInfo(); + BOOL ShutDownComplete(); + int InitSSL(); + void UnloadSSL(); + void PrintLastErrorMsg(); + + void TriggerEvents(); + + // Will be called from the OpenSSL library + static void apps_ssl_info_callback(const SSL * s, int where, int ret); + static int verify_callback(int preverify_ok, X509_STORE_CTX * ctx); + static int ProvideClientCert( + SSL * Ssl, X509 ** Certificate, EVP_PKEY ** PrivateKey); + static CAsyncSslSocketLayer * LookupLayer(SSL * Ssl); + + bool m_bUseSSL; + BOOL m_bFailureSent; + + // Critical section for thread synchronization + static CCriticalSectionWrapper m_sCriticalSection; + + // Status variables + static int m_nSslRefCount; + BOOL m_bSslInitialized; + int m_nShutDown; + int m_nNetworkError; + int m_nSslAsyncNotifyId; + BOOL m_bBlocking; + BOOL m_bSslEstablished; + CString m_CertStorage; + int m_nVerificationResult; + int m_nVerificationDepth; + + static struct t_SslLayerList + { + CAsyncSslSocketLayer * pLayer; + t_SslLayerList * pNext; + } * m_pSslLayerList; + + // SSL data + SSL_CTX* m_ssl_ctx; // SSL context + static std::map m_contextRefCount; + SSL* m_ssl; // current session handle + SSL_SESSION * m_sessionid; + bool m_sessionreuse; + CAsyncSslSocketLayer * m_Main; + + // Data channels for encrypted/unencrypted data + BIO* m_nbio; // Network side, sends/receives encrypted data + BIO* m_ibio; // Internal side, won't be used directly + BIO* m_sslbio; // The data to encrypt / the decrypted data has to go though this bio + + // Send buffer + char* m_pNetworkSendBuffer; + int m_nNetworkSendBufferLen; + int m_nNetworkSendBufferMaxLen; + + char* m_pRetrySendBuffer; + int m_nRetrySendBufferLen; + + bool m_mayTriggerRead; + bool m_mayTriggerWrite; + bool m_mayTriggerReadUp; + bool m_mayTriggerWriteUp; + + bool m_onCloseCalled; + + std::string m_TlsVersionStr; + std::string m_CipherName; + + X509 * FCertificate; + EVP_PKEY * FPrivateKey; }; - +//--------------------------------------------------------------------------- #define SSL_INFO 0 #define SSL_FAILURE 1 #define SSL_VERIFY_CERT 2 -#define SSL_VERBOSE_WARNING 3 -#define SSL_VERBOSE_INFO 4 - +//--------------------------------------------------------------------------- #define SSL_INFO_ESTABLISHED 0 #define SSL_INFO_SHUTDOWNCOMPLETE 1 - +//--------------------------------------------------------------------------- #define SSL_FAILURE_UNKNOWN 0 #define SSL_FAILURE_ESTABLISH 1 #define SSL_FAILURE_INITSSL 4 #define SSL_FAILURE_VERIFYCERT 8 #define SSL_FAILURE_CERTREJECTED 0x10 - +//--------------------------------------------------------------------------- #define SSL_VERSION_SSL2 2 #define SSL_VERSION_SSL3 3 #define SSL_VERSION_TLS10 10 #define SSL_VERSION_TLS11 11 #define SSL_VERSION_TLS12 12 - -#endif // ASYNCSSLSOCKETLEAYER_INCLUDED +//--------------------------------------------------------------------------- +#endif // AsyncSslSocketLayerH diff --git a/source/filezilla/ControlSocket.cpp b/source/filezilla/ControlSocket.cpp deleted file mode 100644 index cca20ed1..00000000 --- a/source/filezilla/ControlSocket.cpp +++ /dev/null @@ -1,546 +0,0 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// ControlSocket.cpp: Implementierung der Klasse CControlSocket. -// -////////////////////////////////////////////////////////////////////// - -#include "stdafx.h" -#include "ControlSocket.h" -#include "mainthread.h" -#include "AsyncProxySocketLayer.h" -#ifndef MPEXT_NO_SSL -#include "AsyncSslSocketLayer.h" -#endif -#ifndef MPEXT_NO_GSS -#include "AsyncGssSocketLayer.h" -#endif -#ifndef MPEXT_NO_SPEED_LIM_RULES -#include "SpeedLimit.h" -#endif -#ifndef MPEXT -#include -#endif - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#define new DEBUG_NEW -#endif - -#ifndef MPEXT -std::list CControlSocket::m_InstanceList[2]; -#else -// explicit initialization prevents an assertion in borland's compiler -std::list CControlSocket::m_InstanceList[2] = - {std::list(), std::list()}; -#endif - -CTime CControlSocket::m_CurrentTransferTime[2] = { CTime::GetCurrentTime(), CTime::GetCurrentTime() }; -_int64 CControlSocket::m_CurrentTransferLimit[2] = {0, 0}; - -CCriticalSection CControlSocket::m_SpeedLimitSync; - - -////////////////////////////////////////////////////////////////////// -// Konstruktion/Destruktion -////////////////////////////////////////////////////////////////////// - -CControlSocket::CControlSocket(CMainThread *pMainThread, CFileZillaTools * pTools) -{ - ASSERT(pMainThread); - m_pOwner=pMainThread; - m_pTools=pTools; - - m_Operation.nOpMode=0; - m_Operation.nOpState=-1; - m_Operation.pData=0; - - m_pProxyLayer = NULL; -#ifndef MPEXT_NO_SSL - m_pSslLayer = NULL; -#endif -#ifndef MPEXT_NO_GSS - m_pGssLayer = NULL; -#endif - - m_pDirectoryListing=0; -#ifndef MPEXT_NO_IDENT - m_pIdentControl=0; -#endif -} - -CControlSocket::~CControlSocket() -{ - LogMessage(__FILE__, __LINE__, this, FZ_LOG_DEBUG, _T("~CControlSocket()")); - Close(); -} - -///////////////////////////////////////////////////////////////////////////// -// Member-Funktion CControlSocket -#define CONNECT_INIT -1 -#ifndef MPEXT_NO_GSS -#define CONNECT_GSS -3 -#endif -#ifndef MPEXT_NO_SSL -#define CONNECT_SSL_INIT -6 -#define CONNECT_SSL_NEGOTIATE -5 -#define CONNECT_SSL_WAITDONE -4 -#endif - -void CControlSocket::ShowStatus(UINT nID, int type) const -{ - CString str; - str.LoadString(nID); - ShowStatus(str, type); -} - -void CControlSocket::ShowStatus(CString status, int type) const -{ - if (!COptions::GetOptionVal(OPTION_MPEXT_LOG_SENSITIVE)) - { - if ( status.Left(5)==_T("PASS ") ) - { - int len=status.GetLength()-5; - status=_T("PASS "); - for (int i=0;i won't be reachable from outside - - return CAsyncSocketEx::Connect(hostAddress, nHostPort); - } - BOOL res = CAsyncSocketEx::Connect(hostAddress, nHostPort); - int nLastError = WSAGetLastError(); - if (res || nLastError==WSAEWOULDBLOCK) - { -#ifndef MPEXT_NO_IDENT - if (COptions::GetOptionVal(OPTION_IDENT)) - m_pIdentControl = new CIdentServerControl(this); -#endif - WSASetLastError(nLastError); - } - - return res; -} - -void CControlSocket::SetDirectoryListing(t_directory *pDirectory, bool bSetWorkingDir /*=true*/) -{ - if (m_pDirectoryListing) - delete m_pDirectoryListing; - m_CurrentServer=pDirectory->server; - m_pDirectoryListing=new t_directory; - *m_pDirectoryListing=*pDirectory; - - if (bSetWorkingDir) - m_pOwner->SetWorkingDir(pDirectory); -} - -int CControlSocket::OnLayerCallback(std::list& callbacks) -{ - USES_CONVERSION; - - for (std::list::iterator iter = callbacks.begin(); iter != callbacks.end(); iter++) - { - if (iter->nType == LAYERCALLBACK_STATECHANGE) - { - if (CAsyncSocketEx::LogStateChange(iter->nParam1, iter->nParam2)) - { - const TCHAR * state2Desc = CAsyncSocketEx::GetStateDesc(iter->nParam2); - const TCHAR * state1Desc = CAsyncSocketEx::GetStateDesc(iter->nParam1); - if (iter->pLayer == m_pProxyLayer) - LogMessage(__FILE__, __LINE__, this, FZ_LOG_INFO, _T("Proxy layer changed state from %s to %s"), state2Desc, state1Desc); -#ifndef MPEXT_NO_GSS - else if (iter->pLayer == m_pGssLayer) - LogMessage(__FILE__, __LINE__, this, FZ_LOG_INFO, _T("m_pGssLayer changed state from %s to %s"), state2Desc, state1Desc); -#endif - else - LogMessage(__FILE__, __LINE__, this, FZ_LOG_INFO, _T("Layer @ %d changed state from %s to %s"), iter->pLayer, state2Desc, state1Desc); - } - } - else if (iter->nType == LAYERCALLBACK_LAYERSPECIFIC) - { - if (iter->pLayer == m_pProxyLayer) - { - switch (iter->nParam1) - { - case PROXYERROR_NOERROR: - ShowStatus(IDS_PROXY_CONNECTED, FZ_LOG_STATUS); - break; - case PROXYERROR_NOCONN: - ShowStatus(IDS_ERRORMSG_PROXY_NOCONN, FZ_LOG_ERROR); - break; - case PROXYERROR_REQUESTFAILED: - ShowStatus(IDS_ERRORMSG_PROXY_REQUESTFAILED, FZ_LOG_ERROR); - if (iter->str) - ShowStatus(A2T(iter->str), FZ_LOG_ERROR); - break; - case PROXYERROR_AUTHTYPEUNKNOWN: - ShowStatus(IDS_ERRORMSG_PROXY_AUTHTYPEUNKNOWN, FZ_LOG_ERROR); - break; - case PROXYERROR_AUTHFAILED: - ShowStatus(IDS_ERRORMSG_PROXY_AUTHFAILED, FZ_LOG_ERROR); - break; - case PROXYERROR_AUTHNOLOGON: - ShowStatus(IDS_ERRORMSG_PROXY_AUTHNOLOGON, FZ_LOG_ERROR); - break; - case PROXYERROR_CANTRESOLVEHOST: - ShowStatus(IDS_ERRORMSG_PROXY_CANTRESOLVEHOST, FZ_LOG_ERROR); - break; - default: - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Unknown proxy error") ); - } - } -#ifndef MPEXT_NO_GSS - else if (iter->pLayer == m_pGssLayer) - { - switch (iter->nParam1) - { - case GSS_INFO: - LogMessageRaw(FZ_LOG_INFO, A2CT(iter->str)); - break; - case GSS_ERROR: - LogMessageRaw(FZ_LOG_APIERROR, A2CT(iter->str)); - break; - case GSS_COMMAND: - ShowStatus(A2CT(iter->str), FZ_LOG_COMMAND); - break; - case GSS_REPLY: - ShowStatus(A2CT(iter->str), FZ_LOG_REPLY); - break; - } - } -#endif - } - - delete [] iter->str; - } - - return 1; -} - -#ifndef MPEXT_NO_SPEED_LIM_RULES -_int64 CControlSocket::GetSpeedLimit(CTime &time, int valType, int valValue, SPEEDLIMITSLIST &list) -#else -_int64 CControlSocket::GetSpeedLimit(CTime &time, int valType, int valValue) -#endif -{ - int type = COptions::GetOptionVal(valType); - - if ( type == 1) - return ( _int64)COptions::GetOptionVal(valValue) * 1024; - -#ifndef MPEXT_NO_SPEED_LIM_RULES - if ( type == 2) - { - CSingleLock lock(&COptions::m_Sync, TRUE); - for ( unsigned int i = 0; i < list.size(); i++) - { - if ( list[ i]->IsItActive(time) && list[i]->m_Speed) - return list[ i]->m_Speed * 1024; - } - } -#endif - - return ( _int64)1000000000000; //I hope that when there will be something with 1000GB/s then I'll change it :) -} - -_int64 CControlSocket::GetSpeedLimit(enum transferDirection direction, CTime &time) -{ - if (direction == download) -#ifndef MPEXT_NO_SPEED_LIM_RULES - return GetSpeedLimit(time, OPTION_SPEEDLIMIT_DOWNLOAD_TYPE, OPTION_SPEEDLIMIT_DOWNLOAD_VALUE, COptions::m_DownloadSpeedLimits); -#else - return GetSpeedLimit(time, OPTION_SPEEDLIMIT_DOWNLOAD_TYPE, OPTION_SPEEDLIMIT_DOWNLOAD_VALUE); -#endif - else -#ifndef MPEXT_NO_SPEED_LIM_RULES - return GetSpeedLimit( time, OPTION_SPEEDLIMIT_UPLOAD_TYPE, OPTION_SPEEDLIMIT_UPLOAD_VALUE, COptions::m_UploadSpeedLimits); -#else - return GetSpeedLimit( time, OPTION_SPEEDLIMIT_UPLOAD_TYPE, OPTION_SPEEDLIMIT_UPLOAD_VALUE); -#endif - return ( _int64)1000000000000; -} - -_int64 CControlSocket::GetAbleToUDSize( bool &beenWaiting, CTime &curTime, _int64 &curLimit, std::list::iterator &iter, enum transferDirection direction, int nBufSize) -{ - beenWaiting = false; - - CTime nowTime = CTime::GetCurrentTime(); - _int64 ableToRead = BUFSIZE; - - if ( nowTime == curTime) - { - ableToRead = iter->nBytesAvailable; - - if (ableToRead <= 0) - { - // we should wait till next second - nowTime = CTime::GetCurrentTime(); - - while (nowTime == curTime && !iter->nBytesAvailable) - { - if (beenWaiting) - { - //Check if there are other commands in the command queue. - MSG msg; - if (PeekMessage(&msg, 0, m_pOwner->m_nInternalMessageID, m_pOwner->m_nInternalMessageID, PM_NOREMOVE)) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_INFO, _T("Message waiting in queue, resuming later")); - return 0; - } - } - m_SpeedLimitSync.Unlock(); - Sleep(100); - m_SpeedLimitSync.Lock(); - nowTime = CTime::GetCurrentTime(); - beenWaiting = true; - - // Since we didn't hold the critical section for some time, we have to renew the iterator - for (iter = m_InstanceList[direction].begin(); iter != m_InstanceList[direction].end(); iter++) - if (iter->pOwner == this) - break; - if (iter == m_InstanceList[direction].end()) - return 0; - } - - } - ableToRead = iter->nBytesAvailable; - } - - if (nowTime != curTime) - { - if (ableToRead > 0) - ableToRead = 0; - - curLimit = GetSpeedLimit(direction, curTime); - __int64 nMax = curLimit / m_InstanceList[direction].size(); - _int64 nLeft = 0; - int nCount = 0; - std::list::iterator iter2; - for (iter2 = m_InstanceList[direction].begin(); iter2 != m_InstanceList[direction].end(); iter2++) - { - if (iter2->nBytesAvailable>0) - { - nLeft += iter2->nBytesAvailable; - iter2->nBytesTransferred = 1; - } - else - { - nCount++; - iter2->nBytesTransferred = 0; - } - iter2->nBytesAvailable = nMax; - } - if (nLeft && nCount) - { - nMax = nLeft / nCount; - for (iter2 = m_InstanceList[direction].begin(); iter2 != m_InstanceList[direction].end(); iter2++) - { - if (!iter2->nBytesTransferred) - iter2->nBytesAvailable += nMax; - else - iter2->nBytesTransferred = 0; - } - } - ableToRead = iter->nBytesAvailable; - } - - curTime = nowTime; - - if (!nBufSize) - nBufSize = BUFSIZE; - if (ableToRead > nBufSize) - ableToRead = nBufSize; - - return ableToRead; -} - -_int64 CControlSocket::GetAbleToTransferSize(enum transferDirection direction, bool &beenWaiting, int nBufSize) -{ - m_SpeedLimitSync.Lock(); - std::list::iterator iter; - for (iter = m_InstanceList[direction].begin(); iter != m_InstanceList[direction].end(); iter++) - if (iter->pOwner == this) - break; - if (iter == m_InstanceList[direction].end()) - { - t_ActiveList item; -#ifdef MPEXT - CTime time = CTime::GetCurrentTime(); - item.nBytesAvailable = GetSpeedLimit(direction, time) / (m_InstanceList[direction].size() + 1); -#else - item.nBytesAvailable = GetSpeedLimit(direction, CTime::GetCurrentTime()) / (m_InstanceList[direction].size() + 1); -#endif - item.nBytesTransferred = 0; - item.pOwner = this; - m_InstanceList[direction].push_back(item); - iter = m_InstanceList[direction].end(); - iter--; - } - _int64 limit = GetAbleToUDSize(beenWaiting, m_CurrentTransferTime[direction], m_CurrentTransferLimit[direction], iter, direction, nBufSize); - m_SpeedLimitSync.Unlock(); - return limit; -} - -BOOL CControlSocket::RemoveActiveTransfer() -{ - BOOL bFound = FALSE; - m_SpeedLimitSync.Lock(); - std::list::iterator iter; - for (int i = 0; i < 2; i++) - { - for (iter = m_InstanceList[i].begin(); iter != m_InstanceList[i].end(); iter++) - if (iter->pOwner == this) - { - m_InstanceList[i].erase(iter); - bFound = TRUE; - break; - } - } - m_SpeedLimitSync.Unlock(); - return bFound; -} - -BOOL CControlSocket::SpeedLimitAddTransferredBytes(enum transferDirection direction, _int64 nBytesTransferred) -{ - m_SpeedLimitSync.Lock(); - std::list::iterator iter; - for (iter = m_InstanceList[direction].begin(); iter != m_InstanceList[direction].end(); iter++) - if (iter->pOwner == this) - { - if (iter->nBytesAvailable > nBytesTransferred) - iter->nBytesAvailable -= nBytesTransferred; - else - iter->nBytesAvailable = 0; - iter->nBytesTransferred += nBytesTransferred; - m_SpeedLimitSync.Unlock(); - return TRUE; - } - m_SpeedLimitSync.Unlock(); - return FALSE; -} - -CString CControlSocket::ConvertDomainName(CString domain) -{ - USES_CONVERSION; - - LPCWSTR buffer = T2CW(domain); - - char *utf8 = new char[wcslen(buffer) * 2 + 2]; - if (!WideCharToMultiByte(CP_UTF8, 0, buffer, -1, utf8, wcslen(buffer) * 2 + 2, 0, 0)) - { - delete [] utf8; - LogMessage(FZ_LOG_WARNING, _T("Could not convert domain name")); - return domain; - } - - char *output = 0; -#ifdef MPEXT - output = strdup(utf8); -#else - if (idna_to_ascii_8z(utf8, &output, IDNA_ALLOW_UNASSIGNED)) - { - delete [] utf8; - LogMessage(FZ_LOG_WARNING, _T("Could not convert domain name")); - return domain; - } -#endif - delete [] utf8; - - CString result = A2T(output); - free(output); - return result; -} - -void CControlSocket::LogSocketMessage(int nMessageType, LPCTSTR pMsgFormat) -{ - LogMessage(nMessageType, pMsgFormat); -} - -bool CControlSocket::LoggingSocketMessage(int nMessageType) -{ - return LoggingMessageType(nMessageType); -} - diff --git a/source/filezilla/ControlSocket.h b/source/filezilla/ControlSocket.h deleted file mode 100644 index abba611c..00000000 --- a/source/filezilla/ControlSocket.h +++ /dev/null @@ -1,198 +0,0 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// ControlSocket.h: Schnittstelle für die Klasse CControlSocket. -// -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_CONTROLSOCKET_H__173B4310_5E72_4F4B_A4F0_4E3D4CFAF4A5__INCLUDED_) -#define AFX_CONTROLSOCKET_H__173B4310_5E72_4F4B_A4F0_4E3D4CFAF4A5__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -#include "AsyncSocketEx.h" -#include "FileZillaApi.h" -#include "ApiLog.h" -#include "structures.h" // Hinzugefügt von der Klassenansicht -#ifndef MPEXT_NO_IDENT -#include "IdentServerControl.h" // Added by ClassView -#endif - -#define CSMODE_NONE 0x0000 -#define CSMODE_CONNECT 0x0001 -#define CSMODE_COMMAND 0x0002 -#define CSMODE_LIST 0x0004 -#define CSMODE_TRANSFER 0x0008 -#define CSMODE_DOWNLOAD 0x0010 -#define CSMODE_UPLOAD 0x0020 -#define CSMODE_TRANSFERERROR 0x0040 -#define CSMODE_TRANSFERTIMEOUT 0x0080 -#define CSMODE_DELETE 0x0100 -#define CSMODE_RMDIR 0x0200 -#define CSMODE_DISCONNECT 0x0400 -#define CSMODE_MKDIR 0x0800 -#define CSMODE_RENAME 0x1000 -#define CSMODE_CHMOD 0x2000 -#ifdef MPEXT -#define CSMODE_LISTFILE 0x4000 -#endif - -typedef struct -{ - BOOL bResume,bType; - __int64 transfersize,transferleft,nTransferStart; -} t_transferdata; - -class CMainThread; -class CAsyncProxySocketLayer; -#ifndef MPEXT_NO_SSL -class CAsyncSslSocketLayer; -#endif -#ifndef MPEXT_NO_GSS -class CAsyncGssSocketLayer; -#endif -class CTransferSocket; -class CFileZillaTools; - -#define BUFSIZE 16384 - -class CControlSocket : public CAsyncSocketEx, public CApiLog -{ -public: - CControlSocket(CMainThread *pMainThread, CFileZillaTools * pTools); - virtual ~CControlSocket(); - - enum transferDirection - { - download = 0, - upload = 1 - }; - - //Operations - virtual void Connect(t_server &server)=0; - virtual void List(BOOL bFinish, int nError=0, CServerPath path=CServerPath(), CString subdir=_MPT(""), int nListMode = 0)=0; -#ifdef MPEXT - virtual void ListFile(CString filename, const CServerPath &path)=0; -#endif - virtual void FtpCommand(LPCTSTR pCommand)=0; - virtual void Disconnect()=0; - virtual void FileTransfer(t_transferfile *transferfile = 0, BOOL bFinish = FALSE, int nError = 0)=0; - virtual void Delete(CString filename, const CServerPath &path)=0; - virtual void Rename(CString oldName, CString newName, const CServerPath &path, const CServerPath &newPath)=0; - virtual void MakeDir(const CServerPath &path)=0; - virtual void RemoveDir(CString dirname, const CServerPath &path)=0; - virtual void Cancel(BOOL bQuit=FALSE)=0; - virtual void Chmod(CString filename, const CServerPath &path, int nValue)=0; - - virtual void SetAsyncRequestResult(int nAction, CAsyncRequestData *pData)=0; - - virtual void OnTimer()=0; //Called every 1000 msecs - virtual BOOL IsReady()=0; //ALWAYS return return TRUE if processing a command (Return false if keepalive is in progress for example) - virtual void ProcessReply()=0; - virtual void TransferEnd(int nMode)=0; - virtual void DoClose(int nErrorCode = 0)=0; - - t_server GetCurrentServer(); - void ShowStatus(UINT nID, int type) const; - void ShowStatus(CString status,int type) const; - void ShowTimeoutError(UINT nID) const; - -#ifdef MPEXT - virtual bool UsingMlsd() = 0; - virtual bool UsingUtf8() = 0; - virtual std::string GetTlsVersionStr() = 0; - virtual std::string GetCipherName() = 0; -#endif - - virtual int OnLayerCallback(std::list& callbacks); -protected: - - void Close(); - BOOL Connect(CString hostAddress, UINT nHostPort); - CString ConvertDomainName(CString domain); - - void SetDirectoryListing(t_directory *pDirectory, bool bSetWorkingDir = true); - t_directory *m_pDirectoryListing; - - CMainThread *m_pOwner; - CFileZillaTools * m_pTools; -#ifndef MPEXT_NO_IDENT - CIdentServerControl *m_pIdentControl; -#endif - - //Speed limit -public: - BOOL RemoveActiveTransfer(); - BOOL SpeedLimitAddTransferredBytes(enum transferDirection direction, _int64 nBytesTransferred); - - _int64 GetSpeedLimit(enum transferDirection direction, CTime &time); - - _int64 GetAbleToTransferSize(enum transferDirection direction, bool &beenWaiting, int nBufSize = 0); - -protected: - struct t_ActiveList - { - CControlSocket *pOwner; - __int64 nBytesAvailable; - __int64 nBytesTransferred; - }; - static std::list m_InstanceList[2]; - static CTime m_CurrentTransferTime[2]; - static _int64 m_CurrentTransferLimit[2]; - static CCriticalSection m_SpeedLimitSync; - _int64 GetAbleToUDSize( bool &beenWaiting, CTime &curTime, _int64 &curLimit, std::list::iterator &iter, enum transferDirection direction, int nBufSize); -#ifndef MPEXT_NO_SPEED_LIM_RULES - _int64 GetSpeedLimit(CTime &time, int valType, int valValue, SPEEDLIMITSLIST &list); -#else - _int64 GetSpeedLimit(CTime &time, int valType, int valValue); -#endif - //End Speed limit - - virtual void LogSocketMessage(int nMessageType, LPCTSTR pMsgFormat); - virtual bool LoggingSocketMessage(int nMessageType); - -public: - struct t_operation - { - int nOpMode; - int nOpState; - class COpData //Base class which will store operation specific parameters. - { - public: - COpData() {}; - virtual ~COpData() {}; - }; - COpData *pData; - public: - }; -protected: - t_operation m_Operation; - - CAsyncProxySocketLayer* m_pProxyLayer; -#ifndef MPEXT_NO_SSL - CAsyncSslSocketLayer* m_pSslLayer; -#endif -#ifndef MPEXT_NO_GSS - CAsyncGssSocketLayer* m_pGssLayer; -#endif - t_server m_CurrentServer; -}; - -#endif // !defined(AFX_CONTROLSOCKET_H__173B4310_5E72_4F4B_A4F0_4E3D4CFAF4A5__INCLUDED_) diff --git a/source/filezilla/Crypt.cpp b/source/filezilla/Crypt.cpp deleted file mode 100644 index 63c91f0e..00000000 --- a/source/filezilla/Crypt.cpp +++ /dev/null @@ -1,82 +0,0 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// Crypt.cpp: Implementierung der Klasse CCrypt. -// -////////////////////////////////////////////////////////////////////// - -#include "stdafx.h" -#include "crypt.h" - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#define new DEBUG_NEW -#endif - -////////////////////////////////////////////////////////////////////// -// Konstruktion/Destruktion -////////////////////////////////////////////////////////////////////// - -char* CCrypt::m_key = "FILEZILLA1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - -CString CCrypt::encrypt(CString str) -{ - USES_CONVERSION; - int pos=str.GetLength()%strlen(m_key); - CString ret; - LPCSTR lpszAscii=T2CA(str); - for (unsigned int i=0;i '9') - return _T(""); - number += (digit - '0') * 100; - digit = lpszAscii[i * 3 + 1]; - if (digit < '0' || digit > '9') - return _T(""); - number += (digit - '0') * 10; - digit = lpszAscii[i * 3 + 2]; - if (digit < '0' || digit > '9') - return _T(""); - number += digit - '0'; - tmp[0] = number^m_key[(i+pos)%strlen(m_key)]; - ret += tmp; - } - return ret; -} - diff --git a/source/filezilla/Crypt.h b/source/filezilla/Crypt.h deleted file mode 100644 index 826b7282..00000000 --- a/source/filezilla/Crypt.h +++ /dev/null @@ -1,38 +0,0 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// Crypt.h: Schnittstelle für die Klasse CCrypt. -// -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_CRYPT_H__613C5174_16F0_42A5_9493_C7489534C080__INCLUDED_) -#define AFX_CRYPT_H__613C5174_16F0_42A5_9493_C7489534C080__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -class CCrypt -{ - static char *m_key; -public: - static CString decrypt(CString str); - static CString encrypt(CString str); -}; - -#endif // !defined(AFX_CRYPT_H__613C5174_16F0_42A5_9493_C7489534C080__INCLUDED_) diff --git a/source/filezilla/FileZillaApi.cpp b/source/filezilla/FileZillaApi.cpp index 426d87a8..96685a37 100644 --- a/source/filezilla/FileZillaApi.cpp +++ b/source/filezilla/FileZillaApi.cpp @@ -1,37 +1,7 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// FileZillaApi.cpp: Implementierung der Klasse CFileZillaApi. -// -////////////////////////////////////////////////////////////////////// - +//--------------------------------------------------------------------------- #include "stdafx.h" #include "FileZillaApi.h" #include "mainthread.h" -#ifndef MPEXT_NO_CACHE -#include "directorycache.h" -#endif - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#define new DEBUG_NEW -#endif ////////////////////////////////////////////////////////////////////// // Konstruktion/Destruktion @@ -39,862 +9,518 @@ static char THIS_FILE[]=__FILE__; CFileZillaApi::CFileZillaApi() { - m_hOwnerWnd=0; -#ifndef MPEXT - //Create Message IDs - m_nReplyMessageID=RegisterWindowMessage( _T("FileZillaApiReplyMessage{8EF2E328-685E-4815-A9B9-823512F8381D}") ); -#else - m_nReplyMessageID=0; -#endif - m_nInternalMessageID=0; - m_pMainThread=0; - m_bInitialized=FALSE; + m_nInternalMessageID=0; + m_pMainThread=0; + m_bInitialized=FALSE; } CFileZillaApi::~CFileZillaApi() { - Destroy(); + Destroy(); } -#ifndef MPEXT -int CFileZillaApi::Init(HWND hOwnerWnd, int nReplyMessageID /*=0*/) -#else -int CFileZillaApi::Init(CApiLog * pParent, CFileZillaTools * pTools) -#endif +int CFileZillaApi::Init(TFileZillaIntern * Intern, CFileZillaTools * pTools) { - //Check parameters - //-> No check needed, if hOwnerWnd is NULL, use blocking mode and don't send status messages + //Check if call allowed + if (m_bInitialized) + return FZ_REPLY_ALREADYINIZIALIZED; - //Check if call allowed - if (m_bInitialized) - return FZ_REPLY_ALREADYINIZIALIZED; + //Initialize variables + m_nInternalMessageID=RegisterWindowMessage( L"FileZillaInternalApiMessage{F958620E-040C-4b33-A091-7E04E10AA660}" ); + if (!m_nInternalMessageID) + return FZ_REPLY_NOTINITIALIZED; - //Initialize variables -#ifndef MPEXT - if (nReplyMessageID) - m_nReplyMessageID=nReplyMessageID; - m_hOwnerWnd=hOwnerWnd; -#endif - m_nInternalMessageID=RegisterWindowMessage( _T("FileZillaInternalApiMessage{F958620E-040C-4b33-A091-7E04E10AA660}") ); - if (!m_nInternalMessageID) - return FZ_REPLY_NOTINITIALIZED; - - //Create thread object - m_pMainThread = CMainThread::Create(THREAD_PRIORITY_BELOW_NORMAL, CREATE_SUSPENDED); - - //Initialize Thread variables - m_pMainThread->m_nInternalMessageID=m_nInternalMessageID; - m_pMainThread->m_nReplyMessageID=m_nReplyMessageID; - m_pMainThread->m_hOwnerWnd=m_hOwnerWnd; - m_pMainThread->m_pTools=pTools; - -#ifndef MPEXT - m_pMainThread->InitLog(m_hOwnerWnd, m_nReplyMessageID); -#else - m_pMainThread->InitLog(pParent); -#endif - - //Resume Thread - m_pMainThread->ResumeThread(); + //Create thread object + m_pMainThread = CMainThread::Create(THREAD_PRIORITY_BELOW_NORMAL, CREATE_SUSPENDED); - //Initialization OK - m_bInitialized=TRUE; - return FZ_REPLY_OK; -} + //Initialize Thread variables + m_pMainThread->m_nInternalMessageID=m_nInternalMessageID; + m_pMainThread->m_pTools=pTools; -unsigned int CFileZillaApi::GetMessageID() -{ - return m_nReplyMessageID; + m_pMainThread->InitIntern(Intern); + + //Resume Thread + m_pMainThread->ResumeThread(); + + //Initialization OK + m_bInitialized=TRUE; + return FZ_REPLY_OK; } int CFileZillaApi::IsConnected() { - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - return m_pMainThread->IsConnected()?FZ_REPLY_OK:FZ_REPLY_NOTCONNECTED; + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + return m_pMainThread->IsConnected()?FZ_REPLY_OK:FZ_REPLY_NOTCONNECTED; } int CFileZillaApi::IsBusy() { - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - return m_pMainThread->IsBusy()?FZ_REPLY_BUSY:FZ_REPLY_IDLE; + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + return m_pMainThread->IsBusy()?FZ_REPLY_BUSY:FZ_REPLY_IDLE; } int CFileZillaApi::Connect(const t_server &server) { - //Check parameters - if (server.host==_MPT("") || server.port<1 || server.port>65535) - return FZ_REPLY_INVALIDPARAM; + //Check parameters + if (server.host==L"" || server.port<1 || server.port>65535) + return FZ_REPLY_INVALIDPARAM; #ifndef MPEXT_NO_GSS - BOOL bUseGSS = FALSE; - if (COptions::GetOptionVal(OPTION_USEGSS)) - { - USES_CONVERSION; - - CString GssServers = COptions::GetOption(OPTION_GSSSERVERS); - hostent *fullname = gethostbyname(T2CA(server.host)); - CString host; - if (fullname) - host = fullname->h_name; - else - host = server.host; - host.MakeLower(); - int i; - while ((i=GssServers.Find( _T(";") ))!=-1) - { - if ((_MPT(".")+GssServers.Left(i))==host.Right(GssServers.Left(i).GetLength()+1) || GssServers.Left(i)==host) - { - bUseGSS = TRUE; - break; - } - GssServers = GssServers.Mid(i+1); - } - } - if (!bUseGSS && server.user == _MPT("")) - return FZ_REPLY_INVALIDPARAM; + BOOL bUseGSS = FALSE; + if (GetOptionVal(OPTION_USEGSS)) + { + USES_CONVERSION; + + CString GssServers = GetOption(OPTION_GSSSERVERS); + hostent *fullname = gethostbyname(T2CA(server.host)); + CString host; + if (fullname) + host = fullname->h_name; + else + host = server.host; + host.MakeLower(); + int i; + while ((i=GssServers.Find( L";" ))!=-1) + { + if ((L"."+GssServers.Left(i))==host.Right(GssServers.Left(i).GetLength()+1) || GssServers.Left(i)==host) + { + bUseGSS = TRUE; + break; + } + GssServers = GssServers.Mid(i+1); + } + } + if (!bUseGSS && server.user == L"") + return FZ_REPLY_INVALIDPARAM; #endif - if (!(server.nServerType&FZ_SERVERTYPE_HIGHMASK)) - return FZ_REPLY_INVALIDPARAM; - - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (m_pMainThread->IsBusy()) - return FZ_REPLY_BUSY; - - t_command command; - command.id=FZ_COMMAND_CONNECT; - command.server=server; - m_pMainThread->Command(command); - if (m_hOwnerWnd) - return FZ_REPLY_WOULDBLOCK; - else - return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; -} - -int CFileZillaApi::List(int nListMode /*=FZ_LIST_USECACHE*/) -{ - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; - if (nListMode&FZ_LIST_REALCHANGE) - return FZ_REPLY_INVALIDPARAM; -#ifndef MPEXT_NO_CACHE - if (nListMode&FZ_LIST_FORCECACHE) - nListMode|=FZ_LIST_USECACHE; - //Check if current dir is cached - CServerPath path; - if (nListMode&FZ_LIST_USECACHE) - { - if (!m_pMainThread->GetWorkingDirPath(path) || path.IsEmpty()) - m_pMainThread->GetCurrentPath(path); - if (!path.IsEmpty()) - { - t_server server; - BOOL res=m_pMainThread->GetCurrentServer(server); - if (res) - { - t_directory *directory=new t_directory; - CDirectoryCache cache; - res=cache.Lookup(path,server,*directory); - if (res) - { - BOOL bExact=TRUE; - if (nListMode & FZ_LIST_EXACT) - for (int i=0;inum;i++) - if (directory->direntry[i].bUnsure || (directory->direntry[i].size==-1 && !directory->direntry[i].dir)) - { - bExact=FALSE; - break; - } - if (bExact) - { - m_pMainThread->SetWorkingDir(directory); - delete directory; - return FZ_REPLY_OK; - } - } - delete directory; - } - } - } -#else - CServerPath path; + if (!(server.nServerType&FZ_SERVERTYPE_HIGHMASK)) + return FZ_REPLY_INVALIDPARAM; + + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (m_pMainThread->IsBusy()) + return FZ_REPLY_BUSY; + + t_command command; + command.id=FZ_COMMAND_CONNECT; + command.server=server; + m_pMainThread->Command(command); + return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; +} + +int CFileZillaApi::List() +{ + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + CServerPath path; // seems to be incorrectly skipped when cache is not required - if (!m_pMainThread->GetWorkingDirPath(path) || path.IsEmpty()) - m_pMainThread->GetCurrentPath(path); -#endif + if (!m_pMainThread->GetWorkingDirPath(path) || path.IsEmpty()) + m_pMainThread->GetCurrentPath(path); - if (m_pMainThread->IsBusy()) - return FZ_REPLY_BUSY; -#ifndef MPEXT_NO_CACHE - if (nListMode&FZ_LIST_FORCECACHE) - return FZ_REPLY_ERROR; -#endif + if (m_pMainThread->IsBusy()) + return FZ_REPLY_BUSY; - t_command command; - command.id=FZ_COMMAND_LIST; - command.path = path; - command.param4=nListMode; - m_pMainThread->Command(command); - if (m_hOwnerWnd) - return FZ_REPLY_WOULDBLOCK; - else - return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; + t_command command; + command.id=FZ_COMMAND_LIST; + command.path = path; + m_pMainThread->Command(command); + return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; } int CFileZillaApi::Cancel() { - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsBusy()!=FZ_REPLY_BUSY) - return FZ_REPLY_NOTBUSY; - m_pMainThread->PostThreadMessage(m_nInternalMessageID, FZAPI_THREADMSG_CANCEL, 0); - return FZ_REPLY_WOULDBLOCK; + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsBusy()!=FZ_REPLY_BUSY) + return FZ_REPLY_NOTBUSY; + m_pMainThread->PostThreadMessage(m_nInternalMessageID, FZAPI_THREADMSG_CANCEL, 0); + return FZ_REPLY_WOULDBLOCK; } void CFileZillaApi::Destroy() { - if (!m_bInitialized) - return; - ASSERT(m_pMainThread); - HANDLE tmp=m_pMainThread->m_hThread; - m_pMainThread->Quit(); - //Wait for the main thread to quit - WaitForSingleObject(tmp, 10000); -#ifndef MPEXT - PostMessage(m_hOwnerWnd, m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_QUITCOMPLETE, 0), 0); -#endif - - m_pMainThread=0; - m_bInitialized=FALSE; + if (!m_bInitialized) + return; + DebugAssert(m_pMainThread); + HANDLE tmp=m_pMainThread->m_hThread; + m_pMainThread->Quit(); + //Wait for the main thread to quit + WaitForSingleObject(tmp, 10000); + + m_pMainThread=0; + m_bInitialized=FALSE; } int CFileZillaApi::Disconnect() { - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; - if (IsBusy()==FZ_REPLY_BUSY) - return FZ_REPLY_BUSY; - - m_pMainThread->PostThreadMessage(m_nInternalMessageID,FZAPI_THREADMSG_DISCONNECT,0); - return FZ_REPLY_WOULDBLOCK; -} - -int CFileZillaApi::Command(t_command *pCommand) -{ - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - - //Dispatch command to command specific functions - switch(pCommand->id) - { - case FZ_COMMAND_LIST: - if (pCommand->param1!=_MPT("")) - return List(pCommand->path,pCommand->param1,pCommand->param4); - else if (!pCommand->path.IsEmpty()) - return List(pCommand->path,pCommand->param4); - else - return List(pCommand->param4); - break; - case FZ_COMMAND_CONNECT: - return Connect(pCommand->server); - break; - case FZ_COMMAND_DISCONNECT: - return Disconnect(); - break; - case FZ_COMMAND_FILETRANSFER: - return FileTransfer(pCommand->transferfile); - break; - case FZ_COMMAND_DELETE: - return Delete(pCommand->param1, pCommand->path); - break; - case FZ_COMMAND_REMOVEDIR: - return RemoveDir(pCommand->param1, pCommand->path); - break; - case FZ_COMMAND_MAKEDIR: - return MakeDir(pCommand->path); - break; - case FZ_COMMAND_RENAME: - return Rename(pCommand->param1, pCommand->param2, pCommand->path, pCommand->newPath); - break; - case FZ_COMMAND_CUSTOMCOMMAND: - return CustomCommand(pCommand->param1); - break; - case FZ_COMMAND_CHMOD: - return Chmod(pCommand->param4, pCommand->param1, pCommand->path); - break; - } - return FZ_REPLY_INVALIDPARAM; -} - -int CFileZillaApi::List(const CServerPath& path, int nListMode /*=FZ_LIST_USECACHE*/) -{ - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; -#ifndef MPEXT_NO_CACHE - if ( (nListMode&(FZ_LIST_FORCECACHE|FZ_LIST_REALCHANGE))==(FZ_LIST_FORCECACHE|FZ_LIST_REALCHANGE) ) - return FZ_REPLY_INVALIDPARAM; - if (nListMode&FZ_LIST_FORCECACHE) - nListMode|=FZ_LIST_USECACHE; -#endif - if (path.IsEmpty()) - return FZ_REPLY_INVALIDPARAM; - -#ifndef MPEXT_NO_CACHE - //Check if current dir is cached - if (nListMode&FZ_LIST_USECACHE && !(nListMode&FZ_LIST_REALCHANGE)) - { - t_server server; - BOOL res=m_pMainThread->GetCurrentServer(server); - if (res) - { - t_directory *directory=new t_directory; - CDirectoryCache cache; - res=cache.Lookup(path,server,*directory); - if (res) - { - BOOL bExact=TRUE; - if (nListMode & FZ_LIST_EXACT) - for (int i=0;inum;i++) - if (directory->direntry[i].bUnsure || (directory->direntry[i].size==-1 && !directory->direntry[i].dir)) - { - bExact=FALSE; - break; - } - if (bExact) - { - m_pMainThread->SetWorkingDir(directory); - delete directory; - return FZ_REPLY_OK; - } - } - delete directory; - } - } -#endif + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + if (IsBusy()==FZ_REPLY_BUSY) + return FZ_REPLY_BUSY; - if (m_pMainThread->IsBusy()) - return FZ_REPLY_BUSY; -#ifndef MPEXT_NO_CACHE - if (nListMode&FZ_LIST_FORCECACHE) - return FZ_REPLY_ERROR; -#endif + m_pMainThread->PostThreadMessage(m_nInternalMessageID,FZAPI_THREADMSG_DISCONNECT,0); + return FZ_REPLY_WOULDBLOCK; +} - t_command command; - command.id=FZ_COMMAND_LIST; - command.path=path; - command.param4=nListMode; - m_pMainThread->Command(command); - if (m_hOwnerWnd) - return FZ_REPLY_WOULDBLOCK; - else - return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; -} - -int CFileZillaApi::List(const CServerPath& parent, CString dirname, int nListMode /*=FZ_LIST_USECACHE*/) -{ - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; -#ifndef MPEXT_NO_CACHE - if ( (nListMode&(FZ_LIST_FORCECACHE|FZ_LIST_REALCHANGE))==(FZ_LIST_FORCECACHE|FZ_LIST_REALCHANGE) ) - return FZ_REPLY_INVALIDPARAM; - if (nListMode&FZ_LIST_FORCECACHE) - nListMode|=FZ_LIST_USECACHE; -#endif - if (dirname==_MPT("") || parent.IsEmpty()) - return FZ_REPLY_INVALIDPARAM; - -#ifndef MPEXT_NO_CACHE - //Check if current dir is cached - if (nListMode&FZ_LIST_USECACHE && !(nListMode&FZ_LIST_REALCHANGE)) - { - t_server server; - BOOL res=m_pMainThread->GetCurrentServer(server); - if (res) - { - t_directory *directory=new t_directory; - CDirectoryCache cache; - res=cache.Lookup(parent,dirname,server,*directory); - if (res) - { - BOOL bExact=TRUE; - if (nListMode & FZ_LIST_EXACT) - for (int i=0;inum;i++) - if (directory->direntry[i].bUnsure || (directory->direntry[i].size==-1 && !directory->direntry[i].dir)) - { - bExact=FALSE; - break; - } - if (bExact) - { - m_pMainThread->SetWorkingDir(directory); - delete directory; - return FZ_REPLY_OK; - } - } - delete directory; - } - } -#endif +int CFileZillaApi::List(const CServerPath& path) +{ + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + if (path.IsEmpty()) + return FZ_REPLY_INVALIDPARAM; - if (m_pMainThread->IsBusy()) - return FZ_REPLY_BUSY; -#ifndef MPEXT_NO_CACHE - if (nListMode&FZ_LIST_FORCECACHE) - return FZ_REPLY_ERROR; -#endif + if (m_pMainThread->IsBusy()) + return FZ_REPLY_BUSY; - t_command command; - command.id=FZ_COMMAND_LIST; - command.path=parent; - command.param1=dirname; - command.param4=nListMode; - m_pMainThread->Command(command); - if (m_hOwnerWnd) - return FZ_REPLY_WOULDBLOCK; - else - return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; + t_command command; + command.id=FZ_COMMAND_LIST; + command.path=path; + m_pMainThread->Command(command); + return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; } -#ifdef MPEXT int CFileZillaApi::ListFile(CString FileName, const CServerPath & path) { - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; - if (path.IsEmpty()) - return FZ_REPLY_INVALIDPARAM; - if (FileName=="") - return FZ_REPLY_INVALIDPARAM; - - if (m_pMainThread->IsBusy()) - return FZ_REPLY_BUSY; - t_command command; - command.id=FZ_COMMAND_LISTFILE; - command.param1=FileName; - command.path=path; - m_pMainThread->Command(command); - if (m_hOwnerWnd) - return FZ_REPLY_WOULDBLOCK; - else - return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + if (path.IsEmpty()) + return FZ_REPLY_INVALIDPARAM; + if (FileName=="") + return FZ_REPLY_INVALIDPARAM; + + if (m_pMainThread->IsBusy()) + return FZ_REPLY_BUSY; + t_command command; + command.id=FZ_COMMAND_LISTFILE; + command.param1=FileName; + command.path=path; + m_pMainThread->Command(command); + return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; } -#endif int CFileZillaApi::FileTransfer(const t_transferfile &TransferFile) { - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; - if (TransferFile.remotefile==_MPT("") || TransferFile.localfile==_MPT("") || TransferFile.remotepath.IsEmpty()) - return FZ_REPLY_INVALIDPARAM; - if (IsBusy()==FZ_REPLY_BUSY) - return FZ_REPLY_BUSY; - t_command command; - command.id=FZ_COMMAND_FILETRANSFER; - command.transferfile=TransferFile; - m_pMainThread->Command(command); - if (m_hOwnerWnd) - return FZ_REPLY_WOULDBLOCK; - else - return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + if (TransferFile.remotefile==L"" || TransferFile.localfile==L"" || TransferFile.remotepath.IsEmpty()) + return FZ_REPLY_INVALIDPARAM; + if (IsBusy()==FZ_REPLY_BUSY) + return FZ_REPLY_BUSY; + t_command command; + command.id=FZ_COMMAND_FILETRANSFER; + command.transferfile=TransferFile; + m_pMainThread->Command(command); + return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; } int CFileZillaApi::GetCurrentServer(t_server &server) { - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; - if (m_pMainThread->GetCurrentServer(server)) - return FZ_REPLY_OK; - else - return FZ_REPLY_NOTCONNECTED; + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + if (m_pMainThread->GetCurrentServer(server)) + return FZ_REPLY_OK; + else + return FZ_REPLY_NOTCONNECTED; } -#ifdef MPEXT int CFileZillaApi::SetCurrentPath(CServerPath path) { - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; - m_pMainThread->SetCurrentPath(path); - return FZ_REPLY_OK; + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + m_pMainThread->SetCurrentPath(path); + return FZ_REPLY_OK; } int CFileZillaApi::GetCurrentPath(CServerPath & path) { - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; - return (m_pMainThread->GetCurrentPath(path) ? FZ_REPLY_OK : FZ_REPLY_NOTCONNECTED); + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + return (m_pMainThread->GetCurrentPath(path) ? FZ_REPLY_OK : FZ_REPLY_NOTCONNECTED); } bool CFileZillaApi::UsingMlsd() { - //Check if call allowed - if (!m_bInitialized) - return false; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return false; - return m_pMainThread->UsingMlsd(); + //Check if call allowed + if (!m_bInitialized) + return false; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return false; + return m_pMainThread->UsingMlsd(); } bool CFileZillaApi::UsingUtf8() { - //Check if call allowed - if (!m_bInitialized) - return false; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return false; - return m_pMainThread->UsingUtf8(); + //Check if call allowed + if (!m_bInitialized) + return false; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return false; + return m_pMainThread->UsingUtf8(); } std::string CFileZillaApi::GetTlsVersionStr() { - //Check if call allowed - if (!m_bInitialized) - return std::string(); - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return std::string(); - return m_pMainThread->GetTlsVersionStr(); + //Check if call allowed + if (!m_bInitialized) + return std::string(); + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return std::string(); + return m_pMainThread->GetTlsVersionStr(); } std::string CFileZillaApi::GetCipherName() { - //Check if call allowed - if (!m_bInitialized) - return std::string(); - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return std::string(); - return m_pMainThread->GetCipherName(); + //Check if call allowed + if (!m_bInitialized) + return std::string(); + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return std::string(); + return m_pMainThread->GetCipherName(); } -#endif int CFileZillaApi::CustomCommand(CString CustomCommand) { - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; - if (IsBusy()==FZ_REPLY_BUSY) - return FZ_REPLY_BUSY; - t_server server; - int res=GetCurrentServer(server); - if (res!=FZ_REPLY_OK) - return res; -#ifndef MPEXT_NO_SFTP - if (server.nServerType&FZ_SERVERTYPE_SUB_FTP_SFTP) - return FZ_REPLY_NOTSUPPORTED; -#endif - if (CustomCommand==_MPT("")) - return FZ_REPLY_INVALIDPARAM; - - t_command command; - command.id=FZ_COMMAND_CUSTOMCOMMAND; - command.param1=CustomCommand; - m_pMainThread->Command(command); - if (m_hOwnerWnd) - return FZ_REPLY_WOULDBLOCK; - else - return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + if (IsBusy()==FZ_REPLY_BUSY) + return FZ_REPLY_BUSY; + t_server server; + int res=GetCurrentServer(server); + if (res!=FZ_REPLY_OK) + return res; + if (CustomCommand==L"") + return FZ_REPLY_INVALIDPARAM; + + t_command command; + command.id=FZ_COMMAND_CUSTOMCOMMAND; + command.param1=CustomCommand; + m_pMainThread->Command(command); + return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; } int CFileZillaApi::Delete(CString FileName, const CServerPath &path /*=CServerPath()*/) { - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; - if (IsBusy()==FZ_REPLY_BUSY) - return FZ_REPLY_BUSY; - if (FileName=="") - return FZ_REPLY_INVALIDPARAM; - - CServerPath path2=path; - if (path2.IsEmpty()) - { - m_pMainThread->GetCurrentPath(path2); - if (path2.IsEmpty()) - return FZ_REPLY_INVALIDPARAM; - } - - t_command command; - command.id=FZ_COMMAND_DELETE; - command.param1=FileName; - command.path=path2; - m_pMainThread->Command(command); - if (m_hOwnerWnd) - return FZ_REPLY_WOULDBLOCK; - else - return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; - + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + if (IsBusy()==FZ_REPLY_BUSY) + return FZ_REPLY_BUSY; + if (FileName=="") + return FZ_REPLY_INVALIDPARAM; + + CServerPath path2=path; + if (path2.IsEmpty()) + { + m_pMainThread->GetCurrentPath(path2); + if (path2.IsEmpty()) + return FZ_REPLY_INVALIDPARAM; + } + + t_command command; + command.id=FZ_COMMAND_DELETE; + command.param1=FileName; + command.path=path2; + m_pMainThread->Command(command); + return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; } int CFileZillaApi::RemoveDir(CString DirName, const CServerPath &path /*=CServerPath()*/) { - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; - if (IsBusy()==FZ_REPLY_BUSY) - return FZ_REPLY_BUSY; - if (DirName==_MPT("")) - return FZ_REPLY_INVALIDPARAM; - - CServerPath path2=path; - if (path2.IsEmpty()) - { - m_pMainThread->GetCurrentPath(path2); - if (path2.IsEmpty()) - return FZ_REPLY_INVALIDPARAM; - } - - t_command command; - command.id=FZ_COMMAND_REMOVEDIR; - command.param1=DirName; - command.path=path2; - m_pMainThread->Command(command); - if (m_hOwnerWnd) - return FZ_REPLY_WOULDBLOCK; - else - return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; - - return FZ_REPLY_ERROR; + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + if (IsBusy()==FZ_REPLY_BUSY) + return FZ_REPLY_BUSY; + if (DirName==L"") + return FZ_REPLY_INVALIDPARAM; + + CServerPath path2=path; + if (path2.IsEmpty()) + { + m_pMainThread->GetCurrentPath(path2); + if (path2.IsEmpty()) + return FZ_REPLY_INVALIDPARAM; + } + + t_command command; + command.id=FZ_COMMAND_REMOVEDIR; + command.param1=DirName; + command.path=path2; + m_pMainThread->Command(command); + return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; } int CFileZillaApi::MakeDir(const CServerPath &path) { - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; - if (IsBusy()==FZ_REPLY_BUSY) - return FZ_REPLY_BUSY; - if (path.IsEmpty() || !path.HasParent()) - return FZ_REPLY_INVALIDPARAM; - - t_command command; - command.id=FZ_COMMAND_MAKEDIR; - command.path=path; - m_pMainThread->Command(command); - if (m_hOwnerWnd) - return FZ_REPLY_WOULDBLOCK; - else - return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; - - return FZ_REPLY_ERROR; + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + if (IsBusy()==FZ_REPLY_BUSY) + return FZ_REPLY_BUSY; + if (path.IsEmpty() || !path.HasParent()) + return FZ_REPLY_INVALIDPARAM; + + t_command command; + command.id=FZ_COMMAND_MAKEDIR; + command.path=path; + m_pMainThread->Command(command); + return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; } int CFileZillaApi::Rename(CString oldName, CString newName, const CServerPath &path /*=CServerPath()*/, const CServerPath &newPath /*=CServerPath()*/) { - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; - if (IsBusy()==FZ_REPLY_BUSY) - return FZ_REPLY_BUSY; - if (oldName==_MPT("") || newName==_MPT("")) - return FZ_REPLY_INVALIDPARAM; - - CServerPath path2 = path; - if (path2.IsEmpty()) - { - m_pMainThread->GetCurrentPath(path2); - if (path2.IsEmpty()) - return FZ_REPLY_INVALIDPARAM; - } - - t_command command; - command.id = FZ_COMMAND_RENAME; - command.param1 = oldName; - command.param2 = newName; - command.path = path2; - command.newPath = newPath; - m_pMainThread->Command(command); - if (m_hOwnerWnd) - return FZ_REPLY_WOULDBLOCK; - else - return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; - - return FZ_REPLY_ERROR; + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + if (IsBusy()==FZ_REPLY_BUSY) + return FZ_REPLY_BUSY; + if (oldName==L"" || newName==L"") + return FZ_REPLY_INVALIDPARAM; + + CServerPath path2 = path; + if (path2.IsEmpty()) + { + m_pMainThread->GetCurrentPath(path2); + if (path2.IsEmpty()) + return FZ_REPLY_INVALIDPARAM; + } + + t_command command; + command.id = FZ_COMMAND_RENAME; + command.param1 = oldName; + command.param2 = newName; + command.path = path2; + command.newPath = newPath; + m_pMainThread->Command(command); + return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; } int CFileZillaApi::SetAsyncRequestResult(int nAction, CAsyncRequestData *pData) { - if (!this || !pData) - return FZ_REPLY_CRITICALERROR | FZ_REPLY_INVALIDPARAM; - - if (IsBadWritePtr(pData, sizeof(CAsyncRequestData))) - return FZ_REPLY_CRITICALERROR; - - if (!m_bInitialized) - { - delete pData; - return FZ_REPLY_NOTINITIALIZED; - } - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - { - delete pData; - return FZ_REPLY_NOTCONNECTED; - } - - switch(pData->nRequestType) - { - case FZ_ASYNCREQUEST_OVERWRITE: - break; -#ifndef MPEXT_NO_SSL - case FZ_ASYNCREQUEST_VERIFYCERT: - if (!((CVerifyCertRequestData *)pData)->pCertData) - { - delete pData; - return FZ_REPLY_INVALIDPARAM; - } - break; -#endif - case FZ_ASYNCREQUEST_NEEDPASS: - break; + if (!this || !pData) + return FZ_REPLY_CRITICALERROR | FZ_REPLY_INVALIDPARAM; + + if (IsBadWritePtr(pData, sizeof(CAsyncRequestData))) + return FZ_REPLY_CRITICALERROR; + + if (!m_bInitialized) + { + delete pData; + return FZ_REPLY_NOTINITIALIZED; + } + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + { + delete pData; + return FZ_REPLY_NOTCONNECTED; + } + + switch(pData->nRequestType) + { + case FZ_ASYNCREQUEST_OVERWRITE: + break; + case FZ_ASYNCREQUEST_VERIFYCERT: + if (!((CVerifyCertRequestData *)pData)->pCertData) + { + delete pData; + return FZ_REPLY_INVALIDPARAM; + } + break; + case FZ_ASYNCREQUEST_NEEDPASS: + break; #ifndef MPEXT_NO_GSS - case FZ_ASYNCREQUEST_GSS_AUTHFAILED: - case FZ_ASYNCREQUEST_GSS_NEEDUSER: - case FZ_ASYNCREQUEST_GSS_NEEDPASS: -#ifdef MPEXT - break; -#endif -#endif -#ifndef MPEXT_NO_SFTP - case FZ_ASYNCREQUEST_NEWHOSTKEY: - case FZ_ASYNCREQUEST_CHANGEDHOSTKEY: - break; -#endif - default: - delete pData; - return FZ_REPLY_INVALIDPARAM; - } - pData->nRequestResult = nAction; - if (!m_pMainThread) - { - delete pData; - return FZ_REPLY_NOTINITIALIZED; - } - - m_pMainThread->PostThreadMessage(m_nInternalMessageID, FZAPI_THREADMSG_ASYNCREQUESTREPLY, (LPARAM)pData); - - return FZ_REPLY_OK; -} - -#ifndef MPEXT -int CFileZillaApi::SetOption(int nOption, int value) -{ - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - switch (nOption) - { - case FZAPI_OPTION_SHOWHIDDEN: - m_pMainThread->SetOption(nOption, value); - break; - default: - return FZ_REPLY_INVALIDPARAM; - } - return FZ_REPLY_OK; -} - -int CFileZillaApi::GetOption(int nOption, int &value) -{ - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - switch (nOption) - { - case FZAPI_OPTION_SHOWHIDDEN: - value = m_pMainThread->GetOption(nOption); - break; - default: - return FZ_REPLY_INVALIDPARAM; - } - return FZ_REPLY_OK; -} + case FZ_ASYNCREQUEST_GSS_AUTHFAILED: + case FZ_ASYNCREQUEST_GSS_NEEDUSER: + case FZ_ASYNCREQUEST_GSS_NEEDPASS: + break; #endif + default: + delete pData; + return FZ_REPLY_INVALIDPARAM; + } + pData->nRequestResult = nAction; + if (!m_pMainThread) + { + delete pData; + return FZ_REPLY_NOTINITIALIZED; + } -int CFileZillaApi::Chmod(int nValue, CString FileName, const CServerPath &path /*=CServerPath()*/ ) -{ - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (IsConnected()==FZ_REPLY_NOTCONNECTED) - return FZ_REPLY_NOTCONNECTED; - if (IsBusy()==FZ_REPLY_BUSY) - return FZ_REPLY_BUSY; - if (FileName==_MPT("")) - return FZ_REPLY_INVALIDPARAM; + m_pMainThread->PostThreadMessage(m_nInternalMessageID, FZAPI_THREADMSG_ASYNCREQUESTREPLY, (LPARAM)pData); - t_command command; - command.id=FZ_COMMAND_CHMOD; - command.param1=FileName; - command.param4=nValue; - command.path=path; - m_pMainThread->Command(command); - if (m_hOwnerWnd) - return FZ_REPLY_WOULDBLOCK; - else - return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; + return FZ_REPLY_OK; } -int CFileZillaApi::SetDebugLevel(int nDebugLevel) +int CFileZillaApi::Chmod(int nValue, CString FileName, const CServerPath &path /*=CServerPath()*/ ) { - //Check if call allowed - if (!m_bInitialized) - return FZ_REPLY_NOTINITIALIZED; - if (!m_pMainThread->SetDebugLevel(nDebugLevel)) - return FZ_REPLY_ERROR; + //Check if call allowed + if (!m_bInitialized) + return FZ_REPLY_NOTINITIALIZED; + if (IsConnected()==FZ_REPLY_NOTCONNECTED) + return FZ_REPLY_NOTCONNECTED; + if (IsBusy()==FZ_REPLY_BUSY) + return FZ_REPLY_BUSY; + if (FileName==L"") + return FZ_REPLY_INVALIDPARAM; - return FZ_REPLY_OK; + t_command command; + command.id=FZ_COMMAND_CHMOD; + command.param1=FileName; + command.param4=nValue; + command.path=path; + m_pMainThread->Command(command); + return m_pMainThread->LastOperationSuccessful()?FZ_REPLY_OK:FZ_REPLY_ERROR; } -#ifndef MPEXT_NO_CACHE -BOOL CFileZillaApi::DumpDirectoryCache(LPCTSTR pFileName) +void CFileZillaApi::SetDebugLevel(int nDebugLevel) { - CDirectoryCache cache; - return cache.Dump(pFileName); + m_pMainThread->GetIntern()->SetDebugLevel(nDebugLevel); } -#endif //CAsyncRequestData derived classes CAsyncRequestData::CAsyncRequestData() { - nRequestType = 0; - nRequestID = 0; - nRequestResult = 0; + nRequestType = 0; + nRequestID = 0; + nRequestResult = 0; } CAsyncRequestData::~CAsyncRequestData() @@ -903,37 +529,35 @@ CAsyncRequestData::~CAsyncRequestData() COverwriteRequestData::COverwriteRequestData() { - size1 = 0; - size2 = 0; - nRequestType=FZ_ASYNCREQUEST_OVERWRITE; - localtime=0; - remotetime.hasdate = false; - pTransferFile=0; + size1 = 0; + size2 = 0; + nRequestType=FZ_ASYNCREQUEST_OVERWRITE; + localtime=0; + remotetime.hasdate = false; + pTransferFile=0; } COverwriteRequestData::~COverwriteRequestData() { - delete pTransferFile; - delete localtime; + delete pTransferFile; + delete localtime; } -#ifndef MPEXT_NO_SSL CVerifyCertRequestData::CVerifyCertRequestData() { - nRequestType=FZ_ASYNCREQUEST_VERIFYCERT; - pCertData=0; + nRequestType=FZ_ASYNCREQUEST_VERIFYCERT; + pCertData=0; } CVerifyCertRequestData::~CVerifyCertRequestData() { - delete pCertData; + delete pCertData; } -#endif CNeedPassRequestData::CNeedPassRequestData() { - nRequestType=FZ_ASYNCREQUEST_NEEDPASS; - nOldOpState=0; + nRequestType=FZ_ASYNCREQUEST_NEEDPASS; + nOldOpState=0; } CNeedPassRequestData::~CNeedPassRequestData() @@ -943,7 +567,7 @@ CNeedPassRequestData::~CNeedPassRequestData() #ifndef MPEXT_NO_GSS CGssNeedPassRequestData::CGssNeedPassRequestData() { - nRequestType=FZ_ASYNCREQUEST_GSS_NEEDPASS; + nRequestType=FZ_ASYNCREQUEST_GSS_NEEDPASS; } CGssNeedPassRequestData::~CGssNeedPassRequestData() @@ -952,49 +576,10 @@ CGssNeedPassRequestData::~CGssNeedPassRequestData() CGssNeedUserRequestData::CGssNeedUserRequestData() { - nRequestType = FZ_ASYNCREQUEST_GSS_NEEDUSER; + nRequestType = FZ_ASYNCREQUEST_GSS_NEEDUSER; } CGssNeedUserRequestData::~CGssNeedUserRequestData() { } #endif - -#ifndef MPEXT_NO_SFTP -CNewHostKeyRequestData::CNewHostKeyRequestData() -{ - nRequestType=FZ_ASYNCREQUEST_NEWHOSTKEY; -} - -CNewHostKeyRequestData::~CNewHostKeyRequestData() -{ -} - -CChangedHostKeyRequestData::CChangedHostKeyRequestData() -{ - nRequestType=FZ_ASYNCREQUEST_CHANGEDHOSTKEY; -} - -CChangedHostKeyRequestData::~CChangedHostKeyRequestData() -{ -} -#endif - -BOOL CFileZillaApi::IsValid() const -{ - if (!this) - return FALSE; - if (IsBadWritePtr((VOID *)this, sizeof(CFileZillaApi)) ) - return FALSE; - if (IsBadWritePtr((VOID *)&m_bInitialized, sizeof(BOOL)) || - IsBadWritePtr((VOID *)&m_hOwnerWnd, sizeof(HWND)) || - IsBadWritePtr((VOID *)&m_nInternalMessageID, sizeof(unsigned int)) || - IsBadWritePtr((VOID *)&m_nReplyMessageID, sizeof(unsigned int)) || - IsBadWritePtr(m_pMainThread, sizeof(CMainThread)) ) - return FALSE; - - if (!m_pMainThread->IsValid()) - return FALSE; - - return TRUE; -} \ No newline at end of file diff --git a/source/filezilla/FileZillaApi.h b/source/filezilla/FileZillaApi.h index af174f0b..9dc7ec47 100644 --- a/source/filezilla/FileZillaApi.h +++ b/source/filezilla/FileZillaApi.h @@ -1,371 +1,268 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// FileZillaApi.h: Schnittstelle für die Klasse CFileZillaApi. -// -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_FILEZILLAAPI_H__F1970156_455F_4495_A813_4B676F0F03E5__INCLUDED_) -#define AFX_FILEZILLAAPI_H__F1970156_455F_4495_A813_4B676F0F03E5__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - +//--------------------------------------------------------------------------- +#ifndef FileZillaApiH +#define FileZillaApiH +//--------------------------------------------------------------------------- #include "FzApiStructures.h" #include "structures.h" -#ifndef MPEXT_NO_SSL #include "AsyncSslSocketLayer.h" -#endif - -//This structure holds the commands which will be processed by the api. -//You don't have to fill this struct, you may use the command specific -//functions which is easier. -//See below for a list of supported commands and their parameters. +//--------------------------------------------------------------------------- +// This structure holds the commands which will be processed by the api. +// You don't have to fill this struct, you may use the command specific +// functions which is easier. +// See below for a list of supported commands and their parameters. +//--------------------------------------------------------------------------- typedef struct { - int id; //Type of command, see below - CString param1; //Parameters for this command - CString param2; - int param4; - CServerPath path; - CServerPath newPath; //Used for rename - t_transferfile transferfile; - t_server server; + int id; // Type of command, see below + CString param1; // Parameters for this command + CString param2; + int param4; + CServerPath path; + CServerPath newPath; // Used for rename + t_transferfile transferfile; + t_server server; } t_command; - +//--------------------------------------------------------------------------- //Description of all api commands +//--------------------------------------------------------------------------- #define FZ_COMMAND_CONNECT 0x0001 -//Connects to the server passed in t_command::server -//Possible return values: -//FZ_REPLY_BUSY, FZ_REPLY_ERROR, FZ_REPLY_INVALIDPARAM, -//FZ_REPLY_NOTINITIALIZED, FZ_REPLY_OK, FZ_REPLY_WOULDBLOCK - +// Connects to the server passed in t_command::server +// Possible return values: +// FZ_REPLY_BUSY, FZ_REPLY_ERROR, FZ_REPLY_INVALIDPARAM, +// FZ_REPLY_NOTINITIALIZED, FZ_REPLY_OK, FZ_REPLY_WOULDBLOCK +//--------------------------------------------------------------------------- #define FZ_COMMAND_LIST 0x0002 -//Lists the contents of a directory. If no parameter is given, the current -//directory will be listed, else t_command::path specifies the directory -//which contents will be listed. t_command::param1 may specify the name -//of a direct child or parent directory (Use only the last path segment or -//".."). When the directory listing is successful, it will be sent to the -//owner window (see FZ_DATA_LIST) -//t_command::param4 controls the list mode. (See list modes section) -//Possible return values: -//FZ_REPLY_BUSY, FZ_REPLY_ERROR, FZ_REPLY_INVALIDPARAM, -//FZ_REPLY_NOTCONNECTED, FZ_REPLY_NOTINITIALIZED, FZ_REPLY_OK, -//FZ_REPLY_WOULDBLOCK - +// Lists the contents of a directory. If no parameter is given, the current +// directory will be listed, else t_command::path specifies the directory +// which contents will be listed. t_command::param1 may specify the name +// of a direct child or parent directory (Use only the last path segment or +// ".."). When the directory listing is successful, it will be sent to the +// owner window (see FZ_DATA_LIST) +// t_command::param4 controls the list mode. (See list modes section) +// Possible return values: +// FZ_REPLY_BUSY, FZ_REPLY_ERROR, FZ_REPLY_INVALIDPARAM, +// FZ_REPLY_NOTCONNECTED, FZ_REPLY_NOTINITIALIZED, FZ_REPLY_OK, +// FZ_REPLY_WOULDBLOCK +//--------------------------------------------------------------------------- #define FZ_COMMAND_FILETRANSFER 0x0004 -//Transfers the file specified with t_command::transferfile, see -//t_transferfile for detailed information -//Possible return values: -//FZ_REPLY_BUSY, FZ_REPLY_ERROR, FZ_REPLY_INVALIDPARAM, -//FZ_REPLY_NOTCONNECTED, FZ_REPLY_NOTINITIALIZED, FZ_REPLY_OK, -//FZ_REPLY_WOULDBLOCK - +// Transfers the file specified with t_command::transferfile, see +// t_transferfile for detailed information +// Possible return values: +// FZ_REPLY_BUSY, FZ_REPLY_ERROR, FZ_REPLY_INVALIDPARAM, +// FZ_REPLY_NOTCONNECTED, FZ_REPLY_NOTINITIALIZED, FZ_REPLY_OK, +// FZ_REPLY_WOULDBLOCK +//--------------------------------------------------------------------------- #define FZ_COMMAND_DISCONNECT 0x0008 #define FZ_COMMAND_CUSTOMCOMMAND 0x0010 -#define FZ_COMMAND_DELETE 0x0020 -#define FZ_COMMAND_REMOVEDIR 0x0040 -#define FZ_COMMAND_RENAME 0x0080 -#define FZ_COMMAND_MAKEDIR 0x0100 -#define FZ_COMMAND_CHMOD 0x0200 -#ifdef MPEXT -#define FZ_COMMAND_LISTFILE 0x0400 -#endif - +#define FZ_COMMAND_DELETE 0x0020 +#define FZ_COMMAND_REMOVEDIR 0x0040 +#define FZ_COMMAND_RENAME 0x0080 +#define FZ_COMMAND_MAKEDIR 0x0100 +#define FZ_COMMAND_CHMOD 0x0200 +#define FZ_COMMAND_LISTFILE 0x0400 +//--------------------------------------------------------------------------- #define FZ_MSG_OFFSET 16 #define FZ_MSG_OFFSETMASK 0xFFFF #define FZ_MSG_ID(x) ((x >> FZ_MSG_OFFSET) & FZ_MSG_OFFSETMASK) #define FZ_MSG_PARAM(x) ( x & FZ_MSG_OFFSETMASK) #define FZ_MSG_MAKEMSG(id, param) ((((DWORD)(id & FZ_MSG_OFFSETMASK)) << FZ_MSG_OFFSET) + (param & FZ_MSG_OFFSETMASK) ) - -#define FZ_MSG_REPLY 0 -#define FZ_MSG_LISTDATA 1 -#define FZ_MSG_SOCKETSTATUS 3 -#define FZ_MSG_SECURESERVER 4 -#define FZ_MSG_ASYNCREQUEST 5 -#define FZ_MSG_STATUS 6 -#define FZ_MSG_TRANSFERSTATUS 7 -#define FZ_MSG_QUITCOMPLETE 8 -#ifdef MPEXT -#define FZ_MSG_CAPABILITIES 9 -#endif - +//--------------------------------------------------------------------------- +#define FZ_MSG_REPLY 0 +#define FZ_MSG_LISTDATA 1 +#define FZ_MSG_ASYNCREQUEST 5 +#define FZ_MSG_STATUS 6 +#define FZ_MSG_TRANSFERSTATUS 7 +#define FZ_MSG_CAPABILITIES 9 +//--------------------------------------------------------------------------- #define FZ_ASYNCREQUEST_OVERWRITE 1 -#ifndef MPEXT_NO_SSL #define FZ_ASYNCREQUEST_VERIFYCERT 2 -#endif #ifndef MPEXT_NO_GSS #define FZ_ASYNCREQUEST_GSS_AUTHFAILED 3 #define FZ_ASYNCREQUEST_GSS_NEEDPASS 4 #endif -#ifndef MPEXT_NO_SFTP -#define FZ_ASYNCREQUEST_NEWHOSTKEY 5 -#define FZ_ASYNCREQUEST_CHANGEDHOSTKEY 6 -#define FZ_ASYNCREQUEST_KEYBOARDINTERACTIVE 7 -#endif #ifndef MPEXT_NO_GSS #define FZ_ASYNCREQUEST_GSS_NEEDUSER 8 #endif #define FZ_ASYNCREQUEST_NEEDPASS 10 - +//--------------------------------------------------------------------------- class CAsyncRequestData { public: - CAsyncRequestData(); - virtual ~CAsyncRequestData(); - int nRequestType; - __int64 nRequestID; //Unique for every request sent - int nRequestResult; + CAsyncRequestData(); + virtual ~CAsyncRequestData(); + int nRequestType; + __int64 nRequestID; //Unique for every request sent + int nRequestResult; }; - +//--------------------------------------------------------------------------- class COverwriteRequestData : public CAsyncRequestData { public: - COverwriteRequestData(); - virtual ~COverwriteRequestData(); - CString FileName1; - CString FileName2; - CString path1,path2; - __int64 size1; - __int64 size2; - CTime *localtime; - t_directory::t_direntry::t_date remotetime; - const t_transferfile *pTransferFile; + COverwriteRequestData(); + virtual ~COverwriteRequestData(); + CString FileName1; + CString FileName2; + CString path1,path2; + __int64 size1; + __int64 size2; + CTime * localtime; + t_directory::t_direntry::t_date remotetime; + const t_transferfile * pTransferFile; }; - -#ifndef MPEXT_NO_SSL +//--------------------------------------------------------------------------- class CVerifyCertRequestData : public CAsyncRequestData { public: - CVerifyCertRequestData(); - virtual ~CVerifyCertRequestData(); - t_SslCertData *pCertData; + CVerifyCertRequestData(); + virtual ~CVerifyCertRequestData(); + t_SslCertData * pCertData; }; -#endif - +//--------------------------------------------------------------------------- class CNeedPassRequestData : public CAsyncRequestData { public: - CNeedPassRequestData(); - virtual ~CNeedPassRequestData(); - CString Password; - int nOldOpState; + CNeedPassRequestData(); + virtual ~CNeedPassRequestData(); + CString Password; + int nOldOpState; }; - +//--------------------------------------------------------------------------- #ifndef MPEXT_NO_GSS class CGssNeedPassRequestData : public CAsyncRequestData { public: - CGssNeedPassRequestData(); - virtual ~CGssNeedPassRequestData(); - CString pass; - int nOldOpState; + CGssNeedPassRequestData(); + virtual ~CGssNeedPassRequestData(); + CString pass; + int nOldOpState; }; - +//--------------------------------------------------------------------------- class CGssNeedUserRequestData : public CAsyncRequestData { public: - CGssNeedUserRequestData(); - virtual ~CGssNeedUserRequestData(); - CString user; - int nOldOpState; + CGssNeedUserRequestData(); + virtual ~CGssNeedUserRequestData(); + CString user; + int nOldOpState; }; #endif - -#ifndef MPEXT_NO_SFTP -class CNewHostKeyRequestData : public CAsyncRequestData -{ -public: - CNewHostKeyRequestData(); - virtual ~CNewHostKeyRequestData(); - CString Hostkey; -}; - -class CChangedHostKeyRequestData : public CAsyncRequestData -{ -public: - CChangedHostKeyRequestData(); - virtual ~CChangedHostKeyRequestData(); - CString Hostkey; -}; - -class CKeyboardInteractiveRequestData : public CAsyncRequestData -{ -public: - char data[20480]; -}; -#endif - -#define FZ_SOCKETSTATUS_RECV 0 -#define FZ_SOCKETSTATUS_SEND 1 - +//--------------------------------------------------------------------------- #define FZAPI_OPTION_SHOWHIDDEN 1 - - +//--------------------------------------------------------------------------- #define FTP_CONNECT 0 // SERVER USER PASS PORT -#define FTP_COMMAND 1 //COMMAND - - - -#define FTP_LIST 2 //- - - - -#define FTP_FILETRANSFER 3 //TRANSFERFILE -#define FTP_DISCONNECT 4 //- - - - -#define FTP_RECONNECT 5 //- - - - -#ifndef MPEXT_NO_CACHE -#define FTP_LISTCACHE 6 //- - - - Directory listing may be read from cache -#endif -#define FTP_DELETE 7 //FILENAME -#define FTP_REMOVEDIR 8 //DIRNAME - -#define FZ_REPLY_OK 0x0001 -#define FZ_REPLY_WOULDBLOCK 0x0002 -#define FZ_REPLY_ERROR 0x0004 -#define FZ_REPLY_OWNERNOTSET 0x0008 -#define FZ_REPLY_INVALIDPARAM 0x0010 -#define FZ_REPLY_NOTCONNECTED 0x0020 -#define FZ_REPLY_ALREADYCONNECTED 0x0040 -#define FZ_REPLY_BUSY 0x0080 -#define FZ_REPLY_IDLE 0x0100 -#define FZ_REPLY_NOTINITIALIZED 0x0200 -#define FZ_REPLY_ALREADYINIZIALIZED 0x0400 -#define FZ_REPLY_CANCEL 0x0800 -#define FZ_REPLY_DISCONNECTED 0x1000 //Always sent when disconnected from server -#define FZ_REPLY_CRITICALERROR 0x2000 //Used for FileTransfers only -#define FZ_REPLY_ABORTED 0x4000 //Used for FileTransfers only -#define FZ_REPLY_NOTSUPPORTED 0x8000 //Command is not supported for the current server - -#define FZ_LIST_USECACHE 0x0001 -#define FZ_LIST_FORCECACHE 0x0002 -#define FZ_LIST_REALCHANGE 0x0004 -#define FZ_LIST_EXACT 0x0008 - -//Additional replies +#define FTP_COMMAND 1 // COMMAND - - - +#define FTP_LIST 2 // - - - - +#define FTP_FILETRANSFER 3 // TRANSFERFILE +#define FTP_DISCONNECT 4 // - - - - +#define FTP_RECONNECT 5 // - - - - +#define FTP_DELETE 7 // FILENAME +#define FTP_REMOVEDIR 8 // DIRNAME +//--------------------------------------------------------------------------- +#define FZ_REPLY_OK 0x0001 +#define FZ_REPLY_WOULDBLOCK 0x0002 +#define FZ_REPLY_ERROR 0x0004 +#define FZ_REPLY_OWNERNOTSET 0x0008 +#define FZ_REPLY_INVALIDPARAM 0x0010 +#define FZ_REPLY_NOTCONNECTED 0x0020 +#define FZ_REPLY_ALREADYCONNECTED 0x0040 +#define FZ_REPLY_BUSY 0x0080 +#define FZ_REPLY_IDLE 0x0100 +#define FZ_REPLY_NOTINITIALIZED 0x0200 +#define FZ_REPLY_ALREADYINIZIALIZED 0x0400 +#define FZ_REPLY_CANCEL 0x0800 +#define FZ_REPLY_DISCONNECTED 0x1000 // Always sent when disconnected from server +#define FZ_REPLY_CRITICALERROR 0x2000 // Used for FileTransfers only +#define FZ_REPLY_ABORTED 0x4000 // Used for FileTransfers only +#define FZ_REPLY_NOTSUPPORTED 0x8000 // Command is not supported for the current server +//--------------------------------------------------------------------------- +// Additional replies #define FZ_REPLY_NOTBUSY FZ_REPLY_IDLE - - -//Servertypes - -//General types - +//--------------------------------------------------------------------------- +// Servertypes +// General types #define FZ_SERVERTYPE_HIGHMASK 0xF000 -#define FZ_SERVERTYPE_SUBMASK 0x00FF +#define FZ_SERVERTYPE_SUBMASK 0x00FF #define FZ_SERVERTYPE_LAYERMASK 0x0FF0 -#define FZ_SERVERTYPE_FTP 0x1000 -#define FZ_SERVERTYPE_LOCAL 0x2000 +#define FZ_SERVERTYPE_FTP 0x1000 +#define FZ_SERVERTYPE_LOCAL 0x2000 -#ifndef MPEXT_NO_SSL #define FZ_SERVERTYPE_LAYER_SSL_IMPLICIT 0x0100 #define FZ_SERVERTYPE_LAYER_SSL_EXPLICIT 0x0200 #define FZ_SERVERTYPE_LAYER_TLS_EXPLICIT 0x0400 -#endif - -#define FZ_SERVERTYPE_SUB_FTP_VMS 0x0001 -#define FZ_SERVERTYPE_SUB_FTP_SFTP 0x0002 -#define FZ_SERVERTYPE_SUB_FTP_WINDOWS 0x0004 -#define FZ_SERVERTYPE_SUB_FTP_MVS 0x0010 -#define FZ_SERVERTYPE_SUB_FTP_BS2000 0x0020 -//Log messages +#define FZ_SERVERTYPE_SUB_FTP_VMS 0x0001 +#define FZ_SERVERTYPE_SUB_FTP_SFTP 0x0002 +#define FZ_SERVERTYPE_SUB_FTP_WINDOWS 0x0004 +#define FZ_SERVERTYPE_SUB_FTP_MVS 0x0010 +#define FZ_SERVERTYPE_SUB_FTP_BS2000 0x0020 +//--------------------------------------------------------------------------- +// Log messages #define FZ_LOG_STATUS 0 #define FZ_LOG_ERROR 1 #define FZ_LOG_COMMAND 2 #define FZ_LOG_REPLY 3 #define FZ_LOG_LIST 4 -//By calling CFileZillaApi::SetDebugLevel, the aplication can enable logging of the following messages: +// By calling CFileZillaApi::SetDebugLevel, the aplication can enable logging of the following messages: #define FZ_LOG_APIERROR 5 #define FZ_LOG_WARNING 6 #define FZ_LOG_PROGRESS 7 #define FZ_LOG_INFO 8 #define FZ_LOG_DEBUG 9 - +//--------------------------------------------------------------------------- class CMainThread; class CFileZillaTools; -class CFileZillaApi +//--------------------------------------------------------------------------- +class CFileZillaApi { public: - BOOL IsValid() const; -#ifndef MPEXT - int GetOption( int nOption, int &value ); - int SetOption( int nOption, int value ); -#endif - int SetDebugLevel( int nDebugLevel ); + CFileZillaApi(); + virtual ~CFileZillaApi(); - int CustomCommand(CString command); - int Delete(CString FileName, const CServerPath &path = CServerPath()); - int RemoveDir(CString DirName, const CServerPath &path = CServerPath()); - int Rename(CString oldName,CString newName, const CServerPath &path = CServerPath(), const CServerPath &newPath = CServerPath()); - int MakeDir(const CServerPath &path); - - - //Functions to reply to async requests + void SetDebugLevel(int nDebugLevel); - //General reply function - int SetAsyncRequestResult(int nAction, CAsyncRequestData *pData); - - int Command(t_command *pCommand); - int Disconnect(); - void Destroy(); - int Cancel(); - int Chmod(int nValue, CString FileName, const CServerPath &path = CServerPath()); - CFileZillaApi(); - virtual ~CFileZillaApi(); - //Initialization -#ifndef MPEXT - int Init(HWND hOwnerWnd, int nReplyMessageID = 0); -#else - int Init(CApiLog * pParent, CFileZillaTools * pTools); -#endif - unsigned int GetMessageID(); + int CustomCommand(CString command); + int Delete(CString FileName, const CServerPath & path = CServerPath()); + int RemoveDir(CString DirName, const CServerPath & path = CServerPath()); + int Rename(CString oldName, CString newName, const CServerPath & path = CServerPath(), const CServerPath & newPath = CServerPath()); + int MakeDir(const CServerPath & path); - //Status - int IsConnected(); - int IsBusy(); - - //Operations - int Connect(const t_server& server); - - int List(int nListMode=FZ_LIST_USECACHE); //Lists current folder - int List(const CServerPath& path, int nListMode=FZ_LIST_USECACHE); - int List(const CServerPath& parent, CString dirname, int nListMode=FZ_LIST_USECACHE); + // General async request reply function + int SetAsyncRequestResult(int nAction, CAsyncRequestData * pData); - int ListFile(CString FileName, const CServerPath & path); //Get info about specified file + int Disconnect(); + int Cancel(); + int Chmod(int nValue, CString FileName, const CServerPath & path = CServerPath()); - int FileTransfer(const t_transferfile &TransferFile); - int GetCurrentServer(t_server &server); - -#ifdef MPEXT - int SetCurrentPath(CServerPath path); - int GetCurrentPath(CServerPath & path); - bool UsingMlsd(); - bool UsingUtf8(); - std::string GetTlsVersionStr(); - std::string GetCipherName(); -#endif + //Initialization + int Init(TFileZillaIntern * Intern, CFileZillaTools * pTools); + + // Operations + int Connect(const t_server & server); + + int List(); + int List(const CServerPath & path); + + int ListFile(CString FileName, const CServerPath & path); //Get info about specified file + + int FileTransfer(const t_transferfile & TransferFile); + int GetCurrentServer(t_server & server); + + int SetCurrentPath(CServerPath path); + int GetCurrentPath(CServerPath & path); + bool UsingMlsd(); + bool UsingUtf8(); + std::string GetTlsVersionStr(); + std::string GetCipherName(); -#ifndef MPEXT_NO_CACHE - //Debugging functions - static BOOL DumpDirectoryCache(LPCTSTR pFileName); -#endif protected: - CMainThread* m_pMainThread; - unsigned int m_nInternalMessageID; - BOOL m_bInitialized; - unsigned int m_nReplyMessageID; - HWND m_hOwnerWnd; -}; + CMainThread * m_pMainThread; + unsigned int m_nInternalMessageID; + BOOL m_bInitialized; -#endif // !defined(AFX_FILEZILLAAPI_H__F1970156_455F_4495_A813_4B676F0F03E5__INCLUDED_) \ No newline at end of file + void Destroy(); + int IsBusy(); + int IsConnected(); +}; +//--------------------------------------------------------------------------- +#endif // FileZillaApiH diff --git a/source/filezilla/FileZillaIntern.cpp b/source/filezilla/FileZillaIntern.cpp index 9a26b5b5..21902a84 100644 --- a/source/filezilla/FileZillaIntern.cpp +++ b/source/filezilla/FileZillaIntern.cpp @@ -9,16 +9,11 @@ TFileZillaIntern::TFileZillaIntern(TFileZillaIntf * AOwner) : FOwner(AOwner) { - // not being initialied by CApiLog - m_nLogMessage = 0; + FDebugLevel = 0; } //--------------------------------------------------------------------------- -BOOL TFileZillaIntern::PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, - LPARAM lParam) const +bool TFileZillaIntern::PostMessage(WPARAM wParam, LPARAM lParam) const { - ASSERT(hWnd == NULL); - ASSERT(Msg == 0); - bool Result; unsigned int MessageID = FZ_MSG_ID(wParam); @@ -33,28 +28,32 @@ BOOL TFileZillaIntern::PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, Result = FOwner->PostMessage(wParam, lParam); break; - // ignored for performace - case FZ_MSG_SOCKETSTATUS: - Result = false; - break; - - // ignore - // not useful. although FTP allows switching between secure and unsecure - // connection during session, filezilla does not support it, - // so we are either secure or not for whole session - case FZ_MSG_SECURESERVER: - ASSERT(lParam == 0); - Result = false; - break; - - // should never get here, call compiled out in filezilla code - case FZ_MSG_QUITCOMPLETE: default: - ASSERT(FALSE); + DebugFail(); Result = false; break; } - return (Result ? TRUE : FALSE); + return Result; +} +//--------------------------------------------------------------------------- +CString TFileZillaIntern::GetOption(int OptionID) const +{ + return FOwner->Option(OptionID); +} +//--------------------------------------------------------------------------- +int TFileZillaIntern::GetOptionVal(int OptionID) const +{ + return FOwner->OptionVal(OptionID); +} +//--------------------------------------------------------------------------- +int TFileZillaIntern::GetDebugLevel() const +{ + return FDebugLevel; +} +//--------------------------------------------------------------------------- +void TFileZillaIntern::SetDebugLevel(int DebugLevel) +{ + FDebugLevel = DebugLevel; } //--------------------------------------------------------------------------- diff --git a/source/filezilla/FileZillaIntern.h b/source/filezilla/FileZillaIntern.h index 3446b669..ed88bf09 100644 --- a/source/filezilla/FileZillaIntern.h +++ b/source/filezilla/FileZillaIntern.h @@ -4,17 +4,23 @@ //--------------------------------------------------------------------------- class TFileZillaIntf; //--------------------------------------------------------------------------- -class TFileZillaIntern : public CApiLog +class TFileZillaIntern { public: TFileZillaIntern(TFileZillaIntf * AOwner); - virtual BOOL PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) const; + bool PostMessage(WPARAM wParam, LPARAM lParam) const; + CString GetOption(int OptionID) const; + int GetOptionVal(int OptionID) const; inline const TFileZillaIntf * GetOwner() const { return FOwner; } + int GetDebugLevel() const; + void SetDebugLevel(int DebugLevel); + protected: TFileZillaIntf * FOwner; + int FDebugLevel; }; //--------------------------------------------------------------------------- #endif // FileZillaInternH diff --git a/source/filezilla/FileZillaIntf.cpp b/source/filezilla/FileZillaIntf.cpp index 337b1f58..33500e76 100644 --- a/source/filezilla/FileZillaIntf.cpp +++ b/source/filezilla/FileZillaIntf.cpp @@ -39,7 +39,7 @@ __fastcall TFileZillaIntf::TFileZillaIntf() : //--------------------------------------------------------------------------- __fastcall TFileZillaIntf::~TFileZillaIntf() { - ASSERT(FFileZillaApi == NULL); + DebugAssert(FFileZillaApi == NULL); delete FIntern; FIntern = NULL; @@ -49,7 +49,7 @@ __fastcall TFileZillaIntf::~TFileZillaIntf() //--------------------------------------------------------------------------- bool __fastcall TFileZillaIntf::Init() { - ASSERT(FFileZillaApi == NULL); + DebugAssert(FFileZillaApi == NULL); FFileZillaApi = new CFileZillaApi(); @@ -75,7 +75,7 @@ void __fastcall TFileZillaIntf::Destroying() //--------------------------------------------------------------------------- bool __fastcall TFileZillaIntf::SetCurrentPath(const wchar_t * APath) { - ASSERT(FFileZillaApi != NULL); + DebugAssert(FFileZillaApi != NULL); CServerPath Path(APath); return Check(FFileZillaApi->SetCurrentPath(Path), L"setcurrentpath"); } @@ -94,18 +94,19 @@ bool __fastcall TFileZillaIntf::GetCurrentPath(wchar_t * Path, size_t MaxLen) //--------------------------------------------------------------------------- bool __fastcall TFileZillaIntf::Cancel() { - ASSERT(FFileZillaApi != NULL); + DebugAssert(FFileZillaApi != NULL); // tolerate even "idle" state, quite possible in MT environment return Check(FFileZillaApi->Cancel(), L"cancel", FZ_REPLY_WOULDBLOCK | FZ_REPLY_IDLE); } //--------------------------------------------------------------------------- bool __fastcall TFileZillaIntf::Connect(const wchar_t * Host, int Port, const wchar_t * User, - const wchar_t * Pass, const wchar_t * Account, bool FwByPass, + const wchar_t * Pass, const wchar_t * Account, const wchar_t * Path, int ServerType, int Pasv, int TimeZoneOffset, int UTF8, - int iForcePasvIp, int iUseMlsd) + int iForcePasvIp, int iUseMlsd, + X509 * Certificate, EVP_PKEY * PrivateKey) { - ASSERT(FFileZillaApi != NULL); - ASSERT((ServerType & FZ_SERVERTYPE_HIGHMASK) == FZ_SERVERTYPE_FTP); + DebugAssert(FFileZillaApi != NULL); + DebugAssert((ServerType & FZ_SERVERTYPE_HIGHMASK) == FZ_SERVERTYPE_FTP); t_server Server; @@ -114,7 +115,6 @@ bool __fastcall TFileZillaIntf::Connect(const wchar_t * Host, int Port, const wc Server.user = User; Server.pass = Pass; Server.account = Account; - Server.fwbypass = FwByPass; Server.path = Path; Server.nServerType = ServerType; Server.nPasv = Pasv; @@ -122,6 +122,8 @@ bool __fastcall TFileZillaIntf::Connect(const wchar_t * Host, int Port, const wc Server.nUTF8 = UTF8; Server.iForcePasvIp = iForcePasvIp; Server.iUseMlsd = iUseMlsd; + Server.Certificate = Certificate; + Server.PrivateKey = PrivateKey; *FServer = Server; @@ -167,13 +169,13 @@ bool __fastcall TFileZillaIntf::Close(bool AllowBusy) //--------------------------------------------------------------------------- bool __fastcall TFileZillaIntf::CustomCommand(const wchar_t * Command) { - ASSERT(FFileZillaApi != NULL); + DebugAssert(FFileZillaApi != NULL); return Check(FFileZillaApi->CustomCommand(Command), L"customcommand"); } //--------------------------------------------------------------------------- bool __fastcall TFileZillaIntf::MakeDir(const wchar_t* APath) { - ASSERT(FFileZillaApi != NULL); + DebugAssert(FFileZillaApi != NULL); CServerPath Path(APath); return Check(FFileZillaApi->MakeDir(Path), L"makedir"); } @@ -181,21 +183,21 @@ bool __fastcall TFileZillaIntf::MakeDir(const wchar_t* APath) bool __fastcall TFileZillaIntf::Chmod(int Value, const wchar_t* FileName, const wchar_t* APath) { - ASSERT(FFileZillaApi != NULL); + DebugAssert(FFileZillaApi != NULL); CServerPath Path(APath); return Check(FFileZillaApi->Chmod(Value, FileName, Path), L"chmod"); } //--------------------------------------------------------------------------- bool __fastcall TFileZillaIntf::Delete(const wchar_t* FileName, const wchar_t* APath) { - ASSERT(FFileZillaApi != NULL); + DebugAssert(FFileZillaApi != NULL); CServerPath Path(APath); return Check(FFileZillaApi->Delete(FileName, Path), L"delete"); } //--------------------------------------------------------------------------- bool __fastcall TFileZillaIntf::RemoveDir(const wchar_t* FileName, const wchar_t* APath) { - ASSERT(FFileZillaApi != NULL); + DebugAssert(FFileZillaApi != NULL); CServerPath Path(APath); return Check(FFileZillaApi->RemoveDir(FileName, Path), L"removedir"); } @@ -203,7 +205,7 @@ bool __fastcall TFileZillaIntf::RemoveDir(const wchar_t* FileName, const wchar_t bool __fastcall TFileZillaIntf::Rename(const wchar_t* OldName, const wchar_t* NewName, const wchar_t* APath, const wchar_t* ANewPath) { - ASSERT(FFileZillaApi != NULL); + DebugAssert(FFileZillaApi != NULL); CServerPath Path(APath); CServerPath NewPath(ANewPath); return Check(FFileZillaApi->Rename(OldName, NewName, Path, NewPath), L"rename"); @@ -211,25 +213,23 @@ bool __fastcall TFileZillaIntf::Rename(const wchar_t* OldName, //--------------------------------------------------------------------------- bool __fastcall TFileZillaIntf::List() { - ASSERT(FFileZillaApi != NULL); + DebugAssert(FFileZillaApi != NULL); return Check(FFileZillaApi->List(), L"list"); } //--------------------------------------------------------------------------- bool __fastcall TFileZillaIntf::List(const wchar_t * APath) { - ASSERT(FFileZillaApi != NULL); + DebugAssert(FFileZillaApi != NULL); CServerPath Path(APath); return Check(FFileZillaApi->List(Path), L"list"); } //--------------------------------------------------------------------------- -#ifdef MPEXT bool __fastcall TFileZillaIntf::ListFile(const wchar_t * FileName, const wchar_t * APath) { - ASSERT(FFileZillaApi != NULL); + DebugAssert(FFileZillaApi != NULL); CServerPath Path(APath); return Check(FFileZillaApi->ListFile(FileName, Path), L"listfile"); } -#endif //--------------------------------------------------------------------------- bool __fastcall TFileZillaIntf::FileTransfer(const wchar_t * LocalFile, const wchar_t * RemoteFile, const wchar_t * RemotePath, bool Get, __int64 Size, @@ -321,9 +321,9 @@ bool __fastcall TFileZillaIntf::HandleMessage(WPARAM wParam, LPARAM lParam) { case FZ_MSG_STATUS: { - ASSERT(FZ_MSG_PARAM(wParam) == 0); + DebugAssert(FZ_MSG_PARAM(wParam) == 0); t_ffam_statusmessage * Status = (t_ffam_statusmessage *)lParam; - ASSERT(Status->post); + DebugAssert(Status->post); Result = HandleStatus(Status->status, Status->type); delete Status; } @@ -338,7 +338,7 @@ bool __fastcall TFileZillaIntf::HandleMessage(WPARAM wParam, LPARAM lParam) COverwriteRequestData * Data = (COverwriteRequestData *)lParam; try { - ASSERT(Data != NULL); + DebugAssert(Data != NULL); wcsncpy(FileName1, Data->FileName1, LENOF(FileName1)); FileName1[LENOF(FileName1) - 1] = L'\0'; TRemoteFileTime RemoteTime; @@ -370,7 +370,7 @@ bool __fastcall TFileZillaIntf::HandleMessage(WPARAM wParam, LPARAM lParam) CVerifyCertRequestData * AData = (CVerifyCertRequestData *)lParam; try { - ASSERT(AData != NULL); + DebugAssert(AData != NULL); TFtpsCertificateData Data; CopyContact(Data.Subject, AData->pCertData->subject); CopyContact(Data.Issuer, AData->pCertData->issuer); @@ -430,14 +430,14 @@ bool __fastcall TFileZillaIntf::HandleMessage(WPARAM wParam, LPARAM lParam) // FZ_ASYNCREQUEST_GSS_AUTHFAILED // FZ_ASYNCREQUEST_GSS_NEEDUSER // FZ_ASYNCREQUEST_GSS_NEEDPASS - ASSERT(FALSE); + DebugFail(); Result = false; } break; case FZ_MSG_LISTDATA: { - ASSERT(FZ_MSG_PARAM(wParam) == 0); + DebugAssert(FZ_MSG_PARAM(wParam) == 0); t_directory * Directory = (t_directory *)lParam; CString Path = Directory->path.GetPath(); std::vector Entries(Directory->num); @@ -468,18 +468,17 @@ bool __fastcall TFileZillaIntf::HandleMessage(WPARAM wParam, LPARAM lParam) case FZ_MSG_TRANSFERSTATUS: { - ASSERT(FZ_MSG_PARAM(wParam) == 0); + DebugAssert(FZ_MSG_PARAM(wParam) == 0); t_ffam_transferstatus * Status = (t_ffam_transferstatus *)lParam; if (Status != NULL) { - Result = HandleTransferStatus(true, Status->transfersize, Status->bytes, - Status->percent, Status->timeelapsed, Status->timeleft, - Status->transferrate, Status->bFileTransfer); + Result = HandleTransferStatus( + true, Status->transfersize, Status->bytes, Status->bFileTransfer); delete Status; } else { - Result = HandleTransferStatus(false, -1, -1, -1, -1, -1, -1, false); + Result = HandleTransferStatus(false, -1, -1, false); } } break; @@ -492,11 +491,8 @@ bool __fastcall TFileZillaIntf::HandleMessage(WPARAM wParam, LPARAM lParam) Result = HandleCapabilities((TFTPServerCapabilities *)lParam); break; - case FZ_MSG_SOCKETSTATUS: - case FZ_MSG_SECURESERVER: - case FZ_MSG_QUITCOMPLETE: default: - ASSERT(false); + DebugFail(); Result = false; break; } @@ -541,4 +537,3 @@ std::string __fastcall TFileZillaIntf::GetCipherName() { return FFileZillaApi->GetCipherName(); } - diff --git a/source/filezilla/FileZillaIntf.h b/source/filezilla/FileZillaIntf.h index 7b9030cd..0b829764 100644 --- a/source/filezilla/FileZillaIntf.h +++ b/source/filezilla/FileZillaIntf.h @@ -87,6 +87,8 @@ struct TNeedPassRequestData //--------------------------------------------------------------------------- class t_server; class TFTPServerCapabilities; +typedef struct x509_st X509; +typedef struct evp_pkey_st EVP_PKEY; //--------------------------------------------------------------------------- class TFileZillaIntf : public CFileZillaTools { @@ -116,12 +118,10 @@ friend class TFileZillaIntern; enum { FILEEXISTS_OVERWRITE = 0, - // 1 is FILEEXISTS_OVERWRITEIFNEWER what we do not use - FILEEXISTS_RESUME = 2, - FILEEXISTS_RENAME = 3, - FILEEXISTS_SKIP = 4, - // 5 is FILEEXISTS_RESUME_ASKONFAIL what we do not use - FILEEXISTS_COMPLETE = 6, + FILEEXISTS_RESUME = 1, + FILEEXISTS_RENAME = 2, + FILEEXISTS_SKIP = 3, + FILEEXISTS_COMPLETE = 4, }; enum @@ -173,16 +173,15 @@ friend class TFileZillaIntern; bool __fastcall Cancel(); bool __fastcall Connect(const wchar_t * Host, int Port, const wchar_t * User, - const wchar_t * Pass, const wchar_t * Account, bool FwByPass, + const wchar_t * Pass, const wchar_t * Account, const wchar_t * Path, int ServerType, int Pasv, int TimeZoneOffset, int UTF8, - int iForcePasvIp, int iUseMlsd); + int iForcePasvIp, int iUseMlsd, + X509 * Certificate, EVP_PKEY * PrivateKey); bool __fastcall Close(bool AllowBusy); bool __fastcall List(); bool __fastcall List(const wchar_t * Path); -#ifdef MPEXT bool __fastcall ListFile(const wchar_t * FileName, const wchar_t * APath); -#endif bool __fastcall CustomCommand(const wchar_t * Command); @@ -219,8 +218,7 @@ friend class TFileZillaIntern; virtual bool __fastcall HandleListData(const wchar_t * Path, const TListDataEntry * Entries, unsigned int Count) = 0; virtual bool __fastcall HandleTransferStatus(bool Valid, __int64 TransferSize, - __int64 Bytes, int Percent, int TimeElapsed, int TimeLeft, int TransferRate, - bool FileTransfer) = 0; + __int64 Bytes, bool FileTransfer) = 0; virtual bool __fastcall HandleReply(int Command, unsigned int Reply) = 0; virtual bool __fastcall HandleCapabilities(TFTPServerCapabilities * ServerCapabilities) = 0; virtual bool __fastcall CheckError(int ReturnCode, const wchar_t * Context); @@ -233,8 +231,6 @@ friend class TFileZillaIntern; t_server * FServer; }; //--------------------------------------------------------------------------- -#ifdef MPEXT -//--------------------------------------------------------------------------- enum ftp_capabilities_t { unknown, @@ -291,6 +287,5 @@ class TFTPServerCapabilities std::map FCapabilityMap; }; -#endif //--------------------------------------------------------------------------- #endif // FileZillaIntfH diff --git a/source/filezilla/FileZillaOpt.h b/source/filezilla/FileZillaOpt.h index 97fde68e..4a0c5072 100644 --- a/source/filezilla/FileZillaOpt.h +++ b/source/filezilla/FileZillaOpt.h @@ -12,152 +12,34 @@ #define OPTION_KEEPALIVE 8 #define OPTION_INTERVALLOW 9 #define OPTION_INTERVALHIGH 10 -#ifndef MPEXT -#define OPTION_NUMRETRIES 11 -#define OPTION_RETRYDELAY 12 -#define OPTION_LASTSERVERHOST 13 -#define OPTION_LASTSERVERPORT 14 -#define OPTION_LASTSERVERUSER 15 -#define OPTION_LASTSERVERPASS 16 -#endif #define OPTION_PROXYTYPE 17 #define OPTION_PROXYHOST 18 #define OPTION_PROXYPORT 19 #define OPTION_PROXYUSER 20 #define OPTION_PROXYPASS 21 #define OPTION_PROXYUSELOGON 22 -#ifndef MPEXT -#define OPTION_LASTSERVERPATH 23 -#define OPTION_LASTSERVERFWBYPASS 24 -#define OPTION_LANGUAGE 25 -#define OPTION_DEFAULTFOLDERTYPE 26 -#define OPTION_DEFAULTFOLDER 27 -#define OPTION_TRANSFERMODE 28 -#define OPTION_ASCIIFILES 29 -#define OPTION_SHOWNOLABEL 30 -#define OPTION_SHOWNOTOOLBAR 31 -#define OPTION_SHOWNOQUICKCONNECTBAR 32 -#define OPTION_SHOWNOSTATUSBAR 33 -#define OPTION_SHOWNOMESSAGELOG 34 -#define OPTION_SHOWNOTREEVIEW 35 -#define OPTION_SHOWNOQUEUE 36 -#define OPTION_REMEMBERVIEWS 37 -#define OPTION_LOCALLISTVIEWSTYLE 38 -#define OPTION_HIDELOCALCOLUMNS 39 -#define OPTION_REMOTELISTVIEWSTYLE 40 -#define OPTION_HIDEREMOTECOLUMNS 41 -#define OPTION_SHOWSITEMANAGERONSTARTUP 42 -#endif #ifndef MPEXT_NO_GSS #define OPTION_USEGSS 43 #define OPTION_GSSSERVERS 44 #endif -#ifndef MPEXT -#define OPTION_LASTSERVERDONTREMEMBERPASS 45 -#define OPTION_REMEMBERLASTWINDOWPOS 46 -#define OPTION_LASTWINDOWPOS 47 -#define OPTION_DEBUGTRACE 48 -#endif #define OPTION_DEBUGSHOWLISTING 49 -#ifndef MPEXT -#define OPTION_DEBUGLOGTOFILE 50 -#define OPTION_DEBUGLOGFILE 51 -#endif #define OPTION_LIMITPORTRANGE 52 #define OPTION_PORTRANGELOW 53 #define OPTION_PORTRANGEHIGH 54 -#ifndef MPEXT -#define OPTION_REMEMBERLOCALVIEW 55 -#define OPTION_REMEMBERREMOTEVIEW 56 -#define OPTION_LASTSPLITTERSIZE 57 -#endif -#ifndef MPEXT_NO_CACHE -#define OPTION_USECACHE 58 -#define OPTION_MAXCACHETIME 59 -#endif -#ifndef MPEXT -#define OPTION_LASTSERVERTYPE 60 -#define OPTION_MINIMIZETOTRAY 61 -#define OPTION_SHOWREMOTETREEVIEW 62 -#define OPTION_REMEMBERLOCALCOLUMNWIDTHS 63 -#define OPTION_REMEMBERREMOTECOLUMNWIDTHS 64 -#define OPTION_LOCALCOLUMNWIDTHS 65 -#define OPTION_REMOTECOLUMNWIDTHS 66 -#define OPTION_LOCALFILESIZEFORMAT 67 -#define OPTION_REMOTEFILESIZEFORMAT 68 -#define OPTION_LASTSERVERNAME 69 -#endif #define OPTION_PRESERVEDOWNLOADFILETIME 70 -#ifndef MPEXT -#define OPTION_RUNINSECUREMODE 71 -#define OPTION_VIEWEDITDEFAULT 72 -#define OPTION_VIEWEDITCUSTOM 73 -#define OPTION_ALWAYSSHOWHIDDEN 74 -#define OPTION_TRANSFERPRIMARYMAXSIZE 75 -#define OPTION_ENABLEDEBUGMENU 76 -#define OPTION_TRANSFERAPICOUNT 77 -#define OPTION_USEREGISTRY 78 -#define OPTION_TRANSFERUSEMULTIPLE 79 -#endif -#ifndef MPEXT_NO_IDENT -#define OPTION_IDENT 80 -#define OPTION_IDENTCONNECT 81 -#define OPTION_IDENTSAMEIP 82 -#define OPTION_IDENTSYSTEM 83 -#define OPTION_IDENTUSER 84 -#endif -#ifndef MPEXT -#define OPTION_FILEEXISTSACTION 85 -#endif #define OPTION_SPEEDLIMIT_DOWNLOAD_TYPE 86 #define OPTION_SPEEDLIMIT_UPLOAD_TYPE 87 #define OPTION_SPEEDLIMIT_DOWNLOAD_VALUE 88 #define OPTION_SPEEDLIMIT_UPLOAD_VALUE 89 -#ifndef MPEXT_NO_SPEED_LIM_RULES -#define OPTION_SPEEDLIMIT_DOWNLOAD_RULES 90 -#define OPTION_SPEEDLIMIT_UPLOAD_RULES 91 -#endif -#ifndef MPEXT -#define OPTION_SORTSITEMANAGERFOLDERSFIRST 92 -#define OPTION_SITEMANAGERNOEXPANDFOLDERS 93 -#define OPTION_SHOWLOCALSTATUSBAR 94 -#define OPTION_SHOWREMOTESTATUSBAR 95 -#define OPTION_LOCALCOLUMNSORT 96 -#define OPTION_REMOTECOLUMNSORT 97 -#define OPTION_SSHUSECOMPRESSION 98 -#define OPTION_SSHPROTOCOL 99 -#endif #define OPTION_TRANSFERIP 100 -#ifndef MPEXT -#define OPTION_LOCAL_DOUBLECLICK_ACTION 101 -#define OPTION_REMOTE_DOUBLECLICK_ACTION 102 -#define OPTION_LOCALTREEVIEWLOCATION 103 -#define OPTION_REMOTETREEVIEWLOCATION 104 -#define OPTION_LASTSERVERTRANSFERMODE 105 -#define OPTION_MESSAGELOG_USECUSTOMFONT 106 -#define OPTION_MESSAGELOG_FONTNAME 107 -#define OPTION_MESSAGELOG_FONTSIZE 108 -#define OPTION_PANELAYOUT_SWITCHLAYOUT 109 -#endif #ifdef MPEXT_NO_ZLIB #define OPTION_MODEZ_USE 110 #define OPTION_MODEZ_LEVEL 111 #endif #define OPTION_TRANSFERIP6 112 #define OPTION_ENABLE_IPV6 113 -#ifndef MPEXT -#define OPTION_LOGTIMESTAMPS 114 -#endif #define OPTION_VMSALLREVISIONS 115 -#ifndef MPEXT -#define OPTION_LASTSERVERUTF8 116 -#endif #define OPTION_ANONPWD 117 -#ifndef MPEXT -#define OPTION_LASTSERVERACCOUNT 118 -#define OPTION_LASTSERVERTIMEZONE 119 -#endif -// MPEXT #define OPTION_MPEXT_SHOWHIDDEN 1000 #define OPTION_MPEXT_PRESERVEUPLOADFILETIME 1001 #define OPTION_MPEXT_SSLSESSIONREUSE 1002 diff --git a/source/filezilla/FilezillaTools.h b/source/filezilla/FilezillaTools.h index 2ba1ce5a..66051a3d 100644 --- a/source/filezilla/FilezillaTools.h +++ b/source/filezilla/FilezillaTools.h @@ -12,4 +12,4 @@ class CFileZillaTools virtual wchar_t * LastSysErrorMessage() = 0; }; //--------------------------------------------------------------------------- -#endif // FileZillaToolsH \ No newline at end of file +#endif // FileZillaToolsH diff --git a/source/filezilla/FtpControlSocket.cpp b/source/filezilla/FtpControlSocket.cpp index 7051ebbb..9829a043 100644 --- a/source/filezilla/FtpControlSocket.cpp +++ b/source/filezilla/FtpControlSocket.cpp @@ -1,169 +1,133 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// CFtpControlSocket.cpp: Implementierungsdatei -// - +//--------------------------------------------------------------------------- #include "stdafx.h" #include "FtpControlSocket.h" #include "mainthread.h" #include "transfersocket.h" -#ifndef MPEXT -#include "fileexistsdlg.h" -#endif #include "asyncproxysocketlayer.h" -#ifndef MPEXT_NO_SSL #include "AsyncSslSocketLayer.h" -#endif #ifndef MPEXT_NO_GSS #include "AsyncGssSocketLayer.h" #endif #include "filezillaapi.h" -#include "misc/utf8.h" -#ifdef MPEXT -#endif - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif +#include class CFtpControlSocket::CFileTransferData : public CFtpControlSocket::t_operation::COpData { public: - CFileTransferData() - { - pDirectoryListing=0; - nGotTransferEndReply=0; - nWaitNextOpState=0; - nMKDOpState=-1; - hasRemoteDate = false; - pFileSize=0; - bUseAbsolutePaths = FALSE; - bTriedPortPasvOnce = FALSE; - askOnResumeFail = false; - }; - ~CFileTransferData() - { - if (pDirectoryListing) - delete pDirectoryListing; - pDirectoryListing=0; - delete pFileSize; - }; - CString rawpwd; - t_transferfile transferfile; - t_transferdata transferdata; - CString host; - int port; - BOOL bPasv; - int nGotTransferEndReply; - t_directory *pDirectoryListing; - int nWaitNextOpState; - CServerPath MKDCurrent; - std::list MKDSegments; - int nMKDOpState; - CTime ListStartTime; - bool hasRemoteDate; - t_directory::t_direntry::t_date remoteDate; - //CTime *pFileTime; //Used when downloading and OPTION_PRESERVEDOWNLOADFILETIME is set or when LIST fails - _int64 *pFileSize; //Used when LIST failes - BOOL bUseAbsolutePaths; - BOOL bTriedPortPasvOnce; + CFileTransferData() + { + pDirectoryListing=0; + nGotTransferEndReply=0; + nWaitNextOpState=0; + nMKDOpState=-1; + hasRemoteDate = false; + pFileSize=0; + bUseAbsolutePaths = FALSE; + bTriedPortPasvOnce = FALSE; + askOnResumeFail = false; + }; + ~CFileTransferData() + { + if (pDirectoryListing) + delete pDirectoryListing; + pDirectoryListing=0; + delete pFileSize; + }; + CString rawpwd; + t_transferfile transferfile; + t_transferdata transferdata; + CString host; + int port; + BOOL bPasv; + int nGotTransferEndReply; + t_directory *pDirectoryListing; + int nWaitNextOpState; + CServerPath MKDCurrent; + std::list MKDSegments; + int nMKDOpState; + bool hasRemoteDate; + t_directory::t_direntry::t_date remoteDate; + //CTime *pFileTime; //Used when downloading and OPTION_PRESERVEDOWNLOADFILETIME is set or when LIST fails + _int64 *pFileSize; //Used when LIST failes + BOOL bUseAbsolutePaths; + BOOL bTriedPortPasvOnce; #ifndef MPEXT_NO_ZLIB - int newZlibLevel; + int newZlibLevel; #endif - bool askOnResumeFail; + bool askOnResumeFail; }; class CFtpControlSocket::CLogonData:public CFtpControlSocket::t_operation::COpData { public: - CLogonData() - { - waitForAsyncRequest = false; - gotPassword = false; - } - virtual ~CLogonData() - { - } - bool waitForAsyncRequest; - bool gotPassword; + CLogonData() + { + waitForAsyncRequest = false; + gotPassword = false; + } + virtual ~CLogonData() + { + } + bool waitForAsyncRequest; + bool gotPassword; }; class CFtpControlSocket::CListData:public CFtpControlSocket::t_operation::COpData { public: - CListData() - { - pDirectoryListing = 0; - bTriedPortPasvOnce = FALSE; - lastCmdSentCDUP = false; - } - virtual ~CListData() - { - if (pDirectoryListing) - delete pDirectoryListing; - } - CString rawpwd; - CServerPath path; - CString fileName; - CString subdir; - int nListMode; - BOOL bPasv; - CString host; - UINT port; - int nFinish; - t_directory *pDirectoryListing; - CTime ListStartTime; - BOOL bTriedPortPasvOnce; + CListData() + { + pDirectoryListing = 0; + bTriedPortPasvOnce = FALSE; + lastCmdSentCDUP = false; + } + virtual ~CListData() + { + if (pDirectoryListing) + delete pDirectoryListing; + } + CString rawpwd; + CServerPath path; + CString fileName; + CString subdir; + BOOL bPasv; + CString host; + UINT port; + int nFinish; + t_directory *pDirectoryListing; + BOOL bTriedPortPasvOnce; #ifndef MPEXT_NO_ZLIB - int newZlibLevel; + int newZlibLevel; #endif - bool lastCmdSentCDUP; + bool lastCmdSentCDUP; }; class CFtpControlSocket::CListFileData:public CFtpControlSocket::t_operation::COpData { public: - CListFileData() - { - direntry = NULL; - } - ~CListFileData() - { - delete [] direntry; - } - CString fileName; - CString dir; - CString path; - CServerPath pwd; - t_directory::t_direntry * direntry; + CListFileData() + { + direntry = NULL; + } + ~CListFileData() + { + delete [] direntry; + } + CString fileName; + CString dir; + CString path; + CServerPath pwd; + t_directory::t_direntry * direntry; }; class CFtpControlSocket::CMakeDirData : public CFtpControlSocket::t_operation::COpData { public: - CMakeDirData() {} - virtual ~CMakeDirData() {} - CServerPath path; - CServerPath Current; - std::list Segments; + CMakeDirData() {} + virtual ~CMakeDirData() {} + CServerPath path; + CServerPath Current; + std::list Segments; }; #define MKD_INIT -1 @@ -174,63 +138,177 @@ class CFtpControlSocket::CMakeDirData : public CFtpControlSocket::t_operation::C ///////////////////////////////////////////////////////////////////////////// // CFtpControlSocket -CFtpControlSocket::CFtpControlSocket(CMainThread *pMainThread, CFileZillaTools * pTools) : CControlSocket(pMainThread, pTools) +std::list CFtpControlSocket::m_InstanceList[2]; + +CTime CFtpControlSocket::m_CurrentTransferTime[2] = { CTime::GetCurrentTime(), CTime::GetCurrentTime() }; +_int64 CFtpControlSocket::m_CurrentTransferLimit[2] = {0, 0}; + +CCriticalSection CFtpControlSocket::m_SpeedLimitSync; + +#define BUFSIZE 16384 + +CFtpControlSocket::CFtpControlSocket(CMainThread *pMainThread, CFileZillaTools * pTools) { - ASSERT(pMainThread); - m_Operation.nOpMode=0; - m_Operation.nOpState=-1; - m_Operation.pData=0; - m_pTransferSocket=0; - m_pDataFile=0; - m_pDirectoryListing=0; - m_pOwner=pMainThread; - srand( (unsigned)time( NULL ) ); - m_bKeepAliveActive=FALSE; - m_bCheckForTimeout=TRUE; -#ifndef MPEXT_NO_SSL - m_bDidRejectCertificate = FALSE; + DebugAssert(pMainThread); + m_pOwner=pMainThread; + m_pTools=pTools; + + m_Operation.nOpMode=0; + m_Operation.nOpState=-1; + m_Operation.pData=0; + + m_pProxyLayer = NULL; + m_pSslLayer = NULL; +#ifndef MPEXT_NO_GSS + m_pGssLayer = NULL; #endif + m_pDirectoryListing=0; + + m_pTransferSocket=0; + m_pDataFile=0; + srand( (unsigned)time( NULL ) ); + m_bKeepAliveActive=FALSE; + m_bCheckForTimeout=TRUE; + m_bDidRejectCertificate = FALSE; + #ifndef MPEXT_NO_ZLIB - m_useZlib = false; - m_zlibSupported = false; - m_zlibLevel = 8; + m_useZlib = false; + m_zlibSupported = false; + m_zlibLevel = 8; #endif - m_bUTF8 = true; - m_hasClntCmd = false; -#ifdef MPEXT - m_serverCapabilities.Clear(); - m_ListFile = ""; -#endif + m_bUTF8 = true; + m_hasClntCmd = false; + m_serverCapabilities.Clear(); + m_ListFile = ""; - m_awaitsReply = false; - m_skipReply = false; + m_awaitsReply = false; + m_skipReply = false; - m_sendBuffer = 0; - m_sendBufferLen = 0; + m_sendBuffer = 0; + m_sendBufferLen = 0; - m_bProtP = false; + m_bProtP = false; - m_mayBeMvsFilesystem = false; - m_mayBeBS2000Filesystem = false; + m_mayBeMvsFilesystem = false; + m_mayBeBS2000Filesystem = false; } CFtpControlSocket::~CFtpControlSocket() { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("~CFtpControlSocket()")); - DoClose(); - if (m_pTransferSocket) - { - m_pTransferSocket->Close(); - delete m_pTransferSocket; - m_pTransferSocket=0; - } - if (m_pDataFile) - { - delete m_pDataFile; - m_pDataFile=0; - } + DoClose(); + if (m_pTransferSocket) + { + m_pTransferSocket->Close(); + delete m_pTransferSocket; + m_pTransferSocket=0; + } + if (m_pDataFile) + { + delete m_pDataFile; + m_pDataFile=0; + } + Close(); +} + +void CFtpControlSocket::ShowStatus(UINT nID, int type) const +{ + CString str; + str.LoadString(nID); + ShowStatus(str, type); +} + +void CFtpControlSocket::ShowStatus(CString status, int type) const +{ + if (!GetOptionVal(OPTION_MPEXT_LOG_SENSITIVE)) + { + if ( status.Left(5)==L"PASS " ) + { + int len=status.GetLength()-5; + status=L"PASS "; + for (int i=0;iserver; + m_pDirectoryListing=new t_directory; + *m_pDirectoryListing=*pDirectory; + + if (bSetWorkingDir) + m_pOwner->SetWorkingDir(pDirectory); } ///////////////////////////////////////////////////////////////////////////// @@ -244,2236 +322,2005 @@ CFtpControlSocket::~CFtpControlSocket() #define CONNECT_GSS_NEEDPASS -6 #define CONNECT_GSS_NEEDUSER -7 #endif -#ifndef MPEXT_NO_SSL #define CONNECT_SSL_INIT -8 #define CONNECT_SSL_NEGOTIATE -9 #define CONNECT_TLS_NEGOTIATE -10 #define CONNECT_SSL_WAITDONE -11 #define CONNECT_SSL_PBSZ -12 #define CONNECT_SSL_PROT -13 -#endif #define CONNECT_FEAT -14 #define CONNECT_SYST -15 #define CONNECT_OPTSUTF8 -16 #define CONNECT_CLNT -17 #define CONNECT_OPTSMLST -18 #define CONNECT_NEEDPASS -19 -#ifdef MPEXT #define CONNECT_HOST -20 -#endif bool CFtpControlSocket::InitConnect() { - USES_CONVERSION; - - // Reset detected capabilities - m_bAnnouncesUTF8 = false; - m_hasClntCmd = false; -#ifdef MPEXT - m_serverCapabilities.Clear(); - m_ListFile = ""; -#endif - m_isFileZilla = false; - - if (m_CurrentServer.nUTF8 == 2) - m_bUTF8 = false; - else - m_bUTF8 = true; - - // Some sanity checks - if (m_pOwner->IsConnected()) - { - ShowStatus(_T("Internal error: Connect called while still connected"), FZ_LOG_ERROR); - if (!m_Operation.nOpMode) - m_Operation.nOpMode = CSMODE_CONNECT; - DoClose(FZ_REPLY_CRITICALERROR); - return false; - } - -#ifndef MPEXT_NO_SSL - if (m_pSslLayer) - { - ShowStatus(_T("Internal error: m_pSslLayer not zero in Connect"), FZ_LOG_ERROR); - DoClose(FZ_REPLY_CRITICALERROR); - return false; - } -#endif - if (m_pProxyLayer) - { - ShowStatus(_T("Internal error: m_pProxyLayer not zero in Connect"), FZ_LOG_ERROR); - DoClose(FZ_REPLY_CRITICALERROR); - return false; - } - -#ifndef MPEXT_NO_SSL - if (m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYER_SSL_IMPLICIT || - m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYER_SSL_EXPLICIT || - m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYER_TLS_EXPLICIT) - { - m_pSslLayer = new CAsyncSslSocketLayer; - AddLayer(m_pSslLayer); - TCHAR buffer[1000]; - GetModuleFileName(NULL, buffer, 1000); - CString filename = buffer; - int pos = filename.ReverseFind(_MPT('\\')); - if (pos != -1) - { - filename = filename.Left(pos + 1); - filename += _T("cacert.pem"); - } - else - filename = _MPT("cacert.pem"); - m_pSslLayer->SetCertStorage(filename); - } -#endif - - if (!m_CurrentServer.fwbypass) - { - int nProxyType = COptions::GetOptionVal(OPTION_PROXYTYPE); - if (nProxyType != PROXYTYPE_NOPROXY) - { - m_pProxyLayer = new CAsyncProxySocketLayer; - if (nProxyType == PROXYTYPE_SOCKS4) - m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS4, T2CA(COptions::GetOption(OPTION_PROXYHOST)), COptions::GetOptionVal(OPTION_PROXYPORT)); - else if (nProxyType==PROXYTYPE_SOCKS4A) - m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS4A, T2CA(COptions::GetOption(OPTION_PROXYHOST)),COptions::GetOptionVal(OPTION_PROXYPORT)); - else if (nProxyType==PROXYTYPE_SOCKS5) - if (COptions::GetOptionVal(OPTION_PROXYUSELOGON)) - m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS5, T2CA(COptions::GetOption(OPTION_PROXYHOST)), - COptions::GetOptionVal(OPTION_PROXYPORT), - T2CA(COptions::GetOption(OPTION_PROXYUSER)), - T2CA(CCrypt::decrypt(COptions::GetOption(OPTION_PROXYPASS)))); - else - m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS5, T2CA(COptions::GetOption(OPTION_PROXYHOST)), - COptions::GetOptionVal(OPTION_PROXYPORT)); - else if (nProxyType==PROXYTYPE_HTTP11) - if (COptions::GetOptionVal(OPTION_PROXYUSELOGON)) - m_pProxyLayer->SetProxy(PROXYTYPE_HTTP11, T2CA(COptions::GetOption(OPTION_PROXYHOST)), - COptions::GetOptionVal(OPTION_PROXYPORT), - T2CA(COptions::GetOption(OPTION_PROXYUSER)), - T2CA(CCrypt::decrypt(COptions::GetOption(OPTION_PROXYPASS)))); - else - m_pProxyLayer->SetProxy(PROXYTYPE_HTTP11, T2CA(COptions::GetOption(OPTION_PROXYHOST)) ,COptions::GetOptionVal(OPTION_PROXYPORT)); - else - ASSERT(FALSE); - AddLayer(m_pProxyLayer); - } - } + USES_CONVERSION; + + // Reset detected capabilities + m_bAnnouncesUTF8 = false; + m_hasClntCmd = false; + m_serverCapabilities.Clear(); + m_ListFile = ""; + m_isFileZilla = false; + + if (m_CurrentServer.nUTF8 == 2) + m_bUTF8 = false; + else + m_bUTF8 = true; + + // Some sanity checks + if (m_pOwner->IsConnected()) + { + ShowStatus(L"Internal error: Connect called while still connected", FZ_LOG_ERROR); + if (!m_Operation.nOpMode) + m_Operation.nOpMode = CSMODE_CONNECT; + DoClose(FZ_REPLY_CRITICALERROR); + return false; + } + + if (m_pSslLayer) + { + ShowStatus(L"Internal error: m_pSslLayer not zero in Connect", FZ_LOG_ERROR); + DoClose(FZ_REPLY_CRITICALERROR); + return false; + } + if (m_pProxyLayer) + { + ShowStatus(L"Internal error: m_pProxyLayer not zero in Connect", FZ_LOG_ERROR); + DoClose(FZ_REPLY_CRITICALERROR); + return false; + } + + if (m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYER_SSL_IMPLICIT || + m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYER_SSL_EXPLICIT || + m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYER_TLS_EXPLICIT) + { + m_pSslLayer = new CAsyncSslSocketLayer; + AddLayer(m_pSslLayer); + + m_pSslLayer->SetClientCertificate(m_CurrentServer.Certificate, m_CurrentServer.PrivateKey); + + TCHAR buffer[1000]; + GetModuleFileName(NULL, buffer, 1000); + CString filename = buffer; + int pos = filename.ReverseFind(L'\\'); + if (pos != -1) + { + filename = filename.Left(pos + 1); + filename += L"cacert.pem"; + } + else + filename = L"cacert.pem"; + m_pSslLayer->SetCertStorage(filename); + } + + int nProxyType = GetOptionVal(OPTION_PROXYTYPE); + if (nProxyType != PROXYTYPE_NOPROXY) + { + m_pProxyLayer = new CAsyncProxySocketLayer; + if (nProxyType == PROXYTYPE_SOCKS4) + m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS4, T2CA(GetOption(OPTION_PROXYHOST)), GetOptionVal(OPTION_PROXYPORT)); + else if (nProxyType==PROXYTYPE_SOCKS4A) + m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS4A, T2CA(GetOption(OPTION_PROXYHOST)),GetOptionVal(OPTION_PROXYPORT)); + else if (nProxyType==PROXYTYPE_SOCKS5) + if (GetOptionVal(OPTION_PROXYUSELOGON)) + m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS5, T2CA(GetOption(OPTION_PROXYHOST)), + GetOptionVal(OPTION_PROXYPORT), + T2CA(GetOption(OPTION_PROXYUSER)), + T2CA(GetOption(OPTION_PROXYPASS))); + else + m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS5, T2CA(GetOption(OPTION_PROXYHOST)), + GetOptionVal(OPTION_PROXYPORT)); + else if (nProxyType==PROXYTYPE_HTTP11) + if (GetOptionVal(OPTION_PROXYUSELOGON)) + m_pProxyLayer->SetProxy(PROXYTYPE_HTTP11, T2CA(GetOption(OPTION_PROXYHOST)), + GetOptionVal(OPTION_PROXYPORT), + T2CA(GetOption(OPTION_PROXYUSER)), + T2CA(GetOption(OPTION_PROXYPASS))); + else + m_pProxyLayer->SetProxy(PROXYTYPE_HTTP11, T2CA(GetOption(OPTION_PROXYHOST)) ,GetOptionVal(OPTION_PROXYPORT)); + else + DebugFail(); + AddLayer(m_pProxyLayer); + } #ifndef MPEXT_NO_GSS - BOOL bUseGSS = FALSE; - if (COptions::GetOptionVal(OPTION_USEGSS) -#ifndef MPEXT_NO_SSL - && !m_pSslLayer -#endif - ) - { - CString GssServers=COptions::GetOption(OPTION_GSSSERVERS); - LPCSTR lpszAscii=T2CA(m_CurrentServer.host); - hostent *fullname=gethostbyname(lpszAscii); - CString host; - if (fullname) - host=fullname->h_name; - else - host=m_CurrentServer.host; - host.MakeLower(); - int i; - while ((i=GssServers.Find(_T(";")))!=-1) - { - if ((_MPT(".")+GssServers.Left(i))==host.Right(GssServers.Left(i).GetLength()+1) || GssServers.Left(i)==host) - { - bUseGSS=TRUE; - break; - } - GssServers=GssServers.Mid(i+1); - } - } - if (bUseGSS) - { - m_pGssLayer = new CAsyncGssSocketLayer; - AddLayer(m_pGssLayer); - if (!m_pGssLayer->InitGSS()) - { - ShowStatus(_T("Unable to initialize GSS api"), FZ_LOG_ERROR); - DoClose(FZ_REPLY_CRITICALERROR); - return false; - } - } + BOOL bUseGSS = FALSE; + if (GetOptionVal(OPTION_USEGSS) && !m_pSslLayer) + { + CString GssServers=GetOption(OPTION_GSSSERVERS); + LPCSTR lpszAscii=T2CA(m_CurrentServer.host); + hostent *fullname=gethostbyname(lpszAscii); + CString host; + if (fullname) + host=fullname->h_name; + else + host=m_CurrentServer.host; + host.MakeLower(); + int i; + while ((i=GssServers.Find(L";"))!=-1) + { + if ((L"."+GssServers.Left(i))==host.Right(GssServers.Left(i).GetLength()+1) || GssServers.Left(i)==host) + { + bUseGSS=TRUE; + break; + } + GssServers=GssServers.Mid(i+1); + } + } + if (bUseGSS) + { + m_pGssLayer = new CAsyncGssSocketLayer; + AddLayer(m_pGssLayer); + if (!m_pGssLayer->InitGSS()) + { + ShowStatus(L"Unable to initialize GSS api", FZ_LOG_ERROR); + DoClose(FZ_REPLY_CRITICALERROR); + return false; + } + } #endif - return true; + return true; } int CFtpControlSocket::InitConnectState() { -#ifndef MPEXT_NO_SSL - if ((m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYERMASK) & (FZ_SERVERTYPE_LAYER_SSL_EXPLICIT | FZ_SERVERTYPE_LAYER_TLS_EXPLICIT)) - return CONNECT_SSL_INIT; - else -#endif + if ((m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYERMASK) & (FZ_SERVERTYPE_LAYER_SSL_EXPLICIT | FZ_SERVERTYPE_LAYER_TLS_EXPLICIT)) + return CONNECT_SSL_INIT; + else #ifndef MPEXT_NO_GSS - if (m_pGssLayer) - return CONNECT_GSS_INIT; - else + if (m_pGssLayer) + return CONNECT_GSS_INIT; + else #endif - return CONNECT_INIT; + return CONNECT_INIT; } void CFtpControlSocket::Connect(t_server &server) { - USES_CONVERSION; - - if (m_Operation.nOpMode) - { - ShowStatus(_T("Internal error: m_Operation.nOpMode not zero in Connect"), FZ_LOG_ERROR); - m_Operation.nOpMode = CSMODE_CONNECT; - DoClose(FZ_REPLY_CRITICALERROR); - return; - } - - m_Operation.nOpMode = CSMODE_CONNECT; - - m_CurrentServer = server; - if (!InitConnect()) - return; - - if (!Create()) - { - DoClose(); - return; - } - AsyncSelect(); - - if (COptions::GetOptionVal(OPTION_MPEXT_HOST)) - { - m_Operation.nOpState = CONNECT_HOST; - } - else - { - m_Operation.nOpState = InitConnectState(); - } - -#ifndef MPEXT_NO_SSL - if (server.nServerType & FZ_SERVERTYPE_LAYER_SSL_IMPLICIT) - { - if (!m_pSslLayer) - { - ShowStatus(_T("Internal error: m_pSslLayer not initialized"), FZ_LOG_ERROR); - DoClose(FZ_REPLY_CRITICALERROR); - return; - } - int res = m_pSslLayer->InitSSLConnection(true, NULL, - COptions::GetOptionVal(OPTION_MPEXT_SSLSESSIONREUSE), - COptions::GetOptionVal(OPTION_MPEXT_MIN_TLS_VERSION), - COptions::GetOptionVal(OPTION_MPEXT_MAX_TLS_VERSION)); - if (res == SSL_FAILURE_INITSSL) - ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR); - if (!res) - PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_SECURESERVER, 1), 0); - else - { - DoClose(); - return; - } - } -#endif + USES_CONVERSION; + + if (m_Operation.nOpMode) + { + ShowStatus(L"Internal error: m_Operation.nOpMode not zero in Connect", FZ_LOG_ERROR); + m_Operation.nOpMode = CSMODE_CONNECT; + DoClose(FZ_REPLY_CRITICALERROR); + return; + } + + m_Operation.nOpMode = CSMODE_CONNECT; + + m_CurrentServer = server; + if (!InitConnect()) + return; + + if (!Create()) + { + DoClose(); + return; + } + AsyncSelect(); + + if (GetOptionVal(OPTION_MPEXT_HOST)) + { + m_Operation.nOpState = CONNECT_HOST; + } + else + { + m_Operation.nOpState = InitConnectState(); + } + + if (server.nServerType & FZ_SERVERTYPE_LAYER_SSL_IMPLICIT) + { + if (!m_pSslLayer) + { + ShowStatus(L"Internal error: m_pSslLayer not initialized", FZ_LOG_ERROR); + DoClose(FZ_REPLY_CRITICALERROR); + return; + } + int res = m_pSslLayer->InitSSLConnection(true, NULL, + GetOptionVal(OPTION_MPEXT_SSLSESSIONREUSE), + GetOptionVal(OPTION_MPEXT_MIN_TLS_VERSION), + GetOptionVal(OPTION_MPEXT_MAX_TLS_VERSION)); + if (res == SSL_FAILURE_INITSSL) + ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR); + if (res) + { + DoClose(); + return; + } + } + + int logontype = GetOptionVal(OPTION_LOGONTYPE); + int port; + CString buf,temp; + // are we connecting directly to the host (logon type 0) or via a firewall? (logon type>0) + CString fwhost; + int fwport; + if(!logontype) + { + temp=server.host; + port=server.port; + } + else + { + fwhost=GetOption(OPTION_FWHOST); + fwport=GetOptionVal(OPTION_FWPORT); + temp=fwhost; + port=fwport; + if(fwport!=21) + fwhost.Format( L"%s:%d", fwhost, fwport); // add port to fwhost (only if port is not 21) + } + + CString hostname = server.host; + if(server.port!=21) + hostname.Format( L"%s:%d", hostname, server.port); // add port to hostname (only if port is not 21) + CString str; + str.Format(IDS_STATUSMSG_CONNECTING, hostname); + ShowStatus(str, FZ_LOG_STATUS); + + if (!Connect(temp, port)) + { + if (WSAGetLastError() != WSAEWOULDBLOCK) + { + DoClose(); + return; + } + } + m_ServerName = logontype?fwhost:hostname; + m_LastRecvTime = m_LastSendTime = CTime::GetCurrentTime(); - int logontype = COptions::GetOptionVal(OPTION_LOGONTYPE); - int port; - CString buf,temp; - if (server.fwbypass) - logontype=0; - - // are we connecting directly to the host (logon type 0) or via a firewall? (logon type>0) - CString fwhost; - int fwport; - if(!logontype) - { - temp=server.host; - port=server.port; - } - else - { - fwhost=COptions::GetOption(OPTION_FWHOST); - fwport=COptions::GetOptionVal(OPTION_FWPORT); - temp=fwhost; - port=fwport; - if(fwport!=21) - fwhost.Format( _T("%s:%d"), fwhost, fwport); // add port to fwhost (only if port is not 21) - } - - CString hostname = server.host; - if(server.port!=21) - hostname.Format( _T("%s:%d"), hostname, server.port); // add port to hostname (only if port is not 21) - CString str; - str.Format(IDS_STATUSMSG_CONNECTING, hostname); - ShowStatus(str, FZ_LOG_STATUS); - - if (!CControlSocket::Connect(temp, port)) - { - if (WSAGetLastError() != WSAEWOULDBLOCK) - { - DoClose(); - return; - } - } - m_ServerName = logontype?fwhost:hostname; - m_LastRecvTime = m_LastSendTime = CTime::GetCurrentTime(); - - m_Operation.pData = new CLogonData(); + m_Operation.pData = new CLogonData(); } void CFtpControlSocket::LogOnToServer(BOOL bSkipReply /*=FALSE*/) { - int logontype = -#ifndef MPEXT_NO_GSS - m_pGssLayer ? 0 : -#endif - COptions::GetOptionVal(OPTION_LOGONTYPE); - const int LO = -2, ER = -1; - CString buf, temp; - const int NUMLOGIN = 9; // currently supports 9 different login sequences - int logonseq[NUMLOGIN][20] = { - // this array stores all of the logon sequences for the various firewalls - // in blocks of 3 nums. 1st num is command to send, 2nd num is next point in logon sequence array - // if 200 series response is rec'd from server as the result of the command, 3rd num is next - // point in logon sequence if 300 series rec'd - {0,LO,3, 1,LO,6, 12,LO,ER}, // no firewall - {3,6,3, 4,6,ER, 5,9,9, 0,LO,12, 1,LO,15, 12,LO,ER}, // SITE hostname - {3,6,3, 4,6,ER, 6,LO,9, 1,LO,12, 12,LO,ER}, // USER after logon - {7,3,3, 0,LO,6, 1,LO,9, 12,LO,ER}, //proxy OPEN - {3,6,3, 4,6,ER, 0,LO,9, 1,LO,12, 12,LO,ER}, // Transparent - {6,LO,3, 1,LO,6, 12,LO,ER}, // USER remoteID@remotehost - {8,6,3, 4,6,ER, 0,LO,9, 1,LO,12, 12,LO,ER}, //USER fireID@remotehost - {9,ER,3, 1,LO,6, 2,LO,ER}, //USER remoteID@remotehost fireID - {10,LO,3,11,LO,6,2,LO,ER} // USER remoteID@fireID@remotehost - }; - if (m_CurrentServer.fwbypass) - logontype = 0; - -#ifndef MPEXT_NO_SSL - if (m_Operation.nOpState == CONNECT_SSL_INIT) - { - if (m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYER_SSL_EXPLICIT) - { - if (!SendAuthSsl()) - { - return; - } - } - else - { - if (!Send("AUTH TLS")) - return; - m_Operation.nOpState = CONNECT_TLS_NEGOTIATE; - } - return; - } - else if ((m_Operation.nOpState == CONNECT_SSL_NEGOTIATE) || - (m_Operation.nOpState == CONNECT_TLS_NEGOTIATE)) - { - int res = GetReplyCode(); - if (res!=2 && res!=3) - { - if (m_Operation.nOpState == CONNECT_TLS_NEGOTIATE) - { - // Try to fall back to AUTH SSL - if (!SendAuthSsl()) - { - return; - } - } - else - { - DoClose(); - } - return; - } - else - { - if (!m_pSslLayer) - { - ShowStatus(_T("Internal error: m_pSslLayer not initialized"), FZ_LOG_ERROR); - DoClose(FZ_REPLY_CRITICALERROR); - return; - } - int res = m_pSslLayer->InitSSLConnection(true, NULL, - COptions::GetOptionVal(OPTION_MPEXT_SSLSESSIONREUSE), - COptions::GetOptionVal(OPTION_MPEXT_MIN_TLS_VERSION), - COptions::GetOptionVal(OPTION_MPEXT_MAX_TLS_VERSION)); - if (res == SSL_FAILURE_INITSSL) - ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR); - if (res) - { - DoClose(); - return; - } - } - m_Operation.nOpState = CONNECT_SSL_WAITDONE; - return; - } - else if (m_Operation.nOpState == CONNECT_SSL_WAITDONE) - { - m_Operation.nOpState = CONNECT_INIT; - } - else if (m_Operation.nOpState == CONNECT_SSL_PBSZ) - { - if (!Send(_MPT("PROT P"))) - return; - m_Operation.nOpState = CONNECT_SSL_PROT; - return; - } - else if (m_Operation.nOpState == CONNECT_SSL_PROT) - { - int code = GetReplyCode(); - if (code == 2 || code == 3) - m_bProtP = true; - - ShowStatus(IDS_STATUSMSG_CONNECTED, FZ_LOG_STATUS); - m_pOwner->SetConnected(TRUE); - ResetOperation(FZ_REPLY_OK); - return; - } + int logontype = #ifndef MPEXT_NO_GSS - else -#endif + m_pGssLayer ? 0 : #endif + GetOptionVal(OPTION_LOGONTYPE); + const int LO = -2, ER = -1; + CString buf, temp; + const int NUMLOGIN = 9; // currently supports 9 different login sequences + int logonseq[NUMLOGIN][20] = { + // this array stores all of the logon sequences for the various firewalls + // in blocks of 3 nums. 1st num is command to send, 2nd num is next point in logon sequence array + // if 200 series response is rec'd from server as the result of the command, 3rd num is next + // point in logon sequence if 300 series rec'd + {0,LO,3, 1,LO,6, 12,LO,ER}, // no firewall + {3,6,3, 4,6,ER, 5,9,9, 0,LO,12, 1,LO,15, 12,LO,ER}, // SITE hostname + {3,6,3, 4,6,ER, 6,LO,9, 1,LO,12, 12,LO,ER}, // USER after logon + {7,3,3, 0,LO,6, 1,LO,9, 12,LO,ER}, //proxy OPEN + {3,6,3, 4,6,ER, 0,LO,9, 1,LO,12, 12,LO,ER}, // Transparent + {6,LO,3, 1,LO,6, 12,LO,ER}, // USER remoteID@remotehost + {8,6,3, 4,6,ER, 0,LO,9, 1,LO,12, 12,LO,ER}, //USER fireID@remotehost + {9,ER,3, 1,LO,6, 2,LO,ER}, //USER remoteID@remotehost fireID + {10,LO,3,11,LO,6,2,LO,ER} // USER remoteID@fireID@remotehost + }; + + if (m_Operation.nOpState == CONNECT_SSL_INIT) + { + if (m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYER_SSL_EXPLICIT) + { + if (!SendAuthSsl()) + { + return; + } + } + else + { + if (!Send("AUTH TLS")) + return; + m_Operation.nOpState = CONNECT_TLS_NEGOTIATE; + } + return; + } + else if ((m_Operation.nOpState == CONNECT_SSL_NEGOTIATE) || + (m_Operation.nOpState == CONNECT_TLS_NEGOTIATE)) + { + int res = GetReplyCode(); + if (res!=2 && res!=3) + { + if (m_Operation.nOpState == CONNECT_TLS_NEGOTIATE) + { + // Try to fall back to AUTH SSL + if (!SendAuthSsl()) + { + return; + } + } + else + { + DoClose(); + } + return; + } + else + { + if (!m_pSslLayer) + { + ShowStatus(L"Internal error: m_pSslLayer not initialized", FZ_LOG_ERROR); + DoClose(FZ_REPLY_CRITICALERROR); + return; + } + int res = m_pSslLayer->InitSSLConnection(true, NULL, + GetOptionVal(OPTION_MPEXT_SSLSESSIONREUSE), + GetOptionVal(OPTION_MPEXT_MIN_TLS_VERSION), + GetOptionVal(OPTION_MPEXT_MAX_TLS_VERSION)); + if (res == SSL_FAILURE_INITSSL) + ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR); + if (res) + { + DoClose(); + return; + } + } + m_Operation.nOpState = CONNECT_SSL_WAITDONE; + return; + } + else if (m_Operation.nOpState == CONNECT_SSL_WAITDONE) + { + m_Operation.nOpState = CONNECT_INIT; + } + else if (m_Operation.nOpState == CONNECT_SSL_PBSZ) + { + if (!Send(L"PROT P")) + return; + m_Operation.nOpState = CONNECT_SSL_PROT; + return; + } + else if (m_Operation.nOpState == CONNECT_SSL_PROT) + { + int code = GetReplyCode(); + if (code == 2 || code == 3) + m_bProtP = true; + + ShowStatus(IDS_STATUSMSG_CONNECTED, FZ_LOG_STATUS); + m_pOwner->SetConnected(TRUE); + ResetOperation(FZ_REPLY_OK); + return; + } #ifndef MPEXT_NO_GSS - if (m_Operation.nOpState==CONNECT_GSS_FAILED || - m_Operation.nOpState == CONNECT_GSS_NEEDPASS || - m_Operation.nOpState == CONNECT_GSS_NEEDUSER) - { - if (!m_RecvBuffer.empty() && m_RecvBuffer.front() != "") - { - //Incoming reply from server during async is not allowed - DoClose(); - return; - } - } -#endif -#ifdef MPEXT - else if (m_Operation.nOpState == CONNECT_HOST) - { - if (Send(_MPT("HOST " + m_CurrentServer.host))) - { - m_Operation.nOpState = InitConnectState(); - return; - } - } -#endif - else if (m_Operation.nOpState == CONNECT_OPTSMLST) - { - int code = GetReplyCode(); - if (code != 2 && code != 3) - m_serverCapabilities.SetCapability(mlsd_command, no); - ShowStatus(IDS_STATUSMSG_CONNECTED, FZ_LOG_STATUS); - m_pOwner->SetConnected(TRUE); - ResetOperation(FZ_REPLY_OK); - return; - } - else if (m_Operation.nOpState == CONNECT_FEAT) - { - #ifdef MPEXT - std::string facts; - if (m_serverCapabilities.GetCapabilityString(mlsd_command, &facts) == yes) - { - ftp_capabilities_t cap = m_serverCapabilities.GetCapabilityString(opts_mlst_command); - if (cap == unknown) - { - std::transform(facts.begin(), facts.end(), facts.begin(), ::tolower); - bool had_unset = false; - std::string opts_facts; - // Create a list of all facts understood by both FZ and the server. - // Check if there's any supported fact not enabled by default, should that - // be the case we need to send OPTS MLST - while (!facts.empty()) - { - size_t delim = facts.find_first_of(';'); - if (delim == -1) - break; - - if (!delim) - { - facts = facts.substr(1, std::string::npos); - continue; - } - - bool enabled = false; - std::string fact; - - if (facts[delim - 1] == '*') - { - if (delim == 1) - { - facts = facts.substr(delim + 1, std::string::npos); - continue; - } - enabled = true; - fact = facts.substr(0, delim - 1); - } - else - { - enabled = false; - fact = facts.substr(0, delim); - } - facts = facts.substr(delim + 1, std::string::npos); - - if (!strcmp(fact.c_str(), "type") || - !strcmp(fact.c_str(), "size") || - !strcmp(fact.c_str(), "modify") || - !strcmp(fact.c_str(), "create") || - !strcmp(fact.c_str(), "perm") || - !strcmp(fact.c_str(), "unix.mode") || - !strcmp(fact.c_str(), "unix.owner") || - !strcmp(fact.c_str(), "unix.user") || - !strcmp(fact.c_str(), "unix.group") || - !strcmp(fact.c_str(), "unix.uid") || - !strcmp(fact.c_str(), "unix.gid")) - { - had_unset |= !enabled; - opts_facts += fact.c_str(); - opts_facts += ";"; - } - } - if (had_unset) - { - m_serverCapabilities.SetCapability(opts_mlst_command, yes, opts_facts); - } - else - { - m_serverCapabilities.SetCapability(opts_mlst_command, no); - } - } - } - PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_CAPABILITIES, 0), (LPARAM)&m_serverCapabilities); - #endif - if (!m_bAnnouncesUTF8 && !m_CurrentServer.nUTF8) - m_bUTF8 = false; - if (m_bUTF8 && m_hasClntCmd && !m_isFileZilla) - { - // Some servers refuse to enable UTF8 if client does not send CLNT command - // to fix compatibility with Internet Explorer, but in the process breaking - // compatibility with other clients. - // Rather than forcing MS to fix Internet Explorer, letting other clients - // suffer is a questionable decision in my opinion. - if (Send(_MPT("CLNT FileZilla"))) - m_Operation.nOpState = CONNECT_CLNT; - return; - } - if (m_bUTF8 && !m_isFileZilla) - { - // Handle servers that disobey RFC 2640 that have UTF8 in the FEAT - // response but do not use UTF8 unless OPTS UTF8 ON gets send. - // However these servers obey a conflicting ietf draft: - // http://www.ietf.org/proceedings/02nov/I-D/draft-ietf-ftpext-utf-8-option-00.txt - // servers are, amongst others, G6 FTP Server and RaidenFTPd. - if (Send(_MPT("OPTS UTF8 ON"))) - m_Operation.nOpState = CONNECT_OPTSUTF8; - return; - } - -#ifndef MPEXT_NO_SSL - if ((m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYERMASK) & (FZ_SERVERTYPE_LAYER_SSL_IMPLICIT | FZ_SERVERTYPE_LAYER_SSL_EXPLICIT | FZ_SERVERTYPE_LAYER_TLS_EXPLICIT)) - { - m_Operation.nOpState = CONNECT_SSL_PBSZ; - Send(_MPT("PBSZ 0")); - return; - } + else + if (m_Operation.nOpState==CONNECT_GSS_FAILED || + m_Operation.nOpState == CONNECT_GSS_NEEDPASS || + m_Operation.nOpState == CONNECT_GSS_NEEDUSER) + { + if (!m_RecvBuffer.empty() && m_RecvBuffer.front() != "") + { + //Incoming reply from server during async is not allowed + DoClose(); + return; + } + } #endif + else if (m_Operation.nOpState == CONNECT_HOST) + { + if (Send(L"HOST " + m_CurrentServer.host)) + { + m_Operation.nOpState = InitConnectState(); + return; + } + } + else if (m_Operation.nOpState == CONNECT_OPTSMLST) + { + int code = GetReplyCode(); + if (code != 2 && code != 3) + m_serverCapabilities.SetCapability(mlsd_command, no); + ShowStatus(IDS_STATUSMSG_CONNECTED, FZ_LOG_STATUS); + m_pOwner->SetConnected(TRUE); + ResetOperation(FZ_REPLY_OK); + return; + } + else if (m_Operation.nOpState == CONNECT_FEAT) + { + std::string facts; + if (m_serverCapabilities.GetCapabilityString(mlsd_command, &facts) == yes) + { + ftp_capabilities_t cap = m_serverCapabilities.GetCapabilityString(opts_mlst_command); + if (cap == unknown) + { + std::transform(facts.begin(), facts.end(), facts.begin(), ::tolower); + bool had_unset = false; + std::string opts_facts; + // Create a list of all facts understood by both FZ and the server. + // Check if there's any supported fact not enabled by default, should that + // be the case we need to send OPTS MLST + while (!facts.empty()) + { + size_t delim = facts.find_first_of(';'); + if (delim == -1) + break; + + if (!delim) + { + facts = facts.substr(1, std::string::npos); + continue; + } + + bool enabled = false; + std::string fact; + + if (facts[delim - 1] == '*') + { + if (delim == 1) + { + facts = facts.substr(delim + 1, std::string::npos); + continue; + } + enabled = true; + fact = facts.substr(0, delim - 1); + } + else + { + enabled = false; + fact = facts.substr(0, delim); + } + facts = facts.substr(delim + 1, std::string::npos); + + if (!strcmp(fact.c_str(), "type") || + !strcmp(fact.c_str(), "size") || + !strcmp(fact.c_str(), "modify") || + !strcmp(fact.c_str(), "create") || + !strcmp(fact.c_str(), "perm") || + !strcmp(fact.c_str(), "unix.mode") || + !strcmp(fact.c_str(), "unix.owner") || + !strcmp(fact.c_str(), "unix.user") || + !strcmp(fact.c_str(), "unix.group") || + !strcmp(fact.c_str(), "unix.uid") || + !strcmp(fact.c_str(), "unix.gid")) + { + had_unset |= !enabled; + opts_facts += fact.c_str(); + opts_facts += ";"; + } + } + if (had_unset) + { + m_serverCapabilities.SetCapability(opts_mlst_command, yes, opts_facts); + } + else + { + m_serverCapabilities.SetCapability(opts_mlst_command, no); + } + } + } + GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_CAPABILITIES, 0), (LPARAM)&m_serverCapabilities); + if (!m_bAnnouncesUTF8 && !m_CurrentServer.nUTF8) + m_bUTF8 = false; + if (m_bUTF8 && m_hasClntCmd && !m_isFileZilla) + { + // Some servers refuse to enable UTF8 if client does not send CLNT command + // to fix compatibility with Internet Explorer, but in the process breaking + // compatibility with other clients. + // Rather than forcing MS to fix Internet Explorer, letting other clients + // suffer is a questionable decision in my opinion. + if (Send(L"CLNT FileZilla")) + m_Operation.nOpState = CONNECT_CLNT; + return; + } + if (m_bUTF8 && !m_isFileZilla) + { + // Handle servers that disobey RFC 2640 that have UTF8 in the FEAT + // response but do not use UTF8 unless OPTS UTF8 ON gets send. + // However these servers obey a conflicting ietf draft: + // http://www.ietf.org/proceedings/02nov/I-D/draft-ietf-ftpext-utf-8-option-00.txt + // servers are, amongst others, G6 FTP Server and RaidenFTPd. + if (Send(L"OPTS UTF8 ON")) + m_Operation.nOpState = CONNECT_OPTSUTF8; + return; + } - if (m_serverCapabilities.GetCapability(mlsd_command) == yes) - { - std::string args; - // this is never true, see comment is DiscardLine - if (m_serverCapabilities.GetCapabilityString(opts_mlst_command, &args) == yes && - !args.empty()) - { - m_Operation.nOpState = CONNECT_OPTSMLST; - Send("OPTS MLST " + CString(args.c_str())); - return; - } - } - - ShowStatus(IDS_STATUSMSG_CONNECTED, FZ_LOG_STATUS); - m_pOwner->SetConnected(TRUE); - ResetOperation(FZ_REPLY_OK); - return; - } - else if (m_Operation.nOpState == CONNECT_CLNT) - { - // See above why we send this command - if (Send(_MPT("OPTS UTF8 ON"))) - m_Operation.nOpState = CONNECT_OPTSUTF8; - return; - } - else if (m_Operation.nOpState == CONNECT_OPTSUTF8) - { -#ifndef MPEXT_NO_SSL - if ((m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYERMASK) & (FZ_SERVERTYPE_LAYER_SSL_IMPLICIT | FZ_SERVERTYPE_LAYER_SSL_EXPLICIT | FZ_SERVERTYPE_LAYER_TLS_EXPLICIT)) - { - m_Operation.nOpState = CONNECT_SSL_PBSZ; - Send(_MPT("PBSZ 0")); - return; - } -#endif + if ((m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYERMASK) & (FZ_SERVERTYPE_LAYER_SSL_IMPLICIT | FZ_SERVERTYPE_LAYER_SSL_EXPLICIT | FZ_SERVERTYPE_LAYER_TLS_EXPLICIT)) + { + m_Operation.nOpState = CONNECT_SSL_PBSZ; + Send(L"PBSZ 0"); + return; + } + + if (m_serverCapabilities.GetCapability(mlsd_command) == yes) + { + std::string args; + // this is never true, see comment is DiscardLine + if (m_serverCapabilities.GetCapabilityString(opts_mlst_command, &args) == yes && + !args.empty()) + { + m_Operation.nOpState = CONNECT_OPTSMLST; + Send("OPTS MLST " + CString(args.c_str())); + return; + } + } + + ShowStatus(IDS_STATUSMSG_CONNECTED, FZ_LOG_STATUS); + m_pOwner->SetConnected(TRUE); + ResetOperation(FZ_REPLY_OK); + return; + } + else if (m_Operation.nOpState == CONNECT_CLNT) + { + // See above why we send this command + if (Send(L"OPTS UTF8 ON")) + m_Operation.nOpState = CONNECT_OPTSUTF8; + return; + } + else if (m_Operation.nOpState == CONNECT_OPTSUTF8) + { + if ((m_CurrentServer.nServerType & FZ_SERVERTYPE_LAYERMASK) & (FZ_SERVERTYPE_LAYER_SSL_IMPLICIT | FZ_SERVERTYPE_LAYER_SSL_EXPLICIT | FZ_SERVERTYPE_LAYER_TLS_EXPLICIT)) + { + m_Operation.nOpState = CONNECT_SSL_PBSZ; + Send(L"PBSZ 0"); + return; + } + + ShowStatus(IDS_STATUSMSG_CONNECTED, FZ_LOG_STATUS); + m_pOwner->SetConnected(TRUE); + ResetOperation(FZ_REPLY_OK); + return; + } + else if (m_Operation.nOpState == CONNECT_SYST) + { + if (GetReplyCode() == 2) + { + const CStringA reply = m_RecvBuffer.front(); + if (reply.GetLength() > 7 && reply.Mid(3, 4) == " MVS") + m_mayBeMvsFilesystem = true; + else if (reply.GetLength() >= 11 && reply.Mid(3, 8) == " BS-2000") + m_mayBeBS2000Filesystem = true; + + if (reply.Find("FileZilla") != -1) + m_isFileZilla = true; + } + + if (Send(L"FEAT")) + m_Operation.nOpState = CONNECT_FEAT; + return; + } + else if (!bSkipReply) + { + int res = GetReplyCode(); + if (res != 2 && res != 3 && m_Operation.nOpState >= 0) // get initial connect msg off server + { + int nError = 0; + if (m_bUTF8 && m_CurrentServer.nUTF8 != 1) + { + // Fall back to local charset for the case that the server might not + // support UTF8 and the login data contains non-ascii characters. + bool asciiOnly = true; + for (int i = 0; i < m_CurrentServer.user.GetLength(); i++) + if (m_CurrentServer.user.GetAt(i) > 127) + asciiOnly = false; + for (int i = 0; i < m_CurrentServer.pass.GetLength(); i++) + if (m_CurrentServer.pass.GetAt(i) > 127) + asciiOnly = false; + for (int i = 0; i < m_CurrentServer.account.GetLength(); i++) + if (m_CurrentServer.account.GetAt(i) > 127) + asciiOnly = false; + if (!asciiOnly) + { + ShowStatus(L"Login data contains non-ascii characters and server might not be UTF-8 aware. Trying local charset.", FZ_LOG_STATUS); + m_bUTF8 = false; + m_Operation.nOpState = CONNECT_INIT; + } + else + nError = FZ_REPLY_ERROR; + } + else + nError = FZ_REPLY_ERROR; + + if (nError) + { + if (res==5 && logonseq[logontype][m_Operation.nOpState]==1) + nError|=FZ_REPLY_CRITICALERROR; + + DoClose(nError); + return; + } + } + } + CString hostname = m_CurrentServer.host; + if (m_CurrentServer.port != 21) + hostname.Format(hostname+ L":%d", m_CurrentServer.port); // add port to hostname (only if port is not 21) - ShowStatus(IDS_STATUSMSG_CONNECTED, FZ_LOG_STATUS); - m_pOwner->SetConnected(TRUE); - ResetOperation(FZ_REPLY_OK); - return; - } - else if (m_Operation.nOpState == CONNECT_SYST) - { - if (GetReplyCode() == 2) - { - const CStringA reply = m_RecvBuffer.front(); - if (reply.GetLength() > 7 && reply.Mid(3, 4) == " MVS") - m_mayBeMvsFilesystem = true; - else if (reply.GetLength() >= 11 && reply.Mid(3, 8) == " BS-2000") - m_mayBeBS2000Filesystem = true; - - if (reply.Find("FileZilla") != -1) - m_isFileZilla = true; - } - - if (Send(_MPT("FEAT"))) - m_Operation.nOpState = CONNECT_FEAT; - return; - } - else if (!bSkipReply) - { - int res = GetReplyCode(); - if (res != 2 && res != 3 && m_Operation.nOpState >= 0) // get initial connect msg off server - { - int nError = 0; - if (m_bUTF8 && m_CurrentServer.nUTF8 != 1) - { - // Fall back to local charset for the case that the server might not - // support UTF8 and the login data contains non-ascii characters. - bool asciiOnly = true; - for (int i = 0; i < m_CurrentServer.user.GetLength(); i++) - if (m_CurrentServer.user.GetAt(i) > 127) - asciiOnly = false; - for (int i = 0; i < m_CurrentServer.pass.GetLength(); i++) - if (m_CurrentServer.pass.GetAt(i) > 127) - asciiOnly = false; - for (int i = 0; i < m_CurrentServer.account.GetLength(); i++) - if (m_CurrentServer.account.GetAt(i) > 127) - asciiOnly = false; - if (!asciiOnly) - { - ShowStatus(_T("Login data contains non-ascii characters and server might not be UTF-8 aware. Trying local charset."), FZ_LOG_STATUS); - m_bUTF8 = false; - m_Operation.nOpState = CONNECT_INIT; - } - else - nError = FZ_REPLY_ERROR; - } - else - nError = FZ_REPLY_ERROR; - - if (nError) - { - if (res==5 && logonseq[logontype][m_Operation.nOpState]==1) - nError|=FZ_REPLY_CRITICALERROR; - - DoClose(nError); - return; - } - } - } - CString hostname = m_CurrentServer.host; - if (m_CurrentServer.port != 21) - hostname.Format(hostname+ _MPT(":%d"), m_CurrentServer.port); // add port to hostname (only if port is not 21) - - USES_CONVERSION; + USES_CONVERSION; #ifndef MPEXT_NO_GSS - //**** GSS Authentication **** - if (m_Operation.nOpState==CONNECT_GSS_INIT) //authenticate - { - int i = m_pGssLayer->GetClientAuth(T2CA(m_CurrentServer.host)); - if (i==-1) - m_Operation.nOpState = CONNECT_GSS_AUTHDONE; - else if (i != GSSAPI_AUTHENTICATION_SUCCEEDED) - { - m_Operation.nOpState = CONNECT_GSS_FAILED; - CAsyncRequestData *pData=new CAsyncRequestData; - pData->nRequestType=FZ_ASYNCREQUEST_GSS_AUTHFAILED; - pData->nRequestID=m_pOwner->GetNextAsyncRequestID(); - if (!PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_GSS_AUTHFAILED), (LPARAM)pData)) - { - delete pData; - } - else - { - m_bCheckForTimeout = FALSE; - } - } - else - { - // we got authentication, we need to check whether we have forwardable tickets - //ShowStatus(IDS_STATUSMSG_GSSAUTH, FZ_LOG_STATUS); - PostMessage(m_pOwner->m_hOwnerWnd,m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_SECURESERVER, TRUE), 0); - if (Send(_MPT("CWD ."))) - m_Operation.nOpState = CONNECT_GSS_CWD; - } - return; - } - else if (m_Operation.nOpState == CONNECT_GSS_AUTHDONE) - { - if (!m_pGssLayer->AuthSuccessful()) - { - m_Operation.nOpState = CONNECT_GSS_FAILED; - CAsyncRequestData *pData=new CAsyncRequestData; - pData->nRequestType = FZ_ASYNCREQUEST_GSS_AUTHFAILED; - pData->nRequestID = m_pOwner->GetNextAsyncRequestID(); - if (!PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_GSS_AUTHFAILED), (LPARAM)pData)) - { - delete pData; - } - else - { - m_bCheckForTimeout = FALSE; - } - return; - } - else - { - // we got authentication, we need to check whether we have forwardable tickets - //ShowStatus(IDS_STATUSMSG_GSSAUTH, FZ_LOG_STATUS); - PostMessage(m_pOwner->m_hOwnerWnd,m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_SECURESERVER, TRUE), 0); - if (Send(_MPT("CWD ."))) - m_Operation.nOpState = CONNECT_GSS_CWD; - return; - } - } - else if (m_Operation.nOpState == CONNECT_GSS_CWD) - { // authentication succeeded, we're now get the response to the CWD command - if (GetReplyCode() == 2) // we're logged on - { - if (Send(_MPT("SYST"))) - m_Operation.nOpState = CONNECT_SYST; - return; - } - else - { - //GSS authentication complete but we still have to go through the standard logon procedure - m_Operation.nOpState = CONNECT_INIT; - } - } + //**** GSS Authentication **** + if (m_Operation.nOpState==CONNECT_GSS_INIT) //authenticate + { + int i = m_pGssLayer->GetClientAuth(T2CA(m_CurrentServer.host)); + if (i==-1) + m_Operation.nOpState = CONNECT_GSS_AUTHDONE; + else if (i != GSSAPI_AUTHENTICATION_SUCCEEDED) + { + m_Operation.nOpState = CONNECT_GSS_FAILED; + CAsyncRequestData *pData=new CAsyncRequestData; + pData->nRequestType=FZ_ASYNCREQUEST_GSS_AUTHFAILED; + pData->nRequestID=m_pOwner->GetNextAsyncRequestID(); + if (!GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_GSS_AUTHFAILED), (LPARAM)pData)) + { + delete pData; + } + else + { + m_bCheckForTimeout = FALSE; + } + } + else + { + // we got authentication, we need to check whether we have forwardable tickets + if (Send(L"CWD .")) + m_Operation.nOpState = CONNECT_GSS_CWD; + } + return; + } + else if (m_Operation.nOpState == CONNECT_GSS_AUTHDONE) + { + if (!m_pGssLayer->AuthSuccessful()) + { + m_Operation.nOpState = CONNECT_GSS_FAILED; + CAsyncRequestData *pData=new CAsyncRequestData; + pData->nRequestType = FZ_ASYNCREQUEST_GSS_AUTHFAILED; + pData->nRequestID = m_pOwner->GetNextAsyncRequestID(); + if (!GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_GSS_AUTHFAILED), (LPARAM)pData)) + { + delete pData; + } + else + { + m_bCheckForTimeout = FALSE; + } + return; + } + else + { + // we got authentication, we need to check whether we have forwardable tickets + if (Send(L"CWD .")) + m_Operation.nOpState = CONNECT_GSS_CWD; + return; + } + } + else if (m_Operation.nOpState == CONNECT_GSS_CWD) + { // authentication succeeded, we're now get the response to the CWD command + if (GetReplyCode() == 2) // we're logged on + { + if (Send(L"SYST")) + m_Operation.nOpState = CONNECT_SYST; + return; + } + else + { + //GSS authentication complete but we still have to go through the standard logon procedure + m_Operation.nOpState = CONNECT_INIT; + } + } #endif - if (m_Operation.nOpState==CONNECT_INIT) - { - if (logontype) - { - CString str; - str.Format(IDS_STATUSMSG_FWCONNECT,hostname); - ShowStatus(str,FZ_LOG_STATUS); - } - m_Operation.nOpState++; - } - else if (m_Operation.nOpState >= 0 && !bSkipReply) - { - m_Operation.nOpState=logonseq[logontype][m_Operation.nOpState+GetReplyCode()-1]; //get next command from array - switch(m_Operation.nOpState) - { - case ER: // ER means summat has gone wrong - DoClose(); - return; - case LO: //LO means we are logged on - if (Send(_MPT("SYST"))) - m_Operation.nOpState = CONNECT_SYST; - return; - } - } - - // go through appropriate logon procedure + if (m_Operation.nOpState==CONNECT_INIT) + { + if (logontype) + { + CString str; + str.Format(IDS_STATUSMSG_FWCONNECT,hostname); + ShowStatus(str,FZ_LOG_STATUS); + } + m_Operation.nOpState++; + } + else if (m_Operation.nOpState >= 0 && !bSkipReply) + { + m_Operation.nOpState=logonseq[logontype][m_Operation.nOpState+GetReplyCode()-1]; //get next command from array + switch(m_Operation.nOpState) + { + case ER: // ER means summat has gone wrong + DoClose(); + return; + case LO: //LO means we are logged on + if (Send(L"SYST")) + m_Operation.nOpState = CONNECT_SYST; + return; + } + } + + // go through appropriate logon procedure #ifndef MPEXT_NO_GSS - int i = logonseq[logontype][m_Operation.nOpState]; - if (m_pGssLayer) - { - if ((i == 0 || i == 6 || i == 9 || i == 10) && - (m_CurrentServer.user == _MPT("anonymous") || m_CurrentServer.user == _MPT(""))) - { - //Extract user from kerberos ticket - char str[256]; - if (m_pGssLayer->GetUserFromKrbTicket(str)) - m_CurrentServer.user = str; - if (m_CurrentServer.user == _MPT("")) - { - CGssNeedUserRequestData *pData = new CGssNeedUserRequestData; - pData->nRequestID = m_pOwner->GetNextAsyncRequestID(); - pData->nOldOpState = m_Operation.nOpState; - m_Operation.nOpState = CONNECT_GSS_NEEDUSER; - if (!PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_GSS_NEEDUSER), (LPARAM)pData)) - { - delete pData; - } - else - { - m_bCheckForTimeout = FALSE; - } - return; - } - } - else if ((i == 1 || i == 11) && (m_CurrentServer.pass == COptions::GetOption(OPTION_ANONPWD) || m_CurrentServer.pass == "")) - { - CGssNeedPassRequestData *pData=new CGssNeedPassRequestData; - pData->nRequestID=m_pOwner->GetNextAsyncRequestID(); - pData->nOldOpState = m_Operation.nOpState; - m_Operation.nOpState = CONNECT_GSS_NEEDPASS; - if (!PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_GSS_NEEDPASS), (LPARAM)pData)) - { - delete pData; - } - else - { - m_bCheckForTimeout = FALSE; - } - return; - } - } + int i = logonseq[logontype][m_Operation.nOpState]; + if (m_pGssLayer) + { + if ((i == 0 || i == 6 || i == 9 || i == 10) && + (m_CurrentServer.user == L"anonymous" || m_CurrentServer.user == L"")) + { + //Extract user from kerberos ticket + char str[256]; + if (m_pGssLayer->GetUserFromKrbTicket(str)) + m_CurrentServer.user = str; + if (m_CurrentServer.user == L"") + { + CGssNeedUserRequestData *pData = new CGssNeedUserRequestData; + pData->nRequestID = m_pOwner->GetNextAsyncRequestID(); + pData->nOldOpState = m_Operation.nOpState; + m_Operation.nOpState = CONNECT_GSS_NEEDUSER; + if (!GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_GSS_NEEDUSER), (LPARAM)pData)) + { + delete pData; + } + else + { + m_bCheckForTimeout = FALSE; + } + return; + } + } + else if ((i == 1 || i == 11) && (m_CurrentServer.pass == GetOption(OPTION_ANONPWD) || m_CurrentServer.pass == "")) + { + CGssNeedPassRequestData *pData=new CGssNeedPassRequestData; + pData->nRequestID=m_pOwner->GetNextAsyncRequestID(); + pData->nOldOpState = m_Operation.nOpState; + m_Operation.nOpState = CONNECT_GSS_NEEDPASS; + if (!GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_GSS_NEEDPASS), (LPARAM)pData)) + { + delete pData; + } + else + { + m_bCheckForTimeout = FALSE; + } + return; + } + } #endif - CLogonData *pData = static_cast(m_Operation.pData); - bool needpass = (m_CurrentServer.pass == COptions::GetOption(OPTION_ANONPWD)) || (m_CurrentServer.pass == _MPT("")); - switch(logonseq[logontype][m_Operation.nOpState]) - { - case 0: - temp=_MPT("USER ")+m_CurrentServer.user; - break; - case 1: - if (needpass && !pData->waitForAsyncRequest && !pData->gotPassword) - { - CNeedPassRequestData *pNeedPassRequestData = new CNeedPassRequestData(); - pNeedPassRequestData->nRequestID = m_pOwner->GetNextAsyncRequestID(); - pNeedPassRequestData->nOldOpState = m_Operation.nOpState; - m_Operation.nOpState = CONNECT_NEEDPASS; - if (!PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_NEEDPASS), (LPARAM)pNeedPassRequestData)) - { - delete pNeedPassRequestData; - ResetOperation(FZ_REPLY_ERROR); - } - else - { - m_bCheckForTimeout = FALSE; - } - pData->waitForAsyncRequest = true; - return; - } - else if (!needpass || pData->gotPassword) - { - temp=_MPT("PASS ")+m_CurrentServer.pass; - } - else - { - return; - } - break; - case 2: - temp=_MPT("ACCT ")+CCrypt::decrypt(COptions::GetOption(OPTION_FWPASS)); - break; - case 3: - temp=_MPT("USER ")+COptions::GetOption(OPTION_FWUSER); - break; - case 4: - temp=_MPT("PASS ")+CCrypt::decrypt(COptions::GetOption(OPTION_FWPASS)); - break; - case 5: - temp=_MPT("SITE ")+hostname; - break; - case 6: - temp=_MPT("USER ")+m_CurrentServer.user+_MPT("@")+hostname; - break; - case 7: - temp=_MPT("OPEN ")+hostname; - break; - case 8: - temp=_MPT("USER ")+COptions::GetOption(OPTION_FWUSER)+_MPT("@")+hostname; - break; - case 9: - temp=_MPT("USER ")+m_CurrentServer.user+_MPT("@")+hostname+_MPT(" ")+COptions::GetOption(OPTION_FWUSER); - break; - case 10: - temp=_MPT("USER ")+m_CurrentServer.user+_MPT("@")+COptions::GetOption(OPTION_FWUSER)+_MPT("@")+hostname; - break; - case 11: - if (needpass && !pData->waitForAsyncRequest && !pData->gotPassword) - { - CNeedPassRequestData *pNeedPassRequestData = new CNeedPassRequestData(); - pNeedPassRequestData->nRequestID = m_pOwner->GetNextAsyncRequestID(); - pNeedPassRequestData->nOldOpState = m_Operation.nOpState; - m_Operation.nOpState = CONNECT_NEEDPASS; - if (!PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_NEEDPASS), (LPARAM)pNeedPassRequestData)) - { - delete pNeedPassRequestData; - ResetOperation(FZ_REPLY_ERROR); - } - else - { - m_bCheckForTimeout = FALSE; - } - pData->waitForAsyncRequest = true; - return; - } - else if (!needpass || pData->gotPassword) - { - temp=_MPT("PASS ")+m_CurrentServer.pass+_MPT("@")+CCrypt::decrypt(COptions::GetOption(OPTION_FWPASS)); - } - else - { - return; - } - break; - case 12: - if (m_CurrentServer.account == _T("")) - temp = _T("ACCT default"); - else - temp = _T("ACCT ") + m_CurrentServer.account; - break; - } - // send command, get response - if(!Send(temp)) - return; + CLogonData *pData = static_cast(m_Operation.pData); + bool needpass = (m_CurrentServer.pass == GetOption(OPTION_ANONPWD)) || (m_CurrentServer.pass == L""); + switch(logonseq[logontype][m_Operation.nOpState]) + { + case 0: + temp=L"USER "+m_CurrentServer.user; + break; + case 1: + if (needpass && !pData->waitForAsyncRequest && !pData->gotPassword) + { + CNeedPassRequestData *pNeedPassRequestData = new CNeedPassRequestData(); + pNeedPassRequestData->nRequestID = m_pOwner->GetNextAsyncRequestID(); + pNeedPassRequestData->nOldOpState = m_Operation.nOpState; + m_Operation.nOpState = CONNECT_NEEDPASS; + if (!GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_NEEDPASS), (LPARAM)pNeedPassRequestData)) + { + delete pNeedPassRequestData; + ResetOperation(FZ_REPLY_ERROR); + } + else + { + m_bCheckForTimeout = FALSE; + } + pData->waitForAsyncRequest = true; + return; + } + else if (!needpass || pData->gotPassword) + { + temp=L"PASS "+m_CurrentServer.pass; + } + else + { + return; + } + break; + case 2: + temp=L"ACCT "+GetOption(OPTION_FWPASS); + break; + case 3: + temp=L"USER "+GetOption(OPTION_FWUSER); + break; + case 4: + temp=L"PASS "+GetOption(OPTION_FWPASS); + break; + case 5: + temp=L"SITE "+hostname; + break; + case 6: + temp=L"USER "+m_CurrentServer.user+L"@"+hostname; + break; + case 7: + temp=L"OPEN "+hostname; + break; + case 8: + temp=L"USER "+GetOption(OPTION_FWUSER)+L"@"+hostname; + break; + case 9: + temp=L"USER "+m_CurrentServer.user+L"@"+hostname+L" "+GetOption(OPTION_FWUSER); + break; + case 10: + temp=L"USER "+m_CurrentServer.user+L"@"+GetOption(OPTION_FWUSER)+L"@"+hostname; + break; + case 11: + if (needpass && !pData->waitForAsyncRequest && !pData->gotPassword) + { + CNeedPassRequestData *pNeedPassRequestData = new CNeedPassRequestData(); + pNeedPassRequestData->nRequestID = m_pOwner->GetNextAsyncRequestID(); + pNeedPassRequestData->nOldOpState = m_Operation.nOpState; + m_Operation.nOpState = CONNECT_NEEDPASS; + if (!GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_NEEDPASS), (LPARAM)pNeedPassRequestData)) + { + delete pNeedPassRequestData; + ResetOperation(FZ_REPLY_ERROR); + } + else + { + m_bCheckForTimeout = FALSE; + } + pData->waitForAsyncRequest = true; + return; + } + else if (!needpass || pData->gotPassword) + { + temp=L"PASS "+m_CurrentServer.pass+L"@"+GetOption(OPTION_FWPASS); + } + else + { + return; + } + break; + case 12: + if (m_CurrentServer.account == L"") + temp = L"ACCT default"; + else + temp = L"ACCT " + m_CurrentServer.account; + break; + } + // send command, get response + if(!Send(temp)) + return; } BOOL CFtpControlSocket::SendAuthSsl() { - if (!Send("AUTH SSL")) - return false; - m_Operation.nOpState = CONNECT_SSL_NEGOTIATE; - return true; + if (!Send("AUTH SSL")) + return false; + m_Operation.nOpState = CONNECT_SSL_NEGOTIATE; + return true; } #define BUFFERSIZE 4096 void CFtpControlSocket::OnReceive(int nErrorCode) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("OnReceive(%d) OpMode=%d OpState=%d"), nErrorCode, m_Operation.nOpMode, m_Operation.nOpState); - - m_LastRecvTime = CTime::GetCurrentTime(); - PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_SOCKETSTATUS, FZ_SOCKETSTATUS_RECV), 0); - - if (!m_pOwner->IsConnected()) - { - if (!m_Operation.nOpMode) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_INFO, _T("Socket has been closed, don't process receive") ); - return; - } - m_MultiLine = ""; - CString str; - str.Format(IDS_STATUSMSG_CONNECTEDWITH, m_ServerName); - ShowStatus(str, FZ_LOG_PROGRESS); - m_pOwner->SetConnected(TRUE); - } - char *buffer = new char[BUFFERSIZE]; - int numread = Receive(buffer, BUFFERSIZE); - - if (numread == SOCKET_ERROR) - { - delete [] buffer; - buffer = NULL; - if (GetLastError() != WSAEWOULDBLOCK) - { - ShowStatus(IDS_STATUSMSG_DISCONNECTED, FZ_LOG_ERROR); - DoClose(); - } - return; - } - if (!numread) - { - delete [] buffer; - buffer = NULL; - ShowStatus(IDS_STATUSMSG_DISCONNECTED, FZ_LOG_ERROR); - DoClose(); - } - - for (int i=0; i < numread; i++) - { - if ((buffer[i] == '\r') || (buffer[i] == '\n') || (buffer[i] == 0)) - { - if (!m_RecvBuffer.empty() && m_RecvBuffer.back() != "") - { - USES_CONVERSION; - if (m_bUTF8) - { - // convert from UTF-8 to ANSI - LPCSTR utf8 = (LPCSTR)m_RecvBuffer.back(); - if (!utf8_valid((const unsigned char*)utf8, strlen(utf8))) - { - if (m_CurrentServer.nUTF8 != 1) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Server does not send proper UTF-8, falling back to local charset")); - m_bUTF8 = false; - } - ShowStatus(A2CT(utf8), FZ_LOG_REPLY); - } - else - { - int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0); - if (!len) - m_RecvBuffer.back() = ""; - else - { - LPWSTR p1 = new WCHAR[len + 1]; - MultiByteToWideChar(CP_UTF8, 0, utf8, -1 , (LPWSTR)p1, len + 1); - ShowStatus(W2CT(p1), FZ_LOG_REPLY); - delete [] p1; - } - } - } - else - { - ShowStatus(A2CT(m_RecvBuffer.back()), FZ_LOG_REPLY); - } - // Check for multi-line responses - // Partially duplicated in TFTPFileSystem::HandleReplyStatus - if (m_RecvBuffer.back().GetLength() > 3) - { - if (m_MultiLine != "") - { - if (m_RecvBuffer.back().Left(4) != m_MultiLine) - { - CStringA line = m_RecvBuffer.back(); - if (line.Left(4) == m_MultiLine.Left(3) + '-') - { - line = line.Mid(4, line.GetLength() - 4); - } - DiscardLine(line); - m_RecvBuffer.pop_back(); - } - else // end of multi-line found - { - m_MultiLine = ""; - m_pOwner->PostThreadMessage(m_pOwner->m_nInternalMessageID, FZAPI_THREADMSG_PROCESSREPLY, 0); - } - } - // start of new multi-line - else if (m_RecvBuffer.back()[3] == '-') - { - // DDD is the end of a multi-line response - m_MultiLine = m_RecvBuffer.back().Left(3) + ' '; - m_RecvBuffer.pop_back(); - } - else - { - m_pOwner->PostThreadMessage(m_pOwner->m_nInternalMessageID, FZAPI_THREADMSG_PROCESSREPLY, 0); - } - } - else - { - m_RecvBuffer.pop_back(); - } - m_RecvBuffer.push_back(""); - } - } - else - { - //The command may only be 2000 chars long. This ensures that a malicious user can't - //send extremely large commands to fill the memory of the server - if (m_RecvBuffer.empty()) - m_RecvBuffer.push_back(""); - if (m_RecvBuffer.back().GetLength() < 2000) - m_RecvBuffer.back() += buffer[i]; - } - } - - delete [] buffer; + m_LastRecvTime = CTime::GetCurrentTime(); + + if (!m_pOwner->IsConnected()) + { + if (!m_Operation.nOpMode) + { + LogMessage(FZ_LOG_INFO, L"Socket has been closed, don't process receive" ); + return; + } + m_MultiLine = ""; + CString str; + str.Format(IDS_STATUSMSG_CONNECTEDWITH, m_ServerName); + ShowStatus(str, FZ_LOG_PROGRESS); + m_pOwner->SetConnected(TRUE); + } + char *buffer = new char[BUFFERSIZE]; + int numread = Receive(buffer, BUFFERSIZE); + + if (numread == SOCKET_ERROR) + { + delete [] buffer; + buffer = NULL; + if (GetLastError() != WSAEWOULDBLOCK) + { + ShowStatus(IDS_STATUSMSG_DISCONNECTED, FZ_LOG_ERROR); + DoClose(); + } + return; + } + if (!numread) + { + delete [] buffer; + buffer = NULL; + ShowStatus(IDS_STATUSMSG_DISCONNECTED, FZ_LOG_ERROR); + DoClose(); + } + + for (int i=0; i < numread; i++) + { + if ((buffer[i] == '\r') || (buffer[i] == '\n') || (buffer[i] == 0)) + { + if (!m_RecvBuffer.empty() && m_RecvBuffer.back() != "") + { + USES_CONVERSION; + if (m_bUTF8) + { + // convert from UTF-8 to ANSI + LPCSTR utf8 = (LPCSTR)m_RecvBuffer.back(); + if (DetectUTF8Encoding(RawByteString(utf8)) == etANSI) + { + if (m_CurrentServer.nUTF8 != 1) + { + LogMessage(FZ_LOG_WARNING, L"Server does not send proper UTF-8, falling back to local charset"); + m_bUTF8 = false; + } + ShowStatus(A2CT(utf8), FZ_LOG_REPLY); + } + else + { + int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0); + if (!len) + m_RecvBuffer.back() = ""; + else + { + LPWSTR p1 = new WCHAR[len + 1]; + MultiByteToWideChar(CP_UTF8, 0, utf8, -1 , (LPWSTR)p1, len + 1); + ShowStatus(W2CT(p1), FZ_LOG_REPLY); + delete [] p1; + } + } + } + else + { + ShowStatus(A2CT(m_RecvBuffer.back()), FZ_LOG_REPLY); + } + // Check for multi-line responses + // Partially duplicated in TFTPFileSystem::HandleReplyStatus + if (m_RecvBuffer.back().GetLength() > 3) + { + if (m_MultiLine != "") + { + if (m_RecvBuffer.back().Left(4) != m_MultiLine) + { + CStringA line = m_RecvBuffer.back(); + if (line.Left(4) == m_MultiLine.Left(3) + '-') + { + line = line.Mid(4, line.GetLength() - 4); + } + DiscardLine(line); + m_RecvBuffer.pop_back(); + } + else // end of multi-line found + { + m_MultiLine = ""; + m_pOwner->PostThreadMessage(m_pOwner->m_nInternalMessageID, FZAPI_THREADMSG_PROCESSREPLY, 0); + } + } + // start of new multi-line + else if (m_RecvBuffer.back()[3] == '-') + { + // DDD is the end of a multi-line response + m_MultiLine = m_RecvBuffer.back().Left(3) + ' '; + m_RecvBuffer.pop_back(); + } + else + { + m_pOwner->PostThreadMessage(m_pOwner->m_nInternalMessageID, FZAPI_THREADMSG_PROCESSREPLY, 0); + } + } + else + { + m_RecvBuffer.pop_back(); + } + m_RecvBuffer.push_back(""); + } + } + else + { + //The command may only be 2000 chars long. This ensures that a malicious user can't + //send extremely large commands to fill the memory of the server + if (m_RecvBuffer.empty()) + m_RecvBuffer.push_back(""); + if (m_RecvBuffer.back().GetLength() < 2000) + m_RecvBuffer.back() += buffer[i]; + } + } + + delete [] buffer; } void CFtpControlSocket::ProcessReply() { - if (m_RecvBuffer.empty()) - return; - - if (m_awaitsReply) - { - if (m_sendBuffer) - TriggerEvent(FD_WRITE); - m_awaitsReply = false; - } - - CString reply = GetReply(); - if ( reply == _T("") ) - return; - - // After Cancel, we might have to skip a reply - if (m_skipReply) - { - m_skipReply = false; - m_RecvBuffer.pop_front(); - return; - } - - if (m_bKeepAliveActive) - { - m_bKeepAliveActive = FALSE; - m_pOwner->PostThreadMessage(m_pOwner->m_nInternalMessageID,FZAPI_THREADMSG_POSTKEEPALIVE,0); - } - else if (m_Operation.nOpMode&CSMODE_CONNECT) - LogOnToServer(); - else if (m_Operation.nOpMode& (CSMODE_COMMAND|CSMODE_CHMOD) ) - { - if (GetReplyCode()== 2 || GetReplyCode()== 3) - ResetOperation(FZ_REPLY_OK); - else - ResetOperation(FZ_REPLY_ERROR); - } - else if (m_Operation.nOpMode&CSMODE_TRANSFER) - { - FileTransfer(0); - } - else if (m_Operation.nOpMode&CSMODE_LIST) - List(FALSE); - else if (m_Operation.nOpMode&CSMODE_LISTFILE) - ListFile(_T(""), CServerPath()); - else if (m_Operation.nOpMode&CSMODE_DELETE) - Delete( _T(""),CServerPath()); - else if (m_Operation.nOpMode&CSMODE_RMDIR) - RemoveDir( _T(""),CServerPath()); - else if (m_Operation.nOpMode&CSMODE_MKDIR) - MakeDir(CServerPath()); - else if (m_Operation.nOpMode&CSMODE_RENAME) - Rename(_T(""), _T(""), CServerPath(), CServerPath()); - - if (!m_RecvBuffer.empty()) - m_RecvBuffer.pop_front(); + if (m_RecvBuffer.empty()) + return; + + if (m_awaitsReply) + { + if (m_sendBuffer) + TriggerEvent(FD_WRITE); + m_awaitsReply = false; + } + + CString reply = GetReply(); + if ( reply == L"" ) + return; + + // After Cancel, we might have to skip a reply + if (m_skipReply) + { + m_skipReply = false; + m_RecvBuffer.pop_front(); + return; + } + + if (m_bKeepAliveActive) + { + m_bKeepAliveActive = FALSE; + m_pOwner->PostThreadMessage(m_pOwner->m_nInternalMessageID,FZAPI_THREADMSG_POSTKEEPALIVE,0); + } + else if (m_Operation.nOpMode&CSMODE_CONNECT) + LogOnToServer(); + else if (m_Operation.nOpMode& (CSMODE_COMMAND|CSMODE_CHMOD) ) + { + if (GetReplyCode()== 2 || GetReplyCode()== 3) + ResetOperation(FZ_REPLY_OK); + else + ResetOperation(FZ_REPLY_ERROR); + } + else if (m_Operation.nOpMode&CSMODE_TRANSFER) + { + FileTransfer(0); + } + else if (m_Operation.nOpMode&CSMODE_LIST) + List(FALSE); + else if (m_Operation.nOpMode&CSMODE_LISTFILE) + ListFile(L"", CServerPath()); + else if (m_Operation.nOpMode&CSMODE_DELETE) + Delete( L"",CServerPath()); + else if (m_Operation.nOpMode&CSMODE_RMDIR) + RemoveDir( L"",CServerPath()); + else if (m_Operation.nOpMode&CSMODE_MKDIR) + MakeDir(CServerPath()); + else if (m_Operation.nOpMode&CSMODE_RENAME) + Rename(L"", L"", CServerPath(), CServerPath()); + + if (!m_RecvBuffer.empty()) + m_RecvBuffer.pop_front(); } void CFtpControlSocket::OnConnect(int nErrorCode) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("OnConnect(%d) OpMode=%d OpState=%d"), nErrorCode, m_Operation.nOpMode, m_Operation.nOpState); - - if (!m_Operation.nOpMode) - { - if (!m_pOwner->IsConnected()) - DoClose(); - return; - } - if (!nErrorCode) - { - if (!m_pOwner->IsConnected()) - { - m_MultiLine = ""; - m_pOwner->SetConnected(TRUE); - CString str; - str.Format( -#ifndef MPEXT_NO_SSL - m_pSslLayer ? IDS_STATUSMSG_CONNECTEDWITHSSL : -#endif - IDS_STATUSMSG_CONNECTEDWITH, m_ServerName); - ShowStatus(str,FZ_LOG_PROGRESS); - } - } - else - { - if (nErrorCode == WSAHOST_NOT_FOUND) - { - CString str; - str.Format(IDS_ERRORMSG_CANTRESOLVEHOST2, m_ServerName); - ShowStatus(str, FZ_LOG_ERROR); - } -#ifdef MPEXT - else - { - TCHAR Buffer[255]; - int Len = FormatMessage( - FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ARGUMENT_ARRAY, - NULL, nErrorCode, 0, Buffer, LENOF(Buffer), NULL); - while ((Len > 0) && ((Buffer[Len - 1] >= 0) && (Buffer[Len - 1] <= 32))) - { - --Len; - } - ShowStatus(CString(Buffer, Len), FZ_LOG_ERROR); - } -#endif - DoClose(); - } + + if (!m_Operation.nOpMode) + { + if (!m_pOwner->IsConnected()) + DoClose(); + return; + } + if (!nErrorCode) + { + if (!m_pOwner->IsConnected()) + { + m_MultiLine = ""; + m_pOwner->SetConnected(TRUE); + CString str; + str.Format( + m_pSslLayer ? IDS_STATUSMSG_CONNECTEDWITHSSL : IDS_STATUSMSG_CONNECTEDWITH, + m_ServerName); + ShowStatus(str,FZ_LOG_PROGRESS); + } + } + else + { + if (nErrorCode == WSAHOST_NOT_FOUND) + { + CString str; + str.Format(IDS_ERRORMSG_CANTRESOLVEHOST2, m_ServerName); + ShowStatus(str, FZ_LOG_ERROR); + } + else + { + TCHAR Buffer[255]; + int Len = FormatMessage( + FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ARGUMENT_ARRAY, + NULL, nErrorCode, 0, Buffer, LENOF(Buffer), NULL); + while ((Len > 0) && ((Buffer[Len - 1] >= 0) && (Buffer[Len - 1] <= 32))) + { + --Len; + } + ShowStatus(CString(Buffer, Len), FZ_LOG_ERROR); + } + DoClose(); + } } BOOL CFtpControlSocket::Send(CString str) { - USES_CONVERSION; - - ShowStatus(str, FZ_LOG_COMMAND); - str += _MPT("\r\n"); - int res = 0; - if (m_bUTF8) - { - LPCWSTR unicode = T2CW(str); - int len = WideCharToMultiByte(CP_UTF8, 0, unicode, -1, 0, 0, 0, 0); - if (!len) - { - ShowStatus(IDS_ERRORMSG_CANTSENDCOMMAND, FZ_LOG_ERROR); - DoClose(); - return FALSE; - } - char* utf8 = new char[len + 1]; - WideCharToMultiByte(CP_UTF8, 0, unicode, -1, utf8, len + 1, 0, 0); - - int sendLen = strlen(utf8); - if (!m_awaitsReply && !m_sendBuffer) - res = CAsyncSocketEx::Send(utf8, strlen(utf8)); - else - res = -2; - if ((res == SOCKET_ERROR && GetLastError() != WSAEWOULDBLOCK) || !res) - { - delete [] utf8; - ShowStatus(IDS_ERRORMSG_CANTSENDCOMMAND, FZ_LOG_ERROR); - DoClose(); - return FALSE; - } - if (res != sendLen) - { - if (res < 0) - res = 0; - if (!m_sendBuffer) - { - m_sendBuffer = new char[sendLen - res]; - memcpy(m_sendBuffer, utf8 + res, sendLen - res); - m_sendBufferLen = sendLen - res; - } - else - { - char* tmp = new char[m_sendBufferLen + sendLen - res]; - memcpy(tmp, m_sendBuffer, m_sendBufferLen); - memcpy(tmp + m_sendBufferLen, utf8 + res, sendLen - res); - delete [] m_sendBuffer; - m_sendBuffer = tmp; - m_sendBufferLen += sendLen - res; - } - } - delete [] utf8; - } - else - { - LPCSTR lpszAsciiSend = T2CA(str); - - int sendLen = strlen(lpszAsciiSend); - if (!m_awaitsReply && !m_sendBuffer) - res = CAsyncSocketEx::Send(lpszAsciiSend, strlen(lpszAsciiSend)); - else - res = -2; - if ((res == SOCKET_ERROR && GetLastError() != WSAEWOULDBLOCK) || !res) - { - ShowStatus(IDS_ERRORMSG_CANTSENDCOMMAND, FZ_LOG_ERROR); - DoClose(); - return FALSE; - } - if (res != sendLen) - { - if (res < 0) - res = 0; - if (!m_sendBuffer) - { - m_sendBuffer = new char[sendLen - res]; - memcpy(m_sendBuffer, lpszAsciiSend, sendLen - res); - m_sendBufferLen = sendLen - res; - } - else - { - char* tmp = new char[m_sendBufferLen + sendLen - res]; - memcpy(tmp, m_sendBuffer, m_sendBufferLen); - memcpy(tmp + m_sendBufferLen, lpszAsciiSend + res, sendLen - res); - delete [] m_sendBuffer; - m_sendBuffer = tmp; - m_sendBufferLen += sendLen - res; - } - } - } - if (res > 0) - { - m_awaitsReply = true; - m_LastSendTime = CTime::GetCurrentTime(); - // Count timeout since the last request, not only since the last received data - // otherwise we may happen to timeout immediately after sending request if - // CheckForTimeout occurs in between and we haven't received any data for a while - m_LastRecvTime = m_LastSendTime; - PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_SOCKETSTATUS, FZ_SOCKETSTATUS_SEND), 0); - } - return TRUE; + USES_CONVERSION; + + ShowStatus(str, FZ_LOG_COMMAND); + str += L"\r\n"; + int res = 0; + if (m_bUTF8) + { + LPCWSTR unicode = T2CW(str); + int len = WideCharToMultiByte(CP_UTF8, 0, unicode, -1, 0, 0, 0, 0); + if (!len) + { + ShowStatus(IDS_ERRORMSG_CANTSENDCOMMAND, FZ_LOG_ERROR); + DoClose(); + return FALSE; + } + char* utf8 = new char[len + 1]; + WideCharToMultiByte(CP_UTF8, 0, unicode, -1, utf8, len + 1, 0, 0); + + int sendLen = strlen(utf8); + if (!m_awaitsReply && !m_sendBuffer) + res = CAsyncSocketEx::Send(utf8, strlen(utf8)); + else + res = -2; + if ((res == SOCKET_ERROR && GetLastError() != WSAEWOULDBLOCK) || !res) + { + delete [] utf8; + ShowStatus(IDS_ERRORMSG_CANTSENDCOMMAND, FZ_LOG_ERROR); + DoClose(); + return FALSE; + } + if (res != sendLen) + { + if (res < 0) + res = 0; + if (!m_sendBuffer) + { + m_sendBuffer = new char[sendLen - res]; + memcpy(m_sendBuffer, utf8 + res, sendLen - res); + m_sendBufferLen = sendLen - res; + } + else + { + char* tmp = new char[m_sendBufferLen + sendLen - res]; + memcpy(tmp, m_sendBuffer, m_sendBufferLen); + memcpy(tmp + m_sendBufferLen, utf8 + res, sendLen - res); + delete [] m_sendBuffer; + m_sendBuffer = tmp; + m_sendBufferLen += sendLen - res; + } + } + delete [] utf8; + } + else + { + LPCSTR lpszAsciiSend = T2CA(str); + + int sendLen = strlen(lpszAsciiSend); + if (!m_awaitsReply && !m_sendBuffer) + res = CAsyncSocketEx::Send(lpszAsciiSend, strlen(lpszAsciiSend)); + else + res = -2; + if ((res == SOCKET_ERROR && GetLastError() != WSAEWOULDBLOCK) || !res) + { + ShowStatus(IDS_ERRORMSG_CANTSENDCOMMAND, FZ_LOG_ERROR); + DoClose(); + return FALSE; + } + if (res != sendLen) + { + if (res < 0) + res = 0; + if (!m_sendBuffer) + { + m_sendBuffer = new char[sendLen - res]; + memcpy(m_sendBuffer, lpszAsciiSend, sendLen - res); + m_sendBufferLen = sendLen - res; + } + else + { + char* tmp = new char[m_sendBufferLen + sendLen - res]; + memcpy(tmp, m_sendBuffer, m_sendBufferLen); + memcpy(tmp + m_sendBufferLen, lpszAsciiSend + res, sendLen - res); + delete [] m_sendBuffer; + m_sendBuffer = tmp; + m_sendBufferLen += sendLen - res; + } + } + } + if (res > 0) + { + m_awaitsReply = true; + m_LastSendTime = CTime::GetCurrentTime(); + // Count timeout since the last request, not only since the last received data + // otherwise we may happen to timeout immediately after sending request if + // CheckForTimeout occurs in between and we haven't received any data for a while + m_LastRecvTime = m_LastSendTime; + } + return TRUE; } int CFtpControlSocket::GetReplyCode() { - if (m_RecvBuffer.empty()) - return 0; - CStringA str = m_RecvBuffer.front(); - if (str == "") - return 0; - else - return str[0]-'0'; + if (m_RecvBuffer.empty()) + return 0; + CStringA str = m_RecvBuffer.front(); + if (str == "") + return 0; + else + return str[0]-'0'; } void CFtpControlSocket::DoClose(int nError /*=0*/) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("DoClose(%d) OpMode=%d OpState=%d"), nError, m_Operation.nOpMode, m_Operation.nOpState); - - m_bCheckForTimeout=TRUE; - m_pOwner->SetConnected(FALSE); - m_bKeepAliveActive=FALSE; - PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_SECURESERVER, FALSE), 0); - if (nError & FZ_REPLY_CRITICALERROR) - nError |= FZ_REPLY_ERROR; - ResetOperation(FZ_REPLY_ERROR|FZ_REPLY_DISCONNECTED|nError); - m_RecvBuffer.clear(); - m_MultiLine = ""; -#ifndef MPEXT_NO_SSL - m_bDidRejectCertificate = FALSE; -#endif + m_bCheckForTimeout=TRUE; + m_pOwner->SetConnected(FALSE); + m_bKeepAliveActive=FALSE; + if (nError & FZ_REPLY_CRITICALERROR) + nError |= FZ_REPLY_ERROR; + ResetOperation(FZ_REPLY_ERROR|FZ_REPLY_DISCONNECTED|nError); + m_RecvBuffer.clear(); + m_MultiLine = ""; + m_bDidRejectCertificate = FALSE; #ifndef MPEXT_NO_ZLIB - m_useZlib = false; - m_zlibSupported = false; - m_zlibLevel = 0; + m_useZlib = false; + m_zlibSupported = false; + m_zlibLevel = 0; #endif - m_bUTF8 = false; - m_hasClntCmd = false; -#ifdef MPEXT - m_serverCapabilities.Clear(); - m_ListFile = ""; -#endif + m_bUTF8 = false; + m_hasClntCmd = false; + m_serverCapabilities.Clear(); + m_ListFile = ""; - m_awaitsReply = false; - m_skipReply = false; + m_awaitsReply = false; + m_skipReply = false; - delete [] m_sendBuffer; - m_sendBuffer = 0; - m_sendBufferLen = 0; + delete [] m_sendBuffer; + m_sendBuffer = 0; + m_sendBufferLen = 0; - m_bProtP = false; + m_bProtP = false; - m_mayBeMvsFilesystem = false; - m_mayBeBS2000Filesystem = false; - - CControlSocket::Close(); + m_mayBeMvsFilesystem = false; + m_mayBeBS2000Filesystem = false; + + Close(); } void CFtpControlSocket::Disconnect() { - ASSERT(!m_Operation.nOpMode); - m_Operation.nOpMode=CSMODE_DISCONNECT; - DoClose(); - ShowStatus(IDS_STATUSMSG_DISCONNECTED,FZ_LOG_STATUS); //Send the disconnected message to the message log + DebugAssert(!m_Operation.nOpMode); + m_Operation.nOpMode=CSMODE_DISCONNECT; + DoClose(); + ShowStatus(IDS_STATUSMSG_DISCONNECTED,FZ_LOG_STATUS); //Send the disconnected message to the message log } void CFtpControlSocket::CheckForTimeout() { - if (!m_Operation.nOpMode && !m_bKeepAliveActive) - return; - if (!m_bCheckForTimeout) - return; - int delay=COptions::GetOptionVal(OPTION_TIMEOUTLENGTH); - if (m_pTransferSocket) - { - int res=m_pTransferSocket->CheckForTimeout(delay); - if (res) - return; - } - CTimeSpan span=CTime::GetCurrentTime()-m_LastRecvTime; - if (span.GetTotalSeconds()>=delay) - { - ShowTimeoutError(IDS_CONTROL_CONNECTION); - DoClose(); - } + if (!m_Operation.nOpMode && !m_bKeepAliveActive) + return; + if (!m_bCheckForTimeout) + return; + int delay=GetOptionVal(OPTION_TIMEOUTLENGTH); + if (m_pTransferSocket) + { + int res=m_pTransferSocket->CheckForTimeout(delay); + if (res) + return; + } + CTimeSpan span=CTime::GetCurrentTime()-m_LastRecvTime; + if (span.GetTotalSeconds()>=delay) + { + ShowTimeoutError(IDS_CONTROL_CONNECTION); + DoClose(); + } } void CFtpControlSocket::FtpCommand(LPCTSTR pCommand) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("FtpCommand(%s) OpMode=%d OpState=%d"), pCommand, m_Operation.nOpMode, m_Operation.nOpState); - m_Operation.nOpMode=CSMODE_COMMAND; - Send(pCommand); + m_Operation.nOpMode=CSMODE_COMMAND; + Send(pCommand); } -#ifdef MPEXT bool CFtpControlSocket::UsingMlsd() { - return - // 0 = on, 1 = off, 2 = auto - (m_CurrentServer.iUseMlsd == 0) || - ((m_CurrentServer.iUseMlsd != 1) && - (m_serverCapabilities.GetCapability(mlsd_command) == yes)); + return + // 0 = on, 1 = off, 2 = auto + (m_CurrentServer.iUseMlsd == 0) || + ((m_CurrentServer.iUseMlsd != 1) && + (m_serverCapabilities.GetCapability(mlsd_command) == yes)); } bool CFtpControlSocket::UsingUtf8() { - return m_bUTF8; + return m_bUTF8; } std::string CFtpControlSocket::GetTlsVersionStr() { - if (m_pSslLayer != NULL) - { - return m_pSslLayer->GetTlsVersionStr(); - } - else - { - return std::string(); - } + if (m_pSslLayer != NULL) + { + return m_pSslLayer->GetTlsVersionStr(); + } + else + { + return std::string(); + } } std::string CFtpControlSocket::GetCipherName() { - if (m_pSslLayer != NULL) - { - return m_pSslLayer->GetCipherName(); - } - else - { - return std::string(); - } + if (m_pSslLayer != NULL) + { + return m_pSslLayer->GetCipherName(); + } + else + { + return std::string(); + } } -#endif CString CFtpControlSocket::GetListingCmd() { - CString cmd; - if (UsingMlsd()) - { - cmd = _T("MLSD"); - } - else - { - cmd = _T("LIST"); - if (COptions::GetOptionVal(OPTION_MPEXT_SHOWHIDDEN) && !(m_CurrentServer.nServerType & (FZ_SERVERTYPE_SUB_FTP_MVS | FZ_SERVERTYPE_SUB_FTP_VMS | FZ_SERVERTYPE_SUB_FTP_BS2000))) - cmd += _T(" -a"); - } - return cmd; + CString cmd; + if (UsingMlsd()) + { + cmd = L"MLSD"; + } + else + { + cmd = L"LIST"; + if (GetOptionVal(OPTION_MPEXT_SHOWHIDDEN) && !(m_CurrentServer.nServerType & (FZ_SERVERTYPE_SUB_FTP_MVS | FZ_SERVERTYPE_SUB_FTP_VMS | FZ_SERVERTYPE_SUB_FTP_BS2000))) + cmd += L" -a"; + } + return cmd; } -void CFtpControlSocket::List(BOOL bFinish, int nError /*=FALSE*/, CServerPath path /*=CServerPath()*/, CString subdir /*=_MPT("")*/,int nListMode/*=0*/) +void CFtpControlSocket::List(BOOL bFinish, int nError /*=FALSE*/, CServerPath path /*=CServerPath()*/, CString subdir /*=L""*/) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("List(%s,%d,\"%s\",\"%s\",%d) OpMode=%d OpState=%d"), bFinish?_T("TRUE"):_T("FALSE"), nError, path.GetPath(), subdir, nListMode, - m_Operation.nOpMode, m_Operation.nOpState); - - USES_CONVERSION; - - #define LIST_INIT -1 - #define LIST_PWD 0 - #define LIST_CWD 1 - #define LIST_PWD2 2 - #define LIST_CWD2 3 - #define LIST_PWD3 4 - #define LIST_MODE 5 - #define LIST_OPTS 6 - #define LIST_PORT_PASV 7 - #define LIST_TYPE 8 - #define LIST_LIST 9 - #define LIST_WAITFINISH 10 - - ASSERT(!m_Operation.nOpMode || m_Operation.nOpMode&CSMODE_LIST); - - m_Operation.nOpMode|=CSMODE_LIST; - - if (!m_pOwner->IsConnected()) - { - ResetOperation(FZ_REPLY_ERROR|FZ_REPLY_NOTCONNECTED); - return; - } - - if (bFinish || nError) - if (m_Operation.nOpMode!=CSMODE_LIST) - return; //Old message coming in - - if (nError) - { - delete m_pTransferSocket; - m_pTransferSocket=0; - if (nError&CSMODE_TRANSFERTIMEOUT) - DoClose(); - else - ResetOperation(FZ_REPLY_ERROR); - return; - } - - CListData *pData = static_cast(m_Operation.pData); - - if (bFinish) - { - if (!m_pTransferSocket || m_pTransferSocket->m_bListening) - { - delete m_pDirectoryListing; - m_pDirectoryListing = 0; - delete m_pTransferSocket; - m_pTransferSocket = 0; - ResetOperation(FZ_REPLY_ERROR); - return; - } - - int num = 0; - pData->pDirectoryListing = new t_directory; - if (COptions::GetOptionVal(OPTION_DEBUGSHOWLISTING)) - m_pTransferSocket->m_pListResult->SendToMessageLog(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID); - pData->pDirectoryListing->direntry = m_pTransferSocket->m_pListResult->getList(num, pData->ListStartTime, false); - pData->pDirectoryListing->num = num; - if (m_pTransferSocket->m_pListResult->m_server.nServerType & FZ_SERVERTYPE_SUB_FTP_VMS && m_CurrentServer.nServerType & FZ_SERVERTYPE_FTP) - m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_VMS; - - pData->pDirectoryListing->server = m_CurrentServer; - pData->pDirectoryListing->path.SetServer(pData->pDirectoryListing->server); - if (pData->rawpwd != _MPT("")) - { - if (!pData->pDirectoryListing->path.SetPath(pData->rawpwd)) - { - delete m_pDirectoryListing; - m_pDirectoryListing=0; - delete m_pTransferSocket; - m_pTransferSocket=0; - ResetOperation(FZ_REPLY_ERROR); - return; - } - m_pOwner->SetCurrentPath(pData->pDirectoryListing->path); - } - else - pData->pDirectoryListing->path = m_pOwner->GetCurrentPath(); - - if (m_Operation.nOpState!=LIST_WAITFINISH) - { - return; - } - else - { - delete m_pTransferSocket; - m_pTransferSocket=0; - } - } - - if (m_Operation.nOpState==LIST_WAITFINISH) - { - if (!bFinish) - { - if (pData->nFinish==-1) - { - int code=GetReplyCode(); - if (code== 2) - { - pData->nFinish=1; - } - else - pData->nFinish=0; - } - } - else - { - if (m_pTransferSocket) - delete m_pTransferSocket; - m_pTransferSocket=0; - } - if (pData->nFinish==0) - { - ResetOperation(FZ_REPLY_ERROR); - return; - } - else if (pData->pDirectoryListing && pData->nFinish==1) - { - ShowStatus(IDS_STATUSMSG_DIRLISTSUCCESSFUL,FZ_LOG_PROGRESS); -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - cache.Lock(); - t_directory dir; - if (!pData->path.IsEmpty() && pData->subdir!=_MPT("")) - { - if (cache.Lookup(pData->pDirectoryListing->path, pData->pDirectoryListing->server, dir)) - pData->pDirectoryListing->Merge(dir, pData->ListStartTime); - cache.Store(*pData->pDirectoryListing,pData->path,pData->subdir); - } - else - { - if (cache.Lookup(pData->pDirectoryListing->path, pData->pDirectoryListing->server, dir)) - pData->pDirectoryListing->Merge(dir, pData->ListStartTime); - cache.Store(*pData->pDirectoryListing); - } - cache.Unlock(); -#endif - SetDirectoryListing(pData->pDirectoryListing); - ResetOperation(FZ_REPLY_OK); - return; - } - return; - } - else if (m_Operation.nOpState != LIST_INIT) - { - CString retmsg = GetReply(); - BOOL error = FALSE; - int code = GetReplyCode(); - switch (m_Operation.nOpState) - { - case LIST_PWD: //Reply to PWD command - if (code != 2 && code !=3 ) - { - error = TRUE; - break; - } - - pData->rawpwd = retmsg; - if ((m_mayBeMvsFilesystem || m_mayBeBS2000Filesystem) && m_CurrentServer.nServerType & FZ_SERVERTYPE_FTP && - pData->rawpwd[0] != _MPT('/')) - { - m_mayBeMvsFilesystem = false; - m_mayBeBS2000Filesystem = false; - if (m_mayBeBS2000Filesystem) - m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_BS2000; - else - m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_MVS; - - if (!pData->path.IsEmpty()) - pData->path.SetServer(m_CurrentServer); - } - if (!ParsePwdReply(pData->rawpwd)) - return; - if (pData->path.IsEmpty() || pData->path == m_pOwner->GetCurrentPath()) - { -#ifndef MPEXT_NO_CACHE - if (pData->nListMode & FZ_LIST_USECACHE) - { - t_directory dir; - CDirectoryCache cache; - BOOL res = cache.Lookup(m_pOwner->GetCurrentPath(), m_CurrentServer, dir); - if (res) - { - BOOL bExact = TRUE; - if (pData->nListMode & FZ_LIST_EXACT) - for (int i=0; irawpwd = retmsg; - if (!ParsePwdReply(pData->rawpwd)) - return; - } - if (pData->subdir != _MPT("")) - { - if (pData->path != m_pOwner->GetCurrentPath()) - { - ResetOperation(FZ_REPLY_ERROR); - return; - } - m_Operation.nOpState = LIST_CWD2; - } - else - { -#ifndef MPEXT_NO_CACHE - if (pData->nListMode & FZ_LIST_USECACHE) - { - t_directory dir; - CDirectoryCache cache; - BOOL res = cache.Lookup(m_pOwner->GetCurrentPath(), m_CurrentServer, dir); - if (res) - { - BOOL bExact = TRUE; - if (pData->nListMode & FZ_LIST_EXACT) - for (int i=0; ilastCmdSentCDUP) - { - CString reply = GetReply().Left(3); - int replycode = _ttoi(reply); - if (replycode >= 500 && replycode < 505) - break; - pData->lastCmdSentCDUP = false; - } - if (code != 2 && code != 3) - error = TRUE; - m_Operation.nOpState = LIST_PWD3; - break; - case LIST_PWD3: //Reply to PWD command - if (code != 2 && code != 3) - error = TRUE; - else - { - pData->rawpwd = retmsg; - if (!ParsePwdReply(pData->rawpwd)) - return; -#ifndef MPEXT_NO_CACHE - if (pData->nListMode & FZ_LIST_USECACHE) - { - t_directory dir; - CDirectoryCache cache; - BOOL res = cache.Lookup(m_pOwner->GetCurrentPath(), m_CurrentServer, dir); - if (res) - { - BOOL bExact = TRUE; - if (pData->nListMode & FZ_LIST_EXACT) - for (int i=0; iIsConnected()) + { + ResetOperation(FZ_REPLY_ERROR|FZ_REPLY_NOTCONNECTED); + return; + } + + if (bFinish || nError) + if (m_Operation.nOpMode!=CSMODE_LIST) + return; //Old message coming in + + if (nError) + { + delete m_pTransferSocket; + m_pTransferSocket=0; + if (nError&CSMODE_TRANSFERTIMEOUT) + DoClose(); + else + ResetOperation(FZ_REPLY_ERROR); + return; + } + + CListData *pData = static_cast(m_Operation.pData); + + if (bFinish) + { + if (!m_pTransferSocket || m_pTransferSocket->m_bListening) + { + delete m_pDirectoryListing; + m_pDirectoryListing = 0; + delete m_pTransferSocket; + m_pTransferSocket = 0; + ResetOperation(FZ_REPLY_ERROR); + return; + } + + int num = 0; + pData->pDirectoryListing = new t_directory; + if (GetOptionVal(OPTION_DEBUGSHOWLISTING)) + m_pTransferSocket->m_pListResult->SendToMessageLog(); + pData->pDirectoryListing->direntry = m_pTransferSocket->m_pListResult->getList(num, false); + pData->pDirectoryListing->num = num; + if (m_pTransferSocket->m_pListResult->m_server.nServerType & FZ_SERVERTYPE_SUB_FTP_VMS && m_CurrentServer.nServerType & FZ_SERVERTYPE_FTP) + m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_VMS; + + pData->pDirectoryListing->server = m_CurrentServer; + pData->pDirectoryListing->path.SetServer(pData->pDirectoryListing->server); + if (pData->rawpwd != L"") + { + if (!pData->pDirectoryListing->path.SetPath(pData->rawpwd)) + { + delete m_pDirectoryListing; + m_pDirectoryListing=0; + delete m_pTransferSocket; + m_pTransferSocket=0; + ResetOperation(FZ_REPLY_ERROR); + return; + } + m_pOwner->SetCurrentPath(pData->pDirectoryListing->path); + } + else + pData->pDirectoryListing->path = m_pOwner->GetCurrentPath(); + + if (m_Operation.nOpState!=LIST_WAITFINISH) + { + return; + } + else + { + delete m_pTransferSocket; + m_pTransferSocket=0; + } + } + + if (m_Operation.nOpState==LIST_WAITFINISH) + { + if (!bFinish) + { + if (pData->nFinish==-1) + { + int code=GetReplyCode(); + if (code== 2) + { + pData->nFinish=1; + } + else + pData->nFinish=0; + } + } + else + { + if (m_pTransferSocket) + delete m_pTransferSocket; + m_pTransferSocket=0; + } + if (pData->nFinish==0) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + else if (pData->pDirectoryListing && pData->nFinish==1) + { + ShowStatus(IDS_STATUSMSG_DIRLISTSUCCESSFUL,FZ_LOG_PROGRESS); + SetDirectoryListing(pData->pDirectoryListing); + ResetOperation(FZ_REPLY_OK); + return; + } + return; + } + else if (m_Operation.nOpState != LIST_INIT) + { + CString retmsg = GetReply(); + BOOL error = FALSE; + int code = GetReplyCode(); + switch (m_Operation.nOpState) + { + case LIST_PWD: //Reply to PWD command + if (code != 2 && code !=3 ) + { + error = TRUE; + break; + } + + pData->rawpwd = retmsg; + if ((m_mayBeMvsFilesystem || m_mayBeBS2000Filesystem) && m_CurrentServer.nServerType & FZ_SERVERTYPE_FTP && + pData->rawpwd[0] != L'/') + { + m_mayBeMvsFilesystem = false; + m_mayBeBS2000Filesystem = false; + if (m_mayBeBS2000Filesystem) + m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_BS2000; + else + m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_MVS; + + if (!pData->path.IsEmpty()) + pData->path.SetServer(m_CurrentServer); + } + if (!ParsePwdReply(pData->rawpwd)) + return; + if (pData->path.IsEmpty() || pData->path == m_pOwner->GetCurrentPath()) + { + m_Operation.nOpState = NeedModeCommand() ? LIST_MODE : (NeedOptsCommand() ? LIST_OPTS : LIST_TYPE); + } + else + m_Operation.nOpState = LIST_CWD; + break; + case LIST_CWD: + if (code != 2 && code != 3) + error = TRUE; + m_Operation.nOpState = LIST_PWD2; + break; + case LIST_PWD2: //Reply to PWD command + if (code !=2 && code != 3) + error = TRUE; + else + { + pData->rawpwd = retmsg; + if (!ParsePwdReply(pData->rawpwd)) + return; + } + if (pData->subdir != L"") + { + if (pData->path != m_pOwner->GetCurrentPath()) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + m_Operation.nOpState = LIST_CWD2; + } + else + { + m_Operation.nOpState = NeedModeCommand() ? LIST_MODE : (NeedOptsCommand() ? LIST_OPTS : LIST_TYPE); + } + break; + case LIST_CWD2: + if (pData->lastCmdSentCDUP) + { + CString reply = GetReply().Left(3); + int replycode = _ttoi(reply); + if (replycode >= 500 && replycode < 505) + break; + pData->lastCmdSentCDUP = false; + } + if (code != 2 && code != 3) + error = TRUE; + m_Operation.nOpState = LIST_PWD3; + break; + case LIST_PWD3: //Reply to PWD command + if (code != 2 && code != 3) + error = TRUE; + else + { + pData->rawpwd = retmsg; + if (!ParsePwdReply(pData->rawpwd)) + return; + } + m_Operation.nOpState = NeedModeCommand() ? LIST_MODE : (NeedOptsCommand() ? LIST_OPTS : LIST_TYPE); + break; + case LIST_MODE: #ifndef MPEXT_NO_ZLIB - if (code == 2 || code == 3) - m_useZlib = !m_useZlib; + if (code == 2 || code == 3) + m_useZlib = !m_useZlib; #endif - m_Operation.nOpState = NeedOptsCommand() ? LIST_OPTS : LIST_TYPE; - break; - case LIST_OPTS: + m_Operation.nOpState = NeedOptsCommand() ? LIST_OPTS : LIST_TYPE; + break; + case LIST_OPTS: #ifndef MPEXT_NO_ZLIB - if (code == 2 || code == 3) - m_zlibLevel = pData->newZlibLevel; -#endif - m_Operation.nOpState = LIST_TYPE; - break; - case LIST_TYPE: - if (code!=2 && code!=3) - error=TRUE; - m_Operation.nOpState = LIST_PORT_PASV; - break; - case LIST_PORT_PASV: - if (code!=2 && code!=3) - { - error=TRUE; - break; - } - if (pData->bPasv) - { - CString temp; - int i,j; - // MP EXT - if((i=retmsg.Find(_T("(")))>=0&&(j=retmsg.Find(_T(")")))>=0) - { - i++; - j--; - } - else - { - // MP EXT - if ((i=retmsg.Mid(4).FindOneOf(_T("0123456789")))>=0) - { - i += 4; - j = retmsg.GetLength() - 1; - } - else - { - if (!pData->bTriedPortPasvOnce) - { - pData->bTriedPortPasvOnce = TRUE; - pData->bPasv = !pData->bPasv; - } - else - error=TRUE; - break; - } - } - -#ifdef MPEXT - temp = retmsg.Mid(i,(j-i)+1); -#endif - if (GetFamily() == AF_INET) - { -#ifndef MPEXT - temp = retmsg.Mid(i,(j-i)+1); + if (code == 2 || code == 3) + m_zlibLevel = pData->newZlibLevel; #endif - i=temp.ReverseFind(_MPT(',')); - pData->port=atol( T2CA( temp.Right(temp.GetLength()-(i+1)) ) ); //get ls byte of server socket - temp=temp.Left(i); - i=temp.ReverseFind(_MPT(',')); - pData->port+=256*atol( T2CA( temp.Right(temp.GetLength()-(i+1)) ) ); // add ms byte to server socket - pData->host = temp.Left(i); - pData->host.Replace(_MPT(','), _MPT('.')); -#ifdef MPEXT - if (!CheckForcePasvIp(pData->host)) - { - error = TRUE; - break; - } -#endif - } - else if (GetFamily() == AF_INET6) - { - temp = temp.Mid(3); - pData->port = atol( T2CA(temp.Left(temp.GetLength() - 1) ) ); - if (pData->port < 0 || pData->port > 65535) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Port %u not valid"), pData->port); - error = TRUE; - break; - } - - unsigned int tmpPort; - if (!GetPeerName(pData->host, tmpPort)) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("GetPeerName failed")); - error = TRUE; - break; - } - } - else - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Protocol %d not supported"), GetFamily()); - error = TRUE; - break; - } - } - m_Operation.nOpState = LIST_LIST; - break; - case LIST_LIST: - if (IsMisleadingListResponse()) - { - ShowStatus(IDS_STATUSMSG_DIRLISTSUCCESSFUL, FZ_LOG_PROGRESS); - - t_directory listing; - listing.server = m_CurrentServer; - listing.path = m_pOwner->GetCurrentPath(); - -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - cache.Lock(); - t_directory dir; - if (!pData->path.IsEmpty() && pData->subdir != _MPT("")) - { - if (cache.Lookup(listing.path, listing.server, dir)) - listing.Merge(dir, pData->ListStartTime); - cache.Store(listing, pData->path, pData->subdir); - } - else - { - if (cache.Lookup(listing.path, listing.server, dir)) - listing.Merge(dir, pData->ListStartTime); - cache.Store(listing); - } - cache.Unlock(); -#endif - SetDirectoryListing(&listing); - ResetOperation(FZ_REPLY_OK); - return; - } - else if (code != 1) - error = TRUE; - else - m_Operation.nOpState = LIST_WAITFINISH; - break; - default: - error = TRUE; - } - - if (error) - { - ResetOperation(FZ_REPLY_ERROR); - return; - } - } - if (m_Operation.nOpState==LIST_INIT) - { //Initialize some variables - pData=new CListData; - pData->nListMode=nListMode; - pData->path=path; - pData->subdir=subdir; - m_Operation.pData=pData; - ShowStatus(IDS_STATUSMSG_RETRIEVINGDIRLIST, FZ_LOG_PROGRESS); - pData->nFinish=-1; - if (m_pDirectoryListing) - { - delete m_pDirectoryListing; - m_pDirectoryListing=0; - } - - if (COptions::GetOptionVal(OPTION_PROXYTYPE)!=PROXYTYPE_NOPROXY && !m_CurrentServer.fwbypass) - pData->bPasv = TRUE; - else if (m_CurrentServer.nPasv == 1) - pData->bPasv = TRUE; - else if (m_CurrentServer.nPasv == 2) - pData->bPasv = FALSE; - else - pData->bPasv = COptions::GetOptionVal(OPTION_PASV); - - CServerPath path = pData->path; - CServerPath realpath = m_pOwner->GetCurrentPath(); - if (!realpath.IsEmpty()) - { - if (!pData->path.IsEmpty() && pData->path != realpath) - m_Operation.nOpState=LIST_CWD; - else if (!pData->path.IsEmpty() && pData->subdir!=_MPT("")) - m_Operation.nOpState=LIST_CWD2; - else - { - if (pData->nListMode & FZ_LIST_REALCHANGE) - { - if (pData->subdir == _MPT("")) - m_Operation.nOpState = LIST_CWD; - else - m_Operation.nOpState = LIST_CWD2; - } - else - { -#ifndef MPEXT_NO_CACHE - if (pData->nListMode&FZ_LIST_USECACHE) - { - t_directory dir; - CDirectoryCache cache; - BOOL res = cache.Lookup(realpath, m_CurrentServer,dir); - if (res) - { - BOOL bExact = TRUE; - if (pData->nListMode & FZ_LIST_EXACT) - for (int i = 0; i < dir.num; i++) - if (dir.direntry[i].bUnsure || (dir.direntry[i].size == -1 && !dir.direntry[i].dir)) - { - bExact = FALSE; - break; - } - if (bExact) - { - ShowStatus(IDS_STATUSMSG_DIRLISTSUCCESSFUL,FZ_LOG_PROGRESS); - SetDirectoryListing(&dir); - ResetOperation(FZ_REPLY_OK); - return; - } - } - } -#endif - m_Operation.nOpState = NeedModeCommand() ? LIST_MODE : (NeedOptsCommand() ? LIST_OPTS : LIST_TYPE);; - } - } - } - else - m_Operation.nOpState = LIST_PWD; - } - CString cmd; - if (m_Operation.nOpState == LIST_PWD) - cmd=_T("PWD"); - else if (m_Operation.nOpState==LIST_CWD) - cmd=_T("CWD ") + pData->path.GetPath(); //Command to retrieve the current directory - else if (m_Operation.nOpState==LIST_PWD2) - cmd=_T("PWD"); - else if (m_Operation.nOpState==LIST_CWD2) - { - if (!pData->subdir) - { - ResetOperation(FZ_REPLY_ERROR); - return; - } - if (pData->subdir != _T("..") ) - { - if (m_CurrentServer.nServerType & FZ_SERVERTYPE_SUB_FTP_VMS) - { - CServerPath path = m_pOwner->GetCurrentPath(); - path.AddSubdir(pData->subdir); - cmd = _T("CWD ") + path.GetPath(); - } - else - cmd = _T("CWD ") + pData->subdir; - } - else - { - if (pData->lastCmdSentCDUP) - { - pData->lastCmdSentCDUP = false; - cmd = _T("CWD .."); - } - else - { - pData->lastCmdSentCDUP = true; - cmd = _T("CDUP"); - } - } - } - else if (m_Operation.nOpState == LIST_PWD3) - cmd=_T("PWD"); - else if (m_Operation.nOpState == LIST_MODE) - { + m_Operation.nOpState = LIST_TYPE; + break; + case LIST_TYPE: + if (code!=2 && code!=3) + error=TRUE; + m_Operation.nOpState = LIST_PORT_PASV; + break; + case LIST_PORT_PASV: + if (code!=2 && code!=3) + { + error=TRUE; + break; + } + if (pData->bPasv) + { + CString temp; + int i,j; + // MP EXT + if((i=retmsg.Find(L"("))>=0&&(j=retmsg.Find(L")"))>=0) + { + i++; + j--; + } + else + { + // MP EXT + if ((i=retmsg.Mid(4).FindOneOf(L"0123456789"))>=0) + { + i += 4; + j = retmsg.GetLength() - 1; + } + else + { + if (!pData->bTriedPortPasvOnce) + { + pData->bTriedPortPasvOnce = TRUE; + pData->bPasv = !pData->bPasv; + } + else + error=TRUE; + break; + } + } + + temp = retmsg.Mid(i,(j-i)+1); + if (GetFamily() == AF_INET) + { + i=temp.ReverseFind(L','); + pData->port=atol( T2CA( temp.Right(temp.GetLength()-(i+1)) ) ); //get ls byte of server socket + temp=temp.Left(i); + i=temp.ReverseFind(L','); + pData->port+=256*atol( T2CA( temp.Right(temp.GetLength()-(i+1)) ) ); // add ms byte to server socket + pData->host = temp.Left(i); + pData->host.Replace(L',', L'.'); + if (!CheckForcePasvIp(pData->host)) + { + error = TRUE; + break; + } + } + else if (GetFamily() == AF_INET6) + { + temp = temp.Mid(3); + pData->port = atol( T2CA(temp.Left(temp.GetLength() - 1) ) ); + if (pData->port < 0 || pData->port > 65535) + { + LogMessage(FZ_LOG_WARNING, L"Port %u not valid", pData->port); + error = TRUE; + break; + } + + unsigned int tmpPort; + if (!GetPeerName(pData->host, tmpPort)) + { + LogMessage(FZ_LOG_WARNING, L"GetPeerName failed"); + error = TRUE; + break; + } + } + else + { + LogMessage(FZ_LOG_WARNING, L"Protocol %d not supported", GetFamily()); + error = TRUE; + break; + } + } + m_Operation.nOpState = LIST_LIST; + break; + case LIST_LIST: + if (IsMisleadingListResponse()) + { + ShowStatus(IDS_STATUSMSG_DIRLISTSUCCESSFUL, FZ_LOG_PROGRESS); + + t_directory listing; + listing.server = m_CurrentServer; + listing.path = m_pOwner->GetCurrentPath(); + + SetDirectoryListing(&listing); + ResetOperation(FZ_REPLY_OK); + return; + } + else if (code != 1) + error = TRUE; + else + m_Operation.nOpState = LIST_WAITFINISH; + break; + default: + error = TRUE; + } + + if (error) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + } + if (m_Operation.nOpState==LIST_INIT) + { //Initialize some variables + pData=new CListData; + pData->path=path; + pData->subdir=subdir; + m_Operation.pData=pData; + ShowStatus(IDS_STATUSMSG_RETRIEVINGDIRLIST, FZ_LOG_PROGRESS); + pData->nFinish=-1; + if (m_pDirectoryListing) + { + delete m_pDirectoryListing; + m_pDirectoryListing=0; + } + + if (GetOptionVal(OPTION_PROXYTYPE)!=PROXYTYPE_NOPROXY) + pData->bPasv = TRUE; + else if (m_CurrentServer.nPasv == 1) + pData->bPasv = TRUE; + else if (m_CurrentServer.nPasv == 2) + pData->bPasv = FALSE; + else + pData->bPasv = GetOptionVal(OPTION_PASV); + + CServerPath path = pData->path; + CServerPath realpath = m_pOwner->GetCurrentPath(); + if (!realpath.IsEmpty()) + { + if (!pData->path.IsEmpty() && pData->path != realpath) + m_Operation.nOpState=LIST_CWD; + else if (!pData->path.IsEmpty() && pData->subdir!=L"") + m_Operation.nOpState=LIST_CWD2; + else + { + m_Operation.nOpState = NeedModeCommand() ? LIST_MODE : (NeedOptsCommand() ? LIST_OPTS : LIST_TYPE);; + } + } + else + m_Operation.nOpState = LIST_PWD; + } + CString cmd; + if (m_Operation.nOpState == LIST_PWD) + cmd=L"PWD"; + else if (m_Operation.nOpState==LIST_CWD) + cmd=L"CWD " + pData->path.GetPath(); //Command to retrieve the current directory + else if (m_Operation.nOpState==LIST_PWD2) + cmd=L"PWD"; + else if (m_Operation.nOpState==LIST_CWD2) + { + if (!pData->subdir) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + if (pData->subdir != L".." ) + { + if (m_CurrentServer.nServerType & FZ_SERVERTYPE_SUB_FTP_VMS) + { + CServerPath path = m_pOwner->GetCurrentPath(); + path.AddSubdir(pData->subdir); + cmd = L"CWD " + path.GetPath(); + } + else + cmd = L"CWD " + pData->subdir; + } + else + { + if (pData->lastCmdSentCDUP) + { + pData->lastCmdSentCDUP = false; + cmd = L"CWD .."; + } + else + { + pData->lastCmdSentCDUP = true; + cmd = L"CDUP"; + } + } + } + else if (m_Operation.nOpState == LIST_PWD3) + cmd=L"PWD"; + else if (m_Operation.nOpState == LIST_MODE) + { #ifdef MPEXT_NO_ZLIB - ASSERT(false); + DebugFail(); #else - if (m_useZlib) + if (m_useZlib) #endif - cmd = _T("MODE S"); + cmd = L"MODE S"; #ifndef MPEXT_NO_ZLIB - else - cmd = _T("MODE Z"); + else + cmd = L"MODE Z"; #endif - } - else if (m_Operation.nOpState == LIST_OPTS) - { + } + else if (m_Operation.nOpState == LIST_OPTS) + { #ifdef MPEXT_NO_ZLIB - ASSERT(false); + DebugFail(); #else - pData->newZlibLevel = COptions::GetOptionVal(OPTION_MODEZ_LEVEL); - cmd.Format(_T("OPTS MODE Z LEVEL %d"), pData->newZlibLevel); + pData->newZlibLevel = GetOptionVal(OPTION_MODEZ_LEVEL); + cmd.Format(L"OPTS MODE Z LEVEL %d", pData->newZlibLevel); #endif - } - else if (m_Operation.nOpState == LIST_PORT_PASV) - { - m_pTransferSocket = new CTransferSocket(this, m_Operation.nOpMode); + } + else if (m_Operation.nOpState == LIST_PORT_PASV) + { + m_pTransferSocket = new CTransferSocket(this, m_Operation.nOpMode); #ifndef MPEXT_NO_ZLIB - if (m_useZlib) - { - if (!m_pTransferSocket->InitZlib(m_zlibLevel)) - { - ShowStatus(_T("Failed to initialize zlib"), FZ_LOG_ERROR); - ResetOperation(FZ_REPLY_ERROR); - return; - } - } + if (m_useZlib) + { + if (!m_pTransferSocket->InitZlib(m_zlibLevel)) + { + ShowStatus(L"Failed to initialize zlib", FZ_LOG_ERROR); + ResetOperation(FZ_REPLY_ERROR); + return; + } + } #endif - m_pTransferSocket->m_nInternalMessageID = m_pOwner->m_nInternalMessageID; + m_pTransferSocket->m_nInternalMessageID = m_pOwner->m_nInternalMessageID; #ifndef MPEXT_NO_GSS - if (m_pGssLayer && m_pGssLayer->AuthSuccessful()) - m_pTransferSocket->UseGSS(m_pGssLayer); + if (m_pGssLayer && m_pGssLayer->AuthSuccessful()) + m_pTransferSocket->UseGSS(m_pGssLayer); #endif - m_pTransferSocket->SetFamily(GetFamily()); - if (!m_pTransferSocket->Create( -#ifndef MPEXT_NO_SSL - m_pSslLayer && m_bProtP -#endif - ) || - !m_pTransferSocket->AsyncSelect()) - { - ShowStatus(_T("Failed to create socket"), FZ_LOG_ERROR); - ResetOperation(FZ_REPLY_ERROR); - return; - } - if (pData->bPasv) - switch (GetFamily()) - { - case AF_INET: - cmd = _T("PASV"); - break; - case AF_INET6: - cmd = _T("EPSV"); - break; - default: - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Protocol %d not supported"), GetFamily()); - ResetOperation(FZ_REPLY_ERROR); - return; - } - else - { - m_pTransferSocket->m_bListening=TRUE; - if (m_pProxyLayer) - { - SOCKADDR_IN addr; - int len=sizeof(addr); - if (!m_pProxyLayer->GetPeerName((SOCKADDR *)&addr,&len)) - { - ResetOperation(FZ_REPLY_ERROR); - return; - } - else if (!m_pTransferSocket->Listen(addr.sin_addr.S_un.S_addr)) - { - ResetOperation(FZ_REPLY_ERROR); - return; - } - } - else - { - //Set up an active file transfer - CString tempHostname; - UINT nPort; - - if (// create listen socket (let MFC choose the port) & start the socket listening - !m_pTransferSocket->Listen() || - !m_pTransferSocket->GetSockName(tempHostname, nPort)) - { - ShowStatus(_T("Failed to create listen socket"), FZ_LOG_ERROR); - ResetOperation(FZ_REPLY_ERROR); - return; - } - - CString host; - bool bError = false; - - if (GetFamily() == AF_INET) - { - host = COptions::GetOption(OPTION_TRANSFERIP); - if (host != _MPT("")) - { - DWORD ip = inet_addr(T2CA(host)); - if (ip != INADDR_NONE) - host.Format(_T("%d,%d,%d,%d"), ip%256, (ip>>8)%256, (ip>>16)%256, ip>>24); - else - { - hostent *fullname = gethostbyname(T2CA(host)); - if (!fullname) - host = _MPT(""); - else - { - DWORD ip = ((LPIN_ADDR)fullname->h_addr)->s_addr; - if (ip != INADDR_NONE) - host.Format(_T("%d,%d,%d,%d"), ip%256, (ip>>8)%256, (ip>>16)%256, ip>>24); - else - host = _MPT(""); - } - } - } - if (host == _MPT("")) - { - UINT temp; - - if (!GetSockName(host, temp)) - { - ShowStatus(_T("Failed to get socket address "), FZ_LOG_ERROR); - bError = true; - } - - host.Replace(_MPT('.'), _MPT(',')); - } - - if (!bError) - { - host.Format(host+_MPT(",%d,%d"), nPort/256, nPort%256); - cmd = _T("PORT ") + host; // send PORT cmd to server - } - } - else if (GetFamily() == AF_INET6) - { - host = COptions::GetOption(OPTION_TRANSFERIP6); - if (host != _MPT("")) - { - USES_CONVERSION; - addrinfo hints, *res; - memset(&hints, 0, sizeof(addrinfo)); - hints.ai_family = AF_INET6; - hints.ai_socktype = SOCK_STREAM; - if (!getaddrinfo(T2CA(host), "1024", &hints, &res)) - { - host = Inet6AddrToString(((SOCKADDR_IN6 *)res->ai_addr)->sin6_addr); - freeaddrinfo(res); - } - else - host = _T(""); - } - if (host == _MPT("")) - { - UINT temp; - - if(!GetSockName(host, temp)) - bError = true; - } - - if (!bError) - { - // assamble EPRT command - cmd.Format(_T("EPRT |2|") + host + _MPT("|%d|"), nPort); - } - } - else - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Protocol %d not supported"), GetFamily()); - bError = true; - } - - if (bError) - { - ResetOperation(FZ_REPLY_ERROR); - return; - } - } - } - } - else if (m_Operation.nOpState==LIST_TYPE) - cmd=_T("TYPE A"); - else if (m_Operation.nOpState==LIST_LIST) - { - if (!m_pTransferSocket) - { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_APIERROR, _T("Error: m_pTransferSocket==NULL") ); - ResetOperation(FZ_REPLY_ERROR); - return; - } - - m_pTransferSocket->SetActive(); - - cmd = GetListingCmd(); - if (!Send(cmd)) - return; - - pData->ListStartTime=CTime::GetCurrentTime(); - - if (pData->bPasv) - { - CString hostname; - hostname.Format(L"%s:%d", pData->host, pData->port); - CString str; - str.Format(IDS_STATUSMSG_CONNECTING, hostname); - ShowStatus(str, FZ_LOG_PROGRESS); - - // if PASV create the socket & initiate outbound data channel connection - if (!m_pTransferSocket->Connect(pData->host,pData->port)) - { - if (GetLastError()!=WSAEWOULDBLOCK) - { - ResetOperation(FZ_REPLY_ERROR); - return; - } - } - } - - return; - } - if (cmd != _T("")) - Send(cmd); + m_pTransferSocket->SetFamily(GetFamily()); + if (!m_pTransferSocket->Create(m_pSslLayer && m_bProtP) || + !m_pTransferSocket->AsyncSelect()) + { + ShowStatus(L"Failed to create socket", FZ_LOG_ERROR); + ResetOperation(FZ_REPLY_ERROR); + return; + } + if (pData->bPasv) + switch (GetFamily()) + { + case AF_INET: + cmd = L"PASV"; + break; + case AF_INET6: + cmd = L"EPSV"; + break; + default: + LogMessage(FZ_LOG_WARNING, L"Protocol %d not supported", GetFamily()); + ResetOperation(FZ_REPLY_ERROR); + return; + } + else + { + m_pTransferSocket->m_bListening=TRUE; + if (m_pProxyLayer) + { + SOCKADDR_IN addr; + int len=sizeof(addr); + if (!m_pProxyLayer->GetPeerName((SOCKADDR *)&addr,&len)) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + else if (!m_pTransferSocket->Listen(addr.sin_addr.S_un.S_addr)) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + } + else + { + //Set up an active file transfer + CString tempHostname; + UINT nPort; + + if (// create listen socket (let MFC choose the port) & start the socket listening + !m_pTransferSocket->Listen() || + !m_pTransferSocket->GetSockName(tempHostname, nPort)) + { + ShowStatus(L"Failed to create listen socket", FZ_LOG_ERROR); + ResetOperation(FZ_REPLY_ERROR); + return; + } + + CString host; + bool bError = false; + + if (GetFamily() == AF_INET) + { + host = GetOption(OPTION_TRANSFERIP); + if (host != L"") + { + DWORD ip = inet_addr(T2CA(host)); + if (ip != INADDR_NONE) + host.Format(L"%d,%d,%d,%d", ip%256, (ip>>8)%256, (ip>>16)%256, ip>>24); + else + { + hostent *fullname = gethostbyname(T2CA(host)); + if (!fullname) + host = L""; + else + { + DWORD ip = ((LPIN_ADDR)fullname->h_addr)->s_addr; + if (ip != INADDR_NONE) + host.Format(L"%d,%d,%d,%d", ip%256, (ip>>8)%256, (ip>>16)%256, ip>>24); + else + host = L""; + } + } + } + if (host == L"") + { + UINT temp; + + if (!GetSockName(host, temp)) + { + ShowStatus(L"Failed to get socket address ", FZ_LOG_ERROR); + bError = true; + } + + host.Replace(L'.', L','); + } + + if (!bError) + { + host.Format(host+L",%d,%d", nPort/256, nPort%256); + cmd = L"PORT " + host; // send PORT cmd to server + } + } + else if (GetFamily() == AF_INET6) + { + host = GetOption(OPTION_TRANSFERIP6); + if (host != L"") + { + USES_CONVERSION; + addrinfo hints, *res; + memset(&hints, 0, sizeof(addrinfo)); + hints.ai_family = AF_INET6; + hints.ai_socktype = SOCK_STREAM; + if (!getaddrinfo(T2CA(host), "1024", &hints, &res)) + { + host = Inet6AddrToString(((SOCKADDR_IN6 *)res->ai_addr)->sin6_addr); + freeaddrinfo(res); + } + else + host = L""; + } + if (host == L"") + { + UINT temp; + + if(!GetSockName(host, temp)) + bError = true; + } + + if (!bError) + { + // assamble EPRT command + cmd.Format(L"EPRT |2|" + host + L"|%d|", nPort); + } + } + else + { + LogMessage(FZ_LOG_WARNING, L"Protocol %d not supported", GetFamily()); + bError = true; + } + + if (bError) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + } + } + } + else if (m_Operation.nOpState==LIST_TYPE) + cmd=L"TYPE A"; + else if (m_Operation.nOpState==LIST_LIST) + { + if (!m_pTransferSocket) + { + LogMessage(FZ_LOG_APIERROR, L"Error: m_pTransferSocket==NULL" ); + ResetOperation(FZ_REPLY_ERROR); + return; + } + + m_pTransferSocket->SetActive(); + + cmd = GetListingCmd(); + if (!Send(cmd)) + return; + + if (pData->bPasv) + { + CString hostname; + hostname.Format(L"%s:%d", pData->host, pData->port); + CString str; + str.Format(IDS_STATUSMSG_CONNECTING, hostname); + ShowStatus(str, FZ_LOG_PROGRESS); + + // if PASV create the socket & initiate outbound data channel connection + if (!m_pTransferSocket->Connect(pData->host,pData->port)) + { + if (GetLastError()!=WSAEWOULDBLOCK) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + } + } + + return; + } + if (cmd != L"") + Send(cmd); } -#ifdef MPEXT void CFtpControlSocket::ListFile(CString filename, const CServerPath &path) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("ListFile(\"%s\",\"%s\") OpMode=%d OpState=%d"), path.GetPath(), filename, - m_Operation.nOpMode, m_Operation.nOpState); + USES_CONVERSION; - USES_CONVERSION; - - #define LISTFILE_INIT -1 - #define LISTFILE_MLST 1 + #define LISTFILE_INIT -1 + #define LISTFILE_MLST 1 #define LISTFILE_TYPE 2 #define LISTFILE_SIZE 3 #define LISTFILE_MDTM 4 @@ -2481,140 +2328,140 @@ void CFtpControlSocket::ListFile(CString filename, const CServerPath &path) #define LISTFILE_CWD 6 #define LISTFILE_CWD2 7 - ASSERT(!m_Operation.nOpMode || m_Operation.nOpMode&CSMODE_LISTFILE); - - m_Operation.nOpMode|=CSMODE_LISTFILE; - - if (!m_pOwner->IsConnected()) - { - ResetOperation(FZ_REPLY_ERROR|FZ_REPLY_NOTCONNECTED); - return; - } - - CListFileData * pData = static_cast(m_Operation.pData); - - BOOL error = FALSE; - CString cmd; - CString retmsg; - int code = -1; - int num = -1; - switch (m_Operation.nOpState) - { - case LISTFILE_INIT: - //Initialize some variables - pData = new CListFileData; - pData->fileName = filename; - pData->dir = path.GetPath(); + DebugAssert(!m_Operation.nOpMode || m_Operation.nOpMode&CSMODE_LISTFILE); + + m_Operation.nOpMode|=CSMODE_LISTFILE; + + if (!m_pOwner->IsConnected()) + { + ResetOperation(FZ_REPLY_ERROR|FZ_REPLY_NOTCONNECTED); + return; + } + + CListFileData * pData = static_cast(m_Operation.pData); + + BOOL error = FALSE; + CString cmd; + CString retmsg; + int code = -1; + int num = -1; + switch (m_Operation.nOpState) + { + case LISTFILE_INIT: + //Initialize some variables + pData = new CListFileData; + pData->fileName = filename; + pData->dir = path.GetPath(); // special case for listing a root folder pData->path = (filename == L"/") ? pData->dir : path.FormatFilename(filename); - m_Operation.pData = pData; - ShowStatus(IDS_STATUSMSG_RETRIEVINGLISTFILE, FZ_LOG_STATUS); - if (UsingMlsd()) - { - m_Operation.nOpState = LISTFILE_MLST; - cmd = L"MLST " + pData->path; - } - else - { - m_Operation.nOpState = LISTFILE_PWD; - cmd = L"PWD"; - } - if (!Send(cmd)) - { - error = TRUE; - } - break; - case LISTFILE_MLST: - retmsg = GetReply(); - code = GetReplyCode(); - if (IsMisleadingListResponse()) - { - ShowStatus(IDS_STATUSMSG_LISTFILESUCCESSFUL, FZ_LOG_STATUS); - num = 0; - } - else if (code != 2) - { - error = TRUE; - } - else - { - USES_CONVERSION; - int size = m_ListFile.GetLength(); - char *buffer = new char[size + 1]; - memmove(buffer, (LPCSTR)m_ListFile, m_ListFile.GetLength()); - CFtpListResult * pListResult = new CFtpListResult(m_CurrentServer, &m_bUTF8); - pListResult->InitLog(this); - pListResult->AddData(buffer, size); - if (COptions::GetOptionVal(OPTION_DEBUGSHOWLISTING)) - pListResult->SendToMessageLog(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID); - pData->direntry = pListResult->getList(num, CTime::GetCurrentTime(), true); - if (pListResult->m_server.nServerType & FZ_SERVERTYPE_SUB_FTP_VMS && m_CurrentServer.nServerType & FZ_SERVERTYPE_FTP) - m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_VMS; - delete pListResult; - } - break; - case LISTFILE_PWD: - code = GetReplyCode(); - retmsg = GetReply(); - if ((code == 2) && - ParsePwdReply(retmsg, pData->pwd) && - Send(L"CWD " + pData->path)) - { - m_Operation.nOpState = LISTFILE_CWD; - } - else - { - error = TRUE; - } - break; - case LISTFILE_CWD: - code = GetReplyCode(); - pData->direntry = new t_directory::t_direntry[1]; - pData->direntry->name = pData->fileName; - if (code == 2) - { - pData->direntry->dir = TRUE; - if (Send(L"CWD " + pData->pwd.GetPath())) - { - m_Operation.nOpState = LISTFILE_CWD2; - } - else - { - error = TRUE; - } - } - else - { - // CWD failed, file is not a directory, we should not need to restore PWD. - - // Force binary mode, as according to RFC 6359, - // SIZE command returns size as transferred over the stream. + m_Operation.pData = pData; + ShowStatus(IDS_STATUSMSG_RETRIEVINGLISTFILE, FZ_LOG_PROGRESS); + if (UsingMlsd()) + { + m_Operation.nOpState = LISTFILE_MLST; + cmd = L"MLST " + pData->path; + } + else + { + m_Operation.nOpState = LISTFILE_PWD; + cmd = L"PWD"; + } + if (!Send(cmd)) + { + error = TRUE; + } + break; + case LISTFILE_MLST: + retmsg = GetReply(); + code = GetReplyCode(); + if (IsMisleadingListResponse()) + { + ShowStatus(IDS_STATUSMSG_LISTFILESUCCESSFUL, FZ_LOG_PROGRESS); + num = 0; + } + else if (code != 2) + { + error = TRUE; + } + else + { + USES_CONVERSION; + int size = m_ListFile.GetLength(); + char *buffer = new char[size + 1]; + memmove(buffer, (LPCSTR)m_ListFile, m_ListFile.GetLength()); + CFtpListResult * pListResult = new CFtpListResult(m_CurrentServer, &m_bUTF8); + pListResult->InitIntern(GetIntern()); + pListResult->AddData(buffer, size); + if (GetOptionVal(OPTION_DEBUGSHOWLISTING)) + pListResult->SendToMessageLog(); + pData->direntry = pListResult->getList(num, true); + if (pListResult->m_server.nServerType & FZ_SERVERTYPE_SUB_FTP_VMS && m_CurrentServer.nServerType & FZ_SERVERTYPE_FTP) + m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_VMS; + delete pListResult; + } + break; + case LISTFILE_PWD: + code = GetReplyCode(); + retmsg = GetReply(); + if ((code == 2) && + ParsePwdReply(retmsg, pData->pwd) && + Send(L"CWD " + pData->path)) + { + m_Operation.nOpState = LISTFILE_CWD; + } + else + { + error = TRUE; + } + break; + case LISTFILE_CWD: + code = GetReplyCode(); + pData->direntry = new t_directory::t_direntry[1]; + pData->direntry->name = pData->fileName; + if (code == 2) + { + pData->direntry->dir = TRUE; + if (Send(L"CWD " + pData->pwd.GetPath())) + { + m_Operation.nOpState = LISTFILE_CWD2; + } + else + { + error = TRUE; + } + } + else + { + // CWD failed, file is not a directory, we should not need to restore PWD. + + // Force binary mode, as according to RFC 6359, + // SIZE command returns size as transferred over the stream. // Moreover ProFTPD does not even support SIZE command in ASCII mode if (Send(L"TYPE I")) - { + { m_Operation.nOpState = LISTFILE_TYPE; - } - else - { - error = TRUE; - } - } - break; - case LISTFILE_CWD2: - code = GetReplyCode(); - if (code == 2) - { - // No point trying SIZE on directories. - // (More over IIS returns a multi-line response for SIZE /dir and we cannot handle that). - // IIS fails even for MDTM, so skipping even that. - num = 1; - } - // this should never really happen - else - { - error = TRUE; - } - break; + } + else + { + error = TRUE; + } + } + break; + case LISTFILE_CWD2: + code = GetReplyCode(); + if (code == 2) + { + // No point trying SIZE on directories. + // (More over IIS returns a multi-line response for SIZE /dir and we cannot handle that). + // IIS fails even for MDTM, so skipping even that. + num = 1; + } + // this should never really happen + else + { + error = TRUE; + } + break; case LISTFILE_TYPE: // Do not really care if TYPE succeeded or not if (Send(L"SIZE " + pData->path)) @@ -2626,4024 +2473,3884 @@ void CFtpControlSocket::ListFile(CString filename, const CServerPath &path) error = TRUE; } break; - case LISTFILE_SIZE: - code = GetReplyCode(); - // Ignore SIZE errors for directories - if ((HandleSize(code, pData->direntry->size) || pData->direntry->dir) && - Send(L"MDTM " + pData->path)) - { - m_Operation.nOpState = LISTFILE_MDTM; - } - else - { - error = TRUE; - } - break; - case LISTFILE_MDTM: - code = GetReplyCode(); - if (HandleMdtm(code, pData->direntry->date)) - { - num = 1; - } - else - { - error = TRUE; - } - break; - default: - error = TRUE; - break; - } - - if (error) - { - ResetOperation(FZ_REPLY_ERROR); - } - else if (num >= 0) - { - t_directory * pDirectoryListing = new t_directory; - pDirectoryListing->direntry = pData->direntry; - pData->direntry = NULL; - pDirectoryListing->num = num; - pDirectoryListing->server = m_CurrentServer; - pDirectoryListing->path.SetServer(pDirectoryListing->server); - pDirectoryListing->path = pData->dir; - ShowStatus(IDS_STATUSMSG_LISTFILESUCCESSFUL,FZ_LOG_STATUS); + case LISTFILE_SIZE: + code = GetReplyCode(); + // Ignore SIZE errors for directories + if ((HandleSize(code, pData->direntry->size) || pData->direntry->dir) && + Send(L"MDTM " + pData->path)) + { + m_Operation.nOpState = LISTFILE_MDTM; + } + else + { + error = TRUE; + } + break; + case LISTFILE_MDTM: + code = GetReplyCode(); + if (HandleMdtm(code, pData->direntry->date)) + { + num = 1; + } + else + { + error = TRUE; + } + break; + default: + error = TRUE; + break; + } + + if (error) + { + ResetOperation(FZ_REPLY_ERROR); + } + else if (num >= 0) + { + t_directory * pDirectoryListing = new t_directory; + pDirectoryListing->direntry = pData->direntry; + pData->direntry = NULL; + pDirectoryListing->num = num; + pDirectoryListing->server = m_CurrentServer; + pDirectoryListing->path.SetServer(pDirectoryListing->server); + pDirectoryListing->path = pData->dir; + ShowStatus(IDS_STATUSMSG_LISTFILESUCCESSFUL,FZ_LOG_PROGRESS); // do not use SetDirectoryListing as that would make // later operations believe that there's only this one file in the folder m_pOwner->SendDirectoryListing(pDirectoryListing); - ResetOperation(FZ_REPLY_OK); - } + ResetOperation(FZ_REPLY_OK); + } } -#endif void CFtpControlSocket::TransferEnd(int nMode) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("TransferEnd(%d/%x) OpMode=%d OpState=%d"), nMode, nMode, m_Operation.nOpMode, m_Operation.nOpState); - if (!m_Operation.nOpMode) - { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_INFO, _T("Ignoring old TransferEnd message")); - return; - } - m_LastRecvTime=CTime::GetCurrentTime(); - if (m_Operation.nOpMode&CSMODE_TRANSFER) - FileTransfer(0,TRUE,nMode&(CSMODE_TRANSFERERROR|CSMODE_TRANSFERTIMEOUT)); - else if (m_Operation.nOpMode&CSMODE_LIST) - List(TRUE,nMode&(CSMODE_TRANSFERERROR|CSMODE_TRANSFERTIMEOUT)); + if (!m_Operation.nOpMode) + { + LogMessage(FZ_LOG_INFO, L"Ignoring old TransferEnd message"); + return; + } + m_LastRecvTime=CTime::GetCurrentTime(); + if (m_Operation.nOpMode&CSMODE_TRANSFER) + FileTransfer(0,TRUE,nMode&(CSMODE_TRANSFERERROR|CSMODE_TRANSFERTIMEOUT)); + else if (m_Operation.nOpMode&CSMODE_LIST) + List(TRUE,nMode&(CSMODE_TRANSFERERROR|CSMODE_TRANSFERTIMEOUT)); } void CFtpControlSocket::OnClose(int nErrorCode) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("OnClose(%d) OpMode=%d OpState=%d"), nErrorCode, m_Operation.nOpMode, m_Operation.nOpState); - ShowStatus(IDS_STATUSMSG_DISCONNECTED, FZ_LOG_ERROR); - if (m_pTransferSocket) - { - m_pTransferSocket->OnClose(0); - m_pTransferSocket->Close(); - delete m_pTransferSocket; - m_pTransferSocket=0; - DoClose(); - return; - } -#ifndef MPEXT_NO_SSL - if (m_bDidRejectCertificate) - DoClose(FZ_REPLY_CANCEL); - else -#endif - DoClose(); + ShowStatus(IDS_STATUSMSG_DISCONNECTED, FZ_LOG_ERROR); + if (m_pTransferSocket) + { + m_pTransferSocket->OnClose(0); + m_pTransferSocket->Close(); + delete m_pTransferSocket; + m_pTransferSocket=0; + DoClose(); + return; + } + if (m_bDidRejectCertificate) + DoClose(FZ_REPLY_CANCEL); + else + DoClose(); } void CFtpControlSocket::FileTransfer(t_transferfile *transferfile/*=0*/,BOOL bFinish/*=FALSE*/,int nError/*=0*/) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("FileTransfer(%d, %s, %d) OpMode=%d OpState=%d"), transferfile,bFinish?_T("TRUE"):_T("FALSE"), nError, m_Operation.nOpMode, m_Operation.nOpState); - - USES_CONVERSION; - - #define FILETRANSFER_INIT -1 - #define FILETRANSFER_PWD 0 - #define FILETRANSFER_CWD 1 - #define FILETRANSFER_MKD 2 - #define FILETRANSFER_CWD2 3 - #define FILETRANSFER_PWD2 4 - #define FILETRANSFER_LIST_MODE 5 - #define FILETRANSFER_LIST_OPTS 6 - #define FILETRANSFER_LIST_PORTPASV 7 - #define FILETRANSFER_LIST_TYPE 8 - #define FILETRANSFER_LIST_LIST 9 - #define FILETRANSFER_LIST_WAITFINISH 10 - #define FILETRANSFER_NOLIST_SIZE 11 - #define FILETRANSFER_NOLIST_MDTM 12 - #define FILETRANSFER_TYPE 13 - #define FILETRANSFER_REST 14 - #define FILETRANSFER_MODE 15 - #define FILETRANSFER_OPTS 16 - #define FILETRANSFER_PORTPASV 17 - #define FILETRANSFER_RETRSTOR 18 - #define FILETRANSFER_WAITFINISH 19 - - #define FILETRANSFER_WAIT 20 - -#ifdef MPEXT - #define FILETRANSFER_MFMT 21 -#endif - - //Partial flowchart of FileTransfer - // - // +----+ - // /------|Init|--------\ - // | +----+ | - // | | | - // | /---+ | - // | | | | - // | | +---+ | - // | | |PWD| | - // | | +---+ | - // | | | | - // | \---+ | - // | | | - // | +---+ | - // | |CWD|--\ | - // | +---+ | | - // | | | | - // | | | | - // | | +---+ | - // | | |MKD| | - // | | +---+ | - // | | | | - // | | | | - // | | +----+ | - // | | |CWD2| | - // | | +----+ | - // | | | | - // | +----/ | - // | | | - // | +---+ | - // +-------|PWD| | - // | +---+ | - // | | | - // | +----------/ - // | | - // | +---------+ - // | |LIST_TYPE| - // | +---------+ - // | | - // | | - // | +-------------+ - // | |LIST_PORTPASV| - // | +-------------+ - // | | - // | | - // | +---------+ - // | |LIST_LIST|-----\ //List fails, maybe folder is list protected - // | +---------+ | //Use SIZE and MDTM to get file information - // | | +----+ - // | | |SIZE| - // | | +----+ - // | | | - // | | +----+ - // | | |MDTM| - // | | +----+ - // | | | - // | | | - // | +---------------+ | - // | |LIST_WAITFINISH| | - // | +---------------+ | - // | | | - // | | | - // | +----------/ - // | | - // \---------+ - // | - // +----+ - // |TYPE| - // +----+ - // | - // | - // +--------+ - // |PORTPASV|--\ - // +--------+ | - // | | - // | | - // | +----+ - // | |REST| - // | +----+ - // | | - // +------/ - // | - // +--------+ - // |RETRSTOR| - // +--------+ - // | - // | - // +----------+ - // |WAITFINISH| - // +----------+ - - ASSERT(!m_Operation.nOpMode || m_Operation.nOpMode&CSMODE_TRANSFER); - if (!m_pOwner->IsConnected()) - { - m_Operation.nOpMode=CSMODE_TRANSFER|(transferfile->get?CSMODE_DOWNLOAD:CSMODE_UPLOAD); - ResetOperation(FZ_REPLY_ERROR|FZ_REPLY_DISCONNECTED); - return; - } - - CFileTransferData *pData=static_cast(m_Operation.pData); - - //Process finish and error messages - if (bFinish || nError) - { - ASSERT(m_Operation.nOpMode&CSMODE_TRANSFER); - - // APPE failed, ignore this reply - if (m_Operation.nOpMode == FILETRANSFER_WAIT && bFinish) - return; - - if (!(m_Operation.nOpMode&CSMODE_TRANSFER)) - return; - - if (nError) - { - if (m_Operation.nOpState == FILETRANSFER_LIST_LIST && nError & CSMODE_TRANSFERERROR) - { //Don't abort operation, use fallback to SIZE and MDTM (when actual LIST reply comes in) - if (m_pTransferSocket) - m_pTransferSocket=0; - delete m_pDirectoryListing; - m_pDirectoryListing=0; - } - else if (nError&CSMODE_TRANSFERTIMEOUT) - DoClose(); - else - // MPEXT: we may get here when connection was closed, when the closure - // was first detected while reading/writing, - // when we abort file transfer with regular error, - // possibly preventing automatic reconnect - ResetOperation(FZ_REPLY_ERROR); - return; - } - if (m_Operation.nOpState <= FILETRANSFER_LIST_PORTPASV) - { - ResetOperation(FZ_REPLY_ERROR); - return; - } - else if (m_Operation.nOpState<=FILETRANSFER_LIST_WAITFINISH) - { - if (!m_pTransferSocket || m_pTransferSocket->m_bListening) - { - delete m_pDirectoryListing; - m_pDirectoryListing=0; - ResetOperation(FZ_REPLY_ERROR); - return; - } - - int num=0; - pData->pDirectoryListing=new t_directory; - if (COptions::GetOptionVal(OPTION_DEBUGSHOWLISTING)) - m_pTransferSocket->m_pListResult->SendToMessageLog(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID); - pData->pDirectoryListing->direntry=m_pTransferSocket->m_pListResult->getList(num, pData->ListStartTime, false); - pData->pDirectoryListing->num=num; - if (m_pTransferSocket->m_pListResult->m_server.nServerType&FZ_SERVERTYPE_SUB_FTP_VMS && m_CurrentServer.nServerType&FZ_SERVERTYPE_FTP) - m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_VMS; - pData->pDirectoryListing->server = m_CurrentServer; - pData->pDirectoryListing->path.SetServer(m_CurrentServer); - pData->pDirectoryListing->path = pData->transferfile.remotepath; - if (pData->rawpwd!=_MPT("")) - { - if (!pData->pDirectoryListing->path.SetPath(pData->rawpwd)) - { - delete m_pDirectoryListing; - m_pDirectoryListing=0; - delete m_pTransferSocket; - m_pTransferSocket=0; - ResetOperation(FZ_REPLY_ERROR); - return; - } - } - else - pData->pDirectoryListing->path=pData->transferfile.remotepath; - - if (m_Operation.nOpState!=FILETRANSFER_LIST_WAITFINISH) - return; - } - else if (m_Operation.nOpState <= FILETRANSFER_PORTPASV) - { - ResetOperation(FZ_REPLY_ERROR); - return; - } - else if (m_Operation.nOpState<=FILETRANSFER_WAITFINISH) - { - if (m_pTransferSocket->m_bListening) - { - ResetOperation(FZ_REPLY_ERROR); - return; - } - pData->nGotTransferEndReply |= 2; - if (m_Operation.nOpState!=FILETRANSFER_WAITFINISH) - return; - else - { - delete m_pTransferSocket; - m_pTransferSocket=0; - } - } - } - - ////////////////// - //Initialization// - ////////////////// - int nReplyError = 0; - if (m_Operation.nOpState == FILETRANSFER_INIT) - { - ASSERT(transferfile); - ASSERT(!m_Operation.nOpMode); - ASSERT(!m_Operation.pData); - - CString str; - str.Format(transferfile->get?IDS_STATUSMSG_DOWNLOADSTART:IDS_STATUSMSG_UPLOADSTART, - transferfile->get ? transferfile->remotepath.FormatFilename(transferfile->remotefile) : transferfile->localfile); - ShowStatus(str,FZ_LOG_STATUS); - - m_Operation.nOpMode=CSMODE_TRANSFER|(transferfile->get?CSMODE_DOWNLOAD:CSMODE_UPLOAD); - - m_Operation.pData=new CFileTransferData; - pData=static_cast(m_Operation.pData); - - if (COptions::GetOptionVal(OPTION_PROXYTYPE)!=PROXYTYPE_NOPROXY && !m_CurrentServer.fwbypass) - pData->bPasv = TRUE; - else if (m_CurrentServer.nPasv == 1) - pData->bPasv = TRUE; - else if (m_CurrentServer.nPasv == 2) - pData->bPasv = FALSE; - else - pData->bPasv = COptions::GetOptionVal(OPTION_PASV); - - //Replace invalid characters in the local filename - int pos=transferfile->localfile.ReverseFind(_MPT('\\')); - for (int i=(pos+1);ilocalfile.GetLength();i++) - if (transferfile->localfile[i]==_MPT(':')) - transferfile->localfile.SetAt(i, _MPT('_')); - - pData->transferfile=*transferfile; - pData->transferdata.transfersize=pData->transferfile.size; - pData->transferdata.transferleft=pData->transferfile.size; - pData->transferdata.bResume = FALSE; - pData->transferdata.bType = (pData->transferfile.nType == 1) ? TRUE : FALSE; - - CServerPath path; - VERIFY(m_pOwner->GetCurrentPath(path)); - if (path == pData->transferfile.remotepath) - { - if (m_pDirectoryListing) - { - m_Operation.nOpState=FILETRANSFER_TYPE; - CString remotefile=pData->transferfile.remotefile; - int i; - for (i=0; inum; i++) - { - if (m_pDirectoryListing->direntry[i].name==remotefile && - ( m_pDirectoryListing->direntry[i].bUnsure || m_pDirectoryListing->direntry[i].size==-1 )) - { - delete m_pDirectoryListing; - m_pDirectoryListing=0; - m_Operation.nOpState = NeedModeCommand() ? FILETRANSFER_LIST_MODE : (NeedOptsCommand() ? FILETRANSFER_LIST_OPTS : FILETRANSFER_LIST_TYPE); - break; - } - } - if (m_pDirectoryListing && i==m_pDirectoryListing->num) - { - nReplyError = CheckOverwriteFile(); - if (!nReplyError) - { - if (pData->transferfile.get) - { - CString path=pData->transferfile.localfile; - if (path.ReverseFind(_MPT('\\'))!=-1) - { - path=path.Left(path.ReverseFind(_MPT('\\'))+1); - CString path2; - while (path!=_MPT("")) - { - path2+=path.Left(path.Find( _T("\\") )+1); - path=path.Mid(path.Find( _T("\\") )+1); - CreateDirectory(path2, 0); - } - } - } - } - } - } - else - { -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - t_server server; - m_pOwner->GetCurrentServer(server); - t_directory dir; - BOOL res = cache.Lookup(pData->transferfile.remotepath,server,dir); - if (res) - { - CString remotefile=pData->transferfile.remotefile; - int i; - for (i=0; itransferfile.get) - { - CString path=pData->transferfile.localfile; - if (path.ReverseFind(_MPT('\\'))!=-1) - { - path=path.Left(path.ReverseFind(_MPT('\\'))+1); - CString path2; - while (path!=_MPT("")) - { - path2+=path.Left(path.Find( _T("\\") )+1); - path=path.Mid(path.Find(_T( "\\") )+1); - CreateDirectory(path2, 0); - } - } - } - } - } - } - else -#endif - m_Operation.nOpState = NeedModeCommand() ? FILETRANSFER_LIST_MODE : (NeedOptsCommand() ? FILETRANSFER_LIST_OPTS : FILETRANSFER_LIST_TYPE); - } - } - else - { - if (path.IsEmpty()) - m_Operation.nOpState = FILETRANSFER_PWD; - else - m_Operation.nOpState = FILETRANSFER_CWD; - } - } - else - { - /////////// - //Replies// - /////////// - int code = GetReplyCode(); - switch(m_Operation.nOpState) - { - case FILETRANSFER_PWD: - if (code != 2 && code != 3) - { - nReplyError = FZ_REPLY_ERROR; - break; - } - - pData->rawpwd = GetReply(); - if ((m_mayBeMvsFilesystem || m_mayBeBS2000Filesystem) && m_CurrentServer.nServerType & FZ_SERVERTYPE_FTP && - pData->rawpwd[0] != _MPT('/')) - { - m_mayBeMvsFilesystem = false; - m_mayBeBS2000Filesystem = false; - - if (m_mayBeBS2000Filesystem) - m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_BS2000; - else - m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_MVS; - - pData->transferfile.remotepath.SetServer(m_CurrentServer); - } - if (!ParsePwdReply(pData->rawpwd)) - return; - - if (m_pOwner->GetCurrentPath() == pData->transferfile.remotepath) - { -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - t_server server; - m_pOwner->GetCurrentServer(server); - t_directory dir; - BOOL res = cache.Lookup(pData->transferfile.remotepath,server,dir); - if (res) - { - CString remotefile = pData->transferfile.remotefile; - int i; - for (i = 0; i < dir.num; i++) - { - if (dir.direntry[i].name == remotefile && - (dir.direntry[i].bUnsure || dir.direntry[i].size == -1)) - { - m_Operation.nOpState = NeedModeCommand() ? FILETRANSFER_LIST_MODE : (NeedOptsCommand() ? FILETRANSFER_LIST_OPTS : FILETRANSFER_LIST_TYPE); - break; - } - } - if (i == dir.num) - { - SetDirectoryListing(&dir); - m_Operation.nOpState=FILETRANSFER_TYPE; - nReplyError = CheckOverwriteFile(); - if (!nReplyError) - { - if (pData->transferfile.get) - { - CString path=pData->transferfile.localfile; - if (path.ReverseFind(_MPT('\\'))!=-1) - { - path=path.Left(path.ReverseFind(_MPT('\\'))+1); - CString path2; - while (path!=_MPT("")) - { - path2+=path.Left(path.Find( _T("\\") )+1); - path=path.Mid(path.Find(_T( "\\") )+1); - int res = CreateDirectory(path2, 0); - } - } - } - } - } - } - else -#endif - m_Operation.nOpState = NeedModeCommand() ? FILETRANSFER_LIST_MODE : (NeedOptsCommand() ? FILETRANSFER_LIST_OPTS : FILETRANSFER_LIST_TYPE); - } - else - m_Operation.nOpState = LIST_CWD; - break; - case FILETRANSFER_CWD: - if (code != 2 && code != 3) - if (pData->transferfile.get) - { - pData->bUseAbsolutePaths = TRUE; - m_Operation.nOpState = FILETRANSFER_NOLIST_SIZE; - } - else - m_Operation.nOpState = FILETRANSFER_MKD; - else - m_Operation.nOpState = FILETRANSFER_PWD2; - break; - case FILETRANSFER_MKD: - switch(pData->nMKDOpState) - { - case MKD_FINDPARENT: - { - if (code == 2 || code == 3) - { - m_pOwner->SetCurrentPath(pData->MKDCurrent); - -#ifndef MPEXT_NO_CACHE - if (!m_pDirectoryListing) - { - CDirectoryCache cache; - t_directory dir; - BOOL res = cache.Lookup(pData->MKDCurrent, m_CurrentServer, dir, TRUE); - if (res) - SetDirectoryListing(&dir); - } -#endif - - pData->nMKDOpState=MKD_CHANGETOSUBDIR; - pData->MKDCurrent.AddSubdir(pData->MKDSegments.front()); - CString Segment=pData->MKDSegments.front(); - pData->MKDSegments.pop_front(); - if (!Send( _T("MKD ") + Segment)) - return; - } - else - { - if (!pData->MKDCurrent.HasParent()) - nReplyError = FZ_REPLY_ERROR | ((code == 5) ? FZ_REPLY_CRITICALERROR : 0); - else - { - pData->MKDSegments.push_front(pData->MKDCurrent.GetLastSegment()); - pData->MKDCurrent=pData->MKDCurrent.GetParent(); - if (!Send(_MPT("CWD ")+pData->MKDCurrent.GetPath())) - return; - } - } - } - break; - case MKD_MAKESUBDIRS: - { - if (code == 2 || code == 3) - { //Create dir entry in parent dir - ASSERT(!pData->MKDSegments.empty()); - pData->MKDCurrent.AddSubdir(pData->MKDSegments.front()); - CString Segment=pData->MKDSegments.front(); - pData->MKDSegments.pop_front(); - if (Send( _T("MKD ") + Segment)) - pData->nMKDOpState=MKD_CHANGETOSUBDIR; - else - return; - } - else - nReplyError=FZ_REPLY_ERROR; - } - break; - case MKD_CHANGETOSUBDIR: - { - if (code == 2 || code == 3 || //Creation successful - m_RecvBuffer.front() == "550 Directory already exists") //Creation was successful, although someone else did the work for us - { - CServerPath path2 = pData->MKDCurrent; - if (path2.HasParent()) - { - CString name=path2.GetLastSegment(); - path2=path2.GetParent(); -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - cache.Lock(); - t_directory dir; - BOOL bCached=TRUE; - BOOL res=cache.Lookup(path2,m_CurrentServer,dir); - if (!res) - bCached=FALSE; -#else - t_directory dir; - BOOL res=FALSE; -#endif - if (!res && m_pDirectoryListing) - { - if (m_pDirectoryListing->path==path2) - { - dir=*m_pDirectoryListing; - res=TRUE; - } - } - t_directory WorkingDir; - BOOL bFound=m_pOwner->GetWorkingDir(&WorkingDir); - if (!res && bFound) - if (WorkingDir.path==path2) - { - dir=WorkingDir; - res=TRUE; - } - if (!res) - { - dir.path=path2; - dir.server=m_CurrentServer; - } - - int i; - for (i=0; ipath==dir.path) - { - updated=TRUE; - SetDirectoryListing(&dir); - } - if (!updated) - if (WorkingDir.path==dir.path) - { - updated=TRUE; - m_pOwner->SetWorkingDir(&dir); - } - } -#ifndef MPEXT_NO_CACHE - cache.Unlock(); -#endif - } - - } - - //Continue operation even if MKD failed, maybe another thread did create this directory for us - if (pData->MKDSegments.empty()) - m_Operation.nOpState=FILETRANSFER_CWD2; - else - { - if (Send( _T("CWD ") + pData->MKDCurrent.GetPath())) - pData->nMKDOpState=MKD_MAKESUBDIRS; - else - return; - } - } - break; - default: - ASSERT(FALSE); - } - - break; - case FILETRANSFER_CWD2: - if (code != 2 && code != 3) - if (code == 4) - nReplyError=FZ_REPLY_ERROR; - else - nReplyError=FZ_REPLY_CRITICALERROR; - else - m_Operation.nOpState=FILETRANSFER_PWD2; - break; - case FILETRANSFER_PWD2: - if (code != 2 && code != 3) - nReplyError = FZ_REPLY_ERROR; - else - { - pData->rawpwd = GetReply(); - if (!ParsePwdReply(pData->rawpwd)) - return; - - if (m_pOwner->GetCurrentPath() != pData->transferfile.remotepath) - { -#ifdef MPEXT - // More user-friendly message when the actual paths differ - if (m_pOwner->GetCurrentPath().GetPath() != pData->transferfile.remotepath.GetPath()) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Real path and requested remote path do not match: \"%s\" \"%s\""), m_pOwner->GetCurrentPath().GetPath(), pData->transferfile.remotepath.GetPath()); - } - else -#endif - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Real path and requested remote path do not match: \"%s\" \"%s\""), m_pOwner->GetCurrentPath().GetSafePath(), pData->transferfile.remotepath.GetSafePath()); - } - nReplyError = FZ_REPLY_CRITICALERROR; - } - else - { -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - t_server server; - m_pOwner->GetCurrentServer(server); - t_directory dir; - BOOL res = cache.Lookup(pData->transferfile.remotepath, server,dir); - if (res) - { - CString remotefile = pData->transferfile.remotefile; - int i; - for (i = 0; i < dir.num; i++) - { - if (dir.direntry[i].name == remotefile && - (dir.direntry[i].bUnsure || dir.direntry[i].size == -1)) - { - m_Operation.nOpState = NeedModeCommand() ? FILETRANSFER_LIST_MODE : (NeedOptsCommand() ? FILETRANSFER_LIST_OPTS : FILETRANSFER_LIST_TYPE); - break; - } - } - if (i == dir.num) - { - SetDirectoryListing(&dir); - m_Operation.nOpState=FILETRANSFER_TYPE; - nReplyError=CheckOverwriteFile(); - if (!nReplyError) - { - if (pData->transferfile.get) - { - CString path=pData->transferfile.localfile; - if (path.ReverseFind(_MPT('\\'))!=-1) - { - path=path.Left(path.ReverseFind(_MPT('\\'))+1); - CString path2; - while (path!=_MPT("")) - { - path2+=path.Left(path.Find( _T("\\") )+1); - path=path.Mid(path.Find( _T("\\") )+1); - CreateDirectory(path2, 0); - } - } - } - } - } - } - else -#endif - m_Operation.nOpState = NeedModeCommand() ? FILETRANSFER_LIST_MODE : (NeedOptsCommand() ? FILETRANSFER_LIST_OPTS : FILETRANSFER_LIST_TYPE); - } - } - break; - case FILETRANSFER_LIST_MODE: + USES_CONVERSION; + + #define FILETRANSFER_INIT -1 + #define FILETRANSFER_PWD 0 + #define FILETRANSFER_CWD 1 + #define FILETRANSFER_MKD 2 + #define FILETRANSFER_CWD2 3 + #define FILETRANSFER_PWD2 4 + #define FILETRANSFER_LIST_MODE 5 + #define FILETRANSFER_LIST_OPTS 6 + #define FILETRANSFER_LIST_PORTPASV 7 + #define FILETRANSFER_LIST_TYPE 8 + #define FILETRANSFER_LIST_LIST 9 + #define FILETRANSFER_LIST_WAITFINISH 10 + #define FILETRANSFER_NOLIST_SIZE 11 + #define FILETRANSFER_NOLIST_MDTM 12 + #define FILETRANSFER_TYPE 13 + #define FILETRANSFER_REST 14 + #define FILETRANSFER_MODE 15 + #define FILETRANSFER_OPTS 16 + #define FILETRANSFER_PORTPASV 17 + #define FILETRANSFER_RETRSTOR 18 + #define FILETRANSFER_WAITFINISH 19 + + #define FILETRANSFER_WAIT 20 + + #define FILETRANSFER_MFMT 21 + + //Partial flowchart of FileTransfer + // + // +----+ + // /------|Init|--------\ + // | +----+ | + // | | | + // | /---+ | + // | | | | + // | | +---+ | + // | | |PWD| | + // | | +---+ | + // | | | | + // | \---+ | + // | | | + // | +---+ | + // | |CWD|--\ | + // | +---+ | | + // | | | | + // | | | | + // | | +---+ | + // | | |MKD| | + // | | +---+ | + // | | | | + // | | | | + // | | +----+ | + // | | |CWD2| | + // | | +----+ | + // | | | | + // | +----/ | + // | | | + // | +---+ | + // +-------|PWD| | + // | +---+ | + // | | | + // | +----------/ + // | | + // | +---------+ + // | |LIST_TYPE| + // | +---------+ + // | | + // | | + // | +-------------+ + // | |LIST_PORTPASV| + // | +-------------+ + // | | + // | | + // | +---------+ + // | |LIST_LIST|-----\ //List fails, maybe folder is list protected + // | +---------+ | //Use SIZE and MDTM to get file information + // | | +----+ + // | | |SIZE| + // | | +----+ + // | | | + // | | +----+ + // | | |MDTM| + // | | +----+ + // | | | + // | | | + // | +---------------+ | + // | |LIST_WAITFINISH| | + // | +---------------+ | + // | | | + // | | | + // | +----------/ + // | | + // \---------+ + // | + // +----+ + // |TYPE| + // +----+ + // | + // | + // +--------+ + // |PORTPASV|--\ + // +--------+ | + // | | + // | | + // | +----+ + // | |REST| + // | +----+ + // | | + // +------/ + // | + // +--------+ + // |RETRSTOR| + // +--------+ + // | + // | + // +----------+ + // |WAITFINISH| + // +----------+ + + DebugAssert(!m_Operation.nOpMode || m_Operation.nOpMode&CSMODE_TRANSFER); + if (!m_pOwner->IsConnected()) + { + m_Operation.nOpMode=CSMODE_TRANSFER|(transferfile->get?CSMODE_DOWNLOAD:CSMODE_UPLOAD); + ResetOperation(FZ_REPLY_ERROR|FZ_REPLY_DISCONNECTED); + return; + } + + CFileTransferData *pData=static_cast(m_Operation.pData); + + //Process finish and error messages + if (bFinish || nError) + { + DebugAssert(m_Operation.nOpMode&CSMODE_TRANSFER); + + // APPE failed, ignore this reply + if (m_Operation.nOpMode == FILETRANSFER_WAIT && bFinish) + return; + + if (!(m_Operation.nOpMode&CSMODE_TRANSFER)) + return; + + if (nError) + { + if (m_Operation.nOpState == FILETRANSFER_LIST_LIST && nError & CSMODE_TRANSFERERROR) + { //Don't abort operation, use fallback to SIZE and MDTM (when actual LIST reply comes in) + if (m_pTransferSocket) + m_pTransferSocket=0; + delete m_pDirectoryListing; + m_pDirectoryListing=0; + } + else if (nError&CSMODE_TRANSFERTIMEOUT) + DoClose(); + else + // we may get here when connection was closed, when the closure + // was first detected while reading/writing, + // when we abort file transfer with regular error, + // possibly preventing automatic reconnect + ResetOperation(FZ_REPLY_ERROR); + return; + } + if (m_Operation.nOpState <= FILETRANSFER_LIST_PORTPASV) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + else if (m_Operation.nOpState<=FILETRANSFER_LIST_WAITFINISH) + { + if (!m_pTransferSocket || m_pTransferSocket->m_bListening) + { + delete m_pDirectoryListing; + m_pDirectoryListing=0; + ResetOperation(FZ_REPLY_ERROR); + return; + } + + int num=0; + pData->pDirectoryListing=new t_directory; + if (GetOptionVal(OPTION_DEBUGSHOWLISTING)) + m_pTransferSocket->m_pListResult->SendToMessageLog(); + pData->pDirectoryListing->direntry=m_pTransferSocket->m_pListResult->getList(num, false); + pData->pDirectoryListing->num=num; + if (m_pTransferSocket->m_pListResult->m_server.nServerType&FZ_SERVERTYPE_SUB_FTP_VMS && m_CurrentServer.nServerType&FZ_SERVERTYPE_FTP) + m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_VMS; + pData->pDirectoryListing->server = m_CurrentServer; + pData->pDirectoryListing->path.SetServer(m_CurrentServer); + pData->pDirectoryListing->path = pData->transferfile.remotepath; + if (pData->rawpwd!=L"") + { + if (!pData->pDirectoryListing->path.SetPath(pData->rawpwd)) + { + delete m_pDirectoryListing; + m_pDirectoryListing=0; + delete m_pTransferSocket; + m_pTransferSocket=0; + ResetOperation(FZ_REPLY_ERROR); + return; + } + } + else + pData->pDirectoryListing->path=pData->transferfile.remotepath; + + if (m_Operation.nOpState!=FILETRANSFER_LIST_WAITFINISH) + return; + } + else if (m_Operation.nOpState <= FILETRANSFER_PORTPASV) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + else if (m_Operation.nOpState<=FILETRANSFER_WAITFINISH) + { + if (m_pTransferSocket->m_bListening) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + pData->nGotTransferEndReply |= 2; + if (m_Operation.nOpState!=FILETRANSFER_WAITFINISH) + return; + else + { + delete m_pTransferSocket; + m_pTransferSocket=0; + } + } + } + + ////////////////// + //Initialization// + ////////////////// + int nReplyError = 0; + if (m_Operation.nOpState == FILETRANSFER_INIT) + { + DebugAssert(transferfile); + DebugAssert(!m_Operation.nOpMode); + DebugAssert(!m_Operation.pData); + + CString str; + str.Format(transferfile->get?IDS_STATUSMSG_DOWNLOADSTART:IDS_STATUSMSG_UPLOADSTART, + transferfile->get ? transferfile->remotepath.FormatFilename(transferfile->remotefile) : transferfile->localfile); + ShowStatus(str,FZ_LOG_STATUS); + + m_Operation.nOpMode=CSMODE_TRANSFER|(transferfile->get?CSMODE_DOWNLOAD:CSMODE_UPLOAD); + + m_Operation.pData=new CFileTransferData; + pData=static_cast(m_Operation.pData); + + if (GetOptionVal(OPTION_PROXYTYPE)!=PROXYTYPE_NOPROXY) + pData->bPasv = TRUE; + else if (m_CurrentServer.nPasv == 1) + pData->bPasv = TRUE; + else if (m_CurrentServer.nPasv == 2) + pData->bPasv = FALSE; + else + pData->bPasv = GetOptionVal(OPTION_PASV); + + //Replace invalid characters in the local filename + int pos=transferfile->localfile.ReverseFind(L'\\'); + for (int i=(pos+1);ilocalfile.GetLength();i++) + if (transferfile->localfile[i]==L':') + transferfile->localfile.SetAt(i, L'_'); + + pData->transferfile=*transferfile; + pData->transferdata.transfersize=pData->transferfile.size; + pData->transferdata.transferleft=pData->transferfile.size; + pData->transferdata.bResume = FALSE; + pData->transferdata.bResumeAppend = FALSE; + pData->transferdata.bType = (pData->transferfile.nType == 1) ? TRUE : FALSE; + + CServerPath path; + VERIFY(m_pOwner->GetCurrentPath(path)); + if (path == pData->transferfile.remotepath) + { + if (m_pDirectoryListing) + { + m_Operation.nOpState=FILETRANSFER_TYPE; + CString remotefile=pData->transferfile.remotefile; + int i; + for (i=0; inum; i++) + { + if (m_pDirectoryListing->direntry[i].name==remotefile && + ( m_pDirectoryListing->direntry[i].bUnsure || m_pDirectoryListing->direntry[i].size==-1 )) + { + delete m_pDirectoryListing; + m_pDirectoryListing=0; + m_Operation.nOpState = NeedModeCommand() ? FILETRANSFER_LIST_MODE : (NeedOptsCommand() ? FILETRANSFER_LIST_OPTS : FILETRANSFER_LIST_TYPE); + break; + } + } + if (m_pDirectoryListing && i==m_pDirectoryListing->num) + { + nReplyError = CheckOverwriteFile(); + if (!nReplyError) + { + if (pData->transferfile.get) + { + CString path=pData->transferfile.localfile; + if (path.ReverseFind(L'\\')!=-1) + { + path=path.Left(path.ReverseFind(L'\\')+1); + CString path2; + while (path!=L"") + { + path2+=path.Left(path.Find( L"\\" )+1); + path=path.Mid(path.Find( L"\\" )+1); + CreateDirectory(path2, 0); + } + } + } + } + } + } + else + { + m_Operation.nOpState = NeedModeCommand() ? FILETRANSFER_LIST_MODE : (NeedOptsCommand() ? FILETRANSFER_LIST_OPTS : FILETRANSFER_LIST_TYPE); + } + } + else + { + if (path.IsEmpty()) + m_Operation.nOpState = FILETRANSFER_PWD; + else + m_Operation.nOpState = FILETRANSFER_CWD; + } + } + else + { + /////////// + //Replies// + /////////// + int code = GetReplyCode(); + switch(m_Operation.nOpState) + { + case FILETRANSFER_PWD: + if (code != 2 && code != 3) + { + nReplyError = FZ_REPLY_ERROR; + break; + } + + pData->rawpwd = GetReply(); + if ((m_mayBeMvsFilesystem || m_mayBeBS2000Filesystem) && m_CurrentServer.nServerType & FZ_SERVERTYPE_FTP && + pData->rawpwd[0] != L'/') + { + m_mayBeMvsFilesystem = false; + m_mayBeBS2000Filesystem = false; + + if (m_mayBeBS2000Filesystem) + m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_BS2000; + else + m_CurrentServer.nServerType |= FZ_SERVERTYPE_SUB_FTP_MVS; + + pData->transferfile.remotepath.SetServer(m_CurrentServer); + } + if (!ParsePwdReply(pData->rawpwd)) + return; + + if (m_pOwner->GetCurrentPath() == pData->transferfile.remotepath) + { + m_Operation.nOpState = NeedModeCommand() ? FILETRANSFER_LIST_MODE : (NeedOptsCommand() ? FILETRANSFER_LIST_OPTS : FILETRANSFER_LIST_TYPE); + } + else + m_Operation.nOpState = LIST_CWD; + break; + case FILETRANSFER_CWD: + if (code != 2 && code != 3) + if (pData->transferfile.get) + { + pData->bUseAbsolutePaths = TRUE; + m_Operation.nOpState = FILETRANSFER_NOLIST_SIZE; + } + else + m_Operation.nOpState = FILETRANSFER_MKD; + else + m_Operation.nOpState = FILETRANSFER_PWD2; + break; + case FILETRANSFER_MKD: + switch(pData->nMKDOpState) + { + case MKD_FINDPARENT: + { + if (code == 2 || code == 3) + { + m_pOwner->SetCurrentPath(pData->MKDCurrent); + + pData->nMKDOpState=MKD_CHANGETOSUBDIR; + pData->MKDCurrent.AddSubdir(pData->MKDSegments.front()); + CString Segment=pData->MKDSegments.front(); + pData->MKDSegments.pop_front(); + if (!Send( L"MKD " + Segment)) + return; + } + else + { + if (!pData->MKDCurrent.HasParent()) + nReplyError = FZ_REPLY_ERROR | ((code == 5) ? FZ_REPLY_CRITICALERROR : 0); + else + { + pData->MKDSegments.push_front(pData->MKDCurrent.GetLastSegment()); + pData->MKDCurrent=pData->MKDCurrent.GetParent(); + if (!Send(L"CWD "+pData->MKDCurrent.GetPath())) + return; + } + } + } + break; + case MKD_MAKESUBDIRS: + { + if (code == 2 || code == 3) + { //Create dir entry in parent dir + DebugAssert(!pData->MKDSegments.empty()); + pData->MKDCurrent.AddSubdir(pData->MKDSegments.front()); + CString Segment=pData->MKDSegments.front(); + pData->MKDSegments.pop_front(); + if (Send( L"MKD " + Segment)) + pData->nMKDOpState=MKD_CHANGETOSUBDIR; + else + return; + } + else + nReplyError=FZ_REPLY_ERROR; + } + break; + case MKD_CHANGETOSUBDIR: + { + if (code == 2 || code == 3 || //Creation successful + m_RecvBuffer.front() == "550 Directory already exists") //Creation was successful, although someone else did the work for us + { + CServerPath path2 = pData->MKDCurrent; + if (path2.HasParent()) + { + CString name=path2.GetLastSegment(); + path2=path2.GetParent(); + t_directory dir; + BOOL res=FALSE; + if (m_pDirectoryListing) + { + if (m_pDirectoryListing->path==path2) + { + dir=*m_pDirectoryListing; + res=TRUE; + } + } + t_directory WorkingDir; + BOOL bFound=m_pOwner->GetWorkingDir(&WorkingDir); + if (!res && bFound) + if (WorkingDir.path==path2) + { + dir=WorkingDir; + res=TRUE; + } + if (!res) + { + dir.path=path2; + dir.server=m_CurrentServer; + } + + int i; + for (i=0; ipath==dir.path) + { + updated=TRUE; + SetDirectoryListing(&dir); + } + if (!updated) + if (WorkingDir.path==dir.path) + { + updated=TRUE; + m_pOwner->SetWorkingDir(&dir); + } + } + } + } + + //Continue operation even if MKD failed, maybe another thread did create this directory for us + if (pData->MKDSegments.empty()) + m_Operation.nOpState=FILETRANSFER_CWD2; + else + { + if (Send( L"CWD " + pData->MKDCurrent.GetPath())) + pData->nMKDOpState=MKD_MAKESUBDIRS; + else + return; + } + } + break; + default: + DebugFail(); + } + + break; + case FILETRANSFER_CWD2: + if (code != 2 && code != 3) + if (code == 4) + nReplyError=FZ_REPLY_ERROR; + else + nReplyError=FZ_REPLY_CRITICALERROR; + else + m_Operation.nOpState=FILETRANSFER_PWD2; + break; + case FILETRANSFER_PWD2: + if (code != 2 && code != 3) + nReplyError = FZ_REPLY_ERROR; + else + { + pData->rawpwd = GetReply(); + if (!ParsePwdReply(pData->rawpwd)) + return; + + if (m_pOwner->GetCurrentPath() != pData->transferfile.remotepath) + { + // More user-friendly message when the actual paths differ + if (m_pOwner->GetCurrentPath().GetPath() != pData->transferfile.remotepath.GetPath()) + { + LogMessage(FZ_LOG_WARNING, L"Real path and requested remote path do not match: \"%s\" \"%s\"", m_pOwner->GetCurrentPath().GetPath(), pData->transferfile.remotepath.GetPath()); + } + else + { + LogMessage(FZ_LOG_WARNING, L"Real path and requested remote path do not match: \"%s\" \"%s\"", m_pOwner->GetCurrentPath().GetSafePath(), pData->transferfile.remotepath.GetSafePath()); + } + nReplyError = FZ_REPLY_CRITICALERROR; + } + else + { + m_Operation.nOpState = NeedModeCommand() ? FILETRANSFER_LIST_MODE : (NeedOptsCommand() ? FILETRANSFER_LIST_OPTS : FILETRANSFER_LIST_TYPE); + } + } + break; + case FILETRANSFER_LIST_MODE: #ifdef MPEXT_NO_ZLIB - ASSERT(false); - m_Operation.nOpState = FILETRANSFER_LIST_TYPE; + DebugFail(); + m_Operation.nOpState = FILETRANSFER_LIST_TYPE; #else - if (code == 2 || code == 3) - m_useZlib = !m_useZlib; - m_Operation.nOpState = NeedOptsCommand() ? FILETRANSFER_LIST_OPTS : FILETRANSFER_LIST_TYPE; + if (code == 2 || code == 3) + m_useZlib = !m_useZlib; + m_Operation.nOpState = NeedOptsCommand() ? FILETRANSFER_LIST_OPTS : FILETRANSFER_LIST_TYPE; #endif - break; - case FILETRANSFER_LIST_OPTS: + break; + case FILETRANSFER_LIST_OPTS: #ifdef MPEXT_NO_ZLIB - ASSERT(false); + DebugFail(); #else - if (code == 2 || code == 3) - m_zlibLevel = pData->newZlibLevel; - m_Operation.nOpState = FILETRANSFER_LIST_TYPE; + if (code == 2 || code == 3) + m_zlibLevel = pData->newZlibLevel; + m_Operation.nOpState = FILETRANSFER_LIST_TYPE; #endif - break; - case FILETRANSFER_LIST_TYPE: - if (code != 2 && code != 3) - nReplyError = FZ_REPLY_ERROR; - else - m_Operation.nOpState = FILETRANSFER_LIST_PORTPASV; - break; - case FILETRANSFER_LIST_PORTPASV: - if (code!=3 && code!=2) - { - if (!pData->bTriedPortPasvOnce) - { - pData->bTriedPortPasvOnce = TRUE; - pData->bPasv = !pData->bPasv; - } - else - nReplyError=FZ_REPLY_ERROR; - break; - } - - if (pData->bPasv) - { - CString reply = GetReply(); - int i,j; - // MP EXT - if((i=reply.Find(_T("(")))>=0&&(j=reply.Find(_T(")")))>=0) - { - i++; - j--; - } - else - { - // MP EXT - if ((i=reply.Mid(4).FindOneOf(_T("0123456789")))>=0) - { - i += 4; - j = reply.GetLength() - 1; - } - else - { - if (!pData->bTriedPortPasvOnce) - { - pData->bTriedPortPasvOnce = TRUE; - pData->bPasv = !pData->bPasv; - } - else - nReplyError = FZ_REPLY_ERROR; - break; - } - } - - CString temp; - // MPEXT - temp = reply.Mid(i,(j-i)+1); - - if (GetFamily() == AF_INET) - { - int count=0; - int pos=0; - //Convert commas to dots - temp.Replace( _T(","), _T(".") ); - while(1) - { - pos=temp.Find(_T("."),pos); - if (pos!=-1) - count++; - else - break; - pos++; - } - if (count!=5) - { - if (!pData->bTriedPortPasvOnce) - { - pData->bTriedPortPasvOnce = TRUE; - pData->bPasv = !pData->bPasv; - } - else - nReplyError = FZ_REPLY_ERROR; - break; - } - - i=temp.ReverseFind(_MPT('.')); - pData->port=atol( T2CA( temp.Right(temp.GetLength()-(i+1)) ) ); //get ls byte of server socket - temp=temp.Left(i); - i=temp.ReverseFind(_MPT('.')); - pData->port+=256*atol( T2CA( temp.Right(temp.GetLength()-(i+1)) ) ); // add ms byte to server socket - pData->host=temp.Left(i); -#ifdef MPEXT - if (!CheckForcePasvIp(pData->host)) - { - nReplyError = FZ_REPLY_ERROR; - break; - } -#endif - } - else if (GetFamily() == AF_INET6) - { - temp = temp.Mid(3); - pData->port = atol( T2CA(temp.Left(temp.GetLength() - 1) ) ); - if (pData->port < 0 || pData->port > 65535) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Port %u not valid"), pData->port); - nReplyError = FZ_REPLY_ERROR; - break; - } - - unsigned int tmpPort; - if (!GetPeerName(pData->host, tmpPort)) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("GetPeerName failed")); - nReplyError = FZ_REPLY_ERROR; - break; - } - } - - m_pTransferSocket = new CTransferSocket(this, CSMODE_LIST); + break; + case FILETRANSFER_LIST_TYPE: + if (code != 2 && code != 3) + nReplyError = FZ_REPLY_ERROR; + else + m_Operation.nOpState = FILETRANSFER_LIST_PORTPASV; + break; + case FILETRANSFER_LIST_PORTPASV: + if (code!=3 && code!=2) + { + if (!pData->bTriedPortPasvOnce) + { + pData->bTriedPortPasvOnce = TRUE; + pData->bPasv = !pData->bPasv; + } + else + nReplyError=FZ_REPLY_ERROR; + break; + } + + if (pData->bPasv) + { + CString reply = GetReply(); + int i,j; + // MP EXT + if((i=reply.Find(L"("))>=0&&(j=reply.Find(L")"))>=0) + { + i++; + j--; + } + else + { + // MP EXT + if ((i=reply.Mid(4).FindOneOf(L"0123456789"))>=0) + { + i += 4; + j = reply.GetLength() - 1; + } + else + { + if (!pData->bTriedPortPasvOnce) + { + pData->bTriedPortPasvOnce = TRUE; + pData->bPasv = !pData->bPasv; + } + else + nReplyError = FZ_REPLY_ERROR; + break; + } + } + + CString temp = reply.Mid(i,(j-i)+1); + + if (GetFamily() == AF_INET) + { + int count=0; + int pos=0; + //Convert commas to dots + temp.Replace( L",", L"." ); + while(1) + { + pos=temp.Find(L".",pos); + if (pos!=-1) + count++; + else + break; + pos++; + } + if (count!=5) + { + if (!pData->bTriedPortPasvOnce) + { + pData->bTriedPortPasvOnce = TRUE; + pData->bPasv = !pData->bPasv; + } + else + nReplyError = FZ_REPLY_ERROR; + break; + } + + i=temp.ReverseFind(L'.'); + pData->port=atol( T2CA( temp.Right(temp.GetLength()-(i+1)) ) ); //get ls byte of server socket + temp=temp.Left(i); + i=temp.ReverseFind(L'.'); + pData->port+=256*atol( T2CA( temp.Right(temp.GetLength()-(i+1)) ) ); // add ms byte to server socket + pData->host=temp.Left(i); + if (!CheckForcePasvIp(pData->host)) + { + nReplyError = FZ_REPLY_ERROR; + break; + } + } + else if (GetFamily() == AF_INET6) + { + temp = temp.Mid(3); + pData->port = atol( T2CA(temp.Left(temp.GetLength() - 1) ) ); + if (pData->port < 0 || pData->port > 65535) + { + LogMessage(FZ_LOG_WARNING, L"Port %u not valid", pData->port); + nReplyError = FZ_REPLY_ERROR; + break; + } + + unsigned int tmpPort; + if (!GetPeerName(pData->host, tmpPort)) + { + LogMessage(FZ_LOG_WARNING, L"GetPeerName failed"); + nReplyError = FZ_REPLY_ERROR; + break; + } + } + + m_pTransferSocket = new CTransferSocket(this, CSMODE_LIST); #ifndef MPEXT_NO_ZLIB - if (m_useZlib) - { - if (!m_pTransferSocket->InitZlib(m_zlibLevel)) - { - ShowStatus(_MPT("Failed to initialize zlib"), FZ_LOG_ERROR); - ResetOperation(FZ_REPLY_ERROR); - return; - } - } + if (m_useZlib) + { + if (!m_pTransferSocket->InitZlib(m_zlibLevel)) + { + ShowStatus(L"Failed to initialize zlib", FZ_LOG_ERROR); + ResetOperation(FZ_REPLY_ERROR); + return; + } + } #endif #ifndef MPEXT_NO_GSS - if (m_pGssLayer && m_pGssLayer->AuthSuccessful()) - m_pTransferSocket->UseGSS(m_pGssLayer); -#endif - m_pTransferSocket->m_nInternalMessageID = m_pOwner->m_nInternalMessageID; - m_pTransferSocket->SetFamily(GetFamily()); - if (!m_pTransferSocket->Create( -#ifndef MPEXT_NO_SSL - m_pSslLayer && m_bProtP -#endif - )) - { - nReplyError = FZ_REPLY_ERROR; - break; - } - - VERIFY(m_pTransferSocket->AsyncSelect()); - } - m_Operation.nOpState=FILETRANSFER_LIST_LIST; - break; - case FILETRANSFER_LIST_LIST: - if (IsMisleadingListResponse()) - { - ShowStatus(IDS_STATUSMSG_DIRLISTSUCCESSFUL, FZ_LOG_PROGRESS); - - t_directory listing; - listing.server = m_CurrentServer; - listing.path.SetServer(m_CurrentServer); - if (pData->rawpwd != _MPT("")) - { - if (!listing.path.SetPath(pData->rawpwd)) - { - delete m_pDirectoryListing; - m_pDirectoryListing = 0; - delete m_pTransferSocket; - m_pTransferSocket = 0; - ResetOperation(FZ_REPLY_ERROR); - return; - } - } - else - listing.path = pData->transferfile.remotepath; - -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - cache.Lock(); - t_directory dir; - if (cache.Lookup(listing.path, listing.server, dir)) - listing.Merge(dir, pData->ListStartTime); - cache.Store(listing); - cache.Unlock(); + if (m_pGssLayer && m_pGssLayer->AuthSuccessful()) + m_pTransferSocket->UseGSS(m_pGssLayer); #endif - SetDirectoryListing(&listing); - - m_Operation.nOpState = FILETRANSFER_TYPE; - delete m_pTransferSocket; - m_pTransferSocket = 0; - - nReplyError = CheckOverwriteFile(); - if (!nReplyError) - { - if (pData->transferfile.get) - { - CString path=pData->transferfile.localfile; - if (path.ReverseFind(_MPT('\\'))!=-1) - { - path=path.Left(path.ReverseFind(_MPT('\\'))+1); - CString path2; - while (path!=_MPT("")) - { - path2+=path.Left(path.Find( _T("\\") )+1); - path=path.Mid(path.Find( _T("\\") )+1); - CreateDirectory(path2, 0); - } - } - } - } - } - else if (code==4 || code==5) //LIST failed, try getting file information using SIZE and MDTM - { - TransferHandleListError(); - } - else if (code!=1) - nReplyError=FZ_REPLY_ERROR; - else - m_Operation.nOpState=FILETRANSFER_LIST_WAITFINISH; - break; - case FILETRANSFER_LIST_WAITFINISH: - if (!bFinish) - { - if (code!=2 && code!=3) - { - if (code==4 || code==5) - { - TransferHandleListError(); - } - else - { - nReplyError=FZ_REPLY_ERROR; - } - } - else - pData->nGotTransferEndReply = 1; - } - if (pData->nGotTransferEndReply && pData->pDirectoryListing) - { -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - t_directory dir; - cache.Lock(); - if (cache.Lookup(pData->pDirectoryListing->path, pData->pDirectoryListing->server, dir, TRUE)) - { - pData->pDirectoryListing->Merge(dir, pData->ListStartTime); - } - cache.Store(*pData->pDirectoryListing); - cache.Unlock(); -#endif - SetDirectoryListing(pData->pDirectoryListing); - delete m_pTransferSocket; - m_pTransferSocket=0; - m_Operation.nOpState=FILETRANSFER_TYPE; - nReplyError = CheckOverwriteFile(); - if (!nReplyError) - { - if (pData->transferfile.get) - { - CString path=pData->transferfile.localfile; - if (path.ReverseFind(_MPT('\\'))!=-1) - { - path=path.Left(path.ReverseFind(_MPT('\\'))+1); - CString path2; - while (path!=_MPT("")) - { - path2+=path.Left(path.Find( _T("\\") )+1); - path=path.Mid(path.Find( _T("\\") )+1); - CreateDirectory(path2, 0); - } - } - } - } - pData->nGotTransferEndReply=0; - } - break; - case FILETRANSFER_NOLIST_SIZE: - { - __int64 size; - if (HandleSize(code, size)) - { - ASSERT(!pData->pFileSize); - pData->pFileSize=new _int64; - *pData->pFileSize=size; - } - } - m_Operation.nOpState=FILETRANSFER_NOLIST_MDTM; - break; - case FILETRANSFER_NOLIST_MDTM: - if (HandleMdtm(code, pData->remoteDate)) - { - pData->hasRemoteDate = true; - } - m_Operation.nOpState=FILETRANSFER_TYPE; - nReplyError=CheckOverwriteFile(); - break; - case FILETRANSFER_TYPE: - if (code!=2 && code!=3) - nReplyError = FZ_REPLY_ERROR; - m_Operation.nOpState = NeedModeCommand() ? FILETRANSFER_MODE : (NeedOptsCommand() ? FILETRANSFER_OPTS : FILETRANSFER_PORTPASV); - break; - case FILETRANSFER_WAIT: - if (!pData->nWaitNextOpState) - nReplyError=FZ_REPLY_ERROR; - else - m_Operation.nOpState=pData->nWaitNextOpState; - break; - case FILETRANSFER_MODE: + m_pTransferSocket->m_nInternalMessageID = m_pOwner->m_nInternalMessageID; + m_pTransferSocket->SetFamily(GetFamily()); + if (!m_pTransferSocket->Create(m_pSslLayer && m_bProtP)) + { + nReplyError = FZ_REPLY_ERROR; + break; + } + + VERIFY(m_pTransferSocket->AsyncSelect()); + } + m_Operation.nOpState=FILETRANSFER_LIST_LIST; + break; + case FILETRANSFER_LIST_LIST: + if (IsMisleadingListResponse()) + { + ShowStatus(IDS_STATUSMSG_DIRLISTSUCCESSFUL, FZ_LOG_PROGRESS); + + t_directory listing; + listing.server = m_CurrentServer; + listing.path.SetServer(m_CurrentServer); + if (pData->rawpwd != L"") + { + if (!listing.path.SetPath(pData->rawpwd)) + { + delete m_pDirectoryListing; + m_pDirectoryListing = 0; + delete m_pTransferSocket; + m_pTransferSocket = 0; + ResetOperation(FZ_REPLY_ERROR); + return; + } + } + else + listing.path = pData->transferfile.remotepath; + + SetDirectoryListing(&listing); + + m_Operation.nOpState = FILETRANSFER_TYPE; + delete m_pTransferSocket; + m_pTransferSocket = 0; + + nReplyError = CheckOverwriteFile(); + if (!nReplyError) + { + if (pData->transferfile.get) + { + CString path=pData->transferfile.localfile; + if (path.ReverseFind(L'\\')!=-1) + { + path=path.Left(path.ReverseFind(L'\\')+1); + CString path2; + while (path!=L"") + { + path2+=path.Left(path.Find( L"\\" )+1); + path=path.Mid(path.Find( L"\\" )+1); + CreateDirectory(path2, 0); + } + } + } + } + } + else if (code==4 || code==5) //LIST failed, try getting file information using SIZE and MDTM + { + TransferHandleListError(); + } + else if (code!=1) + nReplyError=FZ_REPLY_ERROR; + else + m_Operation.nOpState=FILETRANSFER_LIST_WAITFINISH; + break; + case FILETRANSFER_LIST_WAITFINISH: + if (!bFinish) + { + if (code!=2 && code!=3) + { + if (code==4 || code==5) + { + TransferHandleListError(); + } + else + { + nReplyError=FZ_REPLY_ERROR; + } + } + else + pData->nGotTransferEndReply = 1; + } + if (pData->nGotTransferEndReply && pData->pDirectoryListing) + { + SetDirectoryListing(pData->pDirectoryListing); + delete m_pTransferSocket; + m_pTransferSocket=0; + m_Operation.nOpState=FILETRANSFER_TYPE; + nReplyError = CheckOverwriteFile(); + if (!nReplyError) + { + if (pData->transferfile.get) + { + CString path=pData->transferfile.localfile; + if (path.ReverseFind(L'\\')!=-1) + { + path=path.Left(path.ReverseFind(L'\\')+1); + CString path2; + while (path!=L"") + { + path2+=path.Left(path.Find( L"\\" )+1); + path=path.Mid(path.Find( L"\\" )+1); + CreateDirectory(path2, 0); + } + } + } + } + pData->nGotTransferEndReply=0; + } + break; + case FILETRANSFER_NOLIST_SIZE: + { + __int64 size; + if (HandleSize(code, size)) + { + DebugAssert(!pData->pFileSize); + pData->pFileSize=new _int64; + *pData->pFileSize=size; + } + } + m_Operation.nOpState=FILETRANSFER_NOLIST_MDTM; + break; + case FILETRANSFER_NOLIST_MDTM: + if (HandleMdtm(code, pData->remoteDate)) + { + pData->hasRemoteDate = true; + } + m_Operation.nOpState=FILETRANSFER_TYPE; + nReplyError=CheckOverwriteFile(); + break; + case FILETRANSFER_TYPE: + if (code!=2 && code!=3) + nReplyError = FZ_REPLY_ERROR; + m_Operation.nOpState = NeedModeCommand() ? FILETRANSFER_MODE : (NeedOptsCommand() ? FILETRANSFER_OPTS : FILETRANSFER_PORTPASV); + break; + case FILETRANSFER_WAIT: + if (!pData->nWaitNextOpState) + nReplyError=FZ_REPLY_ERROR; + else + m_Operation.nOpState=pData->nWaitNextOpState; + break; + case FILETRANSFER_MODE: #ifdef MPEXT_NO_ZLIB - ASSERT(false); - m_Operation.nOpState = FILETRANSFER_PORTPASV; + DebugFail(); + m_Operation.nOpState = FILETRANSFER_PORTPASV; #else - if (code == 2 || code == 3) - m_useZlib = !m_useZlib; - m_Operation.nOpState = NeedOptsCommand() ? FILETRANSFER_OPTS : FILETRANSFER_PORTPASV; + if (code == 2 || code == 3) + m_useZlib = !m_useZlib; + m_Operation.nOpState = NeedOptsCommand() ? FILETRANSFER_OPTS : FILETRANSFER_PORTPASV; #endif - break; - case FILETRANSFER_OPTS: + break; + case FILETRANSFER_OPTS: #ifdef MPEXT_NO_ZLIB - ASSERT(false); + DebugFail(); #else - if (code == 2 || code == 3) - m_zlibLevel = pData->newZlibLevel; -#endif - m_Operation.nOpState = FILETRANSFER_PORTPASV; - break; - case FILETRANSFER_PORTPASV: - if (code == 3 || code == 2) - { - if (pData->bPasv) - { - CString reply = GetReply(); - int i,j; - // MP EXT - if((i=reply.Find(_T("(")))>=0&&(j=reply.Find(_T(")")))>=0) - { - i++; - j--; - } - else - { - // MP EXT - if ((i=reply.Mid(4).FindOneOf(_T("0123456789")))>=0) - { - i += 4; - j = reply.GetLength() - 1; - } - else - { - if (!pData->bTriedPortPasvOnce) - { - pData->bTriedPortPasvOnce = TRUE; - pData->bPasv = !pData->bPasv; - } - else - nReplyError = FZ_REPLY_ERROR; - break; - } - } - - CString temp; - // MPEXT - temp = reply.Mid(i,(j-i)+1); - - if (GetFamily() == AF_INET) - { - int count=0; - int pos=0; - //Convert commas to dots - temp.Replace( _T(","), _T(".") ); - while(1) - { - pos=temp.Find( _T("."), pos); - if (pos!=-1) - count++; - else - break; - pos++; - } - if (count!=5) - { - if (!pData->bTriedPortPasvOnce) - { - pData->bTriedPortPasvOnce = TRUE; - pData->bPasv = !pData->bPasv; - } - else - nReplyError = FZ_REPLY_ERROR; - break; - } - - i=temp.ReverseFind(_MPT('.')); - pData->port=atol( T2CA( temp.Right(temp.GetLength()-(i+1)) ) ); //get ls byte of server socket - temp=temp.Left(i); - i=temp.ReverseFind(_MPT('.')); - pData->port+=256*atol( T2CA( temp.Right(temp.GetLength()-(i+1)) ) ); // add ms byte to server socket - pData->host=temp.Left(i); -#ifdef MPEXT - if (!CheckForcePasvIp(pData->host)) - { - nReplyError = FZ_REPLY_ERROR; - break; - } + if (code == 2 || code == 3) + m_zlibLevel = pData->newZlibLevel; #endif - } - else if (GetFamily() == AF_INET6) - { - temp = temp.Mid(3); - pData->port = atol( T2CA(temp.Left(temp.GetLength() - 1) ) ); - if (pData->port < 0 || pData->port > 65535) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Port %u not valid"), pData->port); - nReplyError = FZ_REPLY_ERROR; - break; - } - - unsigned int tmpPort; - if (!GetPeerName(pData->host, tmpPort)) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("GetPeerName failed")); - nReplyError = FZ_REPLY_ERROR; - break; - } - } - else - { - nReplyError = FZ_REPLY_ERROR; - break; - } - m_pTransferSocket = new CTransferSocket(this, m_Operation.nOpMode); + m_Operation.nOpState = FILETRANSFER_PORTPASV; + break; + case FILETRANSFER_PORTPASV: + if (code == 3 || code == 2) + { + if (pData->bPasv) + { + CString reply = GetReply(); + int i,j; + // MP EXT + if((i=reply.Find(L"("))>=0&&(j=reply.Find(L")"))>=0) + { + i++; + j--; + } + else + { + // MP EXT + if ((i=reply.Mid(4).FindOneOf(L"0123456789"))>=0) + { + i += 4; + j = reply.GetLength() - 1; + } + else + { + if (!pData->bTriedPortPasvOnce) + { + pData->bTriedPortPasvOnce = TRUE; + pData->bPasv = !pData->bPasv; + } + else + nReplyError = FZ_REPLY_ERROR; + break; + } + } + + CString temp = reply.Mid(i,(j-i)+1); + + if (GetFamily() == AF_INET) + { + int count=0; + int pos=0; + //Convert commas to dots + temp.Replace( L",", L"." ); + while(1) + { + pos=temp.Find( L".", pos); + if (pos!=-1) + count++; + else + break; + pos++; + } + if (count!=5) + { + if (!pData->bTriedPortPasvOnce) + { + pData->bTriedPortPasvOnce = TRUE; + pData->bPasv = !pData->bPasv; + } + else + nReplyError = FZ_REPLY_ERROR; + break; + } + + i=temp.ReverseFind(L'.'); + pData->port=atol( T2CA( temp.Right(temp.GetLength()-(i+1)) ) ); //get ls byte of server socket + temp=temp.Left(i); + i=temp.ReverseFind(L'.'); + pData->port+=256*atol( T2CA( temp.Right(temp.GetLength()-(i+1)) ) ); // add ms byte to server socket + pData->host=temp.Left(i); + if (!CheckForcePasvIp(pData->host)) + { + nReplyError = FZ_REPLY_ERROR; + break; + } + } + else if (GetFamily() == AF_INET6) + { + temp = temp.Mid(3); + pData->port = atol( T2CA(temp.Left(temp.GetLength() - 1) ) ); + if (pData->port < 0 || pData->port > 65535) + { + LogMessage(FZ_LOG_WARNING, L"Port %u not valid", pData->port); + nReplyError = FZ_REPLY_ERROR; + break; + } + + unsigned int tmpPort; + if (!GetPeerName(pData->host, tmpPort)) + { + LogMessage(FZ_LOG_WARNING, L"GetPeerName failed"); + nReplyError = FZ_REPLY_ERROR; + break; + } + } + else + { + nReplyError = FZ_REPLY_ERROR; + break; + } + m_pTransferSocket = new CTransferSocket(this, m_Operation.nOpMode); #ifndef MPEXT_NO_ZLIB - if (m_useZlib) - { - if (!m_pTransferSocket->InitZlib(m_zlibLevel)) - { - ShowStatus(_MPT("Failed to initialize zlib"), FZ_LOG_ERROR); - ResetOperation(FZ_REPLY_ERROR); - return; - } - } + if (m_useZlib) + { + if (!m_pTransferSocket->InitZlib(m_zlibLevel)) + { + ShowStatus(L"Failed to initialize zlib", FZ_LOG_ERROR); + ResetOperation(FZ_REPLY_ERROR); + return; + } + } #endif #ifndef MPEXT_NO_GSS - if (m_pGssLayer && m_pGssLayer->AuthSuccessful()) - m_pTransferSocket->UseGSS(m_pGssLayer); -#endif - m_pTransferSocket->m_nInternalMessageID = m_pOwner->m_nInternalMessageID; - m_pTransferSocket->SetFamily(GetFamily()); - if (!m_pTransferSocket->Create( -#ifndef MPEXT_NO_SSL - m_pSslLayer && m_bProtP + if (m_pGssLayer && m_pGssLayer->AuthSuccessful()) + m_pTransferSocket->UseGSS(m_pGssLayer); #endif - )) - { - nReplyError = FZ_REPLY_ERROR; - break; - } - - VERIFY(m_pTransferSocket->AsyncSelect()); - } - - if (pData->transferdata.bResume && pData->transferfile.get) - m_Operation.nOpState = FILETRANSFER_REST; - else - m_Operation.nOpState = FILETRANSFER_RETRSTOR; - BOOL res = FALSE; - if (!m_pDataFile) - m_pDataFile = new CFile; - if (pData->transferfile.get) - { - if (pData->transferdata.bResume) - res = m_pDataFile->Open(pData->transferfile.localfile,CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate|CFile::shareDenyWrite); - else - res = m_pDataFile->Open(pData->transferfile.localfile,CFile::modeWrite|CFile::modeCreate|CFile::shareDenyWrite); - } - else -#ifdef MPEXT - res = m_pDataFile->Open(pData->transferfile.localfile,CFile::modeRead|CFile::shareDenyNone); -#else - res = m_pDataFile->Open(pData->transferfile.localfile,CFile::modeRead|CFile::shareDenyWrite); -#endif - if (!res) - { - wchar_t * Error = m_pTools->LastSysErrorMessage(); - //Error opening the file - CString str; - str.Format(IDS_ERRORMSG_FILEOPENFAILED,pData->transferfile.localfile); - str += L"\n"; - str += Error; - free(Error); - ShowStatus(str,FZ_LOG_ERROR); - nReplyError = FZ_REPLY_ERROR; - break; - } - - if (!m_pTransferSocket) - { - nReplyError=FZ_REPLY_ERROR; - break; - } - - m_pTransferSocket->m_pFile = m_pDataFile; - if (!pData->transferfile.get) - { + m_pTransferSocket->m_nInternalMessageID = m_pOwner->m_nInternalMessageID; + m_pTransferSocket->SetFamily(GetFamily()); + if (!m_pTransferSocket->Create(m_pSslLayer && m_bProtP)) + { + nReplyError = FZ_REPLY_ERROR; + break; + } + + VERIFY(m_pTransferSocket->AsyncSelect()); + } + + if (pData->transferdata.bResume) + m_Operation.nOpState = FILETRANSFER_REST; + else + m_Operation.nOpState = FILETRANSFER_RETRSTOR; + BOOL res = FALSE; + if (!m_pDataFile) + m_pDataFile = new CFile; + if (pData->transferfile.get) + { + if (pData->transferdata.bResume) + res = m_pDataFile->Open(pData->transferfile.localfile,CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate|CFile::shareDenyWrite); + else + res = m_pDataFile->Open(pData->transferfile.localfile,CFile::modeWrite|CFile::modeCreate|CFile::shareDenyWrite); + } + else + res = m_pDataFile->Open(pData->transferfile.localfile,CFile::modeRead|CFile::shareDenyNone); + if (!res) + { + wchar_t * Error = m_pTools->LastSysErrorMessage(); + //Error opening the file + CString str; + str.Format(IDS_ERRORMSG_FILEOPENFAILED,pData->transferfile.localfile); + str += L"\n"; + str += Error; + free(Error); + ShowStatus(str,FZ_LOG_ERROR); + nReplyError = FZ_REPLY_ERROR; + break; + } + + if (!m_pTransferSocket) + { + nReplyError=FZ_REPLY_ERROR; + break; + } + + m_pTransferSocket->m_pFile = m_pDataFile; + if (!pData->transferfile.get) + { // See comment in !get branch below - pData->transferdata.transfersize=GetLength64(*m_pDataFile); - pData->transferdata.transferleft=pData->transferdata.transfersize; - if (pData->transferdata.bResume) - { - CString remotefile=pData->transferfile.remotefile; - if (m_pDirectoryListing) - for (int i = 0; i < m_pDirectoryListing->num; i++) - { - if (m_pDirectoryListing->direntry[i].name == remotefile) - { - pData->transferdata.transferleft -= m_pDirectoryListing->direntry[i].size; - break; - } - } - _int64 size = pData->transferdata.transfersize-pData->transferdata.transferleft; - LONG low = static_cast(size&0xFFFFFFFF); - LONG high = static_cast(size>>32); - if (SetFilePointer((HANDLE)m_pDataFile->m_hFile, low, &high, FILE_BEGIN)==0xFFFFFFFF && GetLastError()!=NO_ERROR) - { - ShowStatus(IDS_ERRORMSG_SETFILEPOINTER, FZ_LOG_ERROR); - nReplyError = FZ_REPLY_ERROR; - } - } - } - else - { + pData->transferdata.transfersize=GetLength64(*m_pDataFile); + pData->transferdata.transferleft=pData->transferdata.transfersize; + if (pData->transferdata.bResume) + { + CString remotefile=pData->transferfile.remotefile; + if (m_pDirectoryListing) + for (int i = 0; i < m_pDirectoryListing->num; i++) + { + if (m_pDirectoryListing->direntry[i].name == remotefile) + { + pData->transferdata.transferleft -= m_pDirectoryListing->direntry[i].size; + break; + } + } + _int64 size = pData->transferdata.transfersize-pData->transferdata.transferleft; + LONG low = static_cast(size&0xFFFFFFFF); + LONG high = static_cast(size>>32); + if (SetFilePointer((HANDLE)m_pDataFile->m_hFile, low, &high, FILE_BEGIN)==0xFFFFFFFF && GetLastError()!=NO_ERROR) + { + ShowStatus(IDS_ERRORMSG_SETFILEPOINTER, FZ_LOG_ERROR); + nReplyError = FZ_REPLY_ERROR; + } + } + } + else + { // Resetting transfersize here is pointless as we // always provide valid size in call to FileTransfer. // We unnecessary reply on the file being in the directory listing. - pData->transferdata.transfersize=-1; - CString remotefile=pData->transferfile.remotefile; - if (m_pDirectoryListing) - for (int i=0; inum; i++) - { - if (m_pDirectoryListing->direntry[i].name==remotefile) - { - pData->hasRemoteDate = true; - pData->remoteDate = m_pDirectoryListing->direntry[i].date; - pData->transferdata.transfersize=m_pDirectoryListing->direntry[i].size; - } - } - else if (pData->pFileSize) - pData->transferdata.transfersize=*pData->pFileSize; - pData->transferdata.transferleft=pData->transferdata.transfersize; - } - } - else - if (!pData->bTriedPortPasvOnce) - { - pData->bTriedPortPasvOnce = TRUE; - pData->bPasv = !pData->bPasv; - } - else - nReplyError = FZ_REPLY_ERROR; - break; - case FILETRANSFER_REST: - { //Resume - if (code==3 || code==2) - { - LONG high = 0; - pData->transferdata.transferleft = pData->transferdata.transfersize - GetLength64(*m_pDataFile); - if (SetFilePointer((HANDLE)m_pDataFile->m_hFile, 0, &high, FILE_END)==0xFFFFFFFF && GetLastError()!=NO_ERROR) - { - ShowStatus(IDS_ERRORMSG_SETFILEPOINTER, FZ_LOG_ERROR); - nReplyError = FZ_REPLY_ERROR; - } - else - m_Operation.nOpState = FILETRANSFER_RETRSTOR; - } - else - { - if (code==5 && GetReply()[1]==_MPT('0')) - { - if (pData->transferdata.transfersize!=-1 && pData->transferfile.get) - { - ASSERT(m_pDataFile); - if (GetLength64(*m_pDataFile) == pData->transferdata.transfersize) - { - ShowStatus(IDS_ERRORMSG_CANTRESUME_FINISH, FZ_LOG_STATUS); - ResetOperation(FZ_REPLY_OK); - return; - } - } - - ShowStatus(IDS_ERRORMSG_CANTRESUME, FZ_LOG_ERROR); - pData->transferdata.transferleft=pData->transferdata.transfersize; - pData->transferdata.bResume=FALSE; - m_Operation.nOpState=FILETRANSFER_RETRSTOR; - } - else - nReplyError=FZ_REPLY_ERROR; - } - } - break; - case FILETRANSFER_RETRSTOR: - // A '1xy opening data connection' reply is expected if RETR/STOR/APPE - // is successful. - // On failure, it's a 4xy or 5xy reply. - // However, some servers send a 2xy transfer complete reply without opening a data - // connection if there's no data to send. - if (code==2) - { - //Transfer successful, however server did not open data connection - ResetOperation(FZ_REPLY_OK); - return; - } - else if (code!=1) - { - if (!pData->transferfile.get && pData->transferdata.bResume && pData->askOnResumeFail) - { - pData->askOnResumeFail = false; - delete m_pTransferSocket; - m_pTransferSocket = 0; - delete m_pDataFile; - m_pDataFile = 0; - pData->nGotTransferEndReply = 0; - nReplyError = CheckOverwriteFile(); - } - else - { - nReplyError = FZ_REPLY_ERROR; - if (code == 5) - nReplyError |= FZ_REPLY_CRITICALERROR; - } - } - else - { - m_Operation.nOpState=FILETRANSFER_WAITFINISH; - - //Look if we can find any information about the resume offset - if (!pData->transferfile.get && pData->transferdata.bResume) - { - _int64 nOffset = -1; - CString reply = GetReply(); - reply.MakeLower(); - int pos = reply.Find(_T("restarting at offset ")); - if (pos != -1) - pos += _tcslen(_T("restarting at offset ")); - - reply = reply.Mid(pos); - - int i; - for (i=0; i _MPT('9')) - break; - } - if (i == reply.GetLength()) - nOffset = _ttoi64(reply); - if (nOffset != -1 && m_pDataFile) - { - LONG low = 0; - LONG high = 0; - if (nOffset >= GetLength64(*m_pDataFile)) - { - if (SetFilePointer((HANDLE)m_pDataFile->m_hFile, 0, &high, FILE_END)==0xFFFFFFFF && GetLastError()!=NO_ERROR) - { - ShowStatus(IDS_ERRORMSG_SETFILEPOINTER, FZ_LOG_ERROR); - nReplyError = FZ_REPLY_ERROR; - } - } - else - { - low=static_cast(nOffset&0xFFFFFFFF); - high=static_cast(nOffset>>32); - if (SetFilePointer((HANDLE)m_pDataFile->m_hFile, low, &high, FILE_BEGIN)==0xFFFFFFFF && GetLastError()!=NO_ERROR) - { - ShowStatus(IDS_ERRORMSG_SETFILEPOINTER, FZ_LOG_ERROR); - nReplyError = FZ_REPLY_ERROR; - } - } - } - if (!nReplyError && !COptions::GetOptionVal(OPTION_MPEXT_TRANSFER_ACTIVE_IMMEDIATELY)) - { - m_pTransferSocket->SetActive(); - } - } - else if (pData->bPasv && !COptions::GetOptionVal(OPTION_MPEXT_TRANSFER_ACTIVE_IMMEDIATELY)) - { - m_pTransferSocket->SetActive(); - } - } - break; - case FILETRANSFER_WAITFINISH: - if (!bFinish) - { - if (code == 1) - { - /* Some non-rfc959 compatible servers send more than one code 1yz reply, especially if using APPE. - * Just ignore the additional ones. - */ - LogMessage(FZ_LOG_WARNING, _T("Server sent more than one code 1yz reply, ignoring additional reply")); - break; - } - else if (code!=2 && code!=3) - nReplyError = FZ_REPLY_ERROR; - else - { - pData->nGotTransferEndReply |= 1; - } - } - if (pData->nGotTransferEndReply==3) - { - // Not really sure about a reason for the m_pDataFile condition here - TransferFinished(m_pDataFile != NULL); - return; - } - break; -#ifdef MPEXT - case FILETRANSFER_MFMT: - //Transfer successful - ResetOperation(FZ_REPLY_OK); - break; -#endif - } - if (nReplyError) - { //Error transferring the file - ResetOperation(nReplyError); - return; - } - } - ///////////////// - //Send commands// - ///////////////// - BOOL bError=FALSE; - switch(m_Operation.nOpState) - { - case FILETRANSFER_PWD: - if (!Send(_MPT("PWD"))) - bError = TRUE; - break; - case FILETRANSFER_CWD: - if (!Send(_MPT("CWD ")+pData->transferfile.remotepath.GetPath())) - bError=TRUE; - break; - case FILETRANSFER_MKD: - if (pData->nMKDOpState==MKD_INIT) - { - if (!pData->transferfile.remotepath.HasParent()) - { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_WARNING, _T("Can't create root dir")); - ResetOperation(FZ_REPLY_CRITICALERROR); - return; - } - if (!Send(_MPT("CWD ")+pData->transferfile.remotepath.GetParent().GetPath())) - bError=TRUE; - pData->MKDCurrent=pData->transferfile.remotepath.GetParent(); - pData->MKDSegments.push_front(pData->transferfile.remotepath.GetLastSegment()); - pData->nMKDOpState=MKD_FINDPARENT; - } - break; - case FILETRANSFER_CWD2: - if (!Send(_MPT("CWD ")+pData->transferfile.remotepath.GetPath())) - bError=TRUE; - break; - case FILETRANSFER_PWD2: - if (!Send(_MPT("PWD"))) - bError=TRUE; - break; - case FILETRANSFER_LIST_MODE: + pData->transferdata.transfersize=-1; + CString remotefile=pData->transferfile.remotefile; + if (m_pDirectoryListing) + for (int i=0; inum; i++) + { + if (m_pDirectoryListing->direntry[i].name==remotefile) + { + pData->hasRemoteDate = true; + pData->remoteDate = m_pDirectoryListing->direntry[i].date; + pData->transferdata.transfersize=m_pDirectoryListing->direntry[i].size; + } + } + else if (pData->pFileSize) + pData->transferdata.transfersize=*pData->pFileSize; + pData->transferdata.transferleft=pData->transferdata.transfersize; + } + } + else + if (!pData->bTriedPortPasvOnce) + { + pData->bTriedPortPasvOnce = TRUE; + pData->bPasv = !pData->bPasv; + } + else + nReplyError = FZ_REPLY_ERROR; + break; + case FILETRANSFER_REST: + { //Resume + if (code==3 || code==2) + { + LONG high = 0; + if (pData->transferfile.get) + { + pData->transferdata.transferleft = pData->transferdata.transfersize - GetLength64(*m_pDataFile); + if (SetFilePointer((HANDLE)m_pDataFile->m_hFile, 0, &high, FILE_END)==0xFFFFFFFF && GetLastError()!=NO_ERROR) + { + ShowStatus(IDS_ERRORMSG_SETFILEPOINTER, FZ_LOG_ERROR); + nReplyError = FZ_REPLY_ERROR; + } + else + m_Operation.nOpState = FILETRANSFER_RETRSTOR; + } + else + { + m_Operation.nOpState = FILETRANSFER_RETRSTOR; + } + } + else + { + if (code==5 && GetReply()[1]==L'0') + { + if (pData->transferfile.get) + { + if (pData->transferdata.transfersize!=-1) + { + DebugAssert(m_pDataFile); + if (GetLength64(*m_pDataFile) == pData->transferdata.transfersize) + { + ShowStatus(IDS_ERRORMSG_CANTRESUME_FINISH, FZ_LOG_STATUS); + ResetOperation(FZ_REPLY_OK); + return; + } + } + + ShowStatus(IDS_ERRORMSG_CANTRESUME, FZ_LOG_ERROR); + pData->transferdata.transferleft=pData->transferdata.transfersize; + pData->transferdata.bResume=FALSE; + m_Operation.nOpState=FILETRANSFER_RETRSTOR; + } + else + { + ShowStatus(L"Resume command not supported by server, trying append.", FZ_LOG_PROGRESS); + pData->transferdata.bResumeAppend=TRUE; + m_Operation.nOpState=FILETRANSFER_RETRSTOR; + } + } + else + nReplyError=FZ_REPLY_ERROR; + } + } + break; + case FILETRANSFER_RETRSTOR: + // A '1xy opening data connection' reply is expected if RETR/STOR/APPE + // is successful. + // On failure, it's a 4xy or 5xy reply. + // However, some servers send a 2xy transfer complete reply without opening a data + // connection if there's no data to send. + if (code==2) + { + //Transfer successful, however server did not open data connection + ResetOperation(FZ_REPLY_OK); + return; + } + else if (code!=1) + { + if (!pData->transferfile.get && pData->transferdata.bResume && pData->askOnResumeFail) + { + pData->askOnResumeFail = false; + delete m_pTransferSocket; + m_pTransferSocket = 0; + delete m_pDataFile; + m_pDataFile = 0; + pData->nGotTransferEndReply = 0; + nReplyError = CheckOverwriteFile(); + } + else + { + nReplyError = FZ_REPLY_ERROR; + if (code == 5) + nReplyError |= FZ_REPLY_CRITICALERROR; + } + } + else + { + m_Operation.nOpState=FILETRANSFER_WAITFINISH; + + //Look if we can find any information about the resume offset + if (!pData->transferfile.get && pData->transferdata.bResumeAppend) + { + _int64 nOffset = -1; + CString reply = GetReply(); + reply.MakeLower(); + int pos = reply.Find(L"restarting at offset "); + if (pos != -1) + pos += _tcslen(L"restarting at offset "); + + reply = reply.Mid(pos); + + int i; + for (i=0; i L'9') + break; + } + if (i == reply.GetLength()) + nOffset = _ttoi64(reply); + if (nOffset != -1 && m_pDataFile) + { + LONG low = 0; + LONG high = 0; + if (nOffset >= GetLength64(*m_pDataFile)) + { + if (SetFilePointer((HANDLE)m_pDataFile->m_hFile, 0, &high, FILE_END)==0xFFFFFFFF && GetLastError()!=NO_ERROR) + { + ShowStatus(IDS_ERRORMSG_SETFILEPOINTER, FZ_LOG_ERROR); + nReplyError = FZ_REPLY_ERROR; + } + } + else + { + low=static_cast(nOffset&0xFFFFFFFF); + high=static_cast(nOffset>>32); + if (SetFilePointer((HANDLE)m_pDataFile->m_hFile, low, &high, FILE_BEGIN)==0xFFFFFFFF && GetLastError()!=NO_ERROR) + { + ShowStatus(IDS_ERRORMSG_SETFILEPOINTER, FZ_LOG_ERROR); + nReplyError = FZ_REPLY_ERROR; + } + } + } + if (!nReplyError && !GetOptionVal(OPTION_MPEXT_TRANSFER_ACTIVE_IMMEDIATELY)) + { + m_pTransferSocket->SetActive(); + } + } + else if (pData->bPasv && !GetOptionVal(OPTION_MPEXT_TRANSFER_ACTIVE_IMMEDIATELY)) + { + m_pTransferSocket->SetActive(); + } + } + break; + case FILETRANSFER_WAITFINISH: + if (!bFinish) + { + if (code == 1) + { + /* Some non-rfc959 compatible servers send more than one code 1yz reply, especially if using APPE. + * Just ignore the additional ones. + */ + LogMessage(FZ_LOG_WARNING, L"Server sent more than one code 1yz reply, ignoring additional reply"); + break; + } + else if (code!=2 && code!=3) + nReplyError = FZ_REPLY_ERROR; + else + { + pData->nGotTransferEndReply |= 1; + } + } + if (pData->nGotTransferEndReply==3) + { + // Not really sure about a reason for the m_pDataFile condition here + TransferFinished(m_pDataFile != NULL); + return; + } + break; + case FILETRANSFER_MFMT: + //Transfer successful + ResetOperation(FZ_REPLY_OK); + break; + } + if (nReplyError) + { //Error transferring the file + ResetOperation(nReplyError); + return; + } + } + ///////////////// + //Send commands// + ///////////////// + BOOL bError=FALSE; + switch(m_Operation.nOpState) + { + case FILETRANSFER_PWD: + if (!Send(L"PWD")) + bError = TRUE; + break; + case FILETRANSFER_CWD: + if (!Send(L"CWD "+pData->transferfile.remotepath.GetPath())) + bError=TRUE; + break; + case FILETRANSFER_MKD: + if (pData->nMKDOpState==MKD_INIT) + { + if (!pData->transferfile.remotepath.HasParent()) + { + LogMessage(FZ_LOG_WARNING, L"Can't create root dir"); + ResetOperation(FZ_REPLY_CRITICALERROR); + return; + } + if (!Send(L"CWD "+pData->transferfile.remotepath.GetParent().GetPath())) + bError=TRUE; + pData->MKDCurrent=pData->transferfile.remotepath.GetParent(); + pData->MKDSegments.push_front(pData->transferfile.remotepath.GetLastSegment()); + pData->nMKDOpState=MKD_FINDPARENT; + } + break; + case FILETRANSFER_CWD2: + if (!Send(L"CWD "+pData->transferfile.remotepath.GetPath())) + bError=TRUE; + break; + case FILETRANSFER_PWD2: + if (!Send(L"PWD")) + bError=TRUE; + break; + case FILETRANSFER_LIST_MODE: #ifdef MPEXT_NO_ZLIB - ASSERT(false); + DebugFail(); #else - if (m_useZlib) - { - if (!Send(_MPT("MODE S"))) - bError = TRUE; - } - else - if (!Send(_MPT("MODE Z"))) - bError = TRUE; + if (m_useZlib) + { + if (!Send(L"MODE S")) + bError = TRUE; + } + else + if (!Send(L"MODE Z")) + bError = TRUE; #endif - break; - case FILETRANSFER_LIST_OPTS: + break; + case FILETRANSFER_LIST_OPTS: #ifdef MPEXT_NO_ZLIB - ASSERT(false); + DebugFail(); #else - { - pData->newZlibLevel = COptions::GetOptionVal(OPTION_MODEZ_LEVEL); - CString str; - str.Format(_T("OPTS MODE Z LEVEL %d"), pData->newZlibLevel); - if (!Send(str)) - bError = TRUE; - } + { + pData->newZlibLevel = GetOptionVal(OPTION_MODEZ_LEVEL); + CString str; + str.Format(L"OPTS MODE Z LEVEL %d", pData->newZlibLevel); + if (!Send(str)) + bError = TRUE; + } #endif - break; - case FILETRANSFER_LIST_PORTPASV: - delete m_pDirectoryListing; - m_pDirectoryListing=0; - if (pData->bPasv) - { - if (!Send((GetFamily() == AF_INET) ? _MPT("PASV") : _MPT("EPSV"))) - bError=TRUE; - } - else - { - if (m_pTransferSocket) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("m_pTransferSocket != 0")); - delete m_pTransferSocket; - } - m_pTransferSocket = new CTransferSocket(this, CSMODE_LIST); + break; + case FILETRANSFER_LIST_PORTPASV: + delete m_pDirectoryListing; + m_pDirectoryListing=0; + if (pData->bPasv) + { + if (!Send((GetFamily() == AF_INET) ? L"PASV" : L"EPSV")) + bError=TRUE; + } + else + { + if (m_pTransferSocket) + { + delete m_pTransferSocket; + } + m_pTransferSocket = new CTransferSocket(this, CSMODE_LIST); #ifndef MPEXT_NO_ZLIB - if (m_useZlib) - { - if (!m_pTransferSocket->InitZlib(m_zlibLevel)) - { - ShowStatus(_MPT("Failed to initialize zlib"), FZ_LOG_ERROR); - ResetOperation(FZ_REPLY_ERROR); - return; - } - } + if (m_useZlib) + { + if (!m_pTransferSocket->InitZlib(m_zlibLevel)) + { + ShowStatus(L"Failed to initialize zlib", FZ_LOG_ERROR); + ResetOperation(FZ_REPLY_ERROR); + return; + } + } #endif #ifndef MPEXT_NO_GSS - if (m_pGssLayer && m_pGssLayer->AuthSuccessful()) - m_pTransferSocket->UseGSS(m_pGssLayer); -#endif - m_pTransferSocket->m_nInternalMessageID = m_pOwner->m_nInternalMessageID; - m_pTransferSocket->m_bListening = TRUE; - m_pTransferSocket->SetFamily(GetFamily()); - if(!m_pTransferSocket->Create( -#ifndef MPEXT_NO_SSL - m_pSslLayer && m_bProtP + if (m_pGssLayer && m_pGssLayer->AuthSuccessful()) + m_pTransferSocket->UseGSS(m_pGssLayer); #endif - ) || !m_pTransferSocket->AsyncSelect()) - bError=TRUE; - else if (m_pProxyLayer) - { - SOCKADDR_IN addr; - int len=sizeof(addr); - if (!m_pProxyLayer->GetPeerName((SOCKADDR *)&addr,&len)) - { - ShowStatus(IDS_ERRORMSG_CANTGETLIST,FZ_LOG_ERROR); - bError=TRUE; - } - else if (!m_pTransferSocket->Listen(addr.sin_addr.S_un.S_addr)) - { - ShowStatus(IDS_ERRORMSG_CANTGETLIST,FZ_LOG_ERROR); - bError=TRUE; - } - //Don't send PORT command yet, params are unknown. - //will be sent in TransfersocketListenFinished - } - else - { - //Set up an active file transfer - CString temp; - UINT nPort; - - if (//create listen socket (let Windows choose the port) & start listening - !m_pTransferSocket->Listen() || - !m_pTransferSocket->GetSockName(temp, nPort)) - { - bError = TRUE; - break; - } - - CString host; - if (GetFamily() == AF_INET) - { - host = COptions::GetOption(OPTION_TRANSFERIP); - if (host != _MPT("")) - { - DWORD ip = inet_addr(T2CA(host)); - if (ip != INADDR_NONE) - host.Format(_T("%d,%d,%d,%d"), ip%256, (ip>>8)%256, (ip>>16)%256, ip>>24); - else - { - hostent *fullname = gethostbyname(T2CA(host)); - if (!fullname) - host = _MPT(""); - else - { - DWORD ip = ((LPIN_ADDR)fullname->h_addr)->s_addr; - if (ip != INADDR_NONE) - host.Format(_T("%d,%d,%d,%d"), ip%256, (ip>>8)%256, (ip>>16)%256, ip>>24); - else - host = _MPT(""); - } - } - } - if (host == _MPT("")) - { - UINT temp; - - if (!GetSockName(host, temp)) - { - bError = true; - break; - } - - host.Replace(_MPT('.'), _MPT(',')); - } - - if (!bError) - { - host.Format(host+_MPT(",%d,%d"), nPort/256, nPort%256); - if (!Send(_T("PORT ") + host)) // send PORT cmd to server - bError = TRUE; - } - } - else if (GetFamily() == AF_INET6) - { - host = COptions::GetOption(OPTION_TRANSFERIP6); - if (host != _MPT("")) - { - USES_CONVERSION; - addrinfo hints, *res; - memset(&hints, 0, sizeof(addrinfo)); - hints.ai_family = AF_INET6; - hints.ai_socktype = SOCK_STREAM; - if (!getaddrinfo(T2CA(host), "1024", &hints, &res)) - { - host = Inet6AddrToString(((SOCKADDR_IN6 *)res->ai_addr)->sin6_addr); - freeaddrinfo(res); - } - else - host = _T(""); - } - if (host == _MPT("")) - { - UINT temp; - - if(!GetSockName(host, temp)) - bError = true; - } - - if (!bError) - { - // assamble EPRT command - CString cmd; - cmd.Format(_T("EPRT |2|") + host + _MPT("|%d|"), nPort); - if (!Send(cmd)) - bError = TRUE; - } - } - else - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Protocol %d not supported"), GetFamily()); - bError = true; - } - } - } - break; - case FILETRANSFER_LIST_TYPE: - if (!Send(_MPT("TYPE A"))) - bError=TRUE; - break; - case FILETRANSFER_LIST_LIST: - { - if (!m_pTransferSocket) - { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_APIERROR, _T("Error: m_pTransferSocket==NULL") ); - ResetOperation(FZ_REPLY_ERROR); - return; - } - - m_pTransferSocket->SetActive(); - pData->ListStartTime=CTime::GetCurrentTime(); - CString cmd = GetListingCmd(); - if(!Send(cmd)) - bError=TRUE; - else if(pData->bPasv) - { - // if PASV create the socket & initiate outbound data channel connection - if (!m_pTransferSocket->Connect(pData->host,pData->port)) - { - if (GetLastError()!=WSAEWOULDBLOCK) - { - bError=TRUE; - ShowStatus(IDS_ERRORMSG_CANTGETLIST,FZ_LOG_ERROR); - } - } - } - } - break; - case FILETRANSFER_NOLIST_SIZE: - { - CString command = _T("SIZE "); - command += pData->transferfile.remotepath.FormatFilename(pData->transferfile.remotefile, !pData->bUseAbsolutePaths); - - if (!Send(command)) - bError=TRUE; - } - break; - case FILETRANSFER_NOLIST_MDTM: - { - CString command = _T("MDTM "); - command += pData->transferfile.remotepath.FormatFilename(pData->transferfile.remotefile, !pData->bUseAbsolutePaths); - - if (!Send(command)) - bError=TRUE; - } - break; - case FILETRANSFER_TYPE: - if (pData->transferfile.nType==1) - { - if (!Send(_MPT("TYPE A"))) - bError=TRUE; - } - else - if (!Send(_MPT("TYPE I"))) - bError=TRUE; - break; - case FILETRANSFER_MODE: + m_pTransferSocket->m_nInternalMessageID = m_pOwner->m_nInternalMessageID; + m_pTransferSocket->m_bListening = TRUE; + m_pTransferSocket->SetFamily(GetFamily()); + if(!m_pTransferSocket->Create(m_pSslLayer && m_bProtP) || !m_pTransferSocket->AsyncSelect()) + bError=TRUE; + else if (m_pProxyLayer) + { + SOCKADDR_IN addr; + int len=sizeof(addr); + if (!m_pProxyLayer->GetPeerName((SOCKADDR *)&addr,&len)) + { + ShowStatus(IDS_ERRORMSG_CANTGETLIST,FZ_LOG_ERROR); + bError=TRUE; + } + else if (!m_pTransferSocket->Listen(addr.sin_addr.S_un.S_addr)) + { + ShowStatus(IDS_ERRORMSG_CANTGETLIST,FZ_LOG_ERROR); + bError=TRUE; + } + //Don't send PORT command yet, params are unknown. + //will be sent in TransfersocketListenFinished + } + else + { + //Set up an active file transfer + CString temp; + UINT nPort; + + if (//create listen socket (let Windows choose the port) & start listening + !m_pTransferSocket->Listen() || + !m_pTransferSocket->GetSockName(temp, nPort)) + { + bError = TRUE; + break; + } + + CString host; + if (GetFamily() == AF_INET) + { + host = GetOption(OPTION_TRANSFERIP); + if (host != L"") + { + DWORD ip = inet_addr(T2CA(host)); + if (ip != INADDR_NONE) + host.Format(L"%d,%d,%d,%d", ip%256, (ip>>8)%256, (ip>>16)%256, ip>>24); + else + { + hostent *fullname = gethostbyname(T2CA(host)); + if (!fullname) + host = L""; + else + { + DWORD ip = ((LPIN_ADDR)fullname->h_addr)->s_addr; + if (ip != INADDR_NONE) + host.Format(L"%d,%d,%d,%d", ip%256, (ip>>8)%256, (ip>>16)%256, ip>>24); + else + host = L""; + } + } + } + if (host == L"") + { + UINT temp; + + if (!GetSockName(host, temp)) + { + bError = true; + break; + } + + host.Replace(L'.', L','); + } + + if (!bError) + { + host.Format(host+L",%d,%d", nPort/256, nPort%256); + if (!Send(L"PORT " + host)) // send PORT cmd to server + bError = TRUE; + } + } + else if (GetFamily() == AF_INET6) + { + host = GetOption(OPTION_TRANSFERIP6); + if (host != L"") + { + USES_CONVERSION; + addrinfo hints, *res; + memset(&hints, 0, sizeof(addrinfo)); + hints.ai_family = AF_INET6; + hints.ai_socktype = SOCK_STREAM; + if (!getaddrinfo(T2CA(host), "1024", &hints, &res)) + { + host = Inet6AddrToString(((SOCKADDR_IN6 *)res->ai_addr)->sin6_addr); + freeaddrinfo(res); + } + else + host = L""; + } + if (host == L"") + { + UINT temp; + + if(!GetSockName(host, temp)) + bError = true; + } + + if (!bError) + { + // assamble EPRT command + CString cmd; + cmd.Format(L"EPRT |2|" + host + L"|%d|", nPort); + if (!Send(cmd)) + bError = TRUE; + } + } + else + { + LogMessage(FZ_LOG_WARNING, L"Protocol %d not supported", GetFamily()); + bError = true; + } + } + } + break; + case FILETRANSFER_LIST_TYPE: + if (!Send(L"TYPE A")) + bError=TRUE; + break; + case FILETRANSFER_LIST_LIST: + { + if (!m_pTransferSocket) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + + m_pTransferSocket->SetActive(); + CString cmd = GetListingCmd(); + if(!Send(cmd)) + bError=TRUE; + else if(pData->bPasv) + { + // if PASV create the socket & initiate outbound data channel connection + if (!m_pTransferSocket->Connect(pData->host,pData->port)) + { + if (GetLastError()!=WSAEWOULDBLOCK) + { + bError=TRUE; + ShowStatus(IDS_ERRORMSG_CANTGETLIST,FZ_LOG_ERROR); + } + } + } + } + break; + case FILETRANSFER_NOLIST_SIZE: + { + CString command = L"SIZE "; + command += pData->transferfile.remotepath.FormatFilename(pData->transferfile.remotefile, !pData->bUseAbsolutePaths); + + if (!Send(command)) + bError=TRUE; + } + break; + case FILETRANSFER_NOLIST_MDTM: + { + CString command = L"MDTM "; + command += pData->transferfile.remotepath.FormatFilename(pData->transferfile.remotefile, !pData->bUseAbsolutePaths); + + if (!Send(command)) + bError=TRUE; + } + break; + case FILETRANSFER_TYPE: + if (pData->transferfile.nType==1) + { + if (!Send(L"TYPE A")) + bError=TRUE; + } + else + if (!Send(L"TYPE I")) + bError=TRUE; + break; + case FILETRANSFER_MODE: #ifdef MPEXT_NO_ZLIB - ASSERT(false); + DebugFail(); #else - if (m_useZlib) - { - if (!Send(_MPT("MODE S"))) - bError = TRUE; - } - else - if (!Send(_MPT("MODE Z"))) - bError = TRUE; + if (m_useZlib) + { + if (!Send(L"MODE S")) + bError = TRUE; + } + else + if (!Send(L"MODE Z")) + bError = TRUE; #endif - break; - case FILETRANSFER_OPTS: + break; + case FILETRANSFER_OPTS: #ifdef MPEXT_NO_ZLIB - ASSERT(false); + DebugFail(); #else - { - pData->newZlibLevel = COptions::GetOptionVal(OPTION_MODEZ_LEVEL); - CString str; - str.Format(_T("OPTS MODE Z LEVEL %d"), pData->newZlibLevel); - if (!Send(str)) - bError = TRUE; - } + { + pData->newZlibLevel = GetOptionVal(OPTION_MODEZ_LEVEL); + CString str; + str.Format(L"OPTS MODE Z LEVEL %d", pData->newZlibLevel); + if (!Send(str)) + bError = TRUE; + } #endif - break; - case FILETRANSFER_PORTPASV: - if (pData->bPasv) - { - if (!Send((GetFamily() == AF_INET) ? _MPT("PASV") : _MPT("EPSV"))) - bError=TRUE; - } - else - { - if (m_pTransferSocket) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("m_pTransferSocket != 0")); - delete m_pTransferSocket; - } - m_pTransferSocket=new CTransferSocket(this, m_Operation.nOpMode); + break; + case FILETRANSFER_PORTPASV: + if (pData->bPasv) + { + if (!Send((GetFamily() == AF_INET) ? L"PASV" : L"EPSV")) + bError=TRUE; + } + else + { + if (m_pTransferSocket) + { + delete m_pTransferSocket; + } + m_pTransferSocket=new CTransferSocket(this, m_Operation.nOpMode); #ifndef MPEXT_NO_ZLIB - if (m_useZlib) - { - if (!m_pTransferSocket->InitZlib(m_zlibLevel)) - { - ShowStatus(_MPT("Failed to initialize zlib"), FZ_LOG_ERROR); - ResetOperation(FZ_REPLY_ERROR); - return; - } - } + if (m_useZlib) + { + if (!m_pTransferSocket->InitZlib(m_zlibLevel)) + { + ShowStatus(L"Failed to initialize zlib", FZ_LOG_ERROR); + ResetOperation(FZ_REPLY_ERROR); + return; + } + } #endif #ifndef MPEXT_NO_GSS - if (m_pGssLayer && m_pGssLayer->AuthSuccessful()) - m_pTransferSocket->UseGSS(m_pGssLayer); -#endif - m_pTransferSocket->m_nInternalMessageID=m_pOwner->m_nInternalMessageID; - m_pTransferSocket->m_bListening = TRUE; - m_pTransferSocket->SetFamily(GetFamily()); - if(!m_pTransferSocket->Create( -#ifndef MPEXT_NO_SSL - m_pSslLayer && m_bProtP + if (m_pGssLayer && m_pGssLayer->AuthSuccessful()) + m_pTransferSocket->UseGSS(m_pGssLayer); #endif - ) || !m_pTransferSocket->AsyncSelect()) - bError = TRUE; - else if (m_pProxyLayer) - { - SOCKADDR_IN addr; - int len=sizeof(addr); - if (!m_pProxyLayer->GetPeerName((SOCKADDR *)&addr,&len)) - { - ShowStatus(IDS_ERRORMSG_CANTGETLIST,FZ_LOG_ERROR); - bError=TRUE; - } - else if (!m_pTransferSocket->Listen(addr.sin_addr.S_un.S_addr)) - { - ShowStatus(IDS_ERRORMSG_CANTGETLIST,FZ_LOG_ERROR); - bError=TRUE; - } - //Don't send PORT command yet, params are unknown. - //will be sent in TransfersocketListenFinished - } - else - { - //Set up an active file transfer - - CString temp; - UINT nPort; - if (//create listen socket (let Windows choose the port) & start listening - !m_pTransferSocket->Listen() || - !m_pTransferSocket->GetSockName(temp, nPort)) - { - bError = TRUE; - break; - } - - CString host; - if (GetFamily() == AF_INET) - { - host = COptions::GetOption(OPTION_TRANSFERIP); - if (host != _MPT("")) - { - DWORD ip = inet_addr(T2CA(host)); - if (ip != INADDR_NONE) - host.Format(_T("%d,%d,%d,%d"), ip%256, (ip>>8)%256, (ip>>16)%256, ip>>24); - else - { - hostent *fullname = gethostbyname(T2CA(host)); - if (!fullname) - host = _MPT(""); - else - { - DWORD ip = ((LPIN_ADDR)fullname->h_addr)->s_addr; - if (ip != INADDR_NONE) - host.Format(_T("%d,%d,%d,%d"), ip%256, (ip>>8)%256, (ip>>16)%256, ip>>24); - else - host = _MPT(""); - } - } - } - if (host == _MPT("")) - { - UINT temp; - - if (!GetSockName(host, temp)) - bError = true; - - host.Replace(_MPT('.'), _MPT(',')); - } - - if (!bError) - { - host.Format(host+_MPT(",%d,%d"), nPort/256, nPort%256); - if (!Send(_T("PORT ") + host)) // send PORT cmd to server - bError = TRUE; - } - } - else if (GetFamily() == AF_INET6) - { - host = COptions::GetOption(OPTION_TRANSFERIP6); - if (host != _MPT("")) - { - USES_CONVERSION; - addrinfo hints, *res; - memset(&hints, 0, sizeof(addrinfo)); - hints.ai_family = AF_INET6; - hints.ai_socktype = SOCK_STREAM; - if (!getaddrinfo(T2CA(host), "1024", &hints, &res)) - { - host = Inet6AddrToString(((SOCKADDR_IN6 *)res->ai_addr)->sin6_addr); - freeaddrinfo(res); - } - else - host = _T(""); - } - if (host == _MPT("")) - { - UINT temp; - - if(!GetSockName(host, temp)) - bError = true; - } - - if (!bError) - { - // assamble EPRT command - CString cmd; - cmd.Format(_T("EPRT |2|") + host + _MPT("|%d|"), nPort); - if (!Send(cmd)) - bError = TRUE; - } - } - else - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Protocol %d not supported"), GetFamily()); - bError = true; - } - - if (bError) - { - ResetOperation(FZ_REPLY_ERROR); - return; - } - } - } - break; - case FILETRANSFER_REST: - ASSERT(m_pDataFile); - { - CString command; - command.Format(_T("REST %I64d"), GetLength64(*m_pDataFile)); - if (!Send(command)) - bError=TRUE; - } - break; - case FILETRANSFER_RETRSTOR: - pData->transferdata.nTransferStart=pData->transferdata.transfersize-pData->transferdata.transferleft; - // send RETR/STOR command to server - if (!m_pTransferSocket) - { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_APIERROR, _T("Error: m_pTransferSocket==NULL") ); - ResetOperation(FZ_REPLY_ERROR); - return; - } - m_pTransferSocket->m_transferdata=pData->transferdata; - // not sure what happens when we active transfer socket immediately while resuming - // it can possibly make transfer socket start reading from a file before a file pointer is advanced - if (COptions::GetOptionVal(OPTION_MPEXT_TRANSFER_ACTIVE_IMMEDIATELY) || - ((pData->transferfile.get || !pData->transferdata.bResume) && !pData->bPasv)) - { - m_pTransferSocket->SetActive(); - } - CString filename; - - filename = pData->transferfile.remotepath.FormatFilename(pData->transferfile.remotefile, !pData->bUseAbsolutePaths); - if(!Send((pData->transferfile.get?_MPT("RETR "):(pData->transferdata.bResume)?_MPT("APPE "):_MPT("STOR "))+ filename)) - bError = TRUE; - else - { - if (pData->bPasv) - {// if PASV create the socket & initiate outbound data channel connection - if (!m_pTransferSocket->Connect(pData->host,pData->port)) - { - if (GetLastError()!=WSAEWOULDBLOCK) - bError=TRUE; - } - } - } - break; - } - if (bError) - { //Error transferring the file - ResetOperation(FZ_REPLY_ERROR); - return; - } + m_pTransferSocket->m_nInternalMessageID=m_pOwner->m_nInternalMessageID; + m_pTransferSocket->m_bListening = TRUE; + m_pTransferSocket->SetFamily(GetFamily()); + if(!m_pTransferSocket->Create(m_pSslLayer && m_bProtP) || !m_pTransferSocket->AsyncSelect()) + bError = TRUE; + else if (m_pProxyLayer) + { + SOCKADDR_IN addr; + int len=sizeof(addr); + if (!m_pProxyLayer->GetPeerName((SOCKADDR *)&addr,&len)) + { + ShowStatus(IDS_ERRORMSG_CANTGETLIST,FZ_LOG_ERROR); + bError=TRUE; + } + else if (!m_pTransferSocket->Listen(addr.sin_addr.S_un.S_addr)) + { + ShowStatus(IDS_ERRORMSG_CANTGETLIST,FZ_LOG_ERROR); + bError=TRUE; + } + //Don't send PORT command yet, params are unknown. + //will be sent in TransfersocketListenFinished + } + else + { + //Set up an active file transfer + + CString temp; + UINT nPort; + if (//create listen socket (let Windows choose the port) & start listening + !m_pTransferSocket->Listen() || + !m_pTransferSocket->GetSockName(temp, nPort)) + { + bError = TRUE; + break; + } + + CString host; + if (GetFamily() == AF_INET) + { + host = GetOption(OPTION_TRANSFERIP); + if (host != L"") + { + DWORD ip = inet_addr(T2CA(host)); + if (ip != INADDR_NONE) + host.Format(L"%d,%d,%d,%d", ip%256, (ip>>8)%256, (ip>>16)%256, ip>>24); + else + { + hostent *fullname = gethostbyname(T2CA(host)); + if (!fullname) + host = L""; + else + { + DWORD ip = ((LPIN_ADDR)fullname->h_addr)->s_addr; + if (ip != INADDR_NONE) + host.Format(L"%d,%d,%d,%d", ip%256, (ip>>8)%256, (ip>>16)%256, ip>>24); + else + host = L""; + } + } + } + if (host == L"") + { + UINT temp; + + if (!GetSockName(host, temp)) + bError = true; + + host.Replace(L'.', L','); + } + + if (!bError) + { + host.Format(host+L",%d,%d", nPort/256, nPort%256); + if (!Send(L"PORT " + host)) // send PORT cmd to server + bError = TRUE; + } + } + else if (GetFamily() == AF_INET6) + { + host = GetOption(OPTION_TRANSFERIP6); + if (host != L"") + { + USES_CONVERSION; + addrinfo hints, *res; + memset(&hints, 0, sizeof(addrinfo)); + hints.ai_family = AF_INET6; + hints.ai_socktype = SOCK_STREAM; + if (!getaddrinfo(T2CA(host), "1024", &hints, &res)) + { + host = Inet6AddrToString(((SOCKADDR_IN6 *)res->ai_addr)->sin6_addr); + freeaddrinfo(res); + } + else + host = L""; + } + if (host == L"") + { + UINT temp; + + if(!GetSockName(host, temp)) + bError = true; + } + + if (!bError) + { + // assamble EPRT command + CString cmd; + cmd.Format(L"EPRT |2|" + host + L"|%d|", nPort); + if (!Send(cmd)) + bError = TRUE; + } + } + else + { + LogMessage(FZ_LOG_WARNING, L"Protocol %d not supported", GetFamily()); + bError = true; + } + + if (bError) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + } + } + break; + case FILETRANSFER_REST: + DebugAssert(m_pDataFile); + { + CString command; + __int64 transferoffset = + pData->transferfile.get ? + GetLength64(*m_pDataFile) : + pData->transferdata.transfersize-pData->transferdata.transferleft; + command.Format(L"REST %I64d", transferoffset); + if (!Send(command)) + bError=TRUE; + } + break; + case FILETRANSFER_RETRSTOR: + // send RETR/STOR command to server + if (!m_pTransferSocket) + { + ResetOperation(FZ_REPLY_ERROR); + return; + } + m_pTransferSocket->m_transferdata=pData->transferdata; + // not sure what happens when we active transfer socket immediately while resuming + // it can possibly make transfer socket start reading from a file before a file pointer is advanced + if (GetOptionVal(OPTION_MPEXT_TRANSFER_ACTIVE_IMMEDIATELY) || + ((pData->transferfile.get || !pData->transferdata.bResume) && !pData->bPasv)) + { + m_pTransferSocket->SetActive(); + } + CString filename; + + filename = pData->transferfile.remotepath.FormatFilename(pData->transferfile.remotefile, !pData->bUseAbsolutePaths); + if(!Send((pData->transferfile.get?L"RETR ":(pData->transferdata.bResumeAppend)?L"APPE ":L"STOR ")+ filename)) + bError = TRUE; + else + { + if (pData->bPasv) + {// if PASV create the socket & initiate outbound data channel connection + if (!m_pTransferSocket->Connect(pData->host,pData->port)) + { + if (GetLastError()!=WSAEWOULDBLOCK) + bError=TRUE; + } + } + } + break; + } + if (bError) + { //Error transferring the file + ResetOperation(FZ_REPLY_ERROR); + return; + } } void CFtpControlSocket::TransferHandleListError() { - if (m_pTransferSocket) - delete m_pTransferSocket; - m_pTransferSocket=0; - m_Operation.nOpState = FILETRANSFER_NOLIST_SIZE; + if (m_pTransferSocket) + delete m_pTransferSocket; + m_pTransferSocket=0; + m_Operation.nOpState = FILETRANSFER_NOLIST_SIZE; } bool CFtpControlSocket::HandleMdtm(int code, t_directory::t_direntry::t_date & date) { - bool result = false; - if (code==2) - { - CString line = GetReply(); - if ( line.GetLength()>4 && line.Left(4) == _T("213 ") ) - { - int y=0, M=0, d=0, h=0, m=0; - line=line.Mid(4); - y=_ttoi(line.Left(4)); - if (y && line.GetLength()>4) - { - line=line.Mid(4); - M=_ttoi(line.Left(2)); - if (M && line.GetLength()>2) - { - line=line.Mid(2); - d=_ttoi(line.Left(2)); - if (d && line.GetLength()>2) - { - line=line.Mid(2); - h=_ttoi(line.Left(2)); - if (h && line.GetLength()>2) - { - line=line.Mid(2); - m=_ttoi(line.Left(2)); - if (m && line.GetLength()>2) - { - line=line.Mid(2); - } - } - } - if (M>0 && M<=12 && d>0 && d<=31 && h>=0 && h<24 && m>=0 && m<60) - { - result = true; - date.year = y; - date.month = M; - date.day = d; - date.hour = h; - date.minute = m; - date.second = 0; - date.hastime = true; - date.hasseconds = false; - date.hasdate = true; - date.utc = true; - } - } - } - } - } - return result; + bool result = false; + if (code==2) + { + CString line = GetReply(); + if ( line.GetLength()>4 && line.Left(4) == L"213 " ) + { + int y=0, M=0, d=0, h=0, m=0; + line=line.Mid(4); + y=_ttoi(line.Left(4)); + if (y && line.GetLength()>4) + { + line=line.Mid(4); + M=_ttoi(line.Left(2)); + if (M && line.GetLength()>2) + { + line=line.Mid(2); + d=_ttoi(line.Left(2)); + if (d && line.GetLength()>2) + { + line=line.Mid(2); + h=_ttoi(line.Left(2)); + if (h && line.GetLength()>2) + { + line=line.Mid(2); + m=_ttoi(line.Left(2)); + if (m && line.GetLength()>2) + { + line=line.Mid(2); + } + } + } + if (M>0 && M<=12 && d>0 && d<=31 && h>=0 && h<24 && m>=0 && m<60) + { + result = true; + date.year = y; + date.month = M; + date.day = d; + date.hour = h; + date.minute = m; + date.second = 0; + date.hastime = true; + date.hasseconds = false; + date.hasdate = true; + date.utc = true; + } + } + } + } + } + return result; } bool CFtpControlSocket::HandleSize(int code, __int64 & size) { - bool result = false; - if (code == 2) - { - CString line = GetReply(); - if ((line.GetLength() > 4) && (line.Left(4) == _T("213 "))) - { - size = _ttoi64(line.Mid(4)); - result = true; - } - } - return result; + bool result = false; + if (code == 2) + { + CString line = GetReply(); + if ((line.GetLength() > 4) && (line.Left(4) == L"213 ")) + { + size = _ttoi64(line.Mid(4)); + result = true; + } + } + return result; } void CFtpControlSocket::TransferFinished(bool preserveFileTimeForUploads) { - CFileTransferData *pData=static_cast(m_Operation.pData); - - if (COptions::GetOptionVal(OPTION_PRESERVEDOWNLOADFILETIME) && m_pDataFile && - pData->transferfile.get) - { - #ifdef MPEXT - m_pTools->PreserveDownloadFileTime( - (HANDLE)m_pDataFile->m_hFile, reinterpret_cast(pData->transferfile.nUserData)); - #else - if (pData->pFileTime) - { - SYSTEMTIME stime; - FILETIME ftime; - if (pData->pFileTime->GetAsSystemTime(stime)) - if (SystemTimeToFileTime(&stime, &ftime)) - SetFileTime((HANDLE)m_pDataFile->m_hFile, &ftime, &ftime, &ftime); - } - #endif - } -#ifdef MPEXT - if (!pData->transferfile.get && - COptions::GetOptionVal(OPTION_MPEXT_PRESERVEUPLOADFILETIME) && preserveFileTimeForUploads && - ((m_serverCapabilities.GetCapability(mfmt_command) == yes) || - (m_serverCapabilities.GetCapability(mdtm_command) == yes))) - { - CString filename = - pData->transferfile.remotepath.FormatFilename(pData->transferfile.remotefile, !pData->bUseAbsolutePaths); - struct tm tm; - if (m_pTools->GetFileModificationTimeInUtc((LPCTSTR)pData->transferfile.localfile, tm)) - { - CString timestr; - timestr.Format(L"%02d%02d%02d%02d%02d%02d", - 1900 + tm.tm_year, 1 + tm.tm_mon, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); - CString command; - if (m_serverCapabilities.GetCapability(mfmt_command) == yes) - { - command = _T("MFMT"); - } - else - { - // Support for MDTM does not necessarily mean - // that the server supportsnon-standard hack - // of setting timestamp using - // MFMT-like (two argument) call to MDTM. - // IIS definitelly does. - command = _T("MDTM"); - } - if (Send( command + _T(" ") + timestr + _T(" ") + filename)) - { - m_Operation.nOpState = FILETRANSFER_MFMT; - return; - } - } - } -#endif - //Transfer successful - ResetOperation(FZ_REPLY_OK); + CFileTransferData *pData=static_cast(m_Operation.pData); + + if (GetOptionVal(OPTION_PRESERVEDOWNLOADFILETIME) && m_pDataFile && + pData->transferfile.get) + { + m_pTools->PreserveDownloadFileTime( + (HANDLE)m_pDataFile->m_hFile, reinterpret_cast(pData->transferfile.nUserData)); + } + if (!pData->transferfile.get && + GetOptionVal(OPTION_MPEXT_PRESERVEUPLOADFILETIME) && preserveFileTimeForUploads && + ((m_serverCapabilities.GetCapability(mfmt_command) == yes) || + (m_serverCapabilities.GetCapability(mdtm_command) == yes))) + { + CString filename = + pData->transferfile.remotepath.FormatFilename(pData->transferfile.remotefile, !pData->bUseAbsolutePaths); + struct tm tm; + if (m_pTools->GetFileModificationTimeInUtc((LPCTSTR)pData->transferfile.localfile, tm)) + { + CString timestr; + timestr.Format(L"%02d%02d%02d%02d%02d%02d", + 1900 + tm.tm_year, 1 + tm.tm_mon, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); + CString command; + if (m_serverCapabilities.GetCapability(mfmt_command) == yes) + { + command = L"MFMT"; + } + else + { + // Support for MDTM does not necessarily mean + // that the server supportsnon-standard hack + // of setting timestamp using + // MFMT-like (two argument) call to MDTM. + // IIS definitelly does. + command = L"MDTM"; + } + if (Send( command + L" " + timestr + L" " + filename)) + { + m_Operation.nOpState = FILETRANSFER_MFMT; + return; + } + } + } + //Transfer successful + ResetOperation(FZ_REPLY_OK); } void CFtpControlSocket::Cancel(BOOL bQuit/*=FALSE*/) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("Cancel(%s) OpMode=%d OpState=%d"), bQuit?_T("TRUE"):_T("FALSE"), m_Operation.nOpMode, m_Operation.nOpState); - - const int nOpMode = m_Operation.nOpMode; - if (nOpMode==CSMODE_CONNECT) - DoClose(FZ_REPLY_CANCEL); - else if (nOpMode & CSMODE_LIST) - { - if (m_Operation.nOpState == LIST_WAITFINISH) - m_skipReply = true; - ResetOperation(FZ_REPLY_ERROR | FZ_REPLY_CANCEL); - } - else if (nOpMode & CSMODE_TRANSFER) - { - if (m_Operation.nOpState == FILETRANSFER_WAITFINISH || m_Operation.nOpState == FILETRANSFER_LIST_WAITFINISH) - m_skipReply = true; - ResetOperation(FZ_REPLY_ERROR | FZ_REPLY_CANCEL | FZ_REPLY_ABORTED); - } - else if (nOpMode != CSMODE_NONE) - ResetOperation(FZ_REPLY_ERROR | FZ_REPLY_CANCEL); - - if (nOpMode != CSMODE_NONE && !bQuit) - ShowStatus(IDS_ERRORMSG_INTERRUPTED, FZ_LOG_ERROR); - - if (m_awaitsReply) - m_skipReply = true; + const int nOpMode = m_Operation.nOpMode; + if (nOpMode==CSMODE_CONNECT) + DoClose(FZ_REPLY_CANCEL); + else if (nOpMode & CSMODE_LIST) + { + if (m_Operation.nOpState == LIST_WAITFINISH) + m_skipReply = true; + ResetOperation(FZ_REPLY_ERROR | FZ_REPLY_CANCEL); + } + else if (nOpMode & CSMODE_TRANSFER) + { + if (m_Operation.nOpState == FILETRANSFER_WAITFINISH || m_Operation.nOpState == FILETRANSFER_LIST_WAITFINISH) + m_skipReply = true; + ResetOperation(FZ_REPLY_ERROR | FZ_REPLY_CANCEL | FZ_REPLY_ABORTED); + } + else if (nOpMode != CSMODE_NONE) + ResetOperation(FZ_REPLY_ERROR | FZ_REPLY_CANCEL); + + if (nOpMode != CSMODE_NONE && !bQuit) + ShowStatus(IDS_ERRORMSG_INTERRUPTED, FZ_LOG_ERROR); + + if (m_awaitsReply) + m_skipReply = true; } void CFtpControlSocket::TransfersocketListenFinished(unsigned int ip, unsigned short port) { - if (m_Operation.nOpMode&CSMODE_TRANSFER || m_Operation.nOpMode&CSMODE_LIST) - { - CString host; - host.Format(_T("%d,%d,%d,%d,%d,%d"),ip%256,(ip>>8)%256,(ip>>16)%256,(ip>>24)%256,port%256,port>>8); - Send(_MPT("PORT ")+host); - } + if (m_Operation.nOpMode&CSMODE_TRANSFER || m_Operation.nOpMode&CSMODE_LIST) + { + CString host; + host.Format(L"%d,%d,%d,%d,%d,%d",ip%256,(ip>>8)%256,(ip>>16)%256,(ip>>24)%256,port%256,port>>8); + Send(L"PORT "+host); + } } void CFtpControlSocket::ResumeTransfer() { - if (m_pTransferSocket && (m_Operation.nOpMode&CSMODE_TRANSFER || m_Operation.nOpMode&CSMODE_LIST)) - { - m_pTransferSocket->OnSend(0); - m_pTransferSocket->OnReceive(0); - } + if (m_pTransferSocket && (m_Operation.nOpMode&CSMODE_TRANSFER || m_Operation.nOpMode&CSMODE_LIST)) + { + m_pTransferSocket->OnSend(0); + m_pTransferSocket->OnReceive(0); + } } BOOL CFtpControlSocket::Create() { - if (!COptions::GetOptionVal(OPTION_LIMITPORTRANGE)) - return CAsyncSocketEx::Create(0, SOCK_STREAM, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, 0, COptions::GetOptionVal(OPTION_ENABLE_IPV6) ? AF_UNSPEC : AF_INET); - else - { - int min=COptions::GetOptionVal(OPTION_PORTRANGELOW); - int max=COptions::GetOptionVal(OPTION_PORTRANGEHIGH); - if (min>=max) - { - ShowStatus(IDS_ERRORMSG_CANTCREATEDUETOPORTRANGE,FZ_LOG_ERROR); - return FALSE; - } - int startport = static_cast(min+((double)rand()*(max-min))/(RAND_MAX+1)); - int port = startport; - - while (!CAsyncSocketEx::Create(port, SOCK_STREAM, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, 0, COptions::GetOptionVal(OPTION_ENABLE_IPV6) ? AF_UNSPEC : AF_INET)) - { - port++; - if (port>max) - port=min; - if (port==startport) - { - ShowStatus(IDS_ERRORMSG_CANTCREATEDUETOPORTRANGE,FZ_LOG_ERROR); - return FALSE; - } - - if (!InitConnect()) - return FALSE; - } - } - return TRUE; + if (!GetOptionVal(OPTION_LIMITPORTRANGE)) + return CAsyncSocketEx::Create(0, SOCK_STREAM, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, 0, GetOptionVal(OPTION_ENABLE_IPV6) ? AF_UNSPEC : AF_INET); + else + { + int min=GetOptionVal(OPTION_PORTRANGELOW); + int max=GetOptionVal(OPTION_PORTRANGEHIGH); + if (min>=max) + { + ShowStatus(IDS_ERRORMSG_CANTCREATEDUETOPORTRANGE,FZ_LOG_ERROR); + return FALSE; + } + int startport = static_cast(min+((double)rand()*(max-min))/(RAND_MAX+1)); + int port = startport; + + while (!CAsyncSocketEx::Create(port, SOCK_STREAM, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, 0, GetOptionVal(OPTION_ENABLE_IPV6) ? AF_UNSPEC : AF_INET)) + { + port++; + if (port>max) + port=min; + if (port==startport) + { + ShowStatus(IDS_ERRORMSG_CANTCREATEDUETOPORTRANGE,FZ_LOG_ERROR); + return FALSE; + } + + if (!InitConnect()) + return FALSE; + } + } + return TRUE; } void CFtpControlSocket::ResetOperation(int nSuccessful /*=FALSE*/) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("ResetOperation(%d) OpMode=%d OpState=%d"), nSuccessful, m_Operation.nOpMode, m_Operation.nOpState); - - if (nSuccessful & FZ_REPLY_CRITICALERROR) - nSuccessful |= FZ_REPLY_ERROR; - - if (m_pTransferSocket) - delete m_pTransferSocket; - m_pTransferSocket=0; - -#ifndef MPEXT_NO_IDENT - //There may be an active ident socket, close it - if (m_pIdentControl) - { - delete m_pIdentControl; - m_pIdentControl=0; - } -#endif + if (nSuccessful & FZ_REPLY_CRITICALERROR) + nSuccessful |= FZ_REPLY_ERROR; - if (m_pDataFile) - delete m_pDataFile; - m_pDataFile=0; - - if (m_Operation.nOpMode) - { - //Unset busy attribute so that new commands can be executed - m_pOwner->SetBusy(FALSE); - - if (m_Operation.nOpMode&CSMODE_CONNECT && nSuccessful&FZ_REPLY_ERROR) - { - nSuccessful|=FZ_REPLY_DISCONNECTED; - ShowStatus(IDS_ERRORMSG_CANTCONNECT, FZ_LOG_ERROR); - } - - if (m_Operation.nOpMode & (CSMODE_LIST|CSMODE_LISTFILE|CSMODE_TRANSFER) && nSuccessful==FZ_REPLY_OK) - m_LastSendTime=CTime::GetCurrentTime(); - - //Update remote file entry - if (m_Operation.pData && - m_Operation.nOpMode&CSMODE_TRANSFER && - (!((CFileTransferData*)m_Operation.pData)->transferfile.get) && - m_pDirectoryListing && - m_Operation.nOpState>=FILETRANSFER_RETRSTOR) - { - CString filename=((CFileTransferData*)m_Operation.pData)->transferfile.remotefile; - CServerPath path=((CFileTransferData*)m_Operation.pData)->transferfile.remotepath; -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - cache.Lock(); - t_directory dir; - BOOL bCached=TRUE; - BOOL res=cache.Lookup(path, m_CurrentServer, dir); - if (!res) - bCached=FALSE; -#else - t_directory dir; - BOOL res=FALSE; -#endif - if (!res && m_pDirectoryListing) - { - if (m_pDirectoryListing->path==path) - { - dir=*m_pDirectoryListing; - res=TRUE; - } - } - t_directory WorkingDir; - BOOL bFound=m_pOwner->GetWorkingDir(&WorkingDir); - if (!res && bFound) - if (WorkingDir.path==path) - { - dir=WorkingDir; - res=TRUE; - } - if (res) - { - int i; - for (i=0; itransferfile.get) - dir.direntry[i].size = -1; - if (!GetLength64(((CFileTransferData *)m_Operation.pData)->transferfile.localfile, dir.direntry[i].size)) - dir.direntry[i].size = -1; - } - dir.direntry[i].date.hasdate = false; - break; - } - if (i==dir.num) - { - t_directory::t_direntry *entries=new t_directory::t_direntry[dir.num+1]; - int i; - for (i=0; ipath==dir.path) - { - updated=TRUE; - SetDirectoryListing(&dir, bFound && WorkingDir.path == dir.path); - } - if (!updated) - if (bFound && WorkingDir.path==dir.path) - { - updated = TRUE; - m_pOwner->SetWorkingDir(&dir); - } - } -#ifndef MPEXT_NO_CACHE - cache.Unlock(); -#endif - } - - if (m_Operation.pData && nSuccessful&FZ_REPLY_ERROR) - { - if (m_Operation.nOpMode&CSMODE_TRANSFER) - if (nSuccessful&FZ_REPLY_ABORTED) - //Transfer aborted by user - ShowStatus((m_Operation.nOpMode&CSMODE_DOWNLOAD)?IDS_ERRORMSG_DOWNLOADABORTED:IDS_ERRORMSG_UPLOADABORTED,FZ_LOG_ERROR); - else - ShowStatus(((CFileTransferData*)m_Operation.pData)->transferfile.get?IDS_ERRORMSG_DOWNLOADFAILED:IDS_ERRORMSG_UPLOADFAILED,FZ_LOG_ERROR); - else if (m_Operation.nOpMode&CSMODE_LIST) - ShowStatus(IDS_ERRORMSG_CANTGETLIST,FZ_LOG_ERROR); - else if (m_Operation.nOpMode&CSMODE_LISTFILE) - ShowStatus(IDS_ERRORMSG_CANTGETLISTFILE,FZ_LOG_ERROR); - } - else if (m_Operation.pData && m_Operation.nOpMode&CSMODE_TRANSFER && nSuccessful==FZ_REPLY_OK) - ShowStatus(((CFileTransferData*)m_Operation.pData)->transferfile.get?IDS_STATUSMSG_DOWNLOADSUCCESSFUL:IDS_STATUSMSG_UPLOADSUCCESSFUL,FZ_LOG_STATUS); - } - else - { -#ifdef MPEXT - // When control socket is waiting for reply - // to keepalive (!IsReady), while new command comes, - // its execution is postponed - // (CMainThread::m_pPostKeepAliveCommand), - // but the main thread - // is set to busy state already (CMainThread::Command). - // if connection is closed before without receiving reply, - // main thread would stay busy forever. - m_pOwner->SetBusy(FALSE); -#endif - //No operation in progress - nSuccessful&=FZ_REPLY_DISCONNECTED|FZ_REPLY_CANCEL; - if (!nSuccessful) - ASSERT(FALSE); - } - - if (nSuccessful&FZ_REPLY_DISCONNECTED) - m_pOwner->SetWorkingDir(0); //Disconnected, reset working dir - - if (m_Operation.nOpMode) - PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_REPLY, m_pOwner->m_LastCommand.id), nSuccessful); - else - PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_REPLY, 0), nSuccessful); - - m_Operation.nOpMode=0; - m_Operation.nOpState=-1; - - if (m_Operation.pData) - delete m_Operation.pData; - m_Operation.pData=0; + if (m_pTransferSocket) + delete m_pTransferSocket; + m_pTransferSocket=0; + + if (m_pDataFile) + delete m_pDataFile; + m_pDataFile=0; + + if (m_Operation.nOpMode) + { + //Unset busy attribute so that new commands can be executed + m_pOwner->SetBusy(FALSE); + + if (m_Operation.nOpMode&CSMODE_CONNECT && nSuccessful&FZ_REPLY_ERROR) + { + nSuccessful|=FZ_REPLY_DISCONNECTED; + ShowStatus(IDS_ERRORMSG_CANTCONNECT, FZ_LOG_ERROR); + } + + if (m_Operation.nOpMode & (CSMODE_LIST|CSMODE_LISTFILE|CSMODE_TRANSFER) && nSuccessful==FZ_REPLY_OK) + m_LastSendTime=CTime::GetCurrentTime(); + + //Update remote file entry + if (m_Operation.pData && + m_Operation.nOpMode&CSMODE_TRANSFER && + (!((CFileTransferData*)m_Operation.pData)->transferfile.get) && + m_pDirectoryListing && + m_Operation.nOpState>=FILETRANSFER_RETRSTOR) + { + CString filename=((CFileTransferData*)m_Operation.pData)->transferfile.remotefile; + CServerPath path=((CFileTransferData*)m_Operation.pData)->transferfile.remotepath; + t_directory dir; + BOOL res=FALSE; + if (m_pDirectoryListing) + { + if (m_pDirectoryListing->path==path) + { + dir=*m_pDirectoryListing; + res=TRUE; + } + } + t_directory WorkingDir; + BOOL bFound=m_pOwner->GetWorkingDir(&WorkingDir); + if (!res && bFound) + if (WorkingDir.path==path) + { + dir=WorkingDir; + res=TRUE; + } + if (res) + { + int i; + for (i=0; itransferfile.get) + dir.direntry[i].size = -1; + if (!GetLength64(((CFileTransferData *)m_Operation.pData)->transferfile.localfile, dir.direntry[i].size)) + dir.direntry[i].size = -1; + } + dir.direntry[i].date.hasdate = false; + break; + } + if (i==dir.num) + { + t_directory::t_direntry *entries=new t_directory::t_direntry[dir.num+1]; + int i; + for (i=0; ipath==dir.path) + { + updated=TRUE; + SetDirectoryListing(&dir, bFound && WorkingDir.path == dir.path); + } + if (!updated) + if (bFound && WorkingDir.path==dir.path) + { + updated = TRUE; + m_pOwner->SetWorkingDir(&dir); + } + } + } + + if (m_Operation.pData && nSuccessful&FZ_REPLY_ERROR) + { + if (m_Operation.nOpMode&CSMODE_TRANSFER) + if (nSuccessful&FZ_REPLY_ABORTED) + //Transfer aborted by user + ShowStatus((m_Operation.nOpMode&CSMODE_DOWNLOAD)?IDS_ERRORMSG_DOWNLOADABORTED:IDS_ERRORMSG_UPLOADABORTED,FZ_LOG_ERROR); + else + ShowStatus(((CFileTransferData*)m_Operation.pData)->transferfile.get?IDS_ERRORMSG_DOWNLOADFAILED:IDS_ERRORMSG_UPLOADFAILED,FZ_LOG_ERROR); + else if (m_Operation.nOpMode&CSMODE_LIST) + ShowStatus(IDS_ERRORMSG_CANTGETLIST,FZ_LOG_ERROR); + else if (m_Operation.nOpMode&CSMODE_LISTFILE) + ShowStatus(IDS_ERRORMSG_CANTGETLISTFILE,FZ_LOG_ERROR); + } + else if (m_Operation.pData && m_Operation.nOpMode&CSMODE_TRANSFER && nSuccessful==FZ_REPLY_OK) + ShowStatus(((CFileTransferData*)m_Operation.pData)->transferfile.get?IDS_STATUSMSG_DOWNLOADSUCCESSFUL:IDS_STATUSMSG_UPLOADSUCCESSFUL,FZ_LOG_STATUS); + } + else + { + // When control socket is waiting for reply + // to keepalive (!IsReady), while new command comes, + // its execution is postponed + // (CMainThread::m_pPostKeepAliveCommand), + // but the main thread + // is set to busy state already (CMainThread::Command). + // if connection is closed before without receiving reply, + // main thread would stay busy forever. + m_pOwner->SetBusy(FALSE); + //No operation in progress + nSuccessful&=FZ_REPLY_DISCONNECTED|FZ_REPLY_CANCEL; + if (!nSuccessful) + DebugFail(); + } + + if (nSuccessful&FZ_REPLY_DISCONNECTED) + m_pOwner->SetWorkingDir(0); //Disconnected, reset working dir + + if (m_Operation.nOpMode) + GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_REPLY, m_pOwner->m_LastCommand.id), nSuccessful); + else + GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_REPLY, 0), nSuccessful); + + m_Operation.nOpMode=0; + m_Operation.nOpState=-1; + + if (m_Operation.pData) + delete m_Operation.pData; + m_Operation.pData=0; } void CFtpControlSocket::Delete(CString filename, const CServerPath &path) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("Delete(\"%s\", \"%s\") OpMode=%d OpState=%d"), filename, path.GetPath(), m_Operation.nOpMode, m_Operation.nOpState); - - class CDeleteData : public CFtpControlSocket::t_operation::COpData - { + class CDeleteData : public CFtpControlSocket::t_operation::COpData + { public: - CDeleteData() {} - virtual ~CDeleteData() {} - CString m_FileName; - CServerPath path; - }; - if (filename!=_MPT("")) - { - ASSERT(!path.IsEmpty()); - ASSERT(m_Operation.nOpMode==CSMODE_NONE); - ASSERT(m_Operation.nOpState==-1); - ASSERT(!m_Operation.pData); - m_Operation.nOpMode=CSMODE_DELETE; - if (!Send(_MPT("DELE ") + path.FormatFilename(filename))) - return; - CDeleteData *data=new CDeleteData; - data->m_FileName=filename; - data->path=path; - m_Operation.pData=data; - } - else - { - ASSERT(path.IsEmpty()); - ASSERT(m_Operation.nOpMode==CSMODE_DELETE); - ASSERT(m_Operation.nOpState==-1); - ASSERT(m_Operation.pData); - int res=GetReplyCode(); - if (res==2 || res==3) - { //Remove file from cached dirs - CDeleteData *pData=(CDeleteData *)m_Operation.pData; -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - cache.Lock(); - BOOL bCached=TRUE; - t_directory dir; - BOOL res=cache.Lookup(pData->path,m_CurrentServer,dir); - if (!res) - bCached=FALSE; -#else - t_directory dir; - BOOL res=FALSE; -#endif - if (!res && m_pDirectoryListing) - { - if (m_pDirectoryListing->path==pData->path) - { - dir=*m_pDirectoryListing; - res=TRUE; - } - } - t_directory WorkingDir; - BOOL bFound=m_pOwner->GetWorkingDir(&WorkingDir); - if (!res && bFound) - if (WorkingDir.path==pData->path) - { - dir=WorkingDir; - res=TRUE; - } - if (res) - { - BOOL found=FALSE; - for (int i=0;im_FileName) - { - ASSERT(!dir.direntry[i].dir || dir.direntry[i].bLink); - found=TRUE; - break; - } - } - if (found) - { - t_directory::t_direntry *direntry=new t_directory::t_direntry[dir.num-1]; - int j=0; - int i; - for (i=0; im_FileName) - continue; - direntry[j]=dir.direntry[i]; - j++; - } - delete [] dir.direntry; - dir.direntry=direntry; - dir.num--; -#ifndef MPEXT_NO_CACHE - cache.Store(dir, bCached); -#endif - BOOL updated=FALSE; - if (m_pDirectoryListing) - if (m_pDirectoryListing->path==dir.path) - { - updated=TRUE; - SetDirectoryListing(&dir); - } - if (!updated) - if (WorkingDir.path==dir.path) - { - updated=TRUE; - m_pOwner->SetWorkingDir(&dir); - } - } - } -#ifndef MPEXT_NO_CACHE - cache.Unlock(); -#endif - } - ResetOperation(FZ_REPLY_OK); - } + CDeleteData() {} + virtual ~CDeleteData() {} + CString m_FileName; + CServerPath path; + }; + if (filename!=L"") + { + DebugAssert(!path.IsEmpty()); + DebugAssert(m_Operation.nOpMode==CSMODE_NONE); + DebugAssert(m_Operation.nOpState==-1); + DebugAssert(!m_Operation.pData); + m_Operation.nOpMode=CSMODE_DELETE; + if (!Send(L"DELE " + path.FormatFilename(filename))) + return; + CDeleteData *data=new CDeleteData; + data->m_FileName=filename; + data->path=path; + m_Operation.pData=data; + } + else + { + DebugAssert(path.IsEmpty()); + DebugAssert(m_Operation.nOpMode==CSMODE_DELETE); + DebugAssert(m_Operation.nOpState==-1); + DebugAssert(m_Operation.pData); + int res=GetReplyCode(); + if (res==2 || res==3) + { //Remove file from cached dirs + CDeleteData *pData=(CDeleteData *)m_Operation.pData; + t_directory dir; + BOOL res=FALSE; + if (m_pDirectoryListing) + { + if (m_pDirectoryListing->path==pData->path) + { + dir=*m_pDirectoryListing; + res=TRUE; + } + } + t_directory WorkingDir; + BOOL bFound=m_pOwner->GetWorkingDir(&WorkingDir); + if (!res && bFound) + if (WorkingDir.path==pData->path) + { + dir=WorkingDir; + res=TRUE; + } + if (res) + { + BOOL found=FALSE; + for (int i=0;im_FileName) + { + DebugAssert(!dir.direntry[i].dir || dir.direntry[i].bLink); + found=TRUE; + break; + } + } + if (found) + { + t_directory::t_direntry *direntry=new t_directory::t_direntry[dir.num-1]; + int j=0; + int i; + for (i=0; im_FileName) + continue; + direntry[j]=dir.direntry[i]; + j++; + } + delete [] dir.direntry; + dir.direntry=direntry; + dir.num--; + BOOL updated=FALSE; + if (m_pDirectoryListing) + if (m_pDirectoryListing->path==dir.path) + { + updated=TRUE; + SetDirectoryListing(&dir); + } + if (!updated) + if (WorkingDir.path==dir.path) + { + updated=TRUE; + m_pOwner->SetWorkingDir(&dir); + } + } + } + } + ResetOperation(FZ_REPLY_OK); + } } void CFtpControlSocket::RemoveDir(CString dirname, const CServerPath &path) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("RemoveDir(\"%s\", \"%s\") OpMode=%d OpState=%d"), dirname, path.GetPath(), m_Operation.nOpMode, m_Operation.nOpState); - class CRemoveDirData : public CFtpControlSocket::t_operation::COpData - { + class CRemoveDirData : public CFtpControlSocket::t_operation::COpData + { public: - CRemoveDirData() {} - virtual ~CRemoveDirData() {} - CString m_DirName; - CServerPath path; - }; - if (dirname != _MPT("")) - { - ASSERT(!path.IsEmpty()); - ASSERT(m_Operation.nOpMode == CSMODE_NONE); - ASSERT(m_Operation.nOpState == -1); - ASSERT(!m_Operation.pData); - m_Operation.nOpMode = CSMODE_RMDIR; - CServerPath newPath = path; - if (!newPath.AddSubdir(dirname)) - { - ShowStatus(_T("Unable to concatenate path"), FZ_LOG_ERROR); - return; - } - if (!Send(_MPT("RMD ")+ newPath.GetPath())) - return; - CRemoveDirData *data = new CRemoveDirData; - data->m_DirName = dirname; - data->path = path; - m_Operation.pData = data; - } - else - { - ASSERT(path.IsEmpty()); - ASSERT(m_Operation.nOpMode == CSMODE_RMDIR); - ASSERT(m_Operation.nOpState == -1); - ASSERT(m_Operation.pData); - int res = GetReplyCode(); - if (res == 2 || res == 3) - { //Remove dir from cached dirs - CRemoveDirData *pData= (CRemoveDirData *)m_Operation.pData; -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - cache.Lock(); - BOOL bCached = TRUE; - t_directory dir; - BOOL res = cache.Lookup(pData->path, m_CurrentServer, dir); - if (!res) - bCached = FALSE; -#else - t_directory dir; - BOOL res = FALSE; -#endif - if (!res && m_pDirectoryListing) - { - if (m_pDirectoryListing->path == pData->path) - { - dir = *m_pDirectoryListing; - res = TRUE; - } - } - t_directory WorkingDir; - BOOL bFound = m_pOwner->GetWorkingDir(&WorkingDir); - if (!res && bFound) - if (WorkingDir.path == pData->path) - { - dir = WorkingDir; - res = TRUE; - } - if (res) - { - BOOL found = FALSE; - for (int i = 0; i < dir.num; i++) - { - if (dir.direntry[i].name == pData->m_DirName) - { - ASSERT(dir.direntry[i].dir); - found = TRUE; - break; - } - } - if (found) - { - t_directory::t_direntry *direntry = new t_directory::t_direntry[dir.num-1]; - int j = 0; - int i; - for (i = 0; i < dir.num; i++) - { - if (dir.direntry[i].name == pData->m_DirName) - continue; - direntry[j] = dir.direntry[i]; - j++; - } - delete [] dir.direntry; - dir.direntry = direntry; - dir.num--; -#ifndef MPEXT_NO_CACHE - cache.Store(dir, bCached); -#endif - BOOL updated = FALSE; - if (m_pDirectoryListing) - if (m_pDirectoryListing->path == dir.path) - { - updated = TRUE; - SetDirectoryListing(&dir); - } - if (!updated) - if (WorkingDir.path == dir.path) - { - updated = TRUE; - m_pOwner->SetWorkingDir(&dir); - } - } - } -#ifndef MPEXT_NO_CACHE - if (cache.Lookup(pData->path, pData->m_DirName, m_CurrentServer, dir)) - cache.Purge(dir.path, dir.server); - cache.Unlock(); -#endif - ResetOperation(FZ_REPLY_OK); - } - else - ResetOperation(FZ_REPLY_ERROR); - } + CRemoveDirData() {} + virtual ~CRemoveDirData() {} + CString m_DirName; + CServerPath path; + }; + if (dirname != L"") + { + DebugAssert(!path.IsEmpty()); + DebugAssert(m_Operation.nOpMode == CSMODE_NONE); + DebugAssert(m_Operation.nOpState == -1); + DebugAssert(!m_Operation.pData); + m_Operation.nOpMode = CSMODE_RMDIR; + CServerPath newPath = path; + if (!newPath.AddSubdir(dirname)) + { + ShowStatus(L"Unable to concatenate path", FZ_LOG_ERROR); + return; + } + if (!Send(L"RMD "+ newPath.GetPath())) + return; + CRemoveDirData *data = new CRemoveDirData; + data->m_DirName = dirname; + data->path = path; + m_Operation.pData = data; + } + else + { + DebugAssert(path.IsEmpty()); + DebugAssert(m_Operation.nOpMode == CSMODE_RMDIR); + DebugAssert(m_Operation.nOpState == -1); + DebugAssert(m_Operation.pData); + int res = GetReplyCode(); + if (res == 2 || res == 3) + { //Remove dir from cached dirs + CRemoveDirData *pData= (CRemoveDirData *)m_Operation.pData; + t_directory dir; + BOOL res = FALSE; + if (m_pDirectoryListing) + { + if (m_pDirectoryListing->path == pData->path) + { + dir = *m_pDirectoryListing; + res = TRUE; + } + } + t_directory WorkingDir; + BOOL bFound = m_pOwner->GetWorkingDir(&WorkingDir); + if (!res && bFound) + if (WorkingDir.path == pData->path) + { + dir = WorkingDir; + res = TRUE; + } + if (res) + { + BOOL found = FALSE; + for (int i = 0; i < dir.num; i++) + { + if (dir.direntry[i].name == pData->m_DirName) + { + DebugAssert(dir.direntry[i].dir); + found = TRUE; + break; + } + } + if (found) + { + t_directory::t_direntry *direntry = new t_directory::t_direntry[dir.num-1]; + int j = 0; + int i; + for (i = 0; i < dir.num; i++) + { + if (dir.direntry[i].name == pData->m_DirName) + continue; + direntry[j] = dir.direntry[i]; + j++; + } + delete [] dir.direntry; + dir.direntry = direntry; + dir.num--; + BOOL updated = FALSE; + if (m_pDirectoryListing) + if (m_pDirectoryListing->path == dir.path) + { + updated = TRUE; + SetDirectoryListing(&dir); + } + if (!updated) + if (WorkingDir.path == dir.path) + { + updated = TRUE; + m_pOwner->SetWorkingDir(&dir); + } + } + } + ResetOperation(FZ_REPLY_OK); + } + else + ResetOperation(FZ_REPLY_ERROR); + } } int CFtpControlSocket::CheckOverwriteFile() { - if (!m_Operation.pData) - { - return FZ_REPLY_ERROR; - } - - CFileTransferData *pData = reinterpret_cast(m_Operation.pData); - - int nReplyError = 0; - CFileStatus64 status; - BOOL res = GetStatus64(pData->transferfile.localfile, status); - if (!res) - { - if (!pData->transferfile.get) - { - ShowStatus(IDS_ERRORMSG_CANTGETLISTFILE,FZ_LOG_ERROR); - nReplyError = FZ_REPLY_CRITICALERROR; //File has to exist when uploading - } - else - { - m_Operation.nOpState = FILETRANSFER_TYPE; - } - } - else - { - if (status.m_attribute & 0x10) - { - nReplyError = FZ_REPLY_CRITICALERROR; //Can't transfer to/from dirs - } - else - { - _int64 localsize; - if (!GetLength64(pData->transferfile.localfile, localsize)) - if (!pData->transferfile.get) - nReplyError = FZ_REPLY_CRITICALERROR; - else - m_Operation.nOpState = FILETRANSFER_TYPE; - - - CTime *localtime = NULL; - TRY - { - if (status.m_has_mtime && status.m_mtime != -1) - localtime = new CTime(status.m_mtime); - } - CATCH_ALL(e) - { - TCHAR buffer[1024]; - CString str =_T("Exception creating CTime object: "); - if (e->GetErrorMessage(buffer, 1024, NULL)) - str += buffer; - else - str += _T("Unknown exception"); - LogMessageRaw(__FILE__, __LINE__, this, FZ_LOG_WARNING, str); - localtime = NULL; - } - END_CATCH_ALL; - BOOL bRemoteFileExists = FALSE; - __int64 remotesize = -1; - t_directory::t_direntry::t_date remotetime; - if (m_pDirectoryListing) - { - for (int i=0; inum; i++) - { - CString remotefile = pData->transferfile.remotefile; - if (m_pDirectoryListing->direntry[i].name == remotefile) - { - remotesize = m_pDirectoryListing->direntry[i].size; - remotetime = m_pDirectoryListing->direntry[i].date; - bRemoteFileExists = TRUE; - break; - } - } - } - if (!bRemoteFileExists && pData->hasRemoteDate) - { - remotetime = pData->remoteDate; - bRemoteFileExists = TRUE; - } - if (remotesize == -1 && pData->pFileSize) - { - remotesize = *pData->pFileSize; - bRemoteFileExists = TRUE; - } - - if (bRemoteFileExists || pData->transferfile.get ) - { - COverwriteRequestData *pOverwriteData = new COverwriteRequestData; - t_transferfile *pTransferFile = new t_transferfile; - *pTransferFile = pData->transferfile; - pOverwriteData->pTransferFile = pTransferFile; - if (pData->transferfile.get) - { - int pos = pData->transferfile.localfile.ReverseFind(_MPT('\\')); - // pos can be -1 here, e.g. in scripting, the code below still works then - pOverwriteData->FileName1 = pData->transferfile.localfile.Mid(pos+1); - pOverwriteData->FileName2 = pData->transferfile.remotefile; - pOverwriteData->path1 = pData->transferfile.localfile.Left(pos+1); - pOverwriteData->path2 = pData->transferfile.remotepath.GetPath(); - pOverwriteData->size1 = localsize; - pOverwriteData->size2 = remotesize; - } - else - { - int pos = pData->transferfile.localfile.ReverseFind(_MPT('\\')); - // pos can be -1 here, e.g. in scripting, the code below still works then - pOverwriteData->FileName1 = pData->transferfile.remotefile; - pOverwriteData->FileName2 = pData->transferfile.localfile.Mid(pos+1); - pOverwriteData->path1 = pData->transferfile.remotepath.GetPath(); - pOverwriteData->path2 = pData->transferfile.localfile.Left(pos+1); - pOverwriteData->size1 = remotesize; - pOverwriteData->size2 = localsize; - } - pOverwriteData->localtime = localtime; - pOverwriteData->remotetime = remotetime; - pOverwriteData->nRequestID = m_pOwner->GetNextAsyncRequestID(); - if (!PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_OVERWRITE), (LPARAM)pOverwriteData)) - { - delete pOverwriteData; - nReplyError = FZ_REPLY_ERROR; - } - else - { - m_bCheckForTimeout = FALSE; - m_Operation.nOpState = FILETRANSFER_WAIT; - } - } - else - { - m_Operation.nOpState = FILETRANSFER_TYPE; - delete localtime; - } - } - } - return nReplyError; + if (!m_Operation.pData) + { + return FZ_REPLY_ERROR; + } + + CFileTransferData *pData = reinterpret_cast(m_Operation.pData); + + int nReplyError = 0; + CFileStatus64 status; + BOOL res = GetStatus64(pData->transferfile.localfile, status); + if (!res) + { + if (!pData->transferfile.get) + { + ShowStatus(IDS_ERRORMSG_CANTGETLISTFILE,FZ_LOG_ERROR); + nReplyError = FZ_REPLY_CRITICALERROR; //File has to exist when uploading + } + else + { + m_Operation.nOpState = FILETRANSFER_TYPE; + } + } + else + { + if (status.m_attribute & 0x10) + { + nReplyError = FZ_REPLY_CRITICALERROR; //Can't transfer to/from dirs + } + else + { + _int64 localsize; + if (!GetLength64(pData->transferfile.localfile, localsize)) + if (!pData->transferfile.get) + nReplyError = FZ_REPLY_CRITICALERROR; + else + m_Operation.nOpState = FILETRANSFER_TYPE; + + + CTime *localtime = NULL; + TRY + { + if (status.m_has_mtime && status.m_mtime != -1) + localtime = new CTime(status.m_mtime); + } + CATCH_ALL(e) + { + TCHAR buffer[1024]; + CString str =L"Exception creating CTime object: "; + if (e->GetErrorMessage(buffer, 1024, NULL)) + str += buffer; + else + str += L"Unknown exception"; + LogMessageRaw(FZ_LOG_WARNING, str); + localtime = NULL; + } + END_CATCH_ALL; + BOOL bRemoteFileExists = FALSE; + __int64 remotesize = -1; + t_directory::t_direntry::t_date remotetime; + if (m_pDirectoryListing) + { + for (int i=0; inum; i++) + { + CString remotefile = pData->transferfile.remotefile; + if (m_pDirectoryListing->direntry[i].name == remotefile) + { + remotesize = m_pDirectoryListing->direntry[i].size; + remotetime = m_pDirectoryListing->direntry[i].date; + bRemoteFileExists = TRUE; + break; + } + } + } + if (!bRemoteFileExists && pData->hasRemoteDate) + { + remotetime = pData->remoteDate; + bRemoteFileExists = TRUE; + } + if (remotesize == -1 && pData->pFileSize) + { + remotesize = *pData->pFileSize; + bRemoteFileExists = TRUE; + } + + if (bRemoteFileExists || pData->transferfile.get ) + { + COverwriteRequestData *pOverwriteData = new COverwriteRequestData; + t_transferfile *pTransferFile = new t_transferfile; + *pTransferFile = pData->transferfile; + pOverwriteData->pTransferFile = pTransferFile; + if (pData->transferfile.get) + { + int pos = pData->transferfile.localfile.ReverseFind(L'\\'); + // pos can be -1 here, e.g. in scripting, the code below still works then + pOverwriteData->FileName1 = pData->transferfile.localfile.Mid(pos+1); + pOverwriteData->FileName2 = pData->transferfile.remotefile; + pOverwriteData->path1 = pData->transferfile.localfile.Left(pos+1); + pOverwriteData->path2 = pData->transferfile.remotepath.GetPath(); + pOverwriteData->size1 = localsize; + pOverwriteData->size2 = remotesize; + } + else + { + int pos = pData->transferfile.localfile.ReverseFind(L'\\'); + // pos can be -1 here, e.g. in scripting, the code below still works then + pOverwriteData->FileName1 = pData->transferfile.remotefile; + pOverwriteData->FileName2 = pData->transferfile.localfile.Mid(pos+1); + pOverwriteData->path1 = pData->transferfile.remotepath.GetPath(); + pOverwriteData->path2 = pData->transferfile.localfile.Left(pos+1); + pOverwriteData->size1 = remotesize; + pOverwriteData->size2 = localsize; + } + pOverwriteData->localtime = localtime; + pOverwriteData->remotetime = remotetime; + pOverwriteData->nRequestID = m_pOwner->GetNextAsyncRequestID(); + if (!GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_OVERWRITE), (LPARAM)pOverwriteData)) + { + delete pOverwriteData; + nReplyError = FZ_REPLY_ERROR; + } + else + { + m_bCheckForTimeout = FALSE; + m_Operation.nOpState = FILETRANSFER_WAIT; + } + } + else + { + m_Operation.nOpState = FILETRANSFER_TYPE; + delete localtime; + } + } + } + return nReplyError; } void CFtpControlSocket::SetFileExistsAction(int nAction, COverwriteRequestData *pData) { - if (!pData) - return; - if (!(m_Operation.nOpMode & CSMODE_TRANSFER)) - return; - if (m_Operation.nOpState != FILETRANSFER_WAIT) - return; - - CFileTransferData* pTransferData = reinterpret_cast(m_Operation.pData); - if (!pTransferData) - return; - - pTransferData->transferdata.bResume = false; - - m_bCheckForTimeout = TRUE; - int nReplyError = 0; - switch (nAction) - { - case FILEEXISTS_SKIP: - nReplyError = FZ_REPLY_OK; - break; - case FILEEXISTS_OVERWRITE: - pTransferData->nWaitNextOpState = FILETRANSFER_TYPE; - break; - case FILEEXISTS_OVERWRITEIFNEWER: - // MPEXT - ASSERT(FALSE); - nReplyError = FZ_REPLY_OK; - break; - case FILEEXISTS_RENAME: - if (pTransferData->transferfile.get) - { - CFileStatus64 status; - if (GetStatus64(pData->FileName1, status)) - { - ShowStatus(IDS_ERRORMSG_NAMEINUSE, FZ_LOG_ERROR); - nReplyError= FZ_REPLY_CRITICALERROR; - } - else - { - pTransferData->transferfile.localfile = pData->path1+pData->FileName1; - //Replace invalid characters in the local filename - int pos = pTransferData->transferfile.localfile.ReverseFind(_MPT('\\')); - for (int i = (pos+1); i < pTransferData->transferfile.localfile.GetLength(); i++) - if (pTransferData->transferfile.localfile[i] == _MPT(':')) - pTransferData->transferfile.localfile.SetAt(i, _MPT('_')); - - pTransferData->nWaitNextOpState= FILETRANSFER_TYPE; - } - } - else - { - ASSERT(m_pDirectoryListing); - int i; - for (i = 0; i < m_pDirectoryListing->num; i++) - { - if (m_pDirectoryListing->direntry[i].name == pData->FileName1) - { - ShowStatus(IDS_ERRORMSG_NAMEINUSE, FZ_LOG_ERROR); - nReplyError = FZ_REPLY_CRITICALERROR; - break; - } - } - if (i==m_pDirectoryListing->num) - { - pTransferData->transferfile.remotefile = pData->FileName1; - pTransferData->nWaitNextOpState = FILETRANSFER_TYPE; - } - } - break; - case FILEEXISTS_RESUME_ASKONFAIL: - pTransferData->askOnResumeFail = true; - case FILEEXISTS_RESUME: - if (pData->size1 >= 0) - { - pTransferData->transferdata.bResume = TRUE; - } - pTransferData->nWaitNextOpState = FILETRANSFER_TYPE; - break; - #ifdef MPEXT - case FILEEXISTS_COMPLETE: - // Simulating transfer finish - m_Operation.nOpState=FILETRANSFER_WAITFINISH; - TransferFinished(true); - return; // Avoid call to FileTransfer below - } - #endif - if (nReplyError == FZ_REPLY_OK) - ResetOperation(FZ_REPLY_OK); - else if (nReplyError) - ResetOperation(FZ_REPLY_ERROR | nReplyError); //Error transferring the file - else - FileTransfer(); + if (!pData) + return; + if (!(m_Operation.nOpMode & CSMODE_TRANSFER)) + return; + if (m_Operation.nOpState != FILETRANSFER_WAIT) + return; + + CFileTransferData* pTransferData = reinterpret_cast(m_Operation.pData); + if (!pTransferData) + return; + + pTransferData->transferdata.bResume = false; + + m_bCheckForTimeout = TRUE; + int nReplyError = 0; + switch (nAction) + { + case FILEEXISTS_SKIP: + nReplyError = FZ_REPLY_OK; + break; + case FILEEXISTS_OVERWRITE: + pTransferData->nWaitNextOpState = FILETRANSFER_TYPE; + break; + case FILEEXISTS_RENAME: + if (pTransferData->transferfile.get) + { + CFileStatus64 status; + if (GetStatus64(pData->FileName1, status)) + { + ShowStatus(IDS_ERRORMSG_NAMEINUSE, FZ_LOG_ERROR); + nReplyError= FZ_REPLY_CRITICALERROR; + } + else + { + pTransferData->transferfile.localfile = pData->path1+pData->FileName1; + //Replace invalid characters in the local filename + int pos = pTransferData->transferfile.localfile.ReverseFind(L'\\'); + for (int i = (pos+1); i < pTransferData->transferfile.localfile.GetLength(); i++) + if (pTransferData->transferfile.localfile[i] == L':') + pTransferData->transferfile.localfile.SetAt(i, L'_'); + + pTransferData->nWaitNextOpState= FILETRANSFER_TYPE; + } + } + else + { + DebugAssert(m_pDirectoryListing); + int i; + for (i = 0; i < m_pDirectoryListing->num; i++) + { + if (m_pDirectoryListing->direntry[i].name == pData->FileName1) + { + ShowStatus(IDS_ERRORMSG_NAMEINUSE, FZ_LOG_ERROR); + nReplyError = FZ_REPLY_CRITICALERROR; + break; + } + } + if (i==m_pDirectoryListing->num) + { + pTransferData->transferfile.remotefile = pData->FileName1; + pTransferData->nWaitNextOpState = FILETRANSFER_TYPE; + } + } + break; + case FILEEXISTS_RESUME: + if (pData->size1 >= 0) + { + pTransferData->transferdata.bResume = TRUE; + } + pTransferData->nWaitNextOpState = FILETRANSFER_TYPE; + break; + case FILEEXISTS_COMPLETE: + // Simulating transfer finish + m_Operation.nOpState=FILETRANSFER_WAITFINISH; + TransferFinished(true); + return; // Avoid call to FileTransfer below + } + if (nReplyError == FZ_REPLY_OK) + ResetOperation(FZ_REPLY_OK); + else if (nReplyError) + ResetOperation(FZ_REPLY_ERROR | nReplyError); //Error transferring the file + else + FileTransfer(); } void CFtpControlSocket::SendKeepAliveCommand() { - ShowStatus(L"Sending dummy command to keep session alive.", FZ_LOG_PROGRESS); - m_bKeepAliveActive=TRUE; - //Choose a random command from the list - TCHAR commands[4][7]={_MPT("PWD"),_MPT("REST 0"),_MPT("TYPE A"),_MPT("TYPE I")}; - int choice=(rand()*4)/(RAND_MAX+1); - Send(commands[choice]); + ShowStatus(L"Sending dummy command to keep session alive.", FZ_LOG_PROGRESS); + m_bKeepAliveActive=TRUE; + //Choose a random command from the list + TCHAR commands[4][7]={L"PWD",L"REST 0",L"TYPE A",L"TYPE I"}; + int choice=(rand()*4)/(RAND_MAX+1); + Send(commands[choice]); } void CFtpControlSocket::MakeDir(const CServerPath &path) { - //Directory creation works like this: - //Find existing parent and create subdirs one by one - LogMessage(__FILE__, __LINE__, this, FZ_LOG_DEBUG, _T("MakeDir(\"%s\") OpMode=%d OpState=%d"), path.GetPath(), m_Operation.nOpMode, m_Operation.nOpState); - - if (m_Operation.nOpState == MKD_INIT) - { - ASSERT(!path.IsEmpty()); - ASSERT(m_Operation.nOpMode==CSMODE_NONE); - ASSERT(!m_Operation.pData); - m_Operation.nOpMode = CSMODE_MKDIR; - if (!Send(_MPT("CWD ")+path.GetParent().GetPath())) - return; - CMakeDirData *data = new CMakeDirData; - data->path = path; - data->Current = path.GetParent(); - data->Segments.push_front(path.GetLastSegment()); - m_Operation.pData = data; - m_Operation.nOpState = MKD_FINDPARENT; - } - else if (m_Operation.nOpState==MKD_FINDPARENT) - { - ASSERT(m_Operation.nOpMode==CSMODE_MKDIR); - ASSERT(path.IsEmpty()); - ASSERT(m_Operation.pData); - CMakeDirData *pData=(CMakeDirData *)m_Operation.pData; - int res=GetReplyCode(); - if (res==2 || res==3) - { - m_pOwner->SetCurrentPath(pData->Current); - - m_Operation.nOpState=MKD_MAKESUBDIRS; - pData->Current.AddSubdir(pData->Segments.front()); - CString Segment=pData->Segments.front(); - pData->Segments.pop_front(); - if (Send( _T("MKD ") + Segment)) - m_Operation.nOpState = MKD_CHANGETOSUBDIR; - else - return; - } - else - { - if (!pData->Current.HasParent()) - ResetOperation(FZ_REPLY_ERROR); - else - { - pData->Segments.push_front(pData->Current.GetLastSegment()); - pData->Current=pData->Current.GetParent(); - if (!Send(_MPT("CWD ")+pData->Current.GetPath())) - return; - } - } - } - else if (m_Operation.nOpState==MKD_MAKESUBDIRS) - { - int res=GetReplyCode(); - if (res==2 || res==3) - { //Create dir entry in parent dir - CMakeDirData *pData=(CMakeDirData *)m_Operation.pData; - - ASSERT(!pData->Segments.empty()); - - m_pOwner->SetCurrentPath(pData->Current); - - pData->Current.AddSubdir(pData->Segments.front()); - CString Segment=pData->Segments.front(); - pData->Segments.pop_front(); - if (Send( _T("MKD ") + Segment)) - m_Operation.nOpState=MKD_CHANGETOSUBDIR; - else - return; - } - else - ResetOperation(FZ_REPLY_ERROR); - } - else if (m_Operation.nOpState==MKD_CHANGETOSUBDIR) - { - CMakeDirData *pData=(CMakeDirData *)m_Operation.pData; - int res=GetReplyCode(); - if (res==2 || res==3 || //Creation successful - GetReply() == _T("550 Directory already exists"))//Creation was successful, although someone else did the work for us - { //Create dir entry in parent dir - CServerPath path2=pData->Current; - if (path2.HasParent()) - { - CString name=path2.GetLastSegment(); - path2=path2.GetParent(); - -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - t_directory dir; - cache.Lock(); - BOOL bCached = TRUE; - BOOL res = cache.Lookup(path2, m_CurrentServer,dir); - if (!res) - bCached = FALSE; -#else - t_directory dir; - BOOL res = FALSE; -#endif - if (!res && m_pDirectoryListing) - { - if (m_pDirectoryListing->path == path2) - { - dir = *m_pDirectoryListing; - res = TRUE; - } - } - t_directory WorkingDir; - BOOL bFound = m_pOwner->GetWorkingDir(&WorkingDir); - if (!res && bFound) - if (WorkingDir.path == path2) - { - dir = WorkingDir; - res = TRUE; - } - if (!res) - { - dir.path = path2; - dir.server = m_CurrentServer; - } - - int i; - for (i=0; ipath == dir.path) - { - updated = TRUE; - SetDirectoryListing(&dir, bFound && WorkingDir.path == dir.path); - } - if (!updated) - if (bFound && WorkingDir.path == dir.path) - { - updated = TRUE; - m_pOwner->SetWorkingDir(&dir); - } - } - -#ifndef MPEXT_NO_CACHE - cache.Unlock(); -#endif - } - } - - //Continue operation even if MKD failed, maybe another thread did create this directory for us - if (pData->Segments.empty()) - ResetOperation(FZ_REPLY_OK); - else - { - if (Send( _T("CWD ") + pData->Current.GetPath())) - m_Operation.nOpState=MKD_MAKESUBDIRS; - else - return; - } - } - else - ASSERT(FALSE); + //Directory creation works like this: + //Find existing parent and create subdirs one by one + if (m_Operation.nOpState == MKD_INIT) + { + DebugAssert(!path.IsEmpty()); + DebugAssert(m_Operation.nOpMode==CSMODE_NONE); + DebugAssert(!m_Operation.pData); + m_Operation.nOpMode = CSMODE_MKDIR; + if (!Send(L"CWD "+path.GetParent().GetPath())) + return; + CMakeDirData *data = new CMakeDirData; + data->path = path; + data->Current = path.GetParent(); + data->Segments.push_front(path.GetLastSegment()); + m_Operation.pData = data; + m_Operation.nOpState = MKD_FINDPARENT; + } + else if (m_Operation.nOpState==MKD_FINDPARENT) + { + DebugAssert(m_Operation.nOpMode==CSMODE_MKDIR); + DebugAssert(path.IsEmpty()); + DebugAssert(m_Operation.pData); + CMakeDirData *pData=(CMakeDirData *)m_Operation.pData; + int res=GetReplyCode(); + if (res==2 || res==3) + { + m_pOwner->SetCurrentPath(pData->Current); + + m_Operation.nOpState=MKD_MAKESUBDIRS; + pData->Current.AddSubdir(pData->Segments.front()); + CString Segment=pData->Segments.front(); + pData->Segments.pop_front(); + if (Send( L"MKD " + Segment)) + m_Operation.nOpState = MKD_CHANGETOSUBDIR; + else + return; + } + else + { + if (!pData->Current.HasParent()) + ResetOperation(FZ_REPLY_ERROR); + else + { + pData->Segments.push_front(pData->Current.GetLastSegment()); + pData->Current=pData->Current.GetParent(); + if (!Send(L"CWD "+pData->Current.GetPath())) + return; + } + } + } + else if (m_Operation.nOpState==MKD_MAKESUBDIRS) + { + int res=GetReplyCode(); + if (res==2 || res==3) + { //Create dir entry in parent dir + CMakeDirData *pData=(CMakeDirData *)m_Operation.pData; + + DebugAssert(!pData->Segments.empty()); + + m_pOwner->SetCurrentPath(pData->Current); + + pData->Current.AddSubdir(pData->Segments.front()); + CString Segment=pData->Segments.front(); + pData->Segments.pop_front(); + if (Send( L"MKD " + Segment)) + m_Operation.nOpState=MKD_CHANGETOSUBDIR; + else + return; + } + else + ResetOperation(FZ_REPLY_ERROR); + } + else if (m_Operation.nOpState==MKD_CHANGETOSUBDIR) + { + CMakeDirData *pData=(CMakeDirData *)m_Operation.pData; + int res=GetReplyCode(); + if (res==2 || res==3 || //Creation successful + GetReply() == L"550 Directory already exists")//Creation was successful, although someone else did the work for us + { //Create dir entry in parent dir + CServerPath path2=pData->Current; + if (path2.HasParent()) + { + CString name=path2.GetLastSegment(); + path2=path2.GetParent(); + + t_directory dir; + BOOL res = FALSE; + if (m_pDirectoryListing) + { + if (m_pDirectoryListing->path == path2) + { + dir = *m_pDirectoryListing; + res = TRUE; + } + } + t_directory WorkingDir; + BOOL bFound = m_pOwner->GetWorkingDir(&WorkingDir); + if (!res && bFound) + if (WorkingDir.path == path2) + { + dir = WorkingDir; + res = TRUE; + } + if (!res) + { + dir.path = path2; + dir.server = m_CurrentServer; + } + + int i; + for (i=0; ipath == dir.path) + { + updated = TRUE; + SetDirectoryListing(&dir, bFound && WorkingDir.path == dir.path); + } + if (!updated) + if (bFound && WorkingDir.path == dir.path) + { + updated = TRUE; + m_pOwner->SetWorkingDir(&dir); + } + } + } + } + + //Continue operation even if MKD failed, maybe another thread did create this directory for us + if (pData->Segments.empty()) + ResetOperation(FZ_REPLY_OK); + else + { + if (Send( L"CWD " + pData->Current.GetPath())) + m_Operation.nOpState=MKD_MAKESUBDIRS; + else + return; + } + } + else + DebugFail(); } void CFtpControlSocket::Rename(CString oldName, CString newName, const CServerPath &path, const CServerPath &newPath) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("Rename(\"%s\", \"%s\", \"%s\") OpMode=%d OpState=%d"), oldName, newName, path.GetPath(), - m_Operation.nOpMode, m_Operation.nOpState); - class CRenameData : public CFtpControlSocket::t_operation::COpData - { - public: - CRenameData() {} - virtual ~CRenameData() {} - CString oldName, newName; - CServerPath path; - CServerPath newPath; - }; - if (oldName != _MPT("")) - { - ASSERT(newName != _MPT("")); - ASSERT(!path.IsEmpty()); - ASSERT(m_Operation.nOpMode == CSMODE_NONE); - ASSERT(m_Operation.nOpState == -1); - ASSERT(!m_Operation.pData); - m_Operation.nOpMode = CSMODE_RENAME; - if (!Send(_MPT("RNFR ") + path.FormatFilename(oldName))) - return; - CRenameData *data = new CRenameData; - data->oldName = oldName; - data->newName = newName; - data->path = path; - data->newPath = newPath; - m_Operation.pData = data; - } - else - { - ASSERT(oldName == _MPT("")); - ASSERT(path.IsEmpty()); - ASSERT(m_Operation.nOpMode == CSMODE_RENAME); - ASSERT(m_Operation.pData); - CRenameData *pData = reinterpret_cast(m_Operation.pData); - - if (m_Operation.nOpState == -1) - { - int res = GetReplyCode(); - if (res == 2 || res == 3) - { - m_Operation.nOpState++; - if (pData->newPath.IsEmpty()) - { - if (!Send(_MPT("RNTO ") + pData->path.FormatFilename(((CRenameData *)m_Operation.pData)->newName))) - return; - } - else - if (!Send(_MPT("RNTO ") + pData->newPath.FormatFilename(((CRenameData *)m_Operation.pData)->newName))) - return; - } - else - ResetOperation(FZ_REPLY_ERROR); - } - else - { - int res = GetReplyCode(); - if (res == 2 || res == 3) - { //Rename entry in cached directory - CRenameData *pData = reinterpret_cast(m_Operation.pData); - -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - - cache.Lock(); - - //Rename all references to the directory in the cache - if (pData->newPath.IsEmpty()) - cache.Rename(pData->path, pData->oldName, pData->newName, m_CurrentServer); - - BOOL bCached = TRUE; - t_directory dir; - BOOL res = cache.Lookup(pData->path, m_CurrentServer, dir); - if (!res) - bCached = FALSE; -#else - t_directory dir; - BOOL res = FALSE; -#endif - if (!res && m_pDirectoryListing) - { - if (m_pDirectoryListing->path == pData->path) - { - dir = *m_pDirectoryListing; - res = TRUE; - } - } - t_directory WorkingDir; - BOOL bFound = m_pOwner->GetWorkingDir(&WorkingDir); - if (!res && bFound) - if (WorkingDir.path == pData->path) - { - dir = WorkingDir; - res = TRUE; - } - if (res) - { - for (int i=0; ioldName) - { - if (pData->newPath.IsEmpty()) - { - dir.direntry[i].name = pData->newName; - dir.direntry[i].lName = pData->newName; - dir.direntry[i].lName.MakeLower(); - -#ifndef MPEXT_NO_CACHE - CDirectoryCache cache; - cache.Store(dir, bCached); -#endif - BOOL updated = FALSE; - if (m_pDirectoryListing && m_pDirectoryListing->path == dir.path) - { - updated = TRUE; - SetDirectoryListing(&dir, WorkingDir.path == dir.path); - } - if (!updated) - if (WorkingDir.path == dir.path) - { - updated = TRUE; - m_pOwner->SetWorkingDir(&dir); - } - } - else - { - t_directory::t_direntry oldentry = dir.direntry[i]; - - for (int j = i+1; j < dir.num; j++) - { - dir.direntry[j-1] = dir.direntry[j]; - } - dir.num--; - -#ifndef MPEXT_NO_CACHE - cache.Store(dir, bCached); - - // If directory, delete old directory from cache - t_directory olddir; - res = cache.Lookup(pData->path, pData->oldName, m_CurrentServer, olddir); - if (res) - { - cache.Purge(olddir.path, m_CurrentServer); - t_directory newdir; - if (cache.Lookup(dir.path, m_CurrentServer, newdir)) - dir = newdir; - } -#endif - - BOOL updated = FALSE; - if (m_pDirectoryListing && m_pDirectoryListing->path == dir.path) - { - updated = TRUE; - SetDirectoryListing(&dir, WorkingDir.path == dir.path); - } - if (!updated) - if (WorkingDir.path == dir.path) - { - updated = TRUE; - m_pOwner->SetWorkingDir(&dir); - } - -#ifndef MPEXT_NO_CACHE - BOOL bCached = TRUE; - BOOL res = cache.Lookup(pData->newPath, m_CurrentServer, dir); - if (!res) - bCached = FALSE; -#else - BOOL res = FALSE; -#endif - - if (!res && m_pDirectoryListing) - { - if (m_pDirectoryListing->path == pData->newPath) - { - dir = *m_pDirectoryListing; - res = TRUE; - } - } - t_directory WorkingDir; - BOOL bFound = m_pOwner->GetWorkingDir(&WorkingDir); - if (!res && bFound) - if (WorkingDir.path == pData->newPath) - { - dir = WorkingDir; - res = TRUE; - } - if (res) - { - t_directory::t_direntry *direntry = new t_directory::t_direntry[dir.num + 1]; - for (int i = 0; i < dir.num; i++) - direntry[i] = dir.direntry[i]; - direntry[dir.num] = oldentry; - direntry[dir.num].name = pData->newName; - direntry[dir.num].lName = pData->newName; - direntry[dir.num].lName.MakeLower(); - dir.num++; - delete [] dir.direntry; - dir.direntry = direntry; - -#ifndef MPEXT_NO_CACHE - cache.Store(dir, bCached); -#endif - BOOL updated = FALSE; - if (m_pDirectoryListing && m_pDirectoryListing->path == dir.path) - { - updated = TRUE; - SetDirectoryListing(&dir, bFound && WorkingDir.path == dir.path); - } - if (!updated) - if (bFound && WorkingDir.path == dir.path) - { - updated = TRUE; - m_pOwner->SetWorkingDir(&dir); - } - } - } - break; - } - } -#ifndef MPEXT_NO_CACHE - cache.Unlock(); -#endif - ResetOperation(FZ_REPLY_OK); - } - else - ResetOperation(FZ_REPLY_ERROR); - } - } + class CRenameData : public CFtpControlSocket::t_operation::COpData + { + public: + CRenameData() {} + virtual ~CRenameData() {} + CString oldName, newName; + CServerPath path; + CServerPath newPath; + }; + if (oldName != L"") + { + DebugAssert(newName != L""); + DebugAssert(!path.IsEmpty()); + DebugAssert(m_Operation.nOpMode == CSMODE_NONE); + DebugAssert(m_Operation.nOpState == -1); + DebugAssert(!m_Operation.pData); + m_Operation.nOpMode = CSMODE_RENAME; + if (!Send(L"RNFR " + path.FormatFilename(oldName))) + return; + CRenameData *data = new CRenameData; + data->oldName = oldName; + data->newName = newName; + data->path = path; + data->newPath = newPath; + m_Operation.pData = data; + } + else + { + DebugAssert(oldName == L""); + DebugAssert(path.IsEmpty()); + DebugAssert(m_Operation.nOpMode == CSMODE_RENAME); + DebugAssert(m_Operation.pData); + CRenameData *pData = reinterpret_cast(m_Operation.pData); + + if (m_Operation.nOpState == -1) + { + int res = GetReplyCode(); + if (res == 2 || res == 3) + { + m_Operation.nOpState++; + if (pData->newPath.IsEmpty()) + { + if (!Send(L"RNTO " + pData->path.FormatFilename(((CRenameData *)m_Operation.pData)->newName))) + return; + } + else + if (!Send(L"RNTO " + pData->newPath.FormatFilename(((CRenameData *)m_Operation.pData)->newName))) + return; + } + else + ResetOperation(FZ_REPLY_ERROR); + } + else + { + int res = GetReplyCode(); + if (res == 2 || res == 3) + { //Rename entry in cached directory + CRenameData *pData = reinterpret_cast(m_Operation.pData); + + t_directory dir; + BOOL res = FALSE; + if (m_pDirectoryListing) + { + if (m_pDirectoryListing->path == pData->path) + { + dir = *m_pDirectoryListing; + res = TRUE; + } + } + t_directory WorkingDir; + BOOL bFound = m_pOwner->GetWorkingDir(&WorkingDir); + if (!res && bFound) + if (WorkingDir.path == pData->path) + { + dir = WorkingDir; + res = TRUE; + } + if (res) + { + for (int i=0; ioldName) + { + if (pData->newPath.IsEmpty()) + { + dir.direntry[i].name = pData->newName; + + BOOL updated = FALSE; + if (m_pDirectoryListing && m_pDirectoryListing->path == dir.path) + { + updated = TRUE; + SetDirectoryListing(&dir, WorkingDir.path == dir.path); + } + if (!updated) + if (WorkingDir.path == dir.path) + { + updated = TRUE; + m_pOwner->SetWorkingDir(&dir); + } + } + else + { + t_directory::t_direntry oldentry = dir.direntry[i]; + + for (int j = i+1; j < dir.num; j++) + { + dir.direntry[j-1] = dir.direntry[j]; + } + dir.num--; + + BOOL updated = FALSE; + if (m_pDirectoryListing && m_pDirectoryListing->path == dir.path) + { + updated = TRUE; + SetDirectoryListing(&dir, WorkingDir.path == dir.path); + } + if (!updated) + if (WorkingDir.path == dir.path) + { + updated = TRUE; + m_pOwner->SetWorkingDir(&dir); + } + + BOOL res = FALSE; + if (m_pDirectoryListing) + { + if (m_pDirectoryListing->path == pData->newPath) + { + dir = *m_pDirectoryListing; + res = TRUE; + } + } + t_directory WorkingDir; + BOOL bFound = m_pOwner->GetWorkingDir(&WorkingDir); + if (!res && bFound) + if (WorkingDir.path == pData->newPath) + { + dir = WorkingDir; + res = TRUE; + } + if (res) + { + t_directory::t_direntry *direntry = new t_directory::t_direntry[dir.num + 1]; + for (int i = 0; i < dir.num; i++) + direntry[i] = dir.direntry[i]; + direntry[dir.num] = oldentry; + direntry[dir.num].name = pData->newName; + dir.num++; + delete [] dir.direntry; + dir.direntry = direntry; + + BOOL updated = FALSE; + if (m_pDirectoryListing && m_pDirectoryListing->path == dir.path) + { + updated = TRUE; + SetDirectoryListing(&dir, bFound && WorkingDir.path == dir.path); + } + if (!updated) + if (bFound && WorkingDir.path == dir.path) + { + updated = TRUE; + m_pOwner->SetWorkingDir(&dir); + } + } + } + break; + } + } + ResetOperation(FZ_REPLY_OK); + } + else + ResetOperation(FZ_REPLY_ERROR); + } + } } -#ifndef MPEXT_NO_SSL void CFtpControlSocket::SetVerifyCertResult(int nResult, t_SslCertData *pData) { - ASSERT(pData); - if (!m_pSslLayer) - return; - if (!m_Operation.nOpMode == CSMODE_CONNECT) - return; - m_bCheckForTimeout = TRUE; - m_pSslLayer->SetNotifyReply(pData->priv_data, SSL_VERIFY_CERT, nResult); - m_LastRecvTime = CTime::GetCurrentTime(); + DebugAssert(pData); + if (!m_pSslLayer) + return; + if (!m_Operation.nOpMode == CSMODE_CONNECT) + return; + m_bCheckForTimeout = TRUE; + m_pSslLayer->SetNotifyReply(pData->priv_data, SSL_VERIFY_CERT, nResult); + m_LastRecvTime = CTime::GetCurrentTime(); } -#endif void CFtpControlSocket::OnTimer() { - CheckForTimeout(); - ResumeTransfer(); - if (COptions::GetOptionVal(OPTION_KEEPALIVE)) - { - if (!m_pOwner->IsBusy() && m_pOwner->IsConnected() && !m_bKeepAliveActive) - { - //Getting intervals for the Keep Alive feature - int low=COptions::GetOptionVal(OPTION_INTERVALLOW); - int diff=COptions::GetOptionVal(OPTION_INTERVALHIGH)-low; - - //Choose a new delay -#ifdef MPEXT - int delay=low+(rand()*diff)/RAND_MAX; -#else - static int delay=low+(rand()*diff)/RAND_MAX; -#endif + CheckForTimeout(); + ResumeTransfer(); + if (GetOptionVal(OPTION_KEEPALIVE)) + { + if (!m_pOwner->IsBusy() && m_pOwner->IsConnected() && !m_bKeepAliveActive) + { + //Getting intervals for the Keep Alive feature + int low=GetOptionVal(OPTION_INTERVALLOW); + int diff=GetOptionVal(OPTION_INTERVALHIGH)-low; - CTimeSpan span=CTime::GetCurrentTime()-m_LastSendTime; - if (span.GetTotalSeconds()>=delay) - SendKeepAliveCommand(); - } - } + //Choose a new delay + int delay=low+(rand()*diff)/RAND_MAX; + + CTimeSpan span=CTime::GetCurrentTime()-m_LastSendTime; + if (span.GetTotalSeconds()>=delay) + SendKeepAliveCommand(); + } + } } BOOL CFtpControlSocket::IsReady() { - return !m_bKeepAliveActive; + return !m_bKeepAliveActive; } void CFtpControlSocket::Chmod(CString filename, const CServerPath &path, int nValue) { - m_Operation.nOpMode=CSMODE_CHMOD; - CString str; - str.Format( _T("SITE CHMOD %03d %s"), nValue, path.FormatFilename(filename)); - Send(str); + m_Operation.nOpMode=CSMODE_CHMOD; + CString str; + str.Format( L"SITE CHMOD %03d %s", nValue, path.FormatFilename(filename)); + Send(str); } void CFtpControlSocket::SetAsyncRequestResult(int nAction, CAsyncRequestData *pData) { - switch (pData->nRequestType) - { - case FZ_ASYNCREQUEST_OVERWRITE: - SetFileExistsAction(nAction, (COverwriteRequestData *)pData); - break; -#ifndef MPEXT_NO_SSL - case FZ_ASYNCREQUEST_VERIFYCERT: - SetVerifyCertResult(nAction, ((CVerifyCertRequestData *)pData)->pCertData ); - break; -#endif - case FZ_ASYNCREQUEST_NEEDPASS: - if (m_Operation.nOpMode!=CSMODE_CONNECT || - m_Operation.nOpState != CONNECT_NEEDPASS) - break; - if (!m_RecvBuffer.empty() && m_RecvBuffer.front() != "") - { - DoClose(); - break; - } - if (!nAction) - { - DoClose(FZ_REPLY_CRITICALERROR|FZ_REPLY_CANCEL); - ShowStatus(IDS_ERRORMSG_INTERRUPTED,FZ_LOG_ERROR); - break; - } - else - { - m_bCheckForTimeout = TRUE; - m_CurrentServer.pass=((CNeedPassRequestData *)pData)->Password; - m_Operation.nOpState=((CNeedPassRequestData *)pData)->nOldOpState; - CLogonData *pLogonData = static_cast(m_Operation.pData); - pLogonData->waitForAsyncRequest = false; - pLogonData->gotPassword = true; - LogOnToServer(TRUE); - } - break; + switch (pData->nRequestType) + { + case FZ_ASYNCREQUEST_OVERWRITE: + SetFileExistsAction(nAction, (COverwriteRequestData *)pData); + break; + case FZ_ASYNCREQUEST_VERIFYCERT: + SetVerifyCertResult(nAction, ((CVerifyCertRequestData *)pData)->pCertData ); + break; + case FZ_ASYNCREQUEST_NEEDPASS: + if (m_Operation.nOpMode!=CSMODE_CONNECT || + m_Operation.nOpState != CONNECT_NEEDPASS) + break; + if (!m_RecvBuffer.empty() && m_RecvBuffer.front() != "") + { + DoClose(); + break; + } + if (!nAction) + { + DoClose(FZ_REPLY_CRITICALERROR|FZ_REPLY_CANCEL); + ShowStatus(IDS_ERRORMSG_INTERRUPTED,FZ_LOG_ERROR); + break; + } + else + { + m_bCheckForTimeout = TRUE; + m_CurrentServer.pass=((CNeedPassRequestData *)pData)->Password; + m_Operation.nOpState=((CNeedPassRequestData *)pData)->nOldOpState; + CLogonData *pLogonData = static_cast(m_Operation.pData); + pLogonData->waitForAsyncRequest = false; + pLogonData->gotPassword = true; + LogOnToServer(TRUE); + } + break; #ifndef MPEXT_NO_GSS - case FZ_ASYNCREQUEST_GSS_AUTHFAILED: - if (m_Operation.nOpMode!=CSMODE_CONNECT || m_Operation.nOpState!=CONNECT_GSS_FAILED) - break; - if (!m_RecvBuffer.empty() && m_RecvBuffer.front() != "") - { - DoClose(); - break; - } - if (!nAction) - { - DoClose(FZ_REPLY_CRITICALERROR|FZ_REPLY_CANCEL); - ShowStatus(IDS_ERRORMSG_INTERRUPTED,FZ_LOG_ERROR); - break; - } - m_bCheckForTimeout = TRUE; - m_Operation.nOpState=-1; - LogOnToServer(TRUE); - break; - case FZ_ASYNCREQUEST_GSS_NEEDPASS: - if (m_Operation.nOpMode!=CSMODE_CONNECT || - m_Operation.nOpState != CONNECT_GSS_NEEDPASS) - break; - if (!m_RecvBuffer.empty() && m_RecvBuffer.front() != "") - { - DoClose(); - break; - } - if (!nAction) - { - DoClose(FZ_REPLY_CRITICALERROR|FZ_REPLY_CANCEL); - ShowStatus(IDS_ERRORMSG_INTERRUPTED,FZ_LOG_ERROR); - break; - } - else - { - m_bCheckForTimeout = TRUE; - m_CurrentServer.pass=((CGssNeedPassRequestData *)pData)->pass; - m_Operation.nOpState=((CGssNeedPassRequestData *)pData)->nOldOpState; - LogOnToServer(TRUE); - } - break; - case FZ_ASYNCREQUEST_GSS_NEEDUSER: - if (m_Operation.nOpMode != CSMODE_CONNECT || - m_Operation.nOpState != CONNECT_GSS_NEEDUSER) - break; - if (!m_RecvBuffer.empty() && m_RecvBuffer.front() != "") - { - DoClose(); - break; - } - if (!nAction) - { - DoClose(FZ_REPLY_CRITICALERROR | FZ_REPLY_CANCEL); - ShowStatus(IDS_ERRORMSG_INTERRUPTED, FZ_LOG_ERROR); - break; - } - else - { - m_bCheckForTimeout = TRUE; - m_CurrentServer.user = ((CGssNeedUserRequestData *)pData)->user; - m_Operation.nOpState=((CGssNeedUserRequestData *)pData)->nOldOpState; - LogOnToServer(TRUE); - } - break; + case FZ_ASYNCREQUEST_GSS_AUTHFAILED: + if (m_Operation.nOpMode!=CSMODE_CONNECT || m_Operation.nOpState!=CONNECT_GSS_FAILED) + break; + if (!m_RecvBuffer.empty() && m_RecvBuffer.front() != "") + { + DoClose(); + break; + } + if (!nAction) + { + DoClose(FZ_REPLY_CRITICALERROR|FZ_REPLY_CANCEL); + ShowStatus(IDS_ERRORMSG_INTERRUPTED,FZ_LOG_ERROR); + break; + } + m_bCheckForTimeout = TRUE; + m_Operation.nOpState=-1; + LogOnToServer(TRUE); + break; + case FZ_ASYNCREQUEST_GSS_NEEDPASS: + if (m_Operation.nOpMode!=CSMODE_CONNECT || + m_Operation.nOpState != CONNECT_GSS_NEEDPASS) + break; + if (!m_RecvBuffer.empty() && m_RecvBuffer.front() != "") + { + DoClose(); + break; + } + if (!nAction) + { + DoClose(FZ_REPLY_CRITICALERROR|FZ_REPLY_CANCEL); + ShowStatus(IDS_ERRORMSG_INTERRUPTED,FZ_LOG_ERROR); + break; + } + else + { + m_bCheckForTimeout = TRUE; + m_CurrentServer.pass=((CGssNeedPassRequestData *)pData)->pass; + m_Operation.nOpState=((CGssNeedPassRequestData *)pData)->nOldOpState; + LogOnToServer(TRUE); + } + break; + case FZ_ASYNCREQUEST_GSS_NEEDUSER: + if (m_Operation.nOpMode != CSMODE_CONNECT || + m_Operation.nOpState != CONNECT_GSS_NEEDUSER) + break; + if (!m_RecvBuffer.empty() && m_RecvBuffer.front() != "") + { + DoClose(); + break; + } + if (!nAction) + { + DoClose(FZ_REPLY_CRITICALERROR | FZ_REPLY_CANCEL); + ShowStatus(IDS_ERRORMSG_INTERRUPTED, FZ_LOG_ERROR); + break; + } + else + { + m_bCheckForTimeout = TRUE; + m_CurrentServer.user = ((CGssNeedUserRequestData *)pData)->user; + m_Operation.nOpState=((CGssNeedUserRequestData *)pData)->nOldOpState; + LogOnToServer(TRUE); + } + break; #endif - default: - LogMessage(__FILE__, __LINE__, this,FZ_LOG_WARNING, _T("Unknown request reply %d"), pData->nRequestType); - break; - } + default: + LogMessage(FZ_LOG_WARNING, L"Unknown request reply %d", pData->nRequestType); + break; + } } int CFtpControlSocket::OnLayerCallback(std::list& callbacks) { - for (std::list::iterator iter = callbacks.begin(); iter != callbacks.end(); iter++) - { - if (iter->nType == LAYERCALLBACK_STATECHANGE) - { - if (CAsyncSocketEx::LogStateChange(iter->nParam1, iter->nParam2)) - { -#ifndef MPEXT_NO_SSL - if (iter->pLayer == m_pSslLayer) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_INFO, _T("TLS layer changed state from %s to %s"), CAsyncSocketEx::GetStateDesc(iter->nParam2), CAsyncSocketEx::GetStateDesc(iter->nParam1)); - delete [] iter->str; - continue; - } - } -#endif - } - else if (iter->nType == LAYERCALLBACK_LAYERSPECIFIC) - { -#ifndef MPEXT_NO_SSL - if (iter->pLayer == m_pSslLayer) - { - USES_CONVERSION; - - switch (iter->nParam1) - { - case SSL_INFO: - switch (iter->nParam2) - { - case SSL_INFO_ESTABLISHED: - ShowStatus(IDS_STATUSMSG_SSLESTABLISHED, FZ_LOG_STATUS); - PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_SECURESERVER, 1), 0); - if (m_Operation.nOpState == CONNECT_SSL_WAITDONE) - { - LogOnToServer(); - } - break; - } - break; - case SSL_FAILURE: - switch (iter->nParam2) - { - case SSL_FAILURE_UNKNOWN: - ShowStatus(IDS_ERRORMSG_UNKNOWNSSLERROR, FZ_LOG_ERROR); - break; - case SSL_FAILURE_ESTABLISH: - ShowStatus(IDS_ERRORMSG_CANTESTABLISHSSLCONNECTION, FZ_LOG_ERROR); - break; - case SSL_FAILURE_INITSSL: - ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR); - break; - case SSL_FAILURE_VERIFYCERT: - ShowStatus(IDS_ERRORMSG_SSLCERTIFICATEERROR, FZ_LOG_ERROR); - break; - case SSL_FAILURE_CERTREJECTED: - ShowStatus(IDS_ERRORMSG_CERTREJECTED, FZ_LOG_ERROR); - m_bDidRejectCertificate = TRUE; - break; - } - TriggerEvent(FD_CLOSE); - break; - case SSL_VERBOSE_INFO: - LogMessageRaw(FZ_LOG_INFO, A2CT(iter->str)); - break; - case SSL_VERBOSE_WARNING: - LogMessageRaw(FZ_LOG_WARNING, A2CT(iter->str)); - break; - case SSL_VERIFY_CERT: - t_SslCertData *pData = new t_SslCertData; - LPTSTR CertError = NULL; - if (m_pSslLayer->GetPeerCertificateData(*pData, CertError)) - { - CVerifyCertRequestData *pRequestData = new CVerifyCertRequestData; - pRequestData->nRequestID=m_pOwner->GetNextAsyncRequestID(); - - pRequestData->pCertData = pData; - - if (!PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_VERIFYCERT), (LPARAM)pRequestData)) - { - delete pRequestData->pCertData; - delete pRequestData; - ResetOperation(FZ_REPLY_ERROR); - } - else - { - m_bCheckForTimeout = FALSE; - } - delete [] iter->str; - continue; - } - else - { - delete pData; - delete [] iter->str; - CString str; - str.Format(TLS_CERT_DECODE_ERROR, CertError); - ShowStatus(str, FZ_LOG_ERROR); - ResetOperation(FZ_REPLY_ERROR); - continue; - } - break; - } - delete [] iter->str; - continue; - } + for (std::list::iterator iter = callbacks.begin(); iter != callbacks.end(); iter++) + { + if (iter->nType == LAYERCALLBACK_STATECHANGE) + { + if (CAsyncSocketEx::LogStateChange(iter->nParam1, iter->nParam2)) + { + const TCHAR * state2Desc = CAsyncSocketEx::GetStateDesc(iter->nParam2); + const TCHAR * state1Desc = CAsyncSocketEx::GetStateDesc(iter->nParam1); + if (iter->pLayer == m_pProxyLayer) + LogMessage(FZ_LOG_INFO, L"Proxy layer changed state from %s to %s", state2Desc, state1Desc); #ifndef MPEXT_NO_GSS - else + else if (iter->pLayer == m_pGssLayer) + LogMessage(FZ_LOG_INFO, L"m_pGssLayer changed state from %s to %s", state2Desc, state1Desc); #endif + else if (iter->pLayer == m_pSslLayer) + { + delete [] iter->str; + LogMessage(FZ_LOG_INFO, L"TLS layer changed state from %s to %s", state2Desc, state1Desc); + } + else + LogMessage(FZ_LOG_INFO, L"Layer @ %d changed state from %s to %s", iter->pLayer, state2Desc, state1Desc); + } + } + else if (iter->nType == LAYERCALLBACK_LAYERSPECIFIC) + { + USES_CONVERSION; + if (iter->pLayer == m_pProxyLayer) + { + switch (iter->nParam1) + { + case PROXYERROR_NOERROR: + ShowStatus(IDS_PROXY_CONNECTED, FZ_LOG_STATUS); + break; + case PROXYERROR_NOCONN: + ShowStatus(IDS_ERRORMSG_PROXY_NOCONN, FZ_LOG_ERROR); + break; + case PROXYERROR_REQUESTFAILED: + ShowStatus(IDS_ERRORMSG_PROXY_REQUESTFAILED, FZ_LOG_ERROR); + if (iter->str) + ShowStatus(A2T(iter->str), FZ_LOG_ERROR); + break; + case PROXYERROR_AUTHTYPEUNKNOWN: + ShowStatus(IDS_ERRORMSG_PROXY_AUTHTYPEUNKNOWN, FZ_LOG_ERROR); + break; + case PROXYERROR_AUTHFAILED: + ShowStatus(IDS_ERRORMSG_PROXY_AUTHFAILED, FZ_LOG_ERROR); + break; + case PROXYERROR_AUTHNOLOGON: + ShowStatus(IDS_ERRORMSG_PROXY_AUTHNOLOGON, FZ_LOG_ERROR); + break; + case PROXYERROR_CANTRESOLVEHOST: + ShowStatus(IDS_ERRORMSG_PROXY_CANTRESOLVEHOST, FZ_LOG_ERROR); + break; + default: + LogMessage(FZ_LOG_WARNING, L"Unknown proxy error" ); + } + } +#ifndef MPEXT_NO_GSS + else if (iter->pLayer == m_pGssLayer) + { + switch (iter->nParam1) + { + case GSS_INFO: + LogMessageRaw(FZ_LOG_INFO, A2CT(iter->str)); + break; + case GSS_ERROR: + LogMessageRaw(FZ_LOG_APIERROR, A2CT(iter->str)); + break; + case GSS_COMMAND: + ShowStatus(A2CT(iter->str), FZ_LOG_COMMAND); + break; + case GSS_REPLY: + ShowStatus(A2CT(iter->str), FZ_LOG_REPLY); + break; + } + } #endif + else if (iter->pLayer == m_pSslLayer) + { + USES_CONVERSION; + + switch (iter->nParam1) + { + case SSL_INFO: + switch (iter->nParam2) + { + case SSL_INFO_ESTABLISHED: + ShowStatus(IDS_STATUSMSG_SSLESTABLISHED, FZ_LOG_STATUS); + if (m_Operation.nOpState == CONNECT_SSL_WAITDONE) + { + LogOnToServer(); + } + break; + } + break; + case SSL_FAILURE: + switch (iter->nParam2) + { + case SSL_FAILURE_UNKNOWN: + ShowStatus(IDS_ERRORMSG_UNKNOWNSSLERROR, FZ_LOG_ERROR); + break; + case SSL_FAILURE_ESTABLISH: + ShowStatus(IDS_ERRORMSG_CANTESTABLISHSSLCONNECTION, FZ_LOG_ERROR); + break; + case SSL_FAILURE_INITSSL: + ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR); + break; + case SSL_FAILURE_VERIFYCERT: + ShowStatus(IDS_ERRORMSG_SSLCERTIFICATEERROR, FZ_LOG_ERROR); + break; + case SSL_FAILURE_CERTREJECTED: + ShowStatus(IDS_ERRORMSG_CERTREJECTED, FZ_LOG_ERROR); + m_bDidRejectCertificate = TRUE; + break; + } + TriggerEvent(FD_CLOSE); + break; + case SSL_VERIFY_CERT: + t_SslCertData *pData = new t_SslCertData; + LPTSTR CertError = NULL; + if (m_pSslLayer->GetPeerCertificateData(*pData, CertError)) + { + CVerifyCertRequestData *pRequestData = new CVerifyCertRequestData; + pRequestData->nRequestID=m_pOwner->GetNextAsyncRequestID(); + + pRequestData->pCertData = pData; + + if (!GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_ASYNCREQUEST, FZ_ASYNCREQUEST_VERIFYCERT), (LPARAM)pRequestData)) + { + delete pRequestData->pCertData; + delete pRequestData; + ResetOperation(FZ_REPLY_ERROR); + } + else + { + m_bCheckForTimeout = FALSE; + } + delete [] iter->str; + continue; + } + else + { + delete pData; + delete [] iter->str; + CString str; + str.Format(TLS_CERT_DECODE_ERROR, CertError); + ShowStatus(str, FZ_LOG_ERROR); + ResetOperation(FZ_REPLY_ERROR); + continue; + } + break; + } + delete [] iter->str; + continue; + } #ifndef MPEXT_NO_GSS - if (iter->pLayer == m_pGssLayer) - { - if (iter->nParam1 == GSS_AUTHCOMPLETE || - iter->nParam1 == GSS_AUTHFAILED) - { - LogOnToServer(TRUE); - delete [] iter->str; - continue; - } - } + else + if (iter->pLayer == m_pGssLayer) + { + if (iter->nParam1 == GSS_AUTHCOMPLETE || + iter->nParam1 == GSS_AUTHFAILED) + { + LogOnToServer(TRUE); + delete [] iter->str; + continue; + } + } #endif - } - std::list tmp; - tmp.push_back(*iter); - CControlSocket::OnLayerCallback(tmp); - } - return 0; + } + delete [] iter->str; + } + return 0; +} + +_int64 CFtpControlSocket::GetSpeedLimit(CTime &time, int valType, int valValue) +{ + int type = GetOptionVal(valType); + + if ( type == 1) + return ( _int64)GetOptionVal(valValue) * 1024; + + return ( _int64)1000000000000; // I hope that when there will be something with 1000GB/s then I'll change it :) +} + +_int64 CFtpControlSocket::GetSpeedLimit(enum transferDirection direction, CTime &time) +{ + if (direction == download) + return GetSpeedLimit(time, OPTION_SPEEDLIMIT_DOWNLOAD_TYPE, OPTION_SPEEDLIMIT_DOWNLOAD_VALUE); + else + return GetSpeedLimit(time, OPTION_SPEEDLIMIT_UPLOAD_TYPE, OPTION_SPEEDLIMIT_UPLOAD_VALUE); + return ( _int64)1000000000000; +} + +_int64 CFtpControlSocket::GetAbleToUDSize( bool &beenWaiting, CTime &curTime, _int64 &curLimit, std::list::iterator &iter, enum transferDirection direction, int nBufSize) +{ + beenWaiting = false; + + CTime nowTime = CTime::GetCurrentTime(); + _int64 ableToRead = BUFSIZE; + + if ( nowTime == curTime) + { + ableToRead = iter->nBytesAvailable; + + if (ableToRead <= 0) + { + // we should wait till next second + nowTime = CTime::GetCurrentTime(); + + while (nowTime == curTime && !iter->nBytesAvailable) + { + if (beenWaiting) + { + //Check if there are other commands in the command queue. + MSG msg; + if (PeekMessage(&msg, 0, m_pOwner->m_nInternalMessageID, m_pOwner->m_nInternalMessageID, PM_NOREMOVE)) + { + LogMessage(FZ_LOG_INFO, L"Message waiting in queue, resuming later"); + return 0; + } + } + m_SpeedLimitSync.Unlock(); + Sleep(100); + m_SpeedLimitSync.Lock(); + nowTime = CTime::GetCurrentTime(); + beenWaiting = true; + + // Since we didn't hold the critical section for some time, we have to renew the iterator + for (iter = m_InstanceList[direction].begin(); iter != m_InstanceList[direction].end(); iter++) + if (iter->pOwner == this) + break; + if (iter == m_InstanceList[direction].end()) + return 0; + } + } + ableToRead = iter->nBytesAvailable; + } + + if (nowTime != curTime) + { + if (ableToRead > 0) + ableToRead = 0; + + curLimit = GetSpeedLimit(direction, curTime); + __int64 nMax = curLimit / m_InstanceList[direction].size(); + _int64 nLeft = 0; + int nCount = 0; + std::list::iterator iter2; + for (iter2 = m_InstanceList[direction].begin(); iter2 != m_InstanceList[direction].end(); iter2++) + { + if (iter2->nBytesAvailable>0) + { + nLeft += iter2->nBytesAvailable; + iter2->nBytesTransferred = 1; + } + else + { + nCount++; + iter2->nBytesTransferred = 0; + } + iter2->nBytesAvailable = nMax; + } + if (nLeft && nCount) + { + nMax = nLeft / nCount; + for (iter2 = m_InstanceList[direction].begin(); iter2 != m_InstanceList[direction].end(); iter2++) + { + if (!iter2->nBytesTransferred) + iter2->nBytesAvailable += nMax; + else + iter2->nBytesTransferred = 0; + } + } + ableToRead = iter->nBytesAvailable; + } + + curTime = nowTime; + + if (!nBufSize) + nBufSize = BUFSIZE; + if (ableToRead > nBufSize) + ableToRead = nBufSize; + + return ableToRead; +} + +_int64 CFtpControlSocket::GetAbleToTransferSize(enum transferDirection direction, bool &beenWaiting, int nBufSize) +{ + m_SpeedLimitSync.Lock(); + std::list::iterator iter; + for (iter = m_InstanceList[direction].begin(); iter != m_InstanceList[direction].end(); iter++) + if (iter->pOwner == this) + break; + if (iter == m_InstanceList[direction].end()) + { + t_ActiveList item; + CTime time = CTime::GetCurrentTime(); + item.nBytesAvailable = GetSpeedLimit(direction, time) / (m_InstanceList[direction].size() + 1); + item.nBytesTransferred = 0; + item.pOwner = this; + m_InstanceList[direction].push_back(item); + iter = m_InstanceList[direction].end(); + iter--; + } + _int64 limit = GetAbleToUDSize(beenWaiting, m_CurrentTransferTime[direction], m_CurrentTransferLimit[direction], iter, direction, nBufSize); + m_SpeedLimitSync.Unlock(); + return limit; +} + +BOOL CFtpControlSocket::RemoveActiveTransfer() +{ + BOOL bFound = FALSE; + m_SpeedLimitSync.Lock(); + std::list::iterator iter; + for (int i = 0; i < 2; i++) + { + for (iter = m_InstanceList[i].begin(); iter != m_InstanceList[i].end(); iter++) + if (iter->pOwner == this) + { + m_InstanceList[i].erase(iter); + bFound = TRUE; + break; + } + } + m_SpeedLimitSync.Unlock(); + return bFound; +} + +BOOL CFtpControlSocket::SpeedLimitAddTransferredBytes(enum transferDirection direction, _int64 nBytesTransferred) +{ + m_SpeedLimitSync.Lock(); + std::list::iterator iter; + for (iter = m_InstanceList[direction].begin(); iter != m_InstanceList[direction].end(); iter++) + if (iter->pOwner == this) + { + if (iter->nBytesAvailable > nBytesTransferred) + iter->nBytesAvailable -= nBytesTransferred; + else + iter->nBytesAvailable = 0; + iter->nBytesTransferred += nBytesTransferred; + m_SpeedLimitSync.Unlock(); + return TRUE; + } + m_SpeedLimitSync.Unlock(); + return FALSE; +} + +CString CFtpControlSocket::ConvertDomainName(CString domain) +{ + USES_CONVERSION; + + LPCWSTR buffer = T2CW(domain); + + char *utf8 = new char[wcslen(buffer) * 2 + 2]; + if (!WideCharToMultiByte(CP_UTF8, 0, buffer, -1, utf8, wcslen(buffer) * 2 + 2, 0, 0)) + { + delete [] utf8; + LogMessage(FZ_LOG_WARNING, L"Could not convert domain name"); + return domain; + } + + char *output = 0; + output = strdup(utf8); + delete [] utf8; + + CString result = A2T(output); + free(output); + return result; +} + +void CFtpControlSocket::LogSocketMessageRaw(int nMessageType, LPCTSTR pMsg) +{ + LogMessageRaw(nMessageType, pMsg); +} + +bool CFtpControlSocket::LoggingSocketMessage(int nMessageType) +{ + return LoggingMessageType(nMessageType); } BOOL CFtpControlSocket::ParsePwdReply(CString& rawpwd) { - CServerPath realPath; - BOOL Result = ParsePwdReply(rawpwd, realPath); - if (Result) - { - m_pOwner->SetCurrentPath(realPath); - } - return Result; + CServerPath realPath; + BOOL Result = ParsePwdReply(rawpwd, realPath); + if (Result) + { + m_pOwner->SetCurrentPath(realPath); + } + return Result; } BOOL CFtpControlSocket::ParsePwdReply(CString& rawpwd, CServerPath & realPath) { - CListData *pData = static_cast(m_Operation.pData); - ASSERT(pData); - - int pos1 = rawpwd.Find(_MPT('"')); - int pos2 = rawpwd.ReverseFind(_MPT('"')); - if (pos1 == -1 || pos2 == -1 || pos1 >= pos2) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("No quoted path found, try using first token as path")); - pos1 = rawpwd.Find(_MPT(' ')); - if (pos1 != -1) - { - pos2 = rawpwd.Find(_MPT(' '), pos1 + 1); - if (pos2 == -1) - pos2 = rawpwd.GetLength(); - } - - if (pos1 == -1) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Can't parse path!")); - ResetOperation(FZ_REPLY_ERROR); - return FALSE; - } - } - rawpwd = rawpwd.Mid(pos1 + 1, pos2 - pos1 - 1); - - realPath = m_pOwner->GetCurrentPath(); - realPath.SetServer(m_CurrentServer); - if (!realPath.SetPath(rawpwd)) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Can't parse path!")); - ResetOperation(FZ_REPLY_ERROR); - return FALSE; - } - - return TRUE; + CListData *pData = static_cast(m_Operation.pData); + DebugAssert(pData); + + int pos1 = rawpwd.Find(L'"'); + int pos2 = rawpwd.ReverseFind(L'"'); + if (pos1 == -1 || pos2 == -1 || pos1 >= pos2) + { + LogMessage(FZ_LOG_WARNING, L"No quoted path found, try using first token as path"); + pos1 = rawpwd.Find(L' '); + if (pos1 != -1) + { + pos2 = rawpwd.Find(L' ', pos1 + 1); + if (pos2 == -1) + pos2 = rawpwd.GetLength(); + } + + if (pos1 == -1) + { + LogMessage(FZ_LOG_WARNING, L"Can't parse path!"); + ResetOperation(FZ_REPLY_ERROR); + return FALSE; + } + } + rawpwd = rawpwd.Mid(pos1 + 1, pos2 - pos1 - 1); + + realPath = m_pOwner->GetCurrentPath(); + realPath.SetServer(m_CurrentServer); + if (!realPath.SetPath(rawpwd)) + { + LogMessage(FZ_LOG_WARNING, L"Can't parse path!"); + ResetOperation(FZ_REPLY_ERROR); + return FALSE; + } + + return TRUE; } void CFtpControlSocket::DiscardLine(CStringA line) { - if (m_Operation.nOpMode == CSMODE_CONNECT && m_Operation.nOpState == CONNECT_FEAT) - { - line.MakeUpper(); - while (line.Left(1) == " ") - { - line = line.Mid(1, line.GetLength() - 1); - } + if (m_Operation.nOpMode == CSMODE_CONNECT && m_Operation.nOpState == CONNECT_FEAT) + { + line.MakeUpper(); + while (line.Left(1) == " ") + { + line = line.Mid(1, line.GetLength() - 1); + } #ifndef MPEXT_NO_ZLIB - if (line == _MPAT("MODE Z") || line.Left(7) == _MPAT("MODE Z ")) - m_zlibSupported = true; - else -#endif - if (line == _MPAT("UTF8") && m_CurrentServer.nUTF8 != 2) - m_bAnnouncesUTF8 = true; - else if (line == _MPAT("CLNT") || line.Left(5) == _MPAT("CLNT ")) - m_hasClntCmd = true; -#ifdef MPEXT - else if (line == _MPAT("MLSD")) - { - m_serverCapabilities.SetCapability(mlsd_command, yes); - } - else if (line == _MPAT("MDTM")) - { - m_serverCapabilities.SetCapability(mdtm_command, yes); - } - else if (line == _MPAT("SIZE")) - { - m_serverCapabilities.SetCapability(size_command, yes); - } - else if (line.Left(4) == _MPAT("MLST")) - { - USES_CONVERSION; - std::string facts; - if (line.GetLength() > 5) - { - facts = (LPCSTR)line.Mid(5, line.GetLength() - 5); - } - m_serverCapabilities.SetCapability(mlsd_command, yes, facts); - } - else if (line == _MPAT("MFMT")) - { - m_serverCapabilities.SetCapability(mfmt_command, yes); - } -#endif - } -#ifdef MPEXT - else if (m_Operation.nOpMode == CSMODE_LISTFILE) - { - m_ListFile = line; - } + if (line == "MODE Z" || line.Left(7) == "MODE Z ") + m_zlibSupported = true; + else #endif + if (line == "UTF8" && m_CurrentServer.nUTF8 != 2) + m_bAnnouncesUTF8 = true; + else if (line == "CLNT" || line.Left(5) == "CLNT ") + m_hasClntCmd = true; + else if (line == "MLSD") + { + m_serverCapabilities.SetCapability(mlsd_command, yes); + } + else if (line == "MDTM") + { + m_serverCapabilities.SetCapability(mdtm_command, yes); + } + else if (line == "SIZE") + { + m_serverCapabilities.SetCapability(size_command, yes); + } + else if (line.Left(4) == "MLST") + { + USES_CONVERSION; + std::string facts; + if (line.GetLength() > 5) + { + facts = (LPCSTR)line.Mid(5, line.GetLength() - 5); + } + m_serverCapabilities.SetCapability(mlsd_command, yes, facts); + } + else if (line == "MFMT") + { + m_serverCapabilities.SetCapability(mfmt_command, yes); + } + } + else if (m_Operation.nOpMode == CSMODE_LISTFILE) + { + m_ListFile = line; + } } bool CFtpControlSocket::NeedModeCommand() { #ifdef MPEXT_NO_ZLIB - return false; + return false; #else - bool useZlib; - if (m_Operation.nOpMode == CSMODE_LIST || (m_Operation.nOpMode == CSMODE_TRANSFER && m_Operation.nOpMode <= FILETRANSFER_TYPE)) - useZlib = COptions::GetOptionVal(OPTION_MODEZ_USE) != 0; - else - useZlib = COptions::GetOptionVal(OPTION_MODEZ_USE) > 1; + bool useZlib; + if (m_Operation.nOpMode == CSMODE_LIST || (m_Operation.nOpMode == CSMODE_TRANSFER && m_Operation.nOpMode <= FILETRANSFER_TYPE)) + useZlib = GetOptionVal(OPTION_MODEZ_USE) != 0; + else + useZlib = GetOptionVal(OPTION_MODEZ_USE) > 1; - if (!m_useZlib && !m_zlibSupported) - return false; + if (!m_useZlib && !m_zlibSupported) + return false; - return m_useZlib != useZlib; + return m_useZlib != useZlib; #endif } bool CFtpControlSocket::NeedOptsCommand() { #ifndef MPEXT_NO_ZLIB - if (!m_useZlib) + if (!m_useZlib) #endif - return false; + return false; #ifndef MPEXT_NO_ZLIB - return m_zlibLevel != COptions::GetOptionVal(OPTION_MODEZ_LEVEL); + return m_zlibLevel != GetOptionVal(OPTION_MODEZ_LEVEL); #endif } CString CFtpControlSocket::GetReply() { - if (m_RecvBuffer.empty()) - return _MPT(""); - - USES_CONVERSION; - - LPCSTR line = (LPCSTR)m_RecvBuffer.front(); - if (m_bUTF8) - { - // convert from UTF-8 to ANSI - LPCSTR utf8 = (LPCSTR)m_RecvBuffer.front(); - if (m_Operation.nOpMode&CSMODE_LISTFILE && m_Operation.nOpState==LISTFILE_MLST) - { - if (GetReplyCode() == 2) - line = (LPCSTR)m_ListFile; - } - if (!utf8_valid((const unsigned char*)line, strlen(line))) - { - if (m_CurrentServer.nUTF8 != 1) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Server does not send proper UTF-8, falling back to local charset")); - m_bUTF8 = false; - } - return A2CT(line); - } - - // convert from UTF-8 to ANSI - int len = MultiByteToWideChar(CP_UTF8, 0, line, -1, NULL, 0); - if (!len) - { - m_RecvBuffer.pop_front(); - if (m_RecvBuffer.empty()) - m_RecvBuffer.push_back(""); - return _MPT(""); - } - else - { - LPWSTR p1 = new WCHAR[len + 1]; - MultiByteToWideChar(CP_UTF8, 0, line, -1 , (LPWSTR)p1, len + 1); - CString reply = W2CT(p1); - delete [] p1; - return reply; - } - } - else - return A2CT(line); + if (m_RecvBuffer.empty()) + return L""; + + USES_CONVERSION; + + LPCSTR line; + + if ((m_Operation.nOpMode&CSMODE_LISTFILE) && (m_Operation.nOpState==LISTFILE_MLST) && + (GetReplyCode() == 2)) + { + // this is probably never used anyway + line = (LPCSTR)m_ListFile; + } + else + { + line = (LPCSTR)m_RecvBuffer.front(); + } + + if (m_bUTF8) + { + // convert from UTF-8 to ANSI + if (DetectUTF8Encoding(RawByteString(line)) == etANSI) + { + if (m_CurrentServer.nUTF8 != 1) + { + LogMessage(FZ_LOG_WARNING, L"Server does not send proper UTF-8, falling back to local charset"); + m_bUTF8 = false; + } + return A2CT(line); + } + + // convert from UTF-8 to ANSI + int len = MultiByteToWideChar(CP_UTF8, 0, line, -1, NULL, 0); + if (!len) + { + m_RecvBuffer.pop_front(); + if (m_RecvBuffer.empty()) + m_RecvBuffer.push_back(""); + return L""; + } + else + { + LPWSTR p1 = new WCHAR[len + 1]; + MultiByteToWideChar(CP_UTF8, 0, line, -1 , (LPWSTR)p1, len + 1); + CString reply = W2CT(p1); + delete [] p1; + return reply; + } + } + else + return A2CT(line); } void CFtpControlSocket::OnSend(int nErrorCode) { - if (!m_sendBufferLen || !m_sendBuffer || m_awaitsReply) - return; - - int res = CAsyncSocketEx::Send(m_sendBuffer, m_sendBufferLen); - if (res == -1) - { - if (GetLastError() != WSAEWOULDBLOCK) - { - ShowStatus(IDS_ERRORMSG_CANTSENDCOMMAND, FZ_LOG_ERROR); - DoClose(); - } - return; - } - if (!res) - { - ShowStatus(IDS_ERRORMSG_CANTSENDCOMMAND, FZ_LOG_ERROR); - DoClose(); - } - - m_awaitsReply = true; - m_LastSendTime = CTime::GetCurrentTime(); - PostMessage(m_pOwner->m_hOwnerWnd, m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_SOCKETSTATUS, FZ_SOCKETSTATUS_SEND), 0); - - if (res == m_sendBufferLen) - { - delete [] m_sendBuffer; - m_sendBuffer = 0; - m_sendBufferLen = 0; - } - else - { - char* tmp = new char[m_sendBufferLen - res]; - memcpy(tmp, m_sendBuffer + res, m_sendBufferLen - res); - delete [] m_sendBuffer; - m_sendBuffer = tmp; - m_sendBufferLen -= res; - } + if (!m_sendBufferLen || !m_sendBuffer || m_awaitsReply) + return; + + int res = CAsyncSocketEx::Send(m_sendBuffer, m_sendBufferLen); + if (res == -1) + { + if (GetLastError() != WSAEWOULDBLOCK) + { + ShowStatus(IDS_ERRORMSG_CANTSENDCOMMAND, FZ_LOG_ERROR); + DoClose(); + } + return; + } + if (!res) + { + ShowStatus(IDS_ERRORMSG_CANTSENDCOMMAND, FZ_LOG_ERROR); + DoClose(); + } + + m_awaitsReply = true; + m_LastSendTime = CTime::GetCurrentTime(); + + if (res == m_sendBufferLen) + { + delete [] m_sendBuffer; + m_sendBuffer = 0; + m_sendBufferLen = 0; + } + else + { + char* tmp = new char[m_sendBufferLen - res]; + memcpy(tmp, m_sendBuffer + res, m_sendBufferLen - res); + delete [] m_sendBuffer; + m_sendBuffer = tmp; + m_sendBufferLen -= res; + } } bool CFtpControlSocket::IsMisleadingListResponse() { - // Some servers are broken. Instead of an empty listing, some MVS servers - // for example they return something "550 no members found" - // Other servers return "550 No files found." + // Some servers are broken. Instead of an empty listing, some MVS servers + // for example they return something "550 no members found" + // Other servers return "550 No files found." - CString retmsg = GetReply(); - if (!retmsg.CompareNoCase(_T("550 No members found."))) - return true; + CString retmsg = GetReply(); + if (!retmsg.CompareNoCase(L"550 No members found.")) + return true; - if (!retmsg.CompareNoCase(_T("550 No data sets found."))) - return true; + if (!retmsg.CompareNoCase(L"550 No data sets found.")) + return true; - if (!retmsg.CompareNoCase(_T("550 No files found."))) - return true; + if (!retmsg.CompareNoCase(L"550 No files found.")) + return true; - return false; + return false; } -#ifdef MPEXT bool CFtpControlSocket::IsRoutableAddress(const CString & host) { - USES_CONVERSION; - - if (host.Left(3) == _T("127") || - host.Left(3) == _T("10.") || - host.Left(7) == _T("192.168") || - host.Left(7) == _T("169.254")) - { - return false; - } - else if (host.Left(3) == _T("172")) - { - CString middle = host.Mid(4); - int pos = middle.Find(_T(".")); - long part = atol(T2CA(middle.Left(pos))); - if ((part >= 16) && (part <= 31)) - { - return false; - } - } - return true; + USES_CONVERSION; + + if (host.Left(3) == L"127" || + host.Left(3) == L"10." || + host.Left(7) == L"192.168" || + host.Left(7) == L"169.254") + { + return false; + } + else if (host.Left(3) == L"172") + { + CString middle = host.Mid(4); + int pos = middle.Find(L"."); + long part = atol(T2CA(middle.Left(pos))); + if ((part >= 16) && (part <= 31)) + { + return false; + } + } + return true; } bool CFtpControlSocket::CheckForcePasvIp(CString & host) { - bool result = true; - unsigned int tmpPort; - CString ahost; - switch (m_CurrentServer.iForcePasvIp) - { - case 0: // on - if (!GetPeerName(ahost, tmpPort)) - { - // this should happen with proxy server only - int logontype = COptions::GetOptionVal(OPTION_LOGONTYPE); - // do not know what to do, if there's FTP proxy - if (!logontype) - { - // this is a host name, not an IP, but it should not be a problem - ahost = m_CurrentServer.host; - } - } - - if (ahost != host) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Using host address %s instead of the one suggested by the server: %s"), ahost, host); - host = ahost; - } - break; - - case 1: // off - // noop - break; - - default: // auto - if (!GetPeerName(ahost, tmpPort)) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_PROGRESS, _T("Error retrieving server address, cannot test if address is routable")); - } - else if (!IsRoutableAddress(host) && IsRoutableAddress(ahost)) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Server sent passive reply with unroutable address %s, using host address instead."), host, ahost); - host = ahost; - } - break; - } - - return result; + bool result = true; + unsigned int tmpPort; + CString ahost; + switch (m_CurrentServer.iForcePasvIp) + { + case 0: // on + if (!GetPeerName(ahost, tmpPort)) + { + // this should happen with proxy server only + int logontype = GetOptionVal(OPTION_LOGONTYPE); + // do not know what to do, if there's FTP proxy + if (!logontype) + { + // this is a host name, not an IP, but it should not be a problem + ahost = m_CurrentServer.host; + } + } + + if (ahost != host) + { + LogMessage(FZ_LOG_WARNING, L"Using host address %s instead of the one suggested by the server: %s", ahost, host); + host = ahost; + } + break; + + case 1: // off + // noop + break; + + default: // auto + if (!GetPeerName(ahost, tmpPort)) + { + LogMessage(FZ_LOG_PROGRESS, L"Error retrieving server address, cannot test if address is routable"); + } + else if (!IsRoutableAddress(host) && IsRoutableAddress(ahost)) + { + LogMessage(FZ_LOG_WARNING, L"Server sent passive reply with unroutable address %s, using host address instead.", host, ahost); + host = ahost; + } + break; + } + + return result; } -#endif //--------------------------------------------------------------------------- ftp_capabilities_t TFTPServerCapabilities::GetCapability(ftp_capability_names_t Name) { - t_cap tcap = FCapabilityMap[Name]; - return tcap.cap; + t_cap tcap = FCapabilityMap[Name]; + return tcap.cap; } ftp_capabilities_t TFTPServerCapabilities::GetCapabilityString(ftp_capability_names_t Name, std::string * Option) { - t_cap tcap = FCapabilityMap[Name]; - if (Option) - *Option = tcap.option; - return tcap.cap; + t_cap tcap = FCapabilityMap[Name]; + if (Option) + *Option = tcap.option; + return tcap.cap; } void TFTPServerCapabilities::SetCapability(ftp_capability_names_t Name, ftp_capabilities_t Cap) { - t_cap tcap = FCapabilityMap[Name]; - tcap.cap = Cap; - tcap.number = 1; - FCapabilityMap[Name] = tcap; + t_cap tcap = FCapabilityMap[Name]; + tcap.cap = Cap; + tcap.number = 1; + FCapabilityMap[Name] = tcap; } void TFTPServerCapabilities::SetCapability(ftp_capability_names_t Name, ftp_capabilities_t Cap, const std::string & Option) { - t_cap tcap = FCapabilityMap[Name]; - tcap.cap = Cap; - tcap.option = Option; - tcap.number = 0; - FCapabilityMap[Name] = tcap; + t_cap tcap = FCapabilityMap[Name]; + tcap.cap = Cap; + tcap.option = Option; + tcap.number = 0; + FCapabilityMap[Name] = tcap; } - diff --git a/source/filezilla/FtpControlSocket.h b/source/filezilla/FtpControlSocket.h index 56cdf8d2..3c11f3bd 100644 --- a/source/filezilla/FtpControlSocket.h +++ b/source/filezilla/FtpControlSocket.h @@ -1,201 +1,238 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -#if !defined(AFX_FTPCONTROLSOCKET_H__AE6AA44E_B09D_487A_8EF2_A23697434945__INCLUDED_) -#define AFX_FTPCONTROLSOCKET_H__AE6AA44E_B09D_487A_8EF2_A23697434945__INCLUDED_ - -#include "structures.h" // Hinzugefügt von der Klassenansicht -#include "StdAfx.h" // Hinzugefügt von der Klassenansicht +//--------------------------------------------------------------------------- +#ifndef FtpControlSocketH +#define FtpControlSocketH +//--------------------------------------------------------------------------- +#include "structures.h" +#include "stdafx.h" #include "FileZillaApi.h" #include "FileZillaIntf.h" -#include "ControlSocket.h" -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 -// FtpControlSocket.h : Header-Datei -// - +//--------------------------------------------------------------------------- class CTransferSocket; class CMainThread; -///////////////////////////////////////////////////////////////////////////// -// Befehlsziel CFtpControlSocket - +//--------------------------------------------------------------------------- class CAsyncProxySocketLayer; class CMainThread; -class CFtpControlSocket : public CControlSocket +//--------------------------------------------------------------------------- +#define CSMODE_NONE 0x0000 +#define CSMODE_CONNECT 0x0001 +#define CSMODE_COMMAND 0x0002 +#define CSMODE_LIST 0x0004 +#define CSMODE_TRANSFER 0x0008 +#define CSMODE_DOWNLOAD 0x0010 +#define CSMODE_UPLOAD 0x0020 +#define CSMODE_TRANSFERERROR 0x0040 +#define CSMODE_TRANSFERTIMEOUT 0x0080 +#define CSMODE_DELETE 0x0100 +#define CSMODE_RMDIR 0x0200 +#define CSMODE_DISCONNECT 0x0400 +#define CSMODE_MKDIR 0x0800 +#define CSMODE_RENAME 0x1000 +#define CSMODE_CHMOD 0x2000 +#define CSMODE_LISTFILE 0x4000 +//--------------------------------------------------------------------------- +typedef struct +{ + BOOL bResume,bResumeAppend,bType; + __int64 transfersize,transferleft; +} t_transferdata; +//--------------------------------------------------------------------------- +class CFtpControlSocket : public CAsyncSocketEx, public CApiLog { - friend CTransferSocket; -// Attribute + friend CTransferSocket; + public: + CFtpControlSocket(CMainThread * pMainThread, CFileZillaTools * pTools); + virtual ~CFtpControlSocket(); -// Operationen public: - CFtpControlSocket(CMainThread *pMainThread, CFileZillaTools * pTools); - virtual ~CFtpControlSocket(); + void Connect(t_server & server); + virtual void OnTimer(); + BOOL IsReady(); + void List(BOOL bFinish, int nError = 0, CServerPath path = CServerPath(), CString subdir = L""); + void ListFile(CString filename, const CServerPath & path); + void FtpCommand(LPCTSTR pCommand); + void Disconnect(); + void FileTransfer(t_transferfile * transferfile = 0, BOOL bFinish = FALSE, int nError = 0); + void Delete(CString filename, const CServerPath & path); + void Rename(CString oldName, CString newName, const CServerPath & path, const CServerPath & newPath); + void MakeDir(const CServerPath & path); + void RemoveDir(CString dirname, const CServerPath & path); + void Chmod(CString filename, const CServerPath & path, int nValue); + + void ProcessReply(); + void TransferEnd(int nMode); + void Cancel(BOOL bQuit = FALSE); + + void SetAsyncRequestResult(int nAction, CAsyncRequestData * pData); + + int CheckOverwriteFile(); + BOOL Create(); + void TransfersocketListenFinished(unsigned int ip, unsigned short port); + + BOOL m_bKeepAliveActive; + BOOL m_bDidRejectCertificate; + + // Some servers are broken. Instead of an empty listing, some MVS servers + // for example they return something "550 no members found" + // Other servers return "550 No files found." + bool IsMisleadingListResponse(); + + bool UsingMlsd(); + bool UsingUtf8(); + std::string GetTlsVersionStr(); + std::string GetCipherName(); + bool HandleSize(int code, __int64 & size); + bool HandleMdtm(int code, t_directory::t_direntry::t_date & date); + void TransferHandleListError(); + + enum transferDirection + { + download = 0, + upload = 1 + }; + + BOOL RemoveActiveTransfer(); + BOOL SpeedLimitAddTransferredBytes(enum transferDirection direction, _int64 nBytesTransferred); + + _int64 GetSpeedLimit(enum transferDirection direction, CTime & time); + + _int64 GetAbleToTransferSize(enum transferDirection direction, bool &beenWaiting, int nBufSize = 0); + + t_server GetCurrentServer(); -// Überschreibungen public: - virtual void Connect(t_server &server); - virtual void OnTimer(); - virtual BOOL IsReady(); - virtual void List(BOOL bFinish, int nError=0, CServerPath path=CServerPath(), CString subdir=_MPT(""), int nListMode = 0); -#ifdef MPEXT - virtual void ListFile(CString filename, const CServerPath &path); -#endif - virtual void FtpCommand(LPCTSTR pCommand); - virtual void Disconnect(); - virtual void FileTransfer(t_transferfile *transferfile = 0, BOOL bFinish = FALSE, int nError = 0); - virtual void Delete(CString filename, const CServerPath &path); - virtual void Rename(CString oldName, CString newName, const CServerPath &path, const CServerPath &newPath); - virtual void MakeDir(const CServerPath &path); - virtual void RemoveDir(CString dirname, const CServerPath &path); - virtual void Chmod(CString filename, const CServerPath &path, int nValue); - - virtual void ProcessReply(); - virtual void TransferEnd(int nMode); - virtual void Cancel(BOOL bQuit=FALSE); - - virtual void SetAsyncRequestResult(int nAction, CAsyncRequestData *pData); - - - int CheckOverwriteFile(); - virtual BOOL Create(); - void TransfersocketListenFinished(unsigned int ip,unsigned short port); - - BOOL m_bKeepAliveActive; -#ifndef MPEXT_NO_SSL - BOOL m_bDidRejectCertificate; -#endif - // Some servers are broken. Instead of an empty listing, some MVS servers - // for example they return something "550 no members found" - // Other servers return "550 No files found." - bool IsMisleadingListResponse(); - -#ifdef MPEXT - virtual bool UsingMlsd(); - virtual bool UsingUtf8(); - virtual std::string GetTlsVersionStr(); - virtual std::string GetCipherName(); - bool HandleSize(int code, __int64 & size); - bool HandleMdtm(int code, t_directory::t_direntry::t_date & date); - void TransferHandleListError(); -#endif + virtual void OnReceive(int nErrorCode); + virtual void OnConnect(int nErrorCode); + virtual void OnClose(int nErrorCode); + virtual void OnSend(int nErrorCode); - // Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen - //{{AFX_VIRTUAL(CFtpControlSocket) - public: - virtual void OnReceive(int nErrorCode); - virtual void OnConnect(int nErrorCode); - virtual void OnClose(int nErrorCode); - virtual void OnSend(int nErrorCode); - //}}AFX_VIRTUAL - - // Generierte Nachrichtenzuordnungsfunktionen - //{{AFX_MSG(CFtpControlSocket) - // HINWEIS - Der Klassen-Assistent fügt hier Member-Funktionen ein und entfernt diese. - //}}AFX_MSG - -// Implementierung protected: - //Called by OnTimer() - void ResumeTransfer(); - void CheckForTimeout(); - void SendKeepAliveCommand(); - - virtual int OnLayerCallback(std::list& callbacks); - void SetFileExistsAction(int nAction, COverwriteRequestData *pData); -#ifndef MPEXT_NO_SSL - void SetVerifyCertResult( int nResult, t_SslCertData *pData ); -#endif - void ResetOperation(int nSuccessful = -1); - - virtual void DoClose(int nError = 0); - int GetReplyCode(); - CString GetReply(); - void LogOnToServer(BOOL bSkipReply = FALSE); - BOOL Send(CString str); - - BOOL ParsePwdReply(CString& rawpwd); - BOOL ParsePwdReply(CString& rawpwd, CServerPath & realPath); - BOOL SendAuthSsl(); - - void DiscardLine(CStringA line); - bool NeedModeCommand(); - bool NeedOptsCommand(); - CString GetListingCmd(); - - bool InitConnect(); - int InitConnectState(); - -#ifdef MPEXT - bool IsRoutableAddress(const CString & host); - bool CheckForcePasvIp(CString & host); - void TransferFinished(bool preserveFileTimeForUploads); -#endif - - CFile *m_pDataFile; - CTransferSocket *m_pTransferSocket; - CStringA m_MultiLine; - CTime m_LastSendTime; - - CString m_ServerName; - std::list m_RecvBuffer; - CTime m_LastRecvTime; - class CLogonData; - class CListData; - class CListFileData; - class CFileTransferData; - class CMakeDirData; + // Called by OnTimer() + void ResumeTransfer(); + void CheckForTimeout(); + void SendKeepAliveCommand(); + + virtual int OnLayerCallback(std::list & callbacks); + void SetFileExistsAction(int nAction, COverwriteRequestData * pData); + void SetVerifyCertResult(int nResult, t_SslCertData * pData); + void ResetOperation(int nSuccessful = -1); + + void DoClose(int nError = 0); + int GetReplyCode(); + CString GetReply(); + void LogOnToServer(BOOL bSkipReply = FALSE); + BOOL Send(CString str); + + BOOL ParsePwdReply(CString & rawpwd); + BOOL ParsePwdReply(CString & rawpwd, CServerPath & realPath); + BOOL SendAuthSsl(); + + void DiscardLine(CStringA line); + bool NeedModeCommand(); + bool NeedOptsCommand(); + CString GetListingCmd(); + + bool InitConnect(); + int InitConnectState(); + + bool IsRoutableAddress(const CString & host); + bool CheckForcePasvIp(CString & host); + void TransferFinished(bool preserveFileTimeForUploads); + + virtual void LogSocketMessageRaw(int nMessageType, LPCTSTR pMsg); + virtual bool LoggingSocketMessage(int nMessageType); + + void ShowStatus(UINT nID, int type) const; + void ShowStatus(CString status,int type) const; + void ShowTimeoutError(UINT nID) const; + + void Close(); + BOOL Connect(CString hostAddress, UINT nHostPort); + CString ConvertDomainName(CString domain); + + struct t_ActiveList + { + CFtpControlSocket * pOwner; + __int64 nBytesAvailable; + __int64 nBytesTransferred; + }; + static std::list m_InstanceList[2]; + static CTime m_CurrentTransferTime[2]; + static _int64 m_CurrentTransferLimit[2]; + static CCriticalSection m_SpeedLimitSync; + _int64 GetAbleToUDSize(bool & beenWaiting, CTime & curTime, _int64 & curLimit, std::list::iterator & iter, enum transferDirection direction, int nBufSize); + _int64 GetSpeedLimit(CTime & time, int valType, int valValue); + + void SetDirectoryListing(t_directory * pDirectory, bool bSetWorkingDir = true); + t_directory * m_pDirectoryListing; + + CMainThread * m_pOwner; + CFileZillaTools * m_pTools; + + CFile * m_pDataFile; + CTransferSocket * m_pTransferSocket; + CStringA m_MultiLine; + CTime m_LastSendTime; + + CString m_ServerName; + std::list m_RecvBuffer; + CTime m_LastRecvTime; + class CLogonData; + class CListData; + class CListFileData; + class CFileTransferData; + class CMakeDirData; #ifndef MPEXT_NO_ZLIB - bool m_useZlib; - bool m_zlibSupported; - int m_zlibLevel; + bool m_useZlib; + bool m_zlibSupported; + int m_zlibLevel; #endif - bool m_bUTF8; - bool m_bAnnouncesUTF8; - bool m_hasClntCmd; -#ifdef MPEXT - TFTPServerCapabilities m_serverCapabilities; - CStringA m_ListFile; - __int64 m_ListFileSize; + bool m_bUTF8; + bool m_bAnnouncesUTF8; + bool m_hasClntCmd; + TFTPServerCapabilities m_serverCapabilities; + CStringA m_ListFile; + __int64 m_ListFileSize; + bool m_isFileZilla; + + bool m_awaitsReply; + bool m_skipReply; + + char * m_sendBuffer; + int m_sendBufferLen; + + bool m_bProtP; + + bool m_mayBeMvsFilesystem; + bool m_mayBeBS2000Filesystem; + + struct t_operation + { + int nOpMode; + int nOpState; + class COpData //Base class which will store operation specific parameters. + { + public: + COpData() {}; + virtual ~COpData() {}; + }; + COpData * pData; + public: + }; + + t_operation m_Operation; + + CAsyncProxySocketLayer * m_pProxyLayer; + CAsyncSslSocketLayer * m_pSslLayer; +#ifndef MPEXT_NO_GSS + CAsyncGssSocketLayer * m_pGssLayer; #endif - bool m_isFileZilla; - - bool m_awaitsReply; - bool m_skipReply; - - char* m_sendBuffer; - int m_sendBufferLen; - - bool m_bProtP; - - bool m_mayBeMvsFilesystem; - bool m_mayBeBS2000Filesystem; + t_server m_CurrentServer; private: - BOOL m_bCheckForTimeout; + BOOL m_bCheckForTimeout; }; - -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein. - -#endif // AFX_FTPCONTROLSOCKET_H__AE6AA44E_B09D_487A_8EF2_A23697434945__INCLUDED_ +//--------------------------------------------------------------------------- +#endif // FtpControlSocketH diff --git a/source/filezilla/FtpListResult.cpp b/source/filezilla/FtpListResult.cpp index 8dcfa5c1..c485b8dd 100644 --- a/source/filezilla/FtpListResult.cpp +++ b/source/filezilla/FtpListResult.cpp @@ -1,3087 +1,3122 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// FtpListResult.cpp: Implementierung der Klasse CFtpListResult. -// -////////////////////////////////////////////////////////////////////// - +//--------------------------------------------------------------------------- #include "stdafx.h" #include "FtpListResult.h" #include "FileZillaApi.h" -#include "Options.h" -#include "misc/utf8.h" - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#define new DEBUG_NEW -#endif +#include ////////////////////////////////////////////////////////////////////// // Konstruktion/Destruktion ////////////////////////////////////////////////////////////////////// //#define LISTDEBUG #ifdef LISTDEBUG - //It's the normal UNIX format (or even another nonstandard format) - //Some samples are from http://cr.yp.to/ftpparse/ftpparse.c - /* UNIX-style listing, without inum and without blocks */ - - static char data[][110]={ - "-rw-r--r-- 1 root other 531 Jan 29 03:26 01-unix-std file", - "dr-xr-xr-x 2 root other 512 Apr 8 1994 02-unix-std dir", - "dr-xr-xr-x 2 root 512 Apr 8 1994 03-unix-nogroup dir", - "lrwxrwxrwx 1 root other 7 Jan 25 00:17 04-unix-std link -> usr/bin", - - /* Some listings with uncommon date/time format: */ - "-rw-r--r-- 1 root other 531 09-26 2000 05-unix-date file", - "-rw-r--r-- 1 root other 531 09-26 13:45 06-unix-date file", - "-rw-r--r-- 1 root other 531 2005-06-07 21:22 07-unix-date file", - - /* Unix style with size information in kilobytes */ - "-rw-r--r-- 1 root other 34.5k Oct 5 21:22 08-unix-namedsize file", - - /* Also NetWare: */ - "d [R----F--] supervisor 512 Jan 16 18:53 09-netware dir", - "- [R----F--] rhesus 214059 Oct 20 15:27 10-netware file", - - /* Also NetPresenz for the Mac: */ - "-------r-- 326 1391972 1392298 Nov 22 1995 11-netpresenz file", - "drwxrwxr-x folder 2 May 10 1996 12-netpresenz dir", - - /* A format with domain field some windows servers send */ - "-rw-r--r-- 1 group domain user 531 Jan 29 03:26 13-unix-domain file", - - /* EPLF directory listings */ - "+i8388621.48594,m825718503,r,s280,\t14-eplf file", - "+i8388621.50690,m824255907,/,\t15-eplf dir", - - /* MSDOS type listing used by IIS */ - "04-27-00 12:09PM 16-dos-dateambigious dir", - "04-14-00 03:47PM 589 17-dos-dateambigious file", - - /* Another type of MSDOS style listings */ - "2002-09-02 18:48 18-dos-longyear dir", - "2002-09-02 19:06 9,730 19-dos-longyear file", - - /* Numerical Unix style format */ - "0100644 500 101 12345 123456789 20-unix-numerical file", - - /* This one is used by SSH-2.0-VShell_2_1_2_143, this is the old VShell format */ - "206876 Apr 04, 2000 21:06 21-vshell-old file", - "0 Dec 12, 2002 02:13 22-vshell-old dir/", - - /* This type of directory listings is sent by some newer versions of VShell - * both year and time in one line is uncommon. - */ - "-rwxr-xr-x 1 user group 9 Oct 08, 2002 09:47 23-vshell-new file", - - /* Next ones come from an OS/2 server. The server obviously isn't Y2K aware */ - "36611 A 04-23-103 10:57 24-os2 file", - " 1123 A 07-14-99 12:37 25-os2 file", - " 0 DIR 02-11-103 16:15 26-os2 dir", - " 1123 DIR A 10-05-100 23:38 27-os2 dir", - - /* Some servers send localized date formats, here the German one: */ - "dr-xr-xr-x 2 root other 2235 26. Juli, 20:10 28-datetest-ger dir", - "-r-xr-xr-x 2 root other 2235 2. Okt. 2003 29-datetest-ger file", - "-r-xr-xr-x 2 root other 2235 1999/10/12 17:12 30-datetest file", - "-r-xr-xr-x 2 root other 2235 24-04-2003 17:12 31-datetest file", - - /* Here a Japanese one: */ - "-rw-r--r-- 1 root sys 8473 4\x8c\x8e 18\x93\xfa 2003\x94\x4e 32-datatest-japanese file", - - /* VMS style listings */ - "33-vms-dir.DIR;1 1 19-NOV-2001 21:41 [root,root] (RWE,RWE,RE,RE)", - "34-vms-file;1 155 2-JUL-2003 10:30:13.64", - - /* VMS style listings without time */ - "35-vms-notime-file;1 2/8 15-JAN-2000 [IV2_XXX] (RWED,RWED,RE,)", - "36-vms-notime-file;1 6/8 15-JUI-2002 PRONAS (RWED,RWED,RE,)", - - /* VMS multiline */ - "37-vms-multiline-file;1\r\n170774/170775 24-APR-2003 08:16:15 [FTP_CLIENT,SCOT] (RWED,RWED,RE,)", - "38-vms-multiline-file;1\r\n10 2-JUL-2003 10:30:08.59 [FTP_CLIENT,SCOT] (RWED,RWED,RE,)", - - /* IBM AS/400 style listing */ - "QSYS 77824 02/23/00 15:09:55 *DIR 39-ibm-as400 dir/", - "QSYS 77824 23/02/00 15:09:55 *FILE 40-ibm-as400-date file", - - /* aligned directory listing with too long size */ - "-r-xr-xr-x longowner longgroup123456 Feb 12 17:20 41-unix-concatsize file", - - /* short directory listing with month name */ - "-r-xr-xr-x 2 owner group 4512 01-jun-99 42_unix_shortdatemonth file", - - /* the following format is sent by the Connect:Enterprise server by Sterling Commerce */ - "-C--E-----FTP B BCC3I1 7670 1294495 Jan 13 07:42 43-conent file", - "-C--E-----FTS B BCC3I1 7670 1294495 Jan 13 07:42 44-conent-file", - - "-AR--M----TCP B ceunix 17570 2313708 Mar 29 08:56 45-conent-file", - - /* Nortel wfFtp router */ - "46-nortel-wfftp-file 1014196 06/03/04 Thur. 10:20:03", - - /* VxWorks based server used in Nortel routers */ - "2048 Feb-28-1998 05:23:30 47-nortel-vxworks dir ", - - /* IBM MVS listings */ - // Volume Unit Referred Ext Used Recfm Lrecl BlkSz Dsorg Dsname - " WYOSPT 3420 2003/05/21 1 200 FB 80 8053 PS 48-MVS.FILE", - " WPTA01 3290 2004/03/04 1 3 FB 80 3125 PO 49-MVS.DATASET", - " TSO004 3390 VSAM 50-mvs-file", - " TSO005 3390 2005/06/06 213000 U 0 27998 PO 51-mvs-dir", - - /* Dataset members */ - // Name VV.MM Created Changed Size Init Mod Id - // ADATAB /* filenames without data, only check for those on MVS servers */ - " 52-MVSPDSMEMBER 01.01 2004/06/22 2004/06/22 16:32 128 128 0 BOBY12", - - "53-MVSPDSMEMBER2 00B308 000411 00 FO RU 31 ANY", - "54-MVSPDSMEMBER3 00B308 000411 00 FO RU ANY 24", + //It's the normal UNIX format (or even another nonstandard format) + //Some samples are from http://cr.yp.to/ftpparse/ftpparse.c + /* UNIX-style listing, without inum and without blocks */ + + static char data[][110]={ + "-rw-r--r-- 1 root other 531 Jan 29 03:26 01-unix-std file", + "dr-xr-xr-x 2 root other 512 Apr 8 1994 02-unix-std dir", + "dr-xr-xr-x 2 root 512 Apr 8 1994 03-unix-nogroup dir", + "lrwxrwxrwx 1 root other 7 Jan 25 00:17 04-unix-std link -> usr/bin", + + /* Some listings with uncommon date/time format: */ + "-rw-r--r-- 1 root other 531 09-26 2000 05-unix-date file", + "-rw-r--r-- 1 root other 531 09-26 13:45 06-unix-date file", + "-rw-r--r-- 1 root other 531 2005-06-07 21:22 07-unix-date file", + + /* Unix style with size information in kilobytes */ + "-rw-r--r-- 1 root other 34.5k Oct 5 21:22 08-unix-namedsize file", + + /* Also NetWare: */ + "d [R----F--] supervisor 512 Jan 16 18:53 09-netware dir", + "- [R----F--] rhesus 214059 Oct 20 15:27 10-netware file", + + /* Also NetPresenz for the Mac: */ + "-------r-- 326 1391972 1392298 Nov 22 1995 11-netpresenz file", + "drwxrwxr-x folder 2 May 10 1996 12-netpresenz dir", + + /* A format with domain field some windows servers send */ + "-rw-r--r-- 1 group domain user 531 Jan 29 03:26 13-unix-domain file", + + /* EPLF directory listings */ + "+i8388621.48594,m825718503,r,s280,\t14-eplf file", + "+i8388621.50690,m824255907,/,\t15-eplf dir", + + /* MSDOS type listing used by IIS */ + "04-27-00 12:09PM 16-dos-dateambigious dir", + "04-14-00 03:47PM 589 17-dos-dateambigious file", + + /* Another type of MSDOS style listings */ + "2002-09-02 18:48 18-dos-longyear dir", + "2002-09-02 19:06 9,730 19-dos-longyear file", + + /* Numerical Unix style format */ + "0100644 500 101 12345 123456789 20-unix-numerical file", + + /* This one is used by SSH-2.0-VShell_2_1_2_143, this is the old VShell format */ + "206876 Apr 04, 2000 21:06 21-vshell-old file", + "0 Dec 12, 2002 02:13 22-vshell-old dir/", - // Some asian listing format. Those >127 chars are just examples - "-rwxrwxrwx 1 root staff 0 2003 3\xed\xef 20 55-asian date file", + /* This type of directory listings is sent by some newer versions of VShell + * both year and time in one line is uncommon. + */ + "-rwxr-xr-x 1 user group 9 Oct 08, 2002 09:47 23-vshell-new file", + + /* Next ones come from an OS/2 server. The server obviously isn't Y2K aware */ + "36611 A 04-23-103 10:57 24-os2 file", + " 1123 A 07-14-99 12:37 25-os2 file", + " 0 DIR 02-11-103 16:15 26-os2 dir", + " 1123 DIR A 10-05-100 23:38 27-os2 dir", + + /* Some servers send localized date formats, here the German one: */ + "dr-xr-xr-x 2 root other 2235 26. Juli, 20:10 28-datetest-ger dir", + "-r-xr-xr-x 2 root other 2235 2. Okt. 2003 29-datetest-ger file", + "-r-xr-xr-x 2 root other 2235 1999/10/12 17:12 30-datetest file", + "-r-xr-xr-x 2 root other 2235 24-04-2003 17:12 31-datetest file", + + /* Here a Japanese one: */ + "-rw-r--r-- 1 root sys 8473 4\x8c\x8e 18\x93\xfa 2003\x94\x4e 32-datatest-japanese file", + + /* VMS style listings */ + "33-vms-dir.DIR;1 1 19-NOV-2001 21:41 [root,root] (RWE,RWE,RE,RE)", + "34-vms-file;1 155 2-JUL-2003 10:30:13.64", + + /* VMS style listings without time */ + "35-vms-notime-file;1 2/8 15-JAN-2000 [IV2_XXX] (RWED,RWED,RE,)", + "36-vms-notime-file;1 6/8 15-JUI-2002 PRONAS (RWED,RWED,RE,)", + + /* VMS multiline */ + "37-vms-multiline-file;1\r\n170774/170775 24-APR-2003 08:16:15 [FTP_CLIENT,SCOT] (RWED,RWED,RE,)", + "38-vms-multiline-file;1\r\n10 2-JUL-2003 10:30:08.59 [FTP_CLIENT,SCOT] (RWED,RWED,RE,)", + + /* IBM AS/400 style listing */ + "QSYS 77824 02/23/00 15:09:55 *DIR 39-ibm-as400 dir/", + "QSYS 77824 23/02/00 15:09:55 *FILE 40-ibm-as400-date file", + + /* aligned directory listing with too long size */ + "-r-xr-xr-x longowner longgroup123456 Feb 12 17:20 41-unix-concatsize file", + + /* short directory listing with month name */ + "-r-xr-xr-x 2 owner group 4512 01-jun-99 42_unix_shortdatemonth file", + + /* the following format is sent by the Connect:Enterprise server by Sterling Commerce */ + "-C--E-----FTP B BCC3I1 7670 1294495 Jan 13 07:42 43-conent file", + "-C--E-----FTS B BCC3I1 7670 1294495 Jan 13 07:42 44-conent-file", + + "-AR--M----TCP B ceunix 17570 2313708 Mar 29 08:56 45-conent-file", + + /* Nortel wfFtp router */ + "46-nortel-wfftp-file 1014196 06/03/04 Thur. 10:20:03", + + /* VxWorks based server used in Nortel routers */ + "2048 Feb-28-1998 05:23:30 47-nortel-vxworks dir ", + + /* IBM MVS listings */ + // Volume Unit Referred Ext Used Recfm Lrecl BlkSz Dsorg Dsname + " WYOSPT 3420 2003/05/21 1 200 FB 80 8053 PS 48-MVS.FILE", + " WPTA01 3290 2004/03/04 1 3 FB 80 3125 PO 49-MVS.DATASET", + " TSO004 3390 VSAM 50-mvs-file", + " TSO005 3390 2005/06/06 213000 U 0 27998 PO 51-mvs-dir", + + /* Dataset members */ + // Name VV.MM Created Changed Size Init Mod Id + // ADATAB /* filenames without data, only check for those on MVS servers */ + " 52-MVSPDSMEMBER 01.01 2004/06/22 2004/06/22 16:32 128 128 0 BOBY12", + + "53-MVSPDSMEMBER2 00B308 000411 00 FO RU 31 ANY", + "54-MVSPDSMEMBER3 00B308 000411 00 FO RU ANY 24", + + // Some asian listing format. Those >127 chars are just examples + "-rwxrwxrwx 1 root staff 0 2003 3\xed\xef 20 55-asian date file", "-r--r--r-- 1 root root 2096 8\xed 17 08:52 56-asian date file", - // VMS style listing with a different field order - "57-vms-alternate-field-order-file;1 [SUMMARY] 1/3 2-AUG-2006 13:05 (RWE,RWE,RE,)", + // VMS style listing with a different field order + "57-vms-alternate-field-order-file;1 [SUMMARY] 1/3 2-AUG-2006 13:05 (RWE,RWE,RE,)", - ""}; + ""}; #endif CFtpListResult::CFtpListResult(t_server server, bool *bUTF8) { - listhead=curpos=0; - - m_server = server; - m_bUTF8 = bUTF8; - - pos=0; - - m_prevline=0; - m_curline=0; - m_curlistaddpos=0; - - //Fill the month names map - - //English month names - m_MonthNamesMap[_T("jan")] = 1; - m_MonthNamesMap[_T("feb")] = 2; - m_MonthNamesMap[_T("mar")] = 3; - m_MonthNamesMap[_T("apr")] = 4; - m_MonthNamesMap[_T("may")] = 5; - m_MonthNamesMap[_T("jun")] = 6; - m_MonthNamesMap[_T("june")] = 6; - m_MonthNamesMap[_T("jul")] = 7; - m_MonthNamesMap[_T("july")] = 7; - m_MonthNamesMap[_T("aug")] = 8; - m_MonthNamesMap[_T("sep")] = 9; - m_MonthNamesMap[_T("sept")] = 9; - m_MonthNamesMap[_T("oct")] = 10; - m_MonthNamesMap[_T("nov")] = 11; - m_MonthNamesMap[_T("dec")] = 12; - - //Numerical values for the month - m_MonthNamesMap[_T("1")] = 1; - m_MonthNamesMap[_T("01")] = 1; - m_MonthNamesMap[_T("2")] = 2; - m_MonthNamesMap[_T("02")] = 2; - m_MonthNamesMap[_T("3")] = 3; - m_MonthNamesMap[_T("03")] = 3; - m_MonthNamesMap[_T("4")] = 4; - m_MonthNamesMap[_T("04")] = 4; - m_MonthNamesMap[_T("5")] = 5; - m_MonthNamesMap[_T("05")] = 5; - m_MonthNamesMap[_T("6")] = 6; - m_MonthNamesMap[_T("06")] = 6; - m_MonthNamesMap[_T("7")] = 7; - m_MonthNamesMap[_T("07")] = 7; - m_MonthNamesMap[_T("8")] = 8; - m_MonthNamesMap[_T("08")] = 8; - m_MonthNamesMap[_T("9")] = 9; - m_MonthNamesMap[_T("09")] = 9; - m_MonthNamesMap[_T("10")] = 10; - m_MonthNamesMap[_T("11")] = 11; - m_MonthNamesMap[_T("12")] = 12; - - //German month names - m_MonthNamesMap[_T("mrz")] = 3; - m_MonthNamesMap[_T("m\xE4r")] = 3; - m_MonthNamesMap[_T("m\xE4rz")] = 3; - m_MonthNamesMap[L"m\xC3\xA4r"] = 3; // UTF-8 - m_MonthNamesMap[L"m\xC3\xA4rz"] = 3; // UTF-8 - m_MonthNamesMap[_T("mai")] = 5; - m_MonthNamesMap[_T("juni")] = 6; - m_MonthNamesMap[_T("juli")] = 7; - m_MonthNamesMap[_T("okt")] = 10; - m_MonthNamesMap[_T("dez")] = 12; - - //Austrian month names - m_MonthNamesMap[_T("j\xE4n")] = 1; - m_MonthNamesMap[L"j\xC3\xA4n"] = 1; // UTF-8 - - //French month names - m_MonthNamesMap[_T("janv")] = 1; - m_MonthNamesMap[_T("f\xE9")_T("b")] = 1; - m_MonthNamesMap[_T("f\xE9v")] = 2; - m_MonthNamesMap[_T("fev")] = 2; - m_MonthNamesMap[_T("f\xE9vr")] = 2; - m_MonthNamesMap[_T("fevr")] = 2; - m_MonthNamesMap[_T("mars")] = 3; - m_MonthNamesMap[_T("mrs")] = 3; - m_MonthNamesMap[_T("avr")] = 4; - m_MonthNamesMap[_T("juin")] = 6; - m_MonthNamesMap[_T("juil")] = 7; - m_MonthNamesMap[_T("jui")] = 7; - m_MonthNamesMap[_T("ao\xFB")] = 8; - m_MonthNamesMap[_T("ao\xFBt")] = 8; - m_MonthNamesMap[_T("aout")] = 8; - m_MonthNamesMap[_T("d\xE9")_T("c")] = 12; - m_MonthNamesMap[_T("dec")] = 12; - - //Italian month names - m_MonthNamesMap[_T("gen")] = 1; - m_MonthNamesMap[_T("mag")] = 5; - m_MonthNamesMap[_T("giu")] = 6; - m_MonthNamesMap[_T("lug")] = 7; - m_MonthNamesMap[_T("ago")] = 8; - m_MonthNamesMap[_T("set")] = 9; - m_MonthNamesMap[_T("ott")] = 10; - m_MonthNamesMap[_T("dic")] = 12; - - //Spanish month names - m_MonthNamesMap[_T("ene")] = 1; - m_MonthNamesMap[_T("fbro")] = 2; - m_MonthNamesMap[_T("mzo")] = 3; - m_MonthNamesMap[_T("ab")] = 4; - m_MonthNamesMap[_T("abr")] = 4; - m_MonthNamesMap[_T("agto")] = 8; - m_MonthNamesMap[_T("sbre")] = 9; - m_MonthNamesMap[_T("obre")] = 9; - m_MonthNamesMap[_T("nbre")] = 9; - m_MonthNamesMap[_T("dbre")] = 9; - - //Polish month names - m_MonthNamesMap[_T("sty")] = 1; - m_MonthNamesMap[_T("lut")] = 2; - m_MonthNamesMap[_T("kwi")] = 4; - m_MonthNamesMap[_T("maj")] = 5; - m_MonthNamesMap[_T("cze")] = 6; - m_MonthNamesMap[_T("lip")] = 7; - m_MonthNamesMap[_T("sie")] = 8; - m_MonthNamesMap[_T("wrz")] = 9; - m_MonthNamesMap[_T("pa")] = 10; - m_MonthNamesMap[_T("lis")] = 11; - m_MonthNamesMap[_T("gru")] = 12; - - //Russian month names - m_MonthNamesMap[_T("\xFF\xED\xE2")] = 1; - m_MonthNamesMap[_T("\xF4\xE5\xE2")] = 2; - m_MonthNamesMap[_T("\xEC\xE0\xF0")] = 3; - m_MonthNamesMap[_T("\xE0\xEF\xF0")] = 4; - m_MonthNamesMap[_T("\xEC\xE0\xE9")] = 5; - m_MonthNamesMap[_T("\xE8\xFE\xED")] = 6; - m_MonthNamesMap[_T("\xE8\xFE\xEB")] = 7; - m_MonthNamesMap[_T("\xE0\xE2\xE3")] = 8; - m_MonthNamesMap[_T("\xF1\xE5\xED")] = 9; - m_MonthNamesMap[_T("\xEE\xEA\xF2")] = 10; - m_MonthNamesMap[_T("\xED\xEE\xFF")] = 11; - m_MonthNamesMap[_T("\xE4\xE5\xEA")] = 12; - - - //Dutch month names - m_MonthNamesMap[_T("mrt")] = 3; - m_MonthNamesMap[_T("mei")] = 5; - - //Portuguese month names - m_MonthNamesMap[_T("out")] = 10; - - //Japanese month names - m_MonthNamesMap[_T("1\x8c\x8e")] = 1; - m_MonthNamesMap[_T("2\x8c\x8e")] = 2; - m_MonthNamesMap[_T("3\x8c\x8e")] = 3; - m_MonthNamesMap[_T("4\x8c\x8e")] = 4; - m_MonthNamesMap[_T("5\x8c\x8e")] = 5; - m_MonthNamesMap[_T("6\x8c\x8e")] = 6; - m_MonthNamesMap[_T("7\x8c\x8e")] = 7; - m_MonthNamesMap[_T("8\x8c\x8e")] = 8; - m_MonthNamesMap[_T("9\x8c\x8e")] = 9; - m_MonthNamesMap[_T("10\x8c\x8e")] = 10; - m_MonthNamesMap[_T("11\x8c\x8e")] = 11; - m_MonthNamesMap[_T("12\x8c\x8e")] = 12; - - //Korean (Unicode) month names - m_MonthNamesMap[_T("1\xC6\xD4")] = 1; - m_MonthNamesMap[_T("2\xC6\xD4")] = 2; - m_MonthNamesMap[_T("3\xC6\xD4")] = 3; - m_MonthNamesMap[_T("4\xC6\xD4")] = 4; - m_MonthNamesMap[_T("5\xC6\xD4")] = 5; - m_MonthNamesMap[_T("6\xC6\xD4")] = 6; - m_MonthNamesMap[_T("7\xC6\xD4")] = 7; - m_MonthNamesMap[_T("8\xC6\xD4")] = 8; - m_MonthNamesMap[_T("9\xC6\xD4")] = 9; - m_MonthNamesMap[_T("10\xC6\xD4")] = 10; - m_MonthNamesMap[_T("11\xC6\xD4")] = 11; - m_MonthNamesMap[_T("12\xC6\xD4")] = 12; - - //Korean (EUC-KR) month names - m_MonthNamesMap[_T("1\xBF\xF9")] = 1; - m_MonthNamesMap[_T("2\xBF\xF9")] = 2; - m_MonthNamesMap[_T("3\xBF\xF9")] = 3; - m_MonthNamesMap[_T("4\xBF\xF9")] = 4; - m_MonthNamesMap[_T("5\xBF\xF9")] = 5; - m_MonthNamesMap[_T("6\xBF\xF9")] = 6; - m_MonthNamesMap[_T("7\xBF\xF9")] = 7; - m_MonthNamesMap[_T("8\xBF\xF9")] = 8; - m_MonthNamesMap[_T("9\xBF\xF9")] = 9; - m_MonthNamesMap[_T("10\xBF\xF9")] = 10; - m_MonthNamesMap[_T("11\xBF\xF9")] = 11; - m_MonthNamesMap[_T("12\xBF\xF9")] = 12; - - //Finnish month names - m_MonthNamesMap[_T("tammi")] = 1; - m_MonthNamesMap[_T("helmi")] = 2; - m_MonthNamesMap[_T("maalis")] = 3; - m_MonthNamesMap[_T("huhti")] = 4; - m_MonthNamesMap[_T("touko")] = 5; - m_MonthNamesMap[_T("kes\xE4")] = 6; - m_MonthNamesMap[_T("hein\xE4")] = 7; - m_MonthNamesMap[_T("elo")] = 8; - m_MonthNamesMap[_T("syys")] = 9; - m_MonthNamesMap[_T("loka")] = 10; - m_MonthNamesMap[_T("marras")] = 11; - m_MonthNamesMap[_T("joulu")] = 12; - - //There are more languages and thus month - //names, but as long nobody reports a - //problem, I won't add them, there are way - //too much languages - - //Some very strange combinations of names and numbers I've seen. - //The developers of those ftp servers must have been dumb. - m_MonthNamesMap[_T("jan1")] = 1; - m_MonthNamesMap[_T("feb2")] = 2; - m_MonthNamesMap[_T("mar3")] = 3; - m_MonthNamesMap[_T("apr4")] = 4; - m_MonthNamesMap[_T("may5")] = 5; - m_MonthNamesMap[_T("jun6")] = 6; - m_MonthNamesMap[_T("jul7")] = 7; - m_MonthNamesMap[_T("aug8")] = 8; - m_MonthNamesMap[_T("sep9")] = 9; - m_MonthNamesMap[_T("sept9")] = 9; - m_MonthNamesMap[_T("oct0")] = 10; - m_MonthNamesMap[_T("nov1")] = 11; - m_MonthNamesMap[_T("dec2")] = 12; - - // Slovenian month names - m_MonthNamesMap[_T("avg")] = 8; - + listhead=curpos=0; + + m_server = server; + m_bUTF8 = bUTF8; + + pos=0; + + m_prevline=0; + m_curline=0; + m_curlistaddpos=0; + + //Fill the month names map + + //English month names + m_MonthNamesMap[L"jan"] = 1; + m_MonthNamesMap[L"feb"] = 2; + m_MonthNamesMap[L"mar"] = 3; + m_MonthNamesMap[L"apr"] = 4; + m_MonthNamesMap[L"may"] = 5; + m_MonthNamesMap[L"jun"] = 6; + m_MonthNamesMap[L"june"] = 6; + m_MonthNamesMap[L"jul"] = 7; + m_MonthNamesMap[L"july"] = 7; + m_MonthNamesMap[L"aug"] = 8; + m_MonthNamesMap[L"sep"] = 9; + m_MonthNamesMap[L"sept"] = 9; + m_MonthNamesMap[L"oct"] = 10; + m_MonthNamesMap[L"nov"] = 11; + m_MonthNamesMap[L"dec"] = 12; + + //Numerical values for the month + m_MonthNamesMap[L"1"] = 1; + m_MonthNamesMap[L"01"] = 1; + m_MonthNamesMap[L"2"] = 2; + m_MonthNamesMap[L"02"] = 2; + m_MonthNamesMap[L"3"] = 3; + m_MonthNamesMap[L"03"] = 3; + m_MonthNamesMap[L"4"] = 4; + m_MonthNamesMap[L"04"] = 4; + m_MonthNamesMap[L"5"] = 5; + m_MonthNamesMap[L"05"] = 5; + m_MonthNamesMap[L"6"] = 6; + m_MonthNamesMap[L"06"] = 6; + m_MonthNamesMap[L"7"] = 7; + m_MonthNamesMap[L"07"] = 7; + m_MonthNamesMap[L"8"] = 8; + m_MonthNamesMap[L"08"] = 8; + m_MonthNamesMap[L"9"] = 9; + m_MonthNamesMap[L"09"] = 9; + m_MonthNamesMap[L"10"] = 10; + m_MonthNamesMap[L"11"] = 11; + m_MonthNamesMap[L"12"] = 12; + + //German month names + m_MonthNamesMap[L"mrz"] = 3; + m_MonthNamesMap[L"m\xE4r"] = 3; + m_MonthNamesMap[L"m\xE4rz"] = 3; + m_MonthNamesMap[L"mai"] = 5; + m_MonthNamesMap[L"juni"] = 6; + m_MonthNamesMap[L"m\xC3\xA4r"] = 3; // UTF-8 + m_MonthNamesMap[L"m\xC3\xA4rz"] = 3; // UTF-8 + m_MonthNamesMap[L"juli"] = 7; + m_MonthNamesMap[L"okt"] = 10; + m_MonthNamesMap[L"dez"] = 12; + + //Austrian month names + m_MonthNamesMap[L"j\xE4n"] = 1; + m_MonthNamesMap[L"j\xC3\xA4n"] = 1; // UTF-8 + + //French month names + m_MonthNamesMap[L"janv"] = 1; + m_MonthNamesMap[L"f\xE9"L"b"] = 1; + m_MonthNamesMap[L"f\xE9v"] = 2; + m_MonthNamesMap[L"fev"] = 2; + m_MonthNamesMap[L"f\xE9vr"] = 2; + m_MonthNamesMap[L"fevr"] = 2; + m_MonthNamesMap[L"mars"] = 3; + m_MonthNamesMap[L"mrs"] = 3; + m_MonthNamesMap[L"avr"] = 4; + m_MonthNamesMap[L"juin"] = 6; + m_MonthNamesMap[L"juil"] = 7; + m_MonthNamesMap[L"jui"] = 7; + m_MonthNamesMap[L"ao\xFB"] = 8; + m_MonthNamesMap[L"ao\xFBt"] = 8; + m_MonthNamesMap[L"aout"] = 8; + m_MonthNamesMap[L"d\xE9"L"c"] = 12; + m_MonthNamesMap[L"dec"] = 12; + + //Italian month names + m_MonthNamesMap[L"gen"] = 1; + m_MonthNamesMap[L"mag"] = 5; + m_MonthNamesMap[L"giu"] = 6; + m_MonthNamesMap[L"lug"] = 7; + m_MonthNamesMap[L"ago"] = 8; + m_MonthNamesMap[L"set"] = 9; + m_MonthNamesMap[L"ott"] = 10; + m_MonthNamesMap[L"dic"] = 12; + + //Spanish month names + m_MonthNamesMap[L"ene"] = 1; + m_MonthNamesMap[L"fbro"] = 2; + m_MonthNamesMap[L"mzo"] = 3; + m_MonthNamesMap[L"ab"] = 4; + m_MonthNamesMap[L"abr"] = 4; + m_MonthNamesMap[L"agto"] = 8; + m_MonthNamesMap[L"sbre"] = 9; + m_MonthNamesMap[L"obre"] = 9; + m_MonthNamesMap[L"nbre"] = 9; + m_MonthNamesMap[L"dbre"] = 9; + + //Polish month names + m_MonthNamesMap[L"sty"] = 1; + m_MonthNamesMap[L"lut"] = 2; + m_MonthNamesMap[L"kwi"] = 4; + m_MonthNamesMap[L"maj"] = 5; + m_MonthNamesMap[L"cze"] = 6; + m_MonthNamesMap[L"lip"] = 7; + m_MonthNamesMap[L"sie"] = 8; + m_MonthNamesMap[L"wrz"] = 9; + m_MonthNamesMap[L"pa"] = 10; + m_MonthNamesMap[L"lis"] = 11; + m_MonthNamesMap[L"gru"] = 12; + + //Russian month names + m_MonthNamesMap[L"\xFF\xED\xE2"] = 1; + m_MonthNamesMap[L"\xF4\xE5\xE2"] = 2; + m_MonthNamesMap[L"\xEC\xE0\xF0"] = 3; + m_MonthNamesMap[L"\xE0\xEF\xF0"] = 4; + m_MonthNamesMap[L"\xEC\xE0\xE9"] = 5; + m_MonthNamesMap[L"\xE8\xFE\xED"] = 6; + m_MonthNamesMap[L"\xE8\xFE\xEB"] = 7; + m_MonthNamesMap[L"\xE0\xE2\xE3"] = 8; + m_MonthNamesMap[L"\xF1\xE5\xED"] = 9; + m_MonthNamesMap[L"\xEE\xEA\xF2"] = 10; + m_MonthNamesMap[L"\xED\xEE\xFF"] = 11; + m_MonthNamesMap[L"\xE4\xE5\xEA"] = 12; + + + //Dutch month names + m_MonthNamesMap[L"mrt"] = 3; + m_MonthNamesMap[L"mei"] = 5; + + //Portuguese month names + m_MonthNamesMap[L"out"] = 10; + + //Japanese month names + m_MonthNamesMap[L"1\x8c\x8e"] = 1; + m_MonthNamesMap[L"2\x8c\x8e"] = 2; + m_MonthNamesMap[L"3\x8c\x8e"] = 3; + m_MonthNamesMap[L"4\x8c\x8e"] = 4; + m_MonthNamesMap[L"5\x8c\x8e"] = 5; + m_MonthNamesMap[L"6\x8c\x8e"] = 6; + m_MonthNamesMap[L"7\x8c\x8e"] = 7; + m_MonthNamesMap[L"8\x8c\x8e"] = 8; + m_MonthNamesMap[L"9\x8c\x8e"] = 9; + m_MonthNamesMap[L"10\x8c\x8e"] = 10; + m_MonthNamesMap[L"11\x8c\x8e"] = 11; + m_MonthNamesMap[L"12\x8c\x8e"] = 12; + + //Korean (Unicode) month names + m_MonthNamesMap[L"1\xC6\xD4"] = 1; + m_MonthNamesMap[L"2\xC6\xD4"] = 2; + m_MonthNamesMap[L"3\xC6\xD4"] = 3; + m_MonthNamesMap[L"4\xC6\xD4"] = 4; + m_MonthNamesMap[L"5\xC6\xD4"] = 5; + m_MonthNamesMap[L"6\xC6\xD4"] = 6; + m_MonthNamesMap[L"7\xC6\xD4"] = 7; + m_MonthNamesMap[L"8\xC6\xD4"] = 8; + m_MonthNamesMap[L"9\xC6\xD4"] = 9; + m_MonthNamesMap[L"10\xC6\xD4"] = 10; + m_MonthNamesMap[L"11\xC6\xD4"] = 11; + m_MonthNamesMap[L"12\xC6\xD4"] = 12; + + //Korean (EUC-KR) month names + m_MonthNamesMap[L"1\xBF\xF9"] = 1; + m_MonthNamesMap[L"2\xBF\xF9"] = 2; + m_MonthNamesMap[L"3\xBF\xF9"] = 3; + m_MonthNamesMap[L"4\xBF\xF9"] = 4; + m_MonthNamesMap[L"5\xBF\xF9"] = 5; + m_MonthNamesMap[L"6\xBF\xF9"] = 6; + m_MonthNamesMap[L"7\xBF\xF9"] = 7; + m_MonthNamesMap[L"8\xBF\xF9"] = 8; + m_MonthNamesMap[L"9\xBF\xF9"] = 9; + m_MonthNamesMap[L"10\xBF\xF9"] = 10; + m_MonthNamesMap[L"11\xBF\xF9"] = 11; + m_MonthNamesMap[L"12\xBF\xF9"] = 12; + + //Finnish month names + m_MonthNamesMap[L"tammi"] = 1; + m_MonthNamesMap[L"helmi"] = 2; + m_MonthNamesMap[L"maalis"] = 3; + m_MonthNamesMap[L"huhti"] = 4; + m_MonthNamesMap[L"touko"] = 5; + m_MonthNamesMap[L"kes\xE4"] = 6; + m_MonthNamesMap[L"hein\xE4"] = 7; + m_MonthNamesMap[L"elo"] = 8; + m_MonthNamesMap[L"syys"] = 9; + m_MonthNamesMap[L"loka"] = 10; + m_MonthNamesMap[L"marras"] = 11; + m_MonthNamesMap[L"joulu"] = 12; + + //There are more languages and thus month + //names, but as long nobody reports a + //problem, I won't add them, there are way + //too much languages + + //Some very strange combinations of names and numbers I've seen. + //The developers of those ftp servers must have been dumb. + m_MonthNamesMap[L"jan1"] = 1; + m_MonthNamesMap[L"feb2"] = 2; + m_MonthNamesMap[L"mar3"] = 3; + m_MonthNamesMap[L"apr4"] = 4; + m_MonthNamesMap[L"may5"] = 5; + m_MonthNamesMap[L"jun6"] = 6; + m_MonthNamesMap[L"jul7"] = 7; + m_MonthNamesMap[L"aug8"] = 8; + m_MonthNamesMap[L"sep9"] = 9; + m_MonthNamesMap[L"sept9"] = 9; + m_MonthNamesMap[L"oct0"] = 10; + m_MonthNamesMap[L"nov1"] = 11; + m_MonthNamesMap[L"dec2"] = 12; + + // Slovenian month names + m_MonthNamesMap[L"avg"] = 8; + #ifdef LISTDEBUG - int i=-1; - while (*data[++i]) - { - char *pData=new char[strlen(data[i])+3]; - sprintf(pData, "%s\r\n", data[i]); - AddData(pData, strlen(pData)); - } - TRACE1("%d lines added\n", i); + int i=-1; + while (*data[++i]) + { + char *pData=new char[strlen(data[i])+3]; + sprintf(pData, "%s\r\n", data[i]); + AddData(pData, strlen(pData)); + } + TRACE1("%d lines added\n", i); #endif } CFtpListResult::~CFtpListResult() { - t_list *ptr=listhead; - t_list *ptr2; - while (ptr) - { - delete [] ptr->buffer; - ptr2=ptr; - ptr=ptr->next; - delete ptr2; - } - if (m_prevline) - delete [] m_prevline; - if (m_curline) - delete [] m_curline; + t_list *ptr=listhead; + t_list *ptr2; + while (ptr) + { + delete [] ptr->buffer; + ptr2=ptr; + ptr=ptr->next; + delete ptr2; + } + if (m_prevline) + delete [] m_prevline; + if (m_curline) + delete [] m_curline; } -t_directory::t_direntry *CFtpListResult::getList(int &num, CTime EntryTime, bool mlst) +t_directory::t_direntry *CFtpListResult::getList(int &num, bool mlst) { - #ifdef _DEBUG - USES_CONVERSION; - #endif - char *line=GetLine(); - m_curline=line; - while (line) - { - int tmp; - char *tmpline = new char[strlen(line) + 1]; - strcpy(tmpline, line); - t_directory::t_direntry direntry; - if (parseLine(tmpline, strlen(tmpline), direntry, tmp, mlst)) - { - delete [] tmpline; - if (tmp) - m_server.nServerType |= tmp; - if (direntry.name!=_MPT(".") && direntry.name!=_MPT("..")) - { - AddLine(direntry); - } - if (m_prevline) - { - delete [] m_prevline; - m_prevline=0; - } - if (m_curline!=line) - delete [] m_curline; - delete [] line; - line=GetLine(); - m_curline=line; - } - else - { - delete [] tmpline; - if (m_prevline) - { - if (m_curline!=line) - { - delete [] m_prevline; - m_prevline=m_curline; - delete [] line; - line=GetLine(); - m_curline=line; - } - else - { - line=new char[strlen(m_prevline)+strlen(m_curline)+2]; - sprintf(line, "%s %s", m_prevline, m_curline); - } - } - else - { - m_prevline=line; - line=GetLine(); - m_curline=line; - } - } - } - if (m_prevline) - { - delete [] m_prevline; - m_prevline=0; - } - if (m_curline!=line) - delete [] m_curline; - delete [] line; - m_curline=0; - - num=m_EntryList.size(); - if (!num) - return 0; - t_directory::t_direntry *res=new t_directory::t_direntry[num]; - int i=0; - for (tEntryList::iterator iter=m_EntryList.begin();iter!=m_EntryList.end();iter++, i++) - { - res[i]=*iter; - res[i].EntryTime=EntryTime; - } - m_EntryList.clear(); - - return res; + #ifdef _DEBUG + USES_CONVERSION; + #endif + char *line=GetLine(); + m_curline=line; + while (line) + { + int tmp; + char *tmpline = new char[strlen(line) + 1]; + strcpy(tmpline, line); + t_directory::t_direntry direntry; + if (parseLine(tmpline, strlen(tmpline), direntry, tmp, mlst)) + { + delete [] tmpline; + if (tmp) + m_server.nServerType |= tmp; + if (direntry.name!=L"." && direntry.name!=L"..") + { + AddLine(direntry); + } + if (m_prevline) + { + delete [] m_prevline; + m_prevline=0; + } + if (m_curline!=line) + delete [] m_curline; + delete [] line; + line=GetLine(); + m_curline=line; + } + else + { + delete [] tmpline; + if (m_prevline) + { + if (m_curline!=line) + { + delete [] m_prevline; + m_prevline=m_curline; + delete [] line; + line=GetLine(); + m_curline=line; + } + else + { + line=new char[strlen(m_prevline)+strlen(m_curline)+2]; + sprintf(line, "%s %s", m_prevline, m_curline); + } + } + else + { + m_prevline=line; + line=GetLine(); + m_curline=line; + } + } + } + if (m_prevline) + { + delete [] m_prevline; + m_prevline=0; + } + if (m_curline!=line) + delete [] m_curline; + delete [] line; + m_curline=0; + + num=m_EntryList.size(); + if (!num) + return 0; + t_directory::t_direntry *res=new t_directory::t_direntry[num]; + int i=0; + for (tEntryList::iterator iter=m_EntryList.begin();iter!=m_EntryList.end();iter++, i++) + { + res[i]=*iter; + } + m_EntryList.clear(); + + return res; } BOOL CFtpListResult::parseLine(const char *lineToParse, const int linelen, t_directory::t_direntry &direntry, int &nFTPServerType, bool mlst) { - USES_CONVERSION; + USES_CONVERSION; - nFTPServerType = 0; - direntry.ownergroup = _T(""); + nFTPServerType = 0; + direntry.ownergroup = L""; - if (parseAsMlsd(lineToParse, linelen, direntry, mlst)) - return TRUE; + if (parseAsMlsd(lineToParse, linelen, direntry, mlst)) + return TRUE; - if (parseAsUnix(lineToParse, linelen, direntry)) - return TRUE; + if (parseAsUnix(lineToParse, linelen, direntry)) + return TRUE; - if (parseAsDos(lineToParse, linelen, direntry)) - return TRUE; + if (parseAsDos(lineToParse, linelen, direntry)) + return TRUE; - if (parseAsEPLF(lineToParse, linelen, direntry)) - return TRUE; + if (parseAsEPLF(lineToParse, linelen, direntry)) + return TRUE; - if (parseAsVMS(lineToParse, linelen, direntry)) - { + if (parseAsVMS(lineToParse, linelen, direntry)) + { #ifndef LISTDEBUG - m_server.nServerType |= FZ_SERVERTYPE_SUB_FTP_VMS; + m_server.nServerType |= FZ_SERVERTYPE_SUB_FTP_VMS; #endif // LISTDEBUG - return TRUE; - } + return TRUE; + } - if (parseAsOther(lineToParse, linelen, direntry)) - return TRUE; + if (parseAsOther(lineToParse, linelen, direntry)) + return TRUE; - if (parseAsIBMMVS(lineToParse, linelen, direntry)) - return TRUE; + if (parseAsIBMMVS(lineToParse, linelen, direntry)) + return TRUE; - if (parseAsIBMMVSPDS(lineToParse, linelen, direntry)) - return TRUE; + if (parseAsIBMMVSPDS(lineToParse, linelen, direntry)) + return TRUE; - if (parseAsIBM(lineToParse, linelen, direntry)) - return TRUE; + if (parseAsIBM(lineToParse, linelen, direntry)) + return TRUE; - if (parseAsWfFtp(lineToParse, linelen, direntry)) - return TRUE; + if (parseAsWfFtp(lineToParse, linelen, direntry)) + return TRUE; - // Should be last - if (parseAsIBMMVSPDS2(lineToParse, linelen, direntry)) - return TRUE; + // Should be last + if (parseAsIBMMVSPDS2(lineToParse, linelen, direntry)) + return TRUE; - return FALSE; + return FALSE; } // Used only with LISTDEBUG void CFtpListResult::AddData(char *data, int size) { - #ifdef _DEBUG - USES_CONVERSION; - #endif - if (!size) - return; - - if (!m_curlistaddpos) - m_curlistaddpos = new t_list; - else - { - m_curlistaddpos->next = new t_list; - m_curlistaddpos = m_curlistaddpos->next; - } - if (!listhead) - { - curpos = m_curlistaddpos; - listhead = m_curlistaddpos; - } - m_curlistaddpos->buffer = data; - m_curlistaddpos->len = size; - m_curlistaddpos->next = 0; - - t_list *pOldListPos = curpos; - int nOldListBufferPos = pos; - - //Try if there are already some complete lines - t_directory::t_direntry direntry; - char *line = GetLine(); - m_curline = line; - while (line) - { - if (curpos) - { - pOldListPos = curpos; - nOldListBufferPos = pos; - } - else - { - delete [] line; - if (m_curline != line) - delete [] m_curline; - m_curline = 0; - break; - } - int tmp; - char *tmpline = new char[strlen(line) + 1]; - strcpy(tmpline, line); - if (parseLine(tmpline, strlen(tmpline), direntry, tmp, false)) - { - delete [] tmpline; - if (tmp) - m_server.nServerType |= tmp; - if (direntry.name!=_MPT(".") && direntry.name!=_MPT("..")) - { - AddLine(direntry); - } - if (m_prevline) - { - delete [] m_prevline; - m_prevline=0; - } - if (m_curline!=line) - delete [] m_curline; - delete [] line; - line = GetLine(); - m_curline = line; - } - else - { - delete [] tmpline; - if (m_prevline) - { - if (m_curline != line) - { - delete [] m_prevline; - m_prevline = m_curline; - delete [] line; - line = GetLine(); - m_curline = line; - } - else - { - line=new char[strlen(m_prevline)+strlen(m_curline)+2]; - sprintf(line, "%s %s", m_prevline, m_curline); - } - } - else - { - m_prevline=line; - line=GetLine(); - m_curline=line; - } - } - } - curpos=pOldListPos; - pos=nOldListBufferPos; - + #ifdef _DEBUG + USES_CONVERSION; + #endif + if (!size) + return; + + if (!m_curlistaddpos) + m_curlistaddpos = new t_list; + else + { + m_curlistaddpos->next = new t_list; + m_curlistaddpos = m_curlistaddpos->next; + } + if (!listhead) + { + curpos = m_curlistaddpos; + listhead = m_curlistaddpos; + } + m_curlistaddpos->buffer = data; + m_curlistaddpos->len = size; + m_curlistaddpos->next = 0; + + t_list *pOldListPos = curpos; + int nOldListBufferPos = pos; + + //Try if there are already some complete lines + t_directory::t_direntry direntry; + char *line = GetLine(); + m_curline = line; + while (line) + { + if (curpos) + { + pOldListPos = curpos; + nOldListBufferPos = pos; + } + else + { + delete [] line; + if (m_curline != line) + delete [] m_curline; + m_curline = 0; + break; + } + int tmp; + char *tmpline = new char[strlen(line) + 1]; + strcpy(tmpline, line); + if (parseLine(tmpline, strlen(tmpline), direntry, tmp, false)) + { + delete [] tmpline; + if (tmp) + m_server.nServerType |= tmp; + if (direntry.name!=L"." && direntry.name!=L"..") + { + AddLine(direntry); + } + if (m_prevline) + { + delete [] m_prevline; + m_prevline=0; + } + if (m_curline!=line) + delete [] m_curline; + delete [] line; + line = GetLine(); + m_curline = line; + } + else + { + delete [] tmpline; + if (m_prevline) + { + if (m_curline != line) + { + delete [] m_prevline; + m_prevline = m_curline; + delete [] line; + line = GetLine(); + m_curline = line; + } + else + { + line=new char[strlen(m_prevline)+strlen(m_curline)+2]; + sprintf(line, "%s %s", m_prevline, m_curline); + } + } + else + { + m_prevline=line; + line=GetLine(); + m_curline=line; + } + } + } + curpos=pOldListPos; + pos=nOldListBufferPos; + } -void CFtpListResult::SendToMessageLog(HWND hWnd, UINT nMsg) +void CFtpListResult::SendToMessageLog() { - t_list *oldlistpos = curpos; - int oldbufferpos = pos; - curpos = listhead; - pos=0; - char *line = GetLine(); - // Note that FZ_LOG_INFO here is not checked against debug level, as the direct - // call to PostMessage bypasses check in LogMessage. - // So we get the listing on any logging level, what is actually what we want - if (!line) - { - //Displays a message in the message log - t_ffam_statusmessage *pStatus = new t_ffam_statusmessage; - pStatus->post = TRUE; - pStatus->status = _T(""); - pStatus->type = FZ_LOG_INFO; - PostMessage(hWnd, nMsg, FZ_MSG_MAKEMSG(FZ_MSG_STATUS, 0), (LPARAM)pStatus); - } - while (line) - { - CString status = line; - delete [] line; - - //Displays a message in the message log - t_ffam_statusmessage *pStatus = new t_ffam_statusmessage; - pStatus->post = TRUE; - pStatus->status = status; - pStatus->type = FZ_LOG_INFO; - if (!PostMessage(hWnd, nMsg, FZ_MSG_MAKEMSG(FZ_MSG_STATUS, 0), (LPARAM)pStatus)) - delete pStatus; - - line = GetLine(); - } - curpos = oldlistpos; - pos = oldbufferpos; + t_list *oldlistpos = curpos; + int oldbufferpos = pos; + curpos = listhead; + pos=0; + char *line = GetLine(); + // Note that FZ_LOG_INFO here is not checked against debug level, as the direct + // call to PostMessage bypasses check in LogMessage. + // So we get the listing on any logging level, what is actually what we want + if (!line) + { + //Displays a message in the message log + t_ffam_statusmessage *pStatus = new t_ffam_statusmessage; + pStatus->post = TRUE; + pStatus->status = L""; + pStatus->type = FZ_LOG_INFO; + GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_STATUS, 0), (LPARAM)pStatus); + } + while (line) + { + CString status = line; + delete [] line; + + //Displays a message in the message log + t_ffam_statusmessage *pStatus = new t_ffam_statusmessage; + pStatus->post = TRUE; + pStatus->status = status; + pStatus->type = FZ_LOG_INFO; + if (!GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_STATUS, 0), (LPARAM)pStatus)) + delete pStatus; + + line = GetLine(); + } + curpos = oldlistpos; + pos = oldbufferpos; } char * CFtpListResult::GetLine() { - if (!curpos) - return 0; - int len=curpos->len; - while (curpos->buffer[pos]=='\r' || curpos->buffer[pos]=='\n' || curpos->buffer[pos]==' ' || curpos->buffer[pos]=='\t') - { - pos++; - if (pos>=len) - { - curpos=curpos->next; - if (!curpos) - return 0; - len=curpos->len; - pos=0; - } - } - - t_list *startptr=curpos; - int startpos=pos; - int reslen=0; - - int emptylen=0; - - while ((curpos->buffer[pos]!='\n')&&(curpos->buffer[pos]!='\r')) - { - if (curpos->buffer[pos]!=' ' && curpos->buffer[pos]!='\t') - { - reslen+=emptylen+1; - emptylen=0; - } - else - emptylen++; - pos++; - if (pos>=len) - { - curpos=curpos->next; - if (!curpos) - break; - len=curpos->len; - pos=0; - } - } - - char *res = new char[reslen+1]; - res[reslen]=0; - int respos=0; - while (startptr!=curpos && reslen) - { - int copylen=startptr->len-startpos; - if (copylen>reslen) - copylen=reslen; - memcpy(&res[respos],&startptr->buffer[startpos], copylen); - reslen-=copylen; - respos+=startptr->len-startpos; - startpos=0; - startptr=startptr->next; - } - if (curpos && reslen) - { - int copylen=pos-startpos; - if (copylen>reslen) - copylen=reslen; - memcpy(&res[respos], &curpos->buffer[startpos], copylen); - } - - return res; + if (!curpos) + return 0; + int len=curpos->len; + while (curpos->buffer[pos]=='\r' || curpos->buffer[pos]=='\n' || curpos->buffer[pos]==' ' || curpos->buffer[pos]=='\t') + { + pos++; + if (pos>=len) + { + curpos=curpos->next; + if (!curpos) + return 0; + len=curpos->len; + pos=0; + } + } + + t_list *startptr=curpos; + int startpos=pos; + int reslen=0; + + int emptylen=0; + + while ((curpos->buffer[pos]!='\n')&&(curpos->buffer[pos]!='\r')) + { + if (curpos->buffer[pos]!=' ' && curpos->buffer[pos]!='\t') + { + reslen+=emptylen+1; + emptylen=0; + } + else + emptylen++; + pos++; + if (pos>=len) + { + curpos=curpos->next; + if (!curpos) + break; + len=curpos->len; + pos=0; + } + } + + char *res = new char[reslen+1]; + res[reslen]=0; + int respos=0; + while (startptr!=curpos && reslen) + { + int copylen=startptr->len-startpos; + if (copylen>reslen) + copylen=reslen; + memcpy(&res[respos],&startptr->buffer[startpos], copylen); + reslen-=copylen; + respos+=startptr->len-startpos; + startpos=0; + startptr=startptr->next; + } + if (curpos && reslen) + { + int copylen=pos-startpos; + if (copylen>reslen) + copylen=reslen; + memcpy(&res[respos], &curpos->buffer[startpos], copylen); + } + + return res; } void CFtpListResult::AddLine(t_directory::t_direntry &direntry) { - if (m_server.nTimeZoneOffset && - direntry.date.hasdate && direntry.date.hastime && !direntry.date.utc) - { - SYSTEMTIME st = {0}; - st.wYear = direntry.date.year; - st.wMonth = direntry.date.month; - st.wDay = direntry.date.day; - st.wHour = direntry.date.hour; - st.wMinute = direntry.date.minute; - st.wSecond = direntry.date.second; - - FILETIME ft; - SystemTimeToFileTime(&st, &ft); - _int64 nFt = ((_int64)ft.dwHighDateTime << 32) + ft.dwLowDateTime; - _int64 nFt2 = nFt; - nFt += ((_int64)m_server.nTimeZoneOffset) * 10000000 * 60; - ft.dwHighDateTime = static_cast(nFt >> 32); - ft.dwLowDateTime = static_cast(nFt & 0xFFFFFFFF); - FileTimeToSystemTime(&ft, &st); - direntry.date.year = st.wYear; - direntry.date.month = st.wMonth; - direntry.date.day = st.wDay; - direntry.date.hour = st.wHour; - direntry.date.minute = st.wMinute; - direntry.date.second = st.wSecond; - } - direntry.lName = direntry.name; - direntry.lName.MakeLower(); - - if (m_server.nServerType&FZ_SERVERTYPE_SUB_FTP_VMS && - (!COptions::GetOptionVal(OPTION_VMSALLREVISIONS) || direntry.dir)) - { //Remove version information, only keep the latest file - int pos=direntry.name.ReverseFind(_MPT(';')); - if (pos<=0 || pos>=(direntry.name.GetLength()-1)) - return;; - int version=_ttoi(direntry.name.Mid(pos+1)); - direntry.name=direntry.name.Left(pos); - - tEntryList::iterator entryiter=m_EntryList.begin(); - tTempData::iterator dataiter=m_TempData.begin(); - BOOL bContinue=FALSE; - while (entryiter!=m_EntryList.end()) - { - ASSERT(dataiter!=m_TempData.end()); - t_directory::t_direntry dir=*entryiter; - int oldversion=*dataiter; - if (direntry.name==dir.name) - { - bContinue=TRUE; - if (version>oldversion) - { - *entryiter=direntry; - *dataiter=version; - } - break; - } - entryiter++; - dataiter++; - } - if (bContinue) - return; - m_EntryList.push_back(direntry); - m_TempData.push_back(version); - } - else - { - m_EntryList.push_back(direntry); - m_TempData.push_back(0); - } + if (m_server.nTimeZoneOffset && + direntry.date.hasdate && direntry.date.hastime && !direntry.date.utc) + { + SYSTEMTIME st = {0}; + st.wYear = direntry.date.year; + st.wMonth = direntry.date.month; + st.wDay = direntry.date.day; + st.wHour = direntry.date.hour; + st.wMinute = direntry.date.minute; + st.wSecond = direntry.date.second; + + FILETIME ft; + SystemTimeToFileTime(&st, &ft); + _int64 nFt = ((_int64)ft.dwHighDateTime << 32) + ft.dwLowDateTime; + _int64 nFt2 = nFt; + nFt += ((_int64)m_server.nTimeZoneOffset) * 10000000 * 60; + ft.dwHighDateTime = static_cast(nFt >> 32); + ft.dwLowDateTime = static_cast(nFt & 0xFFFFFFFF); + FileTimeToSystemTime(&ft, &st); + direntry.date.year = st.wYear; + direntry.date.month = st.wMonth; + direntry.date.day = st.wDay; + direntry.date.hour = st.wHour; + direntry.date.minute = st.wMinute; + direntry.date.second = st.wSecond; + } + + if (m_server.nServerType&FZ_SERVERTYPE_SUB_FTP_VMS && + (!GetOptionVal(OPTION_VMSALLREVISIONS) || direntry.dir)) + { //Remove version information, only keep the latest file + int pos=direntry.name.ReverseFind(L';'); + if (pos<=0 || pos>=(direntry.name.GetLength()-1)) + return;; + int version=_ttoi(direntry.name.Mid(pos+1)); + direntry.name=direntry.name.Left(pos); + + tEntryList::iterator entryiter=m_EntryList.begin(); + tTempData::iterator dataiter=m_TempData.begin(); + BOOL bContinue=FALSE; + while (entryiter!=m_EntryList.end()) + { + DebugAssert(dataiter!=m_TempData.end()); + t_directory::t_direntry dir=*entryiter; + int oldversion=*dataiter; + if (direntry.name==dir.name) + { + bContinue=TRUE; + if (version>oldversion) + { + *entryiter=direntry; + *dataiter=version; + } + break; + } + entryiter++; + dataiter++; + } + if (bContinue) + return; + m_EntryList.push_back(direntry); + m_TempData.push_back(version); + } + else + { + m_EntryList.push_back(direntry); + m_TempData.push_back(0); + } } bool CFtpListResult::IsNumeric(const char *str, int len) const { - if (!str) - return false; - if (!*str) - return false; - const char *p=str; - while(*p) - { - if (len != -1) - if ((p - str) >= len) - return true; - - if (*p<'0' || *p>'9') - { - return false; - } - p++; - } - return true; + if (!str) + return false; + if (!*str) + return false; + const char *p=str; + while(*p) + { + if (len != -1) + if ((p - str) >= len) + return true; + + if (*p<'0' || *p>'9') + { + return false; + } + p++; + } + return true; } bool CFtpListResult::ParseShortDate(const char *str, int len, t_directory::t_direntry::t_date &date) const { - if (!str) - return false; - - if (len <= 0) - return false; - - int i=0; - - //Extract the date - BOOL bGotYear = FALSE; - BOOL bGotMonth = FALSE; - BOOL bGotDay = FALSE; - int value = 0; - bool numeric = true; - while (str[i] != '-' && str[i] != '.' && str[i] != '/') - { - if (!str[i]) - return false; - - // Left half of token not numeric, check if it's a month name - if (str[i] < '0' || str[i] > '9') - numeric = false; - else - { - value *= 10; - value += str[i] - '0'; - } - i++; - if (i == len) - return false; - } - if (!i) - return false; - - if (!numeric) - { - std::map::const_iterator iter; - - char *tmpstr = new char[i + 1]; - strncpy(tmpstr, str, i); - tmpstr[i] = 0; - strlwr(tmpstr); - - USES_CONVERSION; - iter = m_MonthNamesMap.find(A2T(tmpstr)); - delete [] tmpstr; - if (iter == m_MonthNamesMap.end()) - return false; - - date.month = iter->second; - bGotMonth = true; - } - else if (i == 4) - { //Seems to be yyyy-mm-dd - if (value < 1900) - return false; - date.year = value; - bGotYear = TRUE; - } - else if (i <= 2) - { - if (str[i] == '.') - { - // Maybe dd.mm.yyyy - if (!value || value > 31) - return false; - date.day = value; - bGotDay = TRUE; - } - else - { - // Seems to be mm-dd-yyyy or mm/dd/yyyy (stupid format, though) - if (!value) - return false; - else if (value > 12) // sigh, guess dd/mm/yyyy instead - { - date.day = value; - bGotDay = true; - } - else - { - date.month = value; - bGotMonth = TRUE; - } - } - } - else - return false; - - - //Extract the second date field - const char *p = str + i + 1; - len -= i + 1; - i=0; - value=0; - - if (i >= len) - return false; - - while (p[i]!='-' && p[i]!='.' && p[i]!='/') - { - value *= 10; - value += p[i]-'0'; - i++; - - if (i >= len) - return false; - } - if (bGotYear || bGotDay) - { - // Month field in yyyy-mm-dd or dd-mm-yyyy - if (!value || value > 12) - return false; - date.month = value; - bGotMonth = TRUE; - - } - else - { - // Day field in mm-dd-yyyy - if (!value || value > 31) - return false; - date.day = value; - bGotDay = TRUE; - } - - //Extract the last date field - p += i+1; - len -= i + 1; - i=0; - value=0; - - if (i >= len) - return false; - while (p[i]!='-' && p[i]!='.' && p[i]!='/') - { - value *= 10; - value += p[i]-'0'; - i++; - if (i >= len) - break; - } - - if (bGotYear) - { - // Day field in yyyy-mm-dd - if (!value || value > 31) - return false; - date.day = value; - } - else - { - //Year in dd.mm.yyyy or mm-dd-yyyy - date.year = value; - if (date.year<50) - date.year+=2000; - else if (date.year<1000) - date.year += 1900; - } - - date.hasdate = TRUE; - return true; + if (!str) + return false; + + if (len <= 0) + return false; + + int i=0; + + //Extract the date + BOOL bGotYear = FALSE; + BOOL bGotMonth = FALSE; + BOOL bGotDay = FALSE; + int value = 0; + bool numeric = true; + while (str[i] != '-' && str[i] != '.' && str[i] != '/') + { + if (!str[i]) + return false; + + // Left half of token not numeric, check if it's a month name + if (str[i] < '0' || str[i] > '9') + numeric = false; + else + { + value *= 10; + value += str[i] - '0'; + } + i++; + if (i == len) + return false; + } + if (!i) + return false; + + if (!numeric) + { + std::map::const_iterator iter; + + char *tmpstr = new char[i + 1]; + strncpy(tmpstr, str, i); + tmpstr[i] = 0; + strlwr(tmpstr); + + USES_CONVERSION; + iter = m_MonthNamesMap.find(A2T(tmpstr)); + delete [] tmpstr; + if (iter == m_MonthNamesMap.end()) + return false; + + date.month = iter->second; + bGotMonth = true; + } + else if (i == 4) + { //Seems to be yyyy-mm-dd + if (value < 1900) + return false; + date.year = value; + bGotYear = TRUE; + } + else if (i <= 2) + { + if (str[i] == '.') + { + // Maybe dd.mm.yyyy + if (!value || value > 31) + return false; + date.day = value; + bGotDay = TRUE; + } + else + { + // Seems to be mm-dd-yyyy or mm/dd/yyyy (stupid format, though) + if (!value) + return false; + else if (value > 12) // sigh, guess dd/mm/yyyy instead + { + date.day = value; + bGotDay = true; + } + else + { + date.month = value; + bGotMonth = TRUE; + } + } + } + else + return false; + + + //Extract the second date field + const char *p = str + i + 1; + len -= i + 1; + i=0; + value=0; + + if (i >= len) + return false; + + while (p[i]!='-' && p[i]!='.' && p[i]!='/') + { + value *= 10; + value += p[i]-'0'; + i++; + + if (i >= len) + return false; + } + if (bGotYear || bGotDay) + { + // Month field in yyyy-mm-dd or dd-mm-yyyy + if (!value || value > 12) + return false; + date.month = value; + bGotMonth = TRUE; + + } + else + { + // Day field in mm-dd-yyyy + if (!value || value > 31) + return false; + date.day = value; + bGotDay = TRUE; + } + + //Extract the last date field + p += i+1; + len -= i + 1; + i=0; + value=0; + + if (i >= len) + return false; + while (p[i]!='-' && p[i]!='.' && p[i]!='/') + { + value *= 10; + value += p[i]-'0'; + i++; + if (i >= len) + break; + } + + if (bGotYear) + { + // Day field in yyyy-mm-dd + if (!value || value > 31) + return false; + date.day = value; + } + else + { + //Year in dd.mm.yyyy or mm-dd-yyyy + date.year = value; + if (date.year<50) + date.year+=2000; + else if (date.year<1000) + date.year += 1900; + } + + date.hasdate = TRUE; + return true; } BOOL CFtpListResult::parseAsVMS(const char *line, const int linelen, t_directory::t_direntry &direntry) { - int tokenlen = 0; - int pos = 0; - USES_CONVERSION; - - std::map::const_iterator iter; - t_directory::t_direntry dir; - - dir.bUnsure = FALSE; - - const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - if (!strnchr(str, tokenlen, ';')) - return FALSE; - - dir.size = -2; - const char *separator = strnchr(str, tokenlen, ';'); - if (!separator) - return FALSE; - - dir.dir = FALSE; - - if ((separator - str) > 4) - if (*(separator - 4) == '.') - if (*(separator - 3) == 'D') - if (*(separator - 2) == 'I') - if (*(separator - 1) == 'R') - { - dir.dir = TRUE; - } - if (dir.dir) - { - int i; - LPTSTR pBuffer = dir.name.GetBuffer(tokenlen - 4); - for (i = 0; i < (separator - str - 4); i++) - pBuffer[i] = str[i]; - for (i = 0; i < (tokenlen - (separator - str)); i++) - pBuffer[i + (separator - str) - 4] = separator[i]; - dir.name.ReleaseBuffer(tokenlen - 4); - } - else - copyStr(dir.name, 0, str, tokenlen); - - // This field is either the size or a username (???) enclosed in []. - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - bool gotSize = false; - const char *p = strnchr(str, tokenlen, '/'); - if (!p && IsNumeric(str, tokenlen)) - { - gotSize = true; - dir.size = strntoi64(str, tokenlen) * 512; - } - else if (p && p > str && IsNumeric(str, p - str)) - { - gotSize = true; - dir.size = strntoi64(str, p - str) * 512; - } - else - { - if (tokenlen < 3 || str[0] != '[' || str[tokenlen - 1] != ']') - return false; - copyStr(dir.ownergroup, 0, str + 1, tokenlen - 2); - } - - if (!gotSize) - { - //Size - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - const char *p = strnchr(str, tokenlen, '/'); - int len; - if (p) - len = p - str; - else - len = tokenlen; - - if (!IsNumeric(str, len)) - return FALSE; - - dir.size = strntoi64(str, len) * 512; - } - - //Get date - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - dir.date.hasdate = TRUE; - - //Day - p = str; - - while (*p != '-') - if ((++p - str) == tokenlen) - return 0; - - dir.date.day = static_cast(strntoi64(str, p-str)); - if (!dir.date.day || dir.date.day > 31) - return FALSE; - - p++; - const char *pMonth = p; - //Month - while (*p != '-') - if ((++p - str) == tokenlen) - return FALSE; - if ((p - pMonth) >= 15) - return FALSE; - char buffer[15] = {0}; - memcpy(buffer, pMonth, p-pMonth); - strlwr(buffer); - iter = m_MonthNamesMap.find(A2T(buffer)); - if (iter == m_MonthNamesMap.end()) - return FALSE; - dir.date.month = iter->second; - p++; - - dir.date.year = static_cast(strntoi64(p, tokenlen - (p - str))); - - //Get time - str = GetNextToken(line, linelen, tokenlen, pos, 0); - - if (str && strnchr(str + 1, tokenlen - 2, ':')) - { - dir.date.hastime = TRUE; - - p = str; - //Hours - while (*p != ':') - if ((++p - str) == tokenlen) - return 0; - - dir.date.hour = static_cast(strntoi64(str, p - str)); - if (dir.date.hour < 0 || dir.date.hour > 23) - return FALSE; - p++; - - const char *pMinute = p; - //Minutes - while (*p && *p != ':' ) - p++; - - dir.date.minute = static_cast(strntoi64(pMinute, p - pMinute)); - if (dir.date.minute < 0 || dir.date.minute > 59) - return FALSE; - - str = GetNextToken(line, linelen, tokenlen, pos, 0); - } - else - { - dir.date.hastime = FALSE; - } - - while (str) - { - if (tokenlen > 2 && str[0] == '(' && str[tokenlen - 1] == ')') - { - if (dir.permissionstr != _T("")) - dir.permissionstr += _T(" "); - CString tmp; - copyStr(tmp, 0, str + 1, tokenlen - 2); - dir.permissionstr += tmp; - } - else if (tokenlen > 2 && str[0] == '[' && str[tokenlen - 1] == ']') - { - if (dir.ownergroup != _T("")) - dir.ownergroup += _T(" "); - CString tmp; - copyStr(tmp, 0, str + 1, tokenlen - 2); - dir.ownergroup += tmp; - } - else - { - if (dir.permissionstr != _T("")) - dir.permissionstr += _T(" "); - CString tmp; - copyStr(tmp, 0, str, tokenlen); - dir.permissionstr += tmp; - } - - str = GetNextToken(line, linelen, tokenlen, pos, 0); - } - - direntry = dir; - - return TRUE; + int tokenlen = 0; + int pos = 0; + USES_CONVERSION; + + std::map::const_iterator iter; + t_directory::t_direntry dir; + + dir.bUnsure = FALSE; + + const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + if (!strnchr(str, tokenlen, ';')) + return FALSE; + + dir.size = -2; + const char *separator = strnchr(str, tokenlen, ';'); + if (!separator) + return FALSE; + + dir.dir = FALSE; + + if ((separator - str) > 4) + if (*(separator - 4) == '.') + if (*(separator - 3) == 'D') + if (*(separator - 2) == 'I') + if (*(separator - 1) == 'R') + { + dir.dir = TRUE; + } + if (dir.dir) + { + int i; + LPTSTR pBuffer = dir.name.GetBuffer(tokenlen - 4); + for (i = 0; i < (separator - str - 4); i++) + pBuffer[i] = str[i]; + for (i = 0; i < (tokenlen - (separator - str)); i++) + pBuffer[i + (separator - str) - 4] = separator[i]; + dir.name.ReleaseBuffer(tokenlen - 4); + } + else + copyStr(dir.name, 0, str, tokenlen); + + // This field is either the size or a username (???) enclosed in []. + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + bool gotSize = false; + const char *p = strnchr(str, tokenlen, '/'); + if (!p && IsNumeric(str, tokenlen)) + { + gotSize = true; + dir.size = strntoi64(str, tokenlen) * 512; + } + else if (p && p > str && IsNumeric(str, p - str)) + { + gotSize = true; + dir.size = strntoi64(str, p - str) * 512; + } + else + { + if (tokenlen < 3 || str[0] != '[' || str[tokenlen - 1] != ']') + return false; + copyStr(dir.ownergroup, 0, str + 1, tokenlen - 2); + } + + if (!gotSize) + { + //Size + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + const char *p = strnchr(str, tokenlen, '/'); + int len; + if (p) + len = p - str; + else + len = tokenlen; + + if (!IsNumeric(str, len)) + return FALSE; + + dir.size = strntoi64(str, len) * 512; + } + + //Get date + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + dir.date.hasdate = TRUE; + + //Day + p = str; + + while (*p != '-') + if ((++p - str) == tokenlen) + return 0; + + dir.date.day = static_cast(strntoi64(str, p-str)); + if (!dir.date.day || dir.date.day > 31) + return FALSE; + + p++; + const char *pMonth = p; + //Month + while (*p != '-') + if ((++p - str) == tokenlen) + return FALSE; + if ((p - pMonth) >= 15) + return FALSE; + char buffer[15] = {0}; + memcpy(buffer, pMonth, p-pMonth); + strlwr(buffer); + iter = m_MonthNamesMap.find(A2T(buffer)); + if (iter == m_MonthNamesMap.end()) + return FALSE; + dir.date.month = iter->second; + p++; + + dir.date.year = static_cast(strntoi64(p, tokenlen - (p - str))); + + //Get time + str = GetNextToken(line, linelen, tokenlen, pos, 0); + + if (str && strnchr(str + 1, tokenlen - 2, ':')) + { + dir.date.hastime = TRUE; + + p = str; + //Hours + while (*p != ':') + if ((++p - str) == tokenlen) + return 0; + + dir.date.hour = static_cast(strntoi64(str, p - str)); + if (dir.date.hour < 0 || dir.date.hour > 23) + return FALSE; + p++; + + const char *pMinute = p; + //Minutes + while (*p && *p != ':' ) + p++; + + dir.date.minute = static_cast(strntoi64(pMinute, p - pMinute)); + if (dir.date.minute < 0 || dir.date.minute > 59) + return FALSE; + + str = GetNextToken(line, linelen, tokenlen, pos, 0); + } + else + { + dir.date.hastime = FALSE; + } + + while (str) + { + if (tokenlen > 2 && str[0] == '(' && str[tokenlen - 1] == ')') + { + if (dir.permissionstr != L"") + dir.permissionstr += L" "; + CString tmp; + copyStr(tmp, 0, str + 1, tokenlen - 2); + dir.permissionstr += tmp; + } + else if (tokenlen > 2 && str[0] == '[' && str[tokenlen - 1] == ']') + { + if (dir.ownergroup != L"") + dir.ownergroup += L" "; + CString tmp; + copyStr(tmp, 0, str + 1, tokenlen - 2); + dir.ownergroup += tmp; + } + else + { + if (dir.permissionstr != L"") + dir.permissionstr += L" "; + CString tmp; + copyStr(tmp, 0, str, tokenlen); + dir.permissionstr += tmp; + } + + str = GetNextToken(line, linelen, tokenlen, pos, 0); + } + + direntry = dir; + + return TRUE; } BOOL CFtpListResult::parseAsEPLF(const char *line, const int linelen, t_directory::t_direntry &direntry) { - t_directory::t_direntry dir; - const char *str = strstr(line, "\t"); - - //Check if directory listing is an EPLF one - if (*line=='+' && str) - { - str++; - if (!*str) - return FALSE; - dir.bLink = FALSE; - dir.bUnsure = FALSE; - dir.date.hasdate = dir.date.hastime = FALSE; - dir.dir = FALSE; - dir.size = -2; - dir.name = str; - const char *fact = line + 1; - const char *nextfact = fact; - nextfact = strstr(nextfact, ","); - //if (nextfact && nextfact < str) - // *nextfact=0; - while (fact<=(str-2)) - { - int len; - if (!nextfact) - len = str - fact - 1; - else - len = nextfact - fact; - if (len == 1 && fact[0] == '/') - dir.dir = TRUE; - else if (*fact=='s') - dir.size = strntoi64(fact+1, len-1); - else if (*fact=='m') - { - __int64 rawtime = strntoi64(fact+1, len-1); - COleDateTime time((time_t)rawtime); - dir.date.hasdate = TRUE; - dir.date.hastime = TRUE; - dir.date.year = time.GetYear(); - dir.date.month = time.GetMonth(); - dir.date.day = time.GetDay(); - dir.date.hour = time.GetHour(); - dir.date.minute = time.GetMinute(); - } - else if (len == 5 && *fact=='u' && *(fact+1)=='p') - { - char buffer[4] = {0}; - memcpy(buffer, fact+2, len-2); - direntry.permissionstr = buffer; - } - if (!nextfact || nextfact>=(str-2)) - break; - fact = nextfact+1; - nextfact = strstr(nextfact+1, ","); -// if (nextfact && nextfact=(str-2)) + break; + fact = nextfact+1; + nextfact = strstr(nextfact+1, ","); +// if (nextfact && nextfact delim) - { - return FALSE; - } - - CString factname = facts.Left(pos); - factname.MakeLower(); - CString value = facts.Mid(pos + 1, delim - pos - 1); - // When adding new facts, update filter in CFtpControlSocket::LogOnToServer - // (CONNECT_FEAT state) - if (factname == _T("type")) - { - if (!value.CompareNoCase(_T("dir"))) - { - direntry.dir = TRUE; - } - // This is syntax used by proftpd by default - // http://www.proftpd.org/docs/modules/mod_facts.html - // They claim it's the correct one. - // See also - // http://www.rfc-editor.org/errata_search.php?rfc=3659&eid=1500 - else if (!value.Left(15).CompareNoCase(_T("OS.unix=symlink"))) - { - direntry.dir = TRUE; - direntry.bLink = TRUE; - // actually symlink target should not be included in this syntax, - // but just in case some servers do. - if ((value.GetLength() > 16) && (value[15] == ':')) - direntry.linkTarget = value.Mid(16); - } - // This is syntax shown in RFC 3659 section 7.7.4 "A More Complex Example" - // Type=OS.unix=slink:/foobar;Perm=;Unique=keVO1+4G4; foobar - // https://tools.ietf.org/html/rfc3659 - else if (!value.Left(13).CompareNoCase(_T("OS.unix=slink"))) - { - direntry.dir = TRUE; - direntry.bLink = TRUE; - if ((value.GetLength() > 14) && (value[13] == ':')) - direntry.linkTarget = value.Mid(14); - } - else if (!value.CompareNoCase(L"cdir")) - { - // ProFTPD up to 1.3.6rc1 and 1.3.5a incorrectly uses "cdir" for the current working directory. - // So at least in MLST, where this would be the only entry, we treat it like "dir". - if (mlst) - { - direntry.dir = TRUE; - } - else - { - return FALSE; - } - } - else if (!value.CompareNoCase(L"pdir")) - { - return FALSE; - } - } - else if (factname == _T("size")) - { - direntry.size = 0; - - for (unsigned int i = 0; i < value.GetLength(); ++i) - { - if (value[i] < '0' || value[i] > '9') - return FALSE; - direntry.size *= 10; - direntry.size += value[i] - '0'; - } - } - else if (factname == _T("modify") || - (!direntry.date.hasdate && factname == _T("create"))) - { - if (!parseMlsdDateTime(value, direntry.date)) - return FALSE; - } - else if (factname == _T("perm")) - { - // there's no way we can convert Perm fact to unix-style permissions, - // so we at least present Perm as-is to a user - direntry.humanpermstr = value; - } - else if (factname == _T("unix.mode")) - { - direntry.permissionstr = value; - } - else if (factname == _T("unix.owner") || factname == _T("unix.user")) - { - owner = value; - } - else if (factname == _T("unix.group")) - { - group = value; - } - else if (factname == _T("unix.uid")) - { - uid = value; - } - else if (factname == _T("unix.gid")) - { - gid = value; - } - - facts = facts.Mid(delim + 1); - } - - // The order of the facts is undefined, so assemble ownerGroup in correct - // order - if (!owner.IsEmpty()) - direntry.ownergroup += owner; - else if (!uid.IsEmpty()) - direntry.ownergroup += uid; - if (!group.IsEmpty()) - direntry.ownergroup += _T(" ") + group; - else if (!gid.IsEmpty()) - direntry.ownergroup += _T(" ") + gid; - - if (!(str = GetNextToken(line, linelen, tokenlen, pos, 1))) - return FALSE; - - CString fileName; - copyStr(fileName, 0, str, tokenlen, true); - CServerPath path(fileName); - direntry.name = path.GetLastSegment(); - if (direntry.name.IsEmpty()) - { - direntry.name = fileName; - } - return TRUE; + #ifdef _DEBUG + USES_CONVERSION; + #endif + // MLSD format as described here: http://www.ietf.org/internet-drafts/draft-ietf-ftpext-mlst-16.txt + // Parsing is done strict, abort on slightest error. + + // If we ever add some detection that entry is symlink, + // make sure to add support for resolving the symlink + // using MLST to TFTPFileSystem::ReadSymlink + + int pos = 0; + int tokenlen = 0; + + const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + { + return FALSE; + } + CString facts(str, tokenlen); + if (facts.IsEmpty()) + { + return FALSE; + } + direntry.bUnsure = FALSE; + direntry.dir = FALSE; + direntry.bLink = FALSE; + direntry.ownergroup = L""; + direntry.permissionstr = L""; + + CString owner, group, uid, gid; + + while (!facts.IsEmpty()) + { + int delim = facts.Find(';'); + if (delim < 3) + { + if (delim != -1) + { + return 0; + } + else + delim = facts.GetLength(); + } + + int pos = facts.Find('='); + if (pos < 1 || pos > delim) + { + return FALSE; + } + + CString factname = facts.Left(pos); + factname.MakeLower(); + CString value = facts.Mid(pos + 1, delim - pos - 1); + // When adding new facts, update filter in CFtpControlSocket::LogOnToServer + // (CONNECT_FEAT state) + if (factname == L"type") + { + if (!value.CompareNoCase(L"dir")) + { + direntry.dir = TRUE; + } + // This is syntax used by proftpd by default + // http://www.proftpd.org/docs/modules/mod_facts.html + // They claim it's the correct one. + // See also + // http://www.rfc-editor.org/errata_search.php?rfc=3659&eid=1500 + else if (!value.Left(15).CompareNoCase(L"OS.unix=symlink")) + { + direntry.dir = TRUE; + direntry.bLink = TRUE; + // actually symlink target should not be included in this syntax, + // but just in case some servers do. + if ((value.GetLength() > 16) && (value[15] == ':')) + direntry.linkTarget = value.Mid(16); + } + // This is syntax shown in RFC 3659 section 7.7.4 "A More Complex Example" + // Type=OS.unix=slink:/foobar;Perm=;Unique=keVO1+4G4; foobar + // https://tools.ietf.org/html/rfc3659 + else if (!value.Left(13).CompareNoCase(L"OS.unix=slink")) + { + direntry.dir = TRUE; + direntry.bLink = TRUE; + if ((value.GetLength() > 14) && (value[13] == ':')) + direntry.linkTarget = value.Mid(14); + } + else if (!value.CompareNoCase(L"cdir")) + { + // ProFTPD up to 1.3.6rc1 and 1.3.5a incorrectly uses "cdir" for the current working directory. + // So at least in MLST, where this would be the only entry, we treat it like "dir". + if (mlst) + { + direntry.dir = TRUE; + } + else + { + return FALSE; + } + } + else if (!value.CompareNoCase(L"pdir")) + { + return FALSE; + } + } + else if (factname == L"size") + { + direntry.size = 0; + + for (unsigned int i = 0; i < value.GetLength(); ++i) + { + if (value[i] < '0' || value[i] > '9') + { + return FALSE; + } + direntry.size *= 10; + direntry.size += value[i] - '0'; + } + } + else if (factname == L"modify" || + (!direntry.date.hasdate && factname == L"create")) + { + if (!parseMlsdDateTime(value, direntry.date)) + { + return FALSE; + } + } + else if (factname == L"perm") + { + // there's no way we can convert Perm fact to unix-style permissions, + // so we at least present Perm as-is to a user + direntry.humanpermstr = value; + } + else if (factname == L"unix.mode") + { + direntry.permissionstr = value; + } + else if (factname == L"unix.owner" || factname == L"unix.user") + { + owner = value; + } + else if (factname == L"unix.group") + { + group = value; + } + else if (factname == L"unix.uid") + { + uid = value; + } + else if (factname == L"unix.gid") + { + gid = value; + } + + facts = facts.Mid(delim + 1); + } + + // The order of the facts is undefined, so assemble ownerGroup in correct + // order + if (!owner.IsEmpty()) + direntry.ownergroup += owner; + else if (!uid.IsEmpty()) + direntry.ownergroup += uid; + if (!group.IsEmpty()) + direntry.ownergroup += L" " + group; + else if (!gid.IsEmpty()) + direntry.ownergroup += L" " + gid; + + if (line[pos] != L' ') + { + return FALSE; + } + pos++; + CString fileName; + copyStr(fileName, 0, line + pos, linelen - pos, true); + CServerPath path(fileName, false); // do not trim + direntry.name = path.GetLastSegment(); + if (direntry.name.IsEmpty()) + { + direntry.name = fileName; + } + return TRUE; } bool CFtpListResult::parseMlsdDateTime(const CString value, t_directory::t_direntry::t_date &date) const { - if (value.IsEmpty()) - return FALSE; - - bool result = FALSE; - int Year, Month, Day, Hours, Minutes, Seconds; - Year=Month=Day=Hours=Minutes=Seconds=0; - if (swscanf((LPCWSTR)value, L"%4d%2d%2d%2d%2d%2d", &Year, &Month, &Day, &Hours, &Minutes, &Seconds) == 6) - { - date.hasdate = TRUE; - date.hastime = TRUE; - date.hasseconds = TRUE; - result = TRUE; - } - else if (swscanf((LPCWSTR)value, L"%4d%2d%2d", &Year, &Month, &Day) == 3) - { - date.hasdate = TRUE; - date.hastime = FALSE; - result = TRUE; - } - if (result) - { - date.year = Year; - date.month = Month; - date.day = Day; - date.hour = Hours; - date.minute = Minutes; - date.second = Seconds; - date.utc = TRUE; - } - return result; + if (value.IsEmpty()) + { + return FALSE; + } + + bool result = FALSE; + int Year, Month, Day, Hours, Minutes, Seconds; + Year=Month=Day=Hours=Minutes=Seconds=0; + if (swscanf((LPCWSTR)value, L"%4d%2d%2d%2d%2d%2d", &Year, &Month, &Day, &Hours, &Minutes, &Seconds) == 6) + { + date.hasdate = TRUE; + date.hastime = TRUE; + date.hasseconds = TRUE; + result = TRUE; + } + else if (swscanf((LPCWSTR)value, L"%4d%2d%2d", &Year, &Month, &Day) == 3) + { + date.hasdate = TRUE; + date.hastime = FALSE; + result = TRUE; + } + if (result) + { + date.year = Year; + date.month = Month; + date.day = Day; + date.hour = Hours; + date.minute = Minutes; + date.second = Seconds; + date.utc = TRUE; + } + return result; } BOOL CFtpListResult::parseAsUnix(const char *line, const int linelen, t_directory::t_direntry &direntry) { - int pos = 0; - int tokenlen = 0; - - const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - //Check the first token - if (str[0] != 'b' && - str[0] != 'c' && - str[0] != 'd' && - str[0] != 'l' && - str[0] != 'p' && - str[0] != 's' && - str[0] != '-') - return FALSE; - - //First check if it is a netware server - bool bNetWare = false; - copyStr(direntry.permissionstr, 0, str, tokenlen); - if (tokenlen == 1) - { - //Yes, it's most likely a netware server - //Now get the full permission string - bNetWare = true; - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - direntry.permissionstr += _MPT(" "); - copyStr(direntry.permissionstr, direntry.permissionstr.GetLength(), str, tokenlen); - } - - //Set directory and link flags - //Always assume links point directories - //GUI frontend should try to figure out - //to where the link really points - if (direntry.permissionstr[0]==_MPT('d') || direntry.permissionstr[0]==_MPT('l')) - direntry.dir = true; - else - direntry.dir = false; - - if (direntry.permissionstr[0]==_MPT('l')) - direntry.bLink = true; - else - direntry.bLink = false; - - bool bNetPresenz = false; - if (!bNetWare) //On non-netware servers, expect at least two unused tokens - { - bool groupid = false; - // Unused param - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (tokenlen == 6 && !strncmp(str, "folder", tokenlen) && direntry.dir) - bNetPresenz = true; //Assume NetPresenz server - //However, it's possible that we mark a non-NetPresenz - //server if the fileowner is "folder" - else if (!IsNumeric(str, tokenlen)) - { - // Check for Connect:Enterprise server - if (direntry.permissionstr.GetLength() > 3 && - (direntry.permissionstr.Right(3) == _MPT("FTP") || - direntry.permissionstr.Right(3) == _MPT("FTS") || - direntry.permissionstr.Right(3) == _MPT("TCP") || - direntry.permissionstr.Right(3) == _MPT("SSH"))) - groupid = TRUE; - - copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), str, tokenlen); - } - else - groupid = TRUE; - - if (!bNetPresenz && groupid) - { - //Unused param - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - if (direntry.ownergroup != _T("")) - direntry.ownergroup += _T(" "); - copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), str, tokenlen); - } - } - - //Skip param, may be used for size - int skippedlen = 0; - const char *skipped = GetNextToken(line, linelen,skippedlen, pos, 0); - if (!skipped) - return FALSE; - - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - // Keep parsing the information until we get a numerical string, - // because some broken servers may send 3 tags: domain/network, group and user - const char *prevstr = 0; - int prevstrlen = 0; - - __int64 tmp = 0; - std::map::const_iterator iter; - while (str && !ParseSize(str, tokenlen, tmp) && !IsNumeric(skipped, skippedlen)) - { - //Maybe the server has left no space between the group and the size - //because of stupid alignment - char *tmpstr = new char[tokenlen + 1]; - strncpy(tmpstr, str, tokenlen); - tmpstr[tokenlen] = 0; - strlwr(tmpstr); - - USES_CONVERSION; - iter = m_MonthNamesMap.find(A2T(tmpstr)); - delete [] tmpstr; - if (iter != m_MonthNamesMap.end()) - { - BOOL bRightNumeric = true; - if (skipped[skippedlen-1]<'0' || skipped[skippedlen-1]>'9') - bRightNumeric = false; - - if (bRightNumeric) - break; - - bRightNumeric = true; - if (prevstr && prevstrlen) - { - if (prevstr[prevstrlen-1]<'0' || prevstr[prevstrlen-1]>'9') - bRightNumeric = false; - - if (bRightNumeric) - { - if (direntry.ownergroup != _T("")) - direntry.ownergroup += _T(" "); - copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), str, tokenlen); - skipped = prevstr; - skippedlen = prevstrlen; - break; - } - } - } - if (prevstr) - { - if (direntry.ownergroup != _T("")) - direntry.ownergroup += _T(" "); - - copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), prevstr, prevstrlen); - } - prevstr = str; - prevstrlen = tokenlen; - str = GetNextToken(line, linelen, tokenlen, pos, 0); - } - - if (!str) - return FALSE; - - const char *size = str; - int sizelen = tokenlen; - if (!ParseSize(str, tokenlen, direntry.size)) - { - //Maybe we've skipped too much tokens - if (!ParseSize(skipped, skippedlen, direntry.size)) - { - //Maybe the server has left no space between the group and the size - //because of stupid alignment - bool bRightNumeric = true; - const char *pos; - for (pos=(str+tokenlen-1); pos > str; pos--) - { - if (*pos<'0' || *pos>'9') - { - if (pos==(str+tokenlen-1)) - bRightNumeric=false; - break; - } - } - if (bRightNumeric && pos>str) - { - size = pos + 1; - sizelen = pos - str; - direntry.ownergroup += _T(" "); - - if (direntry.ownergroup != _T("")) - direntry.ownergroup += _T(" "); - - copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), str, pos-str); - - } - else - { - for (pos=(skipped+skippedlen-1); pos > skipped; pos--) - { - if (*pos<'0' || *pos>'9') - { - if (pos==(skipped+skippedlen-1)) - return false; - break; - } - } - size = pos + 1; - sizelen = skippedlen + skipped - size; - - if (direntry.ownergroup != _T("")) - direntry.ownergroup += _T(" "); - - copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), skipped, skippedlen - sizelen); - - } - direntry.size = strntoi64(size, sizelen); - } - else - { - //We should've not skipped the last token - //This also fixes the problem with the NetPresenz detection - if (bNetPresenz && direntry.dir && direntry.ownergroup != _MPT("")) - { - direntry.ownergroup = _MPT("folder ") + direntry.ownergroup; - } - } - } - else - { - if (direntry.ownergroup != _T("")) - direntry.ownergroup += _T(" "); - copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), skipped, skippedlen); - if (prevstr) - { - direntry.ownergroup += _T(" "); - copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), prevstr, prevstrlen); - } - str = 0; - } - - //Month - if (!str) - str = GetNextToken(line, linelen, tokenlen, pos, 0); - - if (!str) - return FALSE; - - const char *smonth = str; - int smonthlen = tokenlen; - direntry.date.year = 0; - - //Day - const char *sday = 0; - int sdaylen = 0; - - // Some VShell server send both the year and the time, try to detect them - BOOL bCouldBeVShell = FALSE; - - //Some servers use the following date formats: - // 26-09 2002, 2002-10-14, 01-jun-99 - const char *p = strnchr(smonth, smonthlen, '-'); - if (p) - { - int plen = smonthlen - (p - smonth); - const char *pos2 = strnchr(p+1, plen - 1, '-'); - if (!pos2) //26-09 2002 - { - sday = p + 1; - sdaylen = plen - 1; - smonthlen = p-smonth; - } - else if (p-smonth == 4) //2002-10-14 - { - direntry.date.year = static_cast(strntoi64(smonth, p-smonth)); - sday = pos2 + 1; - sdaylen = smonthlen - (pos2 - smonth) - 1; - smonthlen = pos2-smonth - (p-smonth) - 1; - smonth = p + 1; - /* Try to detect difference between yyyy/dd/mm and yyyy/mm/dd - * Unfortunately we have to guess which one is the right if - * the month is < 12 - */ - if (strntoi64(smonth, smonthlen) > 12) - { - const char *tmp = smonth; - smonth = sday; - sday = tmp; - int tmplen = smonthlen; - smonthlen = sdaylen; - sdaylen = tmplen; - } - } - else if (p-smonth) //14-10-2002 or 01-jun-99 - { - direntry.date.year = static_cast(strntoi64(pos2+1, tokenlen - (pos2-smonth) - 1)); - sday = smonth; - sdaylen = p - smonth; - smonthlen = pos2-smonth - (p-smonth) - 1; - smonth = p + 1; - /* Try to detect difference between yyyy/dd/mm and yyyy/mm/dd - * Unfortunately we have to guess which one is the right if - * the month is < 12 - */ - if (strntoi64(smonth, smonthlen) > 12) - { - const char *tmp = smonth; - smonth = sday; - sday = tmp; - int tmplen = smonthlen; - smonthlen = sdaylen; - sdaylen = tmplen; - } - } - else - return FALSE; - } - /* Some servers use the following date formats: - * yyyy/dd/mm, yyyy/mm/dd, dd/mm/yyyy, mm/dd/yyyy - * try to detect them. - */ - else if (strnchr(smonth, smonthlen, '/')) - { - const char *p = strnchr(smonth, smonthlen, '/'); - int plen = smonthlen - (p - smonth); - const char *pos2 = strnchr(p+1, plen - 1, '/'); - if (!pos2) //Assume 26/09 2002 - { - sday = p + 1; - sdaylen = plen - 1; - smonthlen = p-smonth; - } - else if (p-smonth==4) - { - direntry.date.year = static_cast(strntoi64(smonth, p-smonth)); - sday = pos2 + 1; - sdaylen = smonthlen - (pos2 - smonth) - 1; - smonthlen = pos2-smonth - (p-smonth) - 1; - smonth = p + 1; - /* Try to detect difference between yyyy/dd/mm and yyyy/mm/dd - * Unfortunately we have to guess which one is the right if - * the month is < 12 - */ - if (strntoi64(smonth, smonthlen) > 12) - { - const char *tmp = smonth; - smonth = sday; - sday = tmp; - int tmplen = smonthlen; - smonthlen = sdaylen; - sdaylen = tmplen; - } - } - else if (p-smonth==2) - { - direntry.date.year = static_cast(strntoi64(pos2+1, tokenlen - (pos2-smonth) - 1)); - sday = smonth; - sdaylen = p - smonth; - smonthlen = pos2-smonth - (p-smonth) - 1; - smonth = p + 1; - /* Try to detect difference between yyyy/dd/mm and yyyy/mm/dd - * Unfortunately we have to guess which one is the right if - * the month is < 12 - */ - if (strntoi64(smonth, smonthlen) > 12) - { - const char *tmp = smonth; - smonth = sday; - sday = tmp; - int tmplen = smonthlen; - smonthlen = sdaylen; - sdaylen = tmplen; - } - } - else - return FALSE; - } - else - { - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - sday = str; - sdaylen = tokenlen; - - if (sdaylen && sday[sdaylen-1] == ',') - { - sdaylen--; - bCouldBeVShell = TRUE; - } - - //Trim trailing characters - while (sdaylen && (sday[sdaylen-1]=='.' || sday[sdaylen-1]==',')) - { - bCouldBeVShell = FALSE; - sdaylen--; - } - - int i; - for (i = 0; i < sdaylen; i++) - if (sday[i] < '0' || sday[i] > '9') - break; - if (i && i < sdaylen) - { - if ((unsigned char)sday[i] > 127) - sdaylen = i; - } - - if (!sdaylen) - return FALSE; - } - - if (!strntoi64(sday, sdaylen)) //Day field invalid - { //Maybe the server is sending a directory listing with localized date format. - //Try to fix this really bad behavior - bCouldBeVShell = FALSE; - const char *tmp = smonth; - smonth = sday; - sday = tmp; - int tmplen = smonthlen; - smonthlen = sdaylen; - sdaylen = tmplen; - } - - //Time/Year - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - //Trim trailing characters - while (smonthlen && (smonth[smonthlen-1]=='.' || smonth[smonthlen-1]==',')) - smonthlen--; - - if (!smonthlen) - return FALSE; - - char *lwr = new char[smonthlen + 1]; - memcpy(lwr, smonth, smonthlen); - lwr[smonthlen] = 0; - _strlwr(lwr); - - bool gotYear = false; - int year = (int)strntoi64(smonth, smonthlen); - if (year > 1000) - { - gotYear = true; - direntry.date.year = year; - } - else - { - //Try if we can recognize the month name - USES_CONVERSION; - iter = m_MonthNamesMap.find(A2T(lwr)); - delete [] lwr; - if (iter == m_MonthNamesMap.end()) - { - int i; - for (i = 0; i < smonthlen; i++) - if (smonth[i] < '0' || smonth[i] > '9') - break; - if (!i || i == smonthlen) - return false; - if ((unsigned char)smonth[i] < 128) - return false; - - smonthlen = i; - direntry.date.month = (int)strntoi64(smonth, smonthlen); - if (!direntry.date.month || direntry.date.month > 12) - return false; - } - else - direntry.date.month = iter->second; - } - - if (!gotYear) - { - direntry.date.day = static_cast(strntoi64(sday, sdaylen)); - if (direntry.date.day < 1 || direntry.date.day > 31) - return false; - } - else - { - direntry.date.month = static_cast(strntoi64(sday, sdaylen)); - if (direntry.date.month < 1 || direntry.date.month > 12) - return false; - } - - const char *stimeyear = str; - int stimeyearlen = tokenlen; - - //Parse the time/year token - const char *strpos = strnchr(stimeyear, stimeyearlen, ':'); - if (!strpos) - strpos = strnchr(stimeyear, stimeyearlen, '.'); - if (!strpos) - strpos = strnchr(stimeyear, stimeyearlen, '-'); - if (strpos) - { - //stimeyear has delimiter, so it's a time - direntry.date.hour = static_cast(strntoi64(stimeyear, strpos - stimeyear)); - direntry.date.minute = static_cast(strntoi64(strpos + 1, stimeyearlen - (strpos - stimeyear) - 1)); - direntry.date.hastime = TRUE; - - //Problem: Some servers use times only for files newer than 6 months, - //others use one year as limit. So there is no support for files with time - //dated in the near future. Under normal conditions there should not be such files - if (!direntry.date.year) - { - CTime curtime = CTime::GetCurrentTime(); - int curday = curtime.GetDay(); - int curmonth = curtime.GetMonth(); - int curyear = curtime.GetYear(); - int now = curmonth*31+curday; - int file = direntry.date.month*31+direntry.date.day; - if ((now+1)>=file) - direntry.date.year = curyear; - else - direntry.date.year = curyear-1; - } - bCouldBeVShell = FALSE; - } - else - { - if (gotYear) - { - direntry.date.day = static_cast(strntoi64(stimeyear, stimeyearlen)); - if (direntry.date.day < 1 || direntry.date.day > 31) - return false; - } - else if (!direntry.date.year) - { - //No delimiters -> year - - direntry.date.hastime = FALSE; - direntry.date.year = static_cast(strntoi64(stimeyear, stimeyearlen)); - } - else - { - // File has no time token and short date format - pos -= stimeyearlen; - } - } - - if (!direntry.date.year) //Year 0? Really ancient file, this is invalid! - return FALSE; - - // Check if server could still be one of the newer VShell servers - if (bCouldBeVShell) - { - int oldpos = pos; - - //Get time - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - const char *p = strnchr(str, tokenlen, ':'); - if (pos && (p - str) == 2 && IsNumeric(str, 2) && IsNumeric(str + 3, 2)) - { - //stimeyear has delimiter, so it's a time - int hour = static_cast(strntoi64(str, 2)); - int minute = static_cast(strntoi64(str + 3, 2)); - - if (hour >= 0 && hour < 24 && minute >= 0 && minute < 60) - { - direntry.date.hour = hour; - direntry.date.minute = minute; - direntry.date.hastime = TRUE; - } - else - pos = oldpos; - } - else - pos = oldpos; - } - - //Get filename - str = GetNextToken(line, linelen, tokenlen, pos, 1); - if (!str) - return FALSE; - - //Trim link data from filename - if (direntry.bLink) - { - const char *pos = strnstr(str, tokenlen, " -> "); - if (pos) - { - copyStr(direntry.linkTarget, 0, pos + 4, tokenlen - (pos - str) - 4); - tokenlen = pos - str; - } - - if (!tokenlen) - return FALSE; - } - - //Trim indicators, some server add those to mark special files - if (str[tokenlen - 1] == '*' || - str[tokenlen - 1] == '/' || -// str[tokenlen - 1] == '=' || //Don't trim this char, it would cause problems on certain servers - //This char just marks sockets, so it will never appear as indicator - //However it is valid as character for filenames on some systems - str[tokenlen - 1] == '|') - tokenlen--; - - copyStr(direntry.name, 0, str, tokenlen, true); - - direntry.bUnsure = FALSE; - direntry.date.hasdate = TRUE; - - return TRUE; + int pos = 0; + int tokenlen = 0; + + const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + { + return FALSE; + } + //Check the first token + if (str[0] != 'b' && + str[0] != 'c' && + str[0] != 'd' && + str[0] != 'l' && + str[0] != 'p' && + str[0] != 's' && + str[0] != '-') + { + return FALSE; + } + + //First check if it is a netware server + bool bNetWare = false; + copyStr(direntry.permissionstr, 0, str, tokenlen); + if (tokenlen == 1) + { + //Yes, it's most likely a netware server + //Now get the full permission string + bNetWare = true; + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + { + return FALSE; + } + direntry.permissionstr += L" "; + copyStr(direntry.permissionstr, direntry.permissionstr.GetLength(), str, tokenlen); + } + + //Set directory and link flags + //Always assume links point directories + //GUI frontend should try to figure out + //to where the link really points + if (direntry.permissionstr[0]==L'd' || direntry.permissionstr[0]==L'l') + direntry.dir = true; + else + direntry.dir = false; + + if (direntry.permissionstr[0]==L'l') + direntry.bLink = true; + else + direntry.bLink = false; + + bool bNetPresenz = false; + if (!bNetWare) //On non-netware servers, expect at least two unused tokens + { + bool groupid = false; + // Unused param + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + { + return FALSE; + } + if (tokenlen == 6 && !strncmp(str, "folder", tokenlen) && direntry.dir) + bNetPresenz = true; //Assume NetPresenz server + //However, it's possible that we mark a non-NetPresenz + //server if the fileowner is "folder" + else if (!IsNumeric(str, tokenlen)) + { + // Check for Connect:Enterprise server + if (direntry.permissionstr.GetLength() > 3 && + (direntry.permissionstr.Right(3) == L"FTP" || + direntry.permissionstr.Right(3) == L"FTS" || + direntry.permissionstr.Right(3) == L"TCP" || + direntry.permissionstr.Right(3) == L"SSH")) + groupid = TRUE; + + copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), str, tokenlen); + } + else + groupid = TRUE; + + if (!bNetPresenz && groupid) + { + //Unused param + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + { + return FALSE; + } + + if (direntry.ownergroup != L"") + direntry.ownergroup += L" "; + copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), str, tokenlen); + } + } + + //Skip param, may be used for size + int skippedlen = 0; + const char *skipped = GetNextToken(line, linelen,skippedlen, pos, 0); + if (!skipped) + { + return FALSE; + } + + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + { + return FALSE; + } + + // Keep parsing the information until we get a numerical string, + // because some broken servers may send 3 tags: domain/network, group and user + const char *prevstr = 0; + int prevstrlen = 0; + + __int64 tmp = 0; + std::map::const_iterator iter; + while (str && !ParseSize(str, tokenlen, tmp) && !IsNumeric(skipped, skippedlen)) + { + //Maybe the server has left no space between the group and the size + //because of stupid alignment + char *tmpstr = new char[tokenlen + 1]; + strncpy(tmpstr, str, tokenlen); + tmpstr[tokenlen] = 0; + strlwr(tmpstr); + + USES_CONVERSION; + iter = m_MonthNamesMap.find(A2T(tmpstr)); + delete [] tmpstr; + if (iter != m_MonthNamesMap.end()) + { + BOOL bRightNumeric = true; + if (skipped[skippedlen-1]<'0' || skipped[skippedlen-1]>'9') + bRightNumeric = false; + + if (bRightNumeric) + break; + + bRightNumeric = true; + if (prevstr && prevstrlen) + { + if (prevstr[prevstrlen-1]<'0' || prevstr[prevstrlen-1]>'9') + bRightNumeric = false; + + if (bRightNumeric) + { + if (direntry.ownergroup != L"") + direntry.ownergroup += L" "; + copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), str, tokenlen); + skipped = prevstr; + skippedlen = prevstrlen; + break; + } + } + } + if (prevstr) + { + if (direntry.ownergroup != L"") + direntry.ownergroup += L" "; + + copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), prevstr, prevstrlen); + } + prevstr = str; + prevstrlen = tokenlen; + str = GetNextToken(line, linelen, tokenlen, pos, 0); + } + + if (!str) + { + return FALSE; + } + + const char *size = str; + int sizelen = tokenlen; + if (!ParseSize(str, tokenlen, direntry.size)) + { + //Maybe we've skipped too much tokens + if (!ParseSize(skipped, skippedlen, direntry.size)) + { + //Maybe the server has left no space between the group and the size + //because of stupid alignment + bool bRightNumeric = true; + const char *pos; + for (pos=(str+tokenlen-1); pos > str; pos--) + { + if (*pos<'0' || *pos>'9') + { + if (pos==(str+tokenlen-1)) + bRightNumeric=false; + break; + } + } + if (bRightNumeric && pos>str) + { + size = pos + 1; + sizelen = pos - str; + direntry.ownergroup += L" "; + + if (direntry.ownergroup != L"") + direntry.ownergroup += L" "; + + copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), str, pos-str); + + } + else + { + for (pos=(skipped+skippedlen-1); pos > skipped; pos--) + { + if (*pos<'0' || *pos>'9') + { + if (pos==(skipped+skippedlen-1)) + { + return false; + } + break; + } + } + size = pos + 1; + sizelen = skippedlen + skipped - size; + + if (direntry.ownergroup != L"") + direntry.ownergroup += L" "; + + copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), skipped, skippedlen - sizelen); + + } + direntry.size = strntoi64(size, sizelen); + } + else + { + //We should've not skipped the last token + //This also fixes the problem with the NetPresenz detection + if (bNetPresenz && direntry.dir && direntry.ownergroup != L"") + { + direntry.ownergroup = L"folder " + direntry.ownergroup; + } + } + } + else + { + if (direntry.ownergroup != L"") + direntry.ownergroup += L" "; + copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), skipped, skippedlen); + if (prevstr) + { + direntry.ownergroup += L" "; + copyStr(direntry.ownergroup, direntry.ownergroup.GetLength(), prevstr, prevstrlen); + } + str = 0; + } + + //Month + if (!str) + str = GetNextToken(line, linelen, tokenlen, pos, 0); + + if (!str) + { + return FALSE; + } + + const char *smonth = str; + int smonthlen = tokenlen; + direntry.date.year = 0; + + //Day + const char *sday = 0; + int sdaylen = 0; + + // Some VShell server send both the year and the time, try to detect them + BOOL bCouldBeVShell = FALSE; + + //Some servers use the following date formats: + // 26-09 2002, 2002-10-14, 01-jun-99 + const char *p = strnchr(smonth, smonthlen, '-'); + if (p) + { + int plen = smonthlen - (p - smonth); + const char *pos2 = strnchr(p+1, plen - 1, '-'); + if (!pos2) //26-09 2002 + { + sday = p + 1; + sdaylen = plen - 1; + smonthlen = p-smonth; + } + else if (p-smonth == 4) //2002-10-14 + { + direntry.date.year = static_cast(strntoi64(smonth, p-smonth)); + sday = pos2 + 1; + sdaylen = smonthlen - (pos2 - smonth) - 1; + smonthlen = pos2-smonth - (p-smonth) - 1; + smonth = p + 1; + /* Try to detect difference between yyyy/dd/mm and yyyy/mm/dd + * Unfortunately we have to guess which one is the right if + * the month is < 12 + */ + if (strntoi64(smonth, smonthlen) > 12) + { + const char *tmp = smonth; + smonth = sday; + sday = tmp; + int tmplen = smonthlen; + smonthlen = sdaylen; + sdaylen = tmplen; + } + } + else if (p-smonth) //14-10-2002 or 01-jun-99 + { + direntry.date.year = static_cast(strntoi64(pos2+1, tokenlen - (pos2-smonth) - 1)); + sday = smonth; + sdaylen = p - smonth; + smonthlen = pos2-smonth - (p-smonth) - 1; + smonth = p + 1; + /* Try to detect difference between yyyy/dd/mm and yyyy/mm/dd + * Unfortunately we have to guess which one is the right if + * the month is < 12 + */ + if (strntoi64(smonth, smonthlen) > 12) + { + const char *tmp = smonth; + smonth = sday; + sday = tmp; + int tmplen = smonthlen; + smonthlen = sdaylen; + sdaylen = tmplen; + } + } + else + { + return FALSE; + } + } + /* Some servers use the following date formats: + * yyyy/dd/mm, yyyy/mm/dd, dd/mm/yyyy, mm/dd/yyyy + * try to detect them. + */ + else if (strnchr(smonth, smonthlen, '/')) + { + const char *p = strnchr(smonth, smonthlen, '/'); + int plen = smonthlen - (p - smonth); + const char *pos2 = strnchr(p+1, plen - 1, '/'); + if (!pos2) //Assume 26/09 2002 + { + sday = p + 1; + sdaylen = plen - 1; + smonthlen = p-smonth; + } + else if (p-smonth==4) + { + direntry.date.year = static_cast(strntoi64(smonth, p-smonth)); + sday = pos2 + 1; + sdaylen = smonthlen - (pos2 - smonth) - 1; + smonthlen = pos2-smonth - (p-smonth) - 1; + smonth = p + 1; + /* Try to detect difference between yyyy/dd/mm and yyyy/mm/dd + * Unfortunately we have to guess which one is the right if + * the month is < 12 + */ + if (strntoi64(smonth, smonthlen) > 12) + { + const char *tmp = smonth; + smonth = sday; + sday = tmp; + int tmplen = smonthlen; + smonthlen = sdaylen; + sdaylen = tmplen; + } + } + else if (p-smonth==2) + { + direntry.date.year = static_cast(strntoi64(pos2+1, tokenlen - (pos2-smonth) - 1)); + sday = smonth; + sdaylen = p - smonth; + smonthlen = pos2-smonth - (p-smonth) - 1; + smonth = p + 1; + /* Try to detect difference between yyyy/dd/mm and yyyy/mm/dd + * Unfortunately we have to guess which one is the right if + * the month is < 12 + */ + if (strntoi64(smonth, smonthlen) > 12) + { + const char *tmp = smonth; + smonth = sday; + sday = tmp; + int tmplen = smonthlen; + smonthlen = sdaylen; + sdaylen = tmplen; + } + } + else + { + return FALSE; + } + } + else + { + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + { + return FALSE; + } + + sday = str; + sdaylen = tokenlen; + + if (sdaylen && sday[sdaylen-1] == ',') + { + sdaylen--; + bCouldBeVShell = TRUE; + } + + //Trim trailing characters + while (sdaylen && (sday[sdaylen-1]=='.' || sday[sdaylen-1]==',')) + { + bCouldBeVShell = FALSE; + sdaylen--; + } + + int i; + for (i = 0; i < sdaylen; i++) + if (sday[i] < '0' || sday[i] > '9') + break; + if (i && i < sdaylen) + { + if ((unsigned char)sday[i] > 127) + sdaylen = i; + } + + if (!sdaylen) + { + return FALSE; + } + } + + if (!strntoi64(sday, sdaylen)) //Day field invalid + { //Maybe the server is sending a directory listing with localized date format. + //Try to fix this really bad behavior + bCouldBeVShell = FALSE; + const char *tmp = smonth; + smonth = sday; + sday = tmp; + int tmplen = smonthlen; + smonthlen = sdaylen; + sdaylen = tmplen; + } + + //Time/Year + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + { + return FALSE; + } + + //Trim trailing characters + while (smonthlen && (smonth[smonthlen-1]=='.' || smonth[smonthlen-1]==',')) + smonthlen--; + + if (!smonthlen) + { + return FALSE; + } + + char *lwr = new char[smonthlen + 1]; + memcpy(lwr, smonth, smonthlen); + lwr[smonthlen] = 0; + _strlwr(lwr); + + bool gotYear = false; + int year = (int)strntoi64(smonth, smonthlen); + if (year > 1000) + { + gotYear = true; + direntry.date.year = year; + } + else + { + //Try if we can recognize the month name + USES_CONVERSION; + iter = m_MonthNamesMap.find(A2T(lwr)); + delete [] lwr; + if (iter == m_MonthNamesMap.end()) + { + int i; + for (i = 0; i < smonthlen; i++) + if (smonth[i] < '0' || smonth[i] > '9') + break; + if (!i || i == smonthlen) + { + return false; + } + if ((unsigned char)smonth[i] < 128) + { + return false; + } + + smonthlen = i; + direntry.date.month = (int)strntoi64(smonth, smonthlen); + if (!direntry.date.month || direntry.date.month > 12) + { + return false; + } + } + else + direntry.date.month = iter->second; + } + + if (!gotYear) + { + direntry.date.day = static_cast(strntoi64(sday, sdaylen)); + if (direntry.date.day < 1 || direntry.date.day > 31) + { + return false; + } + } + else + { + direntry.date.month = static_cast(strntoi64(sday, sdaylen)); + if (direntry.date.month < 1 || direntry.date.month > 12) + { + return false; + } + } + + const char *stimeyear = str; + int stimeyearlen = tokenlen; + + //Parse the time/year token + const char *strpos = strnchr(stimeyear, stimeyearlen, ':'); + if (!strpos) + strpos = strnchr(stimeyear, stimeyearlen, '.'); + if (!strpos) + strpos = strnchr(stimeyear, stimeyearlen, '-'); + if (strpos) + { + //stimeyear has delimiter, so it's a time + direntry.date.hour = static_cast(strntoi64(stimeyear, strpos - stimeyear)); + direntry.date.minute = static_cast(strntoi64(strpos + 1, stimeyearlen - (strpos - stimeyear) - 1)); + direntry.date.hastime = TRUE; + + //Problem: Some servers use times only for files newer than 6 months, + //others use one year as limit. So there is no support for files with time + //dated in the near future. Under normal conditions there should not be such files + if (!direntry.date.year) + { + CTime curtime = CTime::GetCurrentTime(); + int curday = curtime.GetDay(); + int curmonth = curtime.GetMonth(); + int curyear = curtime.GetYear(); + int now = curmonth*31+curday; + int file = direntry.date.month*31+direntry.date.day; + if ((now+1)>=file) + direntry.date.year = curyear; + else + direntry.date.year = curyear-1; + } + bCouldBeVShell = FALSE; + } + else + { + if (gotYear) + { + direntry.date.day = static_cast(strntoi64(stimeyear, stimeyearlen)); + if (direntry.date.day < 1 || direntry.date.day > 31) + { + return false; + } + } + else if (!direntry.date.year) + { + //No delimiters -> year + + direntry.date.hastime = FALSE; + direntry.date.year = static_cast(strntoi64(stimeyear, stimeyearlen)); + } + else + { + // File has no time token and short date format + pos -= stimeyearlen; + } + } + + if (!direntry.date.year) //Year 0? Really ancient file, this is invalid! + { + return FALSE; + } + + // Check if server could still be one of the newer VShell servers + if (bCouldBeVShell) + { + int oldpos = pos; + + //Get time + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + { + return FALSE; + } + + const char *p = strnchr(str, tokenlen, ':'); + if (pos && (p - str) == 2 && IsNumeric(str, 2) && IsNumeric(str + 3, 2)) + { + //stimeyear has delimiter, so it's a time + int hour = static_cast(strntoi64(str, 2)); + int minute = static_cast(strntoi64(str + 3, 2)); + + if (hour >= 0 && hour < 24 && minute >= 0 && minute < 60) + { + direntry.date.hour = hour; + direntry.date.minute = minute; + direntry.date.hastime = TRUE; + } + else + pos = oldpos; + } + else + pos = oldpos; + } + + //Get filename + str = GetNextToken(line, linelen, tokenlen, pos, 1); + if (!str) + { + return FALSE; + } + + //Trim link data from filename + if (direntry.bLink) + { + const char *pos = strnstr(str, tokenlen, " -> "); + if (pos) + { + copyStr(direntry.linkTarget, 0, pos + 4, tokenlen - (pos - str) - 4); + tokenlen = pos - str; + } + + if (!tokenlen) + { + return FALSE; + } + } + + //Trim indicators, some server add those to mark special files + if (str[tokenlen - 1] == '*' || + str[tokenlen - 1] == '/' || +// str[tokenlen - 1] == '=' || //Don't trim this char, it would cause problems on certain servers + //This char just marks sockets, so it will never appear as indicator + //However it is valid as character for filenames on some systems + str[tokenlen - 1] == '|') + tokenlen--; + + copyStr(direntry.name, 0, str, tokenlen, true); + + direntry.bUnsure = FALSE; + direntry.date.hasdate = TRUE; + + return TRUE; } BOOL CFtpListResult::parseAsDos(const char *line, const int linelen, t_directory::t_direntry &direntry) { - int pos = 0; - int tokenlen = 0; - - const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - //Check the first token - if (str[0]=='b' || - str[0]=='c' || - str[0]=='d' || - str[0]=='l' || - str[0]=='p' || - str[0]=='s' || - str[0]=='-') - return FALSE; - - if (IsNumeric(str, tokenlen)) - return FALSE; - - //It's a NT server with MSDOS directory format - - if (!ParseShortDate(str, tokenlen, direntry.date)) - return FALSE; - - //Extract time - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - if (!parseTime(str, tokenlen, direntry.date)) - return FALSE; - - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (tokenlen == 5 && !memcmp(str, "", 5)) - { - direntry.dir = TRUE; - } - else - { - char * buffer = new char[tokenlen]; - int i, j; - for (i = 0, j = 0; i < tokenlen; i++) - { - if (str[i] != ',') - buffer[j++] = str[i]; - } - direntry.dir = FALSE; - direntry.size = strntoi64(buffer, j); - delete [] buffer; - } - - str = GetNextToken(line, linelen, tokenlen, pos, 1); - if (!str) - return FALSE; - copyStr(direntry.name, 0, str, tokenlen, true); - - direntry.bUnsure = FALSE; - - return TRUE; + int pos = 0; + int tokenlen = 0; + + const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + //Check the first token + if (str[0]=='b' || + str[0]=='c' || + str[0]=='d' || + str[0]=='l' || + str[0]=='p' || + str[0]=='s' || + str[0]=='-') + return FALSE; + + if (IsNumeric(str, tokenlen)) + return FALSE; + + //It's a NT server with MSDOS directory format + + if (!ParseShortDate(str, tokenlen, direntry.date)) + return FALSE; + + //Extract time + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + if (!parseTime(str, tokenlen, direntry.date)) + return FALSE; + + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (tokenlen == 5 && !memcmp(str, "", 5)) + { + direntry.dir = TRUE; + } + else + { + char * buffer = new char[tokenlen]; + int i, j; + for (i = 0, j = 0; i < tokenlen; i++) + { + if (str[i] != ',') + buffer[j++] = str[i]; + } + direntry.dir = FALSE; + direntry.size = strntoi64(buffer, j); + delete [] buffer; + } + + str = GetNextToken(line, linelen, tokenlen, pos, 1); + if (!str) + return FALSE; + copyStr(direntry.name, 0, str, tokenlen, true); + + direntry.bUnsure = FALSE; + + return TRUE; } BOOL CFtpListResult::parseAsOther(const char *line, const int linelen, t_directory::t_direntry &direntry) { - int pos = 0; - int tokenlen = 0; - - const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - //Check the first token - if (str[0]=='b' || - str[0]=='c' || - str[0]=='d' || - str[0]=='l' || - str[0]=='p' || - str[0]=='s' || - str[0]=='-') - return FALSE; - - if (!IsNumeric(str, tokenlen)) - return FALSE; - - //Could be numerical Unix style format or VShell format - //or even an OS2 server - - const char *skipped = str; - int skippedtokenlen = tokenlen; - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - //If next token is numerical, than it's the numerical Unix style format, - //else it's the VShell or OS/2 format - if (IsNumeric(str, tokenlen)) - { - copyStr(direntry.permissionstr, 0, skipped, skippedtokenlen); - - if (skippedtokenlen >= 2 && skipped[1] == '4') - direntry.dir = TRUE; - else - direntry.dir = FALSE; - - //Unused token - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - //Size - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - direntry.size = strntoi64(str, tokenlen); - - //Date/Time - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - time_t secsSince1970 = static_cast(strntoi64(str, tokenlen)); - tm *sTime = gmtime(&secsSince1970); - direntry.date.year = sTime->tm_year + 1900; - direntry.date.month = sTime->tm_mon+1; - direntry.date.day = sTime->tm_mday; - direntry.date.hour = sTime->tm_hour; - direntry.date.minute = sTime->tm_min; - direntry.date.hasdate = direntry.date.hastime = TRUE; - - str = GetNextToken(line, linelen, tokenlen, pos, 1); - if (!str) - return FALSE; - copyStr(direntry.name, 0, str, tokenlen, true); - } - else - { - std::map::const_iterator iter; - - //Get size - direntry.size = strntoi64(skipped, skippedtokenlen); - - //Get date, month first - if (tokenlen >= 15) - return FALSE; - - char buffer[15] = {0}; - memcpy(buffer, str, tokenlen); - strlwr(buffer); - - USES_CONVERSION; - iter = m_MonthNamesMap.find(A2T(buffer)); - if (iter == m_MonthNamesMap.end()) - { - direntry.dir = FALSE; - while (str) - { - //Could be an OS/2 server - if (tokenlen == 3 && !memcmp(str, "dir", 3)) - direntry.dir = TRUE; - else if (tokenlen == 3 && !memcmp(str, "DIR", 3)) - direntry.dir = TRUE; - else if (strnchr(str, tokenlen, '-')) - break; - str = GetNextToken(line, linelen, tokenlen, pos, 0); - } - if (!str) - return FALSE; - - if (!ParseShortDate(str, tokenlen, direntry.date)) - return FALSE; - - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - //Parse the time token - const char *strpos = strnchr(str, tokenlen, ':'); - if (!strpos) - return FALSE; - if (strpos) - { - //stimeyear has delimiter, so it's a time - direntry.date.hour = static_cast(strntoi64(str, strpos - str)); - direntry.date.minute = static_cast(strntoi64(strpos+1, tokenlen - (strpos - str) - 1)); - direntry.date.hastime = TRUE; - - //Problem: Some servers use times only for files newer than 6 months, - //others use one year as limit. So there is no support for files with time - //dated in the near future. Under normal conditions there should not be such files - if (!direntry.date.year) - { - CTime curtime = CTime::GetCurrentTime(); - int curday = curtime.GetDay(); - int curmonth = curtime.GetMonth(); - int curyear = curtime.GetYear(); - int now = curmonth*31+curday; - int file = direntry.date.month*31+direntry.date.day; - if ((now+1)>=file) - direntry.date.year = curyear; - else - direntry.date.year = curyear-1; - } - } - - str = GetNextToken(line, linelen, tokenlen, pos, 1); - if (!str) - return FALSE; - - if (tokenlen > 6) - { - if (!strnicmp(str + tokenlen - 5, "", 5)) - { - direntry.dir = TRUE; - tokenlen -= 5; - while (tokenlen && str[tokenlen - 1] == ' ' || str[tokenlen - 1] == '\t') - tokenlen--; - } - if (!tokenlen) - return FALSE; - } - - - copyStr(direntry.name, 0, str, tokenlen, true); - } - else - { - direntry.date.month = iter->second; - - //Day - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - if (str[tokenlen-1]==',') - tokenlen--; - if (!tokenlen) - return FALSE; - if (!IsNumeric(str, tokenlen)) - return FALSE; - - direntry.date.day = static_cast(strntoi64(str, tokenlen)); - if (direntry.date.day < 1 || direntry.date.day > 31) - return FALSE; - - //Year - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - if (!IsNumeric(str, tokenlen)) - return FALSE; - - direntry.date.year = static_cast(strntoi64(str, tokenlen)); - if (direntry.date.year < 50) - direntry.date.year += 2000; - else if (direntry.date.year < 1000) - direntry.date.year += 1900; - - direntry.date.hasdate = TRUE; - - //Now get the time - str = GetNextToken(line, linelen, tokenlen, pos, 0); - const char *p = strnchr(str, tokenlen, ':'); - if (!p) - return FALSE; - - if (p==str || !IsNumeric(str, p-str) || (p-str + 1) >= tokenlen || !IsNumeric(p+1, tokenlen - (p-str) - 1)) - return FALSE; - direntry.date.hour = static_cast(strntoi64(str, p-str)); - direntry.date.minute = static_cast(strntoi64(p+1, tokenlen - (p-str) - 1)); - - if (direntry.date.hour < 0 || direntry.date.hour > 24) - return FALSE; - if (direntry.date.minute < 0 || direntry.date.minute > 59) - return FALSE; - - direntry.date.hastime = TRUE; - - str = GetNextToken(line, linelen, tokenlen, pos, 1); - if (!str) - return FALSE; - - if (tokenlen > 1 && (str[tokenlen-1] == '\\' || str[tokenlen-1] == '/')) - { - direntry.dir = TRUE; - tokenlen--; - } - else - direntry.dir = FALSE; - - if (!tokenlen) - return FALSE; - copyStr(direntry.name, 0, str, tokenlen, true); - } - } - - direntry.bUnsure = FALSE; - direntry.date.hasdate = TRUE; - - return TRUE; + int pos = 0; + int tokenlen = 0; + + const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + //Check the first token + if (str[0]=='b' || + str[0]=='c' || + str[0]=='d' || + str[0]=='l' || + str[0]=='p' || + str[0]=='s' || + str[0]=='-') + return FALSE; + + if (!IsNumeric(str, tokenlen)) + return FALSE; + + //Could be numerical Unix style format or VShell format + //or even an OS2 server + + const char *skipped = str; + int skippedtokenlen = tokenlen; + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + //If next token is numerical, than it's the numerical Unix style format, + //else it's the VShell or OS/2 format + if (IsNumeric(str, tokenlen)) + { + copyStr(direntry.permissionstr, 0, skipped, skippedtokenlen); + + if (skippedtokenlen >= 2 && skipped[1] == '4') + direntry.dir = TRUE; + else + direntry.dir = FALSE; + + //Unused token + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + //Size + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + direntry.size = strntoi64(str, tokenlen); + + //Date/Time + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + time_t secsSince1970 = static_cast(strntoi64(str, tokenlen)); + tm *sTime = gmtime(&secsSince1970); + direntry.date.year = sTime->tm_year + 1900; + direntry.date.month = sTime->tm_mon+1; + direntry.date.day = sTime->tm_mday; + direntry.date.hour = sTime->tm_hour; + direntry.date.minute = sTime->tm_min; + direntry.date.hasdate = direntry.date.hastime = TRUE; + + str = GetNextToken(line, linelen, tokenlen, pos, 1); + if (!str) + return FALSE; + copyStr(direntry.name, 0, str, tokenlen, true); + } + else + { + std::map::const_iterator iter; + + //Get size + direntry.size = strntoi64(skipped, skippedtokenlen); + + //Get date, month first + if (tokenlen >= 15) + return FALSE; + + char buffer[15] = {0}; + memcpy(buffer, str, tokenlen); + strlwr(buffer); + + USES_CONVERSION; + iter = m_MonthNamesMap.find(A2T(buffer)); + if (iter == m_MonthNamesMap.end()) + { + direntry.dir = FALSE; + while (str) + { + //Could be an OS/2 server + if (tokenlen == 3 && !memcmp(str, "dir", 3)) + direntry.dir = TRUE; + else if (tokenlen == 3 && !memcmp(str, "DIR", 3)) + direntry.dir = TRUE; + else if (strnchr(str, tokenlen, '-')) + break; + str = GetNextToken(line, linelen, tokenlen, pos, 0); + } + if (!str) + return FALSE; + + if (!ParseShortDate(str, tokenlen, direntry.date)) + return FALSE; + + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + //Parse the time token + const char *strpos = strnchr(str, tokenlen, ':'); + if (!strpos) + return FALSE; + if (strpos) + { + //stimeyear has delimiter, so it's a time + direntry.date.hour = static_cast(strntoi64(str, strpos - str)); + direntry.date.minute = static_cast(strntoi64(strpos+1, tokenlen - (strpos - str) - 1)); + direntry.date.hastime = TRUE; + + //Problem: Some servers use times only for files newer than 6 months, + //others use one year as limit. So there is no support for files with time + //dated in the near future. Under normal conditions there should not be such files + if (!direntry.date.year) + { + CTime curtime = CTime::GetCurrentTime(); + int curday = curtime.GetDay(); + int curmonth = curtime.GetMonth(); + int curyear = curtime.GetYear(); + int now = curmonth*31+curday; + int file = direntry.date.month*31+direntry.date.day; + if ((now+1)>=file) + direntry.date.year = curyear; + else + direntry.date.year = curyear-1; + } + } + + str = GetNextToken(line, linelen, tokenlen, pos, 1); + if (!str) + return FALSE; + + if (tokenlen > 6) + { + if (!strnicmp(str + tokenlen - 5, "", 5)) + { + direntry.dir = TRUE; + tokenlen -= 5; + while (tokenlen && str[tokenlen - 1] == ' ' || str[tokenlen - 1] == '\t') + tokenlen--; + } + if (!tokenlen) + return FALSE; + } + + + copyStr(direntry.name, 0, str, tokenlen, true); + } + else + { + direntry.date.month = iter->second; + + //Day + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + if (str[tokenlen-1]==',') + tokenlen--; + if (!tokenlen) + return FALSE; + if (!IsNumeric(str, tokenlen)) + return FALSE; + + direntry.date.day = static_cast(strntoi64(str, tokenlen)); + if (direntry.date.day < 1 || direntry.date.day > 31) + return FALSE; + + //Year + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + if (!IsNumeric(str, tokenlen)) + return FALSE; + + direntry.date.year = static_cast(strntoi64(str, tokenlen)); + if (direntry.date.year < 50) + direntry.date.year += 2000; + else if (direntry.date.year < 1000) + direntry.date.year += 1900; + + direntry.date.hasdate = TRUE; + + //Now get the time + str = GetNextToken(line, linelen, tokenlen, pos, 0); + const char *p = strnchr(str, tokenlen, ':'); + if (!p) + return FALSE; + + if (p==str || !IsNumeric(str, p-str) || (p-str + 1) >= tokenlen || !IsNumeric(p+1, tokenlen - (p-str) - 1)) + return FALSE; + direntry.date.hour = static_cast(strntoi64(str, p-str)); + direntry.date.minute = static_cast(strntoi64(p+1, tokenlen - (p-str) - 1)); + + if (direntry.date.hour < 0 || direntry.date.hour > 24) + return FALSE; + if (direntry.date.minute < 0 || direntry.date.minute > 59) + return FALSE; + + direntry.date.hastime = TRUE; + + str = GetNextToken(line, linelen, tokenlen, pos, 1); + if (!str) + return FALSE; + + if (tokenlen > 1 && (str[tokenlen-1] == '\\' || str[tokenlen-1] == '/')) + { + direntry.dir = TRUE; + tokenlen--; + } + else + direntry.dir = FALSE; + + if (!tokenlen) + return FALSE; + copyStr(direntry.name, 0, str, tokenlen, true); + } + } + + direntry.bUnsure = FALSE; + direntry.date.hasdate = TRUE; + + return TRUE; } _int64 CFtpListResult::strntoi64(const char *str, int len) const { - _int64 res = 0; - const char *p = str; - while ((p-str) < len) - { - if (*p < '0' || *p > '9') - break; - res *= 10; - res += *p++ - '0'; - } - return res; + _int64 res = 0; + const char *p = str; + while ((p-str) < len) + { + if (*p < '0' || *p > '9') + break; + res *= 10; + res += *p++ - '0'; + } + return res; } const char *CFtpListResult::GetNextToken(const char *line, const int linelen, int &len, int &pos, int type) const { - const char *p = line + pos; - if ((p - line) >= linelen) - return NULL; - while ((p - line) < linelen && (!p || *p==' ' || *p=='\t')) - p++; - - if ((p - line) >= linelen) - return NULL; - - const char *res = p; - - if (type) - { - pos = linelen; - len = linelen - (p - line); - } - else - { - while ((p - line) < linelen && *p && *p != ' ' && *p!='\t') - p++; - - len = p - res; - pos = p - line; - } - - return res; + const char *p = line + pos; + if ((p - line) >= linelen) + return NULL; + while ((p - line) < linelen && (!p || *p==' ' || *p=='\t')) + p++; + + if ((p - line) >= linelen) + return NULL; + + const char *res = p; + + if (type) + { + pos = linelen; + len = linelen - (p - line); + } + else + { + while ((p - line) < linelen && *p && *p != ' ' && *p!='\t') + p++; + + len = p - res; + pos = p - line; + } + + return res; } const char * CFtpListResult::strnchr(const char *str, int len, char c) const { - if (!str) - return NULL; - - const char *p = str; - while (len > 0) - { - if (!*p) - return NULL; - if (*p == c) - return p; - p++; - len--; - } - return NULL; + if (!str) + return NULL; + + const char *p = str; + while (len > 0) + { + if (!*p) + return NULL; + if (*p == c) + return p; + p++; + len--; + } + return NULL; } const char * CFtpListResult::strnstr(const char *str, int len, const char *c) const { - if (!str) - return NULL; - if (!c) - return NULL; - int clen = strlen(c); - - const char *p = str; - while (len > 0) - { - if (!*p) - return NULL; - if (*p == *c) - { - if (clen == 1) - return p; - else if (len >= clen) - { - if (!memcmp(p + 1, c+1, clen-1)) - return p; - } - else - return NULL; - } - p++; - len--; - } - return NULL; + if (!str) + return NULL; + if (!c) + return NULL; + int clen = strlen(c); + + const char *p = str; + while (len > 0) + { + if (!*p) + return NULL; + if (*p == *c) + { + if (clen == 1) + return p; + else if (len >= clen) + { + if (!memcmp(p + 1, c+1, clen-1)) + return p; + } + else + return NULL; + } + p++; + len--; + } + return NULL; } void CFtpListResult::copyStr(CString &target, int pos, const char *source, int len, bool mayInvalidateUTF8 /*=false*/) { - USES_CONVERSION; - - char *p = new char[len + 1]; - memcpy(p, source, len); - p[len] = '\0'; - if (m_bUTF8 && *m_bUTF8) - { - // convert from UTF-8 to ANSI - if (!utf8_valid((const unsigned char*)p, len)) - { - if (mayInvalidateUTF8 && m_server.nUTF8 != 1) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Server does not send proper UTF-8, falling back to local charset")); - *m_bUTF8 = false; - } - target = target.Left(pos) + A2CT(p); - } - else - { - // convert from UTF-8 to ANSI - int len = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)p, -1, NULL, 0); - if (len != 0) - { - LPWSTR p1 = new WCHAR[len + 1]; - MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)p, -1 , (LPWSTR)p1, len + 1); - target = target.Left(pos) + W2CT(p1); - delete [] p1; - } - else - target = target.Left(pos) + A2CT(p); - } - } - else - target = target.Left(pos) + A2CT(p); - delete [] p; + USES_CONVERSION; + + char *p = new char[len + 1]; + memcpy(p, source, len); + p[len] = '\0'; + if (m_bUTF8 && *m_bUTF8) + { + // convert from UTF-8 to ANSI + if (DetectUTF8Encoding(RawByteString(p, len)) == etANSI) + { + if (mayInvalidateUTF8 && m_server.nUTF8 != 1) + { + LogMessage(FZ_LOG_WARNING, L"Server does not send proper UTF-8, falling back to local charset"); + *m_bUTF8 = false; + } + target = target.Left(pos) + A2CT(p); + } + else + { + // convert from UTF-8 to ANSI + int len = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)p, -1, NULL, 0); + if (len != 0) + { + LPWSTR p1 = new WCHAR[len + 1]; + MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)p, -1 , (LPWSTR)p1, len + 1); + target = target.Left(pos) + W2CT(p1); + delete [] p1; + } + else + target = target.Left(pos) + A2CT(p); + } + } + else + target = target.Left(pos) + A2CT(p); + delete [] p; } BOOL CFtpListResult::parseAsIBM(const char *line, const int linelen, t_directory::t_direntry &direntry) { - int pos = 0; - int tokenlen = 0; - - const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - copyStr(direntry.ownergroup , 0, str, tokenlen); - - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - if (!IsNumeric(str, tokenlen)) - return FALSE; - - direntry.size = strntoi64(str, tokenlen); - - //Date - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (!ParseShortDate(str, tokenlen, direntry.date)) - return FALSE; - - //Time - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (!parseTime(str, tokenlen, direntry.date)) - return FALSE; - - //Unused Token - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - //Name - str = GetNextToken(line, linelen, tokenlen, pos, 1); - if (!str) - return FALSE; - - if (str[tokenlen-1] == '/') - { - direntry.dir = TRUE; - if (!--tokenlen) - return FALSE; - } - else - direntry.dir = FALSE; - - copyStr(direntry.name, 0, str, tokenlen, true); - - direntry.bUnsure = FALSE; - - return true; + int pos = 0; + int tokenlen = 0; + + const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + copyStr(direntry.ownergroup , 0, str, tokenlen); + + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + if (!IsNumeric(str, tokenlen)) + return FALSE; + + direntry.size = strntoi64(str, tokenlen); + + //Date + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (!ParseShortDate(str, tokenlen, direntry.date)) + return FALSE; + + //Time + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (!parseTime(str, tokenlen, direntry.date)) + return FALSE; + + //Unused Token + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + //Name + str = GetNextToken(line, linelen, tokenlen, pos, 1); + if (!str) + return FALSE; + + if (str[tokenlen-1] == '/') + { + direntry.dir = TRUE; + if (!--tokenlen) + return FALSE; + } + else + direntry.dir = FALSE; + + copyStr(direntry.name, 0, str, tokenlen, true); + + direntry.bUnsure = FALSE; + + return true; } BOOL CFtpListResult::parseAsIBMMVS(const char *line, const int linelen, t_directory::t_direntry &direntry) { - int pos = 0; - int tokenlen = 0; - - // volume - const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - // unit - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - //Referred Date - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (!ParseShortDate(str, tokenlen, direntry.date)) - { - // Perhaps of the following type: - // TSO004 3390 VSAM FOO.BAR - if (tokenlen != 4 || strncmp(str, "VSAM", tokenlen)) - return FALSE; - - str = GetNextToken(line, linelen, tokenlen, pos, 1); - if (!str) - return FALSE; - - if (strnchr(str, tokenlen, ' ')) - return FALSE; - - copyStr(direntry.name, 0, str, tokenlen, true); - direntry.dir = false; - return true; - } - - // ext - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (!IsNumeric(str, tokenlen)) - return FALSE; - - int prevLen = tokenlen; - - // used - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (IsNumeric(str, tokenlen)) - { - // recfm - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - if (IsNumeric(str, tokenlen)) - return false; - } - else - { - if (prevLen < 6) - return false; - } - - // lrecl - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (!IsNumeric(str, tokenlen)) - return FALSE; - - // blksize - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (!IsNumeric(str, tokenlen)) - return FALSE; - - // dsorg - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (tokenlen == 2 && !memcmp(str, "PO", 2)) - { - direntry.dir = TRUE; - } - else - { - direntry.dir = FALSE; - direntry.size = 100; - } - - // name of dataset or sequential name - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - copyStr(direntry.name, 0, str, tokenlen, true); - - direntry.bUnsure = FALSE; - - return true; + int pos = 0; + int tokenlen = 0; + + // volume + const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + // unit + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + //Referred Date + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (!ParseShortDate(str, tokenlen, direntry.date)) + { + // Perhaps of the following type: + // TSO004 3390 VSAM FOO.BAR + if (tokenlen != 4 || strncmp(str, "VSAM", tokenlen)) + return FALSE; + + str = GetNextToken(line, linelen, tokenlen, pos, 1); + if (!str) + return FALSE; + + if (strnchr(str, tokenlen, ' ')) + return FALSE; + + copyStr(direntry.name, 0, str, tokenlen, true); + direntry.dir = false; + return true; + } + + // ext + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (!IsNumeric(str, tokenlen)) + return FALSE; + + int prevLen = tokenlen; + + // used + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (IsNumeric(str, tokenlen)) + { + // recfm + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + if (IsNumeric(str, tokenlen)) + return false; + } + else + { + if (prevLen < 6) + return false; + } + + // lrecl + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (!IsNumeric(str, tokenlen)) + return FALSE; + + // blksize + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (!IsNumeric(str, tokenlen)) + return FALSE; + + // dsorg + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (tokenlen == 2 && !memcmp(str, "PO", 2)) + { + direntry.dir = TRUE; + } + else + { + direntry.dir = FALSE; + direntry.size = 100; + } + + // name of dataset or sequential name + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + copyStr(direntry.name, 0, str, tokenlen, true); + + direntry.bUnsure = FALSE; + + return true; } BOOL CFtpListResult::parseAsIBMMVSPDS(const char *line, const int linelen, t_directory::t_direntry &direntry) { - int pos = 0; - int tokenlen = 0; - - // pds member name - const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - copyStr(direntry.name, 0, str, tokenlen); - - // vv.mm - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - // creation date - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - // change date - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (!ParseShortDate(str, tokenlen, direntry.date)) - return FALSE; - - // change time - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (!parseTime(str, tokenlen, direntry.date)) - return FALSE; - - // size - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (!IsNumeric(str, tokenlen)) - return FALSE; - direntry.size = strntoi64(str, tokenlen); - - // init - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (!IsNumeric(str, tokenlen)) - return FALSE; - - // mod - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (!IsNumeric(str, tokenlen)) - return FALSE; - - // id - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - direntry.dir = FALSE; - direntry.bUnsure = FALSE; - - return true; + int pos = 0; + int tokenlen = 0; + + // pds member name + const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + copyStr(direntry.name, 0, str, tokenlen); + + // vv.mm + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + // creation date + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + // change date + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (!ParseShortDate(str, tokenlen, direntry.date)) + return FALSE; + + // change time + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (!parseTime(str, tokenlen, direntry.date)) + return FALSE; + + // size + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (!IsNumeric(str, tokenlen)) + return FALSE; + direntry.size = strntoi64(str, tokenlen); + + // init + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (!IsNumeric(str, tokenlen)) + return FALSE; + + // mod + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (!IsNumeric(str, tokenlen)) + return FALSE; + + // id + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + direntry.dir = FALSE; + direntry.bUnsure = FALSE; + + return true; } BOOL CFtpListResult::parseAsIBMMVSPDS2(const char *line, const int linelen, t_directory::t_direntry &direntry) { - // Use this one only on MVS servers, as it will cause problems on other servers + // Use this one only on MVS servers, as it will cause problems on other servers #ifndef LISTDEBUG - if (!(m_server.nServerType & (FZ_SERVERTYPE_SUB_FTP_MVS | FZ_SERVERTYPE_SUB_FTP_BS2000))) - return false; + if (!(m_server.nServerType & (FZ_SERVERTYPE_SUB_FTP_MVS | FZ_SERVERTYPE_SUB_FTP_BS2000))) + return false; #endif - int pos = 0; - int tokenlen = 0; - - direntry.bUnsure = FALSE; - direntry.dir = FALSE; - direntry.bLink = FALSE; - direntry.ownergroup = _MPT(""); - direntry.permissionstr = _MPT(""); - direntry.date.hasdate = direntry.date.hastime = FALSE; - - // pds member name - const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - - if (m_server.nServerType & FZ_SERVERTYPE_SUB_FTP_BS2000 && - IsNumeric(str, tokenlen)) - { - int prevlen = tokenlen; - const char* prev = str; - int oldpos = pos; - - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; - if (str[0] != ':') - { - str = prev; - tokenlen = prevlen; - pos = oldpos; - } - } - - copyStr(direntry.name, 0, str, tokenlen); - - if (m_server.nServerType & FZ_SERVERTYPE_SUB_FTP_BS2000) - { - int pos = direntry.name.ReverseFind(_MPT(':')); - if (pos != -1) - direntry.name = direntry.name.Mid(pos + 1); - if (direntry.name[0] == _MPT('$')) - { - int pos = direntry.name.Find(_MPT('.')); - if (pos != -1) - direntry.name = direntry.name.Mid(pos + 1); - } - if (direntry.name == _T("")) - return FALSE; - } - - // Hexadecimal filesize - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - // We can return true since sometimes MVS servers send pure filenames - return true; - - direntry.size = 0; - const char *end = str + tokenlen; - const char *p = str; - while (p < end) - { - direntry.size *= 16; - if (*p >= '0' && *p <= '9') - direntry.size += *p - '0'; - else if (*p >= 'A' && *p <= 'F') - direntry.size += *p - 'A' + 10; - else - return false; - p++; - } - - // Unused hexadecimal token - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return false; - - end = str + tokenlen; - p = str; - while (p < end) - { - if ((*p < '0' || *p > '9') && (*p < 'A' || *p > 'F')) - return false; - p++; - } - - // Unused token - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return false; - if (!IsNumeric(str, tokenlen)) - return false; - - const char* prevprev = 0; - const char* prev = 0; - int prevprevlen = 0; - int prevlen = 0; - - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return false; - while (str) - { - if (prevprev) - { - for (int i = 0; i < prevprevlen; i++) - if (prevprev[i] < 'A' || prevprev[i] > 'Z') - return false; - } - prevprev = prev; - prevprevlen = prevlen; - prev = str; - prevlen = tokenlen; - str = GetNextToken(line, linelen, tokenlen, pos, 0); - } - if (!prev || !prevprev) - return false; - - if (!IsNumeric(prev, prevlen) && (prevlen != 3 || memcmp(prev, "ANY", 3))) - return false; - - if (!IsNumeric(prevprev, prevprevlen) && (prevprevlen != 3 || memcmp(prevprev, "ANY", 3))) - return false; - - return true; + int pos = 0; + int tokenlen = 0; + + direntry.bUnsure = FALSE; + direntry.dir = FALSE; + direntry.bLink = FALSE; + direntry.ownergroup = L""; + direntry.permissionstr = L""; + direntry.date.hasdate = direntry.date.hastime = FALSE; + + // pds member name + const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + + if (m_server.nServerType & FZ_SERVERTYPE_SUB_FTP_BS2000 && + IsNumeric(str, tokenlen)) + { + int prevlen = tokenlen; + const char* prev = str; + int oldpos = pos; + + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; + if (str[0] != ':') + { + str = prev; + tokenlen = prevlen; + pos = oldpos; + } + } + + copyStr(direntry.name, 0, str, tokenlen); + + if (m_server.nServerType & FZ_SERVERTYPE_SUB_FTP_BS2000) + { + int pos = direntry.name.ReverseFind(L':'); + if (pos != -1) + direntry.name = direntry.name.Mid(pos + 1); + if (direntry.name[0] == L'$') + { + int pos = direntry.name.Find(L'.'); + if (pos != -1) + direntry.name = direntry.name.Mid(pos + 1); + } + if (direntry.name == L"") + return FALSE; + } + + // Hexadecimal filesize + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + // We can return true since sometimes MVS servers send pure filenames + return true; + + direntry.size = 0; + const char *end = str + tokenlen; + const char *p = str; + while (p < end) + { + direntry.size *= 16; + if (*p >= '0' && *p <= '9') + direntry.size += *p - '0'; + else if (*p >= 'A' && *p <= 'F') + direntry.size += *p - 'A' + 10; + else + return false; + p++; + } + + // Unused hexadecimal token + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return false; + + end = str + tokenlen; + p = str; + while (p < end) + { + if ((*p < '0' || *p > '9') && (*p < 'A' || *p > 'F')) + return false; + p++; + } + + // Unused token + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return false; + if (!IsNumeric(str, tokenlen)) + return false; + + const char* prevprev = 0; + const char* prev = 0; + int prevprevlen = 0; + int prevlen = 0; + + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return false; + while (str) + { + if (prevprev) + { + for (int i = 0; i < prevprevlen; i++) + if (prevprev[i] < 'A' || prevprev[i] > 'Z') + return false; + } + prevprev = prev; + prevprevlen = prevlen; + prev = str; + prevlen = tokenlen; + str = GetNextToken(line, linelen, tokenlen, pos, 0); + } + if (!prev || !prevprev) + return false; + + if (!IsNumeric(prev, prevlen) && (prevlen != 3 || memcmp(prev, "ANY", 3))) + return false; + + if (!IsNumeric(prevprev, prevprevlen) && (prevprevlen != 3 || memcmp(prevprev, "ANY", 3))) + return false; + + return true; } bool CFtpListResult::parseTime(const char *str, int len, t_directory::t_direntry::t_date &date) const { - int i = 0; - //Extract the hour - date.hastime = TRUE; - date.hour = 0; - while (str[i] != ':') - { - if (str[i] < '0' || str[i] > '9') - return false; - date.hour *= 10; - date.hour += str[i] - '0'; - if (date.hour > 24) - return false; - - i++; - if (i == len) - return false; - } - // Make sure we did read at least one digit - if (!i) - return false; - - i++; - - if (i == len) - return false; - - //Extract the minute - date.minute = 0; - while (str[i] >= '0' && str[i] <= '9') - { - date.minute *= 10; - date.minute += str[i] - '0'; - if (date.minute > 59) - return false; - - i++; - if (i == len) - break; - } - - //Convert to 24h format - //I really wish we would have the following system: - //one year->ten months->ten days->ten hours->ten minutes->ten seconds and so on... - //I should modifiy the earth rotation to force everyone to use this system *g* - if (i != len) - { - if (str[i]=='P') - { - if (date.hour < 12) - date.hour += 12; - } - else - if (date.hour == 12) - date.hour = 0; - } - - date.hastime = TRUE; - - return true; + int i = 0; + //Extract the hour + date.hastime = TRUE; + date.hour = 0; + while (str[i] != ':') + { + if (str[i] < '0' || str[i] > '9') + return false; + date.hour *= 10; + date.hour += str[i] - '0'; + if (date.hour > 24) + return false; + + i++; + if (i == len) + return false; + } + // Make sure we did read at least one digit + if (!i) + return false; + + i++; + + if (i == len) + return false; + + //Extract the minute + date.minute = 0; + while (str[i] >= '0' && str[i] <= '9') + { + date.minute *= 10; + date.minute += str[i] - '0'; + if (date.minute > 59) + return false; + + i++; + if (i == len) + break; + } + + //Convert to 24h format + //I really wish we would have the following system: + //one year->ten months->ten days->ten hours->ten minutes->ten seconds and so on... + //I should modifiy the earth rotation to force everyone to use this system *g* + if (i != len) + { + if (str[i]=='P') + { + if (date.hour < 12) + date.hour += 12; + } + else + if (date.hour == 12) + date.hour = 0; + } + + date.hastime = TRUE; + + return true; } BOOL CFtpListResult::parseAsWfFtp(const char *line, const int linelen, t_directory::t_direntry &direntry) { - int pos = 0; - int tokenlen = 0; - - const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; + int pos = 0; + int tokenlen = 0; + + const char *str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; - copyStr(direntry.name, 0, str, tokenlen); + copyStr(direntry.name, 0, str, tokenlen); - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; - if (!IsNumeric(str, tokenlen)) - return FALSE; + if (!IsNumeric(str, tokenlen)) + return FALSE; - direntry.size = strntoi64(str, tokenlen); + direntry.size = strntoi64(str, tokenlen); - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; - if (!ParseShortDate(str, tokenlen, direntry.date)) - return FALSE; + if (!ParseShortDate(str, tokenlen, direntry.date)) + return FALSE; - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; - if (str[tokenlen - 1] != '.') - return FALSE; + if (str[tokenlen - 1] != '.') + return FALSE; - str = GetNextToken(line, linelen, tokenlen, pos, 0); - if (!str) - return FALSE; + str = GetNextToken(line, linelen, tokenlen, pos, 0); + if (!str) + return FALSE; - if (!parseTime(str, tokenlen, direntry.date)) - return FALSE; + if (!parseTime(str, tokenlen, direntry.date)) + return FALSE; - direntry.bUnsure = FALSE; - direntry.dir = false; - direntry.bLink = false; - direntry.permissionstr = _T(""); - direntry.ownergroup = _T(""); + direntry.bUnsure = FALSE; + direntry.dir = false; + direntry.bLink = false; + direntry.permissionstr = L""; + direntry.ownergroup = L""; - return TRUE; + return TRUE; } bool CFtpListResult::ParseSize(const char* str, int len, __int64 &size) const { - if (len < 1) - return false; - - if (IsNumeric(str, len)) - { - size = strntoi64(str, len); - return true; - } - - size = 0; - char last = str[--len]; - - int delimiter = -1; - for (int i = 0; i < len; i++) - { - char c = str[i]; - if (c >= '0' && c <= '9') - { - size *= 10; - size += c - '0'; - } - else if (c == '.') - delimiter = len - i; - else - return false; - } - - // Check for digit before or after delimiterr - if (!delimiter || delimiter == len) - return false; - - - switch (last) - { - case 'k': - case 'K': - size *= 1 << 10; - break; - case 'm': - case 'M': - size *= 1 << 20; - break; - case 'g': - case 'G': - size *= 1 << 30; - break; - case 't': - case 'T': - size *= (__int64)1 << 40; - break; - default: - return false; - } - - if (delimiter == -1) - return true; - - while (delimiter--) - size /= 10; - - return true; + if (len < 1) + return false; + + if (IsNumeric(str, len)) + { + size = strntoi64(str, len); + return true; + } + + size = 0; + char last = str[--len]; + + int delimiter = -1; + for (int i = 0; i < len; i++) + { + char c = str[i]; + if (c >= '0' && c <= '9') + { + size *= 10; + size += c - '0'; + } + else if (c == '.') + delimiter = len - i; + else + return false; + } + + // Check for digit before or after delimiterr + if (!delimiter || delimiter == len) + return false; + + + switch (last) + { + case 'k': + case 'K': + size *= 1 << 10; + break; + case 'm': + case 'M': + size *= 1 << 20; + break; + case 'g': + case 'G': + size *= 1 << 30; + break; + case 't': + case 'T': + size *= (__int64)1 << 40; + break; + default: + return false; + } + + if (delimiter == -1) + return true; + + while (delimiter--) + size /= 10; + + return true; } diff --git a/source/filezilla/FtpListResult.h b/source/filezilla/FtpListResult.h index 32de64d8..209336b3 100644 --- a/source/filezilla/FtpListResult.h +++ b/source/filezilla/FtpListResult.h @@ -1,33 +1,7 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// FtpListResult.h: Schnittstelle für die Klasse CFtpListResult. -// -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_FTPLISTRESULT_H__A175CA67_9A91_4BC0_AAD3_238DE1A6D9AE__INCLUDED_) -#define AFX_FTPLISTRESULT_H__A175CA67_9A91_4BC0_AAD3_238DE1A6D9AE__INCLUDED_ - -#include "FzApiStructures.h" // Hinzugefügt von der Klassenansicht -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - +//--------------------------------------------------------------------------- +#ifndef FtpListResultH +#define FtpListResultH +//--------------------------------------------------------------------------- /*This class parses the directory listing returned from the server. These formats are supported: -rw-r--r-- 1 root other 531 Jan 29 03:26 README\r\n dr-xr-xr-x 2 root other 512 Apr 8 1994 etc\r\n @@ -47,73 +21,73 @@ CII-MANUAL.TEX;1 213/216 29-JAN-1996 03:33:12 [ANONYMOU,ANONYMOUS] (RWED,RW 07-18-00 10:16AM pub\r\n 04-14-00 03:47PM 589 readme.htm\r\n -Multiple spaces are ignored (except within filenames), a single LF character at the end is also supported as well as multiple +Multiple spaces are ignored (except within filenames), a single LF character at the end is also supported as well as multiple CRLF pairs and other variants. */ - +//--------------------------------------------------------------------------- #include "ApiLog.h" - +//--------------------------------------------------------------------------- class CFtpListResult : public CApiLog { public: - t_server m_server; - void SendToMessageLog(HWND hWnd, UINT nMsg); - void AddData(char *data,int size); - CFtpListResult(t_server server, bool *bUTF8 = 0); - virtual ~CFtpListResult(); - t_directory::t_direntry *getList(int &num, CTime EntryTime, bool mlst); + t_server m_server; + void SendToMessageLog(); + void AddData(char * data,int size); + CFtpListResult(t_server server, bool * bUTF8 = 0); + virtual ~CFtpListResult(); + t_directory::t_direntry * getList(int & num, bool mlst); private: - typedef std::list tEntryList; - tEntryList m_EntryList; - - BOOL parseLine(const char *lineToParse, const int linelen, t_directory::t_direntry &direntry, int &nFTPServerType, bool mlst); + typedef std::list tEntryList; + tEntryList m_EntryList; + + BOOL parseLine(const char * lineToParse, const int linelen, t_directory::t_direntry & direntry, int & nFTPServerType, bool mlst); - BOOL parseAsVMS(const char *line, const int linelen, t_directory::t_direntry &direntry); - BOOL parseAsEPLF(const char *line, const int linelen, t_directory::t_direntry &direntry); - BOOL parseAsMlsd(const char *line, const int linelen, t_directory::t_direntry &direntry, bool mlst); - BOOL parseAsUnix(const char *line, const int linelen, t_directory::t_direntry &direntry); - BOOL parseAsDos(const char *line, const int linelen, t_directory::t_direntry &direntry); - BOOL parseAsOther(const char *line, const int linelen, t_directory::t_direntry &direntry); - BOOL parseAsIBM(const char *line, const int linelen, t_directory::t_direntry &direntry); - BOOL parseAsIBMMVS(const char *line, const int linelen, t_directory::t_direntry &direntry); - BOOL parseAsIBMMVSPDS(const char *line, const int linelen, t_directory::t_direntry &direntry); - BOOL parseAsIBMMVSPDS2(const char *line, const int linelen, t_directory::t_direntry &direntry); - BOOL parseAsWfFtp(const char *line, const int linelen, t_directory::t_direntry &direntry); + BOOL parseAsVMS(const char * line, const int linelen, t_directory::t_direntry & direntry); + BOOL parseAsEPLF(const char * line, const int linelen, t_directory::t_direntry & direntry); + BOOL parseAsMlsd(const char * line, const int linelen, t_directory::t_direntry & direntry, bool mlst); + BOOL parseAsUnix(const char * line, const int linelen, t_directory::t_direntry & direntry); + BOOL parseAsDos(const char * line, const int linelen, t_directory::t_direntry & direntry); + BOOL parseAsOther(const char * line, const int linelen, t_directory::t_direntry & direntry); + BOOL parseAsIBM(const char * line, const int linelen, t_directory::t_direntry & direntry); + BOOL parseAsIBMMVS(const char * line, const int linelen, t_directory::t_direntry & direntry); + BOOL parseAsIBMMVSPDS(const char * line, const int linelen, t_directory::t_direntry & direntry); + BOOL parseAsIBMMVSPDS2(const char * line, const int linelen, t_directory::t_direntry & direntry); + BOOL parseAsWfFtp(const char * line, const int linelen, t_directory::t_direntry & direntry); - const char *GetNextToken(const char *line, const int linelen, int &len, int &pos, int type) const; - - bool ParseShortDate(const char *str, int len, t_directory::t_direntry::t_date &date) const; - bool parseTime(const char *str, int len, t_directory::t_direntry::t_date &date) const; - bool ParseSize(const char* str, int len, __int64 &size) const; + const char * GetNextToken(const char * line, const int linelen, int & len, int & pos, int type) const; - bool parseMlsdDateTime(const CString value, t_directory::t_direntry::t_date &date) const; + bool ParseShortDate(const char * str, int len, t_directory::t_direntry::t_date & date) const; + bool parseTime(const char * str, int len, t_directory::t_direntry::t_date & date) const; + bool ParseSize(const char * str, int len, __int64 & size) const; - int pos; - struct t_list - { - char *buffer; - int len; - t_list *next; - } *listhead, *curpos, *m_curlistaddpos; + bool parseMlsdDateTime(const CString value, t_directory::t_direntry::t_date & date) const; - typedef std::list tTempData; - tTempData m_TempData; + int pos; + struct t_list + { + char * buffer; + int len; + t_list * next; + } * listhead, * curpos, * m_curlistaddpos; + + typedef std::list tTempData; + tTempData m_TempData; + + // Month names map + std::map m_MonthNamesMap; - //Month names map - std::map m_MonthNamesMap; - protected: - bool *m_bUTF8; - void copyStr(CString &target, int pos, const char *source, int len, bool mayInvalidateUTF8 = false); - const char * strnchr(const char *str, int len, char c) const; - const char * strnstr(const char *str, int len, const char *c) const; - _int64 strntoi64(const char *str, int len) const; - void AddLine(t_directory::t_direntry &direntry); - char * GetLine(); - bool IsNumeric(const char *str, int len) const; - char *m_prevline; - char *m_curline; + bool * m_bUTF8; + void copyStr(CString & target, int pos, const char * source, int len, bool mayInvalidateUTF8 = false); + const char * strnchr(const char * str, int len, char c) const; + const char * strnstr(const char * str, int len, const char * c) const; + _int64 strntoi64(const char * str, int len) const; + void AddLine(t_directory::t_direntry & direntry); + char * GetLine(); + bool IsNumeric(const char * str, int len) const; + char * m_prevline; + char * m_curline; }; - -#endif // !defined(AFX_FTPLISTRESULT_H__A175CA67_9A91_4BC0_AAD3_238DE1A6D9AE__INCLUDED_) +//--------------------------------------------------------------------------- +#endif // FtpListResultH diff --git a/source/filezilla/FzApiStructures.cpp b/source/filezilla/FzApiStructures.cpp index 68d868d7..c08873c4 100644 --- a/source/filezilla/FzApiStructures.cpp +++ b/source/filezilla/FzApiStructures.cpp @@ -1,101 +1,16 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - +//--------------------------------------------------------------------------- #include "stdafx.h" #include "FzApiStructures.h" - +//--------------------------------------------------------------------------- t_server::t_server() { - port = 0; - fwbypass = FALSE; - bDontRememberPass = FALSE; - nServerType = 0; - nPasv = 0; - nTimeZoneOffset = 0; - nUTF8 = 0; - iForcePasvIp = -1; - iUseMlsd = -1; -} - -t_server::~t_server() -{ -} - -const bool operator == (const t_server &a,const t_server &b) -{ - if (a.host!=b.host) - return false; - if (a.port!=b.port) - return false; - if (a.user!=b.user) - return false; - if (a.account != b.account) - return false; - if (a.pass!=b.pass && a.user!=_MPT("anonymous")) - return false; - if (a.nServerType!=b.nServerType) - return false; - if (a.nPasv != b.nPasv) - return false; - if (a.nTimeZoneOffset != b.nTimeZoneOffset) - return false; - if (a.nUTF8 != b.nUTF8) - return false; -#ifdef MPEXT - if (a.iForcePasvIp != b.iForcePasvIp) - return false; - if (a.iUseMlsd != b.iUseMlsd) - return false; -#endif - return true; -} - -const bool operator != (const t_server &a,const t_server &b) -{ - return !(a == b); -} - -bool t_server::operator<(const t_server &op) const -{ - if (host - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -#if !defined(FZAPISTRUCTURES__INCLUDED) -#define FZAPISTRUCTURES__INCLUDED - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - +//--------------------------------------------------------------------------- +#ifndef FzApiStructuresH +#define FzApiStructuresH +//--------------------------------------------------------------------------- +#include +//--------------------------------------------------------------------------- class t_server { public: - t_server(); - ~t_server(); - CString host; - int port; - CString user, pass, account; - BOOL fwbypass; - CString path; - BOOL bDontRememberPass; - int nServerType; - CString name; //Name of server, used in SiteManager - int nPasv; - int nTimeZoneOffset; - int nUTF8; -#ifdef MPEXT - int iForcePasvIp; - int iUseMlsd; -#endif - bool operator<(const t_server &op) const; //Needed by STL map + t_server(); + ~t_server() {} + CString host; + int port; + CString user, pass, account; + CString path; + int nServerType; + int nPasv; + int nTimeZoneOffset; + int nUTF8; + int iForcePasvIp; + int iUseMlsd; + X509 * Certificate; + EVP_PKEY * PrivateKey; }; - -const bool operator == (const t_server &a,const t_server &b); -const bool operator != (const t_server &a,const t_server &b); - +//--------------------------------------------------------------------------- #include "ServerPath.h" - +//--------------------------------------------------------------------------- typedef struct { CString localfile; @@ -62,5 +36,5 @@ typedef struct int nType; int nUserData; } t_transferfile; - -#endif \ No newline at end of file +//--------------------------------------------------------------------------- +#endif // FzApiStructuresH diff --git a/source/filezilla/MFC64bitFix.cpp b/source/filezilla/MFC64bitFix.cpp index 5bc4d1a6..6add4dc5 100644 --- a/source/filezilla/MFC64bitFix.cpp +++ b/source/filezilla/MFC64bitFix.cpp @@ -1,132 +1,111 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - +//--------------------------------------------------------------------------- #include "stdafx.h" -#ifndef MPEXT -#include "MFC64bitFix.h" -#endif - __int64 GetLength64(CFile &file) { - DWORD low; - DWORD high; - low=GetFileSize((void *)file.m_hFile, &high); - _int64 size=((_int64)high<<32)+low; - return size; + DWORD low; + DWORD high; + low=GetFileSize((void *)file.m_hFile, &high); + _int64 size=((_int64)high<<32)+low; + return size; } BOOL GetLength64(CString filename, _int64 &size) { - WIN32_FIND_DATA findFileData; - HANDLE hFind = FindFirstFile(filename, &findFileData); - if (hFind == INVALID_HANDLE_VALUE) - return FALSE; - VERIFY(FindClose(hFind)); + WIN32_FIND_DATA findFileData; + HANDLE hFind = FindFirstFile(filename, &findFileData); + if (hFind == INVALID_HANDLE_VALUE) + return FALSE; + VERIFY(FindClose(hFind)); + + size=((_int64)findFileData.nFileSizeHigh<<32)+findFileData.nFileSizeLow; - size=((_int64)findFileData.nFileSizeHigh<<32)+findFileData.nFileSizeLow; - - return TRUE; + return TRUE; } BOOL PASCAL GetStatus64(LPCTSTR lpszFileName, CFileStatus64& rStatus) { - WIN32_FIND_DATA findFileData; - HANDLE hFind = FindFirstFile((LPTSTR)lpszFileName, &findFileData); - if (hFind == INVALID_HANDLE_VALUE) - { - return FALSE; - } - VERIFY(FindClose(hFind)); - - // strip attribute of NORMAL bit, our API doesn't have a "normal" bit. - rStatus.m_attribute = (BYTE) - (findFileData.dwFileAttributes & ~FILE_ATTRIBUTE_NORMAL); - - rStatus.m_size = ((_int64)findFileData.nFileSizeHigh<<32)+findFileData.nFileSizeLow; - - // convert times as appropriate - TRY - { - rStatus.m_ctime = CTime(findFileData.ftCreationTime); - rStatus.m_has_ctime = true; - } - CATCH_ALL(e) - { - rStatus.m_has_ctime = false; - } - END_CATCH_ALL; - - TRY - { - rStatus.m_atime = CTime(findFileData.ftLastAccessTime); - rStatus.m_has_atime = true; - } - CATCH_ALL(e) - { - rStatus.m_has_atime = false; - } - END_CATCH_ALL; - - TRY - { - rStatus.m_mtime = CTime(findFileData.ftLastWriteTime); - rStatus.m_has_mtime = true; - } - CATCH_ALL(e) - { - rStatus.m_has_mtime = false; - } - END_CATCH_ALL; - - if (!rStatus.m_has_ctime || rStatus.m_ctime.GetTime() == 0) - { - if (rStatus.m_has_mtime) - { - rStatus.m_ctime = rStatus.m_mtime; - rStatus.m_has_ctime = true; - } - else - rStatus.m_has_ctime = false; - } - - - if (!rStatus.m_has_atime || rStatus.m_atime.GetTime() == 0) - { - if (rStatus.m_has_mtime) - { - rStatus.m_atime = rStatus.m_mtime; - rStatus.m_has_atime = true; - } - else - rStatus.m_has_atime = false; - } - - if (!rStatus.m_has_mtime || rStatus.m_mtime.GetTime() == 0) - { - if (rStatus.m_has_ctime) - { - rStatus.m_mtime = rStatus.m_ctime; - rStatus.m_has_mtime = true; - } - else - rStatus.m_has_mtime = false; - } - - return TRUE; + WIN32_FIND_DATA findFileData; + HANDLE hFind = FindFirstFile((LPTSTR)lpszFileName, &findFileData); + if (hFind == INVALID_HANDLE_VALUE) + { + return FALSE; + } + VERIFY(FindClose(hFind)); + + // strip attribute of NORMAL bit, our API doesn't have a "normal" bit. + rStatus.m_attribute = (BYTE) + (findFileData.dwFileAttributes & ~FILE_ATTRIBUTE_NORMAL); + + rStatus.m_size = ((_int64)findFileData.nFileSizeHigh<<32)+findFileData.nFileSizeLow; + + // convert times as appropriate + TRY + { + rStatus.m_ctime = CTime(findFileData.ftCreationTime); + rStatus.m_has_ctime = true; + } + CATCH_ALL(e) + { + rStatus.m_has_ctime = false; + } + END_CATCH_ALL; + + TRY + { + rStatus.m_atime = CTime(findFileData.ftLastAccessTime); + rStatus.m_has_atime = true; + } + CATCH_ALL(e) + { + rStatus.m_has_atime = false; + } + END_CATCH_ALL; + + TRY + { + rStatus.m_mtime = CTime(findFileData.ftLastWriteTime); + rStatus.m_has_mtime = true; + } + CATCH_ALL(e) + { + rStatus.m_has_mtime = false; + } + END_CATCH_ALL; + + if (!rStatus.m_has_ctime || rStatus.m_ctime.GetTime() == 0) + { + if (rStatus.m_has_mtime) + { + rStatus.m_ctime = rStatus.m_mtime; + rStatus.m_has_ctime = true; + } + else + rStatus.m_has_ctime = false; + } + + + if (!rStatus.m_has_atime || rStatus.m_atime.GetTime() == 0) + { + if (rStatus.m_has_mtime) + { + rStatus.m_atime = rStatus.m_mtime; + rStatus.m_has_atime = true; + } + else + rStatus.m_has_atime = false; + } + + if (!rStatus.m_has_mtime || rStatus.m_mtime.GetTime() == 0) + { + if (rStatus.m_has_ctime) + { + rStatus.m_mtime = rStatus.m_ctime; + rStatus.m_has_mtime = true; + } + else + rStatus.m_has_mtime = false; + } + + return TRUE; } diff --git a/source/filezilla/MFC64bitFix.h b/source/filezilla/MFC64bitFix.h index 463195c6..f1de142c 100644 --- a/source/filezilla/MFC64bitFix.h +++ b/source/filezilla/MFC64bitFix.h @@ -1,37 +1,23 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -#pragma once - -__int64 GetLength64(CFile &file); -BOOL GetLength64(CString filename, _int64 &size); - +//--------------------------------------------------------------------------- +#ifndef MFC64bitFixH +#define MFC64bitFixH +//--------------------------------------------------------------------------- +__int64 GetLength64(CFile & file); +BOOL GetLength64(CString filename, _int64 & size); +//--------------------------------------------------------------------------- struct CFileStatus64 { - bool m_has_ctime; - bool m_has_mtime; - bool m_has_atime; - CTime m_ctime; // creation date/time of file - CTime m_mtime; // last modification date/time of file - CTime m_atime; // last access date/time of file - _int64 m_size; // logical size of file in bytes - BYTE m_attribute; // logical OR of CFile::Attribute enum values - BYTE _m_padding; // pad the structure to a WORD + bool m_has_ctime; + bool m_has_mtime; + bool m_has_atime; + CTime m_ctime; // creation date/time of file + CTime m_mtime; // last modification date/time of file + CTime m_atime; // last access date/time of file + _int64 m_size; // logical size of file in bytes + BYTE m_attribute; // logical OR of CFile::Attribute enum values + BYTE _m_padding; // pad the structure to a WORD }; - -BOOL PASCAL GetStatus64(LPCTSTR lpszFileName, CFileStatus64& rStatus); +//--------------------------------------------------------------------------- +BOOL PASCAL GetStatus64(LPCTSTR lpszFileName, CFileStatus64 & rStatus); +//--------------------------------------------------------------------------- +#endif // MFC64bitFixH diff --git a/source/filezilla/MainThread.cpp b/source/filezilla/MainThread.cpp index 0c8a3cff..bd4981a8 100644 --- a/source/filezilla/MainThread.cpp +++ b/source/filezilla/MainThread.cpp @@ -1,40 +1,6 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// MainThread.cpp: Implementierungsdatei -// - +//--------------------------------------------------------------------------- #include "stdafx.h" #include "MainThread.h" -#ifndef MPEXT -#include "fileexistsdlg.h" -#include "resource.h" -#include "entersomething.h" -#endif -#ifndef MPEXT_NO_CACHE -#include "directorycache.h" -#endif - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif #define ECS m_CriticalSection.Lock() #define LCS m_CriticalSection.Unlock() @@ -44,445 +10,378 @@ static char THIS_FILE[] = __FILE__; CMainThread::CMainThread() { - m_hOwnerWnd = 0; - m_pTools = NULL; - m_nReplyMessageID = 0; - m_nInternalMessageID = 0; - m_pPostKeepAliveCommand = 0; - m_nTimerID = 0; - m_pControlSocket = NULL; - m_pFtpControlSocket = NULL; -#ifndef MPEXT_NO_SFTP - m_pSFtpControlSocket = NULL; -#endif - m_bBusy = FALSE; - m_bConnected = FALSE; -#ifndef MPEXT_NO_CACHE - m_pDirectoryCache = 0; -#endif - m_pWorkingDir = 0; - m_nAsyncRequestID = 0; - m_bQuit = FALSE; -#ifndef MPEXT_NO_IDENT - m_pIdentServer = 0; -#endif - m_hThread = 0; - m_dwThreadId = 0; + m_pTools = NULL; + m_nInternalMessageID = 0; + m_pPostKeepAliveCommand = 0; + m_nTimerID = 0; + m_pControlSocket = NULL; + m_bBusy = FALSE; + m_bConnected = FALSE; + m_pWorkingDir = 0; + m_nAsyncRequestID = 0; + m_bQuit = FALSE; + m_hThread = 0; + m_dwThreadId = 0; } CMainThread::~CMainThread() { - delete m_pWorkingDir; - CloseHandle(m_hThread); + delete m_pWorkingDir; + CloseHandle(m_hThread); } BOOL CMainThread::InitInstance() -{ - m_nTimerID=SetTimer(0,1,1000,0); -#ifndef MPEXT_NO_CACHE - m_pDirectoryCache=new CDirectoryCache; -#endif - m_pPostKeepAliveCommand=0; - - // initialize Winsock library - BOOL res=TRUE; - WSADATA wsaData; - - WORD wVersionRequested = MAKEWORD(1, 1); - int nResult = WSAStartup(wVersionRequested, &wsaData); - if (nResult != 0) - res=FALSE; - else if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1) - { - WSACleanup(); - res=FALSE; - } - - m_pFtpControlSocket=new CFtpControlSocket(this, m_pTools); -#ifndef MPEXT_NO_SFTP - m_pSFtpControlSocket=new CSFtpControlSocket(this); -#endif - m_pControlSocket=m_pFtpControlSocket; - m_pFtpControlSocket->InitLog(this); -#ifndef MPEXT_NO_SFTP - m_pSFtpControlSocket->InitLog(this); -#endif -#ifndef MPEXT_NO_IDENT - if (COptions::GetOptionVal(OPTION_IDENT) && !COptions::GetOptionVal(OPTION_IDENTCONNECT)) - m_pIdentServer=new CIdentServerControl(this); -#endif - return TRUE; +{ + m_nTimerID=SetTimer(0,1,1000,0); + m_pPostKeepAliveCommand=0; + + // initialize Winsock library + BOOL res=TRUE; + WSADATA wsaData; + + WORD wVersionRequested = MAKEWORD(1, 1); + int nResult = WSAStartup(wVersionRequested, &wsaData); + if (nResult != 0) + res=FALSE; + else if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1) + { + WSACleanup(); + res=FALSE; + } + + m_pControlSocket=new CFtpControlSocket(this, m_pTools); + m_pControlSocket->InitIntern(GetIntern()); + return TRUE; } DWORD CMainThread::ExitInstance() { - KillTimer(0,m_nTimerID); - if (m_pFtpControlSocket) - delete m_pFtpControlSocket; -#ifndef MPEXT_NO_SFTP - if (m_pSFtpControlSocket) - delete m_pSFtpControlSocket; -#endif -#ifndef MPEXT_NO_CACHE - if (m_pDirectoryCache) - delete m_pDirectoryCache; -#endif -#ifndef MPEXT_NO_IDENT - if (m_pIdentServer) - delete m_pIdentServer; -#endif - return 1; + KillTimer(0,m_nTimerID); + if (m_pControlSocket) + delete m_pControlSocket; + return 1; } BOOL CMainThread::IsConnected() { - BOOL bConnected; - ECS; - bConnected=m_bConnected; - LCS; - return bConnected; + BOOL bConnected; + ECS; + bConnected=m_bConnected; + LCS; + return bConnected; } void CMainThread::OnTimer(WPARAM wParam, LPARAM lParam) { - if (!m_pControlSocket) - return; - - if (wParam==m_nTimerID) - m_pControlSocket->OnTimer(); - - return; + if (!m_pControlSocket) + return; + + if (wParam==m_nTimerID) + m_pControlSocket->OnTimer(); + + return; } void CMainThread::ShowStatus(CString status, int type) { - ECS; - if (m_bQuit) - { - LCS; - return; - } - LCS; - //Displays a message in the message log - t_ffam_statusmessage *pStatus = new t_ffam_statusmessage; - pStatus->post = TRUE; - pStatus->status = status; - pStatus->type = type; - if (!PostMessage(m_hOwnerWnd, m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_STATUS, 0), (LPARAM)pStatus)) - delete pStatus; + ECS; + if (m_bQuit) + { + LCS; + return; + } + LCS; + //Displays a message in the message log + t_ffam_statusmessage *pStatus = new t_ffam_statusmessage; + pStatus->post = TRUE; + pStatus->status = status; + pStatus->type = type; + if (!GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_STATUS, 0), (LPARAM)pStatus)) + delete pStatus; } void CMainThread::ShowStatus(UINT nID, int type) { - ECS; - if (m_bQuit) - { - LCS; - return; - } - LCS; - CString str; - str.LoadString(nID); - ShowStatus(str,type); + ECS; + if (m_bQuit) + { + LCS; + return; + } + LCS; + CString str; + str.LoadString(nID); + ShowStatus(str,type); } BOOL CMainThread::OnThreadMessage(UINT Msg, WPARAM wParam, LPARAM lParam) { - if (Msg==m_nInternalMessageID) - { - if (wParam==FZAPI_THREADMSG_COMMAND) - { - if (m_pControlSocket && !m_pControlSocket->IsReady()) - m_pPostKeepAliveCommand=(t_command *)lParam; - else - { - t_command *pCommand=(t_command *)lParam; - switch(pCommand->id) - { - case FZ_COMMAND_CONNECT: - ASSERT(!IsConnected()); - SetCurrentPath(CServerPath()); -#ifndef MPEXT_NO_SFTP - if (pCommand->server.nServerType&FZ_SERVERTYPE_SUB_FTP_SFTP) - m_pControlSocket=m_pSFtpControlSocket; - else -#endif - m_pControlSocket=m_pFtpControlSocket; - ASSERT(m_pControlSocket); - m_pControlSocket->Connect(pCommand->server); - break; - case FZ_COMMAND_LIST: - ASSERT(m_pControlSocket); - m_pControlSocket->List(FALSE, 0, pCommand->path, pCommand->param1, pCommand->param4); - break; - case FZ_COMMAND_LISTFILE: - ASSERT(m_pControlSocket); - m_pControlSocket->ListFile(pCommand->param1, pCommand->path); - break; - case FZ_COMMAND_FILETRANSFER: - ASSERT(m_pControlSocket); - m_pControlSocket->FileTransfer(&pCommand->transferfile); - break; - case FZ_COMMAND_CUSTOMCOMMAND: - ASSERT(m_pControlSocket); - m_pControlSocket->FtpCommand(pCommand->param1); - break; - case FZ_COMMAND_DELETE: - ASSERT(m_pControlSocket); - m_pControlSocket->Delete(pCommand->param1, pCommand->path); - break; - case FZ_COMMAND_REMOVEDIR: - ASSERT(m_pControlSocket); - m_pControlSocket->RemoveDir(pCommand->param1, pCommand->path); - break; - case FZ_COMMAND_MAKEDIR: - ASSERT(m_pControlSocket); - m_pControlSocket->MakeDir(pCommand->path); - break; - case FZ_COMMAND_RENAME: - ASSERT(m_pControlSocket); - m_pControlSocket->Rename(pCommand->param1, pCommand->param2, pCommand->path, pCommand->newPath); - break; - case FZ_COMMAND_CHMOD: - ASSERT(m_pControlSocket); - m_pControlSocket->Chmod(pCommand->param1, pCommand->path, pCommand->param4); - break; - } - delete pCommand; - } - } - else if (wParam==FZAPI_THREADMSG_PROCESSREPLY) - m_pControlSocket->ProcessReply(); - else if (wParam==FZAPI_THREADMSG_TRANSFEREND) - m_pControlSocket->TransferEnd(lParam); - else if (wParam==FZAPI_THREADMSG_CANCEL) - m_pControlSocket->Cancel(lParam); - else if (wParam==FZAPI_THREADMSG_DISCONNECT) - m_pControlSocket->Disconnect(); - else if (wParam==FZAPI_THREADMSG_POSTKEEPALIVE) - { - if (m_pPostKeepAliveCommand) - { - PostThreadMessage(m_nInternalMessageID,FZAPI_THREADMSG_COMMAND,(LPARAM)m_pPostKeepAliveCommand); - m_pPostKeepAliveCommand=0; - } - } - else if (wParam==FZAPI_THREADMSG_ASYNCREQUESTREPLY) - { - CAsyncRequestData *pData=(CAsyncRequestData *)lParam; - if (pData) - { - if (pData->nRequestID!=GetAsyncRequestID()) - LogMessage(__FILE__, __LINE__, this,FZ_LOG_INFO, _T("Ignoring old request ID")); - else - m_pControlSocket->SetAsyncRequestResult(pData->nRequestResult, pData); - delete pData; - } - else - LogMessage(__FILE__, __LINE__, this,FZ_LOG_WARNING, _T("Request reply without data")); - } - return TRUE; - } - else if (Msg==WM_TIMER) - { - OnTimer(wParam, lParam); - } - - return TRUE; + if (Msg==m_nInternalMessageID) + { + if (wParam==FZAPI_THREADMSG_COMMAND) + { + if (m_pControlSocket && !m_pControlSocket->IsReady()) + m_pPostKeepAliveCommand=(t_command *)lParam; + else + { + t_command *pCommand=(t_command *)lParam; + switch(pCommand->id) + { + case FZ_COMMAND_CONNECT: + DebugAssert(!IsConnected()); + SetCurrentPath(CServerPath()); + m_pControlSocket->Connect(pCommand->server); + break; + case FZ_COMMAND_LIST: + DebugAssert(m_pControlSocket); + m_pControlSocket->List(FALSE, 0, pCommand->path, pCommand->param1); + break; + case FZ_COMMAND_LISTFILE: + DebugAssert(m_pControlSocket); + m_pControlSocket->ListFile(pCommand->param1, pCommand->path); + break; + case FZ_COMMAND_FILETRANSFER: + DebugAssert(m_pControlSocket); + m_pControlSocket->FileTransfer(&pCommand->transferfile); + break; + case FZ_COMMAND_CUSTOMCOMMAND: + DebugAssert(m_pControlSocket); + m_pControlSocket->FtpCommand(pCommand->param1); + break; + case FZ_COMMAND_DELETE: + DebugAssert(m_pControlSocket); + m_pControlSocket->Delete(pCommand->param1, pCommand->path); + break; + case FZ_COMMAND_REMOVEDIR: + DebugAssert(m_pControlSocket); + m_pControlSocket->RemoveDir(pCommand->param1, pCommand->path); + break; + case FZ_COMMAND_MAKEDIR: + DebugAssert(m_pControlSocket); + m_pControlSocket->MakeDir(pCommand->path); + break; + case FZ_COMMAND_RENAME: + DebugAssert(m_pControlSocket); + m_pControlSocket->Rename(pCommand->param1, pCommand->param2, pCommand->path, pCommand->newPath); + break; + case FZ_COMMAND_CHMOD: + DebugAssert(m_pControlSocket); + m_pControlSocket->Chmod(pCommand->param1, pCommand->path, pCommand->param4); + break; + } + delete pCommand; + } + } + else if (wParam==FZAPI_THREADMSG_PROCESSREPLY) + m_pControlSocket->ProcessReply(); + else if (wParam==FZAPI_THREADMSG_TRANSFEREND) + m_pControlSocket->TransferEnd(lParam); + else if (wParam==FZAPI_THREADMSG_CANCEL) + m_pControlSocket->Cancel(lParam); + else if (wParam==FZAPI_THREADMSG_DISCONNECT) + m_pControlSocket->Disconnect(); + else if (wParam==FZAPI_THREADMSG_POSTKEEPALIVE) + { + if (m_pPostKeepAliveCommand) + { + PostThreadMessage(m_nInternalMessageID,FZAPI_THREADMSG_COMMAND,(LPARAM)m_pPostKeepAliveCommand); + m_pPostKeepAliveCommand=0; + } + } + else if (wParam==FZAPI_THREADMSG_ASYNCREQUESTREPLY) + { + CAsyncRequestData *pData=(CAsyncRequestData *)lParam; + if (pData) + { + if (pData->nRequestID!=GetAsyncRequestID()) + LogMessage(FZ_LOG_INFO, L"Ignoring old request ID"); + else + m_pControlSocket->SetAsyncRequestResult(pData->nRequestResult, pData); + delete pData; + } + else + LogMessage(FZ_LOG_WARNING, L"Request reply without data"); + } + return TRUE; + } + else if (Msg==WM_TIMER) + { + OnTimer(wParam, lParam); + } + + return TRUE; } BOOL CMainThread::IsBusy() { - BOOL bBusy; - ECS; - bBusy=m_bBusy; - LCS; - return bBusy; + BOOL bBusy; + ECS; + bBusy=m_bBusy; + LCS; + return bBusy; } void CMainThread::Command(const t_command &command) { - ASSERT(!IsBusy()); - ECS; - if (m_bQuit) - { - LCS; - return; - } - m_bBusy=TRUE; - t_command *pCommand=new t_command; - *pCommand=command; - VERIFY(PostThreadMessage(m_nInternalMessageID,FZAPI_THREADMSG_COMMAND,(LPARAM)pCommand)); - m_LastCommand=command; - LCS; + DebugAssert(!IsBusy()); + ECS; + if (m_bQuit) + { + LCS; + return; + } + m_bBusy=TRUE; + t_command *pCommand=new t_command; + *pCommand=command; + VERIFY(PostThreadMessage(m_nInternalMessageID,FZAPI_THREADMSG_COMMAND,(LPARAM)pCommand)); + m_LastCommand=command; + LCS; } BOOL CMainThread::LastOperationSuccessful() { - return TRUE; + return TRUE; } void CMainThread::SetBusy(BOOL bBusy) { - ECS; - m_bBusy=bBusy; - LCS; + ECS; + m_bBusy=bBusy; + LCS; } void CMainThread::SetConnected(BOOL bConnected /*=TRUE*/) { - ECS; - m_bConnected=bConnected; -#ifdef MPEXT - if (!bConnected) - { - // when we loose connection - // reset pending commands as we cannot fulfill them anyway - m_pPostKeepAliveCommand = 0; - } -#endif - LCS; + ECS; + m_bConnected=bConnected; + if (!bConnected) + { + // when we loose connection + // reset pending commands as we cannot fulfill them anyway + m_pPostKeepAliveCommand = 0; + } + LCS; } bool CMainThread::GetCurrentPath(CServerPath &dir) { - if (!IsConnected()) - return false; - ECS; - dir=m_CurrentPath; - LCS; - return true; + if (!IsConnected()) + return false; + ECS; + dir=m_CurrentPath; + LCS; + return true; } CServerPath CMainThread::GetCurrentPath() { - CServerPath path; - bool res = GetCurrentPath(path); - if (!res) - return CServerPath(); - - return path; + CServerPath path; + bool res = GetCurrentPath(path); + if (!res) + return CServerPath(); + + return path; } BOOL CMainThread::GetCurrentServer(t_server &server) { - if (!IsConnected()) - return FALSE; - ECS; - server=m_pControlSocket->GetCurrentServer(); - LCS; - return TRUE; + if (!IsConnected()) + return FALSE; + ECS; + server=m_pControlSocket->GetCurrentServer(); + LCS; + return TRUE; } void CMainThread::Quit() { - ECS; - m_bQuit=TRUE; - LCS; - if (IsBusy()) - PostThreadMessage(m_nInternalMessageID, FZAPI_THREADMSG_CANCEL, 1); - PostThreadMessage(WM_QUIT, 0, 0); + ECS; + m_bQuit=TRUE; + LCS; + if (IsBusy()) + PostThreadMessage(m_nInternalMessageID, FZAPI_THREADMSG_CANCEL, 1); + PostThreadMessage(WM_QUIT, 0, 0); } void CMainThread::SetCurrentPath(CServerPath path) { - ECS; - m_CurrentPath=path; - LCS; - return; + ECS; + m_CurrentPath=path; + LCS; + return; } -#ifndef MPEXT -int CMainThread::GetOption(int nOption) -{ - int nValue=0; - ECS; - std::map::iterator iter=m_Options.find(nOption); - if (iter!=m_Options.end()) - nValue=iter->second; - LCS; - return nValue; -} - -void CMainThread::SetOption(int nOption, int nValue) -{ - ECS; - m_Options[nOption]=nValue; - LCS; -} -#else bool CMainThread::UsingMlsd() { - if (!IsConnected()) - return false; - return m_pControlSocket->UsingMlsd(); + if (!IsConnected()) + return false; + return m_pControlSocket->UsingMlsd(); } bool CMainThread::UsingUtf8() { - if (!IsConnected()) - return false; - return m_pControlSocket->UsingUtf8(); + if (!IsConnected()) + return false; + return m_pControlSocket->UsingUtf8(); } std::string CMainThread::GetTlsVersionStr() { - if (!IsConnected()) - return std::string(); - return m_pControlSocket->GetTlsVersionStr(); + if (!IsConnected()) + return std::string(); + return m_pControlSocket->GetTlsVersionStr(); } std::string CMainThread::GetCipherName() { - if (!IsConnected()) - return std::string(); - return m_pControlSocket->GetCipherName(); + if (!IsConnected()) + return std::string(); + return m_pControlSocket->GetCipherName(); } -#endif BOOL CMainThread::GetWorkingDir(t_directory *pWorkingDir) { - ECS; - if (m_pWorkingDir) - { - *pWorkingDir=*m_pWorkingDir; - LCS; - return TRUE; - } - LCS; - return FALSE; + ECS; + if (m_pWorkingDir) + { + *pWorkingDir=*m_pWorkingDir; + LCS; + return TRUE; + } + LCS; + return FALSE; } void CMainThread::SetWorkingDir(t_directory *pWorkingDir) { - if (!pWorkingDir) - { - ECS; - delete m_pWorkingDir; - m_pWorkingDir=0; - LCS; - } - else - { - ECS; - if (!m_pWorkingDir) - m_pWorkingDir=new t_directory; - *m_pWorkingDir=*pWorkingDir; - LCS; - } - if (pWorkingDir) - { - t_directory *pDirectoryToSend=new t_directory; - *pDirectoryToSend=*pWorkingDir; + if (!pWorkingDir) + { + ECS; + delete m_pWorkingDir; + m_pWorkingDir=0; + LCS; + } + else + { + ECS; + if (!m_pWorkingDir) + m_pWorkingDir=new t_directory; + *m_pWorkingDir=*pWorkingDir; + LCS; + } + if (pWorkingDir) + { + t_directory *pDirectoryToSend=new t_directory; + *pDirectoryToSend=*pWorkingDir; SendDirectoryListing(pDirectoryToSend); - } + } - return; + return; } void CMainThread::SendDirectoryListing(t_directory * pDirectoryToSend) { - if (!PostMessage(NULL, 0, FZ_MSG_MAKEMSG(FZ_MSG_LISTDATA, 0), (LPARAM)pDirectoryToSend)) + if (!GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_LISTDATA, 0), (LPARAM)pDirectoryToSend)) { delete pDirectoryToSend; } @@ -490,99 +389,90 @@ void CMainThread::SendDirectoryListing(t_directory * pDirectoryToSend) bool CMainThread::GetWorkingDirPath(CServerPath &path) { - ECS; - if (m_pWorkingDir) - { - path = m_pWorkingDir->path; - LCS; - return true; - } - LCS; + ECS; + if (m_pWorkingDir) + { + path = m_pWorkingDir->path; + LCS; + return true; + } + LCS; - return false; + return false; } __int64 CMainThread::GetAsyncRequestID() const { - return m_nAsyncRequestID; + return m_nAsyncRequestID; } __int64 CMainThread::GetNextAsyncRequestID() { - return ++m_nAsyncRequestID; + return ++m_nAsyncRequestID; } CMainThread* CMainThread::Create(int nPriority /*=THREAD_PRIORITY_NORMAL*/, DWORD dwCreateFlags /*=0*/) { - CMainThread *pMainThread=new CMainThread(); - pMainThread->m_hThread=CreateThread(0, 0, ThreadProc, pMainThread, dwCreateFlags, &pMainThread->m_dwThreadId); - if (!pMainThread->m_hThread) - { - delete pMainThread; - return NULL; - } - ::SetThreadPriority(pMainThread->m_hThread, nPriority); - return pMainThread; + CMainThread *pMainThread=new CMainThread(); + pMainThread->m_hThread=CreateThread(0, 0, ThreadProc, pMainThread, dwCreateFlags, &pMainThread->m_dwThreadId); + if (!pMainThread->m_hThread) + { + delete pMainThread; + return NULL; + } + ::SetThreadPriority(pMainThread->m_hThread, nPriority); + return pMainThread; } BOOL CMainThread::PostThreadMessage(UINT message, WPARAM wParam, LPARAM lParam) { - return ::PostThreadMessage(m_dwThreadId, message, wParam, lParam); + return ::PostThreadMessage(m_dwThreadId, message, wParam, lParam); } DWORD CMainThread::ResumeThread() { - BOOL res=::ResumeThread(m_hThread); - if (res) - { - m_EventStarted.Lock(); - m_EventStarted.Unlock(); - } - return res; + BOOL res=::ResumeThread(m_hThread); + if (res) + { + m_EventStarted.Lock(); + m_EventStarted.Unlock(); + } + return res; } DWORD WINAPI CMainThread::ThreadProc(LPVOID lpParameter) { - return ((CMainThread *)lpParameter)->Run(); + return ((CMainThread *)lpParameter)->Run(); } DWORD CMainThread::Run() { - ECS; - InitInstance(); - m_EventStarted.SetEvent(); - LCS; - MSG msg; - while (GetMessage(&msg, 0, 0, 0)) - { - TranslateMessage(&msg); - if (!msg.hwnd) - { - OnThreadMessage(msg.message, msg.wParam, msg.lParam); - } - DispatchMessage(&msg); - } - DWORD res = ExitInstance(); - delete this; - return res; + ECS; + InitInstance(); + m_EventStarted.SetEvent(); + LCS; + MSG msg; + while (GetMessage(&msg, 0, 0, 0)) + { + TranslateMessage(&msg); + if (!msg.hwnd) + { + OnThreadMessage(msg.message, msg.wParam, msg.lParam); + } + DispatchMessage(&msg); + } + DWORD res = ExitInstance(); + delete this; + return res; } BOOL CMainThread::IsValid() const { - if (!this) - return FALSE; - - if (IsBadWritePtr((VOID *)this, sizeof(CMainThread)) ) - return FALSE; + if (!this) + return FALSE; - if (m_pControlSocket && - m_pControlSocket != m_pFtpControlSocket -#ifndef MPEXT_NO_SFTP - && - m_pControlSocket != m_pSFtpControlSocket -#endif - ) - return FALSE; + if (IsBadWritePtr((VOID *)this, sizeof(CMainThread)) ) + return FALSE; - return TRUE; -} \ No newline at end of file + return TRUE; +} diff --git a/source/filezilla/MainThread.h b/source/filezilla/MainThread.h index 9fb83fbb..3b0d85f3 100644 --- a/source/filezilla/MainThread.h +++ b/source/filezilla/MainThread.h @@ -1,42 +1,12 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -/*CMainThread -Main thread of FileZilla. Processes the command messages passed by the main window -*/ - -#ifndef MPEXT_NO_CACHE -#include "DirectoryCache.h" // Hinzugefügt von der Klassenansicht -#endif -#pragma once - -#include "controlsocket.h" -#ifndef MPEXT_NO_SFTP -#include "SFtpControlSocket.h" -#endif +//--------------------------------------------------------------------------- +#ifndef MainThreadH +#define MainThreadH +//--------------------------------------------------------------------------- #include "FtpControlSocket.h" -#include "structures.h" // Hinzugefügt von der Klassenansicht -#include "FileZillaApi.h" // Hinzugefügt von der Klassenansicht +#include "structures.h" +#include "FileZillaApi.h" #include "ApiLog.h" - -///////////////////////////////////////////////////////////////////////////// -// Thread CMainThread - +//--------------------------------------------------------------------------- #define FZAPI_THREADMSG_PROCESSREPLY 0 #define FZAPI_THREADMSG_COMMAND 1 #define FZAPI_THREADMSG_TRANSFEREND 2 @@ -44,98 +14,73 @@ Main thread of FileZilla. Processes the command messages passed by the main wind #define FZAPI_THREADMSG_DISCONNECT 4 #define FZAPI_THREADMSG_ASYNCREQUESTREPLY 5 #define FZAPI_THREADMSG_POSTKEEPALIVE 6 - -#ifndef MPEXT_NO_IDENT -class CIdentServerControl; -#endif +//--------------------------------------------------------------------------- class CMainThread : public CApiLog { protected: - CMainThread(); // Dynamische Erstellung verwendet geschützten Konstruktor + CMainThread(); -// Attribute public: - -// Operationen -public: - DWORD m_dwThreadId; - HANDLE m_hThread; - static CMainThread *Create(int nPriority = THREAD_PRIORITY_NORMAL, DWORD dwCreateFlags = 0); - bool GetWorkingDirPath(CServerPath &path); - void SetWorkingDir(t_directory *pWorkingDir); - BOOL GetWorkingDir(t_directory* pWorkingDir); + // Operationen + DWORD m_dwThreadId; + HANDLE m_hThread; + static CMainThread * Create(int nPriority = THREAD_PRIORITY_NORMAL, DWORD dwCreateFlags = 0); + bool GetWorkingDirPath(CServerPath & path); + void SetWorkingDir(t_directory * pWorkingDir); + BOOL GetWorkingDir(t_directory * pWorkingDir); void SendDirectoryListing(t_directory * pDirectoryToSend); -#ifndef MPEXT - void SetOption(int nOption, int nValue); - int GetOption(int nOption); -#else - bool UsingMlsd(); - bool UsingUtf8(); - std::string GetTlsVersionStr(); - std::string GetCipherName(); -#endif - t_command m_LastCommand; -#ifndef MPEXT_NO_CACHE - CDirectoryCache *m_pDirectoryCache; -#endif - void SetCurrentPath(CServerPath path); - void Quit(); - BOOL GetCurrentServer(t_server &server); - bool GetCurrentPath(CServerPath &dir); - CServerPath GetCurrentPath(); - void SetConnected(BOOL bConnected = TRUE); - BOOL m_bConnected; - void SetBusy(BOOL bBusy); - BOOL LastOperationSuccessful(); - void Command(const t_command& command); - BOOL IsBusy(); - HWND m_hOwnerWnd; - CFileZillaTools * m_pTools; - BOOL m_bBusy; - unsigned int m_nReplyMessageID; - unsigned int m_nInternalMessageID; - BOOL IsConnected(); - __int64 GetAsyncRequestID() const; - __int64 GetNextAsyncRequestID(); - virtual int OnThreadMessage(UINT Msg, WPARAM wParam, LPARAM lParam); - DWORD SuspendThread(); - DWORD ResumeThread(); - BOOL PostThreadMessage( UINT message , WPARAM wParam, LPARAM lParam); - - BOOL IsValid() const; + bool UsingMlsd(); + bool UsingUtf8(); + std::string GetTlsVersionStr(); + std::string GetCipherName(); + t_command m_LastCommand; + void SetCurrentPath(CServerPath path); + void Quit(); + BOOL GetCurrentServer(t_server & server); + bool GetCurrentPath(CServerPath & dir); + CServerPath GetCurrentPath(); + void SetConnected(BOOL bConnected = TRUE); + BOOL m_bConnected; + void SetBusy(BOOL bBusy); + BOOL LastOperationSuccessful(); + void Command(const t_command & command); + BOOL IsBusy(); + CFileZillaTools * m_pTools; + BOOL m_bBusy; + unsigned int m_nInternalMessageID; + BOOL IsConnected(); + __int64 GetAsyncRequestID() const; + __int64 GetNextAsyncRequestID(); + virtual int OnThreadMessage(UINT Msg, WPARAM wParam, LPARAM lParam); + DWORD SuspendThread(); + DWORD ResumeThread(); + BOOL PostThreadMessage( UINT message , WPARAM wParam, LPARAM lParam); + + BOOL IsValid() const; protected: - BOOL InitInstance(); - DWORD ExitInstance(); - DWORD Run(); - static DWORD WINAPI ThreadProc(LPVOID lpParameter); + BOOL InitInstance(); + DWORD ExitInstance(); + DWORD Run(); + static DWORD WINAPI ThreadProc(LPVOID lpParameter); - CCriticalSection m_CriticalSection; - void ShowStatus(CString status,int type); - void ShowStatus(UINT nID, int type); + CCriticalSection m_CriticalSection; + void ShowStatus(CString status,int type); + void ShowStatus(UINT nID, int type); - CControlSocket *m_pControlSocket; - CFtpControlSocket *m_pFtpControlSocket; -#ifndef MPEXT_NO_SFTP - CSFtpControlSocket *m_pSFtpControlSocket; -#endif - __int64 m_nAsyncRequestID; - void OnTimer(WPARAM wParam,LPARAM lParam); -// Überschreibungen + CFtpControlSocket * m_pControlSocket; + __int64 m_nAsyncRequestID; + void OnTimer(WPARAM wParam, LPARAM lParam); -// Implementierung protected: -#ifndef MPEXT_NO_IDENT - CIdentServerControl *m_pIdentServer; -#endif - t_directory *m_pWorkingDir; - std::map m_Options; - BOOL m_bQuit; - t_command *m_pPostKeepAliveCommand; - CServerPath m_CurrentPath; - UINT m_nTimerID; - virtual ~CMainThread(); - CEvent m_EventStarted; + t_directory * m_pWorkingDir; + std::map m_Options; + BOOL m_bQuit; + t_command * m_pPostKeepAliveCommand; + CServerPath m_CurrentPath; + UINT m_nTimerID; + virtual ~CMainThread(); + CEvent m_EventStarted; }; - -///////////////////////////////////////////////////////////////////////////// +//--------------------------------------------------------------------------- +#endif MainThreadH diff --git a/source/filezilla/Options.cpp b/source/filezilla/Options.cpp deleted file mode 100644 index b5cbf2c4..00000000 --- a/source/filezilla/Options.cpp +++ /dev/null @@ -1,37 +0,0 @@ -//--------------------------------------------------------------------------- -#include "stdafx.h" -#include -#include -#include -//--------------------------------------------------------------------------- -CString COptions::GetInstanceOption(CApiLog * Instance, int OptionID) -{ - ASSERT(Instance); - ASSERT(dynamic_cast(Instance) != NULL); - - TFileZillaIntern * Intern = (TFileZillaIntern *)Instance; - - const TFileZillaIntf * Intf = Intern->GetOwner(); - ASSERT(Intf != NULL); - CString Result = Intf->Option(OptionID); - switch (OptionID) - { - case OPTION_PROXYPASS: - case OPTION_FWPASS: - Result = CCrypt::encrypt(Result); - break; - } - return Result; -} -//--------------------------------------------------------------------------- -int COptions::GetInstanceOptionVal(CApiLog * Instance, int OptionID) -{ - ASSERT(Instance); - ASSERT(dynamic_cast(Instance) != NULL); - - TFileZillaIntern * Intern = (TFileZillaIntern *)Instance; - - const TFileZillaIntf * Intf = Intern->GetOwner(); - ASSERT(Intf != NULL); - return Intf->OptionVal(OptionID); -} diff --git a/source/filezilla/Options.h b/source/filezilla/Options.h deleted file mode 100644 index e9fc5525..00000000 --- a/source/filezilla/Options.h +++ /dev/null @@ -1,22 +0,0 @@ -//--------------------------------------------------------------------------- -#ifndef OptionsH -#define OptionsH -//--------------------------------------------------------------------------- -#ifndef MPEXT_NO_SPEED_LIM_RULES -#include -#endif -//--------------------------------------------------------------------------- -class COptions -{ -public: -#ifndef MPEXT_NO_SPEED_LIM_RULES - static CCriticalSection m_Sync; // Moved to public section - needed for locking list - static SPEEDLIMITSLIST m_DownloadSpeedLimits; - static SPEEDLIMITSLIST m_UploadSpeedLimits; -#endif - - static CString GetInstanceOption(CApiLog * Instance, int OptionID); - static int GetInstanceOptionVal(CApiLog * Instance, int OptionID); -}; -//--------------------------------------------------------------------------- -#endif diff --git a/source/filezilla/ServerPath.cpp b/source/filezilla/ServerPath.cpp index d90b1934..48dcf705 100644 --- a/source/filezilla/ServerPath.cpp +++ b/source/filezilla/ServerPath.cpp @@ -1,35 +1,8 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// ServerPath.cpp: Implementierung der Klasse CServerPath. -// -////////////////////////////////////////////////////////////////////// - +//--------------------------------------------------------------------------- #include "stdafx.h" #include "ServerPath.h" #include "structures.h" -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#define new DEBUG_NEW -#endif - #define FTP_MVS_DOUBLE_QUOTA (TCHAR)0xDC ////////////////////////////////////////////////////////////////////// @@ -38,159 +11,165 @@ static char THIS_FILE[]=__FILE__; CServerPath::CServerPath() { - m_nServerType = 0; - m_bEmpty = TRUE; + m_nServerType = 0; + m_bEmpty = TRUE; } CServerPath::CServerPath(int nServerType) { - m_nServerType = nServerType; - m_bEmpty = TRUE; + m_nServerType = nServerType; + m_bEmpty = TRUE; } -CServerPath::CServerPath(CString path) +CServerPath::CServerPath(CString path, bool trim) { - m_nServerType = FZ_SERVERTYPE_FTP; - path.TrimLeft( _T(" ") ); - path.TrimRight( _T(" ") ); - if (path == _MPT("")) - { - m_bEmpty = TRUE; - return; - } - else - m_bEmpty = FALSE; - - int pos1 = path.Find( _T(":[") ); - if (pos1 != -1 && path.Right(1) == _MPT("]") && pos1 != (path.GetLength()-1)) - m_nServerType |= FZ_SERVERTYPE_SUB_FTP_VMS; - else if (path.GetLength() >= 3 && _istalpha(path[0]) && path[1] == _MPT(':') && (path[2] == _MPT('\\') || path[2] == _MPT('/'))) - m_nServerType |= FZ_SERVERTYPE_SUB_FTP_WINDOWS; - else if (path[0] == FTP_MVS_DOUBLE_QUOTA && path[path.GetLength() - 1] == FTP_MVS_DOUBLE_QUOTA) - m_nServerType |= FZ_SERVERTYPE_SUB_FTP_MVS; - else if (path.GetLength() > 2 && path[0] == _MPT('\'') && path.Right(1) == _T("'") && path.Find(_MPT('/')) == -1 && path.Find(_MPT('\\')) == -1) - m_nServerType |= FZ_SERVERTYPE_SUB_FTP_MVS; - - *this = CServerPath(path, m_nServerType); + m_nServerType = FZ_SERVERTYPE_FTP; + if (trim) + { + path.TrimLeft( L" " ); + path.TrimRight( L" " ); + } + if (path == L"") + { + m_bEmpty = TRUE; + return; + } + else + m_bEmpty = FALSE; + + int pos1 = path.Find( L":[" ); + if (pos1 != -1 && path.Right(1) == L"]" && pos1 != (path.GetLength()-1)) + m_nServerType |= FZ_SERVERTYPE_SUB_FTP_VMS; + else if (path.GetLength() >= 3 && _istalpha(path[0]) && path[1] == L':' && (path[2] == L'\\' || path[2] == L'/')) + m_nServerType |= FZ_SERVERTYPE_SUB_FTP_WINDOWS; + else if (path[0] == FTP_MVS_DOUBLE_QUOTA && path[path.GetLength() - 1] == FTP_MVS_DOUBLE_QUOTA) + m_nServerType |= FZ_SERVERTYPE_SUB_FTP_MVS; + else if (path.GetLength() > 2 && path[0] == L'\'' && path.Right(1) == L"'" && path.Find(L'/') == -1 && path.Find(L'\\') == -1) + m_nServerType |= FZ_SERVERTYPE_SUB_FTP_MVS; + + *this = CServerPath(path, m_nServerType, trim); } -CServerPath::CServerPath(CString path, int nServerType) +CServerPath::CServerPath(CString path, int nServerType, bool trim) { - m_nServerType = nServerType; - path.TrimLeft( _T(" ") ); - path.TrimRight( _T(" ") ); - if (path == _MPT("")) - { - m_bEmpty = TRUE; - return; - } - else - m_bEmpty = FALSE; - - switch (m_nServerType&FZ_SERVERTYPE_HIGHMASK) - { - case FZ_SERVERTYPE_FTP: - switch(m_nServerType&FZ_SERVERTYPE_SUBMASK) - { - case FZ_SERVERTYPE_SUB_FTP_MVS: - case FZ_SERVERTYPE_SUB_FTP_BS2000: - { - path.TrimLeft(FTP_MVS_DOUBLE_QUOTA); - path.TrimRight(FTP_MVS_DOUBLE_QUOTA); - path.TrimLeft(_MPT('\'')); - path.TrimRight(_MPT('\'')); - path.TrimLeft(_MPT('.')); - while (path.Replace(_T(".."), _T("."))); - - int pos = path.Find(_T(".")); - while (pos != -1) - { - m_Segments.push_back(path.Left(pos)); - path = path.Mid(pos + 1); - pos = path.Find( _T(".") ); - } - if (path != _T("")) - m_Segments.push_back(path); - else - m_Prefix = _T("."); - } - break; - case FZ_SERVERTYPE_SUB_FTP_VMS: - { - int pos1 = path.Find( _T("[") ); - if (pos1 == -1 || path.Right(1) != _T("]")) - { - ASSERT(FALSE); - m_bEmpty = TRUE; - return; - } - path.TrimRight( _T("]") ); - if (pos1) - m_Prefix = path.Left(pos1); - path = path.Mid(pos1 + 1); - int pos = path.Find( _T(".") ); - while (pos != -1) - { - m_Segments.push_back(path.Left(pos)); - path = path.Mid(pos+1); - pos = path.Find( _T(".") ); - } - if (path != _MPT("")) - m_Segments.push_back(path); - } - break; - default: - path.Replace( _T("\\"), _T("/") ); - while (path.Replace( _T("//"), _T("/") )); - path.TrimLeft( _T("/") ); - path.TrimRight( _T("/") ); - int pos = path.Find( _T("/") ); - while (pos != -1) - { - m_Segments.push_back(path.Left(pos)); - path = path.Mid(pos+1); - pos = path.Find( _T("/") ); - } - if (path != _MPT("")) - m_Segments.push_back(path); - break; - } - break; - case FZ_SERVERTYPE_LOCAL: - { - path.TrimRight( _T("\\") ); - while (path.Replace( _T("\\\\"), _T("\\") )); - int pos = path.Find( _T("\\") ); - if (pos == -1) - { - m_Prefix = path; - return; - } - ASSERT(pos == 2); - m_Prefix = path.Left(pos); - path = path.Mid(pos + 1); - pos = path.Find( _T("\\") ); - while (pos != -1) - { - m_Segments.push_back(path.Left(pos)); - path=path.Mid(pos + 1); - pos=path.Find( _T("\\") ); - } - if (path != _MPT("")) - m_Segments.push_back(path); - } - break; - default: - ASSERT(FALSE); - } + m_nServerType = nServerType; + if (trim) + { + path.TrimLeft( L" " ); + path.TrimRight( L" " ); + } + if (path == L"") + { + m_bEmpty = TRUE; + return; + } + else + m_bEmpty = FALSE; + + switch (m_nServerType&FZ_SERVERTYPE_HIGHMASK) + { + case FZ_SERVERTYPE_FTP: + switch(m_nServerType&FZ_SERVERTYPE_SUBMASK) + { + case FZ_SERVERTYPE_SUB_FTP_MVS: + case FZ_SERVERTYPE_SUB_FTP_BS2000: + { + path.TrimLeft(FTP_MVS_DOUBLE_QUOTA); + path.TrimRight(FTP_MVS_DOUBLE_QUOTA); + path.TrimLeft(L'\''); + path.TrimRight(L'\''); + path.TrimLeft(L'.'); + while (path.Replace(L"..", L".")); + + int pos = path.Find(L"."); + while (pos != -1) + { + m_Segments.push_back(path.Left(pos)); + path = path.Mid(pos + 1); + pos = path.Find( L"." ); + } + if (path != L"") + m_Segments.push_back(path); + else + m_Prefix = L"."; + } + break; + case FZ_SERVERTYPE_SUB_FTP_VMS: + { + int pos1 = path.Find( L"[" ); + if (pos1 == -1 || path.Right(1) != L"]") + { + DebugFail(); + m_bEmpty = TRUE; + return; + } + path.TrimRight( L"]" ); + if (pos1) + m_Prefix = path.Left(pos1); + path = path.Mid(pos1 + 1); + int pos = path.Find( L"." ); + while (pos != -1) + { + m_Segments.push_back(path.Left(pos)); + path = path.Mid(pos+1); + pos = path.Find( L"." ); + } + if (path != L"") + m_Segments.push_back(path); + } + break; + default: + path.Replace( L"\\", L"/" ); + while (path.Replace( L"//", L"/" )); + path.TrimLeft( L"/" ); + path.TrimRight( L"/" ); + int pos = path.Find( L"/" ); + while (pos != -1) + { + m_Segments.push_back(path.Left(pos)); + path = path.Mid(pos+1); + pos = path.Find( L"/" ); + } + if (path != L"") + m_Segments.push_back(path); + break; + } + break; + case FZ_SERVERTYPE_LOCAL: + { + path.TrimRight( L"\\" ); + while (path.Replace( L"\\\\", L"\\" )); + int pos = path.Find( L"\\" ); + if (pos == -1) + { + m_Prefix = path; + return; + } + DebugAssert(pos == 2); + m_Prefix = path.Left(pos); + path = path.Mid(pos + 1); + pos = path.Find( L"\\" ); + while (pos != -1) + { + m_Segments.push_back(path.Left(pos)); + path=path.Mid(pos + 1); + pos=path.Find( L"\\" ); + } + if (path != L"") + m_Segments.push_back(path); + } + break; + default: + DebugFail(); + } } CServerPath::CServerPath(const CServerPath &path) { - m_nServerType = path.m_nServerType; - m_Prefix = path.m_Prefix; - m_bEmpty = path.m_bEmpty; - m_Segments = path.m_Segments; + m_nServerType = path.m_nServerType; + m_Prefix = path.m_Prefix; + m_bEmpty = path.m_bEmpty; + m_Segments = path.m_Segments; } CServerPath::~CServerPath() @@ -200,665 +179,662 @@ CServerPath::~CServerPath() void CServerPath::SetServer(const t_server &server) { - m_nServerType=server.nServerType; + m_nServerType=server.nServerType; } BOOL CServerPath::SetPath(CString &newpath, BOOL bIsFile /*=FALSE*/) { - CString file; - CString path=newpath; - - path.TrimLeft( _T(" ") ); - path.TrimRight( _T(" ") ); - if (path != _MPT("")) - m_bEmpty = FALSE; - else - m_bEmpty = TRUE; - if (!(m_nServerType & FZ_SERVERTYPE_HIGHMASK)) - m_nServerType = FZ_SERVERTYPE_FTP; - if (!(m_nServerType&FZ_SERVERTYPE_SUBMASK) && (m_nServerType&FZ_SERVERTYPE_HIGHMASK)==FZ_SERVERTYPE_FTP) - { - int pos1 = path.Find( _T(":[") ); - if (pos1!=-1 && pos1!=(path.GetLength()-2)) - { - if (!bIsFile && path.Right(1)==_T("]")) - m_nServerType|=FZ_SERVERTYPE_SUB_FTP_VMS; - else if (bIsFile && path.ReverseFind(']')>(pos1+1)) - m_nServerType|=FZ_SERVERTYPE_SUB_FTP_VMS; - } - if (newpath.GetLength() >= 3 && _istalpha(newpath[0]) && newpath[1] == _MPT(':') && (newpath[2] == _MPT('\\') || newpath[2] == _MPT('/'))) - m_nServerType |= FZ_SERVERTYPE_SUB_FTP_WINDOWS; - else if (path[0] == FTP_MVS_DOUBLE_QUOTA && path[path.GetLength() - 1] == FTP_MVS_DOUBLE_QUOTA) - m_nServerType |= FZ_SERVERTYPE_SUB_FTP_MVS; - } - m_Segments.clear(); - m_Prefix = _MPT(""); - switch (m_nServerType&FZ_SERVERTYPE_HIGHMASK) - { - case FZ_SERVERTYPE_FTP: - switch (m_nServerType&FZ_SERVERTYPE_SUBMASK) - { - case FZ_SERVERTYPE_SUB_FTP_MVS: - case FZ_SERVERTYPE_SUB_FTP_BS2000: - { - path.TrimLeft(FTP_MVS_DOUBLE_QUOTA); - path.TrimRight(FTP_MVS_DOUBLE_QUOTA); - path.TrimLeft(_MPT('\'')); - path.TrimRight(_MPT('\'')); - path.TrimLeft(_MPT('.')); - while (path.Replace(_T(".."), _T("."))); - - int pos = path.Find(_T(".")); - while (pos != -1) - { - m_Segments.push_back(path.Left(pos)); - path = path.Mid(pos + 1); - pos = path.Find( _T(".") ); - } - if (path != _MPT("")) - m_Segments.push_back(path); - else - m_Prefix = _T("."); - - if (bIsFile) - { - if (m_Segments.empty()) - return FALSE; - file = m_Segments.back(); - m_Segments.pop_back(); - - if (file.Right(1) == _T(".")) - return FALSE; - - int pos = file.Find(_MPT('(')); - int pos2 = file.Find(_MPT(')')); - if (pos != -1) - { - if (!pos || pos2 != file.GetLength() - 2) - return FALSE; - m_Prefix = _T(""); - m_Segments.push_back(file.Left(pos)); - file = file.Mid(pos + 1, pos2 - pos - 1); - } - else if (pos2 != -1) - return FALSE; - } - } - break; - case FZ_SERVERTYPE_SUB_FTP_VMS: - { - int pos1=path.Find( _T("[") ); - if (pos1==-1) - return FALSE; - if (bIsFile) - { - int rpos=path.ReverseFind(_MPT(']')); - if (rpos==-1) - return FALSE; - else if (rpos!=(path.GetLength()-1) ) - { - file=file.Mid(rpos+1); - path=path.Left(rpos+1); - } - else - return FALSE; - } - if (path.Right(1)!=_MPT("]")) - return FALSE; - path.TrimRight( _T("]") ); - if (pos1) - m_Prefix=path.Left(pos1); - path=path.Mid(pos1+1); - int pos=path.Find( _T(".") ); - while(pos!=-1) - { - m_Segments.push_back(path.Left(pos)); - path=path.Mid(pos+1); - pos=path.Find( _T(".") ); - } - if (path!=_MPT("")) - m_Segments.push_back(path); - } - break; - default: - path.Replace( _T("\\"), _T("/") ); - while(path.Replace( _T("//"), _T("/") )); - path.TrimLeft( _T("/") ); - if (bIsFile) - { - if (path.Right(1)!= _T("/") ) - { - int rpos=path.ReverseFind(_MPT('/')); - if (rpos==-1) - { - newpath=path; - m_bEmpty=TRUE; - return TRUE; - } - file=path.Mid(rpos+1); - path=path.Left(rpos); - } - else - return FALSE; - } - path.TrimRight( _T("/") ); - int pos=path.Find( _T("/") ); - while(pos!=-1) - { - m_Segments.push_back(path.Left(pos)); - path=path.Mid(pos+1); - pos=path.Find( _T("/") ); - } - if (path!=_MPT("")) - m_Segments.push_back(path); - break; - } - break; - case FZ_SERVERTYPE_LOCAL: - { - if (bIsFile) - { - if (path.Right(1)!= _T("\\") ) - { - int rpos=path.ReverseFind(_MPT('\\')); - if (rpos==-1) - return FALSE; - - file=path.Mid(rpos+1); - path=path.Left(rpos); - } - else - return FALSE; - } - path.TrimRight( _T("\\") ); - while (path.Replace( _T("\\\\"), _T("\\") )); - int pos=path.Find( _T(":\\") ); - if (pos==-1 || pos!=1) - return FALSE; - else - { - m_Prefix=path.Left(pos+1); - path=path.Mid(pos+2); - } - pos=path.Find( _T("\\") ); - while (pos!=-1) - { - m_Segments.push_back(path.Left(pos)); - path=path.Mid(pos+1); - pos=path.Find( _T("\\") ); - } - if (path!=_MPT("")) - m_Segments.push_back(path); - } - break; - } - if (bIsFile) - newpath = file; - return TRUE; + CString file; + CString path=newpath; + + path.TrimLeft( L" " ); + path.TrimRight( L" " ); + if (path != L"") + m_bEmpty = FALSE; + else + m_bEmpty = TRUE; + if (!(m_nServerType & FZ_SERVERTYPE_HIGHMASK)) + m_nServerType = FZ_SERVERTYPE_FTP; + if (!(m_nServerType&FZ_SERVERTYPE_SUBMASK) && (m_nServerType&FZ_SERVERTYPE_HIGHMASK)==FZ_SERVERTYPE_FTP) + { + int pos1 = path.Find( L":[" ); + if (pos1!=-1 && pos1!=(path.GetLength()-2)) + { + if (!bIsFile && path.Right(1)==L"]") + m_nServerType|=FZ_SERVERTYPE_SUB_FTP_VMS; + else if (bIsFile && path.ReverseFind(']')>(pos1+1)) + m_nServerType|=FZ_SERVERTYPE_SUB_FTP_VMS; + } + if (newpath.GetLength() >= 3 && _istalpha(newpath[0]) && newpath[1] == L':' && (newpath[2] == L'\\' || newpath[2] == L'/')) + m_nServerType |= FZ_SERVERTYPE_SUB_FTP_WINDOWS; + else if (path[0] == FTP_MVS_DOUBLE_QUOTA && path[path.GetLength() - 1] == FTP_MVS_DOUBLE_QUOTA) + m_nServerType |= FZ_SERVERTYPE_SUB_FTP_MVS; + } + m_Segments.clear(); + m_Prefix = L""; + switch (m_nServerType&FZ_SERVERTYPE_HIGHMASK) + { + case FZ_SERVERTYPE_FTP: + switch (m_nServerType&FZ_SERVERTYPE_SUBMASK) + { + case FZ_SERVERTYPE_SUB_FTP_MVS: + case FZ_SERVERTYPE_SUB_FTP_BS2000: + { + path.TrimLeft(FTP_MVS_DOUBLE_QUOTA); + path.TrimRight(FTP_MVS_DOUBLE_QUOTA); + path.TrimLeft(L'\''); + path.TrimRight(L'\''); + path.TrimLeft(L'.'); + while (path.Replace(L"..", L".")); + + int pos = path.Find(L"."); + while (pos != -1) + { + m_Segments.push_back(path.Left(pos)); + path = path.Mid(pos + 1); + pos = path.Find( L"." ); + } + if (path != L"") + m_Segments.push_back(path); + else + m_Prefix = L"."; + + if (bIsFile) + { + if (m_Segments.empty()) + return FALSE; + file = m_Segments.back(); + m_Segments.pop_back(); + + if (file.Right(1) == L".") + return FALSE; + + int pos = file.Find(L'('); + int pos2 = file.Find(L')'); + if (pos != -1) + { + if (!pos || pos2 != file.GetLength() - 2) + return FALSE; + m_Prefix = L""; + m_Segments.push_back(file.Left(pos)); + file = file.Mid(pos + 1, pos2 - pos - 1); + } + else if (pos2 != -1) + return FALSE; + } + } + break; + case FZ_SERVERTYPE_SUB_FTP_VMS: + { + int pos1=path.Find( L"[" ); + if (pos1==-1) + return FALSE; + if (bIsFile) + { + int rpos=path.ReverseFind(L']'); + if (rpos==-1) + return FALSE; + else if (rpos!=(path.GetLength()-1) ) + { + file=file.Mid(rpos+1); + path=path.Left(rpos+1); + } + else + return FALSE; + } + if (path.Right(1)!=L"]") + return FALSE; + path.TrimRight( L"]" ); + if (pos1) + m_Prefix=path.Left(pos1); + path=path.Mid(pos1+1); + int pos=path.Find( L"." ); + while(pos!=-1) + { + m_Segments.push_back(path.Left(pos)); + path=path.Mid(pos+1); + pos=path.Find( L"." ); + } + if (path!=L"") + m_Segments.push_back(path); + } + break; + default: + path.Replace( L"\\", L"/" ); + while(path.Replace( L"//", L"/" )); + path.TrimLeft( L"/" ); + if (bIsFile) + { + if (path.Right(1)!= L"/" ) + { + int rpos=path.ReverseFind(L'/'); + if (rpos==-1) + { + newpath=path; + m_bEmpty=TRUE; + return TRUE; + } + file=path.Mid(rpos+1); + path=path.Left(rpos); + } + else + return FALSE; + } + path.TrimRight( L"/" ); + int pos=path.Find( L"/" ); + while(pos!=-1) + { + m_Segments.push_back(path.Left(pos)); + path=path.Mid(pos+1); + pos=path.Find( L"/" ); + } + if (path!=L"") + m_Segments.push_back(path); + break; + } + break; + case FZ_SERVERTYPE_LOCAL: + { + if (bIsFile) + { + if (path.Right(1)!= L"\\" ) + { + int rpos=path.ReverseFind(L'\\'); + if (rpos==-1) + return FALSE; + + file=path.Mid(rpos+1); + path=path.Left(rpos); + } + else + return FALSE; + } + path.TrimRight( L"\\" ); + while (path.Replace( L"\\\\", L"\\" )); + int pos=path.Find( L":\\" ); + if (pos==-1 || pos!=1) + return FALSE; + else + { + m_Prefix=path.Left(pos+1); + path=path.Mid(pos+2); + } + pos=path.Find( L"\\" ); + while (pos!=-1) + { + m_Segments.push_back(path.Left(pos)); + path=path.Mid(pos+1); + pos=path.Find( L"\\" ); + } + if (path!=L"") + m_Segments.push_back(path); + } + break; + } + if (bIsFile) + newpath = file; + return TRUE; } const CString CServerPath::GetPath() const { - if (m_bEmpty) - return _MPT(""); - CString path; - tConstIter iter; - switch (m_nServerType&FZ_SERVERTYPE_HIGHMASK) - { - case FZ_SERVERTYPE_FTP: - switch (m_nServerType&FZ_SERVERTYPE_SUBMASK) - { - case FZ_SERVERTYPE_SUB_FTP_MVS: - case FZ_SERVERTYPE_SUB_FTP_BS2000: - path = _MPT("'"); - for (iter = m_Segments.begin(); iter != m_Segments.end(); iter++) - { - if (iter != m_Segments.begin()) - path += _T("."); - path += *iter; - } - path += m_Prefix + _MPT("'"); - break; - case FZ_SERVERTYPE_SUB_FTP_VMS: - path = m_Prefix + _MPT("["); - for (iter = m_Segments.begin(); iter != m_Segments.end(); iter++) - path += *iter + _T("."); - path.TrimRight( _T(".") ); - path += _MPT("]"); - break; - default: - if (!(m_nServerType & FZ_SERVERTYPE_SUB_FTP_WINDOWS)) - path=_MPT("/"); - for (iter=m_Segments.begin(); iter!=m_Segments.end(); iter++) - path+=*iter + _T("/"); - break; - } - break; - case FZ_SERVERTYPE_LOCAL: - path=m_Prefix; - if (!m_Segments.empty()) - path+=_MPT("\\"); - for (iter=m_Segments.begin(); iter!=m_Segments.end(); iter++) - path+=*iter + _T("\\"); - - break; - default: - ASSERT(FALSE); - } - return path; + if (m_bEmpty) + return L""; + CString path; + tConstIter iter; + switch (m_nServerType&FZ_SERVERTYPE_HIGHMASK) + { + case FZ_SERVERTYPE_FTP: + switch (m_nServerType&FZ_SERVERTYPE_SUBMASK) + { + case FZ_SERVERTYPE_SUB_FTP_MVS: + case FZ_SERVERTYPE_SUB_FTP_BS2000: + path = L"'"; + for (iter = m_Segments.begin(); iter != m_Segments.end(); iter++) + { + if (iter != m_Segments.begin()) + path += L"."; + path += *iter; + } + path += m_Prefix + L"'"; + break; + case FZ_SERVERTYPE_SUB_FTP_VMS: + path = m_Prefix + L"["; + for (iter = m_Segments.begin(); iter != m_Segments.end(); iter++) + path += *iter + L"."; + path.TrimRight( L"." ); + path += L"]"; + break; + default: + if (!(m_nServerType & FZ_SERVERTYPE_SUB_FTP_WINDOWS)) + path=L"/"; + for (iter=m_Segments.begin(); iter!=m_Segments.end(); iter++) + path+=*iter + L"/"; + break; + } + break; + case FZ_SERVERTYPE_LOCAL: + path=m_Prefix; + if (!m_Segments.empty()) + path+=L"\\"; + for (iter=m_Segments.begin(); iter!=m_Segments.end(); iter++) + path+=*iter + L"\\"; + + break; + default: + DebugFail(); + } + return path; } CServerPath& CServerPath::operator=(const CServerPath &op) { - if (this == &op) - return *this; - m_Segments.clear(); - - m_nServerType = op.m_nServerType; - - m_Prefix = op.m_Prefix; - m_bEmpty = op.m_bEmpty; - - m_Segments = op.m_Segments; - - return *this; + if (this == &op) + return *this; + m_Segments.clear(); + + m_nServerType = op.m_nServerType; + + m_Prefix = op.m_Prefix; + m_bEmpty = op.m_bEmpty; + + m_Segments = op.m_Segments; + + return *this; } const bool CServerPath::operator==(const CServerPath &op) const { - if (this == &op) - return true; - - if (m_bEmpty != op.m_bEmpty) - return false; - if (m_Prefix != op.m_Prefix) - return false; - // excluding FZ_SERVERTYPE_LAYERMASK from comparison, - // as this part of server type is not set in TFileZillaIntf - const int CompareMask = FZ_SERVERTYPE_HIGHMASK | FZ_SERVERTYPE_SUBMASK; - if ((m_nServerType & CompareMask) != (op.m_nServerType & CompareMask)) - return false; - tConstIter iter1 = m_Segments.begin(); - tConstIter iter2 = op.m_Segments.begin(); - while (iter1 != m_Segments.end()) - { - if (iter2 == op.m_Segments.end()) - return false; - if (*iter1 != *iter2) - return false; - iter1++; - iter2++; - } - if (iter2 != op.m_Segments.end()) - return false; - return true; + if (this == &op) + return true; + + if (m_bEmpty != op.m_bEmpty) + return false; + if (m_Prefix != op.m_Prefix) + return false; + // excluding FZ_SERVERTYPE_LAYERMASK from comparison, + // as this part of server type is not set in TFileZillaIntf + const int CompareMask = FZ_SERVERTYPE_HIGHMASK | FZ_SERVERTYPE_SUBMASK; + if ((m_nServerType & CompareMask) != (op.m_nServerType & CompareMask)) + return false; + tConstIter iter1 = m_Segments.begin(); + tConstIter iter2 = op.m_Segments.begin(); + while (iter1 != m_Segments.end()) + { + if (iter2 == op.m_Segments.end()) + return false; + if (*iter1 != *iter2) + return false; + iter1++; + iter2++; + } + if (iter2 != op.m_Segments.end()) + return false; + return true; } const BOOL operator==(const CServerPath &a, const CString &b) { - CServerPath path(b); - return a==path; + CServerPath path(b); + return a==path; } const bool CServerPath::operator!=(const CServerPath &op) const { - if (!this) - return false; + if (!this) + return false; - if (*this == op) - return false; - else - return true; + if (*this == op) + return false; + else + return true; } CString CServerPath::GetLastSegment() const { - if (!HasParent()) - return _T(""); - if (m_Segments.empty()) - return _T(""); - else - return m_Segments.back(); + if (!HasParent()) + return L""; + if (m_Segments.empty()) + return L""; + else + return m_Segments.back(); } CServerPath CServerPath::GetParent() const { - ASSERT(HasParent()); - CServerPath path; - path = *this; - path.m_Segments.pop_back(); - if (m_nServerType & (FZ_SERVERTYPE_SUB_FTP_MVS | FZ_SERVERTYPE_SUB_FTP_BS2000)) - path.m_Prefix = _T("."); - return path; + DebugAssert(HasParent()); + CServerPath path; + path = *this; + path.m_Segments.pop_back(); + if (m_nServerType & (FZ_SERVERTYPE_SUB_FTP_MVS | FZ_SERVERTYPE_SUB_FTP_BS2000)) + path.m_Prefix = L"."; + return path; } BOOL CServerPath::HasParent() const { - if (!m_Segments.empty()) - return TRUE; - else - return FALSE; + if (!m_Segments.empty()) + return TRUE; + else + return FALSE; } const BOOL CServerPath::IsEmpty() const { - return m_bEmpty; + return m_bEmpty; } CString CServerPath::GetSafePath() const { - if (m_bEmpty) - return _T(""); - - CString safepath; - safepath.Format(_T("%d %d "), m_nServerType, m_Prefix.GetLength()); - if (m_Prefix!=_MPT("")) - safepath+=m_Prefix+_MPT(" "); - tConstIter iter = m_Segments.begin(); - while(iter!=m_Segments.end()) - { - CString len; - len.Format(_T("%d "), iter->GetLength()); - safepath+=len; - safepath+=*iter; - iter++; - if (iter!=m_Segments.end()) - safepath+=_MPT(" "); - } - return safepath; + if (m_bEmpty) + return L""; + + CString safepath; + safepath.Format(L"%d %d ", m_nServerType, m_Prefix.GetLength()); + if (m_Prefix!=L"") + safepath+=m_Prefix+L" "; + tConstIter iter = m_Segments.begin(); + while(iter!=m_Segments.end()) + { + CString len; + len.Format(L"%d ", iter->GetLength()); + safepath+=len; + safepath+=*iter; + iter++; + if (iter!=m_Segments.end()) + safepath+=L" "; + } + return safepath; } BOOL CServerPath::AddSubdir(CString subdir) { - subdir.TrimLeft( _T(" ") ); - subdir.TrimRight( _T(" ") ); - if (subdir == _MPT("")) - return FALSE; - - if (m_nServerType & (FZ_SERVERTYPE_SUB_FTP_MVS | FZ_SERVERTYPE_SUB_FTP_BS2000) && m_Prefix != _T(".")) - return FALSE; - - m_Segments.push_back(subdir); - - if (m_nServerType & (FZ_SERVERTYPE_SUB_FTP_MVS | FZ_SERVERTYPE_SUB_FTP_BS2000) && !m_Segments.empty()) - { - if (m_Segments.back().Right(1) == _T(".")) - { - m_Segments.back().TrimRight(_MPT('.')); - m_Prefix = _T("."); - } - else - m_Prefix = _T(""); - } - - m_bEmpty = FALSE; - - return TRUE; + subdir.TrimLeft( L" " ); + subdir.TrimRight( L" " ); + if (subdir == L"") + return FALSE; + + if (m_nServerType & (FZ_SERVERTYPE_SUB_FTP_MVS | FZ_SERVERTYPE_SUB_FTP_BS2000) && m_Prefix != L".") + return FALSE; + + m_Segments.push_back(subdir); + + if (m_nServerType & (FZ_SERVERTYPE_SUB_FTP_MVS | FZ_SERVERTYPE_SUB_FTP_BS2000) && !m_Segments.empty()) + { + if (m_Segments.back().Right(1) == L".") + { + m_Segments.back().TrimRight(L'.'); + m_Prefix = L"."; + } + else + m_Prefix = L""; + } + + m_bEmpty = FALSE; + + return TRUE; } CServerPath::CServerPath(CString subdir, const CServerPath &parent) { - *this=parent; - subdir.TrimLeft( _T(" ") ); - subdir.TrimRight( _T(" ") ); - - if ( subdir==_T("") ) - { - if (IsEmpty()) - ASSERT(FALSE); - else - return; - } - - if (!(m_nServerType&FZ_SERVERTYPE_HIGHMASK)) - m_nServerType=FZ_SERVERTYPE_FTP; - - m_bEmpty = FALSE; - - switch (m_nServerType&FZ_SERVERTYPE_HIGHMASK) - { - case FZ_SERVERTYPE_FTP: - switch(m_nServerType&FZ_SERVERTYPE_SUBMASK) - { - case FZ_SERVERTYPE_SUB_FTP_MVS: - case FZ_SERVERTYPE_SUB_FTP_BS2000: - { - subdir.TrimLeft(FTP_MVS_DOUBLE_QUOTA); - subdir.TrimRight(FTP_MVS_DOUBLE_QUOTA); - - if (subdir.Left(1) == _MPT("'")) - { - if (subdir.Right(1) == _MPT("'")) - { - if (!SetPath(subdir)) - m_bEmpty = true; - } - else - m_bEmpty = true; - } - else if (subdir.Right(1) == _MPT("'")) - m_bEmpty = true; - else if (!m_bEmpty) - { - if (m_Prefix != _T(".")) - m_bEmpty = true; - else - { - subdir.TrimLeft(_MPT('.')); - while (subdir.Replace(_T(".."), _T("."))); - - int pos = subdir.Find(_MPT('.')); - while (pos != -1) - { - m_Segments.push_back(subdir.Left(pos)); - subdir = subdir.Mid(pos + 1); - pos = subdir.Find(_MPT('.')); - } - if (subdir != _T("")) - { - m_Prefix = _T(""); - m_Segments.push_back(subdir); - } - } - } - else if (!SetPath(subdir)) - m_bEmpty = true; - } - break; - case FZ_SERVERTYPE_SUB_FTP_VMS: - { - int pos1=subdir.Find( _T("[") ); - if (pos1==-1) - { - ASSERT( subdir.Right(1)!=_T("]") ); - while ( subdir.Replace( _T(".."), _T(".") ) ); - } - else - { - if (subdir.Right(1)!=_MPT("]")) - ASSERT(FALSE); - subdir=subdir.Left(subdir.GetLength()-1); - if (pos1) - m_Prefix=subdir.Left(pos1); - else - m_Prefix=_MPT(""); - m_Segments.clear(); - subdir=subdir.Mid(pos1+1); - - pos1=subdir.Find( _T("[") ); - int pos2=subdir.Find( _T("]") ); - if (pos1!=-1 || pos2!=-1) - ASSERT(FALSE); - } - int pos=subdir.Find( _T(".") ); - while(pos!=-1) - { - m_Segments.push_back(subdir.Left(pos)); - subdir=subdir.Mid(pos+1); - pos=subdir.Find( _T(".") ); - } - if (subdir!=_MPT("")) - m_Segments.push_back(subdir); - } - break; - case FZ_SERVERTYPE_SUB_FTP_WINDOWS: - { - subdir.Replace( _T("\\"), _T("/") ); - while(subdir.Replace( _T("//"), _T("/") )); - if (subdir.GetLength() >= 2 && subdir[1] == _MPT(':')) - m_Segments.clear(); - else if (subdir[0]==_MPT('/')) - { - CString firstSegment; - if (m_Segments.empty()) - firstSegment = _MPT("C:"); - else - firstSegment = m_Segments.front(); - m_Segments.clear(); - m_Segments.push_back(firstSegment); - subdir.TrimLeft( _T("/") ); - } - subdir.TrimRight( _T("/") ); - int pos = subdir.Find( _T("/") ); - while(pos!=-1) - { - m_Segments.push_back(subdir.Left(pos)); - subdir=subdir.Mid(pos+1); - pos=subdir.Find( _T("/") ); - } - if (subdir!=_MPT("")) - m_Segments.push_back(subdir); - break; - } - default: - subdir.Replace( _T("\\"), _T("/") ); - while(subdir.Replace( _T("//"), _T("/") )); - if (subdir[0]==_MPT('/')) - { - m_Segments.clear(); - subdir.TrimLeft( _T("/") ); - } - subdir.TrimRight( _T("/") ); - int pos=subdir.Find( _T("/") ); - while(pos!=-1) - { - m_Segments.push_back(subdir.Left(pos)); - subdir=subdir.Mid(pos+1); - pos=subdir.Find( _T("/") ); - } - if (subdir!=_MPT("")) - m_Segments.push_back(subdir); - break; - } - break; - case FZ_SERVERTYPE_LOCAL: - { - subdir.TrimRight( _T("\\") ); - while (subdir.Replace( _T("\\\\"), _T("\\") )); - subdir.TrimLeft( _T("\\") ); - int pos=subdir.Find( _T(":") ); - - if (pos==1) //subdir is absolute path - { - m_Segments.clear(); - m_Prefix=subdir.Left(pos+1); - subdir=subdir.Mid(pos+1); - subdir.TrimLeft( _T("\\") ); - if (subdir.Find( _T(":") )!=-1) - ASSERT(FALSE); - } - if (pos==-1 || pos==1) - { - pos=subdir.Find( _T("\\") ); - while (pos!=-1) - { - m_Segments.push_back(subdir.Left(pos)); - subdir=subdir.Mid(pos+1); - pos=subdir.Find( _T("\\") ); - } - if ( subdir!=_T("") ) - m_Segments.push_back(subdir); - } - else - ASSERT(FALSE); - } - break; - default: - ASSERT(FALSE); - } + *this=parent; + subdir.TrimLeft( L" " ); + subdir.TrimRight( L" " ); + + if ( subdir==L"" ) + { + if (IsEmpty()) + DebugFail(); + else + return; + } + + if (!(m_nServerType&FZ_SERVERTYPE_HIGHMASK)) + m_nServerType=FZ_SERVERTYPE_FTP; + + m_bEmpty = FALSE; + + switch (m_nServerType&FZ_SERVERTYPE_HIGHMASK) + { + case FZ_SERVERTYPE_FTP: + switch(m_nServerType&FZ_SERVERTYPE_SUBMASK) + { + case FZ_SERVERTYPE_SUB_FTP_MVS: + case FZ_SERVERTYPE_SUB_FTP_BS2000: + { + subdir.TrimLeft(FTP_MVS_DOUBLE_QUOTA); + subdir.TrimRight(FTP_MVS_DOUBLE_QUOTA); + + if (subdir.Left(1) == L"'") + { + if (subdir.Right(1) == L"'") + { + if (!SetPath(subdir)) + m_bEmpty = true; + } + else + m_bEmpty = true; + } + else if (subdir.Right(1) == L"'") + m_bEmpty = true; + else if (!m_bEmpty) + { + if (m_Prefix != L".") + m_bEmpty = true; + else + { + subdir.TrimLeft(L'.'); + while (subdir.Replace(L"..", L".")); + + int pos = subdir.Find(L'.'); + while (pos != -1) + { + m_Segments.push_back(subdir.Left(pos)); + subdir = subdir.Mid(pos + 1); + pos = subdir.Find(L'.'); + } + if (subdir != L"") + { + m_Prefix = L""; + m_Segments.push_back(subdir); + } + } + } + else if (!SetPath(subdir)) + m_bEmpty = true; + } + break; + case FZ_SERVERTYPE_SUB_FTP_VMS: + { + int pos1=subdir.Find( L"[" ); + if (pos1==-1) + { + DebugAssert( subdir.Right(1)!=L"]" ); + while ( subdir.Replace( L"..", L"." ) ); + } + else + { + if (subdir.Right(1)!=L"]") + DebugFail(); + subdir=subdir.Left(subdir.GetLength()-1); + if (pos1) + m_Prefix=subdir.Left(pos1); + else + m_Prefix=L""; + m_Segments.clear(); + subdir=subdir.Mid(pos1+1); + + DebugAssert(subdir.Find( L"[" )==-1 && subdir.Find( L"]" )==-1); + } + int pos=subdir.Find( L"." ); + while(pos!=-1) + { + m_Segments.push_back(subdir.Left(pos)); + subdir=subdir.Mid(pos+1); + pos=subdir.Find( L"." ); + } + if (subdir!=L"") + m_Segments.push_back(subdir); + } + break; + case FZ_SERVERTYPE_SUB_FTP_WINDOWS: + { + subdir.Replace( L"\\", L"/" ); + while(subdir.Replace( L"//", L"/" )); + if (subdir.GetLength() >= 2 && subdir[1] == L':') + m_Segments.clear(); + else if (subdir[0]==L'/') + { + CString firstSegment; + if (m_Segments.empty()) + firstSegment = L"C:"; + else + firstSegment = m_Segments.front(); + m_Segments.clear(); + m_Segments.push_back(firstSegment); + subdir.TrimLeft( L"/" ); + } + subdir.TrimRight( L"/" ); + int pos = subdir.Find( L"/" ); + while(pos!=-1) + { + m_Segments.push_back(subdir.Left(pos)); + subdir=subdir.Mid(pos+1); + pos=subdir.Find( L"/" ); + } + if (subdir!=L"") + m_Segments.push_back(subdir); + break; + } + default: + subdir.Replace( L"\\", L"/" ); + while(subdir.Replace( L"//", L"/" )); + if (subdir[0]==L'/') + { + m_Segments.clear(); + subdir.TrimLeft( L"/" ); + } + subdir.TrimRight( L"/" ); + int pos=subdir.Find( L"/" ); + while(pos!=-1) + { + m_Segments.push_back(subdir.Left(pos)); + subdir=subdir.Mid(pos+1); + pos=subdir.Find( L"/" ); + } + if (subdir!=L"") + m_Segments.push_back(subdir); + break; + } + break; + case FZ_SERVERTYPE_LOCAL: + { + subdir.TrimRight( L"\\" ); + while (subdir.Replace( L"\\\\", L"\\" )); + subdir.TrimLeft( L"\\" ); + int pos=subdir.Find( L":" ); + + if (pos==1) //subdir is absolute path + { + m_Segments.clear(); + m_Prefix=subdir.Left(pos+1); + subdir=subdir.Mid(pos+1); + subdir.TrimLeft( L"\\" ); + if (subdir.Find( L":" )!=-1) + DebugFail(); + } + if (pos==-1 || pos==1) + { + pos=subdir.Find( L"\\" ); + while (pos!=-1) + { + m_Segments.push_back(subdir.Left(pos)); + subdir=subdir.Mid(pos+1); + pos=subdir.Find( L"\\" ); + } + if ( subdir!=L"" ) + m_Segments.push_back(subdir); + } + else + DebugFail(); + } + break; + default: + DebugFail(); + } } BOOL CServerPath::SetPath(CString newpath) { - return SetPath(newpath, FALSE); + return SetPath(newpath, FALSE); } CString CServerPath::FormatFilename(CString fn, bool omitPath /*=false*/) const { - if (m_bEmpty) - return fn; - - if (fn == _MPT("")) - return _MPT(""); - - CString path; - tConstIter iter; - switch (m_nServerType&FZ_SERVERTYPE_HIGHMASK) - { - case FZ_SERVERTYPE_FTP: - switch (m_nServerType&FZ_SERVERTYPE_SUBMASK) - { - case FZ_SERVERTYPE_SUB_FTP_MVS: - case FZ_SERVERTYPE_SUB_FTP_BS2000: - if (omitPath && m_Prefix == _T(".")) - return fn; - - path = _MPT("'"); - for (iter = m_Segments.begin(); iter != m_Segments.end(); iter++) - path += *iter + _T("."); - if (m_Prefix != _T(".")) - { - path.TrimRight(_MPT('.')); - path += _T("(") + fn + _T(")"); - } - else - path += fn; - path += _MPT("'"); - break; - case FZ_SERVERTYPE_SUB_FTP_VMS: - if (omitPath) - return fn; - - path = m_Prefix + _MPT("["); - for (iter = m_Segments.begin(); iter != m_Segments.end(); iter++) - path += *iter + _T("."); - path.TrimRight( _T(".") ); - path += _MPT("]"); - path += fn; - break; - default: - if (omitPath) - return fn; - if (!(m_nServerType & FZ_SERVERTYPE_SUB_FTP_WINDOWS)) - path=_MPT("/"); - for (iter = m_Segments.begin(); iter != m_Segments.end(); iter++) - path+=*iter + _T("/"); - path += fn; - break; - } - break; - case FZ_SERVERTYPE_LOCAL: - if (omitPath) - return fn; - path=m_Prefix; - if (!m_Segments.empty()) - path+=_MPT("\\"); - for (iter=m_Segments.begin(); iter!=m_Segments.end(); iter++) - path+=*iter + _T("\\"); - path += fn; - break; - default: - ASSERT(FALSE); - } - return path; -} \ No newline at end of file + if (m_bEmpty) + return fn; + + if (fn == L"") + return L""; + + CString path; + tConstIter iter; + switch (m_nServerType&FZ_SERVERTYPE_HIGHMASK) + { + case FZ_SERVERTYPE_FTP: + switch (m_nServerType&FZ_SERVERTYPE_SUBMASK) + { + case FZ_SERVERTYPE_SUB_FTP_MVS: + case FZ_SERVERTYPE_SUB_FTP_BS2000: + if (omitPath && m_Prefix == L".") + return fn; + + path = L"'"; + for (iter = m_Segments.begin(); iter != m_Segments.end(); iter++) + path += *iter + L"."; + if (m_Prefix != L".") + { + path.TrimRight(L'.'); + path += L"(" + fn + L")"; + } + else + path += fn; + path += L"'"; + break; + case FZ_SERVERTYPE_SUB_FTP_VMS: + if (omitPath) + return fn; + + path = m_Prefix + L"["; + for (iter = m_Segments.begin(); iter != m_Segments.end(); iter++) + path += *iter + L"."; + path.TrimRight( L"." ); + path += L"]"; + path += fn; + break; + default: + if (omitPath) + return fn; + if (!(m_nServerType & FZ_SERVERTYPE_SUB_FTP_WINDOWS)) + path=L"/"; + for (iter = m_Segments.begin(); iter != m_Segments.end(); iter++) + path+=*iter + L"/"; + path += fn; + break; + } + break; + case FZ_SERVERTYPE_LOCAL: + if (omitPath) + return fn; + path=m_Prefix; + if (!m_Segments.empty()) + path+=L"\\"; + for (iter=m_Segments.begin(); iter!=m_Segments.end(); iter++) + path+=*iter + L"\\"; + path += fn; + break; + default: + DebugFail(); + } + return path; +} diff --git a/source/filezilla/ServerPath.h b/source/filezilla/ServerPath.h index 5a88763a..e4cefb43 100644 --- a/source/filezilla/ServerPath.h +++ b/source/filezilla/ServerPath.h @@ -1,72 +1,47 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// ServerPath.h: Schnittstelle für die Klasse CServerPath. -// -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_SERVERPATH_H__DF62E6B4_541A_4425_BA73_22B09A12DFE1__INCLUDED_) -#define AFX_SERVERPATH_H__DF62E6B4_541A_4425_BA73_22B09A12DFE1__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -class CServerPath +//--------------------------------------------------------------------------- +#ifndef ServerPathH +#define ServerPathH +//--------------------------------------------------------------------------- +class CServerPath { public: - BOOL AddSubdir(CString subdir); - CString GetSafePath() const; - const BOOL IsEmpty() const; - CServerPath GetParent() const; - BOOL HasParent() const; - CString GetLastSegment() const; - CServerPath(); - CServerPath(int nServerType); - CServerPath(CString path); - CServerPath(CString path, int nServerType); - CServerPath(CString subdir, const CServerPath &parent); //If subdir is absolute, parent is ignored - CServerPath(const CServerPath &path); + BOOL AddSubdir(CString subdir); + CString GetSafePath() const; + const BOOL IsEmpty() const; + CServerPath GetParent() const; + BOOL HasParent() const; + CString GetLastSegment() const; + CServerPath(); + CServerPath(int nServerType); + CServerPath(CString path, bool trim = true); + CServerPath(CString path, int nServerType, bool trim = true); + CServerPath(CString subdir, const CServerPath & parent); // If subdir is absolute, parent is ignored + CServerPath(const CServerPath & path); + + virtual ~CServerPath(); - virtual ~CServerPath(); + void SetServer(const t_server & server); + BOOL SetPath(CString & newpath, BOOL bIsFile); + BOOL SetPath(CString newpath); + const CString GetPath() const; - void SetServer(const t_server &server); - BOOL SetPath(CString &newpath, BOOL bIsFile); - BOOL SetPath(CString newpath); - const CString GetPath() const; + CServerPath & operator=(const CServerPath & op); - CServerPath& operator=(const CServerPath &op); + const bool operator==(const CServerPath & op) const; + const bool operator!=(const CServerPath & op) const; - const bool operator == (const CServerPath &op) const; - const bool operator != (const CServerPath &op) const; + CString FormatFilename(CString fn, bool omitPath = false) const; - CString FormatFilename(CString fn, bool omitPath = false) const; - protected: - BOOL m_bEmpty; - std::list m_Segments; - typedef std::list::iterator tIter; - typedef std::list::const_iterator tConstIter; - typedef std::list::const_iterator tConstIter; - CString m_Prefix; - int m_nServerType; + BOOL m_bEmpty; + std::list m_Segments; + typedef std::list::iterator tIter; + typedef std::list::const_iterator tConstIter; + typedef std::list::const_iterator tConstIter; + CString m_Prefix; + int m_nServerType; }; - -const BOOL operator == (const CServerPath &a, const CString &b); - -#endif // !defined(AFX_SERVERPATH_H__DF62E6B4_541A_4425_BA73_22B09A12DFE1__INCLUDED_) +//--------------------------------------------------------------------------- +const BOOL operator==(const CServerPath & a, const CString & b); +//--------------------------------------------------------------------------- +#endif // ServerPathH diff --git a/source/filezilla/TransferSocket.cpp b/source/filezilla/TransferSocket.cpp index 4010ceaa..8eb6de17 100644 --- a/source/filezilla/TransferSocket.cpp +++ b/source/filezilla/TransferSocket.cpp @@ -1,28 +1,5 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -// TransferSocket.cpp: Implementierungsdatei -// - +//--------------------------------------------------------------------------- #include "stdafx.h" -#ifndef MPEXT -#include "filezilla.h" -#endif #include "TransferSocket.h" #include "mainthread.h" #include "AsyncProxySocketLayer.h" @@ -30,1317 +7,1108 @@ #include "AsyncGssSocketLayer.h" #endif -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - #define BUFSIZE 16384 -#define STATE_WAITING 0 -#define STATE_STARTING 1 -#define STATE_STARTED 2 +#define STATE_WAITING 0 +#define STATE_STARTING 1 +#define STATE_STARTED 2 ///////////////////////////////////////////////////////////////////////////// // CTransferSocket CTransferSocket::CTransferSocket(CFtpControlSocket *pOwner, int nMode) { - ASSERT(pOwner); - InitLog(pOwner); - m_pOwner = pOwner; - m_nMode = nMode; - m_nTransferState = STATE_WAITING; - m_bCheckTimeout = FALSE; - m_pBuffer = 0; + DebugAssert(pOwner); + InitIntern(pOwner->GetIntern()); + m_pOwner = pOwner; + m_nMode = nMode; + m_nTransferState = STATE_WAITING; + m_bCheckTimeout = FALSE; + m_pBuffer = 0; #ifndef MPEXT_NO_ZLIB - m_pBuffer2 = 0; -#endif - m_bufferpos = 0; - m_pFile = 0; - m_bListening = FALSE; - m_bSentClose = FALSE; - m_nInternalMessageID = 0; - m_transferdata.transfersize = 0; - m_transferdata.transferleft = 0; - m_transferdata.nTransferStart = 0; - m_nNotifyWaiting = 0; - m_bShutDown = FALSE; - - UpdateStatusBar(true); - - for (int i = 0; i < SPEED_SECONDS; i++) - { - m_Transfered[i] = 0; - m_UsedForTransfer[i] = 0; - } - - m_pProxyLayer = NULL; -#ifndef MPEXT_NO_SSL - m_pSslLayer = NULL; + m_pBuffer2 = 0; #endif + m_bufferpos = 0; + m_pFile = 0; + m_bListening = FALSE; + m_bSentClose = FALSE; + m_nInternalMessageID = 0; + m_transferdata.transfersize = 0; + m_transferdata.transferleft = 0; + m_nNotifyWaiting = 0; + m_bShutDown = FALSE; + + UpdateStatusBar(true); + + m_pProxyLayer = NULL; + m_pSslLayer = NULL; #ifndef MPEXT_NO_GSS - m_pGssLayer = NULL; + m_pGssLayer = NULL; #endif - if (m_nMode & CSMODE_LIST) - { - m_pListResult = new CFtpListResult(pOwner->m_CurrentServer, &pOwner->m_bUTF8); - m_pListResult->InitLog(this); - } - else - m_pListResult = 0; - m_LastUpdateTime.QuadPart = 0; + if (m_nMode & CSMODE_LIST) + { + m_pListResult = new CFtpListResult(pOwner->m_CurrentServer, &pOwner->m_bUTF8); + m_pListResult->InitIntern(GetIntern()); + } + else + m_pListResult = 0; + m_LastUpdateTime.QuadPart = 0; #ifndef MPEXT_NO_ZLIB - memset(&m_zlibStream, 0, sizeof(m_zlibStream)); - m_useZlib = false; + memset(&m_zlibStream, 0, sizeof(m_zlibStream)); + m_useZlib = false; #endif } CTransferSocket::~CTransferSocket() { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("~CTransferSocket()")); - delete [] m_pBuffer; + delete [] m_pBuffer; #ifndef MPEXT_NO_ZLIB - delete [] m_pBuffer2; -#endif - PostMessage(m_pOwner->m_pOwner->m_hOwnerWnd, m_pOwner->m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_TRANSFERSTATUS, 0), 0); - Close(); - RemoveAllLayers(); - delete m_pProxyLayer; -#ifndef MPEXT_NO_SSL - delete m_pSslLayer; + delete [] m_pBuffer2; #endif + GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_TRANSFERSTATUS, 0), 0); + Close(); + RemoveAllLayers(); + delete m_pProxyLayer; + delete m_pSslLayer; #ifndef MPEXT_NO_GSS - delete m_pGssLayer; + delete m_pGssLayer; #endif - m_pOwner->RemoveActiveTransfer(); + m_pOwner->RemoveActiveTransfer(); - delete m_pListResult; + delete m_pListResult; #ifndef MPEXT_NO_ZLIB - if (m_useZlib) - { - if (m_nMode & CSMODE_UPLOAD) - deflateEnd(&m_zlibStream); - else - inflateEnd(&m_zlibStream); - } + if (m_useZlib) + { + if (m_nMode & CSMODE_UPLOAD) + deflateEnd(&m_zlibStream); + else + inflateEnd(&m_zlibStream); + } #endif } ///////////////////////////////////////////////////////////////////////////// -// Member-Funktion CTransferSocket -void CTransferSocket::OnReceive(int nErrorCode) +// Member-Funktion CTransferSocket +void CTransferSocket::OnReceive(int nErrorCode) { - if (GetState() != connected && GetState() != attached && GetState() != closed) - return; - if (m_nTransferState == STATE_WAITING) - { - m_nNotifyWaiting |= FD_READ; - return; - } - - if (m_bSentClose) - return; - if (m_bListening) - return; - - if (m_nMode&CSMODE_LIST) - { - if (m_nTransferState == STATE_STARTING) - OnConnect(0); - - char *buffer = new char[BUFSIZE]; - int numread = CAsyncSocketEx::Receive(buffer, BUFSIZE); - if (numread != SOCKET_ERROR && numread) - { - m_LastActiveTime = CTime::GetCurrentTime(); - UpdateRecvLed(); + if (GetState() != connected && GetState() != attached && GetState() != closed) + return; + if (m_nTransferState == STATE_WAITING) + { + m_nNotifyWaiting |= FD_READ; + return; + } + + if (m_bSentClose) + return; + if (m_bListening) + return; + + if (m_nMode&CSMODE_LIST) + { + if (m_nTransferState == STATE_STARTING) + OnConnect(0); + + char *buffer = new char[BUFSIZE]; + int numread = CAsyncSocketEx::Receive(buffer, BUFSIZE); + if (numread != SOCKET_ERROR && numread) + { + m_LastActiveTime = CTime::GetCurrentTime(); #ifndef MPEXT_NO_ZLIB - if (m_useZlib) - { - m_zlibStream.next_in = (Bytef *)buffer; - m_zlibStream.avail_in = numread; - char *out = new char[BUFSIZE]; - m_zlibStream.next_out = (Bytef *)out; - m_zlibStream.avail_out = BUFSIZE; - int res = inflate(&m_zlibStream, 0); - while (res == Z_OK) - { - m_pListResult->AddData(out, BUFSIZE - m_zlibStream.avail_out); - out = new char[BUFSIZE]; - m_zlibStream.next_out = (Bytef *)out; - m_zlibStream.avail_out = BUFSIZE; - res = inflate(&m_zlibStream, 0); - } - delete [] buffer; - if (res == Z_STREAM_END) - m_pListResult->AddData(out, BUFSIZE - m_zlibStream.avail_out); - else if (res != Z_OK && res != Z_BUF_ERROR) - { - delete [] out; - CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); - return; - } - else - delete [] out; - } - else -#endif - m_pListResult->AddData(buffer, numread); - m_transferdata.transfersize += numread; - CTimeSpan timespan = CTime::GetCurrentTime() - m_StartTime; - int elapsed = (int)timespan.GetTotalSeconds(); - //TODO - //There are servers which report the total number of - //bytes in the list response message, but yet it is not supported by FZ. - /*double leftmodifier=(transfersize-transferstart-transferleft); - leftmodifier*=100; - leftmodifier/=(transfersize-transferstart); - if (leftmodifier==0) - leftmodifier=1; - double leftmodifier2=100-leftmodifier; - int left=(int)((elapsed/leftmodifier)*leftmodifier2); - int percent=MulDiv(100,transfersize-transferleft,transfersize);*/ - int transferrate=static_cast( (elapsed && m_transferdata.transfersize)?m_transferdata.transfersize/elapsed:0 ); - t_ffam_transferstatus *status = new t_ffam_transferstatus; - status->bFileTransfer = FALSE; -#ifdef MPEXT - status->transfersize = -1; + if (m_useZlib) + { + m_zlibStream.next_in = (Bytef *)buffer; + m_zlibStream.avail_in = numread; + char *out = new char[BUFSIZE]; + m_zlibStream.next_out = (Bytef *)out; + m_zlibStream.avail_out = BUFSIZE; + int res = inflate(&m_zlibStream, 0); + while (res == Z_OK) + { + m_pListResult->AddData(out, BUFSIZE - m_zlibStream.avail_out); + out = new char[BUFSIZE]; + m_zlibStream.next_out = (Bytef *)out; + m_zlibStream.avail_out = BUFSIZE; + res = inflate(&m_zlibStream, 0); + } + delete [] buffer; + if (res == Z_STREAM_END) + m_pListResult->AddData(out, BUFSIZE - m_zlibStream.avail_out); + else if (res != Z_OK && res != Z_BUF_ERROR) + { + delete [] out; + CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); + return; + } + else + delete [] out; + } + else #endif - status->bytes = m_transferdata.transfersize; - status->percent = -1; - status->timeelapsed = elapsed; - status->timeleft = -1; - status->transferrate = transferrate; - PostMessage(m_pOwner->m_pOwner->m_hOwnerWnd, m_pOwner->m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_TRANSFERSTATUS, 0), (LPARAM)status); - } - else - delete [] buffer; - if (!numread) - { - CloseAndEnsureSendClose(0); - } - if (numread == SOCKET_ERROR) - { - int nError = GetLastError(); - if (nError == WSAENOTCONN) - { - //Not yet connected - return; - } -#ifndef MPEXT_NO_SSL - else if (m_pSslLayer && nError == WSAESHUTDOWN) - { - // Do nothing, wait for shutdown complete notification. - return; - } -#endif - else if (nError != WSAEWOULDBLOCK) - { - LogError(nError); - CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); - } - } - } - else if (m_nMode & CSMODE_DOWNLOAD) - { - if (m_nTransferState == STATE_STARTING) - OnConnect(0); - - bool beenWaiting = false; - _int64 ableToRead; - if (GetState() != closed) - ableToRead = m_pOwner->GetAbleToTransferSize(CControlSocket::download, beenWaiting); - else - ableToRead = BUFSIZE; - - if (!beenWaiting) - ASSERT(ableToRead); - else if (!ableToRead) - { - TriggerEvent(FD_READ); - return; - } - - if (!m_pBuffer) - m_pBuffer = new char[BUFSIZE]; - - int numread = CAsyncSocketEx::Receive(m_pBuffer, static_cast(ableToRead)); - if (numread!=SOCKET_ERROR) - { - Transfered( numread, CTime::GetCurrentTime()); - m_pOwner->SpeedLimitAddTransferredBytes(CControlSocket::download, numread); - } - - if (!numread) - { - CloseAndEnsureSendClose(0); - return; - } - - if (numread == SOCKET_ERROR) - { - int nError = GetLastError(); - if (nError == WSAENOTCONN) - { - //Not yet connected - return; - } -#ifndef MPEXT_NO_SSL - else if (m_pSslLayer && nError == WSAESHUTDOWN) - { - // Do nothing, wait for shutdown complete notification. - return; - } -#endif - else if (nError != WSAEWOULDBLOCK) - { - LogError(nError); - CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); - } - - UpdateStatusBar(false); - return; - } - - int written = 0; - m_LastActiveTime = CTime::GetCurrentTime(); - UpdateRecvLed(); - TRY - { + m_pListResult->AddData(buffer, numread); + m_transferdata.transfersize += numread; + t_ffam_transferstatus *status = new t_ffam_transferstatus; + status->bFileTransfer = FALSE; + status->transfersize = -1; + status->bytes = m_transferdata.transfersize; + GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_TRANSFERSTATUS, 0), (LPARAM)status); + } + else + delete [] buffer; + if (!numread) + { + CloseAndEnsureSendClose(0); + } + if (numread == SOCKET_ERROR) + { + int nError = GetLastError(); + if (nError == WSAENOTCONN) + { + //Not yet connected + return; + } + else if (m_pSslLayer && nError == WSAESHUTDOWN) + { + // Do nothing, wait for shutdown complete notification. + return; + } + else if (nError != WSAEWOULDBLOCK) + { + LogError(nError); + CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); + } + } + } + else if (m_nMode & CSMODE_DOWNLOAD) + { + if (m_nTransferState == STATE_STARTING) + OnConnect(0); + + bool beenWaiting = false; + _int64 ableToRead; + if (GetState() != closed) + ableToRead = m_pOwner->GetAbleToTransferSize(CFtpControlSocket::download, beenWaiting); + else + ableToRead = BUFSIZE; + + if (!beenWaiting) + DebugAssert(ableToRead); + else if (!ableToRead) + { + TriggerEvent(FD_READ); + return; + } + + if (!m_pBuffer) + m_pBuffer = new char[BUFSIZE]; + + int numread = CAsyncSocketEx::Receive(m_pBuffer, static_cast(ableToRead)); + if (numread!=SOCKET_ERROR) + { + m_pOwner->SpeedLimitAddTransferredBytes(CFtpControlSocket::download, numread); + } + + if (!numread) + { + CloseAndEnsureSendClose(0); + return; + } + + if (numread == SOCKET_ERROR) + { + int nError = GetLastError(); + if (nError == WSAENOTCONN) + { + //Not yet connected + return; + } + else if (m_pSslLayer && nError == WSAESHUTDOWN) + { + // Do nothing, wait for shutdown complete notification. + return; + } + else if (nError != WSAEWOULDBLOCK) + { + LogError(nError); + CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); + } + + UpdateStatusBar(false); + return; + } + + int written = 0; + m_LastActiveTime = CTime::GetCurrentTime(); + TRY + { #ifndef MPEXT_NO_ZLIB - if (m_useZlib) - { - if (!m_pBuffer2) - m_pBuffer2 = new char[BUFSIZE]; - - m_zlibStream.next_in = (Bytef *)m_pBuffer; - m_zlibStream.avail_in = numread; - m_zlibStream.next_out = (Bytef *)m_pBuffer2; - m_zlibStream.avail_out = BUFSIZE; - int res = inflate(&m_zlibStream, 0); - while (res == Z_OK) - { - m_pFile->Write(m_pBuffer2, BUFSIZE - m_zlibStream.avail_out); - written += BUFSIZE - m_zlibStream.avail_out; - m_zlibStream.next_out = (Bytef *)m_pBuffer2; - m_zlibStream.avail_out = BUFSIZE; - res = inflate(&m_zlibStream, 0); - } - if (res == Z_STREAM_END) - { - m_pFile->Write(m_pBuffer2, BUFSIZE - m_zlibStream.avail_out); - written += BUFSIZE - m_zlibStream.avail_out; - } - else if (res != Z_OK && res != Z_BUF_ERROR) - { - m_pOwner->ShowStatus(L"Compression error", FZ_LOG_ERROR); - CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); - return; - } - } - else + if (m_useZlib) + { + if (!m_pBuffer2) + m_pBuffer2 = new char[BUFSIZE]; + + m_zlibStream.next_in = (Bytef *)m_pBuffer; + m_zlibStream.avail_in = numread; + m_zlibStream.next_out = (Bytef *)m_pBuffer2; + m_zlibStream.avail_out = BUFSIZE; + int res = inflate(&m_zlibStream, 0); + while (res == Z_OK) + { + m_pFile->Write(m_pBuffer2, BUFSIZE - m_zlibStream.avail_out); + written += BUFSIZE - m_zlibStream.avail_out; + m_zlibStream.next_out = (Bytef *)m_pBuffer2; + m_zlibStream.avail_out = BUFSIZE; + res = inflate(&m_zlibStream, 0); + } + if (res == Z_STREAM_END) + { + m_pFile->Write(m_pBuffer2, BUFSIZE - m_zlibStream.avail_out); + written += BUFSIZE - m_zlibStream.avail_out; + } + else if (res != Z_OK && res != Z_BUF_ERROR) + { + m_pOwner->ShowStatus(L"Compression error", FZ_LOG_ERROR); + CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); + return; + } + } + else #endif - { - m_pFile->Write(m_pBuffer, numread); - written = numread; - } - } - CATCH(CFileException,e) - { - LPTSTR msg = new TCHAR[BUFSIZE]; - if (e->GetErrorMessage(msg, BUFSIZE)) - m_pOwner->ShowStatus(msg, FZ_LOG_ERROR); - delete [] msg; - CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); - return; - } - END_CATCH; - m_transferdata.transferleft -= written; - - UpdateStatusBar(false); - } + { + m_pFile->Write(m_pBuffer, numread); + written = numread; + } + } + CATCH(CFileException,e) + { + LPTSTR msg = new TCHAR[BUFSIZE]; + if (e->GetErrorMessage(msg, BUFSIZE)) + m_pOwner->ShowStatus(msg, FZ_LOG_ERROR); + delete [] msg; + CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); + return; + } + END_CATCH; + m_transferdata.transferleft -= written; + + UpdateStatusBar(false); + } } void CTransferSocket::SetBuffers() { - /* Set internal socket send buffer - * this should fix the speed problems some users have reported - */ - DWORD value = 0; - int len = sizeof(value); - GetSockOpt(SO_SNDBUF, &value, &len); - // MPEXT - int sndbuf = COptions::GetOptionVal(OPTION_MPEXT_SNDBUF); - if (value < sndbuf) - { - value = sndbuf; - SetSockOpt(SO_SNDBUF, &value, sizeof(value)); - } - - // For now we increase receive buffer, whenever send buffer is set. - // The size is not configurable. The constant taken from FZ. - if (sndbuf > 0) - { - value = 0; - len = sizeof(value); - GetSockOpt(SO_RCVBUF, &value, &len); - int rcvbuf = 4 * 1024 * 1024; - if (value < rcvbuf) - { - value = rcvbuf; - SetSockOpt(SO_RCVBUF, &value, sizeof(value)); - } - } + /* Set internal socket send buffer + * this should fix the speed problems some users have reported + */ + DWORD value = 0; + int len = sizeof(value); + GetSockOpt(SO_SNDBUF, &value, &len); + int sndbuf = GetOptionVal(OPTION_MPEXT_SNDBUF); + if (value < sndbuf) + { + value = sndbuf; + SetSockOpt(SO_SNDBUF, &value, sizeof(value)); + } + + // For now we increase receive buffer, whenever send buffer is set. + // The size is not configurable. The constant taken from FZ. + if (sndbuf > 0) + { + value = 0; + len = sizeof(value); + GetSockOpt(SO_RCVBUF, &value, &len); + int rcvbuf = 4 * 1024 * 1024; + if (value < rcvbuf) + { + value = rcvbuf; + SetSockOpt(SO_RCVBUF, &value, sizeof(value)); + } + } } void CTransferSocket::OnAccept(int nErrorCode) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("OnAccept(%d)"), nErrorCode); - m_bListening=FALSE; - CAsyncSocketEx tmp; - Accept(tmp); - SOCKET socket=tmp.Detach(); - CAsyncSocketEx::Close(); - - Attach(socket); - - SetBuffers(); - - if (m_nTransferState == STATE_STARTING) - { - m_nTransferState = STATE_STARTED; - -#ifndef MPEXT_NO_SSL - if (m_pSslLayer) - { - AddLayer(m_pSslLayer); - int res = m_pSslLayer->InitSSLConnection(true, m_pOwner->m_pSslLayer, - COptions::GetOptionVal(OPTION_MPEXT_SSLSESSIONREUSE), - COptions::GetOptionVal(OPTION_MPEXT_MIN_TLS_VERSION), - COptions::GetOptionVal(OPTION_MPEXT_MAX_TLS_VERSION)); - if (res == SSL_FAILURE_INITSSL) - m_pOwner->ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR); - - if (res) - { - CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); - return; - } - } -#endif - + m_bListening=FALSE; + CAsyncSocketEx tmp; + Accept(tmp); + SOCKET socket=tmp.Detach(); + CAsyncSocketEx::Close(); + + Attach(socket); + + SetBuffers(); + + if (m_nTransferState == STATE_STARTING) + { + m_nTransferState = STATE_STARTED; + + if (m_pSslLayer) + { + AddLayer(m_pSslLayer); + int res = m_pSslLayer->InitSSLConnection(true, m_pOwner->m_pSslLayer, + GetOptionVal(OPTION_MPEXT_SSLSESSIONREUSE), + GetOptionVal(OPTION_MPEXT_MIN_TLS_VERSION), + GetOptionVal(OPTION_MPEXT_MAX_TLS_VERSION)); + if (res == SSL_FAILURE_INITSSL) + m_pOwner->ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR); + + if (res) + { + CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); + return; + } + } + #ifndef MPEXT_NO_GSS - if (m_pGssLayer) - { - AddLayer(m_pGssLayer); - } + if (m_pGssLayer) + { + AddLayer(m_pGssLayer); + } #endif - - m_TransferedFirst = m_StartTime = CTime::GetCurrentTime(); - m_LastActiveTime = CTime::GetCurrentTime(); - } + + m_LastActiveTime = CTime::GetCurrentTime(); + } } void CTransferSocket::ConfigureSocket() { - // Note that FileZilla re-enables Nagle's alg during TLS negotiation. + // Note that FileZilla re-enables Nagle's alg during TLS negotiation. - // Following post claims that TCP_NODELAY - // has to be set before connect() - // http://stackoverflow.com/questions/22583941/what-is-the-workaround-for-tcp-delayed-acknowledgment/25871250#25871250 + // Following post claims that TCP_NODELAY + // has to be set before connect() + // http://stackoverflow.com/questions/22583941/what-is-the-workaround-for-tcp-delayed-acknowledgment/25871250#25871250 - int nodelay = COptions::GetOptionVal(OPTION_MPEXT_NODELAY); - if (nodelay != 0) - { - BOOL bvalue = TRUE; - SetSockOpt(TCP_NODELAY, &bvalue, sizeof(bvalue), IPPROTO_TCP); - } + int nodelay = GetOptionVal(OPTION_MPEXT_NODELAY); + if (nodelay != 0) + { + BOOL bvalue = TRUE; + SetSockOpt(TCP_NODELAY, &bvalue, sizeof(bvalue), IPPROTO_TCP); + } - CAsyncSocketEx::ConfigureSocket(); + CAsyncSocketEx::ConfigureSocket(); } void CTransferSocket::OnConnect(int nErrorCode) { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("OnConnect(%d)"), nErrorCode); - if (nErrorCode) - { - TCHAR buffer[1000]; - memset(buffer, 0, sizeof(buffer)); - FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, nErrorCode, 0, buffer, 999, 0); - CString str; - str.Format(IDS_ERRORMSG_CANTOPENTRANSFERCHANNEL,buffer); - str.Replace( _T("\n"), _T("\0") ); - str.Replace( _T("\r"), _T("\0") ); - m_pOwner->ShowStatus(str, FZ_LOG_ERROR); - CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); - } - else - { - SetBuffers(); - m_pOwner->ShowStatus(L"Data connection opened", FZ_LOG_INFO); - } - if (m_nTransferState == STATE_WAITING) - { - // OnReceive (invoked by m_nNotifyWaiting including FD_READ) - // will call back to OnConnected (as we won't be connected yet). - // This is needed for file transfers only, where SetActive is - // called only after 1xx response to RETR (and similar) arrives. - // But we get FD_CONNECT earlier, hence we get to this branch. - // With directory listing, SetActive is called before Connect, - // so we are already STATE_STARTING on FD_CONNECT. - // It should probably behave the same in both scenarios. - m_nNotifyWaiting |= FD_READ; - } - else if (m_nTransferState == STATE_STARTING) - { - m_nTransferState = STATE_STARTED; - - m_TransferedFirst = m_StartTime = CTime::GetCurrentTime(); - m_LastActiveTime=CTime::GetCurrentTime(); - -#ifndef MPEXT_NO_SSL - if (m_pSslLayer) - { - AddLayer(m_pSslLayer); - int res = m_pSslLayer->InitSSLConnection(true, m_pOwner->m_pSslLayer, - COptions::GetOptionVal(OPTION_MPEXT_SSLSESSIONREUSE), - COptions::GetOptionVal(OPTION_MPEXT_MIN_TLS_VERSION), - COptions::GetOptionVal(OPTION_MPEXT_MAX_TLS_VERSION)); - if (res == SSL_FAILURE_INITSSL) - { - m_pOwner->ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR); - } - - if (res) - { - CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); - return; - } - } -#endif - + if (nErrorCode) + { + TCHAR buffer[1000]; + memset(buffer, 0, sizeof(buffer)); + FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, nErrorCode, 0, buffer, 999, 0); + CString str; + str.Format(IDS_ERRORMSG_CANTOPENTRANSFERCHANNEL,buffer); + str.Replace( L"\n", L"\0" ); + str.Replace( L"\r", L"\0" ); + m_pOwner->ShowStatus(str, FZ_LOG_ERROR); + CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); + } + else + { + SetBuffers(); + m_pOwner->ShowStatus(L"Data connection opened", FZ_LOG_INFO); + } + if (m_nTransferState == STATE_WAITING) + { + // OnReceive (invoked by m_nNotifyWaiting including FD_READ) + // will call back to OnConnected (as we won't be connected yet). + // This is needed for file transfers only, where SetActive is + // called only after 1xx response to RETR (and similar) arrives. + // But we get FD_CONNECT earlier, hence we get to this branch. + // With directory listing, SetActive is called before Connect, + // so we are already STATE_STARTING on FD_CONNECT. + // It should probably behave the same in both scenarios. + m_nNotifyWaiting |= FD_READ; + } + else if (m_nTransferState == STATE_STARTING) + { + m_nTransferState = STATE_STARTED; + + m_LastActiveTime=CTime::GetCurrentTime(); + + if (m_pSslLayer) + { + AddLayer(m_pSslLayer); + int res = m_pSslLayer->InitSSLConnection(true, m_pOwner->m_pSslLayer, + GetOptionVal(OPTION_MPEXT_SSLSESSIONREUSE), + GetOptionVal(OPTION_MPEXT_MIN_TLS_VERSION), + GetOptionVal(OPTION_MPEXT_MAX_TLS_VERSION)); + if (res == SSL_FAILURE_INITSSL) + { + m_pOwner->ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR); + } + + if (res) + { + CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); + return; + } + } + #ifndef MPEXT_NO_GSS - if (m_pGssLayer) - { - AddLayer(m_pGssLayer); - } + if (m_pGssLayer) + { + AddLayer(m_pGssLayer); + } #endif - } -} + } +} -void CTransferSocket::OnClose(int nErrorCode) +void CTransferSocket::OnClose(int nErrorCode) { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_DEBUG, _T("OnClose(%d)"), nErrorCode); - - if (m_nTransferState == STATE_WAITING) - { - m_nNotifyWaiting |= FD_CLOSE; - return; - } - - m_pOwner->ShowStatus(L"Data connection closed", FZ_LOG_INFO); - - OnReceive(0); - CloseAndEnsureSendClose(0); + if (m_nTransferState == STATE_WAITING) + { + m_nNotifyWaiting |= FD_CLOSE; + return; + } + + m_pOwner->ShowStatus(L"Data connection closed", FZ_LOG_INFO); + + OnReceive(0); + CloseAndEnsureSendClose(0); } int CTransferSocket::CheckForTimeout(int delay) { - UpdateStatusBar(false); - if (!m_bCheckTimeout) - { - // we are closed, so make sure the FTP control socket is itself checking for - // timeout as we are not - return 0; - } - CTimeSpan span = CTime::GetCurrentTime()-m_LastActiveTime; - if (span.GetTotalSeconds()>=delay) - { - m_pOwner->ShowTimeoutError(IDS_DATA_CONNECTION); - CloseAndEnsureSendClose(CSMODE_TRANSFERTIMEOUT); - return 2; - } - return 1; + UpdateStatusBar(false); + if (!m_bCheckTimeout) + { + // we are closed, so make sure the FTP control socket is itself checking for + // timeout as we are not + return 0; + } + CTimeSpan span = CTime::GetCurrentTime()-m_LastActiveTime; + if (span.GetTotalSeconds()>=delay) + { + m_pOwner->ShowTimeoutError(IDS_DATA_CONNECTION); + CloseAndEnsureSendClose(CSMODE_TRANSFERTIMEOUT); + return 2; + } + return 1; } void CTransferSocket::SetActive() { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_DEBUG, _T("SetActive()")); - - if (m_nTransferState == STATE_WAITING) - m_nTransferState = STATE_STARTING; - m_bCheckTimeout = TRUE; - m_LastActiveTime = CTime::GetCurrentTime(); - - if (m_nNotifyWaiting & FD_READ) - OnReceive(0); - if (m_nNotifyWaiting & FD_WRITE) - OnSend(0); - if (m_nNotifyWaiting & FD_CLOSE) - OnClose(0); + if (m_nTransferState == STATE_WAITING) + m_nTransferState = STATE_STARTING; + m_bCheckTimeout = TRUE; + m_LastActiveTime = CTime::GetCurrentTime(); + + if (m_nNotifyWaiting & FD_READ) + OnReceive(0); + if (m_nNotifyWaiting & FD_WRITE) + OnSend(0); + if (m_nNotifyWaiting & FD_CLOSE) + OnClose(0); } void CTransferSocket::OnSend(int nErrorCode) { - if (m_nTransferState == STATE_WAITING) - { - m_nNotifyWaiting |= FD_WRITE; - return; - } - - if (m_bSentClose) - { - return; - } - if (m_bListening) - { - return; - } - - if (!(m_nMode&CSMODE_UPLOAD)) - { - return; - } - - if (m_nTransferState == STATE_STARTING) - { - OnConnect(0); - } + if (m_nTransferState == STATE_WAITING) + { + m_nNotifyWaiting |= FD_WRITE; + return; + } + + if (m_bSentClose) + { + return; + } + if (m_bListening) + { + return; + } + + if (!(m_nMode&CSMODE_UPLOAD)) + { + return; + } + + if (m_nTransferState == STATE_STARTING) + { + OnConnect(0); + } #ifndef MPEXT_NO_ZLIB - if (m_useZlib) - { - if (!m_pBuffer) - { - m_pBuffer = new char[BUFSIZE]; - m_bufferpos = 0; - - m_zlibStream.next_out = (Bytef *)m_pBuffer; - m_zlibStream.avail_out = BUFSIZE; - } - if (!m_pBuffer2) - { - m_pBuffer2 = new char[BUFSIZE]; - - m_zlibStream.next_in = (Bytef *)m_pBuffer2; - } - - bool beenWaiting = false; - while (true) - { - int numsend; - if (!m_zlibStream.avail_in) - { - if (m_pFile) - { - DWORD numread; - numread = ReadDataFromFile(m_pBuffer2, BUFSIZE); - if (numread < 0) - { - return; - } - - m_transferdata.transferleft -= numread; - m_zlibStream.next_in = (Bytef *)m_pBuffer2; - m_zlibStream.avail_in = numread; - - if (numread < BUFSIZE) - m_pFile = 0; - } - } - if (!m_zlibStream.avail_out) - { - if (m_bufferpos >= BUFSIZE) - { - m_bufferpos = 0; - m_zlibStream.next_out = (Bytef *)m_pBuffer; - m_zlibStream.avail_out = BUFSIZE; - } - } - - int res = Z_OK; - if (m_zlibStream.avail_out) - { - res = deflate(&m_zlibStream, m_pFile ? 0 : Z_FINISH); - if (res != Z_OK && (!m_pFile && res != Z_STREAM_END)) - { - m_pOwner->ShowStatus("Decompression error", FZ_LOG_ERROR); - CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); - return; - } - } - - numsend = BUFSIZE; - int len = BUFSIZE - m_bufferpos - m_zlibStream.avail_out; - if (!len && !m_pFile) - { - break; - } - - if (len < BUFSIZE) - numsend = len; - - int nLimit = (int)m_pOwner->GetAbleToTransferSize(CControlSocket::upload, beenWaiting); - if (nLimit != -1 && GetState() != closed && numsend > nLimit) - numsend = nLimit; - - if (!numsend) - { - TriggerEvent(FD_WRITE); - return; - } - - int numsent = Send(m_pBuffer + m_bufferpos, numsend); - if (numsent == SOCKET_ERROR) - { - int nError = GetLastError(); - if (nError == WSAENOTCONN) - { - //Not yet connected - return; - } -#ifndef MPEXT_NO_SSL - else if (m_pSslLayer && nError == WSAESHUTDOWN) - { - // Do nothing, wait for shutdown complete notification. - return; - } -#endif - else if (nError != WSAEWOULDBLOCK) - { - CloseOnShutDownOrError(CSMODE_TRANSFERERROR); - } - UpdateStatusBar(false); - return; - } - - Transfered( numsent, CTime::GetCurrentTime()); - m_pOwner->SpeedLimitAddTransferredBytes(CControlSocket::upload, numsent); - m_LastActiveTime = CTime::GetCurrentTime(); - UpdateSendLed(); - - m_bufferpos += numsent; - - UpdateStatusBar(false); - - if (!m_zlibStream.avail_in && !m_pFile && m_zlibStream.avail_out && - m_zlibStream.avail_out + m_bufferpos == BUFSIZE && res == Z_STREAM_END) - { - CloseOnShutDownOrError(0); - return; - } - - //Check if there are other commands in the command queue. - MSG msg; - if (PeekMessage(&msg,0, 0, 0, PM_NOREMOVE)) - { - TriggerEvent(FD_WRITE); - return; - } - } - } - else -#endif - { - if (!m_pFile) - { - return; - } - if (!m_pBuffer) - m_pBuffer = new char[BUFSIZE]; - - int numread; - - bool beenWaiting = false; - _int64 currentBufferSize; - if (GetState() != closed) - currentBufferSize = m_pOwner->GetAbleToTransferSize(CControlSocket::upload, beenWaiting); - else - currentBufferSize = BUFSIZE; - - if (!currentBufferSize && !m_bufferpos) - { - // Not allowed to send yet, try later - TriggerEvent(FD_WRITE); - return; - } - else if (m_bufferpos < currentBufferSize) - { - numread = ReadDataFromFile(m_pBuffer + m_bufferpos, static_cast(currentBufferSize - m_bufferpos)); - if (numread < 0 ) - { - return; - } - else if (!numread && !m_bufferpos) - { - CloseOnShutDownOrError(0); - return; - } - } - else - numread = 0; - - ASSERT((numread+m_bufferpos) <= BUFSIZE); - ASSERT(numread>=0); - ASSERT(m_bufferpos>=0); - - if (numread+m_bufferpos <= 0) - { - CloseOnShutDownOrError(0); - return; - } - - int numsent = Send(m_pBuffer, numread + m_bufferpos); - - while (TRUE) - { - if (numsent != SOCKET_ERROR) - { - Transfered(numsent, CTime::GetCurrentTime()); - m_pOwner->SpeedLimitAddTransferredBytes(CControlSocket::upload, numsent); - m_LastActiveTime = CTime::GetCurrentTime(); - UpdateSendLed(); - m_transferdata.transferleft -= numsent; - } - - if (numsent==SOCKET_ERROR || !numsent) - { - int nError = GetLastError(); - if (nError == WSAENOTCONN) - { - //Not yet connected - m_bufferpos += numread; - return; - } - else if (nError == WSAEWOULDBLOCK) - { - m_bufferpos += numread; - } -#ifndef MPEXT_NO_SSL - else if (m_pSslLayer && nError == WSAESHUTDOWN) - { - m_bufferpos += numread; - // Do nothing, wait for shutdown complete notification. - return; - } + if (m_useZlib) + { + if (!m_pBuffer) + { + m_pBuffer = new char[BUFSIZE]; + m_bufferpos = 0; + + m_zlibStream.next_out = (Bytef *)m_pBuffer; + m_zlibStream.avail_out = BUFSIZE; + } + if (!m_pBuffer2) + { + m_pBuffer2 = new char[BUFSIZE]; + + m_zlibStream.next_in = (Bytef *)m_pBuffer2; + } + + bool beenWaiting = false; + while (true) + { + int numsend; + if (!m_zlibStream.avail_in) + { + if (m_pFile) + { + DWORD numread; + numread = ReadDataFromFile(m_pBuffer2, BUFSIZE); + if (numread < 0) + { + return; + } + + m_transferdata.transferleft -= numread; + m_zlibStream.next_in = (Bytef *)m_pBuffer2; + m_zlibStream.avail_in = numread; + + if (numread < BUFSIZE) + m_pFile = 0; + } + } + if (!m_zlibStream.avail_out) + { + if (m_bufferpos >= BUFSIZE) + { + m_bufferpos = 0; + m_zlibStream.next_out = (Bytef *)m_pBuffer; + m_zlibStream.avail_out = BUFSIZE; + } + } + + int res = Z_OK; + if (m_zlibStream.avail_out) + { + res = deflate(&m_zlibStream, m_pFile ? 0 : Z_FINISH); + if (res != Z_OK && (!m_pFile && res != Z_STREAM_END)) + { + m_pOwner->ShowStatus("Decompression error", FZ_LOG_ERROR); + CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); + return; + } + } + + numsend = BUFSIZE; + int len = BUFSIZE - m_bufferpos - m_zlibStream.avail_out; + if (!len && !m_pFile) + { + break; + } + + if (len < BUFSIZE) + numsend = len; + + int nLimit = (int)m_pOwner->GetAbleToTransferSize(CFtpControlSocket::upload, beenWaiting); + if (nLimit != -1 && GetState() != closed && numsend > nLimit) + numsend = nLimit; + + if (!numsend) + { + TriggerEvent(FD_WRITE); + return; + } + + int numsent = Send(m_pBuffer + m_bufferpos, numsend); + if (numsent == SOCKET_ERROR) + { + int nError = GetLastError(); + if (nError == WSAENOTCONN) + { + //Not yet connected + return; + } + else if (m_pSslLayer && nError == WSAESHUTDOWN) + { + // Do nothing, wait for shutdown complete notification. + return; + } + else if (nError != WSAEWOULDBLOCK) + { + CloseOnShutDownOrError(CSMODE_TRANSFERERROR); + } + UpdateStatusBar(false); + return; + } + + m_pOwner->SpeedLimitAddTransferredBytes(CFtpControlSocket::upload, numsent); + m_LastActiveTime = CTime::GetCurrentTime(); + + m_bufferpos += numsent; + + UpdateStatusBar(false); + + if (!m_zlibStream.avail_in && !m_pFile && m_zlibStream.avail_out && + m_zlibStream.avail_out + m_bufferpos == BUFSIZE && res == Z_STREAM_END) + { + CloseOnShutDownOrError(0); + return; + } + + //Check if there are other commands in the command queue. + MSG msg; + if (PeekMessage(&msg,0, 0, 0, PM_NOREMOVE)) + { + TriggerEvent(FD_WRITE); + return; + } + } + } + else #endif - else - { - CloseOnShutDownOrError(CSMODE_TRANSFERERROR); - } - UpdateStatusBar(false); - return; - } - else - { - int pos = numread + m_bufferpos - numsent; - - if (pos < 0 || (numsent + pos) > BUFSIZE) - { - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Index out of range")); - CloseOnShutDownOrError(CSMODE_TRANSFERERROR); - return; - } - else if (!pos && numread < (currentBufferSize-m_bufferpos) && m_bufferpos != currentBufferSize) - { - CloseOnShutDownOrError(0); - return; - } - else if (!pos) - { - m_bufferpos = 0; - } - else - { - memmove(m_pBuffer, m_pBuffer+numsent, pos); - m_bufferpos=pos; - } - } - //Check if there are other commands in the command queue. - MSG msg; - if (PeekMessage(&msg, 0, m_nInternalMessageID, m_nInternalMessageID, PM_NOREMOVE)) - { - //Send resume message - LogMessage(__FILE__, __LINE__, this, FZ_LOG_DEBUG, _T("Message waiting in queue, resuming later")); - TriggerEvent(FD_WRITE); - UpdateStatusBar(false); - return; - } - UpdateStatusBar(false); - - if (GetState() != closed) - currentBufferSize = m_pOwner->GetAbleToTransferSize(CControlSocket::upload, beenWaiting); - else - currentBufferSize = BUFSIZE; - - if (m_bufferpos < currentBufferSize) - { - numread = ReadDataFromFile(m_pBuffer + m_bufferpos, static_cast(currentBufferSize - m_bufferpos)); - if (numread < 0 ) - { - return; - } - else if (!numread && !m_bufferpos) - { - CloseOnShutDownOrError(0); - return; - } - } - else - { - numread = 0; - } - - if (!currentBufferSize && !m_bufferpos) - { - // Not allowed to send yet, try later - TriggerEvent(FD_WRITE); - return; - } - - ASSERT(numread>=0); - ASSERT(m_bufferpos>=0); - numsent = Send(m_pBuffer, numread+m_bufferpos); - } - } + { + if (!m_pFile) + { + return; + } + if (!m_pBuffer) + m_pBuffer = new char[BUFSIZE]; + + int numread; + + bool beenWaiting = false; + _int64 currentBufferSize; + if (GetState() != closed) + currentBufferSize = m_pOwner->GetAbleToTransferSize(CFtpControlSocket::upload, beenWaiting); + else + currentBufferSize = BUFSIZE; + + if (!currentBufferSize && !m_bufferpos) + { + // Not allowed to send yet, try later + TriggerEvent(FD_WRITE); + return; + } + else if (m_bufferpos < currentBufferSize) + { + numread = ReadDataFromFile(m_pBuffer + m_bufferpos, static_cast(currentBufferSize - m_bufferpos)); + if (numread < 0 ) + { + return; + } + else if (!numread && !m_bufferpos) + { + CloseOnShutDownOrError(0); + return; + } + } + else + numread = 0; + + DebugAssert((numread+m_bufferpos) <= BUFSIZE); + DebugAssert(numread>=0); + DebugAssert(m_bufferpos>=0); + + if (numread+m_bufferpos <= 0) + { + CloseOnShutDownOrError(0); + return; + } + + int numsent = Send(m_pBuffer, numread + m_bufferpos); + + while (TRUE) + { + if (numsent != SOCKET_ERROR) + { + m_pOwner->SpeedLimitAddTransferredBytes(CFtpControlSocket::upload, numsent); + m_LastActiveTime = CTime::GetCurrentTime(); + m_transferdata.transferleft -= numsent; + } + + if (numsent==SOCKET_ERROR || !numsent) + { + int nError = GetLastError(); + if (nError == WSAENOTCONN) + { + //Not yet connected + m_bufferpos += numread; + return; + } + else if (nError == WSAEWOULDBLOCK) + { + m_bufferpos += numread; + } + else if (m_pSslLayer && nError == WSAESHUTDOWN) + { + m_bufferpos += numread; + // Do nothing, wait for shutdown complete notification. + return; + } + else + { + CloseOnShutDownOrError(CSMODE_TRANSFERERROR); + } + UpdateStatusBar(false); + return; + } + else + { + int pos = numread + m_bufferpos - numsent; + + if (pos < 0 || (numsent + pos) > BUFSIZE) + { + LogMessage(FZ_LOG_WARNING, L"Index out of range"); + CloseOnShutDownOrError(CSMODE_TRANSFERERROR); + return; + } + else if (!pos && numread < (currentBufferSize-m_bufferpos) && m_bufferpos != currentBufferSize) + { + CloseOnShutDownOrError(0); + return; + } + else if (!pos) + { + m_bufferpos = 0; + } + else + { + memmove(m_pBuffer, m_pBuffer+numsent, pos); + m_bufferpos=pos; + } + } + //Check if there are other commands in the command queue. + MSG msg; + if (PeekMessage(&msg, 0, m_nInternalMessageID, m_nInternalMessageID, PM_NOREMOVE)) + { + //Send resume message + LogMessage(FZ_LOG_DEBUG, L"Message waiting in queue, resuming later"); + TriggerEvent(FD_WRITE); + UpdateStatusBar(false); + return; + } + UpdateStatusBar(false); + + if (GetState() != closed) + currentBufferSize = m_pOwner->GetAbleToTransferSize(CFtpControlSocket::upload, beenWaiting); + else + currentBufferSize = BUFSIZE; + + if (m_bufferpos < currentBufferSize) + { + numread = ReadDataFromFile(m_pBuffer + m_bufferpos, static_cast(currentBufferSize - m_bufferpos)); + if (numread < 0 ) + { + return; + } + else if (!numread && !m_bufferpos) + { + CloseOnShutDownOrError(0); + return; + } + } + else + { + numread = 0; + } + + if (!currentBufferSize && !m_bufferpos) + { + // Not allowed to send yet, try later + TriggerEvent(FD_WRITE); + return; + } + + DebugAssert(numread>=0); + DebugAssert(m_bufferpos>=0); + numsent = Send(m_pBuffer, numread+m_bufferpos); + } + } } void CTransferSocket::UpdateStatusBar(bool forceUpdate) { - if (m_nTransferState != STATE_STARTED) - return; - - if (!forceUpdate) - { - //Don't flood the main window with messages - //Else performance would be really low - LARGE_INTEGER curtime; - LARGE_INTEGER freq; - QueryPerformanceFrequency(&freq); - QueryPerformanceCounter(&curtime); - if (((curtime.QuadPart-m_LastUpdateTime.QuadPart) < (freq.QuadPart/15) ) ) - return; - m_LastUpdateTime = curtime; - } - - //Update the statusbar - CTimeSpan timespan=CTime::GetCurrentTime()-m_StartTime; - int elapsed=(int)timespan.GetTotalSeconds(); - - t_ffam_transferstatus *status=new t_ffam_transferstatus; - status->bFileTransfer = m_nMode & (CSMODE_DOWNLOAD | CSMODE_UPLOAD); -#ifdef MPEXT - status->transfersize = m_transferdata.transfersize; -#endif - status->timeelapsed=elapsed; - status->bytes=m_transferdata.transfersize-m_transferdata.transferleft; - if (m_transferdata.transfersize>0 && !(m_nMode&CSMODE_LIST)) - { - double leftmodifier=static_cast(m_transferdata.transfersize-m_transferdata.nTransferStart-m_transferdata.transferleft); - leftmodifier*=100; - if (m_transferdata.transfersize-m_transferdata.nTransferStart) - leftmodifier /= (m_transferdata.transfersize-m_transferdata.nTransferStart); - else - leftmodifier = 1; - if (leftmodifier == 0) - leftmodifier = 1; - double leftmodifier2 = 100 - leftmodifier; - int left=static_cast((elapsed/leftmodifier)*leftmodifier2); - double percent=100*static_cast(m_transferdata.transfersize-m_transferdata.transferleft); - percent/=m_transferdata.transfersize; - status->percent=static_cast(percent); - if (status->percent>100) - status->percent=100; - - if (left < 0) - left = -1; - status->timeleft=left; - } - else - { - status->percent=-1; - status->timeleft=-1; - } - - int count = 0; - status->transferrate = 0; - - for ( int i = 0; i < SPEED_SECONDS; i++) - { - if ( m_UsedForTransfer[ i]) - { - status->transferrate += m_Transfered[ i]; - - count++; - } - } - - if ( count > 0) - status->transferrate = status->transferrate / count; - else if (m_Transfered[0]) - status->transferrate = m_Transfered[0]; - else - status->timeleft=-1; - - PostMessage(m_pOwner->m_pOwner->m_hOwnerWnd, m_pOwner->m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_TRANSFERSTATUS, 0), (LPARAM)status); -} + if (m_nTransferState != STATE_STARTED) + return; -void CTransferSocket::UpdateSendLed() -{ - //Don't flood the main window with messages - //Else performance would be really low - LARGE_INTEGER curtime; - LARGE_INTEGER freq; - QueryPerformanceFrequency(&freq); - QueryPerformanceCounter(&curtime); - static LARGE_INTEGER oldtime={0}; - if ( ( (curtime.QuadPart-oldtime.QuadPart) < (freq.QuadPart/15) ) ) - return; - oldtime=curtime; - - PostMessage(m_pOwner->m_pOwner->m_hOwnerWnd, m_pOwner->m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_SOCKETSTATUS, FZ_SOCKETSTATUS_SEND), 0); -} + if (!forceUpdate) + { + //Don't flood the main window with messages + //Else performance would be really low + LARGE_INTEGER curtime; + LARGE_INTEGER freq; + QueryPerformanceFrequency(&freq); + QueryPerformanceCounter(&curtime); + if (((curtime.QuadPart-m_LastUpdateTime.QuadPart) < (freq.QuadPart/15) ) ) + return; + m_LastUpdateTime = curtime; + } -void CTransferSocket::UpdateRecvLed() -{ - //Don't flood the main window with messages - //Else performance would be really low - LARGE_INTEGER curtime; - LARGE_INTEGER freq; - QueryPerformanceFrequency(&freq); - QueryPerformanceCounter(&curtime); - static LARGE_INTEGER oldtime={0}; - if ( ( (curtime.QuadPart-oldtime.QuadPart) < (freq.QuadPart/15) ) ) - return; - oldtime=curtime; - - PostMessage(m_pOwner->m_pOwner->m_hOwnerWnd, m_pOwner->m_pOwner->m_nReplyMessageID, FZ_MSG_MAKEMSG(FZ_MSG_SOCKETSTATUS, FZ_SOCKETSTATUS_RECV), 0); + //Update the statusbar + t_ffam_transferstatus *status=new t_ffam_transferstatus; + status->bFileTransfer = m_nMode & (CSMODE_DOWNLOAD | CSMODE_UPLOAD); + status->transfersize = m_transferdata.transfersize; + status->bytes=m_transferdata.transfersize-m_transferdata.transferleft; + + GetIntern()->PostMessage(FZ_MSG_MAKEMSG(FZ_MSG_TRANSFERSTATUS, 0), (LPARAM)status); } -BOOL CTransferSocket::Create( -#ifndef MPEXT_NO_SSL - BOOL bUseSsl -#endif - ) +BOOL CTransferSocket::Create(BOOL bUseSsl) { -#ifndef MPEXT_NO_SSL - if (bUseSsl) - m_pSslLayer = new CAsyncSslSocketLayer; -#endif + if (bUseSsl) + { + m_pSslLayer = new CAsyncSslSocketLayer; + + m_pSslLayer->SetClientCertificate(m_pOwner->m_CurrentServer.Certificate, m_pOwner->m_CurrentServer.PrivateKey); + } + + int nProxyType = GetOptionVal(OPTION_PROXYTYPE); + if (nProxyType != PROXYTYPE_NOPROXY) + { + USES_CONVERSION; + + m_pProxyLayer = new CAsyncProxySocketLayer; + if (nProxyType == PROXYTYPE_SOCKS4) + m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS4, T2CA(GetOption(OPTION_PROXYHOST)), GetOptionVal(OPTION_PROXYPORT)); + else if (nProxyType == PROXYTYPE_SOCKS4A) + m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS4A, T2CA(GetOption(OPTION_PROXYHOST)), GetOptionVal(OPTION_PROXYPORT)); + else if (nProxyType == PROXYTYPE_SOCKS5) + if (GetOptionVal(OPTION_PROXYUSELOGON)) + m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS5, T2CA(GetOption(OPTION_PROXYHOST)), + GetOptionVal(OPTION_PROXYPORT), + T2CA(GetOption(OPTION_PROXYUSER)), + T2CA(GetOption(OPTION_PROXYPASS))); + else + m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS5, T2CA(GetOption(OPTION_PROXYHOST)), + GetOptionVal(OPTION_PROXYPORT)); + else if (nProxyType == PROXYTYPE_HTTP11) + if (GetOptionVal(OPTION_PROXYUSELOGON)) + m_pProxyLayer->SetProxy(PROXYTYPE_HTTP11, T2CA(GetOption(OPTION_PROXYHOST)), GetOptionVal(OPTION_PROXYPORT), + T2CA(GetOption(OPTION_PROXYUSER)), + T2CA(GetOption(OPTION_PROXYPASS))); + else + m_pProxyLayer->SetProxy(PROXYTYPE_HTTP11, T2CA(GetOption(OPTION_PROXYHOST)), GetOptionVal(OPTION_PROXYPORT)); + else + DebugFail(); + AddLayer(m_pProxyLayer); + } + + if (!GetOptionVal(OPTION_LIMITPORTRANGE)) + { + if (!CAsyncSocketEx::Create(0, SOCK_STREAM, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, 0, GetFamily())) + return FALSE; + + return TRUE; + } + else + { + int min=GetOptionVal(OPTION_PORTRANGELOW); + int max=GetOptionVal(OPTION_PORTRANGEHIGH); + if (min>=max) + { + m_pOwner->ShowStatus(IDS_ERRORMSG_CANTCREATEDUETOPORTRANGE,FZ_LOG_ERROR); + return FALSE; + } + int startport=static_cast(min+((double)rand()*(max-min))/(RAND_MAX+1)); + int port=startport; + while (!CAsyncSocketEx::Create(port, SOCK_STREAM, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, 0, GetFamily())) + { + port++; + if (port>max) + port=min; + if (port==startport) + { + m_pOwner->ShowStatus(IDS_ERRORMSG_CANTCREATEDUETOPORTRANGE,FZ_LOG_ERROR); + return FALSE; + } + } + } - if (!m_pOwner->m_CurrentServer.fwbypass) - { - int nProxyType = COptions::GetOptionVal(OPTION_PROXYTYPE); - if (nProxyType != PROXYTYPE_NOPROXY) - { - USES_CONVERSION; - - m_pProxyLayer = new CAsyncProxySocketLayer; - if (nProxyType == PROXYTYPE_SOCKS4) - m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS4, T2CA(COptions::GetOption(OPTION_PROXYHOST)), COptions::GetOptionVal(OPTION_PROXYPORT)); - else if (nProxyType == PROXYTYPE_SOCKS4A) - m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS4A, T2CA(COptions::GetOption(OPTION_PROXYHOST)), COptions::GetOptionVal(OPTION_PROXYPORT)); - else if (nProxyType == PROXYTYPE_SOCKS5) - if (COptions::GetOptionVal(OPTION_PROXYUSELOGON)) - m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS5, T2CA(COptions::GetOption(OPTION_PROXYHOST)), - COptions::GetOptionVal(OPTION_PROXYPORT), - T2CA(COptions::GetOption(OPTION_PROXYUSER)), - T2CA(CCrypt::decrypt(COptions::GetOption(OPTION_PROXYPASS)))); - else - m_pProxyLayer->SetProxy(PROXYTYPE_SOCKS5, T2CA(COptions::GetOption(OPTION_PROXYHOST)), - COptions::GetOptionVal(OPTION_PROXYPORT)); - else if (nProxyType == PROXYTYPE_HTTP11) - if (COptions::GetOptionVal(OPTION_PROXYUSELOGON)) - m_pProxyLayer->SetProxy(PROXYTYPE_HTTP11, T2CA(COptions::GetOption(OPTION_PROXYHOST)), COptions::GetOptionVal(OPTION_PROXYPORT), - T2CA(COptions::GetOption(OPTION_PROXYUSER)), - T2CA(CCrypt::decrypt(COptions::GetOption(OPTION_PROXYPASS)))); - else - m_pProxyLayer->SetProxy(PROXYTYPE_HTTP11, T2CA(COptions::GetOption(OPTION_PROXYHOST)), COptions::GetOptionVal(OPTION_PROXYPORT)); - else - ASSERT(FALSE); - AddLayer(m_pProxyLayer); - } - } - - if (!COptions::GetOptionVal(OPTION_LIMITPORTRANGE)) - { - if (!CAsyncSocketEx::Create(0, SOCK_STREAM, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, 0, GetFamily())) - return FALSE; - - return TRUE; - } - else - { - int min=COptions::GetOptionVal(OPTION_PORTRANGELOW); - int max=COptions::GetOptionVal(OPTION_PORTRANGEHIGH); - if (min>=max) - { - m_pOwner->ShowStatus(IDS_ERRORMSG_CANTCREATEDUETOPORTRANGE,FZ_LOG_ERROR); - return FALSE; - } - int startport=static_cast(min+((double)rand()*(max-min))/(RAND_MAX+1)); - int port=startport; - while (!CAsyncSocketEx::Create(port, SOCK_STREAM, FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE, 0, GetFamily())) - { - port++; - if (port>max) - port=min; - if (port==startport) - { - m_pOwner->ShowStatus(IDS_ERRORMSG_CANTCREATEDUETOPORTRANGE,FZ_LOG_ERROR); - return FALSE; - } - } - } - - return TRUE; + return TRUE; } void CTransferSocket::Close() { - LogMessage(__FILE__, __LINE__, this,FZ_LOG_DEBUG, _T("Close()")); - m_bCheckTimeout = FALSE; - CAsyncSocketEx::Close(); + m_bCheckTimeout = FALSE; + CAsyncSocketEx::Close(); } int CTransferSocket::OnLayerCallback(std::list& callbacks) { - for (std::list::iterator iter = callbacks.begin(); iter != callbacks.end(); iter++) - { - if (iter->nType == LAYERCALLBACK_STATECHANGE) - { - if (CAsyncSocketEx::LogStateChange(iter->nParam1, iter->nParam2)) - { - const TCHAR * state2Desc = CAsyncSocketEx::GetStateDesc(iter->nParam2); - const TCHAR * state1Desc = CAsyncSocketEx::GetStateDesc(iter->nParam1); - if (iter->pLayer == m_pProxyLayer) - LogMessage(__FILE__, __LINE__, this, FZ_LOG_INFO, _T("Proxy layer changed state from %s to %s"), state2Desc, state1Desc); -#ifndef MPEXT_NO_SSL - else if (iter->pLayer == m_pSslLayer) - LogMessage(__FILE__, __LINE__, this, FZ_LOG_INFO, _T("TLS layer changed state from %s to %s"), state2Desc, state1Desc); -#endif + for (std::list::iterator iter = callbacks.begin(); iter != callbacks.end(); iter++) + { + if (iter->nType == LAYERCALLBACK_STATECHANGE) + { + if (CAsyncSocketEx::LogStateChange(iter->nParam1, iter->nParam2)) + { + const TCHAR * state2Desc = CAsyncSocketEx::GetStateDesc(iter->nParam2); + const TCHAR * state1Desc = CAsyncSocketEx::GetStateDesc(iter->nParam1); + if (iter->pLayer == m_pProxyLayer) + LogMessage(FZ_LOG_INFO, L"Proxy layer changed state from %s to %s", state2Desc, state1Desc); + else if (iter->pLayer == m_pSslLayer) + LogMessage(FZ_LOG_INFO, L"TLS layer changed state from %s to %s", state2Desc, state1Desc); #ifndef MPEXT_NO_GSS - else if (iter->pLayer == m_pGssLayer) - LogMessage(__FILE__, __LINE__, this, FZ_LOG_INFO, _T("GSS layer changed state from %s to %s"), state2Desc, state1Desc); -#endif - else - LogMessage(__FILE__, __LINE__, this, FZ_LOG_INFO, _T("Layer @ %d changed state from %s to %s"), iter->pLayer, state2Desc, state1Desc); - } - } - else if (iter->nType == LAYERCALLBACK_LAYERSPECIFIC) - { - if (iter->pLayer == m_pProxyLayer) - { - switch (iter->nParam1) - { - case PROXYERROR_NOERROR: - m_pOwner->ShowStatus(IDS_PROXY_CONNECTED, FZ_LOG_STATUS); - break; - case PROXYERROR_NOCONN: - m_pOwner->ShowStatus(IDS_ERRORMSG_PROXY_NOCONN, FZ_LOG_ERROR); - break; - case PROXYERROR_REQUESTFAILED: - m_pOwner->ShowStatus(IDS_ERRORMSG_PROXY_REQUESTFAILED, FZ_LOG_ERROR); - break; - case PROXYERROR_AUTHTYPEUNKNOWN: - m_pOwner->ShowStatus(IDS_ERRORMSG_PROXY_AUTHTYPEUNKNOWN, FZ_LOG_ERROR); - break; - case PROXYERROR_AUTHFAILED: - m_pOwner->ShowStatus(IDS_ERRORMSG_PROXY_AUTHFAILED, FZ_LOG_ERROR); - break; - case PROXYERROR_AUTHNOLOGON: - m_pOwner->ShowStatus(IDS_ERRORMSG_PROXY_AUTHNOLOGON, FZ_LOG_ERROR); - break; - case PROXYERROR_CANTRESOLVEHOST: - m_pOwner->ShowStatus(IDS_ERRORMSG_PROXY_CANTRESOLVEHOST, FZ_LOG_ERROR); - break; - default: - LogMessage(__FILE__, __LINE__, this, FZ_LOG_WARNING, _T("Unknown proxy error")); - } - } -#ifndef MPEXT_NO_SSL - else if (iter->pLayer == m_pSslLayer) - { - switch (iter->nParam1) - { - case SSL_INFO: - switch(iter->nParam2) - { - case SSL_INFO_SHUTDOWNCOMPLETE: - CloseAndEnsureSendClose(0); - break; - case SSL_INFO_ESTABLISHED: - m_pOwner->ShowStatus(IDS_STATUSMSG_SSLESTABLISHEDTRANSFER, FZ_LOG_STATUS); - TriggerEvent(FD_FORCEREAD); - break; - } - break; - case SSL_FAILURE: - switch (iter->nParam2) - { - case SSL_FAILURE_ESTABLISH: - m_pOwner->ShowStatus(IDS_ERRORMSG_CANTESTABLISHSSLCONNECTION, FZ_LOG_ERROR); - break; - case SSL_FAILURE_INITSSL: - m_pOwner->ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR); - break; - } - EnsureSendClose(CSMODE_TRANSFERERROR); - break; - case SSL_VERIFY_CERT: - t_SslCertData data; - LPTSTR CertError = NULL; - if (m_pSslLayer->GetPeerCertificateData(data, CertError)) - m_pSslLayer->SetNotifyReply(data.priv_data, SSL_VERIFY_CERT, 1); - else - { - CString str; - str.Format(TLS_CERT_DECODE_ERROR, CertError); - m_pOwner->ShowStatus(str, FZ_LOG_ERROR); - CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); - } - break; - } - } + else if (iter->pLayer == m_pGssLayer) + LogMessage(FZ_LOG_INFO, L"GSS layer changed state from %s to %s", state2Desc, state1Desc); #endif + else + LogMessage(FZ_LOG_INFO, L"Layer @ %d changed state from %s to %s", iter->pLayer, state2Desc, state1Desc); + } + } + else if (iter->nType == LAYERCALLBACK_LAYERSPECIFIC) + { + if (iter->pLayer == m_pProxyLayer) + { + switch (iter->nParam1) + { + case PROXYERROR_NOERROR: + m_pOwner->ShowStatus(IDS_PROXY_CONNECTED, FZ_LOG_STATUS); + break; + case PROXYERROR_NOCONN: + m_pOwner->ShowStatus(IDS_ERRORMSG_PROXY_NOCONN, FZ_LOG_ERROR); + break; + case PROXYERROR_REQUESTFAILED: + m_pOwner->ShowStatus(IDS_ERRORMSG_PROXY_REQUESTFAILED, FZ_LOG_ERROR); + break; + case PROXYERROR_AUTHTYPEUNKNOWN: + m_pOwner->ShowStatus(IDS_ERRORMSG_PROXY_AUTHTYPEUNKNOWN, FZ_LOG_ERROR); + break; + case PROXYERROR_AUTHFAILED: + m_pOwner->ShowStatus(IDS_ERRORMSG_PROXY_AUTHFAILED, FZ_LOG_ERROR); + break; + case PROXYERROR_AUTHNOLOGON: + m_pOwner->ShowStatus(IDS_ERRORMSG_PROXY_AUTHNOLOGON, FZ_LOG_ERROR); + break; + case PROXYERROR_CANTRESOLVEHOST: + m_pOwner->ShowStatus(IDS_ERRORMSG_PROXY_CANTRESOLVEHOST, FZ_LOG_ERROR); + break; + default: + LogMessage(FZ_LOG_WARNING, L"Unknown proxy error"); + } + } + else if (iter->pLayer == m_pSslLayer) + { + switch (iter->nParam1) + { + case SSL_INFO: + switch(iter->nParam2) + { + case SSL_INFO_SHUTDOWNCOMPLETE: + CloseAndEnsureSendClose(0); + break; + case SSL_INFO_ESTABLISHED: + m_pOwner->ShowStatus(IDS_STATUSMSG_SSLESTABLISHEDTRANSFER, FZ_LOG_STATUS); + TriggerEvent(FD_FORCEREAD); + break; + } + break; + case SSL_FAILURE: + switch (iter->nParam2) + { + case SSL_FAILURE_ESTABLISH: + m_pOwner->ShowStatus(IDS_ERRORMSG_CANTESTABLISHSSLCONNECTION, FZ_LOG_ERROR); + break; + case SSL_FAILURE_INITSSL: + m_pOwner->ShowStatus(IDS_ERRORMSG_CANTINITSSL, FZ_LOG_ERROR); + break; + } + EnsureSendClose(CSMODE_TRANSFERERROR); + break; + case SSL_VERIFY_CERT: + t_SslCertData data; + LPTSTR CertError = NULL; + if (m_pSslLayer->GetPeerCertificateData(data, CertError)) + m_pSslLayer->SetNotifyReply(data.priv_data, SSL_VERIFY_CERT, 1); + else + { + CString str; + str.Format(TLS_CERT_DECODE_ERROR, CertError); + m_pOwner->ShowStatus(str, FZ_LOG_ERROR); + CloseAndEnsureSendClose(CSMODE_TRANSFERERROR); + } + break; + } + } #ifndef MPEXT_NO_GSS - else if (iter->pLayer == m_pGssLayer) - { - USES_CONVERSION; - switch (iter->nParam1) - { - case GSS_INFO: - LogMessageRaw(FZ_LOG_INFO, A2CT(iter->str)); - break; - case GSS_ERROR: - LogMessageRaw(FZ_LOG_APIERROR, A2CT(iter->str)); - break; - case GSS_SHUTDOWN_COMPLETE: - CloseAndEnsureSendClose(0); - break; - } - } + else if (iter->pLayer == m_pGssLayer) + { + USES_CONVERSION; + switch (iter->nParam1) + { + case GSS_INFO: + LogMessageRaw(FZ_LOG_INFO, A2CT(iter->str)); + break; + case GSS_ERROR: + LogMessageRaw(FZ_LOG_APIERROR, A2CT(iter->str)); + break; + case GSS_SHUTDOWN_COMPLETE: + CloseAndEnsureSendClose(0); + break; + } + } #endif - } - delete [] iter->str; - } - return 0; -} - -void CTransferSocket::Transfered(int count, CTime time) -{ - CTimeSpan ts = time - m_TransferedFirst; - int diff = (int)ts.GetTotalSeconds(); - if (diff < 0) - diff = 0; - - if ( diff >= SPEED_SECONDS) - { - int move = diff - SPEED_SECONDS + 1; - int start = SPEED_SECONDS - move; - - if ( start <= 0) - start = 0; - else - { - for ( int i = 0; i < SPEED_SECONDS - move; i++) - { - m_Transfered[ i] = m_Transfered[ i + move]; - m_UsedForTransfer[ i] = m_UsedForTransfer[ i + move]; - } - } - - for ( int i = start; i < SPEED_SECONDS; i++) - { - m_Transfered[ i] = 0; - m_UsedForTransfer[ i] = false; - } - - if (move >= SPEED_SECONDS) - { - m_TransferedFirst = time; - diff = 0; - } - else - { - m_TransferedFirst += CTimeSpan( move); - ts = time - m_TransferedFirst; - diff = (int)(ts.GetTotalSeconds() % 60); - } - } - - m_Transfered[ diff] += count; - - for ( int i = 0; i < diff - 1; i++) - m_UsedForTransfer[ i] = true; + } + delete [] iter->str; + } + return 0; } #ifndef MPEXT_NO_GSS void CTransferSocket::UseGSS(CAsyncGssSocketLayer *pGssLayer) { - m_pGssLayer = new CAsyncGssSocketLayer; - m_pGssLayer->InitTransferChannel(pGssLayer); + m_pGssLayer = new CAsyncGssSocketLayer; + m_pGssLayer->InitTransferChannel(pGssLayer); } #endif #ifndef MPEXT_NO_ZLIB bool CTransferSocket::InitZlib(int level) { - int res; - if (m_nMode & CSMODE_UPLOAD) - res = deflateInit2(&m_zlibStream, level, Z_DEFLATED, 15, 8, Z_DEFAULT_STRATEGY); - else - res = inflateInit2(&m_zlibStream, 15); + int res; + if (m_nMode & CSMODE_UPLOAD) + res = deflateInit2(&m_zlibStream, level, Z_DEFLATED, 15, 8, Z_DEFAULT_STRATEGY); + else + res = inflateInit2(&m_zlibStream, 15); - if (res == Z_OK) - m_useZlib = true; + if (res == Z_OK) + m_useZlib = true; - return res == Z_OK; + return res == Z_OK; } #endif int CTransferSocket::ReadDataFromFile(char *buffer, int len) { - TRY - { - // Comparing to Filezilla 2, we do not do any translation locally, - // leaving it onto the server (what Filezilla 3 seems to do too) - const char Bom[3] = "\xEF\xBB\xBF"; - int read = m_pFile->Read(buffer, len); - if (COptions::GetOptionVal(OPTION_MPEXT_REMOVE_BOM) && - m_transferdata.bType && (read >= sizeof(Bom)) && (memcmp(buffer, Bom, sizeof(Bom)) == 0)) - { - memcpy(buffer, buffer + sizeof(Bom), read - sizeof(Bom)); - read -= sizeof(Bom); - int read2 = m_pFile->Read(buffer + read, sizeof(Bom)); - if (read2 > 0) - { - read += read2; - } - } - return read; - } - CATCH_ALL(e) - { - TCHAR error[BUFSIZE]; - if (e->GetErrorMessage(error, BUFSIZE)) - m_pOwner->ShowStatus(error, FZ_LOG_ERROR); - CloseOnShutDownOrError(CSMODE_TRANSFERERROR); - return -1; - } - END_CATCH_ALL; + TRY + { + // Comparing to Filezilla 2, we do not do any translation locally, + // leaving it onto the server (what Filezilla 3 seems to do too) + const char Bom[3] = "\xEF\xBB\xBF"; + int read = m_pFile->Read(buffer, len); + if (GetOptionVal(OPTION_MPEXT_REMOVE_BOM) && + m_transferdata.bType && (read >= sizeof(Bom)) && (memcmp(buffer, Bom, sizeof(Bom)) == 0)) + { + memcpy(buffer, buffer + sizeof(Bom), read - sizeof(Bom)); + read -= sizeof(Bom); + int read2 = m_pFile->Read(buffer + read, sizeof(Bom)); + if (read2 > 0) + { + read += read2; + } + } + return read; + } + CATCH_ALL(e) + { + TCHAR error[BUFSIZE]; + if (e->GetErrorMessage(error, BUFSIZE)) + m_pOwner->ShowStatus(error, FZ_LOG_ERROR); + CloseOnShutDownOrError(CSMODE_TRANSFERERROR); + return -1; + } + END_CATCH_ALL; } -void CTransferSocket::LogSocketMessage(int nMessageType, LPCTSTR pMsgFormat) +void CTransferSocket::LogSocketMessageRaw(int nMessageType, LPCTSTR pMsg) { - LogMessage(nMessageType, pMsgFormat); + LogMessageRaw(nMessageType, pMsg); } void CTransferSocket::EnsureSendClose(int Mode) @@ -1395,4 +1163,3 @@ void CTransferSocket::LogError(int Error) LocalFree(Buffer); } } - diff --git a/source/filezilla/TransferSocket.h b/source/filezilla/TransferSocket.h index 0c834e16..bc4dcc2b 100644 --- a/source/filezilla/TransferSocket.h +++ b/source/filezilla/TransferSocket.h @@ -1,153 +1,93 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -#if !defined(AFX_TRANSFERSOCKET_H__3F95A3A8_478E_45D4_BFD5_6102B42E12DA__INCLUDED_) -#define AFX_TRANSFERSOCKET_H__3F95A3A8_478E_45D4_BFD5_6102B42E12DA__INCLUDED_ - -#include "FtpListResult.h" // Hinzugefügt von der Klassenansicht -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 -// TransferSocket.h : Header-Datei -// - -///////////////////////////////////////////////////////////////////////////// -// Befehlsziel CTransferSocket - -#include "controlsocket.h" +//--------------------------------------------------------------------------- +#ifndef TransferSocketH +#define TransferSocketH +//--------------------------------------------------------------------------- +#include "FtpListResult.h" +//--------------------------------------------------------------------------- +#include "FtpControlSocket.h" #include "ApiLog.h" - +//--------------------------------------------------------------------------- #ifndef MPEXT_NO_ZLIB #include #endif - +//--------------------------------------------------------------------------- class CFtpControlSocket; class CAsyncProxySocketLayer; -#ifndef MPEXT_NO_SSL class CAsyncSslSocketLayer; -#endif #ifndef MPEXT_NO_GSS class CAsyncGssSocketLayer; #endif - -#define SPEED_SECONDS 60 - +//--------------------------------------------------------------------------- class CTransferSocket : public CAsyncSocketEx, public CApiLog { -// Attribute public: - CFtpListResult *m_pListResult; + CFtpListResult * m_pListResult; -// Operationen public: - CTransferSocket(CFtpControlSocket *pOwner, int nMode); - virtual ~CTransferSocket(); + CTransferSocket(CFtpControlSocket * pOwner, int nMode); + virtual ~CTransferSocket(); -// Überschreibungen public: - int m_nInternalMessageID; - virtual void Close(); - virtual BOOL Create( -#ifndef MPEXT_NO_SSL - BOOL bUseSsl -#endif - ); - BOOL m_bListening; - CFile *m_pFile; - t_transferdata m_transferdata; - void SetActive(); - int CheckForTimeout(int delay); + int m_nInternalMessageID; + virtual void Close(); + virtual BOOL Create(BOOL bUseSsl); + BOOL m_bListening; + CFile * m_pFile; + t_transferdata m_transferdata; + void SetActive(); + int CheckForTimeout(int delay); #ifndef MPEXT_NO_GSS - void UseGSS(CAsyncGssSocketLayer *pGssLayer); + void UseGSS(CAsyncGssSocketLayer * pGssLayer); #endif #ifndef MPEXT_NO_ZLIB - bool InitZlib(int level); + bool InitZlib(int level); #endif - // Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen - //{{AFX_VIRTUAL(CTransferSocket) - public: - virtual void OnReceive(int nErrorCode); - virtual void OnAccept(int nErrorCode); - virtual void OnConnect(int nErrorCode); - virtual void OnClose(int nErrorCode); - virtual void OnSend(int nErrorCode); - //}}AFX_VIRTUAL - // Generierte Nachrichtenzuordnungsfunktionen - //{{AFX_MSG(CTransferSocket) - // HINWEIS - Der Klassen-Assistent fügt hier Member-Funktionen ein und entfernt diese. - //}}AFX_MSG +public: + virtual void OnReceive(int nErrorCode); + virtual void OnAccept(int nErrorCode); + virtual void OnConnect(int nErrorCode); + virtual void OnClose(int nErrorCode); + virtual void OnSend(int nErrorCode); -// Implementierung protected: - - virtual int OnLayerCallback(std::list& callbacks); - int ReadDataFromFile(char *buffer, int len); - virtual void LogSocketMessage(int nMessageType, LPCTSTR pMsgFormat); - virtual void ConfigureSocket(); - - CFtpControlSocket *m_pOwner; - CAsyncProxySocketLayer* m_pProxyLayer; -#ifndef MPEXT_NO_SSL - CAsyncSslSocketLayer* m_pSslLayer; -#endif + virtual int OnLayerCallback(std::list & callbacks); + int ReadDataFromFile(char * buffer, int len); + virtual void LogSocketMessageRaw(int nMessageType, LPCTSTR pMsg); + virtual void ConfigureSocket(); + + CFtpControlSocket * m_pOwner; + CAsyncProxySocketLayer * m_pProxyLayer; + CAsyncSslSocketLayer * m_pSslLayer; #ifndef MPEXT_NO_GSS - CAsyncGssSocketLayer* m_pGssLayer; + CAsyncGssSocketLayer * m_pGssLayer; #endif - void UpdateRecvLed(); - void UpdateSendLed(); - void UpdateStatusBar(bool forceUpdate); - BOOL m_bSentClose; - int m_bufferpos; - char *m_pBuffer; + void UpdateStatusBar(bool forceUpdate); + BOOL m_bSentClose; + int m_bufferpos; + char * m_pBuffer; #ifndef MPEXT_NO_ZLIB - char *m_pBuffer2; // Used by zlib transfers + char * m_pBuffer2; // Used by zlib transfers #endif - BOOL m_bCheckTimeout; - CTime m_LastActiveTime; - BOOL m_bOK; - CTime m_StartTime; - BOOL m_nTransferState; - int m_nMode; - int m_nNotifyWaiting; - BOOL m_bShutDown; + BOOL m_bCheckTimeout; + CTime m_LastActiveTime; + int m_nTransferState; + int m_nMode; + int m_nNotifyWaiting; + BOOL m_bShutDown; - void Transfered(int count, CTime time); - void CloseAndEnsureSendClose(int Mode); - void EnsureSendClose(int Mode); - void CloseOnShutDownOrError(int Mode); - void LogError(int Error); - void SetBuffers(); + void CloseAndEnsureSendClose(int Mode); + void EnsureSendClose(int Mode); + void CloseOnShutDownOrError(int Mode); + void LogError(int Error); + void SetBuffers(); - DWORD m_Transfered[SPEED_SECONDS]; - bool m_UsedForTransfer[SPEED_SECONDS]; - CTime m_TransferedFirst; - LARGE_INTEGER m_LastUpdateTime; + LARGE_INTEGER m_LastUpdateTime; #ifndef MPEXT_NO_ZLIB - z_stream m_zlibStream; - bool m_useZlib; + z_stream m_zlibStream; + bool m_useZlib; #endif }; - -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein. - -#endif // AFX_TRANSFERSOCKET_H__3F95A3A8_478E_45D4_BFD5_6102B42E12DA__INCLUDED_ +//--------------------------------------------------------------------------- +#endif // TransferSocketH diff --git a/source/filezilla/config.h b/source/filezilla/config.h deleted file mode 100644 index aa7d9df5..00000000 --- a/source/filezilla/config.h +++ /dev/null @@ -1,31 +0,0 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - - - -/* Check if the Platform SDK is installed. Especially in VC6 some components like - * the theme api and debugging tools api aren't installed by default, The Platform SDK - * includes the required headers. - * Unfortunately there is no safe way to tell whether the platform SDK is installed. - * One way to guess it is over the INVALID_SET_FILE_POINTER define, it at least is not - * defined in the header files of VC6, but it is defined in the Platform SDK. - */ -#ifndef INVALID_SET_FILE_POINTER -#error Please download and install the latest MS Platform SDK from http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ -#endif diff --git a/source/filezilla/license-filezilla.txt b/source/filezilla/license-filezilla.txt new file mode 100644 index 00000000..d4ceadc8 --- /dev/null +++ b/source/filezilla/license-filezilla.txt @@ -0,0 +1,17 @@ +This code is based on FileZilla - a Windows ftp client + +Copyright (C) 2002-2004 - Tim Kosse + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. diff --git a/source/filezilla/misc/CBase64Coding.cpp b/source/filezilla/misc/CBase64Coding.cpp deleted file mode 100644 index f2f59db6..00000000 --- a/source/filezilla/misc/CBase64Coding.cpp +++ /dev/null @@ -1,273 +0,0 @@ -#include "stdafx.h" -#include "CBase64Coding.hpp" -#pragma hdrstop - -#ifdef MPEXT -#pragma warn -inl -#endif - -#define CARRIAGE_RETURN (13) -#define LINE_FEED (10) - -/* -** Author: Samuel R. Blackburn -** Internet: wfc@pobox.com -** -** You can use it any way you like as long as you don't try to sell it. -** -** Any attempt to sell WFC in source code form must have the permission -** of the original author. You can produce commercial executables with -** WFC but you can't sell WFC. -** -** Copyright, 2000, Samuel R. Blackburn -** -** Workfile: CBase64Coding.cpp -** Revision: 1.3 -** Modtime: 5/12/00 3:39p -** Reuse Tracing Code: 1 -*/ - -//Modified for use with CAsyncProxySocket, removed tracing code - -#if defined( _DEBUG ) && ! defined( WFC_STL ) -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#define new DEBUG_NEW -#endif // _DEBUG - -#define END_OF_BASE64_ENCODED_DATA ('=') -#define BASE64_END_OF_BUFFER (0xFD) -#define BASE64_IGNORABLE_CHARACTER (0xFE) -#define BASE64_UNKNOWN_VALUE (0xFF) -#define BASE64_NUMBER_OF_CHARACTERS_PER_LINE (72) - -static inline BYTE __get_character( const BYTE * buffer, const BYTE * decoder_table, int& index, int size_of_buffer ) -{ - BYTE return_value = 0; - - do - { - if ( index >= size_of_buffer ) - { - return( BASE64_END_OF_BUFFER ); - } - - return_value = buffer[ index ]; - index++; - } - while( return_value != END_OF_BASE64_ENCODED_DATA && - decoder_table[ return_value ] == BASE64_IGNORABLE_CHARACTER ); - - return( return_value ); -} - -CBase64Coding::CBase64Coding() -{ -} - -CBase64Coding::~CBase64Coding() -{ -} - -BOOL CBase64Coding::Encode( const char * source, int len, char * destination_string ) -{ - - const char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - - int loop_index = 0; - int number_of_bytes_to_encode = len; - - BYTE byte_to_add = 0; - BYTE byte_1 = 0; - BYTE byte_2 = 0; - BYTE byte_3 = 0; - - DWORD number_of_bytes_encoded = (DWORD) ( (double) number_of_bytes_to_encode / (double) 0.75 ) + 1; - - // Now add in the CR/LF pairs, each line is truncated at 72 characters - - // 2000-05-12 - // Thanks go to Ilia Golubev (ilia@varicom.co.il) for finding a bug here. - // I was using number_of_bytes_to_encode rather than number_of_bytes_encoded. - - number_of_bytes_encoded += (DWORD)( ( ( number_of_bytes_encoded / BASE64_NUMBER_OF_CHARACTERS_PER_LINE ) + 1 ) * 2 ); - - char * destination = destination_string; - - number_of_bytes_encoded = 0; - - while( loop_index < number_of_bytes_to_encode ) - { - // Output the first byte - - byte_1 = source[ loop_index ]; - byte_to_add = alphabet[ ( byte_1 >> 2 ) ]; - - destination[number_of_bytes_encoded ] = static_cast( byte_to_add ); - number_of_bytes_encoded++; - - loop_index++; - - if ( loop_index >= number_of_bytes_to_encode ) - { - // We're at the end of the data to encode - - byte_2 = 0; - byte_to_add = alphabet[ ( ( ( byte_1 & 0x03 ) << 4 ) | ( ( byte_2 & 0xF0 ) >> 4 ) ) ]; - - destination[ number_of_bytes_encoded ] = byte_to_add; - number_of_bytes_encoded++; - - destination[ number_of_bytes_encoded ] = END_OF_BASE64_ENCODED_DATA; - number_of_bytes_encoded++; - - destination[ number_of_bytes_encoded ] = END_OF_BASE64_ENCODED_DATA; - - // 1999-09-01 - // Thanks go to Yurong Lin (ylin@dial.pipex.com) for finding a bug here. - // We must NULL terminate the string before letting CString have the buffer back. - - destination[ number_of_bytes_encoded + 1 ] = 0; - - return( TRUE ); - } - else - { - byte_2 = source[ loop_index ]; - } - - byte_to_add = alphabet[ ( ( ( byte_1 & 0x03 ) << 4 ) | ( ( byte_2 & 0xF0 ) >> 4 ) ) ]; - - destination[ number_of_bytes_encoded ] = byte_to_add; - number_of_bytes_encoded++; - - loop_index++; - - if ( loop_index >= number_of_bytes_to_encode ) - { - // We ran out of bytes, we need to add the last half of byte_2 and pad - byte_3 = 0; - - byte_to_add = alphabet[ ( ( ( byte_2 & 0x0F ) << 2 ) | ( ( byte_3 & 0xC0 ) >> 6 ) ) ]; - - destination[ number_of_bytes_encoded ] = byte_to_add; - number_of_bytes_encoded++; - - destination[ number_of_bytes_encoded ] = END_OF_BASE64_ENCODED_DATA; - - // 1999-09-01 - // Thanks go to Yurong Lin (ylin@dial.pipex.com) for finding a bug here. - // We must NULL terminate the string before letting CString have the buffer back. - - destination[ number_of_bytes_encoded + 1 ] = 0; - - return( TRUE ); - } - else - { - byte_3 = source[ loop_index ]; - } - - loop_index++; - - byte_to_add = alphabet[ ( ( ( byte_2 & 0x0F ) << 2 ) | ( ( byte_3 & 0xC0 ) >> 6 ) ) ]; - - destination[ number_of_bytes_encoded ] = byte_to_add; - number_of_bytes_encoded++; - - byte_to_add = alphabet[ ( byte_3 & 0x3F ) ]; - - destination[ number_of_bytes_encoded ] = byte_to_add; - number_of_bytes_encoded++; - - if ( ( number_of_bytes_encoded % BASE64_NUMBER_OF_CHARACTERS_PER_LINE ) == 0 ) - { - destination[ number_of_bytes_encoded ] = CARRIAGE_RETURN; - number_of_bytes_encoded++; - - destination[ number_of_bytes_encoded ] = LINE_FEED; - number_of_bytes_encoded++; - } - } - - // 1999-09-01 - // Thanks go to Yurong Lin (ylin@dial.pipex.com) for finding a bug here. - // We must NULL terminate the string before letting CString have the buffer back. - - destination[ number_of_bytes_encoded ] = 0; - - return( TRUE ); -} - -// End of source - -#if 0 - - - -WFC - CBase64Coding - - - - - - -

CBase64Coding

- -Revision: 1.3

- -

Description

- -This class gives you the ability to encode/decode data using base64. - -

Constructors

- -
- -
CBase64Coding()
-Constructs this object. - -
- -

Methods

- -
- -
BOOL Decode( const CByteArray& source, CByteArray& destination )
-BOOL Decode( const CString&    source, CByteArray& destination )
-This method takes base64 encoded text and produces the bytes. It decodes -the base64 encoding. - -
BOOL Encode( const CByteArray& source, CByteArray& destination )
-BOOL Encode( const CByteArray& source, CString&    destination )
-This method takes bytes and turns them into base64 text. - -
- -

Example

-
#include <wfc.h>
-
-int _tmain( int number_of_command_line_arguments, LPCTSTR command_line_arguments[] )
-{
-   WFCTRACEINIT( TEXT( "_tmain()" ) );
-
-   CByteArray bytes;
-
-   get_file_contents( command_line_arguments[ 0 ], bytes );
-
-   CBase64Coding encoder;
-
-   CString encoded_data;
-
-   if ( encoder.Encode( bytes, encoded_data ) != FALSE )
-   {
-      _tprintf( TEXT( "%s\n", (LPCTSTR) encoded_data );
-   }
-}
-
Copyright, 2000, Samuel R. Blackburn
-$Workfile: CBase64Coding.cpp $
-$Modtime: 5/12/00 3:39p $ - - - -#endif diff --git a/source/filezilla/misc/CBase64Coding.hpp b/source/filezilla/misc/CBase64Coding.hpp deleted file mode 100644 index 99529d40..00000000 --- a/source/filezilla/misc/CBase64Coding.hpp +++ /dev/null @@ -1,48 +0,0 @@ -#if ! defined( BASE_64_CODING_CLASS_HEADER ) - -/* -** Author: Samuel R. Blackburn -** Internet: wfc@pobox.com -** -** You can use it any way you like as long as you don't try to sell it. -** -** Any attempt to sell WFC in source code form must have the permission -** of the original author. You can produce commercial executables with -** WFC but you can't sell WFC. -** -** Copyright, 2000, Samuel R. Blackburn -** -** Workfile: CBase64Coding.hpp -** Revision: 1.2 -** Modtime: 1/04/00 4:39a -*/ - -#define BASE_64_CODING_CLASS_HEADER - -class CBase64Coding -{ - private: - - // Don't allow canonical behavior (i.e. don't allow this class - // to be passed by value) - - CBase64Coding( const CBase64Coding& ) {}; - CBase64Coding& operator=( const CBase64Coding& ) { return( *this ); }; - - public: - - // Construction - - CBase64Coding(); - - /* - ** Destructor should be virtual according to MSJ article in Sept 1992 - ** "Do More with Less Code:..." - */ - - virtual ~CBase64Coding(); - - virtual BOOL Encode( const char * source, int len, char * destination ); -}; - -#endif // BASE_64_CODING_CLASS_HEADER diff --git a/source/filezilla/misc/Fzutf8.cpp b/source/filezilla/misc/Fzutf8.cpp deleted file mode 100644 index 1e7d6a05..00000000 --- a/source/filezilla/misc/Fzutf8.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// MP: Renamed to avoid clashes with utf8.c from PuTTY -#include "stdafx.h" -#include "utf8.h" - -// Check for valid UTF-8 string. Code taken from the examples in RFC 2640 - -int utf8_valid(const unsigned char *buf, unsigned int len) -{ - const unsigned char *endbuf = buf + len; - unsigned char byte2mask=0x00, c; - int trailing = 0; // trailing (continuation) bytes to follow - - while (buf != endbuf) - { - c = *buf++; - if (trailing) - if ((c&0xC0) == 0x80) // Does trailing byte follow UTF-8 format? - {if (byte2mask) // Need to check 2nd byte for proper range? - if (c&byte2mask) // Are appropriate bits set? - byte2mask=0x00; - else - return 0; - trailing--; } - else - return 0; - else - if ((c&0x80) == 0x00) continue; // valid 1 byte UTF-8 - else if ((c&0xE0) == 0xC0) // valid 2 byte UTF-8 - if (c&0x1E) // Is UTF-8 byte in - // proper range? - trailing =1; - else - return 0; - else if ((c&0xF0) == 0xE0) // valid 3 byte UTF-8 - {if (!(c&0x0F)) // Is UTF-8 byte in - // proper range? - byte2mask=0x20; // If not set mask - // to check next byte - trailing = 2;} - else if ((c&0xF8) == 0xF0) // valid 4 byte UTF-8 - {if (!(c&0x07)) // Is UTF-8 byte in - // proper range? - - byte2mask=0x30; // If not set mask - // to check next byte - trailing = 3;} - else if ((c&0xFC) == 0xF8) // valid 5 byte UTF-8 - {if (!(c&0x03)) // Is UTF-8 byte in - // proper range? - byte2mask=0x38; // If not set mask - // to check next byte - trailing = 4;} - else if ((c&0xFE) == 0xFC) // valid 6 byte UTF-8 - {if (!(c&0x01)) // Is UTF-8 byte in - // proper range? - byte2mask=0x3C; // If not set mask - // to check next byte - trailing = 5;} - else return 0; - } - return trailing == 0; -} \ No newline at end of file diff --git a/source/filezilla/misc/htmlhelp.h b/source/filezilla/misc/htmlhelp.h deleted file mode 100644 index e69de29b..00000000 diff --git a/source/filezilla/misc/utf8.h b/source/filezilla/misc/utf8.h deleted file mode 100644 index 49ec1115..00000000 --- a/source/filezilla/misc/utf8.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef __UTF8_H__ -#define __UTF8_H__ - -// Check for valid UTF-8 string. Code taken from the examples in RFC 2640 -int utf8_valid(const unsigned char *buf, unsigned int len); - -#endif //__UTF8_H__ diff --git a/source/filezilla/stdafx.h b/source/filezilla/stdafx.h index 23173497..20397513 100644 --- a/source/filezilla/stdafx.h +++ b/source/filezilla/stdafx.h @@ -4,20 +4,10 @@ //--------------------------------------------------------------------------- #define _int64 __int64 //--------------------------------------------------------------------------- -#define MPEXT #define MPEXT_NO_ZLIB #define MPEXT_NO_GSS -#define MPEXT_NO_SFTP -#define MPEXT_NO_IDENT -#define MPEXT_NO_CACHE -#define MPEXT_NO_SPEED_LIM_RULES #define _AFX_ENABLE_INLINES #define _AFX_NOFORCE_LIBS -#define _MPT(T) _T(T) -#define _MPAT(T) T -//--------------------------------------------------------------------------- -#define GetOption(OPTION) GetInstanceOption(this->m_pApiLogParent, OPTION) -#define GetOptionVal(OPTION) GetInstanceOptionVal(this->m_pApiLogParent, OPTION) //--------------------------------------------------------------------------- #define LENOF(x) ( (sizeof((x))) / (sizeof(*(x)))) //--------------------------------------------------------------------------- @@ -25,7 +15,7 @@ #include "wtypes.h" #include -//STL includes +// STL includes #include #include #include @@ -36,12 +26,17 @@ class CFileFix; #define CFile CFileFix //--------------------------------------------------------------------------- +#pragma hdrstop +//--------------------------------------------------------------------------- +#include +// these create conflict with afxwin.h +#undef BEGIN_MESSAGE_MAP +#undef END_MESSAGE_MAP +//--------------------------------------------------------------------------- #include "MFC64bitFix.h" #include #include #include -#include -#include #include #include //--------------------------------------------------------------------------- @@ -50,36 +45,12 @@ class CFileFix; #include //--------------------------------------------------------------------------- #define _strlwr strlwr -#define USEDPARAM(p) ((p) == (p)) -//--------------------------------------------------------------------------- -#ifdef _DEBUG -#ifndef ASSERT -#error ASSERT should be defined here by afx.h -#endif -#undef ASSERT -// Copy of afx.h ASSERT with TRACE added. -// Better would be to hook afxAssertFailedLine -#define ASSERT(f) \ - do \ - { \ - if (!(f)) \ - { \ - if (AfxAssertFailedLine(THIS_FILE, __LINE__)) \ - { \ - AfxDebugBreak(); \ - } \ - } \ - } while (0) -#endif //--------------------------------------------------------------------------- -const int FILEEXISTS_ASK = -1; const int FILEEXISTS_OVERWRITE = 0; -const int FILEEXISTS_OVERWRITEIFNEWER = 1; -const int FILEEXISTS_RESUME = 2; -const int FILEEXISTS_RENAME = 3; -const int FILEEXISTS_SKIP = 4; -const int FILEEXISTS_RESUME_ASKONFAIL = 5; // Used by queue for automatic resuming. If APPE failes, ask what to do instead. -const int FILEEXISTS_COMPLETE = 6; +const int FILEEXISTS_RESUME = 1; +const int FILEEXISTS_RENAME = 2; +const int FILEEXISTS_SKIP = 3; +const int FILEEXISTS_COMPLETE = 4; //--------------------------------------------------------------------------- class t_ffam_statusmessage { @@ -92,13 +63,7 @@ class t_ffam_statusmessage typedef struct { __int64 bytes; -#ifdef MPEXT __int64 transfersize; -#endif - int percent; - int timeelapsed; - int timeleft; - int transferrate; BOOL bFileTransfer; } t_ffam_transferstatus; //--------------------------------------------------------------------------- @@ -111,15 +76,15 @@ class CFileFix : public CFile UINT Read(void * lpBuf, UINT nCount) { ASSERT_VALID(this); - ASSERT(m_hFile != (UINT)hFileNull); + DebugAssert(m_hFile != (UINT)hFileNull); if (nCount == 0) { return 0; // avoid Win32 "null-read" } - ASSERT(lpBuf != NULL); - ASSERT(AfxIsValidAddress(lpBuf, nCount)); + DebugAssert(lpBuf != NULL); + DebugAssert(AfxIsValidAddress(lpBuf, nCount)); DWORD dwRead; if (!::ReadFile((HANDLE)m_hFile, lpBuf, nCount, &dwRead, NULL)) @@ -134,7 +99,7 @@ class CFileFix : public CFile // MFC allocates CObject (ancestor of CFile) with new, but deallocates with free, // what codeguard dislikes, this is fix, not sure if it is necessary for // release version, but probably causes no harm - void PASCAL operator delete(void* p) + void PASCAL operator delete(void * p) { delete p; } @@ -147,11 +112,11 @@ struct CStringDataA long nRefs; // reference count int nDataLength; // length of data (including terminator) int nAllocLength; // length of allocation - //char data[nAllocLength]; + // char data[nAllocLength]; - CHAR* data() // CHAR* to managed data + CHAR * data() // CHAR* to managed data { - return (CHAR*)(this+1); + return (CHAR *)(this+1); } }; //--------------------------------------------------------------------------- @@ -169,10 +134,10 @@ class CStringA CStringA(const CStringA& stringSrc) { - ASSERT(stringSrc.GetData()->nRefs != 0); + DebugAssert(stringSrc.GetData()->nRefs != 0); if (stringSrc.GetData()->nRefs >= 0) { - ASSERT(stringSrc.GetData() != _afxDataNilA); + DebugAssert(stringSrc.GetData() != _afxDataNilA); m_pchData = stringSrc.m_pchData; InterlockedIncrement(&GetData()->nRefs); } @@ -188,7 +153,7 @@ class CStringA Init(); if (lpsz != NULL && HIWORD(lpsz) == NULL) { - ASSERT(false); + DebugFail(); } else { @@ -220,8 +185,8 @@ class CStringA char operator[](int nIndex) const { // same as GetAt - ASSERT(nIndex >= 0); - ASSERT(nIndex < GetData()->nDataLength); + DebugAssert(nIndex >= 0); + DebugAssert(nIndex < GetData()->nDataLength); return m_pchData[nIndex]; } @@ -240,7 +205,7 @@ class CStringA { // can just copy references around Release(); - ASSERT(stringSrc.GetData() != _afxDataNilA); + DebugAssert(stringSrc.GetData() != _afxDataNilA); m_pchData = stringSrc.m_pchData; InterlockedIncrement(&GetData()->nRefs); } @@ -248,20 +213,20 @@ class CStringA return *this; } - const CStringA& operator=(LPCSTR lpsz) + const CStringA & operator=(LPCSTR lpsz) { - ASSERT(lpsz == NULL || AfxIsValidString(lpsz)); + DebugAssert(lpsz == NULL || AfxIsValidString(lpsz)); AssignCopy(SafeStrlen(lpsz), lpsz); return *this; } - const CStringA& operator+=(char ch) + const CStringA & operator+=(char ch) { ConcatInPlace(1, &ch); return *this; } - friend CStringA AFXAPI operator+(const CStringA& string, char ch); + friend CStringA AFXAPI operator+(const CStringA & string, char ch); operator LPCSTR() const { @@ -270,7 +235,7 @@ class CStringA int Compare(LPCSTR lpsz) const { - ASSERT(AfxIsValidString(lpsz)); + DebugAssert(AfxIsValidString(lpsz)); return strcmp(m_pchData, lpsz); } @@ -295,8 +260,8 @@ class CStringA nCount = 0; } - ASSERT(nFirst >= 0); - ASSERT(nFirst + nCount <= GetData()->nDataLength); + DebugAssert(nFirst >= 0); + DebugAssert(nFirst + nCount <= GetData()->nDataLength); // optimize case of returning entire string if (nFirst == 0 && nFirst + nCount == GetData()->nDataLength) @@ -353,7 +318,7 @@ class CStringA int Find(LPCSTR lpszSub, int nStart) const { - ASSERT(AfxIsValidString(lpszSub)); + DebugAssert(AfxIsValidString(lpszSub)); int nLength = GetData()->nDataLength; if (nStart > nLength) @@ -377,9 +342,9 @@ class CStringA protected: LPSTR m_pchData; // pointer to ref counted string data - CStringDataA* GetData() const + CStringDataA * GetData() const { - ASSERT(m_pchData != NULL); return ((CStringDataA*)m_pchData)-1; + DebugAssert(m_pchData != NULL); return ((CStringDataA*)m_pchData)-1; } void Init() @@ -387,7 +352,7 @@ class CStringA m_pchData = afxEmptyStringA.m_pchData; } - void AllocCopy(CStringA& dest, int nCopyLen, int nCopyIndex, int nExtraLen) const + void AllocCopy(CStringA & dest, int nCopyLen, int nCopyIndex, int nExtraLen) const { // will clone the data attached to this string // allocating 'nExtraLen' characters @@ -410,8 +375,8 @@ class CStringA // always allocate one extra character for '\0' termination // assumes [optimistically] that data length will equal allocation length { - ASSERT(nLen >= 0); - ASSERT(nLen <= INT_MAX-1); // max size (enough room for 1 extra) + DebugAssert(nLen >= 0); + DebugAssert(nLen <= INT_MAX-1); // max size (enough room for 1 extra) if (nLen == 0) { @@ -440,16 +405,16 @@ class CStringA m_pchData[nSrcLen] = '\0'; } - void FASTCALL FreeData(CStringDataA* pData) + void FASTCALL FreeData(CStringDataA * pData) { delete[] (BYTE*)pData; } - void PASCAL Release(CStringDataA* pData) + void PASCAL Release(CStringDataA * pData) { if (pData != _afxDataNilA) { - ASSERT(pData->nRefs != 0); + DebugAssert(pData->nRefs != 0); if (InterlockedDecrement(&pData->nRefs) <= 0) { FreeData(pData); @@ -461,7 +426,7 @@ class CStringA { if (GetData() != _afxDataNilA) { - ASSERT(GetData()->nRefs != 0); + DebugAssert(GetData()->nRefs != 0); if (InterlockedDecrement(&GetData()->nRefs) <= 0) { FreeData(GetData()); @@ -502,7 +467,7 @@ class CStringA // we have to grow the buffer, use the ConcatCopy routine CStringDataA* pOldData = GetData(); ConcatCopy(GetData()->nDataLength, m_pchData, nSrcLen, lpszSrcData); - ASSERT(pOldData != NULL); + DebugAssert(pOldData != NULL); CStringA::Release(pOldData); } else @@ -510,7 +475,7 @@ class CStringA // fast concatenation when buffer big enough memcpy(m_pchData+GetData()->nDataLength, lpszSrcData, nSrcLen*sizeof(char)); GetData()->nDataLength += nSrcLen; - ASSERT(GetData()->nDataLength <= GetData()->nAllocLength); + DebugAssert(GetData()->nDataLength <= GetData()->nAllocLength); m_pchData[GetData()->nDataLength] = '\0'; } } @@ -524,7 +489,7 @@ class CStringA AllocBuffer(pData->nDataLength); memcpy(m_pchData, pData->data(), (pData->nDataLength+1)*sizeof(char)); } - ASSERT(GetData()->nRefs <= 1); + DebugAssert(GetData()->nRefs <= 1); } void AllocBeforeWrite(int nLen) @@ -534,7 +499,7 @@ class CStringA Release(); AllocBuffer(nLen); } - ASSERT(GetData()->nRefs <= 1); + DebugAssert(GetData()->nRefs <= 1); } static int PASCAL SafeStrlen(LPCSTR lpsz) @@ -543,21 +508,21 @@ class CStringA } }; //--------------------------------------------------------------------------- -inline bool AFXAPI operator==(const CStringA& s1, LPCSTR s2) +inline bool AFXAPI operator==(const CStringA & s1, LPCSTR s2) { return s1.Compare(s2) == 0; } //--------------------------------------------------------------------------- -inline bool AFXAPI operator!=(const CStringA& s1, LPCSTR s2) +inline bool AFXAPI operator!=(const CStringA & s1, LPCSTR s2) { return s1.Compare(s2) != 0; } //--------------------------------------------------------------------------- -inline CStringA AFXAPI operator+(const CStringA& string1, char ch) +inline CStringA AFXAPI operator+(const CStringA & string1, char ch) { CStringA s; s.ConcatCopy(string1.GetData()->nDataLength, string1.m_pchData, 1, &ch); return s; } //--------------------------------------------------------------------------- -#endif \ No newline at end of file +#endif diff --git a/source/filezilla/structures.cpp b/source/filezilla/structures.cpp index af89b41b..1cab1ff8 100644 --- a/source/filezilla/structures.cpp +++ b/source/filezilla/structures.cpp @@ -1,21 +1,4 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - +//--------------------------------------------------------------------------- #include "stdafx.h" @@ -25,108 +8,44 @@ AFX_COMDAT LPCSTR _afxPchNilA = (LPCSTR)(((BYTE*)&_afxInitDataA)+sizeof(CStringD t_directory::t_directory() { - direntry=0; - num=0; -#ifndef MPEXT_NO_CACHE - bCached=FALSE; -#endif + direntry=0; + num=0; } t_directory::~t_directory() { - if (direntry) - delete [] direntry; + if (direntry) + delete [] direntry; } t_directory& t_directory::operator=(const t_directory &a) { - if (&a==this) - return *this; - - if (direntry) - delete [] direntry; - direntry=0; - path=a.path; - num=a.num; - server=a.server; - if (num) - direntry=new t_directory::t_direntry[num]; - for (int i=0;i AddList; - if (!num) - { - if (!directory.num) - return; - for (int i=0; i=MergeTime) - AddList.push_back(directory.direntry[i]); - } - else - { - ASSERT(num>0 && directory.num>=0); - int i; - CTime oldestTime=CTime::GetCurrentTime(); - for (i=0; i direntry[j].EntryTime) - direntry[j]=directory.direntry[i]; - break; - } - } - if (j==num && directory.direntry[i].EntryTime>=oldestTime) - AddList.push_back(directory.direntry[i]); - } - } - - if (AddList.empty()) - return; - t_direntry *tmp=direntry; - direntry=new t_direntry[num + AddList.size()]; - - int i; - for (i=0; i::iterator iter=AddList.begin(); iter!=AddList.end(); iter++, i++) - direntry[i] = *iter; - - num+=AddList.size(); - - delete [] tmp; + year=month=day=hour=minute=second=0; + hasdate=hastime=hasseconds=utc=FALSE; } diff --git a/source/filezilla/structures.h b/source/filezilla/structures.h index 7866684c..efac737b 100644 --- a/source/filezilla/structures.h +++ b/source/filezilla/structures.h @@ -1,90 +1,44 @@ -// FileZilla - a Windows ftp client - -// Copyright (C) 2002-2004 - Tim Kosse - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -#ifndef MPExtStructuresH -#define MPExtStructuresH - -#pragma once - +//--------------------------------------------------------------------------- +#ifndef StructuresH +#define StructuresH +//--------------------------------------------------------------------------- class CServerPath; - +//--------------------------------------------------------------------------- #include "FileZillaApi.h" - +//--------------------------------------------------------------------------- class t_directory { public: - t_directory(); - ~t_directory(); - CServerPath path; - int num; - class t_direntry - { - public: - t_direntry(); - bool bUnsure; //Set by CControlSocket::FileTransfer when uploads fail after sending STOR/APPE - CString name; - CString lName; //Name in lowercase characters - CString permissionstr; - CString humanpermstr; // RFC format - CString ownergroup; - __int64 size; - bool dir; - bool bLink; - class t_date - { - public: - t_date(); - int year,month,day,hour,minute,second; - bool hastime; - bool hasseconds; - bool hasdate; - bool utc; - } date; - CTime EntryTime; - CString linkTarget; - } *direntry; - void Merge(const t_directory &directory, CTime MergeTime); - t_server server; -#ifndef MPEXT_NO_CACHE - BOOL bCached; -#endif - t_directory& operator=(const t_directory &a); + t_directory(); + ~t_directory(); + CServerPath path; + int num; + class t_direntry + { + public: + t_direntry(); + bool bUnsure; // Set by CFtpControlSocket::FileTransfer when uploads fail after sending STOR/APPE + CString name; + CString permissionstr; + CString humanpermstr; // RFC format + CString ownergroup; + __int64 size; + bool dir; + bool bLink; + class t_date + { + public: + t_date(); + int year,month,day,hour,minute,second; + bool hastime; + bool hasseconds; + bool hasdate; + bool utc; + } date; + CString linkTarget; + } * direntry; + t_server server; + t_directory & operator=(const t_directory & a); }; - -#ifndef MPEXT -//View headers -class CComboCompletion; - -typedef struct -{ SIZE m_LabelTextSize; - CComboCompletion *m_pEdit; - CStatic *m_pLabelBackground; - CStatic *m_pLabel; - BOOL bTreeHidden; -} t_LocalViewHeader; - -typedef struct -{ SIZE m_LabelTextSize; - CComboCompletion *m_pEdit; - CStatic *m_pLabelBackground; - CStatic *m_pLabel; - BOOL bTreeHidden; -} t_RemoteViewHeader; -#endif - -#endif // MPExtStructuresH +//--------------------------------------------------------------------------- +#endif // StructuresH diff --git a/source/forms/About.cpp b/source/forms/About.cpp index 8d03a34c..17124cb2 100644 --- a/source/forms/About.cpp +++ b/source/forms/About.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include "WinInterface.h" #include "About.h" #include "TextsCore.h" @@ -18,9 +19,11 @@ #include #include #endif -#include #include +#include +#include #include +#include #ifndef NO_FILEZILLA #include #endif @@ -55,7 +58,7 @@ void __fastcall DoAboutDialog(TConfiguration * Configuration, } catch (EOleException & E) { - // This happens particularly on Wine that's does not support some + // This happens particularly on Wine that does not support some // functionality of embedded IE we need. DoAboutDialog(Configuration, AllowLicense, Registration, false); } @@ -74,7 +77,6 @@ __fastcall TAboutDialog::TAboutDialog(TComponent * AOwner, ApplicationLabel->Font->Style = ApplicationLabel->Font->Style << fsBold; ApplicationLabel->Caption = AppName; WinSCPCopyrightLabel->Caption = LoadStr(WINSCP_COPYRIGHT); - UnicodeString Translator = LoadStr(TRANSLATOR_INFO); if (Registration == NULL) { @@ -116,33 +118,6 @@ __fastcall TAboutDialog::TAboutDialog(TComponent * AOwner, } } - if (Translator.IsEmpty()) - { - TranslatorLabel->Visible = false; - TranslatorUrlLabel->Visible = false; - ClientHeight = ClientHeight - - (TranslatorLabel->Top - ProductSpecificMessageLabel->Top); - } - else - { - TranslatorLabel->Caption = LoadStr(TRANSLATOR_INFO); - UnicodeString TranslatorUrl = LoadStr(TRANSLATOR_URL); - if (!TranslatorUrl.IsEmpty()) - { - LinkLabel(TranslatorUrlLabel, TranslatorUrl); - } - else - { - TranslatorUrlLabel->Visible = false; - - // allow two lines of text, if there's no URL - TranslatorLabel->AutoSize = false; - TranslatorLabel->Width = ThirdPartyPanel->Width; - TranslatorLabel->Height = TranslatorLabel->Height * 2; - TranslatorLabel->WordWrap = true; - } - } - LicenseButton->Visible = AllowLicense; LoadData(); @@ -154,6 +129,16 @@ __fastcall TAboutDialog::TAboutDialog(TComponent * AOwner, { CreateLabelPanel(ThirdPartyPanel, LoadStr(MESSAGE_DISPLAY_ERROR)); } + + int IconSize = DialogImageSize(); + FIconHandle = (HICON)LoadImage(MainInstance, L"MAINICON", IMAGE_ICON, IconSize, IconSize, 0); + IconPaintBox->Width = IconSize; + IconPaintBox->Height = IconSize; +} +//--------------------------------------------------------------------------- +__fastcall TAboutDialog::~TAboutDialog() +{ + DestroyIcon(FIconHandle); } //--------------------------------------------------------------------------- void __fastcall TAboutDialog::LoadData() @@ -219,10 +204,22 @@ void __fastcall TAboutDialog::LoadThirdParty() L"\n"; UnicodeString Br = "
\n"; + + if (GUIConfiguration->AppliedLocale != GUIConfiguration->InternalLocale()) + { + UnicodeString TranslatorUrl = LoadStr(TRANSLATOR_URL); + UnicodeString TranslatorInfo = LoadStr(TRANSLATOR_INFO2); + AddPara(ThirdParty, + LoadStr(ABOUT_TRANSLATIONS_HEADER) + Br + + FMTLOAD(ABOUT_TRANSLATIONS_COPYRIGHT, (GUIConfiguration->LocaleCopyright())) + Br + + (!TranslatorInfo.IsEmpty() ? TranslatorInfo + Br : UnicodeString()) + + (!TranslatorUrl.IsEmpty() ? CreateLink(TranslatorUrl) : UnicodeString())); + } + AddPara(ThirdParty, LoadStr(ABOUT_THIRDPARTY_HEADER)); AddPara(ThirdParty, - FMTLOAD(PUTTY_BASED_ON, (LoadStr(PUTTY_VERSION))) + Br + + FMTLOAD(PUTTY_BASED_ON, (GetPuTTYVersion())) + Br + LoadStr(PUTTY_COPYRIGHT) + Br + CreateLink(LoadStr(PUTTY_LICENSE_URL), LoadStr(ABOUT_THIRDPARTY_LICENSE)) + Br + CreateLink(LoadStr(PUTTY_URL))); @@ -306,9 +303,9 @@ void __fastcall TAboutDialog::LoadThirdParty() TStreamAdapter * ThirdPartyStreamAdapter = new TStreamAdapter(ThirdPartyStream.get(), soReference); IPersistStreamInit * PersistStreamInit = NULL; - if (ALWAYS_TRUE(ThirdPartyWebBrowser->Document != NULL) && + if (DebugAlwaysTrue(ThirdPartyWebBrowser->Document != NULL) && SUCCEEDED(ThirdPartyWebBrowser->Document->QueryInterface(IID_IPersistStreamInit, (void **)&PersistStreamInit)) && - ALWAYS_TRUE(PersistStreamInit != NULL)) + DebugAlwaysTrue(PersistStreamInit != NULL)) { PersistStreamInit->Load(static_cast<_di_IStream>(*ThirdPartyStreamAdapter)); } @@ -346,21 +343,49 @@ void __fastcall TAboutDialog::RegistrationProductIdLabelClick( void __fastcall TAboutDialog::OKButtonMouseDown(TObject * /*Sender*/, TMouseButton Button, TShiftState Shift, int /*X*/, int /*Y*/) { - if ((Button == mbRight) && Shift.Contains(ssAlt)) + if (Button == mbRight) { - try + if (Shift.Contains(ssAlt)) { - ACCESS_VIOLATION_TEST; + AccessViolationTest(); } - catch (Exception & E) + else if (Shift.Contains(ssCtrl)) { - throw ExtException(&E, MainInstructions(L"Internal error test.")); + LookupAddress(); } } } //--------------------------------------------------------------------------- +void __fastcall TAboutDialog::LookupAddress() +{ + UnicodeString S; + if (InputQuery(L"Address lookup", L"&Address:", S)) + { + void * Address = reinterpret_cast(StrToInt(L"$" + S)); + ShowMessage(GetLocationInfoStr(Address, true, true, true, true)); + } +} +//--------------------------------------------------------------------------- +void __fastcall TAboutDialog::AccessViolationTest() +{ + try + { + ACCESS_VIOLATION_TEST; + } + catch (Exception & E) + { + throw ExtException(&E, MainInstructions(L"Internal error test.")); + } +} +//--------------------------------------------------------------------------- void __fastcall TAboutDialog::ExpatLicenceHandler(TObject * /*Sender*/) { DoLicenseDialog(lcExpat); } //--------------------------------------------------------------------------- +void __fastcall TAboutDialog::IconPaintBoxPaint(TObject * /*Sender*/) +{ + DrawIconEx(IconPaintBox->Canvas->Handle, + 0, 0, FIconHandle, IconPaintBox->Width, IconPaintBox->Height, 0, NULL, DI_NORMAL); +} +//--------------------------------------------------------------------------- diff --git a/source/forms/About.dfm b/source/forms/About.dfm index f16ac812..f55f60f6 100644 --- a/source/forms/About.dfm +++ b/source/forms/About.dfm @@ -6,7 +6,7 @@ object AboutDialog: TAboutDialog BorderIcons = [biSystemMenu, biMinimize, biMaximize, biHelp] BorderStyle = bsDialog Caption = 'About application' - ClientHeight = 531 + ClientHeight = 487 ClientWidth = 394 Color = clBtnFace ParentFont = True @@ -14,3496 +14,62 @@ object AboutDialog: TAboutDialog Position = poOwnerFormCenter DesignSize = ( 394 - 531) + 487) PixelsPerInch = 96 TextHeight = 13 object ApplicationLabel: TLabel - Left = 72 + Left = 46 Top = 12 Width = 52 Height = 13 Caption = 'Application' end object VersionLabel: TLabel - Left = 72 + Left = 46 Top = 28 Width = 127 Height = 13 Caption = 'Version 2.0.0 (Build 12) XX' end object WinSCPCopyrightLabel: TLabel - Left = 72 + Left = 46 Top = 56 Width = 180 Height = 13 Caption = 'Copyright '#169' 2000-2003 Martin Prikryl' end object ProductSpecificMessageLabel: TLabel - Left = 72 + Left = 46 Top = 100 Width = 277 Height = 13 Caption = 'To send comments and report bugs use support forum at:' end - object TranslatorLabel: TLabel - Left = 72 - Top = 144 - Width = 74 - Height = 13 - Caption = 'TranslatorLabel' - end - object Image: TImage - Left = 8 - Top = 12 - Width = 49 - Height = 32 - Center = True - Picture.Data = { - 055449636F6E0000010007001010000001002000680400007600000018180000 - 0100200088090000DE0400002020000001002000A8100000660E00002A2A0000 - 01002000081D00000E1F00003030000001002000A8250000163C000040400000 - 0100200028420000BE610000808000000100200028080100E6A3000028000000 - 1000000020000000010020000000000000000000000000000000000000000000 - 000000006A6A6AED696969FF696969FF696969FF696969FF696969FF6A6A6AED - 45DC45C954E254FF5EE75FFF69EC69FF73F074FF7EF37EFF88F788FF83F983E2 - 6BFA6B58696969FFCACACAFFC4C4C4FFBBBBBBFFB2B2B2FFA8A8A8FF696969FF - 32D4346145DC45FC14D715FF03D904FF03DE04FF03E304FF04E804FF2DF02DFF - 83F983E2696969FFC1C1C1FF8F8F8FFF8F8F8FFF8F8F8FFF9A9A9AFF696969FF - E6441E0032D4346144DC45FC07D508FF00D901FF00DE01FF00E301FF04E804FF - 88F788FF696969FFB2B2B2FFA8A8A8FF9F9F9FFF969696FF8F8F8FFF696969FF - E6441E0030D0323B3DD73EF309D10AFF00D401FF00D901FF00DE01FF03E304FF - 7EF37EFF6A6A6AED696969FF696969FF696969FF696969FF696969FF6A6A6AED - 1EC3203729CA2AF110C912FF00CA02FF00CF01FF00D401FF00D901FF03DE04FF - 73F074FFE6441E00666666FFBFBFBFFFE6441E00BFBFBFFF666666FF5D9C0D5B - 1CB915FD09BD0BFF00C002FF00C502FF00CA02FF09D10AFF07D508FF03D904FF - 69EC69FFD2752509666666FFBFBFBFFFE6441E00BFBFBFFF666666FF5D970BF7 - 03B306FF00B703FF00BB02FF00C002FF10C912FF3DD73EF444DC45FB14D715FF - 5EE75FFFDA7D38C3666666FFBFBFBFFFBFBFBFFFBFBFBFFF666666FFAE7A09FF - 2F9E02FF00B203FF00B703FF09BD0BFF28CA2AF22DCF2E4035D5375B45DC46FB - 54E254FFDF7F41FE847367FE666666FF666666FF666666FF7F715EFFB66F00FF - AB7600FF2D9F02FF03B306FF1ABA15FD1CC21E3CE6441E00E6441E0035D5375B - 44DC45CAE48047FFD76114FFDA7D39FAD57F35F2C96C11FFC06600FFBB6A00FF - B66F00FFAE7B09FF5A970BF8589D0C5EE6441E00E6441E00E6441E00E6441E00 - 32D4330EE8804DFFDA5205FFD55808FFD15E09FFCA5D00FFC56100FFC06600FF - BE720DFFBF801EF1B8801539E6441E00E6441E00E6441E00E6441E00E6441E00 - E6441E00EC8152FFDF4D05FFD94F00FFD45300FFCF5800FFCA5D00FFC96C11FF - CA7F2AF1C47D213AE6441E00E6441E00E6441E00E6441E00E6441E00E6441E00 - E6441E00F08258FFE44905FFDE4A00FFD94F00FFD45300FFD15E09FFD57F35F2 - CF7D2D3AE6441E00E6441E00E6441E00E6441E00E6441E00E6441E00E6441E00 - E6441E00F4845EFFE84505FFE34500FFDE4A00FFD94F00FFD55808FFDA7D39FA - D47D3254E6441E00E6441E00E6441E00E6441E00E6441E00E6441E00E6441E00 - E6441E00F77E5BD9F05825FFE84505FFE44905FFDF4D05FFDA5205FFD76114FF - DA7E3AFAD47B3053E6441E00E6441E00E6441E00E6441E00E6441E00E6441E00 - E6441E00F9724F4FF77E5BD9F4845EFFF08258FFEC8152FFE8804DFFE48047FF - DF7F41FEDA7D38C3D2752509E6441E00E6441E00E6441E00E6441E00E6441E00 - E6441E0000010000010000000180000001800000010000009200000090000000 - 000C0000001E0000003F0000007F000000FF000001FF000001FF000000FF0000 - 807F000028000000180000003000000001002000000000000000000000000000 - 000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00000000040000000C0000001300000017000000190000001C0000001C - 000000180000000C00000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 80D580066FDC737552D356BA4DD251C24CD350C54CD750C64BDA50C84CDD51C9 - 59CB60A7273D273A0000000CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 8080800262D266990BB10BFE00B600FF00C100FF00CB00FF00D600FF00E100FF - 1FEF20FF6DDB72BC00000015FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000001 - 000000050000000C0000000E0000000E0000000E0000000E0000000E0000000E - 0000000E101010105EC961A00BB10BFE00B600FF00C100FF00CB00FF17DA17FF - 3EE83EFF6DEA72E000000019FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000005 - 4343432237373741313131493131314934343449343434493737374A3737374A - 3737374A3939394C526C54613EBC41EA00AB00FF00B600FF12C512FF34D634FF - 3EE03EFF6EE871E100000018FFFFFF00FFFFFF00FFFFFF00FFFFFF00A7A7A720 - 747474DE5C5C5CFA676767F9666666FA6D6D6DF9777777F67A7A7AF6797979F6 - 7D7D7DF6858A85F656A958FC039604FF00A000FF0DAF0DFF2AC22AFF33CD33FF - 3DD73DFF6DE571E000000016FFFFFF00FFFFFF00FFFFFF00FFFFFF00B1B1B12B - 444444FE282828FF323232FF3F3F3FFF3F3F3FFF3D3D3DFF454545FF434343FF - 4B4D4BFF497D4AFF208521FF118E12FF0B990CFF1FAC1FFF29B929FF33C533FF - 3CD03CFF6EE171DF00000014FFFFFF00FFFFFF00FFFFFF00FFFFFF00B1B1B12B - 4A4A4AFD2C2C2CFF373737FF474747FF484848FF454545FF505050FF4D4D4DFF - 495D49FF3F7540FF368437FF278A28FF279A28FF21A322FD43BD44F43BC13BFE - 3CC73CFF6EDE71DE00000011FFFFFF00FFFFFF00FFFFFF00FFFFFF00AFAFAF2A - 474747FD333333FF3E3E3EFF4E4E4EFF515151FF4D4D4DFF5C5C5CFF565656FF - 595D59FF567357FF518652FF428D43FF3A963BFF4CB24EEB6BBE6E6676D778A6 - 44C344FE70DC73DA0000000AFFFFFF00FFFFFF00FFFFFF00FFFFFF00ADADAD29 - 414141FD393939FF444444FF545454FF595959FF535353FF666666FF5F5F5FFF - 646464FF707470FF6F8C70FF5A8D5BFF5C9A5DFF97B397B10000001180808002 - 7ADC7DA57DE381B300000003FFFFFF00FFFFFF00FFFFFF00FFFFFF00ADADAD29 - 4B4B4BFC404040FF494949FF5A5A5AFF606060FF585858FF707070FF686868FF - 6B6B6BFF7D7D7DFF929692FF778F78FF788179FF9898989E00000010FFFFFF00 - FFFFFF01A0F5AB18FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00AAAAAA28 - 4F4F4FFC474747FF4D4D4DFF5F5F5FFF636363FF5D5D5DFF7A7A7AFF717171FF - 737373FF868686FFA5A5A5FF939493FF787878FF8C8C8CA400000010FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00B0B0B026 - 505050FB4D4D4DFF525252FF626262FF656565FF616161FF838383FF787878FF - 7C7C7CFF8F8F8FFFB3B3B3FF9E9E9EFF848484FF9494949B0000000EFFFFFF00 - FFFFFF00FFFFFF00FFFFFF00000000010000000200000001FFFFFF00CCCCCC1F - 5A5A5AF6545454FF565656FF656565FF676767FF666666FF8B8B8BFF7F7F7FFF - 848484FF979797FFBEBEBEFFA5A5A5FF8F8F8FFCB4B4B47600000007FFFFFF00 - FFFFFF00FFFFFF00FFFFFF0075645707302924100000000700000002A4A4A40B - A09E9C778B8A88F2A6A6A6FFA2A2A2FFA3A3A3CDB6B6B6B7C0C0C0B0999999C0 - 8E8E8EC6ADADADFDC3C3C3FFA7A7A7F6B2B2B298C3C3C32200000001FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00EFAA7566E9A166A11A16141E0000000C967C621B - E09D4372776C5AD3CFCFCFFF8B8B8BFF47443C590000000C0000000200000001 - 000000098A8A8AF8AFAFAFFF656565E10000001A00000002FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00F89652A9FA7106EBE19B61A9725C493AE798469B - E17D00927C6D57DBDDDDDDFF8B8B8BFF6C58306A52462B1200000001FFFFFF00 - 000000098F8F8FF9AFAFAFFF656565E10000001A00000002FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00F28E4CADFF6900FEF87006ECF09140CFEC7600C1 - E57800AB816D55E1E2E2E2FF8B8B8BFF8A6E3B81806F4F1E0000000400000003 - 0000000D888888F7AFAFAFFF656565E10000001800000002FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00EB8947ADF36400FFFF6900FEF86D00EBF27200D7 - EC7806C38B6E4FE3DBDBDBFF9F9F9FFF716A609C000000270000001C0000001C - 1B1B1B2F7F7F7FF9ADADADFF636363DE0000001400000001FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00E48343ADE66000FFF36400FFFF6900FEF87208EC - F3780AD8C87D31D5A9A9A9FFD2D2D2FF8A8A8AF76B6B6BEA6A6A6AEA6A6A6AEA - 717171F2A8A8A8FF8B8B8BFF5E5E5EB10000000DFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00DD7D3EAEDA5B00FFE66000FFF36A0AFFFF710EFE - F8730AECF28E34D88E8C89EDD8D8D8FFDBDBDBFFBABABAFFAFAFAFFFAFAFAFFF - AFAFAFFF9F9F9FFF676767EE0000001800000004FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00D8793BAACD5600FFDC640DFFE86C13FFF46D0FFF - FF6F0AFEF8740EECE4A673B27A7A79C4818181EC929292F2858585EE747474E9 - 6C6C6CE7656565CF2B2B2B1700000005FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00DE814A72C75F13FFD26618FFDD6814FFE76A0FFF - F46B0BFFFF6D06FEFA7208EAEBA266A728211D12000000090000000800000008 - 000000070000000400000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00E08C6308DE844E8CDB7F44C6E08042CAE68442C9 - ED8742C9F48A42C7FB8D43C5F9A16297E4B5941C00000001FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFE0300FFFC0100FFFE0100FFFF0100 - F8000100F8000100F8000100F8001100F8001900F8001F00F8001F00F8001F00 - F8003F00FC003F00BC7C7F00107C7F00003C7F00003C7F0000007F000000FF00 - 0001FF00807FFF00807FFF002800000020000000400000000100200000000000 - 0000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000001 - 000000040000000A0000000F0000001100000013000000140000001500000017 - 00000017000000150000000E0000000600000001FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000002 - 152B150C74C37B516CBB716867B36E6D65B06C6F63AD6A7161A967745FA66576 - 5CA163741B2F1F410000002A0000001500000006FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0099F0A23E - 68DD6CD52AC42CFA22C824FF22CF24FF22D524FF22DB24FF22E124FF22E825FF - 24EE26FE51ED56E669D570B1000000280000000DFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000010000000100000001 - 00000001000000010000000100000001000000010000000100000001669A6605 - 77DE7CA313B213FC00B000FF00B900FF00C100FF00C900FF00D100FF00D900FF - 00E100FF17EB17FF6DF370F3406C465000000013FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF000000000100000004000000070000000900000009 - 0000000900000009000000090000000900000009000000090000000900000009 - 283B280D74DA79A713B213FC00B000FF00B900FF00C100FF00C900FF00D100FF - 15DC15FF3DE83DFF49F049FF7BDE82AF00000015FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00000000010000000700000014000000210000002500000026 - 0000002600000026000000260000002600000026000000260000002600000026 - 000000260C120C2B71D074BD0BAE0BFF00B000FF00B900FF00C100FF12CD12FF - 35DB35FF3CE23CFF44E944FF7EE184BA00000014FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00000000027272721D8282825E7676768F7A7A7A9276767695 - 767676977A7A7A937F7F7F8F8181818E8282828E8181818E8383838E8484848F - 8686868F8C9E8EA14FBA51ED00A000FF00A800FF00B000FF0FBD0FFF2DCC2DFF - 35D435FF3CDC3CFF44E344FF7FE285B800000013FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF0000000003A1A1A172545454FE464646FF505050FF525252FF - 505050FF565656FF5F5F5FFF656565FF676767FF666666FF6A6A6AFF6F6F6FFF - 777D77FF55A557FF0B930CFF009800FF00A000FF0CAC0CFF26BC26FF2DC52DFF - 34CE34FF3CD63CFF43DD43FF80E184B700000012FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF0000000004868686B3313131FF262626FF303030FF363636FF - 3E3E3EFF3D3D3DFF3B3B3BFF3F3F3FFF444444FF424242FF464646FF515551FF - 4A854BFF208521FF148B15FF09910AFF099C09FF1EAB1EFF26B526FF2DBE2DFF - 34C734FF3BCF3BFF43D743FF81E185B600000010FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00000000048E8E8EAD343434FF272727FF333333FF3A3A3AFF - 464646FF454545FF414141FF464646FF4D4D4DFF4A4A4AFF4B4C4BFF486B49FF - 367837FF2F8330FF228723FF1A8E1BFF219D22FF1EA41EFF25AE25FF2CB72CFF - 34C034FF3BC93BFF42D142FF82E286B50000000FFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF0000000004909090A8373737FF2B2B2BFF393939FF3E3E3EFF - 4B4B4BFF4D4D4DFF474747FF4E4E4EFF555555FF505050FF4F574FFF49664AFF - 477748FF418342FF358836FF319032FF2E9B2FFF29A52AF939B239F985E189D3 - 42C143FD3BC23BFF42CB42FF84E388B20000000DFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF0000000004878787AE353535FF303030FF404040FF434343FF - 515151FF545454FF4C4C4CFF535353FF5D5D5DFF585858FF595959FF5B665BFF - 5A775BFF568657FF498A4AFF3F8E40FF3D993EFF4AB04CF176C3788E3B4F3B0D - 86E589AF49C44AFD43C543FF84E78AAA00000008FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00000000047A7A7AB7313131FF343434FF464646FF464646FF - 565656FF5A5A5AFF505050FF5A5A5AFF646464FF5E5E5EFF5F5F5FFF676767FF - 6E796EFF6E8B6FFF5C8B5DFF4E8D4FFF569D57FF9EC3A0D00000001E00000005 - 80C0800488E48BB173DA74F585DE893F00000003FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF0000000004818181AF363636FF383838FF4B4B4BFF4A4A4AFF - 5A5A5AFF5F5F5FFF555555FF5F5F5FFF6C6C6CFF656565FF666666FF6D6D6DFF - 7D7D7DFF879287FF728E73FF648F65FF7F927FFFAAAAAAB70000001D00000004 - FFFFFF0080C0800496F09C860000000200000001FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF0000000004909090A33C3C3CFF3D3D3DFF515151FF4D4D4DFF - 5E5E5EFF636363FF585858FF656565FF747474FF6A6A6AFF6C6C6CFF727272FF - 848484FF9D9D9DFF8A948AFF828A82FF767676FFA2A2A2BC0000001D00000004 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF0000000004929292A03C3C3CFF404040FF585858FF4F4F4FFF - 616161FF656565FF5C5C5CFF6A6A6AFF7B7B7BFF717171FF727272FF777777FF - 8C8C8CFFA7A7A7FF9A9A9AFF8A8A8AFF777777FF979797C10000001D00000004 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00000000039292929D3D3D3DFF454545FF5E5E5EFF505050FF - 636363FF676767FF5E5E5EFF6E6E6EFF818181FF777777FF787878FF7E7E7EFF - 939393FFB3B3B3FFA3A3A3FF909090FF848484FFA0A0A0B90000001C00000004 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00000000039595959A3E3E3EFF4B4B4BFF646464FF525252FF - 666666FF6A6A6AFF5F5F5FFF737373FF878787FF7C7C7CFF7C7C7CFF848484FF - 9A9A9AFFBEBEBEFFADADADFF959595FF8D8D8DFFAFAFAFAC0000001600000003 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000010000000300000004 - 00000002FFFFFF0000000002B2B2B264666666FD626262FF7B7B7BFF656565FF - 787878FF7B7B7BFF707070FF858585FF959595FF808080FF7D7D7DFF8F8F8FFF - A7A7A7FFC8C8C8FFB9B9B9FFA2A2A2FFA6A6A6FDC5C5C5790000000B00000001 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000048A7668190000000E - 000000080000000200000002B5B5B517A9A6A1729A948AD0A3A3A3FFB0B0B0FF - 9F9F9FFF9F9F9FBAB7B7B793C4C4C48DCACACA88AEAEAE96929292A5999999C5 - B7B7B7FFC2C2C2FFA6A6A6FFA2A2A2B0B6B6B673B4B4B42200000002FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00AF927D1BF9BA89CD9E7E6544 - 000000160000000B00000008AF937428E2A24A7595743F9DA6A6A6FFAFAFAFFF - 7E7E7EFF4B494370000000160000000600000002000000020000000563636371 - A0A0A0FFAEAEAEFF787878FF1F1F1F520000001800000004FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00F4AE7E8AFB7308E9F29F5BCD - 91755E4B0000001BA8886A38EAA24E96DD7F00879D753BA9AAAAAAFFB9B9B9FF - 7E7E7EFF60553C7A3629091C0000000500000001FFFFFF000000000263636371 - A5A5A5FFAEAEAEFF787878FF1F1F1F510000001700000003FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00F5A36DA1FE6B00F9F96D00EA - EF9D5ACDBD977971EC9D4FB6E87A00A9E07B009AA57637B5ACACACFFC5C5C5FF - 7E7E7EFF725E3786926B1A307C73610A00000001FFFFFF000000000263636371 - A7A7A7FFAEAEAEFF787878FF1F1F1F510000001700000003FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00F19E68A1F96600FFFD6A00FA - F86D00EBF5892FDDEF7300CCEB7700BCE57800ACAC7735C0AEAEAEFFC8C8C8FF - 7E7E7EFF866B3D969B845C3A0000000700000004000000040000000661616174 - 9A9A9AFFAEAEAEFF787878FF2020204F0000001600000003FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EE9963A2EF6300FFF96600FF - FD6A00FAF86D00EBF47100DCEF7300CCEA7906BEBB772CC6ACACACFFCFCFCFFF - 8D8D8DFF7E7465AA0000002D0000001C00000019000000190000001C5E5E5E93 - 919191FFAEAEAEFF767676FE141414410000001300000002FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EA955EA2E66000FFEF6300FF - F96600FFFD6A00FAF86D00EBF47507DDEF7809CEE97D0FC29D9C9CFEE3E3E3FF - B6B6B6FF767676F45B5B5BAB5252529B5353539A5353539A575757AA656565F4 - ADADADFFAEAEAEFF6C6C6CF70000002C0000000D00000002FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E6905AA3DD5C00FFE66000FF - EF6300FFF96600FFFD6F09FAF8740DECF47609DDEF7F16D08D857DF9F1F1F1FF - D5D5D5FFB9B9B9FF9A9A9AFF8E8E8EFF8E8E8EFF8E8E8EFF949494FFADADADFF - AFAFAFFFA2A2A2FF646464E00000001A0000000600000001FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E48B55A3D35900FFDD5C00FF - E66000FFF06A0BFFF96F10FFFD710CFAF87209ECF68322E1D5B092BFA1A1A1FB - EDEDEDFFDEDEDEFFC9C9C9FFB2B2B2FFAEAEAEFFAEAEAEFFAEAEAEFFAEAEAEFF - A0A0A0FF676767F62B2B2B300000000B00000002FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E38851A1CA5500FFD35900FF - DF650EFFE86C14FFF06D10FFF96E0DFFFD7009FAF8740BEBF1A96ED4A494897B - 818181E8929292F9959595FF909090FF848484FF787878FF757575FE6D6D6DF3 - 656565DA2B2B2B240000000900000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E68B5877C75A0BFECD6010FF - D76818FFE06914FFE86A11FFF06B0DFFF96C0AFFFD6E06FAF97409EAF4A66AD3 - B49882565A5A5A1F0F0F0F110F0F0F110F0F0F11000000100000000F0000000D - 000000090000000400000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00CD815B0AE1864FDCCA671EFF - CF6518FFD76615FFDF6711FFE7690EFFF0690AFFF96A07FFFE6D03F9FC6F00E8 - FAAB6DD1D7AD9035000000040000000200000002000000020000000200000002 - 00000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EC93661CE78D5A99 - E2884FC2E48950C4E78C51C3EC8F53C3F09255C3F39456C2F89657C1FB9F61B6 - F6B2836FB4927C0A00000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFFFFFFFFFFFFFFFFE003 - FFFFE003FFFFF001FFFFF801FF000001FE000001FC000001FC000001FC000001 - FC000021FC000073FC00007BFC00007FFC00007FFC00007FFC00007FFE0000FF - FF0001FFBF0FE3FF1C0FE3FF0807E3FF0007E3FF0007C3FF000003FF000003FF - 000007FF00200FFF801FFFFF800FFFFFC01FFFFF280000002A00000054000000 - 01002000000000000000000000000000000000000000000000000000FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000001 - 00000003000000070000000B0000000E00000010000000100000001100000013 - 00000013000000140000001500000015000000130000000E0000000800000003 - 00000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00000000020000000700000010000000180000001E0000002200000024 - 00000026000000280000002A0000002C0000002E0000002F0000002C00000024 - 000000170000000B00000003FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF0000000001000000038DDC913A81EA87B67DEC83D27CEB82D4 - 7BE982D57BEA82D67AEA82D67AEB81D77AEB81D879EC82D879EB81D97BEC83D8 - 73D97CB8355438520000002C0000001700000008FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF009FF4A47867DB6AEE0DB30EFF - 00B300FF00B900FF00BF00FF00C500FF00CB00FF00D200FF00D800FF00DE00FF - 00E400FF00EA00FF19F31BFF82F48AEC48744E5C000000220000000DFFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF000000000100000001000000010000000100000001 - 0000000100000001000000010000000100000001000000010000000180C08008 - 88E88CAF23B824FB00AC00FF00B300FF00B900FF00BF00FF00C500FF00CB00FF - 00D200FF00D800FF00DE00FF00E400FF16EC16FF4AF54BFF8CEE93DA00000029 - 00000011FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00000000020000000300000004000000050000000500000005 - 0000000500000005000000050000000500000005000000050000000500000005 - 00000005000000055681560C87E68BB021B823FB00AC00FF00B300FF00B900FF - 00BF00FF00C500FF00CB00FF00D200FF00D800FF14E114FF3DEA3DFF43F043FF - 8EF594ED060B062D00000013FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF000000000100000003000000070000000D0000001100000013 - 0000001300000013000000130000001300000013000000130000001300000013 - 0000001300000013000000130000001300000014263A261B83E188B420B722FC - 00AC00FF00B300FF00B900FF00BF00FF00C500FF00CB00FF12D512FF37E037FF - 3DE63DFF43EB43FF8CF591EF1A2A1A3100000013FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000002000000090000001500000023 - 0000002C0000002F000000300000003000000030000000300000003000000030 - 0000003000000030000000300000003000000030000000300000003000000031 - 161F163A86E28BDC09AB09FF00AC00FF00B300FF00B900FF00BF00FF10C910FF - 31D531FF37DC37FF3DE13DFF42E742FF8CF391EF1B2B1B3000000012FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000010000000544444417 - 868686467575755E6A6A6A6A6868686E6868686E6A6A6A6F6C6C6C6F6C6C6C6F - 6D6D6D706D6D6D706F6F6F717070707270707072727272727373737373737373 - 757575747777777689C38ABD2EB130F900A000FF00A600FF00AC00FF00B300FF - 0EBD0EFF2CCA2CFF32D032FF37D637FF3DDD3DFF42E242FF8CF290EF1C2D1C2E - 00000011FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000001 - 00000006C4C4C44D747474EE5D5D5DFE636363FE6D6D6DFE6D6D6DFE686868FD - 5E5E5EFE707070FD7F7F7FFD848484FD898989FC898989FC888888FC8A8A8AFC - 8D8D8DFB8F8F8FFB929292FB96B696FD3BAA3CFF069607FF009A00FF00A000FF - 00A600FF0CB00CFF26BE26FF2CC52CFF31CB31FF37D137FF3CD73CFF42DE42FF - 8CF090EF1D2F1D2C00000010FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF000000000100000007A7A7A787474747FF1F1F1FFF2A2A2AFF313131FF - 343434FF3D3D3DFF3E3E3EFF3C3C3CFF383838FF383838FF3F3F3FFF404040FF - 3E3E3EFF414141FF444444FF494A49FF657B65FF389239FF148A15FF0B8F0CFF - 049405FF009A00FF0AA40AFF20B120FF26B826FF2CC02CFF31C631FF36CD36FF - 3CD33CFF42D842FF8CF190EE1E311E2A0000000FFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF0000000001000000079E9E9E96484848FF1E1E1EFF - 292929FF303030FF333333FF3D3D3DFF414141FF404040FF3C3C3CFF3D3D3DFF - 454545FF464646FF444444FF464646FF4A4A4AFF5A685BFF3D823EFF268127FF - 1E871FFF158B16FF0C900DFF0B970CFF1AA41AFF20AC20FF26B326FF2BBA2BFF - 31C231FF36C836FF3CCE3CFF41D441FF8BEE8FEE203320280000000EFFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000100000007A4A4A491 - 4C4C4CFF1E1E1EFF2B2B2BFF343434FF373737FF414141FF484848FF454545FF - 414141FF414141FF4B4B4BFF4C4C4CFF4A4A4AFF4B4B4BFF505750FF426F43FF - 367637FF328033FF2B862CFF1F8820FF1B8F1CFF1F9920FF20A121FF20A720FF - 25AE25FF2BB52BFF30BC30FF36C336FF3CC93CFF41CF41FF8BED90EE22362226 - 0000000DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000001 - 00000007A4A4A48F535353FF202020FF303030FF383838FF393939FF454545FF - 4E4E4EFF4B4B4BFF454545FF464646FF525252FF535353FF4F4F4FFF4F514FFF - 495E49FF456946FF437544FF408041FF388639FF2D872EFF2D902EFF289529FF - 2EA62FFE22A423FA27AA27FF7BDC7EEA4BC54CFB36BD36FF3BC53BFF41CB41FF - 8CEC90ED243A24230000000CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF000000000100000007A1A1A1904E4E4EFF222222FF343434FF3D3D3DFF - 3D3D3DFF4A4A4AFF525252FF505050FF494949FF4A4A4AFF575757FF595959FF - 555555FF545454FF545C54FF526852FF517552FF4F8150FF478748FF3F8A40FF - 398E3AFF319232FF3CA73DFD2DA72EEF75CE77DB84C688428FE993B64FC750FB - 3BBF3BFF40C640FF8CEC8FED2D482D1C00000009FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00000000010000000797979795464646FF242424FF - 383838FF424242FF404040FF4E4E4EFF565656FF565656FF4D4D4DFF4E4E4EFF - 5D5D5DFF5F5F5FFF5A5A5AFF5A5A5AFF5D5D5DFF5F675FFF5E745EFF5F8360FF - 598B5AFF4D8B4EFF458F46FF3C903DFF4AAA4BFC7BC97DD8648D68450000000B - 568F560993EC97B654C955FB40C140FF8FED93E72030201000000005FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000001000000079090909A - 3F3F3FFF262626FF3C3C3CFF474747FF434343FF515151FF5A5A5AFF5A5A5AFF - 505050FF515151FF636363FF666666FF5F5F5FFF5F5F5FFF626262FF686868FF - 6E766EFF718771FF6A8D6BFF5A8A5BFF518E52FF478E48FF8BC18CFA9DAA9E84 - 00000020000000090000000293B7930794ED98B761CE63FC8EF092BC00000006 - 00000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000001 - 0000000795959595484848FF272727FF404040FF4B4B4BFF444444FF545454FF - 5D5D5DFF5F5F5FFF545454FF555555FF696969FF6B6B6BFF636363FF656565FF - 656565FF6D6D6DFF797979FF858D85FF7E937EFF698C6AFF608F61FF6F9670FF - A5A9A6F5939393720000001F0000000900000001FFFFFF0092DB92079CF19EBD - 99F39E3900000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF0000000001000000079C9C9C8D515151FF292929FF454545FF505050FF - 464646FF575757FF616161FF616161FF575757FF575757FF6E6E6EFF717171FF - 696969FF696969FF6A6A6AFF717171FF7F7F7FFF939393FF929A92FF798E79FF - 7A917AFF787A78FF939393F6929292710000001F0000000900000001FFFFFF00 - FFFFFF0099FF9905FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF000000000100000007A1A1A188555555FF2B2B2BFF - 484848FF545454FF474747FF595959FF646464FF646464FF595959FF5A5A5AFF - 747474FF777777FF6E6E6EFF6E6E6EFF6F6F6FFF767676FF848484FF9C9C9CFF - A3A3A3FF8D938DFF878887FF787878FF858585F8929292710000001F00000009 - 00000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000100000007A1A1A186 - 555555FF2D2D2DFF4D4D4DFF595959FF494949FF5B5B5BFF666666FF656565FF - 5C5C5CFF5C5C5CFF797979FF7C7C7CFF727272FF737373FF757575FF797979FF - 8A8A8AFFA3A3A3FFAAAAAAFF979797FF8E8E8EFF7A7A7AFF838383F892929270 - 0000001F0000000900000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000001 - 00000007A1A1A185575757FF2E2E2EFF505050FF606060FF4B4B4BFF5E5E5EFF - 696969FF676767FF5E5E5EFF5F5F5FFF7E7E7EFF818181FF767676FF767676FF - 787878FF7D7D7DFF8F8F8FFFABABABFFB3B3B3FF9E9E9EFF929292FF7D7D7DFF - 919191F69191916E0000001E0000000800000001FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF000000000100000006A5A5A582575757FF303030FF555555FF656565FF - 4C4C4CFF5F5F5FFF6A6A6AFF676767FF5E5E5EFF616161FF838383FF858585FF - 7A7A7AFF7B7B7BFF7D7D7DFF828282FF939393FFB2B2B2FFBBBBBBFFA5A5A5FF - 979797FF7F7F7FFFA2A2A2F3999999690000001A0000000700000001FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000100000001 - 00000001FFFFFF00FFFFFF00FFFFFF0000000004AEAEAE7A595959FF323232FF - 595959FF6A6A6AFF4B4B4BFF606060FF6B6B6BFF696969FF5D5D5DFF626262FF - 868686FF8A8A8AFF7F7F7FFF7F7F7FFF828282FF878787FF989898FFBABABAFF - C0C0C0FFA8A8A8FF999999FF7C7C7CFFB2B2B2EEABABAB5C0000001200000005 - 00000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000001 - 0000000300000005000000050000000200000001FFFFFF0000000002E5E5E53E - 7A7A7AF65A5A5AFF7A7A7AFF878787FF6A6A6AFF7D7D7DFF868686FF838383FF - 797979FF808080FFA0A0A0FF9C9C9CFF828282FF727272FF828282FF949494FF - ABABABFFC7C7C7FFCDCDCDFFBABABAFFACACACFF999999FFC2C2C2CDBFBFBF43 - 0000000900000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00000000022B25200A0000000D0000000D000000080000000300000001 - 00000002C0C0C017CBCBCB44A5A199AC95938FEDAFAFAFFFB6B6B6FFB6B6B6FF - 9A9A9AFEA9A9A9A6B9B9B99AC7C7C794CECECE8FCCCCCC8FB7B7B799A4A4A4A5 - 9E9E9EA89E9E9EDCBABABAFFC6C6C6FFC5C5C5FFA5A5A5FEABABABADB8B8B890 - CECECE4B929292100000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF0000000005F5BF969ACFA4815E0000001A00000012 - 0000000900000005000000050000000AD6B28450D692296F766E5FD4B2B2B2FF - BEBEBEFFADADADFF666565FC000000370000001A0000000A0000000500000004 - 000000030000000400000009656565A79F9F9FFFAFAFAFFFACACACFF686868FC - 00000043000000220000000B00000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00967B6A13FAAB6ED3F7A059D5 - BC9575690000001F000000150000000E0000000EDFB68863E6982E87D37D0075 - 796E5DD8B4B4B4FFC7C7C7FFADADADFF666665FC302100400000001A00000009 - 0000000200000001FFFFFF000000000100000006656565A6A3A3A3FFAFAFAFFF - ACACACFF686868FC00000042000000200000000900000001FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00F0B58E67 - FD8329F2FA6F00E6F49F59D8B891736D000000220000001BDEB2877AEC9530A3 - E17E008FD67B00847C6F5CDBB5B5B5FFCFCFCFFFAEAEAEFF666665FC573B004C - 513800262827240B00000002FFFFFF00FFFFFF000000000100000005656565A6 - A7A7A7FFAFAFAFFFACACACFF686868FC00000042000000200000000900000001 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00F1AF847AFF791BFEFC6C00F2F86E00E7F39E59D9B58F716FDAAB8391 - EF9131BCE87A00A9E37B009EDA7A00937E6F5ADFB7B7B7FFD6D6D6FFAEAEAEFF - 666665FC744C005883590133AE98681B00000002FFFFFF00FFFFFF0000000001 - 00000006656565A6AAAAAAFFAFAFAFFFACACACFF686868FC0000004100000020 - 0000000900000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00EFAB807AF9751AFFFF6900FEFB6B00F3F76E00E8 - F49E59DBF28D32D4ED7500C4EA7700B7E67900ABDF7900A0816F59E3B9B9B9FF - D9D9D9FFAEAEAEFF666665FD8B5A0164B391544D6E6659120000000300000002 - 000000020000000200000007656565A7A2A2A2FFAEAEAEFFACACACFF686868FC - 000000410000001F0000000900000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EEA77B7AF37219FFF86600FF - FF6900FEFB6B00F3F76E00E8F47000DDF07300D1ED7500C4E97700B8E37904AE - 847058E6BABABAFFDBDBDBFFAFAFAFFF686766FDAB874E824B433A3100000012 - 0000000B00000009000000090000000B00000010636363AA919191FFAEAEAEFF - ACACACFF686868FC0000003D0000001D0000000800000001FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EDA4777A - ED7018FFF16300FFF86600FFFF6900FEFB6B00F3F76E00E8F47000DDF07300D1 - EC7806C5E87A08BB937451E2B0B0B0FFE5E5E5FFB6B6B6FF777777FE57534E77 - 04040439000000290000002300000021000000210000002300000028626262D3 - 979797FFAFAFAFFFACACACFF666666FA00000037000000190000000700000001 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00EB9F727BE76D18FFEA6100FFF16300FFF86600FFFF6900FEFB6B00F3 - F76E00E8F47408DEF1790AD3ED7808C6CD8031CD939393FFF3F3F3FFBEBEBEFF - 9E9E9EFF717171F3595959A34545458447474782474747814747478147474782 - 5E5E5EC1666666FBACACACFFAFAFAFFFA7A7A7FF646464F10000002D00000012 - 00000005FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00E89B6E7BE16A17FFE25E00FFEA6100FFF16300FF - F86600FFFF6900FEFB7009F3F7750DE9F4760ADEF07A0ED3ED841ECB807E7DFE - F3F3F3FFDEDEDEFFC4C4C4FFACACACFF858585FF777777FF767676FF767676FF - 767676FF767676FF898989FFA9A9A9FFAEAEAEFFAEAEAEFF868686FF626262C9 - 0000001F0000000B00000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E7976A7BDB6716FFDB5C00FF - E25E00FFEA6100FFF16300FFF86C0AFFFF720FFEFB720DF4F7740AE9F4780FDF - F1841FD6BBA088E8ABABABFFFBFBFBFFE0E0E0FFC0C0C0FFB8B8B8FFB0B0B0FF - AEAEAEFFADADADFFADADADFFADADADFFAEAEAEFFAFAFAFFFAFAFAFFF9F9F9FFF - 636363F706060629000000110000000500000001FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E795667B - D56415FFD45900FFDB5C00FFE25E00FFEB690CFFF26E12FFF86F0FFFFF700DFE - FB710AF3F7740CE9F7984AE5DCB99EA78C8C8CD3A6A6A6FEE9E9E9FFEFEFEFFF - E1E1E1FFCECECEFFBABABAFFB0B0B0FFAEAEAEFFADADADFFACACACFFAAAAAAFF - 8B8B8BFF626262F953535365000000130000000700000002FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00E892627ACF6214FFCD5600FFD45900FFDD650EFFE46B15FFEB6C12FF - F26D10FFF86E0DFFFF6F0AFEFB7008F3F77812E9F5A86BDFCEAE958C81818186 - 7C7C7CF1818181FB848484FF838383FF828282FF7C7C7CFF727272FF707070FF - 6A6A6AFD656565F5656565D51F1F1F210000000E0000000600000002FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00EB94655DCD641BFEC65400FFD06010FFD86818FF - DE6A15FFE46A13FFEB6B10FFF26B0DFFF86C0BFFFF6E08FEFB7009F3F87710E8 - F6A566DED1AC9184646464316D6D6D26656565326B6B6B40696969416565653F - 5858583D5555553C202020180000000F0000000B000000070000000400000001 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00DE8C631CDF7E43E3C35D11FF - CC661BFFD26618FFD86716FFDE6813FFE46810FFEB690EFFF26A0BFFF86B08FF - FF6C06FEFC6E03F2FA7207E6F8A25DD9DFB18E711111110F0000000700000005 - 0000000500000005000000050000000500000004000000030000000200000001 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000001 - EC915F7DDB834BEDC7651CFFCB6419FFD16516FFD76613FFDD6711FFE4670EFF - EB680BFFF16809FFF86A06FFFF6B04FEFE6D01F0FD8221E7FDC299E0D8B29928 - 000000030000000100000001000000010000000100000001FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF0000000001EB916242ED9361A8EA925EB9EB9460BAED9662B9 - EF9864B9F09A66B9F39E69B8F5A06BB8F7A26DB7F9A56FB6FCAA75B7F8B68A77 - C29A81100000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFFFFFFC00000FFFFFFFFFFC00000FFFFFFC0 - 03C00000FFFFFF8001C00000FFFFFF8000C00000FFFFFFC000C00000FFFFFFE0 - 00C00000FFFFFFF000C00000FFFFFFE000C00000FF80000000C00000FF000000 - 00C00000FF00000000C00000FF00000000C00000FF00000000C00000FF000000 - 20C00000FF00000070C00000FF00000078C00000FF000000FDC00000FF000000 - FFC00000FF000000FFC00000FF000000FFC00000FF000000FFC00000FF000000 - FFC00000FF800000FFC00000FF800000FFC00000FFC00001FFC00000BFE0FF07 - FFC000009FA0FF07FFC000008F00FF07FFC000008400FF07FFC000008000FF07 - FFC0000080007F07FFC000008000FF07FFC0000080000007FFC0000080000007 - FFC000008000000FFFC000008000001FFFC000008000003FFFC000008001FFFF - FFC000008001FFFFFFC00000C000FFFFFFC00000E003FFFFFFC0000028000000 - 3000000060000000010020000000000000000000000000000000000000000000 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000020000000500000008 - 0000000B0000000D0000000E0000000F00000010000000110000001100000012 - 000000130000001300000013000000130000000F0000000B0000000600000002 - 00000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000001000000040000000A00000011 - 000000170000001B0000001E0000002000000021000000230000002500000026 - 00000028000000290000002A00000028000000230000001B0000001000000007 - 00000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000002000000067ECB833981DA8870 - 7CD7818478D07E8876CD7C8A75CC7A8C73CA7B8D73C87A8F71C6789070C57791 - 6FC276936EC375946EBF75925B93617117261B43000000300000001F0000000F - 00000005FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF009FE89F158EED93AE65DE69E83BCD3DFC - 31CD33FF31D033FF31D434FF31D834FF31DB34FF31DF34FF31E334FF31E734FF - 31EA34FF31EF34FF33F236FF51F457F582F38BE957955D730000002F00000019 - 00000009FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00A0E0A00890EC94AF2ABC2CFA00AB00FF - 00B000FF00B600FF00BB00FF00C100FF00C600FF00CB00FF00D100FF00D600FF - 00DC00FF00E100FF00E700FF00EC00FF1EF41EFF95F79CF0395F405000000021 - 0000000DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000010000000100000001 - 0000000100000001000000010000000100000001000000010000000100000001 - 000000010000000100000001000000010000000281B4810A90EB94B02ABC2CFA - 00AB00FF00B000FF00B600FF00BB00FF00C100FF00C600FF00CB00FF00D100FF - 00D600FF00DC00FF00E100FF14E914FF40F140FF64F865FF7EDB85B100000025 - 00000010FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF000000000200000003000000050000000600000006 - 0000000600000006000000060000000600000006000000060000000600000006 - 0000000600000006000000060000000600000007000000075679560F8FE991B3 - 2ABB2CFA00AB00FF00B000FF00B600FF00BB00FF00C100FF00C600FF00CB00FF - 00D100FF00D600FF12DE12FF3BE83BFF41ED41FF4BF24BFF90F299DE00000026 - 00000010FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF0000000002000000060000000C000000100000001300000015 - 0000001500000015000000150000001500000015000000150000001500000015 - 000000150000001500000015000000150000001500000015000000152B3D2B1D - 8AE28EB92BBB2CFB00AB00FF00B000FF00B600FF00BB00FF00C100FF00C600FF - 00CB00FF10D410FF36DF36FF3CE43CFF40E940FF45EE45FF95F49CE400000025 - 00000010FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF0000000002000000060000000F0000001C000000270000002C0000002E - 0000002F0000002F0000002F0000002F0000002F0000002F0000002F0000002F - 0000002F0000002F0000002F0000002F0000002F0000002F0000002F00000030 - 172017398CE390D618B319FF00AB00FF00B000FF00B600FF00BB00FF00C100FF - 0FC90FFF31D531FF36DB36FF3BE03BFF40E540FF45E945FF95F49DE400000024 - 00000010FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00000000030000000C40404024595959444C4C4C544747475A4545455D - 4747475D4747475D4747475D4949495E4949495E4949495E4B4B4B5F4B4B4B5F - 4B4B4B5F4D4D4D5F4D4D4D5F4D4D4D5F5050506050505060505050604F4F4F61 - 7FB1829E53C455F100A000FF00A600FF00AB00FF00B000FF00B600FF0DBE0DFF - 2CCC2CFF31D131FF36D636FF3BDC3BFF40E040FF45E545FF95F49DE400000023 - 0000000FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000005A6A6A62BA3A3A3967C7C7CEF7D7D7DF6888888F6909090F4 - 8A8A8AF5828282F7797979F9898989F6999999F2A6A6A6F0A6A6A6EFA9A9A9EE - A9A9A9EFA8A8A8EFA9A9A9EEABABABEFACACACEEAEAEAEEEB1B1B1EEB0C7B1F4 - 5DBF5FFD049705FF009B00FF00A000FF00A600FF00AB00FF0BB40BFF27C127FF - 2CC72CFF31CD31FF36D236FF3BD73BFF40DC40FF44E144FF95F59CE300000021 - 0000000EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000006CCCCCC4C686868F92E2E2EFF2A2A2AFF333333FF373737FF - 3B3B3BFF414141FF424242FF424242FF3E3E3EFF3F3F3FFF404040FF434343FF - 434343FF424242FF454545FF474747FF4B4B4BFF4F4F4FFF677768FF4EA250FF - 108D11FF09910AFF029503FF009B00FF00A000FF0AA90AFF22B622FF27BC27FF - 2CC32CFF31C831FF36CE36FF3AD33AFF3FD83FFF44DD44FF95F49CE30000001F - 0000000EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000007CDCDCD50616161FD1A1A1AFF232323FF2D2D2DFF313131FF - 343434FF3C3C3CFF3E3E3EFF3E3E3EFF3A3A3AFF393939FF3C3C3CFF424242FF - 434343FF414141FF434343FF454545FF4A4A4AFF5D685DFF4B904DFF1F8420FF - 188919FF108D11FF09910AFF029503FF089E08FF1DAB1DFF22B222FF27B827FF - 2CBE2CFF31C431FF35C935FF3ACF3AFF3FD43FFF44D944FF96F49CE30000001E - 0000000EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000007CCCCCC4F686868FD191919FF232323FF2D2D2DFF313131FF - 343434FF3E3E3EFF434343FF444444FF3E3E3EFF3E3E3EFF404040FF484848FF - 484848FF464646FF474747FF4B4B4BFF575C57FF497E4AFF2D7B2EFF29822AFF - 228723FF198A1AFF118E12FF0F9410FF1A9F1BFF1DA61DFF22AD22FF27B327FF - 2CB92CFF30BF30FF35C535FF3ACA3AFF3FD03FFF44D544FF96F39BE20000001C - 0000000DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000007CBCBCB4E6F6F6FFC191919FF242424FF313131FF353535FF - 383838FF424242FF484848FF4A4A4AFF424242FF414141FF454545FF4D4D4DFF - 4E4E4EFF4B4B4BFF4B4B4BFF4D504DFF476948FF3A703BFF387A39FF338134FF - 2C852DFF228723FF1E8D1FFF239624FF239E24FF20A221FE21A821FF26AE26FF - 2CB62CFF30BB30FF35C035FF3AC73AFF3FCC3FFF44D144FF96F49CE20000001B - 0000000CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000007CBCBCB4E757575FB1B1B1BFF272727FF353535FF383838FF - 3B3B3BFF454545FF4C4C4CFF4F4F4FFF454545FF464646FF494949FF535353FF - 545454FF505050FF505050FF4C5A4CFF486549FF456E46FF437944FF3F8140FF - 388639FF2F8730FF2F8F30FF2A922BFF2C9E2DFF2AA52BFB22A423FC2FAF2FFF - 8FE792EC53C953FB35BC35FF3AC23AFF3EC83EFF43CD43FF97F39CE100000018 - 0000000BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000007CACACA4D6F6F6FFC1C1C1CFF292929FF393939FF3C3C3CFF - 3E3E3EFF494949FF515151FF545454FF4A4A4AFF494949FF4D4D4DFF585858FF - 595959FF545454FF545454FF555955FF526352FF506D51FF507951FF4D834EFF - 468847FF3F8A40FF398E3AFF329033FF369D37FF36A837F82FA930F084D987D9 - 84C4883C94ED98BA56CA57FB39BE39FF3EC33EFF43C943FF96F39DE000000014 - 00000009FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000007C9C9C94C646464FC1D1D1DFF2C2C2CFF3D3D3DFF3F3F3FFF - 414141FF4C4C4CFF545454FF595959FF4C4C4CFF4C4C4CFF515151FF5D5D5DFF - 5E5E5EFF595959FF595959FF5A5A5AFF5E625EFF5C6D5CFF5D7A5EFF5B845CFF - 568B57FF4A894BFF448E45FF3B8E3CFF419D42FF48AE49F481CE84D1688E6C3B - 0000000C5E8D750B98EF9DBA5ACC5BFB3EBF3EFF44C545FF97F49DDB0000000E - 00000006FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000007C9C9C94C585858FD1D1D1DFF2E2E2EFF424242FF434343FF - 434343FF4F4F4FFF585858FF5F5F5FFF505050FF505050FF555555FF636363FF - 636363FF5D5D5DFF5E5E5EFF5E5E5EFF656565FF686C68FF6A7B6AFF6B886CFF - 648D65FF568B57FF508F51FF448D45FF4F9F50FF94CC97ED7C897E610000001B - 00000009000000028FC88F0998F09CBC5ECD5FFB57CC58FF90F194B300000008 - 00000003FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000007C8C8C84B5B5B5BFD1E1E1EFF313131FF464646FF464646FF - 444444FF525252FF5A5A5AFF626262FF535353FF525252FF575757FF696969FF - 686868FF616161FF626262FF626262FF696969FF6F6F6FFF7A7E7AFF7B8C7BFF - 749175FF638B64FF5C8F5DFF508D51FF83AC84FFBBBEBBD36363634E0000001A - 000000090000000200000001A0E0A0089AF29EBD98EE9BF08FEC974200000003 - 00000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000007C7C7C74A686868FB1F1F1FFF333333FF4A4A4AFF4A4A4AFF - 464646FF555555FF5D5D5DFF656565FF565656FF555555FF5B5B5BFF6D6D6DFF - 6E6E6EFF656565FF666666FF666666FF6D6D6DFF747474FF828282FF8E928EFF - 869786FF718D72FF6A916BFF739073FF858685FFB0B0B0D36363634E0000001A - 0000000900000002FFFFFF00FFFFFF00A0E0A008A5FDAB5A0000000100000001 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000007C6C6C649737373FA212121FF353535FF4E4E4EFF4D4D4DFF - 484848FF575757FF5F5F5FFF676767FF585858FF575757FF5E5E5EFF727272FF - 737373FF6A6A6AFF6B6B6BFF6B6B6BFF717171FF777777FF878787FF999999FF - 989C98FF7F907FFF819281FF797979FF797979FFA7A7A7D66060604D0000001A - 0000000900000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000007C6C6C649767676FA212121FF383838FF535353FF505050FF - 4A4A4AFF595959FF616161FF6A6A6AFF5B5B5BFF595959FF616161FF777777FF - 787878FF6E6E6EFF6E6E6EFF6E6E6EFF757575FF7B7B7BFF8D8D8DFFA0A0A0FF - A3A3A3FF909390FF8E8E8EFF787878FF717171FF9E9E9ED96060604D0000001A - 0000000900000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000007C5C5C548767676FA222222FF3A3A3AFF585858FF545454FF - 4B4B4BFF5B5B5BFF646464FF6C6C6CFF5B5B5BFF5C5C5CFF636363FF7B7B7BFF - 7C7C7CFF727272FF727272FF727272FF797979FF7E7E7EFF929292FFA7A7A7FF - AAAAAAFF979797FF929292FF7B7B7BFF787878FF9B9B9BDB6161614C0000001A - 0000000900000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000006C4C4C447767676FA222222FF3D3D3DFF5C5C5CFF575757FF - 4C4C4CFF5D5D5DFF656565FF6E6E6EFF5A5A5AFF5E5E5EFF666666FF7F7F7FFF - 818181FF767676FF767676FF767676FF7D7D7DFF828282FF979797FFAEAEAEFF - B1B1B1FF9D9D9DFF989898FF7D7D7DFF828282FFA4A4A4D56262624B00000019 - 0000000800000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000100000005CBCBCB45787878F9242424FF404040FF606060FF5B5B5BFF - 4D4D4DFF5D5D5DFF686868FF707070FF5B5B5BFF5F5F5FFF686868FF848484FF - 848484FF797979FF7A7A7AFF7A7A7AFF818181FF868686FF9D9D9DFFB5B5B5FF - B9B9B9FFA3A3A3FF9D9D9DFF7F7F7FFF8C8C8CFFAFAFAFCE6666664600000016 - 0000000700000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000001FFFFFF00FFFFFF00FFFFFF00 - 0000000100000004D4D4D441787878F9262626FF434343FF656565FF5F5F5FFF - 4D4D4DFF606060FF6A6A6AFF737373FF5A5A5AFF616161FF6A6A6AFF898989FF - 898989FF7D7D7DFF7E7E7EFF7E7E7EFF868686FF898989FFA2A2A2FFBCBCBCFF - C0C0C0FFA8A8A8FFA2A2A2FF7D7D7DFF939393FFB9B9B9C57575753D00000011 - 0000000500000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00000000010000000200000003000000030000000200000001FFFFFF00 - FFFFFF0000000002E3E3E33A838383F02B2B2BFF464646FF6A6A6AFF626262FF - 4D4D4DFF616161FF6A6A6AFF737373FF5A5A5AFF606060FF6C6C6CFF8D8D8DFF - 8D8D8DFF808080FF818181FF818181FF898989FF898989FFA3A3A3FFBDBDBDFF - C0C0C0FFA9A9A9FFA1A1A1FF7B7B7BFF9D9D9DFFC6C6C6A6919191300000000A - 00000003FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF0000000002000000050000000800000009000000070000000300000001 - FFFFFF0000000002DFDFDF23A6A6A692878787EF8E8E8DFAA0A09FFE9F9F9FFF - 989898FFA3A3A3FFA6A6A6FFACACACF9A1A1A1F6A7A7A7F5B0B0B0F4C1C1C1F1 - B4B4B4F2939393F67A7A7AF9797979F9969696F6AEAEAEFEC9C9C9FFD4D4D4FF - D5D5D5FFC7C7C7FFC4C4C4F7B5B5B5F2C1C1C1D1DDDDDD674545450F00000004 - 00000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF0000000004927C6C167060541B000000130000000F0000000900000004 - 000000020000000225252507A4A4A41FD1C2AF55D5B0757E7E7D7CF8DDDDDDFF - C0C0C0FFB8B8B8FF838383FF787878938787874AADADAD3AC8C8C833D3D3D330 - D4D4D431D5D5D532D5D5D532CECECE34B8B8B83C7F7F7FFBCFCFCFFFBDBDBDFF - B9B9B9FF828282FF737373788E8E8E55B1B1B13E888888150000000400000001 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF0000000006F6BF94A4F5BD90BD4C4139290000001A000000110000000A - 00000006000000070000000BCFB08C44E3A44C7CC37800676A6966F7DCDCDCFF - BBBBBBFFADADADFF6E6E6EFF4D4C478100000025000000100000000600000003 - 000000020000000200000002000000050000000D656565FAC9C9C9FFAFAFAFFF - AAAAAAFF676767FF1D1D1D590000002A000000120000000600000002FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00BD9B841CFCAC71DCFA7E18E0F0B98EC2403730300000001D00000013 - 0000000E0000000FD4B28E53ECA85193DA7F007AC97800756A6966F7DFDFDFFF - C2C2C2FFAEAEAEFF6E6E6EFF595344881F160029000000100000000500000002 - 00000001FFFFFF0000000001000000030000000C656565FACECECEFFAFAFAFFF - AAAAAAFF676767FF1D1D1D5800000029000000100000000500000001FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00E6B99D46FE9141F1FB6E00E9F87E19E2EEB88DC53F352E3200000020 - 0000001AD2AD8A64EFA654AAE37E0091DB7E0088CE7800816B6966F8E1E1E1FF - CBCBCBFFAEAEAEFF6E6E6EFF6559408E53390034433106160000000600000002 - FFFFFF00FFFFFF00FFFFFF00000000020000000B666666FAD3D3D3FFAFAFAFFF - AAAAAAFF676767FF1D1D1D5800000029000000100000000500000001FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00EAB99B4EFF8836FEFD6C00F3F96D00EAF67E1AE4EEB88EC73C332C35 - CBA38378F1A457C0E97A00A9E47B009EDE7C0094D379008D6B6966F9E3E3E3FF - D2D2D2FFAFAFAFFF6E6E6EFF6E5E3E95775000408C650F239B90770E00000002 - FFFFFF00FFFFFF00FFFFFF00000000020000000C676767FAD7D7D7FFAFAFAFFF - AAAAAAFF676767FF1D1D1D5800000029000000100000000500000001FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00E8B4954FFB8535FFFF6900FEFC6C00F4F96D00EBF67E1BE4F3BE95D7 - F2A15AD2ED7600C1EA7800B6E67900ABE17A00A0D77800996C6965F9E5E5E5FF - D5D5D5FFAFAFAFFF6E6E6EFF78623B9B9162064DC1A268395F5B540900000002 - 000000010000000100000002000000040000000D686868FACCCCCCFFAFAFAFFF - AAAAAAFF676767FF1D1D1D5700000028000000100000000400000001FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00E8B1914FF78333FFF96600FFFF6900FEFB6B00F4F86D00EBF6750CE3 - F27200D7EF7300CCEC7500C2E97800B7E57800ACDD7904A46C6965FAE6E6E6FF - D7D7D7FFAFAFAFFF6E6E6EFF81673BA4B2935E694D48401D0000000A00000007 - 0000000500000005000000060000000900000013676767FAB6B6B6FFAFAFAFFF - AAAAAAFF676767FF1E1E1E56000000260000000F0000000400000001FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00E6AC8C50F28032FFF36400FFF96600FFFF6900FEFB6B00F4F86D00EB - F56F00E1F27200D7EF7300CCEC7500C2E97A06B9E27906AF6C6964FAE6E6E6FF - DBDBDBFFB5B5B5FF757575FF918066BA332F2941000000230000001800000014 - 0000001300000013000000140000001700000021636363F9A9A9A9FFAFAFAFFF - AAAAAAFF676767FF1A1A1A4E000000230000000D00000003FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00E6A98750EE7E30FFEC6200FFF36400FFF96600FFFF6900FEFB6B00F4 - F86D00EBF56F00E1F27200D7EF7707CDEC7A09C4E77906BA7D7368F5CFCFCFFF - E6E6E6FFBABABAFF939393FF6F6F6EDC1717174D0000003A000000310000002D - 0000002C0000002C0000002D00000030313131586A6A6AFEAAAAAAFFAFAFAFFF - A9A9A9FF636363FC0000003A0000001E0000000B00000002FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00E4A48251EA7A2FFFE66000FFEC6200FFF36400FFF96600FFFF6900FE - FB6B00F4F86D00EBF57408E2F3780BD8EF7809CDEC7D0FC69A7E62EAAFAFAFFF - F3F3F3FFC3C3C3FFB3B3B3FF777777FD6E6E6EE85C5C5CBD5B5B5BBA5B5B5BB9 - 5B5B5BB85B5B5BB85B5B5BB9616161D0626262F98D8D8DFFAEAEAEFFAFAFAFFF - 9F9F9FFF626262F500000030000000170000000800000002FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00E4A27E51E6782DFFE05D00FFE66000FFEC6200FFF36400FFF96600FF - FF6900FEFB710AF4F8740DECF5750BE2F27709D8EF7F14D0D1863DD6828181FF - F8F8F8FFE3E3E3FFC7C7C7FFB5B5B5FF9C9C9CFF838383FF7C7C7CFF7C7C7CFF - 7C7C7CFF7C7C7CFF7B7B7BFF868686FFA3A3A3FFADADADFFAFAFAFFFADADADFF - 7B7B7BFF616161D0000000230000000F0000000500000001FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00E49E7951E1762CFFDA5B00FFE05D00FFE66000FFEC6200FFF36400FF - F96C0BFFFF720FFEFB730DF5F8730BECF5750AE2F37E16DAF18A2BD59C9289F5 - BABABAFFFAFAFAFFE4E4E4FFC3C3C3FFBBBBBBFFB6B6B6FFAFAFAFFFADADADFF - ADADADFFADADADFFADADADFFAFAFAFFFAFAFAFFFAFAFAFFFAEAEAEFF969696FF - 626262F80606062C000000150000000800000002FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00E49B7551DD722AFFD35900FFDA5B00FFE05D00FFE66000FFED6A0DFF - F46F11FFF96F0FFFFF710DFEFB710BF4F87209ECF67A14E3F8BE90E6AF9F9472 - 919191F4B7B7B7FFF1F1F1FFECECECFFDDDDDDFFD1D1D1FFC2C2C2FFB8B8B8FF - B3B3B3FFB0B0B0FFAFAFAFFFAEAEAEFFAEAEAEFFA9A9A9FF888888FF626262FC - 5555556F000000170000000A0000000400000001FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00E6997250D97029FFCD5600FFD35900FFDA5B00FFE2660EFFE86D14FF - ED6D12FFF46D10FFF96E0DFFFF6F0BFEFB7009F4F87610ECF78A30E7F2C29FD6 - 8F898559898989CB808080FD979797FFAFAFAFFFBFBFBFFFBDBDBDFFB9B9B9FF - A9A9A9FF989898FF939393FF8D8D8DFF787878FF666666FF626262EC43434339 - 000000130000000A0000000400000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00EB99704BD66F2AFCC75400FFCD5600FFD66310FFDD6A17FFE26A14FF - E86B12FFED6C10FFF46C0EFFF96D0BFFFF6E09FEFC7109F4F97712ECF8892FE6 - F4C29ED687807B4D7A7A7A477F7F7F90757575CC6C6C6CE16B6B6BE26A6A6AE2 - 686868E0656565DF636363DF656565D46565659D4C4C4C3C000000120000000C - 000000070000000300000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00DD8D6521DE7E42E7C15200FFCB6012FFD26719FFD76817FFDD6815FF - E26913FFE86A10FFED6B0EFFF46B0CFFF96C09FFFF6D07FEFC7108F4F9760EEB - F88527E5F5C19BD17D726C395252521F2B2B2B120000000B0000000A0000000A - 0000000A0000000A0000000A0000000A00000009000000070000000500000003 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF0000000003F09360CAC4621BFFC8651CFFCD651AFFD26618FFD76715FF - DD6713FFE26811FFE7690EFFED690CFFF36A0AFFF96A07FFFF6C05FEFD6E03F3 - FB6F03E9FB811CE1F8C096CA816B5C1D00000008000000040000000200000002 - 00000002000000020000000200000002000000020000000200000001FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF0000000001EC946823F09767D7D3783BFCCA671FFFCC6418FFD16416FF - D66613FFDC6611FFE2660FFFE7680CFFED680AFFF36908FFF96905FFFF6B03FE - FE6D01F2FD7D19EAFDB57FE1F2C2A0650000000400000001FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF0000000001C87D5809F095656EF19867B1F29A69BDF29D6CBD - F39E6FBDF4A171BCF5A374BCF6A577BCF7A879BCF9AA7CBBFAAD7FBBFBAF82BA - FCB384B9FAB68A90E7B6972E0000000300000001FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFFFFFE003F0000FFFFFFF0 - 000F0000FFFFFFF000070000FFFFFFF800030000FFFFFFFC00030000FFFFFFFE - 00030000FFFFFFFF00030000FFFFFFFE00030000FFC0000000030000FFC00000 - 00030000FFC0000000030000FFC0000000030000FFC0000000030000FFC00000 - 00030000FFC0000001030000FFC0000003830000FFC0000007C30000FFC00000 - 07E70000FFC0000007FF0000FFC0000007FF0000FFC0000007FF0000FFC00000 - 07FF0000FFC0000007FF0000FFC0000007FF0000FFC0000007FF0000FFC00000 - 07FF0000FFC000000FFF0000FFF81FF07FFF00009FF81FF07FFF00008FD81FF0 - 7FFF000087801FF07FFF000083001FF07FFF000080001FF07FFF000080001FF0 - 7FFF000080001FF07FFF000080001FF07FFF0000800000007FFF000080000000 - 7FFF000080000000FFFF000080020001FFFF000080010003FFFF00008000C00F - FFFF000080007FFFFFFF000080003FFFFFFF0000C0003FFFFFFF0000F0007FFF - FFFF000028000000400000008000000001002000000000000000000000000000 - 000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000 - 00000001000000020000000400000007000000080000000A0000000B0000000C - 0000000D0000000D0000000E0000000E0000000E0000000F0000001000000010 - 000000100000001000000010000000100000000E0000000C0000000900000005 - 000000030000000100000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000001 - 0000000200000005000000080000000D00000010000000140000001600000017 - 000000190000001A0000001A0000001B0000001C0000001D0000001E0000001F - 000000200000002100000021000000200000001D00000019000000130000000C - 000000070000000300000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000001 - 00000003000000070000000D000000130000001A0000001E0000002200000024 - 0000002600000028000000290000002B0000002C0000002E0000002F00000031 - 000000320000003300000033000000330000002F0000002A0000002100000017 - 0000000E0000000700000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000001 - 000000045171511088DB8E538DE893878AE891A488E48EA786E18CA985DF8BAA - 85E08BAB84DF8AAC83DD8BAD83DC8AAE82DB89AF81DA89AF81D988B080D888B1 - 80D987B27FD886B27ED487AE6EB2758B416A465E0000003B0000003100000023 - 000000160000000C00000005FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000001 - A5F2AA3C98F69ED579E97EEF55DA59FA45D548FF45D848FF45DA48FF45DC48FF - 45DE48FF45E148FF45E348FF45E549FF45E749FF45EA49FF45EC49FF45EE49FF - 45F049FF45F349FF48F54DFF68F76FF792FC9CF87FDA87BB192B1D4700000030 - 0000001F0000001100000007FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000ABD5AB06 - A4F6A9AE65D868FA00A800FF00AC00FF00B000FF00B400FF00B900FF00BD00FF - 00C100FF00C500FF00C900FF00CD00FF00D100FF00D500FF00D900FF00DD00FF - 00E100FF00E500FF00E900FF00ED00FF07F308FF6EFA74FA8FED98D70404043A - 00000027000000160000000AFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000001 - 9ADFAB0F9AF1A0B94ECD51F800A800FF00AC00FF00B000FF00B400FF00B900FF - 00BD00FF00C100FF00C500FF00C900FF00CD00FF00D100FF00D500FF00D900FF - 00DD00FF00E100FF00E500FF00E900FF13EE13FF42F542FF9AFBA1F973BC7A8C - 0000002C0000001A0000000CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000000000000010000000100000001000000010000000100000001 - 0000000100000001000000010000000100000001000000010000000100000001 - 0000000100000001000000010000000100000001000000010000000100000002 - 0000000291D1A1109BF2A1BA4FCD51F800A800FF00AC00FF00B000FF00B400FF - 00B900FF00BD00FF00C100FF00C500FF00C900FF00CD00FF00D100FF00D500FF - 00D900FF00DD00FF00E100FF12E712FF3EEE3EFF43F243FF68F86BFF91EF99D9 - 0000002F0000001C0000000EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000 - 0000000100000002000000020000000400000004000000050000000500000005 - 0000000500000005000000050000000500000005000000050000000500000005 - 0000000500000005000000050000000500000005000000050000000500000005 - 000000050000000682A9821499F09EBC4FCD51F800A800FF00AC00FF00B000FF - 00B400FF00B900FF00BD00FF00C100FF00C500FF00C900FF00CD00FF00D100FF - 00D500FF00D900FF11DF11FF3AE83AFF3FEB3FFF42EF42FF50F350FFA4FDAEF8 - 0000002F0000001D0000000EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000001 - 0000000200000005000000080000000A0000000C0000000D0000000D0000000E - 0000000E0000000E0000000E0000000E0000000E0000000E0000000E0000000E - 0000000E0000000E0000000E0000000E0000000E0000000E0000000E0000000E - 0000000E0000000E0000000E5A765A1C97EF9DBE4FCE52F900A800FF00AC00FF - 00B000FF00B400FF00B900FF00BD00FF00C100FF00C500FF00C900FF00CD00FF - 00D100FF10D810FF36E136FF3BE53BFF3FE83FFF42EC42FF46EF46FFABFFB5FF - 0000002F0000001D0000000EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000100000003 - 000000070000000C00000012000000170000001A0000001C0000001D0000001D - 0000001D0000001D0000001D0000001D0000001D0000001D0000001D0000001D - 0000001D0000001D0000001D0000001D0000001D0000001D0000001D0000001D - 0000001D0000001D0000001E0000001E3A4B3A2C94E898C44FCE52F900A800FF - 00AC00FF00B000FF00B400FF00B900FF00BD00FF00C100FF00C500FF00C900FF - 0FD00FFF32DA32FF37DE37FF3BE23BFF3EE53EFF42E942FF46EC46FFABFFB4FF - 0000002E0000001C0000000EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000006 - 0000000C0000001600000020000000290000002E000000310000003200000032 - 0000003200000032000000320000003200000032000000320000003200000032 - 0000003200000032000000320000003200000032000000320000003200000032 - 0000003200000032000000330000003300000035374F374A98ED9DE72DBC2FFF - 00A800FF00AC00FF00B000FF00B400FF00B900FF00BD00FF00C100FF0DC80DFF - 2FD32FFF33D733FF37DB37FF3BDF3BFF3EE23EFF42E642FF46E946FFABFFB4FF - 0000002C0000001C0000000EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000010000000300000009 - 00000014070707230F0F0F330C0C0C3E0B0B0B460A0A0A490A0A0A4A0A0A0A4A - 0A0A0A4A0A0A0A4A0A0A0A4A0A0A0A4A0A0A0A4A0A0A0A4A0A0A0A4A0A0A0A4A - 0A0A0A4A0A0A0A4A0A0A0A4A0A0A0A4A0A0A0A4A0A0A0A4A0A0A0A4A0A0A0A4A - 0A0A0A4A0A0A0A4A0A0A0A4A0A0A0A4B1C221C5287CC8BBD52C755F801A001FF - 00A400FF00A800FF00AC00FF00B000FF00B400FF00B900FF0CC00CFF2BCB2BFF - 30D030FF33D433FF37D837FF3ADC3AFF3EDF3EFF42E342FF45E645FFABFFB4FF - 0000002B0000001B0000000DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000001000000052222220F - AFAFAF46B8B8B86FA1A1A19A979797B8999999BB9C9C9CBB9C9C9CBB9C9C9CBC - 9D9D9DBE9A9A9AC09A9A9AC09E9E9EBDA1A1A1BBA6A6A6B9A7A7A7B7A7A7A7B7 - A9A9A9B6A9A9A9B6A9A9A9B7AAAAAAB7AAAAAAB7AAAAAAB8ACACACB8ADADADB8 - ADADADB9AEAEAEB9AFAFAFB9B2B5B2BCA9D9ACE153C156FB019801FF009C00FF - 00A000FF00A400FF00A800FF00AC00FF00B000FF0BB70BFF27C427FF2CC82CFF - 2FCC2FFF33D133FF37D537FF3AD83AFF3EDC3EFF42E042FF45E345FFABFFB4FF - 0000002A0000001A0000000DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000006AFAFAF2D - CBCBCB696E6E6EF95E5E5EFF5C5C5CFF636363FF696969FF6E6E6EFF6C6C6CFF - 686868FF616161FF575757FF676767FF737373FF7F7F7FFF8A8A8AFF8A8A8AFF - 8D8D8DFF8D8D8DFF8D8D8DFF8C8C8CFF8E8E8EFF8E8E8EFF909090FF929292FF - 939393FF969696FF9A9B9BFF9FC0A1FF58BA5AFF0F9710FF069607FF009800FF - 009C00FF00A000FF00A400FF00A800FF0AAF0AFF23BB23FF28C028FF2CC52CFF - 2FC92FFF33CD33FF36D136FF3AD53AFF3ED93EFF41DD41FF45E045FFABFFB3FF - 00000029000000190000000CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007CDCDCD44 - 868686CA4D4D4DFF1B1B1BFF232323FF2A2A2AFF313131FF323232FF353535FF - 3B3B3BFF3E3E3EFF3F3F3FFF3F3F3FFF3A3A3AFF393939FF383838FF383838FF - 3D3D3DFF3D3D3DFF3E3E3EFF3C3C3CFF3D3D3DFF404040FF424242FF454545FF - 474747FF4E4E4EFF738C74FF4CA34DFF138A14FF0E8E0FFF09910AFF049405FF - 009800FF009C00FF00A000FF09A709FF1FB31FFF24B824FF28BC28FF2BC12BFF - 2FC62FFF33CA33FF36CE36FF3AD23AFF3ED63EFF41DA41FF45DD45FFABFFB3FF - 00000027000000180000000CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007CCCCCC46 - 797979EA434343FF1B1B1BFF222222FF292929FF313131FF313131FF333333FF - 3A3A3AFF3E3E3EFF3E3E3EFF3E3E3EFF3A3A3AFF393939FF393939FF3A3A3AFF - 414141FF424242FF424242FF404040FF414141FF444444FF464646FF494949FF - 4E4E4EFF6B7E6CFF4C974DFF1E831FFF1A881BFF148B15FF0E8E0FFF09910AFF - 049405FF009800FF089F08FF1CAA1CFF20AF20FF24B424FF28B928FF2BBD2BFF - 2FC22FFF32C732FF36CB36FF3ACF3AFF3DD33DFF41D741FF45DA45FFABFFB3FF - 00000026000000170000000CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007CCCCCC46 - 7D7D7DE8464646FF1A1A1AFF222222FF292929FF313131FF303030FF323232FF - 3A3A3AFF3F3F3FFF414141FF424242FF3E3E3EFF3C3C3CFF3D3D3DFF3D3D3DFF - 454545FF464646FF464646FF434343FF444444FF474747FF494949FF4D4D4DFF - 616E61FF4A884BFF297D2AFF258126FF218622FF1A881BFF148B15FF0F8F10FF - 09910AFF0B970CFF18A218FF1CA71CFF20AC20FF23B123FF27B527FF2BBA2BFF - 2FBE2FFF32C332FF36C836FF3ACC3AFF3DD03DFF41D441FF44D744FFABFFB3FF - 00000025000000170000000BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007CBCBCB45 - 838383E4484848FF191919FF222222FF292929FF323232FF323232FF343434FF - 3D3D3DFF424242FF454545FF474747FF414141FF3F3F3FFF3F3F3FFF404040FF - 494949FF4A4A4AFF4B4B4BFF484848FF484848FF4A4A4AFF4D4D4DFF586158FF - 477848FF327433FF317C32FF2D812EFF29852AFF228723FF1B891CFF158C16FF - 139114FF1C991DFF1EA01FFF1CA31CFF20A820FF23AD23FF27B227FF2BB72BFF - 2EBB2EFF32C032FF36C436FF39C939FF3DCD3DFF41D141FF44D444FFABFFB2FF - 00000023000000160000000BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007CBCBCB45 - 878787E24A4A4AFF1A1A1AFF242424FF2C2C2CFF363636FF343434FF373737FF - 404040FF454545FF494949FF4B4B4BFF444444FF424242FF424242FF434343FF - 4D4D4DFF4E4E4EFF4F4F4FFF4B4B4BFF4B4B4BFF4D4D4DFF4D524DFF476948FF - 3C6C3DFF3A733BFF397B3AFF368137FF318532FF2A862BFF228723FF208C21FF - 249325FF239824FF249F25FF22A323FE1FA51FFF23AA23FF27AF27FF2CB42CFF - 2EB82EFF32BC32FF36C136FF39C539FF3DCA3DFF40CE40FF44D244FFABFFB2FF - 00000021000000150000000AFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007CACACA44 - 8B8B8BE04E4E4EFF1B1B1BFF262626FF2F2F2FFF393939FF373737FF393939FF - 434343FF484848FF4D4D4DFF4F4F4FFF474747FF454545FF454545FF464646FF - 515151FF535353FF535353FF4F4F4FFF4F4F4FFF505250FF4A5C4AFF466347FF - 446A45FF437344FF417A42FF3F8140FF3A853BFF328633FF2D882EFF309031FF - 2B922CFF289529FF2CA02DFF2BA52CFC23A424FA23A623FF29AD29FF7FDF83F6 - 6FD872FA32B932FF35BD35FF39C239FF3DC63DFF40CB40FF44CF44FFABFFB2FF - 0000001F0000001300000009FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007CACACA44 - 8B8B8BDF4D4D4DFF1C1C1CFF272727FF323232FF3D3D3DFF3A3A3AFF3C3C3CFF - 454545FF4B4B4BFF505050FF535353FF4A4A4AFF484848FF484848FF494949FF - 555555FF575757FF575757FF525252FF525252FF525352FF505B50FF506450FF - 4C694DFF4B714CFF4A7A4BFF488149FF448645FF3C863DFF3A8B3BFF378E38FF - 318F32FF2D932EFF34A035FF33A834FA28A529F327A627F879D67BF39BEAA0A1 - 9DF3A2C671D974FA35BA35FF39BE39FF3CC33CFF40C740FF44CC44FFABFFB2FF - 0000001C0000001100000008FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007C9C9C943 - 828282E3484848FF1D1D1DFF292929FF343434FF404040FF3C3C3CFF3D3D3DFF - 484848FF4D4D4DFF535353FF575757FF4D4D4DFF4A4A4AFF4B4B4BFF4B4B4BFF - 595959FF5A5A5AFF5B5B5BFF565656FF575757FF565656FF585958FF586358FF - 546854FF547155FF557B56FF538354FF508851FF488949FF418942FF3F8F40FF - 388E39FF349135FF3CA03DFF3CAA3DF830A730ED73CE75E99ADE9C951D2B1D12 - 76A676169FF4A4C774D976FA38BB38FF3CC03CFF40C440FF44C844FFABFFB1FF - 000000170000000E00000007FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007C9C9C943 - 7A7A7AE6444444FF1E1E1EFF2B2B2BFF373737FF444444FF3F3F3FFF3F3F3FFF - 4A4A4AFF505050FF555555FF5B5B5BFF515151FF4D4D4DFF4D4D4DFF4D4D4DFF - 5D5D5DFF5F5F5FFF5F5F5FFF595959FF595959FF595959FF5B5B5BFF606160FF - 5C675CFF5D715DFF5F7C60FF5E845FFF5B8A5CFF518952FF4B8B4CFF478E48FF - 3F8E40FF3B903CFF45A046FF47AC48F677CA79E792CA948E121C121C0000000B - 000000058FC98F129FF5A4C776DA78FA3CBD3CFF40C140FF46C647FFA9FFAFFC - 000000110000000A00000005FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007C8C8C842 - 717171EA404040FF1E1E1EFF2D2D2DFF3A3A3AFF474747FF414141FF404040FF - 4C4C4CFF525252FF585858FF5E5E5EFF535353FF4F4F4FFF4F4F4FFF505050FF - 616161FF626262FF636363FF5D5D5DFF5E5E5EFF5D5D5DFF5E5E5EFF646464FF - 666766FF677267FF6A7E6AFF69866AFF678D68FF5A895BFF548B55FF508E51FF - 468C47FF428F43FF4EA14FFF81C883F5AACDABAD0B0B0B2D0000001700000009 - 0000000400000002A0E1A010A0F6A5C778DB7AFA40BE40FF5ACE5BFF9CF7A0E2 - 0000000B0000000700000003FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007C8C8C842 - 6D6D6DEC404040FF1F1F1FFF2E2E2EFF3D3D3DFF4B4B4BFF444444FF424242FF - 4E4E4EFF535353FF5A5A5AFF616161FF565656FF525252FF515151FF535353FF - 656565FF666666FF676767FF606060FF606060FF606060FF616161FF676767FF - 696969FF707170FF768176FF768A76FF739074FF668B67FF5D8B5EFF588F59FF - 4E8C4FFF4A8F4BFF7AB57CFFB9CEBAE59C9E9C780000002A0000001600000009 - 00000003000000010000000197E397119FF6A6C87BDC7EFA84E286FA95F79C9A - 000000060000000400000002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007C7C7C741 - 767676E8444444FF1F1F1FFF313131FF3F3F3FFF4F4F4FFF464646FF434343FF - 4F4F4FFF565656FF5C5C5CFF626262FF585858FF545454FF535353FF545454FF - 686868FF6A6A6AFF6B6B6BFF636363FF636363FF646464FF646464FF6A6A6AFF - 6D6D6DFF747474FF818281FF838E83FF819581FF738F74FF678B68FF629063FF - 578C58FF6B9C6CFF97A498FFB4B4B4DB9C9C9C770000002A0000001500000009 - 0000000300000001000000000000000197E39711A2F7A7C8A4F9A9E681DB8E14 - 000000020000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007C7C7C741 - 7D7D7DE3494949FF202020FF313131FF424242FF535353FF484848FF454545FF - 525252FF585858FF5E5E5EFF656565FF5B5B5BFF555555FF555555FF565656FF - 6B6B6BFF6E6E6EFF6E6E6EFF666666FF676767FF676767FF666666FF6D6D6DFF - 707070FF787878FF868686FF909190FF8F9A8FFF7F927FFF728E73FF6D916EFF - 6D936EFF7F877FFF848484FFACACACDE9B9B9B770000002A0000001500000009 - 0000000300000001FFFFFF000000000000000000A0F0A010A8FCAC3A00000001 - 000000010000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007C6C6C640 - 868686DF4F4F4FFF212121FF343434FF454545FF565656FF494949FF454545FF - 545454FF5A5A5AFF606060FF686868FF5D5D5DFF575757FF585858FF585858FF - 707070FF717171FF727272FF696969FF6A6A6AFF6B6B6BFF6A6A6AFF707070FF - 737373FF7B7B7BFF8A8A8AFF969696FF9D9E9DFF8C968CFF7C8F7CFF7C947CFF - 7F837FFF767676FF7C7C7CFFA4A4A4E19B9B9B770000002A0000001500000009 - 0000000300000001FFFFFF00FFFFFF00FFFFFF00000000000000000000000000 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007C6C6C640 - 8A8A8ADC505050FF212121FF353535FF484848FF5A5A5AFF4C4C4CFF464646FF - 545454FF5B5B5BFF626262FF6A6A6AFF5E5E5EFF595959FF595959FF5B5B5BFF - 727272FF757575FF767676FF6D6D6DFF6D6D6DFF6D6D6DFF6C6C6CFF737373FF - 757575FF7F7F7FFF8E8E8EFF9B9B9BFFA3A3A3FF989998FF8A938AFF8C8E8CFF - 7C7C7CFF777777FF747474FF9D9D9DE49A9A9A760000002A0000001500000009 - 0000000300000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007C5C5C540 - 8B8B8BDB515151FF232323FF373737FF4A4A4AFF5F5F5FFF4E4E4EFF474747FF - 565656FF5D5D5DFF646464FF6A6A6AFF5E5E5EFF5B5B5BFF5A5A5AFF5C5C5CFF - 767676FF797979FF797979FF6F6F6FFF707070FF707070FF707070FF767676FF - 787878FF818181FF939393FFA0A0A0FFAAAAAAFF9E9E9EFF939393FF929292FF - 7F7F7FFF787878FF6E6E6EFF959595E79A9A9A760000002A0000001500000009 - 0000000300000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007C5C5C540 - 8B8B8BDA515151FF222222FF393939FF4D4D4DFF636363FF505050FF484848FF - 595959FF5F5F5FFF666666FF6D6D6DFF5F5F5FFF5D5D5DFF5D5D5DFF5D5D5DFF - 797979FF7C7C7CFF7D7D7DFF727272FF737373FF737373FF737373FF797979FF - 7A7A7AFF848484FF979797FFA6A6A6FFB0B0B0FFA2A2A2FF979797FF969696FF - 818181FF7B7B7BFF787878FF979797E699999974000000290000001500000009 - 0000000300000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000007C5C5C540 - 8C8C8CD9525252FF232323FF3B3B3BFF505050FF676767FF525252FF484848FF - 595959FF606060FF676767FF6F6F6FFF5F5F5FFF5D5D5DFF5D5D5DFF5F5F5FFF - 7C7C7CFF808080FF808080FF767676FF767676FF767676FF757575FF7C7C7CFF - 7C7C7CFF878787FF9B9B9BFFABABABFFB6B6B6FFA8A8A8FF9C9C9CFF9A9A9AFF - 848484FF7C7C7CFF828282FF9F9F9FE29A9A9A74000000280000001500000008 - 0000000300000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000006C9C9C93D - 8C8C8CD8535353FF242424FF3D3D3DFF525252FF6B6B6BFF545454FF494949FF - 5B5B5BFF616161FF696969FF707070FF606060FF5D5D5DFF5F5F5FFF5F5F5FFF - 808080FF838383FF838383FF787878FF797979FF797979FF797979FF808080FF - 808080FF8A8A8AFFA0A0A0FFAFAFAFFFBBBBBBFFADADADFFA1A1A1FF9F9F9FFF - 868686FF7E7E7EFF8C8C8CFFA6A6A6DD9B9B9B71000000260000001300000008 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000200000005CECECE3B - 8E8E8ED6535353FF252525FF3F3F3FFF555555FF707070FF565656FF494949FF - 5B5B5BFF636363FF6A6A6AFF717171FF606060FF5E5E5EFF616161FF626262FF - 838383FF868686FF868686FF7A7A7AFF7B7B7BFF7B7B7BFF7B7B7BFF838383FF - 818181FF8D8D8DFFA4A4A4FFB5B5B5FFC0C0C0FFB2B2B2FFA6A6A6FFA4A4A4FF - 888888FF7F7F7FFF949494FFAFAFAFD8A2A2A26C000000220000001100000007 - 0000000200000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000000100000001 - 0000000100000000FFFFFF00FFFFFF00000000000000000100000004D6D6D638 - 8F8F8FD4545454FF272727FF414141FF585858FF747474FF595959FF494949FF - 5C5C5CFF636363FF6A6A6AFF737373FF606060FF5C5C5CFF616161FF636363FF - 868686FF8A8A8AFF898989FF7D7D7DFF7E7E7EFF7F7F7FFF7F7F7FFF868686FF - 858585FF8F8F8FFFA7A7A7FFBABABAFFC5C5C5FFB5B5B5FFA8A8A8FFA5A5A5FF - 868686FF7C7C7CFF9C9C9CFFB9B9B9D1ADADAD640000001B0000000E00000005 - 0000000200000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF000000000000000001000000020000000200000002 - 00000002000000010000000100000000000000000000000100000003E0E0E036 - 949494C05E5E5EFF282828FF444444FF5B5B5BFF797979FF5A5A5AFF494949FF - 5D5D5DFF656565FF6C6C6CFF737373FF616161FF5C5C5CFF606060FF636363FF - 888888FF8D8D8DFF8D8D8DFF7F7F7FFF808080FF808080FF818181FF898989FF - 878787FF909090FFA9A9A9FFBBBBBBFFC5C5C5FFB5B5B5FFA8A8A8FFA5A5A5FF - 848484FF7A7A7AFFA3A3A3FFC3C3C3BCBEBEBE5B000000130000000900000004 - 00000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF000000000100000002000000040000000600000006 - 00000005000000030000000200000001000000000000000100000002E1E1E125 - D3D3D359848484FB616161FF6E6E6EFF818181FF999999FF808080FF717171FF - 818181FF888888FF8D8D8DFF939393FF838383FF818181FF848484FF888888FF - A6A6A6FFA9A9A9FF9C9C9CFF868686FF797979FF6E6E6EFF7A7A7AFF8C8C8CFF - 989898FFA9A9A9FFBCBCBCFFCBCBCBFFD3D3D3FFC7C7C7FFBEBEBEFFBBBBBBFF - A3A3A3FFA2A2A2FFBDBDBDF7D4D4D47AC1C1C13F0000000B0000000500000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF000000000200000005000000080000000B0000000C - 0000000A000000070000000500000002000000010000000100000002A4A4A40B - E6E6E640CDCDCD5C989898BE9E9D9BDDA09E9BF09E9E9EFFB6B6B6FFB0B0B0FF - B4B4B4FFB6B6B6FFA8A8A8FFB1B1B1E3B5B5B5D0BABABACCC0C0C0CAC6C6C6C8 - CECECEC2CECECEC2C5C5C5C5AFAFAFCEA0A0A0D4919191DC929292DBA2A2A2D5 - A9A9A9F0B3B3B3FFD1D1D1FFCFCFCFFFD0D0D0FFCACACAFFB6B6B6FFBFBFBFDD - BCBCBCD1C0C0C0BED6D6D679E0E0E05E7B7B7B13000000050000000200000001 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF000000000400000008C9AB953714110F1400000014 - 000000120000000E000000090000000500000002000000020000000300000005 - 0000000995939322DAC5AB64D7AB667D8F836CBA787878FFE6E6E6FFC4C4C4FF - B7B7B7FFB0B0B0FF727272FF6D6D6D995F5F5F467E7E7E37A0A0A02BB6B6B626 - C6C6C624CBCBCB23CBCBCB23CBCBCB23CDCDCD24CDCDCD24C3C3C326ABABAB2B - 7E7E7EC2838383FFCBCBCBFFB9B9B9FFB8B8B8FFAFAFAFFF707070FF6363637E - 646464528181813F9191912A0000000A00000005000000020000000100000000 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF0000000005AD907D1FFCCBA6DFEEC09E9F0D0C0A1E - 0000001B000000150000000F0000000900000006000000050000000600000009 - 26221F0FDFC09B61E4A54A7EC67A0066847255B76B6B6BFFE8E8E8FFC3C3C3FF - B0B0B0FFA7A7A7FF626262FF52504D8F0000002F0000001C0000000E00000007 - 000000040000000300000002000000020000000200000003000000050000000B - 676767B9747474FFC6C6C6FFAFAFAFFFAEAEAEFFA4A4A4FF5C5C5CFF3030306A - 00000036000000210000001100000007000000020000000100000000FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF0000000006F8C39EADFC8D34E6FAA45FDFE7BB99A5 - 0B0908250000001E00000017000000100000000C0000000A0000000B29252111 - E5C39F70EBA74E8FD9800073CA7A0070877353BB6B6B6BFFEBEBEBFFC8C8C8FF - B1B1B1FFA7A7A7FF626262FF5A554B93191200330000001B0000000E00000006 - 0000000200000001000000010000000000000000000000010000000300000009 - 686868B9767676FFC8C8C8FFAFAFAFFFAEAEAEFFA4A4A4FF5C5C5CFF3030306A - 000000360000002000000010000000060000000200000000FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF0000000007FDC7A2E6FC6F01E8F97000E0F8A45FE1 - E4B997A80A090828000000200000001900000013000000111E1A1715E7C39E80 - EEA64FA1E1810085D87E007ECD79007A8A7451BF6B6B6BFFEDEDEDFFCECECEFF - B3B3B3FFA7A7A7FF626262FF605948983C2A003B271C00200000000E00000006 - 000000020000000100000000FFFFFF00FFFFFF00000000010000000300000009 - 686868B8777777FFCACACAFFAFAFAFFFAEAEAEFFA4A4A4FF5C5C5CFF3030306A - 00000035000000200000000F000000060000000200000000FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF0096786513FDBF94EAFD6C00F0FB6E00E9F87000E2 - F7A45FE3E3B897AB0A090829000000220000001D1915131EE8C19E91F1A450B3 - E57E0096E07E008FDB7D0088D07900838D7450C36B6B6BFFF0F0F0FFD3D3D3FF - B4B4B4FFA7A7A7FF626262FF685D469C573B0044563C00294430031400000007 - 000000030000000100000000FFFFFF00FFFFFF00000000010000000300000009 - 686868B8797979FFCCCCCCFFAFAFAFFFAEAEAEFFA4A4A4FF5C5C5CFF3030306A - 00000035000000200000000F000000060000000200000000FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00AE8A7317FDB98DEBFE6B00F9FC6C00F1F96E00EA - F76F00E2F7A460E3E2B796AD0A08072C14110F2AE7BD9AA2F2A351C3E97A00A9 - E67B00A1E17C0099DC7C0092D479008D90744EC76B6B6BFFF2F2F2FFD9D9D9FF - B5B5B5FFA7A7A7FF626262FF6E6045A06F4B004C77510031845E091DA2957812 - 000000030000000100000000FFFFFF00FFFFFF00000000010000000300000009 - 686868B97B7B7BFFCECECEFFAFAFAFFFAEAEAEFFA4A4A4FF5C5C5CFF3030306A - 00000035000000200000000F000000060000000200000000FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00A7826C18FCB689EBFD6800FFFE6A00F9FB6B00F1 - F96D00EBF66F00E3F7A460E4E2B796AEE6BB99B2F3A053D1EC7700BBEA7900B3 - E67900ABE37A00A3DE7A009BD779009593754DCB6B6B6BFFF4F4F4FFDCDCDCFF - B6B6B6FFA7A7A7FF626262FF746243A4815500539061013AC09E5A349B928212 - 0000000300000001000000000000000000000000000000010000000300000009 - 676767B97D7D7DFFC6C6C6FFAFAFAFFFAEAEAEFFA4A4A4FF5C5C5CFF30303069 - 000000350000001F0000000F000000060000000200000000FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00A7806A18FBB487EBF96600FFFD6800FFFD6A00F9 - FB6B00F2F86D00EBF66F00E3F7A460E4F59F54DEF07400CBED7500C4EB7700BC - E87800B4E57800ABE17900A4DA78009E96754CCF6B6B6BFFF5F5F5FFDDDDDDFF - B6B6B6FFA7A7A7FF626262FF796441A98E5C005CBD985457B0A2892D05040408 - 000000040000000200000002000000020000000200000003000000050000000C - 676767BA7B7B7BFFB8B8B8FFAFAFAFFFAEAEAEFFA4A4A4FF5C5C5CFF31313168 - 000000340000001E0000000E000000050000000200000000FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00A77F6718FAB284EBF46500FFF96600FFFD6800FF - FD6A00FAFB6B00F2F86D00EBF66F00E3F47100DCF27300D4EF7300CCED7500C4 - EB7700BCE87800B4E47800ACE07A04A799764BD36B6B6BFFF7F7F7FFDEDEDEFF - B6B6B6FFA7A7A7FF626262FF7E663FAEB68F507C9B8C764A030303140000000C - 0000000800000007000000060000000600000007000000070000000A00000011 - 666666BB747474FFADADADFFAFAFAFFFAEAEAEFFA4A4A4FF5C5C5CFF31313168 - 000000320000001D0000000E000000050000000100000000FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00A77D6518FAAF81EBEF6300FFF46500FFF96600FF - FD6800FFFD6A00FAFB6B00F2F86D00EBF66F00E3F47100DCF17200D4EF7300CC - EC7500C4EA7600BCE87B06B6E37A06AF9C7549D66B6B6BFFF8F8F8FFE1E1E1FF - B9B9B9FFAAAAAAFF656565FF937F61C28D7D696B0000002C0000001E00000016 - 000000120000001100000010000000100000001000000012000000150000001C - 656565BE6E6E6EFFABABABFFAFAFAFFFAEAEAEFFA3A3A3FF5C5C5CFF32323265 - 0000002F0000001A0000000C000000040000000100000000FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00A1775F19F9AD7EEBEB6100FFEF6300FFF46500FF - F96600FFFD6800FFFD6A00FAFB6B00F2F86D00EBF66F00E3F47100DCF17200D4 - EF7300CCED7907C5EB7B08BFE77A06B7B57733CB666666FFF8F8F8FFEAEAEAFF - BEBEBEFFB0B0B0FF737373FF797672DD0E0E0E4B0000003A0000002E00000027 - 000000230000002200000021000000210000002200000023000000260000002D - 636363E5737373FFACACACFFAFAFAFFFAEAEAEFF9C9C9CFF5D5D5DFF0B0B0B45 - 0000002B000000170000000A0000000300000001FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00A1755D19F8AA7BEBE66000FFEB6100FFEF6300FF - F46500FFF96600FFFD6800FFFD6A00FAFB6B00F2F86D00EBF66F00E3F47100DC - F17608D5F0790ACEED7A08C6EA7B0AC0E58013BC6A6969FFE5E5E5FFF2F2F2FF - C4C4C4FFB7B7B7FF898989FF6E6E6EFB2A2A2A601010104E000000420000003C - 0000003900000038000000380000003800000038000000390000003C1414144B - 5F5F5FFE898989FFAEAEAEFFAFAFAFFFAEAEAEFF8C8C8CFF616161FA0000003A - 0000002500000013000000080000000200000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00A1735B19F7A778EBE15E00FFE66000FFEB6100FF - EF6300FFF46500FFF96600FFFD6800FFFD6A00FAFB6B00F2F86D00EBF67409E4 - F5780CDDF2780AD5EF7809CDED7D10C8E98219C4757371FDC5C5C5FFF9F9F9FF - D3D3D3FFBEBEBEFFB1B1B1FF777777FF6C6C6CFE6B6B6BE5606060D15F5F5FD0 - 606060D0606060D0606060D0606060D0606060D0606060CF626262EA5E5E5EFE - 6E6E6EFFAAAAAAFFAFAFAFFFAFAFAFFFACACACFF7A7A7AFF626262EA00000032 - 0000001E0000000F000000060000000200000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF009B6E561AF6A575EBDD5C00FFE15E00FFE66000FF - EB6100FFEF6300FFF46500FFF96600FFFD6800FFFD6A00FAFB710AF2F8750DEC - F6760CE4F4770ADDF1780BD5EF7E14D0ED841CCA897D71F68D8D8DFFFAFAFAFF - F0F0F0FFCECECEFFBEBEBEFFB4B4B4FF939393FF7D7D7DFF727272FF6E6E6EFF - 6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF6E6E6EFF757575FF8B8B8BFF - AAAAAAFFAFAFAFFFAFAFAFFFAEAEAEFFA3A3A3FF636363FF5E5E5EB800000028 - 000000170000000A0000000400000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF009B6C531AF5A272EBD85A00FFDD5C00FFE15E00FF - E66000FFEB6100FFEF6300FFF46500FFF96600FFFD6E0BFFFD730FFAFB730DF3 - F8740CECF6750AE4F4780DDEF27E16D8F0841FD2E48C36D27E7D7CFFCACACAFF - FAFAFAFFEBEBEBFFD0D0D0FFBEBEBEFFB9B9B9FFB3B3B3FFAFAFAFFFAAAAAAFF - AAAAAAFFAAAAAAFFAAAAAAFFAAAAAAFFAAAAAAFFABABABFFADADADFFAFAFAFFF - AFAFAFFFAFAFAFFFAEAEAEFFABABABFF787878FF616161F60000002D0000001C - 0000000F000000070000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF009B6A511AF4A06FEBD35900FFD85A00FFDD5C00FF - E15E00FFE66000FFEB6100FFEF6300FFF56C0CFFF97010FFFD710FFFFD720DFA - FB720CF3F8730AECF6760DE4F57D15DFF28420D9F6B983E1B2A69CD8959595FF - EBEBEBFFF9F9F9FFEEEEEEFFD2D2D2FFC6C6C6FFC0C0C0FFBABABAFFB4B4B4FF - B2B2B2FFB0B0B0FFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFF - AFAFAFFFAFAFAFFFAAAAAAFF8B8B8BFF5E5E5EFE484848630000001F00000012 - 00000009000000040000000100000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF009B694F1AF49E6CEBCF5700FFD35900FFD85A00FF - DD5C00FFE15E00FFE66000FFEC690DFFF06E12FFF56F11FFF96F0FFFFD700DFF - FD710CFAFB710AF2F8740CECF67A14E5F89B4EE8F7CFB3E57E7E7D54969696DB - 989898FFC6C6C6FFF4F4F4FFF1F1F1FFE9E9E9FFE0E0E0FFD7D7D7FFCCCCCCFF - C3C3C3FFBCBCBCFFB6B6B6FFB1B1B1FFAEAEAEFFAEAEAEFFAEAEAEFFAFAFAFFF - ADADADFFA3A3A3FF767676FF5E5E5EFE626262AA0000001E000000130000000A - 000000050000000200000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00A76F5318F39B69EBCA5500FFCF5700FFD35900FF - D85A00FFDD5C00FFE3670FFFE86D14FFEC6D13FFF06D11FFF56E0FFFF96E0DFF - FD6F0CFFFD700AFAFB710AF2F87711EDF77D19E6F8B177E9EAC4AAC281818054 - 9696969A858585FC888888FFAAAAAAFFC3C3C3FFDBDBDBFFE3E3E3FFE0E0E0FF - DBDBDBFFD0D0D0FFBEBEBEFFADADADFFA4A4A4FFA3A3A3FF9B9B9BFF8A8A8AFF - 797979FF636363FF626262F44D4D4D560000001A000000110000000A00000005 - 000000020000000100000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00AE725417F29967EBC55300FFCA5500FFCF5700FF - D35900FFDA6410FFE06A16FFE36B15FFE86C13FFEC6C11FFF06C0FFFF56D0EFF - F96D0CFFFD6E0AFFFD6F09FAFB720CF2F87813ECF77E1BE5F8B077E9ECC5A9C2 - 7877774C8181814D828282C67B7B7BEC727272FA676767FF5E5E5EFF5C5C5CFF - 5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5E5E5EFE626262F6 - 656565E1656565A600000018000000130000000D000000080000000400000002 - 0000000100000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00754C370BF59B6AEBC15200FFC55300FFCA5500FF - D26211FFD76918FFDB6917FFE06915FFE36A13FFE86B11FFEC6B10FFF06C0EFF - F56C0CFFF96C0BFFFD6D09FFFD6E07FAFB720DF2F97813ECF87C17E4F9AF73E7 - EDC5A7BF6D6B6A3F6A6A6A356C6C6C2D646464244848481C2222221722222217 - 2222221722222217171717160C0C0C1500000014000000140000001300000012 - 000000100000000E0000000B0000000800000005000000030000000100000001 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF0000000004F69A6ADDBF5405FFC15200FFC96013FF - CF671AFFD46719FFD76817FFDB6815FFE06813FFE36912FFE86A10FFEC6A0EFF - F06B0DFFF46C0BFFF96B09FFFD6C07FFFE6E07F9FB710AF1FA760EEBF87911E3 - F9AC6DE6EFC3A4BA5B5A582C5252521F3E3E3E150000000C0000000900000008 - 0000000800000008000000080000000800000008000000080000000700000007 - 00000006000000050000000400000003000000020000000100000000FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF0000000002F296667EDC7B3EF3C15E14FFC8651CFF - CB651BFFCF6619FFD36617FFD76715FFDB6714FFDF6812FFE36810FFE7690FFF - EC690DFFF06A0BFFF46B09FFF96B08FFFD6B06FFFE6E04F9FC6F05F1FB7106E9 - FA7507E1FBA968E4F3C4A3B4302C2A150000000B000000070000000400000003 - 0000000200000002000000020000000200000002000000020000000200000002 - 0000000200000002000000010000000100000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF000000000166402D05F89D6CD4D77E45FAC4641DFF - C8641BFFCB6419FFCF6517FFD36516FFD66614FFDB6612FFDF6711FFE3670FFF - E7680DFFEC680BFFF0690AFFF46A08FFF96A06FFFD6B04FFFE6D03F9FD6D01F0 - FC6F00E7FC7100DEFDB279E8F7C8A69F00000007000000040000000200000001 - 0000000100000000000000000000000000000000000000000000000000000000 - 000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF000000000000000001D1835D10F59A6AAAF19A6BED - E08750F8D97C3DFFDB7C3CFFDE7C3BFFE17D3AFFE37E3AFFE67F39FFE98038FF - EB8138FFEF8238FFF28237FFF48337FFF78436FFFB8536FFFE8635FFFF8935FA - FE954BF2FEB07AE6FDC39CCADFB59A2900000004000000020000000100000000 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000100000002E6906623 - F69C705AF49D6D8DF39E6F90F39E7191F3A07491F4A27691F4A47991F5A77B91 - F6A97E90F6AB8190F7AD838FF7AF868FF8B1888FF9B38A8FF9B58D8FFAB8908D - F6BD9A6AECB999350000000400000002000000020000000100000000FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFF00007FFFFFFFFFFC00001FFFFFFFFFF800000FFFFFFFFF - FC000007FFFFFFFFFE000007FFFFFFFFFF000007FFFFFFFFFF800007FFFFFFFF - FFC00007FFFFFFFFFFE00007FFFFFFFFFFC00007FFFE000000000007FFFC0000 - 00000007FFF8000000000007FFF8000000000007FFF8000000000007FFF80000 - 00000007FFF8000000000007FFF8000000000007FFF8000000000007FFF80000 - 00000C07FFF8000000001E07FFF8000000003F07FFF8000000007F87FFF80000 - 00007FCFFFF8000000007FFFFFF8000000007FFFFFF8000000007FFFFFF80000 - 00007FFFFFF8000000007FFFFFF8000000007FFFFFF8000000007FFFFFF80000 - 00007FFFFFF8000000007FFFFFF8000000007FFFFFFC00000000FFFFFFFE0000 - 0001FFFFFFFF807FF80FFFFFCFFF807FF80FFFFF87FD807FF80FFFFF83F1807F - F80FFFFF81E0007FF80FFFFF80C0007FF80FFFFF8000007FF80FFFFF8000007F - F80FFFFF8000007FF80FFFFF8000007FF80FFFFF8000007FF80FFFFF8000007F - F80FFFFF80000000000FFFFF80000000000FFFFF80000000001FFFFF80000000 - 003FFFFF80001000003FFFFF8000080000FFFFFF8000060001FFFFFF800003FF - FFFFFFFF800001FFFFFFFFFFC00000FFFFFFFFFFC000007FFFFFFFFFE00000FF - FFFFFFFFFC0007FFFFFFFFFF2800000080000000000100000100200000000000 - 0000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000001 - 0000000100000002000000020000000300000004000000050000000600000007 - 0000000700000008000000080000000900000009000000090000000A0000000A - 0000000A0000000A0000000B0000000B0000000B0000000B0000000C0000000C - 0000000C0000000C0000000C0000000C0000000D0000000D0000000D0000000D - 0000000D0000000E0000000E0000000E0000000D0000000D0000000C0000000C - 0000000B0000000A000000090000000700000006000000050000000300000002 - 00000002000000010000000100000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000001 - 0000000200000002000000030000000500000006000000070000000800000009 - 0000000B0000000C0000000C0000000D0000000E0000000E0000000E0000000F - 0000000F00000010000000100000001000000010000000100000001100000011 - 0000001100000012000000120000001300000013000000130000001300000013 - 0000001400000014000000140000001400000014000000130000001300000012 - 000000100000000F0000000D0000000B00000009000000070000000600000004 - 0000000300000002000000010000000100000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000000100000002 - 00000002000000030000000500000006000000080000000A0000000C0000000E - 0000000F00000010000000110000001300000013000000140000001400000015 - 0000001500000016000000160000001700000017000000170000001700000018 - 0000001800000019000000190000001A0000001A0000001A0000001B0000001B - 0000001C0000001C0000001C0000001C0000001C0000001B0000001A00000019 - 000000170000001600000013000000110000000E0000000B0000000900000007 - 0000000500000003000000020000000100000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF000000000000000000000000010000000100000002 - 000000030000000500000006000000080000000B0000000D0000001000000012 - 000000140000001600000017000000180000001A0000001A0000001B0000001C - 0000001C0000001C0000001D0000001E0000001E0000001F0000001F00000020 - 0000002000000021000000210000002200000022000000230000002300000024 - 0000002400000025000000250000002500000025000000240000002300000022 - 000000200000001E0000001B0000001700000014000000100000000D00000009 - 0000000700000005000000030000000200000001FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF000000000000000000000000010000000200000002 - 0000000400000006000000080000000A0000000E000000100000001300000016 - 000000190000001B0000001D0000001E00000020000000210000002200000023 - 0000002300000024000000250000002500000026000000260000002700000028 - 00000028000000290000002A0000002A0000002B0000002C0000002C0000002D - 0000002E0000002E0000002F0000002F0000002F0000002E0000002D0000002C - 0000002A00000027000000230000001F0000001B00000016000000120000000D - 0000000A00000007000000050000000300000002FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00000000000000000000000000000000010000000200000003 - 0000000500000007000000090000000C0000001000000013000000170000001A - 0000001D00000020000000220000002400000025000000270000002800000029 - 0000002A0000002B0000002C0000002C0000002D0000002E0000002F0000002F - 0000003000000031000000320000003300000033000000340000003500000036 - 0000003600000037000000380000003800000038000000380000003700000036 - 00000033000000300000002C00000028000000220000001D0000001700000012 - 0000000D00000009000000060000000400000002FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00000000000000000000000001000000010000000200000003 - 00000005000000070000000A0000000E000000120000001531533725588C5C3A - 5486583D5081543F4D7B51424B784F4449754D4648744C4647724B4746704949 - 456E484A446D484B446D484B436C474C436B464D4269454D4168444E4067444F - 406643503F6542513E6441523E6341533E6341533C613F543C603F553C603F55 - 3B5F3E563B5E3D573A5D3D583A5D3D581F301F4A000000400000003F0000003E - 0000003C0000003900000035000000300000002A000000240000001D00000017 - 000000110000000C000000080000000500000003FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00000000000000000000000001000000010000000200000003 - 00000005000000077EC6842B97EE9B7898F59EAB9AFBA1DC9DFFA4FD9DFFA4FF - 9DFFA4FF9DFFA4FF9DFFA4FF9DFFA4FF9DFFA4FF9DFFA5FF9DFFA5FF9DFFA5FF - 9DFFA5FF9DFFA5FF9DFFA5FF9DFFA5FF9DFFA6FF9DFFA6FF9DFFA6FF9DFFA6FF - 9DFFA6FF9DFFA6FF9DFFA6FF9DFFA6FF9DFFA7FF9DFFA7FF9DFFA7FF9DFFA7FF - 9DFFA7FF9DFFA7FF9DFFA7FF9DFFA8FF9CFFA7FE96F3A0E489DD92BE75BE7C98 - 436E4864000000410000003D00000038000000310000002B000000230000001C - 000000150000000F0000000A0000000700000004FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00000000000000000000000000000000010000000200000003 - 40604008A1F5A86DA3FEAAE29EFCA4F69CFDA2FB9CFEA3FF93FA99FF85F48BFF - 85F48BFF85F48BFF85F58BFF85F58BFF85F58BFF85F68BFF85F68CFF85F68CFF - 85F68CFF85F78CFF85F78CFF85F78CFF85F88CFF85F88DFF85F88DFF85F98DFF - 85F98DFF85F98DFF85F98DFF85FA8DFF85FA8DFF85FA8DFF85FB8DFF85FB8DFF - 85FB8DFF85FC8DFF85FC8DFF85FC8DFF93FE9DFF9DFFA8FF9DFFA8FF9DFFA8FF - 9DFEA7FC7DCA84A60B120B480000003F00000038000000310000002900000021 - 0000001A000000130000000D0000000900000005FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF0000000000000000000000000100000002A8F0AE2B - ACFDB2ACA1FAA7E696F69BFB5EDB62FF33C635FF14B815FF00B000FF00B200FF - 00B400FF00B600FF00B900FF00BB00FF00BD00FF00BF00FF00C100FF00C300FF - 00C500FF00C700FF00C900FF00CB00FF00CD00FF00CF00FF00D100FF00D300FF - 00D500FF00D700FF00D900FF00DB00FF00DD00FF00DF00FF00E100FF00E300FF - 00E500FF00E700FF00E900FF00EB00FF00ED00FF16F118FF37F73BFF5FFB66FF - 9BFFA6FF9DFFA8FF94F09EDE4A774F670000003E000000370000002F00000026 - 0000001E000000160000000F0000000A00000006FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000001ABF5AB18B1FEB6C0 - 9DF5A2E588EC8DFF23B925FF00A800FF00AA00FF00AC00FF00AE00FF00B000FF - 00B200FF00B400FF00B600FF00B900FF00BB00FF00BD00FF00BF00FF00C100FF - 00C300FF00C500FF00C700FF00C900FF00CB00FF00CD00FF00CF00FF00D100FF - 00D300FF00D500FF00D700FF00D900FF00DB00FF00DD00FF00DF00FF00E100FF - 00E300FF00E500FF00E700FF00E900FF00EB00FF00ED00FF00EF00FF00F200FF - 22F624FF84FE8DFFA1FFABFF9CFCA7F9426A45600000003B000000330000002A - 0000002100000019000000120000000C00000007FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000001B0F8B83C - AFFCB2C793F098F54DCC4FFF00A600FF00A800FF00AA00FF00AC00FF00AE00FF - 00B000FF00B200FF00B400FF00B600FF00B900FF00BB00FF00BD00FF00BF00FF - 00C100FF00C300FF00C500FF00C700FF00C900FF00CB00FF00CD00FF00CF00FF - 00D100FF00D300FF00D500FF00D700FF00D900FF00DB00FF00DD00FF00DF00FF - 00E100FF00E300FF00E500FF00E700FF00E900FF00EB00FF00ED00FF00EF00FF - 00F200FF0EF40FFF89FD8FFFABFFB5FF93ED9CD8080C0841000000370000002E - 000000240000001B000000130000000D00000008FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000100000001 - B1F9B53DAEFBB3C894F099F54CCC4FFF00A600FF00A800FF00AA00FF00AC00FF - 00AE00FF00B000FF00B200FF00B400FF00B600FF00B900FF00BB00FF00BD00FF - 00BF00FF00C100FF00C300FF00C500FF00C700FF00C900FF00CB00FF00CD00FF - 00CF00FF00D100FF00D300FF00D500FF00D700FF00D900FF00DB00FF00DD00FF - 00DF00FF00E100FF00E300FF00E500FF00E700FF00E900FF00EB00FF00ED00FF - 0AF00AFF3CF53CFF49F749FFA8FEAFFFA4FFAEFF79C6839C0000003A00000030 - 000000270000001D000000150000000E00000009FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000001 - 00000002AFF5B33DAEFBB3C894F098F54CCC4FFF00A600FF00A800FF00AA00FF - 00AC00FF00AE00FF00B000FF00B200FF00B400FF00B600FF00B900FF00BB00FF - 00BD00FF00BF00FF00C100FF00C300FF00C500FF00C700FF00C900FF00CB00FF - 00CD00FF00CF00FF00D100FF00D300FF00D500FF00D700FF00D900FF00DB00FF - 00DD00FF00DF00FF00E100FF00E300FF00E500FF00E700FF00E900FF0AEC0AFF - 3AF13AFF42F342FF44F544FF62F964FFB4FFBDFF9DFDA8FB3659395100000032 - 000000280000001F00000017000000100000000AFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000010000000100000001 - 0000000200000002AFF5B33DACFBB3C994F199F54CCC4FFF00A600FF00A800FF - 00AA00FF00AC00FF00AE00FF00B000FF00B200FF00B400FF00B600FF00B900FF - 00BB00FF00BD00FF00BF00FF00C100FF00C300FF00C500FF00C700FF00C900FF - 00CB00FF00CD00FF00CF00FF00D100FF00D300FF00D500FF00D700FF00D900FF - 00DB00FF00DD00FF00DF00FF00E100FF00E300FF00E500FF09E809FF38EE38FF - 40F040FF42F242FF44F344FF46F646FF94FD9AFFA5FFB0FF6CAF748000000033 - 0000002A0000002000000017000000100000000BFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000000000000000000000100000001000000010000000100000001 - 0000000100000001000000010000000100000001000000010000000100000001 - 0000000100000001000000010000000100000001000000010000000100000001 - 0000000100000001000000010000000100000001000000010000000100000001 - 0000000100000001000000010000000100000001000000010000000100000001 - 0000000100000001000000010000000100000001000000020000000200000002 - 000000020000000200000003A8F0AC40ACFCB3C994F199F54DCD4FFF00A600FF - 00A800FF00AA00FF00AC00FF00AE00FF00B000FF00B200FF00B400FF00B600FF - 00B900FF00BB00FF00BD00FF00BF00FF00C100FF00C300FF00C500FF00C700FF - 00C900FF00CB00FF00CD00FF00CF00FF00D100FF00D300FF00D500FF00D700FF - 00D900FF00DB00FF00DD00FF00DF00FF00E100FF09E409FF36EB36FF3EED3EFF - 40EF40FF42F042FF44F244FF45F345FF7AFA7DFFABFFB5FF84D58DA700000034 - 0000002A0000002100000018000000110000000BFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000 - 0000000100000001000000010000000200000002000000020000000200000002 - 0000000300000003000000030000000300000003000000030000000300000003 - 0000000300000003000000030000000300000003000000030000000300000003 - 0000000300000003000000030000000300000003000000030000000300000003 - 0000000300000003000000030000000300000003000000030000000300000003 - 0000000300000003000000030000000300000003000000030000000300000003 - 00000003000000040000000400000005A6EDAA41ACFCB1CB94F099F64DCD4FFF - 00A600FF00A800FF00AA00FF00AC00FF00AE00FF00B000FF00B200FF00B400FF - 00B600FF00B900FF00BB00FF00BD00FF00BF00FF00C100FF00C300FF00C500FF - 00C700FF00C900FF00CB00FF00CD00FF00CF00FF00D100FF00D300FF00D500FF - 00D700FF00D900FF00DB00FF00DD00FF09E009FF35E735FF3CEA3CFF3EEB3EFF - 40ED40FF42EF42FF43F043FF45F245FF62F664FFB1FFBAFF92EC9CCE00000034 - 0000002B0000002100000018000000110000000BFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000000100000001 - 0000000100000002000000020000000300000004000000040000000500000005 - 0000000500000005000000060000000600000006000000060000000600000006 - 0000000600000006000000060000000600000006000000060000000600000006 - 0000000600000006000000060000000600000006000000060000000600000006 - 0000000600000006000000060000000600000006000000060000000600000006 - 0000000600000006000000060000000600000006000000060000000600000006 - 0000000600000006000000070000000700000008A0E5A443ACFBB1CB94F099F6 - 4DCD4FFF00A600FF00A800FF00AA00FF00AC00FF00AE00FF00B000FF00B200FF - 00B400FF00B600FF00B900FF00BB00FF00BD00FF00BF00FF00C100FF00C300FF - 00C500FF00C700FF00C900FF00CB00FF00CD00FF00CF00FF00D100FF00D300FF - 00D500FF00D700FF00D900FF08DC08FF33E433FF3AE63AFF3CE83CFF3EEA3EFF - 40EB40FF42ED42FF43EF43FF45F045FF4CF34CFFB6FFBEFF9AFCA6F400000034 - 0000002B0000002100000019000000110000000BFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000010000000100000002 - 0000000200000003000000050000000500000007000000070000000800000009 - 00000009000000090000000A0000000A0000000A0000000A0000000A0000000A - 0000000A0000000A0000000A0000000A0000000A0000000A0000000A0000000A - 0000000A0000000A0000000A0000000A0000000A0000000A0000000A0000000A - 0000000A0000000A0000000A0000000A0000000A0000000A0000000A0000000A - 0000000A0000000A0000000A0000000A0000000A0000000A0000000A0000000A - 0000000A0000000A0000000A0000000B0000000B0000000C97D89B47AAF9AFCD - 94F198F74DCD4FFF00A600FF00A800FF00AA00FF00AC00FF00AE00FF00B000FF - 00B200FF00B400FF00B600FF00B900FF00BB00FF00BD00FF00BF00FF00C100FF - 00C300FF00C500FF00C700FF00C900FF00CB00FF00CD00FF00CF00FF00D100FF - 00D300FF00D500FF08D808FF31E031FF38E338FF3AE53AFF3CE73CFF3EE83EFF - 40EA40FF41EC41FF43ED43FF45EF45FF47F147FFB6FFBDFF9DFFA8FF00000034 - 0000002A0000002100000019000000110000000CFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF000000000000000001000000010000000200000003 - 000000040000000600000007000000090000000B0000000C0000000D0000000E - 0000000F0000000F000000100000001000000010000000100000001000000010 - 0000001000000010000000100000001000000010000000100000001000000010 - 0000001000000010000000100000001000000010000000100000001000000010 - 0000001000000010000000100000001000000010000000100000001000000010 - 0000001000000010000000100000001000000010000000100000001000000010 - 000000100000001000000010000000100000001100000011000000128ECB924B - A9F8AECF94F198F74DCD50FF00A600FF00A800FF00AA00FF00AC00FF00AE00FF - 00B000FF00B200FF00B400FF00B600FF00B900FF00BB00FF00BD00FF00BF00FF - 00C100FF00C300FF00C500FF00C700FF00C900FF00CB00FF00CD00FF00CF00FF - 00D100FF08D408FF30DD30FF36E036FF38E138FF3AE33AFF3CE53CFF3EE73EFF - 40E840FF41EA41FF43EC43FF45ED45FF47EF47FFB6FEBDFF9DFFA8FF00000033 - 0000002A0000002100000018000000110000000BFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00000000000000000000000001000000020000000300000005 - 00000007000000090000000B0000000E00000010000000120000001400000015 - 0000001600000017000000170000001700000017000000170000001700000017 - 0000001700000017000000170000001700000017000000170000001700000017 - 0000001700000017000000170000001700000017000000170000001700000017 - 0000001700000017000000170000001700000017000000170000001700000017 - 0000001700000017000000170000001700000017000000170000001700000017 - 0000001700000017000000180000001800000018000000190000001A0000001A - 84BC8751A7F6ADD194F099F74DCD50FF00A600FF00A800FF00AA00FF00AC00FF - 00AE00FF00B000FF00B200FF00B400FF00B600FF00B900FF00BB00FF00BD00FF - 00BF00FF00C100FF00C300FF00C500FF00C700FF00C900FF00CB00FF00CD00FF - 07D007FF2ED92EFF34DC34FF36DE36FF38E038FF3AE23AFF3CE33CFF3EE53EFF - 3FE73FFF41E941FF43EA43FF45EC45FF47EE47FFB6FEBCFF9DFFA7FF00000033 - 0000002A0000002100000018000000110000000BFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00000000000000000100000002000000030000000500000007 - 000000090000000D0000001000000014000000170000001A0000001C0000001E - 0000001F00000020000000210000002100000021000000210000002100000021 - 0000002100000021000000210000002100000021000000210000002100000021 - 0000002100000021000000210000002100000021000000210000002100000021 - 0000002100000021000000210000002100000021000000210000002100000021 - 0000002100000021000000210000002100000021000000210000002100000021 - 0000002100000021000000210000002100000021000000220000002300000023 - 0000002576AC7C5BA5F4AAD393F098F84DCD50FF00A600FF00A800FF00AA00FF - 00AC00FF00AE00FF00B000FF00B200FF00B400FF00B600FF00B900FF00BB00FF - 00BD00FF00BF00FF00C100FF00C300FF00C500FF00C700FF00C900FF07CC07FF - 2CD62CFF32D832FF34DA34FF36DC36FF38DE38FF3AE03AFF3CE23CFF3EE43EFF - 3FE53FFF41E741FF43E943FF45EB45FF47EC47FFB6FEBCFF9DFFA7FF00000032 - 000000290000002000000018000000110000000BFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF0000000000000000000000000100000002000000040000000700000009 - 0000000D00000012000000160000001B0000001F000000230000002600000028 - 0000002A0000002B0000002C0000002C0000002C0000002C0000002C0000002C - 0000002C0000002C0000002C0000002C0000002C0000002C0000002C0000002C - 0000002C0000002C0000002C0000002C0000002C0000002C0000002C0000002C - 0000002C0000002C0000002C0000002C0000002C0000002C0000002C0000002C - 0000002C0000002C0000002C0000002C0000002C0000002C0000002C0000002C - 0000002C0000002C0000002C0000002C0000002C0000002D0000002D0000002E - 0000002F000000316B9C7064A4F1A9D794F099F94DCD50FF00A600FF00A800FF - 00AA00FF00AC00FF00AE00FF00B000FF00B200FF00B400FF00B600FF00B900FF - 00BB00FF00BD00FF00BF00FF00C100FF00C300FF00C500FF07C907FF2AD22AFF - 31D531FF32D732FF34D934FF36DB36FF38DD38FF3ADF3AFF3CE03CFF3DE23DFF - 3FE43FFF41E641FF43E743FF45E945FF46EB46FFB6FEBCFF9DFFA7FF00000031 - 000000280000002000000017000000100000000BFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF000000000000000001000000020000000300000005000000090000000D - 00000012000000170000001D00000023000000280000002D0000003000000033 - 0000003500000036000000370000003800000038000000380000003800000038 - 0000003800000038000000380000003800000038000000380000003800000038 - 0000003800000038000000380000003800000038000000380000003800000038 - 0000003800000038000000380000003800000038000000380000003800000038 - 0000003800000038000000380000003800000038000000380000003800000038 - 0000003800000038000000380000003800000038000000380000003900000039 - 0000003A0000003B46644957A2EAA7CB94EE99F362D665FF02A502FF00A600FF - 00A800FF00AA00FF00AC00FF00AE00FF00B000FF00B200FF00B400FF00B600FF - 00B900FF00BB00FF00BD00FF00BF00FF00C100FF07C507FF29CE29FF2FD12FFF - 31D331FF32D532FF34D734FF36D936FF38DB38FF3ADD3AFF3CDF3CFF3DE13DFF - 3FE23FFF41E441FF43E643FF45E845FF46E946FFB6FEBCFF9DFFA7FF00000031 - 000000280000001F00000017000000100000000BFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF0000000000000000010000000200000004000000070000000B00000010 - 000000160000001D000000240000002B00000031000000370000003B0000003E - 0000004000000041000000420000004300000043000000430000004300000043 - 0000004300000043000000430000004300000043000000430000004300000043 - 0000004300000043000000430000004300000043000000430000004300000043 - 0000004300000043000000430000004300000043000000430000004300000043 - 0000004300000043000000430000004300000043000000430000004300000043 - 0000004300000043000000430000004300000044000000440000004400000044 - 000000453F58425D9FDFA5C390E895F15DD160FF02A102FF00A200FF00A400FF - 00A600FF00A800FF00AA00FF00AC00FF00AE00FF00B000FF00B200FF00B400FF - 00B600FF00B900FF00BB00FF00BD00FF06C106FF27CA27FF2DCE2DFF2FD02FFF - 30D230FF32D432FF34D634FF36D836FF38DA38FF3ADB3AFF3BDD3BFF3DDF3DFF - 3FE13FFF41E341FF43E443FF44E644FF46E846FFB6FEBCFF9DFFA7FF00000030 - 000000270000001E00000017000000100000000BFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF0000000000000000010000000300000005000000090000000D00000013 - 0000001A040404222626263123232339212121401E1E1E461D1D1D4A1B1B1B4E - 1B1B1B501A1A1A521A1A1A531A1A1A531A1A1A531A1A1A531A1A1A531A1A1A53 - 1B1B1B531B1B1B531B1B1B531B1B1B531B1B1B531B1B1B531B1B1B531B1B1B53 - 1B1B1B531B1B1B531B1B1B531B1B1B531B1B1B531D1D1D541D1D1D541D1D1D54 - 1D1D1D541D1D1D541D1D1D541D1D1D541D1D1D541D1D1D541D1D1D541D1D1D54 - 1D1D1D541D1D1D541D1D1D541E1E1E541E1E1E541E1E1E541E1E1E541E1E1E54 - 1E1E1E541E1E1E541E1E1E541E1E1E541E1E1E541E1E1E551E1E1E551F1F1F55 - 4C5D4C69A1DAA5C08DE190EF59CB5BFF029D02FF009E00FF00A000FF00A200FF - 00A400FF00A600FF00A800FF00AA00FF00AC00FF00AE00FF00B000FF00B200FF - 00B400FF00B600FF00B900FF06BD06FF25C725FF2BCA2BFF2DCC2DFF2FCE2FFF - 30D030FF32D232FF34D434FF36D636FF38D838FF3ADA3AFF3BDC3BFF3DDE3DFF - 3FDF3FFF41E141FF43E343FF44E544FF46E646FFB6FEBCFF9DFFA7FF0000002F - 000000270000001E00000016000000100000000AFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 00000000000000010000000200000003000000060000000A0000000F57575720 - B7B7B751BDBDBD6BB9B9B976B0B0B07CAAAAAA81A5A5A586A2A2A28AA0A0A08C - 9E9E9E8E9D9D9D8F9D9D9D909D9D9D919D9D9D929E9E9E929E9E9E929F9F9F92 - 9F9F9F93A0A0A093A0A0A093A1A1A194A1A1A194A1A1A194A2A2A294A2A2A295 - A2A2A295A3A3A395A3A3A395A3A3A396A4A4A496A4A4A496A5A5A597A5A5A597 - A5A5A597A6A6A697A6A6A697A7A7A798A7A7A798A8A8A898A8A8A898A8A8A899 - A9A9A999A9A9A999AAAAAA9AAAAAAA9AAAAAAA9AABABAB9AABABAB9BABABAB9B - ACACAC9BACACAC9CACACAC9CADADAD9CADADAD9CAEAEAE9DAEAEAE9DB3BCB3A7 - B9E5BBD790DF94F356C658FE029902FF009A00FF009C00FF009E00FF00A000FF - 00A200FF00A400FF00A600FF00A800FF00AA00FF00AC00FF00AE00FF00B000FF - 00B200FF00B400FF05B805FF23C323FF29C629FF2BC82BFF2DCA2DFF2ECC2EFF - 30CE30FF32D032FF34D234FF36D436FF38D638FF39D839FF3BDA3BFF3DDC3DFF - 3FDE3FFF41E041FF42E142FF44E344FF46E546FFB6FEBCFF9DFFA7FF0000002E - 000000260000001E00000016000000100000000AFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 00000000000000010000000200000004000000070000000C81818120D2D2D261 - C9C9C96BBEBEBE72B1B1B17C959595B5888888DA8A8A8ADD8C8C8CDE8E8E8EDD - 929292DE949494DD979797DC999999DC969696DB969696DC959595DD949494DE - 939393DF919191E08E8E8EE28D8D8DE3919191E0959595DF989898DD9B9B9BDC - 9E9E9EDAA1A1A1D8A6A6A6D6A7A7A7D4A7A7A7D5A7A7A7D5A7A7A7D4A9A9A9D4 - A9A9A9D4AAAAAAD3A9A9A9D3A9A9A9D4A9A9A9D4A9A9A9D4A9A9A9D4A9A9A9D4 - A9A9A9D4AAAAAAD4ABABABD4ABABABD4ABABABD4ACACACD4ADADADD4ADADADD4 - AEAEAED3AFAFAFD3AFAFAFD3B1B1B1D4B2B2B2D4B3B3B3D4B7BEB9DABFE0C1EC - 92DC95F958C35AFD09990AFD029703FF009800FF009A00FF009C00FF009E00FF - 00A000FF00A200FF00A400FF00A600FF00A800FF00AA00FF00AC00FF00AE00FF - 00B000FF05B405FF21BE21FF27C127FF29C429FF2BC62BFF2DC92DFF2ECB2EFF - 30CD30FF32CF32FF34D134FF36D336FF38D538FF39D739FF3BD93BFF3DDA3DFF - 3FDC3FFF41DE41FF42E042FF44E244FF46E346FFB6FEBBFF9DFFA7FF0000002D - 000000250000001D000000160000000F0000000AFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 00000000000000010000000200000005000000071313130DD4D4D453D2D2D266 - C5C5C56D919191B7686868FE636363FF666666FF6A6A6AFF6D6D6DFF717171FF - 757575FF797979FF7C7C7CFF808080FF7F7F7FFF7D7D7DFF7A7A7AFF777777FF - 737373FF6C6C6CFF666666FF5E5E5EFF636363FF6D6D6DFF767676FF7F7F7FFF - 888888FF909090FF999999FFA2A2A2FFA2A2A2FFA1A1A1FFA2A2A2FFA4A4A4FF - A5A5A5FFA5A5A5FFA5A5A5FFA5A5A5FFA5A5A5FFA5A5A5FFA5A5A5FFA5A5A5FF - A6A6A6FFA6A6A6FFA7A7A7FFA7A7A7FFA8A8A8FFA8A8A8FFAAAAAAFFABABABFF - ABABABFFACACACFFADADADFFAFAFAFFFB0B0B0FFB3B7B3FFBDD7BFFF91D693FF - 5AC15CFF149B15FF0C980DFF079708FF029703FF009800FF009A00FF009C00FF - 009E00FF00A000FF00A200FF00A400FF00A600FF00A800FF00AA00FF00AC00FF - 05B005FF20BA20FF25BD25FF27BF27FF29C229FF2BC52BFF2CC72CFF2EC92EFF - 30CB30FF32CD32FF34CF34FF36D136FF37D337FF39D539FF3BD73BFF3DD93DFF - 3FDB3FFF40DD40FF42DE42FF44E044FF46E246FFB6FEBBFF9DFFA6FF0000002D - 000000250000001D000000150000000F0000000AFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 00000000000000010000000200000005000000088C8C8C1BDBDBDB61D0D0D066 - A0A0A0985C5C5CFF5B5B5BFF5D5D5DFF4C4C4CFF4B4B4BFF4E4E4EFF505050FF - 545454FF575757FF595959FF5C5C5CFF5C5C5CFF5C5C5CFF5B5B5BFF5C5C5CFF - 5B5B5BFF5A5A5AFF595959FF555555FF555555FF595959FF5F5F5FFF626262FF - 636363FF666666FF696969FF6C6C6CFF6E6E6EFF6E6E6EFF6E6E6EFF727272FF - 727272FF727272FF727272FF727272FF717171FF707070FF717171FF717171FF - 727272FF737373FF747474FF757575FF757575FF777777FF787878FF797979FF - 7A7A7AFF7C7C7CFF7D7D7DFF7E7E7EFF868986FFA1B6A2FF85C687FF56B857FF - 169517FF109411FF0C940DFF09950AFF059506FF019602FF009800FF009A00FF - 009C00FF009E00FF00A000FF00A200FF00A400FF00A600FF00A800FF05AC05FF - 1EB61EFF23B923FF25BB25FF27BE27FF29C029FF2BC22BFF2CC52CFF2EC72EFF - 30C930FF32CC32FF34CE34FF36D036FF37D237FF39D439FF3BD53BFF3DD73DFF - 3ED93EFF40DB40FF42DD42FF44DF44FF46E146FFB6FEBBFF9DFFA6FF0000002C - 000000240000001C000000150000000F0000000AFFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000020000000500000009B6B6B62BDADADA61CDCDCD67 - 6D6D6DF6555555FF4A4A4AFF1C1C1CFF1D1D1DFF212121FF252525FF272727FF - 2C2C2CFF303030FF323232FF333333FF303030FF333333FF363636FF3A3A3AFF - 3D3D3DFF3F3F3FFF3E3E3EFF3F3F3FFF3E3E3EFF3F3F3FFF3F3F3FFF3C3C3CFF - 393939FF393939FF393939FF383838FF383838FF383838FF383838FF3C3C3CFF - 3D3D3DFF3D3D3DFF3D3D3DFF3D3D3DFF3C3C3CFF3A3A3AFF3B3B3BFF3C3C3CFF - 3D3D3DFF3F3F3FFF404040FF404040FF414141FF444444FF454545FF454545FF - 474747FF4A4A4AFF4B4B4BFF575A57FF849585FF75B276FF50AD52FF158B16FF - 108B11FF0E8E0FFF0B8F0CFF089009FF069207FF049405FF019602FF009800FF - 009A00FF009C00FF009E00FF00A000FF00A200FF00A400FF04A704FF1CB21CFF - 21B521FF23B723FF25BA25FF27BC27FF29BE29FF2AC02AFF2CC32CFF2EC62EFF - 30C830FF32CA32FF34CC34FF35CE35FF37D037FF39D239FF3BD43BFF3DD63DFF - 3ED83EFF40DA40FF42DB42FF44DD44FF46DF46FFB6FEBBFF9DFFA6FF0000002B - 000000230000001C000000150000000E00000009FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009BBBBBB2EDADADA61CDCDCD67 - 646464FE5B5B5BFF282828FF1A1A1AFF1C1C1CFF212121FF252525FF272727FF - 2C2C2CFF2F2F2FFF313131FF333333FF303030FF323232FF363636FF3A3A3AFF - 3C3C3CFF3E3E3EFF3E3E3EFF3E3E3EFF3E3E3EFF3F3F3FFF3F3F3FFF3C3C3CFF - 393939FF393939FF383838FF383838FF373737FF373737FF373737FF3D3D3DFF - 3E3E3EFF3E3E3EFF3F3F3FFF3F3F3FFF3F3F3FFF3D3D3DFF3D3D3DFF3E3E3EFF - 3F3F3FFF404040FF414141FF434343FF434343FF454545FF474747FF484848FF - 494949FF4C4C4CFF565856FF7F8D80FF71AA73FF4EA650FF19871AFF168917FF - 148B15FF118C12FF0E8E0FFF0B8F0CFF09910AFF069207FF049405FF019602FF - 009800FF009A00FF009C00FF009E00FF00A000FF04A304FF1AAD1AFF1FB11FFF - 21B321FF23B623FF25B825FF27BA27FF29BD29FF2ABF2AFF2CC12CFF2EC32EFF - 30C630FF32C832FF34CA34FF35CC35FF37CE37FF39D039FF3BD23BFF3CD43CFF - 3ED63EFF40D840FF42DA42FF44DC44FF46DE46FFB6FEBBFF9DFFA6FF0000002A - 000000230000001B000000140000000E00000009FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009BABABA2DD8D8D861CBCBCB67 - 646464FE5F5F5FFF181818FF1A1A1AFF1C1C1CFF202020FF242424FF272727FF - 2C2C2CFF2F2F2FFF313131FF323232FF2F2F2FFF323232FF353535FF393939FF - 3B3B3BFF3D3D3DFF3E3E3EFF3E3E3EFF3F3F3FFF3E3E3EFF3E3E3EFF3B3B3BFF - 383838FF383838FF393939FF383838FF383838FF393939FF393939FF3F3F3FFF - 404040FF414141FF414141FF414141FF414141FF3F3F3FFF3F3F3FFF404040FF - 414141FF424242FF434343FF454545FF454545FF484848FF484848FF4A4A4AFF - 4C4C4CFF565756FF7A857AFF6DA26EFF4EA04FFF1E831FFF1B851CFF19871AFF - 168917FF148B15FF118C12FF0E8E0FFF0B8F0CFF09910AFF069207FF049405FF - 019602FF009800FF009A00FF009C00FF049F04FF19A919FF1DAD1DFF1FAF1FFF - 21B221FF23B423FF25B625FF27B927FF28BB28FF2ABD2AFF2CBF2CFF2EC12EFF - 30C430FF32C732FF33C933FF35CB35FF37CD37FF39CF39FF3BD13BFF3CD33CFF - 3ED53EFF40D740FF42D842FF44DA44FF46DC46FFB6FEBBFF9DFFA6FF0000002A - 000000230000001B000000140000000E00000009FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B7B7B72ED7D7D760CBCBCB67 - 686868FE626262FF181818FF1A1A1AFF1C1C1CFF202020FF242424FF262626FF - 2C2C2CFF2F2F2FFF313131FF323232FF2F2F2FFF313131FF353535FF393939FF - 3B3B3BFF3D3D3DFF3E3E3EFF3E3E3EFF3E3E3EFF3E3E3EFF3F3F3FFF3C3C3CFF - 393939FF393939FF3A3A3AFF3A3A3AFF3A3A3AFF3A3A3AFF3B3B3BFF414141FF - 424242FF434343FF444444FF434343FF434343FF404040FF414141FF414141FF - 434343FF444444FF454545FF464646FF474747FF494949FF4B4B4BFF4C4C4CFF - 545554FF747D75FF679868FF4C984DFF248025FF208121FF1F8420FF1D871EFF - 1A881BFF178A18FF148B15FF118C12FF0E8E0FFF0C900DFF09910AFF069207FF - 049405FF019602FF009800FF049B04FF17A517FF1BA81BFF1DAB1DFF1FAD1FFF - 21B021FF23B223FF25B525FF27B727FF28B928FF2ABB2AFF2CBE2CFF2EC02EFF - 30C230FF32C432FF33C733FF35C935FF37CB37FF39CD39FF3ACF3AFF3CD13CFF - 3ED33EFF40D540FF42D742FF44D944FF46DB46FFB6FEBBFF9DFFA6FF00000029 - 000000220000001A000000140000000E00000009FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B7B7B72ED7D7D760CBCBCB67 - 6C6C6CFE666666FF171717FF1A1A1AFF1B1B1BFF202020FF242424FF262626FF - 2C2C2CFF2F2F2FFF313131FF323232FF2E2E2EFF313131FF343434FF383838FF - 3A3A3AFF3D3D3DFF3F3F3FFF3F3F3FFF404040FF414141FF414141FF3E3E3EFF - 3B3B3BFF3B3B3BFF3B3B3BFF3B3B3BFF3C3C3CFF3C3C3CFF3C3C3CFF434343FF - 444444FF454545FF454545FF454545FF454545FF424242FF424242FF434343FF - 444444FF454545FF474747FF484848FF494949FF4B4B4BFF4D4D4DFF525352FF - 6E736EFF628E63FF4A904BFF287C29FF267E27FF248025FF238424FF218622FF - 1E881FFF1B891CFF178A18FF148B15FF118C12FF0F8F10FF0C900DFF09910AFF - 069207FF049405FF049705FF15A115FF1AA41AFF1BA71BFF1DA91DFF1FAC1FFF - 21AE21FF23B023FF25B325FF26B526FF28B728FF2ABA2AFF2CBC2CFF2EBE2EFF - 30C030FF31C231FF33C533FF35C835FF37CA37FF39CC39FF3ACE3AFF3CD03CFF - 3ED23EFF40D440FF42D542FF44D744FF45D945FFB6FEBBFF9DFFA6FF00000028 - 000000210000001A000000130000000E00000009FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B6B6B62ED7D7D760CBCBCB67 - 707070FE686868FF171717FF191919FF1B1B1BFF202020FF242424FF262626FF - 2C2C2CFF2F2F2FFF313131FF323232FF2E2E2EFF303030FF353535FF383838FF - 3C3C3CFF3E3E3EFF414141FF424242FF424242FF434343FF444444FF404040FF - 3D3D3DFF3E3E3EFF3D3D3DFF3D3D3DFF3D3D3DFF3E3E3EFF3E3E3EFF454545FF - 464646FF474747FF474747FF474747FF474747FF454545FF454545FF454545FF - 454545FF474747FF484848FF494949FF4B4B4BFF4D4D4DFF525352FF686B68FF - 5C845DFF49894AFF2D782EFF2B7B2CFF2A7E2BFF277F28FF278328FF248525FF - 228723FF1E881FFF1A881BFF178A18FF158C16FF128D13FF0F8F10FF0C900DFF - 09910AFF09930AFF179C18FF19A01AFF19A219FF1BA51BFF1DA71DFF1FAA1FFF - 21AC21FF23AF23FF25B125FF26B326FF28B628FF2AB82AFF2CBA2CFF2EBC2EFF - 30BF30FF31C131FF33C333FF35C535FF37C837FF38CA38FF3ACC3AFF3CCE3CFF - 3ED03EFF40D240FF42D442FF44D644FF45D845FFB5FEBAFF9DFFA6FF00000028 - 000000210000001A000000130000000D00000009FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B6B6B62ED7D7D760CACACA66 - 757575FE6D6D6DFF171717FF191919FF1A1A1AFF1F1F1FFF232323FF262626FF - 2D2D2DFF303030FF323232FF333333FF2F2F2FFF323232FF353535FF3A3A3AFF - 3D3D3DFF3F3F3FFF424242FF444444FF454545FF464646FF464646FF424242FF - 3E3E3EFF3F3F3FFF3F3F3FFF3F3F3FFF3E3E3EFF3F3F3FFF3F3F3FFF474747FF - 484848FF494949FF494949FF4A4A4AFF494949FF474747FF474747FF474747FF - 474747FF494949FF494949FF4B4B4BFF4C4C4CFF525252FF626462FF577A58FF - 488149FF337434FF307731FF2F7A30FF2F7F30FF2B7F2CFF2B832CFF288429FF - 268727FF228723FF1D871EFF1B891CFF188B19FF158C16FF128D13FF0F8F10FF - 0E900FFF1A981BFF1B9B1CFF1B9D1CFF1BA21CFF1BA31BFF1DA61DFF1FA81FFF - 21AA21FF23AD23FF24AF24FF26B226FF28B428FF2AB62AFF2CB92CFF2EBB2EFF - 2FBD2FFF31BF31FF33C133FF35C335FF37C637FF38C838FF3ACA3AFF3CCD3CFF - 3ECF3EFF40D140FF42D242FF43D443FF45D645FFB5FEBAFF9DFFA5FF00000027 - 0000002000000019000000130000000D00000009FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B6B6B62ED7D7D75FCACACA66 - 787878FE707070FF171717FF181818FF1A1A1AFF202020FF242424FF262626FF - 2E2E2EFF323232FF343434FF353535FF303030FF333333FF383838FF3C3C3CFF - 3F3F3FFF414141FF444444FF454545FF474747FF474747FF474747FF444444FF - 404040FF404040FF404040FF404040FF404040FF414141FF414141FF494949FF - 4B4B4BFF4B4B4BFF4B4B4BFF4C4C4CFF4B4B4BFF494949FF484848FF4A4A4AFF - 494949FF4A4A4AFF4C4C4CFF4D4D4DFF4E4E4EFF5A5B5AFF527153FF467847FF - 366F37FF357336FF337534FF337A34FF327D33FF2F7F30FF2F8330FF2C842DFF - 2A862BFF268727FF218622FF1E881FFF1B891CFF188B19FF168D17FF148E15FF - 1D951EFF1E981FFF1E9A1FFF1C9C1DFF1FA120FF1DA21EFF1DA41DFF1FA61FFF - 21A921FF22AB22FF24AE24FF26B026FF28B228FF2AB52AFF2CB72CFF2EB92EFF - 2FBB2FFF31BE31FF33C033FF35C235FF36C436FF38C638FF3AC93AFF3CCB3CFF - 3ECD3EFF40CF40FF42D142FF43D343FF45D545FFB5FEBAFF9DFFA5FF00000026 - 0000001F00000018000000120000000D00000009FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B6B6B62ED7D7D75FCACACA66 - 7D7D7DFE747474FF171717FF191919FF1B1B1BFF202020FF252525FF282828FF - 2F2F2FFF333333FF363636FF373737FF313131FF343434FF383838FF3D3D3DFF - 404040FF434343FF454545FF484848FF484848FF494949FF4A4A4AFF454545FF - 414141FF424242FF424242FF414141FF424242FF424242FF434343FF4C4C4CFF - 4D4D4DFF4D4D4DFF4E4E4EFF4D4D4DFF4E4E4EFF4A4A4AFF4A4A4AFF4A4A4AFF - 4A4A4AFF4B4B4BFF4D4D4DFF4E4E4EFF535453FF4C654DFF446E45FF3B6B3CFF - 396E3AFF39723AFF377538FF377938FF377E38FF337E34FF338334FF318532FF - 2E862FFF2A862BFF258626FF228723FF1F8920FF1C8A1DFF1B8D1CFF239324FF - 229423FF219722FF209821FF1F9B20FF23A124FF22A323FF1EA31FFE1FA41FFF - 21A721FF22A922FF24AC24FF26AE26FF28B128FF2AB32AFF2CB52CFF2DB72DFF - 2FBA2FFF31BC31FF33BE33FF35C035FF36C236FF38C538FF3AC73AFF3CC93CFF - 3ECB3EFF40CD40FF41CF41FF43D143FF45D345FFB5FEBAFF9DFFA5FF00000025 - 0000001E00000018000000120000000C00000008FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B5B5B52DD6D6D65FC9C9C965 - 818181FE787878FF171717FF191919FF1B1B1BFF212121FF262626FF292929FF - 313131FF353535FF373737FF383838FF323232FF363636FF3A3A3AFF3F3F3FFF - 414141FF444444FF474747FF4A4A4AFF4B4B4BFF4B4B4BFF4B4B4BFF474747FF - 434343FF434343FF434343FF434343FF444444FF444444FF454545FF4D4D4DFF - 4F4F4FFF4F4F4FFF4F4F4FFF4F4F4FFF4F4F4FFF4C4C4CFF4D4D4DFF4C4C4CFF - 4C4C4CFF4D4D4DFF4E4E4EFF505050FF475B47FF446645FF406641FF3E693FFF - 3D6D3EFF3D723EFF3B743CFF3B793CFF3B7D3CFF387F39FF388339FF358536FF - 328633FF2E862FFF29852AFF268727FF238824FF218A22FF289029FF279328FF - 259426FF249525FF239924FF219922FF29A42AFF26A327FF22A423FB20A421FE - 20A520FF22A822FF24AA24FF26AC26FF28AF28FF2AB12AFF33B833FF2DB62DFF - 2FB82FFF31BA31FF33BC33FF34BF34FF36C136FF38C338FF3AC53AFF3CC73CFF - 3ECA3EFF40CC40FF41CE41FF43D043FF45D245FFB5FEBAFF9DFFA5FF00000024 - 0000001E00000017000000110000000C00000008FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B5B5B52DD6D6D65EC9C9C965 - 848484FE7B7B7BFF181818FF1A1A1AFF1C1C1CFF222222FF272727FF2A2A2AFF - 323232FF373737FF393939FF3A3A3AFF333333FF373737FF3A3A3AFF404040FF - 434343FF464646FF484848FF4B4B4BFF4D4D4DFF4D4D4DFF4E4E4EFF4A4A4AFF - 444444FF454545FF454545FF444444FF454545FF454545FF454545FF4F4F4FFF - 515151FF515151FF525252FF525252FF525252FF4E4E4EFF4E4E4EFF4E4E4EFF - 4E4E4EFF4E4E4EFF505050FF4A584AFF455E45FF466347FF446645FF436944FF - 416C42FF417142FF3F7440FF407941FF3F7D40FF3C7E3DFF3D843EFF39843AFF - 368637FF328633FF2C842DFF2A862BFF278828FF2D8E2EFF2C902DFF2A912BFF - 289329FF279528FF259626FF249925FF2EA52FFF2BA62CFF25A426F924A425FB - 21A422FD22A622FF24A824FF26AB26FF28AD28FF35B635FF92EA96FF6ED871FF - 2FB62FFF31B931FF33BB33FF34BD34FF36BF36FF38C138FF3AC33AFF3CC63CFF - 3EC83EFF3FCA3FFF41CC41FF43CE43FF45D045FFB5FEBAFF9DFFA5FF00000023 - 0000001D00000016000000100000000C00000008FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B5B5B52DD6D6D65EC9C9C964 - 858585FE7C7C7CFF181818FF1A1A1AFF1C1C1CFF232323FF282828FF2B2B2BFF - 343434FF393939FF3B3B3BFF3C3C3CFF343434FF373737FF3C3C3CFF414141FF - 444444FF474747FF4A4A4AFF4D4D4DFF4E4E4EFF4F4F4FFF505050FF4B4B4BFF - 464646FF464646FF454545FF454545FF464646FF464646FF474747FF515151FF - 535353FF545454FF545454FF545454FF545454FF505050FF505050FF505050FF - 505050FF505050FF4D544DFF4A5A4AFF495D49FF496249FF49664AFF466847FF - 466C47FF467147FF437344FF437844FF447D45FF407E41FF418342FF3E853FFF - 3C873DFF378738FF308431FF2F8730FF328B33FF318E32FF308F31FF2D902EFF - 2B912CFF29942AFF289529FF279728FF33A734FF30A731FF28A429F626A527F9 - 22A423F922A423FD24A724FF26A926FF32B133FF8EE691FFA5F6ABEEA5F5A9FA - 6FD872FF31B731FF32B932FF34BB34FF36BE36FF38C038FF3AC23AFF3CC43CFF - 3EC63EFF3FC83FFF41CB41FF43CD43FF45CF45FFB5FEBAFF9DFFA5FF00000021 - 0000001B00000015000000100000000B00000007FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B4B4B42DD6D6D65EC9C9C964 - 868686FE7C7C7CFF181818FF1B1B1BFF1D1D1DFF242424FF292929FF2C2C2CFF - 363636FF3A3A3AFF3C3C3CFF3D3D3DFF353535FF383838FF3C3C3CFF424242FF - 464646FF494949FF4C4C4CFF4E4E4EFF515151FF515151FF525252FF4D4D4DFF - 474747FF474747FF474747FF474747FF474747FF474747FF484848FF535353FF - 555555FF565656FF565656FF565656FF565656FF525252FF525252FF515151FF - 525252FF525352FF505650FF4E594EFF4E5E4EFF4E624EFF4D664DFF4A674BFF - 496B4AFF4A704BFF487349FF477748FF487D49FF457E46FF478548FF438544FF - 408741FF3C873DFF368637FF388939FF378C38FF358D36FF349035FF319032FF - 2E902FFF2C922DFF2B952CFF2A962BFF37A638FF36A837FF2BA62CF429A62AF6 - 24A325F523A424F724A625FD31AD31FF89E18CFFA5F3A9E6A8F7ADB5A9FBAFD8 - A6F6AAFA71D873FF32B832FF34BA34FF36BC36FF38BE38FF3AC03AFF3CC23CFF - 3DC43DFF3FC73FFF41C941FF43CB43FF45CD45FFB5FEBAFF9DFFA5FF0000001F - 0000001A000000140000000F0000000A00000007FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B4B4B42DD5D5D55DC8C8C864 - 808080FE787878FF191919FF1B1B1BFF1E1E1EFF242424FF2B2B2BFF2D2D2DFF - 373737FF3C3C3CFF3E3E3EFF3F3F3FFF363636FF393939FF3E3E3EFF434343FF - 474747FF494949FF4C4C4CFF4F4F4FFF525252FF535353FF535353FF4E4E4EFF - 484848FF494949FF484848FF494949FF494949FF494949FF494949FF565656FF - 575757FF575757FF595959FF585858FF575757FF535353FF535353FF545454FF - 545454FF545454FF535453FF535953FF515C51FF526252FF506450FF4E674EFF - 4D6A4EFF4E704FFF4D734EFF4D784EFF4D7D4EFF497E4AFF4C854DFF488649FF - 458746FF418742FF3E873FFF3D8A3EFF3B8C3CFF398D3AFF388F39FF359036FF - 319032FF2F9130FF2E932FFF2D962EFF3DA83EFF3AA83BFE2EA62FF12CA72DF3 - 26A427F124A325F32FAB30F883DB87FEA3EEA7E1AAF2AEA24B704B1B98DD9C4A - A8FCAED8A7F6ABFA72D874FF34B834FF36BA36FF38BD38FF3ABF3AFF3BC13BFF - 3DC33DFF3FC53FFF41C741FF43C943FF44CC44FFB5FEBAFF9DFFA5FF0000001D - 00000018000000130000000E0000000A00000006FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B4B4B42DD5D5D55DC8C8C864 - 797979FE727272FF191919FF1C1C1CFF1E1E1EFF252525FF2C2C2CFF2E2E2EFF - 393939FF3E3E3EFF404040FF414141FF363636FF3A3A3AFF3F3F3FFF454545FF - 484848FF4B4B4BFF4E4E4EFF515151FF535353FF565656FF565656FF505050FF - 4A4A4AFF4A4A4AFF4A4A4AFF4A4A4AFF4B4B4BFF4B4B4BFF4B4B4BFF575757FF - 595959FF5A5A5AFF595959FF5A5A5AFF5A5A5AFF555555FF555555FF555555FF - 555555FF565656FF555555FF565756FF565C56FF566156FF566656FF536753FF - 516A51FF537054FF517352FF527853FF537E54FF4E7E4FFF518652FF4E874FFF - 4A884BFF488949FF428743FF408941FF3F8C40FF3D8D3EFF3C8F3DFF388E39FF - 359036FF339134FF319232FF309431FF41A942FF3FA940FE31A732EE30A831F0 - 27A329ED2EAA2FEE81D884F9A2EAA5DAABEDAF9B4863481C0000000D0000000A - A0E9A446A8FCAED7A7F6ACFA73D975FF36B936FF38BB38FF3ABD3AFF3BBF3BFF - 3DC13DFF3FC43FFF41C641FF43C843FF44CA44FFB5FEB9FF9DFFA4FF0000001A - 00000016000000110000000D0000000900000006FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B4B4B42DD5D5D55DC8C8C864 - 737373FE6D6D6DFF1A1A1AFF1C1C1CFF1E1E1EFF262626FF2D2D2DFF303030FF - 3B3B3BFF404040FF424242FF424242FF373737FF3A3A3AFF3F3F3FFF464646FF - 4A4A4AFF4C4C4CFF4F4F4FFF525252FF565656FF575757FF585858FF525252FF - 4C4C4CFF4C4C4CFF4B4B4BFF4B4B4BFF4C4C4CFF4C4C4CFF4C4C4CFF595959FF - 5B5B5BFF5B5B5BFF5C5C5CFF5C5C5CFF5B5B5BFF565656FF565656FF575757FF - 565656FF585858FF575757FF585858FF585958FF5A605AFF596459FF566656FF - 576B57FF587158FF557256FF567857FF587E59FF547F55FF578758FF548955FF - 528A53FF4E8A4FFF468747FF448945FF438B44FF418D42FF408F41FF3B8E3CFF - 388E39FF369037FF359236FF339334FF46A947FF43AA44FE35A836EB33A834EE - 33AA34EA7FD481F49FE4A0D4ABE5AE94404F4020000000100000000B00000008 - 00000006A6F1A944A9FDAFD8A8F7ADFA74D977FF38B938FF39BC39FF3BBE3BFF - 3DC03DFF3FC23FFF41C441FF42C642FF44C844FFB5FEB9FF9DFFA4FF00000017 - 000000130000000F0000000B0000000800000005FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B3B3B32CD5D5D55CC8C8C863 - 6D6D6DFE676767FF1A1A1AFF1C1C1CFF1E1E1EFF262626FF2E2E2EFF313131FF - 3C3C3CFF424242FF444444FF444444FF383838FF3C3C3CFF414141FF464646FF - 4B4B4BFF4E4E4EFF505050FF535353FF575757FF5A5A5AFF5A5A5AFF545454FF - 4C4C4CFF4D4D4DFF4C4C4CFF4C4C4CFF4D4D4DFF4D4D4DFF4E4E4EFF5B5B5BFF - 5D5D5DFF5D5D5DFF5E5E5EFF5E5E5EFF5E5E5EFF595959FF585858FF595959FF - 595959FF595959FF585858FF5A5A5AFF5B5B5BFF5E5F5EFF5D635DFF5B665BFF - 5A6A5AFF5B6F5BFF5A735AFF5B785CFF5D7F5EFF597F5AFF5C875DFF5A8A5BFF - 578B58FF538B54FF4B884CFF49894AFF478B48FF468D47FF448F45FF3F8E40FF - 3B8D3CFF3A8F3BFF389139FF379338FF4BAA4CFF49AC4AFE38A839E940AE41EC - 7CD17EF19BDC9DCEA7DAAA902E422E27000000150000000E0000000900000006 - 0000000500000004A5F4A944A9FDAFD9A9F7ADFA76DA78FF39BA39FF3BBC3BFF - 3DBE3DFF3FC03FFF41C341FF42C542FF44C744FFB5FEB9FF9DFFA4FF00000014 - 000000110000000D000000090000000700000005FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B3B3B32CD4D4D45CC7C7C763 - 666666FE616161FF1A1A1AFF1C1C1CFF1F1F1FFF272727FF2F2F2FFF323232FF - 3D3D3DFF444444FF454545FF454545FF393939FF3D3D3DFF414141FF484848FF - 4C4C4CFF4F4F4FFF515151FF545454FF575757FF5B5B5BFF5D5D5DFF555555FF - 4D4D4DFF4E4E4EFF4E4E4EFF4E4E4EFF4E4E4EFF4F4F4FFF4F4F4FFF5C5C5CFF - 5F5F5FFF5F5F5FFF606060FF5F5F5FFF606060FF5A5A5AFF5A5A5AFF5A5A5AFF - 5A5A5AFF5A5A5AFF5A5A5AFF5B5B5BFF5D5D5DFF616161FF616261FF606660FF - 5F6A5FFF617161FF5E725EFF607960FF648165FF5F8160FF628863FF608B61FF - 5D8C5EFF578B58FF4F8750FF4D894EFF4C8B4DFF4A8D4BFF478E48FF428E43FF - 3F8E40FF3D8E3EFF3C903DFF3A923BFF52AD53FF4DAC4EFE44AD45E77FD080F2 - 9DDB9FD0A0CDA48C2631262F0000001C000000140000000D0000000800000005 - 000000030000000200000002A7F7AB43A8FDAED9A9F8AEFA77DB7AFF3BBB3BFF - 3DBD3DFF3FBF3FFF40C140FF42C342FF4ECA4EFFB5FFBAFF9BFDA3E600000011 - 0000000E0000000B000000080000000500000004FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B3B3B32CD4D4D45CC7C7C762 - 5F5F5FFE5B5B5BFF1B1B1BFF1D1D1DFF1F1F1FFF282828FF303030FF323232FF - 3F3F3FFF454545FF474747FF484848FF393939FF3E3E3EFF424242FF4A4A4AFF - 4C4C4CFF505050FF535353FF565656FF595959FF5C5C5CFF5E5E5EFF565656FF - 4E4E4EFF4F4F4FFF4F4F4FFF4F4F4FFF4F4F4FFF4F4F4FFF505050FF5E5E5EFF - 616161FF606060FF626262FF616161FF616161FF5C5C5CFF5C5C5CFF5C5C5CFF - 5D5D5DFF5D5D5DFF5C5C5CFF5C5C5CFF5E5E5EFF636363FF656565FF656665FF - 626862FF667166FF637363FF657965FF698269FF648165FF688A69FF668C67FF - 638D64FF5D8C5EFF538754FF528953FF508B51FF4E8D4FFF4C904DFF468D47FF - 428D43FF418F42FF3F8F40FF3E913FFF55AD56FF58B159FE7ECE80EEA6DDA9DC - ACCEAF9D1C252037000000250000001C000000130000000C0000000700000005 - 00000002000000020000000200000002A7F7AE43A9FDAFD9AAF8AFFA78DB7AFF - 3DBB3DFF3FBD3FFF40BF40FF42C242FF64D466FFB0FFB5FF9AF99FB70000000D - 0000000B00000009000000060000000500000003FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B2B2B22CD4D4D45CC7C7C762 - 585858FF555555FF1B1B1BFF1D1D1DFF202020FF292929FF313131FF343434FF - 414141FF474747FF494949FF494949FF3A3A3AFF3E3E3EFF434343FF4B4B4BFF - 4E4E4EFF515151FF545454FF565656FF5A5A5AFF5D5D5DFF5F5F5FFF585858FF - 505050FF515151FF505050FF4F4F4FFF505050FF505050FF505050FF606060FF - 626262FF636363FF646464FF646464FF646464FF5E5E5EFF5E5E5EFF5E5E5EFF - 5E5E5EFF5E5E5EFF5F5F5FFF5E5E5EFF606060FF646464FF666666FF666666FF - 676867FF6A706AFF697469FF6A7A6AFF6E826EFF6A836AFF6F8C70FF6D8E6EFF - 698F6AFF638E64FF59885AFF578A58FF558C56FF528E53FF508F51FF4A8D4BFF - 468C47FF448E45FF439044FF419142FF60B161FF85CB86FEA5D7A7D9C4DBC5BB - 797B796000000030000000250000001B000000130000000C0000000700000004 - 0000000200000001000000010000000100000002A7F7AE43AAFDAEDAABF9AFFA - 7ADB7CFF3EBC3EFF40BE40FF42C042FF7CDF7EFFAAFFB0FF96F49C860000000A - 0000000900000007000000050000000300000002FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B2B2B22CD4D4D45BC6C6C662 - 525252FF535353FF1C1C1CFF1E1E1EFF202020FF292929FF313131FF343434FF - 424242FF494949FF4B4B4BFF4A4A4AFF3A3A3AFF3F3F3FFF444444FF4B4B4BFF - 4F4F4FFF525252FF555555FF585858FF5B5B5BFF5F5F5FFF616161FF5A5A5AFF - 515151FF525252FF505050FF515151FF505050FF525252FF525252FF626262FF - 646464FF666666FF666666FF666666FF656565FF5F5F5FFF5F5F5FFF5F5F5FFF - 5F5F5FFF606060FF5F5F5FFF606060FF616161FF656565FF686868FF686868FF - 6A6A6AFF6F706FFF6E746EFF707B70FF748474FF6F836FFF748D74FF739074FF - 6E906FFF6A8F6BFF5F8960FF5C8A5DFF5A8D5BFF578E58FF559056FF4F8D50FF - 498B4AFF488D49FF468F47FF489449FF86C788FFACD3AEFDC1D3C2BAB7BAB996 - 7171715B00000030000000250000001A000000120000000C0000000700000004 - 000000020000000100000000000000010000000100000002A7F7AB43A9FDAEDB - ABF9B0FA7BDC7DFF40BC40FF44BF44FFA0F3A4FFA4FFABFF93EC995500000007 - 0000000600000005000000040000000200000002FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B2B2B22CD4D4D45BC6C6C661 - 595959FE585858FF1C1C1CFF1E1E1EFF202020FF2A2A2AFF333333FF353535FF - 444444FF4B4B4BFF4D4D4DFF4D4D4DFF3B3B3BFF3F3F3FFF444444FF4C4C4CFF - 505050FF535353FF565656FF595959FF5C5C5CFF5F5F5FFF636363FF5B5B5BFF - 515151FF525252FF525252FF525252FF525252FF535353FF535353FF646464FF - 666666FF676767FF676767FF686868FF676767FF616161FF616161FF616161FF - 616161FF616161FF616161FF616161FF626262FF666666FF696969FF696969FF - 6C6C6CFF717171FF737473FF747A74FF7A857AFF758575FF7C907CFF799279FF - 769377FF6F9070FF648965FF618A62FF5E8D5FFF5B8E5CFF5A905BFF538D54FF - 4D8B4EFF4C8D4DFF4D904EFF70AD71FFA7C9A8FFC1CCC2FCB1B3B19AB7B7B792 - 7272725A0000002F000000240000001A000000120000000C0000000700000004 - 00000002000000010000000000000000000000010000000100000002A9F9AD42 - A9FDAEDAACF9B0FA7CDC7EFF74D876FFAFFEB4FD9DFEA4DD679B670F00000005 - 0000000400000003000000020000000200000001FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B2B2B22CD3D3D35BC6C6C661 - 5F5F5FFE5E5E5EFF1C1C1CFF1E1E1EFF202020FF2B2B2BFF343434FF373737FF - 464646FF4D4D4DFF4F4F4FFF4E4E4EFF3B3B3BFF404040FF454545FF4D4D4DFF - 515151FF545454FF585858FF5A5A5AFF5D5D5DFF616161FF646464FF5D5D5DFF - 535353FF535353FF535353FF535353FF545454FF545454FF555555FF656565FF - 696969FF6A6A6AFF696969FF6A6A6AFF696969FF626262FF636363FF636363FF - 626262FF636363FF636363FF636363FF636363FF686868FF6A6A6AFF6C6C6CFF - 6E6E6EFF737373FF757575FF7B7C7BFF808680FF7C877CFF839383FF7F937FFF - 7B947BFF769377FF698A6AFF668B67FF638D64FF608E61FF5F9160FF578D58FF - 518B52FF518D52FF6DA66EFF84A384FFB7BFB8FFB1B2B1FCB0B0B098B7B7B792 - 717171590000002F000000240000001A000000120000000C0000000700000004 - 0000000200000001FFFFFF00FFFFFF0000000000000000010000000100000002 - A9F9B042AAFDAFDBADF9B1FAB0F9B5FEA5FEAAF39AF49E440000000400000003 - 0000000300000002000000020000000100000001FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B1B1B12BD3D3D35AC5C5C561 - 666666FE646464FF1C1C1CFF1F1F1FFF202020FF2B2B2BFF343434FF383838FF - 474747FF4E4E4EFF515151FF505050FF3C3C3CFF404040FF474747FF4E4E4EFF - 525252FF555555FF595959FF5B5B5BFF5E5E5EFF626262FF656565FF5E5E5EFF - 545454FF555555FF545454FF545454FF555555FF555555FF555555FF676767FF - 6B6B6BFF6A6A6AFF6B6B6BFF6B6B6BFF6B6B6BFF646464FF646464FF656565FF - 656565FF656565FF646464FF666666FF656565FF6A6A6AFF6C6C6CFF6D6D6DFF - 6F6F6FFF747474FF767676FF7F7F7FFF878887FF828882FF8A958AFF869686FF - 829682FF7D957DFF6E8A6FFF6B8C6CFF698E6AFF658E66FF649165FF5A8C5BFF - 578C58FF6C9F6DFF809C81FF878D88FFA5A5A5FFAAAAAAFCAFAFAF98B7B7B792 - 717171590000002F000000240000001A000000120000000C0000000700000004 - 0000000200000001FFFFFF00FFFFFF0000000000000000000000000100000001 - 00000001A9F9B042A9FEAEDBA8FCAEEFA3FEAA93000000020000000200000002 - 0000000200000001000000010000000100000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B1B1B12BD3D3D35AC5C5C561 - 6D6D6DFE6A6A6AFF1D1D1DFF1F1F1FFF212121FF2C2C2CFF363636FF393939FF - 484848FF515151FF515151FF515151FF3D3D3DFF404040FF474747FF4F4F4FFF - 525252FF565656FF595959FF5D5D5DFF606060FF636363FF676767FF5F5F5FFF - 555555FF555555FF565656FF545454FF555555FF555555FF565656FF696969FF - 6C6C6CFF6D6D6DFF6D6D6DFF6D6D6DFF6C6C6CFF666666FF656565FF666666FF - 666666FF656565FF666666FF666666FF666666FF6B6B6BFF6D6D6DFF6E6E6EFF - 717171FF767676FF787878FF808080FF8A8A8AFF898A89FF8F958FFF8D988DFF - 899989FF839683FF748C74FF708D71FF6D8E6EFF6B906CFF69926AFF618E62FF - 6C986DFF7D957EFF868986FF727372FF9D9D9DFFA2A2A2FDAFAFAF97B7B7B792 - 717171590000002F000000240000001A000000120000000C0000000700000004 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00000000000000000000000000 - 0000000100000001ABFCAF42A9FFAEC4A0F0A010000000010000000100000001 - 0000000100000001000000000000000000000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B1B1B12BD3D3D35AC5C5C561 - 737373FE707070FF1D1D1DFF1F1F1FFF212121FF2D2D2DFF373737FF3A3A3AFF - 4A4A4AFF525252FF545454FF535353FF3E3E3EFF424242FF484848FF505050FF - 535353FF575757FF5A5A5AFF5D5D5DFF606060FF646464FF686868FF606060FF - 565656FF565656FF575757FF565656FF565656FF565656FF575757FF6B6B6BFF - 6F6F6FFF6F6F6FFF6E6E6EFF707070FF6F6F6FFF676767FF686868FF686868FF - 676767FF686868FF686868FF676767FF676767FF6D6D6DFF6E6E6EFF707070FF - 727272FF787878FF7A7A7AFF828282FF8D8D8DFF8C8C8CFF989998FF949A94FF - 919C91FF8A998AFF788C78FF768F76FF738F74FF709071FF6F9270FF6F9670FF - 7B8F7BFF838583FF757575FF737373FF979797FF9B9B9BFDAFAFAF97B6B6B691 - 707070590000002F000000240000001A000000120000000C0000000700000004 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000 - 00000000000000000000000095EBAB0C00000001000000010000000100000000 - 000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B0B0B02BD2D2D259C5C5C560 - 7A7A7AFE757575FF1E1E1EFF202020FF212121FF2D2D2DFF383838FF3B3B3BFF - 4C4C4CFF545454FF575757FF555555FF3E3E3EFF414141FF474747FF515151FF - 545454FF585858FF5B5B5BFF5F5F5FFF616161FF666666FF696969FF616161FF - 585858FF585858FF575757FF565656FF575757FF575757FF585858FF6D6D6DFF - 707070FF707070FF717171FF727272FF717171FF686868FF696969FF696969FF - 696969FF696969FF696969FF6A6A6AFF696969FF6D6D6DFF717171FF707070FF - 737373FF7A7A7AFF7A7A7AFF848484FF8F8F8FFF8E8E8EFF9B9B9BFF9B9C9BFF - 989E98FF909B90FF7E8E7EFF7C907CFF778F77FF779378FF79987AFF7E907EFF - 808180FF757575FF747474FF747474FF909090FF949494FDAFAFAF97B6B6B691 - 707070590000002F000000240000001A000000120000000C0000000700000004 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF0000000000000000000000000000000000000000000000000000000000 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B0B0B02BD2D2D259C4C4C460 - 828282FE7C7C7CFF1E1E1EFF202020FF222222FF2E2E2EFF383838FF3B3B3BFF - 4E4E4EFF565656FF585858FF575757FF3F3F3FFF434343FF494949FF515151FF - 555555FF595959FF5C5C5CFF5F5F5FFF626262FF666666FF6A6A6AFF636363FF - 585858FF595959FF585858FF585858FF585858FF595959FF595959FF6F6F6FFF - 727272FF737373FF737373FF727272FF727272FF6A6A6AFF6A6A6AFF6A6A6AFF - 6B6B6BFF6B6B6BFF6C6C6CFF6B6B6BFF6B6B6BFF6F6F6FFF727272FF717171FF - 747474FF7B7B7BFF7D7D7DFF868686FF919191FF919191FF9E9E9EFFA0A0A0FF - 9FA09FFF979D97FF859085FF819181FF7F927FFF7C947CFF869386FF858685FF - 787878FF767676FF747474FF757575FF898989FF8C8C8CFDAEAEAE97B6B6B691 - 707070590000002F000000240000001A000000120000000C0000000700000004 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B0B0B02BD2D2D259C4C4C45F - 848484FE7C7C7CFF1F1F1FFF212121FF232323FF2F2F2FFF3A3A3AFF3C3C3CFF - 505050FF595959FF5A5A5AFF585858FF3F3F3FFF434343FF484848FF525252FF - 565656FF595959FF5C5C5CFF606060FF646464FF676767FF6B6B6BFF616161FF - 595959FF5A5A5AFF585858FF595959FF595959FF595959FF5A5A5AFF707070FF - 737373FF747474FF747474FF767676FF747474FF6B6B6BFF6C6C6CFF6C6C6CFF - 6D6D6DFF6C6C6CFF6D6D6DFF6D6D6DFF6D6D6DFF717171FF727272FF747474FF - 757575FF7C7C7CFF7E7E7EFF878787FF949494FF929292FFA1A1A1FFA2A2A2FF - A2A2A2FF9FA09FFF8C928CFF879287FF839283FF879087FF8E8E8EFF818181FF - 777777FF777777FF767676FF767676FF818181FF848484FEAEAEAE96B5B5B591 - 707070590000002F000000240000001A000000120000000C0000000700000004 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B0B0B02BD2D2D258C4C4C45F - 848484FD7D7D7DFF1F1F1FFF212121FF232323FF2F2F2FFF3B3B3BFF3E3E3EFF - 515151FF5A5A5AFF5C5C5CFF5A5A5AFF3E3E3EFF434343FF494949FF535353FF - 575757FF5B5B5BFF5E5E5EFF606060FF646464FF696969FF6B6B6BFF636363FF - 5A5A5AFF5B5B5BFF5A5A5AFF595959FF5B5B5BFF5B5B5BFF5A5A5AFF717171FF - 757575FF767676FF767676FF777777FF767676FF6E6E6EFF6D6D6DFF6D6D6DFF - 6E6E6EFF6E6E6EFF6E6E6EFF6D6D6DFF6D6D6DFF727272FF757575FF747474FF - 777777FF7E7E7EFF808080FF898989FF969696FF959595FFA4A4A4FFA5A5A5FF - A6A6A6FFA2A2A2FF929392FF8D938DFF8C918CFF8F8F8FFF909090FF828282FF - 787878FF787878FF777777FF777777FF7A7A7AFF7C7C7CFEAEAEAE96B5B5B591 - 6F6F6F590000002F000000240000001A000000120000000C0000000700000004 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009AFAFAF2AD1D1D158C3C3C35F - 858585FD7D7D7DFF1F1F1FFF222222FF232323FF303030FF3B3B3BFF3E3E3EFF - 525252FF5C5C5CFF5E5E5EFF5C5C5CFF3F3F3FFF434343FF4A4A4AFF535353FF - 585858FF5B5B5BFF5F5F5FFF626262FF656565FF696969FF6D6D6DFF646464FF - 5A5A5AFF5C5C5CFF5B5B5BFF595959FF5A5A5AFF5B5B5BFF5B5B5BFF747474FF - 767676FF787878FF787878FF787878FF787878FF6E6E6EFF6E6E6EFF6F6F6FFF - 6F6F6FFF707070FF707070FF6F6F6FFF6F6F6FFF757575FF767676FF757575FF - 787878FF808080FF818181FF8A8A8AFF989898FF979797FFA7A7A7FFA8A8A8FF - A8A8A8FFA5A5A5FF959595FF939493FF929292FF909090FF919191FF838383FF - 7A7A7AFF797979FF777777FF787878FF737373FF757575FEADADAD96B5B5B590 - 6F6F6F590000002F000000240000001A000000120000000C0000000700000004 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009AFAFAF2AD1D1D157C3C3C35E - 848484FD7D7D7DFF1F1F1FFF212121FF242424FF313131FF3D3D3DFF404040FF - 545454FF5F5F5FFF606060FF5D5D5DFF3F3F3FFF434343FF4A4A4AFF545454FF - 585858FF5C5C5CFF5F5F5FFF636363FF666666FF6A6A6AFF6E6E6EFF646464FF - 5A5A5AFF5C5C5CFF5B5B5BFF5C5C5CFF5B5B5BFF5C5C5CFF5D5D5DFF747474FF - 7A7A7AFF7A7A7AFF797979FF7A7A7AFF7B7B7BFF707070FF6F6F6FFF6F6F6FFF - 707070FF717171FF717171FF717171FF717171FF767676FF777777FF777777FF - 7A7A7AFF818181FF838383FF8D8D8DFF9A9A9AFF9A9A9AFFA9A9A9FFACACACFF - ABABABFFA8A8A8FF969696FF949494FF949494FF939393FF949494FF848484FF - 7A7A7AFF7A7A7AFF787878FF787878FF747474FF6E6E6EFEADADAD96B4B4B490 - 6F6F6F590000002F000000240000001A000000120000000C0000000700000004 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009AFAFAF2AD1D1D157C3C3C35E - 858585FD7D7D7DFF202020FF222222FF242424FF323232FF3E3E3EFF414141FF - 565656FF616161FF626262FF606060FF404040FF444444FF4A4A4AFF555555FF - 595959FF5D5D5DFF5F5F5FFF636363FF676767FF6B6B6BFF6F6F6FFF646464FF - 5A5A5AFF5D5D5DFF5C5C5CFF5B5B5BFF5C5C5CFF5C5C5CFF5D5D5DFF767676FF - 7B7B7BFF7B7B7BFF7B7B7BFF7B7B7BFF7B7B7BFF717171FF717171FF727272FF - 727272FF727272FF737373FF737373FF737373FF797979FF797979FF787878FF - 7B7B7BFF838383FF858585FF8F8F8FFF9D9D9DFF9C9C9CFFACACACFFAEAEAEFF - ADADADFFA9A9A9FF989898FF989898FF969696FF959595FF959595FF878787FF - 7A7A7AFF7A7A7AFF7A7A7AFF7A7A7AFF7B7B7BFF757575FEADADAD96B4B4B48F - 6F6F6F590000002F000000240000001A000000120000000C0000000700000004 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009AEAEAE2AD1D1D157C2C2C25E - 858585FD7D7D7DFF202020FF222222FF242424FF333333FF3F3F3FFF424242FF - 575757FF626262FF656565FF626262FF404040FF444444FF4B4B4BFF555555FF - 5A5A5AFF5D5D5DFF606060FF656565FF686868FF6B6B6BFF6F6F6FFF656565FF - 5A5A5AFF5D5D5DFF5D5D5DFF5C5C5CFF5D5D5DFF5C5C5CFF5D5D5DFF777777FF - 7C7C7CFF7C7C7CFF7D7D7DFF7D7D7DFF7E7E7EFF737373FF737373FF737373FF - 747474FF747474FF757575FF747474FF747474FF7A7A7AFF7B7B7BFF7A7A7AFF - 7D7D7DFF848484FF868686FF909090FF9F9F9FFF9E9E9EFFAEAEAEFFB1B1B1FF - B2B2B2FFACACACFF9B9B9BFF999999FF999999FF979797FF979797FF888888FF - 7B7B7BFF7C7C7CFF7A7A7AFF7B7B7BFF828282FF7D7D7DFEACACAC95B4B4B48F - 6F6F6F590000002F000000240000001A000000120000000C0000000700000004 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B2B2B229D0D0D057C2C2C25E - 858585FD7D7D7DFF202020FF222222FF252525FF333333FF404040FF434343FF - 585858FF656565FF676767FF636363FF414141FF454545FF4B4B4BFF565656FF - 5B5B5BFF5F5F5FFF616161FF656565FF696969FF6D6D6DFF6F6F6FFF656565FF - 5A5A5AFF5D5D5DFF5D5D5DFF5E5E5EFF5D5D5DFF5E5E5EFF5E5E5EFF797979FF - 7E7E7EFF7E7E7EFF7F7F7FFF808080FF7F7F7FFF747474FF757575FF747474FF - 757575FF757575FF757575FF747474FF767676FF7A7A7AFF7C7C7CFF7B7B7BFF - 7E7E7EFF868686FF888888FF929292FFA1A1A1FFA0A0A0FFB2B2B2FFB4B4B4FF - B3B3B3FFAEAEAEFF9D9D9DFF9B9B9BFF9B9B9BFF9A9A9AFF999999FF898989FF - 7D7D7DFF7C7C7CFF7B7B7BFF7B7B7BFF898989FF848484FEACACAC95B4B4B48F - 6F6F6F570000002F000000240000001A000000110000000B0000000700000004 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000030000000500000009B2B2B229D2D2D256C3C3C35C - 868686FD7D7D7DFF212121FF222222FF242424FF353535FF424242FF444444FF - 5B5B5BFF686868FF696969FF646464FF414141FF444444FF4B4B4BFF565656FF - 5A5A5AFF5F5F5FFF616161FF656565FF696969FF6D6D6DFF707070FF676767FF - 595959FF5D5D5DFF5E5E5EFF5D5D5DFF5D5D5DFF5F5F5FFF5F5F5FFF7B7B7BFF - 7F7F7FFF808080FF818181FF818181FF808080FF767676FF767676FF767676FF - 777777FF767676FF777777FF767676FF777777FF7C7C7CFF7E7E7EFF7C7C7CFF - 808080FF878787FF898989FF959595FFA4A4A4FFA2A2A2FFB4B4B4FFB6B6B6FF - B6B6B6FFB1B1B1FF9F9F9FFF9E9E9EFF9D9D9DFF9C9C9CFF9C9C9CFF8B8B8BFF - 7D7D7DFF7D7D7DFF7D7D7DFF7B7B7BFF909090FF8C8C8CFDACACAC94B4B4B48E - 6F6F6F570000002E0000002300000019000000110000000B0000000600000004 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000020000000500000009B2B2B229D2D2D255C3C3C35C - 868686FD7D7D7DFF212121FF232323FF252525FF353535FF434343FF454545FF - 5C5C5CFF686868FF6B6B6BFF666666FF414141FF454545FF4C4C4CFF575757FF - 5C5C5CFF5F5F5FFF626262FF666666FF6A6A6AFF6E6E6EFF717171FF666666FF - 595959FF5D5D5DFF5E5E5EFF5E5E5EFF5E5E5EFF5F5F5FFF616161FF7D7D7DFF - 818181FF838383FF828282FF838383FF828282FF767676FF777777FF767676FF - 777777FF777777FF777777FF787878FF787878FF7F7F7FFF808080FF7D7D7DFF - 808080FF888888FF8B8B8BFF969696FFA7A7A7FFA5A5A5FFB7B7B7FFB9B9B9FF - B9B9B9FFB4B4B4FFA1A1A1FFA0A0A0FFA0A0A0FF9E9E9EFF9E9E9EFF8C8C8CFF - 7E7E7EFF7D7D7DFF7C7C7CFF7C7C7CFF989898FF949494FDAEAEAE93B5B5B58E - 6F6F6F560000002D0000002200000018000000100000000B0000000600000003 - 0000000200000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000020000000500000008B5B5B528D3D3D354C6C6C65A - 858585FD7D7D7DFF222222FF242424FF252525FF363636FF444444FF464646FF - 5E5E5EFF6B6B6BFF6E6E6EFF686868FF404040FF454545FF4C4C4CFF585858FF - 5D5D5DFF5F5F5FFF636363FF666666FF6B6B6BFF6E6E6EFF727272FF666666FF - 5A5A5AFF5C5C5CFF5E5E5EFF5F5F5FFF606060FF606060FF606060FF7E7E7EFF - 838383FF838383FF848484FF848484FF838383FF787878FF797979FF787878FF - 787878FF797979FF7A7A7AFF7A7A7AFF7A7A7AFF7F7F7FFF828282FF7F7F7FFF - 818181FF8B8B8BFF8C8C8CFF989898FFA9A9A9FFA8A8A8FFBBBBBBFFBCBCBCFF - BCBCBCFFB8B8B8FFA4A4A4FFA2A2A2FFA2A2A2FFA0A0A0FFA0A0A0FF8D8D8DFF - 808080FF7E7E7EFF7E7E7EFF7E7E7EFFA0A0A0FF9C9C9CFDAFAFAF91B7B7B78B - 717171540000002C0000002100000017000000100000000A0000000600000003 - 0000000100000001FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000020000000500000007B9B9B927D4D4D453C7C7C759 - 858585FC7E7E7EFF232323FF242424FF252525FF373737FF454545FF474747FF - 5F5F5FFF6E6E6EFF707070FF6A6A6AFF404040FF444444FF4C4C4CFF595959FF - 5D5D5DFF606060FF646464FF676767FF6B6B6BFF6E6E6EFF737373FF666666FF - 595959FF5E5E5EFF5E5E5EFF5F5F5FFF616161FF606060FF616161FF7F7F7FFF - 848484FF848484FF858585FF868686FF868686FF7A7A7AFF7A7A7AFF7A7A7AFF - 7B7B7BFF7A7A7AFF7A7A7AFF7B7B7BFF7A7A7AFF818181FF828282FF818181FF - 828282FF8B8B8BFF8D8D8DFF9B9B9BFFABABABFFAAAAAAFFBDBDBDFFC0C0C0FF - BFBFBFFFBBBBBBFFA6A6A6FFA5A5A5FFA4A4A4FFA2A2A2FFA4A4A4FF8F8F8FFF - 7F7F7FFF7F7F7FFF7E7E7EFF7D7D7DFFA7A7A7FFA4A4A4FCB0B0B08FB8B8B88A - 75757552000000290000001F000000160000000F000000090000000500000003 - 0000000100000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000020000000400000007B9B9B927D8D8D852CACACA58 - 858585FC7D7D7DFF232323FF252525FF262626FF383838FF464646FF494949FF - 616161FF707070FF727272FF6D6D6DFF404040FF464646FF4D4D4DFF585858FF - 5E5E5EFF616161FF646464FF686868FF6C6C6CFF707070FF737373FF666666FF - 5A5A5AFF5D5D5DFF5E5E5EFF5F5F5FFF606060FF606060FF626262FF818181FF - 868686FF878787FF878787FF888888FF878787FF7B7B7BFF7C7C7CFF7B7B7BFF - 7C7C7CFF7C7C7CFF7C7C7CFF7C7C7CFF7C7C7CFF838383FF848484FF838383FF - 848484FF8C8C8CFF8F8F8FFF9C9C9CFFAFAFAFFFADADADFFBFBFBFFFC3C3C3FF - C2C2C2FFBEBEBEFFA9A9A9FFA8A8A8FFA6A6A6FFA6A6A6FFA4A4A4FF8F8F8FFF - 7F7F7FFF7E7E7EFF7E7E7EFF7D7D7DFFAEAEAEFFACACACFBB3B3B38CBCBCBC86 - 7979794F000000260000001D000000150000000E000000090000000500000003 - 0000000100000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000001000000020000000300000006C1C1C125DADADA50CFCFCF55 - 858585FC7E7E7EFF242424FF262626FF262626FF383838FF484848FF4B4B4BFF - 636363FF737373FF747474FF6F6F6FFF414141FF464646FF4D4D4DFF595959FF - 5E5E5EFF616161FF646464FF686868FF6C6C6CFF717171FF737373FF676767FF - 595959FF5D5D5DFF5E5E5EFF606060FF616161FF626262FF626262FF838383FF - 888888FF888888FF8A8A8AFF8A8A8AFF898989FF7C7C7CFF7D7D7DFF7D7D7DFF - 7D7D7DFF7D7D7DFF7D7D7DFF7D7D7DFF7E7E7EFF858585FF878787FF858585FF - 858585FF8E8E8EFF8F8F8FFF9D9D9DFFB0B0B0FFB0B0B0FFC2C2C2FFC5C5C5FF - C4C4C4FFBFBFBFFFABABABFFA9A9A9FFA7A7A7FFA6A6A6FFA4A4A4FF8F8F8FFF - 7E7E7EFF7D7D7DFF7C7C7CFF7B7B7BFFB5B5B5FFB4B4B4FBB8B8B888C0C0C083 - 8080804B000000230000001A000000120000000C000000080000000500000002 - 0000000100000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000 - 0000000000000001000000010000000100000001000000010000000100000001 - 00000001000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000000000000020000000300000005C6C6C624E0E0E04ED4D4D453 - 858585FC7E7E7EFF242424FF262626FF272727FF393939FF4A4A4AFF4C4C4CFF - 646464FF747474FF767676FF717171FF414141FF454545FF4E4E4EFF5A5A5AFF - 5E5E5EFF626262FF656565FF696969FF6D6D6DFF707070FF757575FF676767FF - 595959FF5E5E5EFF5E5E5EFF5F5F5FFF616161FF626262FF626262FF848484FF - 898989FF898989FF8B8B8BFF8A8A8AFF8B8B8BFF7D7D7DFF7D7D7DFF7E7E7EFF - 7E7E7EFF7E7E7EFF7F7F7FFF7F7F7FFF808080FF888888FF878787FF878787FF - 858585FF8F8F8FFF919191FF9F9F9FFFB3B3B3FFB1B1B1FFC3C3C3FFC5C5C5FF - C5C5C5FFBFBFBFFFABABABFFA9A9A9FFA7A7A7FFA5A5A5FFA5A5A5FF8E8E8EFF - 7D7D7DFF7B7B7BFF7B7B7BFF7B7B7BFFBCBCBCFFBCBCBCFABDBDBD84C5C5C57F - 888888460000001E00000016000000100000000A000000070000000400000002 - 0000000100000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000 - 0000000100000001000000010000000200000002000000020000000200000002 - 000000010000000100000001000000000000000000000000FFFFFF00FFFFFF00 - 0000000000000000000000010000000200000005D0D0D022E4E4E44CDADADA50 - 868686FB808080FF262626FF272727FF282828FF3A3A3AFF4B4B4BFF4E4E4EFF - 676767FF777777FF797979FF727272FF414141FF464646FF4D4D4DFF5B5B5BFF - 5F5F5FFF626262FF666666FF6A6A6AFF6E6E6EFF717171FF767676FF696969FF - 595959FF5D5D5DFF5E5E5EFF606060FF616161FF636363FF636363FF858585FF - 8B8B8BFF8C8C8CFF8C8C8CFF8C8C8CFF8C8C8CFF7F7F7FFF7F7F7FFF7F7F7FFF - 808080FF808080FF818181FF818181FF828282FF888888FF898989FF868686FF - 878787FF8F8F8FFF919191FFA0A0A0FFB3B3B3FFB1B1B1FFC4C4C4FFC6C6C6FF - C5C5C5FFC0C0C0FFABABABFFA9A9A9FFA7A7A7FFA5A5A5FFA4A4A4FF8E8E8EFF - 7D7D7DFF7B7B7BFF7B7B7BFF7A7A7AFFBDBDBDFFC0C0C0F8C5C5C57FCCCCCC7A - 9191914100000019000000130000000D00000009000000050000000300000002 - 0000000100000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000100000001 - 0000000200000002000000020000000300000003000000030000000300000003 - 00000002000000020000000100000001000000010000000000000000FFFFFF00 - FFFFFF0000000000000000010000000200000003D5D5D521E8E8E84AE0E0E04E - 888888F0878787FF434343FF272727FF282828FF3C3C3CFF4C4C4CFF4F4F4FFF - 696969FF797979FF7C7C7CFF747474FF414141FF464646FF4D4D4DFF5A5A5AFF - 5F5F5FFF626262FF666666FF6A6A6AFF6F6F6FFF727272FF757575FF696969FF - 585858FF5C5C5CFF5D5D5DFF5F5F5FFF626262FF646464FF636363FF878787FF - 8C8C8CFF8C8C8CFF8D8D8DFF8F8F8FFF8E8E8EFF7F7F7FFF808080FF808080FF - 818181FF818181FF808080FF818181FF818181FF888888FF8A8A8AFF878787FF - 878787FF8E8E8EFF909090FF9F9F9FFFB3B3B3FFB1B1B1FFC4C4C4FFC5C5C5FF - C5C5C5FFBFBFBFFFABABABFFA9A9A9FFA8A8A8FFA6A6A6FFA4A4A4FF8D8D8DFF - 7B7B7BFF7A7A7AFF797979FF909090FFC0C0C0FFC0C0C0EBCCCCCC79D3D3D376 - 9F9F9F3B000000140000000F0000000A00000007000000040000000200000001 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000010000000100000002 - 0000000200000003000000040000000500000005000000050000000500000005 - 0000000400000003000000020000000200000001000000010000000000000000 - 0000000000000000000000010000000200000003D1D1D119EDEDED48E4E4E44C - 939393C4878787FF757575FF414141FF2A2A2AFF3D3D3DFF4E4E4EFF505050FF - 6A6A6AFF7C7C7CFF7E7E7EFF777777FF414141FF454545FF4E4E4EFF5B5B5BFF - 606060FF636363FF676767FF6B6B6BFF6E6E6EFF727272FF787878FF696969FF - 595959FF5D5D5DFF5D5D5DFF5F5F5FFF626262FF636363FF646464FF898989FF - 8E8E8EFF8F8F8FFF8F8F8FFF909090FF909090FF818181FF818181FF828282FF - 818181FF818181FF818181FF808080FF818181FF888888FF8A8A8AFF888888FF - 878787FF8E8E8EFF909090FF9E9E9EFFB3B3B3FFB1B1B1FFC4C4C4FFC5C5C5FF - C5C5C5FFBFBFBFFFABABABFFA9A9A9FFA7A7A7FFA6A6A6FFA4A4A4FF8D8D8DFF - 7A7A7AFF7A7A7AFF8C8C8CFFB3B3B3FFBFBFBFFFC4C4C4C2D5D5D574DBDBDB71 - 9C9C9C2E0000000F0000000B0000000800000005000000030000000200000001 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000010000000200000002 - 0000000300000005000000060000000700000007000000070000000700000007 - 0000000600000005000000040000000200000002000000010000000100000000 - 0000000000000000000000010000000100000002A3A3A30BEFEFEF48E8E8E84A - E0E0E04E8B8B8BEE888888FF8A8A8AFF808080FF888888FF949494FF959595FF - A5A5A5FFB1B1B1FFB2B2B2FFADADADFF8C8C8CFF8F8F8FFF949494FF9D9D9DFF - A0A0A0FFA1A1A1FFA5A5A5FFA7A7A7FFA9A9A9FFACACACFFAEAEAEFFA5A5A5FF - 9D9D9DFF9F9F9FFF9F9F9FFFA1A1A1FFA2A2A2FFA4A4A4FFA5A5A5FFBABABAFF - BEBEBEFFBEBEBEFFBDBDBDFFB2B2B2FFA5A5A5FF939393FF898989FF7F7F7FFF - 747474FF696969FF656565FF707070FF7C7C7CFF898989FF959595FFA0A0A0FF - ABABABFFBABABAFFC0C0C0FFC8C8C8FFD4D4D4FFD4D4D4FFDEDEDEFFDFDFDFFF - DFDFDFFFDBDBDBFFD0D0D0FFD0D0D0FFCFCFCFFFCECECEFFCDCDCDFFC1C1C1FF - B7B7B7FFB9B9B9FFBFBFBFFFBFBFBFFFC1C1C1E7D7D7D773DEDEDE6FE3E3E36D - 646464180000000B000000080000000500000004000000020000000100000001 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000010000000200000003 - 000000050000000600000008000000090000000A0000000B0000000A00000009 - 0000000800000007000000050000000400000003000000020000000100000001 - 000000000000000000000001000000010000000200000003E7E7E72DEDEDED48 - E6E6E64BDCDCDC4F949494C78C8C8CF28B8B8BFB959595FD9F9F9FFEA0A0A0FE - ADADADFEB5B5B5FFB8B8B8FFB4B4B4FF9A9A9AFF9C9C9CFFA1A1A1FFA8A8A8FF - ABABABFFADADADFFB0B0B0FFB1B1B1FFB2B2B2FFB6B6B6FEB8B8B8FCB1B1B1FC - A8A8A8FCABABABFCABABABFCADADADFCB0B0B0FCB2B2B2FCB1B1B1FCC3C3C3FB - C7C7C7FAC6C6C6FAC7C7C7FABDBDBDFBAFAFAFFB9B9B9BFC8F8F8FFD828282FD - 767676FE696969FE5D5D5DFE676767FE747474FE828282FD909090FD9C9C9CFC - A9A9A9FEB9B9B9FFC7C7C7FFCFCFCFFFD8D8D8FFD7D7D7FFE0E0E0FFE1E1E1FF - E0E0E0FFDEDEDEFFD4D4D4FFD3D3D3FFD2D2D2FFD2D2D2FDD1D1D1FCC7C7C7FC - BFBFBFFBBEBEBEFABFBFBFEBC4C4C4C3D8D8D872DFDFDF6EE6E6E66BD8D8D846 - 0000000A00000007000000050000000400000002000000020000000100000000 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000020000000300000005 - 00000007000000090000000B0000000C0000000E0000000E0000000E0000000D - 0000000C0000000A000000080000000600000005000000030000000200000001 - 00000001000000010000000100000001000000020000000369696908E3E3E335 - E8E8E84ADFDFDF4DD9D9D94FD0D0D054CBCBC95BDCD6CE7FE2D0B09BD7BF9494 - 9B9893E9898989FFA7A7A7FFE7E7E7FFE3E3E3FFD5D5D5FFCCCCCCFFC7C7C7FF - C5C5C5FFC5C5C5FFBFBFBFFF979797FF8C8C8CFF979797D99D9D9D7CA7A7A775 - B1B1B16FBCBCBC69C5C5C565CECECE61D4D4D45ED9D9D95DDDDDDD5CDFDFDF5C - E0E0E05BE0E0E05BE1E1E15CE1E1E15CE1E1E15DE1E1E15DE2E2E25EE2E2E25E - E2E2E25EE2E2E25FE2E2E25FE1E1E160DEDEDE62DBDBDB63D4D4D467CECECE6B - 999999F9949494FFB9B9B9FFDCDCDCFFD3D3D3FFCCCCCCFFCBCBCBFFCBCBCBFF - CBCBCBFFC9C9C9FFC3C3C3FF989898FF979797FFA2A2A2ACA8A8A88CB0B0B086 - BABABA80C4C4C47ACECECE75D7D7D770DFDFDF6DE5E5E56AE1E1E14C5C5C5C0E - 0000000700000005000000040000000200000002000000010000000000000000 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000020000000400000006 - 000000080000000B0000000E0000001000000012000000130000001200000011 - 0000000F0000000D0000000B0000000800000006000000050000000300000002 - 0000000200000001000000020000000200000003000000040000000500000007 - B6B6B61DC7C7C72FC6C6C63BC2BFBF44DED3C872E7CDA695DAB77C88C9A5677D - 8F8C85E77B7B7BFF9D9D9DFFE7E7E7FFE4E4E4FFD2D2D2FFC7C7C7FFC1C1C1FF - BEBEBEFFBDBDBDFFB6B6B6FF898989FF7D7D7DFF878787D47F7F7F698A8A8A61 - 98989859A6A6A652B4B4B44CC1C1C147CACACA44D4D4D441D9D9D940DCDCDC3F - DDDDDD40E0E0E040E0E0E040E0E0E040E0E0E040E0E0E041E0E0E041E1E1E141 - E1E1E141E1E1E142DEDEDE42DCDCDC44DADADA45D3D3D347C8C8C84BBFBFBF4F - 888888F7828282FFADADADFFD6D6D6FFCCCCCCFFC3C3C3FFC2C2C2FFC2C2C2FF - C2C2C2FFC0C0C0FFB8B8B8FF868686FF848484FF8989899D898989769292926F - 9F9F9F67ABABAB60BABABA59C7C7C752C7C7C742B5B5B5280000000900000007 - 00000004000000030000000200000001000000010000000000000000FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000030000000500000007 - 0000000ABC9F872BF4CEB39A463C321900000016000000170000001700000015 - 00000014000000110000000E0000000C00000009000000070000000500000004 - 0000000300000002000000020000000300000004000000050000000700000009 - 0000000B0000000E4F443917D5C4AC57E7BF8486D7993A73BB76005FAF710862 - 716D65E15C5C5CFF878787FFE4E4E4FFE2E2E2FFCCCCCCFFBBBBBBFFB2B2B2FF - AFAFAFFFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF5F5F5FC80000004100000036 - 0000002B0000002100000019000000130000000E0000000B0000000900000007 - 0000000700000006000000060000000600000006000000060000000600000006 - 00000006000000060000000700000007000000090000000C0000001100000017 - 626262F55C5C5CFF979797FFCBCBCBFFBCBCBCFFB0B0B0FFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3939397C000000480000003D - 00000032000000270000001D000000150000000F0000000A0000000700000004 - 000000020000000200000001000000010000000000000000FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000040000000600000009 - 0000000CF7D0B4AEFDD1B0EAF1CCB0A5372F27200000001B0000001B0000001A - 0000001800000015000000120000000F0000000C000000090000000700000005 - 000000040000000400000004000000050000000500000007000000090000000A - 0000000D53534716DEC8B35EEDC58A90E19F3D7ACA7D0064C0760064B4740866 - 726D64E25C5C5CFF878787FFE6E6E6FFE5E5E5FFCFCFCFFFBDBDBDFFB3B3B3FF - AFAFAFFFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF60605EC90000004000000035 - 0000002A0000002000000017000000110000000C000000080000000600000005 - 0000000400000004000000030000000300000003000000030000000300000003 - 0000000300000004000000040000000500000007000000090000000E00000014 - 626262F55C5C5CFF9A9A9AFFCDCDCDFFBCBCBCFFB0B0B0FFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3939397C000000470000003C - 00000031000000250000001C000000130000000D000000080000000500000003 - 0000000200000001000000000000000000000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000040000000700000009 - E8C2A664FED2B2F0FEC191F5FDCEACF0EEC8AEA930292225000000200000001F - 0000001D0000001A00000016000000130000000F0000000C0000000900000007 - 0000000600000006000000060000000600000007000000090000000B0000000D - 5B4F4F17E3CCB468F1C68E9BE7A03F82D581006BCC7C0069C2780068B873076B - 736D64E35C5C5CFF878787FFE8E8E8FFE8E8E8FFD4D4D4FFBFBFBFFFB4B4B4FF - AFAFAFFFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF61605EC9130F004300000034 - 000000290000001F00000017000000100000000B000000070000000500000003 - 0000000200000002000000020000000200000002000000020000000200000002 - 0000000200000002000000020000000300000005000000080000000D00000013 - 626262F55C5C5CFF9D9D9DFFCFCFCFFFBCBCBCFFB0B0B0FFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3939397B000000460000003B - 00000030000000240000001A000000120000000C000000070000000400000002 - 000000010000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000500000007AF977F20 - FDD1B3E7FEC49AF7FB7608DCFCA864EBFDCFADF0EBC7ACAA2A241E2A00000023 - 000000210000001E0000001B0000001700000013000000100000000D0000000B - 000000090000000800000008000000090000000A0000000C0000000E5E534918 - E6CDB670F3C791A6EAA5418CDB820072D67F006FCD7D006EC578006DBA76076F - 736D63E45C5C5CFF888888FFEAEAEAFFEBEBEBFFD8D8D8FFC2C2C2FFB5B5B5FF - AFAFAFFFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF63615DCB2116004617120038 - 000000290000001F00000017000000100000000A000000070000000400000003 - 0000000200000001000000010000000100000001000000010000000100000000 - 0000000000000001000000010000000200000004000000070000000C00000012 - 626262F55C5C5CFFA0A0A0FFD1D1D1FFBCBCBCFFB0B0B0FFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3939397B000000460000003B - 0000002F000000240000001A000000120000000C000000070000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000500000008F0C7AB76 - FFD1B3FCFD8E37EBFB7100DFF97200DCFBA865EBFCCEADF1E9C5ABAD28221C2D - 00000025000000230000001F0000001B0000001700000014000000100000000E - 0000000C0000000C0000000C0000000C0000000E0000000F61574D1AE8CEB578 - F5C894B0EDA44395DF81007ADB820078D77F0074CF7A0073C6780072BE760774 - 736D63E45C5C5CFF888888FFEBEBEBFFEDEDEDFFDCDCDCFFC3C3C3FFB6B6B6FF - B0B0B0FFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF64625DCC3123004A271A003B - 1C16002E0000001F00000017000000100000000B000000070000000400000002 - 00000002000000010000000100000000000000000000000000000000FFFFFF00 - FFFFFF0000000000000000010000000200000004000000070000000C00000012 - 626262F55C5C5CFFA3A3A3FFD3D3D3FFBCBCBCFFB0B0B0FFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3939397B000000460000003B - 0000002F000000230000001A000000110000000B000000070000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000500000009F8CCAEA7 - FFD1B1FDFD7204E8FB7000E4FA7100E0F87100DDFBA864ECFCCFACF2E8C3A9AF - 26211B2F0000002700000023000000200000001C000000180000001500000012 - 000000100000000F0000000F0000001000000011604F461DE9CDB581F6C996BB - EEA2439FE4820083E0820080DB7F007CD67F007BD07B0078C8760076C1770679 - 746D63E55C5C5CFF888888FFEDEDEDFFEFEFEFFFE0E0E0FFC5C5C5FFB7B7B7FF - B0B0B0FFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF65635CCD3E2A004E38280040 - 2E1F0032231C002400000017000000100000000B000000070000000500000003 - 000000020000000100000001000000000000000000000000FFFFFF00FFFFFF00 - FFFFFF0000000000000000010000000200000004000000070000000C00000012 - 626262F55C5C5CFFA5A5A5FFD5D5D5FFBCBCBCFFB0B0B0FFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3939397B000000460000003B - 0000002F000000230000001A000000110000000B000000070000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000600000009FDCEAEDA - FFBF92FBFD6E00EBFC6F00E8FA7000E4F97000E1F77100DEFBA763ECFCCFACF3 - E7C1A7B1251F1A310000002800000024000000210000001D0000001A00000017 - 000000150000001400000013000000145A524A1FEACEB48BF7C899C4F0A346A8 - E581008CE27F0088E0800085DB7F0083D67C007FD27C007DCA77007CC275067D - 756E62E65C5C5CFF898989FFEEEEEEFFF0F0F0FFE2E2E2FFC7C7C7FFB7B7B7FF - B0B0B0FFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF67635CCE4832005147310044 - 422F00363A2600282D24001D000000110000000C000000070000000500000003 - 00000002000000010000000100000000000000000000000000000000FFFFFF00 - FFFFFF0000000000000000010000000200000004000000070000000C00000012 - 626262F55C5C5CFFA8A8A8FFD8D8D8FFBCBCBCFFB0B0B0FFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3939397B000000460000003B - 0000002F000000230000001A000000110000000B000000070000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000006957C6315FFD0B0FD - FFAA6EFAFD6D00F0FC6D00ECFB6F00E9F96F00E5F87000E1F67000DFFAA763EC - FCCFADF3E6C2A8B1241F1A320000002800000025000000210000001E0000001C - 0000001A0000001900000018554E4024EACBB394F8CA9CCDF1A146B2E77F0095 - E47E0091E27F008EDF7D008ADB7E0088D87D0084D27A0082CC790081C5770681 - 756E62E75C5C5CFF898989FFEFEFEFFFF2F2F2FFE5E5E5FFC7C7C7FFB7B7B7FF - B0B0B0FFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF68645CCF5338005651390048 - 5238003B4F38002D473000203B2F00160000000C000000080000000500000003 - 00000002000000010000000100000001000000000000000000000000FFFFFF00 - FFFFFF0000000000000000010000000200000004000000070000000C00000012 - 626262F55C5C5CFFABABABFFDADADAFFBCBCBCFFB0B0B0FFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3939397B000000460000003B - 0000002F000000230000001A000000110000000B000000070000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000006CDA68D28FFCDAEFF - FF9E59FCFE6C00F4FD6C00F0FB6D00ECFA6E00E9F96F00E6F77000E2F67000DF - FAA763EDFCCEAEF4E6C1A7B2241F1A3200000029000000260000002300000021 - 0000001E0000001E52453F29EBCCB29EF8C99ED6F2A047BAE97D009FE67D009B - E47D0097E27D0093E07E0090DD7C008CD97C008AD47B0086CE770085C8790685 - 766E62E75C5C5CFF898989FFF0F0F0FFF3F3F3FFE7E7E7FFC8C8C8FFB8B8B8FF - B0B0B0FFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF68645BD05E3F005A5E40004C - 5E42003E62430032614600255A3C00194C3D00114646460B2B2B2B0600000003 - 00000002000000010000000100000001000000000000000000000000FFFFFF00 - FFFFFF0000000000000000010000000200000004000000070000000C00000012 - 626262F55C5C5CFFAEAEAEFFDCDCDCFFBCBCBCFFB0B0B0FFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3939397B000000460000003B - 0000002F000000230000001A000000110000000B000000070000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000006C89C8329FFCCACFF - FF9C57FEFE6B00F9FD6B00F5FC6C00F1FB6D00EDFA6E00EAF86F00E6F76F00E2 - F67000DFFAA763EDFCCFAEF4E6C1A8B4231E19330000002A0000002800000025 - 000000234D42372EEAC9B1A7F9CAA0DDF39F48C3EA7B00A8E87B00A4E67C00A1 - E57C009CE27C0098E07C0094DD7D0091DA7B008DD67A008CD0790089CA770689 - 766E61E85C5C5CFF898989FFF1F1F1FFF4F4F4FFE9E9E9FFC9C9C9FFB8B8B8FF - B0B0B0FFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF6A655BD16645005D69460050 - 6C4900426F4D0035734F002A7755001E704A00159C8F5B149696810C00000003 - 00000002000000010000000100000000000000000000000000000000FFFFFF00 - FFFFFF0000000000000000010000000200000004000000070000000C00000012 - 626262F55C5C5CFFB1B1B1FFDEDEDEFFBCBCBCFFB0B0B0FFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3939397B000000460000003B - 0000002F000000230000001A000000110000000B000000070000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C89C8329FFCBAAFF - FE9A56FFFF6900FCFE6B00F9FD6B00F5FC6C00F1FA6D00EDF96E00EAF86F00E7 - F66F00E3F57000DFFAA762EDFCCEADF5E6C2A7B4231E19340000002C0000002A - 453B3634EBC8ADB1FACAA2E5F49E49CBEC7A00B2EA7A00ADE87A00A9E77A00A5 - E57B00A1E37B009DE07B0099DE7B0095DB7B0093D7790090D278008ECC79058E - 776E61E95C5C5CFF898989FFF2F2F2FFF5F5F5FFEBEBEBFFCACACAFFB8B8B8FF - B0B0B0FFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF6B655BD26F4A0060714D0053 - 775000467C5400398059002E8B5F0023916B0A1AC4AB721FB2A2911000000003 - 000000020000000100000001000000000000000000000000FFFFFF00FFFFFF00 - FFFFFF0000000000000000010000000200000004000000070000000C00000012 - 626262F55C5C5CFFB4B4B4FFDFDFDFFFBBBBBBFFB0B0B0FFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3939397B000000460000003B - 0000002F000000230000001A000000110000000B000000070000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C89C8329FFCAA9FF - FD9955FFFD6800FFFF6900FCFE6A00F9FD6B00F5FB6C00F1FA6C00EEF96E00EB - F76E00E7F66F00E3F57000E0FAA662EDFCCFAEF5E6C1A7B5221D18354239303A - EBC6ACBAFACDA5EAF49D4AD3ED7800BBEB7900B6EA7900B3E87900AEE77A00AA - E57A00A6E47B00A2E27B009EDF7A009ADC7A0097D97A0094D4770092CF790592 - 786E61EA5C5C5CFF8A8A8AFFF3F3F3FFF6F6F6FFEDEDEDFFCACACAFFB9B9B9FF - B0B0B0FFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF6D6659D3764D00637B520057 - 8056004A885B003E91620031986A0026C8A25C2FD2BC98238D8D750B00000003 - 000000020000000100000001000000000000000000000000FFFFFF00FFFFFF00 - FFFFFF0000000000000000010000000200000004000000070000000C00000012 - 626262F55C5C5CFFB6B6B6FFDEDEDEFFB8B8B8FFAFAFAFFFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3939397B000000460000003B - 0000002F000000230000001A000000110000000B000000070000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C89C8329FFC8A7FF - FC9854FFFB6700FFFD6800FFFF6900FCFE6A00F9FC6B00F5FB6C00F2FA6C00EE - F96E00EBF76E00E7F66F00E3F57000E0FAA762EDFCCFAFF5E6C2A8B7ECC6ACC2 - FBCDA9F0F69D4BDAEE7600C3ED7600BEEC7800BBEA7800B7E97900B3E87900AF - E67900ABE47900A6E37A00A3E17A009FDE7A009BDA790098D6780096D0770596 - 786E60EA5C5C5CFF8A8A8AFFF4F4F4FFF6F6F6FFEEEEEEFFCACACAFFB9B9B9FF - B0B0B0FFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF6E6659D47E5200678255005A - 885B004F916200419C680036C8A45840D1BA9037BBB19C190000000500000003 - 0000000200000001000000010000000100000000000000000000000000000000 - 0000000000000001000000010000000200000004000000070000000C00000013 - 626262F55C5C5CFFB9B9B9FFD9D9D9FFB4B4B4FFAEAEAEFFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3A3A3A7B000000460000003A - 0000002F000000230000001A000000110000000B000000070000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C4997B2AFFC7A5FF - FB9753FFF96600FFFB6700FFFD6800FFFE6900FDFE6A00F9FC6B00F6FB6C00F2 - FA6C00EEF86E00EBF76E00E7F66F00E3F57000E0FAA662EDFDD0AFF6FDCEABF5 - F79C4BE0F07300CBEF7500C8ED7500C3EC7500BFEB7700BCEA7800B7E97900B4 - E77900B0E67900ABE47900A7E27A00A4DF7900A0DC78009DD777009AD379059A - 796E60EB5C5C5CFF8A8A8AFFF5F5F5FFF7F7F7FFEEEEEEFFCACACAFFB9B9B9FF - B0B0B0FFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF6E6759D58555006C8959005F - 8F5D005298650046C5A05353D2B68C49B2AB9D24000000080000000500000003 - 0000000200000002000000010000000100000001000000010000000100000001 - 0000000100000001000000020000000300000005000000080000000D00000013 - 626262F55C5C5CFFBCBCBCFFCFCFCFFFB1B1B1FFAEAEAEFFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3A3A3A7B000000460000003A - 0000002F0000002300000019000000110000000B000000070000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C4997B2AFFC5A3FF - FA9653FFF66600FFF96600FFFB6700FFFD6800FFFE6900FDFD6A00FAFC6B00F6 - FB6B00F2F96C00EEF86E00EBF76E00E7F66F00E3F57000E0FAA662EDF89C4DE7 - F27200D4F17300D0EF7300CCEE7500C8ED7500C4EC7500BFEB7700BCE97700B8 - E87800B4E77900B0E57800ABE37800A7E17900A4DD7800A1D977009FD57B089E - 7A6F5FEC5C5C5CFF8B8B8BFFF6F6F6FFF7F7F7FFEFEFEFFFCACACAFFB9B9B9FF - B0B0B0FFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF706758D68A57006F8F5C0064 - 95610057C29B5266CCB38A5CA89D93310000000D000000090000000600000004 - 0000000300000002000000020000000200000002000000020000000200000002 - 0000000200000002000000030000000400000006000000090000000F00000015 - 626262F55C5C5CFFBCBCBCFFBFBFBFFFB0B0B0FFAEAEAEFFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3A3A3A7B000000450000003A - 0000002E0000002300000019000000110000000B000000060000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C4937B2AFFC4A1FF - F99552FFF46500FFF66600FFF96600FFFB6700FFFD6800FFFE6900FDFD6A00FA - FC6B00F6FB6B00F2F96C00EEF86E00EBF76E00E7F66F00E3F57000E0F47000DC - F27200D8F27200D4F07300D0EF7300CCEE7500C8ED7500C4EB7500C0EB7700BC - E97700B8E87800B4E67800B0E57800ACE27800A8E07800A5DC7A05A3D87A0AA3 - 7A6F5FED5C5C5CFF8B8B8BFFF6F6F6FFF8F8F8FFF0F0F0FFCACACAFFB9B9B9FF - B0B0B0FFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF716858D88F5A0074945E0268 - C1975279C9B087709F92863F000000140000000F0000000B0000000800000006 - 0000000500000005000000050000000400000004000000040000000400000004 - 00000004000000050000000500000007000000090000000C0000001100000017 - 626262F55C5C5CFFADADADFFB7B7B7FFAFAFAFFFAEAEAEFFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3A3A3A7B0000004400000039 - 0000002D0000002200000019000000100000000A000000060000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C4937B2AFFC3A0FF - F79451FFF26400FFF46500FFF66600FFF96600FFFB6700FFFD6800FFFE6900FD - FD6A00FAFC6B00F6FB6B00F2F96C00EEF86D00EBF76E00E7F66F00E3F57000E0 - F47000DCF27100D8F17200D4F07300D0EF7300CCEE7500C9ED7500C4EB7500C0 - EB7700BCE97700B8E87800B4E67800B0E37800ADE27B06ABDE7B06A9DA7A09A7 - 7B6F5FEE5C5C5CFF8B8B8BFFF7F7F7FFF8F8F8FFF1F1F1FFCACACAFFB9B9B9FF - B0B0B0FFADADADFFA4A4A4FF6B6B6BFF5C5C5CFF726857DA955E027ABF95518B - C5AA8383968D804E0808001F00000017000000120000000E0000000B00000009 - 0000000800000008000000070000000700000007000000070000000700000007 - 0000000700000008000000090000000A0000000C00000010000000150000001B - 626262F55C5C5CFF969696FFADADADFFADADADFFAEAEAEFFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3A3A3A7A0000004400000038 - 0000002C0000002100000018000000100000000A000000060000000300000002 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C4937B2AFFC19EFF - F69350FFEF6300FFF26400FFF46500FFF66600FFF96600FFFB6700FFFD6800FF - FE6900FDFD6A00FAFC6B00F6FB6B00F2F96C00EEF86D00EBF76E00E7F66F00E3 - F57000E0F47000DCF27100D8F17200D4F07300D0EF7300CCEE7500C9ED7500C4 - EB7500C0EB7700BCE97700B8E77800B5E67B06B2E37A07AFE07A06ACDC7A09AB - 7B6E5FEF5C5C5CFF8B8B8BFFF8F8F8FFF9F9F9FFF2F2F2FFCCCCCCFFBABABAFF - B3B3B3FFAEAEAEFFA6A6A6FF6D6D6DFF5D5D5DFF746957DAC092519DC3A88295 - 8E84795F0606062C000000230000001C0000001700000013000000100000000E - 0000000D0000000D0000000C0000000C0000000C0000000C0000000C0000000C - 0000000C0000000D0000000E0000000F00000011000000150000001A00000020 - 626262F55C5C5CFF888888FFA9A9A9FFADADADFFAEAEAEFFAFAFAFFFAFAFAFFF - AEAEAEFFACACACFFA1A1A1FF5F5F5FFF5C5C5CFF3B3B3B790000004200000037 - 0000002B00000021000000170000001000000009000000060000000300000001 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C090722AFFC09CFF - F5914FFFED6200FFEF6300FFF26400FFF46500FFF66600FFF96600FFFB6700FF - FD6800FFFE6900FDFD6A00FAFC6B00F6FB6B00F2F96C00EEF86D00EBF76E00E7 - F66F00E3F57000E0F47000DCF27100D8F17200D4F07300D0EF7300CCEE7500C9 - ED7500C4EB7500C0EA7700BCE97B07BAE87C08B7E57A07B3E27A06B0DE7908AE - 7B6F5FEF5D5D5DFF8B8B8BFFF9F9F9FFFAFAFAFFF3F3F3FFCECECEFFBDBDBDFF - B4B4B4FFB1B1B1FFA7A7A7FF707070FF606060FF817769E5C4A984A48A7E736F - 0404043A0000003100000029000000220000001D000000190000001700000015 - 0000001400000013000000130000001300000013000000130000001300000013 - 00000013000000140000001500000016000000180000001C0000002100000027 - 616161F55C5C5CFF848484FFA8A8A8FFADADADFFAEAEAEFFAFAFAFFFAFAFAFFF - AEAEAEFFABABABFFA0A0A0FF5F5F5FFF5C5C5CFF3B3B3B770000004100000036 - 0000002A0000001F000000160000000F00000009000000050000000200000001 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C090722AFFBF9AFF - F4904EFFEB6100FFED6200FFEF6300FFF26400FFF46500FFF66600FFF96600FF - FB6700FFFD6800FFFE6900FDFD6A00FAFC6B00F6FB6B00F2F96C00EEF86D00EB - F76E00E7F66F00E3F57000E0F47000DCF27100D8F17200D4F07300D0EF7300CC - EE7500C9EC7501C4EC7908C2EA7B09BEE97B08BAE77A07B7E47A06B4DF7A07B2 - 84715DEC5F5F5FFF868686FFF9F9F9FFFAFAFAFFF5F5F5FFD4D4D4FFC0C0C0FF - B5B5B5FFB3B3B3FFABABABFF797979FF636363FF7D7873EF8E8277800E0E0E4B - 0000003F00000037000000300000002A00000025000000220000001F0000001E - 0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C - 0000001C0000001C0000001D0000001E0000002100000024000000290000002F - 606060FA5C5C5CFF898989FFA9A9A9FFAEAEAEFFAFAFAFFFAFAFAFFFAFAFAFFF - AFAFAFFFABABABFF9E9E9EFF5D5D5DFF5C5C5CFF252525610000003F00000033 - 000000280000001E000000150000000E00000009000000050000000200000001 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C090722AFFBD98FF - F3904DFFE86000FFEB6100FFED6200FFEF6300FFF26400FFF46500FFF66600FF - F96600FFFB6700FFFD6800FFFE6900FDFD6A00FAFC6B00F6FB6B00F2F96C00EE - F86D00EBF76E00E7F66F00E3F57000E0F47000DCF27100D8F17200D4F07300D0 - EF7301CCEE7909CAED7A0AC6EB7909C2EA7B08BFE87907BBE57A06B8E27B0BB7 - 947756E4626262FF7C7C7CFFFAFAFAFFFBFBFBFFF8F8F8FFDDDDDDFFC4C4C4FF - B9B9B9FFB4B4B4FFADADADFF878787FF666666FF6F6E6EF62121215C19191953 - 0E0E0E490404044000000039000000330000002F0000002C0000002900000028 - 0000002700000026000000260000002600000026000000260000002600000026 - 000000260000002700000028000000290000002B0000002E0000003200000037 - 5D5D5DFF5C5C5CFF979797FFAAAAAAFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFF - AFAFAFFFAAAAAAFF979797FF5C5C5CFF5D5D5DFF000000470000003C00000031 - 000000260000001C000000130000000D00000008000000050000000200000001 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C08A722AFFBC97FF - F28E4CFFE66000FFE86000FFEB6100FFED6200FFEF6300FFF26400FFF46500FF - F66600FFF96600FFFB6700FFFD6800FFFE6900FDFD6A00FAFC6B00F6FB6B00F2 - F96C00EEF86D00EBF76E00E7F66F00E3F57000E0F47000DCF27100D8F17201D4 - F1780AD2EF7A0BCEEE7A0ACAED7A09C6EB7908C2EA7907BFE77B09BCE57D0FBB - AD7E4CD9646464FF737373FFFAFAFAFFFBFBFBFFF9F9F9FFE5E5E5FFC8C8C8FF - BCBCBCFFB6B6B6FFB1B1B1FF959595FF686868FF696969FE3E3E3E782222225B - 1C1C1C531111114B000000420000003D00000039000000360000003400000033 - 0000003200000031000000310000003100000031000000310000003100000031 - 0000003100000032000000330000003400000036000000390000003D5D5D5DB4 - 5C5C5CFF606060FFA2A2A2FFACACACFFAEAEAEFFAFAFAFFFAFAFAFFFAFAFAFFF - AEAEAEFFA8A8A8FF909090FF5C5C5CFF5E5E5EFE00000044000000390000002E - 000000230000001A000000120000000C00000007000000040000000200000001 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000008C08A6C2AFFBB95FF - F08D4BFFE45F00FFE66000FFE86000FFEB6100FFED6200FFEF6300FFF26400FF - F46500FFF66600FFF96600FFFB6700FFFD6800FFFE6900FDFD6A00FAFC6B00F6 - FB6B00F2F96C00EEF86D00EBF76E00E7F66F00E3F57000E0F47201DCF3760BD9 - F2780CD6F17A0BD2EF780ACEEE7A09CAED7908C6EB7A0AC2EA7E0FC1E67F13BF - CD8333CB666666FF6B6B6BFFEFEFEFFFFBFBFBFFFAFAFAFFEDEDEDFFCCCCCCFF - BFBFBFFFB9B9B9FFB5B5B5FFABABABFF767676FF696969FF6D6D6DF127272762 - 2121215C181818550D0D0D4E000000470000004400000041000000400000003F - 0000003E0000003D0000003D0000003D0000003D0000003D0000003D0000003D - 0000003D0000003E0000003E0000003F0000004100000044313131655F5F5FFE - 5C5C5CFF7D7D7DFFA7A7A7FFAEAEAEFFAEAEAEFFAFAFAFFFAFAFAFFFAFAFAFFF - AEAEAEFFA7A7A7FF848484FF5C5C5CFF5F5F5FFA00000040000000360000002A - 0000002000000017000000100000000A00000006000000030000000200000001 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000008C08A6C2AFFBA93FF - EF8C4BFFE15E00FFE45F00FFE66000FFE86000FFEB6100FFED6200FFEF6300FF - F26400FFF46500FFF66600FFF96600FFFB6700FFFD6800FFFE6900FDFD6A00FA - FC6B00F6FB6B00F2F96C00EEF86D00EBF76E00E7F67001E3F5760AE1F4780DDD - F3780CD9F2780BD6F1780AD2EF7809CEEE7A09CAEC7C0EC7EB7E12C4E98115C2 - E8851DC26E6E6DFE6B6B6BFFC1C1C1FFFBFBFBFFFBFBFBFFF4F4F4FFD3D3D3FF - C4C4C4FFBBBBBBFFB8B8B8FFB3B3B3FF9E9E9EFF6D6D6DFF6A6A6AFF6D6D6DF9 - 5858589E1E1E1E5D14141458060606510000004D0000004C0000004A00000049 - 0000004800000048000000480000004800000048000000480000004800000048 - 0000004800000048000000490000004A0F0F0F535C5C5CBD5E5E5EFE5C5C5CFF - 666666FFA0A0A0FFAAAAAAFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAEAEAEFF - ACACACFFA4A4A4FF6E6E6EFF5C5C5CFF616161E10000003C0000003100000027 - 0000001D000000150000000E0000000900000005000000030000000100000000 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000008C08A6C2AFFB891FF - EE8B4AFFDF5D00FFE15E00FFE45F00FFE66000FFE86000FFEB6100FFED6200FF - EF6300FFF26400FFF46500FFF66600FFF96600FFFB6700FFFD6800FFFE6900FD - FD6A00FAFC6B00F6FB6B00F2F96C00EEF86F01EBF7750BE8F6760DE5F5770CE1 - F4770CDDF3780BD9F2770AD6F07808D2EF790DCFEF7E10CCEC7F14C8EB8118C7 - E98620C684796EF66D6D6DFF949494FFFCFCFCFFFCFCFCFFF8F8F8FFDFDFDFFF - CACACAFFC1C1C1FFBCBCBCFFB7B7B7FFB1B1B1FF959595FF707070FF696969FF - 686868FF666666FF666666FB636363FA5F5F5FFB606060FB606060FB606060FA - 606060FA606060FA606060FA606060FA606060FA606060FA606060FA606060FA - 606060FA606060FA606060FA5F5F5FFD5D5D5DFF5C5C5CFF5C5C5CFF686868FF - 969696FFA9A9A9FFADADADFFAEAEAEFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFF - AAAAAAFF9E9E9EFF5F5F5FFF5C5C5CFF5353538F000000370000002C00000023 - 0000001A000000120000000C0000000700000004000000020000000100000000 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000008BC876A2BFFB790FF - ED8A49FFDD5C00FFDF5D00FFE15E00FFE45F00FFE66000FFE86000FFEB6100FF - ED6200FFEF6300FFF26400FFF46500FFF66600FFF96600FFFB6700FFFD6800FF - FE6900FDFD6A00FAFC6B00F6FB6C01F2FA730CEFF9760EECF7760DE8F6760CE5 - F5760BE1F4770ADDF37609D9F2770AD6F07A0ED3F07D12CFEE8116CDED841BCA - EB851FC8B58859E06F6F6FFF767676FFEEEEEEFFFCFCFCFFFAFAFAFFF0F0F0FF - D4D4D4FFC8C8C8FFBFBFBFFFBCBCBCFFB7B7B7FFB2B2B2FFA6A6A6FF7F7F7FFF - 6D6D6DFF666666FF646464FF606060FF5D5D5DFF5C5C5CFF5C5C5CFF5C5C5CFF - 5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF - 5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF646464FF7F7F7FFFA2A2A2FF - A9A9A9FFAEAEAEFFAEAEAEFFAFAFAFFFAFAFAFFFAFAFAFFFAEAEAEFFADADADFF - A6A6A6FF848484FF5C5C5CFF5E5E5EFE0000003B00000031000000280000001E - 000000160000000F0000000A0000000600000003000000020000000100000000 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000008BC876A2BFFB68EFF - EC8948FFDA5B00FFDD5C00FFDF5D00FFE15E00FFE45F00FFE66000FFE86000FF - EB6100FFED6200FFEF6300FFF26400FFF46500FFF66600FFF96600FFFB6700FF - FD6800FFFE6900FDFD6B01FAFC720CF7FB730FF3FA740EEFF9750DECF7760CE8 - F6750BE4F5760AE1F4750ADDF3780BD9F27A0FD6F17E14D3EF8018D0EF841CCE - ED8621CCEC8C2ACA787674FE737373FFA5A5A5FFFBFBFBFFFBFBFBFFF9F9F9FF - E8E8E8FFD4D4D4FFC9C9C9FFC0C0C0FFBCBCBCFFB8B8B8FFB4B4B4FFAFAFAFFF - AAAAAAFFA0A0A0FF909090FF8C8C8CFF8A8A8AFF878787FF878787FF878787FF - 878787FF878787FF878787FF878787FF878787FF878787FF878787FF878787FF - 888888FF888888FF898989FF8F8F8FFF9B9B9BFFA3A3A3FFA7A7A7FFAAAAAAFF - ADADADFFAEAEAEFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAEAEAEFFAAAAAAFF - 9F9F9FFF646464FF5C5C5CFF626262D8000000350000002C000000220000001A - 000000130000000C0000000800000005000000020000000100000000FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000008BC81642BFFB48CFF - EB8747FFD85A00FFDA5B00FFDD5C00FFDF5D00FFE15E00FFE45F00FFE66000FF - E86000FFEB6100FFED6200FFEF6300FFF26400FFF46500FFF66600FFF96600FF - FB6700FFFD6901FFFE700DFDFD730FFAFC730EF7FB730EF3FA730DEFF9750CEC - F7750BE8F6750BE4F5750AE1F4780CDDF37A10DAF37E15D7F1811AD4F0841ED1 - EF8824CFEE8B2BCEB08964E7747474FF7E7E7EFFE8E8E8FFFBFBFBFFFBFBFBFF - F7F7F7FFE5E5E5FFD5D5D5FFCACACAFFC1C1C1FFBBBBBBFFB9B9B9FFB6B6B6FF - B4B4B4FFB1B1B1FFAEAEAEFFACACACFFAAAAAAFFA8A8A8FFA8A8A8FFA8A8A8FF - A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF - A8A8A8FFA8A8A8FFA8A8A8FFA9A9A9FFABABABFFACACACFFADADADFFAFAFAFFF - AEAEAEFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAEAEAEFFACACACFFA4A4A4FF - 808080FF5C5C5CFF5E5E5EFE1D1D1D450000002F000000250000001D00000015 - 0000000F0000000A0000000600000004000000020000000100000000FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000008BC81642BFFB38AFF - E98746FFD65900FFD85A00FFDA5B00FFDD5C00FFDF5D00FFE15E00FFE45F00FF - E66000FFE86000FFEB6100FFED6200FFEF6300FFF26400FFF46500FFF66600FF - F96701FFFB6F0DFFFD7110FFFE720FFDFD720EFAFC730DF7FB720DF3FA730CEF - F9740BECF7750BE8F6740AE4F5770DE1F47A11DEF47E16DBF3811BD8F2841FD5 - F08725D2F08C2AD0EE9034D082807EFE818181FF9E9E9EFFF7F7F7FFFBFBFBFF - FAFAFAFFF6F6F6FFE6E6E6FFD6D6D6FFCACACAFFC2C2C2FFBDBDBDFFBABABAFF - B8B8B8FFB7B7B7FFB4B4B4FFB1B1B1FFAFAFAFFFADADADFFADADADFFADADADFF - ADADADFFADADADFFADADADFFADADADFFADADADFFADADADFFADADADFFADADADFF - ADADADFFADADADFFAEAEAEFFAEAEAEFFAFAFAFFFAEAEAEFFAEAEAEFFAFAFAFFF - AFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAEAEAEFFACACACFFA7A7A7FF939393FF - 606060FF5C5C5CFF616161C500000030000000280000001F0000001700000011 - 0000000C000000070000000500000003000000010000000100000000FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000008BC81642BFFB289FF - E88645FFD35900FFD65900FFD85A00FFDA5B00FFDD5C00FFDF5D00FFE15E00FF - E45F00FFE66000FFE86000FFEB6100FFED6200FFEF6300FFF26400FFF46601FF - F66E0EFFF97011FFFB7010FFFD710FFFFE710EFDFD720DFAFC720CF7FB720DF3 - FA720CEFF9740BECF7730AE8F6760DE4F57A12E2F57D15DFF4801BDCF38420D9 - F28625D6F18B2CD4F9BF8DEBD7C0AEF6868686FF909090FFBABABAFFFAFAFAFF - FBFBFBFFFAFAFAFFF6F6F6FFE9E9E9FFD8D8D8FFCCCCCCFFC5C5C5FFC1C1C1FF - BEBEBEFFBBBBBBFFB8B8B8FFB6B6B6FFB4B4B4FFB2B2B2FFB0B0B0FFB0B0B0FF - B0B0B0FFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFF - AFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFF - AFAFAFFFAFAFAFFFAEAEAEFFAFAFAFFFACACACFFA8A8A8FF999999FF646464FF - 5C5C5CFF606060F605050534000000290000002100000019000000130000000D - 000000090000000600000003000000020000000100000000FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000008BC81642BFFB087FF - E78444FFD15800FFD35900FFD65900FFD85A00FFDA5B00FFDD5C00FFDF5D00FF - E15E00FFE45F00FFE66000FFE86000FFEB6100FFED6200FFEF6401FFF36D0FFF - F57012FFF77011FFF97010FFFB700FFFFD700EFFFE710DFDFD710DFAFC720CF7 - FB710CF3FA720BEFF9730AECF7750DE8F67912E5F67C15E3F57F1BDFF48320DC - F48727DBFBBE8CEFFCD7BDF6E4CAB7B7999898BE919191FF9D9D9DFFCACACAFF - F9F9F9FFFAFAFAFFF9F9F9FFF5F5F5FFEEEEEEFFE0E0E0FFD6D6D6FFD0D0D0FF - CBCBCBFFC7C7C7FFC2C2C2FFBEBEBEFFBBBBBBFFB8B8B8FFB5B5B5FFB4B4B4FF - B2B2B2FFB1B1B1FFB0B0B0FFB0B0B0FFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFF - AFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFF - AFAFAFFFAEAEAEFFAEAEAEFFACACACFFA7A7A7FF999999FF696969FF5C5C5CFF - 5F5F5FFD3030304B00000029000000210000001A000000140000000E0000000A - 000000070000000400000002000000010000000000000000FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000008BC81642BFFAF85FF - E68344FFCF5700FFD15800FFD35900FFD65900FFD85A00FFDA5B00FFDD5C00FF - DF5D00FFE15E00FFE45F00FFE66000FFE86000FFEB6201FFEE6C10FFF06E13FF - F36F12FFF56F11FFF77010FFF96F0FFFFB700EFFFD700EFFFE710DFDFD710CFA - FC720BF7FB710AF3FA720AEFF9750DECF77813E9F77B16E5F67F1BE3F5831FE0 - FBBC8BF2FED7BDFBE5C8B3B881817F589D9D9D659D9D9DDD989898FFA0A0A0FF - B9B9B9FFF2F2F2FFF7F7F7FFF7F7F7FFF5F5F5FFF1F1F1FFEBEBEBFFE5E5E5FF - DFDFDFFFD9D9D9FFD5D5D5FFCFCFCFFFCACACAFFC5C5C5FFC2C2C2FFBEBEBEFF - BBBBBBFFB8B8B8FFB5B5B5FFB3B3B3FFB1B1B1FFB0B0B0FFAFAFAFFFAFAFAFFF - AFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAFAFAFFFAEAEAEFFAEAEAEFFAEAEAEFF - AEAEAEFFADADADFFAAAAAAFFA4A4A4FF919191FF636363FF5C5C5CFF5E5E5EFE - 5454547300000028000000210000001A000000140000000F0000000B00000007 - 0000000500000003000000020000000100000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000008BC815E2BFFAE83FF - E58243FFCC5600FFCF5700FFD15800FFD35900FFD65900FFD85A00FFDA5B00FF - DD5C00FFDF5D00FFE15E00FFE45F00FFE66102FFE96A11FFED6D14FFEE6E13FF - F06E12FFF36E11FFF56F10FFF76F0FFFF96F0FFFFB6F0EFFFD700DFFFE700CFD - FD710BFAFC710AF6FB7109F3FA730CEFF97811EDF77915E9F77D19E6F6801DE3 - FBB379F1FFD7BEFDEECDB5CB847F7D589090905DA7A7A76BA1A1A1D3969696FF - 979797FF9F9F9FFFD3D3D3FFF2F2F2FFF4F4F4FFF4F4F4FFF3F3F3FFF1F1F1FF - EEEEEEFFEAEAEAFFE7E7E7FFE3E3E3FFDFDFDFFFD9D9D9FFD5D5D5FFD0D0D0FF - CBCBCBFFC6C6C6FFC0C0C0FFBBBBBBFFB6B6B6FFB3B3B3FFB1B1B1FFB0B0B0FF - AFAFAFFFAFAFAFFFAFAFAFFFAEAEAEFFAEAEAEFFADADADFFAEAEAEFFACACACFF - A9A9A9FFA6A6A6FF9E9E9EFF7C7C7CFF5F5F5FFF5C5C5CFF5F5F5FFD5151516D - 000000250000001F00000019000000140000000F0000000B0000000700000005 - 0000000300000002000000010000000000000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C07E602AFFAC81FF - E48142FFCA5500FFCC5600FFCF5700FFD15800FFD35900FFD65900FFD85A00FF - DA5B00FFDD5C00FFDF5D00FFE15F02FFE66A11FFE86D15FFEA6C14FFEC6D13FF - EE6D12FFF06E11FFF36E10FFF56E10FFF76F0FFFF96E0EFFFB6F0DFFFD6F0CFF - FE700BFDFD700AFAFC710AF6FB710BF3FA750FEFF97813EDF87B17E9F77E1CE6 - F68220E4FBB37AF1FFD9BFFEEFCCB7CD898482599393935FA5A5A568A1A1A1B4 - 8E8E8EFE898989FF848484FF959595FFCCCCCCFFEAEAEAFFEDEDEDFFEDEDEDFF - EEEEEEFFECECECFFECECECFFEBEBEBFFE7E7E7FFE4E4E4FFE0E0E0FFDCDCDCFF - D7D7D7FFD1D1D1FFCACACAFFC2C2C2FFBABABAFFB3B3B3FFAEAEAEFFACACACFF - AAAAAAFFAAAAAAFFABABABFFAAAAAAFFAAAAAAFFA8A8A8FFA6A6A6FFA2A2A2FF - 9A9A9AFF818181FF636363FF5C5C5CFF5C5C5CFF606060F63535354300000022 - 0000001C00000017000000130000000E0000000B000000070000000500000003 - 00000002000000010000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C07E602AFFAB80FF - E28041FFC85400FFCA5500FFCC5600FFCF5700FFD15800FFD35900FFD65900FF - D85A00FFDA5B00FFDD5D02FFE16912FFE46C16FFE66C15FFE86C14FFEA6C13FF - EC6C12FFEE6D11FFF06D11FFF36E10FFF56E0FFFF66E0EFFF96E0DFFFB6E0CFF - FD6F0BFFFE6F0AFDFD700AFAFC710AF6FB730DF3FA7611F0F97A15EDF87C18EA - F77F1CE6F68222E4FBB47CF1FFD9BFFEEFCEB7CC878380588E8E8E599696965E - 9999997A898989EA7A7A7AFF757575FF737373FF7A7A7AFF969696FFB3B3B3FF - C2C2C2FFCECECEFFD9D9D9FFDBDBDBFFDBDBDBFFD9D9D9FFD7D7D7FFD4D4D4FF - D1D1D1FFCDCDCDFFC6C6C6FFBEBEBEFFB5B5B5FFACACACFFA5A5A5FFA1A1A1FF - 9F9F9FFF9F9F9FFF9E9E9EFF9B9B9BFF929292FF898989FF7D7D7DFF6C6C6CFF - 5D5D5DFF5C5C5CFF5C5C5CFF5E5E5EFD646464BC070707250000001E00000019 - 00000015000000110000000D0000000A00000007000000050000000300000002 - 000000010000000100000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000007C481622AFFAA7EFF - E17F40FFC55300FFC85400FFCA5500FFCC5600FFCF5700FFD15800FFD35900FF - D65900FFD85B02FFDD6713FFE06B17FFE26B16FFE36B15FFE66C14FFE86C13FF - EA6B12FFEC6C12FFEE6C11FFF06D10FFF36D0FFFF56E0EFFF66E0DFFF96D0CFF - FB6E0CFFFD6E0BFFFE6F0AFDFD6F09FAFC720BF6FB740EF2FA7712F0F97A16ED - F87D1AEAF77F1DE6F68321E3FBB47BF0FFD8BEFFEFCEB7CC87827F557D7D7D50 - 8181814F8686864F8989897F7C7C7CEF737373FF6F6F6FFF6D6D6DFF6A6A6AFF - 686868FF656565FF636363FF606060FF5D5D5DFF5C5C5CFF5C5C5CFF5C5C5CFF - 5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF - 5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF - 5C5C5CFF5F5F5FFC656565CF2323232A0000001C000000190000001500000012 - 0000000E0000000C000000090000000700000005000000030000000200000001 - 0000000100000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000006CD866028FFA87CFF - E07E3FFFC35300FFC55300FFC85400FFCA5500FFCC5600FFCF5700FFD15800FF - D35A02FFD96614FFDC6918FFDD6A17FFE06A16FFE26A15FFE36B14FFE66B13FF - E86C13FFEA6B12FFEC6B11FFEE6C10FFF06C0FFFF36D0EFFF56D0DFFF66D0CFF - F96D0CFFFB6D0BFFFD6E0AFFFE6E09FDFD700AFAFC720CF6FB7610F3F97714EF - F97B17ECF87E1BE9F7811DE6F68220E2FBB37BF0FFD8BDFFF0CDB7CC817C7C51 - 7979794A7B7B7B487C7C7C467E7E7E4484848448808080A1787878E6717171F8 - 6B6B6BFC676767FF616161FF5F5F5FFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF - 5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF5C5C5CFF - 5C5C5CFF5C5C5CFF5C5C5CFF5D5D5DFF5E5E5EFE606060FB616161F4656565CF - 595959630000001B000000190000001600000014000000110000000F0000000C - 0000000900000007000000060000000400000003000000020000000100000001 - 00000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000005B1735318FFA77AFF - E28246FFC15200FFC35300FFC55300FFC85400FFCA5500FFCC5600FFCF5802FF - D56515FFD76919FFDA6918FFDC6917FFDD6916FFE06A15FFE26A14FFE36A14FF - E66B13FFE86B12FFEA6B11FFEC6B10FFEE6B0FFFF06C0EFFF36C0EFFF56D0DFF - F66D0CFFF96D0BFFFB6D0AFFFD6D09FFFE6E08FDFD700AFAFC730EF6FB7611F3 - FA7714EFF97A16ECF87D19E9F77F1BE6F7811EE2FBB378F1FFD7BDFFF0CEB5CA - 7D77774C70707042707070407373733C7575753972727235727272317373732E - 7070702A676767275D5D5D2D5A5A5A34575757335A5A5A345A5A5A345A5A5A34 - 5A5A5A34575757335757573353535332505050314949492F4141412E3C3C3C2D - 3838382C3838382C3838382C1B1B1B1D00000017000000170000001600000015 - 0000001400000013000000110000000F0000000D0000000C0000000900000008 - 0000000600000005000000030000000200000002000000010000000000000000 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000400000007FCA477E3 - EF925DFFBE5100FFC15200FFC35300FFC55300FFC85400FFCA5602FFD06416FF - D4681AFFD56819FFD76918FFDA6817FFDB6816FFDD6915FFE06914FFE16914FF - E36A13FFE66A12FFE86B11FFE96A10FFEC6B0FFFEE6B0EFFF06B0EFFF36C0DFF - F56C0CFFF66D0BFFF96C0AFFFB6D09FFFD6D08FFFE6E08FDFD700BFAFC730DF6 - FB7610F3FA7613EFF97A15ECF97D17E8F87E19E4F77F1BE2FBB278F1FFD6BAFF - F1CCB5C9797272446969693A686868366A6A6A326868682C6767672764646424 - 5A5A5A1F4646461A2E2E2E160E0E0E120F0F0F110F0F0F110F0F0F110F0F0F11 - 0F0F0F110F0F0F110F0F0F110F0F0F110F0F0F110F0F0F110000001000000010 - 00000010000000100000001000000010000000100000000F0000000E0000000E - 0000000D0000000C0000000B0000000900000008000000070000000600000005 - 00000003000000020000000200000001000000010000000000000000FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000300000006FBA276B2 - FDA173FDBD5101FFBE5100FFC15200FFC35300FFC55402FFCD6316FFD0671BFF - D1671AFFD46719FFD56818FFD76817FFDA6816FFDB6816FFDD6815FFE06914FF - E16913FFE36912FFE66A11FFE86A10FFE96A10FFEC6A0FFFEE6A0EFFF06B0DFF - F36B0CFFF46C0BFFF66C0AFFF96C0AFFFB6C09FFFD6D08FFFE6E08FDFD700AFA - FC720CF6FB750EF3FA7711EEF97913EBF97A15E8F87D16E4F87D17E1FBB076EF - FFD5B9FFF2CDB2C9736B6B3B5E5E5E316262622C5D5D5D275D5D5D215454541B - 474747162D2D2D110000000D0000000C0000000B0000000A0000000A0000000A - 0000000A0000000A0000000A0000000A0000000A0000000A0000000A0000000A - 0000000A0000000A0000000A0000000A0000000A000000090000000900000009 - 0000000800000007000000070000000600000005000000040000000300000002 - 000000020000000100000001000000000000000000000000FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000200000005F89F7282 - FFA476FFC65E15FFBC5000FFBE5100FFC25302FFC86317FFCB661CFFCE661BFF - CF661AFFD16719FFD46718FFD56717FFD76816FFD96716FFDB6715FFDD6814FF - E06813FFE16912FFE36911FFE66910FFE86A10FFE9690FFFEC6A0EFFEE6A0DFF - F06A0CFFF36B0BFFF46B0AFFF66C0AFFF96B09FFFB6C08FFFD6C07FFFE6E07FD - FE6F09F9FD720AF5FC730DF1FB760FEEFA7710EBF97910E6F87911E3F87B11E0 - FCAF73EFFFD4B7FFF4CBB1C670666631515151264F4F4F204D4D4D1A3E3E3E15 - 303030100000000B000000090000000800000007000000060000000600000006 - 0000000600000006000000060000000600000006000000060000000600000006 - 0000000600000006000000060000000600000006000000050000000500000005 - 0000000500000004000000040000000300000002000000020000000200000001 - 00000001000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000200000003EE996A3C - FFA375FEE98A52FFBA4F00FFBD5102FFC46118FFC8651DFFCA661CFFCB651BFF - CE661AFFCF6619FFD16618FFD36718FFD56717FFD76716FFD96715FFDB6714FF - DD6713FFDF6812FFE16812FFE36811FFE66910FFE7690FFFE9690EFFEC690DFF - EE6A0CFFF06A0BFFF36A0BFFF46B0AFFF66B09FFF96B08FFFB6B07FFFD6C06FF - FE6C05FDFE6E07F9FD6F08F5FC7209F1FB730BEEFA760CEAFA760CE6F9780CE1 - F8780DDEFCAE70EFFFD3B5FFF5CCB0C269635C263C3C3C1A343434142222220F - 0000000B00000008000000070000000500000004000000040000000300000003 - 0000000300000003000000030000000300000003000000030000000300000003 - 0000000300000003000000030000000300000003000000030000000200000002 - 0000000200000002000000020000000200000001000000010000000100000000 - 0000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000010000000200000004 - FB9E7297FFA274FFD06D2CFFC16018FFC4641EFFC5651DFFC8651CFFC9651BFF - CB651AFFCD6519FFCF6519FFD16618FFD36617FFD56616FFD76715FFD96614FF - DB6713FFDD6712FFDF6712FFE16811FFE36810FFE6680FFFE7690EFFE9680DFF - EC690CFFEE690CFFF06A0BFFF36A0AFFF46A09FFF66B08FFF96A07FFFB6B06FF - FD6B06FFFF6C05FCFE6E05F9FD6E05F5FC6F06F0FC7106ECFB7307E9FB7407E5 - FA7507E0FA7607DDFDAD6FEDFFD2B4FFF7CCAFC060574E1A0000000E0000000B - 0000000800000006000000050000000300000002000000020000000200000002 - 0000000100000001000000010000000100000001000000010000000100000001 - 0000000100000001000000010000000100000001000000010000000100000001 - 00000001000000010000000100000000000000000000000000000000FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000010000000200000003 - AC67450FFD9F71DDFBA478FDC76C2AFFC2641EFFC4641DFFC5641CFFC8651BFF - C9651AFFCB641AFFCD6519FFCF6518FFD16517FFD36616FFD56615FFD76614FF - D96614FFDB6613FFDD6612FFDF6711FFE16710FFE3680FFFE6680EFFE7680DFF - E9680DFFEC680CFFEE690BFFF0690AFFF26A09FFF46A08FFF66A07FFF96A07FF - FB6A06FFFD6B05FFFF6B04FCFE6D03F9FE6D02F4FD6E02F0FC6E01EBFC7002E8 - FB7102E3FB7302DEFB7301DAFDAA6AECFFD1B2FFFACDAEBD6D60521300000009 - 0000000700000005000000030000000200000001000000010000000100000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000100000002 - 00000003EF97693DFFA273FCFCA77CFDD98147FFC2631DFFC3631CFFC5641BFF - C7641BFFC9641AFFCB6419FFCD6418FFCF6417FFD06516FFD36515FFD56514FF - D66614FFD96513FFDB6612FFDC6611FFDF6610FFE1670FFFE3670EFFE5670EFF - E7680DFFE9670CFFEC680BFFEE680AFFF06909FFF26908FFF46A08FFF66A07FF - F96A06FFFB6A05FFFD6A04FFFF6B03FCFE6C02F9FE6D02F4FD6D01EFFD6E00EB - FD6F00E7FC7100E2FC7200DDFD821DDFFFC9A4FBFFD0B2FFF9CDAF9C00000007 - 00000005000000030000000200000001000000010000000000000000FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000100000001 - 0000000200000003EF976B34FDA070D6FFA87DFFEE9969FFD27638FFC76723FF - C5631BFFC7631AFFC96419FFCA6318FFCD6417FFCF6416FFD06416FFD36515FF - D56514FFD66513FFD96512FFDB6511FFDC6610FFDF660FFFE1660FFFE3670EFF - E5670DFFE7670CFFE9670BFFEC670AFFEE6809FFF06809FFF26908FFF46907FF - F66A06FFF96905FFFB6A04FFFD6A03FFFF6A02FCFF6C02F8FE6C01F4FE6D00EF - FE6E01EAFE7E1BEAFEA158F0FFCBA9FDFFCEADFDF8CAAC8F987A6B1100000005 - 000000040000000200000002000000010000000000000000FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000001 - 000000010000000200000002A45E460BFB9D708BFFA577FDFFA97FFFFFAD84FF - F7A478FDEC9663FFEA935EFFEB935FFFEB945EFFED945FFFED9660FFEE9660FF - EE975FFFEF9760FFF09860FFF19861FFF19861FFF29961FFF39962FFF49A62FF - F59A62FFF59C63FFF69D63FFF69C64FFF89D63FFF89D64FFF99E64FFFA9F64FF - FB9F65FFFCA065FFFDA166FFFEA266FFFEA367FFFFA467FEFFA569FCFFB27FFC - FFC4A0FCFFC9A8FFFFCAAAFFFDCAA8D0E5B79C38000000060000000500000003 - 0000000200000002000000010000000100000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000 - 0000000000000001000000020000000200000003EB90662AF79C6F67FBA07297 - FDA477C8FFA778F6FFA87BFFFFA97CFFFFAA7EFFFFAA7FFFFFAB81FFFFAC82FF - FFAD84FFFFAE85FFFFB087FFFFB188FFFFB288FFFFB38AFFFFB48BFFFFB58DFF - FFB68EFFFFB790FFFFB891FFFFB993FFFFBA94FFFFBB96FFFFBC97FFFFBD99FF - FFBE99FFFFBF9BFFFFC09CFFFFC19EFFFFC29FFFFFC3A0FFFFC5A2FFFEC5A1E7 - FCC4A3B2F8C2A181F1BF9E4D6040400800000005000000040000000300000002 - 0000000200000001000000010000000000000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - 0000000000000000000000010000000100000002000000020000000300000004 - 0000000400000005000000050000000600000006000000070000000700000007 - 0000000700000007000000070000000700000007000000070000000600000006 - 0000000600000006000000060000000600000006000000060000000600000005 - 0000000500000005000000050000000500000005000000050000000500000005 - 0000000400000004000000040000000300000003000000020000000200000001 - 0000000100000001000000000000000000000000FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00 - FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFE000000001FFFFFFFFFFFFFFFFFFFFFF80000 - 000007FFFFFFFFFFFFFFFFFFFFE00000000003FFFFFFFFFFFFFFFFFFFFC00000 - 000001FFFFFFFFFFFFFFFFFFFFE00000000000FFFFFFFFFFFFFFFFFFFFF00000 - 0000007FFFFFFFFFFFFFFFFFFFF800000000007FFFFFFFFFFFFFFFFFFFFC0000 - 0000003FFFFFFFFFFFFFFFFFFFFE00000000003FFFFFFFFFFFFFFFFFFFFF0000 - 0000003FFFFFFFFFFFFFFFFFFFFF80000000003FFFFFFFFFFFFFFFFFFFFFC000 - 0000003FFFFFFFFFFFFFFFFFFFFFE0000000003FFFFFFFFFFFFFFFFFFFFFF000 - 0000003FFFFFFFFFFFFFFFFFFFFFF8000000003FFFFFFFFFFFFFFFFFFFFFFC00 - 0000003FFFFFFFFFFFFFFFFFFFFFFC000000003FFFFFFFFFFFFFFFFFFFFFF800 - 0000003FFFFFFFFFFFFFFFFFFFFFF0000000003FFFFFFFFE0000000000000000 - 0000003FFFFFFFFC00000000000000000000003FFFFFFFF00000000000000000 - 0000003FFFFFFFE000000000000000000000003FFFFFFFE00000000000000000 - 0000003FFFFFFFE000000000000000000000003FFFFFFFE00000000000000000 - 0000003FFFFFFFE000000000000000000000003FFFFFFFE00000000000000000 - 0000003FFFFFFFE000000000000000000000003FFFFFFFE00000000000000000 - 0000003FFFFFFFE000000000000000000000003FFFFFFFE00000000000000000 - 0000003FFFFFFFE000000000000000000000003FFFFFFFE00000000000000000 - 0000003FFFFFFFE000000000000000000000003FFFFFFFE00000000000000000 - 0000003FFFFFFFE000000000000000000060003FFFFFFFE00000000000000000 - 00F0003FFFFFFFE0000000000000000001F8003FFFFFFFE00000000000000000 - 03FC003FFFFFFFE0000000000000000007FE003FFFFFFFE00000000000000000 - 0FFF003FFFFFFFE000000000000000001FFF803FFFFFFFE00000000000000000 - 1FFFC07FFFFFFFE000000000000000001FFFE07FFFFFFFE00000000000000000 - 1FFFF0FFFFFFFFE000000000000000001FFFF8FFFFFFFFE00000000000000000 - 1FFFFDFFFFFFFFE000000000000000001FFFFFFFFFFFFFE00000000000000000 - 1FFFFFFFFFFFFFE000000000000000001FFFFFFFFFFFFFE00000000000000000 - 1FFFFFFFFFFFFFE000000000000000001FFFFFFFFFFFFFE00000000000000000 - 1FFFFFFFFFFFFFE000000000000000001FFFFFFFFFFFFFE00000000000000000 - 1FFFFFFFFFFFFFE000000000000000001FFFFFFFFFFFFFE00000000000000000 - 1FFFFFFFFFFFFFE000000000000000001FFFFFFFFFFFFFE00000000000000000 - 1FFFFFFFFFFFFFE000000000000000001FFFFFFFFFFFFFE00000000000000000 - 1FFFFFFFFFFFFFE000000000000000001FFFFFFFFFFFFFE00000000000000000 - 1FFFFFFFFFFFFFE000000000000000003FFFFFFFFFFFFFE00000000000000000 - 7FFFFFFFFFFFFFE000000000000000007FFFFFFFFFFFFFE00000000000000000 - 7FFFFFFFFFFFFFF00000000000000000FFFFFFFFFFFFFFF80000000000000001 - FFFFFFFFFFFFFFFF80007FFFFFE0000FFFFFFFFFFFFFFFFF20007FFFFFE0007F - FFFFFFFFFBFFFFFEE0007FFFFFE000FFFFFFFFFFF1FFFFFDE0007FFFFFE000FF - FFFFFFFFF0FFFFF9E0007FFFFFE000FFFFFFFFFFE07FFFF3E0007FFFFFE000FF - FFFFFFFFE03FFFE7E0007FFFFFE000FFFFFFFFFFC01FFF83E0007FFFFFE000FF - FFFFFFFFC00FFF01E0007FFFFFE000FFFFFFFFFFC007FE0000007FFFFFE000FF - FFFFFFFFC003FC0000007FFFFFE000FFFFFFFFFFC001F80000007FFFFFE000FF - FFFFFFFFC000F00000007FFFFFE000FFFFFFFFFFC000600000007FFFFFE000FF - FFFFFFFFC000000000007FFFFFE000FFFFFFFFFFC000000000007FFFFFE000FF - FFFFFFFFC000000000007FFFFFE000FFFFFFFFFFC000000000007FFFFFE000FF - FFFFFFFFC000000000004FFFFFE000FFFFFFFFFFC000000000001FFFFFE000FF - FFFFFFFFC000000000003FFFFFE000FFFFFFFFFFC000000000003FFFFFE000FF - FFFFFFFFC000000000007FFFFFE000FFFFFFFFFFC000000000007FFFFFC000FF - FFFFFFFFC000000000003FFFFFC000FFFFFFFFFFC000000000000FFFFF0000FF - FFFFFFFFC000000000000000000000FFFFFFFFFFC000000000000000000001FF - FFFFFFFFC000000000000000000001FFFFFFFFFFC000000000000000000003FF - FFFFFFFFC000000000000000000003FFFFFFFFFFC000000000000000000007FF - FFFFFFFFC00000000000000000000FFFFFFFFFFFC00000000300000000001FFF - FFFFFFFFC00000000380000000003FFFFFFFFFFFC000000001C0000000007FFF - FFFFFFFFC000000000F000000000FFFFFFFFFFFFC0000000007C00000003FFFF - FFFFFFFFC0000000003F0000001FFFFFFFFFFFFFC0000000001FFFFFFFFFFFFF - FFFFFFFFC0000000000FFFFFFFFFFFFFFFFFFFFFC00000000007FFFFFFFFFFFF - FFFFFFFFC00000000003FFFFFFFFFFFFFFFFFFFFE00000000001FFFFFFFFFFFF - FFFFFFFFE00000000000FFFFFFFFFFFFFFFFFFFFF000000000007FFFFFFFFFFF - FFFFFFFFF800000000003FFFFFFFFFFFFFFFFFFFFC00000000007FFFFFFFFFFF - FFFFFFFFFE0000000001FFFFFFFFFFFFFFFFFFFFFFC000000007FFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} - Transparent = True - end object Label3: TLabel - Left = 72 - Top = 303 + Left = 46 + Top = 259 Width = 91 Height = 13 Anchors = [akLeft, akBottom] Caption = 'Portions copyright:' end object RegistrationLabel: TLabel - Left = 72 - Top = 188 + Left = 46 + Top = 144 Width = 127 Height = 13 Anchors = [akLeft, akBottom] Caption = 'This product is licensed to:' end + object IconPaintBox: TPaintBox + Left = 8 + Top = 11 + Width = 32 + Height = 32 + OnPaint = IconPaintBoxPaint + end object HomepageLabel: TStaticText - Left = 72 + Left = 46 Top = 72 Width = 128 Height = 17 @@ -3512,7 +78,7 @@ object AboutDialog: TAboutDialog TabStop = True end object ForumUrlLabel: TStaticText - Left = 72 + Left = 46 Top = 116 Width = 148 Height = 17 @@ -3520,28 +86,19 @@ object AboutDialog: TAboutDialog TabOrder = 3 TabStop = True end - object TranslatorUrlLabel: TStaticText - Left = 72 - Top = 160 - Width = 148 - Height = 17 - Caption = 'http://XXXXwinscp.net/forum/' - TabOrder = 4 - TabStop = True - end object ThirdPartyPanel: TPanel - Left = 72 - Top = 321 - Width = 312 + Left = 46 + Top = 277 + Width = 338 Height = 168 Anchors = [akLeft, akRight, akBottom] BevelKind = bkTile BevelOuter = bvNone - TabOrder = 7 + TabOrder = 6 end object OKButton: TButton Left = 227 - Top = 498 + Top = 454 Width = 75 Height = 25 Anchors = [akRight, akBottom] @@ -3553,18 +110,18 @@ object AboutDialog: TAboutDialog OnMouseDown = OKButtonMouseDown end object LicenseButton: TButton - Left = 72 - Top = 498 + Left = 46 + Top = 454 Width = 75 Height = 25 Anchors = [akLeft, akBottom] Caption = '&License...' - TabOrder = 6 + TabOrder = 5 OnClick = LicenseButtonClick end object HelpButton: TButton Left = 309 - Top = 498 + Top = 454 Width = 75 Height = 25 Anchors = [akRight, akBottom] @@ -3573,21 +130,21 @@ object AboutDialog: TAboutDialog OnClick = HelpButtonClick end object RegistrationBox: TPanel - Left = 72 - Top = 206 - Width = 312 + Left = 46 + Top = 162 + Width = 338 Height = 89 Anchors = [akLeft, akTop, akRight] BevelKind = bkTile BevelOuter = bvNone - TabOrder = 5 + TabOrder = 4 DesignSize = ( - 308 + 334 85) object RegistrationSubjectLabel: TLabel Left = 8 Top = 8 - Width = 239 + Width = 249 Height = 65 Anchors = [akLeft, akTop, akRight] AutoSize = False diff --git a/source/forms/About.h b/source/forms/About.h index 51504bbe..09678b42 100644 --- a/source/forms/About.h +++ b/source/forms/About.h @@ -23,10 +23,7 @@ class TAboutDialog : public TForm TStaticText *ForumUrlLabel; TButton *OKButton; TButton *LicenseButton; - TLabel *TranslatorLabel; TButton *HelpButton; - TImage *Image; - TStaticText *TranslatorUrlLabel; TLabel *Label3; TLabel *RegistrationLabel; TPanel *RegistrationBox; @@ -34,25 +31,31 @@ class TAboutDialog : public TForm TStaticText *RegistrationProductIdLabel; TLabel *RegistrationSubjectLabel; TPanel *ThirdPartyPanel; + TPaintBox *IconPaintBox; void __fastcall LicenseButtonClick(TObject *Sender); void __fastcall HelpButtonClick(TObject *Sender); void __fastcall RegistrationProductIdLabelClick(TObject *Sender); void __fastcall OKButtonMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); + void __fastcall IconPaintBoxPaint(TObject *Sender); private: TConfiguration * FConfiguration; TNotifyEvent FOnRegistrationLink; + HICON FIconHandle; void __fastcall LoadData(); void __fastcall LoadThirdParty(); void __fastcall AddPara(UnicodeString & Text, const UnicodeString & S); UnicodeString __fastcall CreateLink(const UnicodeString & URL, const UnicodeString & Title = L""); void __fastcall ExpatLicenceHandler(TObject * Sender); + void __fastcall AccessViolationTest(); + void __fastcall LookupAddress(); public: virtual __fastcall TAboutDialog(TComponent * AOwner, TConfiguration * Configuration, bool AllowLicense, TRegistration * Registration, bool ALoadThirdParty); + __fastcall ~TAboutDialog(); }; //---------------------------------------------------------------------------- #endif diff --git a/source/forms/Animations.cpp b/source/forms/Animations.cpp new file mode 100644 index 00000000..819da845 --- /dev/null +++ b/source/forms/Animations.cpp @@ -0,0 +1,66 @@ +//--------------------------------------------------------------------------- +#include +#pragma hdrstop + +#include "Global.h" +#include "Animations.h" +#include "Animations96.h" +#include "Animations120.h" +#include "Animations144.h" +#include "Animations192.h" +#include "GUITools.h" +#include "GUIConfiguration.h" +//--------------------------------------------------------------------------- +#pragma package(smart_init) +#pragma link "PngImageList" +#ifndef NO_RESOURCES +#pragma resource "*.dfm" +#endif +//--------------------------------------------------------------------------- +static TAnimationsModule * AnimationsModule = NULL; +//--------------------------------------------------------------------------- +TAnimationsModule * __fastcall GetAnimationsModule() +{ + if (AnimationsModule == NULL) + { + HANDLE ResourceModule = GUIConfiguration->ChangeToDefaultResourceModule(); + try + { + AnimationsModule = new TAnimationsModule(Application); + } + __finally + { + GUIConfiguration->ChangeResourceModule(ResourceModule); + } + } + return AnimationsModule; +} +//--------------------------------------------------------------------------- +__fastcall TAnimationsModule::TAnimationsModule(TComponent * Owner) + : TDataModule(Owner) +{ + int PixelsPerInch = Screen->PixelsPerInch; + TDataModule * ScaledModule; + if (PixelsPerInch >= 192) + { + ScaledModule = new TAnimations192Module(Application); + } + else if (PixelsPerInch >= 144) + { + ScaledModule = new TAnimations144Module(Application); + } + else if (PixelsPerInch >= 120) + { + ScaledModule = new TAnimations120Module(Application); + } + else + { + ScaledModule = new TAnimations96Module(Application); + } + + // Not really necessary as we never acccess AnimationImages by name + CopyDataModule(this, ScaledModule); + + AnimationImages = DebugNotNull(dynamic_cast(FindComponent(AnimationImages->Name))); +} +//--------------------------------------------------------------------------- diff --git a/source/forms/Animations.dfm b/source/forms/Animations.dfm new file mode 100644 index 00000000..2f440ae2 --- /dev/null +++ b/source/forms/Animations.dfm @@ -0,0 +1,12 @@ +object AnimationsModule: TAnimationsModule + OldCreateOrder = False + Height = 150 + Width = 215 + object AnimationImages: TPngImageList + Height = 32 + Width = 32 + PngImages = <> + Left = 40 + Top = 16 + end +end diff --git a/source/forms/Animations.h b/source/forms/Animations.h new file mode 100644 index 00000000..4332e452 --- /dev/null +++ b/source/forms/Animations.h @@ -0,0 +1,19 @@ +//--------------------------------------------------------------------------- +#ifndef AnimationsH +#define AnimationsH +//--------------------------------------------------------------------------- +#include +#include "PngImageList.hpp" +#include +#include +//--------------------------------------------------------------------------- +class TAnimationsModule : public TDataModule +{ +__published: + TPngImageList *AnimationImages; + +public: + __fastcall TAnimationsModule(TComponent * Owner); +}; +//--------------------------------------------------------------------------- +#endif diff --git a/source/forms/Animations120.cpp b/source/forms/Animations120.cpp new file mode 100644 index 00000000..1efe4e16 --- /dev/null +++ b/source/forms/Animations120.cpp @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- +#pragma hdrstop + +#include "Global.h" +#include "Animations120.h" +//--------------------------------------------------------------------------- +#pragma package(smart_init) +#pragma link "PngImageList" +#ifndef NO_RESOURCES +#pragma resource "*.dfm" +#endif +//--------------------------------------------------------------------------- +__fastcall TAnimations120Module::TAnimations120Module(TComponent * Owner) + : TDataModule(Owner) +{ +} +//--------------------------------------------------------------------------- diff --git a/source/forms/Animations120.dfm b/source/forms/Animations120.dfm new file mode 100644 index 00000000..5dbd8a01 --- /dev/null +++ b/source/forms/Animations120.dfm @@ -0,0 +1,31475 @@ +object Animations120Module: TAnimations120Module + OldCreateOrder = False + Height = 150 + Width = 215 + object AnimationImages: TPngImageList + Height = 40 + Width = 40 + PngImages = < + item + Background = clWindow + Name = 'ConnectingSecure_01_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006264944415478DA + CDD77B4C13771C00F0EF5DAFB4E5DA0AA5223E009197468C243A9D38133627AF + F9C269668264668999339BFFE8743AB291C5495C96258B3133D39919C87C206F + F1813AB7E183292AB44071C8561E3A474B29B4D8DAF6EEF6BBBBD21568992D69 + E32FB9FE7EF7BD5EEF93EFFD7EDFEB61F092372CD01788CE3FB7186704D7310C + A43E9DC8600DDA92F5CB020E9C9D57F62A1122BEB5F895A5984C26031CC70061 + 01C7D81E433D38639833C69F57565109DAE25C2CE040B6C5E457E4871021277D + 410615E80FB2BC32C8405F91955555C107C66E294DC370E1D585A98B244AE554 + 0EE60D59555D1D5C2087C342EA5216A6924A65A46BAE7943D69CAF991CB0BC30 + 3A4540C0D7E80756A06A15EAF95BCC3306A0BE46975372D5907374DE02848B50 + 0286F3F36C22646DED2480358533E6E2625163F2F22C322A2E1904021C289B05 + 68BB95DF6C56A0EC16B00D0F81EEC963E8EC7C02A582E3802B17B932F47FC80B + 17CEFB0FAC3E10533D3F7DED1A654C3CB4D7D7C2B341033034CD660C1806E58C + A1B92D44248659B133C1A8D7C1EDBF93E0B7B023A36EE30872C0A007895802EE + 0BE7D2C5DAC900A34D2BB77D2A55D59582AEEB8F838C833933F63BE78DD90B25 + 18F5C3DB0977853131D3A149A58553CA7BFC2270430E0CE8A145F5C042088462 + F7D57DF9D2A480314CF6CE03505FF22D18FBFA166C28EC69713F1E9D5F9E2200 + 41C3A24492DC2EDD01C973E3A0E9BE068A235A9C59E3910303FDA051370D338C + 2D83C18878F71274A5EEC2E480591F7E01377E3AEC11387B4BC57AA15852B124 + 590E5BF1AD08180B4D0F1EC249859ACF1E120EA2CC3D6C5571B8AE924DB7D8F3 + DCEB64C3EDFA4902777C0E374E1F4140DD382087CCAF38142B33EE29883F0849 + 49D1D0DCFC087E0C5773F36BC868800ECD68DC481B41DAEDB6E1AE925C99DFC0 + CCED0570F3CC5130EA3C03D996B9BDE887DD8927DE4B4C98012AF55F70224C05 + 26B4A03ADBD51E712E645ED9721A671CBDC51B7FF71B98F1FE3EB875F67B04D4 + 7B05B2B5522613A913E64481BAB51BBEA1AF83B6A36542DCD8E63770D5B6BD70 + BBF4382A211303A552913A312E12D49A5ED8F9F0B04F38BF80EA63F1EFD00C9C + 66CB045BF26886E17A7E0C5C1DA49DFBEEC72914D498E3F77EF0D9B5AF7CB99E + CFC096E309FDDD3A8742461210211782424E002E14701B112A03A13C0A300247 + 0FB95E2E269CB684AD2960797A07EE5DEB34A4EFEA8A0828507D2C81E97CEA80 + 88291E8012291072F42F053DFA18EB533E36351530B48F3D6B835F2B34F0C66E + AD4FD7F419A842C03FBD01C5A140C82278A04DCFC722E6F3406B07FC82802B03 + 098C3DA048AB8A0CBFA9FD87F20814A0E7A9900CE36E31D88D3C5091C4039F6B + E1E7720DACFA384040160704D4558687935D7D5E802211370F71428056859907 + 86C5F140FB63B856D606197BBA7C07CE3A285F8A8380E8DE3F7073225C549282 + FCAE8F816E9D176048089A87A1288302C0182B1F93CF42600474F4C1D5736D90 + B9D70F606C91C2440805A4DD667FB77BBFB1782C0E1342DDCCE4485212268243 + 1A33F4E8BD010994453197410C73F031E9341E480FC095D236C8FAC40FE0EC22 + 0593BA6C01A81BDB1877248FC3EA62E64D27C93009AA69347CD96A84DE7E2F40 + 0E29E4C6189A865C8C54F040C60C7567DB207B9F9FC015ABD2C06C3681CA89C4 + 68BC93C5CD991F4D4AC34984A33860A15A0F4FFA698F401622708D9D68898C07 + 62CFE13202E6F80B4CCF5C01344D21A4199A1B5B198AA2AD89297112B942E6C2 + B1FDAE963E301B2898227D412097511C86876D507FB1C3B07A7F8FEF859A05AE + CC4A77214C0869B158610A87A3DD8034CC350C4346CF2088ECB4D747DCC8FE7F + 63605F01FA1D347CB4B6A0E7945FC08CEC952E04E596B191D8C8983D66EC1F02 + 6D5BEF30636732BA0A0C2FFCE0F7A7B980D96F658E838CC5B153C0A037C2A356 + 6D5070A380AB57E78C018ECF60BFDE00EDAA4741C38D02AE5BBB6614861A19A3 + ACA14FD0F7A1B7AFE6760BC2BD192CDC28E08675B9A33236761E9A4C26B87FB7 + 89B13D1F5FCC8302DC94BB71FC2DA6C723EFDD7D1054A40BB879C3E60933E82A + 4108D978E77ED0902E60DEC63C1E43D3DC9CA3680FABD8D90F39910E8B354D5B + 30D41070606C51783D7A9D7ECD971351ED35D314F57A4FC16063C0812F73FB17 + 7792FA56B567E55B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingSecure_02_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000060B4944415478DA + CDD77B6C13751C00F0EFB5D7755DD76EEDD856C61E8C3D7190108D8228C974EC + 0563C88408E10F13CDD410C51890C7183A7582446234C668D888263E18202018 + 62184234033450F6EA1EC8D6AD8F31465F745B479F77E7EFEEDAD275EDB45D5A + FD26D7FBDDEF1EBF4FBEF7BBEFF530F89F0716E9017636CBD7E6A7259CC1B91C + 5E28E78D4F39D46FD52C5E1871E0AEE68EE71667269C91C9E6038F1703181A11 + C3D8DCD02B769B65603E9A41E510BC549E83451C48C7BE6F3ADFC94D13BF170A + 32AAC070905107868A540EFD07C03D47DB9FCF4913B5C8526578AC40C0B08221 + A30E6471E2632929293C81200EDCA6A0C8A1E1E1B9014F37642CE1E270185D60 + 15BA645CE0A3A80714409B3261DB0551EEA643C9C9344EC00830805991C3AA39 + 007F6E482BE4C4F2E5054F550865D905C0E5728070588174DAD8C56103C26905 + C7D404E847EF80563D06C48A13C09FF7883743FF8454CD0578AE31F35C5171F5 + BA79993970ABED3C3C183701459274C680A250CE28925962F8B1909EB500CC06 + 3D8CD80B015F7EE421CC0769B75901C7F1690F8E4AA59A0B3063B2A4765F7C77 + EB49D0AB6F1FA05CD471FF638624DB56CB84131FA7D9CF733233E783A2470578 + 558F3B630F913684D3E9EEB9702E17F77DBAD5EA390133A9CAED8DD0F6DD6760 + D6E996D634687B7CF7EF6CEA282E4817B54A63C679E2AE2D5050980D9DEDFDC0 + AD1E6433E446D299D3EB754EE5E8C416344D8A7C4B9046334760C5EBEFC3951F + 3E0F08ACFBBAE3CDFC0CC9A712DE38C4C9372160167476FC059CEA01EF5CB3DB + 6C6030B0B88F5E7EF4147D9E6F9DBC7B77748EC06DEFC295962F10503F0348C7 + 07DF2B4E658B8D35A9B76B213F3F03BABA0681B36E80499FC36E07A31FCE131E + A4D345385F5993171336B0FCB57AB87AFC2B30EB0303E9F8E468CBC5A5E6FDAB + F372D3A05B310C18023AEC363019F501719ED8D5D4BE914475E070EDE367C306 + 96BDBA17AE9D38828086A040BA568A447C45EE2219287A35E02855C07DD3EC38 + FF081B585ABB1BFE38D98C4AC8ECC0F878BE222F3B0514FD2370EFB1CB21E1C2 + 022A9A725E202968A1DF9774C923298A59B36D60EA20E9DEF6DD4FA0CEBBF88A + C62DDB5BF687325EC8C09EE65CA346EF928A84382489792015E3C0E17199058F + 13014F2C030CE7A097DC08D3C74B7D0280838175EC3ADCBCA43415EF50274514 + A868CAA594632E484A080014C4032E4E060E7AF551B631B62F791960681B7BD0 + 07BF9FE9876777AA421A33646037020E0503C6C6012E4A62810E03DB9754C402 + 6D03F01B0296441298D5285D7936457255758F0808E4C60A80274C646E3138CD + 2C509ACF02ED2AB87CBA1F4ADF8E1090C6010EAD3F492442B52E0890CF67E621 + 07E7A2A7C2C20213B359A0F30E5C3AD50765BBD4A103D30F889773808B6BEAEE + 5F9D0D27CB970ABFD451A0D10701C6C4A07988FE8C222046D9D83E713A0223A0 + 4B07BFFED807E5BBC300661D944EE23CAED0E970BEA8A9337FEB8FC378D0BAA0 + 20452848E4C3A17E0B680DC18038CA622C93410C73B17DF1A92C90BC0F174FF6 + 41C59E30800B0F4AA9654F2E0585BC8FF245B238AC3573F17CA13051806A1A09 + 1FF69A61C41804C820794C1B43D390E9134A59206581D6137D50B9374CE0AAD2 + 9560B14C42B71B89911C258D5B5494218C9708118E60800D0A038C1AC980401A + C2F5B6DD688188056276B880806BC2051697AF02922410D2025DF25E8A20485B + DE926C81582AF2E2E8F58E1E1D584C0424C4FF4B2093510E4C4D39A0ED970153 + 559D36F4424D034B2A8ABD884984B45A6D90C0E0481F200985A62928D38E03DF + 49067DC579B61FB681FE0430BA4878A3BA5E7B2C2C605965891741F864CCD3E7 + 69D3FBCCC60950F58D4C514EAA4C5D6FBA16CA80A1861758B9B67C06C41F474F + 0193C10C83BDAAA8E0A601ABAAD6F8016766D06830C1ADEEC1A8E1A601D757AF + 9B86213C6D9435F40B069D017ABA6E59116E75B470D38035EB374CCB98FF3C9C + 9C9C84F61B9D94C33EB3984705B869C3C699B7989C89BC79A323AA482F7073CD + E65933E82D410829BFDE1E35A417B875E356164392CC9C23C8004FB17B3DE146 + BAACB695AAFA893F230ECC3A2869439FD34F877222AABD1692209ED1D68FCB23 + 0EFC3FC7DFC73DF456C4FAC1460000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingSecure_03_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006264944415478DA + CDD77B4C13771C00F0EF5DAFB4E5DA0AA5223E009197468C243A9D38133627AF + F9C269668264668999339BFFE8743AB291C5495C96258B3133D39919C87C206F + F1813AB7E183292AB44071C8561E3A474B29B4D8DAF6EEF6BBBBD21568992D69 + E32FB9FE7EF7BD5EEF93EFFD7EDFEB61F092372CD01788CE3FB7186704D7310C + A43E9DC8600DDA92F5CB020E9C9D57F62A1122BEB5F895A5984C26031CC70061 + 01C7D81E433D38639833C69F57565109DAE25C2CE040B6C5E457E4871021277D + 410615E80FB2BC32C8405F91955555C107C66E294DC370E1D585A98B244AE554 + 0EE60D59555D1D5C2087C342EA5216A6924A65A46BAE7943D69CAF991CB0BC30 + 3A4540C0D7E80756A06A15EAF95BCC3306A0BE46975372D5907374DE02848B50 + 0286F3F36C22646DED2480358533E6E2625163F2F22C322A2E1904021C289B05 + 68BB95DF6C56A0EC16B00D0F81EEC963E8EC7C02A582E3802B17B932F47FC80B + 17CEFB0FAC3E10533D3F7DED1A654C3CB4D7D7C2B341033034CD660C1806E58C + A1B92D44248659B133C1A8D7C1EDBF93E0B7B023A36EE30872C0A007895802EE + 0BE7D2C5DAC900A34D2BB77D2A55D59582AEEB8F838C833933F63BE78DD90B25 + 18F5C3DB0977853131D3A149A58553CA7BFC2270430E0CE8A145F5C042088462 + F7D57DF9D2A480314CF6CE03505FF22D18FBFA166C28EC69713F1E9D5F9E2200 + 41C3A24492DC2EDD01C973E3A0E9BE068A235A9C59E3910303FDA051370D338C + 2D83C18878F71274A5EEC2E480591F7E01377E3AEC11387B4BC57AA15852B124 + 590E5BF1AD08180B4D0F1EC249859ACF1E120EA2CC3D6C5571B8AE924DB7D8F3 + DCEB64C3EDFA4902777C0E374E1F4140DD382087CCAF38142B33EE29883F0849 + 49D1D0DCFC087E0C5773F36BC868800ECD68DC481B41DAEDB6E1AE925C99DFC0 + CCED0570F3CC5130EA3C03D996B9BDE887DD8927DE4B4C98012AF55F70224C05 + 26B4A03ADBD51E712E645ED9721A671CBDC51B7FF71B98F1FE3EB875F67B04D4 + 7B05B2B5522613A913E64481BAB51BBEA1AF83B6A36542DCD8E63770D5B6BD70 + BBF4382A211303A552913A312E12D49A5ED8F9F0B04F38BF80EA63F1EFD00C9C + 66CB045BF26886E17A7E0C5C1DA49DFBEEC72914D498E3F77EF0D9B5AF7CB99E + CFC096E309FDDD3A8742461210211782424E002E14701B112A03A13C0A300247 + 0FB95E2E269CB684AD2960797A07EE5DEB34A4EFEA8A0828507D2C81E97CEA80 + 88291E8012291072F42F053DFA18EB533E36351530B48F3D6B835F2B34F0C66E + AD4FD7F419A842C03FBD01C5A140C82278A04DCFC722E6F3406B07FC82802B03 + 098C3DA048AB8A0CBFA9FD87F20814A0E7A9900CE36E31D88D3C5091C4039F6B + E1E7720DACFA384040160704D4558687935D7D5E802211370F71428056859907 + 86C5F140FB63B856D606197BBA7C07CE3A285F8A8380E8DE3F7073225C549282 + FCAE8F816E9D176048089A87A1288302C0182B1F93CF42600474F4C1D5736D90 + B9D70F606C91C2440805A4DD667FB77BBFB1782C0E1342DDCCE4485212268243 + 1A33F4E8BD010994453197410C73F031E9341E480FC095D236C8FAC40FE0EC22 + 0593BA6C01A81BDB1877248FC3EA62E64D27C93009AA69347CD96A84DE7E2F40 + 0E29E4C6189A865C8C54F040C60C7567DB207B9F9FC015ABD2C06C3681CA89C4 + 68BC93C5CD991F4D4AC34984A33860A15A0F4FFA698F401622708D9D68898C07 + 62CFE13202E6F80B4CCF5C01344D21A4199A1B5B198AA2AD89297112B942E6C2 + B1FDAE963E301B2898227D412097511C86876D507FB1C3B07A7F8FEF859A05AE + CC4A77214C0869B158610A87A3DD8034CC350C4346CF2088ECB4D747DCC8FE7F + 63605F01FA1D347CB4B6A0E7945FC08CEC952E04E596B191D8C8983D66EC1F02 + 6D5BEF30636732BA0A0C2FFCE0F7A7B980D96F658E838CC5B153C0A037C2A356 + 6D5070A380AB57E78C018ECF60BFDE00EDAA4741C38D02AE5BBB6614861A19A3 + ACA14FD0F7A1B7AFE6760BC2BD192CDC28E08675B9A33236761E9A4C26B87FB7 + 89B13D1F5FCC8302DC94BB71FC2DA6C723EFDD7D1054A40BB879C3E60933E82A + 4108D978E77ED0902E60DEC63C1E43D3DC9CA3680FABD8D90F39910E8B354D5B + 30D41070606C51783D7A9D7ECD971351ED35D314F57A4FC16063C0812F73FB17 + 7792FA56B567E55B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingSecure_04_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006294944415478DA + CDD77B4C13771C00F0EFBDDA026DC1B6F82E504A81458D263EF6304BCC8C8ACC + 39995BE6A224668999739BFB63CED79C1AE774336EC6A089F19519C950793FEA + 03716EC3F9987320452A62371074D02BB43EA0A58FBBFDEEAED48294AD256DFC + 3597BBFB5DAFF7C9F7F7FD7DEF570C9EF38685FB01EAEC8269384B5CC4309006 + 75238B5D6DCE5DF472D881494B0B5F224592CBD3A6BF88C96432C0710C101670 + 8CDB63680FDE3ECCDB27DC57585C02CDC7B3B0B003B996905D9C2D2245C78241 + 4614180AB2A824C2C0609125A5A59107262ECB7F05C3A9AAC953A646A954F13C + 2C10B2B4AC2CB2401E87892A274E9E12A3528DF4E55A20647945F9F080455BD5 + 13091276A31F781555ABE8C1BFC5F6B000D5E574666E5557E6811726219C5205 + 182EE4D95048BD7E18C0F2AD63D37189F88FB4991931A33569401038789C7660 + 5C0E61733AC0E3B283B3FB11D00FEE83C9F400F289C380ABA6FA22F45FC8D3A7 + 2B4207966D4F289B306BE11BAA042DDCAED643CFC32E6019868B18B02C8A19CB + F09B482C81F189E3C066A1E1CA3FA9F06BDCFE7EC3D887B47659204A1205FE13 + E7EC19FD7080EAC7B3577C21ADABCC07BAE5CE0ED6CD9E1CF89D0ADBFCC95198 + E7C8E294EB5442C218A8AD6B863CD50D6112F821AD560BD4D7D5D8498292F8CF + EE736787054C60E7AFDE0ED5B97BC166364F7A6B6B6BBDFF757576D1440288AB + 537531312BA5AB202D5D03B57F1AE1B8B2DE1B350169B57682D150DBCDB2CEB9 + 2C466AFD4BD0F9CAD3C303667CBC0D2EFD983328306959F1224A12553C234D0E + CBF1E5089808B5358D704C6110A287840F51E41A6FD5F1B896DC772E73F7F9D7 + C9AB57AA87095CB5052E9DD88F80F433401E995DFC6DA2CCB676937607A4A6AA + E1E6CDBBF0C308039F5F8F6C5DD064EC8FEB6B7D4897CBD9DD929B250B19386F + E526F8EDE401B0D18303B9366FE5CE236B7447DFD7A58C853AC3DF7034AE0E1E + A30965BA6D1814E7432E2D9CC9E0ACBBEDF8DBD74206CEFD60035C3E7510012D + 01815CAD94C9C48694E4D160B8750FBE672E427353FD90B8812D64E09C15EBE0 + 4AFE61544286064AA562834E33120CC63658DD9813142E24A0E190F65D868513 + 5C99E04A1EC3B2FC5E3806BE0E32DE73FFEB1ED4697CA25DF7E1E60BBB82795E + D0C0FAC3299DF768B742164382524E81424E024E11FC4646CB80928F068CC4D1 + 4BAE8DEFA346CDE06A0AD8DB7F871B174C5DB33E6B518615683894C29ADADDA0 + 8C1D04182505528E5629E8D5C73ADA85BEF82980A173ACA7017E2936C26B6B9A + 837A66D0C03A04FC2B1050120DA44C29009D16A14F3941003A9AE067049C1D4E + E07AFDA78B97DCAF2868EEF00C0A24D0FB948A89E387185C3601A8481580BDCD + F0539111E67C1E2620874B8ED7E54DAFD943B5980300C5623E0F719240B3E289 + 008CD30840D77DB850D80073D7B6040F5CA3FFE84D1C2D757765E6140C85932B + A4546AD557708F0E001489501E46A3081280B10EA14F3E1E8111D06D86AA8206 + 98B72E04E0C16BFB9C244152264BD396AF33BEDB3610A745B858A421C5042496 + 6F86564B202089A228E12388616EA14F3A4A003256389FDF0019EB43001EBD7E + 808D1FA302BADD02FE4801979A17A792539498E46B9CBAEC4B68EB0C00E49114 + 7F8CA134E4FB621402907D0295A71A60FE861081E3D09ACDE972F9901E8FFB16 + 8753C4C7211CC52D4579E0D8D28DF0A0931914C84108DFB1171D251380582F9C + 43C0CC5081DCCA9745AB6017429A11D2C378DCCA780529920838EE75C07D46EA + B78185EE8658E9FF04F211C5A1BBDB09D5679ABA166C6C0DBE50734075D27861 + B98E104EA713DC6E0F8825226FE41810AEB0206EAD05694D29B0BDDD015F717D + E74F8FB99B994E37039F2CDCD49A1712303149ED1BC621F7E8D36B7782D56273 + 99E83BEF7DF3FADEC2601E186CF301933489FD100361FC10A3483A1CBDD0495B + 2382EB07D46892FAE51AD3F70FCD0FE9B03B803677460CD70FA84D4E0E30B442 + FED97BEC6036D36E845B12295C3F608A563B64DEB9D0C4E96837C35DFAD9621E + 11A04EAB83BEC1E542C678A3C78FBA708666B70B213B228AF401D35252879C24 + 7D7B2E92ED1144FA80E9BA7421DF58F045524081370F9F4E202E921CD2D861C8 + DA95B9AF24ECC03DD53B4DB19211C9C1DCE866DCAE3B7463D6EE0539FAB0039F + E7F62F2383C356BFC6A94A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_01_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006274944415478DA + CDD67B4C53571800F0EFF645E1B6A5B4E56D0BCEE04684C0320C934126713EA7 + 538C6C289245A32EC6CDFDA11919F3CF4D3324BEFF589638634087F8A8E263CA + 962CD3A838990F4079435F3C843E282DCFD27B77EE69690A14B4256D3CC9E59C + 7BDAC3FDF5BBDFF9EE25E02D6F84BF2F202FB894C6A2D97F130408BC5A4813D5 + AAB20D4BFC0E8CCFBFFC2187C77F90B6389D100A85C0621180B0C022989E403D + 38E708E79C63DD65E5555095E6107E07324D51A02CE0717867BD410614E80BF2 + CAD50003BD455EBD762DF0C0B8AD17330816F7AF94D40F8265B2700C9B0979AD + B232B0408C2378554929A9A44C16E1CAB59990D76F5C9F1B70FFFEFD496C36BB + 040DB3D01132C3D786D071EFF9C0BCB246ABE297C4648493CA806039F26C36E4 + CD9B7300EEDBB7EFBDA0A0A09ACCCC4C323E7E3EFE87A3A3A33032320A63638E + 9E391F1C1C8457AF7A40DBD503CDA25C104424B822F43AE4AD5B377C07161616 + 56666767AF93CB1570F7EE3F60369B81A669A0280AF78E310D3C1E0FC2C323C0 + 64328166480C7DD19F4FBA8D134893510FC1FC6070DF38B7FFB83927A065D7AE + AF0477EEDC06B55A7DD06EB75F98FA9D9756790A974D9C4E8B3273A5D2705069 + 74A09A5FE8D8046E4893490FF5B54F87396C2EDF7D77DFB93D3720BD77EFB750 + 56560A7D7D7DC9252525F5EE9FCB0BAE24B1815D9DB820965C4C554254542CFA + 21EDD01EFF83336A0EA4C9648086BA6783343DB68226380BDC4BD09F55B7E606 + DCB3E76B387FFE1CE8F5FA69C0F8ADCA0D5C7EB03229410149D672888C8C02AD + 560DAD71458EE821A11945AEE9452DC6A9CB721F30EBDCEB64F5C37B7303EEDE + BD1BCACBCB3D0231B240F9733809DFAD0A7F024C59E9EAD2418BA208E7D740BF + 115A1A26E326DA04D2661B1B5497E5087D06A21C848A8A0A30183C039996BEF3 + CCE9E591EDDBA5A8B4F4F4744193FC7BB0988DD0D658E711E742E65FFE8862D1 + E3BAD24D8F7C06EED8B1132E5DBA88808619814CADE4F3F97562B114E56A0F3C + 227781AAA57E56DCD4E63370DBB6EDA0545E792D3028885F271289C168EC830B + 5D195EE17C02E6E6E67EC1E572CBF16267B9C02583C59A75CCF4FAF1B0C28A5F + 7F2AF6E67A5E03F3F2F20CBDBDBD12E682E869820FA62033BD4C268379A878A3 + 1F005D9D3A3CBFECE328408F4478F878003A3A3A8CA74E9D92FA15B879F366BA + B3B3D38572074A2452888989010E02F6F5BEC2F35919911858DF30064D4D4D70 + F2E449AFAEE93570CB962DB44EA7F3081487854164442470D1B9C968C0F3E969 + E1C0E6B0A1B9751C9A9B9BE1C48913FE03C6FD28C9C86C587D5FABD57A048686 + 8602F39EC7002D03663CFF7E8A14381C0E74A8EDD0D2D202C78F1FF70F90C101 + 07AAB2EAD7901A8DC62350281441188A22733E3C3C84FB45896108C885CE6E0A + 5A5B5BE1D8B163DE03E71D14A5B3D08DD01499EECF868B5A2821172A97302F08 + 1E81A4400022910882D0B9CD66C3F3090BC468D370A0570FD0D6D606478F1EF5 + 1E18774862E170D9A46DCCF6A5A6A8BF742A8EE04255ECBB1164B0380862CFA4 + 32BBD12330242404485280C63CFCCAC5CCC72B4478D3F49B09686F6F8723478E + 780F8C3F24A1539724435DCD4BDA1DE9C011558AC468921407034553107D2619 + 5FC813103D35F0C18C99BC63E663A205B8EC0C0EB141A552012AEABE01B39667 + 80D56A815A2792A0586D0CEE9D4572521046229C1D03237F5B846F9527A0A7B1 + 4C4A62A06D9C8353E3F0E1C3BE0197AECC426FC17684B4C2F39A17B4DD4E8D24 + 24CD0F1649842E1CD34BCF2D045D4B275EFC26C090103EEE699A80EEEE6E6371 + 71B1F7859A012E5BB5D485B020E4F0F00884621CE506A480DB4E82F06134706C + DC377ECC39C7069497DFA008FEEE1370C5EA652E84DD2D6213731363E6B37EC3 + 00A85EEA06691BBD427DC0F8C60F7E5F9A0BB8FAD395D32053714C0A18F5FDD0 + FA421510DC24E0DAB56BA600A747D0A03742636D6BC0709380EB3F5B3709639F + 18A3A8A1BFA04795B6FE79E330C27D1228DC24E0C6F539932236350F2D160B3C + 79FC8C1E1B9D5ECC0302CCCDD934FD1653D391FF3D7E1A50A40B98B7316FD608 + BA4A1042D6FCFB24604817307F53BE03435138E7EC94875DECEC079CC8F1E191 + 0CD581816ABF03E30E85DD43E534D39B85348095B2DBB3B507CC357E07BECDED + 7FD951C756789C18980000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_02_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006134944415478DA + CDD66B4C53571C00F07FB9B7D072A1A52DD0828038144790CC2D7346021B04A7 + F33527938CC78745A72EC64DB3487461CE6C6A6413A2287E9A4E97F9624E25DB + A7C91297699CCB4450C11714E883674BCBA3207D70EFDDB9A7A51628E82D69B7 + 93DC9E734F7B727EFDDF73FEF708E07F5E04FE9EA0F864EDAAE4586935490409 + F98C1B18B66B3FCB4D49F43B70D7C9FAF75212A4D52A550C0885C12040330A04 + CED87095F3DEC9107868D42DADB0717992C0EF40AE7CF1C3DDBD7363255FF341 + 0614E80B32E040BEC896D6FF00F8F9F775EF27C58657A9942A52241663D654C8 + 80039D38C985E8E868A1581C0A2ED394C8D6B6B699018B8B8B171004518E9A99 + E80A9DE2674FD1754310B5E86A52EAC26FA3A2389C180B0400D322DB343300EE + DCB9F3E5909090DA8C8C0C2A31710E7E24369B0DAC561BD8EDCE9ABB1F1E1E86 + 9E9E6EE831186141CE469045C7B923F43CA46626C0DDBB77FF9A9D9DBD263E3E + 01AE5FFF13060606806559601806D7CE360BC1C1C180A2067D7D7DC08AE49096 + 55F40CE681B459478024C9711B47A3D1CC0868D9B2E5E3B0AB577F03AD567B90 + A6E99F26FE86887963A94C449739CCEA2085220AF41DED9099BFD715B167482B + C2190C3DA32441909EBB5BAB9D1990DDBE7D079C3D7B068C46635A797979A3E7 + F7C527EAB3E6C785D78850509A6FFC082AD52C34612BBC59B4DF192117928B9C + D16870B4740E16104450AA670AD2E96608DCB6ED13387FFE1CF4F6F64E02969C + AEDF911C2FAB0826001E5D3B054AA50AF47A2D6416ED73AF359BD58AC63A71DF + 7CF4DA656E9C679EECEAEA9C1970EBD6AD505555E515C895FDE71A2E2BA9D15C + FD9D2B1019190D9D9DE81117EEC3E1B3A30D649A801B2B6348C728EDD8B2725E + B0CF40B406E1E2C58B6032790772E5ABEFAEFD3EAAFB63A9421109DDDD9D9081 + 80769B15CC26A357DC58D975A26E3D03B4A37CF3A25F7C066EDAB4192E5DFA19 + 014D5302B95C2912891A22221468AD75C3A2DC12E8334F8F9B587C066ED8B011 + AAABAF3C171812226A904822C06C36C2DCACCDBC703E01F3F2F23E100A855578 + 30972E5C575050D0B46DAE26A489072A4B777DC9673EDEC0FCFC7C93C1609073 + 13A2B709BEB884CCD591919110879237FA03D089F21ED79FF3960AD02B116EDD + 1E84B6B636F3F1E3C7157E05161414B01D1D1D6E9427502E57406C6C2C900868 + 34F4E0FECC742506363EB2C393274FA0B2B292D79CBC818585856C7B7BBB5760 + 844C06CA682508D17D9FD984FB17BF1E05044940937A149A9A9AE0D8B163FE03 + CE3E204FCF78B4E2A65EAFF70A944AA5E8314761A0657000F7BFFA8A02BF67DB + B434343737C3D1A347FD03E47040424D66E34A4AA7D3790586874B4086A2C8DD + 8F8C3CC5756A8A0C0185D0D1C5805AAD868A8A0AFEC0B88392C5688F91BA92BE + 9BD3E154C9722AB97A097740F00AA4C2C24022914008BA77381CB87F5E5204DA + 3424187AD131BEA5058E1C39C21F38BB546E218504E5B03B3ED495F49F998813 + 08A166D6FC684A1C1102B34E2FE476A357606868285054186A07E32317D79F98 + 20C19BA67F4000ADE8187FF8F061FEC0C45239BB70491A34D43E643D914E9CA0 + 26212586A222C4C0B00CC49C4EC3137903A2B706BEB836B7EEB8FED898309C76 + 869F12F88C8792BA6FC0CCB7D36168C802F75D480113D4C2E15E4A8DA7C26414 + C2D118A83C958A1F9537A0B776A482C240C7288997465959996FC0ACE599E814 + 4C23E410DCAB7DC0D234639DB7608E58220F77E3B85A712E19DA9B3BF0E01701 + 86868A70CDB2027484EA321F3A74887FA2E68039EF64B91116841C19B18214E3 + 180F2003C2560AC26FC500E910BEF06BCED536A175F9298AE0059F80CB56E4B8 + 11B447C4C6FAC6DADC77FDA641D03C6C1F661DEC32ED1EF35F7C26E45BDCC015 + AB964F824CC4714BC0DCDB0FEA079A80E0C60157AF5E3901383982A65E333CBE + AF0E186E1C70EDBB6BC661E8B1368A1AFA845E94691BEF3D1E41B8A581C28D03 + E6AE5D372E6213D7A1C56281BADB7759BB6D72320F08306FDDFAC98F98998CBC + 73BB3EA04837303F377FDA08BA531042D6FE531730A41B58B4BEC8896118BCE6 + 68C6CB2E76D5832EE4E888355DB367F06FBF036797CA6EA0749AC167200B30C4 + D074B67ECF40ADDF81FFE7F22FB7D1BE56A4E8A2630000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'ConnectingInsecure_03_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006274944415478DA + CDD67B4C53571800F0EFF645E1B6A5B4E56D0BCEE04684C0320C934126713EA7 + 538C6C289245A32EC6CDFDA11919F3CF4D3324BEFF589638634087F8A8E263CA + 962CD3A838990F4079435F3C843E282DCFD27B77EE69690A14B4256D3CC9E59C + 7BDAC3FDF5BBDFF9EE25E02D6F84BF2F202FB894C6A2D97F130408BC5A4813D5 + AAB20D4BFC0E8CCFBFFC2187C77F90B6389D100A85C0621180B0C022989E403D + 38E708E79C63DD65E5555095E6107E07324D51A02CE0717867BD410614E80BF2 + CAD50003BD455EBD762DF0C0B8AD17330816F7AF94D40F8265B2700C9B0979AD + B232B0408C2378554929A9A44C16E1CAB59990D76F5C9F1B70FFFEFD496C36BB + 040DB3D01132C3D786D071EFF9C0BCB246ABE297C4648493CA806039F26C36E4 + CD9B7300EEDBB7EFBDA0A0A09ACCCC4C323E7E3EFE87A3A3A33032320A63638E + 9E391F1C1C8457AF7A40DBD503CDA25C104424B822F43AE4AD5B377C07161616 + 56666767AF93CB1570F7EE3F60369B81A669A0280AF78E310D3C1E0FC2C323C0 + 64328166480C7DD19F4FBA8D134893510FC1FC6070DF38B7FFB83927A065D7AE + AF0477EEDC06B55A7DD06EB75F98FA9D9756790A974D9C4E8B3273A5D2705069 + 74A09A5FE8D8046E4893490FF5B54F87396C2EDF7D77DFB93D3720BD77EFB750 + 56560A7D7D7DC9252525F5EE9FCB0BAE24B1815D9DB820965C4C554254542CFA + 21EDD01EFF83336A0EA4C9648086BA6783343DB68226380BDC4BD09F55B7E606 + DCB3E76B387FFE1CE8F5FA69C0F8ADCA0D5C7EB03229410149D672888C8C02AD + 560DAD71458EE821A11945AEE9452DC6A9CB721F30EBDCEB64F5C37B7303EEDE + BD1BCACBCB3D0231B240F9733809DFAD0A7F024C59E9EAD2418BA208E7D740BF + 115A1A26E326DA04D2661B1B5497E5087D06A21C848A8A0A30183C039996BEF3 + CCE9E591EDDBA5A8B4F4F4744193FC7BB0988DD0D658E711E742E65FFE8862D1 + E3BAD24D8F7C06EED8B1132E5DBA88808619814CADE4F3F97562B114E56A0F3C + 227781AAA57E56DCD4E63370DBB6EDA0545E792D3028885F271289C168EC830B + 5D195EE17C02E6E6E67EC1E572CBF16267B9C02583C59A75CCF4FAF1B0C28A5F + 7F2AF6E67A5E03F3F2F20CBDBDBD12E682E869820FA62033BD4C268379A878A3 + 1F005D9D3A3CBFECE328408F4478F878003A3A3A8CA74E9D92FA15B879F366BA + B3B3D38572074A2452888989010E02F6F5BEC2F35919911858DF30064D4D4D70 + F2E449AFAEE93570CB962DB44EA7F3081487854164442470D1B9C968C0F3E969 + E1C0E6B0A1B9751C9A9B9BE1C48913FE03C6FD28C9C86C587D5FABD57A048686 + 8602F39EC7002D03663CFF7E8A14381C0E74A8EDD0D2D202C78F1FF70F90C101 + 07AAB2EAD7901A8DC62350281441188A22733E3C3C84FB45896108C885CE6E0A + 5A5B5BE1D8B163DE03E71D14A5B3D08DD01499EECF868B5A2821172A97302F08 + 1E81A4400022910882D0B9CD66C3F3090BC468D370A0570FD0D6D606478F1EF5 + 1E18774862E170D9A46DCCF6A5A6A8BF742A8EE04255ECBB1164B0380862CFA4 + 32BBD12330242404485280C63CFCCAC5CCC72B4478D3F49B09686F6F8723478E + 780F8C3F24A1539724435DCD4BDA1DE9C011558AC468921407034553107D2619 + 5FC813103D35F0C18C99BC63E663A205B8EC0C0EB141A552012AEABE01B39667 + 80D56A815A2792A0586D0CEE9D4572521046229C1D03237F5B846F9527A0A7B1 + 4C4A62A06D9C8353E3F0E1C3BE0197AECC426FC17684B4C2F39A17B4DD4E8D24 + 24CD0F1649842E1CD34BCF2D045D4B275EFC26C090103EEE699A80EEEE6E6371 + 71B1F7859A012E5BB5D485B020E4F0F00884621CE506A480DB4E82F06134706C + DC377ECC39C7069497DFA008FEEE1370C5EA652E84DD2D6213731363E6B37EC3 + 00A85EEA06691BBD427DC0F8C60F7E5F9A0BB8FAD395D32053714C0A18F5FDD0 + FA421510DC24E0DAB56BA600A747D0A03742636D6BC0709380EB3F5B3709639F + 18A3A8A1BFA04795B6FE79E330C27D1228DC24E0C6F539932236350F2D160B3C + 79FC8C1E1B9D5ECC0302CCCDD934FD1653D391FF3D7E1A50A40B98B7316FD608 + BA4A1042D6FCFB24604817307F53BE03435138E7EC94875DECEC079CC8F1E191 + 0CD581816ABF03E30E85DD43E534D39B85348095B2DBB3B507CC357E07BECDED + 7FD951C756789C18980000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_04_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000062A4944415478DA + CDD76B4C53571C00F0FF6DEF6D0B2DA5D09677A150719A617019C6CD6916B36C + 316ECB241B1BA87CD0A88B71D30F92B1E992654BDC0399C8E38331718B912922 + C843EB84BD324D14E3B287E09047A14081D2A74579F57577EE69E90A16F496B4 + F13437E7DCD3DE9E5FFFE79CFFBD25E0292F44A8075014D6E57068EE6F040122 + 5617D2449BB67ACB8B21072AB7D5BF40F2043772D6AC25A2A2A280C321006181 + 433035816AF0F611DE3ECF75F50D8DA03D934B841CC894D4C286421EC93BCD06 + 19566030C88B8D6106B245363635851F98B6FDC23A8243FD9CBDFAF908994C8E + 610B219B9A9BC30BC43882D79A95BD5A2893C5F9D6DA42C84B972F2D0D585454 + 94C5E5724B5173033A2217F8D8243AAEFF339E527DEF61EA8995AB104E2A0382 + E359678B21D5EA25000F1E3CB882CFE7FFB17EFD7AA152998EBF70666606A6A7 + 67C06EF7D4CCF9C4C4048C8DE96168440FDDE23C10C565FA22F438E4952B9783 + 07161717376FDCB8F14D852215AE5DFB1D6C361BD0340D6EB71BD79E360D3C1E + 0FE4F238B05AAD3038290163E2BB73A6711669B59820421001FE1BE7EA8FEA25 + 011FECD9F3BEA8A5E52A0C0C0C7CE972B9CECFFFCCBF0F15D9149738959360A3 + A45239680775A04D2FF66C023FA4D56A828E3B7F4D915C4AE0BFBB5BAE2E0D48 + EFDF7F00AAABCF80D1685C555A5ADAE1FFBEA2F0621617B86D2B55C9C235EE66 + 484848463FA40FFA9487BD51F320AD563374B6FF3D41D3F6D7688254F9A7A09F + 5AAF2C0DB86FDF0770F6EC0F6032991E012AB7376CA104110D5999A990F5B006 + E2E313606868007AD30E79A287843614B9AEBB77306EA03AEF06739D7F9E6CBB + 797D69C0BD7BF7424D4D4D40204616367C2317C2479BE47F029356464674D093 + 7A08AFAFF1FB16E8E99C8B9B2DB34887C33E31509D1B153410AD41A8ADAD05B3 + 393090296B777F7FEAD5F8BE9D52945AF4FA11E8527C020F6C16D0DC6B0F88F3 + 21B7D5BFE4E6D04EDD99776E050DDCB56B37D4D55D4040F3824026570A048276 + 89448AD6AA1E6E09F780B6A76351DCFC123470C78E9DD0D070F1B1403E5FD02E + 164BC06231C2F99175AC704101F3F2F2DEA328AA065FEC4D17386570388BB699 + DAE48C29AE3D79A484CD78AC81F9F9F96683C110CB0C88EE26F860123253CB64 + 324841C91BFD001819D6E1FE575E4E00744B849BB7C7A1BFBFDF525555250D29 + B0A0A0801E1E1EF6A1FC81B1B152484A4A0212018D8631DCBF615D3C067674DA + A1ABAB0B2A2B2B598DC91AB875EB565AA7D305044A6262203E2E1E28746EB598 + 71FFDA1C3970492E74F73AA1BBBB1B2A2A2A4207FC587DE0EDA1B3A6BAA1A1A1 + 80C0E8E868609EF318E083711BEE7F2E5B0A244942FF800B7A7A7AA0BCBC3C34 + 40069721CF3C77ADA28D1A1C1C0C088C8A12430C8A22733E353589EB6757C620 + 2005C3A36EE8EDED85E3C78FB30716A9F7BDC5418FBA259B2BEB16C389634594 + FAF35F9807848040A1480462B118F8E8DCE170E0FE4C95046D1A120C26008D46 + 03656565EC81276F55D9492E49694C3D9F1DD9F4ED17F3712A848B968A2992CF + 85A6C3ADCC6E0C088C8C8C04A15084DA3CFCC8C5F42B53C578D3DCB711D0D7D7 + 07C78E1D630FFCEEF6095A9E2803A3DE04FE480F6EF939894C4C517C120FDAF4 + 692B1E281010DD35F0C1B49975C7F427258A70DA9998E48256AB0594D4830326 + A726821D4DCB2CD2E572DE6570B17209C2514003ED05B6E0A90A040CD4964985 + 18E8709278691C3D7A3438604A5A3202B8F1DA3120A4CBED724AE5B1244FE0C1 + 018D89A03EF22B68BA34F8E2270146460A704DD3048C8E8E5A4A4A4AD8276A06 + A850A6E0082109FA5F6107A7D3057C01CF1B393778DEA141D73E02ED97EF8173 + DAF5C4B7396FDB8CBEFF4314C1734101D3940ADF342E5AA3D7CC941DACA6FB0E + 8DB1BBE0EBD7CBEBD90CC8B6F880CAF4B43988F9303CC52892CC3F36B3D11A16 + DC1C607ABA72CE5A737B71E0879C9E9A46F75873D8707380AA8C8C05A6D6B3FE + A626A7C060303A112E3F5CB839C0652AD5A2EBCE8136CE98DE00BDC647937958 + 8099AA4C989D5C26646E6FF4F0AC7BCED0EE7620E45858913EE033CB962FBA49 + 666B2692FA30227DC015992B3CEB8D065F243D28F0AEC3FF3710134906D939D6 + 9E5BB2B9AA31E4C0B2EB5F69A20531196C2E74BA9D8E6E63576EE91B95EA9003 + 9FE6F21F32429F56CAD1A1000000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004ED4944415478DACDD87D4C13 + 771807F0EF157953823857908A51E39C82DB12966D6C712F3AC8940D64A0630E + 1DBE6C4E6524E836304A1C26EE259B1B38430A585F368281B969E2C6864EC616 + FFD010062C512C010D089552886D1156A0BD72BB3BBCB3D7B7BBBE107DFEBAFB + 5D7F771FBEBD3E4F024151141EE622BC017E7CF46F9FFEAA0551E1D89E128FA0 + 00829832E0B71FACF01A78FA523B74069324E40301FED1DC8DBB260BB4FA6151 + E403013675F4C3303CC623DF4B8EC5F4A050A7489F8066AB77AF62EFC010F434 + 904376D3E739A9CB9C22BD027E54DE4015EF781526F3047B5E50765EF2DEAF77 + AEC6B8D94203476D90661A79D729D22F404F6B7A900C869171076497D680FCCC + 04DF81BB94F5D4E19C24AF13ECB86D407D4B1746C749C1B53BC611D0F7F51D98 + FBDDEF5469DEEB5E27C814F335B7DE1C84F6CE30BF76E56A17E8FBFA0F683059 + D9F3FDAA0B5E43F3372642A333B0C7D5175BDC037D9D10D1B3C3B031E9290407 + 06789EA8C58ACFBEAF1707FAD2DF4E35A8D1DCA185797C4CF29E83DB56F1C785 + 157550EE4E993A20372198BEE64D92530EB49D1097DB7ADD26D96A2E858150E3 + F8BA7358386B29BB76405587F24FD2C481FE9A1037B446BC934827394D38200A + EA36A179E81266C84360E9954199768645161DAD45457E866BE0544C88CB6D1A + 41924DE6628C84AB31FBB170C808194CC6311E79BCBA03C7F6AE930EF4B45C4D + 0875AF1ED9ABE2B1FFE2663639F9E208C13E0EB9C4948B9ABD79AE819E4E08E6 + 3D2261467CD08728DE99E67242E806F57C728AA57258AC16877B314863A705BF + 6EBD8025F2581E29007A3A219615CB31777E34E690F3A04CFF116141610E1382 + A448285B76B3B898D83998A0ACFC7E7B2897644DD62F3CD22950EA84F86DF45D + 2C4F7A1EDD9DB760EA0DC373C17B300DC1EC356642F4680750D2B40B37C87F30 + 3F4E31099E2069E4040F758624FA42D098DB260E14ABA78F44B240A618E4A3E6 + 1828DF3C8DD0C019000DC9ABDD8CAB238D747251827DF6485BE860A7112FC913 + 519E51E908CC29A9A5E846E95182AFBCF622FB400EC924F92C5180D1793FB1B8 + 454F2C60AF59E9AF9A9CB008904C715006C8E0121E7919156B2B11280B14074A + 493071F54AF6C1B648FDEDFF101C41F038AEEC91B6696AD4FD081E5C88C67D7F + F13807E08E6FCE51742747FF90993D6786B758820CF0FEC326A1BABE01442922 + 056BB6486E9D03F65CEFC39361CB11703D19A73EDFE2BACD6C3F7496A23B390F + 14AB17CAA205406720576B5C9AB7685C6C68023E5D790C5F28CFB807BEFFE5CF + 14DDC93D4AF08D94648C918E33778C1C155DBB79AD1B8F873CC3E20264813870 + B80A355F6D930E94922003BC0F1042DDA5698F63CA63A0D40485298923DBFE55 + 83E85760F1F0061074E7B42DB7C02D07ABA98A7DEBA1354A4B70854A81B435A9 + 2E52B23A5923595CFCCC04412B71576E8187AAFE144D30232DFDDE0B4F3A5CB7 + 4F53A3D1A0A75D872BB9AD981912218A730066175551E58559181CB648D9CB26 + C800B97206B547B6ABDBD9D95DF9F65997FFEE900C949AA06D4949D313A400B8 + A1F024A52ADA24F91D4C3A311799E999ECB1ED84F027D201585A980DFDC8E4C3 + 4AAA1B4413CC5A9B750FE838C69C416D7F401DED9D88B428DC229D027512FB60 + F20F313C90437A9A66278D5C141087136F558B03D7EF515165455B2503F3CFA7 + E39AAE49D267DD556A5C068EAC51F91F28B59C4D08A9E500F4ABCCA6FC027C18 + EB7FB6BB50ED2A2E71DA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005BB4944415478DACDD87D4C13 + 671C07F0EFB54279B31319A0D5458D730ACE252EDB9C51375F37992202EA0C6E + EAD8E61B24A20ECC208A8B8B4B744374CA8BE8DC8C1135D3C44D45E7DB62B219 + 876F9B2F3088030584DAD0175AFA76D7DEEE0EAFF668AFBD4213FDFD75F7DCF5 + EE73DFDEF3FC0A044DD3789E8B7007120421E9436BCB2FF5EAA986C62BB17CF6 + 5828FAC8446FC8BB7A0CFC6ED9E41E038F5EAE855A67F6897CA6C0DFAE37A2C3 + 4CA2556B14453E5360755D1B7446AB0BF9695202221511829B07056877F4EC55 + 6C7A6C809601F2C846667F55F26801B257C035A517E8A2155361B63BB9FDBCD2 + 3392715B57CE84CD4E32408B1BD28E86561DB2E6BEE642061518684584CAA033 + D93C90354D5A6C5C34BEF7C0D5BBCFD1C5ABA6F738C1BA161DCEDF6880C54609 + 8EB5EB4DD89135A3F7C0ACE253F4AED51FF43841B6D8AFF9E67D0D5ADB8DAEB1 + 2BB71BB03B6756F0803AB383DBDF5071B6C7D0DC8FA6A159ADE3B62BCFDDF00D + 5CB7E77749D392763A11AD8C00E51026A88AE98BF4490990CBA53DA82051D281 + AF7F3CEF1F28657D635FF0E82885609FADD37FFD87EADA1650A45D326CF3E7EF + BBB60BCAAB50BA3639F840BE2EDE7A00B395448BD682940923A10891079462D0 + 80EDCCB210D337CCB550775ABA12BBDDF0181D9D361898C5D75F9237EDBBA023 + 6AB06FDE090C8B1EC58D6DAAA84279EE5CFF407F1DC268B6A16F8467826C8730 + 30EB999E59DFD8241BD41D98337134D36B85EF645ED5125C375C46646C18C826 + 194A528E71C8C23D27B1272F5D1CB8B6ECA2A40EE1E4264924AC8EAE1BDB2C66 + 7C9539157A9395039A9807104BB2DA5E0493B206312F2B21236430EBAD2EE4BE + CA3AECCB9F2F1D28561D160AFDA34298592C4CDABD43F0496A8D76AED7CE9F3C + 061BCE2DE5928B1DD14FF0391E39D29C8D23F939E2C09C92F3923A049FE01F1D + 3B61A18C181B9A854D4B67E17E8B167FDE79002B2584AB355A5772AA51B1201D + A4C73559A4BE9EC4AF9967312A2E91F00ACCDE715A528760135486F7C1E8A258 + 0C1A321003A897B073CE11848744327A0AFF34B643A3EBECFAFA490A25D7D741 + AFFC1B831306C0493B5CD7E90EE5933C9CF10B46C62610A2407F1D824FF09066 + 1E264C7F1B8DF5CCF2D21485B714EBD1075D936765EA78A8B51D28BE968346FA + 068624AAB8718A790027ED7441BD21894761B89A7DD73F50ACB426927B075FDF + 19C701D962912FDA07A364EE512E49B633B0B3F5B6E92A935CBCE0F3DD91EE50 + 4DBD1E9362A7A12CED802770D5F69374C99AD90125F8EE7B13B91BF24836C937 + 893C185487F1AFE51A86BF3A943BE6A029E63C5280E4AEF504CA0259DCB8FEEF + A03CFD00426421FE8152129C36730A776377A4B6A5138A7E840BC75777A47B9A + CD356D506886E16AFE2584CA43BD4F9215DF9EA0CBBE48419BA16BDD629BB7BF + 0459E0D39B7541D58F1E235E1527187347F2E33CF0E1BD4718133501F27B4938 + B425537C9959BEED385D9E9BE6028A55A7D90C6514332976C70B80DE4062637C + 9A0F185C42F8386C9CB2175B4A8EF9067EF6CDCFF4DE2FE70594E0ACD949CCBA + 67F538C74A59FC8EDDBFD38857C2DEE07072590836151FC491ADCBA403C5AA9D + 6969315161185F3A90033E0508A1BED2EC8E632B60A0AF04D9AAB22D1100A522 + EFDEAA01D1A6C208E32210CCCAE95E3E819F6CAEA4CBF317A2552FED07E7E40A + 1552E6248BA4E4F0324671B8B12F8CE3961276B68A5D5B1270DBC10B3E81A72C + 1F232D25F5C90B4F791CEF9E667373331ED6AA7125FB26FA8547FBFCBBC02B70 + 71E141BAAC20031A230929C526C802F9F206ED8EACADA9E57AF7810F8F7BFCBB + 2360A0D404DD4B4A9A52905E818B0AF6D315854B24BF83D37F188405A90BB86D + F70E110CA4287057C162AE95B1B5BDF2A2DF0433D2339E003DDB9837A8FB04AA + ABAD471CA9F28AF409541BA42598F4D360179047069A663D831C2E4FC4FE0587 + FD0317AEAFA04B0B33250373CFA4E28EBA5AD2B9BE2A39310DDFA7EC0D3E506A + B97708A9250A0CAACCAD82027C1EEB7FFBE901FC58DD557E0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005C34944415478DACDD77D5014 + 651C07F0EFDE0987A208C80177E21843F842F9876F99D98B86A5E40B8A460E96 + 16A59952A205168CE28C8DCD68BE950227BE94E3843AE98CA5A9895ACE348E43 + BEE40B100C8180DC9D07F7220777DEDEDDB6BB78E7EE717BB7C039FAFB6BF7D9 + B7CF7ED9E7F91D044551789A8BE00209821075D16AD5855EBD9562507F7C3667 + 2C647D24820F74B97A0CDCB274728F81472E56A14167F6897CA2C0DFAFD4E37E + 0789FA7B2641E4130596576B6068B3BA911F4E1B85C80121BC8707046873F4EC + 536CA4517A1AE8425636B6226BF6681EB257C05545E7A8ADCB5E4787CDC9EEE7 + 169D168DDBF4C9743CB09134D0C241DA68A49E870C28B0BBD52F580283F98157 + E4BA85137B0F5CB9EB2CB57DF9D41E27587DD780B2AB75B03CB0F38EB51ACDD8 + B1E28DDE03576C3F49ED5CF9568F13648AF9335FABD541DDDAE61EBB74B30EBB + B267040E68E870B0FB6B4BCEF4189AF36E329AB40676BBF4EC55DFC0CF77FF21 + 6A5A524E2794F2B02EE38A88504C1B9F08A954DC8BF212251DF8FA8732FF4031 + EB5BADDA880445386F9FA93FAFD7E3465D0BECA44D346CC39269EEED7CD52914 + AD9E1538A0E73A58FEAF16ED162B74260B92C726401624ED568A8F0DC82CBCEC + 78B311C6762BCC163B6ED46A7C2679CDB61306A2127BE71F477CC408766C7DC9 + 29A872E6F807FAEB100C88017ACE6275EB7DB4591D748A249B64538B19C9E312 + E95ECBFF26734F2DC615D34584CA4340364A50987A944516EC3E81DDB9F38481 + AB8BCF8BEA104E7A920C5544C2E694B0FB5A9D1EABD25F82C56A83C9E2647142 + 4996DBB6C21C568941CF86414248D061B4BA917B4BABB137EF6DF140A1AAA37F + 2A25C60E80DD23E93EF4EC6DB7D8D80EC14DF23FB501291393B0F6ECFB6C72F2 + C470DE752EE4F08E2C1CCECB160666179689EA10AE04CBEE6D8183B060987309 + 3E9D9F4C2769C05F156A1ACE7FC156BDD19D9C72841CA483EC724F0669AC21F1 + 6BE6198C884E22BC02B376FC26AA43D4694C888F1D88E7B6CA3178A80251B638 + 14CE3982BE41A1B4DE8E8A0603A7435028BC9E0D6DF03F881B190B27E570DFC7 + 13EA4AF250C62F182E1F490802FD75082641454C14F635CCC0A4A92FA2BEE60E + 3A1AFBE305D91AF4818C3D6771CA18685A4C28A9F812F5D4550C4D52B2E376FA + 059C94D30DF586249A437039EBB67FA05035B7DC87322A0C63BE8B66814C31C8 + 086B1C54699D49329D8199AD37CD97E9E46278D77B22B9505D8D11AFC893519C + 76A02B70F9B61354E1AA99DD4AF0B5375F661FE84232498E277261541C42B5F5 + 6F243CFF0C7BCC41D9E9F3481E92BDD7432803647013225F856ADE01044982FC + 0305BF41752BE21583D80493A74F611FCC45EAEFB643164EB871AEF24472D36C + AAD440A68BC7E5BC0B0896067B9F24CBBE3D4E157F910A8DA973DD629AB7BF04 + 19E0A3877542B5CDF710A38CE68D7191AE7117B0A1A219A3FA4F82B422053F6D + CC145E663EDE7C8C52E5A4B98142D5A8D5D3094661FCAE181ED01B4868CC95E6 + 1D1A37B2EF04AC9BB2071B0B8FFA067EF4CDCFD49EAFE6FB4DD04E9218AC8C61 + 139C31330556BBB5CB3956BBC5EF58EDAD7A0C0B19C7E2A49220ACDF7E108737 + 2D150FF495E09098484C2C52B0C047003ED4579A9E38A6BA0DF495205367EC99 + 3CA058E4EDEB9520344A24B62D0441AF9CDCF209FC604329A5CA5B00B551DC0F + CEC9254AA4CE9E259092C3CB989DC58D1E38815D4A98D92A746F51C0CD07CFF9 + 049EB4BC87B4D4B90F3F787B97E39E69363535A1A14A8B4B59D710DE37C2E7FF + 055E818B0A0E52C5F919D0B59110534C820CD055DEA09EC8AACA2AC4DA87E0C0 + 3BC7102AEBD7BD043D816213E4969834C520BD0217E6EFA74A0A168BFE06A7EE + 1B8CF4B9E9EC36B74304022908DC99BF087A73E7C3B6959EF79B60C6BC8C87C0 + AE6DCC1B943B81AAAB6A104D2ABD227D02B5267109A6FC18E706BA90DD4DB386 + 46264893B03FFD907FE0823525545141A66860CEE9B9B8A52D1775AEAF9A9594 + 86EF53F7041E28B6B81D426C0902032AE35440804F63FD0FF5EC02FCED355651 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005CA4944415478DACDD77D4C13 + 671C07F06FDB4151D87CA54AC52822A8881AD4CD19DDD4A1532788A2730637DD + D8740E497CD9C00CA298B8E8A21BEA545E44E766D850334DDC74BEEB62961943 + 9419C1D632A4F25E2AA5406D4BAFEDEDEEA0B5D7F6DA2B34D1DF3F6D9F7BAECF + E7BE77CFF3B4029224F13297C011281008789DB4A5F066AFAE2A6C5008D21227 + 23582CE21CD0E6EA31F0FB75B37B0C3C7D4B8E1AB5CE23F28502AFDC55A25D4F + 40D9DCC6897CA1C05245135A3B8C76E4A7F32760E0AB41ACC1FD0234597AF628 + D652280D05B42165B52D485F1CC742F60AB839FF3A99BBFE1DE84D56E67366FE + 25DEB83D5F2C40A789A0800607A489426A5848BF027DADBE8142B4EA3ADD22B7 + AF9ADE7BE0C6C357C9FD69737B9CA0A2BE15D7EE55C3D069661D6BD1EA7060C3 + BCDE0337ECBF401EDAF85E8F13A48BBECD65556A34B674D8DB6E3FA8C6E14D8B + FC076CD55B98CFDB8A2EF7189AF1613CEA54ADCCFB92ABF73C03BF3CF217AF69 + 495AAD888D90C04410ACF6C1FD42103F6554CF12252CF8E6A76BDE817CD6B7F2 + EAE62E60F732A3A85133AF7F57D4435ED3023361E20DDBB976BEFD7D76E145E4 + 6F49EC3DF05E553326474A5CD6C1D2472A2A093334ED06CC9C3802E200914F29 + FA1D689B24F2DAA7CCEBE3062D73AB3AF446AF4996990EA15520C3B1E5E71031 + 602CD3B6A3E8220A339678077ADB21CA956A16D0568D5A138C4603B4D41A4727 + 49CFD0F829912EE7675E5C83BB6DB7101C1A04A25688BCA4330C32E7C8791CC9 + 5CC60DDC527083D70E61A526C9C4A86120BA2FE491B209A90953A975CD4A2D1F + F402DCC99964A92917BAD7641834FA35080542E8B5463BF2588902C7B2DEE70F + E4AA0A653326450EC1B34E76BF60B110CF0C2666873012242BC999934661DBD5 + 8F99E442A3FAB3CEB321C7E8D3712A6B13377053DE355E3B842DC17335BBD169 + D121DABA16EB1266A041DD8EB2C74F6134B17788B6B6767B72D2B1A154F284CB + 77D2486D25813F522F63AC2446E016987EE04F5E3B44D97FCD881B2DC1F8DC50 + 0C1B1186C1A670E42D398D3E01C1CCADADAAD750491AEDFDBFFD270DAAC0FB08 + 1F371456D2626F7786DA923C99F23BC6848E137002BDED10666A811E1F351CB9 + B2799831F74D282B9F405F1B8237C45BF10AC44C9FE459E3D1A8D1A358B115F5 + A2FB181123ED3AD76AA690563BD41D52D010843BE915DE815C55FEB801B1A3A4 + 98FC838401D245230718C37170F12984040653102B335B1FE8EE50C90D615FA0 + 13D211AAAED4E2ADD07814249F7005A6ED3B4FE66D4EF029C159EFCE6406B421 + E9245F1764423DF817545BCA10193B92396621CD543F8285649EE76E280DA471 + D306BE8DC2652710200CF00EE47C061575888B0E67128C5F308719D811A9A97F + 06717F811D672B67A4639A75B22688D511B893751381A240F79364FD77E7C882 + AF92D0D4D6B56ED19BB7BB224C46C4468F6412A481CF07EB82AA1A9A31442A61 + B539226DED3660CDC3064C089901D1C385F875572AF732F3F9DEB3646146B21D + C8550FAB1B5909B2136183B8DA6C693EA170E3FA4CC3F63947B12BEF8C67E067 + BB7F238F7EBDDCA70417252C84D16C74E963341BBCB655952B111D3495C18984 + 01D8B1BF18A7F6ACE30FF494604C4418A6E78731C0E70036D4539ACE38BA7C06 + 7A4A90AE2B96B52C205F64C5BF32089AA488EA580501B5723A9647E0273B4BC8 + C2AC95CCAF123E35BB488AA4C5891C2959DCB499195C5CBF69CC5242CF56AEEF + E605DC5B7CDD23F082E12324272DED7EE0CD2EC79DD3ACABAB438D5C85DBE965 + E8DF6780C73F406E81AB738AC982EC14A83B08F0293A411A682B775067A45C26 + C750F3709CF8E02CF5EBA7AF6F093A03F926E8587CD2E483740B5C957D9C2CCA + 59C3FB199CFBE330AC58BA8279EFB843F803C9093C94BD1A1A5DD760FB4A6E78 + 4D3065594A37D0751B7307759C400A79252484D42DD22350D5C62FC1853F87DB + 8136A4AF695652C848510C8EAF38E91DB8726B11999F93CA1B98716929CA55A5 + BCFA7AAAC498641C4C3AEA7F20DF72DC21F81627D0AF3287F20BF065ACFF0160 + 5D09FC1A0AE4060000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005D74944415478DACDD70B4C13 + 771C07F0EF51A1206E8AA6A8F89A2F147C331D73822F74EA1499E898C14D3737 + 1F53321F1B98C114131797E8E6632A50D1B93932D44D13379D3A151767E21801 + 653ECA602A50DEC4B648E9EBDADEEE0EAFF44AAF3D4A13FD25A4D7FFFD7BF7E9 + F7FE8F42501485E7B9087B204110A23EB4597EAD53DFAA6FAF6E58171B8140A9 + 44F0869CCB63E0D7ABA77B0C3C75BD04958D5A97C8670AFCBDB01C4F7424CA1B + 9A0491CF1458505A0775B3C186FC60CE18F47CC19F7773AF004D16CF86A29246 + A968208754281F2369E1041EB253C04D9957A93D6B674267B2B2EF53322F8AC6 + EDFA682E8C269206EAED90261AA9E221BD0AEC6875F5F3815A6B748ADCB66C72 + E7811B0E5DA6F6AD9BE57182A5D56A5C297A04BDD1CC3BF758A3C5FEF5B33B0F + 5CBFEF3C7570C31B1E27C814F3986F3D6844EDE3665BDBCD3B8F7068E37CEF01 + D53A0BFB7E6BF6258FA1C9EFC4A0AA5ECD1EE75E2E720DFCE4F01FA2A6A5C56C + 46D498813092165EBBAC7B0026850DF02C51FA5A5F7C77C53D50CCFAF6E75D25 + A2470FB02D33F98AAAD6D77FEBE93434309326D1B01DABE6D88ED3E41790B939 + D60BC07F2A103D7650BB31C80CFE163D49FF1930765808A4BE920EA5E83560DE + ED0ACC1CDF062C2CAD665F2B1BB4301A8D68A1DB1F54AB5C2679CB74106A4281 + A34BCE6270D048B66D7BF605C893DF740F74B743DCB853C90372D5D84C426B30 + C26830D04B88959DA15174D28E957261050A9BAE2350E60F52E9838CB8D32C32 + FDF0391C4E592C0CDC9C95276A87B05AAD98326E289B165345A535889F368A3D + 56351BD9012F946481690FB42F2AD06BD88BF0217CA0D3186CC8A3B9A5389AFA + 9678A050FD755FC9CEE21623BF9FB40B41276782460F1868947D9293C20762EB + E5F7D8E464C37BF03EC72147E892703275A3307063C615513B849924111D118A + 9C9274182D5A845A5721615A046A553A76A2984D465EFF26ADDE965CC8481948 + 0BD9EE9A0C525346E2D795973032389C700A4CDAFF9BA81D22AFE82166460CC1 + A83D32F41BD4174186FE90C79F42806F20FB78EB54CD503DD1B77E197ACDDC5B + F0312A8942F40FEB032BD5B6763A42B9244F24FE8211B2304210E86E87204D06 + 4C7D390C9FFF1D8529B35E4579590574CA6E7845BA055D2065FBCC8D0C45835A + 8B9F2AB6A15A528C41E121AD60AB99465A6D506748A2C61FF949F7DC0385EAC6 + EDFF103371389B2003648A4132491E587812817E81B0D0138999AD77B4F97472 + BDF943C401690F6D2CD3205A1683ACF8E3ED81EBF69EA332362DE85082D35E8F + 626FC8219924271129A80DFA014A1463E8E897D87316CA4CF7237948A6382803 + 6470913DA742BEF8387C7D7CDD035D2518357E1822BE0946CCDC19EC8DED91AA + EA16487B10361C578E48FB34AB147590360E467EEA35F849FC9C4F92B55F9DA5 + B23E8D435D53EBBAC56CDECECAA0D3D1098E407AD17416D876B356687D4D037A + 8704F3DAEC915C3B07ACBC5F8331DDA640727F1E7EDCB952789959B3FB0C254F + 8EB70185EA7AF143CCA6C72097203F113E48A88D4BB382C685054462DB8C23D8 + 9971DA35F0C32F7FA68E7CB6445482AFD18F7847710CE62F980783D9D0BE8F59 + EFB6EDC1DD7284FA4F6471121F5F6CDF978393BB568B07BA4A70EAB821989CD9 + 9705B601F85057693AE298EA30D055824C5D25D6F0806291F76E2B40D4856078 + F33210F4CA695F2E81EFEFC8A5E4A94B51AB11F783737A7608E216C60AA46471 + D266667113BA47B24B09335B85AE2D0AB83BE7AA4BE079FDBB888F5BF474C09B + DB9D774CB3AAAA0A9525F5B899740B3D02825CFE03E414B83C3D87CA4A4B647F + D7894D900172E50CEA882C5194A08F79008EBF7D0681D2AE1D4BD011283641FB + 1293A618A453E0B2B4635476FA0AD16370D6B7FD90B028813DB6DF21BC811404 + 1E4C5B0E95B6F5667B73F3DC2698B838F129B0FD36E60C6A3F814A4BCA104C86 + 3845BA04D637894B70DEF7FD6D400ED9D134CB68E45049388E259C700F5CBA25 + 9BCA4C5F291A987C7111EED61788EAEBAA62C3E37120EE88F78162CB7E87105B + 8240AFCAECCA2BC0E7B1FE0712AF06FCD84004710000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005D04944415478DACDD70B4C13 + 770006F0EF406C11A6E056D4EAA24E144425D14D11F139D954045164CEE0A6D3 + 6CCE298BAF8119C461E6E216DD7C4CE5A9731A33D44C13155FC357C87CC528CB + 148B3005A5220FA18596BEDBDBDDE1D55EDB6B8F52A35F4268FFBDF67E7CFD3F + 024192245EE710B640822004BD694DDEA54EFD55418162AC4D1E8300912FEF0D + 5997C7C05F964EF61878A4A41CF7E54A97C8570AFCEB56355A3546C86A9A7891 + AF1478B3A20E0A95CE8A4C9D35123DDF10736EEE15A0C1ECD954AC6968413305 + 7485EC147075CE0572EBB2F7A1315898E7E9396705E3367F351D7A8391026A6D + 90060AD9CC417A15D8D174EBEA03855AEF80BC53FD0CDF2F8CE93C70E5EE6272 + FBF2588F1BAC78A2C0F9DB55D0EA4D9CD79A946AEC58F141E7812BB69F2277AD + 8CF3B8413AF4D75CFAA0114F9B54D6B16B77AAB07BD54CEF01151A33F37C7DC1 + 398FA1699F4C85BC5EC13C2E2CBEED1AB836FFB2A065693699101715CAAC40DB + 48820310F94E2FCF1A359AF1C3EFE7DD0385EC6F45D7FF43FCD850EB577CF1F6 + 43E6775975036AEA951D826DFC629AF57166DE19E4AC49E83CF0E4D5FB481817 + E63007ABEA5A60345BD0DCAA45C4801088FC7C3B847D6940B6C106851A6DD498 + 4E6FC4A3A74D2E3FA3D4B00B0A4286BDC9C73130389C19DB5070067969B3DD03 + DD9D1027AE562279C210EB226143CFA3368D062A9D19168B19CF941A44864A1D + DE9F7E66116EB59420402286B1C607D989471964567E11F2D3E7F203D7E45E14 + 7442582C16C4458753D7B5EF6325A50F316DF420E8CD0483D4EBF5BC4DDE346C + 85BABB0C6F8676870FE1038D526745EE2DACC0DE8C8F8403F95274BD02B363C2 + D0A6E75E27EA42A0556B82DE4442ADD3C348ED756D5AFA4787B0017DB0BEF833 + A639C9E020CEFB5864982615873356F10357659F177442180D3A244C88C47ED9 + 06A8F5ADE8AF5F8CD851C3D0AAD6E041AD023A33773FD56B35D6E6A4E1126A21 + 191D3E93462A2B8D38B9E41CC2432208A7C0D41DA7059D107483F1638760D856 + 09FAF6EF83605D3FEC9C75183DFC0399AFB8AE59C53447C7444D879FFE5E86C7 + C42DF41BDA1B16F2C5BCB587B24D1E4A398130C9508217E8EE84601BFCFA7214 + 6262C7A2BAF21134358118235A872E1031D7448F180895468723559978262E43 + FF08E973B089425AAC506748A2568C1BA965EE817C397BA50C899386330DD240 + 3A34926D52DCC5BF7D8A50ABF58EFA06D51CF774B147DA421B2B959820998ADC + A4038EC0E5DB8AC8ECD5F16E1BD4515BC9F4F19148BB128D491F8E676EC822E9 + 264713E9A87D2B1F727305060D1FC0BC66264DD475460E920E0BA581342EAAE7 + 44E4CD3D003F1F3FF740DE3958F22FE2274662D4AF21983A7D0A73635B64F393 + 368882082B8E8D3DD2B64DB9AC0EA2C681B89171095D7DBB3A5F24CB7E3E4EE6 + 7E9388BA1603F39C3EBCDD3548035FDCAC1D5A5FDB805ED210CE982D921D6781 + 8FEFD56244600C7CEFCDC01F9B96F06F335F6E3946E6A52559817C29BE56C669 + 90DB0817C437C6B6F988C20DF58FC27753F66053F651D7C0CF7FFC93DCF36DB2 + DB06DB5A5B3073F2BB4C8333E3674067D239B66CD2BA1D7B70B71A43C4EF3138 + 5F1F3F6CD87E1087372F150EE4CBE9ABF710372E02D1397D18E00B0017EAAA4D + 7B1C9D0E035D3548E7B25F2A07281459F68F0C449D1483550B40503BA76D5C02 + 176F2C24F332E6E3A9D275836C26174891382B81A725B3933113831BD9238AD9 + 4AE8D5CAF7D982805B0E5E70093CA5FD144989739E4F7893C3EBF66DCAE5723C + 2EAFC7B5D45204F907BBFC07C8297061D641323733058D2A2384846E9006B271 + 06B54796CBCAD1DBF4360E7C7C0C01A26E1D6BD01E28B441DB08695308D22970 + 41E63EB2206B91E03918FB5B5FCC9B338F796C7B427803C90BDC95B910CDEAF6 + 9B6D2BBCE8B6C194B929CF818EC79833A8ED02AA28AF448851EA14E91258DF22 + ACC119FBFB59812CB2A36D5652C841BE11D837EF907BE0FC7505644ED612C1C0 + B4B37370B7FEA6A06B5D252122093B13F7781F2834B62784D0F002BD2AB38957 + 80AF63FE078561FDED0D282E9E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005D94944415478DACDD67D5014 + 651C07F0EF1E6F87A8E10BA8A7A58EA940D924055664A9684188089A19082695 + F9C2246AE0086358363669F92E2FA26966224DDA682A18A28EE364468AE3DB21 + 8C89820A227027DCCBDEDEDDB6BBB8E72D777BB7C0CDE8EF9FBB7D76F79ECF7E + F7B7FB1C41D3349EE622AC810441483A6949DEC92E5D956F7739964E0F858F97 + 9BE884BCABD3C01FE68EEB34F0D7D315B85EAB72887CA2C03FCF57E3A19682B2 + A65114F94481659575686ED15B90295346A3770FB9607297000DA6CEB562CD7D + 359A18208FBC5CDD80D4D85704C82E0117E794D2EBE64D80D660E6B6D3738A25 + E3D6CC8F0069A018A0CE0A6960900FF0F9D460F4EDE94DB81CD8D1EAE6294373 + 2B6917F9755258D7818BB696D01B164CEC748295779A71FCC24DE848A3605FA3 + AA151B174EEA3A70E18623F49645EF753A41B6D8DB5C7EA301F71A5B2C63672F + DFC4D6D428D7019BB5266E7B45FEB14E43D36685A3B6BE99FB5E5072C13170E9 + B653921E4B52A7C58793824152C25BE4E5E18EA0217E9D4B9432E19B5DC79D03 + A5BCDF7E39A144C28440CB2DFEFDCC75EEF3BF3A35EA1B9A3A045BF5E9BB96EF + 997945C85912DD756041C92526C1976C7AF066432B603241C53CA1239EEB0B77 + 99B4967139F0E7E27224468CB6F4E0D1BF2BB94F954A8D56066D30CB9C26596E + D8826642891DD30F6268AF006E6C657E11F2D2A63A073A5B210A4B2E0A807CB1 + 7DA421CDD0530650CC53AAD1511836B0B7CDF9E945B3715E7D1A3E7E72503532 + 64C7ECE79059DB0E635BFA3471E092DC13925608234521212298798FB5010F9D + B986D7470D054992DCC5990CA4689265867568EDA9449FE77B4246C8A055E92D + C81D0595D891F1BE74A058ED2BBD84E4C8976D12E453248D348C061D93240DCA + 64865A4362C8803E5851F211979CDF705FC1393C72A436058519A9E2C0D4ECE3 + 925608CAA0C7ACC8106C2A5B0ED2A481429384B1A302B8A5ABEE811A3A4AD822 + 06526F494E11E0C7A0299BDF6491AA2A0A7F241F43807F10611798B2F1A8A415 + A2A0F85F24468560E4DABE183878007AE90761F39442F878FAC06436A351AD61 + 7AB12D5D8A79577EF7D77CDC30FD834181FD61A61FA7DE1ECA27B92FFE1046FA + 0512A240672B845EAB453C93E0C7C5C1089BF81AAAAB6E415BD31DA15ECBE00E + 2FEE98E0110A34B69028AAFF0A0FE457313848D1D6BF662383345BA0F690C45D + 39CEA55C750E14ABBDC565983339142FACF3E3806CB1483E49B9BB37D7876CCF + 5D6E3DC724D74F707E7BA435B4A14A85B17EE1C88DDB6D0B5CB0FE309DBD7872 + 87127CFB9D37B90979249B6408918EDB3D76A1CEFD0A86BD3884DB67A28DCC71 + 9400C9160F65812C6E4CEFB790376D373C641ECE818E128C8F0841F0267F8447 + 8CE726B64636DDD1C0CB97B0E0F86A8FB44EB3565907AF86A1389771129E6E9E + F61F9279DF1FA473BF88419DDAC06DB38BB7BDD23C542331FA0D2E4116F878B2 + 3668FDDDFBE8A7F0178C5923F9711E78FBDA5D8CEA1E06B76B91D8BB3A59FC35 + F3D9DA03745E5A9C052856FB4B2F081214262204898DF169DE627081DE63F0E5 + F8ED589DBDDF31F0936F7FA3B72F9FDEA104A32647426FD4DBF6A951E774ECC6 + 956A8C90BFCAE1DC641E58B9610F0AD7CC950E14ABC2A2B3888F0A43E8D67E1C + F03140087594667B1C5B1D063A4A90AD531E2902A054E4D58B4A10750A0C6F49 + 00C1BC390517EF08386755019D973113F7548E13E46B5CBE023153A2455232D9 + 193372B8D1CF8CE15E25ECD32AF6DB92806BF7943A041ED125222E26F651C31B + 6DF6B74FB3B6B616B72BEA7136A51CBEDEBD1CFE9BB50B4CCADA43E766C6A3A1 + 858294621364817CD983B64756282BD0DFF82C767F70003E5EDD3A96607BA0D4 + 04AD4B4A9A5290768109993BE9FCACD9927B70E28F0331237606F7DD7A857005 + 5214B82533094DAD6D93AD2F38E134C1F869F18F80B6CB983DA8F50354595105 + 7F4A6117E91058AF969660E44F832C401ED9D134AB18E430B720EC9CB1CF3970 + E6B27C3A272B593230AD381657EACB241DEBA8A283E2B03966BBEB8152CB7A85 + 905AA24097CAACCA25C0A7B1FE07075FFFED351CECB90000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CopyRemote_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005D64944415478DACDD77B4C13 + 770007F0EF1591020EF1C1C3EA82C63904B664334E5C7C0BDB748AC863C5A1D3 + CD3895D7541C98411C261AB7CCA938E525A01B31439C12713A5FA89B2E514294 + 6D3E4088110595C7A42D607BBD6B7BEB9DB6F675ED51BAE8F79F5E7F77ED7DFA + BDDFDD2F251886C1CB1CC214481084A00FA5175DE8D7AFF21D24C6FAF849F0F6 + 70E33DA1C1E53470FBCA994E030F5D6CC0ED56B95DE40B059EB9DA8C6E258DFA + 96C7BCC8170AAC6D6C83AC87342293A3DEC2701F4FB393BB0448699D9B8A2D1D + 0A74E98106E4F5E64E7CB1708219B25FC07505E7981DAB674349E9B8F79905A7 + 04E3BE4B9A033545EB812A132485BA3B1D488F9B6844BA14D8D7780D1441D6AB + B646363EC0D615B3FB0F5C937796C94D8E74BAC1C60732545FBB0B955A63B6EF + B1BC17BB52DEEB3F3025F704B367CD874E37C886BDCC75773AF1E8718F71ECF2 + F5BBC85B3BCF75409952CBBDDF587CDA6968C69208B4B6CBB8EDF2B3D7EC03D7 + EFFD5DD06DA956299114F32ED4346D36EEE1EE0EC9701FE71AA5B5D8F263B563 + A090E7DBEEAA6B488B9E60BCC46567FEE65E5BDAE550F4AAFA04DBFCF907C6ED + ECA29328488FEA3F30AFF20A5262271B2FB1215DBD34489A02AD9F5F4101BE7D + 6EF17F03569CFF877B65DBA37422902A95C326EBA83D9011F5288DAFC29821E3 + B9B14DC5275194B1D031D0D10A515C5563B341761E3D51EB2FBB9604A987B24D + 060E7DC5EAF3992797E1AAE222BCFDC4A05B44C88F3EC22173F61EC7DECC387E + 607AE179412B044D91488B9F0A85EAE971ECDD173C3A10222D05A586804EA7E5 + 6DB296DA815E9F7A0C7BCD07224204A59C34224BCB1B519AF5917020EF253E5A + 8B0C69B855838616D9B04DB2F3115A7DAB1A0A01837DB1F1ECA75C737EE3CCE7 + A70119AC4C4545D65A7EE0DAFC6A412B04DBE0AAD8A9D87E39132ABA07FEDD4B + 10363A084A15898E6E0A8CCEFC07526AD2D89C64BC1F682D6DF59D2C52DE44E3 + D7E5A731DE3F94B0094CDDF59BA015A2E0F025A4254C47F0B6E11819340243C8 + 51D8BDA002E2019EDC7EB9BE59925472DBECE5DE723109B7A92B181512081DF3 + BC754BA8A1C98389C710EC1742F0021DAD10A4528964E974C4FD1282299193D1 + DC740FCA964198E4B10103E0C11D13346298BE6935AA65DFE25FF14D04854AB8 + 718D4EA347EA8C505B48E2A11835A9371D03F9B2EFE89F488A9F86B01D7E1C90 + 0D8B649BCC9D7310DE5E5E506B186ECE5DEFADD1371760F6794BA429B4B3498E + 697E11288C2DB30626EF3CCEE4AF9BEFB0C127DD0AA42546700DCE787F2A7742 + 03926DF21D22134DE212C83C1B30F68DD1DC3E2DA3D11F479B21B929F00CCA02 + 595CF8D0E9288A2B83BBC8DD31902F7987FE408A740626FCE08F8839B3B8139B + 22BB1E3C81872F61C4196289346DB3B5BE0D1E9D635093750103DD06DABE4956 + 7F5FC5147E198D3605C5BD67176FBE06931366415A19C6019F9FEC29B4FD6107 + 0224FE6663A648C3B80178FFD643BC39680ADC6ECDC5CF5B97F33F66566DAB64 + 8A32628D40BE941EBE80E48F238D0D9A37620EE21B33B4794F8F0BF10CC7D7B3 + 4AB035FF887DE08A6F0E33255FC53B6CB0BBAB0BAB1222B1E45818E6CD9F0B52 + 435A1D436A540EC7EEDC68C6EBE2891CCE4DE48E4DB90750F1DD4AE140210DB2 + C0E70073A8BD362D716CFA0CB4D7209B4B9E6BCC80429137FFAA07D126C1B89E + C520F44F4ED3D8057EB6B99C29CA5A844772FB0D1A32B35882E805513C2D696D + 8C6938DCDB83C3B947097BB7F27DB720E0B603E7EC024FA83E416C74CCB309AF + B1DA6FD9666B6B2BEE37B4E3726A1D7C3D87D8FD036413B834E70053989D88CE + 1E1A42C236C8020DB105B54436D4372050F32ACA122AE1EDE1D5B7062D81421B + 348D903685206D021767EF678A7396099E8391FB46421A23E5B64D5708572079 + 817BB297727F7ED8EC2C3FEFB0C1C4B8C46740EB65CC16D4F4066A6C68823F2D + B189B40B6C57086B70EE4FA38C4003B2AF6D36E99163DD42B15F7AD03170D186 + 62A62067B96060C6A918DC68AF1574ACBD4485C662777489EB814263BA42080D + 2FD0A53293B804F832E63F28A6F5EDE6D8C09C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005BE4944415478DACDD86D4C13 + 670007F0FF81407951012D2ABA38A34E65DB078D9BCBDC9C22733241149C3A74 + EA18BE4CC95426304187890B8BE210A7F2EE0B4A049769A253D1E10BF1838E18 + 6589220C624445A510282FA5BDF65A6E778777F4EDDA6BE9E2FE5FB83EF47A3F + FEF7DCF3A410344DE3FF1CC218481084A49312F36F0CE8AFF2F3F644CAB2A9F0 + F5F211BD20EF721AF8CBBAD94E037FBB59879A27ED3691AF15F8E7DD4674A929 + DC6F6C1545BE56E09DFA6628BB4901F9DDA269183EC4DBE4E22E01EA0CCE4DC5 + 672D9D6867803CB2FA91028931D34D9003026ECDBD46676D08855AD7CBBD4ECE + BD2C19B7F7DBF9D0EA2806A83142EA18648B09D2A54047E3E3E906A54A6B89AC + 7F8E8CF8D08103371FAEA0B3378639DD60FD7325AEDE7B0C8D566FF2BBB60E15 + 0E6CFA74E0C04DD917E9439B3F77BA4136EC6DAE7ED48A976DDDC2D8EDFB8F71 + 78CB02D701956A03F77A67E115A7A1492BE7A249A1E48E4B2BEED9067E5F5029 + E9B1D46AD4D8B1260C6D2AD2645CE6E189403F0FE71AA50CF8E9F855FB4029EB + DB9EB25B4859FEA1D060C1F92AEE674B978EC33B92DD6B3F138ED3F2CB919B18 + 39706046C94DA4AE9C2500F97469F4D0B36BA38144E0D0C10EB7F89F01F906BB + 7AB4C27B3A551A9B9F51AD3B0425518B234BCE615CC0646E6C576139F29316D9 + 07DADB21F69EBCC1CCC1508B06D979C4A647DBF77493940EC3FC6416E72797AF + C6DDCE9BF095CB403D73434ED4190E995E700105C931E2C0C4BCEB9276084A47 + 22796528BAC93E5011D3E008792077ECDEAB6380FD70F326EFE8B2A01A528B61 + 1386C08D7083BA831490474AEB7124F50BE940B1649DAAE41A6CEED4998C7B79 + B80B2D6AF574DF7C649B2435F0F3F5C1CE8A355C73F289FE26E7F1C849EA049C + 4EDD220EDC927355D20E41AAD5D8CE2C33BB2B13A131A810D0F62546CB4781D4 + 68A0A16810BD94C5ADE79B0B9E2C0765A02C3E9345763450F823EE0A26078510 + 568109072E49DA21F61457202D6E1E26650EC7E8B1A310408EC1C185A7211BE4 + 2DCC4176FE713118B0F35A3CFED1FD85315346A297EEBFFDE650BEC9B2D8F398 + 249F428802EDED103D5D9DD8111F8EB0E2F19819F6011A1B9E40FDCC0FEF7BA5 + 6010BCB8F7B073926DB4B23D13DDFE35181B12CC8DEB7BF50CB257805A43122F + 64A84AA8B10F14CBBEE2CB48FB261C6F67C939201B16C936993DBF0CBE3E3EDC + 1C64E7DC7D5515D3DC0893F3CD91C6D0D6860E7C2C9F8BBCE81396C08DFB2FD0 + 395B231C6AF093791F7117E4916C93EF11C968901541E95D87F1EFBCD977A769 + 6611379A9BFC393C9405B2B81981B3901F73021E6E1EF681521A9C3B7F0E7761 + 6364FBF31E78F913028E8F39D2B8CDA6DA6678B58E4355EA0D78BA7B5A7F4836 + EC3B47E76D8B12960F76F3B696AE76E61BD9BA858838398E03F65FAC0FAA78D1 + 8211C1412663C6487E9C073E7DF802EFFACD84FBC3709CCA88135F66D6679EA5 + F393A22DD637F3EC3F5E8E1FD64660DAAF4126406B20B131BECD270C6E8AF70C + FC38A7081939676C03E37FFE9D2EDABEC46E83CA160552D72F42C4A909581011 + 0E524F5ABC87D46BEC8E3D7AD088B764D3399CBB9B07766597E0F4DE75D28162 + C93C7A093BD647720DB2C07E8029D4569BE638360E036D35C8E6D6E06D2640A9 + C89ABF6B4134076362F70A10CCCA691C9BC0AF7797D2F9A9CBF1B2C376837C66 + 1706236A61A4484B062B637A0E3775E80C6E29619F56B1CF9604CC2CB9661378 + 51F315A2A316BF9AF07A8BDF9BB7D9D4D484A7750ADC4EA886BF7780CD2F4056 + 81ABD24BE8BCB458B476539012B64116C8C71AD41C59575B8791FA377062D959 + C7FFBB650E94DAA071A4B429056915B822ED185D98BE5AF21C0C3B3A1A4B172F + E58E8D77085720458187D256A15DD577B1FDA5D7ED36181B13FB0A68B98D5983 + 1A3F40F5750D08A282AD226D02159DD21A0C2F1E230079A4A36D3630C8F1EE21 + 38B6B4CC3E70794A219D9B1E2719987479311E28EE487AAFAD448644E3605491 + EB815263BC43488D28D0A532A3B804F87FCCBFFF53E0EDE9164CAA0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005A14944415478DACDD87D5014 + 651C07F0EF1E2F074A7A64A0A28D39662AD51F95498DBD48982F2912A0A4589A + 2FF982A48882014368949A28BEC1C10964394EA893CE689A22BE8D53398E2936 + BEC070E33B2227CA81C0BDEDDD6DBB8B7BDCCBEEDE72DC4CFEFEE1EED967F7F9 + ECF7D97D1E80A0280ACF7211F6408220249D94AA3ADDADBB0AF0F74556E25BE8 + 29EF213820E7F218B869C1188F81FBCED6E0DF9B8F4491FF2BF0F8C5DB78A223 + 5175432388FC5F81176A1BA06D35D8905FC78E427F85DC6170AF004D16CF1EC5 + 7B0F5BD04403C590DD022E2F3A49E52FFA083A9395FD9E5E744C326EC3E20930 + 9A481AA8B7439AF08F5A8394F8081BD2ABC0AE560F7F19B46D4617E4B9EA7AE4 + 2F8CEC3E70596125B52569ACC709D6DED7E2C4A55BD01BCD0EC71E37B761EB92 + 8FBB0F5CB2E50855B0EC138F13648A99E6AA1B8D78F0B8D5D676EECA2D14A64C + F21E50ABB3B0DFB34B2A3C86A67D1E853A8D96FD5C5E79491CB862C71949AFA5 + 51AF43EEBC28182DAE3724F7F3F12C51D282EF7F3EE11E28657DCB2A3B8D1FE6 + 45DA12DC587E96FD69309AD881BA52B95F8DEFBCAEEA288A52A3BB0FA4FB81E9 + C701ED53E84E92DE032A2BB02969BC4B827AF2E945ADA4DB24AB4C05D012D528 + 9B7A10838387B36DAB4B8E4295F6A97BA0BB1D224375DC01C8972053ED462BBD + CFCA5CCE4F3F3A1B175BCEA2674800C87B322863F6B3C89C1D87B1233D5E1898 + 5A7C4AD20E419A0C58BF78129A741DE76E2E3F85DE4181EC6703FDE25056AB60 + 92174CF968EB558D3E2FF7828C9041D76CB021CBCA6B5196394D3A50A8B24B2B + D9041B5A4CA2FD8CE68E6B9BE919F1F521905DF9259B5CC85085433F0E394C97 + 8CBD9929C2C014E509493B8441A7C38FC993F14D45125A8D6D503C9A813E410A + F61934190DBCE770C9850D0F0169215D8E33C8663589DFE75660786838C10B4C + DEFA87A41D22BBF010D62D8DC1B0BC173060507F041B0662FB94BD08F0ED9866 + E6D9B3DD0C6942EE99F9B8D2F617068EE8072BD539E5CE502EC93D8987302C64 + 04210874B743B43F69C1C694588C2C1C80D163DFC16DF51DE8EE0561947C157C + 2167FBC8037BD0736BC49FED79D02BD418141ED631DD56338DB4DAA07C48A23E + 00E793AFB9070A5586F230F29746E3D5FC1016C8148364925C3F6E1F8202E4EC + 73B7E6D41C3AB9F374727D1DCE7746DA431BD5CD783F240AC571BB5C81499B0F + 53CAE593DD26F8A4A9091B5213F06E517F7C38EE3D76400EC924F936918ECB50 + C2147C13435E7B893D66A1CC743FD201C9140765800C2EE2F90FA08ADF053F99 + 9F7BA09404A32644B203DB239BEEB743AE206C38AE9C91F669D6553740DE3818 + E7334FC3DFC79FFF2559B4F12055BC32C6B67C309B375F691F6AB0297D269B20 + 03EC1CAC03AAA97F88BE61A10E6DF648AE9D03DEBD5E8FD78346C3E7FA44FCBA + 76AEF032B330EF00A54A8B73BBBEAD293880B5CBA7E1CD6DA10E403E90501B97 + E61D1A37223002DF469662AD72BF3870FEBADFA8D28CA99212FC6ED90C8CFD69 + 00264D9E0883D975ED3398F56EDB6E5CBD8D570246B2381F991F566FD98DBD1B + 1648070A55C6B6FDC85F91C026C8003B018E50B1349D714C7519289620537F3F + B7D201281579ED72358886300C6D9D09825E39ED4B143827B79C52654EC78366 + F104B91A5312869829D102295978DACC2CEE8DDE11EC52C2BCAD42D79604CCDB + 7D52147844FF05E262629F3EF06697E3CE69D6D5D5E16E8D06E792ABA0080C16 + FD038817382B6737559C9588C65612528A49900172C5077546D654D7A09FF945 + ECFAEC40D7FFBBE50C949AA07D4949530A921738336B275592335BF233C82C33 + 09B109EC67FB1DC21B48416041D62C34B5750CC6FCA6EC2EC1C4F8C4A740D76D + 8C0F6AFF02D5D6A8114A86F12245819A1669094EFC65A00DC821BB9AA69A460E + F109C7CE843DEE81D35795504539732503D38EC5E2AAE682A4BE62151D1E87ED + 31A5DE074A2DFB1D426A0902BD2AB32BAF009FC5FA0FF25FCDED8512D51A0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_11_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000050F4944415478DACDD87D5014 + 651C07F0EF1EF222320615A8278D3966BC547FF4264DF6226126291160E86069 + 32252A1888810563D85894908885BC93C95088933496860662E33F0CC32836BE + C07083A2BCC88172BC1EC7DDC1B6BBBAC7DEDDEEDDC37133FAFDEBF6D9BBDB0F + DFBB7D7E0045D3341EE65042204551442F4A2C3837AD9FCAC5690652A35EC42C + 6757C90BF22E9B81FB372FB31978EC7C33FEBB7EC722F28102FFB9D08641B50E + 8DAD4A49E4030536B4744335A43120B7872DC13C7767A38BDB05A81DB7EDABD8 + DE33803E06C823EB9A3A91B4F65523E4B4803BF2CED2595BDE825A3BC11D27E7 + 9D26C6656C5D8931AD8E018E0A905A06D96584B42B70AA71759241353C268ACC + 8A099C3E30FE50359DBD6DB9CD0DB674AA5073F10646C7F446E7EEF60FE360EC + DBD307C6669FA273E2DFB5B94136ECC7DCD8DA8BDB77870C6B75976FE050C22A + FB0155EA71EE7877D1199BA1491F06A143A9E21E97575FB40CDC59F82FD16D39 + 36AA8610688F8CE9C6F1CD2F35D68124FBDBB6032791BB63B55D1ADCFBE93B86 + C7A90555C84B0CB13FD05EB11B70CB0F2790FF7928BA07B4DC31FBD14C358DDA + 1CA8A82694AC3981851EBEDCDA9EA22A1424BD6F1D686D426CCFFA8379A37003 + 70AA49AEDA880B03E731CBD305BA761972438F73C8B4C293284C8E900626E6D7 + 124D088D5A8DE22FD7D8D46083360BC3B39BF0D853B321A36450F76B0CC892F2 + 1694A47C400E94CA67FB2B8D802419D3D3D85DFD31D79CE76277A3733CD2471D + 878A94046960426E0DD184E01BDC5A198311ED205C9591980167A2E6E4BE9ED0 + 8DEBCCCEB3C87E850E7F459F81AF973F250A8C3BF837D18488DD5781829475F0 + C97C1CF317CC8387C61BDFAF380637177124DF9CB7DF5C4CD09377BE29946FF2 + 68D49FF0F1F4A32481D6F6B791C1010370E9F257D0A6B80975BB1B9638EF326B + 926D6ED45D8105FE72EE583FA167901306A81892EA72417DDC55EB40A9C4EF2B + 477E6A149EC9F2E4806C58A4B0493DB3137C5DBB099787EB99E6E618BDDE1429 + 84F62AFAF1BA6710F2C34BCD81CC064C934C88C1BE3E03F0CD15AF7117E4916C + 932F53C9B8845C683DAE63D1B34F72E7C6693DF33C9D11920D0F65812C2EE0D1 + 375010510A4799A375A054E2BE2D4551DA460E18B43290BBB010D9D739026777 + CA80E3638A14B6D9D1D40DE7DE85A84F3907270727F19B84991034C98450F528 + 9193BA012FFCE8C501272F760FAAECEAC11CB997D19A10C9AFF3C05BD7BAF09C + DB52385C0BC66FE9D1D2DB4C4C66254D32217666FC2A0A140349ADF16DDE6470 + 7E3303F0556031D2738F5B067EF2DDEF34C984B8D3D589BCB4680EB86A753034 + 7A8DD97334FA51AB6BAD57DAF0B4CB4B1CCE41E6883DD965A8C8D84C0E944A42 + FA1123E024C0186AA94D531C9B29032D35C8A6DEE30B232029F2EAA52650DD72 + 2C1E5A0F8AD93985B108DCB4B79C6637E0DBFD64337659911CA1EF8548B4342E + B2A6E770CF3F12C06D25ECDD2AF5DE44C0CCB2B31681A7463F427868D8FD2FBC + DEECBC699B1D1D1DB8D5AC445D5C23DC677A58FC034814B821AD8C6637E0DE21 + 1D48C236C802F988414D91CD4DCD98AB7F02A56B2BA7FEDF2D53206983C290B4 + 49821405AE4F3D4CB31382F43BB8FCE7F9880C8BE41E0B27843D9092407603EE + 1BBE77B103E5B5561B8C8A88BA0F341F636250E10DD4D2AC80974E2E8AB40854 + 12FEA61C7CC4DB00E491536D53C1201739F8E370E451EBC075BB8A6876032605 + 269D0EC3156503D1732D25C43F1C3F8516DB1F481AE184208D24D0AE3241EC02 + 7C18F33F0DB39CEDA45E1C970000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_12_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005454944415478DACDD86D5014 + 751C07F0EF1D22871A89753E008D966982BDA969D2A6274D5448888442074B4B + 4B4D2D10020AC6A86C48319F26E5412C93A150469DC932359FCA17398CE343E3 + C3118C89721E9C0877707077DCEEDDB6BBB9C7EEDDEEEDDEC38C7EDFDCED7F17 + F673DFDDFBDD818AA228DCCF51F1812A954AD10FE5569D0AEA558D1B15856529 + 4F2162905AF2849CCB6F602870231E884497C5E613191470E3D2690103EB4F37 + E21FBD198F8D7ED027F29E017F3FD7821E2B015D6BA71BB924391E432386084E + 7ECF80679BDA61B2D805C836531F56A44E162083063A9C81DD8AADB7BBE9D6EC + 6EE4A5960E4C8C8DF642060C5C5D7182DAB4FC15581D2E76BBA0E288625CD907 + 49E87710EC651D403A68E41D1669B8D383827953430BF4374306AB61EAEDF742 + 9ED119E024496C5D39333860F6F663D49615890137D874CB84E3E7AFC3D64F0A + F6759A7B41120E6CCF99131C70E59643D4B6EC57036E900973992F5CEB405BA7 + C5BD76E6D275F6D127306FC71FB2777EBFCD0A0668B23AD9ED35D5470386E6BF + 35037AA3897D5E77ECBC32A0DC0859B5F537013014E9279CF8EA87E370B95CA8 + C84D0D0EB862F3AF285F9D129206D7BE3FDBFDBCB8EA30FB187260A08DAD39B6 + 1C7FB737606B4A1D268D9CCC025D4E27AAF25F9707FA1AC21F6D3E88CA8FD3D0 + DEED60B7994BE36FCE3A36A1374A87A15A0D885635CAD3F663F7BEEB34CA891D + 0519D2C0DCCA93B2439870D8E95799EE06FA9B82C38B70AEFB341E7A3C0A6A95 + 1A56B39D454E2673A17168F15DD19BCA81A20D6E3C809D9FBE1150835C73DA09 + C305EB0CD2DC4CE069571EF616E5480373CA8FCB0E61BBD5EA067E71E243F439 + 7AF0E5CC4A6806454AC2FA498ABEE7DE619B8B99A405E124BC8EE190BF2C3E4A + DF93092A51203D42648730BFC1E72AC62076EC18585B87E1D988420C4284CFE6 + E2E247C3450DBCB93CA1DCE5DE9375104F68E35592405F23A4AFA71B5545F3D1 + 6676605A750C9E4F9C8A96E61B88B6C761DDAC7A0CD308914C73172D7F616C42 + 0CBB4DBA481AE97243C5902A83060DABAEC803C592BBB1DE0BC884417A36C934 + E788FE976E6E94E0777822F9D08E66335ED4CE40657A8D37909E7194DC10EEE9 + EA426571163A2C040B7C79D60BEC093924D3E4FAA41AACFB331B977A1B30FEC9 + 71EC3E2745D2C7110224130ECA0019DC94112FA12AA306E1EA7079A058B2D7D7 + 09803392A6B327E623DB6E7422EAE148378E8B2792DFA65ED78E888E47D15074 + 0A83C3068BBF49967FF3332537844DB78DA82E59C45EE2C4EF6359E0C0C9FE87 + 1A0DB7312A66A4608D8FE4D639E0CDAB0616176F5B829F4A174B8F99651B0E50 + 724338AFEC476C2B5E88AE5EC20B2806925AE3DABC41E312864C41D8D56476DD + 27F0BDAFF7517243986990011AE9639277C7614E4A32ECA4DDEB383B69935DBB + 76B9051335CFE0B3E93B515ABE9FFD46BDB76CA972A058724A77A3A264B10038 + 0010427DB5C9C785A9C3F1F9965A76BF5F40B106EF186E49029522AF5CD40970 + 4C1401DF5D5B4771334E2A856535EEE70DD19F20EDB55489969C226B248B53B5 + C76082650154F4C4E487C329066EA83D015F39647B1BE96973EFDEF0A4D77ECF + 36F57A3D6E361A7166D5050C8F8CF6F90790287061492DC5CD382561E62003E4 + 2206F54436EA1A319A7C0435F30E78FDBBC36FA0D206F951D2A612A4287041F1 + 2E8A1BC24AC2CCC1CCB999EC73FE2744289092406E0833D95C7752B6C1AC8CAC + BB40EF8F313128FF0DD4D4D88C91448C28D227D0A8F0EB3C3366382087F4B7CD + 661A393E2C01BB32F7C803E7175653DC8C5392FC237371D97856D1B1BE929A90 + 8E6FD376861EA834CC10E6CF382591048654C64B4880F763FE03BA86E1ED7AD8 + 77D00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_13_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005674944415478DACDD8794C14 + 771C05F0B70B022A31D88643C0A8518BA04DB4B1ADC61E1ED44A0511A84268EB + 01562D928258A085222636B64551A9CA6DA9D4163596F440D17A35A68921C623 + F580B0B1809C2B85E5DC6B16A63323B3CECCCECC2EEB26FAFEDAF9CDEECE67DF + CC7C87A0204912CF73145CA042A1B0E9432945579EEA574DF59E802DA1F3E0EA + AC943C20EBB21B98BB79B1DDC05357EBA0D668659176011DD15C7CC85CFC7DE7 + 21FAB404DABBFB259176031DD1DC2B337D31A8D39B91F1218118EF3A8E77F067 + 02FCF34623836A7CD48B8581FE6624BD9D10369B877C26C0EBF51DD0F4EB4590 + 466ABB8F877C2AA071C8BE4BB199427553401659DBDC85A573A79A910DED1AA4 + 452FB01FB8BDE012B97FEB52688DC3CC765AC1399B71399FAC80C14850401D07 + 69C4B5DA3678B8BB31EFE9EA1940DEB6771C071C6DC6B928A1193058206FD5B7 + 22689A0FAEDD69C091E495F603938E5C200F2604DBDD607DAB06176F36406730 + F1F6D1CDAD593C0715176ECA037714FF257B7119745A1C4E7ACFEE0699EFA04E + F3AD079D68EFEA37AFD1CD7DB921185FFD70D13A50EE2E4DCC3BCB0035DA2166 + 3BABE4BCDDD0D40F97A145AD615ED3CDEDFEF85D641655A32025CC714047C440 + 0C31CD39049870A00AF9DB431DD2A0C1EF34FEE9A8C1E1F013283BDD849D71CB + B1ABA41A45A9ABAD03A5E65CF2776778407B1B4BAB5E8F1BBD5731DED30D44B3 + 12B34D29D8B7291ED9C555284E8B9206A6145E969D73268240E167E1E8E83532 + DBF4A9196DAE1BF76360422D5E9C31014A8512DA1E3D7A54048E4557E168453D + 8E66ACB11D28CCF6BC5FA9531069068E366C739E333D78EB34926E32409B8893 + 19C9D2C0E4FC8BB2734EAFD5A2F48BF7CDC0A8E2D530C188792EDBE00C579B9A + F39DE5096288B0D8CF36F947DC79CCF20A528802A9BB94949B739FE656F2800B + 0B26C16FCA244CD4FBE3D0AA9370731E6BF119838944D6850D4C73FE813E1826 + 9F5CBF4228DBE489D8DF11E019A890044ADDA5C20669E0A2E00568543541DBEC + 8ED75CD32D9AA49BD379A83025C897D9360D9B28E4B0192A8654B4B9A126F19E + 75A03029B9A750941183F69EC7C0C525BE0C900E8DA49BFC66F929B8BB3D46D2 + CDDD19A8A19AF3E67D8F10C98576AA7AF0A6E7321446965B02A93947CACDB9C1 + BE5E0BE0DBCBDF600EC822E9265F55A4E136F2619CF82FA6CF99CAEC1B224DD4 + FB081E920E0BA58134EEF517DE42515439C628C758070A93F46D050A3363D1D9 + 4F9881CB562C610ECC4576B70EC2D54361C6B11122B96DB6D476C0B5731A6A32 + AEC0C5C945FC26D9BAEF37526ECEF575778B029F1CEC3154DDF608DEBE5EBC35 + 2E925D67810FEFB7E165F74570BA1F829FF7C4498F992D7B2B49B939B723E727 + 9464AF379FE2E0EFFD78403190D41ADB66138573564FC68F1BCF624FFE2FF2C0 + 4D5F9F26B977A9B041CD23350E67AE43F7006106AE0C0D81DEA4B7F8317A93CE + EADA83BB8D08183B9F692E2B3106BB0E1EC7C99CCDB603C51AA481EA91FD21C7 + FC19E013001F2AD7268D7BC96D3E762E29659AB30B286CF0BFB6561464C74902 + 6D45DEBB5D6BC63929C7303036B2C08DBB2B48EE1811263DA7DC0218BE2A4CA2 + A521913593058E0EB739363601F71EBF64D1203735133F476478C4C805CF478A + B5D9D2D202D5DD26CCD7EC84827AE6706313705DF671923B46AC851E3334908D + 185488ACABAD838F6932CAA32B2DFEDD316AA0B04161CEE83EE201A59042A82D + 4851E00799652477CE590B3D66D646AC655E739F108E404A02B973EE40C565AB + 0DC646C58E002D1F636250EE0D545FA78217E12B8A9405AA6DFC8B99BE8B5920 + 8B1C6D9B2A0A39DD2908656B4F5807C6A49790DC31622DA9E72270577DDDA6F7 + CA252C281287C24B1D0FB4356273CE5A24810E9571E210E0F398FF0182E409FC + 4BEA78850000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_14_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000058A4944415478DACDD87D5014 + 651C07F0EF1D272F6A8C54889E3662960AD98CCD3869632F2058902281F93254 + BEE0BB318A18583086938D150ABEC68B68065AA89336E57BBE50FE91C39866E3 + CB118C09F17AA21C77E071DCDBB6CFEA1EBB7BBB7BC7719ABFBFEE9E5D783EF7 + FDEDF33B06054551789C4BC1052A140AB77E28ADA8BC579F2A3424104BA6BE04 + 3F95527243D6E53130777184C7C083E72BA1D5196591FF2BF0974B3530182D68 + 6A6D9744F618E88DB62E881D8BBEBE4A5CAC6A86AEDDE4402E880D433FBFBEBC + CD3D027AA3AD04D974D780561AC8226B6EEBB13CEE051EF29103B96D9D113106 + F78C460ED24C230D3CE423070ADB2A86BCD5A443C6AC09BD039A6D9E3D8A7574 + 1BB96DBDA069C080FEFEBC7BEEB67560EB87933D03AE2A384BE52D9D04A3D9CE + BCCF2838E9362E67590CBACC161AD8C94BEC6ACD1D3CAB7E022A858AB9EFC2D5 + 5BF83A758A77803D2D727A751D5D4E484D5D2B268D0D65EE293B7D591EB87AE7 + AF92FDB359ADD8B23CDAE304AB1A743873F9163ABBACBC6BA4ADD9F322D165B1 + E1F36FCFB8064A1D8494ADC7B163E5DB1E27488AB4F9CF9B2DF4986977AC91B6 + AE5FF416F33AABE8040AD2E27A07D4196DCCFBB5C5A73C86A6BF1F857AAD8E79 + 4DDAFA5080BD2ABB15192797E1AFE60A8CEC4AC1A6850B98E575C5275094FE8E + 6BA0D82849DD760CF9ABA67A254143C85E5CD29F47BF607FB4555B5032EB2886 + 078D46F6CEA3D899315D1A9856784E7294D8ED761ED093220721E3C45C06F7D4 + 7381502A9430B69960A953223FFE107697556177E60CF781DC4ADB7604851FC5 + A3596F66DE9313D7D3BA68CE4347A006C1CF0FE0ADB3C851C6141CC84C9506A6 + E69FA1A44689C56CA29F8F4407904196AF80C1A4C767930BE1AF0A90C5B1C9A9 + 4707C362B3385D2748D2EE23C9A7307A60B84214481F044A6A94ACC83D8C5D9F + BCCB4BF058E70718326C308C75FDF1B2DF1AA8E0279BDCD0B041B053DD8F8810 + CA26B93FE9678C0A0E534802C50E8289FE62E70249BD52301813A327A0A6BA16 + 41A6A1D83EED002FC92E2B85B5A7E7E14AFBEF1816AE66D6ACF409B653760754 + 0CA968F44745CA75D7406EA56FFD51344102244590C2244972E6A07FE8E44278 + BF4B88E4425BAADBF05A70140A134B9D81CB371FA5A446C93D831E4599B3D1D4 + D69D6044B11A6FBCF92AB3218B24497E15538A2F7F5B89AB1D1518312694B966 + A3ACF47D161E92140B2540821BFFE4EB289A5E8A3ECA3EAE81DC4ACB3DC8036E + DC779649302A2692D9988B6CAABD8BC0A7031C38B684486E9AF59A66F8B50C47 + 4566397C7D7CC50FC9D24D3F5152A3C4D0DA8AC2AC24B4B4776F401224C0EECD + EE43B58DB711A21EC85BE322D97516F8EF8D46BCD87F227C6EC4E2FB0DC9D263 + 66C9C6C3947094B09591779007E426C84F840F925A63D3ACA5716101E3F169E4 + 2E6CC83F240F5CF8C50F94F020B0A5BBAD4571F65CDE3318FDCD104C991A0B93 + D5E4F4814CD64E976B37AFD540D1ACC6DEF9C7E1A3EC83755BF6E140CE62F781 + DC5A9DF31D7664CD416BC7FD0437979D631224C06E001F2A9726C18D0A18C7B4 + 756DCA6CE65A8F81C2040950CBC1C7960CE501DD455EBFA2C148FF718EB6923F + 86D99205CE5F5F460947095B6B724A51909DEC048C9F162791924D64CDCAC309 + DBCA2DB780E420B075A7B1411498189FF0E081B70AF7704AB3BEBE1EB57F37A0 + 24E10F0406043AB5D525704EF63E4A384AB8090AAB22E86306C896185488ACD4 + 54427FD317E1ED8BA0808AD7D61E03B9098A1539245CA014520825C841D66750 + 3AEBB0D3FF646481EF65EDA184A344AEC8989999309379CDFD86F0065212281C + 25AE124C9A9EF400E8FC352606E51EA0AACA6A0CB4A84591B240ADDEBD04C921 + 61812CB2A76956D3C8113EE1D83373BF6BE0EC35C594F0A4CA55FAC9045CD35E + 74EB5EB98A0B4FC4F6F85DDE07BA5B52A344AE24815E9571CA2BC0C7B1FE0367 + 5533FCDBBE9F2F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_15_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000058D4944415478DACDD8694C14 + 771806F067779145B446DA20BADAA8B116A1A78D561B7B68C5562A88A25543AD + 07D6A348A2A2400BB198D8D8062B4A440E81DAE281926A6B4B41EBD5F8A19618 + D104110AB1A22CC742DDE57259F69ACE0CCE3A33FB9FBDD8A8CF27E7C0F9F1CC + FBEE1A651445E1698E8C0F94C9642EFD5042DEA501FD56E38286617DC464287D + E4920FE45C1E03F7AC9BE931B0E4722D343ABD43E41305FE71AD015D7A135AB4 + DD92C8270ABC5AD70A5DB7C1865C131E82214A7FC1C3DD027A63E6D684BF0E1F + 45FFDFDFD8D6092D0DE4900DF4715CE44B02A4DBC081CEDCDFB79A61EC3320FD + F3B9E8339A68602F0F69A4915D02E46305F2676EF99CD710E0AF80AEA7CF0E79 + A74587A4A5D31F3F503C736F4C54E14A8D1ABD7D66C17DF73B7A90B9718EE740 + A3C5B35124CDDCF2B05771ABA10D2DF7BB6DF75DA9BA83039BE7B90FDC927381 + CAD8F03EF4462B7B9C9473C6659CD4CCFD55AD66673271F96CA8353AF6DEE273 + 958E815B0FFE49AC88B25AC107BA1B7F5F3971E66A1AB5885F3095BDA7CF64C1 + D73F9C770E24CDDAE6ECF3D81717E67183754D3A9CAFBC439CB9B455B36CC7A9 + 79E5C84988741F189F5986AC4D1F79DC20DB10FD9AAFDF6EB79BB99D6B3FF41E + 50A7B7B0C7DBF3CF7A0C6566EE5E4B1BB22A9351D57605858B4F637CC024F6DA + 8EFC72E4252E700E146F6B4256B90038A058CDD854BA0AD73A2F6348A01F4C8D + 7264479D649169074B71306991343021F722715BADF492646F89F04A835D4187 + 59DC732F0C835C2687BEC360431616D7A130E563D7815CB61D2813003D09B3A5 + 49E52B595CE0C4E1826B1C32581F8F13299BA581F4B652A46D359B4CC8DD1685 + D64E237BCC7C1C30B96ECC8219464CF6DD081F281D02AF1A33D033AC06AA4981 + 30594C76D7196447BD09BFC59EC5A411A13222905E068AB4AD5B327FA18737DA + 06E4F256CE288C1E3B0A018631D83FFF04FC7C0613715C73634246C24A3D7A0B + 6228D7E4F1985F111C182293048A67CDA0D7A3E0CBC5760DFEDEFB2966844D47 + 43FD5DE81B87E24D65B25D934C73BDC3EB313654D5FF36E825B152561B948494 + 35FBA122BEDA39904B62E6CF0220BF4106C88441F29BEC3353D87E6E15AA7A2A + E8E682043F2746F2A1EDF51D7827703672A38BEC81717B4B29D2B63A6AF0BD0F + DE661FC8219926A7CA927003D93006FC8B092F8F63AF5928337D9F498064C241 + 1920839BF6ECBBC85B548441F241CE815C12F694202F65195A3A840DCECC5761 + F6DC59EC83F9486DD3032887CB6C382E6224BF4D754D2B94EDE351917209BE0A + 5FF2926CF8EE3445DAD6075D9D02E0EE23176C0D32C0470FEB876A9ADB10A41A + 2138C74772E739E03DFA5FDBAF0C9D01C5AD701CDB152BFD31B37EF7298AB4AD + 491925C84D8D417BB7F0B7E71A14362204499DE3DABC4BE342064FC357B30AB0 + 2BFBA463E067DFFC449166AD4BAB1500F90DCE8B0887C16C80380673AFD373B7 + 6F36E045BF292C4E211F841DFB8EE044FA3AD7815CB6A61F457EDA4ABB190CFB + 7E340B7C0410421DB5C9E064AD2A1C5E5DC6E298B80DE41AD4B5699095BA02DA + 9EFE06F7165F1434286CC939B2FA460D82074F6167CE62165E73085CBDB39822 + 6D6B4AC63116A811351BFEE31844CD8F9468C94238676671DC6BE5CF9C382E01 + B959FBAFB9093969B1446074D4C287036FB67B88B84DB55A8DBBFF34E1E8826B + F0F77F46F04A5D02AE483B4291B63539BDC821900B092A46D6D6D4B2DF383B67 + 1EC5B7B9A70606E437484A45C01702A014520C65909DB77D11DABD1625E971AE + 033F493D4491B6552ACC162F59B884FD33FF1BC255E448F3F3285A7ACAEE3F8E + 1C0249DB2A15668B6316C53C04DA7F8D91A0FC05AAABADC708938A88740814CF + 9A549819E4801CD2DD36EB69E40445280E2D39EE1CB82C399F222D835412CF2C + C44DCD5597EE7594C8D068EC8F2AF03ED0D538FA38918A24D0AB325EBC027C1A + F33FC00A4AFC02DF0C390000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_16_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005944944415478DACDD87D5014 + 651C07F0EF1DEFEA3051018A36EA9829F43EE3A48DBD486282F22268E8A02951 + A9093312C991308633366698208ABCA38526EAA48D89A2665A4E590C0339E30B + 089A20C8F1921C6F1DC7DD71DB3EAB7BECEEED1ECB71A3FEFEBA7DEEE1F6B3DF + E7F93D3B8382A2283CCEA5E002150A85AC3F4AC8BB30A2A79AE4ED8E35C1AFC2 + C551297943D6653370C7EA3936038F5CAC41AB466B15F94881672BEBD1AD3540 + DDD123897CA4C08ADA16687A7466E48741BE18ED328A7773BB00F503B66DC5C6 + B62E74D04016594F5FAF0B799E87940D1C6943502613F4FD3AF375DA2781E8D7 + 1B68601F07A9A791DD3CE4B080F6688815F35EA6F7DAFDDF1FE5AC84A6B7DF02 + 795BAD816AE9AC870B641BE2D2B54626499260ED5D0DCE55DD465FBF9137F75E + 672F3263E73D5C20B721C85E5B11F012DCDD1C9965FEFB563BD4F77ACC73FFBC + 721B7BE217DA06B45743B049B295B8622E9A5A35CCE7929FABAC033FCBFFD542 + 413679FADA77A0D59B986B55CE69D938A986B8A9EE44F4FC57E0E2E4609EDB6F + 18C097DF9E1B1A285CCE84DCF33CE0704BAA217EBF720746831E5B3E9E6F9E9B + 9257869C8490E101E3B3CF61E7BA009B13B4D610A9D1FEBC319B807199A790B5 + 7E81CD0932CB2768082365447E5512348A6A142D398EC91ED399F1CD0565C84B + 5C343490DB100959650C50A31D60AE37159CB1194A1AE28EBA0D1915F1B8A1FF + 0BA33D5D616854223BEC28834CCD2F45BE6AB13490DE6F9458437081232A9311 + EB4BA351D975114F3DEB0EA542096DA7CE8C2C2AA94551F27BF281A436EC3985 + EC4F83ED9260B7F77E06E739F509DE388B9CA68DC3E1E4786920DD1094B0214C + F431C305726BD3D95874EBBAB02D280F6E4EA32561E4085195AD62703ED33D61 + 183058CC21C8CE3A034EC49CC1742F3F8528906E084AD81009BB4E207743185A + BAF4CC3539ABD83AD9F73EC64F1C076DE318BCE6920447B888022BF4E9E875AF + C604DFB13051830F2A84B2491E8AFA09D33C7D159240EE721AF43ABAB322CC40 + 6EBD9E330EB30366A1BEAE011EBA09D81D7A18AE8E6EBC3924B9CB3D9730D1CF + 87B936D2FBD04499CC5031A4A2D915E571D78606924ACCFC11851B9748264880 + A408529824494EEFF10F9D9C370F214472A1ED759D78D3732E72238A2D81EB32 + 4A296143E8B45A1E5098E0DBEFBEC1DC90459224BF0E2CC6B6DFD6E34A6F39A6 + BC3089F96E803EFB8C26030F498A851220C1CD7CF22DE42D2E8693D26968A09C + 04E706FA3337E622D50DF7E0FEB49B19C79610C94DB3A9BA052EED93519E7C01 + CE0ECEE24DB2F69BE394B021FEEBEE425EF232A83B2D139C53E0C300076F761F + DADADC066F1F2FDE1817C98EB3C03BD79BF1E298D970B81E84835B63A48F9935 + DB8F51C286D8B8EB280FB8FDC02F1609F213E183A4C6D8341B689CAFDB4C7CE1 + 5F88ADD947AD033FFAEA074AB89CDD1D1DC84D89427B8FE5D945125C181C049D + 5167F19DCED837E4D8ADABF578CE75068373503A61F3CE03389CB65A3E90942A + FD080F284C900007017CA8B534853852C3069204356DAD28485D25BA0703F68E + E701E522AF5DAE86A2C507537B9643411F4ADCB20AFC604B09256C88E4F483C8 + 4A59898EDEFB0966949CE72518161A2291D280C89891C14D739BC16B08B19205 + 24CB491224C056917330E8BB0988080B7FB0E18D16DF0BD36C6A6A42C38DBBF8 + 7E512576EC3D397CE0CAD40394B02192D28A91931A6315C896185488ACA9AE61 + 0EF351374371646BECC88024C17F9BEFCA064A21855082ECBAE58C72D51F16FF + 93B10A5C9EB28F123644CA8EFD520F89728FCF11191EC97CE6BE21E422C71A9F + 41F1D263A24849A0544388156992A8C5510F8096AF313128B7816A6BEAE065F0 + 11455A058A2DA758912566812C72B869D6D1C8290E7ED817796868E0B2A4024A + 6ABF8955E2E9705C6DAD9035D75A85F845607758A1FD81728BFB86905B9240BB + CA386517E0E358FF03F8FB53FC1404858A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_17_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000056B4944415478DACDD87D4C13 + 671C07F0EF9597A218235B00451635CE296CBAB8CCE9E25E74E0940922E8D4A0 + D30D3775402230A902DB307161894E10C54205E78644944C171D13DD7C594CE6 + 2444345104210C90F21E5BDE56A02DDCEE4EAFDE6B5B4AA3FEFEEA3D77ED7DF8 + 3EBFE7B9168224493CCF4570810441D8F5A644CDD551FD55537DC7636BE85C28 + 5D15B237645D0E03F76F59E430B0F85A35DAF506ABC8670AFCE366037A0C26B4 + EA7A6591CF14585ED3067DEF8005B93924009ECAB1BC9B3B05681C72AC159B3A + BAA1A3802CB2813A8E097B95871C153021E73299B1ED03188CC3CCB12AE782DD + B8BD5F2EC3A0D14401FB39482385ECE121ED023A63B56E58F23AD563FCCF1DEB + AE80BE6F5084AC6FD543B576C1C880A35DAD37EEB5C03838C04BB0A6598F4B15 + F5E81F34F3AE7FD8D587ACD8254F0FC8AE56BAC7362F9D0DA5BB9BE51C3DCDB7 + EA3AD1FAB0D732F6CF9D7A1C8E5FFEF480DCD57ABDB28997245B491B82A06DD7 + 33AF8BFEACB00EFCEAC85FA29E73F66ADD103C074A3717D1B583A6217CF7D325 + DB406E6289B957E0ECD57ABD52CB4B72CF174B2DAF5335A5C8490C731C38D292 + 5BAD554D3AC4AD9C27BA7EC4C078F5251C8809763841B9D5DADEA9C32D6336F4 + 44158EAE3E8B695EB398F1DD79A5D024ADB40D647B2E31BB14D9DB3F723841BA + 84ABD54C9AA1AE4840DFF82A787A7BC0D4A4803AFC34834C3B528223AA55F240 + 6A4A454F081AA8370C31C7DFE45D74184AAFD607AD1DC82C8FC77DE30DBCF8F2 + 782808050C5D0316E4D1A21A1C4DF9D871E0A86AD88CED259FE266F73578CF98 + C03BC522671AE2702A255E1E48F51CC9EDB91D87CF439D102A9B20DD47661831 + D73D16AE505AF5F5F81E67707EB3BC611A3289CED3C8AE5A137E8BBE88593E81 + 8424302EEB3CC9ED392150586F1CF4C1E42993E035E00F4D6431C6B8798AAEA1 + F73755E92606E71F3011C3E493CF1242D9244F469DC34CEF004216C88292D525 + C8DD118EB66E23734C6FA4DCFABDFF132C0C5E8086DA46189AC6E12DE54E5192 + E5C60CF44FA8C594403FE6D84C4DF530396C814A2189160F94C555DA06EE3A7C + 965AF69116A0B0DECE99C400E9A291749287569C8287EB18668C4EEE4E5F1995 + 9C2FEF7D422417DA59DB8577BD83901B592006C6649690DC294DCAFA15F9C9AB + AD26F8FE87EF303764917492F308156E430DA3D7BF98FEDA54E6DC10B5BD9887 + 4D3C245D2C9406D2B8F92FBC07CDAA02B829DC460E944A3068D962E6C65CA4AE + F93F282710161C5B4224374D6D551B949DD350967215EE2EEED28B64DB0F6749 + 6ECF7DAD3E6733411AF8E4668FA0ED2D1DF0F5F3E18D7191EC380B7C407D679C + 3D6E215CEE85E0447AB4FC36B375DF1992DB73C9074F4393B20EAD5DD2092ECA + F3E301A54072636C9A8D142E60CC7C7CBB381FE9EAD3D6819F7FFF0BC94D4C08 + DC57785994E0F2D0100C98C5DFF306CCFD36C7EAEE36E0158F37199C8BC20DBB + 0F14E2D4DE2DF6035519C5C84D8D4267AF78636513A4814F007CA8B5348538BA + 460D944B909F926D64E5ED2A106D7E98D1BB1E04B57372CB2AF0B33D4524774A + 53324E202F6D936C0F06FF3819E12BC264521A9218335B70EC6A854CD90DCC4E + DD085DDFA304338BAE88128C0C8F78DCF066D14D84696AB55A34DE6FC61C5D32 + 8AD363ADFE0897046E4C2B24B953CA02DB65F6C1909FFD19205B525021B2BAAA + 1ADD75EE2853FD2DFA77C788813BF71620272DDA6EA01C5208A59113CD2FA160 + ED1959A424707DEA3192DB73A9FB8FDB04AE8958C3BCE63E219C819405727B8E + 065AAB32AF5D885A15F518287E8C4941B90BA8A6BA163E263F49A455A05C6252 + 09B2401639D2346B29E47497401C5B73D23670DDCE3CD2DA940A2BE94204EEB6 + 97DB75ADB50A0B8CC4A1F07CE703ED2DEE13C2DE92053A55C629A7009FC7FA1F + 191D32FCECB0EFB00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_18_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000056D4944415478DACDD87D5014 + 651C07F0EF1DC2893A2415A048A38E9942D98C4E9336F6A24929099168E8A069 + 69BEA44EA2C92990E164638D2F20A407279AA58E28A58D46BE25DA388DC530A2 + 33BE1CC198BCE5810C1C6F731C77C76DFBAC3CE7EEDEEEDE71DCA4BFBFF69E67 + 6FF6B3DF679FDF1EA81886C1E35C2A3E50A55279F4A575FA4B7DBAAB11614158 + 1E3B1E9A7E6AD90B5297D7C09DCBA6780D2CBC5C8E06935911F94881E7AF56A1 + CD6C83B1B95D16F94881A515F530B55B9CC825319118A81920B8B84F80D66EEF + 1EC5DAFBAD6866811459C57E5E19F7BC00D927E0DADC622673C59B305B1DDC67 + 6DEE598F71DB3E99812EAB8D0576F2905616D92640FA14D8DB1A10A086A9A3CB + 0579D7688276EE24CF807D6D258CC3016B974532C18A7F4DB85076179D5D76C1 + 5C534B07B257BDE539B0AFADA4A6B1034BA68F8326C0DF659E2CF3B53B8D3036 + B53BC7FEBC71177B9267FE3F40DA4AAEDCAA954C9256CA8269A86B3071C705BF + 9529033FDBFBBB60597DD54AC82E5D10FD2234FE7EB2E777D9BAF1D5F717DC03 + 298A3D862F5B895C925B964E771EA7EBCF20775D9C67C0757917E1EB5662A86D + C6D299136493EC13B0B725D74AFEB85103BBCD8A6BD6DD30A90CD83FE7244606 + 8FE5BEB339FF0CF429EFB9079265D5EA8BB16B65B4D709CAB59286C666B4851D + C2D5D6CB1818D21FB65A3574F1C73964C6DE22ECD5CE9607B2A9391B3001ED5E + F38ED7099212B7123B6387AE6C2D3A820C78EAD920A8556A985B2C4EE4FE820A + EC4F7BBF774093B99B9BDB947FCE6B28692535C6FBC82A4DC6DFD6BF10327AB0 + 609E22C79857E3585AB23C30597781A1CB2A064AD5A6F3ABD06669C537317A04 + FA0F94173AEC5853F421B7ACE1634360EBB6B99C42902D9536FCB2F81CC68646 + A92481ABB34F337459D7EF390DDDDA58C5047FEDFC00C3860F85B976105ED66C + 403F68247DF4998B881C0207F3F086C5509AE4D1A453181312A992051214D9F2 + 7CA0544DC809C5E4E849A8AAAC46B02502FA84424192A4F96ACF2CC2F5F62B18 + 1E15CE8DD9D9341D8CC3099542AAEEF547C9EA5BCAC0545D11F2D6C7A3BED5CA + CD912E2F9520019222487192A5D64C5883FF61930B137C4F8CE4431B2B5BF05A + C834E4251C7405AECC2A62686A1BF79C647B5282132855AFE40EC51B6FBFCA5D + 9022499259B187F065F1A7B8D15182512F8CE0E6BAD91D6C77D80448EEF1EC81 + 1220C14D7CF275E8671F84BFDA5F199892FD33F6A5CE719BE0B41953B90BF391 + C6EA26043D1DE8C4D11223F969D619EAA1691C8992B44B08F00B90DE242B769C + 64E8B27EAE3B2500CA2548800F2FF600DA70EF3EC2C24305637C241DA7C09ADB + F7306ED064F8DD8EC191AD8BE5DBCCF2ED2718BAAC62A05282C2448420B9319A + 66358B8B0C9C882FA6EEC356DD7165E0C75FFFC450546ACE71E8D3E6C1D8229F + E094FC70CC8C8D81C5EEFA2BC562EF743B76E766159EEBFF1287F353FB63F3AE + C338B66D9977C0ED878B251324C087002154294D318E54AF80DACC42E4A527A1 + B1DDB5EB8B1314A6E41E79EBBA01AAFA708C6E9F0F15DB94F8A508FC684B0143 + 53DB94F3A300289760FCBB713229754B8CD939DCF8272672AD84EC56B99B770B + 4CCB3C82FC8C458ACF60F477C390103FABE781B7BBCC8BD3ACABAB43E5CD6A94 + 251B30383058F16F5C49E0C28CC30C4D8D0077A72F4473C78304B30A2E4A2648 + 80B4A4A06264B9A11C43ECCFE0E0DC132EFFEEF00AD8A0D007637E881000E590 + 62A8274849E0FCF4030C5DD6F49D87909BB1D82D3071562277CC7F43F802290B + A4CBEA29306976520FD0F5352605E56FA08AF24A84DAC225918A4082223DC95D + 95046F740229B2B76956B2C8517E51389078D43D70DE867CC65D6AFC4A393B0B + 371B4A3D3A57A9E2A212F06DFC3EDF033D2DFE1BC2D39205FA54C62B9F001FC7 + FA0F28C03DFCB27AF09C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_19_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000054D4944415478DACDD87D5014 + 651C07F0EF1E2F872F1964809E34EA980994CDE854DAD88B26A5048482A183A6 + 85EFCA8C6889134CA1D9D88CA668E11DC78B2659A893CE5816996F8D7FA80C23 + 3A6308C19828089C8C77E8D171DC1D6CFB2CEEB17B77FB72C735FAFB87DB679F + BDFDF0BD7D7ECF0145D3341EE7A2F8408AA2145DB4417F6E40BFD598C8615899 + 3809EA4095E80D3997CFC09D2BA6FB0C3C72BE0E06934512F948817F5C6EC403 + 8B1DAD46B328F29102ABEADB60325B9DC8A5F13118A21E2CB8B95F80B61EDF1E + C5A6BBF76164801CB291395E93F4BC003920E07ADD197AD7AAB760B1F5B2C7D9 + BADF15E3B6AF9E8D6E9B9D0176F1903606F94080F42BD0DB1A1CAC82A9B3DB0D + 79B3D584ECF953070E5CB7F714BD7B4D9CCF09D6DF31E174F54D74753B04E7EE + 757462CFDAB7E58103ED7323870FC5D25913A10E0E129D433EE62B37DAD17ACF + EC1CBB78ED26F6662528030EB4CF5DBADE025BB75576EEC64533D16C30B1AFCB + 4F554B033F2EFAD379E08F3E4756E7A2B817A10E0A90BDA6DBDE832FBF3B2D0F + 2430E6E78080FC3E77A1A64932C9ADCB67395FE7EA2BA0DB90A41CE8CF3EA724 + 49C5C00D8567E1EF3E77A1A65990E4155B014C542D4AE71DC7D8B068766C7371 + 05F41BE7780FF4B6C4FA5C6D9311CB132623BB62092EDF3F8F21E121B037A9A0 + 4D3ECA22F38A4EA0283B551CC8C0D8069CA53D8DFFA3CF19DA8DA8B2ED42E7B0 + 5A0C7F761854940A960EAB13595A5E8FD29CF7E581997B7E43C1BA777D4E9094 + 6B9F73D00E68ABD7B3B8F0F1A182B91C728225138773B2C4814C72EC0EC1014D + 961E76FCB3E2931E11E43972C08649C16B1108B5C739A4CFDD6EBD8BFCAA2CFC + 6DBB044D7438EC3D76B77904D9D160C72F1927111D114B790432309AC05C8162 + 35F99B088C1A3D124FDBA2A09D7304838286B84FEA7560DD890FD9672E2A6604 + 7AE9FEF7748572491E4AFF1913C2632851E09AFC13D0AE4F944DF0D7AE0F302D + 6E2A1A1B6EC1D23414AFA837B925F920F27B5C355FC0E8584DDF47CD807BE95E + 27D413926A094165668D72A0548204488A20C3AC51D0A7F425497606B25AAF75 + 5632C9450AAE7345F2A1ED0D1D783D7C260A53CADC810C8C26B0555F1F47E127 + C968BB6F63C7C9162496E09BEFBCC6DE904392245FA6B271155AD8C2FEC1B817 + C6B0E77A9845E2E8B50B90EC13F0104A800437E5A937A04F2D43902A481CB872 + C731A661A6388162F5AA6E2466CE9EC1DE988F34DEF917EA50CA89E3CA15C94F + B3B9B60DEAF6B1A8CC3987E08060CF8B84498E26C92DFBEA27947C3A4F518204 + D87FB33EA8A1E52E22351182313E921BE780B7996F3E13874E43C0F578FCB82D + 43BCCD30C9D1243957A05C82C2448420B1312ECD5B0C2E66D0147C3EA304DBB4 + 47A5810C8C26306F124C488C87D5E1FE6DC5EAE8921DBBF157239E0B7989C505 + A882B079F7411CDEBE421EF8D1D672E87316A0B5433AC1E9C51A16D80F1042A5 + D274C591F219B8E3E019C9048529C9236BAED6826AD360BC792128A673F24B12 + C8C068025BF6C50F28CC4D47BBD97D4B724D30F9BD2491947A3C8C3958DCA427 + A7B0AD84AC56B1F7F60A2895604AF2DC870FBCC3EDBC6B9ACDCDCDB85D67C0C5 + CC2B081D1426F927A447E0E2BC8334812DDF7200C5794B649FC1B87DA3582057 + 9EA0AEC8BADA3A8C703C83B2F9C7DCFEDDE115B02077318C9D7D09E6979F954C + 905F4AD25482F4085C98BB9F26C97140834C1F8C3F1085B4B969EC6BFE0EE10F + A42890C0566FD9075D5E8622607A6AFA43A0FB36E609CA5F40F5750D88B06B3C + 22FD0EE490DEA6D9C020C705C4627FDA2179E0824DC5348111A092AA794287CE + C05B8AE64A55526C0ABE4D2E510E944BCEDBE2EF104A4B14E85719AFFC027C1C + EB3F5FD1FBEDA563805F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_20_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005354944415478DACDD87D5014 + 651C07F0EF1DF2260C490928D2A86326D0CB64D3848DBD6852498208183A685A + 544AC80C2F054E30893336D66809A6F24E1631214E3A63A168A0364EA3318CE0 + 0C2204E3F01A703070BCCD0177BB77ED3EB8C7EEDDEDDE1E2FE9EFAF7D9E676F + F7735F9EFD2DA030180C78944BC1072A140A591F4ACABD3EA36FB5CCCB0D7B83 + 57C3719E52F4869C6BDAC0EFF6AC9B36F0EC8D46A8D41A49E44305FE71BB15C3 + 1A1DBA074644910F1558DDD403F5C8B811F951901F5C1CE70B6E3E2B402D3DBD + ADD8D13B840106C8215B99716CC83302E48C8089D9570DC762DE8446AB27E394 + ECCBB271473EDD8809AD8E018EF1905A06392C40CE2AD0D69AEFA0847A74C20C + D9D2AD46CAB6353307C69FAA3064C6064E3BC1A67FD5A8AC69C1D8042558EB1F + 1CC5F17D6FCD1CB82FF3A2E164FCBBD34E902DF6C75C7BBF0FDDFD23C6B95B75 + 2D3895B0491A38D3266CD0EBA19D18977D7EF2CE0DE854A9C97149458D34F0B3 + BC3FC960A64DB8BD6F143B039F87A3BD9DFC447534BEFAB172EE815C13BE59DF + 212BC9439FBC633C4ECB2D477652C8DC02F94D98ED6FB624691370B69AB05892 + B5DA93502B1A50B8F50296BBFB92B983F9E5C84DDE220D6437F96C37E1868E01 + 4405BEC03461E5E435CB77E3F6D00DB8783841D7A14456E839824CCF2B435E4A + 84383029E71A19CC4513FEABAE1D944E8B6AED318CBA35E089A7DCA05428A119 + 1C37220B4B9A5098FA9E3450CF2438174D58D5378061AF9F49721E2B1708D638 + E42A4D1C4A5313C48109599506F65BCA6DC2299762A1D10DE19BA05CB83AB81A + E74D9B3065A09055934892F3F6F5808ED6995D8B450E36EBF07BF415F87AFA2B + 2C02E38E5F220316A8D6D064EECBFC2BA2C08B63EF63C9D2C5D074B8E265C7FD + 980747C13ADB84DBBB7B91519D807FB47FC3C76F11F406DAB86E0AE5923C13F5 + 1B5679F8296401A5EAC5EF3DB136700D5A9BDBB050EB83AC2D67E16CEF327582 + 9E427CD907B83372134BFDBD27D364E6F406BD116A09A9E87242555CBD6520BB + 07B312836527C802D96291A649B27BAE6EB48A49CE4BF03953241FDAD73C88D7 + 3C362027BCC81C189B5146067CA0B504DF78FB5572430EE93EEE83139B4B71A0 + 2286E0563CBB8CACD1CC3EA4F45369719FE1A02C90C5053CFE3A72238A60AFB4 + B70CD4D334723E0F45CF9096CCB1EF47A904376C5C4F6ECC4776B7F5C36DA1B3 + 11C79529929F6667430F1CFB96A32AF53A1CEC1C2C3F2431DF5E608634D3CDC3 + 8D40A97A257B31014EDD6C12AAEAEA8597B7A7608E8FE4E63960FBBD2E3CE7BA + 1676F782F0CBE168F136B3F7E879034DE951F0C5569B121426220489CD7169B6 + 31383FE7001C585F80C359E7A4811F7FFD2B19F081D612DC141C8471CAFC5D3B + 4E8D599DBB7FB7154F3BBD4470764A7B1CCC2C46E9913DB601AD25C802A70042 + A8549AA638B66401694A87DCD4EDE81EB49EE0BA7C6F01502EB2FE4E03143DDE + 5839B2030AA629F14B12F8E1A11232E0038F165F954C30747388484AB485398A + E0563F16405A09FBB48A5D5B1448534C9B498B42DF880ED68A4D303C34ECC186 + A7CCD64DD3ECECEC447BA30AB7E26AB1C0D95DF22F348BC05DE9C564C0075A4B + 90057265096A8A6C6C68C422EA49146D3B6FF6EF0E5940760FE6A7EF96B50703 + 7F5822008A214DA1729016813BD24E4FFEB290B60B03A3930966945C934C3032 + 2C921CF3DF10B381B40A54C9E883413FF9202A22EA01D0FC356609CA7F809A1A + 9BE1A9F3B6881405D21485ECF4689B811CD2D6349B19E40A3B7F9C8E3C631DB8 + 7D7F3E19C805265F0EC35D55B5D5F3AC55887F384E8416C807CE55714D584EFD + EF405B70A2C047B1FE038FB5D5ED769ED6D00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_21_48' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005154944415478DACDD87D5014 + 651C07F0EF1E2F07C2106680228E3A6602D61F38293AF6A24125012160E860A9 + 51A102C54B81138CE18C8DCD6801161EEF590C1362E98C85A181DAF8470C4342 + 338AC7400C08C7CBC1C881D071DC0BDBEDE21EBBDCEDDDDE718EFEFEDA7D9E7B + EEF9DCF776F7074790248927B90836902008418B324A6E2CE853ADF2F1C0C188 + 20881D45BC1B322E9B81DF246EB31978FE663BE40AA559E46305FE71AB070F94 + 1A0C8E4EF0221F2BB0B963088A099501F9415800DCC48B389BDB05A8D6D97629 + F60D8F63540F64903DFAF3A4C8F51CE48280E945D7C8BC43AF41A99EA1CFB38A + AE08C69D3CBC03D36A8D1E38C542AAF5C8071CA45D81D6D62267111493D346C8 + EE4105B2766F5E3830F54C3D5990146A73821DFD0A34B474636A5ACB99BB3F36 + 89D3C9AF2F1C985C70992C4C7DCBE604A9A2BEE6D6AE110CDE9F308C35DEEEC6 + 99B470FB01154A1D7D7EB4ECAACDD0CC774320932BE8E3EAFA16F3C04F4BFF5C + 5087707176C4C7D19B207672B03E518D0E5FFED06019B8D00ED1D43E84E929A5 + E035C73F7AD3709C535287A28CC84707643A446B971C89911BE1E1EA68D5FA47 + 0E6477884669BFD9245BD58550105254ECBA84D58BFDE9B163657528C9DC6919 + 68AF0E412113C2376089BB0BE7755975FB716BFC26DCBC5CA0E9134112758146 + E696D6A2342B961F98517CDDEE1DE2AF3619D4D3AAB994D57998F49062C9B31E + 10112228C75406644575072AB2DF110EB4B6F83A44A374009FC46EC1D1FA0374 + 725E6B3D39EB18E43A650A6AB2D3F881699206AB3A04751D69A146907332F20E + 47F17608F9C8A821395F7F2F68741AA3F7A290639D1AFC967015FEDE81844960 + CAE9DFADEA10EBF3BCB07CE5322CD5AE8024BA06EECEEE461D424B6A216949A7 + 717E014B3143EA0CEBE7439924CFC5FF8A755E01042F506887B83CF51EB6866E + 464FE73D28FBDCB1497C048E10D3735487E81D1C467E731AFED5FE8D9581BEB3 + E019AD1E3963809A4212032E684A69B30CB4541BBEF5A6815451C867D47E90EC + 3C0F572737400F49AD3D80DB934DFAE47C38EBE623D9D091CE31BCEC1582E298 + 4A6360527E2D29498FB02AC157DF7889DE904152496E24B230B5E2671AB7E6F9 + 55F49C4EFF556B67341C24550C940252B8E0A75F41496C259C444E968142120C + D9B19DDE988D1CEDFF0F624FC280636A3E929DA64C3A04F1C86A3465DF80B383 + B3E99BE4D0D797C8E2CFA23034AEA6CFA9E66D29410A38B7D92C543E300C1F5F + 6FCE181BC98C33C0DEBB0378C17D2B1CEE86E1A71309FC8F9983A72E92259931 + 06A0A5DA52B48C033405E21B63D2BCA7C705B806E38BEDE53821B9601EF8E157 + BF90E59FEFB22AC1F08830A8B42AA3399576CAE258D79D1E3CE7F2228D731039 + E15841156A4E260A070A499002CE01B8507369CEC7516535506882DC942C23DB + FE918218F2C5DA89BD20C0FD93CC2CF0FDE3D56449F61E0C8E094B705B992FA2 + DE8EE4494967624C4BE3829E0AA61F25D4DDCAF7DE8280A7AAAE594C30262AFA + E105AF359A9F9FA64C26436FBB1C8D29ADF0745D6CF61F2093C07DB95564714E + 3C4626341052548214902953D0F9C876693BDDBB2B775F34FAB9C36AA0D004D9 + 25244D214893C0BD3967C9B2DCFD82AFC1D0EF97232E3A8E3E6677087B207981 + 8539FB303A39BB597EF5758B09C6C7C63F041AB7315350F60DD4D1DE096F8DAF + 49A459A05CE07330EC473F0390415A9B66A71EB9C6211067E3CE5906EE395246 + 16E5260806665E89C61D79B3A0D79AABC8C0187C17556E7FA0D0627708A1C50B + B4AB8C5576013E89F53F43A9B6EDCB9190450000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004374944415478DACDD77D6C13 + 651C07F06FDBED3A46C88004F00FB36944218E394CA6E85F1A35C1D7F8C61FB8 + 100CF2E2182004A706171DC9806593D7A032C716948C5583714ECC54AC68C464 + 2420B2B0916D8CB0C85C5B067D5BD7DB5DDDCEBB33BDDCB5CFD3BBDD1D61DF7F + 764F7BBD7CF6BDEBF34B1D8220602AC76106F876C36F96FEABBBE6E5E1CDE717 + 8371391CB70CB867DDE3A681C77FEF813FC41A42DE16E0C93F07108D27E00BC6 + 7491B70578B6CF8FD0C898825CFD4C2172198688B404E4C7CD3D8AD7AE471014 + 8149E480B82E7FE10122D214706BFD29616FD91388F313F2FADD433F1AFE6CDD + FAA7C1F10911C8AA90BC888C1291B600279B5CC689508C23222B5E2DB10EDCF2 + A957D85FFE94E906FB7C5178CFF583E5129AF76E8647215ED73A70E38176E1E3 + CDCF9A6E508A749BFFBA320CDFCD11E5B58E8B57215ED73E60283E2EAF3F38FC + 9369E83B2B9EC46020241F7B7E3E9F19687442706C1C6AA01DE112E3D8F1B957 + 1F68647F131B845D0D56AF5DAA1C4BD7B92540BB621BB06C771BEA2B5E843FC2 + CB6BE9D648F15EEE0517BDDB323437CF8FEE83650E2A506F426CDCF72D1A2A5E + 5680C93C57DD0877D6C3285C54A4BCC664B934E7B85C4EE538CB491EC1AD6D6D + B87AF4A574A0D10931168FA371DBB2B406F904875FFB873067E6124B48C3405A + DEDAF38D06A84E6894C5B21A0FF2A69798465281462704ADC164AC3649051A9D + 101B6ABFC267EF2F872FCC53CF89B031BC567BDC5493BA40BDFD6D341AD1003F + 6AFE85789ED4A4F7128B7BE73F84FCFC7CC348C3405A36D77A505F598AE19104 + F59C383786157B8F01138B5154FC20B255083DE48913DF596B301A0C6A80A406 + A53D713AB3040BEF2F4676B6330D9809691848CB869D47D158F53AF119E4FFE5 + 94E6249C140928FF3588A402C509219026446A82D703F8A4722582B1FF1BDCE7 + 39456C4E9DC920DBDBBF2703D7ED6E15481322355BEB8EC9C080EABC319EC3EA + 832D9AE65263144905AEA9F95AC8B4BF257363E81F1CAA7A43012671E38962DC + B3A008398C0BB42491528606AFA1A0A0200D691848CB965D5F28C0545C329990 + 527A2E7522141EC01D73EF4BDB276D69500A2FF0E8127FF0E4328F68707A4809 + 37C27660D18C1C744626306FD6A31AA4F7E40F64E0AA6A8FA03721D479A5A649 + 6E2E7F7E21F1B92221251C9C17707AD71AF927E68D5854786C5B8B66E21806D2 + 264432ED9D61DC59508299B3E7CA6B3D642A4EB92329482A706555B3A03721D4 + 39DDD3850F9B7AE551E69E31272372A0BF8B8823217D4383C6807A0D4AF1B301 + 9CEF7367445EE9BD0857762715A7462EDDDE8C6939C01F3BCAD381A5954704DA + 84C8948ECBDDD426255C9C3F830B073665C4D19206A44D08334DFEDDDF2D37B7 + C03D0D2D3B574D1A47050622936B50695204551FE993BF38D1E0B08C6BDA548A + BA86567B80CBDF3B2CA8278415E4ACD9611997C3B8B17D7F33BEAC5D3B3580A4 + D80AB455A68A2DC0A998FF0081E98EDE774B18BF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D44944415478DACDD76D5014 + 750006F0E740385E725067D43E34509365131236A3599F6AD4C6B4A86C18C641 + B3498C0843E1501B621466309910089077419A86BC2923420C45112A2B9AA944 + 520A109349F2EE24EF95BBBDDDF3D876D7B99B3B76F76ED9BB1979EEC3EDFF76 + 6FEE77CFBEFC7715344D632E47E10954281492BEA46AE80BE85F3DBC3406EFBE + B212CA7921A23FE872C90696A5BF201B78F28761680D844FE47D059EFB7D1C66 + 9B031AFD9428F2BE027F1DD5C260B1BB91691BE311AD547AFD7850809453DEA1 + 78F3B6097A06E8428E33E3CCA4A7BC90010173EA2ED0E5196B61A3A6B9F1FEBA + B3927125EFBD0492723040C203493148B31732A8C0D9262A3C0486295210B92F + 7975E0C03D35E7E98ACCF5B21B1CD598D1F3DB1808D2E1B5EE8ED18ACA5D2F06 + 0EDC55F12D5DBD6793EC06D9B0BB79E0FA2434772CEECFFAAFDC404DF6CBC103 + 1A6C4E6E7CE058B76CE8BE6DEB30A13370CBEAF3977C03731BBF93745A92840D + 4569EB403AF97F4819162AAF518713873EEDF10F94727DCB6FEEC547696BDD0D + 96AABFE7DEED24C9FCD0EC2E3D45EF6C702FB37B222840557D2FD8B3D805F46C + 2190268306CCAD3D83B2CC8DBC06DB0606419A1F99356C66A262B4183A9AA110 + 05FA9B21F21ACE7A015D597FB08199579F41FC8A04F767E1F3BC9B0C0D0D712F + 8BDDCCB47774E0C667AFF381CCAE933443500E121F676C82DE76EFBB9FA87B11 + F34004770C9EFAE36F2C5EB02620A464A0580E3475730D6A4D146F9DC14A20B9 + 588D98E855B291A2C0ECDA1E493384DD66C391AC24E82CF7B6ABFEB28F6B9060 + 26068AB483625E7D7FFD2BBB4951E0FB955D926608555527AA725E857ECA21B8 + 9EBC4B33D396116F56B4CB6AD22FD0DF0C61359B5096BD996990E4C635277FE2 + 6DA38C8C828D34A07B80C063CB5623363656325232502C79B5A751BE3B099316 + 87E83604B317B696B500D32B9190F834C23C10FE909D9DA7026BD0ACD7A34495 + 82FF4C566E5CDFDECFDBA6E7DA08A2C3D7E0892713111616C203FA424A06FA6B + 5063E49FC5D45D12DBCA3FE79A63716C5820F72E11290ACC28EDA0EBF7BEE6BE + 7CB093B750F4B77528DFBF155AA38D1B377DF3B360739E990DB2ABEBB43030BD + B49D6EDCBB59F0FAE699C2EA3614E7A4789DC542CDCD8C54A4287067F1577453 + 5EB2A4068B55A9CC6D3BC18DAD563B761FFF1A4E47221E5D9E808870F11B0517 + 92CDAD899B888B8BE3212503C59257D586F2DC14E898EDEC1489B4A327DC3857 + 7C21D90CFF390883711C0F2E799C779D0C4A836C9CD34E0C184DCC43D0B35E38 + 7F48166721FAB1627E04064DD358BAF0392F64CFB933C2C0B78BD474C3875B04 + CF4EA1BC51DCCC3517BB2C5EF0B81242B238845CC6C5C33BB947CC498B897E3E + EF84D78C231978A4F5824F60D7A0110FC5ADC282454BB8B13FE44C9C6BFD4CA4 + 28707B412B5D9F9FEA7386F0CCC5E1AB38D83CC24D65CAF98B7D22C7C7AE0AE2 + 84909A5B13D280FE1A64A32574B834AAF489BC3E7205A16183A2384FE486C256 + 4446003F1ECAE40353F35BE8A682B7241F83AEF45F1B126D92C5D9A85F70B932 + CB276E66049F4958604DFE76F70598BD53961AA126FF191BE29A5BAE8C84FAF0 + 0EC938BF409D69760DBA9B6440452DA3DC8963D64F72B8E6AC549434B60707B8 + E58363745DC10ED9404FE4C245460E1711AE4461452BBE28499F1B40A1041518 + 54994782029C8BF91F66EAD6DE3C3C43B30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D04944415478DACDD76D4C13 + 670007F07F296D11461012641F16D832379721E2129D5BF6616EB239368DBA90 + C5A1714E1018CEE89C8C210E4C70903144C8C67811C40DB0D94B82A803150433 + E730CA9C4499801888122934F6155ADA02B7BB23D7F4DABBDEB57491FF97DE73 + 57D21FFF3EF73C5709411098CF913802251289A83FDA57D931A7FFEAE98810A4 + AE5B0E85BF1FEF07322EAF814752567B0DFCF58F5EA8B466B7C8C70ABCF0F710 + 0C261B4634E3BCC8C70ABCDEAF82D638694726C5472348A1607DB84F80D669EF + A6E283313D342490410E91E3F4F5CB58C839013F2BBF4814A7BD099375861E7F + 517E4E34AEF0937760B1DA48A0D9016925910616D2A7404F1328F78376DCC289 + CC48583977E09EB256A2243DCEEB06FB470C68EB1A80D962635D7BA49B40E9AE + B7E60EDC55F23BF1FD9E77BD6E900AF535FF734F8D914746FBB9CE5B8328DBFB + 9EEF805AD3343DFEEAD879AFA1195BD76078544B1F2B5B6FB8077E5E7549D46D + 69319B70707B1CB41366D679B9BF02614FC8BC6BD4368DC327DA848162D6B76F + 945790F9E16BF606AB9AAED2AF63461B8DF724793BD7DA8FA96FC227C0AF1B2E + 217BCB6A3B9089C13C85296A6D9C9E445848B0C72DFE6F40A6C1DA2BD760313C + E331CC3981212AF47C9726E1050AED108575EDE41C5CE3D2605C4E25B9AFBE8C + E8A531F673727F29EB3D52A99FFD98EF61A6B1A909833F6D7405EEAB6817B543 + 586D16646E790346EBECB8FAD45F88080FC5A4D98C5FAEDF41F8C25573428A06 + F2A5F86407DDA04A6F659D57C8A450E9C69150A04448D00AAF91BCC0BD3FB489 + DA21264D266491CB0C5783667273B05A2671FECEA0D74DF2023F2D6D16B543E4 + D7B52267FBDBD08CDB38AF4F5866A036EA905472CAAB260581423BC484418F83 + C9F1AC069D4335AAD3E9D0D8A5C5738B5722323252345234902F453F9E437652 + 3CBDEEF1856AF183C2E3C0CC72C4C4BE049903420879E6CC69DF3438669C0536 + B45C73794FC7C07D04C896E18517632193F9B900DD214503851A541B5DE7A089 + BC41B61637D0CD51382A14907E1589E405A615351115FB37D8970F6AF3E68A41 + A34156EA7A6874B30F0BD4530893B6BB7D0892AFB2E39878826C6E3ECB0D4C29 + 6A24AAF66F7259DF9C73F4440BBEDCB98E75175BA72C2ECD39472C9217985CF0 + 1B519D9520D8A0666C14075237424F3EB653B1D8A69051771AD3B6583CBB2406 + 017229F8C220A93C1C7E80A8A82817A468205F8E1C3F4B0237D00D32CD313826 + EE90547AFFED8656378427173DEFB24EFAA441265DE47C0C94BFC2C20921299C + D1DC89A5C101E8D6CF2022F45516B2ED420B37F0E33C25517960334674EE1B64 + F27E410DDD5CE4E268CE79C585A470F0BB89CBF9C9F44F4CB5514FBC9E7592B5 + E388067E5B7FD12DB0B95B87A7A2566061D8227A2C8474C631D79D91BCC06DB9 + F544457622E7FAC695CBBDB79153D3476F658AE070B7C8A181DB9C382EE4C8C3 + 617140A106A9A8CCA3B8D1AF708BBCD7770B5259372FCE11B9F6503D1604007F + 1E4E77052666D712D5B91F899E834C3AEFF6F03649E14CD6ABB859BADB2DCE39 + 9CBF49286059F636FB027C54D92E1AC9D5E4FD811EBAB9258A0550E6EF108D13 + 048EEA3D6BD0DE2409CAABEDA76F1C83464DE36A7627A2B0AAD137C0CD99C788 + F2DC1D5E031D91A1613A1A172057E050493D7E2E4C991F40AEF814E85399437C + 029C8FF90F8296D7DEBFB650E40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E34944415478DACDD77D4C94 + 750007F0EF1DDE1D42865A624D07B42C5A88C8861935CB8C66AF3382812367CB + 0CE92E8619D68C256E38D9480D6627EF518DA4C242C428F410021B6E19720905 + 8883299343C6BD71DC2BDCD3F33C74B73BEE79EE9E7B69F2FDE779BDDDE7BECF + F37B7EF7F00882C0420ECF11C8E3F1387D685F799B5FBF2A6A6518F6BCBA1EA2 + 457CD62FB4B97C061ECBDCEC33B0BEA31F0A95C12DF2AE02CFFF3902ADDE8231 + A58E157957817F0C2AA09A32DA91EFBC14835091C8E9CB030234CFFA762BDEBA + A3819204DA9023E4B6F8B5754E48BF801F94B612C7B3B6406FB6D2DB1F95FECA + 1957F4DE8B30992D24D0E080349348AD1332A0406F1322E443A5333122F7A76E + F01F9823BD40148B937C6E70704C0BD99521184C16A76393EA6994485EF01F28 + 29FE99F822E7659F1BA4425DE6AB372630363965DFD7756D18D2BDAF040EA8D2 + CFD2DB9F56B6F80CDDBFE3798C8EABE8F5BA0BDDEE811F56B4731A9626831E59 + C989305BCC4EFB85022156DD7FAF6F8D5A6671F82B99672097E7DB89C6ABC8DE + 166FBFC45FB7F4D0CBD13B6A687446AF6005EF6EB5AF5357222040E98F5D90A4 + 24DA2FB12D4A9D05E61913D9068155F7DD0337532D63FE37E077AD727A59D2F2 + 1B4CDA87BC423125244C81BE13593C56A0A719A2F2CC65C606930E9693F3EA13 + 88591B6BDF275C14E4744E5010DFBECED67043632386BF79DD15B8AFEC22A719 + C26C31213BE569680D73E751A32F3AEA4118A7B5A8E8E8C58AA51BFD427206B2 + E56453377253125C1AA4A250EB905A5887B0D0049F91ACC0BD27659C6608AAC1 + ACE4A730659C03D6CB7AE806F57A3DC63526984D46B4FC33EC7393ACC0F74B9A + 39CD10D2D39DC8497F861EB54C5193CD8E2B5510979DF5A9498F404F3384916C + 4A9CB609EAFF803FB5FFE5724ED4EA70A8D59338F5FB241E59B3011111119C91 + 9C816CA93A730992D44DE42099613D67DA64455AD19780753D62E3E221704078 + 4236359DF5AFC169AD06D9195BDC36D8367413C1827578ECF13808047C17A03B + 2467205BA43FB44392B699B1410379FFBE79AC866E8EC251A180F49223921598 + 75B49128CBDD068566EE4F003579B335284E7F0ECAE9B91FD2D421B71F935D1F + 40A870A31D678B37C8E6E673CCC0CCA30D44456EB21DC896AAFA364832929C46 + 313507EF38FEAD5373F3C315C90ADC5D789AA83A90EAB141AD52893DE949D099 + E61AE4592DC8AD3D07BE351E0F47C722581804B6D890546E8FDE426464A40B92 + 33904B83B6E6662D7134CE1677482AFD7FCBA1528FE081F0475D9E93016990CA + CC8C0557C8F510E1934E384F480A3765E8C2DA25C1906BAC58B92CD109293BFF + 0B33F0ED823AA2FC93ED1853BB6FD096370AABE9E622D6C430DE574C480A077E + 0F3A8FECA65F3127A634C4B3074E39CD389C819FD5B6BA0536CBD5581D9980A5 + CBC3E96D4FC8F938DBF1F94856E0CEFC5AA22C2F83FC80055CD2D9DF8B83D503 + F454265AB2C22D7264A89711C7841CBB3DCA0DE8A9412A0AC338BA07456E9137 + 06AE21482067C53922B71EAAC5E260E0D261B12B3023AF86A8CA7F8BF33D684B + D7F53ED626299CDE7C193D25D96E71F3C3F84E4201A5793BED0FE0CFEB2E7246 + 32357973A88F6E2E5AB41875477679F506E51638AEF1AE417B9324A8A066901E + 385AE5048DABCECE405145436080DB3FAE244AF377F90C74442E5BAEA671C142 + 110E15D7E2FBA2CC8501644A40810195392420C085987F0154BADDDE6CC9EBB9 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004ED4944415478DACDD77D4C94 + 051C07F02F771C873287DAD0B61AD0322C119012C9FAA366322164BD8C353D81 + A61911C634D39AB1C40D078BD46085BC28D10AB9B16A0C295EE4454B36A81421 + 44793348191C6FF70A77DC1B4FCFF3D05D1CF73CCF3D77DC26DF7FEE9EE79EDB + 7DEEFBBCFC9EC78320082CE7782C047A7878F0FAD2D1A2AB4BFA5781EB7DF1DE + EE2D107B0A587FD0E272197836F96597813FFCD6039942C7897CA8C02B3787A0 + D61A312A9F66453E54E09F7D322834B356E43B31C1F0118B6D7EDC2D4083D9B5 + 43F1C1B80A721268410E91CBA971A136C825013F2C6822CEA5EC80D630472F7F + 5C50C71B97F37E34F4062309D42D401A48A4DA06E956A0B359E92580625ACF88 + 3C1E1FB174E0E1FC06223775A7CB0DF68DAAD17863003ABDD1E6B329E50CF20E + 452D1D7828F717E2EBC3AFBADC20156A37DFBA3781D1298D755D6BD720F28FC4 + BA0FA8D09AE9E5CF2ED4BB0C3D9EF00A86C714F47B69433B37F0A3E26BBC4E4B + BD4E8BBD51CF426F34D9AC178B3CB129D0CFB5468D669CFEB6D13190CFF5ED52 + F35DECDBF18C751757B6F4D2AF7FCB94189B503805CB7C7797F53DB527DC022C + 6FF80B92A850BB63F09F490DCCA639A8C83334C8FF11780A044E61DD06FCBEEE + 1612A3C3ADC7604D5B1FFDFA79753D3453814EA198B2D25786EEAF523C58818E + 26444543870DD0929D278BC8B9BA0DC19B43ACEBBC3C8536DB0885FFB7CA7633 + 53595585C1EF5EB7071E2D6CE635214C46231248A0563FBFDDE5963BD81EF204 + 945A25CED777C2D767EB9290BC816C91367591033ECCAE412A32E534E2B3A54B + 42B2028F9C6FE435210C463D92A29F83727A7E12D4FDDE4B37488D2DD9A4823C + 4966517F77107EAB235D42B2023FC8ABE13521A4753790181B41EE52FB06E7E6 + E630A99AC1B85C8DB4925A979A740874342166B55A486222A09D35591B5C9CF0 + A0C720932B50D23482A73644C0DFDF9F379237902DE5B57F607F5C24D43A13EB + 3633E409F456CE3764A55B1012160E91D0F69AC885ACAEBEEC9E06E51A03BD7C + ADBDDF6E9BAB03F7E12D0AC5D39BC2201209EC805C48DE40AE062531DBE8F9C9 + D51C85A34201E9579E485660CA992AA2F0D86B90A9E69BA18637E3EE53AB9018 + F70263838DFDBDF0F18AB4E22C71065953F3333330F94C25517CEC0D2B902D3F + 35DEA41B5C780CEAC8337FDFD9529BE616872F92157830FB47E2E28978A71BA4 + 6EBBB22A7F85481082273786C0DB4B08B658905446861F202020C00EC91BC896 + 8ADA56EC8D7D111AB24183498F847397603686D1384BB890547AEE7442A11CC2 + A3EB82ECAE936E69908AD96446DBF818F910F4BC0DCE1192C26974ADD8BCCA1B + 9DAA39AC5FB3DD06D978A59619B83F534A147DBA07A34AEE062D7933BB846ECE + 7F4330E371C584A4701074E07AD641FA117342A3225E3A516E33717803BF286B + E204D6742AF178C056AC5EBB8E5E76845C8CB37CBE18C90A4CCA28230AD325E4 + 178CE093EB3DB771B2A4971E65E2557E9CC8A181DB8C3826E4E8C8303FA0A306 + A9C8746368EF137322EFF5764128EA64C52D44EE3A558615DE40CBE9547BA024 + BD94B898F136EF63D092D6FE6ED626299CD6D0868EBC344EDCE2303E9350C0FC + F424C8FFBBCFFB52DACC1BC9D4E4FD816EBAB98DE21590661DE08D73081C5339 + D7A0B549129459DA479F386AF9048D2B499320A7B8D23DC03D9F5C200A320EB8 + 0C5C885CB35649E3BCBDC438955B868A9CE4E501648A5B816E952D885B80CB31 + FF020A13E0DE91BAEA000000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E34944415478DACDD77B4C53 + 570006F0AF402948086A22EC8F05303070F2729B0C740FC9E602139C6E218B61 + C665CE3186333EA65B1C999860244165908D2128C32C6C648F84212F15C44D37 + 60D98632EDE40D5346CBB30FA0A52DE5EE9ECBDAB5F4DEF6F6B1C8F7CF7DB4A5 + 3FBE7BEE39BD028AA2B0942330050A04025E1F3A5472CDA9FF2A38C00F6FA7AC + 83C8C38DF30B0D2E878167D2131C067E7BBD135299DA2AF28102AFFC3E08A54A + 07C9E43427F281027FED964236356B44BEF962047C4422B32F770950AB776C28 + DE1F556092061A9083F471E6D66833A453C083C557A9FC8CE7A0D2CE33C7EF17 + 5FE28DCB7B27091AAD8E06AA4D905A1AA93443BA14686F9679BA4136AD61451E + 498D751EB8BFA8912AC8DCEC7083DD12259A7EEB855AA3337B6D423E83C2BD2F + 380FDC5B50477DBA7F8BC30D9290CB7CB36F0C928929E3B9D6DB03283A90EC3A + A04CA5678E3F3A77D961E8919DCF636844C6EC5736B65B07BE57FA03AFDB523F + 37872D71A1D0EAF466E77D7DBD11BD3AC0B146E9BF75E242936D209FF9ADB6AD + 0F29F121C64BDCDC3EC06CC50352660AB127396F251AF7C9957009B0A6A50B5B + 37865B8CC17EA90273940093F269AC0DF68748E86E17F67F031A1ACCFAA606CA + F160BB506C59E62785F8930C0127D0D60A71B1A507A9CF84196F1243361F2BA1 + D7D527111119653CE7E961DEA2BBBB9B719FEBC74C55753506BED86E093C74B6 + 99F70A9114170EB576611EFBF1663F12634330A156E1D4F7BFC0CF67BD5348DE + 40AED4B57563DB53E198D198BF4FE421C05FE35348CDAD740AC9093CF05913AF + 1542ABD3E0A5A7A3A1A097271232C1263C1E0AC5B41AFDC313F4761697EF0E60 + D5F23887909CC0770BEB79AD10A4C1E4F83068E62CC72A99CFA4721546C7E538 + 78E192434DDA04DA5A21D81A5C9C0D51AB3134318A9286BFF148682C02030379 + 237903B9D2F0B318DB374542A99EE37C0F69F795DC32607E1DA2621E83D00461 + 0B595373D1B90667552A24D10D6AFE5DEAD81ABCD67B0F5EC268AC591B03A1D0 + CD02680DC91BC895DAEB7F20E5D9FF80A62177F6AB799F33CD111C0901325B9E + 484E60C6E96AEAECE16D902A16C61659BCED6DB0A9A70B3E9E71469C21F620EB + EB6BD981E9A7ABA8D2C32F1B815C696C15330D9A8E41357DE7BF76A6DCACB9C5 + E18BE404EEC9FD8E3A7F34D56683334A0592139E303638ABD122BFBE1542B728 + 848447C1CB93FB47820149323C741F4141411648DE40AED4B5DC45F2C647993B + 55A599C5CEFC2FA1D7C5303843AC21493AFFEC804C3E8887FCC32CE649973448 + A20785B66109FD10146F86B38524B829752B227DBDD0A19847C08A0D66C8A62B + 0DECC037722AA9920F774022B7DEA021649E23CD058646B08E2B3624C1C1ED16 + 6E9CDCC33C628E4D29A84D47BF325B7178034F555CB50AACEF90E3E1A0F558BE + D29F39B6855C8C33BCBE18C909DC955D419DCD4AA33FA0039FDCE8BC8363655D + CC5226F25D651539D87B8715C786940C0FF103DA6A9044AA1E417BB7C82AB2AF + EB36DC851D9C385364E2F10A787B013F9DC8B404A6659553E7B35FE73D060D69 + ED11733649702A6D1B6E15EEB38A5B1CD66712022CCADA85C9E985063FAE6CE6 + 8D646BF25EAF98692E5CE48DCA93BB79E36C024714F635686C9206E594773337 + 8E72728CC195ED4B435E69956B803B3E38471567EF7618688A5CB152CEE0BC3C + 45385E5081AFF3D29706902D2E05BA54661297009762FE016AA8DBDEB9C9FB07 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004DF4944415478DACDD77B4C1B + 750007F06F0BA530B2B02D61338B16A730A6504084111210C366365F51176216 + B2CC3827227361CE4DB3116509CB48709B1045D803B71894F8880499A85B8746 + 48C0170381C9A31BCFAD055C5B28F45DCEBB23AD3D7AD7FE686BC6F79FBBEBD1 + F6C3F77EF7FB5D451445613947E40A148944446F3A78E627BFFEABFBD745E0B5 + 6792200D160B7EA1C3E533F054DEE33E03BFFAA50F6AADD123F2AE022FFF398C + 1983152ACDAC20F2AE027F1F5043AB373991AF3C198770A994F3E501015AECBE + 0DC5B1C9696868A003394C1F173C9BC041FA057CB3EA2A753A3F1B06CB3C7BFC + 76D50FC4B8B2D7B7C36CB1D240A30BD242236738C88002979A1521626867CDBC + C8C339A9FE030B2BAF50E5055B7D6E70403503C51F4A18CD56CEB93BBA3954EC + 7BC27FE0BEF2EFA88F0A9FF2B94126CC65BE76630AAA3B7AE76B6DDD43A83CF0 + 74E0805A839D3D7EF7DC8F3E430FEFDA82F1092DBB5F77A5C333F0ADB33F13DD + 96769B0D197219CC563BE7F5C88830A43E749F6F8DD29F75FCA2C23B90647E6B + ED194546BCCC39CDFCF6F718BB6DEF9FA4DBD0C166B510C34A5EDDE6DC67AE44 + 40802D7F8D203321CA6D0C32837F6ECE8439A30909D1EB2195042DA9C580019B + 3B47909DF41FB063609CDD165EBC04CDE4FA25A1F8B222428DDE0FF34582406F + 2B446BF72807E848E6D16A7A5DDD8CB878B9F3B590606E8B414162E7BED0C34C + 7D4303863E7DDE1D78B0BA99788548976F80C9BC30D6AE0DDCC28EAC387AD235 + A3F8CB664484A7F88524060AA5FDFA187B17CF99B97F270D1661E41F3D724AEB + FC420A020F7CAC205A216C562B329337BA35A8D21830784B8B19A31E8D1D4A44 + AE4AF30929087CA3A289688568EE184276F206986DEE639599CFD43A0394A393 + 3E5F6EAF406F2B84C56A4656F2264E838BB33D2D96BEDC9338F5CD1062A25321 + 93C98891C440A1B4762AB1252506B366E1A68D163B7694D600F34990273E0289 + 0BC21BB2B1F1DBFFBFC1B6B16116B7E9E14448246237A0272431D053831949D1 + 6E6B3113665C3A9A63704C1820BB25440A02F34F3650D5879E837A7AA11966F1 + E68BC960C0638FC6D2D3CCC2F35CEF4DB5F39C62B01FE121694E9C234B413635 + 5DE207E69DACA7CE1E7AC109144A4BD74D6CA5C7A06B83CC9CF862D9279CE616 + 87142908DC5BFA3575FE480E5183E94931B0D81680B67911AA15BF422296E3C1 + 58394243841F121C4826B7C7C7101515E58624067A6A3033F10176BC19CC26EC + 3AFD19ECD64416E788272493BEEB5DD0EA8671CFDA8D6EF364401A6462B759D1 + 36A14668D0660ECE1B92C1E98D6D885F198AAEE979AC5B9DCE412A2E7FCF0F7C + B9A48E3A737427543AB2074EE66E659A9345C7F18E2B3E248383B8132D27F6B2 + 3F31A7F4D354D691CF392B0E31F0FDDAAB1E814D5D3ADC1B9582556BD6B2C7DE + 908B718EF38B9182C0DDC5B55475512EFD062B48D2D2D783F76AFAD9A54CBA32 + D2237258D9C38BE343AA6E8F9301BD35C8446D9CA09FA8A51E9137FABB1124E9 + 12C4B922B71DAB455828BD181C2F7007E6165DA0CE17BF443C061D691BEC156C + 92C1192CEDE8ACD8EF11B738BCBF49186065D16E6866171AFCA0AE9918C9D7E4 + A8B2976D2E561A86BA137B88715E8113D34B6BD0D9240D2AB930C0DE38339A29 + 1657B33F176567EB0303DCF9CE39AAAA788FCF4057E4EA353A16171A22C5B1F2 + 5A7C5196B73C807C092830A032970404B81CF32FA716E0DE48F4307D00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004DA4944415478DACDD77B4C1B + 750007F06FDB95B291856D66307596E16098950ED03D62A2D9E223736EBE96C5 + 2CC4CC881B2273D9C44DB31165918525B8294411C6408C2182F141D81475639B + 912568A6300245CA60346BA1D0863E78D5F6DA9E77876D7AED5D7B7D24E3FB4F + EFFAC87DEE7BBFDFFDAE229224B19023F2058A4422413F2A3A772DAAB35A939C + 8837766543B648CC7B408F2B62E0D9FC6D1103BFFD7D00E3665B50E45D055EFA + 5B83A939027AD30C2FF2AE026F0C8EC33CFDAF17F9FA0E05126432D6C1630274 + B8221B8A5A8315260AE8416AA8FDC2E736B0905101DFAEBE427E5CF004E61C6E + 66FFDDEA5F04E3CADF7C06760741016D3E4807859C6221630A0C374BE2C430CF + D83991C7F66C8A1E78B8EA325951F854C40D0EEAA7D0FED7106C7682F5D9A465 + 1695079F8E1E78B0E227F2B3C3CF46DC201DFA32770F1BA19F9CF6BED7D93B82 + AA233B630734CFB998FDF7CFFF1A31F4D82B4F42376166B69B2E770507BE53FB + 9BA06949BADDC84C4D02E1378BEF591A8F6DD9A99048849D28AB51C285535FB6 + 87060AB9BFF58E18A0A4809EDB8CFA8E11849BC49FFDA3506B4D70120EC1B0D2 + 03DBBDDBF4958809B06B78020FAF4D0EB80FDE504F504D38619AB2E1B10D2990 + 492561B51873A067920C688DCCEB81EAEF6132DC17168A2B4B12C7A1FAB440C4 + 0B0CB542F4690C2CA0278F9FA8A1D6D5CD50642ABDEFC52D62B7289188BDDB7C + 0F332DADAD18F9EAC5406051CD55C12B84E2C15570BAE70FA0D6E891B7EB1118 + AD1614355C4362C2C6A89082817C51510D66510DCEDAD9DF4B90899975F6F9B2 + E6A890BCC0239FB70B5E21B81A1C33CEA0FBB601166A19BBD0A5C2CA655B2242 + F202DFAA6C13B442740F1990939604BB3370ACD2F7B3E1511374E6497CD8DC11 + 51932181A156082741202BE301CCFE7F221A9D21E03BBBB72AF08F6E0C677F18 + 417ADA26C8E572C148C140BEA86E8F5297F87EB882CC7627B5DAEC2CAD03DCD9 + 5066E540EA830885BC78F142F40D2AD2E5D42576F136D8A9D530B887D667412A + 15070083210503F9D23DA843CEBAD5CC78F30F3D2E779FAEF7E2E8D040E65520 + 92175870A695AC39FA02C6ADF36B29BD7873C541D8A14C5FC3D960FB2D3512E2 + B678719E84836C6BFB911B987FA685AC3DFA9217C897FE117D4083F43DF1E5F2 + 2F58CDF947289217B8FFF47764DDF13D6137483F193777F6402A56626D8612F1 + 71FC0F091E249D319D162929290148C1C0600DAE4FBD97196F4E6A26D3CDB988 + 2C06E74930249D81FE1E982D1AAC4A5A17709F8C498374DCD425BE3EAA45BC64 + 330B170A49E3A66D9DC8A41E707BAC6E242F7F94856CBFF43337F0B5D226F2DC + 89BDD05B843D70D2B3956E4E9EA6E01C575C481A07F14D7494ED67FE621AA7AD + E4D6E35FB3561CC1C08F1AAF0405B6F558B03A652396AD4862F64321FD719ECF + FD91BCC07D258D644D712EF5030242D231D0870FEAD5CC52265BBA32285233D4 + C789E342EAC774C280A11AA4336E9B40D7A02C287258DD0B89B48717E78BDC7E + B2118BE381EBA70A0381B9C50D645DC9AB82C7A0279DB754BC4DD2B839C71FB8 + 59792828CE3F9CFF49686055F13E9866E61BFCA4E9AA602457937786544C7319 + B2C5682ACB0BEBBF6850E08435BC06BD4D52A0D2864166E24C998C0CAEFE502E + CA6B5B6203DCFBDE79B2BA242F62A02F72F90A0B838B8F93E1644523BE29CF5F + 1840AEC4141853994F62025C88F90FD443DFDEA50712350000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'CopyLocal_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004B14944415478DACDD77D4C1B + 651C07F06F5B4AD9C878CB80C11CA84C6764C8D4BD448DD138CD9CF33D932CC4 + 6C714E86E0B21737CD4694451696E0A610455E06CE181C1A4D904D513736E7A6 + C1648A10060203E906D296B2BEF152684BCF3E477AF6DABBF6E9CB32BEFCC1DD + 95E63E7C7BF7FCAE12866130972371054A2412AA37EDA9FA39A8FFEAD6C4686C + 7F7A05146152D1133A5D01038FE63C1A30F0EB0BDD50EBCD5E91371578FA4F25 + 4C9356A874E3A2C89B0ABCD4AB867E6C8A43BEBA3E1D910A05EFE421015A6602 + BB1407478CD039804EA4D2B19FF7CC3D3C6450C0DD1567990F721FC3A4C5CEEE + BF55F12335AEE4F527316DB13A806617A4C58134F1902105FA9BF9E152E8C7A7 + 0591FB36AE0A1EB8B3FC0C539AF778C00DF6AA4C68FEA30FE6692BEFB5EB8609 + 94E53F113C30BFF47BE6E39D4F05DC2009F998FFEAD742757D8C3BD6D23180F2 + 5D1B4207D44FCEB0FBEF1CFB2960E8BE97D76248A367B7EBCFB47A07BE597D9E + EAB664EC7624C747791C4F8A8DC4DAFBD3A090CBFC6FD43A83439F35FB06D2AC + 6FFD2A03D2926278FB24E7DBAEA263400B9BD5420D2B7A6D1DB74D3E899002DD + D7C14B3D1A4C98A7A0359A036AF28601C9C24B9275F4047423C97EA184323F5A + 8DCE8F7225A2405F13828008D0FD2E7EF840A563AEAE46FAF20CEE587818BF45 + 994CCA6D8B3DCC34343662E0F3E73D817B2ACF514F882509D1B030B327D368F5 + D89DF5A063C930617B5513A223570685A4068AE5EAE818D212A360736B3A4C26 + 61DB7DB6F8CBA090A2C05D9F34534F08F706F35F7A08AA11037EEB1A86C131C6 + 4EB676223E664D404851E01B654D5413E21FB511B72F8AC6B44DE05AB5DBD075 + 4D0FA55A8FE2865F026AD22790664224C6C772DBA441F76C597F1F3A075578EF + 8BBF71C7D255484949A1465203C5F2EFA8098B174679FD1B32193614D5381A5D + 818CCC7B217741F8429E3A75F2C637D832A8647177DD9D09B95CEA01F486A406 + 8A6540358ADB9216C22AB05E9A2D3378F1702D87232140F637255214987BA491 + A9DCFB1CD4C6D9594A86B7BF0D365FE94164F81A0EE78C3FC8A6A6EF84813947 + 1A98EABD2F7040B10C6A746C8336FBFF77FBC4B41D59259FF29A730F2D5214B8 + EDF0374CCDFE8D3E1BB459AD589C9CC0ED4F99CDF8B6AD17726906D296652022 + 5CFC21C18924191E1A446A6AAA07921AE8ADC1258971BCE666AC992CCE196F48 + 92EEAE76E80D4A2C4AB8D3639D0C49832476C7CF05A51211B2D53C9C2F24C18D + 995BB07C4104DA8D7624C63EC043369FFE4118F84A513D537560135406BA074E + 72B792E65296A60B5E5742488283B40D178BB7B15F31B56346E691FD27781387 + 1AF87EDD59AFC0A676036E495D8998B8D9EBD117D21DE77CDD1D290ADC5C58C7 + 5416643BDE60054D2E765FC6BBB53DEC28532C88F78A54F65D16C4092155C343 + 74405F0D92A8CD1AB4F62ABC22FB7B3A2093B78BE25C91EB0ED6615E04F0EBA1 + 3C4F6076C171A6A6700BF535E84CCB954ED126096ED2F23BDACA7678C5B947F0 + 3B090196176C866E7CB6C10FEBCF5123859ABCD6D7C936B74C310FF5C55BA971 + 3E811AA37F0D724D3A4045C77BD91BC7A4D3B2B8DA1DD928A96E080D70D3DBC7 + 988AC2AD01035D91B17106161711AEC0C1D23A7C559233378042092930A43297 + 84043817F31F2FD5B9DE1F0DC03C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A84944415478DACDD77F4C94 + 650007F0EF711C770878724DADD6A02D8B1612B6F963AC3F6AA5B3B2349D6B8E + 95951911E634D31C5161C3E18656B02210415B6352AB8DD0BC4A919AB6D12F09 + 520C4E8833903B24EE17C71DF7F3ED7D5E766FF7E37DEF9EFBE1E4FBCFBDCF7B + BBBD9FFBDEF3BCCF7B128661309B23F1074A2412AA0FED3AFC435CDFEACE854A + BCF2E412C89393442FE873C50C7CBFE8E198815F9EEB83DE680F8BBCA9C0D317 + B4B0D85CD019ACA2C89B0AFC4DA38771729A47BEF4782ED2E4F2808B2704E8F4 + C4361587AF9B6160813EA4961D973C757F00322EE0EB7567990F8A1F81CDE9E5 + C66FD67D478DAB7AF531389C2E1668F7433A59A42500995060B499939204A3D5 + 2188DCB37159FCC01DB56798EA92953137A8D159D0FEFB00EC0E57C07B13A629 + D46C5B153F705BF529E6E31D4FC4DC2009F999FF181C876E62923FD7797108B5 + 3BD7240E68B479B8F13B47BE8F19BAE7D947313266E48E5BCE748507BED1F023 + D5B264BC5E64CE4D85276815DF764B06D63D9803B94C1A7DA32E0FF67FDA1E19 + 48737F23133C335D1E302651FFFA372E6874703AA6A961152FAFE68FC92F7143 + 80BE74745F856DDA8D6B065B4C4D260C486E0DAA0C057FA3B6DA661A5CF5DE51 + 18AEDF1E154A2873947AF47E542C110546DA210C561754E9B290F3057BEBD87D + 75397217E7F1E75292035B944A93F863B18799D6B6360C7DF6742870577D07F5 + 0EA14C57F0C766EB34DE7E612546FF35E2B9EA5628D396C685A4068AC5627773 + 0DBA839A263BC4A0CE84B5959FC7851405EEFCA49D7A87200D4E7B662EE2B0DB + B80607AF19D0F9D7087BF3B5E244572FE6CF5B11135214F85A8D9A6A87200DCE + 4D4D86C32D3057BD6EFC79750243FA311CFCFA97989A8C08A4D921821B0C4EF1 + FA02F40E8FA2B4A907772F5A86ACAC2C6A2435502C62ABD83F64675853D1C836 + BA0479F90F40E68788843C79F2C48D6FB07358CBE1EEBD2F1F32595208301C92 + 1A28DAA079122A6546C4E6088E8400B9574AA428B0F8501B53BF7B1DF4662737 + 269B77B40DB65FE9475ACA0A1EE74B3448B5FA1B6160D1A156A661F77A1E2896 + 299B0D19E9E9F07AFF5FED64456F38D014D05C706891A2C0AD07BE621A4B3746 + DD20DC769CBADC07857439EECAC9832245FC21C18724191D194676767608921A + 2816E3941D9969A9336D3ABC78A6EA283CAE7C0EE74B382449DFE51E184D5ADC + BAE09E90FB64421A2471BA1C38A7D5F2CD05470C497093F64E2C669F887ACC5E + 2CCC2C0840B69FFE5618F862450B73F8AD4DD099C237E80B9973A4B9AC45B982 + F34A08497048EAC6F9CAADDC5FCCF14933F350E9F1801D871A78B0F96C58A0BA + C7843BB297629E6A01378E840CC6F9DE0F468A0237973733F56585EC075CA0C9 + F9BE4B78B7A99FDBCAE419F3C322B5039704714248DDE8081D305283247AFB18 + BA34F2B0C8C1FE8B90CA7A4471FEC8D5FB9A91CA3E6AFEB4BF24145858768C69 + 2C7F9E7A0EFAD279A557B44982B3397F4677CDF6B0B8E008FE2721C0DAB2CDDC + C300C9872D1DD448A126FF19E8E59ACB91A7A2A5720B352E2270CC1C5D837C93 + 2CA8E298865B3816C338876BDA5E88AA86D6C40037ED3DC2D4956F8919E88FCC + 5499389C22458E7DD5CDF8A2AA6876008592506042657E49087036E63F0AC2B3 + DE3C734E390000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_11_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004064944415478DACDD77D4C13 + 671C07F06F5BFBA26850175F660C98A8D3C89B8B6FF12F97E9E2FBA68B7F1862 + 34BE8C216A54448D9289094413E62644114408CBC2468C5B08BEA06245A3CB58 + A63089C2A042A8426C81D0168A54DAC1D9E7966BFA72D73EBD3B22DF7F7ACF5D + 2EFDF47BD7FBB50A8661309AA3F0062A140AAA93522F3F90F4A9664D8BC4B71B + 16423B4629F8869C4B34F087A4CF4403AF3D6A82D9EA088AFCA0C0AA5A23FA06 + 5C3059FA05911F14F8C46086D5FECE83DCBD3606115AADCF9BCB02740E89BB15 + DBBB7A61710339A4D1BD4ED918EF8394043C9C7F9FF931F9730C3887D9F5B1FC + 3BD4B8ECBD6B30E874B9810E2FA4D38DECF341CA0A0C37E3344A58FB07799147 + B72C910E3C98778FC9495925BA4183A90FFAA72D700CBA7C8EF5D8DE2277DF17 + D281FB726E31170FAE13DD2009B9CCFFB476C3D463F7ECAB79DE86BC43EBE503 + 5A0786D8F57757EE8A861EDDB6121D9D5676BBEC5E5D70E091C2879226C4C71F + 8DC7B655F1D0AA55E137EA1A42D64FFAD04029CFB75FAAFF45ADC104E7E03BEA + 7332BF59EDD92657624481DC8420CF35314D8E387051DA2558BA66883E9FCBB8 + 48331A2E242B04816227C4F2E3F9EEB9BA1431B1719E7D9A31BE2DAA544ACFB6 + D08F99F28A0AB4FDBC2910985A502D694298AC3DF832EB7744462C9684A40686 + 7D69DC13A2B5B35B32521078E8925E960961796BC7B53F1B3165E232514841E0 + FEDC4AD92644F3EB2E5CACFA5B54932181724D88278DAF70ACE429E6CE5982A8 + A8286A2435504AC864589F59040C2F445CC2A7507B2142216FDCB83EF20DD6B4 + 1B59DCFC050950AB9501C060486AA0D4E6088E8400D9574AA42030F95C055390 + F615CCBD4E764D8677B8D1BF6C4684669907C7251C6465E54D7E60D2B972A630 + 6DB307185673FF31F8FA6CB14F73FEA1450A02F79CFD8D293AB1455483A4399D + 6A2966CF8B834E23FC23814392BCE9684774747400921A184E7343AE0416C725 + 1892A4A9B11E569B11D3A77E12F09C94B541EFE6FC23842438BBA306B11374A8 + EF1DC6B449CB7D90FAAADBFCC09D9965CCE5935B61B2D135C83517352786F7BE + E243121C94CFF0F8CC1EF62F66B7BD975971E2579F89430DFCBEF47E506065BD + 0D33A31763E2E4A9EC3A14D21FC71DF7470A02B767943205E989EE135CA0C9E3 + A6173855DCCC8E32ED84294191C69617BC383EA4E94D071D30548324664727EA + 0CDAA0C8D6E6E750A9EB0571DEC8D5A74B315607FC919512084C4C2F618A3276 + 50DF835C6A5E360836497003CEBFF02CF740509C7F78FF9310605EFA7658FAFF + 6FF07C59353592AFC9D72D0D6C73F3B46351766617352E24B053C424619B7483 + 324B0CEC17A7CFD2CDE28A0F2422BBB05C1EE0D6E35798FC8C5DA281DEC84993 + 6D2C4EA7D1E2744E29AE66278D0E205F6405CA2AF38A2CC0D198F7216760DE85 + DB0CAC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_12_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004404944415478DACDD77D6C13 + 651C07F06F5BFA020B199000C698CD4414E318C38497F8978A98A9886F21862C + 0403E29C430222D3E002231919C944DDA273636C62CC741035CB9C4E846E1ADF + AA519105A76C6CA1B2B976CEB55BBBADB4D7DE79CF637AB9B677D77BD964BF7F + 76BFA76BFAE9B777BFE7CEC4711C667399C44093C9A4EA4DFB8E7F69E85BDDBC + 3413CF3EBC0AF63966D90F8CBB74035F2BBC4737F0C3AF2FC1EB0F2922AF2BF0 + EC2F6E04A618787C13B2C8EB0AFCA9D70B7FF09A807CFAC11C64D8ED091F3E2D + C0484CDFA938F0F7387C3C308E74F37DF1A695094843C0176A3BB8D78BD6632A + C2D2FEA5DA33AA7195CF3D807084E181211132C2230309C869056AAD793633FC + 13614964C9E635C6817B6ACE7155C51B7427D8EB09C0F9731F426126E1B5D1B1 + 4954EFBADF387057D567DC5B7B1ED29D2029F233FFDA3F02CF685058735DBC82 + 9ABD1B9581468730C7B28884AFA9FEFF92ADF76170D84F8F9BCF9D5706BE58FF + 156D8C8C90F73BFF80C73F89AD1B56C26EB5A84F9489E1C8BBCE9907C687F0F7 + DD03AA922C7F265F383E78E28B99078A8730996F5A92D404D43384D797D5E2AF + AB37EAFE72F19A97E945F79B4526492039C9F50E61D7809BDF57D7226745AEB0 + 669B93989EC562168EE56E665A5A5B71E5BDC75281FBEA3A69A37708FB2603C8 + 3F740A9919AB0D2115812C9FA09121FC63FF200AABDBB078C13ADD4859E0DEB7 + 9D5C9489C0E810F68C06F04885FE246581CF57B7D38600FD5331BA46AE2C3D15 + 61C2F8EECF615D484D402335E4FF079B0E76E0D6656B909595A51AF9BF24488A + 5CD560572137EF4E58458874C8B6B64F663641B26D6D2C6FA0B8DBEFC883D56A + 4E012A211581518641DDFE47E11D8FD035B23F6A2DE7E51E64D8D6511C2902A4 + 7F5522658145C75A39162CEAF73F2E00352517E5F0C4D1462139716941B6B77F + 2A0D2C3CD6C2B1FCCFD37060B3AE0493934B2EB54859E0CEA31FD1460CD4925C + 8CC9C32DCB73E1B0C9DF1CC491A4860607909D9D9D82D40454932049CE61594B + 71F1524292BAF47B17FC636EDCB0E4B69439A9088C45191C7F650B3C63E9138C + F2773C4F56BE2324975C7248820B865C5831DF81AE71164B17DE9580749EFD5C + 1AB8BDBC993662E0AB4D1D6993CB5A9623795E4921090EE60BF8A662277DC41C + 098E73771FF82061C75104C6A231D495166024C8205DDD5BF2316ECA5E8D058B + 96D03E1D3219177F3D19290BDC56D6441B315029416F6818E77BED742BB3CF5F + AC8874F7FD268993427A8606E58151FE1C6C287B4AD53948CA75B91B871A7B14 + 91FD3D17F9BBA31F70A17AB7244E8CCC3FDC84B90EE0DB23C5A9C082D293B4A9 + 29DD06DFC47F09BED1DC9916A99424C159AC5D586E9F8BE68A1DEA1EBC21F34C + 22060E6BDC495C7DDD283FD99B80BCCAAF115CE3EE0254D6B74C0F908D46515B + B64333508C24174EC03722E01C363B0E5735E17465A131E096974FD0462F508C + 5CB8684CC0919A56E04CD5AC066AC1C9026763FD0BF75A7CDE48BA2763000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_13_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000045A4944415478DACDD86D6C13 + 650007F07F5BDA2B0C32943034219B4614E318838497F081681432051535C490 + 85608439C690F0226860D10D4646324059746E8C0DD40C27D1649998A9508651 + 741F106481212B234CB7AC9D737D9D2B6DD9CEE73973CD5DDB7B6F1CFF2FBD7B + AE4D7FFBF7EE79EE66625916F7724C42A0C96452F5A11D47CF1BFAAB1E9A918E + 8DCFCF0333C12CF985BC4B37F070E153BA815FFE78036E6F481639AEC033977A + 101889C2E51996448E2BF0A2D30D6FF04E0CB9E1B96CA4318CE8CB53028C8CEA + 3B157BFFF2C343803CB287EC17BF3057843404DC5E738E7DBFE8698C44C6B8FD + B76BBE538DABDCF42CC29128018604C808410644C89402B56692CD0CEF703829 + 72D7EA85C6815BABCFB2478A97E96ED0E90AC0F16B3742E1A8E8D890EF1F546D + 5EAE0C343ACF3D386D3236E4E580B15925DF437FE6DF6E0DC235148C8DB55FBD + 8DEA6D2BD5018D5CA527DB7EC725A70B91F01DC5F7EE5AFB0CFA06BCDC76D3D9 + CBF2C0B7EA7E88EDA4629EA357E7DA6573C1582D8A9F094747B1FF13873290C2 + C8AB21A0709EFBA5B357B6C9F237F262DBEF1EFB5E1B3095F39C9A26550377D4 + B641CF3CE7B8D98570E061DDCDF39994EE46E7874526D540B559BAA796ACAB8B + 903D272736669B206ECD6231C7B6A56E669A5B5A70FBB397128104C64DC0DB3E + 7640CF3C178986F1F31F03484F5B6008A9087CB3AA151F6D5DA16BA5180CFAB1 + A2EC9421A4249034C7AD103CD03B32CA8DD393574B6893E7BBFB317DEA625D48 + 492081B114160FD4138F3F88172BBED0D5A466A0D606854D3AAE87F0E8AC85C8 + CCCC548DFC5F1AA42BC3CAF27A606C1E7272E7C32A4028214F9FFE5A1E5874A8 + 05B53B57C1ED8F70E37409D21A3A27A6D916E3F1277261B59A138072484560E1 + A166D4ED7C3906D4D4DC5D16AF1C68E09AA3381A0AE45E55222581A439963657 + 70E02BD4EF5EADAB416173C26841B6B67E931C489A636973F140BDCDC5472D52 + 1248602C85E969903667B72CC223B37360B749DF14F0489AFEBE5E6465652520 + 1581AF9737E1E89E3570F9941BBC4BEE785EAD3C8ED1682E87E32387A4B971BD + 035E5F0F1EC8782C619ED40C3CD8784E5573F19142525C30D48E3953ECE8F08F + 61C67D4B4448C7996F9303098CA5B0827D27515B924FD6D528E442CF39DA5CE6 + ACECA4E7553224C5C17C053F5514708F9864ED669FDCFDB968C5D10C946AB0B5 + C38799590B30F5FE0C6E5F09198FE38FC7232581EB4A1B590A2BD8FB29EA4B5F + 533C07DB6F76E2BD862E6E2963A64C9745F6745FE37ED62B555B12FECD118F74 + F5F72903AB4BD6C133FC5F831F34B54922DDA1015C7632B2C85B5D5761B17660 + 3633114D15EB251FBE2932AFAC1113EDC085FDC589C0FC92132C6D8E070EA89C + 07DBBB3B517EC29914C9E31AB6E4A3B2AE5916284CD267120AA4B04D7B8FA3A6 + 74BD6AA014F24F32C6E3EC360665471A71AAB2707C804224BD70029E41118EC6 + 3070CD3BC7580AA340BDF18EF9E01CCA8095F99B9BE76C269BE8784A805A9B53 + 8A96E614812995099212E0BD987F012965B9DE039FC83D0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'CopyLocal_14_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004754944415478DACDD87D6C13 + 650006F0A72BFD8049064B00A3663311C538C63082C43F8C46C12928A221862C + 0B463EE69C1211D9B04EDCE2C848264C86B22F408C0E26A22E033215BB61D438 + 1315597002638485CEB573593FD6D1D296F5BCF7CCDBDCB577BD8F5E80E79FDD + 47BBFBED79EFDEBB9B816118DCCC31F081068341D19736359D4CE9AFBA735606 + 5E7E7A3E2C93D2240F485D9A813B8B1ED50C3CF2E339B83CC1A4C81B0A3CF1C7 + 00C6021138DDE392C81B0AFCADCF058FFF6A0CB9F6A91CA45B2C8283EB020C4F + 683B151DFFFAE066811439C0AE973C334F804C09F8464327535BFC1802E128B7 + 5ED6F0AD625CCD2B4F22148EB0C0200F1966916302A4AE40B599624E83673C24 + 8A2C5DB9501930D5A9848946110E5D156DB0CF3906FBEFFD088622827DA3DE2B + A87B758972602A17C2C1AEB3707AAE606D7E2E2C6653C27E32CC7F5E1C8173D4 + 1FDBD67DE612F66C5C767D80742AF9A5D721DA244D69E1E3181CF670CBADDF9F + 4A0E7CB3F907C1B0EA359590ABB470F13C584C46C9CF872213D8F6895D1E4851 + EC32F49C4AA49AAC5A9F1F5BDEBAF73BE5C04D8D5DD07B2A39EB18C5FA650F48 + 36991250499E78AF11FF5CBE4D53E3FC4CC970A1F7C3628324900C6B59532776 + 952C56D5A0FDC27964DEF23072E6E6C6B6992709DB321AD362CB520F336DEDED + B8F4E98A4420DB5A6C0226A08F5E5FAAAAC111BF0F4B2B0F23237D414A485540 + 4F6082DB47CE0F2509474238D93F8419D31669464A0237D6DB193AACF1403571 + FBFC585EFDB9E6262581AFD575307458B536A84793B240822220AD0DD238DC23 + 58F16E17EE9EBD105959598A918A80B6FAE368DCFC2C5CBE30B78FCCF26A43AE + EA74F322E4E6DD0F130F21873C76ECA83C704BFD51346F7E2E065493D03506CF + 6FDF0F44E7E3DEFBF26032A52500932115014BEBDAB0CFB6525383B439822321 + 40EEA742A424B078473B4387F51DB6413E504B73FCA84176741C170716ED6863 + E8B0C603953418DF5C7C94222581EBB67FC950946DF757687A7B159C5EF906AF + B1B7C6176A3EC644240F77CDC985D52CFD5845912443830E64676727203501DF + 6FE94CDA9CD5F82087A349862439F7770F3CDE01DC3AF39E84795211B0ACF60B + 349617B0F7D788E44102ECF35D61EDC15873F19142129C3FD88DB953ADE8F145 + 316BFA4302A4FDC437E2C097AA5A19DADAD6DD470440B106697359B37344CF2B + 3124C121ED347EAA5EC7BD62B20F18CC23B64382DBA222A0ADF610F655BC98F4 + 1C5CF2D6D7B8237B01A665CEE4D6E590B4B9D3751B042FE9F14849E0EA8A1686 + B646807BCA57C33DFE7F831FB476251CD8151CC6A93E0B772BB34C9D911439D0 + FF17D7DC1CCB64B456AF4978C6E2239D4383CA81C332F360777F2FAA0EF42545 + 5E3C7F0646530FF66F28404D739B289022F32B5B30D90AFCBCAD241158507E80 + A1C35ABEF3333454AC9105CA21F938ABD982CA5D2D385C5324FB2F0CD1771202 + A4C3AA062885BCCC6EE3E34874011214F9456AE3897A7161F476EEC219631FB5 + 02E15FB9A9C46C300B3EA719B86ACB5E464D6BC99A9C9EE9553DACD70528165D + 81BACA78D1057833E63F23520EED870D0DD50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_15_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000046C4944415478DACDD77D6C13 + 651C07F06F5BFA820B199000269A4D238A718C610223FE61340A99EFA221862C + 0B46D03927449C8CA54C339211482A4CA6B08D0142703041CD322043B10C630C + 33519405C7CB186171CB3A5CD6D7D9D296EDBCE7CC5D9EEBDDF55E7A61FCFED9 + 5D77DB7DEEFBFC9EE7B95A1886C1DD5C161A68B15834FD51C59EB3193DD50373 + B2F1EE4B0BE19C6255BC21EF320CDC51FAB461E0373F5FC17020961639A9C0D3 + E7FB118E26E1F38F29222715F85BEF3002915B0272CDF379C8723A4537370598 + 1837D68A03FF84E067813CB29F3D2F7F7981089911F0C3C6334C5DD933882626 + B8F38D8DDF6BC679DE7B0EF1449205C6286482458645484D4033666BC9B2056C + 8F89FFEF3D0E2B0263715964E58AC5FA8099F4DAE1CECB38DFEB43227E4B9460 + AF2F0CEFEF7D88C593A2EB4783FFA2FEFD65770EC8CF56D2636B8AF2E174D885 + DF9161FEF3FA087CA311E1B3AE8B37B07BFD8B770E48CFD6733D03A224F9AA2C + 7916833703DC71EB8F7FA4077ED4FC93A4E7CC9EAD254BD99EB4DB24D7C693E3 + D872D0AB0EA413AB68EA84D9B3F55CCFA028C9DA778A84E34FF6FE9019506F29 + CDD6CB03A358BBBC5072BD6EE0FA062F76962FD59CA0F7DA55C4C30F1A7A18D1 + 83650FA3E78B328B2290EFB98A5DA7B0EB83173427F8E4A62676CD2B44DEFC7C + E133C71471BFD96C56E158E965A6ADBD1D370E2D9702D92195EC100418888E0B + 4390AE12C938CEF60D61D6F42519210D03B5943F14C12B5BBF4676D622C34845 + 20DB734C6ACFE949D0AC2415816BEB3B18BAE78C24684692AA401EE46E3889A6 + 0DAF623894E0CEC942AAA74892DE4B313C3C773172727234233503AB1A8EA379 + C36B02504FC56F33787DDB7E606221F20B1E879D42A8214F9C38AE0D5859DF86 + 7DEE158612246B629663091E7DAC0076BB55024C87340CD49B1CC1912240EEA7 + 46A422B06C7B3B43F7DCC7EC10EB4D904E8E2E3DC88E8E93F2C0D2ED6D0CDD73 + EECFBFC39E4D2BE10BAA27789BDD7DDEF07C294A2EB5B42215816F6FFB96A113 + 4B057EDA72266D722E5B211E9A970F97C3A6781D8F2435343880DCDC5C095233 + 7063DD3134551763249254BC61947D752AA93B8CF1640187E32B1D92D4954BDD + 0804FB71EFEC4724EBA461A05C827472A9A58424B848AC0BF3A7B9D01D9AC09C + 194F8890DED3A7E4816FD5B632F490BAEB8E605FCD9B8A3D487A8E249733374F + B6AFE4903CEE42FD3AEE2BE64824C43CE53E22DA7174017757AF827FECFF043F + 6BED14DDACA33B88FB731761FACCD9DCB91A92E060BD8079CEA968DDBA5AD87C + 53918AC055352D0C3DA43CF0A6C23AD8D5D783DA03BDDC56E69C362B2DB2BFEF + 2F0EB77F5D313CCD6D22602AD23734A80D58E53984C69AD58A40ADC8EB572FC2 + 66EFE6702E87139B77B6E0A8A754F2224890459B5B30D505FCB2A55C0A2CAE3E + C0D03D57BDE32B55A01A3215474A094897EC771202A47B8E00B5566022886BA3 + F789907FB3F068E2576EB63A2C0ED1F51901D512534B924C9CB07F44484EAEE7 + D44A16B8B26A2FA36548B52067CC0CAAF6DCA400E5CA54A0A932AA4C01DE8DF5 + 1F021D1CEDDF5BAC460000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_16_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000049B4944415478DACDD77D6C13 + 651C07F06F5BFA82930C960046CD66228A718C610212FF30BEE2145F318B21CB + 82083AE7D4482683CCC68C3884A4C2640832068881C17CCD3267866219C61067 + A2A2CB9CC22861D9465F18EBEB68D776EB79CF2D77B9BBDEB54F5FC2F8FEB35E + 736D3FFD3ECFEF7AD3300C831B391A3150A3D150BDA87AFFE98CBED51DF373F1 + FA334B609CA155FD40DE95367067C5C36903BFFEE51C9C9E5042E4B4024FFE39 + 007F300A877B4C1539ADC0DFFB9DF004C605E4FAA70A9163344A3E3C2BC0C864 + 7A5B71E88A0F6E16C82307D8E3AA67174B90D4C04C078289C510098F0BC79637 + 9E4438126581211132C222FD12644AC04C96F358D77F1CA47CC56276AF4DBDFF + 4D062D3C636145644DE9B2EB0BE407E2D7BE21AE49D260BFC30FEB1F3684C251 + C9B9A3DE6B687C73C5F5058A0782ECB5F52545301AF4DC32FF7571048ED18070 + 6E77EF25ECDDF0747AC06C0D04DF249F9AF2C730ECF2708F5B7F3A9B18F86EF3 + CF710AB2C91B2A1F453012E38E37EDFB811AA736103687176B4BD8EB9F5E279C + 1B8E4E62EBE7D6E440F9725637754980A9466D20CEF40E62221A41FD6B25C2B9 + EF1FF83175E0864FADD855F578DA0D261A88BAB58F489E4B0BF8566327F6BCB3 + 92AAC1273E68C2E5C15BD36A5AD27AAE137D9F546A5481E281A8DE7382037A82 + 93C2B7548BF5C279E4DDFC200A171509CF1966E824E7E8745AE1B1DACD4C5B7B + 3B2E1D79211EC8EE37466920C4C04471FB02786EDB17C8CD599A11921AC82369 + 1B248944C3386DB363EEECE569235581EC40304A0341DB60B69A5405B203C1C8 + 07A27A77079A363E0FA72FC21D936B154D3269322950BC9CE4839A37AE1280A9 + C47ED583D20F4FE1AE05CB909F9F4F8DA40692D434B6E1606D69CA0D9290A9CE + 312C4751F17DD08B10C9901D1DDFD137381E0C4A8034094F307871FB2120B604 + F7DC5B0CBD5E1B074C84A406A6DB20DF1CC1911020F79712A90AACDCD1CEC807 + E29ADF87FDEFAD86C39BBCC109F602FF92E533A13971524176767EAF0CACD8D1 + C6C807A276F7B712E0472DA7A89B938716A90A7C75FB378C7C39FD6E379ACC65 + 180944A196207B7F57DE700C93D162DCB9B00826834EF55C1E49621F1E424141 + 411C921A48B2A9E12B0950A941D29C49773F87E393084972EEDF1E78BC03B865 + DEDD71D7C9941A745F71E160DDCB8A7B3032119634278F1A92E002A16E2C9A65 + 428F2F86F9731E9020AD274F28035FA96F65E40351DB701C7BCD6BE01E9B6AF0 + E3D6AEB8E6F217142AEE2B2524C141FB37161A67A275DB3ACD48C0C73C547B5C + F2B3480D24CB491A244097C27570A5B90DB7172CC5ECBC7953FB2B0992C71D7A + BB0C96E6360E489E972355816BEA5A18F9406CB61CC1BEBA758AC06E5B1FEA0F + F7733F65C659731322076CFF083893C1882DBB5AF0A5A542B84310231DF6613A + 2069F0AAFDB22A901679F17C2F74FA1E01472207F2C8922D2D986902CE6CAD8A + 0796990F33F28130EF3C8A64F1C4BCB8307A9B2292E08291DFB88130680C92D7 + C981E228FE4F42806A03912CCE900B67FB8D12E420DB2E698E1F08EA374B0674 + A5716B45C22F37191CBF7B445856F14064045CBDF9009368BFA5829C93E7551D + 8869052A25ABC0ACCA44C90AF046CCFF95413CEDD420CFD60000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_17_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A94944415478DACDD87F4C94 + 751C07F0F77170873087B8A9AD1AD8B26CF1CB36C5B5FEE817CEB45F96AC3962 + 565A44A48B4874C412379C6C979098C60F259A03CFAC8D910DCB4E6CAD455B69 + 3803E5C0790BE2EE20EE1770C7FDE09E9EE7A1E7F63C77DFE7EEB9874B79FFC3 + 3DF070BCEECDE7F3DC030A8AA2B090A3E003150A85A46F2A6BBA34AF57B57245 + 0ADE7E6E0DD4F171A23F9073C906D6163D211BF8D54F3760B2BAC222EF28F0C2 + 65031C4E2F8C962951E41D05FEA637C13A391340EEDC948164B55AF0C3A302C6 + 62E6766ECA41BC72EEF987C7ECB0D0400E69A08F4B9ECF1620A306CEA7B1F6EE + EBB8AC37C2E39E81E69D67E0F67869A08B87F4D0488700795B81FC992BDC908D + D42425AC536E22B23C7FDDED0706CFDC639977A3BB77182EB75770DE846D1AF5 + EF6E900FF4CCCA1B45D2CC15E665A3DF3006E3C464E0BC9E6BB770BCF4D9E881 + EF375CA4EA8A9F82D3E3678FF7367C2719273673BFF48DB033595EF83446CC56 + F65CED0F57C2033F68FE915811E5F7830F8C3649AA38E2CC5D1F9EC0AE2DB9EC + 396EEF2C0E7EA18B0C24CD5AE9673A1C29C993DDA0DEE880EEF721E2CC55BDFE + 64E0F8A313DFCB03EEAAEFC2B1F736CB6E906D88FE35FF71733C64E6AADFDA18 + 3BA0D5391B782252748303703BEE93FD22B824A598D0F769B1421418BCAD65C7 + CE0B8062C9DBDF44BFAFE62223332BF03955BC52708E521917782C7633D3D1D9 + 895BA7B68402CB1ABB45B7554A831EAF1B978646B16CC9FA79212503B9305029 + 0D32B1D827F1C2A13348495E2B1B290AA4B795226DABCFEB45E39E1761B27BD8 + 63E672102EF36D5214482F0345DAD6D2A39D68DEF352002825D66917F26BB4B2 + 9A8C080C9EB519A713272BF22537C86F52D7EFC203ABD6212D2D4D325232904B + 797D870028256E1F85976B5A00FF1A64E53C82041E2212F2DCB96FFEFF06996B + 62B26A3D1E7A380709097121C07048C9402E65B567D1F4E136186D911BF4D1D7 + D057349FB3CD3138260C90FD2811290A2C3EDC4991B675DA6117003F6EBB28A9 + 397EA24176757D4B06161DEEA048DBBAB7EE2C1A2B0B303EE985589CF4AD5361 + 5DBBA0B9E048458A02DFACF99A22CD9AC3621100490D32CD252A7371FFEA2C24 + AA94100B8764323A328CF4F4F410A4642097324D3B4E56BD469C418FCFCD3637 + EBCD61715CC22199DCE8BF0AABCD80BB963F18729D8CBA41CB9819C72BB7C332 + 35D7E027DA6E6273C111433238C4F562A54A81DE091F56A43E2A40EA2E9C2703 + DFA8D652A46DADA83BCD02CD41CDBE5ADBCA3697B62A8338572424876BD95D00 + 4D73078E566CC5E315A705EF389281DCACFD33FA371AAA768400375776E0DEF4 + B558B274F9DC7C4540F271892A350E1C69C3979A22C5F8A49DE2234581DBABDA + 28D2B6EED39C22027B86FA50DDAA67DFCAD48B9785451A86FE14E0987040E631 + 1F691C1D9106E4372816ABDF86C1897BC2226F0E5CA36F407E45E6E244A8142A + C1D7382087DC78A00D8B12819F0F9684020B2A5B29B16D0D979EC13EEC6F1920 + 22395C6FFDEE907F10850BF16F120628B6AD916272997145AF1620FFA2474099 + 7015ABD58BA03DB443322E22D01CC55D8BA0C9FF6692591C87659CC571DB1A13 + E0B67D2728D232C841A62EB5856CEB8200921253604C65BCC404B810F32FCEE1 + 33EDD410B7500000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_18_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004B34944415478DACDD87D6C13 + 651C07F06F57D60E06D958C24BD46C18518C636E2620F10F23A20641514C0692 + 4950369C738A626510587024C3915436180CF7C2CB0CD998E24B33678662378C + 9ACC444508CCB117C2C25ECBB6B66BB7766DD79D7D0EDBDCB5F75CAFD78AFBFE + B3BEDC769F7D9FFB3DD74DC1300CA673145CA042A190F44D9ACA8B61FD568B16 + C4E1AD17D3A09E11453DA1D7251B589CBD5236F0CB9FAF63D0641745FEAFC00B + 7F76C3627361C0384645860C8CC4B266AD49C52C55147EEF1884C93AE14366AD + 4946AC5ACD3BB92C6038ADD536B7C1E84111E4C088857DEC4576DF1E45EEBA47 + 79C8BB0EE42EEB8695C918B7D93848A70769E121EF3AD07F5969C8BCF4E5E101 + 9D6E7997628F6719B9CBDAD2D687F8D96ADE3123E67194BEF39C3CE007E54D4C + 49CE2AD89C53ECF35DE5DF4BC669DF7E1E0EA7CB03B4F31ABBD63D8C450BE310 + AD8C628F6BB97A13C777BC101960A821D36B1A730420DB7A46B02AED7EF698BA + 1F2F89033FACFA89BA7EEEC9491CC97D5676831D0316E8FFE882DDE10A58D682 + 379E86C3E5C681CFF4C181B44178B7B41165EFAF95DD200959E6BF6E0C79B619 + ABEF35B2AC856FAE661FEF3BF143F84093CDEDFB617293B7F919F41A4CEC63B2 + ACFF095028EB8A2AD177EB1ED9706F66C50DA2F5588E820A14DA4A3465E78336 + A8EF6C47C2EC2791BC34C5F79A6A8692778CF2DF8925A17D98D1D5D7E3E699F5 + 81404D45B3E85612AC41E3A8152F157D8EB8D86561212503790D1E6D40C5CE97 + 3138EA649F9389138AD3E5C0C5AE7ECC8B5F211B4905EEF854CFD0B61272E2AA + 9DAFF88062318DDB917EB04E769354A0671018DA56F25EF13738B9273D688391 + 683228506810263C37762E504AFA874D48FFB8090F2E5E8EC4C444C948C9406E + F24A7521354842A63A56B50229A98FF9EEB752900D0DDF86DEE0B86514957B37 + 61C01CBCC149CF36B5517B1A984AC3C38FA4223A3A2A002886940CE446537C8E + 07FCA4A629687304474280EC5789482A30E7503D43DB4A2C46232AF233306475 + 81169B63029B4B6A7DCD71130AB2B1F13B6160F6211D43DB4A76959CE301851A + F46FCE3F529154E0B6835F31B44130DE36E064C1EB82D7A073D2C136E776A5E2 + 812529885129418B1749D2DFDB83A4A4A400A46420371A6D2D8EE76F8171EC4E + 8387EB9A79CDC5281F6771DE882149AEFF7D0526733716CE7F28609F94DD2001 + 1A38F809A70359C7CEFA9AF30F0D497088BA8C92ADEB9179F46B2C98FB040FA9 + BF705E18B8B5B08EA16D25BBB567505E90C903BE565CCDE21217270B5E574248 + 2FEED4F60CCF7B6AEC3D7C1AED7625EFB62819C81D84E1FEBE00E0DA7C1DEE4B + 5A86F884F977AEAF20487F1CC9FE233528DBF72A9EDA73D687A402B714D430B4 + AD8434E81FD394199D23F7B2B732F59C79A2C8EEAE6BB0DA5BB0744E0C540A15 + EFBD2FB4D98A21EB28E3450EF4F74A038A6DC6DE0CDA0DB8D4A11645DE68BF0A + 65F415FC52B42DE07F30DC10E4EAFD35981903FC7A20371098915FCDD0B612B1 + B474B6E2A353ED824882B3397FC3E5D2EDA238FF08FE4D4280B4AD444E93B7BA + 5AD9E696A867A2AE2853322E28D010C2472A5E931E506175073B3816E3108B23 + 03A1ADD24506B869F709C67F52E522E726987DD34A26950CC2B4000A25A2C088 + CA388908703AE61F58DE13ED4991A7EF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_19_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A44944415478DACDD87D6C13 + 751C06F0A72B6B07936C900092E0EA2288B2CD4DC34BF697046710C5A8C92064 + 105486734E70B38204A78C640462DD9009632F803364A3518CCBC40C85328C90 + 4CA3F29231B695111636FB42A1AF5B5FAE1B67EF4C2F77EDDDF5B8D6B0E79FF5 + D7EBCB674FEFF7BD6E0A92243199A36003150A85A427699BCEC7F55B3D3E270D + EFAECE837A4A92E01B865DB281B525CB65034FFED60F8BC3278A94054C4473C5 + AB7271B1E736DCDE20CCF65141A46C603CCDB575F5C1EEF1E3B9057331E6F333 + C8E255594855AB396FFE508067FE1EA25143775CC87F7A1E83A4D665AF3EC341 + 3E14E09F460B1C1E3F0F9208ADDD1C645C406242DEA9381C42511F7118D9377C + 172BF23239C8ED854BE4033F6C3847EE2F5D012F719F5E7FDCF0B3649CEEBD97 + 10208221A08F8524D0DD6742FA236AFA31F79C63A87BFFC5C4011F34D3544970 + 8C06A290978D2358943917DD3DB7505FF18A7C6079FD59F2405981EC068D6637 + 0C7F0DC21708728E51CDAD599E0DFDD94BE2C08F9A7F153DB9023E2F0E95BF2C + BB41FA35421FF3E59B3698EF7998FBA8E63E7DAB007BBE31C4068AEDD22D759D + 34D0E19DA0D79F1DF9453674FB8617306275D0B7A9E6AADF5949BF5E42818948 + 20384137F7BF00231B34DC1840C09D19377A5A9A05BD074B158240A139A73D74 + 5AB4C1825D4DA1EBEA526465E730F7A9A628398F512A9398DB425F66DA3B3A70 + EBF8EBD1406D6397E89C1B0F06D1B8ED35585C04BDA63E1A76886000E7074D98 + 95BE2C2EA46460642ABEEA40F3B63718205F1C633E14EED3232D75B16CA420B0 + E2B04174CEF9BD5E1CDD5928D860A29A14048636012936E73EA8FD8103144B3C + 4DC6040AED52A90DB29B345CF761C1FC25C8C8C8908C940C8C8CB6F63B347DB2 + 0E6667EC06C7439360ADEE6BE07E1E72729F45320B110B79EAD48FF21A1C73BB + 38C02F5ACF0902A99998AA5A86A716E5223939290A2886940C8C4CF9E77A3456 + 16C1E6094228DE801F1BF6B7D1CD51382A1490FE291129082CADE920C5E69CDB + 6EE700F91A6437C7CE83203B3B7FE20796D4B49362734EAB6BC3D1AA3779CF41 + 623C10D55C64A42205819BF77D4F8AED52FB1D2BEA2B37C23EFA5F835FEABB38 + CDA52897E2898539485129219430928A6964181A8D260A2919C8D72005B4B28E + FB89008A0F9EC0443097C6852386A4D27FFD2A1CCE213C3AFBC9A83929BBC1BB + A67FD050B589010AE16221291C92AEA0A67835B61CEE8C1AE68633A7F9816F57 + EB49B139B743779C035C5FDB42E332E667F19E577CC830EED8D6A2D031359C5E + 17D6EB4E62CE8C7C06291918B94BA906D9F9C3A6C2639A7CA4CF9C4DAF632129 + 9CC7D78DECE929502954CC71822430E053324D0A023756B592B1E61C3B17FAAF + 61D7B101FA52A69E3E4B143934788D6EEEC2DECD51FFE6A062F3B8C8E7779EA0 + 9166D38834A0D895221C8BCF8A4B46B528F2E6400F94C95705716CE4CADDAD98 + 9A025CDC53160D2CAA6C2185E69C58BA6FF40A3649E1BCC4EFB852B755141719 + DEBF4928A0D09C93D3E4EDC15EBAB985EAA9D0EFDD241917136895F07D8FB7C9 + 10A8BAC588799AC5A1CBA28DC651BB55D7DC9E18E0BA1D4748F61889073963A6 + 931925BB0FB4E25B5DC9E400F225A1C084CA5849087032E65FEA9205ED8B5836 + 400000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_20_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000046D4944415478DACDD76D6C13 + 751C07F06F5BD616E6B2878487A8D98C8218C71C2610F485D1F8107C80A8C95E + 9085606438E70037274870D1910C47AC1B6CC1B1072028D96834C665A053A10C + 134C66A24E1636C7C690858D3ED0D147D6AED77567EFCC5DAEEBFDEF6EBD12F6 + 7DD3BB3E7EEEDBFFFDDAD3D0348DF91C8D10A8D16814BDA8A2E582AAA37A6869 + 3ADEDDB01A86055AE20772AE39039381CB4A33C2E59F9244AA02D6153F9730B0 + BD7B10FFDA3D7878598624F29E01CFFE350A5F208CC1B1091E59F44A2E520D86 + 980FBF67C03F86ED70475142A4CD3D89D28D4FC4205503A948624B71EC96976D + 8D43F68F3AB1E281CC3864C2C00F9ACED3074B9E47809A61F73F6AFA5931CEF4 + DECB0851E1283028405251E4048FDC5DB036B9C0B966915E0BF79D501CB267D0 + 8AC8F4341AB6BFA40E58D6788EAE2F7D31E106876D3E58FE1C4130148E79ECB6 + 6712D3610A8DE5AFA9036EAFFF91FEB2ECD5841B64C27CCD7F5F73C276DBCFDF + D773F93A7B2B09FCB0F557D9951F0A06C000DD8108BBFFC9D15F1286EEDEFC02 + C61D6E76DB7CAE5719506E84EC68E88A012623A17004FBBFB2DC1DA09A06ABDF + 59CF6F73EF73571BDC58D3829B37EE57DDE8A2743B060E97688840A921FCFEA1 + D368DEF53AEC5E8ADDE7BE1A2696AB43C8BAEF19E4AECAE3EFD32FD0C5BC5EA7 + D3F2DBA43F331D9D9DB87EF28D78604573B7EC10A6C221B4EE7A93070AE39E0C + A2E08019E9A96B54211503451BACFB1EC7F6168836C81DC085112B1667AC4B18 + 4904961FB1C80EE1A94020062816B54D1281D113407608CB35988C2665815223 + 64D2E745CBC79B60F3901BE462F3B851F85937562C5F8BECEC6CC548C540B154 + D47D1B03FCA2ED3CF1B9CC599DAA5F87BCFC27912240C821CF9C399D78833E97 + 0BCD958570FAC32025109AC2E683EDC0CC6A3CF6783E5252B4714029A462A058 + CA3E37C700C51AE49A63704C18207BAB10490496D476D2A421CCC575CB816355 + 6F89AE416A3A14D39C3073417675FD200E2CAEEDA04943984B85A91D8D955BE0 + BAF37F8387CCDDC4E66647299208DC76E03B5A6E84300D324087E020A6A8108A + 0E9F42249C8F4756E6C1A8D781140EC9C43A3E869C9C9C38A462A058CA6BBE46 + 53D5561E381BC7450AC9E4CA3F7D707B46B16CC9A3717352558313D69B3C9084 + 93433238682FA1B66803761CE98AFBC5B19CFD491CF876B599961BC27B4C27F9 + ED5E9F2F7A11F414B297E78AAE2B312483F3077BB02ACD08BD460F8AA6D0E79D + C1D2CCA779A462A0D41066D74A9F070FE6AC4146D612765F0EC93577B1665BCC + 45BAD3EFA59FDD7B8A6F9208DC52D546CB0D61612E5EE9C7A7C787D89F3243DA + 6249E4E848BF284E0C69B38E2B03CA35C8C41E74A077D82089BC367419BA943E + 224E885CBFAF0D0B8DC06FFB4BE38185952768D210964ACFD50162930C2E40FD + 8E4B0D3B2571B3237A4DC20049433891266F8C0CB0CDAD342C84B966AB629C2C + D0E19D5B837C935150F58961F6C4F1B99C2CEEF8CE42985A3B9203DCB4E7282D + 1CC26A9099591E1667D41BB0AFBE0DDF988AE707502C4905265526485280F331 + FF01668FDADE522210C30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_21_48' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004564944415478DACDD87D4C1B + 651C07F06F5BFA32081923D9D4C4408CD3193782267B51FFF13D33EE0F5F32E3 + 64CB8C73228E4D108766A2B2840901370699086390E9026B961911A7A85BC74C + 6682898A23836DB02E43C70A1DD25768B9AB70F6CEDC79D7DE7377B467C6F71F + EEDAA7F4C3B777CF2FC5C0300CE6730C62A0C160D0F4A292836792FAABACE614 + BCBF7135D2AC56E21BF2AE8481FBF21F4918D8DE7D11037F4C28226F2AF0E46F + C3088422E875BA89C89B0AFC65680CDEE0B4802C7D611532D36D9237D70548CF + 2476295EBBE187270AE4913D17AFA3F4C587705BC67F4D26057CABF134535BF0 + 1842F42C77FE4EE3F79A71356F3C058A8E44816111928E225D12A4AEC0B926D5 + 628477929245D6BEFE68F2C0A286534CDDB627126E70683400C7AF4E84A988E4 + B909DF14EA0B9F4C1E5858F72DF349D1D30937C886FD987FBF328ED189A0F058 + CFF9AB68285EA71FD01B9AE1CE3F38F443C2D0D24D8F63C4EDE58EEDA77A9581 + 6F37FFA8E9B6A4C22188817A848ACC60CF670E75A096FD6D7B7D17F46AB0E2B5 + B5C231FB7BFE17A05ED10D58B0B7134D3B9FC1989FE6CED98F868DE3F220A8C0 + 1D494353178E61E040818108549B10DBF77F85E69DCF09403EEB2A5A604D598D + E52B7284C72C2926C91A93C9281CA718E56FCA8ECE4E5C3DF26C3CB0A4A95BD3 + 84980E85D0B26B7D5C837484C219A70B8B33D62485D40C24E5CD7D5F4A80E278 + A7C2585F65C7C2B495092389C0E24F1D9A2604A9413EC936490446EF4E4D13A2 + B0FA180EBEB701A33E9AB8C61F9EC44BD5C7136A5215A8B6BF4D05FC12E0C76D + A765D7B14D3A2E8471D7D255C8CACAD28CD40C24A5A8DA8EA6B23C8C0723C435 + 216A1A9B6ADB81D9FB90937B3FCC22841AF2C489AF936B30E0F14880720DB27B + 629A650DEEB9371766B3310EA884D40C24A5F0A32368297F59F61AA4FFA684E6 + 581C1B16C8FDD4882402A31382919B10B1F1DC70A3A16C333C93FF36B8DFDE2D + DB9C38734176757D230FCCDFDBC1C84D88D894D4B47340B768DD344DE1D50347 + 25CDC5462B9208DC5AF505A3B4BFF1F9CB751D8DE55B04208F9B89E4E2CE6539 + B0594C208547B2718D5C437676761C52339094E2CACF05602C8E8F1292CDA50B + 7DF0FA8671EB92BBE3F6495D1A64433334FAA35F78522D0F48706A4816170CF7 + 6045BA0D7DFE59DCB2E84109D271F23B79E02B1576466D4288F37C552BD75CD6 + D2E5B2D7951C92C5C1780E672BB772FF51180FFA9987771D954C1CCD40D284E0 + D3D5E7C3EDD92B9191B9843B5743C6E2F8E7639144E0E6F236466D428873F652 + 3F3E6C1DE44699357DB12272D8D92F8B93438EBA46B401D51A64331676A377C8 + AA88BC32781E26731F112746AEDDDD860536E0A73DDBE28179658719D284504A + CFE50162932C2E44FF8C73F53B1471B191FD4EC2024913229126FF740E70CD2D + B32E80BD728B669C2AD0ED9F5B8342935150C5E121EEC60978C6395CEB8E3CD4 + 3477E803DCF0EE21463C2192412ECAF471389BC58ADD756D3856933F3F8072D1 + 15A8AB4C145D80F331FF00C353C7DE20654E3F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004EE4944415478DACDD87D5014 + 751807F0EF1D72803260D6819C38EA982958CDD054D4D88B06A914424091E2BB + 652A328356E028E3E08C394D59600E738047560C05653A935A681235FEC1C410 + E88CBC0534A09CC701C51D2F1EC7DD1EDBEEEA2EB7F7B67B2F8C3E7FEDFE96DF + EE87EFED3DCFCC494892C4835C124F801F9CFAC3ABFF6A6178087625C640E627 + 914C1BF0F3F7567A0C3C73B51D5A9D4114F2BE007F6DECC1C8B8197DFF8D0A22 + EF0BB0A1430BDDA89143BE93108599B2208748AF80268B67AF62EFC030862820 + 8BECD10E233369B943A447C0F74B6AC982DDAFC0609A64CE738B2F89DEFBE99E + B598309B3134323E853498D0D33FE210E913A0BB35532685EECE841DB2BB4F87 + 9CF458EF81FB9435E489CC788F13ECB8AD434D63378C268277ED5FFD18A8FB7A + 0FCCFAE217B228FB358F13A48BFE98AF750D42437D49D8FAF34637A8FBFA0EA8 + 335898F3C3AACB1E437336C5E176BF8E39FEEE4A936BA0B71322624E3036BDFA + 2402FCFD3C48D4828FBEAE11067AD3DF2A6ADBD0D4D107D38451F49EA33BD770 + C779A5D550EE4F9C3E203B21E8BEE64992D30EB49E1075CDBD2E93BC662A825E + DA8AB2B4F358F4D03266ED88AA1A251F260B037D3521BA347A6C88A3929CC11F + 10B9D55BD1387C15B3E48130ABA550269D6590F9A72EA23427D539703A26445D + 8B9A976483A90063216D78F8D11048255218F4460EF9656507CA0EBE291EE86E + 399B10EDBD43D8BC260687AF6C6392932F99CDDBC72297DEC942D5C16CE74077 + 2704FD1E11302146B617057B929D4E08EDE010979C62991C668BD9EE5E3452DF + 69C6851D97B1541EC52179407727C4F20239E62D88C05C623E9429DF2358166C + 37212C240165D37E061719351793A485DB6F0B6593ACDA709E433A048A9D103F + 8F6FC68AF8E7D0D3791386DE603C1B70003310C05CA327C4ADBE011436EC4317 + F11716442B98756292A090931CD41152A209447D568B3050A89E3A19C600E9A2 + 918F9822A17CE30704F9CF02A8E4B22F6CC38DB17A2AB970DE3E5BA43574B053 + 8F17E57128492DB70766165E24A946E956822FAF7E8179208BA4937C46928BF1 + F96718DCE2C717721F353169E621E962A13490C6C5CE7909A569E5F097FA0B03 + C52418B77615F3606BA44E330659A894C3B1658BB44E53DDA645C0E022D41FFA + 9DC3D901777FF61349757268874DCC393DBC8512A481530FBB0BEDD70C205C11 + C65BB346B2EB2CF056AB064F04AF805F6B02BE3DB6DD799BD975FC1C4975720E + 2854CF1747F0808E40CED6D8346F52B8A8A058E4AF2AC331E559D7C0773FFE91 + A43AB95B09BE9E980023613F738DC4B8E0DA3FCD3D782CF069062795FAE3C889 + 0A547DB2533C504C8234700AC087BA4AD3164797DB40B109F2531246B65C6F83 + 44ABC092D18D90509DD3BA5C02B71FAD244B0FAD479F5E5C822B550A2427AD73 + 9292C5C11AC1E062426379ADC455B9041EAFF84D30C1D4E4947B2F3C6177DD36 + 4DB55A8DDEBFB5A8DB7B1DA181B3057176C02DF91564495E060647CD62F63209 + D240B61C416D91ED6DEDCCEC2E7FFB9CD39F3B4403C526685D62D27407C9036E + CCFB8A54E56F15FD0EC69F9E87F49474E6D87A42F81269072CCADB82A1B1BB0F + 2BACAC154C30232DE31ED07E8C39825A7F813ADA3B116656B8443A04F68BEC83 + 09DF44724016E96E9A9D1472B15F344EBF55290C5C7F404516E7EF100DCCB994 + 82E6FE06517FEBAAD645A7E26492CAF740B1E56842882D3BA04F6556E513E083 + 58FF03B71750EDCB9032FE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005BC4944415478DACDD87D6C13 + 651C07F06F3BF63E0A1B6E83820182081B6282519100CA9BCA0436B6012228E0 + 54DE46C20037E216320CBE24206320EC850D514278512111C181BC19128C0B0C + 505E363665C3BDD051E9FBDAAE77ED7977E34AAFEDB54FB726F0FBEBEEB9EBDD + E7BEBDE7F97593310C8327B964AE40994C46F4A1B5E5E77BF454431215583673 + 0CC27BC9256F28B8BA0DDCBA7452B7813F5CA8834A6BF6897CACC05F6B9A60B0 + 50B8F7C028897CACC04BF52A688D5627F2839424448747896E1E14A0CDDEBD57 + B1F9BE1E1A1628209B547AAC4C1D2542F608B8A6F42C53B47C0ACC3607BF9F57 + 7A9218B779C5747452143406CB23A4D986C67B5A64CF7EDE890C2A30D08A0A93 + 43DBD1E981AC6BD660C3C2713D07AEDE759A295E39ADDB09D6B76A71A6A61156 + 1B2D3AF69FCE84EDD9AFF71C985D7C82D9B9FAAD6E27C815F7355FFD5B8D3676 + 9208F5C7F546ECCA99113CA0D66CE7F737549CEA3634F7DDA9686DD7F2DB074E + 5FF10D5CB7FB37A269C9381C88534481B28B1354F6EB8DCC89490809217B5071 + A2767CF6ED19FF4092F58D7BC163A3C345FB5C9DA8BE83CB75ADA0291B316CD3 + 476F3AB70BCAAB50BA7656F081429DBB7617662B85568D0569E347203C3424A0 + 1483067CC02E0BFD7A473817EA0E6B5762D7EFDC8781C5EBCC94DF24AFDA7642 + 27BF85CACC63181A3B921FDB585185F2DCD9FE81FE3A84D1DC89DE519E09721D + 42CFAE673AA3854FB2B1DD80D409A3D85E2B7E27F3AA16A3467F01D1F111A05A + E428493DC2230B771FC7EEBC4C69E0DAB273441DC2C14E92584534ACF6AE1B77 + 5ACCF8346B0A74262B0F34B10F2095E4255B114C8A5AF47B4601B94C0EB3CEEA + 44EE39588F3DF973C9815265B0D0888B0905ED96B46B871092D4986C7CAF9D3B + 7934369C5EC227173FBCAFE873027244C72A1CCECF9106E6949C21EA10428217 + 0D3B60A18D1813968D8D4B66E04EAB06176FDC45272D86ABD41A6772CA91F1EC + F244795C9343EA1A28FC9C750A231392655E81ABB6FF42D421B8041591BD30AA + 281E03070F407FFA69EC483D8CC8D068F6D169FCD5F8006A5D077F2ED7CE4A6B + D641A7F8138392FAC3C1D89DD771870A491E7AE71846C427C92481FE3A8490E0 + 01F51C8C9FF60A9A1AD8E5A539062F87AF472F744D9E15E9E3D0AE31A0F8720E + 9A982B189CACE4C76907CD221D4EA837A4AC2D02D5AB6EFA074A95C644F1EFE0 + 0B3B127820571CF229DB2094CCFE9E4F92EB0CDC6CBD6EAA66934B147DDE1DE9 + 0A5537E830317E2ACA32F67902576E3BCE94AC99195082AFBD3181BFA180E492 + 7C499607BDF2106E5B2E63D87343F86376F6ABA71D9408C95FEB21940372B8B1 + 71AFA23C731F42E5A1FE8124094E9D3E99BFB12B52DB6642581FB91327943BD2 + 35CD965A15C2D543519D7F1E612161DE27C9F2AF7E62CA3E4E834ADFB56E71CD + DB5F821CF0D1CDBAA0ED6DF791A84C108DB922857101F8EFAD368C8E198F905B + 2938F04596F432B36CCB51A63C37C30994AA0EB3198A187652EC4A1401BD81A4 + C68434EFB2B8A4C8B1289C5C89CF4B8EF8067EF8E58F4CE52773024A70C6CC14 + 5869ABC73956DAE277EC9F1B4D7836E2451E2797876263F17E1CDEBC941C2855 + 1AB6A5C5C544605CE9001EF8082086FA4AD31DC755C0405F097255D5B9580424 + 45DEBC560B994A89E1C68590B12BA76BF904BEBFE920539E3F1FF774643F3827 + 552891963A4B2225BB97319AC78DE933965F4AB8D92A756D22E096FD677D024F + 58DE43465AFAC3179EF638EE9E664B4B0B9A6FABF07BF635F48D8CF5F9778157 + E0A2C2FD4C59C102A88D14488A4B90030AE50DEA8EACABADE37BF7BEB78F7AFC + BB2360206982AE45922609D22B7061C15EA6A27031F13B38ED9B8198973E8FDF + 76ED10C1404A0277162CE25B1957DB0E9EF39BE082CC050F819E6DCC1BD47502 + D5D7352081527A45FA04B6EBC9124CF96E90132820034DB381450E0B49C6DE79 + 87FC03E7AFAF604A0BB38881B927D371A3FD12D1B9BE6A567206BE4EAB0C3E90 + B45C3B04694902832A73A9A0009FC4FA1FFC6901FC25B08E060000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005CA4944415478DACDD7695013 + 671807F0FF063914EA815C893896413C68FDE0556BEDA185B6520F042CB5DA6A + 4BABB5E228DA822D8C8333F698D17AB50A44B0B68EE3D156676AB56A456DFDE0 + D4F1A21E80504B100C09470E0824269B6C775F48CC866CB2403AFA7CCABE7BFD + F69F7DDF27A11886C1E35C943390A2285127AD959FEFD353494343B02A652202 + FB49046F6877F51AB865D9F45E037FBA5089DA468347E42305FE7E558156A305 + 0A955E10F9488197AB54D0B6991CC8F793C62134248877739F00CDD6DEBD8A75 + 8D7A6858A01D5979AF0599C9E379C83E01D7149E65B62E7F191D661BD9CE293C + 251AB7E9A3997860B140D36A7C88EC30A3B24EC343FA14D8D31A102081B6FD81 + 5BE4FA4553FB0E5CBDEB0CB37D4562AF13ACBAAF45E9D51A98CC346F5FB3CE80 + 1D99AFF41D98B9FD04B373F5EBBD4E902BEE6BBEFE4F13942D6D8EB1BF6ED660 + 57D62CDF01B51D56B2BDBEF874AFA1D96F27E0BE5A4B3E1F3873CD33F0E3DD7F + 889A968CCD0659D8C06EE351A1C19839390E7E7EE21E949FA8159F7F5FEA1D28 + 667DBBDBA043AC74306F9BAB3FCB14B851D30CDA62160DDBB8F435C7E73CF949 + 14AE9DE33BA0EB3A78E58E1A06A3098D7A231227C622D0DFAF4729FE6F406EE1 + 25E34A1DF4ED26B41969DCB8ABF298E475F34EE824E528493B86982163C8D886 + E2939067CFF30EF4D621381007749DC50D2DAD683359D1C176072EC9FA660312 + 26C5B1BD96FF4EE69C5C82ABFA0B080E0F82A55E8282B94708327FF771ECCE49 + 1306AE2D3A27AA43D8D84932421A0A8B4D42B6554D1AAC497F0E4693996D5D36 + 82134AF2B2792B0C032B3074E4404828093A74260772CFC12AECC97D433C50A8 + 144D068C8C7A02B44BD2FDD8D9DBCE22B90EE19CE4BF0D5A244D8DC7FA33EF92 + E4C2E306F3CEB32347B7AFC4E1DC2C61605641A9A80E614FB0B4710BAC9411A3 + 6C4BB16A7E029BA41617CB1B60B1F21FB045A37324271B13CEEEB774BB2687D4 + 555BF06BC6698C8988A7DC0257EEF84D5487A8617F22C5440DC2535BC3316C84 + 1461E66814CCFB11FDFD83D947A75151AB8552D3D521D8EB179465411DF037A2 + C746C1C6581DD77185DA933CF4D6318C0E1F4B0902BD75082E41596418F6DC9B + 856989CF42515D8B8EBA103C13B80EFD10488E59923401AA663D8ACB3F8582B9 + 8611F132324EDB6816697340DD212965102EADBCED1D2854CAE656D249267C13 + 4180E4BD6491434CD190A77626C975066EB6DE345C62938BE49DEF8A74863655 + EBF04278028A52F77507AED8769C295833BB4709BEF4EAF3E486762497E4642A + 073AE9215499AE20F6E927C93E2BFBD5D3360B0F49AED505E5801C6E4AE88B90 + A7ED83BFC4DF3B50F01D6C68418C7428493061E60C726367A4566940C0208903 + 672F57A4739AF5152A0436C5E052EE7904F805B89F24CBBFFE8529FA24192A7D + E7BAC5356F6F0972C08737EB84AA958D889445F0C69C91F6713BF05EB912E342 + A6C1AF3C0907BECC105E663EDC7C949167A73A804255A7D6B0098661F2AE481E + D01D4868CC9E662D8B1BDB7F0AF26794E08B82239E811F7CF53353F2D97CAF09 + D2EC8FCD6859244970D6EC24986853B7634CB4D1EBD8DD5B0A8C0A9A44701289 + 3F366CDF8FC39B9689077A4A70786428A6164A09F021800FF594A62B8EAB1E03 + 3D25C8D5693A8307148BBC5D56014A25435CDB2250ECCAE95C1E81EF6D3CC8C8 + 7317A04127EE07E7F4621992E7CE1148C9EA668C26B8F183A690A5849BAD42D7 + 1605DCBCFFAC47E009E33B484D4EE97AE1E96EFB5DD3ACAFAF47DD1D152E6696 + 6170FF211EFF17B8052ECEDFCF14E52D44539B05628A4B9003DACB1DD4155959 + 5189287A38F6BD7914C181037A96A02B506C82CE25264D3148B7C045797B99E2 + FC25A2DFC1C4EF86213D259D7C76EE10BE400A0277E62D86C6D079B36D07CF79 + 4D7061DAC22E60F736E60EEA3C81AA2AAB116191B9457A04AAF5E2124CFA21DA + 01B4237B9A66358B8CF58BC7DEF443DE810BD6153385F919A281D9A752704B7D + 59D4B19E6A4E7C2ABE4D2EF13D506C397708B12508F4A9CCA97C027C1CEB3FCA + 3703FC8EB0F6EA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005CB4944415478DACDD77D4C13 + 671C07F06FCB7851886F932A15A388A022CEC9DC9C51A70EDC6422286CCEE9A6 + 1B9BCE81892F1B98410C266E73D10D752A2F827333BE6ED344A7F35D17B39819 + A760E4A51685CA4B2DAD420BA5BDBEDEEE0E5A7BA5D75EA189FEFE69FBDC5D9F + CF7DB9E7F714014992789E4BE008140804BC2E5A5F7CB557771536280419C971 + 080EF4E39CD0E6EA31F0C795B37A0CFCFD9A040F955AB7C8670ABC704B8636BD + 0932858613F94C8137A50AB4B61376E4A789133028248835B94F80464BCF1EC5 + 06A5062D14D08694D43F4166CA2416B257C0758597C9FC556F4267B4329FB30B + CFF1C66DFD622E0C26135ADAF44F913A23240D2D2CA44F81DE56DF00215A3B0C + 2E911B974EED3D70CD9E8BE48E8C841E27286D6AC5A55B75208C66D6B1C76A2D + 7666CEE93D3073C71972F79A777A9C205DF49FB9ECBE0AF227EDF6B17FEFD661 + CFDA79BE03B6EA2CCCE78D25E77B0CCDFA301E4DCDADCCFBC3176FBB077EB9F7 + 6F5ECB92B45A111B2182914AC1B1060F08417CDCA81E266AC137BF5CF20CE4D3 + DF2AEA949DC0AE3623AD5731AFFF5436312DC36C32F2866D5EF1B6FD7D6EF159 + 14AE9FDF7BE0ED074AC4458ABAF5C1FFEE35833099A995A9C7F4092310E8EFE7 + 558A3E07DA1689A4E131F35A2B5753400BB43AC2639265C6DD500BAB509A760A + 1103C732639B4ACEA2386B8167A0A71DA242A662016DF5486D0441E8A1D11A98 + 24E9159AF04A64B7EBB3CF2EC72DCD35048706C1D4284441F2710699B7F734F6 + 66A77103D7175DE1B54358A945F252D43098BA6EE49E4C81F4A4C9200C56AAB7 + 510DB8DDC099E44D633EB4FDAAF1E2E87E100A84D0A9093B72DF1129F6E5BCC7 + 1FC85595322526460E4187817D5E70A0101D8491D9210813C94A72C6C451D878 + F16326B9D0A801ACEB6CC8311DAB712C672D37706DC1255E3B842DC193F55B60 + B068116D5D819549D32057B5A1BCF631F44E3B8446D3664F4E3C36944ADED4ED + 3B69A4BAC6843FD3CF63AC2846E012B87AE75FBC7688F2FB4ABC3C5A84F1F9A1 + 1836220C838DE12858F01BFAF80733FDACB6A9055A3D613FFFFBEB19680EB883 + F0714361252DF67167A82DC9A31F9CC298D071024EA0A71DC24C35E8F151C391 + 5F3D07D3125E87ACE621740D21782D70035E4020734EEACCF190B7E87048BA01 + 4D7E77302246DC79ADD54C21AD76A82BA4401E841BAB2B3D03B9AAA2568ED851 + 62C4FD24628074D1C881443876251F4348403005B132ABF5AEF60695DC10F60D + 3A211DA1AA1A356684C6A328F5407760C6F6D364C1BA24AF129CF9D67466421B + 924EF255413654830FA1CE5286C8D891CC310B69A6CE33B190CCF3DC05A58134 + 6ECAA037509C7600FE427FCF40AE2A9336625274389360FCDCD9CCC48EC856B9 + 1601FD85769CAD9C918E6936562B10A88AC08D9CAB08F00B70BD4856FD70922C + FA2A050A4D67DFA2376F57653212888D1EC92448039F4ED6096D962B31442C62 + 8D39226DE336607D951C1342A6C1AF2A1187BF4BE76E339F6F3B411667A5DA81 + 5C5555F78895203B1136886BCC96E6430A37AECF14E4CD2EC5B705C7DD033FDB + F20759FAF5BB5E25382F29118499E8760E61D67B1C7B50214374D064062714FA + 63D38E8338B675257FA0BB046322C230B5308C013E05B0A1EED274C6D1E535D0 + 5D82745DB0AC6001F9222BCBAB21508811D5BE1402AA733A965BE0279B8F90C5 + 398B995F257C6A56891829C9F33952B2B8183333B849FDA730AD845EAD5CDFCD + 0BB8EDE065B7C033FA8F909AB2B0EB8137773BEE9C666363231AEE29703DB31C + 03FA0C74FB0F904BE0B2BC836451EE12A8DA4DE053748234D056AEA0CE4849B5 + 0443CDC371E0FD13D4AF9FBEDE25E80CE49BA063F149930FD2257069EE7EB224 + 6F39EF6730E1E76158B47011F3DE7187F0059213B83B77195AB49D936D3F72C5 + 63824BD2967401BB6F63AEA08E0B482AA981C8247689740B6CD6F04B30F1D770 + 3BD086F436CD1A0A19E91783FD8B8E7A062EDE504216E6A5F306669D5B888AE6 + 9BBCCE7557F36352B12BA5D4F740BEE5B843F02D4EA04F650EE513E0F358FF03 + 60C509FC3768FE7E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005DC4944415478DACDD7795013 + 571C07F0EF0621208C8A1D50F1A05E2878A396AAE0056DA52A5468A9D5565B5B + 8F8A538F169CC2D038638F196D3DAA7208D6D65A8F5A9DA9D5AA55B1A34E47CA + 80501552F0E008C8514990906CCEEDEEE2862C64932564467FFF64F3F236EF93 + 6FDE91101445E1592EC21A481084A89B36655DE9D6A71AD0D7076B6342E12D75 + 131C9073390DFC66D56CA78127AECA51D9A0B68B7CAAC03F0A2AF0586B40455D + B320F2A902F3CBEAA06C212DC8F7A3C7A1AF8F276F709700F526E7A662754333 + 9A68208794573D4262EC241EB25BC08D1997A91D6BE642A337B3CF9333CE8BC6 + 6DFB701E7406039A1E6BDB911A3DE4D54D3CA44B815DAD9E1E12285B75369169 + 4BA7751FB87EDF456AD7DA28A7132CAB51E252C103907A23EFB5FF546AEC4E7C + A9FBC0C45D67A9BDEB5F753A41A698AFF9E6DD46D43E6AB1B4DDB8F500FB36CC + 771D50A931B1CFD3B22F380D4D7A3B1235F54AF6FAC8C542FBC08FF7FF296A59 + 9A8C46848F1B02D260E2B5FBF7F6C2D4E0C14E266AC2E7DF5F720C14B3BF5DBB + 5D8D88B1832DDB4C5EA9A2ED515E0F45830A46835E346CEBCA572CD7A959E790 + B169A10B80FF5422627C60A739C84C7E0DBDAFA9B524C68F0880D4DDAD4B29BA + 0C985B5489B913DB81056535EC2373BEEA753AB4D2EDF76A9AEC267953BF172A + 490972E24F63A8EF68B66D4BF6396425BDE618E8E884B87EAB8A07E4AAB1C580 + 565207922441EACCA86D6AA1E76A60A7FB93CF2D4741F35578FB79C2A090203D + E6248B94ED3F83FDC9F1C2C04D99B9A24E08B3D98CE91386B369315558568BB8 + 5963D8EBA6161DBB788492CCD7EF80BA57299E1BD10B1242028D8AB4200F1C2D + C3819437C40385EA464935BB8A5B75FC7ED21E04B43A3D545A6655EA79494E0D + 1E82B48BEFB2C9F98DECC3BB8F438E6A5D87E3291B84811BD22F893A218CF426 + 1B1E1A849FE432E84C6A049957226156280DD1A09C5E2846BD8ED7BF59ADB524 + 1730DA0F0693A1D37B324855B901BFADB880D1FE21844DE0BADDBF8B3A21720B + EF636EE8308CD9E187818103E04B0E4256DCCFF072F766F7B33A3A31E69C653F + 0CBD67EECCFF085544010605F787996ADF3B3B42B9248FBD751AA3FC820941A0 + A313C2A02711313918697F876346D48BA828AF84A6DA072F4837A307A46C9F79 + 61416850AA71A2F233D4B815233024A00D6C36D248B3056A0B49D47A226FDD1D + C740A1BA5E7417915346B2093240A6182493E49E98E3F0F6F086895E48CC6ABD + A5CEA393EBC79F221D90D6D0C6721522FC22911977A83370EDCE3354FAC6055D + 4A70D6CBE1EC801C9249722A918C87BE3FA21AC5183EF679F6351365A4FB1978 + 48A63828036470617D67222BFE10DC25EE8E81F6120C9F3802A1DFFA2372DE1C + 76606BA4B2560D8FDE120B8EAB8E48EB3415A57590360E455ECA1578B879D85E + 246BBEFE95CAFC241675CD6DFB167378DB2A52A3C1CCC9A3202B9CCD02DB076B + 83D6D736A05F803FAFCD1AC9B573C0AA925A8CF39901B792681CF97285F036B3 + 7AFB292A2B29CE0214AA6BC5F71145CF412E417E227C90501B9766258D0BF60A + 836C4E0EBE483F691FF8C157BF50399FBE2E2AC1E9F457BCB53812F317448334 + 929DFB18B50EDBEEDDAE4090E714162791B863CBAEC338BE6D9578A0BD042326 + 0CC3B48C012CB01DC087DA4BB3238EA92E03ED25C8D46562350F281679A7A814 + 445D0046B62C0541EF9CD66517F8DED6A35456CA623C5489FBC1393B3B00B131 + 0B055232D96833B2B849BDC3D8AD8459AD42EF2D0AB8FDF065BBC0B3DA771017 + BBE8C98437767ABD639A0A8502D5FFD6E1AFC422F4F1F2B5FB07C8267099EC30 + 9599BA84FD5D27364106C8952D6847A4BC548EFEC6C138F4E629784B7B762DC1 + 8E40B1095A979834C5206D0297A61EA4B265CB45CFC1A8EF06226151027B6D7D + 42B8022908DC9BBA0C4DEAB6C1761ECD7598E092F8254F809D8F315B50EB0554 + 262F87BF21C026D22EB0BE595C82D13F0CB200396457D32CA791C3DD427030E1 + 9863E0E2CDD954866C856860D2F945B85D9F2FAAAFBD5A1812873DB139AE078A + 2DEB13426C09025D2AB32A97009FC5FA1F12F706FC04DE30FE0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005D54944415478DACDD77B4C13 + 770007F0EF15A145888A5B51D1459D28884AA29B82E273B2A93CEC04E79C6E3A + CDE69CB0A86C60063198B95774F33195B7731AE3639B26537C0D5F3393690C6A + A63C041514AC05941668CBF579BB3BBCD2D25E7B942EFAFD87F6D76BEFD36F7F + 8F4050148517398435902008416F4AC9BDD0AD6F15E02F41CAFC09F0137BF1DE + 9073B90DFC71C574B781BF5DAAC09D3A9553E47305FE5952839636032A1E3EE5 + 453E57E0B54A0594ADA40599241B8BBEFE129B9B7B04A837B937156B1B9AD144 + 039D21BB055C9B7D8EDAB2F20D68F566F6795AF669C1B84D9FCE86CE6040534B + 5B0752AB47456D930DD2A3C0AEA6A78F084A8DCE0E79ABE609BE5A12D57DE0EA + 5D45D4B655D16E3758F94889B325D520F5469BD79EA8D4D89EF466F78149DB4E + 503B57C7B8DD2013E667BE71B711F2A7AD96B12BB7AAB16B4DACE7804AAD897D + BE3EFF8CDBD0D4F767E251BD927D7CA0E8BA73E0E77917052D4B93D188988860 + 76055A47DAC70FE1AFF673B35113BEFEE5AC6BA090FDADF0CA5DC445065B7EE2 + F3D7EFB37F4B6B1A505BAFEA126CE3C7B32C8F33724F213B25BEFBC0E3C57710 + 3F29C46E0E562B9A613099D9D519362410626FAF2E61FF3720D76083520D0D3D + 46EA0C78F0F8A9D3CFB8A1DF0995A80C0589C7303420941DDB907F0AB9A96FBB + 06BA3A218E155761FE94119645C28599471AAD16ADA40966B389DE36B4080F0E + B27B7FDAA9A52869BE043FA904863A11B2E61E6191997985C84B4BE407A6E49C + 17744298CD66C44C0C45DBB37DECAF1BF7316BFC30E84C04481AA9D7E9789BBC + A6DF0275AF72BC14DC0B224204AD8AB420771FACC4EEF4778403F972E24A2564 + 5121D0E86CAF13F720E8956D84CE484143EAA0D71BA0A557BABA8D44C8900158 + 5FF421DB9C74781F9BF771C8104D320EA7AFE107AEC93A2BE88430E849C44F09 + C7DEF20D50EB5A3058B70CD1E346A145ADC53DB912A4C9763FD5B5692DCD0585 + 4AE98564B0FB4C06A9AA32E0F8F233080D0C231C0293B79F147442300DC6468E + C0A82D520C1C3C0001E420EC987B18BD7DFDD979A8686A659B63BF0C3D1DBEFF + 7B251E12251834B23FCC54C7BCED0CE59A3CF4DE3184484712BC40572704D7E0 + 67172310151D899AAA07D0D6FA6382781D7A40CC5E13396628D45A12BF5667E0 + 89A41483C3DA178BD16CA491660BD41192904B7035B9D435902FA72F9742366D + 34DB200364C220B926253D7CDBA708BD5A6FA9AFD2CDD99E2E9D91D6D0C62A15 + A648672227619F3D70D5D6422A6B6D9CCB06497A2B993D391CA9972762DA5B93 + D91B7248A6C9F1441AE42FE7A1CE548961A387B0AF9928237D9DC106C9848332 + 400617D1772A7213F7C15BE4ED1AC897C24BFF226E6A38C6FD148899B367B037 + B6462AE56AF8F41659705C3A23ADDBAC2B5740DC381457D32FC0C7CBC7F12259 + F9C31F54CE1732289AF5EC73E6F076D52003ECB8593BB45EDE807E41813663D6 + 486E9C033E2C93638C7F14BCCAE6E0C0B7CBF9B7994F361FA57253132C40BE14 + FD536AD3A06D23B620BE31AECD07346EA46F04326714E09BAC23CE811F7DF73B + 55F0E57C970D6A5A9A113BFD35B6C1D8B839208DA47DCBC6369763F76ED76084 + E4751627127963C3B6FD38BC698570205F4E16972166521826660F60811D005B + A8B3363BE3987419E8AC412617BD936D804291A537CB41288230BC7531087AE7 + B48E53E0B28D07A9DCF48578AC72DE2097E9F94190CD8DE769C9E460CCC8E2C6 + F68E60B71266B5F27DB620E0E6FDE79C024FB47D8004D9BC6713DE68F77AE736 + EBEAEA507B4781E2A49BE8E31BE0F41F2087C02599FBA99C8C45686C35404898 + 0619201747D0CEC88AF20AF437BE827DEF1E859FB867D71AEC0C14DAA07584B4 + 2904E910B838630F959FB954F01C8CFE792016CC5BC03EB63E213C81E405EECC + 58822675FBCDB61E3CEFB2C145898B9E01ED8F314750EB055459518540439043 + A453607DB3B006E7EC1D640172C8AEB659452387798561CF8243AE810BD7E553 + D999CB0503534FCFC3EDFA6B82AE7596F8B004EC9015781E2834D62784D0F002 + 3D2AB38A47802F62FE0385F9FDED80157E3C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005DA4944415478DACDD67D5014 + 751807F0EF1D6F87908A0AEA69A9990A944D52A01356BE1684888299A2605299 + 0A934881238C83656FA3E5BBBC08A6192332A533990686A8E338A6912F230A08 + 39A2221DF27627C7BDECDEDDB6BBB8C72D777BB7C0CDE8F3CFEEFE76F7F6B3DF + 7D767F27A1280A4F73492C81128944D44929B967FA74573EDE32A42C08819787 + 8BE0053957AF813FAC98D66BE02FE7AA71AB5E6917F944817F5EAEC3232D89EA + 7B2D82C8270A2CAF51A0AD5D674626464DC2206F19EFE24E0112C6DEB5E2FD87 + 2AB4D2400E5971A709C9D1AFF2907D02AECD2EA3B6AE9C010D6162B7D3B24B44 + E336AF0A839E24D1FA48DB85D410A8A86BC6A7F38230A4BFA7C4E9C09E563F77 + 29DA3AF436915FC687F61DB8664F29B57DF5AC5E2758F3A00DA72EDF818E30F0 + F6352BD5D89138BBEFC0C4ED27A8DD6BDEED75824C318FF9EABF4D686869378F + 5DACB8833DC911CE03B6698CECF686BC93BD86A62E9D89078D6DECFAA1D22BF6 + 819FED3D2BEAB5D46B35889D1D041DC97F44323757048CF6ED65A2467C75E094 + 63A098EF5BC1E92A2C9D11607EC447CFDF6297750A15144DAD3D826DFAF81DF3 + 7A466E31B25322FB0E2C2CBD8EC5B35FB6EAC1BA263528A3112AB51EE39E1B02 + 57A9B896713AF0E792AB880B9B64EEC113176BD8A54AA9829A469326A9C324AF + 12BBA19456223FE618C6F8F8B3631BF38A919B3ACF31D0D10C51547A8D07E48A + E9A30EBD895E122008121A7A96787EC420ABF3D38A97E1B2EA1CBC7C6520EBA5 + C89A7B844566EE3D8EBD6931C2C0949CD3A2660803FD8958121604ADBE1378EC + 7C25A64C1C0342AF676FCE48E805932C27B642DDBF0A835FE80FA9440A8D5267 + 46EE2BACC1BEF4F7C40385EA70D9752484BF62952097A2DE40C14068E9B79C02 + 69344145CF1AA3870FC686D20FD8E47CC70DE49DC321277424A1283D5918989C + 754AD40C41123A2C0D0FC6CEF2F5D01B3B20EF88C7D489FEF494A585A259052D + C96F1142AF332727F7F7A5D1A4D56F3248652D89DF134EC2DF2F50621398B4E3 + 0F51334461C93F888B08C6842D433062D470F8E84662D7DC2278B97BC16832A1 + 45D541F7A2F1713B18F0DD8555B86DFC1B230386C14475A5DE1DCA257978F131 + 4CF00D9008021DCD103A0DFDA1A613FCB02408A1B3A6A0AEF62E34F7BD11E2B1 + 0EAEF0608F091A2F474BBB1EC58D5FA0597613A302E59D609381469ACC505B48 + 49830C97926E3A060AD5A192722C9F138217B7FAB240A6182497A4CCD593ED43 + A6E72AD497E8E486F2CEEF8EB48436D52AF186EF4CE4441FB406AEDE769CCA5A + 3BA74709BEF5F654F6821C9249325892867BCF1C80C2F506C6BE349ADD67A40C + F471240FC9140765800C6EF2A037911B73106E5237C7407B09C686052368A71F + 66864D672F6C896C6B50C37D80D48CE3AA3BD232CDFA2A053C9AC6E052FA19B8 + BBB8DB7E49567EFF1B95F37914142A82DD66266F5BD5F14885B8C8D7D9041960 + D7C53AA18D0D0F3154EEC71BB34472E31CF05E6503267A87C2A5321C87BE4910 + FECC7CB2E528959B1A6D060AD591B22BBC04F989F04142635C9A77695C80E764 + 644ECFC7D75947EC033FFAF6572A7FFD821E251831271C3A83CEBA4F0D5A8763 + B76FD461BCEC35162795BA61E3F602146D5E211E285445C57F21362214217B86 + B2C02E001F6A2FCDEE38A67A0CB497205367DD927840B1C89BD7AA2051C831AE + 7D0924F4979377F3F680CB371552B9E98BF09FD27E825C4DCB93236A6EA4404A + 461B6306163769C064F653C2BCAD42BF2D0AB8A5A0CC2EF084360ED151F31F37 + BCC16A7FF734EBEBEB71FF96021712AF61A0A78FDD7FB33681F19905544E462C + 9ADA498829264106C8952D68776475553586199EC5C1F78FC2CBA35FCF12EC0E + 149BA0658949530CD2267049C67E2A2F7399E81E9CF5E3082C9CBF905DB79C21 + 9C811404EECE8847ABBAF362DB0A4F3B4C303626F631D07A1AB305B57C816AAA + 6BE147CA6D22ED021B55E2120CFF69A419C8217B9A662D8D1CEB1288FD0B0F3B + 062E5A97476567268806A696CCC78DC67251C7DAABC8C068EC8ACA773E506C59 + CE10624B10E85499453905F834D6FFB2BF00FCA722E6FD0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'MoveRemote_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005D64944415478DACDD77B4C13 + 770007F06F8BBC1D8ACAC3EA82C63904B664334E5C7C0BDB748AC86345D1E966 + 9C0AC854363083184C746ED1A938E525A81B312A53893A9D2FD44D974D427C6C + 3E4098F101321E4ACBABBDDEB5BDDD9D5EE9EBDAA374D1EF3FBDFEEEDAFBF47B + BFBB5F2AA1691A2F7324C640894422EA436985177BF5AB7CFB7A202D7E2CBCDD + 5D044FC8BB1C066E593AC561E0A14BD5B85BAFB4897CA1C0B3571FA05D4DA1FA + D15341E40B0556D63442D141189049516F61908FA7C9C99D0224758E4DC5BAE6 + 36B432401E79F37E0B3E9F33DA04D92BE0EAFCF3F4D6E5D3A022F5DCFB8CFCD3 + A2719B92A6434351686D5777235524AEDF6B465ADC1803D2A9C09EC6CB4D0A45 + 97C61259F3181B974CEB3D7065EE393A2739D2E1066B1E2B507EF53E08526BB2 + EF89B213DB53DEEB3D3025E724BD73E5870E37C886BDCCD7FF6941C3D30EC3D8 + 959BF791BB6AA6F3800A958E7BBFB6E88CC3D0F4051178DCA4E0B6F79FBB661B + F8C5AE5F45DD961AB50A4931EF722D18C7DDD515B2413E0E36AAC3861FCAED03 + C53CDF761CBB86D4E8D1864B5C72F62FEEB5AE4989B64E758F60EB3FFBC0B09D + 55780AF96951BD07E6965D414AEC38C325E6D3DA49314D9020490A4101FD7BDC + E2FF062CBDF037F7CAB647E9A550ABD5769BBC4EEE84527A07C571C731DC7714 + 37B6AEE8140AD3E7D807DA5B218A8E55586D909D475D1AE6B2EB08681828DB64 + E080572C3E9F716A11AEB65D82B79F07A87A29F2661FE190D9BB4E6057469C30 + 30ADE082A815822209A4C64F6096A967C7B1775FF0B040487524545A09F47A9D + 609395E45674FA5461E06B3E904AA45029090372F7811AECCEFC483C50F0121F + AD44BA3CDCA241BE45366C93EC7CA4754CAB5A1201FDFA63EDB94FB8E6FC469A + CE4F1E19DCB502A599AB8481ABF2CA45AD106C83CB622760CB9F1950531DF06F + 5F80B0614150A90934B73328BDE90F243584A139D9283F503ACAE23B59A4B296 + C2CF8BCF60947FA8C42A70C5F65F44AD10F9872F2335611282370FC290A0C1F0 + 258662C7EC5278F4F1E4F62B99660942C56DB3977BC3A524DC25AF60684820F4 + 7477EBE650BEC983F38E23D82F442208B4B742102A1592E59310772804E323C7 + E141ED43A8EAFA62ACFB1AF4813B774CD0E0814CD31A942BBEC5138FDB080A95 + 71E35ABD9641EA0D506B484983072A56DCB60F14CA9EA3BF23297E22C2B6FA71 + 40362C926D3267FA41787B7941A3A5B93977B3B382692EC0E4F3E64863684BAD + 1213FD2250105B62094CDE7682CE5B3DCB6E835DED6D484D8CE01A9CFCFE04EE + 843C926DF21D49066A3D8AA1F0ACC688378671FB74B496398E32417253E03994 + 05B2B8F001935018570257A9AB7DA050727FFA0D29F2C918FDBD3F22A64FE54E + 6C8C543474C2AD9FD480E3638E346EB3BEAA11EE2DC3519179116E2E6ED66F92 + E5DF1DA30BBE8C46631BC9BD67176FA1069313A6425E16C601BB4FF60CDAD4D0 + 8C0099BFC99831921FE7818FEE34E0CDBEE3E1726706F66F5C2CFC9859B6B98C + 2E4C8F350085B2FBF04524CF8B343468DA882948688C6FF321830BF10C47F6D4 + 627C9D77C43670C93787E9E2AFE2ED36D8DEDA8AE50991987F3C0C3367CD00A1 + 252C8E21B46ABB63F76E3DC0EB1E63389C54EA8A7539FB50BA69A978A0980659 + 6037C0146AAB4D731C9B1E036D35C8E6B2E74A13A058E4ED1B559034CA30B263 + 3E24CC93D33836819FAE3F401766CEC5BF4ADB0DF299522443F4EC2881967456 + C6B41CEEED7EE1DCA384BD5B85BE5B1470F3BEF3368127D51F23363AE6F984D7 + 5AEC376FB3BEBE1E75771BF147CA0DF4F7F4B5F907C82A7061F63EBA202B112D + 1D14C4846D9005F2B10635475657552350FB2A4A12CAE0EDEED5B306CD81621B + 348E9836C520AD02E767EDA58BB217899E83917B86401E23E7B68D5708672005 + 813BB316727F7ED86C3B70C16E83897189CF8196CB9835A8F10D54535D0B7F4A + 66156913D8D426AEC1193F0E350079644FDBAC6590235C42B1577ED03E70EE9A + 223A3F7BB16860FAE918DC6AAA1475ACAD4485C6624774B1F3816263BC42888D + 20D0A932A33805F832E63F3FF4F6EDD9B0D6710000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005BF4944415478DACDD8694C14 + 670006E07716B95184BAA848630D5A95B63F34B636B5B58AD44AE51068BDAB96 + E2513555A9808206135B1B4501AB727B800431AD26B52A5A3C883F8CC4584C3C + 40D0A8152947DD8565D919F69ACE0CCEB2D7ECCE2EDBE8FB87D96F77761EDEFD + E6FBB24BD0348DD7398431902008512725175E1DD07FE5E7ED81B40593E0EBE9 + 237841DEE53470DFAA194E037FBDD680BB4F653691AF14F8E7AD2750901ADC79 + DC21887CA5C09B8DAD90775306E4F7F32663D8106F938BBB04A8D63937159FB5 + 7741C6007964DDC33624274C31410E08B829FF329DBD261C2AB59E7B9C9A7F41 + 346ECF7773D0ABD140A620FB912A35EA1EB59B205D0A74343E1E12C87B7A2D91 + 8DCFB12B297CE0C00D87AAE9DCB5114E37D8F85C8E4BB71E83526B4D9EFBB753 + 89FDEB3E1B38705DEE39FAE0862F9C6E900DFB31D73DEC40CB8B6EC3D88D3B8F + 7168E35CD701E52A1DF7787BF145A7A1294B67E1799B9C3BAEA8FECB36F087A2 + 1A51B7652FA9C2B6151190292993714F770F04FAB93BD9A80E3F1EBB641F2866 + 7DDB5D791D690B3F32345874A696FBDBAE50737847B273E5E786E38CC22AE427 + 470F1CB8ABFC1AD2974E3700F928482DB4ECDAA8A310E83FD8E116FF3720DFA0 + 82593AF87429499BEF51A73E884EC97D94249CC1988009DCD88EE22A14A6CCB3 + 0FB4B743EC397E959983E1160DB2F3884D4FAFFEE563353327BD2CCE4FAD5A8E + 5B5DD7E02BF582A65982BC98531C32B3E82C8A52138481C9055744ED101A3585 + D4A5E1E8A6FA40254C8323A481DCB144AF6680FD70F3266FAAB3A11C528F37C6 + 0E81849040D5491990874F34E270FA57E28142C9AEA8E11A6CED529B8C7BBABB + 195AECD5D27DF391094591F0F3F5C1F6EA155C73D271434DCEE391E37BD6E364 + FA4661E0C6BC4BA276084AA5C2566699D959930C52A744C08B4508918E044992 + 20353408BDC6E2A3E79B0B9E208546A7B1784F16D9D9A4C11F89173121288CB0 + 0A5CBFFFBCA81D62776935321267637CD6308C1A3D120154080EC49C84D7206F + C31C64E71FD7844E87ED9793F0407D03211347404FF77FFCE650BEC9CA456730 + 5E3A911004DADB217A145DD896148988D2504C8BF8104F9A9E42F5CC0F1F78A6 + 61103CB9D7B073926DB4469685EEA1F7303A2C981BD7EAB50C526F805A43122D + 5EA85D7FCF3E50287B4B2F20E3DB48BC932DE5806C5824DB64EE9C4AF8FAF870 + 73909D737794B54C73C34DCE37471A433B9A3AF18974160AE2CB2C816B73CED2 + 799BA21C6AF0D3D91F7317E4916C93EF13A968F22A81DCBB01A1EFBEC53DA7A3 + 9945DC686EF2E7F05016C8E2A6064E47614219DC25EEF681621A9C3567267761 + 63A4BC45090F7F8901C7C71C69DC66737D2B3C3BC6A036FD2A3CDC3CACDF246B + F6FE4E176C8E352C1FECE66D2D0A990C5B56C560EEF1311CB0FF627DD0B69676 + 0C0F0E32193346F2E33CF0EFFB2D78CF6F1ADCEE47A26257A2F032B33AEB345D + 98126FB1BE9927E75815B6AC8CC2E45F824C80D64042637C9B4F19DC44EFA9C8 + 9C59829FF24ED90626FDFC1B5DB2F54BBB0DCADBDB90BE7A1EA22AC6626E5424 + 282D65F11A4A4BDA1D7B74F709DEF69AC2E1241277ECC82DC7C93DABC4038592 + 75E43CB6AD8EE61A6481FD0053A8AD36CD716C1C06DA6A90CDF5C19B4D806291 + F76ED783680DC6B8EE25209895D3383681DFEC3C4117A62FC43F9DB61BE433A3 + 3818B131D1022DE9AC8C6939DC24FFA9DC52C2DEAD42EF2D0A98557ED926F01C + F935E263E35E4E78ADC5F3E66D363737E3D983565C5F771B43BD036C7E01B20A + 5C96594E17642C4647B70662C236C802F958839A231BEA1B3042FB26CA169C76 + FCD72D73A0D8068D23A64D3148ABC0251947E9E2CCE5A2E760C49151981F379F + 3B36DE215C8114041ECC58C67C9DECBB58CE892B761B5C9CB0F825D0721BB306 + 35BE811A1B9A10A409B68AB4096CEB12D76064698801C8231D6DB3894186BA85 + E1E8FC4AFBC08569C5747E66A26860CA8538DC6DBB29EAB5B6121D168F03B125 + AE078A8DF10E2136824097CA8CE212E0EB98FF00D492E1ED1723912700000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005A24944415478DACDD87D5014 + 651C07F0EF1E2F77282964A0A28D39662AD51F95498DBD48982F291290A4589A + 666A488A2818300CBEE42B8A6F707082598E235AC14CA629E2DB3865394630E3 + 0BC4992F891727C6F17A6F7B77DBEDE21EF7B2BBB71C37A3BF7FD87BF6D97D3E + F77D769F0720288AC2E35C843D9020085117A52ACEF5EA5BC9FC7D9195F80AFA + 4AFBF00EC8BA3C066E5F34C163E0F717EA5073F38120F291024F55DD469B8E44 + F50D352FF291022FD73742D3AEB721BF881D87C1415287C1BD02349A3D7B14EF + DE6F45B3152884EC157045E1192A6FC93BD01A2DCCE7F4C293A2715B3F9F0203 + 49A2B94DD78DD41AF187528D94F8081BD2ABC09E561F7F09349D0617E46FB52A + E42D8EEC3D70794125B53369A2C709D6DFD3E074D52DE88D2687730F5A3AB06B + E9BBBD072EDD799CCA5FFE9EC709D2454F73F58D26A8FE6BB7B5FD7EE5160A52 + A6790FA8D19A99CFD9C5151E43D33E8AC23DB586393E54F9A73070E5DEF3A25E + 4B834E8BF50BA36030B97E21A99F8F87899AF1D537A7DD03C5AC6F59FBCE61C3 + A791B604B7955E607EEA0D4666A09ED4FACF2677DF57710285A9D1BD075AFB81 + EEC702ED53E84D92DE03CA2BB03D69B24B823AF2E14D2DA4DB24AB8DF968915C + 4749FC510C0F1ECDB4AD293E0145DAFBEE81EE76880CC5290720578274751A2C + D67D56E2727DFA8979A86ABD80BE2132900D12C8679431C89CBDC7B0373D9E1F + 985A7456D40E411AF5D89C340DCD9D5DD7EE283D8BFE8101CCB1DE4C80B25878 + 93BC6CCC4347BF5A0C78B61F248404DA16BD0DB9AFB41EFB32678A07F2557649 + 25936063AB51B09FC1D4756F9375467C7D0864577EC224173232C8A11F8B1CD5 + 998C239929FCC014F969513B845EABC596E4E9F8B22209ED860E043D988D0181 + 41CC336834E839AF61930B1B1D02D24CBA9CA7912D4A123F2DA8C0E8D0708213 + 98BCEB67513B4476C1516C5A168351B94F61C8B0C108D60FC59E194720F3ED9A + 66FAD9B3A5481AB1EEFC425CE9F81543C70C8285EA9E7267289BE4E1D947312A + 640CC10B74B74374B6B5625B4A2CC6160CC1F889AFE1B6F20EB47703314EBA1A + BE90327DA4017DAC736BC02F9DB9D00529312C3CAC6BBA2D262BD26283722109 + 950C9792AFB907F25586FC18F29645E3F9BC100648178DA493DC32E93BF49549 + 99E76EEDD9F9D6E42E59931BE870BD33D21EDAA46CC19B2151288A3BE00A4CDA + 718C92AF98EE36C1B6E6666C4D4DC0EB8583F1F6A437980159249DE4AB443A6A + 208731F82646BCF00C73CE4C99ACFD4807245D2C9406D2B88827DF8222FE00FC + 247EEE8162128C9A12C90C6C8FD4A83AE0DF5F62C3B1E58CB44FB3A1B611D2A6 + E1B894790EFE3EFEDC2FC9926D3F5245AB626CCB07BD797395E6BE1ADBD3E730 + 09D2C0EEC1BAA06AD57D0C0C0B7568B347B2ED2CF09FEB2ABC18381E3ED7A7E2 + D0C605FCCBCCE2DC724A9116E7767D5B9B5F8E8D2B66E2E5DDA10E402E105F1B + 9BE61D2B6E4C400472224BB0415E260C5CB8E907AA24E3035109AE5B3E1B13BF + 1E8269D3A7426F725DFBF4269DDBB6BFAFDEC673B2B10C4E22F1C39A9D077164 + EB22F140BECAD85D86BC95094C8234B01BE008154AD31947578F814209D275F1 + 89550E40B1C86B35B5201AC330B27D0E08EBCA695F82C0F9EB4B2945E62CFCDB + 229C205B138AC31033239A272533479B89C1BDD43F82594AE8B795EFDEA280B9 + 07CF08028FEB3E465C4CECC307DEE472DE39CD868606DCFDAB111797D6202820 + 58F00F204EE0DC9C83545156229ADA4988293A411AC81617D41959575B8741A6 + A771E0C3F29EFF77CB19283641FB1293A6182427704ED67EAA38679EE867905E + 661262139863FB1DC21B485E607ED65C3477740D46FFA6EC2EC1C4F8C48740D7 + 6D8C0B6AFF02D5D729114A8671220581EA5671094EFD76A80DC8227B9AA6D28A + 1CE1138EFD0987DD0367AD2EA60A73168806A69D8CC555F565517D852A3A3C0E + 7B624ABC0F145BF63B84D8E2057A5566575E013E8EF53FF2BBCDED4F874D8300 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_11_20' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005134944415478DACDD86B5054 + 651C06F06717B9088E4205EA4A638E1997EA433769B28B0499A44840A1616952 + A901066260C138D8983642221672379321914A9C4C4303B1F143C63004332A10 + 9862C0C602B10B2CBBCB5E38ED397A96B3CB39BB2FCBCEE8F369CF7B76F7FC78 + 76CFFB07441445E15E8E880B148944442F4A29BA38AD9FCACD650632629F8287 + ABBBE0055997DDC0039B97DB0DFCE1521B9A6F0C5845DE55E0AF8D9D1856EBD0 + 745D2688BCABC086F65EC8473426E4B6C8A598EFE96A76718700B506FBBE8A5D + 7D4318340259E4E5961EA4AE7DCE0C392DE0F6820B54CED697A1D28E33C76905 + E78871591FAEC4984E87C161F50452A5C5E556A919D2A1C0A9C6DD450CF9E818 + 2F32674BF0F48149876BA8DCF850BB1B6CEF91A3B6F126345ABDD9B901851287 + 125E993E3021F72C9597F49ADD0DD2A13FE6A6EBFD90FE37625AFBE3CA4D1C4E + 5EE538A05C65608E77959CB71B9AFA76087A6472E6F1F19A3FAD037714FF4674 + 5B8EA955E0021D91319D019F7F5B6B1B48B2BFC51F3C83FCEDAB1DD2E09E0F5E + 353DCE28AA46414AB8E3818E8AC3805BBFFC09851F47A07748CB1CD31FCD54D3 + A4CD8342DC82D2E8D358E4E5CFACED2EA94651EAEBB681B626C4B69C53C6378A + 3201A79AB4EA8D681CBA040F6F37E8BAC5C85F73924166169F41715AB43030A5 + B08E684268542A947EFA865D0D366873A09CDD8AFB1F9E0DB1480C954263421E + A968C791F437C98142F9E84095199024637A0ABB6ADE659AF35EE269768E45FA + 8D26A2323D5918989C5F4B3421D806E34FBD07E5980AEEB218CC802B5173127F + 6FE80CBA49E769A4A243879FE3CEC3DF2750C40B4C3CF40BD18448D85F89A2F4 + 75F0CB7E000B16CE8797C617FB577C0F0F377E24DB9C6FC03C8C531377BE2594 + 6DF2C45BA7E1E71D201204DADADF4687874CC065A1CFA2B3E316545DB3B0D475 + E7A426E9E6D49E1D581828618EF5E37A2372DC04E5438AA46EA84FBC661B2894 + A4FD1528CC88C5A339DE0C900E8DE436A937EE049FD56DC21565BDB1B9B966AF + B74472A1FD1D0ABCE01D82C2A8B2C940E3064C914C88E1C14113F0A515CF3317 + 64917493CF88D2D08C7C68BD6E60F1630F31E70C94DEF83C9D19920E0BA58134 + 2EE8BE1751145D0667B1B36DA05012F796A1247323030C5919CC5C988B944B95 + 70992336E1D85822B96D76B7F6C2B57F11EAD32FC2C5C985FF26314E088A6442 + C8FB64C8CBD88027BFF261801317BB0D9549FB3057E263B6C645B2EB2CF09F16 + 291E9FB50C4E2D6138BE2F4E789BD9925D45914C881D59DFF102F940426B6C9B + B78CB8809941C80C2EC5DEFC93D681EF7FF12345322106A43D28C88C6380AB56 + 8741A3D74C7A8E46AFB6B9F6F7D54E3CE2F63483138B9DB13BB71C95599BC981 + 4249DE77CC0C380130875A6BD3124767CA406B0DD2A9F7FAC40C488ABCD6DC0A + 51AF044B46D64364DC39B9B10ADCB4A782A237E07F15643376798904116BC205 + 5A32F0ACE919DC13738298AD84BE5B85DE9B08985D7EC12AF0ACFA1D444544DE + F9C2EB279DB76CB3BBBB1B5D7FF5E2F7846678CEF4B2FA07102F70436639456F + C0FD233A90846E9006B2E1835A22DB5ADB304FFF20CAD6564DFDBF5B9640D206 + B921699304C90B5C9F7194A22704E97730F49B0588898C611E73278423908240 + 7A031E54DEBED8C18A3A9B0DC646C7DE014E1E637C50EE0DD4DED6011F9D8417 + 69152823FC4D39EC98AF09C822A7DA668711B9D8291047634ED806AEDB5942D1 + 1B302930F55C24AECA1A889E6B2DE18151F83AA2D4F140D27027046904810E95 + 71E210E0BD98FF010DFF9CEDFAEB3E1F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004FA4944415478DAD5D86D5014 + 751C07F0EF1DCFD03052017AD2686396406F9A69D2A6270D34481E021B342C2D + 2A45700251A0641C1A2D4B0C81497908268341315366B24C0DC4F28513C35034 + 3E405001F17407CAF1E471777BC7B6BBB9C7DEEDDEEEDE7133DAF7D5EEFF96DB + 0FDFDDFDDDCD294892C4BD1CC5FF0AA8502824FF20ABE2D29CFEA3C5C1FED81A + F304BCDC95A227635D4E010BB7AC741AF8CDE50EA8B53A49E45D03FED8DA8389 + 690243B7264591770DD8D2A98676526F41BE1D1D0A3F2F5FDE89E70C349A9DBB + 15FB86C7314A0159648F7A1C6971E13CA4D3C01D6517C943A92F42679C61F673 + CACECBC6156C8B828120303A313D8BD419D1A399E0215D067434BE9E4A686F1B + 78C8EE212D72D6AF983B30E34803599C16E974839D035A34B676436F3459BD76 + 736C0A25E9ABE70E4C2F3E4B1ECE78D9E906E9D097F9B73F4730483D246C7EB9 + DA8D23996BC5813BBFF849F2CE374CEB4003B53A33B3BFA7F282D3D0ECD72330 + A0D132DBC71B7E9507941A21DB4B7EB002BA2206C28C8FBE6A740D30ADE87B94 + EE88714983FBDE7DC9B29D57710E6559B1AE073ADBD89E8654FCAE6E46494C1D + 9605853B06141BC2EF159D41F9AE78A8C78DCC3E7D691C4D8BF110A6FCDBE117 + E80DA25F89D2B8D3A83ED58D8AEC57C48159E54D92439830EAA9374AB4001D4D + CEB9CD681DBF8C071EF18752A1846E4CCF20C3892C1CDB95E61850B0C1C27A54 + 7DF0AA530DB2CD052E9D67B54E23C7BA087C977281BADC610ABBC0CCD246C921 + ACD7E92CC0BD4DDB3065D061EFEA7278BBFBD885194C2475CFBDC934A75A1608 + C24CF08E619B3CF1DA19062908A44688E410E636F874D9022C5CB400BABEFBF0 + 94572EDCE125DA5C48E87CCC90B30F972D948B7C2C305461172836426E4F8CA3 + 62F7060C8D19B1B25285672257A0A7AB1701FA101C5873127EDED648BAB9B6C9 + 2B5814A662F64D33260A3963810A211583DE68DE7E5D1A2894ACC2933C201D1A + 69DB24DD9C31E06FAAB960ABF7B04572A1235D63782E3002E589357C2035E348 + A9213C313A8AF2BC648C4C120CF08535CF322764914C935135F8F4E70C5C9D6A + C692C71733AF994913751C6185A4C34269208D5B7EFFF3A85857030FA5873450 + 281907EAAC801151AB9813739143BDB7E0FFA08F05C7C616C96DB3BF5D6DC179 + BA790A3F24A99F7D4B4A0D61EDB00695F99B994B1CF9E54206387BB2FFA09AC1 + 6104AB82ACD6B848769D05FE7363105E230FA379F7250647AF0B02B71EAC27A5 + 86F0CE8263389CB709A353040F2804B2B7C6B6D94BE1C27C97C3ED46348EEF4F + 111FD4EF7C728A941AC274833450431D135D1D82B531D1D09BF4BCE3F4A669C9 + B5BFAEF5E051EF2791BFAA0A1F979E761C2894CCFDD528CB4FB102CE02ACA162 + 6D72714AA5073E2CAEC5D7055BE6DEE0CDC101BB40B9C8EB6DED56383AB2806F + EDAB23D919672FB9053596EDE680F7111F176BA725B3C09A89C129D42A2C9DDC + 08053531B9711878B0F622C47276FA0D24C627DCB9E14DBCD76DDBECEFEF47DF + 1F6A5C496FC33C9F00C77F9BD9945F4BB2334E4EE8394803D908416D911DED1D + 986F7A0835EBEB057F51700828B7416EE4B429072908DC9877946487B09CD073 + 30292189D9E67E42B8026917C80E613A45754D920D26AF4BBE03E47F8C0941B9 + 0F50674717820895205214A891F9759E1E332C90453ADA6617855CE21686A349 + 27A4811B722B4976C6C949F6F9045CD3B4C83A562CB16189F83CBECAF540B9B1 + 1DC2726217E85219272E01DE8BF91702BCB1ED9CFADE160000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'MoveRemote_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004EB4944415478DAEDD76D5014 + 751C07F0EF1D8F4A43520328E0E88C9682BD7186CAA6270D7224790868D0A8B4 + A85143271E142819A3999E460C1F127910268A414123A6274B03B5F1550C4339 + 89C270159070DC81713C794F7BC7B6BBB0CBEEDEDEED725CA32FFABEBA7DE0F6 + 73DFDBFF6F0F154992B89BA3FA1FE849A04AA57279726EE5E5797D9AE5A181D8 + 19BF167EDE6A95DCB9AC6BCEC0921DEBDD067E79A50B3A835111F28E007F6AEF + C5B889C0E03F13B2C83B026CEBD6C13061E690AFC74522C06FA1E445E705B4DA + DDBB156F0E8D618402B2C85EDD183213D74822DD02E6945F240FEF7A0646EB14 + B39D5F7E5E31AEF8CD4DB0100446C64DB348A315BDFA7149A4478073CD425F35 + 0CB72D0EC89E4103F2B7AC9B3F30EB4433793433D6ED06BB070C6869EF81D96A + 131CBB353A8963BB9F9507EE3DF9B3CB9BCB6232A234EB39B71B64DE83FA9A7F + FB63185A6A91B0F9E55A0F4E646F560674B54AF71CFB81011A8C7666FB40D505 + B7A1792FC760406F605E9F6EFEF5BF017A2216C28E0F3E6FF10C30F3C8F728CB + 89F7488396F046FCAE6B456952036A1AFB509E9BA01CE86CCE657F7A4E0074B7 + B1FC1FB7A37DEC0A0282FD41F4ABB186C8C5A97D99F2C0DC8A4B2EE79C8DBAC1 + 2BF62541376665B6E9AF66AE69B31EC6646027EE5F1908B54A0DE3A819A31A02 + DF655CC0EA90280EA908284ECEB1AF519997C201E71AB6B9E0071609F6D348BA + C98617BFE59092C0ECB2169773CE6C34A2FA9D173860EAC9E76183156B7D77C3 + 1B7E8A9A0B5B1D0CC24E381C17232581D42A255DCDB9B74A9A04C0C7CA97207C + D912049923703CF10CFCBD1738FC8DC546E240F3AB4C7311918B3145CEDEBF62 + 281FB92A3852E514E86C958A1BA4818FC7AE43AFA60FC69BF7E011BF028726E9 + E64C8B34581615C66CDBA66C14728A834A21555A7FB4EEB92E0F1427B7E42C2A + F76FC5E0E834707D551803A44323E9260F6E3C8B00FF6924DDDCB5C956AAB950 + C1FB88917CE8B066144F06C7A022A5D61148CD39D2D59CBB3D3EE6007C7AE313 + CC055924DDE4C3AA7C5C4519AC417F61C543CB996376D2469D4708907458280D + A4718FDEF7142A536BE1A3F691078A9375B01E1585E9189E203860CCA60DCC85 + F948837612BEF7AA391C1B3192DF667FA78EC3F97AF94A2F925D9F7C43BA9A73 + E3232392C0D98B4D43F5DA2184868508F6F191EC7E16F8F70DAD0047EF9704EE + 3CD444BA9A737B8B4FA1AA683BF715C77E162E004A819CED63DBECA370DEFAA5 + 68DD7F99C33905BEF17123C95FA5E2060D437A94166EC3C824C10137C7C7C16C + 333B7C18B3CD24BBEFCF8E5EAC5A100DAF1B7138FD5186FCA34E0C946A9006EA + 678EC77D11C100670142A8AB3669DC83FED128DA508D0FCBBE720F286EF09676 + 00E545194E814A91D7AF767238B5DA07EF1DADC399E21DF2C0D7DEAF27F96344 + 9C82E25A07605262829396EC12FB6C0E383A6E030FD55D7468909FD6A0B79192 + 943C73C30B91526DF6F7F743D3D18768C3BB5051CF1C7E1401B715D591FC3122 + 177ACCD04036525031B2ABB30B8B6D4B51BBA5C9E93FED8A81E206C539677A45 + 0074861443952025812F15D690FC3927177ACCA425A731AFF94F084F209D02F9 + 73EE48FD25D906D353D367808E8F3129287F0175776910428449225D02F50A7F + 31D3AB9805B2C8B9B6A9A1902BBCA25093D6200FDC5A5045F2C7885CF2CE27A3 + 43DFA6E85C5749884AC1F1A46ACF0395466ACEC9C529D0A3325E3C02BC1BF32F + 980BA0EDD7A7EB810000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004EE4944415478DAEDD77D5014 + 651C07F0EF1DEFDADC4805E849A333960AF54F334CD9BB06369008033668545A + 54BE10A3880225E3D0F41E068A1A2FC16412BE56346596264AF9471343948D2F + 106440C27107CA71071EC7DDDE6DF7AC2EB7BBB77BB7775C8E33F5FDEBEED91D + F673DFDBE7B78782A669DCCC51FC0FFC4F01150A85E48979D54D93FA24B3A354 + 58937C2F4202950A39E7B32EAF80A5AB17FA0CFCEC743BB47A936CE40D077EDF + DA0DE39815FD574664216F38B0A5430BFD887902F962520CA6864C91BCA0CF40 + 8BCDB75BF1D28001430E208BECD61A909D72B724D26BE0C6CA9374D9DAC761B2 + D899F70595C764E34AD62562DC6AC59071CC893459D0AD334A22270DF4365382 + 95D05F1D774176F5EB51B07C813CE0A68F7E90FCFE6C14851DD9093E37D8D1A7 + 47636B17CC168A77ECF2F028CA5F592C1F28B51172CABFC5EE0D4FFADC2009F9 + 9A7FFB73101AC72661F3F3D92E7C98BBC47F40BDC9C6BCDF5A73DC6768FEB3F1 + E8D3E999D7FB4FFCFAEF0027159A42C177EBF0BBB61973C773B06F73B67740B1 + 5192BBF3282A3626FBA54163D4A768359CC6D488500C775A7124EB38E647C6F2 + 90A2C0BCAA5392A3C46EB7F380BE64DC6A7334B78AC1DD76A70A4A8512A66133 + ACBD4A1C7CFA6B1E5216909BBC9D4750B539155A838579FFD6278D5E035B2C65 + 1855B521E2AE69BC7531A42830B7A291961A25568B19D5F9E9134006D9B41E46 + B3016F2CAE426860985B1CDB9C7A7E04AC36ABCB71215214E8D808B4D428595F + DA80DAD79EE2357874EC39CC9C3503A64BB7E0BE90420422C46D73D131D361A7 + 9DB78810CA45CE8B88514802C53682D964E201491EA89C81871216A0BBB307E1 + E668EC4A39C46B729CA2B1F5C4F33833F21366C5AA9935CA4E3990F609A81852 + A1094573CE79CF406EF2CBBF146D9000490852D82469CE12FE97A3B928DEDF12 + 22B9D0C1CE613C12118FAAF43A5760F6F66F68A95172D56840F59615E81F7636 + B8B0468DC79E7898B9208B244DBE9F5887F77EDC80B3A3CD9873CF6CE698CD31 + FB28BB95872461A1044870F7DFFA28AA97D5214819E419C84D5EE9611E705BFD + 49A6C1F8C445CC85B9C8FE9E2B50DD1E368163234472DBEC6DD34EE0820382C5 + 37C9DA0FBEA2A54689716808554599181C715E80344880CE8B5D83EA34038852 + 47F2D6B848769D05FE7D41C3C3917551E09A6D0DB47094B029283BCC03721BE4 + 37C20749ADB16DF6387071D31EE4E124812FBDFB392DDC086CF4033AD414AFE2 + DD83091FCFC492E4249829B3CB073253631ED72E9EEB8642AB46F396261E4E36 + 909B4D25FBB0BB68258646AF35B8FDC029A641027402F850776D12DCBCB03804 + 5C48C2FE77B2E4FD58F0D42001EA38F8A4BDD13CA05CE4F9336D981B1A87E245 + B578BBE20BF9C017DE3C400B47099BC2923A541667B9005353964AB4641359A3 + 7838A53208AFEFA8C7A192D5BE01C946607359D3270A4C4F4DBB7EC353C26BB8 + B4D9DBDB8B9E3FFAB037ED17A8C254CC9A57C095C5F5B47094701B14A639FC55 + 06C8460C2A44B6B7B5C3703118B1232F43E178E690F80CE4362816B249B84029 + A4104A90D3A93B50B7BCC1BBFF8B9F29DA430B4789BB9031939196C1BCE63E21 + FC8194040A4789A7063397655E07BA3EC6C4A0DC0DD4D1DE8948AB5A14E916A8 + 33C86B906C1216C822BD6DB3D3819C13108B3D19073D035714D6D0C29DEA2EF9 + C7D2704ED722EB5C77591A9B8E5DA9B5FE07CA8DD428711749A05F659CF80578 + 33E61F5E5DA8ED5D074ABD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E74944415478DAEDD76D5014 + 751C07F0EF1D782016420DA048A333560AF586194A7BC6A0461221B041A342B3 + 524367141428188766EC69305146E421982C021FA8E859AC501B5F34310CE98C + 280419A0701C601C77E071DCEDDD76BBB8C73EFCF7D83B1887177EDFC0FEF76E + F673DFFDFF6E4145D33466735477807780B309A852A9882FCA2C3F37AD4FB124 + C41F5BE323E1E3AD56297D0FE7520C3CB025DA63E057E7DBA0D39BDC42DE56E0 + AFCD5D308E59D1F7DF8862E46D0536B5EBA01F313B916FC485639E8F9F4BA447 + 408BCDB3AD787DC0802107904376E90C484F78C825D22D6046E919BA70DBB330 + 59ECEC7176E969C5B882B75763DC6AC590716C1269B2A0ABDFE8124904EEFEF4 + 776245B4DD0E3ED0DDF869D4D0DF1C97203BFBF4C85EBFD23D2069AFED2A69C0 + A1F4588F1B6CEFD5A3A1B913660B25387763781445DB9F9B3E7047D12914EF7C + C1E3069930B7F9C23F83D03A8684CB9F973A7164D79A9903EA4D36F6786FC52F + 1E43B35E8DC1B5BE0114FF958396C13F5097568FE5C11112A44BA0785A338BEB + 05C06985A6B0F3C74D68369CC7BC205F587BD438F1F20F1224119859769638AD + 76C7909464C4CF4883C6902F59DCBDF7FB43AD52C3346C26221501B9EC39724A + 00F424E3561BB2EB37B2B8A0070204E7484822D031AD34695A29C7062FDB9308 + 9DC1C21EBFFF7903FBF382A518142C88D46C87377C5C029B2C8518F56F45E8F2 + 20586D56C979319208740C034D9AD68CA2EF509E95EC047279AC7421162D5E88 + 4073180E279C84AFF75C228E6B2E2C7C01ECF4E45D1043F9C86541E12A59A078 + AF994D2654BEFB92A4C19FC75EC313B12BD1D5D10DD3F5BBF0A84F8EA449A6B9 + B1800E2C8E089DB81B76CA81B43BA124A44AEB8BC61D97A70672C92AFA5600E4 + 37C8009930487E93E3148DBDBF6DC2A5D14647732182F789917CE860C7309E0A + 8A4159729514987EF0279A34ADAE1A7CE6F927D90B7248A6C94754D9B8881258 + 02FFC5D28797B0E76C8EAF17CA6E152099705006C8E056DCF334CAD755618E7A + CED4402E99076A519EBB017DC3C206A32B4211B37A157B613E52AF1D8566BEDA + 89E32246F2DBEC69D539711A2F0D7948B67DF23D4D9AD69B468300B8BFFA8CB3 + 41063879B10968BF760021A1C182353E925BE780D7AE680538669D08DCBABF8E + 264D6B76612DCAF252313822FCF45C83C2468420B935AECD6E072E2AE071014E + 16F8E6475FD3A4BD661C1A1200F90DAE898F839932431C333536E5DAD5962E44 + CE5F21C1290672D95D50838AFC8D923D18FBD92216380910425DB5C9E054BA50 + 34E69E93E0DC6E503FD08FE2BC340C8D4E3478F0F8594183C296A6465EBED88A + 6573A3E075250EC73EDCACFCCFADD7F71DA749D39A5B788C05F68B9A8DFB220C + 89096B655AB211D62816F7A06F14F25755E283926FA607E4F6DA0D6D2F4AF337 + 1381C98949B7363C25B988B8CD9E9E1E74FFDD8B9A179BE1E77737DE3B548D93 + 055B9403D3F2AB69D2B4E61454B904722141C5C8B6D636F689B32FBA061F97D5 + 4D0FC86F9094C6C077044039A418CA200D57358818790BB505E9CA81AFE41DA5 + 49D32A17668A539252D8DFF94F08A5C805D47DA85A5F47FCD75316489A56B930 + 539CBA2EF51650FA182341F903D4DED681606B2811E91228DE6B7261F62007E4 + 90EEB6D9E1402EF58AC0D19413530337E454D0A461904BD6E924B4F437297AAD + ABAC8D48C6E1C4CA99072A8DABAF13B9C8026754C6CB8C006763FE0763FA9DED + C8C6C8C00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004DA4944415478DAEDD87B5054 + 551C07F0EF2E6F68482A40571A9DB146A1FE71C6497B5B50038510D8A0516959 + A306CE602490300ECDD4986180A80988A385E42BB329F391435ACED4C4309433 + A9206882F258405976C165D9BDBBB77BAEDEE53ECEDD07CB38FEC1EF2FEE3997 + B99FFB3DE7777641C3B22CEEE5D24C02278193402F801A8D4671436EF5199FDE + 606674385625CF4590BF56E3CDEF092E8F80A52B178E1BF8DDD916E80D66AF91 + 770D78AAA91DA6111B7A6E0E7985BC6BC0C6563D0C431627F2BDA458840585BA + 457A0DB4DAC7B715AFF71931C0010564BBDE88AC94C7DC22A9C08F76FEA650B0 + 0E07CA56BF08B3D5C15FE7579EF41857F24122466D360C9846C690662BDA7B4D + 6E91AA40F972E6569D9600BDADD0402D0CB74615C8AB3D06E42F59E03B70ED8E + 7A6CC94A187782AD5D06D4375D85C5CA48E66E0C0EA322FB25DF816B2A8E637B + CE2BE34E901459E67F2EF7A39B6B12527696C1CEBF0BC08474A076C961CC898A + 53405D02C50D91BBFD040F3498EDFCF5869A5FC60DCD7B2B1ED77AFA50DEB816 + 97AC7F212C3218B64E2D0EBCF19302490572FB8DA5358418E85371C9E51C7D07 + 4DC6B378F0917068355A98072D54A4474052EBBE3A8E1D1F264F4882A6E8BD3C + 2EF2D12992711A920AE41A82953784833B66C440716D38950D93C5884D49D508 + 090853858DDAECC83FB19CC7E9E644C266B729EE9123A940AE21587943E46E3D + 8AAA75A9D01BADFCF5675FD73BE78E8DBC8DE933A6C17CFD3E3C1154007F0451 + 818DD6320C87372326762A1CECD88BCAA162E4ECC8588D2A50BC9C36AB05D579 + E94EA0B89EAC9C86A71316A0BDAD031196186C4B398860FF10C93D24B973437F + 62469C8EBF661C0C877438A134A4A63B180D6B2EB80792CAABF801BBD6BFAE9A + 2001922248799224396BC47F5C72D112841C2986F6B70DE2D9C87854A5D72A81 + 59E53FB3F286B098CD12A03CC1E75F7E867FA08024497E91588B4DBFE7E0DFE1 + 06CC7A7C263F47CE3EC66193204909500224B8F90F3C87EAC5B508D006B8077A + 92607CE20BFC83C5C89E8E9B087F28C489134A8E14A7D9D9AC77E202FD02E94D + B2FACB1F597943DC3219515DB8143D83CA0417D6E878E0D8C36E437BBBFB10AD + 8B928C8991C2B800BC76B15B8223E354E0AACD47587943ACDFFABD04B8B9EE57 + 4582D244A420B53121CD0E0E376FCA53129C2AF0FDCF0FB3F2E5340D0CA0AA28 + 13FD43CAB38B24F86A72122C8C4531676146DC8E5D39DF8EB9F7CF57E03C0692 + CA2F3B2401CA1324C0318014EA2A4D5738AF1234F4F5A2A67839750F26EC9E2E + 017A8ABC70AE191ABD0E0D8567A83855E0BB9FEE67E50D5158B60FDB8B966160 + F87682E5FB4F4B124C4D59A492929D32C6F0B8D921F3E0773109FB36AEF0EEFB + A01C489693244880BD947330E99B18A4A7A6DDD9F08C625E9E666767273A2E75 + E1DBD79A50BAFB98F7C065C575ACBC210A4A6A5159BCC22550281A548E6C696E + E10FF3D0CB2938B431DB372049F0467797C74035A41C4A90C62B8168C8FF43F5 + 0F272AF0CDA23DACBC218A4AF7AABD241A223E46465A06FFB3F813C253E454E6 + 61EE2BFF112A5215A8D610B4224D92B938F30E50F93146838A1BA8B5A50D5136 + 1D15E912485B4E5A9125168002D2DB34DB38E42CBF38ECC938E01EB8B4A08655 + DB6FB4CA3B9986F3BD8D1EDDEBAA16C5A5635BEAAE89077A5A9F6CA9C3C19295 + BEFFFB8D00275426AA0901DE8BF53F58EF8FED9D5582A00000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'MoveRemote_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A14944415478DAEDD87F4C94 + 751C07F0F773C281D2106A809E946EE6126A6DB44AFB6DC19A14C2381B1A95F6 + 6B6AE8A6921C0235DA6AB561823FF0E0C265224B25B569A6D6489B5B9B8C916E + 69209779E80107AC3B0EE8EEB87BEE9EEE79F4399EDFF703E65CE3F3D73DDFEF + F3E3B5F7F7F3FCD8111445E16E2E620A38059C02FE9F800441F0268B0DE726A4 + 9F97128FB5391988895211E11ECBBA8202B7AF591231F0BBF39DB0D81C1121EF + 08F0E77613869D1EF4FD331236F28E00DBBA2CB08DB802C8F7B2D31017332324 + A424F0C3AF7E15F51C0D747B236BC59B037658FD401669B2D85194FB70484859 + 2037B1E2FAB3A85EF7121C6E1FB3ADAB3B1332AEEA83A518F378601D768E231D + 6E98FA87434246040CB766A855B0FD3B26425EEFB341B762F1C4819BF42DD851 + 941571825D3D36B4B45F87CB4DF2E62C8356F81E388AF69E0B685C71040B93D3 + 45584520DB73C5B5A751BBF1958813A48B5EE68B7F0DA2D77F93D0E5A548E87F + DF8CD1F80EC425C5C26356E1D0EB27444849A07F492961CFD1409BC3CB6C7FDC + F053C4D092373371A36F00356D9B70D57D01F73D180F15A18263C825898C0838 + A1F227B7F187B7D16E3F8FA40509BC2929A424D0DF7314B7E7B6EC3905FDE61C + D9042FBA6B41C28D0CF57A442146D1379C7280C1691626C1E3F588E6854849E0 + 869DA7286ECF0981C27A6C5732E6CC9D8D44572A0CDA664C8F8E13ED33E6F142 + 777A35834B4D9B051F357E2E21948B7C28298D9005B2A032FD49D46FC983C5EE + 66B63FFBA68577C21F9D6FE199ACC53019BBE1B8790F9E8C291525D9E6AE8633 + C188B9E91A669BF4917EA42F00954212BDB168DD70253870EB9EE33094680340 + 613D55379B01D24523E92477E71E466CD474668C4EEE8FD1567F7229BCE38448 + 2E74D03884E7923251AF6D14038B6A4E52DC252DD9F93DF696BDA698E00B2F3F + CB5C9045D2493E41E870097AB813FFC6FC47E63173F4E385F4797848BA58280D + A4718BEE7D1E86E58D885645870F944A3073E98BCC85B9485BEF28D43355011C + 5B4224374D73872580534F534BDF24EBBE3C4E717BEE23FD89A009D2C0F18BDD + 82F6F70E204593CC1BE322D9711678E3CF5E1E8E1E9704AEDD768CE2F65CD9AE + A33094AF44DF9074824B1A343CA014486E8C4DB3DB8F7B3CE1691E4E16F8FE17 + 47286E6242E0B6A65F4409BE9A930D17E912E15DA433E8D8B5CB2664CC5C24C2 + 850CD45537A3BEA2108323E2072B9B200D1C07F0A14A692AE12206CA25C84F29 + 38F2CAA50E459C2CF09D4F0F52DC252DAFFE160D95AB657B30EBEB39C8CB5D26 + 939257628C6470844583D6F273B2B8B080B515AB601DBD9560CDC1B3A204B579 + F9B71B9E145D4498A6D96C46F7D51E3C6A2D43F3E7EBC3FF605D55D944719794 + 05F6CB3C07B3F7A73240B6A4A04264674727ECD7D468D5FDA6F8D91F12B0B4AA + 117595EF860C94430AA134721679BFFF6BFA982C5212F846C53E8ADB7315DB0F + 040516E41730BFB96F88C940CA02B93D470395AA35712B0A9717DE068A5F6352 + 50EE0DD4D56944B24723895404CA252695200B6491E1A669F423E74F4BC7BE82 + 43C1812B4B1B28A5251556C9997C5CEE6F0B695FA55A96AEC5EEBCBD930F0CB5 + 3ED9D184C3556B26FEE7110D9C5419A726057837D67F932966EDF24909E80000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004954944415478DAEDD87F4C94 + 751C07F0F79D02228DA002F4A4E9662EA1FED1B5EC7716AC49A18CD3915169BF + A6442ED0044562B46AAB6982921E5CB84C60696A36CCD41C58E38F2663985B18 + C4551E7AC20193E357C771F71C4FCFF7F47BDCF3DCF779EEE1A0E61FBCFF7AF8 + 7EEFF6BC787F9EE7EED969789EC7ED1CCD34701A380D9C06FE8F408D46E33DDE + 62FC6952F2057191D898BA046133B59A60DE4F5D8AC0DD1B96070D3CD6D006AB + CD1E34F23F079E6B366370C485AE1B43412199C0F7BEF85934D6C9009BDAADB0 + 0D39BCC83753121011365B3552164851C2B107E8740777295EEB19409F00A448 + B37500D9AB1E508D0C08DC52711E2559CFC2EE1CF3FC9D5F7E56356EE7DB2B30 + EA72A16F70641C6977C2DC3DA81A3961E044333B540BDB3FA37EC82B5D36E4AE + 598A9CDA2C345FBF80AA178F63716CA21F581148C69A6FACC79EECE4A01B6CBF + 6E435DF315389C9C68CFDADB07BBAE1A8D7D0D8888990597458B232F9DF44332 + 81426B3C6D8D80F6E53C1F74832464CCBFFED98B4EE1262171F31C0C17376338 + B21577DF1709AD460B7BBF8389540DB4D9DD9EBDA2CA1F8386E6BD9284AB5D3D + 286DCAC51FCE0B88591425DA672199C05C431D4FC72A05B25274EE1D0C3A06F0 + 698A11E12111F242A1B99CEF5F43F34003748B63E072BBFC5E224532819BF69E + E6E958B7EE3F0DC3E654C5067F187915F3E6CF85FDDA1D78386C1B66228CE91B + 8CABF6E0E213E6608C1FFF87A5505FE4FD31091A592041151ACF8880AC2C2D8B + C5E3C98FC06CEA40B4231E46FD515193A32E37F2CFACC7A5A15F303F51E759E3 + C6380139E685B2909ACE5968DC745919586038858AAD69B00E383D7B1F7F55C7 + 6C9000490852DA6493B304CEE8BF85E6E244EF93227DA1BDA67E3C1993840A7D + 953F30BBF4144F5BDBBEBF16C63CBD17C8CAA3E573F1F4734F784E4891A4C9D2 + D46A7C58FF2E7E1B6EC4C2071778F6C81DCC8DB94448120A2540825B76D75330 + AEAE428836441998B7F73B1C285813B0C1A415CF784EEC8BECEAB881C87BC2BD + 381A29D2B74D4BABD58B0B9D11CABE49B23EABE5E958DF379C1401E51A24C0F1 + 93DD847677F6204E172B5AF345D2750ABCFA7BA70847D699C08DBB4EF074AC52 + A05283E246C420B935DA6687807B28EA31114E16F8D627C7798A2A28FB16C61D + 6BD1D52FDFE0F24A1D5E484D818373F8ED39B891806B7FB598B1E4CE657EB8A0 + 80BB6AEA990D12E038400C556A5309A70A985F7214158599E81DF2FFD4973628 + 6E2930F2F2A556459C2CF0F58F0EF3B4B5A2B26322A05C8369AB56CAB4E466AC + 71AA70AA803B4ABE4665F17AC56B30F9CB79D0A7A5DFBAE039BF7D699B168B05 + A6960E5CCC6D455478B4E2432B13B8AEB886A7AD11E0BEC275E81BBED960E9E1 + F3CC06099086059522DB5ADB3087BB5778503DA1F864AD1AD8ADF0399872285E + 0494434AA16A904CE0CB8507793AD6C2DDD5282F7E232030233DC373ECFB0D31 + 154859201DAB5A60E6EACC5B40FFAF3116D4F7066A6F3321D6A56322158104F5 + C19E1A044A63F4762F902227DAA649402E9C91888319470203D76EABE403B5E6 + 9BBCB3E968E96E52F55AA5AC4CD4E3F3B403530F541B328D6F766E98FC4F1F04 + 38A5329F4C09F076CCBF32C762ED42623F630000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004744944415478DAEDD77D6C13 + 751CC7F14FCBD601D3B1A9DDA0CC40824636FD6744C567D12D86E16050C8C4A9 + C3076463906CA08CE862266A6202EA50976E7504648C808A24F8AC9968F60761 + 2193253A3736958E95AEDB62BB87DA75D76BCFFBDDB8B6D77BE8B5DD1FFCD1EF + 3F5D7F77EDBDF2DE5D7BD5300C83EB793409600298002680096010A8D168B8C7 + DDE65FE2522FCD4A4379511E5292B49A58DF8377C902DFDFB62A66E017EDBDB0 + 3BDD71212581AF7CF26BE0493CC09F3A2D9898F262E8DFC99891B24002631FE3 + 025EE8B3C339E909205F2ACC416ACAFCA890AA80942FB6537170641C0E16C823 + 2DF67154AEBB332AA4227077D3597C50F138DC949F5BAF69FC41356EFFF6D598 + F67AE198980A22DD142CC3130124E5A398AA3315E8BC7A1E2D4F9DC2F2CC5C11 + 3C2A60B4335FA785F3BF6911F2F29013D59B56A0FCCB327438DA91AA9F0BAF55 + 8B934F7F25424A0259184360D5A6361CAC2C88B960DF5527DA3A2FC343D1826D + F65107DC86631CEEE6DBD2A0D568E11EF3482215813B3FFC0E0D556B622E4886 + FC9B2FFE350A1B7B9190F131344CBFED822BAD07FADBD305FB4A2125816C3986 + 94E3814EB78F5B7FA3F94749C445AA013428E4E97620092992FBEC79361F5786 + 46507FA11A97A8F3302CD7C3EBF38AF60B474A0259184360E140B959F1512616 + 2F59845BA86C98D67F8E79C9A9E29DD872555F3F8FCEF17664E72C849F09BE67 + 38341479873E47230BACACFF06A65D45110B7E3BF51C1E2CB80F96FE01B8076F + C0BD297B452527B28EA16BF21C96E41AB8E7B49F6691FE00540AA9B1CD45C7CE + 6EF540A58204488620333CD9301B674A4E7B7DA8F97E0B7E7775B0E5B204AF0B + 47864247FBC7F0B03E1F4DC616319085310456F1DE1934BD5A0CFB38C5ADBFF3 + 699B6CC1479F78883B208F2425EFD1D4A00B265019FF60D95D4BB96DE422A1FD + 5E01920C0F2540825B79D323306F6C41B236591E587EE034CC7B8C01A0DCDCDF + B808F9AB1FE30E1C8A74DA5CD02DD00670FC8423436B5A7BEC019C6E8E4EFA22 + 61CB31A4DCD6774FE1D06B9B541524C0E0C166A0C3B611641932056BA1487E9D + 075EF9D326C0917549205B8E21E5C281910A0A8B0841726B7CCD01167777FA03 + 029C2C90853104164DC1278B0AE1A13DA26D1E7A2AE2DADF7F5890B760A50817 + 11F8C2DB27607E7D3386C6940BAE6A3670C020400855AAA9848B1A78A0F567C5 + 82C24A9191DD5D3D8A3859200B63086CEB5BC7D1545B8AD1492F9486142C5EB7 + 56A6924F628D56858B1AA854D058BCE1DA094F8BB687D7B45AAD18BC64C7B91D + 5D489F97A178F32A092CAB6B6508ECE57D47D15CB725E2395870783107E4470A + 1A8EECEDE9C542FA56F646F5B4E21D764460436D191CAE9982F527CE2A160C1D + 3535D5202581CFD41E6148391E381CE173B0F068364A3694707F877E43CC0652 + 164860DBF71D4663DD8BAA80A51B4BAF01C55F6352D0D00BA8AFB71F995E8324 + 72D6813C32DA9AFD2C72D99C5C1C29391919B8796F33436004A866BA6F6C842B + 6940D5BE4AB336D7888F8B0FA907462A17EDBC79B0159FEDDF16FF0F77029C55 + 59C8CC0AF07A9CFF011A971DED3C283FFC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004524944415478DAEDD77F4C94 + 751C07F0F7730A8830C2F2404F9A6EEA14EA1F5DCB7E67C19A1482A023A3A29F + 132237D04257ACF8A3B69A565436E0C465A29B5AEA663F9C1559F30F2763145B + 1A08350F39B903E61DBF3ACEE7D7F53C5F7CEE9EE7EEF97510CDB6FBFC759FCF + F7EE795EF7BEEF73F71C1508047033171503C68031600C1803FE8F80144561BB + FDE7698997A4A7A02C6F1512665BA8E91C47722980AFEDFD85341F6E593BE503 + 7F75B60B6EAF6FDAC81903FED0EEC0E80403D7B5B16921670CD8D6ED8677CC1F + 44BE949B89A484B951230D813437B5ADD83738028F0094900EF7082AF2EF5020 + 698E0E549E2C47FBD5F3687EF21856A66545BC014D6080E7F151F9A3F0D13C99 + ED68386D1AB7EB9575B8CE30F08C4E84903E1A8E81D12052C4951D2F45ABE72C + 92AC73C0382D38F2D4D7114855E0F6C633A49103A3ADB9F11678FFBE1E81BCEC + F2A26AD36A48B8DB96A5C04259E01BF6AB223581BC90E0C71539534EB0FBAA17 + 2DED97E1A759C59A7BC8039FED20C15997A72AD6D490AAC0AAFA9600CBD0F8AC + F2715309EE3855011F3382F773ED488E4F0ECEC58FF9B73F87D02F5C24627101 + 16F5BF6EC3784A276C2BAD603826E258E14855E0D64F4E9146047A7D1C99BDD5 + F4BD26F0BB8967B168F142F8FA927177C24ECC468262BDFA996C5C710DA2AEAD + 0A97E8F3C8C85C003EC005D7C3A172E40A6B26650AA857AB3F4DC3FD39F7C0D1 + D38BF97406EA377C89C4B8A4D01384E42ABF791E1D63E7B038CB46462CCF0A48 + 3E08554352FD73D0BAF5A23A50DC83F5DBF24C272802C51291E1498EA61FC4EF + E3AD4272E98AD78523E5D0A19E613C68CD4663517324B0A2EE5BD2C88146093E + FCD803E48412729E3F037BF28FE2ED1FCB096EE99D4BC89AB80F593E9496F41A + 092A0245DC9A5B1F827D6333E22C71EA409EE3D0F87A01DC233499BDFB458B6E + 82D9EB1E212796235DBDD790323F3188932A1C294FD3D9E90EE2E267C5AB5F24 + E51F9C145A0EF6EAA22050AFEE6D584880A1934D4207FA07916E4B53CCE44869 + 2E01AFFCD1AFC089735560D9EE13018EE5B1EF8D4D5125A84C4409D29A4969F6 + 0AB8BB52EF53E034812FBF778C3472A051824FE4E5C2CFFA23D6FCEC84E1ECAF + 0B0EACBA654D042E2AA051822230045042F5D2D4C3E902399681FDCDCD700D1B + 27B8B6C9A6009A455EECE8D4C569025F78E73069E4C0DD877ED24DB0207FBD46 + 4A9CCA8C3585D30572ACF035535382A131064625265854507863C3B311EBE169 + 3A9D4EF45D72E3DCAB1D484D9CA77B13AB0A2CAD3D441A39D028411128951A34 + 1CD9D5D98505ECEDC28DEA09DD3B6D4DA0B8079B6A9F33B507733E5FA4006A21 + C3A16690AAC0A76BF64FDE2CD494C2333E9960DDE133BA0916171693C7F25F88 + 7F0369081C30F13D987B2003251B4B6E00237FC6D4A0F20BA8BBAB07698C4D15 + A909E458160DB52F460D9490D1A6D9232097CECAC2FEE223C6C0CD3B9B486316 + 587DBA101706DA0C9F6754EBB38AB0A7609F79E04CD5D15D5B4CFF3FFECF81D1 + E034813763FD03AF5BECDE59A143A20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_21_80' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000041E4944415478DAEDD77D6C13 + 651C07F06F0BEB065B60A21DAC8C60824698FE838A28F8826E31A060DDD00DA7 + CE9710182FC94019441733134D34A01BEAD26D8E88CE25802009BE05CD24863F + C465CE2D11E8DCA60ED6956ED376B0D996BB6B1F7B37EE76D7BBDE3D6525E18F + FEFEEAFDEEB97B3EF9DE73BD3B132104D7739992C02430094C0293C0243071C0 + 573FFE6952DA34CB545496DC85F4D4E9A6C9C244970AF8FE8615577DD2C327BB + D0F9D73F09415E13E00FED7DB81460D1D13B3869E43501B6757BE01B0D4AC81D + 4F2FC1AC8C3415920931A4FC5819DA077E4153F1112CCCCA558DD10532A1AB5B + 8AFD4317E18D0045E4A9B303A8285E86ECCC5409C0E3367E598A56EF49A45BD3 + C0BACC38F8CC572AA426F095FA13A4BAEC11F899B0B0BDB3EE38356EF7A695B8 + CCB2F05E0A4C20FD0C4E39DD12528EBBF19619309BCCF08F04359154C0786BBA + C50CDF7F973591EFAE5F0E1167BD3553719C165213B8CDD142F66ECEA74EB083 + A90507068B2D5B50BDC98EEE011F5ADAFF4690E114E33CC35EF86D9F0B38DB42 + 2BD810AB3A57345213B8F583EF486DF963D409DE5E6DC5DCF9D998C3CD83A3E0 + 10322C19C265EEE81D86FBDF51614C887070FCB61D63339CC85934076112928E + 8F86CA91B759179962027DFEF193BCD1F8BD2EF0DBC0F3589E7F2FFA7ACEC1DF + 9F817B5277612A52857D15CFE5E1FC8521D4B46D432FF72BE6E7DA843E17E622 + C8B004D5429ADC6968DD7AC6186854777E982500F9E291373139703CF905A6A5 + A447161187F2AF5FC4EF63AD91E4662B8E8B46CAA1C33D2378C09A87FAC22635 + 7073CD37C4B17D755C093EF4E8FDC28422924F7289692702F30E0BB80577DC2C + 5D6A2ECC2A907C89501EC8E396CE7A100D6B9B90624E3106D22498B7F2616162 + 39D2E71E8365A659C289158D94A7E9727A249C658A45FB26297BEF18A9DF6187 + E722236CBFFD698B61823C7062B271E8A07B08B36D598A9E1C29F645E0F9B36E + 058EEF6B0237EE394A1A2A0A25A051DD5797AD006A8162F5C434CF457077672E + 53E06202D7BF7384EC7BEDA9B8127C7CF52A04B9A06A5F900B18F6FE3CDD87C5 + 3397AA70D4409A0479E0044009D54B530F97F00495291923CF743A757131812F + BD758034BCBE0E1746E8125CD16883FD893531520A69F4382A1C35704FF38F86 + 0916DA0BAE2C784EB53F3A4D97CB85FE3F3CF8794B2732A7DDA0FB32AB092CAD + 6A26F59525181E6541537C823C502C2D6834B2CBD9253CBB9B8A8FEABE715301 + 691394174D9A34484DE0B395FB4963D50BD46B30FF93B9282A28127ECB9F1089 + 40C604D65696C23B363E59CD8113860996AC2DB902543FC6B4A0F21BA8BBAB07 + 59AC4D13A90B1CA4FC1F5CF5598E041491F1A6D913412E98928BFD45078D81EB + 763592BAAA97A98115C70B707AB08D6AAC5EADC92DC447F67D8907D2D69B7B9B + 7168F786B8BE916302132A93554280D763FD0F1D2ECADE95CA99FE0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004614944415478DADDD77F5093 + 751C07F0377912A1A52B9348F09C471DD615240442226392CC8032E5CE942E4F + EBC471D12F494E307E98D0E96959700E7F94E79DA275F893885F63A0E0060607 + 894141C80AF93110C6D86E30C6787A9E07796227B5EDD923767EFEF97CBFDF3D + FBECB5CFF7FBECF6381004014BB1FD48B9E58BFE2316B9CC414C84371C673838 + D8FA5E076B8107B60A580373CA9AD03738CC0A392DC0E25A2506F54674F5EB6C + 464E0BB0A6B90BFD5A032BA44DC01113BBA3D8DEA3815A3BC420952A0DC4115E + 98E534D322D22AE0C79252E22BF14AE847C6E879D2B76556E3D2DF0D8161C448 + E28618A4566F409B4A6B159215D0D670767C086A9D614A647C94AFFDC08F0E49 + 8983B1A10C3021BBD86ADCDE6DABD0DCA186B4B60D4323A366AFF50DE840D6B5 + 1F18F74D2191F981887507A9A0B6B9AEB517DDFD5A664DD1F027C8BADC01D57A + 133D4F3E56C21A1A1F1D820E551F3D3E2DBD7E6F805C84C16842FA09193740F1 + 813C42B23D9201264A7E620DCB10BFC68CA93A645DEE815C0567C06DFB2F12D9 + F16FA05B3342CF530EE7B346A5C58433E3D4A30520EBDA0F8CD9779E38BCE34D + 06C855505F94AC6B3FF0BD2F7289633BA318E0AE439758A3F6C4BECE8CA93A64 + 5DEE815CC53D0326669E638DCA885BCB3D70CB9E3344F6CEF5E81AE0B6836992 + F3F86ED75BDC0393337359A376C745710FDC947A8A90246E40AFD6C86907A92F + 7A22359A7B60E29739AC51199F6CE41E189D749C389AB289F33398FCF5699C4A + DF6C1B70DDE6F8BBC44E4F3F8FACA477D0AF333285D9C6EE0F379801873B7FBD + EB9AB3C7F733E82981AF860ACDD62A1A553450C5F1EFE0E7596710F49C8BD95A + 8954663BB0FC7A0724295B3807A61E3C09C18B0B1E70A0F8ED70ACDF718453D8 + E4F87EDF56484EFEF3EF885507A7331E0C60D6DEC4FB067C3F21C332F0BEE9EE + 8445605A82981E8F8E8E3F68CF7C741E86077AE0E3B504D5B50DF0F77901E557 + 6B2178C507B28A6B1006F9A1502687481888BCA22B880C5B8173F932AC0D17D2 + D96BE95254CB15E0B979A057F93B162F72C36F2D6DF07C868F86C696F1CF328D + 3FEF945FAD6107D4DDEEA46195D5F558EEEFCD00A597AB111AECFFAFC01F2E16 + 6385400099B4145EBE7EF859218707DF9D067AF017A2A9F9A67D4093690C4E73 + E7B306E69C2DC0EA30210A8A64F0F55F067965255CF89EE868B9C100277054AE + ACAAB30E383A465E33669C12E8C47381AEB7138E3C57E87BDBE1FCA43B06BB95 + 7878AE2BB9DE8ED9E45CDDD586D94F2DC66D6513D64486E1425E11828297A354 + 5A0E6FB2933555723B8177B6D75207273A3791279FBD890E6E5CB79ACEA25521 + B8945F82970302A1A8B8029EFBB3E8B9D9683FD0F1B127A0EF574DD941AA7373 + E6BB41D3738BEE20D5399E2B9FCE8FCC233B79EB0F084357D267D095DCDAD6C6 + 7A2C5CF212FE6AAA83F3024F6894376C077EF6692CB3BD54CC98F5380C9A1EB3 + 0E4EBE7B85C101905D56D0F9C7C232448842989C7BA110516B4474F60F0C4059 + 6919BCFD96A1FE5A150DEC6BFDC5EC26B108FCBFC5DF804195DEAE6281AE0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000043B4944415478DADDD77B4C53 + 571C07F06FC98648D4D9E8402610706CC3BD60C1C11EA25051608873A83138E3 + E24C40988EC581C43A41743661739B0466C1478C86C05E321F711D500B130471 + 105432602814A73C0A96026D0A6D2977F42277D6D650EE3DA0D9EF9FDF39E7DE + 9C7ECEEF9CDBDCCBA3280A4F72F01E06F2783C8B9B76E494705A8587F333885D + E98B694FD9F16CB9FF4193CDC06F62825803F34A1AA0EC1FB41939E5C0A29A56 + F46B0DE8E8D1D8849C72607553077AD43A9B91AC817A23BBA378A7AB0F2AF500 + 836C55F4216EA50F664CB7B78A9C30F0B3C352EABBB865D0EA87E9FEEEE32536 + E30E6C09864E6F18C10D3048B55607B942FD482467E044C3D1DE0E2A8DCE2A32 + 69DD9BDC8109DF175387E2431860727691CDB8F4AD2BD0D4A682B4468E01FD90 + D93565AF06199F2CE70EDC9621A1323F0D635D415398B6B9B6B91B9D3D6A66AC + B2EE36B212C2C901555A23DD4F3956CC1A9AF86130DA144ABA9D2FBD31394012 + A1331871E0A48C0C70EBC17394F8F348062814FFC61A268A7B8F699BE6C94E5C + 451E482A880163BF3E436527BE8FCE3E3DDD4FCDB9C01A95161BC1B4F71E9520 + 27693577604C7A0195B3F30306482A4C0B3D921CC51DB845F433756CD75A06F8 + C5E173AC515FC6AF62DAA6798E0BD79107928A49030A330B58A344DBA3C80337 + EFCFA7B277AD47472FD90AA6897FC5893DD1E4812999BFB046EDDBBE963C7053 + 6A2E251646A35B6D205A41D3424FA56D240F147E9BC71A25DAB1811B70CDE644 + 8BD76687E75EC1D1D48F889FC1948C7C0CB6FF65317EFAC441066D15B83C4460 + 365656AF40D6EE4DE8D1189889D9C6BE84683360E0CBCE66D78BA532F64005E1 + FFC1FD593F900196DE688338F563E2C0BD877211F4FA7C6EC0B88D1158BFF3C8 + A4017FFC2A06E2DCFF5E3E5855702AE3FF01CC4A173E36E0B664D1F8C0C7A6BB + 1FE302D392E3E8F6D0D0E877ECD333E762B0B70B7E3E0B5155538700BFD7507A + B90641EFFA4156761582407FFC2EAB4098E01D9C2FBC84C8D02528B820435484 + 80CE2FBDEA83EBD557F1BC872BFEBE751B0B4672E34D39BC5FF0445DFDCDD1DF + 328E7E4E945EAE6607D4DC6BA761E555D7B038C097014AFFA842C8D28047027F + 3A5B043F7F7F54555482EFEA0585BC115E9E6E34D0CBD31D0D4D2DDC8046E330 + 1C663BB106E69D964010B20C32E945F82CF2C79F951516C0319C29975FA9B50D + 38343C72CFB08108303C540049A10C8B02DE424579399CDCBDD0DED2C811787F + 7BAD011DF8CED074B7C39EEF82FECE56CC9AE741E769B35DA0EA9083EFE249E7 + 19F316E05E6B03564786E2CCF942042E5D8C8BD252F88E54B2FA4A0539A0FDAC + 39D0F628AC5670AC7263F9C18763AC821BD684D3396C45300ACE4AF076E01254 + 965D02DFED4574B5D44F1CB827299ED95E533C0CB49BE98441E55D38CC71A52B + E7F8AC1BB4DD772C2A387DAE1B54776F3167D0C5D31BCDF5D7E0BEF00DFCD350 + 0BC7F9DE50365F377B48C6053E69F12F70A4D3DE5C15D0CC0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Delete_03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004194944415478DADDD77B4C53 + 571C07F06F9D03B630B4710359C081C365D9B2C8025A65A25251718873A83138 + E3E24CC0A28EC581C43A41743661739B0466C147CC0C81BD643EE27875651356 + C441D846220CD496305BAE480BB429B6A5DCF516B9A38385CBED01DDBEFF9C47 + 4F4E3FF7771FBD15D0348D473982FF1C5020108C5AB4B7A0CAADA308F29B81A4 + B5A1F09C3E4DC065FD481367E02789CB79038BAA9AD1DD779F3372CA81150D1A + F4996DD0E94D9C90530EAC6FD5416FB47046F2065AEDFC2EC58EBBBD3018FB59 + A486EA8564ED7C783FE1312672C2C0F74E28E8CF242B60B60E3AC707CE5471C6 + 1DDD11058BD5E6C0F5B348A3D9023565FC57A4DBC089E6498F6930982C6322D3 + 362D701F98F279257D3C399A05A6E75770C665EF5C85D63B06281AD4E8B70EB8 + 7CD6DD6342CEAE95EE0377E794D2B9EFC6F0AE2013E63437DEEA42A7DEC8CED5 + 36B5232F650D39A0C16C778E334E57F286A6BE15853B54B7B35FACF87D728024 + 62B1D971F40B2519E0CE639768F9FB712C502AFF9E374C26799DED33FBE4A7AE + 230F241562C0A48F2FD0F9A96FA0B3D7EA1C67165CE18DCA4A8A65FB874E95A2 + 206DBDFBC0C4EC12BA60DF9B2C905498033D991EEF3E7087EC1BFAF4FE8D2CF0 + 83139778A33E4C5EC7F6997DCE4837910792CAA401A5B925BC51B23DF1E481DB + 8F14D3F9FB3743D743B68259F2EF70F66002796046EEB7BC5187F76C240FDC96 + 5948CBA509E832DA88569039D073595B2706DCB03D75D45BA9F773AF622450FA + 69116F946CEF1617A0A9BD71D49AF3678FB1E831812BA3C52E73D537289CCA7C + 9BF8359891538CC897FC5CE62A154A7EC0BC03DBA037D9D88DF9E6704AC2E401 + 29C2CFC123795FBA0F946C8DC5E67D2721CF7C8738F0D0F1427CF55122E4857F + FFB6F3AAE054E6FF01CCCB963E34E0EE74D9F8C087A67B90718159E912677F60 + 60E86FE2E34F3D8DFB3D77F1988F2F2C7A2D3C67F8A287FA13DECF3C8B3EAA03 + 5EB302D0D7A981CFEC207477DC74CC07C2A05343E81FCCB63A750B9E0F0AC01F + 37DB31D7D1B6B4A9F1E2BC6034DD681BFA2EFBD0DBFA8F3FD7F3039AEE69210A + 7B053575BF628928D4B1510396BF1606C54F75885E26429952851871042E975F + 45DCEAA528B9A2447CAC185F5FACC0CBA161F8ADFEBA13D8DCA6414870A01318 + 123C07CDADB7DD03DAED83F09AE9CB1B5874BE14A288C5A853D542181002CA51 + C97F0287714C5B73AD911B7060D0B166D04604288E5E01A5E207CC0F5F885F6A + 5584800F4EEF78C061D8703B0C1B098C591585B28A2A848B1641555303DF3921 + D0DE6E993CA097D00FA62E2D3C84FEECCDC1B49E33FD5D6E0EEFD973714FD38C + F571AB71E1723922972D41799902E18B22507F4DC51F78302D993DBD4C3C7C66 + C1ACA75C2AA8ACBE0E71E4424E15DCB2610D5BC9928BA5581CB914B5D557210C + 7C01DAB626979B645CE0A396BF00BEFDC6DE560600E90000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Delete_04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000042F4944415478DADDD77D4C13 + 671C07F06FCD26CC7448E9B096B513182466C9A28B6E55F62688CA8638C73406 + B76C712660998EC581C43A71E86CC2E65E0868C19799250B6CD96446E350A82D + 730E6483B08DC432EA68BB02A5455A681B585BCAED7AC88D0A86723DD0F8FDE7 + F73CCF35CF7DEE79EEDA2B8720088C0F87C3C1EDD9B2E7388119CAB71F674E38 + E178132710E06CE7FE03EE2E5707B5C5D182F9C85ABF14210FCC09E8EA19013F + CD5CC51858A1D6A0CFFE6FC0C85907D634EB611FF4C0647506849C756053BB09 + 56872B602463A0DBCBEC56345A0660730CD148BD7900D2F54BC07D68EEA4C869 + 03DF3BA6243E97AEC6A07B84EAEF3BA50E1877787B225C6E0F891BA2918E4117 + 7466C71D914103A79B7973E7C0E6744D8ACCDBFC74F0C09CA3B5C417D9C93430 + BFAC26605CD18EB568EFB241D9ACC3907BD8EF585FBF13C5EFAC091EB8B3B89A + 28793785F10AFAE2DBE696BF7BD16375D0630DAD0694E6BCC41ED036E8A5FA05 + 276B1943735F4F4497B98F6A572AFF9C19201B7179BC38FC958A1DE08E23E708 + C5FB693450A6F891314C2E7D996EFBE629CBDDC03E90ADB006CCFAE42C5196FB + 0A7A06DC54FF40F905C6A8C2AC54BAFDE1896A94E76D0C1E9859544594EF7995 + 06B215DF851ECF4F0F1EB85DFE1D7172EF261AF8C1B1738C511F656FA0DBBE79 + 4EC936B30F642B33069495543146C977A5B30FDC76A89228DBBB05A67E7657B0 + 50F1034EEFCF601F5850F23D63D4C15D9B8203BEB62D77C24B1F77D15350C832 + D0EBF0B0BA82BE0B751A5A268C9F397D84464F0A5C939CE437D6A0B5F901659F + 553046C9776FF503AE8CE7F91DAF55AAA60FFCF9BA19270EBCC5FA3D58505C89 + E79F10B0032CDDF726AC4E0F3D31D31CCCC96017287D23155B655F524033CBDF + 83874ABF4185FC6D28BEFEFFA793D10ACE66EE0F606991ECAE0177E6CBA706DE + 35DDAD4C092CCC9752EDE1E1D17F61F3C3B8B0DAEC88E085C1D26B053F221C9D + DD1608057C74992C5810C927FB6688A204D019BA207E54800EB22E120961E834 + 51F5AF1B7A3C1E2D22AB01B1646DD3EAB0383E06ADD7B5A3E7F28EBE0CD7FDD2 + 347DE0830F3F02E7CD6E844444C1693182CB17A2DFDC096E6414FA4DFF605EA4 + 18F61E3DC21646A3CF78831C17C366D281278C41AF518B48713C4CBA360AA8D1 + EA111723A68071318F41D3DE111CD0EB1D4168F8020A2859F624AE36FE8EE724 + 4BC9899AB1EAD96550FED488E41725B8A8AA474A5202CE5FBA82B4752FA0EA82 + 0AE9A949A838538D25CB9FC11F4DBFDE113886F3D5ABD75A02030E8F909F19F1 + B0029424AC44637D0378A23898C9956407786B7BA7028EC1C6EA186C3C302979 + 3554CACBD44AFED6507FEF0153D626E2628D1ACB252B70A5AE0E51B18BD1DDD1 + C61CB83F2F9BDE5E5F6E0786F204B09B8D08E58BE887C35743C285F4C3E1ABDC + 85B1B8A9D76063DA3A9C3D7F89DA6AF56512BA22014DD7EA2960ABC6FF299E12 + 78AFE53F2DF6C6DE37A6E6340000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004264944415478DADDD77D4C13 + 671C07F06FCD829B2160E9A0D4C146151362B26826A3D3CD4D2A3A36D46D4C63 + 70CB163501CB742C0E24D609E2661336B749400BBECC2C319065932D2E0E075D + 61F8C230256E231106424B4A29A56B0BB4296B4BB9DD15B8B50342B93BD1F8FD + E7F73CD7CBDDE7799EBBDC531E4110F00F8FC7C3FFB3E3E0194259B81BA62137 + B8CCD19317F1CDA799536EE86FE2050BE454E6174E80F39D870F78A0A29ED512 + C709C391B57915163EB220A8D133027E9EB99E31B0B2BE0D96E17F8246CE3BB0 + B6458761A70746AB2328E4BC03351D4658EDAEA0918C816E2FB347513F30049B + 7D8446EA4C43906D5E89D0C742A645CE19F8C16915F1A56C039CEE315FFFF0F9 + FAA071C7F724C3E5F690B8111A6977BAA035D96744B206CE358B4216C0E6704D + 8BCCDBFE2C7B60CEA93AE264760A0DCC2FAF0D1A57BC77133A0C36A85AB41871 + 8F06FC661974A0E4BD8DEC81FB4A6A88D2F75319CF20156A996F7799D16FB5D3 + C79A5A7B5096F30A77409BD3EBEB179CAB630CCD7D2B190693C5D7AE52FD796F + 805CC4E5F1E2F8D76A6E807B4F5C26941F6EA18172E54F8C610AD9AB749BBA4E + 79EE56EE815C853360D6673F10E5B9AFA17F62C35A58718531AA282B8D6E1F3D + 5B838ABCD7D903338BAB898A836FD040AE420DF44C7E3A7BE01EC5B7C4B943DB + 68E047A72F33467D92BD956E53D7392FDFCE3D90ABDC33A0BCB49A314AB13F9D + 7BE0AE8FAB88F2433B601CE476068B94DFE3C2918CB901DFDC953B654F15BE2C + 11FEC082D2EF18A38EEDDF16001CEAD24C39E7D28513347A5AE0C61469C0B1A6 + 4E1B94F20C98ED1E4E67901AE89AE5FC8063752A357BA0FC8B4AC628C5819DDC + 03AFDD31E16CE1BB9C3F8305255558B742C80E287B3B0D3BE55FA1ECF03BB03A + 3CF48599E6584E4600B052B11BCA8BFF7D9918CDE07CE6E1009615CBEF1B705F + BE6276E07DD34D64566051BECCD71E1D1DFF93131E160AAB6D1811FC300C98AD + 10442C466FDF004442010CC60144450AC8BE09314B84D0F61810FB8410DD647D + 2A46849E5EA3AFFE75578765713164EDC152B2B6776A91B05C8CD63B9DE3F7F2 + 8EEF351B6E68980129585464040932233A4A4003F50613A2858FCF08ECD2E949 + 582C0D6CEBD4215E1CEB03C68B9F445B47373BA0D73B86471747C1F1771F1686 + 93D56244A8408441532F42F82238CD7A2C8A8CC570BF0E61D171B0E8EF2294EC + DB8C5AF0456218B5ED1089137C7526E0248EAAD77FBB1D1C70748C3C67CC1300 + 94AC7E1AD79B7FC70B9255E4485BB0FEF9D550FDDA8C949724B8AABE8954E95A + FCF87323B6BCFC22AAAFA8919E2645E5A51AAC4C4CC21F9A5B1C0327967736E0 + 246CB24EC2FC8192B56BD07CB309FC987898C8997CE080D2940D50AB7EC18A67 + 92A0B9D1E87B3958018FE465D3CB4B653AA0FADA2D48D72505054CDD948CABB5 + F548943C87C686062C599A80BEEE761FB0B52DF02D9E15F8A0E55F3DD8C6DE50 + A61F1E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000040E4944415478DADDD77D4C13 + 671C07F06F51010581C2A0D681D23813B36499991B449D89565CDC50B7318D99 + 5BB24C13B0CC974541627520469BB0B94D82B3E0DBB2C460964DB6983816E9CA + B2A94C027399C96020B40A6D2995BED0DADAD7F3EEC41B1D18CADD231ABEFFFC + 9EE7B9E6EEF33CCFB5792AA2280AC3231289F0FF6CDC738252976D86D9E103C9 + 1C387A16DF7E9A3FE281C34DA24903242A1B1622C089CEE403EEAA6914B4C599 + 924414AC598898A95111CD9E17F0F3FCE5BC81B58D6D1818BC173172C281975A + F51874FB61B2BA22424E38B0A5C304ABD31B319237D017E4F72AF6F43B60737A + 38A4DEEC8062CD8B889F1E3D2A72DCC08F8F6BA82F152BE1F685D8FEBED38D11 + E30E6F5901AFCF4FE33C1CD2E9F64267763E12291838DECC888E82CDE51D1559 + BCE115E1C09D5F3550470B73386049F5A58871155B5F4387C1064DAB0E1E5F20 + ECDA80DD85CA8F5609076EABACA7AA76ACE6BD824C986DBEDE65419FD5C98D35 + DDB885633B5F2707B4B9836CBFF454036F68D17B2B60300FB0ED739ABF1F0F90 + 44BCFE200E7FA32503DC7AE402A5DEBD96032AD53FF186A9146F706DE63ED545 + EBC803498518B0E0B31FA9EAA237D13774602DABB9C81B555E90CBB50F9CAC47 + 4DF15BC281F9157554CD9EB73920A930133D5192271CB845F51D756AEF7A0EB8 + FFF805DEA84385EBB836739FD3CA0DE481A4F2D880CAAA3ADE28D5F63C61C077 + 3E2C1A7164499CF732AAF76E84C94E7605CBD53FC0D1D53262FCFCD74738F4A8 + C05539F2B0B166DD6018B0B4EA7BDEA883DBD78701B3640961D71B34DAF1039B + 3A6D502BDF85C5E927BA82CC4417CF1793072ABFA8E58D52EDDA4416A8783F17 + 9B946770B2EC03E2EF6069E539D4AA36437DF6BF1F7E5E2B3891991CC06315CA + 2706DC56A21A1BF8C474431913585EA260DB81C0D07F88A86908FABDF04D8943 + 94D781C0D438F85D365031334179EC0845272070D78A50AC1841A705546C1202 + AE3BA0A62743E4B1B2D56B33B195B93E65662A3C5623447169F0D98D0F9E157C + 7094FBF54ACBF8818909F1E8B75891969A0C83C982596929E835F6432A49418F + C18C599267E8BE19E9B325D0DD3220E35909BAE93A375D8A2E7D0FE66566E0DF + 9B7ABAA6A3AD538FE7641968EFD4D1750EDA3ABA850183C11092C509BC810F61 + 5DFADE47021FE2987AF98FEB91010321FA33213F0B8C4D4A83EB8E113189741D + 30213E450ABBB917D16229DC961ECC48CDC0609F9EAE73E03076239EEEDB4C3A + 88A5329874ED90CA16B0952C70687B8703B317BD80CBD7FEC2ABD90BE9AD68C5 + F2A58BF0B3F62A56CB9770B5EEA21679B972AED69EAFC7F32F65E19F3F9B9F5E + 60F692C5B876B50949D24C18BBDBB160BE4C18F093E2426E7B998C06D4FEDE0C + F9B2AC8880F29C95D06A7E6157B2E5CA6F2CECA6EE365B6FB475867D49C6043E + 6DB90F9653CADEE33F4CDC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004514944415478DAE5D77F5093 + 751C07F0F7B8E2871930166C2B34B0E0CCBB4E8C8BF9F312128EC2AC48CFCB3C + EFD23B70A4D919C8394BA4727794951EE8C034AF8EA3BA923A0BE701B7D589F2 + E35C58DC391ACA66B08D31D8609BD07E3E3D9BDC139375CC678FB3B3F73F9FEF + F7BBE79EE7F5FD7E9FEDBE63110481E961B158B8359B449F1335FBB6C030EE00 + 9379BFE66B3488B7CE78E074132B18E0C63DC70949C556C681070ED7E39B0F8B + FE27404665D3C20830DCB9F780BBEBE4216D710A370EC56B3310755F4450B3A7 + 05FCB868356D60835C8951CB5F4123C30E6C5668609970426FB205850C3BF092 + 4A0F93D51E349236D0E1A6F72A0E0C8FC36C9DA4901AC338846B17636E4C6440 + E46D03DF3AD64A7C2A7C16130E8FAFBFEFA43C68DCC16DD9B03B9C246E92425A + 27EC501BACFF8A0C1978BB99131901B3CD1E1059B6E1E9D081BB8EB610874BD6 + 50C0F2DAE6A07155DBF3A0D29AD1AA5063D2E1F2FB6C74CC86236FE4860EDC71 + 444A54BF994F7B05BDF16E73F73523864C566AACBDE73A6A763DC71CD03CE1F6 + F5F79F68A10D2D7D2D1B5AC3A8AFFD55EBEF7706C844EC4E370E7E216306B8FD + D01942F2F60B145024394B1B26163E4FB5BDF7A92D5DC73C90A930062CFEE807 + A2B6F4450C4D1D582BEA9A68A32A8B0BA8F681CFA4A82B7B29746051552351B7 + E7650AC854BC133D5E5E183A709BF85BE2C4DEF514F09D636768A33E285947B5 + BDF73929DAC03C90A9D002BEF27AE98C13013B7D29A60345D58DB451E29D857E + 40B3AA63C635A74F1DA2D00181B96B72FCC6BAD416D4EEDD08FD18B32B5829F9 + 1E59A9B17E632DADB2D081FBABBFA38D7A6FE77AE681ED7D664844AFC2687532 + BA82DE892E4B638706146E2EC0968A7A3FA0E89306DA28F1EE4D7EC02F2B3743 + 52FFCFEF2AAD150C67EE0D604D95E8AE0177948B6707DE35DD54660556960B7D + 6D976BEA881E713FDC4E3B16A4A543A5BC82F42716E1B7EECB58BC2403DD0A05 + 966466A2B3A31382A502B49DBF8095AB56402EFF05D9D9CF50552A6D466E5E2E + A467CF212F3F0F3FFDD804D60349708CE96E3ECB7DF3A4F4F3854BF480F6C91B + F044C5C17DC30456742C9C363388A807C9BE19888E838B1CF744B3E1B61A4144 + C7C3651B01119340F68781180E5C64F5F69D16B24FC25CE33A66806EB70709EC + 580C1B4D484A4C80566F042F898341DD30F85C0E06B406F0B80F917D03921FE6 + 427D5D8B798F70D14FD64793F9F8E3AA068FA524E39A66D057957D1A3C9E3A0F + BD7D6AB2CE8752D54FE1BCB5ADA33B38A0CB435EE37106042672E2A127FF57DC + 0AE4F1781818180C13706A7BBDC0E8F824D84674888A23EBA81E73397C8C1906 + 11C9E6C332A4412C2FC557E724CEC7C89F2AB0F9A930EBD5BEAA57F7829FBAD0 + 57EF385090F924DA3A2F63A520837C571458BD2213E76417919FB39CAA8D4D32 + 1416E450B5E1B4148B9ECAC2955FBB7CC01EE5552C4C4B0D0DF86E5909B5BDDE + 0402CACE77216755565040C1F265E8BCD88E787E0A74FDBD7EC01E659FDF9764 + 56E07F2D7F030707C9DEC1AB16320000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004704944415478DAE5D67F4C94 + 751C07F0F791C249081CC8AF44044A96362686822B5D811E619815E99CE5DCD2 + 0D84345A81CCB3402CD9285B32C803D35A8D61ADA4669DE780A02616101716CB + AB43B9935FC7F1E30EB813BA9F4FF73CE2372E701CCF3D61B3F73F9FEFF7FBDC + BECFEBF97EEF9EFBF2288AC2E4F0783CFC33CF8B3EA44A0FED82D66066FA79C5 + 67C03647B27690363D4F65E1EE29379C6CE2CD06A81931B1864D97374B3FE506 + B8FDC0494A9CBF9B73E0E1E315F8ECEDB4FF099053D9A470029CEBDC7DC057CB + EB5DDAE2F0201FA46F8E81C73C37A79E9E15F0DDB4C759032BEBE5181AFDD369 + E49C03AB652A8C8E99A1D61A9C42CE39B045A186566F741AC91A68B2B2FB2A76 + F58F40A71F2748956604199B57C26B81FBB4C859035F39514BBD97B10163261B + D33F74BADE69DCD13D09309ACC76DC3841EAC78C506AF4B745BA0C9C6D3CDDDD + A03318A745E66C5BE33A30EBFD1AEA78E64602CC2DAB761A57B437098A1E1D6A + 654A8C9B2C0ED786860D287E49E83A705FB1942A793999F50AD2A1B7B9F5DA00 + FAB47A32F663DB7594666DE20EA81BB332FDBC5335ACA1D92F24A04733C4B4CF + D4FEFAEF00B988D16CC5D18FEBB801EE3D768E12BFF614018AC4E759C30A339E + 246D7A9EB2EC2DDC03B90A67C0F477BEA2CAB29F46DFC48135BF5CC21A55909E + 42DA873F90A23CE719D78169455554F981670990ABD00F7A3237D575E09EC2CF + A95307B712E0EB27CEB146BD95B985B4E9794E8BB6CD0EF8DC8BD953FE700551 + 6B3119C85568A04ED13865FCEC47C7087A5AA07063A2C3584BE79803505452C5 + 1A55B83FD501B83ACCD3E17A4D6DDDEC81CDCA51941DDC0EF530B72B5820FE12 + 7111DEDC03F34ABE608D3AB27F2BB7C08C9D29D8955F01B1680706F4664E5790 + 7ED04F0A76425CF1F76B8BD50ACE65EE0E606991E88E01F7E516CE0CBC63BA89 + CC082CC8CD60DA16CBC409D86D3EAC66232297454121BF82A8E52BF04BEB65AC + 5C158356990CAB6263D1D4D884F8B5F168B87809EBD63F8AFAFAEF9190F018A9 + 52693584494248CF5F40527212BEF95A02DEBD81300DF7DEBC97F5E641E4BB4B + 2DEC80C6F11B0CECB7B6363C141D4D80B29F5A10BB66F56D813535DF4228DC40 + 80128914C99B9EE00E68B5DA70CF7C0F0668F3F081F586163CBE37CC061D288F + 85F6BE0EE0FBC0621FB7F105B0EA0740F17D61310C825AE007A34E8D790B0361 + D1F7337DF3683F608759467A09F0168EAE0D8DADCE012D36FB676C6606E827F0 + 46FF801681017EE8510F20C0DF176AFBB13D24C81F5D3D1A04072D4277AFBD06 + 07A3ABAB1B4B1607A1E37A0F968686E08FAB2ADC1F1E8A6BAA6EA6CADB557820 + 62097E6F57DA6B18E48A0E96C089ED9D09A8ECEC45E87D4104D8A1542172E9E2 + B905F27D036118EC85878FBD0EA9E1E51F82614D37DC052118ED53C13B389CA9 + 9E016118EC54401012019D5A09AFE0480CAAE45814BE9CA934B04D7E150F2E8B + 700DF8464E26D95E3AB780F1B1D16868BA8C75F131A8BBD88CC4F571B850F703 + 92131F21B54A5287D49444522BCF4AB1E2E1385CF9B9795A609BBCDDE1473223 + F0BF96BF000D8EC9DE15CE68B00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004454944415478DAE5D87F5093 + 751C07F0F728DD44E2D70446118296459DA71E9ADE5557A443A66665769ED5D5 + 6977E048A32B90131344933BCA2E39D0815A5E779ED85D594AB48B91AB4B2F2C + 76543B6F35940D923D0CD806DB18EDE7D39E477A6201319EE7113B7BFFF3F97E + BF7BEEFBBC9EE7BB3DCFF726204912A3231008F0CF3C5FF22179ACEC6510031E + F099D2AA7A9CAAD83AE684A34D82708135BB5F82D5E96526669B7D059B6F1CD0 + 3CC8EF1DDC5F739A1FE0A69D474945D956DE817B0F9DC4C7EFE4FE4F80BCCA46 + 8517E074E7D603BE51A7E6B4C4694931C85BB718C2DB23C2BA7A56C0F7721F67 + 0D3CA5D6C162FF236CE4B4039B3446D85D5E10566758C86907B6EA09581DEEB0 + 91AC811E3FBBAFE2EFBD83B0398619A4D13C08F9BA45889A35735CE49481AF1F + 6926DF97AF84CB13A0FBBB3F50878D3BF04A16DC1E6F1037CC201D2E370C66C7 + 8448CEC0A9267266046C4EF7B8C8A2E7967107161C569187F25731C0E2DAA6B0 + 7195DBB2A1EFB6A15963C0B0C717F29965C089AA57A5DC81DBAB9464F56B39AC + EF20156A99DBAEF6A1C7EA60C6BED776A2A640C61FD0E6F2D3FDD2E32AD6D0C2 + 17B2D06DB6D0EDFAE65F6E0C908FB8BD7E1CF8E83C3FC06D07CF918A379F6480 + 258A2F59C32AE46B9836354F6DE17AFE817C853760DEBB9F93B5854FA16764C3 + 5A56D7C81A559EB79669EF3DA6445DD1D3DC81B99567C8BA9DCF3040BE425DE8 + D1E20D53033EBBA570CCFB2C6EC10A1CDFB59101BE75E41C6BD4DBF9EB993635 + 8F4DDF32E6984F4F1C64D0E302A5AB9E08196BED728500F90A055C9A1A1932A6 + 6A3ECF1D58527D8635AA62C706FE813F18ECA8DDB589F77F16CA159FE1A1F468 + 6E40F98B6BB1657F7D08B0B4FA13D6A87D3B3686004FECD90CC5C9BF9F0AACEE + E074E6D600D65496DC34E0F6E28AC981374D37924981E5C572BAEDF38D6C3023 + 66C0EF752323E33E68B597B120E301FCDCF613162D598C368D064B323371A9E5 + 1296AF588E0BDF5DC4238F3E0CB5FA5B64653DC654A5B2093259361A1A9490AD + C9C1D9B30D10CC4E8467C074FD5CFEEBEFF96F2EB6B203BA878768D865AD160F + 2E5CC800353FB62273D9D209812AD5D7904A57D24069B6148D8D4AE4C856E38B + 86467E807E7F00B7CD10B206D2B0D552A8BE524D08FC0B47D50B2D6DE1017D81 + E031016F0830208C817FC80A81281A5EA70DA4F08E60DF068862E00B8E074471 + F03BFA408A62E173F6839C150FB78D00393B09822133DDF7DA7B8120CC3768E2 + 081C595E0A181F178DDE3E2B1213E2D14DF421411C0B22B86D4F4E12C3D06542 + CA9D49B86632432291A0C360C4BCB977A1A3B31B735392F1DB1523E6A7A5E0AA + F11A5D75ED46DC937E377E6D37046B2A74FA0EFE80E2F858F4F45A18E09C60A5 + 600C30514CC3FE0DA8D55DC1FDF7A67303EE29CA6796978A283611CE7E138431 + C16A2110254E8695E884489C027B8F11D19234BA4626A4A2BF4B8FB8E474D808 + 03A224F3D06FD4614E5A065DC7036A75ED213F924981FFB5FC093F7EC9DEFA91 + FAEE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_10_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000042E4944415478DAE5D87D6C13 + 651C07F0EF8DB10183017B555C78F17D92058C104CD0E8840EEA18BE870C0906 + 4C189DE80C6E2C14D9984813149565836E8212CDB269222883D9B84EAA914588 + 9B531A521D2FDB705BD7766BB7B66B776DAF67EF36CFD5D5ACBD3E1B06BFFF3C + CF73D73CF7B9E7F95DEE528A65598C0E4551F867361757B14A79364C36373F96 + BF5F0DB151ECDC28F48BCABEC0A7259BC65C70B4890A06B851FE317BACF825E8 + FB5DA2618152545A836AC55632C0F23D9B61B6BB8589C5E6ADBCEC89031A06C8 + AEE0FEF2CFC80037ECFA9055166F250EDC77B80A9FBFB3ED7F02242A1B1522C0 + C9CEAD07DC59A9096B8B1726CF46CEBAA5888E8C08EAEE4501DFDBF6B86860B5 + 46873EEB50D0C84907D637B7C3EA70436FB607859C746053AB1E661B1D345234 + D0C5882BC53F8C03B0D89C02B2DD3000D9BA2598393D2A203264E0EB471BD80F + 64ABE07079F9F19E8F3441E30EBC9C0EDAE5F6E19C02D2E6A0D166B0FD2B326C + 60A8991115018B9D0E882C786179F8C0BC236AF670EE6A015858511F34EEE0F6 + 0CB47659D0D0DC06A7CBE377AEAFDF8ED25724E1037794AAD8B2D7D68A5E412E + DC36B75C33A1C76C138EFDA8ED40799E941CD0E260F871D171B56868FE8BE9E8 + 32F4F1FD9A864B13032411DACDE0C027E7C800B71FAA65956F640940B9F26BD1 + 3085EC49A1CFCD5391BF9E3C9054880173DEFD8AADC87F0A3D231FACC59575A2 + 51253999427FDF31152A0B9E0E0DF8DC96FC31AF8B84D495A8DCF58C002415EE + 467B758D638E9F3C71484007044A563FE177ACE98603C7773F2F00DF3C5A2B1A + F576EE7AA1CFCDB36CFE0CBFF3EA8673E1034965C280F2B253A2518A579F250B + 946DCAC496FD35A8D8BD81F83F0B25CA2F71626F3694557F3F74A2567032736B + 00CB0FCA6F1A7047A1627CE04DD38D645C6049A18CEF7B3C23DF6F1153C1B869 + A4A6DE07ADF6323C913170DB2D60A7C7811D34C11B150BCFA019DE6973C1D84C + 98322B1143163D7F9E729AF996E6C631C96006BA919525C5C953B5889C3D0FCE + DE1BC3D762865FA3DF35368903D2CE41A4A52DC6CF2D97B0382D0DBFB6FC8225 + 0F2E45F34F4D7868F9325CBC70112B1E5E81F33F34E291475742A3F91EE9E98F + 41ADFE1612C92AA854F590AC91A0EEAC0A9999529C3E7D06544C125CFDDDE101 + 19C68B2953A379E0BDA90FE0B2561B12908349A519C3C00C1FB04E85B5D23538 + 7BA64E00FE85E3DAF3175A82037ABCBEDF78DD4480DCCAA9BF5113068E6CEF68 + 20577BEC9015D4B4D8E11A8C9E05DADACBD75EC490856FB9DA8B9C99008FBDD7 + AFF6A841033F765B8D800FE6F1D5223160DCDC58184D66C4C7CD418FB10F89F1 + 73A0F77DB627F8DACE6E0352E625F3ED6D49F1B8DED1853B17DCC1B70B526EC7 + EF57DB71D7C2145C6BEFE45BADEE2AEEBF67117EBBD286BB17CD87AEF57AE8C0 + BD05B9C2F6720904ECD21B9194181F10C8C13A3AF54101B5BA2B7E0FC9B8C0FF + 5AFE0474C7CEDEFA1DEB750000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_11_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000041B4944415478DAE5D67D4C13 + 671C07F0EF0102CA0085009B23BEC46D8E11A2048D4B36B331855901976D1AA3 + 332ED3442D73621425AB9BC8369B68D44960567CD9B285E0964D3341D68412BB + 45CD74D275B3216EBE0C504A692B6DA1A5E5FA76EB1DF4A40343B93EE0A2DF7F + 7ECF737779EE73CFF3F47A14C330181C8AA2F0DFAC2DAD66649255305A5D2099 + DD153FE09BB235436E38D84409014A0ED5084649B7AD260F5C2DF992395EFA2E + 741627D9192C3F851AE93A32C0CA5D6B61B2B9F88185E693A2556307D477939D + C14F2BBF25035CB9F318232B5D471CB8E77035BEDBBFE1310112950D0A11E078 + E7D1036EAB5286B4C43352E2B1317F2EA222C2827A7A41C0831B5E150CAC515E + 47574F5FD0C8710736A85AD163774167B205851C7760D30D1D4C563A68A460A0 + D3236C2BDE3574C36C75F0C8567D37C4F973F0C4C4C86191A3066E3DD2C87C2E + 5E04BBD3CBF5779D54068DDBBB3E1BB4D3E5C33978A4D54EA3456F7D203264E0 + 683329320C661B3D2C72C78AF9A1038BBE5030870B17F3C092A30D41E3F66DCA + C50DAD198DAA16389CEE80735D161BCADFCF091DB8B95CCE546C59227806D9B0 + CBACBE6D44A7C9CA1FFB55D386CA221139A0D9EEE1FABB4F2804438BDFC98656 + DFC5B54F355E1B1B2089D02E0FF67E7D9E0C70D3815A46B6BD80074A643F0986 + 49C54BF9363BCED1E265E481A42208F8F67BC543DEC649E90B7D03BD81CE810F + D6D2AA7AC1A8B28D797C7BCF71398CCD17865C73FAAB033C7A5860CEE2D7028E + A9B534AA76BEC90349857DD0CCA7A3028E291ACF8F1ED874C78E131F2EE7811F + 1DA9158CFAAC7019DF66C799376D127920A910018AD7E461BDF4FB00A0A4E28C + 6094F483B7028027252B20ABBEBFA705CDE078E6D10056EE933C34E0E612E9C8 + C087A61BC888C0B21231D776BBFB3F8FDC9171A01C16A4A5CD8646D38C8C8C74 + FC76558D399973A156A9909995852B97AF60C18B0B70F1C225BCBCF0252895BF + 203BFB15BECAE50D10897251572747418108A7CFD422227E2A1CF7EEF4DFC3D3 + FF2FF5F3A5A6D103113601B4A39783FDAEBE062A3A0E2E9B19CCC40478AC0620 + 3A1EEE5E13BCD1537C7D23C26393D067D6F1E7C3639341B3FD9814B82C5AE4E7 + 89F0E3D93A32408FC78BF0095101C0F48C0CFCA9FE839B41D5D52664CD9FF7C0 + 19F4CF1C5B737273505F2F479E0F78D607A46292E1B474F038B65EBCAC0E0EE8 + F6FAAEF1BA0280CFA5BD80668D2664E012D1EB3857571F227060794702FA61FE + 3ADCDE63618A06C5D803DD113160FA7AEEEFC1A858D03DF7B8BD17D667E6AA7F + EF510E1357FD7B8FEAD5737D87A9838331BD06E1C08F7714F2CBCB26614A1C0C + 4613121326A3D3D085A4C4C9D0EA0C484E4A447B871EA95353B8FA647222FE69 + D3627AEA53686BD771F5EF5BAD98352315B75BDBB9AAB97E0BCF3F3B137FDD6C + C13333A7F9FA37037E242302FF6FF9174652CCDEC2C537C00000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Delete_12_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000042D4944415478DAE5D67D6C13 + 651C07F0EF8D6EDDD8A48E28044D8C7F69264E368560A206277452BA8D182164 + 4830400274A233385828C21848130C2A0B936E0212CDB2411475C3D1A49D5422 + 4490CD229598901810B295B65B5FD6B75DAFED79775B1F5B37B3EE7A0C82DF7F + 9EE7B936779FE7F73C4F7B14CBB2480C4551F877D6EC69639BB6AD80CD1316C6 + 3B0F7E0DB1D9FDF632D2AFD77F8B633B2A473D30D144A5025C5DD7C2EAB59570 + FA18D1B0B1C24FF4CBFA55D203B51FB78A46E936AF941EB852FB397BB8EE4DB2 + C49255B0A10DADBAB5D2001BB7AF86CBCF901B8BCDEEEACA3B07B47BA5ADE09E + C6E3D200576CFD8CD5D7AD951CB8EB400B4E7CB8FE7F02945496104980939DFB + 0FB8B9D99CD6123F3E53810D654590CB32529ABD28E047EB5F160D6C35FF8181 + C1A19491930E34F6DCC0609081CDE54F0939E9C0EE6B36B87C74CA48D1C07054 + DC56BCE5F0C2ED0B11E40DBB179AB239C8CBC91A133961E0BB87BAD84F340B11 + 0CC784F1F6A3E694717BD795800E331C2E4490BE208DEB76DF7F22D3064E3453 + B332E0F6D36322B72C9F973EB0FA53137BA06A1101D6361953C6EDDB588A6BBD + 6E74F55C47281C49FA6CC0E347C35BCAF4819B1A0CECC177168BAE201F7E992D + 7F3A71DBE523D77EB6FE85C66A95744077302A8C771E318986D6BC51825EFB80 + D06FEBBA726780528466A2D8FBC51969801BF777B0FAF7CA0950AB3F2D1AA6D3 + 2C217DFE3E4D35151303BEBEA666D48FDD8CA7172011285578A0E3F7B3A3AE9F + 3CB69FA0C7042A17BD9274EDB28DE166BA14B7475E58EB9A3B45A3EA37A8497F + D761038A6665267D6EEA3A3371A0A59746F3D6D70850AAF0132D7E549E3EB0FB + 661047B62D23C0F70F7588467D505541FAFC7DE63E36353DA066951AEB745F25 + 01A50A0F3CAA5D0E7DCB3F5B4654052733F707B0719FF6AE0137D5EAC607DE35 + DD48C605D6D76A847E2432FCF611C99A062AE44141C193B05AAF22265780F63A + 9199970F7AB01F54CE83422BCB9D8E90C781290F3C8C21B70DB2BC8710F1F783 + CD990E9A1BB3B93311F5F6A1BC5C8593DF7440A67804A1FE9BC3CF880EFF09FC + 78BE5B1C30EAEB4761E16CFC6AB982678B9FC12F972C98535C849E4BDD786EDE + 5C5CBC7011F39F9F8F733F9DC78B2FBD00B3F92C4A4A16C064FA014AE542180C + 46A854A568EF388DA5154BA40346A3314CC994830E050890CA9E06C6EF162A13 + F539806C0522011762D9F9DCD809E4E483E1DA78E5E4F9B34805194F2FCAD42A + 7CD77E0A54EE0C843D7D04C7B7E72E5852034662DC77624C12F08982A770D56A + C5ECC242FC66B99C5205E395E35B65A9129D9D06A839607BDAC091E51D0F1887 + C5DB382C1158CAC18C4613012E56BD8AEF4F75DE3B401E661A01F2952B2B57A7 + 07DCB1A58A2C2F9F383022CB053B340826530136E0448C3B3CF1BD9731E4165A + FEF4F27B8F0AB9924E2F15B00BE390AB4F80B10187D006076E251D927181F75A + FE06C55CD1DEF57664B90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_13_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003F14944415478DAE5D67D4C13 + 671C07F06F45791953827138B73FE65F1A5406151926DBE29842AC058D516370 + 06A326B8A21B8B43897582F8D2C465BE10D182A2464340E39C01C42694505F20 + C2A4AB5ACD1213A39B61E5B52DB4B65EAFEDAD77D0934A0DE5E98946BFFFFC9E + E7B9E6EE73BFE77AAD8861180C8D4824C2CB59BFB78A29DDB11A06B30342A648 + 79196776650EBBE0509388045870F47762D49E1F560A0FCC2AAC6094F24C745B + 68413BC8DEE8B9A2B5C203E5872A89518AAD6B8407AE919F664E16AE13FC192C + 28AE42A5628330C0929D59305A69FEC4A4D9939BF9FA809D7DC276706FC97961 + 80ABB79F6094851B0407EE3E52810BBF66BF2740416543220870ACF3EE01B796 + 6982DAE2E953A3B0293D0161E3C70574F744C083D9DF10032B357FA3B7FF79C0 + C83107D66B9FA0DF46C360B406841C7360DB43038C162A602431D0E1227B149F + 76F5C164B1F3C8279D7D90A5C7E3C38850BFC851037F3ADEC01C962D84CDE1E6 + E63B4F6902C6EDDF9802CA417B70761E69B15178DC6979253268E068F341E838 + 98AC945FE4B65549C103738FA99923398B78607E697DC0B803DFA7E161BB090D + DAC7B03B9C3EC77ACD56146F4E0D1EB8A558C51CFD71317107D9B0DBAC7BD48D + 0EA3855FBBA5FF0725B912E180269B8B9B1794AB89A179DFA5A0BDB3971B5735 + DC7B3D402142D12EEC3FDB387AE08AF579C3DE2531731640F973060F942BAF12 + C314B225FC983D4FD7FDEBC33E73E9CC6F3CDA2F3075D1B73E6B773B5C3E40A1 + C202E33F0EF1595337348E1E78C740A3346F193A06FFB01696D511A38A3649F9 + F1EE932A244C9B103C50D74EA16CFB721E2854D81B157F1A161C50B6568A8D8A + 8B28DFB19207FE72BC8618B52F67293F66CF734ABE0ACA8A173B42D4C1B1CCBB + 012C39207F63C02DF98A91816F4C3798118145F9326EEC740EFCB83B43274164 + 3723367626F4FA07888B9B8D3F6FEBF04592182DAD6D989F3C0F379A5A903C3F + 194D379BF1D5D75F42A3B98E9494057C55A9EA2191A4A1B656858C0C092EFD51 + 8388299FA1DFF068E01AAE8177ECB5E63632A0CBD2C3C1FED2DD83287C1268AB + 094CC464CF7A174222A341F5F7C01D1EED99772364E247786E32BC383E310614 + 3B8F9C0ADADC8E654B9770C0F1519FC0DEF36F704097CB8D900961A0ECCF78E0 + 5CF1E75C07E3C509D0DE6E4362D23CB4B6B4FAEDA0B773DE5A5D737518D08B63 + 6B538B2E30A0D3EDF98C9BF60B7CB983088F82F39991EF2022A2417B2A7B9CED + 5C58F4349F0E4AA5125457D74214190387F93F42E0E0F60E05CE889D85077A3D + 66C7C5E1AEEE0ED7416FE7BCF555CF1E5B53D3525157A77AFB802C4C5DAFE62A + 0B4BCF90E24A6D1D3970D7B61C7E7BD9F803EAB45A8813138306DA7A9FFA7C49 + 4604BE6DF91FA236CCDEEF6119C70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_14_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004344944415478DAE5D87D4C13 + 670006F0A742290C113153A759B2FDB58519061D63EE331B9392D5D291398DC1 + 191735C1E1742C0E25D609A2B109CB3E24300B7ECC6C21A0D96401A724B4B3FB + C08983AE6A63969818D91C1628F48396D6EBF57ABB3BE8AD1D5D28D71B2EEEF9 + E77DDFBBA6FDDD73EFB54925344D233C1289047FCF66ED97F4B1DDAB31E8F273 + 6B4D7D1B8446BB7D153F7FFF70078E6BD64CF9C070932416E0C603AD74E3EEB5 + B03AFD8261D152A3FB1A27F696880FACAAFF4A306AFFF6D5E203375437D33A4D + 096C6E52D406D90BFDA266BDF840CDC72D8251DA1DEBC407AED37C461FAD7E53 + F43D5855D78A16ED2671800D7B36C0EE21F937169AFDE525FF1E70C8256E8307 + 1A4E8A035CBBEB08ADABDE243A70DFA1669CFAA0F47F02145516165180B39D7B + 0FB8A3C918D72D7E78713AB614E540963827A6AB1704FCA8F425C1C016E3AF18 + 1DBB133372D6815DA67E8C794958ED9E9890B30EECBB6E85DD4DC48C140CF453 + C2B6E2AD61171C6E1F8FEC1F72A1AC281B735392A222670C7CF7B081FEA46C05 + BCFE20B7DE73DC1833EEE0E67C107E92C1F978A4DB4BE0E690FB1F917103679A + FB92E6C0E121A22277AEC98B1F58FEA99E3EB4B58007563676C58CAB7DAB10D7 + 071C30986EC2E70F449C1B757A50F7B6227EE0B6BA4EBAFE9D570437C886BDCD + E61B360CDADDFCB18B96DFD050AE140FE8F052DCBAEA985E30B4E28D7C0C0C8D + 72F356C3D599035FDF5831E5515D2A2F4038508C102485839F9FC76DB361CAB9 + D3273EE4D151818A8297238E5D19A4A07B4FCD0335BA738261DAB295FC9C7D9F + EC071222CEEB0DE7E3078A15D18097AD241A2B8AF97F16AA9BCE0A46D56C51F1 + F37D473B91B3441A1FB06CBD0AA5B56D68DAF51A0F142BEC851EA95C055DF35F + 172CA8C1D9CCBD016CA8D5DC35E0B64AEDF4C0BBA69BCCB4C09ACA326E1E084C + FE7626CF07356E4766E6A3B058AE21284B07E1B2413A3703C4D80824A90B4138 + AD484C5D009F731809690B71C7614572C6126EA4531680604619B31EB7FD01B5 + 5A89D36D1D48B9FF218C596F4C7C1635F115F6DD85BE99030349F340B9479095 + B50CBF98AFE209F9E3F8B9D78CA7F2E4F8E9622F9E7D260F3F74F760F9D3CBD1 + FDE3053CFFC273301ABF477EFE8BD0EBBF8542B1029D9D5D502A0BD1DE710EC5 + AFAEE480D28C07E11DEE8F0F485141A681F9114049F23C901E07D70CE5661A4B + 9D6832989CC1AC6D7C83E1CDB1239DBA18A473800726A62F856FE4771EC78EDD + 3DE6D8808120F39A20C90113A43210BEF1290D66CB7360EAED436EDE93B8D473 + 296A83A1E6A235181F70F2F64603F20DCAD2B8E6D8BD1760F628DB20DB9C9469 + 90649A0C359898B60801A6E950832A9512EDED6798BDBB087EE76DF1808F643E + 866B160B966565E18AF932D760A8B9D0186A2E5A838A4205072B2E56C707DCBB + 732B7F7BD944039A4D26C873736302B2307D979E0716A955F8E6CC590EE81DBD + 15F1904C0BFCAFE54F6A1DCFDE8AE80B070000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_15_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004154944415478DAE5D87D4C13 + 671C07F06F7967A08873BAF9CFF6D716240C3B6490CCBDB001192AC36C1A8333 + 2E6A22ABD3B13818B14E108D4DDCAB0466C197190D812D9B2F406613E8EC5E70 + C28435B3214B4C8C6E044A297D81969ED7B7DBDD499FD181A33D9EE1E27EFF3C + 2F77B9FBDCF779EE9A54C6711C26974C26C3DF6B9BEA2BEEC49E75181A758366 + BD7FB4152795EBA7DC70B2492605A8AC3D2719A5DAF52A7DE09683CD5CFD9E0D + 30DAE92658AD3E8F53FB8AE9032B6BBF968C3AB06B1D7DE0E6AA464EAD2C86D9 + E1A19AA0F0A067AA37D1072A3F69928C52EDDE481FB851F93977BCEA0DEA7BB0 + B2A6194DAAAD7480757B37C3EAF4900B4BAD03A5C5FF1ED044F93B78B0EE0B3A + C00DEF1DE3D4555BA903F71F69C4971F6CFF9F00A9CA261515E05CD7FD07DCDD + A09BD5123FB62409256B9623362A22A4A79704FC78FB0B92814DBADF6019BB1D + 3272CE81EDBDB730E6F2C0687586849C7360CF7523AC0E3664A464A0DB276D2B + F60F8FC2E66008F29669148A35E9488C8F99161936F09DA35AEE53C54B70B9FD + E278EF495DC8B843DB72C0BA3D3C8E2148878BC54D93E3AEC85903C3AD076222 + 6073B2D322CBD767CE1E58FA59077764472E0156D4B7878C3BFC663EAE0FD8A0 + EDBD09C6ED0D3A66B13B51F356DEEC813B6B345CEDDB2F4B4E50286199F537CC + 18B23AC8DC15C3EFA82B2D080FF8DA96B2296FC252792E04A0CDE513C795273A + 2443CB5ECFC180C922F69BB5D730A8D74E39E7ECA98F087A5A605EEE8B41737D + 968820208D623D3E1C3A7D09A90F06AF4A87F652F8C05F877C50BF5B48804AF5 + 45C930956215E90BD7497F38923E905651012A36AD46C98717505F5644FE59A8 + 6AF84632AABA6435E9EF3FAE4143F95AA81BFFBA9EA404E7B2EE0F60DD61E53D + 03EEAC50CD0CBC67BA899A11585DA110FB5EEFC44F53DC02F8C6AD4849790206 + 431FD2D252F1F3553D9ECE94A3ABBB07D9592BF04367179E5B998D6F759D58F9 + EC33D0E9BE474ECEF3A4D568DA5150908FB6360D0A0B0B70F65C2BE2173D8A31 + E38D3BF7F2DDF9427C77B9277CA037663E7C8E1111F68BFE1A221316821D3523 + 3A31198CDD8CC8798BC1DA8D88E2E719FB303F7E08B76D4644F32DC3B7E271BE + 8D4D7E048EE17E14BDB28A1ED0E7F3838B5F10047C4AFE2449F0A72B579191B9 + 02DD5DDDC8CACE42E78F9783120C2417685B5A2F126054D25230237F109CD076 + 76E943037AFDFC397ECFB44059DC7C789C367E7E213F3FCC6F812478F92DE08F + 4BE6C76692A0703C909CD072094BE0B10F50024E2CAF008C8C8E05CB8C4F4930 + 5DBE9C241768EFB6F7E827F80F409260EC3CB06323E2DE0B2428241795B8085E + E7084950484E366E12C78C7510454585686969832C6131DCF6C1F081FBCA7790 + E5152A007C3C6519FA0C06A4A6A541DFDB0B7946465809E6E5E789B0C94097A5 + 3FE8259911F85FAB3F018BB5CEDE230C6DE10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_16_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004174944415478DAE5D47D4C13 + 671C07F0EFF16261B0214E659A25DB7F8B310CD9C6D0E95E9860861348446370 + C6454D9C65A24651629D30743671719B0646D9A63333045C363560A609AD762F + 3871BE344A8C0909910DA194D2375A5AAE6FB77B4E7AA15043B93EE2C27EFF3C + CFEFEE72F7B9EFF3DC311CC76164310C83D1B549F913777CEF2AF4DADC42FF49 + 4D13A4D667C5F9E29CDCE78462F598078E34315280B4EAB10115556725A39425 + 2BE903371C6CE06AF7AE81DE4A37C14AD5399CDC5F441F585EF5B364D4819255 + F481EB2BEA3895A20846BB876A82E4454F55AEA30F547C592F19A5DCB9963E70 + ADE27BEEBB8A0FA9EFC1F2630DA8576EA403ACDEB71E668747BCB1D43AB0BDE8 + F1010D94FF8307AB4FD301AED9F32DA7AAD8481DF8E9D13AFCF8F9E6FF0990AA + 6C4451014E764D3DE0CE6FB4112DF18B2949F868C502C862A2C27A7B49C02F36 + BF231958AFBD07D3C050D8C8490736DFECC480D303BDD9111672D28137DAF530 + DBD9B09192816E9FB4ADD8D56783C5EE12919D061BE42BD290183F2D2472C2C0 + 1D351AEE2BF95238DD7EA1DF77421B36EED0A62CB06E0F8F738948BB93C57D83 + FD91C8888113ADA7A645C1E260432277AFCE881CB8FD6B3577B4385B0496D536 + 878D3BBC6519DABB2DD0DCBC0F97DB1B74CE6475E0D8C7391303166E281DB3D1 + E6A667A36ADB7B921324459659D76144AFD92E1EBBDAF6377A749A31D79E3979 + 44448704E664BF1B74ECAE294A005A9C3EA12F3FAE960C2DFD200BDD0693306F + D0DCC1FC67835F5AADB91C399046B11E1F0EFD70990EF076AF0FAA5D792250A1 + BA2019A6942F17E7E43E69CF45470694AF7B1F5B8E340501691501D696E64355 + F74B64094E664D0D60F561C513036E2D538E0F7C62BAE11A1758592617E65EEF + F09F3F6E3A7C8366CC9BF712DADAEEC22F4B026B3322363119EC403F98845960 + AD7AC8A6CF81C3D885E8A76761C8A2475CF21C61E41253C0F6FF0319DF0F1A1F + 202F2F1767CE36217EE60B18D0773C7C96EFE107F8EB951BD280ACAD0FA9A9F3 + 714B7707AFA4BF8CBFAEEBF07A463AFEBC7A1D6F2CCAC0EF2DAD786BC9425CD2 + B660C99B8BA1D5FE86ACACB7A1565F424ECE525CBCD88CDCDC65686CBA8082FC + E5F4803E9F1F5C3C9FA0BD5F044627CC1012E4E267F0C7FBF8C4660B09FAE392 + F9DE282618CB8F763E31921CCBF74CD25C21C9003036F97938FB3A451C195B5A + 75E101BD7EFE1ABF2724707482AF66BC866BADD790B930132D7F5C094A30905C + A8046378B08B074B030E2F6F282013F70C3C0E8B9020492E864FD4CBEF519260 + D0DE23E7F93190209790028FB59B3E303A5606D6353826C1B4F4056272813190 + DCA31224B0C295F9C2C824CC86DBDA3371E0FEDDC5E2F2921A0D24090A5F2F9F + 2C1949725143163141921CE3328B0992E4984183D0BBCC3D2828C84363E37901 + E83475057D24E302FF6BF52F7BB0D1DEEBC3FAC90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_17_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003F44944415478DAE5D47B4C53 + 571C07F06F79080C26E29C64BA65FB7309B28D29836D6CDAF90838C0881A8333 + 2E688296CC6D7128B14E101F4D58D46920169C8E680868545488E28059B6A0C2 + 406BDC962526465C430A2D7D406BEBEDEB7A6FA52754BA70B93DE0A2BF7FCE3D + E7B6E77EEEF79C73252CCB62644924123C5DF965F56CD5B6E5E81B7480669554 + 5DC2D1A29C510F1C699208016E509C618F6D5F4980DF1F69108DDA5B904DAEF9 + 798ECB57D107D2AA0903CACBEB45A3149B73E803F3F6D4B195DB57436BA69B60 + A9F23CAA77E6D20716979F158DDABD79257DE0BA921A5629CF85DEE2A49A20FF + A2274BD7D207CA0FD68A4629B6ACA10F5C23FF99FDA9E44BEA7BB0F8701D6A15 + EBE9002B76AC83D1EA24138BADDDDFE44E1CB09FF277704FC5293AC0D5DB8EB2 + CA92F5D481BB0ED5E0F40FF92F0890AA6C4451014E763D7FC02D55AAA096F8AD + F8586CCC7C0F11612182DE5E14F040FE02D1C05AD53F300C3D128C9C7460F3CD + 1E0CD99CD01AAD8290930EECBEAB85D1C208468A063ADCE2B6A246370893C54E + 903DFD839065BE8B98A8290191E3067E7BA495FD51B6103687C7DBDF715C2518 + B76F83148CC3C9E1EC0469B131B8DF6FF94F64D0C0F1D64B534260B23201915B + 57258F0FB822AF70D43ABE919C8E43058B08B0A8B25930AE6CD312DCED35A1F5 + E67DD81D2EBF7B06B3159AAE2BA3FE73AE7A3F4107042E5EF499DFD8DF861094 + 7F9D2E3A41BEF86556DFD3A3CF68216337FE7C808457FCE76C69BD2A1E68B2B9 + BDFDE2632DA2A1855F48D1DB6FF05ED7B5DE9918208D629C6EEC3B713578A06C + EDE7D8B4BF01CAEFB20850AEBC2C1AA6902D25D7FC3C9585D950D65C0A2EC1C9 + ACE7035851267F66C0AF8A1463039F996EB8C6049616C9BCD72ED7F08735721A + DC0F8D489CF336D4B7FF42626202FEE852E383E4247474762335651E7E6FEFC0 + A769A9F855D58E85D2345C696943FAE205A4BDD0F80B323296A0B1B109595919 + 3857DF80A8196F62487BEFC9B3DC4F0E60DBB56E71406650E785DD52DF4168F4 + 74AEAF47784C1CEC663D425F9E09C6AC45C4D419B01AFAB8FEAB7864D22232EE + 3558F51A844E9B0D66E05F44707D8B4E8365D94BE901DD6E0FD8282E41CB0001 + BE9FF40E49F0FA8D2E7CF461B25F82699F7C0C95EA3748A5F3D1D4D4EC4DCED7 + 5E6CB83C0AE8C3F16D7B875A18D0E5E17EE37106044A22A7C2693571E3D3B971 + 1D49D01319C7F5F5244136269E24C7F0FDE87838CDBD04181EF73A6CBA1E91C0 + E1E51D2B413EB994D4147476747A5B5F7242120C8B9D053BF702410343C323C0 + D81F064C904F2E8CDB932EEE10F109FAF69E3741FE3ED78E4CD03EF0002B72B2 + 8303EEDC5A409697AFA7817C82FCE94D9A3B97242734411EE6034AA267C266D0 + F81D923181FFB77A0CAF2FCEDEF4EA86760000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_18_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004274944415478DAE5D87D4C13 + 671C07F06F792B0C66C589C42D71FBD344D964892FDBD866271A3B1137743138 + E3A2263088CEC5A0C43A41743661AF1A8880AFD94240B3C91C7BE9069D751B9B + A0B86E6E66C6C48123A4D0D237AEF4BC5EDBDBDD01B776C551AE8FB8B8DF3FCF + 3DCF5DEE3EF77D9EE79A54C1711C824BA150E09F55F8F659AEB66415FA5C5EB1 + 5F5EF705E45645E10AE978EF513DEA76BC10F6C0609322126041651357B7F345 + 0948AA84173D529A173D70B3EE23EED8AE3512F08DC3CDB2516F16E74AC7C27D + 8E6B5F220F2455770CA8AD6A928DD26DCD230FDCB8BF91ABDDB5166627D9042B + 6A3EC1C93DF9E48165551FCB46EDDBBA863C7043793D57A3CD879562892628BC + E88715EBC903B5EF35C846E9B6AF230F5CA73DC11D2D7F85F81A2C3BD48806DD + 2632C0EADD1B6077B3D28DE5D6BE6DF9770ED84FF83BB8BFFA1419E0DA9D47B8 + 9AF24DC4817B0FD6E3F45B05FF132051595011014E76DD7BC0ED75C6A8A6F891 + 74150A73E641191713D1DBCB02BE5BB05836B0C1F83B6C83B722464E3AB0E572 + 37063D2CCC767744C84907765E37C34E3111236503BD7E794BB1C7E28283A225 + 6477BF0B45398F212529614CE48481AF1F3670EF172D81C71B10FBBB8F1B23C6 + 1DD8AC06E365791C2D21290F83AE7EEAB6C87F05AEDE581216D3AC051A040327 + 5AF725C4C0E166C290AD1DD760BDFA7DD8F5674EBE23A1C7042ECD7E2E64EC9A + 2B01078BB32560696D4BC4B8CA5797E17AAF0386CB5DA0BDBE907336A71BB355 + A13F9FAD867313075EB5C5A0EAB5E5B213144A9866D30D2BFAEC943476E1D79B + 98F340E83DA3023A3C7EB15F76AC5536B4E465357AFB6DE271A3E14AF4C0A2F5 + 2BB0E5903E0448A218D68F031F9C43F5360D6AEAFFFE2B4556829359F706B0BA + 527BD7805B4A75E303EF9A6EA4C60556941689C73EDFC8772B712AFC437664CC + 9D0DD3CFBF21A054817159A154A58176F441919C06C6698672EA4CB8AD3D88BD + 3F0DB71C6624A6CE145B6ECA43602C7F40397D1686FABAB072A506679A9A9134 + FD610C9A6F0C3FCB3FBC01CFFFD0290FC8B82CC89C3717173B7FC1E3998FE2E2 + 251316CCCFC48F172EE1C927E6E3BBB6763C93B508DF18DBB0449D85AF5ACF63 + F9D2C5F85C6F408E261B673FFB1A1ACD327CDAFC2556E53E4F0EE8F707109B3C + 4D046664CCC14FA62B237D2BE25352413BAD7C6233C404E3F871DA690949D069 + EE16936306FE8492EF53969E30E0284E68DBDA4D91017D01FE9A002B02B9247E + 8AA90109385E82594F3F05A3F15BA8D5CF42AF6F11931B6DC74A501E70647AC7 + 022A12A780753BF8F169D2DA13DA40626AE8DA4B49979263847E723A5867AF04 + 8C533D089A3F4F1C189CA090DCC2450BD1D1DE21B6A3C9DD2E4101B63A2F373A + E09E1DC5D2F40A151BAF04430F8524C80C0E48BB57587B3E7E978F2618CFAF41 + 96B20E27CCF78313A4076E4A4045F20C786C3D219B645CE07FADFE02EEC1CFDE + 95D3E26D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_19_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004374944415478DAE5D87F4C94 + 751C07F0F7217010241C51546BDADCDADC94929642CD95973F127FA022CD61CE + A66E204C733394792688D66D94950ED6813F726B0CFAA1A8B4A0803A6B0407A2 + 5756D3D85494B993FBC1FDECCEE77E3D3DCF03F7784F2771F7F0159B7DFEF97C + BFDFBB3DCFEB793FCFF7F9E391D0348DE0924824F8676D3ED044ABDE5E0EB3D3 + 0792A55035A3A62427E484C1264938C0C20F4ED335252B70CBEAE6E6E5B5DF88 + 4655142EE5C77B8FB4A076C7CAF1030B2A1BE9DA9DAB7820A9622FF47069EEF8 + 819B945FD14777E5F1C0773E69128D7AB738871FB3C739A6789D3C9054DD33A0 + A2AA51344AB935973C70C3FE06BA66D71AE82C6413AC509DC2F13DF9E4816555 + 2744A3F66DCD230F5C5F5E47AB14F930D83D4413642FF4B38A75E4818A8FEA45 + A394DBD79207AE557C4A1F297F93F8335876A801F5CA8D6480D5BBD763C8E1E1 + 0F2CB6F66DCBBF77C041C2EFC1FDD59F9301AED9799856956F240EDC7BB00E5F + BC5FF03F011295051511E044D78307DC5EAB1ED72D7E3A2D0985CB66411A1D15 + D6D58B027E58304F34B05E7D0926DBEDB091130E6C3DDF0F9BD303DD90232CE4 + 84037BFB7418B25361234503DD3E718FE280DE0AB3DDC523FB07AD285AF61C12 + E363EF8AFC57E0EA0D25218A2973B2F171D17C38DD7E6EBEFB983A6CDC7B9BE4 + A0DC1E06E7E291762785F69E3E182F77C1EF0D7DF99F3C7E8087DF15B870C1AB + 82B53F6D520130D27A28360A66071582ECBCA4C333094EC17FDBDA7F881C78D9 + 1A8B83C50B7860694D6BD8B8CACD8BD077D38CF6F3D7E0727B05BF992C0E4C4F + 1226280AF887290A556F2D169D205BEC6DD65E31E0D6909D5FEBFAED3A663C22 + 3C66C4C0A2754BB1E5500B070C7CFA283BDA261A5AF2861C37074DDCB8A1FD22 + AAB765435577E74B85A80427B21E0C6075A5E2BE01B7942AC706DE37DD488D09 + AC282DE2C65EEFF06B6152820C6E9B09E933A743FBCBEFC89835139D9A0B9833 + 3B039AEE5E6465BE809F3A3478796E16BE577760BE7C2EBE6D3B8BC50BE7F1FD + F4D7DF61E5F2D770E25433F2562D41FD976790F0F8345806FA86CFE51BDE8067 + 7FEE8D1C88B86450563D07EBE9FD9501A730730362126570590C98F4F063A02C + 3A48939F80C330C0CC1FC56DB30E71B29179CA5450FAAB90A64E815D77152B72 + 96E0646313E253A7C2A6BB323EA0CFE71F01DD013E9FF12C7ACE69B9043BBBCE + E1A517678F9A602039B667672FC299A6E6106000C7F60E8D363CA0D7CFFCC7EF + 1100D3D367E082F6E2A8094633EB2E8B5E90A045D7CF2547196F40CACCEDFA01 + 42C091DBCB02E9F864F8EC461E189C6020B940679393CB5F815AFD23D75B5A5A + B9E4023D38C118D95370EAFBC903257193E1719899F594E1676F722A289B11FE + 38199F1CDBE9C4343E398A9D27A4C165BC8ED5B9391C303AE949667E2372E09E + 1DC5FCEDE576718C1494EB2F4182C1BB37332B13DD9A6EAE07921B2D4116160C + B40F5E136C923181FFB5FA1BAC91C9DEF51E505C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_20_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004214944415478DAE5D87D6C13 + 651C07F06FD9A0C50EB79ACD895124262624326546DE0C512603D90B03C6948C + 100C906C6C014970B0508431D0265354C816BBF122895986A24C9842750C8B66 + 6ECBD8A86F0973096EB8E095B56BBB5E69D7D7B377DD1E5B4A5C777D360CFEFE + F93DCFB5B9FBDCF779EEFE3809C771082E8944823B6BCBA1064EFDE60A98ED5E + 61AE545F80D852156592317F9EEA929CB00B069B246280B48A1AB0F0BDB35C75 + C94AE8075DC2BCACE6BC685479611619EF3FA641CDCE55D1030B2AEAB99A5DAB + 099056F1377AB434377AE066D5E7DCF1DD7904F8D6470DA2516F17E790317F9E + 13CA57E90369D5B8019595F5A251AA6DB9F4811B0F9EE2AA77AF0563A19B60B9 + FA4B9CDC9B4F1FB8AFF20BD1A803DBF2E8033794D5726A653E0CAC9B6A82FC8D + 7E52BE9E3E50F9419D68946AC73AFAC075CA8FB96365AF53DF83FB8E9C429D6A + 131D60D59E0D30D9DCE4C462EBC0F6FCF103DEA2FC1E3C58F5291DE0DA5D4739 + 75D926EAC0FD876BF1D9BB05FF132055595051014E74DD7FC01D35DAA8967866 + 723C0AB3E7401A3B29A2BB17057CBF60B168609DF61A06AC431123271CD8D8D9 + 0BABDD0DC6648B0839E1C08E6E0626D61931F25F816B369684EDB7990BB3C103 + 5D5E715BB1AF7F1066D6419097DABB60EC6A85CF73F7F7EA99938708FEAEC0A5 + E92F871CFBDD2AC587454B6077F984F99E13DA8871EF6C4E83D3E5F6E31C04C9 + DA9DE8ECBE8919B2A1B0FF5F6CFA2E7AE058EB81299360B639C3902DD7183C25 + B7470FEC1A9C82C3C5E904585ADD1831AE62CB3274DF34A3A9B3070E9727E4B7 + 018B0DB3E2439779CCC0A2F559D87A4483CA37968B4E902F7E9975D70DD09B58 + 72ACF5D71BA8DA9E0175ED3F1F0244253891757F00AB2A94F70CB8B554353AF0 + 9EE9866B546079699130F678024F5D8C5C0197750029B36741F7D36F88999608 + 9BE12F48E393E030EB219127C16961204D98EE3FDE87B8A4C761667A20534CC7 + 909911BA85E9853471066EEB7B90B73A1375A7CF41FEC893B0F47507AEE50D7C + DABBFC63C7D8819025C039D88FD439B3D1DEF133E63DFF2C5ADAAE62DEDC54B4 + B45EC10B0BE7E287E636BCB868012E699BB1246D11BEB97819CB972EC6D79A26 + 6467A4E3EC57DF62D58A5770BAFE3C5ECBCDA207F47A7DFE041F0A0106E6064C + 8E53C06131F8137D3824C198694961C9398D7F0A9D65FEC0CA9C4C9CA96FC0D4 + C4276065AE131CDF9BDB7491013D3EFF7F7CEE10604ACAD3B8AAFB05CFA53E83 + F62BBA88121C498EEF1919CB70AEE10225E0F0F2F2406E6A02BCAC9100831364 + 07F442727C823E9982241792A0BF3BFD73BEB3FD7DE30F0C4E702439BECF5F30 + 1F5AEDF7484B7B89748DA651486EA4F3B035B939429FAC780CF6FEDEB103F7EE + 2C26CBCBD79D4089EC4138AD46F2F4C6FA13F5DC368525C8C52507F6DE70829C + 3C190EE30D028C8D7F14ECAD9E90876454E07FADFE06E5E0C7DEF84CBAA40000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_21_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004264944415478DAE5D87D4C53 + 571806F0A7A0E3D3408DCC7D3A63B2C464B28819E323648A8A135054643318E3 + A226204C47E250629D223A9BB0B94D025B41E7CC0C41E714954598C0A84E8628 + 5FDBE266D6658EAC31D751A0A52D2D6D69EF7A6FE9596B1B29B7475CDCFBCF7B + 4E7B73EFEF3CE7B4492B625916AE251289707F6D2B6B60CBDF590EB5C10A5A65 + B25871E8CB165414A47A3CD0D524F205B8F5701D2B7B7725014A64F58261D2BC + 3432E6EE535998411F48ABA801733FBCC05616AEC2BD21333F2FAEBA24185592 + 9B4EC6FB8F35A06AE76AFF8139A5B56CD5AE350448ABB8851E2DCAF41FB845FA + 35FBF9EE2C027CEFB33AC1A8F7F333C898BBCF71C91BF481B4EAA10125E5B582 + 51D2ED99F4819B0E9E622B77AF03A3A19B6089EC3C4EECCDA60FDC577E5630EA + C0F62CFAC08DC5D5AC4C920D95CE4235416EA1274B36D0074A3EAE118C92EE58 + 4F1FB85EF2057BACF82DEA67705FD929D44837D30156ECD98841BD85DC58681D + 28C87E78C0BF297F0F1EAC384D07B86ED7515656BC993A70FF916A7CF541CEFF + 044855E6525480935D8F1F704795DCAF2D9E3D3302B92BE623684A804FAB1704 + FC28679160608DFC3606B4233E23271DD8D8D50BADC1026650EF13F281C0B59B + 0A3DB67376C20AF803EC543018D4997864F38D5FA1FAE5DA03AF3F77E2305980 + 5760CAD2C56EAFFD3E1CCA03CD56614751D93704B5CE4890DD0A2566058F78BD + B6A9B965E2C0DFB441F8246F090C661B3FDF735CEE33EED0966498CC163BCE48 + 903A83095D8ABB5E91548013ADD02702A0D69B3C906DB719BC1866F00F98B721 + 1D059F36E148FE52022CAA6CF41957BA75191477D568EEFA1346F3A8DB7B031A + 3DCADE4E81ACFADFDFD982129CCC7A3C8015A5924706DC56241D1FF8C8746335 + 2EB0A4288F1F8F8E3A0E7560981866ED00A2E7CD45CF8FB710337F1EDADABB91 + 18BF00AD6D1D484A8C45CBD5EB58BC3001979BAF61497212BE6DBA82E5298B48 + BFF0CD65AC5EF93ACE9EAF47D69A34D49CB988D067E762A8F796E35956C73F67 + 577EE89C3810C191300DF5F1B09B9D3F2160DA9330AB1904454461788041A07D + 6ED2D8E7914F43AF52628ABD1BFB9508163BE6E151CF43C3F42268C62CE8983B + 7833339D07863D35071AA5C23FA0D56AB32738DD0DB820E665DCECE8C1ABB131 + 68BBDE81C484587CDFDA8ED792E2F19DBCD52D416772CE7EA6F6120186CC7801 + 5AE60F82E37A6B7B8F6FC0519BFD1A9BC50D181DFD12BA7B7E1E9BAB30355C0C + A346E59160E0B4288CD813E612742667EAFF8B24B82A230DE76AEBFC048E6DAF + 37A06B82CEE49CDDDBD94B4D5D86868646BE5FACABA70F64432261D5F57B24C8 + 864C27C971DD162C26C9719D0D9FE948CE3E37D9E7A28867307CEF0ED66666F0 + C0A9E2E760E8EB9D3870EFCE7CB2BD5CDD0FE4126CBFD189F8B857DC128C8B8F + 835C7E15C9C90B497726E7EC1CCC15C825E8FA211917F85FAB7F009F1FBCDE3A + B82DC30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_22_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000041E4944415478DAE5D87B4C53 + 571C07F06F7DACBC36E852746CD311FF325136319388319BF8D8E4212AB2199C + 7151131846E7E250629D203A9BB8B9878158F031B385C074B3736CAE2A1DB8C9 + 9021C266DC9661E6C81ABD2094420B85DBD2DEDD7B6B8F45D8A8A7475DDCEF9F + DF393737F77ECEF79EDBA655088200DF522814B8BDD6EF330885AF2F84C5EE92 + E779872A415B39AF24E05A9B591E971B2FA16863E2901BFA9A14344016C53B5D + D8FD71151BE06B7B2B04DD9B8B0850A3FB861AA6CD4E2263E93AC539A9EC81AC + 8A1930EBDD134271CE62B4763BE4797EC9496A5441563219EF386840C9E62581 + 0333F7E885922D4B099055490B3D909B163870ADF633E1D0D674027C6B7F0535 + EAED75A9642C5DE7B0E625F6405675D7809A423D354ABB218D3D70F5AE72A178 + EB72705D6C132CD07D8123DB33D803F30A3FA746EDDC90CE1EB82ABF54D06932 + D06E73324D505AE827052BD90335EF9751A3B49B56B007AED07C241CCC7F95F9 + 1ECCDB578E32ED1A36C0A26DABD0D9E32417A6AD9D1B33EE1EB08DF1E7E0AEA2 + 4FD900976F3920E8F2D73007EEF8B01447DFC9FC9F0099CA7C8A09F05ED78307 + DC54521DD0238E1E1F8EAC9469508E19E5D7EAA980EF65CEA1069655FF06B3B5 + DF6FE4BF0297ADCE199256747C0A02019EB9D802ABDD09E38FBFA2FD9773239E + 7FFCC85EB28861810BE6CF1D74EC4A6F4840C086660E9D365E4636369B3031A8 + FF1FCFAD3456D1031D2EBAAD68BAD10D8BADCF2F2415F077AB121F64CF83DDE1 + 96E7DB0E57FB8DDBBD3601BCC329E2FA08D266E771B1F9DAB0C83B0666AF4CC6 + 1BFB8D8380775A210F8D82A5871F82D49FAA95BE8BA12BBDF533962AC17B590F + 06B0688FE6BE01D7E76A4706DE37DDCD1A1158909B2D8F070606E43E3A540587 + D58C98A993D1F4D3658C7E588D9EF6EB508647A2CFD20AE5236AD8CC628F8812 + 8F9B1016390116EE4F04AB27A0AFC384205514BAB81628C74D42EFF52B485F9A + 84B2635F22E489C9E86EB9ECB997CBF3C7D4D91F1AE880F6CE36C44E9B8AFA86 + 9F11F7EC33A8AD6BC4AC99D3F17D4D3D9E9B1D87AAEFCE63EEF3F1386D3C8779 + 09B371AAF22C162E9883AF0D46A424CEC789AF4E63C9A217714C7F122FA725B3 + 03BA5C6E11F828F8EE1B04E899B7CB09F69A3931D171E0BB3892E018B1FB2617 + 1115ED49503D1136EE2A01863E36095DA66682937A4D5D937FC001B7788EDB39 + 2C707AECD3A8BFD084B819B1A83D7F01B3E2678849D68949CEC4B7D5358312F4 + 26375C82C1EAA760E5FEA004DE7CBCBEC0989829686CBA44121C1BA6227BCF9B + A0B4F7A4E4FA2DDCADBD2726C777FC45125C9C9A84E3FA0A76402138022E5B07 + 01FA26E84DCEDBBDC9F9269898F8020C8633729760CBD25203036EDFBC8E3C5E + A96E074A094A6FAF22349224277577908A242775216CBC273971CE8B7345F8E3 + E86DBD4A8063554FCA40DF976444E07FADFE06E5E0B5DE1CF435830000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_23_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004084944415478DAE5D87D4C13 + 670006F0A75353118D74013FB2A1C63F16938913A388866DE2C7044154C419D4 + B8A80988D13915255605F1A389CE6D3A88053F66340436A755F10314024E1111 + 916EEA346111D0661E5068298795B694F3EEB0AF3088D4EB0B1AF7FCF3BEEFE5 + 72FDBDCF5D9BF4641CC7A16D643219FE9BD507B2B8A46F8360B6B6406A2C561B + B48FF4A832B0E4D8CD7B8F91BC36B8C307B635C9DE046834DBC575FC911CC9D0 + D8C581F8B7BA4E9C67E4DEED1E208D586C76EC3E9E4707B8725F26A7DE309B00 + 95EA4B9261AA9859642E5C2725368C3E9056A801A3BF3FCBA5C4CE4195C92AAE + 13522F4A4625468790F9F6C35948DD38D77560D41E0D97BA691E01D28AB0D143 + 71E1AE0357A87EE78E6C8E20C0AD073325A376AD0A2373E13A47950BE80369A5 + DB80CA248D64946A4D387DE0B29D195CCAE68560EAE93698A83E8363DB22E903 + E3934E4946ED5813411FB834218D532B23A1676D541B14367A2271097DA0F2C7 + 74C928D5FA45F4818B94BF708713BEA1FE0CC61FC840BA6A391D60F296A53034 + DAC885A566C7DAC8EE035653FE1DDC99FC2B1DE0C24D873875C272EAC0EDFBD3 + F0DBDEA8FF0990AAAC4DA8007B3AEF1F707D6ABE4BB778C4E081880E1D0B79EF + 0F9CDAFD6B81F397C576C08C98148A1FA2A64806A6E73FC4B53B65D0FF7DDDA9 + F34F1FDB4736D22970C6F4A9ED8EFDF3AC9F4BC02B772AD160B6A1B44C87617D + 9B5E7B6E4E6E5ECF034BCA1818588B5348978056BBB44751576382917DEE14F2 + 8D81314B42F0DDC15CFC14338DBCFAD87234DF69DCEE1581E26B0F030F742059 + B3059AEC42687E5E87A64613D469AFFE254A6AB027F37E0093F728DF1A70759C + AA6BE05BD3BD4C97C0C4B81871DEDCDC2C8EBDDC15B036D4C167F42868FFBC0F + DFB1A35158548AC9FEE35050781B01932720EF8F9B98FAE5245CCEBD8E99D33F + C785EC7C8406058A63D08C29387BFE32E6CE9E8953672E2162DE2CA49F3C0785 + F727A8297FD0FA59F6D6F73E576F9448039A0DD522ACB8E42FF4550C46A3FE29 + E403BDF0AC8E819B8717D8BA2AC83D86F2C775E8EFE50D235301374F6FB05515 + E2BA9EA984DC731858A61C5F878788C07E1F8D82A9F2BE6B40BBBD85077E088B + A98600FDC67F461ABC56508C2F02FCDA35382D3000D93957DB35E7184F6A2E76 + 003A70C25850A4750ED8DCC29FD362EB14D8BAD693067B0D18044B3D431AECCD + 8FCF6B757CD3435B9B1B3412969AF20E0DBA0F19897A5D9944E0CBDBDB19709C + EF1814DFD6C26F822FDF6011DFA03F191DCD39D3A09BE77034308FE8017D7C3E + 45A9F62E69B04F7F0579F6840639772FD25C939179D520DF9CA5F609E4FCDAF8 + B402F3C3C3705A93291DB86DE32A727B85706E1EB0B3B50428345874AB04FE13 + C73BD56070F057C8CABA228E02CC01ECA3F85804B6FD9274097CD7F2024E6BB0 + DEADE261660000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_24_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004264944415478DAE5D87D5014 + 651C07F0EFC58CE789161438328DE6F84753536658315A646290188886A60339 + 36DA0C0A694C86325E09A27533943512D8815A4E0D0365791269A2479C252511 + 2F935ACD9C795087EC71C7BD71C7CBDD716CBB8B3C714173E7F200BDFCFE795E + 76E7D9CF7EF7B99DB995B02C8BE1259148F0D7CA3CA4660F66C4A2C73D208CB3 + 8BCF21D0CADFFA14B4D7ADA86E6C41AFBBDFE798D9E644C18B71232E38DC2409 + 04B8ADE00C5BF8523C018A2997DB83E66B26182C0E3277F1F26F28CA5C410F68 + EDF10AE39CA36AD1D0ACE76270BDC32CF4CBAB2F8D0F9046B93C5EBCF1610D1D + E0D60395ACF295950428577E291AA6487F9AF4F9758AB392E803691535E096B7 + 2AD8E2AC5530D8DDC238B7E4B46854DE9604D2DF7BE40C4A76AE1E3B302D5FC5 + 96EC7A860069157FA387B393C70E7C41F1297B74F75A027CEDBD4AD1A8D73392 + 489F5FE77DF9B3F481B46ADC80F242956894627B327DE0A6FDE56CF1EEF5606C + 7413CC539EC4B13D29F48139859F8946EDDBBE963E70636E29AB94A7C0E4F050 + 4D90BFD18FF236D007CADF29138D52EC48A50F4C957FC01EC97D9EFA1ECC2928 + 479962331D60D1AB1B61717AC8C2626B5F66CAF8013B28BF07F7177D4C07B87E + D7615699BB993A70EFC1527CF266DAFF04485536ACA80027BAFEDDC0359BB246 + 3CCEB98B13C774C1EE2E3B4C3F5D08F8FC13C70E90944605C6C52EF399BBDA3D + 0D6FA72D150D2CD3FC822B3A0673A6F6F93D575D5D33F1C0738DADE8EAF1A049 + ABF78B9C1460839681C5E10A0879D3C0F40D09D851A211806EAFB8B78DDE6887 + D5D14B9027AB6AA17AF765F439EDC27165E99F7FC244253891F5DF0016E5CB27 + 0DB82D5BE11F3869BA1BE51798979D2EF4FBFB07BFE7050587C2DD65C6430BEE + C5F78D971134230C4E533BA68446A0CFDC0659E82CD88D6D90864470F37A4C0F + 9F0D2BD382E9B3E6C169D04116C68DDB7E8574E63C74B75FC5634BA2A1F94A83 + D0D977C3A8FB79F05ADEC1CF2AE7BF6D1007ECB17420F2C1FB51DFF023A21E5E + 80EFEA9AF0E8A285F8A6B61E4BA2A350F3F5452C7B6231CE565FC0F2D8C771AA + 4A83C4F818549C522371452C2ABE388BD52B97E3B8EA34D62527A0ECF8E79876 + E73DB0B75E191BD0EB1DC0945BEFF001DE326326DC5606D2DBC2D16D66200B09 + 87C36C20094AC3E6F8241712311736A655987730BA11C0211CDFD6D6350706EC + 1FE0CE19F008C0A0E0DBE1B21B034EF0C9986854A9CF233E6E29496EB40483B9 + 2D60D36B45026F3CDED18083639390E0D0DE73D918A1E5F71E9F5C6FA71E53B9 + 3D2A24C7ED3D97513722C171032E8C7C00F53F3423EA91482EC13A2EC145A41D + 4AEEEF12E461A9EB5609AD2CEC2E7431D76E1EB867670679BC7CB1B210781D9D + 983FFF3E34355F12C0BD560324C1E12439BE65B9F150727DDC1E250972C9B93A + 7F87941B5BDB5BB026390927549502D0D2A6F5F991F805FED3EA0F4CE1ADDEDD + 01E6B80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_25_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000043F4944415478DAE5D87F5093 + 751C07F0F7E46408522ED1E43AACFCA3ABBBD21405B44824488AFC11F9E320CF + 4EBB43218DCE40CE95205ABBA3ACE420076A79751C9409916922AC8D14707043 + 2BBDBA5B0914D033586CC3670EB6B13DED79E69EA0568C675FA4ABCFDDEEF3FD + 3E7BEE795ECFFBF93EBBDB23621806234B2412E1CFF5F26105F36EC6E3B0D89C + 1052C1815360345B61A00761747D0CB415B4C58A8E5E1A39EB97FCE584234D22 + 5F8059EFD53387321378606E699DCFB8C2ED4F40DB6384A2AD0383B6E151DFF5 + 9BCC287A31D17FE08EA2B34CF14B49821364CB6AB3E3F2353D74069ADF76F1CA + CF28C97A921CD0687170F3BC63F582A1D9CFAD404F6F3F37AE547C3731401265 + B53BF0C6874A32C0ED074F31F25756F140A9FC4BC13059C653FC983D4E69F66A + F24052450CB8EDAD1AA6347B0D7403366E9E5F764630AA605B323FDE77F42CCA + 72D6FA0F4C2FAC66CA763FC30349157BA1477253FC07BE20FB9439B6671D0F7C + EDF029C1A8D73357F363F638EF4BD7930792AA09034A8BAB05A3643B53C803B7 + 1CA8644AF76C0465229B6081FC331CDF9B4A1E98577C52306AFFCE75E4819BF3 + CB19B934157ADA4E3441F6423F2AD8441E287DA742304AB62B8D3C304DFA0173 + 34FF79E26B30AFA81215B2AD648025AF6E86C16CE70F2CB4F667A54E1CB097F0 + EFE081928FC90037EE3EC2C8F3B71207EE3B548E4FDE4CFF9F0089CA461411E0 + ADAE7F043EBB257BC2D2F2B5AA8E1FE453F20A4C4C881FB5EDC71BC17E9D501C + E0C4DCA0219FF6AD57288501DF4E8F130CAC50FD80ABED944FC84901D6B575E2 + BAC58E4BDAAE3191E306666C4AC6AE32955F408D96E25E77B0C8AAD375A82ACA + 81DD3AC87F2F2FFFE33F8EA0046F65FD37802585D24903EEC8958D0D9C34DDCD + 1A1358909BC18D8787DDAFCBA6868661C8D487C8050FA0A5ED0AA2231F424353 + 1BE21E8984F2422BE263A350AB6C46FCF2A538A7B8809509B1385DABC2D3492B + F87EB2A616D1CB96A2E97C23E6472E8146DD0C49C47DE86BFFDE7D2E87FBAD45 + 439366FCC08010092C865E0ED6D8F20D822477C2ACFF1581927058F45D089919 + 8E81BE6E886784BBB67761FAAC0818A90E4C0B8B00ADEB40E89C7B61ECFE09E2 + D9F340F76811BB3C16AAAF5464800E871381B7CDE4800B1F7E10AD9A6F11B578 + 019AD597B02C6611CE37B6E2B147A3A0FCFAA2D704D9E4D6AE5A899A2FCE71FD + 44F5196C484946C589CF117CD7FD18E8BCCAE3D8DEA8BEEC1B70D8E9DAC769F7 + 0A9C123A1B362305F1EDB370A39F42806B6E35517C82E2B0B930EBDAB904D9E4 + 6684DF0313D5C96DA7A97642C09BB797050684DC01EB409FD7043DC9793A9B5C + 52621C6AEB1BB8EE49CE5B822173E6C1D4A5250F74CFF5983A5D02BA5FC725E7 + 49905D7B41AEB539E44A98ED9EE4ACBFFDC275A30B94B6610D079C167637AE53 + D7C60FDC9B93C9DF5EF743321AB868E17CA85B3488895EEC5A836AD71A8CE1BB + 27B9BF4B90858D041ABAB5A31E923181FFB6FA1DED66ADDE6CC61C0800000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_26_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004504944415478DAE5D80F4C94 + 651C07F0EFC9E2BF267192ACB472ADD96683C22009020C920295C83F839C4DDD + 5048A319C83C1344F336CA4A0679E09F5C8D419910192672E79D042138884ACB + 0D0B488EEE38E2EEF0E8E0388EB7F77DF1DEEE820DEEBDE7A2D56FBBFD9EE7DE + DBF37EDEEFFB67BB574051146C4B2010E0EFF5FA3119F57EFAB3308E8EB3F37D + A71498691DDE1603D3A8195AC33074F4476B30C16034A1ABCF80F4C420F87AB9 + 4FDAA1AD49C007E86879BBCF816EC83425327BFD93CE03333F90524733623960 + 4E49DD8C71053B9E4347AF0EB2B62E0C8F8ED96D1BD00FA1F0D538E7813B0B2F + 5045AFC5F34E9029E634B7FFD20FB5D6C07D77E5DAAF28CE7C9E1C5067B4B0F3 + DC9352DED0AC9763D0DB37C08E2B643FB80648A24C660B0E7F242703DC71E41C + 25796335071449BEE20D13A7BFC08D99754AB2D69007922A62C0EDEF54532559 + 6BA11E1C65E779A5E779A3F2B72770E303272EA0343BC979605A411555BAE745 + 0E48AA98033D9E93EC3C709BF833EAE4DE751CF0CD63E778A3DECA58C38D9975 + 4E89D69307922A9701454555BC51E25DC9E4815B0E5550257B3742A5279B60BE + E4739CDE9F421E985B749637EAE0AE75E4819BF3CA28892805FD0633D1049903 + FD387F1379A0E8BD72DE28F1EE54F2C054D187D489BC57885F83B9851528176F + 25032CDEB719DA2133B730DF3A9899E23A601FE1E7E0A1E24FC80037EE394E49 + F2B612071E385A864FDF4EFB9F0089CA6CCA61E04B5BB25C869969559E3EC2A1 + A704C6C5AE9C359C5426771C78F30F6FA776EAE1368EC59E23AE05BE9B16CD1B + 58AEB881EB9DAA19211D06A66F4AC0EE528553C0BAB66EDC369A51595387CAC2 + 6C984DC376DB25657FFD85E095E03F59FF0D60718168D6803B73C4D303674D77 + A7A605E6E7A4B3E3B1B189B75177CD156244AF4148D0A36869BB068FBB03A0EF + 53C2DD2F1023034A78FADF8FDBEA6E78CC0FC4507F0F7C172C824ED505DF854B + 30A4EE44784404E4B24B087C68297A6EFE88850F2FC3AD1BEDF05BF408349D3F + 4DECCB32F152E0F237AD8E03DD7CFC60D4F6212CE43134B67C8788B0607AA136 + 443F1D02597D0B62A3C2502B6FC2CAA815B8286BC0AAD848D4D42A90181F83EA + 1A299212E370B6BA1661E12BD050DF80E0E5A1686D6E2203B458C6E13ECFDF0E + E8E9772F9DD46F6C82463A311FFF400C6A949312F412D25DF933E6073E08BD8A + 4E3860090CBD1D888C8A84E29202DEF72DC560F7750EC7F4C6E6F69901C7C6E9 + DF8C9BED808F072FC3D5D6EF11BA3C084DCDDF22FCA927F075E3553C13110A79 + FD95291364924B5ABD0AD55F5E64FB99AAF3D8909C80F2335F3809BC737A19A0 + 9BCF3D300D6A38E09CB90118D5A9E86B7101979C49AF62BBEDB5E749276C4DCE + A4E9848770310CAA4ED7036D13B42667ED4C72F171D1A8955E66BB35396B6760 + A91BD6B2DD873E107D4F87E3C0FDD919DCE99DB849EC81CC7C58A786C73C210C + 03EA490932C98DD0097309D2C9997EBFC5761D0DB202BD840F40ABECB0BB49A6 + 05FEDBEA4F8AC4BADE3B6AC41D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_27_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004654944415478DADDD87F5093 + 751C07F0F7F404052C49A456A79577967579502828880C0259214A847A9067A7 + DEA190466720E74C10CDDD51567290037F5E1D37CA94484420E60682080651EA + C54526182030906D8E86DBD89EF63CB8279475D0B3EF4E8FCF3F9FEFF7799E7B + 9ED7F3FE6EBB3D0F8FA2288C2C1E8F87076B7B9E82FA2C5E00838902976A576A + A0D20EA25FABC71D9D116D3D1A24ACF082DB34279EADE3479A78E3017E704846 + 7D91F03A74063333DF754C316EDCFE4DC1D01B8C16DC208BD4EAF468EDD1FE27 + D26EE0FF2D17A749500DE86D2253562FB21F98F465057530319405A6E6FE386E + 5CE696E568E95441D6D88A41C3D07DFB6EAB0790F55E98FDC0AD59A554F6FB42 + CE09D2452F73D39FBDE8EED7B2DB2E5DBD899CA437C801553A13334F3B5AC119 + 9AFC4E303A7B6E33E302D915C7004994DE68C2FEAFE464805B0E9CA1241F46B2 + 4091E41C679838E14D764C9F273779257920A92206DCFC6911959BBC0ADD1A03 + 334FCF2BE18CCAD81CC18EF71C29455E4A94FDC0F8CC422A6FC75B2C9054D137 + 7A3835DA7EE026F177D4D19D312CF0A3436738A33E4E5CC98EE9F31C13AD260F + 24550E038AB20B39A3C4DBA2C90337EC2BA07277AE45979A6C821992EF716277 + 2C79605AF629CEA8BDDB62C803D7A7E75312512C7AB546A209D237FA75C63AF2 + 40D1E752CE28F1F638F2C038D171EA48FABBC43F83695905908A379201E6EC5A + 8FFE01237B62AEB53729D671C01EC2BF83FB72BE21035CBBE3302549DF481CB8 + E7603EBEFD247E8201DFDE903CEAD9728AE78B446123CBA8FC7DD4B6D3270EB0 + 689BC0B0D0108781C6AA0A997C0202FFF8DBC5AE8B3A4F3663CED4BB8E0126AC + 8BA05F7D807EF5C1B5A48A661497592E9C9502A37E70D47E49FEBFFFD027E612 + 3F72C09C4CD143036E4D158F0D7C68BA7B352630233581190F0D0DBFEC9932DD + 0377D54AF878BD84FAC6ABF0F35980CA8B8D1004F8405E7D192181BE2893D742 + 18E28FE2F20B880C5F86C21239A22342D82E3D5D0AE1F2609C3D27C3E280005C + A8AC84FBB32F4379FDCAF0B54CC3CFDC95171BB80107FA6E31B09AFA5F30D5FD + 490CF4DE82933B1FBADE76B8CC9A8D3BDD6D709EC1B76C6F879B65AEEA6A85DB + 5373A1EE68C132810072D979F09F9F8F9B2DD7F0F4BC05F8ABB909EEB35F80F2 + C66FF6014D26339C1E9B095D7F0F0B5CEAE7CD2628ABAA4768901F936048D012 + 94CBAA111E1A88B3650AAC1006E354511962A2844CF7F35F82EAAA6A782FF445 + 435D2D0BB4E2E85E53D7343EE090D9728CD96813F86082AE33F9D0283B462538 + CDC3D23BAE6306FF39A8BB2C097BCE85B6B305814181509C57C0E599F9D0B45D + E308BCB7BC3470B2EB13D06B9478D5FB155C6EF815BE0BBD505BF733FC17BF06 + 79D52526396BB7263732C1A8C87014159733FD646109D64447407AF207C70127 + 4DF78441D505E7C767B1C9E9D55D4CB72637D8D76E499ACF26A757DE80B3C71C + A8DA5B10B766957DC0DD2989ECF2D2652BC19ADA9FB0D47F91CD048561029455 + 5432DD9A9CB5D3302BD0D5F225EA6B6BBEEF4B3226F051AB7F00C501C3DEFF92 + A0F50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_28_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004934944415478DADDD87D5014 + 651C07F0EF51F2161804119769E2F4624D0A854A12C48BBC5C0142843A9063A3 + CE8090466320E399209A376359C94002BEE4D43050268418F1761E2086D04024 + 5A4C37BCD901C71D2F77780C78771CDBED221BA738C0DE928EBF7F9E97DD79F6 + B3DFDDBDB95D0E4110985A1C0E0777D6EEEC4AE28B686F30AD06B114832A356E + 8E68211D1C464CB00BCC1E35E1DC6BFFA926CE5C801A1D012625910F41A11AA5 + 919DB221C4063BC3CAC2745AE49C811F1D17125FC5AEC388669C1AEF3B5D396B + DCE1ED3E506BB47ADC288D548DA8D12153DD13693470AE65696A02C5B07A5A64 + E286D5C603E3BFAE208EC5F9D1C0A4ACF259E38EEC0880B85B01616307463563 + 06DB0694C348FBC0DF78E0CEB41222FD431EE304C9222F73535B1F7A0755F4DC + 956B379011FF167B40C5888E1A279FAA600C4D78CF07DDB201AA9F276C9E1F20 + 1BA5D6EA70F85B113BC01D478B88CC8F4368203FF317C63041ECDB749F5C272B + 613DFB40B68A3560CCE785445642287A8734D43825BB98312A352688EE1F3859 + 82ECC430E381D1470A88EC3DEFD040B68A3CD11349E1C603B70B7E244EED8DA0 + 819F1C2F628CFA346E3DDD27D739CDDFC03E90AD9A37203FBD80314AB02B9C7D + E0D6437944D6DE4D902AD94D3035F3279CD91FC93E3039FD1C63D4C15D11EC03 + B7A4E41099FC48F4A9B4AC26489EE877A99BD907F2BFCC658C12EC8E621F18C5 + FF863899F23EEBF760725A1E7205DBD80166ECDB82C1612DBD30D33A181F397F + 4019CBBF838732BE6707B869CF092233651BEBC003C772F0C367D17303BEBB35 + E1AE57B7050E2F62BE805AF9DF77CDE79F394AA3A705FAFBF91ACC553577B30A + 9B5ADE2B17198C2B84A2B903FFCF7AF880B19B83C82F0B461DB4A7ED4FE4A725 + 42AB1E9D767B66CE7F7F801FBE041F4860C611FE7D03EE4C12CC0CBC6FBADB35 + 2330352996EA8F8D4D7C4B59606D8F5B4A395C9D5F427DE335983DEE00A5AC0B + A6B65CDC1AE882B9DD33B8D9DB89858E4B31206985D5938BA19076C096EB44B5 + 3C7F6F145E2883AFDF3A94979663A5EB6A34D4D5E239A7256811B74F1C4B37F1 + 4A5BF56B0333E0707F0FDC5C57E072FD1FF07073D12FD408EF375C21ACAE879F + 971B4A45B5E0F9BAE342D9258404BE89826211C2837C71F67C393686062037BF + 04BC001F141557C0DDC30397AAAA60FBECCB90B7361B07D4E9C6616EE3600034 + B77D0AC37D3D5482237D1258EA13231334B3E1EAE7257482568ECBD0DFD94225 + 27125E04D769396E88AFE3E9E757E09F9626D82E7E01F2F6BF681CD95EAE6B9A + 1D706C5CBFCFB896029A2EB4C3C8A06CC6047DBDD6A24C5883403F4FFC5C5A89 + 609E0FCE159622228C47B56EEE6B51535D0397556BA84B6C1CF0F6E59D0E6862 + ED008D424A254826676DE708D5402F95E0D47BCFC25E9F64572B6CB84BA194EA + 1376580655B7189E5E9EA8BC5809CB45CB31D479DD78E0238F3D01F5901CAFBA + BC82DF1AAE62CD2A67D4D6FD0EF7D75F83A8FA0A95DC643B991CD94E3E1C6121 + 81749B7BF63CA23686522D63E0FEC438FAF2927527904C907C7A2D6C1D3124EF + A292532BA574826472A3FD12FDBDCAA59353CBDB6166BF040A89D80038D076D5 + E0219911F8A0D5BFE1F7CBDE6CC879DE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_29_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004774944415478DADDD87F5093 + 751C07F0F72841091352A865967899D465D0A17022051BA0234009B10EF2ECD4 + 3B11D2E80CE29C09A2B93B2F2D39C8416A5E1D075D29114680CCF11BC5E048E0 + E0029511E060FCD8E676A36D8CA73D0FFA2431039E3DA8D7FB9FCFF7FBDDEED9 + EBF97C9F67B7671C8220706F381C0EFE9DBD5965C4F19DFE609A8B0D32DCD619 + 211FD62226D403768FDB70FEEBFDF79A380F0258DF2EC7B0463F6D2463A0C144 + 8049BA156A2835233452D6AF466CA83B1CE6D95A44CE18F8D14909F1656C0074 + 86316ABEFF4CD9B4714776F0A03718CDB8111AA9D1E9D1D9AFB92FD26AE04C63 + 6F6B03A5566F1199B879B5F5C0F8AF4A89137181343029F3E2B4714777AD437B + AF1292864E8C184627BC36A4D222ED8320EB81BBD38A88F40F058C3B4886DCE6 + C61B03E81BD6D06B979BBB90111FCC1E50A93351F3E4D3A58CA109EFF1D0DB3F + 448D73254DB30364237AA30947BE95B203DC75AC80107F1C460385E25F19C344 + B16FD163F23899091BD807B215D680319FE71399091BD1A73650F394AC42C6A8 + D498107A7CF05411B212C3AD07EE3C9A47647DF2360D642BE4897E9D14613D70 + 87E847E2F4BE481AF8E9C902C6A8CFE236D063F23867849BD907B29559030AD3 + F318A3447B22D8076E3B9C4B64EE7B177215BB1D4C15FF84B307A2D80726A79F + 638C3AB427927DE0D6946C422C8CC280C6C86A07C913FD2E750BFB40E117398C + 51A2BDD1EC03A385DF10A752DE67FD1A4C4ECB458E683B3BC08CFD5B31AC35D2 + 07669A43F151B307EC67F97BF070C6F733076EDA9630E9C9688ECB0A8853B6B3 + 0E3C78221B46C51F93D6CF9F3D46A32D028302F913D6CA9B7A670DE8FFDAE209 + 6BA5122933E06C8515E083CC8C81B15B42A67F74861167FFF3FBF2FFD7C14712 + 987154F8D080BB934453031F9AEE4EA604A626C552E3D1D1F1BF2AE6CC5F84BF + 540A78BABF8CBA8666787BAE44794D03FCD77A425A7515FC37BC502CAD8580EF + 830B2595085BFF26F20AA58808E15395E7B71645255278FBAC414D65359C97AE + 406F470BDC96BBA2B9B563FCB34CE34F8CE535F5CC80DAC15B14ACBAEE77382C + E442D5DF035B272E7403DDB0775E82DB7D322C70790E83BD323898E74A79279C + B8AE18E8EE40687020F22F94801F1880E2A21278ACF242FD955ABCE8FA3CDADA + 6F5A073499C630D7D16502D0D7DB83EEA0A4A20E817EDEF7ED60CEF922446F0A + A6AA601D0F0585A5F0F1F5456579399C5E78058AEB4D348EACD5571AA7071C1D + 33BF67CC681138D7E96968076E4DEAA09D23D7BCDE4D77D0E199651894B5519D + 934A2E81EBEA86AEF6163CBB7C25FE6C6B84D39297A0B8D9CA1078677B49A0ED + 930BA11BEEB7D841B2737CBF3590565CA6EA2FC5650815F0E87A2EBF1891E102 + AA92D760554515BDC5F68BDDA096B5580F7CEC89A7A0572B68A0CD7C17189472 + D82D70865AD143754EAF9253F5EEB547D6798BCC9DECB90E47EE52A8E4E60EBB + 2C83B2AB15BC001ECA2E9531071E488CA3B797CC5DE0EB1EAFE26AFD3578AD72 + 4775ED6FF0F5594D77CE52070541FED4CD111EB69EAE393FFC8CE87736529504 + 0EDDB836E1269912F8A8E56FC605CEDE7F8AF94B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_30_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004764944415478DADDD87F5093 + 751C07F0F7ACF815164B43F14709971DD519DC911044C206280618215E077976 + EA9D0869740671CE04D1DC1D97951CE42035AF8E83AE9408237ECD0D44053C38 + 0C083C503612181BC236B61B0C184F7B1EEC09120F78F6809EEF7F3EDFE7BBE7 + 9EBD9ECFF7BBDD9E710882C0E470381CFC3F07B2A5C4577BFCC134B9D256F40F + 0E2326D41DD64F2EE2CC74FE641367218065F5720C1A46A118D0CF0AB9E0C0BA + 36050674C659231903474C0498E48E4A0BB56E8846CA955AC486BAC1DED66A5A + E49C819F9C1213DFC406C030324E1D1F3A2B9D35EEF86E1E8C23A366DC108DD4 + 198C9029750F445A0C9C6BECAC1641AD374E8B4CDCB6DE7260FCB7E5C4C9B840 + 1A989455366B5CDADE8D68EB56435C2FC3D0C8D894D7FA357AA47F146439705F + 7A3191F17130E30E922197B9E1761F7A0774F45C75532732E337B307541B4CD4 + 71F29972C6D0840F78E856F653E33C71E3FC00D98871D484E33F48D801EE3D51 + 48883E0DA38102D11F8C61C2D877E831799DAC842DEC03D90A6BC0982F0B88AC + 8477D1AB1DA18E53B28B18A3526342E8F191D3C5C84E0CB71CB8272D9FC8FEEC + 3D1AC856C81BFD2E29C272E06EE12FC499839134F0F353858C515FC46DA1C7E4 + 75CE0AB6B10F642BF3061464E4334609F747B00FDC792C8FC83AF83E141A763B + 982AFA15E70E47B10F4CCE38CF1875747F24FBC01D2939844810853EDD28AB1D + 246FF4C7D4EDEC03055FE73246090F44B30F8C167C4F9C4EF990F53D989C9E87 + 5CE12E768099877660403F4A5F98698EC6475906DCBA33E1BE070F9B15AF8104 + 2A59FE1E3C96F913867BFEBA6FFEC2B913347A5A6050207FCA5C4563374429BB + 58071E399903FFD7574E992B174B1E53E07CC56260ECF610CC774439FFFD7C63 + D4C185CCE301CC4C133C34E0BE24E1CCC087A6BB971981A949B1D4786C6CE29F + 80A7162FC5B046050FB757505BDF042F8F75A8B85A0FFFB73C20A9BA0EFEDB9E + 28915C4330DF07174B2F236CD306E417491011C2A7AA8FAF2F24E24B707BC313 + F535D57059B30A37DB65705DEB8CA696F689F7324D3C90555CAD6306D4DFEDA1 + 60576A6FC0D7CB9D068A2B6B11E8E7F540E0CFBF952128C00FC5A51278F978A3 + AAB20ACB9C5DD1DDDE8C979C5F406B5B87654093691C360E8E5380F64B9CA051 + 76C18AEB0443DF1DD83DBF1A83BD72AA6A7B64B03757B54206AE933314B29B08 + 0FDB84828BA5D8E0E70BB1B802EEE64ED6D55CA381FFE2C87AA5A66176C0B171 + F339E3A3D302E7D2C1DC0BC588DEBA99AAC11B79282C2AC77A6F1F54575D06F7 + C557A1BAD5C810786F7949A0D5334B601850D2401BEE32E8FB7AA80E929D7BD6 + 7115B4AA2E583B38D19D23ABFD7217DC95B7821F1840ED4127F3D276B63563C5 + DA75F8BBB501DCD52F43D5D1C23E707207C9CEF1FDBC21A9ACA6EAEF25528406 + F3E87ABEA00491E1C15425F7A0F49214EE9E6FE2C6F51AD8AD748556DE3C77E0 + E1C4387A79C93CF1F473306A553470D162470CF777C196BB9CEE9C51A3A03B48 + 764EDFDB01DBA5E6BDD8750B0E4E6BA051C861EDE80275670B78013C0A4A02FB + 6FFF39E5433223F051CB3F3226D7DEDF701F5C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002CF4944415478DAE5D85B4853 + 711C07F0DF8822E8A1D75E7AF0ADB77A889EED0209934A5C9775B1ACA1AB1835 + 2C6B3597ACD5C28A656B7692495133ED46172668A9491074A108291A5D30D156 + 59EEB8CDAD79D6FA778EB13FE7E0DCCEFEE7BF99F47D3AE7FCF9FFCE67BF73C6 + D84F8510022165962BA8B16633F8831CD04CEDD9EB70D9BA4545BA5F3519B0C6 + 71951875D4B8913E70D3E18BA8A9761B7C66C7A876D052DF02CDC7CAE9001BCC + 65F0231CC7854963DDA3CD1DD03F42F71DB49D6BA503D41E7423E6483975A0B5 + BE195A4EE8FE13205599285480FF6AA60FB0AAB14791B460DE5CA8502F825933 + 54C48F3323F074452171214FF75B60C331A82CA68BA406BCFFE21384A21C7C09 + 44A822A9019FBFFB3ADEC15034CE2347A9212700B904D9AB38301484000F4C22 + FBF973BD7A21CC993D531112038DE7BB9063E77288C5FF9E9BDCDDB28BD875CB + 20CAC5810D4545488E478614232705661BC1108870299155A58B9503F73674A2 + 33BB5660E07EA643769193FA95E01B0C40D7CB3E888EFD92AC0D8F8C025F5739 + D0E06C474E4311710785088FF9D58721F00F87F1B5A76FFA81AF4B0F18FC9918 + 3F37BB1F10438DDAA5F0ED3B0BF1C46FB8F1B03737401A89C4E260F7F4D001EE + 76B42197518D8187987662D8717D113E16EAF075E90369851A507FEA2E62F6AD + C6C06AE73D62549D61153E3EE0F2025F5739B0B2EE36BA505D027E36267BF39A + 120DF1879093673D5E1506EAEC3791DBA4C1400BE3CD58A0B7E3D2D401E544DC + 4173539B64CDB6438D8FE7172C90AC0DF4F964ED4B0B34BBEE6404BEEEF4E09B + 880B8BAFA55A13C00232DDBE09C0EDB656C498D6C3202BFF5FDD064DE9D40185 + 994AA6F81E5DCB1F9064BA95D70E924CB7DE3FBE25B9A93872BF08E9F6498024 + D32DED3A8DA423A93A916E2DAB0E924CB7921DCC2B309BD9CC56EDDAFC014986 + 47D30698448A234651F92521996E7D7C92F9D746492440922C292CCEE9E44931 + 301FF90365B5F1CF400CC6440000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E14944415478DAE5D85F6852 + 511C07F0DF8DFE42D06B2F3DECADB77AE9BDBFB47050235B5961B5D6668DADAC + 15596AB6C9A47F986DB3DB5216CCCCA258C1565BB92183A03F54238AA43FACB1 + 65B59A4E9DE6AE8D93D7B8179DA2D7E3F156F47DF19C7BF0773FE777BD088742 + 08019B72BD03D1AACD30E263E273DD851B801B5D6D193FD6D31DD0A691513875 + 581BC501E5DA76D4AAD90E1E3F830D4B8B8D6DB4BD414E1EA831DAB1510DCAAD + E481DB8EB721AB6E277CF24D12EDA0D6740DEC8DE5648066B51CBE07A37C61DC + D4EF97150EE81927FB1BD4373BC80065472D883EB18B38B0DE74151CA7F6FC27 + 40A2B28410015214568D82E6DF021E6A75E5F5888B162E804AC95298337306B1 + 9DA600CF552EC72E66EB7B03BE6004AA4AC8218902EF3FFB088130039FBD2162 + 48A2C0A76FBFC43B18084763C80922C8B440660AEFA7383CEA076F0CC8218762 + 73856409CC9F371B1B9904545EEC45C6BDAB2012FD3D5759FA04173254AC8430 + 13055F209C806462C8405EC88CC05C33771605DE10931659275D963FF080D989 + CEEF5BCD030FD33D820B9D51AC05F788177A9F0F4278F267D2DAD8F80498AAD7 + E40FAC69EA464D35C5D81D64C33EE681F7A3E0190BF2D71EBF1E82E6DA75E480 + FE1F53F1B9DAF2001BAA94AD80AFDF7CF1B1DD395018208984225130D85C6480 + D5C62ED4A294F0C063743736AC5151CC8FD93AE68325E481A4420CA8387B07D1 + 75EBC1E38BC4E7272FDFCB5AE0C55D2BD1CD4CCF135727C503AB4E77A04B474A + 79A0906C28958A07AC30DC44169594076AE9CEAC055EF65CE1C78B8A1627AD0D + 0FBAF9B1DADA95B4A6DF2D11B49611984B07D99B24164EBC966E8DDD0CBB01EE + 33DDF7B202D52DB7B3025F396DE201A71F1E09C916E9C63F071472BAE5EEBF2E + 1E10E7748BEB2077D3C4107F49704EB7DE3DBC95D491749DC8B496A9F329409C + D32D5999545C60AEA75BA27730D7D3AD1DB24DE201710E8F3820573831425F04 + C12F49BEC0422405986B810F8FB2FFDB1003FEADF90503523FDE1F0D6CAD0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002D34944415478DAE5D86F4C12 + 611C07F0DFB5FE6E6DBDED4D2F7CD7BB7AD3FBFEB974B8998BACAB4665A694D3 + A2AC4501913259FF46A4D26530DB24A256B3362D2D74CCAD17D52AD76AB16A33 + A751598280121EB9278EC6ED6E111C0F0F38D7F70DF7DCB3FBDDE77EC7BDF951 + 0821E05261702246BD0D46FD2C908C81E984762D4DE15CCBD9A87F01F5976F63 + A3F475E5E4810A5D076AD3EE026F806C07B907ED685490076A4D0E6C54A36A07 + 79E0CE53EDC8A6DF039FFDD3443BA833DF0447530519A045A3801FA1285F1837 + 0D87E8DC01BD1384BFE2162719207DC28A98D37B89031BCC37C07976FF7F0224 + 2A13840890A2B06AE434730B78B4CD9DD52B2E58BE0CAA64AB61D1FC79C49EF4 + 2FE0C5AAB5D8C5ECFDEFC01F8A407509392451E0A3179F201866E18B6F8A1892 + 28F0F9FBAFF10E06C3D1187292083229909DC1FB2B8E8C05C017032690C3B1B5 + 52B60A962E59888D14015557FA90E9C0068844FFACD5D67EC9858C95EB21CC46 + C11F0C0B906C0C19CC0A99129869162FA0C037C52645D6CBD7640F3C6C71A14B + 0737F2C0634CAFE442E7959BC033EA83BE9743109EFE25DA1B9F9804734D61F6 + C0DAE61ED45C5B84DD412EDC6B1EFC3806DEF1107FEEE9DB6168A92B26070CFC + 9C89AF35D6C7D85015BD0EBE7DF7C78F1DAEC1DC0049642A1205A3DD4D065863 + EA46AD2A190F3CC9F460C39A9445FC3157C772A4843C504A0A8B4BB11F424A9E + B9BB281EA8BC701F31F5A5E0F547E2EB33D71EA62DF0EA812D7FC0EA739DE8EA + F1321E28259BCBE4FCB1C6D62DDA33EC93F1C72B0A568AF646863C92AE13012B + 8D7790552DE7813AA62B2DF075EF75FE26C2C2C273C9F63830874CFC26BB2E2D + 30930ECE0A50D37A2F2DF08DCB9E3F20CE746BBB7CCBEC01A54CB73C03B74485 + 8511A270F744409CE956A283A93A916A2F5577D302A54CB73E3CB99B3F20CE74 + 8B2E97E71798E9742BEF1DCC74BAB59BDE2ABAA930C43F129CE19110988BCC3D + 60AE6E94CD74EB370D3C49DE98A57C890000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E54944415478DAE5D85F4C52 + 511C07F0DF6DFDDDDA7AEDA507DF7AAB97DEFBE7CAD1A62EB4A84665A614D362 + 990B0362CA62FD1B11FEB939986D92D1BF994D9B969A73EBA15C7FE66AB16A33 + A751598280104274E2D2EEDDBD8571391CD0D6F7E5DE73CFE59CCFFD5DEECB8F + 4208019352E32D64554BC1E509C5C79A863B801B83B2803BD7D19D60AB29A270 + D6616C140B2C313810ADDE01E39E30362C21966E8716AD8C3C507FE906364A5F + 594C1E28D7B5A266ED1E7079C9569079D0D63A3979A0D6D4868DAA53ED220FDC + 7DB205D9F4FBE0836786680575E66BD076BA840CB0512387AFFE08B7306E6A8F + C83207744D11FE8AEB1D6480B21356449FDA4F1C586BBE0A8E3307FF13205119 + 2F44801485B54646F36F018F350FA4F58A7356AE8032C95A58B27001B127FD03 + 78A16C3DF662F6FED7E0F187A07C1B392451E0FDA7EFC1170CC3477780189228 + 70E8CDA778057DC1480C394D049910188EE2FD15C726BCE08E0159E4686CAC90 + AC81E5CB166323054055531F321DDA04A1C8AFB1DADA2F7A2163E946088623E0 + F10579C8700CE94B0BF95760AA59BA880277209C1059255D973EF068632FBA78 + 7833073C4EF7885EE89C620B38C7DDD0F76C048233DF05739353D36056E6A60F + ACB074234BC556EC0A32615EF38B7713E09AF473D71EBF1A85FACA3C7240EFB7 + 687CACB13EC086AA641BE0F3170F44A23FE0E6C3E1CC004924108A80D13E4006 + A83475A106958403D6D0DD491718EA6822F63089F264A0939A152826B979F9D9 + 032ACE7720BA2A9F03565BEE265DE0F93D1B77AEB17509E60C072469CF0980E5 + 67DBD1E5EA42AEF521260585D2F87155CE6A181B710AE6988D99CDD8233FECFD + 897EC7BF2600FEDE9B617A2AC932DC7365EE80F3BE8262BA5B2F7BEDD903E274 + B7764AB70B40FCF051CCA6FCF051A23F129CEE9673F07AD20AA63A376B0571BA + 5B6C05E70428A6BBF5F6D1EDEC0171BA5BB2E2E45F315160AADD2DB682ECA6FC + 10FF4870BA5B7B6545A2EFC5890088D33C9AF7403149B7BBF513D55A55DE22D0 + 91510000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002CC4944415478DA63FCFFFF3F + 0308A4B4AFF93FA73284E1D9FB1F0CD4047533B630CCAD0A6524472FC86D8CB8 + 1C58337503D98E6AC90EA0BE03935A56FC9F5119CEF0E4FD2FAA8660CB8CF50C + F36B23A9EFC08649ABC87654435E18F51D1857B7F8FFACDA1886671FA91B8220 + 8F2E6E8EA3BE036BFB9791EDA8E6C228EA3B30BA7AFEFFB90D090C4FDFFFA46A + 08D64D5CCEB0AC2D893A0E9C5613C7F0E6F36FB8C1E482A6FC48DA39F0D9072A + E7E2292BA8E3C0C88A39FF67D42752DD814D139732ACE84C1D210EA4AACB9000 + 551CC8C8489619340543CB81C5B30E5014C50AE2FC0CE93E060CEC2C4C54F329 + 86037BD31CC8366CC9BEEB0CEF3FFFA0AA23A9EAC05D671F307CFAF69BE1F9BB + 2F547324551D78FAD60B700852D391581DF8EB2F7949F1F1AB8F0CEF800E8439 + F221909FE1ADCFC0C3C946B623511C58387DEFFFFE4C67861FBF21FCCA39FB88 + 36A83DC589E1DBAFDF0CEF3F7D4372E42FA0233F51E448BC0E241570B03232BC + FBFA0BAB234B424C297760C1B43DFF2764B9C01D583A6327D1067567B833DC78 + F28E61EFB9FB0CDF7EFE41917BFBE10BC3C46C57CA1D983B79C7FFC9B91E6487 + 200880A2F9C29D570CCFDE7E868B9DBCFA90614A9E27F51CF8F1FB5F30BF66CE + 6EB21D5A18E9C8F0F2F57B307BD99E0BB4712031C0D5D39F6C4F10034E1DD8C2 + 08776076FFD6FF530BBDE10EAC9AB183A001A7374E1F38071203904350565103 + 45EEF1FD1B14CBA13830A367E3FF1925FEF09185C6D9DB093AF0FCB6B960BA66 + EE568696646F143998183E3990E3901D846E168A03D3BBD6FF9F591648D2D84C + 406008FD1C883E36031A5321042EED5C30700E1CF42148CCE8D6953D4BE06C7C + 891D6429324076303E3914079233BA1511120C771CAE9020550E590CAF038919 + DDBA716825FD1C48CEE8165D43909CD1ADDB47D7D2CF81E48C6E458685A0588A + 0C90133BB91908C381A48E6EC142905600AB0349199B898F0CA59F0307EBE011 + 0068B14FDE846AA2C20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002C74944415478DA63FCFFFF3F + 0308A4B4AFF93FA73284E1D9FB1F607EDD8C2D0CE482A60C1F381B64CEDCAA50 + 4672CC01B98D119703A90568E6C09AA91BC876544B7600F51D98D4B2E2FF8CCA + 708627EF7F5135045B66AC67985F1B497D07364C5A45B6A31AF2C2A8EFC0B8BA + C5FF67D5C6303CFB48DD1004797471731CF51D58DBBF8C6C4735174651DF81D1 + D5F3FFCF6D486078FAFE275543B06EE27286656D49D471E0B49A3886379F7FC3 + 0D261734E547D2CE81CF3E5039174F59411D074656CCF93FA33E91EA0E6C9AB8 + 94614567EA087120555D8604A8E2404646B2CCA029185A0E2C9E7580A2285694 + E06748F33660606761A29A4F311CD89BE640B6614BF65D6778FFF90743BA0FF5 + 1C495507EE3AFB80E1D3B75F0CCFDF7DA59A23A9EAC0D3B75E8043F0D3B7DF40 + 477EA18A23B13AF0D75FF292E2E3571F19DE011D0873E443203FC35B9F818793 + 8D6C47A238B070FADEFFFD99CE0C3F7E43F89573F6116D507B8A13C3B75FBF19 + DE7FFA86E4C85F40477EA2C891781D482AE060656478F7F517564796849852EE + C082697BFE4FC872813BB074C64EA20DEACE7067B8F1E41DC3DE73F719BEFDFC + 8322F7F6C3178689D9AE943B3077F28EFF93733DC80E41100045F3853BAF189E + BDFD0C173B79F521C3943C4FEA39F0E3F7BF607ECD9CDD040D38B9760AD99E21 + 069C3AB08511A7038901AE9EFEF4736076FFD6FF530BBDE10EAC9AB183A001A7 + 374E87B36BE66E45916B49F686B365153550E41EDFBF41943EBC0E2425044196 + 201B8C2C06721CB28390E5F0E9C3706046CFC6FF334AFCE1230B8DB3B71374E0 + F96D73E9E7C0F4AEF5FF679605923436131018423F079233BA7569E782817320 + 292108331819205B4CAE1C5E071233BA7565CF12304D6E28911482E48C6E4584 + 040F9C038919DDBA716825FD1C48CEE8165D43909CD1ADDB47D7A2188C0CA85E + 939033BA15191642B45A72008603491DDD420E41BA3970B08D6E01003DEA4FDE + 3DD1F59A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002BA4944415478DA63FCFFFF3F + 0308A477ADFF3FB32C90E1D9FB1F0CD4048DB3B733CC2A0F6224472FC86D8C30 + 07A6B4AFF93FA73204EEC0BA195BC8765453860F9C0D32676E5528F51D482D40 + 3307D64CDD40B6A35AB203A8EFC0A49615FF675486333C79FF8BAA21D832633D + C3FCDA48EA3BB061D22AB21DD59017467D07C6D52DFE3FAB3686E1D947EA8620 + C8A38B9BE3A8EFC0DAFE65643BAAB9308AFA0E8CAE9EFF7F6E4302C3D3F73FA9 + 1A82751397332C6B4BA28E03A7D5C431BCF9FC1B6E30B9A0293F92760E7CF681 + CAB978CA0AEA3830B262CEFF19F589547760D3C4A50C2B3A53478803A9EA3224 + 40150732329265064DC1D07260F1AC031445B1A2043F439AB701033B0B13D57C + 8AE1C0DE3407B20D5BB2EF3AC3FBCF3F18D27DA8E748AA3A70D7D9070C9FBEFD + 6278FEEE2BD51C4955079EBEF5021C829FBEFD063AF20B551C89D581BFFE9297 + 141FBFFAC8F00EE84098231F02F919DEFA0C3C9C6C643B12C58185D3F7FEEFCF + 7466F8F11BC2AF9CB38F6883DA539C18BEFDFACDF0FED3372447FE023AF21345 + 8EC4EB405201072B23C3BBAFBFB03AB224C4947207164CDBF37F42960BDC81A5 + 3376126D5077863BC38D27EF18F69EBBCFF0EDE71F14B9B71FBE304CCC76A5DC + 81B99377FC9F9CEB415208DAB9FA9215DAC4825307B6306238F0E3F7BF607ECD + 9CDD040D38B976CAC0399018E0EAE90F67D7CCDD8A22D792EC4DB11C8A03B3FB + B7FE9F5AE80D7760D58C1D041D787AE374302DABA8C1F0F8FE0D143990C520CB + C89523E8405242902E0ECCE8D9F87F46893FDC816593371174E0F96D73E9E740 + 7246B7020243E8E7407246B72EED5C80623032404EEC208720036447E193C3EB + 404A43102646B310246674EBCA9E25F4732039A35B1121C103E7406246B76E1C + 5A493F079233BA050B4198C1C880D84C42744D42CEE8D6EDA36B89F60C3900C5 + 81E48C6E458685D0D7818371740B005C8E46DEEABEC2EE0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'CalculateSize_08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002AD4944415478DA63FCFFFF3F + 030864F46CFC3FA3C49FE1E3F7BF607ED9E44D0CE482AE5C3F38BB7CEA168699 + A5018CE49803721B23CC81E95DEBFFCF2C0B6478F6FE07D90EC3061A676F6798 + 551E44B90353DAD7FC9F5319027760DD8C2D643BAA29C307CE069933B72A94FA + 0EA416A099036BA66E20DB512DD901D4776052CB8AFF332AC3199EBCFF45D510 + 6C99B19E617E6D24F51DD8306915D98E6AC80BA3BE03E3EA16FF9F551BC3F0EC + 23754310E4D1C5CD71D477606DFF32B21DD55C18457D074657CFFF3FB72181E1 + E9FB9F540DC1BA89CB1996B52551C781D36AE218DE7CFE0D37985CD0941F493B + 073EFB40E55C3C6505751C185931E7FF8CFA44AA3BB069E25286159DA923C481 + 54751912A08A031919C93283A6606839B078D6018AA25851829F21CDDB80819D + 85896A3EC570606F9A03D9862DD9779DE1FDE71F0CE93ED47324551DB8EBEC03 + 864FDF7E313C7FF7956A8EA4AA034FDF7A010EC14FDF7E031DF9852A8EC4EAC0 + 5F7FC94B8A8F5F7D6478077420CC910F81FC0C6F7D061E4E36B21D89E2C0C2E9 + 7BFFF7673A33FCF80DE157CED947B441ED294E0CDF7EFD6678FFE91B92237F01 + 1DF9892247E27520A980839591E1DDD75F581D5912624AB9030BA6EDF93F21CB + 05EEC0D2193B091A7072ED14B23C432C3875600B23DC81B99377FC9F9CEB4152 + 08DAB9FAD2DF81B091859A39BB091A801C823573B7A2C8B5247B532C87D781C4 + 00574F7FB825C8068380ACA206C3E3FB374896431643716076FFD6FF530BBDE1 + 0EAC9AB183A0034F6F9C3E700E1C742148CEE8D6F96D73E9E7407246B7020243 + 500C4606C816831C840C408E23460EC581E48C6E5DDAB9806008C2686CA14452 + 089233BA050BC101712031A35B57F62CA19F03C919DD8A08091E38071233BA75 + E3D04A14839101D56B127246B76021482B80D781C48C6EDD3EBA967E0E1CACA3 + 5B0095A83DDE57C98D730000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002984944415478DA63FCFFFF3F + 030864F76FFD3FB5D09BE1E3F7BF0CD404553376304C2BF26124472FC86D8C30 + 0766F46CFC3FA3C49FE1D9FB1F607EE3ECED643BAA3ED513CE6E9ABB93616669 + 00E50E4CEF5AFF7F665920DC81D402208FCE2A0FA2DC8129ED6BFECFA90C813B + B06EC616B21DD594E1036783CC995B154A7D07520BD0CC8135533790EDA896EC + 00EA3B30A965C5FF1995E10C4FDEFFA26A08B6CC58CF30BF3692FA0E6C98B48A + 6C4735E48551DF8171758BFFCFAA8D6178F691BA2108F2E8E2E638EA3BB0B67F + 19D98E6A2E8CA2BE03A3ABE7FF9FDB90C0F0F4FD4FAA8660DDC4E50CCBDA92A8 + E3C06935710C6F3EFF861B4C2E68CA8FA49D039F7DA0722E9EB2823A0E8CAC98 + F37F467D22D51DD8347129C38ACED411E240AABA0C0950C5818C8C6499415330 + B41C583CEB004551AC20CECF90EE63C0C0CEC244359F6238B037CD816CC396EC + BBCEF0FEF30FAA3A92AA0EDC75F601C3A76FBF199EBFFB42354752D581A76FBD + 008720351D89D581BFFE9297141FBFFAC8F00EE84098231F02F919DEFA0C3C9C + 6C643B12C58185D3F7FEEFCF7466F8F11BC2AF9CB38F6883DA539C18BEFDFACD + F0FED3372447FE023AF213458EC4EB4062809DAB2FB98143143875600B23DC81 + 05D3F6FC9F90E5027760E98C9D040D38B9760AFD1C983B79C7FFC9B91E6487A0 + ACA2068ADCE3FB37E0EC9AB95B51E45A92BD89D287D581B0A18F9A39BB890E41 + 9025C806238B811C87EC2062E5083A9018E0EAE94F3F07A20F1E81067D0881D3 + 1BA70F9C03075D089233BA757EDB5C381B5F4620570EC581E48C6E050486E00C + 4158E8E093C31682C862280E246774EBD2CE0503E7C0411F82C48C6E5DD9B384 + 7E0E2467742B222418C56064406C4620BA26216774EBC6A195447B861C80E240 + 7246B7904390EE0E1C2CA35B000BF62EDED48EC0160000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'CalculateSize_10_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002924944415478DA63FCFFFF3F + 030864F76FFD3FB5D09BE1E3F7BF607ED58C1D0CE482B60C0F381B64CEB4221F + 4672CC01B98D119703A905A8E6C08C9E8DFF6794F8C31D58367913D98EEACAF5 + 83B3CBA76E6198591A40B903D3BBD6FF9F5916C8F0ECFD0FAA8660E3ECED0CB3 + CA832877604AFB9AFF732A43E00EAC9BB1856C473565F8C0D92073E6568552DF + 81D402347360CDD40D643BAA253B80FA0E4C6A59F17F466538C393F7BFA81A82 + 2D33D633CCAF8DA4BE031B26AD22DB510D7961D477605CDDE2FFB36A63189E7D + A46E08823CBAB8398EFA0EACED5F46B6A39A0BA3A8EFC0E8EAF9FFE73624303C + 7DFF93AA2158377139C3B2B624EA38705A4D1CC39BCFBFE106930B9AF22369E7 + C0671FA89C8BA7ACA08E03232BE6FC9F519F487507364D5CCAB0A23375843890 + AA2E430254712023235966D0140C2D0716CF3A4051142B4AF033A4791B30B0B3 + 3051CDA7180EEC4D7320DBB025FBAE33BCFFFC8321DD877A8EA4AA03779D7DC0 + F0E9DB2F86E7EFBE52CD915475E0E95B2FC021F8E9DB6FA023BF50C591581DF8 + EB2F7949F1F1AB8F0CEF800E8439F221909FE1ADCFC0C3C946B623511C58387D + EFFFFE4C67861FBF21FCCA39FB081A7074653F250144109C3AB08511A7038901 + 76AEBEF47360C1B43DFF2764B9C01D583A632741034EAE9D0267D7CCDD8A22D7 + 92EC4DB11C8A037327EFF83F39D783AC109455D460787CFF068A1CC8629065D8 + E460623035D8E4703A1036B250336737D12138200E2406B87AFAD3CF81E48C6E + 9DDE387DE01C484A08C21C840CA89E49C819DD3ABF6D2EC110C4164AC4C86138 + 909CD1AD80C010FA39909CD1AD4B3B170C9C03077D081233BA7565CF12148391 + 01B2C5200F200364CF109D49C819DD8A0809265A2D3900AF038919DDBA716825 + FD1C385847B700DFA01FDE563802F60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_11_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002904944415478DA63FCFFFF3F + 0308E44EDEF17F72AE07C3C7EF7F19A805BEFEF8CDD0BEE400C3943C4F4672F4 + 83DCC608736076FFD6FF530BBDE10EAC9AB1836C87B56578C0D92073A615F950 + DF81D40254736046CFC6FF334AFCE10E2C9BBC896C4775E5FAC1D9E553B730CC + 2C0DA0DC81E95DEBFFCF2C0B6478F6FE075543B071F6768659E541943B30A57D + CDFF3995217007D6CDD842B6A39A327CE06C903973AB42A9EF406A019A39B066 + EA06B21DD5921D407D0726B5ACF83FA3329CE1C9FB5F540DC19619EB19E6D746 + 52DF810D935691EDA886BC30EA3B30AE6EF1FF59B5310CCF3E523704411E5DDC + 1C477D07D6F62F23DB51CD8551D4776074F5FCFF731B12189EBEFF49D510AC9B + B89C61595B12751C38AD268EE1CDE7DF7083C9054DF991B473E0B30F54CEC553 + 5650C781911573FECFA84FA4BA039B262E6558D1993A421C4855972101AA3890 + 91912C33680A8696038B671DA0288A1525F819D2BC0D18D85998A8E6530C07F6 + A639906DD8927DD719DE7FFEC190EE433D4752D581BBCE3E60F8F4ED17C3F377 + 5FA9E648AA3AF0F4AD17E010FCF4ED37D0915FA8E248AC0EFCF597F8A468E3EC + 4B6920E105A70E6C61843BB070FADEFFFD99CE0C3F7E43F89573F61134E0E8CA + FE81732031C0CE1511823573B7A2C8B5247B532C87E2C082697BFE4FC872813B + B074C64E820E3CB9760A989655D460787CFF068A1C4C0CE400644B618E0289E1 + D387E140D8D80C3921485707C246166AE6EC1E9C2148CAD88CABA73FFD1C48CE + E8D6E98DD3512C450654CF24E48C6EC142105B28911B82C8EA511C48CEE8D6F9 + 6D73E9E7407246B7020243E8E7407246B72EED5C30700E242504610623036233 + 02C891C800D9C1781D48CCE8D6953D4B88F60C3900C581E48C6E4584040F9C03 + 07CBE8160095CC16DE9AF5FDE40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_12_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002854944415478DA63FCFFFF3F + 0308E44EDEF17F72AE07C3C7EF7FC1FC9A39BB19C80585918E0C2F5FBF07B397 + EDB9C03025CF93911C73406E63C4E5406A80AF3F7E33B42F39401D0766F76FFD + 3FB5D01BEEC0AA193BC876585B86079C0D32675A910FF51D482D40350766F46C + FC3FA3C49FE1D9FB1F607EE3ECED643BAA3ED513CE6E9ABB9361666900E50E4C + EF5AFF7F665920DC81D402208FCE2A0FA2DC8129ED6BFECFA90C813BB06EC616 + B21DD594E1036783CC995B154A7D07520BD0CC8135533790EDA896EC00EA3B30 + A965C5FF1995E10C4FDEFFA26A08B6CC58CF30BF3692FA0E6C98B48A6C4735E4 + 8551DF8171758BFFCFAA8D6178F691BA2108F2E8E2E638EA3BB0B67F19D98E6A + 2E8CA2BE03A3ABE7FF9FDB90C0F0F4FD4FAA8660DDC4E50CCBDA92A8E3C06935 + 710C6F3EFF861B4C2E68CA8FA49D039F7DA0722E9EB2823A0E8CAC98F37F467D + 22D51DD8347129C38ACED411E240AABA0C0950C5818C8C6499415330B41C583C + EB004551AC28C1CF90E66DC0C0CEC244359F6238B037CD816CC396ECBBCEF0FE + F30F86741FEA3992AA0EDC75F601C3A76FBF189EBFFB4A354752EC4033071F92 + D4930A4E1DD8C288E1C05F7F894F8A36CEBEF47360E1F4BDFFFB339D197EFC86 + F02BE7EC2368C0D195FD70B6ACA2068ADCE3FB372896C3EB4062809D2B24046B + E66E656849F646918389811C806C29B172180E2C98B6E7FF842C17B8034B67EC + 24E8C0936BA7D0CF81B0B199411B82E48C6E0D4808923236E3EAE98F62303240 + 76303E39A2330939A35BA7374E875B822B24B0852E4C3D492148CEE8162C04E9 + E2407246B7CE6F9B4B3F079233BA151018423F079233BA7569E702144B9101D5 + 6B127246B76021482B80D781C48C6E5DD9B3847E0E1CACA35B0062C210DE40BF + 83E10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_13_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000027B4944415478DA63FCFFFF3F + 0308E44EDEF17F72AE07C38FDF103E39E0DBAFDF0C17EEBC6278F6F6335CECE4 + D5870C53F23C19C9310FE4364674077EFCFE17CCAF99B39B6C8716463A32BC7C + FD1ECC5EB6E7026D1C480DF0F5C76F86F62507A8E3C0ECFEADFFA7167AC31D58 + 356307D90E6BCBF080B341E64C2BF2A1BE03A905A8E6C08C9E8DFF6794F8333C + 7BFF03CC6F9CBD9D6C47D5A77AC2D94D737732CC2C0DA0DC81E95DEBFFCF2C0B + 843B905A00E4D159E541943B30A57DCDFF3995217007D6CDD842B6A39A327CE0 + 6C903973AB42A9EF406A019A39B066EA06B21DD5921D407D0726B5ACF83FA332 + 9CE1C9FB5F540DC19619EB19E6D74652DF810D935691EDA886BC30EA3B30AE6E + F1FF59B5310CCF3E523704411E5DDC1C477D07D6F62F23DB51CD8551D4776074 + F5FCFF731B12189EBEFF49D510AC9BB89C61595B12751C38AD268EE1CDE7DF70 + 83C9054DF991B473E0B30F54CEC5535650C781911573FECFA84FA4BA039B262E + 6558D1993A421C4855972101AA389091912C33680A8696038B671DA0288A1525 + F819D2BC0D18D85998A8E6530C07F6A639906DD8927DD719DE7FFEC190EE433D + 4752EC4033071F92D4930A4E1DD8C238F41CF8EB2FF149D1C6D917CEAE99BB15 + 45AE25D99B283959450D14B9C7F76F607760E1F4BDFFFB339DE1431F9573F611 + 74E0D195FD7007205B8A2C46AE1C41071203EC5C7DE9E7C082697BFE4FC87281 + 3BB074C64E820E3CB9760AFD1C48CEE8165D43909CD12D5808C20C460654CF24 + E48C6EB97AFAE30C4190C520CBA81682E48C6E9DDE387DE01C38E842909CD1AD + F3DBE6D2CF81E48C6E050486A03808192027767233108A03C919DDBAB47301D1 + 9E2107E07520A9214877070E96D12D00CE1913DE59C010E10000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_14_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002924944415478DA63FCFFFF3F + 0308144CDBF37F42960BC38FDF107EE98C9D0CC482EE0C77861B4FDE31EC3D77 + 9FE1DBCF3F28726F3F7C619898EDCA48B4614800E4364698037327EFF83F39D7 + 03EE4072C0B75FBF192EDC79C5F0ECED67B8D8C9AB0F19A6E47952CF811FBFFF + 05F36BE6EC26DBA185918E0C2F5FBF07B397EDB9401B0752037CFDF19BA17DC9 + 01EA3830BB7FEBFFA985DE700756CDD841B6C3DA323CE06C9039D38A7CA8EF40 + 6A01AA3930A367E3FF1925FE0CCFDEFF00F31B676F27DB51F5A99E7076D3DC9D + 0C334B032877607AD7FAFF33CB02E10EA416007974567910E50E4C695FF37F4E + 6508DC817533B690EDA8A60C1F381B64CEDCAA50EA3B905A80660EAC99BA816C + 47B5640750DF81492D2BFECFA80C6778F2FE175543B065C67A86F9B591D47760 + C3A455643BAA212F8CFA0E8CAB5BFC7F566D0CC3B38FD40D4190471737C751DF + 81B5FDCBC87654736114F51D185D3DFFFFDC860486A7EF7F523504EB262E6758 + D696441D074EAB896378F3F937DC607241537E24ED1CF8EC039573F19415D471 + 6064C59CFF33EA13A9EEC0A6894B195674A68E100752D56548802A0E646424CB + 0C9A82A1E5C0E25907288A6205717E86741F0306761626AAF914C381BD690E24 + 1960E6E043927A52C1A9035B18478E036BE66E45916B49F686B365153550E41E + DFBF41943EAC0EFCF597F8A468E3EC0BB704D960643190E3901D842C874F1F86 + 030BA7EFFDDF9FE90C1FFAA89CB38FA0038FAEEC1F38071203EC5CE91882E48C + 6E9D5C3B857E0E2467740B168230839101B199049F1C56079232BA050B417243 + 89AC1024656CC6D5D39F7E0E246774EBF4C6E903E7C0411782E48C6E9DDF3617 + C56064806C31B972280E2467742B20308468B5E40014079233BA7569E7828173 + 20B500A58347008B1519DE61773B050000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_15_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002AE4944415478DAE5D8DD6B52 + 711807F0E75C04FD135D74D73F5057118B256DCC9A0B2BAC905A6F96B8B2F692 + 4BCD9C6CB41666BEECCC945DACCCDE580B578B5A09D1C50A5604C12E82315A42 + ABE9A6CD9C66BF3AC5399C139BE9CF472DFA8270CEF91D9FDFE73C7A6E1E8610 + 025CF4BDA3C47EA41A52995FE78566E50A06A20B6988C593104DA420F6E3134F + A6616A260ECDCAB50C4D4DCEC6F0C0E39E47E4E2D14D02B0857D9077A1F39ACD + 30311D85D1F149482E7E95ACCDCE7D068756563C50E71C214E5D0D7507B924D3 + 1978F5760622B309E1DAD89B297035D5E201E7BF647F9E1B7D0FA9A17AD546F8 + F0310699EC37B8F9E475698018594865A0EB4A1807A8B50F13B7BE4E00B6B323 + D4B04E4D8D70CCD5F19C90E303B18206D4F40C11B6B95E00B63AEF52A3BA755B + 85E3367708FA5A14C5030F770F92BED60688C452A81D3C7BF93E78DBB6150F3C + D0758BF80C4A01686643D428AB462E1C7375FCEDDBF181582919D0E8BE438DB2 + 6915F8C0465B90B0869D301D4BA376D0C60E42BF49850FB45CBA418DB234EDC0 + 07AACD03C46BDA039179DC0E720F3AD0A1C6079AEC016A54877E173E70F7E97E + E2B7EC85F7B145D40E9A1DD720D0D98803F418D5F02991110AD3C67A4C553A60 + 640EF92D76057180AA533EC29ED9870EB43AAE42F0DCC1FF04882A130505C830 + 54354A9A7F0B78D21B2EF8277E1AE82929F07938C44880170E551554605D95BC + A0FB2B0A34FA87256BB6FD7545AFA101B94DC485B9AC5ABD06DE4D4E2CB9C65F + E3EF59EA7BCB02D3D9FCFF8AEBABB7940FF8FBF0C8E07BFC47E0B3EBF6CA01F3 + C90659193B4833DD1ABBED926C2A8E18C56D2A8E18956B4D02A4996EF11DCCD5 + 895C1DCCB5B62CB090E916DFC18A00F389ACB6BE7C409AE9D68BA1DECA010BE9 + 200F12470CA67D8124409AE9D6CB7BFEBC1F86261220CD744BD1A02C1FF06F9D + 6E7D07ADA52EDEDE7ECAEF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_16_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002BA4944415478DAE5D8DF6B52 + 611807F0E75C1405FD0B5D74D75D57EB2A6AB5A40DB7B662155648AD5596B8B2 + F623979A3999B41666FED89929BB5899FD622D5C2D6A258C2E56501104BB08C6 + 6809ADA69B36739ABD750A4F8AAB8EAFCF71455F10DEE38BCFFB398F47908721 + 84001775D710B11C2A8378F2C7B5C6FD1084C65CBF016289248423310845E310 + FEF68AC412303E19018574152C5BBA98115C2C239C8DF91530DF2C59C4406836 + 312FB2B1B6A470E051E70372FEF0461ED8C4DE135CE8AC62138C4E8460E8D918 + C4E63E67ED4D4D7F04AB52523850651B243655397507B9705FF38BD793109C8A + F2EF8DBC1A077B43051E70E653EAFBB5D67D9F1AAA96AD8777EFC3904C7D81EB + 8F5E8A03C4C86C3C09E64B011CA0D232401C6A290F6C6507A961ED8A727ECDD5 + 711EABC40762050DA8E8EC276C63350F6CB6DDA64675A836F3EB16871FBA9B6A + 0A071EECE823DDCD5B20188EA376F0F4C5BBE06AD95A38B0DE7C83B835B53C50 + CFFAA951464525BFE6EA785AB7E103B1221A50EBB8458D32296BF08175261F61 + 353B60229C40EDA089ED831E9D0C1F68B8708D1A6568D88E0F94EB7B894BB71B + 8233B81DE46EB4B74D8E0FD459BCD4A836F54E7CE0AE933DC463D8036FC373A8 + 1DD45BAF80B7BD0E07E8D4CAE14334C917A68DF1884C3C60701AF9576CF7E100 + 6527DC843DB5171D68B45E06DF99FDFF09105596111420C350D5103505034BD6 + 4945EB3A9727013FC3038FBB02791F36ECED14D3970B3C77A034AF02AB4B7FFE + EFD37A06B2F64CFBA405EFA101B943320B7359BE6225BC191BA5DEFB77818994 + F047714D5955F18034D3ADC7572D0B071492B5922A7EFDBB879D3B343369C09F + 3E9705A4996E8DDCB4E7DC75E6C1DC61F37549C85E0E9066BA95EE605181F94C + B716A483F9CC662415D5C503D24CB79EF6776515CE0CFA8F8466BA95EEA058C9 + 02D24CB79EDFF1140FF8B74EB7BE0230B841DE37D493DB0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'CalculateSize_17_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002C44944415478DAEDD8DF6B52 + 611807F0E75C1405FD0B5D74D75D57EB2A6AB5A40D5D5BB10A2BA4D62A4B5C59 + FB914BCD9C4C5A0B337FECCC945DACCC7EB1168E16B512A28B154404C12E8231 + B68456D3A9CD9C277BF3343C1C51C4F3FA1E2BEA0BE2FB9E97F3F8398F9C9B87 + 4208019BB3EE20BA72AC1A52E9E5BDD0CCCC45211C4F4224F389251898CEEC95 + D20DB066F54A0AAB6026AC8DCA0235FDE3C87AA20692CCF25EEB795672214BCB + 3648A41888C4123C642A838C95852C0A149A552B28082FA60A22DB9AAACA079E + 763D45574F6EE780EDF4E3920B5D56EE80C9D9308CBF9982C4D2F79CB3F985AF + 605349CA07AAED63C8AEAEC5EE201BF66F7EFB610E42F371EEDAC4FB6970B4D6 + 910346BFA57FED759E27D8508D7C2B7CFA1C0126FD03EE3E7F270E904416930C + 586E04C90055D651E4D4483960173D860DEB51D6726BB68EEB8C8C3C90548801 + 957D23886E6BE0801DF687D8A85EF54E6EDDE90CC0407B63F9C0E3BDC368A063 + 17842249A21DBC78FD11B83B77970F6CB1DC431E6D130734D0016C944929E3D6 + 6C1D6FD71EF24052110DA8733EC04699558DE481CD663FA2B5FB60369222DA41 + 333D0C837A3979A0F1DA1D6C94B1752F79A0C23084DCFA83108A92ED20FBA043 + DD0AF240BDD5878DEAD6EC270F3C707E10798D87E063648968070DB65BE0EB69 + 260374E914F025CE708571633A25170F185A20FC163BFC6480F2731E445F384C + 1C68B2DD04FFA5A3FF0890A88C1722408A125EA36A8B54B48762F32A18A0FE1E + 203B59105AE085AF8F5BAF5DB73EE76C666A925BEBBCA33967E623D292EECB03 + B2A30F21D9582DE300FC1FE55F2B74C6A25848F6BBD0D97FA0684021D3AD4D35 + F59503E24CB75EDEB6E614E687F84B8233DDDA2CA9CF7BEA523A98BD56ECBE3C + 20CE746BE2BEA372409CE956453B8833DDFA2D1D14329B91D435E414E6878FC2 + 3DCB01E24CB75E8FF497FC3038290A14DA41D1817FEA74EB272BA651DECBC77E + 080000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_18_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002D04944415478DAEDD8DF4B53 + 611807F0E7443FA17FA18BEEBAAB1BBB8AB26CE4D8440B2B5631CA3457436BA5 + D56C9B6B0E4765ACE59CC7B5E185B55614262829690C24C884F026902844B455 + 963B6ED335B7E46D67B1C3392575F69E778BA8EFD5FB9E773CE7739E71187B28 + 8410B039E70EA0EB270A0137A3AF3F00138D43249684F7A179A8566E81352B57 + 50D80553616DD48FC0C412C22A36351386500A98414EA6F61AC56658BF6E3536 + 5200D4B50F21FBC9228827BFEFF59EA7A20BD92A77412C91042612E321132964 + 4412F297C06CB3761505A185C4B2C8BAF202E9C033AE4174E3D46E0E584F0F88 + 2E744DB307C6A74330F47202628B5F0567B373F3E0D0CAA4036B5AFB516B4D31 + 7607D9B05FF3D89B1908CE46B96B23AF26C1592B27070C7F594AEF0D9E27D850 + 9D6A277CFCC4A4D7BEC1B1DC004964219E04DBED0019A0D6DE87DA740A0ED840 + F763C39A35C5DC9AADE33AAB240F241562404D4B0FA2EB4A21C8C4D3FBCBB71E + 63A31AABE4DCDAE21D808EFA32E9C0EAABDDA8E3FC5E0E482AEC83BA2FEC930E + ACB43D401E7D390734D1BDD8288B46C9ADD93ADE86FDE481A49233A0A1ED1136 + CAAA2D230FACB0FA11AD3F08D34C826807AD7437741A55E481E69BF7B151E6DA + 03E4816A5317721B8F40304CB683EC837635A9C9038D761F36AA4977883CF0F0 + A54EE4351F8577CC22D10E9A1C77C1D75C4106E832A8E17334C915C68DE5B42A + 77C0E01CE1B7D8E92703545DF420BAF11871A0C57107FC57AAFE1160B605DE3E + C7FFB5119317815E8A035254F60F59B04381FF0726DF4083B74F70663DAE00A9 + 6702203B59C81638EC6BE16EC22FCCBFB661E326989A18179C65AE2D77C6AFF5 + 1330DBD9CCD642E57FE0DF07CC66BAB5ADA84450981FE22F09CE74EBD93D3B56 + 07C59CFD162826DB6525F903E24CB7461E3AF307C4996EE5B58338D3AD4C0733 + 85F9E18359083F7C94E8970467BA2593978AFE2C4E04409CE9D6684FFB9F0392 + 8AD4E9D637FADC54DE1967AA4D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_19_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E14944415478DAEDD8DF4B53 + 611807F0E7443FA17FA18BEEBAAB1BBB8AB24C52B6D0428B55AC32CDD5D05A69 + 35DBE69A43A98CB5D475B40D2FACB5A2B040494B631041168537814461A2ADB2 + DCDCA66B6EC9DBCE6A879D1C72CEBB67DA45DF9BBDEF79D9733EEF73381C7819 + 42087039DDE626578E66036D1EBFFE088150043E7BA7A15CBE01562C5DC25017 + FB13CEC660015FBDFB02BE6038868CC6905328C894C0C82CA12A363AEE076F0C + 98408EC4E62AD97A58BD6A39355200D45CEF27966339108EFE9E6BED4F45176A + 28DD06A148147C81501232124306D242CE0B949A95CB18F04E475222AB8AB2D2 + 079EB4F591ABC7B7F3C06AB65774A1CBAA1D3034E685FE37C3109AF929589B98 + 9C02AB3A377D6045530F69AAC8A3EE2017EE310FBE1F07CF4490BF36F076049A + 2BF3F180FE1FB3F1B9CEFE841AAA516C85AFDF7CF1B1B36F3033408C4C87A3D0 + 70D38D03545BBA498B46C6036BD81E6A58BD2A8F1F73756CA7E4F840ACA00155 + 8D0F095B55001E5F383EBF70E31135AAB62C9F1F9B1CBDD05A5D983EB0FC5227 + 693DB38B076285DB68DBD9DDE9034B1BEE11BBB688071AD82E6A944925E7C75C + 1D474D313E102B1903EA5A1E50A3CCEA427C6089D94558ED5E18F345503B6866 + 3BA15DAFC0071AAFDDA546192BF7E00395860ED2A63F001E3F6E07B98D76D429 + F1817A8B931A55A7D9870FDC7FBE9D388C87E0936F06B58306EB6D70D697E000 + 6D3A257C0F46F9C2B4319D50640EE899447E8B9B5D3840C5393B616B0FA3034D + D65BE0BA58B638C0838A62D4CDFC9D97EE2E4600945AE0C30BFAAF8D6420C348 + 7F0A595B64FCA6D6AC5D27581B1D1EE2C73A47B760CD7C44266A0D0DC8E19241 + 891B73374BFCA65A4BF5BFE46B022077B22015F8CCD938A768468152CF663666 + CBFF03518089C2C911FB92CCF7BF944029A75B9B72760A3A22B64B62D6E60069 + 4EB79EDFB12C1E504C36E72E6007694EB706EE372F1C90E6742BD1412E19FF92 + D09C6E253A98A9CC0B1493DCFC828503FEABA75BBF00078057DEB86146E20000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_20_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002D74944415478DAD5D8DF4B53 + 611807F0E7443FA17FA18BEEBAAB1BBB8AB24C32B6CA428B55AC32C9D598B5F2 + 47B36D2D1D0A662CD3ADE39A78A12CFB851593EC8726449045114124519868AB + 2C37DD74CD9DD6DB8EB1D359ACB1F3EED9C2EFCDDE772F3CFB9CE7EC70E06108 + 21C0E784BD9F9C3B940DB4E9E87B035E7F104AE4AB60D1FC790C752151781B83 + 05BCF7FC03F80221F8E4994643A2029FBDFD3CDB415F808B20A750907181A130 + A12A363236099E08308A1C8EEC55B295B074C9426A640C507BB197580EE74090 + FBBDD739FA922E5457BC0102210EBCBE8008198A207D29211302A566F102063C + D3A1B8C8B282ACD481C76C0FC8F9231B0560397B37E94267559B6070D403BD2F + 862030F323E66C7C620A1AD5B9A903354D3DA4499347DD413EFC6D7EF96E0CDC + E37EE1BB81D7C3D05CBA190F38F93D3CBBD73BEE5343B58AF5F0E5AB17B8F04F + B8F6F0557A8018990E7250D7D18F03545BBA89552B1380556C0F35AC569527AC + F93AB6E3727C2056D080AA865B842DDB26002B9A6E53A3EA355B8575A5D5052D + E5F9A9034BEABB484BC576707B83A81D3C73E90ED82B77A40E2CAEBB4E1CBA02 + 0168645DD4A86A955C58F3755AAB0AF18158491B506FBD498D32ABF3F18145E6 + 4EC2EA76C1A83784DA4133DB056D06053ED074E12A35CA54BA131FA834B613BB + 612FB827713BC85F687B8D121F68B038A95135DADDF8C03DA7DA48AB693F7CF4 + CEA076D0D878199CB54538409B5E09DFFC9C509836D54715E903BA27909FE2E6 + 4E1CA0E2A483B0A70F4802EE5314A25ECCDF79DAEF62E616506A81F74FFEBC6D + F4ADDD3167E683B2A4CE962D5F1173363234181FC830D2FF2659EB6424FA23E2 + C251140F897E4A3D9B7B407EB22015F8C8D920DCA68C00A5CE665667CBE70630 + 8A14470C4E7496E801CA480769CFFE099432DD5A93B32573409AE9D6E32B96FF + 074C266B7333D8419AE9D6C08D66614DFB9024FD26A1996E453B98AEC4054A99 + 6E893B9871204630A65BBF00A18D5ADEE724859A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_21_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002D14944415478DA63FCFFFF3F + 030814CF3A0061900914C4F919D27D0C18D85998182931071980DCC688ECC0DE + 3407B20D5BB2EF3AC3FBCF3FA8EA48AA3A70D7D9070C9FBEFD6678FEEE0BD51C + 4955079EBEF5021C82D474245607FEFA4B5E527CFCEA23C33BA003618E7C08E4 + 6778EB33F070B291ED481407164EDFFBBF3FD399E1C76F08BF72CE3EA20D6A4F + 7162F8F6EB37C3FB4FDF901CF90BE8C84F143912AF0349051CAC8C0CEFBEFEC2 + EAC8921053CA1D58306DCFFF09592E700796CED849B441DD19EE0C379EBC63D8 + 7BEE3EC3B79F7F50E4DE7EF8C23031DB957207E64EDEF17F72AE07D9210802A0 + 68BE70E715C3B3B79FE16227AF3E649892E7493D077EFCFE17CCAF99B39B6C87 + 16463A32BC7CFD1ECC5EB6E7026D1C480DF0F5C76F86F62507A8E3C0ECFEADFF + A7167AC31D58356307D90E6BCBF080B341E64C2BF2A1BE03A905A8E6C08C9E8D + FF6794F8333C7BFF03CC6F9CBD9D6C47D5A77AC2D94D737732CC2C0DA0DC81E9 + 5DEBFFCF2C0B843B905A00E4D159E541943B30A57DCDFF3995217007D6CDD842 + B6A39A327CE06C903973AB42A9EF406A019A39B066EA06B21DD5921D407D0726 + B5ACF83FA3329CE1C9FB5F540DC19619EB19E6D74652DF810D935691EDA886BC + 30EA3B30AE6EF1FF59B5310CCF3E523704411E5DDC1C477D07D6F62F23DB51CD + 8551D4776074F5FCFF731B12189EBEFF49D510AC9BB89C61595B12751C38AD26 + 8EE1CDE7DF7083C9054DF991B473E0B30FC4A7C1F8C850B23D410C3875600B23 + DC81911573FECFA84F1CBE0EAC99BB1545AE25D99B283959450D14B9C7F76FE0 + 7620A93EBC7B6203DC01C896C22C0659864D0E260653834D0EC3818C8CA4A763 + 537BEFFFA30EA46474EBF0B21E0C4369EA4052C766CC1C10ED3E7C891D9F1CBE + 0C443507E20B2572E586AE034919DDB271F6A59F03C919DD3ABAB27FE01C480C + B073F585B3C9CD084467127246B74EAE9D42B467C801280E2467740B3904E9E6 + C0C136BA0500104851DEB37A13920000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_22_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002CB4944415478DAEDD85F4853 + 511C07F0DF8DFE42D0634F41BDF5562FF6146599A46C928516AB586596ABA1B8 + D26A3675E97050C632755DD7860FCAFA43A28192968A104216852F91F407136D + 95E5E6365D734B4EBB0B2FF7E658DBB9BF0D1FFC3E9D73CFBDBFFBB9BF7BEFCB + 610821B094C32C002F5A062449376FDC0005F2EDB066E50A060BC7D944C09B67 + 53A98BB5F6BF0397D78F8A44053E7DFD193CBE207C75CEA0215181AFDE7F0B77 + 101319111898A7FB14C727DDE00C01179063A1B94AB60DD6AF5B4D8D14013577 + FA88E95C1AF8837FE75A6B7FCC858CF97BC1170882CBE313200321A44712322A + 30DEAC5DC58073361011599293221D586CEE25B7CEEFE381A56C4FCC856EA8F6 + C3C88413FADE8C826FEEB7686D6A7A06EAD4E9D28185F5DDA4BE3083BA835CB8 + D73CFC71121C535EFED8D0DB316828CAC403BA7FCD87E73AEB336AA846B107BE + FF7085C7F6DEE1C4003132EB0F82B1750007A8367591468D8C0796B1DDD4B01A + 55063FE6EA982FC8F181584103AA6A1F13B6E400385CFEF0FCDADD27D4A8CA33 + 99FCB8CAD6034DA5D9D28105D7DB49D3A5833C102BDC835A2E1F920ECC373E22 + 566D0E0FAC603BA951552A393FE6EAD8CA72F18158491850D7D8418D32A8B3F1 + 817986FB84D51E81095700B58306B61D9ACB15F840FDED87D4287DD1617CA0B2 + A28558CA8F83C38DDB41EE415BAA95F8C072939D1A55AD398A0F3C76B599D8F4 + 27E18B6B0EB5831575F7C05E93870334EB94F0D31BE40BFF2F1F06DB501FE6DF + BC1CE86416011DD3B17F832714B9C9032AAE58095B798A1AA8B37589D60CA765 + FC78D396ADA2B5F1D19198AE430372371116161EE3704290702DD275C2F31701 + E37D059F5E74240FC830F1FF6829BB656419286577EBB9BD56745361D07F129A + BD991DA9725147E2ED52B4EB96810903C6B3BBB5332D2B79409ADDADC1072651 + 61618437A65D8B0A8C25BBD2B3623E97262220CDEED6505B43F2804B7577EB0F + 309847DE0BEA185F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_23_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002D44944415478DAEDD85B4CD3 + 501807F0AFC66B62E2AB2F3EF0E69BBEE093511489980D45333053833702D365 + C4291787DB44592441CC446416DCC20304EF01CD887801490C8997688C899178 + 0912702ACACA3636472B1E5794A68DCB6C4F0F8425FE9FCEE969BFFDFAADEDC3 + A11042309B43250DF048638F2A69CAD22550A059090BE6CEA148E1789B0478A6 + 200DBB584BF76B60425128D492431205DE7DF6018211163EF9C3C49044814FDF + 7C9EEC6030C2C5906344907181EC04DEA338381C007F0C38851C88CD0D9A15B0 + 78D17C6CA40468BED0859C07D221CAFD9E5BDCDDB20B55E5AF8708CB01138C88 + 906C0C1954854C08549A85F328F087D9B8C8625DAA7AE021D77D74F6E0060158 + 42DF915DE8B46123F40DF9A1EB793F44C67F48D64646C7A0D698A11E68AAEB44 + 75A64CEC0EF2E1FFE617EF86C13712128E3D7E3500E78B36910306BE4F4CCEAD + EE7BD850B37E1D7CF9CA0037F113AE3D78393D4012094739A86AE92103343A3B + 50BD592300CBE94E6CD82943A630E6EBB80E6BC903498518D0507313D1C55B04 + 6069DD2D6C54B569B3302EABF7424349B67A6061751B6A28DD0A3E264AB48327 + 2EDE86C6B26DEA81F955D791DBA2138076DA8B8D3A69D00A63BE8EA73C873C90 + 54A60D68AD6FC746398CD9E481FB1C97116DD90E430C4BB4830EBA0D9A6C7AF2 + C08A7357B1511545B9E48179F666D468DB05BE00D90EF237DA5C99471E6873B6 + 62A32ACD3BC803771E6B429E8A3DF09119975D409FABC3BE093979D2E3A52440 + 97350FBE85B8C9B9BDF6D23F0BBCEDBD31F340DFA8FC6770B73E47185B3D1D92 + 35C77E8DEA3509507FD48DE8E37BB180FC8F880B8B8F2D4B590E83FD7D71D712 + 5D979C40D9B23F79FFA87DE68014A5FC4B90BA56839202C88787882346255A93 + FD92E0EC6E3D6CAD11004ABA34757EBCEBC4C7FE022ADD9B5995A6FD0F4C3EA0 + 92DDADD5E95992C2E2C87D1164BF2438BB5BBD579C8A3AAE34098172B226234B + F6B9AA81B37577EB1717633DDEE8697F480000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_24_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002DF4944415478DA63FCFFFF3F + 03084456CC813068005674A63292A30FE4364698031919C93283A6606839B078 + D6018AA25851829F21CDDB80819D85896A3EC570606F9A03D9862DD9779DE1FD + E71F0CE93ED47324551DB8EBEC03864FDF7E313C7FF7956A8EA4AA034FDF7A01 + 0EC14FDF7E031DF9852A8EC4EAC05F7FC94B8A8F5F7D6478077420CC910F81FC + 0C6F7D061E4E36B21D89E2C0C2E97BFFF7673A33FCF80DE157CED947B441ED29 + 4E0CDF7EFD6678FFE91B92237F011DF9892247E27520A980839591E1DDD75F58 + 1D5912624AB9030BA6EDF93F21CB05EEC0D2193B8936A83BC39DE1C693770C7B + CFDD67F8F6F30F8ADCDB0F5F182666BB52EEC0DCC93BFE4FCEF5203B04410014 + CD17EEBC6278F6F6335CECE4D5870C53F23CA9E7C08FDFFF82F935737693EDD0 + C248478697AFDF33FCFEFB8F61F5FE4BB4712035C0D71FBF19DA971CA08E03B3 + FBB7FE9F5AE80D7760D58C1D643BAC2DC303CE069933ADC887FA0EA416A09A03 + 337A36FE9F51E20F7760D9E44D643BAA2BD70FCE2E9FBA8561666900E50E4CEF + 5AFF7F665920C3B3F73FA81A828DB3B733CC2A0FA2DC8129ED6BFECFA90C813B + B06EC616B21DD594E1036783CC995B154A7D07520BD0CC8135533790EDA896EC + 00EA3B30A965C5FF1995E10C4FDEFFA26A08B6CC58CF30BF3692FA0E6C98B48A + 6C4735E48551DF8171758BFFCFAA8D6178F691BA2108F2E8E2E638EA3BB0B67F + 1941036E1F5D4B55CFA0835307B630C21D185D3DFFFFDC860486A7EF7F126D40 + 6458087D1D38AD268EE1CDE7DF607EDDC4E5040D400E4159450D14B9C7F76F10 + 255733772B8A5C4BB2377E073EFB407C1A8C8F0C853B00D95298C520CB6034A9 + 72180E048DCDCCA84F1C7520450E24DA655070F7C406FA39909CC123537BEFFF + C8062303648BC9CD40547320B921884D1FB2188A03C919DD3ABCAC07C3509A3A + 90D4B11933079F510752C581304B9101B2A3C895C3EA405246B76C9C7D49F210 + A900C581E48C6E1D5DD93F700E2415D06A740B00319040DEF45481E600000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_25_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002D94944415478DAEDD85D4853 + 611807F0E7449F1074DB4D17DE75573776156459646C95D5B446615FA6AB3169 + E547DA664B46921966A61D6DE24566D2075A2859A90911F4411141247D60A2AD + B2DCDCA66B9E93BDEDAC7638CBB9CEDEF36C24F4BFD9FBEE61CFF99DF76C177B + 18420808D11EB111F6D86EB08F70809992CA4BD07C721F43F359C1C64881A832 + 4950800C43D523A6995EC0C3753D8A1E71C2C20590A55A0A7366CE40BBD349C0 + D35949D4CD1ABB5F81D3E3836C351E121578E7E97B707B39F8E8184343A2029F + BCFE143841B797F7234751906181DC04DD577160C8050E3F3088ECF7EF75AA25 + 307FDE6C6A6408D078BE8B54EC4F061FFF6B5F68EB96DDA834731578391E9C6E + AF04C9F9916E45C888C068337716038E312E2C325793A81C78B0A6939C39B05A + 04E6B1B765373AA55B0BBD830EE87AD607DEF1EF21B5E19151A8D4AF510E3454 + 75902A430AF5090A111EF3F3B743601FF688EF3D7AD90FE772D6E1015DDF2602 + 7B93ED2E35D4A85D099FBF38819FF80157EFBD880D1023633E1E4A1B7B7080FA + 8A76526D5489C022B6831A76429722AE853E3587D4F840ACA00175E537089BBB + 5104E657DDA44695193688EB82EA36A8CD4B550ECC2E6B21B5F99BC0EEF4A19E + E0F10BB7A0AE60B3726066E935622BD488C062B68D1A55A2538B6BA14F7D511A + 3E102B31039AAA5BA951567D2A3E708FB599B0855B61D089FBAFCECAB6408359 + 8B0FB49CBD428DB2E4A4E303338A2F923AF30EB0BBE49FE036CD16EA9B9093C7 + 3D6DCC94407345D35F1BBC79703D7EC0ED471B48BD65177C708ECB6EA04DD788 + 6B537D7B48CDBA5725AE17252C0EA90DF4F5CAAA4D02D69832E0AB870FEC8B2B + 2FCB3E41E122D2C641B0808C540BBE86AB4D098C6636B3539B163F20CDF0E83F + F04FA06CD9EFBC7BD81AD2581AF41F09CDF02871858A2839C148B5E907A4996E + DD6F2A171F535C80D1CE669625A9A707308894467AE1483FA0483554602C1216 + 18CD746B79F2FAF801FFD5E9D64F7E5140DE81CEDA9A0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CalculateSize_26_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002C84944415478DA63FCFFFF3F + 03084456CCF93FA33E91E1D9875F0CD4044D139732ACE84C6524472FC86D8C43 + CA8154751912A08A031919C93283A6606839B078D6018AA258419C9F21DDC780 + 819D85896A3EC570606F9A03D9862DD9779DE1FDE71F547524551DB8EBEC0386 + 4FDF7E333C7FF7856A8EA4AA034FDF7A010E416A3A12AB037FFD252F293E7EF5 + 91E11DD08130473E04F233BCF5197838D9C876248A030BA7EFFDDF9FE9CCF0E3 + 37845F39671FD106B5A738317CFBF59BE1FDA76F488EFC0574E4278A1C89D781 + A4020E564686775F7F617564498829E50E2C98B6E7FF842C17B8034B67EC24DA + A0EE0C77861B4FDE31EC3D779FE1DBCF3F28726F3F7C619898ED4AB9037327EF + F83F39D783EC10040150345FB8F38AE1D9DBCF70B193571F324CC9F3A49E033F + 7EFF0BE6D7CCD94DB6430B231D195EBE7E0F662FDB7381360EA406F8FAE33743 + FB9203D4716076FFD6FF530BBDE10EAC9AB1836C87B56578C0D92073A615F950 + DF81D40254736046CFC6FF334AFC199EBDFF01E637CEDE4EB6A3EA533DE1ECA6 + B93B1966960650EEC0F4AEF5FF679605C21D482D00F2E8ACF220CA1D98D2BEE6 + FF9CCA10B803EB666C21DB514D193E7036C89CB955A1D47720B500CD1C583375 + 03D98E6AC90EA0BE03935A56FC9F5119CEF0E43D757B752D33D633CCAF8DA4BE + 031B26AD2268C08D432BA9EA197470EAC01646B803E3EA16FF9F551BC3F0EC23 + F1211811123C700EACED5F46D080DB47D7C2D93573B7A2C8B5247B132527ABA8 + 8122F7F8FE0DEC0E8CAE9EFF7F6E4302C3D3F73F89F661645808DC01C896C22C + 065906A391014C3D367DC862180E9C5613C7F0E6F36F30BF6EE272A24390AE0E + 24656C263E32947E0E2467F068C83810E6206480EC2872E5301C48B4CBA0E0EE + 890D28A1456A2861D3872C86E24072068F4CEDBDFF8F3A9092D1ADC3CB7A300C + A5A903491D9B317340B4FBC8AD2DF0E9A3AA03690186A60307DBE8160098FE37 + DEF5C73EC20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_27_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002D74944415478DA63FCFFFF3F + 03084457CFFF3FAD268EE1D9875F0CD4042D5356302C6B4B6224472FC86D8C30 + 074656CCF93FA33E91EA0E6C9AB894614567EA087120555D8604A8E2404646B2 + CCA029185A0E2C9E7580A2285694E06748F33660606761A29A4F311CD89BE640 + B6614BF65D6778FFF90743BA0FF51C495507EE3AFB80E1D3B75F0CCFDF7DA59A + 23A9EAC0D3B75E8043F0D3B7DF40477EA18A23B13AF0D75FF292E2E3571F19DE + 011D0873E443203FC35B9F8187938D6C47A238B070FADEFFFD99CE0C3F7E43F8 + 9573F6116D507B8A13C3B75FBF19DE7FFA86E4C85F40477EA2C891781D482AE0 + 60656478F7F517564796849852EEC082697BFE4FC872813BB074C64EA20DEACE + 7067B8F1E41DC3DE73F719BEFDFC8322F7F6C3178689D9AE943B3077F28EFF93 + 733DC80E41100045F3853BAF189EBDFD0C173B79F521C3943C4FEA39F0E3F7BF + 607ECD9CDD643BB430D291E1E5EBF760F6B23D1768E3406A80AF3F7E33B42F39 + 401D0766F76FFD3FB5D01BEEC0AA193BC876585B86079C0D32675A910FF51D48 + 2D40350766F46CFC3FA3C49FE1D9FB1F607EE3ECED643BAA3ED513CE6E9ABB93 + 61666900E50E4CEF5AFF7F665920DC81D402208FCE2A0FA2DC8129ED6BFECFA9 + 0C813BB06EC616B21DD594E1036783CC995B154A7D07520BD0CC8135533790ED + A896EC00EA3B30A965C5FF1995E10C4FDE13DFAB8B080926DB13C4805307B630 + E27460C3A455040DB8716825FD1C1857B7F8FFACDA1886671FC90BC19AB95B51 + E45A92BDE16C59450D14B9C7F76F10A50FAF036BFB971174E0EDA36BE196201B + 8C2C06721CB28390E5F0E9C37020686C666E4302C3D3F73F890EC1C8B010FA3A + 103478F4E6F36F30BF6EE2F2C11782A48E6EC54786D2CF81E40C1EC11C083318 + 19109B49F0C951CD81F84289543964310C0712ED3228B87B6203FD1C48CEE091 + A9BDF7FF51075232BA7578590F8AA5C8003993909B81301C48EAD88C99830F49 + EA4905C3DF81C88056A35B00DD9034DE6FEAD88B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_28_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002DF4944415478DAE5D85F4C52 + 511C07F0DF6DFDDDDA7AEDA507DF7AAB177BCDFE2D1D6CFDC38AD5ACCC3F94B3 + A2B4C2108D31596523520909D64344D46AD9A64B0B1DB3B5F567351F6AB1FECC + 9C466509024208B91397E28CAB0CB887038DF57DE17738EC773FF75C78E0C720 + 8480CD9E33D7904E5E063F7CE1E85AA1BD09A4511E15E39AED6369296748FAB0 + 366636D039192286258AAADD4A07283E6D44FAA603D4814AED0DB09EABFC4F80 + 546571A1026418A21E594D7E014F18EC193DE282E5CBA04AB01A16CD9F47ED4E + E7002F56151137330FBC05B72F08D5427A48AAC0872F3F813710822F2E3F3524 + 55E08B775FA327E80D8423C8292AC884C0D00CD9577174DC03AE0830861C89AC + 258255B074C94262240728BDD28F3487364030FC672D330EA4DD485DB11E02A1 + 30B8BD8138642882F466844C0AE49BC50B1870F943099175A2C2CC81C7743674 + E9F0460CACD7F7A5DDE882643338C65CD0FF6A1802D3BF387B139353A0ADD994 + 39B0B6AD17B5D516139F201BF6310F7D1807E7840FBFF7ECCD08B41F29A107F4 + FC9C89AEE5C647C450A9781D7CFBEE8ED616DB50768034E20F86416DB6D301D6 + 687A50875480810DFA5E62588BA418D76C1FDD71217D20AD50034A5AEF237DDD + 1670BA83D1F5D9AB0F88514D9525B8569AFAA0B37E6BE6C0EAF3F750E7C96D18 + 482BEC8D1A4E6DCF1C58A1BE838C3211062AF4DDC428A544886BB68FA9A1943E + 9056B206947774A56CF0DA66A67A33B3F3DCDECD6060B9CA8AF4B25D30E64EFF + 5FDD6ED18E7F076CBE7C3B6503C7E02D5CCB4D3D9C3DD54101AE5714ACE4EC8D + 0E3BD2DAE300CB14D791A1712F383DFC4F90BD487CE318984526DB8BBD26DA4B + 096CD4585202DF3FB99B3B203B9B3135EF87CFEEE9B44F50BC53945B20DFE956 + CE4F90EF746B9FB814D7C9BEECA43F200E9064781403E6E404F30298B6EC6F3E + 3EEDCA1D90647854B85680F202186B1C9FF80B93EE718024D3ADC79656DE37C5 + 2773807C67336B8A84BC3E9F73607CB235DDFA0DDEA337DEB5BF4F9900000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_29_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002DC4944415478DAEDD85F4C52 + 511C07F0DF6DFDDDDA7AEDA507DF7AAB179FFBBF6CB0D2C28AD5ACCC94725494 + 7FD2908C395D6633420809D74344F46F59C365A5C66A6DFD59ADB55AAC3F33A7 + 515982801072A313D7E2EE120497730F54ABEF0BE7F01BBFF3B9E772C7381442 + 08986CD87F1275D46F86B7EE71201995E60C581A8B299CCF32368A0BD42B8BE0 + 938F661BE346BD4B9A39A073344474071BDAAC6480D27D266438B0853850AD39 + 0DD643DBFE112051192744801485D523A3F9BB807B8D7641B73867F62C2815CD + 8769932711BBD238E091D285D8CDCC7DCFC1ED0B4299981C9228F0FAC337E00D + 84E09DCB4F0C4914F8E0C5FB891DF406E808728C0832213014C6FB2A0E0E7BC0 + 150146910391B94C340F66CE988A8D8C012A8EF7A2D6ED4B20487F9FD798FA78 + 376A2A590C81100D6E6F80830C45905E41C8A4C074337D0A052E7F2821B24292 + 2B1CB85BDF838EEE58CA022B0DD778373A2C5B0E8E2117F43EEA87C0F89798DA + C8E81868CA970907CAB5DD482BCFC3DE4126CC6D7EFC6A189C233EF6BD7BCF06 + A06DE70A7240CFE7F0C45C69BA810D554817C1878F6EA0C35FE1FCCD27990192 + 883F484393D94E0658DEDA85740A110BAC357463C31A6579EC98E9A3DF23260F + 2415624059CB6564A858C502ABB457B051CDF295ECB85A6783F6CA7CE1C0B2E6 + 4BA8BDAA009CEE20D11D3C78E22A18AB570B0796345D40A61A090B54196CD828 + B54CCC8E993E1DB585E4817C925F20C1BE083EB96FB751BF042A759D291B3CED + 31670F58DC6045869A7530E4E6FFAF6EBD640D3B9E933337A636D8EFE0555376 + 74C5D41AB68AF801EB8F9D4B0974DC3ACB02B88B461766164B568BBE26AAC501 + 8B54A790B16E23383DE9EFE06F01D6B55A52025FDEB9983D20CEE99674AD24BB + C0744FB7A23B186DCC0D77E164B5640F5042603A67339BA485D9DB419CC3A3FF + C09F81BC653FF2FA6E67F680388747B90B4488DB981BBE0F02EF5F12A1C04C24 + 068873BA75DBD292495F3CF04F3CDDFA0647D23ADEF82A64EC0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_30_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002D64944415478DA63FCFFFF3F + 0308C4D52DFE3FAB3686E1D9C75F607E6DFF320672417361149CDD306915C3E2 + E6384672CC01B98D11E6C0E8EAF9FFE73624303C7DFF936C876103751397332C + 6B4BA28E03A7D5C431BCF9FC1B6E30B9A0293F92760E7CF6E1175543B065CA0A + EA3830B262CEFF19F589547760D3C4A50C2B3A53478803A9EA32244015073232 + 9265064DC1D07260F1AC031445B1A2043F439AB701033B0B13D57C8AE1C0DE34 + 07B20D5BB2EF3AC3FBCF3F18D27DA8E748AA3A70D7D9070C9FBEFD6278FEEE2B + D51C4955079EBEF5021C829FBEFD063AF20B551C89D581BFFE9297141FBFFAC8 + F00EE84098231F02F919DEFA0C3C9C6C643B12C58185D3F7FEEFCF7466F8F11B + C2AF9CB38F6883DA539C18BEFDFACDF0FED3372447FE023AF213458EC4EB4052 + 01072B23C3BBAFBFB03AB224C4947207164CDBF37F42960BDC81A53376126D50 + 77863BC38D27EF18F69EBBCFF0EDE71F14B9B71FBE304CCC76A5DC81B99377FC + 9F9CEB4176088200289A2FDC79C5F0ECED67B8D8C9AB0F19A6E47952CF811FBF + FF05F36BE6EC26DBA185918E0C2F5FBF07B397EDB9401B0752037CFDF19BA17D + C901EA3830BB7FEBFFA985DE700756CDD841B6C3DA323CE06C9039D38A7CA8EF + 406A01AA3930A367E3FF1925FE0CCFDEFF00F31B676F27DB51F5A99E7076D3DC + 9D0C334B032877607AD7FAFF33CB02E10EA416007974567910E50E4C695FF37F + 4E6508DC817533B61034E0D2CE0554F50C3A3875600B234E07120302024306CE + 813553371034E0CA9E2570B6ACA2068ADCE3FB378892AB99BB1545AE25D91BBB + 03935A56FC9F5119CEF0E43DF1BDBA889060B803902D85590CB20C9F1C8CC626 + 47D081A0311542E0C6A195F47320FAE0D1A00B417246B76E1F5D4B3F079233BA + 1519168262303240B6189F1CBE0C84E1405247B7E81E82A48E6EC54786D2CF81 + E40C1E8D3A10DD8144BB0C0AEE9ED880623032203623105D93903378646AEF4D + B321BBA1E7C0C13ABA05000FC237DE23E6B6C60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004364944415478DACDD77D6C13 + 651C07F06F57761D5BC84003F887D934A218E71C2653F42F8D9AE06B7CE30F5C + 080679718E2904A706179D669BB8090E22CA1C5B4032560DC6393153B1A21193 + 99A8683346B631C222736D19F4E5D6F57657CB7977A697BBF6797AB7EB11F6FD + 67F7B4D7CB67DFBB3EBFD4218A2266731C56802FB7FD94D57F75DDE2423CFFE8 + 32304E87E3B201776EBCD732F0F0CF83F0873853C82B023CFAC728D8581CBE60 + D410794580BF0DFB119A9C5691EB1E2A413EC3109159018584B547F1DCF90882 + 1230891C95D6558FDD46445A026E6D3D26BE5F791F62C22565FDEADE6F4D7FB6 + F98507C10B7109C8699082846489485B80334D3E9383509427226B9E2ECF1EB8 + E5238FB8ABEA01CB0D0EFB58787E1F01C7C775EF5D0C4F41BA6EF6C0EADDBDE2 + 9ECD0F5B6E508E7C9BFF3C3301DFC549F5B5BEFEB390AE6B1F30144B28EB37F6 + 7D6719FACAEAFB31160829C7EEEF4F64069A9D103C1783166847F878020D073C + C64033FB9BD420EC6AB07EC30AF558BECE6501DA15DB80953B7AD05AF338FC11 + 4159CBB7468EE7F41078F6FAACA1F9857E0C7C50E9A0028D264475CB9768AB79 + 520526F348433B5CCE3B51726BA9FA1A33C7A93BC7E9CC518FE7E4904770774F + 0FCE1E7C221D6876424CC76268DFB632AD4121CEE3C791712C9CBF3C2BA46920 + 2D2FEDFC4207D42634C561E576370A0BCA2D23A940B31382D66032D93649059A + 9D109B9A3EC3C7AFAF822F2C50CF8970513CD374D852938640A3FD6D8A8DE880 + EF75FE403C4F6ED2738AC38D4BEE4051519169A469202D9B9BDC68ADADC0C464 + 9C7A4E8C9FC6EA96434062194ACB6E47AE0661843C72E4ABEC1A6483411D90D4 + A0BC271630CB71F32D65C8CDCD490366429A06D2B2A9F120DAEB9E253E83C2BF + BCDA9C8C93230395BF269154A0342144D284484DF07C001FD6AE4130FA7F832D + EE63C4E6B49909B2B7F76B3270E38E6E91342152B3B5F990020C68CE9B1678AC + DBD3A56B2E35669154E0FAED9F8B99F6B7642E8CFF83BD75CFA9C0242E2194E1 + 86A5A5C8639CA0258994333E760EC5C5C56948D3405AB6BCF3890A4CC5259309 + 2967F09417A1F028AE597453DA3E694B8372045140BFF483A780B94B873342CA + 3896EB43E9BC3C782397B078C1DD3AA4E7E83764E0DA7AB7683421B479EADD0E + A5B9A22525C4E78A84947170FE85E38DEB959F9817A2AC78CFB62EDDC4310DA4 + 4D88647ABD615C5B5C8EF9572D52D646C8549C7A47529054E09ABA4ED1684268 + 737CF024DEEC185246996BDEC28CC8D19193441C09E91B1F3307346A508E9F0B + E0C4B02B23F2CC503F9C8C978AD32257BCDD89B92EE09786AA746045ED7E9136 + 2132A5EFF400B549193725FC0AEFEE1733E2684903D226849526FF1E19509A5B + CACC4557E3DA19E3A8C04064660DAA4D4AA0FAFDC3CA17870D4E28B88EEA0A34 + B775DB035CF5DA3E513B21B2412EB83AACE0F21817DEDAD5894F9B36CC0E2029 + B6026D9569620B7036E63F82198EDEBDA634670000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D34944415478DACDD76D5014 + 750006F0E738B9E32507AD51FBD0404D964D44D88C667DAA511BD3A2B2611807 + CD2631227CE3456D88316CD0280404E25D189A86BC29A30B311445A8AC68A682 + 2EA500319924B993BC37B8DBDB3D8F6D779DBBB96377EF96BD9B91E73EDCFE6F + F7667FF7ECCB7F4F41D334E67214DE40854221E94B39F53D41FDAAFB97C4E0AD + 1797433D2F4C74876E976C6069FAB3B28127BE1F84DE44F845DE51E0D9DF4661 + B53B316E9C1245DE51E02FC37A98261D1E64DAFA7844ABD53E3B0F099072C93B + 15AFDDB0C0C800DDC851669C99F4B80F32286076ED79BA2C6335ECD43437DE5F + 7B4632AEF8EDE741524E06487821290669F541861438DB44A9C2609A220591FB + 9257060FDC537D8E2ECF5C2BBBC1E1712BBA7E1D01413A7DD6DD34DB50B1E3B9 + E0813BCABFA1ABF66C90DD201BF630F75F99C0F8CD49CF67BD17AFA23AEB85D0 + 014D7617373E70AC533674DF9635183398B865CDB93EFFC0DC866F255D962461 + 4761DA1A902EFE0F52872BE535EA74E1D0275D818152EE6FF94DDD389CB6DAD3 + 6089E63BEEDD4192CC8E6677EB297C739D67993D122101E6D47583BD8ADD40EF + 1682693264C0DC9AD328CD5CCF6BB0B55F07D2FAC0AC61331315A3C7C0C7190A + 5160A01922AFFE8C0FD09DB505F5502B9F44FC63099ECF54F37C9B542AC33CCB + 620F33DAB6365CFDF4153E903974926608CA49E2A38C0D30DA6F7FF7A8A61B31 + 774570E7E0C93FFEC6A205AB82424A068AE5406327D7A0DE42F1D6996C04928B + 3488895E211B290ACCAAE992344338EC761CD99504C3E4EDEDAABEE8E11A2498 + 8981221DA09857CF5FFFCA6E5214B8B3A243D20C9153D98ECAEC97609C720AAE + 276FD1CCB465C66BE55A594D0604069A216C560B4AB336320D92DCB8FAC48FBC + 6DD49151B0932674F6137868E94AC4C6C64A464A068A25AFE614CA76276162D2 + 29BA0DC11C85CD65CD806B3912129F40B8172210B2BDFD64700D5A8D4614E7A4 + E03F8B8D1BD7697B79DB745D1E42B46A151E793411E1E1613CA03FA46460A006 + C7CDFCAB98BA4562CBD1CFB8E6581C1B16C8BD4B448A02334ADAE8BABD2F7B6E + 1FECE42D14E30D03CAF66F86DE6CE7C68D5FFF24D89C776683ECE838250C4C2F + D1D20D7B370ADEDFBC73B0AA1545D9293E57B15073332315290ADC5EF425DD98 + 972CA9C1A29C54E6B19DE0C6369B03BB9BBF828B4AC483CB1210A1127F507023 + D95C1FBB86B8B8381E5232502C7995AD28CB4D8181D9CE419148AB3AEEC1B9E3 + 0FC966F04F1D4CE651DCBBF861DE7D32240DB2714DBBD067B630E7DC533EB840 + 481667257A91303F023ACB34962C7CDA07D975F6B430F08D420D5DFFEE26C1AB + 5328AF7ED8C43517BB345EF0BC1242B238287FC785C3DBB9BF98139316FA99BC + E33E338E64E09196F37E811D3A33EE8B5B8105772FE6C681903371EEF53391A2 + C0AD052D745D7EAADF19C23B17062FE1BDA6216E2A53CF5FE417393A72491027 + 841CBF3E260D18A841367AC280BE61B55FE495A18B50AA74A2386FE4BAF75B10 + A9067E3894C907A6E637D38D05AF4B3E07DDE9BD3C20DA248BB3513F4357B1CB + 2F6E6604FF93B0C0EAFCAD9E1B30FBA42C35424DFE3332C035B74C1509CD07DB + 24E302020D96D935E869920115360F73178ED538C1E19A76A6A2B8411B1AE0A6 + 778ED1B505DB6403BD910BEF3173B808951A07CB5BF07971FADC000A25A4C090 + CABC1212E05CCCFF671AD6DE5C3F2D340000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D14944415478DACDD76D5014 + 650007F0FF71DC1D4A0C4283F4A1819A2C9B08B119CD9A3E644919A5A3354C63 + E8980902A18D6612212635F852880253C88B2096E04D2F33881AA8203899E188 + 59374A02E2C02823078CF70AB7DC1DB0ED2EB337B777BB777BCB35F2FF72FBEC + 1E733FFEF7ECF3ECC94892C44C8ECC192893C944FDD1F6F2D669FD574F448622 + 6DC542A80203043F907549061E4C5D2A19F8CBEF9DD0EA098FC8870A3CFF571F + 4C163B06742382C8870A6CEFD6426F1E732093136210AC52713EDC2F40DB84B4 + A9786FC8081D0564917DD43863E5020E725AC04F4B2F9087D25F87C536C98C3F + 2F3D2B1A97FFF15BB0DAEC14907042DA28A48983F42BD0D7CC5606403F62E545 + 66262E9E3E706B49135994112FB9C1EE01139AAFF580B0DA39D71E184651BCF9 + 8DE9033717FD467EBFF56DC90DD2A1BFE6BFEF0C63E081D971AEED462F4AB6BD + E33FA0DE32C18CBF3C724E323473DD32F40FEA996375D375CFC0CF2A2E8ABA2D + AD8405BB36C4433F4A70CE2B0355087F4421AD51FB04F61C6BF60E14B3BE7DAB + BE8CAC0F5E713458517F85791D32DB19BC2FC9DBB4DC714C7F137E01EEADBD88 + 9CB54B1D403626621CE3F4DA383186F0D0109F5BFCDF806C83D597AFC26A7AD2 + 67986B66876AD1F15DBA4C10E86D87C83FDE42CDC1656E0DC6E79643257F1131 + CFC73ACE2903E59CF7C8E5018E63A18799BAFA7AF4FEB8DA1DB8BDAC45D40E61 + B35B91B5F635986D53E3CA937F2232220C6304819FDB6F2162CE926921450385 + 72E8442BD3A0D668E39C5729E4D01A4690B85F8DD0E045929182C06D879B45ED + 1063160BB2A96586AF4182DA1C6CD6319CBBD52BB94941E096E206513BC4BEE3 + 4DD8BDE14DE846ECBCD747AD9318361B905C745252935E81DE7688519311BB52 + 12380DBA866ED46030A0EE9A1E4FCF5B8CA8A828D148D140A114FC701639C909 + CCBA2714BAC5F70F1CA5D6C485888D7B010A278437E4E9D3A7FCD3E090790A58 + DB78D5ED3DAD3D7711A45880679F8B834211E006F484140DF4D6E0B0D97D0E5A + A81B645D612DD31C8DA343039957914841607A413D59B6639563F9A0376FBE98 + 743A64A7AD84CE30F5B0403F85B069BEDD8560E512078E8D2FC8868633FCC0D4 + 823AB262C7BB6EEB9B6B0A8F35E28B4D2B3877B16DDCEAD69C6BC422058129FB + 7F252BB313BD36A81B1AC4CEB4D530528FED74ACF67164D69CC2842D0E4FCD8F + 4590520EA1B0483AF7FBEF213A3ADA0D291A28948347CF50C0554C836C732C8E + 8D27249DCE7F35D01BFAF0D8DC67DCD649BF34C8A69D9A8FC1CA9738386F481A + 6722DA101B12048D711291612F7390CDE71BF9811FE5A9C9F29D6B3060F0DC20 + 9BF7BEA9629A8B9A17C33BAFF890340EF27F70696F0AF31373D86C245FCD3EC1 + D97144030FD45CF0086CD018F078F422CC099FCB8CBD215D71EC7557A420707D + 6E0D599693C4BBBEF1E552E74DECAEEA62B63255488447645FCF4D5E1C1F72E0 + 7EBF38A0B706E96889415CEF567944DEE9BA01B952238873462EFFBA06B354C0 + 1F7B32DC814939D56465EE87A2E7209BB6DB1D824DD2B851DB15688A3FF18873 + 0DEF6F121A5892B3DEB10017AA5B4423F99ABCDBD3C134375F390BEA7D1B45E3 + BC02078DBE35E8689202E5557733378E4937CCE0AAB62421BFA2CE3FC0355947 + C8D2DC8D9281CEC8B0470D0C2E48A9C2574535F8293F756600F9E257A05F654E + F10B7026E63F82C6D7DE99C26FF40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E24944415478DACDD77D4C94 + 750007F0EF71728792A19958D3812D8B1621B26146CD32A3D9EB8C60E0C8D932 + 43BA9361863563450DCB86A6303D798F6A2415162246A18710D870B3904B2840 + 1C4C991C32EE8D7B3FE0E99E87EED91DF73CCF3DF7D2E4FBCFF37ABBCF7D9FE7 + F7FCEE11100481B91C8133502010F0FAD09ED216BF7ED5CA6561D8F9D21A88E7 + 05B17EA1C3E533F08B8C0D3E036BDB7AA1549B3891B71578F6CF21E88C368CA8 + F4ACC8DB0ABCD4AF847AC24C23DF7C3E1AA162B1CB970704689DF2ED56BC714B + 0B951DE8400ED9B7252FAF7641FA057CA7B899389CB91146EB34B5FD5EF1AFBC + 71056F3F078BD566079A9C90563B52E7820C28D0DB2C100541ADB73022F7A6AC + F51F982D3B47144A127D6EB07F4407F91F0330596C2EC7C6350614499FF51F28 + 2DFC993896FD82CF0D92212FF3E56B6318199FA0F7755C19846CF78B8103AA8D + 53D4F687E54D3E43F76E7D06C3A36A6ABDE65C2737F0DDB2565EC3D262322233 + 2901569BD565BF285884E577DFE95BA3B629ECFF4AEE19C8E7F976B4FE32B236 + C7D197F8EBA62E6A397C4B03ADDEEC152CFFAD4DF43A7925020294FDD8016972 + 027D891D51E96DB04E5AEC6D1058BEE40E704CB58CF9DF80DF352BA86551D36F + B0E8EEF30AC59405614AF41CCD14B0023DCD10E5A72E32369898570AB1F05144 + 3F1243EF13CD13BA9C231406D1EB6C0DD7D5D763F09B57DC817B4ACEF39A21AC + 360BB2929F80CE34731E39FAA256DE0BB34187B2B66E2C5DB4CE2F246F205B8E + 3774222739DEAD41324A8D1E29076A10161AEF339215B8FBB89CD70C41369899 + F43826CC33C05A7917D5A0D168C4A8D602ABC58CA67F067D6E9215B8ABA891D7 + 0C213BD98EECB427A951CB148DBDD951951A9292D33E35E911E8698630DB9B92 + A4AE87E63FE04FAD7FB99DB3724538349A719CF87D1C0FAC5A8B888808DE48DE + 40B6549CBA0069CA7AFB2099643DC7609946EAC12F81A93588898D43B013C213 + B2A1E1B47F0D1A745A64A56FE46CB065E03A428257E3A18763111C1CE406E442 + F206B245F6432BA4A91B181B34D9EFDFD70E5751CD91383224905AF244B20233 + 0FD51325399BA1D4CEFC0920276FB60625694F436598F9210D6D0AFA98FC6A1F + 4245EB689C23DE201B1BCF3003330ED51165394934902D15B52D90A627BA8C62 + 720EDE7AE45B97E666872F9215B8E3C049A2625F8AC706752A1576A625426F99 + 6950306D434EF519044DC7E1FEA818848884608B0349E6E6F00D444646BA2179 + 03F934E8686ECA1A4BE11CE14292E9FD5B01B56608F7843FE8F69C0C48836426 + 276DB8645F0F153DE682F38424713A530762168640A19DC6B2C5092E48F9D95F + 98816FE4D710A51F6CC18886BB41475EFDBC926A2E625534E37DC58424711076 + A1FDD31DD42BE6D88496786ADF0997198737F060753327B051A1C18AC8782CBA + 2B9CDAF6849C8D731C9F8D64056ECBAB264A72D3ED1FB0814FDA7BBBF151651F + 359589172EE5440E0D7433E29890233787F9013D354846691A4567BF981379AD + EF0A8422052BCE19B9E9936ACC170317F64BDC81E9B9554445DEEBBCEF41473A + AEF6B03649E20CD68B50146571E26687F19D8404CA72B7D10FE02335E7792399 + 9ABC3ED0433517259A8F9ACFB67BF506C5091CD57AD720DDA41D945FD54F0D1C + 9D6A8CC255EE4A4741595D60805BDE2F278AF3B6FB0C74462E5EA2A170212231 + 3E2EACC6F705197303C8948002032A734A40807331FF0254E6DDDE6B9DB7AF00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004ED4944415478DACDD77B5014 + 750007F0EFDDC11DCA38680EDA4C0DD06458D2819448D61F352623844C8F611A + 45A0D18C087534D31A638A1A4C0B4D610A7928D11472C354C320C5430EB46406 + 2B4509515E062903C7EB9E70C7BDD87697EEBAE376EFF61E33F2FD676FF7F6E6 + 3EF7DDDF6F7F7B3C8220B090C3B305F2783C4E1F3A5072D1AB5F15B632086F6F + 590B911F9FF50B2D2E8F815F66BCE031F087DFBA2153E89C22EF2BF0C2B541A8 + B5468CC8A75891F715F867AF0C0ACD8C15F9664204024522BB2FF709D060F66C + 28DE1B53414E022DC841723F2B29D20EE915F0DDA266E264E646680DB3F4FEFB + 450D9C7179EFC4436F3092409D0DD24022D576489F02DDCD62211F8A293D23F2 + 50728CF7C07D854D447ED6268F1BEC1D51437AB51F3ABDD1EEBD49E5340A76C7 + 790FDC9DFF0BF1F5BE973C6E900A7599AFDF19C7C8A4C67AACAD730085FB137D + 075468CDF4FE47671A3D861E4A7D1143A30AFAB5A4A9DD39F0BDD24B9CA6A55E + A7C5B6B8A7A0379AEC8E8BFCFDB0262CD8B3468D661CF956EA1AC8E5FE76AEE5 + 36B66F7CC27A89AB5B7BE8EDDF322546C7156EC172DFDA6C7D4D5D099F002B9B + FE424A5CA4C318FC674203B369162A728686872C871F9FEF16D667C0EF1BAE23 + 2D3EDA3A06EBAEF4D2DB2F6A1BA1990C730BC594C54132747D95C96305BA5A21 + AA9A6ED8012DD994530291603D229E145B8F09FD0476E70804FFB7CAF630535D + 538381EF5E71041E286EE1B442988C46A49240AD7EEEBCF3ADB7B041FC08945A + 254E37762028709D5748CE40B6489A3BC9053ECAA1412A32E514928F49BC42B2 + 02F79F96725A210C463DD2E39F86726A6E2568F8BD876E905AB664130A7292CC + A0F1F6008297C67A846405EE29A8E3B442481AAE222D3186BCA48E0DCECECE62 + 42358D31B91A7BCBEA3D6AD225D0D50A31A3D522252106DA1993B5C1F9890E7F + 0832B90265CDC3786C550C42424238233903D95259FF077624C542AD33B19E33 + 4D4EA0D78F7F0398D7421C150D7F81FD3DD119B2B6F6BC6F1A946B0CF4FEA5F6 + 3E87732EF6DF45807F241E5F13057F7FBE03D0199233D059832909EBE9F5D359 + 73148E0A05A4B71C91ACC0CC133544F1C1972153CD35432DDE8C974FAD425AD2 + B38C0D4AFB7A10288CB5E22C71075957F7333330E34435517AF0552B902D3F49 + AFD10DDA8E411D39F3B79F2CB76B6E7EB8225981BB8EFD489C3D9CEC7683D463 + D7D1EA5FE1CF17E3D1D562040805608B05496578E81E4243431D909C816CA9AA + 6FC3B6C4E7A0211B3498F4483D750E6643148DB3C419924AF7AD0E2894837870 + 45B8C37DD2270D52319BCC681B1B25C7DC33763857480AA7D6B541BC24001DAA + 59AC5CB6C10E29BD50CF0CDC912B214A3EDC8A11A5F3062D79EDF332BAB99055 + 118CE38A0949E120B881CB9FEDA2FF628E6B54C4F3872BED561CCEC0E315CD4E + 81751D4A3C1CBA0E4B1F5841EFBB42CEC759DE9F8F6405A6E75410C5D929E407 + 8CE092CBDD37F171590FBD948996043B450EF6DF64C43121478687B8015D3548 + 45A61B457BAFC829F24E4F2704C20E569C2D72F3A7155824025A8F64390253B2 + CB89B3396F701E8396B4F575B13649E1A60D57D051B0D7296E7E18FF9350C0C2 + EC74C8FF7BCE3B2569E18C646AF26E7F17DDDC6AE122488EEEE48C73091C55B9 + D7A0B54912945BDE4B4F1CB57C9CC695ED49415E69B56F805B3F384314E5ECF4 + 18688B5CB65C49E30284227C925F81AABC8C8501648A4F813E95D9C427C08598 + 7F010A3FE0DE7D23B8FC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E14944415478DACDD7794C5B + 750007F06F296D6184B06906FE618005A43A56983A84CD634467C0C1DC34C42C + B8CC3827229BD9E1A69944D1309D81C9208A1C1BB218947824C8B8B6C1986E4A + 312A13B73A6E70435ACE1E404B5BBAE77B0F5B5BFA5EFB7A98F1FDE71D6DE987 + 6F7F47CB2308024B393C6B208FC7E3F4A28365173DFAAFC24382F04AEA5A887C + 7D58DFD0EC721BF85146A2DBC06F2E7541A1D43944DE56E0F9DF86A0D11A219F + 9A6145DE56E02F3D0A28A7E72CC8979E8A46804864F3E65E011A4CEE0DC59B63 + 6A4C9140337288BCCEDA126383F40878A0E4025190F938B4865BF4F51B256739 + E3F25E4D86DE6024813A2BA481446A6C905E05BA9A65421F2867F48CC8C36971 + 9E03F715371385599BDC6EB047AE41CBAF7DD0E98D368F4DAA6651B4E749CF81 + 7B0A1B884FF66D76BB412AD4C77CA57F1CF2C969CB3DE9D54114EF4FF11E50A9 + 35D1D76F9F3CE736F4F08E27303CAAA4CFAB9B3B1C035F2FFF9ED3B434CDCF63 + 737C240C4693CDFDC0407FC4AC0A71AF51F26F1D3DDDE21CC8657DAB6FEF476A + 4284E5236EED18A48FB24105BD84B892DC97932CE7D427E115605D5B37B66C10 + DB8DC101851AF3040F53AA19AC0E0F8648C07709FBBF01CD0D667F5D07CD44B8 + 4B28A62C0B5240F671268F15E86C8738D3D68BB447A32C93C49C4D396510F11F + 42F41A89E59ED0D7B6453EDFC772CEF665A6A6B616839F6FB3071E2C6DE5BC43 + 24C78BA1332CAC633F5C1940525C0426755AE47FF7338202D67984E40C644B43 + 7B0FB63E2CC6ACDEF679225F1EFE9A9846DAB16A8F90ACC0FD9FB670DA210C46 + 3D9E7E24066A727BA2422DB0890F44423DA3C3C0C824799CC3B9EB8358B93CDE + 2D242B706F5123A71D826A3025210AFA79FBB14AAD670A951663132A1C387DD6 + AD269D029DED104C0D2ECE7AC92A0C4F8EA1ACE96FDC131987D0D050CE48CE40 + B634FD24C3B68D6BA0D1CDB33E876AF7D90F2BC86D672D24B1F74360857086AC + AB3BE35983735A2D92C906F5FF6E754C0D5EECBB013F410CEE5D1D0B81C0C70E + E808C919C896FA4B7F20F5B1FF80D6A166F673F99FD1CD51382A14903E7244B2 + 02338FD712A587B642A15E185BD4E6ED6A832DBDDD0810C65B70E6B8826C6CAC + 6706661CAF21CA0F3D6301B2A5592AA31BB41E833A72E63F5F5069D3DCE27045 + B202771FFB96387524CD6983B31A3552121FB43438A737A0A0510A818F041162 + 09FC84EC5F12CC482A23C3371116166687E40C644B43DB75A46CB88F9EA95AFD + 1C769CF80226432C8D33C711924AD79F9D50AA8670577094DD3AE99506A99840 + 403A2227C75C820DCE1992C26974524802FDD0A9BE859015EB6D902DE79B9881 + 2FE65613656F6D875CE5B84173A8758E6A2E34329A715C3121291CF8BFE3F2FB + BBE99F98E3D36A62E3912F6D761CCEC0FCAA0B0E818D9D2ADC1DB60ECBEF08A6 + AF9D2117E3CC8F2F46B20277E65411A5D9E9E40B8CE092CB5DD7F04E4537BD95 + 8902573A440EF55D63C43121E523C3DC80CE1AA4A2D08DA2A347E410D9DF7D15 + 7C61272BCE1A99F45E15FC45C08F47B3EC81E9D995C4A99C17388F4173A4BD32 + D62629DCACA11D9D45AF39C42D0EE36F120A589CBD1353330B0D9EA86EE58C64 + 6AF2469F8C6E4E2CF447F507BB38E39C0247D5AE3568699204E556F6D0134733 + 354EE32AF6A623AFBCC63BC0ED6F9E244A7276B90DB446AEB85345E3FC8422BC + 5B5885AFF232960690295E057A556615AF009762FE016AD4DBDE55AD54DB0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E14944415478DACDD77B4C1B + 750007F06F29B430B2B069D8CCA2C5298C292B20828404C4B099CD57D4859885 + 2C33CE89C8669873D34CA26898CEB0CDB128C2D8706A50E2231264A26E1D1A21 + 015F0C04268F6E3CB716706D29F4DD72DE1D69EDD1BBF6475B33BEFFDC5D8FB6 + 1FBEF7BBDFEF2AA2280A4B392277A04824227AD3BE933F05F45FDDBE3A0ACF3F + 9A0C696888E0173A5D7E038FE53FE037F0AB5FFAA0D69ABC226F28F0DC9FC3D0 + 1B6D50696605913714F8FB801ADA19B30BF9EC430988944A395F1E14A0D5E1DF + 501C9B9C8686063A91C3F471E163891C6440C0972A2F50EF15E4C0689D638F5F + A9FC811857F6C21658AC361A6872435A69A49E830C2A70B15926098176D6C28B + 3C909B1638B0A8E23C555EB8C9EF0607547A28FE50C264B171CE5DD7197062F7 + 83810377977F477D50F4B0DF0D32612EF3C5CB53505D9F71BDD6D63D848ABD8F + 040FA8353AD8E3D74FFDE837F4C0F68D189FD0B2FB75E73BBC035FAEFE99E8B6 + 74D8EDC894CB60B13938AF47474520EDAEDBFC6B94FEAC431F2B7C0349E6B7D6 + 9E51646E90B9A699DFFE1E63B7EDFD93741B3AD86D566258E9739B5DFBCC9508 + 0AB0E5AF116425C6788C4166F01B0C66184C6624C6AE81344CBCA81683066CEE + 1C414EF27FC08E8171765BF4C9596826D62C0AC59765516AF4BE5F201204FA5A + 215ABB47394067B28AAB2015DF87840D72D76B92506E8B6271886B5FE861A6BE + A101439F3EE109DC57D54CBC4264C8D7C26C991F6B1707AE626B76023DE95A50 + F26533A222530342120385D27E698CBD8B0D16EEDF49434518F96706B987EB02 + 420A02F77EA8205A21EC361BB252D67934A8D2183178550BBD69068D1D4A44AF + 48F70B2908DC73A289688568EE18424ECA5A58EC9E639599CFD43A2394A3937E + 5F6E9F405F2B84D5664176CA7A4E830BB3253D9EBEDC9338F6CD10E262D32093 + C98891C440A1B4762AB131350EB316E1A64D5607B6BE5B432F3BC99027DD8330 + 37842F6463E3B7FF7F836DE3C32C6EFDDD49080B0BF1007A431203BD3598991C + EBB1163361C6A5B33906C78401B25B42A420B0E0680355B5FF71A8A7E79B6116 + 6FBE988D46DC7F6F3C3DCDCC3FCFF55E51BBCE2906FB11294977E19C590CB2A9 + E92C3F30FF683D55BDFF491750282D5D57B0891E83EE0D3273E253473EE234B7 + 30A44841E0AEC35F53A70FE6123598911C07AB7D1E689F13A14AF12BC242E4B8 + 335E8E7089F0438213C9E4DAF8186262623C90C4406F0D6625DDC18E37A3C58C + EDC73F83C39AC4E29CF18664D277A90B5ADD306E59B5CE639E0C4A834C1C761B + DA26D408A71F10DC71BE900C4E6F6A837C7938BAA6E7B07A650607A938F73D3F + F099D23AEAE46BDBA0D2913D7032772BD39C2C3681775CF121191CC49D68797B + 17FB13736A669ACA3EF83967C521061EA9BDE015D8D4A5C3AD31A95871D32AF6 + D8177221CE797E215210B8A3A496AA2ACEA3DF6003495AFA7AF0464D3FBB9449 + 97477B450E2B7B78717C48D5B57132A0AF0699A84D13F413B5D42BF2727F37C4 + 922E419C3B72F35BB58890D28BC1A1424F605EF119EA74C9D3C463D099B6C15E + C126199CC1DA8EAE132F7AC52D0CEF6F12065851BC039AD9F9068FD7351323F9 + 9A1C55F6B2CDC54B2250F7CE4E629C4FE0C4F4E21A743549834ACF0CB0378E5E + 33C5E26AF6E4A1ACBA3E38C06DAF9EA22A4B76FA0D7447AEBC59C7E2C22552BC + 595E8B2FCAF29706902F41050655E696A0009762FE05A74EE0DE45465CDE0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D94944415478DACDD77B4C1B + 750007F06FDBD1B29185CD653075C27030CCBA0ED0CDC544B3C547A66EBE96C5 + 2CC4CC881B229BD9C44D3389A282D3B04D218A3006620C118C0FC2A6A81BDB8C + 2C4133051B285206A31985D236F4C5A3F679DE1DB6E9B577D7EB2319DF7F7AD7 + 47EE73DFFBFDEE7715110481851C512050241209FA51C9E9CB319DD59AD464BC + B43317B24562CE03FA5C51034F156E8B1AF8CD6F839834DB7991371578FE2F0D + 6C732EE84C339CC89B0ABC3A3409F3F4BF7EE48B8FC9912493310E1E17A0D313 + DD501C33586122813EA486DC2F7E6223031913F0D5DA8BC447450F62CEE9A5F7 + 5FAFFD5930AEF2E547E170BA48A03D00E92491360632AEC048B3442A8679C6C1 + 8A3CBA7B73ECC043351788AAE287A36E70486743E79FC3B03B5C8CCFA62CB3A8 + 3EF048ECC003553F129F1E7A3CEA06A95097B977C408DDD4B4FFBDEEBE51D41C + DE113FA079CE43EFBF75E697A8A1479F7B085ABD99DE6EB9D0C30F7CADFE5741 + D392F07AB1212305AEA059BC626922B6E56640221176A28C465D1E547CD1191E + 28E4FED6376A808204FA6E33EA1B46B8BC04FE1818877ACC04B7CB291856BE7F + BB7F9BBA127101F68CE871F7DAD490FBE055B59E6CC20D93CD8EFB37A6439620 + 89A8C5B8037D936470CC48BFEEAFFB0E26FD6D11A1D8B2247912AA4F8A449CC0 + 702B44BFC6C000FAF240691D64927B21DFA0F0BF275DC46C512211FBB7B91E66 + DADADB31FAE5D3A1C092BA4B825708F99DABE0F6CE1F40ADD1A160E73D305A2D + 2869BA8CE4A44D31210503B9A2221BCC211B9C7530BF972413D3EBEC93C75B63 + 4272020F7FD6297885606B70C23883DEEB0658C865EC6C8F0A2B976D890AC909 + 3C58DD216885E81D36202F33050E77E858A5EE6723E32668CD5378AFB52BAA26 + C302C3AD106E970B39D97760F6FF13D1680D21DFD9B5558E7FB41338F5FD28B2 + 3237232D2D4D305230902BAAEBE3E425BE1D1E9ED9EE26579B1D150D8027178A + 9C3C240420C221CF9D3B1B7B83F2AC34F2127B381BECD66A68DC5DEB73909020 + 0E01F2210503B9D23BA445DEBAD5F4780B0E352E777DD8E8C751A180F4AB4024 + 27B0E8643B5177E4294C5AE7D7526AF1668BD3E580226B0D6B839DD7D448926E + F1E37C8904D9D1F1033BB0F0641B517FE4193F902B03A3BA9006A97BE2B3273E + 6734171CA1484EE0BE0FBE251A8EED8EB841EAC9B8B55B8904B1026BB3154894 + 723F24F8905426B463484F4F0F410A06F235B83EE3567ABCB9C9994C35E771E6 + D0385FF89054060794305B345895B22EE43E199706A978C94B7C657C0C89E403 + 42202E1C92C2D9ECDD50900FB84AAB17A9CBEF63203BCFFFC40E7CA1BC8538FD + E61EE82CC21E38A9D94A35979629671D576C480A07C9DFE87A7F1FFD17D3386D + 25B61EFB8AB1E208069E68BEC80BEC505AB03A7D1396DD9242EF874306E37C9F + 072339817BCB9A89BAD27CF2072E0849D7603FDE6E54D34B996CE94A5EA466B8 + 9F15C786D44D688501C3354865D2AE47CF908C1739A2EE8344AAE4C40522B7BF + DB8CC532E04A45712830BFB48968287B5EF018F4A5FB9A8AB3490A37EBFC1DCA + EA577871C161FD4F42016B4AF7C23433DFE0C72D970423D99ABC31ACA29BCB96 + 2E46CBF18288FE8BF202F5D6C81AF4374982CA9B86E889633319695CE3C17C54 + D6B7C507B8E78D33446D5941D4C040E4F215161A972895E19DAA667C5D59B830 + 806C892B30AEB280C405B810F31FD47BDFDE8F995F4C0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'MoveLocal_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004B14944415478DACDD77D5014 + 651C07F0EF71708732F26202820919964D7461A539D5343559636AEF638CC334 + 3A9921818D2F698D3145055183663045BC08D934243535436851299A690DCD58 + 0483109C10A71077E7E1BDF172706FDB3DCBDC762FBB77CFBD38F2E50F76F7B8 + D90FDFDB7D7E7B228661309B2372058A4422AA37EDAEF939A4FFEA86E4386C7B + 6C39A49111822774BA82067E90FB60D0C0AFCFF442A533F9445E53E0F13F1530 + 4E5AA0D48E0B22AF29F09C5C05DDD814877C616D2662A452B793870568B60577 + 290E5D3640EB003A910AC77EFEE3B7BB214302EEAA3AC91CCC7B0893663BBBFF + 6AD58FD4B8B2971EC5B4D9E2009A5C906607D2E8860C2B30D0CC954440373ECD + 8BDCBB6165E8C01D952798F2FC87836E50AE34A2F58F7E98A62D6EAF5DD14FA0 + A2E091D08105E5DF331FEF5817748324E463FE6B4003E59531EE585BD7202A77 + AE0F1F50376963F7DF38F453D0D0BDCFADC6B05AC76E379E68F70D7CA5F634D5 + 6DC9D8ED484D8CF53A9E921083D57765401A250EBC518B0D259FB5FA07D2AC6F + 034A3D3252E2DDF6494E775C44D7A006568B991A56FCE21A6E9B7C1261057AAE + 83E7FAD498304D41633005D5E4550392859724FBE01168D5A901A1F832374E85 + EE8FF24482407F13828008D0F32EBEBFB01A52F1DDC8BC4DC61D9344BAB72816 + 4770DB420F334DCDCD18FCFC296FE0EEEA53D4136271521CCCCCCCC9D41A1D76 + 65DFEB58328CD856D382B898152121A98142B9383A868CE458583D9A8E148BD8 + 769F28FD3224A42070E727ADD413C2B3C18267EF83F2B21EBFF58C40EF186347 + DBBB9118BF2A28A420707B450BD584F84765C08D0BE3306DE5B956ED56F45CD2 + 41A1D2A1B4E997A09AF40BA49910C98909DC3669D0339BD7DE89EE2125DEF9E2 + 6FDCB47425D2D2D2A891D440A1FC3B6AC4A205B13EFF864C86F52575806D3964 + 597720CA05E10F79ECD8D1ABDF60DBB082C5DD726B16A2A222BC80BE90D440A1 + 0C2A47B12465012C3CEBA5C96CC333EFD773381202647F5322058179079A99EA + 3D4F42659899A5647807DA60EB853EC448567138670241B6B47CC70FCC3DD0C4 + D4EE799A030A6548AD651BB4DAFFBFDB27A6EDC8DEFFA95B739EA1450A02B7BE + F70D53B76F83DF06AD160B16A52671FB532613BEED90232A42868C6532444B84 + 1F129C489291E121A4A7A77B21A981BE1A5C9C3CDFAD399B398BC539E30B49D2 + DBD3099D5E818549377BAD93616990C4EEF839A35020DAF180E08AF3872438A3 + A90DB279D1E834D8919C708F1BB2F5F80FFCC0E78B1B999AD73742A9A77BE024 + 772B692E6D6926EF75C5872438883B70F6DDADEC574CCD98817960DF11B78943 + 0DDCDF70D227B0A5538FEBD357207EFECCF5E80FE98973BEEE8914046E2A6A60 + AA0B731C6FB08026677BCFE3CDFA3E769449E725FA442AFACFF3E2F890CA9161 + 3AA0BF0649542635DAE5529FC881BE2E88259D823857E49AB71B30470AFC5A92 + EF0DCC293CCCD4156DA6BE069D69BBD02DD824C14D987F4767C5CB3E719EE1FD + 4E428095859BA01D9F69F0C3C653D448BE262FF577B3CD2D93CC4163E9166A9C + 5FA0DA1058835C930E50F161397BE318B51A1657BF3D0765B54DE1016E7CED10 + 5355B42568A02B32E13A3D8B8B9648F1567903BE2ACB9D1D40BE84151856994B + C2029C8DF90F300DB9DE39DDDE2B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A74944415478DACDD77B4C5B + 550006F0AF14DA32E83A58B6A93160E214232233D95C887F6874CBD4A9736631 + 0BD1A97322B299CDB9A9888A0A4E0353218A30069B3144349A209BABBA756836 + 137C0D57B74E60209D74B488F44569E9F3DA7349AF7DDCDB9E3E96F1FDC33DB7 + 69EE8FAFE7DC73AF886118CCE5888281229188EA4B3BF77D9FD47F75CD12059E + BE6F19A4E96982170CB81206BE5B7647C2C02F4EF4C3607244455E56E0D1535A + 58ED6EE88D3641E46505FE3A6880696A86433E794F21B2A4D2908BA704E8F226 + 361547FFB1C0E80706905AFFB8E2FE9B439049019F6B3ECEBC577E27EC2E1F3B + 7EA1F95B6A5CDD3377C3E972FB818E20A4CB8FB48620530A8C37F3246930D99C + BCC8DD1B56240FDCDE748C69A858957083837A2B54BF0DC1E174877C36699E46 + E3D6D5C903B7361C613EDC7E6FC20D92909FF9F7E109E827A7B873BD6746D0B4 + 636DEA8026BB971DBFBAFFBB84A1BB1FB90BBA71137BDC79AC2F3AF0F9D61FA8 + 9625E3F321677E26BC61ABF8CA8572ACBBAD00D20C71FC8DBABDA8FD58151B48 + 737F23133C275B1A322651FEF2174E0DEAE172CE50C36A9E5AC31D935FE29200 + 03E9397D01F6190F2E1AED0935993220B935E4CA65DC8DDA669F6D70F59B0760 + 1CBF2A2E145FE6290CD07C502E1204C6DA218C363772B33322CE97BCD40CA9F8 + 5614DE54C49D93A487B62816A771C7420F335DDDDD18F9E4C148E0CE961EEA1D + 42912DE38E2DB619BCF2F82A8CFD6BC2A30D5D50642D4F0A490D148AD5E1611B + F484354D768861BD190FECF92C29A42070C7472AEA1D823438E39DBD88D36167 + 1B1CBE6844EF9F3AFFCDD786437D1A2C5AB03221A420705BA3926A87200DCECF + 4C87D3C333577D1EFC716112238671D47FF573424DC604D2EC10E10D86A77C7D + 0934A363A86C57E3BAA52B909797478DA4060A4568150787EC0C6B6BDB00EF32 + 1415DF828C20442CE4E1C3872E7D83BD3A2D8BBBE1C6626464A44500A321A981 + 820D5AA690AB90C76C8EE0480890FD4B89140496EFED665A76AD83C1E262C764 + F38EB741D5F90164495672B840E2412A955FF303CBF67631ADBBD67340A14CDB + ED906767C3E7FB7FB59315FDD03BED21CD8587162908DCF2F6974C5BE586B81B + 84C78123E7FA21F36F73D716144126117E48082049C674A3C8CFCF8F40520385 + 629A7620272B73B64DA70F0FD71F80D755CCE202898624E93FA786C9ACC5158B + AF8FB84FA6A4411297DB89135A2DD75C788490046775F4A2C8FF44A4B6F8B024 + A72404A93AFA0D3FF0899A4E66DFCB1BA137476F301032E74873794B0B79E715 + 1F92E0203E8D936F6D615F3127A62CCCED959F86EC38D4C0FA8EE351814AB519 + 57E72FC782DCC5EC3816321C17F83C1C2908DC54DDC1B45495FABFE0064D4EF6 + 9FC56BED03EC5626952F8A8AD40E9DE5C5F121F5633A3A60AC06490C8E71F40D + 4AA3228707CE402C510BE282916BDEE840A6FF6DE2C7DA8A486069D541A6ADFA + 31EA391848EF798D60930437EDFA09EAC667A3E2C2C3FB4E42804D559BD88701 + 92F73B7BA8917C4DFE3DA4619B2B9064A273CF666A5C4CE0B825BE06B926FDA0 + 9A8383ECC2B11A27585CFBB652D4B576A506B8F1C5FD4C73F5E68481C1C89C85 + 6616279348F17A43073EAF2B9B1B40BEA4149852595052029C8BF90F0AFAB3DE + B06F884B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_11_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004054944415478DACDD77D4C13 + 671C07F06FA9F45034E08C3ACD02263A5DC6108D3AE35F1A75F1FD35FE618871 + 997388A8F11537251B1A705BF00DA2082204B3A0C4B88530956D58D9321731BE + 370A42855895D856425BCA4BA5B59E7D6EB9A62F77EDD3BB23F2FDA7F7DCE5D2 + 4FBF77BD5FAB62591603392A5FA04AA5A23A69D7E9BF657DAA71A3E3B069E914 + 3083A244DF907749061E4D9B231978F1DF2698AC8E90C8F70AACBD6B80BDD705 + A3A55B14F95E81B7F52658BB5E7B915F2F4A422CC3F8BDB92240A75BDAADF8E2 + 55272C1E208F3478D619CB26FB21650177165D638FA5CF45AFF32DB7DE5BF427 + 352E6FF342F4395D1EA0C307E9F420ED7E484581916688260AD6EE3E4164E69A + 19F281DB0BAFB2F919F32537A837DAA1BDD302479FCBEF5887AD07055BBE900F + DC927F853DB97DB1E40649C865BEDFDA0E634797775FFDC3A728DCB14439A0B5 + D7CDADBF3FF3976468E6BA7968335BB9EDCAABF742037797FC236B428C193114 + EBE64F0613AD8EBC51971BB967B5E181729E6FE7EA1EE3AEDE0867DF6BEA7372 + BE59E0DD2657A25F81FC8420CF35294DF63B705AE62958CC63259FCF67489C09 + 0D27D255A240A91362D6774560D49F23E9B364EF3ECD20FF16D5EA28EFB6D88F + 99AAEA6A3CFD6565307057719DAC0961B4766079EE6F888B9D2E0B490D8CF8D2 + 782644ABB95D365214B8E39456910961E9E9C2C51B8D18193F53125214B8B5A0 + 46B109D1FCFC154ED6DE92D46458A05213E276E333EC2DBF838F27CC40424202 + 35921A282764322CC92D05DC53909C3215D13E8870C84B977EEFFF06EBDB0C1C + EE934F53101D1D15040C85A406CA6D8EE04808907BA5448A02D38F54B3C57B56 + C0D4E9E4D66478471AED9366C46A667A717C2241D6D45C1606A61DA9624BF6AC + F202236AEE0D8BD53F97F93517185AA42870E34FBFB2A5FBD6486A903417E319 + 73E32725234623FE23814792BC6C7B81C4C4C42024353092E6DCCE140EC72714 + 92A4A95107ABCD800F474D0C7A4E2ADAA06F73811143129CDD518FE46131D075 + BEC5E8E1B3FC90DADA3F84815FE554B2A7F7AF85D146D720DF5CC28424C1FB4A + 084970503FC0F5431BB9BF98ED5D9DECEC7DE7FD260E35F070C5B590C01A9D0D + 1F254E47FC07A3B8753864208E3F1E881405AECFAE608BB3523D27B84093EB4D + 8FF043593337CA98612343220D2D8F04714248E3CB363A60B806494C0E33EEE9 + 9990C8D6E687506B74A2385FE482831518CC00FFE566040353B3CAD9D2EC2FA9 + EF413EF54F1A449B24B81EE74DE80AB685C40546F03F09011666AD87A5FBFF06 + 8F57D65123859A7CDED2C03537493318953F6EA0C685059A254C12AE490F28A7 + 5CCF7D71EC96760E57B63515792555CA00D77E7B862DCADE2019E88B1C3EC2C6 + E162340C0EE457E0425EDAC0000A4551A0A2329F28021C887907219F60DE6AA2 + 10E80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_12_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000040E4944415478DACDD77F4C94 + 751C07F0F7DDC13D286360CD1F6B0DDA426D22629BE6FCAB521C19E1AFB9E698 + B369468836CDC4664CA981DA901256C86F690DA3968D1145A50735ADCE56594C + 314198275CDC5DC41D1C3FCE7B8EE3E9BE4FDDB3BBE39EE79E1F47F0FE87E779 + EED8BDEE7DCFF3F93E8F8A6118CCE6A802812A952AE43F1DAEFC56D1B77A6461 + 2C5E7E6E25A80835EF87795DB281EF643D251BF8E995DB30DB1C82C819055EFA + D500FBB80B26EB282F7246813F7799611BB9CF215FDC9884688AF2FBE0B00069 + B7BC53B1EFAF61583D402FD2E0D9CFC958E18754047CB5BC9579377B1DC6E949 + 76FF68F9D7A27145FB9E81937679800E1F24ED41DAFD9061054ACD5CAD1AB651 + 675064EEF6D5CA8107CB2E332539A9B21BEC32D9A1FBA51B0EA7CBEFB5C1A131 + 94EEDFA01CB8BFE44BE6FD83CFCA6E9084FCCCBFF50CC03438C21DD3DFB88BB2 + 43E9C2C0D7AABE53348499C949D0CEFBA2DF9FBB733D8C161BBBDD70F9BA38A0 + 921172A1ED0F986C63D899BA0254A4467CA32E370A3FD04D3FD03B847FECE813 + D564C14B69DCF6F1EA6FA61FE83B84C97C93D2A424A09C21BC2EBF1C7FF63E24 + FBCB793337D68C8EF7B2554181872BDA640F61BDD1004AF30492962773C7B411 + FEED69346A6E9BEF66A6B1A909773FDC220E2825D6313BD24E7C8CD8E8558A90 + 82C043E7748A86F04F3D46649536637EDC1AD94841E081D216C543D83468C7A6 + 53F29B1405B48DBBD97D7265C909ED72E2877B165948494025E9B7FD8D8CE3AD + 589CB81AF1F1F1A291FF4B8324E4AA867B2592531E47A40F2214B2B9F9F3E96D + 902C5BE985352CEEB16529888C544F010A210581D9C54D4CC591CD300FD3EC3E + 591FA54677A713D1DA352C8E8400D9BF229182C0ACE246A6EAC8560E28A9B909 + 06DBDEAEE59AF38D14644BCB17FCC0BDA72F3235C7B6CB6A30B0B9C088454A02 + 4A69CE4DA7E0D1A5C988D2F2DF1C789124FDC63E2424244C4186BD41D25C9467 + 0D26386F849024B76FB5C33664C0A2054BA6CC4941E0EE8206A6F28D1D300D85 + 6E70C273C7F3FC99F35C7381E143129CDDA147724C14DA8727B170DE5A3FA4EE + D257E28167EA5B4336179F9814F4BC0A862438687EC7D5937BD947CC819161E6 + C9631FF9AD3882C05DF9F54C455E2606465C0895A7733FC3C309AB10F7C00276 + 3F143210E77D3D10290928D4A0D961C1F52E8A5DCAA898F9824843F7CDA0B860 + 4853BF911F989957C7D4E4BF20EA1C24D1DFE9C089DA4E41644FE70D8CD1D7D0 + 5EFA4A509C2F32EDAD7ACCA180EF0B73F8816579BB601DFDB7C1B30D6D219142 + 4D129C46DB8EA5DA396838B527F443F77FE17D26F1022D1257127D77070AEABA + FC90BD9E6304577B201345558DE101EE78BD9A29CFDF2319E88B24178EDD3AC0 + E1A2B414DE2CA9C7274559330BF445CE7B7088C3918415284B26226101CEB6CC + 7AE03F050958DEE307E29E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_13_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004114944415478DAEDD87B4C13 + 770007F06F29BD439941B7882E5960CB9C2EB28A4B7C647F2C5BD4854DF7D218 + 638871993A4474F1317571C4A1011F41B7493606224C6350342E21A841A71597 + 3DE40F9F8DA25231E220B4C8E80BA4B6B59CF73B73CD5DE93DDB817FECFB0FF7 + 68D30FDFFEEEF7BBAB8161183CCB3144031A0C06D937ADDB7B3EA6FFEAE53129 + 58FEE164D08909921FC4BB7403BFCB795737F0D81FB7E170F96491430A3C73B9 + 15DEBE20ECCE5E49E490022FDA1C70F53C0A23977E9081649A167D685C808190 + BEA1D8F6C003270BE491ADEC7EDE479344C898806BCBCE31DFE7CE405FA09FDB + DF58765A35AE78C5FBF007822CD027400658A457848C2B506B86530970F5FAA3 + 2237CC9F1A3B7075E959664FDE2CDD0DDAEC5E582EB5C0E70F8ACE75BB1FA264 + E57BCAC0AF2A7E8F699E7BF185E7B034CB0C9A3249BE867CCD57EF76C1DEDD13 + 3ED678FD1E4AD7CC51078CE52A3DD4700B976D7604FC8F145FBB61D14CB477BA + B8ED9AB3570607C8CF73E4EA5C346B12689351F13DFE600845072C830314CE73 + 179ADA649B2CFC222BBCBD79DF6FDA80F19CE7D434A91AB8AEBC41D73C67B9D3 + 0CBFF715DDCDF3199EE240D38FB906D540B5793BBF1CB4711A32DE30878F5189 + E2D68CC684F0B6D4CD4C6D5D1DEE1DFC541AB8E6678BAE792E10F4E3EFFB9D48 + 499E12135211B8AAA49EF969F56C5D2B45578F07B3B71C8D09A91AE8EA0B71FB + 64F06A0969F27C4B07468F9CAE0BA919A8274E4F0F3EDE7E445793FF7983C226 + 2D377D786DDC54A4A5A5A9460E4A836465985354098426C39CF9264C028412F2 + C489E3F2C0DCDD754CF9FA4FE0F004B87DB204690D991393A9E9787D62264CA6 + 84014039A4223067772D53B17E6E18A8A9B9C70CE6EDACE29A23381202E4FEAA + 442A0297EDF895A9DC345F5783C2E684D182ACAF3FA90DA8B7B9C8A8456A06AA + 69903497C42E73AF4E30238992BE29E091241DED6D484F4F1F8054047E5E58C3 + ECFD6621EC6EE5061FB3773C0B76FD82502093C3F1914392DCBE6985CBDD8AB1 + A9E307CC939A81BBAACFA96A2E32524882F3FA1A611E9104ABA71F6346BD2542 + 5ACE9C92072E2EA866CAF3B3D9753508B99031479A4B1B9711755C4543121C8C + D7F0E7B665DC2326BB7633EF6C3A2C5A713403A51AACB7BAF152FA148C7C3E95 + DB574246E2F8F39148456076FE7EA6B2E033C531D878A709DF5635734B193D62 + B42CB2B5E506F7B55A4BBE1CF0334724D2DED1AE0C2CCD5F0C67EFD3067FA869 + 90443A7C9DB862A36591779BAFC3485931811A869AED4B241FBA09326B6B3586 + D1C05F4579CAC04E95F360634B130AF7DBA222795CD5AA6C1457D4CA0285917D + 2659F8F53EA6AC60896AA014F21FF6188F4BA2686CD9538DA3C53943031422C9 + 85E3757689702471056A9209E2EA77C3D69D8A44FA5F6E9EA30C94E87C5C80CF + 52FE07C69A27F7005ADE27066CA80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_14_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004264944415478DAEDD86D6C13 + 650007F07F577A3798644032306A3613510CB30C2348FC60340A4EC11724C490 + 65C10863CE891111545C74E810CD406051DC1820860C2781B84CCC54289B51E3 + 4C54B4191318232C74AE9DCBFAB697D22BEDE3DD996BEED6DEDD73D70EF8E0FF + CBEEAED7DDAFFFDE3DF75C2D84105CCFB1A8012D168BEA9BD6EF694BE953DD3A + 231BCF3F3E17EC840CD583482ED3C00F4B1F340D3CF2C359787C214DE435051E + FFBD07C1D108DCDE6155E43505FEDAE5816FE8721CB9FAB17C64B1ACE2806901 + 725173A7A2EB9F00BC3C5042F6F0EBE54FCC51205302BE527B92EC287B08A35C + 4C5C7FADF65B6A5CF50B8F22CC4578604886E4786450814C2BD068263119F00D + 879322372E9F4F077CB5FEFB948612128B810B5F4EDA60973B08C76FDD088523 + 8AD706FD23A87971113D30950BE150EB19B87D23585D6807CBD8125E17BEE63F + 2E0CC03D3814DFD6DE7111BBD72DB93A406928F9B9D395B449291B8B1F466FBF + 4F5C6E3C71EAEA01E543897095162F9C03D66655DD3F1C8962CB670EE3C0740D + 256A4D56AD298C2FBFB5F73B7AE0FABAD6B40F25675C8358B3E41ED5265302D2 + E49177EBF0F7A59B4C352ECFA46C0F3A3F2AB36802D77DE220BBCA171A6AD071 + FE1CA6DD703FF2EFB2C7B73113946D59AD19F165B5C94C5373332E1E5CAA0D5C + 5BD3423E7E79B1A10607860258BCF930B2B3E6A5843404F48D46C575E1FCA009 + 1709A3ADBB0F39531698469A021A8937308427B77E61BAC9716D301D4D8E7B83 + 525CDE012C7DBB15B7CF9C8FDCDC5C6A2415B06C7B33A9DBF0143C014E5C1746 + 79A311AEEA2C6601EC0577C32643E8218F1DFB4A1F58BABD89D46F783A0E3492 + F01582651FEC07A27371E7EC02D86C1909402D2415B0E4FDA364DFA6E5A61A94 + 9A13704204A0F89712690A68A639798C205B5ABE1E9F06C7363736B4482AE073 + 558D64CF9B2BE0F6EB3778859FF13CB3ED5344B902DC36CB8E4C467D5A252185 + F4F5BA90979797803405DCD67052B3B94CEBBD224E8A1652C8D9BF9CF0F97B70 + E3F43B12C6492AE0CACA06525751C4DF5F23AA0719E5E777C53B0FC59B1B1B35 + A4800B86DA619F9C096720861953EF53201DC7BF310E4CD6A0D45CEECCFCA4E7 + 5532A48083F54FFCF85E89F888C94F30C8039B3E57DC16A980451507C8BECA67 + 35CFC1456F7C895BF2E661CAB4E9E2BA1E526ACE59F392E2217D2C921AB8BB62 + 25BCC3FF35B8B3B135611F4FA81FA7BA58F156C64ECED144F6749F169B9BC54C + 44E3D65509732C39D2DDD74B0FECD71907DBBB3B5175A04B1379E15C07AC8C13 + FBD716A1BABE2929504216BED380892CF0D396726DE08AD7F792DACA55BA403D + A41C97C9B0D8BCAB0187AB4B2D7AFF53F799C408500D7989DF26C709492B904A + 268B2FE6C7F9C19BC50B27C84FB546B85FC4A184B1308AFDD202D4FAF1482B27 + 3A9CA474C769E4E4F8D1565592F0BB1F6D7481D74BFE07A69A7F01C49C6ADEC8 + 0952DE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_15_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000041C4944415478DAEDD86D4C13 + 670007F07FA9BDE2884197A04BB680CB989AB18A4B54B20FCBCCA661EF73C618 + 438866BE20632C734CB73062D88273069D4A94F1A24EB3A0685C4250C39C5658 + DC2226EAB606F105319241288ED057A0F66AB9DD734B2F7DDA5EFBDCB5281FFC + 7FE9DDF549FABB7F9FE7EE5A9D200898C8D14503EA74BA88C74BEADAE23AAB99 + 3352B1E19D79304E4AD2298D09B83403BF2F58A41978E2C24D0CD83D51918F14 + 78F66A0F5CA33E586DC38AC8470ABCDC3500BBFBBE8C5CFB6616528C46EAC312 + 02E4FDDAA662EFBF4ED8446000D923EE17BD3B9742C605FCACE6BCB0ABF0358C + F263D2FE1735679871951FBD012FEF13819E20242F225D149209F879FD6F71AF + D6FC2573C539469FE8135C12ECC3DE88C8CDCB17A803C633D78EB4DEC0D52E2B + 78EF7DAAC12EAB0BE62BDDF0787DD4F821C708AA3E5EF2F08081D54AE6D8DA5C + 138C9C417E8F7CCD7FDD198475C82D1F6BEFB88BEA8D6F3F3C60F06ABDD8D94B + 3519C8E6FCD7D177CF2E6D379EFB531B3091AB357FB138270DFAB0B15E9F1F5B + 0F9BD5014B6A5B13BE5A2F76F6514D56ACCF95B7B7ECFF353EA0DA28ADD61BBD + 43285EBA306CBC6AE0C61FCCC29EA2C5CC0D9A6FDF82D7F5ACA693A14E2C7500 + 9D7B0B753181C5552DC2BE4FDF626EF095B25A18F50B91F5A2493EC64DA2E79B + 5E9F246F2B3DCC343537E3EE4F4BD981F651BFFC15440BEFF3A2ADBB1F695373 + E2426A06B2C4E674E3BD6DC7909A325F3372DC1A4C5493E3DA60229A640616EE + 6C166A37BD8F01272FED930BA99A9026CDD73D783E7301D2D3D39991CCC0829D + 4D42FDA60F64A09A781F0858B6FD20E09F0753F64B30042162214F9D3AC9065C + F7DDCFC281D2E59A1A24D7C4142E07735EC886C19014068C86D40C54DB1CC191 + 10A0F4CA881CD706839B0B8E1A644BCB6936E087158D42DD572B6175C46EF081 + F8C4B362C78F5473A161456A06EE68381FB5B964F136F7DC6C139239BDE2B800 + 92A4BFAF17191919614866E0AAF206A1B62C0F836E9FE29851F1D1297FF711F8 + F96C0917483424C9CDEB16D81D3D786AFAACB0EBA46660A406839B0B8D1292E0 + 5C9E7698A624C3E21CC38C692F5348F3D95FD8807965878403E5AB15E7209973 + A4B9F4CCAC88F32A123280B3547D22FDC41C743B85574B8F52771C55C0EAB255 + B00DFFDFE0EEC656EAFD168B03CF64CCC7D427A74BFBB1900407FDDF98CD4D46 + E3B635F2CD3714A91A784FE13AD8DEDD898A435DD2ADCC38252D2AB2A7FB9A84 + 3B589C87CAFA260A188AB4F6F7B101577EB95FA8295FA3086445DEB9D5013D67 + 9170C99C115FEF69C0F1CA82B0074182CCFDA601938DC01F5B8B12038C850CC5 + 91280183C3F49B8400C118FB9803B7879EA690FF88F011FE92B45A391D478D4F + 0850E9CF23A59CEBB00805BBAE490BC7651B949AFBFDDB75617FADB1645C80C1 + C8B43407DA2AB4E1988113218F81F1E63FEED475DE69ADC5F60000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_16_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004214944415478DAEDD87D6C13 + 651C07F0EFADF43A9C644832306A3613510CB30C1390F887F115A7A828642164 + 591001E79C2412040D2E66EA00CD405EA2C81820C60C86D1649998A95036A3C4 + 99F8BA8C298C12966DAEC3B9BE8E8D5ED73EDE73E42EBDF6AEBDE7AE30FFF0FB + 4FFB5C9EA69F7E7BBFEBA51C2104FFE570E9801CC7251D5BBFAFCDD2A7BA7546 + 2E5E78722E1C93B238BD3DB2CB34F0BDF2074C033FFBEE0C067D632991130A3C + FE4B0F82A31178BC23BAC80905FED43D085FE8B2825CFD7821721C0ED51B6504 + 2844CD9D8A7D7F07E0158132B2475C573E354785340C7CA5FE5B4B0341623108 + E1CBCABAF6C5C710162222702C0E2988C8A00AC904B4F2751E6EFD5382942D9C + 239E6B570ABA8ECF826F24AC89DC5832FFDA02E581F8A1AB4F6A9236D8ED09C2 + F5B31B63E1886AEFB0FF1276BFB4F0DA02E307829E6BAB8B9D70F076E96BFEED + FC103CC321656F7BE705EC59F7843960A606426E52CEC6B287D17FD1273D6F3C + F12B3B707D5D2BD951F110468598B47E75EFD786717A03E1F6F8B1B258BCFED9 + 6DCADE70248ACD1FBBAC0359A33710A73A7B311E1150F37CB1B2F78DFDDFB003 + D77DE822BB2A1F31DD60AA81A85EF9A0EA9829E0DADD2DE4839717196AF0D1B7 + EBF057EF4DA69A56B59E3B88AEF72B3826A06F34AA7C4ABDB8CE9DC5B4EBEF43 + E15D4EE5183FC9A6DA63B36529CFF56E669A9A9B71E19367CC0153C51B0861F1 + D6A3C8CD996709690998AA411A2112469B7B0079531798465EB50633D52413B0 + 627B33A9DBF034060382B4A6D72A23B1D22413B07C7B13A9DFB04401B264E01F + 1F4AB69CC4ED33E7233F3FDF309209B8E69DCFC9814D25CC0DD2D0A9CEE117C0 + 597437EC718874C863C7BE300F3492F038C1D2770F02D1B9B8737611ECF6AC24 + 602AA425A09106E5E6288E8602A547834826E073358D64DFEBCBE1F1A76F705C + BCE359B6ED23A5B9F8B0205B5ABE340FDCD670D2707389318A6402AEA86E2075 + 55A5180A4574F78C8AF777653B0F232A14E1B6594E64F336DDBD329266A0BF0F + 05050549484B40AD066973D9B67B249C9C54489A337F74C0E7EFC18DD3EF48BA + 4E32014BAB0E9103D5CF6A9E83C27858D55C62F49014171C6B87734A363A0231 + CCB8E15E15D275FC2B36E09EAA15F08E5C697067636B5273F9330B35CF2B2D24 + C5C1F63B66F193D1B8751537140A90FB371D51FD2C9A025ED4B80E2EAA6AC22D + 05F33075DA74699D0E29E30EAE2D456D7D9304A4C713914CC0E5AFED277BAB57 + 6902DBDD5DA839D42DFD9439A6E4A544F6B84F2BB86CDE81377735E0D3DA72E5 + 0E211EE919E8CF0CD028F2FCD94ED8F80E054793089491C56F3560B2B8E5D4E6 + 4AE340A4892FE6C7B9E19B3591147749F8511A089EE355AF4B04C6C7D29F475A + 39D1D941CA779C56217BC5766973DF6F5993F4EF55BA641C188FA48313F40E99 + C65D35603C322FCF8FB61A733826E044E77FA0D5FC0B02577BDEF8BB57210000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_17_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000041C4944415478DAEDD87D4C13 + 671C07F0EF71D022C4A026E8A20BB8CCCD45045CE24BCCFE98DB304EF7E61C59 + 0C125FA6630C4934BE8611D32DB8B9A043DDE604D4B12C38B66C09612EB86985 + 655BE692CD0D82A022C6460845495F68817A57EAEDEECC3577ED5DB97B0E647F + ECFB0F7DE893F6D36F7FBDBB1CC5711CFECBA1F400298A52AC7754359BFA54B3 + 67A4E0AD1717C01A1F4769ED915CC4C08F0A961103BFFDE52AFA3C8198C80905 + 9EBBE4806F3808A77B501339A1C03F3BFBE0F1DF0D2337AFCC40B2D5AA781343 + C09DD53F9B9EB9CD2BB3114FDF3774DF19809B074A4807BF2E7A294B81340C34 + D3D8E9A62BB8D4E904CBDC45F9DBCF8361833C302043B23CD2A7403E50A07CE6 + F29767616A120DCF20A38ADC9DBBE8C1032367EEA9F933D1D4D28D001354EC73 + 79877074EB7272201B221B45B599CBCFC94287E30E9C2E7F78DFC5B69B38B6FD + 05E3C01D954D5C45E1B31866EF89EB3DC77FD48DD39AB9DFDB7BC499DC9DFF1C + 7A6E7BC4BD75E7FF1E1BA0D12459E25467EE4AB70BC5AB178B7B986008FBBFB0 + 9301B77F66E78E14E51037D8E9F4C1FE5797EACCD9363E135EEF3BF11319B0F8 + 6823F7E9B655C40D8A0DF15FF33F37FAA366AEECCD156307F40C87C22FA416FB + F56B607C8F107F082949297D68FFA49022066A25C756052BBD1819F333C3FFB3 + C4D38A3D341D177EAC753153DFD0809B5FAE26076A35C806193477F52275CA12 + 5348D3C058710FF8F1F2075F2325792131D230B0F0500357B9EB15F40DB0E25A + 381CC48AD9260D030B0ED573D5BB5E0D03F5C4331440EE813AA2260D03B71CF8 + 8E3B5992ABBB417993F68E001E9BB308696969BA91A6817AC28C7058F3E12920 + B40099D94F224186180D79E6CCF7E3DFA0704C4CB62CC113F3B291901017058C + 85340CDC5456C755BDB3164EEFE80D8EF0573CAF1FFC5C6C4EC0091180E25F9D + 48D3C083B5177435278F116463E30FC680EB6DB55C65691EFAFD41CD3DC3FCA5 + 53FEE1D38AE622A317691AA8D6A0D05C227F9A7B746E26122DB4E66B494821BD + 3DDD484F4F8F421A06E695D670276D1B5467901D61C4E6426CB68893120B29E4 + 6A472B3C5E071E9AFE78D471920878AC743DDC83F71B3C5CD7A4DA5C64B49002 + 0E740B66275068718D60C6D4A50AA4FDDC5932E0ED88E3E0BA8A1AB1B9B43919 + AA73A5869470A78AF3505E5D8F8F4B5EC3D3255F29CE3886816BF79EE08EDBDE + 8802AE2AADC7C3E90B3165DA74713D1A528E4BB458F1EE915A7C535E40F5FB07 + 383972CC8017BBDA5156D3299ECAAC935363221D5D971538211250782C473A7B + 7B8C03B59EF3DCF3E2BA6B564CE48D6B6D1862FF40E6E44458288BE239092821 + 57BC578B49BCFFB7FD45FA8191378F2273BEAD952BA8B8AC8A1470B4A515BFBE + BF25EA0651AC98BABBA517798B1F0112DCB800E548E187E373F713E3C60D2847 + A6A67AD15C4686330C9CC8FC0F349B7F01D5296DDE3B7520000000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_18_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000040F4944415478DAEDD87B4C13 + 770007F0EF516951343013D46C0BB8CCC7328660E223FEB1CCB919A79BAF041F + 61C6A928229A689CCE283168F091F800DD7082EF18148D1AC25CD8A6151635E1 + 0F9F0414518C8D20C521BDD2424BAFD65B7FB7F572D7E7F57705F7C7BEFFF41E + BF349F7E7FF7BB6B8EE1791EFFE5304A810CC388DBEB4BAA55FDAAE143E3B0F2 + 9B34E8FA453181C6785CD4C0FD5993A98117AE3F421B6B0F8A7CABC02B770CB0 + D89C309ABA0222C3067E7FE44FD5D39A393D1503B451B8F5B80DACB54744664E + 4F46AC4E27435201D5B476A6AA0126378A208D1D1661DB8334FCD5899C996364 + C83E074AA775DEE46474DB6C1224E7465A64C83E077A4F6B20E4C6F4F1EA809C + 8BEE526C764FA3745A6B1A5E207EA04E36A6C3DC8D83ABA7D201D71757F105D9 + 5360E3DE08FB3F1CFE5D316ECFAAAFE0E09C6EA05DD658BDE115860F8B43B426 + 4A185753F70C87D67D1D1960B821AB97ED72F8201B9A3B3025ED03614CD9D5BB + F4C0753FEBF903395F5237F8D86881FE7613EC0EA7EC1C99D6BC259FC3E17461 + C7293D3D70CDC14ABE68ED0CEA0649C834DF7BDAEEBECD58C563645AF3574C13 + B6B71EFD433D90B5B9C42FA3CDC6455FA0E5252B6C9369ED15A0BFCCDC558217 + CFDFA5867B3220AE0D0F7ECA6622DEA0FE4923060FFC14C99FA488C7B4FD34B2 + 319A7F572C49A03F33E5151578767A8E3AA0BF983AAD98B5EB1CE262C7A94252 + 01B3F755F0C51B66A3AD9313F6C98AF317CEE94075532B12E2275223A98059FB + CAF9231BE68AC06061BBED48DF5D46DD241570F9EE8BFCB1CDE9211B8C449311 + 012A49EB2B16E93BAF61E488F1484C4C548CEC930649C8AA8ED54E444AEA58F1 + 79AB0479F9F22FE10397E697F1255B16C2680EDDE06BF73F9EF97B4F00AE347C + F4712AA2A3A37C80C1901101EE2DBD16B23982232140E15321920AB838AF942F + CECD40BBD519708CCDD183458567C4E6A409075959F9AB7AA0BF06BD9BF38E52 + 24153023F7247F2CEF3BBFD720F7DA2134E7E252F1E1E814C4683501BFC78324 + 696D69465252920F921A782877314C5DFF34585856256B2E463341C079120C49 + F2E8612D58B301C3868CF2B94FAA02BE94DC077B3807328BCE8ACD79271092E0 + A0B98F822573B0ECC74B18FACE2419527FE5B7F0810B371DE50FE72D9301BF2D + 3829E0124724FBBDAEFC213DB8E36B32DCE774D85278028D768DECB11831E08C + DC72BC9F340EF1838708FBA190DE38926D074A51B475013EDB7C56445203BD8F + B16FCC78D2F19EF028D30D4A088A3434D5C362AF41CAA0186819ADECDCF93D59 + 4CBBB593F7208DAD2DE103A52F8FA4B95A57CB6715D407453E6DAC83465B8B1B + 3B97FBBC83918620A76D2F457F77B93777E44406180AA914E71D55AFDF94229F + 373DA0C2F50A508A240BC7626AA7C6F51A508A4C4830A33A9F0E47057C5BF91F + A8367F03FFBA4EDE2E274DA40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_19_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003F44944415478DAEDD86D4C13 + 670007F07FA9B4281AD0049D89D291E9A622C2169DE193C6617C99669AE062D0 + F88643449219DF164543165C4C94A166BE80EF59503EB8C4A006DF2A183521C6 + B711540431122114ADD2D242DBBB5A6F7D9EA5972BEDB5E5B923F8C1FF97EB73 + F7F4F2EBFF2E77D7D30882804F399ABE00351A0D5D6E2AAB51F4ABBE1C158775 + 0BD2A01F14A5919BE3733103FFCC99C90C3C7FFB393A2CCE904826E0E663B714 + 37973D2F1577EB5FC3E670C3D4D92D8B64062A69EE6C75033AED2E7C377E347A + 9C2E11993D2F19B17ABD1F724080D71FB65054CBDB2EA44F1C2322C9386FE114 + 3FE48000EF3775C062770541F2DEB1CD0FA908C87BD84EC5562F8A1C621FB2A1 + F51D66A525F921B7664E63076E2AAD164A7267C1C17FA4E36D47AF46FCDDBDEB + E782E3DD5EA05382E451DBD08EF8A17A3AE7BDB5070737CC560FD8D70CD145C1 + D2CD05201F37B56152D268D4D6BFC2E18D3FB203371E310A07F232981B6C32D9 + 607CD00C27E7F6DB469A5B3273322A6E3C5206CC3F58251CFA753E738324E430 + 3F7E6986E9BD5D5C479ADBB92A03BBCF18D5015A1C1E3ADE75FC1A3374EBF21F + D0F6C6423F93E68A7E9943F7A72A508D706E0F6DAE5F80BD1B34BE6804674B52 + 8C1E12D781A77FE56A546F30A3B00C7AEDF7489E9C22AED30DD2FACDD16AA3C4 + CF720F33172A2BF1EAEF457D07E616570AA55B7E4247174FC7E4D048C3BB39D4 + 34B723217EBA22243330A7F882706CCB6211182C961E2732F754202E762A3392 + 19B876CF3FC289ED99B20DAAD5A46AC05051D264BF37286DD2F8CC89F1E3A621 + 3131316224337075518550B663294CD6F00D7EF03EF1FCBCEF14E049434AEAB7 + 889620C2212F5DBAA80E705FF94DD9B9E49A18AB9B8E099352111D1D15000C85 + 6406AE282C174A0BB260B6BB65E738381796EF3F4B9B23381202A4CB0891AA01 + 8335286D4E9ABE20ABAA2EB301B30A4E0B270A57063D07F90F5C4073BD132952 + 11F070C10A7476FFDFE0FE8A6ABFE662BCB7B9AFBE49418C4E2BBB0F1F92A4BD + AD1506832100A918F846721D74F11CB20F9D83874FA5385F4221499E3FAB83C5 + DA822F467E1D709D64062EFDEDB870B4708D0894C38543121CB4FFA278CD02E4 + 1FA90AB8981BAF5F5107B8ACE434C5258E4B0E7A5E0543FA7027F3B3BCDBF4B0 + 3ABAB06CEF798C1A9E2E221501A5E37B661DC61AD2113F62241D8743129CCD59 + 8B946131D06974E2765EE0D1E8D48A4D32037D2F8F7CB9515F27E4943CA1B732 + FDB08490C896E627B4B93B7FAC0D78CD4162B6770933B69FA348537B9B3AC048 + 912F1BEBA1D5D5C9E2A4C839BF9763B0F76FF2DDDD79EA00C32123C5F58EA2F7 + 8391225F373F65C2F50B508A1C63980A5BA79919D76F40293221C18A9A22361C + 337020F219A834FF0198463DDEE784F0C70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_20_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003AA4944415478DAEDD87B4813 + 710007F0EF9C6E9689266851A1BD8BCC2C28AA3FA2E8416F2AF08F10292A33B3 + A0E84949489809652F7AF9088AD0FC27082BECE1D2A0C03F7A8A9A695A92E6AC + 959BF3B99BEB977771C7CDDD6DF37EB7EA8FBEFFDCFD6E77E3B3EFFD76B79B86 + 10827F399AC102351A0DF6E594517DAAB12342B063CD4CE8FDFD3472FBF0AE41 + 03F7E73EA5C6850507A2ADA3D72D920A78266991626041690D3EB65A307E64A8 + 5BE45F033E7ED5086BB71D354DDF05E4B695D108D2EB9D907F0DF8A2AE15E67E + 94186934772165ED0C2724359071289B8A4DDFDAB9D6786455A30993460F7741 + 2A06EECB2E25679317A39BF9C98D0F5D7DE8F5B1A776AE808DB1F7037B4448A6 + 1FF95D401E8C9BA32E70B019AAF383B9D3E6822CAF6981A3AF0F17762DA303EE + BD6220E753962A6EB0CE6885E1653D7A6C76A7D77E58BAD067677079EF6A3AE0 + EE0BC5E4D29E558A1B64C39EE6370D26187F7408DBCA2B3F714BD580E66E0737 + 3E96F74831F460C212347F3573EB8525AF7D03542336BB03276E18FEBD06D3B7 + 2F17D6F9F7F169836B4FE6E0CBE751D48D0E0D6945F5C5648D2260725611C93E + B00EADED0C37E64F0D1BC3875A840D5B80E8E931C2369DBFD6E978ADD64F5897 + FB3173A7A8089F6EAE57064CCABA43720F6C1080E298BB7A1097598890A0D954 + 482A6062E66D72ED489C64836C18BB0D65F52D080F9DAB18A92A502AB44DFAB4 + 41359AA4026E492F24394737C268613CEE6BB498119F518A4913E7203232D26B + A4AAC0D3F94F64F765BFD541BAB988899D850011C213F2DEBDBBCA819BD2F249 + 766A3C4C1D76D97DBA6DBD48385700386662EAB4580404F8B900DD2155054A35 + C837C7E2D8B0406EE925920A189F7A9D5C4BDB2C3907993E9B5373E20C06595C + 7C9F0E78397513DA3A7F3778AEB054B6B981F116A90AF0ABE83AD8CBD8B0EDD2 + 2D3898584C981283409D56F6781EC9A6A5B9095151512E482AE0C6C379E46ADA + 56013810C7C71D92CDFB7715305B1A313262B2CB755235A01CCE1392C541FB16 + 595BD760F79562973B8EE1F1033A20BFFECA6AED9F73F31039315A725E492159 + 9CB5A71C31C181D069746008838AF69F18317CBE80A402B27F1EF119B7A5808C + 899A8DD0B0086EEC09C937F72C23D1E921DDD4D14E161EB92534A91AB0A4B282 + 249DADE26E65FAE070B7C8C6FA2A499C14D2D8D2AC0ED05B64436D25B4BA0A59 + 9C18B9FC783E86E881E72752D4017A427A8B1B18C5CF24524039E4E7FA6A4538 + 9F00C548F68B636D3329C6F90C284686875B5096AE0C4705FCD3F90FA4CD2FF9 + E412DE37E934FB0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_21_80' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000038F4944415478DAEDD86D4813 + 711C07F0DF36B7994334412B8889640F64B2021FAA373D63E48B0A8CCCC4B0CC + CC82A4D4300B090DA94C93344D8522345F14881956BA3428F045658DF99036D1 + D2A636746E53E7DD9AFF7693AD3DDCE6BCBBA52FFABEB987FD6F7CF6BDDBFF76 + 632184602987450578A9E22DAD4FC5E77AC0D5E31120E0F3598EC6985C948177 + 92775206D6B47443E7F731A7C84505367D1A00F5B40EDA65A30E918B0AFCD03B + 024ACD8C199971241CFCBC3DAD908C00713DB54B71F0970AC60D4013B2ADFB27 + 641CDD0EAB7CFF36490B78B1BC0515A6EC86697CD6B89D59F6CAE5636F9DDD0F + 18AE3300B51648DC80945B2119052E345E3C362827315264E1995DF48169F7C5 + E86EEA5ECA0DF60EAB41FC51065A4C67F5DAD8C414149FDB471F78BEB811955C + 3840B94122C469FEDCA780E1318D795F9BB41F4AD3A299032AA7F5C6ED6B95AF + 294333E2F7C0D0A8D2B85EDBDCEE1E2013C1747AC87B245E7A0DE69E8E32AF13 + EFB3641B64149852508FCAD30FC2880A376E13A78688F85B0F60EA20DA502F9F + 11E8BC97C2A20C4C2EA84315E987CD4053A2F3AA80CF8980904DA1E67D3C0F8E + D5180E876D5EF76093FF98A9ABAF87FEC787A80393F29FA1AAAC18BB06711D06 + AD3239F8FB46D242320EB48C724A0B31F9B5E02308A38C745B83A6D06D923630 + 31B7163DB8120BC313B8C3312AED241CBBF99452938C036F57BF211D473429EE + D2C2DAE070100A852E2369031372AA5179761C28343A8763A6B119882FAA01D0 + 6F8650D116E05A20E64336343C671648D62031270A7891B061A308B85CB61DD0 + 199236302EFB21AACA39417A0DE2BF317373048E0801342E5D4432022CCD4E80 + F1C9B9068B6A5B489BB3CC42908D8D2F98018E5ACC83333806A74A9E5835671B + 5791B481B1972B5159CE4933D084D3E32258B33E143C791C87C79A9044E44383 + 10181868876414688B33C51992C8D72E092827066065C03ABB79921120B1C411 + 0E52C3038F80B7D50A371F92C0A9B56D10EAED0912D52CAC58BECD0A296E7A49 + 0FC862CDCDF81199A5089B1181303884F4BA22431238E07C817737928CFF2828 + 342AB423EB89D51D87316050620D5A1D1806BE7E01C6EDF990B638D3EBB648C6 + 80CD52094A2EEC30DECAF8DEFE4E9103B20E521C1972583EC40CD055645F8F14 + 383C89439C2532EA7A352CE303BCCF4B6506381FD2559C6D683D93D8021D217F + C83A29E1DC02B444125F1CF5B88232CE6D404BA4BFFF04B4E652C3D106FECBFC + 07D2CD1F316BFFCF0FCD96A70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003784944415478DADDD85D4853 + 611807F0674421040ADD68378537A5570995505498560AAE34FA50CB4CCB746A + 56C3B4D4696B592B2BE647DAD269A8F981595A68995F7925A918628812819A9F + 596E6EEA9C9BEBED9CD50E5B6E733B7B5DD2FFEAEC9CB3E7FDED39EFD9C5C340 + 08C16A0EC39640770FA6458B75B4D63228605C5EAB555267270788F07583756B + 180C534072511365D057F1106CDAB099A1BD570FF830C28336B0A4A50FA66714 + 10C9348E5C0EC8A98947C56D05F021A907FCFD598015D8D0350832B912C6C573 + 4691A6807DE3BDC85BB017B638BA40535C1B792F5E60E7E70990101D94C95504 + 72D620D204101DCEF282EEE18FF022FA0DB83BEF32FE88956A7A5B7178520A62 + 02A8450E7E934214731BACB75B4B81B48B12FB0C11FB8C3CA5B956D9598AE22A + 2FC2B1ED0190112864E8DE4B01D98F9B9120CA0B14AADF9F13452D66E3F8E19E + 2057AA402293EB20950452A68724177D599D0BBBF96EE0E97210F2CF3E837995 + 1CF6DDDB010B8B0BD09EFC09ECED1CCC035A1AD2209E532E410E4C4821FEC44E + DD4521B430009AFB1AC0CBF51038DA6F84B2F622E0FAF1E1FC1ED6926E53C02B + B94D2823FA00058C17BE331B779FE50DFD236268EA1A8079E5A2DEB5A9E95920 + EAEA7545A556A10B45C11A2499AD4EAE9A1743FBC80D0263B3EB5176AC0FED0E + 92211F73F79749189D9AA1CE75F40E0151570F481E6B912DFD8D501555A77931 + 746B19054AE7D59ACF1C51236D283B683F4C7C97C0A2FA273C7FDF6310F827D4 + 1FF3DF359605E2C89C4205FC67AD7A404BBEAF078C11D4A11CB62F054C12D6D3 + 86DD61F950C7641DA22E836E2DA3405CD1055AD541D683574878D58F022664BF + A68D4A8F3D421D5FCBA905A2AEB13D68344BF660647A357A927014C6240AAC1D + BC99FF1688BAD603C3F9554894789C02A60A6B69A3782C26754CD621EAE207E2 + CA8A01393935B4516931FEF881E7D22A9030310046244AAC1D4C135643212710 + 3F909B55491BC5BD74123F3024B504E5A504C398146F07C91F5ACC3B831F9822 + 28A38DBAC53E851F783AF9292AE086C2A864016B075333CBA1F476181E602E27 + 047ECCA8A8C274C3BB1C641468491D83C0B169CC6FF1A30A0A48271430E8BA08 + 096F846107F2324BA1FC6EB8F51DB41590F61E248158653AC102B445FE6FE02A + 996E9906FEEBE9D68A02AD9D6EAD38D0CAE996F9405B4CB768016D35DDC206B4 + 34E64EB72CA969F3E9169DFC021621D2DECB5C29A40000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'SetProperties_02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A14944415478DAD5D8594C13 + 411807F06F8D6762D4E883FA22EA83C293245E8989272A18AAE005A91A448350 + 44D0CAA19C22121A505311A8E5D2288888076AC013115F8C6034060F8831113C + 10515ACA51605B1C3BC56EBAF4C0DD1D2AFC9FA6DD76F6B7DFCC6E9B8F420801 + 8EF8685EFF6008529CBA8FE2F33D6CA34C408AE23507A72C5EE9C9A908355565 + 94C3812F9E96DB3C91C1823EAB1AC169DA6C0A7F96050CCFA912B4C473664C86 + 404F5718377A944DC060C0D8D20874E9593E3C8FA9056F6F0958004F07AEE20D + 2CA8AC83B68E1E0812D946DA03BE6F7A8BDCE5CB61DE7467A8087F064B5689C8 + 021FBE6C80762D0DDF555D3691B6807869379E7583D75F5EC18DFD7761E9DC65 + D6975808F0C58766501B2AD8AED519909D56912660636B039A35D509EF7BE3F1 + AB358528BCE4006C5DE80BE9E26CCAF459AB40BA8FDF56FCD2A2019501684236 + FCD040B068014C9C30963207DE2C55C032992BAC715E07B9BB0BA15BA78515A9 + 8BA057DF0BD5B16F60F28429D681D2738F913CD80D7A74FDAFA3F32AFF19270B + 58035A5A07EA76AD19923620DB59C8BF2705FFF3BEF0B8EE21B8B9AC87E99366 + 4251F54548F49241C0F260D6C5D80572CDF83114A8BA680BE4A7660D44F92C61 + 807889693D8DF65DDC6544E2CC9FE162BC3128B3679D05F090A2029DD9BF9601 + 462A1FFC33EEA4C41DEABFAAA0E2E527E8A6F5AC63AD6D9D901EB28E05C46313 + B2B2FE115C0F2E37DE1803F72B0B189A711F65847AF0AE200E5EE6D71F5BE05B + 6B07F35ECDBB46C80CDB6001C4317F300F9CCB2650D3DD677C1D97F78837542A + 5E0DCD3FD5A0EFFB0DD79ED4B2805CE6B10B2491AE1E1DC80AAB1820D7B0FE2C + 84C8CB5196D49301C628EFF386A5483C98319E47715824BC820381A4321068EF + B7D83C167B5072EA3652467831C0A88C3BBC5169A19B98F191AC32C88EF4160E + 0C4A2B45D9519BA149DD43B482C773EF41CE912DC28101B2EB282F7A1B034C50 + 96F146254944CC18CF931FB39D3C9054860C1897758B372A39C49B3C706F7231 + 5246FBC257354DB482C9CA52B8102F260F4C3C5BC21B9518E6431EE897508072 + E2774193866C05F185169CF0230F8C9717F1469D90EE200FDC197B01E527FAC3 + 37752FD10A26A45F81A294BDC27FEA305011E707BF3A74CCC47C9374506C15C8 + 35AC3F0B2660531BE1BB38B3984C05716F46796C0F716052FA65A63723680F8E + 082051995988008743F36864038743776B50E0FFEC6E0D39504877CB21402EDD + 2D41C0A1EE6EF1063AAABBC5E5A21DDEDDE21A6CFB038B1ED5DE2038778D0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000039E4944415478DADDD87B504C + 511C07F0EF359E3306C31FF28FF087C75FCC78CD984124312DF26C96268F095B + 2912D153D2D8F19A24654B31290911A6482FF9C728C3983CC798A9A824DA6D4B + 5BDD2DC79E357BEDA34D7BF7287CFF3ABB7BF79CCF3DE7DCBB777F1C210434D2 + 83294471682BEA9A78B04C74DC65641DDBCE89F92EB571C640A632A31880B317 + BAD9344679692E2700394ED449DA140A7CF230CFEA403A0BF9A0AC86E398091C + 3DF6AF0386E5EC23971EA5E2716805DCDD65A63318945C6AD7124F7418891D6E + 333064E000AB809E80AFEB5E12D7D8F9983C762A8A821E618E93C412786A8793 + 68607AC91B34B5B463A7C43AD21A902EED8A33CE78FEF1196EF8DEC5DC49F32C + 97D85E60C1D32A346B787C52B65A451A80D58D5564FC6847BAADF4C75C2DCF20 + 41D77661ED4C0FC44993840B8A29F0C9BB7AA87433D8ACD1EA90DFBA45D2416F + E624629E7C06164F75C1F9CD1968D36AB0E0D82C747476A02CEC05460E1BD533 + 90EF12B7153F36A8A1D4010DC8AACF6AF848A663F8B0C19C31503728B65CF040 + F19B02384F5B8AB123C621B32C0D51ABE4F09EEF637EEC2F60E0B96212EBE38C + 76EDCFD7212925BDC6C9BD1743C36BA16AD61821791DB2D904695862BE9327DB + D33CF5489A290ED3F4170667742BF92DD0D60C1DC441D9CA5B202BEBD508DE30 + C70448DB0664C9DB4264FBE4E92F0CF3ED6002DC9358444EFB2E1180FB15F77B + 8D3B2173C5DB1A258A9E56A28DEF34F9ACB1E91BE2FC5C2C8034C63766F33E2D + 80FEF1F924DE7F99E819A4A1CBFCFC7D036A1B5B84F7CA5F55E36CC072FB7FEA + 0C40755B97FE75784AA16868A07411EABFA8D0D9F51DD71F5408405B63F2B060 + 0E6491D6762DE419A56C66D02F368F2404BA09C05045BE68D851D932A14DFB49 + DC2BE9760FF6148B3D680E64156640D9C9DB44B16F95000C8EBF231A75DC7FA5 + D03E90908BA4FDEEF603771ECF2149C1AB51A76A673A8387CFDF43F28135F603 + BDE5D92425649D008C54E48A4645CB24429BF6931ABA9E3D9055FE18303CE196 + 68548C9F3B7BE0B6982CA208F1408D8AEDBFBA18450E2E4648D903A3CE5C138D + 8A0AD8C01EE815994E92233C51A7663B83F444D38F78B10746C4668A461D09DC + 6815684B3F26C04D6117496AD416D4AA3A98CE6064DC15641EDD66FFC3020526 + 867BE16B8B56E8586CA2774BBB05DA3D8314C8BA36137336CB04287A0FF645F1 + E8FF073295198509F06F281EFDDBC0FEAE6EF50AD85FD5AD3E01DA52DDEA1760 + 6FAB5B7603FF7475CB963EFBBCBA656BA8ED07E013C6DEA384B4650000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003994944415478DADDD8594C13 + 411807F0FF1A2F12A3461FC017AF078F274DBC121315450543153C49D5201294 + 22A2220A728A4868400D028205418320E2891A5004447C2122C118EF1813410E + 11A5A51C05B6E0D8AD766D29D5763B80FA3DEDA6BB33BFFD666667FB31841070 + 213E924E644777A2A18505CD884AB884DCD85D8C907B391B3398C005CB9C8925 + F73E29CB670C8054657AA10FAC7C5460329B1A0BF928AFC194895319EE5A0320 + C3081A058BE24FC0D0BC43E46279061E873C87ABAB047F15F075C34BE218BF04 + 336C67A124A01C0BED4586C080B432AB86789ADD38EC769E8B51C387997C5253 + 406E68D7263AE059ED53DCD873178BA62F361E620E786AB7BD606056E91BB4B4 + 75C15B641AA903D6345793C913A670A3A6BDEECA936C1270752F36CE73438238 + 959FAF54814555D56855B1F824EF3089E43ABD999782C5D2B958316B15CEEDC8 + 46A75A85A5B1F3D1DDD38D8AD0171867337E608095EF1AA1D064B055A5D620DB + FB45FEEC141EE7DDF0E04D111C66AF86EDD849C8A9C844A48B145E4B7C983ED7 + 1A03D95E6153B1B64909B906A843567F56C2473407636C461A74CA0D31DBC392 + 5D99DBB5482E66DACDD62E0C466FA51A01FDCF3E20F13E0EE852FF380F4E2F35 + 1B27F55A0115AB86A255A5876435C85603A4FE22D1214BDF16E3BA4F817661F4 + 936DD3404B63F40806F20ED608F9A15189C02D0BFB7D51EBBF98FBB667043C90 + 52424EEF59C9030FCBEE9B8D3B2171C4DB3A394AAA3EA093ED31F8ADB9A51D09 + BEABACDFEAFC920A49929F93E00C72C10DF3B3F74DA86F6EFBD5C9AB1A9CD9B7 + C6FA8F051D50D9D9AB3D0F4B2F160CF5172F47E317057A7ABFE1DAC3E73C904A + 0675401AD1D1A58634BBCC00F8BBBD583F8CE6A06F7C0149F677E68121B242C1 + B01889137FCCB5937250441F482BA80125276F13D921171E18987447302ACE6F + 1D7F1C949C8FD4C3AED603BDE3F2486AE07A3428BAA866F0D8B97B480BDA603D + D04B7A9DA4076FE28111B27CC1A82889883FE6DAC908D94C1F482B060C18967C + 4B302ADAD7953ED0333A97C882DD50A7A0FBAF2E5A96870BE162FAC0C8C4AB82 + 5191FBB6D007BA476491B4F0ED6850D2CD20F7A059C7DDADDFEAFA02C3E37304 + A38EFB6FED176869187C2C6C0BBD4032223D50AFE8A69AC18884CBC889F1B43E + 831C3025CC1D5FDBD47CC342236ABFD82450F01CD40169D766A2CFE4D2010E56 + F1E8FF065295E90515E050178FFE7DE05056B7CC060E56756B4880E656B7860C + 686E75CB923607BDBA656970B6EFDEAEB4DE1DCD0FD70000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'SetProperties_05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000039B4944415478DAD5D8494C13 + 511807F06F8C1B8951A307F422EAC1E5A4898A89898AA082A16ADD2055826800 + 8B085AD964B522A1C125B522B540D120888868D5800B20E285080443708D3111 + 4411515ACA52605A7C76AA1D5B4A4D3BF35AF07F9AA6336F7EF3BDF7BA7C0442 + 08A8EC4BBC8AA44981D0DE4D02CEA45D2A86A2F48304936B291B6104F24EC891 + ECE401ECC054C97528CE08310057ADF745F65C5B5F5346381DD8F0ACDC6A35F5 + 16F449D90A6EB3E713D4B91640AC3293D80A4C5444A36BB579F03CA119B85CBE + 79050982D132B12BFF02BE697F85BCC56B6191EB12A88AAA05770FCEF8015253 + BBF5A21734B5BD80DB871FC0EA856B2CA7382AA786D5142F983303427D97C394 + 8913AC3EA911D8DAD582E6CD72A38A6238F7667D218A2A3902BB56F88384974D + 2F070BE0F9500FC6C082EAB7D0DD3B088738D691D44DEF28A4B046B41C3C976C + 82DCFD8530A0D5C0BA8C9530A41B82BAC49730C365A66380158D2DD0A321E1AB + B2DF2AF2CF4D21E88A3F3C795B015E4B3783EBF4B95054970FC2ED22085E1B46 + 8C38171FB0E17D07A8F415ECD168F5C8BE5191C6292675240AC90F3020A92C9E + B3D4B03108938D6015480E335B8A6D9D6A50EA814664CB3735847196C13497C9 + 6637356E1223B2FA5D259486951B36C628D5FE0B145C7E82C4615E30A8FDFD3A + 5E5E6D334E14EC091A520BAA1E8D0992D4237BCC902377B1E907B395E5601D68 + 6FA64E2240D94F5A203F76A821D6CF9DFD57DD316915BA7078230D8C913DB679 + A0B37C6F78F75909558D1F6180D499BDD7D5DD0792F04DEC7F2C44643E429911 + 3E8C2B48859AE6A60F9DF0A5ABF76F155EB7C2A5C82DEC2B6804AA07860DAF93 + E4958CA102DE06E8F8AE02DDF04FB8F5B4D90CF8AFEF62D358ACC191401CE91F + D482A8B0060F305C5C8EB204BE343041F688312C9DEF431F53E3488F73F00371 + 051B907FEE1E92456FA781B199F719A3CE446CA38FE3B2CA203B86CB1E78E88C + 0265C7EE8076D520D60A9ECA7D0839713BD9038345A5481EBF9B06A6C8CA18A3 + 52F91CFA981A272F610F7E20AE380C98947597312A2D9C8B1F7830AD18C9E2FD + E1B30AF3FF629902AE26F3F00385174B18A384917E5681F68C63060C4C294039 + C901D0AEC65B41EA410B4E07B2FFB13012982C2E628C3A2DD83B2A905505A9DE + 4C9E3008BEA886B05630457283EECDB05A83C6E6D18F5E2D3D30D3A41EE5390E + E8C8EE162BE078681EFDFF40AC329360018E7577EBFF073AB3BBC518E88CEED6 + 98016DED6ED933A6D3BB5BF686B2FD0292C3A8DE65BE21970000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'SetProperties_06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003964944415478DAEDD8594C13 + 411807F0FF1A2F1223461FD017511F3C9E245131314151543054C50B52257884 + A380A8C8A19C22121AAF202258103408229EA801452EF185784443F080181340 + 0511A5A52005B6E0D8AD61DD9622EDEE7AC6EF69B6DD9DF9F59BDD9DE9471142 + C0C496A873242DDA0B9F3AB5FAE3D8E48BE01BF1BBA56C9BE9272F7107C5A71F + C64619039BDB69DE305391702A9F052E58E24A2CB9F6516521C502A5FB3389E2 + C076D181F1C917907FD887053EBE5F6456369973FF3EA0A8324E8802A4285EF7 + B145F16F0343322A054DF1F4C9D6F075B5C3989123860408061EF775E40DCCA9 + A8457B670FFC2443237F2BB0E449033A3434DE2BBB8644FE56E0E3572D50E932 + D8A1D1EA909F4D224501D2FDFC6EC5B7AD6A2875C00164C30735FC257331CE6A + 34C51D943730F8743949F277428FF6DB71446685D938B9F73268682D541D1A0E + 92D6213B0C9082963A63A0A53176140565173D0859DFA246B8BBBDF0CDC29EB4 + 32722260390B0C53DC35BBA3A33267D4BD53A2EC493DBAE93E83EFDADA3F2339 + 7085F00C06A51493942017DE19648299E6EAD7AD686AEBFC3EC88B469CDAB5CA + ACA54E67216F948DB09D348D1A740F0E00D5DDFDFAE3E8CC52DED060E952B47C + 54A1AFFF0BAEDCAB311B1855104ACE5765E141640DDCDC64F821508CE8EAD142 + 9E5B6916F065F373E29CE4809936B3511652057B4789213030A988A406BBB2C0 + 4845316F58A2CC856D33FDA4ED95FC10C84CEDEA934EA87EFB14D7026E63E18C + 4583A7D8182856980236B63590A9136D990D8AFEF34B8F7249C8E59DD830CF03 + C9D274F65C03A0ECD84DA2085DCB02C3536EF1461D095AC3B6F7A516223DCC8D + 1DF47A411A16C9EDB06CF60A9CD99A8B6EAD068B0FCF476F5F2F1E463D83B5D5 + 04D340BF2305243D7C1D9A553DA266F0E0993BC8D8B79E3B28B69DF540796D09 + 9CE6AC84CDF829C87B988DB8B572783BF81BAC3A06406FF9559219B19105C62A + 0A79A3E26512B6CDF49315B9C9608AE93E9AF8647BEA914CCC9A3C47FF60509C + 4DE9B040B1C21490690F202BEA4A71D5BF48FF6070AF1B16189D7A83372A21D0 + 6D582013DC17B3711F83803B12F28922C203EF5422FF2F5614E05C8C54F85267 + 0C8C3B7999372A6E97BB49A0A561B059F08ACD2119319E68568B9B41E687E61C + F2129E4163604C521E6FD4A1E0CD4302796F5899DA4C56DC3634A97A45CD20B7 + 782418F8B3AB5BA2007F7675EBDF2E1EFDF14051659CF85FDDFA2380FFAB5B10 + B8D4FD8AEA96A5C1D8BE02CD4BA5DEADB01BBF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000038A4944415478DAEDD8594C13 + 411C06F06F8D6762D4E803F8E2F5A0F2A4895762E2052218AAE205A91A44825A + 40D48AA29C22121B51838860B93408229EA8014F407C21A2D1102F8831013C10 + 515ACA51CA161CBB35ACBB3DA0DD6ED0A8DFD3B6DDFDEFAF333BBBB3431142C0 + 6463D439921DE78F4FEA2E8899D8E48BC83F1240093996B1515C605AB41FBEB5 + E9D9C24213BF4B6A1138679117B1A7CE93F222CA0CD8D0428BDA8209A70B78C0 + A78F8A6D6A4D665F1E507A208B280F6E111D189F7C010547B7FE234051659C88 + 02A4284103CDAEFCDDC0B08C7287BA78B2F3686CF39A896183075905380C3CB1 + 6DB160606E59355ADA74D82EB18EFCADC0FBCFEAD0AAA5F159D56115F95B814F + DF36426D68C156ADDE806CB788140548F708BB143F3469A032007B91755F3408 + 92CCC0C8114329EE49EDA9C903CACF9492A42037E8F43F3F476495D95C4811E8 + 0A2DAD87BA55CB41D20664AB19D29EF0260BA6407B337C080555076D86AC6DD4 + 20DC67AEE39385DD6925E464F05216B84F79CFE642C7641EA8F9A842C9B35A74 + D2DDBCDF9A5BDA911CE26ED393C46021EF55F598386E1265760D86A6DC2529A1 + 9E825B9009D3CD55EF9AF0A9B9ED572BBCAEC7E99DCB6D024615EE25E72BB2F1 + 38F205BCBD65B008D474F6183F47673D100C954B97A0F1AB1ADD3DDF71E5E10B + 9B806F1A5E118FA40598EA341D25611598BB58D237508C74E8F450E495F70B64 + BA76C52937547D788E6BC1B7316FCA7CF32E0E492A26A9722F1618A9BC2B1876 + 44E6C96E3375D2F64878C0FAE63A3261EC44E6F96FFCFED2933C12767907D6CE + F245B2349DDDB74FA05831055E2F4CC37CC54CB84E7747E6E63C74EAB5587874 + 36BABABB5019F512A3478CB10C941DBF49947B57B1C0F0945B825189A12BD9ED + FDA94548DFE7CD3D29FCCFFAA2B4FA3EDC5C96C169D478E457E6206E9502810B + 827837751E707B6221490F5F8D06B54ED4163C94790719FBD7F0BA98EEA6C9D6 + 9C4D46249369CE2EC6814171E67C66C040C5559215B18E05C62A8B04A3E26512 + 769BA9931DB9DE6C90F422CB6A1EE06A50B17160706BF40B142BD6804CB83766 + D3E3FA0546A7DE108C4A08F1B60AB4A70E0F189050409411BEF8A816F9BD5859 + 88733152C7270BA6C0B8539705A3E276FA58043AD4827EB1B9242366131A34E2 + B620F347730FFB39FEDA690A8C49CA178C3A2CDF203E702056B71C060EC4EA96 + C3C0FFAB5B7F3550541927FF57B7FE08E040AD6ED95373C057B7EC0D63FB01A8 + 61A2DEB36090D70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003994944415478DAEDD8594C13 + 411C06F06F8D6762C4E883F8E2F5E0F124895762A2227860A88A17A44AF00842 + 0141114539452434A00691C382A041105151D4801787F86204823178608C8920 + 8888D2529052B6C5B15BC3DA53DAED0A06FD9E66DBDDD95F663ABBD33F450801 + 13AFE85C9219E5891639AD3D8E4ACA07D79C08DECEB663CE5E43EE092F8A4B3F + 8C8DEA07EE88B848B26376E1A3AC9733CC54A293AF203F7E8F16B868852BB1E6 + DAEACA624A0F981EE985AF5D2AB663AE89DD2F340BAC795C62D16832E79A04B6 + 74D0BC8E605C6A013F40E1D12C2239B69B77606CF2651424ECFD4780BCCA74C2 + 0B90A2383D09ACCAF006866456DA34C533EDEDE0E3EA803123479805D80C3CED + E3C819985B518F8E2E257C05E691430A7C58DB804E058D4FD26EB3C82105D6BC + 6D854C33829D0A9506F9CD24D2A6575D3F90EEE3F6536C6A9343AA01F6231B3E + CBE127988FF1E346735E7D7A9B85E073E524C9CF194AD5CFE3B0AC0A8B3B127B + 3B4141AB20EB54E820690DB2530F69D3081A02ADCDD85114A4DDB411F27DAB1C + A1EE8B2D7A506B2CE483B411D327CFA08C7E8307D2CBC819FF552CF0B0E481C5 + B893A2B578D32C4559ED7BF4D06ABDEFDA3BBE213960B545C088A243E4D2936C + 3C0DAF839B9B487F040353EE93944017CE23C88499E6E7EFDAF0B1BDEBD734BD + 6A446AD0BA0181AF5B5E92B549CB307BCA5C94853CC162478169A0BCA74F7B1C + 9955CA191A2C5C89D62F32A8FBBEE3FAA3BA0181CCD4AE3FEB8CE74DCF70C3FF + 2E96CC5A6A3CC586403ED2AD54419C5769046C6C6F20D3264D675EAFDACFAF56 + E791906BFBB0658107928519ECB97AC080A4129216ECCA02C325F739C3E2452E + 6C9BE927FDA080BDE9CDA2742C153BC069EE6A9CDF99871E9502CB1316A257DD + 8BAA8817B01B37D132205F31046A6E8A5D173C505EFF10CEF3D660CA84A9C8AF + CA41CC4631BC97F9B1D36F04149DBA4D248736B2C0D0943B9C5189811BD8F691 + B462641C76D39B625A4D93BD399E5A249339F6F3B40B83D2D95219017D138B48 + 46E826B4C894BC8EE0F1F3F7907964B3D122E94756BC2945A15F897661E85E67 + 04F4161792ACB0AD2C305A52CC19152B12B06DA69FECF06D2657B1EE83D9B08F + 01817CC51068CDB5BF0546A6DDE28C8A0B703309B4367A9B853D71054412E681 + 6619CFFF8B2545B81825B47D040D814C4D856B6282DCCD02396F580D8B477C45 + B778C42BF04F54B76CAECD0C4675CBE6E2D1FFEAD6B02E1EFDF5405E653AF95F + DDE21368CDF9835EDDB2368CED075003A5DE57B02DE70000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'SetProperties_09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000038B4944415478DAEDD8594C13 + 411C06F06F8D6762D4E803FAE2F5E0F1A4898A89098A208AA12A9EA44A100D47 + 0151914B4E11898D5710112C970441443C50038A88882F462118E20531268028 + E2414B390A6CC1B15BC3A6DB056CB7EBCDF7B4BBDD9DFEF29F993D8622848089 + 5B7436498D7245939A86988939938FEC236E94906B191B3518302A3E5730EA48 + C0F601814B56381173DAA9282FA458E08E884C9211E38EF7AA1E512B189D7009 + B94777B3C0CA87452655933997074C8E74C397762DDBB0D0C4EE93FE3C6053AB + B86330EE6C9E3840E9C174A238B44B74606CC245E41DF3FC4F80A2CA0C220A90 + A204DDAACCCABF0D0C4C2DB7A88B674D9D082FA785183372C4A0008B81A7BC6C + 0503B3CB6AD0DADE0D6FC9E0C8DF0A2CA9AA479B86C60765E7A0488B1E759602 + 2B5F3743A5AB609B46AB43760C594953C37959E807D27DC28662E32735943A60 + 3FB2FEA31A3E9205183F6E348BB4A88201E7EE93781F7B746BBFEF87A59799DC + 90DCC30E1A5A0B559BC60049EB906D1CE48FC6A0CE42DE2A1B3063CA4C8A3706 + 8D81E666EC280ACA4E9A87AC6B5623649BB549C088822072E151061E873F83B3 + B38C5BC1FDC9A5E4B4EF2A1618ACB86B32EE846C0D6ADF29515A55872EBA97F3 + 5B4B6B0712FC1C7E087CD5F482AC89B7C11CAB79280D7C046B5B0917E89F584C + 12FD1D05579009D3CDD56F3EE17D4B3B7BACE26503CEEE5D3B2490E9DA7567EC + 51DDF814D77C6F63E9EC65FC2EEE07AABBFAF4FB91E9F7044303A42BD1FC5985 + DEBEAFB8F2E0190FD8D0524FA64F9EC13CBDF4C72F57E490C0FC3DD8BCC80509 + D214F6DC218162A4B35B0B794E390778BD2019CBE40B6137CF01693B73D0A5D5 + 60F9B1C5E8E9EDC19388E798386ED2C040BFF8229214E0C402C315C582614765 + 8EEC36D34EF20189E19FC2FDBC0BEED794C07EFE6A584D9886DC275988D92087 + 878D0FE796342450AC1803992EA67B69E299E5AA4732993B75BE7E6250066F2C + 3CA0ECE44DA208DAC00243126F09461DF75FCF6E8726152225D8993749FA9165 + B5F770D5A7483F310CDBE001BD8F179094908D6852758B5AC1C36977901ABA69 + C0596C786336BE8E07F4905F25E9615B5860B4A250302A562661B7997632C2B7 + 5AFE5D6C0C142B864073C3795930064626DD108C8AF37316BF82BBE3F28822CC + 05EF54227F172B0A901925B5FCA3C918C8ACA9084DCCDE6DE2037FC5EA96A8C0 + 9FB5BA65D1DACCF0EAD6F0EA96906A0EAF6E8990BF6A75CB9CF339C03F35DF00 + A64CA8DE6E92779B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_10_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003914944415478DAEDD8594C13 + 411C06F06F8D6762D4E883F8E2F5A0F0A4895762A2A27860A88227A91A3C825A + 40D48AA29C22121A508380D48245A320A2A255039E88F86214A331DE31268202 + E2414B390A6CC1B15BC36697B640B78331EAF734BBDD9DFE3A337BF4CF1042C0 + 6553423ED144F8A3D2C05AB7E3D22E406AE2B6AFE6DB091A1D4EC5C81929FD70 + 36A60318109B43B262D6A1DAC84A86D9C55A7E68CEC1002B70DA1C1FE2CCB965 + A5858C43604C4A9E64D441E51A87C0C7F78B7A349ADCB122E0DAA853243B6E03 + AA0CAD54473036F51CF21237D101AAA303F0BDC1CC772C35F13BE4BD07ACAEA3 + BB06138EE5D301CAF7698966FF46EAC0F8D4B3C84FDAFC8F00A9CA04A1026418 + 49F752A7F27703C3B24A5D9AE2716E43B1C5673206F4EDE310E032F0C8164FC9 + C09C9237A86B68C1569963A44B8F3A5781B79F94A3DEC4E2B3BEA94BA43311BD + 2CB80A7CFCAE0606CB08D69BCC1664A35D24951164DBA52DC54F5F8DD05B801D + C8F22F4604C92661F0A0FE3CB2BB3568B1908FFA0A8C193196B15983CAE37749 + 4A90175ACCBFB623B4253DC6A902E7C1C49A61A8370990AC05592F4276078CD2 + ED26671E64E361E473F8F929D025D0D90CECC740DFC4DA203FD41811BE7A7AB7 + C0D7D52FC9A294599830D21DC5610F30DD532606EE541793A3C1F379E01ECDAD + 1EE30E2916E16DA51EC54F3EA0996D137D565BD788D490055D02B9A95D92E685 + 679F9EE252F075CC183FD3768A43D36F92F4506FC923C8859BE667EFBFA2AAB6 + 81DF57F6AA02C7B62F16012B6ACBC9E8E163B8878375FFF9B25C1276611B564C + F147AA3C933FD62ED0D8DC6EDD8ED6DE910C55CAE7A2E69B016DED3F70F1DE73 + 11F0B24E8D99AAC998E7BE0027D6E7A2D96CC2ECA4A9686D6BC5A3A817183A68 + 58CF8034D2D462862AB75404B47C29369CF4C7DD37B7E1E5B11023878C42DEA3 + D388F35521705690E88A170143528A4886D28707466A6E4A86252ABCF936D78F + 7A974C34C56C1B4B369F5E67457299E8E661BD3018C10B41B7405AB107E4DA1D + C892B77750105464BD3084E7D9001587AF12CD6E5F1E189E7E4D322A397429DF + DE9B5188CC3D7E76AF62E18DB9731F36C0ADC93A9219BE0CD58616AA2378E0C4 + 0D64ED5DEEFAFFE2405501D146ACE481B19A42C9A878858C6F73FD6447AE72BD + B2D019482B4220D5118CCEB822199510E2E71028F985B573F1885684C523AAC0 + DEA86EB904FC5DD52D6AC0FFD52D29C0FFD5ADBFBE78F4C703A9CA0411029D39 + 4F04FC53F313A85EB5DEE878E6FD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_11_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003844944415478DAE5D8494C13 + 511807F06F8C1B8911A307F022EA41E124898A09098A2082A10A6E902A41242C + 0504453659452034A006592D9B0441444451038A6CE285080443708118134016 + 11A5A52C05A6E0B353C3A48552E9CC831AFD9FA6D3796F7EFD66E9CC47208480 + 8A6B5C3112843A42AF88049C891394415E2497603296B2110B01A3534A18A3A2 + FD1C5402F71EB0459ACCD3545F4ED040E7A8029415E904FD62BC15A47E6841AC + 330D6C7E5DB1A86A52DBAA054626153146C5FA9FC10F3C1B9E8772A35DA04F34 + 85B58251C9F7A128DE150F3023C2197E8C4AE9899926E62277E980FDC398AFE2 + B4623C40EE951C24B87A1E3B3026F91E1427B8FF2740AC328560011204A39BBD + 46F9B7810159F5AC0EF1367D5DF0B03586352B572C0860F55747016F7A983306 + 16D4B5C3F0E8247872D4233589D2C3025B60554B178C4848F82A1C5F10A9D50A + 367F1A0091AC822312A90C39A612C9FA1CA480E40CB353B167500C42197016D9 + F54D0C5E9C5DB04E6735A1B853C640FFDBB528C9CB1226A5BF3F87E6D42D1AC7 + 77B300092905D188440149CA90234A48AC404DB3761501C271721EB273400CC1 + 0E26EC8197326AD02DEF43343048F072D1B8EB3C6BE8E815424D4B274C90D34A + DF0D0D8F41B28F157BA06F6A254AF5B5615C412AD4616EFD3C087D43A3F4BAA6 + 0FDD90E677041F503C3123FF1C9153CD18EACF3D0803DF45303DF3131EBE6A5B + 1A208E8C4F4A815F588F07E8935481D2FD6D696098A092312C9E67432F53F364 + 5CE6E007E20A3620EFC6532408B4A381C1A9CF18A3127D8FD1CB21E9E5901964 + CFFEBDD833B10C65061F877ED124D60A5ECB7E01592127D87716DCF8A52827F4 + 140D8C12943346C5F038F432354F6ED869F6159C0BC495B94075E7A0CC82BE08 + BBC160D35662DE3938171891FE84312ACEC79E1130BC2C10DD6DC88537616D60 + 6FCF53AEE07274B7D4013FF6BF47D64966B043CF106A021AC0C49CA31EB854DD + 2D5540EAD01E4DB184D69EB7F0C8FB39ECDB6E4AFCB179842BAA9A47DD435D68 + CB4603EA454DBEFE4153210A28B90027773B42323793DE562BDDADC7651960CA + 37060B432BC83E5708135209EC4FD80353D353D018FE0E747536A8062E57774B + B65370B9E308B5ED5560697418F4D66F86A2C67C88B6E3839B9997D2D3B7D6BA + 5BE43489DCF39DE4482A3BF58DE41706A1F072AEF5EED62CB2AEA31A4ABD2AE4 + 1786E2B8BFA279A478639E3B4E6B404DC62E7B774BD350B65F031EC2DE40424C + AF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_12_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003924944415478DAE5D8594C13 + 411807F0FF1A2F12A3461FC417511F3C9E34F14A485004F10855F182540D2A41 + 69455404414E118D8D5710112C970641444451038A80882F4430188207C49808 + 8288072D0529B005C76E0D9B162CB6BB8368FC9E66B73BB3BFFD6676BBFB3184 + 1070E1ADC82129219BD1A4EE326C87C7DF81D038E1EBC6B7239579480DDDC208 + 1987B3317D40AF13594419E28146352B18F64BAC32175722A406E0A265AEC49A + BE15A5798C5960D4856CC1A8A8FDEE6681CF9EE45B944DEE5813A067643A498A + D88E260DDD0C72179A7EDC933E3022265330EAB8FF56FAC06D6157486AD44E7C + 507753CD6064EC75649EF4A2034C08F7C4D7761D3FB0D0883E201D3A60532BE5 + BBF862161DA0F4480A511EDD451D181D7B0D59A776FF2740AA32A3A002641841 + FF4656C53F01B4E67813604052A9A8299E613B017B5CE763CCC811D4AED4E465 + 81039EDBE32878B0F4921AB4B677C147621E293A83628085957568D3B2F8A8EA + 308B14B506C5029FBD69865A9FC136AD4E8FFCF64B241520DB2B6C29367CD640 + A507F621EB3E692097CCC3389BD18CF1490503FD2F3D2231726774E97E6E87A4 + 94588C53783B41CBEAA06ED31A21593DB2CD044915686D8C1DC540D5C10E40BE + 6BD620C87DB178E0C18462727EEF0A1E7858F9D062DC19D92AD436AA505CF90E + 9D6C8FC96F2DADDF10EBEB221EE8175740E2FC560BCE2017DC3457BDFD8C0F2D + EDFCBE8A57F5B8B87F0D3DA0A6B3D7B01D9E522418EA2F5D8EE62F6AF4F47EC7 + CDC7D54303A4111D5D3A28324AE9007D63F249BCBF2B0F0C551608869D94ADE6 + DBDC38098724F481B4A23FD09ABE2640D9D9BB4419B89E0706C5DD138C3AEDB7 + 8E6F07C7E721F1B09BF8CA82CFE95C9218B4812F7DD08A63C90F9014BC517C06 + FBD766B89A8AD0889649F8B6716DE6776B506F21EF55F5B09B3C9D19B006FB03 + 698535C0B0DC4072B52C154F43ABE1E6261B3C834351DD1A0CF8BAE9255915E3 + 805953E6A038A00C8B1D2583178F688525C5236E6AD75E704655C373DCDA7B1F + 4B66DA0F9CE23F59DDAA6FA923D326D971DF4186FD372A324840F63E6C5AE081 + 5869227FECB054B76EE726C05E311F4E735C90BC23039D3A2D969E5A88EE9E6E + 9487BDC0049B89960187AABAA53F29765EF6C0A39A4238CF5D8929E3A722B33C + 0D51EB15F076909BBCDC0E5B758BED61C9EEB4ED062417B36DE71A6E0CC6E8DB + 77D8AB5B7DC892DA22E4C8F30D3786F1187F4575CBF8C1DCBFDFB0158FACE9FB + C781D60667FB014E5ECBDE0195615B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_13_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000038C4944415478DAE5D8594CD3 + 701C07F06F8D6762D4E883FAE2F5A0F82489574282078860988A17646AF008EA + 1051914B4E11898BA8414470206810443C51031E80882F4430188307C4980072 + 88281BE318D0817FD7199B0D066EED1F66E2F7A9ED7A7CFAEBBF6BFB630821E0 + E225BF4B5243B6A251D50D9A8954E4222D741B23645BCEC60C060C4F7C201815 + E3E36612B874A52BB1643F65C5B90C0FDC1B934D14211EA857B1542B18A3C8C1 + B508290F7CFD32CFAC6A72EB0E098CBA785B302AEAB03B7DA06764064989D889 + 4635DD0A72279A71CA933E30222E4B30EA94DF76FAC01D61D7485AD46E34A87A + A8563032FE26B24EEFA5034C0AF7C48F762DBF63A1893E221D3E60632BE5BBF8 + 52361DA0F4782A519CD8431D181D7F03D967F6FD2740AA32835001328CA0C7A5 + 4511F5A81B09A0A5317A59F04F29167589E7CE988CFDAEB618377AD4A0672AAA + 821CF0FCFE558281194595686DEFC601C9E0485163502C30BFBC066D1A165F95 + 9D8322AD0A7CFDA9092A5D05DB345A1DB2C324920A90ED133614EB9AD550EA80 + 7F9035DFD4F0962CC2C4096319C3830A06FA5D7E4EE2BC1DD1ADFD3D1F925A64 + 364EEEE5000DAB85AA4D63806475C836232455A0A5193F8681B2931D80AC6E52 + 23C87D9978E0D1A44272E1E01A1E18A8786636EEACCC1955F54A149657A38BED + 35FAADA5B503F13E4EE281BE094F4982AF8BE00A72E12EF3DBCFCD686869E797 + 957DA8C5A5C3EBE801D55D7DFAF9F0D402C1503FE96A347D57A1B7EF27EEBCA8 + 181E208D74766B21CF2CA603F489CB23897EAE3C3054F15430ECB4CC859FE6F6 + 93744C22FEBBB83F90560C8196C6E8654176EE2151046CE48141098F04A3627D + 37F0D3C189B9480E74135FC103B13924396813F5DECCC92B4F9012BCD9AC31A8 + B3902FCA5ACC9E3687193006FBF766B89E8AD044CB24FC74FFDECC50C0B09C00 + 72BD240DAF422BE0E626C390405A3117F8B1F13D718EB3C7FCE93628F42FC1B2 + 5592A181C3D5DD3205E42EEDFA8B8E785BF706F70E3EC6F27976CC5F9B47B462 + AA7954DB5243664D9DCD7D66E897DF2ACB24FEB70F61CB620FC44B93F975ADD2 + DDBA9F93043BB92D1C6C9C70655726BAB41AAC38B3043DBD3D280D7B87C913A6 + 98068E54774B7750ECBEEA81E795F9705CB816D327CD4456693AA236CAE165EF + 6DF4EE68B5EE16DBCB927DE93BF5482E0B662CD4DF188CC1A7A5D5BB5B7F9045 + 5505B8EB9DA7BF310CB7FB27BA5B867FCCFDF761B5EE9625DB8E78F3C8D270B6 + 5FFC52CBDED32F62010000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_14_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003884944415478DAE5D8594C13 + 411800E07F8D178911A30FE08BA80F0A4F92A89890A0082218AAE005A91244C2 + 514050E492530442036A10102C970441444451038A5CE20B110886E001312680 + 1C224A4B390A6C8B63B786CD162C69B7536AE2FFB4B3DD99FDF69F9976FB1308 + 21A0C28B5F81F2234FC1906846D18E135401DB48E071E8636A9C82A8D3049B71 + 281BA10A882B98C0BD071C91267D5B9BAA0895C098ACA7AC514901CE2A816D6F + AAD5CA2675AD12D033A90C09225D61404462CD6092A0120A63B9F881F119E5AC + 51F1412EF881EE71C52837D60D86C47833483D6871A23B7E606C5A296B5462F0 + 19FCC0B3D185A820DE030645B358331897FE004A933DF100B363DCE1E784941E + 986D245CE4EA0E3834867917DF2EC303E45EC94782ABE7B10313D2EF43598AF7 + 7F02C42A630413A8493F252041B0FA3DD76928BD2C2C0750AB0C86E4366935C5 + DB8C0DC1C7D11CD6AC5CA1F249B55A8314F0A68F356B607163178C4DCC802F47 + 3552AFC0DAF65E189790F04D38A512A95760DBE76110C933382E91CA91937F45 + 62019273EC9662FF88188472E03CB2F7BB18FC38BB609DC16A827953D6C0E03B + 0D28CDCF1666A47FDA91F98D6AE3F85E362021A5201A973090A41C39AE84C40A + D434D6AE224038452E42F60C8B21DCC5427BE0A5EC7A74CBFF100D0C13BC521B + 779D670FDD0342A86FEF816952A6F4D9E8D824A407D8690F0CCCAC4199810EAC + 33480535CD1D5F46607074823ED7FAB10F6E071DC107144FCF29DA31F975ACA1 + C1DC8330FC4304B2B95FF0E875A76E8038626A460AFC922625A026FD95800169 + D5282BD8910646096A58C392790EF431354EF6658EF6958585405CC1046A9541 + DE8D674810EA4403C3339FB346A5061EA38F23B2AA2027CC59AD3528B7A0AFC2 + 3E30D9B49558B4067D532B514EF871ECB5996B792F2137E2845AC0E8CA5074AF + B900DE467582B3336FE9DA8C2EAA5B4B013F0D7D40F66956B0C3C814EA439AC1 + C29AB3341057A803A4A6F668862D74F4BF83C7FE2F60DF76CBC553BC9CD5ADBE + D15EB465A309F516AF38FFB0B50485945F8093BB5D219D9B435FAB97EAD693CA + 6CB0E49B838DA91DE49D2B8169A904F6A7EC8159D92CB444BF0743830DEA0175 + 55DD92DF143CEEBA4243572DD89A1D06A3F59BA1B4A508E29DF8E065E5A7F46A + A6B7EA1629239177919B0249C54E6333C5C62018FFDCF45EDD9A473676D74185 + 5FB5626330C7F827AA5BCC2FE685FDF456DDD2649C65AF6E691A94ED379012CE + DEAEFF80FB0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_15_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000038D4944415478DAD5D8494C13 + 511807F06F8C1B8911A307F022EA41E124898A09098A2082A10A6E902A41242C + 0504AD6CB28A4068400DB25A360D828888A20614D9C40B110886E0023126802C + 224A4B590A4C8BCF4E0D9396A532D307D5FF69663AEFCDAFDFCC34AF1F811002 + 2ADE4965282BE438F48B270167AEE5BC84ECD013049BB1948D98017A084A516E + D8291A182D2C678D8AE571E86D6A9EBCF0D34AE0DE03F688C93C4DF5E5C48240 + 5C990D6C7E53B1A86A52E76A0446663C658D8AF773C40F748F2F46C23067E815 + 93582B182F2C83BB515CFCC098D412D6A8980027FC40D7E802941DE502FD12BC + 15A4BE68419C2B7E605472116B541CFF0C7EE0D988BB282FC60DFAC453582B18 + 9DF2008A12DCF10033235DE1E7A88C9E986D622F72970ED83F8CF92D4E2FC603 + E45EC945C2ABE7B1036353EE4371A2E7FF036432760E10AB4C253340A6515B2C + 1004AB391845AB0A2E1790F53318985DAFD52DDE66A80F5EF6A6B066E58A0501 + 5A036F7A59B20616D4B5C3F0E82478731646EA1458D5D205235212BE89C61744 + EA14D8FC7900C48A0A8E48650AE4D8BC482C40729ADDA3D833280191023883EC + FA2E011FCE2E58A7B79A50BD286B20FF762D4AF6B18649D99FFDB0DCBA45E304 + 1E56202565201E91AA20490572440D8915C8346B5711201A27E7203B072410E2 + 64A63DF052660DBAE57B8806060B5F2D1A779D670B1DBD22A869E9840952AEF6 + D9D0F018A4F8D9680FF44FAB4469FE76AC2B4885BACDAD5F06A16F68943ED6F4 + B11BD2038EE0034A26A695FB91B9D5ACA17CEE4118F82106F9F42F78F4BA4D0D + C8641E8D401C199F9481A0B09E06328DDA62C12FB90265F0ED6960B8B092352C + 8167476F53F3645EE6685FC1D9405C990DD4F40C2A2CE8ABA81B8C366D25E63C + 83BC1BCF9030C8810686A43D678D4AF23F466F8766944356B0E3A280116541E8 + 5E431EBC0D6F0347479E7A0597A3BBA509F8A9FF03B24DB6801D06C65013D800 + 66961CCDCDA3A5EA6ECD07A46EEDD1546B68ED79078F7D5FC0BEEDE6C45F9B47 + B8321FB07BA80B6DD968442D9295C71F3615A2C0920B7072B733A470B3E87375 + D2DD7A529609E60253B032B6819C7385302193C2FEC43D30259F82C688F7A0AF + B7617EE07275B7141705B73BCE50DB5E05D62687C160FD66286ACC8718070178 + 58F8A8AD7C74D6DD22E524F2CC775122A9EC343451BE1884CA1F239D77B76690 + 751DD550EA53A17C3154C7FD13DD2DD51FE6D973E8ACBBC564ECB277B79886B2 + FD065AFFCEDE663AEB150000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_16_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003AA4944415478DAD5D8494C13 + 511807F07F8D1B8951A307F122EAC1E5A4895B42A2A2B8862AB841AA0495A016 + 1015D9641591D0801A4404CBA641105151D4802B225E88423006178831114411 + 175A0A52600A3E3B359DB48556E6751CE3777A339D79F3EBF73A9DC95F420801 + 5BF293B78832D41D9A9E01C37678FA6DD0564AD0466E1C915186AC300F09CD3C + AC4D6204EE4B292559E19BD0AAEEA5860D55C772EE223B62B301B868B91BE173 + 6E4D55998403FA294A486EE4560E18A72CA34625C8A5DC989D272F6A1B07AC7D + 526EB59B7A0BF9A06A86D3E4E912F6589B40A18A0F30BA34945CACCEC3D3A87A + 7878C86D773026E326352A31D08337F04DEB2BB2367529664D99838A906A2C76 + 919A037D138B8932D20B1FD58CA01D4C5496E242ACCC26905DDA0D675CF1A2E5 + 39AE07DCC19299CE8397D812187FE62A352AFE80A74D60737B139936C909127D + B1FBAFD4149290ABFBB1658117D26459DCB166409FB802921DEB8D568DB01D64 + BF68C1711FEEA2374A33E1AC988F957356236767217A745A2C4B5E88BEFE3E3C + 8B7E89090E1387078C4D2DA2461D0FDE6E15A8BF28769DF7C2A38607709DBB06 + 53C64F45D1B37CC4BB2BE0B7D49F5BFE41C01DD117485EFC2E7C52F709DAC1B8 + B4CB284AF2355B62A69F217BF2BD0D48B6663BCE35DC18C625B70ACC8CF1C1F7 + 2E1D37316D251C94D904B26323B2B2F1214AFCCB0D3786E91C5681AD1D02DFC5 + 678B8704B265FAC76C79DE20A0EC482E511EDD2D383021ED128A93F7D8FFA813 + 03C8B7CC5E1658A0A0329312A4832637D05FAB3F3D8B2D8FFDBF8021D955762D + F10CC709D8EB361F63468EB00AB01B786AAF0B35B0A0B2011D5DBDD827B58EFC + A7C007754DE8D432F8ACEAB68AFCA7C0DAB76D50EB3BD8A9D5E9913F86440A02 + 6406E87E8A2D5F3550E9814664D3170DFCA5F330CE61B4D9F3951A187CEE1149 + F57745AFEEF776646EE5B0710ABF95D0323AA83BB52648468FEC34430A0AE45B + 634749A0EA660621DFB76910EEB9D87EE0A1CC0A723A6015070C53DE1F36EE84 + 7C2D1A3FAA5051F71E3D4CBFD967ED1D3F9016B8DA7E6050FA3D921EB48EBA83 + 6CB1CBFCE2DD577C6AEFE2F6D5BC6EC6D903EBED7FD41981C6642126F7213534 + 58B6026DDFD4E81FF8896B8FEB3920DF327B59B0040A51DDBD3A280AAB84E960 + 606A39C90876E38051CA7BD4B024F93A6ECCCE9379586A7FB2600914AAF8006D + 260B62A45B76250B62A55BD4C98298E91655B22056BA459D2C88956E51270B62 + A65B54C98298E9163BE69D2C88956E51270B62A55B7CE6113DDDE25BACED17B6 + 1326EDF37D16760000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_17_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A64944415478DADDD8594C13 + 411807F07F8D178951A30FE08BD783CA93265E89898AE281A12A9EA46A10096A + 0151914B4E11898D5790D3726910443C51031E5CE20B1109C678C79808728807 + 2DE528B005C72EA6EB5628D0D97549FC9EA6EDEEECAFDF74BA9BBF8C1002B67C + 620B48929F33741D3D10B342D50F917C442EA33997B5C94C40E5D9BB441DB091 + 030625DCA3469DF6DDC08D8393F29112E8D20B5CB8DC995833CFB3B27C1907DC + 7F3A8FA4046D4283B653D40E1E4F7B80D4E0CD1CB0F24981C56E1A2DE4B3A606 + D3264F97B1C79A013D5537497AC8560E18A9CEA746452BE5DC989D272374DB90 + 80617901E47279069E86BE848B8B120302C5AAA102DF36BC266B63976296ED1C + 14FB976391837C606078D21D6A548C8F8B55407669D7C73BE245ED73DCF2BE8F + C53397F45D628F985CA20E71459D9611B58331EA3C5C8A5098016B9AAAC9D449 + D3203316FBFEB567D9C4FFFA016C99EF8A38450A77EC80C0A8F8EBD4A8A883DB + 2D026FE72563896A1E56CE598DB4DDD9E830E8B1ECD402747577A122EC1526D8 + 4CEC1FE8169945522376A141276E07D92F9A75C28D7F51B85F7445C9BB4238DA + AF81EDF829C8A9C844D446153C977A71CB3F28302236871A75C26F874520BBC4 + 4C3743F666EEEA45B235DBCEBE77639896BC5FE0CEB04B2423CA1DF5DA2E513B + 1819771539273DFA6C1213B2F47D116E7A15F46E0CFE79FD0293C3DDF0A3D5C0 + 4D4C5BD187148302D9E2FF31FF3D87456043B3C8BB3831D70C68CDB96640C5D1 + 74A23EB647746074DC15E49EDA2BFC61410AA0E00E8A2AE3151F38D0BD985F7D + 7E83BC1DFECFEAFF06FAA796095AE2197613B0CF791EC68C1C61112018786E9F + 033530ABF41D9A5B3BB15F6E1939ACC0C2AA6AB4E8197CD1B45B440E2BB0F243 + 23B4C60EB6E80D46645BBF4851804C0FDD4FB1F69B0E1A23D084ACFEAA83977C + 2EC6D98C367B00A006FA5D2821B15E8EE834FC7E1D925E3A649CCA7325F48C01 + DA163D0FC918912D66485181D6D6D8513268DA993EC84F8D3A046D5F241C7838 + B9989CF75EC50103D58F868C3BA35C8BF7751A14577D4207D36DF65953731BE2 + 7C560BBFD5F9263C2409BE4ED41D648B5DE6171FBFA1BEA9F5CF45DED420F1E0 + 3AE10F0B26A02959084F2FA286FA2956A0F1BB16DD3D3F71E3F14B0E284A07C5 + CC66DA3B0D5065979901A99385BFC32336F4A1AD934A276ECC0F8F04250B52A4 + 5B829205A9D22DEA6441CA748B2A59902ADDA24E16A44AB7A8930529D32DAA64 + 41CA748B1D5B9D2C48956E51270B52A55BD69C2B79BA656DB1B65F85A426ED7E + 3CBD210000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_18_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003AB4944415478DADDD8494C13 + 511807F07F8D6B62C4E841BD887A503C69E29698B8222EA10AAEA44A100D6A11 + 51110559452034A00611C182A041101117D4802B225E8C603404178C31115C10 + 175A5AA09469F1D9C174EC505ADBD7714CFC4EAFEDCC9B5FBF375BFE124208D8 + 0A49AF205961DED074F5F47E8E56DE066DA5C8977363769EEC7D5209CD3CAC4D + 620B28545902672DF026CEEC5B5B5D2EE180F2A3D78972BF0F078CC8BC418D4A + 0B5DC58D23B3CA9173C097033E795861B39B260B79AF6A82FBE80912765B1E70 + 475A19C989588D66B55ED00E1E3E7D0BB9916B1C02C694ED27E71EE5E371743D + 7C7DE5FC0E06292E93BCA8751C305E594E8D4A944BB9313B4F7EF4FA3F025F35 + BF20CBD2E761F2180F54863FC2EC8552FB40A1CA1120BBB42B4F78A2EEC3335C + D979137326CDB55EE2BEC0D8AC6BD4A8E4105FBBC0A6D646327E943B24A662BF + BF585B44C24B7761ED0C3F64C872B86D79C0ADC9254419E5878F6A46D00E262B + CB70364EC61DF46A5936E62AA663B187174E6F2E42974187F9A933D16DEC464D + CC73B80D1BE91830E14429352A61F7069B40D3411178C60FF71BEEC273EA528C + 19310EC5350548F05120685E30B7FC56C080F842921BE78F668DB01D64FF6861 + 52006F89192343B615F8F722D99A32766AEF85615E72878071E9C5D4A8A4B08D + 7681ECD88CAC7A7D0F97832B7A2F0CCB39AC809B62CE92FC84407C52770BDAC1 + F88C0B284ED9DAEF556C7963EEBB5FBFC0ECD8007C6F377013D356E21E994DA0 + 33F3F40B6C6E13F82A3E59C2019D2DDECB82EC601E511EDA22383031E33C4A52 + B7B9DE41B180F69EC59665750EB2404165162508D0E216F4D7EAFF0686E756BB + B4C413C7BA61BBF7740C1938C026C065E0B1ED0BA98185550D686BD76387D436 + F29F02EF3E6D8456C7E0B3AAD326F29F029FBC6981DAD441ADCE604276F48B14 + 04C8F4D09D8A1FBE6AA03201CDC8C62F1A044BA761F8B0C1BC37146A60D8A9FB + 243DD8137AC3AFCF5179550EE314418BA1630C506B751648C684D4F29082029D + ADA1832450753256C8772D1A446C98EDFAA36E6F762539BE7309073CA0BCE3F0 + 4447E4CBF0FAA30A954FDFA18B31F27E6B6DEB40468897EB2F0BA199B74966E8 + 72EA0EB2C52E73DDDBAFF8D4DAFEBB0B2F9B7072F70AD73B68069A9385D8BC7B + D4D030D922B47C53C3D8F303971ED4F380D4C9425FA010D5A937405154ED30D0 + 6EB22046BAE552B22056BA459D2C88996E51250B62A55BD4C98258E91675B220 + 66BA45952C88996EB163A79305B1D22DEA6441AC74CB9979444FB79C2DD6F613 + D5AA26ED225B44F00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_19_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A74944415478DADDD8574C53 + 511807F07F8D8BC4A8D107F1C5F5A0F224892B3171813354C549AA0647108A08 + 8A0C658A406C400D322D081A051115AD1A7022E20B5109C6388931010411072D + 6514B8058FBD985E3BA13DBD5EA3DFD3697BEFB9BF7EE7AEFC458410B015987E + 97A407AE82BAAB0F7C5567B716B2820A6404AD16D1ECCFDA447A60404A29C90C + F6E08091F2BBD4B063D255DC989D27EBA0B81F3877B107B1679E67152522AB40 + BECA1458F5B8D46A377516F251598FC9E3A788D86D8D80D21337893C741D070C + 4FBF458D4A0E5CCB8D0F6596203BCCD326609422945CA8CCC393C897F0F4941A + 77D02F5941B2C3D7A349D5CD6B078F9EB9839C431B0605BE6D7A4D56A62CC4F4 + 093351165289794BC4C6401F5931C98DD8C40163E525D4A878A9981BB3F3E445 + 6E1E10C82EED9A3477BC68788E6B7B6F63FEB405E64B6C0AE4AB2C01EB5BEAC8 + A4719321D215FBFDE5670524E4CA3E6C9CED85544936B7ED80C0E8CC1BD4A8C4 + 004FABC0EB8A2C2C90B9C26DE6729CD951802EAD068B92E6A0A7B7074FA35E61 + 8CD358CBC0DD8945441EE1854615C36B0713E50A9C8B91181E143BCF7AE1E1BB + FB7077598109A327A2F0E979C4AD93C167A13FB7FC8302E3D2AE50A3E282B658 + 05B24BCCF43264CFF9EDFD48B66638BBF45F18FA25B708F48ECD273931DBD1A4 + E6B783EC1FCD4FF036BB48F4C8F29A0728F62FEDBF300CF71B14189352488D4A + 08DE3A28902DC31BB3E91C66C06D51E7485EDC4E7C52F5F0DAC1D8D44B283CB6 + DBF1471D0BCC8AF6C6F7762D37316DC5EF975804DA5B462F0B7A60532BCF5771 + 46113F1D941CCE25F223BB7807C6A75E4451D21E9B9EC58665760EFE13405E65 + 06C50BD0E01EF9C7EAFF0686E45438B4C4539DC7C0D7C31523860EB10A701878 + D277093530BFFC1D5ADBBBE127B68EFCABC0FBD57568D330F8ACECB48AFCABC0 + AAF7CD50E93AD8A6D1EA901D1691BC00993EBA53B1E1AB1A4A1D508FACFBA286 + BF781646390D377A85A206069F7E4852FCDDD1ADFDF53922B7DC669CCCC70D1A + 460B559BC600C9E8906D4648871E75A6407B6BE43011949D8C19B2B6598DF02D + F31C7F59389055464EED5DC601C3E4F76C9EE8B874256A1A9528ABAE4517D36B + F45B4B6B075203963BDE417D3643DB41B6D8657EF1E12B3EB5B4FF3EC89B7A2E + 9B712859300D8FA2731F504383254BD1FC4D85DEBE1FB8FAE8A5CDC001930521 + D22D879205A1D22DEA6441C8748B2A59102ADDA24E16844AB7A8930521D32DAA + 6441C8748B1DDB9D2C08956E51270B42A55BF6EC2B78BA656FB1B69F05F829ED + 810882EF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_20_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003AA4944415478DAE5D8594C13 + 511406E0BFC6353162F4417C11F5C1E54912B7C4C40D5C4355DC2055834A008B + 888A28CA2A02B1710B228B6593208888286AC00510F1C5A8044370811813C105 + 71A1A52005A6E0B58361EC505A99DB7148F43CDD2E73FAF5DC9976F2CB082160 + CB3FFE2E89F75F055D7B77CFE3B0B412D0568062291ABF6AD1D5FD03571F5423 + 61EF6A194D1FD626B30414A3DA3A0C50659773C0B98B5D8890E39F9617CA38A0 + 5F6C11490C70E18021EABBD4B0E3CA55DC9AED937440CE012B1E16599CA6D142 + DE69EAE1307EB28C7DAF55A0582504185A70905C7C948EC721D5707555F227A8 + 3C7D93A80FAEE38041F1B7A85127FDD772EBC38985483EE4FA47E0AB86176465 + EC424C9B3003A5818F306F899C0FDC75B2802407AD4783B643D4091E4BBD8394 + C31BAC02D9AD5D73CE1955EF9FE1DAEEDB983F7581F9167BA9F2495AF0260E18 + A12EA4464529E5DC9AED931EB29907AC6FAA2393C63940662CF6F92B4FB34960 + DE1E6C9CED8E384532F75EAB40B1AA2FF07A411216A81CE134633952B767A3DD + A0C7A21373D0D9D58927A1CF61376AECC080618937A851317EAE1681C60FC58E + 0BEEB85F530CE7992B3061CC44E43CC944E43A15BC16FA72DB6F06F48CC925EA + 60777CD032A24E30465D808C70056F8B992E8678676EEB41B235DD7E66CF85D1 + BBE50302469ECBA34645EE75B30A64D7BDC8B2DA12E4FB16F55C18A63DCC801E + 115924257C1B1A74E24E90FDA259D11EFD5EC5A63FCC7D8FFB23303C36871A15 + 1DB0C52250481F1E706B6806498FDC818FDA4E51271811771939C73D6DBF5960 + 8149611EF8D66AE01AD356D43E45BF409B27C8021B9A45BE8A137279406BFFC5 + A665760E2A8EA411F5D19DA203A3E22E21F784F77F0214556652A2004D7EC4FF + 5AFDDBC0C094729BB6788ABD1D7C5C1C3162E8108B009B81677C965003B3CA6A + D0DCDA815D72CBC841051657D6A145CFE093A6CD2272508115AF1BA1354EB045 + 6F3022BFF78B1405C874D39D8AEFBFE8A031027B91759F75F095CFC2E851C379 + F778427AF28001E7EF93585F6774187E3D0E4E2B1B7023959713F48C01DA16BD + 099231225BCC90428A77B3D01728B4460E9341D3C69821DF36EA10E436CFF69B + 85FD49A5E4ECEE651CF090FADE801B9D52AE44ED070D4A2BDFA29DE9E2BDD6D4 + FC1D717ECB6D4F167AB319DA09B2C56E73D59B2FF8D8D4FA7B0A2FEB79D90C75 + B22045BA6553B22055BA459D2C48996E51250B52A55BD4C98254E91675B22065 + BA45952C48996EB16BC1C98254E91675B22055BA25A48FE4E996D0626D3F013F + 732FED98F9F84A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_21_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003B84944415478DACDD8594C13 + 411807F0AFC633316AF4417CF17AF078D244C5C4C413CF50154F5225A804B580 + A0C8A19C562036A0A656A4162C12041111450D7870892F44201A8307C498001E + 88072D2D50605B1CBB35DD745B5AB6B363F1FFB46DB7D3DFCEEC74BF7C028410 + D0094D7F82D2433743BFE1EF6B9CE82903BCFEF803BE767633EFD5BF6B832B61 + 5B0438E3D136812D50DB37687E1DAFAAC086868BD642C74F0D18077FC39D678D + 0C70D96A6F97AEBEBEA654E0104822BDFD0690E6D7B0800DCFCB1CCEA6C9823E + A9DB60D6B4D902FA5C163044568632C2BD1960ACF20936EC9C7833734C8FA338 + 29E4048C2B8944376AB3E1456C23F8F888C1299054B802DFB7BF459B642B61DE + F4055019510B9E6B846CA0F8C203A48CDCCE00A3D31F62A3D242B731C7A7324A + 2133CAC729905EDAAD97BDE0F5E7577037F8112C9FBBC27E898FA695A0CCE81D + D0AEE9273A8367AF3D86AC533B59C0B6CE563473EA2C109842BF7FBB3E1F4514 + 1D835D4B7C412ECA64CE650103A5C54815B39B01262A4BB151496221734C8F93 + 1DBB87F9D17B250A58215D0CEB166C806B07F2A1CFA08755A94B61C038007571 + 6F60F28429DC80A4620B34FD281CBCEE0B554DE5E0B570234C9F34030AEA7241 + B25D0A812B8398E51F16189F711F1B9512E2E310482F3165A4D0E15C3F3392CE + 7C8F85E68D6159F221810129854819E30B5F3414D1194C5196404E82C86E9358 + 90D5CD15501C5466DE18D6DF1B1628B95C848D9284ED1D1648C7FA8FD9760C3B + A07F621ECA4AF083762DD919A42F342FD99FFFA3CE1698202BC0462587EF1B12 + E86A58C5C2FEB81C942D39085F3503446730517E0B0ACE05F09F411AA888F787 + 5FDD066660DC241D17390462170B16607B17E15D7CA59033D069B1203AAD42CA + 3387880393E437A130F530FF626124819C8A051A485466155B2056B160F594F9 + 67E1552CB80B885D2C4464D5F05AE2391E93E188F76218377A94C32BE5552CD0 + C08B47D66003F3AA9BA0ABBB1F8E0A1D2379150B7C81E52F5B41A7A7E09BBAD7 + 219257B1C017D8F0A10334A619D4E90D2664CF90485E8F3A0B901AC4BB153FFF + D082DA04B4205BBF6B2148B808264E188BBDFB58C542F8D52A240BF2625A1F31 + AA6ACE034903D799DB1E1A9DDE0A4999903A1692D70CDA025DCDF8310250F752 + 76C8960E2D44EFF5E4F42CB68EDD3D784251892E05AF678051CAA79C71E7C59B + A0F98B1A2A5FB6401F65647DD6D9D503F2900DFC81EEE86E1101FEEBEE163120 + 89B8DADD720AFC1FBA5B2E014985187024BB5B9C80EEEC6E6101DDD5DD220624 + 155BA02BDF757B77CBD5D0B63F922338EDCDEBC7EE0000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'SetProperties_22_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003B94944415478DAC5D8594C13 + 511406E053E34662C4E883F822EA83CB93246E89098A208AA10A6E902AC1252C + 2D885A5194550442036A90D5B2491044541435E08A882F442118826B8C09E082 + B8D0D202A54C8BD74E4D27332DDDEE8CE3FF34DD6EBF9E3BD339390284109039 + 5AD4842E446D04ADEEEFE313F287E068CE8A37C3FB2F0A68EAE8865142CF786D + 60701872A37D050E2F460B6913988031F90F507E8C1F05C48986D041E7C71FF0 + 7560887AAEED4D2F141CDE6204AE5AEFEFD4E26D2D0D020BA06A74DCF838A9EC + 3136542ADA00FD3F95A01FFF0D379E763180EDCF1AAD56D360419F14BDE03E67 + 81807CAF4D201719D1EA4056DDE23030B1FE38BADC5A0ECF13BA203050CCAC60 + 744E232A94FA53C004F9036C58A6D88F3A26D7293A26B40B7CDBF71A6DCEF184 + C5739742536C2BACF612DA0672154780E4D66ECDF381CECF2FE166D43D58B368 + ADE5168BCFDD41F2E30114302EFF2E362A3B661B757CB2B0018A4F043280BD03 + 3D68FE6C771018423E7FADAD1AC55E3F043B570443AEA8987A2F0318995D8F8A + E3B6439F52CB6905CF94DE8792933BA82FBD555F046B651EE0BDD4174AF755C3 + A84E03EBB256C2987E0C5E24BE025797591303C36475A82C7E17054C913760A3 + D2C442EA985CA73C6137FD4B61FFA56078F2EE11F82CDB047367CE839A179590 + 1A2083304F09B5FD76815CC51C486E31A1275078658811496689DB32E38561DA + 7287804985B7B15119D1813681E4B109D9FCFE31D4491A8D17067D0D0BE0C18C + 5A248F0F862F4A82D30A66C8EBA1225934E1554CFF6336FF9C5D606ADE756C54 + EAE120AB4067D661004353AA50497208F4A9B8AD20F943ABD243D9370BE6C0E4 + 9C1A6C54BA74CF84405615DC9B5881CA53F7C357E518A7154CC9BD0A359907D9 + 370B24B02829147E0DE9A885719376448405B4D92C98807D831C5FC505B50E01 + ED360BA25365487EFA00E7C0B4DC2B509B15CEBE59E01388D52C90404E65B4D0 + 81D8CD02ED36F8CFC2AA59E00B88DD2CC496B4B0DAE2856EAE10E1EF01D3264F + B2FA4B59350B24F07C841736B0AAF91D0C0E692152681DC9AA59600B7CD4D103 + 6A0D01DF14235691AC6E756C81ED1FFA4169A8A05AA33320876D56D2D1309A05 + 139018C73B153FFF5081C20034217BBEAB40225C0E335CA6324E7CEC0A4A2F3E + 4139121F6AF4115FD6ECF042B2306FE3D843A9D6D0908401A96620EDDD8BE9B1 + 3807CD81CE66FA14012846080B6477BF0AE28256B307F231DD6205E46BBAC51A + F83FA75B4E01B988B3D32D9BC0FF3DDD721AC8553803F239DDC202F235DDC206 + F235DD72661DDEA75BCE86B4FD01414041ED0B5884670000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'SetProperties_23_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C34944415478DACDD8594C13 + 411807F0AFC68BC488D107F1C5EB41E14912AF84044550C150152F489520128E + 1644450EE51481D0E091CA69B9340822228A1AF044C417E2118CC103624C0039 + 049496721468C1B15365ED9642BBB36BF19F34995EB3BF9DE9B21F1F0F210438 + 21979F2189C80986D5BF9F33CDDC593C900DAA40DEA70459FF30C8358F3EA50A + 9A3A1510E1BE81473227B6F1C68127B2AAD0A5C0AD14305CFAD8E489CE0B9DA1 + B14D0655754D30A41AA5BDD7D33B00A941DBB4C0F59B5D199DFDEB9A0A1E050C + 4E7F84D2835D88571047A952C3BB2FDDD0DED3FFF7201F5B20E3D80E0AF8E645 + E5A4ABA9B1A0AFB21658B668390F7FD620503134A67D1E93F794181A22D8029D + DFE5303AF6136E3DAF3719185D1E86AED5E6C3CBA87A707313C294402E3238AC + 0671518D49C04F1D1F90B3C41E562DB686AAD05AD8E0C0A7038324952833C495 + 0246491F11C392852ED418CF9375923F25106FEDCE342778D7FA166E073E808D + 2BED266EB13E90AB1802B6F434A3A50B97014F13FCFACDD74528B4F428EC5BEB + 01A9826CEAB334A0F0C23D240DDB4D0123D2EF13A3CE05EFA2C6A7322B203BDC + 8D3AE89DF22CB013DB82A3F536C83D5C04436A256C4A590723A323F02AFA3D58 + 5A2C300C0C38578EB223F640877C98D3153C9BFB10724EEDD53D28785FF18067 + 0D4FC0C9663B2C9EBF048A5F1540FC6E31F8DA8BA8ED9F00F41597A1BCC8FD14 + 304E5A418C4A10F2A9319E273FEA006D8B55A32AE457E0A945E2ACB6B2D15E18 + E35B6E1290AB1802E2F138B2BAF12994892AB51786EEF78C026332EF12A39282 + DC8C027174FF30EBCF3101E8935482A4911ED0265771BA8249D272B81A2B607F + ABD307C6A79512A3E28FB91B04320DAD58F08A2B4439B19ED0A1E07605F18916 + 267AB15F417D60ACA4981895187270522071B17028FA2ACA8FF78676F908A72B + 18977A038A937DD8170B189815E3053FFAD5D4C4A449382E600C345A2C8C033B + 7A39BE8A334A8C024D2A1604A7F390F4CC11CE8109A9D7A124C58F7DB1602E20 + 71B180819CCA74A20B242E1674EED3FF2CAC8A057302F19871B1109A53C36A8B + 57585982BFAB2DCC993963D23365552C60E0457F076260617503F46AFE590FE0 + 4F8E6475AB630B7C52D7ACED247C930D4E8964125AB1C016F8E673E79F76875A + 831C3088E464055563643FC5D66E854E4F460DCD5D0A10F1D7C03C8BD9B42B73 + AA7BB1FEC9D080FACDA3C8BC6A9371625F476DDB43BF71D4DCD54743720A641A + 53BA5BAC80E6EA6E1103FF87EE9649C0E9EC6E3102721126DD2DA3C0E9EC6E11 + 01B90A67407375B78881E6EA6E31F9AED9BB5B4C836DBF00712E50EDDE2D7303 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_24_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003B64944415478DACDD869508C + 711C07F0EF1A573306C30BBC115E385E31E39A318394735ACA55B3981C13B652 + 24A253D2D8112649D92E86929C618A24C99B463599C63DC68C5252D16E5BBA76 + CBDFFE971E7BF75C96EFCCCE3C4FFBF4EBB3FFFF3EBBBF7E1242086882CF3F26 + 097E6EE8D6FD3A0FCB2801DB287C5DD1A9D541DDD609557B37D4FA475BA71635 + 4D6DF093CEC408A7A112D6C58C426D125B40AE193E44025587D602F9B1518350 + AF7906E0DCC5EE9C8A5794E64B18E0BE946272C67F29033CA87CC8BAD049F90A + BCAB57A1B8EA23BAB4BD26CFB5B47E4762C0320658F9B4C0E66AEA2DE493AA16 + CE632749E8B526C0C0A4429214B892F70AD2D06DAEFED08CCF2DED7F56E1752D + CE05AD62058CC83B402E9765E259F80B787ACA6115A8E9EA339C47663CE20D0D + 962D41E357357AFB7EE0C69317AC806F1A5E9115090B3175DC74148794619E8B + D43E508C7474EBA0C82E1D1048B776F5593754D73DC72DFFFB983F6581E51607 + 241490E460770618AE2CE40D3B2E5FC91CD33A29FBA526C0DA961A32718C3324 + FAD09F5FABC82621D7F760FD6C6F24CA52996BED02C58A39F0765E0A162866C1 + 75FA32A46FCD4697AE138B4ECC414F6F0FCA235E6294D368EB40F9A9BB4479C0 + 83018626DDE38D8A0F5CC31C1F4ACE47EA414FE33F8A6D17BCF1F86D11DC662C + C7B8911390537E09311E0AF82EF463B6DF02B83B3E8FA486AE4583BA5BD4153C + 9AFE006987D6996CB1B6574B765EDA6240D24C1B3FC37063F46FB955A0AFE226 + C908DBC000A395F9BC51B17229734CEB64866FB4B849FA9125EF1EE1A65F81E1 + C630AE312050ACD802D2187F309BFFDE80C0C8E43BBC5171019E36815CEA9800 + 77C4E512659837EAD55A5157304E99878B5132E1CD823930E6EC75DEA898202F + AB40412BE8139D45D2A2B6A04123EE0AD2179A75CC4778B3600E8C4AC8E18D3A + 16BC8917D06EB3B039E222C98CD986CFEA1E5157303AF12A728EEF10DE2C5060 + 4AA40FBEB5EB98C27C13BB57C609C8AA59E80736B48A7C179FCBB500F26A1664 + 873388F2C876D181B18957907B62A7F066C15140DECD02058A2A338A319077B3 + 60F4DC5F8BA066C1D1401A4ECD42485AA9A02D9E3C7E1476B9CFC2B0C1836CBE + 52415F7514787A970B6F6056C95BB4EAFF59DF2DB58FE41293664128B0A8AAC6 + 3049F8A2EAB089FCA72B58F9BEF1F7B843A7477EB78A1CE8BBD8FC5AAB406D1F + BFB7625DB3C66826A3434D93C662702408E888E996A840AE613BDDE20DFC1FA6 + 5B7681FFC3748B15F05F4DB73803C508DBE9162BA023A75BA200C58A6840474D + B7B8D471F8748B6BA8ED270AA15FEDDC1D64880000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_25_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C24944415478DACDD8594C13 + 411807F0AFC68BC488D107F045D407C5274D544C485014150C55F182540922E1 + 2820287228A78884068F2022582E0D8288276A40914B7C2102C1183C634C04E5 + 12A5A520570B8EDD9AAEDD6D4BBBB363F59F34D9A5BBB3BF9DC9C0C727400801 + 95C8BC06743ED0199493BFCFB9E64B9F0264436320577F064754D0FE5501C1C2 + 9530C76AA6006B4075289B400B8CB85C8732825D604CF5FB3CB6A0DEEC8124FE + 9B6044A902F9E0880E52A9460E32906B37B8737AFBE6860A815120D7CC9E2100 + D9B0520FF9A95701319E0E34B0E559A5D119555BD0675907D82D582CA0AE6500 + 8FE6D4A20B219B6960B4F489D9B8B3625778DF2983DAD64F30AA9C607CD73FF0 + 033243B798058C2F8F42D71A0BE1795C1B787888993318965585B2C2DCB06790 + 0AB5CC2F3FF64157FFD09F657AD30197C2B79904BEED7E8D5C339C60998D3DD4 + 46368283B3D03050313AA9394F28A8C18646883642EF37394C4CFE84DB4FDB4C + 02A9A5DD7ED1055E7E790177431EC1BAA58EFA4BCC0692C8F0980A24250D7AC0 + 8EFE76B468BE1D08D4A17E7EB3B90445DE3A0C7B567B41A62897BE96010CCDA8 + 44D911EE34304E5A850D4B13BBD1C7D43839C784F443EF95E780A364156CB2DF + 02F9074B60543502EBD3D7C0F8C43834C5BF026BAB79E60149850D543F147CAF + 7841DDBB6A7059B1156CE62E84D2A62248DE29017FA7607AF9F580E2730F9034 + 6A270D8CC97A888D3A13B6833E3E9E5D01B9D11E8C25564E28514091B7064965 + B9ED0ACDC6D02EB94160D09972941BB30BBAE5634467F054FE63C83BBE5B6F93 + 6891F5EF6BE04E70A56663E8DEA707F497DC4105B17B696092B4021B952216D2 + C7D4388571FB0CEE62DD5FCCEC314C0249850DE472EF94C084ECFBD8A8D4500F + 8340AE61140B7EA965481AEB059D7225D1194C9596C3D54411FF196403932FDE + C24625877B1A0562170B3E49C5282FD11BBA156467907AD1E2D33EFC8B053630 + 31A3141B753A623F67A0C962E140FC555498EC0B5DF271A233989479034AD3FC + F8170B143027C107BE0FA9E88171937244342510AB58D002BB0708EFE24B650C + 2076B1203A5180A4270F1107A6645E87B2F400FEC582A580D8C50205242AD309 + 1B481D732E1674F07F2DBC8A054B01B95CCF00529D053E0F5F626B0D81EEAB60 + D6F469C4DE94512C685B1FB829AE7F0703EA7FD68384C691BC67900FB0BAB55D + D349E8910D1B459AFA5BCCBE9628B0E5432FDD38EA91FD30882402FC9BDD2D5E + 404B75B78801B98644776B4AE0FFD0DD9A12F8AFBB5B6603FF45770B0B4822C6 + BA5B58404B75B7880149850DE472AFC5BB5B5C43D97E0142206BED6D1E278300 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_26_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003BE4944415478DACDD8574C53 + 511807F07F8D33316AF4417C713D389E347125262E7060A88A0B522538825044 + 544451A615898D2B880CCB922088A8286A401111F1C5284643DC3126820311A5 + A520AB058F3D35BDE9E2D27B7A2DFE9F6ECBE5EBAFE7E4B45F3F09210434E119 + 55E474E062B0E6E9FB06685A3BD1D2AEC737F52F04496762C8C00112E6828650 + 9BC41AA8EB214CC53E376AA136004DC8DAEF5A044B6760F8B0C11C72CE222F41 + C5ABAB4A241C30ECDC7D9218EC814EFDDFC79159950E175206B8A35DA787A6A5 + DD0CA933205B2C9014F8F46169AFAB6AB0904FEA3A4C18335142EFE5050ACDD0 + 4112A8DB7436C88F0D5A44F8CC7508185DBC9F5C78948DC7512FE0ED2DB75CC1 + BD6915E4CCCEA51CF080EAAEC3B893F21578F7458D8A671FD1A1EBB6F85B53F3 + 2F24852CEB13F8A6FE155991B80053C64E4345F823CC5D2CB50486269791E450 + 4FE615A4A1DB5CF3A1115F9B5AB9E7AA5FD72165F74A5E20DDDA55673D50F3F9 + 39AEEDBC8D7993E7DB6EB109A8EDE8313E8EC9BAC70C0D932D41C30F0DBA7B7E + E3EA831736C0BAA65A327EF404480CA1CF5FAECE27E1577661FD2C5F24C9D2B9 + 7B798162A4AD530F657E9505F07A711AE62B67C27DDA32646EC94787BE1D0B8F + CF465777179E44BFC4C861A3EC0343124B496A9817078C529531C38EC93DB96B + 5A276D9FD4FC45B1F5BC2FEEBF2D87C7F4E5183B621C0A9EE442B146898005C1 + 161F49BC40B1620DA45BACEBD6911DB97E4624CD54B7E9C68361DA72BB40F9A9 + 9B44B57F0D078C48BEC58C3A11BA9ABB3E985A82F403DE3687C484AC7C770F45 + C1A5C683615EC3061874A298A447AC45BDA653D4153C9279071907D7D93DC5E6 + 1FCCD6FF67030C501691ACC80D1C304E55C28C8A974BB96B5A273B6A23071452 + 87172856CC814263D12C580363526F30A31242BCC55FC1ED09854415E98B2F1A + 9DA82B98A02A464EACCCF966C11AA8387B8519A5D8EDC304E46D16FCE3F24846 + AC1FEAB5E2AE207DA37947FD9D6F16AC81B18905CCA8A3619B04011D6A163647 + E7906CC5567CD57489BA8271499750706CBBF3CD0205A6C5F8E367AB9E2BCC9A + F83DB25E81CCCD820958DF2CF2294E29B40032370BB243594475789BE8C0F8A4 + 8B283CBEC3F966C195407A2DB859A040516566B107A411D42C98ADEE3F8B535F + 75AE000A8DCD64C1996293DC4622D08B7FDCE1D40A3A3B9BC9AB7C8B66C38F75 + BE994C5FDFC5D6F78A0A2C7F566B9C247C53B7F58AEC57A023D32D5180FF7ABA + C50CFC1FA65B82804223C6748B17D8DFD3AD3E81FD39DD120474C5744B14A018 + B137DD6206BA6ABA25A48ECBA75B42436D7F00CED46EEDE2D0C3A80000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_27_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003BE4944415478DACDD8594C13 + 411807F07F8D178951A30FEA8BD783C793245E89091EE019AAD693540DA2012D + 222AA228A715898D572A205810340A22E2811AF044C417A2180DF18E31113C10 + 0F5A0A726DC1B18376D3A550D8D9CDC6EF69B6DD9DFE3A9369FEFD548410D00A + 4F2F21C736CD066BDD7D5A81BA460E5FCD0DD8ACF644BFDEBD54CC93FD2B6A53 + C9057CF2AE1A96FA663BD26647FEEA143975962F113367594981CA05C8B5899A + 83AF4FDFAD30DB810E64C5372B82D59330C0A32F8FA4C0270F0BBB5C59BB857C + 345762D4D0D12A7AAF001876F23E3106FBA0D9F6F73A32A3B8C73843A0371A39 + 1B2C758D4E48CE8EAC1320BB0346E7EF22E74A33F128EA39341A1DDC02C556FF + 3E2A981B3817E4876A2B22564FEB16F8BAEA255960F4C2B8611350145E8A69B3 + D542E08ED422727CCB5C1EB8DB74A7C7B823BA0578FBD98CA2A71FD0C4B50ADE + ABA9FD85C490796E81746B1727F9A0FCD3335CD97213D3C7CE70DDE2D0E4DB24 + 397421F30AD2A2DB5CFEFE3BBED4D4F3AF95BDAAC4896D8B04C0CA9A0A3272C8 + 28A8EC455FBF58964DC2F3B662C5643F246AD3F87B3B055A9BDADAAF6332EE31 + 43C3B47350FDC382D6B6DFB8F4E0B90078353F15330C9EF09E300FA7D667A3C9 + D6889987A6A0A5B5058FA35F6090C7E09E01E5A886661B0CD92502A0FD431170 + DA0FF7DFDC85CFC4F918367004721E9F857EA901815EC182132F0086180B494A + 982F0F8C32DD66861DD42DE4C7749ED49D6AC11673AD1C093ABBAE1D496BFCF0 + 89ED07C3B1E53D02CA559D01E9D8812C7E7B0F97830BDB0F86F3732E40DDD1EB + C4B46B290F8C48BEC18C3A1CBA841FEF492940DA6E4DA7A7D8F987B9E31C2EC0 + CD87F3495AC43254599A655DC1FDA76E217DCF721E28E6590130D070996444AE + E48171A6026654BC4ECD8FE93C9951AB988283202C7404CA55CE4059573026E5 + 1A332A2144D32590392C6C4CC825A6483F7CB670B2AE6082291F6762B5D2C342 + 47A03E298F19A5DFB65A34B0DBB0E01F9745D263D7A1CA2AEF0AD22F9A75C05F + 7A58E8088C35E630A30E84AD710B640A0B6BA3CF904C7D00BE585A645DC1B8C4 + 0BC839B8517A58A0C0D4187FFCACB7F113B356FC766D9740E6B0E00056D5CA7C + 8A4FE40A80CC6141BB378398F66D901D189F781EB98782A48705A581B4448505 + 0A9455E654CE4031CF09804EDBFFDF94202C280194DC5990F2E163860FC2265F + F73D194961416A6F26ABF80D6AED7FD6DD358E24850525BA5B92C28252DD2DE6 + B0A064778B292C28D5DD620E0B4A75B798C38292DD2DA6B0A064778B8E458705 + A5BA5BCC6141A9EE9698E715EF6E892D6AFB032F2DC9EDAEB1768F0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_28_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003BC4944415478DABDD8594C13 + 511406E0BFC635316AF4417D717B5078D2C42D317103D75015575235B804B588 + A888A2AC22121BB720205810340A22AEA8014536F1C5280443DC634C0417C485 + 9682149882D75E4C279D9616E6CE38E7E976BBF3F5DC4EF3E7A80821A0159A5E + 4E4E6F9F07D6CA2A7B8BC6E636EC504FC180BE7D54CC1BD915B5A9E4021655D5 + A0C9CCE19BA1C52572FA5C1F2266CF8AF27C956CC0CAF7F5305A3BD864B65891 + BFBB455260E5E30297DDB55AC827432DC68E18A7A2EFED16C8758AFA927C7DFE + 6182C10AB4216BBE9B10A89E8CC183FAF3A09E809179FBC9E52799781AF102BE + BE5A610743CE959284406FB459FE3D0ECF28EB354E17E005336781B1C96C87E4 + ACC82601D21DF04DDD2BB2386136268EF44049E813CC98A7760F145B03FBA960 + 68E19C901FEB4D085B37C32D901EEDB2246F547F7E8E5B3BEF63E68459CE47BC + 37B5849CD9B980071ED03FEC35EEA47631DE7D31A0A4EA235AB90EC16B0D8DBF + 9118B45000AC6DA82163868F85CA5AF4F96B15D924F4FA2EAC9EEA87444D1AFF + 5E013038B99024072F61EE202D7ACCD51F7EE06B4333FF5CC5EB5A9CDDBD94BF + E8EDBC54CCD24D8197C7429CDF948D568B19738E4F437B473B9E45BEC4D041C3 + DC034DAD9D5D8FA3328A99A1219AF9A8FF694447E71FDC78F44200B45E149B2F + F8A1F46D11BC3D1761E490D1C8797609B12B7408981D28B8A1DC02E5A896360B + 74D9E502203D62AE8323DB2E6DEC42D29A34CAB3EBC6B01D79B7C0A084029212 + E2C30323F485CCB063DA25FC9AEE93BA4FED7493D89065EF8A7133B0A0EBC6B0 + DFA347A05CE50A48CBFE8FD9F1734E40EDA9BB44BF7F050F0C4BBEC78C3A11BC + 9C5F1F4CC947DA015F1E28661F0170C7893C9216B61275C636593B78E4FC03A4 + 1F5CC5141E0461214077936484AFE18131FA7C66549C56CDAFE93E99116BA577 + D0112857390299C38223302AE50E332A3EC89709E8362C6C8DCF25FA703F7C31 + 72B276305E9F878BD11AE961C111189B749D1915BB7B9D2860AFC2827F4C1649 + 8FDE883A93BC1DA45F34EBA8BFF4B0E0088C4EC861461D0D59EF12C81C163644 + 5E2499B19BF1D5D82E6B076312AF22E7D856E961810253A3FCF1ABD9C26FCC5A + 717B342E81CC61C106AC6B94F92E3E9BEB04A46BD16141732883E80F6F911D18 + 977805B9C7B7490F0B4A01C57CD60928ABCCAE6C40B125080B76BFCFFF56923A + A81450D26441CAC5C78F1A8AED3EEE074792C28212D32D496141A9E916735850 + 72BAC51416949A6E318705A5A65BCC6141C9E91653585072BA45D7A2C38252D3 + 2DE6B0A0D4744BCC3E8A4FB7C416B5FD05F51EC6EDD3598F900000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_29_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C84944415478DACDD8594C13 + 511406E053E39A1831FA80BE88FAA0F024898A89098A208AA10A6E902AC1252C + 05044514651581D0881A04040B820641C41535A08888F862048221B8408C09A0 + 80B8D0D20205A6E0B517C364A6B485B9334E3C4FB7A5BDF371A6B7FD73240821 + C015915BF3774158CB16594180BB3DCC9A3E4DC2671F66619B8409BC18E044BC + 59617533F4F60D41A0D43C72ED46774E4DA8AB29930806AC6C6803AD8E826FAA + 01B3480CAC7F556EB6C3060BFAA26A079B854B25F8B58202EB3F7583DAD041AD + 4E6F40F69B444E068C293D816EBCCE8737D14DE0E92937DD416A94ECA3F8F587 + 065406E038B2EDBB0682A4AB60EE9C9934C812F063D77BB435CD115658DB4255 + C46B707092B281E1575EA0B4201718D2FF7D1C95573D659CC2CF1974941ED45A + 1D034919905A16D21C10DFDAED192ED0F8F52DDC0F7E02EB96AF9F788B8D815C + 6BF60C09A806A809C8D66E0D447A39B080ED3D6D68C9021B90180A3F7FBBAE08 + 45DC3902BB577B43BA2C877E2D0B782CBB0A5D0ADE4C034F2A9F4D19775EBE15 + 5A3A5450D5D00A83D408EB6F3DBDFD901EE24A5FF4416936AC57D883B3AD2B5C + 3D5004837A1D6C38B706864786A136E61D58CD996F1A189A59813243DD883B88 + 0BDFE6C6CF3FA0B3A78F7EAEEE433B5C0EDBC6BC281CBCE60D2F9A2BC1C56E0B + 58CF5B0CC5B50590E0A1003FC720D6E7D5245033383AF63836EF3931345CB609 + BA7FAA6164F437DC7DD9C402E25B4C8D50C8BFC0670C896BE522BBB183317ECB + A70414A20686F4A028AA9900C4EB716475CB73B817543E763098EF9D000C492B + 4759E1EE34305A59410C4B91BBD16BBC4FF671A9C953CCFC6236DE6352A05065 + 0CE4F25E16507EE111529EF0A08191998F8951A9A13BE8F5A9AC32C839E94914 + 2058612130B514E544EE842EF590A01D3C7BF529E49EDAC5BF837E8A7B282F6A + 0F0D8C579611A312E5527A8DF7C98FDE6BF19784D131F361C118285471015A0C + 0BC6C0D8AC87C4A8E4104FCEC049C3C2E1E412A48CF2860E352568079395A570 + 3D4EC63F2C18031332EE10A312C2BC2C0289C2826F7C21CA8DF3812E8DB01DC4 + FF6861922FFFB0600C8C4B2B26462585EF330B240E0BFB63AEA3FC8483D0A91E + 16B483F1E9B7A038E530FFB08081D9B1BEF0AB4F4F6F4C5A894765168178CD39 + 2C8C03BB7A053EC5974B4C0271710A0BB2D3794879E690E0C0C4F49B5072CE9F + FF4F9D1840AEC50A0B1828A88C518274907180FE59F10A0BFF0370D2C9029F8B + 4F65BAC52B2C8835DD220E0B624EB788C28258D32DE2B020D6748B382C8839DD + 220A0B624EB7F09A7358106BBA451C16C49A6E71D94FF4E916D7C2B63FAC35BD + ED1726B1BE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_30_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C04944415478DACDD8594C13 + 511406E053E39A1831FAA0BEB83DA83C49A26262E28AB884AA758354092E412D + 20288220AB15088D5B2A205810340822225A35E0C226BE1081688C2B3126820B + E2424B0B149882D75E4C27DDA6EDDC1947CFD36D99DEF9E6CC0CF973440821F8 + 9F4B640646E5D57392CE9AEA01FBFDBC60CCC81122A663162DF763758EA6FA0A + 9115F0ECFE15C4C0A2BAB7D0D5DD0F07C4CC480C6C7E5CC97801260BFAA86983 + 1993678AF0B1BC02AB9EB682DE40C1574D2F23D21530411D8DAE3414C093F817 + 2091C8F8ED60F3BB0ED09A3AA837184DC81E874867C037EDAFD05AE552983365 + 1ED4443580F70AB163203544F6287EFAAE038D096846B67ED34188783E8C1F37 + 9A063101F1ADDD90E903CF3F3D839BA1F760F1EC25F6B738F2422D5286F840BF + F1CFE7B8FC3AB7718AE05560A08CA0D51B2C909409A9B7429A816D9DAD68FAA4 + 19203215FEFE7A53318A2A3B085B1704408634973ED629906D8D1D25024D2F65 + 87FCD0A183187F6FFAA4B7D439B044E105ABE6F9C2C55DC5D06734C0B2930B61 + 6070001A135E82C7B8898E8187736AD0B9D0D534F0A8EAA1DBB8D3B2B5D0F259 + 03354F3F401F3568F5B7CEAE1EC808F3B53C29ECBE1400B56FABC0C7730D4C99 + 300D4A1A0B41BE4901C14B43AC1E072B6078D6039415BE8EB883B8F06D7EFEFE + 3B7CE9ECA6BF6B7ADD06E723D65BDD626A9042FB0A038791B8E64EF51C7E31CC + B7DC2950D73734FC3931BF9A181A295D091D3FB43038F40B6E3C7A6107C46B33 + B2AEA51ACA432A875F0CCB3D5C02F9A8DE7E23288AEB1D027159FE63B6FDAD1D + 304C5989B223FD6860BCEA01312C5DB68E5EE37D728E8869209B7D9C02F92A4B + 20DBC2361A283B7307A9A237D1C098ACBBC4A853E11BE9756C7605E41E9570EF + E081536A941BB319DAB5FDBC76F0C4C5FB9017BBC5E133E8A063CC612158518E + F2E3B6D1C0645505312A4526A6D7789F82F8ED6E019D86055B205FE52ED06558 + B0052666DF2646A585495801DD0A0B7BD34A912A2E003E6B295E3B98A652C3E5 + 2429F7B0600B94679611A3E411FE8C40E2B010945C84F29202A15DC76F07F185 + 16A506710F0BB6C0246509312A3572072390382CEC4CB88C0AE4BBE18B7680D7 + 0E26675C8392F4BDDCC30206E62406C1CF6E23BD3169A51C92BA04E2621516CC + C0F62E9EDFE2F3A5564036BFB5024A8FE523D5F13DBC035332AE42E9C97DDCC3 + 821040CE1DE45566519640E2B060F186FFB5E21416FE35D0ADC9029793BB3BDD + 220E0B424EB788C28250D32DE2B020D4748B382C0839DD220A0B424EB7F09A75 + 58106ABA451C16849A6EB1B968C1A75B6C0BDB7E03E453A7ED3192E2B2000000 + 0049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006544944415478DAE5D8797013 + 551C07F06FEEA6055B4E836590965EA196B35AA438C2142A03C2700BE2584154 + 8A824219D056298A744007E5E8B420883282C541402D38807229329CAD5820A1 + D08BB634D0236D68B34D36C9F3ED966C48D3401322CEE8EF9FDD7DD9BCFDE4F7 + DEFEDE6E448410DC2F9296EF20D9A933507D9BBDEFB99EC4B20DDF63DBF299A2 + 7B9D23F20698FAD9B75EA33216BDE87BE0CCB4AFC8E6F42454D59B7D9BC17539 + D8B172966F8099692FA3AE91153AF6363E7A7BC63F07BCD9E0DB0CAEC8DCE91B + E0F4A59B4976FA6C9F0397AFDD8E9DAB5FFB9F007D2ABB2B7C02FC37E3BF014C + F9E2D803FD8ADEAA4E78636C3FC8252291A7DF6D3770CDEBC3BD066E3FACA135 + B419739F1FE031F2A1000F9C2F839131A1A2B6C963E443019E2FACA2EBB81946 + 931515D50D1E213D029AADDE4DC58A6A03F406A3802CAEAA47F2D81804F8C9EE + 8B6C177061F661F27972028C661B7F9CF6E5D176E356BE3A0266D682BADB8C03 + 4987BBF86663BB905E013D0D7FB918F54D665764450D164F1FFAE0C077B27E25 + 6BE78D14804B371E6A376EF5DC44682B0D3892570CC6E4BC54D6D63782F6FBE0 + C0F9EB0F900D0B467B9D412EB8613E77AD16BA9A7AA1EDF4A532D07EBD07DEA8 + 3190137985F85D5BC37504BDD1CAB72FDBF28BD7D0C53347A0F2961EF45EC19E + 237FE299A8AE183628028F757DA44D689BC03CCD75F2E3B10BB852AA43E76EDD + 2091FB39017D1126D68A95DB8EC05F6C4559F90D44F656617C422C0647F47082 + B60692EC5DC771FC5C21C22223F068D72048A4721468AE213B659C004CCDFED9 + 6B5846F218619FEB67DA734FC24ACB5749E52D1CFB230F2362C33167E230DEE6 + 02CC3998470E9EBC8C27FAF5E58F153209BFBD7CF5BA13D057C101278F8C8544 + E248DA377B8F62745C38A625C6BA0267AFC821217D42A054C8F963B954049148 + 0C4D6109B2164F1080EF66FEE4356AD55BE385FDB4AC5C4C1A15C7EFDB915C19 + DA77F834B67E30C315382B7D1B898CEE0BA94422B471C84B574AB169C944E87C + FC449DBE693F268E1A02A9B89DC09435BB487C5C7F7E39D2D53342BBB6B0185B + DE9B2200DFCFF23E831FCF736490EB67CAE8787EDF8ED4D71B702EFF3232E64F + 70057EF2F52122F6EB8049C3A35156C3A0F2A69E87B606FA2AEC40055DED1474 + D0549D94D873EC126CCD8D58F24AA22B70CBDE13E4945687A183D4782AAA07FC + E9B7587A871595E9303C360206C6C29F97BA7EB7D7A88C059385FDF3DA7284F5 + EC0219CD1C376A67B4553899A7C19028157727BB02F7FDF617D975B40061E17D + F81B25B447107A770F4050073FA83A776CF382268B731D65DD3CF1C824AE7558 + 6F68844ECFA0E456134AAAF4602D16945E2BC20B8983316668942BF0CCC552B2 + 2EE728A2A2D53C90BB41943231FFD9B87835BFE54A0FD7B1BF520999C8517658 + 22C1BDC2C8307C96BA06754093C98606C68623E7B4B4CECA60B5B068666D3CF0 + 9A46839497123048DDCB1558545E4DD2327F4074FF18272061CD181917012256 + 204021869F9456749133882BB6F695DA66B3099965EEACDF66FA5B2C77B2CB5A + 6D20362B4E5C2872015E292840C6C269085505BA026B0D0C7973E57684A9A310 + D43140005A4D0C129F560BC0BC4BC5F489B8E5A27707C33A1E26184BCB9012AB + 856697F6616D99BF83A3C3DD029B9B199A412D362E4B425080DC15C805F73F4C + 489F50040576740BBC3B835CE62C3607CC9E392E5B77CF47A3D9B1CF015996C5 + A97C0D24CA8E02909F9365254EFFD7B800E7AFDA49A481DD10DCBD9347197497 + BD668BA3BD992631BE7FB85B60ADBE0162631DD6A44C750F4CCFCE2575AC0C8F + 07776F1328A577A382B6DBD7692E4BB63B197497BDD6F38FDFB601ACACAC42CF + 4009D2E68C710FA44F33A4A04C8FD0905E2E402E24323F8F81AD8797CFA689C5 + D90BCEC0F2EBE51810D219C9539F750FDC7D389FEC3FA945DFBE910F1D587CF5 + 2AC60E8DC2E48481EE81C7CF1792ADB9671113A37602CAE962A9944B5BDA680D + BCDF1C14DB58886C16345A1DE5889B8384DC293BDC8F619B9D801A5A6268F630 + 6C40A87BA0A644473EDC988BD881D190530807E46AA2BF528188E020C828945B + 15B842CD175C4303EA9A5A2E6AB138D66AAE2873E7B48E5AFAB462A650FB0B94 + 89BEABD88117F3F3913E771CD4212AF740EE3D64D1A7DFF1C53A304021009552 + 8290E02E08A0503B905B1DEA19823A03D32EA0890E7B6313D326F03663E68BF4 + DAD424A802E502F06F49305CEDF140F1D30000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000067C4944415478DAE5D87B5054 + 551C07F0EF3ED807E0800F0CC531419057282213263A6128E3483A6AA6698EA6 + 95898F2C352B34484D2A1B4D47022CB32C47321D2D1F4DBE00CB1C1F3C321456 + 9EAE40A0080B087B77F7EEDDD3BD97B80B5DD69675B399FAFD73EF3DBB7BF773 + 7FE79CDF39BB1242083A422291A0BB58B8713FC9487C0EB54D26FE3A69E72138 + 1A1B57CC14CE37A41DC6174973BBFDD20E97C41EE0FCE47D243D710EEAEFD10E + C3BA0BEE41BFDA30CFF9C0C46DFB1D46A5AC9AEB7CE0DCC43DE4B3E40542173B + 2D833B32B13F65917380A9EBE6A3B195166EEC686C5C39E79F03DE6E766E0637 + A57EE31CE0ECB59F92F4E4454E07BEBB7D1F0E6C59FC3F013A55D6299C02FC37 + E2BF055CB52BFB81BA7888776FBC123F1C4AB9D4EE0CF418B875718CC3C07D67 + 8BD91A6AC092A7C3ED463E54E08F795AE82923AA1BDAEC463E54605E492DBB8E + 9BA03732A8AE6FB60BE910D0C4383614ABEB5BA06BD10BC88ADA2624C487C15D + ADB089EC11F0B5B433E4E38458E84D16FE7ADDE7D976E336BF381E26DA8CC67B + 9415C97677C5EDD6FB221F08D8D3705548D1D4661223ABEFE28D39D10F0E5CF9 + C969B27DE90401F866C629BB711F2E8983A6A60559F915A08C5D97CA86A656EC + 5836D171604D7D33399F5F829F3577B1F3D5490E67900BAE9B73CB1A5077B749 + 68BB745D8B7141FD303662187CBC3CBA7CF97D8179455AF27DCE55DCB859873E + 5E5E9029543C50A767F8D793769F7618BAE6F9F1A8B9A3033B577038EB57B84A + 1968AB7E47E0106F4C8D8D4464E040894D20D79E7EF01CCEE596C03F70181EE9 + E709995C81E2326D17A033C24833D8BC370B339E0A07C35687CA9A3BC8F9251F + E32303F0D2F4B1BC4D04CC3C994F4E5E28C263C343F86BA58B8C3F1695DE42FA + EA29023031FD0787612909938573EE3ECF4C88844C66EDDDAF8F646352540066 + C5458A818B366512DFA1BE502B15FCB5422E61BB5D2A023A2B3A805C7420B959 + 7EFCEC25EC79678E18B830792F090C0D815C2613DA38A4A6548BB435D304E05B + A9471D467DB07CAA70BE2EED183BEEA22097DA095CBDF520898E1AC157FBBA26 + 4A682F2DD762D7DAE9A873F28E3A79D7094C9F389A3FEF40EA9A5A905B508494 + 15D3C4C02D5F9E2252953B66C484427B9742CD6D1D0FD5945460F7DB3305E0FA + 34C733F8DE526B06B9FBCC9C14CD8E7509946CA779F756E370CE75580CAD58FB + 429C18B8FBC879725153873111C1783C68005CD94FD1EC0C2BD7D6212672185A + 28B3533398A7A982FFA0BE706133C7F5DA654D2D2EE417637490373793C5C0E3 + 3FFD460E6617C23F60283F51FC067862487F3778BAABE0DDA797F03E6EB1371A + 8D686E33C24019D07C4FCFB7B73232C81823189992BF76973150A85450A994F0 + 504AE0EAEE06DF81FD84FBE85A5A51A7A35079A70D95B53AD066336E96956376 + DC284C1E1324065EBE7693ECC8CC465068300FE42688DA45CABF36253A983F72 + A5C74D2985E2CF41FDD71D8ED9C68EC7686E6FE7EA5F9BD18266CA82AC5C0D5B + 675DC0986918680B0F2C2B2EC6EA79B188081E2C069657D59375A9DF21744498 + 08181B310444AAE471F9D72BA052ABC0D034642E2E220C65B296235DAB0926B3 + 75890C0FF26D7F30F6B3E7AF968B80370A0B91F2FA2CF8797B88810D2D1459B6 + 791FFC8383E0D9CB4D0012DA840951C304A04ACE2E39126B29E2C6A9C562E992 + 292E9374A76C72E68EECD28C05C4C288800603C56650838CA405F074538881DC + 5ACCFDCDE13BD40F9E1EBD042063A410F74470970C2A64ED5FDA2573B4355394 + B97D0810C60C9AB0F760DA27D8A8D0009B407E4C6A2BF9BF436C6E1696BF9F49 + E41E5EF0E9DFDB26B07306B975D46CB1C26C65506FB29E73409AEDE28B05C590 + A97B09C0065D33A4FA466C5B33CB363029ED2869A45DF0A84FFF1E65D056F60C + 9DC69F814D62F488009BC09A9A5A0CF29061FDCBF1B68169DFE69042AD0E7EBE + 83BB05CAD9D9AB64DB3B36128E8C3FFED80DB0EA5615C27DFB60E9AC18DBC043 + 67F2C9890B1A8484048A805CC85C543D06FEB57BF96C1A695CB9DA1558515A8A + F83141983921C2363027F706D973EC0AC2C2821F3AB0982D3109CF3E89712387 + DA061655D4920D19C7103932140AB55A002AD8D55CAD90B7A3D9F6BF1B83520B + 0D89C5CCAF2E9DC72021EDEF33710F431BBA00AF15142079C91484F80DB00DE4 + 7E87ACFAE8005FAC3DDC943C902BDA6A3981AF4F5FB8A995FCDAE9CA22F51485 + 268AA0B1A57DE763365B773BDCDACABDA77318D9ACB6B6512C0EC20F2823FB5B + 8503DEA34C7C91DE9EB800033C9582EB0F7897C0EDF017B0AD0000000049454E + 44AE426082} + end + item + Background = clNone + Name = 'Recycle_03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000062D4944415478DAE5D8795094 + 651C07F0EFEEC22ECB31AC2606E918A75C21884C18D828428C23796618E6685A + 999876A8590306A94965A3E9C80096591623998E964793A6808D311E1C19CA22 + F70AB428C22E087BBDBBFBF4BE2FEEBBE0B206EB6633F5FB67DFF761F77D3FFB + 7DAE97E51142602A1E8F87C16AD9E603242FED05C8953AD8B336E51CC157198B + 06BDA9C9C5B30598B1FBB0CDA8CD6B16D81FB824339FE4A6A5A0FD0E65D70499 + 2FFACDA6C5F607A6ED3860332A6BED22FB0317A5ED235F642EB5FB18CCD85580 + 0359CBED03CC4E5F82CE1E8ABBB0ADB5F9CD947F0E78B3CBBE096EC9FECE3EC0 + 851B3E27B999CBED0EFC60673E0E6E5BF13F01DA55D6AFEC02FC37EABF055CBB + A7E881BAD8DB73045E4B9A0091037FC8090C1BB87DC5349B81F967A5F41AAAC1 + CA6723868C7CA8C09FCB6450A9B568E9E81D32F2A102CB6AE4F43EAE834A6B40 + 4B7BD7909036017506DB86624B7B3714DD2A0ED920572235290CAE62A155E4B0 + 806FE59C219FA5C643A533B2E7E95F160D19B7F5E538E8283D3AEFA8CD48BABB + 1B6EF6DC17F940C0E196B3900F65AFCE12D9721BEFA4C4DA0E6C6DEF22E7CB6B + 5052A7C4CE55091CF0DDBCD343C67DB23211D5ADDD282C6F805A3B70ABEC50F6 + 20C65F822991E331C6C37DC0CDEF0B2CAB92911F8BAFE07A531B467A78402074 + C2EE3766D89C20534C3797D675A0EDB6926BBB784D0667BE01B2E63F11E8ED89 + D9F151880A7C8C6715C8B4E71E3A8773A535F00F1C8F474749207010425A2763 + 810A95817D53C6DE5F6C86AE7F310EADB714A0E70A8E14FE8EF9D32360A0275F + 63EB2D14FF568EB8A800BC326F0A6BB300169C2A27A74AAAF0C48410F65CE428 + 605F6B9AE40380F6282D65C0D6FD859833351C0281B977BF3D5A8419D101484E + 8CB2042EDF52407CFC7C201609D973A1038FEE763EAA6A6F2077DD2C0E9896FB + 93CDB0ACD499DC31739DE712A2D8631392994427CE5EC4BEF7532C81CB32F793 + C0D0103808045C1B8394D6B50C00DAAB18E09CE95170E00F11B86EFB21121B1D + CE2EA66D4A35D7DED0780339EBE772C0F7B28FD98CFA78F56CEE383DE7383D31 + A2D9631352A1EC46694515B2D6CCB5046EFBFA34E13BB962FEB450C86EABD17A + 53C1426BEB65D8B3611EDAECFC449DB9E724E63D33991EEB3C88E84EF31C21C6 + 91E26B306A7AB0E1A5444BE0DEA3E7C985EA36C44406E3C9202F38D39FA2E819 + 56D7D281B8893EE8D11A61341AB131C7F6043F5C351B7C3E9FBD4E597533FCC7 + 3E02473A39A6D72E55CB51522EC5E4204F66265B024FFCFA0739545409FF003F + 76A2F87A49E03DDA05125727788E74EBEB8A7E334E4FE3B57ADB1F1515DD3D68 + 53A8D178AB178D720528BD1E4D75F5589838093363822C8197AE36915D054508 + 0A0D6681CC04113BF2D9BFCD8A0D8623CF003EBD2E321776168BD97353514470 + 5F8C4AAD66531A2571452FDD135D6A230A4BABE975D611063D050D6564817552 + 29D62D8E4764F0384B607D733B49CFFE01A1E16116C0F8486F10BE082E223EB7 + 3EDE5BD4DDA71DA6FB4CC932299BDA553AF3BD741485F357EA2D80D72B2B91F5 + 76327C3DDD2D811DDD6AF2FAD67CF8070741E2E66215587EAD014E622718E89B + 507A738A1A231FC4A0678FD57AF350D0E9CD5B6444908F55A046A3A613AC465E + C652485C849640662F667E45F0F1F385C4DD8D03124A8784E8F11CD0C981DE13 + 79E614998498D4981A2C391664E86BEB7BBF11C468B000B26352D6C8FEDA60F5 + 6161F54705C4C1DD0363468FE08006AD1A894F050F485028E8BB69FF5253E6A4 + 4C0932895284BEC6DD6427850658057628BAC0577562C7FA64EBC08C9C63A493 + 72C4E363465B05F64F90D9E8F54633CC5A82FDC71F03A4E82EBE50218540ECC6 + 015B5BE518EB2EC0C65793AC0373BE2F269532057C7DC60D2B416BE969FA8D3F + 0D1D626C78805560F38D6644F88CC4AAE469D68187CF94939325D50809091C14 + C8AC8322BADD34936D197FECEB20C086DA5A24C504614142A4756071E975B2EF + F8658485055B009912383A0D1B786FF7B2696A295CBE321028A59798D4E7A7E2 + E9897ED681550D72B229EF38A2268642482FC60F1378B5A202992B6721C4D7CB + 3A90F93F64EDA707D9C5DADD45C40185F4E38658E8D0972A0DFFBB31C83752E0 + 19F5E831989723660C12D2F73E1DF365280D07BCA3D6B18BF4CEB4A5F0928838 + D75F87C7B7ED58905AC90000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006464944415478DAE5D77B5054 + 551C07F0EFEEC23E0406343150C778CA2B0491221F8D220EE3483E32C5344753 + CBC4D44A1D2B30481DA96C344D06A8D4B218C9302DB5264D01CBCC078F0C6511 + 790AB8288FE5BD8FBBBBA77B2FEDDDA5E5DAB26E3653BF7FF6DEBBECBD1FBEE7 + 77CED9151042602C814080FE6A456A0ED9F7E63C34B66BD9F3C40FBF86AD95BA + EE19EE7873FA71EC4F9CDFEF438D2E8135C0655B0F91CCC467A168D3DA0CEBAF + B6A41FC5A7C98BEC0F4CDE7BC466D4D6B5F3EC0F5C929245321217A2A993B26B + 82CC3FFAF996C5F60726EE3A64332A75FD22FB0317251E209FA42CB57B0F26EF + C9C6A1D4E5F601A6252D416B17C5DDD8D6DAFACAC27F0E78A7DDBE096E4BFBD2 + 3EC0059B3E261929CBED0E7C7B77160EEF58F93F01DA5566567601FE1BF5DF02 + AEFF28EFBE86D8CB63305E8A1B038983D0EA04060CDCB9728ACDC0ACB3727A0D + 5563D553E156231F28F087C25AF4A834A86FE9B61AF9408185E50A7A1FD7A247 + A3477D53BB55489B805ABD6DAD58DFD40165470F87AC52B421212E14CE32312F + 7240C057D3CF900F1262D0A335B0E749FBF3ACC66D5F110D2DA5436BA7CA84A4 + 87BBAABE1909731EE3455A056C686A27E78BCAF16B653BCC8103AD416221DABA + B516C89F4BEA30DED7159322466384BB6B9F87DF1358585A4BBECDBF8A1B358D + 18E2EE0EF12067EC5E3D8D03BE9E79DA6ADC7BAB6251D6D081DCA22AA8347DB7 + CA96B62E480C1AD4D6DD4680970766C544223260B88017C85CCFC839877305E5 + F00B188D8787BA41E42086BCA2167BD74DB73941A698612EA8684163731B77ED + D2F55ACC9D1A0E3DDDDBD50D7791FF4B11A223FDF1C2D393589B0530FB541139 + 75A1148F8E0966CF258E22F6B5BC46C102953D7AF63C79DF8F3643373E178D86 + BB4AD0730547737FC3ECC96110894CA3FBC5B13C4C8FF2477C6CA42570F9B66C + E2EDEB0D9944CC9E8B1D04F4B00B2D80F6280DA5C7F683B92C90292392E9D193 + 672FE1C05B0B2D81CB520E92809060388844DC350629AFA847C686991C3031E3 + 7B9B61A90933B863E63EB3A746C241682570C3CE1C32312A8C5DAB1ADB54DCF5 + CA9A863E407B9511C89411A96CEB4041712952D7CEB104EEF8EC34114A9D3177 + 4A086A9B5568B8A364A155D5B790BE710E077C23EDB8CDA877D7CCE28E93D24F + D033378AEE750124F4A0790C96E168FE7518D45DD8F47CAC2570DFB1F3E46259 + 23264404E1F1404F0CA23F45D133ACA2BE05D163BDA1D111B677EEB78442210C + 06030ACBEAE037F22138D2C931A376B94C810B45723C11E8C1CC644BE0C99F7E + 27397925F0F3F765278A8FA71BBC8639C1CD590A8F212EBD4341DFACEE7633DA + 543AB4776BA056A9D9455860D0B1EF77E94DFDEB2CD2432C95422A95C0DD4904 + 07A90CDEC38772EF2B3BBAD0A854A1FA6E37AA154A503A1D6A2A2AB120761C66 + 4C08B4045EBE5643F664E72130248805321344E62864DF9B3931088E023D64F4 + C318A4D86C69F8EB1EADEB67CF66D2675FE911608E5BBAF4C82D28A3D75947E8 + 7514D494810556C8E5D8B038061141A32C8195754D2429ED1B8484855A006322 + BC40841238498428BA5E05A94CCA3B845A83807E686FA26AB5069D143DA4FADE + D6080FF4EEFD1B8AC2F9AB9516C01B2525487D2D1E3E1EAE96C0960E1579797B + 16FC8202E1E6E2C40B342EE0E6C5F42AD357C6A48C29526669F6684DC7FD01D5 + 6A159D6019329397C2CD496C0964F662E647BAB7AF0FDC5C5DFE36413DFD104A + 679A346A831044DF9B9C4A67D6023AD31679AF04D99EACAD667FCCF37E5958F3 + 4E36717075C78861833920A1B49816359A034A1DE84D5B604AD1989E79AF3109 + 9AA7A7D59BA76A0031E82D802DCA76087B5AB16B633C3F3039FD3869A51CF1C8 + 88611C50AF5121767C509F04C5A2DE879A978A3225654C90499422F43DFE4C76 + 5C883F2FB0A1418191AE226C7E318E1F98FE553E29A955C2C77B142FD03C41E6 + 9B88CE6082F12568DE7F0C90A287F862B11C22990B07ACBB558770EF21581D3F + 851F78E44C11F9EE42198283030694205F7A6AB3FE53D3214E0CF3E70556DDBC + 89B8098198372D821F985F70831C387105A1A141FD02993550425F37CE645BFA + 8F7DED0728A7979884F993F1E4585F7E606995826CC93C81C8B12110CB647D80 + 4C891CA50306FE7578D9343514AE5CED0BBC565C8C94553311ECE3C90F647E87 + AC7FFF30BB58BB3A491E18B053A56517E9DD894BE1E926E15C7F00E854C3EDD3 + 0C85430000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000061E4944415478DAE5D77B5493 + 651C07F0EF36C698C0619018A4C7B8CA4D459193E525353C1C8F8476514CF368 + 5E3235B5937AACA641EA91CA8EA6C9012AB52C8E6498965A272D013B665E6064 + 2820729BB098228C9BDBD8BBEDE97D5FDC05C64B63BDD539F5FB67EFDE5DDECF + BECFEF799EBD0242082C251008D0572D4BCF23FBDF9803759B017CD696CC1338 + 209FDBE7452D2E812B40F9075FB98C4A5FF72CFFC025DB0E936CF973686CE537 + C1AD99C7F049EA02FE81A9FB8EBA8CDAB6760EFFC0456939244B3E1F4D1D14AF + 09323FF4B3AD0BF907CA771F761995BE7E01FFC005F283E4E3B4C5BCF760EADE + 5C1C4E5FCA0F3063F322B47452D62F76B5B6BD32FFEF03DEE6791DDC9EF1053F + C0799B3E2259694B7907BEB527074776AEF89F007995D9152FC07FA3FE5BC0F5 + 1F16FCA5210E0AF0C54B49A32171133A9DC08081BB564C75199873B69C5E43F5 + 58F9E418A791FF28F0FB6225B4BA2E3434DF731AF98F028B2B1BE97DDC006D97 + 090D4D6D4E215D021A4CAEB56243533B34ED5A2BB2E6961ACB93E3E1EB25E144 + 3A055435B591F38A4AFC52DD86F75725406B30B3E7371F28701AB763D9341828 + 235A3A7436243DDC058A1AF88929C484066252DC080CF5F7E971F17E81C5654A + F24DE155DCA853C3CFDF1F124FEF1EC081D62077215AEF191C900A7AE8296D27 + 94F5BF23222800B312E2111FF1908013C89CCFCA3B87734595088B18810707CB + 20727347659D0A7B564FB7025FCB3EE334EEDD9589A850B5239F4E4CD7D573AB + 6C6EEDC4ECC747C244B74EADEA0E0A7F56605A7C38963F3D89B53900734F2BC8 + E90B6518393A9A7D2E118BD8C7CABA46EC5B37C3E504996286B9A8AA19EABBAD + D67397AE2B317B4A2C4422DBE87E7EBC0033C687232531DE11B8747B2E090E0D + 8654E2CE3E777713D0C32EB402355A137B3E75FF0F2E43373E3F0DAA3B1AD073 + 05C7F27F65814C59904C0B9C3A7B0907DF9CEF085C92768844C444C34D24B29E + 63903795B77B00F9A82ECA841D87F2913439166E4227811B76E59189E363D9A5 + 40DDAAB39EAFA67B306B43B21528CFFACE6558FAAA99D663E67B663F11CF1E5B + 909AD676149594217DED538EC09D9F9E21420F2F3C333506CABB3AA86E6B5868 + 6F205F65014AC40248E8410BF095E258E17598F59DD8F442A22370FFF1F3E462 + 851A13E2A2F048642006D19FA2E81956D5D08C696383D165EC7EEFEB19275C46 + BDB366168C6642CF5C338A2BEA1136EC0188E9E49851BB5CD1880B8A723C1A19 + C0CC6447E0A99F7E237905A5080B0F65274A48A00C41433C21F3F240809F77F7 + 50D8CD38E3FD9DC5021F6869DA3BA1D6E8507BE71E6A1B35A08C46D45555635E + E238CC9C10E908BC7CAD8EECCD2D40644C140B642688542C645F4B9E1805B1C0 + 04A98704EA960E0C924AD9E796A288A85F8C56A763531A2CF3627F5073A709F9 + 4515F43A2B86C948414F995960557939362C4C405CD4704760757D13D99CF135 + 626247390013E282408412784A84ECFA28A15FEB2B39CBF059926552A6ECF670 + ADA1FBD84051387FB5DA0178A3B414E9AFA62024C0C711D8DCAE232FEFC84158 + 542464DE9E9C40C5F51A78483DD8F33A43778A0253F73DB3DE2C043119A133DA + B50211C06CEA7EDF98C8604EA05EAFA313AC4076EA62C83CDD1D81CC5ECCDC03 + 07878640E6E3DD6F82BD8B49C96C365B53B5F4675FE97101D99E54D6B2F7CA9C + 7F16D6BC9D4BDC7CFC317488EF9F2668A22F42196D7D68498F4DD62E4183D1B6 + 45F69760B3A60D426D0B766F4CE106A6669E202D94180F0F1D620512CA80E9E3 + 4758811E6EF4BF0A812D454B7A96BEB324689F1ED309B654CD2066930350A56A + C4301F11B6BC98C40DCCFCB290942A3508091E6E059ABA74487C2CAA4782EEA2 + EE8BDA978EB225654990499422F477DC4F765C4C3827B0FE563DC604FB6175CA + 546EE0D11F15E4DB0B15888E8EE004F64E90D957ADC71C09DAF71F03A4E821BE + 58520E91D4DB0AACB9791349132231677A1C37B0B0E8063978F20A468D8A1A50 + 825CE9E9EDFA4F4F873831369C13584E2F31ABE64EC1E4B1A1DCC0B29A46B235 + FB24E2C7C6C09D5E8C7B03999D8459032D33D995FE631FFB005E2B2941DACA64 + 448704720399FB90F5EF1D61176B1F4F490F205322B1C78081BD87974DB38BC2 + 95AB366087CEC02ED27BE48B112893585D7F009C2DB6EDB09C7AA90000000049 + 454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006504944415478DAE5977D5014 + 651CC7BFF7C21D0712F882819871BCC85B0822A3295A1A0EE3882FBD20A6399A + 5AA69636A963131AA4264D369AA603546A598C6498965A9396828D396ABC64C8 + BBC09D88BC090708EC717B7B4FBB4B77BC9C4BE7B5DA4CFDFEB9DD67619FCF7E + 7EBFE7F7EC4A082130874422C1DD62797226D9FF561CEA5A0DFCF9E69413B037 + DE5D3DC772CCDDE740C2BCBB4E6AE692D8032856DC37C0848FBEB11B2A79ED73 + E2032EDD7A98A4253C8FDA16710D6E493986CF12178A0F98B8F7A8DD505BD7C4 + 890FB838299DA4262C40E31D5A5483DC837EB16591F88009BB0EDB0D95BC6EA1 + F8800B130E924F9396885E83897B32703879993880FB362D46733B6DB9B1BDB1 + F5F505F70FB05EE43EB86DDF57E200CEDFF809494D5A263AE03BBBD37164C78A + FF09A0A864BD4214C07F23FE5B80EB3ECEFA4729F6F6188C5762C7402997DA6C + E09E0177AE986A3760FAD962B687EAB17256B8CD900F14F0C75C2D3AA92EDC6C + EAB019F28102E696D5B2FBB8019D5D0C0A350D889BE88D20B507379F20A84D80 + 358DADE4425E192E6BDAC1011A18FB4AF166631B746D9D16C8AC9C3234D7D7C2 + 6FE43084F87A6272C46878B9BBF6997C40C0DC222DF92EFB2A4A357518E2EE0E + A5B30B3E5C158D4E8389BFBEE94096CD70DB974F838136A2F90ED503C9A6BBF0 + 4633BC86BAA0B45C036DF52D04787B604E7424220346480401B9F1D4CCF338CF + 3EA15FC0683C3CCC0D32B902E5DA5B7D00EF359C1452B47418AC20AF6A9A3135 + DC1B0C9B99AA9A0664FF9A876991FE78E999C93C9B1560C6E93C72FA62111E1B + 13CC9F2B1D64FC6FC5CD46EC5E3DDD02F866DA199BE1DE5F1983929A369CCBAB + 04D5D577AB6C6A69C7ACA810C8643DD9FDF27816664CF0477C4CA435E0B26D19 + 44EDAB864AA9E0CF1572099B7629CA34B5D8BB7686DD06B9E0D29C73BD0975B7 + 5B2C63970BB598FB64187F6C86E40C9F3A7B1907DF5E600DB834E91009080986 + 5C26B38C7190E5DA7A1E50D7C9F06389FB7FB21B74C30BD350D3A003BB5670EC + DCEF889D1206B9D446C0F53B3349D484307EA5D5B55096712D5B1FBD01C5882E + 9AC1F643E778402ECC90BA9636E4E4172179CDD3D6803B3E3F43A48E83F0ECD4 + 10686F53A8A9D7F1A0159A1AA4AE9F6D014C48FDC16EB0E455332DC7DC7DE63E + 15C9D6BA044A36691E835538965D0893BE1D1B5F8CB106DC7FFC02B954528749 + 1141181FE80927F6BF686E85D5B5E289D047D06514EFAD8B33985B52CDF6C2A1 + 7060CD7159BB52528B8B79C5783CD0835BC9D680A77EF983646615C0CFDF975F + 283E9E6EF01EEE0CB7418EF018E2D29D0AF666E6C6DBDAD1053DA54733452033 + 7697443B23C32059B76946AEE21FD249A5C4434E4A38B2A6D4238659E6D3B5B5 + A34E47A1AAA10355B53AD0462334D72B303F661C664E0AB406BC724D43F66464 + 2130248807E41688CA41CA5F9B1D150407090395A3928754C8FAEE3AFD771963 + BF73B37DCE1C774CB11DE1CC951230908331D2D0D3261EF07A7131D62F8A4644 + D0286BC08AEA46B269DFB708090BB5028C1DAF066552C059294551E5AD01D367 + 3049D8498DDD408C846FCA4622818961101EA8EEFE1B9AC685AB15EC46E0D007 + B0B4A000C96FC4C3C7C3D51AB0A98D22AF6E4F875F5020DC5C9CFB0046477883 + 48953C20D7C095ECB5DE35C9D5AAC964EA638BB348F733D9692082807A3DC51A + 2C415AE212B8392BAC01B9BD98FBC454FBFAC0CDD5451030AFB0128E2A477E9C + 3274D79B84E9FE66D69BA4208C1194B1A704CCF6B818C8205F93DA2AFE5354F0 + 65E1B5F73288DCD51D5EC3070F68B07F980DF6B6671EEF6F4F08B049D70A6967 + 33766D8817064C4C39419A69073CEA35FC6F0D32EC24B4B1A7799BEDF1667B19 + 34187BB6C8810CD6D4D462A4AB0C9B5F8E15064CF93A9B146875F0518FB20012 + DA80E913465B001DE5EC6B8FA4C7A22DF5C755428F55138889B102ACBE518D70 + F510AC8E9F2A0C78F4E73CF2FDC5120407075800992E0A311383FA1854C8BA27 + ED1D14DD63CA6C90334A13F61E7F991D17E22F0858595E8ED84981889B1E210C + 989D534A0E9EFC0DA1A1418280FD0D72BDCD722C60B077FD7180349BE24BF9C5 + 90A95C2C80C56C8B5935EF494C19EB2B0C5854594BB6A49D44E4D81028542A9B + 0D0AD9D3F7AA3F3D2B312ACC5F10F05A7E3E9256CE46B08FA73020F71DB2EE83 + 237CB37675565A0172BB08D703CD2BD99EFAE37FFB01DEA10C7C93DE9DB0049E + 6E4A0BD79F2044C1ED099585520000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006514944415478DAE5D77D5014 + 651C07F0EFDD711C2712E70B06BE72BC0807E10B929668E9E8308EA893E64B9A + A3A9656A69933A3A9D06A949A38DA6E9009A5A962399A6E54B939A82658E2F78 + 64C88B0807A702A72887802CDCDEDDD3EED2ED711C4BE7B9D54CFDFEB9BD87BD + DDCF7E9F3756420881BD241209DAAAF91B0E931D2B26C2F8D00C312B79C709EC + 5C39A9CD9BDA5D127780F3520E925DEF4DE681AB538F7A8CFA70D104FE98BDCE + 6EED14F18162D5DF06D47EFAADC7A894252F8B0F9CB3763F49D7BE82CA1A7113 + 5C937A189F27CD101F98B4ED90C7A8B58B278B0F9C95BC8FA469A7A3AA8E1635 + 41F641BF5C33537CA076F37E8F51294B67880F9CA1DD433E4B9E2DFA184CDA9A + 81FD2973C5016E5F350BD5F5347F614F6BED3BD3FF3EE05D91D7C175DBBF1607 + 386DC54E92963C5774E0075BF6E1C0C6F9FF13A0A8B216250AF0DFA8FF1670E9 + 8ECC27EAE2E0C04E7833B11F145E52B713786CE0A6F9233C06EE3B53C0ACA18D + 58306E80DBC87F14F8E355031AA826E88AEF62842600EAEE5D10DA2B80BD9F20 + D62D6079D543725E57844B65F57812E0D5A24A661F37A3A1C98A5FAE95E2DE9D + 5B5C7B58CFAE880E0DC2B0D8BEE811E0EF74F3768157F30DE4FBAC6BB8516644 + E78000289F527140B3D5B3A178A7AA16A6DA061EA9AFACC1D0A8EED05798905B + A087E176052282033161541CE222BA4B04816C7BDAC17338975D84B088BE78BA + AB0A322F6FDC3454E09385A3D060B67127ADDA9DE9366EFDBC9130D31654D751 + 0E24D3DD79B7AAF1ACA60F147209ACCC839796DF43D6AF3A8C8C0BC7EB138771 + 361760C6491D3979211FCFF48BE2BE2BE432EE535F7EDF09F8B8D5C15B8A9A47 + 6617E4B5B26A0C8FE90399CCD1BB5F1DC9C49821E1989A10E70A9CBB2E83A843 + D5502ABCB9EFDE5E12A6DBA528B953852D8B46F3C095E9A7DCC66D589080C2F2 + 5A9CD5E94135396F950F6AEA312E3E9A3BB623D907387EE612F6BC3FDD153827 + 792F89888E82974CC6B7B1C89B86BBD8B6648CC709B2C5767376F10318EFD7F0 + 6D97F20C481CDE1F5E523781CB361D24F143FA7303D95843F1ED06667CB04053 + 8395FB9EB4EBB4C7D0E5AF8E44F93D13985BE0F0D9DF38205B76A4A9A616D939 + F94859FC922B70E317A788D4A723268D8886E13E85F2BB260EDA1A284635D156 + ACDF7B9603B21345C1745A6027250E67E5C1D6588F15AF25B802771D394F2E16 + 1A31345683C19141E8C0FC8A666798F1215E88E985264BF3B9DAB41F3C86A52C + 1CCB7DD2361BAEE4DD62D6C22E9033C9B1BD76B9B012177405782E32909DC9AE + C0E33FFF4E0E66E6222C3C949B2821412A0477F385AAA30F023BFB357785CC79 + 31B7300F60873F6E996AEB61345128BDF708A59526D0160BCA8A4B302D6110C6 + 0E8D74055EBE5E46B6666422325AC301D909A2944BB9BF8D8FD7C0C78B993472 + 2F18ABEBD041A9845CE2DCE5349109621A288A4BA9ABAA23F7401433E14E5F29 + 82854861B5D068A46D1CB0B8A000CB668E42ACA6B72BB0E4761559B5FD3B44F7 + 8F7101260E5683962898CD5EC2AD8FEC2737965AA567B11166E175CC763B8687 + 9A9BCF37D334CE5F2B613602B913F0466E2E52DE9D8A90407F57E0835A8ABCB5 + 7E1FC2349150F9F9BA00299B377C1552E4EB2BF8DF986DCC4EC05C98075999EB + DA2C20560B288B633858880436AB150322D582C0C6468A49B010E949B3A1F2F5 + 7605B27B31FB06A70E0D81CADFCF09382A361844AAE080F6045BA6C74E269BCD + E6942A3B3EE956FB777B097263D250CABDE909FEB3F0F64719C4CB3F003DBA75 + 1204EAF2F4F051FA70ED94B9791C4AACCDEFCC8D36A9607A6CB597E003D34348 + 1BAAB179F954616052EA51524DCBD1A747B776136C5DF6045BA6676F6F9D9E10 + B0BCBC123DFD6558FD46A23030F59B2C926B302144DDFB2F13B43237A12D8E99 + 6C4F8F4BB64582668B6392B497E0ED5BB73140DD198BA68E10061EFA49474E5C + 28445454040F24B419A387F4E581EC7243248E14DD197FEC4870A46A03B1595D + 80FA9B37913834129347C70A03B3B26F903DC7AE202646C303AD4D14129ED738 + 25E82D6BBE69CBA2684752F604D9446976ADFB33D941D1E182C00266895938E5 + 450C1F182A0CCCD7579235E9C71037301ADECC62DC16B07582ECBECA1F0B24D8 + 72FCB1409AE9E28B39059029FD78E0F59C1C242F188FA890206120FB1EB2F4E3 + 03DC62EDEFAB703B41A1F41A5B8CBF4626C4F8FEE16D02EB2833B7486FD1CE46 + 904AC1BBFE00C6CCB1ED51B717940000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006834944415478DAE5987B704C + 571CC7BFFBC86E3611092324E2B579C8631B8F48A9574B998C698641895243D1 + 2A8A4E51DAD0A4A8B4184A9924147D19A946A3F598292D898E1A34121A922056 + 56ACBC773711D9CDDEDD3DBDF7C46E76B3D948D7359D697FFFEC3977F7DEF3B9 + 9FF33BBF73EF0A0821B0864020405BB178EB5192BA6A32B48D66DAFF60F731B8 + 1B9F2D9D646BAF4D3D8EB4F7A7B439A8954BD011C0859BB3C89ED55350516774 + 1BACAD48DE73127BD74C7D7AC005299964DF87D36C80EB52DD37F8C9921683DC + 75F6274EE71F90AF786680895FFCE83654CAF257F9079CB7E110494F7C0DE53A + 7E0DAE4FCDC25749B3F8074CDA75C46DA80DCBA6F10F3827F920494B9C89EA87 + 0CAF06B91BFD76FD6CFE0113B71F721B2A65C52CFE0167251E205F26CFE53D07 + 937666E050CA7C7E0077AF9D034D0363BBB0BBB1E1DD99CF0EB092E73AB871F7 + F7FC00CE58BD97A425CFE71DF0E31D077178CBC2FF0920AF6476C10BE0BF11FF + 2DC0157BB29F6A8AFB0574C1DBF10320150B3B6CE01F036E5B38C66DC083678A + 50ACAA8222C8073DBB7542AFEE5D10D2DB9F1BCF25708700D5D575E47CDE2D5C + 2A6DC0D300FE724585467D13F24A2AA1A9A985A6BA1A22B118A1BDBA41111288 + 5131FD11E4EFEB3078BB80570A55E4E79C6BB8595A81AEFEFE9075F67B2AC02B + B7CAD97DDC88C6263394E53A4C191D85BA4706142ACB5150A484AAEC01C2FB05 + 60D2B858C486F714B804E48EA7659EC3B9DC5B080DEF8F1EDDFCD83B95E0CEFD + 4A0A6834BB978AF7ABEBA1AD6F74807C3926189A7A3D442201CCEC75EFAAAB90 + F3471EC6C686E1CD29A3289B1360C6A93C72EA42219E1B1045FB520F11FD54AA + 6BF0F9E27168345A687FEDFEEC0EC36D5A301646C604CD437D0B243BDD37EE69 + F07C645F8885A090D6F8EE6836260C0B43425CAC33E0FC8D19441E22874C2AA1 + 7D8958C04EBBD009F09F86974408DD23A313E4B5520D4647F7A5BFB14272DF9F + 387309073E9AE90C382FF91B12AE88825824B21DE32095EA5AEC5832DE06B826 + FD7487E1362F8A43B1BA1E67F394D037396E95B5BA064C18AE70B0D82EE0CA6D + 9964E4B081344F2A747ADB71159B1FBB964F70DB2017DC34E796D4A2A246673B + 76E9860AF1A307D2B61552ABAB476E7E2152964D7606DCF2F56922F4EC84A963 + 1450D5E8A1AED452502BA0F59F85A47DBFBA0DBAEAF5B1505769C13A40D6D9AB + 1450EA2180949DB4802E3264E5DC80C5D080D56FC43903EE3B7A9E5C2CAEC088 + 98480C8D0884177B16C3ADB08A3ABC18DD1B4D26FE9E199A1833AE9694431EE0 + 0B0FD61C376B978BCB7121AF082F4404702BD919F0C4EF7F91CCEC02848685D0 + 85121CE8877EDDBDE1D7C913015D7D9AA782BD185736740D06E8D8A4D71BCD30 + 189AA03735E7109767DCB9C46C824024A637E92593A2B397149E9E9E90F7F0B1 + 8DA7AD6F4085568FBB558F70B75C0BC6644269C91DCC881B8257464438035EBE + 5E4A7666642342114907E11688CC4348BF9B3832129E6276D1788829A444E4B8 + EBB4AE91A6567DAB7DCE1CD7D6B3F97C36BF94ED9B6036313030160A58525484 + 95B3C72126B28F33E09DB26AB276F74F500C8C76028C1F2A87D0C393B60B950F + 9E3885460B5B80D9019BCC025A524C44008BD98C58457033BCC54857B648ECE1 + 0078B3A00029EF252038C0D719B0B65E4FDED97410A19111F0F3F17602640452 + F68944400B38F7696FC66AC7DE98D5226367B3D1D8DC36320CCE5FBBE3006830 + E85983C5484F9A0B3F6F893320B717732F48F29060F8F9FA3801EA2D12784B85 + 0E06ADA66C60AC31584C3407AD7949A7FCB1C1411172978034275577E98B94CB + 8785A59F6610B1AF3F82D847227BC07131FD4084520A6835686F8FB364B1581C + AC72069956B9D89EC15A6D1D848D1A6C5F95E01A3029F518D1301EE81BD4DD25 + 60DE0D253C65CDF9C8AD627AAEB9F99DD96011BAB4C7457B06D5EA72F4F21561 + DD5BF1AE01537FC821052A2D82E57DDA35D83AAC06EDEDB9CA3F578065F7CA30 + 48DE154B12C6B8063CF25B1E3979A1185151E14F34686607614C2D0BC36A8F9A + B5336834B56C91ED1954DEBE8DF8111198363EC635604EEE4D72E0F89F888E8E + B40112C688F1C3FADB00B97A48042D163B927F5C26B458B58058CC4E80456C89 + 593CFD258C1E1CE21A907DCA25EBD38F2376B00212998C029A9BF4881B1EE960 + 50226A1ED43EF44C8B29AB41CE2843D86B3C363B4411E612F07A7E3E92174D44 + 5470A06B40EE3D64C5D6C3B458FB7A4BDB046C6DB075FD6BCBA07DFE71800C3B + C517F38B2092F950C0877A232DD23B12E722D04F6AE3FA1BBE8DC4ED96C0F073 + 0000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000066B4944415478DAE5D87D5014 + 651C07F0EFBDC081609C0E18F8CE9BBC9C8422A3895A3A308C13A3A3A698E668 + 6A396A6A9392D661909A949AA6C9009ADA1B2319A6E54B9396828D396908A328 + A0C201217008DCF1E62DDCDEDDD3EEE2DD711C4B746CD34CFDFEE1EEE1D8FDDC + F7F93DCFEE222284C05C2291083DD5EA8FCE90F44DB3A0D519216429D37F4046 + C2EC1E4F6A7689FA025CB3E734494B986301BE9D7AC661D487EB665B5E27A69D + 45FA5B73FB0F5CB5EB1439B4792ED4CD7A41134C3E741E87B7CCEB3F70654A36 + 39F2CE7C0B706B9AE309BEBFD69A207B9CA3CA05C20385AA7F0CA8FCE45B8751 + 291B5E141EB87CFB7192A17C09B54DC226B82DED143E4B5A2C3C30E9E0498751 + DBD7CF171EB8343993A42B17A1BE95163441F68B7EB96D89F040E5BEE30EA352 + 362E161EB858798C7C9ABC4CF01E4C3A9085E3292B8401A6262E85A68DB61CD8 + D1DAFEC6A27F0E5827F03EB823F56B61800B371F26E9C92B0407BEB73F132776 + AFFA9F00059575294180FF46FDB7801B0FE5F47B8A47B899F0B4A71C433DDD31 + 7CC820F88FF062CFC79B489F80D5F5CDE46AFE7D5CAF68C3DE55D31DC6655E2A + 46795D33BC5C81DB656A68EAEB21914A1130DC130A7F1F4C8D1883615E1E3627 + EF1578B3A8927C9F7B0BF72AD418ECE505D7A7E4FD02FE78B3123AAA03AABA36 + 2C8919CB8DD568742852D5A2B05885CAAA1A048DF6C6ECE84844060D15F102D9 + F1F4EC2BB892771F014163B82991489D51F6B0AE5FC09BF76B99EBB81EBA0E23 + 54B54D1CB2A1A90DEAA60E482422188D04E5D58F90FB6B3E664406E2D5B95339 + 9B1D30EB423EB970AD08639F09E5DECB9C24DCCF0AB59603EA8D8EB5E2C3FA16 + 685B7436C8A8D0A1686927908AC121CDF5D5E91CCC9C1488F8D8487BE08A1D59 + C4D7DF17AE3267EEBDB354C44CBB18AAEA067CBC261A3ABD891B4F3C9AD367DC + CE9533A0A70DD0B452562433DDB72A3498AC18C501D93223D9CF9CBB741DC7DE + 5D640F5C9EFC05095284422A9158C65864798DC606F8776B80B3184D8FF576C8 + FCD23A4C0D0FB049B157E0A6BDD964CAA4706E1AD44D94758AEA34D8BF36C602 + DC9271B1CFB85DAB635152DD82CBF92A501DB697CA46A60F674E5670AFCD486D + 530BF20A8A90B27E8E3D70F7E71789D8C51DF3A62B50D940A1BA4ECB412B9906 + 3EB861A6C309B2C54E735E6923D40D4D96B1EB772B11372D9CE9751164CCA479 + 0F72C5A9DCBB30B5B761F32BB1F6C023A7AF92DF4AD4888A08C1C4601F0C60FE + 8A665798BA19CF858D4087A1F3B349477E72189AF0F20C346A19A44486479A66 + F87A7BC089498E9DB51B25B5B8965F8C6783BDD9956C0F3CF7CB6D929D538880 + 407F6EA1F8F9C8317A881BE4EE2EF01E3CB0732A24B69BB9A1DBCA367F89BE94 + B685D96AB414CA1F3D4679AD16B4C1808AD2322C8C9D8017A282ED8137EE5490 + 03593908568470407681B83A752EB3595342E02265168D93146A4D2B06B8BAC2 + 4964FBCF249A4878313A8AE252F294BB735F8262DAE57241053A98A9371A68B4 + D3260E585A5C8C4D4BA2111132D21E5856554F1253BF83223CCC0E1837D11762 + 27170E2566366F9954C49B18DB162693C9F27BAA4BEFEA8D4F5237E9B9852391 + 3AD900EF151622E5CD78F8797BD8031B5B28F2FACE4C048404433ED0AD47205B + 45AA1A1B90DEC45C0D98837320A3B505D8ADC4D20A440493D18848851F2FB0BD + 9D62122C4146D232C8DD9CED81ECB5987DFEF0F5F783DC63A01D9016C9B8E4D8 + 2B4C4F0976D0D62967C7CDFD4977E9539DBEF3B59EA671F556990D90EBC9CA72 + EE3985F76661DD075944EAE18561CC2D5177206572869B4C6C9360D7F42C099A + 0C2046032883354D7382E3827D79818DDA6688751AEC4B88E70726A59D211ADA + 09A3860DB10146478C0611CB38A039C1AEE975EF3B0EC58CD1DD56796F095657 + D762B887045B5F8BE307A67D934B0A2BB5F0F31DC90BCCBFAB828B6B673F52FA + CE6915193B9F99DB4D62DEF4D8EA2DC1AA3FAA30CE7730D6C64FE7079EFC399F + 9CBF5682D0D0A05E13E45BB95DD3E3EB3F3EA0EAC103C44505637E4C043F3037 + EF1E3976F677848585FC658246E624B4C1BA30CCE971C97649506FB06E33BD25 + 58CC6C316B163C8F69E3FDF981CC5D2ED996711691E315706636631648683D62 + 268DB100D90D9B88AC29F6A5FF2CFB1FF7791388C96807BC535080E4D5B310EA + E7C30F649F4336EE39C16DD61E6E320E68ECA0103B39C426416749E749BB1645 + 5B933227C8264A13E6184F929DA008EC11D84AE9B94D7ABF72197CE4328BEB4F + 7F96B2ED47944D330000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_10_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006B14944415478DAE5977B704C + 571CC7BF771FD96C1249182141B179C8632922E355A64C8C310C837A943114AD + 4169A7286D6852545A544B6B9250F495912AA5F5E894A98A8E1A94184212E459 + F296DD4DAC7DDCBD774FCFBDB19B5D9B0D36D7F48F7EFFD97BCF9C3DE773BFBF + DFF9FDEE65082170886118B4A6C59F1E25992B27426FE2C5FB94CC5FE1ABD297 + 8C775E0BEB64AD9AD4EAA60E2EC61740A92419E092AD4748C6AAC94EC0F7761E + F519EA9365939CD76B338E21F3DD29ED075CB4F930D9B57A0A6A1A59491D4CDB + 7502BBD74C6D3FE0C2F48364CFFBD39C80EB327C77F0A3A52D0E0AEBEC4D992E + 3DA0547A6E80295FFCE43354FA5BAF480F387FC37E9295F22AAA0DD23AB83EE3 + 30BE4E9D2D3D60EA97877C86DAB07C9AF48073D3B24966CA2CD43FB049EAA0F0 + A0DFAD9F233D60CA67FB7D864A5F315B7AC0D929FBC85769F324CFC1D41D39D8 + 9FBE401AC09D6BE74267B43917F6551BDE9EF5FC006B25AE831B77FE200DE0CC + D5BB4966DA02C9013FDC9E8D035B16FD4F00252573912480FF859E1990CE2325 + 77EB71AF4E8FAAFB46D4DE37A0C96842A3D14CDF1339718EC96874CE0F080A12 + 7F3B06281012A446705000BA760E45B7CE41E8D1A523A25E0813F663DAD8EFC9 + 8095F58DE45CDE6D5C2C37A23D0A0DF24742F760D4EB9A70BDA406BAFA7AC815 + 0A44F7E80C6D54044624F641F7B010B7CDDB04BC5250417EC9BD865BE535E814 + 1606757028B62D1AE53360F6E942D418CC9833A6AF73AC4A6742416935F20B4B + 5171B70AB1BDC33129390949B1DD18AF80C278E6C1B3387BF936A263FB882191 + 2BFC5072AFB65D80BF5DA980C96C4569AD11D34769A15230B86F3052682BE472 + 063C4F50565987DCBFF2303A2906AF4F1921B27900E69CCC2327CF17A0EF8B09 + E2BD4A29177FCB6BF4ED02BC72BB9AF67116262B8FD26A03A68C4C40E3430BEA + A8AB0A19444887BE3F7206E386C460C6D8244FC0051B7388264A03B5CA4FBCF7 + A34FCA30322720CBFB566DEED53741DF6472831C14DB0D561B11010539208579 + C74F5FC4BE0F667902CE4FFB96C46A13A090CB9D63026459950E9F2F498689B5 + 8B636BF79E796AB84D0B4783B571D03D30B740D2705F2BD761587C0420F37373 + B14DC095DB0E929786F4179F52486A872A696971057C5605F8C96078C87A40E6 + 15D76244FF68718E03526F68C2E5AB05485F3ED91370CB37A788CC3F08536922 + 57DC37A3B2562F82DEABD561FBD2314EC03559A79E1A6EF3E2B128AA6CC21F79 + A5305BDD5B65033D28E386D143A364A0A2410BEFA8C6E1DC9BB05B8C58FDDA58 + 4FC03D47CE910B4535189E188FC1711108A0FFB2D1BCABAC3360A8B6A74FEE39 + 2484F97271036A68810F50AB101CA806C7B1D0848740499D13A276A9A81AE7F3 + 0A31342E5C38C99E80C7FFBC4E0E9EC947744C947850222342D1BB4BA05868C3 + 3B75680E055D4C487A83D102CE6246FD431E168B1566AE398758CE4EF356D612 + 5E0A233C6870800AFEFEFED074ED4037E56969E1D1686251A337A3ACEE21CAAA + F5B0711CCA8B4B3073EC208C1F1EE70978E94639D991730671DA78115038206A + A58CE68602E387C6C05F410F8D5221E6948743AD9C70CE65CCCA355F5B6DBC78 + DD60E471E16605BDE7C07336586C7611B0B8B0102BE7242331BEA72720EDB564 + EDCE9FA1EDDFCF0D50D084C11AC894FE50323CAE95D4BA8108CE98D896756476 + 2B583B2DC074432BCF88078223CD0E0FD5F66A9E6B67C5BC942B946E80B7F2F3 + 91FECE0C4486877802363499C99B9BB2111D1F87D00E815E0165B4BB08DDC0D5 + 194142BEDAED76B771C1459B8B932CFFC8D956002D34658A0B8B90953A0FA181 + 7E9E80422F165EEF355191080DE9D02AA0A082D22AF7F03E724B04E35BBA82E0 + 9C33DCD4413BCDBB246DA457407D136D7F1565E26780D79785651FE710454818 + BAD357A2C7016D8C4A744E6881AD3928E4976BCE3972D0D541472AB0361BCE5D + 2B71036CD0374266D2E1B35533BC03A6661C253A9B12BDBA77F10034DBFD10A8 + 92B939E8EA9ED3413B07C273CE93EDEAE080388D57C0CACA6AF4089163DD1B13 + BC0366FC984BF22BF488D4F474034C4EEC0D225389800E079F35FF9EE4E0DD7F + EE6280A61396CE18E51DF0D0EF79E4C4F9222424C47A05CCBB590A7F75733E9A + D9E6B0327CF337B3C52EF3EA9EA0B61C2CBD73071386C761DA9844EF80B9976F + 917DC7FE46BF7EF16D3AF8B81C0EBABAE72DFFBC0116D212B364FACB183930CA + 3B207DCB25EBB38E2169A0167E6A759B0EF274131BD772301CEE89CEBA382874 + 1787DA72F0C6D5AB485B3C11099111DE0185EF90155B0F88C53A24502502121B + 8B3143FA3801858E429816179FA9FE89F3ED2076DE0DF08199158BF4F6947988 + 085539B9FE059573E4ED36915A420000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_11_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006B04944415478DAE5987B704C + 571CC7BF771FD96CB2649144E29D07792C459AC128538631CA30A8471943D11A + 518F294A1B9A149516D552992414ADD64895D27AB4654AA2A3A655D610927824 + 9292C72691DDC4DA4DF6757AEE89DD6C6C6EC4E6FAABBF7FEEDE731FE7B39FF3 + 3BE777763942089CC1711C9A8B253B7E253B978D85DE648758516FB563D3FE73 + 485DFE5AB39D3AB9B8D6002EFAEC38495F39C1059898FE8BD7602909E35C9FF9 + F764AC9A283EA058211A60C2D663246DD52417E0FBA9C7BD86FA74C944D7E7B5 + 692790FEDEE4B6032EDC7C94EC5A3D19E53516510D26EF3A85DD6BA6B41D7041 + CA61B2E783A92EC07569DE1BFC7871A341FE3D7B13A7890F2856BC30C0C42F7F + F41A2A65D9EBE203CEDB70906424BE813283B806D7A71DC5D749B3C4074CDA79 + C46BA80D4BA78A0F3827F900494F9C89CA4756510DF25FF4DBF5B3C5074CFCFC + A0D750292B66890F382B711FF92A79AEE83998B423130753E68B0398BA760EAA + 8D56D78BBD8D0DCB67BE38409DC8EBE0C6D4EFC5019CB17A37494F9E2F3AE047 + DB0FE0D09685FF134051C9DC4214C0270F9082FB957850A147699511BA2A036A + 8D26D418CD741B6663F7988C46D7FD7E2A153B76F0932140A5447B951F3A07AA + D12550856EC11D10D13D88EF8F6BA1BF67039654D6900BDADBB8595086BB0FAA + 60B7D958C7DD6927ED3A74828F520999DC177E3E0DCFC9E5728F8E3AABFD2071 + D4C36076A0425781EB05E5A8AEAC8454264364B740682242312CAE0FBA060570 + AD06BC925B4C7ECEBE865B45E5E8181404657B759B8631B4537BCC1EDDB7495B + 69B509B98565C8C92B44F1FD5244F50AC1C451F1888FEAC20902F2EDE987CFE3 + FCE5DB888CEAC386442AF341C1031DB62D1CE135E081B3792837983179782CFC + 1512D6566530D2B67A48A51CEC76827B2515C8FE538B91F1BDF1D6E4618CCD03 + 30F3B4969CBE988BBE2FC5B273855CCA8E45E5FA3601FE76A51826733D0A7546 + 17246FB08242CB282F0FE98CEF8E6561ECE0DE983E26DE1370FEC64C12161106 + A5C2879DFBC8383AEC9236035EB95D46EBB805A67A3B0ACB0C0C52F7904EB23A + C200F97042EA6B4D3879F66FECFB70A627E0BCE4FD244A130B9954EA6AE3218B + 75350CD062F76EB5795059CB3A7687EC1B1EEABAEE6EB145C095DB0E935706F7 + 672FE173C619257469F92261144C16073B5FBB37ABD5709B168C84C56A43F523 + 7323241DEE6B45D5E81F1E0C3FBA12B843EA0DB5B87C3517294B2779026EF9E6 + 0C91F8AA30658406C5556694E8F40CF469C0E70D3F1F090C8F2D1E90DABB3A0C + EB1F49739D83820E5A4807258E66DF84A3CE88D56F8EF104DC73EC02F92BBF1C + 43E36230283A147EF4292B1DD6920A0386687AB8EE5B9371A6D5709B178D417E + 492DCE690B61AE6F289501FE0A7452B74727950C612101905373FCA85DCA2FC3 + 456D1E864487F033D913F0E41FD7C9E1AC1C44F68E6013253C548D5EC1FE50AB + 7C11D2B11DCDCD863CF1797274E6A4AD85DCACB7355EE3FF8F710F93D98C72BD + 19F72A1EE35E991E565A088AEE1660C69897316E68B427E0A51B4564476616A2 + 35310C909F204AB984E6860CE386F486AF8CC2C96530D41A21A11544CE79FE15 + 6225D266417918DE52A05A0583C98EAADA3A5655EA697EDA6D56D4591D0CF06E + 5E1E56CE1E85B8981E9E80B4D692B5A93F41D3BF5F13403EC60F0A7341297D15 + CCA6D39CBB2566D441C0BFD6E170B06BFC7D5637CB260BA113C70AEDED520FC0 + 5B39394879773AC243023C011FD69AC93B9B0E2032261AEA76FE8280D70A744D + 802C0E8ED569066B6F5C746D36DA29E1406C16D84843FB104D4F06088785E5A5 + 54267701D6D599A9C17C6424CD85DADFC71390AFC5FCEE392C221CEA80768280 + 125AFE1432CEC31E6F89B7E6DEFEB43D8BFD49CE3603A8A7A9535E7C8FEDB205 + 370B4B3EC924B2802074A55BA2E600F9C82D2C6D95417E2971D9A4061D763BE2 + 35E182800FF5359098AAF1F9AAE9C2804969C749B5558E9E5D833D00AD9C8299 + E36B747306DD67A933F79C66DDF38F7D299A8317AE1534012C292943B70029D6 + BD3D5E1830ED876C9253AC4778588F2680A3E27A814814ACD0BB1B74B7E732E8 + B081D86D30DBDCF2F189C101D1618280F7FFBD8F01611DB178FA0861C023BF6B + C9A98BF9888D8D1204741A7CDEFC7B96C1C23B77307E6834A68E8E1306CCBE7C + 8BEC3BF10FFAF58B1104D4DE2C84AFB2211FCD968661E5EC0DBF99EB1C12417B + 7CB464308F2E3109D35EC5F08111C28074974BD6679C40FC400DDBD20B197C3A + 9C06DDED09E59F10E08DAB5791BC680262C3438501F9DF212BB61E628B355F33 + 5B3268A79D586D8D13C3698F99753368B1356E32840C3E325BD822BD3D712E42 + D50A17D77F685FE1ED47C4CD610000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_12_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006AF4944415478DAE5987B5054 + 551CC7BF77D9276020A2826F40E4B1F92246CDC7A4A3E3988E8E98629AA3A9E5 + 88F998D4AC5683D4A4D2344D06D4D4B218C9302C1F9595828D39658A210ABE58 + 2184E5A1ECB2E2EEB2AFD3B977DDEBAEBBABB6DCFEEAF7CFDE7B76F6DCCFF9FC + 7EE771972184C0190CC3C05B2CDEF603D9BE741CB4061B779FBEFB67F81B2B5F + 1A859A062D5A69570527FF42D6B2E7BD3ED4C9C5F8032844B45A6CD8B0EFA430 + 800B3F3A4C72564CE4015539DFFB0D9699369EBF66FBD9B17292F08042856080 + 699B0E91EC959379C0B7B20EFB0DF5C1E249FCF5EAEC23C87923A5ED800B3E2C + 203B57A5A0AED92CA8C18C9DC7B0EBCD296D079C9F994F76BF3D95075C93EDBF + C1F7163D30C8F6B347354D7840A1E23F03547DF28DDF50994B5F101E70EEBAFD + 6487EA456874C21A5C9B5D80CFD2670A0F98BEFDA0DF50EB964C151E7076462E + C951CD40E35D8BA006D9817EB17696F080AA2DFBFD86CA5C3E5378C099AABDE4 + D38C3982D760FAB63CECCF9C270C60D6EAD9686AB1F01DFB1BEB96CDF8EF00EB + 055E07D7677D250CE0F455BB484EC63CC101DFDD9A8B031B17FC4F0005257389 + 3601D6343693D3C5D770B942831BB76EC366B522303818DDC383D1AE7D074815 + 0A882572044A1DBF9348241E0FEA1C1A0891BD153AA31D0DF50DB8585187A6C6 + 460488C5E8DD2D1CCA98480C4FEA83AE1D439827063C5F5645BE2B2AC1D5CA3A + 8475EC88C82E11080D56204826E6BE170504709F628680114BF9DF07D076A9C8 + EE06A8EC198690E0400FF0DA2603CAD41A9496AB51555D8BB85E1198343A19C9 + 715D189F806C7B4EFE299C3A770DBDE3FAA07378281DA91415B7EADB94C6C80E + 4F216544221DA0886FBBAD6B419DAE950E8A81CD4670B3A60145BF156354722C + 5E4919CEB17900E61D2F26C7CF94E1E97E89DCBD4CE2305559A7C5E60523FD06 + CC3D514E618C6E90ACC106DA2616818374C697870A316E702C52C7267B02CE5B + 9F47A262A2A09039D226153334EDA23603FE78BE0A06632BD4F52D3CA4BAB609 + 7A13E100D970426AF5061C3DF107F6BE33C313706EC63E12A74C84F87E8D3921 + ABEA9BDB0478FE9A86EEE36618E8CBB05AA3C394613114D600EBFD7275B5F848 + C0159BF3C9B0C1FDB98ED89438437347CF019A6DFEAD36B71AF5DC835D21A323 + 4311485701673821B53A3DCE5D2843E692C99E801B3FFF8988E4C198325289AA + DB46D4D46B3950F69F808FD346C360760C79F59EC22786DB307F14CC162B9AEE + 1A1F40D274975436A17F74270E52266120A3498B68AF4041D165D84D2D58F5F2 + 584FC0DD874E93DFAFD46168520206C5472290FECA42ADD534E83044D9C3EF14 + 074A45D0DD33F3907AB3239DECECED1EAE80849A63CD9EBDA2C199E2720C898F + 6067B227E0D15F2F92FCC252F48E8DE1260A9B865E9D82E81A284744583B5A9B + 0C9F325D8B09260B81DED0CA19611FE02D263CDB077AA31577F44604D1B92797 + 536362473F06A311755A236E36DCC34D8D1616BA1154DEA8C0F4B1CF60FCD078 + 4FC0B3972AC9B6BC42C42B1338407682282422EE7A4C720CE4749D964AC49C11 + 6FF1708D5A5DEE5BAD84FB3FA6B9C5002A935B62D85A6CA5E9B7592D74B0760E + F046793956CC1A8DA4841E9E8015D58D6475D6B750F6EFEB06C89918140511DD + D6248C0D2515F59032769889E33BB95C0E57816CEAAC56C7C182356BB4389E61 + B158D02FB607EE52EB4693C92BE0D5D25264BE9E8AE888104F409A06F2DA865C + F44E884768BB209F800AB98C4B376B8835E30AC64E23BBDDCEB73B2D5A5C6C1A + CC844E1C0B8AAFD5BA019A4C466AF00A76A4CF416890D41390DD8BD9C369544C + 344243DA3DD2A05B6AED0C7790E052697BB02B58E94267210C08B569258EF621 + CA9E1C20EC669C2C56D3AD54C2036AF574FBABBAC91D627D1E1616BF9F47C421 + 1DD1B5537B9F8022BA3F3B0BDDD5206B89B5E7DACE1A74B567B6DDB7EA05F08E + B619224313B6AC4CF50D989E7D98345924E8D9B593574036CAD4B54F64909DDD + BC4D6AD06EB3215919ED13B0A646836E210158F3EA04DF80D95F1791D22A2DA2 + A37AB8018E1B140D3BE330C71E22BC196467A9EBACF5557FDCA0680D9E2EA970 + 03ACFEBB1A03A2C2B02875A46FC083BF14936367AE203131CE0D7074522F1091 + 8CDBE85D0DBADAE30DDAAD20362B8C56977ABC6F70407C944F40F5F5EB983034 + 1E53C724F9062C3A7795EC3DF227FAF64DF009E834F86FEBEF7106CBE9129336 + ED398C1818E31B909E72C9DA1D47903C50C91DE9BD01165F5643AE70D4A3D1EC + 482B6373BC339BEC229FF6D87894C14B172E2063E144244647FA0664DF43966F + 3AC02DD62141329F061F0EA7C1C7AD7F7C693C0478D768E616E9ADAA39880C95 + F15CFF00F132E2ED6FA9CBD50000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_13_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000069D4944415478DADDD87D5014 + 651C07F0EFDE2B271A8841A0A670A8BC5CBE21A38E2F930E8E433A3A6ABEA439 + 9A5A8E9A2F939A151AA42695A6A3C9809A5A96239986E54B65A562634E1A4286 + 02BE9D90F2AA7027E0DD717BB74FCFEE79CB5EC7991EEB3FFDFE61EFB9BDBDCF + 7DF7F73CBB0B430881BB1886414BB570CB0F64EBE26458EC1CFC2D3BEB40DEF5 + 5A54DD358B63E72E972163C90B2D7EA9DBC53C0ED064710AAF5377FEEC3774F9 + CBC3515E6342133D54CEC93F9F0C508E6A629D58B7E7A43CC0791F1F2659CBC6 + 88C094ACEFFD86A5CF1F256EF3C7D9B67CACFC40B94A36E0FC0D8748E6F27122 + F0ED8CC37EA33E5C3856DC5E997904596F8E6F3D70EE473964FB8AF1A8BA6797 + 35C1B4EDC7B0E3AD09AD07CE493F4076BE335104AECAF43FC1F7173427C81F67 + 57CA24F98172D51303A67CF28DDFA8F4C52FCA0F9CB5661FD996F2122ACDF226 + B83A33079FA54E931F98BAF5A0DFA8358B26CA0F9C91B69764A54CC59D0656D6 + 04F91FFAC5EAE9F2035336EDF31B95BE749AFCC06929BBC9A7693365EFC1D42D + D9D8973E5B1E60C6CA19A86B64C503FB5B6B964C7D72C06A99D7C1B5195FC903 + 9CB26207C94A9B2D3BF0BDCD7BB17FFDDCFF31B0FCCE3D7226FF2A724E14C80A + 93D684A4BE1892D0039D42833CBEFCA1C00B4565E4BBDC8BB8525A8590D05044 + 740C47705B1D02B52AE17D855229FC5531048C4A237E5E49C7350ACFE71643D7 + 1004B56DE305ABA8B3A0C85889C26223CA6E552026321C6393129118D391F109 + E4C7B30E9CC6E9BCABE816D303CF3C1D0CA50410A0E43C808F82ECA3EF80363A + 9D17F0AEB91155E626BA3F03A793E066790D727FCBC7F0C4EE7875FC10C1E605 + CC3E9E4F8E9F2DC273BDE285D75AB50B525A656AD5698CE8F014C60F8DA76740 + E191608DD90A950202D25D5F1E3A85E401DD317964A23770F6DA6C12151D059D + D6958846C5D0D3AE10801BE70EF31BB8F744314DCB8A0983A3A15407404B8F6B + ACA843BD8D084057F22EA4A9DE82A327CE61F7BB53BD81B3D2F69018433C5492 + 53C823CBAAEFB50AF8E3853258AC4D3056378AC86BB7EBE078D009D2141F0A5C + B6F100193CA0372CF4A195FFC5EEAAACAD6F15F0C2D54A7A1DB70BC735569A31 + 66A01E376BAC1EFBB89126733DF20A8A90BE689C3770FDE73F1145405B4C1866 + 40D95D2BCAAB4D02D40DB43BC9E3C91ED4ED3BF542326EE4E5D21A1822C3C4C9 + A35533D0D29316DE5E879CDCCBE06C8D58F1CA486FE0CE4367C8EF2555189410 + 87FEB11168433FC55254798D19030D5DC4FD56EE3AF5C8B87573860BFFF6A86B + B08A48A7C30153A31D919DC311DA96819A26C7C3CF9754E26C7E3106C686F333 + D91B78F4D7BFC8815385E8D63D5A9828FA8860448605D2353000E121ED686FBA + FA44239975D2541D0F49B8C941C039ECC232E4743AC11225EE3771A8AE35D3D3 + 7D1F372B4D6029BCF4FA0D4C19D90FA306C57A03CF5F2A255BB24F21D6102700 + F909A2532B84ED1189D108A0EBB446AD82B9BE115A8DBA4508FFC5D27A4AA712 + 70FCBF3A2C562BCC5682063A7BEBEAEFD3D669A0E30E9A280B1BCB09C0EBC5C5 + 58363D0909715DBC81376EDD212B33BE85A1774F0FA052A94272BF67A1A0B3CF + 8DE4D39426C6233CA0F43D8EE384717E3FFE75B5D906ABCD8626FE3D27D722F0 + 4A6121D2DF980C7D789037B0B6DE4A5E5FB717DDE26211DC2E5004F235BA7F94 + 0054334E5CBC510D0DC3C14E9A175E3BC708BD25609DCD2D60659B8FCFB22C7A + 75EF82064B9300E567B41468B359698225D8963A13C1811A6F207F2DE6EFFDA2 + A2F5080E6AE713A80BD08A094A93E32F59FCD2E64E4EDA97AC246D8B9DD089C3 + 22FF6A8507D0445BA7AAECA6708FE8F36661E107D94415148A4E61ED1F9AA0B4 + 7CA5E7A02B314B18103A391CC4353ED0D0550082B3E364BE915EEBD522B0D674 + 0F0A4B1D362D9FEC1B989A7998D4B16A74ED14E613A8A03707FCE5EADFBDE7EE + 3BE9B8BBFF9A67FD83545B00969757A2739012AB5E1BED1B98F9752E292C3341 + 1FD5C50398DC5F0FB55A2B6C17192B1E2941FEF226A64913E4E8F29268D0FB04 + DEFAFB16FA448560C1E461BE81077FC927C7CE96203E3EC60BC831AEE4F8BB9C + 9612E49712E9ACF6D57FC28FA23D78E6E20D0FA0F1DA358C1E148B8923127C03 + 73F3AE90DD47FE40CF9E711EC0A48448108556B8659226284D4F4C907380381D + B03A24FDF820C13EB1513E81C57489993FE9790CED1BED1B48EF72C9EA6D4790 + D8D7000DBD56B6047427F8B8FDF75F095E2A2840DABC3188D747F806F2CF214B + 37EC1716EBA0406D8BC0FCCB4604E8028471ABDD755A19A7EB99D9C6297CA6C7 + 97AF041BAC766191DE9C321311C15AD1F50FEB29D5EDCA1C22FF000000004945 + 4E44AE426082} + end + item + Background = clNone + Name = 'Recycle_14_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006BC4944415478DAB5980B704C + 5718C7FF771FD95DA9266810EA910DF2F28C0C8A4E99A80986413D4A0DA5ADF1 + 3645694393A2D2A20C9526A1AAD51AA9D2683DDAA2888E9A52A28A245E61B179 + 4A76B3897DDEDDD3734FECCD6E376BD85CDFCC4EEE3DE7E6BBBFF3FFBEEF3C2E + 470881DB388E4343B6F08B6364D39C2130DB5DEC7E59D6513CA9AD9D3514857A + 134EE415C162B37BF5551A6BB179EEAB0DBED4CDC53D09E0BCCDBF922D0B9244 + C040CCEEE071FE66254A1F18C5B6B35775485F384C3A4083D9C9EE53B61F0B18 + 74C91B83A12F37C0465DE59CF8E7D9004A613687136B769E900670D6670748E6 + E291226072E62F0183A5CD1E2E5E0B7EB2968C921E502A930C70F6FAFD2463C9 + 6811F0FDF40301437D3A6F9478BD3CE32032DF1BD378C0996B73C8D6A563505A + 6D879496BAF530B62D1BDB78C0B7D2F692ED1F8C1301576404AEE0C773EA1514 + FC7C953C5E7A40A9EC9901267FFE63C050690B5E931E70FAAADD242BF9759418 + A5557065460EBE4E992C3D60CA967D0143AD9A3F4E7AC0A9A9BB4866F22454D4 + 3824555018E8B72BA7480F98BC7177C050698B264B0F38397907F932759AE439 + 98B2391BBBD366480398BE7C2AAA6A1DA2E3406DD5C249CF0EB04CE2797075FA + F7D2004E5CBA8D64A6CE901CF0A34DBBB067DDCCC001F515D5E474DE75E41CBF + 8867053836B11706C67741DBB010AF973F16F042BE8EFC9C7B09D7EE94A27958 + 18AA2A2A2405F3B40EEDDA4077AF18511D5B6354620212A2DA707E0185F6CCBD + A770EAFC75748AEA82562F8442AE08123BD5F2BA33894C2E17DB141C01E7F18C + 9CF605C9EACF2E3DB52DD044A3F1017B400F4CA5461B7D9E83D349705B5F8EDC + 3FF33038A133DE1E3390B1F900661FC92347CEE4A36BF75876AF52D6813C0D64 + 438072A51A2A8577FA145799516EB44021038374DB77FB4F22A96F674C189AE0 + 0B3863753689888C804655F7B220EA94E364B8536A685418C35B3C8FB1032219 + 281B38F55B545C05939530C0BA81D5411A4C661C3A7E163B3E9CE40B383D7527 + 898A8B85C2431D015257568D0D3307050CB8EB78010DA7854112998AFAE770E3 + 7E15F847427BAAF858C0C51BF692017D7BC04CCF848243B795549A1A05F8DB05 + 1DCC161B8ACA6A31B29F160AAAE40DBD7754DC9006A309E72FE6236DFE685FC0 + 75DF1C2532F573183B280EBA0716E8CB0C0CB4B18017AE97D075DCCE065E5462 + 44524247DCAFB289FD2A2507150D5AEB661AE4E45E85CB5A8BA56F0EF505DCBE + FF34F9ABB014FDE363D0273A1C4DE87F396885E9CB8DE817D79E852610BB5F61 + 62A17343EA1FD4A0ABB615346A0D9A690894D4AFD07EAEB00467F20AD02FBAB5 + 50C9BE8087FEF897EC3D79199D3A47B242D18687A263CB60848536418BE78319 + 6010FD159556C3586B85D5416032DB9873E2B0321F16BE7E101A05C1B097A2D9 + 670F2BEF0D6DE309783AF8B24A236E973FC4ED12031C3C8F3B376F61E2D0DE18 + DE3FDA17F0DC953B6473F64944C7C53040A140344A19BB1E921009B582168D52 + 81264132BF6AD99D5EF32A837003095F131EDA5CA87E6865BF82BB06DAC6C3C9 + 3BE8605D0CF0664101164F49447C4C7B5FC05BF72AC8F2F49F10D7A39B17A05C + AE4052EF7690D1E41620F3AE1743AD56C36AB5B2BF0CC0E34C2F4CBCAC425D76 + C4D015A2D26481AEBC16C46987DD25A3FD4ED8A9A2C2D7AEFF035EBB7C1969EF + 4E80B675882F207544E6AED9854E31D1086D1AEC1750505108B7A73A6E1372D6 + E57279B50BCF09ED65462B2C745036E119A78B165F8D17A0D56AA10A16222B65 + 1A4283837C0185B558D85A45446A111AD25404146C449F0806A8E49CB874AB0C + 419C0B76521F6ABB8B2E593CFF48CDFA3CB4383CE01D0E74EFDC1E35346F0550 + A1A23D010D26BAFCE96EB32D98DFCDC2BC4FB28922240C6D5B36F30BA851AB44 + 053DD51342CB224B15F454CFADACDBCC76420BC7C152C513B0D2500D99B90A1B + 974CF00F98927180543994E8D0B6E56315F42A0C3FEAF134111D8403E1EDE049 + 5D7BBFB80E0C50C84FE1ABAB5CA11401F5FA12BC1822C78A7746F807CCF82197 + 5CD619A08D68EF0598D4470BA552C500657463E05EFC9F34FFEAABFC91AA0D00 + DEBB7B0F3D239A63CE8441FE01F7FD9E470E9F29446C6C54838082E517153F91 + 82C2F226AA491574D1EA4D88D3FA052CBA710323FA4763DC9078FF80B9E7AF91 + 1D07FF46B76E313E802EAE4E39611BD69082C23C275E3F9A881BCA3F36289A83 + A72FDDF2022CA053CCECF1AFE0E55E91FE01F38B4AC8CAAC8348E8158720BAD1 + 740326C677643B916095CC4B414FF544055D3C9DF378AF55C5AD60CFE808BF80 + 572E5E44EAAC9188D586FB0714CE218BD6EF61937548B0AA4140B7824F9B7F8F + 53B0C6626793F4A6E469080F55895CFF01E8B7E0ED9D3AD3960000000049454E + 44AE426082} + end + item + Background = clNone + Name = 'Recycle_15_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006C94944415478DAB5D87B7013 + 450006F02FEF840A2D609152793405FA9257E9000338A2C50EC2C000020A2208 + 2A529E0A0534602B20554410A4B645114519AA824579A8BC0B838C20B462A12D + 050AB1A44F9AA469C93B596F2FCD35310D32E975FF49B277D9FBDD77BB7B7B27 + 2084C05D0402015A2A6F669E209F2427C268752290D24E2A84FEBE15DA061374 + 06236A1BAC309A2C28BB7B0F2BA68F68F1A06E97E061804B3F3B4EB62E18CD01 + 57651F7B68DCC6F94928D118702ABF0C268BD56B5B9DBE11DB163EDB7AE0A26D + BF92ED4BC6049C202D569B1D976ED6A1EA9E9EABBB704D8D8CA5CFF107D4191D + ECEFD49DC70386A6BCF43434353A5898A6724FFDD536403E8AC5E6C086DDA7F8 + 01CEFFF820C95A3E9E03AAB27E0918969E3C96FB4EDBC94E99C03F90AFC21B30 + 79D3019299329103BE9D713060D4878B2670DF57671E42D68A49AD07CEDB984B + 76AC9C84AA7A2BF82C693B8EE0F355935B0F7C357D1FD9F9CE140EB82633F004 + DF5FD09C206DE74BD554FE817C953603AA3EFD316054FA92E7F907CE59B79764 + AB5E44A59EDF04D766E6E2ABD419FC0353B7EF0F18B56EF114FE81B3D2F6902C + D574661562E335417AA2DFAC9DC93F50B5656FC0A8F46533F807CE50ED225FA4 + CDE6BD0FA66ECBC1DEF4B9FC003356CF82B6D1C6351C6859B7747ADB01AB799E + 07D7677CD73AA0A6B69E9CCB2F45EEC90264A5CDE51DF8DED63D989C380823E3 + FB223C34D8EBE00F045E2E52939FF3AEE0FA9D2A740A0D85B6B6B6CD803DBB77 + 83BABC0251BDBA6242620212A2BA09FC02697DD6BE333873A914BDA3FAE2B147 + 4320124B71F6CC395E619EE58D97C7C3E120B8ADA941DEEFF9783AA10F5E9B34 + 92B5F900738EE693A3E78BF044FF58F6B74C22623F29D25DE422D773895024E2 + EAC4020241D33E22A65E2A6C7E7619A8EC0C91440E99D8BBFB54688DA8D19B20 + 16D2FF346FFBF6C0698C19DA07D392127C8173D7E79088C8082864AE83499946 + 0502E1FF223D81FF45522011CA5CFB354128B6AC420B8399B040D77F5CDBE863 + E9E19317B0EBDDE9BEC03969BB49545C2CD350733A14A9AEAE6FD5650CEBDC01 + E3872921669274436FDCD5C2DE14B4678A0F042EDFBC8F8C183A0046E691AB8A + 89DF5D2AEB0CD83C6F54C0C03D278BD9F63C9137343AAF7DDC489DDE804B0545 + 485F3CD117F8D1D7C78850FE08268F8A83FA9E099A6A1DDB706B81BF5D56BBDE + 245437B2485A6ED7340720930820632E5AD78E0AE4E65D83D3DC8895AF24F902 + 771E3847FE28A9C2F0F8180C890E433BE65F366684696AF41816D7837D851148 + B95C5AE97ADDC15C99B24A3D9E8957A2FEBE190AB9021D1504122639BAED6249 + 25CEE717635874573A927D8187CFFE4DF69D2E44EF3E91EC40518685A0579720 + 740BED880E0A31DB77A422DF89DFEA203E75768F3A83C9EEB3DD6227EC3ED575 + 7A26CDFBB85DA983CD6EC79D9BB7F042D2608C1D1EED0BBC78F50ED996731AD1 + 71312C900E108544C87E1F9D1009B998193412317B4089C0C18E5687C3FB51D4 + 46445EBFE989B941F461FDBEC5C9A657AAD1436B3031757638EC36986D4E1678 + B3B818CB6726223EA6872FF056792D599DF113E206F4F3024AA432240DEC0621 + D3C1DD487AB96972EEA428C00BCAD43B9D4EAEDE6475C268B6C06825309BCD68 + 303B98BEDDE003BC5E5888F4B7A641D935D81758673091851BF6A0774C3442DA + 07714091488C3183BB73C0FCD20AC8E572F640DC6576BA2EBD833988C5D1DC0D + 064785D376A1AE6904715899FD846CEA56E6AAD3B75D9E40B3D9C4245882ECD4 + D9080992FA02E9BD98AE5C22229508096EEF174813A4FDB1A5F4DCC979D6D3FD + 687DB5DE0C13735216BA8FC3E993A0CED0882AF56D7685E377B1B0E8831C220E + 0E4578978E1C90967143225820ED7B576E55432A70C24A845E09D2F458984782 + 269B07DE6643FF3E3DD060B4B0503AA23D8175BA7A088D5A6C4999E61F989A79 + 90686D12F40CEFE217A890CBB8043DD3A3377D9A9D67DF73A76CF318D5B41F5A + 192CED2A9E408DA6128F078BB0E6F571FE81993FE49142B50ECA881E5EC03143 + 949048645C825ED38C9FF4ECCCBDCC460420762BECC4553F2CAE270B84D3CABE + 751589251CB0FC9F720C8CE88405D346F907EE3F914F8E9C2F416C6C945FA090 + 5918B857270FDBFFB8937134A5DA02B0ECC60D8C1B1E8D29A3E3FD03F32E5D27 + BB0EFD897EFD625A04D2525456F15009D2DB1B972693A09319BD09714ABFC062 + 668A499EFA149E1C14E91F58545649D6661F42C2A03848150A2FA053E04A8EAE + 135B4A904EC4DC773BF1DBFFD89362FAE0B92BB7BC80570B0A90367F3C629561 + FE81F43964D9A6EFD9C93A3848C60113E37BB1EBBA2099D02B41CFF4B8049D76 + 66CEB3C364F7E88F4D090E8C8E6811D860B2B293F456D56C8485C838D7BF902A + DEED613508DC0000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_16_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006C64944415478DAB5D8795454 + 551C07F0EFEC336E808609E602886CE1CA518FDA518FC6214D53534A33CD2513 + D7722D34484BCA4CD324C052CBE24885616E952BE0414F1A628602CAA2A4239B + 30C3E2EC33B777DF388F1987F1E0F0FCFDC37BF73DEE7CDEF7DDB75D012104B6 + 12080468A9DE4D3A4DBE8C190B8DC1C2AEAFDF9B89D6D6E6F96360309A50D7A8 + 85AA41839A4603345A3DCAAA9A1033211C1D14D2167FD4E612B8037CD26A2715 + 42FDC0E08CBC7B1F6B668C683B70C5D7A7C88EC5E338E0BA9493ADC66D591489 + 226503CEE69541AB37386CAB553761E79217DB0E5CBAF30FB26B7994DB09D2A2 + A739B7A41695F7D55CDBC5EBE5485CF1127F4095C6CCAEC7ED39E53674F51B63 + A0AC5641CF749571F69FA703E4A3F4463336EF3FCB0F70D1174748F2AA891C30 + 36F977B7610931E3B965DA4FCAEA49FC03F92ADE80315B0F91A4D59339E0FB89 + 47DC467DB67412B7BC3EE92892D74C693B70E1960CB27BED1454D61BC067C5EF + 3E8E6FD64D6D3B707E423AD9F3C1340EB821C9FD043F59DC9C20ED676FEC74FE + 817CD55303C67EF5ABDBA884E5AFF20F9CBBE90049897D1D156A7E13DC989481 + EFE266F20F8CDB75D06DD4A665D3F807CE8E4F25C9B13398B71023AF09D203FD + 61E32CFE81B1DB0FB88D4A5839937FE0CCD87DE4DBF839BC8FC1B89D69389030 + 8F1F60E2FAD9A86B32721DBB5B9B56CCE00FA8ACA92739793771383B1F1458C5 + F37DF0E3C49FF0CAA8708C1CD417DDBD3D1C7EFCB1C0CB05E5E470D655DCB85D + 89CEDEDEA8ABA94172FC3CDE811FED4845AF1EBE28BF730F41BDBB61D2D80844 + 04F90A5C02697B727A36B2736FA24F505F3CFB8C27446229CE65E73C35E03B6F + 4E84D94C704B598DACF37918131188055346B2362760DA893C72E242019EEF17 + CAAECB2422F6EFF9F3977885D9D782992F43246A3EBB3F1ECA44D4D040444746 + 3803E77D9C46FC02FCA09049D975A958C09C7621BB4C93B4955C64FD36118AAC + 0720161008ECB68B9876A9D0BACF00FF2E20429975BF871019D36FD9BD3A34E8 + 08C442DBFF58B7D1AFBE63672E62DF87339C8173E3F793A0B050A62311D76643 + B6046C0D920269D9903668F1DD3A981E764391AD02AEDA964E460CED0F0DF345 + 53A9D672ED15B50D6D3A8D3E5D3A61E2307F4818840D5AAC5439EC6343AAD40D + C8BD52808465939D819F7F7F9208E51D30757418CAEF6BA1AC52B1500ADCB670 + B4DBC0D433856C3F36A4915E14D5CD01C82402C89813D1CD4B818CACEBB0E89A + B0F6AD4867E09E4339E4AFA24A0C1F148221C13E68C7FC17ED4C59ADC6B0B09E + EC0C813BF5E7E5726EBA232AA237DB466717147205BC148445D3B376A9A80217 + F20A312CB81BBD929D81C7CEFD4BD233F3D1273080BD50FC7D3CD1BB6B7BF87A + 7BA19342CC8E1DA9A8E5A78DC14C9CDA4C0FDBEC1F91B40F7A91E84D84DD5E55 + AB66D27C805B152A184D26DC2E29C56B9183317E78B033F0D2B5DB64675A2682 + C3425820BD40141221BB3C2E2200723173D148C48F4DF251A80D496716742640 + CD7C7855D4D6A34AAD435D8396F93E36C16C324267B4B0C092C242AC9A351683 + 427A3A034BEFD490F589BF21AC7FB8035022952172802F8412398BCCBB790F72 + B99C9D1D90899C91B45D6FB4F64BAFE2077A0BEA1FE818BC005A9D96DD565661 + 9D02791478233F1F09EF45C3BF9B8733B0B6414B966C4E459F906078766CEF12 + 684B91A6654B889E325BD1716BB1581CDAB5060B343A3D3406029D4E87461D4D + B2D101A863F025854548899B03CFF65267207D16D33717BF007F787A74E48022 + 911851837B3825487F883BB516EBD8343329E8CDCDE3747050777AE028AF6E02 + 311B98FD84CCA3CD0C0373BAE96C973D50D5D084CAF25BEC1B8ECB9785A59FA6 + 11B18737BA77F57209A409D2C1DEDAF4E87EB49D8E3B2D73507ABA8FD9E29460 + ADAA1E424D1DB6AF8E760D8C4B3A42EA8C12F4EADE9503D29A30C48F054A0466 + 5C2DAD8254608181081D12A4E959C76073825AA31DDE6844BFC09E68D4E85928 + 1D87F640A5B202CF7988B0E1ED09AE8149BF6491FC7215FCFD7A3A00A3863037 + 59898C052AE4322E41FBF4E85B09CD8E26689F9E2D595BD1716860B074A8D803 + EFFC770703FC3A6371F468D7C083A7F3C8F10B45080D0D7209A4093ADC5A5CA4 + 67621EB646C23CDE4C069888B57D58582F16088B819D751589251CB0ACB81813 + 860763DAB841AE8159B937C8BEA37F233C3CC42550C8BC14D09BED938C3FEE60 + CC0F536D0158C8DC6262A68FC20B03035C030BCA2AC8C694A388181806A942E1 + 04A4555076AF5509D2C71B972693A085B97A23C2FC5D02AF5DB982F8451311EA + EFE31A48BF43566EFD99BD597BB49739002D026B72F445B6A504E9AC29B76C22 + 2EC71F7B50CC18CCB95ACA011BB506F626BD23760E7C3C659CEB7F5BA1E6ED03 + 763FCD0000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_17_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006CB4944415478DAB5D87B5414 + 551C07F0EFEC7B7D8115246228A0F10A35E5A847EDA8691CD2B434B334CB7C64 + 6296E5B3D02035297B982401965A96472A0AF355A79780473D69861905F84209 + 565EC22E0FF731FBB8CDBDB2C3E2B21C5C86DF3FBB7367183EF3BDF7CECE1D8E + 100267711C87B66AC58E1CF2C1E2F1E0ED04DE54794D03F40D46D434F2305AEC + 28A930207E4A347A68559CA7BF71BAB88E005F49FB957C183F1146DEC1B6D7ED + CAE9306EF3C209E0AD36D4359A5A90260B4AAA9ADA45760A78BBD54D2583E106 + EF8E2CBF8ED5B3C7741EB8FCE35FC8B6A59344E0DA8C9F3B8CDBB22416C5BA06 + 1CCD2F81C9C2B7DA576B6842CA8B0F751EB82CE547B2FDE538AF13A445BBF9CC + A55A545E37886DA7FE2D45EAF287A503EA8D76B69DB8F317AFA1AB9E9E005DB5 + 1EC25C41F6D1BFBA06284559AC766CDE73541AE092F70F92F49553456042FA0F + 5EC392E3278BDFE97932564D931E285549068C7F6F3F495BF598087C2DF5A0D7 + A877964D13BFAF4B3B84F4D5D33B0F5CBC259BEC58331D95F53CA4ACA41D47F0 + C9DA199D072E4CCE223B5F9F2902D7A7799FE05B4B5B12A4E7D995F084F440A9 + AACB80091F7DE7352AF9E5C7A507CEDFB88F64243C850A83B4096E48CBC66789 + 73A407266EFFD66BD4C697664A0F7C36692F494F982D3C8558254D905EE8171B + E64A0F4CD8BACF6B54F28A39D203E724EC269F26CD937C0C26A664625FF202EF + 81BA9A7A723CFF020EE4152075DDB3A86BB28A27F6B6362E9FDD0AF8E8B8688C + 1D762F02FD7C5AFDF376817F16969203B9E770FE6A25EEF0F343BD5ECF805512 + DF0737A57E857E01FE282DBB86B0017D306D620C62C2FA721E81B43D3D2B0F79 + 672E6060D8BDB8FB2E5FC8152A1CCB3B8EF4A4059203DFDCB6172F3C33157661 + 317645578DDC13F9981033088BA68F65363760E64FF9E4A79385B86F7024DB56 + 2BE5ECF3C489D35D065C34E711C8E52DBDFBE5FE1CC48D1C8459B131EEC0059B + 3249706830B46A15DB562938A1DB650CD8554581B49C48BAA83AFCDB29EC7E63 + B63B707ED21E12161509855C2EB63991B4AB9DA591B7AC4D64CDC72A3802CEE5 + 18B9D0AE92393034E44EB64D646A719F42C05C2CAF83ADF9340A5907812B3FC8 + 2263460E618BEB4A83496C7776755B4899CBC5DC8AD42A3911E82C27F4A24EDF + AADD89D41B1A70E66C21925F7ACC1DF8EEE73F1399A607668C8F42E975137455 + 7A06ADA86DE8543706DCD90B713103D04D7DF362AC745254BB06C081EEEAD35B + 8BECDC7FE1303761CD73B1EEC09DFB8F93DF8B2B317A5804468407B013D293E9 + AA0D181515C416E0DED4DEDF8AD88552A45288CA2AF42D5DBC6B355AF4D61228 + 85E468AF9D2EAEC0C9FC228C0AEF4367B23BF0F0B1BF49564E01060E0A651325 + 24C01703FCBBA3AF5F6FF4D22AD8D851C9B97631B7BEBFB109DB65352D3DE0D3 + A31BFBB4D808DB57556B10D2BC812B157A016EC3D54B97F164EC704C1E1DEE0E + 3CFDCF5592929983F0A80806A41344AB94B1EF936242A151089346A96837C9B6 + 8014439799F4B3B6C104234F505E538F3AE1BB4558D0DB6D5698AD0E06BC5454 + 84957327625844903BF072590D5997FA3DA28644BB011F1C12089952C390DD34 + 4A96A413636BFEA40011E620A0A776381CB86E684293552E601C3099CDA8A833 + 8AAF416E059E2F2840F2ABB310D2C7C71D285C1D7971F35E0C8C08876FCFEE22 + 50A9522376685F11987FE11A341A0D7B3B407F05640E0B78474BD7DB857F64B1 + DFDC1E1E16C82EA0FE8659B8204E00D2D4087B05772BD02CECBB54548C8CC479 + F0EDAE7207D2DF62FAE4121C1A025F9F9E1E81CE6EA609B6951E9D583439D776 + 13EF80D16C61DD6B16526C34DB85BB43632BA0BEA10995A557D8138EC7878565 + 6F6712858F1F02FD7B8B40B95C81B8E1F7B82548FF9138F69A13744DCF99201D + 77A5D54D20765E384E26A46E076F03EB665760ADBE1E32631DB6AE9AE5199898 + 7690D45995E81FE8EF114813A433BAA3E9D1E3687B95C1CCC6A0851E6377B825 + A8D355A09F8F1CEB9F9FE21998F64D2E2928D52324384804D28A1B1102A5520D + 2567C7B9CB5550710EF044D62A419A1E83B92468B2BAE0AD560C1E148446A385 + 41E938740596FD5786A1C17760E9ACF19E81DFFE9A4F8E9C2C4664649847A056 + A31613744D8F4E189A1D4DD0353D67B2CEA2E39017B074A8B8024B2E5EC494D1 + E1983969986760EE99F364F7A13F101D1DD16E82ADEE7D1ED2B309BF1856C281 + D878D8C8CDF65151FD19100E9EBD75952B9422B048B8C5C43F310E0FDC1FEA19 + 5858524136641C42CCFD515069B56D0265C203815AC1DDD6F8132FC6DE9C6A1B + C07FCE9E45D292A9880C09F00CA4EB9015EF7DCD6ED63EDDD56E405A8525D73A + 94207D512EA62924E810666F4C54489BC04613CF6ED2DB12E621C0572DBAFE07 + C3B901FC7D67B7550000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_18_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006CB4944415478DAB5D87B5414 + 551C07F0EFEC7B3503354CC45450E31569CAA98EDA51D338E4AB34B3308F9699 + 47CC47A965A1415A52569A1601965996472A4DCB471D1F097684634698518A2F + 94745D1EC22EB0EC7BF776EFD51D07D73558C6DF3F3B737776F633DF7BEFECDE + 110821F0952008B8512D58974F56CD1C8660EB8F5346D4343A61757870B1A61E + B3C6F48756A5106EF6199F4B680DD0E92108A62ED634C0D4601591E546335247 + 27E036BD2620B255C097B2F7930F5347C0EAF4F2FD259FE7B718B7E2F9E170BA + DCA86BB45D43DA1C28AFB2DC14D926606BAB9D46017393D31F79F1325E4919DC + 76E0FC4FF69135B3478AC0C5B97B5B8C5B392B096586061C282987CDE16CF65E + ADD982B52F3ED276E09CB53F938FE725079D202BD6CDC5676A5179D92CB6FDF6 + 4F05B2E63F2A1FD064F5F0FDF4F5FB82862E7A66380CD526D0B9826D07FEBC35 + 4039CAE1F260C5C603F200677DB083E42C1C2B02D3727E0A1A96993A4ADC66E7 + C95D344E7EA05C251B30F5FDED247BD1E322F0B5AC1D41A3DE9D334EDC5E92BD + 1339AF8C6F3B70E6CA6D64DDABE35159EF849C95B16E373E5D3CA1EDC0E733B7 + 90F5AF4F14814BB3834FF0EDD9D71264E7F93CED49F98172D52D03A67DF47DD0 + A8CC794FC80F7C6EF966929BF6348C6679135C96BD0D5FA44F961F98FEF1D6A0 + 51CBE74E941F38356313C9494BA1FF425CB226C82EF4AB6553E407A6ADDE1C34 + 2A73C164F980869A7A72A8E4147E3C588ACF32A6C93E06D3D7E6E1B1A1091832 + E06E44848534FBF29B02FF385E417E2C388693E72BD1292C0CF52613B2964C45 + 9DC5259E38D85A3E3FA519B07B7817545CB884E85E5D316E442212A3BB090181 + AC3D67CB411C2C3E853ED177E3CE3B42A154695058789803AB64BE0FBE95F50D + 66A43C0A0F5DEB9C3354A3A0B004C313FB62C6F821DCE607CCDB5342F6141DC7 + 3DF7C6F17DAD5AC95F0B0B8F202763BAECC037D76CC28CC963A0545EEBDDAFB7 + E723F981BE989494E80F9CFE561E89EC1D09BD56C3F7352A8176BBE2960359F9 + 906CCDB2EB97DFB0E18D147FE073191B49747C1C544AA5D8C6904545C5B2C2A4 + F5ECD363A052B410B870D51632F8817E7CED5A69B689EDBEAE66E3D1573AE595 + F5894272312A8140901CA3570BE81FD5B9198828B4FCF5B4C1D4ACDD8734991B + 507CF43832E73EEE0F7CEFCBBD44A1BB0D1386C5A3E2B20D862A93080D06C980 + F13D3BF16DB5649CB9D8A4A8960620404B4FD1B5A31EDB0AFE81D76EC1ABCF26 + F903D76F3F440E975562D08058DC1F138E76F453EC64866A332ED5D970AEAA1E + 668BBDD5DD18DEF9762427F6829AC5C4806E2F5F1BEB757A74D4138E67BD76A4 + CC88A292137830A62B9BC9FEC05DBFFE45B6E497A24FDFDE7CA2448587A25797 + F6E816D611B7EB55746C0AD02885FF05491F91B8E9365B17B3EAD6A99DD8EE70 + 13FE5E55AD99A6D98473461385BB71FECC593C953410A306C5F8038FFC7D9EAC + CDCB474C7C2C07B209A2572BF8F6C8C4DED0A9E8A451ABF8938296E07C65B5BB + 607703F5162B1F83971BECFC21525D838DAEEEDCF0B8E9FB2E2F079E3971020B + A78CC080D81EFEC0B3176AC892AC1F10DF2FC10FF870BF0828D43A8E6CA753F3 + 247D18B704C592918E35AFD74B8787952EFA092C563BCC4D0EFE1EC3F1E3AF03 + 9E2C2D45E6CB9310D535C41F58DB60232FAED8843EB13108EDD0BE45401FEE46 + 305F7BA3A50916979262BCB0D9ED3052B0EF31881468B7DB688265C84D9F86D0 + F61A7F20FB2D9E9CB681DEACA3101AD24104AA355A24F5EF26024B4E5D824EA7 + E34F07D8CF94C2EB80D37B6D6C7A68120ECF95FD81D111FC22EA9BECF482040A + 64DD4AF823B8EB81A6060B2A2BCE6173E67421E09F8539EFE41155481822BA74 + 0C08F48DC39626C8CAE6F4D2B1E8E05D6DA72936DA3D30D6363603D69AEAA1B0 + D661F5A2498181E9D93B489D4B8D9E115D44A052A942F2C0BBFC12645F244E8E + AB094AD3F32548870E2AAA2D201E273D4E4153F7C049270DEB6629D06030A27B + 88124B5F181D1898FD5D0129AD30212AB24733E023037B40ADD68A09B25B4E4B + D363C7B1F62AB39D8F41073BC6E3F54BF0C2BF17D03FB213664F1A1618B8757F + 09D95D5486B8B86811C82AF9FE280E540B1E1C3B5B058DE08593289A25C8D2E3 + 304982369704EF72E1DEBE3DD0687570281B875260F9E9D3183D280613470E08 + 0C2C283E4936ECFC1D0909B101817A9D564C509A1E9B302C3B96A0343D5FB2E2 + 7D918E4327C5B2A122059EA0B798D42787E2A1FB7A07061E2F379265B93B9178 + 5F3C347A7DC004A515283D37FD49731101C4ED849B5C697F30BE2707C2EBE44F + 5D952AB508FCFBE85164CC1A8BB8A8F0C040B60E59F0FEB7FC661DD25E7B43A0 + 82FE19D0AA84568D3FF1623C5753BD0ED86873F29BF49AB469080FD58AAEFF00 + E0A70BFCF9B710B10000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_19_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006E74944415478DABDD8095054 + 751C07F0EFDEBB98014E9888E38107571E29538DD5A4A98CF76419853579E688 + 67A95D68909A941DA64980A5763952515A9A9547828D326A8895175E28292D88 + B00BECFD76F7DFFFFFD77D3CD8167179F69B6178EFF178FB79DFFFF1F6FF1484 + 10F84AA150E0BF6AE1FA02F2FECC2108B67E395A0E9BDD892B3556CC1A3B003A + B55271B3FFF1B914FF07F0E85923AA1B5CB0393DB8525DD72A64504097872098 + BA525D0F53BD4D449619CD481DD3177718B40191B7047C217B2FF92075186C2E + 2FDF5FB2B1A0D5B895D387C225B851DB606F44D2E62EABB2B4886C13F0562B44 + AB84D9EAF2475EB98697521E6C3B70C1477BC89AD9C345E02BB9BB5B8D5B352B + 09A515F5D8575206BBD3D5E46F35660BD6CE19D176E0DCB53F9375F347069D20 + 2BD6CCC5E76B5079CD2C1E3B7CB21C590B46C90734D93C7C3F7DC39EA0A18B9F + 198A8AAB26D0B182ADFBFEB83D4039CA2978B0F2F37DF20067BDB79DE42C1A27 + 02D3727E0A1A96993A5ADC66D7C95D3C5E7EA05C251B30F5DD6D247BF16322F0 + D5ACED41A3DE9E3B5EDC5E92BD03392F4D683B70E6AAAD64FDCB135059E7829C + 95B17E273E7EE5F1B603A767E6930DAF4D14814BB3834FF0CDD98D09B2EB6C4C + 7B527EA05C75DB80691F7E17342A73FE13F203A72EDF4272D39E86D12C6F82CB + B2B7E2D3F449F203D3D77D1B346AF9BC89F2039FCBD84C72D252E8B71041D604 + D98D7EB1ECD9E08115D575E440C959EC2C3A0329306DF596A051990B2735018E + 191C838706F641544468930F6F1178F45439F9A1F04F9CB954890E1111A83399 + F049C664D9FB60FADA3C7489EC88F2CBFF20A67B278C1F9688C498CE8A804076 + 3C277F3FF6179F45AF983EB8FBAE30A8D45A1C3C7808594B9E43AD45102F1C6C + 2D5F90D204382365143C742971B1E22A0A0F966068626FCC98F010B7F901F376 + 95905D45A7704FBF78BEAFD3A8F8EF43874B38B04AE6797045D657989A3C122A + 5563EB7EB9AD0023EFEF8DE4A4447FE0B41579A447CF1E30E8B47C5FAB56D066 + 57D2048F2027639AECC037D66CC68C4963F9B60FC996043FFE7A189B5E4FF107 + 4ECDF89CC424C443AD5289C718B2A8A8F8B601A73C3D166A652B818BDECF270F + DEDF9F2F0D2BCD76F178F191A3B2C2A4C580AC7C4893B91EC5C74E2173DE63FE + C0773EDB4D94FA3BF0F89004945FB3A3A2CA24427DFD910D1A5FE955D7D7284A + 49E26A0581E2C639068D0209DD3AF06D8DA49F096C505C6D0C4047CFD3D14B74 + 0A37606BE149781D16BC3C25C91FB861DB0172A8B4128307C6E1BED84884D0FF + 6217ABA977D0E8AD7C1E6CB0395B443607F6890A8386C52329C1EDE54B4F83DE + 807003E178D66A474A8D282A398D07623BB191EC0FFCF1B7BF487EC171F4EADD + 930F94E8C83074EFD80E9D23C29B7C80CD6E87D94EE07038F88FD9EE95FCCDC9 + 81C4ED428841C76FF2CE101DA23A8643A76E4CD1E92670D39BAFAA31D334ADB8 + 683451B81B97CE5FC0534983307A70AC3FF0C8894B646D5E016213E238900D10 + 8346C9B78727F6845E4D078D46CD17E22D55F357243687803AC7F56376BA74BD + 465B84BDA3A9ADB7D3C5931B1EB70087E0E5C0F3A74F63D1B3C33030AEAB3FF0 + C2E56AB224EB7B24F4EFEB077CB47F14941A3D4786E835D0DEE8533E8CFBC66F + 968CB4AF79BD5E9CAFB442109CA8323B10D64E07B3D5C971FCFC66C033C78F23 + F3C56444770AF507D6D4DBC99C959BD12B2E1661EDDBDD1428C549616E2FA14F + 07AF08A6D7A58B7E028BCDC1711E8F077556971FD0E1B0D3044B919B3E99DE88 + D61FC89EC593D236D1C93A1A61A1ED5B056C2939DFF1068B15164145315ED869 + 9F35D6DAC4D72052A0A9DE82CAF28BD892394D11F0CBC2DCB7F2883A3482776A + 1F50A3D521694067115872F61FE8F57AFE76803D47955E275CDEC601E0A14DE5 + F45CDF1F1413C56FA2CEEAA037A4A040D6EF087F05D71C5863AA83D2568BD58B + 930303D3B3B7935A41836E511D03027D03A5B509FA0687CDE1E44DCD467E83C3 + 03634D4313604585115D425558FAFC98C0C0EC6F0AC9F17213A27B7415812A95 + 1A2306758546A36B9220FB2071E4DE48509A9E2F41D607CBAF5A403C2E7A9E92 + F741971BBC99A5C0CB7F5FC6801E1D303B794860E0B77B4BC8CEA252C4C7C704 + 04B204D5B40FB6363D761E3BCE4631EB834E760E1D44CD132C3B778E7E818DC5 + C4E10303030B8BCF904D3B7E47DFBE712290D5C8FBA23950A3F0E0CF0B55D02A + BC7011659304597A1C2649D02E48F082807EBDBBF2A71183B27E28059EA6534C + EA938FE0E17B7B06069E2A339265B93B90786F02B406C37F020D7A9D98A0343D + 366058762C41697ABE64C5899BF64317C5B2AE22059E38760C19B3C6213E3A32 + 3090AD4316BEFB359FAC43E9A41A284169054ACF4D9FB90251F0C79E9B5C3FFE + 4042370E84D7C5DFBAAAD41A0E6CB0BBF824BD266D3222C374A2EB5F165229FC + B21A8B6E0000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_20_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006D44944415478DABDD8795094 + 651C07F0EFDEBBA0014D184843890757DE4C356693A6325E395946614DA69623 + 9EE5D10106A94959699A045866353952595A9ADD0935C9A821661EE0856E800B + 72EC027B5F4FCFF3C8BEECBA6C6DCB6BBF7F76DF77DFDDF7F37E9F63DFE79510 + 42E029894482EE6AD9D652B261DE18845A3B7EAE42ABD18AF953874125974A82 + F98EC725F93F80DF1DD5C26CB1A1AEC51434F27F051E3DAB4353871D669B0B75 + 4D6D41214302DA5D04A1545D533BF4ED660159A333206BCA60F4D2280322FF13 + F099C29FC85B59E360B6BBF976CEFBA541E3D6CD1D0BBBC389D60E4B17923677 + 4DA3F11F913D02FED70A534A6130D9FD9175CD58997977CF814BDFF9916C5A30 + 5E003E5FFC43D0B8F5F3D3515DDF8E039535B0D8EC3E9FB5188CD8BC7042CF81 + 8B367F4BB62C99187282AC5833579C6F4143B341D877F89416054B278907D49B + 5D7C3B77DB8F2143573C3616F557F4A06305BB0FFC717D806294CDE1C2BA8F0E + 88039CFFE65E52B4FC7E01985DF44DC8B0FCACC9C27BF63BC52BA6890F14AB44 + 0366BDB18714AE784000BE50B03764D46B8BA609EF730AF7A168E5F49E03E7AD + DF4DB63E371D0D6D768859795BF7E3DDE71FEC39706EFE2EB2EDC51902705561 + E809BEB2A02B41F63BEF673F2C3E50ACBA6EC0ECB7BF081995BFE421F181B3D7 + EC24C5D98F42671037C1D585BBF141EE4CF181B95B3E0F19B566F10CF180F54D + 6DE4B7CAB3D85F7E0645D999F42EC4216A82EC42A78C4AC4E8118310171DE173 + F27F041E3DAD255F951DC7994B0DB8313A1A26A3C90798BD7167C8A8FC65337D + 80313745425B7B1989B7C560DAB834A425F6950404B2FD45BB7EC12F15673120 + 71106EA65F96C9953878F010DECB9B257A1FCCDD5C82A73227C145EFD42FD65F + 41D9C14A8C4D1B88A7A68FE6363F60C9F795E4FBF2D3B87D480ADF562964FCF5 + D0E14A14E43C4157660EE18743AD354B337D80B333264226EB6ADD8FF79462E2 + 9D0391919EE60F9CB3B684F4EBDF0F1A95926F2BE512DAEC5201D828F23CB8B6 + E0130E64E541B23BEEAF7F3E8CED2F65FA0367E77D441253532097C9847D0C59 + 5E5E81A2BC39A2035FDEB4034F3E3A15726990C0E51B7691BBEF1CCA575E0D06 + 8BB0BFE2C8D1EB0A64E541EA0DEDA838761AF98B1FF007BEFEE10F44AAEE8507 + C7A442DB6C417DA39E4319F07A1503AA1412A868A3C54469B0BBEC14DC56239E + 7B32DD1FB86DCF6FE4507503468D48C61D49B108A3DF72D011D6D26EA5D19BF8 + 34D361B6F191ED29B5ECEA3A45DAD92DE4120249E7E71A7AE241719150B078BC + CAE174F3959D46AD41948640419363AD76A45A87F2CA2ADC9514C346B23FF0EB + 5FFF24BB4A4F60C0C0FE7CA024C446E2B63EE1E81B1D0585C4459B4046A70417 + 1C448636A319742509ABD5CAD717DD9542A1422C4D8555B8CA1769731238E9C5 + 37B61870F18A0917757A0A77E2D2F90B78247D24268F4AF2071E3979896C2E29 + 45526A3207B201A25148F9FB9B22C3D027428D708D0A11BDC204302B86F64988 + C810A80CF4A6B799B6087B04D2DA6EA16B13275C4E07AC0E37079EAFAAC2F2C7 + C7614472BC3FF0426D13C929F812A94307FB01EF1B1A07A9420DB59C2EC4D50A + 283B479DE77188B3F3952523403BF79DD236F3D1197543189F949B3B6C1CC78F + BF0678E6C409E43F9B818498087F604BBB852C5CB70303929310D93B3C686077 + 38B66AF3D4F906131C0E1B1A0D564486ABE879CC6833D9FD8056AB8526588DE2 + DC59F438A53F90FD17CFCCDE4E27EB044446F4FE57A0777ADE38A79BD0A4DC02 + 9A5E385DF41318CD56184C365868A7F53C65F006EADB8D68D05EC4CEFC399280 + 370B8B5E2D21F28868C4F5890A0A18A869DDEE2E6007BDD9303A6414E386850E + 2A5DABB95B608BBE0D52732B36AEC8080CCC2DDC4B5A1D0ADC1AD747002A942A + A40FEB2B002BCF5E865AADE6A397F529A9DB06BBBBEBFFD445FB92CD75757B64 + 621CBF883693955E908402D9C020FC11DCB5C0FA7A1D6E899061D5D35302030B + 3F2B2327B47A24F48BF7018E1B16C7A70D06542AE4FC8955B009B2B2D8DD305B + 6DBCA9D9D4D4617541D7D2E103ACFDAB16C3FADD8805196302033FFFA992EC2F + AF464A4AA20094C9E49830325E007A126427F2942741EFF43C09B23EA8BD6204 + 71D9E971523E2DD99DE0CDEC0DAC39778EDEC02661C6F8118181651567C8F67D + BF63F0E0E4804096A09CF6C160D363C7B1FD6C145BF8C44E8FA183E8DA04ABE8 + 1493F5F0BDB86778FFC0C0D3353AB2BA781FD286A742A9D17020AB8977247020 + 9BA08F5F688452E2869D487D1264E971985782168717DEE1C09081F1FCEF9241 + 593FF4069E3C760C79F3EF474A426C60205B872C7BE3533E5947D039AB3BA046 + AD1212F44E8F0D18961D4BD03B3DEF499B15EB87768A655DC503ECB0D8F924BD + 297B1662235582EB6F382320FC6A940D8C0000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_21_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006E14944415478DABDD8795454 + 551C07F0EFEC2C29506120668A1A5B2E29A73A6A278DF4502E278B286D716913 + B32CD7C282D4A4CC162D022CB33A79A4B2B4B4C5A5843AE509C2B1B20451C109 + 7140606660F6793373BBF7E23C1887B16918FDFD33EFDD796FE6F37EF7DDDFBB + F7490821F0844422414FB1785319412F62505C0C1E9F32022AB95412E8391E97 + 2450E0EB8F4D081AB8F5876AE84C36CC9F3A2A60E42505EE39A481C56AC7E936 + 73C0C84B0A3C54AB458BD1018BDD85D32DED012183023A5CC1DD8AA75B3AA0EF + B088C83AAD01395386E3B270A55FE4FF023E5DF43D7933270316879BEFAF7CBF + 2C60DCDA8727C22138A1335ABB90B4BBEB9A4D1744F60AF87F23422985C1ECF0 + 459E6EC5B299E37A0F5CF4CE7EB261C16D227045C9BE8071EBE64F464D63070E + A8EB60B53BBCBE6B3398B0F18949BD072EDCF81D79FBA9CCA033C8827573D589 + 3634B51AC4B68ABF35285C747BE8807A8B8BEFE76DDE1F3474E9FD13D178560F + 3A56B0E3C0EF1707188AB00B2EACFDE8406880F35FDB458A974C1381B9C5DF06 + 0D2BC8B943DC66BF53B2747AE881A18A900173D6EF24454BEF1481CF16EE0A1A + F5CAC2E9E2F6CAA2DD285E36A3F7C0C7D6ED209B96CF4053BB03A18CFC4DDFE0 + DD1577F51EF870C176B2F9B92C11F87C51F0197C69415706D9EFBC9F7B4FE881 + A18A8B06CC7DEB8BA051054FDD1D7AE0DCD5DB4849EE7DD01A429BC155453BF0 + 41DEACE0818D2DEDE467752DF6541C477760DEDB9F078D5AFD64961730F3C661 + 183FFA5A24C44679FDF90581878E6AC857E57FE0D8A9265C1E1B0BB3C98CE2DC + 99741622843483EC42E3AE8C86A6E10C9206C5617A463AD293FA4BFC02597BF1 + F61FF163552D86265D8BABE8C932B91215956A2F60EE1BDB8246152C9EE5059C + 939501179D08D7379E45F92F6A4C4C1F8647668CE7361F60E95E35D97BF028AE + 1B91CAF7550A19FFFCB5428DF7F26787FC1ECCDB588AB9D99990C9BA7AF7E39D + 65BCDBB327A7FB02E7AD292583870C46B84AC9F7957209ED76290716AE7C88AE + CC04F187838DD58B66FA005978906C42FBF50F15D8F2C24C5FE0DCFC8F48525A + 2AE43299D8C6901595BF73607388EBE09AC24FF0605626E4D200814B5EDF4EC6 + DD38922F6C9A0C56B1BDAAF2108AF3E7851CF8E286AD9873DF54BEED41EA0D1D + A83A7C14054FDEE90B7CF5C37D441A7619EE9A90064DAB158DCD7A0EBDD84095 + 420215EDB4B89870EC28FF1B6E9B09CBE74CF6056EDEF933F9B5A6096347A7E0 + 86E47844D0B3043AC28E9FFC07F56774A8D534A14567EC352C36A60F865CDD0F + 570F88C37543FB434133C77AADB2468B83EA6ADC941CC746B22FF0EB9FFE24DB + CB8E60E8B0217CA024C6476350BF48F48F8D8142E2A25D20A325C10581C8D06E + B2802ED460B3D9F8F4BDA750285488A7596111A9927A7D67771238E9C537B719 + 507FD68C7AAD1E82D38953274EE2DEC96370C7D8645F60E55FA7C8C6D23224A7 + A570201B20E10A29AE88EE8351895720223C1C61723A7014723A903A6F6A8B4D + E0E8EEC12EC013EC78163667E7A781CE295B3B6CFC0D83AEC34AA7FE4EB89C02 + 6C829B034F545763C90319189D32D01778B2A185AC2CFC126923877B01D976B8 + 9C202C4C450BB71C2A958ADF33FE826594155F275D045AAC9D832DA66F04FF64 + EDAD463BC7F163CF031E3B720405CF6423312ECA17D8D661254FACDD8AA129C9 + 88EE13E905BC756402A48A309E9188300594E732C85E8738CFBD1261DD266691 + B6B9DD9DCBD4EA061D2F1F7D23C339BA8D6EB79B1D3E409BCD4A33588392BCD9 + 888E54FA02D9B37856EE165AAC13111DD5A75740B66AF3C489263304C18E6683 + 8DFEB10A5A9D455CC47707EA3B4C68D2D4635BC13C89DFC9C2C2974B893C2A16 + 09FD62FE13E87999C480DD714E37A15DE916D1B467E8A29FC064B1C160B6539C + AB47609BBE1D528B0E6F2CCDF60FCC2BDA45748202D724F40B08F85FDDCBDA8D + 743664126414E386958E7A7F196C6CD46240940CCF3F3AC53FB0E8B3727244A3 + 47E2E0812250A154216354022F1B0CA8AE3D43074C983818A46E3B1CEEAE07BE + 8BDEEC7657E7FE98A4047E11ED661BBD200905B2914BF82BB8F3810DFF3460D4 + E0CBB1207B827FE0E7DFABC937076B909A9AE417C8CA0C7B6315680659581D6E + 5A92ECBCAB59ED34DA5CD0B619BD8075C78F63CAD86464DD36DA3FB0BCEA18D9 + B2FB370C1F9E2202653239268D19E89341F6479EF064B07BF63C1964F7A0E6AC + 09C4E5A0C74979DD74D0BAC8BAB93BB09A96989C7B6EC1CDD70FF10F3C5AA725 + AB4A7623FDFA34286961EE09E829D481668F1DC7DAD928B6F2270F3D860EA2F3 + 33F8D7E1C3C89F3F0DA989F1FE816C1DB278FDA7BC5847D192C0802C326F48E4 + 40F6C8FBE364339412371C44EA954196BDCE42DD9541ABD00D2F0818316C208C + 163B87B2FBD003345A1DBC486FC89D8DF86895E8FA17D2F411FC6FE9F8020000 + 000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_22_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006D94944415478DACDD80B5054 + 551807F0FFBE774103340CC331459457262A538DD9A8A18E65395948DA4BB332 + 31CB52D3C282ACA4ECA96580654E4E8E549A96F6D4126ACA11C2B5D2045F2821 + 2ECA639FECBDFB3C9D73702F6CEBE6B6AC4EDF0CC3BD77EFEEFDEDF79DEFEC3D + 574608C1FF39645D813299ECBC272D5C5BDEAD6F3120210E8F4CBE061AA55C16 + EA7B7CAE90816FCC191B3670E30F3568B389987B6B66C8C84B0AFC765F3DEC82 + 03A75ADB43465E52E0BE2306345B9DB03B3C38D56C0E091916D0E9096F289E6A + B6C068B14BC83A8309799387A2874E1D14F99F804F147F4FDECACB86DDE9E5FB + CB3E280F19B7E2C17170BADC68B30A9D485AEEBA33B67F45760BF85F234A2D87 + A9DD19883CD582A766DCD07DE08277779155F3C64BC0A5A53B43C6AD9C3B11B5 + 8D16ECD6D7417038FD5E6B35D9B0FAD109DD07CE5FFD0D79E7F149616790052B + 73F5B15634B598A463957FD663CD829B230734DA3D7CBF60DDAEB0A18BEF1987 + C6B346D05EC1D6DDBF5D1C6024C2E1F260C586DD9101CE7D7D3B2959749B04CC + 2FF93A6C5851DE2DD236FB9CD2C553220F8C54440C98F7DA3652BCF87609F8F4 + 9AED61A35E993F45DA5E56BC03254F4DED3E70CECAAD64ED92A968323B11C928 + 5CFB15DE5B7A47F7810F166D26EB9EC99180CF16879FC197E67566907DCE07F9 + D3220F8C545C3460FEDB9F858D2A7AFCCEC8011B9BCDE467FD117C5B7914A5F9 + D36130453683CB8BB762D27583317AC41024C6C7F85DFC5F81FB0ED5932F2A7E + C7E1934DE8151F0F5110FC8005EF6C091BF5C263397EC0F8B8CB50DF701A2903 + 1230253B0B592957CA8202D9F192CD3FE2C7EA23484E19822B2E8F8542A94665 + 951E25F933E85D882BA219645F74564E363CF43EF344E35954FCA2C7B8ACC178 + 68EA686E0B00967DA727DFED3984ABAF49E7FB1A9582FFAFD61FF403E6BFB929 + 6C54D1C2BBFD80F74DBD090A4567753FDA56CECB9E3B312B1038FBC5323270D0 + 40E8346ABEAF56CA68D9E5D85BA9C7FB8533233E060B5697E181DC497CDB8764 + F78B5FFE5089F5CFCD08043E50B881A464A443A95048C718B2B28ADE752CBB9F + AECC5CD207871B2F2C98E107BC2F671294F210818BDED84C6EB86E185F373499 + 04E9F87EFDEF1C7826C2F3E08B6B3EE640163EA4D16441F5FE43287AECF640E0 + AB1FEE24726D0FDC313603F52D021ACF1839B4BA6A1F4A0A67471CF8FCAA8D98 + 35FD563AD665D0D0A225C4E9B0B5E24F78451B96CC9A18085CB7ED67B2B7B609 + A346A4E1DAD4BE88A2EF72D10E3B7AFC2F8C1E998AD6762FDF8F44A868B67EAB + A9C3D5C957F26D56B5AA5A03F6E86B707D6A02EBE440E0973FFD4136971F40F2 + E041BC5192FAC662409F68C4F6D042ABECEC34B3D50E6BBB080BFD33DB0498ED + 2E78DD1DD975B93D9029351D65831BD1515188E91905AD4E8B98680DE22E8BF2 + 833619059C38DB8E1306237DAF1B278F1DC75D1347E29651A981C0AA8327C9EA + B272A466A471206B109D4A8EDEB13D9199D41B513A1D85D2C6512969237580ED + A28BCE63FEF7892ED2D964EC7C16A2BBE3BF89DEB2B55844BE806FB308F4CEDA + 0D8FDB05D1E5E5C063353558746F3646A4F50F041E6F6826CBD67C8E8C6143FD + 806C3B33F90A5E72160CAA927938A4EE745B40F9D87A834DBE6CD0EBB43AB83D + F4E22E077F8D1D6FB13A388E9FFB0FE0E1030750F4642E9212620281AD16813C + BA622392D35211DB33DA0FA8531268B51AFACBA28446A3C139AB8461E1767736 + 111B535DC3575A878BD0EBD8616E7706004551A019AC4569C14CC446AB0381EC + B7F8EEFCF574B24E426C4C4F3FE04DC31221576979C9A2B42AA8CF95983D0E71 + 9F033ADC9D9FC59AC9EBED58A6D634B4F1F98D659E85A1CD2EAD91BB028D161B + 9AEA4F6053D16C59D09B85F92F9711654C3C12FBC4750BC8566DBE38D6D4CE4B + 7CC624D2CC6882025B8D66C8ED6D7873716E706041F176D2E652E1AAC43E1704 + FA1E263160579CDB4B68D9BD129A0E1DBAE827B0D9455E5E276D98F3011B1B0D + E817A3C0B30F4F0E0E2CFEB4821CA8372269607F3FE09861FDA052690280172A + 2F3B6EB5B5C3E652508C17822806CD60C35F0DC81CD80BF372C706076EF95E4F + BEDA538BF4F41409A8526B909D992801F5474ED386D14A0D22F73AE0F476CE93 + 1EDA8D0E4FC7FEC89444FE25CC74CE74D2638228F046618FE0FE09AC3B7A1493 + 47A52267FC88E0C08AEAC364FD8E5F3174685A50209B07D913AB5033C842707A + E99CE9E0A5166916ADA2078656AB1FB0864E3179D3C6E0C6E18382030FD519C8 + F2D21DC81A9E0135ED3A065428949830B27F4006D9857CE1CB60D7ECF932C8C6 + 60FD591B88C749CF93F389DD370EBB020FEEDF8FC2B9B7213DA96F70205B872C + 7CED133E59B39FA6F3017DBF24A1668F9DC78EB32E6663D0C1CEA14DD4358356 + C1C927E955F933D1375623B9FE06F4C6FFEDE758DD6F0000000049454E44AE42 + 6082} + end + item + Background = clNone + Name = 'Recycle_23_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006B84944415478DAD5D8797013 + 551C07F06FEEA41C3DB4502883B4147A891CED880338DC1D046528028A8A7822 + E55440D182ED0052453C406B5B14181919AA82A080170A2D8E32826D00395AAE + 4229252DA5498F1C9BF3F9DE966C1BB661421219FDFD93BCB79BDDCFBEF7FBBD + ECAE841082FF7248FE57408944D2EE4E8B3614057415BDA2C2F1D284FBA0924B + 25BEFEC6EDF219F8FEAC117E03B7EE2F83DEC861F6C3037C46DE51E04FA59530 + 5BACB8526FF219794781A56775A86BB6C16C75E24A5DA34F48BF8036A77FA978 + A5AE098626B380ACD0352063423F74D428BD226F0BF872DEAFE4C38CD130DB5C + 7C7BD9A6229F71AB9F1F099BDD017DB3A51549A7BBA2D6784B6440C0DB8D10A5 + 140D269B1879E53A5E9D3E3470E0C24F7E21EBE68C11804B0BF6F98C5B333B0D + E5D54D38A0AD80C56AF3D856DF60C4FAB9630307CE5BFF23F978C138BF479005 + 9BE692F3F5A8B9DE20F41D3E5589DC850F050F68303BF976D6C65FFC862E7972 + 24AAAF19406B053B0F1CFB7780C108ABDD89D55B0E040738FBBDDD247FF12302 + 3033FF07BF613919E385EFEC38054B26061F18AC081A3063ED2E92B76492007C + 3D77B7DFA877E64D14BE2FCBDB83FC57D30307CE5AB3936C782D1D358D360433 + B2377C8F4F974E0E1CF87CCE76B2F18D290270799EFF23F8D69CD61164C7D994 + 3935F8C06045C0C0EABA46F2BBF62CF6955E425B60E647DFF88DCA59F0A80730 + 2DA517860DEA8BE8C8508F93DF12587ABA927C577C1C672ED5202232129CC582 + 82CCC7A16B08EE08AEC8DB89C8F0CEA8ACBA8AF85E5198383A15A9F1DD255E81 + AC3F7FFB411C2C398BB8F8BEE87A77186472254A4A8F7900B33EDEE1376AE5FC + 291EC019E923E1A4B77117ABAFA1F80F2D46A6F6C10BE9C3789B0858F8B396FC + 7CE834EEBD2F896FAB1432FEB3447B12F999D3E95D883DA823C82E7446FA28C8 + 64ADB3FBC5AE228C1BDC07D3D252C5C0E756159298DE31D0A8947C5B2997D069 + 978A80991F6CF31B95B3E8091190851BC96EC7F6EE3F8CCD6F4E17039FCDDE42 + E293932097C9843E863C7CE4183ECB9E19F41CCC5A5F881953C6412EF511B8F8 + FDED64E8E0FEFC6D794D8345E83FAA3D8EDC654FD32733BB70607F63E5C2E922 + 200B37D2D0D08492A3A791337F9218F8EEE7FB8854DD11934724A3F2BA05D5B5 + 061EEA06D606791D5C95FB250F54292450D1498B0AD76067F129B838235E7B26 + 4D0CDCB8EB77F267790D860C4AC4FD09DD10427F65A71576EEC2650C4B4940BD + C9C5B7030DC58DE93C5656817BE3BAF36D366B47CA7538A42DC3030951AC92C5 + C0BDBFFD4DB6179D405C9FDE7CA1C4760B43AF2E1D10D6518DA8884E1E27B13A + 5A7EC7C02E97CBA35F45F3D6BD9D7D7787542A15702C0C4D46D4182CB878CD84 + 8B3A03EC0E072E9DBF80C7D252307E48821878E4E425B2BEB00809C9893C9015 + 88462185D36A41644467740D55E3AED010A8341AA8E9369552013B91A1BD70D9 + 398F3647C156BAE01B380633A1B68183DED00899A6139C0E3B38BB8B079E2F2B + C3E2A7466350624F31F042551D5996FB2D92FBF7F300B2EF03E2BAF253CE2284 + 021512278FABB8AA17E1D8ED3C5B7C59D26BD41A389CF4E4762BBF8DF55F6FB6 + 42DFD4528456FAACD21678E6C409E4BC320DB151A162607D9385CC5DBD157189 + 0908EBD4410454C85BA6E866A0D9D6720C87A3B588584EB1FD3AAB253C58C0DB + 093D8F198D269B08C871163A82E528C89A89B00E4A3190FD173F91B9992ED6B1 + 080BEDE401D4C809D46A15FDEB9343A552E1C6600AA3D51EB06D84770EE1F773 + D074D5E9CDC223685B209F939517B12DE73989D79B85796F1712796824A2BB84 + 7B0047F58F8654A1A6B947A758AD80F246B2B3D7218E1B407761DC5C3C65557A + 7E016623CAC21BB09EE6A4D4ACC7074BA6790766E5ED267ABB02F744770908C8 + 9EDADC71BEC6C4E7202B0C8D5A097DA3A55D6075B50E3D426558FEE204EFC0BC + AF8BC9894A0362637A7A0087F7EF018542E50174BF4C62C0B638878BD0E97409 + 689ADB7C9E1ACD1C9F7F3607DA05565DAEC2809808CC9936C23B70C7AF5AF2FD + A1722425C5FB0D6C3BBDACBFD96882D12EA318172C1CE7758A2BCE9DC3842109 + 98326690776071C919B279CF5FE8D72F51002A942A8C1E102D00B567AFD28251 + 0B052275596173B52EC04EBA5C589D2DED94F868FE021A4D1CBD2009055AF84A + 66AFE06E0696D1252663EA703C38B0B777E0E90A1D5951B007A90393A1A449DD + 1E50A990F36FAC7C291077BFC5E68299B3F253CDD1516CE69CD0D5377B004F1E + 3D8AECD98F2029B69B77207B0E59B4F62B7EB10EEDA0E28132991C63537A8A46 + 909DC81DEE116C3B7AEE1164395879CD08E2B4D1FDE83F93D329E4A11BD86CB1 + F18BF4BACC99E816A6125CFF0092E2E6ED5EE1BAE40000000049454E44AE4260 + 82} + end + item + Background = clNone + Name = 'Recycle_24_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006C04944415478DADDD80F5453 + 551C07F0EFFE6F20819686E23145907F11A89C2CB304358E4999946258666599 + 9865F9AF4283D31F292D2BCB00CD3C79F2C4294B4BFBAB26D4292B83A16980A6 + 28210E45D880B1BDED6DBBDDFB708FCD319D63DA39FDCEE1F0EE63EC7DDEEFDE + DFBDF73D092104CE904824E82EA62F5D4F7099E2935573BABDA8D325F105F85F + C4FF0BB8705D698FBA7870786F3C9E71035472A9CF19B864E0EA39A97E0337FF + 508D162387B97726FB8CBCA2C0EF2AEA60325B70B2B9C367E41505561CD1A1A9 + DD0A93C58E934DAD3E21FD025AEDFE0DC5934D6DD0B7994464ADCE809C8C44F4 + D228BD222F09F874E16EF256CE7898AC0EA1BDEC83529F712B66A7C1CADBD0D2 + 6EEE42D2EEAE3D6DBC20B247C04B8D20A514860EAB27F2E4592CC9BEA5E7C005 + EFED226FCF9B20029F2DDEE9336EE5DC74D434B4618FB616668BD5ED6FCD0623 + D63C717BCF81F3D77C4BDE7D6AA2DF1964C1BAB9FC68331ACF1AC473BFFF5587 + B50BEE081C506FB20BEDBC0DBBFC862EBE3F0D0D67F4A0B582AD7BF65F1E6020 + C2C2DBB162D39EC000E7BEB19D142DBA4B04E6167DE337AC20679278CCBEA778 + F1E4C00303150103E6BCBE8D142E9E22029F5BBBDD6FD46BF3278BC7CB0A77A0 + 684966CF8173566E25EB9666A2B1D58A4046FEBAAFB1FED97B7A0E9C5DB0856C + 787EAA085C5EE87F065F99D79541F63D1FE44EF31FD8D0D44A7ED61EC1CE8A13 + 7005062A18307DE4608C19310C117D43DD2E7E416045551DF9B2EC000E9F6844 + 9FBE7D8549D61598FBCEE77EA30A9EBAD70D7875880675F5A71033381C93C7A7 + 20256680C42B909D2FDAF2237E2C3F82A89861B8F69A30C8E44A9457EC4771EE + 7DD019029BC1170BB76266661AEC749774BCE10CCA7ED1222D251A8F668E116C + 1EC092EFB5E4FBBD55B8FE8678A1AD52C884DF9507AADC8079EF7EE637EAA527 + A7BA01674C4E854CD6D5BB1F6D2BC5C451D1C84A4FF1043EF272091932740834 + 2AA5D056CA25B4DBA528D71E42516E36DD85F001CD20BBD19999E384632792ED + 76BEFAE1776C7C21DB13F870FE261293100FB94C269E63C88ACA2A3760EE9B1F + FB8D2A5838C30D987DF738C8A53E0217ADDE426E199524EC7A1B0D66F17CA5F6 + 00DECF9F15F03198B7A60433A74E148E9D48BDA10DE53421054F4EF104AEFA70 + 2791AA7BE19ED404D49D35A3E1B45E8032E0DA650FD227335EFC627FE3A505D9 + 1E4095420215EDB4F0DE1A6C2DFB0B0ECE88A50FA57B02376CFB99FC56D388D1 + 23E270636C7F04D1FFE269851DAB6BC4CDC9D10290F7F3B9C43514E7BA737F75 + 2DAE8F1A20B459AFEDABD161AFB61A37C586B34AF6047EF5D39F644BE9414445 + 0F150A25B27F1806F70B46582F35C2FB84B85DC462EBFC3F0676387CDBC84AA5 + 5211C742DF6644A3DE8CE3673A705CA7076FB3E1C4D163989E3E129346C77A02 + F71D3A41D694942236214E00B202D128A4B05BCCB8E3B6E1F4515102B59C168E + 424E0BC97385B279C9AEEBCD98AD76FAE3A0BB73823DBFEE874C1302BB8D07C7 + 3B04E0D1EA6A2C7A603C46C40DF2041EAB6F22CBD67E8184A4440FA0928E628D + 52DE794EA381928E19EBB9DD975AA3869DE76125EC333270660E9C430A62B7C1 + 6C9388CF229C8DAD109DD9B63234CF79000F1F3C888267B210191EEA096C6E33 + 9327566C46545C2CC242824520C326475D0B85BCB38B82285021B1832732D49E + 6A11B22164D0D655E56C4CB1CF5DA59608DB7B319B3CA1D731A1B5C37AAE6D13 + 811C67A619AC4171DE2C84052B3D816C2D9E91BB914ED691080B0D7103C65FD7 + 07C11A950874C6C580AC429DC196341B4DA0AEC52466D515288CC9BAE3F8B8E0 + 1189D7CDC2FC574B883CB42F22FAF576036AE4046AB58AAECD72A8542A615A10 + 2E60EFBC707740D7B82A5823E058780336EB5B2135B5E0CDC559DE817985DB49 + 0BAFC07511FDDC80E392222055A8852209522BE818ECCC0C7B1DE22C0E67319C + 5FDDD5F52DC20AE1CCBC376043830E03436558FE58867760E1A765E4609D1E91 + 4306B901C7260D8442A1F219C89EDA9C71B4B1033C6FC1690347BB5C0E83D1D2 + 2DB0FE9F7A240FE9837959A9DE819FEDD692AFF7D6203E3EE6A240E7CB240674 + C5D91C8476BB4344D3E213C6A9D1C4090562A5D5DC1DB0F6EFBF91313A165327 + 8CF00E2C2B3F4C36EEF8038989717E035DBB979D6F3776C0C8CB28C60133C779 + EDE26A3AC5E44C1B8B5B870FF50EACAAD591178B77206578029474CC30A042A9 + C2F8E40811A83D728A168C5A2C10A9C302ABC3A55AE97C66B177B647C6440837 + D0DAC1D11BA273229D4AD854C35EC19D0F3C545989FCB977213EB2BF77207B0E + 59F8FA27C2641D1AACEA16C85612F6C6CA9702719E17560FCE22743547B3D8CE + D9A16B6E1781ED66AB3049BF9D3B0BFDC354A2EB5F1E87D7ED090476DD000000 + 0049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_25_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000069D4944415478DADDD80B5054 + 551807F0FFBE774102350DC429408D572A2A9365569AC658A6699986D6585606 + 665A4A5658D04B7A5A5A0658E6E4E4C494A5E5A3872FB031CB82452259344508 + 9155845D60D9D7DDDDD33997EE65772E6BB86C36D337C370EFE5B2F777BE73BE + 73CE5D19210442C86432741773567C400A7217E06CAB13C18C17D66CC6676F2C + ECF6A1824BD6536050655E1114E07F11FF2FE0B2F5C5BDEAE298C8BE7874EA08 + 6894F21E67E0A281AB174E0818B8799F012D163B32EE48E931F29202BF2BAB83 + D5E6C0E9E68E1E232F29B0EC78239ADA9DB03ADC38DDD4DA23644040A73BB0A1 + 78BAA90DA636AB88AC69342373EA70F4D1A9FD222F0AF844FE5EF24EE624589D + 1EFE7CE547C53DC6AD7A68229C9C0B2DEDB62E24EDEE9AB3960B227B05BCD808 + 51CB61EE704A91A7CFE3A9F41B7A0F5CFAFE1EB266D16411F874E1EE1EE35ECF + 484375431BF6EB6B6073F82E95CD660BD63E766BEF818BD77E4BDE5B3225E00C + B260DD5C7AA219C6F366F1DAE1A37558B7F4B6E0014D56377F9EB3614FC0D0AC + 7913D170CE045A2BD8BAFFC8BF030C46383837566DDA1F1C60C65BDB49C1F269 + 2230BBE09B80617999B78BC7EC730AB3A6071F18AC081A30F3CD6D243F6B8608 + 7C66DDF68051AF2D9E2E1EAFCCDF8182A766F61EB8F0F5AD64FD8A9930067947 + 9DBB7E173E78FAAEC0810D4DADE4A0FE387697D562C3B3B344E073F98167F095 + 455D19649F93362606E3475F8DE801E13E0FBF20B0ACAA8E7C5D528163B546F4 + 1B30809FC3BC81C10A06EC1FA6435DFD19C4C74462FAA454A4C60F92F905B2EB + 055B0EE040E9710C8DBF1A575C1E0185520D7DC5511F60F6BB5F068CCA5B72B7 + 0F70DEB4F170D34DC8A9867328F9518F89A9C3F0F0CCF1BC4D022CFA5E4FBE3F + 54856B4624F1E71A9582FF5D5E5185C2EC7BD1680E6E065FCCDF8AB9D32740A1 + E8EADD4FB61563CAD861989D962A052E78B988C40E89854EA3E6CFD54A19ED76 + B90498F3DE1701A35E7A7C9604C84240B2CDC4CE7D87B1F1F97429F0C1DC4D24 + 3E39094A8542BCC69065E55528C84EA7BB102EA819640D4DBFF31628E53D042E + 5FBD85DC307624BFA9349A6DE2F5CA4A830F30FBED4F0346E52D9B2B01B21090 + 26731B4A6942F21E9F2105BEF1F16E22D7F6C15D13925177DE8686B3261E5AAE + AFC087B9F3833E0673D616E1FE5953E8589741433B2DB2AF0E5B4B8EC263B760 + C5036952E0866D07C9CFD5468C1B9D886B13A21042FF8BA31576B2CE88EB5386 + D137334EFCE040E3A5A5E9E2F111430DAE193A082A9A39D66BBF5437E290DE80 + EB122259254B813B7FF88D6C29AEC4D06143F842898B8A40CCC05044F4D122B2 + 5F98E4610E57E7FFB246783C17DE2BCAE572D05EF4A958539B0546930DA7CE75 + E054A3099CCB85DA132731276D0C6E1F972005FEF27B2D595B548C84E4441EC8 + 0A44A792C3EDB0E1B69B46D1373119B44A5A382A252D24E90AE5F2F352E5DD10 + 9BD34D7F3C74F34BB0FFA72350E8C2E07671B0731E1E78C260C0F2FB266174E2 + 9552E0C9FA26B272DD57481E395C024CBB3E91BF47A1D2F250618EE4FE467967 + 50003130FB3BC308C1B93BEFB33B38FC5A6190008F555622EFC9D9888B0C9702 + 9BDB6CE4B1559B313431011161A13E40352D339D5AD9794DA7839AFA9C5EBB2F + 1BD705B4B964907B38C83C2E58DC5D5396DDC596B0CEFB9CAC119CDD0768B7DB + 6806AB5198331F11A16A2990ADC573B337D2C93A0E11E16122906533E9AA7E08 + D569F8011D428142D49C691133E4727555391BF4EC3E56A142B025CD457D8D2D + 56F105CA41D77901C88FC9BA53F8346F81CCEF6661F1AB4544193E00D103FBFA + 00E306F545FFCBB40103051C0B7FC066532BE4D616BC9D35DB3F30277F3B69E1 + 54B82A7AA00F50A724D06A3574F3A08446A3E1E72DFE01EECE877707F40EEF46 + F9033634346270B802CF3D32D53F30FFF312525967425CEC953EC09B470E864A + A5E1AB3844ABA263B03333ECEB10A17A85E2108A47281C437D0BBF843124AB62 + B3C5D12DB0FECF7AA4C4F6C3A2D913FC03BFD8AB27BB0E55232929BE5740F6D6 + 26C409630738CE81B3663BD4720F5A6DA45B60CD1F7F60EAB804CC9A3CDA3FB0 + A4F418D9B8E3570C1F9EF88F40E1CB2406F4C6B93C8476BB4744D3D9811FA716 + AB9D1E5B6905A35BA0814E3199F7DC8C1B470DF10FACAA69242F16EE40EAA864 + A869970402F4EE5E76BDDDD2010BA7A0180F6C76BBDF31F87B79397233A62129 + 2ECA3F90BD872C7BF3337EB20E0FD5F040955A834929D122507FFC0C2D18AD58 + 20728F034E8FD77442275C87BBF37C4C7C34DF80D60E3B6D908C026D1445F8AF + E0BC81ED36273F49AFC99E8FA8088DE8FA0BCEADC3ED1C4D9F04000000004945 + 4E44AE426082} + end + item + Background = clNone + Name = 'Recycle_26_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000068A4944415478DADDD8797013 + 551C07F06FEE04A86DC1967288B41CBD2C971D90C3A11C76904B502C149C4151 + 91722A975A1044A52A0882600B0E32323230088272A85C6D7110E5EA41A12950 + 0AB12D6D296DD236CD26D924EB7B1BB3214DC38434E20CBFFE91DD9DD7EC677F + EFBDDF7B1B11C7717084482442733179E9375CC6CA19A8AA33C39FF1E1869DD8 + B36666B33775B8448F0CD0AFB27BC22FC0FF231E2DE0C2AD592DEAE2AE61C178 + 6B4C2F28A462AF33F0C0C07533137C06EE3CA946ADDE885963FB788D7CA8C0DF + 2E6A60604C28AB69F41AF9508117AF55A0BAC10C83C98AB2EA3AAF903E01CD56 + DF866259753DB4F506015952A143CA9838B451C93D221F08F876FA09EECB9411 + 30986DFCF9B26FB3BCC6AD7E7D18CCAC05B50D8C1349BABBA44A7F5F648B800F + 1AADE462E81ACDEEC8B2BB58923CB8E5C0055F1FE736CC1E2900DFDD72CC6BDC + E7B31251545E8FCC9C123026D7A5B246A7C7C639CFB51C3877E3AFDCA6F9A37C + CE200DDACD178A6B507957275C3B7B4583CD0B9EF71F506BB0F2E72BB61DF719 + BA78DA3094DFD182CC15ECCFCCFB6F80FE08136BC5EA1D99FE01CEFAE22097B1 + 689C004CCDF8C567585ACA68E1987ECF96C5E3FD0FF457F80D98B2F60097BE78 + 82007C6FF3419F519FCD1D2F1C2F4B3F848C25137D079657D771A773AEE1645E + 29B62E9D884A3FEFA8576E3D82117D9EC0907E3DD12924D0E5E6F7055E2CD470 + 3F67E7E3EAAD4AB40D09E14BC4B6F72709C0E5E9BE67F093D9CE0CD2EF6917A0 + 82A6F43622BB8661FC8878C44776147904D2EB197B4FE1D4856BE81ED913ED1F + 0F82442A474EFE1517A0BF8202A78D1B022B59E36F96DF41F61F391816DF036F + 4C1CC2DBDC80BB8FE67047CF14E2A95E31FCB94226E13FF3AF5C7701A67EF5A3 + CFA8B4F92FB900A78C1E0C89C4D9BBDF1FC8C2A8013D909418EF0E9CF1F16E2E + BC5B38540A397F2E978A48B78B919B5F882DA95350A1F36F0657A5EFC7D4F109 + FCB10349D7EAC327CF62FB07C9EEC0D756EEE0226363209548846B149977A9C8 + 05B862D33E9F511FCD9BE4024C1A9B00A9D84BE0A2757BB9C1037AF37BB64A1D + 235C2F285023233599EC4258BF66903E68F20BC3F9630752ABABC785DC42A4CD + 9BE00E5CF3DD314EAC6C83171362A1B9CBA0BC4ACB439B0253D7EFF21995B670 + AA1B50211341413A2D2C5885FDD9576033EAB1F4D54477E0B603A7B9BF8A2A31 + A85F34FA4775402BF25F2C996137349518D8A707EA190B2C3EEEAA9B869464EB + A25A83D8F050C8C831EDB57345153893A3C63351617426BB030FFF7E89DB9B55 + 80EE3DBAF11325A24310BA86B646501B25C2DA0608ED34A4243046B20125E3A5 + 4ECFA09131935A69CFAE0552F267E18FC5A44429954A04B5269F2A25025B2B10 + D13954F81E6DBD1E955A0637EF34E2668516ACC5825BC5373039F1698C1E14E5 + 0E3C77F916B7717716A262A379209D202A9918225303C60EEFCFB7514AC9C491 + 49F90C340D4FD93559ECD7696F30662BDFAE8EB121F3CF3C485401B05A581859 + 1B0F2C56ABB1E89511E817DDC51D78A3B49A5BB6F927C4F68E73015A4D0C1207 + 46F36D2432257923130935921659BA8DB5D96C6E200AA12883D9790FD66A6F67 + 34B1389FAF76035E2D2840DA3B4988080B7407D6D433DC9CD53BD13D3A0A4101 + ADBD02528003D714E6086F8146234332484ADA8AE97458B803E95A3C35753B29 + D611080A0C7001CA491D50C9A5F66B2A15E4C467BE67F7C5B0CE0C321611C436 + 16229B057AABB3A61A2D748DB5B733D387618D2E407E4C6A6E6257DA0C91C7CD + C2DC4F7773D2C010740A0D1680FC84E9188C768F29F919D78A001D5172BB56C8 + 90C5E25C69E8ACA4ED6809710C05CBBFCF50516B105EA04C6423E200D668EB20 + 36D462FDE224CFC015E907B95A5686273B85BA003BB50F4648809C2F3DBE004D + ACF33E9E80E5E515E81C28C1F237C77806A6FF90CD1568B48808EFE202544939 + 5232146477238542A1E00B2B7F03AB3D3BCD01EF0DC743D159ACD39B9A0596FE + 5D8A3EE16D313B29C13370DF891CEEC89922C4C444BA0087F6EE0C994CC19799 + 564A191983F6CCD09F431CE5C531499A4E1E75692DBFC652A481614889E19A05 + 965CBF8E3183A23069643FCFC0EC0B57B9ED87CE232E2EBA4540FAD6E688E2CA + 46B0AC09553AA33D8B24BBCD01D5A4C4A4BC3C14CFF6EDE619585852C1ADDA72 + 08F17D6321274F7C3FA0E3C7240ABC1767B171A4DB9DA587942F7E9CEA0D467E + FCD991EEC0CBB9B958396B1C62223A7806D2F790856BF7F0C59A2E4DBE009BD6 + C6067D23F4AC84606C648934363B491AC872498BF486D4E9E810A4105CFF0038 + 48C5EDFF8989F80000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_27_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000067A4944415478DAE5D8795094 + 651C07F0EFDEBB28B13281788C09A85CE1418C96DA88478C899A96A168936565 + DE96921518662695A5691268634E4E8E649A9647E505D898798107CAE2856E80 + 8008BB5C7BBFFBF63C2FEDBBAC2FEBE0B2D94CFDFEE17D5F76F7FDBCBFE7F9FD + DEE77D452CCBC211229108ADC5D494CD6C46EA8BA8AAB3C09BB122E33B6C4B9F + D1EA491D2E515B8093977CC5662D9BE175E0FB6BB762FBAA99FF13A057652DC2 + 2BC07F23FE5BC0451B73DB35C43D833AE1F584BE5048C56DCEC07D0357CF8CF3 + 18B8F58806B58D26CC1ADBBFCDC8070AFC355F0B83D18CB29AA636231F2830FF + 4A05AA1B2C3098199455D7B509E911D0C2783615CBAAEBA1AB37F0C8920A3D66 + 2744A3A34AEE16795FC037320FB39FCF1E0983C5CEEDA77E9DDB66DCCA5786C3 + 62B5A1B6C1E84492E12EA96ABC27B25DC0FB0D1FB918FA268B105976076F250D + 693F70E19787D8B57346F1C0B7371C6C33EE9359F1282EAF474E41098C66D75B + 658DBE11EBE63ED57EE0BC75BFB0EB178CF6388334E8309FB95683CA3B7AFED8 + C94B5A642C7CDA7B409D81E1F6D3361DF2189A3C6D38CA6FEB406A05BB72CEFD + 33406F84D9CA60E5961CEF00677DB687CD5A3C8E07A664FDEC312C7DF6187E9B + FECE86E4F1DE077A2BDA0D2CAFAE638F155C41DE853264264FE081EF64ECF118 + F5F1BCF1FC766AE65EC4F5ED8EA1317DD02DC0CFE5E4F704E61769D99FF2CEE3 + F2CD4AF8070480B1B3D8B864222ABDBCA25EB6713FD43E72684B6F21AC6710C6 + 8F8C456C5857915B203D9EB5E3288E9EB9825E617DD0F961352452390ACE5FC2 + A67727F1C0A5999E67F0C339CE0CD2DF99366E2818720BBD517E1B79BF176078 + 6C6FBC3A7128671300B30F14B0078E17E1D1BE91DCBE4226E1FE9EBF74D505E8 + ADA0C02963864022718EEEB7BB73317A506F24C6C70A81335664B3C1A1C15029 + E4DCBE5C2A22C32E160053BEF8C16354FA82E704401A0E24BD15EE3B72129BDF + 4B12025F5EB6850D8B8A845422E18F51E4B90BC5D8903205157AEF667079E62E + 248E8D8354DC46E0E2D53BD82183FA714BA24ABD913F5E5474D90598B67EA7C7 + A80FE64F12006938903A7D3DCE9C2D42FAFC0942E0AA6F0EB26265473C1B1705 + ED1D23CAAB741CB4B05083AC9424B20AB17A3583F442939E1941E6BA080A3268 + 419D54D895770976532396BC142F046EDA7D8C3D515C89C131111818DE053EE4 + 5B565261D7B595888BEDC30353D66CF31895BE682ABF9DAFD1222A3810329239 + 3A6AA78A2B70BC4083C7C38368250B81FB7EBBC0EEC82D44AFDEA15CA1847451 + A3676007A83B2A11E4EF2B3899D9D6FC5D7A1176FBBD573A62B19883B40C5D7D + 232A7546DCB8DD841B153A586D36DCBC761D93E31FC398C1E142E0A98B37D975 + D9B9088F8AE080B44054323144E6068C1D3190FB8C520A6EE1A924FF53C865CD + 4056E21666B79AB8BF267231344BBE1D3BC0462EA8CE6847CE1FE72051F982B1 + 5961B2DA39E0358D068B5F188998881E42E0F5D26A3635E34744F58B76013266 + 23E29F88002B56900A27308A933951B4D1D2FCD12CD24C192DCDB7440AA1D9A5 + BB36C691EDE64C5BAD569C38AB11002F171622FDCD448404F9098135F54676EE + CAADE815110EB56F0701908644A67401B61C5EC7903B608E30589CDB0EA0C96C + C5E9F3AE4093C94832485A5ADA74A83BC885407A2FA6EF02834343A0F6F37DE0 + 406E4E6A6F70EF0CDD2E16E67D94CD4AFD02D02DB0930B504E1A954A2E6D3EA6 + 52414E7C9616AB2FA3D55924469B0862BB1522BB0D8D8C732A986C7411D0FC39 + 0BBD18323F5B026B7475101B6AB12639D13D302D730F5B6B95E1916E813C90CE + C76E9D3B21C057CEB51E1F027444C9AD5A3E43369BF34E430B827E8EF6382EBB + 56E7792A6A0DFC0394993CAB3880E5E515E8EE27C1D2D712DC0333BFCF630BB5 + 3A8404F7700176F55721D0FF218F80B4886C7F27981690BED1DC2AB0F4CF52F4 + 0FF6C79CC438F7C09D870BD8FDC78B111919E60254495928950AB2FC9242A150 + 709D9F3B01D35CC5AD015B86E3A20C462369316CABC092AB579130381C9346C5 + B807E69DB9CC6EDE7B1AD1D1112EC061FDBA432653707DD047292373B079E8E8 + EB10470B7114C9DDC5A329AD4595DE442A53411EE069F69856811AD262663F3F + 0C4F0E08750F2C2AA960976FD88BD801519093ABF614489FDA1C71ADB289F43D + 338764188614085A055E3C7B16CB668D43644817F740FA1CB2E8D3ED5CB3F623 + 577C2FA0E3651205B6C4D9C82302C3385B0FE9AFDC3C6D3498B802E1E6E25DC0 + 06A3856BD26B53A6A38B5AC1BBFE02D6E4B9ED648DC1C20000000049454E44AE + 426082} + end + item + Background = clNone + Name = 'Recycle_28_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006A34944415478DAE5D80B5054 + 551807F0FFBE77416265C4409D141079453E622AC51246630CCBE961A4D5F4B0 + 3235CB4AB3C2C2D2A477691160634E4E4E649A9666E5136ACA29458C909722B8 + 218222EC82B07777EFDE3D9D73F35E5877D78175B399FA6698BDF770F7DC1FDF + B9E73BE7A22084400A8542016F716FF63A92B7F401B477F1E279CEEA22F81BCB + 17CE928F593F9FE7CEF67A53C9A5E80FF07487C36F98B75891F7456080F72CF9 + 98142C9B1D70E02BAB3660E35B73FE27C080CA7A454080FF46FCB780CFAE29BE + A4211E1131108F4FBB063AB5B2CF19E837F0DD39697E0337ECADA635D486B9B7 + 8EE933F2B2027F38648295B3E3645B779F91971578E868335ACF3960B50B38D9 + DAD127A45F4087E0DFA378B2B513E64EAB8CAC6FB660DEB4640C30687D22FB05 + 7C3A7F0F797FDE64581D2EF17CE927C57DC6AD7C241D0EDE89F6735C0F920E77 + FDE9AE8B222F09D8DF08D22A61E97678224F9EC573B3522F1DB8F0A3DD64D5FC + 2932F0F9C25D7DC6BD393703354D9DD857560FCEEEBE54B659BAB0FA899B2F1D + B860F5F7E4C3A7A6FA9D41166C984BEBDAD072D622B7FD566942DEC25B020734 + 5B05F13C67ED6EBFA18BEF4B47D31933E85CC1967DBFFF33C040849D17B072FD + BEC000E7BEB38D142CBA4D0666177CE7372C775EA67CCCFA295C3CDD7F60536B + 07F9B9EC288A2B9AD11B18A860C0F4E4484C1C370A43C343DD6E7E51E0A12A13 + F9A6A41CB5275A10161E2EB6E52FBE5D06BE90B7CD6FD41B0BA6CBC74BF3B723 + 44AF81A9F114E2464460FAE414A4C40D51F804B2F6824D3FE2C7D2A31819370A + 570E3242A5D6A2FC480DD62CB9032D01DE512F5BB3033333C743A02B5443D319 + 94FC5286F494583C7AC744D1E6012CDA594676EEAFC2D5D7248AE73A8D4AFC2C + AF3C86B52FCE90812FE5FB9FC1D7E6F76490F5333333152A55CFE87EB6B51853 + AF8F4556468A2770F68A2212151305834E2B9E6BD50A3AEC4A0F60A04202B290 + 906CA5F976EF6F58F7F22C4FE0C3CBD693B8A444A8552AB98D21FFA83AEE06CC + FEE02BBF51B94FDDE5069C3135156A651F818BDEDD4452AF1F2DEE385A2C9CDC + 5E55558BC2EC9968B6043683AFE66F41D6AD69E2B184345B3A517AB80AB94FDE + EE097CEBD35D44A91F803BD392603ACBA1E9B459845E08CCF970B3DFA8E54FCE + F000EA340AE8E8A0450C34604B49255CB62E2C7928C313B876EBCFE4D79A164C + 189780EBE2231144BFC5D31976DCD482B494517417C207348395B50D88191E01 + 0DCD1C1BB50335CDD85F568D1BE223D84CF6047EFBD31F6453710546C6C68813 + 253AD288118383611CA0474458887C9D899604CEE6C039AB0D67BB9C70D86CE0 + 1C4EF1770EA70B6AFC7D4C742108A6D931066BA137E8610C31206AC820B91F73 + 67175ACC1C1ACE74A3A1D90CDEE9C489BAE3B827E35A644E88F7041E387282AC + 2E2A467C5282086413C4A0514225D89179D318F11ABD9A4E1C8D9A4E2405B4F4 + E7C25DB6D3C7AEDBEE24E268700E41BCA68373615F690DADB31A084E1E36DE25 + 02EBAAABB1E8FEC91897709527F078632B599AF735924627BB01053B878CF109 + 204A1D82754A9455D6531CCD165D58D8A752AB87C0F3506934623F0CA110E84D + 5D4A71E8A47DA08D263675742C85520CBDFED7C3D5501942DC80B51515C87D26 + 0BD111A19EC0B64E8E3CB172034626C4D3E108F60A6499D3D176A988B3ACB85C + 2E394B5216F95E99647F88945986133FBD006D368E66B00685390FB2C7C213C8 + D662F6AFB6A898681843433C802C541A7DBF815647CFB104B4D9791C2C77078A + CFA4A941FC979CCFCDC282D78B883A341C43070FBCECC036730794D676BCB738 + CB3730277F1B69E735183E74B01B504B2BA941ABFEBBCD60909F412938BEE775 + 80732AA074F150B89CE8127A5625F60C12E23A3FDBE97D799B1BB0A9A919C342 + 5578E9B169BE81F95F96900A9319D15157C94036618684193038EC0AB1360651 + A014F5A7DAE50C399D3D2B0D9B1CEC3A5684D96EC579DECF2690A5CB2E4F1C3B + 7D5791808D7F36624C5418E667A5F9066EDE534676ECAF4162629C1B70903108 + C3068588400DCDA646A313BF73AAD58CF66ED7458176BED770731C2D31C42BB0 + FED8314C9B108F1953C6F9069694D69275DB0F223939C10D685013E8F53A5AB7 + D4D0E974E2D224DE800EB32078CF60EF90B26EE966D913BC02AB69899977F724 + DC3836C637B0AABE99BC5AB81D296393A0A59D4AC049A387895963853A88EE82 + B5E7771FAC504B25449A24174E9EEAC6769CB6D868E9D0D15266055B74BC018F + 1C3E8C65736F436274A46F207B0F79F6ED8D62B10EA51DFA0B646F6D52D4B574 + D3BA671791822078059EE31C62915E95FD20228D3AD9F517BB86C6ED87FF60C3 + 0000000049454E44AE426082} + end + item + Background = clNone + Name = 'Recycle_29_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000067E4944415478DAE5D87B5054 + 551C07F0EFBE777904386A908E0AA8BC42949834B11147231275B414B59A2C2B + 139FA5668506A94965634912609993931399A6E5A3F205D898E3032145605101 + 097151846511B8FB3EDD73612FBB2EABB0AC3653BF7FEE03F69ECFFD9D737EE7 + DE2B2084C0120281009DC5F349DBC8D72973A06AD4C395919C968DEF53E776DA + A8C525E82A307DD54B686836F0177636D62E9D7DFF803734AECDE0BAF41F5C03 + 9CB9F22B929932D7E5C00F36EDC0CE0DF3FE274097CAACC225C07F23FE5BC065 + 5B727BD4C5837C7DF046FC30C8C4C22E67A0DBC08DF3629C06EE3856CAD6502D + E64F1ADE65E40305FE7EAE0AAD8C0ED7EA5BBA8C7CA0C0739754A8BBAD47ABCE + 846B759A2E219D02EA4DCE0DC56B754D5037B5F2C80A552312E3C3E1A1903A44 + 760BF866C651F279E278B4EACDDCF1AA6F72BB8C5BFFEA38E80D4634DC663A90 + 6C7757DC68BE2BB247C0EE869B5488C616BD3DF2DA2DBC3D3BBAE7C0A55F1E21 + 9B164CE081EF641DEE32EE93F9B150D63421A7A0028CCE76A9AC6F6C46DAC2A7 + 7A0E5C94F61BD9BC24CEE90CD2A0DD9C7FA51EB5B71AF973A78BAB90BEF419D7 + 01D5AD26EE3879EB11A7A12B5E18879A9B6AB073057B72FEBA3F405784CE60C2 + FAED393D03D6D469C889824BC82D522173F9641E9894F9ABD3B0D4C489FC3EBD + CEB8703F8C891C8A7E7DBC6C1ABF2BF05C4915F925EF3CCAAED6A2579F3E2002 + 910DD05541810FC984A8AABE8EA041BE98323E0A51418F081C02E9F9CC5DC771 + 3CFF1206070DC5C3BDBD21124B71B1A40C192BA6F2C077D3F7398DFA78D1147E + 7F55C67ECC881B0513BB0054D6DC44DE9F0518173504AF4D1BC3D9EC80D9870A + C8A1932578745828772C9388B8ED456505B6AC9C865A173F51A76C3988194F8F + 8248D4D1BBDFEDCD45DCC82148888DB207CE5D974DFC03FDA19049B963A958C0 + 76BB10E78B2F63EB7BD379E0EA0CE733F8E1828E0CD2EBCC9A18CDED5B90B490 + 1F38761ADBDE9F6D0F7C25653B090A0B855824E2CF51E48592721BA0AB8202A7 + C745432CEC2270F9C65D247A6404B7A0D73632FC79E5A50A1B60D2173F398D4A + 5DF29C1D908605A96E6C427E610952174FB5076EF8F63011CA3DF06C4C18AA6E + 31A8B9A1E6A025EC24C94A9AE5F22F0B6B32F62061520C3BD60590B19DE6EBA3 + C09EBC6298B5CD58F972AC3D70EBDE13E494B216A32343F078B01FDCD85F19D8 + 19565E558B98A8A168628CD019099237EF761AB576F1747EBFB8AC1281037D21 + 6133477BED8C52859305A51815EC4B67B23DF0C01F17C8AEDC220C1E12C84D94 + 003F6F0CEAEB0E6F0F397C7B79DA3546B19630583D2B9ACD1D6BB65028E4F725 + 22DB8540DDD48C5A3583CA9B2DA854A961301A71F54A3966C63E8689A383ED81 + 672E5E2569D9B9080E0BE180748228246D0D4C8E0EE1B6B4F4D00BCBD9BFC9A4 + 92361C11E15ED1CA305C963C3DDC61646F46C3989193AF64EBAC0426A3015A83 + 99035E292DC5F217C7233264803DB0BCBA8EAC4AFF196111E13640938E41EC13 + 21204219DCD9CA2F17835B5DAC836690668E668C6E2DD965DA9F805AF5D6D966 + 3106034E159642A4F0B40196151521F5AD0404F87AD903EB9B18B270FD0E0C0E + 0986B7A7BB4360417105A4AC4F6FB5F231868E6E658C6D5D494C46688D1DE7B5 + 46203A628843A056CBB01954222B790EBCDDA5F640BA16D32F59FE8101F0F6F2 + EC142866C7918C766FFB2A63C99CF598A45D683D26E98D18DB8F298EDB7602E4 + C6645525F7C5CBE1C3C2A28FB289D8AB0FFAF5F5B103D21049E4DD06DED9BD5C + 3675069C3D6F0BAC576B206C6DC0672B121C039333F69106830403FBF57DE0C0 + 9A1A15FA7B89B0FAF578C7C08C1FF34851951A01FE036C8052B6D42BA4E2B673 + 0AC53DC7A0D06C80C06C44B3A96332D1314848DBFFE9E9CD18B436C0EABFAB31 + DCBF171624C43806EE3E5A400E9E542234348807D219DDDBDB0DFD7B7B72C55B + C262251219F79BEB756A34B4B4356A3476AC34B4A4B8B1374257099DC12A9B6C + B9D130847F81D2B1EF2A1660C5E5CB881F1D8CE913221D03F3F2CBC8B6FD6711 + 1E1E6203F4F19062A0AF0F07A4411B6FD199A169D2DC1548D758AB89CCBE7EEA + 589CA95360295B6212678CC59323021D034B2A54644DD67E448D0883946DC002 + 548809E472195B58C590C9646877722F3FA6F6F17627D03A2896463DFBB4A267 + BBBA33E0C5C242A4CC9F8CD0003FC740FA1EB2ECD39D5CB1F67297F1C0B111FD + B96EA545DA4D2E61C7A0A0BD8410BE84DCB9F459264F6975036E346AA1904BD1 + DCC2740ABCCDE8B922BD29690EFCBC65BCEB1FD15AB0EDDB52567D0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_30_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006864944415478DAE5D87B5054 + 551C07F0EFBE59D100470CA4510179874F4A139D7454344D474D713047CBCA7C + A5A5668506994965A36912689993C548A669F9A87C0196393E10530456147003 + 02455840601F77774FE75CDC0BCBB2B62E9BCDD4EF9FBDF7CCDD7B3FFB3BE7FC + CE3D2B2284C012229108EDC5ECC434921A1F87AA3B1C7F1EBF71179C8DA46533 + 85E3842D7BF1D59A59ED3ED4E21239029C19BF837C9E380715B506A761ED45C2 + E674EC4A9AEB1A60F2AAD9A869E0841B3B1BEF2E8DFBE78037EB5C9BC1B5C9DF + B8063863E567243571AECB81EF6C4AC3EEF5F3FE274097CA5A854B80FF46FCB7 + 80CBB66576A88B7BFB78E1E5097DA1908A1DCEC07D0337CC1BE13430ED4401AD + A13ACC7FBABFC3C8070AFCF9821A4D5A3DCAAA1B1D463E50E085C20ABA8E1BD0 + A437A1ACAACE21A4534083C9B9A15856550F4D7D93802CAEA8C5820991E8AC94 + DB45DE17F0D594E3E4E305A3D06430F3E7ABBEC87418B7EE8591307046D4DCD1 + B620697717DF6CB827B243C0FB8D4E72316A1B0DB6C8B2DB783D2EBAE3C0A59F + 1E239B168E16806F6C3DEA30EEC3F9315095D72323A7185ABDF552595DDB80CD + 8BC6741CB878F34F64CB92714E679005EBE6ECEBD5A8BC5D2BB49DCD532379E9 + 53AE036A9A4CFC79C2F6634E43573C3B12E5B734A07305FB327EEF18B0BCAA8E + 9CCA29C4AFAADB680D7445E83913D6EDCCC0F0D06E183630187EDE1E560FBF27 + F042BE9AFC907509576F54A2ABB737884882D4E51305607CEA8F4EC392168C17 + 8ED97D1E5288A12EFD1321BD7D30695414A2427A88EC02597BEA9E9338995D88 + 3E21C178B89B27245239720BAE5B015D150C183BF63198687D2D29BF85ACDF72 + 30322A082F4E19C6DB6C80E94772C891D3F978B46F387FAE9049F8CF82C212A4 + AC982C00DF4C3EE034EA83C59384E35529073175CC6048242DBDFBF5FE4C8C1B + 1C84D898285BE0DCB5E9C43FD01F4A859C3F974B45B4DBC5B8A22AC6B6955350 + E9E237EAC46D87317DEC10FED8826475F2D089B3D8F1769C2DF0F9C49D242422 + 1C5289446863C8CBF945D8FED63401B83AC5F90CBEB7B02583EC3ED3C645432A + 7610B87CC31E123DB81FBF5E56D66A85765561B115D0556101B2B02035B5F5C8 + BE988FA45726DB02D77F799488DD3A63EA8808A86F6B517E53C343DB02E33FF9 + CE6954D292676C800A99080ADA693E5E4AECCBCA8359D78095CFC5D802B7EF3F + 45CEA82A317460181E0FF54527FA2D8ECEB0227525464405A35E6B84DED8F1FD + 93820E1B769FBCAB2508ECE50319CD1CEBB573AA0A9CCE29C090501F36936D81 + 877EB94CF664E6A24F50203F51027C3DD1BBBB3B3C3BBBC1A76B17E13A352D09 + 5A9D01B53A333F660C3A1D1A4CCDE3D6A4D7D2712B6E3E9628D0D55D06A54C0C + 37A51B3CBB28E1DFA39B701F4D7D032A355A94DC6A444985069CD1881BD78B30 + 236610C60F0DB5059EBB72836C4ECF446844180F641384DD9CC5C4E8B0E65F4F + 4B8F3B2DAEF2BB83BAED3BA2D1CE3B23CB18EB0DB3D98C46BD19755A3332B255 + B4CECA603272D071661E78BDA000CB678DC2C0B09EB6C0A2D22AB22AF97B44F4 + 8BB402B2ACC43C11062256F0B89CBC620A6438F099691B5A4373BD64CB19EB3A + 83D14C8BB1916F1B141144A16610B309A72E15D900AFE6E622E9B55804F878D8 + 02ABEBB564D1BA34F4090BA5DDE16E17E82605BFFCF1DD48B362349BAD3265C9 + 24D72A9B4D86966306E4380E672E1640A2EC2200753A2DCDA00A5B13E6C0D35D + 6E0B646B31FBA3C83F30009E1E5D1CCAA09035AE05A93536773FA159D3195BDA + 753489D1FD82EC02F931A92EE1FF50B2FBB2B0F8FD7422F5F0865F77AF768152 + 3AF6D82CB42C83967175AFECB11F62199B0CC77FB603ACD6D441DC54838D2B62 + ED0313520E901A4E865E7EDD6D802C2432B7FB06B6ED5E3E9B7A0EE72F5903CB + CB2BF0888704AB5F9A601F98F26D16C9556B10E0DFF381034BFF28457FFFAE58 + 183BC23E70EFF11C72F8B40AE1E121564056DB947269739B52F9B763506CE620 + 321B85FA68198384345F67603F86D359018BAF5DC384A1A198367AA07D6056F6 + 55B2E3E07944468609405672BC3ACBD1CBC78B5F5D5874A248BE9ED5D7A1A6B1 + F9A14663CB5ACDCA0BBB86D5EC56F384EEEEF474F3641236507ABA57B1000B68 + 895930FD490C1F10681F985F5C41D66C3D88A8011190D30758809D940A04FB79 + 42469FC8962647816DA39AAD3C3493ED01AF5CBC88C4F913111EE06B1FC8F621 + CB3EDACD176B0F778500544A09DCDC14B4B04AA15028703791FCE6C77477BCB5 + 05B60E86D5D3EB1A1AB5ED02EF680D7C91DE143F07BE9E0AC1F5175B04C6ED43 + FBDB810000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005B74944415478DAEDD87D5014 + 651C07F0EFDEDE71C781021242E284A817E16876925E623A8E2F43A06629A613 + A695D3D4E868394DA6D9984EA393D5E4344DD61FA0A3698225642ABEA593CA4B + 14C789225A1A08822227C371DEFBEEDED33EDB400AB277E701FA47BF999D5976 + F7B9E773BFE79E677F3C0C21040F7330770239C14DCA762D406B43856CA3A8C1 + 636058980B15AB66FA1468FA7925898C8D44E2D8A5B28D6AFFD80ACB4D0BF4CF + 6FE93B60C3F97CF2E7E90D18FBC25C2894F28D04814779C17E244DFA088347CD + E955A404B4B5FC4D8A77CC827E663AB411117E3574B4B5C174F030262C3E80F0 + E861BD869480A7736690F8A40188D5E9EEB8C1F96CDC74E52AAA4F9DEE1108FD + 5D3FBBB8A0CB17958007362690294B16F55612FC8A93393B316B6DDD430424AE + BB81DBF6CA0327CECBE8C1DE85C0AC4A82A23DC7E4817D9437D99005CE5A530E + 22581F088C88C37DE8B30C79E08CF70AE168DDD7AB10B995C1E7240914E8CF32 + 1448F80466BC5B0097A5A0C73AE4BD0C6ADA6EA0C9EE808BF72242ADC2E30362 + 10A5D6767936F752056A4A4CD8F8C1753960AE082C0C1AF6576B1372AA2EE0E4 + B51AF02C8152C982D52820B8BCF0383D488A1C88ACE464A40F198610568D2DC6 + 22E45DAD81EDB60DB5AB5B7A0FE811DCD8547606053597D1EFD17084456BA00C + 613BEE2B152AE9E0ED025A1A2DD08A607DEC209C6A6E8421F5699C38FAAB3C30 + 7D6536DCD64EAFAD4E8B697761763AB1ECC411D42B5C884AE8275DF3F2442C3A + 1828148A0E9C8A5541CD8A70B11AB1D96C68AC69424A8A1E6A55280AC5F7BA6F + 60DBB1C03327FED61616E6E3BA9697FEB6DF72422930D0B24A583817424243D0 + 7F50186206C674E0548A7FA134284E239EE7EF2F90073EB7E22B786C670206AE + 2F2DC2A11B75E079019362E2B064E4288C8E8994EE7122BEE2E60D6CADACC605 + 870523529E40A832B40B8E46D04006CE2ED79A1D4E4C13EB421AEBC68D43A66E + 68B7ED3F2F3721B7BE162906BD04A4389A49966111AAD262F78FBB7D00977F0A + CE1E58066986569F2982216E005E4A4A967DB61D989A3AFE2E1C9DC9F4D8F9C3 + 0E1FBFC1E5EBE1B11B031E627F62D3EF15D8DFD088A70C23D15F13255DA3434B + 61AC829532BA2D2F471E98B6F47DF0AEEAFB023032B3FD9B7357F05D4D3D52C6 + EBA162D4E2CC5648B83B67358D80808C9FCB8B3F917DE10ABEACAC82C0CB174C + C38902C7D798BB074E7F6B3988FB528FC1028D5FB61F977F17A7A64F04E16F3D + 001A2F0EBB16C5872BE581741613A145BAA860FCAB5F17FC940D6353BDEC33AC + F836599932156FEA2775FB8C973038BA75B3AF923F0DBCA57367BC6CE7634F9A + F0FAFC25D2B95B70811338B18AE1E012CFBD6205C311378CA52664C584E1D584 + 58D9CF2A3D7E591E489719781D010D8EEEDB751290E204AF20150C1447C3EA6A + C5D9B22ACC4B1C85D5E3337C8C0A87C35F6F91074E481F2D7EEBC08034838BE6 + 2D9660F41088202EDE1CDC9C132525A5981B1581B787C7CB7E465E831917AD0E + A4357A7C6470D9AA8070ED19CCCACC829373DC85A319359699B020710C561926 + 43C9DE7B2F25F7E259AC2F3E289D6F7087226BEDB57B037FFB3E8B986B8B0206 + AE606D9833FB45E99C0E2DC5D1A04027EF44B5F112E2AD1CD2480892C87FC846 + 46C03EC68D3AAD422A689FB40A7827611A9E7979F7BD81F71B899F44130AEC8C + A399E4BDBC746E6E36C37ADD0ECE2D205215053B67912AEDB04742C517038F21 + AC0EF9AF1CE9762B2F6860C6CC740967349A103F340EE1E1E11DB8F6594D0FAF + D7DB51C4D268ADBB2DE1B233F720363CAEDBCDA7A08153D326A3ACA41C694366 + A2ACBE18369515D1F1915086B11DB8F6E03D02EC2D2ED86E3A313B29131BA66F + 465848B8ECCE585040DD17B144A3D6607EF2227C38E563DA11D965DA8EBCCA9D + B878EBBC544DB7FFC3440BDA10AF06D387A7E10DC30A8C1838D2AF2DBBA0807B + CFED221E711817EA5FEBD299C5D94AAA9BABD0E23043A3D4203EE231E8A27501 + 6F1B0705EC8BF81F186CFC0308605BDE0E0386020000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006784944415478DAEDD8794C14 + 571C07F0EFECBD2BBBCB2E2AB75C12443C2A5E458B0AA95AF0ACDAA4A9166DD5 + DAD06AB4D5B69A26B5894D5BDB467B7834A91A8F7AD4FB44C4D6E0558D881782 + 96534404614F96D97BA733A36CC05DF610B0FED15F326167E6CD7B1F7E33EF37 + 074151145EE42018204110EC8AC566A22EEF78139A9A428F07292292317CD66E + 087822A22B50AD93D6065878783115181C8898A1D91E3BA8BCB21EDA7A2D92A7 + AC7D7EC0FB37F75377CF7E89A153A783C3F3DC81DD6E43C1C1C34818F5052207 + 4CEF74A40BD0A02AA72E6C9D844113332091CB7DEA84D4E970ED580E46CE3E0A + 69F7DE9D8A74019EDD34810A4F5022383EBED50EABD78EEACAAA509C7FB65350 + CC759D3AE710E11678F4AB282A7D6E566726C1EFF86BD3364CFEBCFA050252A6 + B6C0CD7F7806A6BE91D989A3DBFDB3F2289CDF75CA33F0F9A6CF7D78044E5A5E + 00CAAEFF4F60147DBA8F7F97E9193861D909909AFD5D0AF15419BC4E127F81BE + 94217FC22B30F3E38330690F76EAA01A33896ABD0E269B05229E00BD64722884 + 926705EEA681273A8C6A2035D851721B399595A8371920100B9CFB2C460B1202 + 7B625AEF184C8B4F82802B74961BAF65A6C3407AA04D4545D878EB1AB8721E02 + 82C5104A042ECD6C163B740F0C101A80D5A3D2313C2498DDBE61CB4EE405C7E0 + EDE4B99835E81DE7ADD309CC58F21BCCFAB32E83FA1216078115E7F290AFAA47 + B710116C2607BDD8C013F168241F02290F1C0E073C0E9F5DF85C3E8C7A136A4B + 6A31AF6F1FA8CD161CA8A98242AE408A620CBE9FB0AE1DA0EED433256F69FE69 + 9CAEAD055FC885821260445828A47C0E0DA77057ADC535D523748F53A047CF1E + 6C7B2157E43CB6F8EA1DC82481E8F752222A2A2A31232C0BD9298B5D81AF2DFA + 1916C339BF710DA41A697B0F412CE0E3B321C998111F0B0A6210303ADB30C815 + E72EA24EEA405C5C2C9D451EF874265BA042BE98FD7BF54A21BE19FD13C6C4BE + EA3FB0F5804F477E4D3D422442242803DB6D43DA28CC3E990BA35286F0A85017 + 9C885ECFC9398633EF5D477040881BE0C2D5B036FB9F417F62E38D226C282EC1 + E8B4579C3826935C82CBAEE79ECCC3ED8FAA09B7B33863E14A589AAF7609EC11 + 69C4AACB05B8A86940FF01FDA19406D14FED1C278E29376AB51AAA522DF6679D + 740F1C9FFD293DF38A9F09407898ED75346EC2913F11121586D8D818F009218B + 133D39C562BE8446F25056558A50532FFC3071BD7720E16379F1254AE80932EB + D479084512042A022193CAA00C524219A874E2984973F1DA05CC8C9947D7C177 + DD03C7BEBF1094F98E5F836FB85946D734204EDE0D89F404099188DDB633582D + B8D5A84175138922950E555A1D8A754DE00A85508A83200F92A1B2A6125BA7EE + C1E08814F7C01119A9A06C8D3EE36EE8F4585A5A87C8F05ED0A9F4501B55B091 + 24A2A552F40BE0235A224214BD24C92490F2846EFBA8351A51D66C42453389FB + A58DF871C543E60DD33D9099C5945DC56EE410DE9F5F77975CC1EF0F4B3162D0 + 48D81C36D8291B8C56126AAD1A6A951A1A9D064D7496CC26127BA7CEA74B5048 + BB7D392802B9EBBFF5F6C83F1E366DF55387DADAED7465F13D6822FBA07774BC + 13C784C96E82C3E6809532B37786BA7BB538302C11DD055C8FFFF0DF79A59E81 + 4C998183F4F9144FD9B70E11FD0642A954C26237D3483BAC0E2B8BAB57D7E14E + C91D0C53F4C2D763A6A08744E6A5372B72D6ADF10C1C993190EEDC77606AFE0D + 644E9CC2FE6EC199AD8FEF36F967CE6341644FCC890AF6A92F0EC7810BB9E55E + 32F8C1273EE36A9A54C83CB21119E999EC2965A20567A6D71FDC7B08B1C6845D + 531740C2E3B119721777D52A3C68D2223D2ACE73062FED9C4935549EF7197897 + B0615FA81C838726BBE0984C3293A6BCBC02E2FBCDC87208114EB95E7F97082B + F6082CB0D3F7E8557609E262462165E64EF7C096AF5BBEC6BA8B6BA87DB5DBD8 + 3B43D1F512E8492DFA0EEEE3DC6F7E92D586470D5055EA31247438928207B2DB + 98EBF5F43F27A0851A56B31DE36233B0FEF5AD6D001D062E3A3C9F2AD05F604B + C95B897321A4EBDC96825F10961806B14C04AB9DC9E2E3C5E170C0A833B77988 + E5893868AE33212D7C1CD64EFAD5E53B638781DB0B3753DB0B376179DA4AA4C5 + 8D650F3E539E472D3BFE214C1203E4E101E0B9292B66D20243BD11949E8BEC97 + 97300FA66C617EBA5D8781ED05F38576CFCD9DD873631B4A1A6FB9BC3085768B + C0E4A419C84A9E87106968BB837619B07568483555A5AD006921E9574E3EC2E5 + D11E511E812F72FC0FEC68FC0B399ADBDEAF64875A0000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000068F4944415478DAED98794C93 + 671CC7BF6F5B5A8E148A9CAD75A54540F09AC66B3874BA38ADE89851A69946B7 + 68CCA673F1C8744B3473D1F98733D1E9DC924D97781F0B4114EF4CC183E18563 + 43EA0194532EB148A1F47AFBEE79DF8E372BE2DBA2E0FC63DF84D0A7CFFB3ECF + E7FD3DBFAB2FC5300C5E65512C204551DCC0EEB432D7F6CF81A9BA40F0A650F5 + 708C9E771852893FD59B701CDBBF010BB296338A2805B4239708DE68BCF1039A + EB9B313C6DDBCB03ACFA3383B977E96B8C7C6F264412E11B69DA899B99594818 + F715FA0D99D96B903C606B53297375CF740C9BA6476048884F375B9E3CC1EDEC + D318BBE004E4E1FD7B059207BCB43B95E99BD007517171FC24C538BC2E505752 + 8EE2DC4B3D02C3FA75CA87C73C1E94073CF18D8699B8707E6F18C1675DD8BD17 + EFAEAD7C850019AB27E02F47850153D2A7F6E0EE74F758250CAE1C3A270CF872 + CDD7B50401A77F79130CDDF29F8031E4B84F7E3B551830F5F353B098327A1544 + 2833780D92EE02FA9286BA23AF80535765C2DA9CD9A39B3A5D141EB6D6C34ABB + B8B12E440989A86B77F701F030013CF5C25076DA86D3E5A5C8BC6FC0EDA60650 + 223128B17BCEE5A0312C2C127A5D2266F48F85542CE3D38DD734D3138097AACB + B031FF2A4C941D41D1FE080891412412F1F32E970B76B3132D0FDB20B333D894 + 3211E3FAAA7C03D4AFD8055B4BA7B2D529990A69775111B617DE803440EAB664 + BB9DFBCF8E650A29E451013CAC44E407ABD58AFA621316242461C5F0113E023E + 39F7DCD69B95958107AD2D98AAD1401FA343625814D9A11D86C72D385E5A82F3 + D555881E140E7F7F7F0ED04FEC07C6069419CAB128361E71B78C089BB71F3FE6 + 6FE3D6DB379B0B588A079CF2D90ED85B2F3F37A0D96E41ADC58E7885821B5368 + F798BF565B87A53957A04A542120D81F32B13F3F579C570C859D46B3DC0F1AA5 + 1615C4878B57D6750FB0F386CF23167271CE650C4D1E48AC28811FB124ABB616 + F7DACA4815CAAB8DE86F1F88ED693F531E473C65D96638DA9EDF82BEEA8B2BBF + A388A49ABE1A256F453F8A049344C401E7E6E46267EA1E8C8D19E709A85FB61E + F6B65BBD0656DF66C23EE26F871F94225AA3824EA7E5C158F913588BCD829B97 + 0B7063D95DB6CBF7049CBC640D9CD6E26E6DDA6069470825228E2FDC6B6CBA5E + 888CB22A844686411BAB25D7CB20F30BE0C158B18163B86BC028790AD6BDBD91 + 8BE66702523EA4973A02977AFC37EEF3789512D3752A4C502BBBBC36F9C84904 + 46F481BAAF1AE11111EE6325406292C13B229A55D6D92C64CC3E838488A4A701 + 277DBC8C84FD5D9FADB7EB4E094E991D183574344ACA1FA0B4B214B66613A669 + D5A44A6890D847E1F130D9C61A649654A091246BB5528D189D068AC0508849A5 + 1153123498EB5076AB12E7165DE573A10760B23E058CF391CF8073AEFD85B894 + F188944783669CA05D244D584C282FAB4045AD112A5287A744F7C1346538C2A5 + 32FEBE7BAD669CA97B8C6CF2B355A60845EC6BB1E81F1387EB85D730ABDF5C2C + 1AB5B46B40368A19BA899B1051C23E75EF711DE69CDE8BB4C969DCD8413B4863 + E020A0341C2E7797F3A8B111D535D5B0901472E383554FADE16228E4541A70FC + FE2D5CA82AE3BEBBB8F80F44CB955D03A6A44F86B3B9B2D332CE2E01BF2BA941 + 6150141207247260ACACB4DB6F6D8E7652C66C30961A616A68426A6408D6C4F7 + 137C60B39346DEC512CC5B5B2D50EA489A81CBE2F568D9271F7D680BC6248F41 + A02C900773395D7090DA75BFB8048FEAEB3167C008CC1F3C0A6A79980F0EE3C0 + E99D5B856BF158FD50B28977C0FCC766AC2B6BC4F8B7C673C7D901C6598FC0D6 + 54D422C96CC6FA248D0F606E89442E5C3D5BEAA55958BADAA7C5969F3F00A39C + 428C5A8BDA8687DC7741C1EE9CC6023B5D4E14E6DDC15EFD7C8C54C6F016F226 + 410BE61F9CCB341AAFF804B85A6A816E703CE7630A92669AA562242527F1F3AC + 15DB5B88258BAAB0D0214502D3F58B9E1A8A869CB84B30DC952442FB26DE987B + B06BC08EB75BDE44AE6566EDD323401A884FC62CE7EAE5CEBCADCCF7059B11FB + BADB5A1D11DD6A6A4393B105EFE8F4481F320F899183B879434311B20D993866 + 3882C4F0C1C8FE288712D8AF7B80CFD2E6DC0DCC4F3777202A2994EBF73A229B + EDA0CDF5ED2481DB3D1A5856EC78E5D8B5589ABCA2F701599DBB7F92597DFE53 + D848990C5605412A973CD5EEB73FB1A1ADCE8A305124364CDE8209B1930437EE + 5140CE2A4E2B9379E7571C2D3C80C2C602FEC712F3CF9B9011CAD19831F07DF2 + 97EED3DBD91E07EC0C6B349591E3A611240D8246A1E55AA8EEACC103BECAFA1F + F045F537793CDFDE5E6B75A80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006864944415478DAD5987B4C53 + 571CC7BFB72D7D61A1451E2D2050D45541E4E15BC4659BA080CEA95966A6CE89 + CBB2E89C3346CDA2C66D3A93E9929939303353E362D4B81044874E33653E78BF + E58D431495A7D0F268694B6FEFEE6DA55884B62832F7FDA73DE7DC73CEE7FCCE + EFFCEEEF1E82A228BCCE22184082204C05BD414BE59C5A09E5A3429B9D24BE11 + 98B5FA2CB81C3E31AA8085A95F52622F31E43336D8EC5497970455B30A114B0F + 8D1EE0C33BC954F5CD6F30E3BD1560716C77224903F25352A198BF07E3A6AE78 + A59026C0EEB65A2AE3E412842F8E85D0D5D5A18E9A8E0E14FD7119916B2F42E4 + 3EE195419A006F1E8BA77C146EF09A38F199865EBB9D9BFEB98F8A1B37470484 + F1EBA88FCF3FB75013E0C5EFFCA9B7D77FF4AA8CE090AE1FFB0DEFEEAA7F8D00 + 29AD35E0F173B601A3DE8F1BC1D9C9E1B17228DC3E73D536E028D9CDA66C022E + F92A1F14D9F99F8051F476A71D8CB30D18BFED1234CAE4570A622B32D83D24C3 + 0574240C0D477601E3B6A640AB4A1971ABE9491DD406F3A191F0842F03789606 + BC34225025AD8D48B95B8E82E626D4ABBB2CF522B61382DC65880F942336603C + B86C9E25DCD80D332301D8AA5162DB8DEB2856B681EFEA04BE980B9E33171C2E + DBD46ED093D0A9F5503769212609EC8B7A07B3A45E8E01C66EF915BACE01AFAD + 01C1D49E9269AB7D9B9B6BFAEFE72C82C04900955683666D3744B231107909C0 + 62B14CEDDA0E3DDAEA3AB15611842D11D31D04ECB8FA5216D41B09A4D75722C2 + CB1F1E0281A5BE46A54262512E3295AD701BEF62B22887E5646A6B286FC18701 + 0A8416DFB30DB8E88BC3D077DF7A2940AB81D1F35CDDB1B2321CA9A9815F888F + A9EC44FB24A503EED170095A36B6ED6C7871C0C1267C116DBD918142A31ADE72 + 29D88439F1542955682FA9C7F5CD7791F7280B390FB3C0E3F0B0FDCDDD443FE0 + A603E8558F9C058752B35A89980B7F21746E30049C7E37282BAE4497AA1322B1 + 0B2412311E3E788C8ACDF5CFF8E0A6AFA157170C6BB233D575C86F6AC0A721C1 + 50B8891DEA53DDAEC2C66BE9904E51C0D945001E9B6FAA37180DB45F72C0A30F + 56456905A2DC17606FCCC17E0B2EDCB003066DC5B02C117FE11A822787A2BCB2 + 0471FEBED83A2D1462EEF3C975250D753CBF0419CA6EE8E8F9249E63211F2F07 + 9FCF0387CD01FBE98161A4E9D2A0B8A818E9EB0A2011BA0D0E4838105E36FD9D + 870E891453278542D3AB467159319A1ED0CE4E5BE693E009CF3D5BA0EA427078 + 90098A1163A93E39D1806CC21C2B33B233F179D836AC894820CC2C4F01A33FDB + 449FA82A87AC97D5D88CCDD977B074E1524B1D6924A1A2037511BD7AA1B607BB + 664EC11C99390837697AB03BA31885DD4A840485C0DDC3C30A8A09392C8285C6 + 864634D6B6E0CAFADBCC879C35E0DCD82850862776E10CF4F3AB73CBE01B320B + 326F198C9491F61F73E24052247AE9FF4F5A5B515A518A20BE33F6297CE1CE35 + 5B2DBB5D89FD358F6014B9223C3C0C62A184DE5EB665ECD42BA9F865F1294406 + CCB7F889D529A6C83653258B183A7F3D5B99879FAB7211397BAE15549F74BDE6 + 70A4D5EA505E548199EE3E488C5969693752044EDDB9861F0A32E04FBF8FC3A6 + 8441E8E48C3B5525F0D4C990B4ECA495133F93F22F8441553FD05E56A52E3A2B + 599E5385B0D9732014F56726240D68A0BF9519A8BADA3A285BDAC0A377689AAB + 10EB02A4508C1160A098B192EE3520ADA5C372D02E2764214012383820136660 + D4D8DCDEFD999791DED180A0902093A5FA4283C972A416EACE1E3457DCC3D1B8 + 3574D8913AE4CFD5ED4D3852700DAE77EF63FFCEC6A1DF2491B1A1301A860664 + 561C9D590A3FB91F9474E4EF0BAA53C2265B9EE931F4A024B31CC9D326C15BE0 + 0447C562199171A5D64EB2B071BBDD81180B329AED23C70C991C8BCFFD04F104 + 1F08C4E64340520634D435619E601CBE7F6BF9333DED67DF97137F1C1A30FBF4 + 2AAAB5EEB6C32BB66C0F61C0713E89C0B0401034632F6906A92F7D8CE80E0A0B + 28AEC36379C8E761CEAAD38303F6DD6EBD880EDCD84B9D284D8277B0A7A9CC84 + 1C26316DA95622DA3F169BE7ED80C223C8328152D34EDDBA9F8E456FC43B747D + F7D2807D9047F30F63ACDC85CEA4CD56331A8DE86AEE415763373C055278BB8C + 436B6F331A548F41D1417D7FCC217C10BA667400195DAD49A3F65CDD0E3A7182 + B3946F95EAEB347A187424FD49A1A733E95E847A442071D9094845B2D10364C4 + DCD0FE599386F3E5BFA3B025075D9AFE8B0099B32F66F94562754402C2BDA73B + 3CE188020E14E36FCCAF3357F8C2D7C5C4FFE212FD75D66B0FF82FF89A733709 + 2A41F90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006754944415478DAED987B5054 + 7514C7BFFB5E4060179085C001547C822008C4FA2ACD14D474C6A99828B5D4A9 + 70341D478D724CB3FEC8A6991ACB664A1C73CA470DA189A6A6042BA0A40222A8 + 98F2526079EE2ECBEEDEDDBD776FBF5D7405C1DD45819CA6EF5F7B7FF7777EE7 + 73CFF9FDCE3D7B392CCBE26916C70AC8E1706C17269A628B7E4C81EA6EB14323 + 69700C125E3F04215FCC1952C0E2A3EB58894C82B0B8348746D5177743DDA446 + CCA22F870EF04E59265BA9D88EB8C54BC0E53B3662181A97B28E62EC8C8F3062 + D2924185B40176B6DD660B7E5888C90B92E0EEEDED92A15EA34149F6EF98BAEC + 183CFD460F1AA40D5091319F0D1AEB03597878B71B66A7C6CA5B35B896A71810 + 10EBBE9EBEFC48AF07B5011EFB34849DB562E96005C125E564ECC74B5BEA9E22 + 4096EA09B8F767C780D35F4E1E40EF4CFF58F92CF20F9E760C38447173288780 + 0BD32F81653AFE153096A4FBF8E7C98E01E76F3C01BD2A7350411C5506A787A4 + BF80AE94A1FEC82960F2862C50EAAC418DE013021E22802706C499CAA8C7AF37 + AFA148D9841A4D3B54260A260B8DF0615E88F09721292C1C0981215D93EF951B + A765664000EF397B253B0B951A35846E42F0C45C78F8B841E8C98799A24169CC + D0B51A102C74C79667A7232140E61A60D2FA3D307628FA74D85F659497A3ACA5 + 01A1DE3EA068234A5AD4A85437C3337018BC033D6C73742A0354D51D488B88C0 + DB51712E026A4E0F488AFBD2CDF6466C29BC803A2E05DFB0AE8684363168AE54 + 61E9E809882AAD720C386FED2E983ACF0D181007865E637A9AC5B293A7D0E04E + DB2369557D692B56507CA47FD8F0F8807D39B4AA566B8654C48797D0B58EAB59 + 6F40F2D1E3782626007CAE00029E00860E0AED57EA50B4B1BE5797FE0070CD4E + 9875FD8B60DEDD266C38770E123E0FDFCC7E1E637D242ED96D25A9CEE76A1018 + 1068BBE671F8B85D5E83F4F88FF16AD41B7D0326ADD90693EEB2CB7095ED6AA4 + 9E3A8339B392D061D0A0E87C213E498CC3BCD010A7B6276B6AB1A3A202A32242 + 4914F9109048B6B7AAC1550AF1F5E2BDA8D7DC85CEA4455C70E203C0B9699B41 + 53D75C82D3180D58F2DB498C9994805121A341931AD7AC5522AF2017EF8E1983 + 951347F7986FB6906EA54149D24B416B6650595F8F029A4144F4F81EF32E2B48 + 80445C884462D04606B346CCED1B90E3A0BC589DBD754A01B32C0891E326D9C6 + 180B030B6B0165A0A028CCC36C990FB6264491C87465EBF0CD6AEC2CAE80D4DF + D7964EBE98078954021FA9B4C7DA028E88FC1FE2C26836A0B0F03CBE7A71CF03 + C039EFAC016BBCE1347A9B0B4A506AA2111713D7EB1EC332309A48DD2B2945B0 + C58C6F5F48C43081104A7230524FE4421C24C3C89161769087654DB599D8152A + 0AB16AF25AAC96AFE7D801E549D3C1D2AD0EE1F6D5D6E3A7161DE433E4F6C51E + 9685B6C0CC1A5155550DAABE097B63C6C04F28829614ECB4B25AA848FA264F8E + 86888CF138BC5EF6178B2F225E320D5F2CD8CDE9CA66B753CC326DB6495C4EEF + FE35A7F606D6E567422E4F8448E06607E9AE76950A6A959A6C1586449386AAB9 + 0D1F24CE43CAF8AE685B580ED2733391D3588D19F29910BB89892F2E78DC2ED0 + AB37CA2050B9E1E06B47ECE5A65BCB3F17B4BAEE212CDAFEEBFDF26A141968F0 + 453C188D648F1A2D889D11DB637679E975C4927D37CED31DDE023E7C8542C87D + 3DC17FA844EEAB259125F033A73E077FCF00DB49BE5D7B0BB7AF57E1D8F23F21 + 75F7B15BF42833B0E81F99DE167D07AE92F7ABA7500C2F92A64D39A4770C96C2 + C74F624BB5F5245B6BD996A8D958141EED742FDB3272F6172424CAE1E5E68DD3 + 7F64E3E4AABF102A1DD9771D9C9A1445D2A677BAF07D6535B46177ABC656CBAC + E9B4AA51D988291A60DB04E7B5D0AACA4E03369287529392B394E2397ED525AD + DEE4329C2DF98C018987779317BF046E5E6298196B14CD682856E26CCA7B18EE + EED56DF6A3BB6FBDAE03ED16B2FFF6673CBA59B87020956DA9CEEF17A055151C + 1A19621A41D17EF6314DA30E7E753AACB5B8F76BADE161D390987AA06FC0FB5F + B71E473BF376B0DF97EC82FF5829F8C2AED3D856AD41282F1C9F25EFC24459E4 + 137DB77962C0FB90DF5DDA054988073CA46EF6486A1B3B112D8B4374D014DB58 + 63C71DC404C56365FC6A971D0E08A05505350A76FB9974DCA1AA20920821F626 + AD94980F939686414BC1AC6560329830DE2F12D96FE60E3DA055642D36B7EA0C + B2AF67E1AAF20AAA347F93AE9986C4CB1B31FE09880D4AC092C814047806F60F + F069D6FF80FF79C07F00217570E4E42374A80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000063E4944415478DAED98695053 + 5714C7FF8F846C182020208252463182B20822B2C968451BA9D2D675EAD256BF + 582D5DA4C874B4A30E636B17AD33ADD671B433DAD6D256B4B86047A553B65476 + 4476A58840D94D2092F585D72C2510094910B076A6E7DBBBEF9C7B7EF7DCF3CE + 3DEF121445E15916420B481084EE4149CAA9FCEF3640D45C62D688E7198CB04D + A960D059C453052C497F977274738477E80EB3460D85C7216E172338FEE8D303 + 6C2A4FA36AB30F20F4A5D5B0A19B3752AB49145D4C077FD13E4C0B583DA1903A + C047DDF554DE999598F7A2001C0707AB0CA53D3D28BD720D91AF5D0677F2CC09 + 83D401669F8EA33CF84E70F3F119F24265D1B8EDDE7D5465658F0B8836AFA35F + FF65D8427580970F7A514BB66D99A8205825BF9D3E8B557B1F3C438094DC18F0 + 9B9FCC0346AF5D318EDED5A363A553C8FDE1BA79C0A71437B3621670E50745A0 + D4BDFF0A18A5D9EEAB9FAD300F18979401A9286D4241CC55068B1FC96801AD29 + 43A3118B802B122F422EBE38A1111C2360AA063063DC1C2AD50A1C292E444947 + 3BFA497D49F1B0E722C0652A62BDA663BABDAB5EF19F7263B1CC8C0BE090DA56 + 2716E395F40BA0D10930D80C301D19A0B36C343E949089E458E8E286C4051198 + E5E8681DA0E0BD5350F4668FE8F04924BBF93E44CA7EB449BA91D9D48CBB5209 + 9C67D8C3964587A45D0645BB1C89C121D8C0F7B312B0E7FA98B7D69C5CAAAF44 + 4A4109ECBDB9603930402AD5E8A815613BDF173EC50DE6015F78FB4B281FE58C + DAA94429C5A98A2A3C3FCD43935FEE8313436652FF76A718DB6EDE84939F23E8 + 0C9A0EB2ADA20BDB954C24EDF9EBC9014D396C94A8B033F33A683C5788DA5BF0 + AD200E5E5C5B8B8BFABCA8143F7734C2D95BDFDA29A44A88ABC528DFD53CAC4B + 1F044CF814AA3EEB2398DFDA865D5979089C178E195E3351DF780F0FAA4BF1BD + 60091C986CB3B61D5219966A1ADE990BBC0D632D775B911C9C82CDC15B4D030A + 12F643D9576C15DCF9BB7FE2D09D324487C4C065B28B61BCB8BC18CE12314E2E + 5B6C718ED8B42BE006B8C096A68FB8AC570E76BB03AEBCF1BB69C0E53B9241CA + AB2C4EFC9126C9D39B5B101519097BF6F0EE3B4B9885287B0E52C283CCCE1397 + 9E090EDF1D2C0ECB30765B5889B2B7EA3189C935409A04244C9417B99C40428E + 10752A1221F343C064308DDED3089A5E4F2D87305B8877FCBCB17E967E0BDB34 + 5B1A772913CA7E12AE1ABBA9761C543E142330661E6C6D0673B62CBF0247967D + 8D50CF70F0384E841160ECF604508A9A1157BCF95A163A581CF807FA5B8CB254 + 2245FE1F427C15138A70773703E0EC203F70D81C48655228940AB8BB4D31B2AB + AEAC81A847049542DF4FC6F3D70C024608A241915D233ADD5F558F5FBB44206C + 68B065D2C073E0C177CE6C239DD6F6365D6407206ACAAA7075A12FB874266E3D + 1461775523C2C223C0E172CC2EB09FEC4779C56DB853D38DBF624ADDAD53B021 + 46EE5F259A9517B6362031F71282C2E61AC655FD2A94E796C3CFC91DAD8F44E8 + 50CA60AB294E196B77C093EBACD349AD2EC4E1D26C442C8A008BA6CF3D3565DC + 7D6B235B5C540C3E772E4EBC7C6668CBBF1CA4F8C16338A46948528D58E11D04 + 45050CE6A8540E79652352C37C07AD35EBA43F567A3FA96B428E8A8698889861 + F3F6CA7A909B9787F5BE5BB077498AF67F9D302A33E8975ACCAF01893F7F0C0A + 0F16D8F6FA48A8D42A48CA3B91B529C9AC1DA996615BC6393CB463232420C430 + DED9D50961B1101F461FC4FAC0CDC3BFE24841A066EFAD07FCB1B9132744DDF0 + F0193CDEEE1534E04684BF26E768666DB53BB0B1A80EB302C20C453EBF3007A7 + D75D40E4738B4628D43B775B0D371089F0B387C1F299042687A11BEB6EE8C1AB + 9EF3911416FB98F6F0EEBB59D28B35174E82E7E601B5A803EB442ABCB9A7C5F4 + 597CEBDC46AAB3217754805AA925489C60283065EE64A383FF7D250B1E14CDA2 + 7D0BA146B5E6177529C5808B7714C2379E330D3870BBF524724CF80575B4E063 + B8F2793AC83E910C7D8D527C22388E557E63BF581A33A0564E151CA30EE51C80 + A3971DEC786C5D77D25DDF0BBE831F04FC784C739C0E2ED31E8B67C48EDAD1B8 + 006AA5B6B38ADA772319852D42B0792CB0342D3E29EF8742D3E26B4F065249E2 + EAD62CCC71F31F95B371031C0A9A5E95869A8E4A34F734E9C6B80C2E823CE623 + 3966EFA86F6589FFC41DF5B32CFF038E55FE062AE947F221FC02EA0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006964944415478DAED98094C14 + 5718C7FF038B1C82BB208A0828280A28722918A4588B07022A1AD3686AB1876D + 62B55A8DA58A6DB56AB58DA6A65AB54DA326555BC54A917A55DB6241513C0091 + 6B81851505768145F600F69AD9E9ECAC1702C382A0A6E93FD964DEBCF9DEFBBD + EF9BF7BD6F87A0691A2FB308232041106C43476AE86B4716A2A93A97D3C8D13D + 0413DF3C867E3C1BE2B902E6A6ADA2052E0278852EE33412DFD807799D1C21F1 + DF3E3FC07BB753E8D2CC4D089D3B1F163C6E238A227133350D3E9337C223607E + 9F42B280CD8D1574D64FB3113C2B06767CBE5986AD0A05F24E9F43C45BA7E0E0 + ECDD67902C60E68138DACDC7092EA3463DD1A1EFD2582ABA83E28CCC5E0131BE + D7916F9F6CB75016F0D4D6E174D492C57DE504B3947EE010E67C76F72502A435 + 6D010F1EE7068C7C3DB61767A7BAC7CAA371F9E8056EC0E7E4374E7102CE4EBA + 099A52BE10309A09F7991DB1DC80718967D1DA94D2A7205C99A1CB4DD25D4073 + D25077D42560EC9A5468E4A97DEAC167043CC6009EEDF589CB9AA4D89B779DBD + F6E43B6184C00993DD3DE1686D677AE041BAE932CDF40AE053B9CDA8038585D8 + 9D7F03165696B0B6B702A531005A03E23CBDB03C683C06D9DA9A0718B37A3FB4 + CACC2E27ECAE740602D9B562E4D4CB7052540EAD3DC077B387AABE057A991E5F + 868722DAD3D74C40C5851E41DC6E90309E2AC0D4616E9833726CA7CFA9C9567C + 9E7505198D7570F6E143AF21D1206C42D28489189C55C80D3873E577D0355FEA + 1658835A8D9D3957F157BD04C1BEE391C784F26C7C1C06D9398180BA53BB9517 + 2FE19ABA1103BDF8207514A485322CD55923F1D3DA9E033E39A19E09DBA1E202 + 7C5F2084F7485F04FB8780C71491B785F9E0339B62F76B919C0B5368D598FADB + 19388D1180D7CF122D4D6A50E54A5C4BAC6957A53F065CB11DFA96AE3DF8C79D + 2A7C9353004B473E82C786C0C1DEA14D7FDAF934FCF84A2802070FE11C67C395 + 6CFCAD9181EFDA9F6DD7973461FDA4AD480879B763C098155F40D792D3E98077 + 14726CBC9A0B915A83B1C163E022680FC0B3B042757535EE971721259EBBF848 + ABA8C476A11003BD07B06D8D460347A92B4EBFF34FC780D1CBD682D414773AE0 + 9A8C2C64DF57B0700EB60398BF05166DFAAD18384BC292BD4ECF4AC747DE5E58 + 30DAABD3F1CE55D5614B5111DCFD4C0BD5537A88AE8B717379391CED9C1E4176 + 084874905EC44A0D0E160971A54602394961C8F0A11831E231801561FD085AA1 + 924378FD16CECD8D82BD553FF6DEB6EBF9505334A23C5C10EE3C14472ACA71AC + AE01AEDE2E6C3F459328CD1561FFAC6444784E6E0F387DE90AD05A21CC517299 + 18BB4462F807F9315EE3B11BC428499D14AE2E268F94308B89E60B9038DE0FCD + 7A1DC27F3D0B0FB76190B7C8A1695281B0B484D79891707216983C68D0A3F4B6 + 08DB5FDD8319A3E3DA034E8A89044DCACC02CC9435614B6D037C02BCD9D01A75 + 5F2647654119F4040D07C10008FA0B70AFE62E2E470681C72C6297A80AE9060B + F88DF56DB7182D658A58E1AD1224856DC682C084F680C65D4C538DEC4D0B82BB + 7EBD21B98325E93FC327C49BF5203BA1A80E6FB8F92361DC2464D78870BEB218 + 7C6B5B6667C6B0FD2A9D16D38FEE846F5810F80E26AF194803F4B4F6D1B89595 + 6248AB6A31D07608260E8BC08A888F9F2CF9A341CAEF3E85427608A862DEC1E9 + 570AE01DE6052B4B9307AB4BA4487471C40CE6D799526B1BB14FA6405444D483 + F78E6243FBA48CD02AB5124579C54C5131AD6D9A81A1D5AC101B157F622F14EE + 06D8D8D8B0EDFA8AFBD818108DF851419DDA186802F352F640E03512EEEEEE20 + 0DED6B4A696D1D8A4B8BE0EBE88FAF63763D068C880964E8CD074CAE6EC05E49 + 0306FB993CA690B4601A6D8DB5A33D38EDF215AD58555683F8E8F8B651695621 + AF2817B492C08669DB1E6D94C71E5CFE89D970469114735C1DDD039DAB05FA3B + DAB2676A4B89021909EB60C77BFADB495B4FADFAF338EA981328C03790F12289 + BC42E600A810E2C3F075783FEC8336C71D0B98FDCB22BA417CB95B8046951224 + 7EE8A7C5107F67F64C6D143389BC5E8F45061B4E3B250CD86AAB47706028F284 + 3908505248708FC0ACC5A91D170B0FBF6EF54487730FD29B2EAE83F3E801B0B2 + E14156AA40ACE73C7C357327E7E7B9E4FCC3F4F9B233EC4E0D1E3AA1D3E79E19 + D0A8DF8B53E8F5E9ABC11310E83FD0068A9A6638680498376E21825C433065C4 + D41E7F4BEC1540A3A42A09BD23630BD24A4FC0866F4A3DDA663D0C7A0A49AF6E + C67B61CB5F2CE043356B55747AC505E44BF22051DE8386D462ED940DF01934A6 + E7802FB3FE07FCCF03FE0BA3697022896B2DC10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006914944415478DAED98695013 + 6718C7FF1B921841245C22827209181510A8D21601474505BCADDAB11E557A58 + AD47A7B56AED6567FA45EBD44EED31557B58546AB578E0452B2ADE8A8218E5D0 + 18C44488119308E45EB6BB1B1B39921014ACD3E9FF4BF63D9E777FFBBCEFF3EC + 9325288AC2B32C82012408826D18CD7AEA5CD6CB50C92E3934F20C8C43C2CC6C + F0B902E2A9025EDAB39412FA09113278814323E9856FA156A8113761FDD303BC + 5DB28B2A2F588DC113A780C3756C44926614E6EC4164F227E81D3DA5532159C0 + FA5A0975EA9771881D9B06570F0FA70CB51A0D8A720F2271CE3EB8FBF4ED3448 + 16B06073061510E905BFF0F02603A6368D6B6E54E2DAF1820E0161CE75D2ABBB + 5B3D280BB8EFF3206A78E6ECCE728253CADFBC05E33FAC7A8600297D73C01F77 + 38064C9A9ADE817727DBC7CAA570727B9E63C0A7E437877208386E652128F2C1 + BF0246D1DBBD7F6DBA63C08C6507A055EDEA54104799A1CD20692FA03369A83D + 6A1330FDDD1CE8D5399DEAC12704CCA6010F741AC06565354A6BAB21F2F6478C + AFFFA38187E9A6CD34D321802D725B534DCBCD41B946CD5EFB09BA617AA408B3 + FA4781CFA19C034C7B67130C0F0A9CBE614B15C8EF60BF540A211F583924D1E6 + F8D6ABC538AB54C0DDBF1B0C6A233C293EBE481E8A68DAA3CE016AF2DAE5B00A + B51ABB2AAEE2506515B8DDBB23AC4F184ACA4AB065F828440885366DCED528F0 + F6D13CB805B9B2ED865B5AAC4B4A8239EFBC63C0318BBF86B1FE449B504A9D0E + 7B25121C9494E316A947907F08224223E0E3E1CB8E97945D46A4B10E1F0C89B3 + BB46F97D35661C380CEF286F9066129A8A3A2CD673F1D62AF9E30312D061C5C9 + 3338785B8640FF000404F7829FB0273BC6E5F0C073E1B1D73A9316F987F6E3D8 + B497C0E3D87F417D7F598C9FE437E01DE28106950EBCEB7538BD42C9D4A6846D + C0456B606AB00F686A24306CC74EB8FA7A21222C12AEEE962DE2D1702E848B15 + 94437070A4E02FAC8E89464AA09FDDF5EE6A75184917BD81719639774B55F834 + 690DA6C7CCB20D98B6E853181B2E3ADC5E66D14DE252FC21B909CF1EDE100DE8 + 071ED185AEC039CD60AB2A6FC3477317EB5212EDAE45D0013862E7417022DCC1 + E5BB40AF3122B0BE2F76CD3E641B70F482E530EBAFC119291A5448DD7D182F0C + 4B40171781B5BF0BAF2BFBDB686EC4F1FC7C9C9A380E0281FD6DCED873046490 + 1B888773649714285C781D9EAE5E56489B80441BE9A558A946E6C9D3884F887D + 044783DE57A9E0E5E9C97AB5A8A8184BC2833131B497D586D1205FE1C3234321 + 61FB5E0425045BD7A8BA22C7A6B1BF213138B93560EAFC45A00C654E79F0A8AC + 1AAB4A4A1136D0B23897FE975577BF01E5E272F0BBF211121602AE990E1C851C + BFA6A5B073E2B373E9A7E0A0BFC00DF3A222D8BEE517C4888C0F8381B4384456 + 5A8335291B302A22A335E08B6949A0CCF79C02CC5328B156A142A0A8A7D57BE5 + 1725581D62696FAC52B22988D29A7022259EED7BE35229E8E882C16880542285 + 516744E4C048B87BB9C1DC6866E748C495F6019928A6C85AB6934338AE5F2F54 + 5722337F2BFA44053CDA9EC2DB289EFBB1D5969923E0F210E56B99935D7A011B + CACE233676104C94C17A1CFEF11EA38BE78AB06DF23EC4F67AAE3560D2D4D130 + ABAB5AA0986D02D6D1C935F5F4156B8AA0F404781215B21344761F8AB1493F25 + C6B0D4546BD41B4C3AEB38037AE6D8399C9A2F464F77FFD6804C9A41A3D6A92D + 663461E737A8F53641E0C187D94882BAA1C7F199CB1CDA2CFD732B14DDDCD127 + B837488AA403C552533251CF78B5F46A1934CA7ACC897F1DB3E35E6341AD8089 + 6931F444E70173EED4E24BB9023D449E6C9B4911B9CF47C187EF62D7E6ECFD3A + 7C26536344F248184983B5BF29ACB64E8B0AFA35AA7DA043D1829B4D3CB8F07D + A7E1D8CD277548DD91057D8F0770F3EC8A5AA906F34313F1666CB28DD9A68736 + 660CCD5A8F945163D0956779139948131D24967185BA06F2CA3B9055CB31367C + 02D68FDF68F1E0D96DAF504AE9C9760132921324BEE219201409E1C275418DF8 + 1EDE330A1040D9F7E2568E1EE4A04188EE17C3B6EF699490DE92E286AC02BD05 + A198163D03634593ADE7B0D9D7ADC7515EC57E6AC9BE79D6F2495745E287C959 + CD926D535D555CA1A6FF9E4103464352250147CB41BA6812260F9C8E017E51B6 + AB992701645474A7905AB43B136AFE3D700574D2AEAE474A702A32072FB009FA + 51DE324A6B6CA03D3509C34247B6AA603A1C9011F3F173E3F9EFB0BDF8675437 + C8D83E914F1472E71E7BA2C53B0CB0A547C5352518D833BA59D27D6CC06759FF + 03FEE701FF064E537B43CFFBFE1F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006C14944415478DAED98794C14 + 571CC7BFB3B0B02C02BBDC821605410EB11C21042D104D45F1AAA9D412B56AC5 + F4B06A3546AD0D469B689B545B4B9B36A9A28956AD360A520E5B5B515189562E + 35C0AAAC1C22373BCBC25EEC319D991574652F148F3FFCFEB37933EFFDE633BF + DF7BDFF776088AA2F02A8B60000982601BFD5A1575ED483AC8E60A8B83846362 + 10BFF4381CEC79C4F3021B489C116045DE7A4AE023C0F8B8D51607D75FFF05D2 + 762962DEF9E1C501DEBF798ABA5DF215E2162C04C7DEF2609D4E8BB2DC3C4C4C + DA8EB193173E174823C0BE6E3175E5D03C44CF4D05DFCDCDA6008A9E1E54169C + C1D4E5F970F19C30E29046802507E650FE13DDE1131C3CD881A0345683B4D535 + A0E662C9880031F33A71C5E9C1173502CCDF15404DCF5836D24918968A0F1CC6 + FCCCA65708905219031EFCC33260E27BB347F0E9BAE1B1DA53B8FCFB59CB802F + 367DA6651170DED632503AD94B01A3E87217EE9E6D1970CEA62228C853CF15C4 + 9233585D24C305B4C5868623AB80B337E64225CD7DAE197C46C0E33460D18B27 + 7B6837566DE65901FB756A34C848D44A24E85228F06E4838840E1CA33E9D4A25 + 961415C0CF998F9591D148F2F77B94416B80A91BB2A1963DB16D3D61A6036AEA + 95D1307DB84B4A50DBDD86DBA4144DF25EB8F05D21100AA054A9B0784C003226 + 4D1A326E61411E34303C3C4AE881DDC9D3E1E5E4642360CF59AB995A5458887A + B514AE7C01846E42B80A47C19D7E90802F84839D23ECE9A390B8B10EF62D6264 + 4D4B19329EC9E2CEAB97504A76C251E000BB2E2DF6A7A4A239C78A51CF5AF713 + FAFB2E59072CC885D4C9116111A170E43A81CBE1C28EB0A3C1B8E0DA71D93E0A + B90255A5E750B0608EC9181A3D815567CFA1CE41017B1E0754733F36F411589A + D9FCF480049483C177979523A7B901A161A118ED6D98478F8372080E4E169C44 + D9FB8BE8EBA637A90E8512A9397FC223D203F26E153C9BE4F8F7CB2E0B806BBF + 85466E3D8303DA535689DCF656C4C646B36D269B8C78763CF6B7F87C310E264F + C1447781D9181B2F5E4119B707CE4227B4DCEAC2BE7947312D6806617A0EAEDD + 817E79B9CD80CB8AFE86D2DF1BEE9E02383E84E2128EF4699CC366B3A2B202EB + 03DFC0AC7101A62B422FC01377EAF19DF8363CC6BB414E2A11AA8DC691F41CD3 + 8033576F81565563135C8F5A89C49379887A6B32BB281820467299925E304236 + 9BF7E88727D09737C586998D73A6B11DDB6B2A5940BD5E8FD69B1254AD116394 + A30B61119030632F03AAEA9422E3722982A2C60D664FA550415471072E025744 + 448443A154807FBF1DFB6724988D935D5D87831D0D701BEDCCB63B6A491C5990 + 83D831094301677CB216945A64530607DEDC3F78F4E0CA155735604F5C344412 + 39B26B44F00DF083EA413BCEA5A5B2F73F387311927E2D764D89459497615EA6 + 155E409F3F0F5CBEE15F5A4B7507B252B29112326728E094D44450DA2E9B004B + BA4864D6DF875F8437BB6A957D4A70C5248EC747B2F76FF4C8B0ADB611BE0EF6 + D8176328F1FCABB7C0F3F7415B630B568EF54220BD9B3031982A30D2E8347870 + B715DF27ED330DC8AC624AD7CD5EE41096CFAFD75B1B90517C14DE6142C39C6C + 9563955F3C3E8E4E1AECA3A708A338AB8A7E83CC970FBE131FD5D535E895CA10 + 1A13021EDF3045D43A155B85ECB92730755C1261E2C83F135A69D313285A9380 + BD5A1D6694DE825F9417381C0EBAEB7BB0D5DB07293E42B32F9555F700653C77 + 04868C875AA3848424E1EC6AB0268D5E03AD5E8B1BA5D5B8FEA90842BE3B61D2 + 66A057D8546246CBF30FE00E5FCA7A1803B825FC6DA487C599ED9F77B70A5977 + FE434C740C0BA4D7EAA1A1D483D9937449E1D4E98A53CBFE326D335353DFA407 + D90E58D2D58B2FEE36C02FD293F5B0F85E3BEC080F30DBFF363D4FD7885A317D + DA74B6ADD2199C82C926A3F2F24A2C0E5989CDC9DBCC18F5679B6D861B50FAE9 + 6C88B974A93C7890D448712EFD7378D1279AA1A24BA8D322F2D06EA4CD4DA3E7 + A79E2EA9063A4AC76693516B470B44B5222C0ECBC096E44CDA1D1C8941C0ABC7 + 96509DF597870D28831E3B1D541815E8427BA89EDD4FD7E9F966FB7F63A740DC + ACB97019E5C2B6951A43C50640996CD6568BE0AEF546FE8AF38F0007BE6E3D8D + AADB6F51CB4FA441EBAE825ADA8F049F647C3D6B2F7C5D460F09BA3A77392517 + C8101430815D14CC2157AA20E905D30D19D907B287844C214590F3C4910364D4 + D6DB4AADCFFF08E51DD768ABA20F0E040F851F5EC03861A051E09F4BF7528745 + FBE0C4E3414A1F72FB547204BA056382C70444F84421D83304215E61EC3893DF + 079F55E7C5FF50BF5EFB118D927B285A7989B58BC7EF930A0975ACEA10C60ADE + 40904708823D82CD7E0435027C95F51AF035E0CBD6FF5835EDDE3D4DF2F40000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_10_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000060A4944415478DAEDD8795814 + 751807F0EFEC2E0B8B072C1E18414A4206840A783D1885917288071982A910D8 + 1FA649F558993D5E65698F3E3D5A3D5A4F814F7982A14820A93D228279C02E2B + C8E12A88A2C182C8EE2AECC11ED3CCC82AB8BBC39278FCE1FBCF3CF39B99773F + BCBF6B188224493CCD41D040822098930EBD863CB73B1EF21BA5AC0F09DD0331 + 71413AF83C07E251A0BA16AD1BB034FB23D2D9D5199EE397B026A82BD90E4593 + 0281B3B63E3EE0F5F203A4B4F04B8C9F3D071C1E7B0283410F51563646BDB616 + 1EA3E7F439D20CD876AB96FCE7F71908888E84A393934D49544A2524B97F6172 + 620E060CF6EA53A419B0306D3AF9FC2817B87A7B77B9A0EB3191ACE62AAA4E16 + F6098A1ED721EF1E222C0273BE194EBEB128A12F8BD0EBC84FDB8999ABEA9F22 + 20A9E90EDCB19F1D18121BD587BF6EE89D9547E2D4BE63ECC0C75B3ECBC10A9C + B15204D270FB89C048AABB0F6F8E62074EFF340F2AF981470A615B197A9C24BD + 05DAB20CF5267A04462DCF824691F5482BF890C0740A98F7F8659DCB4D8FCB4C + 6F8019D22A6C283909839E7DF28F7375C56F11D3CDDA3B8C04945A15860804F7 + 2BD81330F2E354686F3FB06D3DB0989A229D026EADACC0C4E071B0B713C081EB + C0B40BEC1CC12578E075BE6DECC848434562B2D9F32B4FE523EFDA35C47BBF84 + E5E35E059F43DA08541EB3B967B6948A9071F58A1992CFB50797C3853D756E0D + 985651811FCA4AC017F0E1C977C4B6B0085CD897C30E8C48F9111D6D4536034D + 952852CA111414C020ED38765405B9F7907B32F7A032719EC567332F5FC17A91 + 18FD5D057053F1B0B859F7704002EA6EE73A6A1C4565E540E8EB8661C2E798B6 + AE481E75DC9FB5DF2A908E94134510934AE8357AF851C08C2F9A5980CB3641D7 + 6E7B05E90A6CB97411A3467B3128FBCE2EA69174D05D7E303B8B1558D62C4362 + 411186F9B9A0E1FC4DFC9950003F577FC2F2185CB60E1DED629B81B1B947A075 + 1F0867A1333329682403A46026641EF5426B0D48744EC0C03DD918123018779A + D4081D380D5B67FE6A1918BE640555EA2A9B704AAD1A2199D9F09AE0093BEEFD + EA55892F32C7A08901E8CF73C2912347519510C39A2B38E330FAF9DC7D8B5754 + AB2149B944E5B4BFF7866E114858595E4C7156A6C0D233A7E1E63794196B34B2 + F6FC55C4BFE0C95CFFA3FE0633BB8F1F2D6005EA8C2402D3B3E1367608381C0E + 1A2EB4E0D0BCE3F01DFA8A3970EAE26520B5176DAAE0891B8DF8A44482A13E42 + 06D8266F877B2BB02BF275E6FA86E232E436DCC21DD56D5C786736D3965A5903 + 1DF59AF83E35664D71A6B1091F9C153379E868AE96637BE44E84BEF8A6393038 + 3204A4BEC52660618B1CABEAAE774BBC69A40726B9DC3DD7533977D73740C0E5 + 20CEFDEE0C9F5428C200C7818876B6C7875EC3A97BF45822B98C06573EFA0BFB + 416FD43179BE9F968AA9DE51E6407A1693865B4C238760DFC2A4AD32C4E4FC02 + 37FFC1301A8D682C6F4565D25AD6E7BC7F5E83B0F0509C3B2D42ACA73F352C78 + D855538C9163475095D531C086CA66A4466720787888393024361C7A45FD0369 + F5167F8CDE82A714966190FF20E6BCBD5A89BF27FBB1FE51E3F325888808479B + 5E09F13909D3E61BF43273D41A340CB2A6B80EA2A597E12C109A03E965064695 + 4D5D4CC78A130791AFAAC5006A27682997E37CD29A1E2B1845FDDFCD80746A06 + 4587CE48574F0F855C0141931372930A2C2F339323C7C0A8B71D286D5323B154 + CACC4059652B7EF21D89314E8EAC157C6B560C349D301A79AF7A14525A5E8395 + 13BE42DC98855616EAA59FD98CEB5AC563AD52F01C789860E7816DD3E2ADDCA9 + A32AB81E7363E63263CD401A189409299337A2A1F8124A3F6FA13FC39803CFEE + 9D4FDEAC3BD56B201D1BB92AA83DFAA18DDA09E66AB89844DA59BC2F85DB86F9 + 6FCF87C168408741DB0D29164BE0452DF699C9D596F762D3D7ADFF13B23B8DE4 + 7B99F350DB2E4587BA03EBC236636160B259C2111B5DC8E4B8454C979A9074D0 + 5D4E23E9D91DE79380D5615F137D0AA483FEAEB83E7F35F696EDC06C9F387C17 + BDDD2A900E7A5218A87550AD5399215704AFC38280A4EEB3F861815DABE92210 + 5AFCB03967670429FEB798F5791E9F87B553BE35073ECDF10CF80CF8A4E33F28 + BFAFDE28A12BA60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_11_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006D94944415478DAED98795013 + 6718C69FCD01494C248922B7E2818A554B63F1C0626B3D207854515A9DD6B66A + 676AB1F4186BEDE5F43E9D8E8E1D9DB1557B8CA278A14281EA2087821722A80D + 82825441C29D40C8B9C97677918E9083A4A2F58FBE333BF976F7DB777FF37CEF + F165098AA2F0301BC1001204C19E9849237576D712B4D614BB7C4816ACC0A417 + F6C28B2720EE07D4DDA275032C3EF21625F593626864A24B0737CE6F85A65E03 + C5339B1E1CE0AD4B07A9F2FC4F11B96011383CD70EAC561245A947306ADAC708 + 19BFA8CF21ED0075CD9554C1AFF3F0D85C25443E3E6E39D16BB5B8989E89A92F + A5413270449F42DA01E6EF9843058D92C32F2CECAE1B965E1DA9AF57439597DF + 27504C5C47BF7C98700898F6E510EAE9952FF6A5081EDB891DBF61FE47371F22 + 40CAD81D70E73ED780D109717DF876AB67AC3C0AA7F61C730DF860E5736C2E01 + E7BD5F04CADAF69F8051F472FFBE21CE35E09CB519D0B71EBCAF20AE2A43AF49 + E229A03B65C813EB15306E4D2A8C9A548F9CA694AB50DC508791521F84C9E408 + 97CBE02B92DD2FC0BD346086474E171FDE8D0E89043C0117FA3623DAF41AC064 + C323346C28DD9146CB69E8010134B81C5E5C6FC74EEE949B5ECBCCBF01CCAFA9 + C29AFC6C444D9F0A6FBE1002AE80BDAED37640D7A1438BB6056A751D96878DC2 + CAB1635D2BD81BA0F2EDED30B5F5685B3D8AA923FBFA5C0172DAB58888788C3D + 672019B5988347EF3ACE5F3A879922A143C0468301BE42A10780DA631E29C8D8 + C6E222245797232A6A0AAB229FC30797E042C817D1BF3CE4E6E5E2BD71C3312D + 38B487FAD548CC3E81D8D0C1F826FA09E4FF72D43560EC1B3FC0AC3BE9E11257 + 63CDC9931813350652EFCEE4E80979E88F03C88855629048D8EDD9F2160D1232 + B3C0E17331C32F1071952DF70648C0D0EDDC622330E3402AA42307412A9342C8 + 13C2FB4E0CDE1D8F9999E9285ABAD8A1CF03D7AAF0CDE512763C4B4B61F3876A + 178049DFC1D2E1BE827BCA6F6053652942470F66C19878639463C67CC29BDEF4 + 72A06FD7A3E1CA25EC9F1BEBD4CFCCFDA9B004794357D58EDCD72EC35F124038 + 8EC1A44F60EEB8E03660427A16B4213C884512F0B99D602DB51ADCFAAB1693A6 + 444222EC8FDB35B71166D2E1B3A8C9F62B722701D79F2E41B6B109A491C48B61 + ABF0EE93EB1D03C624AEA327A9DC82D39A0C883E7004C10A3F5A393E1B6B35D5 + B711A8E761464830B65756B04953A1BA8E154103F1DCC8A14E7D6DB85086FD0D + 7F41EC2704EF563F9C4A2CED1D90E8A5BC94346AB0F254210685772686516B86 + 484DE260CC4C0804149272CFA3CA9B8B56FA8FD5D6A90A44F84A9DFAFAEA5C29 + D23B1AE113D00F35C5F5285875057E627FC20E70D6AA2450A6AB6E2978BAAE1E + AF9FB9C002DA6C36DC2E69C4BED8A7E88ED109A2D61B30E768363BCE5B341B62 + BE17CAE8AC9509BCE1DF239B9765E6A1464ED74F1F2F3494B562D7824350044D + B6078C524683229BDC022CD5B621A9A29A0564D40BAC37E3474578B7394D6613 + 9ACD668C124BD04E9A1057700504978B4313C331D0ABB3ED95EBDAF152713902 + 237CC1E17058C0ED7353103524DA1E90C962CADACC5EE410AEF7AF8DFA364427 + 7FCFC6A0B6AE030B6563F14194D2E9FCF3757451CE390819FD9F7BB0C90BDBE3 + 96414F92587A781B9A075858F518630093E3D3101130C11E303A2106A4E6660F + D7A4D397CE3F53066A9808BA7A0316082578734490D3B929358D48A1CBE8C831 + 235058781A2B060D4096BA05CD723E82430361B0E841DA2C6C0C16ADBE06A950 + 660FC89419D8F46E2D31631BCE1E47724D11BD93E1E169D1707C3B3DDEE9DC75 + 3987709D6F45607020EA5BD4B85CF227428604411E2485C96A84C56A814EDF0E + 993A00E9CB731D67F154E5A3B091EE033699AD5878FA0AC4C3E83A586BC2D1C9 + E14EE72E395B8690C727412411D1EFB0C142993AC168D5481BC98EABAFDEC43A + C5E758A658E1A450AF7ED76DB82EDB76311F5B549DDDE703C56C2C098F74386F + FCCECFA154CE65C7461AC664E96C9B0C98813440D3AA414BE94D9C5D5BCB7E90 + B2033C93FC3CD578E394C7808CEDE618512CA2A3C362C53B660182286EB7FBB5 + 84159B7D6C888F59CCC69A95B2B2CA75416A4CAD5015AAF0A6743C56AD3CEEB8 + 17777DDDFA37C67CB27B2BED55645C4DC3CFCFA660FAF059DD9CE5541EA7DECB + 7B0331D3626938D20E92499AE5E312D916D7F54C9F027699BABD8E621A7DCFEB + 5B0A3752590D8711397E221B6F66AB893D98A566ACA4E4229481F1583FE38BFB + 0BE8CC18C09F2E6E86BF7F00E43E7288FB8921F6E9C7DEEB8AC7C29C026C5DB0 + EB1FF51F2820ED9F2AAE3D035543192A9ACAA0525FC6D526156C5E16F4174921 + EA2FA0F70056088D121C7BA5E0C1033AB3EAD62AAAA2B10CD79A2AE8438509C1 + 53D812E310F061B6FF01EFD5FE06C2DD04EDD38F66A90000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_12_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006DC4944415478DACD987B5054 + 551CC7BF779765D9256041DEE0C0CA22289986610AC1266986E42389A22C2D75 + 1CC357BECB72B43FFC23ED3553D394233539E4AB94507C24088899188AA4CB4B + C505815D40815D907DDEDDDBBD576158D9174AE8EFAF73EF3DF7773EF77BCEEF + 7BCE2E4151149EE42018408220D80B03A9A32E6467A0B3A9DCEE4BDEA1B178FE + 9DFD70757123FE0FA8FEA2590096E77E4889024410C765DA4D202FFB1EAA5615 + 62E77C337C808D570E51B5259F216E6E1A382EF613984C242EE6E4222A692B46 + 3E9336E4900300EFB6D751E77E9985675F4D81D0CBCBA9241AB51A97F34E2061 + E15178F84A861472006049562A1512E58380C8C87E0F8C0E13B5DCA847D59992 + 218162D675E27B7F1056018F6E0FA392172F184A11061D85597B30FBD35B4F10 + 20A5B304FCE9A07DC0C4F4994338BA6970AC2E14FEDA77CA3EE0F0CA673DEC02 + CEFAF8222853D76301A3E8E93EB673A67DC0D40DC7A1E93CF4500330BEC80497 + 6BDF40ED3983C322192C60FFC1169ECC43558712C9234721552C467C70045C38 + 835B350E0167AECB814E95F3500A2ECD3F860E7701384240715309AED1801471 + 24E6454A30DA3B70A800F7D380C71F0AF082B2012BFE2EC0546932781C1EF406 + 3D9A1B149037C9E1C7E160AE241AB32322E027F41EF8F27DBB7168338F02C8C4 + AC9C6C88A2C408F20F861BD78D9E621E785C1E541D2AD435D5A1A1BE0EC7E7BE + 0E3F81C0BA828E0053D6EC86BEEB816DEB0133B5155932197EB8F62FA2C74423 + C027903E6C705848014F082E71AF707ECBDD8BC2B43478B80A1F01507D6AD0CA + 7D5D7E117BEB6B31766234042E02F069303E4F60A1A2BC410ECFDB4DF8423ACD + 661E8780AFACFA1686BB67070557D2548F55674B103521026E42B73E401EC1EF + 53D195CB47D1B9226C7D3A06D2D0008BF7D57A2DE69F28C46B923084FF237F34 + 40025A8B6BA399C08B077F8767D408787A79B2602EF4419229925E157B0BA6B4 + A808C56FBC4E5F5B5A4FBD5A85D97927D9F632031F1B3E51D8015CB903C61EE7 + 15DC572BC7979597111CE3DF37950C5847B30AA4CE84D163252CE4CD6B724CE4 + 52D83C29D66A9E7567CEE14C7B2BDCBA0DB8B0A199FD19617D0DAEDC0643CF25 + A701D3E92F6FF725E0E6E5CA0242CB41437533524686A2A0B119B1539E839787 + 0845670A912D8D47F4084B3F24EE1760698B0ACBCFFFCDB6B725EEC09BE3DFB5 + 0E38237313FDE5554EC1E9B57AC41DCE41F0043F70689F230D26F454ABF19534 + 01930345D85E5685A26E35C2834641794D8663735EB299AB45A3C5F43FFE84B7 + D813619A281C5A70D23120E1C05EE45D3ACCFD331FC1E37C61369BA1A8B88D5D + 53A7604A5040DFA0A9474EC3DB7F043202FCB02446E21090F958E5950E5C5FDB + CA220C009CBE6C25287D8D530A56D3E69B71FA2C0BA856F620C1C8C3CE97A516 + 7DB69CAF4071530B7E4B95225028B099EBBCB2152B4A2FC17F8C379A2BEEA060 + 5129C244E28180F12989A0C83B4E012AB45AA45DAA41C8045FB455776247C448 + 4CF6F1B6D9FF0E5DC96F95D5609A9F27368D165B3CFB48761D97F8267805B943 + 71F50EF2E61763B4EF9881804C1553A676F62687B07F12315304627EFE0C41CF + F8B0D35BF0E62A847A8CB0D9FFC7CB25D8DB2C43675B3B4E67ACA6F7644FF67E + 99B21E0B4EEC61F3306BD92E6062FA0C90AA5B0FA4266D0EBAB4FC3A1AFDB8E8 + 9477216FF238F8BA726DF6CDB8508D80B1B1A857DE4432C78CD59210FCABD660 + BD4C0EF7315E70A1DF65D632B306AB56DFA22D8B3F1090B11998354E4D3113B9 + D72BB0E59F636C3B2B793EE282C2ADF6BB7ABB190B4EFD8A246922D4DD2A949F + BF481FC56270442E4370B41F784217906623746A0342EF4A6C577142CA789849 + E701493AC73C5A19156DC2C9EEEED83636CC6ABFCFAF354226F4C5287AEDE98D + 5A5457D6802FE0C3274404BD4907A3C9C8022A2ADBB0397E3BDE8D5D64C3A897 + 6F741AAE370A1B6A9099BFEF9EA2F33E40948FA51993262D5EC8FE0671D224F0 + 5DF9F4F66864215930330346B2ED2E7517DA2A5B71656D93F59DA474EF7CEAB6 + FCAF41033251401850C621B1DCE4064F702C9ED512240EFA3F859792A6C160D2 + 4347C39849338C949E05D3925AE8343AD456D461BD683C962DCEB7BE17F7FEBB + 35D49199B3905279B4431C26EE9B4A06B2574506B08AB6ABF7C76562A3744B1F + C4B000DED5775371DF49903EE76DF6DA4491D01A357D2AB676B4A0A6BA062B62 + 376279FC1A0B8061016CE9565253774D4058780422422320F21159A8A86C53A0 + 476EC0A925E7060C3E6C53CC401EBABA1FB955BF43A16B8438548C90B0E0BE82 + 614E3ABB5F3D8084F0A4E157F0C1A86CBD4A1D961DC0F1EA1C68090D824705B1 + B6EB6B0C4476C6E1C70FD86F70AAF86601726407917FE308C6074DC2FEB78F3E + 3980FD83F9D39EDED698F1ED033EC9F11F174019ED2BF725D90000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_13_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006F04944415478DACD987B5054 + 551CC7BF77D9651FB0EC422A6096960AC2E2A34503414424DFA4163963E9648E + 660D465343D96374D2A9A6527B8D3D66AC28D3125387D0C4520958C12861C307 + 2CAB21A02808B80F17F6BD7BBAF72A0CEB2EBB6CA0F9FBE73ECE39BFDFE77ECF + 39BF73CEA50821B89B8D6200298A621FAC7633F973D752689B955E1B858E9023 + 61791E02B902EA7640F516CD055059F01291864BF1C0942CAF0E1A4E7E01DD55 + 1DE48B3EB97380974EEF276AC5264C599C090ED7BB0387C38ECAFC02444F7F0B + F74DC81C744837C0CE6BF5A47CC7A37828631E441249BF9C18F57AFCFDCB6124 + AF3808F19031830AE906A8F86601B9373A0CE163C7F62AB0F974D4FA4F236A4B + 158302C58CEB94677EA63C021E7C772499B9EAE9C114C16FFBFD9BEFB170FDC5 + BB0890985D01737FF20E98B264FE204677F8C7CA2528DB7DC43BE09D95CFB379 + 057CF48D4A10C7F501072174D75194C0EF3687B6CCF70EB8E0D54218B5FB0704 + F7496531BE539DC19351E3F1DC4439A402D794E52D33F89C24FE027A0AF6FE5F + 6528B7E941AC80AEB505D9F224648E9581CBF13D827C02CECFC98759973F2005 + 15CD17F066F51F484A4C82D16084AAAE0EA116335E4D988684C8910305CCA301 + 0B0704A8B5183163EF0ECC484F059F27842040806B5735A8AAA94242A8143993 + 13717FC830D74637D38DCF343350C03F5B9AB0A15C01A38003992C1612B19405 + 0C0CE023801300F579356A54A790238FC7D2E85877057D01CE7BF96B58AEDFB2 + 6CDD924CFBB28F9595F851ADC2F098E1881C1A093E0DC628C8E3F0D87B5EC08D + EBE9BA5390685BF169DAECFF08A83FE2B7722C5CA31A0FC68C82402480902B64 + 61B8015C5A391EABA2902782C3E940C1D17CFC307301A2A452FF01E7BEB80DD6 + CEE37EC1299A1BF1E2710546CA235908068C0164AC5BC5EE6EAE3E5B8D3838B1 + 696ABC475F45B907070648C1E4F26C735248DF970FEEFD42048706D1A9844743 + 0A114071E1340222A1881D874C375BAC16541417A3F0B1F990F0856E7E0A1BEA + E12C3D83E5EB9BBD00666F86ADABFF0AFEDAD884F5CA2A0C8B09659F055C117D + 54D043D3AA87841E73DC9010C44D8A6155AC3AA9C4B211C3B02A2ECEA39F9CD2 + 1318433838F66687973198BD11D6AEAA7E03AE39520C75B00941A142D8AD0E68 + EAAF23F59E70AC9B1C0B9D85C2B2DF8E21292D19065D27DAEBCEE1D0A274905E + 4B20757302EAAC0429FB0A40D133BD60791164E1E3298F8073B25E83DD5CDB6F + C0E4BCFD088A91D0C7030AAD351A64C7C660B56C4C4F79D29E439025C643A954 + E233FA3A3532BC4F5F0B0A8AD01E68C39C8845F830E30BDF80948FF4D269B362 + EADE428C908743DFD285784A826D33A6B8D4C92E39892A9D01B22021BE9A35D5 + ABBF270E95A02DCC09415B08CAB24E79069CF57C3688A5AE5FEAF5066C565EC5 + 818CB97820C47507A3D2E8905B4927E6690F234224F4EA2F7DDF6170A2C4683D + DB01D5CB97E9BCC9EF39E3F40026CD4B01B177F40BD04EB79976BC0A117143E0 + 3C67C081C4F15EEB77D0B378EBB98B58392A02D1C16297B22B26131E3F59D3F3 + B1956BCF432A0C7507646631715C635F7228DFBB8FD45D5B608DE460A44182BC + C5ABBDD65D5DB813A7746D7878C8BDF87CF65297B2B547F2F097ED12249141DE + 015396CC815D77F156ADFA0CBAB1B609A50E13C28D047909317DD6ABD018B0AE + FE12E472396A2AAA703459D653F65DD3556CBFD2860859189C7682AE0B5654AF + 6DA0FA4C336C86EDA79D69BF8C2505DBD9FBE34FE560A828C4AD8E9350989BB7 + 0543C745412C0DC689E272EC5DFC2C82783C6CAB2CC5E12B2A848D0E01373000 + 5D5A13269004E42EC9F30C983C6F22FD15FD07646C8DF23C4E77766173EC684C + 1F22762BDFD3DC8E9D7A1BE2A7C861B19970B65A058E418F76BB1D6111128887 + 8B6077DED8F8B6A9B4F860E66758189BD987826BD7F905C758BBF13A8A9AD478 + 222A8EDE1CB8CE5463D735A4FEF42512D3D2C00FE4D34B9A0D7A830E4693111C + 117DEE237698686806B053DB05AB5A0BE5EB1DCC6F1877C08A1F9791F68632BF + 01BDD90F1C33F4D16330296E12AC0E0BCC0E33ABA285BE32B076A79DBD37D98C + 6852B6E015E9443CBFEAA8E7A5AEFBEFD66099BABD962CFE3E0D8B3232D9CD2A + 03C1003A1830C74D30BB0966A31917548D58393E0BEB5237F440DC76C0ACFC15 + A48DDF8209E326DE50CC61EB51AE5B454D870E0DB5F55839F90517B83B02B853 + 994BDE2FD9889871E3103D369ADDAC767733330E6B6A6A21B488B035E34B248F + 9AEE16FCB60332D6A8BD4036976C82E27231E265F1B8273CAC671C961495B209 + 395414E631F01D01ECB6F24605D974EC0DE8391A5651915884131527F0F1CCED + 481B3DEBFF07BC1990ECFAFB5B7CF8C7DB90D2C74F2A109816F208DE9EBDE5EE + 00EC36AD51433E2A7B0FBBCFECC08A496BB021FD9DBB0BB0DB3A2D0612CC17F7 + 19B437E0BFD4B629ED76E4166A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_14_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006DC4944415478DACD98094C14 + 571CC6BF65973D1065B9615D414401AB48014D0502E88222A0C5C65A4DADAD11 + AD564B636DBD9A1A5B534D6F4D5B7BA46A5AAFDA5654AA6215BB1E1C2A0ADE5C + 22202237EC25EC35CB74665071612FEA6AFD92C9E4CD9B79EF37DFFFBDFF7B33 + 2C9224F12C8B4503B2582CA6A02334E4F95DB321AB2BB6F890AB38022FBCB617 + 5C0E9F656FA0DE86190116672D2385DE42048C5B62B191EA0BDF43DE244744DA + E6A70778E76A26597EE6638C9B3E030E1CCB8D180C042E1EC84270DC3A0C1933 + C3AE902601EFB5DD22F37F9D86F0A9C9707271B1A9A14E8502970E1F45CC1B87 + 30D063B8DD204D029ED9964A0E0E7683F788118F54E8AD36D658598392D367EC + 02468FEBD879075926010F6DF02725E9AFDBCB84FF24E9B61D78F1C3DA670890 + D418036EFFC33260ECCC143BF66EE81F2B8744DE6FC72D033E55F7CCC822E0B4 + 3517411A9476E948A553614DCE66A485C4615260BC7507A9701FF922C53260EA + 8A6C74CA32ED02987BA71C2BCFE75181D663715018E68F89BADF99F9CC607592 + F417D05267575A1AB034578AC8A870149DBD84184F1F6C884904C7C1FC48B20A + 98F2DE0168E407ECE260ADB21933720E6162BC84295FBE7C09223D894D9264B8 + F29CFE2BE05E0A30FBB1C074062D8ED6DCC2EED2525428DB902849008FCB039B + C5C6CD8A4AB4DDA9C1D6C949F01BE4D5F3D0FD746335CD3C2EE099BA2AACCD3F + 0DC3002E44625FB87908C163F3C17314804F9D058E4EA8ABAB43617101BE8A4B + 40DC6091B183D60093DFDD0AADB2D7B2D52B999AD3A6E28BF8B5BC04FE230743 + E82A84802360AEF706A4CBAD8A16E4488F22736A1AFC060EEA27A0E278BF9DA3 + E17654964014EA81813C176A2270181047074723402E9BC71CB5CD35B8565888 + C3D3D33090DB331EAD024E79E75BE8EEE5F60BEE2A355BE71EFF1B3EA33DC0E1 + B2C1E738514E09A831C7615C7C149043012BD50A9C964AB13B2911C16E42A3B6 + FED97EE8F1005950F7B936F5E011A8BC5818E0DA1D521AE29EAC03DAB6EEA52E + 60D850F87A891837491D90937F0C9F444462CA50FF3E6D5907CCF81CFA0EDB1D + 3CDFD08845B9B94C6869291A28B0260D52FCC58816F922BBBA16553C36820343 + 98FA7305E7307F841FD2478F36D99E55C0E48C8FA0EB28B2197075DE59E4EADA + E0E23B006DD50AF875F1B145120F2FA76E37B75DBF8E3F9B65087A6E384A6F94 + 214A20C0FAE8F18F74DC3301B7DEA8C45F176F6057C635783BFB186D7E1F0226 + 2D590542536233E08CAC6CC8C56C105A03BCDA1DB02B6122F8FC9EB7FFBDA21A + 3FD7358227E0C14DAEC2F6A4382AD4A637DE19A72EE054FD5DAC895F8FF4714B + AC03B26C482FA17B0E42F4BC27EA2FB7E08F291330B2D7A03F59D780F7F38A20 + E4B0919596006747AED9B6BE282AC5DEDA6A447A4461E7AC4CD38093166780D4 + 96D9EC200DE811E80AF75612FB5227F4A9D77791D84F7D12C48B7DE0733FECE6 + B4B1F00A0E77B4C0592944EE5B974D034627C782245A6D069C947F05F0E22191 + E461555080C57B5B755AE4B6CA31CDD71D1C56EF4F4602738BAB20F3664359AD + 42C9F246D380F42C260D6DCC450796F5FDEB82EC9D2894D5627640043E884E36 + 7B5F4BA7122FEFFF09329D069B136642E21F62545FDEDE88B4FD3F30C3A5E16A + 3B6E2E6F320D183B330984BCB6CFDB99D32FB79BF0E3ED064C7073C1A7A34D3B + 4850EFB9E4D24DC83DDDA1556B31CF998B9744EE0FEB5584010B8B2AA010F1C0 + A152D2A0266F1C4BCF330D48A7197475DA1C62DA19DAC594C0502C0A8F3379CF + AA93FB71AEA311234785A0A2A412B344210FEF7DF07C2D4B09F70017268F2608 + 53F165EA16D38031C961E8226C07B426DAE1DD2D1D187F3FF795DF2AC330EA63 + 5FE22944419B12D2761578DE7C268FD2AABFD68A5FA6EF43B47FAC190797AEB4 + 1B9CF4761996E565223E6602B31FD477E9D1D05C8FEAAA1AA69EE7CE86B3EB00 + 105DDDBBF20E991A8E37552858DDC230F5013CB7670ED9529D6717B8BB2C03BE + E1138897483048E0C240680C1A68F56A68A9B39A50C340125053650D15314267 + 40E3F556AC708BC0E2F41C96C5BF5B8FAB7B5A1539E9E7F1088E08829FD75066 + 874D1F8F02D26ED267A28B804AAB6042BB303C032BE3D732104F14B046564526 + 6E1F8F14490A3C5C3CBB1DD3771A01D2A25D94CBE4B85D7A176F8EED817BE280 + B44EDECA21DFCE4AC7D8F04888C5E23E80ED54C2AEA796418E9A8B8D53BEC6E4 + A054A3CE9F3820AD1B4DD7C84599AFC16D8810C303875363CE002DB59A9C90FE + 8330CF08BC1236072F8D9A69F20FED5301A425EB6C2717EC7B15CD0EF5080D0B + ED76F7B41447E7E463A8EB30B31D3E35405AF43FEF95D9193875E7C4C38FF86D + 697B10298E7A36001F684BC126F2BBE2CFC18623BE9EFC439F71F7BF03D23A5E + 7184CC2E3B8875899FC1D5C9CD66C07F01A8EA08EDBC3CABC70000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_15_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006A84944415478DACDD8795013 + 571C07F06F2010C295C00011041115F0040C461C1110541410746A1D9C56B123 + FEE1519D5A47AD965AADD343ED4CB555A7B515B53A8856C403C5A2A2A0881639 + 8B7801A1188E803681400E48D8EE064B8B6C0E2032FEFED965F7E5BDCFFE36EF + F71E61100481B739181490C16068FFE8502B89FB279740222AD2FB2107773E82 + 96A6C29269C53035E8F584F502165DF888E0F2B8F012ACD1DB89B0E010A46229 + F80BF60D1DF079591AF1247727040B17C18CA9BF138D468D07E917E01BFA393C + FC169914490B6C7B5945E41D8FC5E4F951B0E6708CEA48DED282E28C4C042FBF + 043BA7312643D202738FC410C37D1DC1F3F6FEDF8D4E839D3556D6A02227D724 + 30EA7B1DF2C179062DF0D2979E44446282A99230A0C83EF22BE2926ADF2220A1 + EC0D4C3EA31F18B238DA84A36BFA676512B8732A4B3F7048B3A723F40263B73E + 00A16935F9A01F5EDE05B14C8CE477BE869DA51D7D06C9D77D796FB47E60CCA6 + 2B904BD24C0E0C38F13DDC5C87C3A3CB1C8766CD07D38CFE65199C24FD051A53 + 86242A39C2D34E2232720E0AEE1560AE8B1B3E993A6360C0E88DE9504AD34D96 + B90E8D0AB79E3FC7A78539080F8B4097BA0B77F2F2B061E214C4FB8E1F083095 + 045E1934EADCB387385729C4136913D86C1BD8736C111030191666165075A890 + 93770B07A6CF4690AB67F7875E951B836566B0C05C5135B6DDCE86DADE1C3C37 + 17701DB86033D960995B8165C1D602A973A9448A3FF26F2125260E23ECECFFCB + A02160D4865FA06A7D6DD97AAD98EA8A9F4A0B70A8BC1CCE631DC0B1E7C2C2BC + 1B4307A4EE894422D43E2A464A743439B3ADFB016CC9EA77E6529F546077E903 + B8F83A8069690E2BA6B5412075CCBD9F83303B6B6CE04F310E386FFD0FE868BB + DD2F5CADAC15B117D3306CA29316470505A482A9B68095B515B82C072DD08A44 + 3149E4BF192C2DCE27CBCE2CF83B73B5ED6F245F1A1C9001459F6BCBAF66A3D2 + 520E8EAB0DD41D1AB4D4B541215162848D1D58E41EF3595B2B7C27FA62A4BB57 + 0FB0EC611954E27A1C080FC6480EB7A72FC3C0757BD0D96E7C066B5AA488CBB8 + 0AB7006774C8D46815CAB0C47B3412C68F858B35BBE701349EC3E04AD63F2A0A + 0B8A30C68C81BD61D3C061B17BF5671018B56E073ADA0B8D06FE585A8EA37595 + B0E5B1217D2445726418FC5D86F56A33FBB7748C129025069628292EC12C9E23 + B607F98369CE2607EE3D01AF1FBDA61F3877CD16A895154603D7DFBC8D52960C + 2DA276EC0C0CC4C2516E7DDA4C4A390F3FBE1F1E975460337F02E27DBC74F677 + FCD855246EA922BFA3AC5EBB735A20C388F21273E10624F604DCE44C9C8D9949 + DB263035437BFC764620C2DD5D75F695DF2046E2B5BB489CBA064911BBE88173 + 56AD03A17A6C7406296063970AAB7D7CB072C218DA368DF2EE8935CC9AADB7AF + CCBFC4D89C978F009E00679765D203A747858050BF301AB8ACE8A976967EE1EB + 89489EB3DEB62FC8258E0A274B16CD5D358E91C0E4A697F0B01A85DF13EFD003 + A9594C685E6A2F9A310CEF5FBFBA9B89A365F94859B00202D7913ADB1534D420 + 31F384F6BC6CC567B46D169C3D887AB61C2E4A77DDC090C573A196D6F6793A5D + A1269FA1AA5D015F5BDDAFEFB4A819076BC4181B301E8F0AFFC4ED30FF3E6DB2 + C412ECA81681E36E033F220847DE3D450FA4CA0CBAE40633674C74110C6CBD95 + 86EC0621022607A0131D1016962367E926DAEC727CECD0265620C17B15368526 + D10383A3FCC93DDBE08132B5061BCBAA51CFB241A080AFBDD6D0540F3CADC261 + BE774F9BE49A469CAA6F8683973DD81C16EA4B9A716365013CB95E3A32B876F3 + A07122D94BACC8380A16CF0D7E13FCA0EEEA8452A3448D4808614515BCEC1DA1 + E854A0B65D06B6831538C36DB56B78BB4401EE5319AE6F7B415FA8EFA5BC4F34 + 0BEF0C0A57C7D060BF850A418210B8BBBBA353D3D903549128A94A02A55C0935 + B3FB5F05E5ABB745ADE18DE52FB09F178AF909E90CBDBF6E0D26F6E4EC22AED4 + 9D43C4B4D95091280AA83D92480A489D2BD48A9E7B1490C2353D91607BE83758 + C65FA145BC31A044FE37117B2C1CA3C78DEAC9A03E604BAB14CD8F25F8383809 + 6BA76FE801BC31201535926A6261CA2C4CE50769B7FC74406ACB2FAE6F025365 + 89EFE61D46F8E839BD067FA3402AF26A72899519F1080B9E0916B97250C09292 + 62B4B6907B45453BC6394D42BC7F02E2FDDEA3FD85F68D03A93851944CECBEBB + 0333828361C634C3CD9C6CEC8E388088D191B065D9E91D6C488054ECBA91445C + AC3E03C13401B2B2AEA160F56338583B1A1C68C88064BFC4B2D38B20EA1242D4 + 5087CA8D4D460D3264402ADA543262F9E9C5F0E07A605FDCCF0302FE034E860D + EDB752B1560000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_16_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006C24944415478DACDD8795013 + 571C07F06F48C8811C09A2E055404104151144140C0EB11E11B1D6A35AB5B453 + EDD4DA6A751CB11EB5766AB5565B1D6D75A6F568AD56DA8A68F1A6328822522E + B10A44E5F0E210308140CE5DB6BB6BCB180821E170FCFD9364DFCBDBCFFEDEBE + B7EF2D87A228BCCCC161801C0E87FD61207454E69179503ECAB5F82749FF6084 + 2D8C079F27E47435A865C24C80B9A75650627731BC43975A6CA4346B2F54552A + 04BFB6EBC5011FDE4CA014699F2374C62CD8F12C37429204B2134FC12FF2330C + 089CD5A548B3C086DA622AFDE7188C9C2687838B8B550D69EAEA9077FA1C22DE + 4E82939B4F9721CD02D30E4453FDFC5CE1EEEBFB5C81B1DDC62AEF95A1E0725A + 97C098FB5AFACE498E5960D2979E946C516C5725A1439172E030A66F78F01201 + 299D29F0E0EF9681D23953BBF0ECA46D561E85ABC72E5A06BED0ECB511168131 + 6BB34191F5DD76F287758FB033E328568E5D80012EFD4D334877F799ED532D03 + A3579F854699D06DC04FD2CE23BDBA123E22217E92CF6A55DEEE20B11568CD34 + F47C4C3AFE0BBC4386E1765E013606876192978F6DC0A9AB12A153257659C694 + 7A0DEE3CAD869E24E9EF3A6CCE4CC778990C6A6D3D4A736EE1F4EB6F80CF15D8 + 028CA781673B8532907A24DE2B46C2DD4228544FC017F1211008D93289440C7F + BF0008B94264E5666176EFBE58347C54F374D3EE34D3596066C57D6CB872092A + 2E05D741CE70747082C85E04010DB2B7B3673F05F46F0648E84924A79CC3D919 + B3D14B24B20E285FB91FFAFA168FAD1693695B11AF28C0D6EC4CB80D9240E8C2 + 078F0689EC1D589488270297C3A38FF19A814CD93F4537E1A95563EB38990DC0 + BA8B3667EE425911E2D233E031CC0D3C3E973DD612C87C32F13C908913178EE3 + 805486C05E7DDA074E59BE0786862B36E1D4060D6409097019EC0481031F8481 + 44632D9D75AD1D5BEE201441EC26461F770FD8730410F0057436B9CDF8A29242 + 88AA1E60779414970E26750EC881B6D5B18DD7AE23B9B10A2E7D1DA1BCAF0659 + 4720DACB1BC3DD24F47D07543468B0BFA008438202D0871E144CF698ECDA73ED + A1B8ABC0EDC27CAC0A0EC19B7EDE5600977D0D63A3F519AC37506CF65C03C478 + 5A5C8F70492F7C113E0A2E0251731DBD568F889349088F8A68EEDECAF22ADCA4 + EFBF307A54AF1F3D0CEE3D246CDD7681F2659B6068CCB11A78BE8C1EB5B939E0 + 0AED10E5EC8EAFC68D6D5527F56129D6DF2C4448C848E8747ADCB97D173D0923 + E24607638C87D8A4EE5F87922D03272F5D03425760357047761EFE78721F8206 + 2039460EA1B0F57AE3D38C1BC845139B494DF5537C3C320073077B9B6DCF2620 + C78AE965596A16D2E867EBC2813E581DE26FB6CE96BFF371EC5E2962FDFCF041 + E02038DAF3DB6CAF5DE0C425CB40E98BACCE20034C2D7F8CDD916188EADFA7CD + 7A0D468345D8FF75361F4DC6FB8B9311D07B98C9FEA619182E9782226AAC062A + 1AD4C8A8ADC7C257FA82C7B1BC67222882AED3D65691405A8D1A7105C518EF35 + 1107661F330F64463145D6B207ED385DB37E551BF4D8939D82C305D7111B3006 + EBC2E566EB6DB9760E47EE6641DA4FD636503A673208D5835657D79120E8EB4B + AAA8C5DED24A38F4728540244088B6116B060F687D110489999945209CB988F5 + 5D82D5911BCC039969064D9A4E672DABA20C9BD3CFA09ADE970C1EEA4B8F6E01 + 7272F2B02D341A32CF2126759B280ED6A626E0E25305485D13B6C9BE438CFF4C + F3C008F90834111D07966B8DD85DFC08995A02814302E1D1D71D3A5207BD518B + D44B9771551A44DF87A659DE70BB14D7B45A76F55379AB06F9CBCBD083EFD846 + 063F8CEB302EBE300B5B32CE63A8FF08F8F9FAC1481A4134195960C5937294E6 + 17627150243C1C9DA1A527EA12650D1215396CB74A3C9D5057DE00FFC706FCB6 + EE89F969E6FAAF0BA8EAD2AB1D06EEB6D3401C144C676E04BD82D6416BD480A4 + 48E8E94162A4F4A8A8AA84AA46058DEEBFE7B9A8093D7A0AD9D58F5E6380AA50 + 851D1E524C8B4DE4587CBBD5D1C82BCFA6E69F88C19C29F36818C102FFEF5E26 + 5834A16DC633D965BB995EFD541528F1AD7C1FA6073C7B09D52D402656FCF91E + 55C2B983E1F4FDF73C904131D112A8AB33A0A658894D13B6E3ADE0779B01DD06 + AC545750137E0CC38428197802AE09D048839EE1B468D0A8D9D58F18AED8316D + 1F22BC224D4EDE6D4026BEBFB6938A2F3984D0E0501658486F05944AD5B36EA6 + 777606AD01FE6EC33177442CE606CE37FB86B65B81CC2B64D90F61F00CEA0F27 + 91332EA7A460D3AB3B2011B9D2D38713F39C85C4C1D5E2C9BA15C8C4C53B67A8 + B8E48F30945E5ADDBFF1085797E6DBD478B703999875780A55AC566082A71CDF + 4CDBFBF201CB9425D4AE2B5BB142BA165E92819D02FE0B44A924ED84FA9F5A00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_17_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000069D4944415478DACD987B4C53 + 571CC7BF17FA06E4DD52401151401D3E9846C1E136F1314026F3952D226EC325 + C6C5650BD98C99CB5CE692A9FF6C336A325F9B116734CA182A4C05059129A220 + A848810122A53CFBA4BDB70FEE6E0B1281DA1628CE5FD2DC7BCEF99DF3FB9CEF + 39F7D7732F41D3345E6523CC800441580A7A2349DF3EF93EE44FEFD9ECE41D1C + 8D05A9A7C161F10867030D156C10E0BDECCF692F911742E76FB53948C39D8350 + B42910BDEAA79707D85C798EAE29FA0EF353D6C085657B1093C988B2AC6C442C + FE161367AD712AA455404D573D7DF3F764CC5D990081A7A7430369954A945FC8 + C5A24D39F0F09BEA3448AB80454793E8A0081F88A64D7BAEC1607730595D231E + 15163905CCBCAFE33EFC93B00A98F34308BD243DCD59228CCA0A8E9EC0BB3B9F + BC4280343918F0D819DB8071EB129D18DD343256168DE23F2EDB067CA9EABDC0 + 6C0226EF28036D52BD14109A595E82E00D2A5FDC97681B30E9CB4BD0CACF8D2B + 983933C8292D92CF9FC2A2E050EC898B1F68B3FB908C14D0913464CD7E2C2D46 + 81AA1DEDED9DB8B62615DE5C8163808919592015594E53CBAC94A4BB034AAA6F + 222237374C9AE089E5E732B12026168D8D8D78CF4F84F4A8798E029E66002F8D + 192CBBFE1132ABAB51A3680787CF0197DBB7D7288A845EA7872840843973E642 + A956405AF11039296BFB00EDA599B1024AE432645CBF0A592F8509816EE07972 + C06309C0766583EBCA039FC5B7F899EFB96C3E78CC35B7E01232972421DCCBCB + 3E60C2174740A986FC6D0D49A62FB2A21629328AF2E11622809B377FA07E28A0 + F9CA26B8E072B870255C512BA9C33C170332E6C53A08A8BC3C62E5EE77CAB1F9 + CA0578867B802BE058EA8C7A135C7B59E0BBF3E1CEF1008B391EB15DD883D463 + 31655247E266E11514AD4F41FEB11CDB80EF7CB61F7ACD8D11C1197B492466E5 + 402F7601D78D03658B063A390921A3108FCD41AB46039640804961C1108B02FA + 96B81F90CF16588073F2B3B1273A0A9ADC3B630324A01B5677F4C1031C9248E0 + 16C083BC4185B48808A4CD888450D0B7CC865E02255219B6155EC3ACE859100B + 032D4A9A97F719E0E37FABE1DB2DC53249A71DC06D7B61E81999824BCF6641E7 + CB06D5462273C55244F8780DF3297CDA868CD29B888D8D19508FE3CA05A5A3D0 + 2C6D465D432D928202B0E0418B9D3DB86D17F43D771D86ABE956605D6E9EE5FE + F092B7B0401C60D52FEDD2DFD00509312920C452EE6CED42534B230C6A1592A6 + 8462755820A63313BB7AFC8A6DC0155BB7C3483E7218F04C4D357697DDC7427F + 110E2F8BB1EA53D1A1407A710942C342D1D52A874ADE8D3703C5489E1288B783 + C5837C47044838905ECCC177975620237A3A62C422AB3ED58CCAA9978B31D3DB + 0749A162E617047736C7AAAF5DC0655BB681A61E3BACA0B3CD2E606C421C6863 + E7FF806664DE2205B8997BDFFE534C9BBA2C952EC4D8CFAF6A3D858BF595C8AD + AB4479871499C91F23CA3FC8AAEF9DD6466464FF86839BF23047FCFAA037C4E7 + 8EFC2B60543C1936BB1169C1CCAB4CAE469EAC1B05DD6A4C60F69EAFD81B0DF5 + 0DD81F3E19B33D0556FB6DA96A42855C8E5DF1FB903AF723EB80E634835EEDA8 + D4AAEA68414E6D25B21A1F81CD6123246832FCC4BE96B627B226F0655A9C4ED9 + FC42F5365E3C6EB9FF2BED3A66085FB30EB82861367A8D2307DC2369469E9244 + E494484C0C9C082E9F0BBD890269224119742829F9077BC32662A18FC7B0BE35 + 1A1D36DF9580C79C7E88660DCA7774D948D49F7E352AF5B65F3B0FD904010338 + 1D1403653019FAAEBD06B4B64B51C59CF90EC4AFC7E2E010B05CFBBEA9746875 + 385F538103E5859613508F8CC432258D5FBE965907BC756A03DDD1503C2AC01A + C28833427724C7AFB280E90CDA01F5CCD6DA26C393FAA7D0E97A203412204143 + C570F2BD79F00C7207D5A387A956858393562066C329C2E6D7ADD118D39F9EBF + 3F12B17131E0F179CC09C73000F84C4963AF111ABD1A3A66494D2E46B038AE96 + BE94560FA5448D531F5CC4DCC07944FF78CE0534DBF7F93BE952F50D4C0B9F0A + 136D02C5A418034DF5296AD40D2C3DF9DC1EEF91EBD0D3A4C5CFC9C7B03C3C69 + 00605C001FB655D16BCF2E47C292C441EA996D2820A9D44325ED813F3F008756 + 9EC04C51D4A0E0E30268B6E54716D1FE33BCE0E9E1858A8A72B4C9DAC0E7BB81 + C5ED5FCEFE97A6E97E51D8189D8EF5B352CD7187051E37C023A507E893754710 + 16198A5BD7CB90FFC96DB4AA5BD0AC68B2B4FB0AFCCD390EDE021F9BC1C60D50 + A66EA5DFF8753684423F2404AEC637F1BB4735E8B8019A6D6BD626BA445A84BC + B4120478885F3DC0FE00343186018702FE07951814ED810F66F4000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_18_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000066B4944415478DACD98695013 + 6718C7FF090939208420080896A315D42A2AEA88575B2F2C224A471D5B2FB4B4 + 530747A74E47ABF8A175AC336DFD606DAB5FEA31763CA8172A0A884A05411415 + 0B321CA25C22215C39209B2CD964BBBB8E56842C04C1F29FC9E4DDEBD95FFEEF + FB3CFB6405344D63304BC0020A04026EA38332D3778E7D0A6D5D01EF452AFF70 + 4C599504679154D09F30DD99D509B0E0C2D7B4BBB73B822627F006AABA7B003A + 8D0EE18B7F797B804F8BCED2E5D93B313976098422FE40562B857BC91710FAC1 + 77181EB6A4DF20ED02B6B73CA1738FC660C2C228C895CA5E0523F47A3CB89486 + E971295078BED72F907601B30F45D37EA11EF01E31E29503961E03363CAE4649 + 5676BFB8C7AEEB1971C95D7E280798B23B809E1DBFA65F6ED457651EFA13313B + 6A0611206DEE0C78F8143FE0CC650BFAF1EE56C7584534724E66F003BE25DF78 + C50B18B3FD1E68ABE17F01A399E9BEBC67013F60F4965410DAB3030AC257197A + 4C1247017B5386F844D90458917A861B9F5AB8A467C005DF24C3AC4BEE37B7B4 + 24815A831E1AA391DB564AC408F1F0824A22E7B67FCCCF41A6A111DAC616A4C6 + 2EC5C393293D01263180A96F0C965D578963A5A5B8A3A985B3CC194E5221B7DF + 6AB6C1425A315E3504E3867AE3447929A6CD9A8EA2FBC5D8397E12A82B39030B + D84468B1252B1385861628FD5D20534A20140A21128AB98FD8490C899314261D + 89FA3A35828203E13B74182A1F55214AE186A0FC127EC0A8CD07411A5E7B6CBD + 564CEDE9914E872F33D260F51441E9EBD2E9180B2713CB393811D3858885CF41 + 256219376E523743C6B8BDB84AD70B407D86E3CE994C589A721E027F67CEB536 + 8D0994997A0E2715C14DE50A37A51B072513C9B86F562CA0941913CC5A2DCFCB + C3E6561B3FE0C79B7E4347FB4D8701D7A65FC66367821B931A33E60EF7C3382F + 1FC899A783BA9DC0F5A775A8EA20103C2A102A375527F79C044E707692E0F4C5 + BFB09774793340014C5DF665D569B0E96636C4122784BBAAF0C38C080C95CBBA + 9C975E5D83ADB979080B0F83B7870FD36F0A39F7D8A977128870F1CA797CA5EB + C0FAC43A1EC08D3FC36274CCC1B8F44CFCA36DC1873E3EF875D64CBBE71D2A2E + C6E18A5A4C9C3AE1E5D4BE9A3899B7AF615A55037627D6F3ACC18DDFA3C378DF + 21C0B9A793A1A3AC485D1CDDAD73AC0A1B1B107F3D07E1532741A970EF34B504 + 4140AFD3A3ACAA0C53D45AEC4B54DB079C9FF02DB3B84B1C02D4932668CD2482 + DCA476CF9973260DAA9040489C255C89319ADAD1A66F43BBD988E1323946CB44 + 08F5F38347FE13ACDCF1B47780825E9697DE68755A16EA8D4C9228DD9927893B + 46A8940875972348AE8254FA5F1375EDC855FE2499B77E2368B2ACDFC01C558F + 80D3A26682A69AFF07348AC96A3972D30A7B28334C16D3D6166EA750D0B7FED5 + 460B50A155A3ACA5018F5A9B50CE7C57B436C097294149B15FF05E77E5C04F3D + B5FCF341E96ABBFC3A3EB531197CF65933AA8D6694B511A8264928E46E502815 + 7091B942E62E8181D481A8D0E0DC945110D9F9735A6FB2E0614E257F92B06506 + 36C221C7924AEFE2F7B27C8C0C1A09A5BB1272B91C1D561256DA0A8BCD027D9B + 0E0579F7703CE6738CF5F2EB36461361C09CA47D90765028D8D66C1F707AD438 + D828C70033345AFCD14E6376C45C9056332C560BD3885A6066C6A4C584FB790F + B0D2CB056B03BCEDC658FFB006857A0302491BAE6E6FE27170C35687E0589533 + EB6B55FA712C9A1FCBB846C1642138381B658386395654508403F33EC3EC8077 + BB71CE84ED372E205F5BCBF589F16611B6253EEB1EF0F689957453558EC380AC + 364B8C58B66839B3D06DCF5D641C64DD63C75A831695A5D5F03358309A16C195 + 79A2B783864660C33DB1150A5F572E8667AD11BB022211B1E278F7802FDE6EF5 + 459107A7D3C113DF819C69E55F4C2D2B16D0443D0735305368D0B6776AC35C86 + 48411A3B980C71C6A57537E0A3F015F4F8FAAD2F4A488EA3758A1678F97A7672 + 8F1D5336EAE5DA34BFB6BEF56A2344AD521C5D7E06EF7B8FE500060470FFADBD + 748AFA34824382A06EAC4755653586F9FB7225E6D5C4613F369B0D263D097D9D + 11611EE1D8FFC911CEB917B10604F0EF2757E9AD991B1036710C6EDDCAC3BAB1 + 09B853938BC2A602AE4F7CFD4F5384DF0CAC098F47644874979B0E0860B5B692 + 8E3A3C15AAA14330C73B1ABB22F770C1B4442B5DD2588C16A2893BCFCF6D1842 + BDC6C055A2B07BB3010164B5F0C8475CE473ABD3DFE8BDB55DC0C1AC410FF82F + 0B36BDDEDB19F2650000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006F94944415478DA + CDD8095054751C07F0EF2EA792295A8BE07D0C2A63C26280482B62208768439A + 17995A8E5A561A538228393565765892072E65354DE2AD017215A00BC8B5CBB2 + 0A7208C2C22AC71A2DB0077BB1AFB78BB3911CBE5D28FACFCEF0DEBEF7FFED87 + DFFBFF7FEFFF1E0DFFF3461B6900656004FB3A31C458794A2D824FEEF293FD6B + C023DB97C21CA5BECF054E35B8D52DF94A2D11389CC83E401D615E2233F90DE8 + 50A85158D93CACC83E40ADCE3C60696D2B2452253A151A1454360D1BB20F50DD + 6D1E5024EEC09F24B017922F031118BFC3EF8F6101BE772A9BF87A871F541A9D + 613FEAFBEB94831CDEE607854A6D00FE8D5423BFA2A94C2E932D8B7F7FA5D948 + 23704F5C26F1CDCE17D1F508686A1B65458744A6FC07B2C38014DD39BAD37FFE + 9081BB4FFC4E1C7DCB1F72750F705F7C26E5209F6DF747CD03093951EAD1A5D2 + FEE3585BBB0CB1BB02CCAEB7C68EEF1ECB2062DF5E0E99AADBDC58506BBB21A8 + 15A3A94D6AFC8E5B21C2B7EF040E1DF8F6B769C4B17782D0D9D5038C8ECF301B + 1A19BE14F71F761A2AC285EC5B38FE6EF0D081BB8EA610C77787A05D617E067B + 377D2DE8526970E8E76C9CD8B362E8C0B7BEBE469C786F05248A9E31141D9766 + 36EED09BC1C6ED03EC0C9C8C081D3A70E79124222E6225DAE45A9383D4D5D5E3 + 664121F87C01C46231249276D8DB8F0383C14087CE0ECD774A98DCFC54C19080 + 3BBEFC9538F5FE4B7828D5F4FCE771D79ED859A590A2A9AA18F23F9BC1709C0A + FB090CD88EB683B5B52DD46A25940A39DADBC4686D6E8446ADBAAAD3E83E28C9 + 4FBB671670FBE75708F6DE30883B35943A0A04B770F88BAF3061E2544C9FED02 + A6BB1BA63831603FD60E76B636902B559074C8216A12A394CCACB0B6028DB555 + 52AD4EF30A3F379DF20C3402B77D7689888F5C8DD647C003271307EC246B6B42 + E32D0EE62DF0C45C374FC8353474133AD858D26041A781FC40BFE6E8264BEAE6 + 553E64D1EE4201AF1CC5F979B8232820BA55EA106E5E6ABA49C0370E5D24E2A3 + D69040F5A01D5A5B5B1111F10166CC65222028041EAECEB0B3A1C3923EF03CD0 + AF90642A1DCE24E54258518272DE4D29D1AD73E3E6A5D45106BEFEC97982BD6F + AD111873FC4ABF1D1A6F73307EECD3789E4516750D1D636CE9A03F86EBBD171E + EA6DF8ABCF28FB4A3E6C750AF00B38A8AB29FB95C7490DA30CDCFAF159821DBD + 0E2D1D038FC1868606444646C1DB2F14EBD78681613F7AD0CC3DDE2E6414C379 + 8E3332AF25A228270D4AA5C2951C8FB72901377F7486888FDE40021F65F0D8A5 + 3E273FAC2F8335A1844FC04B501316E4A5B51838F0A3C8ABFD3D8CDF5DC9E281 + E5E5861BB945C8F92D09F7EB6B0EF17253F65302BE76F01782BD7FA311D85F8B + 8E8A82EDD30E581B1E8E599319B0B280492DF9462996BFE0067E9508BF275D46 + 59495E312F27C58B127053CCCFC4A99870E3253E187BAECFC9B545C9607AFA62 + DA3C77D85AD18C59A23DFE70D86B37D8D7DDB89D9E2340808F2BEE3577E2DAE5 + F3E0E565B47039298E9480E1077E22D807360D9AC1F0F56BE1E5BB025BB7BE8A + 51D6168672F2F8081C6C3D9E59500696C77CC382E4424202F2B3934002071DC4 + C6831BA37F2033B8D9083C189BD0E7E47A6E2A985EBE70617A42FFE842A3F5D4 + 3C1AEDEFEDDE81F5D8A55ECF1966B0BED45C2F2A8717D305CA2E2512CE248097 + 9B2EE6E6A43A50026E883A4DC47DB879D0597C707F14468F9D888D9B3662D244 + 064C6D37791558E43E0F4DCD2D389770DEB431B83EF23BE264CC16E39DA4BF76 + E9FC59949496216CCD3A787BBA990C2C1254C39B39079CBC6224275EC503E1DD + C36406F75102AEDB1B4F9C88D90AB17460A0A8B1011FC5ECC7E2A5A1D8B2E965 + D88DB2350958525E8B05CE53C0FEF1220A38A9A6D5413D90CA8FB4DE2D06E399 + 09F061F962D6EC19FD0733ECF47F77113534222B2B0BC27B15BF155F4F0E7CD2 + EF99BC90F47861C54C9A055D30FF799F31AB82962160C942CA7D33734B909896 + 8D4A412126384C92748ADB5ECCC93C573AAC407D5BB82478B995954DBA8BEB22 + 9ACF2277AC0961E1A9D1035F6E9942894BA9B9B859C847E5ED22C4ECDD8D76B9 + 1A672F26EA44C2AA4582FC2CEEB002F5CD9D15146849B7BA3875F6DC31D367CE + 2167E75CCC779E8E89CFDA63CC53A3209575A1E5A104E5778528E4574158574D + 4E8A1AC444ED41E032163AA40A9C3E7315B1473EBDAFD5A9582D42A170588186 + 4C2E0E9E45B7A27F69656D13E640AEA8C70DB2A2D66AD419CF3A4EF3080B5D3E + 7E55902FEE54D68053788B3C761FC957CF8A48E492FE90C3F202D36371881B2C + B19A8CE64FCEB469E4ADCF9100D14C066F20AB7526B4B8AC7F2661056D5830D6 + DE9EEFE23CC3A2B2FA2E1C1D27C1D16912C42D0F0644FEE76F585DBDFD997FB4 + 34268D1BEF3079C6EC3970729A3C2872445E013B39CD9C4AB3B1CC2391539E84 + 1CB177D4549123FA129D0A72C4DFF23F09F91772799815F63D5F080000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006FF4944415478DA + D5980B50945514C7FFBBB03C1427A9110314D310914CF0092DAE89A180A90D69 + 9A91A9E5A09395D6940F94CC1E6A0F4BF28150D9631241541404C14004D6055C + 58908788A02EACC28A128F5D96DD6F1F5F7757DA5470F976A19CCECC37B3F7BB + F79CFBDB73CF39F77E97852E59BC3E96C6BF24095F85B32CD5B558F1BF92FF0F + E00731D97D5D62BE528390FD6B02E4FF1AE0AEF019B08452AF7324A71AC26AA9 + 40A9A183FA13B21BA08EB6CC9199A23AB42928145435F62B6437408DCE32C092 + DA5B689129D1AE5023BFAAA1DF20BB01525ACB00254D6DF89300DE032992830E + 8A5D1570A75F00DF3F7096FE765500546A9DA1BDF1C76CC64676AE0C80424519 + 00FF81A420B8D450DE2197CF8CFD709EC59046C075D199F477AB5F406717A0B9 + 62CF61A345AEBC0FB2CD0029A9DCBD3A705C9F01D7EEFB83DEFD76203AA8BB80 + 9B6233191BD9111E889A9B2D2451AEA353A5B9AFAFB9558EA835B3FABE93BCB7 + 27838E7A6736E42AADA5B64069B428AD6D4243B3CCF84E784982EFDF0DEA3BE0 + 3BDF9FA6F7BC1B8CF6CEBB8011B11916836E089B811BB7DB0D15E1C8D98BD8FB + 5E48DF01D7EC4EA5F7AE9D835685E51EBC57F4B5A053A5C6F6DFCE62DFBA17FB + 0EF8F6B7A7E87DEFBF8816C5DD188A883ECDD888A2AD19ADD2EB68BF2D01A590 + 434375C2D171309C9C9CD0AE73404365D104A120ADB44F80AB7725D3D11FCC43 + 738786B172A3548A83077F45A15004276737383EE104BB0103616363078A5242 + A9E8406B73136E35D6434DA992746ADD47C582D3572D025CF5F509FAC0872FE1 + B64C6D686F893E65525176E726C425E7E03A621446B87BC175A43B4912B2AC6A + 2D28F2D870AC606F638DE1431C50525C0271ED25D4D75E966974EA574479E98C + 03DC0818FEE5713A667D289ADAD5BD2A955E2CC3B6CFB6C3F3D9A9F09BC60377 + F2383CE660071B2B16ACD82CB0592C128334B43A7D66D36895774220AC40A180 + 8FCAD27C5AABA2E608F969E96601AEDC71948EDDB000B7BA00B7EC3FD9A302D5 + 29436D7E2AC67A4F81D7242E492A0D06D85A8163D5731EAC98C785961C403A54 + 3AFC9E920B7165312A8ACECB68ADCE47C84FBDC618F0ADED8974ECC685049032 + A9B073E75768BC234360F07CCCE44DC2203B2BB058BD4FA0CFEA03C70B60AB95 + 43949F836B35E5278A72D2421903BEF979021DB36991113072EFF16E8395F216 + D48932E11730178EAE4FC38EC38235FB01BA7B68F5BF16054D35B6133284F0F0 + 188DCC532751987B1A4AA5C29BC4631923C0159F1EA663221643DAF6F0184C88 + 8F07BF4084F98B5E873F89BB816469CD91A4AC624C9B3A1EE7F20A917B261937 + AED76C2FCA4BDDCC0870D9B643746CC41202D8E5C13D47BB0DBE5E7C06EEA3C7 + 62EC641ED8C4730F8BBB7B1D393F60A2F15DCAB912CCF2F781E8B2047F241F43 + 7931FF42516EAA2F23C037B6FE4EC76C7ECD08D89384AF7C0BEEE37CF1FA1B61 + 701A3CD064ECF524E9791711C81D8FAB8DED38752C0145FC0CA93027D59911E0 + D2C8DFE8039161C625DE1A15DF6D7035FF289E9B31176E9EE34949619392023C + 48C97AA031CBDFDBD8CC3C5F8E69539E31ECF747E2E220389B0C0268F26F1A3B + C3B6FC42C76C596AD283ABC3576234F1E0F2E56118686F6FD0661B1E9681B3A7 + 99F4D9ABFFCCD17FEB64175662AACF58283B95883B1487A2BCF426616EDA5046 + 80AF451C241E5C6604DC1A15D76DB0A42C1BA33D9E812F2F002C2BEBFB0DB17A + 36CD9BEC657CC32FAE82DF044F34344A111F97605E0C2ED9F8131DFDF1329359 + 9C181F87E29272842E5C0CAEAF0FCC95C2926A02380639FC0B483999849BE22B + 3B89073731027C75C30FF4FEC8E5C69DA42791D4D7E193C8CDE092385CBEF465 + B2CC7666018A2A6AF1ACC770C4FC9C88FC9C34F3EAA0FEF2685FE40A34C94CEF + C57BBEFB06CD2D1D9815148C90407FB300CBAAAE4152578FACAC2C88AF5E3A73 + 213B25A8379DFB00994CA25629D05091032F1F5F3CCFE3C26D5857953091CD7F + 77D5491A702E5780AAD2023C31D4B5A5BDA9F985DCCCF8124680E6C8A4E921B3 + 391CDB742F6F3F96BFDF442C9CC383C380872FB75CA1C4D1B43C9C27BB505559 + 2122D7AF456B0785C389277512F165BF524196B05F01F53291171C64CDE624BA + B97B0E7A6AD418F84DF4C4388FA7F0E410470C72B0878C1CB1A4B75B5071458C + 02D16588AF5593A4A841E4C675089AC9439B4C819F0E25216AD71737343A154F + 2A168BFB15D0E0496EC8D36C0EFB6B8E8D6DE85072A21E6CE244AD515319439C + 474C099D3BFBF1F9C1CFA3B2AA0639051749DF0DA4241D9610C8E93D41F6CBFD + E014EE1C1F586301B1164802790429DBCEE4C0DA488CD7914A9D090D8EE9BF49 + 78C14BC63FE6E828F2F2186955557D05CECEAE7076714593F4E64321FFF30B4C + EFE70227DC91D6270F7E7CE8B091EE63E0E232CC24E423B961757119E5C6B2B5 + E613C8E1BD413EB22B60A6908FF48E9A09E423BF44EF0DF22F491B9D15B2F9F5 + 590000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006FA4944415478DA + D5987950535714C6BFB029A2D66811414AB52A2E55011171A90B1A0D506D076D + DDD0DAD68E3A2E553B2A48A14E3BADB5B5B6E286D0753A8A5B2D0A0262590462 + 00B3000A02B21816214469802C2421C9EB4B64A214022F21ADED973FF29277CF + 79BF39F7DE73CF3B347468D5BE18E264C47B1049DA61497D7AF40C2E7CBD8966 + AEBDC150076851B2676411C0FFAAFE3F801F4567F4758A590A35024E6DF393FE + 638047362D8039943A9B8B9965E09409D90A35C1B4246417402D615E2053F9D5 + 6891AB905BD26051C82E806AAD7980F9158D104B146895B723A7A4DE62905D00 + 551AF3006B452DF893047C06922F05C18CD9ECF7D82280BB4FA713DF6EF683B2 + 5DABFF1DFA43066527873EF0835CA9D2033E8554817DAFFEAE4C2A5D18B36799 + D99006C05D51A9C4775B16A1AD03D054D9DB5A412C5574826CD143D6161FDDC2 + 98DC67C09D27FF208E6E6540A67A02B83F2695B2932F373150FE504C6E940768 + 53AA3BDD6B6A962272DBE2BE9F241F1E4F2122B72F8154A931D717546A0D0A2A + 44A86F9218FEE3DCABC5B11DCCBE036E3F964C1CDFE18FD6B627806131296683 + 86042F40DDA3567D46B8985E88131F06F41D70DBD144E2C4CE4034CB4D8F6065 + D503DC62E782C7CF47A34804B1B81974FA1038BEE808096D30EA8B385E1C7652 + 419F00B77E7B8D38B9FB7588E54FD650585472AFC64A592BEA4A72216BAAC770 + 6737D0870D47FF010EB0B3EB0F954A01855C86E626111A1B6AD0AE52C669DBB5 + 7B79ECE44AB300B71C8927A23E5A8626999A92617E7E210E1E3A8C6123DC306A + EC24787B4F839BEB700C19EC00077B3BC8DA54686E95A1BA4E043E8F0F41C53D + D454944AD4DAF6B7F9D9D729AF1F03E0E6C35788D37BDEC4A38E82353CEA9A51 + 23C9E37A08F2D33171EA0C4C9CE60BB9DA0A5AAD16763634585BD16045A3E9CF + 670DB906372C9DA54F396C6E11F26E65A3B82087D02855811C56D2759300377D + F53B11BD2F08A2D69E2B6A61632376EDDE83D113BCB0242010333CDCE160670D + 1B6BE3FB404B824A955A9C49C8C683622E8AB8B7248446EBC96125565106FCE0 + CBDF8898901568EC000C3F75B55B83EA820CD0070F84CF3C26A41A6B0CEA67AD + 8F9A31AD0BF4D57FEB221A1D97033BB514FC9C4C5495DFBDC2CD4C0AA20CB8F1 + E0252226F42D12506574B040508D3D7B4331CB6F2982572FC770BA3D6CACA867 + 90F3293C8C1B3706A9D7AE222F2B190A85DC835C8F772801BEFFF905227AFF4A + 0360C489DFBB0C165516C246D386D798415011D6184846AF7B6F4F2F9733A61B + FE8B4BE3638ECF14DCCCCE43D68D78D43D283FC8CD4EFC9812E07B9F9D23A2C3 + 5641D8627C0D868484A0FF2027AC5EB70E635C1D616B635AFE4DB8990FC66C0F + F04B6BF147FC65DCE5B16E73B3127D29016EF8F42C1113B68604EC88E0F1DFBA + 0C2E67C7C173C67C8C7A753AFADBD240A3D1FE1EB82E0A9CE769B84E66158231 + 6B2A2A1B5A71EDF205705929424E66A23325C0770E9C21A23F5E6B00EC4EAB57 + AE84EFFC406CDCB89E04D46D0E930288D49C22CCF19EA43F4E2FC6C6829D1E0F + 12B0C76930DC5C1FF12B713A22D830C50722CF77195C9197002F3282AF92B94F + 57F3E822A8DB23BABCA70B264DFFE9EC79BEEF6410E46B84EE4D2223B7183E9E + 13A0685320F66C2CB8D9D7459CAC24274A80C1E1BF10D1E1EB7B8C60785828EC + 078FC0BA7782317284A369E123C5E295C2D7733CEA1B84381F7BC1B435B836EC + 2732821B0C80072263BB0C6EAA29C6006B2D16F9BF811786D29F71627C96667A + 8D375CE715DCC74C4F7764B26E23E16A1C1E0AEE1F2223B89F12E09AD01F89A8 + 4F36F4B88B6B6BAA71203C0CB3172CC5BBEB97C36180BD7187DD8857548129E3 + 5C11FDF325E4642699960757877C4F9C8A78D7709218D3B1EFBE41935886C54C + 7F0430E65086D3A9B0B40AB5821AA4A5A5415079EFC6ED8C04662F269D9B4754 + BA5B8FC87AEF93FD7B3166923796052CC66BBE537B7B8641C9E939B899C54649 + 412E86398D14B78A9A1665A59ECFA70C48F541F216111E57F2C86AC617D3BD3D + E039D99D2C169E9E2A345AE747A8351AE4DF2D03975788923B7988D8B713CD32 + 15CE5DBAAAAD1594CE2C60A7717A053455D3E6FA336DAC6C2FB98D9D3068D42B + E33173DA044C761F85118E740C1A680F89B40DC2476214DD1720975F0A415519 + B929CA1111BA0BCC8573D12291E3C7B371883CF2459D5AAB9C2B1408041605D4 + C97B76C0182B5BABC3B676FD829CC88A7A480F15B5BA5D95E2E8FCB24FD0D225 + 43DFF09F8FE2927264E61692F7EA901077AE96849CD71DA445DA6F3EB3033D61 + 8315A43706B94E5E26D38E33999A1B48E7D5649D950A352EEBDE49E6FAAF99FA + 029DCE9FE43EDABAA4EC3E9C9D47C2D9652444C2874621FFF5FEA0C72C86D763 + 614DFC90A14EAEA3C78E878B8B6B8F90CFA581E9E2F28A1BAD9F0D8B847CA937 + C8E7D661A50AF95C5BC054209F7B8FBA37C8BF00C1C29F15E3EDA48F00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006EB4944415478DA + D5980954545518C7FF33AC418BC849637165CC44084DD92648511434C9CCCA4C + CB5C424F5656274D49F2D829973C1A688A50D9A62C990B208B0A2A382030C3C8 + 3E2A20280A388A08330C338F615E77067AE9199637C394F59D9973DEBDEF7EDF + FBBDEFBBDFBDF77D1C74CB1B9F7D4FEF0B7F07B75A3B604AD91C7908F1DBDFE5 + 18ABCF282E581743EF0D5F0AA9CCC480110791F04DA869004D4A769F9804F0BF + 2AFF1FC04FA2CF0E34C402A51AB3F6AD0E90FF63803B43A7C2184AADCEEF5997 + 21BCDC98AB54D341A684D403D4D0C63932437C0D2D0A0A7992069342EA01AA35 + C6015EACBA85669912AD8A0E5C90D49B0C520F90EA340EB04EDA82BB04F03E48 + B11C7450CCCA803B2601FC78FF197AD7CA00A83A34BAF6FA1FCEB236B26D4500 + 142A4A07F8372485DC8AFAD236B97C5ACCA721464332801F4565D0DFAE9A8EF6 + 6E4043E5110B2E9AE5CA07205B749075E511AB02DD060CB866EF693AE2BD40B4 + 515D801B6232581BD91A1A88CA9BCD24516AD0AE523F70AFE99E1C91AB670C7C + 27F970CF493AF2FD9990AB3A8DB5054ADD89A22A29EA9B644C9FB0A20EBB3F08 + 1A38E0FBBBD3E83D1F04A3B5BD0B302CE6246B238A963BB85B7F15ADD23AA814 + 32A855ED78ECF1C76137D81E6A2B7BDC2C2D9828CC4D2D1A10E0EA8814FABB35 + B3714FC1DE830D0D8DF8FEC02FC817166288C370D8D90F81B58D2D2C2DAD4151 + 4A28156DB8D724C5AD86EBE8A054C7341D9AB585B969D54601BEB7EB04BDF7E3 + 17D1ACE89A436151697D2AB6DEBE811A71269C868FC6289E2B9C463F0D4AC341 + 3BD54956824E585998C1C6CA0CC3EC6D512812A3A6AA02D7AB2EC9D49A8ED7C4 + E7D3598787015CB533898EFA24044D6DEA7E952E161563D3E62D78C6DD0BBEFE + 53C0F71C0FBB47AD6161CE813997030EB1AADD903AC9A2AF5D57B5199D232C47 + BE201BE54517E84E15355B28484D370870E58EE3F4FE4FE7E276F7817563D489 + 1E15B473EC4A4E12C67978C2CDCB0FF7C80BD9124F999B717A34FC4E880F3404 + 54AED2E0B764016ACA842813E5C8E84ECD04A120E52A6BC0D0ED47E9E875F320 + EDE7C8BF65EB76D4DF912170D65C04FA4FC263D666E0B2C851AD47F727E6C382 + 6A85F84216AE56961E1765A5CE630DB862EB1F74CC67F3996F928DFB12F5062B + 65CDA811A5C337200476C3C6C0DAA22BA40F18E43C687EC1CCC94C2BE194083C + 9E0B324E24223F3B0D4AA5C283CCC7125680CBB71CA663D6BF4A00A95E07C7C5 + C5233B578C97172C869FA79B2EB486C8D1CC8BE04F76C3B9F3F9C83E95841B35 + 955B44E7533E6705B8ECAB043A7AC3EB0C60F87747F5065717A4C185370EE3BD + 5F2061E5C2E27E3E4ECF73F0A580894C5FF2B9624CF77587F8521D4E271D4169 + A1A040949DE2CD0A70E997717474D80234B6F43E07972F5B069E9B37DE5EB218 + 4306D91026C33688340101F4714775432B4E1C49804870B2519895E2C00A70C9 + E643744CD84202D8EDC13D7FE80D9664C5C377EA1C8C709D004B332EC88F18E0 + F462B1EB7206DF9D6967E49581FF9CAB6EB7FA3D3616B967924000FB7C4BE6E6 + DB9B0ED2D19FBFC900F624A12B96EB3CB86CE962D8DA3CA2EBD3E60847F7EF42 + BDFF69F45F7F92C2DA2C3E935F014F8FB150B62B117B2816A2F3E9526176EA50 + 56806F85FF4AEF0F5FC484785364BCDEE06B4599E08D7185CF9469E09A99F766 + AAABD5DDF49B3C8EE9CB29BC042F02584FB6C8F8D804C3E6E0A28D3FD3D11BDF + EAD3830971B1108A4BF1CA6B6F80EFE5014325AFB8123E1E639025284072E231 + DCACBDB28D7870032BC037C30E100F2E61003745C6EA0D56B5B5A05122007FEA + 8BF0F49E0C2E97DB6BF6765D7330C99DC7B4C56555701BE38CE89F0EE34256AA + 61EBE0C2F53FD2515F2CE9338BB512B96B079A9ADB30232818B3673C6F90074B + 2435B85E7B0D999999A8ADAE3855703639A83F1D06906D75EBB6548AF00D6BE1 + E23A0921B366C2CFDBBDBF67309276260FE7B2732029CA83FD50A7E65669D3F4 + EC8CF88BAC000DA96E9595142362E70EDD69C68FEF85E0006F92D5D6FA46BB45 + AE5022FD6C3E04B9059094E4237CDD1A72C8A01077385153577BC9A7283753C8 + 0AD09070295AA4B85D5508E7913C8C1C3D16CF8E7781F35343F0A8AD0D2CADCC + 41916F9336453BEA1A6EA1A4BC1AB5572F93A4A844F8FA8F1034CD1F2D32057E + 3C740C913BBFBEA1D6A8FC1B6B6B6BFB04344626F167B9702DB83B2C2CADE60D + 2527EA417D9CA8D51DD4C9271D4678CE9B3373F04BC153502EA944565E31B977 + 03C9C7E2EA08E40B3D419AA4BAE5C99F3D01E6984FAC0592308C20D9EB4096E6 + 0662FC1A59A933A0C611ED37897FF0C2679FB0B313BB3E3DCA4C72F90A1C1C9C + E0E0E80469E3CD5E21FFF5F29B876FE0C43B8DD793060D1EEA3C8A37168E8ECE + 7D423E94FAA0A3E3E8E11C2B7301811CD61FE4432B60B2857CA8155636900FBD + 04DC1FE49FC4DAA715866B21370000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006D44944415478DA + D5D8095013571807F07F00E5B48A0C20E051D0F1C00B458338A2205411B58E57 + AD07DED778D4A31E8850C78EF5A8E3413D105ADB4EAB882782021E8002316002 + 11390445480091105424242117D92E814981404820ADED379349B2FBDE97DF7E + D9F776F751D0148B032E12A1DFAD00B746067DC6C190085C39BA86D2D9FEAA8E + 5FEFFD99381FBC12957C7D032F23F2D8BAAE0317ED0927CE05AF02AF56CFC0D3 + 9770F5C7F5FA01EA55D62CF402FCAFC6FF07B833EC5157FF629A588E19E7377B + 09FE31E089F59EE88CB2A1CFB5E49760BEE4D2C57262BA3E916A4005D1B94226 + B04A502392223DBF42AF4835A05CD139E0B3D795A8AE15832F92212DFFADDE90 + 6A40697DE78065BC1A7C2081CD902C0188E9E11BBCDEE905B8E3421271728317 + 243285F27BC02F8FB44E7274AD174412A912F837520AFA8BB7394281606AF8AE + D99D46AA80DB431388531BBD51D704D4354CBB19A05A206E81AC5122CBF24E6F + F419D165E0B6730F89D39B7C20943602F78527689DE4C87A1F1496579303858D + 3A89BCC5BEF71F0508D9FC45D7AF24DF9CB94F846C990681A45EE72445C56CA4 + 3E4907238385F2B79510D4F261666E811EBD2C61D4C3166FB2196398F4B8AC2E + 01B7FC144F9CD9EA0B7E5D233030FC7E879DC5423ECA72E910BC2B878D5D7F58 + 5AD9C0C4CC1CDDBB9B402A15432C12E2E37B1E2A2B4A21934AA21432C5EE4C7A + 7C51A7809B4FC71267B7F9E1A348BB0AB29E65E1D091E3B0EAD31F8E839CE13A + DE15031C6C60F99919CC4C8D21AA93A09A2F4249390F99CC4CB05FBF40E9EB82 + 5AB942B690957AAFE3A36F0DDC74F22E716EC74C548B1ACFA1C0D0F8763BF1AB + CAC1CE7C8861A3A818EEEA0E51BD21EA150A7437A2C0C880020AA5316D3D39A7 + AE9C45550E1E1A330FE9A929C8CB4A23EA25523F262DEE9E4EC08D276288D09D + B3F15E28D7D881CBADC4D66DDFC271E818F8CE9C09B7D18361666CA084B517A4 + 5D796EFF79E7098A7318C8CD78524BD42B5C98B4D862AD811B8EDF262EEC9A83 + AAA61BD6A0D0BB6D7660B312D1AB8739DC3C7D21ACEF060B1267D81AD7ECEBB2 + 19E395EF0D57D0B068068C243560A525A3B830E7764672DC5CAD81EB8FDD22C2 + F6CC054FC32D3F8753821DBBF6C2DD6B16FC17CF838DA599C6CAB58EC8072C0C + 1CE88884BBD1789A120FB158349A3C1FB3B502AE3D728308DF3B5FF54C12743E + 5AAD71E5EB6730940931D9771EA43082B9B161CB6414F5D4F3BDC7A8B6DC4ACA + C244D7E1789CFA14290F62F0865D7838233576BF56C03587AF13E1010B48A0B4 + DDC6BBC8EA1993F3DAD2E5CBE0D4D71ADD0C759B7F6392B3E13D610458056578 + 18731339993446464AAC9B56C0D587AE1261FBBE520183CFDE526B5C9072032E + D429702247AF8911A559C55A429B57D2CF63B4EA733C2D0753DD86A3A8828FBB + 37AF2283769FCB4C8EB5D30AB8EAFB2B4458E0228DCFC50B172C84DB143FAC5B + EB0F936E863068985274A860425A2EDCC70E535E0CAE4544809E140312A83185 + 6AE78A839789F0C0C524B0A982676EA8352EA447292B38629C3B392A29CADE06 + CA5763351BE6BFD6BFE6497526DB12CA519CC4C8C7B8518321AE1323E2720432 + 52EFF1982971B65A01971FB84484ED5FA202B61581010130F9CC16FE2B96C2A1 + 8FB50EB56B0C5AE64B50C979F36D0517911157753B07FD83FF202E042F55FDC5 + 074222D51A577172616A20878FDF1CF4B4ECAD9EA48D0DEE2E43549FD39F17C2 + 6DD42024D318B8131D8572CEABA36405F769055C1AF43B1116E4AFB182A5A525 + 080A0CC444CF5958BD7C1ECC4D4D75AA60665E11460C7240D86FD791961CA7DB + 3CB824F057B2822B54C00321116D76A82848878D556F78787AC3C9A97FFB899B + 86B2CB3047D5B6E7056C94B24B909898084ED18B078C4777A67774502AA0B6AB + 5B55BC4A0405ECC6406757CCF69B8649D4912D136988B8A4743C4E7982FCAC74 + 58D93A54F379EFBD5312229F6905D465752B37FB394E9D388EA123A99834910A + 5F2F37589899B4DB5E281223FED153D0E80CE4673F45F09E6DF82894E2CAF568 + 4519A76042163D91D92150D7D5AD1C12793EE424ACED3F87E3C0A1A08E75C660 + C77EB0B6EA090B0B53080475A8FA508357C56560B05E805D54400E8A4204076C + C7F4A91EA8A915E1E2E528849CF8E18D5C21F1E072389C0E815AC99A854C2CC4 + 87D23C48851F604BDE51F7D270472D9749EF5BDB0D183F77D6B4DE5FFA4E415E + 7E2192D39F93FBDEE04ED495321239B92DA45E168FC64FF47321EF1DE693D97C + C8A31C404ED776E4D45C41262F018104C871B3E199C4C377F1A89E96962CE7C1 + 8E86F92F5FC1CECE0176F60EE071CBDB45FEEBAB5BA3DD7DC6BCE396C6F4EA6D + DBD771D010D8DBF7D588FC24CB6FF6F64EFD29C6463412D9AF23E4275B1FD416 + F9491730B5417EF215D68E907F01D967A015D181DDED0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Find_-04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006D84944415478DA + D5980754535718C7FF2128CB1E5795C3108BE042DC35388A8AA2E0AAB5C36D55 + B0EA515BC7B14E52B547ADA30E5C40AA1D1E592E04190E300D9B842043044430 + 1554888A049290FDFA123D114D0C21A4B5FD4E724EEECDBDDFFBBDFFFBEEBDDF + FB287865F3B7FD4A84D217A34620D3B4770447C054DBB576BEF6F7CE639188D8 + 1B4031D59776E2BC2D6788901FD4807293C1F4C292371AB92FB0ED807337FF42 + 9CA22F416D83B901C311B5FF9BB603CED9C4204ED29782DF6866C0A3E7107D60 + B97900CD4AD6CCCC02F85FB5FF0FE08630665B1F71BA448129A756FB08FF31C0 + 43CBC7C3144AF59CF3AC3270CA6A32250AC2CF9C903A802AC2342193F3FE8240 + 2C4376C913B342EA002A54A601DEBE5F8B178D123488E5C82A796C36481D4099 + D234C02ABE0075246033C83C21083FC60A9F6766015C1F7A8B38BCC20752B94A + D3DE729A69B4937DCB7C2096CA3480AF2165C8BCFBB84824144E606C9C6132A4 + 16705D48327164E54434BD026CADD9B4B3C00BA1E40D488106B2AAF8E84A5FCF + 3603AE3D799338BACA1722D94BC0AD8C64A39D044E7443EC3526B27272216CA8 + 87B449042B1B3BD876E808BB0F9D505D903394939998DF26C0EF8E5F2782D74C + 8650AA347AF2E32735609CFE03596C2EBA3BB8A073D7EEB0B6B543FBF6D690C9 + 24908845A87FCE47ED938790CBA4312AB9EA7B6E66528549806B8E2511C7BFF5 + 4743D34BC06D8CEB06270AF855A8E0DC84934B2FB8BA7BC0B9773FC8551448E4 + 4A328E95B06A478535F975EE620B2E878B07F7EFE2E1FDD246854AFE555EDA35 + C3CEF501AE3E9A409C583B15F5E29615BC9D5F80A09D7BD06F200DA3C78EC798 + 1103D0B98335DA5329A05A50407EA00E1425B965C91504EAC8D8CCE014232B8D + 85E2FC2C4229954DE5A4275E6B15E0AAC3F1C4C9F5D3F042AC78A9604892DE09 + 5271034AD362D07FD0080CF21A4B8E57C2CE8A0A4B2A45AFE380192348504044 + 86CED9B84C5414E5E04E6E4623A1540DE1A427541A0DB8F2501C11B261069E8B + 140627ECDEB31F8F9E3660D2B4CF30C97B383EB0B620156B39E7501F50A1B16C + 5025F5C8CB62A1B2BCE84A2E2B7196D1802B0E5E214237CEC4D357096B5048BC + CEE0A6C63A54E4246294CF0C74EDD9978C310A2C2DDE528EF2A6FB399386695B + D1C9B7D1CBF52324C7C72227350912897830198F8546012EDF7F9908DB340B7C + 03297F78441458995CCC9AB308DE344FD8B5B76851B9E67699598091C33CF067 + 5A0E526FC4A1FA41F9DEDCB484ED46012EFBE922C1D8FC85F69D24E854ACCEE0 + F2EC78B8B9F583E7481F5890CAB56B1E7714FD8E678E1BA2ED8B4B2DC0042F4F + E49556E166DC251471D3D9B9A9095E460106EEBD4030B67C4902CADE3978F1E2 + 00B87B7A61C9D285E8DEC9967C9C46E4BBCD8EF6C48C3B9840F340C59306C45F + 8A466EFAF51A0E2BC1C128C080DDD144D8D6D95A40FA89CB3A83EFA48463D4F8 + E970F51C466E29E4E2B0D04DC9DF869E3CFAF5297733AB18A386F6D3ECB5E723 + 2290792B0E24A0C1BBD4FEB9F4C748226CDB1C83EFC581012F150C0C58083B5B + 1B4D9F7A8DA857B19A4BDF95D402AA57B03ACF64B24B317C606F489A2488088F + 406EDA353E2735D1DE28C0C5BBC209C6B679DACA02FDF8459DC10FB837E0DEBB + 3F468FF705856AF9B6747A1D7B0FEFABED4BCBBB07DAA0DE9A23322A22BA7531 + F8F58E7344D8F6F95A407D16493E1636B7109FCF9E8B4F6843D05ACB2EBC0FDA + 4037B0D2D9B81A1B8347BC7BFB4805B71A05B8887E9608A52FD03EE21DC1513A + 83A522011EDD61910A4E036D248D8C410B185A27EA78FCD8D34DDBE616576280 + 9B23C27EBB802C5662EBF6C10541BF1361418B0C2AA8B623870EE2699D0893FD + A760AAEFE8961D37B3FC321E1E56F2909292025EC5DD1B6CE655BF9654D7FA31 + B6BA259788505DC884C7102F8C1BEB0D17677BAD5AFA1C0FE8E3A2ED4B4AC906 + 33350325F9D9E86AEFF4A281FF7C626A72D46DA3005B53DD2A2A2CC0919F0F68 + B219EF315EF0F7A1C1CEC6FA9D571089254862E6203D838D92C21CD037AD45BD + 4886C80BB1AA2A5EE9C8FCCC144E8B80ADAD6EA9214F061F4637C78FE04A9E2E + 34F208EBD3AB07BA75E9880E1D6C20143691A120C0BDCA2AB0F3EEE2414529B9 + 28CA41DFB20E7E13BC216814E34C780C820FEDA956A8A4DE353C1ECF20A029D5 + 2D7E6D2DA2C2CFA2B0A000F66446DDC94046AD90CBAE7773E83962D6F4C95D3E + F51F87E29272B0B20BC8FFAA713526B28A841CAB0FD22CD52DA9580051DD6334 + 099E42216D82522E01B59D352CAD6C60D3B11BEA79659A77126FFF79833A76EE + 9CE7D1C7955A52760F0E0E4E70707402BFE6D13B21FFF5E2D1E051BE439FD53C + 8CEBD4C5DED9D5BD2F1C1D9D0D42BE97EA96A3632F178A95653A09D9A325C8F7 + 567E3316F2BDD6078D817CEF05CC9620FF060FF9AB155268FCB6000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Find_-03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006C94944415478DA + D5980950136714C7FF014154AC048B085215C10B8B60190E6D51E32DA2ADA5D6 + 7A50BC75D48A3A0AA2A65647ADD6D18A17476BDB7104C41B14104529106E881C + 725FE192240A2610620890ED069D800D8424A4B57D93997CBBF9DECB6FFFDFEE + DBF73D0ADEDAAA837F100107DDC1E68BA1493B743E144147D750D4F59739AEDC + FF1BE14FF790011EF20D561BEAB0E74AD9F8877321083EBEAEEF802BF65D26FC + BE9702B66A4CBD0E58F242434EACEF3BE037DEBF1097E86BC069D4346010AE9D + DCD877C0E55E81C445FA5A709B340C78F62A427FDAA419408D9275318D00FE57 + EDFF03B83B20B6AF4BCC10B561E1A56D34C13F06787AD34CA84329F5B91E5784 + F4227692A88D98AF4948394009A19E9031CC4AF08562A414D46914520EB04DA2 + 1EE0D3520E5E3589D0286C4572C1738D41CA018ADBD503ACE6F2D14002768164 + 0A40CC0FDC4C7BA911C05DFE4F88339B69686995741CEFFB3556E9202736D020 + 6C11770076428A9194FF3CB759209815B867B1DA9032C09D7E31C4CF5B66E3F5 + 5B4055ACB4AC02C9C92960A46482CDE182CFE7437FF060E80FA102030C5FD6E5 + 31E7A6274566F509D0F3E223E2ECD6396816BF01F4098CE9D55924E0A32A3711 + 4D2FAA31CC6424A84387416FE020E8EAEA412C1641246C06AF9E0B4E5D155AC5 + 2D7724AD92BD994951656A01EE381F4DF86E9F07414BBB528E99CC2C1C39760A + 86C347C2DCD20AF68E76183DC218D40F0660D080FE10085B505A5B8FE79C0614 + 3DCB4545491EAA4A0B9BDA24ADCB98090FA25506DC7E2E8A38FFDD0234BE7E03 + B83FB0E7187C6E0DCAD2A23171B203ACEDA74228D1814422816E3F2D686B5140 + 7E3A72633B991196CDB2058BCD4351290BE98909C8CB4A26DA5BC42EE98CC807 + 2A016E3B1B415CF074014FA85841369B83AD3B76C37CC2142C74758593CD380C + D225C1B47B7E6B4A411B0462843E4845594E2A9E65243611ED12DB744644B9D2 + 805BCFDC272EEE5A8457C2B6370AFA4575EB5096F11006FA03E144734133A9DC + 603D6D52B177E1BA1EBA2FB4EBF896E67FFFB00C68BD6E0033390EE525B97733 + E222972A0DB8E57438E1B77B31EA9BDB7A9C5CC1AA84E72E2F4CA5B9C263951B + 865107825C55A52DE45116C68C1E8598FB61488D8F824824B421EFC71CA50037 + 9FBA4BF8EFF91C2FDE16AC07FDEECB4DAE2B66424BDC84192E6E68850E06F5D7 + EE3E581719DD66D9C84EDD8ECD81D39489F8332115F10FC3515351723C2321E2 + 8052809B4EDE2602BC9682ABA0E4DFBDC70BBAFAC658EDE10E0B3323E868AB56 + AD85C7E780E63009CCC26A3C0ABF85DC4C465A467C84A352801B7EBC49047ABB + C9F624072F85C94DCE8F0D85ADC37458D838424F478B148922AFDCDF6CD167D6 + B27164E23312D00A65758DB87F2B14198C68767A5C84895280EB8FDF2002F77D + 4502F6BC2F5EFAE532384E77C1E68DEE2420F97090F944150D1FA5E4C3C9767C + 472ABB1E1C8CA427E12001158690FDB8EE682811E0F3B50C907EE1B6DCE4C2F8 + 9BA4823330D9E153488B1EA982D29C47A1748EBB0696E6429AC3C48E27585AC6 + 3D492B82DDC79610BD162138281819090FB8E9F191C64A01AE3D124204EC5FAE + 705FECEDED0DBDC1C6F058B31AA6C38D54D0EE8D3198C5B0B7B6C4F33A36AE05 + 87AA760F7A1C0E2202F7AF907516E8E76FCA4DE696E7408F22C6DC455F600875 + 686710058B34CD76AC6C9C9C5D0A076B0BC431D2702FEC0E6A59C52748057D94 + 02FCF6D05522E0C04A85BD99AACA4AF8F8F860DA4C57ACF77023DFB97A2A2998 + 99578149162608F8FD0692E32255CB83EEF42B843F7D956C890FF95EEBD6A136 + 3F0946865438D3E6C062CCC8778351E443DB4E1C2D3B935D5889CAF20A3C7EFC + 18ACB2FC8769B1F7E6F77651B290CA76B7B85C0E7CBCF6C2C2CA0E4B16CD83B3 + 83756FFF21B3C82729888D4B4441560A861A8F78D5C8AD9F1D1F73EDA95280AA + 74B7843C2EB825696435E3087BFB4F30D9CA123AFD3ADF2A5D959C30C68C2CBD + 44888A4D0523310D0564B140F7F204AF598C901B61926A56A15356D2E3F45E01 + 55ED6EE56667E182EF1918998E86B9C50438DA4DC25873330C333480BEBE1E04 + 0211B80D3C9454D42035330F156585E4435102FABE9D983FCB19FC26212E07DD + 81EFE963356D921667368BC55208A84E778BCBE12024E80A72B2B3614C56D406 + 0A2AEAB65671B491C928FBA5AEF30C972C9881BC8212C4A56493BFD5E0DE9D90 + 6A12727A77901AE96E555592C5686A0AF29EE5A0FEC54BF078AF606040C550A3 + 0F512FA480C72A9A22DD93382F5831790895CAB41A67AE5D50540C1393113031 + 1D012EBBB647C87FBDBB653375CE9497ECAA700343633373CBF13035355308F9 + 5E9A47A6A6634652FAF76390901FF506F9DEBA5BCA42BED7F69B3290EFBD3FD8 + 1BE45FD119A415F69A8B9E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006BE4944415478DA + D5980950534718C7FF09080CEA14BC286051C10B50C07AE0858007E05D6B5B45 + 0711EF515BD4691554BCAAD6A35A1115C15AADCAE52D0A788008842304024411 + 30A2082824CA1548C8455E1FD166D4400821ADED377933BBFB76BFFCF6FFF6BD + FDF6A3E09D79059C234E062C44659D445EDF1E18094D6DA7EF7C4579C7D18B38 + FFF3228AA6BE1403176E3D4B846CF52201C51A83B564DB83A210B67B71C70117 + 6CFE8354D05B01B83D305C63A89DBE0B14E51D472310BE7749C7013DFD4E13C1 + DBBC158F585BB6939C68C4BEA51D079CBFE91471226031383C6D03862172FFF2 + 8E03CEDB184A1C0FF001B75ECB80472E20EAC00AED006A95EC3DD30AE07FD5FE + 3F801B42123BFA88694229A69E58E3DAF08F011E5AE1024D289BC75C4C2A02A3 + A8324D2825DCB509A90428233413329EF902750231320A2AB40AA90428956906 + 98F394839A7A21780209D20B5E690D520950DCA4196019B70ED524E07B90CC06 + 10EEA12B5DDF680570FDC9FBC4E195AE104964F2BADFEF896A3B59E6DA17F149 + 346466E580C37D8D7A1E0F865DBA023AFA8DC286BAE0A646D179465A6C6E8700 + D705C713BFAD9A84C67780EAD8AB8A4A9C3C751669F46CF432B58071F75E3030 + EC0C3D3D0388C54208057CD45671C1A92885442CBA2693C87ECA4E8B2BD608D0 + F7F83DE2C8EAC9E08BDF02FA87C6AB1C58C729059B7E1BE61696E837C00616E4 + 2521289835DE1A350D2230D9952064321052119E15E4E3393B1FA54F0BEBA532 + C9B7CC94DB77DA0DF843D01D2270AD1B1A444D6D0E62E6E4C17FDB1E0C1E3A0A + E39D5D307E942D8CBB18404F97021D2A05E40F62A90C8565D5A8A8E6CB974D15 + 9703663A0DF9B9E94493483C8D418BBDDD2EC0B547E388A0EF3DC06B7C0BB839 + B4E5498AF83CE43FB80C6BBB917018E38CDA460286FA5474D26979539A37C91E + 9C1ABEDC6F32E3318A59197894955A4F34C91C18B498676A03AE3912431CF39D + 865A816A0577EDDE87F2D73CB8CDF80A6E4EC3D1D54047AE982A6BFE2E88C44D + 381397038AA09A543209CFD80FAF6725C5CE511B70F5E15BC4F1F5D3512390BE + 5530384EA97323AF1AECF4688C759D891EFDACA1DF890ADD8FE8281FC17A4E71 + 509423E3F3D0B78F05E26FDD003D390E42A1C09E5C8F2CB500571D8A268237CC + 44155FDA6AE7F361117840CBC6D79E5E98306A280CF5A86D09F0815D7DC082A3 + FD603C48A123F96E34CA9FB3F766A5C46C510B70E5C1EBC4C91F67E3F5BB8075 + 6BF02DA5CE45A9D1B0B41A04BBB11341A5B6BEEEDE5772B6B39DA22D3AF9115C + 465A835958867BD157F0309B9699951CE3A816E08AFD5789908D73C05511F27B + 79FBC0CAD6114B7CBCD0CBC850E971B665B1A9F972C0E20A1E6E5D894216ED4E + 252329C6542DC065BF5C264237CD559C49B69EB8A1D49975F74F8C719901CBA1 + 23C84F0A95545139A0A4BCDF4216DD46DB28AAF7E805186D3F50FE465F0C0F47 + DAFD6890802AA7A9B8B974EF2522D4EF1B12B0F573B1B7F712F41FE288E54BBD + D0D9D040AE60B3032A5990975BF8ABE6E0A8F96A8E92EE339EE04B5B2B081B85 + 080F0B4756CA6D2E2339D6442DC025BBA38810FFEF148001C7AE2A752ECE8C83 + 557F6B8C9B3805149D4EAD78FAB0EA347C90A28DC66463C4102BF91619191ED5 + BE35E8B32B8208D93C4FE5B9383C2C0C19592CCC9DE749EE1EF668AF65B08A31 + 728825926899B879E31A5E963CD9472AE8AF16A0F7CE302274B3A722B3101074 + 59A9B3B0A116E5ACFB18EB321D8E631C41D5A17EB8E63E764EDE1A4102FD6DD9 + F9CF6163698A903397909E14DBBEEFE0A2ED1788902D0BDACCCD1C3A7810DCEA + 06B87B4CC5F42963DBA5606E51295E143F434242024A8A1FDFCD4CBCE9DED618 + 05A0BAD92D89908F1739F1B07170848BB3132C7A7FFE4E2D4A8B8E6D075A28DA + 6213329048C68D05B919E86E625EC3E3564D4A8E8FCC510BB03DD92D162B0FBF + 1E38208F669CC639C2C37514BA906F756BC61708119748474A6A260A5874046C + F4452D5F8C884B3764652585A373D312186D02B637BB25A8E580F38481DE7DFB + A3AFD560D8D90E80B9490F74ED62087D3D5D323890A2BE41809A3A1EE8D9643C + 585C48BE146C04F8AD83FB4427D4D50B703AEC1A020FED2997CA444E95252525 + 2A0135C96E71391C445C3887BCBC5C989011B5918A885A2A11DFE969DA67E49C + 196EDD66793823BF808DA48C3CF25E396E5E8B28232127B404A995EC56E98B12 + 30E8649CF78885AAD76F505B5B0323236374EFD903D5022A6A4A0A87359F499C + 3C3CED3E333666DA0CECA75350F404A6A6E630353307B7F265AB90FF7A76CB7E + CCE4616F2A4BA38DBA99F4EED77F10CCCC7AAB84FC24D92D33334B0B8ABE2E8D + 84FCA22DC84F963C5217F29366B7D481FCE4E9B7B620FF02E292AD150D819DDC + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006C54944415478DA + D5980950534718C7FFE146B4022208A272144B71044F90AA788E58F01846AC37 + 8AD663D4167514F0A04A6BADDAF1405484D6B663054445053944411A88404C44 + 4E01B9C2A12431C8154248425E5FC4462D0209A4B5DD994C76DFDB6FE7F7FEBB + DFEEB71F05AF8BD7C1CB44E8FE95603789A0CA72F0EC755C0A5C4DE9ABBDDC70 + 4DC025E242C02A1250DC3970D0953E4305FA2C97D70F9DB98ADFBFF3EA3FE0AA + 03BF11A107D6A85EC1E028841F5ED77FC095FB7E21155C2B073C1814D167A840 + 9F95F2FAA133918838B2BEFF802BFC2F1221DFAC954FB1AA4A20F9A1914737F4 + 1F70B9DF4FC4F98075E034AB1A301C578E6DEC3FE032DF30E25C8037B82D2A06 + 3C7D1951C737A90650A5646F159500FE57CBFF077057686A7FA7982694E0F3F3 + DB66F1FF31C0139B66A22F94329BABD412304AD8194209E1AA4AC82E8052A26F + 42266757A149204256519D4A21BB004AA47D037C5CC641438B10CD0231328B9E + AB0CB20BA0A84379C0D2F24AC425A522FB712E783C1EF82D2DD0D0D29148C4A2 + 5CA243920809A219190939FD02DC79E13E7172F32CB48BA5AFDAFE3FA7F66A2C + E43781959B8E666E358C4D47C26088317406E8414B4B0722911042412B1AEBB9 + E0D455432C6ABF29154BF73CCA482CEF13E08E9064E2D49639687B0DD85B6166 + E7E0D0E1E3303419094B1B3B383A4D86A5B9310C3ED285D1205D34B50AC16B16 + A096F31219343ACA4A0A505D56DC22918A9766A7DF49521AD0E7DC3DE2F4D6B9 + 68157502EE0D4BEED6A8895B83D2CC047C6AEF0807C7A96825B448E792424B43 + 0DDB164FC2B37A3EE9D17510B44B2026970CF90AD2B666E4D06928CCC9243ADA + 456E0C5AC21DA500BF0E4E2282B6CF03BFBDA347833A36075BB6ED8285ED78B8 + 2F5A0867071BE869AB415DEDDD3D5FD22145F9F346D4932ACAFC4E36EED3B21A + 94E566A280F9A085E8908E63D0E22B1406DC7E269108FE6A3E9ADB3A01F785BD + 7F164AE97730584F17CE73DC2120951BA4AD0EB5BFC1BDDD5A32732C784D0274 + 9094898C7250F83C64675251519A7F8B494DF0501870DBE978E2AC8F1B1A05DD + 2B5859C9C2F69DBE983A6B01D6AEF684B1BE2E34D47A3F2D65FB8248D2811BD4 + 02588C1C81E4B818D0D31221140A1CC8F598A710E0D69371C4B99DEE6810483A + 150C49ECD2F979091314611366BA7B424CD126A756BD5BE5FE6A2C9D6D2F7F14 + 9D5A004787D1F8239D8EB4BBB1A8AD2C3DC24C8FDFAF10E09613B144C8AE85A8 + 6F9574DB79C7CE3DD01C68022F6F2F589B1B41535DB9582326BD103327DA22BB + B806F762A391FF88F6909916EFA410E0E61F6F1117762FC68BD701EB8190B82E + 9DF35322306EB20B6CC63B4347538D34A6BC47BA779B6ED3C6C8EB89194F3083 + 042CAF6B465C741498B42436831A6FAA10E0A6633788505F0F707B08F9177B78 + C2D1C50D5B3679415753E61C5DE3B59ECEA17BF46238D9DBBC72C4AB1111C8B8 + 1F0B12B0C76990BFFCF287EB4498DF12F99DE4C0F9982E9D9FA446619CA30B1C + A64C23B70E523F0A05321FA1BCFA75D6DF1E58063B6B922D08320091C520298C + 124C18630D619B1011E11160A6DFE132D2124C1402DC70E41A11E6EF4902767F + 2FDEBDDB0FDA834CE0EDBD0666C38CA06C497F5C864963ACF0BC8E8D2B1151CA + ADC1F587A388D0BD5FC80103CEDEE8D2995396032DA21DF3167840DF7048F783 + 52DE48E9EC602DAF67E555908096A0D21EE276CC4D3C633D3D4A2AB8572140EF + 6F2389D07DCB7ABC17575555C1CFCF1F9F91FBE046AF25D01BA0A39482CC4216 + ECAC8621F4D76BC8A42628B70FAE0D0C27C2F6AD9067160282AFBFD7A0B68006 + 2383C170993D17D65616DD8CF6A63ACE7694FC416E713558E51548494921FF9F + DC7D987ADBB5B78F920FA968768BCBE1C077CF6E58DB4DC46277574C771AABB0 + 82F1295948A5D2509493852126C31B9AB9F573D292AF3C56085099EC566B0307 + EC922C329A7182A3E304D8DBD94053E3CDA9F2D61284ADD570F005ED48BC4F47 + FA033A8AF2E808F0F54163AB0891D762A435ACE2293919298C5E0195CD6EE5E5 + E620E8D4490C35B380A5B52D9C268EC1682B73181BEA63A09E0EF8643CF8E265 + 234A2A6A417F5488CAF262D2294A11E0BF03AEB3A7A3A945808BE1371174E2FB + 5A89B47D3A9BC562F508D897EC9658D80A1E2B1F227E3D4CC8885ABF87889A0C + FF93869A8E9AECB1609EE1A2F9335058540A6A562EF9AE16B76F46D690902EEF + 83544976ABBA8A8587F42C14E6E781F7E2051A1B1BA0AF6F00A3A14351DFA686 + 86CAA2F1B23BC9F4F92BEC071B1864DB8DB6542F2A790A53D3E130351B0E2EFB + 59B790FF7A76CBC179EE781EBB3A56DFD0C4DCF2E34F606666DE23E407C96E99 + 99598DA4686BD048C811BD417EB0EC96A2901F3479A408E407CF6EF506F92720 + 7FB6159082BD940000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006C84944415478DA + D5980B54936518C7FFDB0414B5505302D1B8788B65A42978412E6A8279CB9365 + A284A6A9C734D453DE27616662C7F28E506A2917F112825CBC8008CCC1185751 + 01014110D950606363ECC6BE3E067DA70E323E60653DE7ECECBD9FDFFEEFFBBC + 7BDE878136F3F10F2582772C8150A2D2D539472FA1BBF6ED86455479F7F1CBF8 + CD6F29A3BB6B51133FF50B2182767A51808632BF639770D67F59CF01BD396789 + 939CA524A0BA75E1C3E7BB0DE5EFFB0955FEE6C8059CFBF6D39E032EDDF52B11 + B4CBDBF00A1E8D40E8DEE53D07F4DA719A54D08702F43B1CD66D287F5F2FAAFC + CD917084EDFBACE7804BB69D220277FB505B6C28F3277F68F8FE953D07FC64EB + CFC409CE72881A0C0D188AF3019FF71C70F19660E23867056AA406063C148288 + 03AB0D036850B2BF984100FFABF6FF01DC1C94D4D32DE62A34987DE20B77D93F + 067870B51BBA43D932E74272110445429E4243781812B21DA096E89E9009D98F + 2191AB905E506D50C876801A6DD7018B4BCB10117513F9F9F9A8ABAB43A3B4A1 + A559446A5B46CA9B000D2E0B7871B906015435D307AC7A2A4460F019DCE16761 + 88C5700C183404BD4DFBC2D8B837542A0514F246886B6B20AAAE805AA58CD4AA + B55F67F1E24BBB05B8E9E42DE2C735EE50AAB5BAFAB65F92F44E140B2B509416 + 8BA1C36D6133920DEBD1F6D0102CCC9F3A1A46462C48640A88A54D103D1783CF + 17A0B4E81E2A4A0AA51AADFAA3ECD46BD7BB0CB8313081F869ED0C34B501EAB3 + ACEC3C6CE5ECC598B18E70767387AB231B66FD7BC398C5008B09F43162EACEA3 + 58A6C473A952F75D51F914776E27E17E6E1AD1AC54BD2FE0C65DEB12A0EFF19B + C4A17533D1A86A05DC1E9CF0C2098A4609EE2546E0CDB72762DCD4E9102BB4E8 + 6BCC422F56EB522BE78C47D57329724A84E46E34EBDAB4E49232A5160DF5B528 + C94DC3BDCC3B52A259FB8E801BFB8836E09747AF1387D7CF22176AD63BC16FCF + 7E54D634C073DE4278B88C47FFDE2C305F70DDAB9BB528AB96A08EDCE6166BB9 + 1C728A452064CF909D968C47C5F9573293E316D2065C7F249E38BAC1130D4DAD + 803B82DB1F13B9A41645DC2B98327D1E86D8B161D28B4929D76EC1B6CA026736 + EA1AE468F13D5E7E39DE186685849828F053E2A150C81DC8F3789716E0178762 + 8963BEEF432CEF58C1B321E1B8C5CDC4875E3E709DC886A909AB3301285391DB + 1DC37B80896347E1762A1F2937A2F1A4AC785F666AEC4E5A80EB7E8C218E6F9A + 837AB9A655C1C0F876830B532361633B0A0ECE33C1643261C4EAF8AF9CC168ED + FBC0854DB545A53E80EBBBA3915D58899BD197919FC5CDC84C8975A205B8F660 + 3411B8791E6A1B351D0EF65AB61C766C27AC5AE98D2166A614045D8BE515C075 + FC2894563720E6720432B9D78582E4580B5A806B7EB8429CFC6A019EB505ACBB + 0263DA0DCE893F8DC96E7361E7E00813523D26E91DFA18C95ECC9A3486AADFCC + 2882E3D811BA737E212C0CBC5BD12001F5FE4AAA7375C0EF44D09685A8D113F2 + 7BFBACD029B8669537FA9AF6D1B5B5783083D1BAA50CFCDD49883F3FA40BB778 + 71A2E021C6D9DB42D1A4405868183253AFD50852E2CC6901AEFAFE1211BCF543 + EA4DB2EB4454BBC1C5E931B0B31B03E7191E60F432029D855DC68FA4DA52734A + F02EDB164FAB85381F16D1B533B872DF452278DB2212B0E37771484828781977 + B168F1124C9BE4F077A968585A7E1926D85B23999B81AB5191A82A7FB89F5470 + 3B2DC0CFF6461041DB3FA60039C77E6F375821ABC7E3EC044C719F8B49539CC8 + 33C8EAF40C4E78CB9AAA67DD7F8C376DCC1174E622D292E3BA760FAED8134E04 + ED58DCE9BBF887030720AA95C173F66CCC796F2A3DE9DA2CAFA8026525A5484C + 4C4479E9831B1949573D3A9B4301D2CD6EA99A6428CFBA01FB771CE1EEE682E1 + 56ADB744474A8E1D398C2AC724A62329998B82DC740C321F5ADF50533B2325E1 + 7C0E2DC0AE64B7EEE6E52120204017CDB8383BC1D3DD09FD4C4D3A1CDF285722 + 2E898F542E1F0577F9E06CF185B85185F08B51DACAF2C249B9BC4441A7805DCD + 6E35D60B515DC88795F50858939EEDC01E09CBD707E3957E7D60626C04A54A0D + A9AC09F56209D2B3EEA3ACB490748A6270B66D84C7F4699048E538151A89C307 + BF7BA2D12AA709CBCBCBF5027627BB251289107AEE2C727373614E46D4667A22 + 6A8D5A757DB0C51B1317CE9D3570BEA72BEE171423393D8FEC7B82AB91E19524 + A4CB8B200D92DD529231A2ACB60A4D921AA81564E4A256C0CC6C005E1B3C1875 + 0A26EA1E158C6B79934CF35CF2F6AB030664DB8FB26115143D8485C55058580E + 458DB0AA43C87F3DBBE53079E6B8E7C28A68B381E656362346C3D2D24A2FE44B + C96E595ADA0E6798F4E29290C33A837C69D92DBA902F35BB4507F2A5278F3A83 + FC0329F6BD158F67F2560000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006CE4944415478DA + D5980954136710C7FF1C028A551091028A208A8A56F042D407D6A34215F559AD + 6705C57AD40B0F443C00A9D66AFB3C11115AB555015111450E41D006902B8106 + 504E817008098862202117D92EE08B5A0806929676DEDB97D9DD6F26BF9D6FF6 + FB6647096F65DDF7C184FF81E560BE114291E2E57B07573C572A75D75E62E8E4 + 1D48041C5849020A5ACF3D7C6E771BEAC8F6A512DDD33714BF7BAD961FD0D1EB + 3AE17F7095045051E275FE36AE7A7F233FE01A8FABC4458FD59229F63A7BA3DB + 50DE2E2B24FAE1733771ED88A3FC80AB0FFD46F81F5AA3F808FA8420F0E85AF9 + 01571DB84C46D04902E87536A8DB50DE2EAB24FAE173C1083AE62C3FE04AF74B + 849FA793C2DF626FF241838FAF971F70C5BE5F880B1E6BC1622B1A3010374E6C + 901F70B95B00E1EBB10E350D0A063C731D213F6D540CA042C9DE138500FE57E5 + FF03B8DBFFB1BC539CC413E1CB0B5B6736FE638027377E8EEE50B6D8DCA41480 + 5AC04CE689083B4542B60314135D472C7A5E8ACBB7A2919F978B5A568D50C8E7 + AA929E99A4F332923E0E22845293A3E80A01148965077C51C5846FC0153C49CD + C0207D2368EB0C82461F4DA8A9694020E081C7E5A0BEAE06ACEA720805FC30B1 + 50BC372339BA582E4041B36C80D40C3A3C8F9CC0003D23988C18036BEB49301E + 3C083AFD34C1E50BC1E6F2D1C0E1A1A6AE1EB4342A2A4A0B50FE3CBF4124167E + 9D99F820A6CB80BB2E3E224E6D9A09BE50DC7AEEFEEB63A946F5AC72143C89C0 + E87156B0B0B6010F6A682623AFAEAA84AD0B27402012E10D4780D78D7CBC6A20 + 0FF237E75921CAF3B3F08C9E4234F305F3A849510FBA04B8D32F8E38BD79369A + DE024A93EA6A16366CDD05E391E3B160D1424CB518014D7565A828BF5BB15A40 + 1B9B0468686A89A4006C0E9FDC4205C82D64A0889E82A7B4270D44B3D8929A14 + 592233A08BEF43E2CC9639E008DA00F707C47568509812897E7D34307DCE0270 + A08E4F3454A0A2F40ECED1DE0255758DC82A6641F0DEC3B6244E551D07049B85 + CC140A4A8A72EED228518B6506DCE113439CDD36178DFC66A9834B4A19F86E87 + 1BA6CF74C03AC7A5D0D3EEFD01DCFB22128B51C6649353DC24B9F6BCB20E4683 + 0D1017710F6909D1E0F1B816643E66CB04B8ED5C34E1B3DD1EECA636C00301ED + F3B8322F1DE0D663D68265102AAB43534DF943671DC0CE9F360AAFD8BCD6E52B + 3DAF0293C70EC71F896948880D476569D1315A62E4419900B79E8924CEBBCC43 + 3D577A04B7EF7445AFBE7A707276C270C381E8A522DB4ED932BD425133A2530B + 603BC10C99F91578181E8A9C8CA4745A42E4149900B79C8A207C77CDC76BAEA8 + 2D827ED1ED0667C75E83C5641B984D9C0E0D55E50E23D616C977BAC37473891E + 999C4F028E4071351B11A121A025C530A994487D9900379F0C27FC762F401D47 + 2475B0C3C225B0B29D872D9B1CA1A1A62235FFA4496C7A01ACC69AB6A6D1CDA0 + 20243F0A0709D8A913C9CD4D3FDF252EBA2E42EDDB82F5905F44BBC139F141B0 + 9C6C0BCBA9B62008A5566BE5D643A9356A2D11FDFBBFCD9C64468E25D0B2413D + A215C172B409784D3C0405068196F8A0869A10A52713E0C61377087FB7C5A8E9 + A4E4DFEDEA063532079D9DD7C0F0D3819D87AB830D29915E8C09E626A8AA66E2 + 465048D772F0DB1F6F1301FB9648BE490E5DB8D76E30B32813BD9A9B60E7F015 + B4740676E0A5BD4C1B672AD153724A30C9DC1894A474DCBF1786178CC2E36404 + F7CB04B8FED82D22C07D69EB8A2F4D188C32B8EE75C734721DDCB87629347BAB + A32B42CB2DC368633DF85FB985144A54D7D641E7A32184FFFE6512408FF3773A + 3428CFA640A77F7FCC98F5054C871B4B77FCD6B3E5A8A1926B59F9E5287D5E8C + F8F878308A7363D31FDFB7FBD843490065ED6EB1582CB8EED90353F3895834DF + 0EB6533E93398291F169784449441E3D153A7A86AFD93575B313E26EFC291360 + 57BA5B9C574C54E53D21AB9929B0B29A088B3123D04B55E53DA7EF9272D4307D + 3492A557F46372F7484A435E761A3CDC5C504F563BC1B7EE892B18F9D6F4E478 + EA4701BBDADDCAA2D371FAD449E81A18C3C47414AC278E81D9B02118A4D31F7D + 357BA391D344D6826F50585281D48C67282DCE275F8A2278B8EF84DD2C1BBC69 + E0E2526018CE9EFCA15224E6DB30190C46A780DDE96E09788DA82DC906BFE125 + F4C88A5AAB938A5A2414C4E8EA0F9DBCD861EE8085F633F02CAF0894D42CF25E + 25EE8705579090B61D412AA4BB5546FA4D4B4BC5D3EC6CD4D6D6A2BEFE35B4B4 + B4A1ABAB8B3ABE0A5E15E78E6FF926B1B15F39AEBFB676A6B999894A5E4121F4 + F50DA16F60881AE60BA990FF7A77CB62EA9CF12F99E5E15A03F4069B0C1F0903 + 83C19D42F64877CBC060989192BA6A120939E463903DD6DD9215B247BB5BB240 + F67877EB63907F0174E5C6158803A59E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006D14944415478DA + D5980754935714C7FF01518EA8152D72405410F704AD8056B0E002ABF6689DE0 + DEC751D4533788A855B447EB4284D62D202A0E64384005A2080918B408880C19 + 12A24080246491AF2F803945088424ADED3DF94EDEB8EFE697FBD6FD2E0DF5B2 + 6C7F08E5BF630E4A2AC5B575CF5337A1AEEC5B3F5351DEED7B1BE73CE6D2D4B5 + A518B8746F30E5BF732ED81512B5C19A122FDF9B38BF7BBEE6808BBD03A9809D + F30960BD074FDE501B6ADF86598AF26EDF505CF472D31C7091D715CA7F97AB02 + 505BE275EA062E792FD01C70A1E725EA8CA79B628ABD8E5F551BCADB7D9EA2BC + E7C4355CDEB7487340378F0B94BFC742ED7BF0640802F72FD11CD075E739E2C1 + C50A40AFE3416A4379BBBB2ACA7B4E0423E8C032CD01E76F3F4BF9ED5EACF55D + EC4DFE68B0CF72CD01E76DFB9D3AEDB9849C83DA060CC4D5432B35079CBB3580 + F2F55C0A4E9596018F5D41C8E155DA01D42AD9DF442B80FF55F9FF006EF67FAC + E914D38552B89C5EE7C8FBC7008FACFA0EEA50BE799B03DF2BE178C94AE109B8 + 1FF9140523D0A81262FC1D31180D294219CF22595A019451AA2316BD67E394FF + 79D09F27A39B494F1876ED06FDF60668DB561F62B11042011FDC520E4A8AF321 + 118B6EC924B22DC9CFA2B2350294CA54036424B3E0B1F710BA18F78445DFC1B0 + 1BFD0D2CCDBAC1B09301DE97F1C11788C0E5552323BB08A585D928C8CD44FEDB + 8C2AA94C323B25FEDE7DB501C5352D03325352B165D73E0C186A030747478CB3 + 1D02C30EEDA0D74607E4830F5C3E2AF86270F904922F417A41394465C5C8497F + 893456025523124F61D023EFB50A70D39947D4D1D58E104964B5F5ED7F3C6E72 + 80905781D4874118386C14468E7502574483415B02A65B676A858B15B1214155 + B50495023178D5F24782B4820AC804E5484D7A8A3F994FABA81A9915831E91A3 + 32E046BF68EAB735E3515D0FA84C3CBD0F22BFA4122ED367C2D961043AEAEB42 + E7B3C3AA2D71631D98B81654FECD17490924173C763E5212629193F5EA363336 + 7286CA80EEBE0FA9636B27802FAE03DC1110DD485950F111E9B1A118E3340DC6 + 7D87415F8F46A6B4219DEB846128266BF0552E0712694D83BE4A9E103DBA9B20 + 3AFC0E12E3A220140A8693F5F85225C09F4EDEA78EAF9F049EA846A9F285CBC1 + 888E63628EDB6238D80C86413B5DA5BAD21A19F239952827509F7E28B7A80C23 + 8758E2497C22E21E84A13037EB00333E62974A80EB4F4451273738A3B2BA0E70 + 6740E38D96F6E4062C2CFAC1DA6122747474A1A74B6BC252C3EA649BFE04B21A + F2C32139B310F6567D919251808761A178954C4F62C645D8AA04B8EE580475CA + 7D0AB802E51E9CEBB60496836DB06AC52218756E0F9DFA76550E26F9743F6464 + C1DEBA2FB28B2B111E1A0226FD3E9B111B61A212E0DAA3E194EFA6EF512E90D6 + 79D02FAA91724A7800ECBE9B8A3ED67668A7AB43BCD8C4654EA335303ED9AEBF + A2FE20F10D460DE95D3B4BD78282F0EC51180860B3F180A273CD9130CA6FF334 + 94F2A54A955D17C83D688B352B17C1A0BD3E61A1D5EE60DAA7A78931F28B49FE + C86FA818E65B580D3087B05A88A0C02030E3EF71187191C62A01AEFEF53675E6 + E71FF0A13E60F5F00B6FA49CF9340CBD2DFBC37EA23368BA7A4D1BFACC930ED6 + 968AA678560E460C34C7FB6236AE0685B46E0DAE3A7493F2DF3A039C6642FE4B + 9703F1342915B3E7B9C2DE76385A2B09AF723172602FC4D29370F7CE2D14E5BD + F1211EDCA112E08A8337A8806D3F2ADE493C4EDF69A42CAC2A472EF31EC6384E + C5E86F479335A8533BCD4A8D93AE5183CC1575C6EB771868DE0DFEE7AF232136 + B275E7E0F203D7A980EDB314C92365E2E37318EC8F3C38BB4CC1D449635AE541 + 56660172B3DE2226260679D9AF1F243DBE3BB9A5310A4055B35BE26A1EB213A3 + 30C8CA064E8EE3D0B3874943439F591EDAC74CD1141E9388474FE291CE7A8EAE + C6DDCB2B39A5E3E3A2AFBE5009B035D9AD54562A0EFAF8D44533636DE1E2688B + 0E64572B133ED9B5918FC8ED414F44FACB44786E7527518E18C1D7EFC80AF232 + EC58CF62182D02B636BBC523E1D3FBD7093033B784B9E500580DE90753E3AFD1 + A9637B12B0EA9180954434E40629E372F19C9986DCEC0CB229B2E0B97D23263B + D9A3A24A80B381B770FCC82F855299C89E9D9797D72CA03AD9AD9292125CBE74 + 112F5EB0604C22EACECD44D45289F8BE9149AF5133A64EEA32DD791CD2D2B310 + FB3C95F415E2EEADE00202E9D014A456B25B421E09A34A0BC12FE7402AE2434A + E03A1B1AC2C8C80865C23628CD4EB396BF93D83BCF1FF695A161CAA07E16BAE9 + 996F6062D21D26A6DDC161172985FCD7B35BC3474FB0FEC8CE0FEBDCC5D8CCA2 + 4F7F989A9A350BF945B25BA6A6BD7BD2DAB5A113C81E2D417EB1EC96AA905F34 + BBA50AE417CF6EB504F917B90CDA152CCFB94F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006E44944415478DA + D5D8075453571807F07F084BC10A284610078A85BA908A832A56D4A2B5B8B756 + 5169D55A14B44E04916AADB66A554446EBA80A885B045C0C8188201122431004 + 83AC10C42084242421AF2FA8510F2B2439B5BDE7E4E426EFDE7B7EF9DE7BDF7D + F92878D35CF65C2082B6CE41458D08EA6C5EC7C271DC632E45D9F9F2892B7687 + 1181DBE6C9815E472F2B8DDAE53A4BDEDFE17715273CE7AB0E5CFE732811E831 + 1FEC5762B5454FD6BCFD2EE3E48E85AA039D7D8289208F8524F04D047D2F2A8D + DAB5768EBCBFC3EF12FEF65EAC3A70A9F7592270FB2239505DCDFBE8459CF6F9 + 5675E012AFD34480D762F929F63E7C4E69948FDB02797FE791F338B36BA9EAC0 + C59EA78840CF25EA8FA06F1882772F531DB8C8E30419416739D0FB7088D2281F + B745F2FECE23A108D9B34275E0C2ADC709FF1DCE6ABF8B7DC81F1ABAD74575E0 + 822D7F12C7BC96917950DDC0609CDBF7BDEAC0F99B83083FAFE5E0D4AA1978E8 + 2CC27E5BA91EA05A65EF35B500FFABEDFF03DC1018A7F429E67139A828CC2C2E + 7BC26413909A81A0D040212AC8C58B40201A125C4A4D8A62AA0C3CB0721CDAA3 + 2C2D63C337E024E8C90C7433E905C32EDDA0DB510FDADABA10898410F2EB505D + 45E2CB9F432CAABF22154B373D4CBA51A012504A28467CF09089ED3EFB6044EB + 05F3FE036167678BBE66DD60D4590FB9C55CD4F2EB5150FA1254512D4A9E15A0 + 989587E74F736B2552F1DCB4C49BB794064AA46D0353D31E61A3C72E580D1E81 + B10E0E7018350806FA3AD0D6D4005503785ACA450D5F4422C578C6A903AD8B21 + 1E3F4AC3D39C4C6433EF130DF5A229A9F4A89B4A01450DAD03CBCA2BE0F2833B + FA58DA60FA8CE9B01B6A013D1D2A489BBC71AAF9244E049E40047EBD0465557C + 9898D090959189F4143AB218F76A8906E9D0547A64A1C2C0F501B1C4C1550EA8 + 174B1B3F6FFD2BAED909B9F7AEA353071D8CF96A2A04940ED0D7A5824A79970C + 9C1D07936B481A71B50271E3BB40867CC947775A37A4242521ED7E3C0AF333AF + 32E2A3662A0C74F78F26FE583D018237C0E65AE1331656BA6EC2E8F14E70719E + 0B9A4107F29436CD54DA540AEA84244EF81A584742F922094AAB7830E86C88E8 + 886B4849B801A1906F4D5E8F190A01DDFCEE1087D64C449DE835705B507493C1 + C5D9C920EA5E62E2F4F91069E8424F9BFAE162E46AF3C60D049BCB47765125C4 + E2860F0EF2F8420C1BD01777135390703B9CBC79F2F7301223B72B045CE77B8B + 38ECEA085E7D438B83D7ACDB084D3D1A96BB38C3C2AC2BB4A82DE77989548A12 + 4E2DAAEB84F2EF8ACAB918435EB369B9C5B8137E09990FE90F180991231502BA + 1EB941F8AE9D8C1AC16BA04750D34C901E750AD6C3ED61656B0F1D6D0D68BC9D + 4E696151B24DB0B540354F08597260E697628CB5050ACA6B1071290C0CFA2D76 + 6A7CA48942C01F0F451247DDA6A09ADF7204BF9E3A0B23C64E81EB6A67E86A51 + A1A1A1D85E29CB0B624903EEA617C27680796310CE87842029361C24B0D525E4 + 07D71C8C20FCD67F032E5FF23A82FE379A0CCEB87DA6318236A3C91D87A0345E + 73B29706E56D9FD2043C9E8CA02CF7CB3680184601AC2D7B432810222438048C + C49B9CD484289A42C0D507C209FF0D535155276971B0FBFA4DD0D2A7C1C56529 + 7A74EFAA40EC3E6C89CC42D858F52673291BE742C2DA770DAEFAFD2A11B0713A + 2ADF3CB07AFA4734195CF684014D091F93A7CD864197AEAD2CFA2E8E7643CCE5 + FDE42C163EB7EA8578FA035CBF7605A5ACBCBD6404B729045CB9EF3211B87926 + 38AD3CF2B3584558BF710BBE7070C2AA6573A0D751B75D11643C7E0EABDEC608 + 3C7901F7E3A3DA9707BFFBF52211B465B6FC3F89E7B16BCD4E2862C6C1E8934E + 1837C111FD2CFAB4B41CDE6E2E36963DE5DF31F34A5098978F989818B00A1EDF + 7E10777D525B3F4ABEA2A2D5AD8A8A0AB8BBFF847E03866186D3248C1D3958E1 + 0846C4A420F66E227298C9E842EBC1ADE1544D48883E97AE10B03DD52D5E5539 + 4AB2E8F86CC8088C1C690BEB81FDA1A5F96E57796F6B8695B969E30E12154BEE + 1EF414E464A4C06BB31B99C04508BD704D5ACCCA1DC54C8A496D13D8DEEA1693 + C9C481FDFB616CDA07E6FDAC30CA76102CFB9AC1D8A833F4F53B80C713A0F2E5 + 2B3C292C4632231BCF0A72C99B221F5E5BDD3169BC3D5ED5F2713CF80A0E1FF8 + A54422ADB767B358AC5681CA54B744021E3805E910D65482463E511BB4F2442D + 118B6E199BF41E3ED3C9D168DAE42F919D938FF8E447E4B1125CBF125A4C22C7 + 3687544B754BB66E4AF27D646464A0B2B212D55C2E0C0C0D616C6C0C6EBD165E + 3CCDB291FD27B19FBC70486743C3B4019F9A53739EE491CF883D6062DA031C76 + 698BC87FBDBA656D37D1E605FB79B88111CDCCDCC212A6A666AD223F4A75CBD4 + B46F2F8A8E269D44F66C0BF9D1AA5B8A223F6A754B11E447AF6EB585FC0785EC + D815B751D48A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000007094944415478DA + CDD8095093671A07F07F12050BE358EC20E5302258A01E05DA552A1644EC7A50 + BBACD6169156B1DD55C7B58B7576AD221159ADC7EED8F54284AD76B102E28522 + A056D092A4221220880A0B021144120E09E4FE12F2EDCB615A872B2499759F99 + CC7C5F78F37E3F9EF7C89B8781BEF8C3DEF374D2D71F41D2A9EDB98F397619A6 + C6EE0DA1866B4E4226BEDBB69C616A5F860F7EB1E71C9DB47539015226C3060A + CEB14C9C88FED87CE0E7BBD3E9C46D9F18809CA3174D46EDDAB8CC70BD23FE12 + 4EC684990F5CF3B7343A313A0CE20EADC5B2D71DB1F117F1FD8E70F381ABE352 + E8A4E87002ECCBE091F326A3767DB9DC70BD23FE02926323CC07AE8A3D4D276E + 5F69005A2A628F9EC7A9B84FCD077EC639451FE744188638F6D019935171512B + 0CD73B0F9FC50FBB56990F8C88F9379D18F399E53378241D29BB23CD07AE8C3E + 4932B8DA008C3D946A322A2E6AA5E17AE7E134A4EEF9DC7C60F8D61374C28ED5 + 165FC571E41F4DDBF785F9C0155FFF8B3EC689347C93580E988233FBFF683E30 + 6C4B121DCF598366998581074F23FDEF6B2D03B4A8EC576111E0FF6B580438D3 + 3FC447CF622C6532E90564182681663880414B48E78F4123173A5C28BA9D2334 + 0BB839F1D68887582D97A2AE948B0EC9634C7064C3EEB5091863630B2BAB31A0 + 2835D44A05A46DCD9034D5434B6932F45AFD5F8B6F5FAD311978606D108C55DE + 1508111DB70FE31DD898FCC634CC9E3D13EE132760FC385BDC79F814A216395E + 1F37062D4D4FD1505783065115EA1F55CA747AEDC725BC6BD74D06EAE9E18945 + C565D81CBD0B5E33662130781E82FDA6C36EAC3546B39818C5048AAB2590ABB5 + 687AA6C2F4292E6820D8FBA5C57854518E07C202BA4B438514F173AE9904D4E9 + 87063E6D9260CDFA4D70F5F445E8EF4331C7770A6CAC5818C5FAA5CDA34629E4 + 2A0A4A8D0EAD9D6A04CE60A3AA5983D2D2329416F2715FF0B38CEED2FB14F1B3 + 6B470CA4BA86066EDFB9178FC51D08095D86C573DFC1586B1698CC17DBB44A15 + 90A9B43D4895A60BCD1D4ACC99CE466D2B053E978792827CD456975F12E4E72C + 351AF8D5F19BF4B7EBE641A3D5F7DC6FFDEE56BFC60A692B1EDC3A0BFFE00FE1 + E4E903EBD10C32A42F6E0411F3A7933E743DB8EE615610A88AD241DCAEC42C2F + 173C6C942137EB320AB957A1562BBDC97CBC67147053422EFDCFF5F3A1EA030E + 14274FA5E246BE00619F4662AEDF34D85A31076C6745E6A242D39D4102EC46AA + 4926A92E8294C36392337EE21582FB63269ED455EF11F0B2B71B058C8ABF411F + DCF03E14542F705B526EBFC6F76FA6C3D5F50DBC1DB4900C2B8B2C0A46BFAE96 + 057A412255A2B2BE0D94AEEB8587C8951ABCE7ED8E92CA06DCC8BC80F262FE5D + 0137DBCF28E09F8F5CA70F6D5C00B9A66BD0C6CB5744C26DDA2CAC5FBB0A13C6 + D98031C436DFBDD81A5B64E824A8E7512F96628EB71B6A9A3A9175211D02FE75 + 71517EB6A351C08D87AFD247BE5C844E552F303AA9FF5655742901EF062D81C7 + 3BB37B869145E61F63D01E7B23C8D70D1D724DCFF675AF568CDFBCE9DAF38CB3 + A9A9B87D33130438E4B799E18F7F3A984D1F8D0A8154397806C32222E14E32B8 + 61DD2AD8BEF24ACF7BDD6B844952F93C9BBF7E1AFDFC457094B60BDC3211DEF2 + 6043AD522335251502DEB5E6226E8E8351C00DDF66D1F15F7D8076A5AE378309 + 57FB35AEE46560B29B0702172C068365F5624783A4722EC9E0F3E009EBE0E3C5 + 267BA9186752D3473607D71FC8A413367F8836856ED0C6C9A74E8377A70C9F84 + AF44809F37461A05F71FE36DCF89C8E7DFC595CB19681455ED2319DC661470DD + 3F2ED1C7FF128A96BE036B4C4256BFC62AD933D414E6C07FDE12F8BFE70F2699 + 878C210E44DD599D397592E15E50510F4FB63D12BF3F8782FC9C91ED836BF75F + A413B72C45F33047FE3D7BF7A3A9558EC5212158F25BFF11655058F504B555D5 + C8CBCB83A8E6E18F776F5D5938DC670C4063AB5B944A86EA822C4CF59E85F9C1 + 41604F1C789760F44DCA19EE4E86F7AEE415E2E64F3C5408EFE03507E7F6CEE6 + B6F9DCDC33A546014752DD120ACBB0FB9B7DBDA799003F7C30CF0FB63663067D + 809CACDA6C82E3F20B5171AF109C2D51902A28A49DBBAC6F1055BE2BBC9D5734 + 2C70A4D52D791B39E795FF0C175777B8BA7BC16786079C1DEC3176AC0DACAD46 + 43436921932BD1DE2E4581E001EA6A2AC9A2A80667EB262C0C0E40874C891329 + 193874E09B273ABD26402C128986049A52DD9288C5484E4E4649A9100EE444FD + EA10276A9D96BA6EEF3869E6D2250BC6FF6ED15C3CA8A8463ED911244D4F7025 + 23AD81200307425AA4BAA596B743D6D20045BB185AB5123A4A053B3B3BD8DBDB + E3196585D6EA72DFEEDF24018BC2DF1A67675732D56332ABE23F5570747486A3 + 93339AC58D8322FFE7D52DEFD9EFFBB68AEB335F1DEFE032798A279C9C5C8644 + BE94EA9693931B9B613D8A4F90138743BEB4EA96B1C8975ADD3206F9D2AB5BC3 + 21FF0B5F3CEB15223F73C00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000007144944415478DA + C5D8095454551807F0FF3088A3E8492224360123914C9443984A489212518628 + 2E688AE69A69A0C7540824D22C2DCB0D11D2340B1077115013546072645FA440 + 1018046466905886D997D71DA28942709899A3DF391C2E33F7DDF37BDFFDEEBB + 8F4B4377ACDE7D9E8ADDE20F5E870CFA8C88232988DB3A87A6EDF5EA0B577E75 + 968ADB3A17DC6E60F8E14B5AA376AEF3FB1718938CA3A101BA0357EC3A43C56D + 0B2040A9DEB2D7053C9C8C6361F374077EB833898A0D9DAF06461C3AAF356AC7 + FA39EAF6F6E88BF8317C81EEC0E55F2452B1610BC069D76F0D46469FC7F1ED81 + BA0383A2E2A9B8B04002ECCEE0C1B35AA3766C0850B7B7479FC34F918B75072E + 8DFC858AFD6C911AA8AF883C741627A33ED01DB824E224752462B17A8A23F79F + D21A1515BC50DDFEFCC069FCBC63A9EEC0C5E127A8D8F025FACFE0C124C4EF5C + A63B7051D88F2483416A60E4FE04AD5151C18BD4EDCF0F242261D787BA0303B7 + 1DA362B607E97D1547911B4DFC7A85EEC0855B7FA00E472C53EF24FA03C6E3D4 + EE55BA03176C89A3A2239683C7D73370DF2F48DAB35A3F40BDCA7A845E80BA84 + DB54DF894A3ACDDFC080F22677690B8A660E1AC52583D781423AE43897773BAD + F8A9035DA7BEF312CD90B6DB683063EE488B5130311D09C6506318193120958A + 21160AD0D6C203B7E9016452C905A54CF969C1ED2BD55A0137C5DE1CD014B772 + EA708F791996A346C3C67E2C4CAD47833EC4180A8A86A10C06EC2C4D21EAE483 + FBB011F5B5D5A86757E2C1FD0ABE5C299B57987DF59A56C0BDABDF8426CABC82 + 626C0CDD81B1E327C1D3CB0B5E93C761C470068CE834D00D68B855528F16BE18 + 1EE36DD1225080CDE5A3ACA800F7CBEFE2F76216A590487DF3986957B5022AA9 + FE890F9BB8085A13023B4717CC9EED07771707180FA6C3D0E0DF3E85F7791048 + E468E910C3DBD50E7205F047930845452528CA61A22CFF373EA5504ECC63A6D6 + 0C182857F60F0C8BFC0A6C4E3BDEF59B035F4F570C63D061F0BF4AAE696A43A7 + 480AA14441322982A7B32D68341ACA099299958D4256266AAAEE5ECCCF4CF31F + 3050AAE81B585DC3C6CA8F37C3DD6B16562D9B07F31143C894F6EED7D22E44A7 + 58068148069154015E9B1053C65913A4018AD96D484FB9849CAC2B108B851348 + 3D966A04DC78E406F5DD9AE990C8945D7F6F3B7AB357E707652C28F88F30D32F + 10323AA36B6AFF3318196DBEA713A4644E3B094EA0428AA55D486EAB106E63AD + D02652E256760EB27E4D46436DD5AEFCECD4CF340286C4A453DFAF7D0BA26EE0 + E362EDFACDA01B8FC48A55CBE060F5020619F698DB1EB53B88A45528E90692DF + 42B19C20E50429C0C497AD5158518FEBC9E770B780999B9F95FABA46C0E0E8EB + D4BE75332090FE0D0C8D4BEFD5B920E52826BCE601A7499E600C32E8AAABFFC7 + 2C7747349329AD6CF81332D5EAE811025297EECEF6A86EEA40CAB924E433AF71 + F232532D34027E72F01AB57FBD373A258A3E3BCFF49D8349D37CF1C9BA2002A4 + 3FB6FEFE0905A9E5872D9DE8104AD49F35F0DAE1EA648B0E9102A7131270FB46 + 3208B0DFCD42FDE5FA0357A8831B7CBA2E5645585CEF676951DA094C70F380EB + 1BD3A12497AA32A85AC1AA1F55BB6742554DD5A4BB8FB7437BA7A4EBE95056CB + 85F3CB36108BC448884F407EF6555E5E569AB946C08FF7A55287827DD126EC3B + 831B423663D03073AC5C19046B73D3FEC6EDF5C0972B946095D561A2E328F22C + E5E05442D2C06A70DD772954F4C677D12A94FF9DC1982BBD3A3756E4822EED84 + 8F5F00D977CDFA1EB44726A73ADBA9DBACBB757071B441263317972F5D4023BB + F26B92C1508D806BF72653319B6691AD49DE67E75A761D82376EC1D4E9EFE1A3 + E501301ECAC04022AFBC1E8E362F20F6F819B032D306F61C5CF3CD45EAC8663F + 3477BFB086C7A43C1E59980193E1C3F0E60C6F3838D8F7359C3A8B2E8ED6EACF + 8A2B1B517DAF121919196057FFF16BEECDCB6F3FE9A6D4236A7ABAC5E172111C + B209A39D5CE13FCB07D35E7F55E30CA664E420E36636CA8BEFC0D4DCAAB583D7 + F25656FAA9228D800339DDE23F7A88FAD24C38394FC2E4C9AFC179DC181819F6 + D8557A14A193DD8B64571123ED462E32B3EFA0BC3407115B82D1269022F1CC25 + 653DBB6272F1ED8CBC2702077ABA5554548C3D7BBE8599A51DEC5F1A8B296EAF + 628CBD35469A3E87E1C643C01788D0DCD28E7B350D60E597A1B6BA822C8A2A44 + 6C0BC1DB5E1E68E70B712CFE02F6EFFDB241AE947870D86C76BF406D4EB7A422 + 3E38958510B5F3604EDEA847F4F3462D9749AF9959D8BAF9BFE7FDFCFB3E9EF8 + BDBC0A99774AC8770DB87C21B19E20A73D0EA997D32DD5B82C160BA52525686E + 6E466B6B2B4C4C4C6066668656E960345795BAA8FE27F1F009747ECEC4A4F095 + 31F6F472B2582C2CAC606169051EA7B14FE4533FDD9A306586CB23CE83E411CF + 9B5BDB3B38C2D2D2BA5FE43339DDB2B41C3D8A36D8904990364F423EB3D32D4D + 91CFF4744B13E4333FDD7A12F22F1252F0153FD059240000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Find_07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000007304944415478DA + C5D8095453571A07F07F1264A98E4A1DA46C02A260F5283052D1BAA1B6164547 + B15A5C46513B8396B183ED695D284BA968B573ECB82186A9A57604A4AE4440A9 + A24DA02206216E05A568CA2221550809D997373781A6AD6CD94EFDCEC9393727 + F7DDF37BDFFBEECD7D9786AED8F0EF73D4910F16E16789DAF03D213D1F9646EA + 3B0B8CED446621981F2EA6593A96F1C2983D6728E6964808C56A8B613D45E291 + 7C646C5D623DF0EF9F9EA232B6BE89962E60C2E13C8B51A9B18B7E05A6B3F0C5 + F6A5D603DFDE7592CAD8B694005536CB9E01789885A3F1CBAC07AE4FCDA598DB + DF3202130F9DB118B563D312633B29ED1CBE4C88B21EB8EE931C8A191F0541BB + 6D6B3039ED0C329356580F8C4EC9A232E257106057060F9EB218B5E3DDA5C676 + 52DA691C4B5E653D704DF2718AF9D14A23D056917CE814BE4EF99BF5C0D5895F + 53471257191F71F2FE1316A352E2961BDB1F1FF806FFDBB1C67AE0AA84AF2866 + C26ADB67F0602EB252D75A0F5C19FF25C960B41198BC3FDB62544ADC4A63FBE3 + 0339C8DEB5DE7AE08A6D47A9F4A4689BCFE21472A339BBDFB61EB87CEB7FA9C3 + 896B8DFF24B60366E1C49E7F580F8CDA9241A525AE83506263E0BEE3C8FD2CC6 + 36404B0751CADA216B6D86AC5D088D520EAD5A01C60047D83938C169880B44FC + FBC1DC6B853CAB8096C4C457E7F9D1EC687BEC1D1CDF1CEE3602CEC386C3F185 + 81B0B777844AA580422685E8A9102DCDF550AB9467756ADD8737AF5DA8FB4380 + 2133E7BF4EA3314E7AFB8D19E2E5E30F2F5F3FB8BA7B60D0E0C17070708452A9 + 4087588C96C74D6878548706FE03D4FF5823D1E8D4CB2A4B2E16990D7C9F79D5 + E4472C12FC84EA12165E9E30093E2F07C16EF09F412723D9DBD1C0200D8F6183 + 30376424146ACA30E9F82D12DCADBA891FABEFE01EAF8CD22A55F3B9A58517CD + 06EE8D09437FCAC7CD02AC89D90C9F80602C8E5C8469C1A331D0816E80FD12EC + DB8D68EB5062EE441FD831E850A874F8A1598EAAAA5BA82A2FC5DD8AEF259456 + 17C42D2D7868365047F54DDC96F429F88276442C5E82889913F1274706E8CF14 + 0AAF4E08995283276205C202BD099206AD0EA826C8524E092ACBD878587BE75C + 05BB30D26CA046D73BB0EE211FEB633FC0D4D90B11B36E195C873AC18EDEBDDF + 23720352B91A72959620E59832CE8BF4A341ADA5C0E38B70393F0FE59C0B5028 + 6481A41E6F9B0554697B071EFD2A1B456C2EA256AFC3ACD07118684FEFB1DF53 + 82922AD4E4A3322085223942023C488DD20DEBEC7725E5E07CCB42E3A3DA5D15 + 25051F99047CEFC815EAF30DB3A054EB3A1FE51757BB75BE7529073E3EA31032 + 7B1EE874060630BA2F024BA60540A5D17602956AC8141A52831AB41064D0A897 + 488DD35159D3804BACD3B873B3F44605A720D424E0E6F4CBD47F36CE81BC0BD8 + 5344BE158D91E326217643345C863891DAEBBCFCD99CEBE1723D8ED4A11E2927 + 48B99A64B24D8AA0D11EA86B1623FF742E2A4A8B045C76819B49C0B8B44BD4BE + D8D720557502B7675CEED6B9FCF4214C0E8B4040C834E392F26C0EC343471B1E + 716D532B349ADFDFAC8C3CF2BF8C1901B15C8B6FB2B371ED0A0B04D8E75A6CFC + F15F078BA8FD9BE6A243A9EDB5F3D2E56B0D19DCB4311A039D1C0D57D30D1F02 + A5FD7E40AD4E87E65629C4321528B232E8178746A118E3477B422157203B2B1B + 152517855C4EA1AB49C04D072E5007DF0D37DC9D3EE233BA2FF6F7BE3B055F5F + 7F84854780C618F0CC48B41E070E1D3702129912FAC5A1E6272182FCBD0C6BE9 + 89EC5CF36AF09FFB0AA84371F32192F59EC1CC63C7C1B9CE43D4CA5598111A08 + 53435FA31AAD16DCEA4604FB7B825D7A03E7F3CEA289FF6037C9E0769380B19F + E75369EF45A04DA6E9CC60FA856E9DE5E256D496B13075D602BC3A63AA612677 + 2BA0DF6452DF7A65AC97F17B0501FA7B0D0333F324CAD885E6AD831BF7B2A8F4 + F717E2A954D367365277EEC1E39F259817118185AF4F31398BFAE0D53E465DCD + 7D141717835FF7C3B737AE9E7FA3BF6B8C40534FB7943209EE7F9F87B1819330 + 674E18BCBDDC7B1EB82B93E3FD7E5D45CE17DF40F1550EAA79D731CCD5A34D2C + 7C3A8773F944954940734EB7AAAA78F864E76E8C193F0933A74F46C4EC5032AB + 1D7A18B533A46492145C2907BBE43AAA6F9723714B1C445215724EE6E91AF835 + 9379D78AB9FD02CD3DDD923C6942FD6D0E3CBDFDE0EB3706411302E0EEEA82C1 + 835E20FBC101643FA886A4438656910865DCBB7854574326452D12B76DC61BB3 + A7A35D22C3D1ACB3D8BF7767A346A79C2EE0F3F97D022D39DD120804C8CC3C86 + 9B953CB8921DF5D03E76D41AB5AAC8C5CDFB95C805735FFC6BF84CDCABAE05FB + FA2DF25B23CE9FCD6920C8193D216D72BAA590B4A15D588F0EF25EA2964BA151 + C9E1ECEC0C97E1E47D44E508E1835B867792E9E12B260C7176AE1CEBEFCBA8BE + FF006E6E1E7023BB70A1A0A957E41F7EBA1538E5B5E027827AD6D0175D3D7D47 + 91B270F7EC13F95C4EB7DCDD478EA039D89512A4577FC8E776BA652AF2B99E6E + 99827CEEA75BFD21FF0FB4E401248B0184700000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000073F4944415478DA + C5D8095813671A07F07F12102C568C28375510F0C0055DA1C576B5E25179D05A + 7565BDD62276D1AA546A6B152947595DB76E1FBBF54008D59E0B683D412E2D48 + 812C0AE10862E512880202018484903B999D0436B40524D7AEEFF3CCC3C76466 + F8CD3BDFFB657829188C774FA411F11FBC89EE7E398C19918C2C247CB886A2EF + F99A13777D769D4838F0163AFB6403178E4FD71B7574F76ACD388A9109C6476B + 0D07EE3C7E95601C5C072E5F66B4ECA98109E9483CB4DE70E05FFE7E99483CF4 + 47740C0223CFA6EA8D3ABAE7AD21607C1ACE1DDE6038F09D639788C4F00D2450 + 6AB4ECA98167D3703E22D070E08EA31709C6E13F69805167AEEA8D3A12BA5E33 + 8E8EBB8EAF22371A0E0CFE6B0AC188D888769E71E7604CDC557C1DBDD9706050 + 6C129118B199040E66F0F465BD5147DEDBA01947C75DC1B7315B0D07BE1DF32F + 82F1F1160DD0581173E632BE8BFDB3E1C06D51DF1109515B358F38E6E405BD51 + B1619B34E34F4EFD80EF8FBC6D38706BE4370423729BF13378FA22928E6E371C + B825E22B3283411A60CCC964BD51B1615B34E34F4EA520F9D80EC3819BC3CF13 + F1D14146AFE258F246533E7DC770E0A6435F1267A3B66BBE498C074CC285E321 + 8603371E4C24E2A282C1EDD31DF8F8110765AC1254DD63A3BBB30B3C5E2F2C2D + 27C16AEA14740B29E8E5D4CE671565B20D06EA7AB24CDC8FA7CD0F201574C3DA + EE25D0ADAC61FE8205C68D3387542A8658D88FDE6E2E3ADA1E4326955C53CA94 + 1F95156535E805D435BC5F0F5841A1D02E4D9B31CBD269BA3B9C9C67C0C6DE01 + 13264E84999939241231047C3E3A9EB4A2B9A901CD9C3A3C7E58D32757CA02CB + 0BB36FFE4F813E7F58B59C66667A6B8E972FC56D8E273CE6FD1E4ED62FC2D6D2 + 1413CD693033A142AA2020102BD4739AD3D187FB156578585D859FD977088544 + 1AC0626666EB04FC8091A7D523160B7860677F8F599E3E709BF72A6066010B33 + 2A4CA843F76A43B7C08A05CE30A15107CE912AF1A04D848A8A4A54143371BFF4 + DF7D8442398FC5CC68D4097862E7128CA50C8F3E86A6361E56AD5D8FD54BBCF1 + A2391514CAAF1F04F37E0B9EF649B0C46B1A891CF84CA104AA4924B3A010E577 + F2D1585F75BD343F739DCE4025313AF1612307C1BB0FE0B5A56F625770206CE9 + E3411B6192543575412895A39B2FC6420F274D7665E46367737A91939E8AE282 + 2C88C5422F723EDED30928578E0E3CF74D32B27F6261D3B660F8F97AC0621C75 + C4E31E75F0D02F96412455A891DE331D401B44AA96B19F0A8B51702B0D2D4DF5 + C74A0B333ED609A89ADCA345C8DE0F417BC11A2121DBE1EA3405A6B4916BEC29 + 5F847E890C42B19C9C7F0A74F244F074B5258F278B474EA0BCA6193FA65D4155 + 19B3A4B420E315AD80FB136E139FEFF28344A654FF1E7E2E6FD8C125A90C7879 + 2F8287AF1FCC4CA9A0528603D72C742311720825F2812C923FC532B29A7B85F0 + 984E22C90A6F68E323FDCA4594326FB6B3F233ECB402BE1F9F43FCF3DD65100D + 02478AA5FEEBF0F2E20084ED0DC278531AA8E463FB2D51957F5372BF482A5323 + 45839B0AD9C91362D6345BF0450AFC909C8CA2DB692081CF5CEA341F86C5FD48 + 7CB16739FAA503C0C38939C30E2E4B3FA7CEA0F7E265643151D4D5AB9A5AAA4D + 35562574F90217B282C5686CEB814CAE54835575A7DAFA4552CC757580582446 + 7252324A0BB3B9AC824C1BAD80FB4EDF244E86BE01814431EAC17BF61D808985 + 0D768604C1D1D66A58E67E194AB2D83A7A841088249A3FD3D6CD87979B239EB4 + B5E342F245DDE660E8A92CE2F47BFEEAF4AB222271F8B751CB836250C47C04AC + 0DC4A42953875F44B363688FF74C471229552F5FF52D5D98E7E6807C66096EA4 + 5E432BA7EE53328387B502EEFD2283381316805EE1E8196C6AE22074FF41BCE6 + B71ABB7704C262BC39B409557615E44A5D51DF0A77472B30BEBE843BF999BAAD + 837B3E4F27E2F6AF428F70A07914119F35E2090DA5B7409F6001BF152BE1EAEA + 32CAD58686F3C935F0BFC1AE7B828735B5C8CDCD05A7E1C1AD92BC1B2BC7BA39 + CD25B5ED6EB5B7772074DF7EB8CC5E80F56BFCB1F895DF69954555DCC829466E + 5E01AAD9776165E3D0C3E7762F2BC8B950A1155097EE16BFAB158F2AF230DBF3 + 65F8FAFAC06BAE3BC699D07E71D5A154CE9E6E038150828CDBC5C82FBC8BEA7B + C5883A1886DE7E29522EA52A9B3935BEECA25CD698405DBB5BE5156C1CFFC767 + 9862371DCE3366E1559FB970777182F5644B4C98600E81400CEE531EEA1A9B51 + C4BA8FA6861AB228EA1115FE3E562E5D045E9F10E793AEE1E489BFB5C8959245 + ED1C0EE799407DBA5B52611F9ED4B220EAED800DF9463DE9196FD47299F4E654 + BB693EEB56BF31798DFFEBF8B9BA1EF9772BC9CF5A70E35A4A33895C3C12D228 + DD2D55751715DD41656525B8DC4EF4F4F4804EA7C3DA7A2A7A64E3C1AD65ABFF + 2759E4BFD9D3924E2F9FE3EE4CABAEAD839D9D03ECC8B7706E7BEBA8C8FF7B77 + CB6BE1F2F95DED8FD3264DB67174769D097B7BC767229F4B77CBDEDEE5258A99 + 0993443A8D857C6EDD2D6D91CFB5BBA50DF2B977B7C642FE072F4A0824322853 + 5D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000007304944415478DA + C5D80950D3571E07F06F2080D056404B904345D116750C74778B742945D1B12A + D4D656AB68AB683B16AD2DAD6E3D2888286BEDECD82D2A4268A96D578378831C + 624104B22884238A0AF5A011AF100C040239FE39FE7D0126D495600EBAFE6632 + F392FF7BFFF9FC7FEFFAE731D0176BBFC9A5533E0F47BB5CD3F33D36B50096C6 + CE35730DE5384E21F6AF8F60587A2F43C3E8DD3974EAFA3720E9D6580C1B28E2 + 380548DB30DF7AE047FF3A45A7FDE34DB4CAD4BD374ECDB51895B426C2508EE7 + E483F3C55BD603577F7D82E66C5C0071A77AC8B2D7034CCB45FAA6B7AD077EF8 + D5313A7DD33B68E903C6EDCFB61895B4F6CD7E606A0EBEDFB2D07AE0073B8FD2 + E99B1712203564D9EB01EECF4146EC22EB81AB92B268CE96770DC0F87D272C46 + ED58F7B6A1BC35E5147E885B6C3D70E5F64C9A13BB18A28EA11D830929277060 + 6BA4F5C0158987E8F4D84802ECCBE0DE6316A3767CB2D050DE9A721C3F252CB3 + 1EB83CE120CDF972A901385491B0EF187E4E7CCF7AE0FBF13FD369F1CB0C5D9C + 907CD8625462CC124379DB9E23F8CF8EE5D60397C5FD4873E2DE1FFA0CEECDC2 + A1A428EB814B637F20195C61002624732D4625C62C3594B7EDC90477E72AEB81 + 919B33E8D4AD2B867C16279207CDDCF581F5C0259BBEA3F7C74719761273A2F9 + B610D5FC2AD45F1640D2FA101D1D52383BBB60A4DBF36893DBA05DD8F812BF22 + 5F601570F1C6743A257E25C432D381E2961664710FE292A00E2C8F31701DC9C2 + 30A767606F3F0C14A58452DE0DA9448C9607CD5053AA933AB5EE8B9A8A825B16 + 03CD69A8E86885F8660DBC7D7CE13DF6053C33D21D1ADA96C034A0341AD83399 + B0776082092DBA252DB87BFB3A9A6F36CA343AF5A2DAF233856603CD89975F0D + 9F65EB607776B27F1063E26436A604FC05A359CF6194B31D860FB38503D30694 + 96469752DB3364842D325CA9ABC1CD867A5C155CA0B52A6A1E9F977FE64F0112 + DC78306D6AA7FE35D8392030186C7F7FF8793862B8A3ADD1364A4A876B0F14A8 + ABBB84BA4A1EAE54FF57466B75017C5E5E93C9C0F59C1293BAF85A79369E1B66 + 0F765018EC5DDC49D906368C479FD3CDC509A1ECB160DAF6FFAED5010D04C92B + 2B47ED855234DDA83F555D9ABFC02CE0EED5D33198F266931051D11B101CF606 + A2572D823B8190DE7C24F4ED2F5CBB8FF62E155E99329A5CEF47AA49B70B8452 + 14E566A3B2AC004AA5DC9F8CC7CB660175B471E27707B82838CF47E4F295089B + 36054E0E3603D6BB2A7C0805A585A45389BFBDE805DB3F20F5ABC4F9F24A949D + CDC1DDDF6EECAC2ECFFBD22CA046671CF8E1DA0DB0716261F5EA284CF07E1E76 + B6030FE1E6D64EC8951A32F60852A604DB779401496968D436DEC12F39C7515F + C3ABAA2ECB9B6616503FFB8CC5FC45CB317E72203E8E8E02CBC5D1E80C937629 + D1AD5443A12248B516AD1D4A4CF2619107EACDF8AD079DC83D9E856A5EA1885F + 9AE76112F0F3B473F4371FCD804AADEBF9BEF9FB92C72A571C4946D0F4704C0A + 0C21EB9C7E72901BFCCF04991BE80B355907E504A7E8FBF42215F01BC3D23740 + A7428B235C2E2ACEE580001926013F4B2DA2FF1D3D138A3EE040B1E0DD15183F + 25109FAE898293A3430FAE17D90B65F44D313BF2A3822CD8FA8F1EAAEF6E0541 + 8AA572323458502A94E01EE2A2BAFC8C985F96EF6E123026E517FADBB5B3D04D + F502B7A4173D56F9CAB92CF8F84CC48CB9116030ED07BCD5F4001FB4912EBE2D + 929259ABEBBBD27B4DA1A2C09EE085FB0F4438CCCD326F0C7EBAB7904E5E371B + 5D2AADD1CA193F1EC4F90A01962C7D0FA1416CA3F5F479D4E97468952AC858EC + 7FBF6C69EB82FF444F94F2AA703AFB24EE09AFEF2219DC621270DD9E027AEF27 + 737AC6873E62D31FDF2EE51D12FCCA3B85E01911080E0D810D19F48C4136237D + D7074CF0245B1E05FDEAD5745F82895E23C0397014174AF3CD5B073FFE368FDE + 17330F52B976B0FAD89EB40BF75A6598171E8EF9B3FF0E53429F512DE9EEFA26 + 11D98F1B515C5C0CE1AD6B67AB4A4EBFFEA4B606A0A9A75B2A79271ACB4E6092 + 7F2066CD9C81B163BC8C664F1F537DFB57919CA22A149794A241701123DDBDDA + 3BC59299654587EB4C029A73BA555B27C0B6ED5FC16F6A20425F0B4278D8343C + 4B66B5B1E856A8905B5C89D2F28B68B85C89F88D31907653C83C9AADBB236C0C + 125414F39F0834F774ABB3F51E848212F22EE88B71BE7E0860FBC16B941B863F + EB44DE03ED40A9D49075C9D1D6DE8E0AFE15FC76AB914C8A1B88DFFC195E0F0B + 41874C8E8C432791BCFB9F77353A55884828140E0AB4E4744B241221E3C04FA8 + AEA9833B79A37619E48D5AA3A60ADD3CC6BEBC2062F688F9734271B5E1064A2F + 5E22D7EEE2F4C9CC3B04F9DA40C82139DD52C8DAD021BA8D2EC97D50CA2E6854 + 0AB8BABA82C5728354E388964641CF7F929039916C6757D7DAC92F8CB36DF8F5 + 3A3C3CBCE0E1E905B1E89E51E4FFFD74CBFF95592F3D1435E7B88C70F71E37E1 + 45787A7A0F8A7C2AA75B9E9EE3C7301C983C821CFD24E4533BDD3215F9544FB7 + 4C413EF5D3AD27217F07A99BFF15655E85550000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_10_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000007284944415478DA + C5D8095453571A07F07F00298B474021340115D1A25494B65628756BADB55618 + B76A2D3A55B473541C2C6A5B170A52AB43DBD3635B548430B5CE388252579045 + 5A966119108880A286CA00117108496912207BF25E2F81C6A96C21C9A9DF3939 + E7E6BCF72E3FBEBBBC9B8F81BEF8EB3759F4F1C8A590C875B044D0E4A3506910 + 77BA00093B8319A6F6637870FB579974C2AE6088E55AFDF7A8C41C937171E16F + 1ADAD19C5C9CD81D623E70DB910C3A71F79FD021D35A24838F803948FA6099F9 + C0AD5F5EA1933E5C0E5197A6B7E3C44C935187C3430CED184E36381FAD301FB8 + E58B4B3467CF4A083B3516CB9E1E989489E4BDABCC07FEE5B30B74F2DEB7D0DE + 078C3E916E32EAF0F6E58F808919F876FF6AF381EFC59DA793F7AD2640B5C5B2 + A7079EC8C0C9A835E603371F4EA339FBDF3600638E5F321975286295A17D20E1 + 0ABE8B5E6B3E70D3A767694ED45A08A4969D83B1099770EA40A8F9C08D0753E8 + E4A85002ECCBE0B10B26A30EED586D681F48B8887FC6AE371FB821F60CCDF978 + 9D0168A9883D7E01A70FFED97CE0BB31A7E9A498F586218E8D3F6732EA60E43B + 86F62747BFC7BF0E6D301FB83EFA1F3427FA5DCB67F0581A520E87990F5C17F5 + 1DC9E0460330363ED564D4C1C87586F62747CF22356EB3F9C0D07D27E9C4031B + 4D5AC52DF7F9E05656A0EED64DFC2C12412A95C0C9C919AE6E6EE8505841DCCC + 7BBEAA2CBBD62CE03B7BFF4E9F880933BC498C09617B3BD252CFA0B6B6064CD6 + 04B88C63C2CEC111B6B67650AB9550CA65907408D1DED6028D5A7599D2501FDD + 28CB693409B8764F329D10B309C22EE38077EA6E2121FE6BB812D8446F5F4CF3 + F3039BC584F398D1B077B08342AE84A4B31BFF6B13A2FEF66DDC6FE2A1E5BFF5 + 5D5A4AB3A6BAE45AAE4940631F524845103572E13B33102CAFA950D0D6605014 + 6C473160C36080C1E8ED5A47D150EB68500C2BD831B410F0EFE14E6D39AD53A9 + 975695665F1B11D0D8983D37D81B3656D53366CD717A2E600E66FAFB631ACB1E + 63ECAD077D46A9A670B74D819A9A9BA8A928C56DEE7FBA681DF55C55695693E5 + 81F3832F7AF94C5F352BE81504CE998BE96C7BD8DA0CDF8D8E027804595A5C82 + EAF2223435D45DE11665AF341AB89B5338EC10CB2422D4E59D43E082A560FBCE + 82A39D354926E3B10E19183BC61E41D3C7F7BBA621C35DCB97202F331D15C539 + 502AE5FE643EDE321A7864CB2B184A997C2A0539855508DDB0090B5F9A0E47DB + FEC3DAF37C657D1BC4DD2ABC38D503D68F217B16E1BF4B2A50FC43065A9B1BE2 + B825591F8F0848D1831337877F002B0726B66E0DC3144F578CB21E7868792D1D + 50A875F8A54B8599939FFE1D52ADA5515DFF003F665C44DD8DD24A6E7156E088 + 805A6A7060C8EA0DF07E360011E161603AD9F7ADD6FED12AEA223F39B56471E8 + D04132E93B91F93B64635B27322FA6815B9A2BA82ACA628D08D8B32D0C160B16 + AF40C0FCA5D8151106FB51D6B0B21AF83E49B7520FD4233504D9A984CF043792 + 712BFD3CEC54E8F07D6A2ACA0A32408043AE30C3C55D4905F4575B5F854A43E9 + BFEFFBB6B0DFCD95E91CF8BF380FB3172C2273CD8A6490819EC430F49FDEFDEF + F517BCA0D1EAC810F702E57D99144A15F062B9927F8A01A54289D49454704BAE + 09AB8AB3DD8D02EE4CCCA3BFDEF61A147DC081625BC487B076247370CB46783E + ED3AE87D3DAB57A9D6EA3F0A752F50A5EDC9A4023EE399E4ED22C0B9D4B491CD + C1C8841FE96FB62F824CDD0BDC9F9CD7EFE607B7CBC96B4482E0956FC3D99539 + 608773674C8044A6428B500A6DCFE6F77F5BAD52A586FF14368A4A2B7135FD32 + 1EF2EF7D4E32B8DF28E0FBC772E9F888C5E8560D5E9B696AE623FCFD3D98F36A + 08B6BFB706A3C93BF7F1F86D13A0680A1D522564AA47E74B915886673C5CC039 + 751EE545D923DB07238EE6D0C7762CD14FE09E884A1EF87DDE50710DCE8E0E58 + B87809A63CE33D44C7BD5DFB79BB43A6D4E8F7C7FB02311AEEF2909F9F0F7EE3 + DD1F2A0BAFBE8161C20034B6BA2510B4237CC72E78FBBE80B796BD89F9817EC3 + FD0D7DE8C86122AB908BFC8222F06AAF639CBB87B853D8F15A71DEB91AA38023 + A96E758A5AD17C238F9C6602101414007F3F1F8CB2B1E9DF2909DF494C74CB55 + C82CA84051F175F06E5520664F2499A76A9C3D9F4E3DE0D7BF545B965F352C70 + A4D5AD1BD535F8ECF32FC979D00B93264FC3CBB36760EA644F30C73A61B4A31D + BA654A087F91E2A7C6569455D5A1B9B19E2C8A06C4ECDB893716CE83B44B8E93 + 2997117FE46FAD5A4A354FC0E7F387049A52DD52C9BBF0905701B95800777270 + 751EE244ADD5A873DD581367AF0C593C76D99205B8C36B40D1F59BE45A2BAE5E + 3EFB8020E70F84B44875ABA9B9196565E5A8A9BD09A15004B1580C1717173099 + 6E90EA1C20E0D5E87F93CC5B123AD3C9C5A5FA599F49D6BC9FEE81C5F2008BED + 01A1E0E1A0C83FBCBAE51FB4E8F99F052D19CE63DD3D274D990A36DB7348E413 + A96EB1D9DE13184FD99412E4F8E1904FACBA652CF28956B78C413EF1EAD670C8 + 5F01E98CFE152F6528920000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_11_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000071C4944415478DA + C5D8075453571807F07F0202115A4105245801B5AEAA68ADA86DA1880B0567B5 + 96D22AB63D75548BD2BA28A38E523D1E072A2338AB15270E6448653480932108 + 1A2B55A92084C84CC81EAF3791862A0221E194EF9C47EE3BDC77F3CBF7EEBDEF + BE4B4353ACDC9B4CED5BE509BE58A9390F8C4981BEB1DED71DE5CFF950A8289C + 492FC4FEEFA6D3F46D4B7BE1B77B12A9FDFE33502F52EA0DFB6F50E4104BE508 + 3B968E88D55E860357EC4AA022D678A14EA47891C1A864BD7161CBA76BCB41AC + 144406781B0E5CB6339E8A0A98891AA1A25332D80C4C46F4F7B30C072EDD7191 + 8AFE61369E0BE42F1A8E4AD01BB575B9B7B61CCC4A026BED1CC381DF6C3F4FB1 + D6CD058F2FEFB4EC6980D10988593FCF70E0D7BF9CA362D67F8CAA266050E425 + BD515B57CC6E0646C5E3E0C6F98603BF0A3B4BC56C984F80B24ECB9E0618198F + 43810B0C077EB9F534C5DAF8891618BCFFBCDEA82D2BE769CB211117713868A1 + E1C0259B4F52ACC085E036746E1F0C8D388F23213E8603176F3A41C504FA1060 + 5306F79DD31BB565D57C6D3924220EBF86FA1A0E5C14FA1BC5FAF1332DB0B322 + 74FF391CDBF4B9E1C02F828F51D1C1BEDA5B1C1A7E4A6FD426FF4FB5E59FF69E + C1F12D8B0C07FA061DA558415F747E06F79DC689AD7E86033F0B3C4C32B8580B + 0C0D8FD5B911A9B001C2DA6710D5F3209788A05248D1A387257A5B5BA3564247 + ED63CEE89CEB490506017D361CA2A24216776814F3AAAA702AF6380AEEDC818D + 5D3F58F5B281597773989898412693402212A2BE8687AACAA790CBA4175472D5 + DABCEBC98FF4027EBAFE001519ECA77D92B417C545771111BE1BBD09CCA1FF50 + 0C1D3E1C4CA60D2CDFB000A3BB19C42209EA048DA8ACE081535C8CBF1F73F0F4 + AF0702854ABE203FEB8ACE8B4D2D70E1BA182A2278097882F681F78A8BB07BC7 + 760C19E18251632760CCE8E104C64037631A8CE934D06834501405A50A90933F + 750231F2F28B51987B13F70A6E504AA96C464E76D2950E0375B9402E15A1A238 + 13C346B9C07EE00888A44A989BD2616C447BA5E1E673B2B04623A9676642C7B3 + 922214E75E13504AD5A89CECC4C73A03758DB16E5E718E83DE993766823BC67D + F021DE61326062DC7E33EA6C722AC5C8CECC42FE0D361E97145DCC6527CDED54 + E0BBAE9E23CDCCBA178E739B8E89D3676284A315CC4956740DB9924241693D52 + 132EE156663224129133E98F77750206B032DABDC57FDFBD0605FF39C64F9E03 + 86652F58981ABDB6352B0B06DE1B6C0F237ACBDFAFEEE37F64DD42E6EFF1287F + 5212969B95F8A3CEC09DDFB8A32DE592E501A0336CB074E912BCDDB7B7665068 + 836AFEC82DE1A2BE51869103FAB440CA1414F21F94E16A7C1C8AF2B26FE76626 + 8EEB105045B54EF4FA78119C86B960D5723FD85832F0EF77BF7AC5C3B23A8865 + 0AD40AA418EA68DB02F9A8928F84B8D3C8CD4EE1E6B013ED3A0454BFCBB616AE + 53E6C0C56D060256FA816162047A2B3DB8A2A691BC722A20912BC91423C5E07E + D6A0375556F743F5BBF799D8585C4F8F0701B6390E5A0065CAD681B3162C427F + 9241FF157E30679869AEA66B0EF5DCD7DC608350A201AAB32891A950CD97C091 + D993FC8FAEB94312B104B12762919B758597939964AB13704D743AB56BE94448 + E52ACDF98683192D2A175E3D0947C781F0F09A099A91E9CB0D35B5E4EEEC00B9 + 424960FF0295A4DF295143904ECC5E64BEA4A3A2924B1E91A73BD6075747A552 + BB974D82B809F8BA3870E43832AE15C0C7F7737C347E64ABF5D44F1389FC054E + 4A0E75598DAC134830E82D6BB0B36FE3F2A50B7856FA701BC9E0469D80FE1157 + A93D2B2643287B01DC1893DAA2B2A8A11A1C761C3EF0F0C687EE6EA45F19B598 + 48C70DEB4B6EB114E5D50228952FFF5829C9E840A6255847CEE2063BA963F3E0 + 77FB52A8F09553358FA4B62274F33694F304F0F2F6C2ACA9EFB75A4F45065B2D + C998482AD77E5175831025F739484B4B43E9A3FBBFDFCEB83C0DED8416A8EBEE + 9654C8C7BD8C7318EA3C1653267BC0A19FFD2B2DBD7C3AC4C146B389A49E1C32 + 6F1622359D0D4EC14DF4B2B5AFE3F36A2665A69EBAA313B023BB5B79F90508D9 + 1CA659CDB8BB4D8097870B2CC812ABB568244BAF84B45B6067DD04E7EE2D04AF + F347BD508693672FA9CA4A1F8C2FB89E96D32EB0A3BB5BFCE765789297067B87 + 01701A3004A39D87C0BE8F35DEB4200B56D36E9091AC091A45A8ADABC3B5DB45 + 78F2E80119142508DEB01AD33C5CD12010E1D0890B08DFF973B9422575E59696 + 96B609D46777AB92CBC5C1834791937707B664E16AD9C68A5A2197A558DB398C + 9DEB3DB5E72CCF8F708F530236B9E55595E5B87CE1641941BABD0ED929BB5B62 + 7E0DEAB9A510545740266ED4AC197B5A59C1C6C61AF52A7370EFE76BDE495C3D + 7D46F6B0B2CA1F36C8C988F3E743D8D9D9C38E690F1EF759ABC8FF7D77CB79C2 + E4D1D5DCA7F1963D6DFB3A0D1C4C5E13FAB689EC92DD2D26B37F3F9AA9713641 + BED51EB2CB76B7744576E9EE962EC82EDFDD6A0FF90FF0890624F4AE26810000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_12_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000007284944415478DA + C5980954545518C7FF03482C169B0C81A8881E918E60D811354373494129D328 + 335369D354DC53945832CDEA7834171086B2C512F70D59C4006313841107872D + 101C05050781816160E6CDF2BA6FA0C18E2CB370F23B67E6DD37EFDE3BBFF7BF + DF77DFF73E16BA6CFDE114FA60D01CB4C994D0D7288512BC3B423C6C146B7E2B + 28ADC1A1757359FACEA919187428993EBCCE17AD1D9D8021B1297A83062F7D1D + B50DAD50A8689C4E2F42E47A3FC301D71E48A42337CC83A85D7F059F349A7C3A + 6472EC39968EA88DF30D075CB33F818EDA341FCDED8A4E05A393F586DBB3DA4F + D30EE5A4E0C8667FC3013FDF174F476F7E138D12C58028D80D988C982D6F190E + B86AEF453AE68B056810CB3B278E4ED01B6AF76A7F4D3B8C9304CED6B70D075C + F9FD799AB36D2184ADF201534F0D189380D8E04586037EFAED593A36F81D3CEA + 020C3D72496FA8DD6B16740346C7E3A71D0186037EB2E70C1DBB3D80005203A6 + 9E1AF0483C8E86BC6B38E0C7BB4FD19C1DEF6900C322CFEB0DB52B6891A61D1E + 75113F872E361CF0A3AF4FD09C90C5A86F19581F8C883A8F5FC297180EB862E7 + 713A36640901EC52F0F059BDA176AD0BD0B4C3A3CEE1B788A586032E8FF883E6 + 7CF9810670A02C22F22C8EEDFCD070C06561C7E898B0A59A258E3878526FA89D + 1BDED7B4BF3A741ABFEF5A6E38E0D2D05F694EE832BD14BC2710A020FF066E17 + 15A1A1A1012D2D22585959C3DEDE1E8D32633455957A155C4FE21904F841C8CF + 44C1151AC0888371FD0E964B25787CAF1894F831D88EC36163C7869985254C4D + CD40515248DB2510350AF1A8EE3EE494EC824AAEDA7AF37A72955E804BB61FA5 + A3C357681DC5C5FCDB883CB01F4308988BAB3BDC3D3CE1E8680FEB1706C3C2DC + 0CED1D52885ADB50572744199F0F417519EEDF29172B54F2770BB3AE689DCB69 + 00DF0FFE913E1216A87992F46525C57CECDFFB3DC67A78C36BE214BCE2350E56 + CF9BC3D48405132316582C16689A8652459258F2251277E066613178DC3C94F0 + 7269A58C9A57909D744527C0C5DB62E9A8B08F2014F70DD8201422222418AEEE + 5EF099F906BC3CC7C2D2D41826C6BDC7818A24AE6D3215CE265EC3834A3E8AB9 + 39625AA97AB9203BB15A27406DEEE851453EEC87D8C2EDE529A0E84178DECC18 + 4646AC9E27559F749E1141D12655C2CA0C28CCCD407525FF22372369A1D680DA + D8041F5F4F33338BA249D3FC30C3EF4D78B8D810F58CB41E2F57D2E00944484D + B8841B99C9904ADBC7137FBC3D6080AFF8CCDFE9EC323A7CFADC05983C792286 + DB3EA7CB70B5312EF457D60D645E8D47EDDDCA3DDCACC42FB502DCCCB9D6EF12 + F352FEC08811A3E1E1E34B22D514837AF13BEBC166F01CE50863A3A7AF530A1A + 85E535F833FE1CF837B3F3B9998993B406DCB7F275F445396FD1328C7CC91BEB + 5707826D6DF1AF7BFDC798F1CCAB67739B0CEE2E0E3D4256D5B522E1DC2970B3 + 53EA0B32121D750254D1BD234E9DFD36BCA7CDC3967581301FC40447CFFDEE3C + 10412A57A0594CC16DB8FD7F8288F143E6D5F6745C1CAEA7C78300F6E9664F01 + 32EFB2BD997FC072B8120537AE0D8425D98C1963FEDB88C5D2A8C91CEA9ADA20 + A51404528526A2A4AB939D3A8A997D9111404A36F1B8E371E0665D1116642639 + E80448297B07FC6CED16185BB0B17A552086BE68D76B3FB144860E0690528292 + 2BD5902E04D2A44BC98775F53819774A371FDC14934EEF5F35033272D78C6DFF + E9DA539DEFF173404B9AE1BF6831AC87B0BB277962915E1B378C2CA3520DC7A8 + 2823804C49A459CC28694B3674236464E7E3F2A50B7820A8F88E28B8432BC08D + D1A9F40F9FCF424717604F567D578095415B3175863F823E7D8F2C73CFDB0C13 + 180C984CAEE83A32902AB448A470B61B0CCE2F67909B91A4DB3EB821EA4FFAC0 + 9AD990509D803B62537B1C50919B082B0B73CC9AE3875163463D35D984318E10 + B7536A3F5428BB6F9651594614AD2829455A5A1A0455A557F3AF5D9E8B7E4C03 + A86D75ABAEFE1156AED9449EC51310B0C00FD3278DEBB11F130C22E27B4C7DE6 + 5FE3F2CA919AFE17CA7879B07318DADC2A6C9C95997AF2965680BA54B75A8435 + A8CABF0A774F6FBC3AC51BE33DDC30C8C4F809B5BA9D72B4B31D9A5ADA919653 + 88CCAC3C94DDBE81B06D1B2092503871E692AA46503E99773DADA05F405DAB5B + DCC25BF8E6DBBD241F1C8191A3C662AAB707DC5C87816DF702065B9AA34DD201 + 61632BFEAEAE414E3E1F77ABCA495054226CFB46CC9DE98316713B8E1EBF8083 + FBBEA955A8643EF5029296F705A84F754B2669456D691E244D0FE1401257EB3E + 326A859C4AB1771C3171A1FF1CDBB77CA7A3A4AC12197945E45A2D2E5F385143 + 20A7F5043920D5ADEAEABBC8CEC9C52D5E1184245F6C6A6A86ADAD0DD86C365A + 5496A82BB9A97E27F1F15DE269656353F8D29891C6657F57900C7C281C9D8642 + 58FFA057C8FFBDBA357ECA6CAFC7F5F7E3AD6D1D9C478E76839393739F90CFA4 + BAE5E4E43A9CF59C4936811CD61FE433AB6E690BF94CAB5BDA403EF3EA567F90 + FF007B3F03245F35D4950000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_13_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000007294944415478DA + C5D80B5453F71D07F06F00218AAD8203166020E8D9A4A74AD54AD109567CA042 + 65563BE7A355B71EEBB33EDA8A2281B93A5C4F6B5BAA08C97C6CB6E2FB853CA4 + 020A66202402A21495821C4121918C9017C9CDE3EE7F03CB86259007A7FE0EF7 + E492FCEF3F9FFC5FF77F7F2CF4C496B46BF4D71B664345194DFFEFE217C0DAD8 + B77636EA9F74A0A0F211BAB4FA5E9F49654AA46E9CC3B2BAB2E7C27CE18707F2 + E9D44D73A1D41AECAD0B94DE80EA1F25782A5598DF13FED08C6F36473B0EDCF4 + 4D1E7D60F33CC8BBBA8109FC7CBBA1F12BDE44CB3339F4461A678AEEE0E087F3 + 1D076EFC3A873EB86501646AFB5BF0FF83264797568794E34548DB1AE33870C3 + 97D974DAB61874A8BBC750427A9EDDB894F5F3CDE789BC7C1CDA1EEB3870DDFE + 2C3A7DFB5B90AAF4F6D6D56724F2F290F1D142C7811F7C7E89CEF8380ECF14BA + EE8AD3B3ED46ED5D1F6B3EE7F272C1FBE4778E03D77E7681E6ED5804895C3768 + AD67026664831FFFB6E3C0F7F79DA3F9F18B21EE01261EBA6C376AEF86B8FF01 + D3B37078D712C7817F4A394BF3772E21406AD05ACF043C94852309EF380EFCE3 + DED3346FD7EFCD40EEC10B76A33EDDF4B6F93C29ED128E262E751CB8E62F2769 + 5EC252B4750EEE184C4EBB806349CB1C07AEDA7382E6272C23C09E163C70CE6E + D4A79B9798CF93D2CEE39FC92B1C07BE97FC1DCDDBBDDC0C1CAC483E780EC7F7 + AC741CF82EF7389DC15D61EEE2E4D4535657A251CAA0943E81AA430CBD560583 + 4E8B112347C2CBCB0BFFD6B840DA503B51589A5BED107045E23F685EE2BB36B5 + A0582C46E677DFA2AAAA0ADE9C00788CF2067B983B5C5DD9A0280D346A156452 + 09C4AD8FA1A3B4178D3AE327B74BF31AEC022E4F384A5A709519989C9AD9EF85 + 6A19F9E28742F88F1E83C0E0107872FCA1D5194DFB41AD4E0FB7212E18CA1E82 + 408E27EA6AEEA2A9B10E8F7FBCAFD01B75EF54DEBC6AF556C90C5CB6F3089D9E + B4CAAA595C7BB706FB3FFF0CE3C6876152D8344C9EF82A46BC3414AE2E2C383B + B140FE4093ED8C816CB728030D99BC0BA2AA7BA81696A1B6BA8C3668A9054241 + EE559B807F88FF3B7D88BBDA7C27B114CF24122425C42338642222A2E660D284 + 71707775868BB3E579602450A5D688733937D0525F837BA27F296883F135A120 + A7D16AE0D21D7C3A8DBB061245FFC0035F7D81F60E2522672FC0F46953F012DB + D9D4620305B33F3C7CA60823D8406559311AEBEF5E1215E72EB2093850614A2D + 87F84129C222E6C3DD3B004387B0E0F29C8ED50F96F982F1A1A128C8BE8CF292 + 3C6834EA50321E6BAC025A13932362F6F88F1E9B34233A0EE1E15310E0E966CB + E5A6607AE8C6CD72947C9F859647F529A29B39BB070DF87A644CF9F8C9D3C3E6 + 2C5C8C57C7FA6338DBC96620A5A75179BF19D7B2CEE3EE6D4185A824E70DAB80 + DB79D707ECE25B17D211FAFA7484BC118561BDC65EEFDFF9B2BB1B42027D4C33 + BAAF68689523FBFC698804F96DC2E21C8ED5C0FD6BDF447FCA69B3E21016B900 + 1F6F5E03B6AB139CFB1870CCF5358F9E41A6A4302EC00B4ECF217564D9619E1C + CF6466A2B4280B04D86F2FFE0468A42D136316BF87A057C2B06DE36AB80F659B + AE76321D2CF3E4605E1A5B65D0E80CE820C8317EBF30BDCFAC8906234CF56BBA + 34C83C9109D1CDAB126149AE8F4D40E659D652BCBFE123380DF3C6FA75ABE1EF + 33CA623971870A1ACA008A41AA2804F97A9A7EC47FE3696B1B4E659EB67D0C32 + 4066E5B714FCA3DFA2505085E52B57624678A8C5720AB59600995B1E41EA8DE8 + 5469319AE34196A4EE49552CA8C095CB17F1A4E9E1DF480BEEB20AB82DA388FE + F28399A6FB29133B0F5FFF496195AC1DB5D7CFE0B7516F21726624584ECEA482 + DE43283CC4978C33A3E97ECC009943479032820C26488AA2C03B761665C5B9B6 + AD835BD30BE8AFD6CD42570FD05270F7EC43B3588198D858C4454FEDB30CB378 + 9B5AAF07C8E46C989654746951535983C2C2423435FCF07DC5F52BD11820CC40 + 6BB35B1A5527EE159C4648E814CC9D330B01017EDD15F5D43421D88740749090 + 716830F6FEB1750F1A5050780375D5B730CAC7AF432E91CE2A2938556515D096 + EC96E8763576FF39C5B49B9939632A62A3C2E03E8CDDAB0C4D261B33F634A4AB + 355A1D04157720109493AD5739B83BB6902EA770F2EC656373D3FDF0EAD242E1 + 80405BB35B9DE2663408AFC12F30184163C661D26B21F0FDA5175E1EEE0E37B7 + 21D0129442A946BB548A32612D1E35D49149510FEECEAD888E8A40A7428D2327 + 2E2275FF5F5BF4466D445B535353BF407BB25BAD64B9E01F39860A51157CC88E + 7A643F3B6ABD8ECAF7E2044E59143BD773E1BC19A8ADAB47F1AD3BE4B3165CB9 + 78B2992023FB420E4A764BDD2985ACB511F2F616B2E35142A755C3D3D303DEDE + DE901B87E369ADC8F44C12316FD984111E1E95AFFC3AC8B9EEC14370387EE0F8 + FA41D2F6C422F267CF6E854E9D3DB1BDED71D6484F1FFFA0B1BF81AFAF7FBFC8 + 1792DDF2F50D0E60B9B90808F25703215F5876CB5AE40BCD6E59837CE1D9AD81 + 90FF0127280E24729B96830000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_14_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000007394944415478DA + C5D8095453571A07F07F0005C405D0A020B5C2386E5344DB2A562BD282A2C068 + 5DAAA3D6B1B61DEB5A97B62248E4B4B576E6745C5011426B3BD319514BDD9045 + 2CA2404421C826DB942D051448C4842484E4657973F3B0691D0DD938E377CEE3 + 3CB87997DFBBCBCBF73E161EC58E846CFAF0C660F4A875B0269C07D8412C57E2 + A1ACF71093A34B41A1A0BAA5EAC8C69017ACEA9404EB9793EDF13FD2473687A0 + 9BEA054625659BDDC9171B4250774F8CEC9226F4A8348FB5754AE488DB328F65 + 7667C6801F1CCBA2E3B6CE875CA5B5B62F501A2DCAEA85B8DF2933FC8D5FDD82 + A3DB426D076E3D9A491FDBB600D29E5E60745296D5D0C83541681549A1D1D1F8 + 3EA71CC73F58683B70CB9174FAF8F6304814D68FE06F8326478F4A8D03DFE520 + 7E47B8EDC0CD87D2E8F89DE1102B7AD7507442A6D5B8039B161ACE63B85938B1 + 2BC276E0C683A974C2AE3FA2B35B636D5F4F8D186E26123F5C643BF0FD2F2FD2 + 891F2D8648A6EEED3821CD6AD4FE4D1186730E3703DC8FDFB01DB8E16FE769EE + EE25104AD5FD367A0C30310D49914B6D07BEF7C50F7452E432743C02C69CB864 + 356AFFE6C5BF021352F175D472DB81EF1E48A193F62C2740AADF468F019E48C5 + C9E8376D07BEB3FF2CCD8D5A6100728E9FB71AF5D9D6A586F37DF117F14DCC4A + DB81EB3F3D4D73A357A2BDAB7FD7606CFC797CBB6F95EDC0759F9CA293A25711 + E0A3113CF683D5A8CFB62D379CEF8B3F877FC6AEB11DF8E7D87FD3DCBDAB0D40 + 4B422010A0A8B010E5E565108944E8924830CCD5156C361B62D5003CA8AF9CC6 + 2FC828B309B896F31D9DC8596398E2D8B833262FA69472889AEE422515C1C373 + 0CDC867BC069900B060E74024529A1547443D22944475B33D494EA824EADFBF8 + 4E41668355C03531FFA0B9316BCD1EC1BB1515883B7C0823086CACEF24FCC17F + 0A467B7AC075880B9C0739A147A1844426476B9B08D5E5151034D6A0B9BE56A6 + D1A9DF2CC9BF6276266200AE8EFE868CE03A0330362ED9E8450A8910C2BA224C + 9A1200DFC95321556A41EBB418E8C082BD1D0B762C1668922D68C98FB56F0493 + E4B507FCD24A9415DD4255D92D5AABA2C2F8BC8C2B160157ED394927EC5B6772 + 178B841DE04445C277D2340406CFC78B7E13E1E2680F7B7B231D93D0921CB89B + E499296937D05A5781CAE29B325AAB9BCAE7A5379A0DFC53E457F409CEDB866F + 126371F4F0DFF1402C47604818E6CC9A8E214EF664C44C8F843EFDFA2A2507C3 + 1C81925BB968ACBB7BB138376389D9C095BB93E878CE7A0865C6812DCD3FE313 + CE5EBC12148125CB1681EDEA0287BE74FFD394929E0F3F7F7F64A75D42615E26 + 944A853F598F1566034DDD8DB8B516CEF65A4C9D3D0FB01FC84CEDE39DFD2A62 + 1971BF1E18801BF985C8BB9A8AD6A6BA03C5F9E97BCD029A132F078617FABDF4 + EA8C798B96E18571DE18EC6467C9E54C501A1A25B52DF831F51CEEDEE11515E7 + A507F41B70FADCF0B6975F0D1D15B674057C470D6576AC35D1D02645DAB9B328 + E665B5F373D33DCD02EEE25E3739C5BCD3873033281C9302E6C2D1C10E76764F + DEA17E6A87383B61C21836697FF206D45A9A7931FB3E39190539A920C03EEFF2 + 31E0C10D41E84B19B6742D7C26CFC0CE2DEBE132C89159737A038B39F4BFF55E + 5DF57327BABA298CF31EC134EAC8DB9D9639001D79362A7B94483E958CE2FC2B + 427E5EC6488B80FA0E8CC53B9B3E84DD200F6CDEF836BC470D37FA3941BB142A + B5161282F4F172671EDCBF8DFB6DED38937CD6B235F80B50FF2E6B2CB827FF85 + 6C5E2956BFF5168266FA1BFD9C50D2CD0029B58E4C27417ABA3D86CCE515E1F2 + A50BB827F8E9AF6404A32C02525AE3C0864601DEDBF21166BF16816D7F590117 + B2D69E16F21E1503D41F6A0D412A288C2548FD335341A697FB6D0A6EE56658F6 + 1CDC9998431F7AFF35D2696F6D66CFD7D79F7A41EDCDCB184A60C1A10BF1FBF1 + E39E687F69FC2868C862A31E01F5E5108A206564247D09F262FA0D5CBB760D82 + 86EAAB45D72F87C2441880E656B7DADA3AF0EEA61DE4BBF8452C5FBC904CF593 + 852BFDE38752F7C218A07E2409BAB8AC0657B36FA0A6EC36868F1C2D960A3B83 + F3B2CF949A05B4A4BA25E96846FDED4C92CDCCC0AC590198EA3701031C1C98B6 + C963D9902BD510491464F7EA985D4C516A1497568177B310351585E0ECDECE6C + A0D32997742D82DA996505D7F826819656B7F8774AF1E9E75F927CF079F8FC6E + 226607F861A2EF73F0701F8AC1839D21252956735B271A9AEFA3A8A41A4DF535 + 6453D481B36707425F9F832E9902274F5D40DCC1CF5B353AD59C767D5ADE17D0 + 9AEA96B25B8A96CA02C81FDCC34892B8BAF691516BD45416DBF3F9E94B22E6BB + 2F5A3017553575C8BD5D4EDA5A71F9C2E916820C7C1AB25FAA5B0D8D4D64FA0A + 50524AFEA15088870FC5707777037B041B32D650DCAFE433EF247316AC9A32CC + CDAD64F2781FFB9AFFFC044FCFD1F0F41A0D61FB3DA3C8FF7B75CBFF9590690F + DA9B535DDD477AFB8C9B002F2FEF3E91CFA4BAE5E5E53B86E5E8C023C8E74C21 + 9F5975CB5CE433AD6E99837CE6D52D53C8FF028EE31324B97575BC0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Find_15_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000007384944415478DA + C5D80B5414F51E07F0EFB2B00896820A08181EC85E5E83EC2089E5032530044D + 330DADCC6E9992A699A920AB75AF17F376F44A8AB0A8D9B1C4072A8A3C4410E4 + 11CA43405031112416E4EDC2BED89D7D4CFF1D702B8565D8E55C7F87D933CBCC + FCCE677FFFFF7FFE337F0E7AE2CB984C7AF7673E50AAB4CCF7CD07B3C036BEFB + C407722585071205B389C8269653C8BF75BF422695CE8CDD10D4C63AD923C179 + B8B32E3A83FEDFCA59E8EA010E34AC2CCC20922AFE86EC6490C29B7B56FA4E30 + 19B8362A9DDE13E20B19D50D0C8DCD609D64C70A5F5435889051720F5D4AF5DF + 8EB5774811F9F99B1CD6C9FA027EB1378D8E5CED07A952636C2E506A0DCAEEB6 + E07EBB44FFBFA25B42FCB0C6DF74E0EA1F52E9BD6B6643DCD50D0C8B4D331ABA + 69E90CD4B78AA1D6D23899791DFBBE78CB74E0E77B92E97D6B03D02137BE827F + 0D9A6C5D4A15228E64226ADD1CD38121BB93E8A82FE74024EFEE4361D1A946E3 + 2256BDA5DF0F17A461FFFA40D3812B7725D2D1EB83D02E531B9BABD70817A422 + E6ABB9A6033FFBFE2C1DB3611E5A25AAEEC4D14946A3B6AF0AD4EFF30529107C + FDB6E9C0153BCFD0828DF3D122560D5AF518604C1262372D301DF8C98E5374EC + A677D0DC030CDF7FCE68D4F690797F02A313713074A1E9C07F46C4D3B19B1712 + 203568D56380FB137128EC5DD3811F6F3F410B4217E981FC7D678C46FD7BF502 + FDFED6A8B3F8317CB1E9C0E5FF3A460BC216A3A97370FBE0B6A83338BC35D874 + E0B26F8FD2B161C104D853C1BDA7582751484590B4D643266A844A218746A580 + 8D8D0DECECECF080E2A1ADAA6262517E4A9949C00FB7FD420BB62CD103D94473 + 73337EF9F9084A4A4A61EFE802DB91F618623D143CDE105094020AB90C1DED2D + 686EAC838A52266855DAAFAFE5A7561B05FC807F848EE12FD537F1B6C8E3062F + 94899AD1F85B01C68C7D1663DD5EC228671728D53499DE28502A357816E6B0B6 + E4C165B42D6E5E2F476D4D25EAEEDE96A8B5AA774B722FB09EE8F5C0A5E13FD1 + 82F00F5855F0464539FEBB73275E7CD90BAF4E9E02AF891330FC692BF0B81C70 + CD38207FCC5CAC210F0B14417748BA50587A03A5055770B3EC0AAD5152014579 + 291706045C12F623A9E0323D705B645CAF17A81432D4975FC6F857BCF0ECCB9E + 108915186A69060BEE23E380D3FDFDC3B77D409CCC635C7CD26508EF94E346F1 + AF125AA37DA5282FB986353078F3213A7AEBB27E4771E4EEEFD1269262DA9B73 + 306DCA243C3D84CB54ACBFA009F2C0A92C0CE3695172251B355515678BB353E6 + B306BEB7E900BD9FFF917E26E92D8475BFE31BFE1678CF08C4FC77E6C2DE6628 + CC0DE91E39149F928709EEEEC8483A87829C542814720FD21FCB5901176F8CA5 + A3F8CBD122E91B9870EA240A8B4A11B0E03D4CF67487358F6BC8F3589CBD988F + 99D35EC3E5DC02E45C4C44FDBDAA88E2DCE42DAC81FD95BBE1460E9E7BE11F70 + 258383C7D5F5BBBF66E2F49EF89163013E5E28B92D447AE269545CCB2B2CCE49 + 7E8D15904D4C9A3EA7D1F30DFFD1010B16C16DF43066C41A13D58D62249D3E81 + E2BCB4A6A2EC64C7C104AABC7D82CC170607C3C6DA0216E69C812520A1D2D0CC + 7BCFC9B838E4672682000DA6D01F5C2FC8EAB789AF9E898687E71BF09CEE078E + 990ED77DCFE39026E470BA5B5297F0292B4B3C376614738EEE16A3251F1A6623 + FB64382BBA14883B1A87E2DC0B2D4539290EAC81BB56CC8021E5F255EB616665 + 8F90551FE1198751BD9EA3BBFE765D3B796957C1D56904F9018F17E87E63138E + C79D18581F7C08D4FDC2BE22E6E0CF48CF2BC592F7DF878FB7479FE7D5B588C9 + 74A761906E4EB68F21B3F30A71FE5C021A6AEF7C472A183A20A0EE5DB6AFA8AE + A9C5C7211BF0BA4F20D67CBA084F590FE9F5BCB64E399404A8526B21E9229574 + B4D123E5A4790587E371253B6560F7C187404A63B82B6EF96607EA9AC4080C0A + C43CBF29BD9E2353504C05752B0D14414A7B90BA517FFA7C162E5DBA84DAEA5B + 170BB3CEFBA39FD003D9AE6E29A49DB89E1E8797DC27C1DFCF172E2ECEDD897A + 32B9BBD9434346830EC60009544DBE4B152ADCABAE41626A262ACBAE62A483B3 + 48DCD23E2B27E378292BE04056B78AAE9522746B04F334E333DD1B41B3BC30D4 + EACFE626F770A679754815414AE54AA4E75EC3AFF985A82C2F007FE35A74C828 + 1C8B3FA715D6DE9E5C967FA9A85FE04057B73A9A7FC7DDAB69701EEB06D7712F + E2558FF1701E6D8709E39CC0E572D1D0DA890EB10CC286661497DDC2BDBB9564 + 505481BF791DFC674E45A7448E43471310B9EB3FF56AAD726A536D6DAD41A031 + AB5BBADB45CC81C32820F3B30379A2B631F044AD565169768E6327CD0FF41B31 + 77F674DCACAC42F6D5EBE4583DCE271C1312E4B4DE9083B2BA25EF6CC383861A + 885B8550CA25CC7BC9B0E1C3613B6224D49623D15051C8BC934C9D1DEC3EDCD6 + B664FCF3AEDCCADFEEC0D1D1198E4ECE68696AE813F97F5FDDF2F0F69DD8D654 + 976833C2618CEBB817E0E434C620F289AC6E3939B9B9702CCDF308F299FE904F + 6C758B2DF289AE6EB1413EF1D5ADFE907F00B3152424AA8D0C16000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Find_16_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000073C4944415478DA + C5D80B5453751C07F0EF78C9230EA0220226C1B1D252943289CA6066410A26A6 + 199A99D5F195A999892C885399F6389AA4085B5A1D4FE2FB01F290E411B0786D + CD810F541491E71812636F36B6DB7F035724632F4FFECE7676C7FFDE1F9FFDEF + BDFFFBFFFF6818884DCC626AE7CA08A83414AC8966610FFE9228D14DDE62B91A + 15756D3C29A848D62AFA1DAB120E04EDEEC647E945D4AE5574F4AAB5FAEF5BF7 + 179B9DE4EBF7E990F7AAF4C07F902A945F69BB28934A67B136C7588D340037A6 + 1550DFAF7E098A01A0A5E1E268876EA97210B2478F6CBEBC7BF5ECC9360337A4 + 9EA776AF9D0D99AA1F98C02A303BC98E95B351DFDA8D02DE2D287AFB06B57589 + A448F9E0659AD9C98C01D7EFC9A752D6BD0269AFC6DA5C50F569C0BF21445B97 + C4F037CE9566FCF061A4EDC0753FE4517B3E8C8258D10F64B0F2AD86C62F8D40 + 4BA7187D5A0AC78A6AB077FDABB6033FD89D43EDDD300722B9F53DF8EFD08D05 + 8A5E35B61F2C42EAC6B9B603D7EECAA6523F9A8B6E79FF35C448CBB31AB77DCD + AB86ED44663EF66D8AB61DB87A671695B629065DB23E6B730D1989CC3CA47F3C + CF76E0AAEFCE50E99B5F43A744DD9F382DDB6AD4B635D186ED24662E989FCCB7 + 1DB8F29B5314734B2C8462F57DEB3D3D303D1BACF805B603DFDF718262C5BF8E + 8E0160E2BE4CAB51DBD6BEF60F302D0BFB1316DA0E7C6FFB718AB5752101AAEE + 5BEFE981FBB27080B1C876E0BBDB8E52CC84370CC0A4BDA7AC467DB96E8161FB + B3D433F82971B1EDC0155F1CA6988CC510F4587E0D363636A2AAB2127C3E1F9D + 9D9D108944F0F4F484B7B737BA5523D0595F1BC229CFE5DB045CFEF9218AC588 + 23C0811EDC73C2E4C12A8514C2063E943D428CF11D0FAF5163E0ECEA06272767 + A8544A28E53288BA84E8686F825AD57B5AABD67EF26779DE4DAB806F27FF4A31 + 3F5D62009A8ADADA1A7CBF6B17468F1D8F47822661F2B4A9F0F71B032F7737B8 + BA3A432E27331AB10CAD6D425CAAA94163431D9A6E5C95F469D58B7865E7CC7E + 8E1A80CB920E52E9494B0DA73839E588D18364A20E08AE5662527028263C1902 + 09990169351A3839D881BC40A3D1F48F3A2D7916BF153B0B22B102D5BC4BE055 + 95E332BF82D2F4AAE670D8B9E72C022E4DFC8562262E33D98342610718F1F108 + 9A1482889723F1F494C7E136C21EF676461293D090199C8CCC928EE694A0F95A + 0D2E71FF90501AED340E3BA7C16CE012C64FA407971B80C92919431ED04E7ACE + 7B9417A685D1215602EECE760467FC265D322F5CFF49912EFDF1C4EF7077D480 + 57518286FA8B67B825B9B16603E3B61EA0D23E5B3EEC5DDCDC741BC9890C8445 + 4423F6F5F9F0F1721D16F7DF9663B96C4C0E9E8282EC4C5495E641A9944F25D7 + 63AD59C037E37FA4F625BD6378920C15A74E1C4335E702E62E8843E8F4297073 + B237D5018322F37C05E83367E0F7B22A94FE9685965BF5DBB965399F9A055CBC + 8545A526AD8050621CF87962025C3DC662C1E23711F4B00F1CED2D1B7FB38BAA + 31873E03BCABCD389F751217FF6457734B7342CD069AFA07B779E710121A01FF + 4783E1E26467389846339AF69EB6A8F0E9B8D92E46F6C9A3E0B2F3059C921C5F + B380E6C433E173D561F41887857171F0747584A303CDB20424D464DDAD5B561C + CBC8407951160870D8149602DBA7BF1039366E691C5C5C5CF4E39D6EDCD3DD28 + 76BA376D7042FD5848F58F871AFD5BF79D8252A144C6A10C70CBCE0939A5B93E + 660175950553407EFEAF08089880F0A818383A3B1BFDA5AECE2310E837928087 + FEFD6DED021CC9386AD93578B7F4319C326DFF419C2FBB80256F2D033D2CD8E8 + 7ED75BBA2151A811E4E73524B2845D8DB399A7D1DA78FD6BD28309160175A7C0 + 58DC6868C48A359BF13C3D1AEB57BE81875C9C87DCAFE58E84AC91B5901264A0 + AFE720A49C9C5EE6CFC75151926BD9387817A85BCB0E178CE41DB82D10233A26 + 1AF3239F1B729FBFC8B357B788D72165CABE01647FDBC9B3C5282C2C44E3CD2B + BF55179F8D8489B80768AABAD5D6DE8177576D40E0A4A7B068FE1C443C7B6FD9 + 45AE54F703D51AFD5D2B27EBE3477C3C50FC070F997945A8E35762948F7FB758 + D8F55269C1910B66012DA96E8904B771AD3C87CC6666E0B9E743113265221972 + 1CF46D4F048C2677AB56DF7B6A8254934F09997A1596715155CD435D6D1592B6 + 6C8048A6C2E1E399DAE6C6ABCFF2CB0B3926819656B738DC0B48DEF62D46FB06 + 2070C244BC3023181383C661CC280F78B8BB402C55A0A3AB07D76EB5825D598B + 861B75E4A6A847D2D68D889C35133D12390E1C3A8D949D5FB5F4697B670A74D3 + F2E180D654B794D21E345D6443D2D9021F32A3F61C6646DDA756E57BFB063C13 + 1BFDCAC87951E1B85C578F92CA1AD2D682B3A70F3713E48B4321EF4B75EB66C3 + 2D94949583CBE39319740724E21EB83DE40E774F2F38B8FBA0A5B65ABF269919 + 1517ECE1E5C57BE2B140FBBA6BD7E1EBEB0F5F3F7F0805AD4691FF7B756B6AD8 + EC903B82A62CCF913EE302273C0E3FBF71C3221F4875CBCF2F683C6D84039B20 + 1F36857C60D52D73910FB4BA650EF28157B74C21FF06EE502C244D6B6AF40000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_17_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000073B4944415478DA + C5D8095453571A07F07F40449639C67604028A45EDCCD852B52D22B65A40ADA8 + 402B4E2DA2A7D54E3BB8B5626D2B4BA1CECCB1CA9C1E5BA90A2453A773EC885B + 5DD8A5024E00D90261AB62456D640DB148C8BEBFB90936C210B372C6EF9C4092 + F7F2F17BDFBDB9EFF2D1F0207633AF5007E3C3A0D151B0279A6EF56350AC8048 + A6464D7B6FB542434564EE0897D8956C44D0FE17A8D2DA07EC120CE13E018E40 + 7225A022585BC27F1917E087D9E5D4975BC2A154EB0CAF93BEB9627592F4F7C2 + 2153AA0CC0874815AAAFF7B6492592A5AC8FA3ED461A81BBB24AA9AFB62E83FC + 01D0D6707371C2A044310A396440765D3BB47579A0C3C084A397A943DB9743AA + 1A0626B34AAD4E72207E393A7A0651CAFD1972A566D4B101A104193B5EA5599D + EC51C09D874BA88CF75740A2D4DA9B0B2A8D16CDB704E81D101BDFE35CEFC2D7 + 1F44380E7CFFEB62EAF0072B21920F035358257643133786A1FB9EC8B0229C29 + 6FC1919DAB1C07EE3854481D49580DA1CCFE0A8E0CFD5A2057AAB1FF78398EEE + 8A741CB8FDCB02EAE8879118940DCFA194AC62BB71FBB7AD323E4F6596207377 + 94E3C0AD07F3A8ACDDD118906AECCD65325299C5C8FEE835C7815BBEB848657F + FC3AEE89D5C389B30AEC46EDDB16657C9EC62C02F393358E03E3FF7E9E62EE89 + 8140A41EB7EA1980D9056025AE751CF8DE81EF2956E21FD1FF00989A996B376A + DFF6D71F02B3F2F04DF21B8E03DFDD7F966225BD4180AA71AB9E019899876329 + EB1C07FE69DF698A99FCA6119876E4BCD54914E24188049D10DFEF835A2E8556 + AD009D4EC754AFA910AA264170B3E5794E7551B343C077FE769262A6C4823F64 + FD1CECE7F371FCBBEFD0D8C88517C31F539EF4C224770F4C9C38092A95020A99 + 14C20101FAFB3AA156292FE8D4BA4F1AAB8B6FDB05DCF4D713142B258E001F54 + F0F0F7663F281DE4A3E77A35A6CD988519B3E6C06BDA5364274441AE5293DF5A + B8BA38C3CDD505337CE8686B6E01EF763B3A6FDD106B74EA75DCCA4B56DFA68C + C0B7F7FE9B627EBAC10834176DADAD484F4FC71F9E0B46D0A29711FC4220E89E + 6E709940C304271A68242B456E255A72ABD3EF2F856239EAB93FA2B1B61AD79A + 6B28AD52B59A535574C926E05B69C7A9ECB48DC621DE9B71CAE407D40A29EE36 + 97E19979C1787AEE0208254AB84F74828BB393C9CC6FC78441473648FA4DC899 + 7C363A7F6AC68F0D57C59456379F535578C76AE0C6D47F51CCD4B72C56F0AB83 + 5F40705F82D01551087B2908BF99E46CA898C9A423427F6F669D63C3D359036E + 0D1B773ADA2E36B08B62AC066E48F927A9E02623706F46CE989395D221F0DBAB + 10121609CFA9FE649E0D0FE9A884B4D1C9D7AD5E6C7C7DA6F82A9E0D0C446941 + 2EEA2A8AA150C8E691F9D86A15302EE91895F5D926B3DFE2F3674FA38ED384C8 + B57108099A0B0F57674B051815172FD7207CF102FCA7B20E153FE4A1FBE78EFD + 0D95859F5A055C9FF80F2A336DB3F14E622AFE929A0CF7C93E581BBB1E33A77B + 937967DBFA5B585E8F55E1C1E0DEE8C2E5BC73686BACAA6FA8285C681530760F + 8B3A9AF60E04E24703776EFB339E0E5C88D88D71F0A27B90E1B40D58C26EC0CA + D020DCEE13A1E0DC69345495F039EC4286D5404B7FE04E7D1E168545C177F6B3 + 70254B8AB37E491993913636F988374243E61B76ED677272505D9E0702347B95 + 3695604168645FD0E2089F38524137373743052790D5450F75D23F68A313EAAF + 58DF07D0911F5AC343FF9A8242AE40CE891C34545E12702A8ABCC70D18F44A64 + DD732F2E0E5EBF2116BE0C1F5B3E3A2A7AFBF8389573DAB639A8EF2C584ACC6B + A9824E3280572363E033DDFF9157E9E13611018C29A4A2A6AF9F5D558FFCDC0B + E8E1DD4C27154CB61AA86F7D9853DEBAC3C3E6AD1FE1E5F02824C4C71288ABC9 + F36EF7092151683093411F839491E1657E7B1635EC22DBD6C15F81FA39622E92 + 3E3B80BB7C11A2A3A3B026E22593E7F40E48A026134E4A900106E4C363E7F2AF + A0ACAC8C6C1EAEFF507F253FC2D2A88D015AEA6EF5F6F563737C0202E6BC8037 + D7AC4658C8D8AE86BE05A2223B1AB556BFBBD1E029EFC90664696523728BCBD1 + DE5C8B27BDFD064582816515A5A79A6C025AD3DDAA6F684262DAE786DDCCD2D0 + 45885EB6101EEE0F875BDFFE506B0850A383865472482A474D5D13AED672D1DE + 5A87B43D09104A5538793657D7C5BB11D25C5DC6B108B4B5BB35C8BF8B9B3545 + F0F39F8980D973F0E2FC39F0F3F142E02C86013B44B658F7EE8BD0C1EB41655D + 2B19D21BE44BD181B4A45D8858BA841C97E1D8890BC838F879B746A75CC2E7F1 + 786681F674B7F4CB4526F35BD472B8F0263B6ABA991DB546AD2A99CA98B12026 + 6AC513AFAD0CC5B5F60EB06B5BC8B16EE45F38D94590AF98428E4B77EBDD65B3 + 70B1A8CC0095888450CA247075F784BBE76478FCD60FDD2D7586FF4996AC8C9B + 3B79CA14EE33BF0B706EFFE926180C3F307CFD20E0F73C12F97FEF6ECD5BB4FC + F95FF89D79F427BCA705CCFE3D7C7DA799453E96EE96AFEF4C7F9AEB842A829C + 6E09F9D8BA5BD6221F6B77CB1AE463EF6E5942FE17BFD02F24AA448256000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_18_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000072A4944415478DA + C5D8095053771E07F06F4004C46AC0150C1E2DB66EB5F5A25A91AE0A280A0AA8 + 6C6D55D86ADD6D3D6BB56E1544D0D98ED2EEEEE04A3D2069BBBBD359116F41CE + 0AB85C2142488256A005258240082221F7FDF625D054E57A499CF5370C79E4BD + F7E333BFBCFF911F0D7DB18F799348DA1A082341C09628E03D408F520B4E5D3B + 5BAD2742CEEC0A92DB94E899A03D0BD41B6D03F21B3BD02D5343AAD4A1A2AEED + B921FB01B506DB802DE21E3C26814F2079721021AC6D418F9E0BF0B3D422E2F8 + B620687446F3DFB1DFDEA49CE4AB8F82A0D468CDC05F915AB06BDBEE28E4F2A5 + ACCF236C465A807B530A887F6C5F06551FD0DA70757240B75CFD14B2C78C6CB9 + 7B627BF04CBB817B4EDF204EEC0C8642DB0B3CC82AA09CE4CBADC16868ED2607 + 4A13541AFD53E7BA247224EF5A4EA39C6C30E0A727F389E44F5640AE31D89A0B + 5ABD01824631DABA6496F7AA6A5BF0F5EE10FB819F7C9D4B9CDC1D0AA9AA1718 + C7CAB7191A131D88879D52F38C70A1A806A73E5D693F70D7896CE2D49E559028 + 6DAFE093619A0B541A1D12BF2FC2E9BD61F603771ECF224E7F16866E65EF3314 + 97926B332E71C74ACB713C331F67F685DB0FDC9E9449A4EC8B4097426F6BAE01 + 239E998BD43FAFB61FB8EDEFD788D4CFD7A053A6EB4D9C926533EAE88E70CB71 + 023307CCFD6BED076EFDEB158279201262A9EEB955CF0C4CCD022BE6F7F6033F + FAF212C18A79171D7DC0F8331936A38EEE5CF32B302513DF1E5C673FF04F8917 + 0956EC3A12A8B53A495393101C0E077CBE00627127241209E8743A3C3DC7A35B + E70AF14F02DF2A768EC02EE01F8F9E279807DFB700134E5D19F666AD4A065103 + 1F2A49073C1953E03ECE132EA3DC3072A40BB45A35D44A05245D6274B43743A7 + D55C35EA8CFBABD9B9F76C026EF9E21CC18C5B0F510FB567B0A6A606C7939230 + 6EC214BCF2EA0CCC9E3B1793BC3D411FE38651AE2E50AAC8F558AA406B9B18B7 + 050208EFD5A1B9B15EA637EADEE395E6515E052CC0CD7F394BB0E23692C0BE0A + 9EBC34E84D8A6E11DA6ACB3163B61FA6CD7A0B32F216C260C0C8110E7074A081 + FC314FD4067225D9B4260012B90A9CEA1F51CD61E3AEA0823068B4ABAACA72F2 + AC026E3AF21F827928CA021C2CC41D1D88893980A9D37D11B43C14F367BF0E37 + 67078C70A00D92193092FB0FD31A9F9E5582E67A3E7EE496CB0883716E5559F6 + 7DCAC00F12BE275213A22D1FF191E4F4016F68AD65E3371E74F8BEB3CC5CB997 + 9C7BAB365844AD5E627E357D93F8E65231DC1C75E05514E37EC39D6BDCE29C48 + CAC0E8F87F13CCF80F86AC6073F303C4C7C5C13F301CEBDE5B0B4FFAA8FE951B + 222EE4B1F1C69B6FA2202B03B74A72A1562BE790CFE36D4AC0A8B87F9215DC6C + 011E494EEB77F1E3965AB8D0F458B8341C1A230DA39D1D074B075ADF61E40A7F + CB7BD76E7010F8BBF9F86FE92D94FC9089874D0D89DCD2EC4394801B63BF2352 + 0E6F1E72141F39148B516327E0DD0D1B3175B2179C1CAD9B7FB38A2AB132F06D + F0EA5B7023F332EE549755724BB2FD280137C47C439C49F8D0B2920C14BB777C + 8C6933FDB0213A0AE3C98FD781661D30AFB81AA101F370AF5D8AACCBE7C12DCB + 17551567332801D71F6011A713B6402C1B1CB8257A3DFC02C2B0E9C33FC0C569 + E8C131501496F311B070AE79537C212D0DECA24C90C021933C051CEE1F3CE0E5 + C1D72F10D3E7CC37CF73345AEF9C677A3515D3E19967D0748D69F412E4AF5F8E + 17CE9B09353989A79D4D03B7344F5C5592E345094825E62F09BB356BDEA2051B + A2D6C39B31C1AAEA3D196DED22A4A79DB7EE19A4045C1C766C92CFB4B8883591 + 0858B4C06660715925AE675C45ABF0E7AFC80A1EA404347516864BAC9074E24E + 413AFCC9E7303038080E8E2330D038717371820FC37DC041645AA399FFBA888A + E21CEBE6C15F5A1FC329630F2742488EC2888870AC0D7D67C06B84A21E28C9A5 + CD8741C7B3E3E8F2F59B282C2C24370FB53F54DEBC1E325C51FA0187EB6EB5B5 + 7760D3C77BE033E32DBC1FB90A817EFD9B061DDD0AE80C46A8B406BCE235D682 + 2C28AD46466E11EA041C8CF39AD82D15772D2B2948E75B05A4D2DDAAE4F2B13F + FE18A6CF5A80A501FE8808F6C3685767CBF91E85063ABDD18CD4E80CF0183D12 + 57724B51CEE1A1EEF62D241CD80389428B7317338C2DC2FA85027661156520D5 + EE56259787C35FFC0DE3182FC3E7B51958B46016A6BF3A199E1E63C80DAB13A4 + E416ABF3B114B58DCDE0F2EB20BC5F4F0E8A0624C4EE45C8D2C5E89129F1DDD9 + AB484E3AF6506FD42C160985C22181B674B7D4F21E0805259076B6C08BDC51D3 + 87D851EB75DAFCF18C97DF8E0C5FE1B13A340077EB1A50CCA921CF3DC4F5ABE7 + 5A48E4928190CFA5BBD578AF09E5E5156057F220EA109BBF93BC34660C468F75 + 075C3D1EB5DFE52D377D27591CBA71F6587777DE1BBFF571ACFBE967301813C1 + F09E08B1A87550E4FFBDBB35C73FD8F791A83993EEE135C9E7B5D7E1ED3D6948 + E40BE96E797B4F9D42731E514622270F877C61DD2DAAC817DADDA2827CE1DDAD + E190FF03924A3224B285EDF50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_19_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000072C4944415478DA + C5D8095453571A07F07FC20EA3857A0A035A148F4B45ADE30A78444019A1203A + 74B3422D768671A956AD635D908C677A2AB6E3B1952A4232D3CEB41D51710559 + 445984B09A10222E60519B1A9610410809D993372F91A65022BC249CFA9D13F2 + 96DC2F3FBEFBDE7D379786FED8C92C258E6C080501CBC3D026ABEC1E38F74455 + 4A2D1171624B98CC8A346683F66BA09EB0860814F17E8244AE464D63FBA82287 + 00B57AEB80F5F73BD02D55A257AE417563DBA8218700D53AEB8042B1044F48E0 + 00244F062282B531AC7354801F6594105F6C0C834AA337EEEFFD7729E5249F25 + 8641AE521B81BF20D5A8BADB76AB4F265BC6DA156335D204DC915E447CB96939 + 14FD404BC3C5818E6E9972105262440AEF1CDD143ECB66E0F6B46BC4D10FC2D1 + A77E0ADCC72AA29CE4D0867034B7769337CA8F50A8B483CE75F5C890BAE58F34 + CAC99E05DC76AC9048DDBA023295CEDA5C506B75E0DF17A3AD4B6A3AC6B92BC4 + 571F46D80EDCFA550171ECC348F42A9E029358855643F7C487A2E571AF7144C8 + 2AB989E3DB5EB31DB8E5681E717C7B147AE4D657706018C602854A8394EF4A90 + B623DA76E0075FE412691F45A35BFEF41A4A4A2FB01A97B2F935D37632B31027 + 76AEB41DB8E9480E91BE33065D7D5A6B73998D64660132FEB6CA76E0C6C39788 + 8C5DABF158AA799A383DD76AD4A79B579AB619CC7C303FFE93EDC00D9F5F2098 + BB6321EED58C5AF58CC08C5CB0F6BC6E3B30F1D03982B5E70D74F403934F6453 + 4EA2903E416FC74F9076B641AD9441A756C2DDDD1D9E9E2FA147EB828E26FE5C + 4E553EDF26E05F52CE12ACBD6F924035E5C6229108DF7EFB3D385C1E3CBD7DE1 + 31CE13CEAE6E707474869A442AE57DE8E912A3A3FD11346AD545BD46FF715D55 + C103AB807FFEF40CC1DCF7B609C8387E61D886B227ED10DEAAC484899331718A + 3FBC7CFDA0D61050A8B5E4BB168E0EF67071B287AFD70B68A8E74370BF118FEE + 3749B57ACD5B3CF615CA83AC09F8FE27A70866D21A8824235F830D0D0D484939 + 8457662FC282C54B10387F16DC7FE702473B1AECE8009D4683E181A923076A8D + 96209FD10AD4706FA3AEA61277F8D5844EA58EE254E45FB10898F08F93042B69 + 2D09ECAFE0B173661BA81532087857E13F6711A693AFEE3E0DDC9CE8B0A7D307 + 27EECF9CB03A188629A6E1117A2AB71C8F1AEB719B5B292574FA3F702AF21E52 + 06BE77E07F04737F9C09F8AC3872F8303A9E4811B62206A14B16608C33DD58B1 + 91C23051675D60C395A602AFBA0C0F9B6F5DE296E5C75206AE637C476430E24D + 5D7C20F5F4900FABFA2468BD5D86C0D0688CFDFD2438D9D3C8CA0DC60DB41A36 + DF8A5A6CDACFCAAFC18C993350949B8DDAF2022895F239E4F5D84009189FFC5F + 8299BC6ED80A9ECB3A83EA1BF558F9461C8216CE869BA3DD88951B18978A6A11 + B2783EAEB36B517E35072D3F36A770D979FB2901E392BE212B9860021E48CD1C + F261614329A64E9B896973838CDDEA30D0F7AB6EFE792F66F922D3B1DC120E22 + 431680D724C4B59CF3B8555771835B9E174009B876EFD744FADF1386BD8BB76E + 4AC4D4590178273E0E9E1E6EB0F4F15058CE43C4D27978D0DE8BDCF367C0AD28 + 1471CAF2BC2901DFD9F32FE20463BDE949622ED6C7AF4140483412D6BF0B6772 + 8A4F27AF3F4B90C5957C2C0D9C639C73666566A2AA24072470D814A6936B76B3 + 8834C6FB104B9F0DDCB6F9AFC60AAE7B2F0E6EAE2EC6E6867BC4F0A2915D6CEE + 6636DCBD04F9C730D45CAF69308E994A8512992733C1655F1173CAF3BD280347 + AA40EBED724C9D3E130B9784806EE7603E91990303EB1C34DF1F6DED229CCE3C + 63D93548251604471F9CE037352966752C42962CB2A4E9A028ABB881CBD917D1 + 2AF8E133B282FB460D382F38F2556767D79B412151D8B0FECDFE6EB62CE464F7 + 32FF7316D565F9968D838695052A5F70979D8DB1CE4E581A160EFFD9FE6693B9 + 3A3BC0CFDB037433FFFEF9CBA5282E2E86E0C1DDAB374A2F478CF47D43963E46 + 521AAE9F7589DBE137631EDE8E8D4258E0E0DFE486F642B1144A8D0E93C899CC + 406411BB0ED9052568E4D7609CD7F8EE5E71D7F2F2A2D3F51601A9AC6ED572EB + B16BFF41E36C66596810562D0F809B8B93E97CA744018D4E0F1589F4F51C4376 + AB0AE7F2D9A8ACE1A1B1A1168CDDDBD1D3A7C6A9B3D97AA1A029905F55CCA10C + A4BABA55CBE181F1C93F31CE7B22FCA6CC4070C06CBC32F965788E1B4B8E3B74 + 48654A883A7BF040D0022EBF098287F7C89BA2198CBD3B10B12C1812A91C5F9F + BC88D423075BB47A55B048201050025AB2BAD5DA26421AF31BF2F9CC831739A3 + 761F6646ADD5A80B5FF29EB83076E58A17574586E04E6333CA6A6E92E75A70F9 + E22921895C6A0E392AAB5B89619370ED3A1B9C3A3E3AC48FD12B91C06D0C5949 + 3B2785522649D72954DF1B7E930447AE7DF5050F0F9EFF343FBBC67B3FC0DB7B + 3CBC7DC6432C6A7D26F2375FDD9A13143EB753F428C7FD45AF097E53A6C3C767 + C2B0C8E7B2BAE5E333D997E6645F41225F1E09F9DC56B7A8229FEBEA1615E473 + 5FDD1A09F97F3D513B24196C18320000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_20_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000007324944415478DA + C5980954536716C7FF01D942AB506A045C2A1CA7A2B52852A5CC0C9B5001455B + A7AD1DA1153BD371A9B55A5B1510EAB1C7DACE78EC485D20CCB433A733E28ACA + 0E9565580C4B6208A24445658710412009217909797D0934C2617B4938E33D39 + F9DE7BDF77EFFBBDFBBE7BBFEF5D0686642FBB90846952AA5023F4CCCE009989 + 7646086338E0F1ADFE308652AB73B1E81EB8F7441C859A0C9E4AC851801AD238 + 47E6F11BD12B27502E6C9F52C851806A8D7180550F3AD02D55402257A14CD836 + 6590A3008901E3009BC5BD7842010E83E4CB4006276D0BE89C12C0CF120BC8EF + B60540A9D2E8CEA3FE5948DBC8B71F0540AE2474804F2109706ADB6AFA64B255 + 495FAC331A520FB827218FFCFBF640F40F011A2A361666E896294640F6EA209B + EF9CD81EB4C464C0DDA7AF93273E0E421F3108189D9447DBC8375B8350D7DA4D + 054A3DFA95EA117D5D3D32C4EF7C8341DBD878809F9ECC25E33F590D9972C058 + 5B20D403103C10A3AD4BAABFC6AD6DC6F7BB824D07FCE4FB6CF2E4AE1048FA07 + 016392728D063D10E18F96C7125D46B858508D539F869A0EB8F34426796AF71A + F4C88DF7E070D1E6827EA50A477F2AC0E93D6B4D07FCF8BB0CF2F4676BD12D1F + 9C433109D946C31DDD11AA3F8E65E7E2CCDE30D301B71F4F2313F6AE43579FDA + 585B634A2C3B1B899FAF371D70DBB16B64E2176FE2B15435683821C368A8233B + C2F4C771EC2CB0F7BD653AE0D6BF5E21D9FB37402C51196CE4517D3DCACA2AC0 + AFAA8258FC183D3D3DB0B3B3038B3513BD034C8884551E5C4E96C024C08FBEB9 + 4C261D781B1D4380B16752275526E452B4DFE741DE2D02CB691EEC1D58B066DA + C2D2D21A04A18042DE879E2E313ADA9BA0229457352ACDBE9B9CEC874601FEF9 + E8253229EA1D0A90A0A5281054E3D8B1E370709C87F90B166399C732CC7166C1 + 7E06134C1B6BC8FBA9D5A4B70F2D6D8F21A812A0E1412D9A1EDC95AA35AA77F9 + 2539B473981EF04F472E90ECE88D7AC0B85357C655923D11A1A5A6048BDC5762 + E1D2D7A09DB6E4800696D31830376380FAE9D20C75099BDFF4418FB41FE5376F + 83CBB9813B8232724049ACE19666E51804F8E157E74876CC7B10F54E3C073B3A + 3AB07FDF3EB8B87920303814AFB92F84ADA519A6998F1F071A2A61CB941A9CCB + 2846A3908FDBBC1B52EA8196714B331FD1068C3C7C964C8AD944010E79F0E4E5 + 31155A6E97C2C17E3A3C7F1F0429C1C0F356E630331B09C718761A11F63B5DAB + DD07B3AF94800925F86545785457738D5794B58136E0E643FF25D907C3F58063 + 49536323A2A3A3E1ED1F868D1BDF02CBDE16D3CCE8BCA841B9985301B7456EC8 + CB4845457136140AF9526A3EDEA205F841DC4F64625C84FE151F8A3F3F6A7067 + E31D58818077D07A101A069EA3BC37AEE121376E58EDA5BF76ED7A257CBD97E3 + 7F251528FE390D2DF5754779259907690146C4FE9B64C77E30A1076363A26033 + DD11EF8687C3750E0B16E686E5DFF4421E427C3DC1BFDB8CEB6929A8B9595AC9 + 2BCEF49A48477F87F0981F290F46EA010FC5278F1A5CCFCD8287971FE6BA2D83 + 3515B1BF7A89310167A89FA7FE38A7988F609FE578D82E4146CA05F04A7345DC + A24C275A809BA27E2013BE8C9C308A23C337C2CB6F2D22B7BC0F1B4B739819B8 + 80E573AAE1EBE5AEDBD25D4C4E06A7200D14E08456F49D7F3CF00FF24CDC16FD + 4A3296ECDAF117FC668917366F8E0093694D290FE63C066370CEE9DA61E3B5B9 + 501BBD24F5A76D0BCB6BF0BAE72B5050493CF96C32782539626E71D62C5A80EF + ED4F224FC77D08B1747CC0C3B1D160CE7044F8FBE170769C6998FB28B9C1AB85 + B7E762B4B58B703EF9826173500B38D90D9E340B616B41C2FF8D35D4BAFBE253 + 238C71CD8EEAF3F67043516925D253AFA2B5E1FEB79407A36901D291E53E21EE + D6D6CC6A6FBF35D8BAE51DD8326D0CF6A2768D66FFEB12CA8AB20CCB83746585 + EFDA14979797FC213030106FAF0B30183025BD10F9F9F9687858FB7365617AF0 + 64E3475416E8DC4021EB4555CE7FA88DC20A0405FAC3D575FEA0A1618FCAB4B2 + C07C47BB51519E577213A9D905100ACAE1306B76B744DC15589C77BE8A3620DD + EA5605AF0A9FC71C81DBAB2BB1CAFFB7581FB812CF31AD747D5AFDB6CE3EDD27 + E83CD6F314240332B90297B34A70A39C0FE1AD0AC4EDDF8D9E3E02E72EA56A9A + 1BEEBE2EE0E4736903D2AD6E5570F93878F86F70707A092E0B16C1C7EB55B8B9 + CE05CB613AB4C50989AC1F5DDD123435B7A29C7F170D8FEE51415187B8A83D08 + 5EE5835EA91C3F9CBD8AF8E35FB7A8354A1F514343032D4043AA5BAD6D229C4A + FC119C4A3E66513B6ABB0976D46A15913BD3E9A5151BC256BFB03EC40F778475 + 282AAFA6FA5A907EF55C3305E93B16E49454B7EA1ED6238D9A5B82EA5BE8ECEC + 8454228185958D9A82AA2607D4D9502345FB4DE213B2C97D86BD3D7FF1CB2EE6 + C27BF7E1E4341B4ECEB32116B58E0BF97FAF6E2DF50EF2E81435A5D9BD306B8E + CB828570769E3321E433A96E393BBBCE63584D2BA520E74E06F9CCAA5B74219F + 69758B0EE433AF6E4D06F90BE2024A24207190F40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_21_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000070B4944415478DA + CD987754537714C7BF6128965A518F507070A4D622079CCC2256868222B656AB + 156AE9F028ADB65ADB3A106A87D58EA31517249DC753415444B65846596124C4 + 80C810D0282B5011484236797D0934C5B25E02ADBD7FE4BCDFBAEF93FBBBF7FE + 7EEFD2F03F17DA5F0F7BE8D9C42875E54B9558757687A7E85F033CB66D39F4A1 + 54AFB9985303560D9F295512BE630939005045E867C80CCE3D7489E528AA6A19 + 53C801804A957E8037EA5AD12194422056A0B0AA79CC200700CA7BF4036C68EB + C24312B01F244704C297B1DDF3C198007E1095451CDFEE099942A569EFFF219B + B292AFB67A422C936B00FF86948359D97CB35B24F2627C14A037A41670776406 + F15D8837247D80BACA0463037488A48F407669201B6E9D08F1B11F35E0AE33BF + 1127DEF541B7BC17F0002383B292A3DB7C50DBD44106CA5D4864CA47C6DA3B45 + 88D8B1824659D95080EF9F4A272276AE8448D6A3AF2EC8953DE0D6B5A1B95DA8 + ED635536E0E47BBEA307DC79328D38F59E1F04925EC05046BADEA0FB8296A3F1 + 0F8126235CCC2AC3E9F7578D1E70C78914E2F4AED5E814EB6FC1FEA2CE051299 + 0247CE65E1CC6EFFD103BE7B3C9938F3813F3AC4BD3E141A99A637DC91775669 + 9FC3E8E938BB67CDE801438E2512917B02D0DEADD457D7A012464F43D4876B47 + 0FB8FDDBAB44D4472FE20FA1A257716432652512413B3AF9F7207CD004B94404 + A55C82C9666630379F864E9529F8959C452C662A775480DBBEBE42D0F7AE439B + 404179319FCFC7CFBF9C43099B0373CB59983CD51C264F9862DC3813C8E55248 + C5DDE86C6F436BCB7D28E4B2789542F5712933AD5E2FC0AD472F138C7DEBD1DA + 0718763661D885C2F6663494E562BAB50DACE7D8C1D2FA1932CD90D65428C8D3 + A807E38D0DC9E46D8C591613C1E570C1ABABC4FDBA6AA152A5788593778D728A + D002BE7DE412C1D8BF8104948FB8A8ACAC1C5F1C3E0A5B076738BB2F859BA33D + CC9E9C80714634181A0006341AD4778E1EF247419EED1D42090AD91560310B70 + 8B5B48F4C8E4AB59F9A9D774027CEB702C413FB0510B187EFACAA00BD43E565F + 720D760B9C60BBD8159DDD0A988E338491E1A37140EB6B06AF5DAAB9C289642A + C424E68157558A0A768190E8512D64E5A7DCA10CF8E6E731043D7413F85DC3FB + E0B7DF7C033E795278F905C0D3DD11134D0C498B8D6C09755E645C2980092101 + A73007776A6F5E65E7A4AEA30C18FCD9798211BA9904ECB3E0A9CB03264B459D + 682CCF82EB727F4CB2B28109B9A546FFA4A3D11E51BED1CF45DB8E4D2F81ADED + 73C8484E40716E1AA452F102D21FCB2901BE7EE857827E30500B38985C8C8D05 + B39883800D4178DEC901A6E30D46365D3FB99AC18687EB42FC9E578CDCEB8968 + BC5B7B849D97729012E096F07344547890768B0F455C1830F91E3713739EB583 + ED1277CDB61AF7F7BB7F1AB2AF23C0CB51DB979C5D8A951E8BC1A96EC06F8971 + B8599A5FC2CE4D71C130A2551B14F60B410FDB32AC0543B66DC5B3F62E08DA12 + 886966A6947CAFBFA4E5DEC0CAA58B50DF2240725C2CD8F9E97C564E8A2525C0 + C0D09F480B066B010F45440F985C57180FB7E56B3063AE03C693FE676040036D + 488DBD56F4715FA06D6732CBE1E1ECA0B9315D8C8E06332B1124E0B07F533BB8 + 79FF8F44E427C1C346F1CE905E0BBE1E1C04D3091334AB0D68BD794F1D1B83BD + 491DBDEA0F4575AAF9BDA8022E8BED209548117D3E1AECBC6B6DACDC540B4A80 + AFEEFB9E381BFE86F624194C3E0D3B8027263D8DC0D70261F5F434DDF6979482 + D24AB89180CD2D7C5C888ED5CD0737ED651067C2DF449B7068C0CBB131E0DCB8 + 8997366CC2F3CE0B75062CE656C36D912D72F24B9094108F26DEEDAF480B1EA0 + 0C38D20BE462015A6B98707D61355C5C9C40D3F8206D088D836C39E907F3E7CE + 04FDE74B28CC49D52D0F5215A765FE71B3E7DABFECEDED8DF5019E3A5B312E29 + 1B999999E0D5575E2FC94EF21D69BEEE804BFD6D6886065C7B47F7896BFDBCB0 + 62D912CA6B33F24A919096852A6E11A65A4CEF10B4B57BE7665CB841095097EA + 56470B0FD5F9499837DF192ECE4BE0B8C401C64646DA71531323CC327F4A13DD + 6A1189A5B89C9A8782220EAACA8B11BE771779C99023E65282AA8157EDCA6566 + B22801EA52DD2A627170F0D3AF31D5D21AB3E7CC83878B036C6D66C27CEA2488 + C98BA1B05B0A422143C56D1E8A38D5E0DDA92183A216E1FB77C3D7CB035D4231 + 7E3C1F8F88635F362A55320F3E8FC7A304A84B75ABA9998F93513F69CE670BF2 + 466D36CC8D5AA990A74FB3B4765AB766E594B57E2FE056552D728ACAC8B14624 + C5C7349090CB06831C93EA566DFD5DC45CBD8E5B151578F8F021BA850275772B + 99A2EF925B920125E2D4DF241E7E9BE74F9A3C99633777B66155CD6D585A4E87 + A5D574B4F19B8684FCCFAB5B0BDC7C163DE0DF4F349B623163F69CE760653563 + 58C8C752DDB2B2B299451B6F944F42CE1C09F2B155B7A8423ED6EA1615C8C75E + DD1A09F24F569A4024282A40DA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_22_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006F84944415478DA + CDD80B5453751C07F0EF406442A1680D01A5340F2AC78451804488180828D9A1 + CC1799591DB5AC344E09A2E4A953660F4B7CE128ABD349547CC51B0AB0F1868D + 31057908C2600A6C44E3B18DBDD8ED6E7816CAEB6E50F43F9CC3BDDBFDFFF6D9 + EFFEFFBFFDEF9F86FF79A34D3680323082758D1867AC02850621A776F94BFF35 + E091ED2B608A52D727915D074E5D7B914243044D247208504B9896C86C5E33BA + E52A94D4B44D28720850A3350D58D12082A457811EB91AC535AD13861C0254F5 + 9B06148ABBF117091C84E4494104C5EFF0FF734280EF9FCE25BED9E10FA55AAB + 3F8FFAFE1AE52087DFF4875CA9D203FF41AA5054DD5A29934A57C67FF0BCC948 + 03704F5C36F1EDCEE7D0770F686C9B6661068954711FB25B8F14DE3CBA3360C9 + B881BB4FFE4E1C7D3B0032D500705F7C36E5209F6F0F40FD5D0939519AD0A7D4 + DCF75E679714B1BB024DAEB7868EEF1DCF2262DF5905A9B2DFD4585069FAC16F + 10A3B5B3D7F01AA75A8863EF068D1FF8CEB10CE2F8BBC1E8E91B0046C767990C + 8D0C5F813B1D3DFA8A90987B1D27DE0B193F70D7D134E2C4EED5E8929B9EC1C1 + 4D570BFA946A1CFA391727F7AC193FF0ED6F528993EFAF81443E3086A2E3324C + C61D7A2BC4707C8095855311A1E307EE3C924CC4453C8F4E99C6E8208D8D4D28 + 2C2E018FC787582C8644D2055BDB19603018E8D65AA3ED6639935394CE1F1770 + C757BF12A73F78011DBDEA816F1E973A6667A5BC17ADB56590FDD50686BD136C + 673140B7B2C6D4A974A8540A28E43274758A216A6B815AA5BCAA556B3F2C2FCA + B86D1270FB175708D6DE30887BD4943AF2F9D771F8CBAF316BB6131E5FE002A6 + BB1BE63A30603BDD1AD6744BC8144A48BA6510B68A51416656D0508D9686DA5E + 8D56FD322F3F93F20C3400DFFCFC12111FF91244F780074E258DD849DAD98A96 + EB6C2C5EEA89456E9E90A969E827B4B09C4283B9190DE41F746B8E7EB2A46E5D + EB4316ED3E1473AB505654809BFC62A25FA95ACD2948CF340AF8C6A18B447CD4 + 3A12A81AB58348244244C48798B78889C0E0D5F0707586B5A519A6988D3C0F74 + 2B24A9528BB3C9F9105497A38A5BD84BF46BDD3805698D9481AF7F7A8160ED5B + 6F00C69CB8326C87961B6CCC9C6E83A77DC9A2AE36C3C37433983D801B7C161E + EAADFFAFCB28EB4A11E85A3978C56C34D657FECA65A78751066EFBE41CC18ADE + 80F6EE91C7607373332223A3E0ED1F8A8DEBC3C0B0B51A35730FB6C4AC32382F + 7446766A124AF332A050C85DC9F178831270EBC76789F8E84D24F05E068F5F1A + 7271475325A6120AF804BE0015614EDE5AF39103DF8BFC528087E1B52B395CF8 + 7AB9E18FFC52E4FD968C3B4DF587B8F969FB29015F3DF80BC1DABFD9001CAE45 + 4745816E6387F5E1E178620E0316E630AAA5FC518155CFBA81572BC4EFC99751 + 595E50C6CD4BF3A204DC12F333713A26DC708B0FC69E1F727143690A989E7E78 + 6CB13BE816344396680F3E1C0E3A0DF173371C67E6F111E8E38ADB6D3D48BD7C + 01DC82AC760E3BCD9E1230FCC04F04EBC096513318BE713DBCFCD660DBB65730 + 6DAAB9BE9C3C3802475B8F671757C2D763897E4192989080A2DC6490C05107B1 + E1CDCDD13F9019DC6A001E8C4D18727113271D4C2F3FB8303DA17B74A1D1066A + 1E8DF6CFF1E0C03AEC0AAF27F53358576AAE9556C18BE902459F02096713C0CD + CF1473F2D2ED280137459D21E23EDA3AEA2C3EB83F0A56D36763F396CD709CCD + 80B1AD905B8D65EE8BD1DAD68EF309178C1B831B23BF234EC5BC66F82519AE5D + BA700EE51595085BB701DE9E6E46034BF975F0662E04BBA00C294957715770EB + 3099C17D94801BF6C6132763B641DC3B3250D8D28C8F63F6E39915A1786DCB8B + B09E46370A585ED580A5CE73C1FAF1228AD9E9C6D5411D90CA87886E9581F1C8 + 2CF8F8FAE18905F3860FA63F19FED745D8DC829C9C1C086E57FF56762D2568AC + CF337A21E9F1EC9AF9347333FE92A77D1E5E1BBC1281CB9FA2DC373BBF1C4919 + B9A8E19760969DA3A447DCF95C5EF6F98A0905EADA53CB435659585866BAB82E + A3F92C73C7BAD5BE78C86AE4DB2D952B70293D1F85253CD4DC2845CCDEDDE892 + A970EE62925628A85DC62FCAE18C093476774BD226406D612A1C9DE6E3F1F98B + C0745D08A739F6B079C81A336CAC60433787A84382AA5B0294F06A2168AC2327 + 453D62A2F62068A52FBA7BE53873F62A628F7C7647A355FAB60B04823181C6EE + 6EDD6D6DC7B1B833282CE5C18E5C51CF186545AD51ABB21EB57FCC232C74D5CC + B5C17EB859530F76C975F2BD3B48B97A4E4822970F879C90DDADFA86269C494C + 475D6D0D3A4462B546D56741806823833793DF381B1A5CD63D93F8066F5A3ADD + D696E7E23CCFBCA6EE16ECED1D61EFE00871FBDD1191FFF9EE96AB7700F3CFF6 + 96E41933EDE6CC5BB0100E0E7346454ECAEE9683C37C279AE594021239772CE4 + A4ED6E51454EEAEE1615E4A4EF6E8D85FC1B835B3A24095026ED000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Find_23_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000007004944415478DA + D598095093D716C7FF611314A7D28EF000C56A11915AC1150AA6158B82567DE3 + 7B566BA9555F1D746A5B6DA77541A95DAD5DACE286D0D6BED7571144A5822058 + 100331808184554410035188110A2421245F96AF3791A62A18BE045AA767E69B + C95DCEF97E39F79C7BEF7758E891E59B1368FC4992FC6514CB5A5DAB15FF2AF9 + FB00BE1B9F37D025E6AAB4987F7843A8E24F03DC13351BD6501A744E706AC1AF + 95F0545A3A7C30217B01EA69EB1C99236844A79242514DCBA042F602D4EAAD03 + 14D6DF46BB5C05995283C29AE64183EC0548E9AC03144B3BF12B01BC0752A000 + 1D9EB02EB4755000DF397281FE665D28D41ABDB1BDF5BB3CC64676AF0D85524D + 1901FF80A4C0BBD25CD9A550CC49786F91D59026C04D7139F4DEF52FA0BB07D0 + 5271B2B741BB42751F64A711525CBD6F7DD8A401036E3CF40BBDEF8D30745177 + 01B725E43036F2795418EA6EB59344B9816EB5F6BEB1B60E056237CC1DF849F2 + F6816C3AF6CD7950A875D6DA02A5D5A1AC5E8AE636B9A98F7F458CFD6F850F1C + F0CDFDE7E8036F4540D67D17303A21DB6AD02D91B371F38ECCB8239CB8508E83 + 6FCF1F38E0867D19F4C18D0BD0A1B4DE83F78A612FE8566BB0EBC70B38B4E9C5 + 8103BEF1CD59FAD03B2FA25D793786A2E3CE3136A2EC6C4387E4066477C4A094 + 0A68A96EB8B88C80ABAB2B647A673457974CE1F332CB0604B87E4F1A1DF7EE22 + B47569192BB74824387AF47F28E60BE0EAEE0597275CE13874181C1C1C41512A + A8945DE86893E2764B1334943A55AFD1BF5FCA3B77DD2AC0755FFD4C1F79EF9F + B823D718DB3BE2CE9A5594B7DE824878119E63C6618CB71F3CC77A932421CBAA + D181228F83BD2D9C1CEC307AA43384A54288EAAFA0A9FEAA5CABD7BC2428C862 + 1CE026C0A82F4ED3F19B97402AD3F4AB54565E818F3ED905DF67662268161BC1 + D327E131674738D8B2606BC3820D8B456290864E6FC86C1A1D8A6EF0F85528E6 + 71515D5648EBD4D4023E3733CB22C0B59F9FA413B6FC1BB77B00771C3ED3A702 + D52D477D610626FACF80DFB46092545A0C1D620B7BDBBEF360CDA260E8C805A4 + 4BADC74FE9F9105597A2AAE4929CD6E903F8DC8C06C680AFEF4AA113B62E2580 + 945985DDBBBF444BAB1C61118B31873D0DC31D6DC162F5FF0243561F395D8421 + 3A0504851C34D455FE5CC2C95CC218F03F9F26D3F1DB969900630E9EEE3559A5 + 6847A3200741A10BE1E2F9141CED59B0B37980EE1E5AC3AF65E1334DEDE46C3E + 7C7CC623E7EC1914E79F834AA5F427F158C10870CDC7C7E9F8E8E590743E3C06 + 939392C02D1260F1B2571142E26E18595A4B2435B714B3664EC6C58262E49F4F + C3CD1B75BB4A0A32B633025CF5D1313A217A0501ECF1E08193BD26DF283D0FEF + F11331713A1B36C4730F8BBB7B1DB93874AAA92FFDA21073430220B82AC62F69 + A75059CABD5C929F11C808F0B59D3FD1F1DB5F3101F625516B5F87F7A440BCFA + 5A245C470C331B7B7D49564139C28227E37A8B0C674F25A3849B2DE17332DC19 + 01AE8CF9913E1213695AE29DB149BD26D7724FE2D9D90BE1E53B996C2936644B + 011EA4643DD0981BE26F6AE65CAAC4AC194F1BCFFB138989E05D48030134FB37 + 4D83913BFE4BC7EF5869D683EBA3D6623CF1E0EAD59118E6E464D4B6313E2C23 + 675F6F3264AFE133C7F0AD93575C8D990113A1EA5621F158224A0AB2A4FCFC4C + 374680AF441F251E5C6502DC199BD86BB2B8220FE37D9E46203B142C5BBBFB0D + B1FA36CD9EEE67EAE196D620688A2F9A5B24484A4CB62C06576CFD9E8EFB6095 + D92C4E494A44A9B0124B962E477060002C9562612D019C000EF732D2CFA4E296 + E8DA6EE2C16D8C005FDEF22D7D3866B5E924E94BC44D8DF830663B82491CAE5E + F92FB2CC8E16010AAAEAF18CCF68C4FF9082424EA665FBA0A1787428660DA472 + F367F181BD5FA3ADBD0B73C323303F2CC422C08A9A06881B9B909B9B0BD1F52B + E72FE7A587F7A7731F20939768D44A345771E0171088E7D9C1F01AD5B34B98C9 + E6DF871AC5CDB898CF434D59119E70F36C9749DB5EC8CF49123202B444A63D37 + 7F9EBDFD902C3FFF205648D0542C5DC086F3D0872FB742A9C2C9CC025C22A750 + 4D453162366F44471785E32967F462D1D5A0325E2E7F50010D32951D116E6763 + 9FE2E5ED3BFCC971131034D517937C9EC43F46BA60B8B313E4E48A25B9D38EAA + 6B221409AE42D4504B92A20E315B37217C0E1B9D7225BE3F968AD83D9FDDD4EA + D56C894824320B684D754BA5E84083800399B4096EE4463DC2CC8D5AABA1B247 + BA8F99B164E1BCC717473C8FEA9A3A708ACAC9D84DA4A71E1713C8E7FA821C94 + EAD6B5FA061CFC7F3A2ACB850A65476B17E9722317D61662BC9118CC8116A70C + DF24EC8815931F737111F8F98CB5ADA9BD0677774FB87B78422AB9F550C8BFBC + BAE5FF6CD894564953DA88C7DD468DF59E000F8F5166211F4975CBC3639C176B + 881D97408EEE0FF29155B798423ED2EA1613C8475EDDEA0FF237E4403624BCFA + 299B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_24_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006FA4944415478DA + D5987B54937518C7BFE3A6889AD31041224D4553131015EF8AA203D23A589986 + 66A5473D5E523B2A4890C74EA965167843E87A3A8AB70C0501312E027380BB00 + 0A027271308431A501BBB08D6D6FEF26674A30783756D6777FECDDDEDFF3BC9F + F3FC7EBFE7F7BC0F0D1D7A776F2C7132E2438824EDB0A40E449EC185AF37D2CC + B53718EA002D4AF68C2C02F85FD5FF07F09398CCBE4E3153A146C0A9ADBED27F + 0CF0E8C685308752677331AB1CEC72214BA126189684EC02A825CC0B641AAF06 + 2D7215F24A1B2C0AD90550AD350FB0A0B211628902ADF276E496D65B0CB20BA0 + 4A631EA040D4823F49C067207952108CD84DBE8F2D02B8EB7406F1ED265F28DB + B5FADFA13F6452767278832FE44A951EF029A40AAC7BF5776552E9A2D8DDCBCD + 863400EE8C4E23BEDBBC186D1D80A6CADED60A62A9A213648B1E525012B9D96F + 729F01779CFC8388DCE20799EA09E0BED834CA4E0E6DF443C54331B9511EA04D + A9EE74AFA9598AA8AD4BFA7E927C7C3C9588DAB61452A5C65C5F50A93528AC14 + A1BE4962F88F7D4F8063DB197D07DC762C8538BEDD1FAD6D4F00C36253CD060D + 095E88BA47ADFA8C7031A308273E0EE83BE0D6C824E2C48E4034CB4D8F6055F5 + 03DC62E581CB2B40A34804B1B81974FA1038BEE808096D30EA8BD95E6C567261 + 9F00B77C7B8D38B9EB7588E54FD65058744AAFC64A592BEA4AF3206BAAC77067 + 37D0870D47FF010EB0B3EB0F954A01855C86E626111A1B6AD1AE52C66BDBB57B + B8AC942AB300371F4D20A23F598E26999A92614141110E1E3E826123DC306AEC + 44787B4F859BEB700C19EC00077B3BC8DA54686E95A1A64E041E97077EE53DD4 + 569649D4DAF6777839D729AF1F03E0A6235788D3BBDFC4A38E82353CFA9A5123 + C9E37AF00B32F0EA94197875AA0FE46A2B68B55AD8D9D0606D4583158DA63F9F + 35E41A5CB76C963EE5B038C5C8BF958392C25C42A35405B299C9D74D02DCF8D5 + EF44CCDE20885A7BAEA8858D8DD8B96B37464FF0C2D28040CCF07087839D356C + AC8DEF032D092A556A712631070F4A3828E6DC92101AAD279B99544D1970C3A1 + DF88D890B7D0D801187EEA6AB706358599A00F1E88E9F319906AAC31A89FB53E + 6AC6B426D047FFAD8B684C7C2EECD452F072B3505D71F70A272B398832E0FA83 + 9788D8D0B7494095D1C17C7E0D76EF09C52CDF65085EB502C3E9F6B0B1A29E41 + CEA772316EDC18A45DBB8AFCEC142814720F723DDEA104F8D1171788987D2B0D + 8011277EEF32585455041B4D1BE63282A022AC31908C5EF7DE9E5EAEF09B66F8 + 2F3E9D8739D35FC3CD9C7C64DF4840DD838A839C9CA44F29017EF8F9392226EC + 5D085B8CAFC1909010F41FE484556BD6608CAB236C6D4CCBBF89370BE037DB03 + BC3201FE48B88CBB5CE66D4E76920F25C07507CE12B161AB49C08E081EFFADCB + E00A563C3C672CC0A849D3D0DF96061A8DF6F7C07551E07C4FC3750AB3087EB3 + A6A0AAA115D72E5F0087992A6467253953027C7FFF1922E6D3F70C80DD69D5CA + 95F0591088F5EBD79280BACD61520091965B8C39DE13F5C7E9C5B838B0321240 + 02F6380D869B6B237E254E47041BA6787FD4F92E832BF313E14546701299FB74 + 358F2E82BA3DA2CB7BBA60D2F49FCE9E17F84C0641BE46E8DE2432F34A30DD73 + 02146D0AC49D8D0327E7BA889D9DEC44093038FC1722267C6D8F110C0F0B85FD + E01158F37E30468E70342D7CA498DC32F8788E477D8310E7E32E98B606DF0BFB + 898CE03A03E0FEA8B82E839B6A4B30C05A8BC5FE6FE085A1F4679C189FA5995E + E30DD7F985F731D3D31D59CCDB48BC1A8F87FCFB87C908EEA304B83AF44722FA + B3753DEE62416D0DF6878761F6C265F860ED0A380CB037EEB01B718B2BF1DA38 + 57C4FC7C09B959C9A6E5C15521DF13A7223E309C24C674ECBB6FD024966109C3 + 1F017E7328C3E95454560D01BF16E9E9E9E057DDBB713B3391D18B49E7E61195 + EED623B2DEFB6CDF1E8C99E88DE5014B30D7674A6FCF302825231737B359282D + CCC330A791E25651D3E2ECB4F3059401A93E48DE22C2E32A2E59CDF8609AB707 + 3C27BB93C5C2D3538546EBFC08B5468382BBE5E0708B507A271F117B77A059A6 + C2B94B57B5027ED9CC42563ABB57405335759E3FC3C6CAF692DBD8098346BD32 + 1E33A74EC064F75118E148C7A081F69048DB207C2446F17D3EF27865E0579793 + 9BA20211A13BC158340F2D12397E3C1B8FA8A35FD6A9B5CA79423E9F6F51409D + BC67078CB1B2B53A626BD72FC889ACA887F45051ABDB55A98ECE2F4F0F5AB674 + E81BFE0B50525A81ACBC22F25E1D12E3CF0948C8F9DD415AA4BB25158B20ACBC + 2368A8281212D0BA9269C7994CCD0DA4F31AB2CE4A831A9775EF24F3FC574F79 + 814EE74D741F6D5D5A7E1FCECE23E1EC321222E143A390FF7A77CB63969FD763 + 616DC290A14EAEA3C78E878B8B6B8F90CFA5BBE5E2F28A1BAD9F0D93847CA937 + C8E7D6DDA20AF95CBB5B54209F7B77AB37C8BF00CBE12424EE11941700000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Find_25_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006EB4944415478DA + D5980954545518C7FF33AC418BC849637165CC44084DD92648511434C9CCCA4C + CB5C424F5656274D49F2D829973C1A688A50D9A62C990B208B0A2A382030C3C8 + 3E2A20280A388A08330C338F615E77067AE9199637C394F59D9973DEBDEF7EDF + FBBDEFBBDFBDF77D1C74CB1B9F7D4FEF0B7F07B75A3B604AD91C7908F1DBDFE5 + 18ABCF282E581743EF0D5F0AA9CCC480110791F04DA869004D4A769F9804F0BF + 2AFF1FC04FA2CF0E34C402A51AB3F6AD0E90FF63803B43A7C2184AADCEEF5997 + 21BCDC98AB54D341A684D403D4D0C63932437C0D2D0A0A7992069342EA01AA35 + C6015EACBA85669912AD8A0E5C90D49B0C520F90EA340EB04EDA82BB04F03E48 + B11C7450CCCA803B2601FC78FF197AD7CA00A83A34BAF6FA1FCEB236B26D4500 + 142A4A07F8372485DC8AFAD236B97C5ACCA721464332801F4565D0DFAE9A8EF6 + 6E4043E5110B2E9AE5CA07205B749075E511AB02DD060CB866EF693AE2BD40B4 + 515D801B6232581BD91A1A88CA9BCD24516AD0AE523F70AFE99E1C91AB670C7C + 27F970CF493AF2FD9990AB3A8DB5054ADD89A22A29EA9B644C9FB0A20EBB3F08 + 1A38E0FBBBD3E83D1F04A3B5BD0B302CE6246B238A963BB85B7F15ADD23AA814 + 32A855ED78ECF1C76137D81E6A2B7BDC2C2D9828CC4D2D1A10E0EA8814FABB35 + B3714FC1DE830D0D8DF8FEC02FC817166288C370D8D90F81B58D2D2C2DAD4151 + 4A28156DB8D724C5AD86EBE8A054C7341D9AB585B969D54601BEB7EB04BDF7E3 + 17D1ACE89A436151697D2AB6DEBE811A71269C868FC6289E2B9C463F0D4AC341 + 3BD54956824E585998C1C6CA0CC3EC6D512812A3A6AA02D7AB2EC9D49A8ED7C4 + E7D3598787015CB533898EFA24044D6DEA7E952E161563D3E62D78C6DD0BBEFE + 53C0F71C0FBB47AD6161CE813997030EB1AADD903AC9A2AF5D57B5199D232C47 + BE201BE54517E84E15355B28484D370870E58EE3F4FE4FE7E276F7817563D489 + 1E15B473EC4A4E12C67978C2CDCB0FF7C80BD9124F999B717A34FC4E880F3404 + 54AED2E0B764016ACA842813E5C8E84ECD04A120E52A6BC0D0ED47E9E875F320 + EDE7C8BF65EB76D4DF912170D65C04FA4FC263D666E0B2C851AD47F727E6C382 + 6A85F84216AE56961E1765A5CE630DB862EB1F74CC67F3996F928DFB12F5062B + 65CDA811A5C337200476C3C6C0DAA22BA40F18E43C687EC1CCC94C2BE194083C + 9E0B324E24223F3B0D4AA5C283CCC7125680CBB71CA663D6BF4A00A95E07C7C5 + C5233B578C97172C869FA79B2EB486C8D1CC8BE04F76C3B9F3F9C83E95841B35 + 955B44E7533E6705B8ECAB043A7AC3EB0C60F87747F5065717A4C185370EE3BD + 5F2061E5C2E27E3E4ECF73F0A580894C5FF2B9624CF77587F8521D4E271D4169 + A1A040949DE2CD0A70E997717474D80234B6F43E07972F5B069E9B37DE5EB218 + 4306D91026C33688340101F4714775432B4E1C49804870B2519895E2C00A70C9 + E643744CD84202D8EDC13D7FE80D9664C5C377EA1C8C709D004B332EC88F18E0 + F462B1EB7206DF9D6967E49581FF9CAB6EB7FA3D3616B967924000FB7C4BE6E6 + DB9B0ED2D19FBFC900F624A12B96EB3CB86CE962D8DA3CA2EBD3E60847F7EF42 + BDFF69F45F7F92C2DA2C3E935F014F8FB150B62B117B2816A2F3E9526176EA50 + 56806F85FF4AEF0F5FC484785364BCDEE06B4599E08D7185CF9469E09A99F766 + AAABD5DDF49B3C8EE9CB29BC042F02584FB6C8F8D804C3E6E0A28D3FD3D11BDF + EAD3830971B1108A4BF1CA6B6F80EFE5014325AFB8123E1E639025284072E231 + DCACBDB28D7870032BC037C30E100F2E61003745C6EA0D56B5B5A05122007FEA + 8BF0F49E0C2E97DB6BF6765D7330C99DC7B4C56555701BE38CE89F0EE34256AA + 61EBE0C2F53FD2515F2CE9338BB512B96B079A9ADB30232818B3673C6F90074B + 2435B85E7B0D999999A8ADAE3855703639A83F1D06906D75EBB6548AF00D6BE1 + E23A0921B366C2CFDBBDBF67309276260FE7B2732029CA83FD50A7E65669D3F4 + EC8CF88BAC000DA96E9595142362E70EDD69C68FEF85E0006F92D5D6FA46BB45 + AE5022FD6C3E04B9059094E4237CDD1A72C8A01077385153577BC9A7283753C8 + 0AD09070295AA4B85D5508E7913C8C1C3D16CF8E7781F35343F0A8AD0D2CADCC + 41916F9336453BEA1A6EA1A4BC1AB5572F93A4A844F8FA8F1034CD1F2D32057E + 3C740C913BBFBEA1D6A8FC1B6B6B6BFB04344626F167B9702DB83B2C2CADE60D + 2527EA417D9CA8D51DD4C9271D4678CE9B3373F04BC153502EA944565E31B977 + 03C9C7E2EA08E40B3D419AA4BAE5C99F3D01E6984FAC0592308C20D9EB4096E6 + 0662FC1A59A933A0C611ED37897FF0C2679FB0B313BB3E3DCA4C72F90A1C1C9C + E0E0E80469E3CD5E21FFF5EA96876FE0C43B8DD793060D1EEA3C8A37168E8ECE + 7D423E94EA96A3E3E8E11C2B7301811CD61FE443AB6EB1857CA8D52D36900FBD + BAD51FE49F7FE30724FE02FED30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_26_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006D44944415478DA + D5D8095013571807F07F00E5B48A0C20E051D0F1C00B458338A2205411B58E57 + AD07DED778D4A31E8850C78EF5A8E3413D105ADB4EAB882782021E8002316002 + 11390445480091105424242117D92E814981404820ADED379349B2FBDE97DF7E + D9F776F751D0148B032E12A1DFAD00B746067DC6C190085C39BA86D2D9FEAA8E + 5FEFFD99381FBC12957C7D032F23F2D8BAAE0317ED0927CE05AF02AF56CFC0D3 + 9770F5C7F5FA01EA55D62CF402FCAFC6FF07B833EC5157FF629A588E19E7377B + 09FE31E089F59EE88CB2A1CFB5E49760BEE4D2C57262BA3E916A4005D1B94226 + B04A502392223DBF42AF4835A05CD139E0B3D795A8AE15832F92212DFFADDE90 + 6A40697DE78065BC1A7C2081CD902C0188E9E11BBCDEE905B8E3421271728317 + 243285F27BC02F8FB44E7274AD174412A912F837520AFA8BB7394281606AF8AE + D99D46AA80DB431388531BBD51D704D4354CBB19A05A206E81AC5122CBF24E6F + F419D165E0B6730F89D39B7C20943602F78527689DE4C87A1F1496579303858D + 3A89BCC5BEF71F0508D9FC45D7AF24DF9CB94F846C990681A45EE72445C56CA4 + 3E4907238385F2B79510D4F261666E811EBD2C61D4C3166FB2196398F4B8AC2E + 01B7FC144F9CD9EA0B7E5D233030FC7E879DC5423ECA72E910BC2B878D5D7F58 + 5AD9C0C4CC1CDDBB9B402A15432C12E2E37B1E2A2B4A21934AA21432C5EE4C7A + 7C51A7809B4FC71267B7F9E1A348BB0AB29E65E1D091E3B0EAD31F8E839CE13A + DE15031C6C60F99919CC4C8D21AA93A09A2F4249390F99CC4CB05FBF40E9EB82 + 5AB942B690957AAFE3A36F0DDC74F22E716EC74C548B1ACFA1C0D0F8763BF1AB + CAC1CE7C8861A3A818EEEA0E51BD21EA150A7437A2C0C880020AA5316D3D39A7 + AE9C45550E1E1A330FE9A929C8CB4A23EA25523F262DEE9E4EC08D276288D09D + B3F15E28D7D881CBADC4D66DDFC271E818F8CE9C09B7D18361666CA084B517A4 + 5D796EFF79E7098A7318C8CD78524BD42B5C98B4D862AD811B8EDF262EEC9A83 + AAA61BD6A0D0BB6D7660B312D1AB8739DC3C7D21ACEF060B1267D81AD7ECEBB2 + 19E395EF0D57D0B068068C243560A525A3B830E7764672DC5CAD81EB8FDD22C2 + F6CC054FC32D3F8753821DBBF6C2DD6B16FC17CF838DA599C6CAB58EC8072C0C + 1CE88884BBD1789A120FB158349A3C1FB3B502AE3D728308DF3B5FF54C12743E + 5AAD71E5EB6730940931D9771EA43082B9B161CB6414F5D4F3BDC7A8B6DC4ACA + C244D7E1789CFA14290F62F0865D7838233576BF56C03587AF13E1010B48A0B4 + DDC6BBC8EA1993F3DAD2E5CBE0D4D71ADD0C759B7F6392B3E13D610458056578 + 18731339993446464AAC9B56C0D587AE1261FBBE520183CFDE526B5C9072032E + D429702247AF8911A559C55A429B57D2CF63B4EA733C2D0753DD86A3A8828FBB + 37AF2283769FCB4C8EB5D30AB8EAFB2B4458E0228DCFC50B172C84DB143FAC5B + EB0F936E863068985274A860425A2EDCC70E535E0CAE4544809E140312A83185 + 6AE78A839789F0C0C524B0A982676EA8352EA447292B38629C3B392A29CADE06 + CA5763351BE6BFD6BFE6497526DB12CA519CC4C8C7B8518321AE1323E2720432 + 52EFF1982971B65A01971FB84484ED5FA202B61581010130F9CC16FE2B96C2A1 + 8FB50EB56B0C5AE64B50C979F36D0517911157753B07FD83FF202E042F55FDC5 + 074222D51A577172616A20878FDF1CF4B4ECAD9EA48D0DEE2E43549FD39F17C2 + 6DD42024D318B8131D8572CEABA36405F769055C1AF43B1116E4AFB182A5A525 + 080A0CC444CF5958BD7C1ECC4D4D75AA60665E11460C7240D86FD791961CA7DB + 3CB824F057B2822B54C00321116D76A82848878D556F78787AC3C9A97FFB899B + 86B2CB3047D5B6E7056C94B24B909898084ED18B078C4777A67774502AA0B6AB + 5B55BC4A0405ECC6406757CCF69B8649D4912D136988B8A4743C4E7982FCAC74 + 58D93A54F379EFBD5312229F6905D465752B37FB394E9D388EA123A99834910A + 5F2F37589899B4DB5E281223FED153D0E80CE4673F45F09E6DF82894E2CAF568 + 4519A76042163D91D92150D7D5AD1C12793EE424ACED3F87E3C0A1A08E75C660 + C77EB0B6EA090B0B53080475A8FA508357C56560B05E805D54400E8A4204076C + C7F4A91EA8A915E1E2E528849CF8E18D5C21F1E072389C0E815AC99A854C2CC4 + 87D23C48851F604BDE51F7D270472D9749EF5BDB0D183F77D6B4DE5FFA4E415E + 7E2192D39F93FBDEE04ED495321239B92DA45E168FC64FF47321EF1DE693D97C + C8A31C404ED776E4D45C41262F018104C871B3E199C4C377F1A89E96962CE7C1 + 8E86F92F5FC1CECE0176F60EE071CBDB45FEEBAB5BA3DD7DC6BCE396C6F4EA6D + DBD771D010D8DBF7D588FC24AB5BF6F64EFD29C6463412D9AF23E4275BDDD216 + F94957B7B4417EF2D5AD8E907F01F612E615D49943570000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Find_27_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006D84944415478DA + D5980754535718C7FF2128CB1E5795C3108BE042DC35388A8AA2E0AAB5C36D55 + B0EA515BC7B14E52B547ADA30E5C40AA1D1E592E04190E300D9B842043044430 + 1554888A049290FDFA123D114D0C21A4B5FD4E724EEECDBDDFFBBDFFFBEEBDDF + FB287865F3B7FD4A84D217A34620D3B4770447C054DBB576BEF6F7CE639188D8 + 1B4031D59776E2BC2D6788901FD4807293C1F4C292371AB92FB0ED807337FF42 + 9CA22F416D83B901C311B5FF9BB603CED9C4204ED29782DF6866C0A3E7107D60 + B97900CD4AD6CCCC02F85FB5FF0FE08630665B1F71BA448129A756FB08FF31C0 + 43CBC7C3144AF59CF3AC3270CA6A32250AC2CF9C903A802AC2342193F3FE8240 + 2C4376C913B342EA002A54A601DEBE5F8B178D123488E5C82A796C36481D4099 + D234C02ABE0075246033C83C21083FC60A9F6766015C1F7A8B38BCC20752B94A + D3DE729A69B4937DCB7C2096CA3480AF2165C8BCFBB84824144E606C9C6132A4 + 16705D48327164E54434BD026CADD9B4B3C00BA1E40D488106B2AAF8E84A5FCF + 3603AE3D799338BACA1722D94BC0AD8C64A39D044E7443EC3526B27272216CA8 + 87B449042B1B3BD876E808BB0F9D505D903394939998DF26C0EF8E5F2782D74C + 8650AA347AF2E32735609CFE03596C2EBA3BB8A073D7EEB0B6B543FBF6D690C9 + 24908845A87FCE47ED938790CBA4312AB9EA7B6E66528549806B8E2511C7BFF5 + 4743D34BC06D8CEB06270AF855A8E0DC84934B2FB8BA7BC0B9773FC8551448E4 + 4A328E95B06A478535F975EE620B2E878B07F7EFE2E1FDD246854AFE555EDA35 + C3CEF501AE3E9A409C583B15F5E29615BC9D5F80A09D7BD06F200DA3C78EC798 + 1103D0B98335DA5329A05A50407EA00E1425B965C91504EAC8D8CCE014232B8D + 85E2FC2C4229954DE5A4275E6B15E0AAC3F1C4C9F5D3F042AC78A9604892DE09 + 5271034AD362D07FD0080CF21A4B8E57C2CE8A0A4B2A45AFE380192348504044 + 86CED9B84C5414E5E04E6E4623A1540DE1A427541A0DB8F2501C11B261069E8B + 140627ECDEB31F8F9E3660D2B4CF30C97B383EB0B620156B39E7501F50A1B16C + 5025F5C8CB62A1B2BCE84A2E2B7196D1802B0E5E214237CEC4D357096B5048BC + CEE0A6C63A54E4246294CF0C74EDD9978C310A2C2DDE528EF2A6FB399386695B + D1C9B7D1CBF52324C7C72227350912897830198F8546012EDF7F9908DB340B7C + 03297F78441458995CCC9AB308DE344FD8B5B76851B9E67699598091C33CF067 + 5A0E526FC4A1FA41F9DEDCB484ED46012EFBE922C1D8FC85F69D24E854ACCEE0 + F2EC78B8B9F583E7481F5890CAB56B1E7714FD8E678E1BA2ED8B4B2DC0042F4F + E49556E166DC251471D3D9B9A9095E460106EEBD4030B67C4902CADE3978F1E2 + 00B87B7A61C9D285E8DEC9967C9C46E4BBCD8EF6C48C3B9840F340C59306C45F + 8A466EFAF51A0E2BC1C128C080DDD144D8D6D95A40FA89CB3A83EFA48463D4F8 + E970F51C466E29E4E2B0D04DC9DF869E3CFAF5297733AB18A386F6D3ECB5E723 + 2290792B0E24A0C1BBD4FEB9F4C748226CDB1C83EFC581012F150C0C58083B5B + 1B4D9F7A8DA857B19A4BDF95D402AA57B03ACF64B24B317C606F489A2488088F + 406EDA353E2735D1DE28C0C5BBC209C6B679DACA02FDF8459DC10FB837E0DEBB + 3F468FF705856AF9B6747A1D7B0FEFABED4BCBBB07DAA0DE9A23322A22BA7531 + F8F58E7344D8F6F95A407D16493E1636B7109FCF9E8B4F6843D05ACB2EBC0FDA + 4037B0D2D9B81A1B8347BC7BFB4805B71A05B8887E9608A52FD03EE21DC1513A + 83A522011EDD61910A4E036D248D8C410B185A27EA78FCD8D34DDBE616576280 + 9B23C27EBB802C5662EBF6C10541BF1361418B0C2AA8B623870EE2699D0893FD + A760AAEFE8961D37B3FC321E1E56F2909292025EC5DD1B6CE655BF9654D7FA31 + B6BA259788505DC884C7102F8C1BEB0D17677BAD5AFA1C0FE8E3A2ED4B4AC906 + 33350325F9D9E86AEFF4A281FF7C626A72D46DA3005B53DD2A2A2CC0919F0F68 + B219EF315EF0F7A1C1CEC6FA9D571089254862E6203D838D92C21CD037AD45BD + 4886C80BB1AA2A5EE9C8FCCC144E8B80ADAD6EA9214F061F4637C78FE04A9E2E + 34F208EBD3AB07BA75E9880E1D6C20143691A120C0BDCA2AB0F3EEE2414529B9 + 28CA41DFB20E7E13BC216814E34C780C820FEDA956A8A4DE353C1ECF20A029D5 + 2D7E6D2DA2C2CFA2B0A000F66446DDC94046AD90CBAE7773E83962D6F4C95D3E + F51F87E29272B0B20BC8FFAA713526B28A841CAB0FD22CD52DA9580051DD6334 + 099E42216D82522E01B59D352CAD6C60D3B11BEA79659A77126FFF79833A76EE + 9CE7D1C7955A52760F0E0E4E70707402BFE6D13B21FFF5E2D1E051BE439FD53C + 8CEBD4C5DED9D5BD2F1C1D9D0D42BE97EA96A3632F178A95653A09D9A325C8F7 + 56DD3216F2BD56B78C817CEFD5AD9620FF06238ED91518E2CF09000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Find_28_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006C94944415478DA + D5980950136714C7FF014154AC048B085215C10B8B60190E6D51E32DA2ADA5D6 + 7A50BC75D48A3A0AA2A65647ADD6D18A17476BDB7104C41B14104529106E881C + 725FE192240A2610620890ED069D800D8424A4B57D93997CBBF9DECB6FFFDFEE + DBF73D0ADEDAAA837F100107DDC1E68BA1493B743E144147D750D4F59739AEDC + FF1BE14FF790011EF20D561BEAB0E74AD9F8877321083EBEAEEF802BF65D26FC + BE9702B66A4CBD0E58F242434EACEF3BE037DEBF1097E86BC069D4346010AE9D + DCD877C0E55E81C445FA5A709B340C78F62A427FDAA419408D9275318D00FE57 + EDFF03B83B20B6AF4BCC10B561E1A56D34C13F06787AD34CA84329F5B91E5784 + F4227692A88D98AF4948394009A19E9031CC4AF08562A414D46914520EB04DA2 + 1EE0D3520E5E3589D0286C4572C1738D41CA018ADBD503ACE6F2D14002768164 + 0A40CC0FDC4C7BA911C05DFE4F88339B69686995741CEFFB3556E9202736D020 + 6C11770076428A9194FF3CB759209815B867B1DA9032C09D7E31C4CF5B66E3F5 + 5B4055ACB4AC02C9C92960A46482CDE182CFE7437FF060E80FA102030C5FD6E5 + 31E7A6274566F509D0F3E223E2ECD6396816BF01F4098CE9D55924E0A32A3711 + 4D2FAA31CC6424A84387416FE020E8EAEA412C1641246C06AF9E0B4E5D155AC5 + 2D7724AD92BD994951656A01EE381F4DF86E9F07414BBB528E99CC2C1C39760A + 86C347C2DCD20AF68E76183DC218D40F0660D080FE10085B505A5B8FE79C0614 + 3DCB4545491EAA4A0B9BDA24ADCB98090FA25506DC7E2E8A38FFDD0234BE7E03 + B83FB0E7187C6E0DCAD2A23171B203ACEDA74228D1814422816E3F2D686B5140 + 7E3A72633B991196CDB2058BCD4351290BE98909C8CB4A26DA5BC42EE98CC807 + 2A016E3B1B415CF074014FA85841369B83AD3B76C37CC2142C74758593CD380C + D225C1B47B7E6B4A411B0462843E4845594E2A9E65243611ED12DB744644B9D2 + 805BCFDC272EEE5A8457C2B6370AFA4575EB5096F11006FA03E144734133A9DC + 603D6D52B177E1BA1EBA2FB4EBF896E67FFFB00C68BD6E0033390EE525B97733 + E222972A0DB8E57438E1B77B31EA9BDB7A9C5CC1AA84E72E2F4CA5B9C263951B + 865107825C55A52DE45116C68C1E8598FB61488D8F824824B421EFC71CA50037 + 9FBA4BF8EFF91C2FDE16AC07FDEECB4DAE2B66424BDC84192E6E68850E06F5D7 + EE3E581719DD66D9C84EDD8ECD81D39489F8332115F10FC3515351723C2321E2 + 8052809B4EDE2602BC9682ABA0E4DFBDC70BBAFAC658EDE10E0B3323E868AB56 + AD85C7E780E63009CCC26A3C0ABF85DC4C465A467C84A352801B7EBC49047ABB + C9F624072F85C94DCE8F0D85ADC37458D838424F478B148922AFDCDF6CD167D6 + B27164E23312D00A65758DB87F2B14198C68767A5C84895280EB8FDF2002F77D + 4502F6BC2F5EFAE532384E77C1E68DEE2420F97090F944150D1FA5E4C3C9767C + 472ABB1E1C8CA427E12001158690FDB8EE682811E0F3B50C907EE1B6DCE4C2F8 + 9BA4823330D9E153488B1EA982D29C47A1748EBB0696E6429AC3C48E27585AC6 + 3D492B82DDC79610BD162138281819090FB8E9F191C64A01AE3D124204EC5FAE + 705FECEDED0DBDC1C6F058B31AA6C38D54D0EE8D3198C5B0B7B6C4F33A36AE05 + 87AA760F7A1C0E2202F7AF907516E8E76FCA4DE696E7408F22C6DC455F600875 + 686710058B34CD76AC6C9C9C5D0A076B0BC431D2702FEC0E6A59C52748057D94 + 02FCF6D05522E0C04A85BD99AACA4AF8F8F860DA4C57ACF77023DFB97A2A2998 + 99578149162608F8FD0692E32255CB83EEF42B843F7D956C890FF95EEBD6A136 + 3F0946865438D3E6C062CCC8778351E443DB4E1C2D3B935D5889CAF20A3C7EFC + 18ACB2FC8769B1F7E6F77651B290CA76B7B85C0E7CBCF6C2C2CA0E4B16CD83B3 + 83756FFF21B3C82729888D4B4441560A861A8F78D5C8AD9F1D1F73EDA95280AA + 74B7843C2EB825696435E3087BFB4F30D9CA123AFD3ADF2A5D959C30C68C2CBD + 44888A4D0523310D0564B140F7F204AF598C901B61926A56A15356D2E3F45E01 + 55ED6EE56667E182EF1918998E86B9C50438DA4DC25873330C333480BEBE1E04 + 0211B80D3C9454D42035330F156585E4435102FABE9D983FCB19FC26212E07DD + 81EFE963356D921667368BC55208A84E778BCBE12024E80A72B2B3614C56D406 + 0A2AEAB65671B491C928FBA5AEF30C972C9881BC8212C4A56493BFD5E0DE9D90 + 6A12727A77901AE96E555592C5686A0AF29EE5A0FEC54BF078AF606040C550A3 + 0F512FA480C72A9A22DD93382F5831790895CAB41A67AE5D50540C1393113031 + 1D012EBBB647C87FBDBB653375CE9497ECAA700343633373CBF13035355308F9 + 5E9A47A6A6634652FAF76390901FF506F9DEBA5BCA42BED7EE963290EFBDBBD5 + 1BE45FDBEEBD152E01C0B60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_29_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006BE4944415478DA + D5980950534718C7FF09080CEA14BC286051C10B50C07AE0858007E05D6B5B45 + 0711EF515BD4691554BCAAD6A35A1115C15AADCAE52D0A788008842304024411 + 30A2082824CA1548C8455E1FD166D4400821ADED377933BBFB76BFFCF6FFF6BD + FDF6A3E09D79059C234E062C44659D445EDF1E18094D6DA7EF7C4579C7D18B38 + FFF3228AA6BE1403176E3D4B846CF52201C51A83B564DB83A210B67B71C70117 + 6CFE8354D05B01B83D305C63A89DBE0B14E51D472310BE7749C7013DFD4E13C1 + DBBC158F585BB6939C68C4BEA51D079CBFE91471226031383C6D03862172FFF2 + 8E03CEDB184A1C0FF001B75ECB80472E20EAC00AED006A95EC3DD30AE07FD5FE + 3F801B42123BFA88694229A69E58E3DAF08F011E5AE1024D289BC75C4C2A02A3 + A8324D2825DCB509A90428233413329EF902750231320A2AB40AA90428956906 + 98F394839A7A21780209D20B5E690D520950DCA4196019B70ED524E07B90CC06 + 10EEA12B5DDF680570FDC9FBC4E195AE104964F2BADFEF896A3B59E6DA17F149 + 346466E580C37D8D7A1E0F865DBA023AFA8DC286BAE0A646D179465A6C6E8700 + D705C713BFAD9A84C67780EAD8AB8A4A9C3C751669F46CF432B58071F75E3030 + EC0C3D3D0388C54208057CD45671C1A92885442CBA2693C87ECA4E8B2BD608D0 + F7F83DE2C8EAC9E08BDF02FA87C6AB1C58C729059B7E1BE61696E837C00616E4 + 2521289835DE1A350D2230D9952064321052119E15E4E3393B1FA54F0BEBA532 + C9B7CC94DB77DA0DF843D01D2270AD1B1A444D6D0E62E6E4C17FDB1E0C1E3A0A + E39D5D307E942D8CBB18404F97021D2A05E40F62A90C8565D5A8A8E6CB974D15 + 9703663A0DF9B9E94493483C8D418BBDDD2EC0B547E388A0EF3DC06B7C0BB839 + B4E5498AF83CE43FB80C6BBB917018E38CDA460286FA5474D26979539A37C91E + 9C1ABEDC6F32E3318A59197894955A4F34C91C18B498676A03AE3912431CF39D + 865A816A0577EDDE87F2D73CB8CDF80A6E4EC3D1D54047AE982A6BFE2E88C44D + 381397038AA09A543209CFD80FAF6725C5CE511B70F5E15BC4F1F5D3512390BE + 5530384EA97323AF1AECF4688C759D891EFDACA1DF890ADD8FE8281FC17A4E71 + 509423E3F3D0B78F05E26FDD003D390E42A1C09E5C8F2CB500571D8A268237CC + 44155FDA6AE7F361117840CBC6D79E5E98306A280CF5A86D09F0815D7DC082A3 + FD603C48A123F96E34CA9FB3F766A5C46C510B70E5C1EBC4C91F67E3F5BB8075 + 6BF02DA5CE45A9D1B0B41A04BBB11341A5B6BEEEDE5772B6B39DA22D3AF9115C + 465A835958867BD157F0309B9699951CE3A816E08AFD5789908D73C05511F27B + 79FBC0CAD6114B7CBCD0CBC850E971B665B1A9F972C0E20A1E6E5D894216ED4E + 252329C6542DC065BF5C264237CD559C49B69EB8A1D49975F74F8C719901CBA1 + 23C84F0A95545139A0A4BCDF4216DD46DB28AAF7E805186D3F50FE465F0C0F47 + DAFD6890802AA7A9B8B974EF2522D4EF1B12B0F573B1B7F712F41FE288E54BBD + D0D9D040AE60B3032A5990975BF8ABE6E0A8F96A8E92EE339EE04B5B2B081B85 + 080F0B4756CA6D2E2339D6442DC025BBA38810FFEF148001C7AE2A752ECE8C83 + 557F6B8C9B3805149D4EAD78FAB0EA347C90A28DC66463C4102BF91619191ED5 + BE35E8B32B8208D93C4FE5B9383C2C0C19592CCC9DE749EE1EF668AF65B08A31 + 728825926899B879E31A5E963CD9472AE8AF16A0F7CE302274B3A722B3101074 + 59A9B3B0A116E5ACFB18EB321D8E631C41D5A17EB8E63E764EDE1A4102FD6DD9 + F9CF6163698A903397909E14DBBEEFE0A2ED1788902D0BDACCCD1C3A7810DCEA + 06B87B4CC5F42963DBA5606E51295E143F434242024A8A1FDFCD4CBCE9DED618 + 05A0BAD92D89908F1739F1B07170848BB3132C7A7FFE4E2D4A8B8E6D075A28DA + 6213329048C68D05B919E86E625EC3E3564D4A8E8FCC510BB03DD92D162B0FBF + 1E38208F669CC639C2C37514BA906F756BC61708119748474A6A260A5874046C + F4452D5F8C884B3764652585A373D312186D02B637BB25A8E580F38481DE7DFB + A3AFD560D8D90E80B9490F74ED62087D3D5D323890A2BE41809A3A1EE8D9643C + 585C48BE146C04F8AD83FB4427D4D50B703AEC1A020FED2997CA444E95252525 + 2A0135C96E71391C445C3887BCBC5C989011B5918A885A2A11DFE969DA67E49C + 196EDD66793823BF808DA48C3CF25E396E5E8B28232127B404A995EC56E98B12 + 30E8649CF78885AAD76F505B5B0323236374EFD903D5022A6A4A0A87359F499C + 3C3CED3E333666DA0CECA75350F404A6A6E630353307B7F265AB90FF7A76CB7E + CCE4616F2A4BA38DBA99F4EED77F10CCCC7AAB84FC24D92D33334B0B8ABE2E8D + 84FCA22DC84F963C5217F29366B7D481FCE4D9ADB620FF022D6AB5154B7E936A + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_30_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006C54944415478DA + D5980950534718C7FFE146B4022208A272144B71044F90AA788E58F01846AC37 + 8AD663D4167514F0A04A6BADDAF1405484D6B663054445053944411A88404C44 + 4E01B9C2A12431C8154248425E5FC4462D0209A4B5DD994C76DFDB6FE7F7FEBB + DFEEB71F05AF8BD7C1CB44E8FE95603789A0CA72F0EC755C0A5C4DE9ABBDDC70 + 4DC025E242C02A1250DC3970D0953E4305FA2C97D70F9DB98ADFBFF3EA3FE0AA + 03BF11A107D6A85EC1E028841F5ED77FC095FB7E21155C2B073C1814D167A840 + 9F95F2FAA133918838B2BEFF802BFC2F1221DFAC954FB1AA4A20F9A1914737F4 + 1F70B9DF4FC4F98075E034AB1A301C578E6DEC3FE032DF30E25C8037B82D2A06 + 3C7D1951C737A90650A5646F159500FE57CBFF077057686A7FA7982694E0F3F3 + DB66F1FF31C0139B66A22F94329BABD412304AD8194209E1AA4AC82E8052A26F + 42266757A149204256519D4A21BB004AA47D037C5CC641438B10CD0231328B9E + AB0CB20BA0A84379C0D2F24AC425A522FB712E783C1EF82D2DD0D0D29148C4A2 + 5CA243920809A219190939FD02DC79E13E7172F32CB48BA5AFDAFE3FA7F66A2C + E43781959B8E666E358C4D47C26088317406E8414B4B0722911042412B1AEBB9 + E0D455432C6ABF29154BF73CCA482CEF13E08E9064E2D49639687B0DD85B6166 + E7E0D0E1E3303419094B1B3B383A4D86A5B9310C3ED285D1205D34B50AC16B16 + A096F31219343ACA4A0A505D56DC22918A9766A7DF49521AD0E7DC3DE2F4D6B9 + 68157502EE0D4BEED6A8895B83D2CC047C6AEF0807C7A96825B448E792424B43 + 0DDB164FC2B37A3EE9D17510B44B2026970CF90AD2B666E4D06928CCC9243ADA + 456E0C5AC21DA500BF0E4E2282B6CF03BFBDA347833A36075BB6ED8285ED78B8 + 2F5A0867071BE869AB415DEDDD3D5FD22145F9F346D4932ACAFC4E36EED3B21A + 94E566A280F9A085E8908E63D0E22B1406DC7E269108FE6A3E9ADB3A01F785BD + 7F164AE97730584F17CE73DC2120951BA4AD0EB5BFC1BDDD5A32732C784D0274 + 9094898C7250F83C64675251519A7F8B494DF0501870DBE978E2AC8F1B1A05DD + 2B5859C9C2F69DBE983A6B01D6AEF684B1BE2E34D47A3F2D65FB8248D2811BD4 + 02588C1C81E4B818D0D31221140A1CC8F598A710E0D69371C4B99DEE6810483A + 150C49ECD2F979091314611366BA7B424CD126A756BD5BE5FE6A2C9D6D2F7F14 + 9D5A004787D1F8239D8EB4BBB1A8AD2C3DC24C8FDFAF10E09613B144C8AE85A8 + 6F9574DB79C7CE3DD01C68022F6F2F589B1B41535DB9582326BD103327DA22BB + B806F762A391FF88F6909916EFA410E0E61F6F1117762FC68BD701EB8190B82E + 9DF35322306EB20B6CC63B4347538D34A6BC47BA779B6ED3C6C8EB89194F3083 + 042CAF6B465C741498B42436831A6FAA10E0A6633788505F0F707B08F9177B78 + C2D1C50D5B3679415753E61C5DE3B59ECEA17BF46238D9DBBC72C4AB1111C8B8 + 1F0B12B0C76990BFFCF287EB4498DF12F99DE4C0F9982E9D9FA446619CA30B1C + A64C23B70E523F0A05321FA1BCFA75D6DF1E58063B6B922D08320091C520298C + 124C18630D619B1011E11160A6DFE132D2124C1402DC70E41A11E6EF4902767F + 2FDEBDDB0FDA834CE0EDBD0666C38CA06C497F5C864963ACF0BC8E8D2B1151CA + ADC1F587A388D0BD5FC80103CEDEE8D2995396032DA21DF3167840DF7048F783 + 52DE48E9EC602DAF67E555908096A0D21EE276CC4D3C633D3D4A2AB8572140EF + 6F2389D07DCB7ABC17575555C1CFCF1F9F91FBE046AF25D01BA0A39482CC4216 + ECAC8621F4D76BC8A42628B70FAE0D0C27C2F6AD9067160282AFBFD7A0B68006 + 2383C170993D17D65616DD8CF6A63ACE7694FC416E713558E51548494921FF9F + DC7D987ADBB5B78F920FA968768BCBE1C077CF6E58DB4DC46277574C771AABB0 + 82F1295948A5D2509493852126C31B9AB9F573D292AF3C56085099EC566B0307 + EC922C329A7182A3E304D8DBD94053E3CDA9F2D61284ADD570F005ED48BC4F47 + FA033A8AF2E808F0F54163AB0891D762A435ACE2293919298C5E0195CD6EE5E5 + E620E8D4490C35B380A5B52D9C268EC1682B73181BEA63A09E0EF8643CF8E265 + 234A2A6A417F5488CAF262D2294A11E0BF03AEB3A7A3A945808BE1371174E2FB + 5A89B47D3A9BC562F508D897EC9658D80A1E2B1F227E3D4CC8885ABF87889A0C + FF93869A8E9AECB1609EE1A2F9335058540A6A562EF9AE16B76F46D690902EEF + 83544976ABBA8A8587F42C14E6E781F7E2051A1B1BA0AF6F00A3A14351DFA686 + 86CAA2F1B23BC9F4F92BEC071B1864DB8DB6542F2A790A53D3E130351B0E2EFB + 59B790FF7A76CBC179EE781EBB3A56DFD0C4DCF2E34F606666DE23E407C96E99 + 99598DA4686BD048C811BD417EB0EC96A2901F3479A408E407CF6EF506F92720 + 7FB6159082BD940000000049454E44AE426082} + end> + Left = 40 + Top = 16 + Bitmap = {} + end +end diff --git a/source/forms/Animations120.h b/source/forms/Animations120.h new file mode 100644 index 00000000..aec38d93 --- /dev/null +++ b/source/forms/Animations120.h @@ -0,0 +1,19 @@ +//--------------------------------------------------------------------------- +#ifndef Animations120H +#define Animations120H +//--------------------------------------------------------------------------- +#include +#include "PngImageList.hpp" +#include +#include +//--------------------------------------------------------------------------- +class TAnimations120Module : public TDataModule +{ +__published: + TPngImageList *AnimationImages; + +public: + __fastcall TAnimations120Module(TComponent * Owner); +}; +//--------------------------------------------------------------------------- +#endif diff --git a/source/forms/Animations144.cpp b/source/forms/Animations144.cpp new file mode 100644 index 00000000..6d2354f8 --- /dev/null +++ b/source/forms/Animations144.cpp @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- +#pragma hdrstop + +#include "Global.h" +#include "Animations144.h" +//--------------------------------------------------------------------------- +#pragma package(smart_init) +#pragma link "PngImageList" +#ifndef NO_RESOURCES +#pragma resource "*.dfm" +#endif +//--------------------------------------------------------------------------- +__fastcall TAnimations144Module::TAnimations144Module(TComponent * Owner) + : TDataModule(Owner) +{ +} +//--------------------------------------------------------------------------- diff --git a/source/forms/Animations144.dfm b/source/forms/Animations144.dfm new file mode 100644 index 00000000..1ecffed9 --- /dev/null +++ b/source/forms/Animations144.dfm @@ -0,0 +1,39917 @@ +object Animations144Module: TAnimations144Module + OldCreateOrder = False + Height = 150 + Width = 215 + object AnimationImages: TPngImageList + Height = 48 + Width = 48 + PngImages = < + item + Background = clWindow + Name = 'ConnectingSecure_01_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000007C34944415478DA + D5997B6C53D71DC77FF75EBFEDD8899D4721314953A02581BEFEE8AA56055AA0 + 09444DC6A06BD382D46A6A45BB299BDA8D8DB1A18CB1216DEBFEA82A55D5D8BA + 964AB4109A176FE828533B4D7B00B663C779109C387642E247484313BFEEDDEF + 9E6B1BDB7162B03D9C1EE9E49CF33B27F77C3FE7F53B27A1E01B1EA85C745AB1 + F67D19A7CFBF889DAF48F71B1CC0178307373F91130078F6B0A4422AEEAD5A79 + 7FF9E2D232A050058D3F62538AA414962379A12E128EB6B681EDE0662A370018 + 2A9E6FAD0031F5F7AAEA55FA7420720E9029C48200C804A2B5AD7D6100A40BD1 + D6BE80009634B654D312D18555AB1ED2151797C42D95B920DA3B3A160640447C + F5CA07754545253182E787E8EC5C000044BC58746145F583BAC2A2E2591B753E + 8863C73AB30770B8B9482513497763178D582C4FD17C10803DF456FF8F3E1D64 + 979EBCB7EA015D61617154D8AD421C3F7E2C3B009DCD8B159C88397FD73DD58F + 2C7FF429902955C0067C420CF2E90CA67E2145DBD7935EB0F7F783D1A10A1E57 + 1C10A90BCBC2C2A9DB823871224B00EDFBF4BFBEABB2EA170FD7BD08E3572DE0 + B65F41C101E0B81070218C6C106388448A6341A556419E4A017D162B7CE16F04 + A3B22946F86C08B76B0C42C120249E4EA74E1ECF0E40C73E7DDFEAED6F2C9DFE + CA03FF6EFDEB1076FA2E075C3059DB115F49A99CF1353D727F09CD502CFCCBEA + 87B6821309C26FE63DEE3130775D76030B5F271EB1A74F650F20B4E987BFA54D + 678F82DD7C7147FD2F87DE4BD62EB261EB975DD53D5FF221E8F52570E9BF16F8 + 50D7356B83D244FC38745B2EBB597F700DCD313712FDC4D9D327B205B084DBD8 + B40F0CA73E0187D5B0BD61CFF047C9DA956F6F3D5B527AF7FAC78BBA608BF2F7 + B004012E5FB2C2075AD3AC35EEF5B8A0C76270B381E09AA1435BCDFCEF273ABB + 7367B20850FB83BD603C7318018C7302E85F68A9118BC59DB5CBAF895FD0BE83 + 33500C86CBBDF07E81316EA35EF7BAA1B73B5E7C24C44258CCC62C027CBF1901 + 8E80A3C734270099856D47EBBE957FB1BDA9AA83D1EB0BC160B8027FC9374647 + FFFA841BFAADC6A4E2632138319CC7EC34BE07AAB20250F3DA1E309E6B01674F + D7BC007C68DE59FF87F515036F9695EAC068BA0A7FD618C8E84FA2F8815ED3BC + E2A3817F4F8CDFA06D9FBF3C931D801DBB11A0159CBDA901DAF7966DD3EA3407 + CB4AB560EA1A843FA90D3075DD0D57FBBA6E4D7C42C80AC0D3AFEE02D3676DE0 + EC33DF2280FA60D9A27C305986E137531D70CD694B4B7C4600E6034B9FC577E9 + 5B1C077A4CD171E1E98F199623EF559217A2604FB445DA8D4E6BA78CDE652FEF + FBDDC72DE9E8480BE09F6F6BD50A59C1D8902B24954919D02831AA44A0563040 + 8B68A0449832343062115062C146A36BA5183CE3F9B25842EA81E1C0E59C04EB + 7F1CC6B56FD81EB863008603F7ACF4F939937D3C4484CF05205617012DD7903C + E777E35562869445052B788F05D4B415133F7CFEA9059E7AD3969696B401667C + 9C69D8353F80284F0B0C0AE6471EFC13D8990F01D4C0689601C5CFC8CC150270 + FEA805D6FDF84E02BC8B00EC2D00A80A8096E5611EBB094E62677E5266349561 + 001BA6811C018458D3B09B9D1F4089CB47A614D67B700A473B8065153079E502 + 80DF8E6910FED66281F53FB98300BFFAE3E2861AB1B4CDE14901A0C0D197CA71 + 09A18D9D4680200162546502406084007C76C4021B76DE2180257BB5D59572FA + CBFDB23C8D3315805C09944426D8581F8A0D21900201160900C131623B77C40C + 4FEF1CCC00A01924E1D49F4A3C25E12E3C54A9D5ED1C6561C43B3F002393032D + 91923C050114CB921961144598E7A1DCC476F6B0196A7E9A0140F97EAD05DD8A + 9C02EE49DBAE09DB5CE26914BFE8DE625DA55C02AFF74CC1E8440A00A914FD80 + 58F003F82AA1F0DCA7F9195168D12FF00013C476E61333D4FE2C03808AFD5A6E + 69D5DDD06F19B023C8EA448888F8B2FB16E9945A3914CD046047F757702D1580 + 448C002292A7694E7064FC8CC834E464A2B81B04E034026CCC14E0F1F58FE29D + 640C21AEC44108E2E142F98A529D4AA7C46B004B005EB14CA40640AF4BF1A3CF + DB6821A5118A96E68597156E6C06DFB71F9B61D3AE0C01566F780C279985511E + C22C40B0015AC98BAFAC2ED7A9752ABCBFB024164EFBE17B160F8CA50010F261 + E14CF84AC1CF08EE03B284D007F0B3921580B5354F1071FC088F3AAF411F0F41 + 518A652B2B759AC2BCA878FE22C603BCD4350E63D7D301E0CBA2F05D8822B693 + 87BAA0EEE7439901ACAB5D1B23124F188460F0E3F9859AA82D522F0E05A1C938 + 021E3C8514F2DB03B85916DA8D0E4F82E11F7663DD6E7BFA97391E60C3C67537 + 85021B07C3C6442E5CB7DC7B039EB44F409E4F98151662AFCBE16B74828D4D62 + 038E350643A1971AF6382F650450BB6983209297C8FF518ADCD9938B8F80795D + 1330601E72B37E5833B4C773DB8F916C8428C0A6BA5A32F289231E3F2B5CB4DE + E3F2429F6920A7E2E3009E79A66EB6E84884789B7BDC0356635FCEC5C70134D4 + D7A714CE47D7980BCC06EB82101F07F09D86CD64EDB39CB007F815CF25594A4E + E708584D3D493D764E01B67E7BCBAC8D3A6B398537F8886314BA4DD605011105 + 786EF377E38ECF64CB29B6EC748C2C08882840E396C694677F62BDC3E1CC3944 + 14E0C5ADDBC83F25A27B80381D36E5C9E41C7682C5D43D68F37997A77A4FFCDF + 00CAF7177C8997DBC7D2FD083AD46ECAE779D8D60C333901F82687FF01AB5221 + 7CC98D88DA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingSecure_02_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000007A34944415478DA + D5996B6C5B4516C7CFDC6BC7EF98D879C76920494BD37685E003AABADAD2524A + D28626BC5105952A5856A5CB432DBB5DBADDADB2A56C575A0112120556D58204 + 086829CF0F3C4B5B04080AB4C4AE1D07278E63274EE2388E9BB6F1FBDE3D77AE + EDC68E1B776D538791463373EEE8DEFF6FE6CC39E384C0AFBC90627C746BD751 + 75CBB53576955C5A91EB3BCE9C0FDBB7DDDED2541480BB9EF946B1AA493F5257 + 5BAD55ABD57419052184AA21106F688F241492D4D5EEEBB7C3FDAD4DA4280042 + D9FEE2C96B9A6AD55FD6D55495E6025174807C21E605403E10FDF3052057887E + FB3C02D8B6FFC40D5737947D545B5DA5502895A2E42C10F3062021BE4610AF50 + 521B890B9D0BC23E300F0012E2ABAB44F133D56483181818281CC0C1AE0AB55C + 22DB05C06CC4614396E98300DC1B2734CF1D3734FFE69DAA4A41BC62F641CD02 + 31E02810C0875DB54A5EC21EAD6E5A7AFDA2E537825CA5062E12126B546883D8 + 86C5166DD35393E0EAEB034FA0826756BC4EE4AA32AA2C63B49903C2512880F7 + F7D63F59DDB8E46FD7B5DF0BE303169870F5A3E008F07C0CF818562E8A35462B + E1395097AA41A35682CD6285B3959B8069D916179F19221898068EE3213D3A39 + 1C8EC2007CB0B7DEB672D3F6E6C0591F7CFFEE2B4E42C80B3CF0D14C73CF4817 + 2DD410FF838B9BCB084B38B03A22C0AC39125FE5D910C1E0348C8C8E0562313E + 921E6207070B07105BFFD83F19D36787C1653EB9A5E3EFCE9732CD4B1CD8AAE0 + 3145D5C47EA8AFAF82533F5A80EDE89BE12A172082C1008C8E8D057A0727D711 + 46E24FCF13CEC2012CE0D73DBA17BA3F7E0B86ADDD9B3A770FBD9669DED3877B + 7AEAAACB172BFD4741E77A0A1620C04FA7ACC074D812B12509110C0661CC238A + 7F76EBF5C78567E9C9CEE92C2040DBC37BC0F8E94104305E14E089033FFC7EA1 + A1EC255DE83BA6C2FD2FDC814AE8FEE967201B6C170E2A967068B6F8449909E1 + F3790B08F0C72E043804C3BDA68B020865E77F4F3EB44C7EE2F906FFF3A4BEBE + 1CBABBFB294062F505F11E8F27A3F899108DB5AA633CCF471EE95C5C591080D6 + 877683F1F3B7C1DD7B7A4E00A1FCE7D92D2F2F917DB5D950A707A36900C82D36 + EA3782F8F1F1B9C5278AF07BA2622AC4EEEF5A7DAE30005B7621C0BBE0FE393B + C0FB7B0CF7E9F4DA570D753A309DC69C8600E15000BCDEF14B129F5E0A0270F3 + 1F7682E9C87BE0B6992F11A0F45543CD1560B20CC1F4EA1FC1EFF7E7243E2F00 + F381E6BB780C2E3C0FF5D862E2C2E88F1DCC39208E1355B4A7DB12F3A65943C8 + CE2D7F78EB63FF3E908B8E9C00BE7D4E57AA9497799CDE984C2E6341ABC2AA96 + 40A9920546C2009160CB32C04A2540A4A28D6130CEB00418612C2DA1CF81E5C1 + EB9E02EB0FC3C655DB1DD75C3680EE034DCB4261DEE41A8F51E1170390965600 + A3D0D23E1F9EC0AB44908E25652D62C20A58B109C3B1772C70E3E38E9CB4E40C + 100CF1A621EFDC00128D0E58142CAC3C84FDF8B110029402AB5D0844D891603F + 05387AD8026BFE7439015E4000EE1200D465C0C835D8C7CF44A7F063613A66B5 + 8D710007B6912201C438D3D0043737800ADD47AE12FD3D7A0E571B2F6F7235B0 + 9A061120ECC2360A5FBC6D819BFE7C1901FEF14C6D67AB54F6DEB02F0B801257 + 5FA64017421B174080280562D50611203242018E1CB2C0DA1D970960C11EDDD2 + 4605F3F53EB946EBCE06A0500129918B362E84626308A444801A1120EAA1B6CF + 0F99E1E61D837900744149BC0D67134F4AF8E3D736EAF43B463918999C1B8095 + 2B802991D13E81088AE5E88EB0CA0AEC0B5013D4F6D94133B4FE250F80867D3A + 0BA61505017EB563A7DF7131F10C8AAFB9BA52DFA82881ADBDE760D49F054026 + C33C2015F30070E84A3C02E18E2875981704003FB57DFA9619DA9EC803E0CA7D + 3ABE79C955D067B1BB1064653A4442BC61718D5EA553404530025B7ACEC25836 + 8012290248689F61783191093B22D7D2C844F8F314E0130458972FC06F6F5A0E + 636E0F42F4A74088E2E178434B9D5EAD57E13580A3000F5AFCD90130EB1261F5 + 051B23B60C4231324DDCADF060B3001FBF6986F53BF30458B976056E3207A302 + 845984E0228C4A10DFB8B4415FAA57E3FD85A3B53C1086072C3EF0640110FB71 + E16CFC4A21EC089E03EA429803845D2908C0AAD6DF5171C20A8FBAC7C0264010 + A25CB8AC51AF2DD724C50B17310160F3E971F09CC90540184BE27721426D1FBD + 711ADAFFEACC0F604DDBAA192231C220048B2FBFA25C9BB4259E4B635178D438 + 023E8C424AC5FF0770612CCE1B1D9A82EE6F5CC6F65DAEDC2F7302C0DA756B2E + 08052E05869B51F9F8B34593E761B5CB0F9A90B82B1CCCBC2EC7AFD169362E83 + 0D78CE188DC53677EE769FCA0BA06DFD5A51A42051F8A314BDB367169F009BF4 + FAC16E764E7061B8C1B9DB67CE4540BE2509B0BEBD8DAE7CFA8AA7EE0A9F7CEE + F34E82CD642FAAF814800D1BDA678B4E5448B54D8CFBC06AB4155D7C0A406747 + 4756E142F57ABC60EEB6CE0BF12900B777DE467D9FE3C53320783C9FC195DCEE + 11B09A7A3366ECA202DC79EB1DB30EEA2C778A1FF091E151E83159E7054412E0 + 9EDBEE4E099F99DC69E6D83D3C322F2092001BEFD89835F6A73F1F1E76171D22 + 0970EF9DF7D17F4A24CF004D3A5CD6C8E41E7283C5D433E8084D2ECAF67BE217 + 0368D857F6355E6E57E4FA124CA83D24E4BBCED105C1A200FC9ACBFF006D6C1C + 7C8E0E64E60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingSecure_03_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000007C34944415478DA + D5997B6C53D71DC77FF75EBFEDD8899D4721314953A02581BEFEE8AA56055AA0 + 09444DC6A06BD382D46A6A45BB299BDA8D8DB1A18CB1216DEBFEA82A55D5D8BA + 964AB4109A176FE828533B4D7B00B663C779109C387642E247484313BFEEDDEF + 9E6B1BDB7162B03D9C1EE9E49CF33B27F77C3FE7F53B27A1E01B1EA85C745AB1 + F67D19A7CFBF889DAF48F71B1CC0178307373F91130078F6B0A4422AEEAD5A79 + 7FF9E2D232A050058D3F62538AA414962379A12E128EB6B681EDE0662A370018 + 2A9E6FAD0031F5F7AAEA55FA7420720E9029C48200C804A2B5AD7D6100A40BD1 + D6BE80009634B654D312D18555AB1ED2151797C42D95B920DA3B3A160640447C + F5CA07754545253182E787E8EC5C000044BC58746145F583BAC2A2E2591B753E + 8863C73AB30770B8B9482513497763178D582C4FD17C10803DF456FF8F3E1D64 + 979EBCB7EA015D61617154D8AD421C3F7E2C3B009DCD8B159C88397FD73DD58F + 2C7FF429902955C0067C420CF2E90CA67E2145DBD7935EB0F7F783D1A10A1E57 + 1C10A90BCBC2C2A9DB823871224B00EDFBF4BFBEABB2EA170FD7BD08E3572DE0 + B65F41C101E0B81070218C6C106388448A6341A556419E4A017D162B7CE16F04 + A3B22946F86C08B76B0C42C120249E4EA74E1ECF0E40C73E7DDFEAED6F2C9DFE + CA03FF6EFDEB1076FA2E075C3059DB115F49A99CF1353D727F09CD502CFCCBEA + 87B6821309C26FE63DEE3130775D76030B5F271EB1A74F650F20B4E987BFA54D + 678F82DD7C7147FD2F87DE4BD62EB261EB975DD53D5FF221E8F52570E9BF16F8 + 50D7356B83D244FC38745B2EBB597F700DCD313712FDC4D9D327B205B084DBD8 + B40F0CA73E0187D5B0BD61CFF047C9DA956F6F3D5B527AF7FAC78BBA608BF2F7 + B004012E5FB2C2075AD3AC35EEF5B8A0C76270B381E09AA1435BCDFCEF273ABB + 7367B20850FB83BD603C7318018C7302E85F68A9118BC59DB5CBAF895FD0BE83 + 33500C86CBBDF07E81316EA35EF7BAA1B73B5E7C24C44258CCC62C027CBF1901 + 8E80A3C734270099856D47EBBE957FB1BDA9AA83D1EB0BC160B8027FC9374647 + FFFA841BFAADC6A4E2632138319CC7EC34BE07AAB20250F3DA1E309E6B01674F + D7BC007C68DE59FF87F515036F9695EAC068BA0A7FD618C8E84FA2F8815ED3BC + E2A3817F4F8CDFA06D9FBF3C931D801DBB11A0159CBDA901DAF7966DD3EA3407 + CB4AB560EA1A843FA90D3075DD0D57FBBA6E4D7C42C80AC0D3AFEE02D3676DE0 + EC33DF2280FA60D9A27C305986E137531D70CD694B4B7C4600E6034B9FC577E9 + 5B1C077A4CD171E1E98F199623EF559217A2604FB445DA8D4E6BA78CDE652FEF + FBDDC72DE9E8480BE09F6F6BD50A59C1D8902B24954919D02831AA44A0563040 + 8B68A0449832343062115062C146A36BA5183CE3F9B25842EA81E1C0E59C04EB + 7F1CC6B56FD81EB863008603F7ACF4F939937D3C4484CF05205617012DD7903C + E777E35562869445052B788F05D4B415133F7CFEA9059E7AD3969696B401667C + 9C69D8353F80284F0B0C0AE6471EFC13D8990F01D4C0689601C5CFC8CC150270 + FEA805D6FDF84E02BC8B00EC2D00A80A8096E5611EBB094E62677E5266349561 + 001BA6811C018458D3B09B9D1F4089CB47A614D67B700A473B8065153079E502 + 80DF8E6910FED66281F53FB98300BFFAE3E2861AB1B4CDE14901A0C0D197CA71 + 09A18D9D4680200162546502406084007C76C4021B76DE2180257BB5D59572FA + CBFDB23C8D3315805C09944426D8581F8A0D21900201160900C131623B77C40C + 4FEF1CCC00A01924E1D49F4A3C25E12E3C54A9D5ED1C6561C43B3F002393032D + 91923C050114CB921961144598E7A1DCC476F6B0196A7E9A0140F97EAD05DD8A + 9C02EE49DBAE09DB5CE26914BFE8DE625DA55C02AFF74CC1E8440A00A914FD80 + 58F003F82AA1F0DCA7F9195168D12FF00013C476E61333D4FE2C03808AFD5A6E + 69D5DDD06F19B023C8EA448888F8B2FB16E9945A3914CD046047F757702D1580 + 448C002292A7694E7064FC8CC834E464A2B81B04E034026CCC14E0F1F58FE29D + 640C21AEC44108E2E142F98A529D4AA7C46B004B005EB14CA40640AF4BF1A3CF + DB6821A5118A96E68597156E6C06DFB71F9B61D3AE0C01566F780C279985511E + C22C40B0015AC98BAFAC2ED7A9752ABCBFB024164EFBE17B160F8CA50010F261 + E14CF84AC1CF08EE03B284D007F0B3921580B5354F1071FC088F3AAF411F0F41 + 518A652B2B759AC2BCA878FE22C603BCD4350E63D7D301E0CBA2F05D8822B693 + 87BAA0EEE7439901ACAB5D1B23124F188460F0E3F9859AA82D522F0E05A1C938 + 021E3C8514F2DB03B85916DA8D0E4F82E11F7663DD6E7BFA97391E60C3C67537 + 85021B07C3C6442E5CB7DC7B039EB44F409E4F98151662AFCBE16B74828D4D62 + 038E350643A1971AF6382F650450BB6983209297C8FF518ADCD9938B8F80795D + 1330601E72B37E5833B4C773DB8F916C8428C0A6BA5A32F289231E3F2B5CB4DE + E3F2429F6920A7E2E3009E79A66EB6E84884789B7BDC0356635FCEC5C70134D4 + D7A714CE47D7980BCC06EB82101F07F09D86CD64EDB39CB007F815CF25594A4E + E708584D3D493D764E01B67E7BCBAC8D3A6B398537F8886314BA4DD605011105 + 786EF377E38ECF64CB29B6EC748C2C08882840E396C694677F62BDC3E1CC3944 + 14E0C5ADDBC83F25A27B80381D36E5C9E41C7682C5D43D68F37997A77A4FFCDF + 00CAF7177C8997DBC7D2FD083AD46ECAE779D8D60C333901F82687FF01AB5221 + 7CC98D88DA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingSecure_04_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000007C84944415478DA + D5987B6C53D71DC77FF75E5FDBD7716CC78E63207662F28092401FFBA39B34AD + A08E959746556D54A52B52FBCFD4691BDBDA8DAD634388B169DAC6D8CA343A8D + 96AD54A24D42F38410A0032AB455EB06D88E4D4880BC1DC7891392DA71ECD8F7 + EE77EFB58DED3C4C6D0FBBC7B93EE7FC7CE2F3FD9CDF79FC8E09F88C2722179D + 9A371C977326CD55EC7C4DBADFC1015CE93FF1CC977202003BEAA46619DD5DB3 + F6E1F215A546205005896FF13921E404D6A365F1B3683AD5D8047D279E217203 + 80C9FC5CA31968E2C39ADA75A67420720E9029445E006402D1D8D49C1F00E942 + 3435E71140D9CE865A522AB9BC6EDD63BA921243C254590CA2B9A5253F00A2E2 + 6BD73EAAD3EB0D71829786686DCD0300413C2DB9BCA6F6515DB1BE64DE425D0A + A2ADAD357B0075FBF54AB944B617BBD889D5F214CDFB01D893876E7DFFFD7EB6 + AA7D75CD23BAE2E29298B0FB85387DBA2D3B00ADFB5728380975715965EDE3AB + BEF024C80B94C0CE05C427C4E7B39807C51C6D33D3933078EB16588795A1D38A + 631255B131229CF8541067CE6409A0F9A0E917CB2A6A7EF6B96DDF80B15E0778 + 066FA3E039E0B83070617CD8103E61E1213816942A25142A15D0E3E8822BC19D + 602DD81D277C3E8467DC0DE150089277A7B3EDA7B303D072D0D4F3C4AE57AAFC + 9F4CC0C78D7F1BC04E8F72C085166A3B123094325460F7E30F1B488A60E1DF5D + 41682A3A9324FC5E79C2E3067BE7750FB03093BCC5769CCD1E4078EBF77E45DA + CE9F8241FBD597B7FF7CE02F0BB58B2ED8EDD5BDBAE70C6F83C964806BFF75C0 + DBBACE790B9414C48FC10DC7750F1B0CAD2739CA977C4E9CEF38932D80326ECB + EE836039FB1E0C7759763DBD6FE89D85DA95EF6A3C6F285DB9F18BFA4EF85AC1 + 6FA10C01AE5FEB82BF6B6DF3E6F8E4C438DC74583CEC5C68FDC0C9AFDBF9FF4F + 3EEC2E9CCB22C0E6EF1C00EBB93A04B02E0A607ABE61134DD3AD9B578DD2CF6B + FF841E2801CBF56E385E644D58A853931EE8BE91283E9AE2211C766B1601BEBD + 1F01EA61F8A66D5100C10B2F9CDAF679CDD5E6DD352D94C9540C16CB6D784B63 + 8D8DFED45D0FDCEAB22E283E1E82A3E12216FD781FA8C90AC0A66FED03EB8506 + 70DEEC5C12804FFBF76CFFDD46F39D578DA53AB0DA7AE14DB54518FD69147FA7 + DBB6A4F858E2EF13633EB2EFD24BB3D90178792F023482B33B3540F301E30B5A + 9DFA84B1540BB6CE7EF8ABCA02DE290FF4F674DE9FF8A4941580A7BEF91AD83E + 6802678FFD3E0154278CCB3560730CC12FBD2D30EAEC4B4B7C4600F663553BF0 + 5E7A88E3C084391E5CB8FB6381E584FBAA50161FD19E6C8BB673F9B55EEB64F5 + 4B077FF36E433A3AD202F8E875AD4A212F720F8C8765721905EA027C94125029 + 282025241012CC2912285A02042DDA483C5A090AF778BE4E4B85CF81E260DC39 + 0D5DFF19B66E78A5EF910706603956B93610E46C83636141F86200B44A0F24A3 + 16CA5CD083A1C4AC509714ADE14F2C20FC5D9805E1D2FB0E78F2D5BEB4B4A40D + 301BE06C43E34B03480AB540A1607EE42178173B0B20800A28753510BC47666F + 0B00174F39E0CB3F7C9000471180BD0F00651190F2422C6337A169EC2C28D429 + 754504A00FF3B91C018459DB90875D1AA000A78FBC409CEF212F8EF61CD69540 + 15968B00C141CC43F08F06076CFCD1030478F3E4D6176BC76F1C1F9E4801A0C0 + D197313885D0C6FA11202400514AA308303722007C50EF80AFEC7940003F68F9 + EEFAC70A351DD59DEFC89CA900980220A472D1C606506C18811408B05C0408B9 + 05DB857A3B3CB5A73F7D801D753B183EAF7FB6DE9F4AFCEA92AA760313600C97 + 8FC2C8E4D200949C01522A13CA04CCA15856F008A5D0639987F208B6F37576D8 + F4E30C008E5C39E4C611A1EF787A37FCFEAB472C4B892FD26B18457002B4E75E + 07D7DD140032199E03B4780EE0AD84C07D9FE43DA2D0E2B9C003DC156CE7DEB3 + C3E69F6400F0D6C76F701AAD0A464647A76F7BEE3C910C1115AFD51731B45C02 + F4F428681060341580944600895026494E3CC8788FC8D5C2CE44703E01A00301 + B6640AB0A26C19CC78FD08E14A8010C557B717EBB50CCDD04218407FE20275C7 + 1F5303E0A94BF0A3CFDB483127118A941546A6152E6C0AEFB7EFDA61EB6B1902 + 94962DC7D88483191F42B84408D4AAE1C5EB4B748C94918A710DBE24D32E5075 + FC01DC2900C4724438150929788FE03A10A6109E01BC57B202602C2F15C4F1D1 + 96CF3723405024459718F48C4C4E8BC158E473097A40D97E18DC53E900F07549 + 241622045BFBC94ED8F6D381CC004C66A330C282CC08041F8061B426088F8E3E + FF22E666A1B8ED00B82782A0603E1DC0BDBAD8CE35340D967F0E5AB7ED1D4C3F + 98E301CACCA6D80847473B1E28A18EEFD2610B1458DA80F04D89E131C487CB91 + 303AC9C62E60038EB586C2E1179FDEE7BC961180D95C16195F5E222B7E798278 + 8862C56C017F00C6DC1EFF4D77CF96C3DB8F5C4E4740A6E91EC04AF127CDF8A9 + 32CF036203A1348BE2DDA36339159F005051B17281A9C2DD9B0AB1E9C58B9F05 + 97CB9D73F1090095151509D343FC9BEF0DFF0CBFCD8EE685F80480AACACAB885 + C78AD32569F7896EB1C323CE054FEC9C02545756C50985246F70090BDCE7CD1F + 8818C0AACA55095306B8C41D47F0479C377C5E5F5E40C4005657AD5E74012F7C + 1670E0CD038818C043D50F256D9BB0B837E216B8D7EB4588E1A94B43FF5A9EEA + 3EF17F0338FCE1AF7BD58CC69CEE97F802BEB11BCE8F2AFEFC6CBD3727009FE5 + F43FA72BD56D75A294AC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_01_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000007AB4944415478DA + D5985B505B5517C7D7C90D72BF1C2EA55C125AEC05A856BF19EBD4A9ADD68EAD + A8B55A45B44E75D4AAA84C67BE875A75BE713E1F3ABDDFC7F1C9079CB13AD582 + BD5168AD38FAE283172849B8852440082109A1850A249CE3DA1B884980409348 + 70CF6CF639FB6C4EFEBFBDD75A7BEDC3C0BFBC30C9F851C386CF53F95CCDAFF8 + E32B637D070FF093AD72DBBAA400C0735F4B0C29E296C2E2BBF58BB373804115 + 02FC13DA32B465F07EF27AFCD964F9E65C15582BB731C901C06278E19C01C4CC + 8F8545AB726381483A40BC100B02201E887355D50B03205688AAEA0504905776 + B6482011D5AF5A752F9B919119662A3341547FF7DDC20098145F54BC9A4D4FCF + 0C111C1DE2FCF9050040C58B45F52B8B56B369E919531C351AC4850BE7130750 + 5E5EAE502A951FF23C5F862FD7471B8B636C38E6CB2B5D2BBEF509B5979717DE + C3A6A5650485CD15E2E2C50B8901D8B56B974CABD55E2F2828B87FCD9A35909A + 2A05BFDF0F232323303AEAC74ADAD1E0F5AD5BB7C06EB783CD1308D8D917449A + F4AC09E1CC1D415CBA9420803D7BF67CB274E9D28F4A4A9E80F6F636E8ECEC84 + 4020006363635839DA72DC58F05E2693434A4A0AD86C56E812AF8601DD8610E1 + 53213C6E178CE1FB22A353CDE58B090368DDB9736781CF3700D5D55576ECFA14 + 6B60BAB13E7F6AB644C0552C376409784C663A9C37A133B73C42F8DFD75E8F0B + 9A6EFCEE010E6E4786D82B35890318DBBD7BB7A0B6B6168C46E35BFBF7EFFF6C + BA71930E7BBF41C8AE4EBD015A2D0B566B3BB41B3E9CE2A0022ABE0F4CC6DF3D + DC6860BD80170E45EE1375572E250C80AFA8A8809A9A1A686969791901BE986E + 9CFEE5737599D9F98F2ED30CC28A403D02E8D017ACD0A6FF608A8DF77BDDD06C + FCC3C3F903EBED5F6E6F22FF1FB9D95DAD4D20C03BEFBC0BB5B557A0B5B57546 + 80DC17CF3E26168BCFFF275F2ABE5BF80B68345AE8EAB2434BDEDE30471DE8F7 + 408B295CFC640985303635240EE0EDB7CBA1AEAE16DADADA6604A0ABB0E39B92 + 25F2FEEA47727A842A95061C8E2E68CEDD1B9CFD019F07DACC0DD38A0F85E0C5 + 701D2FFFC4F340614200DE7CF32DB87AB50EA3507B5400524ADFDB7FA8287DF4 + BF4AA50A9C4E079873DEA7B37F13C55B5A1AA38A0F16729EE81B12587F787538 + 21006FBCB10BAE5DBB0616CBEC00387E0786D24A8542092E97138CD9EFC3E080 + 073A5A6FCC4D7C444908C06BAFBD0ED7AF7F8F0096390148A5B24AB95C016E8C + F13F3065D0EBB0C6243E2E80D2D2D2E770E90F63CD65824E38F72A1008687B9B + 970DBA46D8572F7FFEC1D95874C404B065CB1615E63E2E8FC79342EE31BA8455 + 8944425BB2E34AB08A4522100A8520C2963C934AA5F43981181A1A82EEEEEE86 + D3A74FDF336F0038FBC5982E34F6F5F54D111F0AB078713660A60622A108BC5E + 0FCD85742C0B2B0B8B4188E23B2C6D34C530994C70EAD4A998B4FCA300998B16 + 814EC7D2991FF0F5D3244FABD3C1B2652BE88AD8311F227992D96C8693274FCE + 2F00CE5CA3CBE58A0A909E91015ADCB084083078EB264DF2345A2D2C2DB80B57 + 4088A6D3093CC7417373339C3871627E01388E6BECEDED8D0AC0B269A0D6A8E9 + 0A105BE7D05CD46A0D18F297D015E8C57D00CF07240581E3C78FCF1FC0BA8AB5 + 5BB39C39554EA7332A00C977942A2505181E1EA6B3AD52A921374F8F7D42E8C3 + 1524DFD830058163C78ECD0F40DEFF75454A4EF973B1E901754F4F4F5400B55A + 0D728502A390983A3029640726C91801E847C726257E808F4132D18ECE269E91 + F0F5B999396C764D21CC0680A1961E604462113D9490B8AF40A0CC455974556E + 0EF8681FE65070F4E8D1D801F4FB74465C4A2903FCC3D6BD3EEB4CE205283E6B + 7906ABE235A0F9CA302B00113F1EF345D4D649DC97CBE5400EF0D42F0607B18F + 2139141C3972247600C33E1D5F50980F6D464B27823C140931293E6745162BD7 + 4941E045F33863C06CD21115809C8FC96646008878E2B832998C8652119AD5C8 + F09FB41F5310387CF8707C000F3EFA00E6242E84680F8318170FF5FA95D9AC82 + 95E34C72144079268FECA05101484B2A996D52491F591115FA06F10BBF7F9442 + 757474C0A14387E2037868D35A3C7A72E024104DE3109C5F2027E29714E95915 + AB000EC57313008A33397820E98A0A305D4D494D05052672645538342B110258 + AD563878F0607C001B1E5B47C59119763A7AA19540308CECAEE225AC3A4D1914 + 4F6C99F18A407E269B7E81B85300BA2A343F12D34844FA6C361B1C3870203E80 + 8D9B378488E4A0072184220168D2D4C1BEE0738C55EACA7C70D81D980A707704 + 10398E7C3372BBDD0D08107B324700366DD9F8B750E0C260B850F113CF441619 + C87FC168725B3263AA3CC7DA8029C62B18857E8B0B60F3E39BC6451289FC1835 + 156E06F19360FD6E1F589AEC1E6E14D6DBFFE7BDE3C348224A10E0F192CD74E6 + 23673C7C55F8E073AFBB1F5A1B2D49151F06F0E4932553454F5608EFF3F479C1 + DCD09A74F161005B9F7A6A56E1A4BA5D6E68FAC3BC20C487013CB3751BB57D8E + 1FF70162F1FC34A6E470F480B9B179DA1D3BA900DB9F7E768AA34E31A70907EF + E97682A9D1BC20208200A5DB9E0F0B9FD39953E8BDA3BB6741400401CA9E2D9B + 35F6473EEFEE76241D2208F0D2F61D282CC40748C89C6545E84A7439C0D868B2 + 5947FA97CD769EF8C700F4FBB43FE39EB836D697F0002666C47B9FF563184E0A + C0BFB9FC05DF48F96D550E1BE00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_02_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA8640000078C4944415478DA + D5987B6CD35514C7CFAFAFADEFC76FECD10DC61E3C25F11115838218203251E6 + 0B09A2C107A04C25684CD068CC827F101EE33DD484E81F98887F68E02F711311 + 138C418391C9BAB1ADEBBAADEF751DDB581FF4F7F3DCDBB5B45DD7425BD77997 + 9BDBDE7BDB7D3FE79E73EEF99581FF796372F14FEBEACF2B16DC5B6294E78B67 + A4FB1D43A37EE3BBCF2EA8CA09C0BA03BF499757B1D6527DB15AA15050331221 + 0C55C3C0F8405F3161854CACB53BBB8CF0DAE3554C4E00487BEFF3CB7757E915 + BF969614A9D281C83940A610D302201388AEE902902E4497711A01BC7BFCD2A3 + F3CAB53FE88B8BA452992C243905C4B401088B2F21E2A5323AC78C0B4D0661EC + 9E060061F1C54521F1D16A5241747777670FA0AEAE4EA1542A3FE2797E03C330 + E5C9F6E29E1EDCF38D5FBFEAC2BCEAF2EF8B0A8978E9C4404D01D16DCA12C0D6 + AD5B655AADF67C7575F5838B172F86FC7C29040201F0F97CE0F707B093D11F79 + 3D3C3C0C66B319BCBC84BF67E5AB8C4CAEA4CA12669B2410A66C01ECDCB9F3D3 + AAAAAA8FD7AC7912535B27F4F6F6C2CD9B3721180C62E7E8C871C1C87B994C0E + 797979D0D36302B6E27EA8B867C5B8F8C410DEB11BF8791EE2B393C964CA1A40 + C7A64D9BAA3D9E213873E6B419A73EC37E33A1FB487473448C7F8BBE9065781E + 606068041E58BB63DCCA1321BCDE1B60B5D9C782413E109F628901B20510DCB1 + 6387A0A9A9095A5B5BDFDCB367CF1789F68503961FEE930E1A7F07AD96452B76 + C1B28D9F46B9CA2D08AF770C6C76FB587BCF600D231079E2EF09731601F8EDDB + B7C3D9B367E1DAB56B2F23C0D789F6357C6730941617CC1F757683F59F6604D0 + 612C9860E9C65DE1DC1281F07ABD607784C41FAC7BF002598BBFECC867B306F0 + D65B6F4353D38FD0D1D13129C00727FEDC3CA74CFB4570C42EB01B7E068D460B + 7D7D6678E4C55DB702159BDF37517CB84543B8DDAEEC016CDB5607CDCD4DD0D9 + D9392900691F7E79795B91D0D1386CFE8351A93460B1F45180B0F5897887C391 + 507C3444A55EFE0BA6E3C03BB5F30BB302F0C61B6FC24F3F356316EA4A0A404F + 62F789AF6401EB2B4AA50A6C360B3CB26117F51B22DEE94C2E3EDCC8F3C48CEB + 3EE1F1FAC746B202B065CB563877EE1C188DA90170FF4B984A4F2A144AB4B60D + 1E4600BF6F0C5C2EE76D898F6F590178FDF5CD70FEFCCF0860BC2D002C1B4ECA + E50A14ED807BD7BE0F1E8F272DF11901AC5FBF7E1D96040DD8673224F5DD6117 + 08047494C8B53E5E51F9F691FACD27D2D19116404D4D8D0A6B1FC7C0C0401E79 + 2F168B63BA4422A123B97125D8C5221108854210E148D648ED43D609C4E8E828 + F4F7F75F696C6CBC7BCA00D0FA8BB05C68713A9D13C44703E8F5A5C016148048 + 2802B77B80D6423A9685050B178110C5771B3B6989613018E0D8B1636969F94F + 018A8A8B41A763A9E5873C83B4C8D3EA743077EE7C7A22E4362575525B5B1B1C + 3D7A746A01D0722D98B39302CC282C042D5E5842041819BE4E8B3C8D560B55D5 + 73F00484E83ABDC0731CB4B7B7C3912347A61680E3B816BBDD9E1480650B40AD + 51D31320BECEA1BBA8D51A985D51494FC08EF7005E48A40481C3870F4F1DC0D2 + ED4B6A4B6C65A76D365B520052EF28554A0A40EA1B626D954A0D336795E39C10 + 9C788258A39212040E1D3A343500B376E9EE5272CA8B8B0C0FA9AD566B5200B5 + 5A0D722CBCC422310D60D2C80DAC2F2DA3008318D8A4650E500F92F1D19F4A3C + 23E12FCC2C2A634BCF2E845400986AE9038C482C8220FA3FC9FBA4922C2A2EA1 + A7727DC843E7B0868283070FA60F50BE5BD78A472965807FCCF4A1C734997801 + 8A2F9957C8AA780D68BE9D9D1280880FE57C11F57592F7E5723914CC280CC5C5 + C808CE31A4868203070EA40F307BB78EAF5E58019DADC65E0459160F11165F36 + BF8495EBA42070A37B9C9A8DD5A4252900793E2697190120E249E0CA64329A4A + 45E8563E7C6821F358824043434366000FAF7C08EC16074274C54084C4C385F2 + 05A5AC8295A325390AA03C358BDCA04901C8483AB136E9648E9C880A6383C445 + 20E0A750E42792FDFBF76706B06CD512E0F0CF4620AE8620B880404EC457DE55 + CEAA580570289E1B07509C2AC30792BEA400897A5E7E3E28B09023A7C2A15B89 + 10803CA0EFDBB72F3380E58F2FA5E288856D163B7410088691CD5954C9AA0B94 + 11F1C49719B708E4A74AE92F10770A404F85D647629A89C85C4F4F0FECDDBB37 + 338015AB974789E4C08A104291003405EAC85C641D7395FA640558CC162C05B8 + 3B0288DF477E3372B95C571020FD628E00ACAA59714B287031305CB4F8F13591 + 5106F24B984D6E48262D956FB35FC112E315CC427F6504B0FA8955219144221F + A4AEC24D223E0C36E8F280F1AA7980F3C3A3E64FDC57D31190698B003CB16635 + B57CBCC5634F858FACBB5D83D0D162CCA9F81880A79E5A335174B843ECDC80D3 + 0D6D573A722E3E06A076EDDA94C24977395C70F5EFB669213E06E0D9DA67A8EF + 737C280688C7F3095CC962B1425B4B7BC21B3BA700CF3FFDDC84409DE04EE301 + 6EEDB781A1A56D5A404400D63FF3424CFA4CE44ED1EF2DFDD669011101D8F0DC + 8694B93F7EBDBFDF92738808C0C6E75F426151314052668A13A127D16781D616 + 438FC9373837D5F3C47F0650BE5B7B11EFC425E97E090F60607CEEFB4CF5E0CD + 09C0FFB9FD0BCFF5FB6D9EEA6BF30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_03_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000007AB4944415478DA + D5985B505B5517C7D7C90D72BF1C2EA55C125AEC05A856BF19EBD4A9ADD68EAD + A8B55A45B44E75D4AAA84C67BE875A75BE713E1F3ABDDFC7F1C9079CB13AD582 + BD5168AD38FAE283172849B8852440082109A1850A249CE3DA1B884980409348 + 70CF6CF639FB6C4EFEBFBDD75A7BEDC3C0BFBC30C9F851C386CF53F95CCDAFF8 + E32B637D070FF093AD72DBBAA400C0735F4B0C29E296C2E2BBF58BB373804115 + 02FC13DA32B465F07EF27AFCD964F9E65C15582BB731C901C06278E19C01C4CC + 8F8545AB726381483A40BC100B02201E887355D50B03205688AAEA0504905776 + B6482011D5AF5A752F9B919119662A3341547FF7DDC20098145F54BC9A4D4FCF + 0C111C1DE2FCF9050040C58B45F52B8B56B369E919531C351AC4850BE7130750 + 5E5EAE502A951FF23C5F862FD7471B8B636C38E6CB2B5D2BBEF509B5979717DE + C3A6A5650485CD15E2E2C50B8901D8B56B974CABD55E2F2828B87FCD9A35909A + 2A05BFDF0F232323303AEAC74ADAD1E0F5AD5BB7C06EB783CD1308D8D917449A + F4AC09E1CC1D415CBA9420803D7BF67CB274E9D28F4A4A9E80F6F636E8ECEC84 + 4020006363635839DA72DC58F05E2693434A4A0AD86C56E812AF8601DD8610E1 + 53213C6E178CE1FB22A353CDE58B090368DDB9736781CF3700D5D55576ECFA14 + 6B60BAB13E7F6AB644C0552C376409784C663A9C37A133B73C42F8DFD75E8F0B + 9A6EFCEE010E6E4786D82B35890318DBBD7BB7A0B6B6168C46E35BFBF7EFFF6C + BA71930E7BBF41C8AE4EBD015A2D0B566B3BB41B3E9CE2A0022ABE0F4CC6DF3D + DC6860BD80170E45EE1375572E250C80AFA8A8809A9A1A686969791901BE986E + 9CFEE5737599D9F98F2ED30CC28A403D02E8D017ACD0A6FF608A8DF77BDDD06C + FCC3C3F903EBED5F6E6F22FF1FB9D95DAD4D20C03BEFBC0BB5B557A0B5B57546 + 80DC17CF3E26168BCFFF275F2ABE5BF80B68345AE8EAB2434BDEDE30471DE8F7 + 408B295CFC640985303635240EE0EDB7CBA1AEAE16DADADA6604A0ABB0E39B92 + 25F2FEEA47727A842A95061C8E2E68CEDD1B9CFD019F07DACC0DD38A0F85E0C5 + 701D2FFFC4F340614200DE7CF32DB87AB50EA3507B5400524ADFDB7FA8287DF4 + BF4AA50A9C4E079873DEA7B37F13C55B5A1AA38A0F16729EE81B12587F787538 + 21006FBCB10BAE5DBB0616CBEC00387E0786D24A8542092E97138CD9EFC3E080 + 073A5A6FCC4D7C444908C06BAFBD0ED7AF7F8F0096390148A5B24AB95C016E8C + F13F3065D0EBB0C6243E2E80D2D2D2E770E90F63CD65824E38F72A1008687B9B + 970DBA46D8572F7FFEC1D95874C404B065CB1615E63E2E8FC79342EE31BA8455 + 8944425BB2E34AB08A4522100A8520C2963C934AA5F43981181A1A82EEEEEE86 + D3A74FDF336F0038FBC5982E34F6F5F54D111F0AB078713660A60622A108BC5E + 0FCD85742C0B2B0B8B4188E23B2C6D34C530994C70EAD4A998B4FCA300998B16 + 814EC7D2991FF0F5D3244FABD3C1B2652BE88AD8311F227992D96C8693274FCE + 2F00CE5CA3CBE58A0A909E91015ADCB084083078EB264DF2345A2D2C2DB80B57 + 4088A6D3093CC7417373339C3871627E01388E6BECEDED8D0AC0B269A0D6A8E9 + 0A105BE7D05CD46A0D18F297D015E8C57D00CF07240581E3C78FCF1FC0BA8AB5 + 5BB39C39554EA7332A00C977942A2505181E1EA6B3AD52A921374F8F7D42E8C3 + 1524DFD830058163C78ECD0F40DEFF75454A4EF973B1E901754F4F4F5400B55A + 0D728502A390983A3029640726C91801E847C726257E808F4132D18ECE269E91 + F0F5B999396C764D21CC0680A1961E604462113D9490B8AF40A0CC455974556E + 0EF8681FE65070F4E8D1D801F4FB74465C4A2903FCC3D6BD3EEB4CE205283E6B + 7906ABE235A0F9CA302B00113F1EF345D4D649DC97CBE5400EF0D42F0607B18F + 2139141C3972247600C33E1D5F50980F6D464B27823C140931293E6745162BD7 + 4941E045F33863C06CD21115809C8FC96646008878E2B832998C8652119AD5C8 + F09FB41F5310387CF8707C000F3EFA00E6242E84680F8318170FF5FA95D9AC82 + 95E34C72144079268FECA05101484B2A996D52491F591115FA06F10BBF7F9442 + 757474C0A14387E2037868D35A3C7A72E024104DE3109C5F2027E29714E95915 + AB000EC57313008A33397820E98A0A305D4D494D05052672645538342B110258 + AD563878F0607C001B1E5B47C59119763A7AA19540308CECAEE225AC3A4D1914 + 4F6C99F18A407E269B7E81B85300BA2A343F12D34844FA6C361B1C3870203E80 + 8D9B378488E4A0072184220168D2D4C1BEE0738C55EACA7C70D81D980A707704 + 10398E7C3372BBDD0D08107B324700366DD9F8B750E0C260B850F113CF441619 + C87FC168725B3263AA3CC7DA8029C62B18857E8B0B60F3E39BC6451289FC1835 + 156E06F19360FD6E1F589AEC1E6E14D6DBFFE7BDE3C348224A10E0F192CD74E6 + 23673C7C55F8E073AFBB1F5A1B2D49151F06F0E4932553454F5608EFF3F479C1 + DCD09A74F161005B9F7A6A56E1A4BA5D6E68FAC3BC20C487013CB3751BB57D8E + 1FF70162F1FC34A6E470F480B9B179DA1D3BA900DB9F7E768AA34E31A70907EF + E97682A9D1BC20208200A5DB9E0F0B9FD39953E8BDA3BB6741400401CA9E2D9B + 35F6473EEFEE76241D2208F0D2F61D282CC40748C89C6545E84A7439C0D868B2 + 5947FA97CD769EF8C700F4FBB43FE39EB836D697F0002666C47B9FF563184E0A + C0BFB9FC05DF48F96D550E1BE00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_04_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000007B04944415478DA + D598696C535716C78F9767FB65F11A3B84C489139B2424D0321AA97C9A018D46 + 1A21A6952A0DA58C5AD1AA85D2B4458CE603DDBE55230D59081098E5CB200D23 + 552AB41002648540A7D274539700D9173BABEDC4499CD8891D3BEFCDB937D8D8 + 4EE204DB4DDCEB5CDFB7DC3CFF7FF7DC73EEB94F003FF322D88C1F35ECBD28E3 + F5CAEFF0C7B7C7FA0C1EE00BCBA5E77FB5290070E0138941CA7497EC782A6F6B + 760E08508510BF425B016D05781E385EBA17289F5EBD06E64BCF0B3607008BE1 + C5AB0660049F9794EED4C702B1E900F1422405403C1057AFD5260740AC10D76A + 930820F7D09552A1447C6FE7CE5F6874BACCB0A9B21A44EDF5EBC90110105FBA + 639746ABCD0C111C1DA2AE2E0900A878467C6F7BE92E4D8656B7CC51A341DCB8 + 51973880B2B2B2B4F4F4F40F789E3F840FCF8BD617FB58B0CFC78DC3C59F4D8B + 54F545254F6B3232744161EB85B879F34662008E1E3D9AA252A95A4D26D333BB + 77EF06998C059FCF075EAF1716167C5849BB103C9E9D9D85C1C141B038FCFE41 + CD8B62A536EB9170C11341DCBA95208093274F7E64341A3FDCBFFFF7D0D7D70B + 434343E0F7FB617171112B475B8E5B0C9EA7A4A482542A058BC50CC3CC2E70AA + F786085F0EE198B0C3223E2F323A35D4DF4C1840CFE1C3874DD3D34EA8ADBD36 + 8897FE8ED5BF52DF699F2C5B22E48E1719B2843C263303D61918D29745087F7C + 3CE9B0C3C3073F388083B9C810DBD8903880C513274E089B9A9AA0BDBDFDD8A9 + 53A7FEB952BF80C33E63106976C91E804AA501B3B90FFA0C1F2C735021153F0E + 1DED3F38B805FF1E212F7247AE13CD8DB71206C01F3F7E1C1A1A1AA0BBBBFB65 + 04F8CF4AFDF25EBEDA9C999DFFDB42A50B8AFDF710408DBE6086DEBCF797CDF1 + A9C909E86AFFD1C1F9FC7B063FFEC343F2FF918B5D4B530201DE7AEB6D686A6A + 849E9E9E5501F47FBCF23B8661EA7E99CF324F89BE06A55205C3C383D09DFB5E + 98A33AA71CD0DD112E3E504221DA1FB6250EE0CD37CBA0B9B9097A7B7B5705A0 + 5678E9D3FD05A953B5BFC91913C9E54A181D1D862EFD7BC1D1774E3BA0B7B36D + 45F1A1103C03AD78388FFB81928400BCF1C631686969C628D41715809483EF9C + AA2CD52EFC393D5D0E56EB2874E6BC4B477F06C5F777DF8F2A3E58C87E62DC2D + 34DF7DD593108023478EC2EDDBB7A1BF7F6D00ECFF1286D24B6969E960B75BA1 + 3DFB5D70391D30D0F3607DE2234A42005E7BED75686DBD8300FDEB0260D9944B + A9A969308131FEAEE010D846CD31898F0BE0E0C18307D0F45558F582A013AEBF + 0A8542DACEF1292EBB57F36AFDC5F7AFC4A22326807DFBF6C931F7B13B1C0E29 + 39C7E812562512096DC98A2BC1CA88C5201289408C2DB9C7B22CBD4F20DC6E37 + 8C8C8CB45DB870E1E90D03C0D1DF81E9C2FDF1F1F165E24301B66ECD06CCD440 + 2C12C3E4A483E6426A8D06B697EC00118A1FE8EFA529464747079C3F7F3E262D + 3F2940E6962DA0566BE8C83BA7A76892A752ABA1B0B0985A6410F32192277576 + 76424D4DCDC602E0C8DDB7DBED5101B43A1DA870C11221806B768626794A950A + 8CA66D6801114E9D21E0390EBABABAE0DCB9731B0BC071DC7D9BCD161540A3C9 + 008552412D40E63A87D345A1508221BF805AC086EB00EE0F480A0267CF9EDD38 + 8063E5475E99FCD679D16AB5460520F94EBA3C9D02783C1E3ADA72B902F4B979 + 784D04E36841F28E0D53103873E6CCC600FCE9FA3B7BF4A2ECC6AFFEFDBD746C + 6C2C2A8042A180D4B4348C420C756052C80A4C92310230858E4D4ADC00073E39 + C092F6F20B97E7D7125FA433D58B3811DB72F6BFB01600865ABA81113362BA29 + 21713F0D8132B76451ABCC38A7E935CCA1A0BABA3A76809A2FAAEC02A180E977 + 0CEC3DFD6CCD8FD1C4ABB44A766EDA030DE577D60420E29762BE98CE7512F753 + 5353816CE0A95FB85C784D407228387DFA74EC00FFFAE61FBC522D87319B6DA6 + CFD1FFEB48888078B556C532320C89D65968A868C56C72342A00D91F93C58C00 + 10F1C471535252682815E3B4F27AE6E9754C41A0AAAA2A3E80ADB95B60CE358F + 10D6308825F1DBEA33B46A9661193A9233B659A8AFB84356D0A800A425958C36 + A9E41AB1881C7D83F885CFB740A1060606A0B2B2323E80ECDC2C8C073CCCB911 + C2BA04815A9544BC56A76125AC848A271F6A81CA3BB821198E0AB05295CA6490 + 86891CB10A87CF132380D96C868A8A8AF80072F2B2A9385489317B8E42E062C3 + E832B5AC54C6903BC1FB4E620104206F209E14805A85E6470C8D44E49AC56281 + F2F2F2F800F4861C3AC254E62308E2605299940A0F8C3EF9F83D3EA8FB4B0B0C + 59863015E09E0820B21F7967343131D18600B127730420D7A00F8E7060B44381 + C2CEF17BF8C1183C6CE802CF8C77D554799DB50D538C57300A7D1F1780C190FB + 687C89440EA8D630F110C00A5EF3CE7B713575CC77D97BF6553F57732F1601F1 + 96C700F94BAF3443A7CA320B2C75A0471E146FB78D6FAAF830808282FC15A64A + 403C844C2F22DE831B72FBA68B0F03301614844D8FA5BFE5D6989F2361D69614 + E2C3004C46E3E3D1E6B9A5E912117D022176646C74C5157B5301B6194D214221 + C21A7C9883BB5DC9031104283416864D19E0C3230EB5478835DC2E7752400401 + 8A4C45AB3AF0CA6B010FAE24800802146F2B8E089BB0BA35421CDC8529F1C8D8 + 88F3EEF0FFB2D6DA4FFC6400D59FFF7540C12A0DB13EC4ED758F778C7E59F0B7 + 172EBB3605E0E75CFE0FFD30C96DAC3D18C90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000059C4944415478DAD5D9794C93 + 771807F02F884598D7D089024E6788996ECE5D7FE0B23F5071F304510313DCC1 + 184365CB0E268B41428C4B9CEE721E78E0B9307573F1DA206453D42CCEC94C74 + 59F0E292A305456A4B4B4BDBB77DD75FBBF7DDDBBE6FED7B95E8F357F3F6E5D7 + E7F3FBF67DDFA7218CA6693CCC15A616A070D75955161A1F3B14F9F39E852622 + 3CACDF015FBD9BAC789DC367AFA3CB68118D78E000C7FEA887CDEE148D78E000 + A7AFB4A2C762138D501D60A75C8AD6B9DC780766ABDD07913B6712A235518208 + D5001FEFA8A1BF5E3E4331A0A9C300A3C5EE83D076F762C582C98208D50116BB + 1750B4BD5AF21A1B57CC468F9582A1C7CC43B475195190F60C0FA11AE0C3B253 + F4A695292C406E39280A560704118D3A038AB392420378EFDB2A7AEB07731527 + 70A3E31EAACED7436FEEE3BD6FB35AE0FE8CD002EE592855D6BB5C7F1B17EADA + 60EA73B0C7CC2653FF014ACA7F5565DD45C95351AFD5C345BB50D7A00D1D60E5 + 37BFD0651FCD572D016ED91C2EB474EA71A0EA12DC9FD13F00B5125897F70AFB + BA786775E800CBBF3C41EFF8242D240930B5BAAC12EECFB83F40ADA99276B960 + B7F5295E67CD5B29ECEBD29D95D859941E1CA0D654499EA0D92953D4D80F2FA6 + EC2476AF5ED23F0066AAACBDAE939C04051B6A6D1B61870115D955183D38BEFF + 01DCA99224B124F969444604FF8D62A52C78FF64265AC3AE62604404061A8760 + C7C2131E842480DA53A59824989DA746B52366DC50CF3193D6E2416C4B3D8EAD + FB2F625FC9D2FB03423955925966D1F4A9EE812C9C77BEC56EC5AAEA4CB4875F + C7F0C707FBBCC720C6EBF371B8A4401C40EE4C43767143DEBC8003D99F57DB41 + 39EC823BEF8AD5F19AE7227ADB06A0A6E01CE286C6B3081E40E95439776F121C + B41DBBD28F6144547CC0A972D9ABCFF9EC7CC7C09B88193BDC73CCE1B20BAE4D + 10834CC37024BB9245F0004AA7CA4AEBEB487C6A020CB7AC9815B31EB6DE21BC + 73C854C9DDF9B0B84E8C1A3712B47BDE71D2FF6F9C10C41F111020F789FAFCE6 + 58BC9C9284CE8E3B30B5DA50F8E21EDC6C74F2A6CA828C97D89D8F7B62B417E4 + A2442362ACA3F15BDE85E000A9330D498000481144FB3523A669D660D9F499EC + 54F9774313BBF34CF34C1104292EC41FA16FE9C194C817F0FDD2E37C80D2A992 + 49802926893D8B4F78AE896BED3A14562E45648201F113C6B89BA4DC4D3B78EB + 044AC3D06A4662F8647C9779D4F3F33228404E0233674FF734E5FC6F3719C496 + D483587BAA10DD91AD9EE69922086FD3BE1006E13DC785AE5B7A9FE6C9711E40 + E95449122000A6212EA2F15A3362131EC3B8C4B1EC57855B426930E7DD69B90B + FBAD4771B1E8BCCF0F7B1E207FE331DA3DF1A1D3E8FDDE7DB6FF94AC047C9BF0 + 427A4D163C32249A3DEE701FF78708A5A16BEEC418C74444DD48C591CF833CC8 + DE59FF13ED9E375880D49AB67D0C0FE09F06B7822198E6D7CD38880D65477178 + 439E34809C04E6CD9F833E8A3FF7044290B25256DEB1E68666B6F9419A68ACDD + 54211D20270102601AA65C4E5969689B3A606E8AC293E65C0CA035EC39410139 + EB0ED1EE894F7102DC92920641B434B421DE39DEE76E13A802025ABA6DB21248 + 2E8FE301022184200D379B44372F0878A3B482DE5D92850EA3F72EF045C56949 + 0092405AEA02C1DB6420088390DABC2880D422092C4A4BE7DC49F8102184FE5E + 37AEFCF50FAADFFE1D13474E12D5BC2020BB781F5D5EFA267406EF35B0E9508D + 240049800098F23E9CF808A10B5CA7D5C1D86AC10F593F2361D8587909F803A4 + D6ACBDF13E80FB2148F9A7211511920432D2330407B4401025081EE0B54FCBE9 + EDA539EEDBA8BC6B60EE8104642DCE621BF587884D432C222860DB8F67242740 + 00DEE60323B8EF2B41842C016E9146A57CA5B817388338935F0B4DB826F8FFC8 + 940256552F44DDED4BB2FE3650258E9888CADC73FD031053424399DC12046C29 + C9C15DD3430C0859E79C0A19E061AB7F0183E061EC65F272BF0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006484944415478DAD5D9695013 + 671807F07FE488DC885514F0A865D46A0FA7FDA04EEB94AA6D150F40AD56E865 + 3DF06ABD75AC22D3B19D0ED85ADA0A8878B6546BEB781686A9F7386AB5CE68A7 + 55541008478828212121C766936D3671D70DD990DD8530FA7C0A49589EDFFBDF + 7DF74990511485A7B9646D0132994CD28156169CED949518181D8EF44923200F + F0F3DA08DD7BA702BE5D90D061C0AFE76EE381D62008F144028E5C2A8799B00A + 423C9180D3376AD062300B42F8044090B60E01AEDF6B84DE48B820E64E7C1E21 + F260B7C63A15B022FF34B575E1D80E032A1B34D01A081744ED032D9624BDE486 + F009C04038016BF34B451F237BD104B41849685AF46E88EA462D3E4B7645742A + 6059EE492A67F1781620B52C2409A305BC887B4A0D36A68DF60D60494E31B56D + 59628713B8D3D08C928BE550EB4D6EAF9B8D06E42E9FE45B40B38194BCFADCBA + 5E7E1F976FD64267B2B0CFE975BAAE036414FED9299069092FA3BC5E0D1B65C3 + CD8A7ADF01166D3D41E5AD98DC690970CB6CB141A152635FC935E4AF9CD23580 + CE4A60F3FCB7D9C71B0A4A7D0748DF7294DABE3AC9270930B53EAF18056B92DB + 07ACDA714ED25449D96CE8191E0CC2EADC85B43A03480BD1E1A6377E3C9E7D9C + 59508C1DEBA67907489969E83D3B223890FD991ECA1A352624BD36A4C3081693 + 771CBB3E7FB76B00F4584CD75FB7EA442741C28CABE66C10D0A028AD047D4263 + 7D0F686A31D94FA1EEEC2C74A94C65BF8B9AEC77562B54CD06248E1A0AB9BFF7 + EBCB481AF0E9F159A891DD4280BF3F02B461D89E7CCC811005103B94E9EC0970 + 0117FEAB839120A13710829360569EEC5D87A801E1CEE3D61B1C88DCA947B16D + EF15ECDD94DA3E60E5F63392A64A752B89A8107F30BFA6686A81B1D56C1FCEAC + 6C12950D2D481A331C7CE3BD8130624DE92CD475BB8DC8FEA1AE8BF30831509D + 8E839B960A03889D696CF65DA8474408CCA41919EF8F85D23EC7D38066BDD96B + 12CCCADBA2956ECD7311ADB57E38B3E43C6223E2641E01CBF34E499A2AE93138 + 3CC81F89BB47C14211D89172043D8362EDF705036F1233125E7059F98680BB88 + EA17E978CE62E33FD56844775D047E4F2B762078014BBF2F9134553209EC6F9C + 81F8E183A0A936625CE457205AC3DCDE4B984D2E2B2F8B51A1F78067EC2B6A83 + 957ABC707C102E22263C56E61120F68E4ACF2BF2806E78E58768BC3E7E14540D + 8DD0D598B16EE41E542A0093F9F154498FCAF3A68C60573EE6D93E4E908D148C + 8832F6C1C9F997BD0384CE34DC0468005D34A2AE4C8BD1811B3173CC1BA85269 + 1CCFFF5351C9AE3CD33C5334822E2EA42D42AD68C18BF257F1CBECA3EE80C5DF + FD2169AA546B5B116507300930C524B16BFA31C7355156A7C4AAE2D990C76910 + 3BA8AFBD49D2DEB4C5ED789ED2D0D4E811DF6D187E9A7518C18141DE01521218 + 37E14D4753D647ABC920B2DEF91959E757A339A8CED13C5334C2D9B42B844138 + DF63C3836A35DB3CFDD998F7225EF8CD3149532537011AC034C445DC2BAB4274 + 5C2F0C88EFC79E2ADCE24B83795FA3E22188EA1EB8B2F622FBC19E17909E7D84 + 2A589B0295D679DE7DB9F794A4045C9B70425AED136A485830E794B0B841F8D2 + 5056A9D0D732184177A6E25096971BD9BCAF0F513BD7CF600142ABD560445868 + 0846E646BB01DAA6C12D6F08A6F9CD63F7232BEF300E662F1007109340504828 + 0EABA763D2E4893091EEDF2A7842D065248D6ECF555554B1CD770F0CC6173945 + E201428BBEE3D295B8EF3907806998B45925A5515FD9007D651086EAE7C28F7A + 3CA67B05CCD97C80DA93315B74024C151B3F60014C89498346282A6A116B1DC8 + EE369EFE56BB0045935954E34C2514C6B8013C21F82015772B0535EF11F06166 + 11B53323150D5AE72EB0A5E8B4E80492A64EE1DD263D41188498E60503A42430 + 2D2985B393B843F810EAE626DCF8FB5F947E7201437A0D13F4D5082F206DC31E + AA30F3232835CE6B20E7C019D109D000A69C37277704DF05AEAC57425B63C0C1 + D413E817D95F5A026D0162EBADDDB12E80F61074B54D430CC26709CC4C99C93B + A079824845F002DE5B5748E567CEB16FA3D2AE81C47D71489D9ECA36DA162234 + 0D21084180DCDFCE8A4E8006389BF78CE0BE2E15E1D304B845372AE694E25EE0 + 0CE26CFA55C8FDE4DEFF47D651C09AD264DCBC7F4DD2EF7AAAF89E83513CF77C + D7008454DBA14C6A7904FC9831070F754F31C0679D73CA6780A7ADFE073C9115 + FB7F7E7C430000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006484944415478DAD5D9695013 + 671807F07FE488DC885514F0A865D46A0FA7FDA04EEB94AA6D150F40AD56E865 + 3DF06ABD75AC22D3B19D0ED85ADA0A8878B6546BEB781686A9F7386AB5CE68A7 + 55541008478828212121C766936D3671D70DD990DD8530FA7C0A49589EDFFBDF + 7DF74990511485A7B9646D0132994CD28156169CED949518181D8EF44923200F + F0F3DA08DD7BA702BE5D90D061C0AFE76EE381D62008F144028E5C2A8799B00A + 423C9180D3376AD062300B42F8044090B60E01AEDF6B84DE48B820E64E7C1E21 + F260B7C63A15B022FF34B575E1D80E032A1B34D01A081744ED032D9624BDE486 + F009C04038016BF34B451F237BD104B41849685AF46E88EA462D3E4B7645742A + 6059EE492A67F1781620B52C2409A305BC887B4A0D36A68DF60D60494E31B56D + 59628713B8D3D08C928BE550EB4D6EAF9B8D06E42E9FE45B40B38194BCFADCBA + 5E7E1F976FD64267B2B0CFE975BAAE036414FED9299069092FA3BC5E0D1B65C3 + CD8A7ADF01166D3D41E5AD98DC690970CB6CB141A152635FC935E4AF9CD23580 + CE4A60F3FCB7D9C71B0A4A7D0748DF7294DABE3AC9270930B53EAF18056B92DB + 07ACDA714ED25449D96CE8191E0CC2EADC85B43A03480BD1E1A6377E3C9E7D9C + 59508C1DEBA67907489969E83D3B223890FD991ECA1A352624BD36A4C3081693 + 771CBB3E7FB76B00F4584CD75FB7EA442741C28CABE66C10D0A028AD047D4263 + 7D0F686A31D94FA1EEEC2C74A94C65BF8B9AEC77562B54CD06248E1A0AB9BFF7 + EBCB481AF0E9F159A891DD4280BF3F02B461D89E7CCC811005103B94E9EC0970 + 0117FEAB839120A13710829360569EEC5D87A801E1CEE3D61B1C88DCA947B16D + EF15ECDD94DA3E60E5F63392A64A752B89A8107F30BFA6686A81B1D56C1FCEAC + 6C12950D2D481A331C7CE3BD8130624DE92CD475BB8DC8FEA1AE8BF30831509D + 8E839B960A03889D696CF65DA8474408CCA41919EF8F85D23EC7D38066BDD96B + 12CCCADBA2956ECD7311ADB57E38B3E43C6223E2641E01CBF34E499A2AE93138 + 3CC81F89BB47C14211D89172043D8362EDF705036F1233125E7059F98680BB88 + EA17E978CE62E33FD56844775D047E4F2B762078014BBF2F9134553209EC6F9C + 81F8E183A0A936625CE457205AC3DCDE4B984D2E2B2F8B51A1F78067EC2B6A83 + 957ABC707C102E22263C56E61120F68E4ACF2BF2806E78E58768BC3E7E14540D + 8DD0D598B16EE41E542A0093F9F154498FCAF3A68C60573EE6D93E4E908D148C + 8832F6C1C9F997BD0384CE34DC0468005D34A2AE4C8BD1811B3173CC1BA85269 + 1CCFFF5351C9AE3CD33C5334822E2EA42D42AD68C18BF257F1CBECA3EE80C5DF + FD2169AA546B5B116507300930C524B16BFA31C7355156A7C4AAE2D990C76910 + 3BA8AFBD49D2DEB4C5ED789ED2D0D4E811DF6D187E9A7518C18141DE01521218 + 37E14D4753D647ABC920B2DEF91959E757A339A8CED13C5334C2D9B42B844138 + DF63C3836A35DB3CFDD998F7225EF8CD3149532537011AC034C445DC2BAB4274 + 5C2F0C88EFC79E2ADCE24B83795FA3E22188EA1EB8B2F622FBC19E17909E7D84 + 2A589B0295D679DE7DB9F794A4045C9B70425AED136A485830E794B0B841F8D2 + 5056A9D0D732184177A6E25096971BD9BCAF0F513BD7CF600142ABD560445868 + 0846E646BB01DAA6C12D6F08A6F9CD63F7232BEF300E662F1007109340504828 + 0EABA763D2E4893091EEDF2A7842D065248D6ECF555554B1CD770F0CC6173945 + E201428BBEE3D295B8EF3907806998B45925A5515FD9007D651086EAE7C28F7A + 3CA67B05CCD97C80DA93315B74024C151B3F60014C89498346282A6A116B1DC8 + EE369EFE56BB0045935954E34C2514C6B8013C21F82015772B0535EF11F06166 + 11B53323150D5AE72EB0A5E8B4E80492A64EE1DD263D41188498E60503A42430 + 2D2985B393B843F810EAE626DCF8FB5F947E7201437A0D13F4D5082F206DC31E + AA30F3232835CE6B20E7C019D109D000A69C37277704DF05AEAC57425B63C0C1 + D413E817D95F5A026D0162EBADDDB12E80F61074B54D430CC26709CC4C99C93B + A079824845F002DE5B5748E567CEB16FA3D2AE81C47D71489D9ECA36DA162234 + 0D21084180DCDFCE8A4E8006389BF78CE0BE2E15E1D304B845372AE694E25EE0 + 0CE26CFA55C8FDE4DEFF47D651C09AD264DCBC7F4DD2EF7AAAF89E83513CF77C + D7008454DBA14C6A7904FC9831070F754F31C0679D73CA6780A7ADFE073C9115 + FB7F7E7C430000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006474944415478DAD5D9794C93 + 771807F06FE5121441102B54541C73466316DDA166CBE6B545F1E070F380EC70 + 1E78C66353E314D9E69245748E6D0222CC6361736E463C0621DE6E73C623D3C4 + 380FEE420F14DAD2969E2F7DD7B7DDFBFA96B6F47D5F28D1E7AFF2B67DFB7C7E + DFF7785A442449E2592E514780482412B4A30D8517BB6525E2A2C3B126792C42 + 82027C3642F5DEAD80AF974DEA32E0974BF7216B69E384782A01A57F57C26C69 + E784782A01E76F4BA135983921FC02B010B62E016E553F82DE6871412C993106 + 917D42DC1AEB56C0FA82F3E49EE553BA0CA85168D06AB0B820AAE51AAC4E19E7 + 86F00BC0607102361554F0DE47CE8AE9D01A0968B47A4E886E05ACCD3B4BE6AE + 9CC6008496952060B4C22B625BC644FF0056E596917BD726753981070A35CAAF + 5442A537B93D6F361A90B76EA67F016A032178F5D975ABB20957EF364067B232 + DBF43A5DCF01B28ACE740B246DD28BA894A960236DB85B25F31F60C59ED364FE + FA59DD9600BBCC561BEA952A1C2EBF89820DB37B06D05D09EC58FA36F3786B61 + 85FF0099BB4E90FB3E49F64B02746DC92F43E1C694CE011FEFBF2468AA246D36 + 48622298BF1B9AD420AC962E37BDEDC369CCE3ECC232ECDF9CE61B2064A6A956 + B4E2B9D808E64E7CE69F3A346B2D98FECAF02E23184CFE29FCF0E9BB3D0338FE + D743B4198CB853D7C23B0902665C37E7C0020D4A32CA31A8AFA4E701D450A6D6 + 9B1D8F956A23268F4D4048A0EFF3CB4818B0E6D47C4845FF2228301041ADE1D8 + 9772D281E005E03B94353CD63900F49DF88F3B0D30184DF6FD909C93A0579E18 + D888A8A1FD1CDB743283039137E704F61EBA8643DBD33B076CD87741D0544901 + E263C241BF4DD1A283D642C062BF93524910EDF6D1B8B90D535F7E1E9EC67B83 + C5888D15F3D1D8EB3E2287F475798E460C5365E2E8F6D5DC007C671A9BFD2A94 + 101B8536AB19EBE7BE661FBCD43099CCD09A499F49D02B6F13CBDD9A6723DA1A + 027061D5654822068BBC02D6E59F1334554A9B3418228E44D28109B09216EC4F + 2D4574A8C47E5F30C0649F24D9495069254D18E9B2F28AA087888A8F746CB3DA + 3C1F6A14A2B72E02BF659439101E01ABBF2D173455520948C403502C9D89C4D1 + C3A1A933E28DBE5F803447BABDD66236B9ACBC284E89814307D857D48676F2C9 + C27982B01171FD2422AF00BE775499FDC62511F7C7B8EFC4787DDA0428158FA0 + 939AB179FC41289B0261303DD99FC96C45DAE491CCCAC7250C72826C04674494 + 7110CE2EBDEA1BC075A621AC56C4C7891D095000AA2844E3BD564C0CDE86D9AF + 4EB47F5DD43AB657364A9995A79B67F663737E2E1BD211A1AAD7624CC84BF869 + E10977C0CA6F7E173455D6CA5B901017CD2440179D047D2DBFD728C796331910 + 8955900C8FB53749D89BB6BAEDCF5B1A1AA91E89BD46E1C7F9C711161CEA1B20 + 2481A9D3273B9A6AFF7F352904754E7CF66631F26E64411DDAE8689E2E0AE16C + DA1542239CAFB1E1719D8A69BE4F4898E79378F9EE9382A64A760214806E888D + A8BE570BF1E0180C4D8C670E1576794A837EDDA3FA6658EAFAE3DAA62B8EE6A9 + 6D1E019939A564E1A654285B9DC7DD9787CE094AC0B50927A44D67409FF030D6 + 21617583784A435EAB44AC7504421FCCC1B19D3E6E644BBE3A46166F79870170 + 2D99B2D90E1888F179623740C734D8E50B4137BF63CACFD8997F1C477396F103 + 084960E6AC193011EEBF2A78435065248C6EDB6AAB6A99E67B0787E1F3DC12FE + 00AE457D67A56A41E96807806E98B0B50B4A4356A380BE261423F58B11400633 + AFF10958B4E30879306B21EF04E82A33BEC700E8E2930685A8AF6A80A47D1873 + B5F1F6599D02EA5BCCBC1AA76B52519C1BC01BC213A4EA610DA7E6BD02DECF2E + 218BB3D2A168755E0576959CE79D40F29CD91E2F93DE2034824FF39C01421248 + 4B4E655D49DC219E102A750B6EDFB8838A8FFEC40B31A338FD34E21190B1F520 + 5994FD01E41AE739907BE402EF0428005DCE9B933BC2D3092E97C9D12A35E068 + FA69C4470E1196404700DF7AEB80C405D01982AA8E69F041F82D8179A9F33C0E + 68DE2042111E010B36179105D98BEC975161E740D2E1C1489F9BCE34DA11C235 + 0D2E084E80BC5F2FF24E8002389BF78E603F2F14E1D704D84535CAE790629FE0 + 34E262E675840470F81F5957011B2B5270B7E9A6A0F77AABC4E811285B7CB967 + 005CAAE35026B4BC02BECF5A8466DD330CF05BE7ACF21BE059ABFF00A26C1EFB + F639F78E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000065F4944415478DAD5D9795013 + 671806F027720978A056C1705945EC7855B1538F715A5B8F51BC405BAD303DAC + F7D1F168C5B18A8CB5331DB1A5B4954BAC474B6B6D1DCFC2305551A7631DADF5 + 184A915BAE105042424242B29B6C7713774D48427617E2E8FB5766B3D9BCBFEF + D9FDBE8F20A1280ACF73493A02241289A80B6DCDBADC2D23211DD01BEBE68F87 + BF8F87CB4698DEBB15F0D5EA695D06FC72E53EEA9BDB78219E49C0E9BFCAA037 + 1879219E49C0A5BB3568D5EA7921DC023090A62E01EE543441A333D82056CE19 + 83007F1FBBC6BA15B025E31295B2F6CD2E032A1B9450690D36880A99121B63A2 + EC106E01680D16404246BEE06B24AF9B8D561D0965AB8617A25B019BD22E50A9 + EB677000B145902474049C2276C54F760F60436A2E75605374971328696841DE + B5322834ED76EFEB755AA46D9EEB5E408B96143DFAD675A7AC11D78B6AA16E27 + B8631AB5FAE90112B3FFE816C8A2692FA3AC5E011365425179BDFB00EB52CE53 + E95BE6755B02D6A5274CA8962B702CEF1632B6CE7F3A80EE4A60EFAA59DCEB9D + 59F9EE03ACD97F86CAFC64A15B12606B477A2EB2B6C5740EF8F8E01551BB4A23 + 3DFD8D8D184CC76D0194543F044918BADCF4AE0F6670AF93B2727170FB22D700 + 317B9ADBE58D888A08E456E2827BB5F43C4EE0F5B1615D467098F473F8FED3B7 + DD0B60D781E317EFC140F5109504093D6EEA9361801239F17908EA15EC7EC03F + 25324C1821E50085554DD0D1AF8D46124D2A3DA68C0E838FA7EBE74B476AF1D1 + B9A5A891FC072F4F4F78A97A2333E6AC192108207453565821B701E4DF2CA3AF + 41A14DABE39D043BF2E4A03AF40FEF633EA6AED79A11690BCEE0C0D11B38BA3B + AE73C0D6CC0251BB4A0630665810DA1E0314AA36B41A4818E895B4ADDD487F99 + 110F955ABC327208BC1C6CEFB5061DB6E52F455D8FFB0808EB65F31E8B18A258 + 8313BB37F20308DDD390048151C343D16E20B07AEE78DC2A95833052D0EADA6D + 9260565367236F0A94D9356F8D68ABF540C186AB08EE1B22710AD89C7E51D4AE + F26E691DC6458620FAF02410940107634F63806F30BD2E686994914BC2404FB7 + B2660DA64F88B019F906AF52F40F0D301F234C8E6F3506D153DD17BFC5E79A11 + 0E011BBFC913B5AB24F47A8C1E118E94E29988183514CA073ABCD6EB3350FA00 + BB730DFA769B919748E51814FE023DA2F4434F3D193847106B84B44FB0C42940 + E88A5A5C293327302A6520A6CE9804794313D4357A244EFD118D8D9EF43EFF49 + 63CC1E3F7ACA306EE4A52F065940269237A2BF2E0817565D770DE0BBA7B14E80 + 0130C520EA8A5598ECBD0BB3C6BD6AFEFBD644375921937123CF36CF168360CA + 1AD211A1A86EC5189F09F869D9197BC0FAAF7F17B5ABFCB7AC0EA3878720EADB + 400EC022982498B9BC5F4F29E48F5AB0296F3124810A040F1D4C3749D24D1376 + D7739686B24683881E23F1C3D253F0F3F6750D1093C0F4D96F989B323E1E4D06 + C13C1309133371A4700F5A7CEBCCCDB3C5202C4DDB425884E51C131E3E5070CD + FBFBF8397E88D77E7956D4AEF276A90C51915273020C806DC81A51515C85C090 + 81088F08E56E15EB7294067B5E53F523181EF4C38D846BE6E699630E016B924F + 535909B190AB2CF7DDE7472F8A4AC0B6090BA44DAD857F6F3FAB5B82B083384A + 435625C7602212BE250B70729F8B856CE51727A9433BDEE2007CABA88A5989A5 + 9898166807E898860DDC05826D7EEF9B3F635FFA299C485E2D0C202681B9F3E6 + A09DB4FF55C11982291DA9B33B56555EC535DFD3DB0F7B52738403842460FE7C + FE7833806D98341945A5515FD9004DA52F5ED2AC8007E5CD9DE312B07CEF71EA + 48E232C109B095AB7B9703B025240D06515D5E8B60E3106EB671F65D9D02AA9B + F5821A676B5AB6D40EE00CE108525E5AC9AB79A780F79272A843897168505966 + 81FD39970427B070C17C87D3A433088B10D23C6F809804162D8CB59A49EC218E + 108A9666DCFDBB10F91FFE89110347F2FA69C421207EE7112A3BE97DC8949667 + 20F57881E00418005B96C5C91EE1E80197D5CBA0AAD1E244DC79840684894BA0 + 234068CD3C1C6C03E80CC154C7348420DC96C092D8250E3768CE2062110E01EF + 6CCFA6329296D3D3A8B86720FA5808E216C7718D7684F04D830F821720EDD7CB + 8213600096E69D23ACDF178B706B02D6C5342AE496B27EC059C4E53537E1E3C1 + E37F645D056CCB8F4151E32D519F755611032291BBE2EAD301F0A98E9B32B1E5 + 14F05DE2723C523FC700B7756E556E033C6FF53F6C2822FBD911759800000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006714944415478DAD5D97D5014 + 651C07F0EF8580820ABEA28060CA40BE9086562A66A8D4F82E9AF9829365BEE0 + 5BA3922F638A4CE14C2396610988F81E6596E36B10E50B3A8EA2E8245389226F + F27A207ADC71DC2DF7BAEDDEB9EBC1ED71BB0BC7E8EF1F606F6FEFF779BEFB3C + FBCC212149122F73499A03241289A80B45A764B5C94878F7E88295D3DF80BBAB + 93DD46E8DEDB14F0EDF2B056037EB9F200954F55BC102F24E0F48D0268B4065E + 8817127029B70CF56A0D2F8443005ABDB15580BB458FD140689B20964E0E86A7 + BBAB55636D0A589F7C89DCBD6242AB01C55239146A6D134451951C6B2242AC10 + 0E01A8B566C0A6E44CC1D7885F3909F5841EF2FA065E883605AC4DBC4026AC0A + 6701624BA7D783D0811371BF5C86AF16853A06B03A219DDCBB764AAB13C897D6 + 21E37A01640D8D56AF6B083512D74D752CA04EAD173DFA9675B7A006D9F7CAA1 + 6CD4B1C71A94CAF603C4A4FED52690D961C3505029839134E25E61A5E3002B77 + 9F2793D64F6BB3042C4BA333A2B45A86A31977901C3DBD7D006D9540DCB2F7D9 + DFB7A6643A0E10B5EB0CB96FC34C8724C0D496A474A46C8C6819F0F9FE2BA276 + 95F40A3161C440EA41667EFBCDBC0AE875DA5637BDED9370F6F7D89474ECDF3C + DB3E40CC9E86DEC34C1CEEC72EA339F9D5D41ADE889141BEAD46B098A47338F8 + C587ED0338F847AE298DF29A3AC149E8A1418E261E5AC891B630037D3AFBB43F + 807E2069A9359CA0FEAE53AA1012E407D70EF6E717A157E3B373F35026C98373 + 870E705674C1BE88B326842080D04DD9B5FF2A4C006612FF995308959A805A67 + BE7E11B596DB4B8219797DEF0A74F7EF6A3AA6AC549B108933CE60EF915B38B2 + 3DB26540F4BECBA2769534E09DA1BE503D4B40A65051FB1A030823D92489E080 + 7E70E6D8DEABB5043666CE43C52B0FE0E9D7B9C96B0CA2BF2C0A27B6AFE10710 + BAA7D1693418FFD620D4A93498F36E206EE549A1230868482736097A4E9454D4 + D81C79A3579555F3960855B9132EAFBE0A1F0F5F894DC0BAA48BA2769559771E + 62FCC8404C39340A3A524B457E1ADD3A7A43AF6D649350D46B60A47ED6C8D518 + 33D4AFC9C84B9D1FA27B3F4FF36018B96F351AD151E981DF16A69B109C80357B + 3244ED2A9904B6DC0C45C09001A82D5261A2C70E1888AED623FE6C2E30232FF1 + AE466FFF9ED4881A61209F0F1C17C412E1DDD547621320F4897A23B7D094C090 + DDBD30367C14AAA58FA12CD32066EC8FA897BB51FB19037B2E4161C342FCD991 + F77EB58F1964D4F3467427FAE0C2B26CFB00BE7B9A46B51AE1A3879A12A00174 + D1888AFB0A8C76D986D0C06054CB35A6E3E5B55276E499E6D9748CE6CFB58434 + 47C84AEB11EC3A023F2D38630D58F5DDEFA27695740263860720E47B2F16C020 + E824E8B59C9E13D2BAA7D890311F869EB5F019D0976A524F35ADB3BA9EAD34E4 + 650D087865308ECD3B0537974EF601421218336210E2FE1E878993C69B9A323C + 1B4D1A217F4460F5EB7B702C6F07088F6A53F34CD10873D34D210CC27C8E11B5 + 8F646CF3EEAE6EDC9378C5376745ED2AAFDCCE47D89B41A6046800D39025A2E8 + 7E09BC7C7BC19F7A1630B78A6571A5C19CF7B8F409B48FBAE1D6A6EBA6E6E963 + 9C80A8F8D364CAA659A85698EFBB1D472EF24E60F4B081D8F14F380B78DE8419 + A252AAE1DEC5CDE296D05941B8D2A82AA9465F5D203AE5CFC0C99D761E644BBF + 3E491ED8328705F0ADECDC02848604E1ED442F2B40F3342CCB1E82693E6EC2CF + D899740A27E2970B03884960EAB4C968D45B7FAB600B4117A127AC8E951496B0 + CD777471C3970969C2014212A02B3A7B9C09C034AC371AACCEE5934665B1140D + C59DF05AC31238912EEC3976018BE38E93876316084E80A974E22316C0A62320 + 0D1A515A580E1F437F76B5B1F5592D024A9F6A0435CE5458AAB715C016820B52 + F8B09857F336018B62D3C8033191902ACCABC0AEB44B82139839633AE732690B + C2208434CF1B202681D9336759AC24D6102E848C7A42E7DEFE17999F5E4350AF + C1BCBE1AE1042CDC7A984C8DFD185572F31C48387E597002348029F3C3C91AC1 + 35C1AB2AABA02853E344E479F4F3F41397407380D07AEF904F13404B08BA9AA7 + 2104E1B004E6CE9ACBB941B305118BE004CCDF9C4A26C72EA69651717360CA51 + 5F447E10C936DA1CC2370D3E085E80C45FB304274003CCCDDB4658BE2E16E1D0 + 042C8B6E54C82D6539C1194456540E5C9D78FC8FACB5808D9911B8577347D47B + 6D55408F40A42FB9DA3E003ED57C5326B66C027E88598C27CA9718E0B0CE2DCA + 618097ADFE07D7B31FFBA3A545060000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006644944415478DAD5D9795013 + 671806F0272287E081540441BC86112B585BECB4D6E259EA580404B45A717A50 + AB78D051B1E25845EAD84E47AC96B60222D6A343B5B616BCC2305514ADE87874 + 74548ACA0D72081208099B3BDB6CE26E1392C0EE9238FAFE1536CBE6FD7DCF7E + DF7E93084892C48B5C82AE008140C0EB428959176C32121EFD5DB06EC11B7073 + 76E8B111AA779B02762D9FD16BC06F45F751D1D0CE0AF15C02F2AE9441A1D4B0 + 423C9780C2DBB5E82014AC10760128D5DA5E016E5534432A539A2012A282E1EE + E66CD6984D01EB320BC9DD2B66F51A50D9D80E31A16485B00B80501A00499905 + 9CAF91BA720E3A646AB47748CD10A5752224CE7FDD046153C09AF4B364DAAA50 + 06C0B7546A35642A5844DCAB7E826FE2A6DA07B03A4D48EE5913D6EB041E34B6 + 21BFB80C22A9DCEC7D858C40FADAB9F605B4116ADEA36F5CB7CA1EE36A491D24 + 7215734C2A913C3B4072F65F3681C4CC9888B27A11B4A41625E5F5F603ACDC7D + 9ACC58176EB3048C4BA1D2A2A64984C3F937919918F16C00B64A60FBB2D9CCEB + CD5905F603C4EF3C41EEFD629E5D12A06B538610591BA2BA07ACDF57C46B5749 + AD10E12181902994FABF0B6F94D9A4E92D9F8432AF53B284D8B731A667009F3D + 8DF0CA7DCC9D328E5946EF5635A353AEC1F8519E3681E83119A7F0F397EFDB07 + 907BF901624202985B68BFF01F40A341CDE376CED7524381EB8A5428D18E9C25 + F9F0EEEF6B7F40DEC512444F0F6400D52D62902A35541A12ED840613C7B04B42 + A626F0F9A945A815FC0BC7BE7DE1281E80BD5127F5084E00AE9B326171A90920 + B7E82E081509B952C53A097AE4D5431FC163E440FD31493DA147A4479EC09E43 + D770686B6CF780C4BDE779ED2A4F5DBA87C86941E87C3A075AA5D4E8CB75000D + 944F9FA66D5205FCFDBCE068617B4F2865D850B0088FFADC87FB88FE26EFD188 + 51A2781CDB9AC00EC0754FA3522810A17B6A8AA452CC9E340E45B72AA1921350 + 6A053D26418FBCD6ABC1AC796344679D03CEAFBE08DF41C30556016B33CEF1DA + 55E65FBE87B09020841D980C15A9D4459E87C12E3EFA39A05610906949268986 + 5609820346988C7CA3E34378F8B91B0643ABB48A70910CC21F4B847A844540C2 + 0FF9BC76957282D0CD8120245C7A1BFE8163D052D189E9AE5F41A0F6301F7195 + D264E4053E4D183A72886E44B5D090FF0F9C258831C267A0AFC02A80EB13F5CC + A53B983FEB5504EEF64448E8643435364352ABC0B6E9474074389B9C4BEDED27 + 06783323EF33DADB00D2AA59233C64DE38BBEC6ACF00B67B1A2A81B0A913B0FE + F2143D802A0AF1A8548CB79CB6E0B5D141E8E8343453D7D2C88C3CDD3C938ED6 + F0B9C690AE08514D0726384FC2AF8B4F9803567D7F86D7AE924A207CDA2B08FE + D18B01D0082A096A191CE2EA8BC6B65624152C86CAA319BE6386E99A54EB9A56 + 995DCF5A1AEDB552F8F7198F5F16E5C2D5A95FCF00B609747688113133589FC0 + 3B7366EA9BD23C1D4D0A41CD89652FEFC29F95A9900D6AD2374F178530346D0A + A1118673B468A91631CDBB39BB5A9EC42BBE3BC96B57699C0005A01B32465494 + 56C16BB82746FAFB31B78A71594A833EAFB9E60994D583712DA958DF3C75CC22 + 203E358FCC4A8A4693D870DF7D7DE81CAF044C9B30403A2504DC06B81ADD122A + 3388A5341AAA9A304C3516FD1E44E2F88E1E1E649F7D7B9CDCBF690103605BC2 + E21244E826F19BE95E6680AE6918574F08BAF9EDB38E6047462E8EA52EE706E0 + 93C0DCF0F720579B7FAB600D41954C2D333B56555EC534EFE2E48A6D6939DC01 + 5C12D083EF84EA0174C36AAD86571AF5958D9056F6C338E95238904ECC393D02 + E2B61F250F262FE69C0003917DC800E8E2920685A829AF83AF6614B3DA58FBAC + 6E0135AD0A4E8DD33523DBC70C600D610952FEB09255F356011FA5E490FB9363 + D12836AC023B730A3927302F32C2E232690D4223B834CF1AC027819879D1462B + 8939C41242A47B42DFBE7117059FFE8D00CFF1ACBE1AB10858B2F920999DF231 + 1ADA0D7320EDE879CE095000BA0C0F277384A509DE50DF00712D8163B1A7E1E7 + 3E825F025D015CEBDD03BE2680EE1054754D830BC26E092C8C5E687183660DC2 + 176111F0C1C66C3233254EB78CF29B0361878723767E2CD3685708DB34D82058 + 01D27FBFC039010A6068DE3AC2F87DBE08BB26605C54A35C6E29E3094E232EC4 + 5F87B3038BDFC87A0BD850108592C73779FDAFB5F27F692C844B2F3E1B009BEA + BA29E35B56013F25C7E189E40506D8AD73A3B21BE045ABFF00E5F10CFBB877CB + DF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000065D4944415478DAD5D9795094 + 751807F0EF8A8280021108728818A3A6E3345292514D66E628228799044846A8 + 789547A9E3814C638E13A6920988686A601E398818C888E7346A1E933A65A8DC + 202C8A2CBBECB237FBB6EFAEEFEB2EBBCBBEEFCB2EA3CF3FC0BBEFBEFB7C7EDF + F77866E111048197B978DD013C1E8FD38156E55EB4C94A780E1A8895B3C3E0EA + E460B511B2779B02B62F9CD46BC0D14BF751DD2C648478210127AF5642A1EC62 + 84782101E7EF34A043AA6084B00B40A9D6F40A70BBFA092432A51162594C283C + 5C9D4C1AB3296065CE7962C7A2C9BD06D4F08510499546888A4601BE8E0E8597 + BBB35173760148957AC09A9C32D6C7C8583C0D1D3235841D1246089B02966795 + 13994BA6D000AEA552AB2153C12CE2DFBAA7D892FCBE7D004B334B88DDCB237A + 9DC0037E3B4AAF544220919BBCAE904991B562867D01ED5235E7D537ACDB958F + 71ED5E23C47215BD4D2216F71D202DEFAC4D20B326BD81CA2601348406F7AA9A + EC0758BCE33491BD32D26609189642A5417D8B00874A6F2167D5CCBE01D82A81 + CD0BA6D2BF6FC82DB31F20755B11B1E7DB68BB2440D5BAEC12E4AE8EE919F0CD + DE4B9CA64A59A704F322DE42A7BC4BF777E1A5BB36697AE31753E8DFD3734BB0 + 77ED2CEB002E334D7ED9DF489A164A2750D72A82527B0709F2F5B4094487C92E + C6FEF59FF60D20BBE896EE27BF55C0FA586A2870439101258428482C85EF207F + FB03F697DE464AC4781AD0229240AED49F4E6C9290A9A5F8AA380E0DBCFF30A0 + 7F7F0C100DC69E98533A042B00DBA12CFFEC5D234041E94DC8897E50AA08C649 + 502BAF1EF2089E416EBA6DE226A90E91155584DD07AFE3E0A6849E01ABF65CE0 + 3455E69FB989A4E913D0F96C946893A8A1EA9283A73D8E4CA3FF8C76A11CAF05 + 78997DBF5429C3EAB2383CEA771F1EC30619BD4621860B52716CD3326600B633 + 8D5C2A45FCF430882432848F0B46C9957B506A13506BE7176B49502BAFF16936 + 69DE10D1D9E8800B4B2FC3DF3D806711B022FB1CA7A9F270E90DCC8B0CC3D47D + 13A12294D81559082F177F6D0A842E09FA7A50F220D422470FF3325A79FE8087 + F00CF4D06D536994161103C5EEF83DB14487300B58F65329A7A9924A607ED978 + 848C1D017E85041FB8A583A770B3F81E6AE5797E2D1812E4A55D510DBA88E70B + 670E6288F073F3E75904B07DA292176D4AD4DB18BBC31BEF4D998816FE13881B + 14D832F928D47277109AE7C7932994181DEC4DAFBC5FB0AF1EA4DD8729C253E6 + 8BF205D7AC0398CE349D1D22CC9DF9AE2E0112401689785421C23B8E1BF1BAFF + 2808C552DDF636B1905E79AA793A95675043487784A0BE03E39CDEC4E1F82253 + C0929D7F709A2AC904E6464C40E82E1F1A4021C82476CE2884DFE040F0DBDBB0 + BE3C1132F716F88F18AA6D52AD6D5A65723C4B69081B2408E93706BFC615C2C5 + D1D93A804B021F4DFB50D754D7B3D52411ADD59D4808DE8AE2FAEDE8F26AD535 + 4F1589D0376D0CA110FA7D3468AD13D0CDBB3AB998BF8817FD788AD354995F7C + 154951E1BA044800D59021A2BAA2163E01DE080A09A44F15C3329706B5DF93FA + A750D6BD82EB6BAEE89A27B79905A4669C2472D7C46A4701FD79F7FDC1738C13 + 888B08C7E2F2501AF0BC093DA4537B0DB80E76313825542610736934D7B660A8 + 6A249C1F44E1C40F561E64F3B79E20F6AD9B4D0398D6F1337F213E321C61BB7D + 4C00DDD3302C6B08AAF9CD937FC30FD9853896B1901D804B023322A743AE36FD + 56C112822C995A66B2ADB6AA966E7EA0A30BBECB2C600F609300593BEB627500 + AA61B5A68B531A4D357C486A9C315A920207C291DEC72A2079F311E2405A3CEB + 04A82A9125D100AAD8A44122EAAB1AE1DF359CBEDB58FAAC1E01F56D0A568D53 + 3529CFCF046009610E52F5B08651F316019FA71710FBD212C017E9EF02DB0ACE + B34E203A6AA6D9DBA425088560D33C630097046645C71ADC494C21E61002ED13 + FACECD7F50F6E59F18E53D86D157236601891B0E1079E9F3D02CD45F0399472E + B04E800450A57F389922CC5DE0CD4DCD103548712CE134023D86714BA03B806D + 7DFC8BBF11A0270459DDD36083B05B027362E7981DD02C41B822CC023E5B9B47 + E4A4276B6FA3DCAE8188430148F824816EB43B84691A4C108C0059C72FB24E80 + 04E89BB78C307C9D2BC2AE091816D9289B53CAF002A71017536FC0C9C1C9FAFF + C87A0B585D16837B8F6F717AAFA50A7975244A522EF70D8049751FCAB89645C0 + CF69C9782A7E890176EBDCA0EC0678D9EA7FD39CFFEC433F5238000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006434944415478DAD5D9094C53 + 771C07F06F45414001192097C71C718BC6CCB865996607225B9CE285A850B3C3 + 394545A6A0689C22D9DC1199531401019DBAB17911F018840C118F38A773D3C4 + 390F1004852248A507BDE95BDFEBDE5B4BFBE87B8F96E82F212DEDEBE3F7F97F + DFF14B1111048167B944DD01229148D08E52F3AB9DB212FE83062225EE35787B + B8396C84ECDDA980EF9646F61A70F8EC6DDC6BEEE084782A01A5BFD540ABEBE2 + 84782A0155D71B21576939215C02D0198CBD025CBBD70AA55A67855816331E01 + BE9E368D3915909257456C5F16D56B409DA4033295CE0AF1F7FDC748897DD506 + E112804A6706ACCBABE0BD8FCCE55321571BD02157DA206ED449901A37D10AE1 + 54C0AA9C4A226B453403105A7A83016A3D58115F2F8E720D2029AB8CD8BD6A5A + AF13B8237982F28B35902A3536EF6BD52AE4AC9EEE5AC0139541F0EA5BD6B59A + 47B874F301141A3DF39A52A1E83B407AE1AF4E81C446BE8C9A26298C8411376B + 9B5C0758BEFD14919B12E3B4042C4BAB37A2A1458A83E55791973AA36F00CE4A + 60CB927799E71BF32B5C0748FCF638B167ED2C972440D786DC32E4A7CDEE19B0 + A6E0ACA0A952DDA9C4A77193A84B1F593F56FCE594A6377D14CD3CCFC82F43C1 + FA58C70021334D76F125249B6E3474028FDAE5501B0984F80D760A84C2E49EC4 + BECFE6F50D60DBE10BD4A34CA1E6BD2F03B4B8A2CD840E1D285A588EE041617D + 0F689129A947916936E29384DAA042F2C9056814FD8301FDFB63806C30F6CC3E + 41217801F80E653B8B7F475AFC24B429CD80829357A9479546CD39097AE50D41 + 0FE13FC2877A4DD1A4A21039338F63F781CB38B059DC332075CF19415365F6D1 + F358238E44ABC20C208732B2F45D1A26058D86406880FD24543A35D22A16E061 + BFDBF01B3EC8EA3D1A31529A88239B577203F09D69342A1556CC7B13AD320DC6 + 4784E058E59FD010FDA0D3130E93A057DE38B4D9A6794B44E703379C493A8730 + DF70112B6075EE694153655EF17924CF7F0B930B2750BFEF8A29418057982901 + 82FA31DD4FA1314D9464E94CF34D70C010AB95970CB80BFF617EE6D48C3A56C4 + 40852F8E2D2CA31076012B77960B9A2A3BE532242744616EF118448C1D05C92D + 25DEF6C98048EBC3FA197AE545A12D081A11605A5123BA88FF17CE1EC41211EA + 13266205F0BDA3161C3B4B01C66E0FC41BD1AFA345D20A45A3165F451D869BC1 + CF6A5B2379550AF266563EF4F96033C868E08CF05707A372C925C700AE338D5C + 2AC52A7114E24AC75100B248C4C35B324C74DF8417824633E741BBA2835979BA + 792615A3F9EF5A42BA23A40D728CF378053F251CB705ACD8F18BA0A932E75015 + 9212A660C2AEA10C80469049EC985E8240AF70C84D87DADACA78A87D5B10362A + C4D4A4C1D4B4DE667F6C6974342A11D16F0C7E5850022F774FC7003E092489A3 + 115F3A1653A64EA69AEAFA6F354904794ECC1DFE05AA5AB3D115D046354F1789 + 30376D0DA111E66D8C68BB2F659AF7F6F0B27F122FDB7642D05469990009A01B + B244DCBB558FA1E1811811318C39542CCB5E1AF476AD0D8FA1BB3F0497D75DA4 + 9A275FB30B48CC2C25F2D7CD318D02E6E3EECB03A7052560DD8419D2A950C17B + B097C521A1B781D84BA3B9BE0521FAD1F0BC3313C55B1DDCC83EF9A698D8BB21 + 8E0170ADBDC5D53609D843742F4708BAF92D513F636B6E098E642EE5071092C0 + F498F7A031D87EABC086204B6DB0BD43D7D7D633CD0F74F7C2E75945FC017C12 + 206B5F9B9802D00D1B8C5D82D268AA934059E78997948BE146B833DB38042CDA + 7288D89F9EC03B01BACAD4EF3300BAF8A441221A6A1F20AC6B2473B561FB5B3D + 021ADAB5BC1AA72BB230D406C086B007A9BD5BC7A97956C0071945C4DE743124 + 32F355E0DBA22ADE09CC9A39C3EE65920D4223F834CF19202481D859732CAE24 + B6107B08E993765CFFE3062A3EBE801703C770FA6AC42E60E1C6FD4461C68768 + EE309F035987CEF04E8004D065BE39D922EC9DE0CD4DCD9035AA70447C0AC3FC + 860B4BA03B806FBDF37D9815A0270459DDD3E083705902F3E7CCB73BA0B14184 + 22EC02E2D7171279198B4C975161E7C0B483E110CF15338D7687704D830B8213 + 20E76835EF044880B9797684E5FB42112E4DC0B2C846F91C529627388DA84EBC + 020F370FC7FF23EB2D20AD62366E3EBA2AE8B36C15F1DC68942D3ED737002ED5 + 7D28135AAC80ECF44578AC7886012EEBDCA25C0678D6EA5FB6B5F2ECF622EC78 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006504944415478DAD5D9695013 + 671807F07F3C4022225210E4506BA9EDE8743AB5FD503BFDE041AD2282522B15 + A6072A8747AB52CF728D439D2A52A42A20620B74B06A553C280C55411DC75A8F + 199DB11615040139A418C84142CE6D3671D71C1BB2BB248C3E9F42B2D97D7EEF + 3FEFBBEF2C028220F03297C012201008789D28A9E0824346C2DDCD059BA3DEC1 + 4857A1DD46C8DE1D0AF8317EC68001472EDE436D8B8815E285049CFCAB0E4A95 + 9615E2850454DF6E8644AE6485700A40A5D10D0870EB6127640A9519E29B8869 + F01EED66D5984301EBF3AB89ECC459030634B4F7402C579921FE79D485F591EF + 59219C0290AB8C804DF9559CCF91B9722E240A0D7A24322BC49D8676242D9E6E + 867028606DEE39226755080DE05B6A8D060A351811371E74203B61A67300AB73 + 2A887D6B43079CC0FDF66E545EA98348D667F5B9522147EEBAF9CE0574CB35BC + 47DFB46ED53DC1D5BB2D90F6A9E9F76452E9E001520BCF3A041239E36DD4B58A + A02374B85BDFEA3CC0CAEC72226F7D98C312302DA55A87A60E114A2A6F223F69 + C1E0001C954046DC1CFA75724195F30009BB4E11FB3744382501AAB6E655A060 + E3C2FE01DF1EB8C86B57A9E895216DD91CC3F247D6BEB2BF1DD274CA5721F4EB + F4820A1CD81C691FC0674F9351548DD4D8D974024F651AA8B57D1823143A0462 + C0E49DC1CFDF7D3A3880AC2397D1A71118D66EAEA58112D7959950A107A53195 + F0730F183C40875865F85BA634DED0D45AFD45340A787AB8B33A8F4223C7D767 + A2D02CF817C3870DC370F128EC5F78DA80E004E0BA29CB2C398794E51FD380BD + 27AED09FB14D821A79CDD8C7F09AE061784FDA2A372072C34F615FF13514A745 + F70F48DA5FC36B57B9BDE82CB6C5CDA5014A0D61187D2A0503442587973B7312 + 7295021BABA2F078C83D788E373F86424C1425E068DA1A7600AE7B9A5E891829 + 2B42D12551C0CF7B0C4AFFBC05AD46BF093319085B495023AFF36DB36ADE14D1 + DB321435AB2F216074A0C026605DDE795EBBCAED072B911E1F8A9985D30C7FEF + 092B83B730C02205E5B324B47412D4C8B70F7F00AF204FE3B13A954DC408E968 + 1C8BA9302018016B7EAAE4B5AB94F674232D3E0C212593103C7512DA6B65F840 + 980C17AD97CDEF50232FF0EFC0D809DEFA11D5414B3C1F38268829C2DF234060 + 13C0F58E9A555C8564FD4F686AB60F3E0C791F1DED9D90362BB163CE31B8C1C7 + EC589D4EA75F9586D123EFFFAA9F11A4D3B0467829FC702EEEAA7D00DB3D8D44 + 24C2D6C4308496BC66009045221ED78A31DD2505E33C82A05019AF25578AE991 + A79AA753D119AF6B0AB144889A2478CBF55D1C5A7ACA1AB06AF71FBC76953B0A + CBB1256E01A6EDF1A50114824C62F7FC32F8080321D14FF62D353190BAB72260 + D2387D931A7DD36AABF3D94AA3A75986E02153F06B5419842E6EF6016C13E8EE + 7C82D4C408CC3BF43A66CF9D69684AFB6C3449043927E68D4DC5E5EE5C087C45 + 86E6A92211C6A6CD2114C2788C0EFF3D12D1CD938F5A18277162D6695EBBCAED + 07CA911C6F4C8004500D99221ED636C237D007138283E89F8A6931A5411DD7D9 + D405D5A331B8B6E90AFD9C88119090799228D8B488BE217D5F7C9E5702E64D18 + 21BD5239468E7ABEB953EBDFB78430A5D1D6D88171EAC970BB1F8EE33BEDDCC8 + 56FC709C38B875310D605B594515560930212CCB1E826A3E63D66FD8995786A3 + 99F1DC005C12D8101F8EC8C393313F6C9EFEAE6BFD54C116822C857EC367598D + F58D74F3235C84D89653CA1DC02501B24EF4AD3000A886353A2DAF345A1BDA21 + 6B70C39BB2E5184AB8D0C7D805C4661C268A5297724E80AA0AC5E734802A2E69 + 9088A6FA16046827D2AB8DAD6BF50B687AAAE4D43855330AFDAD00B6104C90FA + 070DAC9AB709F822BD9438981A8D76B17115D8555ACD398188F0058CCBA42D08 + 85E0D23C6B009F0422231699AC24D6102684A8FB296EDFB883AA6597F186CF14 + 568F46180131C9454461FA9768EB31CE819CC3359C13200154196F4ED608A609 + DED6DA0671B31C47A3CB11E4399E5F029600AEF5D12F016680FE106459A6C105 + E1B404962C5AC2B841B305E18B60047CB6B990C84F8FD52FA3FCE640684920A2 + 3F89A61BB584B04D830D821520F7F70B9C132001C6E66D234C3FE78B706A02A6 + 4536CAE527653AC129C48584EB701DEA6AFF7F6403056CAC5A88BB4F6EF2FAAE + AD0A7E65322A965F1A1C009BB2DC94F12D9B80BDA9B1E892BEC400A7756E524E + 03BC6CF53F3C88ECECEEFB56CD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006284944415478DAD5D9794C14 + 671806F067457601512916954BAD21B6D1344D3469AB691AB5B6F5563C40213D + AC553C684128184124C6A60D0888282062EB115A6BC5934248C52BADB51E8926 + ADF50041904BD4853DD875CF29B3EB0CC3CE0C3B33EC127DFFD9657776F6FD7D + CF7EDF7C19640441E0652E9923402693493A5142D179978C84B77C2052A22661 + 90C2C7692364EF2E0564AF9EDA67C02F17EEE0DF074F04215E48C089BFAA6130 + 5A04215E48C0D99B0D50EB0C82106E0118CDD63E016EDC6F83566FEC81880D7F + 1B817E0A56632E056C283C4BE4AC99DE67406D4B07543A630FC4CDDAC7885FFC + 0E0BE11680CE68072417568A3E47E6DA9950EBCDE8506B59886BF75A911439A5 + 07C2A580B8FC3344EEBA1934406A99CC66E84DE045E4C44C730F607D6E39B13B + 6E769F13B8DBD28E8A4BD5506A9FB1DE37E875C88F9FE35E40BBCE2C79F49975 + A3FA112EDF7A08CD3313FD9A56A3E93F405AF1EF2E812C9AFA16AA9B94B01256 + DCAA69721F606D4E1951B061AECB126096C164457DAB12072BAEA330615EFF00 + 5C95C0B6551FD1CF538B2ADD0788D97E92D8F3CD02B72440D5A6827214252DEC + 1D90B8F782A45D65A75A858C75B3F0586B5F85720F9F7349D39B3F9F413F4F2F + 2AC7DE8D8B9C03A4EC6912F32B91BD7E269D805A6F81C942C05731C025101BA6 + E0347E4859EA5E409BC60EC83854657B3448D85A9861C05543268CE840497405 + 46FA06F71FA055657CDE78F779C524A137EBF0D5E94834C8FE83E7C081F0540D + C69E85A76C085100B19BB294DDA790151F4E03320FFF697B94592890F3F35123 + 6F1EDE08FFD1436CAF699A743644FEFC93D87DE00A0E6C89EA1D90B0E79CA45D + E5D7B965205721C704C8D16726E123E74E4267D423A932128D03EEC06F946F8F + F728C418650C8E6C89150610BBA72157A1ACB87034B477C2DFD71779C72E83B0 + 760F426F4950236F1DD1CC6A9E89E87CE88173EB2F227868888C17105F502569 + 5799905786BCF87998563CD1F677D6AC52040D0E65254015950435F22D9EF7E0 + 1FEA673FCE6AE445786986E26874B90DC10988DD59216957A9562A91991081C9 + 8581089B30162DB7B598E2930AB9C59FF733D4C8CB825A317CF4AB5D236A8585 + E81E382E081311342458C60B107B454DD9598AECC4084CC809C07B33DE456B4B + 1B340D06647E7C0CC315C3A0B7F6FC1E2FB9073DF241AF8DB483AC66C1087FFD + 489C5975D93940E89EA6BDED11B293A36D099000B24844E36D1526CB37C3CF2B + C4360FC839C01C79AA793A15ABFD7B99104784B25E8D371593F0D3F2936CC0BA + 1DBF49DA5592097C17B70413F346D0000A4126B163CE7104F88440A3EF446AD5 + 32B47B3722786C605793E6AEA64DACF3F1A5D1D1A045D880F1381479BC6B1E79 + 3B074849E08399D36C4D599E8F268920E7C4FB4336E26F751114211DB6E6A922 + 11F6A67B422884FD182B1E3F50D2CD93B75A3827F19AAC5392769509D9479193 + B8D4960009A01A6222EEDFAEC38890008C0E0BA57F2ACCE24A833AAEADFE098C + 0F5EC195E44BF47D224E404CE609A228B9FB8AFAED812AC1096C8D5B8E0F7F0C + A601DD4DD8219D1A1D060DF661FC244C2C08571ACD75AD08348D83F7DDF928CD + 707221FBF2FB5262DFA6253440686DCA3BC64A800BE158CE1054F3DBA6FF8C8C + 82E33892B95A1C404A0273E6CEC23333FBAE021F822CBD59CF7AADAEA68E6EDE + 4BEE83ADB925E201621220EB8267AC0D40356CB65A24A5D154DB026DAD37DED0 + AE840721A78F710A58B1ED30B13F6DB9E804A82AD77F4203A812930689A8AF79 + 8860CB187AB5E1FBAE5E01F54F0DA21AA76A6A71100BC087E082D4DCAB15D43C + 2FE0D3F412625F5A145A54F655607BC959D1092C983F8F7399E483500831CD0B + 06484960D18270C64AC286702194ED4F71F3DA3FA8FCE20FBC1E305ED0AD114E + 4074EA7EA238FD333477D8E780D8BB0B640224802AFBC5898DE09AE0CD4DCD50 + 35E87024AA0CA17EA3A425E008105BE432CA04F48620CB310D3108B72510111E + C1B941E38348457002966D2C260AD357742DA3D2E6C0EC8321885A1C4537EA08 + 119A8610842040FEAFE745274002ECCDF32398EF4B45B8350166918D8AF94931 + 273885381F73150A0F01FF23EB2B20A972216E3DBA2EE9B37C15366C1CCA575E + EC1F809072DC94492D5EC0AEB41578A27989016EEB9C516E03BC6CF53F4288DE + EC800CAD480000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005B14944415478DAD5D97D4C13 + 771807F06FE5A5826FE84494177586B845B32CD1C46CCBFEF06D8B88A2B84D66 + CD5E985344597C99E87C41629C33A2229B02226EE8C6746C04DF06214345B338 + 239A68E29C28C8AB948A580AAD2D6DAFBD71EDEE76F4EEE8DDB525F2FCD5DE1D + EDF3F97D7B774F0E05499218C8A5700528140A591FB431AFD22B2B1114E88F6D + AAE918A20C76DB08D5BB57010757CDF418F0CB956AFCDDD02E0AF14202CEFC55 + 03B3C5260AF142022EDD694297D12C0AE1138085B07B04B8FDA80D0693A51722 + 257E06C68528398D7915B021F71299B97AB6C780BA561D3A8D965E889B0F3548 + 4D788B83F009C068710236E7964BFE8C8CE479E83211D075194421BC0A58975D + 4166AD99CB00E496952060B282175155ADC6A1E439BE01ACCD2A258FAC9BEF71 + 020F5A3B5076AD065A433767BFD96444F6FA58DF023A8C84ECD567D7ED9A27B8 + 7EAF19FA6E2BB3CDA0D7F71F202DFF0FAF4096CC7C1D352D5AD8493BEED5B6F8 + 0E909C7981CCD9B0C06B09B0CB6CB5A351A3C5C9B25BC8DDB8B07F00DE4A60F7 + CA7799D7DBF3CA7D0748DA7F963CBA69914F12A06B6B4E29F25217F70DF8F2D8 + 155953A541D781BCCDF1D0745A1CEFBF3E71D12B4DEFF8742EF33A3DAF14C7B6 + 2C710F9033D37CBEB718C7B7BECF007C513B72CEE3FB6D1FF40FC09304089851 + 65CE80053A142E2FC3D8A111FD0F905B26C2882FCE27A049F10F02FCFD11D039 + 0C47179F73202401A40E65497B8B5090B6CCA304E89527C63CC6A809C31DDBF4 + 2D4607223BEE2C8E9CB881133B557D03361EBD2C6BAAA4018DCFCCB256DE6831 + 21B53C018F07552364FCD05EFB68C4446D128A76A68803489D69BAB45A1C4F53 + A1F9A91EA49F1259A72F4B5E797B989AD33C1BF1BCD90F97D75E45C488488520 + 607DCE455953E5EA3DA71C8059F9D31CEF0FC414237C5894E8956F0D78885151 + 218E6D563BFF79442106EB47E0B7E5A50E042F20E5DB3259536547DB13E4A77F + 82A999A1889E3A098FEF77E2CDC01D08568C76BBF28A700DC64C18DDB3A276D8 + C8FF178E0FC246840F8F500802A4DE5153F6FCC400DE9EFB0634AD6DD0379971 + 28B604A1C1919CE3ADB66E66E5C35F1EEB04D909D18851A6B1A85879DD3D40EC + 4CC34E8002504521F89260AF3CDD3CB3CFEEFC5E36C415A16DECC26BCAE9F879 + D9592E60CDA1DF654D95C9BB0A909B9E8869DF8531001AA16B30E160CC19840E + 8984C566C4F60A159E299B1031695C4F93444FD356CEE709A5A16B32207AD014 + FC985082E0C020F700B109B4AB5B18C09C79B31C4DD9FE5B4D3A8919019B70D7 + 5A0065A4CED13C5D14C2D9746F088D701E63C7D3062DD33CF5A885F7245E7DE0 + 9CACA9929D0005A01B62231EDDAF47586428264447313F1576F1A5411FD7D6D8 + 0E4BC348DCD87C8D794EC40B48CA3843CA992A5D13E8DD8413F25C6FC49061C1 + AC9F849503E14B435DAFC138EB64043D8843F13E3737B29E99869433D3ACFFE6 + A420C0350D76B943D0CDEF9E7D0AFB724A5094B14A1A404A0287D31231E34818 + 6217C4A09BE03E5510425065224C9C6DF5B5F54CF3830383B12BAB503A404A02 + 54DD18F9950340374CD86DB2D268A96B85A12E08AF1A56C08F0C648E710B48DC + 7D9AF464AA2C357DC400E89292068568AC6D46846D2273B511FAAE3E0172A7CA + 99F9E11C8010820F52FBB04E54F382808FD30B496A286BED745E05F6175E929C + C0A2B885BC974921088D90D2BC68809C04962C8A675D49B8103E84B6E319EEDC + BC8BF2CFFEC42BA153443D1AE1052CDF5E4052338D5AE73C07A4CCF574021480 + 2EE7CD898BE03BC1D52D6A74361951A4BA80A890F1F212700548AD777E88E805 + E80B41956B1A52103E4B6069FC52DE014D082217C10BF8704B3E49DD513532CF + 81F92723A17A4FC534EA0A119B8618842840F6AF959213A000CEE68511ECFD72 + 113E4D805D54A3527E52EC139C4654265541E927E27F649E0252CB17E3DE935B + B2FE56A8A25F9A8CD21557FB0720A65C8732B92508A0A6CA76FD0006F8AC7356 + F90C30D0EA5F5519AEEC97BD5AA50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005F14944415478DAD5D87D4C13 + 771807F06F45A8D43744F18517658EB8CDBD992CD966B23F9C638B8A8ABA4D27 + 662FCE29A22EBE6CE89C2031CC19719B2C131071F3654C873338751032DFB338 + 5FE6A2C9E62BC87B5B44282D2D2D6DAF77EB5D77E7D1BBD2BBF620FAFC03BD2B + EDF3F97D7FBD7B8A8AA2283CCAA5F206A854AA805E684DE1194556227EC420A4 + 264D803A34C46F2374EF8A00946C3E6AB006F74D56490845015F2F991434E0E7 + B3B7705767C4E3D11192100F1DE0C89F95B03B5C92110F1DE0D4B57AB45BED02 + C4A2A94FA1BF5A23684C7180832083025CBDDB0C8BCD2140685B3B903663BC00 + A1186075C129EA9BA593830654EB8D30591D5D10FFD6B6E099F86168B86FC2F2 + E4E7BA201407581D1EC0DA820AD9AF91933605ED3602C6768B4F049D48C68289 + CA0356E69DA0729725728040CB4910B039218AB878A31184D381BC5549CA0396 + E796513B564E0B3A81DBFA36949FAF84C1D229386FB759999F3D0A68B3124125 + C0D6D5CA7BB870BD01E64E2777CC6236F71E20B3E877452073263D8F4AAD0124 + 45E27A95162449A260CD0CE50169DF1CA7F2574F572C017ED99D24EA9A0CD857 + 7E8579DC2B00A512C85EFC06F7FB86C20A902E170AD367750FF864D759D98359 + 47BB093B3F4DEE9104D85A9F5F06CABD8576AD9BE31F20772C48CD3982C2B5B3 + D16472308FBFD87B5291A6333E48E47ECF2A2C83CB9DC0F79FBFAD3CE0A32D87 + B17BFD5B1C20D8B21156A497CF87DEA247DECC231839200619F9C79873BD0208 + 260102765CB6E78018DE88D0BE7D116A1A889DB38E62C7FEBFE501E4CC35CBB6 + 952A9200BDF21F1F9B877AD50D448E19C41C336BAD0C22DE908A704462EFC694 + EE016B769E963D98A56E29C19ECCF94125C0AE3C39428788D103BA9CA3111D0D + 219840AC46C9C615D20072C602FA2A4403EA5AED201C9DE81BD64F56F356870D + E915F3D0D8E796A0796FC4E9E5E710333856E513B02AFFA4ECC16CE9E603D89D + 9902BDC98994432FC164B6E3C5B0F5D0A886495E7955741322E32298634E527C + 2BD2887EE6C1F8654119831005ACF8B65CF660D66E3070804945D148787A2CCC + F5766C4F2A45F4C038BF2BAF0FBD83E16386B95794848B7AB07062103E227A50 + 8CCA2740CE4D69C5E61F5194F53E7446075EFF2106AF24BE8C267D331A6F9A30 + 312C433409FECA473F36D2738C242423226D237162F105FF002963415BF33D01 + 802E1AC12611A5897DD094AB935B79B6790E467ADE970FF14618EADAF1ACFA05 + FC34FF572160D9F6DF640F666209B0E59D04BBF2EA582362C68E723749B89B76 + 0A5ED3571AC67A0B12FA8CC7FE79A5D08485FB074849A045A74541D642F765D4 + 8969FB62F1DA945799A65CFFAF268D30D6DA909D588C1D17D7A1555DCF34CF16 + 8DF034DD15C2223CCF2171BFD6C0354F7F3716FD102FFDEA282577304BDBB447 + 00601BE223EEDEACC188D8288C4988E3B60ABFC4D2609FD75CD70247ED105C5A + 7B9EFB622F0A700F6694DCC14C2C81AE4D78201D662BFA0FD4F0B6845300114B + 4357D3C434FFA465110E6FF5732373CF3594DCB160D597FBBA0578A7C12F7F08 + BAF951CE7108BF3D132154184A7296C803049240D2F4A9E824845FCC7D21E8B2 + 1136C1B19AAA1AA6F9ECC907B035BF9439261B203581EF3217A2C5FC00C0364C + 90AE80D2D056EB31D43E9A69BE5F98069B728BA50116661FA4E40E6674026C5D + 1AF21907604B4E1A34A2AEAA0196EA7066CFD3DB862D7EF37E01F4601648D1A3 + 8437C017420C5275A71A31AE78EE52D9DD7B8902DECB2AA6D8B986AE6DC5A764 + 01CA6CEF2279E60CD1CBA4BF34E4342F19104802739267F3AE24428818C2D0D6 + 8A6B7FFD838A0FFFC01351E325FD6B4414B060C31E8A1D0BE8CA3D785A760234 + 802DCFCD498810FB80EBB43A98EAAD2849398EB888D18125E00D905BF42CC407 + 7487A0CB3B0D39881E4B60EEECB9A2039A2F48A00851C03BEB8A28F6A61448D1 + F781943753B846BD2152D390829004C83B7446760234C0D3BC6F04FF7CA0881E + 4D805F74A372B614FF03CE22CEA45E863A44EDFF46162C20BD6216AEDFBB12D0 + DFFAAA84A1E350B6E85CEF00A4143DD7788F0581944F003B983DB2801EEB9C57 + 3D0678D4EA3F2AB1F5ECC7BD62B70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000061C4944415478DAD5D97D4C13 + 771807F06F41A8D6F986EFBCA833A89B669B99C93693FDE19C5B4054C46D3A71 + CE28534434A8F3654E119D730BB829730A026E20D329CEE0A6AB61BE9BC5199D + 8926C6F9C29B806D11A1505A5AFA426FFCAEBB7A7057EEAEBD2EFAFC43EEAEED + 3D9FE7697FBFA7454151149EE550740628140AAF5E6875CE05592A3162706F24 + C68C87322850301192BBAC806F974CF21970E4E25D3C369845216401C859F984 + E8F1F8E37A39ACB6365108D90072567E54787F58AC365188A70A70FCAF523AE9 + 726D13268C19DA019110FD227A2A559CC49E2AC0B99BD568365B79119A861624 + 4D1FCB41C80AB0399C3E016E94D7C164B17944D43C362039F6E50E085900ABB2 + CF513B974EF61950A16B82C16CEB12418E37CD9BE81F80D9E602ACCB2E919C7C + 4652149A2D0E34359B38886B77B5500404D08FB35ACCD8BB32465E40CADE3354 + E6B2296E80B761773860B1C3232238380826A3517E4072A69ADA9332D5E70EDC + D335E2D4E552E84DAD9CEBA4F2E322C370BB4CE33F40A3D9E1530798B851FA08 + 576ED7C0D86A779F23959F1FF52A0E9CBA8EECD5D3FD0B48CD3B2D0B64D6A457 + 50AAD1C34939E9CA6F5BFC2E36E694C80F48DA7992CA5A354DB60EB0C36A77A2 + AA564F577E7B62143664A991B37666D7804F732F4A9A6D2C2D26B00172758054 + 9C0952F9CD8BDE455A8E1AB9EB670903A4ECAC4BBFF90DFBD6C4FAA5034C90CA + 6F591C8D4D5927F0C3E71FC80B48CC388E9C7571A835D8E8E32F0BCEFA9CB003 + 56D487E44267D22137EE387617DEC4D6C418FF003EF9FA18F66F78DF0DF0352C + 0E33569C98836AC53F08EAD60D41865E18655C811D490BA401C48E06CB761477 + 00F8D20152F96BD60C38063D44C8F0DEF439A3C68C969A401CFAE834F6145C45 + C1E6F8AE01ABF79D9734DB7406F85AF9870177D177D8731DAE1104E9C4087D22 + 8A362F170710BBB3B6341B909F3AD70DD852A0463728BDAABC73B096933C1B41 + 3A713EF912C2FA842B3C0256669D9534DB24A717D180AA062B7D1C7FF475FAEF + EE69C518A00A137CBED966C1DA9239D005DD4748445FFA9CDDC9DF4D82E86EEC + 835FE6A969042F60F977A724CD36CD7A3DF6A7C64367706DFD93F24211396E24 + 1EDE316062F026A81403042BAF08ADC5A0E103DA2BEA441BF5A4707C103622B4 + 7798C22340ECBA9E927E84037873CA1BA8D5D5C1586DC5AE986284F68AE8B2F2 + A1CF0F71819C0ED18810CB109C597C451820B4B336D63D425EDA02689B5C377A + E7C7301A408220F83AC1AE3C93BCFB9AD3755F36A433425FD58C9794137068EE + AF5CC0B25DBF4B9A6D966FFFC9238041309D18A80A87BDAD95AE7C83B21A6123 + 87B627E9684FDACE795D4FDD68AA362132602C0AE7144315DC4318E04D07DE8E + 7A8B4EAAEDBF6A329D782D680D6ED9F3A10C6FA2936782205C4977843008D763 + 9C78FC40EF4E9E7C37E6FD10B7CF369494D926696B3EB2D316B62FA3AE9B4F3D + 104E039884D888F23B95181C3E10C32323DC6F1576F07583795C5D553D6C0FFA + E1EABACBEE2FF6BC80F6D9869232DBD46B351E014F9270415A8C66F4ECA562BD + 25EC1C085F37B495B5186A1F8D1EF766E058BAC046D63EDB505276D6955F1D10 + 0474EE063B8410247952F9C2F967909E558CA28C25D200DE7420665A345A1DDC + EFB69E10242C0E0BE75C6559A5BBF25FA42CC2D6CC83D201DE74800098841DCE + 36AFBAA1A9D0A1BF7518B64DFE99AE3C13828085DB0E53ECD9464C07BE4F5D88 + 7A2317C084946E104455598D3BF9EEC12A4EE5450198D94628D667147638BEDA + EF330EC013820F5276BF02A68A1E78C19480402A98B7F25D023E4E3B48B14783 + 1D07CF898230A1B6CC47EC8CE9BCCBA4503748F2616D23DCEBBCD0BD4401A406 + 998566C5C6B156122E840FA16F6CC0CDBF6FA164D19F183370ACA89F467801F3 + 36E653EC9D35F3F079C91D2000265C9B1317C1F701D76AB430549B51147F1211 + 7D8779D781CE00A941460936A02B0489CEDD9082F05B0766C7CDE61DD03C41BC + 45F0023E5C9F47B1D775A94196D1F8F7E2DD89768688ED86188428C0DEA31724 + 7780005CC97B46B0AF7B8BF06B07D8411295F296627FC019C485C46B50062A85 + FF47E62B606DC94CDC7E74DDABE77A8AC8FEA3A14EB8F4FF00C484A7D1406A78 + 04B0679B6712E0B7CC59E137C0B316FF02307029FBABEC6B650000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006314944415478DAD5997B4C53 + 6718C69F8250A98AF71B1751C3DCE6B269B6C4CC647FA8C3454545DDA613A29B + 3245C5052F03E704C9A2BB80DB649980889BD74DD90C3A3708195EB3A8F19268 + E29C1710046C8B08A5A5A5A5177AD6AFDD399EF69CB6E7B487459FBFDAAFA73D + CFEF7DDE7EDFDB544651149E65C93C01643259401FB4A1E4AC2495183D3C1269 + 8913210F0BF56B84789714E09B95538206387AEE0E1EEB8C82209E4A80E3176B + 60B6740B82081A40CAB6499D39118AF0109CBED1880EA3591084240052B60D81 + B859DF0283C9E206913AF345F4912B38C69E1A0076DB4C7F753474468B1B84B2 + AD13ABE78CE7403C3500ECB6216613278DE140343DD6213DE9153708C9002C36 + 7B5000D7EFB7702A3E75420CACDD94DBFA7D9516D92993A503585F7C9AFA76D5 + B4A001EAD45A4EC5AFDC51411612E2769DD96444E1BA44E9018C161740567195 + 68F3F9AB67A0C36483B6C3C081B87AAF1961BD42996B0D7ABDB4001985D554C1 + 9A04062050596D3698ACE085F8FB412B6287F5879DB2E356AD525A80F4820A6A + 57C6ACA013B8AB6E47E5851A680C5D9CD749DB647F908086660D0E545E43F186 + 39D203B41B6D412540EB7ACD235CBAD5047D979559236DB36DC55BCEC75B4AAA + 7A1620A7F44F4940164C99801AA586691B1A607351054A32E7F906D8B8E79CE0 + F1C0D46940D1FAD99225C096D96A67DA66EB7217406E4905F66C5AE01F40E8E1 + B466E71F6E00522540579C88B40D0D905D74123F7CFAAE7400ABBEFE0DBB3F4E + 923C01ADC980CCCAC5501BD478AE33035FAD48E91980B4FCE328C99A8F669DC5 + F97CFBFE53419BB7C18C8791BBD128FBC77106F4426753288E2EADC688BED1E2 + 00849CAE6B769463EFE67718806065B219F1D1C9454EF383E2229D6B7AA51161 + BA7E289C7B02BBF65FC6FEADC9BE0136EC3E23783CF00408260152F92BE67CD8 + 87AB3060545FB7D76888D19A34946D5D2B0C40C8E1D46534721220550C4104E4 + BD846FC774E51F86DCE198674390763A937E1ED1FD63645E01D6159D123C1EA4 + E795615FCE62B704CE99373A1F4F0ADF0C856C88E0CACBA29A3128768073CD6A + E76F4902D15BDF1FBFA65438217801D67E5729783CE8ECD039011ADACCCCDA94 + D228C4BF3416FA46B3B36F8728A2BDBEDF683121B36A11D461F7302C6E88A3A2 + 7674534F0AC707C286888A8C96790510B23566E41DC5DE9C64A875AEA37FC7E1 + D3A8302DC11B09AFA359DD8287B775981C9ECD9B04BBF2516346B8D6EC36C110 + 834C2350BDE2927F005F87538746E306402740008808044962676239A2FAC5F2 + 569E36CF80D95DF765837842681A3AF0B2FC35FCB4F80417C071BA5242C783B5 + 9F1F4269EEFB50695D3728387286498096671274E5E5315A448F1DE930697398 + B6723EDB5B1ADA4603E243C6E3E0A27228C223FC03F84AA0BDE5911B00D1F41F + A3F1E68CA94E53DDFF55934E627BC221145CCC429BBCD1699E168170997607A1 + 215CD7D8F1F88186314F7E1BF37E891DE30125743CF0960001A00DB121EEDFAE + C7F098A1888B8F655A852DBE34E8EB5A1A5A6179301097B32E303FEC79011CE3 + 0125743C685529519CBBCC71ED939BCE3A10C3003C31E102E9D41BD1A79F82D5 + 12560E085F1AAAFA668CB48E43C4DDB93896E7E720FBF0CB6394D0F160DD1707 + DC000A7F39EB96001F84A7FC41D0E6B74DFB197945E528CB5F290E2090041267 + CF44978DFBF3D01B0491C966E2ACD5D7D63BDBE6E0926AF40E57E0B382C3E201 + C424C006A00DDBECDD01A5A1AC5363B07994B36D42A970E61ABF00CBB61DA13C + C7834012604B4C1A04A2A1B6C9699EAF6DD8F209C01E0FBC6953FE417C9FB30C + AD7ADF00DE20F8406AEFD531E6F9DAC62FC0D2DCC394E778E02B014F5D1EF809 + 92E6CEE1DD26FDA541CC1BEA22F08221D56BDB8806102B324A2C489ACFDA49B8 + 207C109AF636DCB87A1355CBFFC2F343C70B9AC5790152B6ECA33C0F273122DB + 2801A0E53A9CB8107C5F709552055DA31165C9BF2376C0A8C0FE23F304102B32 + 4AB0017C411079A62106A2C71258387F21EF80E60D2450085E80F73695529E5B + A318915D28F9ED64C6A82788D0348440080220E381D8040880CBBC7708F6EB81 + 42F468026C11A3625A8AFD05A721CEA65D813C54EEFF3FB2600132ABE6E1D6A3 + 6B01BDD79BE2078F4345EAF9FF0740887C9DAE62E415C0733C78E6007ACC394B + 3D06F0ACE95F71FC57FB88A57E900000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000062B4944415478DAD5D9794C14 + 771407F0EF72ADA2E2D9821C6A2D31AD6DAD491B5393A651AB8D8A0A6AEB01AD + ADA58AA216A41EB582A4B147C4AAB4954B6C3D4A3DAAC1AB1052EF3FACD5DA68 + 625414E4661751965D76D9650F76CACC76C6D99DDF32B3BB43A3EF1FB2B303BC + CF7B6F7E8F0D0A8AA2F03487C215A05028BCFA416905E765A9C488D01024C58C + 8532D05F34113A775901DB964EF01970E842391EEA8C92104F24E0D89F15305B + 3A25219E48C0D91B7568339A25217C02C839F389D3C622C0CFF1FAFAFD66184C + 162744E2B417D147192C48CC67809C33FFFE9431E813E4872AB5163AA3C509D1 + D8D28EE533470B104F04809DF9ABE52A642C7A0B66AB1DDA36830051FF508715 + B1639C104F04C075E6E3278E8695F22322EEABB4484F182F2FC062B3FB04709D + F99A661D3A6D1434860EC1BD66931139A931F20056E79DA5B62F9BE4338034F3 + 3462ECF361F8E7AE1AFA0E2B77AF41AF971F60B43800EBF2CA3C4E3E6BF954B4 + 996CC471F9EB76036C560BE64C7815158D1AD8293B6E5536CA0748C9394D6527 + 4FE600DE86D56683A9ABC8EE663E39EE75E6C1AE6DD2605FE935E4A5CD9407B0 + 22BB84DA9932DDE70EDC55B7A2F45285DB99DFBCE41DEEF5C68232F901AD469B + 4F1D60E37AC5035CBE552F98793E60436E090AD6C6750FF86CD705491B96AE0E + 1F9051F8872C10D7994FFF6832F75E66410976AD9F230E9072BE27EFF81DB9AB + 67C8D601A7E2F0667ED3C78F3B909E7B123F7DF15ECF00E4EA003D32464B3B52 + 4E2D40B9BA064509A508EB1B213F60D9772790BF2656F60E684D06AC3A391F75 + 8ADB080C0840A0AE1FF2E34E30088F00620B6AD5F6132858371B4D3A0BF3FAAB + BD677C4EDE06331A42F299E4070D0F61AEE91B8D0C2267D671ECDC7B057B37C5 + 770F48CB3F2769C3266F2DC6EE0DEF72005FC3643332956FF02BC780617D9DDE + 631123344938BC69A53480D8F9DE61343A01D80ED0550C80D2E3CA5F3567C11E + AA1224CF47B4D7FBE3DC8A8B88E81FA9700B48CD3D2369C37EBA8DDC81B907C6 + 315F7F98518C889048C9955707DEC3A0A801CC35AB9DDC551AD14BDF1F47124A + 180411B0F2FB52491BB6BD4D873D190B051D28317D80E89746A2E18E0EE383D2 + 11AC18225A794578139E1D3EA4ABA27674528F0B4782F011E121110AB700B1D3 + 256DDB110650DB6276BA3EA1301C6F4E7E034DEA66E8EBCCCCC337243842F0FD + 468B096BCB1C950F7F2ECC01B2DB24230699C2707AC9657180BBF3BD4DA3C1EE + 8C78A8758ED5BFB5E82CD7011A40078D2075825F793679EE3DBBE3F7F221AE08 + 4D6D1B5E51BE865F171E1702BA16142565C3A66C39E40470ED001B6C2776C414 + 23BC5F1457F916651D22460EED4AD2D695B455F0F3DD75435B6740B4DF68EC9F + 5F8CE0A0DEE200771D686D7E80C2CC0FA1D23AAA937DF01CD781B7A74E6492EA + FCAF9A6C27C605AEC14DEB1E2823B54CF26CD00847D2CE1016E1B8C78E87351A + 2E79FAB331F121EEDAB094940DBBF2EB5F9C006C4CF9398201B009F111F7EF54 + 2334F2190C8F8EE246851FA46EB0F735D73E82A56620AEACBBC47DB0270292B2 + 8E515236AC58079C937040DAF546F4E917CC1B09AB0042EA86AABA0943ADA3D0 + FBEE2C1CDD22B2C83EF9F6282565C3A67EB30F79998BBBEE73AED8F47D910280 + 6B37F821866093DF3CE900B6E416E370D652CF00EE3AF048D5E804C8F9ED3CD7 + 819819D3D061137EC27287A0C3643309AE55575673C9F70A0AC697D9459E03BC + E9000D6013B6D93BBDEA4663951A86AADE78C190087F2A88BB4714B078F3418A + B461C53A4002B0E1493768446D653D069B870966DE35BA05B86E58D7589FB55F + 32C01D8204A9BC57C5244F9A7949804599451469C3923AF063C6623CD20B01B1 + B366128F49B16EF09327CDBC5780EE3A408A2B033FC79CD8D9BC934408212134 + AD2DB8F1F74DBCAC4D4570672877DD6340C2C63D14E97C971AF4294403D8702C + 272182F480AB1A55D0D5197138FE14A2060CF3EE7F64AE004F83DEC47C407708 + 52373C41F45807E6CD9E47FC03CD1DC45B0411B0607D21453A5DA406FD10C7CF + 8DE712758548ED8614842400BB613DE9000D7024EF1EC17FDF5B448F76801F74 + A29E8C14FF016711E793AE42E9AF14FF1F99AF80B56571B8F5E09A57DFEB2EA2 + 078F4249E2C5FF072025C41694D4700B206DD8A70AD06399F3A2C7004F5BFC0B + 225A78FB48B45A3F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006404944415478DAD599796C14 + 6518C69F6D69170A947228D02D14498382018D264612FE402C0A945240056915 + 2515CA7DB45244288DC1232DA235D28BA25C454008A7DB3472C7208224100D67 + 4B4B8FDD96966EF7EA6EF7E88E3BB3CE30BB33B333BB3B5578FE6976F6EBECF3 + FB9EEF7DDF9DAC8220083CC952F80228148AA06E94597A4E969D1831381A1949 + 2F4219112E6A84F42E2BC0D6451343063870FE365A0D1649108F25C0D1DFAB60 + B3774982782C01CE5CAF87D1629304D12D0076A72B24806BF75A60B6DABD20D2 + A78E466F6514C758D0007216EC7B93C7A177641873ADA6490F83C5EE05A169EB + C092E4311C889000E42AD82BB7B5B0DB3AA9D7F94BA6C06875426F3473201A5A + 0D589632CE0BE27F0760172C9984B247181C4E27AC0EF042DCD3EAB1316DFCE3 + 03C02E583289DCF91350D36A42C5C52AE8CC9D9CF536AB0585AB93E40390BB60 + C9B39E9638D6DD75C270ADEA012EDD6880A9D3C1AC379B4CF200AC293E437CB3 + 7852C8007C05CBAE0952B327BE802A8D0E2EC2851BD51A79012C760F40767165 + C0E6FD152C79D6D3935EA292206573B850D7ACC3EE8AAB28CE4C0E1D6055E129 + A26069220310ACFC15EC1F371BE174D8B179E11BCCFA0DA595F2002C2B5013DB + 564D0B39813B4DED7E0B966D9ED4FA22354AD7CEF40F90B5FDBCE890226F4E02 + B45B9C2125404BA860496DFC3091B9965BAAC6F675B3C501C45AE4F2EF2ABC00 + 72CA7E9505C4B760D9E62998A213F8E1D377420758FAED2F285A335DB604D822 + 0BF656A31659EA79B0438FF2B40A0CE9A3EA5E00B91220CFBCC5DE818CA37350 + AFB889881E3D1061E88B9299C729888000FCF5F895052751F2718AEC09E8AD66 + AC383197323F203E9ABA66D2582888C219C7B06DD765ECDA94EA1F20B3E4ACE8 + 905AF1CD719466CF42B3C14EBDFE7CD7E990CD3B61436374091AC36E2366781F + AFF7688811BA0C1CDCB45C1A80BF16D969B160C7FAB71900B66C4EC2FDA52CB0 + 670AABD342ED3C9F793644474338CE2EBB0055BF388520C0EAA2D3A2436AE5D6 + 235E00EC04CEDBB2A8BFAF44AE47946290A49DBF62CB8722B6190386C550D71C + 2E3BEF5A12A2A7A91F0EA5A929085E00778B141D52FE12185F3C1409CF8F84A9 + DE469D5B55749CE8CE3745DCC5D3F183DC3BEA4217F168E3F840D810B1D12A85 + 2080BF02CDDC7A083B73E6F126A0B6BE8F0989AFA2B9A9058DB70C181FB99137 + 09F6CEC73E33C473CDE5940C31C03A04A7165E1207E06B911D46030550D766E3 + BC37B12C9602204542D0490C8A52316B2C762BD6567A769E36CF80B93C9FCB06 + F185D0D5193156F932F6CD3BC60570F778426C48ADCA3B801D39A968327846FF + 96F2339C0468F92641EFBC324E0FD5C8A16E934EB76907E73384D2D0D79B9110 + 36067BE61E4154642F7100BE048C3A9D17806F02AF4F798D32D5F5EF6ED249E4 + BDB9175B7ECB469BB29E324F8B84F098F6BE1F0DE159E342EB7D1D639E7C36E6 + 2DE2C55F1F27C486D4F22FF6A22CF70368F59E680BF69FF54A8004A00DB121EE + DDAAC5E0B8A7109F308C392A6CF1A541AF6BA97B08FBFDFEB89C7D9179B0E705 + C8C83F4A880DA9F696075E006C4DFE51C5003C32E101E93059D0BB6F14EB4838 + 38207C69686B9B31D4310ABDEECCC0E13C9141F6D1578709A116492B2B7F9FA4 + 04F8207C2506419BDF3CE927E4151DC1C1FC458101F025F050AB4171EE02F71A + 6E0D4CDB1D87A4E953D1E9E43EA4084190B23AAD9C6BB5D5B58CF99E9151F8AC + A03C70003EADFE72B71740E1CFE7BC12200168C34E57575069686A9A60AEE985 + E7CCE90827229935A2000B36EF278486542009B015481A24445D7503659E5DB0 + 7CF20BC037A468ADCBDF13108010041F48F5DD1A0CB40DE714AC6480F9B9E584 + D090929A40CA8C64DE362996066D9EAF608306104AE0FB9C057868E207989D32 + 8BD549B8207C10BAF6365CFFF36F14259F467CCCB39C82950C90B6612721D422 + D90908E972FF4F28005A9EE1C485E02B70AD468B9ABF5A30DAB8084A577F7900 + 021539C8D800FE20F8D220210CF5161C4C3D896131C3BB27017F22DBE89C5973 + 78BFA00981040BC10BF0EEBA3242A840A588AC81D4B75219A3BE2052D3900221 + 09803DA4A426400278CC0B43B0DF0F16A25B13608B341AC8916217380D712EE3 + 0A94E14AF1DFC84205585B3913371E5C0DEA7F8594307014D4E917FE1B002992 + D2E3A548104068483D3100DDE69CA56E0378D2F40F24E188FB461C1F0F000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000064B4944415478DAD599795013 + 6700C55FB8A2A878D683E05187715A3BDA76DAE9D419FFB0565B2F046DEB01AD + D5F140D12AA248AD20D3B1D3565A5A1CE5125BD162D5EA086A61988AA27F58EB + 31A3ADE309821C09081212121272906D36E9AEBBD9CD6E8EA583EFAFCC7EBB9B + F7FBDEF7BDDD4C640441E07996CC15402693F974A3A4FC4A496662DC8830C4CF + 7D0DF2E0405123A477490132D74CF31BE0D8C5FB68D51A3C82E89500C57F56C1 + 64EEF608A257029CBF558F0E83C923881E01305B6D7E01DC7CD402BDD1CC8258 + 39FB65F49387728C490AB039F73CF1C3DAE97E03D43469A035985910CAB64EAC + 8B9AC881F00940AAB6216C36984D5DAC6319EB66A1C36885A643CF816868D562 + 7DF4641684CF0052B6CDC73327431E14401FB758AD305AC00BF148A5416ADC94 + DE0140B5CDB5FB2A3A093281074DED28BB5C05B5BE8B738DC9684076E2DCDE01 + C06C1B728DAF9A3D09363C4BE266D5135CB9D3005D97853EA6D7E9A40390BA6D + 984930B570DAABA852AA61236CB853ADF41FA027DBE6718B16CBDF7FDDDEFB01 + AC734D161BEA9AD538547603B94951D20018CC4E806DB9E55E9B176A9BBFEE36 + C26A31D3E7EE5AFD1EFD79477EB9FF009BB2CF1159093368005F25D63609316F + 72AED99E538AFCE41861802DFB2F0AF63CD904FB36CDF13B01B1B6A194BA7C06 + FD393DBF14FB53168A0308B5CC863D650E807683D5AF0428B96B1BA6711A26E7 + 0C7EFAE2236901D20AFE900484D9367F57D7E09A290366685014578691FD15D2 + 0124FCF83B7236CF932C01A6C8B6B9D7A8C296D2A5B00E6F4470501082B50390 + 1773DA01E11580BB9A4CDC5BC602902A01B26D0CE64EC4172F42BDEC2E868C0D + 731CD7290D0E88ECF925D8577815853B63850192F22E08F6FCC6ACB3C8DB1A2D + 79021AA31E9F9D598CC680FB1834A63F6B8C8218A78EC7F19D1B3C0370D73216 + 9309F9DB16A059EBECEAAF0A2B58E356981004B957E6C96B1AC3F278CD33213A + 1B027161FD25280646C8DC0224E65408F6FCC6CC5338B0FD431AC0554B8E4E85 + 8530DB232FA6379F908C568363E69B821F62C8E841CE49B2F1DF9B84E8A31B88 + 1371A50E085E007BCB10423DDF6530B0005C1328357E82C857C6A3F19E165342 + 52112A1B2638F364DBC8C29B317CEC30FB8CDAD04D3C9B383E102644789842E6 + 16C0DD1A4FDE532298C094DC51983AE36D3437B540576F726C3E455884E0CC87 + BF38D20964B37A0C31C43812E7565F1107706D99CE0E2D0EA62D154C80042045 + 42F025C19C79CA3C3D66737E2F13C415425DD78149F2377064690917C0DEF384 + 50CF27659E7000D4B59978C7A71584D300140495C4B050857D691A915CBE186D + F27A28C68FB29BB4DA4D5B38F7719786A65E8FC8808938BCF8144243FA8A03B8 + 26D0A156E3405A2C9AB4CE2FFDAEE83C27817767BDE330D5FDDF6C5249BC15BC + 15B72D07218FD038CC5322219CA6D9201484F31C1B5A1FAB69F3E46F63DE4DBC + F6FBD38450CF6FDA7D8C05C0970009401962423CBA578B11112F606CE4687AA9 + 30C59706755E4BDD53981F0FC6D56D97E91FF6BC00F119C58450CFB7B73C4141 + FAA750699CE359472FF026C036E104E9D419D06F402863495838207C69A86A9B + 31CA32017D1FCCC7C9DD220FB255DF9C24845A664BC6111680AB66FEACE000B8 + A6C1941804657ED7F45FB13BE7148E67ACF10EC09704E6CE9B8D2E2BF73DDF1D + 0429A3D5C839565B5D4B9BEF13128A2FB38ABC077055E2D787909BBEC23ECEBF + 07E61C8A70005086ADB66E9FD250D634415FD3172FE957229008A1CF110558B1 + EB2821D4F34F554A1640F66F95BC0930E54D1A24445D750314DDE3E8B6811B09 + 02B8EBF9948CC31E272006C10752FDB0C631F3CCB6F10A60597A1121D4F3AE09 + F00144CF8FE2AD49B13448F3434D63386DE317802F092C8C5EC068122E081F84 + BABD0DB7AEDF464E54050A0BAFB3D6BA5700713B0E12422D4326B0376D059EEA + 840128391F4E5C08BE0DAE52AAD05AD38108D532947C9B220D80AB52337F11BC + E9D5C19FB3008420F8D220216AFE6941454225460F1AE3FD1E104B404C640B2D + 5AB088F705CD1D081F84B6DE80E3B1670521780196A41410426B5C4CE4128AFD + 209636EA0AE2691A9E407804E0DAF39E24400238CDBB87608EFB0AD1A3093045 + 1AF566493137380551197F0DF240B9F87F64FE022497C7E0CE931B3E5DEB4E91 + 4327A074E5A5FF07C013B9BE94F92AB700423DFF5C00F49873867A0CE079D3BF + 15EA91FBC49CBDF90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000062B4944415478DAD599795013 + 5700C6BF801041C5A3D603F0A8C338ADADB69DCE74EA4CFFB016EB2D6A5BAD60 + 0FC703AF8E08156B05998E9D71C0DAE2A81CA2F5C2AAD5F12C8CD3AAE874ACD5 + 3AA36DC71304B902A284848484244BB6794977BBC9BECD2E395AFCFE21B3FBB2 + F97EEF7BEFDB4D50B12C8BA7592A4F00954AE5D385520BCB023213C307462179 + EA2B508785CA1A21DE030AB065C938BF010E5FBC8BC77A9322882E0970E2D772 + 58AC1D8A20BA24C0F99B3568355914410405C0CAD8FD02B8F1A00946B3D50D62 + E1E417D0431D2932165080D5F9E7D96F968EF71BA0B24107BDC9EA0651DFDC86 + 65D3478920820260B2BA00D2F3CF76FA1A39CB26A1D5CC40D76A1441D43ED663 + 45C21837884E0304B22AE74F180375B710D1391BC3C06C0315E28146878CA4B1 + FE0104AA2AAFDDD5C06A69172570AFA105A597CBA135B68BDE67319BB02365EA + FF0FC0552559DB8B268F861DE2246E943FC2955BB530B4DBF8634683A16B0008 + AB92968450B3C7BD8CF27A2DECAC1DB72AEA030310E8AA244924C58F76F47D08 + 75BCC5664775A316FB4AAF233F75BAEF00C1AC4AA924362E7E877FBDBEF06C60 + 00825595A465E64F7C155111A1D4F7AECB2B41E19A99DE01D2765E94ACCA0E47 + C5E52E8FE7017C95B7AAFCED761D189B951F9BF1493CFF3AABB0043BD7CE9607 + 90DAA82BB79662FBAA297E2720579542D34265E49DC6EE2FDEF71FA0C5C4F895 + 0027A9AA6460C1354B0EACD0A138A914837AC6040720B3E8A7808008ABF28F8A + 4AD44515A046751B61DDBA214CDF0B05334F39213A05406B9A946DA5C85B3D2D + 60090845AAF24E9D066925F3C00CA843BF6151CEE3867A931362C78C93D8BEF7 + 2AF66E48F40E905A7041B22A3D01029500A94A93B50DC927E6A02EE42EFA0CED + E9769E8318AE4DC6910D2B9501D0362A63B3A1E0B304AF0990992492BA29D1A4 + 331BF1E9E9B954F34288B6DA505C58710931BD635592002979E758A9AA5C9D7B + 0A85E9B3D0A877D5DC577BCF89C65CB4A439FFBE1EBE0E91AAFEB2E6C986256B + BE21EC3EFA0DE9E33C66B35BA963094477436F1C4D2A714250011C1B9595AACA + 769309BBD6BDC703D034367F30E25E1C01438D85DF7C52323326E7CC13F30386 + F577CCA81D1DECBF13470311424447C5A8240168CB64CDD6936E00B4044ACC1F + E2CDF837D0D8D084BA3B7A8C0DCFA026C155A52ABA11D1CF0D721DB3338A21FA + 9907E1E7C557E401841B5569020480884090244883C444C552679E33CF83D95D + 9F2B04F184D056B762B4FA351C9C77520CB0FCDB1F59A9AA4CDD72147B32E729 + 4A80936712DCCCAB6375881931D861927198B689AE239586AEC688B89051D83F + F73822C323E4018409B4B5EA9D00D5CD16C904C61545E3ED496F394D75FC339B + 5C12D9130F60F32FE96856D738CD7322102ED3EE201C846B8C1D8F1F6A79F3E4 + BB3175132FFDFA142B5595ABB20F635766221AF4AE0FDA5C7C9E9A0001E00C09 + 211EDCA9C2C0D867312C6E08BF5484A2A5C18D6BAA7E02EBC3BEB89A7E99FF62 + 4F0548CE39C14A5565AB56EB06E02D0177132E903683093D7A450A96844D0442 + 4B4353D588C1B69188B83703C7B2656E648B361D63A5366A5ACE4114657D0C8D + CE752EF7D005AF09D0203C2507C199DF38FE7B64E71DC7919C259D031026D0D2 + F4C80D80A609DFC560EAB4C96867C48FCA52104466C62C3A565551C59BEF1E1E + 892F738B3B0FE04B02048033CCD83B7C4AA3BEB201C6CA083C6F5C8850369C1F + 230BB060E32156AA2A9F68EA919FB5C0714E7A0F4CD917CB0370EA4C1A04A2BA + A216311DC3F9B691FA2CAF00B4AA5C9BB3DF0D60C70F655E139083A08154DCAF + 54645E12E0A3AC6256AA2A95269030633AB526E5D220E6C9B21156A5DF00DE12 + 9002989D304BD02462101A84B6A519377FFF0B2FE952706653A6A25F98A90049 + EBF7B0521B556902048093EBE62486A06D704DBD06957F36E1DCF2320CE933D4 + B7043C0184CAD87200DB3217E08941398037085A1A04425F63C291C433B2103E + 2520A7AB7D3FC79C5973A80F685220BE4250013E585BC4CA2D136F220924BE9B + C81BF504519A8612084500B4AAF42652A304C0655E1A4278DE5788A026201431 + DA992525DCE01C4459F235A843D5F2FF23F31760CDD999B8F5E8BA4FEF9552DC + 332351B2F0D27F03A0449E0F65BE4A1240AE2ABB3C40D09C0B143480A74D7F03 + 49CD90FB1F89365A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006354944415478DAD599795013 + 5700C6BF801041C5A39E04D43A8C6DEDD873A6539DFE612D6D5554C4B65AC11E + 1615AF8E0A8AB5824CC7CE74A4D56A954B6C3D8AB51E231E8561EA3D1D6BB5CE + 68C7F104418E0444090909094996DD6693EE7693BCCD6E0E3CBEBF32BB6F37DF + EF7DEF7DBB0105C3307892A570075028147EDD28BDE874506662F8A028A425BC + 046558A8A411D67B500136CC1F1730C0AF676EE2BEDE240BE2B10428FDB31216 + 6BA72C88C712E0E4953AB4992CB220BA04C04AD101015CBED30CA3D9EA02913A + F139F450467A180B2AC0F28293CCC605E30306A86ED4416FB2BA40A85BDAB170 + CA280F882E0130599D009905153EDF2377E104B49929E8DA8C1E10F5F7F5589C + F8820B44500196E61D67362D8AE701FC958DA260B681087147A34356CA18FF00 + 82D5F30C4DC36AE9104DE056632BCACF55426BF41C63319B90B72CC17F8060F5 + 3CBBA6E74E1C0D1A21A2E32E57DEC3F96BF53074D8F8634683E1D103703D7FF1 + A6463409A1A68F7B11956A2D6886C6B52AF5A30710F63C9B444AFC687BCF8778 + BDC662A351DBA4C5AEF24B28489F121840B07B5E2A8975F3DEE13FAF29AAF01F + A02B7B9E6D97D9EFBE8CA88850AFD7AECE2F43D1CA69DE0132B69D21B60DDB1E + 5DD9F37F5D6F0065B37A5C93F5693CFF39A7A80CDB564D970620ADF565F927F0 + 307A3E35E115D16BB3F28FE2C72F3FF00F60C9E6726C5D3A29E004A47A9E1505 + 0B2E5A7261850E2529E518DC53153C8056131550029CC47A3E63F6587C7E7426 + EA14D711D6AD1BC2F4BD5038ED8803C22700F7CD9A9E57E102905DFC7B504084 + 3DFF4F55B563E6A9810DE8372CCA71DEA0363920F2A61EC6D69D17B0736DB277 + 80F4C253C4B659B6A51CF9CB27072D01A1D89EBFD1A04146D92CD08334E833B4 + A7CB790E62B8360DFBD62E9107E0BED6697B0B0901C41260D76F3728659B677B + DE646D475AE90C3484DCF4302F8468AF0FC5A9C567A1EA1DA31005B0B70DF1AD + 32FD8763285C91289940D2EEB1B031566C4B2A457454AC2480CE6C74ACF9C6B0 + DBE817DBC771CC465B89635988EE86DE389052E6802002D8372B436A1B9BC582 + A2CC2434E99D37FF7AE709E29794993F42DCF323D070438F31E1598854F41735 + CFA6D51055E8303F70587FFB8CD2E864FE9F38128810223A4AA51005709FE995 + 9B0F63FBEAF77900318D29188237E25F475363330C7516BE41DC65A64CFCCC47 + 3F3DD8094453B221FA9907E3F8BCF3D200DC5AEF30995C00BC25C002B0622148 + 49703DAF886EE2CDF3E768E7F70A41DC21B4B56D18AD7C157B661DF60458F4FD + 6F0CA96D7C4D801397045B83AAA8187EE65B9475508D18623749D94DDB3CEE23 + 9686AECE88B89051D83DF31022C323A401B804DADBF4D8913D4B56026F4D78D3 + 61AAF3BFD9E492782D6C05AEDA764019A37398E7C442384DBB827010CE3134EE + DFD5F2E6D9DFC6C44DBCE0BB230CA96DD2371C7000D4B658BC2630AE38DA01C0 + 191242DCB95183413103302C2E965F2A4291D2E0C635D73E80F56E5F5CC83CC7 + FFB02702A4E59632A4B669D36AB13D3B198D7AE7177C5B72D26B02AE269C20ED + 06137AF48A142C099B0708290D4D4D1386D84622E2D6541C5C2FF1209BFBCD41 + 86B4D63337EE770190930009C25D52109CF975E37FC1FAFC43D8973BDF37002E + 81D6E67B28CEF9041A9DF3F8A6BDA7441348983C111D94E7DBA618042B3365F6 + 38565355C39BEF1E1E89AF3695F80EC02923778F0B8098DEFE49E500E00C5374 + A75F69A8AB1B61AC8EC0B3C6548432E1FC18498039EBF632A4B6F13501A17C49 + 8385A8ADAA87AA7338DF366293E515C0BD6D56E5EE4641CE1C3B98F73D306957 + 8C0780180409A4EA76B52CF3A2001FE79430A4B679A051BB00E4ED3F2D9A40E2 + D429C49A944AC317F3B201FC49607A6292A0493C414810DAD6165CF9FB2A2A3E + FB03CF0C1825EB0FB4448094353B18D25A774F400A8093F3E1E40941DAE01AB5 + 06FA3A13F6251F436C9FA1FE25E00EC0296BC3CF7E01788320A5E10B84CF096C + C99E8307066980194933882F686220FE4210013E5C55CC90669A7D88C8D185BE + 5F20F9BD64DEA83B88DC34E440C802106B1B31B12DC40238CD8B4308CFFB0BE1 + 530272C52E210E80136BD4972525DCE01CC4E9B48B50862AA5FF471628C0CA8A + 69B876EF925FD78A29EEA991284B3DFB7000E4C8FDA5CC5F8902C8699BC71AA0 + CB9C0BD465004F9AFE05077298FBCDFC58980000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_21_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000063F4944415478DAD599794C14 + 571CC7BF0BC20A2ADEA21C6A0DB1ADADAD6993A626FD835ADA78E355AD901ED6 + 03AF4605C10B248D4D5AA95A6CE512AD4751EB11CF4248BDD358AB35D1A6F104 + 41AE0551965D76D9650F66BA6FB733CECECCEECC5E1EDF7FD8BC7D33FBFDCCF7 + FDDEEFEDA2A0691A2FB2147C008542E1D58D528BCEFBE5490C8D8C40CA845150 + 86044B1A21DEFD0AB07941BCCF00BF5EB883475A832C88E712E0D89F1530993B + 65413C9700676FD4A2CD609205111000B395F209E0FAFD66E88D662788B9E35E + 453765B8C0985F0156149CA5B72C1CE3334055A3065A83D909A2A1A51D8B268D + 10400404C06076006414947B7C8F9C4563D166B442D3A61740D43DD26249E21B + 4E107E055896779ACE5D9CC002782B8BD50AA305A210F7551A64268F0E0CC092 + DC527ADBB2F13E2770B7B11565972AA0D67708DE37190DC85B3EC173007F35A9 + A8BE3D306FDC485008929C7BBDE2212EDFAC83AEC3C28EE9753AEF01FCD5A4AE + DE51C16CEA907DCDB4F83751D1A0064553B859D9F06C019826457695E48491B6 + FD5D3A09229385424D931A7BCAAEA12075D2B303E03629B9496C98FF11FB7A5D + 51B96F00FE6E52248919F1AF23222C58D6F56BF24B51943EC53D40DAF60B8282 + A5290A816A525249647E91C0BECE2E2AC5F655D3A401F8CB25B5F01C02D9A4C8 + FE3E2B6114BA2BDDD74466FE49EC5CFBB1E700CBF3CF20D04DEAAF5BF5B05ACC + F679569870D59403333428492EC3C0EED1BE012CDD5A86A7D1A4C872315A0DF8 + EAE42CD42A6E21A44B1784687BA070CA093B844700DCF59E9A576E076835587D + 4A8091AB26C53C79EB807AF41912611FD73518EC1079938F63DBEE2BD8BD3EC9 + 3D806DBD0B4E957C80ACE2DFFD02C26D52FF5456A13EA210F54177D06B7077A7 + 790CC450750A0EAE5F2A0F80BB5C28DB2E94BF62A2AC0448D3090EEE4497A010 + 591064FEED7A15D24A67838A5409CC7321DAEB82716EC94544F78C51B804B015 + ACE054B932AFCC09C05D02174C69F6BFEF84AE41B8A29F5BF3A44919CCED4839 + 36138D21F7D027B6977DDC42995D4274D5F5C4E1E4523B842880AD6005A74AAB + C582C29589B21278EBC748C4BD360CBA5A13764E3F81A8885897733546BDBD60 + 89F90143FAD99E28854EFAC9831303E1424445442B5C0270CDAEDE760A451953 + D1A475DCF09BDD675C9A2A357E8AF712DE45536333EA6F6B313A3453340952B0 + 64CD13F3512F0D748C5156D9107D8C03717AFE656900B25C3A0C06EC58338305 + 70A7D10583EC0044048224C16C838C98AD926B9E05A31C9FCB05E143A86BDA30 + 52F936F6CD3E2E0458FCC36F34BF60D3B71E7702909300237E12CC56A98CD120 + 7AD8209B49ABCDB445701F5769686AF5880B1A81BDB38E223C344C1AC09B043E + 18FBBEDD54E7FF4F934962D3B8127C77311D2DCA5ABB794604C261DA19848170 + CCA1F0E8819A354FBE1B8B16F1C24D27687EC1A66E3E8C5D59B3652740001843 + 5C88FBB7AB1119D31F43E262D9A5C295581ACCBCE69AC7303FE88D2B1997D82F + F6A2002939C7687EC1B6B769ED00352D26C904E28BA3588027261C20ED3A03BA + F508E72C098B00442C0D55751306598623ECEE641CD928D1C8E67D7B84E62F97 + 8C2D87B0232B098D5AC74DBF2F392B2B013108BEA42018F31BC6ECC7C6FCA338 + 98B3C0330092409B5AED042095C08489E3D061151ED85C411019AD46C1587565 + 356BBE6B6838BECE2DF11C80282D671F8AB33F874AE318CB3D70CE6D02048031 + 6CA53ABD4AA3A1AA11FAAA30BCA29F8B603A949D23093067C3019A5FB0ADCD0F + 9D00DCE9C39FA35900469EA441206A2AEB10DD3994DD6D5C7D965B006EC1AEDD + B2DFAB04A420C4402AEF55C932EF12E0B3EC129A5FB08F550D28C89E634B45BA + 06C6EF8941E2E449A2DBA4541A9E98970D40B42A67AF1340DEA1F36E13989638 + 95B3930841C420D4AD2DB8F1F7BF28FFF20FBCDC7F84ACDF37450192D7EDA2F9 + CBC5D304080023477312428815B8AA41056DAD0107934E21B6D760EF12E00310 + 656EFEC56B0077106269780211B004664E9D297A407305E22D8428C027AB8A69 + BE59D2407ECA9A83C73A790049D39358A37C10B969C8819005400A9624205757 + 7AAFB60338CCBB86E0BEEF2D84EC043C11930057C4A8274B8A5BE00CC4F994AB + 50062BA5FF47E62B407AF914DC7C78CDAB6B5D29AEEF7094CEBDF87400E4887F + 28F3562E01E416EC730B1030E71C050CE045D37F46D89FFB94038D2800000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_22_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006124944415478DAD5D9795013 + 571C07F06F4488A2E25115E550EB30B6B563EBD8994E75FA87B5B4A3A222DA42 + 85E961A9A2624745C10B643A76A623AD16AD5CA2F5286AB5563C1A86A9F774AC + D53AA31DC71304B9021EC4848484244BB6D9A4BB7DC96ED803E2F1FB0B369BCD + EFF3BE6FDFDB808AA6693CCFA5F206A8542A45174A2B3AD32523312234042931 + 63A10E0C106D84E9BD4B011BE74FEC34E0E7B3B7F0D0609684782601A57F56C0 + 6A6B9784782601A7AED6A2C56C9584F00BC046393A05B872F7014C169B072279 + CA2BE8A50EE635D6A5806505A7E84D0B26751A50D5A887C16CF3403434B762E1 + F4D13C845F00669B1B9051502EFB1A390B27A3C54241DF62E221EA1E1A901AFB + 9A07A24B014BF24ED0B98BA23980D2B253142C760822EE6AF5C84C1AEF1F406A + AE86DEBA646AA713B8DDF81865E72BA033B5F15EB75ACCC85B1AE35FC06333A5 + 78F4C9BA52711F17AED7C1D866E78E998C46F980AEDA61698703366B9BECF7CD + 9AF83A2A1A7470D00E5CAF6C5006E8AA1D96594D92A2C738D7F56EB2DE6BB53B + 50D3A4C3EEB2CB28489BFE7400EC0E7BE996565612EBE7BDCFFDBCB6A8FCE901 + C81D566912ABF335284A9FD93160F9B6B3BC39EF8F1D566A12999F45733F6717 + 69B06DE52C710039E26985A7E1AF1D9659D713A2C7A2B75A5A1299F9C7B063CD + 87CA00FEDA61FFBA510FCA6EF3389F821597AC39B0418F92A4320CE91DAE1CB0 + 34FF249EC40E9B1C33CE759E8532E3CB6309A855DD4060F7EE0834F441E1CCA3 + 2E842C003B65D2F2CAF124765872E4A9C1F518303CC475CCD8607621F2661CC1 + D65D17B16B5D62C700E794F178AA6401FEDE6153E32720BD3C01F5DD6EA1DFB0 + DE1EEF611123742938B06EB1340039E22420ABF8F70E1B6446B13BD4A2107287 + FDA7B2CA35F28E502DAF7912D15A1780D3A9E710DE3742E513E09CF31E4F952B + F2CA90BF6C9AE404E2F64C809DB6615B5C29C242223B3C97D9616FD66BB15C33 + 07AAB0260C88ECE73A6E77D804CF67103D8C7DF14B92C68510042CDE5CE6F154 + E90D104B4063F91851AF8E44FD4D03C6076522583550F03C668735DB5A91521A + 8FC6C03B183C7CA073441D68A7FF5F2C842024222C245CE513C036CCEC7E852B + 622527306E4B28DE8E7E0B4D8D0F60ACB562C7ECA38249E82D26D76AC3341FF6 + E210D731CA4149460CB00CC1897917C401ABB61E4751461C9A0CEE0B7DBDEBA4 + 68020C802906219404739FD487147A34CFBDE6707F2E09F146E86A5A3046FD06 + F6CE39C2072CFAFE379A9C32E99B8F60FBEA0F3880588D2F18CA0158049304BB + 96B3EB7CB3BA16E123873A9BA49C4DDB79D7F19586BED684A86EA3B127E13082 + 837ACA074849E0DDC9EFB89A6AFF6F34D924DE0C5C816BF69D5047E85DCDB3C5 + 20DC4D7B425884FB1C071EDED371CD33DF8D056FE205DF1DA5C939AF240106C0 + 364422EEDEAC4668C4200C8F8AE4A60A594269B0E73DA87904DBBDFEB898719E + FB622F0848C929A5C939BF7ACBAFD899354776029E4DB821AD46337AF50926A6 + 849D07114A435BDD84A1F651E8797B060E6D10D9C8BEF8E6104D8E380BA869B6 + 4A4A606271180FE09D06596208B6F9F593F66143FE611CC8992F0F90B1E920B6 + 6725A2D1E01E916F4B4E892610336D0ADA28FE338F2F045316CAC23B565D59CD + 35DF2328185FE596741E20250106C0364C39DA15A5D150D50853554FBC6C4A46 + 001DC49D230A98BB7E3F4DCEF9E5397B519CFD29B47AF7EFB9FB4F4B4A802C39 + 6930889ACA3A84B78FE0561B5F9FD521809DF36B36EDF30088D57B3F86F300BE + 104290CA3B55929AF709F824BB8426A78C37404A02B133A60B2E936269C8695E + 326065CE1E1464CF754E2969F7C0D4DD1198151B47AC247C881042F7B81957FF + BE86F2CFFFC04B83464BFAF3A0202069ED4E9A1CF1CC8D3F7900F20E9E114D80 + 01B0E5DE9CF808A11B5CDBA085A1D68C0389C711D96F98B204C400521320CB17 + 42280D3908BF01E2E3E2051FD07C41942204011FAD2CA6C98699CD432E207176 + 22D7A837446A1A521092013F64CDC523A33C80BB79DF08F275A508C9003975B1 + FF2A0EC016D3A89C2945DEE02CE24CCA25A803D4E2FF23F306C8ADF4F299B87E + FFB2A2F7FAAAA8174641937CEEC900A494F74399D2F2099033E79F4980DF3A27 + CA6F80E7ADFE05696C82FB1D03C94B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_23_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006064944415478DAD5D97D6C13 + 751807F06FF756186C206F838DC1240B2A8A124D8C24FE31611ADEC79B4C36DF + 1061BC196063C3C1C66220314CC181EC1D04748220F26A974560400C226802C6 + F0BAB1B1B76E022BEDDAB56B7BEBD95FEB1DD7DEB5BDBBB508CF3F34D76BF77C + 7EDFDFDD3D0D0A9AA6F12497C21DA05028647D517AE919BFAC445C5424D2A68E + 833234D86723A477BF02B62C4EE831E087B337704F671485782C01477EAB81D9 + D22D0AF158024E5F694487D12C0A11108085B2F50870F9F65D184C1617C4C2C9 + CFA18F329CD7985F01AB8B4FD35B974CE831A0AE550B9DD1E2826869EFC4D2E9 + 63788880008C162720ABB84AF277E42F9D840E13056D87818768BAA7C3F2A417 + 5D107E05AC2C3C49172C4B640172CB4A5130592188B8ADD62227757C6000CB0B + 54F48E95537A9CC0CDD607A83C5F038DA18BF7BED96444E1AAA981053C3052B2 + 579F5B976BFEC185AB4DD07759D96306BDFED10172CB7FF10B6476C24BA869D1 + C046DB70B5B6451AC05FE341F4C008A4268EB5DFCF83647DDE6CB5A1A14D83BD + 957FA2387DBA3480BFC6834B37D4B098BB247F76E3A2B7D8D7EB4BABFE1F0033 + 1E90FB794F92C82E52A13473A6774046D9599703FE1E0FA42691F36122FB3AAF + 5485B2B5B37D0398A6EDAF1188F180243137E1052843A4DD30728A8E63D7BAB7 + C503D24BAA11A8F1C05B1214CCB864CE87055A54A4566268DF989E0102351E90 + 276B72E238F4553EBC264C94119F1C4F46A3E21A42434210AA8B40C9CC630E84 + 240059F5ACB26A047A3CF8FD5A3328ABC565E5A921CD183032D2714CDF627420 + 0A671CC58E3D17B167438A77807DD5D9A932BDB00A8F623CC87C77A2FD6F9890 + 59958CE6A01BE83FA2AFCB390C224E9386031B56880390A649C352C7832038B1 + 36F06F959EC60366E56D516A5EF35C44675330AA979F434CBFE10A8F805545A7 + D8A9D21D20663C386BCE70FCFB6A5836C2158304CFE18E077FD5D6A139B204AD + A1B73020B6BFE37DABCDE211D14BDF0F3FA6AA1C0841C08A6D95EC54B9A6B012 + 45ABA7494AE0E5ED51887F7E14F48D66EC9A730CD191B182E791F1E07AB31A19 + AAF95044B761C8C841F615B5A19B7E78BD0941B888E8C818854700699A3CBAB9 + 003109A84CEFE1F5C4D7D0D67A17CDD775181F96C34B828C07464B27D28ECC73 + AC7CF4D3431DC7291B251A31C0341427175DF00E208FEE923549921320005204 + 219484D66470DC2AB9CD334510A4B8107784A6A1036395AFE0FBF947F980655F + FD4C33ABFEE98E1328CD9A85369DF30B36ED39253A01A6DC9320172CD9F3EDCA + 46C48C1A666F92B2376DE57D8FA734B48D06C4078DC1B7C987111ED6DB3B2073 + DB51ECCC9ECB02C4D4F8E2619838E90D4753DDFFAD269344C1B47DD8549DC136 + CF1441389B76853008E73936DCBBA3619B27BF8D052FE2255F1EA3996DE30E10 + 9B0001300D7111B7AFD7236AF8608C8C8F65B70AB784D260CEBBDB701F963B4F + E162D679F687BD20202DFF08CD6C1BF2E8969B806B134E48A7DE883E11E19C2D + 61E54184D250D7B7619875347ADF9C81439B7D3CC83EFEFC10CD349DBDFD27EC + CE9D2F3B0121847BF94230CD6F9CB00F9B8B0EE340FE62E9808676B3E80412CA + A33175DA647451FCB1C11382948932F18ED5D7D6B3CDF70A0BC7670515D20059 + 5B0F62676E0A5A75CE38BFA8382D2A0102601AA66CDDB2D268A96B85A1AE379E + 352C44301DC69EE313B060E37E9AD936EE002909704B4A1A04D150DB8498EE38 + F66EE3E96F7905906DB36EEB3E94E77D00B5D6790D14ECAF9694802F8410A4F6 + 569DA8E63D02DECFABA09955770788A937BF8941D28CE982B7495F6948695E16 + 406C02B3936671EE247C881042F3A01D57FEF81B551FFD8A67068F11F5635910 + 90BA7E37CD349DB3E53B14E72DB05F0FE2AF81297B873B004C391F4E7C84D005 + AE6E5143D768C481941388ED3F425E02DE008507CF884E805B9E104269484104 + 2C8179B3E6090E689E207211828077D696D34CD3E4C12107903227856DD41D22 + 360D318880029CCD7B4670DF978B1005F83A7701EEEBE50198228D4AD952DC0B + 9C419C49BB0465B0D2F7FF91B903A4D6D5886218421A247FCE5BC50F1C0DD5C2 + 73D201812AF7A14C6E790448DD368F1D20609D732A608027ADFE05505986FBA7 + F12A1E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_24_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005F54944415478DAD5997D5014 + 651CC7BF27C2292A92A928889AC358D95856334D3AFD6146E53BA20509BDA129 + 2236BEEB9820E3D84C239551098868BE0C6596892F1DC3E4FB34669A33DA34BE + 82206F07BE70DE71C71DB7B7DCB6CF5EBBEDDDED79BBCB9EA3DF7FB8796EEFE1 + FBF97D9F97DF818E61183CCAD2F902E8743A55132D2B39A1492586C7442173CA + 18E8C3C3821A21DE3505F872FEF82E03FC78F22AEE58ECB2201E4A80F23FAAE0 + A43A65413C9400C72ED6A3CDEE94051112008A767709E0C28DDBB039282F88B9 + 939E462F7DA49F314D0196161F63362D98D065809A66332C76CA0BA2A9B51D59 + D346F9418404C04E79005615572A9E233F6B22DA1C34CC6D363F88863B166427 + 3DEB05A129C0E2C2234CC1C2440140AD5C340D870B9210378C66E4A48F0D0D40 + 768181D9BC78729713B8D67C0F15A7AB60B275F8BDEF74D851B8644A6801EED9 + 69D5D517EB42D52D9CB9D4006B874B18B359AD0F0E20B7F4374D40668E7F0E55 + 4D26B819372E5537850E206BD361A668E954CD1210CBE972A3AEC5845D15E751 + BC6C9A3C00AD7A1BC6ED06E5EC50FDF90DF3DE105EAF2DA95406A0556F43CEF1 + F4C4D1EC8DDAAD4B73AD2932A064E58CFB032CDF7A5218D0B2B73977D5A82A89 + 9C0F1385D77925066C5D3D33380031CEFED40440DCDBF049A8554ED1216CFFE4 + 6D65005AF7367292A0E1C439673E289851965E8141BDE394032CDB721CA1EA6D + C88D9A9A3806BDF5FE7BC241DBF1F1A154D4EB2E23BC7B77845BFA60CB8C831C + 842A8050F5367F5E6E04EDA2242B4F0F6C44BF6151DC98B5C9CE41144E3F80CD + 3BCF62E7BAB4FB03B0C6B9A66C49D1513C88DEE6DD379FE79EB3530EACAC4C45 + 63B7AB881EDADB6B0E1E62B829137BD72D9207B0E8EB0AA8E96D4815BB432F24 + 10ACB71157DE1D63F4332F86686F08C3F1EC5388EB3B44171080AD3CD755F200 + 4A6FD6E4DDE3E062286C4D2E476C54BC301EA8B7C94E19C755BE39FC3AFAC547 + 7B527353927313881ED6BEF839DDC0414802B0C6B99EC617406E6F6370BC8784 + 6746A0F18A0563237210A9EBEFF5BEB8B7F9BBBA86ABBC2EB6050387F5672BEA + 4627F3FF9295021143C446C5E902022CFCEA57A8E96D5EF82606AF24BE8C96E6 + DBB0D63BB17DD641AF2488486F73A5D188E586D99CF9D8270671E3B49B960DD1 + CF310847E69D910FA02401024044207C9320BD8D9D6A4766790AB76C78F3BC08 + 049118C417C254D786D1FA17F1FDEC03FE00AC71AEAB5CF0C5416C5991A43A01 + 5EBE49981D36EE9C6FD5D7236EC460D624CD9A76F9CD13280D73BD0D09DD4661 + 77EA7E4446F40C0C90995F8E9255C968B178E83FDD79547602AF4D7C9533D5F9 + 5F35F9245E0A5F81D6E85F04F3BC0884C7B437080FE179C68D3B374D8279F2DD + 587213B3956748E53FFA6C1FB6AD794B0090ABB1C5833900DE9018E2C6955AC4 + 0C19806109F1C252114B2A0DFEB9DB757741DD7C0C67579D16BED84B02B09567 + 48E57D019426E06DC203D26EB5A3579F48D19270F98148A561AC6DC160D748F4 + BC361DFB3606B9C858E30C31AE45025210BE0A06C19BDF30E1076C2CDA8FBDF9 + F3E501646CD8831DB9B355253065EA2474D0FE376F20082207EDF01BABADAE15 + CCF78888C4FA8232E50075AD4E45098C2F8DE50078C3B4BB53551A4D35CDB0D5 + F4C453B6B908632284678202B0C61962FCFDBC326CCB4D43B3C5B3163F2F3BA6 + 2801B194A44120EAAA1B10D7395C386D02FD2E45006A1208062105527DBD4696 + F98000AC718618CFC8DB85D2BC0F60347BF640C19EE3B213489A3E4DF2980C96 + 8612F38A01E4EAF5EFE2303329597492F883484198EEB5E2E25FFFA072CEEF78 + 72C028597F9C9204485FBB8321C6E7AD579F0001E0E5B99CFC21A436B8B1C908 + 4BBD1D7BD30E233E7AA8BA04788039B9DB519C97C11EA3CAF6C0E45D43BC00EE + 0721958612084500853F9D909D404A728A64831608442D8424C03BAB4B19623C + 6BFD0ED509A4CD4A138CFA82C84D430E4448013CE6034388DF570B1172005EC4 + A8922525DEE03CC489CC73D087E983FF8F4C0CF06D6E06EE5A9501ACAC9C814B + B7CE2BFA4C30253C3E1286B9A794033C08897B1BA50A08A0A6F24AE4DB556A0E + 1032E722850CE051D3BF79D341FBF34D8C3D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_25_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005EC4944415478DAD5D97D4C13 + 671C07F06F45A8A222F30D05516788DB34CE65FB67265BE20B5B7C0314379CB0 + B939A7F8B6F8C2D03841B268B2C8A66353DE644E5D988ECDF8BA123215358B73 + 3A135D165F4190B7822F544A4B4BDBEBDDFA5C77E741EFDABB6B4BF4F78FE469 + 3D7E9FE7DBE7EE57D5300C8367B934DD011A8D46D585D6179F0DC84E8C898A40 + FAEC57A00D0DF1D908E93DA0801DCBA6F80DF8F9DC2D3C345A64219E4AC0D13F + AB60B33B65219E4AC0996BF568B7D864218202B053B45F80AB771FC06CB57741 + 2C99F912FA69C33D1A0B28605DE11966E7F2697E036A9ADB60B4D8BB209A5A3B + B02261BC072228008BDD0DD85058A1F81AB92B66A0DD4AA1ADDDEC81687868C4 + AAA497BB20020A58937F8AC95B19CF03D49683A2607540147157DF86ACB4C9C1 + 01ACCAD331BBD7CCF23B81DBCD8F517EA10A0673A7C7EB36AB05F96B670717F0 + D842A9DE7D615DADBA8F8BD71B60EA74F06B6693A9E700D925BF0704923C6512 + AA9A0CA0191AD7AB9B820758B1F32453B06E4EC0121096CD41A3AEC58003E557 + 50B83EA16700814A60EBD2B7F99F371757C803046A308B1E3C0069F1135D4FD2 + 5E01C16C2AD0A13873AE7740C69E73EC42A006B3CBB7F4B0DB3A555F23EBA378 + FEE79C621DF66C4CEE3900379891272949C2DFCA2A3881BD9FBFDB7300E160A6 + 24090A365CB6E5C28E3694A6956378FF187580400F662489A43727A0BF56FA4C + 58290B3E3DB100F59A1B08EDDD1BA1C601289A7B9C45C80630348D600D66DE92 + E0769E1AD68841A323D83553938545E4271EC3EEFD97B07F4BAA77C0FAA24A76 + 21988319996992A74E4278D893242C762B322B16A0B1D72D448EEADFE55A1C62 + 8C211D655B56FB06D0AE04D40E6664182345E2F73698FD75A31194C3DE65E7E9 + 28BD47F342444743082A579D47CCC0911A49C0DA82D30CB9B0DAC1EC9C2D83FD + B36C51B9EBA312E17530CB7C7F3ABFF3CDA177302836D2BD09B45D12D1C73410 + BFA6E958842860F5B7E5EC82DAC1ECD5EFA21037612C4CF536EC9D7F1CD111B1 + 928319B7F39AE8160C1B3DC4B5A3349CCC93D4C520424474448C461640C958A0 + B37E8037E25F474BF30334DE3462725816C23543D8D78483D93FD535688C2862 + 773EFAF9E1ECEB144DC9460CB20EC7A9A517C501E40CA81DCC480204408A2084 + 49902283D9CD463D32740BD99DE79AE78A20480921DD1186BA764CD4BE869F16 + 1EF304ACFCE6377641ED60C625C09530891DCB525D9FF90EA41F4D41ABB61E31 + 6347B89AA45C4D3B3CAE2395465BBD1971BDC6E3C705475C77B1BEE200DAE944 + D16749AA13983E632ADB94F3FFDDE492C89B7310DB2A33F8E6B9220877D35D21 + 1CC2FD1E1A0FEF19F8E6C97763D143BCFCEBE3EC83AC78C33CB418DDD16DDB7F + 5A510204C0352444DCBD598BA89143313A2E96FFA8084B2C0DEE7D0FEA1EC17E + EF395CDA7081FF622F0A48CF3DCA385D097CBFE91D1EA0A426178EE0014F9A70 + 433A4C16F41B102EF848383C206269E86B5B30C2310E7D6F27E2F0761F0FB24F + BE3CCC2E08016A131043742F5F08AEF9ADD30E627BC11194E52E530E509AC0EC + 3933D149793EBCA410A4AC94D563ADB6BA966FBE4F5838BEC82B950770520EEC + CB5EA83A0102E01AA668A7AA349A6A9A61AEE98B17CD4B10C284F1EFF10958BC + F510BB400075AD36C5094C2989E6015C29498320EAAA1B10E31CC3DF6DA47E97 + 24C049B90E71762A9A8DEE83F455E9195509F8428841AAEFD4C86A5E12B028A7 + D47D060400A50924252688DE267DA5A1A479AF0072064A723E84BECD7D06F20E + 552A4A2039699EE04EE2091143181EB7E2DADFFFA2E2E33FF0C2D0F1B2FE6D47 + 1490B6791FBB200428A9B77E8861015CB91F4E9E08B103AE6FD2C3586F4159EA + 49C4468E52978018404D02C2924290EA9E86128424C0E9FA265598B3D8751B55 + 7E06661D1889947929A2039A14442D4214F0DEC612764108C8FFE5ACA20452E7 + A7F28D7687C84D430E423640690204E06E5E1A217C5D2D22E800AE48A34A3E52 + C203CE21CEA65F863644EBFBFFC8FC056456CCC5F5FB5714FF3D6F1537781C74 + 4BCE2B03ECCA5E8C4726E500B9D57D3053535E013D51CF34C0DFE62501CF5AFD + 0756270AFB2E8647B20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_26_48' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005B74944415478DAD5D97D4C13 + 771807F06F45A8202AC3294AF16586B8CDC56DD9FC43B7FDE1EBA6A0BCE8D409 + 6ED33945C5C517A6C60912E312236E0EA78080F8B2309D9BF17525642A681667 + 7C4974D99CCAFB6BC1176A4B4B4BDBA337AEDDDDAEBD3B7A776D893E7F35D76B + 793EBF6F7F774F8B8224493CCFA5700728140A596FB421BFDC272B313A622052 + 62DF843230C0632354EF3E057CBB62B2D7809F2EDFC763BD4914E299049CFEA3 + 12166B9728C43309B874A701ED268B28845F0056C2EE15E076F52318CD5617C4 + B259AFA2BF3284D3984F01EBF32E917B564EF51A50D3A283DE64754134B77560 + D59C711C845F0026AB13B029AF54F27B64AD9A897633015DBB9183687CAC476A + FCEB2E089F02D6E65C20B3574F670072CB461030DBC08BA8D6E8909E3CC93F80 + D46C35B97F6D8CD7093C68798A92AB95D01A3B39CF5BCC26E4AC8BF52FE0A989 + 90BDFAECBA5DF910D7EE36C2D069638E190D86DE036414FEE613C8DCC96FA0B2 + 590B3B69C7DDAA66FF0156ED394FE6AE9FEDB304D865B1D951DFAAC5D1925BC8 + DB30A77700BE4A60C7F2F799C75BF34BFD0748D97D863CF065BC5F12A06B4BAE + 1AF91B137A06A4155CF6D97C4D5D35BCADF425D399C799F96A146C9EEB19E0AB + A9F2EFBA2758123301A1CA3E3E5990F4DC7328FA6A7EEF00E8A9F26645ABE424 + 085870C392052B74284E2EC1B05055EF03D853A59424CC84095F9C5B8806C53F + 08ECDB1781FA01389070D6819004F0F5542926097AE589A14D081F35D071CCD0 + 6C722072E2CE60FF91EB38B22DA967C08603657E9B2A29C4E20FC6233C349473 + BEC96AC6C6D28568EA731F61235D9FA711A3B52938B16D8D3880DC99865AC55D + CB630507B21BF735B05A3A39AFA156DE1EA1E134CF46743406A02CF50A5483A2 + 14828075B917BD9A2A630E4D848DB4A220F1340607AB04116BE7BFEBB2F22D81 + 15081F11E63866B35B0511FD0C83F04BB2DA81E005ACD95BE2D554A9367F8CE8 + D7C6405767C68CF09DB0740CE09C43EF057AE51591AD183AEAC5EE15B5A38BFC + 7FE1F8206C44E44095421020F78EFAD6F711786FFA44B4B63C82A1C182B40945 + A8A8EEE24C95A90BDE61563EF2A5614E909D108D08370FC385E5D73C03A4CE34 + 540214802A0AD1744F8F4941E9583C651A3355FE5955C3AC3CDD3C5D14822A36 + C41DA1AD6FC778E5DBF871D1192E60F577BF7A3555D209D045275134EFAC634F + DC6BD2204DBD08CA281D54638677374974376DE3BC8F501ABA0623A2FB8CC30F + 0B4F212428D833404E02D3664E7134D5F5DF6AD2887D71C7B0FD621ADA940D8E + E6E9A210CEA65D2134C2798E1D8FEBB44CF3D47763DE4DBCF29BB35E4D955402 + 14806E888DA8BE578B88A82118153D82F9A8B08B2F0DFABC47F54F60AD7B01D7 + 375D65BED8F30252B24E93F99B12D1AA777EEEBE3E72515602AE4D38211D0613 + FA0F08618EDBBA8FBB43F8D2D0D4B662B86D2C821FC4E1E42E0F37B2CF779E24 + 0F6EF9900148AD4979C33900F734D8E5094137BF63EA31ECCA3D8513592BA401 + E424103B7B163A09EEAF0A4208AACC849973ACB6AA9669BE5F5008B667174B07 + C8498002D00D13F62E596934D7B4C058138C578CCB10400631E778042CDD719C + 3C9CB1C8EB04D825250D0A515FD50855D768E66A23F4B77A04D4B759642530B9 + 3092031042F041AA2A6A44352F08F824B3983C98918416BDF32AB0BBF892E404 + E2E3E6F05E26852034424AF3A2017212981B9FC8BA9270217C08EDD336DCB9F9 + 174A3FFB1D2F0F1927EAA7115E40F2D6C36461E6A7D0E89C7B20FB7899E40428 + 005DCE9B1317C1B7C135CD1AE81B4C3891741E23C246CA4BC01D20B5661C52B9 + 007A4250E59E861484DF125890B88077401382C845F0023EDA5C48E6652EEDBE + 8CCADB033147A390342F8969D41D22360D310851809C9FCB252740019CCD0B23 + D8CFCB45F8350176518D4AF948B137388D284FB9016580D2F3FFC8BC056C2C4D + C0DD87B764BD56A8A2078F857AD995DE018829F7A14C6E0902F6652CC513C373 + 0CF05BE7ACF21BE079AB7F0155DADCECEDE5084D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A44944415478DAD5D77D6C13 + 651C07F06FE9E660C80ABE8CA0A04B70194EE3120DCA326308214A94881A1361 + 26E21458594898422438E6243897A9931AE636B725135D1CBE81386810C78B31 + CC8924883A1DAB651B74DDC0AD5DD7D2AED797B32BB9D297BBDE73D7E71AF6FD + AB77D73CCFEFD35FEFFAAB8A65594CE5A86801B6349EA4B250D65C0D8A9FCAC3 + 4D29D3544907D46C589AF03A6D277B30627311236E38C0814E0326181F31E286 + 031CFBFD22C69D6E62047500E3F527B4CE59E315385C4C04E29515F763665A2A + 2F821AE0F586E3EC87DA6509038C436381E299088479D401EDCA3C5E04758093 + B90678A3FE88E435DEDBB802E32E2FACE38E1884E93F1B4A9E7E3006410D505A + D7C1EA4A96870072E3F57AE0F4A8781117CC569415E62B03D8F4919EADDDFC64 + C21D381F2852DFD90B8BC31D73DDED7222B087B200ABD34B65BDB386CBF8A5FB + 22EC13D7D773D8EDC90394371DA5B2EE734BF36018B4C0EFF7A3DB38A81CA064 + F721B6EEB595D43A101EB7C78F81610BF6EACF20B0477200B43AB06BFDE3A1D7 + 659F1C510EA0FDE020DBB07595221DE0B2BDEE30027BC407C89D2AED762B1AB7 + 3C8B611B133C7EE7D30E2A45EF787979E8F55BCD8727F71007C89969D6557D83 + E6EDCF87004A6447DDF7937B2407C075C0EBF1E0C71E2BFCCC6CAA9874CD30BA + F768558A77C0E1F6E38937F76151F663B8E3CEF9A1F3810933660DB53A72D449 + 554F8350F67F77107D9F3D230C903A9415577D8996F235BCF780D56D4557AF87 + 2A42102077AAE40003A36EDEEB7F5EEA4369ED69E4643F4A05210A903AD38C5B + 2C682E2FC490CD133C7EBFF558CC7B687642102077AAD4567E1101100AAD4E08 + 02E44E95D62B97D154B116E6B16BF780AEEDB8F07B2974421420F5177553E5E7 + 1100B19CEAFD0B6F379AB0F8910268341AC9086200E94C23A5038CD78D130633 + E6DE52807B737363AE9320DADBDBF90172A7CA8D3B5B505F5114788CC6BF07C6 + 9C0EACD37D8B39B396203B6751F05C0ACF53460C410C20EDC088793002F0F157 + 27E27EF2590BB3919AA20E5D938A1004C89D2AC53A10FEC94F16CF452E4210B0 + A1E6002B67AA8CEE0049F18920F4FA43FC80C04CC3CA992A4BDFDDCB0B102B5E + 2E821820A5037BCA8B3062BF0EE08A9F95FE30E6DF7D0FA6A7A9E3AE118DB0D9 + 6C828F58453A101E061E9C1BF3E1F6D905C1E2B990220CE77B3068EA47EE7D0F + F0FED809028A76B5B142532569B8A7CDAD9AFC88E24911FD4603ACF62EEC2ECE + 4789EE1CEFD8210A109A2AC5627339B0A6FA6BCC9CB1187765097FE785105CF1 + 3F5515E2B69B335467FA8CECEACA5331888EA37A7EC04B15ADACD854192F3FFC + D38739194B306FC1C2B87F48F810D1C573E7F910C400A959B6AD0D99990F2173 + DE82E0312942A878218420E0C5B2169674A6E10B37694A410C9B2EC42D9E0FF1 + 77F71F640039E931F763736D1711C234F02FECCED3A2C587235EA8FC19EA141F + 7A1B5EA5DF01299D905A3C97AB6E0FEBF3F991919E160B58BDAD8925992AC93A + 3180ADF5FC9D905B7C7444017C53A594F07562E89211575DBF255C3C118046C2 + 3BE1F33218B575E2D79AB509179F34403862FA8C09E4A4FBB1BFBA24E1E2930A + 08CF4E5D2BF655AF570E103D554E39806295874531C054CBFF8F3954DD2D0C6E + 2D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000056C4944415478DAD5D87D6C13 + 751807F06FD97B71946918414197E0324423890605670C21C4A0BC08C4098344 + 44114667DCE80684973109025AE8281B7B814150B264C189DB2C4CDEC630C8E4 + C504854C07656383AE1B83B5EBFB7BCFBEA4A55BEFD6BBEB7581E79FF6EEDADB + F3B96FF7BBA7E5110481A7B97883013C1E8FD58944079A38B912296305583D67 + 0AE262A24236E2EE9D538064D58CB001D5175AF14863A285782201B5CD7298AD + 0E5A882712D0F8F73D688D165A888800AC76675880EB6DBDD09BAC03109FCF7E + 0DCFC4C70635C629606D7923519435336C405B77BFAB79EB0084B24F8FACB953 + 8210110118AD5EC0FAF2538CCF215E331B5A931D6AAD3E08A178A88170FE1B03 + 109C02724ACF1252E12C3F806DD9ED36186D3C5244BB528D2DCBDE890C205B7A + 92D89FF361D809DC7235D9D07C1B2ABD25E8B8C5644469EE9CC802D4463BEBAB + 1F58D7E50FF067CB3DE8CC8FCFA7D7E9860F5050798613C8A2195320EF52C1E9 + 74A2A5AD2B7280354532A26CED5CCE12082C8BCD89CE1E157E6CF80BE5A279C3 + 03E02A81ED5FBEEF7FBEF9C0A9C80156EFAE232AF23F8A4802BEDA58761207D6 + 2D181A9077F002ABA9D2A0D5402C9C8D5EBDF7EDD2EAF39C34BDE5B359FEE75B + 0F9D4465FEA2D00036338DA8F43714657FE049C07D33365A1C9EFD71D1EC1225 + C594FD8AC39B32220BE8D5793F42DF1D3DEB7974DF804EB73C82D33A9A3388BB + F8821EB49464F13807F468AC9E6D8BDD7B5EA3C584B95BEB3029F53D3CFFC278 + FFEB63A347049D236AD0D019133582F2EFFD52578FBB47175003980E659B4AEA + B167ED423F405CFD87F780C3820706152EDFB6718AA004882ACEB39A2ABF96CA + E05E8506276073781F5B951DC8DD7F1569A9EF72820809603AD3B857A13D390B + 5DAB90194923F9D87DAC198433E022709C042520B7EC1CABA952542C4371EE3C + 746B6C41C77C29B8EBE6FD0EAC2B0F3F094AC057FB1A584D955A950A62D1279E + 3198CF1F897D359760B598495FABB6A8C34E222480E91D7593B40692FCC578A8 + 1B98803F49BBC9BFCFEC4AE486E22EBE39A8C0D4B7D321100818236803E8CE34 + EADE0790AC5F866EB5CEB37DB8FECA80E3B171F1FE44AC760B9AE44A8C7D361D + AF4C9E1C742E3A08994C460E10EE3DC16AAA7427B03337037DFAA1DFF7D035D3 + AF941E4752E234A4A64DF2EC8B26596542216803B84A4090980093C90CD9CD76 + CF954F99988A98E828FF71A6084A40D69E7A5653A5485283A2BC0CD77DC0467A + BCDFA8F75F7977F3BE628BA004AC92D41207F31EDF51BFFDE11CED04768A9642 + A5D3071DD31A6C1056D405351F0EA2A1E1043960E5AE9F89431B3FF603E8D6C6 + E2E3A409505DF97011B4014C12D89693099DD11074E513F96F61FC4B2F233E2E + 6AC8730C4668341ACA253622090416E134E1A2D28031A3D33DCDFB8A2E427EAB + 155D8A0E4C7EF575D29B1D2560C5F66AE2484126E30402CBB7CE3F27983EA079 + BA888E3639D4BACBD8BB7A3A84D27F48C78E9080CE3E0BD894C6A447E6F73518 + 9930152FA6507FE6A910BEE67FDFB514631205BC6BED7788253B2E0521CE9D69 + 20077C5A58451C2A58EA1FCA76573532029CFEEF2E92464DC3B8091387FC4242 + 8618DCBC6F3F1982368069CDDC508DE4E437913C6E82679B2E82AA792A042560 + D9E6234465E17228FBBDFF034C7F5DF04D9A4C103D8AF6219B2743FCDB72831E + 804DB9BF7DE5ECBF4C0BA1E8BCE35A7AAF866C3E10B178C74544453B70BBE20B + EE13609204D3E67DA5375B0987C38951FCB860C0920D954479E10ACA99865912 + 9DC82F274F826DF38145FABBD06040E94F4D6121C892E8BEDF0683E95A58CDD3 + 067051814938EC56F4699A7145B23CACE687151088884F30238DEF44AD383BEC + DF1C87151058DBA45538265E15394049C10A3CD23DC58088751E5011033C6DF5 + 3F5849C0DDDA3EA1340000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000058D4944415478DAD5D87D6C13 + 751807F06FD9781B8C3A95210A4282CB108D4B34288831841042C6789160E425 + 01877B6398F03604DCC6445810186C66EC7D30549229C800CB9A31C78B21CC39 + 5414331C94C186638CBD95B6D797EBDBD95ED3AE2F77EBDDF5BAC0F34F7B77CD + EF9ECFEFB9FBDD7395501485A73924DE0089442268A0CD2597449989C9E3A448 + 5E1083E14343FC2662CF5D54C0C1A4D901032A2F37A347A5E784782201A7EB15 + 30182D9C104F24E0C25FF7A1D6919C10410118CDD68000D75BBA40E88D1E88B5 + F35FC7E811C37C121315B0A9E8027528654EC08096878F6DC91B3D101DBD0452 + E2627C104101E88C0EC0674535BCC7D8BF6E3ED47A33946AC207D1DEAD42EAA2 + 373D10A2023614FC4CE5A5CE75018486D96C82CE246144DCED502263D5BBC101 + ACCFABA60E6F880DB802B76C49CAEB6FA38F207D8E937A1D0A362E082E40A933 + 0B9E7DF7B8AE78845F9BEE4363E81F8FD068060F9059562B0A64E9EC18281EF4 + C16AB5A2A9E541F000EB0EC9A8C24D71A255C03D4893156D9D7DF846FE3B8A36 + 2F1C1C805815D89D38CFF53DBDA4267880E40367A8E2B4C541A98033761456A3 + 64EB9281015B4A2F0BEA2AF55A023BD7CEA3973F7B145435889274C6C7735DDF + 779657A32C6DA97F80909E664F451D32E2E7BA2AD04B9861321B10312A4C1408 + 8D29FC09473EFF70700039DF5F81C12CA12B73BEA90756E333A241EC1126ED44 + 537E8A447440A7CA486F13A4E381A6D169B16C8F0C53A3DEC78B2F4D70FD7E58 + E8109F3142BC9ACEA1214358CF5775E62CEE7DBB841DC0B729DB77AC169909F3 + 5D80FC53575DC73A892E5CBEA11715C10AD85C7C515057995D518B5D89FD00D2 + 4CC164718C6DFF6CEE68C3D6A2464447BD270AC22F806F4FA355AB9091188B1E + 8D05932247E348F51FB050469064FF4488590956C0C6C23A415D6576B91C5949 + B1E8D39A5D1570CEBEEB9322D1D47E0FDB4BFF09B812AC804FBF960BEA2A95A4 + 125FAE8EA3DFA05E783E02A567EBA1D71B6C9722C5F8DB86DBA6802AE117C0F7 + 899A73AC06E909B1E8D6983CF6DB27424DE83DF6596C8D99A2BB155F94B663FA + 3BB320954A79233803B8F634EABE3EEC488E835A63A0B7BFABF9D3E3B8347C24 + F446C7B908AD0A97141D18F7EC2CBC3A6D9ACF585C1032998C19909A7B4E5057 + F955990CDB1317D24FE081A2DBD6D327E49D4244F80C44454FA5F78532AC32FE + 109C015C2BA0EC7A848C94C5E8523B96D193759E15183F36023A8301271A6FD2 + 333F794A14868686B88EF345B0025272CE0AEA2AB34B64484F66AF808A506375 + 6E153DF3F6E49D2114C10A483A789A2ADDF281EB81B4E7589DA00AB8877DE6D3 + 6C37B977F28120E4F273CC8084BD3F52E53B96B9005C23E768356305D8663E50 + 0467009F0AA4252E825ADBBF8C3A673E3CEC6D4C98F40A460C0F19700C6F844A + A5625D62835201F73058499C57F4E239E94C3A79677045286E35E3417B2BA6BD + F606E3C38E1510BFBB92AAC85CC1BB02EE613493F43AEF9D3C57446B8B024A4D + 037293672235EF6FC6B6C32FA0AD97849050E909ACD87712A3464EC7CB93D9AF + 79368433F95FF6AEC4D870A9E4DADD3BD4F2ECAB3E88BA5A39336075D671AA3C + 73251EAA1CD7F281E3177801CEFF7B0F11636660FCC42903BE903021BC9377EE + 67427006F08D39DB2A1119F91622C74FA4B7B922D8926743B00256A557506559 + 6BD0F1D8710FE4555EE40570769A7C109DED77074C9E0971B3E90637809068EE + 68C586C30D9C10ED6D776CEFCD8D7E9377477C947D0521A116DC2EFE44FC0AF0 + A904DFE49D41188C94C562C598B0E1BE80E5DBCAA8A2AC78DB322AEC1EF0AC44 + 1BD28A982B213479F760FC5FC81B5070E2524008A64A3CFCAF055AFDB58092E7 + 0C1023DC2B61311BD1ABAAC76F07D70494FCA002DC1123461A101D66C5E9FDEB + 034A7ED001EEB12BEF387ED89F143C407E663C7A344F31206899BB45D0004F5B + FC0F38A5D1DDE9F6E52C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005844944415478DAD5D80B5014 + 751C07F0EF09F8A0F0A2461D4A8B1963306A72A6C6F29539C4344E6A99692A34 + 99568A88A14039A6448D9A938AE2F03805D3522722341FE84986AFA1D0D2342D + 7C9D20C8331E77DC83BDBBBDC7760FEF3CEE76B9DDBD5D46BE33CC1D7B7BCBEF + B3BFFBEFFE0E094551E8CB917803241209AF03A5EE382DC899881C26C5E2A9A3 + 312024C86F21F6DA0505642D9A1C30A0E8CC0DB4ABF5AC100F24E060A50206D2 + C20AF140024EFE7D171AC2C80A210A80345B03025CAE6E854E4F76432C9CF21C + 1E1ED8DFA73041012B6427A92D89B10103AA9B3B6DC593DD104D1D3A244E1BED + 83100540904EC067B232CEC7D8B8640A347A33541A9D0FA2A14D8DA4375FE886 + 10149092F72B959D14E706F08DD96C026192D0226A9A545893305E1CC0D2EC63 + 546ECA1B0177E0A6AD4879E52D2875469FD78D7A0279CBA78A0B501166DE67DF + 339715FFE15CD55D680DF78FA7D36A7B0F9051784210C8CCC9A3A16854C26AB5 + A2AABA513CC0922DA554FE8A698275C033469315752D4A7C2FBF0859EAF4DE01 + 08D581B51FBFEE7EBE7A47997880C59B0E51DBD3DF12A503AEACCA3F861D9FCE + E81990567086D754A9EFD261D9ACF18E4B9F3D7BCB2E0952F49A0FE2DCCFBFD8 + 790C85E933FD03F8CC34B907CE21F99D71EE0EB4746860B05088080F1304E2C0 + E41FC1B79FCFEE1DC0E61F2B1C8F6AAD1EC7FF6985957C4430883DA1D21654E5 + 244A04036C2BFE0D297326DEEF40A7CEF1481848BCFBB51CA3A226E1F12786BB + F7EF1FDCCFE718415E436748503FC6BFF7F3A1C3B8B367063380EB5096535281 + B479AFA24DE704141CB9700F6040A75189B2BFB482221801A9DB4FF19A2A5D80 + 56AD13601FCAEC31990D80C58A4BF5B5C8DCF52FA2A3260A82F00BE03AD31808 + 024BE64CB27DE64D88891C82BD272E3BB69326AB289D60042CCF2FE73555CA0E + 5460D9EC57A0ECBA7F1F309A29982CCE1F50CE89F25A539D209D6004246F93F3 + 9A2ABB346A2427BCE6EEC09EE3176D0BD900D268F0D9576554E1FC2D53409DF0 + 0BE07A47CD2B3E83D48458B4D9009E21882EB46AC86EDB2C660BEAB5CDF8B2A0 + 01635E9E00A954CA19C11AC076A6D12895F8243E16ED5DCECE1DADB8DAEDF588 + 21E18E75604F9BAA13A7154D18F6E8043C1313E3732C3688D2D2527A40D2D6A3 + BCA6CADC1FCA911C1F67BBFA5818F7B1AF850E5BF10B730F213C6C2CA2A24739 + B607D35C65FC215803B87460A90DA0BAB788BD3B101D190192D06057E57547F1 + 9123A310121CE47E9D2B821190B8F930AFA9D2D5810E1DFDFBB4B6B5F05E5689 + BB7857F82218018BB20E5205696FA345ED5C78EBBE2BE7D501CFA8082DD6159F + F5293E10845C7E941EF0D186FDD4CE55B3DC00B6292C3945DB01A6331F288235 + 20900EB8CE7C58E84B18FED4D3183820A8C7637823D46A35E32556940E788630 + 19B0FF4A231E938E7314EF0A5B84E2E60D3436D422E6D9E7696F768C80056B8B + A8DD19F33877C033A4D9E8B8CE7B17CF16515BAD804A7B1E5B178F4352F615DA + B1C32FA0AEC3083E51EB7598F74D091E1A34064F46327FE69910AEE2CF6E88C7 + 9030A9E442CD6D6AEEFADF7D10E527E4F480F733F7513B33E2D1AC768E049BF6 + 9DE404F8E5FA1D840F1E8B8811237BFC424287F02EDEB59D0EC11AC035B12B8B + 3074E88B181A31C2F13B5B0453F14C084640C2EADD5461E67C34753AD74076D1 + 2970896BD2E4826869A8E9B1783AC4B5AAABEC007C72A3A91629B9E759211AEA + 6EDBEE157FFA2DDE1331677D0582822DB8B5FD43E13BC0A5135C8B7745672029 + 8BED6BEAE0D001BE80B92B0B2959E602DB6594DF1AE8DE893AA4CBE83BC1B778 + CFD0FE5FC81B90F7D3E98010749D68AEAF4697FE4240C5B3060811CF4E58CC24 + 3AD495F8236B7E40C5F72AC01331709001D1A1561CDCB834A0E27B1DE099AFB2 + F7A178E322F10039190BD0AEEDC300D12AF7886880BE96FF01CBBED7DD1D146E + 930000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000058F4944415478DAD5D87D5014 + 751807F0EF01BE5178A993A66938638CA64D8EE61BD1348E638D229A39BD8868 + A4162036E36B39A6488D394E124AA3028A62A50E93368222272928BDF89258A6 + 86A9270A8607A8702C77DCDDEEBD6C7B4B77DECB2EB76FC7E8F30FB77B377BCF + 67BFB7BF7D16154DD3789C4BE50B50A954920EB47CC72945CEC4E07E6A244F1B + 896E5D420336E2EC5D514066D244D980828A6B78409805211E4940E1192D2C94 + 5D10E2910494FF7507AD265210222800CAE69005B8587D0F4633E5855830E545 + 3CD9BDAB5F638A0296E594D39B5326C90654D7B730CD535E085D9311297123FD + 10410198A876C0A739A5A28FB169D114B49A6DD0B71AFD1075F709A4CE18ED85 + 5014B064FB093A2B75B21B20B56C362B4C561527E2964E8FB509AF0407B038AB + 84DEB624567602D7992635676EA0D948FABD4F9A4DD8BE745A70017A934DF2D9 + F7AC8BDA469CADBA0383E5E1F18C0643E701D2F28E2B0299357124B4779BE170 + 3850557D377880459B8BE9EC65718A25E059A4D581DA86667CA7B9809CE5D33B + 07A05402EB3F7AC3FD7ACD8ED2E00192338AE8DC956F06250157ADCE2EC18E4F + 66760C58B1B342D254696E332231760CDA2C7676FB50C525459A5EFBC164F7EB + 75BB4A90B7725660809499666FE99F983765B43B819A7B0428D28AC8677A2B02 + 6131D947B0FBB3773A07905D54C9FEADBFAFC7B12BF7E0A09E520CE2AC707503 + AAB6A6A81403ECD65CC4C2D8516E40438B91BD7B3A539893518A6151AF61C0B3 + 03DD9FEF1A16E2778C509FA1B34B6808EFF71D2A3A8CDBDFCFE407881DCAF61E + BFE405D87FAC12664708286609D4113A94FE615014C10B589E7B52D254B9FFC4 + 0524BCCE5CC4FF8F124D461BAC360B6077C062A77155578BF4FCBF3134EA5545 + 10010162671A8BC984F8A9E360266D18336C204A4E57816212B093A6A024C10B + 589A5D2669AADCAF398FC4B871686E7B781F206D34ACCCD97726E1BC1E9CE54C + 625DFE65D9085EC0C7DF68244D95AE049CA36FF488481CACA8424D23C14E90BE + A527F53877C32A0B111020F68EEABC68174C1FCF3E907856BDDE80C66633B366 + 3FDC6F6156A6560781CF77D661ECF818A8D56AD108C100A1334D5B2B81B9D363 + D8049C555EA9F57A3F72401FB418DAD3B8AF6FC129AD0EFD7AC7E085E1C3FD8E + 2504515C5CCC0D48DD7254D254E94C2061EA5826017B879FAB69D02335B708BD + 2226206AE830765F18C72A13082118A05402A3A2FA830C619EA84AAEB0CD0F1E + 12852E61A1EEF7C5227801295F1F963455EE3D721AF366C4F026D06C30626EE6 + 4177F3AE928AE005246516D23B57BC85068262B7BFFCB64C7002EFC646B317A8 + 6F11162B320A7FF16B5E0E42A339CA0DF870E38FF4AED56FBB0142EBC0B1B388 + 8F8B8189F44E80EFCCCB450806C849C075E623C2C76160E4F3E8DE2DB4C363F8 + 220882E05D628392801788B9FBE6FF76137DD4D16CF3AE128AD05EBF86BB7535 + 183EE225CE9B1D2F60FEFA027A4F5ABCE8043C8BB291EC3AEFDBBC50444DB516 + 7AC3396C498E466AD625CE013020A0B689849422CC46C47F75104FF4188BE706 + F3FFE6F910AEE67FDE38074F47A85595B76ED2B3379CF643941DD77003DE4FDF + 47EF4A9B837AA2FDB79CB1AF5C14E0A77F6EA357CF09E83F6848870F245C08DF + E65DFBB9108201626BD2AA02F4EDFB32FAF61FC46E0B45F035CF87E00524ACD9 + 43E7A52742D7D27E0D64159C1405704D9A62100D75B73A6C9E0B71B5EAB23080 + 94BAA6ABC1926DE70421EA6A6FC2603A1FB0794FC47B1B7E4568981D3772172A + 9F809824C436EF2AA385A2EDCCA36ACFF06EFE80D9ABF2E89CF4F9CC322AED1A + F04EA2162B73B89390DABC6771FE5FC817B0FDC0295908AE24EAFFAD469BB952 + 56F382014A946712761B8526E20C7ECF4C94D57CA7023C11DD7B583034DC81C2 + 4D8B6535DFE900CFFA226B1F7ED894143CC0D6B4F97860788C0141EBDCA38206 + 78DCEA3F8CCFE0DD4D4E38690000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005994944415478DAD5D80B5014 + 751C07F0EF09BE28BDAC51C7D262540642D2D4D17C3F18A76114D3A8261F4DA6 + 152036E3B31C53B2461D2715A511793756C30C53962F1EA189A20992D498228A + 9E20181C270AC772C73DF61EDBDED25D77DC2EB7BBB7CBC87786E1F61696DFE7 + 7EBBFFFD2D0A8AA2D09BA3E80A502814A20EB429E382249F44F07025E2164D40 + FFBE013E0B71D42E292029769EDF80DC926A3C268CBC104F24E044990A26D2C6 + 0BF144028AFF7E807683991742160069B5FB05B856D30CBD91F440AC898AC0D3 + 03FA7915262960635A3175303ED26F404D531B5D3CE98150B7E8111F3DC10B21 + 0BC04076023E4B2B127C8C7D6BA3D06EB442DBAEF742343C2290F0C6240F84A4 + 80F5477EA3921316B8006263B55A60B0285811B56A2D76AC9C210F605D720195 + B27EA1DF1DB8431759587617AD7AB3D77EB3D180231B16C90BD01AACA23F7DF7 + 5C533DC495AA07D099FE3F9E5EA7EB394062D659492031F32640D5D80ABBDD8E + AA9A46F9006B0FE651A91BA325EB807BCC163BEA35ADF8BEF04FA46D5ADC3300 + A93AB0EBE3D75DAFB76714C90788DB7F924ADFB244960E38B32DB500199F2EED + 1EB039B344D454E9582116CD0A87C96C61B68B2B549214BDE38305AED75F6417 + 206B4B8C6F80989926BFAC1AD133C25CCB68E5FD6674986C080F1E2A0984C1A4 + 9EC6B79FBF230FE0F8E56AC4CC0A739D42D9057F81B2D9F0E0611B7EAD6C869D + 7C46328823414A0DAA0EC72BA4035CAC42CCDC712E405D33412F7D36FA4E6AC7 + 9A4345080B9983E75F18E9FAF97E817DBC8E11D065E8EC1BD087FBEF9D3C85FB + 3F2CE506081DCAF24B6F7B008E9754D22301E81180849AD0E074B95652042760 + 53FA795153E5A94B37B1644E043AFEBB065AF45658AC26668621E90BFB565323 + 76E7544A86F009103AD3980C062C8D9C041D3D7C454D1D8BA2ABF760351940DA + 15B2748213B021F59CA8A9B2E0F24D7A198D80DEDCF97B8E5BBFD94AC162A3BF + CC0698E8EF52768213F0C93785A2A64AA6037323A02381F91347A3A0B40AB59A + 366629ED9A47FA8728BF6BF10BE11320F48E9A7FE906DE8A7C957920714F9356 + 873A75AB27D6715D04EAF1656603A6BC36134AA55230823780EF4CE3E8C0C2D9 + 11F469D3B95D7ABDD6637F68F008B4779898D7F54D1A5C50A931FCD99978393C + DCEB587C10797979EC808443F9A2A64A4707A2E78C672647AE38AE893A8D1609 + E9273164D03484848631EF07B2AC32BE10BC017C3BD0D14E60F1FC899C1D889C + 3C1A84B503077EA9608A0F1E1382BE8101AEFD42119C80F803A7444D95CE0EB4 + 1B6DACFB09A31ECBBF3EE62ADE19B1084E406CD2092A73F39BD01024B3BDFBBB + 73A23AE09E36FAF936E5CC15AFE2FD411416E6B3033EDAFB3395BDED6D17806F + 1CCBE6E2D9AFC0487A76A055A7C77B49C7388B178BE00DF0A703CE4F7E50D054 + 8C7C692C06F40FE8F6185D110441702EB1B274C03D06A30EE925B75CC53BC317 + A1BA538DC6863A848F1BCF7AB3E304ACDE954B1D4D5C2EB803EE21AD66669D7F + 4E39DDA378BE88BA1A15B4BA721C8A9B8E84E4EB080D99E585F009A86F31434C + 9CABCD5303A7E0C560EE739E0BE12CFEE2DE15183A48A9A8A8BD472DDB53EA85 + 3877B6901DF0FECE1C2A3B71059A88CE67DBFD39C58200676EDFC790C1D33062 + D4986E1F48D8105D8B77BECF86E00D109AC8ADB918366C32868D18C56CF34570 + 15CF85E004ACDC7E94CADAB90AEAB6CE6B2039F7BC2080D6AC65264D21084D43 + 6DB7C5B3216E55DDE00710936A751DD6A794F34234D4DF83CE70D567F1EE8877 + F7FC8E80401BEEA67F287D0784744268F1CEE84D2465B3D93138A8BF3760D9D6 + 2C2A6DE76A7A1915770D7876A21E5BD2D83B21B678F7B0FE5FA82BE0C84F17FC + 42B075A2E99F1A74182BFC2A9E37408AB877C26625D14294E18FA4557E15DFA3 + 0077C48081268406D97162DF3ABF8AEF71807BBE4ACEC18FFB62E5031C4E5C8D + C7BA5E0C90AD72B7C806E86DF9174BDAE5DD590EDC590000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CopyLocal_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005954944415478DAD5D87D5014 + 751807F0EF79284AE9694D38969A93124816E64B495883E8344E5A99A3932F33 + 99BD20628DAFE5989235E658F886A382808ED6388396131A729A295826A138F9 + 8A22C7DBD9C1212AC771777B777B2FDBEDC19D77DC2EB72FB78C3C7F2D77B0F7 + 7CF6BBFBFB3D878CA22874E7927504C8643241275A915D1C922B316CA0028BA6 + C521BCA73C682374EF21056C4D4E140DC83B5B81FB7A3327C42309C82F51C142 + 3A38211E49C0992B77D04A58392124019076A728C0E5EA2618CDA41FE2A3A9A3 + F078EF5E018D8514B03CEB0CB52D254934A05ADBE26A9EF443343C3022657A5C + 0042120041B601BECC3AC9FB1CE98BA7A2D56C87AED51880D0DCD323F59D317E + 88900296EEFE83CA489DE205082DBBDD06C2266344D434E8B06EFE6BD2009664 + 1452BB96BE253A81DBAE2695259568365A03DEB79A09EC5E364D5A808EB00BBE + FABE75597517FF94DF81C1F2F07C4683A1EB0069B9A7420299991807557D339C + 4E27CAABEBA5032CDE5640652E9F1EB2047CCB6A7342DDD88C1F959790B5E2ED + AE01842A810D9FBEE93D5E9B7D523AC0A2CD47A93DABDE9524014FADC92C44F6 + 17333A07ACCC392B68AAA45788A4B1CFC1DADEFF859B1AD86DA4E8A6D77D38C5 + 7BFCF5DE42E4AE9A191C2064A6A16798C9A3877A97D13255130C4602E362068B + 46783199BF61DF57B3BB06B0EFC455D758E140ADA60927AE37C149F60F1984AE + 084523CA77A6C82403D01B1269B5B977D2E45D4588897A034F3FF3308D5E613D + 02CE21EF3074F694F760FDBC5F8F1E43ED4F33D8017C87B27337346E80E7213E + 79B10A0461768D058046578F237FDF0F298215B0624F91A0A99206BC3E6A304C + ED0934B79A40DA1CB038287712D7346A7C9F772B6488A000BE330D69B762D2D8 + 91EEAB3E33F1459CBF7E07A4C50C2B2597240956C0B2CCD382A6CAA24B95481A + F7BC6B196DFB3B7AF7B4DA29D7526AF126D16AB2A142AB46FA21F149B0023EDB + A1143455FA26303B311685176B71A3460B93C511F0BBF78C77515A691385080A + E0BBA39EBF52E54E80FE42E25B5A9D01B7EA9A413A6DDED7CCAEFB29A2BF0DDF + E46830FED50428140ADE08CE00AE338D852030397E145ADAE7787A72F4AD97A3 + 06A1B1C5E23E566B1B51AC6AC0C0271230323636E05C5C10050505CC80D4EDC7 + 054D95740209A347B8EF7DB6A29F896AED5D7C9EADC480BE1310151DE37E3D8C + 61950986E00CE09340C29818586C0EC604A64D8C85D96C41DAE1B3EEE6870D8F + 42CF30B9F77DBE085640CA966382A6CAE2B2DB98343E9A35019D89C0AC4D87BC + CD7B4A28821590BC359FCA59F91E1AF56D93E477074E734E203E6EB8EB610DFC + 40A3EBCA1FF8EB7240F362104AE57166C0279B8E507BD7CCF202B856C9151526 + 8E898699F45F36F56623E6FEF00B6BF342119C016212F05CF9BE11AF60F0B323 + D03B5CDEE9393A22F47A3DEB122B49027E579E30618BF25F6FF39EE28A50DDAE + 40BDA60EB12FBCC4B8D9B102166EC8A3F6A7CDE59D806FD1BB32BDCE3FA988F7 + 6B9E2BA2AE5A059DA114DB17C52335E32AA2A32606208202D40FAC10529E7BFE + B13EE3317418FB3DCF86F034FFE7A67978AAAF4256565345CDD9783E0071FA94 + 9219F0C1FA83D4DEB479D0EADBB6FECD07CFF002FC7EAB1603FA4DC0A021C33B + FD42C284E8D8BCE77526046700DF4A5A9D87C8C8B1881C34C4FD3357045BF36C + 0856C0FCB5FBA9DCF50BD0D0D2F60C64E415F102E8AC3AF7A4C907D1A8A9E9B4 + 7926C4CDF26BDC0042AAA2A10E4B7795724268D4553010178336EF8B787FE339 + C8C31CA8DCF371E813E09304DFE63D65B49094C3E144BF88F040C09CD5B954D6 + FA85AE6554D833E09F841AABB2989310DABC6F31FE5FA82360F7CFC5A2104C49 + 68FFAB86C95C26AA79CE8050946F120E3B8907FA125CD8BA4054F35D0AF045F4 + EE6341748413F9E94B4435DFE500DFFA36E3200EA7274B07D899B610F70DDD18 + 2059E73E2519A0BBD5FFCF3BECDDADB961E80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005824944415478DAD5D87D5014 + 751807F0EF018A5278D90B26A131224194529AA5D994E3388DA5953936F93265 + 9A01A2332A528E2959638E9386D2A8A062A31513594E6A089101D2381AA96568 + 2870F21A1C0702C771C7BDECEDDDB67B74E7BD2DB7AF8C7EFFDABB3DF69ECF3E + B7BF7D16054551B893A3F00628140A41074A3B70469233113D4A89E43989081D + 121CB010A67649019949334403F2CBABD1A9337142DC9680E3E7553013364E88 + DB1250FA77337A8D164E08590004691705B85CD7018389F0402C9FFD38EE1E36 + D4A7304901EB724AA95D29334503EADA7AE8E2090F84BACB8094B9893E085900 + 46A21FF0414E31EF63EC58391BBD2612DA5E830FA2E5A60EA9AF4EF240480A58 + B3EF572A2B75960B2034246985D1AAF08BA8576BB179C9B3F200566515527BD7 + BC2CBA0335749145E76BD16DB0F8ECB7988CD8B7768EBC00AD91147CF6DD7359 + D58EDFAB9AA137DF3A9E41AF1F3C4046EE694920F3672442D5DA0DBBDD8EAABA + 56F9002B771550D9EBE64AD601F758AC763469BAF155D125E4A4BD323800A93A + B0F5BD175DDB9B0E14CB0748DE7982DA9FFE9A2C1D70666376210EBC3F6F60C0 + FA83E582A64A1B492231E64198AD36C7EB9AE69B20AD84E8A237BF33CBB5FDD1 + A142E4A6CF0F0C1032D3FC59DF81C9E3225C77E2D24A66A621F1C2C4B1A2112E + 4CF64FF8F2C337E40538EF03F9259520EC418E95E3E7AB1DB013F748066112A6 + D4A06A4F8A4232C0A51A359E8A8B7401AE36748059C28D663356E794233EF679 + 443E14E5FAFCD090209F63047B0D9D43828358BFEFC71327D1F0F53C7600DFA1 + EC4A9DC603507CA11616066034A1B1A71DDF96692445B002D2F697099A2A19C0 + 44FA22EEFB1FD0DDDB875EBA0584C58A3EB30DD56D8DC83CA6920C1110C077A6 + 21AD5624C647C34817BCFCA527F057AD1A84CD0E93C92C4B2758016BB34B044D + 9597552D7832368A2EB6FFEFECF4B26AA582A0ED333A2649A93BC10A58FD4591 + A0A992202D98303E9A2E96C08A399371EE6A332ED66AA0EF33FB7CB6BDB70D15 + B55651888000BE77D46B0D6A8F0E306136EB5B3B71ADB193FE39DDFA1E83C982 + FB47011F1F6CC19467A643A954F2467006709D69DC3BC0A449DDE5B17F7AE238 + C7A3A1DD6E83AA598D332A3546DD3B1D8F2624F81C8B0BA2A0A0C03F2075F729 + 41532573D14E7A24D23139B2C54252F4336F3B92F716388A8F8D8B77BC1FE267 + 950984E00C90AA036FCD9E443F6599917EA41823C3A7223A26164342825DFBF9 + 225801299F9F14345506EA00B31A2DD8FE9DAB7867842258014999C7A983EB5F + 8746D77F263F3D5222A803EE3111661CADB8EE53BC184451D129FF8015DB8F51 + 87362E7001B8A6AA41830931918E473F2E675E2C8233404C079833FFCDD97F70 + 9F721AA21E1E8F61A1C1031EC31BA1D3E9589758593AE01E9DC1888CA3E5080F + 7BDA51BC335C11AA9A6AB4B63422E1B1897E6F76AC80655BF3A9C3198B7877C0 + BB1BCC3AEF3CF3DE098468AC5341ABAFC0EEE46948CDAA445CEC733E888080A6 + 2E0B8444673260D1673FE0AEE15330369AFD37CF867016FFDBF6C578205CA9B8 + 587F835AB8ED9C0FA2E474917FC0DB5BF2A843198BD1A6B33A5EEFCC2BE505F8 + E57A03468E988AD16362067C20F187F02EDEF9BE3F046700DFCCDC908F8888C9 + 88183DC6F19A2B82AD7836042B60C9A6C354EE96A550F7F45F0359F965BC005A + 8BD63169F241685AEA072CDE1FE25AD5156E0021A9563762CDDE0A4E8896A61B + D01B2F042CDE1DF1E6B6B3080EB1A176FFBBD277804F27F816EF8CC14C5036FA + 696F4458A82F60E1865C2A67CB327A1915760D7876A209E939FE3B21B478F7F8 + FDBF903760DFF7674421FC75A2EDDF3AF4992E8A2A9E33408AB877C24612E8D2 + 9DC71F994B45153FA80077C4B0E166C485D9717CC72A51C50F3AC03D9F64E5E1 + E88E24F9007B3296A1537F070364ABDC2DB201EEB4FC07DEC8F1DDFFD10C8A00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000057F4944415478DAD5D87D5014 + 751807F0EF792048E18926A8883221A3511333399466D338E6344E5A1163932F + 3319BD0042936F94634AD498C384A1342AA06856C3442F962FC865C48B4E4994 + 851503212708C2718702E7BD78EF77DBEEDDDC7570BBDCBE1DA3CF5FFB72F7BB + E7B3CFEDEFF7EC4A0882C0DD1C92D1008944C26BA0AD871B44B912F1313264AE + 4C4658A834602254EEA2028A32960A06549E6FC7A0D6C40A7147024E362A60B6 + 3A5821EE4840DD5FD7A1335A58218202B0DA9D8200973B6FC060B28E40BCBAE2 + 21DC1B3ED12F3151015B4AEB887D59CB04033A55B7C8E4AD2310FD430664AD4A + F643040560B4BA01EF949EE33C46E1C615D099ECD0E80C7E88BE9B5A643FF7C8 + 0884A8804D877E228AB3977B017CC36EB7C16893D022BAFA35D8B5FEF1E00072 + 8AAB89839B9E115C812B6492F2C60E0C1B2C7EE72D26230E6D5E195C80C668E7 + 7DF57DE3B26200BFB65E87DEFCFF7806BD7EFC0079E535A240D2962643A11C86 + D3E9446BA73278808DFBAA88922DAB44AB806F586C4EF4A887F1B9FC0F946E7D + 767C00625560F71B4F7BB7771E3E173C40E6DE534459EEF341A98027769454E3 + F0DBA96303B61D39CFABAB24C8FF68ECF4C9DEFDDE815BB0DBAC8293DEF5CA72 + EFF67B47AB519E9B1618C0A7A7E9546B913043E65D896BFEECC6E06D33562C9C + 2718E1C5949CC1B1775F1C1FC077BF74C0683491D3A10A3FB4DC80D33A453408 + 151132355A0F64498206A09AB2618319668B0DB99F5EC482C427312B76B6F7F3 + 134326F88D211DD574864A2730FEDEF7A74EE3DA17A9CC00AE4D59EFA0DE05F0 + ACC4175AAEC36432C342DED36DFDDDF8B25E2D2A8211B0B5AC9E57574901E2EE + 8B84E76BAA613D74E42A6A252B4055E2DA4D258A4E284443040470ED69A89532 + 7EE654D89C1264A7A6A08B5C78CC6405746667502AC108D85C52CBABABEC21A7 + CDB93153C844DDDF93C2E1EE2A6F1B5D9DA4D8956004BCF9899C575749552036 + 669A6B9BAA4073473F9ADA9418D299FC3E3BA053A1A9C326081110C07545550E + 68484094DFF18EDE4134939DA591AC8027A89969F69C50BC7FA40F298F2D814C + 26E38C600D60DBD3D86D36C4CD8AF6EEAB6E6A469C7F2A25115D2AAD6BFB4A77 + 2F1A14FD8899BA040F2425F98DC506515555450FC8DE7F96575749DDB4F7CF98 + 4ACE42CC9D88C341A0AD578DCC8355AEE413E72F701D0FA1996502215803C4AA + 404EDA220C938F8919657244452E427C42224243A4DEF35C118C80AC8F4FF3EA + 2A3D15A07A77BAA066A3D5055F7993F7045F042320A3E8247164DB0B506BDD9D + E4879FD5F2AA806F50CFB7E75ADAFD92178290CBCFD2035E2F38411CDDB1DA0B + 601B7DEA41CC2101D474CAE6CA0B45B00608A90075E5CF34B7629A6C3166CF9D + 87F030E998638C4668B55AC62956F40A50CFACBE41BDCF79EB981C91118FBA92 + F7045B84E24A3B947DDD487AF061DAC58E1190BEBB92389EB79673057CC36AB7 + B8E679CF951F1D8110DD9D0A68F44DD89FB918D9C57F637EE2137E8880809E21 + 0BF884D664C0DA8FBEC53D935230279EF93FCF84F0247FA1601DA647CA2497BA + AE126BF65CF443D4D6C8E9012FE7571047F3D641A5752FFD7B2BEA38017EFCF7 + 1AA2262FC2CCB884311F48E810A393F71CA743B006708D65DB2B111DBD10D133 + E35CFB6C114CC933211801EB771E27CAF337A0FF96FB1E28AEACE704D05834AE + 4E930B42DDD73566F27488B6D67FD801F8443BF9E0B2E960132B445FCF55E88D + BF074CDE17F1D29E9F210D71A0A3EC35F12BC0A5125C93F784C16C251C0E2726 + 4784F903D66C2F274AF3D3C96994DF3D30B2123DC82DA5AF04DFE47D83F6BDD0 + 68C0A16F1A0421E82AA1EAEDC46DD32541C9B3068811BE9570D8AD18D236E2B7 + A20D82921F57802F227C9219F3239C3859982328F97107F8C607C515F8BA3023 + 78800379E918D4DFC580A065EE134103DC6DF11FEBACD5DD613233C200000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000056A4944415478DAD5D87B6C13 + 051C07F06FE9602FB60AC41114940497E134906850700B210B31C4A120C1C8C0 + F052D91846604C09B2896612E21036C3DE1B010DC97C85D7D844DC1886F012CC + 049DEEFD60DDD3BDFA587BEDDA9E775D7ADCD6BBF59E0B7CFFBABB5EAFBFCFFD + AE77BF564392241EE568C602341A8DA40325E5572A7226E6CED4213E7621FC27 + 6B7D1642D7AE28E0C8B665B201C5576AD06BB00A423C948033D7EB41D89D8210 + 0F25A0E2CFFB305A6C8210AA00EC0E972C4055630FCC56FB28C4D615CF636AC0 + 14AFC21405ECCEAD208F26C4C80634760E52C5DB47213AFACC4858B9D00BA10A + C0621F017C9C7B51F431D2B7AF80D1EAC080D1EC85D0FF6740E21B2F8C42280A + D899FD2B9999B89C01488DC3310CCBB08613D1D43180940DAFA803D891594A66 + ED7C4D76076AA922CBAED7A1DF6CF37ADD66B5207B57ACBA80018B43F2D967A7 + AABE1B37AAEFC3443C389ED9649A38406AE12545206B962D447D7B3F5C2E17AA + 1BDBD5036C3F5A42E6EC5EA95807D8B10DBBD0DAD58F6FCAEE2037E9F5890128 + D581B4F75F6596F7E75F540F107FF82C9997BC4A950E78B22FA714F91FAD1E1F + B0A7E08AA4A992A4AED119A181B03B47DE6E1A2260B711B28B4ED9BC9C59FEB4 + A81485C96B7C03A4CC34F4BD3A34C89F59A787B29E4102ABA2226423184CCE79 + 1CFFE42D75007D4682EA4000B34E8FC574AEDD6DC2CF7FF5C0657F4C31089D20 + 5D17AA8F256814077866A11BB53DB0100406AD56A49CBC85F9E14BF1C493B399 + FDA7F84DF23A8676CCD039593B89F7F34E9F3D87E66F57F303C40E6526EAB1CF + 065CFD5B0FABCD0113350A34F7B6E3F8C5364511BC80A4BCCB92A6CAFE2107A6 + 07FBC1F3B6D65E23D5017A9671C164B6A0B65B8F9CF34D8A217C02C4CE34F493 + 729A2E18844383B4CD4B19C0207569A9D1095EC0AE9C724953253D068706FA31 + EBCC54396451A513BC800FBE2E933455B23B90F24E34EADA7A51FE4733F5E5B6 + 7AEDDB6DECC4CDBA6159089F00B14F54A3D5497540EBB5FD5E732FEED4E841D8 + 86996DF4A8BC20722A3E2BD063D1CB51D0E974A211820142671A7607E8D0B33B + 3BB1D19168E934B897AB6A9B5059DF8199D3A3F06C64A4D7B184204A4A4AB801 + 891917244D95FDC6214C0F0D1E771F7AAAAC6AE8C08785A5EEE2C323E6BBB7FB + 71DC657C21040394EAC0AEB81818CC466CCC388D69218B31775E3826FB3DB8E4 + C4227801095F9D9334557A3A30ECE47EBDCF64C6DA43DF31C57B2215C10BD876 + E40C59B0E74D7419ECEEF52F4E964BEA003B74372A1BEE7B152F07515676811B + F0DEA19FC8A27D6B1980D00C51334F4870B01BC20EFD1CE03AF372118201723A + 409FF95FFE6DC60CDD12CC7EFA1904F86BC73DC65884C160E0BDC52ADE01FA4C + B3633411D89A751621412FB98BF74428A2BEB606EDFA16443EB780F361C70BD8 + 92564C9E488D13DD0176EC0E9BFB3EEF39F363E30BD1D2588F01D34D64C42F41 + 62E65D4484477B217C025AFB6C901283D58CB82F7F4470E0223C3597FF9AE743 + 788AFFEDD07A3C1EA2D3DC6E6A20D71DBCE68528BF54C60DD878E0145994BA1E + 9D869147FFE15315A200F4353F2D743166CD9937EE0F122EC4D8E23DDBB91082 + 016213B3B71861612F226CD61CF7BA50045FF17C085EC086FD27C8C2039BD031 + 38F21DC82CBE2C0A30601B704F9A62105DFAA6718BE742FC537D4F18404A6A3A + 5AB033EBA62084BEB581FA39FABBCFE2D988B70F5E85D6CF89BABC7795EF8098 + 4E882DDE133361279D4E17FD378E3760DDDE4232F7C016EA362AED3B30BA13AD + 48CEE5EE84D4E2D9E1FC5F682C20FB874A5908AE4E74B63552A3C76D59C50B06 + 281176279C0E3BFA0CD771EBC82659C54F28808D0808241011E4C299F41DB28A + 9F70003B9F679EC2F7E9DBD4031C4BDD825ED3230C50AD725654033C6AF91FAB + 9AD6DDB3FA3FB20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000056A4944415478DAD5D87B6C13 + 051C07F06FE9602FB60AC41114940497E134906850700B210B31C4A120C1C8C0 + F052D91846604C09B2896612E21036C3DE1B010DC97C85D7D844DC1886F012CC + 049DEEFD60DDD3BDFA587BEDDA9E775D7ADCD6BBF59E0B7CFFBABB5EAFBFCFFD + AE77BF564392241EE568C602341A8DA40325E5572A7226E6CED4213E7621FC27 + 6B7D1642D7AE28E0C8B665B201C5576AD06BB00A423C948033D7EB41D89D8210 + 0F25A0E2CFFB305A6C8210AA00EC0E972C4055630FCC56FB28C4D615CF636AC0 + 14AFC21405ECCEAD208F26C4C80634760E52C5DB47213AFACC4858B9D00BA10A + C0621F017C9C7B51F431D2B7AF80D1EAC080D1EC85D0FF6740E21B2F8C42280A + D899FD2B9999B89C01488DC3310CCBB08613D1D43180940DAFA803D891594A66 + ED7C4D76076AA922CBAED7A1DF6CF37ADD66B5207B57ACBA80018B43F2D967A7 + AABE1B37AAEFC3443C389ED9649A38406AE12545206B962D447D7B3F5C2E17AA + 1BDBD5036C3F5A42E6EC5EA95807D8B10DBBD0DAD58F6FCAEE2037E9F5890128 + D581B4F75F6596F7E75F540F107FF82C9997BC4A950E78B22FA714F91FAD1E1F + B0A7E08AA4A992A4AED119A181B03B47DE6E1A2260B711B28B4ED9BC9C59FEB4 + A81485C96B7C03A4CC34F4BD3A34C89F59A787B29E4102ABA2226423184CCE79 + 1CFFE42D75007D4682EA4000B34E8FC574AEDD6DC2CF7FF5C0657F4C31089D20 + 5D17AA8F256814077866A11BB53DB0100406AD56A49CBC85F9E14BF1C493B399 + FDA7F84DF23A8676CCD039593B89F7F34E9F3D87E66F57F303C40E6526EAB1CF + 065CFD5B0FABCD0113350A34F7B6E3F8C5364511BC80A4BCCB92A6CAFE2107A6 + 07FBC1F3B6D65E23D5017A9671C164B6A0B65B8F9CF34D8A217C02C4CE34F493 + 729A2E18844383B4CD4B19C0207569A9D1095EC0AE9C724953253D068706FA31 + EBCC54396451A513BC800FBE2E933455B23B90F24E34EADA7A51FE4733F5E5B6 + 7AEDDB6DECC4CDBA6159089F00B14F54A3D5497540EBB5FD5E732FEED4E841D8 + 86996DF4A8BC20722A3E2BD063D1CB51D0E974A211820142671A7607E8D0B33B + 3BB1D19168E934B897AB6A9B5059DF8199D3A3F06C64A4D7B184204A4A4AB801 + 891917244D95FDC6214C0F0D1E771F7AAAAC6AE8C08785A5EEE2C323E6BBB7FB + 71DC657C21040394EAC0AEB81818CC466CCC388D69218B31775E3826FB3DB8E4 + C4227801095F9D9334557A3A30ECE47EBDCF64C6DA43DF31C57B2215C10BD876 + E40C59B0E74D7419ECEEF52F4E964BEA003B74372A1BEE7B152F07515676811B + F0DEA19FC8A27D6B1980D00C51334F4870B01BC20EFD1CE03AF372118201723A + 409FF95FFE6DC60CDD12CC7EFA1904F86BC73DC65884C160E0BDC52ADE01FA4C + B3633411D89A751621412FB98BF74428A2BEB606EDFA16443EB780F361C70BD8 + 92564C9E488D13DD0176EC0E9BFB3EEF39F363E30BD1D2588F01D34D64C42F41 + 62E65D4484477B217C025AFB6C901283D58CB82F7F4470E0223C3597FF9AE743 + 788AFFEDD07A3C1EA2D3DC6E6A20D71DBCE68528BF54C60DD878E0145994BA1E + 9D869147FFE15315A200F4353F2D743166CD9937EE0F122EC4D8E23DDBB91082 + 016213B3B71861612F226CD61CF7BA50045FF17C085EC086FD27C8C2039BD031 + 38F21DC82CBE2C0A30601B704F9A62105DFAA6718BE742FC537D4F18404A6A3A + 5AB033EBA62084BEB581FA39FABBCFE2D988B70F5E85D6CF89BABC7795EF8098 + 4E882DDE133361279D4E17FD378E3760DDDE4232F7C016EA362AED3B30BA13AD + 48CEE5EE84D4E2D9E1FC5F682C20FB874A5908AE4E74B63552A3C76D59C50B06 + 281176279C0E3BFA0CD771EBC82659C54F28808D0808241011E4C299F41DB28A + 9F70003B9F679EC2F7E9DBD4031C4BDD825ED3230C50AD725654033C6AF91FAB + 9AD6DDB3FA3FB20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000049E4944415478DAD5D87D4C1B + 751807F06F57180C65751A59A69B924CC2443312177473C62C0B318B9BDB5C66 + DC46E2C41760CCC8C6D0650E44330991C956B34181B24C0D497D8B6CB2569C30 + 660C88CE04A7C101A51D2FA5943928A5A52FD7979396B496F68E5E7B77CD78FE + EAF5DA5FBE9FDFD3DE3DAD8024492CE4120402040241440B15D6B671B213C9CB + 45C8DD9A8EB85861C820EEEC9C022A7336B106C8AEF6E0B6C1C2087147021A3B + 94B0124E46883B12D0FAE710A6CC3646085E0084C3C50AD0A5BA059385988378 + 6DCBE3B83B7E7150304E018725ADE4A9BCCDAC01AAD1C999F0C41C8476DC84BC + 6DE941085E00666216F0AEA439EC352A0E6CC194C501FD942908A1F9D780FCED + 4FCC41700A28A8FA8914E767FA009196C36187D92EA044A8B57A14673DCD0FE0 + A0584E9E2D789E75077A67422A3AFA3061B2059DB759CCA83AB4955F80DEEC88 + 78F7FDAB4B39865FBB8760B4FEBF9EC9688C1EA0447A9913C8AE4DE9508E4CC0 + E572A15B35C21FE0C0A926B2FAF036CE3AE05F36BB0B83BA097CAEF80392C217 + A203E0AA0327DE7CCEF7F8786D337F80DC9317C89AA21DBC74C05BC7AAE5A87D + 67E7FC8023755739992AC999CF2C61B3B25EA7F8D54CDFE3F7EBE59016ED0A0D + E06AAA74DF41B332D772B11FB398EAEF71EEBD97A203F04E95EDD7D5F8E1EF5B + 7011F770067157824887EE337902DE00FE5365714327D6A43C8B071E5CE93BBF + 386651D07B84014367AC7011EDFADF5DB8889B5FECA407703955F68D0DA34E3E + C42982165058738597A9926B4448001F53E50DED10CE350F7382A0051CAA6EE1 + 75AAE40A410B78EB5305EF53A56E72049D7D7656889000BEA7CA8C7549F8A04E + 838CA736422412858D600CE063AAECEA55A34DA9C5F27B37E2D1B4B4A0D73241 + 3435355103F24F5FE275AAECEAD7E26DA9DC133E25758DE7F9188AAB4C280463 + 009753E5C4D434B697C9B02C713D9257A7203646E83B1F2E821690F7C9455EA6 + 4ADDA409BBCBBFF485F756A4085A404E65235977E445E80C84E7F8A3CF5A5887 + 271C36B40F8C0585678350282E5103DE28FF96AC3FB6DB07605BFA6933E5CEB3 + 453006B0E9807BE7DD579BFB441BB0F2E147101F279CF7F5810883C1407B89E5 + BD03DE9D4F4C78D213DE5B4C11CADE1E8C680690F6D85ACA9B1D2D20FB848C3C + 5FB297550702773EB0422106544AE88D9D389DBB01F9E2EB484D792608111230 + 386E432465B098B0F7E36F70D7920C3C944CFF99A74378C3FF5CBE0FF7278A04 + D7D4FDE49EB2F62044CB650535E095D206B2BE641F460D76CFF1C986D6B0003F + DEB889654BD763C5AAD5F3FE20A1420486F73E4F85600C08B7361F952129691D + 9256ACF21C3345D085A743D002B28E9F27A5A5FBA19D9CFD0E886557C202E86D + 7ACFA4190E42A751CF1B9E0AF14FF75FCC0091548F760005673B19213483FD30 + 9A7F0F19DE1FF172D92F10C638D157F33AF71D08A713E186F796C94A904EA70B + 4B13E282017B8E4A494969F6CC6534B2EFC0DC4E0CA24842DD8948C3FB17E5FF + 428180AAAFDB5821A83A313AACC2B4E51AABF08C015C947F279C0E02E3860EFC + 56B99F55F8A802FC11F14BAC484D70A1B1E220ABF05107F8D787E2067C5591C3 + 1FE04C49366E1B173080B7E47EC51B60A1D57F8DB184DD660884BB0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E24944415478DAD5D87F4C94 + 751C07F0F7752048E2A52E9CA6C5660CA3265BCDD26CCD35D69C9A99D952D932 + FA81882E10A96642D48CB12814A770FC6A5463A31F2E34E47206826B12458CD2 + 51C87108060792701C77DC8FE7EE9EA7BB87DD79DC3DCFC3DDF3E3269FBFEE3E + CFED7B9FD7F773DFE7F9808CA228CCE590F902643219AF85B2CA9B45D989D8A5 + 0AECDB92888870F9AC85B86A17155094BA5130A0B6A51BB7F5E680107725A0AE + 550D0BE108087157029AFEBC8949933520842400C24E0A02746A466134133310 + 6F6C7A0C0B22E7F915262AE090B2893A9EF69C60806678C2593C3103A11D3322 + 6D6BA21F421280899806BCA7BC10F41A85FB3761D26C876ED2E88718FC4F8FF4 + 6D8FCF40880AC828F9992A4E4FF200F886DD6E83C9266344F46975C8497E5A1A + C081E206EA74C666C11DB8EE2C52D5DA8371A3D5EFBAD56C4249E61669013A93 + 9DF7EE7B47A7FA167EEDBA0983E5CE7A4683217480DCCA8BA240766C4C847A68 + 1C2449A24B33241D60FFF17AAAF4D056D13AE01D561B898191717CA5FA03CAAC + 17420310AB03C7DE7EDEF3FA68F985C000620D66CB972C4072D21AE793F41E51 + 30474A1B50FEEE766EC0E18A163A21D660D6DEAD0561B5F05E23E7F524CFEB0F + AB1A5099BD237400F760E67A92BA3A2134724A7FC4171FBC123A806B301B9D30 + 21A7A60D24719FE0F5BC234A3182AE5369324E801883D9B8D18283CA16AC8E7B + 16CB1F58E1B9362FCCFF5CC87D86CE7039FBD9F9E1EC39DCF87A3B338072DE73 + C51CCC3A6E685074462D2A8215905576894E883D98898DE004B89E7A520C6662 + 22580199A58D94DD4640AAC14C6719C3E5AB06C10856C0C1932A3A21E560366A + 1C158C080A20C560D674AD031DFF2CC6DAA73640A150048DE004B8BE40CAC1AC + B3578B772A1BB074F1063C9290E0F7994010F5F5F5CC80F413E7E9845483D9F8 + E414B6E5D76251F43AC4C5AFA6F3610C7799D9109C00D2E14059F68BA2776064 + C2889D05DFD0C5C7AE8A437898DC732D58042B20EDF3731429235171F8258CE8 + 093AF7C9978D828B27EC565CE9BFE529DE1D7C11AC80D4A23A8A740E60554776 + 7A00424337659AB1F3BEC107A1529D6706BC5570864E78038474C0B5F3CD6A2D + 7D60998AE78B080A2074E7A3A39EC48A871E4664849CF3F3BE08BD5ECF7A8BE5 + 04389C234075EE6E411D70EFFC12C57ABA7877048A505FEFC6D0603F121E5DC3 + F8B06305A41CABA5132EC0C098157C426F3662F7A7DF7B76DE376643F46BD4D0 + 19DA7062DF7AA417FF85F8B867FC109C0087DD798873F760586FA3739FD53405 + BDF38B16AEC383B1ECBF793684BBF8CB057B707FB442D6DED74BEDCABFE28768 + BCA86206BC9657337D06BC00C1C4E68FAA71EFFCB558B67215E71F244C08DFE2 + DD79260427C075062AF3F6423B317D068A6B2F050CF8E9DA2862629E40CCB295 + F4FB40116CC5B3215801C947ABE984372098E8D6F623E3745B508891C13ECEE2 + 99107F775D0D1C104C075CA1B3EAD0D6630B083138D00B83E9F7598BF746BC9A + FF0BE4610EF494BDC90C70D8ED50E6A5386FA3C19F813B9D1840B692BB13C116 + EF0EA385A01C0E120BA322FC01BBDEAFA413DE8092EF9A7921B83AC1B778EF60 + FCBF10134048307562F85F0DC6F4ADF8AD682FEFE24306F04538EC04A6CCED88 + 8F225157788077F12105782322E75B5095F9324E569CC5B785A9D2014EE5A6E0 + B6413C806F7C5C5C232D201431A701428B6705CCB5F81F0E9785DDEC297D6800 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005034944415478DAD5D87F4C94 + 751C07F0F7752048E2692D9CA5C5660CA3265BCDD26CCD35562ECDCCAC545A86 + 0502B689483F5488312316859C337EE3C8C6C4B48586DCCCF8A14B84A2CD925D + F14310088E3381E3B8E37E71DCD3F33CEEAEE3EE1EEE79EEF91ED3CF3F1CCF1D + CFDEAFCFE79EE73E9C84A228DCCD2571054824129F4E945AD248A413E18B64D8 + B53E1A418152AF4198EC440179096B4503AA2EB663586BE485B82301D557BA60 + B24CF142DC9180FA3FFA316E30F342F80560B1DA4401AE76FF0BBDD1320DB173 + DD1398173CC72D1851C0DEA27AEA70E20BA201DD43637478CB34846A448FC40D + D16E08BF000C96DB808F8ACE0B3E476ED23A8C1BADD08CEBDD1003B7B448DEF8 + E4340451C09E829F2979728C03E06B59AD93304C4A3C227A541AA4C73EEB1FC0 + 6E792DF5F59E97454FA0830EA9B8D28951BDD9ED79B3D1808294F5FE05680C56 + 9FBBEF5C57BB6EA259D90F9DE9FFF3E975BAD90364945D2002D9BC361A5D83A3 + B0D96C50760FFA0F9074B8862ADCBB81D8049CCB3C69439F7A14C715BFA328F5 + 157E0052BB0D4577CE6236F9FCF787E25F743C3E58725E1880D46EC3DCC76363 + 56D09FA8F7883AD7FEC25A947CB86966C0BED28B8E0324779BD676954F93487F + 37C6F1F8D3F25A94A56DF60E6082D33F89009C771BFB247CADF4C21F71ECC01B + C200625783CBED03889737C0665920BA19CE15225343793451C209482D6E0089 + DDA6AD7F186F7EAEC0F288E7F1E0434B1CC7E704B85F0F5297A53350CA7DCDFC + 70E62C6E7CBBC93B80C46E73B943894F4ADB1019F11C310427800ECE2E652985 + 7520B9DB904678057C704401D2BB8DC634824BD77444DE4E9C00BAF3EC566907 + 90DE6DBA875544109C003A38BBD3B80248EE368DCA369C68508B42780524E79F + 833F779B53CDCDC83FA1C1CA67D640269309460806909A00B3DB8C8E4F606376 + 151686AEC26351516EAFE183A8A9A9F10CA083B35B65E25767519CF62AF109A8 + C7F4D89273920D1F11B99C3D16E0E12EE30DE1159090578DD27DAF41ADB5B0C7 + 3FFBA64E74788BD58CA6DE9B6CF8F06511080C903A9E138AE004D09DA798CEBF + 9FF33DCAF76F7100C49666C2E0E83C13DE5EBE22380174E729A6F3AE00311360 + 3ADFD8A5C2A2FBD64C0B2F06A1509CF30CA083534C705213E0EABC58845740DC + A12A54646C1335017BE7EF97ADC692471E45709074C6D7BB22B45A2DE72D9637 + A06FC40C5F4A6BD463DB17A7111AF2341BDE5E7C115D1DED181CE845D4E32B3C + 7ED87102E8E01413FC9DCC4A94676CC79076923DFE6565BDCF9D772D6F88DEEE + 2E68742DC8DFB51AC9F23F3D2E8082017C6B54A7C7DB79A771EFDC9578389CFB + 3DCF85B087BF94B31D0F84CA24AD3DD7A9ADD94D6E88BA0B0ACF003A38C5048F + CB3C8EB2CC1D508DDDBE06E4550DBC003FFD7D030BE7AFC2E2A5CB66FC87C413 + C235BCFDB827846000DF7AE9C04984853D85B0C54BD9DFF922B8C273213801B1 + 072B2826787C966F13D0983568E99C1484500FF4CC18DE13E22FE5B599013B33 + 8EA128338EBE8D0ABB06986A57F521ADA8851762A0EF3A7486DFBC867746BC95 + FD0BA40153E82C7E8F3FA0E054A320049F49080D6F2FBDC9424D4DD9303F24C8 + 1DB0F5E3328A099E9455E1F304F84C82097F6BAC09BFE6ED1014DEB93C7E2F44 + 12C08518FAA71B13C6564486D8509DBBDBB76F93670BE08A98B25AD8F0E529AF + E348E9197C979BE03FC0D18C380CEBC4039C11C1734D6CF80521F39025AFF42F + 6036CA2F00929DF754623BEF15E0B7E44EE537C0DD56FF01AB6EAEDD4B1D1887 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005234944415478DAD5D87D5014 + 751807F0EF752046E0414E389A1633C6605432D5589A4DC314D338696966934A + 935181844D22220E0A310D194581A0C1F1D648C5449905065C8CF162D3801035 + 9A0D869C474070E00B1CC79D77DC0BB7DD9EB32BECDD72BBB77BA9CF5FCBFEB8 + E5F93CCFEEFE1E4E4210046EE59030011289C4A30B2597B4885289D005326C5F + 1B093F5FA9DB44C8DC4505E4C6470906549DECC615AD9113E2A60454B7293169 + 9EE284B829014D67063061307142780560B6DA04014EAB2E416F34CF40BCB1E6 + 4104CC9DE39498A8805DF226222FE169C100D5F0B83D79F30C847A548F847591 + 4E08AF000CE66B80547903EF6BE4BCBD0613462B34137A27C4E0652D125F7864 + 064254C0CEC29F89FCC4681AE06958AD16182C1297885EB506E9314F7807B023 + BF9EF86CE773823B70DE9EA4A2AD07637A93D3BAC9684061D25AEF023406ABC7 + D59F1EA7951771AA6B00BAC9EBD7D3EB74FF1F20A3EC8428908D5191500E8DC1 + 66B3A14B35C40F20D678B0687E0062A297DBDFE7B779F47993C586FE91317CA1 + F81DF2E4E7F901C41A0F3ABBD5309B26797F362BEE59FA787F49C38D0150E301 + F93E17D289B4A27A94ECD9303B6077E9C91927C41E0FF87622FDF568FAF8BDF2 + 7A94A56C740FA092B61FC31BE301D9894D510FC1CF87DF0B23BDE8477CBEEF65 + EE80E4E266081D0F26CD163CFC6E156CE62041456086BF6C045D8713249C0042 + 36A70FE39E710096853D8545772FA6CFCFF1717E0EA48CA1D357CAFEACFC5073 + 1CFF7CB9811D40563DB5B419628C071D2A25E2723B101EF6A468085680BDEAF4 + 54995CD800B1C6838AC636D4B58F8AD609B7003269326131C78363A7FEC04755 + 7F8B826005241535D253251320C678A03169D0DE63118C6005BC53A0A0A7CA94 + 42058A76AD13AD03549CE957097E26DC02C8A4C9AD7B3A40AC018D1C0F9ACF9D + 45CAA101AC787C356432196F042700B97517A7AC17BD0323E3F68D2CFB1B0407 + AEC4FD11114EEB5C10B5B5B5AE018907EB08AAEA7BE5B528DDFD2246B466C7DA + 07158D8293375B4D68EDBBE8483E2C7C99E39C8F8BB78C3B0427C09E821A94A7 + 6DA201424373D540573E7469187C7DA4F41A5F042B20E1D3E30475DB3001423A + 4056BE45A9C6823B573B92A7C253042B203EB79AA06E1B727812A303CCCA33C3 + 13844251E71AF056F631824A3AEDD0F73892B1455007D82A2F14C10BD03F6A82 + 27A135EAB1E5E3EF10E8FF1816DF7B1FE6FA4967FD7D2642ABD5B2BE62390152 + F38EA23C632B86B516C7DA27954DBC2B3F5FB6CA913C155C11CAF3DD181AEC43 + C403CB5D6E76AC80D8AC2A82BA6D9800AE31A6D3E3D5DCEB9567863B449F7D7A + D5E8DA7170FB2A24E6FFE972C7760B206F9B7D795FA32C731BD4E3D79E81FCAA + 66CE950F9EB712F784B2DFF36C082AF95FB2B7E2AE4099A4B3F702B1F940AB13 + A2F184C235E0B5CC4A82AA3A13C025D66755E08EDB5760E192A5B3FE43E20AC1 + 4C9E3AEF0AE111804B077EFAEB1242421E45C8C2258E9FB922D8926743B00262 + F61F21A8A4D373BF823C33D6FE3C707F06BAD5FD4891B7F3428C0CF6CE9ABC2B + C4B9AEB3FC0185475B3821A8999F0B62B0FF027486DFDC263F1DF1CA815F21F5 + 99424FF19BE277804F27C8E42F8FB7A223771BA7E4A9D04F9A89A9291BE6F9FB + 390336EF2D23A8A4DFCFAFF418E00E41553EDCDF86EA9C1D1E7DA3ECF27B2131 + 016C88E17F55B86AEC4479D24B2828ADC1B739F1DE031CCE88C5159DE7002662 + CA6AA6930FF20F70FC0DAF02C40A1DA147F758B07D16D62132488A39F0A5D7BC + 06F05608A93A278018B7CD0D05782DF369E135C0AD16FF010536EADD1F96088D + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005264944415478DAD5D87D4C94 + 051C07F0EF75BC49E0492E9CA5C5A60CA326B36669B6E61A6B96546636549A46 + 2512B64440190AB1668E45F1A6F14EB38C22B504436E64BCD81A04D1A6B96108 + 1C02C181091CC79D07F7FA7477EEB99E7B79EE9EB79BF8FBEB9E7B79F87D7EBF + 1FCFEFB9131104817B39448E009148C4E94429E5AD8254226C89047B3747C1DF + 57EC31114BEE8202F21236F206D45CEAC184729611625E026ADBFB30A7333242 + CC4B40F39561CC68B48C105E01E80C265E80CBB27FA19ED5D921DED9F4048202 + FC9C12131470A0B499C84F7C81374036366D4E5E6787904FAA911813E584F00A + 40A3BB033854DAC8FA1CB9EF6FC2CCAC018A19B51362E4961249AF3E69871014 + B0BFF817A23029DA06E01A06831E1ABDC8256240AE4066DCB3DE01EC2B6C20BE + D8FF32EF0E5C3727296DEFC5945AEBF4BA765683E2E4CDDE05283406CED5A7C6 + E5BE9BF8BD7B18AAB9FFCFA756A9D80384DAB084C9049D768EF5E7B66E8C42DF + E8144CE6CF77CB46B90184DAB096AB495CF46AF375FD3E569FD5EA4D181A9FC2 + D7D23F519AF2CADD01901BB6AB47CEAA1347F7BC687B7CA4BCF1EE01A81B966B + 27324A1A507E708B7B406AC525A799F7C68665DA89CCB7A36D8F3FAA6A4065DA + 56CF006AC553CA5AE0AD0D6BB9AEC746AF41903FB34E6496FC842F0FBFC90DC0 + F5FA6ED0EBD1D23F01BD6631AF023846A0641CDD2712451E01C9254DE0B3612D + 9B75CD87355815FE3C1E7A7899ED793F1FE7AA8B1D6E3A7DC5F49D3957771E37 + 4E6DA10790239352DC08BE1B36F6A59588CFED4044F87382216801E691B1BBAB + 24017C37EC952119F6E4750A86F008A0569C0AC8AABCC819A1D02AD0D1AB1764 + 9C6801E699B7BBAB4C2B96A2E4408C60F73842758216F04191D4EEAED211C0A7 + 03D44E74F61A79213C02C8842DDBAF2CED35C13A4046CBB5AB483B3E8CB5CF6C + 804422618D600C482FAD4745EAEB1857EAACC79F7CD5C43B799D418BB6C19B08 + 095E87C722239D5E6782A8AFAF770D482AB8405047E660511DAA32B6D9007C43 + 715B836D39DF5B930F8F58657DCEC7C555C6138233804F072C956FED9363C903 + 1B10B6221CBE3E62DB6B6C11B480C4CFCF13D49917AA03D4CA5B9227832B8216 + 9090574B50673EE3F88F3899B58357071C2BEF185C1052E905D780F7727E20A8 + 1527014393CE5FB2998472568D1D9F9E75AA3C5F0463C0A1FC33A8CADA8931A5 + DE7AFC597533EBCA2F96ACC7B2475722C05FECF6FD8E08A552497B89E50C601A + 532A35DECA3B8BE0C0A7ADC993C114D177BD07A32383887C7CB5CB65470B883F + 5A4350673E35F75B5466EF867CFACE71614D0BEBCA3B8627C4A0AC0F0A55070A + F6AE4752E15F2E37B6470039F387F3BFB303780AA57A06BB0ACEE1FE056BF148 + 18FDCCD321C8E47FCDD989078325A2AE817E62FBB1362744D345A96BC0AEEC6A + 823A328E004F1DF8F9EF1B0859B80E4B97AF70FB85C415C23179F2795708C680 + F4DC5328CD8E378F14B3FF8198ACD3080D7D0AA14B975B8F9922E892A743D002 + E28E9C24A815CFCCFBC60E507CA6D56D42E43D3F1BC4F8C880DBE45D21AE755F + E50660123DF221A4957630428C0CF5E3D6741B3AF376BB4D9E8A883DF61BC43E + 46F496BDEB1D005384257995E60F44049A509BBB8FF1AFCAEA391D61349AB030 + D0DF19B03DBD92A026FC71613527802704997C55F21B28AAA8C3E9DC04D63F8B + BBFC5DC815E044563C2654EC017488B17F64B83DDB654D7E516090F56F7815C0 + 3754841A3D53215684D1A0C3A4B21D518BC4F083AFED3D5E03081564270216CC + B19EF97901A006D791610CE033F3F302E0B5CC29E135C0BD16FF01FB9EF7DD93 + F61D700000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000054C4944415478DAD5D87D5014 + 751807F0EF75BC079CC884A36939630C4629538DA5D9384CC334965A6634BED0 + 685420613322A08C0A318D1913C5DB181C6F8DA914A58D60C8450662E3449835 + 5A0D852024060712DC79DC79DC1BB7DD9E73D7DDEE2DFB727B233E7FDDEEBD3D + 9FDFF37B7EBFDD95100481BB39245480442211F4439955EDA28CC4C239326C5F + 1387407F296B2264EEA2028A52E3BD06D49FEBC6986692136246021A3A7A6130 + 4D7142CC4840DBE5EB98D01B39217C023059AC5E012EF58D4237697243BCB1FA + 51840605D0121315B04BDE4614A73DEB35A06FF8A62D79931B4239AE43DADA38 + 1AC22700BDE936608FBC85F76F14BEBD1A139316A8277434C4E0BF1AA4BFF8B8 + 1B4254C0CEF2EF89D2F404274068582C66E8CD128F887EA51AB9494FFB06B0A3 + B499F864E70B5E57E08A2D4945470F543A23ED7DE3A41EE5196BF803C4DAA4E6 + 458622E5F925988294F5B3977A6FE0A7AEEBD01A2CCE733AAD563840AC4DEA62 + B71226A381F37736C4C7A1774805ABD58AAEBEA13B0B706C52E4AA9294B0D4B6 + BEDFC3E97B46B31503232A1C51FC0279E6BA3B0770DDA4B856E240CA73CED7FB + AB5ABC0388BD499195488C5F82F060F69E20636F4533AA76AF9F1E90557D8ED6 + B0846DFEF96A9362AB44EEEB09CED7EFD636A3267B033B803A5D322BCFC2979B + 14B9BE6F4C780CA181D3F7446EC537F874DFABFC011915AD10BA499149AFCA39 + 06B33E92F777A78B10D908BA0EA5493801DE295340E826452E7FDF758D6171F4 + 2ACCBB7FBEF37C801F7DB4A5948B4E7F2973454E369EC2DF47D733035CE77B66 + 798B1DA0D65B20242E0FF421A5E80262A29F110DC108B0CD77DA552515905773 + 8637426D54A3B3C72C5A255801AED3859C0615BBD60AAE802F2AC108B0352CED + AA32BB5CE106105201B12BC108B0352CEDAAD26236A332FB25AF2B2066255801 + AEC9E6C89B509DF532463426FBF1FB9FB57A8D18D18FE0D7BF6663D9532B2193 + C978233803C8E962D0EB51BB37D109F036D4B7F4482CF8121161CBF1706C2CED + 7D2E88A6A626CF80F492D304B561779735BA01BCA980C962447BAF127366AF44 + 74CC62FB393F0FAB0C1B823340CC0AB88EFCC245D1F0F7FBFF228E2F821190F6 + F12982DAB099452770386FB35715701D7932794708453002528B1A086AC3DE9A + D0D80103E3F4FB542EA199D461F387279C234F0D210885E2B467C05B055F13D4 + E9B2A7F8386AF3B6605863B61F7F54D7E6F5C87B8BE00C202B30A152B901B886 + 4AABC36BB6E91716F224E63FF8108202A7BF71A122341A0DE312CBAB0259859F + A3267F1B94376F9F2BAD3FCB79E423652BECC93B822BA2F74A378606AF21F691 + A51E373B4640F2817A82DAB0EAD11B6E00B6D0E826B0B5E4A473E4A9C186B8D6 + D70BB5B61325DB5720BDF4378F3B362BC0B561F7157FC1B9028E918F085F8E07 + 1632CF79268423F91F0AB6E0BE3099E462FF5562D3C11F6988D6330ACF80ADF9 + 7504B561C7944390E727DBAAC2DE03891F1CC1BDC1CB3077C1A2696F483C21A8 + C93BCE7B42700690915378D40D507EBC9D31A96FFF184554D413889ABBC07ECC + 15C1943C13821190B4FF30419D2E7C2AD0AD1C40B6BC93176264B01FC3E3E771 + A1689BC7E43D21FEECFA9D1B808CDCA2639C017C11830357A1D5FF8C98102B1A + 0A77B03E5926111B0F9E87D46F0A3D956F8A5F013E0847F2B519AFA0ACBA115F + 15A6727A34AE339888A9292BC24302E9804D39350435D9F74AEB70282F19635A + 7E1BD97408D7E4678584DAFF832BC0111E9F0B510164C39215101A5A42876E55 + 841B62F89F3E8C6B3A10374B8A00F83B3FEB138018E15A89298BC99E3C5BC3CE + 28802B2228D8C0B9616714C03584CC775E00210D3BA3003ECBDC257C06B8DBE2 + 3FA4EA2AEC2FFE638B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000055C4944415478DAD5D87D6C13 + 751807F06FEDDE986C058D101474092EC3A92C81A020C6104314DD50448CC008 + 88BCCD69C2E83608B2490C12E2B46C73EC7D06C52902CA8B83067937080E3101 + 4D86656383E1D68D97B5EB5AFADE9EBD2E57DBBBDFB577ED55C6F3577BDD75CF + E7F7FCEEDB5E651445E15E2E191B2093C9C27A2365ED4949562265B402AB3233 + 101F2B0FD908DDBBA400D5CA191103769ED2E0B6C12208312401FBCEB6C16A77 + 09420C49C0F18BD73160B6094244056077BA23025C68BF0993C51E807877D653 + 189E10C7694C52C09AEAE3D4D69C172306B4F7F47B9AB70720B47D26E4646570 + 10510198ED8380B5D58745BF47C97BB3306071423F60E220BA6E1990FBDAA400 + 84A480D59547A9B2DC993E40B8E5743A6076C888880EAD1E45D9CF8507902AE7 + 29B71B769B957702973D4DAACFB64267B2715EB759CCA8CCCB0C1F2055CED37B + 7AC52B4FC30539EFDF5D68BB81DF5AAEC36875FA8E998CC6BB0F6072FEBC46CB + 3B09FF9A3B23036DDD3AB83D936B69EFBEFB00FF9CA727913D73A227E7EF0B7A + 8ECDE14667AF0E5FABFF40B572766400A9733ED42436AD78C9F77843EDE1F001 + D1CC793A5D16BD3C09C9C3E441CF5D5F7508B585738203F2EB4E11D3864E8F68 + E6FCB94B5D703AEC9C738ADE99E97BFC51C321D417CC0D0D20EDF5BCAA63F83F + 727E59E664DE738BAA7EC2971FBE151EE0837235B6AD7E55F4049C0E078E6AF4 + 70DB4744046757A2A2172D153932D100BDD929F05F0C169D20D3F3BFC384D417 + F0F023637DC7E362B8C923677DE98C95F3A7D3DEFD077075C71C7E00FB625556 + 1E0E0014D71F118CD0DBF4686E75488AE005286B4E10D326AF428DAA3559A227 + C0D4C5CE76AC509D435AEAF392204202D87B9DFE24F4078899403426C10BF0A4 + 0DF15BA5F28B26D414BC1EF604A49E042FC073B152A4B4B13B6DA8CB7F03BD86 + C1ACFEE4AB636123A4984448007BA50BCBF7A361FD3C1F20D2FAF5720B0AB775 + 62CAB3D3A150284423040398BD6E359B0300914C809EE6C9362D463F301D4FA4 + A7735E1782686A6A2203724B0F52A4B4916A02FA3B66CCDBF23D46264D456ADA + 04EFB11842CA844208063013B83360C0F6E205114DC07FE553C6A72236E6BF2F + 6F6211BC809CCF0F50A4B451AAF678019D7DDC5B3D2165B098B0E0D33DDE95A7 + 9B672A5C042F60A56A1F454A9B019D0E0DC50BD16370789F7FD6783CEC956757 + 3808B5FA2019B07CCB0F1469AFAFDDBA3B0020B474461316A9B82B1F29423080 + 9980FEE60DD46F5C026DFFE0F1B29D2704AFFC838A6918FBD8E348880F7EC3C2 + 46180C06DE88153D81FC926F0300A1CA601AC0E2D2BD484A7CC6DB3C5342116D + 9735E8EEBA86F42727123FEC78014B37EDA44869236602EC95675728C4B5F636 + E88DCD285D350DB9657F12BF768404B0D3665DC90E546F5CEA8105BF06FACD26 + 2C2FFB11F70F9B824753F8F73C1F8269FE972D0BF150924276BEE30A357FF319 + 0EE2D8113519B0786323454A9BDBDAEE0040E5EE93C4067EFEFB2A46264FC598 + 71E383DE909010ECE699E324846080D8096415EFC2A85193316ACC38EF73A108 + BAF99EBED338A75A12D03C1F821790BD613B45DAEBEC09F09546DB8982EA6651 + 88DEAE0EEFCAA725BAB1AFE47DDE5F97FD11975AFE120660AA48F58D20805844 + 57E71518CDBFA321EF4D94D7EDC7AE9295417F1EA7116F6F3E0D798C0BAD35CB + C44DA0A278296E1B857D900941F8373F2271383E2E6B0C09A0CB64B5532E971B + C989F15CC0FC75F51469A5E937175B46CA048D6E241141377FABFF0C3246C811 + 8758DF3942004C117F176203F8D2466831775FFE889E7FDA71C7729E9336624B + 10408AF2DF4E2EA71D7D86B3BC69332401FE888461D69069332401FE25F4620D + 1B20266D8624206A9DFB55D400F75AFD0B96823FEC4DF7662A0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000055F4944415478DAD5D87D6C13 + 751807F06FE9C6C604CA208EA0A04B7019A2B00483821842CC5494A988330223 + 200A634E13C6365C90CDC5202E4C2B5B067B3708CC0C44611368903086212088 + 0624198E950D065B57606BD797F5BD3DD72E57AEBDFBB5D7F61ACBF35777D7DE + 9ECFEFE9EF7B6D451445E1612E91374024120575A1DC9A5641562271B2041B96 + A420265AECB71167EF8202A4998B4206349E6947BFC6C80B11918023E7E53059 + ECBC10110968B9721B5A839917222C008BCD1112E072E73DE88D160FC4878B9F + C5D8D8D1ACC604056CAA6AA1BECB7A39644067DFE070F3160F8462408FACB414 + 16222C00836504F059D58980AF51FAF162688D36A8B57A16A2E7BE06D96FCDF1 + 40040C10322A57BD320B3151A358E76C362B0C561127A24BA14661C68BA10184 + 8ACA4BED0A58CC26D604AE0F37293BDF0195DECC7A9DD968C0EE9C25FF3F808E + 4AE77B7BFDEBB3608798F59CCBF2BBF8A3ED3674269BFB985EA78B0C00332AB9 + 26C1AC658B5220EF55C1E170A0ADB3571880D051E99C4446EAECE1BC1FC5F97C + B3D5816EA50A7B657FA12AF7CDE001E18C4AD224B6AD7FD5FD786BCD096100E1 + 8A4A67CAAC7A6D0EC68F1173BE764BE571D46C5EEA1B90577B861895769B0D65 + D9A96E40B0E52B2A2F5EEB81CD6A713FB7F08354F7E32FEA8FA32E7F997F0069 + A37E5A2EC3AE8D6F843C017F51C96C9A598595BFE2FBCFDF0B1DA036D8C0B79C + 1B7061C17E580D9302C6FAAA3889126D1559A29000457527FDFE2367FCFDD6D6 + 8F19490BF1D8E353DDC74773DC85C55E1F3AA3C5A388D73DDCD48C9BFB969201 + 5C4993532143E5A6B48026E0AC2BDD9D582FBD88E4A49704431001B9D5A78951 + E90DE03301BAD466352E7458059B845F00D746B559ADA8CE7F3BE00984631244 + 404EE5298A14953915CDA8CD7B074ACD48CC7DF5C3A98011424D820818DEA814 + 292A4D0603EAB7A4BB01C1D6D53B37915D16DA24FC02B8DE269BCB9B3C00C14C + 802EA54189BFFF9D88B92F2C8044220918C11BC0DCA8424D403D64407AC901C4 + 8F9B87A767CE649DE783387AF42837207BE7318A1495B9D243D853B422A40958 + 6C66B4CA15983C7101929267B88E4571A48C3F046F007302435A8D0BD03DC0FE + 08C0A734463D56EC38E45AF9C4E949888E7AF0A12D50041190F56D33458ACA8D + 3B0EA0BE6825FA3456D7DFDF34B404B5F2CEE6E90A164104644A8F50A4A8D4AA + 541E00BEA5D2E9B14AFA60E5BD2B18844C768C1BB0AEE4678AB451F34A7F445D + F11A280647CE95359E0E7AE54345F0063027A0BE77D703E0AF347A2D56EF3C8C + 7171CF63EA934F213646ECF3F9DE088D46438CD8B04F805EF94992F9AEE6E9E2 + 8B905F6F476FCF2DCC7C6636E7CD8E0858BBAD91224565BFA21755C56B87CFF9 + DE0383063DD695FDE25E79EFF287B8D529875A77013B37CC1FBE63FFC379C7F6 + 0BE08ACA82D27D1E80DD3FB512573E7EFC3C3C91487ECF931074F3BF97ACC4A3 + E324A24B5D37A8E5DBCFB110A74ECAB801AB8B1B285254F29940FAD77BF1C898 + B998326DBACF2F245C0867F37D03677151BAC6D53C7D9C0BC11BE06B025C9556 + 74100909CF2161CA34D7DF7C11F4CA27C73970A4F413D64F23DE08222063EB1E + 8AB451F94CA05DD18DFCAA0B0121943D5DAEE6EB73DE45796D130E966672FEB6 + C3445C6BBBCA0FC0AC42E97E5414AD45BFCEF7260E04D1D37D033AC39FAEE627 + C48DC597650D44008D787FFB5988A3ECE8A8FE28F009F02D1DA547BB2ADE27C2 + D9FCFDC173489920C66844BB8FFB02384B6FB25076BB03E3E362D880E5057514 + 9FA8E453BE2641AF3C9D36C15C9FF377216F0057540652F4574826A2EF4E2786 + 8C97426A9E374088624EC26EB36040739E1595110D602262C798885119D10066 + F94B9A90017CA232A20161EB9C5161033C6CF51F550A41EC716B142A00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005604944415478DAD5D87F4C94 + 751C07F0F771FC92A4C35A384BCBCD184619AD4665B4E69A952515992D7F4DA5 + 04899A2060CE84583373521730E237CD348ACC020CBD3905B13909A24D73E110 + 0405E140843BEE8707F7837BBA3B764F77CF3DBFEE9E87069FBFEE9EE7B9679F + D7F7F33CEF7BEE240441603697840A9048243E9D28BDAC499495583C5F86EDAB + A3111420E56CC4DEBBA80079D20AC180EA731D18D18CF342CC48406D7317264C + 93BC103312D078A90F5A839117625A00268B5510E062F730F4E32637C47BAB1E + C3DCE0408FC64405EC2C6924BE4E7E5130A07B70CCD6BCC90DA11CD523392EDA + 03E11340ACB421AC56988C136EDB723F5805EDB8056AADDE03D17F5B8394379E + 7443F80C10336D36BDB40C41FE7EE4768BC50C8359428BE851AA91B5F1B99901 + 70A64D5B87929C847D02576D4D2A9A3BA1D21B3D3E631C37A0286DF5CC00B8A6 + 8DFD1A4F7C7519262125F75FECBA853FDAFBA09BB090DBF43A9D7800B1D3C675 + 12AEB5664534BA0654B0DAEE99F6EE01E180E94C9BDE612DB6BEF2842DF7FDDC + 8E359AADE81D52E1B0E22F94A4BF2E0EC0609A027C5C72CAEBE6D9D2A6F54A3F + 2C661379ECBEC497C9D77BCB4E0907A4169D21F2535692005F8B2B6D52E2633C + 3EB3A7F824CA76C5B30332CACFB1E6BC3D09BE497D4DF004B8D2C659595B5792 + AF3FAD3C898ACC35DC00B694F9A840E100A80D1688514C69E3DA388929FE0DDF + 7EF28EB880EC8AD3AC0D5ACC669CE950C36A0A1305ECAC10D910DA0B93255E03 + 52F24EA078671CEF09D8132436E3472C8D7801F73FB090DC1EE8EFE771AC94F2 + D01920F5633C6F4DDD715C3F12CF0C608AC9B442851B806B02F6521BD568E934 + 8B8A6004A4979E65CDF91DF9F528CD7CD3EB7BE0526F3712E5AD888C785E1404 + 278029654C1623CA33DEC290662AAB3FFFAE813742CC493002D28A1B58737E87 + BC06957BD692006FEBF2CDEB48C9173E0946802D6508B69C9F3018DC00DE4C40 + CC49700298AEF15D05758226E0ACC6F67F9055DA879867622193C9BC46F00650 + 53E68E568343D9EB054DC07E1F35752931FF9E583C1215E5B19F0FA2BEBE9E1E + 60CB79822DE7D3E5C71C80DE51237C29CDB81EEB0F1EC3BCD0671111B9D4B1CD + 9F2665B810BC01D40968552A54666FC0A0C6EC78FF6555A34F2BBF78490402FC + FFFB01E32D821190FCD571822DE7530FFEE406E05B2A9D1E9BE4532B6F6FDE59 + BE22180149F25A822DE7D5C3B75091B305CAB1A9FDF9D567BD5E796AF9825028 + 4ED003B61DF885604B998CDC1FDC005CA5D16BB139AFC663E585227803844CC0 + B9F2F7CA9663E1430F2338480AB6A222341A0D63C4FA3C81B42F0EA32427C1B6 + 9FFD1E1833E8B12DFF5784863CED68DE597C115D573B30D07F03518F3E4EFB65 + C70848D8574DB0E5FC8872C00D50F47313E7CA538B0B71A3BB0B6A5D0BF2B62F + B73D76FC4DFBD8C10960CAF9DDB9475827E05CF9BBE6C4E0C1C5CCD73C13C2DE + FCE0E879B4CAB7E0BE5099A4ADE71AB16EFF050F44C369053D60734E15C196F3 + D409506BADED12B337BF60D112D61F247408E7CA478658519BFB21F9AD4587E0 + 0DF0760271D947111EFE14C2172C72BCE78B70365F99F6360ACAEB703437C9ED + D9818A60046CDC7B88604B19FB040AB31330A2A30774287B9159D2E21562A8BF + 876C3E2C642E3ECBAFF200501157DA2FF303502B4BFE3DB84A47E8D1A19AC70B + D1DF7B0DB7C72E203A4C8A400490DBE9004EC4BBFBCF43EA3F89CED2F7BD9F00 + DF723EF3B321ECCDEB0C7FE2F7031B1C372CDF73EB274CC4E4A4157787047902 + D6EDAE20F8E43C9F62BB9C7C6DDEB568FF17A202E8725EE824066F76E3CE789B + A0E67903C428D7494C5A4C18D53493392FE4BCFF1BC015113C67C223E76705C0 + B598625234005BCECF0AC0B475EE52D306986DF52F2D5648EC7B65C8ED000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_21_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000056A4944415478DAD5D87B6C53 + 751407F06FD7BD186079C41114940497212A4B24F8C210A2D3100145C4088C0C + 270FE7986C6C28C131A741244C2B25C0C61E06C119448431C716C4F1304404D1 + 8024C341296CB07505B796B6976E7DACD7DE2EBDB96DEFE3D7DE0BC2F9EFDEFE + 72733EBF73CFEFB455D1348D7B3954A100954A15D5830A2A8E2AB213634668F0 + EEF43424C4A9251361725714A05D3A553660D7B11674597B88107725A0F6841E + BDAE3E22C45D09387CF62A6C0E2711E2B6005C1EAF2CC019C30D503DAE20C43B + D31EC7A0C4F8B0C4A20628D9B00B5E7A0203E363D87B86CE9BBEE45D41086337 + 85EC196961085900A51AF6748B112E67AFFFBAF4BD69B0F57860B1516188F67F + ADC879F5C920C4FF0EE0362C538984D818783C6E38DC2A5EC465A3056B329EBB + 7B00DC86652AF149E664186E50683C711166CA19B6DED9E3C0D6FCE9CA01946E + 58E65DCF489FE03B756270467F1DBF375F85BDD7C3AEA7EC7665002BCA0FD35F + 65BF201BC0D7B0DC9E6062F6D434E83BCCF07ABD683674280B70B8FA011F961F + 8C3879B18665DEF545D327FA2BC184D3ED459BC98C1D8D7FA2BC60A67C40DED6 + 5F685D4E3A0B8836C41AF6D4F97678DC2EAC5DF232BBBEA8E2A0328065BA067A + 4BDE2BB22B70C1B7D3620DCB4D9E89D5650DA8F8609638A0B0F298E490621ECE + 002C0E8FD452A2106A5826D6BC9DCEDEFBB8BA01552B674B03A48EC8DC4D8D41 + 80E2AA438A40421B969BBC1F53F613BEFEE84DF9809C8D0750B662065105A81E + 0A2F16ED85DB315C116420923426346FCE56290210AB00B39B3F3777615CCA14 + 3CF0E028F67E7C6C4CD85A75C897CE38758CE073F7EDAFC3959DB384016267FC + 725D3DB6AD7C8DB807CEB619B0447B0AA929CF2B861004146C3B2239A47237D5 + A1B2F07598AC2EFFF567DF3449222C4E0B4E5E742B56094980D811D9EB70A07A + F51C16401AE7AE5D418E4E994A0802F2CB9A2487D472EDBE2000490594AE8420 + C077444A0EA9682BA064252401620D5AA0DD83EDC5F3A2AA40204C0E13FEFA67 + 18263D3D191A8D2662043180EF88BC65B3FA016DDDE15F0148C2EA9B0DF336EC + C1D0C1CFE0D1F1E3C33E2741D4D7D7F3037C673C2D35A4F2367C8FEAE2F9E8B4 + BAFDD75FD41C264EDEE571E2A8DE8811C3262325759CFF5E2CCF2923852006F0 + 55C06636070148C36CA7B040DBBFF363C6A6202E56CD7E1629421090FD651D2D + 35A472D77D8BAA928530DEECEF01DDAE2311ED3C937C20A2450802966A6B69A9 + 2165B9713D08201556CA86CC8DFBD89D0F8D68108D8D07F8018BD7FF484B1D91 + 85A5DF11574068E7E52288017C15E83276A0BC24CBB746BC076E3A282CD6EDC5 + E0A4A730EAE1479098A0165D1F8AB05AAD8247ACAC0AE47FBE2308B0F587A382 + 3B3F5CF3AC3FF9409022F4175AD0D1DE8AF18F4DE01D768280ACB5BB68A92125 + 5581D09D0F0D2944AB418FCEEEE3287F7F8A6F62FFCD3BB1250162436A55E94E + 414020F9810326E1A131C2EFBC108249DE623F89D4242F6A4B97A94E5FBE44CF + 5DF75B18A2E950233F20B3A486961A52621598E37BBD98E4478E1E2BFA83840F + 1148BE3AFF0D6CAADC8FDDA54BFD873E1F8218205481CDC559E8B287AF9951BC + 1BC9C913913C72B4FF9A14C14D7E48D2207CAAAB61017C08414046D1765AEA88 + 642A2014769A428B7968440853FB65FF3B9F36448D78C4B1F7B98050C4F9E673 + 648068A2C5D88ABC2D278910ED6D976077FC815FD7CFC7FD8335927F4A3188B7 + D61D873AB60F17B72D8AAE022411F8E122868834F94050BD2EBAAFCF8BFB9212 + C201735755D124438AAC126D5859CE5F896893E706EFFF42A100BE2125B7129D + D70CB8D5735A56F2C40025825B893E8F0BDDD61338A55D282BF93B0AE0221207 + F4B2434AEE33EF28801BA167BCE200A12175CF006E5BE69CB86D807B2DFE03C9 + 6143EC665BC2320000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_22_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005494944415478DAD5D87F4C94 + 751C07F0F771FC12A5A35A3853CB8D184A3FD86AF48BE6AC59B3D422B365E830 + D4884E1608943341D68C5C18794CF94D338D453F41429853109B45102D9B1B0E + 384140389080E37E78703F9FEE8EDDF5DCDDF3F07CEFEE39079FFF9E7B9E3DFB + BCBE9FCFF3FD3CF708288AC2420E81334020107874A38CB2165E5662D55211DE + DB1883A00021672296DC79051424AFF31A507DA90BE38A6922C4BC04D4B64A31 + A3331221E625A0F99F4128355A228457003E7B7EF7CB31F0F79B3DBED23B06F5 + B4CE01B16BC32358121CE89298D7003E7B7EC78B8F6271A01F7A47A6CCC9EB1C + 10B209355236C5B820E605C0D6F31D5D32E424AE85566F825CA976410CFDAB80 + F8D5C71D10F302E0DCF309CFAF819EF26344F4C9E4C8DEFE2CBF009DC1E415C0 + B9E707C694301A8C98546B5DAED54E6B5094BE911FC0BE9266EACB9417BC0630 + F5BC051113118EBFBB47A09A31D8AF55AB54FC0334BA59C04725E7DC4E3EFFFD + 0D504E1B18DBA5FDDA100C7A1DB6AC8B817478122693099DBDC3FC01D28A2E50 + 12F17A3BC0D33018F4D0E805AC3D2F8E8FB53ED803A39338D5F8174A3236F303 + D82B69A04EA4BDE27505BACD4936B6F6B0F6FCE1775FB21F1F2C3BC73F40AE31 + 105DCF1557A4B7F047E7A04BCFD301078A1B50F661FCDC80CCF24B4413D6B23A + 74404EC5795E20CE3D9FFDCE7AFBB943950DA8C8DAC20D20D9DFC5C7CEA278DF + 26DE2AE0B038B49E3FB4EBFF0A6417FF82AF3E7ED33700B60A18F47A5CE892C3 + A40BE31519221A45E7F11481C780942FEA509AF51A67052CAB1997F92D5647AE + C5FDCB57D87F0FB4BDBDD142E8F4D21920F463BD6FCD993ADC381DCF0EE01A50 + A9857528CF7C1DA30A9DF5F8D3AF9B58AF956BE568EBD1F38A600564945E249A + B0E2A335A83CB0D50EE08AAB376F402C694754E473BC2038015CFBFB8C46E300 + 98AB02BEA8042B20BDB88968C27E50E05E05F8AE042B20B5B09168C2DE562A70 + 32E76DB72AC0672538015CBB4B46C18F56C0C084169EC46FDD9DC82E1D44EC53 + 711089446E2388016CFBBB7272129539091851E8ADC747AB9A8993D719B46891 + CAB0F49E38AC898E76394F82A8AFAF6706980714453261D33EFFCE01401A932A + 357698AB7777E8D3888C5A6DFDCD9F6197E1421003D82A201FBB858ADC9D904D + CD3E0392EA8B6EADFCAA884804F80BEDE7DC45B002CC13962299B0A979DF3800 + B842A15622F1588D75E52DC9DBC253042B20B9A0962299B0EE54C079E59DC313 + 4463E35966C09E233F5124FB7BFA67A750929B64BE6EEE67604AA3C61EC9CF2E + 2BEF2D8218C0568171D9B003A0E88716D695BF57F40C563CF810828384982B9C + 110A8582758BF579056C2B1F1AF2A435795B9022A4DD5D181EEA47F4C38F310E + 3B5640D2E16A8A64C23A5780247952447FAF1472551B9607ABD1270F677CEDE0 + 04704DD8FDF9A71901B6E4172F8AC503ABD87B9E0D614BBE32FD0D14969F4196 + F9C5725BDEEF2E88A6F38DCC80C4DC2A8A64C25A2A703C2709E32A47C056736B + 59925FB63262CE3F244C087AF261214BF089A40ADFE7270B3AFAAE53CE0862C0 + 5C15608A8E890084873F81F0652BADC7A4084BF2231397111326442002ECE72D + 00EB7D9D10AC80ED074F52EE4E587AD8DE34DD418C0EF55957FED72309B82F54 + C4FA5D878EB8D679950CE04974C9FA9176A28D083134701D2ACD9F9CC9D3116F + E55D86D0DF889ED2DDFC57C09D4AB89BBC2DD4333ACA6834E1AE902057C0B6FD + 1514C98425ABC400B24A982BE169F2F460FC2EE40C609AB0DE5662E4662F6E4F + 7778953C31808FA057C268D06142D18AF6829D5E257F47017444F0A219448598 + 509BBFD7ABE4EF38801EB601E53300D3845D50009F654E0B9F01165AFC078D4E + 33ECF4F9FF0B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_23_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000054A4944415478DAD5D87B4C53 + 671806F0A7949B4C56A619C64D91CC111C5B46E6825B745988218B53B739DD32 + A78B0E758C8109886CC40992459911C76091ABB0381D097317D021C439101733 + 86E2E22263E32237855219B494969696D2B3B6E4D4B6E79CF66BCFC1C0F3173D + 3D34EFEF7BBFF67B5B11455198CB113902442291472F9452D220C84A842E92E0 + C30D91F0F311BB2CC45CBBA0809CB868DE808A2B6D18566A8910B31250D5D889 + 09FD1411823740C86DB3FBD54804F87AA1FEAF3B18D3E88810820084DC366644 + 4BCF10D45ABD1D62D7BA6730DFDF9751D8AC01D86E9B9895CB4CC5EBED10D211 + 35E237463210B30660BB6DCCC5AE5FF50403D1FF9F1209AFAFB4430806D01B8C + BC0037BB86182B1EFD5C080C9346BBEBDD5205D2B7AF160EB0AFA89EFA327E2D + 6F40D7E02863C59BDBA4107979D9DDA7D36A5090BC417880463F0DF8A4E8A2DB + C5677FB40E635A0314636A06E246870C3EDE62EBBD6A954A584052C1AF545E42 + 8C15E0690C8649682645AC88BF7B8711122C81D168446BD780B080C4BC1A2A3F + 693DEF0EB49BF6766D6307E46A1DE379F3B6497F3F067D32394ED7DE4051CA6B + C203141A03AF0ED0B9D9790F7FB4DE816AE2FEEB99B7CDE10F5EB1FC7DB0E4E2 + CC02324A2F0902D91C1D89CE01B975DBD08003853528F9789373C0FE935788C7 + 03EDB81A85FB360AD601DBE84C1FA1F4B639B46B1A70A8AC06A5A99B5D03480F + A784DC0B7600A13A40AFB839E66D4303D20B7FC6D79FBE2D1C20FE8BF3284E7D + C36907D45AD3A194760E467D9020383A0112195A4FC48B7801E272AA7072FF9B + 9029F596C747BEA963DC63DEC7BFB40E6345D8CB78ECF125D6EBBEDE5E8C7BC5 + 0E43A78F98790F9DCA73E7D17366133780E4744D385E89B2036F59015CB975B7 + 070979D7101EF69260084E404AF165E2F1C011C0D6013A0A9D024D1D938275C2 + 2580E4709AD068883A30139DE0042417D6118F0789C7CEE254C6BB441D10BA13 + 9C80BD5FD5128F07E3634A0BA06F440777D262EA4472FE755E9D700920399C92 + 8E7D87B28C6D18544E5A1E1F2FAF2746C83432FCF9EF0244BDB0061289C46D04 + 31C0D9E1342697DB01482357A9F15ECE0F7824F0453C1511C1789E04515D5DCD + 0E309DAE14E978B037EB5B9466EE847474FA3D905771D9E5FFE80D3A34744AB1 + 68C11A8485AFB05CF366F9947185200638EB8062E89E1DC05594EA31ECC8ADB4 + AC7CE8F230BB2F2BEE223801A6F18072351E78D201DB9537174FC7530427C034 + 1E50AEC6033AC3D2011465C69AEE75FE1E18D5A8B127EF27EBCA3BC613446DED + 0576C09EA33F52A48753F2E7A7ED0005DF3710AF3C5F0431804F07E8950F0C58 + 8525CB9E84BF9F18CEE288502A959C1FB133D20167C5D3214574B6B761A0BF17 + 114F3FCB7AD87102620F5750A4E3015707B88A2745F4767542A16A42EA96281C + 296F611D3B5C0248C683B4EC333891118B61D57D005DFC43F3A21012CABDE7B9 + 1074F165C95B1014301FA9B9C568972F648C1D75976AD9013B32CB29D2F1C0DC + 01C7348F4E60A16435162F5DEEF40B091BC25CFCE0C855440689E10B1FEBF554 + D374BC35EB773B0431C0DDAC4DAB4070F0F3085EBCD4F2981441AFFC6F47B7E1 + D14009E3A791E6EEDB942D8213B0FDE029CADDF1C036F4B8EC0E42D6DFEDB478 + 36C43FADB7C8009EA44DDA8BA4FC2622447FDF6DA834D75D166F8B7827EB2AC4 + DE53E828DE2D7C07DCE984BBC5D3514FE8A9A929231E0EF06302B6A6955224E3 + 015927FA905AC4DE094F8BB70DEBEF428E00B6F1806F2706EF76615CDBCCAB78 + 628010B1EDC494418F116523AEE5ECE455FC0305D822FCE74D203CC088AAEC44 + 5EC53F70806D3ECB2BC7D9ECB89903388E07730E306395DB64C600732DFF03AB + 3E08EC744E0AEE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_24_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005294944415478DAD5D87B4C13 + 071C07F06F29AF916165CB304CDC4890E07019098B9BD16531663138DDE6DC96 + 39CD34F8401E2620B21127C88C63461CDA459EC2C27424CC65833984F8007171 + 6328266E2EDD0AB5BC84820E5AFAA0A5CF5B5B53ECE3AE77D75E8D7CFFBBDEA5 + F97D7EBFF6EED7F20882C05C0ECF1DC0E3F17C7AA3BC9A4E4E3A11B74080DDEB + 921116C2A72DC4563BA780B2F4557E031AAF8A31A1D431427002E0B2F33BD626 + E3E24D29660C664608CE005C767E716C1466F4464688C70AD0DC25B117DD2F53 + 202531C605B13DF5453C191EEA51D86305E8F873182AAD9E14219BD420637DB2 + 07825380C164F10B704B7A1F1A9D811231F29F12596FA7B8203801ECADEA208E + 67ACF61B201D9BB2166FF08AB01D176E59111880D6F000F069D505D6C59766A6 + 42A53341A1D278207AC432F08282ECD7E9755A54E4AEE316905371991066BD31 + 0BF0352693115A238F12111A1A028D5ACD3D205BD84A94E7BCE9F7047AAD1F8F + B6AE3EC8357A8FF3B6CE2F8D5F08917434700085D6E4D7041CB925B9873F44C3 + 50CF3C7C3F5BE73F4E4DC1E9B69BA8CA7B2BB080A2DA4B9C4036AE4A8664540E + 8BC562EFFCE15D6B70A0E602F780CCE32D44E5DEF59C4DC0397AA30543E3727B + E74B76A7627F652B6A3ED9E01DB0EFD45556BB8D6E5A0367005713B075DC115B + E70F6E5F838375ADA8CDDF480F60F364CDF8EA1CAAF3DF09C8041CB175FEF35D + 6B5158F90BBEF9EC036E01E965CD38B5EF5D8C2B0DF6E32FBE6D77396F321A71 + 59AC80C5309F535484601CA293193CBF013B8FFC88BAFDEFCF02DCA33711585D + D0882509AFE3D985B1B3AF870607795CCB775B3A43F841A04AD3CFE730706603 + 3580E96A9075ACC905E03E015B147A05BAFB8C9C22280179D55758ED36EE00AA + DCBE3B802CE1752426BCC6098216C0F4C93AAD52A2BEE823AF1308C4242801B9 + 95EDAC769BECA367ED80A1493DA3EBFFB64E22B7FC86DF93A004ECF9BA8DD56E + A392CB5157B419634AA3FDF85843072D828B49D00298DED7738E7EEF02609ADF + 7A4528AC1EC6B25757422010B0463006D03D5915F7EFA1B6781B64530FBE03C2 + C62BB4C51B4C7A744A6458F0D44ABC9094E4719E09A2A5A5851C9075E23CABDD + 664FC9772E00BA28352A6C3DD184A8C8E548485C627F2D98E42E4387600CE072 + 02CE9D8F8B4F4048307FF61C5B0425C0BADB106C769BCC43F5A82A4EB3DE46BD + 7F07A6B41AEC14FE64EFBCAD78477C455002ACBB0DE16DB771CF846CD40550F1 + 43276DE7DDE30BA2ADED3C39C0BADB104C9EAC8EE47E79DAEB04A83AEF2F8231 + 80ED04C88A8F8C7805B1CF2F467818DFEB7BB923944A25E52D36E013702FDE11 + A60849AF18A32383485AFA12E9C38E129076B89160BADB382670B2280D13EA87 + 00AAE2992206A51228D4DDC87F6F194A1A44A46B072D80E96E53507AC6E5D800 + 23FE9A32E369C10A3C1747FD99A742D88A1F9BBC86E4F97C8422046A4203B13C + CA63ED68BFD4460ED85ADC40B0DD6D9C73F1DF0144CD5B8E9845F15E7F909021 + 1C9DFFF5C8663C1329987D6AF5F4DF213695FCEE3209C600B6B1FDFA8A8E7E19 + D1318BECC74C1154C5532128015B0ED4136C771BE738364D3688F1917EAFC593 + 21FE11DD6606F02562D92072CABB19214686EE40ADBD415BBC33E2C3926BE007 + 9BD157BD83FB09B09904DBE21DD1CC1808B3D9827911619E804D05B50493DD86 + D92486905F453E095F8B770EE9FF42EE00B2DDC6DF498CDD95625AD7E357F18C + 015CC4791266930193CA2E5C2FDBE657F18F14E08C087F6206891116349766FB + 55FC230738E790B001674BD3030770DF6DE61C2060953B256080B996FF019033 + EBDD5E87D7590000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_25_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005034944415478DAD5D87D4CD4 + 751C07F0F779200F05270E719A168B18462EB69AE5A235E79C736965AE960F9B + 461902BA8148391362CE8885A1D7E4516864B1983D400EBDA981D85C045AB32C + 14398F0785E334E0B807EEB8C75F77E7EEBC87DFEF7EBFDFDDF798BEFF39EE81 + 1F9FD7EFCDFDEE03028AA2F03047E00D100804011D28BFB683C899489C2FC28E + B569880817B20E629F9D0880E4F0F1A2288CA9F49C104401E5992B8206345DE8 + 45BF5C892717C671423C7080964E29A68D16CE88070ED0FED72DA875061FC47B + 6B96E2D1C8D93E83110718CDD6A000576477A1D51B7D10F2712DB2D6A5F92088 + 017657B75387B356060D908D4EDA86377A20FE1D1CC3D2C4780CFFA742CEEBCF + 7920880374C67B808FAACFF03E4659F61AA8F56628D55A4684BD91C22D2F9107 + E456FE42897356B90081C66C36416712D022BAAF0DC36C32A2326F2D79C04EF1 + 69AA22F7D5A01BB8613BC392CE3E4C680D3ECF1BF43AC76D48014A9D39A8069C + B922BD83DF7B6E41337DFF785A8D66E6004575E7884036AC488374640256AB15 + 3DB211C76D75FE6BE401D9875BA9AADDEB8835E01E83C98A21C5048E4BFE70DC + 9F1100A9060E7EB0DAF5F5FEDA33B05A2CA8FD70BD7FC09E6317782F66536A15 + 6A0ADE084903CEECAB3A0DABC08ABA820DEC00BE6B4166790B8EED79130A95D1 + 71FFD3AFDB880C5DF8EE2AD7D79FD4DB00B6CBE9571FBF4D1EB0BDF447D4EF7B + CB0570CF945E8FD5852DB61F3E8708CA996891023D47B3042101B83760BF729C + ED19C392E457B0F0B145AEC76787CDF2398ED06BE90C17CE02539A7F3E89816F + D63303F8EC3539879A191BB0E7EAED01E488BB9192FC3231042320BFE63CEFC5 + 6C47E90934146DF2FB1E501A94E8EA33116B8215C0672DB05F85EC80A17183DF + D7FD636B22AFE2129126180179556DBC17B3AC92EF505FB419A32A93E3FEA1C6 + 76C6D7926A8211B0EB4B09EFC54C3D31E101600B892658017C3E9476957C8BBA + E26D904FDE7B0F889BCEB37E8F42A7C09FD7E762D98BE9108944BC119C015CD6 + 02E5DD3B1E00B6A8B46A6C3DD28CB898E5783A35D5E7792E88D6D6567A40CE91 + 53BC17333E0D18CD067448E5983F371DC9294B1C8F85D15C65D8109C015C1A18 + 938FA0BA38C37619F5FF1E98D469B15DFC93E3CC272625233C4CE87A8E2F8211 + 90F5C5498AEF62967DA0C10350F97D87DF336F1FDE9940118C00DB6246F15DCC + D81AF03EF3DE090421919CA207D8F61ACADF5A4097BCCF8E3302D8860F14C119 + 104C03CEE163A25FC0A2279E426484D0EF71BC112A958AF1124BBC81A3451918 + D3DC07780FEF0C5784F4462F46860791FACCB3B41F768C808C834D14DB6246D7 + 807B8C30E1EF490BE6CD49F7189E2B625026C5E8F84524C51A2053C6D3AE1DAC + 00B6C58C292ABD169B3EFF018F442DC3E389CCBFF34C08FBF04A4D177E2DDD8C + 793122C1E5FE9BD4C692DF7CD68EB673127AC0D6E2468AEB624697B3D7071017 + BB1C0B1627F9FD83840EE13DBCF3713A046700DFACDCDB848484E791B060B1E3 + 3E5704D3F04C0846C096FD0D14DFC5CC3DCE75990F4231DCEF77783AC4B59EAB + DC0081A4573E88DC8A2E4E88E1A19BD0E82EB10EEF8E78A7E422846116F4D5BC + 4FBE013E4DF01DDE19EDB491B258AC888D8EF0056CDC5B477159CCB835318482 + 6AFA26021DDE3DB4FF17F206D02D66C136317A5B8629FDE5A086E70C2011F726 + 2C6623C6559DE82EDF16D4F0330A704744464D2325DA8A96B29D410D3FE300F7 + 1C1037E2445966E800DE8BD9430708D9E46E0919E061CBFF8A10BBDD2FCC0049 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_26_48' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A54944415478DAD5D87D6C13 + 751807F0A7EBD816429CA25B2C0E24CC451D89FCA524FACF22680C6A042211C4 + 88333A365EC23640656C2C1390648C31A3EBD88B0E7461418D03CBEA02DB6862 + 3243C04C64732FB57B81ADEDBAD1AE2F74EBB5F45C4BAE5CDBFBF57EF7EB5DC3 + BE7FF5EE9A5F9ECF3DBDBBA727A3691AE67364A100994C46B45061ED1551CE44 + 52423C146D590D8B9212780BF1D52E2AE0444E56D480664D3FF48C4C61211E4A + 404B971666A97B58888712D0F1F72DB0395D5808490094C71B15A05B6702C70C + 1584D8BDE125503C9A185698A880829A0EBA32F7D5A8013AC3F45CF15410E2FA + A011F6BFF7721842128093BA0FF8ACA64DF01AE5796F806DC603169B030B212A + 604FF565BA6AC7DA0080341E8F1B9C6E1927E25ABF1E4EE6AD9106B0B3AA95FE + 76CFBAA83B30A0B780BA6B10CC0E57D871D78C13AAF3DF941660717A88CF3E3B + DDDA09F8B3F716D8671FACE7B0DB630728A9BF240A6463D62AD08E9BC1EBF542 + AF6E5C3A405EA58A5616BC255A07D871B9BD306A34C319F575A8297C3B3600B1 + 3A70F8D3D7039F0FD6B64907D87EFC3C7D6ADF3B927480C901652BD4EE5F1F19 + B0B74E433455DAED16A8DBBB018C56CABF7DE474BB2845177FB436F0F950432B + D4EFDBC80F2099693E39F60B341C7837009022C5CADFE0BBA24DB101301DA03C + 2EB87C83EC671929717237E81A37C924EF80E5AE13D67DA181CC952FC092A7D2 + 02FB13E2E3C2D690CB83A10BE47180CAAFE72FC0F00FEBD100A143D9F663E7A0 + B1640BE73560744CC35F030B4545200185A73A89A64A06307AC7C579BCAB6F08 + 8AEA064443F00284CE3436B3191A4ADE0783D5EDDF3EDED411F61D313B8104E4 + 2BDB89A6CADCA3678300A874DEEC812FBFBF1D350209D8F5B59A68AAB49826A0 + BE741BE8A7EF5F0355CD9DC8EF8AD1095E80D027EAAEA33F0601F8D272B51B94 + 3F4FC08BAB5F81E4E464C1086C00EE4C23A403BE6743478F07148A0C783E3333 + EC380E42A5527103769CBC483455E69535424D69F6DC6D34F23560325BE1E38A + 3FFCC5673CFB9C7F5F3CC75D860F810DC0EDC0947E3C0850FDD39588677E797A + 062C8897078E09452001B9151788A64ABE0EB0CFBCAF7826A4082420E7440B4D + 3255867600A7F868106AF5456EC0DC4C43934C95F95F9DE104F0154F8AC00608 + E9C03725D930657F00608A4F494D87B4A79F81A44479C435421156AB15798B95 + A403EC50E0861BA69440F14C7011DA817E181F1B413EEC9080ECC3CD346AAAC4 + 0D73B7092D1E1731A2D382C1A085E26D2B9063072F003555F2453F6D830F8E68 + E0F19415B06C39FA378F4230C56B2A5E83654F3C265375F7D1BB2BFBC310ED97 + D4DC800F4B9B68BEA93252DA6E4EC1E2C52B41B1343DE21F122E4468F1CC7E2E + 04364068B20A7E8727D3D22155B1D4BF8D8B40158F4220015B0F36D2B8330D57 + 98495308C2383614B1782EC4BFBDFFE00148726D70D8FFEF0B073136FA1F4C9A + 74BCC587227C91A403423A21B47826D6BBB3FEA21F5998180ED8FC793D8D3355 + E2E46ADF30949D1EE4449016CF0EE77BA15000D75429245C9D30DCD6C19DC9A1 + A88AC70688117627EE7928518A8F29808DF0BD515B953A092DE53BA37E5D1753 + 003B65554D70AE3C473A40E85439EF009255CE8A6480F996FF01AFE08BDDDB6B + 59AE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000059D4944415478DAD5D97D4C13 + 771807F02FA8459930C79C28E0708618E7E2DCDB1FCEEC0F51DC141D086E38D0 + BD30C670B2652F4C17C31A67CCE2646F3A15447C5D98B2B94D3142C8E66BF6E2 + 7C49745954140B524A8B6FB5B5A5A5AFB7FBB5BBDBB577B5BD97127DFE6AAEC7 + AFCFE7F7BDEB3D0D311445E16EAE18A500159B8E28B2D098E44494CD7E0CAA81 + B131FD0EF8F2CDA9B2D76938D28A6B665BC4883B0EB0E7CF36389C9E8811771C + E0E0192D6ED91C1123140738DD5E59EB9CD65C85D5EE0C4094CC1A8F7855BC20 + 4231C0071B0F515F2D9A261BA03198E8E69D0108DD752B16E74C1044280EB039 + FD80A5352DA2D7A87A6B26CC76374CB7AC3C44D73533CA7327F2108A01DEAB3E + 40AD599CC502A496DBED42AF2B4610A1D19B505934393A80B7D73653EBDFCD96 + 9DC005C34D34FFD106A3B58FF7BEC36E03FD19D105DCB4B91559EF74DB151C3B + DB054B9F8B3D66B558FA0FA0AEFB459175F3A74E425BB7115EAF176735DDD103 + 2CFE7A3F55FDFE1CC512E0569FCB0B6D8F113B9A4F81FE8CFE012895C0CAD267 + D9D795B52DD1032CFAA291DAF8616E5412606A597513E8CFB83D40A9A992A2AF + 59A7A34FF63A95AF65B1AF3FA96D42EDD2BCF000A5A64AF2045D30E35125F6C3 + 57EAEA7DD8BCEC85FE013053E58956BDE824DC70E084A30A4E9850BFA019C943 + 53FB1FC09D2A49122F664EA4A7CAF0BF51FADC76BCB3AF00DA98731834702006 + 9913B0716EA30F210AA0F454194912CCCEBB47E890949EE83B66E9B6F9101B72 + F662FDF6E3D8A62EBC3D209A53259965F23327D103592CEF7C9BD38E252DF3A1 + 8B6DC5B0078706BCC720C618CBD0A02E8F0C2075A621BB58559A1D7220FBEB9C + 0E6E975370E7BDC97A5EF35C446FD7001C2A3F8A94C45416C103C89D2AB3B74E + 868B726053DE5E240D490D39552E7CEEF1809D370CBA88A4D1C37CC75C5EA7E0 + DA0431D89288DDF48DCD207800B9536593FD65643C3216A6CB76CC485A05476F + 02EF1C325572773E26A50723D28783A2BCF050FF6F9C102418111220F589FAC4 + 37C978266B327A0C5761D13A50F1D4165CD47878536579C11476E7531E1AE907 + 79DD112392EC23F16BE9B1F000B1330D498000481184EEBC194FAB3EC6C2CCE9 + EC54F9B7A69DDD79A679A608821417128C3076DEC2C4B827F15DE15E3E40EE54 + C924C01493C496798DBE7BA255A747455321E2D24C481D3B8A6ED24D37EDE2AD + 132A0D93D68A8CD809F876FE4FBE9F9761015212983E33D3D794E7BFDD6410EB + 727662C5810ADC88D3FA9A678A20FC4D07421884FF1C2FAE5D3606344F8EF300 + 72A74A920001300D71119AF31D484E7B00E919A3D94B855B426930E75DEDBC0E + E7E5FB707CE9EF013FEC7980B2AA3D143DF1C160F65F779F6E3F202981C026FC + 905E8B0DF724C4B3C75DF4F16088501AFA8E1E8C728DC3900B39D8FD599807D9 + 1BAB7EA4E879830588AD2935A37880E034B8150EC134BF72DA4EACAEFE190DAB + 4BC501A424307BCE2C7A28E3CF3DA110A4ECF410175C1D973AD8E607ABE2B162 + 4DBD78809404088069D8EDF5484AA3BBDD006BFB108CB7966000A562CF090B28 + 5EB98BA2273ED909704B4C1A04D179A90BA99E3101DF36A12A24A0F386435202 + 53EB527880500821C8A58BED11372F087865793DB5595D4427E0FF16F8BCFEA0 + 2800492037E779C1AFC950100621B6F98800628B24909F9BC7F926E1438410C6 + 9B3770E6E43F6879FD378C1BFE7044CD0B0216546EA3EA96BF0ABDC97F0FACD9 + 754814802440004CF91F4E7C84D00DAEEFD6C3ACEDC5F745FB9176EF68690904 + 03C4D68CADA90180DB214805A721161195040AF20A0407B4501039081EE0A58F + EAA89AE5C5E891780F64EF4843D1BC22B6D16048A469448A080BD8F0C361D109 + 1080BFF9D008EEFB7210514B805BA451319714F706671087CB4E4215AB0AFF3F + 32B980252D7371F6CA29497F1BAA32EE1F87A692A3FD0388A4848632A9250858 + A72EC675CB5D0C885AE79C8A1AE06EAB7F01823061ECCF66FCD9000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006454944415478DAD5D9697013 + 651807F07FE87D528A5068CB2176804151463F00E3C5A542811E9C52BC90A35C + CA0D8350D06118A705B12A6D29E5D40AA2080569A723F7A020C20C38CA59D2BB + 6929344D9A3BD964DD4DD865936C9ADD6DD381E7539AA4DBE7F7FEF7DD7D92CA + 4892C4D35C3257804C269374A0E5F967DB6525FAC644227DFC100405F8796D84 + EEBD5D015FCD1BD166C04FE76EE3815A2F08F144028E5E2C83C96C1584782201 + A7AF57A3456F1284F009C04CD8DA04B8266F84D6607642CC1E37106141616E8D + B52B6059DE6972DBFC516D06C8EB5554F3662744CD033516250F7643F804A037 + 3B00ABF34A451F236BC158A80D04542D5A374465A30A9FA6BCE8846857C0929C + 9364F6C2312C406A1184053A8B8C172157A8B07EE670DF0016651793DB9724B6 + 39813BF5CD28F9B30C4AADD1ED7593418F9CA5E37D0B68D61392579F5BD7CAEE + E3D28D1A688C16F639AD46D371808C82DFDB053269C44B28AB53C266B3E186BC + CE778005DB7E2373974D68B704B865B4D850DDA0C4FE92ABC85B3EB16300ED95 + C0A6B96FB38FD7E597FA0E90BEA588DCB132D9270930B536B718F9AB525A07AC + D8794ED2544952E768D7C85098AD8EAB905AA3076131B7B9E9751F8D611F7F9E + 5F8C9D6B267907489969E86B75646810FB333D9435AA8C487A75409B114C65E4 + 1EC7EECFA6760C801E8BE9FAEB66ADE8240898F0B7290B66A85038B30431E171 + BE0734B518A95328989D852EDE6AA0EEA24658082B1A947A240E1F88407FEFFB + CB4818F0C9F169A896DD4480BF3F02D411D89172CC8E1005103B9469A8DB3E17 + 70E1BF5A18CC04B47AB3E024989527BAD722BA4FA4E3B8757A3B2227A908DBF7 + 5DC6BE0D69AD0396EF382369AA6CD211E81AE60FE6D7AA9A5A60D099D062B0B2 + 49C8156AA4BCF102F8C67BBDD98055A5D351DBE936A27A873B2FCE23445F653A + 0E6D582C0C2076A6A1EF945D3A87C14498B0E1BD91A8531BEC8066ADC96B12CC + CADB62146ECD7311BA1A3F9C59741E719DE3651E014B734F499A2AE931B87388 + 3F12F70C83853461676A11A243E2A0D2EB7993983A72B0D3CAD707DC4574AF28 + FB73161BFFA94623823591F885DAD8348217B0F89B1249532593C081C6294878 + BE1F5495068C8EDA0CB32EC2EDBD6693D169E565B10DE8DEE7196A456DB0928F + 178E0FC245C446C6C93C02C4DE51E9792538A0135EFE3606AF8D198686FA4668 + AA4D5833742FE4952435CF3F3E1E3D2ACF9938845DF9D8677B384036423022DA + D00327E75EF20E103AD37013A00174D188DA5B6A0C0F5C8FA9AFBF894AEAE322 + 5DFFC8CBD995679A678A46D0C585B82294552D181CF40A7E9C51E40E58F8F509 + 4953A552AD4334056012608A4962F7E463F63D71BB568115C5331014AF425CBF + 9E549304D5B4C5ED789ED250556B91D06910BE9FFE2B420343BD03A424307AEC + 487B53D647ABC92032DFF90199E757A239A4D6DE3C5334C2D1B433844138DE63 + C3834A25DB3CFDD9987713CFDF7A4CD254C94D8006300D7111F25B158889EF86 + 3E09BDD853855B7C6930EF6BAC7A087365175C5EFD07FBC19E17909E7594CC5F + 9D8A7AB5E3BCDBBCEF94A4049C9B704074D4841A1611CA39252C6E10BE341415 + 0DE869E98F903B49389CE9E54636E7CBC3E4AEB5535880D0D2EB0D88080FC3D0 + 9C1837806B1ADCF286609ADF34EA0032738FE050D63C71003109848485E38872 + 32C64F18470D65EEDF2A7842D065A08638D7AAB857C1361F1C188A2FB20BC503 + 84167DC7A52B71FF737600D33061B34A4AA3AEBC1EDAF2100CD4CE861F19C8BE + C72B60D6A683E4DE8C19A21360AAD8F03E0B604A4C1A34A2EA5E0DE2AC7DD9AB + 8DA7BFD52AA0AAC924AA71A64614C4BA013C21F820F7EE960B6ADE23E0838D85 + E4AE8C342A01C755604BE169D10924274DE4BD4C7A82300831CD0B0648496052 + 722AE74AE20EE143289B9B70FDCABF28FDF80206741B24E8AB115EC0CC757BC9 + 828D1F42A172EC81EC8367442740039872DC9CDC117C1B5C51A780BA5A874369 + 27D02BAAB7B4045C0162EBAD3D714E80D61074B9A62106E1B304A6A54EE31DD0 + 3C41A4227801EFAE2920F336CE4283C43D90B83F1E6993D3D8465D2142D31082 + 1004C8F9F9ACE8046880A379CF08EEEB52113E4D805B74A3624E29EE06671067 + D3AF20C82FC8FBFFC8DA0A58559A821BF7AF4AFA5D4F95D0B53F8A679FEF1880 + 90721DCAA49647C07719B3F050F314037CD639A77C0678DAEA7FECE416FBDFA2 + F4A60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006454944415478DAD5D9697013 + 651807F07FE87D528A5068CB2176804151463F00E3C5A542811E9C52BC90A35C + CA0D8350D06118A705B12A6D29E5D40AA2080569A723F7A020C20C38CA59D2BB + 6929344D9A3BD964DD4DD865936C9ADD6DD381E7539AA4DBE7F7FEF7DD7D92CA + 4892C4D35C3257804C269374A0E5F967DB6525FAC644227DFC100405F8796D84 + EEBD5D015FCD1BD166C04FE76EE3815A2F08F144028E5E2C83C96C1584782201 + A7AF57A3456F1284F009C04CD8DA04B8266F84D6607642CC1E37106141616E8D + B52B6059DE6972DBFC516D06C8EB5554F3662744CD033516250F7643F804A037 + 3B00ABF34A451F236BC158A80D04542D5A374465A30A9FA6BCE8846857C0929C + 9364F6C2312C406A1184053A8B8C172157A8B07EE670DF0016651793DB9724B6 + 39813BF5CD28F9B30C4AADD1ED7593418F9CA5E37D0B68D61392579F5BD7CAEE + E3D28D1A688C16F639AD46D371808C82DFDB053269C44B28AB53C266B3E186BC + CE778005DB7E2373974D68B704B865B4D850DDA0C4FE92ABC85B3EB16300ED95 + C0A6B96FB38FD7E597FA0E90BEA588DCB132D9270930B536B718F9AB525A07AC + D8794ED2544952E768D7C85098AD8EAB905AA3076131B7B9E9751F8D611F7F9E + 5F8C9D6B267907489969E86B75646810FB333D9435AA8C487A75409B114C65E4 + 1EC7EECFA6760C801E8BE9FAEB66ADE8240898F0B7290B66A85038B30431E171 + BE0734B518A95328989D852EDE6AA0EEA24658082B1A947A240E1F88407FEFFB + CB4818F0C9F169A896DD4480BF3F02D411D89172CC8E1005103B9469A8DB3E17 + 70E1BF5A18CC04B47AB3E024989527BAD722BA4FA4E3B8757A3B2227A908DBF7 + 5DC6BE0D69AD0396EF382369AA6CD211E81AE60FE6D7AA9A5A60D099D062B0B2 + 49C8156AA4BCF102F8C67BBDD98055A5D351DBE936A27A873B2FCE23445F653A + 0E6D582C0C2076A6A1EF945D3A87C14498B0E1BD91A8531BEC8066ADC96B12CC + CADB62146ECD7311BA1A3F9C59741E719DE3651E014B734F499A2AE931B87388 + 3F12F70C83853461676A11A243E2A0D2EB7993983A72B0D3CAD707DC4574AF28 + FB73161BFFA94623823591F885DAD8348217B0F89B1249532593C081C6294878 + BE1F5495068C8EDA0CB32EC2EDBD6693D169E565B10DE8DEE7196A456DB0928F + 178E0FC245C446C6C93C02C4DE51E9792538A0135EFE3606AF8D198686FA4668 + AA4D5833742FE4952435CF3F3E1E3D2ACF9938845DF9D8677B384036423022DA + D00327E75EF20E103AD37013A00174D188DA5B6A0C0F5C8FA9AFBF894AEAE322 + 5DFFC8CBD995679A678A46D0C585B82294552D181CF40A7E9C51E40E58F8F509 + 4953A552AD4334056012608A4962F7E463F63D71BB568115C5331014AF425CBF + 9E549304D5B4C5ED789ED250556B91D06910BE9FFE2B420343BD03A424307AEC + 487B53D647ABC92032DFF90199E757A239A4D6DE3C5334C2D1B433844138DE63 + C3834A25DB3CFDD9987713CFDF7A4CD254C94D8006300D7111F25B158889EF86 + 3E09BDD853855B7C6930EF6BAC7A087365175C5EFD07FBC19E17909E7594CC5F + 9D8A7AB5E3BCDBBCEF94A4049C9B704074D4841A1611CA39252C6E10BE341415 + 0DE869E98F903B49389CE9E54636E7CBC3E4AEB5535880D0D2EB0D88080FC3D0 + 9C1837806B1ADCF286609ADF34EA0032738FE050D63C71003109848485E38872 + 32C64F18470D65EEDF2A7842D065A08638D7AAB857C1361F1C188A2FB20BC503 + 84167DC7A52B71FF737600D33061B34A4AA3AEBC1EDAF2100CD4CE861F19C8BE + C72B60D6A683E4DE8C19A21360AAD8F03E0B604A4C1A34A2EA5E0DE2AC7DD9AB + 8DA7BFD52AA0AAC924AA71A64614C4BA013C21F820F7EE960B6ADE23E0838D85 + E4AE8C342A01C755604BE169D10924274DE4BD4C7A82300831CD0B0648496052 + 722AE74AE20EE143289B9B70FDCABF28FDF80206741B24E8AB115EC0CC757BC9 + 828D1F42A172EC81EC8367442740039872DC9CDC117C1B5C51A780BA5A874369 + 27D02BAAB7B4045C0162EBAD3D714E80D61074B9A62106E1B304A6A54EE31DD0 + 3C41A4227801EFAE2920F336CE4283C43D90B83F1E6993D3D8465D2142D31082 + 1004C8F9F9ACE8046880A379CF08EEEB52113E4D805B74A3624E29EE06671067 + D3AF20C82FC8FBFFC8DA0A58559A821BF7AF4AFA5D4F95D0B53F8A679FEF1880 + 90721DCAA49647C07719B3F050F314037CD639A77C0678DAEA7FECE416FBDFA2 + F4A60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006464944415478DAD5D9795094 + 751807F0EFCA25878A78ACEC8A8891393A4EA31D4AD3945765780196074C8799 + E2994AA9638A5A4ED38865540222E4D1506699A209C3783B598EE9A4338E7900 + 72EE01C2B2CB2E7BEFBEBDEF6EEFDBBB17FBBE2F2CA3CF5FCB1E2FCFE7F77D7F + EFFBB0880882C0E35C22778048241274A0ACC20BDDB212B13151F820653CC242 + 82FC3642F5DEAD802F974EEA32E0A78B77D1D8A2E384782401C7FFAC84C96CE3 + 84782401E76ED6A35D6FE2840808C06CB5770970A3BA193A83D905B134792CFA + 45F6F668AC5B01EB0ACE11BB974DE932A05AA1269B37BB20AAE56AAC4E19E781 + 0808406F7602361454F03E46CEF2E9D018AC50B7EB3821BA15B026EF0C91BB62 + 1A03105A56AB051D16914FC4968CA4C00056E696117BD6247739817B8A3694FF + 510995CEE8F1BAC9A047DEDA198105B4E9AD82579F5D372A9B70E57603B4460B + F39C4EABED394076D1E96E81A44D7A1A953215EC763B6E57CB020758BEFB3722 + 7FDDCC6E4B805D468B1DF54A150E955F4741D6AC9E017457023B96BCCA3CDE5C + 58113840E6AE5262EF47730292005D9BF2CB50B83EA573C087FB2E0A9A2A09F2 + 1C950CECCBFCDCD8AC86D562EE72D39BDF9DC63CDE5E58867D1BD3FC0384CC34 + D50A0D9E88EDC7DC894FFF5D8B9676335E7B6E4497117465E79FC4771FBFD933 + 806397EFA3436FC0ADDA56DE495861C25FA61C98A146494639C451D29E075043 + 994A67723C6E6A3360F2B8048406FBDF5F46AB01AB4FCE43BDE81F8404072344 + D3077B534E3810BC007C87B286875A0780BE135FBAD50083C1481E87E09C04BD + F2D6C18D888977EE27AD4CEF40E4CD2EC59E835771706B7AE780ACBDE7054D95 + 14206E501FD01F53B46AD16EB6C24CDE49A9246C361B642D1D98FAEC93F036DE + EBCD06ACAF988FC65E77113D2CCAE5351A315C9589235B577103F09D69A83B65 + 426C0C3988999035F70554918397D16882C644F84D825E79BB58EED13C1BD1D1 + 1084F32B2F41DA6FA8C827606DFE594153655D931AF1E26824EF9F080B61C2BE + D452C4844BA1D6EB6124274976120DCD5A24278D72597945C87DC4C4453B9EB3 + D8BD9F6A14A2B7B62F7E21373685F00A58F575B9A0A9924A402A1E88E2FA1948 + 1C3302EA5A035E8AFA148429DAE3BD6693D165E545122506C70F2457D40E1BF1 + FFC27983B01192BE52914F00DF3BAAACA98D04F4C7F86FC47871DA442815CDD0 + D69BB071C2012895C1E8604D9526726FA44D1EC5ACBC2461881364B77246C418 + 86E0CC922BFE015C671AABC5823889D8910005A08A4234DED12029740B663D9F + 44FE41A2713C5F256B60569E6E9E398EDDF97BD9107784AAAE1D63C39EC10F0B + 4B3D012BBE3A2568AAAC91B72241328049802E3A09FA5A7EB7518E4DA7332012 + AB201D114B3669259BB6781CCF571AEA7A1D127B8DC6F7F37F454468847F8090 + 04A64E9FEC68CAF6DF6A52086A4F6C7FB91879D7B2D116DEE8689E2E0AE16CDA + 1542239CEFB1E361AD8A693E322CD2FB265EF6C5094153253B010A4037C44654 + DFA98178E820C427C631A70ABBBCA541BFAFB9AE05E6DAFEB8BAE1B2A379EA39 + AF80CC9CE344E186542834CEF3EEB383670525E0DA8413D2A1D523B24F04EB94 + B07840BCA521AF5122D63212E1F766E3E84E3F37B2F73F3F4A146F7A8301702D + B9B285040CC6843CB107C03D0D76F943D0CDEF98F22376E61FC3919CA5FC0042 + 129831F3757228F3FC56C117822A0339C4B9574D550DD37CEFD0087C925BC21F + C0B5A8BF59A95A707C8C0340376CB5DB04A5217BA080EE413846E91623880865 + DEE317B068C761E240F642DE09D05566788B01D0C5270D0A5157D500A96D3873 + B5F1F5BB3A05D4B59A78354ED7A4228907C017C21BA4EAFE034ECDFB04BCBDAD + 8428CE4E2713705E0576959CE39DC09CD9B3BC5E267D4168049FE63903842490 + 3627957525F1847843A8DA5A71F3DA2D54BCF73B9E1A349AD357235E01199B0F + 1045DBDE815CEDDC03B987CFF34E8002D0E5BC397922BC6D70B94C0E4D7D078E + A49F425CF4306109B803F8D62BFBA52E80CE1054B9A7C10711B004E6A5CEF33A + A0F982084578052CD85844146C5B04A5C03D907C6828D2E7A6338DBA43B8A6C1 + 05C10990F7F305DE09500067F3BE11ECD78522029A00BBA846F99C52EC0D4E23 + 2E645E43585098FFFF917515B0BE2205B79BAE0BFAACAF4A1C3012658B2FF50C + 804BB90F6542CB27E0DBEC4568D13EC6808075CEAA80011EB7FA17A0501EFB9C + C09DCB0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000065E4944415478DAD5D9797013 + 651806F027F43E805285D2F4420CC5E1128A23A00C835C832D941614A48C0722 + 9473389432080591711C8AD6AAF4A2C8A15544510AD24E4728C778301C724C85 + D29B5EE94149D3E6CE2659771376CDD964B70D03EF5F99CD66F3FEBE67BFFDBE + A6029224F12497C01A201008785D6853EEF95E1989D0E040AC8E8F41808F87D3 + 46E8DE7B15F0F98AA93D06FC78E12E1ADBE52E211E4BC089BF2BA1D1EA5D423C + 9680929BF5E8526A5C42B805A0D5197A04B851DD06B94A6B8158113B1AFD037C + 6D1AEB55C0C6EC12327DE5B41E03AA9BA554F35A0B44B5588A7509E36C106E01 + 28B526404A7631E76BA4AD9A8D4E950ED22EB94B885E05ACCF3C4366AC9EC102 + F8964E474041081C22B62F99E41EC09A8C4272DFFAD81E2750DEDC81A2BF2A21 + 91AB6DDED7A894C8DC10E75E408752C77BF4CDEB46652B2EDD6E804C4DB0C7E4 + 32D9A303A4E6FDDE2B90F9539F47659304068301B7AB9BDC075895FE1B99B571 + 4EAF25605E6AC280FA16098E145D43F6A6B98F06D05B09EC5E3E8B7DBD2DB7D8 + 7D80E4BD0564CE07F3DC9200535BB30A91BB39A17BC0FBFB2FF0DA55EA753A8C + 1185528F3B13A0BCFE3E7484B6C74D6F7B6706FBFAA3DC42ECDF32DF3980CF9E + E67A552B624421EC4A5C72AB817A7E13983226B2C708A652B34EE19B0F5F772F + 8059078E9EBD05ADA10FAF2474D0E08A260D5A4891BFA408218161EE07FC532E + C6F8E14216505ADB0615F55AAFD7A1AD5383974645C2DBD3F9FC52EB5458776A + 21EA0577E0E5E909AFCEBEC849386944700270DD949556B758008AAF5452D720 + A150AA5C4E821979DDA0460447F5331E9335298D88CCF802EC3B7C1987772475 + 0FD894738ED7AE92068C7E7630140F01924E05BAA809ADA55652855A4F7D991E + F7A54ABC306208BCEC6CEF955A1536172F42639FBB088A0CB4788F410C9124E3 + D88EB5AE01B8EE6974048191C322A0D612488E1B8BAB15ADD0EA49A8546A8B24 + E8D5D4D1C81B42C436CD9B23140D1E38B7E622C2FA870B1C0236649DE5B5ABBC + 59D188B1D1E1883D381104A9C1FEC40204FB8541AA5452283D9B84867ADC363F + 9063FA7891C5C8377B55203822C8788C30D8BFD56884AFAC1F7EA626368DB00B + 58FB6511AF5D25A1D160D4F028A497CD8468E45048EFA93025F063909A209B73 + B51AB5C5C80B842D1814F53435A2D4A427FF1F387B107384B05F98C02180EB8A + 5A5623362630327D2026CF988896E636C8EA35489DFC1D5A5B3D4198CD2919B5 + BF8F7B59C48EBCF099C1269041E7322258351867965F720E70754F639E000DA0 + 8B463496756292F776CC1AFBA2F1EF5B7A32578BC5ECC833CD334523E8328758 + 2324755D18ED331EDF2F2EB005ACFEE234AF5DE5BF958D18352C1C315F85B000 + 064127413FCB07F80AD1D2DE81F5450B200891206C6828D5A48E6A9AB0B99EA3 + 34A4F57288FA8CC0B78B7E81BFB7BF73009F04A6CF7EC5D894FEE168D2087A4E + A44CC8C1A1D25DE8F06B3436CF148D30356D096110A6730CB87F4FC2361FE013 + 607F12AFFCEC24AF5DE5F50A3162A285C6046800D39039A2BAAC1621E1031125 + 8A606F15F3B29706735E5B5D3BB4F706E072CA9FC6E6E9637601C96927C8DC94 + 4434779AEEBB4F0E9FE595806513268842A644405F7FB35B82B081D84B435CDB + 8250221A7EE5F138BEC7C942F6DEA7C7C9035B5F6301AED69D5A7A2516624266 + 880DC03A0D0BB81304D3FCEE693F604FD6AF3896B6821B804F0271735EA53665 + B6BF2A3842D0A5A23671D6555B55CB36EFEBED8F5D19F9DC015C12307EBE789C + 11C034AC33E879A5D154D30C798D1F9E932F8307E9CD9EE314B074F751F250EA + 62CE093055A87A930530C5250D1A5157D58030FD10F669E3E8BBBA05D43DD070 + 6A9CA9A979421B8023843D4855458D4BCD3B04BCB5339F3C909A4425607A0AEC + CD2FE19CC0BCF8B9761F938E200C824BF32E03F824307F5EA2D993C416620F21 + E978809B574B51FCEE1F183E70844B3F8DD8052CD97688CCDBF936C452D31CC8 + 387A8E7302348029D3E2648BB037C1C54D6274D62B702CE934228222F925600D + E05A330F865900BA43D0659D061784DB125898B8D0EE06CD11842FC22EE08D2D + 7964F6CEA568E13907628F8423694112DBA835C4D5345C41B804C8FCE93CE704 + 6880A979C708F3F7F922DC9A8079D18D72B9A5CC273883389F7C153E1E3ECEFF + 47D653C0E6E204DC6EBDC6EBB38E4AF454340A975D7C340057CA7A53C6B71C02 + BE4E5D8A76D9130C705BE766E536C09356FF016A5C22FBB3D3B1E50000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006734944415478DAD5D9795814 + 651C07F0EF8A1C8282928A0282290FE4411A74A8980F2AF5182AA299073E5966 + 8AE7A392C7638656DAD323966109887847996579244479A08FE5FD244F258A80 + DCEC0ABA2CEC317B4F33BBCEB8B0BBECCCC0F2E8EFAF657676F6F779BFF3BEF3 + 3E8B8824493CCD256A09108944822E949499DF2E23D1D7B72B96C445C0CBDDC5 + 612374EFED0AF87261749B013F9CBF83EA070A4E88271270EC5231345A0327C4 + 1309385B508926958613C22900ADDED826C0CDD23A28086D33C4C2D870F87879 + 5835D6AE80551967C9ED8BC6B519502A9651CD6B9B214A6B65581EFF8215C229 + 0095D60C589B91C7FB1A298B27A091D043D6A4E0846857C08AB4D364EA921816 + 20B4F47A1D943A914DC4ED2A293E9D1BE51CC0D2D41C72E78AD8362750246E40 + EE5FC5902AD456EF6B0815D2564E742EA041A5173CFA9675B3F83E2EDFAA825C + AD638F29E4F28E032467FDD12E9069D1C3505C2385D168C4ADD21AE701166FFF + 954C5F35A9DD12B02CB5CE884A891407736F20236972C700DA2B81CD0B5E675F + 6FC8CC731E2071DB7172D7EA294E4980A9F5E939C85C13DF3AE083DDE705ED2A + E915625CE440EA4166FEF895C26AE875DA3637BDE1DD18F6F5C79939D8BD6E9A + 6380903D0DBD87193F3C885D46AF1549A8355C8DC8B0C03623984A4E3F89BD1F + BED53180BDBF1540434DBEEA3A19EF24F4D0E09A26055AC8903D27177E5D033A + 1E403F90B4D41A4E507F37C89588080B825B67C7F34BAD27B0FCE40C548A0AE1 + DAB9335C1BBB6157FC0913821780EFA6ECE27FD5260033897FBF5602A58A804A + 67BE7E29B5963B4A8219797DEF6AF8067B9B8EC96B5426445ADC71EC3C701507 + 3626B40E48DA754ED0AE9206BC3A3410CA4709481B95D4350C501BC966498487 + F483AB8DEDBD4A4B604DDE4C5477BA83EE415D9BBDC720FA4B137164E3326E00 + BE7B1A9D4683B12F0F42834283E9D1A1B85A28868E20A0215DD824E839515E53 + 6777E48D7EB556CD5B2294552E38B7F402027C024576012BD3CF08DA55E6DFB8 + 8BB12F862276DF08E8488D29F21E1EFED06BD56C128D4D1A6A4B40E2BE4C8551 + 43839A8DBCD8F52E7CFB75370F86D1F6AD46233CE4DEF8899AD834C22660D98E + 5C41BB4A2681F557A210326400EA4B9518EFB30506C2DB7AC41FCD0566E445FE + 12F40EEE498DA81106F2F1C0D9825822FCBD034476017C9FA8970A4A4C090CD9 + DE0BA363464022AE83BC5283E4D1DFA249E649DD3E06F65C42AD417464303BF2 + FECFF631838C7ACE085FA20F4E2FB8EC18C0754FA356A9103372A829011A4017 + 8DA8BEDD88916E1F212A341C1299C674BCAA5ECC8E3CD33C9B8ED1FCBD969096 + 08694513C2DD23F1DDECE3D680255F9D12B4ABA41318353C04115FFBB1000641 + 2741AFE5F49C10373CC4EADC5930F4AC47C080BE54937AAA699DD5F5ECA521AB + 5420A4D3601C9AF9333CDD3C1D03F824302A721036FF3D06E3278C3535657834 + 9A3442564E60E9F33B70A8700B081F89A979A66884B9E9E61006613EC788FA72 + 29DBBC97BB97ED49BCE88B13827695E7AF1721FAA5305302348069C812517ABB + 0C7E81BD104C3D0B985BC5B26CA5C19C5757F100DAF21EB8BAF64F53F3F4319B + 80C4946364E6DAA910379AEFBBCF0E9CE19CC0C86103B1E59F1816F0B8093344 + 2957C1AB9BA7C52DA1B382D84AA3B64C82BEBA5074298AC3D1AD0E1E64EF7F7E + 94DCB37E3A0BE05A570A8A1115118657D2FCAC002DD3B02C4708A6F9CDE3BEC7 + D6F45F702465213F809004264E7A83DA9459FFAA600F4117416DE25A56594919 + DBBC879B273E49CDE60FE093005D4997C798004CC37AA3C1EA5C2E69D4DC1343 + 71AF0B9E53CC870BE9C69EE310306FF361727FF26CDE09309543BCCD02D87478 + A441232A4AAA1060E8CFAE36F6BEAB5540C5430DAFC6998ACEF2B702D843D882 + 94DCBDC7A979BB80B99BB2C93DC9095402E655605BF659DE094C899B6C7399B4 + 0761107C9AE70C1092C0B429532D56126B882D84947A42175CFF1779EF5D4458 + AFC19C7E1AB10998B3613F99B5E91DD4CACC7320F5F039DE09D000A6CC0F276B + 84AD095E5B538BC64A258E249C42BFEE41C2126809E05BAFED0B6806680D4157 + CB34F8209C96C08CA9336C6ED0EC4184226C0266ADCB223336CD8344E01C883D + 1888843713D8465B42B8A6C105C10990F6633EEF046880B979FB08CBF785229C + 9A8065D18DF2B9A52C273883C84FBC0E771777C7FF236B2B604D5E3C6EDDBF21 + E8B3F62AE49950E4CCBFD031002ED5725326B4EC02BE499E8707F2A718E0B4CE + 2DCA6980A7ADFE07D5FB1FFBC29B24500000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006624944415478DAD5D9795013 + 671806F0272287E0494514C46BA8A8A0569D69ADA56A2D762C08025AAD383DA8 + 553CC7ABE2588BC7D863C46A692B20623D3A546BEB5DC33055542CEA58EDE888 + 1415B98520480CE4CE26D96613779B93EC2E89A3EF5F902C9BF7F73DFBEDBE13 + 042449E2452E8135402010F03AD1EA9C0B2E5909FFAE3E5835EB55F8797B386D + 84EADDA5801D0B277718F0EBC5BBA86890B0423C97801357CAA1D6E858219E4B + 40E1AD5AB429D4AC106E0168B4FA0E016E563441A6D4582096C78F410F3F1F9B + C65C0A58955D48EE5C34A5C3800A91C4D0BC8615C22D0085C60448CD2EE07C8E + F4C5D3D0AAD442D226B34194D589B166E6380B844B012B32CF92194BA21800DF + D26A09C809815D4449750BBE4E8E740F60698690DCB522BAC309DC133D41FEE5 + 7288652A9BF7D54A053257C6B817F044A1E5BDFAE675B3FC11AE96D641AA2298 + D76452E9B303A4E5FEE91248E2E4D128AF1743AFD7A3B4A2DE7D80C53BFF20B3 + 564D775902E6A522F4A86D14E360FE0D64AF8E7D36005725B075C13BCCCF1B72 + 0ADC0748D97E92DCFDD90CB72440D7FA2C2172D6C6B70F58B3E722AFA992BA43 + C4448643A5D6187F2FBC5EEE92A6377C1CC5FCBC3947883DEB129D03F8CC34C2 + 2B7711336118731B2DA96A825CA5C3F041012E81509596751A3F7DFE9E7B00C7 + 8BEF2131328CB984F60AFF01743AD43C92703E97166AFCAD4E870612E4CDCB47 + 60D760F7034E14952261523803A86E6E05496841E84848143A8C1AC22E099556 + 89E5A767A356F02F3C3B7786676B37EC8E3F65447002701DCA8497CB2C00C72F + 96404190506908D649D02BAFEDF310FE03BB1B5F93D62B8C88CCB893D875E01A + 0E6C4C6A1FB07AF7795E53E5E94B7710373102F2A77BA04546ADBECA00D041F3 + F4692A96A9F17248203CED8CF70A8D126B0BE6E061A7BBE839A0ABC57B346290 + 380547362E6307E03AD3106A35620D4F4DB14C86A9E386A1E866250895021ABD + C06912F4CAEB031B6C9A3747C8EB3C707E6911827BF4173804ACCC3AC76BAACC + 2FBE83E8C80844EF1B0F82541B23EFE51364DC03845A01959E6492686891626C + D8008B951779DE877F484FD362E8350E113ED2EEF8DDB0B129845DC0B2EFF379 + 4D952A85C2B00722B0ECD21B080D1F82E60A3926F96E8640EB6FBBE284C662E5 + 05418DE833B0B76145F5D091FF2F9C3D883922A87BB0C02180EB13F5CCA5DB98 + 39E51584EF0C4064D478348A9A20AD5563CBA44350B4795B1C4BCDF6A3C3FA32 + 2B1F34B8AF09A4D7B246F82BFBE2EC82ABCE016C671A2A81E83747624DF10423 + 802A0AF1B0AC15AF7B7D81318323D026373553D72C62569E6E9E49476FFA5C73 + 8835425CD38691DEE3F0CBDC93B68025DF9DE1355552094C9F380A637F086400 + 34824A82DA13BD7D83217AD282D482B920FC9B103CA49FA149ADA169C2E67C8E + D290D4CA10DA69047E9E730CBE5EBECE016C1390B7B522F6ADB1C604DE9EF696 + B129DDD3D5A410D49E58307C078E55A643D9A3D1D83C5D14C2D4B4258446988E + D1A3B95ACC34EFE7ED677F132FFAF614AFA9D23C010A4037648EA828AB4260FF + 000C0C0D612E15F3B297067D5C53CD6368AA7BE15A6AB1B179EA35BB8094F413 + 644E6A0244ADA6EBEEAB03E7782560D9840922972AE0D7CDD7EC92206C20F6D2 + 68A86A443F6228BADC8BC3D16D4E1E649F7E7394DCBB7E1603605BF9974B116B + D8C4AF6506DA00ACD3302F6708BAF9AD530E615BD6711C495FC80DC0278198E9 + EF1A8632DB6F151C21A8521A8638EBAA7A50C534EFE3E58B2D1979DC015C12A0 + EACBDB514600DDB056AFE395467DA508B2CA2E18269B0F0FD28B39C6292079EB + 61727FDA5CCE09D025547EC000E8E2920685A879508760DD20E66EE3E8B3DA05 + D4B4A839354ED7E4DC201B8023843DC883FB95AC9A7708F870531EB9372DC990 + 80E92EB03DAF90730233E262EDDE261D41680497E65903F824903823C1EC4E62 + 0BB187101B9ED0B7AE97A0E093BF10163082D557237601F336EC2773377D8406 + 89690F641C3ECF39010A4097E9E1648BB0B7C11BEA1BD05A2BC791A43308E939 + 805F02D600AE35755FB005A03D0455D6697041B82D81D909B3ED0E688E207C11 + 7601EFAFCB25B33725A391E71E883ED81F4933939846AD216CD360836005C8FC + ED02E7042880A979C708F3F7F922DC9A8079518D72B9A4CC37388DB890721DDE + 1EDECEFF47D651C0DA8278943EBAC1EB6F1D55E84B43219C5FF46C006CCA7A28 + E35B0E013FA625E3B1F40506B8AD73B3721BE045ABFF00E4890CFBBB28AEBC00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000065F4944415478DAD5D97D5014 + 751807F0EF8102828211887282628C9A8ED348696ACE64668E22F26286819211 + 2ABEE64BA9A386D438E688A96402229A1A989AA648828CF83A95A638A9E310BE + 216FC2A1C879E7BDBF70DBEE9DBB1EF7C2ED2E778E3EFF007B777BCFE7F7DDDF + DE3387802008BCCA25B0040804025E275A967BCE292BE1DFD50B4BA70E878FA7 + BBC346A8DE9D0AD83C674C870107CFDF4255A38415E2A5041CBB78171A6D2B2B + C44B093873BD0E4F951A56089700B47A438700D7AA1E41AED2B6412C8A1D0A3F + 1F2FABC69C0A589A7386D832776C8701552209D9BCB60DA2B25E8C2F632210E0 + D7A54D732E0128B526C08A9C52CEE7C898370152951E92A7725608A702166795 + 1199F3C73100BEA5D7EBA0D0096C226ED6B4E0FBE4D1AE012CC82C26B62F8EEC + 7002B7454F50F2F75D88E56AABC7352A25B2964C722DE08952CF7BF5CDEBDADD + 87B854510F995AC71C93CB642F0E909677CA29902963DEC2DD06310C06032AAA + 1A5C0798B7E50F227B6994D312302FB5CE80BA2631F6955C45CEB2C92F06E0AC + 04D6CD1ECFFCBE26B7D47580D44D85C48EAF635C92005DABB28B91BB3CB67DC0 + 573BCFF39A2A550A396646BE0385BAD5F8F7D1F3379CD2F49ACFC731BF7F9B5B + 8C9D2BA73806F09969F24BFF45D2840826819A6629B4E41D24B4A7BF532054A5 + 651761F7EA4F5E0C20BBF0AAF1A7A859CCF95C7A68704593012D2428985E82A0 + AE42D70376975C434AE45006D0249543AD355D4E5C9250EB555854148F3AC17F + E8DCA9133A4BBB6147EC7123821380EB50967FEA461B40414939D4841BB43A82 + 7512F4CAEB7B3C807F1F5FE3315983D288C88A2EC4F6BD97B1776D62FB80653B + CEF29A2AF34F962369E230289E8D122D723D74ADE438409E476D30BDC713891A + 6FF40EB0F97AA55685E5A5D3F0C0ED16BA87766DF3188DE82B4EC5A1B50BD901 + B8CE346AA512091387432A5761E49030729EA980D6E006BD5AE930097AE50D41 + 8D56CD9B2314F5EE38BBE002847EBD0576014BB24FF39A2AF7975CC1CCA8E118 + BF6B04748406DBA28E21C05B48A640189360F683969C3449E4C0D080362B2FEA + 7C07FE21DD8DC77406AD5D8497CC1787C98D4D216C0216FE58C26BAAA4139855 + 3A14E183FB415429C7FBBEE910687CEDBE865E794170137AF4092057D48056E2 + F9C2D9829823827D8502BB00AE9FA8D4A64D897E1783B70462F4B81168123D82 + AC4E83F5630F9297911F398C3D3F9F5AA3C5C0B04066E583C37A9A40E473D822 + FC553D5136FB926300DB9946F1548A1993DF33264001A8A2100F2AA518E9F10D + DE140E8044A6341E6F91499895A79B6752790635875822C4B54F31C4F36DEC4F + 28B406CCDF7A82D75449253023721822B60531001A4125B175D25104770B81E8 + 490B56974D87CAAF09C27EBDC826F564D33AABF3D94B43522747B8DB20FC32ED + 77787B783B06F049E0C3091F189B6A7DB69A14A2B94A81C4B00D28AADD8CD680 + 6663F374510853D36D2134C2F41C039A6BC44CF33E9E3EB637F1DC1F8EF39A2A + F38B2E22297A9431010A4037648EA8AAAC4650EF40F4090F612E15F3B29506FD + BC47B58FA1AD790D9757FC656C9E3A6613909A718CC85D110791D474DDADDF7B + 9A7502F191A330BF2C82013C6FC20451907BC0A79BB7D925A1B382D84AA3B1BA + 09BD74FDD1E576348E6C74F041366BC31162D7AAA90C806D1D3EF90F12A24661 + F8F6202B80651AE6E5084137BF6EECAFD8987D148732E67003F0496052D44472 + 28B3FE56C11E822A1539C45956F5BD6AA6792F0F6F7C9759C01DC02501AAB6D6 + C4190174C37A432BAF341AEE8B20BFDF0503E52970273C98E7380424AF3B40EC + 494BE09C005DC5AA2406401797342844EDBD7A085BFB32771B7BEFD52EA0B645 + C3A971BAC6E4055B01EC216C41EEDDB9CFAA79BB80CFD20B885D69896402A6BB + C0A682339C1388899E6CF336690F4223B834CF1AC027812931716677126B882D + 8498FC84BE5E7E13A55FFC89018183587D356213307DCD1E222F7D261A25A63D + 9079E02CE70428005DA60F276B84AD0DDED8D008699D0287124F20A47B28BF04 + 2C015CEBA39F856D00ED21A8B24C830BC26509C4C7C5DB1CD0EC41F8226C023E + 5D9947E4A427A389E71E88DCD71B891F27328D5A42D8A6C106C10A90F5DB39CE + 09500053F3F611E68FF345B83401F3A21AE57249996F701A712EB51C9EEE9E8E + FF47D651C0F2D258543CBCCAEBB5F62AFCF5FE284EB9F062006CCA7228E35B76 + 013FA525E3B1EC1506B8AC73B37219E055ABFF01D224FFECC8C2825B00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006404944415478DAD5D90B4C13 + 771C07F06F4541411119EFE2638EB84563E666B24CB307225B9CE20B11A1660F + E71415898AA2710ED966DC226E8A2220A05337365F9DA8134286888F6DCEE9A6 + 89713E1010145A412A7DD037BDF57ADEADA557DA3B5AA2BF84B4B4D7F2FBFCBF + F7BFFE52040441E0592E4157804020E0F546E985D56E5989C081FDB12AE135F8 + F978396D84ECDDAD806F1747F71870E8EC2DD436B7BB84782A01A57FD440A7EF + 7409F15402AAAE3542A1D6B984F008406F34F50870B5B6052A8DDE06B1246E1C + 82060FB06BCCAD80550555C4B625313D06D44ADACDCDEB6D10D7EFB5213D7EBC + 1DC22300B59E02AC2DA8E0FC1ED94BA740AE31A25DA1B247D449909E30C106E1 + 56C08ABC4A2267592C03E05B46A3011D068143C4570B633C0348CD292376AD98 + DAE3046E4B1EA3FCF71AC8545ABBE7751A35F2564EF32CE0B1DAC87BF5ADEB6A + CD435CBC711F4AAD81794CA554F61E20B3F857B740E2A35F464D930C26930937 + 6A9B3C0758BAED17227F559CDB12B02EADC18446A90C07CAAFA0207D7AEF00DC + 95C0A645EF32F7371456780E90B2F538B17BCD4C8F2440D7FAFC321466CCEA1E + B0BAE82CAFA952D3A1425AC244CBA58FAC1F2AFE714BD31B3E8A65EE7F5E5886 + A275F1CE017C669A5CF1453360029380B44D01AD894058C020B740C8CACC3F89 + BD9FCEED1DC037872E586EE54A0DE7F7324287BF74D9D0A31D25F3CB113A50D8 + FB00A95CF5A41B13A724B4460DD24E26A251F02FFAF5ED8B7EF241D83DEB8405 + C109C07528DB21FE13194913D1AAA2004527AF586ED55A8DCB49D02B6F0C7980 + C0E1FE96C7944D6A0B226FC671ECDA7F09FB378ABA07A4EF3EC36BAACC3D721E + AB45D1685152008586BA35746A9914B45A021141EC49A8F51A6454CCC3833EB7 + 10306CA0CD733462842C0587372E770DC075A6D1AAD55836F74D3C946B312E2A + 1CE2CABFA125FA406F209C2641AFBC29B4D9AE796B44C77D2F9C493D07E1E048 + 8143C0CAFCD3BCA6CA02F179A425BE8549C5AF587EDF19578A205FA13901C2F2 + 631EC5A0354F9464E9CDF34D58D0109B9597F4BB83C0A101546A26BD43447FA5 + 3F8E9A37368960052CDF51CE6BAAEC50C891961C8339E2D1881A3312929B2ABC + ED9F0581CEDFE16BE89517444811323CC8BCA2267412FF2F1C1BC41A11E12F14 + 380470FD442D3A7AD60218B32D186FC4BE0EA9A405CA461D36C71C829731C0E6 + 5893793F8487F8312B1FF17C180532195D46046AC250B9E8A27380AB338D4226 + C30A510C124AC75A006491880737E598E0FD195E0819C5EC8336653BB3F274F3 + 4C2A26EAEF5A43BA22640D0A8CF5198F1F938FDB03966D3FC56BAACC3B5885D4 + E4C97875672803A0116412DBA71D43B06F2414E6536D4D65123483A5108E0C37 + 376934376DB07B3F4769B437AA10D56734BE9FF7337CBD7D9D03B824902A8A45 + 52E9184C9E32C9D254E793D52411E49E9833EC4B54B5E4A233A8D5D23C5D2482 + 6ADA164223A8634C68BD27639AF7F3F163DFC44BBE39C16BAAB44E8004D00D59 + 236A6FD623343218C3A38632A78A75B1A5411FD7D2F008FA7B437069ED6F96E6 + C9C7580129D9A544E1DAD990C8A9F36EF3FED3BC12B06D82827428D5F01BE46B + 754A18EC206C6934D74B116E188501B76740BCC5C907D9275F8B893DEB131880 + ABB5575C6D97001BA26B3943D0CD6F8AF9095BF28FE170F6626E003E094C8B7B + CF3C94D97FABE0084196C668FF095D7FB79E69BEBFB72FBEC829E10EE09280E5 + B6556401D00D1B4D9DBCD268AA93405537002FA916C28BF0668E710A58B0E920 + B12F33997302749569DE6700747149834434DCBD0F61E708E66AE3E86F750B68 + 68D3716A9CAEE8E2083B8023041BE4EE9D3A979A7708F820AB84D89329322740 + 5D05B69654714E60E68CE9AC974947101AC1A57997017C12889F39DBEA4A620F + 6143C81EB7E1DAE5EBA8F8F8025E0C1EEDD25723AC80F91BF611C5591FA2B99D + DA033907CF704E8004D0457D38D923D83678735333E48D1D382C3A85A101C3F8 + 25D015C0B5DEF94E6803E80E4156D734B8203C9640E2EC44D601CD11842F8215 + 90B4AE9828C85A0029CF3D30F540244473444CA35D21AEA6E10AC22540DE916A + CE099000AA79C708EBE7F9223C9A8075918D7239A5AC37388DA84EB90C1F2F1F + E7FF23EB2920A362166E3CBCC2EBB58E2AEAB951285B78AE7700AE54D7A18C6F + 3904E4662EC023E5330CF058E756E531C0B356FF01B541F2EC02861891000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000064E4944415478DAD5D9695013 + 671807F07FAA824444A420CAA1D652DBD1E9B4D52FB5D30F1ED42A2228B55A71 + 7AA07278B42AF52C44EA304C1515A91510B1053A58B5DE070C55411D6BADD519 + 9D712C2A020242904A202424E4DC66B3EE9A6343769784D1E75348369BE7F7FE + F3EE3E13440441E0652E912D402412093A5172FE4597AC84B79707362C781783 + 3C07396D84ECDDA5809D09937B0D3874E91EAA1A659C102F24E0C45FD5D0680D + 9C102F24A0E276033A551A4E08B700B47A63AF00B76A5AA1546BAD10DF444F80 + FF102FBBC65C0A5893574164254DED35A046DA616A5E6B85B8F3A80DC93113ED + 106E01A8B414607D5E39EF73642E9B01B95A8F8E4EA53DA2568AE47993AC102E + 05ACCA394F642F0F6700424BAFD7A14B276245DC78D082ACC429EE01ACC82E25 + F6AC8AE87502F7A5ED28BB5A0D99B2DBEE758D5A859CD5B3DC0B6857E905AFBE + 65DDAA7E826B771BA1E8D631CF29158ABE03480ACEB9041233F91D5437C96034 + 1A71B7A6C97D8065596788DC35912E4BC0B2BA754634B4C8505C761379C9B3FB + 06E0AA04D2E3A7338F53F2CBDD0748DC7E92D8BB36DA2D09D0B529B714F9EBE6 + F40CF876DF254153A5BA4B09C9E2E9E6CB1F5939C7FF7649D3295F85338FBFCF + 2FC5BE0D31CE0142669AF4C20A48E2A63109B429F5D019BAE12B16BB04429624 + F7347EFEEED3BE01EC387405DD7A91F9DACDB7F4D0E01F4D26B4E840C9A23204 + 7A07F71D402AD79AFFEED25037349DC1747EBD1ABE3EDE9CCED36D3AF6EBD3F3 + D120FA1703FAF7C700F960EC9D73CA8CE005E03B9465169F47EA928F19C09E63 + 572D9AE29604BDF2FA618FE137CAC7FC9CA2496546E4449DC49EA2EB28DA1CDB + 3320796FA5A0A932A3F01CB6C4CF60005A3D41AD3E9D0209D1AAE0E7CD9E844A + ABC6BAF20578FCCA3DF88EB43E86468C9625E2F0E695DC007C679AAE4E395297 + 46E069A71AC3FD87A2E48F5B30E84D4398C542384A825E796360B35DF39688AE + C67EA85C7119C14342440E01AB732F089A2A33F697212D2102530ADE33FFBD3B + F204FCC5C13629689E25616092A0575E3AE001FC427DA9638D5A8788810A1F1C + 316D6C12C10A58F96399A0A952D1D18ECD0991082F1E83B0F16320AD52E20371 + 0A3C0C7E0EDF43AFBC28A805C346F99B56D40803F17CE1D8209688209F609143 + 00DF3BEA8EA272A498BE42E3B302F061F8FB6891B642D1A0C1D6E947E08500AB + 63C9C1CCD7A73FB3F241AF0DA740463D67849F7A38CEC75F730EE03AD374CA64 + D894148988E2D7CD00B248C4E32A392679A462844F28D45AEAB3541A39B3F274 + F34C2A46EA732D21B608597D27DEF69C88030B4FDA0396EF3A2B68AADC5A7006 + 1BE36763C2EE40064023C82476CD3A8E0071083A4D9B7D63E52228BC9B103C66 + 84A949BDA9699DDDF91CA5D1D1A044D82BE3F0EB8263107B889D03B826D0DEFA + 04A949D18838F006A6CD98626ECAF06C354904B927660E93E04A7B0E44813273 + F3749108AA696B088DA08E31E2BF4732A679F2A716D64D9CB4E394A0A93263DF + 19A42450099000BA214B444D551D024302302A2C94F9AA58165B1AF471ADF54F + A17D3414D7D7FFC9FC4EC40A48CC3C41E4AF9FCBDC90328A2E084AC0BA090AD2 + A55061D0E0E7C39DCEF4BC2D842D8DE6BA168CD08D85D7FD281CDDE6E446B6F4 + 87A3C4FE4DF31800D7DA59586A97001BC2B69C21E8E6D3A7FE866DB9C7713833 + 811F804F026B13A21073702C6645CE34DD75ED7F557084204B6D1AE26CABEE61 + 1DD3FC400F31B66497F007F04980AC63DD4BCD00BA61BDD120288DA65A2994B5 + 5E784BB904FD080FE618A780B8F48344A16421EF04E82A557FCE00E8E2930689 + A87FD88860C368E66AE3E8B37A04D4B76978354ED7E482203B8023041BE4E183 + 5A4ECD3B047C915642EC97C49A12A0AE02DB4B2A7827101D359BF532E9084223 + F834CF1920248198E8B91657127B081B42D6DE86DB37EEA07CF115BC19308ED3 + 4F23AC804529854441DA9768EEA0F640F6C14ADE099000BAA89B933D826D8337 + 373543DED085C3B16711EA3B525802B600BEF5D12FC156809E1064D9A6C107E1 + B604E6CF9DCF3AA039820845B0023EDB5040E4A5C5A145E01E88280E41EC27B1 + 4CA3B610AE6970417002E4FC7E91770224806ADE31C2F275A108B726605964A3 + 7CBE52961B9C465C4CBC01CF7E9ECEFF47D65BC0BAF239B8FBE4A6A0F73AAAB0 + 57C7A274C9E5BE017029DBA14C683904FC2489C353C54B0C705BE716E536C0CB + 56FF033AECECECF9EC628C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006294944415478DAD5D9794C14 + 671806F067451644A4148B28875A436CA3691ADB346D4DD3A8B52DDEE2818AE9 + 61ADE2410B826284A235A66D40404401115B8FD05AAB784348C52BB5B556134D + 8CF5404056601175813DD973BAB3DB19869D197666D825FAFEB3EC35FBFEBE67 + BFD937838C20083CCF257305C8643249074A2939EF9195F097FB22237E1C06FA + 0D74DB08D9BB4701B9CB27F41AF0EB853BB8F9E0A920C4330938F6570D8C26AB + 20C43309387B4301B5DE2808E11580C962EB15E07A6D2BB40653374462EC5B08 + 0FF66335E651C09AE2B344DE8A49BD06D42ADBEDCD9BBA216ED43D46D2DCB759 + 08AF00F4262720ADB84AF431B257C6A0C36041BB5ACB425CBDD782B50BC67743 + 781490547886C85F359906482D8BC50C9D59C68BC84B98E81DC0EAFC0A6267D2 + D45E277057D986CA3F6BA0D276B29E371AF4284C9EE65D409BDE2279F59975BD + E6112EDF7A084DA7997E4CABD1F41D20B3F4778F40E64C781D354D2AD86C36DC + AA6DF21E6065DE29A268CD748F25C0AC4EB30D8A1615F6575E4371CA8CBE0178 + 2A812DCB3EA2FFCE28A9F21E2061EB7162D7DA595E4980AA0D4515285937BB67 + 40EAEE0B92A64A9DBA03D9AB62D0AA75BE3DFFE0398F349DF1F964FAEF6F4B2A + B07BFD1CF70029334D6A61157257C7D009A80D5698AD847D8EE9E71108599945 + 27F163FA7CEF025A354E40D6816AC7AD51C268618111FF18B361423BCA165722 + 2C30A2EF00CA0E93E3BEC9D2755C3149745A0CF8EA641C14B27FE1DBBF3F7C3B + 0661D7EC130E842880D8A12C7DE709E424C7D280AD072F396E655693E024A895 + B70C6944C88820C7639A26BD035138F33876EEBB827D1BE37B06A4EC3A2769AA + FC3AFF14C8B3906B02E4EA339308907327A13719B0AE6A011AFBDD41F0F0C06E + CF518891AA041CDA98280C2076A621CF423949B150B4E91012188882F2CB206C + 5D8BD05312D4CADBC29A59CD3311BA873E38B7FA22225E8894F102928BAA254D + 952905A750903C03134BC739EEE74C2947F8A0285602545149502BAFF4BD8790 + A860E7EB6C265E84BF260887ED1B9B44700212B7574A9A2AD52A15B252E230BE + 7818A2C78E82F2B616E3033220B786F0BE875A7959780B868C78C9BEA2365889 + AE85E3823011E14111325E80D85FD4F4ED47909B1A87B179A1786FF23B6851B6 + 42A33022FBE37284FA0D46A7ADFBE7F8CB7DE8950F7F79A81364B30846841886 + E2CCB2CBEE0142679AB6D647C8495BEC4880049045221A6F77E05DF93708F68F + 74EC03720F30579E6A9E4EC5E6FC5C26C415A16A50E335BF37F1F3A2E36CC0AA + 6DA7254D956402DF27CDC31B056134804290496C9B7614A10191D01874C8A85E + 88B6018D881835CCDEA4C5DEB499753CBE34DA155A44F71B83030BCAEDFB28C0 + 3D404A021FC44C743465FD7F354904B927DE0F5A8FBFD525F08B6C77344F1589 + 7036DD1D42219CAFB1E1F10315DD3C79A9857313AFC8392169AA4CC93D8CBCD4 + F98E044800D51013517BBB1E6191A118111D457F5598C59506F5BAD68627303D + 781157D22ED1D789380109D9C78892B4AE5FD4EFF6550B4E6073D2227CF85304 + 0DE86AC209D169F418382880F19530B3205C6934D7B76098793406DC9D892359 + 6E7EC8BEFCE108B167C33C1A20B4D20BCA590970215CCB1D826A7ECBA45F9055 + 741487B2978B03484960DAF429F6A18C7D55810F4196C13EC4B956FDFD7ABA79 + 7F790036E7978907884980AC0BBE890E00D5B0C566959446539D12DABA017855 + BB143E849C7E8D5BC0922D0789BD998B4427405585E1131A409598344844C3FD + 8788B08EA4CF367C9FD523A0E1A95154E3544D280D6701F8105C90FBF7EA0435 + CF0BF8745319B12733DE9E80F32CB0B5ECACE80466CD9CC1799AE483500831CD + 0B06484960CEAC58C699840DE142A8DA9EE2C6D59BA8FAE20FBC123A46D0A511 + 4EC0E28CBD44E9A6CFD0DCEEDC0362AF2E90099000AA9C3F4E6C04D7066F6E6A + 4687428743F1A711153C5C5A02AE00B1459E4699809E1064B9A62106E1B504E2 + 62E33807343E8854042760E1FA52A278D312B448DC0353F747227E6E3CDDA82B + 44681A4210820085BF9D179D00097036CF8F603E2F15E1D5049845362AE62BC5 + DCE014E27CC255F8F908F81F596F01EBAA66E3D6A36B92DECB57D18347A362E9 + C5BE010829D7A14C6AF10276642EC113CD730CF05AE78CF21AE079ABFF0040E8 + DEECCB3B3BEB0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005B34944415478DAD5D97D4C13 + 771807F06F45A8823A7422CA8B3843DCA25916B7CC6CCBFEF06D8BEF8ADB74D6 + EC853945944565A8730C9D21CC886F6CE345C40DDD988E4D059D103205347B31 + 8889268689BC08146801A5145A5AFA7AEBB5BBDBD1DED1BB6B4BF4F9ABED1DD7 + E7F3FBF6EE9E1C128220F02497C419209148441D2831B7D22B2B312AC01FC9B2 + D9089206B96D84ECDDAB80239BE67A0CF8F95A2DEE3677F3423C9680A2BFEB61 + 305A78211E4B40F91D39FA74065E089F008C66AB4780DB8D5DD0EA8D83100931 + 2F232C58EAD29857013B72CA89A39BE77B0C6854AA6DCD1B0721AAEB3A90B4F6 + 3517844F003AA303B02BA74CF031D2E317A1576F86BA4FCB0BE155C0B6AC2B44 + C6968534406C99CD26F49B24AC889BB50A1C8B5FE01BC0D68C122273DB128F13 + B8AFEC41E95FF55069075CB61BF43A646D5FEA5B408FCE2C7AF59975BBBE1337 + 6A5AA11930D19F69359AE103A4E4FDEE15C8EAB92FA0BE5D05ABD58A9AC676DF + 01E28FFE4664EF58E6B504983560B242DEA1C2E9D25BC8495C3E3C006F2590BA + F14DFA75726E99EF0071878A89E3492B7D9200557BB24B90BB73D5D0804F4F5C + 1335556AD53DC8DD150365AFD1FE3EEDD455AF349DFCE142FAF597B92538B17B + B57B809899E6E303E77072CFDB34C01795927D09DF7DFECEF0003C49C00C036E + 1AD261841A05EB4B113A267CF801626BC0ACC72797D6402EF907FE2347C2BF77 + 2C8EAFBA68470802081DCAE20E14223F659D4709502B6F9ED4860951E3EC9F69 + DA757644D68A62649EAAC2A9BDB2A10189C72B444D9514A0A5DB206AE575463D + 7696AD45DB885A044F1D33681B8598A68A43E1DE047E00A1334D9F4A85932932 + B43ED480F09322E36C85E095B7862A5C9A6722FA5BFD50B1F53AC29F8A907002 + B6675F1535556E4E3B6307CCCB9B6D7F7F78F179848D8DE4BDF24AFF3A4C880C + B67F66B2B29F47246294661C7EB59DD824821590F075A9A8A9B2A7AB1379FB3E + C0ACA321889E351D6DF77AF16AC01708944C74BBF292B00E4C8A9A685B512B2C + C4FF0BC7066122C2C6854B380142EFA809693FD280D717BE820E65173472038E + 2DBD8090C00897FD4D96017AE5C39E99EC0059CDBC1113F4937165E30DF700BE + 330D330112401689604B82B9F254F3F436ABE37B99106784AAA50FCF4B5FC24F + EB8A5D015B8E5D163555C6EFCF47CEBE58BCF84D280DA010EA663D8E2C2E4248 + 50048C161D92AFC8D02D95237CFA145B93665BD32697E371A5A1966B113D6226 + 7E587B1E810181EE017C1378A468A7010B16CDB33765F96F35A924E6F827E1AE + 291FD208B5BD79AA4884A3E9C1100AE1D8C78A87CD2ABA79F2510BEB49BCF9F0 + 455153253301124035C44434DE6B42684408A2A223E99F0AB3D8D2A0F6EB6A79 + 0463F37854EDFA937E4EC40A884B2F22C44C95CE090C6EC201E9D7E810343690 + F19330B940D8D2503475608A690646DF5F817307DDDCC86C330D2166A6D9F1D5 + 694E80731ACC7287A09A4F9D7F0607B32FA0307D9330809004BE4D89C59CCC50 + 2C5DB6D83694B93E55E04290A5B70D71CED5D4D044373F2A2010FB330A840384 + 244056D5F8CFEC00AA61B3D5222A8DF6074A681F8CC673DA0DF02302E87DDC02 + 6253CF129E4C9525FAF768005542D220112D0DAD08B74CA3AF365CDF352440EC + 5439372FCC05C085608334D43DE0D53C27E0FD7D05043994297B1D57814305E5 + 821358B96239EB65920B42218434CF1B202681D52B6318571257081B42D5D38D + 3BD57751F6D11F78366426AF4723AC80F5C9F90439D328D48E7340C85C4F2540 + 02A872DC9C5C116C27B8A25D815E793F0A659711193C555C02CE00A1F5C6F7E1 + 83004321C8724E4308C26709AC8959C33AA07141C4225801EFEECE23C83B6A87 + C87360C9E908C8DE92D18D3A43F8A6C107C10B90F54BA5E0044880A3796E0473 + BB58844F136016D9A8909F14F304A7109571D590FAF1F81F99A7809D65AB50D3 + 794BD4DF7255F4D33350B2E1FAF000F894F35026B63801E454F948F304037CD6 + 39A37C0678D2EA5F5361AEECA217C1A50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005B84944415478DADDD97D4C13 + 771807F06FE5A58A8A8822CA8B6F21CEB8982D596266B23F9C638B8A82BA0D15 + B217C694175D1437754E9933C419715396C99BB8391CD3E11CBE4C08990A9ABD + 38A78B260BF3050129D00262696969E90BBDF5DADD796DAFF67ED796E89EBFCA + 5D399ECFEF7B2FCF0509455178924BF2BF03482412E2836C2CADF7C92A4C8D0C + 4546C2B3900605086A82EEDD6780CFD7CCF31AF0FDC55BB8AFD609463C768093 + BF37C2601C148C78EC00176EC8D0A7330846F81C60345BBC025C6FEA86566F74 + 40A42F9C8991D291BC4DF90C90537C81DA9739DF6B409342656DDEE88068EFD1 + 223B71162FC2E7009DD10ED85C5C4B7C8CFCAC0550EBCD50F5695D106DF7D558 + 9B34DB05E133C0FAC2735441763C0B105B66B309FD26092FA249AEC2F6D4B9FE + 01AC2DA8A60EAC5FE47502B715BDA8F9AD114AED80CB7E835E87C20D09FE05F4 + EACCA2579F5BD71BBB70B9A10D9A0113BB4DABD10C1D20B7EC679F4096CF7B06 + 8D1D4A582C16343475F80F90B5EF27AA2867B1CF12E0D680C90259A712E535D7 + 50BC71C9D0007C9540DEEA57D8CFDB4A6B8501DE3F78917830EBEF53A3E48324 + BF24C0D4D6A26A946E5A2A0C403A1664E49F44E9E66550A88DB69F777D73DE27 + 4D6F7B3B9EFDFC4969350E6E59EE1FC0BBBB4FE0D0D6D75880B73560D66353CD + 4A28B47214269E42E4A868E4169DC1571FBD3E34006F1230C3803F0DF9304F68 + 4750602082D4A351B2F4340E1CF98B0C4032D764EFADF24902F4CABF77261932 + C93F089F126ADBA6E9D0D910539519A8FC789D67C0C6923AE2C12C6377250EE7 + AEF22A0166E52D9172844D1EE5B08F46F4B705A06EED25448F8961118F04908C + 05F45D8806B43E30C06C1C4060F070A2E67546EB395FBB02EDC36EB934CF450C + D784E287D41A16C10BD850749E7830CBDC7514877253AC099890727C0ED41A23 + E6046F458864BCE095974475223C36CCB6CD64E13F159D11BC80755FD4100F66 + 7D4A250B98571685B8A7A7432333607F4215A246C77A5C7945D01D4C9832DEBA + A2160C520F178E0FC2454485464BDC02481E4AEB767D8BB21D6F41AE32E2E5AF + A3F142FCF3E85474A3FDA61A7383B7F326C15DF9A86913EDDB2C66C18870FD44 + 9C5B7DD93340C858D0DBDDE502A08B4630494484C43C6C6A70805D79A6791666 + B1FF5D2EC419A16CEDC36CE973F86ED5295740F6FEB3C483195F024C3927C1AC + BC344685E8E993AC4D9AAD4D9B5C8EE92E0D954C8BB861B37064C58F08090EF1 + 0C1092408FBC03C53BD2D069BD061695C7E0A5052FDA9A1AFC6F356984EA9E1E + 79F11538F0C7163C90CA6CCD334523EC4D3B421884FD3B16DCBFA7649BA75F2F + 792FE2CCCF4E53A48359D6CEC32E00A6212EA2E9660B22632230252E963D55B8 + C59706F3BDEED61E4CA366B2CDDB4F331E807530A3480733BE041C9BB043FA35 + 3A8C1C1DC239254C2E10BE34E42D9D30DE1B8B2B9B7F7578B1E70558E71A8A74 + 2CC8F9B4FC9100E734B8E50941373FC93403236E27E2C41E01A38433404C0209 + 8B175AE71AD717737708BAF4D639C8B95AEEB6D89ACF9B7F147B8AAA5099BF86 + 1C2034812F73D3D0A37908601A365B0645A5D1D1ACC038C3645BF3C38343B0B3 + A04218202DEF18453A98D109307565EC872C802992346844EBDD36689B4760A6 + 361D015430BB8F08400F66628A1E259C01EE107C90BB779A113D38D5E16EE3AE + 78016FEEA8A098B986AEBD15178800D5FA379094B884F736E9290D92E60503C4 + 24B03C6919E74EE20AE143287B1FE0C6D5BF51FBCE2F782A6296F8FFD0A46E3B + 4C3163015D05C7EA8813A0014CD91F4EAE08BE0B5CDE21875AD68FCA94B3880D + 9B2C2E01670069D1B31017F028045DCE699020FC9640F2B264DE01CD1D442C82 + 17B0724B19C53C94C414FD1C487935856DD41922340D21084180C2E3F5C409D0 + 007BF3EE11DCFD62117E4D805B74A324A714F7026710F51957210D907A7E9079 + 0BD854BB140D5DD744FDAEBB8A1B3703D5E997860620A4F8E61A31E516C00C66 + 4F2CC06F9D73CA6F8027ADFE053DA5C5EC821868A00000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'MoveRemote_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005A64944415478DAEDD9794C93 + 771807F06F45A8D6C1100F9472A861CEB0982D596266B23F9C738B8A82B80527 + 665B1C5314342AF31851428C710BB8297303048C8863F39853B70921F3CE0EE3 + 34D1C4380F44A4D016114A4B4B4B0FFAAE6FEB5BDFF67D5FFAFE7A1849F6FC03 + 7DDF1ECFE7F77D8FA7A984A2280CE592FC0F78DE00128984E80DF22B2F046505 + 26C5462127F53548C3C3443740F71E14C0D72B67050C3872F10E1EEB8C4488E7 + 0A70F2EF26982D034488E70A70EE8602BD46331122A8008BCD1E10E07A73270C + 268B07227BDE348C928E126C2828800D15E7A8DDAB66070C68566B1DCD5B3C10 + ED5D06E4A6A50822820A305A5C80CD158DC4CD97AC9E0B9DC9066DAF8183687B + AC435EFA745E445000EBCACE50A5B973DC007FCB66B3A2CF2AE14534ABB4D8B6 + 6C66680079A5F5D477EBE6079CC05D750F1AFE6A82C6D0CFD96F361951B63E35 + B4801EA3CDEFD567D7F5A647B87CAB0DFA7EAB7B9B41AF7F7680C2EADF830259 + 3CEB55342935B0DBEDB8D5AC0C1D60F5EEDFA8F20D0B829600BBFAAD76283A34 + A86DB8868AFC85E2009F555D249A6D4C7D06B001C14A60C78A77DDFF6FAD6C24 + 0390DC59577DF50BF66D4C0F49024C1594D7A372D3A2D000724A4EA2727306D4 + 3A8BF3F1CE8367036ED80633BA62AAA036A85095710A7B0FDD40D596C5A1017C + FAE571EC2F78DF0D08B4FA6D26ACFD35130AC9BF081F3E1CE1BA48BCA45F8BBA + 82956400B1A341EEAE131E804012A057FE1F73096CE3DB119314E5DCA6571AD1 + D71686F37997207F31DE03C10BC8DF779E68B6F10604BAF2EDC3EE203AF1058F + 7D3462843E0A3F2D6BF0400C0A107B67EDEBD5A1A670A91BB0FD603D8643EAD7 + CADB63559CE60743F002D6979F259A6DF28A8F3A01ADDD66E7E3AC63339C7FF7 + 2E3889B132B9CFD71B2D266C6A5C0275F83DC424443BB759EDFC697A2378016B + BE69209A6D7A351AEC2FCC7224E0BAF5CFAA8E43F22B53D07E5B879911DB2093 + 8CF5B9F292B80E8C4F1AEB58513B06A8A70BC7076123E2A2E4124180D8EBFABA + E2231CC09B73DE4087BA137A85197B524F202E3261D0958F9B3CC105B2DB4423 + 624C137066C565DF005F77D69ECE47A82EFA182AADEB83DE39207702E8A2117C + 49B0579E69DEBDCFEEFA5C36C41BA169EDC574E9EBF861E9292E2077CF69A2D9 + 66CDCEEF05010C8249629C2C1ED6817EE7CA774B15904F99E868D2E668DACA79 + 5FA134B40A039287A5E0D0929F218B90F906F893C0DB73DF723635F064359924 + 66846FC44D6B0DA4F15A67F34CD10857D39E1006E17A8E1D8F1F6ADCCDD3DFD0 + 784F62C76C4391CC36ABB7D7A0A268393A9E9C03F36BE39D00A62136A2F9760B + 62E3C7212939C17DA8B08B2F0DE6799DAD5D984C4D7337EF3ACC78008ED98622 + 996DBA544A41C0D3265C903EBD11A32265AC43C2CA81F0A5A16AE9E0342F0870 + CC3614C99D75C317B53E01DE69B0CB17826EDEF27034AE6CFE93F3C55E14C09F + 045217CC738C06DCEFB64208BA4C8E51C2BB5AEEB760A2752A46DE4DC3F1E235 + E286B96024400398866DF601BFD2503E50638C39113B66FF88E2F213385A2272 + 1A5DBEE330C59E6DC424F06DE17274E9B900A648D2A011ADF7DBDCCD8F889061 + 7B691D3980996D7CD59692431E8FAF8CFE9C031042F041EEDF7B00C383919866 + C8461815E1DE2E1AF051511DC51E0D76D59D130561AADEF421D2D316F25E267D + A541372F1F98C4B9DA0895280069D1B3D0E2F40CD695840BE143687ABA71E3EA + 4D347EF2075E1E97E2FFEF03CBB6D650EC3B6BE9E1F3C409D000A65C37272E82 + EF04572955D029FA7034EB3412A213FD4BC01B405AF428C1060C86A0CB3B0D12 + 44C812C8CCC8E41DD08420FE2278011F6CA9A6D8D775D2A22FA359EF65B91BF5 + 86884D430C4214A0ECD805E2046880AB7961047BBFBF889026C02EBA5192438A + 7D8233880B3957210D93FA9E8502056C6A5C845B8FAEF9F55AA14A1E3315F5D9 + 979E0D404C098D06A4250860CF36431210B2CE591532C050ABFF00D190B4ECF4 + 25D70D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005954944415478DAEDD87D4C13 + 771807F06F412896C914753ADE9C866D84C56CC9926526FB8339B6A8284CB7F8 + 82D91665BE0C587871E08C12B230B780DB64D910143387BA299B43B72821535E + CC368DD34493C5F9028814689197D2D237FA426FBD76775EEFA5DCF5C548E2F3 + 57B96BE9F3F97DAFF77B5A19411098CC257B0478040830402693897E71E1FED6 + 80E89F9A13852D692F401E162AFECD9D45F6EE37E0CBCD297E038EB7DDC4A0CE + 2419F1D0004E5E6887C53A2E19F1D0009AAF29316AB24846040C60B53BFC025C + ED1C80C16CF540642D4D42A43CD26B337E030AAA9B89AFB62EF61BD0A9D63A9B + B77A207A870CC84E4FF68A0818C06475038AAB9B24375FF1C112E8CC7668470D + 1C44CFA00E39190B05117E03F2AACE1295D9A934C0D7B2DB6D30DA64BC884E95 + 16BBD62F0A0E20A7F20CF16DDE32BF13B8A51E41E35FEDD018C638E72D6613AA + F2D3820B1831D97D5E7D665D6DBF878BD77BA01FB3D1C70C7AFD830394D4FE1E + 10C8AA94E7D1DEA781C3E1C0F5CE3E69806D07DA448F0766A301FB0A96072C01 + 668DD91C50F66B50D77805D5852BA401C46E4ED97B4F7B00029540D9A637E8C7 + 3BF737050FB0F58B5F51F35146C013D09A8D286A5C0BB54185A78DF9A82BDA18 + 1CC0968A93D85FBC126A9DD5F5F7EEEFCFF9DDBC1D16F446D54029FB176153A6 + C0D8138A969CF3887D3C8E83F00A10B3BB66EF69C0C11D6FD3007F6BCC6EC687 + BFAD76351F3D2FCA754CDF6742843E0A3FAF6FE420780185352DA2C70336C09F + 04C895FFDB5201C71C15A6273CE6714E08E1152066731A3399380990AB188208 + 844F117F3BA656BE37E426A7796F085E40FEBE73A2C7839CF27A1C2A59E79140 + 9B659BEBF14BE13BA090CD12BDF2B2987E44C74F771DB339F82F4936821790FB + 75A3E8F1C038AA7301BA872DF4B194DA18243EB7007AA50555E9A7304B112BF8 + 7A93D58CA2A6355087DDC613F3663957D48171E2FEC2F141988898A858992040 + CCAD31AFFC380E96643A13706FFD7B8E36E38CF91DBC92FA32FAD503E8BDA1C3 + A2F05DBC4930573E66FE5CF731875D3422DA3C1767375D9C18E06D731AD5683C + 00540224802C124126B137AD0131D3E279579E6A9E8639DCEFCB84B0119AEE51 + 2C94BF881FD69DE2029CBB2B21763CC8DD7D04B5A5EF41A575BF41E5B1163A01 + AAD849502B2F8FD32276C193CE26EDCEA66D9CFF2D94865669406248320EAFF9 + 058A70C5C4006F098C0CDCF30090F5FA77B1786DC9ABAEA6C6FF5F4D2A894F53 + 8FA0F2423186E54A57F354910877D39E100AE17E8E0383773574F3E4971CDE0F + B1733C20C48E0742099000AA2126A2F34617E6C4CDC6BCC478FA5261165F1AD4 + F306BA87309F48A29B775F663C00E77840881D0F86547DA82EDD807EC6676059 + 5D1C0DB8DF841B62D49B10394DC1B8246C1C085F1AAAAE7E4EF38280F73F3F41 + 881D0F0A3EABF30054FDD4EA91001F825D1321849A170DF02581B4E54B9DBB2B + F7EBA110822CB373376657574717AC7767E052F19FBC5FEC039E001340356C77 + 8CFB9446DF1D35665A1230F5563A4E94E78A1FA737941D23D8E3812F09304B4A + 1A24A2BBA3C7D57CD9E21F51BEAF01F5159BA50398E381506DAF388C6F4A3660 + 48EF1D2084E08374DCBE43371F11AEC0279547A501DE2D3D4AB0C7036F09B0EB + D28C8F9191BE82F73639511A64F3863B539164C84228114E9FF70B20B5C85162 + 55C64AC69D840BE14368468671EDF23F68DAF8079E9D9DECFBAFD3EB771E22D8 + 9B9394226FA324802AF7E6C445F07DC0557D2AE89446D4679E46FCF404DF7E9D + 6603A416394A3001DE1064B1D39082085A02AB57AEE61DD08420BE2278016BB7 + D712EC5BA39422EF42996F65D28DB22162D31083100520C703A909900077F3C2 + 08E6795F11414D805964A3522E29E6079C42B46EB90C79A87CE259C85F4051D3 + 9BB87EEF8A4FAF15AAC499CFE04CD6F907031053DE7657292508608F07930E10 + B4CE191534C064ABFF001ACCB9ECA81972190000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000057F4944415478DAEDD87D4C13 + 771807F06F15A896C918B2E178D169C862DCCC962C5B66B23F98738B8AC27006 + 15B22DC4F932D4A1CC972D939085B8051CCA5E1015338663BE4C07BA09212AE2 + 926DC669A28961BE0022055ADE2C2D2D2D7DA1B75EBBBB5D7BBFEB5DDF8C243E + FF10EE5AFA7C7EDFBBDFD343465114C673C91E011E011E01DC0132994CD21BF3 + 0F340745FE4C5C14D6A5BE0879F844691FCC29BAF78000A56B5302061CBB780B + 033AA35F88870250F7572BCC9631BF100F05A0E9BA12C346B35F88A0002C367B + 40806BEDFD30982C6E88D58B6623521E29DA4840802D154DD49EF5F30306B4AB + B58EE62D6E88EE410372D3E688228202305A5C80ED158D3E375FF2E142E84C36 + 68870D3C44D7800E1BD2E77A450404C82B3F4795E52E6001FE96CD66C5885546 + 44B4ABB4D8993D2F34800D65F5D477798B034EE0B67A080D7FB6426318E59D37 + 9B8C28DF9C1A5AC090D1E6F7EA73EB5A6B1F2EB574413F6A658F19F47ADF011F + 1FBC2869C2D2ABC30514549E0D0A6459CA0B68EDD1C06EB7A3A5BDC73F8094FD + 3D77EF19ECDBB2246809706BD46A87B25783EA86ABA8C85FFA6000C14AA068CD + 5B8EFB6A0479BFADC42DF53D9C5D7F1E098F2712110101D67F751AFBB7A6073D + 01AD69049B7ECD8452F60FC2C3C230491F8513D90D44845780D880DAB4E7340E + 6CCF805A6771FEBEEB87F301376F8319DD51FB9DCDC7CC88721ED3F718051144 + 40FEFE0B92266CEEEE5A1CFA74390B08B4466D26E7CA774FB885E8E98FB99D13 + 42780588EDEFA346A31B8049805EC530C87D5EF9BFCD25B0C7A978CD7B431001 + 9BF79D9734613F2A2527B0FCC8CBCE9FDF2CA9437C54A2E4955787DF414C52B4 + F398D54E4ED51341046CFCBA41D2841D19D6A1AA60152F817AD3BB487E6E16BA + 6FEA302F622714B258D19597C5F7E2A919B18E15B5638CFA7FE148102E223E2A + 41260810DB5DF24B4F38019DF7CD6EC7532AE3F1DA8257D1ABEE875E694679DA + 29C42A1278EF375A4CD8D6B8C2B9F2F133A7B940769B64448C691ACEADB9240E + 10DADF87351A1C2AC87224E01AFDBB6B9AD80468005D3482940477E599E6D973 + 76D7E772219E084DE730E6CA5FC24FAB4EF1018E01454999B079C5C7DC009E09 + 30C524B137B516F15392D895BF2F572261D6D38E266D8EA6ADBCBF2F94865669 + 40F2843938BCE217282214E200A10486FAFB5059F83E545AD7EA941DBDC026F0 + C6C2D79D4D8DFDB79A4C12AF846FC50D6B15E4895A67F34CD10857D3EE1006E1 + 7A8D1D03F7346CF3F47302F126764C584ACA84DDB8EB473700536F7E9FE00430 + 0D7111ED373B1097F824662427B1970AB7486930AFEBEF1CC44C6A36DBBCEB32 + 2300D695D4515226AC5802EE4DB820237A2322A728389784950721A5A1EAE8E5 + 352F08F8E0CB93949409BBE58B6A5414E6A0D7E31E585C9DC80378A6C12D3184 + 50F3920142090CAA7ADC00E53F37B309A42E59E41850FC272C21045D26C740F3 + AC8EB60EC1E6439A000D601AB6D9C7FC4AA3E7AE1A86BB937179FB1F820FF644 + 404ED1518A3461C512200198F2250D1AD1D9D685A9E6E9987C3B0D278B37FAF6 + 40C3003C27AC67ED28392C1920842041DAEEDC75365F34FF088AF7D5E278C95A + DF00EF15D650A4094B4AE0DB821C0CEAF980F4B4A5C46D522C0D6EF3932214F8 + BCAC267080B7044875F9894FB02C3D83B393F021248466E83EAE5FB981E7B59B + A1188B638FFB0CC8FEAC8A22EDEF528BDE85680053AEE1C447906E70558F0A3A + E5088E679D4152F474FFFE37EA09F0B5E849CC05784390D2F00511B204323332 + 895FD08420FE228880953B2A29D2EE22B5E89B38EB9D2CB6514F88D434A42024 + 019809EB4B0234C0D5BC30827BDE5F444813E016DDA82F9714F7066710CDEBAE + 403E512EFE5D2850C0B6C6B7D1D277D5AFF70A55F2D46751BFFAF70703905262 + 034A6A09024813765C0142D639A74206186FF52F4E1AAFEC271EC45200000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005834944415478DAEDD77D4C13 + 771807F06F15E8840D11D954CA8B1AB23917B3254B96B9EC0FE7DCA6A230DDA2 + 02D916E20487F8068A33939885B8051C8E65E3453173BE4D9DCE974D8C99202C + 7B31CE259A2DCC170446A52D2294969696B6476FBD7657AFEDEF7AD76B9961E1 + F98770776D9FCFEFDBFB3D57194DD318C9251B058C024601FF33804C26137C51 + C1EEC690A8A74E8A466EEA3390878F15FE504231BD4B0694E7CC091A70B4E906 + EEE94D92110F1C70EAD71658AC4392110F1CD0704D897E93453222688095B207 + 05B8DADA0DA3D9EA8158B96006A2E451A21092011BAB1BE85DABE7060D68D5E8 + 1CCD5B3D109D3D46E4A5CD1485081A60B2BA0045D5E7036EBEECBDF9D09B29E8 + FA8D3E883BF7F458933E4B102119B0BEF2025D9137CF0D905A1465C3804D4644 + B4AA75D896357B78006B2AEAE82FD62F0C3A819B9A3E9CFBA5055AE3A0CF798B + D984CA0DA981030AF734090E29E6CD19409F8992BEFC9CBADA7217979AEFC030 + 68731F331A0CD201425B64FE67E73C00C5B53F8404B274CED368516961B7DBD1 + DCAA1A3E40DEA76751B57151C812E0D6A0CD8E1B9D6A14D665607C0C85C32B4E + 43313E8108091920540994AC7AD5715F0D20F7D43228657F213C2C0C0F19A271 + 3CEB1C11E117E06F8F5F57F13D6A36A5873C019D79006BBF73351F9B1CED3C66 + 50997811444041CD45C121B576D719EC2E5A028DDEEAFC7FC757F541374FC182 + CEE81A748EB98198A4873DCEF121FC02FC6D91832613F66E7DD30DE09695A211 + 1116D883E5206576AE3CA9797F0822604355BDE0905A577ED203C04DA0C952E8 + FCFB5CC45644CAE244ADFC6F9632C8E2BB109B18E33C66B35B89D77A238800C7 + 162938A4FC25F042F514A43C351D06A5059569A7111F9D20B8F29AF05B782C39 + CEB1A2760CD1F7178E04E122E2A315325E80BF1BB4A0FC38F615671013A833BF + 8517E73D8F2E4D373AAFEB313B621B3109EECAC74F9BEC3A66A7442362CD9371 + 61D5256100698B1CE8D73B011DBD169F73736AE39D00A618049B445CA4C27D8D + C96AC6E6F3CB9D2BCF36EF86D95D9FCB857823B41DFD98257F1687334EFB021C + 7B3C2D34A4D6971EC5DEE24C4702AED1BFF350834F026C7927C1AEBC3C4107C5 + F4298E262947D3369FCFE04B43A7342265CC4C1C58FE2D2223228501A404FAB5 + 5A0F8077022FCF7FC9D9D4D0BFABC92651FADA41ECFCA908BD72A5B379B61884 + AB69CFF76311AE6BECB8F7B7D6DD3CF3A84DBC89577F7286161A52F93B0EA276 + FB3B50EB5CD1561CB9E8910003601BE2225AAFB76352C2A3484E49747F55B845 + 4A83BDAEBBA307D3E819EEE65D5F330220B7EC142D34A4FABAEF7A00B8F5CA97 + 0A37E07E132EC880C184A84722395F099B0F849486BABDCBA7795EC0BB1F9FA0 + F9B648B636951D16950009E15D4208BEE645034809F4A855A8DE9E8D2EC23DB0 + 707F0252172D70ECF1BE3F52F8104C991D33C1BBDA6FB7F3361F54021B3FDAEF + 01A8FCA6D1230106C0364CD98724A5A16AD340313495B7795E4076C9119A6F48 + 059200B70249834174DCBE0363DB385C2EFAD9EF0F7BBF00D290626B4BD98180 + 007C0812E4F6AD364CB42461DCCD349C28CD0FFC17D9DBDB0FD17C434A6C02E9 + 698B89DBA4501A6CF32573BF4669D5491C2BCB091EC097C0E7C5D9E83190014B + D3977076125F0809A1EDEBC5B52B7FA26A713D92639EC0871587A401B23ED847 + F36D91DC04F8EAF284F79D00B65CC3C91741BAC1D52A35DAFEE8C693FD3990DB + 278406106831838C0BF08720A5C120F4CA011CCB3C8BC498A4E149C05F31DBE8 + B225CB880F687C10A9082260C5965A9AEF061553CC3D90F946A6BB516F88D834 + C4204401B8434A6C020CC0D53C3F827B5E2A625813E016D368205F29EE0DCE22 + 1A73AF403E562EFC2C142C60F3F9D7D17CF77749AFE5AB94898FA36EE58FFF0D + 404C89D9E3C5142F806F488D18C0B075CEA961038CB4FA075573A4EC5647D5FF + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000057C4944415478DAEDD77F4C94 + 751C07F0F729788946A628CA81A863CDD95C6D6D2D9B7F58595351086B28B86C + CE1423931F2AD682B1E6FA2145E10C5071818653D3924A184B10DB2A67B46939 + 13E5579C70C72F8F3BEEB8E3B8E39EEEB9A7BB9E7BEEFB7C9FE339D0D8F8FCC7 + 3DF73CCFE7F57D7F9F0FCF291886C1782EC504600230019800FCBF000A85827A + 42E691BA51112F080F454AEC9350064F56C8BD06DBBB2C40FEF61501034E5F6E + 408FC11C10E28102CEFFDA08EBD0704088070AA8BDAE46BFD91A102220C090DD + 1110E05A73374C96212FC4D6D58B314D39CD6F842C4046712DF3D98EE7030634 + 6BF5CEE687BC10EDBD26A4C62DF11B1110C03CC401B28AAB47DC7CDE9BAB60B0 + D8A1EF37F920EEF618F056FC52BF10B2006985179982D4951E80DCB2DB6D18B0 + 298888668D1ED99B96C903EC3E7A993AE7AD1633BE485B137002B7B57DA8FAA5 + 113AD320F11E85E9B1F201B429B3F360950BD067B6079480BBAE3576E1CACDBB + 300EDA3C9F998CC6FB07C829F9715420EB573C81C60E1D1C0E07FE686E816176 + 293A4D5A9CDC5801D52391448C2C40EAE7175094B176D412E0D7A0CD8186760D + 765726C13EA71DC1414178C8188AB39BAA88082A406C4CA61FAAF2028C5602FB + B7BDE47CAE0690723E116AC55F98191DEAFADCD8611645100199872F51E7FCAE + 821F70784FFCA827A0B70CE0EDEF13D13EA90133E64FF73A2686A002C4A68CCD + 6AC591AC04680D43AEBF3F28ABF13A6E871541508EA879F69CF6D0C3C4E66908 + 2220BDA8863AE777E57F8B63EFBEEA01082BE9D472D8182B0AE32A103E5D25D9 + FCA0DDE25A796DF01DCC8C9AC12D92837C6D218208704E198636E707CD662F80 + 30814ACB6B88797C11DA6F19B06C4A36421461D495FFCD9A07454427E6448739 + 57D48161E6BF852341F888885095421420B6C7F71EACA026F06CF13C2C5FF90C + 3AB5DD30AAB924224223A92B1FB1702E0772D8FD46CCB4CCC5C56D57A401C229 + 33D06F40694E12350116C0168B2025C15F7977F39E630EEEBE7C8810A16BEBC7 + 52E553389954E10B70CE798636E733F3CFBA006DF7ACC4E32B4A223C0037C29D + 445888CAB9352DD85BBD01F7946AA816CD73366977366DF3B98E581A7AB50931 + 9396E0C4866F103225441A204CA05FA7C3B19C646702DC4D3F29AFF549E08555 + CFB99A1AFE7735DD493C1DBC07376CA55046EA5DCDBB8B45704D7B43DC08EE3B + 0EF4FCADF334CFBEAD121FE21D9F7EC7D0E67CDA81D35E0052022CC0DD101FD1 + 7CAB15E191B3111D13E5D92AFC22A5E1FE5E775B2F16328B3DCD73DB8C0048C9 + 3BCFD0E67C5F77174A725F8746CF1D2F387589988077131C64C068C6B4874378 + 5BC2E60321A5A169EDF4695E14F0C647E718DA94D99377D20B20AC17BF54F900 + 8469F04B0A21D6BCDF003909C4AE5DED1C93BEEFF96208B62CCEB12AACD6A656 + D1E6652790F1E17114E76E41A7C833B0E678A40BE06ED8EE18969546478B16AA + E105A2CD8B02B6EC3FC5D0E67CAFA6C30B50F8751D31017E8D240D16D1D67457 + B2794980D89CDF9777C2EF04A4102448D39D16985AA6E26AD6CF923FEC8980CD + B9E50C6DCE0B132001E2E3D611C7A4541A6CF3B3ACF331F5761CCE1DD829EF27 + A510202781F5F109BC49E20B2121747DF770BDFE068AD6D5A0ACAC1E67F2B6CB + 036C7AAF94A14D19368143395BD06BA403DCC5FD73F245901E704D87063D2DFD + 88D46C46C5C7FB460720ACECFCAFA817BDFAE83B5E001A8294068B68F9B31B35 + A975889A317FE4CF80540252C54EA1C48444E20B9A18848430A8077026F90215 + 41046CDC57C2D0F6B854B15B28F995644FA34288BF69F883F00B209CF3FE24C0 + 02B8E6C511FCE37211639A00BFD84647B2A5F80FB81B5197520FE564A5F4BB50 + A080BDD52FE366D7EFB2CE15AB98598FA172EB4FF707E04FBD5F50EED79C972A + 51006DCE8F0BC09875CEAB31038CB7FA0787109DEC0BB99C090000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005584944415478DAEDD97D6C13 + 651C07F06F075B71E09C13196CE3358B2128D1C4C488F18FA9A8BC8FA141B645 + CD326138358CB72171CB6288210CA723081B8C88C21640300C650BD18DCDF842 + 1013F085807B75A36BF746D7AE6F6B7BEDD96BBD7A6D9FE7EEDADB4492FDFE59 + 76776B7F9FE77BCFAFD74CC5B22CEEE6528D03C601E38071C0386054012A958A + 7AF196434DA3A29D931887BCE58F411D3D41A5E475B8DEC306946D48530C38D9 + 7C130346AB62C41D039CFDA91576874B31E28E011AAF7563D86A578C8818E060 + DC8A0057DBFB61B6390210B94BE763B27A725888B0019B2B1AD98F363EAB18D0 + AE33789A770420348366E4AF5A1016226280D5E10314565C08BBF9D23797C068 + 6360183687206E0D18F156FA42D9082260EBE166EAA874310CCAF317FB019116 + C3386171AA888876AD0145D98B9401681BF5ED7DF5F864D332C509FCA91B42FD + 8FADD09B4742CEDB6D561C28583EB680212BA32801BEAEB6F6E1D2F55B308D38 + FDC7CC2693079986DC33EBD06BD6A1665D2D92EF4B218214038AABBE1915C89A + B447D1DAA387DBEDC6AFED1D184C388C16D71F889E3811934C71389D5D4F4488 + 024893A6607F3D0E6E5E316A09086BC4E9C64D8D165BEB32C14CD32061769CF7 + B8A9C74A4510015B2A2F5247653060B412D8B5FE05CFBEB220EFEC5A68A26E22 + 7ED69480F334842880B45119A71395DBD24513E05692AB49D151B201069B05EF + 7C456E5E0C4104141C6C6069A37273F9391C2ACC80CEE8F0FEFEC1670D21D734 + DBB77A7F3E11B313B1AAA992CD33B0431357095D740B1266C67B8F39DD0E5908 + 22C0B35159DAA81CB15A7164E7CB7E00A99EAA9881D487E7C1D46D47E5EA7348 + 9C924C4F8BB179579E6B7EDAECA99E1575C3C5FEBB70248810911497ACA20248 + B7C9F67DB50100520275B657F1F4E227D1ABEB87E686118B628A8849702BFFB3 + BD14AAA45E24CD9DEE3BE6666423126CD3F1EDFA4BD200E146959B0007E08A43 + 70491C5855EB59AD14E2CAF3CDFB616EDFFB0A21C1087DD73016AA1F474D666D + 2820FFE3F32C6D546E293B8DA3C599B212E02B38097EE5D5290624CF9BE16992 + F134ED0C791D5A1A866E3352A316E0D82B5F223626561A204CC0326CF402BA6E + DBA909A45525E1B925CF789B72FDB39A7C127B5E3C8EBDDF17E2B6BADBDB3C5F + 1CC2D774208447F8AE7163E02FBDBF79EE818FB889377E788EA58DCA4D7B4EE2 + 4871962701DF1BEDAD6E2426C001F8868488F61B9D484C7910B35367FA6F1561 + 91D2E0AFEBEF1AC45C76BEBF79DF6D4600E4959E6569A37258AF0F00882510D8 + 840F62315931F9DE58C12DE10C8190D2D076F686344F05BCB1FB0C4BDBA8DB4A + 6B5055F23AB406DFB9F2131745132021824B0A416B5E364098C0507F5F008054 + CF7F9A8CE52B967A264DE8A3320DC195CD339982ABB3AD93DAFC9826C001F886 + 19B72BA2347A3A744876CDA1364F05E4EC3AC1D246E5A0B607152539E815D903 + CB3E4FF103F80A270D0ED1D5764BB27949006954EE283D160038F04593680252 + 0812A4ADA54356F354C06B25D52C6D54CA4D207DD54AE298944A836BDEDC710F + 2E17FE20EB8BBD2C80580234C09AF40CC12409859010FAA1DBB876E5773C6228 + C0D7BB8B23FF4E9CFDDE5196B651E526C001F8F27D388522481B5CDBA345C76F + FD68C86FC2CCF8599125100C105651D971EC2FCEC1A0493E400C414A834318BB + 2D3895755E121151025275F9FE77B136632DF1018D0689144104ACDB51C54ADD + 2662C52590F55296BFD16088DC34E420640148A352ACB831CA017CCDD311C2F3 + 9122C6340161718D86734B0937388F68CABB02F504B5F4B39052C0F60BAB71BD + EF9788FE9656A90F3C84BADCEFFE1B809C7ABFBC1AA74A3728FAFF9828406A54 + FEEF0163D6B9A0C60C70B7D5DF333692EC96A7B0AC0000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'MoveRemote_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000055D4944415478DAEDD97F4C94 + 751C07F0F729780DEC22D2500E441D2B4773B5B5B574FD41654DC540B4113F96 + 8D4831AA8588520BC69A6B6D5718660882932298A136B084B112B1B572659B36 + 73123FE3D71D3F8F3BEE17F7F3E99EBB9EEBB9BBEF73F73C7747E6C6E7CFE779 + B8FBBCBEEFEFF7C3C310511485BBB9448B8045C0226011B0085804B85D108988 + 0F169DEC0A89746D8C04F9298F411CBE5414EC67D1BD0B0254EC4B0E1AF0D595 + 6E4CA9F52141DC1140CBCFBD309AAC2141DC1140E78D61CCE98D214104043059 + 6C4101AEF74F426B30B921F2B66D40A43852304210E04075277574FF334103FA + 152A7BF32637C4E8B41605A949821144C0C1DA2BC46943D96CA0017A931370B8 + BA4370F3B2D7B7426DB04035A7F5428C4CA9F146DA4641084E0069AF179EB884 + CA822D2E40A065B198A1338B88887EB90AA5399B1606F0E6B1767CF6F6F6A013 + F853318BF69F7AA1D4CE7BDD371AF4A82A4C11E98C3A2AEF7C26C6B50A3465B6 + 427A5F1C11151060566F092A01A6AEF74EE0EAAD1168E6CDAE6B5A8DC68E4CC6 + 9EE6DDE8B1FE81F0B030DCA391E05C4E3B11E113E079588BAA3ADC006575DF85 + 04B22BF951F48E2961B39FB1DFFB07301D5DEB683E3A41E2B8AF19D373228880 + A29ACBC4695378BC1D270EEC085902EC9A37DBD03D2AC7C1B62CD862E4885AB3 + DCED3E17C227C073AFD32BC40670256081116110F36EFEC8DEE7EDDFA5437E4B + 064697747B35EF0B4104D8A70D459A36459F7E8B9AE234BF09A4376C869932A2 + 36BD15B19278BF00954187B7BEC98022BC07D1F1518E6B669B89178208B01F56 + 8A346DCC46234E1E4E8742EDFCF00F3EBF44FC9236C3CB487C643D466FABB169 + 592922442B389BA7D31A95D4389A7F3061857D456DB052FF2E1C09C246C44AA4 + 224E80E74A1F3AD68A53EFBEE80270D5E6EAD5786ACB9318574C42336C44CDCE + 0B88592EF57A6EDE6270AD7CECBA554E90CDC21B116D5885EFF75EF50F60F6FA + BC5EEF06F095000DA08B469092A057FE57A30CA2D87157F3AE7B36E7F7B2219E + 08E5D01C368A1F475356AB37A0E0938B1469DA084D80292689AA54FA4CC4B956 + 7E463C0CE9FAD5F6262DF6A6CD5E9FC395866A588BC425496878E96B442C8BF0 + 0F6012D0CDA9515F96C52B8167B73EED68CAFACF6A32493C115E8C9BE67A88E3 + 548EE699A211CEA6DD210CC2F98C0D537F295DCDD3EF4CC443BCFFE30B1469DA + 14559C730086668C3E1348AE8B75009886D888FEDB8388895B8984C478D75661 + 17290DE6B9C9A169ACA336B89A776E3302205FD64291A6CD9C52895365D9F6EB + CE2FF8A8B1D36702EE4D38213A8D1E91F746B0B684D90B424A433E38EED53C27 + E0B50FCF53A4BD5E72F4AC1B804F02248467F9437035CF1BC024303B3981BAF2 + 57205739AF579EB9CC9940CA8E6DF6C3EAFDB6C985A0CB603FDC9E35D837C8D9 + BCE0048A654D6E00AE7AEEB4D401601AB6D8AC01A53136A080D4BA96B3794E40 + EE91331469DA084D805D42D2A011437D237E9BF70BF09C3625B2065497E762DC + CF19D8FE459C17800B4182F4F50CF06A9E13B0A7BC91224D9B69F9981BA0EA6C + 17670269A92F10C7A4BF348434CF1B104802BBD2D25993C41B424228676770E3 + DA4D74BCFA231E5E99C4EBEF622220E7BD7A8AB4D73D13F00760CAF9CBC91B41 + 3AE0F23139D4C33A34675F447CD49AC012F00430555AF16540005F08521A4210 + 8213385E968B698D7F40467A06F1058D0B12288208C82CA9A3482BFD7E6523F8 + D42FF7BF83ECDDD9AE463D217CD3E083E005E09A365C454F211AE06C9E1BC1BE + 1F284250027C8BDE420C8029BA51215B8A7DC0194457FE3588978AFDBF0B050B + 38D4B113B7267E0BE867B92AF18187D096F7C37F03E053F4796A96ED5B987F31 + D1003ED3E67F0D58B0CE59B56080BBADFE06BCC191EC7DBD059B000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_21_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005604944415478DAEDD97F4C94 + 751C07F0CF09780DEC22D2500E441D2B4773B5DA5AB6FEA0B2266222D2881FCB + 46A418D5327E88168C35D76A971096088A651964A80D2861AC5470AD5CD9A6AD + 4CE367FCBAE3E771C7FDE27E3D4FCFF7797ACEE79E1F77DFBB03161B9F7FDC1E + 1EEFDEAFE7FDFD1CE7949124090B79648B8045C0226011B00858042CE4110064 + 3299E0A6FC63EDB3A25C13A980DCA487401E12240BFCD50050766C40F9EE8480 + DFF0EB8E5B30AE37CF1A62DE018D3F7781D5E69C35C4BC032E5E1F8069B375D6 + 103E036C0E2220C0B59E31305A6C6E889CC4F510260FF30B210A2838DE215858 + 9220A062CF5301037A343A2ABCCD0D31346184BC6DF17E212401FCE3925F7389 + 06986D0C605F759BCFE155AF6E06BDC501BA69A3003138AE87D79237F88CC006 + EC3D7A012AF336B900FE8EC36107935D268AE851EBA0246B230D30594D64CEB9 + 7418316AA03EBD099477458BC2B001AF1F6E85236F6E09B881BF3553D0FA5317 + 688D33829F5B2D66A8DA9B2443E17736A442A7F34F08090E863B0C0A389BD52A + 8AF008E09EF7FCAA361A30657604D4003BD7BA46E1CA8D4130CCD85DD78C0603 + 854C00367C44AC82BE6E18364B224401D47927F90BCB0794D67E3F2B901D090F + 42D7B01608EA43E2F79E5E9888380EDDC45F10BE7A99DB7D52088F00EE71416F + 70F4ADAD580DCCD809080E7242F092102C04BAFFD6901A0A5A328088540BC27B + 428802A88525F90B5B58D5EA06F0D44087B580FEF3D1A5072054B6DC63F883BB + 9EA5DEC704B98D69A009E984889870FABA9DB061214401D4C292FC8575D8ED50 + 53988CD5C0C31F4742DC03EBC03060854F539B214A112379AFCE628237BE65C2 + DF1BBB9C7AA20438C9DB0F4E0CC24544299432490037ECFE23DFC1B17D29A0D1 + 332FF8DEE7172443B5585E8427363D06239A3118BAA9878D4B4B449B70801586 + 143574F8A8B52B996B84031B116159093FECBAE21D808ECB8CD90C270E3CEF02 + 789AC7AB57D1003408819AA8D9DE0C91CB94AE7B661C16D79367C3BB6004F3BE + 5C081FA1ED9F860DF247A03EA34908C8FBE83CC95FD8A2C34D6E009C06D8E137 + 819EFCAF5615C8A375A05CB78A0AE9A042DB05AF23D5866EC008714BE2E1D40B + DF40E8D250EF007F1A787AF3937428E77F4F936DE250621D7C70B90826E50374 + 7876108209ED0E6111CC3D048CFFA37585475F3B449778CFA16692BFB0F9E567 + E1646906760308C006E2227A6EF64164F40A888D8B711D15EE88B5C1DE37D63F + 016BC9F5AEF0CC311301E4AA1A49FEC29AA6F534A07FD2EAB58184DA2817E076 + 080662329821ECCE50CE91B00B20626DA8FB4604E12501AFBC7F8EE41F97E28A + 3370A23493BAC6BCE8877517B11A1043F0C71B422A3C36003530ADD5BA01BC35 + 90B43591FAA4117E619342A0B1509F4CFCE9EBEE930CEF530385AA7AA82D7B09 + D43AE65AE5E94B1E1B400036B08370FAD5C670AF0694CE3592E12501D9074F93 + FC859D1A1B7503789A673E53BA00ECF8D20642F4770F7A0DEF15C05DD8B72BBE + F2AB016F08314877672F567849C0CEB23A92BFB013EA61A82ECB86118C1DD8F2 + 4534246F7B4EF463D25B1BBE84C706A029569D7203549D69F7D8C08EE414CE27 + 89102286D04E4DC2F5AB7F40DBCB3FC2FD2BE2B1FE6D2C0AC87AE724C93F2EBE + 368000EC30BF9C8408B105570FAB413F608286CCF31013BEDABF06F8003425E5 + 5FFA0DF084106BC317C49C3590969226FA054D0AE22F4214905E5C4BF2C3BE5B + 59079F9466C384010F90999AE90ACA87E0B68183C002A085450DE0CE2F77EFA7 + 014C786904F7E7FE22B01BF065D806B88382FA72A4B80BCE22DA73AF823C48EE + FDBB50A080A2B6ED7063F437BFFEAED4C4DD731FB4E45C9E1F00CEA09D6A50ED + 9E9BFFE04000DC85FDDF02E62C3967E60CB0D0E65FA3098FECAC614B8D000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_22_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000052F4944415478DAEDD87F4C94 + 751C07F0F725780DEC22D2500EFC35568EE66AB5B574FD41654DC544A4113F96 + 8D4831AA6588A20663CDB5364A42931F82461164980E2861AC546CAD5CB34D9B + 99C6CFF87587FCBCE37E713F9FEEE1E9B9BE77F73C3CCF73072C1A9FFFEEE7F3 + 7E3DEFCF737720A3280A737964F38079C03C601E300F9807CCE5F9FF01643299 + DBEDAC132DD3225C19A64046ECA390072E90F9FF6ECCD0D945018EEC8AF1FB60 + 5F5DBE8D21AD715A11B30AA8FBB90D668B7D5A11B30AB878BD07E346F3B42238 + 017BCB2F7BED3C0DB0D81C7E01AE750C426FB2B821D237AD41B03CD867042F80 + 3CE359659750B8FB19BF011D6A8D33BCC50DD137AC47E6D6689F119200460B03 + D85FDA2CF94005AF6F84D66483665CEF85E81DD2E28DB8B56E0883D940A59F4D + C2805E8D9AA47A28EF8DE0048A02EC29B980A2CC0D2E80AF63B35961B0CA3811 + 1D2A0D7253D7C9D8F03B6A13D06AFF1D810101B85BA7C0D7A94D9C882901ECCA + 641537E3F8DB9BFD6EE04FF5189A7E6AC3A87EC2EB71B3C988E23DB132327CE8 + 0AC5E463BA7E232F8213E05C198ADC79163066B4F9D5003BD7DAEEE0CACD5EE8 + 26ACAEFBF43A9D1319033A7CBBE30F842C5FE4F61A3EC49400F28C9380BC8AEF + A60C68831901900B42B6C73C82B6FE51381C0EFCD6D189E1D072CEF053213801 + CE9DA7C89DCF2E6E42C93B5B4437105FB51E56CA8CF2F87A842B22A77CEE84D5 + 81DB7D2AEC6D4C862C7C00A1912193F75B1D1651084EC09B479B2872E73D0142 + 0D349A5E46D4C3ABD1774B8B750B7311245BCCF9BCC33B9F771EC3808CBA44A8 + 035BF1C08AC5CE33EA809DFAF7C3820B4222C2154A192F800D7CB0A41165D971 + A21B78EC58189EDAF02406D483D0F598712AA181B3098DC980B7BE61C287AF5A + 3A799FCD61138D08352DC5F73BAF08030E1CFF1627F6C743AD65DEE8FDCF2E08 + 364003E8A1115C4DD0D7499FA2CC2DBCEB3107735C12E28918ED1EC75AF9E3A8 + 49AEF706647E7C9E225766DFD17A9C3CF8A20B2034EB4B97B9002C826EA26C5B + 03C216293161334D9EF911790F94AB973943DA9CA1AD5EEFC3D786A6478FA8BB + A251F5D239042D0C920E10D3C0B31B9F9E0C65FFE76CB24D3C11988D1BD64AC8 + 233493E1D9A1114C6877088B609EE3C0D05FA3AEF0F43737E745BCFBA3068ADC + 795F1AA0016C2012D171AB0B61114BB0222AD2B52AE470B5C13E6FB07B18ABA8 + 35AEF0CC9A7100320AEA2872E70F1D3B87CABC64C90DB8876020069D11C1F704 + 112B61F58270B5A1EA1AF00ACF0B78ED83B31479C65940F7885954033115E15E + 00CF36C81142F085170DC8293C83937929CEDBCC19F9B0FAA26003B15B36392F + 56EFDF3C7C087A4CCE8BDB73BADABB78C3FB0C10D3000D6003DB1C769FDAE8EF + 5443695FC91B9E179076F83445EE7C76410D2AF25F814AC3DC2E3A7D495403E4 + 4869834674B7F70A861704B03B7FA8F04B3780D03CF7A9D20BC087E082B4B776 + 8A0ACF0BD8915F4D912BE30910D340DCD617383F2685DA90125E3420A7A00AA5 + F9691810790D6CFE3C02DBE3E2894F126F081762746C04D7AFDE40F3AB3FE2A1 + 25D1A2FE46E604A4BE5B4991673CF7C8176E80E2332D820DD00076982F276F04 + D705AEEA5741DB63406DCA7944862CF7AD012180D806C8E14370B52105316380 + C4F844CE1F687C105F119C80A49C0A8A0CFC5E51B564404A428A2BA827446C1B + 6210A2019FE4A56158270DC084E747908FFB8A100D9032BFDC77C00560870E2A + 65A5C80B9C45B4645C857C815CF8B7902740EAEC6BDE869B777EF5E9B57C1375 + FF83684CFF61760062866EB5B660D7CCFC7B9D0648D9F9FF2460C69213336380 + B9367F0368AC6AEC78117FC60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_23_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005164944415478DAEDD86B4C5B + 651C06F0E7C8CD80AB0437D9B88C6D21BA60168D26C6193FA04EB30D1C6118E4 + 12671037266A9C30996C1062A63141876C8EFB745ED826730B6C0E4274038CD1 + 7DD887CDE81C72955B8B5C5B7AA3ED698F3DADA7EBE53DED392D5549FAFFD2E6 + F4B47D7EEFF39EB640310C83E53C54001000040001400010002CE70900FEEB71 + 01501465BB5FD4D0BD24BA75D11214A43C84B09020CAF757BB3D6C768F80237B + 927D7EA3AF7B7A31ADD02C39E25F03B4FEDC0F9DDEB8E40822A0B8B1C7E1C052 + 00AEDC18C58246B7E4085E0017DA7CDF02D0D3269FDEE8FAE014545ABD03227F + DB46448445F884F00828AAEF42D5DEA77C060CCAE4E6F07A07C4F88C0A853B92 + 8808B54ECDE49FCBC2A44A8653596D88BD3B8E08150CD0E8AD8092BA4ED1E12B + 5FDD0A8596867C41E582189B56E0B5B44D0E0836FCAE960CF4197F43487030EE + 544AF04D6E0711E116C0AE7A496317AA0BB7D800DE0E4D1BA0365044C4A0548E + B2DCCD9473F8A80489E5B9CA090D2F820830AF3AC36D9BA29A4E1C7F73BBCF0D + FC219B47C74FFD98532DBA3CAED36A50B32F85E2C20F987E47E4DABB1CCEE143 + B805B0A1D9C02C605E430B0E1C04A3E5D668BEE73CD7FBFFC2D59B63502E1A6C + C7544AA519990CBEF0EE1044C0BEDACB0CB76D9C01E54DDF7904F4E88A2DB78F + 8696229C5A493C6767F283E89F9883C964C22F834398896AC430D58BA8F848CB + E306935E10820878FD6807C36D9BFD351DA87D2B5554030F1F8B46E2031BA01C + D5E1D38C0B8891C413CF5B3498D03B2E45717B36A89849DC9BB0D2BCA2261899 + DBD71B09628F8891C452BC0036F4A1864E07809006DAB52FE2892D8F61523685 + F15B0A6C0E2D7369E2F0EE67CD0BA446416B2664217D8859BFDA729C36D18211 + 51DAD5F87EF755F780D2DA76D4EF4F13DD000B608745909A906BD578E3A26378 + 6E58043BF61067C4DCC80236853D8253D96DAE80C28F2F31DCAABF73FC5B3494 + A443A6B0BEC0FB9F5F16DC0037CE4DD0D0615C528FD9B051C46E58630E499B43 + 1B5C5E87AF0DF9A80A897724E1CB17CE233C34DC3DE0EDA36D3851FABC0D2064 + 1EAF5B83A7B73E690965FC6735B926AA534FE3BDAE625B786E588435B4238443 + 58CF3161FACF395B78F6CB8F7811EFFDE802C36D1B6780D006580017C81E3178 + 6B18D171AB9090186FDB2AF6436A833B6F6A6406EB998DB6F0D66D46001454B6 + 32DCB629AFBDE875038E21AC10B552838815E1765BC2E00221B5211D9E7409CF + 0B78E583730C17FAE0B1F338599EED75032484F37842F08517051899D5096E20 + B9290629A9DBB048BBFE6CE043B0A3A5B52EC786078679C30B021CA83A8B13E5 + 39E6FBD63A3F6CBE22A80116C005A64D46AFDA98189221D6B88E373C2F20EFF0 + 1986DB36CE00310DD88F983658C4C8C098C7F01E01ECB63958751A4D152F412A + B75E03D567BA4435E00941820CF40D090ACF0BD855D1CC70ABEE0C1032CF7C16 + 8BB41DCF113F263DB52126BC5700A10DEC4C4BB7FB247185901073F3B3B871ED + 5774BEFC23EE5F9524E86F652220F7D049860B5D76E42BD455E46152C435B0FD + 8B380B801BEB97932B8274814B27A4508CAAD1927309F1916BBD6BC01DA0E66C + B7E006EC870F416A430CC26F0D64A667127FA0F141BC45100159079A182EF4BB + D5CD5E017232726C419D2142DB1082F02BC01A9E1F61FFB8B70841804FCAF330 + A3F40EC00D1B54CC96B2BFC0394477C13584058579FE2DE40C103B3757D44115 + 3C22FA79EE26F19EFBD09EFF837880BF865D9896CA3DFEF9E72E0B10BB6DFE77 + 00BF25B71BBF0196DBFC0D968564ECF0B747700000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_24_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004F34944415478DAEDD87D6C13 + 651C07F0EFC946CDA67399E0602F0CC8A2648668343142FC632A1A60C81C3373 + 2F1133E6184C8D088831B22C0B3126F36DBEC0808113328253C88661CBA2C030 + 46F90313308ACCBDBAB776ECB55DDFD6F67AE73DAD775EDBBBF6EEB66A66FAFB + A7C9D35BFBFD3CDFBB5E3B8A6559CCE7A122800820028800228008603E4F04F0 + 5FCFFF0F405194E771F791F639912D4F8C4359D683D0452FA0E63A3CC91E14F0 + C1F6CC59BFC997973B3066B285052109D873F4B2B0301780A69FBAE070BAC382 + 900590E0DCE39C002E5E1FC0B4CD1116842280936666F526D77A4661B13B7D10 + 251B562156172B8BB03AAC6CC9997C8C580C3895DF8CE4BB52248F0D0AD87DF8 + 123EDCF1C4AC013D062317DEE983181AB7A07C7386248284DFDA988B4EF76F88 + 8E8AC2EDE6387C5DD42A895004B039BD807DB56DAAC357EF5C0F939D8671DA12 + 80181C33E1E5ECD53E0871F884B438CF9A79D8268B900470C159127CD7A10BA8 + 295F2700B40E4DBB60755192881EBD11FB8BD650E2F0DDCCEF885F7687CF6BC8 + 2182025EF9B8159FBDB6517503341C88824E68E00FC3145A7FECC2A46526E058 + 87DD8683BBB2A860E183212401DCCEB364E779C0948D56B5E33927D7C2C53A70 + 34A7194971A9C2FAB5AE5BB8726310E61997B066319B39642648F83EAA0309A9 + F19E7517E35484900470C15912DC1F5051F7AD22408BFD05A4DFBF1243374D58 + B3703F62A8453ECF6FC97C005DC393601806BFF4F4623CE1A827FC3D698BB81D + 65E066FF3965A5206244525C32250B28FFE83C0EBDBE4975030F7D9288C7D63D + 8A11C328CC030E1CCF3DE7D304991917838E213DF6B414804A1A41D28A259E75 + 9AA1152312EC4BF05DE915E500350D10001982F06FE240E9D3DC75654559531E + 0CD19D42787E08828C18E28F98EC9FC66ADDC33855D01C08E082B324F88EF7CF + E1F0DE6CCD0DF0E3DF84D16EC5ABDFE461423780E4954BB9903417DA15F03A72 + 6D18072C48BF2D03279F3F8B988531F280B2EA261CD9970383C9AB7FE78B0B8A + 1B7872FDE39E50EEBF77936FE291E8BD98883F2B84E78720BCA17D213CC27B0C + 83B13F2785F0E4FE217911733BCF929D7FE9DD3338F6D6730240E9ACAD5DEA01 + F081C4889E9B7D484C598CB4F454E154118F541BFC71A3FDE358C1AE12C29335 + 4900B7F32CD9797F80DA067C43782156B30DB177C6884E09570044AA0D7DDF48 + 40785900179C25C1E7A2012984FF8442C8850F09283E701AF515059A1AC8DAB4 + 013374E09D570E41C64EDB03D6FABAFB64C32B06F44F385435905997E401F081 + 69C6ADA98DE15E0392DDCB65C3CB02B8E02C09BEB5B201C72A0AB906BCE7E27B + 0D175535201E356D10447FF760C8F0AA015A1A088590827477F62A0A2F0BE082 + B3247871E509D455BE08BDD17B0DD49CBEA4B881ECCDCF487E4C866A434D78D5 + 00A5F3D4E7C9D8929D23FA240984482126A72670FDEAAF68DBF603EE5B9CA1E8 + 37B324A0E8ED7A96042FADD2DE0001F0E3BD390522A42E70FDB01EA6012B1A0B + CF23357E99B60678C0B68AE3A8AD2CC688CA6B60E389141F403084541B6A10AA + 0007BF6A57DC405E4E9EE41734398856842420FFCD3A9604DF5955AFB981C2DC + 4221A83F44691B4A10610578C3CB23C4CF6B45841DC00F09AAE694125FE03CA2 + BDEC2A740B74A1BF0B89019F561463DCAC0EF046DBB3B871EB67557F136AD2EF + BE172D25DFAB07FC1BD358BD5DF3FF4965015A765ECD54D534CC2A784840D892 + 8B266C80F9367F01CB9516ECD3AD4B120000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_25_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D14944415478DAEDD87D4C1B + 651C07F0EF39580D6825B8C9C6CBD816A20B66D1E83FCEF807EA4CB681438641 + 5E2206519868E21C3A631C21468D093AC5978D6DA853C39CE80C5B3208D10D30 + 46F7C74C36A37364BCC95B61BC8DD237DADE5DBDE7EADD0EEEB9B677B52E24FD + FD53F2DCB5FD7EFABDA72F303E9F0F4B799828200A8802A28028200A58CA1305 + 5CEF8902AEF7A8000CC360F7A1CEFF44B536C98CCAECBB618A5DC644223CC9AE + 02541FEE1217F6556485FD04DF747563D2EA8C1822E280965F7BE0F670114344 + 1C70E6C210E69C6EDD0887DBE12B3F5E8871FB188E169E40CA2DA9D4FB040578 + 583E2CC0F9BE09D85D9E0588F2AD1B106F8AD74490F0A5CDF9B8CCFD89D89818 + DC6833E3BB92362A4213E0E379BCBFF3A1B0017D63B34278CF02C4C8941D55DB + 33A90865F8C474B3B8661B756A22A880DD073BC40502707AFC803D0DEDBAC3D7 + 3DB70556178BD939BB0A313C69C5F3B91B1720A4F0BDFC5F485873D382C7D242 + 680278A181FAAACD3240CFB0AC57BC8D898915FF7678192AA2CF328BBD259B98 + 60E10321A8805D074EFB58AF079FBCB8CD50035DEE6AF1B6B9B40D1EB7196DBF + F460C63EAF3ACFED7262FFAE6C460A3FC07423312D413CE6E53D2121A880173E + 6C131708E0AA93D5DDC03D1F2521E3CEF5B00DB9F159FE49249BD370BEE70ACE + 5E1C866DDE2B9F67B7D984CB2C0B52F8DBD25708AF280FCE77AD751A44894836 + A73021016A1A7F0819D0EA7A120F6CBE0FE3631318B964C5A6E57B11C7AC108F + EDC8BA0B3DA3332097E8EF7DFD984A3C2C864F5EB74A3CCEF26CC88844D72AFC + F8EC593A803CC18197720C374000640842D90499792F8FEE110BAA5B8BC0248F + CBE1A52108324AC862C4CCE01C369AEEC5D1A2136A40D507A7C40525C04803D2 + 289BD857512CEC2B072A5B0A306D1A42CAFAD542485608ED553D8E561BB34376 + 64DC9089AF9EF81E71CBE3E8009EE370F0E55CC30D3CBCE5413114F7EFAB2935 + 519FF335DEEAA896C34B4310FED00B2112C27F0E8FC9BF67E4F0E42D98BA8977 + BE7752FC203BB4270F63567F756F7F715A57030420055222FA2E0D20297525D2 + 33D2E44B4539B436A4F32606A7B0CEB7410E4FD6A880CABA161F2734F0E96B8F + CB003D737FC36A19702D841FE2B039117F739CE292F0AA20B4362C03E3AAF09A + 8067DE392E2E2801461BA021164F308456785D00BD0D64E76CC53CABFEF0D242 + 9071B12ED5DA40EF8066F880004EF80A70A4A6C870030420056679CE501BA3FD + 6348E1D66A86D70494BD794C5C2080C169B7EE06B21A936580347ADA2088C1DE + E1A0E103023856D8C435C54203FE8DF46ED319430D0443D020BD97FB430AAF09 + 28AD6DF2EF0105406F03B9DB1FA5BE4D066B434FF88000B2071A6B9F8265D6BF + 07EA8F75E86A60476E9EE29D440DA12166AE4EE3C2B93FD0FEF4CFB863656648 + BF9DA98092D78F880B4A809E79E4F31411208DFFC3498DA06D70CBA805D62107 + 9A8B4F212D618DB1066800230D28470B4166711B7A109A008E65D1505B867103 + 7B60DB97A928C82BA07E41D3821845500185AF368A0B4AC0FE6F3B7535509C5F + 2C075D0C09B58D50102103F4364000FEF0DA08E571A3888803A42141F55C52CA + 0D2E213A2BCFC1B4CC14FCBB50B88057DA1FC3C52BBFE9BE5FA0C9B8F576B496 + FFA40FF0714D19A66CFA01A1CE1BF54D68AEAB08EB7FA50101FFC72C6940B8E1 + 35014B6DFE011225D5DDB5B23FEF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_26_48' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000046D4944415478DAEDD87D6C13 + 651C07F06F1556DC642C5504D68D09599060FCC3B704897F0C07890E64D619D8 + 8A6026F21A12D121C6E0B2106348E60B5384E1C68B9A014E218C849145C78B31 + D1C49988416519EBBA55D6D6B98D6E7DDBF5E5CE5ECFABD7DE73EDDDD593CCF4 + F7E7D3EBE5FBB9EF3DD7171DC33098CCA3CB0032800C2003C8003280C93C19C0 + AD9E0CE056CFFF0F50D374F95F114DCB9A8ADDE60791A3CFD169159ECD4E04BC + B7A924ED937F7EB91B57FB473445680A38F3DD755081B02A8497F2321B4E55C2 + E971E078651B8C330A88EFD51470E18A0DE33E4A31820DBFBEB5023DE15F3075 + CA144C73E7E2CBB5E78988A48040884E0BF09365081E7F200EB1DDF428F2F3F4 + 9208617843516E74CD3DE893441001AF1EBAC8BCBFE589B40116872B123E1087 + E8EA7162E79A2544041FBE97FE0D7973EF8C7B4D0A9114E00B70805D8D1D8A82 + 8740A17E6319BC411D5CE31E598864E1932188801D073B99866DCB6200A55376 + 7431820C8526531B0C771889881FBAEDD8B7B554270C6FD575C35098173D4790 + 0EC8421001DB3F38CF7CF47299EA06DAFDEB507CFF7CB8FAFD586ED80BCA3B5D + 740CE5F7E1C08E153A61F87B8AEE8E5C511A61E69F0B47820811F9B9469D24E0 + A62FA4AA81873E9C85C7972D86D33104B78D42CD2347D06309C33D118C1DE371 + BB51BFB5047CF8FC79B3A3EB213A241B61F0CFC6D71BBF4F0DA86DFE4A71032C + 801D1671E3DA181ECB7A13CF2F2DC5F5C151D0348D9F2D7D183634C585E78745 + B0238424224607C6F180FE611CAF6A1303B6ED3BC71C7C6565DA0DF0C33771A4 + E26C744F74DFB0A3A6BD0AFA02178CF3E744428622A183A2F348B5E1B279507C + DB227CB6E634B2B3B25303D43450FAE4D268A8F0DF579347EC5F75027B3A6B30 + A2B745C3F3C322B8D0F1101EC11D43E3CFFED15878F64391B889B7BC7B9639B4 + B33CAD0658001F4888B05CB36256C14C141517C66E15E190DAE08F1B1A18C63C + 66612C3CBB46046CAE3FC37CBCCB04C71877DFBDFD49A7AA06E2437010AFDB87 + 9CE9D9B1F560643D11426AC36E758AC24B025EDA7B8A39FCC6733180D259D238 + 4704486C4338A91052E16503D434B062E55398084DC846B0E30FF9456BD65EAB + 64784D1B60017CE0101D56D5C6609F03C6F0BD92E12501D56F9D648ED556A5DD + 807094B4C122067A7F4F193E2560608452D5404973BE08208520417A7BFA6485 + 9704ACAF6B610ED79A230D704F81775A2E286EA07CD5D3C4C7A414844728092F + 1BA0A68167CB4D8227891842428CDE1CC195AEABE878F15BDC377391AC9F9F44 + C0DADDC798E6BA176077717BA0E1E445C50DB0007EB80F273182B4C1ED83768C + D9BC68359F4361DE5C750D240294CEF2A3C6384032043B896D284168D6C06AD3 + 6AE2173429885A041150F97A33D358570DA7CA3D50F66901CC15E658D04488DC + 36E42064010E7C714971032C800B2F8D10BEAE16A16903C261832AB9A5841B9C + 475CDADC05FDEDFAD4DF85D205BCD6F10C7EFDE34755EF959AE2BB16A07DC337 + FF0D40CEEC6968416BFDA6B4FF2F9504ECAFADC6B07B1203344B2E18CD00936D + FE024C4FA1DD0FCFDD280000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_01_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004EF4944415478DAEDD87B5054 + 651806F08719211C1C8581F18213A54D3A99200189A0ACB02260404CE2502833 + 4AA904329395C12843488C3692159A414813EA10200146B0721116044531092F + 03945C12E47E5F96FB9EDDD3D965F6C8CA527B390762C6E79FF7EC2EBBDFFBFB + DEEFEC003A244942D57C7ABE44F51FFE8FBC626A84FD6E16D05BA0A3A3CDE7E8 + A80BF8FAA0232380D4925A740BC610E06EA91562CE0057CAEB303E41688D9833 + 00BFEA3104A322AD111A012608ED6F85AAFA0E0C8F8E2B20DE775D0F037D5DB5 + 106A013E89E793DF0470190134B4F56170644201F1A47B08419E966A2134028C + 4C48648F43E2F2346A3E3AD08D6A9AC08040380DD1DC3D88439E562A23D4021C + 8E2D2463829C698036210802C322284534B40B10E6BB897940F099ABE4B98FDE + 6264028F5AFBC0BB5D8F3EE1D8B4D7C7474740ADC31EA07F84D0A87165B947DD + CCE5D52D1052BB2FCF9050383B80F08402C620DE4E1678D4D20FB144829A8656 + 760041DFE690B11F7B303A81A9191349D0DCDE8B8BB995A0D6611FC0E404A20E + B8D0D761F179EC003E3C9D45FE70C48BB509C8733496076A1DE60101D157C8F8 + 9077D02E98903D3E71A190B1A6C3F639D3D7C7E379A0D6611EB0FFCB74F2C7A3 + BB68005B098FFD0DD43AEC03D89AC0AC01D80A6B00FFA8143231DC97F5091C3B + 9B016A1DF6004DBDE38C35AE2CC76333D901EC8D482213C2F7D013F82AA988B1 + A63FF3DB465F7F7EF6175C8CF4631FC0565803EC094B241323F7A1B96FF208C5 + A4F0196BFAB02F97BE8E3893829F4FF8B3034888D88BB6017627306B80793781 + F74213C89FA23E60FD5B28322609A9A70EB003888BF0478760F28F8FEFD38A19 + 6BFA908F1373006FFF234A55BA4BD7622A80AD4801A2AEBF94BE9691785A0136 + 2360BB3377DAF3250F5A670DE068B172DAF3D70AF9CF01F31FF05DB83F7A84F3 + 1010E8E78E7743CEB3DAF8D45C8E3E88B8241E7380FF439E03E63A6A01CE9D3A + 36D7FD4E4B70E849D50173DDEC4C511970322C58764D1062591511045E586C82 + E1FE4ED86C58878ACA87B0B536C78D8A2A6CB17D032537EFC271B30DF2F8E570 + E3DAD33593C7C74E772E5D933372B1DB7B87ACEA99BC8481274F7F65108926FF + 614688C58A8FA9B525549FBF5755AB079037AF0A805F76075C878D6A01D66DB0 + C2DDDBE50A80679B67042022A9F788454A01F29D7F16905350060F1787190197 + 2EE7E04D3B3BDC2C2D8591E92A7435D529DD7D394044F5F2C7835A0D01C4E487 + A903C8CE2F85A72BE75F011C470E0AAF15C166933D6E9595CE787C267B600830 + D8DDA6F4EC175EAF80F356DB1901695905F0F172A1011752B3E1E8B4550160F8 + E21AF43CAE557AFEC562897A802F4203158E8F74670C8C962900161A2E83B0A7 + 0D0B8D5742D8D94CD5151076B540CFC814C35DCD30586A8681B646E89B50B5A5 + 0E8B57ACC6607B230D70DDE10A5E360F9B391C9414F16165B705776E5C9F3D80 + 3A1390EEFC2E2F37A467E5C96A727A0E76BEED8AB44C1E9CB76F43EED57CD839 + 705056528C45A66BD0DF54A370FEA5D10C403CFD6AD397DE037D9D344077C972 + 8CF6B6CA26D0DFF63716511318EA6D974D40BAF386A6AB954E400E305B6B8EC6 + EA2A18BFFC1A3AEA1EC268D57A74D7DFC712B3D7D1D3705FE1FC33025860608C + 7141170DD8686D89F28A4AD8DB5A835F7A0B5C8E1D5D73F28BE1E1EA4457F9CE + CBEBA5D45FB1DBC70BC96959307DD51C4D3555584ED5963FEFD113987A7CD402 + CCA7FC03E437CBDDC02D3ACF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_02_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004EE4944415478DAEDD87B5054 + 751407F02FCD00120CCA40A0EB146A4D5663688A112A082B02864481D94856A0 + 058338E363144608509C9851CB411310292162105148830DE4B120288969A48E + 1A2F8BD7F2DE0596F7DEE57677691796DD655CB897C70CE79F73EF3ECFE777CE + EF37B3AB459224667368A902686969A97CF1C1D802DAB4AFB28CF0A5B30574B5 + 5FD0D2E47D63EBD518F09D8F1D2D8094C2A768EDEC87AFCB2A8D103306F04B49 + 250606098D113306C02DFB179D7D228D11B4000689C96F85B2AA26F4F40D2820 + 7639AD80819ECEB88849010E9CCF274FFBB2690154F3F8E8EA1D5440D4B57663 + 8FEBAA7111B4007A0787A4F70131D9132AFEA49F335534818E4EA112A2B6B50B + FEAEABD5222605D817954B46EE71900326130441A047049588EAC64E7CED694D + 3FC03F92439EDBF73E2D1DA868E08373A70A7C61BFD2F3037DBD88DAEFC21C40 + D04B4C72FD47E22F6A33973CAE87905A7D59740B8553030889CBA10DE2616F81 + 8A7A01C443437852DDC00CC0EF7406197D602BAD1D181DFDA221D436B6E3A7AC + FB8839E8CA3C80CE0E1CFFCA517E1D1C9BCD0CC0F7D435F2FC2137C63A208B23 + D11CC41EFE907E80CF89743236E02334760E4AEFBF49C8A3ADE8602F07F9F5D1 + 580E2E04BAD30FD81D7185FCE1C8363980A90889FE153F067DCC3C80A90E4C19 + 80A9600CE0159E4CC687EC60BC034167D39010EAC91CA0A67D80B6C255C5D1E8 + 7466009F87FE4CC6857C2AEFC0A9A47CDA8A3EBC7393FC3AF4EC1524867FC63C + 80A9600CE01974918C3FE6855AFEF008455EE2D256F4FE1D6CF975D8994B488E + D8C50C202EEC0BF03A98EDC09401665D073E09B8405E3CBE9BF153E85864122E + 9FF49938C0C3FB90CA5FEDDAA6CB1113E68DA6CEE11F1F51A905B415EDBFDD5E + 01206A2957F9BAB4F86F15606A019B1DD84A8F173E6C5000301512809DC562A5 + C773F3B8738039C0B401FC76BA484E217C1FE28D3621F300EA14424C12873EC0 + 4C8839C074874680732782A6BB5EA5D81B18F1FC80E92E565D3C37202278AFF4 + 9A20C4D22C2208E81A9AA047D00C7D233374B5F2A03BDF14DDED3C1818B3D0D1 + 5C073DE3C510F0FE81116BA934BFF89239DA6ACBB180B50C1DBC67D0375B82F6 + 9A72189B2F976649F4F68DFCB92B120DFFDF4488C58AF7D4770F5175FE51F658 + 3380ACF8B100CB956FA1F4FE2358AD791BB74ACBB0C1EA1D708BEF826DF32EB2 + B9257066AF93E7740E17EE2E6C794E4ECB82A7C71669D6313147475DB902606C + F1B4004424F51EB14825A0F0F63DD8ADB7540264E61463ABA38D5A40E2E54C58 + AC598B7B774AC65D7D194044D5F2E7C3A7130410C31FA60920E346115C9D6CC7 + 05ACB5B6C6EDA222E82FA446ACAE42EDF80CD740134032FBA3474706C8BB590A + 878D566A01A9D773B0DDCD510E4848C9809DFD46E4E5E6C3F2BD75F8BDB868DC + F9178B8734038407FA298C8FE483659B772280D1B3AF0E60C87A0D7C6A4FA89A + 7F46007A0BCC206CE3494F1F61732D951741D8520F1D23167A5A6AA16FFA8AF4 + F4996742E5FA4A182E5A86AEC6677280D31627703238586F6B8BC27C2E565B6F + C0DD5B37953A20FA7F122606204636D73CC91EE037ABECC0F39C3EDBDC9C71F5 + 7AB634275FCD84FB074E484DE7C061F32664FD7603D636B6282E2C8001EB7508 + 6A9E28CC3F2300EDF90BD1D7DE406553F9CA0F0A78D22C5979D9F93FB6031240 + 62CA35BCFCC64AD4FDFD00C64BDE4453E523182D5D81D6AA070A00D9F8680498 + 4DF11FED1715EC79A52C980000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_03_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004CE4944415478DAEDD87F4C94 + 751C07F0F7B5212A0C63F8F35C59D6726B45A614818070226007A3C06892156A + C110377F4C614280E26253CB9113102921628818A4E105F2E33841494CA3D9D4 + 81628170A71107C76FEE79EE9EEE0EEFF10E0EF2E0FB003A3FFF7CBFCFF37C8F + FBBC9ECFE7FBDD0E1EC330789C83F74402783C9EC9C53BD22A88695FE2DBE233 + 1F7B585A3CC333E77343F3351BF075A83B1140AEE4265A15FD08132E350B3165 + 003F55DFC28092361B316500E2DABFA1E8A3CC46100128E9F16F85DADBF7D0D3 + 376084D8E8FD1AAC674C1B15312EC0F6A3E5CCA13001114083548ECE5EA511E2 + 6E6B3736FB2D1D154104D0AB54EBAE23538BC794FC81701F4DD2343A145DC310 + 4DAD9D88F05B3622625C80ADC9A54CD2664F16309EA0691A3D144C221A640A7C + 11EC441E109124628E6C7D974805EA5BE4105DBA0D7957FFB0E7037DBD48DE26 + E40ED0DE4B8FF3FD3F8C3F349BB9FA7A33BA346F5F1FDD5D5D1303884D2F2106 + 09F4B0477D733B546A356E34B47003083F54C8A46CF7255A01C3E8A7D46892B5 + E1FBA2AB48DDE1C73D806405F67DEEC5CE63D28AB901841D3CCD1CDDE9CF5905 + F4B13B4584B45DEF910784EE2F60D222DF874CA1D45D7F9959462CE998104F76 + BE274D84635101E4019B124F31DFEE5ECB02B88AD8949FF15DF407DC03B8AAC0 + 8401B80ACE002109394C46EC3ACE2B107D381F9971C1DC011ADB0688256E2AF6 + A4147003F824EE07263DF623B60207B3CB8925BD6BFD2A761E77F814B2123EE6 + 1EC0557006088E3ECE64EC0D41937CB085924E888925BD6D9D809DC77F730239 + 891BB901A4C77F0A6907B7159830C094AD40E0869D267FF45ACC5D82E3FB3671 + 7E0AED4DCA06F54F9DC967F9195F19C14604ACF6140CBB2FB9D682D4F80DB8A7 + 18FCF1919C57412CE988200F2380BBFDC2616B4ACBC464015CC553C01309085F + 2FC48791C7260C70F2402852B345E40053219E02263BCC021CD91F3DD9F90E8B + 2D51898F0E98EC64478A470624C66CD1CD695AA51B297AF05F29B44A05D5D07B + 0FAEB5A3F6B93E288A66D70C3EA7D9B5DA5052B4EE9EE17AFD77185D6BD6A835 + 79FE567BDD3C80E1976913B1B4998D9EF6FBB0B29D87CE56292C67CD45779B14 + D6767CC8658DB09AF31CDAA57FC196FFA26E9C396711FE6DAAC3B3FCC5E890DE + 81D5BC17D0D65807BB454B7423A55283522A8D0043932702A018CD6754140B70 + 78E355D45CFD138ECB5F87E4E215B8AF7080B8EA3204AE6FA3585C0D1F8133CE + 9654C1D7CB1505223102840276CCC92F4270E01A649D3C8B99F335B0BB75A3BE + 7D3D80D2E4F2FBB59B63043C28B33980C27395F0F3761B1560BFFC2D5CB954FD + BFED3398032180B675B4895FA8A9858BE39B2CA0EC7C0D3C573A8E08C83B5382 + 207F2F1690995B084767675CACAC8495AE12F5A3F6BF4AD36E660112A2C28DDA + 47FB87F5BD3F16803E714380B38B0B2A251238BCE38C5FAB2A5980A9FE9F9200 + 778F95282B2D670136FC9721D7EC0953FDAF8DB1010C8ECFA1008B59F3D1D7D6 + 8219760B75A78EB5DD02CDA924C3345BBEEED4D19F3ED3673F8F8EE65BB059B0 + 189DB23B2CC07B8D37448522AC707383A45C8C654E2EB87CE1FCC313C9A0FF89 + 00A66B37B1FCBEC90AE8DFBC7E34DCBCBEDE1EF8F14C31D6FAFBB06356EE6904 + 050891572082E7EA5528FAE51C9C5CDD5025A98035FF15B437DE306A1FB3008F + 53FC0754840EEC415DB0BE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_04_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004AF4944415478DAEDD87D4C13 + 771807F06F97286CDD5012A6AC7BC974DB3F7B61CC1199C8103AA6B88EE86473 + 91B90D75832026BE4421C200C58C44DD0C3302224ED0117C0BB88D3532815AD1 + 31713A1617E64470CA4B91315A4A054A7BEDED5ABC5B4BAF8CD2FB01263C49F3 + FBDDDDAFBDE773CF7397B6229AA6713F87681230110122918877F1A6BCB38269 + 9F9178E393083F784C7940E4CAFB86E6EB32E0CBD8504100C794D7D0A9D5234E + E6EF1262C2004ED5DCC0808172193161008ABA5BD0F61B5D4608023050EEDF0A + 758D77D0DB3F608758BDE8453CFCE0D461116E0136EEAFA2F7C449050134A9D4 + E8E933D8215A3AEF626DA4FFB00841007D06B3753B31B77C54C9EF8A8F6092A6 + D0ADD539209A3B7B901039C729C22DC0FAEC0A3A6B6D38077027288A42AF11BC + 88A6762D3E8B9E273C20214B4EEF5BFF962015686853437EB1116A9DDEE1F840 + 7F1FB237C8C801347D949BD7FFBFF88DB9996BEA5BA163AE3E1B7775BAB101A4 + E69F110C1215E68786560D4C6633FE686A230388DF5346E76C7C5BD00AD886DE + 6846737B170E9FBE82DC4D91E401425660C7A70BB9794A5E391940DCEE6FE9FD + 9B9710AB001B5B73E4C8DBB2547840ECCE523A2FF11DB46B0DD6EDCF0B2B054B + 3A25269C9B6FCB93E340D232E1016B324FD207B7BECB0148456ACEF7F83AF93D + F2005215183300A9200688C928A60B525710AF40F2DE1214A6459303DCEE1A10 + 2C71BED896534A06F051DA37747EEA075C057617550996F496956F70F3B4BD27 + 7124E343F20052410C109D7C882ED81E8366F5600B651D550896F48615526E9E + FED5511467AE2603C84FFF18AA6EB215701B10B56A33EF6F464FC90BB00590AC + 805E55CFBBAEA4E00B3B9853C09BE15287FDCAAB6D38B4630DF1A7D0F6AC2284 + FA3DEEB0BFA252E13E20377D15EE68077F7C649F382B58D209CBC3C61E402A26 + 017C80F89532BC9F7860CC00C777C522B7482E1C6022C42460BCC325C0BE9DC9 + E39DAF43AC4BCA1C3960BC937516230664A6ACB3CE29CA641D8DD4E03F1194C9 + 04D3D07DF7B62DA3E5381B4623C5AD193C4E716B2D613052D67DB6EBD973D86D + 336BCC4C9EBFD4D5BB06B03D992511F683F90066B39979D1C302F47AFBAF207C + 80A1C90B0230D2CC7B4C467878F9A057D301B1F74CF474AAE0316D06BA3B5AF0 + 888F04DABF5B217EF44968547FC15B320B9DCD8D10FBCE82A6A501D325B3D1AD + BA09F1CCA7D175FB3AA63FF11CFEB9F5A7352916E0ECEAB3002393CBAF57AF8D + 1270EF242C20E0E5E7517BE57704BEFA12943F5D46E8FC0028CE5F82F4F5B928 + 57D420421A84B21FAB11B92804A5720596C9A4DC585C721AD1518B71E4F80F78 + C89781B55CFFDFF619CC412080E5CA5B12BF505B87E0C0573840E5B95A842F08 + 740A38F1DD192C5FB29003141E2B837FC05C5CBE5833A2FE3799CCAE013292E2 + EDDAC7F2C16CEB8C06C026CE07105B2BD1306CFF4F4840507030AA954A04BC16 + 849FCF577315E0EB7F4B8C0E60F3F81C0EC026CE8ECE7ADF16101AB600951555 + 1CC04BF22CD4CC3DC1D7FF82003C2D37B1BA83034C99E68BFEAE36669C011DF3 + 149AEA2D8141A3B28E96A70EFBF4F1F4790ADDAD37E0F5D86CF4B4DFB4020E16 + 9D822C520679991CF34342A0AC5260CEBC605CBA700E2626253345D9B58F4B80 + FB29FE05745106EC48CF1FE80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_05_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000045C4944415478DAEDD77D4C1B + 651C07F06F8D8AA613473241EB4BD4E93F53092A114554D6751B8A6473E8CC70 + 2ADB14C258B2976C9081C0C622C9365D7019B08E3950099B5B602A6986E36595 + 296E718A59C2E6D8D0F156C690D2D2016DEFDAF35A76674BAF4D5FEE812EE19B + 34F7DC3D4F7BBFCF3DCF5D73128661702B47320398011000482412C1C19B94A7 + 44D3CE9585E1A3844884DC719BC497EF4DAED767C0E769F1A2008EA82F62506F + 447A62944F88A0011C6FBD0C9399F619113480E6B6ABD08F533E23440198E9C0 + 6F85B62BD7303A6E7242AC5EFC3466DD7DA7474440808DFB9B983DE97251009D + 1A2D46C6CC4E889EC11B589B14E511210A60CC6CB5EF6795D5FB55FCAE8C04B6 + 681A3ABDC105D13D3882CCA4E7DC220202AC2F69608AD72A784020A1691AA314 + 04119DFD7A7C92F292F880CC6215B36FFD1BA2CC40479F16AA3357A035185DFA + 4DE36328D990480E303C460778FDFFCF9FECCDDCDADE0B037BF5B9DC3018A606 + 90577E523448F2FC4874F40EC362B5E242671F1940C69E3AA674E39BA2CE8063 + 8C9415DDFD43F8EAC4EF28DB94441E20E60CECF87811DFCE55D69301A4EFFE8E + D9BF7909B119E0B2B55405E596A5E203D276D632CAACB7D0AF37DBF73FAD6C14 + ADE8DC5405DFDEA654E140F632F1016B8A8E3107B7BECD034825AFF4077C99F3 + 0E7900A919983200A91003A416563315792B88CF40CEDE1A54E6A79003740D99 + 442B5C28DB4A6BC9003EC8FF8629CF7B8F9F81DD554DA215BD65E502BE9DBFF7 + 18BE2E7C9F3C8054880152720E3115DB53D1AD9D5842C5879B452B7AC30A39DF + 2EF8E230AA8B56FB0F485EB559F095EB2ED953282FF8101A1DD919B0018C9A76 + C1BE9A8ACF9C606E010B157297E3A72F0C380148CEC02BF3225CC63434360706 + 509FEFC3A11D6B883F85B61757213EF2413280B28255B8A69F78F928397A4AB4 + A23397CF9F7A00A9100164AC4CC4BB5907A60CF0EDAE349455A9C40304436600 + D31D9F00FB76E64C77BD2E59975DE43D60BA8B7517AF0145B9EBEC6D9AB6D8B7 + 143DF1224F5B2CB04C3E7673DFB6B5F573A1289A1F33D14FF3636D3153B4FD98 + E378EE1C4EFBEC182B5BE76F6DEDBE011C4F662B84FB612180D56A653F8C4780 + D1E8FC0F2E04985CBC28008A61BF63A10401DC98C900DB71DB6FBB03D8D16C3F + 077077F53900C58EFFE3FC453F01374F12123A07A3C303B83D341C266D3F42EE + 0D876EA007F7CC91417FBD17D2FB1EC6B0E61F84C91EC3F5AECB90863F029DE6 + 6FCC963D6EDF4A231EC550D725CC7EE849FC7BF52FAF007CBF588091410D629E + 7F063F9F6D435CCCB350FF720EF12F47A3F1A7B350BC1683FAE65624C86351F7 + 630B9216BF8A5A55339625CA71F4FB9358BE6411AA6B4E2025F975541EA9C3AC + 07E642D773C9ABF56FB1587D03146667B82C1F695884DF00AE70474054F40B38 + 77A6D5ABF51FD400E9FDEC12EBE9F0B8FE6DF10FE0F0F8F404E00AE7B65CE19E + 00B171716851AB11FD622C7E3DDDC29F4768FD071DE060D57128162E40634313 + 0F08953D012D7B4F08AD7F9F00B752FE0340E400EC3DCC54270000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Delete_06_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004514944415478DAEDD97D4C1B + 651C07F06F4D140D9B8EB90CED748953FFF185309D12DF6657D1A1489CC3970C + A732A710C692BD64830C04361649C674C165C03AA6A092BDB8C08CA4193AD6D5 + E99A4DA798258CC88613188581404B1994DEB5E75DD99D7DB9761C7D1EA871DF + A4B9E79E7BB8FB7DEE79AEE45215C771F08D4AA5825CDECCDAC3619272B0384D + B608DF7A554A00E190EB80A9CEFF1BB05E779CD8437CAF3A0AEF27C420E2C61B + 14DDAD90019FA46988000E189BD16BB5233D315611226C00874DE731EA601523 + C2066068FC0BD61146318208C0C186FE28345EE8C69591512FC47B8B1FC2B45B + 6E0A8A0809B06EF7316E47BA9608A0D5DC8FC1618717A2A37708AB9262832288 + 00861D2EF77E5679FD848A2FCE48E08B6661B1DAFC10EDBD83C84C7A24202224 + C09AD2A35CC9AA7809104A5896C51506B288D62E2B3E4C79823C20B344CFED5A + F312911968E9EC87FED405F4DBEC7EC747478651BA36911E6060980DF1FEFF9B + DFF987D9D4740936FEEE8B19B2D926079057F13D3148F2A218B45C1A80D3E5C2 + B9D64E3A808C1D755CD9BA9789CE8067EC8C0BED5D7DF8E2C8AF285F9F441F40 + 7206B67EF082D4CED5D5D301A46FFF86DBBDE1156A33206653991EBA8D4BC803 + D2B6D572BAAC57D16575B8F73FAA6A2056746E6ABCD4DEACD3634FF652F28095 + 4587B8BD9B5E9300B49257F62D3ECB799D3E80D60C4C1A8056A801520BF77195 + 79CBA8CF40CECE1A54E5A7D003B4F58D122B5C2E9BCB6AE900DEC9FF8AABC87B + 4B9A81EDD5C78815BD71F973523B7FE7217C59F8367D00AD840C485EB141F68D + E566F583A8DC928AF6FEB12554B2DF40ACE8B5CBB452BBE0D3FDB09B9B64C7D5 + 547EEC050B08783E5EEBD7FFE3B9CBA8287817660BDD191000CF3C10EDD77FB4 + C14016407306A8008C673BF1F9D695D4BF85B69454431333870EA0BC6005BAAD + 632F1FA55F1F275674E61B8BE8023296270ABF0F78016845001C2C4E4379B59E + 1C201C721D30D55104D8B52D67AAEBF5CBEAECA2F103A6BAD8401937A02877B5 + BBCDB24EF79661C7DE8359A7134EDFBEABFBC256382E86615869CCD871561A2B + C4C1B0EE3ECFF1E235BCF6F9312EBECE5F1A9B94013C2F2614229E580EE072B9 + F80F171460B77BFF039403F8164F04C070FCDF3819598038C61720F40BE70E04 + 70A3F9E32220D0DD17010C3FFEB7B3CD1304B0DE270F047030DE77D3B3F88902 + A4E3240011B7CEC260AF191133EFC4504F07A6DDAE86E57207A6CF5263A09BDF + 46CFC580F922A2D4F7A0A7ED3C2267CF85C5FC2766A8E7E1EFF616DC36E73EF4 + B5FD811977DD8F9E8BCDDE055E63FD3B9D2E6580C2EC0CBFE5131915ED06C43D + FA307E3ADD88A7E3E6C378F20C344F2D40C30FA711FF6C1CEA0D2624689F44DD + 772790B478216AF5062C4DD4625FCD11A424BF286DAB0ED461FAECBBDDE0F1AC + FFB004C42E781C674E99AE0960AEAE8489013CD67F308058B8B8150B1F0F20F2 + 8E79B074B4045DFF6107D85B7D180B351A9C301A31FFB138FC6C3A295D476EFD + 2B02FC97F20F745706ECF48E9CB40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_07_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A34944415478DAEDD80F4C94 + 651C07F0EF150A0C2C900D1C162D5B6B6BC5A85894FD43A2A48855D29F495690 + 0543DCFC338509018A8B4D2C4726206241C5FC93035BEC262522FD63BA2C9C9B + B25034400E10EF1F77C0DDBDCFBD6FEFBDF81E77DC9F38EE79E15C7E37F6BCCF + 3DCF1DBFCFFB3C2FBCEFC9388EC3D4C8643238CBDBB9FBB82F0A33705DC740CA + 6C2BAFC7E1B24CA7454CAD57E62940D2CA6D2209C017720B30D7F97F0336569F + A47611DF17198A0F93A2E13FEF368FCE96D780CF32E3A9000EB57562586B4056 + 728C47089F011C6DBF08A389788CF019406BC73FD08E331E23A8004CC4FB4BA1 + E3D22046C78D76880F963F84E0C0F96E115E0136EC3DC1EDCA4AA002E856A830 + 3266B243F40DEBB12625C62D820A60CCC40AFDDCAAE619155F969DC4174DA0D1 + EA1C10BDC323C84979D425C22BC0BA8AE35CF99A442BC09B104230CADF133A43 + 740F68F171DA93F40139E5726ECFBA97A9AC4057BF0AF25397A0D2191CC68DE3 + 63A8589F2C1D403D46BC3CFF9339CB5FCCEDE7AF42373E798BAED7E966075058 + F3133548EAB268745D55C3CCB2B8D0DD2F0D207B571357B9E115AA2B601B03C3 + A2774089AF8FFD89AA8D29D20368AEC0F68F5EB41E1754374B03C8DAF93DB777 + D3AB92AD80982D9572546F7E8D3E20734723579DFB3A06B426A1FF495D0BB5A2 + 0BD213ADC75BABE5D897B7823E6075E9116EFF9637AC00A95258F903BECC7F53 + 7A80542B306B00A9221920BDE400575BB852F215C8DFDD80BAA234E9003D4A23 + B5C29D656B65A33480F78ABEE56A0ADFB1AEC0CEFA13D48ADEBCEA79EB71D1EE + 23F8A6E4DD990352333639BDE10F8E8A812D40AA5800FADEB34EC71A6A3FB583 + B904BC9098E0F0FAAF178650BB2D1DBDAA892D547EB0955AD1EB574EFEBEE2CF + 0FE29907231CE61C6F69F51E5053FC3E141A695760D60037DD0AB49DEBC757DB + 574BFE57C8F2F57A7CF462BA80EC55C996AFD751559C8141EDC4C347C57727A9 + 159DF3D6323BC0E1B24C54D5CBE9017C21B700731D8F007B76E4CF75BD0E599B + 573A7DC05C17EB2AD3069416AC158E09310B2D43F8C7C8DBE781980CF09B1F00 + E3D82818BF60FE495C03048480E895E0FCEF8071E43A484018FC0C4AA135A9FB + C1052E846C5C25B446F500B8E04590E907C1062C8441ADE0FB117C7F4868093F + 1F41E1202303601872A3060296AFF38F8EF39E01C4E24500314FF4CDB6A81B48 + 9665F91FCE3A4718E70B10E7586230D8FFFF30F1E3C466DC325F7CBF583C1500 + C3F1EF31334E01E29CA900CBEB96CF760510D0FCB808B09E6D1700869FFFD7B9 + CE190288FD87BB029818FBB3695BFC4C01D6715A0067DB476CDD6D1F628375B5 + 7D5C012C50B399F50C509297EDB07D8242233032AC80FF9DE1D02B15080E8B84 + 66A80F81618BA11BEAC5828828A81557101A792FAEF55CE4AFC5286814971112 + B90483973B1176CF0350F6FC8D90BBEEC7B52B9DF667F83FF63F5540DC630FE3 + B7D31D783AEE11B4FD7E06F14FC5A2E5E7D3487C2E0ECDADED484A588AA61F7F + 41CAF267D1286FC58AE4041C683886B4D497AC6DDDA1262C08BF5B004F67FF5B + 323380CDF67107100B175BB170778098D8C771E6543BCC7C092C216EF7BFCF01 + F6D71F45EC134B0540D0A225D0F475B9DDFF1E016EA6FC0BE64010ECF606E6BD + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_08_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004BC4944415478DAEDD80B4C13 + 771C07F06F374498E80432D8D886C996B9E186C3CD0C758F0843C7D6916DB265 + 91990CE606414D7C4421C2101F1989BA19E61444545842D4C5800FD24004C1EC + C17073838D2019139D455A10DB525AE8EBDFBB5D8FF66869CB28BDE391F94D9A + FFFDEFAEBDDFE7FFFF5F73AD88A6698C8C482482AB7C9871942ECC4D41B7DA04 + 21B32BBF0CDFED4B7559C4C87A459E02BEC949C15DCD3406085AB95D04014C85 + DC034C76FEDF802D45F5BCDDC44F8605E2D3F8859839E33E8F46CB6BC057A9CB + 79019CBEDC865EB51E69E2288F10530670B6E16F188CC463C49401D435FD03B5 + CEE43182178091787F2B345DEFC680CEE080F8E48DE710E0EF3B2AC22BC0E623 + 97E80369B1BC003A644AF40F1A1D109DBD5AAC4B881A15C10B60D048B1FD8CC2 + EA7115BF2F3D9E299AA04FAD7142487BFBB13EE105B708AF001B0FD7D0F9EBE2 + 3880372184608079267485E890ABF179D252FE01EBF325F4A18D6FF13203ED5D + 4A481AAF43A9D13B1D37E8067178935838806A907839FEC369666EE686D6DBD0 + E8861FD1B51ACDC400728A2FF206498C5988F6DB2A98290AD73ABA8401A41FA8 + A40B36BFCDEB0CD8476FA220952BF06DD56F28DC92203C80CF19D8F3D94A6E3B + BBA85A1840DAFE73F491ADEF083603B66C2F90A068DBBBFC0352F756D04519EF + 41AE36B2FD2F4A6B792B3A3B398EDBDE5924C1D1CC55FC03D6E69DA18F6D7F9F + 0308959C820B389EF581F000A16660C20042453040F2EE937449CE6AC16720EB + 60394A77240907B8A530F056B8ABEC2CA8F00E9098B2D5E5F3724078148A733E + E266607FD925DE8ADEB6E6756E7BC7C133D04A9B5D9E575EF2A503CC2D60455C + ACD3FE9FDB950E00A162012C9D1FE4B4BFA6B6CE3BC00FD77A50B22B1952E5D0 + 12CA3F55C75BD19B560F5F2FF7EB53787541A83080E2DC8F21EB137606260C30 + AD66207D8DD8F2EF344EEC592BF8B790F5EF75149649F8034C85DC034C763C02 + 1CDA9B35D9F53A654366DED801935DACBB8C199097BD81DD26C4CCB626C2FC0A + BB7F0688518F0511CFA0A5A515F32322D0DAD282672323F14753339E5F14852B + 8DBF207AC94B5C5B5FFF3D62625EE3DAAAAA1AC4AD5C81DA8B43ED85F3951027 + 8821A994B0EDB98AF3C0AC10907E394C2662AD818062EAFCB5A9D53380ADF891 + 001F5F3F18060760F209607E89F7C1E81B0868EF80F29D0332A004F10B868F5E + C1B646551768FF2088744AB635A8E4A0031E8648DB0DCA2F087A958CE98732FD + 1EB6D5DF95C267CE23D0293AB96B7B0D30D1CC7BCC2610F350DF6C372BB67328 + 8A625E34778E65BFE5B359B8357ABDC1AE28335B14B11EE746DBFA7E5BDF0630 + 31E7FFFE67DB3801C4F1C3DD018C7617B514605FFC7801DC71BE00E691FBC8F0 + 88DB2EEE0A40ECB09658B0843882DD012C50B399F20CB03B33FD3F970F379223 + 968F2B80FDE8BB03B85B3EBC01660586A2BF5786990F8640AB902120380C7D3D + 9DF00F7E149A1E296687864325BB89071E9A07B5AC83F93209479FEC06E6863D + 81EE1B6D089EF73414B7FEC2DCC79EC29D9B6D5C816359FF968C0F60B77C6C80 + E81723F1E39526BC12BD08977FBA8AE52F2F46755D03E26397716D85A40EABC4 + B15C7BB2BC0A49896F726DE9E94ACC0E799C058F65FD4F39C0B1B2B358BC6419 + AE3636C0CC94401132EAFAF708309DF22F6D9D0AEC8BD230B60000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Delete_09_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004BF4944415478DAEDD77D4C13 + 671C07F06F155FD086894CD97089994636DC7020CB987B8B30746C1DD9265B16 + 99C9C06D10D4C497284418A22E235137C39C8288134D086E61E00B69208260F6 + C2741BD68D60332638410A0A6D2905FA724FEF762DEDB58596507A2718FDFDF3 + BBE77AD7E7F7797ECF2577228661303C4422115CC58769C798FCEC2474692808 + 197B728BF1C3FE6497450CAF57F4C001BECD4A428FF63E06085AB9430802980C + F11030D1F16003B615D4F1F6102F0EF2C7A7B1CB3063DA148F56CB6BC0D7C92B + 79017C7F498E6E8D1E2992308F10930670A6FE5F188CC463C4A401D4CAFE8346 + 47798CE0056024DE3F0AB21B5D18D0199C10EBDF781662DFE9A322BC026C3D7A + 91399812CD0BA045A142DFA0D109D1DEDD8F0D7161A32278010C1A69CB382DBF + 6A5CC5EF4F8D658B26E8D5684720DABAFBB0316EB95B845780CD47AA99DC0D31 + 1CC09B208460807D27748568E9D4E0F38415FC0336E64A99C39BDFE2A503CD1D + 2A482FDF804AAB1FF1BB413788235B24C201D483C4CBF5B7C735F661AE6FBA0D + ADCEFE8ADEAFD5DE1B4056E105DE20F151CBD07C5B0D134DE37A4B873080D483 + 154CDED6B779ED8063E8291A6D9D4A9CAA6C40FEB638E1017C76E08BCF5673C7 + 990555C200520E9C658E6E7F47B00ED862679E14053BDEE51F90BCAF9C29487B + 0F9D1AA365FCE5C91ADE8ACE4C8CE18E771748712C7D0DFF804F724A99E33BDF + E700424556DE797C97F181F000A13A70CF0042856080C4BD254C51D65AC13B90 + 71A80C2777258C1F109FB4DDE5EBA6DFA2089801B79406DE0A7715BBF3CAD1D7 + DAE0F2B7B2A2AF9C606E01AB62A2479CFFAD5985C2AC8FB80E1C28BEC85BD13B + D6BDCE1DEF3A548A15C173475C535D53CB2F40A8100CF0F3F53B28DA938836D5 + D016CA3D5DCB5BD15BD6DAE7CBFEE6345E5D1A280CA030FB63287A85ED802080 + D4751224649C700208D981929CF5C82F96F207980CF11030D1E111E0F0BE8C89 + AE77446C4ACF193B60A28B75176306E4646EB21C1362B2648AB01F3153A78118 + F5581AF2341A1B9B101C1282A6C6463C131A8ABF64D7F05C7818AE5CFE1D912F + BEC0E5BABA9F1015F51A972B2BAB11B37A156A2E0CE5F3E72A208993405A21B5 + E4B3E5E780D9F341FA3A4151C45A0301CDD6F987ACC93380ADF8E180C54B82D1 + 2C973B01640D57111EB1DC6BC08FA5E5F0F17B1C3A653B37B7D7008A61EF3151 + 1CC030550C1F8306948F18A45F097AD6A340FF5DD0D3FD4006542033032C63CC + 9C03A3B61B8CEF5C88742A4B36A83BC1881F83A9B70353C4F3A0572BD8712088 + BA033EFE0BA0EF6983881D1BD9B12380626BB9FAB77C9C00626DA569686C7238 + 6FBB86A6691829FBB7B2B9FDB6FB6CA1D7DBDF62CDF799579558AFE1B68B750E + C7ED3334174F00D3F073D6B139DB267705200E587398B1843883DD01CC509389 + F60CB0373DD569FBB85A7D6E25D9D5A769665480E3EABB030C2F5E7080E3F671 + 0498CF9BFFD71D60ACDBC706A0ACF38C0FE0B07D66FB07A2AF5B81198FCC47BF + 52017140107AEFB4C3376001D48A9BF00F7AD29267CD5B889EB67F302768117A + 15AD96DCD52A47C0C2A7A0BCC59E7F6209EEDE94DB0B1CC3FEE7151019118A5F + AEC8F04A64382EFDFA2756BEFC3CAA6AEB111BFD1297CBA5B5582389E6724959 + 2512E2DFE4F2F1E2331C782CFBDF23C0FD14FF0303BF05ECF843027700000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_10_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A24944415478DAEDD70B4C13 + 771C07F06FB50A8C067944C9D812378C6CB8E9509339B247860346C6884EB72C + 3A9389DB20A8898F28441843B78C44DD0C730A229BB884CC2D4CA6920E2208CB + 1E3EB660DD081251D8046925D096D2421FF7EFDDDAA33D7AA52594DE0964FC92 + E67FAFDEFFFBF9FFFF97DC491886817B49241278AAB7B34F322505E9B8AFA320 + 661D28AAC0F787323C8670CF2B99014C37C097F9E9E8D34F6380A8C95D4A14C0 + 54A819C064D7FF1BB0BBB451B08778515418DE4F59868039B37C1A2DBF019F67 + BC2C08E0BB9F5BD1AB33213335CE27C49401FC78F936CC16E23362CA001A14FF + 4267A47C460802B010FF1F05C59DFB18349A79882DAF3E0D59D0DC31117E0176 + 9DB8C41CC95C2D08A05DA9C1C0908587E8EA35606B5ADC9808410043169ADDCF + 2EA99D50F8435929B6D004FD3AFD284467EF00B6A5ADF08AF00BB0E3781D53B4 + 359103F85384100CDADE093D21DA553A7CB8315E78C0B62239736CC76B82CC40 + 5BB706F2AB77A0D19B469D371B87707C67AA7800ED10F173FC47EA86ED61BEDC + 720F7AE3C82BBA41AF7F3080FCB28B8241D6272C43DB3D2DAC348D9BEDDDE200 + B28E5433C5BB5E1774065CCB44D1E854A9F14D4D134A76A7890F1072063EF920 + 99DBCE2BAD15079079F81C7362CF1AD166C059FB8AE528DDBB567840C6C12AA6 + 34FB0DA8741676FFD3D3F58285CEDB9CC86DEF2F95E364CE3AE101EF1556325F + ED7B93038855F9C517F075EE5BE203C49A81070610ABFC06AC4FDFE3F16D2D24 + 7A25CAF337883E03B947CF62A0A3C9E37567CB3FE3C1BC029212578F3A7EAD43 + C702EEAACD8205F754FB8BABB02A7ADEA8E375F50DFE01AEB4695096FF0E3703 + 872B2E09167AEFA657B8ED8F8E56223E265C7C8058251AE0D79B3D283FB0199D + 9AE1255474A641B0D03B378CF457F0C519BCB824525840D6A6546CCC3D85B282 + 77A1EC177706EC806F0BB7A0A4422E1C602AD40C60B2CB27C0B183B9939D7754 + 6DCF291C3F60B2C37AAB71030AF3B6B3DB8458D99622B66F80D973402C262C89 + 7D12CDCD2D88898D454B73339E5ABA147F296EE099E571B876F50FAC7AEE59AE + 6D6CFC0509092F716D4D4D1D129393507F71B8BD70BE1AA969A99057CBD9F65C + D579207801C8800A14451C1908685BCE3F152DBE019CE1DD018B16C7A0ADB595 + 0750345DC7F2952BFC06FC50590569C8C330AABBB8BEFD06508CED3F56CA23C0 + 39F2EE80DF7FBB82E75F88F70AA8FDA9164929C9BC915FBB6E0D0B90C82261D1 + 76F300942DCBF5BF5B2708208E4F4807C03C5B06A959074A2A0331A8C1048480 + 31F6839E1B0232A801098C00A3EF0102434119FAC004854362D4B0AD59AB021D + 180EDAD08B59B2F9306995606C81893DB063E9B80288A36F4100C46A85D5FD98 + 63DFDEDACF734B8E2223704710D72569A10817CE79BDB30FDEBE63F958ADB46F + 808F73B278CBC779634F009AA66D3F664C80C9C47F05F704700F2F3AC039A2EE + 00FB71FB7DBD0158B4ED3CB73CBC8CBE134039FA991880F06FEE0D60A1F8A3E9 + 1A7EA200D7F52F0820382C1203BD4A04CC5B00835A09594414FA7BBA1014F108 + B4CA7F1016F538DB3E347F21FA3A6F21342A1AFDCA0E04473E06F5DD5B8858F8 + 04DB863EBA18CADBCD904AA5C3233C8EF5EF13603AD57FA7A701ECA2E60A9F00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_11_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004514944415478DAEDD77D6C13 + 651C07F06F55DCA684C94830FAA7C4C5A9E0C04498A271B8CDC5BA808031BCFC + C140B70C4878096C61B3021A97004A26C246419D268B48261358CA163636A238 + 86068A2E734965460763E8686BD7F5F59EBBC76BD7DE7A7D59E8EEB96DC47D93 + E6B9EB73EDFD3EF7FCAEB96A28A5088F46A341B4BC557C8456EDCCC72D1B0735 + B3BBA206C7F716442D22BC5ECD24601230C6804F75F9B86DBF8B01AA561E1255 + 0013219380F1CEFF1BB055DFCAEC269EF5E874BC9D3B070953EE89EB6A29067C + 5CF03213C037E7BBD06F73A3509B1E1762C200BE6BFB1D1E2F891B3161002DC6 + 3F61737171239800BC44F9AD60BC760B0E97478658FBEAD3989A74FF88084580 + 2D87CFD1FD858B9800BA6F5A30E0F4CA10D7FB07B13E2F7D44041380D32BF8F7 + 8BAB1A4755FCDEA25CB168827F6DF608444FFF0036E4CD8B895004D874A88956 + ACCF92004A420881437C268C86E8EEB3E1DD9519EC011B2A0CF4E0A6D798AC80 + A9D70243FB3558ECEE88798FCB89439BB5EA01AC4EA2F0FA0FE7AA7833B775DE + 80DD35FC883E68B78F0D4077F42C33C8B2CC3930DDB0821704FCD6DDAB0EA068 + 7F3DADDCF23AD315088D9B13D0D367C6570D9751B5354F7D00CB15F8E09D1C69 + BB4CDFA80EA070DF497A78DB62D55620981D9506E8B72F610F28D85347F5C56F + A0CFE6F5EF7FF86533B3A2CBD66449DBBBF4061C2959CA1EB0AEBC967EB663B9 + 04502BBACAD3F8BCF44DF5016AAD8062C0B2FC6D511F76A6A72EC058AD80D5D4 + 1E75EE44F54732584C4076D6A288F72FFD6143B56E85EA2B507AE004E63F961C + 714C53730B1BC05F660FB3C2A36557659D3A808B260B8EEA56492BB0AFE61CB3 + A2B7AF7E45DA7EEF402D325253D407A815550045ABB55859FA05AA77AF418F65 + A8852A8EB5302B7AF38AE1F3EDFCE418BE2E5F8BAA1A033BC044C82460BC1317 + E0E09ED2F1AE37221B4BCAEF1C30DEC5C6CA1D03CACB36FAB709E1FD2327FE09 + C7BD5340BC6E3C99F6043A3A3A919A9686CE8E0E3C357B367E315EC53373D371 + A9FD27CC5FF09C34B6B67E8FCCCC97A4B1A1A1095939D9683E3B349E3E550F6D + 9E16867A837F3C59770A787026C8401F388E046A2010C43A7F3676C60708161F + 0E98F5782A4C5D5D3280F1F215CC7D769E62C0B7B575B86FDA237099AF4BE756 + 0CE0A8F8199E8B0A085EF970C08F172EE285851931018D671A919D9B23BBF24B + 962EF60334531F86D7DA2B0370622D577EED1A258004FE81C501B8F0431B16BE + F8BC6200099C9B19C0E374802424833ACC40E243208366D08469E01D56713F19 + C46101499C016AFFDB3FCF0DDE064D4A016FFF079AA419E0C451484C011147FE + 8199A0033741C58289AFE040EF87037CEDC3F3427C80F74B8A64ED43F8210C1F + 86F2210541105F543AC63FCF9161B818B75BFE04EB15E749C8BCEFF8E0E78337 + AFEA80E00A85037CEFFBBE3716C08F16E7A5F608FEDAC4007081F38C0E40E45F + 1E0BE0E5E45733B4F8D10242FB9F09205AFB04C791DA87846063B54F2C40B07D + E202DC4DF90F34C8FEDD3B2966930000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_12_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000046E4944415478DAEDD77D6C13 + 651C07F06F95B181C8642633FA877F485C9C080EA6C2148D9BEB362D0B08BE44 + 45E37CD932468210D8C26611312E01942CC8360A1A44F7873A99C052B6D0B119 + C531C45174994B2A333A1845475BBBAEAFF7DC9D77B5BDF595ACBD3B56E2BE49 + F3DC4BDBFB7DEEF73CCD55C1B22C42A350281029CF57EE631BDF29C1652BE5DD + AFFFAA0B52A5E2B95C61FBDDBA267CB9A3346211A1F52AC400E4CA14600A90C8 + 808FD425B862BB8E01B2561E105900899029C064E7FF0DD8A0E9926C11CFBD63 + 0EDE285A80E4A41B62BA5BA2011F963E2E09E08B6F07306275A14C9515132261 + 00DF74FF06B787C48C481840A7FE0F589D54CC0849001E227E29E8CF5F86DDE9 + 0E42BC56781F66CD987E558428C0FABD27D85D65799200062F9931EAF004212E + 8C8C614D71D6551192001C1EC6BB5FD9D81E57F13BCA8BB8A209FEB1DAC21043 + 23A3A8285E1415210AB0AE5EC7D6ADC91700624208819D7B268C8418345AF1F6 + 8B39D2032AEAB4EC9E754F49D201C3B019DA9EF330DB5C61E7DD4E07EADF52C9 + 07B03888C8FB3F9E73DC62EEEEBF089B73FC117DCC66BB3600F5FEE3924156E5 + 2E80E1A20534C3E0D7C1617900E5BB5AD986F5CB24ED40605C148321A30907DB + 7AD1B8A1587E80941D78EFCD0261BB46D32E0FA06CE76176EFC6E5B275C09FCD + 0D5A6836AD901E50BABD85D5543E0DA3D5E3DD7FFFD30EC98AAE79355FD8DEAA + D1625FD54AE901AFD736B31F6F7E4600C81575C3517C52FD6CFC8055251B233E + 2BCCC9588240805C1DE00116434FC4F71D3AF041102C2A40999F1776FCA72107 + AE55071EB87366D8715D47A738C0E9DFAD38A07E41F60E54EF3E84C577A5CA07 + F8D3E496ACF048D9DAD0220FE094C18CFDEA97840EEC6C3A2159D19B563F216C + 6FD9DD8C9C8C346901E5AB557865CBE74100B9C2033EDBF6321A9BB4D2011221 + 5380C94E4C803DDBAB27BBDEB0ACADAA9D3860B28B8D9609036A6BD67AB709A1 + BD23C5FD87C58D49201E17EECDBC077D7DFDC8C8CC447F5F1FE6CD9F8F9FF5E7 + 70FFC22C9CEEF9118B973C248C5D5DDF2137F731616C6BD321BF40898EE3FF8D + 478FB44255AC82B655EB1D0FB71C016E4A07193582A288AF060286ABF38CBE3F + 3680BFF850C0DCBB336018180802E87BCF6261F622D180AF9B5B306DF6ED709A + 2E08D7160DA058EE33341511E0BFF3A1801F4E9EC2234B73A202DA8FB5435954 + 1074E757AC5CEE052866DD068F6538084071B59CFD65204E00F1FD81890170F2 + FB6E2C7DF461D100E2BBB66400B7C31E71EEF79EE945F683D951013A5D2794CA + 3C01704CDB86C2270B2704E0A70F4D33B101B65595074D1F42D398363DC50B20 + C9A960ED2620E516903113D8E4D9A0ED166E3F15C46E0649B915ACED2FEF796A + EC0AD81969705B8C48BA391D94ED6F30296920DC48CF4C073B7A092C5730E10B + F62D5ED9007CE880AEF83BC4300CF76285F7F0C7F9EF153AC7C5E51A7F82E5CF + F34509D3C3FF6BE3FBBC7F3F70FEF3890F4082BF3C1AC0137051BE80C0E2E305 + 04CE7F490074C89AF003F8D17FF148001280E5C3630909064703F8A74F4C80EB + 29FF026513FEDD60E495530000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_13_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000049E4944415478DAEDD87D5014 + 651C07F0EF15AFC6F0A20D283339134E14958652A9654D100714329A36359535 + D10B0CE28CE9288C12663A39A396C39880689359FC5199A43227E42134658419 + 6231C484C2186F87E2711CC7BDEEB3B7ED6E770BC7DD39DCDDAE9C13DF7F9EDD + DBBBD9DFE7797EBBB777328661303132990CAEF272C121E6F39D6FE31FB51952 + E6C3924A7CB327C7651113EB95790A28FF201B035A8ADF2FFDB641B4A2F35F4A + BEF500A9320D9806F833E0D3E26CDCD0DDC600492B1F174900FE9069C054E7FF + 0DD858D120DA453C2F360AEF642C4070E01D1ECD96CF804F729E1105F0F58FED + 18D49A909B99E811C26F00DF375E86D9423C46F80DA0BEE52AB446CA63842800 + 0BF1FD5268B93200BDD1EC80782BFD61848506DD14E11360C3C1B3CCBEDC1451 + 009DFD431831581C103D83A3589B95785384280083C5CAEF1794D77A55FC9EBC + 0CB6688261ADCE09D13D3882FCAC456E113E01D6972A9992B5A902C0971042A0 + 679F095D213A555ABCFFEA52F101F9250AE6C0FAE74559818EBE21289AAE6048 + 67723A6E361A50FA5EA674008D81F838FF63B9C45ECC8D6DBDD019C71ED14775 + BA5B03283E7C4634C8EAE405E8E8D580B65AF157679F3480BC7DD54CD986E5A2 + AEC0F898282BBA556A1CAD6946F9C62CE90162AEC0CE77D384EDA28A5A6900B9 + 7B4F300737AD906C05ECD952A640C5E695E2037276573115052F40A5B5F0FB1F + 7D51275AD1456FA60ADBDB2B143854B8CA7BC0EAEC4D2EBF6AA3E297E0B32D2F + 0A00A9525C760A9A8E2697C78E1FF9D801E616204F4D717AFDF76E830340AA15 + E0008FCE9DE1F41E655DBDB800A92219E07C9716478A5F917C05B6EE3F8EC571 + 11D201A4FE7B7D7B5995F880BC35997863DB57385CFC9AB0027B2BCF8A56F4E6 + 35CF0ADBDBF61FC3973B5E4779A5423C803F641A30D5F1087060F7D6A9AED729 + EB0A774D1E30D5C5BACBA401BB8AD6F1DB84D0FC48B13F0171672088C5840713 + 1E406B6B1B02C266C1387C0D8111B36154F7B1633474D77B1114150B8BA69F1F + 87FBBB10191BC78F2177CFC570EF6584CF89C388AA0BA131F7427DB51D91F7DC + 8FE19EBF9199958913552781BBA2414654A02862AB81C0CAD679A1A5CD3380BD + F8898079F7C5A3A3BD1DF10909686B6DC543F3E7A3A5F92216262DC2F9A6DFB0 + 78C9E3C2D8D0F01392939F16C69A1A2552D3E4A83BF3DF78EA64355FB8A25AC1 + 8FDF1DAB4240F81C76427A8473FB0CA018F63334E512F047CB253CB230D109F0 + CBB95FF1E4B2A56E01B5A76B21CF48130AE7667EE5AA153C401616C3AE609F03 + 80626BB9F867BB9700627BFEF70070EEE7462C7BEA099F01C4766ED1006683DE + A175EC80E60BCD487A2CC92D40A9AC875C9E22004E2B6A90FE5CFAA4005CFBD0 + B4D533C08EC23C87F621348D80A010AF015CE1F27439943FF80180044780D1AB + 81904890513598E070D07A0DBB1F01A21F0209990546778D3F4E8DDE00133A13 + 668D0A4CD86CC84607600D9909A2BB0E7A463498917EF6F51810AE60DBDD6722 + 80B2758277005BFB70002EF4B8B6B2B798D56A85851AFB9DCCDDFE84B6B3C564 + 1A7B82E53EC7CDAAD0DF94E339C6DF3EEDFD2F0A809E704DD801DC683FB92B00 + 1987E5C261097104BB03D8DBC723C0ED947F010D04F8DDE7370C150000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_14_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004934944415478DAEDD87F4C94 + 751C07F0F71507875E28CA04DD72A54BA3D2502A33AD05E3F8D1C5B46C35595B + 622543DCFC31C30911A68B2D2B472520D9D436A7F64352D9097506AD9434C3B3 + 18DD4261C4AF43E1E07E71BF9EEFDDD3DDD3DDE31D7738EEEE790027EF7FBECF + AFDBF3797D7F3CF7DC09689AC6F0080402F84B56C121FA60F11BE8D15899FDD2 + E375E02A5BD626B3DBC59F1EC7B192F57E8B185EAF2010C06BF95FD087F6BC89 + 7FD516CE0AF797F74B8FE2EBBD1BF801541467A3574B31FB65DFD4735674DEAB + 49630FE02B938049C044067C5E948D7EFD1D0CE0B5728FF002980899048C77EE + 6EC0B6CA7ACE16F1FC39D1782B7D312284F704D45B21033ED9F03C2780133F2B + D1A73523479A101062C200BE6FB8068B95048C9830803A453BB4262A60042700 + 2B097D2928AEF762C864F142AC4F7B0CE2C8F0DB2242026C3DF013BD2F279913 + 406BCF007446AB17A2B3CF808D9909B7457002305AEDCC7E7E456D50C5EFCD4D + 77144DA0D1EA7D101D7D3AE4652E1D1111126073999C2EDD98C2024209210443 + 8E77427F88569516EF662DE71E90572AA3F76F7E81931168E91E80ECE2750CE8 + CD3EE72D2623CAB648F9030C1A4988FD7F2B571D8BB9A1B90B7AD3AD5774835E + 3F3680A2833F72065993B4182D5D83B0D9EDF8BBB59B1F40EEBE6ABA7CEB8B9C + 8E8067CC941D1D2A35BEAA6944C5B64CFE015C8EC09EB753D9EDC2CA5A7E0039 + 1F9DA20F6C5FC5DB08B8B3B35C86CA7756070F5893BDDDEF37554CFC0A54E6BF + 0495F6FFBF163F38728EB3A20BD7A5B0DBBB2A65E8575EF07BDDC9C31F7BC146 + 044852927D8EFFD161C4973B5F61017CA5A8FC0C9E983BC5E7B8FC5C1DB700BE + 4660CC007C8537C0A5362D0E17ADE57D040A3E3B8965F3A6710BC87D5D8A75BB + 8F3100BEFF5EDF555E8523EF65A1E2A88C3BC044C82460BC131060FF8705E35D + AF4F36ED28193D60BC8B1D29A30694146E62B609B1312DE5F8056513DE07DAAC + C123F10FA3A9A9190BE2E3D1DCD48447172DC29F8AAB787C49022E5DFC1DCB9E + 7E8A6DEBEB7F4152D2736C5B532347468684695352253873BA1AD24C2964D532 + A63D55751A983A0B44A7024511570D0476479D9715CD8101DCC5BB01B8570862 + 3563FE430BD0A254224C3C1326CD0D08A7C561A8AF1311D171D0DFEC4278F41C + 58077B9856D3D386A9B10F60E8463B443173A1E9BA86A8D9F3A053B52132F641 + A8DB95987EFF42683AFF6100DF7D5B85B0A8D930A93BD97B870CA068C7676C94 + 0FC03902EE9E57345EC192C4A56CCF5F38FF1B56AC5CEE77049C3D5F7BB61692 + F454AF9E5FFDF22A062010C73A3AA0DB0B40396AB9F29732480071BD3E070038 + FF6B03563EFB4CC800E2BA3767008B71C8EFDC6FBCDC88C427134704C8E57590 + 489259C059590DD232D24605704E1F9BCD1E1860F78E5CAFE9436C3684858B82 + 06380B97A44920FFE12E0450AE99101CC0357D3C015498D8F10B5C0388A68318 + D4A023A260D1F583886622CCAC665A670142710C28433FE8C819B00CAA408BE3 + 2030F4C22E9A01A2BF09DB9459A0753D8EE3B120CE825D8F4F37C073FE7302B0 + 0D5B13EE35E26C9DE7DD713EBFD975E3EA45CF47B295226C71EEEBDDF7F0DAF7 + 983E0101EEA4FC07DD3EF8DDA038AECC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_15_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004964944415478DAEDD87F4C94 + 751C07F0F7D5F153229014C4E9129745A681F47BD98271FCF0222A5B4DD69658 + E910377FCCE18488D2C5962B472520D9D436A756A2293B218FA0656396E159EC + BA05C288833BE838B85FDCAFE7B97B7AEE091E39EE308E7B1E3827EF7F3ECF73 + 77EC3EAFEFE7FBDC3D8780A2284C8C402080B7E4151FA58E94BD0995CE0E3E53 + F6E9299C2CDFE4B58989FD0AFC01549C6AE2ACE91D1BD2F807BC5EF4057574FF + 5BF85B6BE3AC716FF9A0E204BE3EB0991F4075593EFAF504735EF94D33674D17 + BE963AF300BE320798030432E0F3D27C0C1A6F6300AF9D8F0B2F8040C81C60B6 + 73670376D5347376112F8F8FC6DB59AB111274974FABE537E093CDCF730238FD + A3021ABD155BC4493E21020670AEA503363BE9332260004DB26EE82D84CF084E + 0076D2FF4B4176A31F23169B1B6253E62388080BBE25C22FC0CEC33F5007B7A4 + 7102E8540DC160B6BB21941A13B6E624DD12C109C06C7732E745D50DD36AFE40 + 4116DD34099DDEE881E8D1185098B36652845F80ED9552AA626B3A0BF0272449 + 6284BE27F486E854EBF16EDED3DC030A2B24D4A1EDEB3899407BDF1024576E60 + C868F578DE6631A37287983FC0B099F473FD6FE63A7D31B7C87B61B4DCBC4537 + 198D3303283D728933C8FAD4D568EF1D86C3E9C49F9D7DFC000A0ED651553B5F + E07402E363259CE8516BF1557D2BAA77E5F00FE07202FBDFC9608F4B6A1AFC03 + ACCFDFEDF5837EC1CAB538BC3B97B7098C656F95041AF965AFCFD51EFBD80D36 + 2940949EE6F1B8ACCF869AA297A1D6FFF7AFC50F8F3772D674C9C674F6F8FD1A + 0992178778BC46DAD8E41FE0B71E33BEDCFB2A0BE02BA55517F0D8D270FE017C + 4D60C6007C851740C11B626CDC7712C74A37F03E81E2CF6A71FCBD3C549F9070 + 070884CC01663B3E010E7D543CDBFD7A64DB9EF2A90366BBD9C932654079C936 + E698241D4C25E81F208EA07B4059757838F121B4B5C9218C8881453780A07BE3 + 60D1F6D175218CFFF422383A1EF661155375AA2E44C5273035F4BEA5D0F57620 + 7251020CEA2E84C52E83B65B81A8250F42A7FC0B2FE6E6A0F6CC390822E3410C + 2B4110E4680F249C749F576572DF0063CD8F0170771048BB9505AC484C84BCAD + 0D2B57AD82ACF51A9253D6E0972BBFE2C9A79E606B73F34F484D7D8EADF5F552 + 64678B989A9E21C285F37510E78821A99330F5CCB767218C5C442F88927D6FBF + 010445FF8D836001CB1F58817685829980715085B098C518D12811121DC74EC0 + 4C9F872F58C2ACFCBCD8FB3132D0ED3681216507C2E3129895774D40D325C74B + AFE4320041442C3DC13E370041F772ED0FC53401E4E8DDE704806B02BFCBAEE3 + D1E4248F09FC7CB905CFAE7DC6EB045C2BDF70B101A2AC0C76E5BF3B7BDE2B80 + 1C7D6FCE0036F388DBD61903B45E6D45CAE3299302A4D2268844692CE0A2A41E + 99D9995302B8B68FC3E1F40DB06F4F81DBF6211D0E088343A70D70352ECA1441 + FAFD1D08204677C2F400A3DBE7FF0053F9F47135DE7869EA80F1FB9F5300218C + A07F81EB80D02890262DA89048D80C8320436320B46A99EA6A800A9B0F816588 + A9B66135A88838084CFD7086CE8795FE9EA0E84605A601A692AE159FB710A441 + ED0618DB3E3E016EA7FC0BFE40F7DDD75364DE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_16_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004734944415478DAEDD87F5093 + 751C07F0F78A8128519C5DFCB0B8D2D3248340FA6559271CE3476B51D28FCBEB + 2ED1D243BCF3C77978421C99177779E5D125205A5A779E4622A6BB053902AF8C + 2C83A144BB108C360622C236E636B6E7D99EC6E378646C53B63D0F8C93F73FDF + E719EC78BFBE9FEF76CFC1A3280AE3C3E3F1E02AABF20F528776AE8662D044DF + 971CAD075BD9FC7632735DF4F9511C295EE3B2C4F8BE3C4F01078ADE458FC6CC + 5A71579934C0B49BC05B79FBA983BBD6E2BF01136BC55D6567C96154EE5EC70D + A0BC281B57B4047D5FFA5D036BA573DF4C9A7C00579901CC00FC19F0456136AE + E9A63180D3E663C209C01F320398EADCD980AD150DAC7D88174485E1BDF43804 + F1EFF268B77C067CB66E052B806FCFC8D1AF1DC67A61BC4708BF019C68BC0493 + 99F418E137807A5917B446C263042B0033E9FB4741D671057AA3C901B126ED71 + 840407DE12E11360CBBE9FA83DEB93590174F60C62C860764028FBAF638328FE + 9608560006B395BECF2BAFF5AAFCEE9C745B69121AADCE09A1E81F42AE68A95B + 844F804DA552AA64430A03F0252449426F7B267485E8ECD5E28355CBD807E496 + 48A8BD9B5E626502EDAA4148CE75605037ECF47393D180D2CD42EE006A03E9E3 + FEDF4C8BEDC3DCD8D60D9DF1E623FA759D6E720085074EB306C94A8A437BB71A + 16AB157F77AAB801E4EC1153655B5E66750263334C58A1E81DC037354D28DF2A + F21E9095BDCDE5F76478DC0A8C05B039815DEFA732D70515B5E8BB78C6E5EF1D + 3FF4A903CC2D409092ECF47A4B2F817DDB32399BC068769449101FC9777A5D5A + 57EF1B40A632A122EF35F46A6FFC6BF1E3AFEB582B5DB03A85B9FEB042828479 + 41EC03FE5418F0E58ED7190057292C3B8527A367730FE06A029C0072DE11626D + F1B1499BC057F96FA0FCB0843D803F640630D5F108B0F793FCA9EEEB948DDB8B + 270E98EAB2EE32614071C146FA9A242DF44AD89EDF2DFC7B400D6BF058CC62B4 + B6B6213676099A6517B024361617642D7822211EBF9FFB03CF3CFB34B33634FC + 8CA4A41799B5A6468A8C0C01B31EAF16236BA5885E5FC9B4AD5527C00B8D02A1 + 568220487B0712565BCFF3B236CF00A3E5DD010242E6C2A8E903FFDE08E8FB95 + 080A8B80EE6A3702C3A26056F7D0ABA6E732E6843F0C7D5F1766DD1F0D4DF725 + 8446CEC750EF6504873F82812E39EE7BE8516894FFD080CACA2A048446C238A0 + 64FEB6CF0082B2BDC7627B5EBF9B0FD23CCC0016C5C4303B2F6B6A4642E25266 + E77F3DFB1B9E5FBECCED04C4E25A08D25321114B201409F17DF549BCBA321355 + C7AA5D02085B97E68B722F01A4FDE1CD0E58B07011DAE5727A02BA6B3D089E3B + CF6902FAAB0ACC7920DAE50446765EA7EAC0EC88F9F4CE873CB818EA7FFF6200 + BC9070DB04554CF91B1D5802980C7A7AE7DB5A5B1DCE7ED3F926243E95C84CE0 + EC2F8D58FEC273CCCE4BA5F5100892E909A4A40AF083A4066919692E27301E30 + 727C2C16AB67808FB6E7381C1FD2624140E02CAF0123C5056902487FBC030184 + FD247807B01F9FDB0126F2F53952BCEEF4C40163CFBFDF014E9D14D3C56F0718 + 3D3E1E01A653FE07267FF3DD93CA66E50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_17_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004B24944415478DAEDD87F5093 + 751C07F0F78CF1CB457016030CAEF0AE248340FA7DD509C7F81111295697FD12 + 2D3DC43BB5F3F08490D48BBBBCEAC804244AFBE1A58462CA2D4808BCEA38CB60 + 08119708D2C66F0436C636B6E7D9D6B32778646E53C69E07C6C5E79FEFF3C038 + DEAFEFFBBBDD73E3198D46DC383C1E0FD6E68D3DDF188BB35F45AF42072E67CF + C1527CBDEF75AB216ECCCBB307B02EF388F1E8DEF5900E6BE9FBBCE335AC85DE + FE4A34739DF3C9717C9BBB811B4071CE9BE89173DBC0AC01E65D032F677C663C + B27F23FE19D2B216DCDAECCD3B8692039BB80114E6A4A24F41D0F7F9DFD5B216 + 3AFDA5A8D90770350B80058033033ECD4EC535E53C06709A7CCA700270865900 + CCF5FCBF01EF14D5B2F6265E16E083B7E2C3E0C65F64D76E390CF868D32A5600 + 27CEB76250318ECD89E176219C0670BAAE0D5A1D6937C2690035924E283484DD + 0856003AD2F1B782E44A1F541AAD196243DC831078B8DE14E11060C7E19F8C1F + 6F8E6605D0DE338C51B5CE0C211B1CC396A4F09B225801A87506FA3EA3B07246 + E10FA4C553A149C8154A0B84747014E9492B6D221C026CCBAF32E66D8961008E + 0C49925051CF84D610EDBD0ABCBBEE09F601E97962E3A16DCFB2D2C0E5EE6188 + 2F5CC1B072DCE2F75A8D1AF9DB13B9038CA84907F7FFFA34526FE6BA962E2835 + D71FD1C794CAD90164179F630D92121586CB5D23D01B0CF8ABBDDB31404AEA4E + AB1F33C2B05528D8F11CAB0D4C9D71C20069EF10BEAAA8477FD379ABAF3975F4 + 4333984D802826DAE2E74D030633009B0DEC7F3B96B9CE2AAA4498EF228BD754 + 55D7380668EC2570786732670D4CCEEE0231C2FDF9EC0324DD5A1465AC66BE9D + 7EFFCB6AD64267AD8F61AEDF2B122362A91BFB803FA46A7CBE7B2DE75FAF6717 + 9CC5C3419EEC02D25E4BC4C6DC523300570D98005F64BE88C26362F600CE300B + 80B91EBB00873EC89CEBBC16B37557EEF401731DD6D64C1B909BB595BE26493D + BD12D4E32FDCBD41AA86F040C8723437B7C045B0041A793FF877F84133D44DAD + BE500E74C1D52700BA911E7A95F774C03B20985EDDEF0C82BCAB0D5EFEC118ED + ED8087F05E0C75B6C23BF07EC8657F23654D124E949C06CF2B00C4880C04414E + 642061A0725E94B4D807980C3F09D0F36F87715CCE00424357A04172092B4243 + 21A96F4044E44AFC76E1773CF6F8A3CC5A5BFB33A2A29E61D68A8A2A24248898 + F55459391DDCB43E9F9C84929293E0FB04423D7095F9DF0E030823F5377AC202 + 606A4079AD071E4B96423528839B8F1FD3809ABAF7BC2B90DEF9C5C27BA0EAEF + 346B6058D6064FBF607AE74D0D0C76B42065ED6A1AE0E2E54F352A3303105496 + 86A6D61902C889679FDBF82075E30CE0BE90105C9234E2A188708B067EFDA50E + 4F3DFDA4CD06CACB2B218A8F85B85C8CC4A4447C5F76062FAC49C6C9D232F004 + 42EA087633E1FFCBC01240AB56D1C15B9A9BE1E12D641A50F64BA9D59F694035 + 20C562DF20E6EC8FF5754060DA71AA01D3D95750ABC07F19DD80E0EEE518B9FA + A74D80E9F8E8F506FB00FB76A5991D1F52AF878BABBB19C074F6271BA8BF588F + C847226D3660DA79519C08553F56212656841FC415884B889B5603F31E404C9C + 849901268ECFAD00D3F9F43105AF3E377DC0D4F3EF7480B367CAE9E0B7024C1E + 1FBB00F369FE05FB31F3DD41E50D980000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_18_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004BE4944415478DAED987F5093 + 751CC7DF33C68F2483B31326E995DE9564203F4ECBB22E8809443B54AC2EB312 + 2D3DC43BB5333C2124F5E22EFB71580212A5FDE0544221A5053984CE88480E86 + 127129288D1F93DF1B733F9F675BE3893D323790B9E78171F1FEE7F3FDEEB9DD + DEAFCFFBF3DD7DEFE1188D46DC2E0E87035B7A63EF77C6DCD4D72095EBA8FD47 + 79E7C194DE5DFF3CBDDEFB5901BEDDFFBA4D13B7FBE53802C096580358977CD4 + 786CDF0648FAB5D43EE3443963A677BC1A4EAFD30E9DC0F1F48DEC00E4A6BD89 + 4E19BB094C18C0944BE095A42F8C470F6CC23F7D5AC68CDBD2BE8C3CE41FDCCC + 0E40765A3C6EC8096A9FF97D0563A6135F0E9B7800B6340D300DE0CC009FA7C6 + A35731850158753E42AC003883A601265BFF6F8077722A183BC40BE77AE3ADA8 + 40B87167D8D52D87013ED9FC1C2300277F69428F5C832D31417641380D4051D5 + 556875A4DD104E03502E6E855C4DD80DC108808E74FC28889B6F40A9D65A406C + 8C7C1C9E1EAE63423804B0F3C879E3A75BC2190168E9ECC7A04A6701D1D67313 + 5B054163423002A0D219A87D5276E95D993F981065324D4226575841487A0691 + 28081915C22180ED992263C6D6081AC011912409A5E94E680BA2452AC77BEB96 + 330F909821341EDEFE0223095CE9E887B0BA19FD0A8DD573AD5A85CC1D31EC01 + 0CA84807FB7F4BF5A6C35CD5D80E85FAD615FDA642E118405CFC2E9BA7941714 + 8E9100A9B9E71803890B0BC495F601E80D06FCD5D20169BDED5736A78F7D6C01 + 362A003F22DCEAF3CBDD0664ED7C91D104464A43182091F6E19B925A04CE9961 + F55C5456CE2C0093091C787B25BD4EC9296507A05E4AE0C8AE58D612306B4F96 + 10413C2EF300E20E2D729256D36FA73FF8BA8C31D3291B22E8F5FB394204FBB9 + 310B90B03E069BD20BF0E59EB5ACBF5E4FCD3A8BAF925F42769E90390067D034 + C064CB2E80C31F264FB65F2B6DDB9D3E7E80C9363B9AC60D909EB28D5A93A49E + AA84E9F608772F90CA3E3CE6BF080D0D8D0808588C3AF12584042FC1C59A3A2C + 5B1A820B95D578E2C965F8A3FA22552B2A2E202CEC59BA969488101DCDA7EBE9 + C262C4AD11D0F5647E115CBCFDA0E9958020C8610F240C269F35E246FB00CCE6 + CD007AEE7D306A6434808BE76CA8655DE0DEEF0B654F1BDCBC7DA1E86E87ABF7 + 5CE8063AA92AEBBC86993E0F41D9D50AF707E643D67E15B3780B3028BD060F9F + 87D1D7DA04AF798F42D6F637059077FC14B8DEF3A0EABE4EFFB6C30084D1F41D + 3D61053094C050E7970407415C5B87E0D010BAF3BF55FE8EA7572C1F3581E2E2 + 5208045154E763570970AAA008716B57233FDF360061F25277B9E92E01C8E1AB + C33D5C903A8D45028ADE4E78CCF6B34A40D92DC1CC39F36D2630D479454733EE + F55D4075DEF3C14518B8FE270DE0328B07755F1B6DFE3F0F0C0168554A7AF617 + 0704E092B89E4AA0B6A616A14B43E9042A7FADC28A679EA23B2F129583CF0FA7 + 12E047F221FCB10491D19110160B112388C10F8567B06A4DAC298942703C7D4C + 23D861313E7ABDC13E80FDBB132CC687D4EBE1E2EA4E013CE2EF8FC686067878 + F9D00928BA24A6CAB39980ADD9979BF69EBC8516094C38803D09983B2FFA5984 + 88957CFC241C7F02C4F024DC1DC0F0F8DC09C06C7CACBFCF21E365E7C60F3072 + FE9D0EE0EC9962CAF89D00CCE36317C054D2BF0FDDF3DDC80E31EA0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_19_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004CE4944415478DAEDD87F4C94 + 751C07F0F71987A097C134E0305CE1569282FC583F572D0804A21B022D93ACC0 + 0A87B8A9CD604980E262D37E8C4A4064132B86920819BB6082D0AA3194E05024 + 960812BF7F73C7713FB87BEEAE874778E2E0CE38EE79E4587CFEF97E1F7E6C9F + D7F7FD799E7B761C9D4E87D9C5E17060A8A252F375B9493BF1F7F004D8AC2399 + 45389B1C69B089D9FD724C01BC93FCBD2E27E92DF44A54D4F5677957186BFAA3 + 5DAFD0FBE4AF2FE0BBD4B7D907B055AC01220F9FD1E51E8D42C7C8DD114A3F57 + C958D30776FAD1FB94AFCE213F6D373B809C9477D123663781FB06587209EC88 + 3FAD3B73EC3DD69F4247D3F3507022861D40564A34FA246AEA3AE3872AC69A8E + 7BC3F7FE03D8AA65C032C09201DF24456348BA8401AC763EA3580158422D0316 + BBFEDF800FB3AB18BB89373ADBE3FD200FACE4AE30E9B4CC067C11F3322380F3 + BF346350A2C49E104F9310160328AE6EC1848A30196131804A513B240AB5C908 + 46002AC2FC5B4174BB0F32C5841E6277E016F06CADEF89300B70F0D415DD977B + FC1801B4F68C604CAED243740E8E63AFC0F39E084600729596BA8ECF2A5B50F3 + 276283C8A6098825D239888EC131C409BC8D22CC02ECCF28D7A5EFF5A701E614 + 41109091EF848610ADBD127C12F91CF380B874A1EEE4FE571949E056F7088435 + B7312255CEF9FD84428E8C03210B0744441F3238E47C4F3F4C0246E584B901D0 + D540DECCD54D5D902AFE7D451F974AD1DB60F81B8F8BB99FEBC18C0202FCFDE6 + FCFCE610F400493997198344F87AE056D728345A2DFE6CEDC6967573FFA6BCA2 + D23CC08D012D320FBEC66802334BA9D6A2A37718DF96D6C1C36105FB00261338 + F6C1367A9F985DC60EA0A1578D538742594B60BA3ECE14C293CF651610BB2B04 + 31C78B901D1F467F3BFDE9D90AC69A4E8CF2A7F747B285389D108EAC3C217300 + 4BA865C06297498093C70F2F76BF736A5F42DAFC018BDDACB19A37202D711FB5 + 27080DB5AAC9972FD8D881900DE349B74D686C6C82156F2D14E27E701F728262 + B89B5C1D201DE882B5BD3354A33DD42AEE69839DB32BB5DAACDB0071570BD6F0 + 5D31D6DB065BC7C730DCDE0C3B972720EEFC0B11E1029C2F288695FD7A28873A + A05613533D10D0927DD68A9A4C034C376F0CE0EEBE19F5A2EBF0F6DA8A9AAB7F + C0CBC71B576BAEE199679FA6D7AAAA5FE1EBFB12BD969696233838805E2F1695 + 508D4FAF79F98514544A02A7CB6C805A47FE8F460D0DF741E89462BD04A4433D + B05DBB1EB2C14EACB477A2139093D7AB1E76A14E7EB5E3A390F5B7EB2530D2D9 + 82554EAED4C94F2630D8D6843777845100AEBD0BE40377F4006AB297FA1BCD0B + 0410539FBC0F7041A8947A095CABADC7562F4F88EAEAF512F8FDB76ABCF0E2F3 + 4613282929834010449D7CE876010A2F1423E2F530141414C26A0D9F1CC94EBA + F9BB3D30049890CBE8D1B1B573A41390F677902B9F4E4036D081D50E1BE8D91F + EF6B036FF2C4C90426675F42AE3CFE462A01DE239B307AE7260DE0F01CC97BA8 + 5B6F7C341AAD6980D48458BDF121341A5859DBE80136BBBBE3BAA8814AA0AEB6 + 0E3E4FF9184D60E6ECFB6F0BC0CFC252040607425822448820043F165DC2F6F0 + 50328922F6018FBBB9A1A9B1D1A404663F7D0C25600CA09E9A848501A6C6C710 + 606602F379FA4C9E7CC5E5F9273073FE2D0EF0D3A512AAF1FF024C8F8F4980A5 + 54FF00E493F1DD6FC37EB50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_20_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E44944415478DAED987F4C94 + 751CC7DF1828C465309DFC305DE1569282FC98A6452E0804A20B949649566025 + 43DDCCE68F0501898B2DAD46A620B1891543497E88EC820942332294F8A1482C + 05A103EEE4C7C11DC771C03D77D7C303F774C71D8CE39E4760F1FEE7F3FDDEF3 + DCEEFDFABC3FCF77CFCE4CAD5663A2CCCCCC6048E10999EAF4D85D104A46A8FD + 17174AC09462C27DE975F4E91C5C880B336862A25FB39900FC231A66CCB8217D + 9E9CCB0EC07B713FA9D362DFA1133895719D31D34776BF4AAFE34E5FC68F09EF + B20FC0965803088B3EAF4E3F1E0E7EEFD808255D2C65CCF4C7BB7CE875FCB717 + 9199B8871D80B4F8F72110B39BC02303987709EC3CFABDFAFC890F583F858E27 + 6520EBE45E760052E223F050A2A0F6677F2E63CCF4FEB7BC1F3D005B5A005800 + 98CB00DFC546A0473A8F015875AE255600E6821600665BFF6F804F52CB187B88 + D738DAE2C300572CB1586454B74C06F87AEF2B8C005CFAB511DD92214406B919 + 05316700F22AEE637884301A62CE0094D6B6422257180DC108C00861FAA350DB + F41032F9B00EC41EFFF5E0582D9E12C2248043E7AEABBF89F46104A059D08BFE + C1111D88B6EE01ECE3BA4D09C108C0E0888ADA1F4D299A91F9935101A4690262 + 89540F82DFDD8FFD5C8F49214C023878B6589DB4CF9706304504414046BE131A + 8268164AF059D896990384461C3638230E6E3E3873F0354612B8D7D10B5E6513 + 7AA5437AD787E58310D619FEC32027FD2B1DB04901FC7C7DF43EBFDB030AA06F + 903039018DEAC887B9A2A11D52F97FAFE8035229D62FD7BFB7B8A4945980D8B4 + 6B8C81847ABBE25E7B1F942A15FE6AEE6007E04E970AC9875E6734016D0D2954 + E00B45F8A1B01AAE2B16B10FC06402273EDA46AF63528B980788DA1D84C85357 + 70EE70306B0968F469320FA947429092C1630E602E680160B66514C0992FA367 + DBAF9E0E1C4B9C3EC06C9B9D4CD306488C3940AD0942495505F9EE626E6D8BA1 + FE1E3CEFBC16F5F50D707159879ADADBF070DF805B5535D8B4D10337CA2BB1D5 + 6B33555FD8BC09656537E0EDBD95AE8585C5080CF4A36B4E6E01427770E97A29 + 2B0FE6B62B31D4C38742418C7B20A0227D56D5361807A031AF0180A50D089988 + 0630E72C835CDC098B27ED21EB6EC3125B7B48BBDAB1D8D611237D02AA8A050F + 606DF734649DADB05CBE1AE2F6FB58EAE0847EE10358D93D03516B236C563D07 + 71DBDF1440466636759F94BCAE91C9000A35F91DA5024A8B27A01E12EB24A0E9 + 7CE5CD3FE1EEE9819B95B7A8CEFF5EFE075EF2DA326902050545E07203743AFF + F6CEED148085ED2A0C76B5E80028482F35771A6708408C453911603401698F00 + 56CB56EA2520EBE2C37AC56A83098C765EDAD184C7ED9DA8CE739E5A8BBE96BB + 060188F1DF6604008F59607850A637FB1BDCDD505D550DCF8D9E7402E5BF55C0 + EBE517E9CE171797C2CFCF874E20FF6A2182DF08A412080EE122FB721E42DFDC + 8EACAC6C982F75805CD4A6333E4AA5CA38808463513AE3432895305F6CA90360 + 6563472720EDE493D5C1600286665F42EE390E6B7412D0009871ECC867A8833D + 80679D9DD1505F8F752E2EB85D5B37AD04B44F1FDF6D7EF8855708FF407FF00A + 7808E206E14A6E3E4276049349E4EA0128C627616600E3E3630860F4F4918B3A + A804FA042DE090090C8884F4E963E3E86454021301B4E79F1500ED04349DD754 + 43A7CF68E74BAE8DD5ABF90554E7A74A407B7C8C02984FFA17EFDDF1DD439004 + 800000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_21_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004DC4944415478DAED967F4C94 + 751CC7DF3840103218C6AF82156E2529C88F50D6CC0581407412829966055A3A + D4AD74A50B06242EB6AC1C9A4146891543885F2923582A38750C4540C58B058A + C4EF5F07771C770777CFDDF5DC83F7C471778CE39E871F8BF73F9FEFF7B93DDB + FBF5797FBEDF7B4C944A2526CBC4C404BAB43B355FF9E367D1E81648C1A612D3 + 2FE2A7F8AD3A4D4CF66B6208404C4A8E322B713B0DF0C5B9CB8C994E8809A2D7 + F1A70A712E69077B00FFF0C61833AE4B9FA717B103F05ED2AFCACCC477E804BE + CABEC298E94F77BE46AF934EE5E3979477D907604BAC01EC883FABCC3A1A83B6 + C1F1114A3B5FC198E98FB707D2EBE493E79193BA8B1D80CCE4F7D1C567378159 + 035870096C3BFC83F2ECB1DDACDF4247D3B291777C0F3B0019C9B1E811C8A8FD + 77BF5532667AFF5B01B30FC09616011601E633C0B789B118102E6000569D4F10 + 2B00F3418B0073ADFF37C0A133958C1DE295CEB6F820D4134BCD9618D42DA301 + BED9F32A2300B9571BD12F18C5DE702F8320E60D40715533C6A484C110F306A0 + A2BE150289CC60084600A484F147A1FE410F4492310D885D216B606D693E2584 + 510007BFBFA23CB137901180875D8318164B3520DAFB47B08FE3352504230062 + A982DA1FCE289F91F9E371A1A469027C81500BA2AD7F18FB393E7A21A6051015 + FB89CE16BBF885226D5F100D608C08828088FC26D40571F57613FAB9D775BE57 + 98F5B506985E80E0A040ADE7F70780D31FBDCE48024D9D8328AD7E8041E1A8D6 + EF631231D6ACD07EEFD2E50A660086C484D109A875873CCC55DC0E0825FF7DA2 + 8F0885B3039098F927632051019E68EA18825CA1C05F0F3BD901B8D7A740FAC1 + 37184D60A246650AB475F3F073592D3CED97300B10B7331C71274A3400984CE0 + D8879BE875C29972641CE22023BB943980F9A04580B9964100A7BF8C9F6BBF5A + 3A702475FA00736D569FA60D909A70805A13849CAA32F2AFDFD4CA16A3C30378 + D17D151A1AB830B5B68384DF0BB3271D21E17592D51EC2BE0E98DB3A433AD445 + 557E570B6C9CDDA86AB1C215FC8E662C7772C370770B2C1D9E03AFB511362E2F + 80DFFE37A2B670909B570C733B5788FB1E4126231E7B20A0207DD6D4730D0350 + 9B5703C0C206848847037878AC465DFD5DF878AF45F5CDDBF05FFF12AEDDA8C6 + C60DFE545DEFBF0E9595D71010B091AE6565971016164CD7C2A212CAB8BA66E7 + 1450A04212502DA301644AF21DB94C0B40958070A00B96764F43D4DF8EA5B68E + 74026272BFEC2917AAF3560ECF42D4DBAA91C0607B339639BA519D5725D0DFC2 + C5DBDB22F502C8482F75F71A6708408C4729377B02CA51BE4602B76AEAB0CECF + 874AC0DBD70737AB6F519DBF71BD0A1B5E79596F022525E5E07042E9CEAB4647 + 0D6066EB428D90DAFCB807860088111E3D3A96360E7402C2DE36B23AD10988FA + DA6065EF4ACFFE484F0BAC551D271350CDBE80ACD64E2BA904AC9F5985A147F7 + 11BD3512B9B9DA00AAF191CB158601A41C89D3181F422E87A9B905C6C4228DD9 + 5725B0D6DB0BB535B5F0F5F3D59BC0E4D9BF70B10C119BC3A80436479067A0A0 + 1851D191C8CB2B80E97227F25268671FC0900426DF3EBA1278734B040AF28B60 + 62ED40DE629D1AF3AFD2CC001E8FCF4480E7DDDDC16D68C06A0F0FDCADBF4325 + A0EEBCBA4E75FB046D0AC61FA56508090B41694929C239E1F8BDE88216C0C4F9 + 670580A9FB5F5F0213C7C7208085A47F015E6BF0DDAC3A68E40000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Delete_22_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D44944415478DAED977B5054 + 6518C61F1A4088CD6070E25252E18C498AA2A6529123C416482B29966956A08D + 0EE64CE9944E3840D2C44C560E9A414589158312B76087810905C68CB8086848 + 04A21097452E0BBB2CBB0BBB67773B7B704F2C7B6058F71C2E13CF3FEFF7EDEE + 99797EEFF39EEF9CB5D2E974182F2B2B2B30696F7C86EEBB0FB7A34BAAA2F69F + 9CBB08B6742C3C905E4727E6E1FBA857184D8CF76B65090057E20C203C2E4D97 + 12BD93F304A24E67E15CCC2EEE00FE118FB0669C491F25667303F066CC4FBAE4 + E8D7E9043E4BBDC49AE90F763F4FAF634E67E0C7B837B807E04A9C01EC8A3AAB + 4B391E8EB6FED1114A385FCC9AE9F77606D0EBD853E79116BF871B80E4D8B720 + 92709BC0B401CCB904761CF95677F6E3BD9C9F42C71352917E621F370049B111 + B8235553FBAF7E2E61CDF43BAFFA4F3F00579A07980798CD005F4647A04F3687 + 0138753E469C00CC06CD03CCB4FEDF0087BF2961ED265EE2EE84B783566281CD + 7D6675CB62802FF66D6205E04269037AA5C3D81FE26316C4AC01C829BB891115 + 6136C4AC0128AE6D8554A9361B8215001561F9AD50DB7C0772E58811C49E1757 + 80676F3B2984450087BEBEA43BB93F8015805BA27E0C2A544610EDBD433820F0 + 9914624A006111EF333A7CD47733F4000A9596DA1F492ABC27F327228348D304 + 2452990944E9D526881B2BA02598FF7767A57C6E043721003F30C0E4F3BFA5B6 + 4838104803582282202027DF0999202A1BBBB094376C724DD1C562CB006EF401 + 67DEDDCC4A024D9DFDC82F6F46BFCCD4E8885281158B4CAF630D604041589C80 + 41D7C89BB9ACBE0332E57FAFE84332D9F4004427FFCA1A4898FF4A34750C40A3 + D5E2AF5B9DEC0344EE0E41E44921120FBDC46A026335ACD6A2AD4B8C1F0AAA91 + 745880A4D47CF6006683E601665A66019CF9346AA6FD9AE8E0D1F8A903CCB4D9 + 89346580F86307A9354168A8AA269F9CD60E4E181EECC3935ECB5057570F6FEF + E5A8A9BD8E35AB57A1B2AA06EBD7ADC1E52BE5D8E8E74BD7C2A25204F13751D5 + DF7F230A0A8A101CCCA76B56B61061DB0474BD909E035B670F287A5AA0561377 + 3D10D0923EAB6AEBCD0330983700C0CE11845C4C0358F39CA19474C3E64157C8 + 7BDBB1C0C915B29E0ED83AB9433520A2AA44741B0E2E8F41DEDD0ABB451E9074 + DCC442374F0C76DD86BDCBE310B736C071F11390B4375200A96999D4EF64E4F7 + 06590CA0D691D768D42600FA040C9D2FAFB80ADF0D4FD19D2F2EFD1DCFFA3D8D + 9292CB54E70DD5D079A1B01002419051E75FDBB175420035E9A5E6CF867B0420 + 46A3D4D83C00DDB0C42801599F08F6CE0F9B2420EF6983C3431E8C09E83B2FEB + 6CC6FDAE9E54E7798F2CC340CB0D1AC0C66931354206F3A31E58022086C48CB3 + 5FF64715D6AE5B8B8AF24A6CF05D8F2BBF95C1EFB967E8CE17151583CF0FA013 + C8CD2B40E89660C604C603E8C747A3D19A07107734D2687C088D06D6B6761851 + C869007B47173A0159771B59DD1813609A7D29B9E7B92D314A206CFB56A4A74F + 23C0726F6F5CAFBD8655AB7D505D553D6902E34F9FB1096C09254FA1CC1CBCBC + 2D149919D9B05EE806A5B8DD68FEF5BA3780BBE3C304A03F7D94E24E2A810151 + 0B78640243E22EFAF47174F7342B01038015CF853CC53A8DE69F5580A55E5EA8 + AFAB334AC0D079439DE8F4D1D7C017F8C8CB15224410827C613E557FC9CE6504 + 308C8F59007349FF021598F3DDA59C14870000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_23_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004B44944415478DAED977D4C1B + 751CC69F1A60BCD409D9E44D990EA26E32D89BDB8899CB408830C2D0A1CECDA9 + B0992DB8252E46B7C802388C24CE97E0DC46141DCB46D8266F71844064A30B92 + CAC0D0E16038180C8196D7424BDFA0BDB65E4F7AD2F63094DEF11279FEF9DEAF + E9F59ECFF7F9DEEFAE3CA3D1086BF1783C30E9406681F1878F5F45AF5C0B2E95 + 7AEE1A7E4C798DD184B55F9E23009F5DB8CE9AE9138991B30FC095380348CCC8 + 37E6A6EEE13C8194D345B890B6973B80BFA4E3AC1967D227E78AB901783BED92 + 3127F54D3A812FF26EB066FAA37D2FD2C769A70B7031E32DEE01B81267007B53 + CE1B734F26A26BF89F11CABA5CC59AE9A37B22E8E3F46F2E233F733F370039E9 + EF4022E336815903587009EC3EF6BDF1FCA70738DF854E66E5E1EAA983DC0064 + A727A14FAEA3D6677F12B066FAF0EBE1B30FC09516011601E633C0B7A9491852 + 2C60004E9D4F122700F3418B0073ADFF37C007DF0958BB8983FCBDF06E742896 + 383F6457B71C06F8EAE0765600AEDC6CC1A07C0C8762D7D905316F004A846D18 + D7127643CC1B802A5127E41A9DDD10AC006809C76F05D1FD3EA834E31610FB5F + 5A03BE9BCB7F424C0B2021E94346874F84EDC0D78722580168970C6354ADB580 + A816B563F0AE100662EABFAC45B95F5A004E0910151961F379ABD29502506B0D + D4FA5876C58CCC9F4A8E264D1390C9153610F5ADFD78CA43CD785EE5F52AC700 + FE94BB20EBBD481AC01111040115F94EC8045177AF174FF3C7D807681A02CEBC + BF8395045AC5C328ABBD8F6185ADD1718D1A6B967390801960444D389C8059B7 + C99B59D8DC0385E6DF5774A542C13E40F2BE581CCE2AB30048CDF985359084F0 + 50B4F68C406F30E06EBB18678FC6223BAF8CDD04E65A8B00732DBB00CE7C9E32 + D77E6D74E478E6F401E6DAEC549A3640E68923D43141E8A9AA231F3C4E1E5E18 + 1B1D4268F06A881A9BE0C45F068DAC1FCE8FF842231593D51B8A811EB878F943 + 3B22A1AA4CD2014FFF40AABA2E5F01594F1B96FA0562B4B7036E3E2B21ED6C81 + 67C0339075DF43C2AE385CB95A02579F202825ADD0E988090F040CA4CF7A51B3 + 7D0066F3D600CFAE5E853B779A1112128C06512336AC5F8BDA5BBF236CCB73A8 + AEA9C5B6AD6174ADA8BC89E8A8ED540D0FDF86F2F24AC4C444D1B5A8B894326E + AE79F98570F75E09B9B88DBEB6C3003A23798E9E7CD0B87A825049690053028A + 2109DC963D06D560379678F9D209A8C9B5FBA30154E73D7C9E84AABFD32281E1 + EE36B8FB06529D372530D8D18C3776BF420198BEA720139A0CA023BD34FCD132 + 430062E2C96B05604AA0AEBE019B376DB049E086A0065B5F781E024135D57973 + 3577BEB4B4027171D174E74DA3C304404C5C9B1500BDF3C32094527A74DC3C7D + E80414FD5D64F5A313500D74C1C37B053DFBCABE0EF04D1D271330CDBE9CAC7C + BF202A01FEE3AB30F2A0890670F60A807AE081C5F8E8F506FB00328E275B8C0F + A1D783674A60128069F6CD09087FABC7C64D1B71ABB60E5BC236A3E657A14502 + D6B3FFF3B572C4EF8C614C8033002717578CAB55334AC07AF7614AE0E55DF128 + 2C28B601D04D4CC2CC0026C68709203824048DA2DB58BB7E1DDD79739D6AF699 + 12D8194FEE4285253480D3523F725BEEB6987F4E00D8DAFFAD13E0F17DC8DF11 + 5B8C8F5D000B497F039DC0EDDDD5CC2FED0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_24_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004CC4944415478DAED977B4C53 + 6718C69F2E80453A47A391CB8651C89C0E11D1A1E89C0106198C218ADB9CCE6D + 30170CD36466D920C300CA3212DD25CCA904DDC46C042FDCA684C08202718C71 + 7114068C7151904B11A4D052DA427B4A777AA467969685D273B8643CFFBCDFD7 + F4B4CFEF7DDEF3F594A3D16830511C0E07C61471325B9312B51B3D1225B5FFE2 + D24D30A563617EF4FA784A1ECE47871A3531D12FC714808389199AEF3F7B9D06 + 604BB1E76EE0879837D807602B811903604BAC018425A46B5263F7B19E40CCE9 + 2C5C8ADBCF1EC07DD12863C68DE9F8B96C7600DE8DFB497321F66D3A812FD36E + 3166FAD3032FD3EBB8D319F831E11DF601D8126B00FB632E6A524F84A163E0D1 + 08255D2E62CCF4D17DBEF43AFEDBCB484F7C9F1D800BF1EF4128663781190398 + 7709EC8D3AAFB9F8F941D64FA1134969B87A2A821D80E4F8703C90A8A8FDD96B + C58C993EFCA6CFCC03B0A505800580B90CF05D6C38FAA5F3188055E78F891580 + B9A00580D9D6FF1BE0E39462C66E6217473E3E08588F45964F98D42DB301BE8E + F06604E04A49231E4A46702868834910730620A7AC05A34AC264883903502468 + 8744A13219624A007BC23F313AEB2BB7BE062D809230FF5610B43E804C314A43 + 94DC6986A8A90263C47FFFDBCB4AFD4A0F7252007F3F5F83D79B87B9F8E6902F + 230077850318922BF520EAEEF6C0893B32E93585378B9801902BC7A87D5472C1 + B4CC9F8A0C204D13104BA4061055CDBD78D646CE0EC0DF122B247DE847039823 + 822020239F098D415436F56035CF3009B301EAFB81331FBDCA4802CDDD03C82B + 6FC580D4D0E8A8428E75CB184E20F240100E27E551008372C2EC0474AA216FE6 + B2862E4815FF3EA20F4BA5387B3408C96979CC2630DB5A00986D990470E664CC + 6CFB35D091E8C4A903CCB6D9C9346580C46347A83541A8A9AA22CF6D0B1B3E46 + 86FAB1DE752D04B5F5F0705F87CA3F6AB0D1C31D9555D5D8ECB911B74BCBB163 + BB175D0B0A4B10E0EF4DD79F737FC1AEE057E89A7EED3AF68406232B3B97AA57 + AEE6806BE782616133542A62DC038131D26795A0C134009DF9C9002C784BA110 + F7C2F2297BC81E766211DF1ED2BE2E58F11DA11C1452552CBC071BBB9590F5B6 + 83BB6C05C45D2D58E2E08CA19E7BB0B65B05517B236C9D9E83B8B38902484BCF + 04CF713506EFFF457FB7D9002A0D798D9A3CA7B9B62064223CBF760DEAEA1AE0 + E6E64A77BEBCE20EBCB6BC4077BEA8E437F87ABFA897808FCF0EE4E7172230D0 + 1FB9B905080E0ED0EBFC5B7B7753008B97AF82A4BB450F40457AA9FEB3719A00 + C4F80FD704006D02D27E21AC973E6D9080ACAF0336CB57184D40DB7969772B16 + DB3B539DE73DB306836DF53480F67D5232219DF9471E1800505B3E0962584475 + BE5A50AB37FB65BF5761DB564F3A815BC5A5D8FED2361417DFA63A5F5858047F + 7F5F3A81EB37F211B233D06802967C27C8FBDAF4C647AD1E330D20213A526F7C + 08B51A1C6D028F0158DBDAD109487B3BC8EA60340163B32F21F73C0717A309CC + 18C0C40436796E42457925B6786D46E9AF657A09E83A3F9D0454E393303D80F1 + F1D102585871312A97D100DAD34721EAA6121814B6814726302CEAA14F1F5B47 + 679312D8151A82CC8C6C582C71203FB7536FFE590170757343ADA006EE1E1BE8 + CEEBAAAEF39325A0EBBCB6EE0C216B660E0DC0E1D991C770B7DEF89804309FF4 + 0FDE60E8DD93D523500000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_25_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A64944415478DAED997B4C53 + 6718C69F2E80051A0771E3B6611432A773EA3453D1302308198C3110B7399DDB + 602E10A6C9CCA2103180B28C44DD16E6144437311BC10B82174260418138E310 + 1CCC2163822282943BB49416DA9E72767A6C4F282D8ED2F371C978FE79BFAFE9 + 699FDFFBBCE73B4D2AA0691A23251008604A51872FD1C77787A0574181A4F6A6 + E6237D4FA8491323FD0ACC01883C984BA7C76C44AB54C5EEBF3E7D9537D3FBC2 + FDB8F5FEF47C9C880DE31F607B7236FDE3DE773900528A4FBD829FE2DE230F40 + 2A81090320256200E149597446FC16E209C41DC9C1E984ADE4001E752B79336E + 4AFB5373C9007C9CF00B7D32FE432E81C399D77833BD67DB066E9D70241B3F27 + 7D441E809488016C8D3B45671C084753CF93114A3953CC9BE95D5B7CB975E2F7 + 679095FC29198093899F402C219BC084014CBB0436C79CA04F7DB59DF8297420 + 2513E70E459201484B8C409B54CDEE8F9D2FE1CDF48EF77D261E809466006600 + A632C00FF111E8924D6300A2CE878908C054D00CC064EBFF0DF0657A096F37B1 + A79B233E0B588A59D6CF98D52D8B01BE8D5CCF0BC0D9D25A744A071115F49A59 + 105306E0E2CD7A285594D9106302D814B1DBE4A8CC5BF336F80228AE6A847440 + CD4294DEAE4367CD6F63BA2E27E31B03D05101FCFD7C8D5EAF97DBB1002ACAF2 + 5BA1EA7E1BE4034A0EA2FA412BDC85834FBDA6E86AB1650075FD427C17E5CB0B + C003710FFA142AB320780350A886D87D4C5AE1B8CC1F8A0E604C539048654610 + 1575ED78C95E4106E01FA90D523EF7E3002C1145519033BF094D4194DF6BC502 + 9171121601446F0BC28E947C1CFDE22D5E12A86BE9417ED97DF4C88C8D2A0714 + 38B62B086999F9FC2630D99A01986C990570F460DC64FB35D2CED8E4B1034CB6 + D9D1346680E47D3BD9354569D8AA668E3D2B7B470CF67561E9E245A8BA731756 + A2391890B4C3FA59170C74B730D509B28EC7B0717483AA57CC5689B8010E6E1E + 6C153E371792C7F598EDEA81BED606D83ACF4777632D1CDC5F86A4F91E368505 + E3ECB98B103A7BA25F5C07B59AD279A030C4F8ACA8AA310F406F7E3480E5CB5E + 45F91F7F62C5F26528BB751B5EAB5FC7F51B6558E7EDC5D5C2A25204F8AFE7EA + A5BC5F111AFC2657B3CE5F668DE7E4E6B13533EB02446E0BD0FBE86FEEBB2D06 + 50D3CC351AE6A923740025EF364840D62586ED9C1720EF6CC62C47172E0105B3 + B77BDE9DEDBCBDF33CC8DB1B0D12E869AE879D8B07DB796D029D0D35F860F3C6 + 5101D48C97CABF6AC70940E9FED8D601BCB26821AAAB6BB064C96294575462D5 + CA1546095C2BB9810D3EDE0609F8F8AC434141110203FD91975788E0E000AEF3 + DAD1D103D839CD87B4A59E33FFC4034F004A69076BBCB2EA0E6C1D9CB90464ED + 4D4C75E512907734C1DE692E37FBFD6D0D10693BCE24A09D7D295345AE9E6C02 + A21717A2F7E15D0E40FB7E19738F0C1F1F8D66C83C80A4D86883F1A1341A08B4 + 09F4777300DAD9D72770F3F70AAC5DB3D22001EF37D6A2A4E4BA41E7F5F5F295 + 0284BC136832016B4777283A1E920730278191A7CFD3121809A0D64DC2F80074 + E3F35F09683BBFDA6B156E9595B355DF794B12183EFFBC0058D908A154C83900 + BECE7F7D02A16121B8909D0BABD9AECCE7361B8C8F5900D349FF0255A1DCDD4D + 2FB3B50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_26_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000049C4944415478DAED997F5093 + 751CC7DFEB4087EC0ACE2E7E149EC16575E6EF0424F20059814A889A26594116 + 1CE55DE5299C7080E2C59D5A1E5A42488915E14F4025821A328E0CF9A12C4BE3 + 0215441DF263B23136D8F68CA7ED099E03F72C37781E908BF73F9FEF7777DF7B + DEAFCFFBF37C6FBBF14892C4FDE2F1786052CCBE4232FD9395E85213D43E31EB + 17B0A55DEFBF42AF13324B90B12584D1C4FD7E79D60044EF3D4D7EB5359406E0 + 4ADBD38B90B96D15FB0051BBF3C9CCD830B42AB4D4FED323A5AC994E8808A4D7 + 3B328B70286E35FB009B524F925F6F5F4B0370A5C4F4B3F826FE75EE01B84A60 + CC00B81267001129B96476E206CE13883F90872349E1DC01DC94695833CEA41D + E9F9DC00BC9DF43D9995F8269DC0DE9C73AC99DEB67119BD4E3A7012DFA5BCC5 + 3D0057E20C203CFE3099BD33022DF7FE1DA1B4A365AC99FE784300BD4EDE7F14 + B9A9EF72039095FC0EA4726E131833800997C0FAD843E4E15D9B38BF8576A6E5 + E0F89E286E003292237157A1A3F6074F885933FDE13AFFB107E04A930093000F + 33C0178991E8544E60004E9D0F1127000F832601C65BFF6F802D9962D65E620F + 5747BC173417536D1FB1AA5BA306F83CCA8F158063E5F5E850F4217AC57CAB20 + 2C025813B995B1D33397AC045B0005958DD06809945F6C40C7D55F2D3E9797FD + D93058B300C2C00093CF1B55D3580328933443D1ABA320FEBCDE0A377EDF03CF + 884ACBD801D012A37F1524D7EE42D5ABB10A62D4000D3D7CEC8B0E6005E0BAF4 + 1EBAD55AAB205803506BFBA97D6C46C988CCEF89093298262057284D206A1BDA + F08CBD9A7D80988D2BF0D14111D23E08A40146238220A0327C27648228145519 + 7F132323A788DD04C65B9300E32DAB00BEDC1D3FDE7E4DB4392ED57280F1366B + 4E1603A4266CA6D604A1A7AACE706BD8D83BA2AFBB1373673F0FC9E52B5830EF + 05D45CFA1D9E8BE6A3B2FA127CBC16A1ACE20296FA7AA3E27C15554B44E50812 + FAD1F574E1CF5815F22A5D734F9C41F8BA50BA7EFB431EF84E1EE8913640A723 + 063C10E837F8AC955CB50E60D0BC39001BC174F4CADB60FB9833541DB730D5D1 + 19CAF6DB98E2E80A6D9794AA72E90DD83BCD84AAAD19FCC767407EBB118FBAB8 + A3BBF506EC9C9E86ACB91E0E6ECF427EEB6FAC591D829CDC5310B8CE42D7CDBF + E8678F1A40471ACEE8758C09183BEFB97821AAAA2FC2DBEB45BAF365E5BF21C0 + EF25B3099C2AF8096BC396539D371A3F76BC006FAC0F330BA03378A9FBA37E84 + 00C4C0FFC27C07102AD9B004949D52D84D7FD22401557B0BEC9F98C19880B1F3 + CA3BD730CDD99DEABCE0A9E7D0D5748511801878366B001A453BE6CC998D3AC9 + 652C5C300F35B575540295176AE1B364319DC039F1792CF3F7A53BFF63712984 + C20014178B101C2CC499B3C5087D2D1879F985260918419586111B3A3E7A7DBF + 7500297131C3C687D0EBC13326D023A301EC1C9CE804946D2D86EAC29800D3EC + 2B0C7B818B0763026306F0A0047C5FF681585C017FFFA574E72D49C0D6D10DEA + F6A661F36FD4C80006C68709C078FBF4CAEE500974499B203024D0236BA56F1F + 0757F7112530083074FE5901B099C28746AD624CC0D8792F6F4F5457D55075B0 + F3E61218ECFC7F2530747CAC029848FA07FC04D3DD0FB0C2180000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Delete_27_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000048D4944415478DAED997B5054 + 6518C69F6D24B9EC140CC5AD700C66BA8CA96969DA308EA0149484A869921564 + E130F9873A0A230CA03831A396A3562092A246A828A0320485B00C3188229025 + 31B18908BA5C17765996CBEE594E674FBB67D8656976D9F3711979FE79BFEFEC + 9C39CFEF7DDEEFFB6705344DC358028100A61479248F4EDEB9063DFD14486850 + 3D8CE65629CE1654236557904913C67E05D600C4A5FDCA9BF9035FBCCDAD6353 + 0BC9006C3B7C853EB13B9858027AED4DCE47EA9EB5FC03441CCCA153A342D02A + 57B1FBAFCE5CE7CD746CD86A6EBD2F351F27A3D7F10FB035E912FDC3DE0D1C00 + 29C5255FC3A9980FC803904A60C200488918405862269D1EB799780231C7B371 + 263E941CC003E9106FC64D695F720E19804FE27FA4D3E23EE212389C51CC9BE9 + 3D5B5671EBF8E397702EF163F200A4440C2034E6349DBE3F0CCDDDFF8DD0D1F3 + 25BC99DEB1D98F5B271C3B8FCCA4CFC800A4257C0A898C6C02130630ED12D814 + 75923E7D602BF15B68FFD10C5C3C1441062025211C6D7235BBFF3E4BC49BE92F + 37FA4E3C0029CD00CC004C65806FE3C2D1A598C600449D8F101180A9A01980C9 + D6E30DB02B55C4DB21F6F670C2E7010B30DBE6098BBA6516C0FAF0DD268DCE5D + BE06DF44ACE405E042693D4A6F37A0B3EE378BDECB4EFFDA00784C00FFD57EA3 + 9E8B95F6BC01E4568831A4A2F0E7BD5678DA0E9AF54ED1F592A9035052DB04F9 + 80DA2208DE005494F547A1F69F362807862C82B01AA0A1CF1647B6F9F102704F + D28DDE7E9545105601446E790F3B4F14B300FDAA61F659544AE1B8CC1F8A0C60 + 4C5390C915A320F28A2A91736C070695BD48C9C8E73781C9D60CC064CB2280EF + 0EC64CB6DF51DA1E9D643EC0649B1D4B660324C56E67D714A561AB9AA230CBC1 + 0983BD5D5830EF15D4DEB98B5942670CC8DA61F3B41B06A48F98EA0245C7433C + E9E401558F84AD3249231C3DBCD86AFBCC1CC81E8AF194BB177A5B1B61E7FA02 + A44DF570F47C09B296BF11BA3118677FCA86ADAB37FA240D50AB299D070AC38C + CFAADA3ACB00F4E6C70258B4F055DCAAFE1D4B5F7F0DE537AAE0B37C094ACA6E + 6085CF32949557B2B5B0A81401FE2BB97A25EF17AC0D7A87AB99595759E3FA7A + EA5C16841E2FA2E7C15FDCB7AD0650D3CC3B1AB5C904145D12D8393F0765670B + 663BB97109F4337BFB673DD9CE3BB8CE85B2BDC92081EE1631ECDDBCD8CE6B13 + E86CACC3879B42909179D924809AF152F347FD380128DDDFAAB68EA094528304 + 2A6E5663E992C5A8BC791BCBDE7C83EB7CB1A81CAB7C7DC64CE072EECFD810F2 + 2EDBF9F5EB8270E162AE49004AF76DDE0086E41DDCE8D839BA720928DA9B99EA + CE25A0EC688683CB1C6EF6FBDA1A21D4769C49403BFB72A60ADDBDD90484CFBF + 8C9EFB7739007B17E6F7476283F1D168862D03488C8E34181F4AA36146C89905 + 983F7F1E6A6AEF60F1A285B85555C32650C19C81B79833305602DACE0706FAA3 + A0A088AD57AF1520F8FD4064E7E48D4A400BAC600E39EF0002ED08F54939004B + 1230BE7DFE2F016300B56E12C607A01B1F53002313D0777EE4EDE3EBBB022251 + 195BF59D3727011B274FF477DC37987F22007CDDFFC6098C04D08F8F4500D349 + FF02733CC8DD357B435A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_28_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004924944415478DAED957B4C53 + 6718C69F26BA718B83B0C865C338B6B82D4E9D1A511C2114610E8521E274A29B + 30330CD164B8A84408A098913837834E41648A17444501153B745CC3183A0930 + 37956C8820422B4829A5965B4F393B3DD2132AA70985F371C978FE79BFAFED97 + F3FCDEE7ED7744344DE365894422F0696B82843EF2CD0A283A29761F9DF22B84 + 52A0782EFE6D5440DBD78707B54D381ABE92D7C4CB7E45A600841DCCA113B7FB + 720042AB5BD38706991CA7732B90F4AD1F79002113D8F7F5C7DC3A2AF9061980 + 2D07AED0C776F8134B40AFDD891224EF5C253C40E8FE2C3A79570064CA5E76FF + DDA97CC14C47057B71EB3DC9121C8F582D3CC0E6F84BF4CFBBD77000A4149D78 + 0D27223F230F402A81510320256200C171E9746AF47AE209441ECEC4A9982072 + 008FE53D8219E7D39EC42C32005FC69CA553A23770091C482B10CCF4CE8DCBB8 + 75CCE14B3813F7057900522206101479924EDD1B8C86B617239470BE5030D3E1 + EB3DB975ECA1F3488FFF8A0C404AEC2648DBC926306A00132E8175BB8ED327F7 + 6D267E0BED4D48C3C5EF43C90024C586E0A952C3EE8F661409667AEB5AF1E803 + 90D224C024C07806F8293A04ADAA090C40D4F9001101180F9A04186BFD3F0002 + 4376F0FE5967BAFA0A6644DDA1C4B3FBBF997C2E33F50783EE1A05F0F6F21CF4 + 798DDA023F867A080270A1B81A7FD7CAE064D63DE43379F985E30720BBAC063D + BD944910E30AA0B0AA1ECA2E8D49108201F452237F9F553D7C0A75578F491023 + 0208DBB812DB8F15E0E0164F41006AA56DE8E8EC3580C8C9BB8DAC43E1E85677 + B0BF494A93089BC0586B1260AC6512C091FD9163ED7790B645C40F1D60ACCD1A + D39001E2A3B6B16B8AD2B255435198626983EE8E56CC9DFD3EAAEEDEC3FC791F + E04EC59F7059F821CAFEA8C0D2C50B5158720B9EEEAE5CBD7EB308BECBC56CFD + C4DB0357726E6295DF72AEA6675C45D05A7FB606AEF6C3858BD998E6F80EDA9E + FC038D86EAF740A18FF1595E75DF3400BD79630053AC6CD1D5DE8CA9AFD943FD + EC095EB5B187AAA511AFD838A25721656BBBF4112CED6642DD5C0FB3D767A0BD + B106D31C9CD1217B0473BBB720AFAF86B5D3BB68670CEB404E9CC98095E32C28 + 1E3FE09E3D62000DCD9CD16A7813D077BEF45639DC5C17B19D77775B82C2E2DF + E1E9F1116EE415B39DD7577DE72F67FF8235012BB8044E9FCBC4A60D81460134 + 8C97CABFAA870940BD88922F0155AB14E6B66F0C4A40DDD200CBE9337813D075 + 5ED5F41016F6CE6CE7ADDE7C0F8ABA7BF87C5D00D2D22F1B0050FDCF16040066 + D6E851B60C9A7D97450B50C624B09449A0A4F4369B404151299689DDB8CE5FCF + CD87AF8F179740469604FE9FFA20332B879B7D6300BAF1D16AFB4C03888B0833 + 181F4AAB6512B0350030B7B6E31250353730D5813701BED957327B2B87B77913 + B098CE7CDF54430E60CE9CD9A8ACBA8B05F3E7E14E79E59012D075DEC7C71BB9 + B9796CBD7A2DD768023A6015033A70FE751A1E40FFF8E80044CC0851CFE51C80 + EEF6E99237B10928A475B06212782E9771B78FB5A3F3B012986AE384CE963A83 + F927023030017DE77575F11217141595402C76E7AABEF3FAAAEF3C5F020301F4 + E36312C044D27F45D6BFDDC10AAC820000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_29_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004914944415478DAED977B4C53 + 771CC54F33DD786583B1F1DA301B4BD8C32953279B86184199436588389DE826 + CC8C856832675422A4A0989138B785A9C09029EA182ACA4BD655871663084E19 + A053241B8AC81B04DB524A81DEF6EEF6426F68290BB5F74721E1FCF3FDDDDBDE + DCF3F99DD35F52014DD33096402080296D4916D187BF5A0E692F05BE74F35E1B + CAAA9BA050A9B97B3D0A0552B6AD3069C2D8AFC0120061C61FBC8184F9CFC6BF + 4D5268B45ADCBDDF4C0620FA87223AF5EB95BC26305C7D6A2D1A5ABB70425C81 + B4EDC1E401F84C60DF171F70EBB8F40B6400BE3C5040FFB4238458027AED4E15 + 217DE72AFE01A2F6E7D1E9BB42D12A1F60AFBF397E8937D371114BB9F59E7411 + 8EC4ACE61F6073D259FAE7DD6B38005212A69EC7D1D88FC903904A60DC004889 + 18404462369D295C4F3C81D883B9381E1F4E0EE061573F6FC64D694F6A1E1980 + CFE27FA133841BB8040E645DE6CDF4CE8D4BB875FCC1B33899F8297900522206 + 101E7B8CCEDC1B8186C783154A3E25E1CDF4B6F501DC3AE1C753C84EFA9C0C40 + 46C226B4C8C826306E00932E8175BB8ED0C7F66D267E0AED4DCEC2996FA3C800 + A42544A24D3EF8E72325A78437D35BD6FA8F3F00294D014C014C648043C24874 + 2A26310051E7C344046022680AC0DA1A134058E48E71EBBAB9CACDFCCE607747 + 05085C1A30E27EADD28E3723364F69E169D367D633C5972496037C1FB5981780 + D3576A70FB7EAB5910130A20BFAC16FD03945910130A4052550FB94A6D168445 + 00D11B57607B7A090B304059FE1BAFBAD706A5AA9F8328144B5090128B3E6537 + F79DB42C11BF09585B5300D696590087F7C75ADBEF086D8D491A3B80B5CD8EA6 + 310324C56D65D714A561A79AA230CDDE097DDD9D78D7E72D5CAFB88D690ECE50 + C9DA31FD3937A8BA9A99E9024547139E76F2C080B4859DB2963A387A78B1D3E6 + 85199035D5E259772F74B7D6C1D6F55574D5D7C0D1F375C81AFF81B78F2FAAFF + 2A63AEBDD1C9DC57ABA9210F14B48CCFF2AA6AF300F4E68D0166CF7C1355B7EE + 608ECFDBB8517113BEF3DE41E9B572F82D980FC9D56B0858B4809BBF5D2CC1CA + 65FEECFC3070310A8A2E6255F0326E66E714227C6D083BC35607232BFB1C9E67 + 80DAEBAAB9775B0CA0A6996734EA1100BA04149D2DB0757E09CA478D78C6C98D + 4BA097B9B67BD193DD797BD757A06CAF3748E071632DECDCBCD89DD725F08831 + BC6943188E9ECC81838737A40FEF1A00A8192F957FD73C21003518A5A904CAAE + 5760E17BF30C1258E4F73E2E97946289BF1F2E145F61775E3FF53B7F2EFF77AC + 095DCE2570E2D75C9300D4D0BB7901808D23FAE51D5C756C1D5DB90414ED0DCC + 74E712507634C0DE6506D7FD9EB63A38E8769C4940D77D39331DDC5F63137078 + F90D481FDCC127EB42D90A1903E8EAA3D168CD03488C8936A80FA5D13009381B + 00CC9DE3831BE595F09D3F17654C020B9904AE96FE693201E3EEE7E48910F251 + 1072F38AD8EE9F3E933F7E00B366CD4465D52DB312303E7DFE2F013B17E6F3E6 + 5A83FEEBF4640043F5D10108980A513D5D1CC0F004F43BAF9FA6BA1F141408B1 + B8989D85E7C5A326A0035630A0C3FB4F0480AFF3DF3881E94E9EE8ED7860501F + B3002693FE0343D4B8DD6BC9BCFA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_30_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D74944415478DAED977B4C53 + 6718C61F329D20C4C130E3B261264B9C9B2053264E47884550101872194E7413 + 66C642349933021102286624EAB6E00D864C51C61091EBB00305C1308602E136 + 45A62020779052B0DC7B393B147AD242496839A740C6F3CFFB7DED393DCFEF7D + DEEF245523080293A5A6A606793A14C1262E7EB70B83A322F1DE3F2A1BCAE88C + AF1D9EB5F680FDB00E3DBCE129DF8F0C0DE2D21107B92626FB555306803B2850 + CAB83C55D675A0A8BA05BC213EF5593F8FA71A80E098BBB481B8B1D6E3590B17 + 4291084F9EB73203E0FB732611F9BD23AD09486B982F42533B07D7B3CA1075D4 + 8979003A1338F5CD0E6A1D149DCD0CC0B767D3895F8E3933968044C723D988F6 + DB4D3F80CFE95422DADF05ED7DA3E2FD0FD77269331DE46543AD4F44B37139C0 + 957E8083E1B7885F8FBB53004C2938F20F5C09FC9C7900A61250190053620CC0 + 2B2C81880DDECB780281E753702DC4933980179C11DA8CCBD389C8546600BE0A + F98D8809DE47257036FE1E6DA6FDF66FA7D621E76F212EEC4BE601981263009E + 815789D8935E68EA191FA1881B79B4993EB2D79A5A879EBB8184F0AF99018809 + 3D80B65E66135019C0824B608FFF65E2EAA9838CBF854E46C4E3E6191F6600A2 + 42BDD1D137FEE7E352523E6DA60F79B0540FC09416011601E633C085606F74F3 + 163000A3CEA5C408C07CD0FF03C0CDFB98CA464551A5C4FE28D3DD69016C6DAC + 67FCA3AA524E6EDEEC006A0796D36646FD35118CD48715BA8716809F7CB6D102 + 9078BF068F9EB72B0431AF00D28A6A31322A5008625600BEFB1D70343A9F3680 + BC8A46F40DF1C5101959A4B1737EE08F0CC95C1315CFA60F603E681160AEA510 + C0C5D38173ED778A0E0784CF1C60AECD4EA7190384071D16AF0502A1B8F20502 + 2C5BB11203DC4E7C6CF6218ACB1E61B3B9290A8B2B6061FE118A8ACBB075B339 + F20A1EC0DA6A0B556FDFC987E34E16559333B2E1EE6C47D5B8C47418AD3543F3 + BF55D0353641C7D34AE8AC36C1CBBA2AF0F982090F0288489FA515D58A0148CC + 4B009668EA60F8553705B0444B1743BD9D58FA863E065E3663998E3E785D2D78 + 5DC710A3DC3671ED6DAB87A6DEBB18E86C84FACA55E86DA9C50A0363BC6AAF87 + 86DE6A701A6BA06DF43E7A9B9F628D9905AA8AFFC29BE4BEB3BE9A7AF6AC01F8 + 04798F904F01AC5FF7012AAA1E63839909D5F9C207A5B0DCB289EAFCDDBC42EC + B0B69449C0CE761BD233EF60B7D34E24A7FD0977975D4848CA80A78733AEFF9E + 822FF6B8203E21195A866BC07DF14406804F7A29FFA7464900C178949301C612 + E075B74143F7ED29090C743541F3AD55721318EB3CAFB50ECBF58DC59DD77A67 + 2DB80D8F71609F1BAEC425C90008269E4D0B00D4B531D2D725EE7C4959A5CCEC + 17FC5D02AB4F2DC40958597E827BF985D8CEB24476CE7D71E76F67E5C2D1DE86 + 4A2029950D0F57079904A603181B1FA150A418405880AFCCF808844232015D19 + 000D6D3D2A015E6713590DE426206FF6FBC8BD96C17B3209C81B214601366E30 + 434969392C366D44117906B69267A0A0F0A1DC04249D974EC0F9337BA4A466C2 + CDD5098937D3A605E04F4C82720013E3230D606ABA0EE51555E2B7CF10A7559C + 00B7AD015A6402FD9C76EAEDA36D68AC540263D7F3C8EBA4E79F160035F20C08 + FA391480740292CE4BAAA4F36395C5B24256560EECED6DA92AE9BCBC0496EA18 + 61B0AB41667C14025848FA0FA444B9DD9353C1C90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_31_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004F54944415478DAED997B5054 + 6518C61F264B6E6310CAAD70949A920049510C334714C344422E61A2A5E46443 + 3AA33982230678999851B341130849512244E41A6D620A384828320B12B7924B + CAFD0ECBB22CCB9EDDD3E1E09E588186857316997CFE79BF6FF63BBBCFEF7DDE + F966CEAC06499278521A1A1A184D7BC26E90A15F38A26F408EC98A200888A440 + B740889EBE0188C41208C452480608543709F095B7FDA8269EF4ABA10AC0AE50 + 1E7976CF7A06C03F226342E64FF8AEC383864EF0EE56A153D83FE27389B80F61 + 7B9DB903E8EA2326D9FF7F75BFAA197965F51052DD57A85728540F4060D46FAC + 8178382CC483FA2EC8E4729457377003E0FB6D3A19FEE506561318AE7EA91CB5 + 4D1DB8748D8F887D2EDC03B099C0B1CFDE63D6872233B801F8FC642AF9FD7E57 + CE1250E860380F917E1BD907D8793C998CF47743936080DE7F7DF1266BA60F6D + 7764D68723793877C09D7D801D2157C91F0E7A32005C2930FC679C0FF8907B00 + AE12501B0057E20C60FBD138323A7033E709049C49C2C5206FEE001E75485833 + 3E9A0E87277303F049D08F6454E016268193B199AC99F6DBBA8659079DB98A98 + A31F730FC0953803F00EB840461FD98EDACEA1110ABD9CC59AE9BD9B5733EBE0 + D3971117F229370051C1DBD0D8CD6D026A039876096CF23F475E38B683F35BE8 + 48682CAE9CD8C90D4044B00F9A05432F1F6109D9AC99DEE5E5A07E00AEF40CE0 + 19C0D30CF05DA00FDA85D3188053E7C3C409C0D3A0710178F8EC575BA7555552 + F4374ADD1D1360ADE3EA717FA9BA74E366D6FF1CA052A4CD9A19CDE7E430D3EC + 57E91956004EED5CC50A40FCAD0A945437A904312900DFADCED81799CD1A404A + 5E25FD5F40DA35CAD4693F4825E21167226279EC013C0D7A0630D55209E0ECF1 + 80A9F63B42BB0F848C1F60AACD8EA57103841CDA4DAF09424657294160E6ACD9 + 1075B56089CD9BC8E7976086AE01C4DD2D78FE4563883B1AA86A08616B3D5ED0 + 37C54057235DBB1B6BA0676A4E57CDD973D15D5F094FD775484CCB80B1B9056A + CA8A60606E858E9A5218CCB340736509F4E75BA1ADAA185229F1D8030139E5B3 + A0A84C350085F9B10096D95A2337BF0876B66F21F74E0156D82F4556CE1DAC5E + 69CFD45FAE676383930353078D2B00066B4C7C2ACC16D8A0EECF621AA4BE9C8F + 39AFD9A0B182CFFCF6A401A424F58C4C8A193AFAE8EF69574A40D8DE082D8397 + 216AABC34C7D6326813E6AAF3DC78CEEBC8ED13C885A1E3209CC323147675D25 + B48DA964EAFE829ED91B68AB2983E592E528CEBF8D97A87D0BB51F0E20A5BC14 + FE5131410062284A05C0424B0B14159762918D15F2F2F958BECC764402D7336F + C369CDBB4A09AC5BBB0AA9E9D7B1D1C5098929BFC2D36D3DE212D2E0EDE58A4B + 3F25E1A34D6E888D4B84AEE9EBE87A54CE981FF2C01280A8B385367E8F7F1F5A + 7A464C02C2965AAA9A3009885A6BA163389799FDDEE61AE80E769C4A40CB683E + 0454D53579954E40F79505E8FABB14DBB678E07C4CC20880C1F191C9E4AA011C + 3DE0AB343E844C460118402268650006675F9140CEEFF7B0F21D3B3A81952BDE + 4666762ED638AC40C68D5B4A9D57D484641EBCDC9D9512503B802A092866BFA7 + A966CC04C61A21E9E3499818C0E3F1190D60F1221BDC2B2884DDD2C5C8C9BD4B + 775E51159DFFAF045C3F781F49C9E9F0707741FC95140640DB90026CA8549A7F + 56003434F540F476C0DADA128545C52ADFFFC313E8785841DF3EA32530785E48 + 9D1B3E3E2A014C27FD0348F6C8DD763E48360000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_32_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005044944415478DAED977F4C94 + 751CC7DF2C53104610A640E18A5C5A590822081283038404A60261A2A5E6C211 + 6EFE98C884F0072E36B51CFE004452D408118520BA8922E01041A41353812588 + 89708802C7711EBFEEB97B7A78E09EF871340E9EE7908DF73FDFEF33B8E3FDFA + BC3E7B36B44892C4E06869694155B69DC8250F6FE2A1BD5B413FEF8CCBC66872 + 30C803E20E02AD6209DADABB21EDE8A29E65E8EA2650FBA20DC1DE56D0D399AA + B2C4E0BE5AEA006C89C921A3BF736500C612822020954125C4A30631BE0FB063 + 1F20389A4F1EDFB28C15030FEB5BC0BF558D1649E7909F7775B42366AB277700 + A276628CF3FF2F77AB9FA1A8BC0E126AFACABC944834031091709535105FE74F + F1B04E04B942818A47F5DC00041DCE2263B779B16AA07F3A650AD43634E3EC65 + 01E2B67B730FC0A681FDDF2E65EEE1F1D9DC006C3A94419ED8B19C3303CAEC8A + E5233E6405FB008107D2C9F89D2BD120EEA69F7F38738DB5D2E1EB5D99FBDE78 + 3E4E86FAB00FB031EA22F9F32E3F0680AB44C4FE8E53615F700FC095018D0170 + 15CE00D64726938911AB39371076340D6776077007F0A4B98BB5E2AAB237369D + 1B80AF77FF422644AC610C1C4ACA65AD74C85A17E6BEFBE8459C8BFC8A7B00AE + C2194040D8693271DF7AD4B6F4AE50F4F93CD64A6F5DCD63EE7B8E9C4772D437 + DC0024EC5907612BB706340630E10CACDA79923CBD7F23E76FA17DD149B87030 + 901B80B83D1BF04CDCFBCF474C6A3E6BA583FD9D350FC055260126015E658063 + 111BD02499C0009C36EF973101F86ED8A1B1A2EA262DF1C70160C302B8B9F246 + FCA59A4ACEB5BC4980890D50259DCE5A19EDD71430D3EE54EB336302085AEB89 + EDF1F9F829D089158094EB95C8BC4C153A1202595787CADF894BE2B307F02A64 + 1260BCA316C0F10361E3DD77483687468D1C60BCCB0E97110344856FA6EF0421 + A74F1941609AFE0C48458DB0B6F8082582FBB05DF8090A4BCAE0606B89EB37FF + 84D3126B64E715C18367CF9CE9FC3CF878F2E8D3CBDD199732B3E1B7DC833EBD + 3E77416A3A1FAE6E2EB896930BEBC5F628BE51007DD3396879FA376432A2AF03 + 0105D5B3B4AC5C3D0065F9E100A6E819A1A3B511AFBF610CE98BA79866680CC9 + F33A4C353445B748489FADC21AE8CE7A17D2C67FA03D63365AEBAA180063F30F + 51535E0623F3F968AE790003B3B968A8BA87B7E65840582960FEF698016424F5 + 19B90C53740DD1D9D634C040CFE4ED6D17A2B0B8140E768B9057500C9EA31DAE + E6156229CF017F5CC9A727AF3C950652D2F8F05BB90CC9A999309B67819AFB02 + 18CF5D80BA0A814A0019D5E5CEBDCA510210BD2A0703F418903409A163F4F610 + 03D2E7B5D09D395BA5019D59EF41525F8DE9C6E668A55645EF9D79103D7E808F + ADEDF157C90DBC499968AC2967CAF776600940DAD2084B8BF9B82DB80B9B850B + 505422A00D14DCBC0DC725368C812BB937E0EEF21933F90C7E0EB5F3AEC8C8BA + 8215DEEEF4EEFBFB78D20602FC97E3ECAF69F872D54A24255F829EE907103DA9 + 18B03E72B9423D80C8D0A001EB43C8E5148011BAC4CF19001D83598C0149632D + 759AA834A09CBCBE8939DA1A6A680362EA59CFE4FD0106D6ADF1C5A973A99A03 + 18CE80A3C362E4E617C2C5D901D939D7E1E1E6C44CFEFF0C0C0720EBDB84D101 + F4AD8F2A809EB74F47733D6D40247C0C3DCAC0CBE606E6ED63606AAE9681C12B + D47FFF3901B0B2B4C0EDD23BB059648582C25BF4E495A772F2C319E899BCAF8F + 37D2D2B3E833E5C26F0CC0F49914607DD580F5510B6022E55F9783DBDDFF41AF + 7B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_33_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000050A4944415478DAED987B4C53 + 6718C61F12BC3088C38172991AC736D9260E1808CA9040818102412ED3896EC2 + CC34888997884618A09891A88BC10B2032451DC30D85E85C230C28849B826330 + 1D105498DCCAFD526AB9F594B3F6006705DA45E01CC084E79FF7FBDA9E9CE7F7 + 3E6FBF9C568524498C958A8A0A14E9E0A54CF2EC1E0E060812535515BF03DD3D + 0310F5F643D02B46FF0081BAD697D8EB66020DB5F92ACAAE1BEB576532003D03 + 83D4FE484CEAA4CC9FF677969A26D025108E83A86DED4680DB274A21A604B03F + 2A9D8CDCEB40034C4504414024864288AA4601BEF559CF3C40402497BCB87F13 + 23093C6DE800F7E1737408FBC6BDDFDFDB83A8032EEC0174F61053ECFF7F2A7D + DE8482B27A08A5DD1FD14BA1707A0042E27E670CC4CBEE633CADEF84647010E5 + 550DEC00F89FBD47461F7465340179F5890751DBD88EEBF78B1173C88D7D0026 + 1338F9CD67F43A3836951D803D67EE90970EBBB396C0888E4573111BB8997980 + DDA752C8D8231E68140C50FBEFAE6530663AD8D7815E1F8FE5E2F2514FE60176 + 45DC227F38E64D03B0A590E85F7125E873F601D84A60DA00D8126B00BEE18964 + 7CC836D613083A9F8C6BA13EEC01D4B4F733665C918E47A7B003F055E88F645C + C8763A813309998C990EDC614FAF43CFDFC28DF02FD907604BAC01F8045D25E3 + 4FF8A2B6636884226FF218337D601B875E879DBB89C488AFD901880BDB097E17 + BB094C1BC06B97C0D62397C9AB2777B17E0A9D884CC02FA777B3031013E68726 + C1D08F8FA8A42CC64C076CB19B7E00B634073007309B012E84F8A14D38CB01BC + FC0E2BFCEF70DE5243568DCB4BDC52A9F0F5E4F8EF478129057074E060B6293D + 8337073007306300FE3B5C702896B947077E551992CF0542DCDFABF43331095C + E6006683E600665A1302B8782A68A6FD8ED3BEA311AF0E30D36695E995012282 + F7516B829050554C1058B0481BA2CE66981B7F84C2E22750D5D0426F5733E6BD + A98BDEF606695D0A614B3DE62FD6C740279FAA5DFC6A68EA1B5075A1F60A74D5 + 3F838FD7462426DF879D833DB8F7B8B0B1B5454E76364CD75AA2A8207FE8BE12 + 09C46262D8038141A9CF47256513031831AF0CC0D26C0DF20A4B606D690A5E6E + 11381B2C90CA2B8033C78AAE295C1E3C5D38547575B2C3EDBBA9F07677A6AAEB + 467B24A570E1E0688F8CF44C98AFB3426E7616DE5A6E88E6EA32FADE53061093 + D26B2462850908DBF850D37A1BA2D63A2C58AC4B27D023DDBFB16439D579759D + 951035BFA0139001FC9CCCC5B25546A82E2B819681119A2A4BB1C460351A9F3D + C692F78CC1AF281E0520967AF9F371C5240188A12855D517A3AFBB6D5402D9F9 + 7FC0CAD20C790F1EC17AFD5AF0721E8063B31E6999B970B2DF80DFD2B2A8CE8F + D491046400DE1E9B90987417FAEFAF414D7909740D4D505F5E0CED951F4A419E + D0E6873C300420EA68A647474D53874E40D85C2BAD7A7402A2965AA82F5D41CF + FECBA66A68E81A5009A8E9BC0381B46AE8BD8BAEBA4A682CFB009DFFFC8DD5E6 + 56F8AB30171AFAABD059533E6A7C2492C18901841FF51F353EB22FD542D90849 + 014C8D8D50545C0A0B33131414165309E4E417C1E6530BA509C83ABFD9CD0977 + EEA5515536FB5B3C5DA8047CB6B8E3FA4FC9F862AB0712126FB307A0AAAE857E + 410B0D309104649D5FA46780EEC66AA509ECDCEE852B3792C601888727617200 + C3E3A308403E0159E76DACD72127EF215553D3B3E1EC684BD791CEFF5F026301 + E4E79F1580899EFFF209B4BFA880A6F4B8944F60EC08C98FCF84005E27FD0B6A + 3DECDDABBC5E160000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_34_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000052C4944415478DAED987B4C53 + 6718C69F46BC108893E105D1998D6D6A36BC301C08088172DD90C8C46944376F + 990635F1128508031533127533E80444E775AE6E2844A79D20020D281326C338 + C17801C7AD5010DA524A819E72D6167AA4B6184BCF0733E1F9E7FDBE7372D2E7 + F73EEF7792530E4DD378591C0E07C6B43D358FFE61BD37BA281AE6AAF46903E4 + 8A4E48154A747651689276606DA023AC2D47715EF5DCCB7E39A6006C3B96431F + DAC06505A042D882D6F62E3D889AA6366C0C99FB4A085600DABBBAB5FBC894CC + 01993F1011A4364D41229519405437B56253C827FD429805B025299B4EDCE8C7 + 0098238AA22057C2284445BD14DF86BBB10FB029914F1FDDF2392B093CAE6B01 + FFCE53B4C83A0CEE772ADA91B435981C80B89D32B3FF2F744F7D980BCB6A2153 + 775FA736996C7000624FDC600D24CC67361ED78AA1EAEE4679451D1980884357 + E9E46D0B594DA0AF3A94DDA8AE6FC6D9EB2548D91E421E80CD04F67D13C0AC63 + 5233C9006C3878993EB66311B10474DA95CC47EACE50F601D6EFCFA05323BF40 + BDB44BBBFFEECC4DD64CC7ACF663D67B52F9381EB5987D80750917E99F762D61 + 00482936F9779C8CFE923C00A904060D80948801AC8EE7D1A76397134F20FA48 + 3ACEC4859303A86AEE64CDB831ED49CE2003F075DCCFF489D8154C0207CFE7B0 + 667AE74A5F661D77E422CEC57F451E8094880184479FA24FEF5D8DEA969E114A + BC90CB9AE9ADCBB9CC7AF7E10BE025AC25037062F72A08256413183480372E81 + 6591C7E953FBD6117F0BED4D3C8FDF0EAC270390B27B0D1AA43D1F1F496979AC + 99DEB4D467F001486918601860A801C2D6EC30FAD7DBC88933F063EC1A3C9791 + 0750363E327A2FFDF4F77A60FD02F8FB710DAE0BEED71135DE57DEB3A7185CCB + BE996B1EC0506B1860A8651640C4CAE041379C729ECF1EC0FF41C300432D9300 + 8EEE8F1E6ABF06DA1C95F0FA00436DB63FBD364042CC66ED9AA254DAAAA4288C + 1E3B1E72B108F3E67C84A2927FE0EA3C0BB78A4AB1C0D50982DB77E1ED310F99 + B98508E2BA3335839F8BC5C15CA6F2D2AF233CEC336D755FE0819BD9399837DF + 1D77EF14C2CACE01929AC7A054BDBFA9A47A3D50E856FBFCABB4CC34009DF9FE + 002CAC6DA1908830F22D3BC89B6A30DAC60EB2C65A8CB2B1479758A8AD126125 + AC26BD0BB9E85F8C193F0D92DA270C808F9F2FF857F9F0F2F646BE4000A74F5D + 5158900F8B1123A0E878F1D567368092563FA3521A4D40D7F9DC8262703D5D98 + CE5FBB518085019E7A092C0CF4C1A52B9958B22808BFA6F3111A1280B40C3EFC + FC7D71FD8F2CB8797AA14090076BFBE9105795EB0128D55EFEBEFF708000544F + 94C612903D17C2D2768A4102F2C66A584D9C6634011DC0D4E98EA82C2B85AD83 + 231A1EDDC304878F51FFE43E267C3007C287258CF91E0F2C005858D940DE2232 + 987D775767E4DF2E8697870B72F3FF04D7CB0D59390508F4F5C4B5AC3C6DE72F + F3B3111AECCF24C0BB740D4B170783977605F61FCE42557929EC66CC456D7909 + DE7E67064495657AE3A352759B06101F15A1373E9A83354693401F00CB719398 + 0464A26A759D6C34015DE7C74E76406B7D252C27BD07A97A6F3DF97DF5A17D04 + EBA933217EF600339DDDF0A0F896DE081101709AE388E2927B70719E8BC2A292 + D74A40D3F9D090405CBE9AA5AD9AD9D72510BE7411CEFE928E15CBD495976100 + A0EC9D848101F48E8F06C0C2CA169DD2460640F3F65134D76913100B9FC15A9D + 405B733DF3F61967EF605202AB5684E1E4B93406A0EFFC1301E89B80A6F35E0B + E623FFD61D6DCDCC1620C8DF9BA9BACEEBAAAEF37D133006A01B1F9300DE24FD + 078623F8DD39B143820000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_35_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005314944415478DAED98794C14 + 6718C61F2A1E146225A81C5652E9816940B11028200417105ADC40C56A045BAF + 14839878442542118F94446D0DB502A2559452AC28448B5BA1C06240A952B758 + 2B102C5040EE6B59D7E5DAD99DCE2EEC9465C1023BB394D4E79FF7FB663299E7 + F73EEF4C32A3479224864B4F4F0F23694F623EF95588079810BFA406A21E29FA + FA09B4897AB1CDCF0E33A7BFA2F76FD70DF7AB3711807E8284B62AA96C86A4A7 + 4F0D628B8F0D8C0C66BC10422B80DD67F2C893DB388C00543576E25977BF1AC4 + D3B6E7D8CEB57B21042300DDFD72E57E7F42D684CC1F0FF5A54C13E812893520 + EADA9E218CFBDEA8105A01EC8CCB2163B77BD100DA88200848A41811A2AA4984 + CF839C9907088BE591A7777EC848024F1A3AC1BB57894E71AFC6F9BE9E6EC4ED + F2630F40D84D68D9FF7FF4907A988B4AEB21A6BAAFD273B158370051E77E660C + 2470C5123CA917422697A3ACAA811D80D0939964FCEE558C263054BD5239EA9A + 3A70E99600097BB8EC033099C0D1CF56D2EBC8C42C7600B69DB84E9ED9EBCF5A + 022A1D88E721715F00F30021C732C8C4FD1FA149D4AFDC7F71319731D3919BBC + E8F5A1441ECE86AF661E606BCC55F2DB036B6800B61415FF23CE477CCC3E005B + 09E80C802DB106B0E9482A9914B59EF504224EA5E3E2C120F6006A3BFA18333E + 920EC567B003F0E9C1EFC87351C174022752F21833BD6F8327BD3E78EA2A928F + 7CC23E005B620D2028E20299747813EA3A074628F6329F31D3BBD673E875F4D7 + 97911AB3851D8073D11BD1D8C56E023A03987209ACDB7F96BC70742BEB6FA1C3 + B129B8723C841D8084E8CD68160D7C7CC4A5E533663A6CED0ADD03B0A5970053 + 1E2070F3DE11FF5C4D9F6F0D5D01485B2B463C979EF4A51AD8A800DE5E1C8DE3 + B71F35E09BA8CD6817B30FE0B16481C6F19C5CBEF600BA122B0093ADFF3740E8 + 063F9D1B4E48E13107F05FD04B80C9D6B8004E1F8B986CBF1ADA111E337680C9 + 363B9AC60C1013B943B9260899B24A09023367CF8544D80287A5EFE2BEE00F38 + D9DBE2CEFD122C775A86DB771FC0C3D50159FC22F8725CE89AC1E363B51F87AE + A9E9B71014F881B2BA2C77456E4E1E1CDE77C1837B45905156E4D47D08D9E03D + A5C4A0070272CAE7AF25A5E30350991F0B00BFB0181C3747AD000CCDACD05E53 + AE669E110029495D23936A00E81B9940DCDE0803930590B43DC54C6333885BEB + 31C3D802DDD4FED5790BD1D5580D43D3372069A9C1ACB996E8AAFF5309907CE5 + 26BC7D578297C983BB8707F27272E1E8E28AA2C202E84F9B869EDE3E350029E5 + E5B747E513042006BA315202AAD1199E40667601B83EEE6A09ACF259816B37B2 + B0C6DF173FA4F310C05D89B40C1EBCBC3D71EBA76C38BBB9A3F0763E8C2CDE81 + B0B68C363FE08101007D4363483A5BE8D13198634A27206EA9A3AA399D80A4B5 + 0E86F32D9509283AFFBCB91A46D48828125000A45EBB094B6B5B549796C0C4CA + 06CD150F61BCC8066D95BF63DE5B4BD1582E501B1F994C3E3E8023E1A16AE3A3 + 78B06629121802E0686F87A2FB02B838D9A3E06E31DC5D1DC12FF8051C776764 + E715C2C7D30D37B3F3D53AAFAA0A80B5ABFD909A7603166FDBA2B6AC0466D676 + A82F136824C038C0B2A53628163C1C57028ACECF36B7C2B3A66A18982E8288DA + 1B99BF89AEA715307A7D31847F3DC6627B673C2EBEA301201D9C8489010C8E8F + 0240DFD0047DA2561A606802AACEABAAAAF3431308E0FAE07A66B6B22A665F95 + 40D05A7F5CFA3E1DC1EBA89A9A41030C9D7F5600A6BF66869E8E06AACEA73BDF + 2F6C545645E7E758588D9A4007F5BA9CB3D05A2D818DC181389F9CA606A01A9F + 71014C25FD0D703509ECBB2DEF810000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_36_04' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000053E4944415478DAEDD87B4C53 + 671806F0877941025109460537A32E53B7A1823018200C2B085B61307018D16D + 5E32086AE2250A1107DE32127533CC09886CA28E6144613AE80081A280284C06 + 5ED029A072BF945B29B7B6A73D3B147BA4500CD873CA4C7CFE79BFD3A6EDFBFB + DEAF2769754892C4E0E8E8E8405D764667933FFA398289FC915F06B1848040D8 + 0B7FAE197427BCA53392D70DEE5767AC00FCE26710F648478D6004202148689A + E2F20674F58855101B5D4C61A037F1A5088D003B4E6691C7FC398C002AEA5AD1 + D12D5141540B3AB1D9DDECA5084600DD12B9E23A302AED959A3F12E04A354DA0 + 5D281A82A81274608BFBD261111A01B6456490E19B9D6880262108025D52A845 + 54D40BF19DAF0DF3802DE13CF2C4B6CF1899C0E3DA56F06E95A355D43BE47971 + 4F3722B673D903B475131AEEFF8B94505FE6FCD21A88A8DD57A65324D20E2024 + E62A6310EFE58BF1B8A60D32B91C0F2A6AD901041C4B262377B8313A8181E995 + CA5155DF82B3A94588DAE9CE3E80C9091CFA7625BDDE1B9DC60EC0FFE865F2E4 + 2E0FD626A0CC9E481EA2777B320FF03B9C4446077E817AA14471FDFD994CC69A + DEBBDE895EEF8FE6E1549017F3804D6117C95FF6ACA2016C2524F24FFC1AFC25 + FB00B626A035005B610DB0FE603C191BB286F509041F4FC499505FF600952D62 + C61A5797FD9149EC00BE0EFD8D8C09594B4FE0685C16634DEF5EB7825E871EBF + 887307BF621FC0565803F8069F26630FAC47556BFF110A3FCF67ACE9ED6B38F4 + 7ADF4FE7111FB6911D40CCBE6F50D7CEEE04B40678ED26B03AF01479FAD026D6 + EF4207C2E370E1881F3B80A87D1BD020ECFFF1119190CD58D35B7C966B1FC056 + DE00BC37EC52FBC7CF84E90BA02D80B4E991DAE712637F50810D0B7076E20C79 + FCDADD5AAD011C17CF1AF27846265F73C0CF211BD02C7A8D01DA0A2B80B18E46 + 8080755CAD371C15C7630EF07FC81BC058675480138783C7BADF21D91A143672 + C058373B5C460C08DBBB55B1260899A24A0902BA93A7A1ABAD11964B3E4041D1 + 3D585B2C425E413196599BE3DA8DDB70B4B3441A3F1FAE1C5BBA26F1F8F0E272 + E81A9F980A5FEF4F15D5FC232BDCC8C981A1C95CB4D53D8554DAFF9725217BFE + 99CA6BEAB3E5549F7F17978E0EA06C7E24007E6E2138F656A302D82EB3436646 + 162C3FB6C5ED5BF99051AD48C46295E619014849EA3532A95A8072E7070352AE + E6C26DA5FDB080731752E0E0E840036EE6E660EA3BF3D1FCECA15A8094EAE59F + BB0F5F1140F4BFD960C0780323889AEBA067340B5D826AE81ACE84A8A906130D + 4DD0D55405FDE9B3D15EF704FA33E6A0ABF119264DA3AE6BCA6880B3EB4AF092 + 7914C411591999586AB30C8579D7317EDC38F4F48AE9E6FB7B6008D021A8537B + F633AF17C0E9136B7A02C9E939707771A0773EE1CA5578729D71E94A1A5679B8 + 22FE520ABC3E774142120F4ECE2B90FA573A6CEC1D907B2D1B0626F3D156F940 + E5F8C864F2D1010E0605A81C9FBE2FD6A4BE09B436D200BDA933E809881AABA8 + 6AAC7602CA9D9F6C3C0F1DF54F68C0EC058BF0A4B4184673DE4743D93D18CE35 + 85A0FC0EA6CCFE10CD1577D80758599821BFA008B6D616C8B95108073B2BF073 + 6E82E36083F4AC5CB8ACB0474A7A36DC5C96D33B3F70023E5E5CC4275C81C97B + 8B50F9A01833A95AF36FC99009489F9F845703102F6E6DE3F58D201636C17C89 + 290A8B4A3061CA4CF4B4D42A26D0771B34A026D0D952AF9840DFCE4F3599A776 + 027A33E642485D1B18BF8BF6EA4730787B21DA9EDEC7420B1BDC2FCCA30103CF + 3F2B80811350EEBCB22A77BEAFBA3A3BE272723A3CDD5DE8DAB7F3BE3E1E743D + FB7B22D6AEA66A7C920A40797C4605789DF21FAD7D15ECBDCA763F0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_01_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003014944415478DAEDD95F4C52 + 511C07F01F6BB5B61E7AEDA507DF7AA8CDF5D07A93ADBF1BBA2C61C3F5472526 + 0EE716ABA516CA229BD56C58A6A1613E38D2079BB5E16495935E5A34576FFD91 + FE3194B08804E23F74BA48DCB8A005DC73F8D3F83EDD0B9773CEE7FEEEBD037E + 1C84104473F4FC08BAADA8039B33B8B2AF1A3700AEC8845C7ABBA3770CB4971A + 38B8C6E6C401B56D1A34AC1481F95B00DBC2578BF2BA16C62E8BC900D48A06B0 + 2EC72A3030F104DBA2A5FC8ADC0348A50428010A1970435E0F7677A878014457 + 9E102280624D0990EFFC3F80D343066C92B22D9BA191570E1BD671B0DDAC6901 + AE3572B10CAA9D7D0D0E971F2495E4114400934F4DE00D847382200298796906 + 972F9813440A2018617F2BCC99BE80CFE767204407B6C3A68DEBB12368804C3D + 83544D7BB0003E58BF83C3136220ACF61F20AD2AC78E480178833F57F65B071F + 6635E015C97E58F606C1E5F6A62016ED2E68AEDA891541034E0D3C46BDD2BD34 + 804D22E130B8A971564358969CD026DC8D1FD0D2A7477D2D07B154607ED1017A + E33BF84A5DFBC90906FC40CD430EE0F445708D0D2F4C3630BEB25097D49FAFE8 + 1E8F273700B9E61136C8918A1D30BFE080107569BD352F910134ABA650BF8C87 + B50289F10442F0C9E604EDF41C50F39007E0AC4097781FBD7D4EAD270368EA79 + 80D4670E11AB403CADFD3AA0E6C10F905C9D4483670F533FEA634F8EEE5103B6 + 45B71FE7D2DB1786A6819A073F40DC3D8134ED7C1A402A9DB77440CD431E40AA + 023903649AEA6A3E3670BA796ED0716880E8E238BAD321CCBA02C67B370B0390 + EDDFEB829A1A7A5B3E3C95F27ED7491E637F6BD9B694632C1FDF30F6FF350E03 + 70A273146914C7E0F3EFBF167BEECE66048857203A69F262935F5FEB98282A8E + 48679CBF02B2AD40DE00D116D388B21E161CB14B28D31653DE2B90DC23CB3442 + 01BFB000455701B64DBEBA5A016321C9C9F40993CE382900364DBE780512CFE2 + 5A672E9D63B2AA009B0E4DBC0225400950CC00364DBE4C9F42D8BF0BB16DF2BD + 7F769FCDC7B30A03C036BBB895396FF56005E42BBF002E3687CE10F245C80000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_02_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002F94944415478DAEDD95F4C52 + 511C07F01FADD5DADA7AEDA507DF7AA8CDF5D6936CFD1FBA486193F547231387 + B345FF08435DE472369B964A68900F0EE3C1666D3859E5A49716CDE55B7FA47F + 0C352C2281F88F9D4082B8800DB8E78034BE4FF78ECBB9BFCFFD9D7B07F73010 + 4210CED12B43E86E5B0D58EC7E2099969EFB30729DCFC03156B876C66A806E8D + 1E5BD1A26A267900EFB212A9647C307DF7612B3C5564B7D4A0E93C4D06A0683B + 090B4B910EC8479F612B5AC829CB3D80548A8022602D036E4B6BC1EA0C142E80 + 68E57121026030B08C99D31401F9CEFF05383FA8C77613976CDD02F5AC52D8B8 + 7E1DD1AB9204B859CFC432B07AEA0DD81C5E1094934510038C3D3782DB17248E + 2006989C3181C3E3278E4809F02FD3BF15A68D5FC1E3F15210FC033B60F3A60D + 58111480483189BA1BF660017C5CF8013657808258B0FE0461452956444A80DB + FF6B655F3CF038AB413B05FB61C9ED0787D39D8498B73AA0B162173604057056 + FE14F508F7C60074B21C0C8233344E2A8479D10E12DE6EFC80A65E1DEA6D3A88 + A503B3F336D019DEC3B7D0DC4F8CDFE785BE3387C801EC9E651C63AFE495D102 + 86D7E6D094FAFB13DDE572E50620553EC106A92CDB09B373360884A6D63BD322 + 194063F738EA17B1B076203E2E5F003E5BECA09E9806F9B972F2009C1D68AFDB + 17DB6E56E8C8001ABA1E21C585C3C43A108DB85F0B0317D9F801821B6368E0D2 + 91D09FFAC893A363588FAD68C971666CFBEAE0040C8A2BF103EA3A469152C289 + 0148A5F58E1654CD5CF2804C3B6078D047149E2A2FF55A06B60EB0D99CFC02F8 + D734E85E4B35960E4855E3499FB79F6251F6D339665BC9F6A463CC9FDEFE1B90 + EDEB756E5555ECA4F127892F385A60FC7662C1D1EFA6330E0570A2751829DB8E + C1973FAF16BB46A6B2EAC09A01145C07C24B4C43B25A98B345A650A64B4C79EF + 00DD45BE6A2E676D01B2ED40F4E489492C06C7938A02A0BBC857C3E3A67DE5E8 + 7469D50ED05DE4CBE41EC809A0E03B5004142A205A606272F214A2B3C8170FC8 + 5592007406FBF0E2617E01859ADFECCAE7CE1EEEE2B10000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CalculateSize_03_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002FF4944415478DA63FCFFFF3F + 03084457CFFF3FBF2981E1C9BB9F607EFF8A030CD40285110E7076ED84E50CCB + DA9218A9612EC8ED8CC81E985D1FCFF0E2E32FAA391C1BA09B07865C0C4456CC + F93FB72989E1E1DB9F54733836D0347129C38ACE54DA7860467D22C3B30F9018 + 98B6E620D51C9D15624F7F0FD00A8C7A60D40383D903936A1218DE7CFE3D743D + 40539723019A788091912A66D2158C7A60A0C1F0F240F1AC0354CBC48A12FC0C + 69DE060CEC2C4C340D150C0FF4A63950C5E0A5FBAF33BCFBF48321DD87B69EA0 + 9907D61FBBCDF0EDE71F9A7B82661ED87BFE21C3A7EFBF68EE09AC1EF8F597F2 + AC70E6F62B86EFDF7FA07822C95D878187938DAA9E40F140E18CBDFFFB339CA9 + E2817BCFDE33BCFBFA1BC513CFDE7C61C8F235A0AA27B07AE0DBAF7F607EF9CC + 5D6419DA99EEC6F0E1DB2F864F9FBF6178E2E99B4F0CD9BE4654F3048A070AA6 + EDF93F21CB05EE014AC0DF3F7F183E03CDC1E689C72F3F3254465A52DF03B993 + 77FC9F9CEB419518B8F5F41DC38E9377185E03D33E3AF8F5F307C3943C4FDA79 + E0E3F7BFD4301B0CCEDD7EC170F2DA6360924234D1BF7EFD4A1F0FD4CCD94D35 + 8F04D9EB32DC7AF28EE1373069DD7CF892361EC8EEDFFA7F6AA137556300197C + FDF99BE1C18B8F0C4BB79F619856E4437B0F5033065A525CE1ECAA193B68E381 + 8C9E8DFF6794F8D32C0660A07CEA168699A501D4F7407AD7FAFF33CB02819D7A + 48C9D1BEF800D51C5D19EB006737CEDACE30AB3C88FA1E48695FF37F4E6508DC + 03A482808010AA79985870EAC016469C1E2035064EAE9D32B83C402A408E819A + B95B31E45B92BD51F8B28A1A186A1EDFBF81C227640E8A07929A57FC9F571B41 + 710C801C86EE10747190C3D03D84AE069739C87AB17A80DCE1F5D0E0E081F540 + 5CDDE2FF73EA63189E4387167B96ED1F5A3180EE81211703944EF20D780C503A + C917118A2885A851C210A306AF07C88D015CA18B2C4E4CE8121393281EA07492 + 2F3E3274E03D40C924DFA088014A6668065D0C8C580FC01C820E482D61885143 + 330FD00B6078809249BE41E1017A594CCD493E00422CF4CE4C07335200000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_04_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E54944415478DAEDD95F6852 + 511C07F0DF8D2882A0D75E7AD85B0F05A3B79E36E83F6E644D4129B6656B0EC7 + 22FBB7562EC18DC662E1D636D172ED415C128B116C24D598BD04C6A8B76A332A + 7133576653F3DF553BA9A5D3AB45F39EE39FB1EF93570FE79ECFFDDD7B507F14 + 4208E2A9BFAE435AF949F8BC4C03C9740E3C005D573D8563AEF8DAA924E0C4B5 + 5134AA688405572871AC3498B02D5A2AA85E01F4DF87B11B223280BBF20670B8 + 0957A05080B2AB80F08A168D284460FD16C2B6F05C510CE8C1D07B860C402D3F + 05F63F0FB16AFC39B6454B7855850790CA3A601D50CA80DBB246707AC3E50B20 + BAF2B41001501496390B9A7540B1B3B60017EE98B03DC415DBB74133A712366F + DC40F4AA64016E35576399583FF3165C9E20886BC8228801265E58C01F8A1047 + 10034CBFB68227401347E404D051F68FC2ACE50B0402C10C84E8D02ED8BA6513 + 56440640AA9E46CA967D58001FECDFC1E50B6720ECCE1F20A9ADC48AC809F0D3 + 3F13C7ED9A27794DDA2B3E08CB7E1A3C5E7F1662D1E981D6DA3DD810198073AA + 67A85FB23F056093682402DED83CB910B625377408F7E207B40D1AD160DB612C + 15985F7481D1FC1EBEC6EE7D66E8501086CE1E21077007A238E64EE495C501E6 + 37B6D82DB5F215DDE7F3150620D33EC506395EB51BE6175C108EDD5A73D62532 + 8056E5141A9672B056203DBE50183E39DCA07F3C0BAAF335E401382BD0DD7420 + F5FAAADA4806D0D2F708A92F1E25568164DA87274173898B1F20BE398134978F + C57ED4FFDE397A74A6554D667E3844149E2B2F4D93540AD0D4338EB41DBC1460 + B5E17279A505605301D9C854D6E7DDA73919C738C610A940FCA4CC85C4B3A362 + 27D83EBEFBE798F4F7D3C7FF6D4C0640D46540F73A05AC2B507440BE7FAFF3EB + EA8A0B60F6C8FAC666CAAB026C9B7C45AF00DB265FFA2E143F3933CCC560DF85 + D836F9047CDE7F5F39621560D3E44B56A06800B64DBE0621BFF800364DBE92A8 + 009B0E4DC955205F40F2E4CC10DF8570020A95B50728C726DF2F8FB8FACEF53C + 83870000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_05_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002F34944415478DA63FCFFFF3F + 0308C4D52DFE3FA73E86E1F9875F607ECFB2FD0CD40225518E7076EDC4550C8B + 9BE318A9612EC8ED8CB83C402B40330F4457CFFF3FBF2981E1C9BB9F607EFF8A + 03547374618403C2031396332C6B4BA28D0766D7C733BCF848E318A09707865C + 0C4456CCF93FB72989E1E1DB9F54733836D0347129C38ACE54DA7860467D22C3 + 3368269EB6E620D51C9D15624F7F0FD00A8C7A60D40383D903936A1218DE7CFE + 3D743D40539723019A788091912A66D2158C7A60A0C1F0F240F1AC0354CBC48A + 12FC0C69DE060CEC2C4C340D150C0FF4A63950C5E0A5FBAF33BCFBF48321DD87 + B69EA09907D61FBBCDF0EDE71F9A7B82661ED87BFE21C3A7EFBF68EE09AC1EF8 + F597F2AC70E6F62B86EFDF7FA07822C95D878187938DAA9E40F140E18CBDFFFB + 339CA9E2817BCFDE33BCFBFA1BC513CFDE7C61C8F235A0AA27B07AE0DBAF7F60 + 7EF9CC5D6419DA99EEC6F0E1DB2F864F9FBF6178E2E99B4F0CD9BE4654F3048A + 070AA6EDF93F21CB05EE014AC0DF3F7F183E03CDC1E689C72F3F3254465A52DF + 03B99377FC9F9CEB419518B8F5F41DC38E9377185E03D33E3AF8F5F307C3943C + 4FDA79E0E3F7BFD4301B0CCEDD7EC170F2DA6360924234D1BF7EFD4A1F0FD4CC + D94D358F04D9EB32DC7AF28EE1373069DD7CF892361EC8EEDFFA7F6AA1375563 + 00197CFDF99BE1C18B8F0C4BB79F619856E4437B0F5033065A525CE1ECAA193B + 68E3818C9E8DFF6794F8931D03AE9EFE54F330B1E0D4812D8C700FA477ADFF3F + B32C10D8A987941CED8B0F9064D8C9B55306D60329ED6BFECFA90C817B805410 + 10100267D7CCDD8A21DF92EC8DC2A7861ABC1E2037064096A23B045D5C565183 + E1F1FD1B186A90C571A9413687263130601E486A5EF17F5E6DC4D08D019807C8 + 1D5E0F0D0E1E580F503AC937E03140E9241F2C066096A30374C710530A113207 + C503944EF291120394C412CE18A074922F2294F852882E1E18723140E9245F7C + 64E8C07B809249BE41110394CCD0C0620066393A20A71422A92D444D0FD00B8C + 7A801C40ED393200C79CFDCED8FA0CC20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_06_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002EB4944415478DAEDD95F4C52 + 511800F08FD66A6D6DBDF6D2836F3DD4E67AEB495B7F1D3A2D61836A6A54E270 + B62857B95016B69CCD86A6312C8C0786B166636DB95CE5A497369AABB7326915 + 43098B4820402ED00931F05E2114EE39208DEF890B671FDF8FEFDCB3CB3E0E42 + 081643D46940F7DB0560FD110492714D65046D87908323D762ED9C38A0AE4387 + 34F293F0759E8A5DF70C4F602BBAF5F8BEC4EBF6BE87A0EBAC230F2015C40027 + AE6A9156D10033AEA52DA43498B0152D15942F037A1FC0F00D1119C03D793D38 + DC843B902B40C17540784583861422E2A790A24F0F86EEB364006AF929B0FFBD + 8955232FB1152DE195E51E402A8A8022603D036ECB1AC0E90D152E8068E5B420 + 02E070B0E4CC691401F98EFF0B70F1AE09DB4D5CB27D1B34724B61F3C60D447F + 9524C0ADC6722C89F513EFC1E55900712559043180F19505FCC130710431C0F8 + 5B2B78021471444A0015617F2B4C5ABE4120B0C040880EEF82AD5B3661453000 + 52F5385236EDC702F864FF092E5F8881B03B7F81A4AA142B2225C04FFD8E5D5F + 1E7C9655D26EF12198F753E0F1FA9310B34E0F3457EDC1866000CEAB5EA05EC9 + 8104804D44C261F046F3A442D8E6DCD026DC8B1FD0D23F86FA5B8E60E9C0F4AC + 0BC6CC1FE17B74EFAF0C2AB80003E72AC801DC81088EDCB178637180F99D2DBA + A5961FD17D3E5F6E0032CD736C906365BB617AC605A1E8D6FA609D230368568E + A23B522ED60ED0C3170CC117871BF44F274175A1923C20D30E981F0D1081A78B + D7A6279C04A0A9E73152B75667DD818315D5F905886F1AD1E0A5A3D13FF54B27 + 4797CE9451327A076443A3499F5F3FCD655CAF65CD8E929D496B6C9FA75203CE + 748D204D1B2F01C8346A6A78892FA57F09BDE07881FF5A437F7F2D79D202B2ED + C0BA01145C07E233B282ED00DB211FBFB636BF00B6433E12A7D06A6BD202F2D1 + 814CD730006C877C38EE01D60036433E019FFD29841550701D603BE4AB17F2F3 + 0F6033E4A39F42AB3DC3C40B5919AC4E21B6139A78077219454036817BC4F407 + C996FDCE8EC462E40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_07_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E94944415478DA63FCFFFF3F + 03082435AFF83FAF3682E1D9871F607EFBE2030CD40295B10E7076CDE40D0CF3 + EB2219A9612EC8ED8CE81E78F8F627D51C8E0D344E5B4F1B0FC4D52DFE3FA73E + 86E1F9875F607ECFB2FD5473744994239C5D3B7115C3E2E638DA7B805680661E + 88AE9EFF7F7E5302C393779024D4BFE200D51C5D18E180F0C084E50CCBDA9268 + E381D9F5F10C2F3ED23806E8E581211703911573FECF6D4AA27929D4347129C3 + 8ACE54DA7860467D22B01E80C4C0B43507A9E6E8AC107BFA7B805660D403A31E + 18CC1E985493C0F0E6F3EFA1EB019ABA1C09D0C4038C8C543193AE60D403030D + 8697078A671DA05A265694E06748F33660606761A269A86078A037CD812A062F + DD7F9DE1DDA71F0CE93EB4F504CD3CB0FED86D866F3FFFD0DC1334F3C0DEF30F + 193E7DFF45734F60F5C0AFBF94678533B75F317CFFFE03C51349EE3A0C3C9C6C + 54F5048A070A67ECFDDF9FE14C150FDC7BF69EE1DDD7DF289E78F6E60B4396AF + 01553D81D503DF7EFD03F3CB67EE22CBD0CE7437860FDF7E317CFAFC0DC3134F + DF7C62C8F635A29A27503C50306DCFFF09592E700F5002FEFEF9C3F019680E36 + 4F3C7EF991A132D292FA1EC89DBCE3FFE45C0FAAC4C0ADA7EF18769CBCC3F0FA + D30F0CF95F3F7F304CC9F3A49D073E7EFF4B0DB3C1E0DCED170C27AF3D062629 + 4413FDEBD7AFF4F140CD9CDD54F34890BD2EC3AD27EF187E0393D6CD872F69E3 + 81ECFEADFFA7167A931D03AE9EFE54F330B1E0D4812D8C383D406A0C9C5C3B65 + 603D90D1B3F1FF8C127FAAC440CDDCAD18F22DC9DE287C6AA841F1407AD7FAFF + 33CB02C99EE080C580ACA206C3E3FB3730E4418E81598ECC4606C87A7199832C + 8EE28194F635FFE75486C03D402A080808195C1E188D017A7B80D249BE018F01 + 4A27F9428383511C8B0E685E0A513AC9078B015CA18B2C4E4C2C911C03944EF2 + C16260C03C40E924DF80C700A5937C11A12183CB03432E06289DE48B8F0C45B1 + 041DA03B86EAA510A5937C03DE1AA5748606390686A4078805D49EA1010010B2 + FACE13CBB1E20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_08_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E84944415478DA63FCFFFF3F + 0308A4B4AFF93FA73284E1D9871F0CB40475D3B730CCAD0A65A4865920B733C2 + 3C90D4BCE2FFBCDA08B807DA171FA09AA32B631DE0EC9AC91B18E6D745D2CE03 + 0FDFFEA49AC3B181C669EB69E381B8BAC5FFE7D4C7303CFFF00BCCEF59B69F6A + 8E2E897284B36B27AE6258DC1C477B0FD00AD0CC03D1D5F3FFCF6F4A6078F20E + 9284FA571CA09AA30B231C101E98B09C61595B126D3C30BB3E9EE1C5471AC700 + BD3C30E46220B262CEFFB94D49342F859A262E6558D1994A1B0FCCA84F04D603 + 901898B6E620D51C9D15624F7F0FD00A8C7A60D40383D903936A1218DE7CFE3D + 743D40539723019A788091912A66D2158C7A60A0C1F0F240F1AC0354CBC48A12 + FC0C69DE060CEC2C4C340D150C0FF4A63950C5E0A5FBAF33BCFBF48321DD87B6 + 9EA09907D61FBBCDF0EDE71F9A7B82661ED87BFE21C3A7EFBF68EE09AC1EF8F5 + 97F2AC70E6F62B86EFDF7FA07822C95D878187938DAA9E40F140E18CBDFFFB33 + 9CA9E2817BCFDE33BCFBFA1BC513CFDE7C61C8F235A0AA27B07AE0DBAF7F607E + F9CC5D6419DA99EEC6F0E1DB2F864F9FBF6178E2E99B4F0CD9BE4654F3048A07 + 0AA6EDF93F21CB05EE014AC0DF3F7F183E03CDC1E689C72F3F3254465A52DF03 + B99377FC9F9CEB419518B8F5F41DC38E9377185E7FC21C67FDF5F307C3943C4F + DA79E0E3F7BFD4301B0CCEDD7EC170F2DA6360924234D1BF7EFD4A1F0FD4CCD9 + 4D926127D74EA19AC78905A70E6C61847B20BB7FEBFFA985DE64C780ABA7FFE0 + F200253120ABA88121FFF8FE0D143E316A6AE66EC550D392EC8DDD03193D1BFF + CF28F1A738064096225B82EC1898382E35204FC13C81CCC6A506C503E95DEBFF + CF2C0B247B8203160303E6014AA798020242069707466380DE1EA074928FD452 + 885009438C1AAC1E2077783D343898E818C015BAC4A8C11903944EF2919207E8 + E281211703944EF20D780C503AC917114A7C2944170F901B033087A003524B18 + 62D4A07880D249BEF8C850B2F45102303C40C924DF80F70786EA0C0D00941DF4 + CE7508F7D50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_09_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002C94944415478DA63FCFFFF3F + 0308A4B4AFF93FA73284E1D9871F607EFBE2030CD40295B10E7076DDF42D0C73 + AB4219A9612EC8ED8CB83C402B40330F2435AFF83FAF3682E63150337903C3FC + BA48DA79E0E1DB9F54733836D0386D3D6D3C1057B7F8FF9CFA1886E71F7E81F9 + 3DCBF653CDD125518E7076EDC4550C8B9BE368EF015A019A7920BA7AFEFFF94D + 090C4FDE419250FF8A03547374618403C2031396332C6B4BA28D0766D7C733BC + F848E318A09707865C0C4456CCF93FB72989E6A550D3C4A50C2B3A5369E38119 + F589C07A001203D3D61CA49AA3B342ECE9EF015A81510F8C7A60307B60524D02 + C39BCFBF87AE0768EA722440130F303252C54CBA82510F0C34185E1E289E7580 + 6A995851829F21CDDB80819D8589A6A182E181DE3407AA18BC74FF7586779F7E + 30A4FBD0D61334F3C0FA63B719BEFDFC43734FD0CC037BCF3F64F8F4FD17CD3D + 81D503BFFE529E15CEDC7EC5F0FDFB0F144F24B9EB30F070B251D513281E289C + B1F77F7F8633553C70EFD97B86775F7FA378E2D99B2F0C59BE0654F504560F7C + FBF50FCC2F9FB98B2C433BD3DD183E7CFBC5F0E9F3370C4F3C7DF38921DBD788 + 6A9E40F140C1B43DFF2764B9C03D4009F8FBE70FC367A039D83CF1F8E54786CA + 484BEA7B2077F28EFF93733DA81203B79EBE63D871F20EC3EB4F98E3ACBF7EFE + 609892E7493B0F7CFCFE972CC35C3DFDA9E12692C0A9035B18717AA066CE6E92 + 0C3BB976CAC07A20BB7FEBFFA985DE54890159450D0CF9C7F76FA0F06BE66EC5 + 50D392EC4D921ABC1E2037064096A23B045D1C971A90C7611E4566E35283E281 + 8C9E8DFF6794F8531C0303E681F4AEF5FF679605923DC131E03140E914534040 + C8E0F2C0888D019803D101A9250C316A503C40E9241F2C0670851C72A813A386 + 9858C2EA017287D743838307D603944EF20D780C503AC937E03140E924DF80C7 + 00A5937C11A1035C0A513AC937E0AD514A27F9E2234307DE034371920F00E707 + EECE3DDEF6E80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_10_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002A44944415478DA63FCFFFF3F + 0308A4B4AFF93FA73284E1D9871F0CB40475D3B730CCAD0A65A4865920B733E2 + F240FBE20354737465AC03FD3D402B40330F2435AFF83FAF3682E63150337903 + C3FCBA48DA79E0E1DB9F54733836D0386D3D6D3C1057B7F8FF9CFA1886E71F7E + 81F93DCBF653CDD125518E7076EDC4550C8B9BE368EF015A019A7920BA7AFEFF + F94D090C4FDE419250FF8A03547374618403C2031396332C6B4BA28D0766D7C7 + 33BCF848E318A09707865C0C4456CCF93FB72989E6A550D3C4A50C2B3A5369E3 + 8119F589C07A001203D3D61CA49AA3B342ECE9EF015A81510F8C7A60307B6052 + 4D02C39BCFBF87AE0768EA722440130F303252C54CBA82510F0C34185E1E289E + 75806A995851829F21CDDB80819D8589A6A182E181DE3407AA18BC74FF758677 + 9F7E30A4FBD0D61334F3C0FA63B719BEFDFC43734FD0CC037BCF3F64F8F4FD17 + CD3D81D503BFFE529E15CEDC7EC5F0FDFB0F144F24B9EB30F070B251D513281E + 289CB1F77F7F8633553C70EFD97B86775F7FA378E2D99B2F0C59BE0654F50456 + 0F7CFBF50FCC2F9FB98B2C433BD3DD183E7CFBC5F0E9F3370C4F3C7DF38921DB + D7886A9E40F140C1B43DFF2764B9C03D4009F8FBE70FC367A039D83CF1F8E547 + 86CA484BEA7B2077F28EFF93733DC88E81936BA750C34D24815307B6306278E0 + E3F7BF6419E6EAE93FB83C50336737498621C740CDDCAD18F22DC9DE287C6AA8 + 41F14076FFD6FF530BBD298E0190A5E80E4117A7448DACA206C3E3FB37087B80 + DC1818300F64F46CFC3FA3C47FE8C6407AD7FAFF33CB02C99EE018F018A0748A + 29202064707980DC1880598E0E685E0A512B0690430857E852A206670C503AC9 + 078B8101F700B9C3EBA1C1C103EB014A27F9063C06289DE41BF018A074926FC0 + 4B214A27F9224243C8D24709C0EB014A6260403C305427F9004947E2CE850F06 + 920000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_11_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002A84944415478DA63FCFFFF3F + 0308A477ADFF3FB32C90E1D9871F607EFBE2030CD40295B10E7076E3ACED0CB3 + CA8318A9612EC8ED8C300FA4B4AFF93FA73204EE015A81BAE95B18E65685D2DE + 03B48A01BA79805680661E486A5EF17F5E6D04CD63A066F20686F97591B4F3C0 + C3B73FA9E6706CA071DA7ADA7820AE6EF1FF39F5310CCF3FFC02F37B96EDA79A + A34BA21CE1ECDA89AB181637C7D1DE03B40234F34074F5FCFFF39B12189EBC83 + 24A1FE1507A8E6E8C208078407262C6758D696441B0FCCAE8F6778F191C63140 + 2F0F0CB91888AC98F37F6E5312CD4BA1A6894B195674A6D2C60333EA1381F500 + 2406A6AD394835476785D8D3DF03B402A31E18F5C060F6C0A49A0486379F7F0F + 5D0FD0D4E54880261E6064A48A997405A31E186830BC3C503CEB00D532B1A204 + 3F439AB701033B0B134D4305C303BD690E543178E9FEEB0CEF3EFD6048F7A1AD + 2768E681F5C76E337CFBF987E69EA09907F69E7FC8F0E9FB2F9A7B02AB077EFD + A53C2B9CB9FD8AE1FBF71F289E4872D761E0E164A3AA27503C503863EFFFFE0C + 67AA78E0DEB3F70CEFBEFE46F1C4B3375F18B27C0DA8EA09AC1EF8F6EB1F985F + 3E7317598676A6BB317CF8F68BE1D3E76F189E78FAE61343B6AF11D53C81E281 + 82697BFE4FC872817B8054E0E0E647AD80251A9C3AB08511EE81DCC93BFE4FCE + F5203B064EAE9D32383CF0F1FB5FB20C73F5F487B36BE66EC5906F49F646E1CB + 2A6A60A8797CFF060A9F9039783D50336737491E80C500C861E80E8139066639 + 329B1235281EC8EEDFFA7F6AA137C53130683C30E46220A367E3FF1925FE4337 + 06289DE41BF018A0748A29202004C5127480EE186AA8C1EB015AC600B5D4D024 + 0606CC03944EF20D780C503AC9171A1C3CB01EA074926FC06380D2493E580CC0 + 2C4107346F0B513AC937E0AD514A27F9224243C8D247330F0C95493E008862D0 + CEDEE328DC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_12_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000029A4944415478DA63FCFFFF3F + 030864F46CFC3FA3C49FE1E3F7BF0CB404E553B730CC2C0D60A4865920B733C2 + 3C90DEB5FEFFCCB24086671F7E80F9ED8B0F50CDD195B10E7076E3ACED0CB3CA + 83A8EF8194F635FFE75486C03D402B50377D0BC3DCAA50DA7B80563140370FD0 + 0AD0CC0349CD2BFECFAB8DA0790CD44CDEC030BF2E92761E78F8F627D51C8E0D + 344E5B4F1B0FC4D52DFE3FA73E86E1F9875F607ECFB2FD5473744994239C5D3B + 7115C3E2E638DA7B805680661E88AE9EFF7F7E5302C393779024D4BFE200D51C + 5D18E180F0C084E50CCBDA9268E381D9F5F10C2F3ED23806E8E5812117039115 + 73FECF6D4AA27929D4347129C38ACE54DA7860467D22B01E80C4C0B43507A9E6 + E8AC107BFA7B805660D403A31E18CC1E985493C0F0E6F3EFA1EB019ABA1C09D0 + C4038C8C543193AE60D403030D8697078A671DA05A265694E06748F336606067 + 61A269A86078A037CD812A062FDD7F9DE1DDA71F0CE93EB4F504CD3CB0FED86D + 866F3FFFD0DC1334F3C0DEF30F193E7DFF45734F60F5C0AFBF94678533B75F31 + 7CFFFE03C51349EE3A0C3C9C6C54F5048A070A67ECFDDF9FE14C150FDC7BF69E + E1DDD7DF289E78F6E60B4396AF01553D81D503DF7EFD03F3CB67EE22C9B0936B + A7502D648905A70E6C61847BA060DA9EFF13B25CE01E201538B8F90DAC077227 + EFF83F39D7832A315033772B867C4BB2370A9F1A6AB07A80DC090E574F7F302D + ABA8C1F0F8FE0D0C799063609623B34955836C3E5E0FD4CCD94D560C0C9807B2 + FBB7FE9F5AE83D746300DD03432E06289DE41BF018A074920FB9140259820ED0 + 3D45F55288D229A6808010AAC6002E7370C600A5937CD4CE03147B60C8C500A5 + 937C031E03944EF28506070FAC07289DE423B52D444C4945480D5E0F901B03F4 + 04281EA074926FC0FB034375920F0071EFBBCE8276D51D0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'CalculateSize_13_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000029F4944415478DA63FCFFFF3F + 030864F76FFD3FB5D09BE1E3F7BF607ECD9CDD0CD4022D29AE7076D58C1D0CD3 + 8A7C18A9612EC8ED8C300F64F46CFC3FA3C41FEE015A81F2A95B1866960650DF + 03E95DEBFFCF2C0B6478F6E10798DFBEF800D51C5D19EB006737CEDACE30AB3C + 88FA1E48695FF37F4E6508DC03B40275D3B730CCAD0AA5BD0768150374F300AD + 00CD3C90D4BCE2FFBCDA089AC740CDE40D0CF3EB2269E781876F7F52CDE1D840 + E3B4F5B4F1405CDDE2FF73EA63189E7FF805E6F72CDB4F3547974439C2D9B513 + 57312C6E8EA3BD07680568E681E8EAF9FFE73725303C79074942FD2B0E50CDD1 + 85110E080F4C58CEB0AC2D89361E985D1FCFF0E2238D63805E1E187231105931 + E7FFDCA6249A97424D139732ACE84CA58D0766D42702EB01480C4C5B73906A8E + CE0AB1A7BF076805463D30EA81C1EC814935090C6F3EFF1EBA1EA0A9CB91004D + 3CC0C8481533E90A463D30D0607879A078D601AA656245097E86346F03067616 + 269A860A86077AD31CA862F0D2FDD719DE7DFAC190EE435B4FD0CC03EB8FDD66 + F8F6F30FCD3D41330FEC3DFF90E1D3F75F34F704560FFCFA4B79563873FB15C3 + F7EF3F503C91E4AEC3C0C3C946554FA078A070C6DEFFFD19CE647BC0C6D9979A + 6E230A9C3AB08511C303DF7EFD03F3CB67EE22C9B0936BA70CAC070AA6EDF93F + 21CB05EE015281839B1F9C5D33772B867C4BB2370A5F56510343CDE3FB3750F8 + 84CC41F140EEE41DFF27E77A501C03204BD11D8B2E0E723CBA638955832C8ED5 + 03E44E70B87AFA0F2E0F903AC534E031803E4736E46280D249BE018F014A27F9 + 603100B3041D905AC210A306C503944EF2C1628092D0A52806289D620A080819 + 5C1E188D017A7B80D249BE018F014A27F9428383511C820E482D61885183E201 + 4A27F906BC354AE9241F720C0C880786EA241F00E672AFCE6BD6EDF900000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_14_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002964944415478DA63FCFFFF3F + 030864F76FFD3FB5D09BE1E3F7BF0CB4005F7FFE6678F0E223C3D2ED6718A615 + F93052C34C90DB197179A066CE6EAA39BE25C515CEAE9AB183361EC8E8D9F87F + 46893FCD620006CAA76E6198591A407D0FA477ADFF3FB32C90E1D9871F607EFB + E20354737465AC039CDD386B3BC3ACF220EA7B20A57DCDFF399521700FD00AD4 + 4DDFC230B72A94F61EA0550CD0CD03B40234F34052F38AFFF36A23681E033593 + 3730CCAF8BA49D071EBEFD49358763038DD3D6D3C60371758BFFCFA98F6178FE + E11798DFB36C3FD51C5D12E50867D74E5CC5B0B8398EF61EA015A09907A2ABE7 + FF9FDF94C0F0E41D2409F5AF38403547174638203C306139C3B2B624DA786076 + 7D3CC38B8F348E017A7960C8C54064C59CFF739B92685E0A354D5CCAB0A23395 + 361E98519F08AC072031306DCD41AA393A2BC49EFE1EA01518F5C0A80706B307 + 26D52430BCF9FC7BE87A80A62E470234F100232355CCA42B18F5C04083E1E581 + E25907A896891525F819D2BC0D18D85998681A2A181EE84D73A08AC14BF75F67 + 78F7E90743BA0F6D3D41330FAC3F769BE1DBCF3F34F704CD3CB0F7FC43864FDF + 7FD1DC13583DF0EB2F7959C1C6D997DAEE23084E1DD8C208F740E18CBDFFFB33 + 9C87BE07BEFDFA07E697CFDC45926127D74E81B365153530E41FDFBF81C2A786 + 1A140F144CDBF37F42960BDC03A40207373F305D33772B434BB237863CB23825 + 6A409E827902C503B99377FC9F9CEB41710C0CB807C89DE070F5F41F5C1E2075 + 8A69C06380D249BE018F014A27F9482D85400E4407E80E26A406C503944EF291 + 1203C8A148AA1A9C3140E9241F297980261EA0748A292020647079603406E8ED + 014A27F9904B216A9430C4A8C1EA017287D7438383C9D2470940F100A5937CC8 + 3130283C402B40ED493E0086DCA6CEA043EA880000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_15_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002A04944415478DA63FCFFFF3F + 0308E44EDEF17F72AE07C3C7EF7FC1FC9A39BB19A80582EC75196E3D79C7F0FB + CF1F869B0F5F324CC9F364A486B920B733C23C90DDBFF5FFD4426FB807A80DBE + FEFCCDF0E0C54786A5DBCF304C2BF2A1BD07A819032D29AE7076D58C1DB4F140 + 46CFC6FF334AFC69160330503E750BC3CCD200EA7B20BD6BFDFF9965810CCF3E + FC00F3DB171FA09AA32B631DE0ECC659DB1966950751DF0329ED6BFECFA90C81 + 7B8056A06EFA1686B955A1B4F700AD62806E1EA015A09907929A57FC9F571B41 + F318A899BC81617E5D24ED3CF0F0ED4FAA391C1B689CB69E361E88AB5BFC7F4E + 7D0CC3F30FBFC0FC9E65FBA9E6E892284738BB76E22A86C5CD71B4F700AD00CD + 3C105D3DFFFFFCA6048627EF2049A87FC501AA39BA30C201E18109CB1996B525 + D1C603B3EBE3195E7CA4710CD0CB03432E06222BE6FC9FDB9444F352A869E252 + 86159DA9B4F1C08CFA44603D008981696B0E52CDD15921F6F4F700ADC0A80746 + 3D30983D30A92681E1CDE7DF43D70334753912A089071819A962265DC1A80706 + 1A0C2F0F14CF3A40B54CAC28C1CF90E66DC0C0CEC244D350C1F0406F9A03550C + 5EBAFF3AC3BB4F3F18D27D68EB099A7960FDB1DB0CDF7EFEA1B927A8EA013307 + 1F5AB8112F3875600B2386077EFD252F2BD838FB0EAC070A67ECFDDF9FE14C15 + 0FD4CCDD8A21DF92EC8DC2A7861AAC1EF8F6EB1F985F3E7317491E38B9760ADC + 527487A08BCB2A6A303CBE7F03430DB2382E7390D5A078A060DA9EFF13B25CE0 + 1E201538B8F90DAC0760534C433606D0E7C84805AE9EFE83CB03A44E310D780C + 503AC9078B019825E800DDC1542F85289DE4A3460C901A4B281EA074928F1A79 + 80220F503AC937E03140E914534040C8E0F2C0888D019843D001CDDB42944EF2 + C162809E00AB07C81D5E0F0D0E1E580F0CD5493E00A071A6CE5D22791B000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_16_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002AC4944415478DA63FCFFFF3F + 0308E44EDEF17F72AE07C3C7EF7F19A805CEDD7EC170F2DA63860FDF7EC3C5BE + 7EFDCA3025CF93911AE683DCCE88CB0335737653CD2341F6BA0CB79EBC63F8FD + E70FC3CD872F69E381ECFEADFFA7167A53350690C1D79FBF191EBCF8C8B074FB + 198669453EB4F7003563A025C515CEAE9AB183361EC8E8D9F87F46893FCD6200 + 06CAA76E6198591A407D0FA477ADFF3FB32C90E1D9871F607EFBE20354737465 + AC039CDD386B3BC3ACF220EA7B20A57DCDFF399521700FD00AD44DDFC230B72A + 94F61EA0550CD0CD03B40234F34052F38AFFF36A23681E0335933730CCAF8BA4 + 9D071EBEFD49358763038DD3D6D3C60371758BFFCFA98F6178FEE11798DFB36C + 3FD51C5D12E50867D74E5CC5B0B8398EF61EA015A09907A2ABE7FF9FDF94C0F0 + E41D2409F5AF38403547174638203C306139C3B2B624DA7860767D3CC38B8F34 + 8E017A7960C8C54064C59CFF739B92685E0A354D5CCAB0A23395361E98519F08 + AC072031306DCD41AA393A2BC49EFE1EA01518F5C0A80706B30726D52430BCF9 + FC9B426307D00334753912A089071819A962265DC1A807061A0C2F0F14CF3A40 + B54CAC28C1CF90E66DC0C0CEC244D350C1F0406F9A03550C5EBAFF3AC3BB4F3F + 18D27D68EB09AA7AC0CCC18756EEC4094E1DD8C238FC3CF0EB2F7959C1C6D917 + CE9655D4C0907F7CFF060ABF66EE560C352DC9DE24A941F140E18CBDFFFB339C + 29F600C8527487A08BE35203F238CCA3C86C5CE660F5C0B75FFFC0FCF299BB48 + F2C0C9B55306D60305D3F6FC9F90E502F700A9C0C1CD6F603D009B621AB23140 + E9249FABA7FFE0F200A9534CB01880598E0E685E0A513AC9474A0C1013BAB8D4 + 208BE3F500B93130601EA074926FC06380D249BE018F014AA798020242069707 + C88D019825E800DD31D428A9681203F404281EA074920F390606D403436D920F + 006556A6CE370969E40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_17_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002A74944415478DA63FCFFFF3F + 0308E44EDEF17F72AE07C3B75FFFC0FCF299BB18C8019DE96E0CB79EBE63D871 + F20EC3EB4F3F30E47FFDFCC13025CF93912CC3D100C8ED8CE81EF8F8FD2F35CC + 068373B75F309CBCF698E1C3B7DF70B1AF5FBFD2C70335737653CD2341F6BA0C + B79EBC63F8FDE70FC3CD872F69E381ECFEADFFA7167A53350690C1D79FBF191E + BCF8C8B074FB198669453EB4F7003563A025C515CEAE9AB183361EC8E8D9F87F + 46893FCD620006CAA76E6198591A407D0FA477ADFF3FB32C90E1D90748C9D1BE + F800D51C5D19EB006737CEDACE30AB3C88FA1E48695FF37F4E6508DC03B40275 + D3B730CCAD0AA5BD0768150374F300AD00CD3C90D4BCE2FFBCDA089AC740CDE4 + 0D0CF3EB2269E781876F7F52CDE1D840E3B4F5B4F1405CDDE2FF73EA63189E7F + F805E6F72CDB4F3547974439C2D9B51357312C6E8EA3BD07680568E681E8EAF9 + FFE73725303C79074942FD2B0E50CDD185110E080F4C58CEB0AC2D89361E985D + 1FCFF0E2238D63805E1E187231105931E7FFDCA6249A97424D139732ACE84CA5 + 8D0766D42702EB01480C4C5B73906A8ECE0AB1A7BF076805463D30EA81C1EC81 + 4935090C6F3EFFA6D0D801F4004D5D8E0468E2014646AA98495730EA818106C3 + CB03C5B30E502D132B4AF033A4791B30B0B330D13454303CD09BE640B661660E + 3EB4742B5670EAC016C6510F60F380ACA20686FCE3FB3750F83573B762A86949 + F626490D560FFCFA4B5E56B071F6855B8AEE10747162D4800201DDD3E86A503C + 503863EFFFFE0CE7A1EF0172A7984EAE9D32B01E2898B6E7FF842C17B8074805 + 0E6E7E03EB014A27F9063C06289DE473F5F487B307A414A274928FDA31804B0D + 72CCA07880D2493E580C0C1A0F0CB918A074926FC06380D249BE018F014AA798 + 020242502C4107342F85289DE483C5003D01CD6260403C305427F900F844AFCE + 64DBCAEF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_18_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002CA4944415478DAED99DF4F92 + 5118C79FF70FE9A2BB6EBA6D6B6B9366BA9C96E46CD37E9891A5B3D9A22CC210 + 26BA9C8D86861210C6859358B3591B4ED68F45EB8AD6BA6C656DE5D0D2558C1F + E3B77402196F206ACA390FAF3ABE57E7F09EF779BF9FF7FB9EC3C5C3114220A5 + CBFA1764B0FD1084627F805689A5250824EBF80321F004E3100E47C01F8E4128 + BA04EE451FC81BF773D40F492AE59DCB0074E81C44D771980790199F155474A0 + B51266E63DE0707D819FFE48DEF5583402C397AAF0007CE1048BDACB7AFF7901 + 5C1FDCE00DC5F9DF82C160710014E6E7CC40EACAF6C2CC9C07E2C94FEBD3EC22 + 0EC045ED14199156334D205BC1681CBE2DF8607CFA1DE8AFD4E003B04CA0AFA5 + 821F77191C38006D9AA7C4D0598B964046B2113B18AF89D903B4DE9E24C6EBC7 + E0BB377D72F48F399999969F16F1E31ED334986475EC015AFA2788595ECF0360 + 4979CF0EA35DC7F101B012281A0096D00024BD36F2A0BB013D0185EE0958948D + 7800B3BFA3CC8CAFA61EFD240E4093728C9855A7E08737B63CD7585F3133DD79 + E2203FEE1E7A0463BD4DF8005842033879D3422CEA6698F3A43F21ADCDC9CCB4 + B441F40F60F021586F497000EEABCEC0820F398162016CBB041A6F98C9A85A82 + 7E0AA987C6C136701E07C0A03A9BFC1F4827A09F78CDCC747B7D59F101B05402 + 28016C6580BB8A66F815885396151000D579965000388E49CDA2AA0420B47616 + C05593936A13BFB16A8A0EF0D669E77200EE5C10155C6C9FA866E7002846A7F2 + AEF79DABCE99EFDABD276F8DFBEBC79CF9FFEAA000A48CAD3492319379F846D6 + 648FD75AB32A402C51D85638507E445800A9E125D1B6956F7F80425B4CAEC7C3 + C202D036F94495478505A06DF26512C8185CA9CD9E301BA9B32A40A10D8E8AAA + 5AA66F77AD35D9F5D705D86C8B69337B000580B6C9277802B44D3EC113A06DF2 + 099E006D934FF05388B6C52416D717741F8DD605A049604B0060897593EF2F90 + 13C4CE01E99E670000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_19_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E14944415478DAED99DD4B53 + 611CC77FBB0982FE852EBAEBA69BA02008B6302599A68981EBC56C598A62B4B2 + 96361D4E490C436DBAB635DBC5708D302C501CBDD0A22B23BA8CB2A044AD4936 + DC64EF5B4F7BE19CDC0B91E73CBF7366EC7BF53CCF39FC9EDF87EF739E73F195 + 1042202995F105196A2E8140E4576AAE363D052E1A682A83B540047CEB01F0F8 + A3100C86C0178C40201C83E5551FB456EE851DDBB7493815CF52B277090370C9 + F09C0CB71C6601F8281E8BC17AA24E3E88C5152F74280ED00768D33B89BEED08 + 1507E6973DE09CFB0C3F7CA19CE7917008462F96E3017883711AB5537AF7C90D + 73EF1713472ACAAEF9FD7E6100349667D4406AA47B607EC903D1C4D1FAB8B082 + 03D03A3443C65472AA0E6C943F1C85AF6E2F4CCCBE05C3E50A7C009A0EF43596 + B2E34EA31307A079F00931B657A139C0483D360DA6ABD5F4019A6E4D11D3B563 + F06D2D7D73F4DB5CD49AEE382D63C73DE65930AB6BE80334F64F124B472D0B80 + A5EEBBD330DE791C1F00CB01C100B08406A0EC7590FB5D75E80E68F48FC1DAAD + C00358F819A6D6783EF518A67000EABB6DC4A23D05DFD722A9F9A0FD25B5A6DB + 4F1C62C75D230FC1D65B8F0F802534809337ACC4AA6B80254FFA080D395CD49A + 56D5C9FE000C3F00FB4D250EC03DED19707B911D100A60CB39A0B86E21E33A25 + FA2DA41B9900C7C0791C00A3F66CE23F9076C030F98A5AD32DB552E101B05404 + 28021432C01D4D03ACAE477996151100B5F30D42019048A8D414544500B14515 + 609F542ED837C4E88D6B5AC2025C31BB7835F0DA3E2874FFB900B72FC83817DB + 2FAB60C79AF1999CE77DE7E419731AEFA0002437CD6E247B7DE7AEDDB0F8E5C3 + 5FDFF9973AFF274024CEED53385852292E0093916D7900AE11D3DCA3517101F8 + 867CB2B2A3199B648BCB2D9404CDD646F00C00BE21DF661CA0E5525E00AE0147 + 69795561016C366212DD01BE219FE80EF00DF94477806FC8C738C06C922DF45B + 886FC8C73820A43200F8464CD5D5B58505B05542BEDF8888DDCED856E4050000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_20_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002F14944415478DA63FCFFFF3F + 030814CED8FBBF3FC399E1D75F089F1270EFD97B86775F7F337CFFFE83E1D3F7 + 5F0CDF7EFE6178F6E60B4396AF01030F271B23C5164001C8ED8CE81EF8F6EB1F + 985F3E7317598676A6BB317CF8F68BE1D3E76F189E78FAE61343B6AF11D53C81 + E28182697BFE4FC872817B8012F0F7CF1F86CF4073B079E2F1CB8F0C959196D4 + F740EEE41DFF27E77A5025066E3D7DC7B0E3E41D86D79F7E60C8FFFAF983614A + 9E27ED3CF0F1FB5F6A980D06E76EBF603879ED313049FD868B7DFDFA953E1EA8 + 99B39B6A1E09B2D765B8F5E41DC36F60D2BAF9F0256D3C90DDBFF5FFD4426FAA + C60032F8FAF337C383171F19966E3FC330ADC887F61EA0660CB4A4B8C2D95533 + 76D0C603193D1BFFCF28F1A7590CC040F9D42D0C334B03A8EF81F4AEF5FF6796 + 05323CFB002939DA171FA09AA32B631DE0ECC659DB1966950751DF0329ED6BFE + CFA90C817B8056A06EFA1686B955A1B4F700AD62806E1EA015A09907929A57FC + 9F571B41F318A899BC81617E5D24ED3CF0F0ED4FAA391C1B689CB69E361E88AB + 5BFC7F4E7D0CC3F30FBFC0FC9E65FBA9E6E892284738BB76E22A86C5CD71B4F7 + 00AD00CD3C105D3DFFFFFCA6048627EF2049A87FC501AA39BA30C201E18109CB + 1996B525D1C603B3EBE3195E7CA4710CD0CB03432E06222BE6FC9FDB9444F352 + A869E25286159DA9B4F1C08CFA44603D008981696B0E52CDD15921F6F4F700AD + C0A807463D30983D30A92681E1CDE7DF141A3B801EA0A9CB91004D3CC0C848B5 + 214BBA81510F2003537B6FBA2541183875600BE3F0F140F1AC031439E0F0B21E + 38BB66EE560CF996646F14BEACA206869AC7F76FA0F0099983E181DE3407B23D + 60E6E0037718BA43608E81594E2D35A31E18941E20778ECCC6D977603D40E924 + DFA0F100B9534C27D74E81B3892961A8A106C503944EF239B8F9618410AE9023 + 460DC93140E9241F2C0606DC03E44E70B87AFA0F2E0F903AC534E03140E924DF + 80C700A5937CA49642D4682FA17880D2493E580CD013A07880D2493EE4181810 + 0F0CD5292600E29CEDCE75F489BF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_21_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003094944415478DAED99DD4B93 + 511CC77FBB0982FE852EBAEBA220828220D8C2B4649A2506AE17B365298A9165 + D96C2A4E498C859ABAB6B5B50BD14618164C945E68D1D542BA8CD2A864BA66D9 + DA4B7BDF3AED85673D7B51A6E79C670AFBDEEC39E7F971CEEFB3EFE10CF6E521 + 8420AA6B6A23BA7B490081707C8CA399B91FE0F5FAC0E90D80C71F029BD307E2 + 23BB60DBD62D3CECC5598AF6CE63009A94AF505F5D0111802F96DF6073079320 + 2CCB7FA0BE740F51888C009EC0DFD8B845F57C5D8BF6D61681DD1300A7CB9306 + B1B8EC8486D2BDC4209200AE285EA2FEFAC309001C8543217045D6C904615E72 + 804474803C40E3E0341A6C3C4AC481D9451B4C9B3EC3CFC8D94F55C0EF83A1CB + C5F4001CDE3089B5637A3F6705D30773E4480513736EB79B1B00A9E605319072 + FE6E985DB0413072B43ECD2FD10168E89B44C34D42A20EB0E5F607E19BD501A3 + 5333A0B85A421F80A403DD358589E756E5341D803AF933A46C2EA3E600A39661 + 03A8AE1F270F507B6702A96E9C008B3D7E73F48C1889352D392B483C77AAA740 + DD524E1EA0A6671C69241509005A6ABF6F006DEB49FA00B41CE00C8096A80188 + BBF4E8615B257507A4834F41D72EA20730FFCB4FACF14CEA544CD001A86A1F41 + 9A8E33F0DD1E888DE563AF8935DD7CEA50E2B96DE0318C7455D107A0256A00A7 + 6FE9904E560D0BB6F811EAD31B8935DD5429F80FD0FF08C66E8BE9003CE83807 + 56076507B802D8740E886E6A905626A67E0BC9064641DF7B910E80B2E37CE477 + 20EE8062FC0DB1A6EB2BF8DC03D0521E200FB09101EE49AB61D915C45C368700 + 543B67890A008F47F47F574E4414601F5FC899838CDE190DBC3C402600A97632 + ED7DF70561D298444D124034E0C001783B268F7D6EDFB113CC5F3FA6BD8F36C3 + 6CBE520D7B9E5DBF524D1A4034A159AFF60B4AF20079009C90EF6041696E0170 + 433E0680D92455A90D6753B3A65B0837E4333D195AF59B63CF6753938D934900 + B8219FA0E8586E017043BE9C3B801BF21516976D2C80B5464C39770037E4631C + 60364FD55A6F986C6A560558AF035C2A090037E4633B901380CD1AF2FD03F7BB + FDCE20408E640000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_22_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000030C4944415478DAED99DF4B93 + 5118C79F451441FF4217DD755120414110B8302D99CB1203ED87D9B2261323CB + 5AB339F1078961A8A96B5BB35D0C6D846181A254D2A22B45EA2E4AA3127F346B + 2D37DBE636EDB4295B7BF743B4739E770AFB5E9DF3EEF09CE7F37E0F672F7C05 + 841008E89ACE4CEE5E12020B0DBE1B0787DB0B2ECF02D81CF320CD4A81AD9B37 + 0998140F53A077412480779150171E19FB0E6EF73C07427264376CDFB6852904 + 07A04C33489A8AD398007C9EFE0536A78F03316DFD0D32710A538898002EEF9F + A5B95CFBFCBF8A36483360D6E505C79C2B0A62CAEA8012F15E66101C802BEA97 + A45976380440A3C5850598F3D789053131630745FE01F600A5AD03A4B5F42813 + 0746A76C3030F4097EF8CF7EA4BC9E7968BB9C890760772FB2A8BDA4B7631618 + 7A3FE13F52BED033A7D3C90F8052FF8219484EEA1E189DB481CF7FB43E8ECFE0 + 009434F591F632115307C2E5F4F8E0ABC50E9DFD23A0BE9A850FC0D281BAA2F4 + D0B84233800350DCF88C68CAB3D11C084ADEDE0BDAEBC7D90348EFF410ED8D13 + 303DBB7C73D41BCDCC9A569C1586C6D5BA7ED0C973D80314D57713BD22370480 + 25D5FD5EE8A838890F80E5006F0058420390D49AC8C3CA3C740794AD4FC1A0CA + C70318FFE961D6782C55AB7B70000A5446A2AF3A03DF66BD4BF3C6AE57CC9A2E + 3F752834AE6C790CC6DA027C002CA1019CBE6520869A4298B42D1FA126939959 + D36579C27F00CD8FA0EBB60407E041D539B0D8911DE00B60C339907F534F3A6A + 24E8B7504D4B27981A2EE20068AACEFBFF07961D5077BF66D6B42C37957F002C + 25019200EB19E09EB210AC733ECAB2090440ED3C4C280002015DCD7DA922DE5E + 4050C3E65E4112201680B2A32FEAF7BA0B22CE9CC51A1480C0A6918D04B463E7 + 2E98F8F2216A1C6F4DBC3AE1CF390081808306E04D57E38A1BF302401331ED17 + 66250192003421DFC13431A791484536BC9A356BBA856843BE20C06A1C58CDDB + 8DE7525C076843BEA1276D8905A00DF98419C7120B401BF225DC01DA902F3D33 + 7B7D01AC35620A3A10DC2452E8DF42B4215FD0013EB522008D030901D8A821DF + 5FE29504DDA371CDE80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_23_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003074944415478DAEDD9DB4B93 + 711807F0671145D0BFD045775D14485010042E4C4BDCB2C4403B982D4B518C2C + 6B6973E281C430D4D4B5AD2D2F86266168A02895B408C285D45D94EB241E9AB5 + 96DBDAE99DF66B53F6E63B4790BFDFB3CDD8F7EA3D8CDFFB7CF6BCFC067B4484 + 1008E692D6486E9E13038BF4BD3083DB370F3687170A2549B071FD3A119385C3 + 12AC5D840118793D010E0F878E8808E01608F5C263E6AFE0F1780508D981EDB0 + 79D306A60801A04C3D429A8B5298003ECEFC009BCB2F40CC587F42B134892922 + 22C0CDFD5A3C976B1EAD6AD1C6C234987373E070BA5720A6AD0E2891EE648610 + 002EA89E9096E2FD3C80260BF3F3E00CAC130931396B878ADC3DEC01A56DC3A4 + ADF420930E8C4FDB60D8F41EBE05DEFDF0703E2FB49F4FC703D83D0B2CD65ECC + 2BB3054C6F2603AF949FBFE672B9A20350E81E33836425EF80F1291BF803AFD6 + BB89591C4049F320E928CB60DA81E571F9FCF0D96287AEA131505D94E0035876 + A0BE20953FAE540FE3008A9A1E127579265A074291770C80E6F261F680C21B7D + 4473E508CCCC2DED1C0D0623B3A22B4E8AF9E31AED1068E559EC01050DBD4457 + 91CD03B0A2BC3D00FACAA3F800AC0E440D80153480ACAE87DCADCA41EF80A2AD + 1F3A95B9788089EF3E6685474A8DAA0F0790A734105DF509F832C72D9E37753F + 655674F9B17DFC7155EB7D30D4E5E103B08206387EAD9374D6E6C3946DE9156A + EE31322BBA2C47FC07D0720FBAAFCB700077AA4F81C58EDC816801D65C0772AF + EA88BE5686BE0BD5B676414FE3591C80BAFA74E07760A903AADE67CC8A2ECE4E + 8E3E002B09400210CF805B8A7CB03AFD94CBC61040B3D887D17E5478A4BC340E + 8878804844F7A5EC4ACEA0FF53355E000AFDE08AFBF5673204E72C3E8302D8B2 + 751B4C7E7ABBE2FEF2EB349F09A24288FF0B101C70D0009E77375117470DA019 + 31ED164B1280B800841E1E9EF06298EF42B443BEBD29D2D8768076C8173780D5 + 8E984C0FDA630BA01DF289D30EC516403BE48B790768877CA9E999828784277C + 8761B153FD15F0AF23A65007A219018076C8B7BC037101582B43BEDFA47A0ADD + 404500F90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_24_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003204944415478DAEDD9DD4B53 + 711807F0671145D0BFD045775D14485010045B9896E8B244C1F5A2B62C4531B2 + 2C9B4DC5298961A8A96BAEAD5D88266168A02895B8082243EAAE17ED4D7C496B + 2DB7B5CDBDF56B73ECE4395B2D777ECFA6E1F7EA9CB3B3DF9ECF9E1F67834740 + 08015F2EA8F5E4FA1911D048C7F06B309A17202F250E36AE5F27A0B26888F86A + 1760007A9E8E83CDE14647A001865E4E80D9EE44478404383D84F7C2A3E35FC0 + 6E5F6021A407B6C3E64D1BA822588062D51069C88FA702F830F31D8C56170B31 + 63F80105E238AA8890009BF3E7E27969DB838816ADCB4B84799B13CC165B1062 + DA608642F14E6A0816E09CF211692CD8CF00F8C4E37683C5BB4E28C4E49C0964 + 923DF40145CD83A4B9E820950E8C4D1B6170E41D7CF5EE7D6E9C8E0568399B84 + 0730D93D34D65ECC8BF159187935E9DD522EE69AD56A8D0E40AE79480D9226DC + 016353467079B7D6DB89391C4061433F692D4EA6DA81A5B13A5CF069D6041D03 + A3A03C9F820FA0D9819ADC04E6B84C358803C8AFBF4F5425A9681D08A4B4B50F + DA2E1EA60FC8BBD643DA2E1D819979FF93A3B65D4FAD68D90911735CA51E0075 + 691A7D406E6D37D1C8D21900562A6EF681B62C031F80D581A801B08206905677 + 91DBE599E81D9037F782AE42820798F8E6A05678A854297B70005915ED445379 + 1C3ECF3B17CFEB3B87A9155D72741F735CDE7417DAABB3F0015841031CBBA223 + 3A450E4C19FD5BA8A14B4FADE8E24CD16F40E31DE8BC2AC501DCAACC86591372 + 07A20558751D905CD610AD428AFE145234754057DD691C80AAF2A4F777C0DF01 + 65F7636A4517A40BA30FC0CA1A600DB0920137E43960B0B8225A2C5B92810A0F + 95E7FA3E010BC067B1F7CF7A630B1008F87575973099F902B66CDD16F4FAE4C7 + 37AC73B9B63FE89E9A53C9ACF370EBA0007C1FCA2D967BDD573CB7D87FBD67E9 + F535C08A02F8061C7C004F3AEB838A883A80CF8869B728E5FF00040AE12692A7 + 50B87B62D6013EF784ED40A433B2BDF1E2D802F80EF9560C20D211D3C8BD96D8 + 02F80EF9448987620BE03BE40B7420F021DC2CF709134070F3C7FF427C877C09 + 49A911BD8F4FFE0A58EE88696907620258AD43BE5F22070DDDC8D5D672000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_25_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000031F4944415478DAEDD95D4853 + 611807F06711451074DB4D17DE7551204141106C615A3297250AAE0FB5652A13 + 23CB326D2A7E9018C6B4E99A36F362CC240C0D14A51217426448DDF5E1FA123F + D2B2E566DBDC87BDCD8D9D76E659C5CEFB4C85FDAFDE73369E3DBF3DEFCE2E5E + 0121049673A9D5E05B5048CCF66D90238E85CD1B370868D5E4CA72EF8240C0CD + 1C1195C2FAA13760B22C426E122E020DD0FDCC0836871B1D8106187C350E16BB + 131DC109702EF1FF298C1ABF82DDBEC842C80EEF82AD5B365145B000859A41A2 + CC8BA302F838FD034C56170B313DF713E49258AA084E80CDF9CB7B5DDCF228AC + A275B909306F738265C1B602313567817CC91E6A0816E082FA0969901F62007C + B2E476C382A70E176262D60C25D2FDF40105AA01A22A38426502635326181879 + 0FDF3C7B3F384EC722349D4FC40398ED4B346A7BF3D2380323AF273C5BCAC5DC + B35AAD910128B48FA9415284BB616CD2042ECFD67A373E8B03C857F691E64231 + D50904C6EA70C1E71933E8FB47417D31091F40730235D9F1CCBA54338003C8AB + 7F483445C96813F0A7B8B9175A2E1FA30FC8BDD14D5AAE1C87E979DF93A35667 + A0D674C96911B3AE6CED87D6E214FA80ECDA2EA22D4965005829BFDD0B6DA569 + F800AC09440C80153480ACBA93DC2D4B479F8042D503EDE5523CC0F87707B5C6 + B952A9EEC6016494EB88B6E2147C99777AAFEB3B86A8355D74E220B32E6BBC0F + BAEA0C7C0056D00027AFB593F6AA2C9834F9B690B2D340ADE9C274D11F40C33D + E8B82EC301DCA9C8841933F2042205587713905ED592B62A19FA53A8AA510F9D + 75E770009A8A339EFF01DF04D45D4FA9352D4F15461E809528200A08914C691A + 2A9C2B2F0CBD0216E096220BE6165C61155B13003EC53E3CEF61D63B6276AE78 + 7DE2D35BD6B5A2AD6FC57B6ACE8A59D7FFAAC3020804FCB6E55EA198F81B0B6E + 24F87EA8F72C37EC6F30701DAA4E141005D004F03DE41BEEA8FF6B731101F039 + 62DA274A6235121CF4A7102DC0FF7C737CA6843E815507847B4676204EB2BA00 + BE877C6B0610EE11D3C883A6D505F03DE413251C657D4870829BA1FE14E27BC8 + E79F4024C30908F780233E31796D01D6CB21DF6F18BC07DD0A57588600000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_26_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003154944415478DAEDD95D4853 + 611800E07711451074DB4D17DE7551204141106C6159B1D98F28B87ED496A928 + 462BCBB439F187C430A6A96BDA6C17431B6168A02895B810A285D45D3FDA9FA8 + 4B6B2DB7B57FD7D75276DAD926C8CEF74E177BAFCE39FBF69DF739EF77BE0D5E + 1E2104E2397801C0E50E3D3549D2D62D902F4C868DEBD7F13093FF9B3B0B702B + 5F4065E2AE91B760B6BAA040848B4003F43E9F00877B011D8106187E3D0956A7 + 071D1111E0F1717F15C626BE81D3E96221248776C0E64D1BA8225800A96A9828 + 0A53A8003E197F82D9EE65218CA65F5094964C151111E0F0FC5E3C2F6B7F1CD5 + A40D05A930EFF080D5E60843CC98AC509CB68B1A8205B8A87C4A9A8A0E30002E + E15B58009B7F9E4888A9390B948BF7D20794B40C919692C3542A303E638621C3 + 07F8EE5FFBA1E171BBA0F5C2113C80C5E9A331F762BC9A9805C39B29FF92F232 + D7EC767B6C0032F5136A9074FE4E189F3683D7BFB4DE4FCEE1008A1503A44D2A + A45A81E0B0BBBDF065D6025D8363A0BC24C207D0AC405DDE41E6B84235840328 + 6C7C4454A5C7D02A1088B2B67E68BF729C3EA0E0662F69BF7A028CF34B3B47BD + 564F2DE9F23302E6B8BA63103ACAD2E903F2EA7B88BA3C83016085FC4E3F7456 + 64E203B02A10330056A00124B53A72AF320BBD02B2963ED0C8C57880C91F6E6A + 89478A6A652F0E205BAE25EAAAD3F075DEB378DED83D422DE9D293FB99E3CAE6 + 07A0ADCDC60760051AE0D4750DD1D4E4C2B479690929747A6A494BB304FF004D + F7A1FB86040770B72A07662DC815881520EE2A20BEA6269D3512F45DA8A6B90B + 740DE77100AAAAB3FEDF81A50A287B9E514BBA28831F7B0056240058801C7126 + 2A3C52BCD4F7F3FE2FC06D592E986CDEA8260B06C83A07C23EAF3B27649DAF64 + CCB6A4ED6163A63EBF5B1EC0E5697C7CD1C724169A482099C0CDB98C09BECE02 + F078DCDEABDD7C21490012807806706DF28D7637B212098DE0DD2390486870DA + 85B8B698F608442B7E72C14F7AB93151552001580B80687B64FB52D25617C0B5 + C9B76600D1B6980C0F5B5937090DF4FF425C9B7C82D4A3517D8F4BB0005C9B7C + C115585540BC35F9FE00C21EFACE2C11F8070000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_27_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003074944415478DAEDD95B4853 + 711C07F0DF228A20E8B5971E7CEBA14082822070615931ED220AAE8BDA3215C5 + 686599361D5E488C859ABAA66DED415C238C19284A252E846821F5D645BB0D2F + 69D972B3DD5DFF7669A7CED920DAF9FF66C6BE4FE7C6FFFC3EFBFDF73F0F7F01 + 2104567204FF0DE07C97919A2469E306281425C3DAD5AB0498C5076A6701AE15 + 0AA90CDC33F2122C361714A5E322D00086C713E0702FA123D000C3CFCD60737A + D01151011E1FFFBFC2D8C427703A5D2C8464DF1658BF6E0D55040B20550D93E6 + E2542A8077335FC162F7B21033F3DFA02423992A222AC0E1F91E3CAFE8BC1FD3 + A04D4569B0E0F0806DD11181989EB74169C6366A0816E0ACF2216929D9C300F8 + C4B7B4048BFE71A22126E7AC5029DE491F50D63644DACAF653E9C0F8B405864C + 6FE0B37FEE73E371BBA0FDCC013C80D5E9A3317630CF2666C1F462D23FA5BCCC + 35BBDD1E1F804CFD801A2433652B8C4F59C0EB9F5AAFCD733880D2E601D22115 + 51EDC0EFB1BBBDF061D60A3D8363A03C978E0FA0D9818682BDCC71956A080750 + ACB84754E587D03A104E45473F745E384C1F5074D5403A2F1E819985D0CAD1D8 + 6DA45674E50921735CDB35085D1599F401058DBD445D99C500B05273A31F3455 + D9F800AC0EC40D80153480A45E4F6E55E7A07740D6D607DA1A311EC0FCC54DAD + F068A9551A7000B935DD442D3F0E1F173CC173856E845AD1E5477733C7D5AD77 + A0BB3E171F801534C0B1CB5AA2ADCB87294B680A35EB8DD48A96E6087F015A6E + 83EE8A040770539E07B356E40EC40BB0E23A20BEA4269A3A09FA2A54D7DA03FA + A6D3380095FCA4FF3B10EA80B2F711B5A24BB252E20FC0CA3F0BC81367A3C2A3 + E5A9B15F90004403C8340311F71B4E8958E7349E89005C97E5C3FCA217624918 + 107829B710EE755ACF440062AAFC67DE3EE95B5E8040C06F61D89E2222094002 + 400110C8A6A4CD11F727DFBF8A28841B6EC17F1A8705E0BBC937AA53302FE516 + 1BCBAFFBD71DE0BBC5B443989E0024007C36F976A5662C2F80EF265F18104670 + 83BE0AF1DDE433DD6D8F09CE272C00DF4D3E61DAC1E505ACD44DBE1FD7E1EDCE + 579DE0E90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_28_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003044944415478DAEDD95F4853 + 511C07F0DF8D2882A0D75E7AF0AD8702090A82C085FD654A250AAE3F6ACB5426 + 469665DA9CF887C430A6A96B5B331FC64CC2D060A254E222880CA9B7FE68FFC4 + 3F69D9DA66FB77A79D36AD9B77BB90EE9EDF9CB0EFD3B9F71E0EBF0FBFB3B387 + C310426035878901A20570516FA12689DBBC0972A4F1B07EED1A06B3F840ED3C + C08D1C0995854DFD6FC0EAF0406E122E020DD0F96C185CDE5974041AA0EFD508 + 38DC2C3A4210C0CE89FF290C0E7F05B7DBC343C80F6E838D1BD65145F00085DA + 3EA2CE4BA402F838F103AC4E1F0F3131FD1314C9F15411820017FB6BFEB958F7 + 30AC456B730F80CDC58263C61582189F76407EF20E6A081EE0BCE631A957ECE3 + 006232373B0B33FE758410A353762891EDA60F2868EC258D0587A8746068DC0A + BD03EFE19B7FEF0787F57AA0E9DC613C80DD3D4763EDF9BC1C9E8481D7A3FE2D + E5E3DE399DCEC800948647D4202909DB6168CC0A3EFFD67A37328503C8577793 + E64229D50E2C8ED3EB83CF937630F50C82E642123E806607AAB3F773E3526D2F + 0E20AFEE01D1161D41EBC0DF14379B4177E9287D40EEF54EA2BB7C0C266C0B27 + 478DD142ADE89253126E5CA1EF017D710A7D40764D073194A47200ACA86E99A1 + A5340D1F80D5818801B082069057B5933B65E9E81D50367641AB4A860718F9EE + A556B8502A349D38800C959118CA4FC2171B3BFF5CD7D64FADE8A2E37BB97159 + C33D305665E003B082063871B595B45666C19875610BA9DB2DD48A2E4C97FC03 + D4DF85B66B721CC0EDF24C98B4237720528055D701D9150369A994A39F42950D + 2668AF3D8B03D0969FF6FF0F2C7440D3F1845AD18AD484C803969B4C591A35F0 + 52F3C26266620021C096B8AD21DF473FBDE53DD398830250B67443F51969C8F7 + C5EF69CD0901DC5466C1F48C0FC2495400C2AAFC4F3E3CEF5A5900C3883BD976 + 2648490C100D80409672C2040A094E70C1CB3A85A2AD0381E283D1C1737800B1 + 977C4FDBEA965C1C1A40CC15D32E49520C100388B9E4DB9398CC8D699D42FF9B + C30388BDE45B0C88540401E15E310DDC6F5A59C06ABDE4FB0DE2E2E9CE60F213 + 9A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_29_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003034944415478DAEDD95D4893 + 511807F06711451074DB4D17DE755120414110B8B04FA65492E0FA505BA6A218 + 59D6D2E686531263A1A6AE6DCD76219A84A1C1C451898B2032A4EEFAD0BE445D + 5AB6DC6CDFDA69BAB67CB745ED7DCF33B7E1FFEA7DB7C339CF6FCFBBB3C1E111 + 42209EC35B01AC0028012E688CD424491B3740BE2019D6AE5EC5C32C7EA17606 + E07A3E9FCAC4ED03AFC16C7542411A2E020DD0FD7404ECAE3974041AA0FFE528 + 581D6E744458807B9EFB576168E40B381C4E0642B47F0BAC5FB7862A82012855 + F593FAC2542A800FA6EF60B6791808D3F40F284A4FA68A080BB0BB7F2EDE8BD5 + 0F584D5A57B00F66EC6EB0CEDA431013D356284EDF460DC1009C533E220D457B + 02002E999F9B8359EF3CE1106353162817EEA40F28693290A69203543A303C61 + 06C3E03BF8EA7DF683E37639A1F9EC413C80C5314F63EEC5BC189984C15763DE + 47CA1378CD66B3450720D13EA406C948D90AC3E366F0781FADB7A3533880E2FA + 5ED2522AA0DA81A5B1B93CF069D202ED7D43A03C9F860FA0D9819ABCBD81EB0A + 95010750A8B84F546587D03AE08FB8450FEA8B87E9030AAE7513F5A523609AF1 + ED1CB56D466A45979FE407AEAB347DA01167D007E4D576116DF9D100002BD29B + 7A68ADC8C4076075206A00ACA00144D59DE47665167A07244D3DA0930AF100A3 + DF5CD40A0F972A65370E205BDA46B4B213F079C6BD78AFE818A05674D9B1DD81 + EBCAC6BBD0569D8D0FC00A1AE0F8151DD1C97361DCEC7B84EA3B8DD48A2ECDE2 + FF0134DC818EAB221CC02D590E4C5A903B102D40DC754078594B5AE522F45D48 + DED80E9D756770002AD929EFEF80AF03CAAEC7114D3678AF19151E2ECF8D7ADE + 5F01912647989938804D499B43DE1FFBF886712F69ED0D1953735A10D11814C0 + 42F1C1C5FA8BF12F4E6B4CE2016E4872617AD6036C1213005695FFCEFB673DCB + 0BE0F1B86DCDDB5304242100FEC583C36617FAD73C2880A59F10974F77D93AB0 + 6C00AE877C4F3A14210B441DC0E58869073F6D05101300FF22C189F47FCEFF8C + 090B607B46B62B359D359E6D1800AE877C310388B743BE5F6F88D9CE45FC1DB0 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_30_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003114944415478DAEDD95B4853 + 711C07F0DF228A20E8B5971E7CEBA140828220706157A65492E0BAA82D53518C + 2C6B69D3E185C458CC52D7B42D1FC435C2D0407154E222880CA9B72EDA6DA84B + 6BAD6DB6BBF66F973CB94B36B7FFEF6C8ADFA773B6C3EFFC3EE7777636F6E710 + 42C01BFE65857F8385A81BCE7068D4F1F6CE99037038546AB29A1540BCB3BC00 + 17DAB4D43EC4491B37403E2F19D6AE5E857A554200D7F3B9540A770EBE01A3C5 + 010569B8083440F7B351B03967D011688081573AB0D85DE888B000D76CEC1F85 + E1D1AF60B73B021082FD5B60FDBA355411018052F9009116A652017CD4FF00A3 + D51D80D01B7E42517A3255445880CDF5CBB72F6C7D1855D186827D60B2B9C032 + 6D0B414C182C509CBE8D1A2200704EF6983416ED6100B164766606A63D75C221 + C6A6CC50CEDF491F50D2A4214D2507A84C6064C2089AA1F7F0CD73EF07C7E574 + 40F3D9837800B37D96466D5F5E8E4EC2D0EB31CF2DE5665EB35AADEC00448A47 + D42019295B6164DC086ECFADF54E3785032896F69196521ED509CC8FD5E986CF + 9366E8EC1F06D9F9347C00CD09D4E5ED65B62BE41A1C40A1E40191971D429BC0 + 5C842DBDD07AF1307D40C1B56ED27AE908E84DFE27477D87965AD3E527B9CC76 + 755B3FB40933E803F2EABB88A2FC2803C04AD5AD5E505664E203B026C01A002B + 680041AD9ADCA9CC429F80A8A907DAABF87800DD7727B5C6C3A55AD68D03C8AE + EA200AF109F86272F9F625AA416A4D971DDBCD6C57DEB8071DB5D9F800ACA001 + 8E5F6927ED35B9306EF4DF4252B5965AD3A559DCBF80C6BBA0BA2AC001DC16E7 + C0A41979026C0196DC04BCFF4E2B6B04513F8572F899D4C091E685B697130090 + 8B4F79BE07FC1390753D5954B1A1FBCD8905586CE64F40A4EC0B79BFEE342F60 + 9FC6312800EF49831B097E7D53D26618FBF476C16322A9B3024838C04D512E18 + A6DD104D12021055E77FF2E1794F7C01B1AED06C4FE13117C0DB6070821B8EE4 + 29F4BF3A288048AEDCBF8E993F9948A6B402482840AC8B7C4F5592059B630510 + CB12D30E6EDAF200CC9D2438D1FC165AD453882680AD840544BB46B62B353DBE + 80A5BAC8F71BBE1BD9CEBF8F2F800000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_31_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003104944415478DAEDD95B4853 + 711C07F0DF228A20E8B5971E7CEBA14082829E5C7467934A125C17B5652A8AD1 + CAB2D99C38253116D3D4356DCB07D1240C0D1447252E827021F5D6C575137569 + D9DAA5DD5DFFE66C73675BB5CBFF374BF67D3A87FDF73FBFCFF99D7376D89F45 + 088185F02E2BC90D513ECC59DC8019495317F4349C61D1986BA176563000B5F2 + A0A000582C2A73263529C0726765012EB46BA8DDC4691B374021271DD6AE5E85 + 7A56C200D70BD95426EE1A790506B3038AB8B8083440DF531DD89CF3E80834C0 + F08B0930DB5DE88888009727F15B614CF719EC760703C1DFBF05D6AF5B4315C1 + 000814C34456BC9B0AE0BDFE1B18AC6E06423FF71D4A32D3A92222026CAE1FBE + FD8AB607714DDA50B40F8C3617982DB630C4F49C194A33B751433000E7E48F48 + 63C99E00209178E6E7C1E29D27126272D60442DE4EFA80B26635692E3B40A503 + E3D306506BDFC217EFB51F1A97D3012D670FE2014C760F8DB97D79AE9B01EDCB + 49EF25B5F48A6EB55A930310291F528364656C85F12903B8BD97D69B89591C40 + A96C90B40A38543B101CABD30D1F674CD0353406F2F35C7C00CD0ED415EC0D6C + 572AD4388062E97DA2283F84D6017F2A5A07A0EDE261FA80A26B7DA4EDD211D0 + 1B179F1CF59D1A6A450B4FB203DB35ED43D05E91451F5050DF4B94C2A3010056 + C437074055998D0FC0EA40D200584103F06B7BC8EDAA1CF40E889AFBA143CCC3 + 034C7C75522B3C526AE47D38805C712751569F804F46976F5FDA3D42ADE8F263 + BB02DB554D77A1B336171F801534C0F12B1DA443920F5386C54B48D6A3A156B4 + 2087BD0468BC03DD57F938805BD579306342EE40B200B176407BAF05151E29CF + 34032CC6BFD32A093FEEA7501E2F7BF9018AEA53DEDF81C50EC87B1FC7345970 + 0744AAC1B0CFEB4E7318FBD18CD994B6396CCCE487D7D101628DBF030B858516 + E22FC67FF0E0ED5094FFBBD18C49015200DA804416F9FE09405C95FFCABBD17E + C6414213EB13269A310C40A22B34DB333824F40CFDEECCD1EA520A9002D00424 + BAC8F7A45BFAC7E2920248648969079BCB384868E27917FADB183440B2B23201 + FFDB22DF4F1C3FD6CE46CC3AE70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_32_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003184944415478DAEDD95D4853 + 611807F06711451074DB4D17DE7551204141572EFA664A250AAE0FB5652A8A91 + 65D96C4E9C9218C634754D9B7931661286068A52898B205A48DDF5A17D891F69 + D972B36DEE6CF6B6A99BE7EC23DC39EF3331F6BF7ACF7678F7FCF69CF372B657 + 4408016FA4D774445B7616266618C08CAACE00EDD5E74534E6F2D62E62036E2B + 32617AD6B57601A895B382021089A8CC19D5C400AB9DFF0B70B9D948ED268EDB + BA05B225F1B071FD3AD46F2508702B5B4C6562C3C03B305BE7202711178106E8 + 7C310C76A71B1D8106E87F33025607838E080960E685DF0A83C3DFC1E198E320 + 648777C0E64D1BA8223880426D3F51E7EEA702F83CF10BCC3617073131FD1BF2 + 92E2A9224202ECCC9F85E3E2A6C7BC26ADCE3904337606ACB3F620C4F8B415F2 + 93765143700017354F496DDE013F4048E6DD6E98F5CC130A313A6501B9742F7D + 40417D1FA92F3842A50343E366E8337D841F9E6B3F308C730E1A2E1CC503581C + F334E65EC8EBE14930BD1DF55C52CB8FE8369B2D3A0085EE09354872C24E181A + 3383CB73697D1899C201E4AB7B4863A1846A07D8B1395DF075D20286DE41D05C + 4AC407D0EC4065D641FFB844DB8703C8AD7944B445C7D03AE04B716337345D39 + 4E1F9073B393345D3DE1F951BFB87254E98DD48A969F11FBC7E5CDBDD05C9C4C + 1F9055D54174F2143F002BCA3BDDD052928A0FC0EA40D400584103C82ADAC9BD + D234F40E28EABBA05529C5038CFC74522B3C54CA359D388074A59EE8CA4EC3B7 + A5BF166BDA06A8155D74729F7F5C5AF700F415E9F800ACA0014E5D6F25ADAA4C + 18332F5E42EA7623B5A20BD3C4CB80DAFBD076438603B85B960193167E1D484B + 4DA1065E695E19BB4561019176C0F4B0617501DE7FA75B5432DEAB508634D53F + DE16B73DE8FDD12FEF39C78A969EA0732ACF49223A2708C0DEE0D0743C8B08E0 + EB80B7F8C062035F0F778EB7605F812B39E79F00BE1D88016280B50C10B2C9C7 + 5E8568AC303E4460D8A82000AFCA97F2E965D78ABF39F638B0E048BAC40108DD + A1D99D202131400CB096014237F99EB7D5703E24307C56A1889E85846E31ED11 + 270AF1F34A0C102ED1DCE4FB0B6E74D3CEB9363E6A0000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'CalculateSize_33_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000030D4944415478DAEDD95D4853 + 611807F06711451074DB4D17DE7551204141572EFA66934A145C1F6A662A8A91 + 652D6D4E9C82188B65EA9A36F342941186061347252E82C890BAEBC3F5257EA4 + B596DBDAE6CE5C6FF3E3AC9D6DC5DC799FE964FFABF7B0B3F73CBFF39C73D8CE + 2B2084C07C24D7B444537516266718C08CA2A11374F5E70534E69AAF5DB0A600 + B7653960B67BE217805A7940500002019539639A0460A5B3B600975B8DD46EE2 + A4AD5B205F940C1BD7AF433D2B21809BF9422A13770EBE058B6D160AC4B80834 + 40CF731338DD73E80834C0C0EB51B0B91874445800E3E57F2B0C9BBE81CB35CB + 41E41EDE019B376DA08AE0004A35034455B89F0AE0D3E44FB0383C1CC4A4F917 + 14A526534584053899DF0BDBD29647514D5A5F7008669C0CD8ECCE10C484D906 + C5A9BBA82138808BEA27E456D1013F804FBC737360F7CD130E31366D8572C95E + FA80924603692C3942A503231316300C7D80EFBE6B3F388C7B169A2E1CC50358 + 5D5E1A732FE495690A86DE8CF92EA9BF3FD11D0E476C0032ED636A90B4949D30 + 326E018FEFD27A3F3A8D032856F591E65211D50E04C6E1F6C097292B74F60F83 + FA92181F40B303B57907FDE30A8D010750A87C483465C7D03AC046DAAC87962B + C7E9030A6EF49096AB277C7FEA179F1C751D466A45979F11FAC7D5ADFDD02A4D + A30FC8ABEB26DAF2743F002BF23B7A68ABC8C0076075206600ACA001726B74E4 + 5E65267A07648DBDD02E97E001467FB8A9151E2ED5EA1E1C4096BC8368AB4EC3 + D7A5578BCAAE416A45979DDCE71F5736DC878E9A2C7C0056D000A7AEB7937645 + 0E8C5B162F2195CEB8ACC9861E34A1C2C3E5A5512FE000EE5665C39435BA0E64 + 66A4AF2E009F0EC8DAFA423EAF3D27E26C47B2CFB6A4ED21FB8C7D7E171E30FF + 76BA4D911BF553285B92E12F2CB810B618F6E081E36014FBDD48F60901042E70 + A8BB9F46D581550388FB0E2400F10A600F129C983C85F82CF2B18048CE5C245D + FAD73EFFED4054952FE5E38BDE9505F05DA1D99D22220940024001C01E2438CB + 7DC244320F07C07791EF599792D709882621003E4B4C7B84E2F8060426968B7C + 7F00D16DD3CE7CB8068F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_34_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003124944415478DAEDD95D4C52 + 611807F087D66A6D6DDD76D385775DD4E6DABAE84A5BDF4357A96CD2879A9938 + 9D2DCB320C71A29BB3D1C85042C3B86038D66CD886D3554E5A5BCBE6EAAE0FE9 + CBA1A4452418DFD21BA89C3807AC80F73D60F9BF7A0FE8739E1FCFE10C783908 + 2108857F5985948DA7C032EB039291B46B41D7768683A356A877CE2A209D0037 + 4425609DF3AF5C00D1CE234204C0E160A9C96A5601A9CEBF05B8D06DC4F626CE + D8BC09CAB999B07EED1AA2AF4A14E05A793696C2DA915760737840904316410C + A07F620297779E38821860F8C50438DC3EE28898005F20F9B7C298E933B8DD1E + 1AA2F4C036D8B8611D56040D50A31C46B28A3D5800EF2DDFC0E6F4D31016EB77 + A8CCCDC48A880970F97E2C1CD775DD4FA8689B603FCCBA7CE098734521A6AC0E + A8CADD810D41039C533C44D72BF752806412989F87B9609D5808F38C1D84FC5D + F801D5F22124AF3E886502E35336181A7D0B5F82D73E333EAF073ACE1E2207B0 + BB03386A2FE4B9691A465F9A8397D4AF8FE84EA7931D8048F5001B242F6B3B8C + 4FDAC01FBCB4DE4CCC900154C90650670D17EB0422E3F4FAE1E3B41DB48363A0 + 389F431E8073022D65FBA875BD72880CA0427A0F296B0F139B4038759D06E8BA + 78043F4070558FBA2E1D0D7EA95FBC73B46A8CD89A169ECCA6D64DDD83D05D97 + 871F50D6DA8754C2020A402AE29B06E8A9E79107909A006B00522106286DD6A1 + DB0D85C4272092F7835ACC270798F8EAC5D678AC3429F4640045620D52359E80 + 4F4B3F2D4A7B47B0355D7B6C37B56E68BF039AE622F28078C3CBCFC706FEDB3C + 331A3814E0F81535524B4A60D2B67809C974C6B88A8DDEED483DE05663314CDB + 139B4021AF805A8B7A06A29E6F39CDA51D6FC9D81AF537E60FAF69C77FAAF35B + 40A213089D94D96CB8E17083916B66C3E1FF5DAE4EE4E33440E8D7E91E4969C2 + 77A1623E2FF580C80D0E45DFA3953781647668D26E02FF2D207C126698CDE0B8 + 53B13A81C8C7979B40BC538A0224B3C9971680843A5FCABBA7FDA90524BB43B3 + 338B8B5601E900089F8499443E0BC57517C209602B3440B29B7C8F7BA56CF71F + 0D58899B7C3F018F68D3CE3BCE009C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_35_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002F74944415478DAEDD95B4C52 + 711C07F01FADD5DADA7AEDA507DF7AA8CDB5F5D0936EDD87AE52D9645D343275 + 3A5B76238C60929BB3D9A85002827C70361E6CDA8693554E7A69D15CBD75916E + 0C252C2281B843FF00850E179B1CFE7F10C6F78573DBFFFC3FE7F73F6787F367 + 20842012F6552592094F8379D10F2423BA3302EABEB30C1C6D45FACE28014A00 + 8C80BBFC46B03A03850B20DA734A8800180C2C6DE6342540BE535C808B0A1DB6 + 9BB86CEB16686696C3C6F5EB885E9514C0ADE64A2C0D8F4CBF039BC30B2D5564 + 11C400632F0CE0F60589238801A6DE18C1E1F11347A405F843D9DF0A3386EFE0 + F17813109C833B60F3A60D581109804ED91412B7EEC502F86CFE053657200161 + B6FE86B6EA72AC88B400B7FF4F749D2B7F42ABD1BE9603B0E8F683C3E94E41CC + 5B1DD05EBD0B1B2201705EFA0CDD6EDB17076493503008CE703BE910A6053BF0 + D87BF0033A245A24E93884A502B3F336D0EA3FC28FF0D84F8EDFE785817387C9 + 01EC9E108EB6A3796DB080FEAD293CA4FEBDA2BB5CAEDC00F8CAA7D82035153B + 6176CE0681F0D0FA605C200368174FA0C14E26D60A50E3F205E0ABC50E239333 + 20BD50451E80B3023D4DFBE3CB5D322D19406BFF6324BB7484580562E10E6A40 + 7EF9287E40CBCD3124BF722CFCA77EE9C9D13BACC3D669DEC9CAF872B7621214 + DC1AFC80A6DE51A4E4D5C501A422B8A70155178B3C805405720620156200CE0D + 357A70BD9E7805F892711812B0C9018C3F7DD83A9E2EDDD2313280538261A414 + 9E806FCB9F16FB1F4E67D498FED1005178BABCD269182B02320DABB636BF80E3 + D786D090A811E66C4B4348ACD665D418B5027CD544CAFE9E33CC84751CC7A400 + EE0B1BC062A757817A565DF4775BD976307D799FB29FBA7DA563221D8E757035 + C7FC1740B702790344BE4EAB441CDA4FA106362BFF00EA048774F479E155209B + 199A355701BA80D8499243E729144124878ACA6905567375A9DBA9C7E7B40279 + 056433C9B72600B47ABE9C4F2FC7F30BC87686667705131505207692E4107F17 + C209C8558A0B50A8937C7F010512D0CE935FE2C00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_36_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002FB4944415478DA63FCFFFF3F + 03084456CCF93FA33E91E1D9875F60FEB4350719A805B242ECE1ECA6894B1956 + 74A63252C35C90DB197179805660D403A31E18CC1E985493C0F0E6F3EFA1EB01 + 9ABA1C09D0C4038C8C543193AE60D403030D8697078A671DA05A265694E06748 + F33660606761A269A86078A037CD812A062FDD7F9DE1DDA71F0CE93EB4F504CD + 3CB0FED86D866F3FFFD0DC1334F3C0DEF30F193E7DFF45734F60F5C0AFBF9467 + 8533B75F317CFFFE03C51349EE3A0C3C9C6C54F5048A070A67ECFDDF9FE14C15 + 0FDC7BF69EE1DDD7DF289E78F6E60B4396AF01553D81D503DF7EFD03F3CB67EE + 22CBD0CE7437860FDF7E317CFAFC0DC3134FDF7C62C8F635A29A27503C50306D + CFFF09592E700F5002FEFEF9C3F019680E364F3C7EF991A132D292FA1EC89DBC + E3FFE45C0FAAC4C0ADA7EF18769CBCC3F01A98F6D1C1AF9F3F18A6E479D2CE03 + 1FBFFFA586D96070EEF60B8693D71E039314A289FEF5EB57FA78A066CE6EAA79 + 24C85E97E1D693770CBF8149EBE6C397B4F14076FFD6FF530BBDA91A03C8E0EB + CFDF0C0F5E7C6458BAFD0CC3B4221FDA7B809A31D092E20A6757CDD8411B0F64 + F46CFC3FA3C49F66310003E553B730CC2C0DA0BE07D2BBD6FF9F591608ECD443 + 4A8EF6C507A8E6E8CA580738BB71D6768659E541D4F7404AFB9AFF732A43E01E + A015A89BBE85616E5528ED3D40AB18A09B07680568E681A4E615FFE7D546D03C + 066A266F60985F17493B0F3C7CFB932CC3428383A9E66162C1A9035B18E11E88 + AB5BFC7F4E7D0CC373E8D062CFB2FD24197672ED94C1E5015201720CC82A6A60 + C83FBE7F03854F8C9A9AB95B31D4B4247B63F74074F5FCFFF39B12189EBC8324 + A1FE150748F2002C06400E437708BA382E352007C31C488C1A0C0FCCAE8F6778 + F191BC1888080D195C1E187231001A9D9EDB94447629141F193AF01EA064926F + 50C400253334B0188059820E904B0F62D5102AA968E201E410C21572B8D42087 + 3A31E68C7A60D079809249BE41E101B25C0E05774F6C18580F503A43636AEF0D + 0F80012985A8E9017A81E1E581A10A003A61D2CE992D7C680000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_37_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002EE4944415478DA63FCFFFF3F + 03084456CCF93FB72989E1E1DB9F0CB4044D139732ACE84C65A4865920B73322 + 7B60467D22C3B30FBFC0FC696B0E52CDD15921F6F4F700ADC0A807463D30983D + 30A92681E1CDE7DF43D70334753912A089071819A962265DC1A807061A0C2F0F + 14CF3A40B54CAC28C1CF90E66DC0C0CEC244D350C1F0406F9A03550C5EBAFF3A + C3BB4F3F18D27D68EB099A7960FDB1DB0CDF7EFEA1B92768E681BDE71F327CFA + FE8BE69EC0EA815F7F29CF0A676EBF62F8FEFD078A2792DC75187838D9A8EA09 + 140F14CED8FBBF3FC3992A1EB8F7EC3DC3BBAFBF513CF1ECCD17862C5F03AA7A + 02AB07BEFDFA07E697CFDC4596A19DE96E0C1FBEFD62F8F4F91B86279EBEF9C4 + 90ED6B44354FA078A060DA9EFF13B25CE01EA004FCFDF387E133D01C6C9E78FC + F2234365A425F53D903B79C7FFC9B91E5489815B4FDF31EC387987E13530EDA3 + 835F3F7F304CC9F3A49D073E7EFF4B0DB3C1E0DCED170C27AF3D0626294413FD + EBD7AFF4F140CD9CDD54F34890BD2EC3AD27EF187E0393D6CD872F69E381ECFE + ADFFA7167A53350690C1D79FBF191EBCF8C8B074FB198669453EB4F7003563A0 + 25C515CEAE9AB183361EC8E8D9F87F46893FCD620006CAA76E6198591A407D0F + A477ADFF3FB32C10D8A987941CED8B0F50CDD195B10E7076E3ACED0CB3CA83A8 + EF8194F635FFE75486C03D402B50377D0BC3DCAA50DA7B80563140370FD00AD0 + CC0349CD2BFECFAB8D203B064EAE9D42538F6303A70E6C61C4F000B9C3EBA1C1 + C103EB81B8BAC5FFE7D4C7303C870E2DF62CDB4F9261C83120ABA88121FFF8FE + 0D147ECDDCAD186A5A92BD495283D703A402580C802C457708BA38316A408180 + EE697435281E88AE9EFF7F7E5302C393779024D4BFE200593130A01E985D1FCF + F0E223793110111A32B83C30E46280D249BEF8C8D081F70025937CC8A510354A + 189827D001B2A7F07A809631802B7491C5893167D403A31EA0B6072899E41B14 + 1E20CBE55070F7C406144BD00139A510496D214A67684CEDBDE936CB393C3D30 + 540100D824D8CE14DBE1690000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_38_08' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002EE4944415478DA63FCFFFF3F + 03084456CCF93FB72989E1E1DB9F0CB4044D139732ACE84C65A4865920B73322 + 7B60467D22C3B30FBFC0FC696B0E52CDD15921F6F4F700ADC0A807463D30983D + 30A92681E1CDE7DF43D70334753912A089071819A962265DC1A807061A0C2F0F + 14CF3A40B54CAC28C1CF90E66DC0C0CEC244D350C1F0406F9A03550C5EBAFF3A + C3BB4F3F18D27D68EB099A7960FDB1DB0CDF7EFEA1B92768E681BDE71F327CFA + FE8BE69EC0EA815F7F29CF0A676EBF62F8FEFD078A2792DC75187838D9A8EA09 + 140F14CED8FBBF3FC3992A1EB8F7EC3DC3BBAFBF513CF1ECCD17862C5F03AA7A + 02AB07BEFDFA07E697CFDC4596A19DE96E0C1FBEFD62F8F4F91B86279EBEF9C4 + 90ED6B44354FA078A060DA9EFF13B25CE01EA004FCFDF387E133D01C6C9E78FC + F2234365A425F53D903B79C7FFC9B91E5489815B4FDF31EC387987E13530EDA3 + 835F3F7F304CC9F3A49D073E7EFF4B0DB3C1E0DCED170C27AF3D0626294413FD + EBD7AFF4F140CD9CDD54F34890BD2EC3AD27EF187E0393D6CD872F69E381ECFE + ADFFA7167A53350690C1D79FBF191EBCF8C8B074FB198669453EB4F7003563A0 + 25C515CEAE9AB183361EC8E8D9F87F46893FCD620006CAA76E6198591A407D0F + A477ADFF3FB32C10D8A987941CED8B0F50CDD195B10E7076E3ACED0CB3CA83A8 + EF8194F635FFE75486C03D402B50377D0BC3DCAA50DA7B80563140370FD00AD0 + CC0349CD2BFECFAB8D203B064EAE9D42538F6303A70E6C61C4F000B9C3EBA1C1 + C103EB81B8BAC5FFE7D4C7303C870E2DF62CDB4F9261C83120ABA88121FFF8FE + 0D147ECDDCAD186A5A92BD495283D703A402580C802C457708BA38316A408180 + EE697435281E88AE9EFF7F7E5302C393779024D4BFE200593130A01E985D1FCF + F0E223793110111A32B83C30E46280D249BEF8C8D081F70025937CC8A510354A + 189827D001B2A7F07A809631802B7491C5893167D403A31EA0B6072899E41B14 + 1E20CBE55070F7C406144BD00139A510496D214A67684CEDBDE936CB393C3D30 + 540100D824D8CE14DBE1690000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A54944415478DAD5D77D6C13 + 751807F06FE9E660C80ABE8CA0A04B70194EE3120DCA326308214A94F8428CCA + 4CC429B0D29030854870CC49182E532735CC6D6E4B26BA307C0371D0208E178D + CE891A449D8ED5EE05BA6EE0D6AE6B69D76B7B675772A52F77BDDF5DEF1AF6FD + AB77D7FC7ECFA74FEFFA54C5300CA67254720136379C9265A1ACB91A143F9687 + EB52A6A9920EA85EBF34E1755A4F7563C4EE26465C7380831D464C507E62C435 + 0738FEFB798CBB3CC408D901948F4E689D33A64B70BAA908C44B2BEEC6CCB454 + 4E846C8057EB4F30EF6997250C300D8D058AA72210965127B42BF33811B2035C + D415C06B754745AFF1F686151877FB601B77C620CCFFD9A17BFCDE18846C8092 + DA7646AF5B1E02488DCFE785CBABE244F45A6C282DCC5706B0F17D0353B3E9D1 + 843B702E50A4A1A30756A727E6BAC7ED42600F650136974F96F5CE182FE2A7AE + F3704C5C5DCFE970240F50D6784C9675572DCD8371D00A9AA6D1651A540EA0DB + 7D98A97D65A56C1D088FC74B6360D88ABD865F11D8233900B93AB073DDC3A1D7 + A51F1E550EA07DF71053BFE509453AC0665BED1104F6880F903A553A1C36346C + 7E0AC3762A785CF151BB2C456F7F7179E8F51B4D4726F71006489969D6567E81 + A66D4F87004A647BEDD7937B2407C076C0E7F5E2DB6E1B686AB6AC9874CD30BA + F668558A77C0E9A1F1C8EBFBB128FB21DC72EBFCD0F9C08419B3865A1D39EAA4 + AAA7812F07BE3A84BE8F9FE407881DCA8A2B3F4573D96ACE7BC0E6B1A1B3C72B + 2B82172075AA640103A31ECEEB7F5EE84349CD69E4643F280B42102076A619B7 + 5AD154568821BB3778FC4ECBF198F7C8D9095E80D4A952BB6B5F04802F727582 + 172075AAB45DBA88C6F235B08C5DB907F4AD27F8DF2B43270401627F5137EEFA + 240220941F7BFEC29B0D662C7EA0001A8D46348218403AD388E900E5F3E0A4D1 + 82B93714E0CEDCDC98EB2488B6B6366E80D4A972C38E66D49517051EA3F1EF81 + 3197136BF55F62CEAC25C8CE59143C97C2F19411421003483B3062198C007CF0 + D9C9B89F7CD6C26CA4A6A843D7C422780152A74AA10E847FF293C5B3918AE005 + ACAF3EC848992AA33B40527C220883E130372030D33052A6CA92B7F67202848A + 978A200688E9C09EB2228C38AE02D8E267A5DF8FF9B7DF81E969EAB86B4423EC + 763BEF2356910E8487821767C7FCB8797641B07836A408E3B96E0C9AFB917BD7 + 3D9C3F76BC80A29DAD0CDF54491AF66973A3263FA2785244BFC9089BA313BB8B + F3A1D39FE51C3B04017C53A550EC6E2756577D8E993316E3B62CFEEF3C1F822D + FEBBCA42DC747D86EAB7FE5EE6D98A1F6210EDC70CDC8017CA5B18A1A9325EBE + F9A70F73329660DE828571FF907021A28B67CF7321880162B36C6B2B3233EF43 + E6BC05C16352045FF17C085EC0F3A5CD0CE94CC31576D214831836F7C62D9E0B + F177D71F640029E9B6F463534D2711C23CF02F1CAED382C587239EA9F81EEA14 + 3F7AEA5F96BF03623A21B67836973D5EC6EFA791919E160B786E6B2343325592 + 7562005BEAB83B21B5F8E80802B8A64A31E1EAC4D005132EBB7F49B87822801C + 09EF84DF4761D4DE819FABD7245C7CD200E188E9332690934EE340952EE1E293 + 0A08CF0E7D0BF657AD530E103D554E39806295874531C054CBFF8F7554DD6513 + D29A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000056D4944415478DAD5D87D6C13 + 751807F06FD9C646E7286880A0A024B880685CA241418C218418941781083848 + C4296EA318B79501E1654CC2023AE82883BDC02028215970E2986593970D5071 + 0E2441215360EE0DCA36066BD7F7F6FA72F6252D6DEF6EBDBB5E1778FE69EFAE + BD3D9FFB76BF7B5A11499278924B140A108944BC4E243B7041902B31618C0419 + 7353101F1713B61177EF8202E4E9332306545EBC89875A332BC46309A86E6C81 + 8570B0423C968086BFEE4067B2B242440540D89D1101AEB5F6C2602682109FCE + 79054F250CA534262820A7AC812CCA9C1531A0B5BBDFD53C1184E8EA3320735E + 0A0511158089F002D6979DE67C8EC2D573A033DBA1D1192808D5032DA40B5E0B + 42080AC82A39472AA4B3FD00BE65B7DB60B28968116D5D1A6C59F15674006B14 + B5E4FEACF7234EE096ABC9BAC6DB501BAC94E356B30925D973A30BD098ECBCAF + 7E605D6BB98F3F9AEF406F79743E835E3F7880BC8AB3824016CF4C41CB3D359C + 4E279A5BEF450FB0BA484996E6CC132C81C0B2DA9CE8EC51E3BBBAAB2893CD1F + 1C8050096CFFFC5DFFF3CD074E470F90B1EB24599EFB415412F0D5C6D25A1C58 + B77060C0DA8317794D95469D1685D239E83578DFAEA83C2F48D35B3E99ED7FBE + F5502D2A72178707F0996964253FA368CD7B9E04DC376393D5E1D91F1FCB2F51 + 5A4CE94F38BC69497401BD7AEF47E8EBA3E73C8FEE1BD099E6877012230483B8 + 4B2CE941F3BE4C91E0801E2DE1D9B6DABDE735594D98B7B5069393DFC1B3CF8D + F3BF7E68EC10CA39624286CEB898218C7FEFC79335683FBA9019C07528DBB4AF + 06BB7316F901859597BC071C56DC37AAD174DB26288211202B3FCF6BAAFC52A1 + 847B150A4DC0E6F03EDEECEA40F6FE2B9894FCB62088B000AE338D7B15DA9DB5 + C8B50A9931323111BB8E378274065C04819360046497D6F39A2A65C54A1467CF + 47B7D64639E64BC15D37EE76605D59E4493002BED85BC76BAAD4A9D528942DF5 + 8CC1627122F656FD0EC26AA17DADC6AA893889B000AE77D44D8A2AC87397E181 + 3E38017F9276B37F9FC595C875553BBE3AA8C2D437674022917046B006B09D69 + 34BDF7215FBF02DD1ABD67FB70CDE5A0E343E313FC8910762B2EB47461CCD333 + F0D294299473B14128954A7A8074CF295E53A53B811DD94BD06718F87D0F5C33 + FD2AC5098C4C9A86E449933DFB626956997008D600A11290240D83D96C81F246 + 9BE7CA4F98988CB8D818FF71AE084640E6EE1A5E53A54C5E85A2B54B5CF7011B + EDF17E93C17FE5DDCDFB8A2F8211902EAF260FAE7D74472DF8B69E75023B64CB + A1D61B28C7744602D2F21A4AF39120EAEA4ED10356EDFC813CB4F1433F806D6D + 2C3E419B00D3958F14C11AC025816D59A9D09B8C942B9F247E03E35E781109F1 + 31039E2314A1D56A1997D8A8241058A4D38CDFBA8C18356286A7795FB145B4DC + BA897BAA0E4C79F955DA9B1D23206D7B2579242F95730281E55BE79F914C0F6A + 9E2DA2A3B5051A7D13F6644C8754F137EDD81116D0D967059FD29A0D48FDA60A + 89C3A6E2F909CC9F792684AFF95F762EC7A82489E86A7B2BB9ACE01205517FB6 + 8E1EF071FE31F250DE72FF50B6EB580327C0997FDB3172F8348C1D3F71C02F24 + 7488D0E67DFBE910AC015C6BD6864A8C1EFD3A468F1DEFD9668B606A9E09C108 + 58B1F9085991BF125DFDDEFF01AEBF2EF8264D2E881E55DB80CDD321FE69BECE + 0EC0A7DCDFBEB2F637B142A83AFF732DBD57C2361F88585AF02B62621DB85DFE + 99F0097049826BF3BE325808D2E17062B8389E0AF868430559969FC638D3704B + A213B965F449F06D3EB0687F170A05947C7F2122045D12DD775B6134FF1951F3 + AC01425460120E3B813E6D232ECB5746D4FCA002021109C32C982476A2BA704D + C4BF390E2A20B0B6298EE178617AF400FBF2D2F050FF0403A2D67940450DF0A4 + D5FF5875C0DD635D97B50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000058C4944415478DAD5D87D4C13 + 771807F06F05DF50ECD826CE4DA7892338B6CC648B9BCE6531861882AF33EE45 + 4D7438DEC4252AE2D4013227C4A9A02CCA3B0EB799B0E9445DA501862F7B63CC + B9B9B9E0900E058788BCD5B6D75EAF6FB7D2A6A52F77F4EE7A25FAFC537AD7FC + FA7C7EDFF6EE29129AA6F13097C413209148042D945A7251949D983E498AA445 + B3307A6490CF46067A1715909738DF6F40E5A566F4AA484E88071270BA4101BD + C1CC09F14002CEFF791B6A1DC509111080C164F10B70B5B51B04697043AC8F79 + 1EE3C78CF26A4C54C096A2F3F4C1E4057E035AEFDEB7366F704374F611485E3C + CB0B111080CE60077C5054C37B8DFD1B62A0264D50AA092F44478F0A294B5F74 + 43880AD854F01D9D9F12ED04082D93C9089D51C288B8D9A944C69A570303D898 + 5F4D1FD914EB770237AC4DCA1B5AD04F505EE729528782CD8B020B50EA4C8277 + DFB5AE2AEEE197A6DBD0E807D723349AE1036496D5890259317F161477FA61B1 + 58D0D47A2770800D076574E196C5A225E05A94D182F6AE7E7C2EBF82A2D425C3 + 03102B813D090B9D7FA797D4040E9074E00C5D9CB62C2009386A6761354AB62D + 1F1AB0B5F492A0A992D412D8B57EA1EDF2375005558DA2349DF16EB4F3EF5DE5 + D5284B5BE11B2064A6C9AEA847465CB433813EC204A38944D8B871A2406C98C2 + 6F71F4C337870790FBD58FD09B24B6646A9B7A61313C221A64A042A45D683A9C + 2C111DD0A532D89E1394FD86A6D169B1325B869911AFE3C9A7A6385F3F2A7884 + D71A411E43E7C8A011ACEF5775E62C6E7DB19C1DC07728DB77AC0E99F1314EC0 + E1533F3BCF7511DDB8748D1415C10A482DBE2068AACCA9A8C3EE84410065A261 + 34DBD71E786CEE6CC7B6A2CB888C784D14844F00DF9946AB5621232116BD1A33 + A6858FC7D1EADF61A60DA0A8C18D10330956C0E6C27A4153654EB91C5989B1E8 + D79A9C093876DFF948EBD1D4D1861DA57FFB9D042BE0FD4FE582A64A25A5C4C7 + 6B17DB7E413DF178184ACF368024F5D68F22CDF8DAC616A35F49F804F0BDA3E6 + 1EAB417A7C2C7A3446B7E3031BA12648B76366EB60A6E869C347A51D98FDCA3C + 48A552DE08CE00AE338DBABF1F3B931641ADB1CFF15FD6FCE1765E1A3A16A4C1 + FE5E8456858B8A4E4C7A741E9E8D8AF25A8B0B4226933103520E9D1334557E52 + 26C38E8425B63BF050D5639DE9E3F34F212C740E222267DA8E05335C657C2138 + 03B826A0ECBE878CE465E856DB1338597FD5EDFCE48961D0E9F53871F9BA6DE7 + A7CF88C0C8E020E779BE08564072EE594153654E890CE949EC09A80835D61EAA + B2EDFC40F38E128A600524E69DA64BB7BEE1BC21651FAB1794806BE9F414D2AC + 5F72CFE6FD41C8E5E79801F17BBFA1CB77AE7402B856EE67D58C09B0EDBCBF08 + CE003E09A4252C855A3B0877EC7C68C8CB9832ED198C191D34E41A9E08954AC5 + 7A890D4802AEA5B750A855F4E131E95C5BF38EE28A50DC68C61DEB5D3BEAB917 + 186F76AC80B83D957445E62ADE09B896C144D9AEF39ECD7345B4B52AA0D434E2 + 50D25CA4E4FFC53876F804B4F75110522A92C0AA7D27316EEC6C3C3D9DFD33CF + 867034FFFDDED598182A955CB9D54ABF9DFD9317A2BE4ECE0C589B759C2ECF5C + 8DBB2AFB4870E0F8795E80DA7F6E216CC21C4C9E3A63C81F244C08CFE61DC799 + 109C017C6BC1F64A8487BF84F0C9536DCFB922D89A6743B002D6A457D06559EB + D079DFFE1DC8AFBCC00BE09834F920BA3A6E0ED93C13E27AD3356E0021D5DCD9 + 864D471A39213ADAFFB5FE6EBEECB37957C45BD93F2028D88C96E2F7C44F804F + 127C9B7714A137D066B3051342467B03DED95E461765C5592FA3C2BE03EE49B4 + 23AD883909A1CDBB16E3FF853C0105272EFA85604AE2EE7FADD092BFF9D53C67 + 8018E59A84D964409FAA01BFE6ADF3ABF96105B822C68CD52332C482D3FB37FA + D5FCB0035C6B77FE717CBD3F317080C39971E8D53CC4808075EE5201033C6CF5 + 3F38ADD1DD53A2F58A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005824944415478DAD5D80B5014 + 751C07F0EF0988527851230EA5C58C311835395363F9CA1C721A27ADCC54129A + 4C2B45C450B41C53A2D2C9494571782998963221A1F9404F32140B07294DD3C2 + 179D823C03EE8E7BEF3DB7BD3BEFBCC72EB7BBB7C7E87786B96377597E9FFDDD + 7FF707229224713F47E40D108944BC4E94B9A346902B113B4C8C45D346233C2C + C46F21B6DA0505E42C9C1C30A0ECF435F428F5AC10F724E0605D2308A38515E2 + 9E049CFCEB36543A032B44500046B33520C0456917347AA30762C1D467F0E0A0 + 813E85090A585E7492DC929A183040DAD14B156FF440B4CB34489D3EDA071114 + 80CEE8007C5A54C5F91C1B174F854A6F8642A5F141B4762B91F6C6731E084101 + 1905BF90B969535C00BE319B4DD09944B4889BED0AAC4D191F1CC092DC63647E + C66B0177E03A55A4A4EE06E41A83CF7E835E878265D3820B50E8CCBCAFBE7B2E + 36FE87B30DB7A126EE9E4FA356F71F20ABE4842090999347A3B14D0EABD58A06 + 695BF0008BB7549285CBA70BD601F7184C563477CAF1BDE43C8A325FEF1F8050 + 1D58F7D1ABAEF76B7654050FB068D32172FBCA3783D2016756171EC38E4F66F4 + 0D58517C9AD754A9D76AB074D678FBADCF96BD551704297AEDFB535CEF3FDF79 + 0C252B67FA07F09969F20F9C45FADBE35C1DE894A9405848C444450A02B1630A + 8FE0DBCF66F70F60F3BE5AFBAB52ADC7F1BFBB60353E2418C4960871271AF252 + 458201B6959F4146D2C4BB1DE855DB5F75840973BE966054DC243CFAD870D7F1 + 034307F89C23C46BE80C0B19C0F8FB7E3A7418B7F6CC6006701DCAF22A6AB162 + EECBE8D63800C547CEDD0110E835C851F5A75A5004232073FB295E53A513D0A5 + 76006C43992D26B31EA0D6C285962664EFFA07F171130541F805709D69089D0E + 8B9326519F791312628762EF898BF6ED469335289D60042C2BACE63555161DA8 + C5D2D92F41AEBDFB1C309849982C8E2F900435515A71A5BD59904E3002D2B749 + 784D955A9512E929AFB83AB0E7F8796A2113301A089F63150605EA6F9802EA84 + 5F00D7276A41F96964A624A29B02B847A7D3A24BE5391A5BA8F5D5A2EEC017C5 + AD18F3E20488C562CE08D600B6338D4A2EC7C7C989E8D13A3A77B4F6B2C7FE98 + A151F675604BB7A217358DED18F6F0043C9590E0732E3688CACA4A7A40DAD6A3 + BCA6CAFC1FAA919E3C85BAFB58188FB1AD051955FC82FC43888A1C8BB8F851F6 + EDA13477197F08D6002E1D584201147716B17707E2636360D4A9B0ABEEAABDF8 + D89171080B0D71EDE78A6004A46E3ECC6BAA747640A6A1FF3935B516DECDA970 + 15EF0C5F04236061CE41B278C55BE8543AA6CAF5DF55F3EA807B947A2DBEDA57 + E3537C200889E4283DE0C30DFBC99DAB67B9006C5352718AB6034C573E50046B + 40201D705EF9C8881730FC892731283CA4CF737823944A25E32D36281D708FCE + 4460FFA5363C221E672FDE19B688C6EBD7D0D6DA8484A79FA57DD83102E6AF2B + 237767CDE5DC01F718CD06FB7DDEBB78B68826692314EA7A6C5D340E69B99768 + C70EBF806699017CA2D46B30F79B0A3C30780C1E8F65FECC33219CC5FFBA2119 + 4323C5A2F3B7A464D2FA333E88EA13127AC07BD9A5E4CEAC6474281D23C1A6D2 + 939C003F5FBD85A82163113362649F7F90D021BC8B776EA743B006704DE2AA32 + 44473F8FE89811F6EFD922988A6742300252D6EC264BB2E7A1BDD7B10672CB4E + 814B9C9326174467EBCD3E8BA7435C69B8CC0EC027D7DA9B90915FCF0AD1DAFC + 2FF5ACF8C36FF1EE8839EB7F4348A80537B67F207C07B874826BF1CE68082369 + B158312422DC17F0CEAA12B2287B3E751BE5B7063C3BD18C9545F49DE05BBC7B + 68FF2FE40D28F8B12620045D273A5AA4D0EACF05543C6B801071EF84C56C844C + 5987DF73E605547CBF02DC11830613888FB0E2E0C6250115DFEF00F77C995B8A + F28D0B8307C8CB9A8F1EF57D0C085AE56E091AE07ECBFFCC02D7DD36E0E1CC00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000058D4944415478DAD5D80B5014 + 751C07F0EF01BE28BDD449D3349C3146C32646F345348DE358A3888F9CB2008D + D052C4667C96638AD4E88C9384D2A8808258A9C3A48DA2C8492A8A8DAFC43235 + 4C3D51303CF001C772C7DDEDDE63DB5BBCF31EBBDCBE8ED1DF0CC3BDE6CFEFB3 + DFDBFFFE16154DD378964BE50B50A95492165ABAEDA4224762505F35E64F8E46 + 974EA1011B71F6AE28206BDE38D980A28AEB78449805219E4AC081B35A5828BB + 20C4530928FFFB2E5A4CA42044500094CD210B70A9FA018C66CA0B3167E2EB78 + BE6B67BFC614052CC92DA737A68E970DA8AE6F669AA7BC10BA462352E3A3FD10 + 410198A836C057B965A2D7D8B060225ACC36E85B8C7E88BA8704D2A68EF04228 + 0A58B4F5189D9D36C10D905A369B1526AB8A13715BA7C7EAA4B7820358985D4A + 6F5914273B811B4C939AB337D16424FDDE27CD266C5D3C39B800BDC926F9E87B + D625ED7D9CABBA0B83E5C97A4683A1E300E9F9471581CC18170DEDBD26381C0E + 5455DF0B1E60C1C6123A6749BC620978166975A0B6A1093F692E2277E9948E01 + 2895C0DACFDF733F5EB5AD2C7880F999C574DEF2694149C0552B734AB1EDCBE9 + ED03966DAF9034559A5B8D488E1B89568B9D7DBEBFE2B2224DAFFE7482FBF19A + 8252E42F9F11182065A6D955F617664F1CE14EA0E601018AB422E2A55E8A4058 + 4CCE21ECF8FAC38E01E41457B2BFEB1FEA71E4EA0338A8171483382B5CDD80AA + CDA92AC5003B349730376EB81BD0D06C60AE9E0E3685C4CC320C8D7C07FD5F1E + E0FE7CE7B010BF35427D86CE4EA121BC7F6F7FF141DCF9793A3F40EC50B6EBE8 + 652FC09E2395303B4240315BA08ED0A1EC4F83A2085EC0D2BC1392A6CA3DC72E + 22E95DE6247E3C4A341A6DB0DACC809D8685F9B9A6AB4546E13F1812F9B62288 + 8000B1338DC56442C2A4D13093368C1C3A00A567AA403109D849535092E0052C + CE392E69AADCA3B980E4F8D1686A7D721D206D34ACCCD177266179BC9E338935 + 8557642378015FFCA0913455BA12708EBE31C322B0AFA20A35F7097682F42D3D + A9C7F99B5659888000B15754E7493B67CA18F686C4B3EAF506DC6F32337BF693 + D72DCCCED4E220F0CDF63A8C1A130BB55A2D1A21182074A6696D21306B4A2C9B + 80B3CA2BB55EEF47F4EF8D66435B1A0FF5CD38A9D5A16FAF58BC1615E5B79610 + 4449490937206DD3614953A53381A449A39804ECED7EAE86992AD3F20EA267F7 + B1881C32947D2D8C63970984100C502A81E191FD4086307754A557D9E6070D8E + 44A7B050F7FB6211BC80D4EF0F4A9A2A771D3A83D953637913683218312B6B9F + BB79574945F002E6651DA0B72F7B1F0D04C53E5FF7E371C109CC8C8B614F50DF + 2298133BB3F8945FF372101ACD616EC067EB7FA50B567EE00608ADBD47CE2121 + 3E1626D23B01BE232F172118202701D791EF1E3E1A03225E45D72EA1EDAEE18B + 200882778B0D4A025E209B0585A76FA1B73A866DDE554211DA1BD771AFAE0651 + C3DEE0BCD8F10252D616D13BD3134427E059948D64F779DFE685226AAAB5D01B + CE63D3FC18A4655FE61C0003026A1B494829C26C44C277FBF05CB751786510FF + 779E0FE16AFED4FA44BCD85DADBA78A79AFE68DD693FC4F1A31A6EC02719BBE9 + 82F444D4136DDFE5CCDDE5A200BFFD7B073D7B8C45BF8183DBBD21E142F836EF + 7A9D0B211820B6C6AF28429F3E6FA24FBF81EC73A108BEE6F910BC80A4553BE9 + FC8C64E89ADBCE81ECA213A200AE49530CA2A1EE76BBCD7321AE555D11069052 + D7753558B4E5BC20445DED2D184C170236EF8998B9EE778486D971336FAEF209 + 8849426CF3AE325A28DA6E77A04778177FC0C72BF2E9DC8C14661B95760E7827 + 518BE5B9DC49486DDEB338FF2FE40BD8BAF7A42C045712F5FF55A3D55C29AB79 + C10025CA3309BB8D422371167F6425CB6ABE43019E88AEDD2C1812EEC0810D0B + 6535DFE100CFFA367B377ED9302F7880CDE929786478860141EBDCA3820678D6 + EA7F8CFBE0DD92E770760000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000059A4944415478DAD5D80B4CD4 + 761C07F0EF098AB2E9CD2D6ADC74232A8121D3A9D1F97E10B31885E9D8535DE6 + 749B222EF1B919A7CC2D9298A9288BCA7B715B48C8E6A6228F811345A3C8D4C5 + F940D19397C3E344E12857EED17B74BDB2BBDD712DD7F65AA2DF8470BD42F97D + EED7FEFB2B2A9AA6F12447D515A052A9241D6843E669593E89B0216AAC5A3016 + 21BD83FC16E2AC5D5640CACAD90103F2CAABF1883009423C9680A3151A9829BB + 20C4630928FBFB1EDA8D164108450094CD1110E04A4D334813E58558312F1A4F + F7EDE35398AC80F5E965F4DE84988001354D6D4CF1941742DB42222176AC0F42 + 118091EA047C915E22FA18BB56CF43BBC9067D3BE983687C4820F18DF15E0859 + 016B0FFE41A726CE7503A4C666B3C2685571226AB57A6C5B3A5519C09AD422FA + C0DAF90177E036536471C51DB492169FFD16931107D72D5016A037DA247FFA9E + B9A279800B55F76030FF7F3CD260E8394052F6095920F1B3C74273BF150E8703 + 5535F79503ACDE5B40A7AD8F95AD039EB1581D68D0B5E2C7E2CB48DF10D73300 + B93AB0E3D3D7DDAFB76696280758B5FB189DB169A1221D70654B5A11323F5FD4 + 3D606356B9A4A9D2B9422C981E05B3C5CA6E975DD2C852F4B68FE6BA5F7F9553 + 84EC4DF1FE0152669AC28A6AC44E8D742FA3D7EB9AD161B6232A6C902C101693 + 761CDF7FF98E328023E7AA113F3DD27D0AE514FD05DA6EC7BD076DF8FD7A331C + D433B2419C0955EB50B53F41251FE04C15E2678D7603EA9B0966E9B33377523B + 56EC2B4564F84C3CFFC230F7CFF709EEE5738CA02E4367EFA05EFC7FEF583EEA + 7E5AC40F103B94159EBFE50538527E9D1909C08C0014B4840EC72BF5B2227801 + 1B324E499A2AF3CFDEC0C299D1E8F8EF1A68216DB0DA4C0CC0018AB9B06F3635 + 2239F7866C08BF00B1338DD968C4A298F13030C3D7BC49A35072F12E6C662328 + 874A914EF002D6A59D943455169DBBC12CA3D1202D9DBFE7BCF55B6C34AC76E6 + CB628499F92E672778019F7D572C69AA643B302B1A060A98336E048ACE57A156 + D7C62EA55DF3907C80CA3BD680107E0162EFA88567AFE1AD9857D90712CF34E9 + 0DA8D7B67A6399D99E0A26F175562326BE360D6AB55A34423040E84CE3ECC0FC + 19D1CC69D3B97DFE6AADD7FE88B0A168EF30B3AF1B9A7438ADD162C8B3D3F072 + 5494CFB184200A0A0AB80189FB0A254D95CE0EC4CE1CC34E8E7C715E13F5CC54 + 9998918F81FD27233C22927D3F986395F187100C10DA818E76027173C6F17620 + 66C2081036127B7EBBCC161F36321CBD8383DCFBC5227801097BF2254D95AE0E + B49BEC9CFB091389C5DF1E7617EF8A54042F6065CA513A6BE39BD01114BB9DFC + C349491DF04C1BF37C7BA0F4824FF181208A8B0BB9019FECFC95CED9F2B61B20 + 34CE65336EC62B3051DE1D683590F820E5306FF1521182018174C0F5C9F70F9D + 84612F8D42DF90A06E8FD115411004EF12AB48073C63341990517ED35DBC2B42 + 119ADBD5B8DF588FA8D163386F76BC80E53BF2E843498B4577C03394CDC2AEF3 + CFA9A778152F14515FA381DE50897DABA62031F52A22C2A7FB20FC021A5A2C90 + 12D76AF354BF8978318CFF9CE743B88A3FB3730906F557AB2ED7D5D0EF259FF3 + 419C3C51CC0DF8707B2E9D93B4044D44E7B3EDEEDC325180D25B751838603286 + 0E1FD9ED030917A26BF1AEF7B91082016213B3390F83074FC0E0A1C3D96DA108 + BEE2F910BC80A55B0FD1D9DB9741DBD6790DA4E69D1205D05BF4ECA42906A16B + ACEDB6782EC4CDAA6BC2005252ADADC7DA039582108D0D7761305EF45BBC27E2 + DDE4B3080AB6E34EC6C7F277404C27C416EF0A69A668BBDD8101A121BE80F737 + 67D3E9DB9733CBA8B46BC0BB130DD894CEDD09A9C57B86F3FF425D01077F391D + 1082AB134DFFD4A0C37429A0E20503E4886727EC360A2D4405FE4C591650F13D + 0AF044F4ED674644A8034777AD09A8F81E0778E69BD45CFCBC6BA57280FD49CB + F1C8F0040314ABDC238A019EB4FC0B4BFEE5DD1E4FDCC50000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'MoveLocal_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005934944415478DAD5D87D5014 + 751807F0EF792848E9694D38969A93124816E64B495883E8344E5A19A3953A93 + D90B22D6F85A8E2959A33316BED128EF3A5AE30C514E6AC8498660A6A4E8E42B + 8A9C272F1D1CA0721CF7BEF7B2DD1EDE71C7ED72FB72CBC8F3D7DE1EEC3D9FFD + EEFEF6B993902489BE5C92EE008944C2EB40AB73CB837226460F9361E9EC5884 + F697066C84EA3DA8801DC909820105A7AA714F6B6285782801872B1430137656 + 88871270F272033A8C165608510084CD21087049D90ABD89F0417C346B3C1E0D + 1BE0D7585001ABB24F923B5312050394EA7667F3840FA2E9BE1E297362FD10A2 + 008C4427E0CBEC12CEC7485F360B1D261B341D7A3F84EAAE16A96F4DF4410415 + B022F34F322375A607C0B76C362B8C56092DE24E93061B17BD220E60794631B9 + 67C51B8213B8E56C525E518336BDC5EF7D8BC988CC95B3C505688C36DE67DFBB + 2E295AF04F550374E6AEE3E975BADE03A4E59F080A242921168AC636381C0E54 + 291BC5032CDB594466AD9A13B404BCCB6275A0BEB90D3FCA2F227BF59BBD0308 + 56029B3F7DDDB3BD21B7443CC0D26D47C89CB56F8B9280BBD6671523F78BB93D + 03D6E49DE23555522B44E2A4676079D0FFF91B2AD8AC84E0A6377E38D3B3FDF5 + DE62E4AF4D0A0CE033D35033CC8C09A33CCBE805E72AA2D39B30397A84608407 + 93F53BF67D35BF7700FB8E5F718E1576D4AA5A71FC5A2B1CC490A041A80A9735 + A36A778A443400F540222C56D79334794F19A2235FC3934F75A53120A49FDF31 + A4DD86CEFED27E8C9FF7DB91A3A8FD692E3380EB50F6F775950BE0BE894B2A6F + C3683439C70240A569C4A133F7828A6004ACCE29E33555528057C78F80E14102 + 6D1D0610563BCC76D295C455553DBE2BB81934444000D79986B059307DD238D7 + 594F4A781E67AF3580309B6021A5A224C108589955CA6BAA2CBB5883C4C9CF3A + 97D1CEFFA39E9E161BE95C4ACD9E243A0C04AAD50D48FF5978128C80CF7E90F3 + 9A2ABD13989F1083E2CA5A5CBFA386C16CF7FBDBBBFA169CABB10A420404707D + A29EBD7CDB9500F585C4BBD41A1D6ED6B581B077ED373957A6F021567C93A7C2 + 9497E32193C938235803D8CE3466A31133E2C6A3FDC11C4F4D8EDEF562E47034 + B79B5DDBF5EA66942B9A30ECB1788C8B89F13B161B445151113D2075D7315E53 + 259540FC84B1AE6B9FA9A87B42A96EC1E7B9720C1D34159151D1AEFD2134AB4C + 20046B009704E22746C36CB5D326307B5A8CF3D23123ADF094ABF9D16322D13F + 44EA799F2B821190B2FD28AFA9B2FCC22D4C9F12C59880C660C0BCAD859EE6DD + C517C10848DE7198CC5BF30E9AB59D93E49603A5AC13888B1D03C2E1FF817AE7 + 993F70FA925FF3421072F9317AC0275B0F917BD7CFF300D856C56505A64D8C82 + 89F05D36B5263D167CFF2B63F37C11AC014212709FF941E12F61C4D36311162A + EDF118DD115AAD9671891525019F336F3460BBFC5F4FF3EE628B50DCAA46A3AA + 0E31CFBD40FBB063042CD95C40EE4F5BC03901EFA29ECAD43AFFB82CCEA779B6 + 883AA5021ADD39EC5A1A87D48C2B888A9CE6870808A8BF6F019F725FF38F0C9C + 8251A399AF792684BBF9BFB62EC4138364928BB54AF2BD2D67FC10A527E4F480 + 0F361D24F7A62D845A6B75BDDE76F02427C01F376B3174F0540C1F39A6C72F24 + 7488EECDBBF7D3215803B856E2BA0244444C42C4F091AED76C114CCD33211801 + 8B36EC27F3372D46537BE73D905150C609A0B1685C93261744B3EA4E8FCDD321 + 6E545D6507E053D54D7558B1E71C2B84AAFE3674C6CA80CD7B23DEDD721AD210 + 3B6A723E0E7E025C92E0DABCBBF46682B4DB1D181C1EEA0F787F5D3E99BD6989 + 7319E5770FF826518FB5D9F449F06DDEBB687F17EA0EC8FCA55C10822E09F57F + 4A184C170435CF1A108CF24EC26E23705F5B81F33B160B6ABE5701DE88B08166 + 44853B70387DB9A0E67B1DE05DDF661C44617AB27880DD694B704FD78701A275 + EE55A201FA5AFD0FCF6BECDDE2188E5E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005844944415478DAD5D87D5014 + 751807F0EF012A527AD90B26A931226196529AA5D994E3388DA59539F6A24E99 + 6682E88C6F94634AD6C88C9386E2C88B808D564E0CE58486121928BD19A9656A + 28701D6FC17120701EF7BEB7B7DBDED19DF7B6DCBE32F2FD6BEFF6D87B3EFBDC + FEF65914344D632047E10F502814820EB431EF8C24672276A41249F312316450 + 78C8429CB54B0AC858354B34A0B0B2069D7A0B27C42D09283EAB8295707042DC + 92808ABF9AD163B67142C80220484A14E0A2BA03460BE1835831F761DC1E3938 + A03049011B722BE83DC9B34503D46D3798E2091F84A6CB88E4F9890108590066 + A217F05E6E19EF63EC5A3D173D1612BA1E6300A2E5BA1E292F4EF141480A5897 + FD039D9932C703101A92B4C36C570445D46B74D8B6F44979006B324FD259EB9E + 17DD815AA6C8D2B375E836DA02F6DB2C6664AF9F272F406726059F7DEF5C54B5 + E3B7EA6618AC378F673418FA0F9056704A12C8C2598950B57683A22854AB5BE5 + 03ACDE5342E76C982F5907BC63B35368D276E3B3D20BC8DDF842FF00A4EAC08E + 779EF56C6FCD2B930F90B4FB187D20F525593AE0CE969C93C87B7741DF804DF9 + 9582A64A07492231EE5E58ED0ED7EBDAE6EB20ED84E8A2B7BD35C7B3FDC1C193 + 28485D181A2064A6F9A3BE0353C7457BEEC415979C330D8967268F158DF06072 + BEC5A7EFBF222FC07D1F282CBF04820A73AD1CDF5DE90045DC2119C49928A516 + D5FB931592012ED46AF058428C0770A5A103569286D96AC3DADC4A4C887F1A31 + F78DF67C7E704458C031C2FD86CE41E161ACDFF7CDB1E368F87C013B80EF5076 + 59ADF501949DAB838DB99ECD660B1A6FB4E3CBD35A4911AC808D074E0B9A2A9D + 80C9CC456CFA1FD0DD63420F7317256C7698AC0ED4B43522E3A84A32444800DF + 9986B4DB9138211666A6E015CF3D823FEB34201C142C16AB2C9D6005ACCF2917 + 34555E54B5E0D1F8D14CB1BD7F4731CBAA9D0E83CE646226494AF24EB002D6EE + 2B15345512A40D93C6C732C51258396F2A7EBDD28CF3755A184CD680CFB6F7B4 + A1AACE2E0A1112C0F78E7AB541E3D301679C9BF5AD9DB8DAD8C9FC9C6E7E8FD1 + 62C3DD23810FF35B30ED8999502A95BC119C015C671AEF0E38D3A4E9F2D93F33 + 719CEBD190A21C50356B7046A5C1C83B67E2C18913038EC505515252121C90B2 + F784A0A9D279D14E7920C63539B2C5C6DC17D46DED48CA2A71151F9F30C1F57E + 4490552614823340AA0EBC31770AF3946545EAE1328C18361DB171F1181411EE + D9CF17C10A48FEE4B8A0A93254079CABD1A29D459EE2DD118A6005ACCA28A6F3 + 37BD0CADBEF74CA61F2E17D401EF58082B8AAAAE05142F06515A7A223860E5CE + A3F4C12D8B3C00AEA96ED062525C8CEBD18FCB99178BE00C10D301E799FFE2E7 + BF7197720646DF3F1E9143C2FB3C863F42AFD7B32EB1B274C03B7AA319694595 + 1816F5B8AB7877B82254B535686D69C4C4872607BDD9B10296EF28A40FA52DE6 + DD01FF6E38D779F799F74F2844A35A059DA10A7B93662025F31212E29F0A4084 + 043475D920247A8B118B3FFE1AB70D9D86B1B1ECBF793684BBF81F772EC13DC3 + 948A0B0D6AFAB5F45F0210E5A74A8303DEDC7E843E98B6046D7ABBEBF5EE2315 + BC00DF5F6BC088E1D3316A4C5C9F0F24C110FEC5BBDF0F86E00CE09BD99B0B11 + 1D3D15D1A3C6B85E7345B015CF8660052CDD7A882ED8BE0C9A1BBDD74066E169 + 5E009D4DE79A34F920B42DF57D161F0C71B5FA32378090D4681AB12EAB8A13A2 + A5E91F18CCE74216EF8D7835FD278447385077E06DE93BC0A7137C8B77C76825 + 6807F3B4373C6A4820E0F5CD0574EEF6E5CC322AEC1AF0ED4413527383774268 + F1DE09FA7F217F40F6576744218275A2ED5F354C96F3A28AE70C9022DE9D7090 + 04BAF467F17BC63251C5F72BC01B1139D48A84280AC5BBD6882ABEDF01DEF928 + F3088A76AD920FB03F6D393A0D0318205BE55E910D30D0F21F1F4DF2DD7E34DD + 240000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000057E4944415478DAD5D87D5014 + 751807F0EF79A048E10926888A3211835113331585D9348E398DA356C6D88B3A + 93D90B2036A14839A6648DCE3869288DBC8A66354C8C65A12217998036665486 + 950301D7F10E77C8CB792FDEFBDDB67BCC5D07B7CBEDDB31FAFCB52F77BF7B3E + FBDCFE7ECFAE842008DCC921190F904824BC06CA2EAD17E54AC446C990BE2A09 + D382A57E13A17217159097B65430A0E2620B86B4265688DB1250794501B3D5C1 + 0A715B026AFFEC86CE6861850808C06A770A025C53DE80C1641D83787DC583B8 + 3B64AA4F62A202B615D7128732960906285537C9E4AD6310FDC30664AC4EF241 + 040460B48E02DE2BAEE13CC681CD2BA033D9A1D1197C10BD835A643EF7F01884 + A880ACC21F89FCCCE51E00DFB0DB6D30DA24B488F67E0D766F782230802DF9D5 + 4441D64AC115682593945F69C388C1E273DE6232A270EBAAC00234463BEFABEF + 1DD71403F8A5A91B7AF3FFE319F4FAC903E4969D170592BA34098ABE11389D4E + 3429FB0207D87CA88A28DAB65AB40A7887C5E644977A045FC8AFA238FBD9C901 + 885581BD6F3DE3D9DE555A133840FAC1D34449CEF301A9803B761655A3F4DD35 + 1303B61FBDC8ABAB24C8FFE8BCD9333CFB3D033761B7590527BDFBB5E59EED0F + 8E55A32C27D53F804F4FA3546B113747E65989CFFFD18921722A5CF1689C6084 + 07537416C7DF7F717200DF5E6E83D16822A74315BEBF7E034EEB4CD1205484CA + D4683A92210918806ACA460C66982D36E47CF63316C53F85B9F3E67B3E3F3568 + 8ACF18D2714D67B0740AE3EF7D77FA0C3ABE5CC30CE0DA94F50CE95D00F74A7C + E97A374C26332CE43DDDDCDF89AFEAD4A2221801D92575BCBA4A0A10734F18DC + 5F538DE8A12357512B5901AA121D837DC83BA5100DE117C0B5A7A156CAD8E808 + D89C1264AE49463BB9F098C90AE8CCCE80548211B0B5E802AFAEB28B9C361746 + CD24131DFD9E148ED1AEF2D62DB293748A5E0946C0DB9FCA7975955405E645CD + 726D5315686CEB4743731F8675269FCF0EE8546868B30942F805705D51FB0634 + 2420DCE7785BCF101AC9CED24856C01DD4CC347F41303E3CDA8BE4C797402693 + 7146B006B0ED69EC361B62E6467AF655839A31E79F4E8E47BB4AEBDA6EEDEC41 + BDA21F51114B707F62A2CF586C10555555F480CCC3E7787595D44D7BEF9C0872 + 1662EE441C0E02CD3D6AA41754B9928F4F58E43A1E4433CBF843B0068855812D + A92918211F13D34AE4080F4B416C5C3C8283A49EF35C118C808C4FCEF0EA2ADD + 15A07A77BAA066A3B5FB4F7A9277075F0423202DAF9238BAFD05A8B5A39DE4BE + CF2FF0AA807750CFB735D75B7C92178290CBCFD103DEDC7F8A38B673AD07C036 + 7AD543584002A8E994CD95178A600D105201EACA9F6D6CC22CD962CC5F781F42 + A649271C633C42ABD5324EB1A257807A66F50EEA7DCE3BC7E5080B7DCC95BC3B + D82214AD2DE8EBED44E2030FD12E768C804D7B2B8813B9EB3857C03BAC768B6B + 9E775FF9F1E10FD1A95440A36FC0E1F4C5C8CCFF0B09F14FFA20FC02BA862DE0 + 135A9301EB3EFE06774D4FC68258E6FF3C13C29DFCA5FDEB313B4C26B9DAA124 + 5EDE77D90771E1BC9C1EF0EA9E72E258EE7AA8B4A34BFFC1F25A4E801FFEE940 + F88C1444C7C44DF8404287189FBCFB381D8235806B2CDB5181C8C84710191DE3 + DA678B604A9E09C108D8B0EB0451B66723FA6F8EDE03F915759C001A8BC6D569 + 7241A87BDB274C9E0ED1DCF4373B009F68211F5CB20A1A58217ABBFE85DEF89B + DFE4BD112FEDFB09D22007DA4ADE10BF025C2AC135797718CC56C2E1706246E8 + 345FC02B3BCA88E23D9BC86994DF3D30B6125DC829A6AF04DFE4BD83F6BDD078 + 40E1D7F58210749550F52871CBF4BBA0E45903C408EF4A38EC560C6BAFE0D7BC + 8D82929F5480372264BA1909A14E541ED82228F9490778C747F9E53879202D70 + 8023B99B30A4BF830101CBDC2B0206B8D3E23FEBDCD5DD90D864C10000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000056C4944415478DAD5D80B4C55 + 751C07F0EF159097704317CED27233865193AD666930E79C6B2E2DCDD9036D2A + 5680D8C207E57C9035D95C1A4A933738AAB131AB098A901988BDC48A465A14EF + 875E9EF2BA0FB8EF7B3AE7B27B3C70CFE19E2793EFC676CFB9F71E7E9FFFEFDC + 737EF7AA0882C04C8E6A3240A552893AD0FEDC6A595662F17C35E2D747C2D7C7 + CB632154EDB202D2E2564B06145F6FC080D6C80BF140024A6E34C364B1F3423C + 9080AABFEE403766E685500460B1392401EA5AFB61305A262076AD7B1A73FC66 + BB15262B605F7615713A618D64406BCF0859BC6502A27BD080840D916E084500 + 639671C087D957041FE3E4EE75D0196D18D619DC109A7B5A24BEF2CC0484AC80 + A4CC1F88F4C4B534406C6C362BC6AC2A56445BF7308E6E7B4119C09EF4722223 + E925C91D68248BACB8D1842183D9ED79B3710C997BD72B0B181EB3895E7D66EA + 9AFB50537F077AD3FDE319F4FAE903A4E45F9505B27975249ABB86E0703850DF + DAA51C60F7E932226BDF06D93AC08CD9EA4067EF10BEACA845F6FE97A7072057 + 078EBFFB22FDF848EE15E500F1A74A899CE48D8A74C0954359E5C8FD60D3D480 + 0379D7454D9504798ECE0BF687C53EFE76FDA80916B34972D14777AEA51F7F54 + 508EFCE4CD9E0162661AEA5A1D1CE04B6F534359FF88091BA3C22523684CD625 + 9C3BFC9A3280419D89EC801FBD4D8DC5547EBDD586EFFEEE87C3F2906C102A01 + EA5ED49F4D50C90E70CD42358D7D183399A123FF0E17D66069D82A3CF2E842FA + F5B3BD67B91DC36BD2D0E9E3358BF3FF5D28BD88F6AF367103840E657AF2B6CF + 04FCFC8F0646B30D7A7214681FE8C2B92B7765457002F6E75C1335550E8DDA30 + 37D01BAEB7750E68C90E58C959C60EBDC188C63E0DB22EB5C986F008103AD350 + 77CA1075204C36158EEF5C450346C8534B894E7002F666558A9A2AA93138D8DF + 9BDEA6A7CAD151453AC10978EFF30A515325B30347DF8A46D3DD0154FED94E7E + B88D6EAFEDD3F5E066935512C22340E81D5547AE70B0BF97DBFEDBEDF750DBD0 + 0593D94AEFA346E5651173F0719E06CB9F8F825AAD168CE00DE03BD3303B4085 + 9ADD99591F1D818E1EADF3715D631BAA9BBB317F6E149E8C88703B161F445959 + 193B20F1CC655153E5906E14738303A77C0D3555D6B574E3FDFC7267F161E14B + 9DFBBD59AE329E10BC017275606FCC1A680D3A6C3F730121412BB07849187CBC + EF9F7242119C8084CF2E8A9A2A5D1DB0DAD99F1F24BF4D6D39719E2EDE15B108 + 4E405C5A099177E055F46A2DCEEDD42F2A45758019AA1BD52D77DC8A9782A8A8 + B8CC0E78E7C4B744C1A12D34806F468D460405063A21CC50F701B695978AE00D + 90D2016AE5BFFFAF1DF3D42BB1F0F127E0E7EB35E5312623B45A2DE72556F60E + 502BCD8C4E6FC6AE8C5204053CE72CDE15BE88E6C60674693A10F1D432D69B1D + 2720F6783151981223B803CC586C66E775DEB5F293E309D1D1DA8C61FD4D9C89 + 5F89C4F45B080F8B76437804740E9A21265AA301319F7E8340FFE5786C31F739 + CF857015FFE389AD783848ADAA6D6F25DE48FDC50D5179B5821DB0FD58115190 + B2153DDAF15BFFA9A22A4100EA9C0F095E81058B964CF985840D31B978D77E36 + 046F80D0AC39588CD0D06711BA6091739B2F82AB782E042760DB914222FFD80E + 748F8C7F06D28BAF09020C9B879D93A61044AFA66DCAE2D910FFD6DFE6071093 + 86EE0E2465DCE485D074B6905F477FF7583C13F17AEA4FF0F2B6A329E76DF93B + 20A413428B77C560B21076BB83FA19C71DF0E6C17C22FB582C791915F71998D8 + 894E2467B377426CF1CCB0FE2E341990F975B524045B277AEEB692A3C71F928A + E70D9023CC4ED86D160C6A6FE0B7B41D928A9F560013E1E76F427880032527F7 + 482A7EDA01CC7C925E84F327E394039C4D89C5807E060314AB9C11C500332DFF + 03ABB6D6DD411778E70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000056C4944415478DAD5D80B4C55 + 751C07F0EF159097704317CED27233865193AD666930E79C6B2E2DCDD9036D2A + 5680D8C207E57C9035D95C1A4A933738AAB131AB098A901988BDC48A465A14EF + 875E9EF2BA0FB8EF7B3AE7B27B3C70CFE19E2793EFC676CFB9F71E7E9FFFEFDC + 737EF7AA0882C04C8E6A3240A552893AD0FEDC6A595662F17C35E2D747C2D7C7 + CB632154EDB202D2E2564B06145F6FC080D6C80BF140024A6E34C364B1F3423C + 9080AABFEE403766E685500460B1392401EA5AFB61305A262076AD7B1A73FC66 + BB15262B605F7615713A618D64406BCF0859BC6502A27BD080840D916E084500 + 639671C087D957041FE3E4EE75D0196D18D619DC109A7B5A24BEF2CC0484AC80 + A4CC1F88F4C4B534406C6C362BC6AC2A56445BF7308E6E7B4119C09EF4722223 + E925C91D68248BACB8D1842183D9ED79B3710C997BD72B0B181EB3895E7D66EA + 9AFB50537F077AD3FDE319F4FAE903A4E45F9505B27975249ABB86E0703850DF + DAA51C60F7E932226BDF06D93AC08CD9EA4067EF10BEACA845F6FE97A7072057 + 078EBFFB22FDF848EE15E500F1A74A899CE48D8A74C0954359E5C8FD60D3D480 + 0379D7454D9504798ECE0BF687C53EFE76FDA80916B34972D14777AEA51F7F54 + 508EFCE4CD9E0162661AEA5A1D1CE04B6F534359FF88091BA3C22523684CD625 + 9C3BFC9A3280419D89EC801FBD4D8DC5547EBDD586EFFEEE87C3F2906C102A01 + EA5ED49F4D50C90E70CD42358D7D183399A123FF0E17D66069D82A3CF2E842FA + F5B3BD67B91DC36BD2D0E9E3358BF3FF5D28BD88F6AF367103840E657AF2B6CF + 04FCFC8F0646B30D7A7214681FE8C2B92B7765457002F6E75C1335550E8DDA30 + 37D01BAEB7750E68C90E58C959C60EBDC188C63E0DB22EB5C986F008103AD350 + 77CA1075204C36158EEF5C450346C8534B894E7002F666558A9A2AA93138D8DF + 9BDEA6A7CAD151453AC10978EFF30A515325B30347DF8A46D3DD0154FED94E7E + B88D6EAFEDD3F5E066935512C22340E81D5547AE70B0BF97DBFEDBEDF750DBD0 + 0593D94AEFA346E5651173F0719E06CB9F8F825AAD168CE00DE03BD3303B4085 + 9ADD99591F1D818E1EADF3715D631BAA9BBB317F6E149E8C88703B161F445959 + 193B20F1CC655153E5906E14738303A77C0D3555D6B574E3FDFC7267F161E14B + 9DFBBD59AE329E10BC017275606FCC1A680D3A6C3F730121412BB07849187CBC + EF9F7242119C8084CF2E8A9A2A5D1DB0DAD99F1F24BF4D6D39719E2EDE15B108 + 4E405C5A099177E055F46A2DCEEDD42F2A45758019AA1BD52D77DC8A9782A8A8 + B8CC0E78E7C4B744C1A12D34806F468D460405063A21CC50F701B695978AE00D + 90D2016AE5BFFFAF1DF3D42BB1F0F127E0E7EB35E5312623B45A2DE72556F60E + 502BCD8C4E6FC6AE8C5204053CE72CDE15BE88E6C60674693A10F1D432D69B1D + 2720F6783151981223B803CC586C66E775DEB5F293E309D1D1DA8C61FD4D9C89 + 5F89C4F45B080F8B76437804740E9A21265AA301319F7E8340FFE5786C31F739 + CF857015FFE389AD783848ADAA6D6F25DE48FDC50D5179B5821DB0FD58115190 + B2153DDAF15BFFA9A22A4100EA9C0F095E81058B964CF985840D31B978D77E36 + 046F80D0AC39588CD0D06711BA6091739B2F82AB782E042760DB914222FFD80E + 748F8C7F06D28BAF09020C9B879D93A61044AFA66DCAE2D910FFD6DFE6071093 + 86EE0E2465DCE485D074B6905F477FF7583C13F17AEA4FF0F2B6A329E76DF93B + 20A413428B77C560B21076BB83FA19C71DF0E6C17C22FB582C791915F71998D8 + 894E2467B377426CF1CCB0FE2E341990F975B524045B277AEEB692A3C71F928A + E70D9023CC4ED86D160C6A6FE0B7B41D928A9F560013E1E76F427880032527F7 + 482A7EDA01CC7C925E84F327E394039C4D89C5807E060314AB9C11C500332DFF + 03ABB6D6DD411778E70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000049E4944415478DAD5D87D6C13 + 751807F06FE9C6C67454348EA0A04B70194EC312C914C418421643041109A8B0 + 449C2FDB18C6C1981264731A661687831AD86B4750B3A4018D0347EBC48DA191 + 399564A2996C2BDD6BD775C8D675EDFA727D39D72EAD5DEF6EBDF6EE1AF6FCD5 + EBB5BF7C3FBFA7BD7B5A11499298CF250A048844A2B016CAAF69E5652712974A + 90BD391531D1E2A041DCD9790594676DE00C905FE9C26D838515E28E0434B4A9 + 60259CAC107724A0E5CF414C9A6DAC10820008878B13A0437D0B260B310BF1C6 + A6C77177EC424A305E0107AA5AC8E3391B3903D42313D3E1895908ED9809395B + 5229084100666206F07E5553C86B94EDDD84498B03FA491305A1F9D780DCAD4F + CC42F00AC8ABF89194E6A6FB00E196C36187D92EA245F46AF528CC785A18C03E + A9823C95F73CE70E744F8754B6F560DC64A39CB759CCA8D8BF595880DEEC087B + F7FDAB43358A5F3B0761B4FEBF9EC9688C1CA048768917C8F60DA9500D8FC3E5 + 72A1533D2C1C60EFF146B2F2C016DE3AE05F36BB0B03BA717CA9BC86AAFC1722 + 03E0AB0347DF7ECEF7F8484D937080EC63E7C9EA821705E980B70E572A50F3DE + B6B901076BAFF0325592D39F59C266E5BC4EE1EBE9BEC71FD629202BD81E1CC0 + D754E9BE8366A4AFE6633F663095DFE1F4073B2303F04E9557AFF7E2FBBF6FC1 + 45DCC31BC45D71121D3A4FE6880403F84F9585F5ED5895F42C1E7870B9EFFCC2 + A80594F7880386CE68F102C6F5BF3D7F017D5F6D6306F03955F68C0EA15631C8 + 2B8211905F7D5990A9926F4450801053E50DED204E370DF1826004ECAF6C1674 + AAE40BC10878E773A5E053A56E6218ED3D764E88A000A1A7CAB43509F8A85683 + B4A7D6432291848C600D1062AAECE8EE45AB4A8BA5F7AEC7A3292994D7B24134 + 3636D203724F5C1474AAECB8A9C5BB3285277C52F22ACFF3513457996008D600 + 3EA7CAF1C9296CFD448E25F16B91B83209D15162DFF950118C809CCF2E083255 + EA268CD8517AD617DE5BE122180159E50D64EDC197A033109EE3922F9A398727 + 1C365CED1FA584E782502A2FD203DE2AFD86AC3BBCC307E05AFAA929DA9DE78A + 600DE0D201F7CEBBAF36F749D661F9C38F2036463CE7EB0311068381F1122B78 + 07BC3B1F1FF7A427BCB7D82254DD5D18D6F423E5B1D5B4373B4640E6513979A6 + 6817A70E04EE7C600543F4AB55D01BDB71227B1D72A5D7919CF40C0511143030 + 66433865B098B0EBD3AF71D7A2343C94C8FC99674278C3FF54BA1BF7C74B44D7 + FAD4E42B25BF5010CD9794F480D78AEBC9BAA2DD1831D83DC7C7EA5B4202FC70 + A30F4B16AFC5B2152BE7FC414287080CEF7D9E0EC11A106A6D3C244742C21A24 + 2C5BE139668B600ACF846004641C3943CA8AF7403B31F31D90CA2F8704D0DBF4 + 9E493314844ED33B67783AC43F9D7FB10384535DDA7EE49D6A6785D00CDC84D1 + FC7BD0F0FE88974B7E8638CA899EEA37F9EF40289D0835BCB74C5682743A5D58 + 1C174305BC7A48465615674E5F46C3FB0ECCEEC4000AAAE83B116E78FFA2FD5F + 28105071AE951382AE1323436A4C59FEE0149E35808FF2EF84D34160CCD086DF + CAF7700A1F51803F22769115C9712E3494EDE3143EE200FFFA585A8FB36559C2 + 014E1665E2B6711E03044BEE578201E65BFD078DE184DDA0774C200000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A64944415478DAD5D87F4C94 + 751C07F0F7752048E2A52E9CA6C5660CA3265BCDD26CCD35D69C9A9AD90F65CB + E80722BA40A49A095193C6A2509CC20147A31A1BB35C68C8E50C045B11A58CD2 + 51C8790206C779C91DC71DF7E3B91F4FDCB93B8FBBE71E9E9F37F9FC75CF3DB7 + 67EFD7F773DFE7F9DC494892C44C2E0915402291B0BE505E759B202B91B85086 + 5D1B5211132D9D368427BBA080B2CCB5BC010DEDBDB865B43242DC9580C60E15 + 6C848B11E2AE04B4FE7903E3163B23842800C2E9E605E856EB60B61253106FAE + 7B0C73626785841214B04FDE4A1ECE7A8E37403D3236199E9882D08C9A91B531 + 3504210AC042DC06BC2F3FCBFA1AA5BBD761DCEA8461DC1C8218FACF88EC4D8F + 4F41080AC8A9F8892CCF4EF303B896D3E980C521A1445CD7185090FEB438803D + E5CDE4F19CF5BC3B707532A4B2A30F7AB33DE4BCDD6A4145EE067101068B93F3 + EA0756B7EA267EEBB90193EDCEF5CC2653E400858A738240B6AE4D856A580FB7 + DB8D1EF5B07880DD879BC8CA7D1B05EB4060D91D6E0C6AF5F85A7909F2BC1722 + 0310AA0387DE79DEFFFA60F5596680FD35ED820C668B17CC417ADA8AC927E93D + 82600E5436A3FABD2DCC00420D66177B3520EC36CED7287823CDFFFAA3DA6628 + F2B7460EE01BCC3C4F524F27F85641E50FF8F2C3972307F00C66BA310B0AEA3B + E126EEE37DBDC08A9369D1732C4B420B106230D39B6DD82B6FC7F2A467B1F881 + 25FE73B3A242F7853468E88C9686DF3BDF9F3A8DFE6FB65003F2AACE0B3A9875 + F5AB5176522528821140C8C14C68042D20B7B24594C14C48042D60EF51A56883 + 99C1368A0B974DBC118C00620D663AB38E378215408CC1ACF54A17BAFE998F95 + 4FAD814C26638DA005641F3923EA60D67D4D837715CD58387F0D1E494909F90C + 134453531373809083997E7C029B3E6DC0BCF855484A5EEE7D3F8AE22E331D82 + 1690F5C569B22A7FB3E01DD08E99B0ADE484377CE2B224444749FDE7D8226801 + 99658D64CDFE17A13512DEE3E2AF5A7887279C76FC3A70D31FDE575C11B480B7 + 4B4E92B507B6F9017CCB30313165E5838B0B42A93CC31CC0A7039E956F5369BC + 1B962A3C57042B00DF958F8F7B124B1E7A18B13152DACF07238C4663D85B2C2D + 20E350035957B89D57077C2BBF40B6DA1BDE574C11AAABBD181E1A40CAA32B28 + 1F768C0083A3767029A3D58CED9F7DE75FF9E09A0E31A056C160EAC4915DAB91 + 5DFE1792939E0941D0025E2FAA276B0B7760C4E8F01E7F5EDFCA7AE5E7CD5D85 + 0713C37FE7C3217CE12F94ECC0FDF132C9A57E35F96AF12F218896734AE60036 + B5FEE33ADC3B7B25162D5D46FB83840A111CDEF73E158216907EB08E5414ED84 + 66ECF61E286F38CF18F0E3151D12129E40C2A2A5DE63A68870E1C3215801D854 + AF660039C73B5921B443D769C35321FEEEB92C4E073C65B01BD0D9E76084181A + BC0693E58F69C307225E29FE19D22817FAAADEA206BCF681829417654CDE46D9 + EF813B9D1844BE9CBE136CC3FBCA6C234897CB8DB97131CC0015DFB67142D075 + 826BF8C00AFBBF90101DA0EBC4C8BF6A8C1A3BF07BD94ECEE123060846B89C04 + 26AC17911CE74663E91ECEE1230A0844C4CEB6A136F7251CAD398513A599E201 + 8E1566E096493840707D525E2F2E40B4E401251A6026D58C07FC0F95F35EDD4A + CB1AB00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004AF4944415478DAEDD87D6C13 + 751807F06FEDC6C66414348EA0A04B70194EC3120D0A620C318B124144441466 + C4A98C314C1863BE009B8B61BA381D2BC1AD7B33A859988071E05883B8173083 + 4D214159AADB6AD98B5B57645BD7B5EBCBADEDB996B4766BAF77D7FBDD84C4E7 + AFBB6B7BF97E7E4FEFEE6925344DE3562E0913402291F03A516659139195889D + 27C3B6D589880897B2067065270A284C5D2918507DB61D83060B27C44D09A8B9 + A08695727042DC9480865F7B316AB671428802A0EC4E4180CB9ABF61B2509310 + 6FAC7A08B32267F805220AD8A568A00FA43D2518A0191899084F4D4268874C48 + 5B93E887100560A66E00DE559CE61DBE60FB2A8C5AECD08F9AFC107DD70D485F + FBF0240451C0CEE21F69797A9217106AD9EDE3308F4B0222AE6AF5C84E7E5C1C + C00E791DFDF9CE670577A06322A4F24227864D36BFD76D16338A33568B0BD09B + ED21AFBE6F5D565F438BAA1746EBBFE733198DD307C8A9384304B27E6522D4FD + C3703A9D5069FAC5036C3F504B97EC5A43AC03BE651B77A247378CAF9497A0C8 + 7C8E1B6077F95922B30D3DB17294CD1AF2E7F76F7DDABBBDAFEC343F00A9D9C6 + 751F4F4E5A32F144BD4DD0B9F694D4A1EC9D75D30BF0CC3617DBB5217522FBF5 + 24EFF6079575A8C85A3FBD00DFD9C6D389502BBBE47B7CB1F7257E00A1A34173 + 7B1FB6CA1BE1A4E6085E0CDF8A92E9A03A9426610464963612996DDA7A07B1F1 + 632516C73D89BBEF59E03D3E23CCFF7A904E193AC3A5CCD7CC77274EA2EBEB75 + EC0012B34D73870AEF97B7213EEE096208564046493DD1D986348215F0F64125 + F1D9466F1DC2B92B46225F27CE00D2B38D66504B04C11B4072B66952B5E148A3 + 4E108215905E744AD4D9E6584B0B8A8EE8B1F4B11590C964BC11BC01A43AE09A + 6D8647C7B0F6A36ACC8D5E86071212FCDEC305515B5B1B1C90F6D949BA34EB79 + E21DD08D18B121FFA83B7C5CFC62F7B1B000771936042B20B5B0862EDFFD0274 + 06CABD9FF765BDE0F094DD86F3DDD7DCE16317C5213C4CEA7D8D2F8215F056FE + B774E59E0D5E80D0D28F8D7957DE15DE53A12278038474C0B5F24D6A2DE6DDB1 + 6252782108A5F2D4F4748069E58522580129FBABE9C3399B0475C0B3F277CA96 + 63C17DF72332421AF4FD5311068381F116CB19D03364432865B098B0E993E388 + 8E7AD41DDE535C11EA8E76F4F77523E1C125011F76AC80D772ABE8CA9CCD1830 + 8CBBF73FAD6A0879E5A7161BA25BA386DED88AA26DCB912EFF2DE000C81BC0B5 + 868D26BC5A781CB7CF5C8A7B6399BFF34C084FF873F99B7157B44C72A94B43BF + 9CD7EC87A83FA30C0E48DE7798AEC8DD02EDC88D6B405EDDC809F0C31F5D983B + 7B19E62F5C14F4074920C4D4F09EE38110BC015CEB99BDDF2026E611C4CC5FE8 + DEE78A600ACF8410AD037A9B1EAD9DE3BC10BABEAB41C30742FCAEBA121CF0CA + 7B15B4223765E236CAEF1A7055BBB607598A564E88BE9E3F6134FFC21ADE17B1 + 31EF2748C31CE82C7D933BA0F858132F04974EF00DEF299395A21D0E27664745 + 88D3012E9D7085BF3E721E3F176EE115DEB782FE2F4402C08418F84B8331CB45 + C447395153B023A4F0D306988A70D82977F8CA8C1771B0FC048E16A48A073894 + 938241A370802F2272A6D51D7E4ED42C7C28AF12174024394B8906B855EA7FC0 + 7F5DFF001AE943DD4AFB4DD60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004B94944415478DAEDD87B4C5B + 751407F06F6D8159610517593637259984893AA266BA39638812B3B8E91EE263 + C3385161C88C630C3573436220A2681D73F2C68C1912325D6413A8CBE4318D63 + E0663667988CDA0D104AF7A0A5B4F4715B7A6D3BDB411FF4771F6523F1FCD57B + 6F1FE7734E7FBF7B5A014DD398C921980A20100888DF28BBA28D974AC4CC9560 + F3AA04848508037EB823775E01D2F444CE80BA63DDB8AA3512216E4A407DBB1C + 266A9C087153025ACEF463D4602642040540596D9C00A71597A137529310AFAF + BC1FE1B342BD92E115B0ADAC85FE22E349CE00C5D0883D796A124239AC47C6EA + 042F44500006EA1AE0BDB2238C932F7A6B25468D566846F55E88812B5A643EF7 + D02404AF80AD253FD1C599496E00DBB05A2D3058043E1117941AEC4A792C3880 + 2DC54DF4575B9FE1DC81F3F62465ED3D50EBCD5ED7CD46034AB2560517A03158 + 59577F629C965FC289AE7EE84CD7DF4FAFD34D1F20B7EA282F90F58909900FAA + 61B3D9D0A5186406D85E798C97F160FE9C70A4242DB1EFE7B7B07ABDD962439F + 4A8DFDB25328CB7E961980AFF1E064B71294D9C4F8B5F9694FBB1FEFAC387263 + 00AEF1C0B19F73E9C48ED22654BCBB76FA0113C703A69DD8F55A92FBF187D54D + A8CA59CF1CC0F778E0E84472E2030813916F124E4CE90FF8FA8317C801D9E5AD + 9CC7031365C183EFD4C14645722A826788252A74EDCD101001B8DC9C3E4E7BCA + 09581CFB04E6DFB9C07D3E54E4BD0E841E436788D0FF5AF9FED0615CFC66EDD4 + 80ACD2665EC6834E851C69D24EC4C53ECE1B8208F0F61E196FE3414D733B1A3B + 8679EB0423005FE3C1C113BFE393BABF7841B002F0311E68CC1A74F458382388 + 0099BB1BE9D26DAB79EB802BCEF42938AF095600BE0634C778D07AEE2C72BEEC + C7D2475740229130461001323E3F4C97E7ACE1BD03AA111D920B0F202A6219EE + 8D8FF7BA4E82686868080C4897D6D395DBD741A5A59CC70535CD9C93A7AC661C + EFBDE44C3E366EB1F39CC8C72E1308410478B3F0205DBD23D90DE01A9AB13177 + E56316C5224424745F638A6005E0D20147E5DBE44ACCBD7D85337957B0454C6B + 073C2BEF196C1032596360406A7E1DBD2F7703A70EF8AB3C57042340DFB0196C + 426BD463C3A7DF2142FC0816DC7D0F668509A77CBE2742ABD5FADD628900AFE6 + D5D2D5B91B31A4B5388F3FAB6D615CF93992E5CEE45D418A909FEFC6E0402FE2 + EF5BE2F366C70A401A6A9D1EAF48AF57DE3302217AEDD3AB46D781DD9B9723B3 + F80F9F776C2240CACE7D7455DE262847AEAD81E2BA56E2CA47CD5E86BB62FC7F + E7FD215CC9FF5CB81177444804A72E2AE8970A7EF542341F95310790C49AFC1A + DC76EB52CC5BB868CA1F24BE109EC9BBCEFB42B0029074E0C73F2F233AFA6144 + CF5BE83C2645F84BDE1F8208F0F2FB5574595EAA7D1B255F03DDCA3EE4947530 + 42A8062E4C99BC2FC4B9AEB3CC0125DFB611215C333F0962A0EF6FE80CBF054C + 7E22E2C5825F20148DA3A7FC0DFE3BC0A4138EE4AF8C1C47A7741351F2AED09B + 287A7CDC86D9E2B0E00102215C958F13DB505FB485D91F44FF45C0FF85B802FC + 2186FE5160CC7812D559CF634FE5211C284A0F1E606F6E2AAEEAD8033C11E356 + CA9D7CA4381C1F15D70617C029F309A1A3F5E85647D967611D122285084588FB + 5AD0003321FE07DCE898F1807F01334A2ADD496C06070000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'MoveLocal_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004BF4944415478DAEDD97D4CD4 + 751C07F0F7753CD87578920B6769B129C3A8C9AC599AADB9C69A259699454AD3 + A844C29688543321D6646351C499C1F1D4ACC6C6C8261A7233E3C15A12A49BE6 + 8621E7C943706002C771C71DF7F8EBEEDCEF3AEE81FBFE9E02B73E7FDDEFE9F8 + BC3E9FFB7D3FBF3B441445E1760E5128804824227AA3EC8A565E2A11BB4886DD + 1B1311192E0EF9875DB9F30A284E5FCF19507BB60B233A1311624E02EADB5498 + B2D889107312D07CA91F13463311421080C5E6E004B8A8FE1B0693651AE28D0D + 0F433A2FC22F115E01FB14CDD4E7194F7306A887C69DC95BA62134A306642427 + FA210401182DB700EF2B4E334EBEE8ED0D9830D9A09D30F821066EEA90F9FC23 + D310BC02F696FE44C933933C00B661B35961B48A0222AE6BB4C84D7D4218C01E + 7923F5E5DEE73877E0AA3349655B37C60C66BFE3669311A5591B8505688D36D6 + D5F78E8BAA1BF8ADB31FFAA97FDFCFA0D73307ECAF3CCBCB84A51C0E58CC538C + AFDBB23E11AAC131389CD777AA07D901F89AB0AED5243569A5735DBF83D1B566 + AB037DC363F84679018AEC4DB303A027ECF92E0DA34E1CDAF58CE7F5C18AD3B3 + 07F09EB06C3B71A0AC1115EF6D6607E07BC2927622F7F524CFEB8FAA1B5195B3 + 851920BBBC45B009EB5AD7539256411A49D689DCB21FF0D5872FB303B05DDF6D + 562B5AAE8DC06A5CC8A900BE21910DA3F34886282420ABAC89D384754DD655EF + D66245DC53B8F7BE259EFD1161FE5517FB3C74868B8377E6F88993E8F9767368 + C03B87959C276CCAB3CB9156D48EF8B82779433006709DB097FAD4D855DCC11B + 823520AFEA0C6B84D6AC457BB795978F133120B3E41455B62F99B7671CBE3AC1 + 1AC0A50374B83AD1D16DE7842006647C76922ACF7981B70ED0D172E53272BEE8 + C7EAC7D741269331461003D28BEBA9CAFD2F625867716F177CDDC439798BCD8C + 73BD37101DB5060F2624F81D27413434349001DE2AFC9EAA3EB0D503E01ADAC9 + 496C2DAC73271F17BFC2BD2F2CC02A130AC11AC0A503AECAB7AA345874F73AC4 + 2E8B437898D8738C29E23FEF8077E55DC9D3C116410C483B544B1DCDDBC6A903 + BE95F70D3608A5F2143340DFA8196C42673260DB27C7FC2ACF15410CD8915F43 + 55E76DC790CEEADEFEB4A69971E517CAD662C903CB312F523CE3F9BE089D4E17 + 7489650D208D31BD01AF151F4394E43177F27490225457BB3038D08B84875606 + 1C76C480D48347A9AAFC9DD08CDFBA07E4B52D8C2BEF1BA110BD6A15B4FA7694 + EC5E8B4CF91F0127366B40A8D01926B0A3E438EEBA7335EE8F0DFE990F86A093 + FFB9703BEE8992892EF4A8A994825FFD104D6794C274E0C73F7B103D7F0D162F + 5D36E317924008DFE4E9FD8110C480573FA8A214F969CE6594EC1E48CEAB434C + CCA38859BCD4BD4D8A08967C30046B40E977AD339E4F3FF333410C0F5C9F31F9 + 40882B9D9785E9802BBA347DC851B4132106FAAEE1E6F8397414EF9C31796FC4 + 2B05BF401C664777F99BC2004811AEE4F5C6DF112F71A0BE680FD9AFC8CE304C + 5928BBDD81F99248E100A11074F2D5592FE170E509D415A51303E820FA5DC805 + 38929786113D734030C4D05F6A4C9ACEBB935F2091E263798DB00056997B859E + 32A06B2CDA8DB0DB2C18D5B5217181181108F79C231880F41F1CA182BEF9A452 + 139A0B52896E585E00733DFE07CC76DCF6807F0046B536DD76484C0300000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004C34944415478DAEDD97F4C94 + 751C07F0F775FCD0EBE044164ED362338651CAAA599ACDB1C69AA59519654AD3 + A840C23611296742ACC9625104CEE0F8E5D4626366130DB9CC40ECC708D3A6D5 + A893EBD433382E833B8F3BEEB89F4FF7E09EEBB85FCFCF1BB8F5FEEB9EE7BECF + F8BCBE9F7BBEDFBB07114110B895236202108944B4638A1ABA059989E439326C + 599D8ED86831ED1F256B1714509597C11BD07A468961A39511625A02DA7A5418 + B7BB1821A625A0EBE2358C5A6C8C101101D89D6E5E800BEAEB305BED9310AFAE + BA1FD219310145080AD82EEF223ECE7F9C37403D74C353BC7D12423B6246FE9A + F40044440016FB4DC0DBF293AC8BAF7C631546AD4E1846CD0188817F8C2878E6 + C149084101DB6ABF216A0A32BD00AE713A1DB03844411197B50694643F1A19C0 + D69A0EE2936D4FF1EEC0254F918A9E7EE8CDB680F76D560B6A0B57B307EC683C + 23C826352F518ADC2717C30531EDD80BAABFF163DF3598C69DDE736693893B40 + A84DEA9C520BBB6D9CF135EB32D2A11AD4C3ED76A34F3D38B5006A93225795EC + CC259EF5FD3646D7D91C6E68747A1C529C87BCE8E9A903F86E524C3BB127F709 + EFEBDD0D27F90184DEA4C84E64652C46FC4CFA7B82CCAEBA0E34BCB5963DA0A8 + FE74C43629BA4E94BC92E97DFD6E73079A8AD77107446A9322D7F7F5990F401A + 1BFE9E28A9FB12FBDF79813DA0B0AE93F3264516BD72E767705812595F1B2E12 + 990E7DFBF2458C006FEE5570DEA4C8E5EFEBBE612C4A59897977CEF79E8F890A + 9C6DB1DF97CE6871E88E1C3D761C573E5DCB0E60B03869C706CB458D1AB95567 + 919AF29860085E80D2A653AC11069B01BDFD0EC13AC10A50507D82A8DBBE8673 + 07A808D9095E002E1DA02254275801F23F3A4ED4173FCBBB035484E8042B405E + 551BD1B8E339E88CF689E3F2839DBC113A8B0E3FFF311B4B1F5901994CC61AC1 + 0AF07AC51744F3AE2C2F806F0C6363C8AA388C84B865B8372D2DE07D2688F6F6 + 76EE003E1DB03B6DE856693167F60AA4A42E9A3817156495A143F002708DEFCC + 272F4C4174D47F5FE2D822580172F6B412074A37F0EA80EFCC93C553E18AE004 + D08CD868C7068BD16AC6860F8E7867DE3F5C100AC509E6804D652D4473E9460C + 191D13C71FB674F19E79BE085E00A6D19BCC78B9EA08E2240F63FEDDF760466C + F81F2EFE08A3D11872896505C8DE7D80682ADB0CED8D9BF7404DEB69C6339F28 + 5B3E513C15A608D525250607AE22EDBE2541373B5E00BA18CDA3D8547DD43BF3 + FEA1435C55AB6030F5A27ACB7214D4FC1274C78E5807A8994F885F86BB92437F + E64321A8E2BFADD8883BE264A2F357D4C4FAF21F02109DA714CC012FED6C22E4 + 65399E6594FE1EC87AFF106E9FB91473172C0CFB832418C2BF78EA7C30042F40 + EDE7DD21C77EF5DB7524253D84A4B90B268E992242151F0A11B10E28B51A14CB + 7B59217403973134F23DCE566D0E5A7C30C4EF7DBF4606C01631A0F91326CB4F + 4895B8D156B995F629328978B1FC3B88A35CE8AF7F2D3200A608AAF8E6C2E7B1 + B7F1180E57E6D13F06F7C43C6E275C2E37E225B1CC01FB4A73306C62B7918543 + F8163F4B22C57B352D8C0154183F172201AC2AF789893043A94F988418FA4B8D + 11630FD26789118368EFD8880198FC83235CA8CF2D897039ED18B39E0BB9DA4C + 4B802F422AB5A2AB3C9B77F1AC00D339FF03A63AB73CE05FB26745DD89876D67 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004C94944415478DAEDD97F4C94 + 751C07F0F775FC50020E6AE12C2D366518956C3A4BA335D758595099D90FC569 + A420519B08583321D6646351044EF94DD31A8BD10FD1D09B29889519A49BD686 + 1D5C279EC141291CC73DDC71CFFD78E28E3DD77177CFDDF3EB00B7DE7FDD3DCF + F7D93EAFEFE7EE73CFDD49288AC2ED1C095B804422F1793EB7B643949D885D20 + C3CE944484064B25FED6DA6B17155096B95630A0E99C02B774465688390968B9 + A0C404696585989380F62B37306630B1420404405A6C82009755FF803092D310 + 6FAE7B18E1F3423C0A1015B0BBBA9DFA34EB29C100D5E0E864F1E43484669840 + 566AA20722200003390578B7FA14E7E24BDF5A8731A305DA31C203D17F5387EC + 17564C43880AD8557986AAC84E7602F8C66231C3609678455CD3685190F6383F + 405EDD3951E63C65B381344D3076A067B248F9855E8C10268FF326A301953929 + FC0162CD79FB6B3AE3D94760859471DD65E5DFF8A5FB06F41316E73142AF9F7D + 003DE72F2A348C9D70CD86B589500E8CC036D9B96ED5C0EC035CE7BCBD1369C9 + CB27E7FC1D3EAF31996D500F8DE073F92554E73E2F0C20F69CF7D789FD194F3B + 1FEFAB3DC51F905B73366073DE3E5DB63CB30291F3A53EAFDD5B7512B57BD60B + 03046ACE775DED87C54C7A5C53F046B2F3F1070D27519FBF811F20A7AA6D46E6 + FCF694958CD716547D87CFDE7F851FE09D0372EAD0AEE73877C06236E38C420B + 1B192508EE9E30D910BA0F66493803B4060BABF574EC132429EF4B2C8B7B12F7 + DEB7C8793C24C873F248DD6E3A83A5CCD3E9E8B1E3E8FB623D7F4061FD69D608 + AD498BCE5EB3A808CE80ECF21354D5EE54CE1DA07345AD42465917E2E39E1005 + 2118C0A50374C4EC046740D627C7A99AFC177977808E589DE00CC82C6BA1EAF2 + 5EC2906E6A56171F69E38D10A3139C013B4ABEA11AF66E740284E67C4F37F61C + 5263D5634990C9649C118201423A405A4CE8506AB0E0AE243C9890E0719E0DA2 + B5B575763AA01D1FC7C692664447AC465CFC32C7B1202F53C61F8233207D7F13 + 75B87093A00EB8EE7CEC92380407FD77F3C615C11BA01E36B15AEF1E9D91C0A6 + 8FBE76ECBCBD783A7C119C015B8B1AA986C2CD18D4991DCF3F6E6CE7BDF3EEE1 + 8390CB4F0803B0CD889EC09632CF9D178AE00C48DB7798AA2FDA06CDE8D47BA0 + A2E92CEB9DBF5BB6068B1E588A79A1BEBFB0B823743A1DE388150CF0171D3186 + ADE5471111F6A8A3783A6C11CA1E0506FAAF23E1A1E55E3FEC02DA01F79D778F + 3FC47595125A7D27CA77AE4176C56F5E6F3B38035E7FAF9EAA2E4A9F1CA3BEDF + 03A306023B2ABEC59DF357E1FE58E6D73C13822EFE8792CDB8274226B9D4A7A2 + 5E2B3EEF81683B2D1706A8FCAAC3EBBAEFFFE84374E46A2C5CBCC4E717126F08 + F7E2E9E3DE1082014C492D6C464CCC4AC42C5CEC78CE16612F7E70F82774956D + 9B563C1322600085468DFCEA4E4E88A1FE6B8E9D8F0FB3A1A5F46DC65F915D11 + 57BB7F0F0C802BA25FFD27F4865FD190F3320ED41D437369A6CF9FC1ED88578B + 7F8434C88ADE9AEDDC00070BD3714BCFEE838C0DC2B5F8A8B0707C58D1E81760 + 0F31415256AB0D9161A1DC00AC16BA444F11508C447B45D88BBF39FA3312A3A4 + 0841B0F31A36003AA2FEC1C114BAE5AE88C1BF5418375EF498365C3323007784 + D5428A52FC8C025C11E1E146B417A7092E9E3360AEE67FC06CE7B607FC0B92F3 + 5ADD474D4CA80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D94944415478DAEDD97F4C94 + 751C07F0F771FCD00B38D185B3B4D88C6194B2D92CCDE65CA3B2A434A31F0AD3 + 2841A2B610296742ACC9625104CEE4B7338B8DD10FD1D09B3910FB659036CD0D + 43AE135138AE048EE31EEEB89F4F3C47CF79DC3D77F7FC3AC1ADCF5F77DFE7FB + 1C9FD7E773CFE739EE242449E2760E0917804422F17A2CA7AA55944AC4CC9563 + DBDA0484854825FEF652B98B0A28C9582D18507FBA13033A232BC4B404349E51 + 62CC6C6385989680960BD7306230B142040460B6DA0501CEABFE0161344F42BC + B6E64184CF08F5F8E3A202B657B4909F663E2E18A0EA1F1E4FDE3C09A11E2490 + 9994E0810808C0609E00BC5B718273F2C56FACC188D10AED08E181E8BDA143D6 + 734B2721380376549F166D54A63EB11861C1411EC7AC560B0C160923E28A5A8B + BC94478501C41A95673BD5309BC63C3A70793C49C5992E0C11268FF34C4603F6 + 67AF9D7A003D2AA9F776FAD38B6183D463CF79E5DFF8B5E31AF46356E71AA1D7 + 4F0F80EBA864EA846B6C589D0065DF10EC763B3A547DE200C41E955427521297 + 8CCFFB20C6FD268B1D3D9A211C529C4345CEB3FC013995A702362ABD75624FFA + 93CEC7BBAB4E880308D4A8A4A64CEA534B113953CA78EEAEF2E3A87A673D7F40 + 767933599695E804F00D5FA3B2FD522FAC16B3736FDEAB89CEC7EFD71E474DEE + 06FE80B7F62AC8CFDE7E467007FC8D4AD7A45D23AFFC3B1C78EF45E100ADC1CA + FA1CEA025CB5F34B580C7338637D854CAE41C7BE4C8920407ECD49BFE750E3EF + FB8E012C8A5D85BBEE9EEF5C0F65B80B4BDD3E74864883BCBEEEE12347D1FDC5 + 7A6E80ACD26364F9F6244E1DA0E2428F0AE925ED888B7D4C34842800361DA043 + 6BD2A2ADCB225A277801323F394A56E6AEE3DC013AC4EC042F4046492359BDE3 + 7968741363AEF0F366CE08B13AC10BB0B5E81BB27657B213C0372E5EEF465699 + B04E8802E0D3013A34060D7EFF7336963DB21272B99C33624A3BA01D1D457251 + 03A22296E3FEF8788FE36C104D4D4DDC01697BEAC983F91B0575C06C35A155A9 + C6DCD92B111BB7C8B116CC3065FC2104017A064DACCF710D9D91C0C68FBE7654 + 3E66612C42826F7E68E38AE005D85C5047D6E66F42BFCEE278FE715D0BAFCA53 + C9D3C117210A806D0CE909A496DCACBC7BF0412814C7B80352761F246B0AB640 + 3D3C710D94D59FE25D79A1085100FE42478C6073E96144C81EC6FC7BEFC38C30 + A9CFFDEE089D4EE775C406BC0374E5E7C8573892A7832D4279B9137DBD5711FF + C012C69B1D2FC02B3B6BC88A82B4F131EAFB1A183610D85AF6ADB3F2EEE10F71 + 55A58456DF86D26D2BC6EFD87F30DEB14501ECFFAAD56BE5A32297E39E18EFEF + 796F083AF91F8A36E1CE08B9E45CB78A7CB9F0670F44F34945603A90FCE121DC + 317319E62D58E8F31F122604957CFFE04F682FD9E2489E5E6742040C9094DF80 + E8E887103D6F81E3395B045DF938991D8DC56F7A7C8BEC8E0818A053DD83DC8A + 364E084DEF1547F2B5D92F606FF511341467307E0DEE8AB8D471911F605F7E1A + 06F4BE2F622E88DE9EBFA037FCE6487E962C1C1F94D57905D088970A7F8434D8 + 86AECAD7B903D8EED593043A87A27C22A8E46F0CFF828459528422C4B9EE0B40 + 053166266D363B226561DC00BE7EE0F0552D26045D797ADA707AE1FF42D45F68 + B820FAAFAB306A3C2B28F95B067047D8AC665192BFA500574478B8112D852982 + 93E705988EF13F60AAE3B607FC0B09175CDD7A5AC0030000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'MoveLocal_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004CF4944415478DAEDD97D4CD4 + 751C07F0F77107184187B57096169B318C325A8DCA68CD352B4B2A327B509C4A + 0912B585403513624D968B227026CFCD6C2C660FA2A1376720F664906E9A0B77 + 729D780807A9701C77DD71BF7BF87577ECF7EB9EEFF7F03DC5ADCF5F77DFFB7E + EF3EAFEFE7BE9FDFEF76129AA6712D87842F402291041C2F6EEC26B213C973E4 + D8B83C1DB1D15249B8B9AEDC8902AAF3978806B41D55E2B2DECC09312301EDC7 + 5498A2EC9C103312D0756A1093260B2744440094CD210A70527D114633E58578 + 75D9DD889F15E3F7C144019BEABBE84F0B1E130D508F4C3893A7BC10DA31230A + B2D2FD108200254D4789741BDAE1006599F21AAB7A7D1926CD36E8268D7E88A1 + 4B7A143E7B9F1742308064B759F3F822C4CAA2D8719BCD0A93551210714EAB43 + 59CEC33303C0749BE34A2D5B095705CE3A93541CEBC7B8D1E2B7C662366167D1 + F29901F0EC36AEEF78DE538B6087947DFDA4EA6FFCD63708C3948D1D331A0CE4 + 00A4BB8D67253C63C59274A886C7E1709E993EF5B0784071C39188751BCDC549 + AC7FF25E67DF8FF29A6BB13AA0191DC76EC509D4173F430660A2A601EFD41FE2 + 9D7CA86ED37B6608362BC5CEDD9AF704FB784BE321F180A2BA4EBAB670290B10 + 1AE1BA4D617686DF9ACD7507D1F876B638C09BDB15F4676F3D2DBA02E1BA0D13 + 65EB97B28FDF6F3988E6D21564003A938DD7BA6011ACDB7826CE62EABEC7E7EF + BD481650DE7C38E47C9BD58A1F943A38A844226026E2E4A3E8DB5120E10D28AC + 3940D76DCAE25C015707C92CF90A0B531EC52DB7CE63C76364517E73A53E379D + D1D2A8A0EFBB77DF7E0C7C992D1E10AE02AED05974E8E9B712450806147CB29F + 6E287D8EF71938A55123AFBA17A9298F10410806E457B7D34D25CF63543FDDAB + 2BBFE8E4BC9664250403366CFB966ED9BC9205F08DD3170650582BBE12C4007C + 2AC004894A5CB50A30D1D5F727CA1A0691F16026E472396F846040EED6367A57 + F92A5115A06C1674ABB498736326EE4C4BF37B9D0BA2A3A3431C403366E1B58E + 09BDD988551F7D83D9090F212575A17B4C16A0CB84430806ACAD68A55BCA5763 + 446F753FFFB8B58BF35ACF9D4F5E908268D97F3F60F8228801B8C6B8C18835D5 + D33BEF4A9E09A108C1809C2DBBE8E68A75D04E4C9F81DAB623BC77DE37842014 + 8A036400E1426F9CC4DA9ABD7E3B2F16410C10AA02CCCEDF245F8C79B7DF8159 + B1D290EFED8BD0EBF5415BAC60C02BEF36D3F515B9CE361AFA0C4C988CD850FB + 1D12E21E7027CF045784EAAC12C343E79176D73D012F76C4003BBFEE0EBBF3BE + 110E715EAD82CED0839A8D8B9DB71D7F04BCED885805989DBFFEBA0CDC961CFC + 3B1F0CE14A7E64EC67F456AFC3CD0972C9890135FD72E52F7E88CEC38AC80056 + 7EB8DB9DFCDCF90B42FE20098460763E35CE81F6AA37D8AB562044C40059E57B + 9094743F92E6CE773FE78A60926F297A01DB9BF6614F55BED7BD832F42146047 + 792E2E1B0203945A0D4AEB7B78214687CEB1C927C6C5E383DA563F802FE24CDF + 69E18070730CB411CAF1D99C10439ABF7069E257A4274A118368763C108041BC + 54F913A4323BFA1B5EE30F08F60747B00F0A8570256F30FD8E1FB7AD761F58AE + 3918A728DA6E77E086B8D8C801C2218426EF1944FF62E28318B9A0C63FE6E3A2 + 92BF62005F84DD461149FE8A023C11F1F1667455E6884E5E3060A6C5FF80AB1D + D73CE05FCCB863DDFF0F6A4F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_21_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004BC4944415478DAEDD97D6C13 + 651C07F06F5FB661D92C2F7104055D82CB702A4B24F83643889986B8A988F802 + 23D309CC3935CE811A5EE6342C12A7931260EF86972C594065E0A041B2317C09 + 82604092E2582D63D07515B7755DCF76BDBE9CBB5B7AE9FA7AED3DDD46E2EFBF + 7BEEB9EBEFF3FCEEF7DC9693300C835B3924D100241289DF58496D3B91954899 + A5C49BD91948889349C2CD6573270AA82C58221AD074AA037D669B20C4A40434 + 9FD662987609424C4A40DBC5EB18B2DA05216202A09D6E51800BBA9BA06CF418 + C41B4B1F40E29478BF1F8D1AB0BEEE14B1865DFDD483981A2FE5C774BD8323C9 + D36310867E0A8539197E085100520D7BAEC300DA3ECC1D57BCB5144336274C43 + 941F42FF8F1945CF3D340631E100EF86652B912097C2E974C0EA9004445C3598 + B025F7F1C903F06E58B6129FE46542779382FA74270628BBDF7CBBCD8ADDC5D9 + E400A41B967DD673B3168CEC3A525CD0FE8D5F35D7611976F2F3298B850CA0A4 + E624F355E193A201811AD6BB27D858BE2403DA9E01B8DD6E68743D6401567A14 + F061F5F188EF11AA61D9677D4DF642AE126CD81D6E741B07B04F7D1ED525CF8A + 071457B532AAA22C1E106D846AD8B397F5703A686C5DF7343F7F73ED71328077 + 76A8995DEF3D23BA025746563A54C37A27CFC6C6AA63A8FD60193980C9EA8CF8 + DA4011AC61D9D8F27A163FF671C331D46F584E1E505A7F8208C4B761BD93E730 + 55DFE3EB4D2F8907146D3FCA54BD9F23A80296611BB2361D84C33A9308D2130A + A5119A9D8512228050156057F3074D1FE6A72EC69D77CDE1C7E3E552BFB9329F + 3F3AE364D2A0F73D74F808BAF62F8B0E50F8E511A666C3F3827BE062B70EEB2A + CF222DF5096208518082CA66A66EFD0B309A69EEB87C6F6BD86B4C7613CE743A + 8855421460EDB66F99868D2B7880D0B874A30B452A3295200A1052014F90AAC4 + 8454C013242A210A90BFB589D953BA32AA0A78C26835E2F73F6760D12399502A + 9511238800BAFBED115FCB86D94661E5E7DF607AD2A3B82F3DDDEFBC10444B4B + 4BF480BCB246A6A174157ACD0EEEF88BC636C1D7D24E3BDAB506CC9A9189D4B4 + F9DC983CC02E130E41142034062C1456578EAE7CCABC54C4C965FCB94811A200 + B99BF730F565AFC13038DA03AAA69311AD3C9BBC27A2451005840B333584BCED + 87F895F78D68106AF5D1F1A940B095178B100578F5A37AA6BA2C7F641B0DDD03 + 83560A6B55DF2149F130E6DC732FA624C842CEF74598CDE6A05B2C51C0EE83ED + 41577EA6F2312E794F084568AF74A0477F0DE9F72F08F8B28B69057C57DE37C2 + 21AEE9B4E8EDFF19D5EF2E1E7963FF11F08D1D338027F9A9B72DC2DD29C19FF9 + 6008367993E50CD2146E3457BC2D39DFA5635E29FFC50FD17A421D1BC08ACFF6 + 71C9CF9E3B2FE43F2481109EE41B8A5FC48EBAC3385051C06DFA8110A2013B4B + F3D167F107E4941E4072F24224CF9ECB1D0B4578273F4D91884F558D3C201042 + 3420D8390B43A163607A4408A3FE2AF7CC674C93211E71FCB837C01771597329 + 7A40A00F1CBE3FF472F94F8210FAEEBF60B1FE861FB7ADC21D49CAB01FF63CF7 + 96C95DE8AC59131B805044A4C97B821AA61997CB8DDB1509B1038443449BBC77 + 10FD461609A2F7860EFFDACE894A7EDC00BE0897932692FCB802BC11898936B4 + 95E78A4E5E146032C5FF80898E5B1EF01F2BCA5EDD06030EFF0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_22_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A14944415478DAEDD97D4C1B + 751807F06F296F32B0A891656E531224DBF0A58906DF30CBD469E63615E77C83 + 05659BC81A131136CD1C8C9811974C715DE678377386487CDB8B6CCD32614C5D + E6268B334BBA00B5305869710E4ADBB3A5D76B4F5A72B5BDF6E8CBFD8A2CF1F9 + 87FCEE8DE7F33CCF1D474EC2B22CAEE790440B9048247EEBF2C62E2295C89C2B + C39BABE4484A904A421DEBCE9D28A0B664996840DBA91E5C33D9C242CC4AC0A1 + 331A4CD0CEB010B312D0F9FB10CC567B580851808AA653C4667EC3D372C4C74D + AD2F68AF82B2D17E88F52BEE466A726200423480E4CCAF7BF21ECC498C83D630 + 3E993CED87D08F52285D2D0F40CC0A0037F3DD3D7A54152D85DDE182D14C0520 + 747F99A078F63E3FC4AC00F067BEE0B12570B0714111FD7A232A0B1F210BA019 + 9728007FE607AF9AE1649C18A3EC01C7DA6D56EC2B5B450650DE7092FDA4F471 + D1806033EF46C8B332F05BAF019609C67B2C65B1900758E929C0BBF5C723BEC6 + AE4D2B60B63141C7E5DC251D18078D35CBE4D00C8FC1E57241AD1D260728ABEB + 60958AE55E40B4C1300E581D12C19957E4E77A6EECC191311C509D477DF93364 + 006FED51B19FBEBD5274077A2793549DE9139CF91D6F3CE55D6F6B3C4E1E60B4 + 32519DCF8F0B9A3FF18B7A2860E67D015BEB8EA1714B7E6C0055CD278840F833 + 5FF9FA72EFBEED2DC7D0BC790D198062F751B6EE9DD5C43AE01BBE33BF7DFDBF + 1DA8ACFB1E9FBDFF626C00421D601C0EFCD063848B4E278A4C918D40BDB75412 + 35A0F4E3236CC3E6E74276C05DCDBC8A2FB1387B296E9BBFC0BB3D917B7BF309 + 29EFA533411A2778DD83878F60E08BFCE80125B587D8A68AE73162A23DEB9ACF + 3B048F35DA8D38DBE7208A100DD8B8F35BB665EB5A2F20545CBC320085F21C16 + 653F4A04411C305D07B820D98919EF0017A43A211A50BCA38DDD5FF56A441DE0 + 82442788010647ED519D7FBA578DCA8621E43E9807994C16314234A0A8BA956D + A92A80C1E4F0AC3F6AED0CFB5C9AB1A34BA3C7DC9BF3B0242727607F3888F6F6 + 76B2807063CC42615DED37B829ED21642F5AECD9161FE429130A211A50B86D3F + DB5CFD1AF4E353F780B2ED64C8737C2B9F99958D8478A9775FA408E2805061A2 + CC28DA7DD0537977F25C448B98D10EF02BCF8F68102AD551718057DE6B66EBAB + 8B271FA3D3DF03E3560A1B95DF05545E2C823860DFD75D8295BF45F63016DC71 + 279293A4D35E938F30994C828FD8987780AB7C5ACA039EE4B90817A1E9EDC1B0 + EE3272EEBA37E81FBB980284920F177159AB81D17216F39329F41B3382BE76C4 + 0CC0253FE7865CDC9E293CF342082EF996B217B0A7E930B66C7A022FD79C0E40 + 749C508907ECAD2AC6358B3F60ED87073CC9CF5B9835ED3F24C110BEC9A7A7A4 + E203652BBEDA5522393FA065F908228060DBBB47139091713F32E62DF4ACC345 + B893378CFE0C79BA148948F0EE7703DC3FF908D100FE070E2EDCBFE8A59A9F22 + 428CE8FA3D95FF7167016E4D93097E91F1455C525F8C0D2052846EF00F58ACBF + 864C9E7F6D69BC137D0D1B620308171169F25C501334EB74BA70634A52EC00A1 + 10D126EF1B443FF24582305CD1E26F5BB7A8E4670CC04738199A48F2330AF045 + A4A6DAD05953283A79D180D912FF03FEEBB8EE01FF00D7904EDD10A2713D0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_23_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000049D4944415478DAEDD97D6C13 + 751807F06FD7BD60DDEC843882C258C0059CC646143460CCD4C5202022F8CA0C + 3A86381613E7181864637FD084449D9B01F6C266A664C9121510070D928DE14B + 10D90C06A86EAB651B6C5DC5AD5DD7DA975BDBB3D7E54ADBEBCB75F7BB39129F + BF7AD7DFFDF67C9EE7E9ED9A4A689AC6AD1C1221008944E27B5D5CD74EA41219 + B3E5787BB50249095249B4B54CEE4401155BB305039ACF7661D864E385989680 + 63E734B0532E5E08C180ED87CE121B9BFC67159025C6A1EDB76B18B33A782188 + 00488E0D83B8DC7B03161B1580D8BCF20124CF48E420A60DC07F6C7296CCF724 + 4F052074231614AC517010D306E03F364CB2AB962DE02006FE36A170ED920004 + 3100E5740B025CD4DEE0543CFBA17438C7DD01E7AFEA8C28CD5D4E0E505C7B86 + FEA4E029C100EDD028A7E21D5D3A48E2E202D6396C561C2C5A4D1E60A526003B + 6B4EC5BCC787DB5662CCE68471CCC24174F6E891102FF5ADB598CD640145D5AD + 7455618E0F30D9703AC7611D9784445CE91B467A9A1C6EB71B6AED2059C03B9F + AAE803EFAE12DC816ECF6CABCEF5C0607170DE67C6A6F4CD1CF4EB0DF842D589 + 9AE2E7C8038C56A7A00EB07151F3177E565F83D97E733F666CF6BEF58CF7F5EE + BA53E202CAEA4F1381ACCF56403368F08D0D0BD8557D12753BD6910314569EA0 + ABDF5B43AC03FEE1F0DC42D9B1D9B37902B0A7E124EA4BD68B0720D501B6E24C + 3063C3024AABBFC5671FBC440E50F0F171BAB6E4F9881D30DB6D7872E711B8A9 + 5422383664723DD4FB0B2482005B2B8ED187B6BF00BD89F21E2B3F6FE5AC61E6 + F83BF53016673E81BBEF99EB3B9F181FC7592B0D7AE84C9072D7B071F49BE3E8 + 3DBC4E1860CBBEAFE9865D2FFA00E1E2D2F55E1456FD8245998F1343880208D5 + 01368C0E23CEF78C13EBC49476800D929D2002C8DBDB4C3796BDC6AB036C90EA + 045140FF8823A6EB2E7B3A5174E082A04E10016C2A6FA21BCA3662C834EE3DFE + A8A98DF7B57AAB1EBFFE31134B1F5D01B95C1E33421400DF30982D78BDE22BDC + 99F218EECBCAE2BCCF07D1D2D2221C90BBBB91AE2F7F03BAD189CF4055F399A8 + D7504E07DA353ACC9EB902998B167BCFC587B8CB44438802881626CB1836551E + F5563E636166C09795581153DE01FFCA33C9B331590411C0ABEFD7D335E5799E + DB68E4CFC0A8D5822D55477C950F8EC92054AA13E40107BF6CE75D79A1085100 + E12A9F225B86B9F3EFC58C2469C4FD8211269329EC2D56744070F26CF04568BA + BB3038D087ACFB1F0CF9CF4E5440B8E4F922FAB41A18CDE751B2E111289BAE84 + 7CEC2006D85F968761F34D009BFCEDB72D457A46F8990F8760936F28DA805459 + 324A2A6BD16D98C579EC683DAD2203083ED7316AC72CF972CC99B730E2179250 + 0826F9A1911FA14895221109BEF33BB63D8D57943F05208800FC7FE06063417E + 239D96F630D2E6CCF31EF345B095FF7EDF46DC9522E76CDCD9ABA5FD11A20198 + 3FF4B2F207C482D00F5C8D987C28C4EFEA4BE20062450CF4FF09B3F542D4E483 + F796C6BBD0539B2F0E802F22D6E4D9B0D829DAE572E30E599278806888C926EF + 1F447FA58C0531745D8B7F6C1D82929F324030C2E5A488243FA5007F4472B20D + 6DCA5CC1C913014C87F81FF05FC72D0FF817C15423DDC1BA8316000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_24_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004794944415478DAEDD97D6C13 + 651C07F06FD7B523CB6699C691C9D0C5B10C87A1C95434600C21860C4145F095 + 45CC182F7331618E29413666C208898ACC00DDC666A666C912A2200E1AC48DA1 + 12445882624ABAD53236F6A6B2755D6BBB5E5F1E7747AE746DAFBDEE9E1B90F8 + FDA7797AD7A7BFCFEFD7DE6EA9821082BB390AA9008542C13D96D6B553E944C6 + 2C0D36AFD02241A554443B97AD9D2A60EFA6259201CD678CB861758A4250016C + 3D74865AE70B976BF17D8719E38C5714821A8066E7E7A6A760DCE51685B8A300 + 47CF99B8A2AF0E58909B9D3609B13EEF5124CD508720EE2840DB6FBD1873B8C2 + 220686ED285AA90D415005301E9FA47D2E99FF86DDC90822FAFEB1A2F885DC49 + 082A80D2DAD3E4D3A2A59201E6C1D189E2998808765D9EBF481E8083B90978BF + E664CC7B7CF4761EC69C1E58C6EC21888BC60128E2E2B8F35C4E070E96ACA00B + 28D1B592EAE267FD80A9C6E371C3E1560822D46A15EC361B7DC03B9FE9C9812D + CF499E40E7C4C7437FAE0B237657C871B6F3F33367C360EE970F60717824EDC3 + E792E92FFC62E8856DFCD67E6CE7DFCCCBC597FA0ED4943E2F2FA0A2FE1415C8 + EA255A98FA47E0F3F9B8CEEFDAB80C3BEA4ED20714EF3B4E74EFAEA43681C0B8 + DC3EF40C8D709DDFBD390FDB752750F7DE2A7901B426C0769C0FDBF99DEB9761 + 67C309D497ADA60B28FAE418A92D7B519609F0613BFFE1C6E528D77D87CF3F78 + 852E60D3DEA3E4D0D697306465B875D517AD938E7BDC6EFC60B4C0C7CCA48A4A + D40CC1B0BF482119B061CFD7A461FBCB7E40705C1E82A5DB9A312FEB193C303B + DDFFBC3A3E2EE45C65D04DA74A1907A11CF9F618BABF5A451F103C0136169705 + E7BBDC5411B2018472F97A378AAB7F4576D6D35410D40005BB9A4963C51B1127 + C087E624A8037A865DA2CEFF63621225072E489E0435C0BACA26D250B1168356 + 37B7FEB8A92DEA6B684C423680D89CED34A0BCB6174F3CB9181A8D2666043540 + FE8E46525FF91606466F7E07AA9B4F477D0DE371A1DD348059F72EC623393921 + C7C5205A5A5AE401448BD53E8675FB8E2025F9296465CFE39E8B0F7395898690 + 0D106902819DCFC8CC822A5EE93F162B821AE0F56DF5A4A6B260E2321AF93B30 + EAB06343F5375CE7D9E2F94C15211BE0E0E1F6A89D0FCE54107AFDF1E9998050 + E7A522A605C0179F9CB810E90FCDC58C0465C4BD821156AB55F0122B3B20B878 + 3E6211A64E23FAFBAE2167FE82B07FECA802F65714E086ED1640A878B1886B66 + 132CB6F3285BF33876375D097BDB411510B866E0C6EFA35EDCA759840733843F + F34208B6F8C1E19FA19DA9841A2AD8881DC6919490DB8ED6537A3A00FE070E3E + 0BB6E848827A21D2E66446FC87241C82EFFC8F7BD6E2FE648D7FE38E6E3379AD + EAECA449C80678B8B091A4A63E86D4B439DC5A2C42A87821846C00F68D5EADFA + 09B12086FAAE462C3E1CE28AE1B23C8058117D3D7FC2E6B810B5F8E0BD95F15E + 74D516CA03108B88B5783EF6718678BD3EDC9398201F201A62AAC50786EACFAC + B12006AF9BF1AFF3A2A4E2A70D108CF07A182AC54F2B20109194E4445B55BEE4 + E2A9016E77FE07DCEEDCF580FF0089BD06DDBD02C2190000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'MoveLocal_25_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004574944415478DAEDD97D6C13 + 651C07F0EFD1BDC0DC28903102822ECC059C84251AD038A3C41042041588AF2C + 4127887331610ED44C36F7074B48546406D80B1B991AE212A24C326C906C0C5F + 828018142DC26AD906DD56655B776B69D76B7B8F6D494BD7F6FAFABB0E127FFF + B4CFDDEDE9F7F3FC76CF6E1BC718C39D5C1C0580E33894357492AC44F62C25DE + 58958FD4640517EE5A577612C0D6FD27C9C2672AA76090B744842005ECDABC2C + EE795A4E5EC2957E03E6CF991E11E2B603B49ED2604C70448CB8ED001DBF5DC5 + A8D91A80786DE522A44F4E0940900304BB18D73CE7B5FFC264110210FD432614 + AFCE0F409001CAEA4FB04F8A9F8C1BA01D18718617C621FEEC19C4A2EC4CE8AE + F32879E6C17108728059B80978B7EE58D4737CF8E64A8C5AEC308C9A2411AE8E + 54143E4A0F28AD6D673525CBBD8058CB6EB7C16CE38222CE5CD4C16E13B0AF74 + 153DE0AD4F556CEF96A7E2EEC065E70AAB4E7561D8640D386FB598DDAFB2020C + 667BDC73B9EABCE61FFCACBE0AE3D8ADF94C4663E200958DC74920EB96E543D3 + 370C5114A1D6F6B95FEBCA9EA60794EC3ECA6ADF5E4DD601DFB2DA44F4EA87F1 + B9EA9C7B9C1000550776BCBEC2FB7E7BC331880E071ADE59430F28FEF808ABDF + F6AC2C1DF05479EDB71039118DDBD6D10336EF6A65FBB7AE859E17DCE3EACFDA + 494257BCBADCFBFE832627C0B99D1E78FF797AC0A69D5FB1A6F2E7BC00DFBA61 + B1604545ABF3C3A791A03C95A6D443BDA7989305E0DB01D7CEF19D7A100B731F + C79CBBE77A8FA7244D0A9847E1F7D099AC9804A93AFCCD11747FB1461E807F5D + B8D68D929A335890FB1819821450B4A3853557BE1CF21E30580D38DD6523EB84 + 2C80DE216BC8EBFE7076A274EF59924E900236541D644D95EB31C0DBDCE38F0E + 76485E4BD5095901E18AA213A480C2EDCDACB1EA15F48FDCBC076A5A4E84FD1A + BD598F5FFF9A81250F1740A954468D901510AE78D32836EC3E8CE9198FE0FEBC + BC80F39120DADADA26A60382DD8A4E4D3F66CD2840EE8285EE63494176997008 + 52C04BEF35B2BAAA22E7361AFA1E18319BB0A9E66BF7CA67E7E4223949E13D17 + 2D4256C0BE439D2157DE15DE53B12212DA01FF95F7AF58102AD5D1C400C2858F + 15911080277C46DA52CCBDF73E4C4E55849CC71FC1F3BCE4164B0ED853598441 + E32D807F784F458AD05CBE843E5D0FF21E581CF4871D39C0772CC086DF471C98 + 39AD605CF848113D5A0D06867E44CE542BB486CCA08F1DA400D73F383C75DDC8 + B327CABFC45D5396E09E6CE9EF7929842BBCC1781ADFEF5C8F99194AEE5CB796 + BD58FD53C06347FB71953C80C55B6A596ACA52CC9E9713F217926008FFF09EE3 + C110B201E66F6C6659590F216BF63CF7385284547829846C00D707BD50FD03A2 + 41E8755742860F86B8A8BE200F205A84AEF76F18CD67C386F79F5B91E44057FD + 4679009122A20DEF29D398C01C0E1153D352E5038443C41ADEB7C8FE2E240590 + 420C5CD3E286E597B8C2270CE08F70D80592F00905F822D2D32DE8A82E8C3B3C + 296022EB7FC044D71D0FF80F581ED6CECA615BBD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_26_48' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000040E4944415478DAEDD8794C93 + 671C07F06F6D05C6C03213317847252A4BDC1F46DCC438A3468D473CE26DB28D + 78217111EF8032964862E205462D08187431C398CD0B6D8C82BA651E5112E7C1 + 82AD1DA01CF5A294D696BE3D1EA5E62DA57D5FDAD2E7299AF8FBABEFFBBCF9F5 + FB797F7DDFBEAD8410824FB924B4009B0B6E506914112643C6B271888A0893F8 + 3AB62D3B55C0FE359382EE5372A30A8F6B5EFB85F82801676FA9D1CAD9FD427C + 9480F27F9FA1C564F10BC104C0D91C41F5B9AF7909A399EB80F8797E22E262C2 + BD1054019BF2AF910329938306681A9BDF87E73A202A545A6C5D32DE0BC10460 + E23E00B6E55D0EB8C79E7533D062B641D762F40B411590A62823B9A9535D80AE + 96CD6685C92A1144DCAB6A40CEBA296C00EB0F2AC9E10D33839EC093061D94B7 + 5468325ABCD62D66138EA4CD620BD0996C54FADD57BFC0EDCA6730B4B6F7331A + 0CA10364165EA1D277C1A46FA0AE6F82C3E140A5A69E1D2035E722516C9C4D6D + 02EE65B13A50AB6DC2096505F236CD090D80D60476AD9EE67ABDE3E865768094 + 7DE749FE96B94C26C057BAE2128E6E9DC706B066FF5952B0793EB47ACEB99D7D + BC8C4ADF9D3F4D75BDFEA5E8120AB72C600358B5FB0F5294BED00560513B1517 + 702C63516800FC046C562BAE56E9E0E062A86222E55A541E4A91309F80D1E2C0 + F48C5318193F11FDFA0F70ED0F93F5F0EA2195767C5EEB29ED01B13A73EE3CAA + 7F9B470F90BCAB8414672E13BC0674161DEEA8AC5411CC00B56F2C82EB8F9E57 + 23EDF05D8C889F4005411DF043D6495294B91C8D7AAB737BEFC972AF63684E82 + 3940AC684D823A60C58E625298F5231A9A3F5C03B925D7448FA53109E6005F75 + 53F518BF16D461ECB824C8E5F28011DD3A01CE66C1757503FAF64EC2A88404AF + 757F10A5A5A574014BB71792BCACE4F7B7D1CEAF81669311AB72FFC457D1DF22 + 7EC448E73E99C05DC6178239E0C8E9EB5EC7B89FF921C3E2D1532675AD058A08 + F904DCCF7C5B78BEBA8A0829402C7C3008A5F2626800BEC27715C10470283319 + AF0DED003E7C746422060C1E8E887069A73D3C117ABD5EF416CB04E0BECDC18A + 07CD76F489497286E7CB5F84FA4915EAEB6A90F0F568C12F3BEA0089A4FD16F7 + CAA027DFA7FFEE3AF39EE50B51A3514367B8839CB5DF2135F781E0630733001F + FECB2FC662D010F1CFBC18820FFFD7EEE5E8132D9754546BC892EC7FBC106557 + 946C00A3372848785822E2060EEBF4078910C2333CBF5F08C10C30746531898D + 1D83D8B881CE6D7F1162E1C510CC006D6FB438FB6F0482D0D6FDDF697821C47F + 950FD95DC48120EA6A9FC260BAEB33BC676FA9CC0E55FE4A36007F118186E7CB + D8CA11BBDD815E91E1EC00BE105D0DEF5E54FF17120288211A9F6BF0D67C2FA8 + F021037822EC368E4AF89002DC115151669467AF083A3C754077D5674077D727 + 0F780701ADB4CE05FAC6C50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_01_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003B64944415478DAEDD96B4893 + 511807F067886150D94789A0FC944645946841A86589A4E02521B3CC4BA6C34B + 244ADE35D7452D454DB47949415B9A5826694A6A2E22C594FA2074D12E8AF7D2 + E5A67373739DDE4DF6B6CDADCDEDBC4EC5FFA7778E9DF3FC7CCEB37D38348410 + ACE5D08C0DB07574D3AB8077EC06DA124074311B9BC6D2C21C425C0FC226131A + 4D1B405ECC72D01A01D9218E5800ACF64FC0E10921D4EDFF085D0042B100F996 + 788195C55EB8ED954D5B11405D473FCCCD2F6845E802C8684A4305AF72E1D02E + 1BA88F68591940DB8741E009445A11DA0003533FD089BB76209688A12EBC196C + 76DB69078824868F424FFF4F1008844A88CBA7ADC0CC74B352B1DA00BE259EE8 + 4D1F1BCE1C3E0BB93E4C9AEA67940051CC36944377C202F83EFA1B387CB11262 + 747216223DF62921E4C5F0845C342B9C811DDB7792EF35F6D6237A45006C31DB + 0A5D89BDB0CDCC5C37C09CE88FEC756CD14BBD8ACF0C7586E93911F066E69620 + 46267970C5E300899017E392638FFA263E4389FF4370B276A64907D73ED306C6 + B8A370DD3D1D2E1DA32F412F015C2D6C45B96127498021912C2CC00CB18E3AC4 + D00417E27C8E2801129E46A3CACE323035319521BA073A413AB87B2CACA135BA + 4356AB5640647E33CA8F74C1D281BE110E34777D855FC4D9578D685E08C43EAA + C70145D744404D374B8690463AB84FC25E80ADE5518D73A316C015480CEE803C + EFFBC7A1EBE31071A4C4E4DFF87CBE3A002822A4511C5CBD0049A52DD8205E0E + FBA16F980362E2687D199CD004902118CF13A1F3DB5B784CAF2707572740784E + 232A8872C5DA01C5F0E7C53030CE0556530F10FB6802688DCE009C1DB8197C8A + 7C4E60362B01F4594F2D809E558F9831EE9475409ED8820620F659D67F5D5394 + 00A177EA50D1354F189D5EFCE648AF64632B3ADECF917C4E2B6E02621FFC80E0 + F45A541AEF4D02A84ACAFD0620F6C17F84540154754015806D888DD5016C80A0 + 1BD5A82CD987F20E24E53F03621FEA008353F3D80A5797B4C23A6A0017532A51 + 69EA05189B16C95E673D6AC756748CEF71F23939AF062A187ED403A80A6580F3 + 89E5A89C1100C39CC5239453CDC65674948FE33F406E15B06E0552032849F587 + 712EC51D5829C09AEBC0B9B852F4801144F9B710238F055519C1D40098A981C4 + EFC062070A6B5F632B3ACCDB61E5015465DD01F45963D5000CCDFA03DC4B0A80 + C919B1014B2E0F80FD08515AB942281962636403B001584D808D4B3E85E0BCE4 + 330A00E7259F5100B82EF9F402ACA64BBE65018C79C98715608C4B3E2C00635D + F2E9B3FEAAB9E433347F01B00EA0DDAEDD3DF90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003D24944415478DAEDD96B4853 + 611807F0E7545646517D1322C2BE74A122CAE802A5955D0D5C66E4EC6662699A + 929732EF65D1B08B974CDBE60D32CDA458173529CB4994985250D045CB92CA4B + ADE55CDB74D3DE36E59C369BDB3CBEEF9CE0FFD3D9C639E7F9ED79DFB3C14321 + 84602487D207501465F5029639BBB1FA069F8B4B289B01D456950EEAC6BA738C + 02C285626CEBC9D1612A1C725B0C13C68D31599C2500955A89BCB33C60AEC37C + E0ED48A64C022E1E72C10228A87C0BD28E4EF0DF661A610980577612653C4E85 + 25B39CE06E70857500A2670DA0ECEA368B3007F8246944EBCE2F074D8F064441 + E5B0CC718575008F5E3641874A6D16610EC01572D0937A31EC58BA0BD2B8028A + 3EC72440DD33F4AD50D7F01D54AA4E03C4C1AD73C17EFC24836269804CD58E7E + 77CA61C6F499CCE725AF6EA380AB3E3079E214A889790D53EDA7990684F21FA1 + 9480F558008DCDBF40AAD018209A25BF2198B3C00041033625AF46F56DEF206B + FF35709DBF89D26DDC35494ED0226B8693EE3CF05B7DD8E01C9300A5FA4FEFEB + 48C10356C527F96F8476A51A3AE4CAFF10DF241D10C259C4206840D4AD30945F + 9D0B7663ED7A11B59FAB41B771E738CC838AF067BA47BC79C0D1CC0A941AE8CA + 0086929EEE6E906BAF630CF1A54D0651DC9506006D1D28BCF80814D716F42274 + D16DDC5B8165B07CF6AAFF969D5140707A394A0FDE8CA503F5DFA4505EF3017E + 68D77EFFA8BB3AE172C8160380EE581FA18BFEC61D1440A6EA197207E8BC6868 + 859A375FB44B4AC3BCA750288C026844E2BD18A8FEF8146E04DC61362E2B406C + F6436C100FE78550FF550A1AEDD27ADFD43620C0920C08084A294519A16E583B + A01F4597063EB7CAA0E07E1D64866D63006CAE6511006707CEF86D608EA3F9E5 + 0C806DE8BA0D000117EE207E843BB10ED089CC2801C1310E7E80FF3911121CDF + 0ECDED7D4F0E5EBE185BD1517B5D98E353C2FB208CF4C0BF84FC783751769427 + 032095F82B259013BD13FF26EE0F20D501AB01488518C0F77411CA8DF322DE81 + D8F4DB9017CF250768FAD985AD70633995292203D8179F8FB213F6404BBBBAF7 + F585C24A6C454778AF658EE3D28A21FFF43EF200522106D81D9387F2127DE0AB + B46F09A51489B1151DEAE5F20F907A1D0ACFFA92016425EC875619E10E580B30 + E23AC03D918D72127D893F8512D30AA028E92019003FE180F677A0AF039937AB + B0151DE8E96C7D00A9F407B0B986CD00D8C6E8DFE951000B00F6257429D60724 + 720D9B6BB20660DDC4442BD70B11C0889FD08C0246014304D8EA906F50005B1C + F20D0B00D7906FD800B8867CAC00C331E4C30218CE211F5680B5877C6CEE6133 + 433EB6A1EBFE0BE594A2DD4FCA36760000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003CA4944415478DAEDD97B4853 + 511C07F0DFADAC8CA2FA4F8808FB27938A28C50A4C2BCB4A41D3A266A526BED2 + 8C7C94996F8D86653E32CD57099966A2A8E58BD29C448A1905053DB44CF19196 + 2DA76ED34D3B6DCABD6D39759BE7CC097EFFBA93DDE3EFB3DFF9DD0D0E851082 + B91C4A16405194C60B3036B352EB137CC529A5B406D0585BA6D23F96DE33A700 + 4291003964D881819E21B0EDE3A84901FEE91C6C03A1AFB712DCADB6C292450B + A62C4E1900BB3C02253F4F806DEB8CE0B14FD5D4809BEEE6580039351F81DB3F + 041ED65323A6037CEB6D417B6F988078540C45DE9560ACBF433380A2BA66100C + 8F4C8B980EC04AB7452F9A3860BFFD3824B2D228FA1EE280EAB76DD02F144D8B + A0013C611F1A1C1A8035ABD732EF297D578C3CEF3BC3F2A52BA021F83DACD45D + A51C40343AF35178DDFC0384C2213984DB6103D05DBC4C0E41032CE34C5153CF + 27C8707A0016869694747077C718C1775E1744D8B0C1D5F42C257B8F42806F6A + 358AF7DC8705D0D2F51BB87CB11CA2AB77107C6C37C921684050A11FCAAEBF07 + 3A0B75C6108DADF5201DDC0D7A1BA1CABF4EFA84541E2010FD197B1D98F654AD + E2633C0E409F4004FD03820988CEDE7E386FBB8541D000491DC83FFF1CE437E6 + 8C21A4910E6EA1573998ACDF35A16B0A011752AA508297050398494647466040 + B28E22447B0F0F82583BE500D26B598434B283AB14C027A91225F91CC4D281A6 + 4E2E54367C819F92BDFF7F44C34370FBFCA109001A11F52418EABFBE84479E25 + CCE0AA04E0094767DC013A6F9ABBA1E143BB644B8999BFF1F9FC4901CA446940 + 48E6336C103BB3CDD0D4C105B1646B7D6EEB9103A8B39E4280777C194AF6B5C2 + DA01D9F087C5D0DACD839C8AD790E2673DA31F5E74DD53027076E0AAEB7EE6FA + 4A6A251980676C094A0DB021D6013A81C9A59076D116FF16F2B85E84D22E1D81 + AEBEF127073B9B83ADE8A0D3E6CC75647A05A407DAE11F62577601CA0C3ACA00 + 4825EC4E29DCBD728C3C80540734062015620097E83C742FF404F10E84241543 + 56188B1CA0EDD730B6C2152532A5880CC0312C1B65869F82EF7DA2B1D7B1B935 + D88A0E70D8C35C8726E64376B4237900A910039C0CCE425951CED0C11DDF42F1 + 791C6C45FB9E30FF07487808B9D75CC80032C29DA09B47B8039A02CCB90EB02E + 67A2BB512EC49F425189399017E34606901A7E46F23D30DE8194825A6C457B1D + 359B14A0CE7A4A01484516A06E14FE9C9E07A80198F35B08FB10DF0A7186DE01 + B12AEB69178068E5322102D0D6139A79C03C4053006D3DE45309A06D877CB306 + C075C8376B00550FF9B00266E3900F0B60B60EF9D4595F6B0EF9D40D5DF75FC3 + 8083DD6FBB19FB0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003D44944415478DAEDD97F4C8C + 711C07F0CFE377C6F05F9B99F10F1A66D4C24621426D258C0B95D68F13991449 + BF2873CBAF4A4ABFDBA4A4D50AE146E9CC68C9D8D8FCB8FC6AFD50E474E5EEEA + AEF375CFB5E7E9AECE5D77F7FD9ECBBCFF7A9ED6F3F479F5F97E9E7B765F0A21 + 044C38C772074F08A724299032E77AA66E4A13405166DDD3A43838B999F44F7B + 2AA8A2AC06D0F0F0B6517F98BE665401647229F2CEF182F9B676C0DB7A811A75 + 00DE9D1328FD410A2C9D6D0F3743ABFF0C08CF16601BE239B6D320C86D094C1C + 37466F7186009F3A3FA2B5671D41A15440C57E3E38CC59AE1F703EC8190BA0A8 + F60D88BA7B21D85D3FC2108093ED891E0905B075D90E48E56451CC35C401154F + 1A41DAD76F10C100C4B22EF4B3B70766CE98C5FE5ED5CB4AC4BDE20753264D85 + FAE85730CD66BAE500352F9AA05B2637886000AE17562161C75BC8F1BD0A2E76 + AE143DB8AB93ECE18BB80D4E78F02060D53E4AF31ABD00B9D2FC5178D6F81564 + B25E2D44E0E6F9603361B216820144951F468575F9307EEC7835A2E1731DD083 + 3BCF760154873FA11F3086016199352899BB0E0BE063DB0F1049145A88B6CE9F + 10EAB9500BC1005475A0F0D20350DA50A446D0A107B73CE40E38CE5D390CAD17 + 2095FF529F4766DD33A9F8A4E00DD0259543778F7418A2B5B31B0E7A2E66119A + 43AC89A0A339B823021CCAA84629212E2CC09C28FBFBA147751F5D88E60E3144 + 71560C033088845BD150F7E1315CE7DE6007774480D0343E4A0BDD88A503C256 + 11F0EBDFC337D5DA1F1A795F2F5C3AB849276024310810CB94667780C9F3C676 + A87FDDAC5A520AF6671289440B60CA7D470488C9BD8F0DE2E5B408842D2250A8 + 96D6BBA60E16606A74BE4EEF4FBE8DD2C3DCB0764033923E057C6E1743D1DD67 + 9071D89D3C0067074E05AC678F8F67F25900D625C43D770365467810EB0093C8 + F42AC83AE2897F8883CF54A0ACA35BA0AD6BE0C9C12B14602B3A6A8F337B7C32 + FB2E64477AE10704F0CA506ED43616402A7197AB20EFF876F200521DB0188054 + 8801FC134B507EEC4EE21D8849AB8482380E3940D3F73E6C85EBCAC98C0A3200 + 9FB842941BBF1BBE74C9D5E7E78A6BB1151DE1BD863D8E4D2D85C2441FF20052 + 2106D8155D800A12FCA04534B084924B04D88A0EDBE93C0848B906C5A7FDC900 + 72E27DA15D4CB80396028CBA0ED0DF4EE725F8137F0A25A416B1DF4E637D99A3 + 0199F17B559F03031DC8287B88ADE8906D4E3A01A646E7EBF45000A9FC5300A2 + 4BC85200AC433CEA011763FCA0B34761CCFDAC0B40B4728D100158EB0ECD7FC0 + 7F80A500D6B8C96734C0DA36F9FE1AC0D84D3EAB0318BBC9871560E94D3E53EE + 6F359B7CA686A9FB378A476BDDC4731D6A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003D34944415478DAEDD96B4853 + 611807F0E774378AEA9B1011F5A50B1551491730ED7E31C8ACA859A989E6D216 + 7929F39E1A0DBBA999E6E60DB29549A195E528CB49A4985250D06596299669D9 + 72B36DBA696F3BCA396D73A6DBDE774DF0FFE90C76CE9EDF9EF7393BECA51042 + C08473321B5D8AF681B60E2D904C42AA080A92FC296BAEC1D44D19038856AE17 + 06E0E4E266D1673E979450FD001465D597625168404DC57DB33E983E675801D4 + 1A15F2CCF280B98EF381BFF32235EC00FC07A750FA931458327319DCE5950D2F + C0A7B67AB4F6DC72D0F668A128480C4EB3560C0C08154AB00DF12CC72970C86D + 318C1F33EA9FDFCA60008ED01D3D954A60E7D23D90CA11B0833F20E0C221572C + 0051F95B90293A2160DBBF110C40AE6E47BF3A3B60FAB419EC7B4B5E1523EE55 + 1F983461325447BD86290E536D0728AAAC035557F7A00806B0E9A23392B6BE83 + 2CEF6BB07EFE268A1EDCD549CBE0ABBC194E6DE7839FF3614AFF1CE280C72F1B + 41A1D60C8A600011B743507E552E8C1D3DB61751D35005F4E0CE719C0765A195 + F47C0E1DA0E9B17E146AEBBE815ADD6980F0DF3A171CC64D344030005D1D28B4 + F00814D6887A1174E8C1BD1DF80096CF5ED5EF1C9380E0CCC72899BB0E0BA0BE + F927C8945A034473DB2FE0B92F3040E80FB13E828EFEE09A0550697EF7BE0E17 + 3CB4A8F8A4808DD0AED280A243D50FF1A54D0147DD17B108E3BB108D48B81705 + 551F9FC14DEE1D76708704389651865202D7B3006BD2D3DD0D1DBAEB984234B5 + CA2182B3D22460281910C04B13A334DE662C1D907E9181B8FA037CD7AD7DE368 + BA3AE1F2D12DF81FE618805CDD63750798BCA86B81EA374DBA25F5F7115DA954 + B2004B63F271DA18109DFD081BC4C36521483FCB40AB5B5AEF1B5BC9008292EF + A3F46037AC1DD08FB24B0B0D2D721095D64246C836FC4BC81880B303A7FD36B0 + C79199620300B621E69EBF8332C3B613EB0093F0F412101C77C70F08385B8404 + 277640737BDF9D839F2FC15674C40157F6385E580AC2700FFC003FFE2D941DB1 + 8B05904AEC9512C889DC4D1E40AA033603900A31806F6201CA8DD94BBC03D169 + C59017CB210768FCD185AD705389CF282203F08ACD47D971FBE16BBBA6F7F5F9 + EBE5D88A0EF35CC31EC7A416427EA2177900A91003EC8BCA4379093EF059D6B7 + 84920B24D88A0EDEEBFA17907203AE9FF12503C88AF3861639E10ED80A60AB0E + 58723D9300FADFE99C045FE27721A27FAF67C61DD4FD0EF47520E35605B6A203 + 77B9D81E402AFA00EC4BE87F00B00DF108C01E00B6DEE4C30E205AB95E8800EC + 718766043002B025C01E37F9CC06FCAF4D3EBB0398BBC96777007336F92CB9BE + DD6CF2591AA6EE3F556E5CDDDB585DE60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C94944415478DAEDD97D4C8C + 711C00F0EF839031FCD76666F9471A6664614B21423609E3F29616256A7A21BD + BF995B5E7A91D27B9B94B4DA89CA8D70666AC9D8D8BC14D17015395D7577DD5D + F9B9A73C8FA7EBF472F7FB5D357DFF7A6EBBE7B7EFE7BEBFEFB3DF3D5F0A2104 + 4CF04E67A2D48843206E5501C9884ECC8382D8C394216B307953DA804BA1AED0 + D2AE361A6085AD23D2678DA7A2524A278068E69CE0026A1E950DAB1AF43D3A01 + 14655055F58AA100142A3972C970060B334BE0EF88A3C61C805F1E89921F24C0 + B2795670CBBB626C013EB6D4A375E7AD41DDAD06C13121AC305F39B600BC7427 + F4B856043B96EF86445E1ADB373A01FEE9226C4D6C6E36138E382E852993260C + F8AB3000A9A2157574B6C39CD973D9EF97BEBC893CAFBAC2F4A933A03AE415CC + 349D3538E0E2113B2C80BC876F40D2D6091E5B0746300087381B54DBFC16320E + 5E037B4B078A6EDC35B156D0281543E4363EB8DB1CA5B8F71007082AEB40AEEC + 1A14C100828AFD506E5536984C34E941D47CAA02BA7117982D840AFF4A7A7B1B + 1770FF4503B4295483221880260FE45F781C0A6BF27A1074D08D5BEC550ED6F3 + 5753DAF70C0850751BDE0ACFEABE8142D1D90771788B05984E9ED62F19A689B9 + 083AB88D3B24806FEA7D14EFB91E0BA05EFC132432751F84B8A503BC9D16F541 + 683F856844F4ED10A8FAF0046E7896B08D3B2C805CF5ABE77360DA5DBD928FF5 + D808AD7215B4B5CBFB21BEB6B4818FD3121681F5287122A5022578D9B30043A2 + BBAB0BDA35EBE8427C6E9642106F15FEC39C77921025796FC25281DAAF121056 + BF87EF9ABDAF1D2A65275CF6D98CFF38CD00A48A6E43D6EE13CFEB9AA0FAF567 + CD96FA7B4497C964C6018466DEC30671B65D0CB55F24A0D66CAD770DCD2C00EB + 163A165F86927D1DB156801B32A51A3E354921EFCE3348F1DB8ABF89B501382B + 70C67D037B1D9C2A2403F0BC50825203B611AB001381C9A59076D2093FC0E39C + 00A59DDAAEF953DFFBE4E0E78AB0251DB4DF8EBD8E4ABF03E981CEF801EEFC22 + 9419B49305908AF02BA59015BC8B3C8054058C062015C4006E3105283B6C0FF1 + 0A8426DD849C701E3940C30F25B6C47545548A800CE040782ECA8CD8078D7F5E + 2D5EC87F882DE90097B5EC75586221E4C61C200F2015C4007B4372504EB42B7C + 91F46EA1F80211B6A47DF7D8FD05245C87FCB36E6400191107A1494AB8025A00 + 7DD61812C01815D037FEF97A3D2BDA8DF85388E87C803BE048297A842D69AF9D + B63A01D8E703C69ED0606DE271C03800036024867C58014433E7C47F35E41B07 + 8C038C0518C9211F36C0480DF9461D6038433E7DD61F35433E7D83C9FB372483 + 50DD6BE4B9580000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C14944415478DAEDD96B4853 + 611807F067DD8DC2FA2644847DE94245946205A6955D15343372566AE265694A + 5ECAE6FD120DCB5233CDBBD0D24C14B52CA5B41691624A4141172D4BF25AB69C + BA4D37ED6DC7F2B8A3DB9CDB7B6C1FCEFFD3D987BD3C3F9EF73DBCDBC34208C1 + 78D817725046F429E8EC93019D894B2980A2042F963E6B8CD7CDFADF00732B5B + A4CB1A2F05952C9580EB11EED03B209F5540E3B30733EA06F11DB5005A2B570A + 2D00164BAF6DA953180003302440709600DB21363531066FDBCDB070DE1C8DC5 + 61075CF5B6C6022878FA1E84FD43E063A71961B080B2BA16900C8F4C8B305840 + EDEB36E897CAA645D002908DEA7F149A5ABE83543A4441781D5A0B460B16538A + C50A08CCA845499C3D5800AD9DBF40289653109DBD83E0EFB08182A0052091FD + 1EFB1C9AF948A7E2137CF6419F4406FD039229888EDE7E0870D84422B05EE6CE + A6D7A0645F1B12A04F4647466040B18E2AC4B71E1170D9DBF15FA7FD53AB51AA + FF012C1D68EE104275C327F8A1D8FB93231B1E821B0107E90388A4A3FAAC4DC9 + AB966E6878F74DB1A526AEE862B1980460DD42930111398FB1411CAD364273BB + 10E48AADF5B1AD8702C07688FD921EA0B4405BAC1D508E78580E5FBB455050D5 + 04E941765A03A4320972C97684B526EB8177E41A4B6B00CE0E5CF4DC4B3E8765 + 54CF08C07B1883D29E24C396556670CFBF463D809358813242EC69EBC07842D3 + 2A21F39C8356802FBDAD68F7150B908FCAA1CCAF1ACC4DB7A907F85C2E4399E7 + 0F2B7ED4FF7D73F0F8026C45734F5A93CFB159559015EAA815809DE5809E370B + E0C8D66390C2CE24BFA312E0C92B41395C27124057A26E56426ED8510A4024ED + 43834303B062F94A1253F9A61C716EB9C392454BA121FC2D181B2D9B1980AE0E + A802ECBF66899A7B3E40B6DB6DB059BF9F451CDC9D0966D025EA84187B1E785A + 9EA65C3F0CAE03DCD220C4AFCF83F973E78F211ABFD6037170D798AC839AE03A + E2D7E2F4008FF8229417E94C7B072252CB213F8A4D0128EA40C1C567A0B8B160 + 0C418438B8A5BE0FC162F58E2937588D80B69FC3B4762036BD6C0A8078564610 + 513EB85A015CA3F82827FA0474FDFB6B31B1F029B6A2435C7691CF9129C5C08F + 7755F916221071F7C3A1FEF30BB8CBA9200FAE4E00BAA209A04DD4028E87E7A3 + FC38776817FEDD424945026C45073A5B4F0092EF40E1250FFC973902901DED06 + DD229A3BA004D0352AAFD39301B3D101AC00E2DFE9DC380FDADF42B4CE079407 + 1CE925CFB015EDEB64A51680753EF03F26340C800118128019F2691966C8C700 + 18000D0066C8A794990CF97459DF60867CBA66BCEE3F6EDC4ADD3D2410F50000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003BA4944415478DAEDD96B4893 + 511807F06795955158DF8488B02F9954442956605A59560A9A1A352B35F196A6 + E4A5CCFB2D1A9679C934EF42A69928D3F246694E22C59482822EB34CF15EB69C + BA4D37EDB4699B7B75EA2EE7D505FB7F7AF76187E7B7E77DB6F3EE501042200E + F546364A8FBC04BD437C203331C9055014E74651650D71DD94E50618995A2265 + D678C3A8A0A80DA0A5A152A16E88DE332FE05E98330C8E08FE5F00A9954B8514 + 0085A2D25C29150D4003502740402603DB10EBE9EA80BBE51E58B36AC582C561 + 07DC7537C30228A8FF04ACE131F0B05A18A1B6007A631B70C7271645A82DA0EE + 5D270CF3F88B224801F027551F85D6B61FC0E38D11106EA7F4417BF53A42B158 + 017EE97528D1F32816407BEF6F6071040444EFE028F8D8EC2420B06EE6C4002E + FFCFD4EBA08CE74A151FE7711C86B87C181EE1CE41F40C0E83AFCDEE399D5034 + 32B7D357D36A519297B904A04A2627266044B88E2C44D7001B82A907F0037C52 + 6A508ACF092C1D60F6B0A0A6F92BFC14DEFBB3C31F1F83FBBE27F13F0F88016C + DEA42A1F0E216FDBFAA1F96397F0969AD9A273381C0200DB10CF068465BFC006 + B135DD05CC6E160884B7D697CE0185003C3E173964D982BEAE01D0EC1228F302 + BC132B51AA9F25D60E4887332E808E7E361454B7429ABF95DC005A55144A7D99 + 047BB71AC2539F5AF901383B70D3F598E43A24BD466EC0F7C17674E48E310826 + 0540F7AE0123BDFDF3033CE3CB517AA035691D102728B50232AED9C805A066DA + A0574C06D8ED3B0BC9D40CC97B64023C6ED351C6F5D3C287FAE96F0E5A3E035B + D1C117CD24D7D199D59019644B00B0794368746C04366FDA22C154BC2F439E0F + 9D61FDDA0DD01CFA0174B4372E0C70A595A0EC607B0980AC443CA8809C903304 + 80458209620E7C862CA747606E6041110DEEA13843E863F74294350D5C4D2E13 + 7EBDE50290D5015980E0527F94DF940B5A2BB5A6102D1D4D201ADCEDBA3BA036 + A051F4B0A53860293B20AC0305145F81E29682298428A2C12DF5AA02E36D07E7 + 6C0065025C628B506EF839D23B109652067911D439432C8D10457A70150274FE + 1A27B503D1697499003122E65928347D7B0D4F3CCB25832B17C031221F65475E + 80BE7F7F2DC617D6632B3AD0E1B0E43A3CB918F2631DF16F256603C8CA6C8032 + 6BC8049C0FCD437931CED0CD9ABE85128B18D88AF63B673603487A0C85B75CF0 + 6FA74580AC4827E86793DC81A5022C4507B09F0FE4C4B890FE2D44EADFEBD207 + 1C69250DD88AF6B2375D7A0059D10034007506680EF9E48CE6904F03D0004800 + 2CD7219F32EBABCD219FB211D7FD17176E47DDA658EB770000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'SetProperties_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003B54944415478DAEDD97B4853 + 511C07F0DF2A2BA3B0FE1322C2FEC9A4224AB102D3CAB252D0D4A859A989AF34 + 251F65BE5FD1B0CC47A6F91632CD4451CB17A5398914530A0A7A6899E2BB6C39 + 759B6EDA6957DB75D3A97B9C6B2BF6FDEBEC8F7BF87DF89D7338779786100251 + E8D732516AF805E81DE20395894ACC838218179A327388EAA6FD6D8081B13952 + 648E57CC729ACA009AEB2BE4EA06F1CCFF0BB813E2088323827F174069E562A1 + 0440A3297530281435400D5025805F3A13DB26D6D1D60257F35DB06AC5B2058B + C30EB8ED6A82059057F70158C363E066B130426501250D6DC01D9F5814A1B280 + DA379D30CCE32F8AA004C09F547E2BB4B47D031E6F4C02E17242173457AE9128 + 16EB65CE27B516C5BB1FC60268EFFD092C8E4002D13B380A5E56DBE7201489D4 + EBB408C0E5FF9AFA1D90F654A1C963DC8EC210970FC323DC39889EC161F0B6DA + A934422AE0724A0D4AF0302501CA647262024684F34843740DB02190BE0FFFFB + 805752354AF23A86A503AD3D2CA86EFA0CDF856B7F76F8E36370D7FB38FECB9C + 08C0E64D2ADD01515EB7F543D3FB2EE1929AB9A273381CB9003C3E17D9655883 + AEB61E306CE268320342329F6183581BEF80D66E1608844BEB53E7805C004665 + 044A7E9E00BB37EBC363AF9AF9019EF11528D9C71C6B07C4C3191740473F1BF2 + AA5A20C5D74226C0D7C17674E8962108260550E2590D063A7B6507E0ECC075E7 + 23E43828B55A66003DDD0ABD686582CD9ED390484F239F910A708F2D43A9FE96 + 9475409480E47248BB62250160F386D0E8D8086CDCB089C494BF2D45EEF71D61 + EDEA75D014FC0EB434D72F0C70BB5982D2AE9E14BED44F9F1C8C5C26B6A203CF + 9B90E3C8F42A480FB0960098C519A1D6818F90E1F0004CF5CC68C4C63D10A30F + 7DEC5E88B06480B3D14512362FC099518432036D49005509BB570E5941A72400 + 81C5BE28B7311B34966B4C219A3B1A81D8B85BB5B7418D5F03F1AE223F80AA0E + 480308EB407E8597A0B0396F0A4184D8B8C51E9560B865FF9CFB93CA7580188B + 2388886F5C99004ED105283BF40CE51D08492A859C30BAD4538840443D0986C6 + 2F2FE1917B19B971E50274FE18A7B403912925F30264C9BC00FBB05C94197E0E + FAFEFCB5189B5F87AD687FBB83E43834B11072A3EDF15FE66603A88A3840D148 + BD4E9F0DCE4139518ED0CD9A5E42F1054C6C45FB9C319901243C84FC1B4ED400 + 32C21DA09F4D7107C4005897D06CC0527400FBBFD359514E949F424BF68123A5 + A81E5BD11EB6C64B0FA02A6A801AA0CA00F5473E19A3FEC8A706A80133C528F2 + 9CCA7CE45334A2BA7F03DA3047DDD17A0E4D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003B94944415478DAEDD97B4853 + 511800F06F95BD28AAFF8488B07F32A98832ACC0B4A79542CB8A9A3D34315DDA + 24D332DFA6D1B0CC47E6F22D649A49A1969A94E624524C2928E8A1658A8FB46C + B9E936B769A7DDD96E9BCE39B77365C1FDFE3A63DCC3F7DB77BEC3D93D0C8410 + A88375290BA5459D82EE7EB9EA33EF412DE00ADF430EE43826391F0AE34E334C + 994F9D37431F80AAD0046C747046C6CCF18A5FC6301B40636DF994AA413C4303 + CC167033DC03FA0614FF2F80D2CC358212008361D2CE6654D0001A604E80C00C + 3EB626B6B25C04DECEEB60CEAC197A93C30EB8E1ED8805905FF30104A221F071 + D18F305B40715D0B4864C39322CC1650FDA61D4452F9A408AC873935403E627A + 2B34B57C07A974480B717A9F35CC9B3D1FCB4EA1F3381D90568D12D93BB0005A + BB7F8140ACD04274F70D0287B91A0B422F4022FFADFA1C9CFED4A8C9E37C7643 + BF440EA201C93844579F08FC996B4904D625748E5785927C7792005362647818 + 0694F3E84274F40A2184B519FF598893528952387BB054A0B94B00950D9FE187 + 72ED8F0DB96C086EF9EF351820954B905BA62B585BDA00F76002635280503A62 + 7205D4F1BAA5071ADE772897D4BF23BA582C9E12805B118D529F27C1FAE5B6F0 + 88536538203CEB193688ABC31A68EE148042B9B43EB5F71A0CF8DAD78AB65FB7 + 03C588028AFD2A61A3D5A689017E89E52835C0196B0534432C53405B8F10F29F + 3401EFBC8B4100560613BD68E6C3C10D472099954E3E6310006705AE78ED22C7 + A16995E30042693F1A1C1A80A54B969198B2B725887DC70316CC5D080D61EF60 + D1BCC5FA01ECF8529416B49FB20AA82338B50CD22F30B5004E09F6A8B9F72364 + BADF859D364E0CA271B7C6D9C237613744EFE78297FD19123621C0E75A314ABF + 7840F9A77E74E7E0E6F1B1251D72C2911C5FCE780219C1AE5A809087E7515E7D + 0E58CCB450211ADBEA8168DC9596ABA02AB08E38EA4F0EF0E23E405921874800 + 551179BB0CB2430F6B019479A0C0A2B350D498AF42104134EE43DF0AB05BB145 + AB470C065055015D0062AC892042B3718D024C6705D4DF118898C76150FFE525 + DC6797928D6B10C033B610E5441CA5BC02E12925901BC9C27F945003DA7FCA28 + FCFD954DCC2BD6021833874EC0C9C83C9415751CBEFD7DB5185F50832DE920B7 + 6DE43822B908F2624FE27FBD3E16405550063816968B72633CA05330BA84120B + F9D8920E38EAF80F90740F0AAE7AE25F42042033CA1D7A841457600C005B138F + 054C5705B0BE9DCE8EF1A47C179AB60B8EE9B8E4A36F6868000DA02FF9E84B3E + 9382069803C098E77402FEC7F803A2434DDDDDEF596E0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'SetProperties_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003B94944415478DAEDD96B4853 + 611807F06795955158DF8488B02F9954442956605A59560A9A1A352B35F196A6 + E4A5CCFB2D1A9679C934EF42A69928D3F246694E22C59482822EB34CF15EB69C + BA4D37ED6DD376DC74EADCDE630AE7FFE9ECC3393C3F9EF739BC3B2F0D2104D2 + D06F64A2AC282768FF350A64262A310F0A625C68EA3C435A376D3A2035FC1274 + 0F08277EA714D5612BDAC3D65821C0C0D81CA9F2BC37AC32DABC00B2321DD054 + 57BEA06E48EEA10014802CC0BD1047E81F122D5F00A995CB8414008DA6D6AB59 + A550000AB094007EE92C6C43ACA3AD05AEE67B60CDAA157316871D70D7D5040B + 20AFF613700647C0CD626EC4920530EB5B803F3A362F02EB660E27A0E65D3B0C + 0A844A215489C2EDB414201C577F149A5B7E80403022877039A50B9AABD76141 + 2804F8A4D6A078F7A35800ADDDBF81C313C921BAFB87C1CB6AA71C02EB129202 + F8C23F13BF03D29EAB547C8CDB7118E00B6170883F03D1D53F08DE56BB0904D6 + 21BE9A528D123C4C09803A191F1B8321F17314213AFAB810483FA0344020E423 + BB0C6BD0D5D603864D1C6D56805752154AF23A81A503EC2E0E54357E859FE2B5 + 3F3DC2D111B8EF7D526900A3220225BF4C80BD5BF5E1A957F5FC00AE605CED0E + 48F3B6A5171A3F768897D4D4169DC7E3290DF8DEDF8A8EDC3104D1B808989E55 + 60A0B35F794048E60B6C106BE35DC0EEE48048BCB4BEB4F7290DA0A75BA1576C + 16D8EC3B0B89F434E21E8500CFF87294EC638EB503B2E18D8AA0AD970B7995CD + 90E26B2107E00A06D0F0C8106CDEB485C094BD2F41EE0F1D61FDDA0DD018FC01 + B434372E0C80B303379D8F11D741A955330066714688DDF719321C1E81A99E19 + 4D32B88762F4A187DB0D11960C7036BA2CF7EA5508708F2D45A9FE96A475409A + 80E43248BB662507082CF645B90DD9A0B1526302D1D4D60092C1DDAEBD03AAFD + EA253BE5F9016EB79928EDFA69F19FFAC93707239785ADE8C08B26C475647A25 + A40758CB01C47520BFC22B50D8943781904432B8C51E1560B8EDA0DC8CCC0A70 + 6614A1CC405B024056C21E944156D09919432C8B90447670550290D581D90052 + 44D4B36068F8F61A9EB8971283BB2C3AA06C6605384517A0ECD073A4772024A9 + 0472C2E8F83FEE4A01647F5E8F4C61120055A3703B6D1F968B32C32F40CFBF4F + 8BB1F9B5D88AF6B73B4C5C872616426EB43DF900B2220BC0BA84CE07E7A09C28 + 47E8E44C2EA1F80216B6A27DCE994C01121E43FE2D27FC432C0164843B402F97 + E40E2C1660D975E07F1CF2917AC0B158877CD4090D05A000D421DF1480D4CA65 + 421DF22D25802AF729042CC7FC052C9557DD2B66165A0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'SetProperties_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C64944415478DAEDD96B4853 + 611807F06795DD28AC6F4244D8974A2AA2142B30ADECAAA0A991EBA226DEB294 + D4CABCD78A86DDD44CF32E649689A296374A731225A614147499654A39B5D672 + B36DBA696F3BB39D3637E7697B8F69ECFFE9ECC3393C3F9EF739E7ECBC0C8410 + A87220261F652778438F50A6FC9D54C4015C09F374208FE392EFC0ED0BBE0C63 + AEA7AA9BA10E609ECE41B92C5FE8FC3688AD705D61A5144251A2BF126063EF84 + 0CB9C6334E2543272023E130F0FA463A905ED288ADE8600FFB31012D8D557FD5 + 0DE21C4A00BA620298009319702DD607F8FDF2A90BA0B572B5D00260308C7AB6 + 181413C004984C80882C0EB621B6B4308700A735306BC634BDC561075C0970C0 + 02286C780302D100043AEB47607D99C309287BDA0692C1214A0843A2F3751A27 + A0FE452788A432DA107A01B261E347A1B5ED0B48A5031A08FFDDCB61CECCB91A + 08AC4B282CA31E25056DC50268E77D078158AE81E0F17F4088EB4A0D04D62156 + 0124B29FCADF91990F0C2A3E31703BF4496420EA976821BAF82208755D4D22A8 + 00A43209DA9FED06CB2DAC80ED7E953126E0787A1D4A0E762401C664786808FA + 15D7D185F8D42B8428E606CA0076F51994F62819D62EB1867B2175630342526B + 516AC84E2C1DE07609A0B6F93D7C55ACFDD1910D0EC0F5D05D94001FF9ED68CB + 255B900FCBA1EC682DD858AE1F1F20940E1BDD01559EB7F540F3EB4F8A25F5E7 + 155D2C16530630B35CD1632E07DCD7ED83146626790E25406CCE436C1037FB55 + C0FD2C00B96269BDEBECD50208A57DE8C7403F2C5AB898C454BE2C4741377D60 + DEECF9D01CF30ACCE72CD00F389A5485D2C29CB076403DE2413974F408A1B0A6 + 15D2C39D35003BAEDA216EEF5BC8F6BE058E563B18C4E06E4AB4866E210FCEB8 + B0C1CFEE88C69D8B12006707CEFB6D238FA3336AB50051A5E1A8A0290FCCA69B + 29112D1D4D400CEE328B155017F19478D11C1F1074B902659C70A1AD03AA44A6 + 5542E649570D80A20E14517C0C8A5B0A950822C4E096065783EDD28D5A0F3F9D + 80C08B6528F3D41EC59FFA913B07BB8083ADE8A8430EE4F1D9AC1AC88A74D31A + 62750411F5C1A504F06397A09C280F124057E26F54426EF45E9D772102C1BA1F + 034D1F9EC0DDA00A72700D02D0D5017D002A99741D30E41A3A01BEE78A505E9C + 27ED1D884D2D87FC7826FECFEB2A00DD9FD7CFA697D103F08A2F40390907A1FB + F7A7C5CBB71BB0157D62FF66F2382EA5180ACE79E15F42A30174653400DB1013 + 5B4CF92C1FF82C18594213B1C5841DA0BE474657260C30E53AF0AF36F968DBE0 + 306DF28D1113C00498CC00D3261FC5FC579B7C869CA7133015F30B1ED764DDA8 + 024D720000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003B54944415478DAEDD96B4893 + 511807F067DD8DC2FA2644447DC9A4222AB102D3CAB252C8D4C875D3C45B9A92 + 6999F75B342CF39269DE85CC3251D4F246694E22C59482822E5AA6782F5B6EBA + 4D37EDB457DBDBA6D3E9768E4DD8FFD3BB0FEFCBF3E339CFF6EE1C064208A439 + 1D9885D242EDA1872B0292098E7B040F6F3832D47986B46EC67480D85C36B6A2 + BDED4C15020C4D2C902ACF7BCD2E614C0230AFA5A38C084768FB398CAD704589 + 88CF81DC28671AD050533AAB6E50F74C09480E3D0F5DFDE31D48CAAFC156B4BB + ADC9DC0348450BD00234197027C801FA06C4F31740B47299100130186AFD38AA + 142D400BD024804F2A1BDB10AFD7D305178B6DB074D182698BC3FA3247016EBB + 986201E4547F040E6F085C2D95235489C2D7699C80C2DA66100C8F1043100754 + BD6D039E50A4144164098946D51F85C6E6EF20140EC9219C8FEA83CE92E57208 + AC43EC9D5C8562DD0E6001B474FD020E5F2C87E8EA1B044FABCD7208220081E8 + F7D867BF94672A151FE57A08FA0522E00D0826213AFB78E065B5954660055C4A + AA4471EE6634409D8C8E8CC080E4398A10EDBD5CF067EEC60FF04CA840099E87 + B174A0A9930315F55FE08764ED4F8C687808EE7A1D2107E00A47D5EE80346F9A + 7BA0FE43BB6449FD7B45E7F3F97303084A7F8E0D626DB2059A3A3820962CADCF + 6DBD64001EB1A528D1DB026B0764C31F16436B0F1772CA1B21E9B2257900CE0E + 5C773A485F0724579001B84517A364DF63C43A208D5F6209A45CB1C20F70BD59 + 8852AE1E97FCA91FFFE66065B3B115ED7FD694BE0E4F2D87543F6BFC0027563E + 4AF7B7A501A41272AF0432024E900790EAC044802ACFD3980EA81A85AFD38E91 + B92833D88E780782128A202B84490E407A7B3D3CA99006605D42E742B2517AE8 + 19E8FEBBB518FDB01A5BD1BEA7F6D1D7C1F179901D790EFF104F0490CA6C0142 + 91009D4AB3067D3D0360D9C430A60450474C59110ED0C1195F427375C4A40CC0 + 2A0B43892FE260FBBA9DF0C4B3727AC05C1FF229037CEB6B41FB6F198178540C + 851E1560B87ED7CC019AD00166AA157AD9C4069B1D27219E9942DFA371877C5C + 613F1A1C1A8035ABD7D298927745C8EDBE03AC58B612EA03DF83AECE2AE580FF + 75C8671E638C9A7A3F419AFD03303330675083BB376A277473BB20EC180B9C8C + 2FC86D0468DC098D7FC165945D97098B172E1E4334B4D60135B81BF53641A54F + 2DB56FABD900491DC827EF22E435E48C21A850835BE05E06461BF64CDA4BD238 + 00752D8BA0223BB8F3022045443C0D84BAAFAFE0B15B313DB83306680FF96618 + 59802AF72B04CCC7FC0149826EDD14A5FBAB0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C74944415478DAEDD96B4893 + 511807F06795955158DF8488A82F995444295660DAD5CAA0A545AD8B9A784B33 + 322D33EF331A9679C9346F25642B13452D6F94E62452CC2828E8A2658A665AB6 + 9C739BDB5CA7BDB3BD6DBABC6CE7E804FF9FCE3EBCEF9EDF9E73B677E7301042 + A0CED1D06C94CD768376BE54F53A219707B81270D89E1E8727DE877B97DD1986 + DC4F5D3763282033D2153A05326C85EB8A26C0DACE11E9738F17BC12C6A88089 + E8000568A8291D5737A86B74025817B2D02DB63BB4FE94622B5C57D8495CC88D + F52403488B3C011D3D831D48CDAFC156B4EF01BB890790CA34601A60CC80EB61 + 6ED02D944F5D00D1CA354204C06018F4EBAE57A601D3000C007DAED30908CCE0 + 615BC4CBCCCDC0CB712DCC993583C8A7A2F3719A025CF3B2C7F206DCEAF7C0EF + ED07EFBD6410C40185B54D20960E8C8AC03E857001AA5EB742AF44362A02EB22 + 5603640AC397C2CBA6EF2091F46B213CF75880E9EC795AC5620504A455A1049F + 6D5800CD1DBF802F926B213ABAFBC09FB94A0B41042096FD56BD0E4E7FAC57F1 + B1DE3BA1472C835EA17818E26B772F9C66AEA111580167522B51A2EF761A6048 + 1403032054DE4717A2AD4B0021AC8DF801FEC91528D97F17960E347EE54345FD + 27F8A19CFB432393F6C38DD3BBC901041285C11D50E7555327D4BF6B534EA97F + 8FE8229168620061594FB0419CEC5643633B1FE4CAA9F5B1B58B0CC02FA114A5 + 043862ED8066445239B4740A805BFE1252CFEE250FC0D9814B1E3BE8F1C5B40A + 32009FB8629416B48F5807D4094E2981F4734CFC00EF2B8528FDFC7EE59FFAC1 + 6F0E4E0E0F5BD121C7EDE97174463964043BE1077870F25156C8011A402A1137 + 4BE0D6C583F83777870248754013A06F743E4E4F4607B002DC6372D1EDF0C3C4 + 3B10965C04D9112CFC53480D20BDBD1E9D5AA805C0B6885D22725056E431F8F6 + 776B31EE5E35B6A2838E6CA1C7E149799013E332668044264647329DC0C2DC12 + 38CEF18C31034865BC004E59144A799A08EB965AC143FFCAFF0326E3906F34C0 + 97EE66B4F5AA0DC8157228F4AB00EB651B46064CC621DF48005606133D6BE481 + F3FA4390C44AA7AF31BA433E81A407F5F50B61F1A22534A6E44D11F2B9E306F3 + E72E80FAD0B76066BA7064C0641EF239C4DBA2C6AE0F90E97A17B65B3A30A885 + BB39D60ABE093A206A1F073C6C4F6AFD8F36BA43BE9082B328A7EE3698CC3451 + 211A5AEA805AB82BCC574265602DB5ED397EC044764059070ACC3B05790D5C15 + 820AB5700B7CCBC066F9A6615B314607A0C69A082A9A0B774A00D408F6A350A8 + FBFC1C1EF814D30B77CA00C612A33BE4D3E71E4673C8A76FD475FF01FADA7EDD + E0B20F440000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C14944415478DAEDD9794893 + 611C07F0DFDB6D14D67F4244D43F1D54441956505AD969A09951B3CBC4D43423 + 8F32EFB268D8E191B9E60D2DCD44314B4D4A731225A614147468599267ADE55C + BBB5A76DB5D74DA7EE789E35C1EF5FEFFE785F7F9FFD9E9FBC7B1E0A21049A1C + 8EE5A0ACB883D0D923079289492904CE85C39439CFD0D44D69030E44E5A2DC78 + 2F68E3CBD49F930AB8D88A0EDEEF340048BE03F997BCD580D58E2EC894E7BDE0 + 96517A01997147A04B40B80383000DB5E5467543758F41004B75001B8071360B + 65C77B43EB0F19B6C2F5253E250F0A128E9101B0E38E42C7BF216615D5622B3A + C0C3D1F2005219078C03AC19703DDA0B7842C5D80510AD5C2B44001465D6EB89 + 4919075803C094FBAC06606AF4BE4E876670B10DF17C3B5BF075590153274D20 + F2AD0C0BB8E6EB84E50FE4D5BC037EAF14FC768D8CC0BA8470024A9E378358D6 + 372A02EB10E30454BF6A855E897C54041180BCDFFC51686CFE0612895407716C + E722B099325DA758AC806076354AF2DF8C05D0D2F113F822850EA283F70B82DC + 96EA208800C4F2DFEACFE1E98F4C2A3EC16F2BF488E5D02B140F41B4F37AE1A4 + DB721A8115708A558592039C698039E9EFEB03A1F239FA105FBB0510C1588B1F + 10945A895283B663E940533B1F2AEB3FC277E5DA1F1CB94C0A374EEE20071048 + FACDEE80262F9BBBA0FEED57E5921A7845178944960144673DC60671775C064D + 6D7C502897D687D66E3280C0A4729416EC82B503DA11C914F0A54B00790F1B81 + 15B28B3C0067072EFA6CA1AF23D9956400FE574B113BCC95580734094F2B83F4 + D36EF8017E974B50FA99DDCA1FF57FFF7330395C6C45471C72A2AFCF673C848C + 7077FC9BBB3ECC229415E141034825F666196447EEC5BFBD3E1840AA03160390 + 8A3600EB12F2BE50807262F613EF4074EA3DC88D65E01F620D80F4F6FA795689 + 5100895C8C3C33DD6191DD1260EE49A486050C3E23BB9A5F83ADE830CF8DF4B5 + F61999210066C53994F6241956CEB387FB4155860348C518C0675E0BDA74C501 + 14FD0A2809AC84D5F3D750231E31FD8F43BE91008C0C37F4B4890B7B56ED8314 + 463A7D8FD51DF209243DE89754087366CFA53165AFEF21FF5B5E3063DA4CA88F + 7A03B636B38C0358B203DB12D7A3A6EEF79079E436382FD946A9067743823D74 + 0A3AE09C2B137CD61FD7F9196A75877C11C5218853970393274E56231ABED481 + 6A7017DA2D86AAD0E7AA5D43C300FFEB904F59070A2D3C01850D796A842AAAC1 + 2D0EA8008705EB86EC6458E5098D364215EDC11D13000D22FE4114D47D7A0677 + FD4BE9C11D330043627500539E6135877CA64653F71FC25284DD30CDBCD00000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003BB4944415478DAEDD97F4C8C + 711C07F0CF21642CFE6B33B3FC238619B5B0A510219B54A60B95D62FA5A61FA4 + DF2A738BA8A4F4BB4D4A5AADA25FA374CDD4526363F3A348ADDFE4749DBBEBEE + CAD73DC73DEE94AEEEBEDFBACCFBAFE7D9ED79F679DDE7F9DC9EFB7E19082190 + C731221765469E80BE21B1EC3C2EBF0E7025D061177D1C9E5808B9318E0C4DEE + 27AF9B311980541401C66656489D7B3C639733C6018E87E6A09C6867E8E68864 + E7F1056C6C45FBD99BFF0624DC85FCCB2E34A0B9BE625ADDA0AEF92B2023D209 + FAB9843B30538039D701E6854C9415ED029D5F44D80A9F28D189795010EB4606 + 901A790A7A7F0D714A513DB6A2BDECCC661E402AFF01FF01DA0CB811E60C833C + C9DC0510AD5C2144000C8646EF576AE59F00A8739DD600D4CD84AFD3731E1090 + CEC636C406FA7AE06EB519162D9837E9B782F511A200D7DCCDB100F2EADE0067 + 78043C0E4D8EC03AC43801250D6D20108DAA44682DA0F645270C0BC52A114400 + E231CD47A1A5ED130885234A08B78386A0BB708952B158017EA9B528DE730F16 + 407BEF57E0F0254A88DEC16FE063BD4109410420107F979D07A53D54ABF8588F + 7D302410C3304F300ED133380CBED69B680456C0D9941A94E065410334C9D8E8 + 28F0A4F79908D135C08560E676FC009FA46A94E4B31F4B075A7B3850DDF41E3E + 4B9FFD3F23168DC04DDF03E4005CE198C61D90E7795B3F34BDEE923E52BF5FD1 + F97CFECC00C2321F6183D8986D84D66E0E48A48FD6BBCE013200EFF80A94EC67 + 85B5038AE18B24D0D1CF85BCAA1648F13F441E80B303975CF7D2C721A9D56400 + 9E71652835F030B10EC813945C0E69E7ACF12FEE7A5C294169E78F48FFD4FFFC + E560E5B2B1151D7CD29C3E8E4AAF82F4201BFCCBEBAEAC2294196C47034825E2 + 563964851C250F20D5014500D64768363A8075885D620A5076B83DF10E842595 + 424E0473CA00A158801C326CC0507F3DB06CAF335402482FAF47A5944C0BC0AA + BC88921F27C096D54670DFA7E6EF80D9D8E45305F838D88E765F3501C998044A + BCABC1D860DBD401A4321D0033DD1A3D696583EDD66390C84CA3AFD1BA4D3EAE + 70087D1BE1C1CA15AB684CF9CB52E479DB19962E5E064DA1AF404F77B96AC06C + 6DF2595E3745AD036F21C3E90E58ACB7645083BB33D608FAB8BD70F1300B5C4D + 4F2BFD8BD3BA4DBEE0627F94DB980D3AF3756488E68E46A00677ADFE3AA80968 + A016DD54036673934F5A070A283C0385CD793204156A708BBD2AC164CD8E710B + 015AB9C9A788A0A238B86A0166B203F2CF2844F4835068FCF014EE7996D1833B + 67005389D601D4B987D600D48DBCEE1F12C587DD2397F66C0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'SetProperties_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C74944415478DAEDD96B4853 + 611807F067DD8BC2FA2644847DC9A422BAD0054ABB5A19646AE4BA69E265694A + A6654B53B368D84DCD349D3321B34C14AD2CA5342751624A4141172D4BAAA565 + CB39777173BDEDCC76DA96393D7BDF6D82FF4F671FCECBF3DBF33EE39CBD2C84 + 10E81370B2105D39EE0BAD3F7A80644E6496425E3C9B65C91AFABA598680BDF1 + F94890B01BBE76AA749FCF5DAFC15674F4CED5F4F5F1B422C83FB9570758E2EA + 8198ACF75458CE320B2015534043EDDD217583BAA75FC0AED83C9497E40F9FC5 + 7D5B28A55088ADE8485FB7BF80D41B70FD740019404E821FB4490877C05A8061 + D701F65101CA4D0A20FE2B9494560085C94164005909FB40F46788338B6BB115 + 1DEAE36A7D00A98C004600F60CB818E70F1D52F5F00510ADDC2044002C96450F + 888C82F561CE1600A6E9F7717A04C02058B750145F886D889D1C1D20D863018C + 1F336AC06F05EB105380F3C16E58000535AF41DCA584902D0323EC1650FAA419 + E43DBD6611760BA87EDE0A5D0A95590411804A63F92834367F038542698408DA + EC0C13C74D322A162B2032AB1AA570D66201B4887E8258A63642883ABA21DC73 + AE11820840AEFAA5FB1C937D9F51F1C9211BA053AE822EA9FC1FC4978E2E88F0 + 9C4F23B0020E6656A1D4D07534C092687A7B41AA5DA73FC4A7760970D9CBF103 + C2D32B517AF8462C1D68FA2286CAFA77F05DBBF74DA3EA51C2A5884DE4001285 + C6E20EE8F3ACB90DEA5F7DD26EA9BF8FE83299CC3A8038C1036C102FD779D0F4 + 590C6AEDD67ADBDA4E061096721765447A60ED8061643D6AF8D82681828A46C8 + 3CB4853C0067074E05AEA7AF8F65551A0198ACD72F8073EE16CA8ADE4AAC03FA + C4649443F6614FFC7FAF879C2945D947B6695FEAFB7E3978F9426C4573F7B8D1 + D727F815C08FF1C20F08E4152301D78706904AFCE572C83DB61DFF16320590EA + 802900DB10DBAA03E6000A951CEDCCF102674717E0795F60FD17A03F2323DD81 + B8F432FA8C6C3000DEBD4494F1301516CE5C0CB7C3ABCC03AC79C8670EF0A1A3 + 05AD39BB14D41A35948655C212A765FF07D8EA906F20009BEF891E3509C17BD1 + 0E486367D3F7D8DD219F44D189BA9552983E6D068D297F51863857FD61F28429 + 501FFB121C264E1D1860CB433EF70B2B5153FB1BC8F1BB06EB5CDC59D4E0AE4A + 5E0C5F252248DCCA83C095FB8D5E82ECEE908F5B7208E5D75D81B1A3C7EA100D + 1FEB801ADCD98E73A02AEA09F59FD5D001D6EC80B60E145574008A1A0A74082A + D4E09684DE83A5B356FCF31E6D97877C86082A86833B6880AD0FF92844D29D58 + A87BFF186E726ED183CB0860ED0E0C36760760B286DD0098465FF76F349B87DD + CCD1F7100000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003BF4944415478DAEDD96B4853 + 611807F06795955158DF8488B02F595444195DA0B4B2AC1434357276D1C4CBD2 + 94D4CA4C53B36858E625D3BC0B9966A2CCCA1BA5398912530A0ABA6837C96BD9 + DAC55DDCB4B76DB1E3A64BE7F6BE7382FF4FE730CEE1F9F1BCCF76CE5E1A4208 + 54F1B95C82F22F7A403757A23C6716B20157228FD951C7D16915501043A71972 + 3F55DD346D808E5F83D80AD7964B192C0AB0C9D611E9738F97EC4ADA18C0F198 + 42941B7B147AB852E579627103B6A2CF78EEA48E2FA69642E1E5E314A0A5B16A + 52DD505CA313805488018E4415A082786FE8E4FC5B42C9256C6C45877AD88D00 + 52EE41F1551F32809C582FE8E511EE80B100D3AE03F4F3B9282FDE87F8B7507C + 6A119424F8910164C69E90FF0EFCEB40465923B6A203DD6D8D0F209519C00CC0 + 940137A3BDA15F209BBE00A295AB451DA0CFF55A01349A414FB8468DD6C7E919 + 801E99F64B08EB108767B3B10DB195A505F83BAE877973668D5B1C76C00D7F3B + 2C80A286F7C0E14B20C0697C84C902582FDA4134383421C26401F5AF3B802F96 + 4E882002900E1B3E0AADED3F402C966820FC0E5883F9DC051AC562058466D6A3 + 64C66E2C802FDDBF8123946920BAFB0720D8658D0682084024FDA33C8FC87AAC + 57F109017B812B92025F201A83E8EAE74388CB3A0A8115703AA30EA504DA5300 + 43323C340402F97DB421BEF7F12092BE153F2038AD16A505EFC3D281B62E0ED4 + 367F829F7CC998CFA58312B815B29F1C80271E36B803AABC6AEF85E677DFE54B + 6AE4115D28141A07109DFB041BC4D5762DB4757240265F5A1F3BFAC8008292AB + 507AA823D60EA8473828836FBD3C28AA69858C3027FCEF03A301383B70C5770F + 757C21B39602E81BAD8FD38CC40728F38C33B10EA812915E0959675DF00302AE + B150D6B983C437382E65D74076842BFE25E4CB2C43B991EE148054626E5742DE + 8543F8877834805407260B104B45C833C715AC2D5703D32D89A6338054260B60 + 56C7A1F4A729B061B90D3C0CAEFB3F602A36F926027CEDFF82765DDF0CB26119 + B0826A6193D5968901C6DEE41B0F40CF7641CFDAD8E0B6F130A4D2B3A86B4C6E + 938F27E6A2018900962E5946612ADF5420C61D6F58387F113447BD050BF3C593 + 03908A368043D276D4D6F70172BCEE82FD6A079A62707724D8400FAF1BE29C99 + E0BBFDA4C63B84C96DF2459687A1C2A67C309B6DA644B47C6B02C5E0AEB45C05 + 75E12F147FF9E80698AA4D3E791D28BCF41494B61429118A2806B73CB01A36AF + D836E635D42437F9D4118AA80FAE4E0053D8E45320E21F4541D3E7E7709FF180 + 1A5C9D01339B7C7A74409F7B980C40DFA8EAFE0B42DD8ADDFCD72B0500000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E34944415478DAD5D9794893 + 711807F067DD4651FD274484FD534945546205A6959D0A9A15353B34F1CA32F2 + 28F3C86346C32E35D3364FC86626CAAC964A594DA2C48C82828ED925EAD4B2E5 + B676B869BFB6C95EB79C6BC7EFF59DCF5FEF90F7C7F3E1799FF9EA978610027D + 8532AB5171E21E10F62B81CC4ABDCE8392A4BD347BCED0F74D3304846456A2D2 + B3FB0900B39C8FADE9C4435EC4754A5E2D94A5D27500374F1F64CB792FF83CDA + 9880F69F03D81A375519055C23406BD37DABA6A1BDC724E0706A392A4E3B08DD + FD2ADDE74B154FB0351D1FB891B83E9B5B05E599872D06285472145814004B9C + 5D81B9FB0ACD620059652D8059978EF21FE7C0AA856BE06E74E3D88003C965A8 + 8C110C9DA2E14728BB928FADE998FD5E23809C5B50713EC422C0D7BE2F68D345 + 77500FA9817BAC01DC5CD69A0714A505418F98E4095801A017FAA3A7023EEC5E + BD0F72E96CE21E8B00E33901B1A21FFD564A61FEBC050486F7A61645DE088659 + 3366434BF25B98E334D73C807EA61895304248FF1662E472A0322BCC08B0ED8A + 0712F47E80A2A09BE0EDBA8DA65DDC0D596BA05B2C84743F26847A1C25606601 + ACB4239ADF03C31328A86EC2D674D41E4FB380C49A5854DE5C0A53274FD5215A + BF35837671173B2F85C6B8E740D394D580F19C80A60F1457751CAA5A393A84B6 + B48B5B135507EE8BD61BED884302B4D786086D192EEE8400E8118C7BC9D0FCF9 + 19DC8EBC432CEE840158526601575382A14FAA1E57802D678C0920B57383D203 + 6C2D93AFD306DF540E5F0E03C0FA085105C0B6C4131E1057C8C7B6C42ECE7320 + DC67254C9F32C96C73D80197C3BDB000384FDE8348A284085FF3088705709FB7 + 817C60F0BF0887053C7ADD0E1285EABF085200AA21FB57E165DB775028944688 + B09D4BC069DACC516F96D80031AC47283B723316C017E12F10C9D4460861DF6F + 88F65F668420052057FDD17D4E603FB0A9F9AC88ADD02F5781442A1F85E8EA93 + C009FF1504022BE0644123CA89F22600F6D4D0E0204835E7984274F48A2191BE + 0E3F203AAF01E5456FC732014197081A5A3EC10FC9E8FFB3AA069470EDC40EF2 + 0062C590DD13D0D7ABB61E6879D7A179A4465ED16532D9F800528A1F62830478 + 2E0741A708D49A47EB637BAF11C096F34C028E65DF47F9313E58276058B20135 + 7CEB1103A7FE2514C4FAE2FF7BE05F00CE099C0BDD425C27B11AC801445EBA83 + 58F17EA44D405F09F93C609FF2C7FF08455CE022F6E95DA4071C1985F5509810 + 807F89A98898B0E603FF02C89A80B5008BF301479C8055F90055211FB67C80CA + 900F4B3E4065C887251FA032E4C3920F5019F261C907A80EF9ECCE07A80CF9F4 + 3FB33B1FA02AE4B3E67E870BF96C39CF61121A5B4BDFF75FE885F6DDD0DFE20A + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E34944415478DAEDD96B4853 + 611807F06795955158DF8488B02F59544417ACC0B4B2AC1434336A76D1C4D22C + 25B532EFA9D1B0CC4BA66D5E215B9928D3B21A65B58814330A0ABACC6E92D7B2 + B54BBBB8696FDB62C70DB7B9CB7B3C137A3E9DC3D8CBF3E339CF3CF8A7218440 + 57118C3A549E140C3D4285F69E51CD035C95B4DF9BB84EBFD20415C9BB68F69C + A7EB9B660E4056E903567BF9215BCE78CE6BA28D028467D7A0CAB43DA44F20B5 + A801AAD2E904A0FDC91DABA6A1F98E5940E7CF416C8D1BABCC128E5500B95286 + 42CA82C0DD75313076E6D14C020EA457A3F28C7DD02B546AEF73AF3FC6D6F489 + 900DC4755A612D54671FB018C0B87B06153F2A8015F357C1AD9866CB01649535 + 802F039FD1C60B1EA01A5601E7281756BBAD310DD89B5285AAB2C2A04BF0EF11 + CAAFE1616B3A6E8FF708A0E0065C3F176E11805E1A889EF279B073E56E28A4B3 + 88EF9804946584429F88E409180188E442F45B2181B973E61198A6D70D28EA6A + 18CC9C3E0BDA52DE808BF36CEB00E33901DF3C4FC4EF7F0F65A1D7C067B12F4D + B3B8EB735641AFA807CE043020C2F308013309A09F2E471559E1A4FF0A6515B2 + A126E7900120A93E1E55B75682D364272DA2FD6B2B681677A1EB22684E68019A + BA2C0230330EAAFF0EFC9B4049DD136C4D47077B9905A8FB4009B5C7A0B69DAD + 45684AB3B8F5D177C163C13A831DB118309E13D05CEB2334A5BFB81302A04364 + DD4E81D64FCFE0665423B1B813066049391CC096334C022EA586C18044356E00 + 5BCBE8EBB406406AE77A450A40EFA776DC0AEB23441500DB12FF07500D4828E5 + 615B6237571738ECB71CA64D9964B639EC808B87BDB100D88FDF8140AC80487F + F3088705705A3A4036383426C261010F5F758258AE1C13410A40396CFF2ABCE8 + F80E72B9C2007168BB3B384F9D31EAD5181B208EF910E5476DC202F8DCF30B04 + 529501A267E037C4042E314090029029FF68EF1359F76D6A3E27720B08654A10 + 4B64A310DD0362880D5C4620B0028E9734A382681F02604F0D0F0D81447D8E31 + C4B77E1124D1D7E207C414715151CC562C13E0770B80DBF6117E8847FF9F5539 + A880CBB1DBC80388E4C3764F40572F3BFAA0EDED37F52335F28A2E954A0D00B6 + 9C6B1120B5FC01364890D752E0770940A57EB43E74F613005BCBE8EBF4D1FC3B + A838CE0FEB04F44B3AA882AF7D2260DF7B0125F1FEE403704EE06CC466E23A99 + C92500581FA1A8DC46C43C1140DA04749558DC04AC9381F89738F23C07B14EED + 203DE0C82CBD07A58941F8F301AA22266CF90015211FD67CC0112760553E4065 + C887251FA032E4C3920F5019F261C907A80CF9B0E40354877C76E70354867CBA + CFECCA07A80CF9AC39CBE1423E5BCE709890CFD6D2F5FD17B3F9F9DD0E63028D + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_21_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E24944415478DAEDD96B4853 + 611807F067DD8DC2FA2644847DC9A222BA6005A55DAD0C323572DD34D15C9A92 + 5AD9D2B45634ECA6669AD7846C65A24CCBCB28CB4994985250D0657693CAB46C + EDD22E6EAEB71DE39C365DBBBEC74DF0F974C6382FCF6FCFFB6E87FD19082120 + 2B825B818AD8C1D02951039D957AA5068A8F6D6338B206D937C31C805B2AC4D6 + 347BB7AF49C0121F7F64CF7A4F84350C8B00BA6A20A0B5A9D6A66910F7980484 + 9F2A43578F87D03E8194EC2A2849655A0D506994684761207879CC016ED04586 + 4540C78F5E5A3E79B24EE6F26D0270EB4EA09C0799B070C662B81DDBF07FC09E + D4525494B60BBE4A34FDAFCFDF68C4D6F4A11DABA8EBE359E5507A6A8F55800F + 3DEFD1EA73DEA0D569811F2380259E4BAD07D055B600980501E8A14808418BB6 + 4316339FBAC724606772092AE184C167F1DF2D945126C4D6747C88EF3F40E64D + B87126DC08205549D02FB51CA64D9D4E616A9E5721D6B53098346132B424BF00 + 77B72996018569A1D025A5790226007E17572051F76B280CBD0E6BE7F8318883 + BB327D317C9576C2892D5C8858B19F82590D18CA09B02B135069F355183B7A6C + 3FA2F5633310077796C76C68487C0C0C7D5904308F16A1624E38EDDF429C2C1E + 94A5471A01F47DA0C4F20350DECAEB4710451CDCCAE83AF09EB9DCE88C9805E4 + A5EDD5FF0EFC9D406E4513B6A6A3837DCC02886B4304518607D72EC0504E807C + 8F4070EE2443F3BB47708B554D1DDC6103B0A65C0E60CF1A2E03B0B74C3E4E13 + 804B2961D023D70E5F00AD9D1B142D5BC8E0B762C80AEB211E018C001C042416 + 08B11D624F0F77D8E7BF00C68F1965B639EC800BFB7CB100788DAF402C5343D4 + 66F3089705F01FB783B2B7CF22C26501F79F75804CA5B188A005A0D1397E14DA + DABF814AA53642446EF202B77113073DDB6303C4E7DD4719AC355800EF3B7F82 + 58A1354274F6FC82D880B946085A004ACDEFFED749F977ED6A3E3D6A3D48941A + 90C99583105F7A641017309F4260051CCC6D4099D16B298023A5EBEB03B97E1D + 53884FDD52603397E107C4660B5076EC062C13107D1183A0E52D7C970DFE9F55 + D3AB86CB711BF13FCC9100A94AE7F004C87ADADE052D2F3FE9B7D4BF47748542 + 4101EC2D938FD303012945F7B041027DE681E8B318B4FAADF5A6A39B1E404C46 + 2DCA89F7C73A01C352F46AE163971478F56D909BB019FF161A08C03981D311EB + A8EB6379022300B643CC3A5F8DF20E6DA16D026425E5D440FEE100FCF940D459 + 3ECA3FB295F680E364413D142405E2CF075C3162B2291F7056C8872D1F70E604 + B0E403CE0CF9B0E403CE0CF9B0E403CE0CF9B0E403CE0EF91CCE079C19F291EF + 39940F3833E4B3E57E970BF9EC59CF65423E7B8BECFB0FF79FF6DDAA16976400 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_22_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003DF4944415478DAEDD9794893 + 611C07F0DF2A2BA3B0FE1322C2FEC9A222CAB082D2CAB252D0D4C8D9A189579A + 925A99695A160DCB3C32CD5BC83413655A5347694EA2C49482828ED9257996AD + 1DED70D39EB6C55E37AF5DCFBB8DF0F7D7FB32F6F07CF83DBFEDDDBE148410A8 + 2AF41A1DE59F3D007D5C89F29E56C6025C157FD499B8BE54D00805715E1463D6 + 53ED9BA20E08A255A3A2781F02405625DD6640F1F9834AC026273764C81A2F58 + 0C8A5600591D180FE868ADD7AB1B8AF7E80420ABF40588A522E457E805F6B6AB + 81E69D4E99121078B912955CF025BD0389D9B5509A44D519406BB888729E64C2 + 86E50EF020B2493BA0FBE730A91DB8944BD719F065E833DA79DD1164A332A047 + 306193DDE6A901C792CA5051F211E8E74A95F769152DD8367DDA6F07717D21AB + 0ACA2E1FD309402DF0444FD92CF0DE7808B2A8F9C47B74029055930178622EFA + 2D11C0D225CB080CE3752D0ABB13000BE72F82F684376063BD787AC0E1845254 + 9A12003D9C7F4728A392856DD3D1BECE6380CC7B5071355003E09ABE0DB107DF + 43A1FF5D7059ED4A510CEEF65407E8E7F5C1450F1A046D3B41C0A6051426FBC3 + 008FE40E4C0288AF8941656D256035DB4A89E8F8DA068AC15D69BB0A9A629F03 + 455E7A034CD901F93E506CD549A8EA28572214A518DC9AF006705CB1556346A6 + 0450CF15A1E29440D23F8552B2CAA1323578C210AB2314A53EB83A03F2928FCB + BF07FE7520B7BA15DBA6C37D9CB4025488948709D0F6E919DC0FAB2306D72080 + A93BA06B591CC090352C0660684DFA38FD5F006E2606C09040663200F62344EA + CED58A942156FBB23359CD0066009604882D60611B623B5B1B08715B0FF3E6CC + 9A7673D80137429CB100CA5BDE01872F8150F7E911160BA03FEF02D1F0885684 + C5029A5F75035F2CD58A2005201D357E143ABBBE83582CD14004EFB707EBB90B + 26FC38C10688CE6B461961BBB0003EF7FD028E50A681E81BFA0D919E6B3410A4 + 0044D23FCAFBB8FC47066D3E35740F704552E00B441310BD437C88F25C4720B0 + 024EE536A1CC701702604C8D8E8C8040BECE64886F833C88A76EC1FF301799CD + 44D9917BB17480DDCB0166FB47F8C19FF83FAB745802B7A2F6E17F9C560178E2 + 5163D6D6A8975D03D0FEF69BFC488D3DA20B8542D300128B1E63837839AD0576 + 0F0764F2A3F5A17B9000603D421119F52827DA0D6B07D44B382C83AF033C286F + EC84DC1877FC433C1E80B30357827613D7E7F3987A0174CE07C2D2EA50DE690F + D23AA0AAB81C06E49FF1C49F0F9823E4C39A0F5862C4A4573E60CE900F4B3E60 + CE0E60C907CC19F261C907CC19F261C907CC1DF2199D0F9833E453BD66543E60 + CE904F9FB52C2EE433640D8B09F90C2DD5BEFF02C337F9DD5268DDEA00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_23_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E14944415478DAEDD96B4853 + 611807F0FFBA1785F54D8888FA92454574A10B98569695416646ADAB89A66946 + 6665A6695934ECA6669AD784CC3229ECE28DB29C448A2905055DB48BE2BD6CB9 + D92E6EDADBB6F0B4E5CAB3ED3D9E7DF0F9740E725EDE1FCFFB6CC7FD058410F4 + 96FFF97B24F9D07A48953DE0B24213F39172D85D60CD1ABDFB161802FCCEE691 + 94231BD0DCA1D2DF8BB2C4D4361DB6C399B93E995A84D4500F3D6081931BB164 + BDE7E27C411F808FE836490FF364005C55E4957C641CDBC400AACA0ACCEA86EE + 195600AE3A602E40A95690AD691E70B09F01D1C68B02D600AECA5C80A8F00449 + 7C1287B993E7E37E50C9BF01DEA772C8D5E35B38EF4044C25D64460A59013EB7 + 7F22CBCF2D84A64783BCC0622C98B2A87F40FDB72E4E3B7032298F354098EA4E + 9ED688B171DE66C40B5398674C0276466691F4A8ED68E950EBEFCFDF28A5B6E9 + 435B9731D7C7E37391756AA71140AAEC203F549D9838611283C97F7597F85FF3 + C2D851E35019FE1A76A3C79B07E0AA4C015C2F3A929AB67748DB751D2E335C05 + BAC15D1A331F2DD2669C582F828FE35E06F64FC0B6F04C9219ED8546C9EF2314 + 9B23A6B6E9E02DCE7F00713771E38CB71120ECCE4192557115C3870ED723AAEA + 2AA01BDC69F6D35112520E81B65801D2A276A155CA71074C00B4FB2021B9FB90 + 5B95AD47E84A37B877020AB170EA12A319610D18C80EE8AE0D11BA321C5C5600 + E1D1749211EDCDF9A750747C3672627C4D7E0AE910D10FC251F1F1196EF9DF63 + 06973520396AB7F67BE07707926E9751DB7480A7132B009B620D18A80E58B286 + CD002C2D93AFD383000B00D48FD0A5082FB4776A061440758839DDB941710230 + F8B61EB01A040C026C0910922AA636C453ECEDB0C76D0E460E1BF2DFCD51075C + D8E34C05905DFA1612990A7EEBFE8FB059405E792D145DDDFD226C16F0F8653D + 644A75BF084E00EA1EEB47A1BAF60B944A9511C277AD03468F18D3E7BF2B6A80 + E0E4C724D67F0515C0A7E6EF90C8354688E6F61F08729F6984E004A050FFD4DF + 87A63CB468F3317EABD0A15043D6A9E883686A9761BFFB6C0641F565EE405209 + 890B706100D6544F77373AB5EB984234B44911265C4CFF753A28A1982404ADA6 + D2819A26098A2B3FE0ABACEFEFACEA2E152EEF5FC31D8066C0F1A2B615956F1A + B447EACF2BBA5C2E6700548FD0DF8088F447D4201E4EB350D32881467BB4DED7 + B71901A80D71606C01490C76E32C6292776950D72A45765135920EAEA39F0FFC + 0DA0D981D33E2B99EB63C9C5660158E7037C847C54F301BE423E6AF9009F1113 + 957C80CF908F4A3EC06707A8E4037C867C54F201BE433EABF3013E43BEDEBF59 + 950FF019F299F3BCCD857C96AC6733219FA5D5BBEF5F0EA8F6DD7CD7C3F60000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_24_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003EC4944415478DAEDD97D4CCC + 711C07F0F779660CFFB59919FF781866681E360A11B24918E731AD27259390F4 + 44CC2D4F95949E689348CB1245A374666AC9D8D83C94A7462972BACB3D7457BE + EE77763F77EE5CF7F0FDF99DADCF5FBFDF6EF7DDF7B5CFEF73F7BD7B0B0821D0 + 57685219490BF78254D9ADBB8FC9B9035A75C47F317B7D20A31CE9BB57081C59 + 4FBF6F812120F84409C9D8B3920570559169A5C8DCEBAD03B8BA79117BD67828 + 2E159800828E1593CC7DABD0DCAED2DD8BF2C4D4361DB5D99DBD3E94750B5991 + 3E2CA0EE5E994DDD60DE6316E02F2A2239516B5800571577B614E70EACB51AA0 + 542BC8866C1F4C709904D1EA5302AB015C75C05680E8E64192763719D3C7CCC4 + F5B00AEB01CED081776D6FC9C2E3B3A0E9D6A038B41CAE6367FF1DE077B8809C + 8F5DCF79076252AF21374E68154098E54DEED78BB17AC63AA40833D9F7580434 + 7EEDE4B40387D28B4D0052653BF9AEEAC0A891A3594CE9D36B24F8822F860E1A + 86DAE867183E788465C096B83C9213BF099FDAD5BAFB1397AAA86D7ACF8605EC + 756C4A21F20E6F3102789E9A47EA5B5F227BEB45784CF21430833B3F71263E49 + 9B7170A508FEF3B6B330AB015C953940D4D5DD24AFE63CFAF7EDAF43D4BDAF01 + 33B8E35D26A222A21A026DF508D8189D4B72137CF151F2EB114A2A1053DB74F8 + 7AF7DF80E4CBB874D4CF08A0DD078928DC81C2BA7C1D82296670AF86DCC4AC71 + 738D66C422203B7E2B5AA41C77C00C80B93644306538B87601FE6507F4AF3188 + 841BD1A879F30057824BD8C1B50A20DC9F43CE25F871FE299490928F82C400FA + 4709069011BF4DFB3DF0AB03E945F7A86D3A648DDB5F01F6AC671580AB3204D8 + 5B668FD3BD003B00FFFD23447D884FC7F8A2AD43F3FF0238DDB941710230386E + FCB3EA05F4029C09109125A636C4635D8623D06B1A06F6EB637173D4012703DD + A900F2AB5E4022532168856584D3028AAB1BA0E8ECEA11E1B480CA278D9029D5 + 3D223801A8BB1D1F85470D9FA154AA8C1001CB2760F08021263F0FA901C2332A + 4952F0222A80B7CDDF20916B8C10CD6DDF11E63DD90841F530A70728D43F74F7 + 9199B7EDDA7C62D012B42BD49075284C104D6D32ECF49E6AD2095BCBEC717A57 + 7A05490EF160018E547757173AB4EB98437C6895224A38873E202CB59CA4862D + A5D281FA2609CA6B5FE38BCCF47F5675A70A67762EA3FF7B400FA019703C6E68 + 41EDF30FDA47EAF7115D2E971B01A80DF19F009A11938FDB14D47F9440A37DB4 + 5E35B6DA04B03A1FF83323A35DF24E0DDEB748917FEB119B9151CD07F808F9A8 + E6037C857CD4F2013E433E2AF9009F1113957C80CF908F4A3EC06707A8E4037C + 877C0EE7037C867CFAD71CCA07F80CF96C59CBE9423E7BD6709A90CFDED2EFFB + 27D7B5F9DDFA7A2B6D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_25_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003F64944415478DAEDD9674C53 + 511407F07FDD188DFA8DC418A35F1C51631C71240AEE01098818AD13090AA218 + 011511044563838321824C4944140904072A51D41AA304319A68E20017511114 + 2B2D76D082D7BE9A3EA87D85477B5F5B8DE7D37B1F7A737F9C7BDA7B38224208 + 8CB135F12A490DF5805CDD062142D9A2C3FB7A39F2AF3F425A98A7C896B58CFB + 16750688CEBE496DF3870216B0CF7BD3CB58C054370F62CD7A0FA5A5223340D0 + B14B247DA79760193046446A29327679B380AABB57BB950DE6339C80C0232524 + 63F732D435690CEF923C29B54D47AE73679F0F645E4766840F6F805AAB22ABB3 + 7C30DA752C24CB13441601019222921DE9CB02848A9853A5C8D9BB823740726D + 3F49BD9D8449C3A7E07248397F805019E80EE05DE35B32F7E834E8DA7428D95A + 86A923A6FF5D1910677A937BD5522C9FBC12C9E20CF6339C00FF8305E4F4BE55 + 8267203AE5227263C42600B9BA89FCD03463E890612CA6F4E9451274C60F03FA + 0D4465D4330C7219CC0F50FBAD45D00C1C482B31032C4A9845AA1B5E226BC359 + CC1FBB48C414EEECF829F82CAFC37E2F0902666D61611601EB63F24876EC5A7C + 6ED21ADE8F9DBB436DD33B57CF619FF7251722EFE07A1340647118C9AB388DDE + 3D7B1B1055EF2BC014EE28D731280F7F00913EBA0D102AB800FA7D90F0C26D28 + ACCA372098600AB738F81AA68D9C69522316016BA272496E9C1F3ECA7E1FA1C4 + 0229B54D87AE726F07249DC7B9C3FE6645DC11C144C7C2E50DC88ADD807AB9C0 + 19B0003022E2AE44A1E2CD7D5C08BAC416AE55007B67806F580488F764939C38 + 7FC1BF85E292F35110BF89FE658E01A4C76ED4FF0EFCCE405AD15D6A9B0EF675 + E304581B9CD7E93F0142C53F0510F408D90B40B5889D11C0BB1F600027A2FDD0 + D8AC732A00EF7E800108BAF30EC117D0AD7EA0C37DC96E41B51F7024804A3FE0 + 4800957EC091002AFD4078A6945A118F701D84CD1E13D1B7578F4EFF2A54FB01 + 06707CB33B1540FE9D1790293408F4EC1C41B51FA00928795003554B6B9708AA + FD004DC0AD27B550A8B55D22A85E258C006D9BEDA5F0A8E60BD46A8D0962D3D2 + D170E9D3DFEC3C5BB33E272034FD16490C9A4705F0B6EE3B644A9D09A2AEF107 + 42BCC79921AC09CEEBB411A0D2FE34BC4764DCB06AF1F8C085685269A1685699 + 213E352AB0DD7B82CD084EC08EB47292143C9F05D8126DADAD68D6AFC385F8D0 + 2047A47806FD7E2024A58CA4842CA69281EA4F329455BEC65785F9FF59B52D1A + 9CDCBE847E3F6004D01C703CAEA947E5F30FFA23D57E45572A95F601D01C31F9 + B88D47F5471974FAA3F5AAB641188023867C8202EC35E4A306F83FE4EB246C19 + F2F10638E388C92680330CF96C02081582011C39E4A30A70C4908F0AC051433E + 6BD6739A219FB561DCF72FBA65FCDDBBB8E1170000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_26_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003FA4944415478DAEDD96B4853 + 611807F0FFBA1B45F54D8888FA52494574C10A4ABB5F0C322B6A5D4D2CCD3252 + 2B334D53A3613735D3BC2664968962969594D5224ACC2828E8A2DDA4322D5B6E + B68BDBEC6D67B2D386733BDBDEB3ED43CFA7733EECE5FDED39CFD9FBEC111042 + 6088F08C6A9211BE14526597FE3E2EFF0E684580CF24347C9140A3D5E26D532B + CEEE592670643DC3BE05C6805DA9374866841F0BA01DF24E0D3EB548517CEB29 + B22257E801337CFC883D6B3D115709AC026866E068F022F6FA5076B509A0FEC1 + 0D9BB2C17CC62C20F46425C9DEB792B70C18223AB30A39FBFD3903946A05D990 + 1780F19E5E10AD3E2DE8151072BC82E41C5885E67695FE5E5424A6B6E998CDBE + EC7562EE2DE446077006886E1E2199F7D23075F4745C0BAFE91D102C2A23F931 + 6B58005F117FAE0A0587D672027C6CFB40E69FF086A64B838A5DD59831662677 + 005F19B00520CCF5270F1BC4583D6D1DD28539EC67DC2E0352653BF9ADEAC0C8 + 11A3584CD58BAB24F44220860C1A8ABAD89718E631DC322028B9849C3FBC9EF7 + 0CC4655C4561BCD004B0E4F41CD2D0FA06795B2F62A1D7120153B87353A6E39B + B41947568A103C67270BB30A68FAD9C96B0612B32A7A0062CA234951ED79F4EF + DB5F8FA8FF540BA670C7794E404DD46308746115B025BE88E4276CC2B776B5FE + FEE4A5FBD436BD6FC33CF6FA707A298A92B7980074FB2051A5BB515A5FAC4730 + C1146E79D84D788F9D6D52239C017C853900736D8C60C2B870390136C61692C2 + A4407C91743F42A925626A9B8E58EFFB0F907619978E05997D0B3188A4EBB1A8 + 7DFF0857422BD9C2E50CC84BD88A1629CF19B000E0129C01CECA803DEB990508 + 0FE69382A420DEDF4249E9C52849D94EFF38CD00B213B6E97E07BA339055F680 + DAA6C3D6F8381FC0571803A83F42AE00502B62770570EE07DC15C0B91F600067 + E202D1D6A1711B804DFD0003E075E746C11560533F6074E0735A50ED075C09A0 + D20FB81240A51F7025804A3F10952BA656C4633C876187DF140CECD7C7E2B742 + B51F6000A776F8520114DF7F0D894C859015961154FB019A808AC78D50746AAD + 22A81E256802EE3E6F824CA9B68AA07A983300D45D8E97C2D3C6EF502A552688 + EDCBC7C363C0602A6F0AB3C7E988ECBB2435740115C087E65F90C8352688E6B6 + DF08F79F48056111A050FFD1DF47E7DCB66BF19490C56857A821EB50F4407C6D + 93618FFF641641F511DA9B5543D2C216B20047A24BAB45876E1D7388CFAD52C4 + 0867D1EF070C23261A1968F82A4175DD3BFC90F5FC9F55DDA962474CBC00680E + 389E35B6A0EED567DD23F5EF882E97CB9D0370C6908F2AC055433EDE00FF877C + BD84AD433ECE00771DF27106B8E390CF21803B0CF91C02F015BC015C39E4A30A + 70F690CF9E35DC66C8676F18F6FD177F5F05EC683BC23C0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'SetProperties_27_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003FF4944415478DAE5D97B4853 + 711407F0EF7A1745F59F1011F64F0F2AA2073DA0B4F7C320B3A2662F134DD394 + CCCA4CD3D448ECA5669A6F21B34C147BF8A2AC1651624A41410FED259569D9DA + 667BB8CD7E7995DD36B7D9DDF6BB73D0F9EB4EB897F3F1DCA3BFB32320844017 + 41295524256835A4CA4ED08AA78D2DA87DF909128586FD995C2EC785E035025B + 9EABCB5BD0172032FB0E358887CB74347C1643A3D5E24D532B0B98EBE246AC79 + DE135199C0081098584E5243DCA856403FE41D1A7C6C91A2A0B21E6907D6B180 + BA07E5165583B987138066054EF8AC60AF8FA657590450AA15C433CB03939DA6 + 227EE339815980FF991B24FDE07ADE2AA08BB0D432641C72E70C88AF384E52EF + 2561D68439B819546D1EE077AA94641CDE806689AAE7C67C11B5A4C377B8B2D7 + 319995C80CF3E004F8D0F69E2C3D3D0F9A4E0D4A03AB30D779BE79804F7C31C9 + 0EDFC402F88AA88B65C839BA99134098E94E1E3688B071F616240B33D87B3801 + F8AA802980542921BF54ED1837763C8B297B7E9DF85FF2C2C861A3501BF102A3 + 878FB10C60CF0AAC3AB78834B4BE46D6AECB583E75958069DCC50973F055DA8C + E3EBE3E1B3682F0B330BF08E2B24B9C7B6F25E81C894EBC88B121A00C24B0E90 + FC9A5C0C1E38B81B51F7B1064CE34E729A82EAD0C71074056740D38F0E5E2B10 + 93566A04E8CA838416ED43515D41378209A6714B022A306FE242831E310BD819 + 954FB2A3B7E3AB44DDFDF9CC95FBD4923EE8B984BD3E965C84FCB89D464DAC8F + 6042BF71AD02F015E6003A44ECAD08D4BC7B846BFE37D8C6E504D8169147F262 + BDF059DCF30A25168AA8251DB2D5F52F20E92AAE9CF4A67F94600059D1BBD022 + E5B902BD00D63C8313C01E15B0364C1EA78547B2494EAC37EF7F8562930B5098 + E0CB0F203D7A77D7FF819E0AA4153FA09674C026179300AAAF506F005FD11B40 + AD891D15C0791E705400E779C0110116CD030CE07CA417DADA35FF4CC25E008B + E60106C06BE67AD11B40651ED03BB1DA2DA8CE03FD09A0320FF42780CA3CD09F + 00E6DAE67920345344AD899D9D46638FDB4C0C1D34A0CFDF0AD57980019CDDE3 + 4A055070FF15C43215FCD6F58DA07A94A009287DDC084587F69F08AA87399A80 + BBCF9A2053AA3921AC0993C7691D40DD697B2BD4377E8352A93240F8AE9D8CE1 + 43465041980484A4DF2589FECBA800DE37FF8458AE314034B7FD4290FB340304 + D557480750A87F777F0ECBB86D55F2097E2B2151A8216B571821BEB4C910EC3E + 8345506DE2FD69D5242960390BB0253AB55AB4773DC714E253AB14E1C205F401 + BA15138D0A347C11A3AAF62DBECB8CBF675577A80C564CD401F65CF2F10AB0D7 + 928FB71D19EDF86F977C9C018EBAE4E30C70C4259F4500475CF2D904B0E7928F + 17005FC11BA0BF967CD63CCF61967CD6862EEF3FD8C80BECF4C2FA6D00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_28_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004164944415478DAEDD97F4CD4 + 651C07F0F75556B69AF51F5B730EFF9158B5963ACBCDC0D4A860934017A7A9C4 + F825080B4109411068DD281390407ECA26A2C46068A1300539E694114C37DD52 + 41492620145D7787F783BBA327BED07DBB3BBEC0F7BE3C0F777FF8FEEB39D83D + 7B5E7CBECF97E7D947460881357105CDA420EE63E84DFF4C7D4E2EB90429C989 + FA083D832A3477DEC79F5AE38CDF9BC68DF831FE1399A4C9FF8B75DD322180C6 + 30B190B9ED72A377189DBF3D825A6FE67FA6D3E978C05A1F7F2265DE5F958DB2 + 790169E597A941827CDE42CF800A668B05F7FA47EC005DED179CAA06F71D4140 + 6CEE055298E04FB502B6D18D9BF1705883EAA66E14ED0F100D3098F464475910 + BC3CBCA1083E26130DA059816FC2B7F0E343C5CD4E0114178F90C22B797877C5 + 1AFC1CD7323B20FAE879529CB4955905AC492E6C44C981405180DF47FBC887DF + AF8379C28C86D866ACF57C6F7640D4770DA4E4E06718524FBF3914554A6A8B4E + D9E5CB8F334B9B509A1C240A202F0D24577B94085EFD39F2E525FC770401E18A + 3A529EB28D07B04AFA8946541CDA6E07D018D4E489710CAFBFB69CC734DE3A47 + A24F85E2E5175F4167EA6D2C5BFAAA730056151002F81DDB407A46EEA26CCF69 + 6CF6F693711BF7839C3578AC19C291AD0A846FD8CBC3DCB20229F5FB4955C749 + 2C7976C914A2EB6107B88DBBCAE30DB4245E876C32F302C2B26BC8C9C321CC2B + 9056700E95E9723BC0E43A4862ED3ED476554F21B8701BB73EE622D6AD5C6FB7 + 47E605F4FF35CEB40299450D3300DCD816C1C576E38A02EC4EAF22E5195FE0B1 + DA34F5F9E899366A8B4EDAB1911F1FCEAF4555F66EC1B71087C8FA25151D0FAE + E1A7E8F3FCC695046095B90062322B60676A25A9CC0AC5806AFA11CAAD51525B + 744288EFFF80BCB338F36D18FDC31C0728CBD883610DE30AD800A446F038ED08 + 588C0A5005C8BF2E27155961CCDF4259F9D5A8C989A0FF087180E28C2F27FF0F + 4C57A0A8AE9DDAA263B6F9CC0AA0B6891D01ACE22C40F47DC05D01A2EF03EE08 + 70EA3EE08E00A7EE031CE0785A2846C7CC6019210095FB000760BA729B3802A8 + DC076C8EDC8B16AAF7015702A8DC075C09E0C60BBE0FB81A604548BE0F24962A + A96D624F8F6588F47F072F3CF7CC9C7F15AA47090EF043A42F154075DB1DA8B4 + 464405CC8DA07A98A30968B8DE0BFDB84514424A048FD33401AD37FBA1359898 + 21E604982616BE15BA7BFF80C160B443447CEA85A5CFBF34E39528657EC14728 + A1B895E4466FA202E81BFA1B2A9DD90E3134FA0471816FDA21A86E622B80468B + 49AD37413BA69F81181CD5223EF06D1E4115F055510BC98BD9CC031692098B05 + 6393F308211E8D6890227F9F3EC0154D3E2680C56EF231033C6DF239446A934F + 32C05D9A7CA201EED8E4730AE08E4D3EA700AE6C3131012C66938F0980551C01 + 52E6709B269FD458D7FD2F3B1517EC88376E6D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_29_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004094944415478DAEDD97B504C + 711407F0EF7A330CFE6BC618C33F1E83311EE33143793F32236158CF34512223 + 2129458C9DBC2A293D35239186C9233484358626196698F128AF0629B27637FB + 68B7FCECDD66AFDDDA72EFEEEFB7BB7F387FDD1EF7763E9D7BEEDE3347420881 + 25B6A59592A4D059D01A7EC3D9686E6A4283E93AEA062D141A23743A3DD43A03 + B48D4DF854A7429474B2C499EB5BF2965803C2524A484AD83C1E109971CBA18B + 2704CF41E517054ACADFE2BB5ADFE6E786463D4E6E9D6F064CF0F625A2FF8029 + 1ECB8B25ED0254BA6667FE3936F1B4AA16E52F3F41A935F2DFD3683436808AFB + D74555833B47102026FB363588BFF728547E56C068BAB5DE54D78902E80C5AB2 + 32CB1FC3BC4640B6E4B8A45DC0E6C4EB2435DC976A05AC43D368C4C75A15F26F + 3E41DAF6858201B21BFB48EADD248C1D341E57C34A85036856E060D06CFE784F + 7A8960C087FAF764C6918930361B51B4B90413064F6A1F1072F40A49DFB18859 + 052C11995A8C8C9D7E8200D24C3FF2A0528E25E39623599AC19F6317107CB888 + 64EC5A8C1A65CB93439627A79674D41A1FFE787FE64D6446FADB00543A25F9A5 + 6FC080FE03794CF1F3CB24E44C007AF7E883F2E817E8DBB35FC78020D945921D + B59407B08AD853C5C8D9B3CC0630F7F8545259F71A59EBCE62D688B912AE71A7 + 258CC757550DF62D922168EA261E2618C0AA02F6005197B693BCB2D3E8DAB9AB + 1951F1B10C5CE30EF51A8ED2884790984234C0951530E541220AB7A0B022DF8C + E0826BDC4BA1373071C8149B1E69171078A0809CDEBB82790562522E233756DA + A689AD115C5837AE2840F58F46A615D89F5664176041C45F8B46D9BB87B81072 + 856F5C4180B5B179243B6E35BE2A0DE6AF8F9EBB472DE91D2BA7F3C77B930B91 + 77602DFD5789D60056D11AE0C835EC025645E792DCF8007C56B4DC428905726A + 4987AFF0F90B483A8F738702E9BF4E7380ACB875A85531AE80AB00AEA800D55B + 48BA3B9BE4C407327F0AC527E7A3206103FD26E600E971EB4D9F032D1548BB78 + 9F5AD2A14BBD1D06089E075A0358855880E079C01301A2E6014F04889A07DC09 + A0320F7080133101A86F308A4CC979009579800330CDDC2A5A03A8CC0356BFE3 + B2A03A0FB813C01D3B3D0FB81B6041383C0F780240E83976011199726A4D3CD8 + AB2F36FA8E41F72E9D3A4C8EEACB1C0738B6D1870A20FFDE2B28D47A042FFC37 + C291B0FB3A4D1350F4A8CABC0B6085600EB8F3AC9A5F68748460720B199A9D6F + 852755DF6CB6321C62C38261E8D9AD579B673AB5260E4FBF431243665201BCAF + F9D966B55453FF0B617E236D104C0034564C4AADC1EE7EEC4BBD1A5BFD46F308 + AA00772CF998AC985CBDE463B623A311FF977C62009EBAE47318E0094B3E5100 + 4F5CF28902B873C94705E0CE15131380AB967C8E5CCF632AE06858F2FE039D9E + 29EC0F89F1F90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_30_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000040E4944415478DAEDD9696C0C + 611807F0FFBA09C1B72622C217471071C491D0BA8F4A5411D6594D69958A2AAA + 5A2D253675B555AD5E3451A51A5247D150AC084D5548481CADAB41B5D4EA6EED + D1DDD66B676BC76CBBAD99D977BAF3C1F369763733FBFEF6799FD979F2280821 + B04768EA6D121F341D06F32FDBEBF0B49B10137181B3506B3043576780466F81 + D16882CE6886A1BE019F6B74D8EC3312DDBBF45088BAF89FB0AF5BC1056C4929 + 2209C13358802BD1D8D0803AEB759C213E566B11A19C68038CF3F42662AEFF48 + 5DA0680108492A24492173A864A0ECB30685256FF04D676AF1B9B9DE84E39BE7 + B280D27BD704658339A74D80D6D8E87206ECF1A4BC0A252F3E5AB794857D4FAF + D70B0218CD06B23CC317433C8641B5E8A88237202AF3163588AFE708947DD2C0 + 62DD5AAF2BAA050154D7F790E43B09183D602CAE8414B50ED8187F8D24877A53 + CD0037F4F5167CA8D222E7C663A46C9DCF0BF0BEE61D9976683C2C8D16E46F2C + C4B88113F8036866607FC04CF678576A216F8032DD87DC2F5363D198A54854A6 + B1E73805041DBE4C52B72D902C03F6084F2E40DA761F0780D6584B7E9AEAD0AF + 6F7F1653F0EC12093AED879EDD7AA124F2397A77EFD33620F0603E49DBB11095 + B54D770E55B69ADAA2235679B1C77BD36F203DDCD70130FBE8645256FD0A196B + CE60C6B0D90AA670A7C48DC5176D25F62C502160F20616D62A2040758164462C + 66015245F489029CDCB5C4011071712BC92E3E85CE1D3BDB10A51F8AC114EE60 + 8FA1280A7B0885350403A4CA803380751D242C6F13F24A736C082698C2BD187C + 1DE3074D72A81159668039E62298E0162E2F80FFBE5C726AF732C93310957409 + 59D14AA7772106117B3512C56F1FE07CD065B67005012ABED74B9A81BD29F9AD + 02F844AB80D5D1D924336625BED49A6DAF0F9FBD4B6DD1DB964F658F7727E621 + 7BDF6AFA0F73CD0152051720369C3E4EAF88CC2259B17EF8A469DA42F1B96A6A + 8B0E5DE6F51790700E670FF84B03C88859832AADC419E000A86EA1E680F6C800 + D52256EECC242763FD25BF0BC526E620376E1DFD7E8001A4C6ACB5FE0F346520 + E5C23D6A8B0E5EEC291AC0BB1F680E90430604F503720408EA07DC09A0D20FB8 + 1340A51F6000C7A2FC50536711BC28570154FA010620E9CA39D11C40A51FE020 + DB2DA8F603EE06D811A2FB013900F89E232B8098F39C02C2D2D5D48A78A0476F + ACF71E85AE9D3A48F2AB387D9C660047D67B51F9829CBB2FA1D19910385F1A84 + E480FC87E5B659C0BF10D4B7102DC0EDA715EC40A32D04D522B603CC8DAE97C2 + E3F2AF0E531906B16EDE9016A325AA00FB8C8C06E05DE58F16A3A5CA9A9F08F1 + 19EE809004D09E433EAA00770DF9A8CFC8FE0FF9384163C8271A2097211F6F80 + 1C877C2E01E430E4130470E7908F0AC09D433E2A00778D98C45C4336433EB161 + 5FF76F85003EEC255BFC220000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_31_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004234944415478DACD996B4C14 + 5714C7FFABF5D568B4DF488C31FAA5D6A8313E626D62C147D58A89881A5DAD8A + 0405518C884A110445D30DBE0011E42989882281A01695B458D7182514A3499B + F8005F444568E9CA2EEE835DF07667C98CBBEC02BBB367983D9FEECCE4DE3DBF + 39F7CCDE7FFE0AC618F888CEBEC5522316C2DCF5F99ED878D9F4011ABD0546A3 + 093AA319868E4E34B57E4454D0148C18FAA5C2DBF5F9BC15AE000CE64FB6EBD8 + 9CDF442D9E12BE186D063374ED06278877AD3AEC0A9A2640CCF60F14F5B6FE54 + 572A9C00766755B3B4C845028037D1D5D98976EB3AAE20DEB46811A79C2B00D4 + DDB9EE5145B8392E01A232AA5846D452920AD4BFD3A0AAF639FED5999C9E9B3B + 4C38B3EB47B7018C66035B9F178C497E93A15A754AD12F80D6D8E57505F878D8 + D08CDAC76FAC5BCA22DCD3EBF51E01A86E1C62997FA461C6F859B81655ED3E40 + 42FEEF6420C1FE5351FF56038B756B3D6B6C711BE055EB4BB6E0F81C58BA2CA8 + D85185D913BEED1D6047EA7596191D485A01FBD07758F0BA598BE29B0F90B567 + B95B00CADC2076B75E8D5533D7225D9923CC710B80B20247C37E10C607B2AB9C + 00B4C636F6D1D48EB15F8D13602AFFBAC222CE8760E4F051A88DFF1BA3478CE9 + 1B20E2C45596BD77856415E02336B31239FB821C00969C9AC7EA5B9E226FF305 + 2C9ABC44C135EEF729B3F05EDB84432B54089BB75D00EB1520FC5805CBD9BF12 + 4D6DDD5F0E55919A2CE9B88D01C2F870EE4DE4C6063B00C495EF614535E73064 + F0101B44DDEB1A708DFBB5DF37A88EB90F8535FA05085395B1FCB8D502805491 + 78B6120507D6380058F36031A53B515A576C83E0826BDCF2C81B9833F13B871E + 711B40AA0AB802E0C6F6105CD837AE288081AC00FF8C8348FE351E352FEEE172 + C455A171DD02083D52C2CE1D5C2779051232AEA03051497F94E0011AFFEB90F0 + FD5B9B38ABC20140CC1A2E01362516B1FCA49FF0BECD6CBB3E71F13659D27BD7 + CF17C607D34B5174649357476A97C7E99E00528564001BE20B59617208DE6ABA + B7506A899A2CE9E875019F01D22EE1E22FA1F45B8803C84BDA8C66ADC415E801 + 40D6C43D0106AA02647A40F9733E2B480E95FC2B949C5E8C9294ADF47A8003C8 + 4EDA62FD1FE8AE4056D91DB2A42357FB8B02F0480FF404F0850A78A407E40420 + D103720290E801390148F40007703A2104ADED168F93F21680440F700092666E + 17AE9AD86B3D6057A5010B523DE00B00EECEF1290031F37C06406CB83C4EC7E4 + AAC99A7882DF686C0B9C8E615F0C92E4ADF40A70725B00C90F14DF7E028DCE84 + F0E57D43906E214A808AFB0D362FA03F08D226A604B8F5A8513034FA8220D503 + 3C008547F6A0E11F07578683D8BA6C92933F46AA07E430F948F5805C261F991E + 90D3E423D103729A7C247A404E938F440FC869F291E801B94D3EAFF5809C261F + FFCC2B3D20A7C9E7C97C9F33F9C4ACE7331693D8E0F3FE1FB892B6EC7B92A7DB + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_32_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000041A4944415478DAD5996B4853 + 6118C79F75370AEB9B1011F5258B8A28A50B9876B552D0D4C87551134BB3944C + CBCC5B59342C4BCD346F2564968962175329AB4994985250D045CB14CDB46C39 + 759B6EDADBCE64C74D373B3B7B4EC7FE9FCE0E3BEF797E7BDEE7ECFCF90B0821 + A05568A6985CD8EF00CA81A1736C555BFF1D148A5EE8522841DED70F92AE5ED8 + B7D51A2C264D1598BDB85ADABA05BA0021E98F4962C07A148086D65F2091A9F4 + 205A3B7A20C875911E84ADBD13AB9BBD1497088C02C895BF359FC3331EB22A3E + DE7F1374CA95D0D52D1F01F1B5A30B825D97D01014404DE50393BA425D6310E0 + 705A05490ADC400398A381FE7EE856AF6308A2B95D0A11C2558C01144A39D999 + E506D6560B41E47E5160142028A59CA4046D46E940DD570994577F821FEABD3F + 5CCABE5EB81CBC853180A8F424497D9204CBE6D8C0BDA08ABF03481503667740 + AB57F56D50FDAE59BDA554F439994CC618E04B470359777E05A80654507CB01C + 6CE7AE640E1095FD080DC4CD7E31D4B54840A5DE5A1F9BDA190308335DC9B33A + 31B82FDF01C9C20CFA1A830007131F90D41027D40EE84AD6A782C63629E495D5 + 42DA11673D00A9A293F4F476C3AC99B3699892377748C0751F9836653A5447BE + 054B8B19A6016076E08CDF46FAF8447AF90800C78B76A4AEFD036479DF800D0B + 1D05D4E0AE89B7816FD25638E922023FBB037A8F5E8300010977497A980B671D + D02A3CB504328EBAEA0144141D21B955D760E2F8891A889AC62AA00677BED502 + A8087D0102B5FE0AE07FAE98641CDB06AD9D834F0E51AE18ADE8883D0EF4F1A9 + CC32C80C77D30350D741420B0E41414D9E06821235B84581A5B062DE6ABD1931 + 0AE0272A24D9111E3400578AB95202574F6C1F31C4BA10947407971500571D30 + 06A08588BB1F09559F9FC3ED80BBF4E0FE171D602AA300BEA7F3C9B5684FCE3B + 1095720772628434009BF5460568FAD98756B8219D4A2BA601D8CAE0EBB4574C + 2EC98EDD0DDF3A959ACF09379FA2151DB6732D7D1C9D5C00B9A7BDB807E04ABA + 00A85B6857640EC989F38116C9E0164ACC17A3151DE2E9300490740B6E9EF5C5 + 1F620A202BD61BDAA41C77C04400C67E6038C058E900633F203C9E4DAEC6F972 + FE148A4BCE83FCF87DF87E8002488FDDABFE1F18EC405A61255AD1811EF6AC00 + 4CF203C301FE650750FC009F00287E804F00143FC027008A1FA0002E45F94047 + B78A79354800D4B1D97E8002E0B4721D197B0A99E50774B6D93F13EAAB045F00 + 6CAE1B33006C65F075FABF07A0020EAC1BCCB5B284FD4E4B61F28471A3FE2AA8 + 5B489BD06028EFE97B4D2AE3EF3C3A04EA10630214BFA8A7A3A5D12050FD0026 + C0E3D74D7AF9983108543FC047C887EA07F80AF9D0FC009F211F8A1FE033E443 + F1037C867C287E80CF900FC50FF01DF299ED07F80CF9B4DF31CB0FF019F299B2 + D6980BF9D8AC3166423EB6D2D6FD073D43C2EC04EDD6650000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'SetProperties_33_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004194944415478DAED99694814 + 6118C79FED2E8AEA9B1011F6A5838A28C50A4C2B3B0D322B6AADCC44D33425B3 + 326FB368B14BCD346F21D34C14B32CA5AC3622C59482820EED502C8FB2CD5577 + 5777B5B71D65A73D461D679F69FCD0FFD3ECB2F3EEF3E3799F77E6CF5F440801 + 9D0253A5E4D2217BC0D0A3570DD0A15283B2A717641DDDE0B575294C1C374684 + B2B856BABA454C00EA3EC2755D5A3575DF41A5EA3680F0DC321F264F98620061 + 6DE7C8E9CF5E484B44260001C98F48ACF73A1480CF4DBF40A6D0184034B57581 + 9FD32203080AA0FAE9BD117586BA674800A5FA77FFE7A094079C8A8FF1DA00ED + 4A3574742A4D20BEB57580BFD3121A820D804AAD242E69CE30DF622148765C16 + 0D0A7034A99CC4F938D000E6A8AFB7173AB5EB304134B6CA2158BC923580E47E + 14497C1C07CBE658C11DBFF2C101FC12CA4882DF26940ED47E934159D547F8A1 + DDFBC652F774C355FFCDAC00BEB47D266B2FD880A64F0345BE65606DB9627800 + B9AACFEC0EE8F4B2AE05AADE366AB79486FE4EA150B00610A73A9167B552D8B1 + 7C37C48B53E87B580184A53F440371B65B0CB55F65A0D16EAD0F0DAD26007255 + 3BE9EAEE84593367D33025AF6F13EFEB6E3075D234A80A7D03D327CF181AC037 + F61E490C7044ED80BE143D1AA86F91434E690D241DDB6A00B0F1B22DA96D7D0F + 69076E80C3C28D226A7057C75841B3BC09A2B649C0C3F6B0C1C9C50A00B30367 + 3DD6D3D721C9652600C185C7487665268C1F3BBE1FA2BABE12A8C19D67B100CA + 032B40A4D5B000DE178B49F2F16DBC7540A7A0C4124839E16400A0AD8304E61F + 81FCEA9C7E084AD4E016FADC079BB9AB4C1E7E8C005EE78B48CAC9EDD0D43E70 + 7248B2A5684507EFB7A7AF4FA796426A90B3C910EB4350D21F5C56001E920292 + 1EBC9306E04B11D74A20236417E329444144DF0D85CA4FCFE19677313DB89C00 + F8EAC050006C34EA3AC0650D4600F7337924337C0FEF1D084BB80D591162B35E + AD195FA775000D3F7BD00A67D2E9A4227E005C23B2497AE43E686E57F77FBE98 + FB04ADE8E32E6BE8EBF0F87CC83EE38ABF858C01F8923100DA10EF0DCD2259D1 + 6EF05536B08562F3A4684507ECB1FF0B10771372CFB9E3FB010A202DF200B4C8 + 79EEC0080158FB016380D1D08111F901F1A9749211EDCEFB29141D9F0379319E + F87E8002488E3CA87D0E0C7420A9E0295AD13E3BED860440F103C600FFB20328 + 7E404800143F2024008A1F101280BA36DB0F500057C2DCA0AD53C3A60E74001D + 04673F4001F05AB99ED81EA34C1A14406F4EFE99505FE68400E02AC6D7E9FF00 + 1C84BA85A88003AB304B8BE970C871F8540675883123A69C27EF58454BA87E00 + 13A0A8A28E553E86EA078408F950FD8050211F9A1F1032E443F10342867C287E + 40C8900FC50F0819F2A1F801A1433EB3FD8090219FEE7766F9012143BE91AC33 + EA423E2EEB8D9A908FAB7475FF01B9D1C5EC4D5E71830000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'SetProperties_34_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004144944415478DAED996B4853 + 6118C79F5576A3B0BE0911615FB2A8884AACC0B4B2AC0C5C66D4BAA889A5694A + 6665DE53A3613735D3BC26649649A1969A94E524524C2928E8A25D14CB4BADE5 + 5CDB74D3DE76B49D7639EAD9D97B3A0BFA7F7ACFC679797E3CEF73CEF9F3E721 + 8440ABB06C113A7FC01970A8A4AE0514FD0320E9ED03FF2D4B60D284713C2C1B + FF96B66E1E5B000F9FB741AF52352684BD931B62B2FF5351396F4400D520A33D + F5D4D4F20594CA3E3D88FD9BED60CAC4A97A100440636D8549DD21EEA10408CD + 7C889203D66101F8D0F11D2472B51E4487F80704F317EA41D00150AA1468578E + 07D8D92C00E1B60BBC310114AA9F43D7E159F719159FE4BF017A142AE895298C + 203E8B7B2184BF9884A00320AC3C89D21FA5C0D239CBE14E70F5C8008733AA51 + 4AA00B09608E06070640A6D9870AA2BD5B0A118295B4003E8A3FA0B5671D403D + A88692A02AB0B75D313240705A154A0BDE88A503CD9F2550D5F00EBE6ACEBEA1 + 54FD7D702964132D0041361F3D6E16C1B6653B20559045DE332A805439687607 + B47AD6D2050DAFDA35474A4DFE2697CB8D00A4CA1EF4A34F06B366CE2661CA5F + 94A280AB3E306DF27468887A09D653669806109DFB001B8887D32268FE2401B5 + E668BD6DEB360270BDE0889ABBDF408EF7357059E0CA23067775D272E89476C0 + 497721F8391ED41B7C4A80A0E40A941EEA86B503BA92F7ABA1B54B0A85F79A20 + E3C8163D8088DB475041FD15B01A6F3504D1D85A0FC4E0CEB3990FD56175C0D3 + C864009C1D38E5B79E5C476656190168EA4061C587A0B8B17008821031B8B703 + 2BC161EE2AA377072540C0B9329479D49DB50E68159E5E0E59C7F84643AC0B41 + 4877706901F89F294159C7B74247CFF093435820C25674C45E67721D9F7D0FB2 + C33D289F420444C2DD28A87FFF046E069491834B0BC04F780BE5467892006C29 + F67239E4456EA7FD22630CC056070C0198EC67311D602ACACF69DFC422742566 + 27EB1D884E2B85FC58017B006DDFFAB1154EA5F88C121200EB11F28A2D40B971 + 7BA0B34735747DEE7A0DB6A28FEE5A43AE63528BA120D10BFF101B02B0255301 + 68FB81DD51F9283FC1073E49868F507291085BD1A13B9DFF00A4DC80EBA77DF1 + FB01022027CE1BBAA42C77C0040093FC8021802574C0243F2038918BF2127C59 + 7F0A25A4164251D27EFC7E8000C88CDBA7790F0C7720E3562DB6A2033D9D4605 + C0E2070C01FE6607B0F8012E01B0F8012E0188B5D97E806B002D04633F40005C + 8CF601B14C4DA30C7600E8685400562BD7912E0093FB29017406DDE245F939FD + 1F8081FEF9238475888980035761B636D670C06DEC6809AB1FC0193115D6BCA6 + 958F61F5035C847C58FD0057211F363FC065C887C50F7019F261F1035C867C58 + FC0097211F163FC075C867B61FE032E4D3FE67961FE032E433652F8B0BF998EC + 6531211F5369EBFE05DBF9C8ECE5DDBE420000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_35_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000041D4944415478DACD99594C13 + 5114864FDD351AF48DC418A32F2A516354E29220B82F9080A0D1E2021236418C + 888A2CB21A1B5C5844909D4404914010658B8294182188D14413175084802C8A + 95826DA105AF1DC88C1D5AE8747A87E9FF74A79339395FCF3D77E6CF11208480 + 54409A18DDF2B4011CCAADF90892FE41F0B25B07B3674C136009AA21326F0157 + 00C575CD201F1AD60B61696D8B0C8D4DE895B854C02940F5DB36E85728F54210 + 008DB56506558878665200E508AB3F85A6D7CD3F40A118A441781C58097367CD + A325CB0440A19423E7744758696E0122A758C18400FE29D528CE7B27168096CE + DF2091A968109DBD7FC0CF61350D820980A83C02253D8F87F54B37C263BF2AFD + 0072E5DFD1EBC0D4A7AC928FF1DA037D7225F40FC8B520BEF7F6C35987B51484 + 3E806FBD2D68C78D4DA01A5141B16F25582EDB3C31C0B9E42A14EFB38B023046 + 23C3C330A08EA30BA2BD470A41C22D8C0084690EE84593189C361C8104612AF5 + 8C4E00BFC44A94E8B70F4B059ABE4BA0B2E10BFC54EFFDF1520E0DC29DB3FB69 + 0052451FFA3338008B172DA1604ADF3D42DEF75C61FE9C05D010F21ECCE62E64 + 0620558C185D01526F9ABBA1E143BB7A4BA9A8DF64329916C0DE582BD4D4F309 + D25DEEC32E8BBD02A271B7C56C842E692744D88BC0DDEA34AD6F180184663CC3 + 06E268BD069A3A24A0526FADCF6D3D5A004145E7514E7D16CC9C3E7314A2B1B5 + 1E88C65D61BE0AAA02EA40A0965E00DFB83294E46F8BB5029A920DA9A0B55B0A + B915AF21F9BC1D0D409D070A283803058DB9A3108488C62DF229874DCBB76A1D + BD8C007056E0AAFB6E6A1D9C52A90540AC35210869362E2300EF9B2528E5823D + 6715201598540AA9171D749E420444D49310A8FFFA121E7A97508DCB08C0EB7A + 314ABD74103AFBC64E0E518E185BD241276CA875645A05A4053A323A46756942 + 00775121CA083A440170A5B0BBA590197C980260138311005715D004602B9D9F + D37C54002B805B743ECABA7294F30A84263E82EC3021FE2D4402B4FD1AC296B8 + 2E452617D300B035F1C9B01C94117E1CBAFA94A3D737F36AB0257DC1793BB5BE + 92500039D127190330F603E301B892A1008CFDC0B1906C941DE50A1D92B12D14 + 972FC696B4FF519BFF00F10F20EF9A1B7E3F4000A487BB40B794E30A18006090 + 1F180F309515C0E2078497335066941BE7A75054422EE4C778E0F70304404AF8 + 29F57B60AC02C985B5D892F639643D2900163F301E602A2B80C50FF00940AC8D + F6037C039010ACFD80290030D1A400B7435DA1774065483CA301D8C4981080D3 + CC354402B095CECF698D93CAE465320058B7105F00D89AD8540118FB0162C081 + 2BB165E666E069AB7F3E86D50FF031E4C3EA07F81AF261F3037C0EF9B0F8013E + 877C58FC009F433E2C7E80CF211F163FC0F790CF683FC0E7908FBC67941FE073 + C867484C931BF2B1896732433EB622F3FE0700A9C5EC207121A6000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_36_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000041A4944415478DACD99594C13 + 5114864FDD311AF58DC418A32F2E516314839A20A8B86202A246EB8A84A58235 + B22822088AC60637400459251141241A4451888294182108D14413175084A02C + 8A95825D68C16BA764862E039D4EEF30FD9FEE3499DBF3F59C737BFF1C014208 + 48856548871E6CD41CC76910E0B114268E1B23C0B5A7A1C8B805A6005703DCB0 + 7C415EE54790F5A82170DBC8102B5C3D58FD68AFA525024E018AAA1B41D9D76F + 118200A8AB7A62559688773807A878DB023D2A8D450826002A8D12EDCDF486F9 + 8E0B41B2E39AC0228066C0F656A86FFC092A95DA08C27FEB7C709830D9285826 + 0092A76751CA8B445836DB091E89CB87070849AB4009A2F558009ADAFE804CA1 + 358268EBFA0B62AF4546109600BE7535A175979D413BA085A2E032583167A565 + 00A5E69FFE3922FD19ABE0E3033742B752033DBD4A33881F5D3D70CC6B090561 + 094098E1855E364861C7F2DD90244CA7DEA105389E5A8E1283DC29005B34D0DF + 0FBDBA7DE8205A3BE510295C6504205775A3BFEA5E983963160553F2EE2112DD + F6812993A6426DD47B98E6307D64007172194A166FC69281861F3228ABFD02BF + 74B56F2A4D9F1A6E1CDB6204B0E99A0B6AE8FC049987EE80FBC24D02A271D7C4 + 3B41BBBC0DCE7A4AC0CFE58851D98D0820570DD89C01526F1A3BA0F643ABAEA4 + B4D4670A85C20C20F24128CAADB905E3C78ED743D435D700D1B8F31C17407958 + 350874B21A203AEB3936106FD7C5D0F05D065A5D697D6EE93403D0C581C20A8F + 42615D9E1E8210D1B80F829E82F3DCD56627172D4070C2139412E28135038652 + F469A1B9430E79A5F5901ABACDAC890D210819362E2B009C19B8E0B7815A9F4E + 2BA3052021E21E4741CDD757704F544C352E2300D195629416EEC959064845A4 + 9440FA092F46C7289D860508BC5484D24F6E87B6EEC19343922BC51674E40137 + 6A7D2EA3143222BC290036FBD102F849EEA3ACC89D1400578AB95902D9A777D9 + 74CDA6BD4E9B027095815103E04A8600584BC8F77C01BA75660FE719884E7E08 + 393142FC4D4C02B4FCEEC316389DCEA5165905C0D80F1C8CC94559B1FBA1BD5B + A37FBE925F892DE8F0BD6BA9F599A442C83D7F903100633F600AC095AC01B0CA + 0FEC8BCA4139713EF05D3658420905526C4187EC711B0248BC0BF9177DF1FB01 + 022033F61074C839CE000D00163F600A309A19C0E20784A7B250769C2FE7A750 + 5C521E14C4FBE3F70304405AEC61DDFFC0600652EF57610B3A68A7EB880058FC + 8029C068668058DBEC07F806202158FB017B006022BB0360B3C7B000D7A37DA0 + AB57CB664F56006C457B9D2600388DDC409C00181CB5A326AC25C41700B626B6 + 5700C67EC05E0118FB013E867C58FD005F433E6C7E80CF211F163FC0E7900F8B + 1FE073C887C50FF039E4C3E207F81EF2D9EC07F81CF291EFD9E407F81CF259B3 + BFDD0DF9D8EC6B37433EB622E3FE0FFF2AB9EC152D0BB10000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'SetProperties_37_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004134944415478DAD5D97D4C8C + 711C00F0EFE39D31FCD76666FCE36598510B5B0A11B249325D485A6FA22621E9 + 8D985BDE2A29BDB74949CB2A8A46E99AD1526363F352A4D68B22A72B775777E5 + E79EDAF3B8B7EE9E7BEEF7F49CEF5FCF75F7FCEEFBB9EFEF77D7775F022104FF + 7310EA80D0741136CD42ABD9E0E7BC0AA64E9A40187A9D8DBD33ABF77C252A23 + F402AEF9396001E4557F0071DF00F8EF348C2001F535E584296B93F7700E287E + D904B2C121A3082600B942863C325C6189D53210EEB94E8C0BA0EA4D2BF4C915 + 46114C00C247E750F2B30458BDC01A1E04551A072886CD3F0A0D4DDF412E1FD0 + 40F8EE5802D3A7CCD048D618E06B4F33DA74C51694C34A283E5A01360BD78E0D + 0849AD42F1019BB1009A3B7F8158AAD44074F6FC862097E51A08630041BA0B7A + DE28823D6BF641A2208DA0EE31089029FE8C3C0E4B7BC22AF938FFADD02B5340 + 5FBF4C07D1D1D307C12E2B69040590C87BD1EF817E9837773E8D297B5B82026E + 7BC1CC69B3A02EE21DCC9E3EC730E0784A254A0874A401E6C4F0D010F4ABD6D1 + 8768EB9640B8609D06C0E9BA1D6AECFE081987EE80E33227823CB81BE2ACE19B + A413CEED12828FDD118DAAE905042555A0A4A06D582AD0D821868ABACFF043B5 + F7B5433138003783B76B00C2EF9F40B9B5D93079E2E411447D4B2D900777B1D5 + 52A80C7D09842A180324F261B32B40C5EBA62EA87BDFA6DA524AFA6F52A95407 + A0CA0385161E83C2FABC110419E4C1BD1FF8086C17ADD739F88C0091994FB141 + 5CED574063BB1894AAADF5A9B55B07405EAB23C8503FB88C0047E3CB51728833 + D60AA8877450092D5D12C87BDC00292776EA002844ECC308A8FDF202EE0594D2 + 0797150067052EFA6CA1AFCFA6568C096012630202AE96A2D493BB38AB001561 + C9659076CA8506B059432FC0FF72314A3BBD1B3A7B47BF3984B9226C49871F74 + A0AFCFA73F86F43057933E75EDA0F2D600F8088B5066B81B0DE02AA26F9541D6 + D9BDDC03B8AA803A00EB16E2A302580FB1F78502941DE5CE790522934A20275A + C018C0B81FA000AD3F0739F9E4A9389F526C1280713FE0199D8B32630EC0B75E + C5C8E3ABF9D5D8923EE9B191BE8E4A2C84DC0B9E8C0026F503DA00AEC2148049 + FDC0FE881C9413EB05EDE2D12D145F20C2967488BBC33F40C25DC8BFE48DBF1F + 2001193187A04BC27105F400B0F403DA80F1AC00967E4070261365C57A73FE2D + 149B98070571BEF8FB0112901A7358F53B305A8194A21A6C4907BAD91B0490D7 + 66F703DA80F1AC00F59C59FD8025009884C501D8AC613100B6A1F7DF69127023 + D20B7AFA956CD7E51FC069E66AC1C91652FBAD18B7C07A882D15C0B81FB05400 + E37EC0120126F5037C0DF9B0F5037C0EF9B0F4037C0EF9B0F4037C0EF9B0F403 + 7C0EF9B0F4037C0FF9CCEE07F81CF251F79AD50FF039E433656D8B1BF2B1790F + 8B19F2B10D2AEFBF2B36A3EC2DC011B20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_01_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000068E4944415478DAED99794C14 + 571CC7BF7BCEEE2220340544A58A0772683D626CB1B65AB505236DAC6D63ED1F + D6A28D965E466B6BF068634C5AE3196FE919CF369226AD826D54D4D8D6C48256 + 830B82C02AB214175816D87B66FADEC02EBBEEBABBC82ED8D45F96CC7BF38EF9 + 7DDEEFCD777E3388789E47A0F666EEB77CDEBA05D0EAAD427DEB9133018FF567 + CBDE78DE595EBBFD080E6D58280A649CA83B00F33EC9E3BF599F0D4DA325688E + 7BB3CFB71DC4D12F17870660CFBA85A86FB109F55D3F1605CDE99CD7A7F53E40 + A8EC11C02380871960C79A85D0B5FE870142EAB98B8504E061B447007D6DFF2F + 80E5FBCF068D76787C14B233C6402E150574B3060D60F33B53830270B8A80C3A + BD114BB2C6F508A2CF00F2FFA882C562ED31449F019CB9AC41B389ED31C40301 + 58ED3DBF154A2AFF81D1647183C8CE1C8D3085AC5B10DD0258B1F734BF69C9F4 + A00054D6E961305ADC20EA9A4D583A2BAD5B100F0460B472427DE59E930FE4FC + C6A5196831DAD16C68F780A8D5199043B653A010DD02F868F7297EDBBB339C00 + 3D319BDD4EE68157886A6D3372E73F1D7C80F7B617F03B3F9C15940894DFD1A3 + E0CF7234B579BE5F5B4C4690EB840EA099843F585652D1808BA51AB49ABBE66C + 6B6DED1D803579BF050D64CED4B128235111733694DEBC131A809CADBFF0BB96 + 65053502AE66265B5353DF8403859740AE133C80FA4603FF57690D0A8B357005 + 086604D62F7EC1595EBDAF1033C726604CF25024C645F804F105C05FB8AAC1C9 + F357A06BB36170C240DCAE6BC0DE152F872C020E5BB5FB049E9D9084E2CBA542 + 7DF694344C9B9824F81B1040BBD9C66F3B780A4D1611060C8845985C2C9CBF72 + BD0AFB56CE717E5ADCF0FDA9A0399DBB6086B3FCD9FE1398372B5D28732C8B12 + B5062DBA067CFC76262255723708AF005B0F9DE6F57C18C2558C50978B78C864 + 12945CAB40DEAA579D00A1B2B57B7E1600C41289F35C13795EDCBC5181956FBD + E81F207BFD613E3935D9ED1C8DC2BD00A18A8003809A2BC457470A3C3EFA7A05 + 58BE259F9F302E55C84D5CADBCFC66AF45606EC664C8C4BC13826EA59F0ACF63 + E7A7F3FC036CFCEE577EE6947164A414EA9A062788BA548DAFD7CC0F790456EF + 3886D766777CEC656462C446C861B1D95050548CDC4599FE010E1CBFC8973798 + 31F7B914C43DD61F26B3190D24DD2D2EAD42CEDCF4907F5E3F7EB618E9E34721 + 52298552A12032AE47FEB9EB181225C5A239CFF80728BA54CEFF70AE0C83E363 + 101F138DE4419178222E5A688B54499DFDAE5635084958534B1BF4461B9ADAAD + 3099CC2451E3C8438985D9D205CA48C5502A159D733060180661610CE2229550 + 1027C78F8871F6A399AA95E5A1BDDB8CD25B8DB8D5D00ADDDDBBC89A340C19E9 + 29FE01D4D5F5FCA6836790386C281832B94385FA333CA64E4C815CCC92956120 + 158BE85B94D755F4F5CE60E7DCDB2CF68EE4D040B2519A28FE7EB91C2D560978 + CE2E2C04CD5CEB6ED7622989FEF891F1FE011A0D267ED9E67C24250D7303E02C + EDC89C9C26AC8E4CC6A0ACBA0E4A39010B93754C26E9880E2393C142FA80737F + E0F12C59594E8C760B072BD9D3461A25E2B0D5CE22257120388E237B9D250065 + 50A8FAB90154575462E3072F912D1DE11F801AFD7F584AEA28C1718554EA1540 + 45A45525277E42EC1C67767957A0FD9CAB4ECAAE756A2697BE36D2E60BA052AD + A6122AF81C1000955255740CC2C93EBD1F802302E447CEB96C89CE32953E018A + 759FDB0DD2DED1E82F028DB5351E12EA13804AA981631011AE720398FE54AAD0 + EE88003545E7916E65BBDD3302F6CEA36B04E88A3BCEDB3A8FF703301BDBA0E4 + 4C1E12EA13804AE9158D1EB14485EE05E0588EDC1BCA5E8B805EDF8251B18C87 + 84FA04A0527AECC20D3C3128F6BE0052095121F2E78800B9365896F358ED40F6 + BFAF0868B55AAF12EA13804AE996A317306278429F0368AA6B90F3CA248C4D1A + 1C3880434AD3D246F63940655939BE783FCB43427D0250A3523AFAC954A8647D + 0BA0BE76CDAB84FA05A0521A1D178F7025D36700169287696F69BC4AA85F0087 + 94C6444538011831715E192638AF24698482914142520AD6253DA06984EBB72F + 2B2F81C86E76CAA685EBF2C546CA361BDBD94F04DE6A16C63A005A0C6D50D8DB + BC4AA85F002AA57FD7B62321364A0090CB4976488E0C2347626C3F216550C825 + 6E63343A93209FD4319EED7A6FA069439852794F1458D2D70ABDA9CB07470248 + B70E05D0EA5A90FCB8D4AB84FA05704869D29081EE0024471F1AD38F64914A0F + 009A76D35CC71B808AF41549E41D0E92071E4FA2E60FA0E6B616B3270EF12AA1 + D4FE057E836EECD50E4D430000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006784944415478DAED99796C14 + 551CC7BF7B1FF4A0A02D14284781D203040C81B4124140DA4A3580E1D03F9033 + 60A308682302A221186DB88CD40A183CB8C4404C14282AB6421088580E9BD22D + 2D6D97A30B65DBEEF6D8DDD9639EEF0DDDED2E2CDDADDDA535F24B36F3667666 + F6F779DF37DFF77BB3224208EE0F9148046FF1CA7BBBC9AEF5F3A0335811CC78 + FFD303D8FFD102AF49DC9FAFA823005B0FE4072CE915739F0B3EC0ECAC9D64F7 + 8685D0D672014BDC5B7CB86D2F0E662F090E40EEFAF9B86DB409FB39DF17042C + E9CC59131F3D40B0E231C06380AE0CF0D9BAF9D037FE8701829AB95B0405A02B + C46380CE8EFF37C0CA1D05017B880747476061EA082864E276F5568701362F99 + 101080FD051AE80D262CCD18D52E882E0370F84C0538CEDA6E882E03907F518B + 7AB3A3DD100101B0DA3BFE285C28BF039399F3805898361C212A799B101D0258 + 957B826C5A3A292000E5D5063498380F88EA7A3396A527B509111000939517F6 + B3728FFFABE4B397A5C268B2A3BEA1F901889BFA0664D2E1F430880E012CCFF9 + 956C7B7DB20BA02361B3DBE97DE015A252578FB5AF26071E2073DB51B27D797A + 401428BD65C0B1B3A5A86B7A707DCD994DC879EB85E001D453F9031517CA6A70 + AE588B464BEB3D9B1A1B1F0DC0BA5DBF040C64FA8491D05055C4BC0DC5D76E05 + 1640A73792BF8AAB9057A845CE8A8C802AE01E163A34B5B7EBB027EF3CA68C8C + C188F88188ED1DEE918CDF00F43839FDB716C74F5D82BEC9867E317D507D47EF + 01104805362C7EDED55EBB230F292387A0F062B1B03F6D7C12268E89637989FC + 0268B6D8C8B6BD2750C789D0BB7714BAC9C5C2F1CB9A2A7CF1F64B4153C019AB + 3F3F8AD9A9E38436EF70E0428916467D0DDE59908670B5A7BD7A05D8BAEF3762 + 20DD10AA5608FB7211814C26C1A52B15D89135DDF56A71E337270296F49A7993 + 5DED0F761EC5ACA9632196485CC7EAA8DD5EBB5A86ACD7A6FA0658B8613F894F + 8CF738C654B85054865DAB5F0EFECBDDDC1F31273D5968BB437C79E018F66D9C + EF1B60D596C3E4E95189C2D4EE1EA5A5D73C0082A5000398999A029998B820D8 + 50FA21EF14B6BF3BC73740F6D73F9329E347D12BA528A9AA7181DC0F104C0518 + 000B5AA1222A4C0ECE66C3B18242AC5994E61B60CF9173A4B4C68299CF26A057 + CFEE305B2CA8A1D562617105326726075501AB83E0C8EF85481E3D0CE12A2954 + 4A256ED71A70F8E4150C889062D1F4677C03149C2F25074F6AD02F3A12D1913D + 10DF371CFD7BF510BEEB1922839DBF770D67F7AC896C0ECFFB98ADAD07E412CF + B9452211C3E1E0852D0B59CB505748C542A1C7407477EB517CBD16D76B1AA1BF + 7B17196363919A9CE01BA0A4F236D9B4371F83620742417BC0E942DD150413C6 + 24402E76D09E5150653848A512485BD6214E307FC36EBF0768E52550529368A0 + C51CABB3CE1455C060E241783B9DDC1C42E1577DE3269651F5470F8DF60D50DB + 60262B361F465C5CAC0700CF35232D2549E81D994C0135FD51F6C3ACD7BC29E2 + 4A94673328841E770E133BFDB0ADD9ADB2E5A884EC73FEB20662658807406559 + 39B2DF7C910EE930DF006C26667F2725240E1312574AA55E013495D550C92574 + 78B0A45AAFE75ADACC395858EE1B5A16B7A4AD2D2A240CEA039EE705803F2E6A + A0547B02949794300B15D2F30B60E5E64344DD2312A1DD140F05600AA8E53451 + 88BD27E768BDB7B3C7DDC3BDF76DF4BBB6006A6F562167F55CFF4A0906F0C957 + C74903AF4058A8BAD315B0989AA0E2CD58BB38DD7F806F7F3A4B2E690D88A22E + E40E30695CA2708E530116CA962D1BEB76FB830AD85BB6EE0AD85A9E03675B00 + 7E0880C160C4B0280516CF18EF3F40FE9F1A72E8F455F4EF1BF500004F1F4685 + 52F5C814D0E9748285A6A524FA0F70A54247B67C771A4306C73C14404ABD9DF9 + BB5301360FB83B4D7BC67F5B0A682BAB9039632C460D8BF11F406F3409569A94 + 34B4D301CA35A5F8F88D0CF47E22DC7F0016CC4A873F9508B5AC73014A8A8A04 + 0BF57B41E3046056DAA3573442558A4E03E0681DA6BBAE152C949DD32E00A795 + 464684751A80B1A1094A7B9360A1ED0660567AF9663362A2225C000A314D5ED5 + 4D485E25A5C92B6490D05AC8E15607B1578FEEEFBEAC440291DDE2B24D8E6F9D + 4C6DB46D6BA902AD84AEC5AD16E15A27804E6F44FC9352C142DB0DE0B4D2B801 + 7D0400B99C96B774CB6AF4819121505215947289C7B5ACEC6EE6782131E2685D + 3798E85856D3734512B9B06FB1B3628DCEBEF41C83B935070B77EF45171BFB0C + A0EA860ED3C60C102CD41BC03F4516DAECC067177C0000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Recycle_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000067C4944415478DAED99796C14 + 7514C7BF7BCEEE165A5AB5277729A507A7A998221104A445AAE11045FFE02660 + A308682302222118255C462A0206542E31541395438536100422470B58BA85D2 + 76A1744BD9B6BB3DF6DEF9F99BA1BBDD8596DDA5B314222FDDCCEFF7CB6FA6EF + F3DE9BEFBC9D15114270B7894422B4666F7DBC9DEC58391D376A2DFC7CC3DE5C + 08650BA7BEE41A7FF2E55EECF96C66AB4EDCEDAFC85F806D2BA641ABB70AE678 + 6BF6D0001EBB0CBC91B5956C5F350B9A1A8B608EB7662B37EEC2BE35730303B0 + 79C50C54196CFC3CFBA73CC19CCE9C32F2E10304CA9E003C01789401BE5A3E03 + BA86C71820A09EBB5940001E057B02D0D1F6FF0658B4254FB09BB84F742866A5 + 0D002313FB15AD7603AC9B3B4210803D796AE8F446CCCB18EC17C423039073B2 + 14168BD56F88470620375F833A93C36F084100ACF6F6DF0AE74B6EC168B27840 + CC4AEF8F4E4AF97D21DA05B078F311B276DE2841004A2AF5A8375A3C202AEB4C + 983F2EF9BE10820018AD2C3FCFDA7CF8819C5F333F0D06A31D75F54DF74054E8 + EA9149CBA92D8876012CC8FE8B6C7C67B40BA03D66B3DBE975D02A4499B60ECB + DE4E151E2073E301B269C1384132507C538F83A78A51DB78EFF76B8BC988ECF7 + 5F091C401D4DBF5076FE6A354E176AD0606EB966634383B0005A9D819C2D2CC7 + E1FC0AB8032CDFF6A7602013460C829A6645CCDA5078ED26460F88C180845E88 + 8D0AF170C66700BA4E4E5CD4E0F0F102E81A6DE8D63D0695B774C85E98216806 + DCCD4C4B5353558B9D87CE60D8A0389CCB2FE4D7C70F4FC6C89478CE2F914F00 + 4D661BD9B8EB086A2D2244454520482EE6D7FFBD7ADD0340C80CAC9AF3B26BBC + 6CCB214C1EF31C3F661D0E9C2FD2C0A0ABC68733D311A2F254A7560136EC3E4A + F424089D550C3F978B086432092EA8CBF1CD07AF052C034E5BF2F501BC3E2605 + 6289C4B5564BD5EADA95ABC89A3ED63BC0AC557B48425282C71A978582CBA5D8 + 9235C1F56A71F5F74704737AE9B4D1AEF1A75B0F60CAD8A1FCD81DE2DBBD07B1 + 7BF50CEF008BD7E790670727F14F46772B2EBE866D4B2607FEE5EEE65F31296D + 186462E282E04AE99743C7B1E9A337BD03ACF9EE0F3266F8607AA61445E5D52E + 90BB01029501270067B4C14344B01C169B0D07F3CE61E9EC74EF003B7F3F4D8A + ABCD98F46222229FEA0293D98C6ADA6C9D2B2C45E6A4D48067E0E7A367913AA4 + 1F42945228150A54D5E89173EC327A864A317BC20BDE01F2CE14937DC7D4E816 + 1D8EE8F03024740D418FC830C8C50E7A632B6067EF9C73B1B49A6F016A0D8DD0 + 1B6DA86DB2C26432D33681A592E880D9D2F29465A46228950A7E1C42C5816118 + 040531880C5142419D1C1217EEDAC7F549560781F6761D0AAFD7E07A750374B7 + 6F2363682CD25213BD0314955591B5BB72D13BB617187A71A70A75610846A424 + F2204A0503296DDFE5D2B6BBDFB6BA5667009C66B1DF694DB8E7809EF643272F + 95D280B020AC9D0F04D73755DEA8C07C9AFD217DA3BD03D4D49BC8C27539888F + 8FF500602D4D481F96CC47472663A02EAB84524EC18264772E2691DE89A24C06 + 0BDD03D6536E8983469615A3C9C2C24A6BDAC865893A6DB53B3030AE2BAD7307 + 1CF4663D59500209A3F00028BB5A8235EFBD4A4B3AD83B00F724E67E8D494CEA + C73BAE904A5B0550516955C9A99F10BB45977EEC2DDD2AB7975F6F3E3AE79CD9 + E8D8EE36E700B8CF990B6A88159D3C004A8A8A3809E5DDF30960D1BAFD441516 + 8ECEB44EDB02706680FED135B792681E73D2C79786C3F3FA66B7769C8B3E6789 + BD63C0B22C0FF077BE1A0A9527404D4539B2974CF5AD95E000BED87198D4B30C + 823BABFCCA8087736ED1E522ED3EE7CCE4B697CB465B0066632394AC09CBE68C + F31DE087DF4E91028D1E1154853A3A037ABD01FD2218CC9938DC7780DC7FD464 + FF892BE8D135C20360D4F349FC1E67063853341F1FB4FE6DCDC7B600B45A2D2F + A1E9C3927C07B85CAA25EB7F3C81B83EDDEF01601D2C5527E543CB80A6AC1C99 + 13876270BFEEBE03E80C465E4A9393FBB6092095D0E700FD383340FF379541F6 + 81EAFF7E19285117E3F3773310F57488EF009C7152DA7F601254B28E0528BA74 + 8997509FBFD0380138290D8B8C466725D3610016DA8769AF6B7809E5F6F805E0 + 94D2F0D0E00E0330D43742616FE425D46F004E4A2F5434A17B44688701687506 + 243C23E525D46F00A794C6F78C71013062EABC3288775E491B39052383843675 + 0EB7068D6BE2DCDF7D59890422BBD9259B16B6A51BB0D1B1CDE668DE2702B19A + F9739D00E537B4189FD29397D0D600FE03411CF0EC2AA8CA810000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Recycle_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000063C4944415478DAED990950D4 + 551CC7BF7BB10B0A081508281EA89C62E8900EE6E44581490D6A87398EB7A331 + 656A3199A29963538C0795441EA3151E9932CD542A99C1E8983A9AA219B20802 + 8BC8122EB0CBB1077BFC7BEF0FBBECCAE2EECA2EE0E46FD879C7FEFFFFFD7DDE + F7BDEF7BBB701886C183C1E170602DE66FCC66F6A5CD8354D10A5746DA97C790 + FDC97CAB493C982FC71180B73EDACF1CD8BC1077EB356C7BE7913CA725BD7AEE + 54537DE3174770F8D3C5AE01D8BB6901A472D72AD063008F9D026FA4EE61F66F + 5902499DC669895B8BCD190771347DB96B00B2362D428D42CBB6337FCC775AD2 + 29AF4FE9790057C5138027007D19E0ABB44590353DC6002ECDDC2C5C02D017E2 + 09406FC7FF1B60CDEE7CA72DE211813E5892100DA180EBD068751B60FBF2C94E + 01389C2F864CAEC48AA4188720FA0C40CE85326834AD0E43F41980BC02091A54 + 7A87219C02D0AAEBFE52B856FA2F942A8D05C492C4D1E8EFEEF650886E01ACCD + 3AC36C5B31CD2900A5D572342A351610D50D2AAC9C11F55008A700285B0D6C3B + 352BF791924F5F990085528786C6964E1055B246A490E9D41544B7005665FECE + 64BC3DDD04D09DD0EA74E439B00A512E6DC0867971CE0748C938C1EC5A35C329 + 0A14DF93E3E4C562D43777FE7EAD512991F9DECBCE0390CA14CC5F8515C82DA8 + 02056820F23B2BAE95D4E252A1044DEA8E67363735617A7410A2C3872124C0DB + 2219BB01483F73FE6F0972CF5D87AC598BC1C14190DE6FB00048DB7BDA6920C9 + 939F8598A8C235685178E71EE2A287E36A4121FBDECC495198121B4AF3E2D805 + D0A2D6321907CFA05EC34140803FFAB971D9FE7F4A2A91B93AC9A90A98879A4C + 4D494D3DB24F5DC19CF8E7D83E835E8F6B45122864B5F8607122BC3D2C17B755 + 809D87FE60E44C3F787A08D9B61B878140C0EB04E04C05B62C7BD154DFB0FB14 + 664D1D072E8F67EAAB278BFDCEED12A42E7CC936C0922D8799F0C8708B3EAAC2 + 0D7105BE79FF559729608C755F9FC06BF1B16CDD1C62DF919338B475916D80B5 + 3B7298713191ECC6621E25A515D89D9A6CFA6971EB77679C96F4FA05D34DF58F + F79C4072FC0408B88C09824EA59F4E9DC3AE0FDFB40D90FEED6F4CFCA4187227 + 1F4515B52690E2E23BD8BB6E8EEB7FDCCDFA19B31326B275723E82BF971B345A + 2D4EE65FC5FAA589B601B27FBDC414D7AA31FB85080C7C6A00546A356AC959E5 + 6A61195266C7B954011E8F8B63A72F236E6C18BCDDF970178950532747CED95B + 18EAC3C7D2E4E76D03E45F29668E9E156370A01F02FD7C113EC81B4306FAC28D + AB270B5B049DA1E31E8DCE7257D6EA3BEA7A7DD73B364D94BE4F4BBAEDF0DB8C + 0E4252A1C78C563DC3DA7661651D2A6B9B20BB7F1F49E343901017611BA0A8BC + 86D976300FC34386414846C0E84203840C26C746C0C30D10F0F944190DF87C1E + F9F0B6679A83D9133A5D1B6DAB81071131096AA372729CB870B30C72A5018C41 + 47FAF4ECB1A3FA6E155612F5C78E0AB40D50D7A862566FCF41686888058041D3 + 82C48951ECE808044202C2653F58681C3E2B8A989235D05DB44D157ABF8EBC68 + 4943D57E34D110F9F464B15E22BB3E87AC3F7380F29252A4BFFB0A99D25EB601 + E84E4CFF99111119C6262E22A36D0D405C5E0D77371EC81FE9EBB85FD35EA7CE + 4143ADB77CBEDAEC30D8DAAEC29891834C0017AE978227145900941615510B65 + D3B30B60CDF6E38C87AF1F3CFB09BB04A00AD0E96440870274A475662A184759 + D75E1ADB34B4ED4A98C009007D5DB9210657D4DF02A0AEAA0299EBE6DA7794A0 + 009F1FC8651A0D4278797AF4880211C38360301858803F0BC410797400A895CD + 7037A8B061D90CFB01BEFFE522735D22873F71214714B048CE6C74CDE7BC3154 + 66D75235BA0290CB1508F31762D9AC49F603E45D1633C7CFDFC69041FEBDAE80 + 542A652D347162A4FD00B7CAA4CC8E1FCE63E488600B80691322D96B8C0AD010 + B5978F3AFFB5ED65570092F20AA4CC1A8F98B060FB01640A256BA55151A33A01 + 1888150A45EE3DA640A9B8189FBD938480A7BDED07A041AD74F498487808AC03 + F0791C923CC7A400DD858DBBAFA3F3FF610A14DDBCC95AA8DD5F688C00D44A7D + 0706C2D35DD86B001A720E93564A580BA5D7380460B4523F1FAF5E0350343643 + A46B662DD461006AA537AA5A10ECEFD36B00529902E1CFF0590B7518C068A5A1 + 43837A0DA0E2AE14336387B2166A0DE03FBFE1DBEC4435AA950000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Recycle_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006774944415478DAED99795053 + 471CC7BFB948020A625B10F0C60BC1031DAB8365AAA2AD38D2569D696BADE3ED + 689DD6512B53EB55EBD869A9575BADF5186D0B5EAD4EFF683DDAAA8C8E55A7D6 + 5B04240241341403241C491E49DEEBEE4262A21C89BC004EFD0D6FDEEECBCBCB + EFB3DFDF7E7713248220E0D1904824A82BA6AE4A1576AD9C029DB19AF5BF4C3B + 09B162E9BB09CEF6CAAF7F46EAA753EB4CE2D17C254D01F055F80CE09D8F770B + 7BD64CC7DD528EF537ED3F255AD28B268F72B6577DB51FFB3E9BE91B809DABA7 + 4167F0AD02CD06F0D429F056F20E61F7DA59D09670A2255E57ACD99C86832973 + 7D03B06DF50C1419ADACBFF5A774D1925EF0E6C8E607F0553C037806D09A01BE + 593903FA8AA718C0A799BB844F005A433C0368E9F87F032CDE9E2EDA24EE111E + 8C5963FB43A9907A355A4D06D83077842800FBD2B3A03798302F29D62B885603 + 70F85C2E38AEDA6B88560370EA8A166566BBD710A20054DB9A3E152E6BFE85C9 + CCB941CC4AEC87366ABF06219A04B064DB0961FDBC04510034F70D2837716E10 + F7CBCC983F2EA6410851004CD53CEB276F3BFE44C9A7CC1F0BA3C986B2F2AAC7 + 200AF5E55840CAA93E8826012CDCFAA7B0F9BDD14E80A684D56623CF419D1079 + BA32AC9812271E804E6F14FEC9C8C7F12B85D8B2709C280A64DF33E0E8F96C94 + 563EFEFD9A339B30BA7F04FA4775436458905B321E0390EBC2D9EB5A1C3F7315 + FA4A2B3A758E80EE4119032823F28B1597738A7121438B0ACBC36756565420AE + 7F775CBA92C1FAE3E3633072486F9A97C423802A8B55D89C7602A59C046161A1 + 08F093B2EB1977EEB901ACDCF987682013460C44165145CA5BD9E74C4A18CCAE + F3763B2E676A61D41763E9CC4404F9BBCF8D3A0136ED3D29188400B4F557B2BE + 9F44804221C3CD9C026C5D9424AA02AE6121A5A92D2A45EAB18B98386A30A432 + 99F3B5523257EEDCCE41F2F4571B0798B5769F10151DE5768DAAF02880980AAC + 9DF38AB3BD62FB310640C31562D7FEA3D8BB6E46E3004B361E1606C746335F76 + 0D4D6E01BEFBF0759F29E08865DF1EC11B092F4221159C10B4947E3976065B3E + 7ABB718094EF7F17C6C4C79277CA91995FEC04C9D1E4637BF204E74F8BEB7E38 + 215AD2CBA78D76B63FD9710413C60C636DB2BD4068A01F38AB1547D32F61F9EC + C4C601527FBB2064175B30E9E5BEE8F05C3B982D161493A5FE66A606B327BCE4 + D31F776532290E9CB88EF8815D11A49643AD52A1A8C480C3A76FA16BB09C7E7E + E300E917B38583A7B3D0293C04E121ED11D531085D3AB4879FD44E26B60A36BE + E63DD7738BD902546AAC84C16445695535CC660B59A4783221EDB0700F3D5E29 + 9742AD56B176103107A552898000253A04A9A122490EEA19E2BC8FAED2D57681 + D9764641090A8A2BA07FF0004943233136AE6FE300997945C2FAB453E81ED90D + 4AF270870B05910F1C19DB1DFE7E80422E879C6C1EFDE4F5EFBD1ADA33390681 + 0667AB5918A90B19C86A7CEE462E19101E026F63034157EDFB770B317F521C06 + F50A6F1CA0A4DC2C2CDA7018BD7B47BA01F05C151287C7D448AD50E2A6E61ED4 + 7E32B40B50D43C4C26AF194585021C1941F0EE935DB09391E5A5A8E27854939A + 36519548D2D5363B06F4EC48EADC0E3B99AC17C8AA2F21F3CF15202F4783940F + 5E23251DD838005D89E9FF02FA46F76189ABC868BB0250791504C09F58AB8A1C + 5476C728D22079B0B0DB7976AF73D449DBB54FC3ECB2AF6A08409399492D94A5 + E711C0E20D8704FFF621684BCAA63E80ACBCFB4C01F247AE3D7C3F57DBA6D6C7 + 4AC3EEFE7C8B4BD274F469B82A70EEAA0632A5CA0DA0A4301F5B974DF66C2B41 + 01BED8735C28E795086CEBDFA002743EF090BAD436395CD4708CB8ADF6ECAA80 + 95B46D2E7D0A408F8BD7B22055B57102584C9550F366AC9833CE73801F7F3D2F + 5CD51A104A5CA83914E8DB3D023CCF3380BFAE6441E5FF10C06030A24FA81273 + 26C67B0E70EAEF2CE1D0D9DBE8D231D42B05DC92F3A2FEA91AF501E8743A66A1 + 89C3A33D07B895AB13361E388B9E3D3AB7B802DABC7C2C983814B17D3A7B0EA0 + 379A9895C6C4F47203481816CDEE71284043557B7ED2FAB7D69EEB03D06465E3 + F3F79310F67C90E70034A895F61B100D7F853B004FEC51A952379B0299376E30 + 0BF5F80B8D03805A69FB0EE168AB56D60920979195981C0E05A8FF53EF7F92FA + AF4F018EECC374055A66A1F41EAF001C561A121CD86200C6F24AA86C95CC42BD + 06A0567AADB00A9D43835B0C40A73722EA0539B350AF011C56DABB6B448B01E4 + DFD561FC90AECC42EB02F80F8B96EBEC747E1CE80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006464944415478DAED987B5054 + 7514C7BFFB5E569120034143041579F820334B6552B112462A75A652737CA08E + E654A3A693293AEAD814F9AA7C649A56E0AB64FAA3526B1046C7D4C9C417C822 + 2BB0082CE102BB3CF6C1EEDEDBEF5ED8E52EAFDD955DC0C933B3F37BECBDF777 + 3EE77B7EE7777779344DA3B5F1783CB4678BB71EA3BF4B9E0B6595119EB4ADFB + D37164D3BC769D68ED2FCF1580F99B52E9C3C9F3A0D236B2E32FD2CEBBCDE9B5 + EFC6D9FAC95FFD8CD4ADF33D0FE029F318C0DC4F8ED047B72CC483EAA614DA7D + 22D36D4EAF9A33D5D6DFF4E5091CFF74B167000E6D5E0095C6B30A741BC063A7 + C0DBEBBEA58F6C4BF27815DAB2270DA752967906E0C0E645A8D09AD8F1BE9FB2 + DCE6F4CAB7A6743F80A7EC09C01380DE0CF075F222A8EB1E63008F7ACE318F00 + F4067B02D0D3F6FF06587D30CB6D9B7868902F92A68F8244C477295A5D06D8B9 + 6CB25B008E67C9A1D6E8B03C31C625885E03907EB9104663A3CB10BD0620F386 + 12357A8BCB106E016834777D2B642BFE854E6FB483488A1F89BE5EE24E21BA04 + B0E64006BD63799C5B0014E51AD4EA8C7610E5357AAC4888EE14C22D00BA468A + 1DAF3B70EE919C4F59311D5A9D1935B50D6D204AD5B55849D2A92388470250A9 + B5F43FB9C5C8C8A9C49EF7A6D900BA6226B3993C07ED4264E7976152787F8C8A + 1882B0401F3B679C0620F3F4A5DB4A9CBB7813EA7A139E0D1E08D5C31AECFD30 + C12D0AE4976970E64A3EAAEBDBFEBE36EA7598302A14D76FE4B2E319B1D19832 + 2E9CF18BE7144083C144EF49CB40B59187C0C000F411F3D9F9DCFB652C400D91 + DF5D965D5089ABB94AD4195A9E595F5787D97163D93E65B1203B4F09ADBA126B + 17C7C347669F5AED02EC3E769ED6D07DE02D93B063318F8648246803907CE84F + B781CC9C3C0672A20A9F32B1EB3063BE4060FBBE9AA4DAFD7B0558B7F035C700 + 49DB8ED311511176738C0A390525D8B72AD1AD0A70CD40525359518DD4B3D730 + 6B6A93025C88C327CEE0D8F6458E01D6EC4AA7C7C644B1658D6B45CA523B0077 + 2AB06DE9ABB6FEC683679138F97988F8B40D8249A55FCE5EC4DE8FDF710C90F2 + FD1FF42BB131E44E21F28A2B6D208AC2127CF3D11B1E53C06AEBF7FF8E37E35E + 60FBE47446403F318C2613CE645DC78625F18E01527FBB4AE7571A30FBE5480C + 78FA29E80D0654929332A7B0024B12C6D8FE5ADCFE4386DB9CDEB0601ADB0A04 + 7C9CCCB88DD83121F0F112C24B2A45459506E917EE22C457882533273906C8BA + 964F9FBA20C7B341FE08F2F743C4201F0C1EE00731DF4236B61466CAFE1EA3B9 + EDB960B200164BCB3CE318BB206779666991C0FE3E8990CF1E728D169A2DDBB9 + 255528A9AC83FAE143248E0FC3F409918E01F28A2AE81D6999080D1B02098980 + B50AF9F491604A4C286462B2B05048943142281440D8FC0ED61ACC9199CD16B6 + 6DA404909222C16C620D39CC2EDF2984464781A6CC64CEC21E7AE50F4AB162F6 + 043C373CC8314055AD9E5EB5331DE1E16176002612D6192F0D6D8AA84802B180 + C72ECC44ADB575A60A135D1680B44C5FDF7C301AC90516B259AF92539F47F61F + 17A0A84081940F5E2729DDCF31007312337FA547468D601D979268332D656C40 + FCC4681B408EA20C5E6201012151B4709C6FEE3395833183C5FEF906CEAB4863 + B30AA3870DEA14409197C79450D63DA70056EF3C4DCBFCFCE14DD2A635001335 + 11019091E85B15E046DCD4EC3037DADC88734DCF81E90CA0AAB418FBD6CF71EE + 558201F8FCE839BA9692A09FB7AC43007951B94714B87C530181446A0330E8EA + E145E9B1716982F3003FFE7A85BEA9D4208054A1CE1460363485963DC00861E6 + A8C1CD77EEB84929DA366F5580F95CBB25075FDAD706A0D16831224082A5B362 + 9D07C8FC5B4E9FBE740F830705748B0291A1034151140BF0D70D39A4B2160095 + 4AC596D0F88951CE03DC2D54D1BB4E5EC2B0A1C12E2960E79C0BF9CFA8D11180 + B2A8182B678D47CC8860E701D45A1D5B4AA3A387F7B8020A793E3E7B3F1181FD + 7D9C07608C29A523474741266A01887B318AFDCEAA0063D2E6F651F3DFD4DC76 + 049077E70E5B429DFE416305604AA9DF8020787B49EC0028521E2552AF6E51C0 + 48DEC354254AB68432D7B904602DA5FEBEFDDA05109293D87A1A3745B2E5FDC7 + D5FCEF48016D6D3DA4E67AB684BA0CC094D25BA50D080EF0ED3100955A8B8867 + 846C097519C05A4AC34306F61840F10315668C0B614B687B00FF0179B0CFECB1 + EE56830000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000069C4944415478DAED987B4C53 + 571CC7BF7D3F102B6CF252F1818A507CE0233A9D990E37C5C81235D9A6CEF840 + 8DCEECA146B34DD1A871D9D87C6CEA8CD3E93650E726D91F5BD42D0AD3289A39 + 5F28028A40152983022D8F3E687BEFCEB9D0D242A52DB48A99BF40EEB9877B6F + 7F9FDFF777BFE7141ECBB2681D3C1E0FAE62F19623EC772973A1D63672E7DB7E + 38035FC5FA0553ECE30DBB4FE0D0C6792E93689D2FAF2300AA2A93CF1277155B + BEC9F00FC0FC8D69ECC1947950EB9A14F822FDACCF925EFB4E827D9CF2F52F48 + DB32DFFF00FE0ABF01CCFDE4107B78F3423CAC6E6AA19DC7327D96F4AA39AFDA + C71BBF3A86A39F2EF60FC0814D0BEC2FB1BFE289013C730ABCB5EE5BF6D0D664 + BFBBD0E65DE9389EBACC3F00FB362D42B9CECC9DEFFD39CB6749AF7C73F29307 + F0573C07780ED0950176A72C82A6EE1906F06BE60EE11780AE10CF019E76FCBF + 0156EFCFF2D94B3C302208C9D3864122E27B55AD4E036C5F36C9270047B3F2A1 + D1EAB13C29DE2B882E0390915D0493A9D16B882E0390795D851A83D56B089F00 + 345A3AFF2A5C2BFC177A83C90922397128BAC9C4ED42740A60CDBE33EC97CB13 + 7C025058A645ADDEE40451ACAEC187B346B70BD12100B546C7FE935B82BFEE54 + 8202E81B196E7EDDBED31D4A3E75C534E8F416D4D436B481C8CE294278000FCA + A8080C8BE98FA8708553321E039079F6428E0AA7CFDF80A6DE8C3E91BD50A96D + C0AE77A7D8013A13668B853C072E21F2549588E9DB1357AFE772D7CE981887C9 + 63A2695E3C8F001A8C667657FA19549B78080F0F458098CFCDE7DE7F843D1F4C + F78902058FB43879A900D5F56DBF5F9B0C7ACC4E18C58D19AB15D7F254D0692A + B07671221472E7F67209B0F3C85956CB0620502EE1CEC53C162291C00E5043E4 + F7555CBB5781CBB92AD4195B9E595F5787999346802F10D8E7AA8952F7EFDEC3 + BA8553DD03246F3DCAC628639CE6A80AAD01520EFCE933109A703E5185CF98B9 + CFA1E7341C210E1E3B8923DB16B90758B323831D15AF44598DC169BE58558ABD + AB927CAA806318496BAACAAB9176EA0A92268D8688CFDA21682BFD7AEA3CF67C + F4B67B80D4EFFF605F9B184FEE1422AFA4C20ED21AC0970A6C5DFABA7DBC61FF + 290E800659DC10DA5D0C93D98C935957B17E49A27B80B4DF2FB3051546CC7E25 + 16612FF480C168440559686E179563C9F4117E538086D94AB619E772314ED907 + 0A991032A914E5555A327707FD82845832F365F70059570AD8E3E7F2D1272204 + 1121C188E9AD40DFB06088F956F2624B61619AEEC929AAE0ECAF5A570FADDE8C + EA8646180C4662910C69072B8CA616879108F990C9A4DC5841CC412291202040 + 8230850C5292E4C84121F6EBE81AD16865A1AEAC41EE832A3CA8A883A6B21249 + 63A3306D7CAC7B80BCE272F6CBF44C0C88EA0F0979B8CD8514E40327C70F805C + 0C88844208C9D6452C6C7FFBD2DEAA6D2B040D1307CD404BD682EC5B45A4200C + 58C6C21582AE19650F4BB162F6788C1C1CE11EA0AAD6C0AEDA9E81E8E8282700 + 1A5347F7E78E029104B70B1F412616A04780A8E961026153154522984805C138 + B71A6B259565F868303168243DADA72A91A41B2D560C1FD49BB40F0B86617031 + E73E78E4FD730428BE5788D4F7DF202DDDDD3D005D89E97FA2639543B8C4A5A4 + DAF468260D3AE3A5817600B1800729B1572A3BAD60EB5EB65A9BE6683B70156F + 3EDACE9BAE63EDF326729395B8CD65B26D690D509897472D944BCF2380D5DB4F + B0F2E0100492B6B10130A606244E886BA300F92149B5DC6F6A1E53EBA361B43A + 3FDFE8B015A1D5A74115680FA0AAB4047B3F9EE3D95682027C7EF8345BCB48D0 + 3D50DE068056504400E4A4FAAE143037274C1570AC36ADB4E3390D8303CCE300 + 8CFA7AC81803362C9DEE39C08FBF5D626FA8B408252EF43880FCE232BF28907D + A3100289D40EA0D5EA30245482A5B3267A0E90F9773E7BE2C25DF4ED1DDAAE02 + D49118F05BAA4C72B338A8E169FFDB14A0BF576EE6832FED660750ABD59C8526 + 4E507A0E70A748CDEEF8E902060D8C7C220AC40EE8C5391005B8783D1F52790B + 80AAB8042B678D45FC9048CF01343A3D67A5717183DB55802E6E7CA1C875725E + F4BFCD425D0114E617E0B3F79210FEA2C273001AD44A870E57422E7ABA0AE4DD + BAC559A8C75F686C00D44A83C322102893D80112C629B9BFD914A0216D3E76B4 + FFCDCD47570026B20F533F5071164AAFF10AC066A52141DD9D0018628F12A9AC + 4501B29D70DC32F852015D6D3DA4967ACE42BD06A0567AB3B40191A1412E0184 + 6425B6ADC64D956CBBFADA1470D7FF8F5340ADD121A6A790B350AF016C561ADD + AFD753032879A8C68C31FD380B7505F01FF59EE6EC015F48C30000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Recycle_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006664944415478DAED980B4C53 + 5718C7FF7D972A30D80441450515A14C65D3E8746EBE36C5C012752F75C6171A + 9DD9165D34F301468D6663BE367566D3E936F035254BB645DDA2308D5333273E + 91A20814852214687994963EEECEB9B497168A6DA555CCFC4273CE3D3DBDF7FB + 7DFF73FFE75E780CC3A075F0783C388BE44D47993D2BDF864AD3045F46EAEE5F + B177D53B4E93689D2FCF138079EB0F30DFA7CCE00036FE78CA6B49AF9E3D81EB + AFD9710CFB5267FA0E405965F05AE2CE62FD3799BE0198959ACEEC4D990995B6 + 59812F334E7B2DE9E51F8CE7FA295F1F45FAFA59BE07F055F80C60C6AA7DCCFE + 757370AFBA79096D3B94E5B5A4974E1FC7F553BF3A84839BE6F90660CFDAD9BE + 77A1C705F0D429F0DE8AEF987D1BE6FBDC85D66DCFC091B485BE01D8BD762ECA + B546F678D7CFD95E4B7AC9BB631F3F80AFE219C03380CE0CB023652ED4754F31 + 804F33B70B9F0074867806F0A4E3FF0DB0ECDB6CAFDDC4FDC283307FD2204844 + 7C8FAAD561802D0BC77805E060B6026A8D0E8B92E23D82E8340099E70B613034 + 790CD16900B2AE2851D368F618C22B004DA68EDF0A39050FA06B34701045AA1A + 4C1F27475458E043211E0940A5D632FFE616E3AF5B95D8BC68BC57000ACA34A8 + D5191C2072F24B5153F90091614190478563504CDF36406E039071E6DC75254E + 9EBD0A75BD11BD227AA0A656C702E89A2CECBC15BB4F3E52F2698B2741AB3391 + F335B481C82FD560506408DBBF7C25979D9F383A0E638745D3BC786E0134E88D + CCF68C53A836F01016168A2E623E3B9E5F5289ED1F4EE0003A124693899C074E + 21F29495183774003BCF623623274F09ADBA02CBE7252050267650C429C0B603 + A7190DD305FE32097B2CE631108904C8BD5B8A9D9F4CF68A02B4D2C72FE4A3BA + BEEDFBB5A15187296386802F107063D504F4EEED3B583167A26B80F91B0E3231 + F2188731AA820DA086C8EFADC8B953818BB94AD4E95BCE595F57C702D0B087D8 + 7BE8380E6C9CEB1AE0D3AD99CCCBF17294D5343A8C17DF533900A4ECF9D36B20 + 34610551856F31B2854A7C2D1E223EC341D0A5F4CB89B3D8F9D9FBAE01D27EF8 + 837963743CF9A51079C5151C4891F23E762D4DF2AA02F6A1274B53595E8DF413 + 97903466283B46F60684068861301A713CFB32562727B80648FFFD22935FA1C7 + B4D763D1FDF9E7D0A8D7A3826C36370BCB913C79884F14D8B0E04DAE7F382B17 + 23E4BD10E827849F548AF22A0D32CFDC429F202192A7BCEA1A20FB523E73E48C + 02BDC243101E128C989E81E8DD3D1862BE99DCD852982C6D7F633075DC99D88A + 0BF9ACC5369919A82A6B905B5285928A3AA82B2B91343C0A9346C6BA06C82B2A + 673667642132AA2F24A4023617EAD655885143FA43260644422151C600A15000 + A1F509C019D8C3C26432B36D934500293109BA8434C44ACFDF28844667016331 + 9131336BB965F7EE63F1B491786940B86B80AADA4666E9964C4447473900D098 + 38B42FDB526969D00BD3AAB9A3081DA297339B2D6C854DE443DB46BB7DC56034 + E3EFEB77C123F79F3D40D19D02A47DFC1659D201AE01E84E4CFF911B2B1FC826 + 2E25D56E0D20104970B3A0147E6201C81F49C42E796B9F3A070DBDD9F1FC7ABB + 849BAC2A0CEEDF13460263B1589C0214E4E5510B65D3730B60D996638C2C3804 + FE5D241C80915427F1957E1C8058C0E314685D713295AD349BA4B9F91A266B6B + 3B6E9EC770E3B4FA66027D913C77B506A8BA5F8C5D2BA7BBF7284101BED87F92 + A9B54810E02FE3002C8606248C8AF39902ED01E875F5F0B33462CD82C9EE03FC + F4DB05E6AA528350E242AD01680545044046AAEF4C01A33561DB5AE7EE01EB9A + B78FD6EBDF198046A3C5C05009164C1DED3E40D63F0AE6D8B9DBE8DD33B45D00 + 4551994F14387FB5000289940350A954AC85268C92BB0F70AB50C56C3D7C0EFD + FB453C54016AA916B4B81015C264A786BBEBDFA600FD5CBAA6005FDA95035016 + 1563C9D4E1881F18E13E805AAB63AD342E6EC063512036B207EB40AC8D5E5140 + 2A6B012850E4E3F38F9210F642A0FB0034A895BE38580E99A87D05E8EECC178A + 9C27E7C1FAB759A83380BC1B37580B75FB85C60640AD34B87B38FCFD244F4C01 + 03790E539528590BA5F33C02B0596948500007307E849CFDCEA6000DA9B57DD4 + F56FB4B6CE00B4B5F5909AEA590BF518805AE9B5FB0D88080D7200B0107B9448 + FD5A1410F21C5EF4BDA9804AAD454C37216BA11E03D8AC34BA4F0FA70042B213 + DB76E3E64AB6DD7D6D0AB85AFFED29405FA21287F5612DD419C07F2221C3ECA0 + 49D63D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006A74944415478DAED98094C14 + 5718C7FFBBEC8D8050E554401111F1426BAC5AEBD978049BA8BDD41A2F345AD3 + 36DA68EA01468DA6A55EAD5AD36AB5ADA8B54A9AB48DB58D4234564D5BD1AA08 + 28028BE85258965D8EBD77A6EF0DECB08B0B2CBA6369EA17927933FB66F2FDBE + FFF7FEF30611CBB268192291089E2275DB49F6C0DA57A1D15BB9F3AD5F9F85AF + 62FDFC49FC387DFF0F38B8EE358F49B4CC57F42400428560008B361F65BF4C9B + 23B8021BF69CC2A1F4B9C201A8AB2D3E4BDC536CFE2C4B188079E947D8836973 + A131342AF071E6399F25BDFAAD89FC38EDD39338B2799EF0004285600073D61D + 620F6F5A80FBBAC616DA753CDB6749AF9C3D811FA77F721CC7B62D1206E0C0C6 + F9C2BBD0D302F8CF29F0C69A2FD8435B160BEE429B7667E244C6526100F66F5C + 880A838D3BDFF75D8ECF925EF1FAF8A70F20543C037806D09901F6A42D84B6EE + 3F0C2068E62E21084067886700FF76FCBF01567D9EE3B345DC2732188BA70C82 + 5C2AEE50B59E1860C7D2713E0138965300ADDE8865D3933B04D16900B22E15C3 + 62B17618A2D300645F53A3C6E4E0204A3435183B300A8931DDD12D48D526C863 + 0168B406F6CFBC52E414E84001ACF6275F0AB9457FC368B2F010F9EA2A181B1A + A0D7E9D03B22184971911894D80B7111416EC9780D40AEB3176FA871E6C27568 + EB6DE8191D859A5A23B62F9BE81380A2877AD41A2D6E1054896189B1DCEF3ABD + 0157AFE571E3943103307E7802CD4BE4154083D9C6EECE3C0B9D4584888830F8 + CBC4DCF57BE55A0EC06865B8F335FBCF3C56F219CBA7C060B49382343C0251F8 + 408F914931744D7073198703B9F96A18B49558BD682A82543237453C02EC3A7A + 8ED5B3FE0850C9B97399888554EA87C2B22AEC7E7B120FF02461B3DBC973E011 + 82B6D3B8E43888FDFCF8F93A32EFDE9DBB58B36072FB008BB71C63139312DDAE + 5115F2EE3DC0DEF7A6F944015AE9D3970BA1AB7FF4FBDA623262C6B821DCD815 + E2E0F1D338BA7561FB00EFEFCC62872527E1618DC9ED7AE97D0D075043E4F755 + E4DEADC4953C35EACCCDCFACAFAB43CA4BC9908A591E82B6D2F73F5FC0DE0FDE + 6C1F20E3AB5FD897C724933B25C82FADE4415A02A41DF8D56720B4E205441531 + 63E394A60034E85A080B94C162B3E174CE55AC4F9DDA3EC0919FAEB0859566CC + 1ADB1FE1CF7585C96C462579E1DC2AAE40EAB4213E55C035CCA435CBAA0CB879 + F70171A368042925502A14A8A8D623EBFC6DC4064B903AE3C5F60172FE28644F + 9C2F40CFC85044868620B1471062C24320133BC8C256C0CE34DE73A3B8925B7C + 3A433DF4461B740D56984C66B24019928C03664B737FCB256228950A6E1C44CC + 412E97C3DF5F8EF020251424C9A1F1A1FC3CEA5056070B4D550DF2CAAA515659 + 076D5515A68F88C39451FDDB07C82FA960B76766A3775C2FC8C9C39D2ED4BD8B + 04A387C4432503A4120924E4ED2F93B4BD0368EB9DE12C040D0B07CD404F9CE8 + 4A5E1959DC56B08C9D2B0475AC87F7CBB17CD6280CED1BD93E4075AD895DB923 + 0B0909716E0074514D18DA9B9B43A5CD2D2C8752E687AEFED2C687F9491AAB28 + 95C2422A08C6BDD55807A92C234683858195F4B491AA4492B6DA1D181CDFA311 + C4E6C06F37EE4144D69F2B40C9DD2264BCFB0A69E9C0F601E89B98FE1FB47F52 + 3F2E7105A9363DD298FC7C2F1E808682D82B95DD594567903CE070349ED376E0 + ABDE3476BD662363E7F5D6008AF2F3A98572E97905B06AC7295615128A00D2A7 + 9E00FCA472DC2A7AC02940FE4842CDF75B9AC6D4FA68981DEECF37BBBC0869F5 + 6950052808C3301E01AACB4BB16FED6CEFB61214E0A3C367D85A468EC000150F + 6023D54919D9870790F98978055CABDF9A02DE54DFE1A06BA0D40DC06CAC8792 + 3161C39269DE037CF3E365F6BA5A8F30E2424E00C6D280A9A30708A6406B007A + B2B1EB1726C7929963BC07C8FEBD803D75F10E627A843D02402B2825002A527D + 4F0AD89A12A60AB4EC7FD7731A261798D600341A0D67A1534727790F70BB58C3 + EEFCF622E2FB44B70A5050F25010052E5D2F829F5CC103A84B4AB162E60824F7 + 8BF61E406B3072563A6040DF3615A0EF0406E2E62A93DCEC2E6A78DBFFAE0A5C + BE5600B1A20B0F505450880FDF998E886E41DE03D0A0563A7070125452E115E8 + DF3B8A7320CE46098042D50C907FF32667A15E7FD03801A8958684472240296F + 5501BABD104BA49E93EB40FF3B2DB4258085ECC334656ACE42E9BC0E0138AD34 + 3438B06D05C876C275CBE04B050CB5F550D8EB390BED3000B5D2BFCA1B101D16 + CC034C7C2189FBCDA9000D45D3F171FBDFD674F404A0D11A90D85DC259688701 + 9C569A101BE506C0107B942B944F4501FA0D92323C96B3504F00FF0037C2DEEC + E92C3D4D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000065E4944415478DAED980B4C53 + 6714C7FF7DD152050495978A082A8F32159D71BE365F8B6270893AB7A933BED0 + E8CCB6E8A2990F306A341BF3B5A9339B4EB7893AA764C9B638B72844E3D46C13 + 9D8AB48240112983022D8FBEDBBBEFBBD0DA626B8BF43ACD3C81DC47BF5ECEEF + FCCFF9DF7BE1310C83F6C1E3F1E02E32B69D640EAC7D1D2A8D095C46D6FE1F71 + 70DD2CB749B4CF97D71980ADDF9CF55BD2EBE74F7AF2005C0567008B361F65BE + CA9CC3B9021BF69CC2A1ACB9DC0128EB8C7E4BDC5D6CFE3C971B807959479883 + 9973A1D2B62AF049CE39BF25BDFAED898EFDCCCF4EE2C8E679DC0370159C01CC + 59778839BC6901EED5B7B6D0AEE3797E4B7AE5EC098EFDAC4F8FE3D8B645DC00 + 1CD8389F7B177A5200CF9C026FAEF99239B46531E72EB469770E4E642FE50660 + FFC685A8D69AD9E37DDFE7FB2DE9156F8C7FF2005CC57380E7004F33C09ECC85 + 50373DC3009C66EE149C003C0DF11CE0BF8EFF37C0AA2FF2FD36C4FDA343B178 + CA208845FC0E55ABD3003B968EF30BC0B17C39D41A1D964D4BED10C45303907B + A91446A309B7CBAA3126311C91DD83D027AA077A84481F09F358002AB596F9AB + B01CF9F27AF80B20EF9A120D7A2B0B51A66A4044B740288A95A86F6C415C5428 + 64F1D11894D40FF151212EC9F80C40CE33176F2871E6C275A89BCDE813D30BF5 + CD4616C064E9FC281494FC039DDEE880A86AD063D62BC92855696034DB50AFD1 + E2EAB542766DFAD8148C1F9E40F3E2F904D0623033BB73CEA2DEC843545404BA + 04F0D9F3772BD5D8BE6CA25F004AAA3468D4195D20A812C3926221E233E00B04 + EC3A9BD58A822225B4EA1AAC5E94861069808B226E01761D3DC768982E08928A + D9E3001E039148E000D0996CECF935FBCF3C56F2D9CBA740ABB3A081B44B7B08 + C57D0D46CAFABA40D0A0AD75F74E31D62C98EC1D60F196634C922CC9E51C5541 + 51518BDDEF4C72007426CC160BB90EDC4214296B312E359E5DE70C71F0F8691C + DDBAD03BC0073B739961A932B62F9DA3FC9E0A7BDF9FEA170568A54F5F56B073 + D53E8C7A1DD25F4E6555B043D056FAE1970BD8FBE15BDE01B2BFFE9579756C2A + F9A61045E5350E103B400391DF5F51505C832B854A34191E5CB3B9A98905A041 + EE1188080E20836DC6E9FCAB589F91E61DE0C8CF5718458D0133892B4476EF06 + BDC1801A72D3B9555A8D8CA9431C0099077EF31BC8F471432027AA480304B09A + F464986310122844A04482EA3A0D72CFDF466CA81019D3C77807C8FF53C19C38 + 2F479FE87044878721A97708FA468621806F25832D81C5E6DE858C96CECF060D + 036951939581AAB601851575A8A86982BAB616D346C463CAA864EF004565D5CC + F69C3CC4C5F7839854C0EE423DBB0A317AC800522540241412658C100A0510B6 + 3D097802F314168B95DD9A6C02488849D0C4356490AF145690D93081B159C839 + 2B3BF055F72AB17CE6280C1D18ED1DA0AE51CFACDC918B84847817003A541386 + C6B16BA8B454914089D823803B45CC2467ABB5B5C216F24BB7E6B67DF63B64C1 + EF37EE8247E6CF19A0ACB804D9EFBD465A3AD83B00BD13D37F2326CB12D9C425 + A4DAEE000A149508243D4B7E48224E89B7ED53E7605BC2EA7A7D83930D9BDA54 + 183CA0F723014A8A8AA885B2E9F904B06AC729461A168EA02E6207008DC92FF6 + 7300D0A0D28B85FC872A6EAF349BA4F5C1DFB057DAF99C2F0AD4559663DFDAD9 + BE3D4A50808F0F9F611A6D62040749DD02084462DC2AB9EF57052888CD667B08 + C0A06B46A04D8F0D4BA6FA0EF0ED4F9799EB4A0D22880BD901CCA43AE923FB3B + 0002043C8702EDFBDD9D02BE54DF6AA5435CEE02A0210F768911622C9931D677 + 80BC3FE4CCA98B77D0B7778403C0666C41DAE814CE14F004A052A9580B4D1B2D + F31DE076A98AD9F9DD450CE81FF31000ADA088004849F5DD29606E4BD8EE36CE + FDEF7C4C43EF04E3094059568E153346203531C67700B556C75A694ACA408F00 + F2B22A4E14B874BD0402B1C401502257E0A377A721AA4788EF0034A895BE3058 + 06A9C8B302F4A66603FF41956DF406E594A08FFDEFACC0E56B72F0255D1D0045 + 376FB216EAF30B8D1D805A695864348202C59C2B901CD78B7520D646098044DA + 0A6024CF61AA0A256BA1745D8700EC561A1E1AEC51017A37E60B45EE93EB40FF + DB2DB43D80B6B119124B336BA11D06A056FA77650B6222421FAD8090E7F29AE9 + 4F05546A2D927A0A590BED3080DD4A13627B390026BE24633FB32B4043D2B67D + DCFE37B76DDD01D07790F4E1B1AC85BA03F8177870BEECFADA5D440000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006A44944415478DAED98796C54 + 5514C6BFD997D29642E9D002055A4A698BAC120288CA62580226801B20612B44 + 246AC080B20B0422C8A6808445502920423571414CA00D0481A82CB2B5A5EB40 + E9D46E3353DAD9E73DEFBDED0C3365DA99C23C96C8C9FC71DF9DF76ECFEF7CE7 + 7EEF4E453CCFA361884422F88AD9EB7EE0772E1C079DC1C6AED77C7302C18A25 + 5387BBC79FECFA15BB3E1AEF338986F98A9A0390BAF608BF7BD16B6E00A162F9 + 8E9FB067F1EBC20308A5C02303102A040398B1EA00FFD5B249822BB074EB51EC + 5D3E5938006DA5356889FB8A555FA60B033065F97E7ECFB2C9D019EB14F82CED + 64D0925EF0F630F778D91747B07FD514E101840AC100262DDECBEF5B390DB7AB + EA5A68F3A18CA0253D6FE250F778F9E7877070ED0C610076AF982ABC0B3D2A80 + A74E813717EEE2F7AE9E29B80BADDC9286C3EB670B03B063C574941AEDEC7AFB + F799414B7AEE1B431E3D8050F10CE019C0930CB075D97454DC7D8A0104CDDC23 + 04017812E219C0E38EFF37C0FC9D9941DBC45D62223073640F2864E26655EBA1 + 0136CE7E3928000733B371A3B014096D94D0B40E43DBD6A1E8101D89C8707593 + 400F04A0AB30F27F5F2F426676158205907EB60056AB0D853A3D7AC56BA0ABAC + 464EAE1655D5B5888B8E404A7C0C7A2475467C74B8573201039079FECC152D8E + 9FBE8C8A1A3B3AC4B643558D3568001997B4D09B9D0CA2446FC6E4A1296C3EBB + 580FAB9D4395C1880B97AEB3B93183BB6348BF449A972820805A8B9DDF927602 + 555611A2A33508918BD97C5E899E01D81C0FBF152EE6FD0B93D9EA05317E603C + 6EEA6A2113F3104B24EC3ECEE9C4C52C2D8C156558306314C2D5722F457C026C + 3E709237F02108552BD8B55CC443269320BFB8021BDE19161480BC1203AA4D56 + 2F08DA4E7DBAC64024917B41D0A0AD957F33170BA78DF00F3073F5413E2925C9 + 6B8EAAE00230D93836B770C7F1074A7EFD9C91309A1CD093A41A42E4DC316040 + 4A470640C31362CFA16338B066BA7F800F37A5F37D7BA730593DA3B8B4125BDE + 1DEE067898B03B1C641DF884C8D2966350CF2E5E10B4957EFCED34B67DFC967F + 80F55FFFCEBF32B83779528AACA2323748D16D1DB67D303A280AD04A1F3B97C3 + 8CA16158CD268C79B1371B93F704346172B2B1ED389679014B5247F907D8FFCB + 793EA7CC82092F25137F6E09B3C582328309D70A4A913ABA17F444FE60C5C5DC + 329CBFAEC55D4BDD9AA14A29342D55E89B148B7095142AA512A59506A49FBA81 + 4E1152A48E7BC13F40E65F39FCE153D9E810138598A856486A1F8E8E6D5B412E + 76928DAD8483AB7BE64A411993BECA580383C98EAA5A1BCC660B690F0E169B13 + 16EBBDEA2AA462A8544A360E27E6A050281012A240DB70159424C9E48E91EC3B + B51CACB56C4E1EBA723DAEDFAAC4ADB2BBA8282FC7D8FEF1183930D93F405661 + 29BF212D0371F19DA1208BBB5CA84D0B2906F54A607F442695424A4E0172A9FF + 934053AEE52A8695417328D5D7E0727E39692D1B78CEC10A41F74BC9ED62CC99 + 3090BA947F80CA6A333F6F633A1213E3BD00E8A61ADA278EDD43A5BD98530C95 + 5C829621B2BAC524D2FABE95C14A2A08CEBBD578A703364E8C5A2B071BE96913 + 5589246D7338D133A17D1D88DD893FAEE44344F69F2740616E1ED6BFFF2A69E9 + 30FF00F44D4CFF0B979CD28D25AE24D5F605405B4A2C95B1F67055D133482E70 + 3AEBE6684BB8AB4EC69ED7763276D45F3706909795452D94A51710C0FC8D4779 + 75AB2884923E6D0CC0A500F99084EE3D6FAD1F53EBA361717AAF6FF1B0615A7D + 1AFE14A82C2EC2F64513033B4A508075FB8EF3D59C0261A16A37008D11CF7776 + 03D05092179C2F059AAA7EC3397F0A584C355071662C9D353A70806F7F3EC75F + D61AA0212EE40B402253E05ADE9DA02A4041388EBB0FC0400E76DD340ACC1A3F + 3870808C3FB3F9A3676EA2637B8D1BC04EAA3366401737805C22722B1048FF07 + 527D27813E4F8EEE9E003A9D8E59E8A841298103DC28D0F19BBE3B83842EB16E + 00CE5A4B16E92E98028D01680B8B30777C7FF4EE161B384085D1C4ACB47BF7AE + F701D00ACA08809A54DF9702F6FA84A9024DB90F0DB3074C630079D939F8F4BD + B1888E0C0F1C8006B5D2E77AA6402DF30D905D58228802672FE741A250BA01B2 + AE5E65161AF00F1A1700B5D2566D6310AA5234AA007D2B7310DFAB32C9CDE1A1 + 46A0FDEFA9C0B94BD9102B5B30002B3987E96E699985D27B9A05E0B2D2A888B0 + A61520C709CFE3C28328901CD78E3910B35102A054D70118AB6BA074D4300B6D + 3600B5D27F8A6B11AB89685401D7DBD86772CDE87F97853604D0551891D446CA + 2CB4D9002E2B4DECD4EEB129407F838CE9D78959A82F80FF000470D2EC2D0A3F + 3F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000067A4944415478DAED98097053 + 5518854F9626694A5B5BA01B6D292DD055D9076519657158065440544086ADA0 + C8E80C28559616818191B22A02B2082A0544A83A2A8833D00E0C02A3B2C8D616 + 0A6D4A694AB7245DB227CF7B6F49484A4A52C8631939D399BC7BF3F2F27FFFB9 + F7E4BD0A388E4353090402B8D23B2B7FE6BEFAE855A8B466F0A9791B0F60F3DC + D75C16D1B45E414B0066ACF891DB9C360A4AB5918D977D7BD86B452F9834D87E + FCE99603D8F2F168EF03A42EDFC76D9DF7BA1D802F656CFA05DBE68FE51F802F + 071E1A005FE20D60EA925DDCD7E9E3797760E1FAFDD89E31813F0045B5C16B85 + BBD2928DD9FC004CCCD8C96D4B9F00A5A6D181955947BC56F4DCB707D98FD3BF + D8879D4B26F20FC0977803183F7F3BB763F164DCA8695C426BF7E478ADE8D9E3 + 06DA8F333EDF83DDCBA7F203B075D124FE53E861013C710EBC99B685DBBE741A + EF29B4785D16F666CEE00760D3A22928D798D878C30FB95E2B7AD61B031E3E00 + 5F7A0AF014E07106589F3E0555754F3000AF953B881780C7414F011EB5FEDF00 + 7336E77A751347FA59D026D00F6D830310D6DA1F51E16DC8587ECFEEDD1780B2 + 4AC3FD73A918B9F935583DE325AF14BF3B371F652A1DFA258543556FC0CD0A15 + 0AAE2A5053DB80D8F02024C745E0B9C40E880B0F742AC6630032CF1D3FAFC0A1 + 63E750556F4254743BD4902FF21640F689EB30188C0C62C2C064FB7C7EA90A06 + 9315356A0D4E9FBDC4E646F44FC1805EF1B42E8147000D7A13B72EEB306A0C02 + 848787C24F2264F385652AAF01E49C5540A5B3D821C6BE98C4E6F34A6AE023E4 + 201489D8D86AB1E04C9E029AAA0ACC9D3A0C81728993232E01D6EE3AC2A9393F + F8CBA56C2C1170F0F111D9018CE607DF0A670A6F41AB3338410CEF1983926A3D + 7BDF11828A2EAD6B57AE226DF210F700D396EEE61293139DE6A80BD74AABB0EA + DD415E01282C53A3566B70822852AAD0BD730404220903A07284D8B6E720762D + 9BE21EE0C335D95C8F6EC9AC2B8E2AAFA861005AA3958DD3361DBAAFE233670E + 85466B868A74B52944C14D359E4F08BF0B822EA59F7E3F862F3F79CB3D40E637 + 7F702FF7EF463E29465E71851DA4B4BC1AEBDE1B6C07781099CC66721DB884C8 + 5354A26F978EEC3CA98F10A10112B2B14D38987B1A0B5287B907D8F9DB29AEA0 + 428F31646385B57E063ABD1E156A2D2E5E2F47EAF0AE5E718076FAE0C902966C + 8E6A2597212A58861E89D108F415C357264379B51AD9472F2326488CD451FDDC + 03E4FE5DC0ED3D9A8FA8881044840423313210EDC38221115AC8C696C16CBDF3 + 19B1B0F17A8E7306B3E70EDD5235405DA74300098CA0003FF61D46AB08460B07 + 65A50A974AAA51525187AACA4A8CEC1D87A17D92DC03E4159573ABB272101BD7 + 0152D2015B0AB56D2546DFAE9D20979094108B89330688C52297109EC86CB6B0 + 575A30155D4EB76A8D282E5713678CE0AC66E88D16B6DCCA6E9462E6983E7493 + BB07A8AED571B35767233E3ECE09806EAA81DD63D939D45ADA2D5F99B4590057 + 4E9848CD168B957598CAB61C75E4D540DED4D435E06251390464FF3902145D2D + 44E607AF90251DE01E80FE12D37F62252527B0C265A4DBAE00CE1494C2572202 + F9230539147EFB98260795DEE27C7DBD4308186FBBD0A55364E36709C49FE7AF + DD0550989747239495E711C09CD5FB39797008FCFDA4CD02500784621F48C542 + 971DB7759B156AB9F33D6672EC38369163F3ED717300D5A5C5D8306F9C67B712 + 1460C58E435CAD558A007FF9237740AFAD87AF558785D3877B0EF0DDAF27B973 + 0A3542490AD900A886F4EC6007A092915F68570EDCABFB4DE7DC39A026377609 + A1524C1FDDDF73809CBFF2B9FDC7AFA07D64A84B00918F14170B6F7AD5010A62 + B55AEF02502A952C4287F54DF61CE0F27525B7E6FBE3E8D431DA0E6022DD19F1 + 42473B804424B03BE0C9FAF7A4FB16027D8A3C7B3802288A8A316B746F744B88 + F61CA04AA365519A92D2D90E603534902EA4F0E640730085F905F8ECFD91086F + 13E83900158DD267BB2443EEE30C403BE84300E4A4FBAE1C30DD2ED831EF6D0E + 388EA9740E30CD01E45DB8C022D4E3071A1B008DD2E0B008F8FB4A5D02E41795 + F1E2C08973851049650CC040EEC394250A16A1F4BC1601D8A2342428A05907E8 + 6D8515C23B5DB6D25B0487023D5CFF8E0E9C3C9B0FA1AC1503D0D4D64366AE67 + 11DA62001AA5FF9636203A34E8DE0E88054E0F39F7E340526C3B96402C460980 + 4CDE08A0ACD220B1AD9845688B016C511A1FD3AE59076CBFC62E8B6BC1FAB745 + 685380E21B4A8CE815C322D415C07F6AC0B7ECD36E9A070000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Recycle_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007024944415478DAED99096C14 + 5518C7FF7B1FA5ADADD0D296A3B47294E2014A8C0A2AA01C0654F0E430722B12 + 4D5041410A02C1080A1E08C8211E1450A16AF0000DD06850890720026DA1D06E + A9DDD2638FB67BCC1EF37CEF2DBBDD6D97EE223B08095F9AF4BDE9CECCF7FBFE + DFFBCF9BAD8C1082962193C9102E9E59B993AC9E350A66BB87CFF336FC8058C5 + 92694303E3F9EB7661CDF3F7874DA265BEB20B0178EA8DAFC8FB2F3E1000902A + E6AEF916EB663F187B80E9CBBE20EBE68C86D1E2E2F3A51FEF8959D2AF3C794F + 60FCEAFA6FB1FEA531B10798FADA76B261EEC30100A962C1DA9DD838EF11E901 + A452E09201481592014C5EBC857C90374E7205E6AFDA814D0BC64B0760A81762 + 9678B858BCA6401A8027166C261BF3C6C368F529F046FEDE98253D7BC290C038 + EFDDEDD8BCF809E901A40AC900C6CDDB443E5C3411674CBE167A6BDBBE98253D + 6BECE0C078C13BDBB0F5B5C9D2006C58F8A4F42E74A900AE38051E9BB39E6C5A + 324572175AF4763E3E5B3E5D1A80B50B27A1DAEAE6F3D59F17C62CE9998F0EBA + F40052C55580AB009733C0AABC49A86BBC820124CD3C282401B81CE22AC0FF1D + 3101A8B3DAC919631DAAEB1B516B6AA0731BEC0E174C0D76082E371C6E115EB7 + 0B4EA179B16B352A28546AE8547268D42A2427E8A1D7A9D13E310E1D9213D0F1 + DA78744E6B4FE7FA366FFE9F008C7556F2C7B17214169B6256C9B4F68918D2B7 + 2B04C1057393807F6ACC283969A045B0212B2D09B9D9E9B821A71BB2D3124392 + 891A801E27FB8F18B0FBA7C3A86B72A373970C98E88D564CBF3B26005B0B8B51 + 657660FCE0DC90E3C5956608544193C58A3F0F1DE3C7460EEC8341FD7BB2BC64 + 5101D89C6EF276FE1E980419D2D25211A796F3E3A555E6980114FC729A579F41 + 8C1E90033DBD87CB4B505461824A4E205728F8E744AF17078B0CB0D6D560F6E4 + 1148D4AB4314090BF0D696BDC442E210AFD7F0B95A46A05229620AB0EF900166 + 8737044226BA70C268E37F0F8660C15AEBD48993983371586480294BB6929CDC + 9C90634C053F80CB73F1CFB383A567E9C2174220D89A386B1102002C8221366E + FB0E5B964E8A0CF0C2CA027273DF5C7ED1E0A8AE31E1CDA787C404A0B4CA8206 + BB1002516634A357266D599DAE15046BA52F77FD84F75E7E3C32C0F28FBE27F7 + 0EEC4BCF54A2A8BC2600E207B0BB443E9FB376F77F4A7EF98CE1B0DA3D30D3B6 + 68095164A8C54D3D3202101A6ABBA9096ABAB0DDF8AEF04FBC3275446480CDDF + 1C2025354E3C74576FEACFD7C0E174A2C662C7B18A7A4C199A1B00B898707B3C + F43A6805C18281E464A62051A7844EABA5CF1B0B0A7E3C8ECC2425A68E1E1019 + A0F0F712F2D98FC5E89C9E82F49464E4744A44D78EC950CBBD74616BE1117DE7 + 1C395DC36F6CB236C16277C36473C1E170D2E444385D5EFA206B7E77D628E5D0 + E9B47C3C6FC29DA8A86DC431433D751F0592DA6990400D232E4E0FB5C2971F73 + 2463AD9917ADA2A61175B5B518756B3686DFDE3B324051593579337F1FB2B2BB + 41432BE077A10EED94B8E3A6EEF4A6B43F954A28E532A89591B71D6DAD19560C + D64E4CD5069B9D2F62637D037DE6B840440F2F0453ABEA4C25663C743BFAF548 + 8F0C50DFE020B35614A067CFEC1000B6A806F7CBE29F61D21E2CA9848E56F09A + 3895EF620AE5B9BE5541A0158418FA9F1CE2F5C025CA611344B8684FDB994A34 + 7197C78B6E1929A8379BF9DC686A848CAEBF6080B293A558FEDCFDB4A5132203 + B02731FB0EA8776E2F9EB896563B1C006B299D56C395F0B795E0695E1F6EDAD2 + 5E6FF39CB505AFFAB9DFFE390B074D5CA027581B6D385A56DD0AA0B4A8885928 + 4F2F2A80E757EC20FAE414C4C769CE0BE05780FED0649ACF17CE8D99F5B1707A + 43AFEF0C3201567D163776EFE43B9742FC7CE4542B80FACA72AC9E3B36BAAD04 + 0358F6E16ED220D2C515AF6F5301B952C51768CBEAB75420B8DA4C81E0B99B8E + FDAA840370DA9BA0131D983FEDBEE8013EF9FA5772D860412A75A1FF5B010BDD + D8F54AD560DA9881D103ECFBAD98ECD87F025D3BA50600580CBBA55B00808596 + 6E31C229D056F55B1E8BA480D168E4163AE28EDCE8018E9F3692959FEE47F7EB + BA840550A834385AFA4F4C156020A228B60230949563E6985BD1B75797E801D8 + 5B17B3D23E7D7A0400DCB43A236FBB2E00C01E3A7E05A2E9FF68AAEFA5D007E8 + CB5330406971095E7F76147B098A1E8005B3D2EB6FCC855EE50310051B95B18F + 640A9C0FA0E8EFBFB98546FD42E30760569ADC311DF13A4D0800ABA08A02B097 + 90700AB8CF25CC1468CB7D58388260C20108741F66AC30700B659FB92000BF95 + A624258405282EABF22940B713C1DB858B55E097C3A55068B41CC0DAD004ADA7 + 895BE80503302BFDABD2862EA949E75580ED8B44C89BAB4C73F378A27BFA06F7 + 7FB002BF1E2A865CDB8E0318EBACC8E9A0E4167AC1007E2BED999921B902BDB3 + 32B803711BA5005ABD0FA0FC8C1123FB67720B0D07F02F57ACF5EC73D5B33300 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006FB4944415478DAED99797013 + 551CC7BF393749696B0BB4B405841628A508A2328C28E3011E388082A2E23108 + 025EA333A8A0284585D111E4F002E4100F2E15AA8E07A0C33132288CCAA5625B + A8B4A1A5293D72B4CDB1B99EEFBD74E3A60D2440167586EF3FDDF736BBF97D7E + DFDFFEDEDB544508415BA9542A44D3E38BBF224BA78F86CDE58712F2788330D7 + 5AB176EB2F58F6F498A841B48D57753E0045ABBE4F58F0F3A6DE1C3E9EBD62AB + 32008FBCF12579EFD9DB157340D2AC65DF62C58C3B120F306DFEE764C5CCB1B0 + D8BD7CFCEA47DB1316F48B1347848F5F5EF92D563E372EF100535EDB4456CDBA + 2B0CA094E62CFF0AAB5F18AF3C80520E5C3000A5A418C0E4B9EBC9FB45F729EE + C0EC773663CD9CFB950330378A090B3C9AE62E2B5606E0C1396BC9EAA2FB6171 + 841C7863DD8E84053DE381E1E1E3A2B73761EDDC079507504A8A01DCF7C21AF2 + C12B0FA1CA1A2AA1251B77262CE8E9136E0C1FCF796B2336BC36591980552F4D + 54BE0B5D2880FF9D03F7CC5C49D6CC7B58F12EF4CA9BEBF0E98269CA002C7F69 + 126A1D3E3E5EFAD9AE8405FDC4DD375C7800A57411E022C07F19E09DA2496868 + FE1F03281AB94C8A00FC17741180A9C1E122559606D43636A3DEDA44C74EB8DC + 5E589B5C10BD3EB87D41047C5E78C47F9E1583A08346A78751A786A0D7213DC5 + 0493518F4EA949E89C9E822E1D93D12DAB131D9BCEF8E5E704606970905F8F54 + E2F0D193386EB1F1B9AC9C6CA49A04088280A424016AB516828680A8B4FCBC46 + AB854E1D6C77EF24A311BD73D2E0F389707B0310452F6C2D224ED6D95076CC4C + 93E0446E561A0AF3B231A0A027F2B2522382891B80CE933DBF99B16DF72134B4 + F8D0AD7B0EAC2D89DB0365754AC5F8EBFA41AF894C5669B50D2275D06A7760FF + C1237C6ED4B0FEB861703E8B4B151780D3E3236FAEDB0EABA84256562692F46A + 3E5F5E63C3A269D7270460C3AE52D4D8DC187B6D014CADF7F706084A4E58A973 + 046A8D86CF0503011C2831C3D1508719934752D7F511C4510196ACDF41EC2409 + C9B44498F42A029D4E935080E29F8EF3F29143B83D1E1CB538F9793904132BAD + BF8E1EC3CC876E890DF0F0BC0DA4A0B020628EB99048809D07CDB0B90311104D + 4E174ED9C53000931C62F5C62D58FFEAA4D800CF2C2E26570E2AE437968B3ECC + 1CC0EB3FFFF5EC40F929DAB9C408882BFB64F3FA97248760A5F4C5D6DD78F7F9 + 7B63032CF8F03B72D3B041F44A2D4A2AEBC220B575562C7C74784200CA6BEC68 + 728911106527ED18909BC13B952481B6DDCC143D05F361CBAEFD7871CAC8D800 + 6BBFD947CAEA3CB89376892E1D2FE1B5596777A1A4DA814923F2E1F286B23473 + F9B6730A7EC163B7C2E1F2C346EBBA2D44056DD34307E4E292241D528D5A180D + 06BADED851FCC39FE891A6C594B1D7C606D8F54B19F9F4875274CBCE4076463A + 0ABAA6E2D22EE9D0AB03F4C136C01F0C5DA355B75F73A473B124FA83FC1F1A4C + 2C21522732E9D938D4912CF5361C39D1881375CD68A8AFC7E82179B87568BFD8 + 002515B564E1BA9DC8CDEB09816640EA429D3B6871CDE5BDF997E8E842E5F688 + D06A356190788337D295987DD6E7F7B70280BBEC70FBF9436C696CA26B8E1724 + E8A79001FEB99AAA6A3C76E7505CD1273B364063939B4C5F548CFCFCBC0800F6 + 50DD78456E28083A2F81C89D680BC1322D972F000402419E61A6AA0617AAEB1D + 708A013EF688224F8C8A3E7F72808A63E558F0D4185AD229B101D84ACC7E42E9 + 57D897076E60DB82280007CAAA69363574356596CB826E3D669D83071588BCBF + 543A4C5E7FE864CF9C0C34DA6CFC9CC5DADC0EA0BCA484B5501E5E5C004F2FDA + 4C4CE91948A6FB9CD301B067C26810B80352E6E51997B21D0EB635EBFED6BFD2 + 98C94D0317E9058E6627FEA8A86D07D0585D89A5B326C4B7956000F33FD8469A + 820252924D17C48181BDBB86AEA5103FFEF6570480C7D50263D08DD9536F8B1F + E0E3AFF79243663B3269173A93036AAD0E82567DC67A6F9B6DE6807CECA3C792 + 2BD100EC7463D73753C0D471C3E207D8F97329D9BCE7282EED9AF9AF3B60B158 + 780B1D794D61FC007F1EB790C59FEC41EF5EDDC3004CB75CD5330CC064A0FD3B + 9A0367CA7EDBB9580E982B2AF1C4B82118D4B77BFC00ECAD8BB5D2FEFDFB4405 + D0E804FC517E32A10E30906030D80EA0BCB40CAF3F399ABD43C40FC0C45AE965 + 030B61D285007C343BA3AEEE1506602F239203F1D47F3CD90F50E87DF4ED4F0E + 50F2FBEFBC85C6FD422301B0569ADE251BC9468103044527ADC3FE8A39100D40 + A42BB4E58499B750F6B9B302905A69465A4A0400CBA08E02B0FD4B34077CAD01 + CB575CC901F998C92D838906E0686A81C1DFC25BE85903B0567AB8DA89EE9969 + 51014A2B6A420E6855115BECF375E0A743E5D008060EC0DE410A3A6B790B3D6B + 00A995E6F7C839AD036C3F1484FA9F2CD3D8FCFEF8565F79FDCB1DD87BB0146A + 43070E505965C1A8C13D780B8D06F037E044E5ECCEC0A9630000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Recycle_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000072F4944415478DAED99097013 + 5518C7FF393769A72DADD8D296AB542CA555C4631C51BC2F1054F00619050147 + 190F545090A2C2E82808E201C8211E5C2A541D1451476164F018514014DB42A1 + 0DB44D296DB2699B63B3C93EDF7B2569425392EA2EEA8CDF74A6EF6D7637DFEF + FB7FEFBF6F5B1D210427864EA743AC98B2683379E391E1707A027C5EB2E22BA8 + 15A32E3F07E5B522F48A8C7D076BB1F8D11B62267162BEBAAE003CB87013593C + 75641840EDF0F915D8EA1D58BD6527963C76A3F6006A2A3077D2B5E1F1AC655B + B401B87FFE27E4CD276ED24C8150CC58B219CBA6DDAC3EC0E4973E22CBA68F82 + 5DF4F3F9F3EF7EAD5AD24FDF737578FCECF2CD58FEE468F50126BEB081AC9871 + 6B1840AB98BD741356CEBC4D7B00AD143865005A85660013E6AC256F958CD15C + 8159AF6FC4AAD963B503B03549AA251E2BE62C29D50660DCECD56465C958D85D + 6D0ACC5FF38D6A494FBBFBAAF0B8E4B50D583D679CF6005A8566006366AE226F + 3F772F8E38DA5AE895F55B554B7AEA5D5786C7B35F5D8F752F4CD00660C533F7 + 68EF42A70AE03FA7C01DD397935573EFD3DC859E5BB4061FCC9BAC0DC0D267C6 + A3DE25F3F9E20FB7A996F494DBAF38F5005AC5FF00FF03FC9B015E2F198FC696 + FF3080A69947842600FF865005A0D1E52147EC8DA86F6AC13147339DBBE1F1FA + E168F640F2CBF0CA0A82B21F3EA9BDD52C820906931956931E82D9848CD42424 + 59CDE89E968CD33352D1E3B414F4CAEE4EE74927FDF2BF04606F74919FF755E3 + D7FDB5386477F263D9B939484B12200802929305E8F546080602A233F2CF0D46 + 234C7AA5C3BD93AD56F4CF4D872C4BF0FA8390243F9CAD126A1B9CA83860A345 + 70A35F763A8AF2737076611EF2B3D3A2924918801E273BF6DAF0C5F63D686C95 + D1AB772EAF9AA237C1626CBF86251E8A4880CE20BA255B30B04FF74E2B5C5EE3 + 84441574882EFCB27B1F3F36626831AEB8A080E5A54B08C0ED93C9A2355FC321 + E9909D9D8564B39E1FAFAC7342ADC8EE9E8651971422E9F8BD59F8830465871D + 149A406F30F0634A30885D6536B81A1B306DC230AABA394A919800AFACFD8688 + 241929B44558987504269381032C987CB92A00EBB695A3CEE98D82F0FA7CD86F + 77F37124040BD65A07F71FC0F47BAF8B0F70DFDC75A4B0A830EA1853414D80D2 + EF0FF1FE6710A387E4D3052EF0248F8A5218804524C4CAF59F63EDF3E3E3033C + BEB0949C37B888DF3C32E862560D60EB6E1B9CDE60144483E881E86DCF271282 + B5D2C75BB6E38DA7EE8C0F30EF9D2FC9354307D32B8D28AB6E08838400FC81BF + FF3CDB5579945AAF1405519CD7A3C37902B5DDAC54335DD8323EDFF60B9E9E38 + 2C3EC0EACF7E24150D3EDC72D940EACFDD786FB2EA94D5B830FEEA0255002AEB + 44347BA428888A5A111715F54137AB8EDAB319695623AC160B7DDE8828FDF60F + F44D3762E2A84BE2036CDB59413EF8B61CBD723291939981C29E69E8D3230366 + 7D902E6C0B024ADB357B0F35F0041CAE56881E190EB71F5EAF0F7240818F7ABC + 4F6A7F73138C7A58AD163E9E79F7A5707902F0F815E894B6D753A237777024FB + 3127F61D6EC2E18616341E3B869117E6E3FA2103E3039455D59397D76C45BFFC + 3C08B4022117CAEC66C590E2BEF48B687F528F8FFCC278114BB55021240EACD0 + FE0FA2A9D9079BBD09F5A2174409F042C88100EA8ED4E0815B86E0DC3373E203 + 34357BC9D405A52828C88F02608BEACA73FBF17398B4BB2A6A60351BE8C3C9D4 + 763383F178DF9A20D10A4289FE3F020906E057F45C4D96ACAD5E84E896E09682 + E173986A2C697E7E0440D5814ACC7BF846DAD2A9F101D89398FD056260D1009E + B8853D516300849430EA7551D58C0C99E6120C2AE1B6E0953FFE9BCD8F8A3EDA + E3AE300403F0FA24E8A8814402549695310BE5E92504F0D8828D242923132974 + 9FD319404801FA037F7B11112A28B33E9E5430FAFEAC5DDA5BABEDC3BCDC4C34 + 399DFC33BBA3A50340534D3516CFB82BB1AD040378E9ED2F48B322203525A953 + 00B6A8AD16A1530522ABDF9902A1F0D2C4257A81ABC58DDFABEAA3007C9E5658 + 152F664D1A9E38C07B9FFE40F6D8446451173A150A0CEADFB3ED5A0AF1DDDE83 + 510022DDD80DC8123069F4D0C401B6FE544E36EED88F3E3DB34EAA80DE68E216 + 9968FF8714889CCB741C52251680DD6EE7163AECE2A2C401FE3864270BDFDF81 + FE67F4FEC715B0555563CAE80B317840EFC401D85B17B3D2E2E233C3002CAE3B + 3F2F0CC0C2429F05B1143859F54F3C164F81CAF20ABCF8D048B6054F1C8005B3 + D2B3061521C9D41180ED1E7FAFAC55550106A2284A0780B2DF7EE3169AF00B4D + 08805969468F1CA458050E20D3EA8CB8E88C3080D9A00B2BD055FFEFACFA410A + FD237D7D0D0148741F663F6CE316CACEE91240C84A33D353398022B9E9422AEE + A8805117B555F8AB0AC4027035B7C21268E516DA650066A5BFD6B8D13B2B3D0A + 8055D04401D85E289602F2F184990227731F16DE089858006C0B5F78BA915B68 + 970142565AD03737264079559D260A7CBFA71206C1C201AA8FD831E282BEDC42 + 6301FC092124F5ECBDB460660000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000073A4944415478DAED997B5054 + 551CC7BFFBDE8501840C041451544428D3749C2C27B5A78596DAD36A4A539B72 + 7A586959A2A9A39396660F2C1F69E52B53AAB1CC6A4AA7C6CAA9B4B49087A8AC + 828B08EC2EB07BEFDDD7E99C0B77B9AB0BBBDABD9633FEFEE1DC73F7DCFBFBFC + BEE77CCFB9838610823343A3D1205C4C5BBE83BCF3F46DB0BB7D502AF61FAEC5 + DE622B9AF8B667363735A1F099DBC3267166BE9A7F0350B0FA5BC540C60EBF0A + A5D50E68035E141FA95607E08965DB49E1F4D18A2A200FDE1380B5A601EB77FE + 8615CF8E511F404905164CB939D89EBD72A73A008FBDF63979EFF93B5453408A + 592B7660E58C3B950798BAF853B272E658D81C1EF17AE187DF2996F4CB0FDF18 + 6CBFB26A0756BD304E7980C98BB692D5B3EE0A02A81573DEDD8E352FDDAD3E80 + 5A0A5C3000B542358049F33792F70B26A8AEC0ECB7B761ED9C07D403B0D60B8A + 251E2EE6AF285207E0A139EBC99A82076073B628F0DA86EF154B7AC6833704DB + 056F6DC5FAF90FA90FA056A80630E1A5B564DDBC4770A2A1650ABDB179976249 + 4FBF7F64B03DE7CDCDD8B468923A00ABE73EACBE0B5D28808B4E817B67AE226B + 173CAABA0BCD5BBE015B964C5507E0DDB91351E3F48AD7859FEC562CE969F78C + B8F0006AC525804B00FF6780B70B26A2AEE9220650357359A80220459DD34D4E + D8EA5053DF84D30D8DF4DA0537E74143A31B82C70BCE1B80DFEB012FB4296536 + 19A0331861316861321A90141F83188B119D13627179523CBA5C16876EA99DE9 + 754C872F3F2F005B9D93FC5E5C8903E5D5386AB38B7DA9E969488831C1643221 + 36D604AD560F938E8068F4E27D9D5E0F833670D6B3632D16F44E4F84D72B80F3 + F821081ED89B0554D7DA5176D84A8BE042CFD444E466A5E1CA9C1EC84A4D0849 + 266A00DA4FF61CB4E2EB1FFF445DB317DD32D2C5AA05B40698F56D6358E252C8 + 01DA83E8146B46BFEE9DDBAD7069951D0255B0C1E1C4BE3F8AC5BEFC61791831 + 389BE5A5890AC0C57BC9F20DDFA141D020353505B146ADD8CF920F4E89F384E8 + 08C0E3272839DE407F4FA0D5E95ADEE9F7637F8915CEBA5ACC98348AAA6E0C51 + 242CC01B1BBF270E128B383A455818350406830E1527ED502A523B2760EC7539 + 88692D0E0B8EE7516E73896D39040B36B58E941FC6CC476E890CF0E8824D2427 + 3727A48FA9C000964E1DAE08C0A6DDA53869E7306E68165DDCA66092A71C4210 + 80851C62CDE6AFB071E1C4C800CF2D2B22570FC8155F200FBA98150328FAF9A8 + B8802508A235524773C0C1B5E523876053E9B39D3FE29D17EF8B0CB0E4836FC8 + 4DC306D0917A9454D606419404D8F5871576CE1F84C81FD213363B2F2E607998 + A8EDA6C41B69BF175FEDDE8797278F8A0CB0FECBBDA4AC96C7F8EBFB517FEE24 + CECD5A879B5AA8031346F485C7F7EFF7B3FD15A7E8DE218440E4662441A333A2 + 934543EDD988048B1E16B399EE370E14FD700899897A4C1E7B5D6480DDBF9591 + 2D3F94A25B5A32D2929390D33501DDBB24C1A8F5D3856D862FD03246AFD5C0A8 + 6F7B5EB4606C3CFBAA637B811406BA0EF43AFA3C5DCBF39823D94EDB517CBC1E + C76B9B5077FA34460FC9C2AD43FB4506283956435EDFB00B3DB37AC0442B20B9 + 5072270B86E66552E7A02FA4F6C8F102F47A9D082225164D58E84E2CFFADD7E7 + 839B7EA53A5D1C2A6BDDA8A73B7B8D830309F8C0D3CD8EDD3F79A20A8F8F1F8A + 817DD22203D4377264FAD2226467678500B0453572604F71C131FB9340585B5E + 7D797282EFECDDD8EB87B80BBB3D01F03C07974743D5F088F3DFC57134795E4C + 5C0E70EC7005963C35864EE9F8C8006C27661FF0FD72FB8A899BD966240310AB + 48C1F69755D16AEAA8EC4CF2B6F1426B9B39070BDE1FFAFC41D9E9A265B235C5 + FE2BC3FBDB72E205414C9A851CA0A2A48459A8985E5400CF2EDD466292921147 + CF39ED01480AB0292455FDCC8AB36AFBFD81E0BC16156AFDCBAE4FD16AD7D43B + E16AA566006C6A6AA803CA01EAAB2A5138EBFEE88E120C60F1BAAF4963C084F8 + B818C515605597C2E36BB9D9233D19F576BB78CFD6D01402C0BB9B610970983D + E5B6E8013EFAE217F2A7D58114EA42ED013057B2984DED2A20AF7E7B0A48C1D1 + C4053AC0D9E4C2DFC76A42001CF460D737C58429E386450FB0EBD752B26D4F39 + BA774DB9200AF4EFDDB5652C85F8E9E09110009BCD265AE8A86B73A3073874D4 + 46967DBC07BD7B6574A880566F8049AF8D7AFE4B0AC8AFBDB42DA9120EC07AAC + 12D3C60DC180BE19D103B0AF2E66A579797DFE73052A4ACBF0EA93A3D909367A + 0016CC4AAFE89F8B18430B008B5B06F50802B030D33D209C021D55FFCCBE480A + 94FCF59768A1517FD04800CC4A93BAA421CE623A0B801D81FFAEA85654010612 + 08044200047A0EB31DB78A16CA7E774E0092952627C68B005E5A9DFC6B7A0501 + D8B94552E05CFDBFBDEAFB29F45EFAFD2D01381B9B61F6358B167ACE00CC4A0F + 54B990919228020404177582BCB315A0073AF951E27C150807C08EF03997EB45 + 0B3D6700C94AB333D343005805D9E9919D81C229E06D4D9829D091FBB0E06430 + E1002A4FD8903F3853B4D07000FF0023FBE9EC7B37A0940000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Recycle_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000072A4944415478DAED99096C54 + 4518C7FF7BEFB6A1A5155BDA4281562CA5F540254494085E80820ADEA8E11030 + 483C4041418A028108C8A15C728807970855A3726814A241251EDCA52D14E842 + CB961E7BD06E77DF1E6F9C99EDDBA3ECD2A5D9D748C297263BC77BAFDFEFFBCF + FC775EAB2084A07928140A848B894B7790E5AF3D844697C8FB5357ED466B62C1 + 844128ADB462E79FA530370897CC0B8E46AC78FDE1B04934CF57D11A004BA3A7 + 5589878B0327ABB1BFC8887A67E0990DF5F56D0350B0F6A798810CEB7F2B4AA8 + 2A4AD18DA25395F200BCBCF83BB262D2D0982A101C4EBA348D55666CD8F53756 + 4E7E447E80582A3067DC83FEF68CD5BBE4017869E1B7E4E3371F954D0129A6AD + DC81D5531E8B3DC0F8F95F93D55387C16475F1FEDCCF7F8E59D2EF8CBCDFDF7E + 6FCD0EAC796B78EC01C6CEDB46D64E7BC20F2057CC5CF51DD64D7F527E00B914 + 683300B942368031B337914F0A46C8AEC08C65DBB17EE673F20118EB04C819B3 + 5716CA03F0C2CC0D645DC17330D97C0A2CDCF84BCC929EF2FC7DFE76C147DBB0 + 61F60BF203C815B2018C98BE9E7C3A6B14CE997D4B68C9963D314B7AD2B3F7FA + DB333FDC82CDF3C6C803B0F6DD91F2BB505B015C750A3C3D750D593FE745D95D + 68D6D28DD8BA60BC3C00ABDE1D8D2A9B9BF7577CB53766494F7C6A40DB03C815 + D700AE01FC9F0196158C466DFD550C206BE64111530053AD8DFC53548EC3272A + 71DA64E1636919E9488CD341A7D3213E5E07A5520D9D8A8028D47C5EA55643A3 + 142F7976BCC180EE194970BB05385C5E08820B96060195D516949E34C27CD18E + ACB424E465A7E3E6DC6EC84E4B0C49266A003A4EF61D3162F76F8750DBE046E7 + CC0C2427C441546AA05707EE61894B110C1009A27DBC1E3DBB748858F9920A0B + 04B708B3D5867F0F16F1B121FDF231A0770ECB4B111580DDE9264B37FE0CB3A0 + 405A5A2AE2B54A3ECE9297A2B51097037079098ACF9AE9F5044A95CAF73BBD5E + 1C2836C2565B8D29630653D5B5218A840558B2E9176225F1684797080BAD8240 + A3514505C100B8D411209213E291999208B5CA97875615C8C7E174E284C9CEDB + C1102CD8D23A75E224A68E1AD832C08B733693DCBCDC9031A642D9790B621569 + 1D1231BC6F368852EB8761495EB00A7E005E982088755B7662D3DCD12D03BCB1 + B890DCDE2B0FE72D8E9071BA99B1687CFF98006CDE5BC29F2F41B0A8315B6175 + 04F20986604BE99B5DBF61F9DBCFB40CB0E0B31FC903FD7AD13BD5282EAFF683 + C412A0F08FD3DC81D8B387F4C9A24B5487B3D536BE818343A7512235414BC7DD + D8B9F75FBC337670CB001B7ED84F4AAB9D78FC9E9EE8785D7BBE36ABAD8DD442 + AD1831A0474C00F61C34C2E2F08640945737F2B9F60605B5672D120D6A18F47A + 54D55951F8EB71744D5263ECB0BB5B06D8FB7729D9FA6B093AA7A7203D2519B9 + 9D12D1A56332B44A2FDDD87A784402B5B26913AA151193747902CF66D705F7CB + CE5B21787D7D1DDD034A951289F186C0BD74CE546341D1D93AAA4C3D6A6B6A30 + B44F3606F5EDD93240F1992AF2C1C63DC8CAEE061DAD80E44229ED0DE89BDF15 + 7174C96AA8B3C435D96BB4110CC08A2085DBE341237DC9ABB234F04D5C67B3A3 + CAEA00113D70D22F3B367FFE5C05263CDE17B7DD98DE3240DD450799B4A81039 + 39D921005AAD1A036EEECC371D4BFE4069050C5A15F5769FB52A544D56AAD1F8 + AA2B86FE159B783D70894A64657440BDC3C3AB6CB5BBE1743AF8DA777A4454D6 + D8F8B52CF160803327CBB0E0D547E8924E6819807D13B3F7DF9E793D78E27AE6 + E3F493B9C2BDB765F901829560D595AA2A78021BD1EDF57D7ABDA27F697005E8 + 276BB3E4ED2E053D5AB83884DDE1A0D5775E0250565CCC2C94A71715C0E445DB + 495C720ADAD1734E7300166C73490AD01F9A4CE07EA1A9CDAC8F57D31BFAFC3B + 7232B8E7335360FF95717A033939058127CD150B02A8AB28C78A69CF46779460 + 00F33FDD4D2E8A3A24B48B8B082029C03674B8EA4B0A84ABBED4BF40AB5D5567 + 83BD899A01389C0214D4C225006763030CA20333C63D143DC017DFFF490E19AD + 48A52E146B059CAE00A4CBE39BEC9691823A8B85CF99CCF52100567AB0EB91AA + C3B8E1FDA207D8F35709D9BEEF04BA744A8D08C06CD5A0D7455420B8FA911490 + C2411317E80DB67A3B8E9DA90A0130994CDC4207DF95173DC0F1D326B2F8CB7D + E87E43669B28704BF74EBE7B29C4EF474E850018CF9463E2F03EE8D523337A80 + 5A5B23B7D2FCFC1B2FAB8052AD814EAD8C7AFD4B0A04F7DDB42DA9120EA0ACA4 + 14EFBF32941D00A30760C1ACF4A65BF210A751FB8FD303EFE8D6E60A141F3DCA + 2D34EA171A0980596972C774B433E8C202B0D0D3EF80700A5CAEFACDC72EA780 + 40CF61A6B3466EA16CFE8A00242B4D494AB80440454F8FC7CA2A7D0A343BE7B4 + 560106228A620880ED6203F49E066EA1570CC0ACF470851D99A9491CC04DAB33 + E4CE1BFC00EC6D4A52E04AFD3F52F5BD147A7F51B91F801DE173AF57730BBD62 + 00C94A73BA66700051B0532BCB974D817000E5E74C18D2BB2BB7D07000FF016D + C6D7ECC29175B80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000070D4944415478DAED99797013 + 551CC7BF399AA4EDB4858A2DE528975ADA2208828C282378010A2A7871C828A7 + 038C2228284741606014E5F028C8211E1450A1EAA01C2AD08141411144A0B485 + 421B6849E991A36D92CDF97C6FCB6E3690B429643B32C3EF9FBC7DDBDDFC3EBF + EFEF7DF7A5AB2084E0EA502814081453337F232B273F0A9BD38B1B0D97DB4DEF + 0398AAADA8B63960B33B60B27BE0703851643061EEA83E0193B83A5F456300A6 + ACDC413E9DFA84083073F5EEEB4A7EE9A48128283563E7A102186B1DD79C77D8 + 6DC87CE349F9004C36F70DD6DF17C7CE96E370AE1E359CEF9EB535354D0390B1 + EED7B0810CED770FF2A92A4AAF0BB9E74AE50198BC7C3BC99C3624AC0A4883A3 + ADA92F3362E3AE235835FD29F901C2A9C0A2098F8BE3B96B76C903F0EA073F92 + CFDE7A5A36058498B56A07D6CC7826FC0013DFFF9EAC99391406B3933F5EFCD5 + 9EB0253DE7E547C5F1BB6B7760EDDBC3C20F307EC956B26ED67322805C316FF5 + 76AC9FFDBCFC007229D0640072856C0063176E229F678C945D81B99F6CC38679 + A3E403D0573920672C5C952D0FC0E8791BC9FA8C513058EA14F8206B6FD8929E + F1D223E238E3E3ADD8B870B4FC0072856C0023676F205F2C7805178D752DB462 + CBBEB0253D6DC4C3E278DE475BB079C9587900D6CD7F597E176A2A809B4E8117 + 67AE251B168D93DD8516ACCCC2B74B27CA03B07AFE1894595CFC71E67739614B + 7ACA0BFD9B1E40AEB805700BE0FF0CF049C61854D6DC6400864A0BF93BB71859 + 3BFE943571690C1F781FBAA67640A7A438BF644206A0F3E4E0093D761F388ECA + 5A17DA26B7467C6C14BCCA08E8D4BE6B944AB538D6AA0888C277AC52AB11A1F4 + FF2F5EB3681DD2DAB5089A787E89090E971746B30547FFC9E5E706F7ED82FEBD + 52585E8A9000AC9C8BACCCDA03A34381A4A444446B94FC3C4B5E88EB85A80FC0 + E921C8BB60A47F4FA054A9EABED3E3C1B13C3D2C95E598317610E2A2347E8A04 + 0458B1692F319368C44469F9638D8220224215120403E0A50E02111F1B8DE484 + 38A85575796854BE7CEC1C8733062B3F9642B030565B71EECC59CC7C6540C300 + E3166D26A9E9A97E73820AC120EA53410A210048438061495E363B4400FEBE12 + 88F55B7662D3E2310D03BCB93C9BDCDB3D1D974C76BF79BA9811AE486A1187C1 + BD3B5265B5E25C85D10CB3DD978F1482B5D20FBB0EE0D37786370CB0F4CB5FC8 + 637DBBD32BD5C82B2E174118C0B289FDC202B039279FBF2F83606D44941A5C28 + B7F00B581ADA082512633574DE859D39473167FCA0860136FE7C9814947378F6 + A134B4BCAD19DF9BE5661BCE1BCC18D9BF735800B2FF38CFBF0B904208FDDF2C + 5201AD5683B8483522753A94559991BDFF34DA375763FCD0071B06C8395240BE + DD9F8FB6AD12D02A211EA96DE2D0AE653C344A0F5DD83AB8BD046AA5021AB522 + B46CAF84D3EDFBAE5C7D055F6D96280361F7F7FB5BEA48860A13722F5451656A + 5059518121BD3B61609FB48601F28ACAC88759FBD0B1530768690504174A888F + 419FB43688D2D0FEA48B324AB2B01B0BC08AC0C2E1F6C2EB76C1CC29506DB5F1 + 8BB8CA624599D90EE27583737AF8B739972E9660D2B37DD0E3AE560D035455DB + C9B465D94849E9E407A0D1A8D1BF6B5BA8E8C263923390484D84A844A0048524 + A5E1F2D0EFA00F478EB3C3EA54A0D6C6F1F3A5461B38479D0BB1C4A50045670B + B1F4F5A7684BC7360CC09EC4ECE7635A7A673E711DB34009005B70ACFAC70A4A + 28009D5731C97DD73BAE8C9973F0C978FCEFDF33A535FF9A8A01701E35FFC9DA + 89A3A0A515968000857979CC42F9F4420298BE6C1B898A4F404CB4560460B6F6 + 708F8E2280B49558F5A56D21AD360B8FC72BF636AF10FD6463410597CBC94358 + ED76DA3EDC35005525C5C89C3522B4AD040378FF8BDDA4DAAB456C4CD435002C + 983BDC8802ECA1C55C8DBD95E13CBEA2B216E2AEDC4C00E06CB588F4DA3177C2 + 13A1037CFDD321725C6F462275A160008202CC9102555F502050F585E3CBB4DA + 65551658AF5033003BE780823E83040033DDD8754ED462C2B0BEA103ECFB2B9F + 6C3B7806EDDA24865D014EF29ED9E9AE3BD9A17502AA4C26FE9CC158E3076030 + 18780B1DF4407AE800A7CF1BC8F26F0EE2CE3B928302B0E742A44E1B540169F5 + 832920849D26EEA017586AAC385554E607A02F2AC69461BDD1BD7372E8009516 + 1B6FA55DBADCD5240A74BBB34DDDB514E2F713E7FC000AF30BF0DE6B43D8FE29 + 740016CC4AEFEE968EA888E00A28D511D0AA9521F7BFA080F4D845C7822A8100 + F24E9EE42D34E41F340200B3D2F896AD1013A9157F0F0CE8D9A1491570D07D98 + E1829EB75076BE5100829526348F0D08C042479F018114A8AFFA57CFD5A780A5 + BA163A772D6FA18D066056FA6F8915C989CDAF0160DB895385A5750AD0AD8474 + 1B71BD0A3010AFD7EB07C0B6F0A9B7AB790B6D348060A529ED5BF3002E5A9DC1 + F7DF2102B0FD90A04063FD3F58F53D14FA706EB108507CD180C1BDDAF3161A08 + E03F8C4DCCEC9EB25C9D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007154944415478DAED99797013 + 551CC7BFB993D61E546C2947B984D21651106506659443050414F04090E14681 + F10005456955181841443C0A72082A053CA83A28878A303038A0282A50DA42B1 + 2DB4A4B4CDD536C9A6399EEF6DBBDBA44D48D0DD8ECEF8FD276FDF1EF97EF6FB + DBDF6EB20A42089A4BA15020989E5B7F80AC7E72281CF53E7E79D1FAFDF83B5A + 3567386C0E0F2C3576D4385C70385DB038BD70B9EA51565D8379A3FBE23A8336 + A889E67E15D702F04CF6F764EDDC6122C03F91DBE3A1C741508862A3054B260D + 941E60DEDA3DE4BD67464A924061B9157B8F15C25CE76AB1DEE57420FBD9FBE5 + 03B0D0F8A5D2C9F395389E578A5AAEE99875B5B5AD0390B9E93BC940C6DE7D0B + 0A682A4A9F1B7917CAE50198BB6637C99E3F5AD204FCC5D1D22CAD3063DBBE13 + 58B7608CFC005226B06CD6BDE278C9867DF2003CF1C657E4FDE71F902D01418B + D7EDC186850F4A0F307BE51764C3A2B1305AEBF9E5E51F1D90CCF4CB538689E3 + 5737EEC1C617C6490F3073C5E764D3E2874400B994B57E3736BFF4B0FC007225 + D06A0072493680E94BB7930F3227CA9EC0927777614BD624F9004A4D2EC8A9A5 + EB72E501989CB58D6CCE9C04A3AD218137727E90CCF4C2C7878AE3CC773EC7B6 + A593E507904BB2014C7C690BD9FADA545C323794D05B3B0F4A667AFE6343C471 + D6DB3BB163C574790036BD3245FE2ED45A00FFB9041E5DB4916C593643F62EF4 + DADA1C7CBA6AB63C00EB5F99860A9B9B5FCEFEEC9064A6E73D32B8F501E4D2FF + 00FF03FCDB008CD536F24B5E0972F6FC847733A7A1BA567E8009C36F479FB4AE + E89E1C17602662003A4F8E9E2AC5FE23BFA3BACE8D4E291D70FA8F33B21AF7D7 + 98E183F0EB6F79FC78D4A0DE187C5B2AF3A58808C0CEB9C9DA9C0330BB14484E + 4E42B456C9CFFB941A711BBDBA693FA5522D8E752A02A2685A56A9D5D0289BFE + C98B8FD623BD73DBA0A6EBBD04F917CD747B02A54AD5F09D5E2F4EE697C2565D + 8985D347202E2AF02FC7A0006F6DFF8158493462A274FCB25641A0D1A8228260 + 004CA1201262A391921807B5AAC18756D5E4C7C9713867B4F3637F0826738D1D + 17CE9DC7A2A9F7850798B16C0749CB480B981352080571B514FC2104007F0930 + CCE415AB4B04E08FEB07B179E75E6C5F3E2D3CC0736B72C9AD7D3370D9E2941C + 2229DE80CE6D0DE21C516AC57195D90AABB3C98F3F042BA52FF71DC17B2F4E08 + 0FB0EAC36FC93D83FAD23DD5C82FA91441683782544A6E1B875103BA8925C440 + 2E56DAE07207FEF3ADD3289114ABA5F36EEC3DF42B5E9E39223CC0B66F8E93C2 + 4A0EE3EF4A47BBEBE3F9DAACB43AF0A7D18A89837B4902B0E350017F6246F6EF + 02BDB6A14C84FA8F3728A0D369116750C3A0D7A3C26445EEE1B3E8D2468D9963 + EF0C0F70E84421F9F470013AB54F44FBC404A4758C43E77609D02ABDF4C2D68B + DB69D50AFC1DD57B084E165DE1C74E8F02DD92E3032E667E1BDA918C5516E45D + 34D1646A515D5585D103BA63F8C0F4F000F9C5156475CE4174EBDE153A7A0684 + 2E9498108381E91D1145CB5643EB39CAEF9A88D4B8208F8FC0E5692817AEF17D + 4385A58EBF884D363B2AAC4E109F87AEF3F22F432E5F2AC39CF103D1AF67FBF0 + 00A61A2799FF662E5253BB070068B56A0CEED3898F95898118B41A3189E60605 + 094605B9BDF43BE8CD91E39CB0DADD7CDD33D39C5701CEE56A84F20600149F2F + C2AAA7C7D0928E0D0FC0EEC4ECD7577A462FDEB89EB5403F009546C747EE9F84 + 605E30EE6F9A19F67A7D626930B196C979D5D4BC978270FC5CB9D91112A0283F + 9FB550DE5E44000BDEDC45A212121113AD6B01C03A06337DB2B08C2640E755CC + 58D3FEAEC6316B7DBC196FE0F1FBA776E05F53B1041804FB64297014BABCCA16 + 14C0545682ECC58F45F628C100566EDD4F6A7C3AC4C6448900AC2F0FE9D74D04 + 689E40A8B3CFD43C010FFD646366DE5EAF80DB5DCF43D89D4E5AFF5C0000E7A8 + 83C1E7C49259232307F8F8EB63E4F7522B9268176A0EC0C4AE837F92002B21D6 + 96D905CC6A5F102B21AEF1600280D56A43AF241D668D1B1439C0C19F0BC8AEA3 + E7D0B9635248002101B55211F4EC87AA7F4FE3275BBE42CF7685C9067B233503 + 70722E28E84D5400301A8D7C0B1D714746E40067FF3492359F1C458F1B53244F + 80F37BCF5CEF6958D9B543224C160BBFCE68AE0D00282D2EC1BC7103D0B7574A + E400D53607DF4A7BF7EE191280DDD80C7A5DC804FCCF7EA8040439A971D6916C + B5769C29AE0800282A28C4EB4F8D668F1F910330B1567AD3CD1988D2C89FC0CD + 3D3A36EC4B217E3C75210020FFF469BE8546FC83460060AD34A15D7BC4187421 + 1350AA35D0A99511D7BF9080FFB29B8E85549A03B8E83DC278B1946FA16CFD35 + 0108AD34B14DACF883E6BEFE5D5B2640EFC4FE77612913B0D5D441EFA9E35BE8 + 3503B056FA47991D29496D820230E9E93D205802573BFBCDE7AE96007B844FBB + 41CDB7D06B06105A696A970E2D00D8E3C499A272491360203E9F2F00A0E49211 + A36EEBC2B7D060007F018371D2EC488C485E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007344944415478DAED99797013 + 551CC7BF493657B12D546CA14069412DA50882A83328A378020A0A5E2032DC2A + 308A88A02845858191AA8862410EF1A0880AA88372A808C3E180A0084229E56A + 0B2D296DDA246D936CAE3EF7BDB0DB4D9A9800D9CEE8F8FB67DF7B9BDDF97EDE + F7F77E6FB3AB22842038542A1542C5B4A5DBC83BCFDE0DB797E04AE3D4792B6A + 1D2E389C2E589C3EB85C6E9CB738317160375C65D4A9C25D17AC577539000E77 + 03EBCF58BAF5B2C4E74EEC0F9BC30B4BADBD094499B9169307F50C0B71450053 + F27E268B26DD23015C4978BC5EE13E0809516CB260D6883EB10798BC6813F970 + CAC0983850546EC5E6BD45A8A9773539EF723A90F7C203CA015804FB6315074F + 56625F4129EAF8C67BD6D7D5350F40CE8A9F620632E4CE1B715C7045DDE041C1 + E9726500262DDC48F2A60E8AA903F2E085D42CADA8C1EA2D07B0E4C5C1CA03C4 + D281B913EE93DAB3966D5106E099B7BF231FBDF490620E883173C9262C9BFE70 + EC019E5EF00D593663084C5637EBCFFB6C5BCC44BF36EA1EA9FDC6F24D58FEF2 + D0D8038C9FBF8EAC98F9A804A054CC5EBA112B5F7D4C7900A51C683600A54231 + 80B173D6908F739E54DC81598BD763D5EC11CA019456BBA064CC59B241198091 + B3579395392360B2F91D783BFF9798899EFED4DD523BE78375583D67A4F2004A + 8562004FBEBA8A7CF2E6689CABF1A7D07B6BB7C74CF4D4E17749EDD9EFAFC517 + F3C72A03B0E2F551CA57A1E602F8D739F0C48CE564D5DC718A57A13717E5E3AB + DCA7950158FAFA1854D83CAC9FF7F58E98899EFC78BFE607502AFE07F8CF0198 + CC36F27B4109F237FD86E60218D6FF1674CFCA40E7B6890162A20610C6C99EBF + 4AB175D72198EB3DE890D60E470E1FC5E29C3130D7290F30B87F5FFCF16701EB + 3FD8B71BFADD9C4975A9A202B0F31EB2287F1B6A5C2AB46D9B82163A351BDFB9 + 7BBFA2C2E5F1CCC8C1ECD8E0F3E16061296CE64A4C1F3B008971816FEC4202BC + B7E61762252D101FA7677D9D8A40ABD5F86FA8D64ABF33708DD7AAD51C3BEA35 + FE31A2E2A4731A8E8356ED7F199694D00269C989E0347E1D3A4DA31E27CFE384 + C9CEDA5A35815AA391CED5D4DA71FAC449CC187D7F64807173BF2059D9590163 + A20BE120440011420E20871001E421C2509117AC2E0980DD5706B172ED66AC99 + 372632C0B4851BC84D3DB3D9DBE25843A4B434A2636BA33446D43AA95D556385 + D5D9A8470E4153E9DB2DBBF0E12BC32203E47EFA23B9B76F4FE14A0E85259501 + 2022841C205A080A90DEDA8096F1C680D41141CE56DAE0F204BE38D66BD54849 + D009E31E6CDEF1075E1B3F2032C0EA1FF691A24A1E8FDCD1156DAE6EC972B3D2 + EAC0199395BD390EF542F652A36DEB440CEC9D2ECCAE5A8211F3BFA55105BD5E + 87442307A3C1808A6A2B36EC3C86F4561CC60FB93D32C08E0345E4AB9DC7D121 + 3519A9C949C86A9F888E6D92A053FB84856D907EA7E354B89CA01F48761798C0 + 0B13D3252395AD816047DC3E025395050567AB0567EA60AEAAC2A05B3BA37F9F + AE91010A8B2BC83BF9DBD1A97306F4C20C88552839291E7DBAB6479C90B65A21 + 1DE2646B225AE162781B085CDE06A8E14F19FAADA0C252CF1671B5CD8E0AAB13 + A4C10BDEED63DF12CE9F2BC3C447FAA0D7F5A99101AA6B9D64EABB1B9099D939 + 0040A7E3D0AF7B07662B7583E33430EAB4014E8822A94031A85079787C40B9B9 + 1676B70A1E8F5B10ED14729D63A9C9BBFCE94985CB018A4F9E42EEF38385944E + 880C407762FAE7A56B761726DC404B6010000DEA8408102C5C2E9A0AF6F91AFB + 343D68C91401E8C22DAF71F8858701385558484B28931715C08BEFAE277149C9 + 886FA16F02A0D1EA59CECA53295A002A9E0605E07D9C20DEC7D6020D0A110EA0 + BAAC0479338747F7284101167CB295D436E891101FD70480963C2AFA605199E0 + 8030AEA1C21AAF775D6CD3DACDC4F802EFDF3BB31DFB4CC5F34E06418FD4055E + 802EAFB23501E01DF5303638316BC2C0E8013EFF7E2F39546A458A50854400BA + B1DCD5AB930410EC40B8D9A711EC805738D236152F4F25BBD3292C603E00C06A + B5A14B8A1E1386F68D1E60FBFEE364FD9E13E8D83EA509000DBA0EAEC4019A42 + 745FA15F65785F635AD314E22FDE4C0430994CAC840EB82D3B7A8063674C64E1 + 977B70DDB5696101440738B52AE4EC87CB7FEFC523ED5F1066BBA2DA06FB456A + 0AE0E45D50093BBA08505A5C82C9436F45CF2E69D103986D0E564ABB75BB3EE6 + 0EF0B2EFCC6EAFFF6446BB64545B2CEC9CA9A62E00E0D4F122BCF5DC20BA7B47 + 0F408396D21B7A64234E1B1A80EE0546833EAC03A1CA67B003623805E1B422D9 + EAEC385A5C11005078E4082BA151FFA1110168294D6A938A78A35E71077A5CD7 + DE7FAD00F1EB5FA725009750624D674B5909A5E72F09402CA5C9AD12C23AA0E6 + B4C213AA467A349047A8FC171D90F73D425B742518C0565B0F83B79E95D04B06 + A0A5F470991D6929ADA47F64F7F7CE68EA806C278EB50326B30D59D770AC845E + 3280584A33D3DB8504A06110F6003DE77FA88BB4FB8AB31F3CF64F0E949C33E1 + C19BD359090D05F037D551EAECB1D8CB600000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_21_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000075C4944415478DAED99795454 + 551CC7BFB33310A06480A8286121628BADE7589E722997D2D276CD53AE659E16 + 2D2D4BACF4E8C9DD323497B4123353AB53B954A6C7B2D36E8B11A218A0E020CC + 306F0666E6CD7ABBF7C27BCC0C838C3A8F733AA71F7FBCBBF01EBFCFFDFEDEF7 + 3EDE531142101E2A950A9162C6DA0364D9945BE1F1115C681C2E3D03A7CB0DAB + CB0FB7DB03B3E0C4C46157E022A35E75B6F3C2F3559D0BC0B36BF691A58F0F8A + 0940E9690176A73B04E2B4D585A9C3FB9C152226004E4F80F767ADD97B5EC92F + 9E3A1436A70F56BBA30544A5D98E6923FAB60A7141004F177C45563E315806B8 + 90F0FA7CF43A88085166B262CED87EB10798B6721779F3E9E13151A0A44AC0EE + EF4B50D7E06E31EF763951F0CC1DCA0158A9FCB18AC3C76BF0435105EAC5E66B + 36D4D7B70F40FEFA2F630632EAD6AB7194AAA20E785174A24A198027967F4A0A + A68F88A902C121D2D2ACA8AEC3E63D3F63F58C91CA03C45281F9936F97DB73D6 + EE5106E0B1259F90B79EBB4B3105A498BD7A17D6CEBC3BF60053167D44D6CE1A + 0593E0E1FD05EFEE8B59D22F3D32586EBFB26E17D63D3F3AF60093166E27EB67 + DF2B03281573D77C8A0D2FDEA73C80520AB41B8052A118C084795BC8DBF96314 + 5760CEAA1DD83877AC7200151637948C79AB772A03306EEE66B2217F2C4CB646 + 0596147E1DB3A4673E3C486EE7BFB11D9BE78D531E40A9500C60CC8B1BC9A657 + 1FC5A9BAC6125AB1757FCC929EFED040B93DF7F5AD787FE1046500D6BFFC88F2 + 2ED45E00FF39051E98B58E6C9C3F5171177A756521B62D9EA20CC09A97C7A3DA + E6E5FD820F0FC42CE969F70F687F00A5E27F80700093D9467E292A47E1AE1FD1 + 5E000F0EBD0157E66621BB737248325103D07172E8CF0AECFDE677981BBCE896 + D90547FEF8ABDD00460EED8F5F7F2BE2FD3BFBF7C180EB73585EAAA8001CA297 + AC2CDC873AB70A9D3BA72141AFE6E307BFFD09ABF2C7C35CAF3CC063E346F276 + C0EFC7E1E20AD8CC359839611892E3435F78450458B1E56B22900424C61B785F + AF22D0E9341CA0BD62F2983BA0D668E47E9DDD8113C78E63D6A343DA069838FF + 7D929B971B3226A9C05745AD93DB71DAC6F3D56AAD3C66D010109536E47C8D56 + 0B9D3A8094A40464A62687CC69352A39C93342E31EA353375D370862C3D6DDD8 + B2607CDB00CF2EDF49AEED9BC75FB6C61A22AD8311DD3B19E531A2D6CBEDDA3A + 0182AB399F6008564A1FEFF9066FBEF060DB008BDFF982DCD6BF2F3D538BE2F2 + 9A1010092218205A0806D0A3531C3A241AA1D7843A1D0339596383DB1BFADED5 + A053232D494FC7BDD87DE057BC346958DB009B3FFF8194D488B8E796DE48BFB8 + 035CA2881AC189AA3A278406173C1EDF794364A75FC401824382396672F06307 + A30A06831EC9462D8C7171A8B608D879F06FF4E8A8C5A45137B70D70E0E712B2 + EDE05174CB4845466A0A72BB26A37B7A0AF46A3F9FF70434B0395C703A1C101C + 5EF9ADB2CDE1A675ECE4BF237AD8DB67BF7CCD78BD0671FA4610034D2A2B3D19 + 57F7CC90EB3F5C118F9FC0546B45D1490B55A61EE6DA5A8CB8311B43FBF56E1B + A0B8AC9A2C2DDC8F4BB3B3F81F935C28352511FD7A77A5C90046BD0E7AED593F + A6440CE9E38883C2A911A03F6A7E64AFDAABAD0DFC26B6D81CA8165C20011F5D + 083F7F157FFA5425A6DED30FD75C9ED13680C5EE22D397ED444E4E7608809EAE + E0802BBB7159991A5AADA6058894A02F107A5DB7AFB9B6BD54982AB39D42A870 + C6624582D10891CE5BEC2244B7BB49417F0840D9F1522C7E6A242DE9A4B601D8 + 4ECC9EFD7BE7F5E289C7310B8C0280252F251E9C306BFA82FAAC3C4E999DF07A + 3DFCA61568E9318B650ED41A40697131B3509E5E54003396ED20F129A9484C30 + 440468ACEBE6520A5FF9F015F7FB430198E73305240866103CF156002C95E528 + 98FD50748F120C60D1A6BDC41E30202931BE05804667E0371D03D0D1B9786AAD + D102B0E4593000D1AFA5C9FB21529763C120220188CE0618032ECC993C3C7A80 + F73EFB9EFC5E21208DBA503800F36C96F4E1924AAA001DD7B0C482EABDA9CD36 + 1F9E8C3FF4FAD7E574E19FA944D1C521D891A9C0EE83AA5A5B0B0041B0A1579A + 019347F78F1E60FF4F47C98E43C7D0BD6B9A0CC076C681D75C2A03842BD0DAEA + B30857C0478FACCD920F2E2587CB451D480C0130994CDC4287DD94173DC0DFFF + 98C8F20F0EE1B29E992D0058B0FBE042146025F48F49E05F65447FF37DC94A48 + 6CBA98045051568E69A36F44DF5E99D103986D4E6EA57DFA5CDE2A80A48056AD + 8AB8FAADD5BFAFE9C8FA67E86A575B6C703451330097E8868AEEE61240E9D112 + BCF6E40874EE941C3D000B66A5575C9587785D6C151083BE337B7C8D93595D52 + 61B15AF99CA9AE3E04A0F8C8116EA151FF432301302B4D49CF40A2D1101180ED + 05C63843AB0A44B2CF7005A470D1C49923D9EA1DF8ABAC5A06705387329DACE0 + 16CACBEA5C00242B4DED9874760582F681F355E0AACBBA369E4B21BEFBF3840C + 60B33720CED7C02DF49C019895FE51E940665AC75615506B75F4115BC31588A6 + FE250582FB5EDA9654090730996DC8BD44CB2DF49C01242BCDE9D18503B01872 + 5D56BB2A507ECA843BAFEFC12D3412C0BFC11616FBEC5620590000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Recycle_22_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000076C4944415478DAD599797053 + 451CC7BFB993D61E546C2937542DA578E03983328A27A0A0E00D32CAA9C87880 + 82A21415064751108F821CE241110F5047E5501106C5F1C6036B2914DB4021A1 + 4D9B97A6495ECE7577CB7B4DD29404FA5E67FCFD93DDCDBCCDF7B3DFDFFEF6E5 + 3D0D2104F1A1D168902866ADDC49964CBB124AC48EDFAD70FAC2F0FB0370085E + DC3F6A304C06AD26D975F17A35A7021008117434F6541D83D7E78F81983CE21C + 9C66319E10A243008FAED84E5EBAFF6A4500AA8E0A68F2FA63208E3A7D983E72 + D009211401F00622BC3F67C5B65312BF78FA70B8BC21389B3C6D206A1D4D9841 + D3A93D880E013C5CFA3559F6C03532404722180AD1799010A2DAE6C4BCF14394 + 0798B16C3379FDE1918A38507944C0961F2AD1D8EC6FF3BDDFE745E92337A807 + E0A4F62B157B0ED4E1C7722BDC62EB9CCD6E77E70094ACFE4A319031579E8F7D + D4156D2488F28347D4017860E967A474E628451D880E91A6A6D5DE88755B7FC1 + F259A3D50750D2818553AF93DBF3566E5507E0BE173F256F3C76936A0E483177 + F966AC9C7DB3F200D35EF898AC9C33063621C0FB8BDED9AE98E8A7EEB9466E3F + B36A33563D3E56798029CF7D4456CFBD5506502BE6AFF80C6B9EBC4D7D00B51C + E83400B5423580490BD693374BC6A9EEC0BCD73662EDFCF1EA01581BFC503316 + 2CDFA40EC084F9EBC89A92F1B0B95A1C78B1EC1BC544CFBEFB6AB95DF2EA4758 + B76082FA006A856A00E39E5C4BDE7AF65E1C6E6C49A19737EC504CF4CCBBAE92 + DBF35FD980F79E9BA40EC0EAA7EF51BF0A7516C0FFCE813BE6AC226B174E56BD + 0A3DBBAC0C1F2C9EA60EC08AA727C2EE0AF27EE9873B15133DE3F6619D0FA056 + 280E6073B8C8AFE53528DBFC133A0BE0CEE197E0DCA27E28C8CF8A119332001D + 27BBFFB262DBB77FC0D11C44AFDE3DB0F7CFBF3B0D60F4F0A1F8EDF772DEBF71 + E8200CBBB890E9D2A404E011836459D97634FA35C8CFCF43BA51CBC7777DF773 + A701DC3761346F47C261ECA9B0C2E5A8C3EC4923909516FBBC2821C0CBEBBF21 + 024947469A89F78D1A028341C7015E2B9908875B7D80A9E36E8056A793C71A9B + 3C38B8FF00E6DC7B7D7280C90BDF2345C5453163CC0506D059C100584443ACD9 + B005EB174D4C0EF0E8D24DE4C2C1C5FC59653C841411AD416E9BF52D7368B57A + 79CCA423201A7DCCF53ABD1E79D916F4E96A91C788D628B7EB1B0508BE563D06 + 2D9121582A7DB2F55BBCFEC49DC90116BFFD25B976E8607AA51E153575312012 + 443440AA100CA06F5733B2332C30EA622B1D033954E7823F18FBD8D264D0222F + D348C783D8B2F3373C3565447280755FFC482AEB44DC72C540743B3D1B3E5144 + 9DE0C591462F84661F0281D0294314743B8D03448704B3DFE6E19FD9160D4C26 + 23B22C7A58CC66D81B046CDAF50FFA76D163CA98CB9303ECFCA5927CB06B1F7A + 75CF45F7DC1C14F5CC429F6E39306AC3D0EB75FCA12C8372F9284824C46D1769 + DF1B08231C2208465AE60C84C23284D660A6291141FFFC6C2E4C4A1DFD71F1F1 + 8E04C204B67A27CA0F355067DC70D4D763D4A505183E646072808A6A3B79A96C + 07FA17F48389AE805485727332909399CE2DCD49D7D13103CCC6D83C0F45527F + 7760A029E50F45A045842F8ADDD98C63821F0D2E0FEC820F842E8E4817853DC9 + 3E7AB816D36F19820BCEEE9E1CA0A1C947662ED984C2C282180023153BECDC5E + DC56E606139F6E8E4DA3E8971FD1304C68EB385065F7C2E5F6F01C671BD41D20 + F4774588FE961B45263C1AA0FA4015163F349AA6746672007612B35BE781C503 + B870335DA944002C9D2C46038C7A8D2C5E121D2D9845906653381C91D3E35F9B + C085D7BB03C84E37C1E3F3B5A4623B00551515AC8472792901CC5AB291A4E5E4 + 22834EDE5100D60C45F519C0618717C16080571DC1D322DAE30FB70BD0505B83 + D2B977A5762BC1005E786B1B698A98909991961080451ADD871280943A8900A2 + 575F026027AB27A091215885E3C2130088DE6658223ECC9B3A327580773FFF81 + FC61159047AB503C80CE60E2558301B08D9846CF8654019878160C400CD34D4C + BF64158C0583480420082E0CC83361EAD8A1A903ECF8791FD9B87B3FFAF4CC6B + 03C04A2013BDA7B2963A40C7754C58EBF5FEE36D96E35C4C3876FE8B0A7BF0D7 + 54A2E8E310EC93B92052E823F5AE3600369B8D97D0119715A70EF0CFBF36B2F4 + FDDD38EBCCDE32003BDAAFBAA0BF0C10EF407BABCF22DE8110FD646D263E3A95 + D866B60B620C80B5BA0633C65E8AC1037AA70EE0707979291D34E8EC36002CD8 + 3EE888032C855825626F65C4706B616129241E9F4C02A8DA5789E71F1C85FCAE + 59A903B060A5F49CF38A9166480C2039A0D76A522E9FD2EA4BFD6374B5ED0D2E + 5E8124009FE88786DE8E4800157BF7F2129AF21F1A098095D29C6EDD91613129 + EA8018F59E59BADDE8D723170D4E27FFCED6E89601FC7483DB0E597909E5AE9C + 0C80544A73BB642604606781C56C6AD78144E533DE01297C5438AB48EC74FEBB + DA2E03B89A9A610E35F3127AD200AC94FE59EB41EFBC2E277620EA1C385507CE + 3BAB67CBB514E2FBBF0ECA0036870B4567E879093D6900A99416F6EDD1AE035A + BD81FE47D0710752C97FC981E87E90B62557E2016A0EDB70E3C57D79094D04F0 + 1F3E8A27FB8F6665EF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_23_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007844944415478DAD5997B7414 + D51DC7BFBB3BFB0A8484A809E10DA98610D4626B3D87965351AB808005FB4028 + 47DE8A9CD68285162558E1E85114C447A03C8AB504A995B43DB63CDA221C2CAD + 2FC407C61008240B815D924D76369BDD99D9DDD9DB7B6F32CB4EB2211BB3939E + 7EFF997B6733777F9FDFEF77BF3399351142D05E269309C9B47CEB11B261F1ED + 4887CAFF730E8A1286570CE1E1A96361B79A4DA95CD73E5ED3FF0AE0F0272EF8 + 24B5DB1069010847097AAA13D5971192141DC4824937A2AFD37655881E013CB6 + E51079E1E13BD302507D49447348D1415CF249583279CC5521D202100AC7F87C + E596835F29F8F54B26C21F8AC2D71CEC0051E76DC652DA4E9D41F408E0D1D27F + 924D8FDC1507E88922D1285D0749216ADC3EAC9E3D2EFD004B37ED23AF3E3A39 + 2D15A8BA2862FF7B55686A513A7CAE482194FEFC5EE3007CB4FCE9D28933F578 + BFC285807C65CD9640A077004AB6FF236D20D36FFF3A4ED1AA986311549CBD68 + 0CC0231BDF26A5CBA6A6B5028992696BBA3C4DD875E0236C5E3ECD7880745660 + DDA2BBE3E3D55B0F1803F0D0F37F21BFF9C57D865540D3AACDFBB075C5F7D30F + B0F8B93F91AD2BA7C32D86F9FCE9D70FA52DE8271EBC2B3EFEF5B67DD8F6CB19 + E90758F8CC5B64FBAA1FC4018CD29A2D6F63C7E33F341EC0A80AF41A8051320C + 60FEDADDE4B725B30CAFC0EA57F662E79AD9C601B81A1518A9B59BCB8D0198B3 + 6617D951321B6E7F6B059E2F7B276D41AFF8C99DF171C9CB6F61D7DA39C60318 + 25C300663DBE93BCF6D45C5C686A6DA117F71C4E5BD0CB1EB8233E5EF3D21EBC + F1CC7C6300B63FF9A0F12ED45B00FF7715F8F1CA6D64E7BA0586BBD0539BCAF0 + E6FAC5C6006C79721E3CFE089F97FEF148DA825EFAA309C601B8BD7E72BCA216 + 65FB3E40228051620033277E0B37158D40417E962E989401E87972EC73170EBE + FB29BC2D110C193A08273FFBA2D700A64D1C8F8F3FA9E0F329E3C760C2AD852C + 2E534A0041394236951D429362427E7E1EFAD8CCFCFCD17F7DD86B000FCD99C6 + C73155C5894A17FCDE7AAC983F095919FAD72D49015EDCFD0E11491F6466D8F9 + DC6622B05A2DBD0AB068D6BD305B2CF1734DCD419C3D7D062BE7DED335C08275 + 6F90A2E222DD39560506F04AC93C7803BD03C09408B163CF7EEC7E7A5ED7008F + 6D2C27DF185BCC5FF525EAF807C70D0D3C5173674E81D54CE210AC95FE7CE05D + BCFAAB995D03ACFFDDDFC9F7C68FA5570AA8ACADD78168FB2166B6EAAE71086D + 5F46AFD164B71010D395B9451030FC5A07B2339DB059F44E47CC369CAFF74389 + E8DFFAD9AD66E4F5B3D1F311EC3FF2319E5838A96B805D7F7B9F54D5CBB8FFBB + A331E09A6C48B28C7A31848B4D21882D12C2E1E857862818D09703244A8339ED + 0EF263B6D304BBDD862CA700A7C3014FA388F2A35F62787F010BA77FA76B8023 + 1F5591378F9EC29081B918989B83A2C1591836200736B30A41B0F0779A0CCA2F + 51905814A24420D37928AC428D124462AD6B86A36A1CC26C75D0968861647E36 + 0F8C659C49680BBE7D45C22A81BBC1878AF38DB43201781B1A30F5B6024C1C37 + BA6B80CA1A0F79A1EC3046168C809D664073A1DC9C4C140FBB06D765DAE0B009 + 30992D10127E9388D2C0D94BDBABC92A08BAB9128DC18C184F8AC7D782CBA282 + 467F101E5102A1C9916952D89A972ED461C9FDE370CB0D03BB06686C96C8B20D + E5282C2CD001D868D04E7A647DE9B00A7C73F5EF6BE7F3D6DE1168B6F5995454 + FDFAECEDB3146DFD1BABD546A101352C211026F47B65C84AEB73160B3C11A0E6 + 4C35D6FF6C1A6DE97E5D03B03B317BF21C5D3C8A07EEA059D30026DC3484F725 + 6B27560596519B606A6B1912AF84965D4D11DA4DAA1A8BB7C739B7C8BD3DBB8F + 83B69C0941496A6DC54E00AA2B2B9985F2F0520258BE612FC9C8C945661F7BA7 + 006C3F386D561D40B2E03B0360D6D8100853083BC4A082A0A2760AD058578BD2 + 550FA4F628C1009E7BED20698ED9D12F33A3C7006C184D9833800BDE10229130 + B74D16BC4A83945553520039D402674CC2EA45935307F8FD5FDF239FBA44E451 + 174A06C094418D440348B57D3400D63EC1B0290EC12C9A079E044014FD189567 + C7A219E3530738FCE129B2F7D8690C1B9CD701C062B573DB63006C0F64D09B5B + 77FA9F8901C8AA408357B90533318864006EB79B5BE8A46F17A70EF0E53937D9 + F88763B8FE6B433B00300F67419FA8AAA315A0E72D2CB02BD72B6D63D6E33C18 + 55BFFE370B07F19FA96459E210ECC8AA2053E88B0DFE0E00AE9A5A2C9D711BC6 + 8E1A9A3A80D71FE2563A66CC0D7100F66C72C72D23E300ED2BD059F699DA5720 + 4A8F6CCC824F6C25E6461E51D601549FAAC2B33F9D8AFC6BB352076062567AE3 + CDC5C8B0EA0198D83EE84905580B312762BFCAB0CDAB89B590DCB698065079F2 + 24B7D094FFA1D1009895E60C18884CA73D2980560176374ED53EB5EC6BF3CB34 + DB9E463FB7500D4092157A9717388042F787FBBC8B5B2887EA0E8066A5B9FDFB + 5DBD02092E944A05E484DF99B5E7A5118372D1E8F3F1CFDC4D813880BFB9058E + 680BB7D06E03302BFDAC2E88A179FD9302B07B81D361EFB402C9ECB37D053449 + 3470E648FE40105FD478E2006EAF1F45D709DC42BB0DA05969E1F0418657E0E6 + EB07B75E4B21FEFDF9D93840ED0537A6DC3A9C5B683280FF021F052AFB5B4F2C + B00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_24_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007854944415478DAD5997B7414 + D51DC7BFFBDE4DCC83A80909F24C6B08415B6CADE7D0722A6A2D20D0827D2094 + 236F454E6BC1428B12AC70F4280A6235501EC5B604A895B43DB63CDA2239584E + 7D216A31268148B210D825D96467B3D99DD9E7EDBD7733C34EB2219B66266DBF + FFCCBD77CFCCFE3EF7F7BBDF7B77D640084177190C06A4D2AA1DD564F3B23BA1 + 85F657D7C12304F1F08C09B0598C8674EFEB1EAFE1BF0550F5CFF30885C2FD86 + F89F0138FEA1135E31D66F084D00C2518281EA74C31504C5900A62F1D45B709D + C37A4D8801013CB6FD1879E1E1BB350168B82CA0231852415CF68A583E6DFC35 + 2134010886E3BCBF66FBD1FF28F84DCBA7C0178CC2DB11E801D1ECE9C00A5A4E + BD410C08E0D18ABF93AD8FDCA3000C449168943E0729211A5D5EAC9B37517B80 + 155B0F91571E9DA64906EA2F0938FC763DDA3B433D3E0F894154FCF83EFD00BC + 34FD5AE9F4B916BC53E3845FBAFACC4EBF7F7000CA77FD4D339059777E117534 + 2BC67804359F5DD207E0912D6F908A953334CD40B2245A9A4E773BF61E791FDB + 56CDD41F40CB0C6C5C7AAFD25EB7E3883E000F3DFF27F2CB9F7C4BB70CC85ABB + ED1076ACFEB6F600CB9EFB03D9B166165C4298F79FFECD31CD827EE2C17B94F6 + CF771EC2CE9FCED61E60C933AF935D6BBFA300E8A5F5DBDFC0EEC7BFAB3F805E + 19183400BDA41BC0A20DFBC8AFCAE7EA9E81752F1FC49EF5F3F40370B685A0A7 + 366CABD20760FEFABD6477F93CB87C890C3C5FF9A66641AFFEC1DD4ABBFC17AF + 63EF86F9FA03E825DD00E63EBE87BCFAD4025C6C4F94D08B078E6B16F4CA07EE + 52DAEB5F3A80FDCF2CD20760D7930FEAEF428305F07F9781EFAFD949F66C5CAC + BB0B3DB5B512AF6D5AA61D80CBE323A76A9A5079E85D6C7F7221DCBE081FAFF8 + 7DB56641AFF8DE6415C09C295FC1ADA5A3515C98A30A266D003A4E4EFECB89A3 + 6F7D044F6704C3470CC3998F3F5101E825063073CA247CF0610DEF4F9F341E93 + 6F2F617119D202084811B2B5F218DA430614161620D36AE4E327FEF1DEA0013C + 347F266FC763319CAE75C2E769C1EA45539193A17E5B9112E0C57D6F12816422 + 2BC3C6FB560381C5621A5480A573EF83D16452C6DA3B02F8ECEC39AC59F0CDBE + 01166FDC4F4ACB4A55632C0B830DC0940CB1FBC061EC7B7A61DF008F6DA9225F + 9A50C6DF9425EBD4BBA7F072F94278FCFA032C98331D162351205829FDF1C85B + 78E56773FA06D8F4EBBF926F4C9A40EF34A3B6A945016100832506C064B31851 + 906D452812C1E1EA0FF0C492A97D03ECFDCB3BA4BE45C2FD5F1F87A1D7E74294 + 24B408415C6A0F42E814110E277E13C78D16D57D7673D78C517059361301315C + ED170FBD0EB9590ED57D565322A6B3AE00BFE63A0CB0D9ACC87198E1B0DBE16E + 135075E2538C1A62C692595FEB1BA0FAFD7AF2DA893A0C2FCA47517E1E4A6FCA + C1C8A179B01A63309B4DFC952083F28914241E85201248B41F0CC7108B1244E2 + 896786A33105C268B1D39288634C612E0F8C18ADFC337357F03284AC708CC0D5 + EA45CD85365C68F1C3D3DA8A19771463CAC4717D03D436BAC90B95C731A67834 + 6C74066417CACFCB42D9C8EB7163961576AB1906A309E6A457FA511A387BE779 + 2D59CC66553F148DC388389F14B7B713578410DA7C01B80511844E8E4427853D + F3F2C5662CBF7F226EBBB9A86F80B60E91ACDC5C85929262158095063DA6E806 + 5E9376AB09268B8DCF5C8655BE4FE25FA80A30A67EBEAD6BA6D9B81433D3DAA6 + 590B8BF08749E2FE50E298C29E930CD078AE019B7E3493967476DF006C276607 + B771656379E0763A6B3280835ED9C2B25BCCDC1DEC14D0D155FB62D4C0DD8229 + 12A7BB79ECEAA935D80D8C292F3B3301138923208A8952EC05A0A1B69659280F + 2F2D80559B0F928CBC7C6465DA5400936F1DCE17165B0FAC8C584958CD86AE9A + 274A29C9E5218B4E3462B1B852DFE75D02DF9C321D89052D0442088462BD02B4 + 3537A162ED03E91D2518C073AF1E251D711BB2B3327A05600BDA61B5A8005205 + DF1B00CB56AB3F8C5C3A49ACEEA59821258014EC84232E62DDD269E903FCF6CF + 6F938F9C020AA80B0D148035A3497D0670D113442412E6E523CF3E0F3C058020 + F830B6C086A5B327A50F70FCBD3A72F0E4598CBCA9202500135BBC3240BAE523 + 03B0F209840D0A04DB637A0370B95CDC42A77EB52C7D804FCFBBC896DF9DC4E7 + 3F37A20740B2FBB0359041CF49FDA97F260620BB10DB439818442A0067631356 + CCBE0313C68E481FC0E30B722B1D3FFEE61E006C1362419FAE6FA619A0E32616 + D8D5FBBBAA417124A99B017DB96418FF9B4A92440EC1AE2C0B1285BED4EAEB01 + D050578F677F38038537E4A40FC0C4ACF4962F9421C392006087ABBB6E1BA300 + 74CF406FB3CFD43D03517A656D167C7229313B750B920AA0F6CC196EA169FFA0 + 91019895E60D2D4296C3A6026062EB6020196025C49C88FD2BC3DC47162B2179 + 336400215A5EAE0B4E6EA17CAC3F00B295E60FC94E092067801D27D2B54F79F6 + E5FE153ADBEE369FCA854429448F29660EE0EBE8843DDAC92DB4DF00CC4A3F6E + 0E6044C1906B6720C985D2C98094F43FB37CE01B3D2C1F6D5E2FFFCCD5EE5700 + 5C1E1F4A6F34730BED37806CA525A386A504607B81C36EEB3503A9ECB37B0664 + 893470E6483E7F009F34BA1580A68B2E4CBF7D14B7D05400FF06A8572DFB6E48 + C63E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_25_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007794944415478DAD5997B7014 + 451EC7BFFBDE4D4802511312E415D41012B98B8FB38A93127C0604143CAF10A4 + E4A922E50314EE50820AA5A528888F8008A27704F041CE2B95878AA4F0A85311 + 41C59804226421B021D96477B3C9EECCBEDAEEDECCB21336C9EE6526E5FDFE99 + EE999DDEDFE7F7FBF5B77B6634841074348D468358B668433981427659763FCC + 291A099341AB49E4BE8EFE6A1205587DFF184500B69557C1EEF4E0C189850941 + FC6E00CAFE7B02A2E84B18E27703B0EF88150E6F30610845007C819E4F85C335 + E7E0F18A328839E3AE441F8BB14B881E013CBE7E2F79F9C19B1401A839EB448B + 4794419C7578317F7C4197108A00787C21DE5FB27ECFFFE4FCAAF94570790270 + B4B45D0051676FC1025A4E9D41F408E0D1922FC8DA876E8E00F4C4FC81001D07 + 31214EDA1C58367D94F2000BD6EE246F3C3A5E910C549F7162D7D7D5686E152F + B82E7A3D2879EC76F5001C34FD4AD9E1E30DF8A6C20AB7707ECC56B7BB77008A + 377EAE18C8E4317F4415CD8A36E447C5AF67D4017868CDC7A464E1444533106D + 022D4D6B7D33B6ECFE0EEB164D521F40C90CAC9C776BA4BD6CC36E75001E78E9 + DFE4CD27EE502D03922D5DB7131B16DFA93CC0FD2FFE8B6C58321936A78FF79F + FBC75EC59C7EEABE9B23ED67DEDA89B7FE36457980B9CF7F48362EFD4B04402D + 5BBEFE636C7AF26EF501D4CA40AF01A865AA01CC5EB195BC5D3C4DF50C2C7B7D + 07362F9FAE1E80B549849AB6625D993A0033966F219B8AA7C3E60A67E0A5D22F + 15737AF1BD3745DAC5AF7D882D2B66A80FA096A90630EDC9CDE49D6767E27473 + B8845ED9BE4F31A717DE7363A4BDFCD5EDD8F6FC6C7500363E7D9FFA2AD45B00 + FF3719B0D95DE450452D4A777E8BCD2BE7A8AE42CFAE2DC5D4A23F6164DE500C + CB4A93391337003D4F0EFC64C59EAF7E80BDD58F818306E0E88F3F63FDD3B350 + EFF2F3DF957C50AE98D30BFE3A560630A96834BE3F52C1FB13461760ECB5B9CC + 2F4D5C006D829FAC2DDD8B665183ACAC4C241BB5FCFCFEFF1C9401A899810766 + 4CE2ED503088C39556B8EC0D583C7B1CD292E40FFB31015ED9FA25719264A424 + 9978DFA821301874BD0A306FDAEDD0EA749173CDF4E1FFD763C7B164E66DDD03 + CC59B98DE4E5E7C9CEB12CF43600B368884DDB7761EB73B3BA07787C4D19B9BA + 309FBF688AB643DF1EEA3580995327C0A0251108564A1FEDFE0A6FFC7D6AF700 + ABDEFD8CDC32BA90DEA947656D43048401BC5E3C0B7677EF00303319B4C84C35 + 42F4FBB1ABFC7B3C35775CF7005B3EFD86543708B8EB8611E87F515F7805010D + 4E0F0E1EA9C431EB39D81D6ED59C4FEE938C829C4C8C195588348B1E16B319F5 + 4D4E94EDFF0543FAE93177F2F5DD03947F574DDEDF5F8581D919C8CE4847DEA5 + 6918DC3F1D466D107ABD8EBF5163502E2F7D360E05E0F41208B4EFF105110C10 + F843E1317D8160388A3A02ADC14C4B22849CACBEDC31A235F26B7A5DD81FA34E + BEF6F88204B646072A4E35E154831BF6C6464CBC6E188A468DE81EA0F2643D79 + B9741F72860D8589464052A18CF414E40FBE0897A4186136EAA1D1EAA08F7A23 + 1EA08EB357865D9941AF97F5C540085A847850EA1DAD38E714D1E46A43BDD30B + 428323D0A0B031CF9EAEC3FCBB46E1AA2BB2BB07686AF19285ABCB909B3B4C06 + 60A44EE7645FCC6BD26CD4416730F1C82519A5FB04FE87320783F2F14DED9166 + E785A09ED636CD9ACF0BB78F84EF17C3AB3C1B271AE0E4F11AAC7A64122DE9D4 + EE01D84ACCF63D23F28773C7CD346A1240767A1F0CCE48E500CC588DB2D2F285 + 74FC45ADAD7DC2FB4374350F9EDFF479DAC1D25393E95846F8FDE7AF89FE10DA + BCDE70297602505359C92494BB1717C0A2D53B48527A0652924D32000B3D3265 + 301BF45CDECC14C0A20F8FE10D68B8DC7505106D7D93CD91DF3ADB44B489C14E + 019AEA6A51B2F49EF8B6120CE0C577F690969009A929493280B1230746A2CEE6 + 01AB69A33E1C14E9C347A07D12B3FA968C560A82C1709F4DD01336275F5D932D + 9670F9D1BA17829A980082A715969017CBE68D8F1FE09F9F7C4D7EB03A914955 + A83300A64816A3410610CBF9CE0058B61ADD3E9A0913CE347BC28EC700703A5D + 189E69C2BC29A3E307D877B08AEC38700C832FCDEC31006B06A2FA0CE0B4DDC3 + E701AB7F29FA9D01D86C362EA1E3FE9C1F3FC02F276C64CD7B0770F965836202 + 3063EA2301C45B3E12002B9F369F2602D15506AC276BB160CA75281C3E287E00 + BBCBC3A5B4A0E08A0B00A2E593CD8124BAD14BA4FE9931004946D922C88C41C4 + 02A8A9AAC60B0F4F44D6C569F1033063527AE51FF291649003B05594397DB8BA + 8E66809ED731C7CEDF2FB6B72545123A08D035B903F8672A41F0720876645910 + 28F49946D7050095478F72098DFB81460260529ADE3F1B2916130760BBC31BAF + CA890074CC4067D167D63103017A646DE67C7429B1F5A0DE294400449A1DDB29 + 2B9750765F4200929466F44B95013063F3209281A839106F0658093125625F65 + A4092CCD0169356700AE96569803AD5C4213066052FA635D1B0665F68B092065 + 80ED87E2954F29FA52FF1C8D767D938B2F6212805710E93E4BCF016C7617F22E + D173094D184092D2DC210314CD8010F59D59DAB10E1D90812687835FB335BB23 + 00B5A76D9870ED102EA1B1007E03670323FB375BAF070000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Recycle_26_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000077C4944415478DAD5997B7054 + D51DC7BFFB7EE445564C4890B735842036B48E33B499826205042CA81D853222 + 0F1599D682851605AC303A8A82D41A2842B1CACB07693BB63CAC980CCAF8401E + 5A1A9348842C0436249B6437BBB98F7D9D9E73C2DDECC226D935F766F4F7CF3D + E7DCBD677F9FFBFBFDBEE7DC7B7584107C9F4D970840A7D325FCF1D22D15AAD1 + 5E9F9F8DF993C6C062D2EB52B9EE4A7F530658FFD0785500765754C3ED11F0C8 + B4E29420BE3300651F9F812C075286F8CE00949F74A2550CA70CA10A4020D4FB + 5238517B098228C741CC9F7C23D26DE66E217A05F0F8E643E4C5476E5305A0F6 + A2076D821C0771B155C4A229A3BB855005400844787FF9E683DFCAF9758B26C1 + 2B84D0DAD67E1544BDBB0D8B693A7505D12B80C74ADF271B1F9D1805E88D0543 + 213A0F12429C75B562E5EC71EA032CDEB88FBCF2D81455225073C183FD9FD4A0 + C52F5F755E160594FEF64EED005A69F8D5B213A71BF169A5133EA9734EBFCFD7 + 3700ABB6FE47359019E37F886A1A157D2488CA6F2E6803F0E8867749E99269AA + 4620D6249A9ACE8616EC38F039362D9DAE3D809A1158BBF0E7D1F6CA2D07B401 + 78F8857F92BFFCEE2ECD22A0D88A4DFBB065D92FD40778E8F9BF932DCB67C0E5 + 09F0FE33AF1F52CDE9271F98186DFFF1D57D78F5F733D50758F0EC3B64EB8A7B + A2005AD9EACDEF62DB13F76A0FA05504FA0C402BD30C60DE9A5DE4AFAB66691E + 81957FDE8BEDAB676B07E06C96A1A5ADD954A60DC09CD53BC8B655B3E1F27644 + E0859D1FA8E6F4B25FDD166DAF7AF91DEC5833477B00AD4C3380594F6C27AF3D + 3D17E75B3A52E8A53DE5AA39BDE4FE5BA3EDD57FDA83DDCFCED30660EB530F68 + AF426A03B8DC5E72ACB20E7BDE3B8E58002D2370EFC4B11853380C23F2B2E29C + 491A808E9323FF75E2E0875FC0ED0F62D0E08138F5E5FFB07DED7CCD55E8E98D + 3B317D52098E9FACE4FDA925A331E1E602E6972E298076294836EE3C84165987 + BCBC5CA499F57CFCF04747B1F9A907D1E00DF27EE9DB15AA39BDF89713E2001E + 9E339DB723E1304E5439E1753762D9BCC9C8B2C73F2B27047869D707C443D290 + 61B7F0BE5947603219AE02D032020B67DD09BDC1101D6BA1CFCEDF7C7D1ACBE7 + DED133C0FCB5BB49615161DC188B425F03308B85D8B6673F763DF360CF008F6F + 28233F2A2EE2EF6962EDD867C7FA0C60EE7D5361D29328044BA57F1CF810AFFC + E1BE9E01D6FDED3D727B4931BDD288AABAC628485F0330B398F4C8CD34430E06 + B1BFE2389E5C30B967801DFFFE94D4344AB8FB67A330E09A7E1025098D1E0147 + 4F5661CE5D259A031C2CFF18E3C71523CB6684CD6A4543B3076587BFC2D06C23 + 16CCF869CF00159FD790B70E5763507E0EF2731C28BC2E0B430638F839B33E0C + 510EC2E717E87A2043F079E91FB4C127C868F10A681222308644F8050992DC09 + 6AB598906EB7F27676661A6FA767A4C1916947769A1939FDFBA15F663A779859 + 204CE06A6A45E5B9669C6BF4C1DDD48469B78CC0A471A37A06A83ADB405EDC59 + 8EE12386C14227545428C79181A221D7E0DA0C33AC6623747A038C312F944311 + C2DFB8756726A331AE2F8722D023C2DFD235B4FA7189DE94666F3B1A3C224824 + 042910E6735E3C5F8F45778FC3D81BF27B06686E13C992F565282818110760A6 + 4E0FCFEFCF73D26A36C060B2C06CD0C16E56AE93F81FC639188E9FDF62D045C7 + A5B091E67618E180085F80745C2F772C926C9E5880B3A76BB1EE37D3694A67F6 + 0CC05662B6EF195534923B6EA5774D01C877A463484E260760C642CED22A1031 + F0F79CAECB051F8CD0D53CDCB967122E833968FA984C6604839DE7E46004EDA2 + 088F48BA04A8ADAA6212CADD4B0A60E9FABDC4EEC841469A250E6040960DC3F2 + B2BF35C040871D62A8D307268FECB79E7619ED72B84B80E6FA3A94AEB83FB9AD + 040378FEB583A42D624166863D0EC0468F4CDAAC2623D7672B05B0193BE6608E + 3187BA0388B57E6956FE3B9E7E34EFA5B02E218024F8618B8858B9704AF2006F + FCEB13F285D3835CAA42B10013C60C8ADE7556C8AC28CDC60E27940F1FAC9895 + 02558CA63AC2E18E3E5398332E0FDF1EA4D96C7CEC428BD0E17802008FC78B91 + B9162C9C59923C40F9D16AB2F7C8D718725D6E970046A30136B3290E2091F35D + 01B06835F9023412966E015C2E1797D0C93F294A1EE0AB332EB2E1CD23F8C1F5 + 837B0DC09AA1983E0338EF167821B30256D2A72B00E7D93A2C9E790B8A470E4E + 1EC0ED15B8948E1E7D434200664C3E590AD9E9462FD9F4510058FAB407745188 + EE22505B5D83E77E3D0D79FDB3920760C6A4F4C69B8A6037C503C4EA7FAA0081 + CBEB020350D601896E55943A48045075EA1497D0A41F68140026A58E01F9C8B0 + 59E20088DECC9D3E51534F53888E1B98639DD7CB97DB8A22495708D08F0B06F2 + CF54922472087664519028F485266F1C804CE15CE79C5C42D9784A008A94E664 + 677200B6BDBD75ECF028C09511E8EAEE33BB3202217A646DE67C6C2AB105ADC1 + 234501BC6D7E58437E2EA129033029FDB2BE1D8373B3E30098B13A8846801671 + ECB7E36422C052882911FB2AA314B05203CA768401B8DC5E145E6BE4129A3280 + 22A505430726045022C03674C9CAA772F795FE257AB71B9ABD7C1556004449A6 + 1B452307A83BEFC2D49B8772094D04F07FB6191BFB31900C820000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Recycle_27_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007464944415478DADDD97D7014 + E51D07F0EFDDEDBD2624246ADE780735842035588729CA08485BDE2DA01D8532 + 222F2A32D58285CABBC0C8286FA2355084622B6F5588ED5879D1623228A31679 + D13A218944C841C2A5C925B94B722F7B777B8FFB3CC96E6EC325B933BB8CEDEF + 9FDB97BBBDE7B3BFDFFEF6B93D1D2104FFCBA1FBBF04E874BAA86F5EB2AB4835 + EDED592998377E18CC46BD2E9ECFB51F6FDC80AD4F8E560570B0A8144E97174F + 4FC98B0BF1A301147C76193C1F881BF1A301145EB0A3C127C48D5005100875FF + 52385FFE5F787DBC02316FC25D48B49A3A45740BF0FCCE9364CBD30FAA0228BF + EE42A3975720AE37F8B070E2D04E11AA00BC81305B5FB6F3C40F1AFCA685E3E1 + F686D0D0E8B90151E96CC422B19C3A42740BF05CFEBFC8F667C6C980EE443014 + 128F83A8882B8E06AC9A35527DC0A2ED47C91BCF4D54250365552E1CFBBC0CF5 + CDFC0DFB799F17F9BF9BA41DA0414CBF5A71FE520DBE28B6A3C9DF76CCE6A6A6 + 9B0358BDFB23D520D346DF8D52312BFA7010C5DF5569037866DBFB247FF11455 + 3310197EB134EDD5F5D877FC4BEC5832557B809A19D8B0E017F2F2AA5DC7B501 + 3CB5F91FE44FBF7F48B30C48B17CC751EC5AFA2BF5014FBEF21ED9B56C1A1CAE + 005B7FE9AF27551BF4CAC7C7C9CB2FBE79146FFE61BAFA80F91B0F93DDCB1F96 + 015AC59A9DEF63CF8A47B4076895819B06D02A3403CC5D7F80FC79F54CCD33B0 + EA8F47B077CD2CED00F63A1E5AC6FA1D05DA0066AFD947F6AC9E0587BB25039B + F77FACDAA097FEE6417979F5EB87B16FFD6CED015A856680992BF692B7D6CDC1 + B5FA96127AF550A16A835EFCD8587979CD6B877070E35CF5000EA79B9C2DAEC0 + A10FCF61F7DAC7B5EF4222E09171C3312C67000665262B06133340DC4E4EFFC7 + 8E139F7C056773107DFAF6C2C5E2520540CB0C4C1AF7339CBB50CCD6278F1A8A + 31F766D371E9620278FC41B27DFF49D4F33A6466A623C1A467DB4F7D7A067B37 + CCD3BC0BADDBBE1F4FCD9ECA96C38280F32576B89D35583A7702926DCA9F9A51 + 01AF1EF898B848027AD8CC6CDDA423301A0D0CB073ED13A87607D9F6FC778B54 + 1BF4A25F8F510016CC9C04BDC1206FAB177F7A7EF7ED252C9BF3CBAE01F3361C + 2439B9398A6D340BED015A668002684422F61C3A86032F3DD135E0F96D05E49E + BC5CF6982332CEFEFBEC4D03CC7974328C7A22236829FDFDF82778E38547BB06 + 6CFACB87E4E7A3F2C44F7228A9A89121371B40C36CD4233DC9043E18C4B1A273 + 58397F42D7807D1F7C41CA6AFC98F1C01064DCD2133EBF1F352E2FCE5C28C1EC + 8746690E3851F819468FCC43B29583D56241759D0B05A72EA27F0A87F9D3EEEF + 1A50F4651979E75429FA64A5212B2D1539BD93D12F2395ED4BB671EC950FB53D + 1BF2B73E660908042181C8CBD1C26468F97ECEA0536C3318F4301ADA8E473FEF + A86D40F1D53A5CAD6982B3B61653460CC2F89143BA06945CA9265BF61762E0A0 + 01308B6740EA42895C18193D2DB82535193D9312D9D9B1993A3E93A19010D319 + F7F14134FA04F680ABAADE8B9AFA2678437A907048C408EC21D8F56B95583863 + 2486DF99D535A0AED147166F2D4076F62005C064E23030EB56569316930106A3 + 999D3D0951D7E8675F18197CBB4C985BCF3CDDEE1738B1B60508011F9A02A4E5 + F33CDF9A054101B872A91C9B9E9D2A967452D7007A27A6F39E21B983D9C02D1C + 2703B25213D12F2D890168D02C98F4020261037B4CE868BDE08361F16E2EB44D + 39BCADB0D4A404F1582604836DFBF860181E9F0F2E1FE910505E52425B281B5E + 4C80255B8F105B6A1A7A249815808C642B0664A6FC6040AF541B7CA1B631D0F6 + 48DFEBF2F0F0F0428780BACA0AE42F7F2CB6A90405BCF2D609D2183623A9874D + 01E89968152FEA14B137EB59F95080146E8F0F554E4FCC0069F0ACFCDC1EB1A4 + 7451017E6F33AC611F562D98183BE0ED7F7E4EBEB2BB902E76A14880557CA5BD + D962E4D80DC62202AC5CCB31E8C0E8A03A03444682D52A2FD38B970D3C0AC0E5 + 726370BA190BA68F8A1D5078A6941C39FD2DFAF54E5700C60CEB23978D455C37 + 8AFB4C5CCB5994FEF808855B5E235BAD78AD4210DADAED65878BCD6F24446700 + 87C3C15AE884FB7263075CBCEC20DBFE761A77DCDEB74300C719603519158068 + 83EF0840B355DB141033CAC98FD9A301EC572AB068FA08E40DEE1B3BC0E9F6B2 + 563A74E89DDD06D0C550C43A055C737A5927A21D48AAFF8E00E5A56578F9B753 + 90796B72EC001AB495DEF5935CD88C370268D0FE4F4BC826CE54632D1F0940CB + C713D0C988CE4AA8E49B6F580B8DF9078D04A0AD3435230B3DAC660520F20616 + 2F409A6250807423F38B732DE93A680FE0C57D8EAB76D642E9F6B800522B4D4B + 49520088DEC4067DBEAC522C21032BA1C87F2EF9D6862375247FBB06F4D3EC5E + EC6F2ABFDFC710F49566C12FA2AB6ADD0A80BBB1199650336BA17103682BFDBA + D283BEE9290C40E7E763870F9401ED33D0D1D9A7D13E0374D24797E9E0234B89 + DE91AB5D7E19E070BA91731BC75A68DC00A99566F7EFA500D0A0D7417732404B + 8876223AF3942E60E91A90E653145071CD81C9F7F6672D341AE07B0303F5EC6C + 154BA70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_28_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000075B4944415478DAED987B7454 + C51DC7BFBB7BF7999098B42624C84B94108268683D5A9453D058794A81DA2320 + 4714B022C75AB06051C00A478FA220560345283E78B595B43D2A0F2B26A21C51 + 8460F5842410210B099B269B6437C9EEDEBBAF716636BBD99BEC920DB99783E7 + F8FBE7CECCBD77EEEF33BFDF7C67EE680821F8219BE647802B1140A3D1C47C78 + C9E612C568AFCB4EC3BCF12361D46B353D79AFB3BF3D0658F7F0584500769554 + C0EE70E39129F93D82B862008A3E3F0349F2F618E28A01283E6145B327D06308 + 4500BCFEDE4F85D2AAFFC3ED916410F326DC8064B3E1A210BD027862D341F2F2 + 23772A025075C18116B72483B8D0ECC1C289232E0AA10880DB1BE4F5659B0E5C + 92F36B178E87D3ED47738BAB0B448DBD058B683AC583E815C0E3851F910D8F16 + 44007A633EBF9FF6839810676DCD58317BB4F2008B36EC25AF3F3E51910854D6 + 3AB0EF48259ADAA42EF7258F1B857F98A41E40330DBF52567ABA1E5F9459D12A + 76F4D9D6DA7A7900566EF9AF6220D3C6DE840A1A156DD087B2EF6AD5017874FD + 7BA470F1144523106D224D4D6B5D13B6EFFF0A1B97DCA33E80921158B3E05791 + F28ACDFBD501F8DD4BFF217FFDE354D52210B6E51BF762F3D25F2B0FF0F08BFF + 229B974D83CDE1E5F5E7DE3EA898D34F3F501029FFF98DBD78E3C9E9CA03CC7F + FE5DB265F96F22006AD9AA4DEF61EB53F7AA0FA056042E1B805AA61AC043AB77 + 92BFAD9CA57A0456BCB607DB56CD560FC0DA28414D5BBDB1481D8039ABB693AD + 2B67C3E60C45E0A51D1F2BE6F4D2FBEF8C9457FEE55D6C5F3D477D00B54C7100 + 9BDD498E955563F787C7F1E6B37371BE299442AFEC2E56CCE9C533EF889457BD + BA1BF7168CC2C8DCC11892952A73266100DA4E0E7F63C5814FBF86BDCD87FE03 + FAE1645905B63CF380FA2A44012615FC02C74F94F1FAE4312330EEE61CE69726 + 210097E8231B761C4493A441565626920C5ADE7EF848A90C40CD08CC9F399197 + 8381004ACBAD70DAEBB1F4A10948B5C8FFD46202BCB2F363E22049E86331F2BA + 4143A0D7EB70E8B3A3D8B6669EEA2AF4EC861D58306B12B43A5DA4AD89FEB97D + 77EA3496CDBDBB7B80796B7691DCBC5C591B8B0203D8F4CC83A873FA785BE13F + 4B14737AD16FC7750160160DB175F73EEC7CEEC1EE019E585F447E969FC74F09 + A2EDD897C764006A1903987BDF64E8B52402C152E9DFFB3FC5EB7FBAAF7B80B5 + 6F7D48EE1A934FDF14505E5D1F01B9DC00CC8C7A2D32530C907C3EEC2B398EA7 + E74FE81E60FB075F90CA7A11337E391C7D7F72153CA2887A871B474F9463CED4 + 31AA031C28FE1C6347E723D52CC06C32A1AED181A2432731284DC0FC69B7770F + 50F25525F9C7A10AF4CFCE4076463A72AF49C5C0BEE9FC5EAA45E057C9DF71B4 + 22B69F52780304FE00899463994117FABEA0D3C8DA743A2DF4BA8EFED8FBB686 + 66949D6BC4B9FA56D81B1A30E59621183F7A78F700E567EBC8CB3B8A71ED90C1 + 30D21108AB50B21044C1AD79FC19139DD446410B4BBBC4465BBC933B7F30763B + 1B0C5F00F07803FCC8E693E3A7E0F66B41827E0A13E0674817CED760E18CD118 + 3534BB7B80C6160F59BCAE08393943640041C905A33608A339898FA059D0C064 + D4233939A9BD370D92A94C07351DCAE10D8600FD3E6F048E392AFAFC34AF8370 + 7B44B8A5F60812BA807A45B0809A2CC93280B3A7ABB0F6F7F7D0944EE91E80AD + C4B39EDA4686E70DE38E9B04815F0D0601D9E9C91898914223107292E5A8411B + A01FD5F153365BFB84F705A933818E15DB4D1D61969E9244FB32C0E7EBB8C740 + 5C1E0F1C1E025192DAD3282003A82A2F6712CADD4B0860C9BA3DC4929E813E49 + 461940DF54330667A55D3240BF740B3CFE0E1F983CB2671D2E092E291017A0B1 + A61A85CB6726B69560002FBE7980B4048D48E96391015C956CA6933A8D6AB396 + 4F3E061036A7CB835ABB2B6180B0F33C6D9D2E88014D4C00D1DD0673D083150B + 26260EF0CEFB47C8D7560732A90A450398E935775006CC34029702C052283A75 + C256DBE40E391E03C0E1706258A6110BA68F491CA0F86805D973F814065E93D9 + 05802D2E26BDC057481305300BA13ED8C8B251BD1840B42599CD0901D86C362E + A1136ECB4B1CE0E4191B59FFF7C3B8FEBA0132807123FB47F2DE44EB7A7ACF20 + 84D2202C9F61B98C5E2B984C06021DEBC5199B836FD0180453A5F029752C00EB + D96A2C9A7E0BF2870D481CC0EE7473291D3162685C0041D0D154D2CB0062391F + 0F8045ABA1D54BF73C41AE40F100AA2A2AF1C2635390F5D3D4C401983129BDE1 + C63C58F4BD0360457F549D019CB7BBB994B279109EC0F100CABFFD964B68C23F + 34610026A5E97DB3D1C76CEC02C0CC62004F21B61A279A3E6100963E2EAF2602 + 116F0E48741F663B67E512CADA7B041096D28CB41419804E6FE40A742900E13D + 1203100302759ECA2475921983E80CE06C6983C9DFC625B4C7004C4AFF57E3C2 + 80CC341900D11AB8D3A595352139A52914BDFF91DA0527AC48622701FA794E3F + BEE711450F87605716059142D73638650036BB13B9570B5C427B0C1096D29C41 + FD3800FBC1B863D4B51180CE118837FACC3A4780ED5A5999391F9D4A6C4B51E7 + 102300D5E76D987CF3202EA1B100BE0738A4ECEC4CB3275E0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Recycle_29_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000075F4944415478DAED987B7054 + D51DC7BFBB7BF71948486C13122442B18610A04D5BC7969629145A796A41EB08 + 9411795891692D586851C00AA3535190B6068A506C0B48ABA4EDA83CDA42228A + A208C1EA842410210B098BC926D94DB2BBF7EEEEDDD373CE666FF6261B7643EE + 75EC8CBF7FEE39E7BE7E9FF3FB9DEF79180821F87F36C3E7009F03E800603018 + 123EBC627BB966B437E76562D194B1B09A8D86BEBCD7DDDF3E036C7A60822600 + 2F9557C3EDF1E3C199C57D82F8CC0094BE73019214EC33C46706A0EC8C13AD01 + B9CF109A0004C3FD1F0A15B59FC01F9054108BA68EC100BBE59A10FD027864DB + 11F2EC83933401A8BDE2419B5F52415C690D60E9B4D1D784D004C01F8CF0FAAA + 6D87AFCBF98D4BA7C0EB0FA3B5CDD703A2DEDD8665349D7A83E817C0C325FF21 + 5B1E9AAC00F4C742E130FD0E12425C74B562CDBC71DA032CDB72803CFFF0344D + 2250D3E0C1C1133568E9907ADC97027E94FC7CBA7E00AD34FC5A59C5F946BC5B + E944BBD8F5CD8EF6F64F0760ED8E7F6B06326BC257514DA3628C8450F971833E + 000F6D7E95942C9FA96904E24DA4A9E9BCDA82DD87DEC7D61577E80FA0650436 + 2CF981525EB3FD903E003F79E69FE40FBFB853B708C46CF5D603D8BEF287DA03 + 3CF0F4DFC9F655B3E0F20479FDC93F1FD1CCE9C7EE9BAC947FFDC201BCF0CBD9 + DA032C7EEA15B263F5DD0A805EB66EDBABD8F9E88FF407D02B029F1A805EA61B + C0C2F57BC91FD7CED53D026B7EBF1FBBD6CDD30FC0D92C414F5BBFB5541F80F9 + EB76939D6BE7C1E58D46E0993D4735737AE58F2729E5B5BF7B05BBD7CFD70EC0 + E5F69253957578F9E8878807D0CB18C0EC096330B6703846E466A89C491980B6 + 93E31F3A71F8CD0FE0EE086168FE109CADACC68B4F2CC0E596680A3DB7AF4C33 + A797CFF99E525EF7DB7D983EF95B387DA692D7678C1F8D89B71630BF0C2901F8 + C410D9B2E7085A2403727373906631F2F6E3272AB0E3F1FBF457210AB078CE34 + 5E8EC8322AAA9CF0BA1BB172E1546438D41B9D8400CFED3D4A3C240D031D565E + B71808CC66530F003D23B0F09EDB61349994B616BAF1F9F8DC79AC5A707B7280 + 451B5E22854585AA361685636F9DC4AE0D8B7457A127B6ECC192B9D379391E62 + E7BE83D8FBE4FDC9011ED95C4ABE5E5CC437D9F176EABD53D8F6F8FDB8EA0DF1 + 7AC9CBE59A39BDEC9E892A8005F7CE80D9481408964AFF38F4269EFFD5BDC901 + 36FEE95FE4FBE38BE99B02AAEA1A1590EE007A46800130B39A8DC849B7400A85 + 70B0FC341E5B3C3539C0EED7DF25358D22EEFAEE280CBE611002A288468F1F27 + CF5461FE9DE37507385CF60E268C2B46865D80DD66C3D5660F4A8F9DC5B04C01 + 8B677D273940F9FB35E46FC7AA31342F1B79D95928BC3103370DCEE2F7321C02 + BF4AE1AE9309B173931F9409C23251CA89CC628AFE5F3019546D2693116653D7 + F7D8FBAEA656545E6AC6A5C676B89B9A30F3B61198326E547280AA8B57C9B37B + CAF0A511C361A53D1053A101420493BF59C49FB1D1416D158C70744A6CBCF576 + F0158E246E679D1192814050E6271E6F9C3E077FD80812095318991FC15CB95C + 8FA5778DC3D76EC94B0ED0DC1620CB3795A2A060840A2022F930890244E4086D + B7F35E74588D10AE71A4C902C57E21CBEA28C522140832E7A3E5482442735DC6 + DB67AA61730C50015C3C5F8B8D3FBB83A6747A72003613CF7D7417195534923B + 6E130405C06AA4CEDBD3B8F376C1009BD50C130590E37A974520FEEC2B484C30 + 844525BDA448970F215A0EB1EEE7CFD1154050E4EF7607A8ADAA6212CADD4B09 + 60C5A6FDC491958D81695605C062113038C38EE1B9993485A209CB0699C528D3 + 9F9AF8299BAB53B1986344EE9AB1FDC1A89343B21C0884BB7C60F2C89EF5F824 + F82419A224758E035905D05C5F8792D573525B4A3080A75F3C4CDA2256A40F74 + A800060DB0D3419D49B5D9C8071F038899D7174083DB973240CC799EB65E1F44 + D9901040F477C01E0960CD9269A903FCE5B513E403A707395485E201ECF45A38 + 2C1B761A81EB01C84A4F53DAA450579E35B4F8A38E2700F078BC189963C592D9 + E35307283B594DF61F3F879B6ECCE909909F452718334FA3EB0588EFFD64002E + 978B4BE8D46F17A50E70F6828B6CFEEB717CF9E6FC1E006C76B499053EC5DB28 + 805DE854149A1ACCB16B01C45B9ADD1E7D8FDE8B1DF22602705EACC3B2D9B7A1 + 78647EEA006EAF9F4BE9E8D1B7A800268E1DAA0C5C1BAD9BE93D8B10EDC998FE + C7F43E7EB26342132FA5175C1E7CE209601015095F20004F80F40A505B5D83DF + FC742672BF90913A003326A563BE52048739318020D014B2985500899CEF0D80 + 45ABA93D1A25A640BD01547DF41197D0943734310026A55983F330D06EED1700 + 2B86E3EA0CE0B2DB4FF53FC807724C81120148741DE6BAE4E412CADAFB041093 + D2ECCCF41E00CC1C16F01462CB8954D32706C03628BEA04181E86D107BDB3A60 + 0B777009ED330093D2FFD6FB909F93A9023099AD5C42AF0720B6846000A22CF0 + A583487B991983E80EE0727B51F845814B689F0162525A306C880A80182DDCE9 + 8A9AFAE87C4053287E01D799CE8A2289DD04E81B0543F8A24D14031C825D5914 + 440ADDD0E45501D45D7661C6ADC3B8842602F81F7C66D0EC4748175A00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_30_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007424944415478DAEDD8797013 + 551C07F06F92CD596869D59616A9282A94025A8FD141198BA002820A5E1C3A20 + 9722E3010A8A021E0C8EA2201E0539C40BC483AA8372A8D0AA83E2C1E131B52D + 14DA70054ADA266D736C92CDF3BD97264D9A94A4741799D1DF3FD97DB97E9FFD + BDFDBDDD551142D032542A1562C5DDB356109CA6F878E1949849B4CC57D516C0 + 9910FF03FEEDF86F03662C2F96ED24BE302B151307F7855EAB6ED3D16A3760D1 + 947C59001F1697C16A73E281E1796D429C3180C29F0E40143D6D469C3180A23D + 66D4B9A436236401787CED3F1576571C87D3254620260EE9830E46DD4911ED02 + 3CB66C2B79E58181B2002A8EDA50EF14231047EB5C983AB4F74911B2009C1E3F + DF9FB56CCB2925BF70EA60D89D3ED4D53BA21087ADF59846A7536B8876011E29 + F8962C79705008D09EF0FA7CF47710135169A9C39CB1FDE4074C5BB291BCF9C8 + 50592A507EC4864D3BCA51DB2846BD2FBA9C2878F466E50075B4FC72C5EE7DD5 + F8B9C48C0677F36F3636349C1EC0DC95DFC80619917F29CA6855D47E2F4AF61F + 5106F0E0E20DA460FA70592B101E6E3A35CDC76AF1C1E6DFB074C62DCA03E4AC + C0FCC93786B6E72CDFAC0CE0FE97BF206F3D7EAB621508C6ECA51BB17CE66DF2 + 03A6BCF419593E6B042C360FDF5FF0DE56D9927E7ADCA0D0F6B32B3662C51323 + E5074C7AE153B272F61D218052316FD906AC7AEA4EE5014A55E0B401940AC500 + 139E5F4BDE9E3B46F10ACC79633D56CF1BAB1CC05C2342C9787E69A1BC008BD5 + 4E769654E1936D7F62D5DCB1B0D803157879CD36D9929E79CFC0D0F6DCD73FC5 + C8FC3EE89B733EBA67A644249330808E93ED7F9AB1E587DF616DF4A26B761794 + 97EF8F0028150C3038FF0AECDA53C2F787F5EF8D0157F66079A9120238DC5EB2 + 64CD56D48A2A6466662049A7E6E3DB77ECC63BCF8DC7A1DAC0147A755D916C49 + 4F1F7D7D687BDE6BEB3069F450BEED9724EC2E35C36EADC6CC094390628ABC4F + 88097875ED36622349E868D2F37D9D8A40ABD570C0CA67C629DF852860C25D37 + 41ADD184C66AE97DC3FEBDFB306BFC4DF10113E77F4872727322C658155A0294 + AC0003B00847AC5AB7096B17DC171FF0D8E24272795E2EBF470D8F9DBFECC4EA + F91315EF42CF2D5983F1A38641AB2621049B4A9F6FFE016F3E392A3E60E1BB5F + 931BFAE7D16F0A28ADAA0E411860D933F7E198DDCBF70B3E29962DE969770D88 + 02B0D06BD5C848D641F47AB1A978179E9E34243EE083AF7E26E5D56EDC7E5D2F + 743EAB135C6E37AA6D4EFCBAA714F7DEDA3F04502AB614FD84FC7E7948310A30 + 1A0C38566343E1F77FA35BAA804923AE8D0F28FEAD9C7CFC7D19BA66A5232B3D + 0D39E7A6E0BCCE69FCBD1493C05F455FF38DBDBBE91ED92311F82412DA8E153A + 4DE0FF058D2A624CA35143AB69FE3DF67DCB893A941CACC1C1EA06584F9CC0F0 + ABBA6370BF5EF101A595C7C82B6B8A7041F7F3A1A74720D8853A087E0CBA3A97 + 7FC6404F6ABDA086A9A9C586476BCF8D7CFED8E3EC607825C0E591F80383EF76 + ED85D3A706F1FB2846E24F308E1E3A8CA9B7F7C3651767C507D4D4BBC8F44585 + E8D1A37B04C02F3A309002FC929F8E1BF95134E9D5104EF24490158AFD852445 + 562958219787251FD8F6FBFD74AE4BF8714F190CA60E1180CA7D1558F8F02D74 + 4A27C707B09578CC53AB49AFDC9E3C718320B40A60E5373455811DC5F0444388 + B08483E10A7BB69408A0A2B494B5509E5E4280198BD613535A3A3A26E923007A + 354DDE98C493370A3479BD161A5A01296C7AB02914FEECCB433450F9DCA1F343 + F437E7E0A5DB5E26E79FA397301E37FF6E4B40CDE12A14CC1E9DD8A50403BCF4 + CE1652EFD723B9A32904D0E90474EA60A427752AEDCD6A7EF459970886DDE1C2 + 11AB239418919A576CA72790649734135CBE0080F5766F13A6C6EE805B52C12D + 06D618967810E07636C2E87761CEE4A18903DEFF7207F9DD6C4306ED42E10023 + 7DCDE9960EA34E734A80B4E4A4D098E86D2ED3915A6720F118009BCD8E9E197A + 4C1ED93F7140D1AF6564FDF6BD38EFDC8C6840761A5D60B474EE6B4E19107EF4 + E3012C160B6FA143AEC94D1CF0F7010B59FCD1765C74617614E082CC4E48A617 + 7A0CA0A5E78120042EFAD8825779BCB1558081F67953525254F2AC7D069F91C6 + 02982BAB306DE455C8EB999D38C06A77F256DABBF7C55100B6BC1BB402BF4631 + D00A1885A69648E7364BEE6415088F24A391BF3A5C2ED85CA455404559395E7C + 683832CF4E491CC082B5D23E97E4C2A46D060CE8DB954F1B9D9A1E51BAAFA538 + 9D10F87C70010B2E58E1AB75CB167BC062C3719B0B9D6897B339443844A95540 + E95F7FF1169AF00D4D10C05A695AE72C7434EA630204819E033A6D042056F2AD + 0158B54E347820D136C93A502C8048A7A5E5A099B75036DE2640B095A6A726B7 + 0BC0367D61FB0C70C8EAA4FDDFC33B51F0048E05B0D737C2E06BE42DB4CD00D6 + 4AFF38EC4076466A14808549073E85D8F550A2D327086077580E8F2A0AD11260 + B1DA91738EC05B689B01C156DAA35B97088046ABE76BC0A9008297140CE09604 + 7EE9E0A6D3840543B404541DB260D895DD780B8D05F80765F4CFEC9A8E77DD00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_31_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007374944415478DAED99797053 + 451CC7BF495ECE426BABB6B44A4551A114D17A8C0ECA08025A90AAE02D3A722B + 321EA0A028C583D15114C4A320877881785075540E155B7150548EA258DB42A1 + 0D57A0A46DD236C74BF2B2EE6E9A3469D326B5EF2133FAFBE7EDDBBE24DFCFFE + 7EFBDD7D5B152104AD43A552215ADC3E6B1979237F3CAC8D5E2819CF2E5A858F + E74F892AA2B55E55670114551E168A009C0CF13FC0BF1DFF6D80194B8B659BC4 + E766246362EE00E8B5EA4E8D569701164C192C0BC087C5E5B0DA9CB83F2FA753 + 10270D40E1CFFB218A9E4E439C3400452566D4BBA44E43C802E0F1757D2AECAC + 3C06A74B8C809838E2027433EA3A84E812C0A34B369157EE1F2A0B40E5111B1A + 9C6204C4917A17A68EECDF21842C004E8F9FDFCF5AB2F11F899F3F351776A70F + F50D8E361087AC0D9846CBA93D882E013C5CF01D59F4C0B0104057C2EBF3D1EF + 4154882A4B3DE68C1D283FC0B445EBC89B0F8F94250315876D58BFB502754D62 + 9BBF8B2E270A1EB95E39807A9A7EB962E7DE1AFC526A46A3BBE53B9B1A1B4F0C + 40FEF26F6503193DF82294D3ACA8FD5E94EE3BAC0CC0030BBF2405D3F364CD40 + 78B869699A8FD6E1830DDBB078C60DCA03C899817993AF0DB5E72CDDA00CC07D + 2F7F41DE7AEC46C532108CD98BD761E9CC9BE40798F2D26764E9ACD1B0D83CFC + FEF9F736C926FAA97B8785DACF2C5B87658F8F911F60D20B9F92E5B36F090128 + 1573977C89154FDEAA3C8052193861004A856200139E5B4DDECEBF4BF10CCC79 + 632D56CE1D2B1F80C56A27DB4BABF1F9E63FC100CCB522948CE7161722EFAA6C + 0CC83A1BBDD39322C4C40D40FBC9963FCCD8F8E32E589BBCE89979062A2AF661 + 45FE5858EC810CBCBCEA7BD944CFBC7B68A89DFFFAA7C81D7C29769494F2FB51 + 83FA63C8657D982E555C000EB7972C5AB50975A20AE9E96948D0A979FFD66DBB + 2300940A0630FED6E1BCED9724EC2C33C36EADC1CC092390648ADC6647057875 + F5F7C44612D0DDA4E7F73A158156ABC196AD3BF1CEB3E370B02E5042AFAE2992 + 4DF4F43BAF09B5E7BEB606136EBB0E6A8D26D45747B7DDFBF6ECC5AC71D7C506 + 9838EF4392959D15D1C7B2C000963F7DAFF22ED40CC0221C62C59AF558FDFCF8 + D8008F2E2C2497E464F357BCF028D9B12B0240C90CDC734B2EB46A128260A5F4 + F9861FF1E61377C40698FFEE3764F8A01CFA490165D5352190EDBF6EC7CA7913 + 15772176BC3EEE8E51BCADD7AA9196A883E8F5627DF10E3C3569446C800FBEFE + 8554D4B871F3D5FDD0E3D453E072BB516373E2B79232DC73E3201CB507FE3F50 + F049B16CA2A7DD3624D4DE58F433060FCC41925180D160C0D15A1B0A37FF855E + C902268DBE2A3640F1B60AF2F1E672F4CC4845466A0AB2CE4CC2593D52F8DF92 + 4C02BF8ABE96F76277F32BA64722F04924D48E163A4DE0F7058D2AA24FA35143 + AB69F93EF679CBF17A941EA8C5819A46588F1F47DEE5BD913BB05F6C80B2AAA3 + E495554538A7F7D9D0D31108BA5037C18F615764F3670C7452EB05354CCD161B + 1EED1DBBF8FCD1FBD9607825C0E591F8FBF60F3BF6C0E95383F87D1446E20700 + 470E1EC2D49B07E2E2F3336203D436B8C8F40585E8D3A77704805F74602805F0 + 4B7EDA6FE4A368D2AB217470A0C612C57E429222B314CC90CBC3C407DA7EBF9F + D6BA849F4ACA6130758B00A8DA5B89F90FDD404B3A3136005B89EF7A7225E997 + DD970B370842BB002CFD86E62CB0510C171A8208131C0C57D8D14C3C00956565 + CC42B9BCB800662C584B4C29A9E89EA03F29006A0F55A360F69DF16D2518C04B + EF6C240D7E3D12BB9B2200F46A2ADE98C0C51B052A5EAF858696901456DF6C0E + 849F7D7988062A9F3B34C1457FCB207A69DBCBC8F973740FE671F3CF8603B89D + 4D30FA5D98337964FC00EF7FB595EC32DB90465D2808A0D3515BA3D7AC5EA930 + EA347CF499CD05C3EE70E1B0D5111246A49615DBE909884C494C08F589DE16CA + C3754E7E758B813586090F02D86C76F44DD363F29841F10314FD564ED66ED983 + B3CE4C6B0B90994217182D2D1DCD3F06602BAB372C131D01582C166EA123AECC + 8E1FE0AFFD16B2F0A32D38EFDCCC3600E7A49F8244BAD163005A5A468210D8F4 + B105AFEA5853BB0006EAF3A6848436E2997D068F18A30198ABAA316DCCE5C8E9 + 9B193F80D5EEE456DABFFFF96D00D25212919E6CE4002C8259880560A2CF1BE8 + B3AD011C2E176C2ED22E406579055E7C300FE9A725C50FC08259E9051766C3A4 + 8D0460FB1303ED639B2C26C828347BBA4FC5C5755442E1916034F2ABCD21C221 + 4AED0294EDDECD2D34EE179A2000B3D2941E19E86ED48700860CE8C9475CA7A6 + 2541EFB5343B3A21F07C70050EAEB8E1DB8DD616BBDF62C3319B8BBB9883CE1D + B7A48A0A20D2AC5A0E98B985B2FE4E0104AD343539312A8020D049ACD3460044 + 13DF1E00CBD6F1460F24EAF3ED01D81B9A60F035710BED3400B3D2DF0F399099 + 96DC2500D6F485DD3380835627F57F0FB7D2A0034503B058EDC83A5DE016DA69 + 80A095F6E975461B0016261D7809B10D5DBCE5130460AF880E8FAA0D446B80EA + 83168CBAAC17B7D068007F03C6A5CBEC84F7360D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_32_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000073D4944415478DAED99097013 + 5518C7FF4937376D6DD59656289702A5801687C14118115001AD0A9E780C2287 + 02A308088A52101D1C41393C0039BC1174A4EAA01C2A1671501C118A626D0B85 + 365C29256D93B6C9E6DCE77BAF4D48DA94A4765771F49BC9ECDBCD66FBFFBDEF + BDFFFBDE56450841D350A9548814F7CC594B562F188F0ABB174AC6C2151BF0F1 + 92C9114534D5AB6A2DC0EBB9E361ADFB170328AA3C241401B810E27F807F3AFE + DB0033D7EC926D125F9E9E840923FA42A751B7AAB7DA0CB074F210590036EE2A + 86D5E6C4A339D9AD82B86000F27E3C06B7DBD36A880B0620BFC08C1AD1DF6A08 + 59003CBEB64F8503A567E014DD61101346F6413B83F6BC106D0298B57A2779E5 + D161B200949EB6A1D6E90E83385D2362CAA8DEE7859005C0E991F8F99CD53BFE + 92F8255346C0EEF4A1A6D6D10CE2A4B516D3E8706A09A24D00D3577E43564C1D + 1E04684B787D3EFA1C448428B3D460DEFD03E50798B6622B7963FA2859325072 + CA866D7B4B505DEF6EF6BD5B7462E513372B075043D32F571C3852899F0ACDA8 + 739D7B667D5DDDDF0390BBEE6BD940460FB90AC5342B6AC98BC2A3A7940198BA + 6C0B59392347D60C84868B0E4D7345353ED8BE0FAB66DEAA3C809C197861D28D + C1F6BC35DB950178E4E5CFC99B4FDEA65806023177D556AC997DBBFC0093177F + 4AD6CC190D8BCDC3CF17BDB75336D1CF8E1B1E6C3FB7762BD63E35467E80892F + 7E42D6CDBD3308A054CC5FBD05EB9FB94B7900A532F0B7012815B20358AC76F2 + 4B61393EDBFD3BDECABD4FF10CCC7B7D33720665A16F6617744B4B0C13133300 + BD4EF6FC66C68EEF0FC25AEF45C78CCB70EC6819073057B9A1643CBF2A0FC306 + F5C3FE82427E7ECBE0DEB8BE7F0FA64B151380C3E5252B36EC44B55B85B4B454 + 98B46A7E7DEFBE43589F7B3F2CF6860CBCBCE15BD944CF7E6058B09DFBDA2718 + 7FD70DBC2DF9FD38506486DD5A89D90F8F44A231BC4A8D08B0FCC36F898D9810 + 6FD4F173AD8A40A3896B06A0543080716386421D1717BC564DABD6A3878F60CE + 4337450798F0C24692999519768D6561CFDE037867E1433851DD3084966FCA97 + 4DF48CB14383EDF9AF6EC2C377DFC4DBA110EB376DC3878BC6470798B52C8F5C + 9D9DC57748A151B0FF20D62D18A7BC0B518007EF1C018D9A0421D850FA6CFBF7 + 78E3E97BA3032C79F72B72C3E06CFA4B0145E5954190A6004A668001B0A01B7D + A42668E1F67AB16DD77E3C3B716474800FBEFC899454BA70C775BDD0FEE28B20 + BA5CA8A49BEE9F0B8AF0E06D8315FFFFC08EFC1F31646036120D020C7A3D2AAA + 6CC8DBFD073A270998387A5074805DFB4AC8C7BB8BD1313D05E929C9C8EC9088 + 4EED93F9778946811FDD3E0925C7AD7C2B586DAF87CDE945B5C3035174D1EDA2 + 444B633F5CEE7376AB13D43018F48DCFD041A7D3C164D2A17DA2017A2AB24FD7 + 14681A873B2BAB3D7E02CBD91A141EAFC2F1CA3A58CF9E45CE806E1831B05774 + 80A2B20AF2CA867C74EDD6053AFAF0800BB513240CBF268BDFA3A7939A893236 + 5A6C68B4F4D6C22745BECE3AC3EB07440ACDB6ABDFED3F0CA74F0D22F97847B0 + FDF3E9132731E58E81E8D73D3D3A4055AD48662CCD438F1EDDC20024B703C328 + 80E497E875038438158C3A3584F3BC8FA2DAC0FE84DFDFB08F663DEBA31F7664 + 217A98F886B6244974ACFBF1434131F4C676610065474AB1E4F15BE9904E880E + C056E2FB9E799BF4CAEAC985EB05A145002DFDE81BB3C07A3154681022447020 + C490371BB100941615310BE5F2620298B974333126A7209E8ED30B01A0EA6439 + 56CE1D1B5B29C10016BFB383D44A3A24C41BFF710097B31E0649C4BC49A36207 + 78FF8BBDE4A0D98654EA42A1003A35156F3071F106818AD7691047E7803F6482 + B2491CFAEECB43E2A0F2B938080BB7746E147869DBCBC8F97DB488F4B8F86F43 + 016C363B7AA6EA3069CCE0D801F27F2E269BF71C46A70EA94100AD96FA323D66 + 6624D30546437B3E8EFB7420EC0E11A7AC8EA030E23FB7623B3D0D2293134C0D + BD4D57566F08C8A96A273F06AC97090F00582C166EA123AFCD8A1DE08F6316B2 + ECA33DB8E2F28C66005DD32E4202F57206A0A159108486A28F2D786567EA5B04 + D0539F379A4CCDC433FB0CBCA18B04602E2BC7B4310390DD33237600ABDDC9AD + B477EFEECD00529313909664E0002C0259880660A4F7B345AB29804314611349 + 8B00A5C52578E9B11CA45D92183B000B66A57DAECC8251130E90146F40A79404 + 5A64A9F92466006C0152499EA8005A3AF442C5B3B039DC70B8FD2D02141D3AC4 + 2D34E60D4D0080596972FB74C41B746100ACC0D253285625B21E35088D8B924F + C57BF77C7320344C06035C74A573D0B9E3F2AB2202B869562DC7CDDC42D9F556 + 0104AC3425292108707DDF8EBCC7B56A3AA6E9B9860E2FADD0707FA08408940C + AC440844538B3D66B1E18C4DA49D21D07ACAD52280BDB61E7A5F3DB7D0560330 + 2BFDF5A40319A94911010481BA9056130610497C4B002C5B1535CEA0F8480016 + AB1D99970ADC425B0D10B0D21E9D2F6B13006BFA42CE19C009AB93FABF872E5C + 52D0422301949FB0E096FE9DB9854602F8139927D8EC0F3A9872000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_33_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006FF4944415478DAED990B5054 + 5518C7FFFB7E2010542094AF7C226A61E3D4588E1A566A6A8136E5A351F3918F + 29D3D2B224B3A626F14529928FB2F295A3F4B07C94AF74341D5F580E028AC2AA + B9880BEC02FBDEBDA7732EEC6517167789BB6A53FFD9E19E73F6EEB9DFEF7CE7 + 7CE73B17092104F5259148E04F2FCC594DB2E68F4789C989506A41C6066C499F + ECD788FAF64AFE7300CBD3C6C350F52F0608A9E55E0A09C09DA0FF016EB7FEDB + 00B3561D106D1177888FC284813DA052489B345ACD065832B99F28009B0EE4C3 + 60B460CAD0A42641DC3100D9BF5F82DDEE6832C41D03B03F47870AABBBC910A2 + 00385CCD5F0AA70BAFC362B5FB404C18D41D2D34CA9B42340BE08DACBD64F194 + 6451000AAF195169B1FB405CABB062EAE06E37851005C0E2E0F8FA9CACDDFFC8 + F8F4A90361B2B85051696E0071D55089E9743A3506D12C8019997B48C6B40102 + 4073E474B9683FF00B51A4AFC0BCD1BDC507989EB183AC983158140F14FC65C4 + CEA30528AFB637F8DE6EB520F3F56742075041DD2F964E5F28C5B15C1DAA6C75 + 7D565755DD1A80B435BF8A0692D2EF21E453AF483927722FFE151A80694BB793 + CC994345F580B76C746AEA4ACAB17ED709AC9C352CF400627AE0C3494F09E579 + AB768506E095453F90CFDF7C36641EF068EECA1D5835FB39F101262FFC8EAC9A + 9302BDD1C1D73FFA7AAF6846BF3B7680507E7FF50EAC7E2B557C80891F6F256B + E68E100042A5F7B2B663ED3BCF871E20541E101D406F309193B9C5F8F1C879DC + 2A0F3CF36847F4486887F671913EC6040D40DBC9E13F75D87DE80C0CD54EB46A + 7D1F2E5D2CC21769A342EE8179CBB721F9F19E389593CBD787F4E986FEBD3A33 + BB244101986D4E92B1612FCAED12C4C5C5224C29E5DB4FD20E1980AECC8E50EA + 8395D9189392CC9739B71BA7F37430194A31FBE54188D4FA26797E01966DDC47 + 8C240CE15A155F574A08140A198E9E388BB569A3A137D57860D1867DA2193D7B + 4CB2504EFB6C2BC6A63E01A94C26B495D3A4EFE2F90B9833EEE9C000133EDC44 + 1212137CDA9817EA03844A1E00266F88B59B7762E347E30303BCB1349B3C9C94 + C81F30BC9573EA0CD62D18872BE5355368D9E6FDA2193D73E41342F9BD4F37E3 + A51103A1901201824DA5EF771DC28AB75F0C0C90FED52FE4C93E49F49772E415 + 970A200C60CDFCB1A18F42B5004CF49C8CD80825EC4E27761E388577270E0A0C + B0FEE763A4A0D486E17DBBA2E5DD77C16AB3A1949E598FE7E461E2F0BE0240A8 + 3CB07DCF11F4EB9D84488D1C1AB51A256546641F3C87B651724C4C793C30C081 + 130564CBC17CB48A8F417C4C3412EE8F449B96D1FC77915A397FB5BBEA4E65B6 + DA038EC35DD397ABF6EAA97BA494D53C5B2E93346C934B413F50D13FECB8C97E + ABBF5181DCCB65B85C5A05C38D1B18FA487B0CECDD3530405E510959BC613F1E + 68DF0E2A3A029E28D442CE61C0A389FC3D6ABAA83997933E58461F5CD3A78B6B + DA61DFE572D7807232C86452581D6EFEB4F7DBA9F3B0B8A4209C8B0E8E9B3F7E + 5EBB72155387F746CF4EF18101CA2AAD64E6926C74EEDCDE0780B39B914C0138 + 3747DB35FC486A555201C0AF911CDB3D01B7BBCE4BCC431EEF58A9C1CEDA32C7 + 7174AEBB7124271F6A6D0B1F80A20B85487F6D189DD2118101D84E3CEA9D2F49 + D7C42EBCE16AB9BC51003605D4B51B1D7DB68FA1028497C11E59BD5E0C040350 + 9897C742286F5E5000B3966C23DAE8188487A9EE0880B2ABC5C89C3B32B85482 + 012C5CB79B54722A44846B6F3B80CD520D0D67C5BC49838307F8E6A7A3E48CCE + 88581A856E3780D1684297581526A5F6091E60FFF17CB2EDF079B4B93FD60740 + 25A5C66BC278E335726ABC4A01195DC46EAF08C45E3D7ABFFB721019242E9B10 + 5EED5CDD3476D2B2D3591B8D08CD821D36FEB7DE007ABD9E0FA1831E4B0C1EE0 + DC253D59FAED6174ECD05A00502AE9C642AF0FC4DD85089AE8A995322828845C + 5E93F4B10DAFE87AB5601871D7EDD8166A889AA635DAB0303E2D707A41B0F0E9 + 79C165B3D75E699B074057548CE9A98F20A94BEBE0010C260B1F4ABB75EBD400 + 20363A0271511A1E8089ED96C10068E9FD6A7A6F7D00B3D50AA395340A50985F + 804F5E1D8AB87B2283076062A1B4FB8389D02A7C01A2C23568131341932C29BF + 061800DB80249C23208052A1F0319EC968B6C36C77370A9077F62C1F42833ED0 + 780058288D6E198F708DCA07801E2AD02E2ECA07808D3E532000894CE9F32C1B + DDE9CC662B6C6E895F003BED577F59C78750D6DE24004F288D898AF0016019A2 + 9A7A85A5B96C4A68E4B5BBAA4BC24F8FC600EA4BA6505123092C565BA300A6CA + 6AA85DD57C086D32000BA57F5C35A3756C9400D0BF472B7EC49552BA28695D41 + D787525E73BFE71F1F9E9CC83BE1AB1F622FE98DB86EB4D29C9F13E6BF3F00BD + C184847BE57C086D32802794766E7B9F5F0096C869940A1F007FC63706C0BC55 + 52611146DF1F40F1153D86F46ACB87507F007F0308E8C7EC40F7465A00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_34_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000071F4944415478DAED98097013 + 5518C7FF393749696BABB6B4C82D426945ABC3C8208C6051B905C45150079043 + 90F1000445A8E7E828CAE101C8A17870E8483D500E1541181047E410A6F4A0D2 + 862B50D236699B6C36C9EEF3BD4D13B2A534A9DD088C7ED34EDEBEDDBCFD7EEF + FBDE77444308417DD1683468481E98B59C2C7D711CCE387D88A5BCBC6835BE98 + 37A94125EAEBABF91FE04A03782F771CEC355730404C350F9398005C0EF23FC0 + A596FF36C0F465DB553BC4D7A727617CFF6EE00CDA26ED56B301E64FEAA30AC0 + DAED85B03BDC983C24BB4910970D40DEAFC72008DE26435C3600DB0E5851C58B + 4D865005C0EB6FFE51D85F72166E5E50408C1F70235A988D8D42340B60C6D2AD + E4EDC939AA00949C76A0DA2D28204E57F1983230AB51085500DC5E49BE9EB574 + CB3F527EDE94FE70BAFDA8AA765D0071D25E8DA9D49D2E06D12C80A716FF4416 + 3DDE2F04D01CF1F9FD741D3408516AABC2DC877AAA0F3075D146F2FE530355B1 + 40D1290736ED294265AD70C17D817763F1D38362075045CDAF96EC3F5A8EDFF2 + ADA8F19C5FB3B6A6E6DF01C85DF1A36A20C3FBDC8C426A15ADE443FE5FA76203 + F0F8820D64F1B421AA5A205C3CD435AD672AF1D9E6BD58327D68EC01D4B4C0AB + 13EF0E8DE72EDB1C1B80C7DEFA867CF0CCBD31B34050662FD988653387A90F30 + E9CDAFC8B259C3617378E5EBD73ED9AA9AD273C6F40B8D5F5ABE11CB9F1DA13E + C084D7BF242B668F0C01C44A5E58BA012B9FBF5F3D009BDD49FEC82FC3B7BB8B + 110E102B0B3080413D3AA15B467B744C4B54281335009D27BB0E59B165E741D8 + 6B7D68DDA615CAACA7F06F59A06F8F2CEC3B902F5F0FEE9D85BEDD3B33BD3451 + 01B83C3EB268F556540A1AA4A5A522CEA895E7FFA00B7E983B3AE61698FBDE7A + 3C3C3C471E4BA288FD055638EDE598F9E800245A94355283000BD7FC4C1C240E + F1164EBE366A080C065D08C05A212096F2CA923C8C1EDA075A9D2E3457496BA6 + BF8A8F62D6D87B22038C7F752DC9C8CC50CC312BECD97B182B731F82CD19B0C0 + 5BAB7F564DE9990FE784C6B9EF7E893123EE94C7E1102BD76DC29AD7C6450698 + B1208FDC9A9D29D7E7E172E8CF7C0540AC84018C1E960383968420982B7DBD79 + 27DE7FEEC1C800F33EFE81DCD53B9B7E538F82B2F210C8817D07B1EAE5B13851 + 1970A185EBB6A9A6F4B4517786C62FBCB30E8F8CEC2F8F699B89D40423049F0F + 9BB6EFC39C090322037CF6FD6FA4A8DC83FBEEE88A96575F05DEE341396DF9F6 + 1E2AC6F861BD621E8536FCB41B7D7A6623D1AC87D964C2990A07F2761C41BB24 + 3D260CEF151960FBDE22F2C58E42B44E4F417A4A3232AE4B44DB96C9F2BD448B + 5EFE14FC128A8EDBE546A4D2590B87DB874A97173CEFA1CD8A440B33111EE1FC + 61E7F45A98CDA6BA3538701C87B8380E2D13CD3051256FE994127A8E756B5E91 + C076AE0AF9C72B70BCBC06F673E730E4B68EE8DFB36B648082D233E4EDD5DBD0 + A1637B7074F160146AA197D0AF47A602C4521762C3A5B19ED92F5D788F6D06FD + 835B10E566E9977DC570FBB520925FDE08D6BD9D3E711253EEEB895B6E488F0C + 5051CD9369F3F3D0B97347058024B89043012451A2F36614969E86D9A8C35571 + 86C062BA0014673040A03B084959F41191EEACA4854B90E0A53EED6656A20A7B + FD22BA7668054992A8AF8BD87DA010264B0B0540E9D112CC7B722875E984C800 + 2C138F7EFE23D235B38BACB849AF6F1040AFD3C048FF4D7556A0EF862806DA4D + E602A15DA7E3F06B267C585FEDABBBD718404941010BA1B27A51014C9FBF9E58 + 9253104FFDF47200A8385986C5B34745574A308037576D21D512878478CB2507 + F0B86B619678CC9D38307A804FBFDB430E5A1D48A551E85203381C4E7449E530 + 7144EFE801B6FD5E48D6EF2A46DBEB522F3980CD669343E880DB33A3073872CC + 46167CBE0B9DAE6FA300E0B45479739CACBC594F95E70CD0693510C3C2230BA3 + E1BF7D79890E1ABF4706612248E7CFA18F8E7D8C5C7E8E96F15E8FFCDD70006B + 6919A68EB80DD95DDA440F6077BAE5509A95754308C068A499917EA62627202D + 89262063A0D062D952DE559AB14BCFD6861423E2F98CCD42A6853ECF9216AB6B + 7C61102E9E87830FE8114C7E4CF12040496111DE786208D2AE498C1E80090BA5 + 37DE94098B410990146F46DB94045A6469651762002C0169246F440023CD11E1 + CA3371B8049A1BC48B02141C3E2C87D0A81B9A20000BA5C92DD3116FE61400B4 + A940FBB4240500DB7D269100343AA3E25D1E9A825D2E1E1E51D3208040D7B51D + B7CA2194CD370920184A53921214001C674487D41654714E0630D0B3E0AB2B1F + AC763EE422F501E2CCE60BDEC5D37937AD9F2E06E0ACAE85C95F2B87D02603B0 + 50FAE74917DAA426290168896BA26EC5EA74E6D3667D600DDEAF9195BF9805EA + 8B965A43A2CF04FDBF21009BDD898C6BF572086D32403094766ED72A04D0B75B + 6BD9658C5A911E627A36E80137EA03CF078BB860C1C68AB4A0D40FB1C76C0E9C + 75F0B469911A05283B61C3E0EEEDE410DA10C0DF4F8ED7EC6DF46A8600000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_35_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006B94944415478DAED98777014 + 551CC7BFD74B4862A22624F41A42020A0E03A28C20A8B4509D5182338A1429A3 + 08088A101BC38C863A42408A952623B1204D05220C08231D2624814072B48370 + 49EE52AEDF3EDFDBDC5D6E9383BB337B04477EFFECDB77B76FBF9FFDFDF6F77B + BF95104250D7241209FCD94B73D692D51F8EC34D9303E1B48F976FC4D6CC497E + 45D4D52B7900F000E01E03ACC8180743E57F1820ACCA7D2C2C00F7833D00686C + FB7F03CC5C9323DA4BDC3E3106E30776854A210DE969351860C9A4BEA2006CCE + C987C168C6E4B46E2141DC3700D97F5D86CD660F19E2BE01D87F4A87728B2B64 + 085100ECCE86BF0A270B6FC16CB10920C60FEA82261AE55D211A04306BF55EB2 + 78727F51000A6F185161B609206E945B306570EA5D21440130DB39FE7CCEEA3D + FF4A7CE6948130999D28AFA8AE0771CD508169349CEE04D12080E9597F90E553 + 0778011A620EA793AE03BF1045FA72CC1FDB5B7C8069CB779295D3078BE28182 + EB46EC3A5280B22A5BBDDF6D1633B2DE1E123E8072EA7EB1ECE4C5121CCDD5A1 + D25ABB665565E5BD01C858F7BB682023FB3E8E7CEA1529E740EEA5EBE10198BA + 743BC99A9126AA077CCD4A435377B30C1B761FC3AA99C3C20F20A607164C7CDE + 3B9EBF66777800DE58F433F9E29DE161F380C7E6AEDA8935B347880F30E9B31F + C99A3923A137DAF9F385DFEE154DF4BC570778C71FADDD89B5EF8E120F406F30 + 91E3B9C5F8E5F005AC9BFBA217205CF6C1EAED18D2AB03BA26B741BB84688198 + A001E83C397456873D074FC350E5408B96CD50ACBB2E000897071840BF5EA938 + 712A973F1FDA2715FD7A24315D92A000AAAD0EB27CE35E94D924484888478452 + CACF9F3C77F19E79203DAD0F3FE65C2E9CCCD3C16428C1ECD707215A2BDC62F8 + 0558B6691F319208446A55FCB95242A050C8709C3E912F33D2C3EE81F92BB621 + 7D585F486532EF5C19DD725CBA7011735E7B2130C0F8059B49724AB2608E79C1 + 03A02BAD5FFEC5B44F5665F300CC7C21D66FD9854D0BC7050698B5349B3CD12D + 85DFDEFADAD933B9589F31167A538D07166DDC279AE8D9AFF4F78E333EFF01E9 + 23FA4321255E08164A3FED3E8895EFBD1C1820F39BDFC8737DBAD12BE5C82B2E + F182D4050897790098D12E0DF1514AD81C0EECCA39817913060506D8B0E32829 + 28B162F4339DD1F4E18760B15A51423BA613B9973171F893B85A561342CBB6EC + 174DF48C31CFF247B94C821D7F9E40EFEE9D10AD9143A356E366A911D907CEA3 + 758C1C13463E1D1820E75801D97A201F2D12E39018178BE4E6D168D53496FF2D + 5A2BE78F36676D4FC0866C19978B83DD55BB9ED3255C9B89AB6B4AF79CDA9DE9 + 547229DFECB075F4B7CB917BA514574A2A61B87D1B693DDB6160EFCE8101F28A + 6E92C51BF7A36DBB3650D127E0C9424DE41C06F44AF18258AC36C8E532C8DDBD + B8930BADD5743A5DFCD1CEC978800ADAD0B05EE3F0A90298EC3210CE4937782E + BEF9B971F51AA68CEE8DEE1D130303945658C88C25D9484A6A2700E06CD5E8EF + 06502854D0D29B6A953457437A67913EDEE1C5BABDC2BCC3C6162AD8E19EE338 + 8EC6BA8B02E443AD6D220028BA5888CCB786D1908E0A0CC02A71FAFB5F91CE29 + 9D78E16AB95C00C051312AB506F94537A051CA68183061B5D7DBDC6396399859 + 5DC2F5AD3E2DA9DDED85CE6D9BDD15A0302F8FA5505E5E500033976C23DAD838 + 4446A8EE08C0629AC5B0277EE9BDEB3D69DFA7ED6B161F88603C507AAD185973 + C704B79560009F7DBD8754702A44456A1B1DC06AAE8286B360FEC4C1C1037CF7 + EB11725A67443CCD428D0D60349AD0295E8589A3FA040FB0FFEF7CB2EDD005B4 + 6A1EDFE8007ABD9E4FA1839E4A091EE0FC653D59FAFD217468DFB2D1017445C5 + 9836AA27BA756A193C80C164E653696A6A4701804A4AC56B2278F11A3915AF52 + 4046EB80CBA706B04F8FBEDFBEEC440689D3EA2D6C36AE369138E8D8E170D703 + 42FB10BB95BFD617A030BF009FBE99868447A2830760C6526997C752A055D400 + 2895B4B4D3634CA406ADE2A2E8264BCA7B80957B5680249C1D45B7AABCC288AB + 76CF64A642B42CE52A14FC6FBE66ACB6A1DA9D7BADB69A6D0A13EE01C83B778E + 4FA14137341E00964A639B262252A31200D0A6026D126204006CBFC42C108044 + A614DCCB4A2B5D75B585D60A895F001B5D577F45C7A750361F12802795C6C544 + 0900542A25DAC637A1C2553C80828692C3FDC55A67B0F005CC1F40844653EF5E + 163A6FB658EF0860AAA882DA59C5A7D09001582A3D73AD1A2DE363FC02A86838 + A89532C1B5A10030F11CFD8FD152ABA12E80DE6042F2A3723E85860CE049A549 + AD9B0901E81E5D4DDF0BD668A869F868E4356B589C12EFF6C11F405D93D2700A + 04507C558FA13D5AF329D41FC03F2BA7BEECAA869BC90000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Recycle_36_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006E34944415478DAED980950D4 + 551CC7BF7BFE771714A102C113F0E0D2C2C6D130271DAD84C4B3C3B099328F3C + A64C4D2753BA9C660A8F981409B553B42C991AEF4A251D4B276F1D041485F55A + C4057639F6DEFFEBBD3FECB22BE02EB11B36F91B98FF7B6FFFFBFEBFCFFBFDFE + BF63458410DC292291082DC90B4B3690ECF7A6A15C6F15E6593FE4C35732EFF9 + 91CEF10799B9D89631AB4525EED457D41E007FC97D80FB00F732C0DAF469D0D6 + FE8701FCAAB98BF805E05E90FB001D2DFF6F808539F93E7B89FB440463FA9881 + E064E2369D56BB0156CF1AE11380ADF945D0EA0C989D9AD826887B0620EFCF2B + 309B2D6D86B867000E9E56A3DA686F33844F002CB6F6BF0AA74A6EC16034BB41 + 4C4F1E8040A5FCAE10ED025894BD9FAC9A3DCA2700253775A83198DD206E561B + 312725E1AE103E0130587861BE247BDF3F523E63CE18E80D3654D7D43783B8AE + ADC13CEA4EAD41B40B607ED66F2473EE6827407BC46AB3D17DD02244A9A61ACB + A726F91E605EE66EB26E7E8A4F2C507C43873D478B5155676EF6B9D96840D69B + CFF80FA09A9ADF5772EA52058E15A8516B6ADAB3AEB6F6DF0148DFF8ABCF4026 + 8E780445D42A62DE8A82CB37FC033077CD0E92B520D5A716701513754D757915 + 36EF3D8EF50BC7F91FC097165831F329E77879CE5EFF00BCB6F267F2F95BE3FD + 6601872C5DBF1B398B27F80E40A3D593130565D879EC3272964C84466711D63F + FA66BFCF945EF6F268E7F8FD0DBB913C380A036323111D1EE4A68CD700749D1C + 39A7C6BEC367A0ADB3A247CF6E2853DFC0C6A5CF3A01FC25EF66EFC0C8A10938 + 79BA40988F1D9E809183FB33BD445E01D49BAC2433773FAACC2284878721402E + 16D64F9DBFE406E02F0B3080B4D4E1C298B7DB71AA500DBDB6028B5F4D4690CA + 3D43B708F0E99603444702D049C50973B9884026933403F0A705A6A424412C91 + 38D7AA68C6BE7CF11296BCF2B46780E92BB692D8F858B735668513D4A45FA4A7 + F9DD02CBD76E47DAB811C2D81562D3777BB0E5A3699E0116ADC9238F26C60BD5 + A1AB1416140A00EACAE6E9DF97F2E1FA3C3C3776246462E28460AEF4D3DEC358 + F7F614CF00195FFF429E1C9E48BF294561598513E4DCD9026C4A9F0A8DBEC102 + 2B730FF84CE9C52F8D728ED33FFB1169131AE6B4C941586739CC562BF6E49FC4 + B219C99E0136EF3A468A2B4C98FC441CBA3ED00546930915B4E13859700533C7 + 3FE604F097ECFAFD249206C52048298552A14079A50E79872EA077B01433263E + EE1920FF7831D976A8083D224211111A82D8EE41E8D53544F82C482515AE661B + 8FE2AB5AA10CAED2D74167B0A2AADE02A3D1444B659E96057698CC4DAEC649C5 + 502A158D7B70E0380E01011CBA0629A1A04A0EEA1BEABC8FF50A163B81E67635 + 0AAE56E26A452DB4B76F23754834C624C57906282C2D27AB720F222A3A121CDD + DC118502A53C460F8D875C6CA727C3414A5B58B9B4E5ACDD5AD766E39BAFB3C3 + 605243FB0156AAFF71BA187A8B0484B70907C17A879BD7AE63CEE4240CEA17E1 + 19A0B2C64816ACCE43FFFED16E00BCB91EC9C31284D391C9381495DE84522E41 + 970059C3669206EB703219CCF41EF0EE2507B1D393E5C5A837F3B0509F36302B + 51852D363BE2A2BA81E779EAEB760A5004852AD00DA0F4520932DE18475DBAB3 + 67009689D3DEF992C4C5C7088A2BA45227C0286A01260C40D598E0148D577690 + 365B53B7C64085F5C6AB63CEC44AC78E756BE3F56E002585852C840AEA7905B0 + 70F576A20A094527EAA77702F0769E5A46E9B400FDA3CAB9B844E398853E2626 + BBFBFE269796949D3E134F16A8BC5E86ACA52F7A574A30804FBEDA476A780E9D + 3BA95A05904AE83B40FF1D16A0CF86DDCE373B6D76D2AE73264617084F163019 + EAA0E48D583E33C57B806F771E2567D43A84D128D4D1003A9D1E31611C664E1A + EE3DC0C1BF8AC8F62317D1AB7B58870368341A2184260F8BF71EE0C2150D59F3 + FD11F4EDD3B3C301D4A5659837690812637A7A0FA0D51B84509A90D0AFC3014A + 8A8AF1F1EBA9087F30C87B00262C940E78381E2A59130027A6CA2B0304E59534 + 892938192434A1D95D12144B62AEBF7D598804229BC91936CD7C5324B4D2B1D5 + 6A6FBC8F36521693F05D5780C2F3E78510EA7543E30060A134A46B043A293901 + 402EA7B509BDD2A60291E1C1B44A140B1660F50AAB979894DEAA732A46EC4D35 + 134B5A2A1A6F4512B9DBB34C346FD4D71B69A86D78A6A3FC608A330033DD5773 + 552D8450B6DE260047280D0DEEEC06C071724485050AE5040390514B581B4B07 + B5D628C4FF96000294CA66CF32D27503AD9F5A03D0D7D44161AB1342689B0158 + 283D7BBD1E3DC3825B04602583422E71FB6E5B0098F23CBD47676CD2E14E008D + 568FD887A442086D33802394F6EFDDCD1D80D6E891A181B48A543603606537AB + 753CB910731D42DF1B4F0065D734183BB8B710425B02F81BC37FDEEC02600E29 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_37_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006814944415478DAED980B6C53 + 5518C7FF7DDEB603C6A66E30DE0CD9137490051D2E4040DD2683003E104D14C7 + 08B028024244C01721510424813101C50703C5B098202F15981014026EA0646C + 6383AD30E81C1D6BF7687BFBB8C773EFDAAEDDCADABA96CDC8972CF7DCB37B6F + FFBFF39DFB3FDFB9224208DA87482482A77861C50EB26B6D16D4F52C82191F6C + CEC7BEF5F33D8A68AF57E42F40DE7B7351ABB708E7B9DF17064C74CEF393EE3D + 40B0E23EC07D809E0CB065CD5C689BFEC3004155EE124101E809711FA0BBE3FF + 0DB0747B61C05EE2115161C84A1B0D4626F66BB4BA0CB071FEC48000EC2D2C83 + 5667C082CC24BF207A0C40C1EFD7C0B266BF217A0CC0890B6A34186D7E430404 + C06CEDFAAB505CF9370C46D60D222B7D147A29E59D4274096059DE31B261C1E4 + 800054DED2A1D1C0BA41DC6A3062614662A7100101309839E17C45DED17F257E + FDC234E80D563434B67480A8D13622874EA7BB4174096071EE2F64F3A2294E80 + AE84C56AA5CF8147882A4D0356BF941278809CCD87C8D6C51901C940F94D1D0E + 9F29C79DE68EFB6BD66840EE9BCF040FA081A63F50515C5187B3256A3499DA9E + D9DCD4746F00D6ECFC39602033263E8A329A15316741C9D59BC10158B4E900C9 + 5D9219D00CB886894E4D75ED1DEC3E721EDB964E0B3E402033B036FB29677BF5 + F6238105D068F5E48F926A1C3C5785CFDE9A1EB40C3862E5B643481B3B14A3E3 + 8621BA7FA89B189F01683F39FD971A474F5D84B6D982418307E07A4D2DB6AF98 + 018DCE2C5CB7EEEB630113BDEA9529CEF6FB3B0E6142721C8A2E9408E7535313 + 31293986D725F209A0C564219BF38FE10E2B42FFFE9108918B85FEE24B15D8B9 + F2592740B0E2DDBC039893992AB4399B0DC5A56AE8B57558FE5A3A4255EE0B9C + 47804FF71C273A1282DE2A4638978B08643249078060658007989D9102B144E2 + ECBB4317BCAB572AB0E2D5A7BD0364ADDD4BE212E2DCFAF82CDCCB0CF0007CB8 + 427CFEED61EC5937D73BC0B24D05646C5282505CB946694929BE583327E81958 + BD653F9E9B3A0932317142F053E98723A7B0F5EDD9DE01D67FF51379323589DE + 294569759D13C40110ECCFEB1F6E2B1000F8A07B0444F69183B55870B8B008AB + E6A57B07D87DF02C29AF3361D68478F47BA02F8C2613EA68BD5E54720DD9D31F + 8746DF9A814FF28F074CF4F297273BDB077F2D42CA9858842AA5502A14A8ADD7 + A1E0E4650C0D9362DE8C27BC03149E2F27FB4E9661505404A222C21137301443 + FA850BFF0B554985236B75AF482D36C0666BED33DBBCEF17E492361D12891832 + FB5467A462A1D4E69FA1B9DD8092EBF5B85ED704EDEDDBC81C178DB49478EF00 + A555B56443FE090C8F1E06868E80C385FA32041393E32117DBE8C83034332CA4 + 5209A4F69DA095F36FA363B5DA5A81390914D4241A6939CD57BABF5D2887DE2C + 01E1ACB4BCB009A5F7AD1B3558382B056346467907A86F3492251B0B101313ED + 06C0B12D481F9F288C8E4CC640457F54615F233A15CAF162DB32C6DF6FA57FFC + D1682FCD2DB4CD711C9DEB360A500685AA971B40554525D6BF318D4EE93EDE01 + F89578CE3BBB487C42AC205C21957A0428ABBA05A55C42A7032FAAED7ED6DEE6 + 9D830F93CDFDF926970D91D99E85F8E1033A05A82C2DE52D5490E713C0D28DFB + 892A3C02BD43183780C98F2508D73832C087230B9E465AE8B71F5DDF0D8B3D0B + 8EB600DC09407D4D357257BEE85B29C1037CFCE551D2C831E8D35BD50180A32F + 2BA350DEB30C980CCD507246ACCECEF01DE09B1FCF908B6A1D22A90BDD0D404A + 9D8477134706EEE6448EF9EE1A4617086F19D0E9F4888D64903D33D5778013E7 + CAC8FED35730646064B70368341AC142D3C727F80E70F99A866CFAEE341E1E31 + B8DB01D455D5C899390E49B1837D07D0EA0D829526268EEC7680CAB2727CF47A + 26FA3F18EA3B001FBC958E7A24012A59F702945EBA2458A8CF1B1A07006FA5E1 + FDA2D05BC93801183115AF0C11C42BA5543C238384AEC436975598FFF4E8FAED + CB4C2410594D4EDB64B9362BB7D0B6C5625F9109DD099A4DC2BD0E0096D6619A + EB6AC142F96BFC0270586944581F01402EA7C5153D328C1CC3237B09E5049F01 + 1905B1D8BF97AAB546C13E7961C4D6B66F30D0910C512A3BFC9691F61B8C266A + B5ADBF69625B2B5D7EE479007D633314D666C142FD06E0ADF4CF9A160C8E0CF3 + 08C0C86474FA48DCEEF5078017CFD16B74C6360DED01345A3DE21E920A16EA37 + 80C34A63860E7007A035FAB0885E50D0F7A03D005F76B7B09C470015BD562491 + B70AA42B36A1D3CE1B40F50D0DA6260F152CD413C03FA444CAEC51A401970000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_01_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006B34944415478DAED997B704C + 571CC7BF77EFBEEE86C83669C883486204A9474CBD5F832922615AB4558CC7B4 + A355AF52A5EA0FD33FDA3F0CA39D16532D86D6631019E421D4B38244319A41A3 + CD86C81B9BDD2476EFEEDDBBB7F7DC48DA60B3C76623747C333B7773EF6FCFFD + 7EEEEF9E73CFEF1E469224BCC8625E023C6F0082E890727E998AAAE2CB540D18 + 23FB62C08C3DD0B03AE6B900B872688914D4DE88E87EF3A81A28BCB809968A2A + 244C5CDFFA00C57907A4FC335FA2FF94A990C0828148D548EEFE3D881BBE1A91 + 3D273D73880680DAFB0552F6F60948484E06D7CEA8ECD3B16EAA462C662BAEA4 + A561C8ACC368131CFB4C211A004E6F4D9622E382D131AEAB4F0DDDC9BF89EBA7 + 4EB58849D2CF86CE4A7DE285690038FC559434F6C3B9CD3A91D3C5B708C0C92D + 3B3061D56DDF015ACA98DF0146BE3FB3558D361B60D8DB49AD64D1F36827B12A + 9CDD934107D04AEEA944053061E5EF90C4EAD6F6FA98D2D68CA203485E7E02B5 + E6BD4D3646FB6CF0A7B27ED84C0790B43C0B2E6BCA3331F534231B7527F615A0 + A587596A80F1CB5221D664B6FAB8DF2C007B556A8B19C93797E15C69296E592D + A8B0F308548BE03401E8111C82C11151E8D446DF28BE467063C1F14C982A2A71 + F9F37B8ADFA60196EE86DD9AE917B38CF46F16330A4DD874F5328A1ED4406FD4 + 43AB5783D5A91A8E8B560635D65A740D0CC6E2843E18121E816AA70D0B4F9CC4 + 7D1D87F2F2529C9B770D46EE95A60112976C035F7DD2AB215A15D5F258762A03 + 26A71D811106E803B58FC568553AE8357557DE6671A0F45639E20D41CAFFC47C + 7CAFEE387EF4383D80C34F19C82E2DC117674FC31DA241DB300324B704B74B82 + 4ACD8051310DE659955AAEE6D4D0B39CB24FA7E65076BB1C6E07D02D3E0EACFC + 24A60618B778239C35A79A6DFE4E8D196FA565A04D270EA2C30DBBC509C1EE44 + 904607B75B44B5E842A0B11D8C1DDAC110A46B649E482F6F358C5631AF63F5C8 + C84CA70458B41ECEDAF35E0D32B07B3CE6B089987CF4082AB502F82A1E632223 + F04E5C1724848641F3F0B6AFB4F1482F2CC096BC1BE04283111EDBBE9179B58A + 953F1AF923F71546FD14000BBF86F0C03B40535A77E93276DC2C801A2AAC1D3A + 08233B867B8CB53A782CFFED1CAE391DE8D1BB9B62BE0E42DF605EA7D223353D + E5D9019091E37459057E1A3D02FD3B84798D2710A30EA4233A2E1AE111E18DCC + 932C68580D520EEDA30458B01A828DEE758A27F1821D16871D61019CD75812B7 + E0442ECAF53A748FEFAE982722F77DBD7902B2F7E06E3A80B1F396C1E5C87F24 + C0EED5882F22E6A71F390F47A0A149F3241BBB527FA60318F3D12279F8BADE22 + 861FD58CCCD3CA95EF1CD3191C57972D32F21019B406058295FF88A8FB00A989 + 45A7C9EF6619381FDBB7F4CC1FC8ADB8E7F13764B8AD5728EFC6919595754D35 + 05406A62D65DEA93A196D4B16D67E8267343C6F7875BF05491B9BC9EA8C625C0 + 41F1322F482B8FF38CCA7BA02C954A427656011D00198518C9E6D3559A9DB615 + 972ACBA862F57A032EBCFBB1FCA4D551440BC8DCF0CDD364C0EC13C098EC6B18 + 377E0A38B903BADC2E88920B8228C8DF4956EA2682BC5C67149698602BA840EA + 80AED459387FEC6F3A80C4F99FF9649EA8DFAEF5481C9D088D5AEBD97C4121F8 + B2FBD837E903841A02A8DBA6CEC0A037BAF80C509F01953C01AB374F404836EA + CD4BA5E5D8D82716213ACDC3930B1EDB2BB2BBC0C9B3D4504E4DDF0712E77FE2 + 33C0C0ED6B31624CA2327771B8F946E6ED763B72B273B077E21CF40A0DF7DAD6 + 5F774D9874783F384642EE9C157419B8B06BBA74B7F0ACCF002B340F9038E14D + E5FB7FCD13F12E3BCA2ACA50955784996E3D6225D6633B058C88CD6A1E2E1D8B + 5EF278324B8E7F357A28064EDBD9344073D5EFBB6ED26079F6A9D6B3CA7D2F8A + 6E089253314FE490B7E6FB1614E597606C4C12A625CC46BFC801CAD2944D7820 + E5149D434ADE6E6499D26108D1426B0DC0E1D927D1A16D5893EB0D7E05787D78 + 5FA508A9374FFA01C984E321042FDAE5FEE142E59DBB0D458E285769AC5CA569 + 382DB8202D34016A984D35D83E791F06470DF7BA58E25780DEC35E53266537F2 + 6FA0CA62416C7C54C371625ED90A3C9CA45E7C826C66B9BFDC11B12E6903C676 + 4DA65AE9F13B4089A914A299C1F0E891D87EF54784B60F8131AC1D189DE4D13C + 5FED4475890D1D75D1589BFC3D7A7548A05EA6F22B4060780084BB120ECEFA55 + 9939165B8BA46FB3D720EDCF14799ECC28B7081179A5426A6527EF52CACE98A0 + 38CC1DB000537ABEA7787A9AF3FA0D6055D6A7525EF9156C9EB4F3B18E47D69E + 2F16E7E052712EACBC45AEC22C2406E16D2331286A183A1B637C5E18FCFFADD4 + BF687A09D0DAFA07A8BBE5CE489863C50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_02_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000076F4944415478DAED997F5054 + D715C7BF6FDFEEBE5D7EED0F8274375A044C3660C22806534CA1468929084D3B + B163326642269949CB686C6C48A6A935998EA57F349D692663CC34198971945A + 1363128DD6A402ED48104D415196C50A08141622EC6FF6C7DB1FB7EFBD8D4684 + 5DDE221BE24CCE0CF3EEBB6FF7BCEFE7DE73CEBD97A50821B8958DFA0EE0DB02 + 4051947065035ED2B2F75158FFD72ACA81667E3EEE7B7C3FE45205F54D08BE71 + C02701B47EF41C51A76B90595025CA61EF9937611BB122FFE1D7E61E60A0FD20 + E9FAF7EFB17CDDA320A0412128CAE9E9F7F7C350FC0A16E43D1277888800AEB1 + 6ED2F46E0596969743A9D2087D0C1D12E5D466B1A3EDC811DC5F7918C9B72D8A + 2B4444807FD59693F986542C30DC3923C7035D17616C6C8C8B683ECF8A9EFC90 + 8A0A70B826833CF48B676EEA455C01880B40C3AE3DF8C9EFFA670E102F61B30E + F0C0D34FCCA9D09B0628FAF9DA399218B9DA115A8293FB8F8A039823F5A24C14 + 40C54B5F80041D73AD75921DF9D32A7100E52FD6C3653910D599D8B56136EDF8 + 5FDF1207B0F6C5E308D80F7E23A262A96CA29378A600F12EB3A201CAAA0F21E8 + 3C36E775FFA6003CD6437113E20F7A70667808034E1786C65D429F9A51C0A051 + 232F4D87649964CAEFD5D71E1009F0EBBFC1633F362B6229F2F52C9AAC56D475 + 1A71B4AF97AB021468850472855478C67A03087A43F07B58ACD42F40D59265B8 + 4BA3991940E99677E075344C2B48ACB121823F9F69C6DF2F7521459784845405 + 68F9D4A32C973070D89CB0F438F1A0FE7BA8295801794292F0EC40ED7E9CC82E + 00235560D7BABA09BBDD4900BE599A0107EBC6B3F50D30851C484E5722E00D22 + E80B97609A918049925F83E1C5D3122964747856062F9BA1B402AFAF2AC1458B + 19DB3F6F812E3B0323FDA3B8B0A52F32C08F7FB513ACB37156C46F387A14E690 + 4FB84F0C5058A14B47468A0AEE20853EBB154DC3C3A055346ED36BA0485408E2 + A51219A4945480B97265147D9DFD502A1391977F37282F0D47BF0B1F57D64701 + D8FC17B0AEE6690552F0447D5ED3D2160E1B4ED40B05CB509699891BF3D3CF4D + C6DECE0EEC6837416FD0419BAA16FA19A952B84A3908A7CD058D9603E44267B0 + DF8C45C8C1AB653BA2003CFB47F8C7A70798CE1A0686F0C17FBBF0FCB2A558A8 + 5247FD6CE7D8101EFFB419D94B32A14E0927AFE22B0819C58519B799E361CE9D + 3D8F677237E3B12595F1078819B8BF07D55F9CC5B2FB965E13CF8FBA302374F8 + DAF079037694BC831519C5510036BD02BF5BDCBF532219453C317FE74D2E8CDE + 36F620BF309F8B79E524F18C4481F73E790FA7AB3AA1516A23033C54558D80AF + EBA6058935A3C58A979BCFC1CCE5474EEE5D484E4C0A2732173234154E6A192D + 83C7EF4653FD29B46CEAA0A2AE036B7EB919219F316E82AFB7FA0133AA9BDA90 + 69C884FE76FD8478BF5E3CDF1EB9320CD7652FF63D76889AF64C1C647B665D2C + 057652DFCEF61E216C54DCAAABE1123D41AD142A8E8A514F10CF039D37B5234F + 7E2FB695D450D39E89E9D0D08C04957D7492ABFF2C72B42A64A528718746CBB5 + 9385B6523AF5EADB611947AFDD81F3A356F4383CB864B563341010805235A9D0 + 2469A14A4F81A9A30B5B96FC160F2F5E171DE0FEB2E508F9239DC80211812EBA + DCD868FA12A5AB4B61B15A30621981CD6613FE9C6E3BBECF30C84A6460485622 + 43C9A0409B8464A96C4A5FCE801F97C77D303A3DB8ECF6A1DBE5C1B0CD830F36 + B64397A28F0EC057218AB8630E914F7B3BF06AE769AC2A5C8D4088DB9C9100B7 + F3F4736DBFD0E617248BCD0A87C706CB880D8BB9157977F95322BDFB71EC8DD7 + C46DE6C2336089196067CF102EA832907367EE24F1025090DB6D1216438343E8 + EDEAC5A68569583F3F4DB4FFE6CF2E89DC8D6E7C2166F1BC3D79A4164C561674 + F3F4538A77FAED309E334147186C2F5E8B3CEE73B198E819287C70D18C002A4E + 99B0BC680DA40A5AB8F705C35B6F2F77B2E3619A1A4FE1A7F3D4F8CD1DE920D4 + D7B14F11FFB4BE296E3FD574BC5BEC0C3C17B3788FCF8BFC7DDC0895564C121F + BE7A70F1DC2554E817E1A5C292190D90A8193855B7815CE93D19B3F36E2A8877 + D50C7EB4B26842BC5F152F4071D70BFF31618D9DA084C8A3FAF3826097C40B3D + 24F8598811FAD2327F88C20D75D101AEFE4213ABD5B5ED266F195FC7E2BC1C61 + D4F9449DA74B1360AE8AE7CDC93AD1777E102BD25762DBEA3F20539B3DE1859C + 0EF2B1F120B69FD80AAB6F143F985F2CACBC37BE6FD601AA3FD9483A48ABB08A + 1ADB4C900665A01208B2EEC94090830808C9ECE7923B20DC8F0D72E5D4EC426E + 5A1E0C69B990D30C869D66B47ED9022FB7EFE2CFCB495E353E7CE233A1EEC71D + E0913DA5C42CE9E3EABB05CF176D4365FED3D872B80A2706FF81EC9C85A01872 + 4D3CFBD5098D37D6ED178E99578D2F00CE110FF424037BD6BF3FA5F8B800BC7D + FA0DD2D8FD4F6C5DB51DB9E9775F73C287564DC3CB90A7489170BB2CE2613EC8 + 86E01EF30AB3B2FE9E4A54176F85362135A2985907886616F718D9DB5A8B7D67 + 7763D4330C85463151BC37049A95A1D45081A7EEAD9A3000DF0A80EBADD7D24D + DACD6D18675D18F78F635E623A166AB390C3E7410CBF314704B855ED3B80B9B6 + 5B1EE0FF68DB79DDC991834E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_03_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007914944415478DAED99795094 + E71DC7BF2FBBECC1BD46C05D5076610531AD6575420A5147620ACA91D3B4B69A + 98195B4D048DE998649C49EB745AD3692699A4D389692E1D3B121D27D41820A0 + 8E40AC7817101360B976CB7DC81E1C7BBFEFDB77DF2D14B2BBF0EECA1167F2DB + 3FF67DDF7DDFE7F97E9EE7F91DCFBB044DD3B89F8DF801E0FB02401004FB6D73 + 58E8EB27B642DF55C3A90149EC6A3CBCFD14047C11319FC227747F17A0E6EC7E + 3A225A02C5432F716A4873F30318FAF558FDC47B0B0FD0595F44AB2FFD01A95B + B682060F04484E8DDDF8FC1492D61FC2D255CFCC1B841BC0E8501B5D7D3C0FAA + DC5C88C325EC35218FE2D4984167446D49091ED9518CD0C5CA79817003F8FA68 + 2E1D9BF400962625FAD560A7BA190D55557322D6E967EB5EF862CAC0B801141F + 8EA3B376EFBAA78E9800302700959FFE038FBFD1E13FC05C099B75808C9DCF2F + A8D07B0658F76CCE0249F41EED685E002E9FFA8A1BC002A9E7649C00F20EDE02 + 4D0E2FB456372B79EB516E00B9AF556054777ADAC6B8E686D9B4731F7EC40D20 + E7B57370188BE645942F918DB313FB0B30D761963340F681332047CA163CEEDF + 1380597F664EC58CDA4CE81E35A2DDA067CFC385422C972C4264908411E379E0 + 2A8E9EE608F0DB93301BCB6645E8643123760AA5ED2DF8676B2BD48601048A05 + E08902D8DF480B05BBD986488110D90949D89EBC125162B17F009B5F3906CB70 + E58C827CB1AACE36BC79A30646B183A97205085A24F2789FCD64C748BF1916BD + 053B9257A1206535040184EF00D6599A01A7FDFE4A35CE6A9A2192B844DB46ED + 4C9E01F8421EC4110208C30321080A747B6E48338C384A884F3237215C40E0E2 + D1626E009B5E3E02DB48D5AC88AF1BE8C68E0BE7D9E30DB2A5C892C743192E82 + 385084BE3103FED5A3C7D956352C21041E508431A32D042F808F401E9F7D46A7 + 1D8670D884C2CD1B71ABF0020BD03CD84897AB4BF0ECAA6D58122A25DC01F6BD + CB8CD2D519C51130CF780FB3EC71A2F15BA4444AA18A5AE4F11EAB89C4E1BA1B + 28EDEB45DC8F6326C48B782E1FE869EB87D446636DEF30EE24AEC7958E4A66F6 + 047839F575FCFAA13D1E00F6BE09FBD8CC00B36D7FBF5D8B636D5D58B12661E2 + 9A90EF8268B8DD04B3C50C855C0E598C0CD7AB6FA2F0992FB06A89EAFB0340D0 + 666C29AD8245160E69B474E2BA882F9E742C827E448FBE3B7DA8D85D4378F681 + 8243B09BB8BD4E994E8C3F76B5B70FF9D76AB1E661959B70A7F119FFB85D7707 + 4FC7FD12FBD6BEEA1920EBA5037058D5B32288ABF58E9951A8D6E24C4B3B1016 + 8CD56B546EC27984CB37BE2A2B45E56F6A200D937906C87C711F286B835F425E + BF5C8B6F86F4C855C8F064421CA4C1E269EFB730E5CAA16B8D28EBEA4654F462 + C8E3E51033092C9060921CCF95E484BC718840DC1D1A84B1CD84A2E7CBD8B5EF + 754F4CDADAFD1AC59CE24A64666C42B3460DAD560355B818D9CB1390238F8298 + 1FE0F6CC955E1D76555E47627222EB9CDE84F3984F0073BDFA463576ADDC875F + A95EF00EE0DC13F3A89E190513B04D393F52DF8E0B261AE9AAB5ECB995B440DB + A985A6A70DBA7E1D326451D8B23C16E9D2A9E1B444D38B934D5AD41B4710BB24 + 16F172052224112E8800112BDCB97CEC0E1BCE9416E1664133428561DE011EC9 + 4E0565F7B623737805CABBD684D4759988089380A41DA0480A56CA557A989CC5 + 5B470F3A3B3B4158C7F0A45482E796452294FFFF0C7CD76A4771DF10CAFA0C18 + 64D6BC52A144BC828111B980D5DA26441817E3FDA78E4D6463AF5188A04D3E2D + 9FEBCC2817547D899C4CD70B013B698783B24FCC84D34806C84EDBA0D7E9D1D0 + D888DD2BD250B026C3637BF503FF41695B03CE36D7811F160EA55C89566D2BFE + BCFEAF785499393D806B06743E01FCA5B90BAD8B62919890E855B8D96C86B65D + CB2EA7CCC521D8AF944E99018FF34D53B83468C4F90103BAFA47517E70C0F9FE + 767A80CDF9AFFA249E24AD4839FE36366CCC409020885D3E0ECAB5D42CFFDB14 + 357EDB08EB5D03B6FFE8A7F879B20A5141C13EF5E1B4B2F7DFE356CCA5FD4CE9 + 53C315037ABCDD3F86F4B43437E1AE6333344C8CCFE251D8132F737B9EA0ED33 + F64130F551F5B9368EE574FE7E9F005E2C3F8DA1B020C42C93B2C29D4BC519CB + 9DC2C76DD43402F5AD165CDC9AEFD7E8739E816B9F6DA307359739376A018D83 + 4213363CB6013DDD3DD068B54C16279192FE205B8859274138ABCAD08E41ECA4 + 4410C1F7B7EF918AB548DBF6D9F40093FC8393556BBFA67716FD823D4E5F9681 + 3D697B71455B8D8FEAFE3651555A4817849D7460A04587587E1CDEC93982C4C8 + 648F9D35F47F439FA83D8ABDE907D87261BAFEEF1980798EFEFCCE49FC44AA9A + 22E840693E5DAE29465C720C0821CD8A2719FFB05156987416183AC6B07ED946 + 6C4ECA832C2CC63543C3DD285317E352C745D014893F3EF6CE44C69D3380E9C0 + FE74F10D1CBFFD31A2574AC0134C2D23688A86D96085D9686337F44E1BDFE05B + 8D7664C5E7E0DDBC0F66FCD370CE00C6ADA2F53C7DB0FC1518A1434834B3958C + 10820898DAC76418B12904BFDB78184F3CB88593903907189F8D2F1B8A70BABE + 10FFEEB90A9209A73C3E8FFD8D74904CD2649C3E3A155B539E43F68AC7112C08 + E12C625E00BE0BD372B709836303EC79647014E41285DFFF2FBB01DCAFF603C0 + 42DB7D0FF05F060E84DDE888DD060000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_04_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007A84944415478DAED997B5053 + 571EC7BF972484404208E886F0101353C1D447612B68515A3B5D1F60E9586CA7 + B59DB63B9DED96B555DB4AB7AD761DFBDA99B53BDB991DDBE963DDB775DDC5DA + 55615C11919582C06AA54B127003968018903C20E4E67DF7DE1B04D2A05C2180 + CEF4F7CFBD3937F777BF9FF33BE7777EE75E82A228DCCE467C0F70AB001004C1 + 1EDD5E2775F62F8FC1D2798E9303594A16729E3C80487E1431DDE219ED2100E7 + BEDC46C5C965502E2DE6E4A4BDE123584D16643DF4C1CC03189B4AA996EADDC8 + DEF81828F040C0C7C951FD3F0E203D6F175217174D2B441080BDCF40D5FCF141 + 64AE5F0F9154C6B609797E4E8EAC661BCE1F3D8ADCA78F40324B3D6D104100A7 + F7ADA752D213909A3E7F42CE8C2DADD056554D8950669EAD7CE67048C704011C + 79378D5AF3D3E726F5203A014C09C0A9DFFD09853B3B260E3055C2C20EB0EAD9 + A76654E8A401563E52304312AF9FED285E04CE1C28E3063043EA39192780075F + 6F04E5EB9F69AD2176F457F7730358FF6A25ECE6833774C6756D08A71DFFF813 + 6E0005AF1E87D7563A2DA26E26B3719EC4130598EA34CB19207FFB17F00D94CF + 78DE9F140069F962CA05797C24DA6C56F63C5A2042AA248E3D27A8B13BAE72DF + 418E002F7F0ED2561E1691DF15A3B75870A85587DAEECBE8181C408480C7B6FB + 3D3EC4F2F8B873563C0AE72DC003694A4446046BE50CB0EEA5DFC3D97F8A9320 + AE661C3063674D2DBEEEEB41942C8AAE742321144782171931FC1F9FDB0F97DD + 0DBBC989182F819F2F5D867CA56A6200AE3045E09A6D3D5581AACB46F63C4E20 + 843C3A0A268713568F8B058A4B1607C1B81D1EF419FA91373B097B72964118CD + C3C97D47B801ACDDFA21DC0355610560864E558701052A15E64844C3ED3D3444 + E945033ED3EA21920B21514407DDD7D7DE8F8C88587C9A772FF75262ED96DFC0 + 6DAF1D571401326C800CC8E6CA53E88EF6212139B091E245F003D72E9AB12C46 + 8C75062B478017DF8367707C80709BCDE5C4C6A31520D45190490210FC08017B + D49FFB1F1EB5016FEDE8BE7501088AC4599315C55FD522234B0D3EC11FBE46D2 + 116A6B6C45D94FEAD1D8791655861368ECAAC71BAB76A35053440403BCB00B1E + 07B7D729DFB54B745E7FB3A60EF9AA546C4A574DC847C19795884E57202E5616 + D4AEBDA0C780CD8E1FC867411A27C5952B26FC38A3182FE66E0F065853BC1D5E + 574B48EF70B127CB4FC3AF48435F87057CCA829DD91A2C57247216EFA16BC4D7 + CE34A245C087222D911E42FCE161C49880A0532FBD37B00C58D0DA68C0E9E7FF + 432F8231C100AB9FDF02BF4B7BD33D577EA91B6F7FDD8287D71505A2D1DD86FA + F30DC88E13E395AC05504AA563DEA7355B70BAD384069319174CBDE0C5C42075 + 6E3292929382448FB69AEA5AEC58F90E1E59BC8918734FEC73B7DD9478275D37 + E51FAEC292EC7B219F9D081FE565DBFD3E3F74061DF47A2D1E9D97846D991910 + F147C4905E3F720F1C872C598E443A52121A96E9717E042FA8E79948F086E684 + B1DB08A7D1837F3E5DC9BCC722C6DC13F3FC97C7154DC03D7CFE61531B8E989D + C8CDCE0D0C059F873D7AFD81A3C3ED80BEB9053653175EFEE1226C548F0CAB5F + 366871D07019CA7425546923F366B4E8C06F01EBAFACB20C7F2B3A86258A2C36 + 238500E4E667D3B5C9F57664DE9096AB2E0F36345CC4EA556B1145AFB0D74433 + E6F28D941E3E3A1AFD0E1B74F4A295E87261EF5D2A48F8815E6EB53BF07E6B17 + DAFD0268E82825C6298645B3C388173836E99A90CE5B88F70BF60EA7D3D0344A + 67218272701E3E2595A5D0C305CD024D40283D7CBCFE1150E750594E92242CF4 + 78B7596DE8315D4579D173982B9507F9FA577B33DEAD29074F2645A6260B1289 + 846D6722E1F49228AB28C389A7EAA0884DBA3E402002664EE2BFA1D3DACF5A8D + B86FC57D41138D8982D71F78CBC088D6EA74743828644A45C89589714FBC18A9 + D1A2317D7A293FFEDCD1837D4633323234589CBE841D4E95B527F170DAE3D8B2 + A22468310B2DE636977012EFF753D870E823442629903C47C1F634D3CB229168 + 148417D67E0BA8362B0E6D789686140EDDED19D77F8F63107BEA4EA282CE666A + A51ADF365DC0D992AE9057F82100CB7FA4E6045067EE4789A10BCAB97371F54A + 1F2C439B939CBCBB83FEE7A243DF5CDD84632B34C3637EB411D48D619AFA5DF8 + ABB1170BAFB8F1D28E2E0EE5F4E66D9C002ED9CCD87AA214F3E3E5C84B49434E + 8A1ABFA83E8676811BF1C92339DF4BCF896FB55DD8909481D7973FC0C9F75856 + BEF783F18BB9BAFD4F50BDED6726FC102728EC1238A0BA7B3E08E1C83B32A7C7 + 89F646235E7047611EC59B90EFD9CA1558FEC4FE1B035CFB423319FB7BD37EEA + CDEA5790B62899FDED1BCA48A493845547E2B7859FE17EF5EAB07D3F083B0063 + 9FD6EFA57E5DFF0EE4AA0450C291779ECC4EAB576FC15A752136653E83A52939 + ECA4A49F4FE97A9A51D67218772464E0A13B3772163225008CED3FFF07EAADCA + D7D89D96582E0231B449A7E8EC65379120AD6E78483764C259B07B6CF412E9A7 + AFF990249E837F179F9F7900C65A7B75D4EE8A3750D7598D58851842A9008228 + 7E100C6975C13DE8C1602F89BBE4D9787BCD1E68E40B6F0D806BA635FD972AFD + E673D4777E055D5F33DBD38C09E852E18E8405C84EB907458B1EBF29E1D30A30 + DA986FD076F7207B2E13C5B315E564FC0501DCAEF63DC04CDB6D0FF07F1C206E + DD4FA12D720000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_05_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007664944415478DAED997B5054 + D71DC7BF77EF3E156517451051912A10547031BE202646A349119B3F6A3A89D8 + A6B5D5D6414D4CACA95352D38E4D3A9D34CD4C5333C94CECF43186383A944020 + 660A8B160A2842B1C8CBCAE2031611D907CBDEBB7B77F7F4EE5D595D7785CB0A + AE76F2FD6767CFDEF3DBDFE7FC1EE79C5D8A10824759D4D7000F0B004551C2AB + C3C992BABFBD08E3B506510634F11958B1B50072A9927A28001A8A5E25EA180D + E62DDB29CA80FEEC87305D3722E3F9F7C30F70F5FC09D27EFA9758BEF94510D0 + A0E01265E4CCF102243F7910B3D3BEFDC0217C00D69B9748F59F37419B930355 + A4461853D06E51464C036634969420EBE5624C993EFF8142F8004E1DC921F1C9 + D3303B3929244357DB3BD0525939214E7AEA6CF5F7FF1E74617C00C5BF9E4B9E + FDF18EFBFA22BE014C0880EE93BFE05BF95742079828C7C61DE0E91F7E2FAC8E + DE37C0EA173686C9C57B773B424B5055502A0E204CDE8B9228804D07EA415C96 + 70FB1AA092DFAE150790B3BF02D68163231A13BB378CA74E7EF4B138808DFB4F + C2693EF1409C1A4B67135DC4A1024C749B150D90BDAF10AEC1B2B0F7FDFB0260 + 8C8561739422C117AEE2C8319100AF7D0AC65C3621CE0C726E7CD179114D7DD7 + D07CD308BDD9DBED947239166A34489F118BEC798948D1684207F8E6DE3F81B5 + E8C6B43A62B5BAE0AFB0B89C90A9E49047D050462AA08890C1ED24E05827B821 + 272C062B964C9B81032B32FD40C604601FA708DCAD03FF2C47CF108BB8C94AC8 + 6825DA8C26B49BFAA0D428A19E15015A2E01711330263B8C5D16EC5CB4183BD3 + 170A73CB8F148B0378EE95C3700C568EBBF31498A0E37D36167FF8770B8AF41D + 884ED1403E49268CBB1C6EDCBC64C1FAE858FC6675E61800F6FC1E0E6B4DC80E + 852ADDD51EECABAA813A29C207E189C68D7633B6CC4DC092A66E9100BBDFE673 + 7174807BA9CB6CC2975D7ABC94F2182215CA31CD2DBAA4C7AF9A1A11BF30C6DF + 66430FF25819F6FEBC7B62013CE9B0B9A40C53F8B0B3FDBD38BC6E0D92A334A2 + E652C41BD1AD65A7D0AB96232A36D2F7D9A0C50A47532F6A0EF48B00D875109C + 4DDCCF29778AE5187CF7642526C72FC0E2943474193AF1AFDA6ABC9BA5C5DAD9 + 3345DB29EB32E0506B3BE6A6CE12DE4B29A9F0DA7CAE0D9FE414202BE1A90008 + FF1BD9CE7D70DADB83AECE487AFD743D5ADD52AC5DB50E4EB7D31B116B2F2ACB + 75D89596826DA989A2000C430C9E2D2EC7924C6FF7A12552482532182EF72243 + B50AEF6EFCA3C75FD23B688042AA40D4A469941FC0869FEC81DBDE32A6D5FFF0 + 7C1B0ABAFBF1CC13EB21E12F1F1EB95DDE13AB911D406D751DD6C5A8F18B154B + 209304B761B233FCB30E30FCBCCD25A790F5CC4ABFCF09079CA9A94784320283 + 36336FC75BE8BAED0D81776297A353B4F35FE82FE34DBE0D66AFCD1656CAE9E6 + 029EB1BB58D49F6DC03C09C17B4F6AA151D0BECFF26B5A70E26217A4727EA5F9 + 7129649029A5C858AA0DB0C3300C542A1564941CBDDDD761D05F47C58EBAC03B + 31EDEE19D5710A0E5C1818C2D6AF6A90B9320B6A8D5A187711A72F85EE566B7B + 2B48DF003E58B31489912A612C4FD7800B0E8245DA54BF67A5129A778C064D07 + 86CCC217756363238EBD508AD49845FE299495BD1C6EEE5E37B2DB8EF5DB396C + A9EFC0FCF474CC9811EDF794EB56FA70C4116041CFB74AE3956E94663EC617A8 + 044EE246FE85CB38C752589AA98552EADF7AA5126F11D3B78AD9E6B0A1B2AA12 + EFAFFF18CF256F120A3AA00B51C4366A049E3F7E1864A61A71B3E284D0B20C0B + 4D9096D9DCD802B3CDC43706179C0E279F3E32A446C7E148F60F2091DC6E281F + 9CD3E1A3363E9ADA4C5F34FD41BCE959A1D3216FD9EBD8BE3CCF373948040646 + 05F84E5D1BAED8ED4231CDE42BD3E474213629115131FE104D75CD7873EE342C + 8B8AC014A96C449B157D461CEC3060A97619E6C4CDF1358461559FA9C6E36A6F + 27BA73DCFF3097F7D3519DF7C8CD6FF3844F119A5608EF3F6B3D8BDFB5542169 + F137BC6974AB0E2EF1E97128630336CC5B78C76CEE9E76CFF7F56047D951CC5E + 9082B4E4745F0A35B49E037D53814FB71406FC8CEF07B06AFD7C5100776BD0C9 + 21BBF622E6AF48809256F1B97D6B2FE8E94726E3C21B49F141E7512410E6065F + 3AAFFDA71324760E9F524F089B62E3E94A94BFD221F4FD401B7E11783524008F + DEA92E46A1A913B3126EEFBC2CC7E25A432FCEE4EE816A0C6723C6CE62AFEE73 + 343366384C03D86D93615BFEB5918F12B54773C90D7D55C8002C080ECA6C884A + 9B0E9552E51BF71C8B13FBAC78D93DB6C39D47F514070D245899F01456E51E1D + 1960F81F9AFB51C57FBF22DB0B5F42ECA2E9C205C5A3E163716ECA36E4AF3BE4 + F99E71FDFF605C013C2ABA709CBCF1E52E4C4D9C0CE554B930367C4159109182 + 9FAD792BE8A1ECA101F0C81389FDA5BBC14CB2FAAE8B1ED9065898BB871029D1 + 2039DABBFB5AEC26BE56ECF82CB73868918605C0A341BB85BCA37B0B452DC7E1 + 927350F1E77C45A40CB494868BDF37EC668EBFFF3AC0310EBE734DC63F7E548B + 9953E31E1E80610D39ACA4B4ED73D45DAD46FB8D16182CDEB316EF2C16C76AA1 + 8D7B9C3F16E4608A626A480EFCFFFCD1FDA8EA6B8070EB9107F81FC044DFE6BC + D8B8240000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_06_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007374944415478DAED990B5054 + 5518C7FF97C56517966597978092604C8BD0300209C1A6258585A24E993DA8B4 + B1A7694FD1191B9BA6CC66B2196BA6876363983D1DC3CA24891C050A56411062 + 6073B76011499E2EBBB0EEBDFBBCDD7B1997885DF602E2DA8CFF999D5DCE3DE7 + BBDFEF9CEF7CF73B1782A669FC9F455C07B856000882E0BEAD768AAEF9F2210C + 749EE165403E3B0D998F1E80D05F445C1300670EBF44CB66CA11BF603D2F03BA + D3BB61E81940DACAF77D0F70BEE910ADF9F50D64DCFF10680840C0C1CB486DF1 + 012816BD8ED89455571DC20560BAD84A57EF5F8ED4FC7C8843E45C5B80C0C9CB + 88416F44434909946B8F20383CE1AA42B8002A8BF2E9D98A30C42A6E9A94A1F3 + 1A2DD41515D3E224BBCF163EFE83DB8971011CD93187BEFB99A7A7742326014C + 0B40F9A79F63C5B68EC9034C9763571C60F1136B7CEAE8940116AE5EE623173D + 673B5AE087AA0347F901F8C87B5EE205B07C6B1D68C7A0AF7D1DA3929D39FC00 + F2B79C80497F705C637C9F0D5752657B3EE107B06C4B19ECC64357C5A9896436 + DE9B78B200D39D6679032C2DFC1E8EA1529FE7FD29019003DFFBCC5182763F71 + 278A0EF20478E51B90C6D26975A6A8A505BFF776C1E2B0406F61EA1C91080AB9 + 0C897239EE9A130FA1DF583F7903E4BDBC0FD460F9841C9A887A49123907BF81 + BFD01FFE01028865420802FCE0B038411AAC8085C67D73E76263EA7C48858193 + 03B05CA115F0A41F5BD5E8A768182C14B312DD68BCD80B69B404C1D18170589D + 30FC6D8270D08EEDCA6C2C8E8DE1C61C2F3AC20FE09E173F8675A862CA4E9E1F + D223363874E426203DF6D5E807B0A3B601679D83089D130C820921ABD986BEB3 + 03D87E6B2656DE183F018017DE83D574D2AB839E1CB231CFB8ADBFFD866317BA + B146918C4D6949BC80D971AF55AB7062A81761F152AE8D5D8DEEE67E0E4252D9 + CC13E0F9B761BBE41DC09D8C4C483C79AC1CE62019B2D2B3507ABC145B5212B9 + 19E40B5170B414BD721A81A122AE8D5D0983D6842DA43FD66DEB9C3E00360C9E + 3B5E81A88444A4CD4BE7DA0C941E474B7FC2EEC5D9C8888A1E773C410FAF684D + 8F01EB552711394FE6BA36D4654664871965AFF6F100D8F83A6C667EAF532EAB + BCA30D85D50D484F5D80B8D8B851D7BA7A2FA0A1A60AC5F939880E12F3B29753 + FC3324299110F8F9BBDA5AEB3A70744D256E8A98370662F4896C7D21EC168DDB + D971A722751B3ED468909D9A8DF0B008B77DB4AD5A18CFB5E1D0B26C88FC455E + 0136969F426BA81F82A512579BBE7D107951F7E2B5BB768C0FB0E4D917E0B4A8 + BDDE848DD7376B1A719C59F28C5B174022968CDBBF51DD8048931945B9D95E6D + 6FFAB50E9A19FE089D15E26A23CD14AC6D048E3DA5F2B202CC99D8616DF37A93 + 75C754D03909DC9C9AC46B5659D5D69C465EB8045B178C642655971E959DDD08 + 091021323010314142EC6DFC0386A82884CE94BBFAD13666FCC93AA85FEC18F3 + 0670CC9958E0BC30AE231453E8290F9441141602315306080911FC0280781ED9 + A69A499585490A3CA298CDFDBDA1FC0C1A280A72990C14F34D721F1237A72722 + 48183C6A6C4D452DEE4B2E4094241AE14111880A8E414EC2126214807269069C + 364F2732BBEBD7793389BF291B7A99CF459B0DFB743D485D980962C6E811354C + 3870258348CCC13AAC34AC063D7E512673D7B54C583DD1D88EB4AC3488C5E36F + F20126D3914C2962A12C1C6C6F4F3FF6AFFA766C16226833AF90F8B756167F0C + 62AE0C32E9C8B2938314BAD5ADD8BFFC31F45C32A1DDA8479FD9849488995874 + C34818FDA26BC1A6F21FA0CC51F20A4787C38996E616C8EC61D8FF4031DCAC80 + 7EC200EF683BA1120B10332B6A0480D978E69673389899E875FCBE73DDF8BA8F + 09CD4559CC91D53384D96A467D5D3D32C294D8B9EC0326CC24A343286FC3E609 + 3BEF9A45D56124CC9FE36AB339EC186AEA43E5A385FFE96D736B63F3891F514F + EA91758BFB4C3548195155558D07131FC3B63BDF625F46739B791440566EC2A4 + 0008264DE4AAB490264640143432837FD5EA50929984F080191EC7FD5B4F35B4 + C33E6B2E52E6A58C6A671F88AA53D5D89EBB0BAB530A3C67A1BC0D2F4D0A80D5 + 87F555D873F63F6580CE823571F3B131FD365E3648A69EBAE7DB3D884F4E8122 + 6E38F434ED6771E6B40A7B1FFC0ECAB8DB3D3F074E7DFD08DDA7AB9A3400051A + EF094850B1415C6DCF8AAD28F54DFDD86C13231C7EBCECF4C389776790C8CD5D + 0EAD4E03A3F64FEC8CBECDFBDBE9CBFFA1998A74FA563AFFB3C510C70A5C15A5 + 594F41AA97E3AB874B102D8DE17593EAF64A7AEDA1D5C88C51E293555F709BD5 + 53DF2B0AC04ADDD34C1714AF0011E270AD045B51D24601DEB863275624AD726D + C0F174C96AA2C7737CDA0058B12BB1ADAC10F5174F413A2B1022A970B8B63F77 + 092108C5C2F83B98F24106B1508C75B7AC476860D8A46F3E2D009775B8A598DE + 7BFA23A8FB9A209233658768B844660FF0768B03B4D3815D4BF76065F2FDD726 + C06569FBFEA0EB3A6BD0DCD384EEA12E66C687CFCB8A882414CC5F0B3EA1E215 + E0FFAAEB00BED675005FEB1FD292CB7BA506B86E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_07_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007C84944415478DAED997B5053 + 671AC69F434242B82660B90972292D8216145B5AA5A8D041A962B5555BAD4EB7 + D3DDB65257D7AED476AD33CCB6DBB5BBB3ABDDFB6CBBD5C169A95AADED42D7CA + 5644172AD7A87409600D1150494092104212929C9C3DE74422D94012029876C6 + E79FCCB97D797EDFFB7EEFF79E84A0280A3F64117701BE2F000441B09F46B381 + AAFB680354D7C46E0D208AC9C0C39B0F83C7F523EEB479C6BB0380F88B1D9430 + 428484870ADD1A44D6F037A8152A64AC7ECFFB00DDCDC7A9F673BF44E6BA0DA0 + C00101D2AD81EA8F1D46F2E262C4A6ADBDA3107600DA7E295553B20AF30B0A20 + 0811B1E7F81C8B5B03A99503B8505E8EAC1F95216846D21D83B003387BA0808A + 490E436CF2FD1E0DD6DD7E1992AAAA6931CAACB3ECE73F7798183B80B277E2A8 + E52FBF34A92FA20BC0B4009CF9F0109ED8D3E539C074199B72809C1F3FE755A3 + 9306C85EBFD24B16C7AF7614C707D587FFE51E8097DCBB25B70056FDA21114A9 + F1B6570795FF36D73D80825D95D02A8F3A1DCCDDBD612A75EAEFEFBB07B072D7 + 2998078EDF115313A96C6E2F624F01A6BBCCBA0DB0A2E804C8C1935EAFFB9302 + D0AB4E78CD28418D3D7195078EBA09F0F34FA01F3839AD66180D9A2CF893B816 + 06924274001FB38243F1606414C20582C9013CFEEA41183467266C68A2AAB971 + 1DAF9CA900E1C30197CF01C7CF07069501F3C2C2F14C720A5624247A0E303C05 + 11305BF438D4DA8164911059D133C7BC5ED1D98336950A5FC93AA0248C10C605 + C06C20A155D0208121285EB808B382AC11397DA0CC3D80FC9FFD15C6C1AA4999 + FFA754823F8A2FC26F4624E4F21B38B97A25C2FDFD9C3EF3855486B7EAC5089C + 25807FA81F067B74F0B969C21F962EC1FCF0D009006CDF0FA3F6BC4B9304F40E + E72EF42AB19F36DE6521B13063116608EF81B8B509B15A15DECD5EE472CC76A5 + 0ACF9EAA84F0FE40F0FC7DE9543642D33184D2E5B9B8F679B59B00DB7E0DD390 + 6B80D1EAD519B0AF498C7FF7C9B120F541C4C7C6834370D96B2465C6F153C7F0 + 8F4797B233E94A4C3ABDD1D084A807C2D8639DD280A03E0A854A124FEFE99E5A + 00BA90E0A3D616FCB9B90DF1F109484D4905D7C797BD462F4BF8D05D24A3ABDD + 57A1BAD2824F0B1E1F3FA2D4ED88AEFBB20ABD228A4D2546FD320D327BCD38B8 + 5BE106C04F8B61D2B9FE39A55EDE83376B9A4006F863EEFC5404F202ADC66FCD + FC68315015A72BB02B6D36D62446BA1CBBB4BD03FB3BBE435842B0358A460BE4 + FFBD8986AD9711EA1F6607E1F846565804F370FBB8B333A2974E9F478B711849 + 0949080E0D821F77EC45CAF5E1B2506A951A971ACEA3E2C97C08B8702A09BD16 + 369FAD45CC9C08DBB91E691F76A4EDC68B995B9D032CDBB21D966189CB59EA19 + D2E3E3F6ABA8ED51A07D6000C1A210A4A4CE86E0D646E44BF0AC11B995468C9A + 2F7D8BBC90001465A4381D5B468FB7B6F21B24CD8B638F4DA4195ADD20E2D5A9 + F878E3091711A0DF894963874B80D1520FEBF154D959C46426238017645B078C + F47ABD0D8A514D650DBE5C9543EFBE1CEB75B3859E8C612486DCBEA749D18F9F + 7C73117317CC86992E02668B09D43001E94519DA76CA9D0330EFC41CCB0D97A6 + 0918ED8E738E55B2007CEE6D239409A8ABA983AF808750A1089151916C2A259B + CCD8B7388DBD676F8304A5D26B0822083C121581DCD87BF0ED4D15BED61A107D + 6F84DD775CA86EC695A29BCC0F7036080780AC1599B098C67B23338F0BF4745D + 1BFCE7C441306AC352F6AB91A050E385F808D4F46B50A536B0E99616E88FF733 + EE63EF3972AD0F1FAA86D8F453D1B92F972BA0510D203D231D8260FB755577AE + 11F585AD760B79CC2A4450BA09A510A3E7CB0FA04704F80BF9B614EAECE8C2CE + C4257826E521DB7DBA611D1D25BAC872F8ECB1C54221FFC83E889213210A158D + 3B3E9346D574FA1DD95886053317DAA2304E0494130638D829C727C62184D329 + C0C897C3C5F5B65EBC111182DC7091D3676B951ABC26BD8EC796E4DA9D27490B + 2882A4CD5B7FB1B8DCF21DFAD47DE099F8C88ECFC1DA073622E7DE3CC2BE99DB + FADA84CD336AEEEDC486938710971E6D3BD72FD56067EAA37611B0CAE4F0FC96 + AF8EA2976EABEF4B4AB29A6717AF63CA325026CA88D69656E8060CB8F08AD41E + 60615E9247008C9E6B6C475F38CFB683326D403ABD9CDE9D9B30EE33046585E9 + D29BF1AC58866539F9F0A3D71193320EE66928AD51CB9A27D504F6E6EF1F2B02 + 3B3C06A8905DC68E739F21724E28DDE713EC0EDA2F1940FDA6ED10F0FD5C3EBF + F7FCD7A854C9919599653B67A1679C04C902495A25E8EEBC8E9733B761CB23DB + D83F54ECD6406DE926AA4F56ED3100A3121F03DAC27D6D6DC0481FF3A485EFF2 + 59032814FBEA9097B78AED64475248DA75054D924614243C859DD96F222A387A + EC2A34AABC7AAC21A3965A53B20C0A5E17843141A0E82AD3D3ACC4EBD9C50E6D + C058FAB4B994FA5DE3DB58B9B400AA0125AA9BFE8348EE4CFC6AF9EF911E95E1 + BC999B0A00464A5D3FF5E2B1CD6833364338D3DAE429242AAC99BD1EBB73DE72 + 68C8FECF10F544492E7A2D72905A0B5E5F5A8C7574B521C631372D008C983F0A + 7F53F5364A2E7D80A00801F821BE1854E8E9D7551316CF7A0CF3A232B03E6D93 + 5D3A8CA84773833A23ADC0EA39EBE8D624D0A9A9690318914C29A53EA8FF0BCA + 5B3F83D177987D79376A4DF45E43A2F0E15751B478CFA4BE74DA0146C444A459 + 2EA681AEA2536D6D1637CD7B61CC08780CF043D55D006FEB2E80B7F53FAB0785 + DD9DD205200000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_08_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007D94944415478DAED997B5053 + 571EC7BF370192A009098F025910086804A658D9AD56193BA2E383572DC55AA9 + EDDAD94EDD76DBBA7587BA7575B753D76E67769CD9EEA3EE6C5D71DD591F6BC5 + C7F0AA5A1115B03E069135541448E44D942424907772F7DECB12C198E4F2DECE + F8E50F72EF9CFBBBDFCF39E7F73BE724044992F83E8B7802F0FF02401004F3DF + 6A379357FEB51EDAF65A56012451A958F8DA1104F8F189A9364F7B7703A83DF5 + 01290E9720EED9775805515EFB2B743D5AA4AEF97CFA01DAEA8BC8C68B9F60C1 + DAF520C1050107AB40578F1D81FCF98F119D9237A5102300FA7B9BC9EA033998 + 9F9D0D419084B9C7E33A5905D269FA70A3A404691B8B210C4D9832881100170A + B3C9287908A2E573C614ACADF10E1A2A2B27C5289D674BDE38E9D63123008A3F + 8D2157FD74D3B85E441580490138BFEF9F786147EBD80126CBD88403A4BFF9E3 + 69353A6E80252F674D9345CFD58EE4725075A48C1DC034B96725560039DBAE83 + 74E8A7DBAB9B4A7EBF8C1D40F6D60AF46B8E7A0DC6766D98489DFEDB97EC00B2 + B69E86BDAF684A4C8DA6B2B14EE2B1024C7699650D905970020E43F9B4D7FD71 + 0198B427A6CD28413EBEE32A0A8FB204F8C56198FACA27D5CC70196C4E5C6A57 + 41269660AE44E2B11D6B808C2DFB61D69F1FB3A1E1D25B8D2853B6E1A6BA1D5B + 7EB4184F09046E6D0A150AFCB1EE2AF359ECCFC3AA9858BC9E3417D1C2E0B103 + 58C631025627899A8E169C6852A2BABB1B111152F871FC91E2CFC1CEC5696EED + DB0C1AECBE5E8BCACE36F0257C04F0FD60EAB1E0D53971D83C3F15D4638CCE15 + 16B30358FDF33DB01A2A476DBC4EDD81E34D2A94DD5322889A0A09B10998259D + 054140204CD4489C282DC2B7AFE4B90C3DAA5683093BAA2F4361D421245E045D + 473F629C3CFC7D453A8278FC51006CFE03ACFD977D1A266082DA6846D1DD66CA + B8127A824474EC0F1013150B113F08FE5C7FA61D97F063FE9FBEF8357E9D3C17 + E9D152AF710B2E5CC2C5815E84C48960E83242AC2770306339AE1F3CCB12E0FD + DFC136E01B8056F6C95218F902C4CF8D83443898807E1C3F97697AEA70A93F0E + B51953B5A9C0EB6CC69F97A57B8D697798F06271050C61040283F9E855EA313F + 408475AD03130FB09F4AC0BFD4DF46707830626554CF070681CBE5B8810CA9AC + BC14152F653153C26D444993EB73B9AA0BDB6FD4E1A94431482AA7EE37F6615D + 1FB0737B170B80F73E86CDC8EEEB145A7D163335859A29983BE0858A91989C48 + 99E732BD3FA421986BB5D7B0511A8C57E532AF31A9CA8A8547CB10962206C121 + 6035DA60B9A545ED470FE82F1E4640B89FC8DE2980DDD2E8B1773CA9B0A10587 + 7AD4989D9830C2BC3F11E01A15DD7D3DB44D0A1CCB5AEA33DE6BE517D01E02F0 + 4501CCB5FA3B1DF6AC3E8065092BBD03AC7C7B339C9606D62330A45F56DD8062 + 0610191EE9BAC7F713C06030402814BA602ACF9D4751461AE28282BCC6FBC9D9 + 1AB48593E0060CC2D309BD5C928DDD595FF81801EA4CECB0B68C1A80EEB17EA9 + 0422C9A0591E65DE6237A1AE46013F1E17D28848C4C5C7A1B941891C2A397F96 + E27D1AE595D6C02CA5AA99900B87D30E93D984406A48CEBE55E31D803E13739D + 9D3E0D533373C475E6A92A70A9A49BC913C2EF7FC9DBD9DC83457C3EF2E531D8 + 73B311353D1A26E1C574F9CD5ACCB4295176E1F06D157267C7616D4204734F6B + 716049D119242E9AED8A6FB699A1AED3A17E8BCA3B405AE602386D9E4E64768F + 409B6AEF421D1BE82AA7B49AEAEE615F620CE6CC0C64AEEFF41BF1EFF607D4B5 + 00AF448531F77E7BBB15571CFED40A6E016FC08CB76685C1E474629F7600F1C9 + 31836F25EDB03B6DB875E90E54DB34DE01E82A4490C6514FA10F2B8A50E5BC07 + 7128554A398323D07CBD158A377680C3F1FC45DD156A6D78FBFC712C4C7B165A + 8D164AA50A7A6D1FE6A5CE8340C4678CD353888668B9D2C6760434A306A8506B + B193AA42F40A3A24C34D0DCEA425FB7C7665B50289CFFD9059476CA415269309 + 026AE3479BB73B07475DA7D7C2DA42F8CE818C773F1CB5795A6A6A0FF3FCA1CF + 217D268CA9DDCC0254AF43DDC602AA8CF21E696D1B71F5D9E56F5063D2227ECE + C3C4363F72A052521BC444DB33F82277BF7780452B12C60440EBA35B4AD4F29C + 10460ECEF9AEFFF4E21F4FCB5C39F03811A40D8D0336BCF9DD3D642ECB64EE59 + 1C0FCD3B1C4E66543A3B3A71B7B119AB6459D8F4DCFB9817994A7818810FC60C + A0EAD320A3E84B84274998FA4DD7EE5CB10CDBD2727C3EBBE6D85E4424252134 + 248C993A8C7926791F160E7A546810A54A85C5E14BB16FED21A60F5C00DF1EDA + 40DE57568D1980D637841567820884C983E0B493E8BEF500DB2D028482E3F3B9 + FA5829D2160C9E196C0E9B0B64388CD6A0455B4B3B346A1DAEBED78040FF1984 + DB2F34E35541E9BB6489F2380361D25920D2487030BF049122A9C71774E93BC9 + F4BDA958B726DF659896939A425AB306AA6615DABB3A10C98B424E622E5E4ED9 + C0C47BEC4F4CE315158FDC756E070EDCDC8B609990DADDDAC1D5F0B16BD56EAC + 96E7787CC986C3B9246F1607B19132260FE82D7893AA0916930579F27CBC909C + E79AFBC3DE35F10043FABAB198FCB4E237B8EFE80697CFA10E4A36440BA2B075 + E9278F0539A53846EEBAFC2BCC10CC4477772796CB3290F7743ED2E357B8ED42 + A7048016FD8BE7A986E338A9F88A5AB4AAA9F2EA406ED27AB74DD950DB3FD5EC + 460C95F8ABE5D910F2443E0D4D3AC070698CBD648BA611B2603982034326E465 + 2300BEAF7A0230DD7A0230DDFA2FF87E91DDC580814F0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_09_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007E74944415478DAED997B5054 + F715C7BFFB021661D985852C02C505040229465094183192D44840332938B593 + 8EE968ACA546621BCDD444274D624CA64326766A92369362937114131F8D2868 + 8280AD8ABC5502EC5A7908B8BC967DF0D8F7EEEDBD17D980C0E52E8A34337EFF + D9FDEDEEEFDCF339E7FCCEFDFDF6720882C08F599C8700FF2F001C0E877EB5D8 + 4C44F9A1F5D076D4B03220098EC7925FE5C18DEFC179504E8F0EFA38809A6FB6 + 13E24724902FCE6265ACA5F253E8BAB5887F7EFFEC03B45F3F4E28FFFD361233 + D783000F1CD85919AC389687A8E4B7101297F14020260418EC6B222E7DB1060B + D3D321F491D09FB9F31CAC0CEA347AD49E3E8D652FE5C35B1A31E31013025CC8 + 4D2782A3FC101215392DA3EDCA1B68282D9D1187A975B6FCD7FF7206664280FC + F7428967B7FCE69E2E443680190128F9C79758BBBB6DFA0033E5D87D0758B969 + C3AC3A7ACF00CBD7A5CD928B93773B82C7C5C5BC027600B3E43D2BB10258B3AB + 0A84BD7FB67D1DA7D37F4E610790FE7A3106355F311A637B6FB89F3AF7F7CFD8 + 01A4BD7E0E36FDF107E2942B9D8DF5229E2EC04CB759D600CFED3809FB40E1AC + F7FD7B02306A4FCE9AA31C62E2C015E77EC512E00F4760D417DE376706AC0E5C + EFED44FBC0200C361B36C6C64ECB166B80D4DF1F84A9BFC4A5E850B2380834EB + 7568D669A1D06AA1D4EAD0A4E9869A74DA4FE207898F185D5DDD38B06C091E0F + 081A373F4FA944D1ADFF626D781856CB1F851B77EC86D62500B30B19B8A4BA8D + 0F2ACAD0363400A1700E246231C42209445E22044802E0ED2D029FCBA77F7BB9 + F622327DA5581F1535CECEAB25452855B5832BE021D8CD13AF252CC4CA90B9CE + EFCFE7E6B30358FDEA27B00C94B206F8DBB52AFCB3A919890B174328F2A03F73 + E70DBFF2B902087802FA3D8FC34753DB4DC834B7F1CE1349E3EC909586CFEBEA + F1E9F77510057A61A0DB880D91E12448BC8B00D91FC1325836A5E31C18C75CF8 + F30605A2A363200B7A043C72EF42459D727A34885AAD467B5D39BE4E4F9DD46E + 49BB0A3B2E96411CE905DDAD21ACF4F347CE8AE52E006CDB07EBD0D40077ABB6 + 47833D97CB40F8F8223C460E0FFE48167E00A154507806D5BFCC60B475B0BE1E + 07C835E11FE5835EA51E9BC3E5985FDD31B30094367D7B1E3D5221E44161F458 + C071A3B34169A4AC0A8A0B7066D5539079F98ECD28611C334E39761608F3048F + CF43D7F76ABC691662E3EE0E1600AFBC05AB81DDDF29A3A5379B907C221F8949 + 8BC0110C479E2A9DBB41AA2A6BB02F4E8EA44019A3BD9C9A469CD4ABE01DE889 + 814E0302DA0C38F7462F8B1359D60ED8CC4AC6E84CA4C2D64EEC6D54223C3614 + BC51CE13D6E1EF8542215D568DCA46A4CDF140565C34A3BDE2F64EECA8BA8A80 + 47C520C816ADBADA8BA24D1590FB8673180156FD361B0E7383CB19F8A0F22A8A + 6C4604CC95827FA7E62990FA4A258CC62184CA4321276BB9A75D8DE0212D3E4C + 5EC468AFACB30B5BAFD4D20094FA5AFAB13DEE0D6C4EDCCA0C409D89ED966697 + 015E29B9028507015F990F3DA632D0D3DC8730327A6F2F7D1CDB4ACBD1495691 + 5C3E0F5A65330A9E7F92D1DEE9964EFC49A1809F5C448F0D1A13E2B014B9EB8E + 30035067629E4335A5C31C58C68C379FAFC60D6F0B44626F3AF2021E1F37CB5B + 7166CD4ACC9DC383D1E6C0FE5A050E377540CAE7A32433859ED7AC37A2A6578F + CC88B16BE2FDCA06E40FF6C12F4842DEE5CDB018ACF0EE0AC0779B2F33032C7B + 2E110EEB642732DBA440EF2ADAF01F9E955E746E5C77184D6439B51AF059FCFC + 31BFABD30F921D898B482F4F7A9C5DD7825A9309616E427C181D04A9BB000336 + 2B32CA6F202021C439CF681B82A1DE81AA6C253300D5853884C1E5123A505D82 + 831D15108778D363AA73BCE01B8B5D49A98CF376161F87D2DD0CB3C90C7D4717 + DE495E8BEAAE369C5429E88660B20F371083CE0CDCE6A0784B0D9B0C685C06A0 + 22BBA5A115813FF5A3C7D4A2CB92F8E217C1FE8CF38E76F4E2A89183C8D8F9D0 + 6AB468686CA43F7F2CE1872E65236CE8D70C42A291E1F886426680D4AD3B5D76 + 9E92835CAC4BF2F6C3E3275CB8790AA6C880D5F9AE5CD5866D65A7F0C49224D8 + ED0E58090BD9B58CF4BD644466B2BBA99ABA912A7B017B9E798F1920E96711D3 + 02A074F05617727BB474EB33F55BE0A732E1CB45518C73A87A5F754589B4D5A9 + B03986D79869D469D0641B2EA1EAF25A1CCD38830581F1536560FBB401A808A6 + 1CF92B2C322E846277FAE673765D16E6F9F832CE5BFA450E163FB5029EE436DA + 4E960B0532920D4A5469B5545C43CD1FD5D42380C901AE1C7E91E86DB9386D00 + 4A4D1C3B0EB899E01F2D21CF15567A0BB0D521649CF331D788A015C990923B4F + 9B63B8BCCC769333285DB7BBA15034E0B5E57BF0F2E2DFD1108C4F68EE555F5F + 3F4CECFA6E3BA491227A4BFC62F446EC7E7AAF337A77EBDDA237896A73196223 + 63E1201D363BEE387F271B741606C8054EDE47627D172027ED63C8BC039DB6EE + 3B00A5E29BDF12DB4EBD0CB700F2E4A0B320C16F29F63E9BE3DCCB8CD637F5C7 + 888FAEEE434AD2D3CEC85BED5667364640A8B551535D8B98390B7068FD899905 + A0D4A26922722EECC5D99BA7E8B1C45DEABC118DD6B5CE1AE2A51399F879EAF0 + 398182E81B5263806C9D7D5A35B4E4595B6FD0816711205A1A8B0D099BB03626 + 63E601463B78F4DA21F20C1088EC27778EBB08F55434EE2FF32093CD854EA7C3 + A0691072510422A55188F28FC163B205984FBE0F1187326FA7670A808D2EB55E + 20D443BDA4A3D188F08B98F291ED84003F563D04986D3D04986DFD0F1448A2DD + 8C6E71890000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_10_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000074C4944415478DAED997B5054 + D71DC7BF77EFB20F0CCBAB82A848100BA38DF8A8F842548C9007988AA4362669 + 9AD4C4684D8CAD8F8C93B419674A9C699D26E3689CA45527698B4825C4BA2EC4 + 94951891922899EA0842C3F21290D72EBB8BBB771F776FEEB90829C2EEDE05D7 + 6D66FCEE1F7BCF9973CFFD7EEEEF9CDF396797E2380EDF6751F701FE5F00288A + 12BEED4E86ABFADB5330DCA816D541F8D4F958F46C01645205752F0CDFF9C247 + 00549FDACE854587233E658BA80E1BBF3A8CBE4E03E6FFE4DDC003B45E29E2EA + CEEFC5C2279F02071A1458519D7E79B20049CBDF426C72AEDF21DC02F4F73670 + 151FAEC1BCEC6C2843C3853A39ED12D5699FDE88AFD56AA4FEE234427E30C3AF + 106E013E3F9ACD4D4D8A446C52E2983A6EADAB474D79B95F4C937996F6FC2794 + 4780D37971DC232F6F1AD783F804E0178073473EC2136FB68C1DC05FC6EE3A40 + FAC6E7026A74DC00693FCD0A9045F7D98EA325B850A011071020F7A2240A60CD + 9E4BE05853A0BD8E90FA0FABC40164EFD6A25F5FE8B133B16BC3DDD4A7EF7F20 + 0E206BF7A7701A8BEE89295F329BE8493C56007FA759D1008FEF2C066B2E0978 + DE1F1780D5507CD71EEC707130D9ADC3EA2215C16EDB53DCE82F4E7BB45024C0 + 6F8EC36A2CF1D9E876AD1AE5EDAD089204796D1B2193439DF3246412F17B3ED1 + 008FFDFA1818D3399FDE0ED19E2FCA70D96143F2437340F30B8F9C5608F5521E + 28880E024D49F96BA950975FFC5768D6E6224AA9F40F806D0C11B0F343E5D573 + 5A345236CCFCD14C28A40AC1F080F1E11004409BBB0E2AD9F0A1E47459F1B4A6 + 04938215D895B218D342BE032C3B7A5A1CC0A3AFBD07BBB9DC678041033B3EAF + 402D67F7085178EAB800102A1B3E848C760E591F17C1CCFB914282FDCB96203D + 76B28F00DBDE81BDBFD2AB590AD651EBF3AABE4699C18087E6CD12CA0482880C + A94188A27FFE03DA755908952B46DCDF62B6E285D252982750600C0CF62C588A + 0D49D37C0078F56D386E7907184DE4E1396A0DE62C9B2D985548952320883425 + 67DC02103519FB90AB29836AFA049874B770387D29CC9A4BFE07F8DDC54A5432 + 0C262744433E647E24C4680014373CA2FBAB6B71A2B305132215609BAD78BD9F + C6FA375B4500BCF2161C16713FA7FCAF9CAC158B0A3548981B0F65F06DB3B7CD + 5B4D0CC223C28720CACE96419B938E30B9FB2CD468B2E1097529A6CC8F426FA3 + 090F77B238F0C64D1127B22D3BE1B4D5DDD1C00A6FAAEAECC3163E0271B3A7F0 + E35C0A053D604EDF66444743335413A384791144C9505E76CE2B0051EA893378 + 6076385C4E0EFA2B3DA8D9DD437E39A13C02646EDE0697ADC6E708E4D7E97048 + D782C80415683EF310084B9F0D5C8B017F59BD04795FFE07D7F976243B55682B + 4401649DD2C21A2B852C38085DB57D38925D80D40757505ECFC4AC5DE7330019 + B3C5C67684C404F32BAC5C8068B8D48282CC54CCE2870FC3EFAD5EFCAC0A3715 + 727475F6E07CCEC30897D31EFB4C3FA9059D18025A2681B9C38275939EC56F57 + E7515ECFC4B4ABDDAB610AF661E57D5FD5E0747FAF0040441EB8980EC59F9627 + 0FB5B13A5D0284C162852677D5501D91522A19D69FC1C622ADE8AC3007882C7A + 068BA42B7128E7986780D4C717C2E570772273BA053A71A31B870D7A44C6AB84 + 3209F91F13A6607184CAE38BD854FD5F3459ED3838271E890F7CB7321F6BBE89 + E3FCE40F89970B65C66447AC391145CF95505EB310C559BC46E04E9D6DBC861D + 174F216A6698506EABEEC2F9A7B7232A38CCE37D29F9EF20262E1A5DDF34A360 + ED2FF160287F6DE943F68983889C1723B4B1BB6C02C00F9964FC7D43B19808E8 + 7D06303B1DC8B85883C9732782E2779904E0421ABFA051128FF765565CC3ACB4 + 1F43DF69C0CD7A9D1089DF5F6F85315A858849A1421B07EB446F57AFB821F4D8 + D65D3E9B1FD4F3EAA3A853F4213842E125028EA1ABC51FEEC7DC154B84EBF6B6 + 76D4D7D6233A265A580C8918762085B75DEFC2AF9277E0A5855B3D032CC99831 + 6680ABC67E6CBADA8498E40874D719B1376E125645857B8D40CA8A9508924985 + 4C65D01BA0540D2C7836A77508E27A950E9FBD5089F888046F11D83E6600A2CD + A585A8663B40CB2588332B5090F392C7F62402292B57086708C1ECEDA32C73DB + BCD3E54077770FAC575B51B9A7C7F34AFCEFFC67B8EEC60BE30260C0611F6D01 + 3D4385FE4E06EB8DC002CEFD29EDF5A05BC8C85803A98206CB3979C34EB0AC0B + 0E7E4B4ECC93F2657E87BB5339072F6E2CF50C30F80FCD7855DF5DCBAD2FCC82 + 436E036B64F16EF69FF168D29A513B5F7020895BBE7A99B07B2586EF8468A869 + C414499C907D06EFF13B005187A99DDBF4F133A8EDBD06A7DD89933F5763C1D4 + A5231E40005665A60BE70407EB1020886C2C234034DF68427F2B838F7E765218 + FFF70C8088FC5978E0E27E543655E0E0DA2388514D1E152023733594FCF19298 + 76F1A66D2E66088248D7AC43B74E8FFC0D9F2071E24CEA9E01881101484B5B06 + 8592DFF7F39FC10858EC038B291946446DBA76183A4CF862F3653E5AF2614603 + 0AB0F3CC56AEBCE15FA2DAC6854DE787A246B03A2AC0F755F70102ADFB0081D6 + B78BC86FDD8DB71EBC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_11_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007ED4944415478DAED990B5053 + 571AC7FF370FF290084179449E1195C7BA3ED0C2B8F82A6C5B10AC5DC59D7674 + DA75AD6D5DA9B52E75B6DAAEDDD9B6A3BBCEB89DF1D1765A3B76AC75B5082EB2 + 6AB541BB200F91E7020156E28B57521220907772F7DE8B66904872812276A6FF + 994B48EEC977BEDF77BEF39D7372099224F15316F133C0E302401004F36AB199 + C8D263CF4377B782950169481C12D69F80174F488CB7B30F0BB60B40C5996DA4 + 6FA014F22736B332AABA7618DD9D3AC4ADFAC7C403DCA9C9261BBFFF0BE2339E + 07092E08D859192EFBE604A296EE46E89C35E30AE116A0AFEB0659747425E6A7 + A743E423653E13701DAC0C776B7B5079F62C125FCA8364EA8C7183700B70E548 + 3A19123505A151B34665FC4E6313EA2F5F1E17C7E979B6E477B9845B80BC0FC2 + C9675E7D654C1D5105605C000A3EFF12CFBE737BF400E3E5D88F0EF0E4C61727 + D4D131032C599B36412E0E5FED482E078527FECD0E6082BC672556002BDF2E07 + 69EF9D685F5D74F66F49EC00D27728D0A73DE9D618DBB5E1C7D4854F3E650790 + B6E3026C3DD98FC4A9915436D69378B400E35D665903ACC8CA815D7F6ED40EED + BF5E84F3AA16C8268931372008D32679635E4000A6FBF882CF153D1A00A32E67 + D41DED2EFA0E25A61E04CB42D067D4C3D86346777737F4861E040ABD11E32745 + 38B5CF9AED1F867953BDE12F960E71E6E181531C39C91260FBD754A7E7460DA0 + 31E8B0362F07E1BF8C862C40061E87072EC1A35EF930194C0C94B65BC7407574 + B4A1FC85F5ACECB206487DF30B987A0B1E6A64B8E80C55515B2BDEB85280C4A4 + 440879422784802304875A94045C218C160372F2B3C707C03C8611A0D54B39B7 + FA4C2EA491E1080F8900F79ED3B4447C3103D3A9E9C00F0D55389A32FCCA4FC0 + E8FCFFBB2379EC0052DE38048BFEF298005EBB948F160E8199313398D4E1135E + 4E08E63D978FA6E626CC34EBB12B61BECBF7F355ED38DD5C8F77131620829AFC + 2303D8BA1F96BE628F4E0E8ECE607D515787038D8D98BD201A029E884AA181CA + 43A712ADFB1065D7CBF04A58105645CA5D6CFCF96A317255B7C0A7DA1D7F2609 + 51D4C4670FF0FA87B0F67B0678987ACC26249DCE47E43C39446221B89C81C93B + 18E2FE7C501414E0B3A5731133659A8B1D93D5888C7C05D45E5648FA497C95BA + 0C75278BC61FE0E3EA4A1C6BED40707400E3388F9EB8F79C27AD54FE8B444E88 + FCF3E7509A910E215F74CF890747B4B4B31B9B0A0A210914E1170E317E7BBB9F + 2540E66E580DEC7E4E19AAE45339E0CE92C05B2CA1F27C20FAB4E3B79B5BD1AB + EB41426202268B7D60E9B7A0BEBC188A8C14B7F632F22FE3077F02DA163DB698 + F87873572B8B13D9E62CD8CC8D431A18E149EDFD463C7DE65B04C705C08B2360 + D287D6ADF2BBC89C130D1F2F1EF6D63651104F40A7D541DCDA8E4F9317B9B5B9 + E75A15F2FABAC0157030A5B90F17766A3C033CFDDA5638CCF5238EBEE24E3BB2 + CAAB101033503568889B156DD8BD700ED6CC08633ECB2C28C14DE1C0645E2E10 + 202B2EC6ADCDE38D2DD8DFD20CBF7009DAAA34287CB516411299CB2F1E2E6762 + BBA565C400F954D5784FA9C414F964E6BDBEDD80C57C3FEC5D3C50260958A033 + DB9196AB80D18B83BFCE8B45BA5CE6D6E6A19A161CEB6A8544264697AA171F2E + FA08CFC6AE710F409F89B98E368F0ED30E0DD637FFEBC09EE60627406B851AFF + 4A5B4E6DE21EDCC05D6DD7E2CADD0E6C9B1F0D118FE3B68FEDDFD7E01A4F0FB1 + 9F9009C886884CBC9E98E51E2071453C1CD6E14E64B6613B2BD1F6E2AD1BAD4C + 0A590C568854069C4C88F61888BD4D771120E0614378D0833D910E245DA985DF + 9CA9E0522366D09AB05CBC027F5F71C03D005D8508D2E0B1E3A1BAD9D3899453 + 8799494C7736D716888F53D679FCCECAECCFA8D58DC0C125CF616958ACF3DE81 + EBD43A71B3F481945C1DB41EEF24BFCF6604B42306A0B5B244094C17C366B263 + 2E35887B66CBDDB657A875D8D7D98F50790854D575C84E9805098FCF8CE68E1A + 1582E3436171989D00EBC236E18F4B76B90748DDF2D6A89C1F1C357AF1F1EBE0 + E34CC61F86696965FE1E2EBF885C6A14E4D476A2A1AE01F1A2002C9485E1FDE2 + 6F312D4A06B1AF805A954D0C84BAA11B87528EE2C9C8A7DC032C7A6AC6A801F4 + 362BD20AEBE1132B8546A9C3C55FC532111D4E5B6B5530CBE5CCB9C1449D008B + 8AAE424888A8953C90D98A98EC4658ED36D81D36A8CAEFE0DA962648457E9E46 + 60DBA8010646A1109F288BC11572F072440232172C1EB6EDB2631F2166F14266 + 7B61B73BA0B7F638EF996D038B270DA1D66810DAA047F64EB5FB85ACE4F83A52 + A32A1C1300AD831C236E4DE6C16AB420D3224424C97569630289B70506AC4A7B + 6EC061BB09368795BAECD468189D103480B2B4057FF28DC3CB1BCF13AC9ED08C + 55FD963EF2C5136B51D55986E9BE51B8B8E9AA8BE1EAF60AF2A5D319484D4E85 + D961829DB451CEDB98546200EF41D4572B912C4BC5BEB4838C8D4702408B7ECE + F6DEA59D90FB456253FC1617C3A76A8E93076BF721313E91CA732B13FDA110AA + 1B2A707542E46F50389FBF3D32004FDA797E3BA9221A31337216E3F87D083A95 + 68A9D51A54545CC7A58D6574109C8E3D3600EBBEFE0DE91D214470600813F5A1 + 10F4A4AEACA8427AD86ABCFBEB0F1E3F80DF9F7A81AC509762AA9F3FA4D4B957 + E2E30D5FA9AFF33E0DC1945645113E5FF34F24462C7BBC5288EA93ACE9A84493 + 4609A5BA0E4A4D3DEAB4D530990C14CC64487CBD31C94B4215043DAC1A12FFD9 + 5CF978010C27ADA18B6C50FF17F5D4D54841D157947F2CBB2AF453D5CF0013AD + FF0347C2AADD38A87CAF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_12_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008344944415478DAED997B5054 + F715C7BFFB621F88B0AE20280ACB6B012B41148865B0020151109289B126CD34 + ED68D264B031B526236A279326269964328D7634934C85C65AA5A90B1A0CF8E0 + E5035C4001AD6C82021B41DEEFD7BE776FEFBD8841975D2EAF82333DFCB177EF + FD717EDFCF39E7F7BACB2208024FB2B1FE0F305700582C16FDA9376A89D2E35B + D173BF829103B17B08C25FCE801D57C09A69B16305DB02A0E2CC5B84D32231A4 + A16F3072AA2AFF02BD6D3D0849FE7CF6011A6FC9899ACBEF216CF35610E08005 + 1323C765A732205BFB2E96063D3FA310360106BBEA88E2AF3761656222848E62 + FA1E9F6366E4B8B7BB0F9567CF22E2956C382CF49931089B0097D21209779904 + 4B657E9372DE587307CAA2A219114E8DB3C8DF9C66D904C83EE041ACFFDD6B53 + EA889C006604A0F0E83124ED6F983CC04C099B7680A86DBF9E55A15306887C21 + 6196245A9FED080E1B5733729801CC927A46C6086053EA7510A6FED9D66A6167 + 3F89660690F84E0106BBBFB1E98CE9DA309D76FECBAF980124BC731EC63EF994 + 3B1CD26B9079E716FC5DBC11EAB270CC361399D9180FE2C9023C2EE6624323F6 + 5E3D0F2EDF0ECE6C369EF30D40924F002402D1A402C21860E3EE2C980672A73C + EF7769D588CF3C8188E80868341AB436B7A2F95E33968BC5D820F54182972FE6 + D93187991080A6276B4AE247EC23450114262D026401E0B2B9E0B0B8686B6D47 + 534B135A5B9B11E1EA8A2DE4B350D7C5E071840FC48C1DB882B46F1802EC3A09 + 4D5FEEB40074A87BB0F1B49CCE82802B2007BF8004E1916279309BCC68686E40 + ED8FB5106935C87E76B34D5F8C0136FC211DDAFEC2319D588BCE58A63713F840 + 51829CD61F1112B212628791DD2D09C216804D2E4ED475676F07FEA3289A5E00 + DD143340897FFB523E2A34FD0808F48750385C1E2359A04CC813D12555765381 + 67447CBCFED46A4B61D03CBCCE4FCB660610BFF308F40345530248BD928FAB03 + 7DF05EEE013E7744BC103C961D380F224F951287FCCBFA4E8EDCE404B8880436 + 7D320778F32FD00F5E1B57E4E8E88CB673AA7AEC29BF01D96A2F081E0C4C0A42 + C0FD290BA307B4961C03C7E2A32DFC18C8B53247A5C23A773738F2051300F8FD + 87300C8D0F3096519DC69CCA8240E68079220772B07269086B5950545CC30E0F + 4F247B4B2D7C9DA953E14F8A52044B5CF08FF56B90979E37F30054F4F75556C1 + 25C00942AE3D0D40958AAEDB484E9B6D30688D088F08A5B3602267A1A2FC4214 + 6FDE08014F488A7834A32D431A246417C2446E5B762E0FC4B2D27A86003BDE85 + 41CDEC75CAE3B6ED423E6AED75102D10C08ECD07872C95F6BBDDE00F6991121C + 88B4EA5A88655E70912C42534333DC877AF0D9DAD556FD7D5C5E0579671B4C7D + 26FC59C3C396FD8D0C4E646FEC865157F358030D985808B967770E72028B3D7C + A6EF52F5235CE0884F239F2633029CA8A9C7E1FA0684AC5A891B2595F82CDC1F + 6BDC5CADFABBD6D28A144525380236C2DA8D48DFDB363E40DCEB6FC2AC534E38 + FAAABE3E24E75EC1E26009FD7DA0450DA9968BF4F5BF008F3DDC464B6E4F62B3 + 8AE0B1C21FAA9BD528FEA5EDC353AF4E8348F90538FB8BA1BBDD838A3D9DB45E + DB1920CFC4267DFD840194DD3D7831BF186E2B2420C875A0B9AA03DF26AC83D4 + D171B813E8E9CF23B7EAF185B2162F79BB233534D0A6CF1E9D89065812E282A6 + 8A76E46D2B83A7D8CB36007526E6989BC7153C2268C4AABB87F0F225053D80D5 + DD5A04E984381C1562F17F1AA319252D3DF8B99B982C2BB6CD3E6EB475617BC9 + F0A4D0FE7D2F8EC47F8D28EF58DB00111BC36036583B9119AD76D6A93320B154 + 49478BAAFD5D9285485A2CB129D04898216FEA428CB31316F27916CF8FD43743 + AE1F8493BB03ED73DFAA037831F815DB00D42CC422D4E366602C5B9176009240 + 4774D5F5E370E4B358BBCC7689FCEBFB727C70ED027E2671C5C9E46D8F3C53EB + D488CE38089EB70876221E0DF0E19A83480A7C9E4906BA2705B0E7B60A157C33 + 34BD7ABCE7E18A6817B1CDF6AF55DC05CBCF17CA2A258E067BC26FDE4FE783F7 + 7F6840BE410389743EFD9D2AA1CF63BFC27ABF44DB001B52DE9E9478CA2E3728 + 9172E5343DED6DF70CC78E5551565A1AD0AE1E424CC6617AABAD2257DD20D67C + 7C1A9D442F707B2E9DC5B9961ABAF6478CF1205E13EB336900AAA65F2ABB8376 + 110BCB74C0B1D532AB6DD3EFB522C72080FF721934A6219416956187A7338EDF + EF82CE5E0017DF0530998DE4CE5607BDDA404FA395A95D0CB6D3296F4D1A80B2 + 5BEDCDD8F26D3A7D7D28E605C449C77E511C77F210A44FAD8270BE805E1FEE54 + DFC5A07610AEAE8B602F21EF993430988C34444B5D07B3854C71E2574487EAEA + 940028CB63E9F19D9D016B0D5C3C67E65B3CAF639970D49183B8E858E84CC387 + 240A426B1C5EF175E4A79130C26836406BD04275BD117F778E1CFFEDF4C82F34 + D36105B51788D0A54FC3813FDFC2E9DE73BB08A5A90A7EDE7EB4480A426B1C01 + D1D0F7A8C85359A8ADBA873F86EDC7AB6129B49FFF198035A37E7F0BFB3210D1 + 5151F4A94C6350C34447DB484350E2A96B2A0B7575F508E484E0F8D64C4ADBDC + 00A032937A792712D625D29137980C0FB340CD4006424F674179F30778D9C970 + 6CEBBF616F37EFA1B0590748C9FA2DD1EBD80999A73F1D692AFA8F67A1B8B804 + 314BE2F149C25F1F113F2700DECFDB47FCF3E651F8FACA207597C2C1C1C1220B + 8AE2527CFCCC41C4CB3659089A7500CA54DD7584FCF6499CA99663C0DC074F4F + 4FB82E5904919D888668696FC140BD16175F2D999B00A3EDFAFD1222F3F629E4 + D49D068FCFC512377748168B515A5C8E43F17F43B44FDCDC2A216B46CD4E0575 + 1791ADCC447E7D2EC067617B500A76AFDDFF64008CB66E751771455588486914 + 168824CC019E54FB2FBCC3EADDE0748E7F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_13_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008164944415478DAED99795094 + F71DC69F3D59161156606139445059C08AB2515056309A5150B04D41AD89A926 + D3B1C6DADAA46A6C63D59AB6769A89934CAB4D9A119C3826258E14190E434D60 + 9301ACCA11442E455620B06639769763EFDDB7EFFB5228C8B2BC72149DC9F3CF + 7BEC6FBFEFF3F9FEEEF765110481A759ACEF009E1400168B451FCD562371E3E2 + 0E68BEA9641440142843EC4B99E07305AC9936EB28D963002A735E233C7D4508 + 59B98F5150E5ADF7A1FD5603D90FDE9B7D80B6DB5944E3572711B375070870C0 + 828D51E09B9733214D3881A0A8B41985700AD0DF7D9F28FD680BA25352E0EA21 + A2EFB970EC8C026B7B74A8CACB837C772EDCBD17CD188453802F33528840A917 + 82A461930ADED67817750AC58C18A7FA59FCCB57584E0172FF184C24EEFDE994 + 1E440E003302509C7E01DFFF6DEBE40166CAD8B403ACFBC9AE59353A6580F86D + C9B36471FCD18EE0B0519259C00C6096DC331223802DBF290761EB9D6DAF6394 + F7F67A6600296F14A1BFE792D3604CE78621DD5277E196AA15BB2322E0C6779D + 1440E1DF3F640690FC4621ACBAAC69CDDECEFCCB681AE805C762C4BE65CF2035 + 2C8A06799C918D71279E2C803333EF56944261D4C1CFDF0FF7EA9AE063B7E260 + 6C2262C45ED30FB0F950366C7D57A775DCBFA9EEC6C19242C81356D3D7DACE5E + 54D495432EF2C5D15572F80845D30B60D0644F9B794A163B81B8CC74C8D7CB21 + E00AC83E24A0EF372B956868A8C38BD208EC591A8D397C2169C671E28A322E31 + 04F8D53F60D05D9D16E39499068D06C7CBCAD06CD242268B86C85D042E9B0B0E + 8B0B579E10169B05955555E857B7E1A47C2DE4FE015303D8F4FA79187B8BC735 + F438FAA0BA1CE7EA1AE02F9540E22B21B3EF0A1E8B0F0E393151B5E0C21680C7 + E5D3408D0F1AA069AAC5A594D4A90398A6A1064EDD28C33FDB955818B100AE42 + D22C699E02A034D48CB86C1E781C1E7D9EAFC8C39E9045D82195FECF180CC3E7 + 5F64E4320348FAE5DF60EE534CC93C9DF9FB8D085E1A401AE442C071A501A84C + 53A6298091CD48A5EE80B2BA0279CF8FBF8C610E70E05D98FBAF4F6872647646 + AAB147836D570B11B8846C326E826100CEB0F9D1CD88BA57F07901FE1AB70231 + 7E926900F8C52958062606184FBB3E2B428BBB11C27902F0D92E10F0064D5A0C + 56180C46F29C832049F07033BAD7D404719F0E7F5927771AF7FF023094FD0099 + 98BEA600EC032C74AABAC0ED336395C417D73A1E62EDFA781AC066B343F14531 + F2B7AC83C46DEC12A38E8C77FC7A350EAF588EBE827286003F3F018B9ED9EB94 + 4775BAA212D9BA0EB84B84F4B5B1D78CDEE6011C8A0EC7B6C5A1E0B181E49C22 + 88A4A1107BF9E2F69D6AA47979625F54B8C378594DADF8DDCD2AF8F05DF0661F + 97E18E6CDF21584D8D8F1470DCDE1FD5D67C057A246CF0853CE87B8CB0B5E971 + 31690D423C3C86CB1CBBFE35AAC8A3645E00EED754A0E0F967E9DA702423B91A + 5879A9103C573EF6EAD878FD68FBC4001B5F3D00BBA96E5235F0CCC51C78CB7C + E8F38EAF3B71EEB9B588F5F51C55265FD982530D4A1026E0E0F74291B668FEB8 + F1583063734E09B47309885BF5287CB393D99ED8666E9E1440E4852B981FE38B + 3E951EAB381E389DB06294194A1A930DEBB38B11E9E1868F37AD9E30665A7E19 + BA7C58E8BBAB45FD916E667B628EBD63C2C04386462AE242010DA0AED7E2ECAA + 68C449E639FCAFC13AB89F70E5B2277CCEBACB45E084B9E3E19D2E94ECAD819F + BB64CC3BA75100F2CD31B05BC6DB91599D3E6C63692D84119EF4C3AEC545C29D + CB735ADE4AD8A13298102474BCC9E932599072A38E1ED5A8A47C9A968F28BF68 + E700D428C422F41366C6915ECECB40A3408BAE261DEEBD7A72C2F2878BB290DB + 5C830F376E47C2FCC831BF9FA928C6B90737E0153217AA9A6EE4BC508408F112 + 2635D03329804FBFE9C4FB9A1E18354694C42F0597357E13A9D1F5E36735ADF0 + 0FF687CCD08F236181A37E6FD31BB0F3E65DCC8BF20687CF2607856E5C7BE53A + 1688429D036CDA7F7852E629A9F55A3C9779163672CF7C7EC38B88F55FE8B09C + CD66426A763A38BE62F0DC383036AB90B375CF8838037829271D7D64E7A56674 + 82DC4FB495ABA1FC7537EDD729C0EA0D8B260D40E9F70DADC8576B902C16E158 + B8E321B288FCFD4FAD3A7A87468DF58ACF15749F99CB017254BD38A37C088805 + C3132235A778DDEB67368C6EDAFFDA9400A8EC1DFF2A1FA9D2E5D81832F625B1 + C1644442D639C89647C375AE8006A8ACA8C242EE5C28B56A98B85C88177881ED + 46C06C370DC6243BF0761DF0D6519573807F7FB293E854964C09602265B34D50 + 060740161D0D93CD48AF87D4DDDF920B3D03DCBC066764A3CD40EED4C8C59F75 + 0066BD05BA3A0D320213B17AE7272C465F68664A6DDA162229231E89491BE86B + 1B6185D56EA56BC1681D5CAE98C8E34800AAF39E49494792740B6D6E5601F667 + BF42A85D3A10B6388CDE0B5BED16BA168CFF7D03424150005612CC6031A0A5A6 + 1D2921A97827F9ECB0B15903287DF025B137EFC7D8BEF94774D62D56334C76E3 + 7033B210661A80821AB0F4A1A5BE1D2B3DD7E0831F9E1FF5F170D6000EE5EF27 + EE182B1117BD8606B0D159D68F69469D9D6A34D7B762F7B23D38F2ECB1315F3E + 670D40D5DB419010A8EDA946AC2C16DEDEDE639A5169691916CF09C71F124F63 + 9944E6D0CCACF6014A9F35E6126F2B4EC03E07085F2285902F1C6E462525A5F8 + 38EDCAB8E69F08004AD487F48F2AD3F15EC99F11440EA90BC342E9FBB5B7EB91 + 1AFC020EAC39FC64030CA947DF4D9C2A3E8EBC862C848747824D4E03AC761764 + EDBAFA74000CA95A5549BC75ED281A7B6B21B0BBA2FC40E3D30530A4A2A67F11 + 2E5C17C817AC7D2C80FF00CB19E3DD9645AB630000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_14_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007EC4944415478DAED99095054 + F71DC7BF7BBF05391614583C105139644C84CA2D8A961A0EC74EA5359A8C19A3 + 26B16862AB65A28E316D6A9C49A7D364429B904E49AA498A144B1003C6222072 + 8820600CA722E15CAE3D38B2F7EEEB7BAF031AD985E7CA1633D32FC32CBBEFFF + 7EEFFBF9FFFEBFFFC1724892C40F599CFF033C29001C0E8779D51BB564F5A7CF + 42D953C72A80645108C29FCF82904F70EC69D45A474F01A8CB3B44BA7A4AE0BB + 763FABC01D351F4035A044C8D677E71EA0FBEBF3646BD96F1196F22C48F0C081 + 8955F01B3959F08F3D89C5ABB7D90D62468071793B59F1F72D58939C0CB18B84 + F94CC433B30AAE528CA0FEE24544BF900FA7F9CBED023123C0D5CC647291BF3B + 16FBAFB4E901DDAD6D682A2DB58777A6CE625EC8B5D8319300F9A77CC8CD2FBF + F4580FA22600BB0094FCED0CB61CEFB41DC05EC6661D206ECFAE3935FAD800EB + 7E9E344716ADCF76248F8BF2AC02760073E49E9558016C395A0BD2346A371323 + DA513813626A7D113CD27D17DFD9C80E2039AD18E38AEC6983B15D1B2C293C3B + 133C8316EFC46D458CF742D6F77D95F1113B80A4B4AF601C396FB3C199F4D499 + 74043D1D84A68626FC2E220A09CB8258DDC7BA886D05603BCD6ECE398BA5A1AB + 409062DCA8AFC12F96FAE1C09A2808B8D32FDEAC01128FE4C2345668B7797FFB + C5F3705CB6181E1E0B603299515FD780609108BF8FD988794287D901D0287367 + DD78F7980A396D8DC86D6B828FFF2A2C5C22A56A8960AE7D7DEB1B08C78690BE + 29011E62B1C5FB8B33B35902FCFA1FD08C14CE8A690EA945D7B816A7AA2B503D + D80B0FCFF9F0927A41E22601C127C0E7F2C1E3F0211638A0ED4E1BEEB5DD4646 + 7C02022412DB01127EF531B4A325560D3D8A0A3AEEE18DEB9570F391C0C37B3E + D3E37CAE80322F9E02405FEB1DE8C1D5CA12BCB73E0ED10FCD508F04A09B850C + 64B5B6E2746D2516AD92C2C9791E639C4F991531E6C5107084E0512B2C6D9C06 + A04168A0B2EA3284113C1C0B8FA2D60ACD64BC2B99F9EC009E79ED2FD08F953E + 96F9D2EE76BC565606AFE0F910538B162120A600F0B93CE6331A40C42520E00B + D1DE75177D2DB7F15962225C84DFF7CA1EE0D53F413F5E35A3C9077BE7418DE8 + 4924FDEB3C442B9C20741040C8158147F5AC80C707C1134F02D0A287D1C4B01A + 960FE1564D157292A9427620A6C4650F70F06D18BE9B19C09A4E55D7234FDE09 + 775F67E63D0D60D01831AA188346A5875167022122101EBD761240AD57A3F44A + 093E888B429897D462DCFF0980D6A041744E01DC835CC0137261D29BA1EA1D87 + 8B868F9D01BE88927A538639D85AF06FACDFB88E01A0D782F2F20A1C7B2A183F + 5DE6653576D1C7452C010E9C8441CDEEDF290FEB1235EB1CAF6F8047A02B637E + A049895D2BFD90BA3A1062FEFD764167BEC0A667E29842BE597B135B3CDD7124 + 24D06A5C954E83DACF2B589EC8F61FA1D2DCFA50030DD8E84455038AB5723849 + 1D30D8ACC23E3F5FEC5F1D30A55DF4B92F1118118A6FEF7D0BFA6A7A5C84D598 + 074AAEE3AA6C00C77562EC3EDE3D33C04F5E7915665D934D1948F9B2140A2997 + 9A860D58A677C0D9CD9116DB6DCCB904AEBB2B5CD55A7CBA3982194A168D418F + D4923A0620492FC07BC764ECCEC426FD3D9B0092F28AA159CC87BC7D141FC6FC + 0891D2FB639A3633A1D3354DA81D54E1FD0DE1F076E44D1B936E9BDD2383CFA8 + 11978E0EB23B13F3CC7D339A7DD0D08412F3CAF19D940743C7382AB7C7DBD409 + 9600F2C7E5D052934153DAF0CC00D18961301BAC9DC88CD33EECE5DB9DE8208C + 583A66C647212B6605E0A5BA3BE8F51262B045898ED7E5EC66210EA9B6E961E9 + 374B90D1528550172F7C92FCE2B46DD53A3576E47FC2FC9D97F24B8B6D06D52A + ACCF7A1FD2D56EE8AE1D6407F0DF0C286C02B8AE18C5A16F3AE04CADBA97A357 + 4DDB96CE563F21C2E0C0302E47F8C3893FF58CFC564B174AA1858BF73CF60009 + A9BFB1C93C2D93498784EC746A7326B6DAABB44E571522B7AF0521A16B505151 + 89FCE43D58EAE2F6BD36F96DB790565EC8F4BE416B84CBED1176451C19BFDC66 + 00363AD733840F6523CC56825675450D3202BDE1EF783F03995D7264740E6041 + 8084D94F8DC9D478BA4B8BCCA3FD6C3270C86EE6CBBAEE20B52817B11BD64320 + E4434B1D5BEB6ED6E370500C93811A59172EB4D54166D6C1DDCF99D98E906612 + 7D0D43EC16B2EB9F3F470E7594DBC5FC30CCF8834083C8980D7095B84267D232 + 00CD8DCD50A894A0F6AB10B87220717503D791849E82A045F7BE47971A6FFAC4 + 2362E767D3034C7C4333DB52A8E564CAD97848572CC412EF25D099B50C00BD91 + 33907A0A44031DF56B248D309A0DD4A650CB00D0FB2979D3080A7757C0D7CD8F + C3FA2BA6D914FD7DDBEE7FEEC0A8A3026B824260A24C6A0CEA2900B47193D908 + AD49C300E8A8ECF4372A90167512FBC2521963730290D798439E2C4DC3CF12B6 + 31EF69E3348089E96D23338C2C01F4340EE0B9801771E2C7A7264DCD09806CB4 + 8FDC752E0584A7006B83C3180083C9C0189EA8031A8081A35EFB7AFBA1E854E2 + F0BA13933D3FA700B4E81A3898B717BDE64E448646C244FD3C08A05428D12FEB + 6716B5D8259BF0FA8637B07241E014337306408BAE85378B8EA1A0FD0BC446C6 + 824FF01800E59812755575D8BBF600B605EF608AD55A8C390598D05F6FFC99FC + E3B5B71015110DB133C164E06AF135DC3D3C38E3C39F08005AC5772F93072FEC + C50AFFE5F05AE889A22B5770637F33DC1CDCA735F0C400D06A1B6A26F7E4EC84 + 6001077DFD325CD85E6C71DC3FB100B4E8E2DE97F33C5A861B71ED957A9B33F0 + 1F7EFE8DDDD006592E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_15_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007BF4944415478DAED990B5054 + D719C7FF97DD85BBA0B0CB12C044519482046AE5A9B2464554C2438D1A136B33 + 71A28DADE3A369AB492C7532DA9874529BB4D3C44E6CC1D11A6B7C1103F19122 + 106B40828018044159E4B50B6B619FEC7BF7F6EE65B21384DDBD2E8BD4997E33 + 3B77F7EE77BEF3FF7DF79CEF9CB34B501485C7D988FF03FCAF001004C15C4D16 + 0355756C1D145DB5AC0208272762CE4B27E0CB2589B114EA2CD1C3006ACFBD46 + 09C284884CD9C22A705BF55FA1EC552071E59FC61FA0F3E619AAF9CA5EA43EBF + 0E143820606515FC9BD32710B3E02D4C99B566CC20DC0268FB5AA9AF8F2C4742 + 6E2EF84142E69E1FC7C62AB8B25F85BAE262883714616248D49840B805F8AA20 + 979A1C23C29498688F3AE86C6E416379F9586867E6D9FC0D852326C60150B47F + 2A95F9B3CDA3EA882E00630250967F14CBF3DA3D07182B615E0748DFF4F2B80A + 1D35C0336B73C649A2F36A47717C70F5C4797600E3A49E95B10258BEFB3A28AB + FA9108AA95CB312390441019E8D6B7F8BDC5EC00725F2F85B6FFA4CB606CD706 + 5726D3F623E3F41184911350B8EC050882835CFA5FFAF8103B809CD72FC1A23A + E38D04BBB4ABD26EECACBE04A14000A15A8FBF65AE06CFC7F9FAC77A127B0AF0 + B065F65F1D9D78F7DB4AA4CE49415D7D1DE69241D82BCE183D40F6CE42583517 + C6BCEE1F6EA8C189DE7624FC2881F9FCF5954A6C8C8EC12BF149A307D02B0ABD + 2E586BD2E1544B13AA7A7A502397C1021B22A64E466C4C2CB83E5C18CD26945F + 2DC7BE8479C88E9C3EAC7D69C1499600BFFA27F4AA0B5E114D500668CC36FCA5 + F61ACE4A24F406D11FC2F020048B04F0E3F241322F9201E0105CE868C8F2CB65 + 38F66C0E660A859E0164FDF2300CEA32A7821EC66E2B14D8515A020D69435894 + 08248F04C9E133E2EDF620009FE70F995C8AFAEA4A9C5ABE0AA17CBE6700462F + 3C811BF26EFC94CEE684083EFC8349F0B901E071B84E01FCE8FB3C0E8FBE92F8 + F6F64D0C74DDC1F1EC2CBA320DC6BB5C50C40EE0D95F1C8449533E2AF19D9A7E + AC2A3E8FC0E90120037D997BAE00ECA2B93E3C07809E1E4A855F9CC199EC0C4C + 0B123C24C08E0F60D256BA154940EFF4BBB5C51720F3B762E2247FC73D5F1F3F + D80606FBF7038900917D050E1E06A0D168F065C5256C8BA12B525C9CA33D7B80 + EDEFC03CE01EC0999D6B6DC33EBAAE87C60E66CEA43343D93E001829C4D113F3 + C900120AA30195BD722C5AB268084037BDB8D5D455E3C0FC79489FF2E490B88F + 0CC09EFDFF3C4130434723D301720376A5242133229C9EC48343A787DE46E414 + 9541BC58EC9803CDB75BA0EC6A47FEB2744406FA0D8B5B72B88425C0B6B760D6 + B1FB39E541BBA7526245F1453C9518CA889FA4E3E0EF4BD321F01DBAC9ADEA55 + 627BC575CC11A78047F8E266433DC20D467CB83815023FFE88B15903646ED909 + 8BB1F90107E7E3FDFBF699A407FB9BEB31318C0F73AB0E452B168E28A8B45386 + 3D0DCD887D7A261AEB6EE3999020BC9D96E0A838A30258F6F31DB0191B3D7A02 + BFAFBE81226D1FF44A13F627CC46D6B44923FA1D6F96E0C3A60E18E8C4BC3A23 + 125B66CD1CD18F8089B95EEEEC83AEA4016BF33AD89D89AD26894700BFBE721D + D7AC2A66DC57BCB814147C8789B19B44A5C79E8A1BD8181F8D8C292297318BDB + 64D8F5EF3AA4533C14ECEE617726E6D8A46EC57E5FD077F6DBCA467CD123439A + 40888FD2133D4AC248006F56DE4094D9071777CBDD0388B35361333B3B91595C + 76765022C5D1AEFB58152EC21BD193BD0270B8BD07057205841A332ADEBCCFAE + 0A1194CEA3CEBE6CBB851D974F6143DC1CEC9E97E5D2B74ADA8A77E8056B7D5C + 0A5E8C4D71EAF7E373F968E52A40760EB003187C02FD1E67AC45ABC3747AB1E2 + 12CE4BCAE7D23EFC41D28BE0B060245B4DD83333C269AC976BEF4014459FDA9A + D4EC8650D6D65D1E8B776756AB11EF7D538A939206CC4A8C478FB407CF058561 + 4BF2D2117C6D585D980FB9C000ABD186D91D06769378DED2A831114F50666C6F + E8C25DF090949C04336542D3AD266C0AE061E5A4A1BF4AA8AD405E53176ED285 + 421419087993122FD0C56DEF6FA46C9EC06B5E177F4FD58FCDE78F81080DC6EC + A71360B41A60A08FACB535753890928905113F60FC6C16FAD476A705076BBE82 + 8A6F61C45B4D36F435AAB04FCF73BF0E5C3BFE13EA7EDB55AF8A6F25AC38C435 + 20FE87C9889C1E098BCDEC00A8A9A803A1562194F2819AA020E752E0F17D2198 + 1A005F7F1ED3BEAF4D8D54B9059BA76660EEFA4F5C037CF70F8DB7ECDCADD3D4 + 1B17B761615A3A42424260B69A8700182C7AE8D506688D6A1001836DF4960147 + 7B83DA04A29B44E9E62A04F84E2058FFC5E42D8BFA6328959D9E8D10C1138CE8 + 0701ECEF2D360B8C3488C1AAA7BFB73800986D788B16F96B3E8578DA4246D823 + 07F85D491E55DC7116398B721F0AC09EF9BEBB4ABC9FFD3156C63DEF10F5C801 + E8B8D4A6D3EB21F5B987A459C96E010C6603FABA15E0F493F8F38A438ECC8F1B + 80DD064C5AEAB923CB20786AE2B0496C9F0376F1FDDD2A28944AE8553AAC8E5B + 8F9D0BF210EC2F1A26665C00EC26534BA9AC7FCC47E2EC0408840206402697A1 + BEB61E21FC704489A2B168C612AC895F37A2F07107B0DBF5AE0AEAA54F57236D + AE18FC4012927609E288441CC8F98875A7E30A6037A6AC966D87589C866E7AE7 + 2A0E5A8C3D4BF63F3E00763B70E56DEA939602F04912AF446FC5ABA95B1F2F00 + 7B65DAF6D9465CBCFB398EAE3D3BACD27802F05FCF85A0DD3C67292E00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_16_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007FC4944415478DAED990B5054 + D719C7FFCBDD37CBBA2B05598BE5A5BC7C004B04956825D6370C8DD4D657A599 + A46D0C6D1EC6D810DB3A4E4C9C769C4932E9D4C6365833925846835604199187 + 01141FBCA228264809BAB010D8E5B5779FF7F6DEBB755B8485CBBB99C937B3B3 + 77F77EF79CFFEF3BDFF9EE39F70A689AC637D904DF02FCBF00080402EEDB6A37 + D39527B6C0F0A08A57036A7F2DE2779C845828154CA65077811E045075F6655A + 354B8DA0C5BB7835DC74FD088C7A03B429EF4E3F404BDD69BAE1F201C4FD680B + 681010C0C1ABF16BA74E226CC57ECC59943A69102302F47536D2E5C793119394 + 04D90C35F79F84A078356EECEA46756E2E12D2CEC1EB3B732705624480D2CC24 + DA3FCC1B73C242C7D4414BC33DD497944C86766E9E3D99963364605C00E7DE0A + A0D7FEF217E3EA882900930250FCE14748DED73C7680C91236E10089CFEE9C56 + A1E30658BE79E33449745FED68C2036527F3F8014C937A5EC60B2039E3066847 + CF746B1D64B97F7C8A1F40D2DE22F475650FDB18DF7B035F6B34B421BD3017DB + 2316E2A70BE287F429F8E0283F808D7B0B60EF3E3DC9F174DAA3CAF6CECD729C + 6F6F43B7C1800B9BB6C15B2A1FE4CB7B128F15603C65F627B9A7210DD6C06830 + 221A121C48583576800D7B72E0E8CD9FB2BADF6735E1C9ECE358F983951009C4 + 28B9548C13EB36226CA666EC00A42167C285DA1C240A9B9B70B5B595F9E8D065 + B5C06CB572E7D43E2AC43F110F8229970FBF6A05A16FC5F17503CB795166364F + 80DD9F80ECCE9F10D102DA398A271B1A70A4F626FA853494DF9543A9F28242E2 + 054F9117775E2A94311F29841E421002218A8A8BF14674343604058F1E60FD2B + C760EE291E56105F6B2749BC565A84DB262354019E5028142018912242082921 + 838411CE8A167A8838000921E58EBB0DDDA8BD568A0BA94F33BF65A307B04CC0 + 08B0E277E4E5826456E55E1A6755117B480601B0D1778EC27F01448408E5D7CA + 913453895D51F3B9F39732CFF10358F7D29F61ED2D1997F81E66626ECFCB8351 + 49BBC43F02908A9C22854CAA3C02107A10DC7F2C80C4430A91500C9BDD8A9CF3 + A7919FB211BE72E928005E7C07D6BE2B238A1480747BEEADCA6A9CED6C867790 + 92FB6D35D99851B581343A27AD4C2A633E52F869FCA09EA9E6AA0F3B81590099 + 48CECD0336B52AAACBB04C0CBC1AAB1D05C0AFDF86AD7F640077D6D065C0E6FC + 02CC8EF60165A7D1D9D8039543800DC101D0FAFA61B6A70CBA7E127719BF23B7 + 3E477C423CD45E6AD70466016C0E1BAAAAAB61D0B7E0F08A2588F3D34C1DC0EF + 2BAEA0C8DC09C90C113AEE1AF0C282303CB7201C42423608745B4931121296B9 + F29FB5FB4D4DB87BB71EDB428390BE280232A1D3BFF058214F805FED87CDC4EF + 71CAE366676A7D7C761E54A10A4EFC9B4BE2F1C360BF217D33EBEFE3637D3B22 + E6477000C68E1ED4D6D7224EA560522606414AC9007FDE006B77ED81DDD2F098 + 83FB7CFF5FAB67A2BAF55239C40A1152BC03F0DBB870B7BE3BF24B81A0004865 + 527C51FF257C283B5ED58663A9666860DE006B9E7F1194A57E4C2390FFAF56EC + ABAE818DB4E2B3D43550496443FA999965CAE2EC02CCD2CC02D9DE89F4E8086C + 0FF3070DF14061B0BA8E2F1EBBCC7F4FECB0DE1F13009B16EFD6D563898F378E + AE5AEA560C6B87AE3B83F4FCA230A825C4886DF30660F7C404A51BB1C1C705B1 + 96D5F000072BEBB0332210198B23C71484C78DB453F8B451078F8A2FF1CCBE96 + 91011236C481B2B9DB91D987EDCC4E53C86B3520D157092FA16842008ADA0DF8 + CDAD66C4D2429CCAD0F3AB4202DA34219DBB3393C584F7AA4A51D7AEC37BAB53 + 993BADCAADEFA12BF9F8E8CE0D4459C00FC039025D9326FE9FBA4EFCA9A90D32 + 5F6F74E9BBF06174204215F2217DD9117DBAF21E7A3D05886BB72333A38DC762 + 2EFDB549115EA96BC4DB15056815581011E92CAF5557AA5093B6875B460C65FF + B8538383551741483D90AAA770E00DDDC8004B57CF9D50E15F5B6C38FCC50394 + 9366C4463E01958F922BA3BA873ACCD6B7E10FF3FD87BCAEAEC7829FD736C227 + 5CCDDD140F59E4D8BCEF2B3E23F0F284087738281CA9A9C007B51598372F0CF3 + E63A036371983980AA9BD5F8DDC2E5480E8D1A74DD89CF4B71B8EA3A94C19ECC + 7A8A4240AF1469BAFE91CBE8D58FB7D31D4D65E38F3A28BC4F90F00E9C0B6D4C + 0CB7BE67176876CAE602282DFA0C21161A61348120103030D7B40828D408EC20 + BDC4F00E51C2432840DBED2E6CED27B03E30114BB6650D0FF0E80DCD78ED42C3 + 39FAF5C297B0697DAA2BEAA4CD04076D6720EC1C00C96C78DA746D30300B3F3B + 4931FB03A6EC4A1DDC22502C7796E0DE561322092DB2B63A1FABF37EC5345E63 + DAA3D7FC2D01732235F09FF53D4E380BC082B02962A3AD0C04098BDDB9C63233 + 8B40B3CD0C2B6571B561EA32339B7B39CEECBC088D72F6D402B076E34105FDB3 + 335B90B236051423DA42993900368DEC94C30560E746C53600808D3CDD4D20FB + C7E711EA13E11235A500ACA5E73C433F14372334247440FE7351FF0F001B7D9B + C30E07935A7D7D7D3036F7639E221C473765B9223F6D00AD3D3A3AF1AF5AAC5C + 9508B958EE0260F3DF2A20419AD863337A4823FAF466CCC04C3C17F702D2B4CF + 0EF9CA76CA01583B7CF9209DDBF229A2A2177213F876DD1D74E8BF66765A32EE + 0985AFC2170BFD62B02228114F85AC1EF65DF3B400B02FCD97FF251621DA0028 + E5335056568EACD43388D26847DDD9B400B076F6F6297A7FC95EC42E8BC1D5E2 + EBB8F54A33DBD7370780B5E4BF27D2ED541BE67B452373F32763EA685A01EE75 + DCA133F27763F78AD79110F8FD0905F83755B28EDDD4A17E650000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_17_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007E84944415478DAED996B5054 + E719C7FF7B3FBB08EC62B8AD126E96054DC36A23562E66C02B0246136DD2689B + 0F99496B62ACB59A69625BC776AA339976D24E63D3C6898CA9414645C74165BC + 21B102055945A02069D715506057607781DD73F67A7ACE0197A85C0E978564A6 + CF973DE7DDF73CEFFFF7BCD7E71C014DD3F8369BE0FF00DF14008140C0FD3ADD + 145D75F43598EFDFE4E540357711966C2984544C08FC2974A4403F0570F3CC0E + 5A19AE42ECE2ADBC1C1B6E7C028BD18C452FFD69E601DAEA8AE8E66BFB90B2F1 + 35D01041000F2FE7D5270BA159B61751CFBFE237883101FABBF574F9913C2CCC + CD853C58C595C9445E5ECE2D3D56DC3A7B16696F1423F099797E811813E0CBC3 + B9F45CCD6C44691226D4405BF357682C2BF387766E9EA5BF717AD8C0F8008A7F + 1F4DAFFEC95B936A885900FC0270F5B3CF91B7A765E200FE1236E500996FFE78 + 46854E1A206353CE0C491C79B5A345425C2F3CCF0F6086D4F3325E0079EFD780 + F6F4CEB4D6A7ECEC8759FC0072DF2B457FCFF1519DF1DD1B266A36278900A9FC + B1B20B7FFF941F40CE7B17E0B616F955E0231B6E65FB48578E82E6261C5D9303 + 4D48A4AF9CF7249E28C0542CB3FD4E3B324F16401DAD861632EC4B5B3E7E80B5 + BB4EC3D3573223EB7E7E830E85C616242D48427969392A5EDD0C89483E7E00D2 + 7CDA2F029B7B3A50D6AA476587111D363B7A9C0E28C54284288291A852E2CBFB + 2DD0A468A10A54A1BAEA0676273D87B5B171DCB3A5878FF304D8790CA4B5644A + 040BE8815EBC6336E34055056E9BBBA178468AC0B000C8093964DEA1894A9A1D + DC6FC23C0D44CCBA6F323D84EC411BFEB622677C00D93FCF07D57B7554417CCD + E9A5F171ED4D1C69AA832A26088A10822B970A65202404C44209C40231646239 + 732DE6EE0931C15D8B98F2F325E750FACACB08922AC607E098821E60C5BF7BB5 + 143A6B274235C1100887DA968B0398B12D063138BE5900828310711032D1005C + B5AE1A5BD473F043CDB3B872B8981FC09A9FFD15CEBEB24903ECAD28C5B9CE0E + 842529B97B9A0172516E88C422C83C0A2894320E8015CF1AC1410C455F2E51A0 + ABAB0B6DF55538919B3D0E80ED1FC1D95F39A64001C811FF3BA33760AFAE0611 + 0B4238D17D46129499C2B3018108571030DA29B4DAFA10A40A466C6C0C5421AA + 4108C2177D8968A0270ACE1F45D1F22CE88BFEC913E0DDFD70D9C60618C95CCC + 26BDFCE46948E215CC507481343AB0EDF944BC3C2F1EC132C257CFEAA070DEA0 + C7015D3D921725236C7638377959D13221018958CAF5C68D866A2C1638A1BDFD + 607A00D8E8FFF6F62DC8955244DA45389895893005316CDD6A66886DADA8445A + 5AEA53C387FDB5F49A51C72C0071CCE2B1FE5E3F4F806D7BE1B2F37B9D329CBD + 79F10AEADD7D08B4D138B52E1B4AE9C807DCB7AE54A23B4409F51CB56FF8D899 + DDF8416B3B0CAD06840A85C88D553393381A3505E53C33B2ADBBE076343F5161 + E4F1FE7523DD40CAF133DCF59F33529015153962DDC61E33B65C64A29F95C6DD + 9BDABA70DFD406613F859C9808AC8B8FC6FCC1B9C1DAE5FCCBFC0056FD743BBC + 8EC60945DF60B562DDB932844A6528DDB866D4BABFAEAC45A9C5C2ED095666A3 + CB548761E377E62235320434A403C2E0F4D5BF947F8D7F4EEC71DE9D10006B9F + D4DD81365489A591118F37F23531AC5D69EBC6A9FFB620334ACD443C8CD91B84 + A3FAE50DC0E6C4226FFB98429F14E46FE30D90B636055ED74819997B5A453F32 + A19046F9053DFF554840DBFD26C6EEB0A3F8EEBF51A2AF87667624DE5F9A3D6A + FD3A530BFED15083D4263D36ED69E5DB033D532ADA4D7B71EDA115174D16945B + 4804AB540808628E1146233E7F4133EAB3DBEB0DA836F762B3538A7D1FB4F338 + CCBDB37BCA84B3D13BA76FC499AF6A219C350B7322E762B67A6069D455DCC26F + 5EC8405E42F288CFDFB3F620BBE853E61CE5C13627811D1FDC1F1B60E9CA7993 + 12DDE776E1E4836E94745A606636A698981844CC09878239123B3C143C1E2F4C + DD46B437DCC1D925F1A3FAFA91EE2E5A65CCF1BBD78D7D7619CFE3F43B3B2605 + F0B1EE3A0A5B9B90BA3015AAE0104EB4CBE382DBEBE2AE29265565A3BF6B613A + 5E4DD20EEB8364CE495B2F9D40ADC3042921C606651CB4B53C26F1BF0A36D30F + 0DD72705A0177850101E80BCAC9718D16E78683748979D13CF9A8532A3EA5A0D + 9299042C9D96209E16F99EA5982DECBAC0854B62172411722E73EB6CE8C20187 + 0251B119F8FEEB5F8C0EF0E80BCD648CF1452FFE4B2296AD48E70E654F469F8B + 3049E25EBB013DCC3083834654501CCC6437CC8E2E102A0281E172481512989A + 2C785BBB13DBD3770B067D0FDBE69402B0F6BBCB7B689DA3120B121670D1677B + 81ED0D16808561AF1D6E2647F0900C20536E63CA99C88BA443BB71B7A117DA80 + 14E46F3AE6FBF6366D008DC606FA0727D6226F451E1C5ECA37795DB493812039 + 080F0B340840BA6D433DC8646E3D2D7D881327A0F0F562044867F9444D1B006B + 2B0FA5D251F323A154291F1B3E2C001B7D37D72B2E502E8AC99F07DE48D87B28 + 585A6D589FB809FB57FFF1A9AF9ED30A70A8FA20FDC57F3E43B2F6BBDC90696A + 6E02455120985C98C986E10D747143877490B075535CF6961CFA3DEC5CF64BA4 + C5BC38AC906905E8E86DA7330E69B17AD54A2EFAEC9BB6B797FC02CD0F1BD1D9 + D70993AD134AB912A10111581A9D8EB4E817313FFCB951054C2B006B9B8F6DA0 + C9302BECCCF1215E9888831BF227D5C0B4039CA82BA0F757FF0AA4D58E535B2E + 8F19E16F1C80CDD94FAF3FB20AC9EA85F843CEC1493B1F13E0DB6AFF0323AD82 + DD72A60AD00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_18_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000079F4944415478DAED990B5054 + D71DC6BF7D727779EC2E20B03C44C4888F44946940C5908416E303471DB53E62 + EA247D24B68D4DAD26A34EEB38798CED74F298C4649A9998366395C41A260341 + 6806A43404B08A4004041F2B6E0A0AEC836577EFDDBB7BF7F6DC4BB31DCAEBB2 + BCEA4CBF999D7BEFDEB3E77EBFFF39E77FCED92BE3791EF7B364FF07F85F0190 + C964E291F5317CDDA91DB07D532FA902436206B2761740ADA464536974A4400F + 01A8FFEC055E1F6B40CAC37B25556CFAC77BB0DFB32163E39B330F606E3AC7B7 + 551D43E6D61DE0A1800C9CA4CA2FFEA50069394791B464CB94418C09E0B4DCE4 + ABFFB401CBF2F3A1D119C4EF42147E4995DBAD7DB8525C8CEC3D45088F9E3725 + 106302FCED643E9F981685A4B4F9413DC0DCD68E96CACAA9F02E8EB3557B0A87 + 0D4C00A0E8D564FE89677F32A1079104302500173EF8081B8E74040F3055C626 + 1DE0F11FFE60468D4E18E0916DEB67C8E2C8D98E57C8F1654189348019722F49 + 9200361CBA049E73CCB4D7212AFE5DAE3480FC172BE0B47E326A6552E786C954 + D91FDE9706B0FEC532F8FACE4D8BA9F16436C983385880C94EB35E3F8F576A2A + B0282A1ADB17A44B075877A0105CFFF919CFFB6F5CAE46E1DD0EC0E142D5CE1F + 8F0F80B6154E892927EBC6DFBFB98DDAAE2E7438ECB03234342A0D0C14853483 + 1EEB52E66281C1806B361B76977E8EECDC6C545754A364D3165C3D53241160FF + 19D07DE727C5B08C1F68450731FECE950614B6B7810F5543A3574315AA848A52 + 42C9ABC4325EAB1F56BB0D91BC1A1ECE8BE48716C01863C457753538BE340B9E + D26A69006B7FF92118C785510D8D4725A65BF84DED5750E814D0278441A19607 + EEA9E521A0541494721594322542941AD00E06344D2339710E1464026B6D6BC5 + 265D2CE6D4354B07F04C520B9C6C6EC65B0D17316B81016AAD6AD03DC1BC424E + 5A41A104A5D088E70208452004514A8AA46B0AE62E33E27A7B9077DD220D60CD + 2FDE05DB5F3961F365A666BC547B19B18B06F6156E0B0396F1FD0780749FA804 + 03C242C203D157062028F15C41BE77F5B961FEBA0ECF75FB2402EC7B03ACB366 + 4C8332D023DEBBD34F63737109F4F3C3D07F8F06D7C7212FD188F49844689503 + 6B9EABBD769475DC863F8C42EAE264114088BE4AA616BB8E107D0146F4F5D959 + FCD61B2A11E0F9D7E0758D0D309AF65DA8463D6F83B397C61A63020E65664017 + 420D29E7E368D2C55A71BADD8407572E848E8A1C147D8D4A2B1E3F2D3D87FD76 + 3F9E3E629E7A80564B27B6975641AE52E0D9B445D89BBE78D4F2B7FBECD85252 + 8E8C151988D0EA06455FA55089E71535E5C8B9DD8563873B2500FCFC28BC6E69 + 7FA70CA757EBAEE0E31B6D78D4188B771E5F3E6A599A0C89AD9F57809A6D447C + 427C60E00AFA36FA426BD4B75EC6EC8616BC75B84BC28E6CEF01F83C6DFF5580 + 86545598BBF06E531BDE7E2C0BC650CDA8657F5DD3801A86C1C2C50B870C5C27 + ED84C3E940776F37FAC8C4B69A64704900AB9FDB07BFA725E81690AA16AB0D3B + FE5A8D07D252E1613C703968B8DC2E3207B890A6D321957CD222755868D0624E + 840ECD9F489CC8843D31C7DE9A74C332B083AE6D1E0EBFAAA88586D2608E6EC0 + E8A2483DE6EA866FB52F3EAC92BE2756F83BC76D68AA2519207B5D26FCDE9176 + 643ECC84E4721ED5653725CE03240BC978F7A41AE0380F9A2D77498AEDC62D7B + 2F9ABA3B6171DBF1F2A39B90159F2AA1062FCE9F78733C2D600DDAACD94DE3BA + 93C135278D3B6E62DCE9410FEB4138C9F1E1BA30846A42A1D56BD0D2DA8A63C9 + 71C88D3148AAB7E68B1B1217733F3B18B4F9BACE9BF8516901E2E2E2A1D7EB11 + A9278B38B27CD6AAB5E0781F7C7E1F18B25132DD34C148F3F860ED93E2C43592 + DC1E2F7616FD11CB1352B0B4FEAA34801579F38206A8B53AF04A970BEB1FCB17 + AF3D1C032F59DBFBFC5EF15C38F6F4F6C2D4D88CD3DF998FE8101579B877C4FA + 8E5FBF477665162C09D3E2698B4C6A0BBC10344037C9E3DF2D38815D9B9F120D + FB393F3C7E463C17E464FB5157791127BEB71939B31F18B5AEA2F6461CAC2A16 + 97244733D720A2A2726C80DAD34FF23DA62F830610F492CA854D1B77404EBA06 + ED75075A42E83A8C8F464BE335C474F763BB3F04D118DA7D18F0382F6751A5F2 + 21C21806CAECC2214E8B5929ABB07CD79F4707F8F60DCD44B4E5A3B5BC2E558B + E8A85981AEC39196F0F2AC0820C8D4614277878564A06C6425AD84868C11410D + FFBC844A533910C1213C5683DE7607DEDF780AB9F3568BC624BF629A880E97EE + E75BB806CC4D49193470C5E81200CFBF2118B294B6DEED03CDB8C58D8E422513 + 776D21616AC89532F4B4F5E1A74BF763DFAA830153D30270B6E9347FE2EBDF23 + 63D9B261A32F0008E6BD9C0F1C8163FD9E41BF67DD5E31F2DF5FBC1BAFAD797D + 90A1690168ECAAE7F77CBA15D9392BC4EB5B1D03EB2A43A401AC8C864F6C15AF + 0840FB5C81DF71AC9FECDE5C602D3EBC9CF73AB62DD935C4CCB400B858279FFE + F65C3CB13A0FB67E1B9A48FECE8CCD46D59D727122D3E843069E154A32949305 + E7F183B6B36409CF89517F7EE5011823E28735322D00821E796F199F946E14CD + 1FCD392E46D3EAB6F0E537CA70A5F312EEF67791AEC4404FE911171E8F879396 + 2337356FCCF7CCD306F0CCD99D7C7D771D3262B27072DB99497B63396D00C238 + F8B8F1140EE41C41A4366AFA00EE57DDF700FF022F725FDD932C5BF400000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008B24944415478DA + D5990958535716C7FF6147109151D00A9F881BD61D7101B4A858B15A9DD1DA8E + 625161DCEADA5A5CEA4E3B6DC5ADA2AC0A8AFB82A3B50EE08690A801111045B6 + 814F2CFB362464251B6FEE4BDA387C6C490833F47C5F92FB92DC73CFEF9D7BCF + 39F73E06FEE0C2F87F1BA05780AD9149941E55B31BE59477D8861982FF29C0D1 + 35D3D1590ABAFF95A43C6416D6743944AB004D7AF0C3ED944248654D482BA8EA + 52885601E47A2060BE2A054F24E972885601648ACE03BC28AA065F2C7D07915F + 992A6060FEA9B533EABA0CE0AB8847D4B1B533209137755A71712597182F6D06 + F12CBF325B2810CC3C15305F6F10CD00BE0C7F48FDB4CE0B62990A605BD85D9D + 941E5E3F07F53C11F82269330889544120CAB34542B1DE209A016C097D401D5F + 3F0B2269E73DA090CBC12386B706919A5B9E13BC61D628BD036C3E798F0ADE38 + 1B02894279BD33E29E4E4A0FAEF34651050709696F50D7206AF1BB5C2AC5894D + DE7A49A2CD946C3C91409DDC3407BC46853E748322B120B3B00AAC5725104BE5 + EAEF85422142367FA47F800DC7E3A8902D73D1205601EC3EA59B075A9345D3C7 + A0B09C43A028BC2E2A43E897F3F40FB0FED83FA9D0AFE6812392EBAAAF5DA1BD + F0B6AA019712D211B6F563FD03AC3BFA0B15BE753EEA852A807D51F7F566FCB7 + AB66ABDBBB231310F1F502FD03AC3DFC331511F067D40974F780482CC6D3A76C + 6465BD42696929EAEB39A8E77060D3BB376C6C7AC3C1C1016F3840D6B3A45E45 + CF12787A05581374938ADCBE10357C99EAAE9D79A0B122B9B411E5F9E9A829CE + 85A9A919CC7B58C0C4D41C864646303434824221578656A9440CB1480871A340 + C268A2229B84A2EF32329275CE09CD0056FD78833ABDF31354F3645A294966B2 + 101E1E0186A129AC6DFA62C264778C787F04ECFBF785450F3358989B42289640 + 286A4459452DF272F39091C606B7BE16421E97AF40D31799AC844B9D06F8DB0F + B154D4378B51D9A002F83EA67D0FD011A52C2715B56F73D0C776005C3CBC6066 + 6D4732B91C46060C181932403EC060A8422A5D232AC81B5D6B794F1A0A262B05 + 29AC47A8AB29874C223994FE38FE1BA256AB2CDA0CC0FFEFD7A8A85D9F1100A9 + 469DCF9DBF80B8B8BBB0EDEF8025BE2B3171EC7098191B288DEF48E88AB79194 + 2C19D9FFC2A598B3A8AD2A85442CA22176E80CE0F7ED152A6ACF125470550007 + CF3F6CB3635D49014A5EB260E7E00437EFC5901183CC89F1AD0EC26809E433DB + 856C7C1824B42A70E6261339ECBBA82A2B864C2E5D9ECE8CBFA013C08AC04B54 + F41E1F35405BD2D0D0800DEBD7A3974D3FF8AC5C8549E39C616E62005D25F206 + 0B3D8D1560DEBB4343F02572D99057ECFB355A032CDF7F918ADAFB0EE0F0C5C4 + 563BBD25775E585B06F7590B6069371016B4F18C3694B631E4A21963D4DF5CBA + C386879B2BAE5E88C1EBCC5408789CD07456FC46AD017CF79EA7A2F67F8E724E + DB1E109338BFDADF1FB6EF0DC4E6AFB7C3F13D1B186A30E7DB93EBF12958E43D + 05693925B876360C65258512AEB8C956933CD16CE4657B62A8E8FDCB09804479 + 7DECF2A3161DE8B95F919B0A37AFF9E833D0193D7E9F3A0C0D07F94DE6BA8F54 + B76FDC4BC5671FB9A1B45E8ACB31D1C8CE60432412AECC60C59DD30AC067D719 + 2AEAC08A763D107A2218B9798558EABF0E53268C82B161E72B829F1FA462E187 + 539455F0C3A4277870FB3A387595979FB3E2976905B07467341515B8520D107C + B5A507B213AFA1574F2B78FEC51766A6263030684B71FB605E1387ABDBBF243E + C7C733272AF3C3CB825F71352A04D5156FB39E33E3C66B05B064C769EA74A0BF + 7A0AB5261BD7AD8685551F6CDDB907B636162D0CD5E5382021391D733C5D49A2 + A3F08694DCD1270FA1A2A4A88A00F4D70AE0AFDB4F51A794002A0F845E4F6AD1 + 21ED56181C063963FA425F926519CA054CAF6103038D87518AC7D8C1EAF6FDC7 + 99F860CA7848E54D4A2FFCF443204A8BF341003A9C9F2D00220FF8B79B07367F + A1F2C0B65DBB616969F15F8ADE950DCA6B46EB8B97F610F59B9BE8D2826E273E + 7D018F49AAB02AE0F371E24890EE1E08DFEF8FAA764A893D3B02C85D32C09680 + 6DB0B3EDDB917E8D2439F515A64E1AAD6C575654202CF8B86E6B800608DBE7D7 + 6E351A11128CFC8222F8FAADC60497311DE9D7489E3CCF8187AB2AACB2C95E22 + F6EA15DDA2100D10B2D70FB5FCB6019EB098B8408AAF6933BDB162B98F5E0052 + 32F3E0316184B21D1E7E1ACF539FE8960768809304A0AE1D00914884CD2412D1 + 9978DBF600F4B3EDD36980B49705707771467945250E1D3EAE7B26A6013419B0 + AEF82514622E5C277BC06DEAB4D61533B44B70EEE387E178C869A4A6B075AF85 + 349531EEB36D4D8D8C8BFAD90FEAE9BB743166CDF0D0454D33494C66E3FCE558 + 5496170BA53299934ED5A836E2EA39D7D7D8D8F47CBF018E08D8B40A634739EB + 6CFCCBD7F93872324AB91FB0EB6F0F0343D31D37CF1D3DD4A5004A8869738F9A + 9AF7D84AEFC8FC7C16628ED754AD75DC4D7C82B3976FA1A6B214839D1C11B83B + 0091E76291C266DF61C65F59D0A500440C267E302FC8C8C42480DE13BB8E1F8D + CF3F9D07A781033AECF8E6D7725C8C8D43FA8B6CE59E78E8E0C1880EF9116289 + 0CF55C3E2262AEE3E96316EBF1BD58CFAE04500A3D9D181423D4C2CABA277D2A + 31D2792826BB8CC2FBC39DD0DBDA0AD65696E0F204E07079C82D78836799AF91 + 935FA83C9510F039C201F6832C8E7DBF1B36BD7BC2CAB287F204A3B4A21A070E + 862225E9CE91B2E2826D5D0A400BBDB04D8C8C02493DE1676E66496696254CCC + CC946742EA7321F29236363B178A96C8E58143868E5E396C8863D09AE58B09B0 + A5D2A87D41E1E4FF4D603E8C23A0356D42E8FD39F1B871D3AD8DAC2C3E219ABD + 88723A3BD1F58C1D05AA92D44BD5244EE791822851CE13FE232B2B99FB7B3FCF + 794B6FBB4D715FB06CF15CB2066EA0EF9FAC3179A20B984F9FE1CECD6B6D4274 + AB07DDD3667F9A6C67EFE82993F0316CB013860F1B0A7B7BFB7621BA15002DF6 + 8EC383C8FCDB3E72EC7802E0DC2144B703E810E2D67570FF5DAD86E89600DA40 + 745B004D21BA35802610FF01F92791F964DC60BF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008AE4944415478DA + ED99095414571686FF6E5A3651C128A8A0415C675CE2AE0351708938A28E3192 + 2846142751C73571404D5CC94C12718B0B8B4883E0AE1813870182A2D02D9B6C + 2A608440D488AC2260AFF45AF3AA3876EC8106BA6966C839B9E7549F575D756F + BDAFEE7BF7DEF78A85DFB8B0FEDF1DF81DE0F5932DA14994114DA7352829F7E0 + F5D345FF538043ABDDD05E0A5AFF42D243E41657773844B3006A23F8E15A7A31 + E40A35328B2A3B14A25900A511087879A51048641D0ED12C8042D57E80BB2555 + 104AE5BF421456648858987F72CDF49A0E03F8F4C42DEAF09AE99029D5ED36FC + B8A29E745EAE0571A7B0225F2C12CD38E93BDF68105A009F842452DFAC9D09A9 + A211C02FF807838C1E583707B502098412B916844CAE221065F912B1D468105A + 009B836E5047D6CD8244DE7E0FA8944A0848C79B83C8F8B1ECC1D1F5B3461A1D + 60D3F104EAE886D910C954CCF9F613090619DDB7D61D25E57588CF7C849A9792 + 26D79572398E6D74374A12D532B2E1583C757CE31C081A54C6B00D8AC482DCE2 + 4AF0F39E422A576AFE178BC508DCF467E303AC3F124B056E9E8B97D246801D27 + 0DF34073B2C86D348ACBEA08148582926708FAC4C3F800EB0EFF9B0AFAD40375 + 12A5A1F65A14DA0B4F2A5FE25C7C3682B7CC333EC0DA43FFA242B6CC47ADB811 + 6037F7BADE06554A396ACB1E41F0FC19A4C23A281AC4E490A0674F1BF4B4B1C1 + 8001FDF1731D0BF7326EF528B9132F302AC09A03DF53277CFF821A91FE1E1008 + 84B870F112E2E2AFC384630A0BCBAE3035B3206D0E4C4C3850A9944C6492CBA4 + 904AC4903688642C3515AA164BFE9193936C7048D502581D70950ADDFA2EAA85 + 0AE6FC8B881B6D32F2A2F4273CB9C787B985257ABC618BD1139CD1A3571FC829 + 36144A15E424319A72D8E8C23181294B8D973595C8CF4A457DED738805F54215 + D47FCBE5C79F6B37C0475F5FA1C2B6BF872A81A24DCAF4848C8A3A836B31B1E8 + 656B0FE76933E0E6EA0C7B3B1B70D82CE6609127B0C98F9ADC4B4725BACE5292 + 52A5ACBA1649BC74A4F36FA1A6BA0C0A996C7FF6EDB8CF8859BD929016C05FBF + 8AA6B89F2D46C5CB46802F235BF64069413A5E3C2D44EF7E03E0327B21440A16 + CCBBB0998E3779D07FFDB56CCE0434282864E7FD84739111785E590A99544243 + 6C331860D53F2F51DCCFDF2700F25615939379080C0C461F878158BB71138639 + F68505E9BC7E6B3C16894C2A845FE5A320351E95CF1E932127F7CEE6C59D3108 + C0E78B0B1477E71294D73702EC3B9DD8AC92824CC4BCEBE7D0DBCE1E53E77942 + 0932694DD9ADBEF5D7E583596335EDD02BB761C551829710434308654AC5E0BC + B4EBD57A03ACF03F4785EFF4D200E8126E5818F829E970759F0F2FCF85E86AC6 + 6ED7E2FA6C6C1A5C268FC7C5339128C8CD8048501794CD8FDBA03780F79EB314 + 77D7AF0007CEDE6CA240C7F9DCD848F4ED3F102E1E4B48743181095BA7499DDE + 58306D94A67D293E038BDE998CCC074F71E954309E3D2D96D54BD5B66DC9135A + 6697EF3A4D71F77C88B23ADD1EE0252723223C025367CDC3322F4F58363374F4 + 956F1332E039670A4A6BE5381F198EFC9C344824E29539FCD828BD0096ED8CA4 + C2F778130019737EF8FCAD260A3F67DD805A2AC4CC45CB6166D90D5D4C582D8C + 75DD03CB7DCA1F34EDEF1333B170D624A6884C4C4AC18D6B97515753713E8B1F + B74C2F00AFCF2328EEDE152D7A60BBDFDF49626263DD163F0CB4B705BBFD0E40 + CCCD2C784C9FC82C65EF17FD828BDC4054953FB997C58B1DDB9AAE16C0D2EDE1 + 14D77FA506E0E8C5A61EB81B1749A24F3FB82DF486B919A7E93B6E6136B35EBB + E8367E88A61D979C03F769E39964F78854ACE1C7F7A3FC69492501E8AB17C092 + 6D615498FF2ACD106A4E962FF144FF81C3B163EF5E70C8EC3521498BCE5BAC76 + 84A104FE5D4C9B32862939682F7CF3953F4A1F178200B46A55EB860FB69EA44E + 32008D1E08BA9CA4D303EEEFAF048B6DA2F56E5F813007581AEBAF1EF26AAF83 + 2E29A68C7262F69FE8F6CDD4BB7099349AB926120A71EC6080611EA00142F7AE + 6A310FECDCE64BDE121B9B7DFD6067DBDBF0D7FE9A2467E4E1ED498D61B5A2BC + 1CC1478F1836076880903DAB50D942297122F0280A8B4AB0DCE7638C1F37DA28 + 0029590FE0326104D34E4B4D43F4C50B8645211A2078B74F8BD5680A9F873391 + A73075863B56787B1905203DF7215CC63786D59090306465A41896076880C05D + 3E782ED40D209148B069EDC7B0EDF726FCB6FAA28F6DAF760364DE2F82F3B8E1 + 282BAFC0FE03470CCFC434C0710250236C793D101511863B1999709DF10E56AD + 58DA6E809CFC62388F1D8A238161C8484F33BC16A201DAA2A452C8507A3F11B6 + 7DFAC363DE3C380C18A0DBA8D605DD515152578DD3E7A35151F6582C57289C0C + AA46F59109AE739777E96276BA8FBD237C377E84B7460E37D414EE1714E2E071 + 2EB31EB0EBEB00B689D9B6AB5187F6772800033175EE21330BCB2DB67DFBC3C7 + EB5DCC99F9B6DE367EB8998253E7BF43754529063939C27F872F42A3A2919E96 + 16C38BBBB0A0430188B0274EF308E0989AFAD26BE2096347E1434F0F38BD69DF + AAE2A35FCA70363A16D977F39935F1904183101EF835A432056AEB8538117919 + A9B7F9FCDB09D1AE1D09C0083D9C58142BA86B77EB6ED63D7B63C4F021983C6E + 24FE38CC0936D6DD61DDDD0AF50211EAEA05F8B1E811EEE416E0416131B32B21 + 12D689ED1D06763DFCE50EF4B4E986EE5696104BC91C2BAFC2DE7D41484F8A39 + F8EC71915F8702D032DA79B6AD2987E34FEA091F0B732B32B2AC606A6ECEEC09 + 69F685C8216FD0DA170A972995FE83878C5A3974B063C06AEFC504D88AE9D4EE + 801072BF1ABCC458025AAD13C2E89F59C78C71B3E674EFFA1EB13C9318A7B313 + 5DCFD851A02A487D5445C2DC435214DD540AC4DFDEBB975CFF4ACFD563E9B53F + 4D715EB06CF15C3207AEA0F71BD6983C711C78A9771073F5924E884EF59D78EA + 6CCF643B074757854C88A1839C306CE810383838B408D1A9006871701C1640C6 + DFD6116F8D2500C35B85E87400AD427C7719F52FAA34109D12401F884E0BD056 + 884E0DD01688FF00271091F97DAD520A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA8640000089B4944415478DA + ED99095414471AC7FF334CB84544458DF85454204BBC50D1A006142346A35937 + B8F144613DF088313E448D27D94D221A8D07F7A178218AD1B804D408C2207209 + 7820080B2B861B240CCCC91CD05BDDB3C19DC739C3B061DFDBEFBD99AEEE9EFA + BA7EFD55D5F7AF1A16FEC78DF57B37E0FF00BF7703B40AB0333891D2A2EBD426 + 05E512B0758EF0BF0A707CA3137A4A41D7BF92F8023945B5BD0ED12E408B16E2 + 702BAD0832790B320BAB7B15A25D00851608B8CFCAC0174B7B1DA25D007973CF + 011E17D7402091BD8128A84A17B2B03864D39CBA5E03F822E83E7562D31C4815 + 2D3D765C52D5401A2F5381C828A8CA1509857343BC166B0D42056047603CF5BD + A733247225C0AE803B1A393DB66501EAF96208C4321508A9AC994054E48A4512 + AD41A8007CEE7F8F3AB9651EC4B29E47A059A1009F34BC3D88F4FC8ABC535BE7 + BDAB7580ED67EE52A7B6CD8750DACC9CEF09BAAB91D3239E2E28AEE4E176E64B + D4358ADBDC57C86438FD998B5692A88A936DA76F53673E5B007E53B3367C8322 + 73414E5135929F95422253B45E178944F0DBFEA1F601B69E8CA5FC3E5F884689 + 12605F88661168CFFEE4340145153C0245E1797139FC772CD23EC096133F51FE + 5F2C024FACD0D41FC46209521EA6E2F19367282D2B437D3D8FF998990D80A9E9 + 000C18648E7AB90172D212FA1767DCE66B15C0F3F8DFA9C09D8B512F52021C0C + FBB9DB8E14B226541464A1B6241F7A7AFA30303482AE9E0174381CE8E870D0DC + AC6006B64C2A81442C82A4492865B550C12D22F15FB3B393349E915400361DFB + 910AF2FA187542F5229098C4857F4010583A7A30351B8C293366C2D6F61D580C + 338791812E8C0DF5211437414466A2F2CA5AE4E5E5233B23150DF5AF21E23708 + 9AD1B23927F9F6E51E036CF4BD41057B2F45AD40CE9C7F75F65EA795E9FE5C9E + 978ED7AFF230C87C38EC663943DF74083360396C16383A2C9003582CE580A615 + 4A33F9A233FD8733AC90C44D432A370175B515904BA547B31EC4ED256ED59AC3 + 5500D67F7B9D0ADDF3096AF8F26E558E88B88098D83B301F36022BDCD661FA24 + 1BE871940DEFCA1404A2494E212BF71FB874EE2C5E5797412A11D310BB3506F8 + CB37D154D85E5754352A01BE8EE8380275A585287D9A8C21232CE1B0C01532D2 + 2083B7D8ED3F84D51668B5CB14E64867FDF01BC9C84D8943757909E40A995B16 + 37EEA246001E7FBB4A857DF9670220EBB4526363233C3DB7A0BFD950ACF6D800 + FB49D61D36BE3B16FCC34318E9C8C0BD1B434308A40AF9D867A93FD7AA0DE0FE + D5152A6CFF72543628018E5C886FB7D22BF2E645AFCB31F3832530321F09235D + B68AA7CE3B90F2AEEBDC89AD572EFF9486F7A6DB21EA62049EE7A443C8E7F967 + 25C76D531B60ADCF652A7CFFCA5680F64C2291C07D9D3BCCDF1E891D5EDE18FD + F640E8B07B9693A2EEA463E93C7B64E695E2EAB900949716491B242DE6DDC913 + 2A4F763B74890A3BF006E0D8A5843615E8BE5F999F0E07E7C51838D20686BAEC + 2E5F7B7BB73E9AF546CB5DBF9B0957177B94D5CB1019118EDCEC54921045EBB2 + 9363CFAB05B0E6C0052AECD06A54F03A8EC099532791975F8455EB3763869D2D + DEEAC68CD395FD18FF081F3B4F6334587C620AEEDDBA065E5D55E4A3E4B8556A + 01ACDA1F41851F72230052E6FC44E4FD36157213AEA27F3F1338FE710DF4F574 + C16677E4B873B079F6D6ADE598FB5958E83495C90F4F0B7F4154981F6A2A5F3D + 79C48D9DAC16C0CA2FCF526187D7761A81CD1BD7C3C86410BCF6EEC7603363AD + 6C2CDDE6E660FE6C3B92E828BC24822FFCCC51549616571380616A01ACD8134E + 85F9AC6B053815D536029937033062B40D9C96AE215996C50C607A0CB3D9DD7E + 0C63EF4F1EAB2C90EC7CE7C163CC9E3E1132B294A5A3F0FD373E282B290001E8 + F2FDA8FC60F9EE502AD4C7A3B50BB567DB3C373011F0DEB71FC646866F1CB1DE + C80656EBB5B6F5694941FDBBE1F4919617F1298F31D37E02735F2810E0F477BE + 9A45E053EF102A84015046C0FF5A629B0ABF8D818F96BB834354A7A6666F3BBA + B59C94FE0CB3ECC733E5AACA4A04908942A3314003041FF6E8340F04F99D4241 + 6131D6B86FC014BB091A03FCA7A53CCAC3CCA9B64C3995AC25A2A3AE68360BD1 + 0081873C50DD89944849E6E262C439CC9EEB82B56E2BB5029096F30233A7BCC3 + 94030343F1283D45B33C4003041C74EF548D8AC5626C27E380CEC4BBBCBD30D4 + 7C508F01329F16C2C1CE06159555387AECA4E6999806F03BE08ED782CEE5F4F9 + B3A1C848CF84E3DC0FE0B176458F01B2738BE030D90A27FD42919E96AAB916A2 + 01CE1080BA2E00F87C3EBC776C63D4E85AB7D58C10EB893DC9FF27C4BC5A5C88 + 8C465545894826975B6AA4466980EE3E545057065EE9730C1D3E0ACB3F5D8681 + 0307A9AD87943758F8B5AE0E57A2AE31EB8121C32CC0D6D1DB7DE3FCF1A36A03 + A86B53672F3CAE6760B8935E91B9AF5C8A05CEB3D4F671272105E7226FA2B6AA + 0C632C47C1679F1782CF47232D3535861B776549AF0210634F7B7F912F4757D7 + 8B5E134F9D3C1EAB972D82E5C8E15D567CF94B052E45C722EB712EB3261E3766 + 0CC2FDBE85442A477D83004111D7F0F04172F283BBD18EBD09C0D854C7856B58 + 14CBDFC8C4B41FBD2B616B330ED3EDDEC51FAC2D31C0D404A626C668E00BC16B + E023BFF02532729E23AFA088D995100A78A2E116A38D4E7CBD0F6603FAC1C4D8 + 10228914659535387CC41F698931DF959714EEEA5500DA2638CC37D7E5707C88 + 9E7037D037263DCB18BAFAFACC9E50EBBE10F9C89A54F685C2A50A85CFD871E3 + D7598D1DE5BBD1CD95002B05E241DF40F2FB1670E36309686D87105AFF9772D2 + 2427538E89D127C4B333714E67275ACF0CA1405511895D4366891744042528F8 + A21F9E3C496AF8AD9EE3A215B7DE9BE1B06495EB423206AE63F040534C9F6607 + EEC30CC4DCB8DA21449FFA9B75F6FC6549432C4639CAA502588DB184B5D53858 + 5858740AD1A70068B31865ED4BFA9FB7EDC4C904C0A64B883E07D025C4CD6B68 + F8B5A615A24F02A803D16701BA0BD1A701BA03F12F23AD8CF9D7EF37C3000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008884944415478DA + ED990958535716C7FF0931B228A25550A155445CC66A0BC53A422BB8EFD67E2E + 750397995147AD5A8B68DDE94C5BD16A5D580402E28A486B6B2DB12A0A01093B + 52712DA855641549CC4A16F27ADFA3A6522098105ABEF9E67C79DF775FDE3B27 + F777CFBDE79C7BC3C20BF2414004853F49E2762D6599C38E598CFC95F27F80BF + 5AFEB700D68527997111B384355A6A7CE8CA91B23F1560CF521FB49482D68F4D + BA8DBCC2CA568768144067063F9C4D2F845AA343D6DDF256856814406B0602C1 + F5624814AA568768144053DB72806B4515902AD5BF43DC29CB90B1303562D9C8 + AA5603F8E8D0156AEFB2915069752D36FCA04C4C3AAFAE079179A7AC402E938D + 8AF09F6A36887A006BC312A9AF968F86525307B03EF447938CEE5E3101D51205 + A40A753D0895BA9640941428E44AB341D40358137289DAB7620C14EA967BA056 + AB858474BC31888C5B2537F7AF1CF3BAD901561FBC40ED5F350E32552D73BFF1 + D005938CEE5C3E1E45A5229CCFBA8FAA678A06CFB56A350E7C38DEFCC5DCAA03 + E7A9831F4E80A4A6D61CB64191589057588E94EB8FA0546BF5DFCBE57204AF9E + 687E8095FB12A8E03593F04C5907B039C2780FD46AD5A82EB90FC993C7504A45 + D0D4C8C9A54047DB4EE05AD9C0EE157BE82CBB204F98D8A928F3BCC4AC002BF6 + FE40857C34192285D668431289142762E3C0E75F049BC38595B50DB8EDAD60C1 + E1C0C28283DA5A2DB32ED42A25940A39943532154B4785EBE48AFFE4E6269BBC + A0EB012CDFF33D15B66E2AAAE57500DB78175FCAC8D3E29FF14B7E0A2CADACD1 + 898CF0100F2FD87575809A62434D42B25A5B0B2EC7825C6C70593A88AB2A5090 + 7D15E2EA27904BC4D25AE8FE9D9772FE448B0196EDFE8E3AE4FF1EAA642FE701 + 8A4CF2C331C7F0DDF73FA0ABBD233C7D466394B7271CED3BA39D050B166C16C8 + 072C56DD7AA0133C9DE5B5245196548A7045208430F932AA2A4BA051A976E5A4 + F23F21668D0A81F50096069DA1C203DE47A554C3DC7F1A7DC9A072F18D743C7D + 7407DD7ABE06AF71EF4346D42CDBB1C161375C9FAC3F7CE53BD103351A0A3905 + 3FE35874349E941743A554D0101B4C06F8E7175F53911B67A042A26956312929 + 19070E86A2BB933356AC5E83FECE3D60453A6FACD0499377260505A97C943F7E + 008D56ED9723E01F3309E01F9FC753BC4F66A2EC591DC067318D7B404316E2F5 + 8B27D0CDC11123A6CC8606ED60C56DD8799681403977ACBBBE1D7E260DD62C15 + 0417CED110529556D3F7BAF062A5D1004BFE1B47F136CD26006A834A11119110 + A4A6C367FC542C983D1D36EDD92DDADB1D4FC8C0F0A16E38752C0637F2322093 + 88427252F8AB8C0658FC692CC5DB3207A5E23A809D47131B28D0713E2F21063D + 5E7386D7A4394C74B1603769B2496F4CF71EA26FC7FD9889E9A38722EBE623C4 + 1D0EC5E347852AB15267FF3279A29ED9858127A8A82DF3F4008D497252122279 + D11831760A7CE7CD8235D7F879FF4789BF94859963DF4671B51A2763A250902B + 8442215F949B9270C42800BFEDC729DED6DF01761FBFDC40E15EF625E894528C + 99E14B326B47265C363DD79B9E57133D07EADBDF26E6E0BD511E4C0993987415 + 97CE9E86A8AAEC64760A7FBE5100BE5B8F52BCED0B50226ADA03EB3F5E471213 + 1BAB3E0E80B3933DD866A868CE5DC9C5446F776623F5D3DD8738C50B4645E92F + F9D9820437A300E66F89A1A2B6FB11001573BFF7E495060AD7F83124FAF484CF + 743F58B6E7341C630340AC171E8EF470D5B7F9826B18F78E1B497414EE978810 + 7570174A1F159513801E4601CCDB144DF1762C34E88179B367E255E701D81A18 + 080E59BD2F665B53E542EA35BCF3F61B4CD9417BE1ABCF0351FCE00E0840B356 + EBBD30776314C50B5CA407D87FAA690F4C98BD08605BD41BDBE720CC0596DEFA + F31F79BED3A6CB0ACF212EBF95171412D3F2E1397430F34C2695E2C09741A679 + 60CE86482A3270897E0A35269B02FCC928B1B1C67F3DBA3B74337DD85F90E48C + EBF0FA0DA0ACB414A1FBF799B606E8E3F50806A0CE0321A7931A283051A8468A + 29B37C998AD3B0C5A61FBD35B097BE7D35FB26BC3C06316D619A10F1A7624D8B + 423440F88E2506F3C0D514018EC51CC6BBA3C663A1DF3CB378203DEF36BCDEAA + 0BAB616191C8CEB86A5A1EA001C2B62F41B9815242A15060F5F27FC1BE672FAC + 27D3A9BB7DD7160364FD74179EEE0350525A865DBBF7999E896980D06D8B9BAD + 468F44472233230BDEA3C662C9C2B92D06C82D2884A75B3FEC0B8E4446BAD0F4 + 5A880608DEBA184FA4860124120902D6AE42A72EDDC9345A80E1C3DCD112C9BF + 750F0A51258E9E8C4759C903B95AA3E96352354A031C240055D2E6F70369A929 + 888E0C4777C7DE58BB7A3906BAF6311920392D07B1A74E33FB01871E4E243AB7 + DF70E6C89E5D260118F3C34F1FDE8052540AFB1EAF62FAB44970716908613013 + 91845154748F6C49F9A82C2B864B9FDE08DCEC8FF023F148170ACF09F8B1D38C + 023041D843474C0EE270B9FEF49ED8C36D3016CC9A8C3EBD1C9B55BCFFB004C7 + E3139073AD80D913BBBAB8202AF80B28551A548BA53814739AF6724AEA8578EF + D60460C4C37B922F8B6285D8D8DA75B4EBD20D8306B86298FBEBF85BFF3EE86C + 670B3BDB0E104B64108925B875F73E32F36EE0E69D42E654422615C91D9D9C6D + F67EB6195D3A77846D076BC8952A14975660C7CE10A4279DFBF2F183BBEB5B15 + 8096219EE3ECB91C4E20A927165B5976686F65DD015C4B4BE64C487F2E442E75 + 4DBD73A12895561BD8D775F0A27E7D7B072DF59B49803B309DDA161446DED741 + 909840402B9B8430FB9F7C6FBEE963C7B1B599412C8F26C6E9EC44D7330E14A8 + 32521F559045769B144597B512F937F9F9C9E2E77ADE93E79E1DFE77CF69F367 + 4E226BE06B747BC50EC386BA439096897367E29A846853FF52BE3B6E56B28353 + 6F6F8D4A8A7E2420F4EFE70A27272783106D0A8016A7DEFD83C8FC0B18F4861B + 0118D02C449B036816E2DBD3103FADD043B449006320DA2CC0CB42B469809781 + F815D95F89F9F9D906850000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA8640000088D4944415478DA + ED99095854D715C7FF038401060137D48829E28216A308F821A0455CA389DA34 + 36D5A808A8804B8CF1533471256D12D1A828FB66108DE052AD1BB820ABAC0201 + 118462C5B20D5B64989559E0F5BD87A07CC030330C2DCD97F37D337367E6DD73 + EFEF9D73EE39F73E06DE92BF7885127E075DD1C8936220C5DBF7022E1D7367A8 + 4357172514C080CEFC2D191080FF47F90DE07F2DBF2E805D21896A0C62467A8B + 8C5812B8CD89FF5F0538E13E0FFDA5A0FA47273E435E59FD8043F408D0A6063B + DCC8288344DA86ECD2DA0185E81140A60682E42795E00AC5030ED12380B4B5FF + 003F3FAF034F24790351C2CEE433B03CD4C3A971C000BE0C4E204E7A38412C6B + EBB7E27236879CBCA40B445609BB50C0E7CF0FDDBD5C6D105D007606C513A73C + 1740246D07D813785725A5C7B77E80575C217842491708B1A49584A82E140A44 + 6A83E802F045C003C277EB420825FDB740AB4C062E39F19E20328BAB8B4E6F5B + 384DED003BFCEE11A7B72F065FDC4A7FDF177C4F25A5473D97E0794D13E2B25F + A0B159D8ED7F994482339F2F517F31B7FD4C1CE1F7F907E0B6B4AAAC50281421 + F5513AF2F20B50515185DAFA46F0B8CDD0D6D5075397053DC3E1600D1B83DCB4 + 0786CFB3E2B86A05D8E67B87F0FF62199A45ED00FB4315B7804CD282EA921CD4 + 971783C9D481AE1E0BDA4C5D686A694153530BADAD32DAAD246211444201442D + 7C31A38D08691308FF9A9B9BA4723C7401D87AF23611F0E5876812CA94529290 + 980CBF8060303499301A3612B366CF81C5B4A930193312FA7A4CB074991088C4 + E0933150C56EC0D3A7C5C8C94C03E75503045C0EAF156D5BF252E27EEA3780E7 + 899B44D0AEE57825680738147E5F6E6782205055948986974518613C16D67317 + 42C7D0985C0464D0D260404B9301F2030C06752DE80CDF4ABE5179E6233B7324 + 2467202D291E8DF5D5908AC5C7725263BF22D52AB5827401F038FE0F2278F74A + 34F215B3C0D91FA370F3761C8CC78CC35A1737D8CE3087CE3B0C7AF27D899404 + 114B093C2EFC27A22222D0505B09B1484841EC5519C0DDE71A11E2F531EA5FEF + 89BF39FBA0D78E8D15A5A82848C1A871667058BA8A4C7E0474DFD1E879104677 + 20E7A5D6F4A7885CB2C3AF3FC29394DBA8AD2A87542671CE498E3DAF12C0A6EF + AF1261FB3E411D57FEA6BEB9B919EE1E5B603074349C37BAC3D692BCF3DA1A50 + 5582AFA5430F2D48BE778B82E08965D2894FD2EFD72B0DB0F1BB2B44F857ABC0 + 6E6E07F836B2670BBC24EFBCA0A10A0E8B568265FC1E58D4E419BD28ED65C84F + 175876FE7221360BB36D6620E67C249EE66582CF6D0AC84989DDAE3480DBDF2E + 11E15F7F4A02487AED201289E0ECEC0AE3777F875D5E5E18FFEE70682AE0F3F2 + 24E66E3656CEB7417651052EFD1888AA8A323147D466AC489EE832B2EB37D144 + F881D5A8E1B4031C8D8AEFD681F2FD9AE24CD82F5C81E1EF9943AFC375180A0E + F25A56CC7D53495CBD9F833F2DB241E52B092E4646A030379D4C880297DC943B + E79402D8E0FD131171E0B34E809EC4F7D4293C2D2EC3BACD5B616765016DCDDE + 67AE68517EFD610E563859D315407CE2233CB871194D8DEC8B8F5362D72A05E0 + 7CF802117EF00DC0F10B0FBB75287C780986430C30EF8FEBC98CAB0D0D8DDE14 + CB77ABC5B6533ADB3713F3B0F40F33E9FC5050FA6FC484FBA3AEE665FEE3E43B + 339502587F308A083FBC0ED54DBD5BC063D346E8198C80D7FE831839545F2DC7 + 1AB1C93F63D11C4B32D1117851DD8408BF63A8A9785E4B028C510A60ED814822 + E2B0330920A6BF9FBC98D0AD43F6F5408C1B3F05F33E5E4F6659061DC0540C6B + 68283C0C2D8E56133BDB7753F33167D67448C88D14658553DF79A3B2BC042440 + 9FF7A7CB059F7D7D96083FB241AE05B6B86F028BB4C0BE0307A0CF62BD51C4E8 + 78B53B0FA38765B5232688D70DAAB4A0CA91076905B0B7690F6A3E8F87333FF8 + A8668135FB2288706F974E80D331DD2DD011031FAD76831693D997FE5E65F6B4 + F19DEDC4CC4238CC6A0760D7D420F0B4AF6A31B07A6F1811E6EDD6E9423D49A0 + DF6994943E87B3DB6658CF9CAE32C0DB92FAB8080E3616743B3D2D1D5762A255 + 5B85A8E3F5501AA0DD02019713BB75E8C8030E4E4B61696B2F47DBDB3F77FFC3 + D27C5C673B23EF191CACA7D2EDA0A0303CCE7CA45A1EA000428EB8C9CD0342A1 + 103B3C37D399788FD76E8C361ED16F0B641794C2DE6A0AAA6BD83876DC57F54C + 4C01041D7643AD9C5282927367C39095990DC7F98BE0B6614DBF01720BCB603F + 73327CFDC3909991AE7A2D4401041E72EDB31AE572B9F0DAB91D86C3466383F3 + 3AD8D95AF50B20BFF85F1036D523EAE215B0ABCB0512A9D44CA56A9402F03FE8 + 8A06059E91A5A5A6E06C5808468F35C5CE1D9E983AC94C6580A4B41C44C75CA6 + F703A3C698404393B9F7DAB913C7540250E6215FF4852824C4C7D33B3297F5AB + 31D7CE5AFE003D484A462E22CFC7A09E5D890966A6F0DEBF1B21E7AE20233DFD + 56726CF40AA50194BB77047EA92886A0B182DE135BCE781F8E73ED6068682077 + E254B2E3909BA2A4940CE41714D27BE249132620C2FF7B88C452BCE2F0101C79 + 99B2724AEABD2B8E0A03A82A368ECBD633084600CBC06808752A613165126CAD + A6E1F7E666186A640023037D70B87C3471B8282E7D81ACBCA7282A29A34F25F8 + BC26C15893F1AC93DFEEC7B0A14360A0AF479F6054D6D4E1C8D1006424DEFAA1 + AABC74CF80025032DD7EB1B1B69696375918B9EAEAE83375F5F4A1ADA3439F09 + 759E0B912F494B9773A108B14CE63D71D2FB2E93279AFAB83BAF2281DB0BC443 + 3E41E4F56D488EBF4382D6F70AA1F667649696F38CB40C589F909A1790CAA9EC + 44D533A308106C32A1D5913EFA8CF4BC8732AEE0EFF9F9499C8E7E8E1FAEB961 + 37DB7EC5DA55CBC818B88A91C38D603BCB0AC96959B875ED52AF1083EA21DFDC + C57F4E1A6562EA2815F330798219CC274F828989895C884105408989A9B90FE9 + 7F5E163366920053FA841874007D425CBF0CCE2F759D108312401988410BA028 + C4A0065004E23F30DB87F955AA05180000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008774944415478DA + ED990754945716C7FF53A449223650193D60414D9188CB1A89AE20AC72C2628A + 580945768FBA6A0CB8B6C48ABB296034102952454569598C51508A9401071030 + 04354A30AB0B5245C119668629CCB76F3E96090418980176494EEE3973CEFBE6 + FBEE7DEFF7EE7BF7DEF77D0C7491B57BC2A9A0831BF14420C3708A6F402C12FC + 373186C25637234A809304A0E9970C30AC23EF22C302F04B94DF00FEDFF2EB02 + D819963D849B98C16B93532B42B6D9B5FE4F018E6FB2C5602994FA71D9F770AB + B271D8217A05500C811F2E1554422A53E06645FDB042F40A201F0282DCF26AF0 + 45926187E81540D63E78806F1F34402096FE0471BFAEB09501E7F0CD764DC306 + E0732A8B3AB1D90E12B962D0861FD6B590C14BBB4114DDAFBB2D6C6D5D16BECB + 79C820BA01788766525F6CB18758D601B03BE49A56468F6D75C433BE080291B4 + 1B8444DA4E206A6E8B84E22183E806F041700615B0D50122E9E03DD02E97834F + 06DE1B44E1F7357703B739BC32E4003B4EA65181DB97A355D24E5FEF3B95A6C5 + C0A5B0B730402EAF1815958F2012F221150BA1A33F1A3A7A863018330E2F4C30 + 45497EFA98074557F9430AB0FDCBABD4C9F71DC16F6BD7D8109F2FC0B9F3F148 + B99A0E264B07FA0664C0BAFA60B1D960B1D8686F97D35E914AC4108B8410B7B5 + 4A180A2A4C2114FDBDB43447EBE5D40D605B400A15F4C19B782EEE00D81F3E30 + 0F3CADFE018FCAB8D0D337C098F1C6B0FCFD62188D378154C1A0038254DE0E1D + 360BBA6C267498145A9ED6A3BC281F2DCF9E40C86F11B443F1D75BDCABE7070D + B0F5C4152AD8C709CD22F98094298A42F4E97348BE7405138C4DB1D8CE01CB6C + 1781633C166C26036C1683EE8034E9E4A80CCE7212A29579E6714333B2720A90 + 9F9389A6C61AC82412FF92BCD40FC9231A6DC06E005B8E7F4385EE74C6336107 + C0A1C874B5CAD5770AF0B4EA3E264E9986252BDE015F0AE88D62D283EFD1D1CF + FEF274B2469B8C42717925CE4445E2497D352462911262AFD6009B8F7D4D9DDA + F5169A5AFBF74056760E0202833189638EF7BDBD31DB6C323D788606F52D7120 + 1DB2232EE6A33CF732EA1F3F844C2E752FC94D3DA715C026BF642A6CCF3B68FC + EF99F8687446AF4A32B211CBD3CF63A289296C9DD740428D82BE0EB3DF59EF2A + AE2BAC54EDB0E402E85162E4A6D11002895C36B39C97DEA831C05F3EFD8A8AD8 + B70A0D7CF587FA536111C8E1F260E7B8126E6BDFC2685DD6C0A7BD17894D2DC2 + C20596883F17833BB70AD1CA6F0E2EE1A66ED718E0CF9F2451911FBAA0EE7907 + C0C7313D3DA08CF3B7526230799A39163BADC328160B2C669F26FBF4C6BBB6F3 + 54ED84B412ACB4B3C2CDBB5548381D82C755959216B1C2782079A29B59AF7F24 + 50911FAD2100D23E15B2B3B311161E8DA5CB9DE1EEEA02835E968EA69294518A + 77ED17A0FA99141762A270BB94079148E859CA4D39A311C0C6A37154E48175A8 + 6DE900F8EC6C660F851F8B33A0100BE0B0CA9D645743E201869AB5DEF726707A + E32555FBE2F55238DB5AD10934333B1F199712D1DC5477A1989BEAAA118087EF + 792AEAC00615406FB2D3C78724272676ECDE0373536312E3077FACFE26BB148E + 4BE6D365FC7715FF467C64101A6A1F9515E7A6CCD708C0FD702C1579F0278063 + B1D77B287C9B1A43A2CF14D8BEED0E3D5D76CF3956C3C3E872D3DEDA42D54EE5 + 96C1C1C692243B0AFFAA6946D4497FD4563DA82700933502703B78968A3CFC1E + 6A9AFBF6C05A9755986A3E07878EFA92E5C30493242DA517988370C4B5BC32BC + 61FD2A293914B417BEF8C417D50FEF8300F46BB5DB03AE0762A8A8C3EE044042 + 5F9FB890D5A7071CD778921A81A532D35932303A7F60A8AC7776D279CE5326B0 + C596333ACA0B7291C12BC7A2052FD3F75A05027CF9B99F761ED8F051341579C4 + 43AD07F6EDFE1B9929267CC81E303199A0FDB477919CC23BB0F95D07405D6D2D + 420203B4DB03EBF7455191BE9E2A80C0F89E1EA0A3509B007F5AED06A30926FD + 58ECFB96F54B66AA765EF15DD82CE8884ABC1B3C24C5C7691785D6ED8DA0227C + BD544BA837C9E3E6E2ECE9D3F883FD0A78B86D18D814F7B3920B4AEF1180B974 + 3B343402C585F9DAE501E5EBF5701AA0C303C189D93D14DA652413937D3065AA + 3956BB7B419F9C01D476D0C7E0E7CDE4A8DA37BFAB808DD51CD4D4D6C1FF5880 + F69958091076C44B6D1E50CA99E8081415DEC4D2657F8497C7FA8179418D94DE + AE84CD7C0B040445A0B080A77D2DA404083DEC85FAE7EA01F87C3EF6786FC798 + 7193E0E1FE1E162DB4C260A4ECFB1F216A6EC4D90B49A8AB792894CA64D3B5AA + 469500218736F65B8D2AE5461E17D1116198646A06EF1D5B3077D674AD01726E + 94202E3E913E0F984CE690E8ACBB37F9CC717FAD0034F9C817177B1659999930 + 9E3C159E6EEBB064D102F51DF422DC8252C49C8B47635D35664C3783EFFE5D08 + 3B9384021EEF726E6ADC4A8D0134F9C8A74C420917629191768D3E13BFBED01A + 6F3B39601A6752BFBA5535F5F8FA4A260A8B8AE933F1AC19331015F429C41219 + 9EB508702A2651E9656E5E5AD2528D000634F29F89A0A91A4F1F9543DFC01046 + E32662CEEC597865AE054CA74C22514A1FBABA3A9048A4108BC524D2D4E3CEBD + 1F70BFA2927E2BD12A68169A72CC479FF8783FC68D7D012F1A1A402896A0BAB6 + 01473E0B4641F6E5CF1F3FACD83D2080C1C83C9BE5C63A6CB62FA92736EAEB19 + EA2A6174F4F4E87742AAF742E4276DEBF65E284A2297FBCE9CF5AAA7C54C33BF + 4DEE2E186B64480FEA905F28795E81DCCC1402DAD827C4907F627AED355B23F6 + 8BA35711CBF6C4B8323B29EB19130A541DA98F1A888BEF91A2E8BA9C2FFC6759 + 594E4BA7DE52A7F59716BD6EB3D2D5E54DB207BEC2C4F14658686D85DC1B45B8 + 9C9CD027C488FA46B664F9EA1C138ED9529944008B19D331DB6216381C8E5A88 + 1105A0148ED96C3FB2FEF6BC6C399F00CCE91762C401F40B7131112D4F1B5410 + 2312401388110B305088110D301088FF0057C988F925392DE80000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Find_-05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008684944415478DA + ED99095414571686FF6E9086667189E206064471DF304661348A31C668D478E2 + CC68545488E8A893981C178CA292992C624454F64511098B64DC08288A628334 + A0802C6270308361070934BDD20BD45415A1A50F347437308339F9CF817E5D5D + F7BEF7D57DF5EE7D550CB4D35FF707117E47B6A2862F475FCAC33B02319EAE8C + DEF0A5E28402F071DF8A17825718E02C0950F72A03F4E9C8DBA94F005E45FD01 + F0FFD6EF0BE0F3C0E45EBC8919DC2605F1AEDF2E47E1FF14E0A4EB22F49482B2 + 8F4AFE0939C5B57D0ED129404B2FC4E15A7A3164F2163C785ADDA7109D02287A + 8180935F06BE58DAE7109D02C89B7B0EF0E8590D0412D94B88A2AA0C21032B83 + B63BD6F519C067017709AFED8E902A5A7AECB8A48A470E5EA602915954552012 + 0A1707ED5DD96B102A007BFC9388533BDE8644DE0AB0CFEFA64E4E4FEC5C867A + BE1802B14C05422A6B26212A0AC42249AF41A8007CEA7B9BF0DEB9046299EE11 + 108B25E0A4729195F30825BF94A1BEBE013C1E0FA66603616C628AC143CDD1A4 + 675699937E77D2B3CC1BFC5E05F8E46C22717AF75208A5CDF477B780448D1D29 + 644DA828CA426DC913B0588630621BC38065043D7D7DE8E9E9A3B95981668502 + 32A90412B1089226A194D14204B688C4FFC8CEBEA773345400769FB9419CFDFB + 32F09B9AB57272279983D36703C0D033C0A021C330C7613EA64E9D8CD7470D03 + DB900563360B22720A899BA4785E518BBCC745C8C9B88FC65F6B21E2F304CD68 + F95B4ECA8DEF7B0CB0CB3B9EF0F974391A25AD008782BA8E004110282FCCC08B + E785186A3E1A73DE5A028381E6104B15D06732A0AFC700F90106833A17747E69 + 26FF51AB9CFDB431C8C9CA4706E716EA6A2B20974A3DB352130E926EB59ABF2A + 003BBD7E247C3F5B8106B14223E3D073E1B81A7703E6232DB169AB0BE6CEB485 + E100063DF8EE44E59A46B29F07F9C588BE701E2FAACB2095882988033A03EC38 + 799DF0FF7C25EA45AD0047426EA935AC2B7D8AD2BC140CB71C8BF9EFAD0599A8 + 603480D979278C8E405B97BF417F522B5ED0E534E471AEA3BABC047285CC298B + 9370512780ED27AE12017B57A34ED875041A1B1BE1B26D07CC068FC0E66DAE98 + 3763228C0C98D055FE573260D8220227318E82104815F271F9DC5BB55A03B81E + BF4C04EE5F83DADFF6C45F9EBBDDA9D173F2CA8B5E9463FED2D5600F1B03636A + F00C354ED574B9EE9D99CA2311090FF1A6DD34445F0CC3E39C0C08F90DBE5929 + 09BBB506F8F89B1F8860B70FBB7CAC229148B061E316988F7A1D7BDDDC603D72 + 08F474BFF8B4A212B3B06A911D1E149622E6BC1FCA4B8BA53C498BB926794205 + C0E5EB5822E4E05A5435B6027C15D63102D4DCAF7C9201877756E3354B5BB0DB + A60E43C34E7ED3076F4D53B66393B2B166B11DCAEA65880C0B454136974C88A2 + 2DD929F117B40270FE670C11F2C55F4800995A032FAF5328282C8693EB2ED8CF + 9E8C017A3DDFD45DB99383F717CEA2F34F52F27DDCBE76090D7555910F531236 + 6805B0F5CB2822E4F03A54F25A01BE0D4FEA6050702706034DCDB068CD26B00C + 0CC064AA73DC35D832FB49CAF6F5E4477877FE0C3A3FE43DFD05D1213EA8A97C + 9EFB90133F4B2B80CD1EDF13A1873F52027426176767B0CD86C2EDB03B860D36 + E976A09A283E35174BECA793898EC07F2A1A107AD61395A5CFAA4980915A0138 + 1D8D2042DC5F029C88B8D3C1E0C1153F585A4FA423C024D7773D666BB6653235 + EE8696E3ECF1CAF6CDFBF970983D0532B28CA7A270EA6B0F9495148104E8F6EA + A89CB0C93D9C0839BA11150DEA23B0FD63173A0207DDDD616ACCA68F51DB1F2A + 59B5950D0CA826AFB656DB36892A4108BC2C2F92B8F998673799FE4D2810E0CC + 77C7758BC086C36144E8512712404A7FF78ABCDBC1A0ED1E787FBD33F40D58DD + F9572BFB69D6CA7672662119815680AACA4AF89DF6D6ED1EF8E88B7344C8B1CD + 5D46C0F7CC693C292257216757BC61375D6780F64ACD7A0207BBD69B9A9BC645 + 6C74946EABD07AB75022C4638B12E07474C708B4E5813F2D7E0F33DF74E8C25B + FBC31D7FB09B68A96C73738A48808974DBDF3F180FC9525BA73CB0EE403011EC + E1AC9C429D492C1663F7F66D7426DE77602F46980FD5BC0335CACCFD37093001 + 159555F03CE1AD7B26A61EAF07D100AD11F0BD94DCA9D1F35CB216AA236B21C7 + A5B05FB040E3ABDE5E536C4629DBD905C57098650B6F9F6064A47375AF852880 + C063CE5DE6014A7C3E1FFBF7ECC6C0216435EAB411F673ED34E94BAD729FFC0C + 71432DC223635155512292C9E56375AA462900FFA3CEA86E94756B98969A8273 + C1811831DA0A7B3ED98149E3C7EA0C702F2D0B51D197E8FDC0F0911660EAB10E + 5CBE70D25327006D5EF2454584E36E5212BD23DBB2691D16D8CFEEBA834E9492 + 9E8DB08BD1A8AD2A83CD582B781CDA8BC00BB148E772E3380951ABB406D0E625 + 1F9590622223703BF126BD279E37770E3E58B104632C46746B5B5A518DAB3F26 + 2123F321BD271E6F6383509F6F2091CA51CF132020EC1215E594D4C4D8855A01 + E8F2928F9A4E17CF8780A9CFA29F4ACC983E15B3674C818DB525069A99C0CCD4 + 187C81088D7C217E2E2943765E21F2F21F8357FF82CCBC0DA2D116D6C65E5F1D + C290C1A6303361432491A2ACB206C7BEF5457A72DC77E5254FF7690CA0D5C8DB + A9592E4543791104756560B18C60C4368181A121FD4C48F95C88FC9335A93C17 + 0A952A141EE3C64FDB623BCEEAB8ABD35A0C1E64420FEAC8717FF2FC167092E2 + 49D05AB510BDFE8666E6CC4583F4CD8C3F243DBF4D3AA7D22B55CF0C27AB9F2A + 7269AD21AFD04F64217447C117FD2B37F71EAFCD6EE18AF5D7ECE739ACDAB076 + 39790FFC8061AF0DC2DC3976E0A46522EE728C5A887EF58A69C1D23FDF1B6E61 + B5502E15C0D6662C26D88E878585459710FD0A809285D584E32C23F6FE293366 + 910013BB85E87700DD425CB904DEAF354A887E09A00D44BF05D014A25F036802 + F15F814D82F96D7945B60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008414944415478DA + ED99095453571AC7FF4990DDAD2D828A1644C51E5B113D2ED8BA408BC3D4C1D2 + 16B75A23D219755AA7A2A368EB8A5DC16AB1B213141159A463B52A8A204B2C61 + 5FD5A98C3AB42C6153201B210B7973136A848104126006E7CC77F24E6EF2DEFD + DEFDDDFF5DBE7B2F0D5D6C8D6F04157AC81BF53C2986D2FC02639118B0993618 + BEBA395102841CDC8406BEECD905083AB0094D826718E0240178F42C030C69C9 + BBD890003C8BF67F80FFB6FD6F01EC0CCF18C44E4CE3B4CBA9DF857CE42CFC8F + 021CDBBC0C03A550E68FCFF819C5F71B871CA25700C520E87029E73EA43205F2 + 2BEA8714A25700F9201064955783DF261972885E01641D03072879D0008158FA + 14E25E5DAE9006F7882DCE8F860C6047583A757C8B332472C5801D57D6B592C2 + 4BBB41E4DDABBB2D120A5D2276B90F1A4437009FD034EADBADAF432CEB04D81D + 725D67871D72295CEDCDC0C92F4255550D9A5B5AC0E7F1603E72144CCD4742CE + 306E1534351C6CE4F1CF3CC8BBC61F5480EDC1A954E0876FA04DAABB023C3E1F + 31B189B89C9C023AC31026A66630343201C3C0000C86013A3AE4044E0EA9440C + 719B08E276A184A6A0C215A2B6CF8A8A32F556A41BC0C72753A813DB964328E9 + 50FDDE1B96D22F278FABFF815F4AD9303631C5E8E7C7C171C1628C7EC1923445 + 404A9AE39FDE9A8F9A061EE917F568178BD1DCC845492E1BBCC78D10F15B051D + 50FCB9987DEDDC8001B67D778D3AF91737F0DB3BFA9599A228B04EC5E06F17AF + E0857113B1D8C515AECE8B30C1620C0C183418D0013A8D06F221CF92E64546B7 + BBBF3E567668D02805044D35C8CFBA81478DB59049240185B7923F216E7592BF + 1BC0478157A9A0ED6F8227EE04D817A15D81EA3B39785C750F1613266389DBDB + E04900E3117452F09E110AEDDFFE7AD5C10E0FB83C88457C24279D43537D3524 + E23625C41EBD013E3C7E850ADEB1022D6DF23E33DE4CCFC4F1C0605859DB62FB + CE1DB0B7B152155E97E04A22EF4065BD0029D977509A7909F5359590C9A5CCC2 + ACE4B37A016C3DF62315BAD31DCDA24E8083AC1BBD6692918E587EE31C2C2C27 + 6299FB1A4828039818D2FBACF5AEC6749BAB4E875ECC83915C88AC94CB4A0881 + 442E9B5ACEB9D1A833C096A317A9B05D6FE19150BB02216111C8C8E2C0E5F72B + C15CE30133233A0662B1D70B316FF6CB48381B8D3BC5B910F25B820BD9C9DB74 + 06D8EC7F810AF77D1B8DBFAD898F9C4AED914139CE175F8DC6F8C9B6786DC55A + 8C6030C0A06B74A9510D4F9759EA74E28D62FC61C96CE4DFAD42E2E910D454DD + 97B48A15E3FA334F7473FBC7AFBEA722F7BEAB755BE5667A06C2C2A3B074B93B + BCDE5F0553C381D5BED292D28AE1E1EC88EA6629E2A2A370BB8883B636915711 + FBEA199D003EF83289627DE2893A5E27C017D13D157858900A855800574F2646 + 189B1305685ADABAE64EE0FEDA4C75FA427A0951C041357CA765FC84D44BE7D1 + F2A82EAE809DBC5E2700EFCF1329D6A7AB0980E69D391F9F1D6897D1E1E3BB07 + B6132D54E3FC40EDC7CC522C7F75962A882CABF81509AC2034707F292DC8BAEA + A813C0A623F1146BFF5A705B3B01BE8E49EB91A124399A8C3E13B0CC83096323 + 839E75AC8587D6E5A6EB7C7B753A995D0617A757C83A84C23F6B5B10753200DC + AA07F50460BC4E001BFDCE5151FBDF5303F466EFBEF30E26D9CE80DFE747C884 + 45079D4C5AA4156120425CCB2EC7A2393355618752856FBFF44375E53D10803E + BD767B80792896621D780A7034F6A64605DC567B913881D1AD6EE9BF81A82ED0 + D4DE9FBCE4C92A4319562C9E6DA7FA56AE9D52736E63A1E34BAA7B428100DF7D + E3AF9F021B0EC450AC43EFA3B645B302BBFFBA93D4141D3B7D7D616569A17FB5 + 77B18CBCBB709AD30950C7E522E444A07E7D60FDFE682AEA1093004854BF8FC7 + A5F7C8A01A85DA05705FB54115716AF7A8F9D6FC9936EAF4ADC29FE1E4384395 + E66473909410AFDF28F4DEA7A728D6E18D5A1560676522FAD4692C79DD0D5ECC + 7583A200A7A4028B1C3B3B756868240A727FD26F1E58B7378A62F979A9014E24 + F454A043466662D20F264CB2C56AA6B76A0DA0F5051A14719836499DCE2FAB20 + 0AD8A3965B8780A381FACFC46BF74452917EDEEA26A4C9A2A322919B9B8FA524 + FEFF60E3C05528BA7D9F004C476010F19BC3D13F16526EAF47A8003A15083E9F + D16BA6AED1A887E72ABC68F3A236B7BDAA31C3E6E90053FAF787686B69444C5C + 12EA6A2B4552996C8A5ED1A81220FCB0B7D679E08965DF62E3546438AC26DAC0 + E7E3AD7869DA14BD15C8CC2E447CC279D57AC072BC35199D8DF65C38732C402F + 005D0EF9E26363909E968671E327C16BC35A2C769AABFD05BD183BA708D16713 + D058570DBB2936F0DBB70BE1679290C3E15CCE4A8E5FA933802E877CCA357162 + 5C2C5253AEABD6C40B17CC83C78A3730D9DAAACFBC55B5F5B878250DB97905AA + 35F1343B3B44057D05B14486E65601C2A2CF2B5566DF4A495AAA13803E877CCA + E674F6340B7403238C79CE020EB35EC65C8799B0B39D84D1A3CC316AA419F802 + 11787C211E5656A3A8EC2ECACAEFA0B5B989CCBC2DA289D6B666C7BFD887E7C6 + 8EC428735388C41254731B70F8EB60E4645CFEA6A6B26277BF01F43DE4E3F3F9 + F8212911B7C83CC13050EE0B99C3D0D858B527A4DE172297B4BDDBBE5094442E + F79B3AED15AFE9536DFC37333D31768CB9AA5007FD43C9F30A64A55D25A08D1A + 2106FD904F219741D4C28598D704A95848E68D767249C01841604618C1D0C41C + 26A32DC02DC91E5B5A9AD9FA24DFD215EB2E392D5CB472BDE79BA40F7C0F8BE7 + C760C1BC39C8CACEC3E50B891A2186D509CDE2E5AB322DAD6D96CA24024CB79B + 02FBE9D3606D6DAD1562580128CDDAC6DEDFC8C4D477A683230198D127C4B003 + E813E287F3687DDCA086189600BA400C5B80FE420C6B80FE40FC0B8E3580F937 + 9557740000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008474944415478DA + ED99095854D715C7FF336CB2C8626411C1220A9A18057720A14A16D2688DB535 + AD2B205834D1D4269F113754D2661115515944204131B2A51AA2E002010664D8 + 91D548D062580618508619661F787D33C80885C199015AE8D7F37DF3BD3B33EF + 9CFB7EF7DCFBCEB9E752D04FFEB4EF021171CC1B0C9608632901C1979110E84B + 190D5B038C4801C28F7AA3A5730203841DD98656B678E20284F86F431B670203 + 9C2301DA2732C0983E793F1913808928FF07F86FCBFF16C0271199A3B8882974 + 818478276C975BD77F14E094EF4A8C9442AA1F97F9134A6B99630E312440CF28 + F82139AF1622710F0A6B5AC614624800C92810D02A1AC0E609C71C62480071F7 + C801EE3D6C05872F7A0EF1A039BF8B82351776B8B58F19C0C7E73388A01D6E10 + 4A7AD436C8E3F1919543072DB7080D8D8D60B13AC1617742DFC01004554B20E0 + 76DEE8E916A77608887F3C2CB8C91E5580BF86A713A777BE09BEB817E0D3B05B + 4A1B928804687A500C66DD7DE8E84C82AE9E3EB47574A1A1A9090D0D4D74774B + D02D914024E483CFE3822FE812527A88881E2EEF6F2525596A7B6500C09ED034 + 22F8C3B7C013A9E681F40C1A82CE8683A2A10DE329A658E6F23A16CC9F871996 + A6D0D7D581819E0E246231D87C215A992C5454D72023FD0E584F98E0B2599C6E + F47C509A7DF3DB1103FCE5DC6DE2CC6E777409BB65DFF79FBF3DAC32411068AC + CE47DBE36A4C359B8EA5BF7E1BDA46A6E00925D0A452A0A9410179C147EB9DD1 + C064E36E5513DAD97C48C835A6AB4D05AF9D8142DA1DB4339B20160A038B7352 + 0F9066551ABD0100BBCFDE24CE7DF41BB005DD4A2947465FC4B51F6EC26C9A35 + 3C7C7CE0EC600F1D2DAAECE115494DC313943D6A059784148849108A1819C9F1 + 686B698090CF9342F8A90DB02B388508D9B30A9DFC5E804317147BA0BDBE06F5 + E5D930B7B6C5EBEFBE0F01B9F075C9871FB213CA602057475B34B671C027A76B + ED2F4D28CB48464B631DC4129147312D35562D800F836E10A11FAF46074F32AC + 12ABB313DB7C76C2D0C4025EBE3BE0EC384736255415A1B81BAD1D5CA4D26BA0 + 25668376FBBA14822394886757D0EF305506D879EA0722FC933578CAED053812 + 756748A5C7E4C873DB1AE1FACE5AE84E9D017DE9C353141855D0E5667747F92F + B1B74AB1C4E115C4C7C6A0AA341F5DEC8ED0E2ECD4DD2A03EC38F13D717EEF5A + B47729F6008FCFC7C64D9E30B3FC15FC0EEC878DE54BD018614E1B97568ADFBA + 3AA0B0BA1E09DF84A1B1BE56C8E2F7982913270674ED7BFC2A11B16F1D98CFF6 + C49F7D9D3648413AF719F7F3F1DADB6B31C5DA1E7A7D5387A26427CFE4F72BE7 + CBDB49E9F7B076A5231A9E8A7025261A952574322072BD4AB2532EAA04B0FDCB + EF88C8FD7F18B6AC72F2D4695454FD0CAF9DBBE0BC681EB4463AFCA45CCDB887 + D5A407A46FBFF4CCBB484B4E44477BF395A2ECD4CD2A01F87C9144441D588FE6 + CE5E80CF63067BA0F2C704184D3684DB3A0F686B6B814A55647878B0552E2FCB + DBC959E57077992FCBC1CA6B7E417C54085A198FCB8A68290B5502F0FE7B0211 + 75F08F2480E2CA9C979737F40CA7E2A0FF11989AE80FF98A545552B22BF086D3 + AB641A4FE09F4D1D883E170846FDC31612609A4A00DB3E8B23A20E6F90D746BF + BA943E48A1F05A18AC67CEC5CA755BC9284B8106B537DA52A94A7723933797D8 + C9AED2BCF7D6DD4A723ABE0211194BA45E38FD45001AEA1E800478E1E80CB8C1 + 33E05B22FAF0A6618BBB3EDEBD1E387CC41F06FAFACF0D51FA3EBD938732C46B + B52F4927075AD6965EA5A39E965785E58E7365FF757138387BF2B87A1EF0387A + 9988F27F0E70E2F28F8314FAD6C09A8DDED0D0D679917D85F2DA025B793BB3F0 + 3E9C16F602343318083B13ACDE1AD8EA7F89883ABA054D1D8A3D708E345EFD53 + 2DBCB6FB62C9C2056A03F4979CE20724C01C599B9E4B47527C9C7A6FA1CD8763 + 88E8A31E248050F63DE84AC62005791C78E35D382E7319C65AFF9F07FFB1F865 + 6B799B5E5A03E76700E1E19128CABFAB5E1CD874F06B22EA98E7B01EE0F178F8 + E0CFDB7B23B1DF5E58989B8ED80305E53F93F9943D9A18CD083C11AC7E24DEB8 + 3F9A880AF092039C89CF1852E97119990BB593B9909B3B9C5C5D951EF5FE327F + B6A5BC5D5CF99004B043704824F2F3E8EAE7421BFC2289C8006FF91452246C36 + 1B7BF7EC86D1140B787A6E81CBB245CA0DB502A6B2EA47E0763071E94A129A9B + EAB822B1D856AD6C545A5EBF2003E8F5406862A64245D97EA0220716D36DB0C5 + C303666653315C42F4EFF1CE7E86B9BC9D955B8CB8F844D97EC07C9A15A81A3A + 7E572F9E0A540B409543BEB8CB97C8BD6DBA6C47E6B575035C9D172B3BE872C9 + CE2B414C6C3C98CD0D98656B8380437B117131097974FA755A6ADC7B2A03A872 + C827DD13275CB98CB4DBB7647B62A7E54BF1BBD56F618695C50B75EB9B5AF0FD + 8D74E41714C9F6C476B366213AE44BF085623C6571703E2611B939D9D939B793 + 56A804A0CE211FD91162BF890255534756957058F02A163BCCC3AC99D6303234 + 80E1647DB0395C74B2BBF0A8AE0125E5D528AFA802EB691B19793BB8D3AD66EA + 077D7E08534C26C3D0400F5CBE100D8C561CFB2A147999D74F36D6D57CAA3480 + BA877CD2857D2D290139B42C68686A4357CF00DA9326C96A42F2BA10F9110906 + D485A2851249C06CBBF95EF6B36D8EFB7AAC8789B181ECA18E1C0F27EFEF012D + 3D8504652A8418F5433E699C282EC847755525184DD2CA5C07D8E41EDAD8D804 + 864646B09C6E85472D5D60DCCB35292BCB62F5E9AD58BD31D9D9C9E5BDCDEB57 + 916BE03B98BE648CE54B1781965B80EB571314428CAB433E57F7F7B3CCAD6C56 + 88851CD8CFB2C51C7B3B5859590D0B31EE4E68AC6CE61CD7D1D5DB37CF612109 + 30F78510E30EE08510D712C17AD22A87189700AA408C5B006521C635803210FF + 02664E85F917E3B0DD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008464944415478DA + ED99095454D719C7FF33208BE242A2B8301A105053AD487312B48D410E891A39 + 710B6AD40497F418ABC6046BD4C4155B93B863646730B80292BA44C120EB8CB2 + 2908024A2C2A96655864997D9F79BDF3A8A31418986168B1A7F79C39DCC77BDF + 77EFEFFEEFBDDF5D1878212DD912494506AE464D8B927E0E399F0173A5F58BBD + F5F9C0A033883FB086610EBF6D9CE80022F6AC068FAF345BC53B4ABD0A10B67B + 35EA042F3140E8AE55A817AA5E5E80E09DABF054F412031C27008D2F3340AFD6 + FC85D42B002F63FA3FC07F3BFD6F016C8AC830E3206664CBD5D4ACD0F5DEE2FF + 28C0E13533D0530A9D7D6C4619EE9437F43A4487005A33E87039A71C4A9516B7 + 1ED4F52A4487006A3310708AAB20942A7A1DA2430095C67400A954860C6E1652 + B879A8A9A981502080582484A595AD4AA35694511A6D0918545A8B9CFADBC3BC + 6B42B3020484A753473EF38642AD35DA91402844CCE978FC9C980CA685156CFB + 0F8095B52D2C2C2D616161098D460D8D5A0DA54206995402995CAC6068A908AD + 44FA978282CC46B3007C19964A1D5DEB0399AA15E0ABD05FBAE5A4A9EAEF7852 + C4858D6D7F0C7ED5011E9ED33178E870D2100C28D51AAC9DEF0981440631E952 + 0DCD02DC2F2B07272D05FCA60648847C9106DA3FDDE15E3BDB63802F4252A8A0 + 75EF42AAEC9E0214452132FA24122E5EC5500747BCE3331333BDA7C1D1C11EFD + 98202DCF0093C1A00B5193D617CB55645CA8C0972A098C1CA5256548BD76058D + 0D3550291407F26F247D4D3E354AFE36001B8F2753C736CC8458A1A19FB78527 + 1B34AE2ACD4153E5AF18366A0CDE797F2104720A36A4E696CCB6F171DD024F54 + 378A907B9F07BE444EFF4F3751C849430DECA741FAE5783CADAB824226D5416C + 351960C30FD7A8E39FCF8650AEE9D230352D13878E066304CB19017F0EC078A7 + 91B0D535BB81D84E04437975338A1FD743A1226510756404422214E04EFA25D4 + 555740A556FAE773924E9B04B03E28910AFE620E04B25680ED911D2BA02203B1 + F8FA590C1BEE08EFB94B20D75AC2D68AD9DEB901983F4C7606AF494C43953DA9 + 473FA5109CE42B3A089142AD722DCEBEDE6034C0BA2357A990005FB448D5068D + 42422391C6C986CFFBF3B062E93C0CB0669AB4A8D2CD760D2D1264163CC41B93 + 5F47DCE91894DEC98558D81292CF4DDA6034C0DAC33F53619B3E40B3A4156017 + FB7A3B038D5A893B89311839C6196FFB2E453F0B262C989DBAEC548D253EEEFA + 7C6C4A217CDF9E8C5BF72A11FF6328AA2BCB157C99D6A13B71A28DDBCF0E5EA2 + C237CF43A3B8730552D332101ACEC68C5973B1EAE345E8DF41D7313625A41562 + AE973BAA9A953817138D92826C1210252B0BB889278D0258B3FF0215B165011A + FEB527DE7B22A59DC1A3DB29D0CA4498E9E70F4B1B3BA200C3405FEFBC63CD9B + 3E519FBF905184394401DDE4919A71132997CFA3A5B1F6DC6D6ED272A300FEF8 + DD4F54D4B60F0D1EAB7CBEF14BC8554C6CDABA0DCE8EC3C034C38EE232A718EF + 4D9B442F61EE3EF807E2D8C1A8E73D29BACD49F4300AE0D36F1328F6D77EA815 + B402EC8B69AF4061520C997D4661C6027FD85859B66F6303408C175ECEF21CAF + CF27DE2C81F75B13C92A98C2E39A16441F3F005EE5C33A0230D22880D57F8DA7 + D8DF2C26009D9FCCCD9FBF10A39D2760EFBEBD2460E9063089B66418F464245C + CB2AC5548FD7C9B2434BAB70F4DB405455FC0A02D0A5BE6D3E58B5379662EFF8 + 487F36FAFDA9D44E1598BD7825A9B5459BB6D57527C6B31F187AEFCF0A79B6C6 + D5CDFD5E1EAEF4BE43B71C49C9B987B7A6B42A221689F0C3A1FDA629B022F02C + 15BD6399C1C3DD4D010164FE6662F3B6AD18E130B407EDFE3CA5DFBA8FA95326 + D0F95A1E0FA1C7824C1B03FEBBCF50EC9DCF010E9E496B6740CF4272113E58FC + 0959790EEFC263E7AFA64E72D2E7B9F90F08C0383A9F9D958D84B858D366A14F + 769EA2D8BB3FD6DF0F749438999938117D025E3EB3B16AC532B328905DF81C20 + 2C2C0AB7736F9A160796EF88A1A277FB130005FD7CE45C7A3B038D8A4462320E + 468D76C662FFD5F41EC060019D28E2316EB43E9F7BB71CD3A6B8A186578B0307 + 834C8FC4CBBE3941B1F7AC30A8802E9D60472127270F337CDEC3A72B96F65881 + FCD24798E6EE8AA0E028E4E6649BBE165ABA2D9A6207AED4031C8B4BEFD0E8C5 + D5E87CBF4578CDE935436E3B54E337CECF2798C2FB8F2169AEC7A97309A8ADA9 + 902855AAB126AD463FDA1A4545D177648A2E0DB36E70C18E8CC0084727046C5C + 8B096E63BB5FD0BFBDC8B8998FD8B8F3F47E60F84816999DADB75E3879F880D1 + 00C65EF2559664A199EC871D468EC6877E0B31DECDA5DB35776539D07FB93905 + 88391D8786DA2AB88C7542E0F6CD883899809CECEC2B9CA4D8B946031873C9A7 + 0B42F1E7CE2025F9177A4F3CD5F34DCCF77D17635823BAB4ADACA9C3A5ABA9C8 + CDBB4DEF89DD5C5C101DFC1D640A159AF92284C79CD7A9CCBD919CE065148029 + 977CBAEE74FA47369896D618F2CA30B84F9E8437DC27C2C57934060FB2C3A081 + 0320144920108AF1A8A20A0577EFE16E7129F8CD4F49E46D9138B29C071CD9B7 + 1DAFD80FC420BBFE90C814A8E2D563CFF721C8C9B872A8BAE2C157DD0630F592 + 4F2814E262423C6E70326161A93B17B283958D0D7D26A43F17223FA5BCCDB950 + B442AD0E7475FBEDCA71AE4EFBD7F8FBC17E881D5DA95DFBC3C8F75A70521309 + 6843A71066BFE4934AA5C8CFCBC5BDD212F06AAAC1E7B7D0A7734386D863D0E0 + C118E5C8C2A33A31788559F6454599FC67765EBE4B2F4F9BFAFBB9CBFDE69031 + F01386BD3A049E6FFE0E9CAC3C5CB910DF29449FBAE49B3E7351E6709693974A + 21C23897B1183FCE0D2C16CB20449FBBE463398DDF6F6DDB7FCB44770F0230A1 + 4B883E79436310E2E279F09BEAF5107D12C018883E0BD05D883E0DD01D887F02 + FC699DF95FD6BD7E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-01_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA8640000084F4944415478DA + ED990954935716C7FF0918CA228B83E0022D8280A315AC3D202E8C65C6DAD14E + ED74465BAD95CD566DB5D3DA5315379476BA801B56059150511459AA9691A528 + 1809B229A808A8B85720010412B29205BE7909368502810498813973CFE1E485 + 2FF7BEF77BF7BDEFDEFB1E0D1D64E9A6682A3A2410353C19065376869F4442E8 + 07B481B0D5C9C83B1B8F5047D40072F5F74349AC011BF4DAB77D34ED90F01348 + 0C5B353800513B03C1E1CB076CE0DDC9A00244EE08446DF3300688080E409D40 + 317C010E6E0FC053E130063840001A8633C0A08EBC830C0AC07094FF03FCB7E5 + 7F0BE0B328D6006E625A7E8B927A2D62AD8FE83F0AB067D52BE82F854AFF14EB + 36AEDDAB1F74886E01DA06C00F2905F72057B4E14A65EDA042740BA0EC078144 + 22058B9D87B4EC02D47239100A04108B04AA477514851AD2E16DD0A86C5E0B75 + FA7E518660500014ADBA033493811E8D4B404A6A26E8060C189B988261640C03 + 4343181818A2B5558956A512729914528918D216918CD64645B589255F96945C + 6A181080F5872F527B57FB40A66CD3C9C885EC1CECDE1F091A19B8E5A8D1F09A + ED0D37B7C9787E9C0DCC8C8D606ACC00B74100518B023CBE009595F7C1666581 + DF580FB1802F6C45DB87D7D81927FB0DF0696416B56FCD9F2055B4036C88F849 + AB3245D6447545219E3EAE80B5CD7878CE7D150C731B88650A18D2693034A081 + 7CE0D325B3C017B5402495A359A2804022273032DCBF7317177F4A45437D0D14 + 325958716EFA666256A7D9EB04F0C9A10B54F847F32091F7CD46143316A75332 + 6033D61E01EF7F8099D39C613482AE1EFC6FA5ADB5550D26215E10B728212030 + 4D4219784D7C9C8E3F86A7B5559049252A884D7A03FCE34026B57FDD7C8864AD + EAEF4187337B546C78528927A56CD8DA3BC27BC11248C9B2332683EF4E562FF2 + 444DA3104577B868269EE8D8BB944C964C22C1B5EC33A8AD7E048552EE5B9C93 + 1EA717C0BAEF32A8031FFF19829656AD4AFCE666F806AC81B9952D56AE59032F + 775718337A0FEA64C5E13E8787B287F59077D8673C810486323E7232CFA92084 + 32A562E2CDFCF3F53A03AC0D4FA30E7EB210CDD27680AD47BAF7C06332F3E2A7 + D5F07EEDAF30B6B6872983DEC9927694F6A733A73A80DB2822418FC2CF9C464C + 9F3A090971B128BF5608918077A8989DBE4E67808FF6A65287D6BF0E9E44D9A3 + 82EA3DFFCE323F8C1EF702366FD90C8771A36040EFB59F6E45AE6C453D5F82DC + EB0FB170F68BB852F10489472350FDE49E8C2F6DB3E94B9CE804B066CFBFA8C8 + CFDE4093B81D209879BE8B826AED736E1562CEAB6FC2CADE05260C7AAFD3DEDD + A3C53E6E9A7652762916FD612AAA9AE4888F8D4159493E9928B17F093BED984E + 00AB77FD481DFEFC4D34887AF640D8EEBD282DBB8B800FD761D6F4C91861D0FF + 84F60CEB2616100FA8F65E16EB322EA42481D7C08DBFCA4E5FAE13C0AAD03354 + D4C6B750FFAC26FEE2FB0B5D14CAB2136131D21C3E7FF30563C408D0E93D19D6 + 0EF697D9BFD7B45372CA30CF6B8A3A0328ADFC1909CC83A8E33CBE713527ED25 + 9D00DEFFE6072A3AE8EF5A8F557CFD02603CD21ADB828331DACA0CB401A82852 + 73CBE1E339992491141ED6F01073200C9C27F76B09C0589D00567E9D4C31372F + 06B7B91DE0ABD8AE1EB8723602F61326E195B75690284B231BB83DDAD2E97DEE + 462DF33C5C34ED8CBC72784D9BA47EB5AABCB0EFEB10543DBA0302D0EBF474FA + 41E03F1329E696B70940CF2773FEFE813031B7C6F61DC1303335F9D5900A82D6 + DE78F6D1ED2252A589D4B35C5195F4AAD291F305B7E0E9DE0E24120AF1DDEE50 + FD3C10F0C5298AB96DA9E66CF4DBE3595D147ED9036F2C0B8401C3A837FB3DCA + 1C77474D9B75E536664C7355B7B91C0E22F687EBB707FC424E5231DBDED57AB8 + 1BBE6F1FCA6FDF23B9CF6A784C77EBCD7E9F845D7207339E79203F2F1FC909A7 + F47B0BF9EE384131B7FF0AB0EB447617054D1CF8E302B87BCED262ADE3BFBB3E + F098FCBCA69D77FD2E49479CD5EDC8C8685C2DBCAC5F1C58B1FD38C5DCF19EE6 + 7EA03B9190C46BD5CA95B0219138286803C6D85AF7DB0345A5F7D400351C2EC2 + 7685EB1F89976F8BA56276F86A6E68F6C65FEC56E9F10D920B35905CC8673EBC + BCBDFB3CEB1DC5CD799CA65D5CF680004C44F8C1681416E4EB9F0BBDBBE57B8A + B9D34FAB07542220E5E3FA8FD7C262D418F8FBADC0AC19BDEE35AD72E3D64388 + 9AEA703C3E19DC9A4762B942E1A85736BA2C28866286F86B00F6275CEC51515D + 0FDCCCC598F10E78CFD7173636D6D09610FD36E0B9BE60AB69B32E17E3544292 + BA1EB01D6B476A6AA34D678EED09D31940D74BBEF8B8E3C8CECA6AAFC8562C85 + F7CC977BE9A1ABE4E697A80F03EAB95570727440C8D6CF11752C1905F9F9E772 + D24F2DD20940D74B3E5510AAAA2840C3E35BEA9AD8C3D303DE73BC30CACA42EB + 1E50073D4A891F53B3505874555D133B3B3921E6E0379092B2B3892FC4E1D824 + E4E5B2D9B999C9737502D0E7928F7484B8A34CD00D8DD4A712EE6E2FE265F729 + 709A600F0B7333988F3485402846B34084078FAA50525A81D29BE5E0373D2591 + 97271E6F37C174EF575B09F848989B99402C95A18A53879DDF1E4201EBDCEEEA + 47951BFA0CA0EF259F6A639F4D4E446ECE251818AACE85CCC078EE39F59990E6 + 5C88FCC95B3A9D0BC5C894CA9089CE53FD5D263A84AEF25D0C2B4B33F5A08243 + 23C9EFDB9093954640EB7B8418F04B3E559C282E2A444579193835D5E0F37910 + 901ADAD2D20AE616161837DE0E0F6A45E05CCFB3BA71E312FF17BDB9AF2F4B99 + E9356BD1F2C50BC91EF801A37F6789191ED3919357847367127B841852977CDE + F3975CB2B57398AB9009E1E2E408571767D8D9D969851872977C760EAEA146C6 + 261BA7B8BF440026F50A31242FF9B4429C4D02BFB14E0331646F68FA0A316401 + FA0A31A401FA02F16F03449AF9431DDAB30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_01_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008614944415478DA + ED99095454D719C7FF3320AB554C14174059046C9078628F51D35A443D4AA521 + 2141EA9222626B166DDDE21617C426465009864D6030B8B2A518AB6058944D46 + 098B28AE014BC2BE33CC30FBF27AE721A31686610668B1A7DF39F7BCFBCE7BF7 + BBF777BF7BBFBB7C0C3C27AB76C752AC005FD47548E8F71309D73154B279E522 + 55DE3FE402E28FAC670C85DE1794ACDC1543C504F81100F19035BC2F3918721E + 09817F1E7A803FEC8CA6A269806E0B8427650F59A3377ABBAAF20121E79018B4 + 617800A20EFAA19E2319B286F725C30A10E9EF87C6CE971820E2C03A3471A52F + 2F40D8FE7568E1BDC400A104A0F5650618D6963F27C302F032CAFF01FEDBF2BF + 05B02D2A7B082731832D9251CB2236BA76FD47018E6F5888C15228CBC7673F44 + 6945F3B043F409A01804015F2044765E012EA6E7A3A5A909ED6D6D529944388A + 02D5008AD1402A7C080675AD4344FDBDB2F02A775800643A107472B938752601 + 97AEA483A9670063135318181A434F5F1F7A7AFA90CB6590CB64908885100AF8 + 108ABAC40C0515A5E00BFE565292D33AA40052B9760019D772702C2412200D37 + 7B6502E6FD66016639CFC4348B09186D6C0853630354D4B6412096A2B393878A + CA4A14E45C47677B0BF85C0E4F0EC5C7A57957CF0F1A60EBC9EB54F087AE10CB + 14032A4C51144EB24E2329E50AC69B5BC065C9522C5BF46B589A8F853E132431 + C060281350D7C2034F2805572841275F02BE508C82FC02543D28456B731DA462 + 7150717EDA1EA2766095F705B025328BFAEAA3C5104ABB75EC88F8BEDFC235F7 + 6EA2ADFA11264C990A97E5EF8123A460348A4937FC79D9F4FE3C70F922084452 + F045320824521A822794E1EEC34A94E55E454B630DC44281126297CE009BC333 + A9904F96900A3477424656368282C330C9D206DB776CC70CEB8930268D57270A + B91C7CB10C4292F86428D14F91045C0181A8A84549560A1A6BAB4066BC4F716E + DA599D00FE1A9A4E9DD8B4145D6239FDBEFB647A9F85A46422DECD388F09132D + B0C86325840A3D181BF46E3CE3A9763FF75FA1BEAD0B458F1B694BFC7BD55D02 + 31F4441DC84DBFAC84E08965D2E977D919CD5A036CFAFA2A15FA17377045F27E + 0B858647212B878DC5CBDFC1BA55EFC2D49039A0255DE91A9ED477E0FE4FAD90 + C89ED521148930DBC9110967E370AFF416BAB81DE1C579699BB406D818924A85 + 6D5E8E4E61B7F2BDD1BD2D209749509A1A87C9536DF05BF755C44532A1C754AB + B297357A64AED33434B4F3694750D3D886DFBD35133FDCAF46E23711A8ADAE10 + 73840AF381AC132FA8FD24F80A15BED51D1D645CAA934C32F6C322597075F380 + DF072B6062C8D454875A515AA1852300FB4E157EBF60266ADA25B810178BF212 + 360402BE6F495EEA69AD003E3AFE0F2A72DBDB68E777031C6065F42AF0A42813 + 0A210FCB56AC859EA12946E9317AF5AE266B28C5D3C549954FC92987DB7C277A + E86665DF40E6A52474B4365C28CA4B5BA315C08747BFA34E7EFA0E5ABBD45B60 + E3A62DC4CD32B07DF71ED85A8C079339F80DEDA5DC722C9EFB1ABD80DE79FC33 + 12586168AAFFA9AC2837F50DAD003604A650513B3DD1FCF44C7CE85466AF02B7 + D3E288F79982859E3E3032D0EFDDC7FDF0309EFBE836CF51954FBD711F0BE7FC + 92ECC128FCB3AE03B1A141A8AFAE6C240093B502F8D397DF5231BBDFEFF75AE5 + 6D0F4F58D9CCC0E7870F415F3981C9F86132FB1B4680A6EDED55F67DCC9DE548 + E68482B6C25787035053F5080440A3795FF861FDE1648AB5C70B0D9DDD005FC4 + A9B7809BB72FC8AEED85BE558E26464F0243A5BDA7921E0ED2D158387B3AFD54 + EE1B336F3DC09CD7EDE96F5D3C1EBE3E16A89B05FC3E4FA4589F791300F53773 + 5BB66C8548CAC48E3DBB30C97CBC26FD0392EC1F1EE1CD590E74BEA1BE1E1127 + 42749B03EB0EC553AC7D2B5577A347CE64F52A407B21110F1EDE3E18F3AAB906 + 8DEA3FCD77B651E5F34B1EE3CDA7166017B0919C10AF9B175A1B709E8ADDB7BA + DFCBDD9CEC6CC4B04E919DA71BD6AF5D3DE8DE570E2B765905E6BE3E9D7E8F8C + 8C41D1AD1BBAAD033EFEE728D6FE670047CF5DEB55402E252B31990753AC6CE0 + EDE307236393FE2B506391D98E56AA7CE1DD4A1AA0AEBE01414743745F89FFB8 + FF0CC5F2FF40151F5027B131D1286017C275F152ACF75D35682B94DC7B4200EC + 101216835B37D9BAEF85D6EC8BA362FD7D54119AE00B7D87989EDF8D7AAEF0C6 + D46953FB53DBA7359C6C9F3998DB0FAAD0D5D688331792D15057C59748A5B63A + ED46577F768A621D5CABD1024AB991978BE8A8284CB2B0C6B6CD1F6386BD8DCE + 974CD70B8A111F9F449F07264EB624DED97057CAE9E3415A03681BE4AB2E2F40 + 7BCD8F309F6C052FAFF7E0606FA7A18667626FD5EDC1F2D825F8E66C029A1B6A + 60676B8D80BD9F22EA74326EB2D99773D3E23DB402D036C8A7DC0A279C3F878C + F4EFE933F1FC7973F0AEFB1258594CD2688DEABA467C77250B370B8BE833B1BD + 9D1D62C3BE24273529DA393C9C8C4B2267E6BCBCFCF464970103E81AE46BAD7E + 8C9FEFE4D31E49792BE1EC3C13AFCD7080C51472CC343186899121390F8B2114 + 0889A769C283473FA2BCFC1E38ED2D64E5EDE05B58DA98067FB117AF8CFB05C6 + 8C36A10FFC35E4BF8347C27133FBF2B1DAAAC73B060CA06B908FCBE5E2627222 + F27373A0A7AFBC171A0D032323FA4E48752F449244F4C2BD50AC58260B986EEF + ECEB30DD3A70838F17C6998DA61B75203092FCAF406E562A016D560B31E4413E + 814080E2C25BB87FAF1CF575B5E0703AC0EDEC8499D9388C193B16532C2CF1A4 + B10BF5B70BC69595E5707ACAB9B8AFBA347FDE5B1E6BBC969339F02D26BC6A86 + B9736623B7A010975312D5428CA820DF82A52B72265A5ABB48C53C38D8D9C2D1 + C11E969696FD428CB8209FA5B563A0A1B1C94EA7596F1080191A21466490AF5F + 888B49E0B435A920466C906FA010233A42331088110D3010887F01F077B5F9C4 + 2DAB630000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA8640000085F4944415478DA + ED990954935716C7FF016517C45128022D82502B63B17640F140ADB5475B3BB5 + ED8CEDA08EC832E282ADD39EBA2F403BB58215B1B2880407A8B288553B2A6E28 + 02B2B8A0288B62559025610F0924E1CBC2372F1F1AB1184822CCE09CB9074E5E + 96FBDEFBBDFBDDF7EE7D97851EB270E37E9A1DBC04753C0906538276A720799B + 1F6B20FA7AAA9305EBE36976888F126077EA85019BF46AAF779E0044242365BB + FFC00378AD8BA3E342FC08003560137F9604471C446AE8D28107F8CBDA7DF43E + 06A0DB025187B2066CD2819FCD54B643220E202D2C6070006283FDC0691B5C1F + 18548098203FD4F35F6080E8ADBE6810485F5C80C82DBE686A7F8101F61080E6 + 1719605067DE430605E04594FF03FCB7E57F0BE0ABD8AC017462567EA78C9E13 + 1D38B3E33F0AB033E06D3C0F855024C685EC3CA467E4A0E66195502468550058 + D2A0B9A0595C32E06DB0E8F3BC4EFAE77B974F090605A04B0B023E5F80F8A454 + 1C3B711A3ABA7A303432869EBE2174870D83AEEE30C8E532C86532482831C422 + 21C49D1D14AB8B8EED128ABE2D2ABAD83CA000320D09CE665EC48E8818804C7C + E4A83198E6E10997D77F0FBBB163606CA80F13233D14DF6B80889282C7E3E372 + E115D4DC2F07BFB50942415BBB1C5D2BAEE79C3A38600052B97A00344D23869D + 88B49F8F63B4853566BC3B1BEFCFF280F518530CD76541578705F207168B853B + D52DE8E894822F92402C91E3F6C326702B6EA0AAA214CD8D75905254D8B5DC8C + 0DA4DB2EAD01BEDC7B810E5F3613944CBD3E62E21270F8D8295858D9C23F6029 + DC5D1C61305C07C3747A6F6E9C9676083B651049A41011100544459D00121E17 + 05174EA3B1BE069458A48058A735C0DF6332E95DCB67412CED0658137D5AA562 + 737505AA6FE6C0D2D61E9E733F65740CC9E49F252B3E76834048414CC920248F + 11F3DA2981942CD45D0E1FBA320A678E26A3BEB6927C26F1BE969DF1935600AB + A3CED1112BDF25ABD4B705DADAF858E8B30CA6E69658BA6205DC273BC1504FA7 + 4F9D2EB99C4C5EC64C5EF40842F1CA40D4F1216AE120FBCC7105443B25938EBF + 957FB65163802FF69CA177AF9A8D0E4ACEBC5FBFF7CC3395AAC8CA0B9B6AF1D6 + 9C8F6130DA16C68AC9B354744A64C9FB53C025BB69D1DD7A0844BD9325B9548A + C9CE4E48FD2901A5D70BD121E0455DCBC958A531C0AA1F4FD17B3E7F0F824EB9 + 4A0511D9E7E77B79638CD52BD8B47923ECACCC1967554788CFE3417D1BE3C092 + 1E7E465114DE9B361157CAAA91F6CF68D456FF4AB589BB2CD439279E1A3930E2 + 241DB97A2EF8E26E804DFB7A5B40F1EC73CA0BE131E723985B3BC1E8F1A3C352 + 739047E23AF165D4B70A99764D7D2BFEE8E18C9A56099213E25152944F164AE8 + 5394733251238095E127E8A82F3F004F2453A9B03D2C1CC52577E1BFF2734C9F + F21AB35D6A2B1279179AF96214DEAAC41CF7898CE533B32EE1DC2F87C06BE626 + 5FCDC958A411C0F29DFFA263BEFA10ADC26E80ADECB3BD144ACEA7C16C842966 + FEC91B7AC38743474755C77D83CDF398A86C1FCB2DC52CD7D798F3E766C543A4 + B223D1C0A92ABE9A7DF20D8D0096ED3846EFFDFA233477A8B6C0A2C53E301C31 + 1A5B82826031CAB8D744B589A34E5E2AC38C3F4C20210C8D07753CC4EF0903A7 + FA5E3D01B0D2082020F4081DBBF613343ECA89BFD97FAE97C295A3D1B01D3701 + 6F7FB2989CB24F4E5B1D1DB5876164B69B93B27D2ABF1C6EAF3B318EADB0C2AE + 6D21A8A9BC0302D0EFF3F9D40FFEF6FD613A6EFD9FFBBC56F15EE2CB58202878 + 2B4C4C8C94CBAE0817584CD8D0DDA9E2FD6F07796C1D450842A37B5752845D67 + 0BCBE13AC991F9AEA3BD1D3FFE10AA9D05FCB7A5D3EC0DF3C1E577037C97D0DB + 028F7DE0C3057E2476D3EFAF7F95F2D6640765FBC2D53BC402DD005C0E07D1BB + 23B4F301BF7FA4D1EC8D9F1100D53773E1E1BB5052FE2BFC962E87EB94495A03 + F4949CEB77E136693CD3CECFCB477A6A8A76BB90EF3729347BB397F26E747B52 + 662F05E539306B2E5C5CDDFBE8ADE7C7BDBF70737E59D9CEBF718F58A0DB2231 + 3171B85A7849BB736049C8413A7EF3C23E2F77854211FCFDFC6031F6156CD8B0 + 065616A39FDB028525F731759203EA385C84ED88D0FE24F60E3A40B3B73C01D8 + 71E0FC3395AA8A492CD45C0BCF776633C98BBAABDE535C1CAD95ED6B650F0880 + 3D2222E3505890AF7D2CB4784B12CD0EFA6BBF252681808F2F02036136EA25F8 + FA7863FAD4C9CF6581E2F22AB4B77091949C0E6E5DA5502295DA6B158D2EDA9C + 40C707792B2B34E1C9AA4B4C4C3E702B172F59DB61B13709EE984749F5AAB37E + F3D5043B4B653BEB52119253D2987CC0D2CA86E4D4FAEB8E24EE0CD31840D322 + DF81A444649ECB6432323F6F2F78BABFA9F1EAE71614617F522A1AB93570B0B7 + 43C8A6AF119B988E82FCFCE3D91929F33402D0B4C8A738906ACA0AD05C55CEE4 + C46E6EAEF0F0988651E6667DFA80C21ABAB41CC74E9C43C1E5AB4C4EECE8E080 + F8C8EF49A223456B5B3BF6261C425E6E4E4EEE99F4196A03685BE4230321713F + 1B3AC3F4995B09C58DC49B2ECE7018670B335313988E3086A05D08BEA003F72B + 6B5074B30C376F95A2ADB5899CBC3CA1B5CD38E3F0EF3611F0113025A7BB504C + A186D380E0ED5128C83AFE436D65C51AB5009EA7C827A5C4A8BB7D054D0F2BA0 + AF6F00432313E81918307742CA7B21F22FE97CEA5E289E92C942C63B4EF2711A + 6F171AE03D1FE6234D98496D0D8D21BFEF4276E64902DAA81262C08B7C229108 + D72E17A2ACB4049CBA5A923FF320E0F33172A4394CCDCC30D6DA06F7EB3BC0B9 + 91675E5C7CB1EDB1DE8C0F16FCE23E6DFABC45F3E7121F388C31BF1B89A9AE53 + 909D7719C78FA4A9841852453ECFD99F5EB4B4B19B21A5DAE1E4608F579D1C61 + 6363D327C4902BF2D9D8BD1AAA6F68B4D6D9E50D0230A15F882159E4EB13E2E8 + 21B4B5342821866C914F5D88215DE4530762C85768FA83F8379AA4C2F93908F6 + 920000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008674944415478DA + ED990954935716C7FF012A8B8EDB288A89C82ED3D18EADB5554F5BABE3A815C7 + 6546AD4B07112B75D4566B2BEE225D547043655F1C44D9A46A3B2802A26C0645 + C4DDA2B8B28580914042F6E59B972F18E54080C470067B7A0F39792179CBEFFD + BF77DFBBEF32F0922DDC1C4BC5F879A28A2FA33FEF4D380F53D99A051374E5AD + 079211FF8317C314ED366B64C1C64354F4B64504406EB281B7667EFB1391B0DD + DBF400F3D7C750D1FE5E3A80FD49A65360D5BC170AF805252071E712D303CC5B + 174545F97BEB1EA1CEB26D41F1480A586A7A804F7D23A9481A40AB40C8B16C93 + 0D7AC5DCF1BAB27FD0512407FA740E40C4366F70EA3B770D742A40989F37B80D + AF3140E8D6C5A811285E5F80E02D8BF154F81A031C2400BCD719A05347FE9275 + 0AC0EB68BF03FCBFEDB705B02622FB9517B14A2107AFA214BCF2FBBCBAEA4755 + 14A5B66580614781AA06C5A8261D9680419DE34BA9E30F0ACF084C0EB0C7E763 + 1843D1D020404C5C124EA6A6C3CCBC1BAC6DBAA39BA535CC2D2C606E6E01954A + 09955209B94C0289580489B451C65053116A91F8FBE2E21C9E4901D406126464 + E520705F284006DEBB6F7F8CF9E0438C786B18860CEA8FEE3696E8415EECDBE5 + 104B15B8535A0E5ED95D54953D447DDD538804F54215D4FFBE9A7726DE6400CA + 0E12501485B0A8C3483A9E8A7EB64C7C3C71123E99F80198FD7BC2C29C010B33 + 06C81F180C06AE94722194C82195ABF1E4A918BDACC8FFF2B3F1F87E0978B555 + 50C8648157F2D3369066D5AF0CA050750C20342A162927D3606B37189FFBF860 + EC085758BE614606DEF2B7A5957C88E50A5A0585520D4E9D18439876B872B910 + EC73E9A8E5564026116B20D6190DF075F8796AEF17E32153B63F091959D9D8B9 + 3B1803598EF0F5FD06431D06C09A0C5E9F5FE33E134124534022534224954349 + 26A9BA4E44EA3171E34E29D28EC7835BF998C0C93DAFE4A61D310A60755816B5 + 6FD95F21516801D686A6B75A494116E2CDCC78F41FC0C48419F3205199C3BA5B + CB696734B5BE74DABB108865F4E0C504424CDE2532AD125C7E23DC86B09077E1 + 227233523510429952E172B320B3D66080552167A9A0E51389D46D2BB03F3802 + 99D96C4CF4988925F367A0BBA579BB3B8A5AA58244AE6C1ABC1640DC04A151C2 + D19E85A423B1B87DF5121A05FC902B79692B0D06F8EA6006B57FE52434CA54F4 + E7F5E1192D2AA894725C3D1D0B3B7B477CE4319FB84833989BE96D92B6CF268F + 00B7AE11D71ED410255A064B6AE25E278FFE132EDF2947F27F4251597E5F562F + 51DB76649F68D6DBCA0367A8835F4E8140AAD25B2133EB3C0E844463C2941958 + E2391B36AD3C3AFA8C382D3CE136A0A49C47CFFCF3DE6532193CC6BE898A3A39 + 12626370ABB80062B1C8AB38EFF461830056049DA682574D4583440BB029B2A5 + 020F8BCE422D1162F29C4530B7EC8E3788BB64303AD47C331BE9CE420D5FACC1 + 42650D9F5640337159D91770F69763E0F3AA138AF2D2161A04B07CEF292AE46B + 0FF0C54ABD1596AD584D9E6506D66EDC0027663FE2E78D3F4EC9952A3C134870 + F97619C68F72A7DDF78D7B65488A0E460DE7C9F5A2DCD36F1B04B06CCF7FA9B0 + 357F479D480BB0353AB345856B69B1C4FB0CC2F8599EB0EC66D1728EDBE061BC + F4A5C718775DF954C1AFF8E89DA1E40440E151151F310703C1297FC025007606 + 017CB1EB672AFCDB19E035EA5760EAB49918ECE88EED3BBE27BB2D59C0440133 + 33E01584C09982128C1AEE4A1451D32AECDBEE8F8AC7774100DA6DB5D90F7C02 + 4E5011BEB350DB14137F77E8AC5E05A6CCF50239B5359B5BEDB1A1E90586AEF5 + E79D3CDFDF358B79C24817FACCA529671696E0DD612EF4778D42210EEC0E304E + 81CF77FC4445ADFF679BD72A5F7EB51A5285197C37AE879D6D3FE3A7FD253B5F + 748F28A005A8E67010BA3FC8B835B0647B0A15BD6136AA1BB4003FC6B65480F6 + 425221A67FEA899E7D6DDB6951FF5763DF72D495F3AEDEC77BC39CE97201BB00 + 294989C67921EF1F92A9E88D730980FE9BB9ECEC6C44441E2227CF4FB0C46BBE + 4914605F7F80F7866B01C2C2A25074E98271FBC0E2EF12A9E8CDF37477A33BE3 + B25A54D0445C57C93A1834D811733DBD61656DD376077A1419E93E58572EBCF9 + 880038A18A538DC05D41C6EFC48BFCE3A998CD0BDABDDC8D8C8CC405F6258C27 + E7FFA52650A1E8F623BC4F008282A370E96281F167214FBFA354F4961700BB8E + 9E6BB5D2CBA7D15973E6C27E887D5BCDB6AAC630A7170EE65A4919843C0EE212 + 52505DF5582457289C8C3A8DFE6B4B1C15EDF75987524C79B9B988080FC740A6 + 03BE59B51CEE6E8E465F719C6717232121898E0706D8B18877B65C77E2F09E40 + 83010C4DF295DF62A3AEA2948EC866CFFE07DC5C9DDBE9E185B9D96B3D585E41 + 310EC525A1B6BA02CE4E0EF0DFF42D220EA7E06241416A6E5AE27483000C4DF2 + 6962E2C4A347909E9E4EC7C463468FC2CC697F833D7340BB9D9655D5E0E75367 + 71F152111D13BB3A3B232678071D27D4D50B111E7B0CECFCBCBCFC8C94711D06 + 3036C9C72BBF87B21BF9B447D2DC4A0C1F3E0C6FBABB81396820AC6DAC606365 + 496261129189A5C4D370F1EBDD52DCBA759BBE956814F2454C9663F7BD3F6E42 + DF3E7F40CF1E36104964A8E0D460DBCE105CCC4EDD5DF9F8DEDA0E01BC4A924F + 2010E0784A32F27372606EA1B917EA816E5656F49D90EE5E88BCE4D266F74231 + 32A5D2DFC575B8979B8B43800F892FFAF4EE410F6A6B4018F9BD1AB959A70968 + AD5E089327F934FB445DD543089E564222E4432115D15EAB77EF3EE8D9AB1706 + 315978C86D04E71ABBCFF5EB39F5CFEB8DF398FFCB98D163A72F9C3D95AC819F + D0FF8FBDF1FEA87790CB2E44EA8964BD105D2AC9F7E1A4393903580EE3143221 + DC9C9D30D4CD152C16AB4D882E97E463390C0DB0B4B6F1FDF35FDE2600EEED42 + 74C9245F9B10278FA1FE598D0EA2CB26F93A0AD1A5937C1D81E8F249BEF620FE + 073B4ED8F9CD2F17D50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008844944415478DA + ED990954935716C7FF09AB8A2C56503456104439A202162916C6ADE3587BDAA9 + 536B5D464474D051A74E3D6E7503BAA8A0226EE0022D2EAC566DC78A1BCA229B + 024A51442A160D101691044212B2F1CDFB3E344A3181C47006CF997BCE97BC6F + 79CBEFDD77DF7DEF5D165E92055B8E5351817F47155F86EE94C07D4938F18D2F + 4B1F65B52B64FEE6182A3AD097004899FBB0B86B7A6BF4EA795354E9ADFB1211 + FBAD9FFE01E66DFC9E8A0A5AD8FD1AD81B8FB86DFEFA0798BB219A8A0AF65301 + EC4DD09F0656CD79A181C0F038C4EF58AC7F8039EB8F524783FD5543A8BB2428 + 3C160921FFD03FC0E7EB8E50471880360D1C4C4AD55BA357CC9EAC4A07879F44 + 626840F7001C0EF2074FD0BD36D0AD009181FEA8697C830122B62E426D93FCCD + 0538B065119E08DF6080FD04A0FE4D06E8D696BF24DD02F026CAFF01FED7A277 + 0047CF0FCCAD4C599F82624D2506E50C1665CB02CB9602554D9E55930A4BC8B3 + ABFC16EA74D98D0B4D7A05587D38556723964B25E0DECD414D59118C8D4DD1AB + 771F189BF48281A1210C0C0CA1542AA054282023DF49C422485A9AA5AC56EA70 + AB48FC4D41415ABDDE0076074C82B6141753D2101A16011818C3B29F35BCBC7D + E03AD605430759C3ACB709735DBCF110E53502B0257C701F96A28A5B0E41C313 + 889A0442255AFF792BE342ACDE005ABB48405114228EC420FEF439F4B7198C49 + 7F9E860FA67A63888D050CD92C181A90C1C36AAB24ADA80232792BAA1AC4701E + C64139B70A3733AEA1FC4109EAEBAA8806A5A1F9D793BF229FB6BE3680A28B04 + 74E393CE26C3C67608962C0DC004D7E130356293C677FCF6F6C33A885BE4902B + 5AD1209462C2E8B7C17D2A474E7636B2AE5E445D4D05A412310DB1FEB501E4CA + CE012E5E49C5F65DFB3190638F75EBD7C0D96E00D37875B3C2031E1F12A902A2 + 161914A4FCA74D124C76B3272B5F39F20A4B907C3A163595E50450E69B9F9E7C + 4227802F0F5DA3C2964E8654A1598B0241233EF75D0A73AB010858BE9CE9F95E + C66C8D796A1A44104BE5E45230FF34442D5F84A9EE76A8162871352D13E997CE + D11042A942EE58947DB94E6B807F47A6507B964D8544DE06B036E2E22B333DFA + 3503A22795F8D3F499307D8B833E74E3596A0A25B268C638344BA44CE325CC25 + 6720E8E1542B10C1678C3DB80D72249C88C1DD5BB9686EE21FCCCF485EA935C0 + AA8357A8F0E5EF432C53AF01B158824F662F80B5ED506CD9B209F683AC60C0EE + DC9D28954A4864CF0114CFD26D103544135E2E76B859CC45E20F11A8E43E900A + 24AD365DF113ED6AFE62FF256AEFCA6968962A99FB0D872E75C850CF2D05EF5E + 2E7CFEF2092C070F47EFE7434703C3DCF7C730C3A59018B2502CEB5039ED1F66 + 4C704645830C7131D1B853904D3A4AE4579071FE9856002BF75DA0F6FF6B3A9A + 5A946A336C0B09C3EDA2522C59F105DE1BE70C2383AE3B7332EBE2716D234A2B + 9E9289E28596A55229A68D1FC9D49B929A892B3F27815F5F1D9797913C5F2B80 + 15E1E7A903AB66A051D206B0E948470DDCB99A088BBEE698F2375F18191981CD + 5657B06630B7111CD411ADD0F31DAF8E8FC9EF8C6066BF5F4B1F2321EA006A79 + 8F0AF3D2CFBB6905B03CEC17EAE0971F822F56A8CD3067BE1F7AF5ED8FC0A040 + 58F7EBD3694335899CD84543530BF2EF71E1E3EE441C2885DFABF888DE1F0A1E + B7AC8600D86A05B06CF77FA8C8D51FA141D406B035EA72870C37CF466088FD48 + 4C9AB9006CE2666903A66D98CDEE72358C4CF77452A59373EEC3C3C5113262D0 + B416F66C0B4645F97D10804E7BA7DD074B77FE441D5AF357D437ABD7C0FC056D + 1A080A0E849959EF7605D1202C569B4E586AAAA69EFDD0FFB4C3A79723976FDC + C7B8510ECCFB66A110FB7685E8A681809033D4E1753351F76C4FFCF5F7573A64 + 786E031FCDF38781914967E5AB95896E0EAA746AFE6F78C7A5EDBE9AC743C4DE + 70DD6C60C9F61FA9A31B3ED578ACB26BF71E1415FF862501CBE0E13EFAD53DAC + A564DC2A2343681893CECECAC6A98478DD66A1C5DB4E51515FCD4275631BC077 + 311D35F0DC0F784F9D81B11E5E1A4A7BF971C7179E2E4355E9ECC21700919147 + 91979BA99B1FF0FF36918ADA389B00A83F991389C4F0F3F387CDA0A1D8B8712D + 6C6DFAEBD0E7ED25F7CEEF184F00AA78D508DD19AEBB275EF4753C15B5798EEA + 6C74C7F19457667A5448D642F5642D34651A3CC9E6A5ABBDFEB2B83A0D56A5F3 + 8BCB09803DC20F1C456E4EB6EE6BA185C1B154F4E6799D1EEE36363662055985 + 5AF41B08FF45BE78CFB3535BD328B74A1E41F88487E371A7505D552E92C9E5C3 + 745A8DFA069EA4A2B6BC00D879F2AADA8CB42D708BAE63E0603B2C58E80B6BEB + FED0B420FAE3B4EA6C3750954ECD2A406C5C02B31F1860CB01DBC064FD9963BB + 43B506D036C877E2580C2E5F4E6176648B17CE858F977B67557490EB3905883E + 168FBAEA0A380CB343F0A635387CEC14BD533B979E1CFFB15600DA06F9682754 + 519C83FA47F7983DF1F8F11EF0F67E17FDAC2C34DA00AD0D432871F6972BC8C9 + CD63F6C4C31D1C107D603BB3C46E10087128260959D73332AE5F3A35B1CB00BA + 06F93233D2F1437414D88626CCA984EB1817B8BB8E82A3FDDBB030378379DF3E + 68128AD0D8D48CB2722E6E1516A3B0E82E732AD12CE48B0673ECFB847DB78980 + F78539F1EE22B2F9A9E0D52268C741E4A49EDB55595EBAB64B00AF13E4A3CF85 + AA4A6EE2C9E3529898D0E7426630363565CE8454E742E492B5B43B178A962A14 + C18EC347FB3939DA8504F8CE8295A519D3A8AD2191E4FB56A4A79C27A0756A21 + F41EE4138BC5C8BB918BE2BB77C0ABAC045FC0471399B52C2DAD60616181411C + 0ECAAA45E0DDCEB42A2C4C133CCF37F1C3B93F7BBD3BE1E3F9B366101BF811D6 + 6F59C2D3C31DE9593770EE4CA25A881E15E4F399F659DA008EDD44B954082787 + 6118E1341C1C02AC09A2C705F9387623424C7AF55E376AAC1B0118D929448F0C + F26984389B04C1D35A15448F0DF27515A24707F9BA02D1E3837C9D41FC17FD5B + E5F91A4D4DAA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008A84944415478DA + ED99095054471AC7FF6F0661000F300A22881C8EC62BAE516336C6F5D6A859A3 + 89E21954A290A8BB1ACBFB4262A2A25151E45248F0E052A39B358288DC8244C0 + 7824450C280A0EB7CC38C3DCC7DB9E874C3438C3300E5558B55FD5ABE9F7E675 + F7F7EBAFBFAFDFD74DE139F1F63F4D476E5F800A8182B9DF7F3A15E692F58B26 + E8CA3B82CFE164C022CA1CEDBED0C8A7DB4FD291FE8BC0E32BCCA6F8CBC4FFC8 + 199CDAE56D7E8085DBA2E9287F6F022067EE0FC6A6994DE9B50BC6EBCA3B8E24 + 20E6EB25E60758B0E53B3A72E7E2B6B7C0E138C4EEF6313FC0FC4D517464C012 + 1DC0E178F35960F5BC3F2DE01F148BB8BD9F991F60DEC6E3F4F1001FDD146A2B + D9191483F8C0E5E60798BBE1187D8C0168B440C89974B329BDD26B9CAE1C1074 + 1A09FB7CDB062062A78F2E8CB695B4294098BF0FAA9EBEC600A13B96A25AA87C + 7D018E6E5F8A5AD16B0C104C00EA5E678036D5FC39691380D751FE0FF057E933 + 726A677B0EF509686A02998FFD41D14E1428271A74257956493A2C22CF52F932 + FA87929F9384ED0660D8B0B1DD58B636DB6916E567CDE968656D630B4B2B6BB0 + 2D2CC0665B40AD5641AD52412197422A11432A6B90531A3A422396EC2A2CCCA8 + 330BC0DA8874939CB8E661114AF253C0E1D8A04BD7EEE8E539006F38BBC3C2A6 + 1368D2855A43C3C6CA124EF61C54953FC2A3FB7F8057560A417D2DC44281480D + CD1737B39262CC0270C0772C8CA5A0691A21C7A21177EE22BA393863ECA4C998 + 36E17DB8387641071645469E02EB592F970B1EE289508691037A832FD5A0A4B4 + 1C37B2D2505A5C84BA1A1E9472F9BE82ECC4CDE46DCD2B03688C240889F81E09 + 1712E1E0D40BCBFDFC306A2817561D2846F9BF4AF6AF8FA15469502F9263FA48 + 0F88E41A3CA891E37A6E2E72522FA3A6AA1C72A9440BB1F195015446105C4E49 + C7EEFDC1E8E1E28E8D9BD6A1BF9B23381D587A9DEAF603325D640AA8D4346389 + 29C3DDC162B1F0A05686FC5B4548FC2106558F4B09A4C2BB2033F1D42B0128D5 + 8601F882A798FBA92F3AD93BC26FE54A8CFA1B171C4B96C13AF72BF890C855E4 + 5242452CF14424C39821BD89C5D878582B476AC63564265FD44288E42A659F3B + B9576A5A0DF065781A7DD06F1CE42AC3D3F050700492D3723069FA2C2C5B3803 + B656EC16C359159F441EA2BCB409820C52155FC24074B060A3B85A86F853D1F8 + F5661E1A84FC9082ACC455AD06581376953EF4F90448958D00EB432F37ABA056 + 2970F352349C5CDDF18F0FE7834DA6019BA5B74946BC3F188A06A99C519EB914 + 2A0646EB13D50231460DEA0D354DE1C66F6548F83E148FCB8AE502A9C6C19875 + E285DE5687A4D0412B2642A2D06F81E494341C3A7A1CE3A7CEC472EFD9B07D36 + 755AF21A8D464D145743D604C05CDAE9442C512FC6E8216E28AF5720363A0A77 + 0B732191889714665D3AD12A807F0727D387574D46835CCDDC6F0A4F6E56E13E + 89F71AA90853BC16836D698B0E24545294E1E6E78C1B841A32D27788238BA48A + 661D6B17B849EFF48350A6C6D5F46B48F9F10CF87595B1F959890B5B05B0EA48 + 121DFCAF0F9886F489EF17AB8985286CDCBA051ECEDDC0D2A33CADE761598D10 + C5BC7A289EF33385428EB16FF76582C7ED7B8F101F7914D5150F6FE5675E1ADA + 2A80954197E8A3ABA7E1A9B41160EBB1E616F825311ADD1D7B62DCACC5B0B27C + 89F31AF066EAB93F87707BA2562061402B6B05184DD6100D59181FF0F8880ADE + 878AB2922A02E0D42A8015077FA243BE9C0EBE44A5B7C2946933D1CBFD4DECD9 + BB8B4C1F1689E514630596095F558D0B9B0C85BF9763F8404FC62A5A2B1CDA1D + 80F2D2DF41005A6CF585173E3FF05F3A6CED3F512F6E04D8117945AF05A67A2D + 01CD62BF30B65A08AAE902A56BBDA993A66945061A138773995FEDA827DFB887 + 61033C98FF1A44221CF936D0340BF8EDFF0F1DBEEE23D435E8B7C0CA556B4898 + A5B069EB66383974D3FB1E6DF417159056504C2CD00850595181D0C341A6F980 + 6FE0793A62C32CD43CCB89BFFA2EA55905260AC9449831D71B9DBB3AB4D0A2FE + BFDE1FE2AE2B67DD2CD101E4E6E4E26C7C9C695168D99E73F4F14D9F18DC5649 + 4D4B47784414C64E9C8A654B17183DCA8624E7D67D8C18D4081416761CF979D7 + 4C5B073EDB7D968EDC3C1B954F1B01BE896E6E01B592ACC4C40F7AF67287D762 + 1F260730D8811E8B8CE8EFAA2BE7DD7D801103DDC1ABA8C4BEFD41A6AFC43E5F + 27D0915BBC0880E19DB9F0F063C8CEC9C3F88993B17CE9FC57B640C16F0F0980 + 1B82C80A9F773DD7F46FA1A55FC5D191DBE6E9F646F79EBCFAD24A4A9216DEB9 + 1243A2913366CDF1826B6F5743CDBED41A833D7BEACABF143D82B0968793B167 + 51C92B152B944A0F93BE461707C4D051DB1618B5B99B999989D0D030F47076C3 + BA352BD09FEB6E72869D965388989878261F707472018B6DB5F1FC8903FB5A0D + D0DA43BEB2BB39A82FFF83C9C8E6CCFE185CAE670B3DFC29FD5C1D99DFACEB85 + 883A11879ACA72787AB82160EB3A449C38ABCDD42E6626C6CD6815406B0FF9B4 + 3971CCA953484A4A6272E2F7DE7D07333F9C085767C716EB96F1AA71E1A7145C + CFCB677262AEA727A28EEE613EB3EB052284479F414E76565676F2D931460398 + 7AC85757760F8F6E6783636D03BBAEDDF1D65B83D1BF1F17CE3D7BC0DA86031B + 8E152432920F486424D254A1E85E31EEDCB9CBEC4A3488F862671777DB83DF6C + 4557FB4EE8DCD10662923B94575463E7DE105C4FBFF8EDE3D27BEB8D02789543 + 3EA150887309F1C8CCC800DBC29228DE11961C0EB327A4DB17229742F6C2BE50 + 945CA50AE8C31DBCA46F1FB7405F925FD8DB756494DA111846DED720F3EA2502 + 5AA317C2EC877CDA75A29E779F4495C7908AF850CAC44CD4B2B3B34717BB2E70 + 767641499504BC9BD9F6B76E65089AEA8D993EFFC7BFBFFBDE8C85B3A7111F38 + 87EE6FD861E488B79199F3332E9E4FD00BD1AE0EF9464F9E93E1E8E236462917 + A1AFA707FAF5E5C2C5C5C52044BB3BE47371EB1768656DB361E090A104E0CD16 + 21DAE5219F41880B67207852AD8368B7877CC642B4EB433E6320DAFD215F4B10 + FF034624FAF95F20BCDE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008AB4944415478DA + D599095454471686FF6E36D9C1088AA0AC6E688CA09128C625263AD1893926C6 + 5151547480A819279EB8242A885123A8045944040C2E80A8D1C938A204014141 + 226250310E910164DF4277D31BBDBEA97E688332DDD0D09CC17B4E9F533C5E2D + DFFBEBD6ADAACB40275B1D9448C5EF5A815AB618FD69BB232FE254A017431B6D + BDD48877E0592A6E7707C0A1B3195A1BF4D6957395E580888B381DB452FB00AB + 769FA6E20257A286D5BF0A04869FC7996FBDB50FE0B52B818A0FF4260022FAEF + D0A44CAD0D7ACB8AF794E580F01424EE5BA37D8015DF9CA4E2F6ACEE7F058E26 + 23E9808FF60196EF88A7E282D628018E9ED39E029B97752810189684E483EBB4 + 0FB06C7B2C151BE4A39C42FD657BC212712EF8AFDA07F8CBB613D4091AA05D81 + A8F3595A1BF4C6A57394E5A0B0B34809F1ED1F80983D3EFD1E07FA15203AD007 + F59CD718E058C05A34B44A5E5F80C8DD6BD1C47D8D01220840F3EB0CD0AF23EF + 64FD02F03A9AD6015C3C3E34B31CC4F81414632E91731C18940D030C1B0A541D + 7956473A7C429E65B0DAA81F4B7FB9D63A6000264F9E3D84696CB49B6232FC0C + 079918181A1943DFC0103ABABAD0D1D1854C26854C2A8558248450C087B08D27 + 62C8A918395FF06D61E1CDE6FF2B80FBCC0FBD74C08C3636B330B5186C05DB91 + 8EB0771E8DE1231D60646C02230223208316F079A8ADACC0B3FFFC8E9ACA72B0 + 5B9AC06F657365907F7E3FE75A629F01B6C46469E4C41445A1E2C12DD43F2DC2 + 106B5B38BABAC3DAC995B4CA84AE0E03BA4C3279480F8ADF504B137C30C5095C + A11C4D3C294ACBAB70372713E54F9FA0B9B106129128E4DEADD4AF49B3F23E01 + 1CF19D8D9E5244C6FC80944BA9B0B619015F3F3F78BA8D82811E831EFCAB965E + F80C1CBE180B3D9CA0A7C3448B408AB24611EEE4E52137E33A1AEBAB20120A14 + 10DBFB0C20EF01C1B5F42CEC0F09C7303B47ECD8B115E31C86C2509FA9F2FDDC + C7D590CA28FCD1DA86F9531C092493EEA7ACA90D05454F90FA6322EAABCB2191 + 8ABDEF65A79EE91380B41B02169B83A52B7D616A3914FE1B37623AF9F2EA06AF + B087654D108824904AE568E18A30C7CD9E86505845930819376F233BED8A0282 + 2B924A5C1EE6FDDCD86B00894C3D4068F8715CCFCCC5BC3F2FC67AAF8F61ACAF + 43CF73755656C7220052081510CF95983E610499723AB4124F1BDA70EE4C028A + EFE783D7CA8ABA9793BA4963802F8F6752A17E732092AAF6238140888F96AC82 + 958D3D020376C271B8257498DD2F660D2CB2742A00C41D10F56C013CC78F803E + 81108AE5B8FBB812293F1C4375E553115B28B7EE499C78A9E7BF47DFA0BEF79F + 0BA1A41D60EBB1EB5D2A345796A0F6B77CCC9CBF18E6B62E307A3175D430787D + F016784231DA5E0074826860F331756C3B44558B184909F1785498A75876D714 + E65C3DA511C0E6A8742A6CC3FB1088552BB0EFE011143E2881EF179BE1E93E0E + FA64C5E9C9AA45C964E4C34809848C066893486945A4323951478077C68F446B + 9B0C37B26E23FDA7F36035D72515E4A47A6904F0B78834EAE8A679E0914E14B6 + E3785A970A8F3252606E6A86F73EF1869E9E1E984C550D7734FDC92C573492E9 + 525CDE0C5E5BD7C3929C44E859EEA368DF7B50F20CE7E222D1505B5154907DD5 + 4D23804DE1D7A8882FFE447F0955F6D9F23530347D03417BF7C0CAD258A350AE + 50AABA918BD2DA16B25C76A82C168B3163920B71660A65352CC4478490885D5A + 4F006C3402D81876958ADCBC001C613BC0CE135D15B87BF91846388EC5ECC5AB + C0244B8FC281153ECC64F6B81BDA263ADBA08923A4B1EA9A3998ECEA04318152 + A8F0FD81205495FF1B04A0DBEFF3D20B1B42FF45457DB9102C122555D9322F85 + 0243B0776F204C4C8C5E6AA87DDBC0E828AB50817AEE348AD5AEA55588A2926A + B8B93AD2CF785C2EC20F07F74E01FF23FFA4A2B77C84167E3B4040DCCF5D2ABC + F081452B7CC0D433E8AE7D9536C7DD5959CE2C2C250AB403D4D5D6E2D8D1B0DE + F980DFA17F50C7BFFA18CD3CD50A841C0EC583E2DFB1DEEF734C757FB3D7009D + 2DFBD7524C790E90979B870BE7927BB70AF9065FA262B62D46E3F333F1DE93E9 + 5D2ABC8803EFBEBF0013A74C53D35AE7C75DFF316D82BDB29CFBA00C53C63BD0 + E5E8E85814E4DFEE5D1C58FFDD452A76C7A76AAF55F87C3E5679FBC07AB83D76 + EDDC8661D643FAAC40FEA372BC4D006A6AEB107228ACF79178DD810B54DCD74B + 50C76907D89F90FE3F2B5514E580DF5C8D9973E7C3C373468FBF7A67731F63AB + 2C173C7E4600EC1116198BFC3B79BDDF0BF9EC4BA1E2BE594A00D4DFCC71381C + F8FB6F80F9E06158E7B31A9E1E93FAA4C0AF4FC859811C6A4E275D405D4D395F + 2C9138F56A37BA766F3215B76B99F26EF4E0E91B2A2B2A7CA1F2E12D0CB375C0 + AAD5DEB0B21A02751BA25777ABAE8EC394E5CCDCFB484C4CA6CF03436DECC0D4 + 31D87EE9D491108D01344DF2252424202D2D9D3E91AD5BBD1C33A74DEE76E0AF + 5A765E21E24F25A3B1AE0ACE4E0E08DAF915624E5D509CD4AE64A7262FD20840 + D3249FE24C5CF5F80E9A2B7EA3CFC4533DA66286A707065B9AABF50105941E43 + 86CB57D291975F409F8947393B233EF23B7A97DAC2E6E278C279E4DECAC9B995 + 7661568F017A9BE4CBC9CEC6C9B85830750DA0B89598347102264F9A0017C711 + 3037338199A9315AB97C70B83C949655A1B0A818450F8BE95B091E97C5B7B573 + 340EDDBF93809BC28C4477BE5084AADA06EC3918853B59570E5797976CED1140 + 5F927C129110354FEEA2E959090C0C06C1D0C804FA8306D17742CA7B21F213B7 + BD742F142F924A835C46BDB966B48B43B0AFF712585A98D0830A088E26EFCB91 + 7DE32A016D5409A1F5249F4020C0DDFC3B287EF4083535D560B358F4AA656161 + 09730B73D8DADAA1B481C016E6581615DD64BFA8376BE1F29FA6BD337D91D792 + 05C4072EC2EA0D0B78BCED8EECDC5F70E5528A4A880195E47B77DE673787DA39 + CC9288B818EDEC8431A347C1CECE4E2DC4804BF2D9398C09363034DA36FE2D37 + 0230B65B880199E4530B71F93CD87F342821066C92AFA710033AC9D71388019F + E4EB0EE2BF42EEF3F97387E8F20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008C04944415478DA + D599095453571AC7FF494042400547645FC256A4475BF769A76A5D6A2B76EA58 + 15171C503A2EA34EAD9EAA5815A4B52A582DB20848681165D5DAE95871415605 + 6D7167C6A52EC8BE0A8140F6E4CDCD4B8D7A20046238C5EF9C77725FDEBBDFBB + BFFBBFDF5D1978CE967D9946F1B62D440D5F4ADFEF493E0F435990FF744D3A38 + FA04BE0F5EC43084DF179C0484A65089DB166B00FACAB6471FC7E1103FC303F8 + 871CA578DB9F01EC3D9A63B0426F5C324D930E8E3A8EE4D0258607F8FBF6648A + 17B204D52D7DAB404864268E7CE56F7800BF6D495462883F0190D0F7FB53730D + 56E80D8BA76AD2C1911948D9B9D4F0008BBFF88EE2ED08E87B050EA4217557A0 + E10116052552BCD0A51A8003E9865360DDC2670A8444A4226DCF27860758B839 + 814A080DD434A1BEB21D1129480F5B6E7880059B0E51876800B502319979062B + F41ADF299A7468C4516484AFE81B80F81D817D3E0EF429406C4820EA5A5F6180 + 83C1CB50DF267B7501A2B72F43A3E015068822004DAF32409F96FC39EB130043 + 98FB8499832CD98CB9A018D3486D0C0783B26580614B81AA25FFD5920FDE21FF + E5B488A91F1EFC72BAADDF008C19F3EE50A619673BC564AC34659B9B9872CC30 + C0C4142C2323B058465028E450C8E5904A4410093B2012B74B184A2A5ED921FC + EAEAD5FCA63F1460F4A4997E2C3063CD06590CB41862057B272E9CDD3C61E7E4 + 028E9939380446480A2DEC68474DC563943FFC0DD51565E03737A2A38D2F5040 + F9CF6B85A753FE0800E6D8893EBB8D4D4C360D1D660FAEC7708C9F3415EE5C47 + 58991B6108B9D8464C0C3062402AA720962BD1DC2E4723B91E9455E2D7C25C94 + DDBF83A6866AC82492F02B17B2B6109F4ABD0136C4E7F52A88CB6E14A2E16129 + AC6C1DF1E6441F189B5B806DCC8411B373BDD80C31C7AC09AE306631E9FB66A1 + 1C8F1A24B8545C8CA29C3368A8AB84442454416C7E29807D2BDE454F284E9FCB + C3CEF048D838701114B411DE5C6BBAF08C2E3455F9CBBD5E0E7EBB14EF8FE5C2 + E877082579F0A8518C921B7790F5430AEAAACA20934BFDAF14641D792900A50E + 82167E2BE6F92DC7404B6BAC5AB306EF8CF684A931B3DB3CC577AA2157352181 + 045346396B2054F6B851829CFC8B28387B52052190C865EEB78ACF35E80D20D7 + 41B02F320E67728A30E3C33958EE371B66262C9DC154FAB81122890C72058527 + 0462E2082702C1D02871BF5E8CF42349F8EFB5CB686F6B89B95298B5566F0099 + 423B805028C2ACB94B48BB77C68E906DE0DA5982C5D4F91D94D5B64224953F83 + 681363BCB73D097016FD5C2455E2D7FF5520E3FB83A8AAB82FE18B94C37A324E + BC00B03E2E97DABF720A2472ED1DC19973B9D8179580693E7FC30AFF79A4F6D5 + A5D715378D2D4235C073100D7C11C679110863354465B314A9498928BD5AACEA + 76975E2D3C75B857009FC59EA7BE5D350D22991A60E3C1339D323C2CC9865224 + C0CC050160189B915E85D165E03EEF7EC1D411E8104B2096286800B14C052127 + 104A0221C4684F7B181325DAC40A9CCFBB88EC9F32D1D2549B5A5298E5D72B80 + 7531D954C4EAE9104AB52B10B8F253F29C812DDBB6C2D57E28983D1C49944A25 + C4AAC2D32A282091A9D55005763D8118EBE54837DD9BF7CA91CE8B467DCDE31B + 2505A746F50AE0D3A8B3D481B533D04E6A4A654171673B65B89E95042B6B3B4C + 99130093015D046F1740B3DF198EC656116E9737A143D479B1A45428F09737DC + 4830537854DD82C4A87032623FA82300B6BD02581B799A8AFAD707B494DA6CFA + 07B3E1C8F54258D84EBA17611109988CEE9AD1734602A5AA498047352DA4B69F + A92C914A316638978CD64A5A856F7785A2B2EC2E08804EAF2FBCB026E21415BD + CE07AD2235C0D643DA1598E9BB0C1493A971A372A46A4E8CA717181AEF4F3FF2 + 34D04945E375AE0DAD8AAAD6EB9EB46294970BFDAC5D2040E43761FA29B07AFF + CF54CCFA596821C3BC365BB5E633D2765531B005B6C386765FDD3A4CA502BF5D + 82D2FB3518EDAD06A8ADA9C1C10311FAC5C0AA7DFFA16237FC15CD1D6A8060DE + B94E19E85E482CC0EC85016424B6D2E151FBA3496FBA6AD205D71F9226A40628 + 2E2AC6B1F434FD7AA1957BFF4DC57D3E1B4DEDDA15389F938783713C4C79CF07 + CB972DD259CB3DB18B37CB30D6DB994EC7C626A0E4F245FDC681156127A8F84D + 73D0F0FB9AF8CBEFB23B6550C8A4B846E2C0CE910BDF8040B0D99CEE3FA04591 + F1DE4E9AF4E5D2C73440754D2DC2F746E83F12FF63F7712A2168AECE6D95D8D8 + 78145CBC8CA9EFBD8F154B17BEB40225B7CB318E00444427E0F2A562FDE7429F + EC3A46F1B6CC436DAB1AE0EBA4EC2E33C9C8B2F0D6B914D21BD9E3635F5F383A + 3975E7B64B3546BADB69D2D7EF56A0B5BE0AC9A9C7505B5DD62195C95CF59A8D + 06EECCA0785FF81200DD3B73F9F905888E89858DBD0B36AE5F8DE11E5CBD15C8 + 2DBA86A32969F47AC0DAD6014C96C9E61387F785F71AA0B7877C15A54568AEFC + 0DC3C88A6CFEFC8FE1E1EEA6E30BCFCCCBD99AFE2DBC7415BCA43434D456C2CD + D505A15B3F47FCE163AA95DAC982ACB48F7A05D0DB433E8A0C42479293712AEB + 34546BE2B7DF1A8F391F4E8793BD8DCEF54179751D7EFC391BC5974AE835B187 + 9B1B12A377D333D566BE0071499928BA505878E1ECB1C93D06D0F790AFA9E21E + CA6F5E00DB9403D5AEC4C89123E0EDE5013B5B1B70386C98B24D2022B351A150 + 8C9ADA3ADCBE7B1FB76E95D2BB12ED82960E7B07AED9FEAFB76288E5400C32E7 + 90F992049535F5D8B1270697F24E7E5355766F638F005EE690AFADAD1599E919 + C8CFCB03CB68004C39E618C066D37B429A7D217249C52FEC0B254AE4F250778F + 114B3DDD5DC254EB0B4B0B73BA50C161B1E47D250ACE9F22A00D5A210C7EC8A7 + 1A279AAB1FA2ADB10A220199B4893BE85ECBC2D21283070F868383031E90E563 + D59502CB1B37F2F94FF34D9EB5E8A7B7FEFCF6477EF37C480C1C87D59F2C3061 + DC681414FD82932732B442F4AB43BE8933E6E75B3BB84C964904F07473C56B9E + 1E34707710FDEE90CFC1E5B5301353CEA6D7DF184500BC7442F4CB43BE6E217E + CC04FF49BD06A2DF1EF2F514A25F1FF2F504A2DF1FF2E982F83F0B480308C125 + D6F80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008CC4944415478DA + D599095414471AC7FF73C070C3A8E001CAA5A8CF4756C073BDA34F77F5C5C42B + 2A28202A6834EBC6178F440E51A3824750419443F10251639235828AA8A0808A + 18BC6F414E19466018E63E7ABB7B92411787631C36F8BDD76FAA7BBABEFA7EF5 + D557D5551F036F49C0A65422E1FB2F512990A33D2524E6171C089ECD3084AE77 + 942CD890422404CF41459D0660EBE18B06337AADEF046D3934FA340E86CE353C + 805FF8312231D85B0BD05E12127D0A87C27C0C0FE01B769448086904D87634D3 + 6046AF9A375E5B0EDD730A87C3E7191E607EC86122216C1ECA6BDBD70361BB4F + E0C8465FC303F80427118961BE24808CBEDF997CC96046AFF4FE545B0EDD9D8A + 639BFC0D0FE0FDFD012261BD5FFB7B60570A923707181E60EEDA442221DC5F0B + B0EBB8E13CB0624EA307C2A29291B275A1E101E6AC8927E2C303B443A8BD647D + D4311C8F586C7880D9ABE388381A40E3819813970D66F4B22FC769CBE1514791 + 1A19D83E00FBD707B4FB3AD0AE00B1610178DDCE9F12ED0AB0377401AAEA151F + 2F4074C802540B3F62803D2400FF6306F850856A9512A29A0A4804D5904B8550 + C9655029A46019998065CC81B189254CAD6DF1F46181F5F31BE9F50605F810F1 + F21ADB85696E1642301941A626161C53337318734CC162B3C162B1A122C1544A + 25E4320924621124D20619434DEC578BC41B0B0AAEF0FF5200CFD1FFF4618119 + 6B6E656369D3C916F6BD9CE1E8EA861EBD9C60666E013312464C1A2D1635A0A2 + A418AF5E3C45794911EA6AAA21AAAF13AAA05E7A3B3BFDD85F01C01C346AF216 + 230E6775173B7B38F7E98F21A33F456FE79EB0B560A3137999B0993066332057 + 12902AD5A86950A29ABC9E1795E266F625143D7B043EAF1C0A992CF2D6D5B4EF + 489DEAFF1B00697C04395656DB75EF89E1632762C4C89170B1E3A09319BBC5BA + 3562255EF264C8CBCD454EE639F05E9742261153106BF40658B9FF72AB839857 + F4102FF233D0D5C1198327CE8491B1094C8C993A7BC4CEC61C93063983CD626A + 9FA9C9D65E564B915FF808693F1DC3EBB222289472DF5B596947F406D8113816 + 2D51D4D60930C37B312CB95DB174F9328CF470A38D6F4E2EDF2981A0418E711E + 8EEF4050525C2D43E6956BC83A7F868210CA948ADE77732FF0F40650B740B07D + D73EA4675EC3A4CFA661B1CF17B0E0346F3C25371E5740A12250239461947B2F + 12A2B169AABD6755521C3F9284FBB7AFA3A1BE36E65676DA72BD0194CD1088C5 + 124C9E3E0FB6DD1DB13E2C182E3DB860B56C3F1EBC7A03894C012509F14628C5 + B0013DC16636362F91AB71F34109520FEE4559C933599D446DD79A75E2BD0054 + 4FE992F40B97B07D771C264CFE02417EB36066DC0AEB4929AE1290462A1B21EA + A5F0EC6B4FCE508DF54B6BE4484E4AC4BD825C6ADAF52FC83E7BA84D00DFECBB + 44EC0C1A079952F74CB661F30EDCBAF304415FAFC048AFFE3062B56E22E3D789 + 6900A9828250D2103CF299A75B0F18B159F43BF552152E5EBE868C5F4FA0965F + 999C9F9DE6D326807FC75E247E5C321E12850660D5DE734D2ADCCB4C85B5A515 + C64FF703DB880D265397E246D533C60E8058228794F2805C0519054196956447 + F104627CE2AA81A03C7FE7C92B1C4F8846554571617ED6598F3601AC88C920A2 + BE9A00B15CB707A6CFF6838965676CDC180E3BAE79AB7A9F1242AD263B460919 + 0920A53DA1F955AAD4B4273CDC1CC86026F0B2BC16897B22C915FBF96B12A07B + 9B00FEB5E73CB16BF94434C854F4FDDA7DE79B54B8F9F35EF474EE87B1D3E683 + C9609001CC00158BCC664261CAF07EE0D78BF1B8A40622A9BC89012A950A1EFD + 9CC8D55A4D7BE1C7CDE1282D7A0C12A0C5F1F9CE0BCB77A7137BBEFE073D1675 + C9ACB9FE30253DB06953182CCCCDDE51458130181AA50C06A34923D4D450CE17 + E265651D69A81A6487D3BD2E97CB31B0AF23FD4E835088DDDB23F4F3C0B2A8B3 + 44F48AC910483400EBE29A7AE0CF1898EA1D00A611A725FD3AA5BF5357724D90 + 92106430D7D4C3B3BF13FDBCB2A2027B7745E917035FEDFC8D88F9660A6AC9EF + 145DB23572270AEF3F45E092A518ECE9AE370025D4F817886478F0A29204D078 + 20372717278FA7E8370B2DD9F11F2276E567A811690042132E34A9C02F79828A + 87D7317AC214B80F1AD68CB6B71F37FD6384BBC6606A58E5DC2D8657FF5EF47D + 6C6C3CF2AF5FD36F1D08DAF60BB1EFDBCFC16FD0ED01914804EF790B60D7C311 + 21C16BD0DDAEF307798192EBF729004794575422725B94FE2B7160C46962FFEA + 69E0FDB127DE7020E3BD958A0BB321E29761F4F849183A6264AB7BFD6DF1EA67 + AF2DE73F2CC120D20351D1F1B89E97ABFFB7D0A22DA788F8B5335A3C56110804 + 080C5A0A2B6E372C5AE8871143067E90076E3F2E85A0AA1487934FA2B2BC4824 + 57285CF4FA1A5DB8F92491F0DD4C540A34003F2465E8AC48C542C9DDABE866EF + 84F97EBEB0B5ED82E6F6478CFFF96B804B37AD019939BFE3E8D1647A3FD0B5BB + 03982CCE9AD3877644B619A0AD49BE830793907E2E03D48E6C91FF5C8C1EEED5 + 7C03EF91ACBC022424A58057590A57172784AFFB16FB0F9DA4766A67B2D252A6 + B609A0AD493E6A0E2F7D90077EF143507BE221438760D488A1E072AD9B8D01CA + 1BC60C154EFF7611B97937E93D711F575724466FA1BF566BEA84D89774023957 + B3B3AF9E3F39A6D500FA26F9B2B2B2101F1707269B03EA5462E027EE18E43180 + DEDC5B5B59C0CAD21CF5421104F50DF466FED6EF0F5078F71E7D2AD120AC15D9 + 3B389BEFFC611D3A712D61656106914486D28A2AACDF1A83BCCB67B697153D59 + D52A800F49F2296412943FBA89EA574FC0E198C0D4CC02C62626F49990F65C88 + BCE4D277CE8512654A6578EF3EEEFE6EBD9D22027D67826B63411B151A114BBE + AF46D6C5B324284F2784C1937C62B1989C0AF370FFDE5D949795A1B6B6969EB5 + 6CB85CD8585BC3DEC1012F78640FE75FE116165EA9FBB3DE9829737F1D3EECEF + 537D664E2663E0146C3BDB60E8604F64E5DCC099D3A93A213A54926FD4C45957 + BA3A388D51C884707375415FB73E7020819B83E870493E07A7BEF459D380BF79 + 9000FD5A84E89049BE66217E3E81BA37555A880E9BE46B2D44874EF2B506A2C3 + 27F95A82F82F83CBFCF9E62B5F5C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008C84944415478DA + D599095453571AC7FF4024106C011D5020202028EAD1D6A5B54E6B5D6B473AB5 + E5B88B45A453B4D5D1D65397AA80B456059722B288060B2808EA3875A85815D9 + 14B4A2D66A5D7043B6B09A0442969784BCB9EFD1C6B190003174E877CE3BB92F + B9F7CBFDDDFFFDEE6A86FFB10FB71CA5055FCC4275A39A7DFF3AE92C4C651B02 + DFD2A543E24E2071FD6C3353F87DC649D0E60C5AB07E0E015099ACE2ED5948EC + 7738B071AEE901167F7998166C9C07A1A415605B4AB6C92ABD2E60AA2E1D1A73 + 1CDF86CE373DC0A2F0543A71E3021D40775948CC312487F99B1E2020EC102D08 + 790AB0FDD03993557AF5C229BA74E89E6348095F687A800F42526841D8425489 + BB5781B0E82338F85580E901FC3726D1896101048062DF77A5E598ACD2AB164C + D6A543A33390BA39D0F4000BD61FA0059B1675BF02BB0F236D4B90E901E6AF4B + A405E1813A80DDE9A65360E5BCA70A8445A5E1F0B60F4D0F306FED7E7A7F7890 + AE0B75976D8A4A457AC447A60798BB661FBD8F05685520F648AEC92ABD6CCE24 + 5D3A3CEA10322283BB0720615350B7CF03DD0A101F16849A6E5E4A742B405CE8 + 62D436A9FFBC0031218B512FFD1303EC21000DCF01A0502870E5F225DCFAE526 + 84559568144B2091886167670F5B7B3B38BBF0F140D88C7BB7AFDA3EF8F15493 + C9018C75D4A251415C5502695D19B85C6B58F36C60493E2D381C585870D0D2A2 + 21793450510A28E4322894CD9499964ED0CAE45F5DBD9AD7601200636DD49BD3 + FD2D601E6FF3A2DD0B767D1CE0E2E681010307C1D9CD1D3C9BDEE0111839A9B4 + 5CD60C61F963943DBC87AAF2524844F5903549A42DD07E7CADE054EAFF03C07C + CC78DFADBDB8DC357F71748187F710BCFAE6647879B8C2A137077DC863C53187 + 25C70C2A0D0DA5460B51B306F5E479505A81CB053928BD7F070D7555505354E4 + 95F3595F109FDA3F0C80543E826BCD5BE3E8E48A7113A7E1F537DE80A723177D + 789C0ECB8AE41A3CAAA370B1A80885E77E405D4D0528859C8158FB87008C99E0 + FB412F8E654A7FBE077C67FAE3959787C0D3C10AE65DF0A82511F7A85E89E2EB + 7790F5AF54D4549642AD51055CC9CF3A6814C0AA84DC4E05B15A294771A6000E + A4DB8C99FA3E6C6CFBC0CAD2DCA073075B1B4C1A39001C8BB6F91ED753389777 + 01F9A733190829A5517BDD283A536714C0CEE089E88862FBEEBD38957D016FBF + EB87E08504806B6E504AC65FC18D4A486414C60F67209ECDCD2871BF5689F483 + 49F8E5DA2534378963AF14642D371A406B8040265760BA9F3F1C9C06207C5308 + 3C9DED60D1897E535C520D4D0B8D2752255E1BE60ACEEFCA28545A5CBE558E8C + 6FE350597E9F9228B48E9D9927DA05D01820C83A9D831DD1FB30D5F77D2C099C + 0D5E3B5DA73DBB53FE040A4ACD4288A414C6F8B8B401AF10A9909694889B578B + 986137F06AC1C964A300D42DFA01C2B7EC20415782A52B3EC5F8D13EE865D1B9 + A82DAB6D8252AD21101A02A1652146783991F24F1BA049D982ECDC0B387BE208 + C40DD569C50559FE5D02F86C6F0EBD6BC924501AFD437160F00AC828336C08DD + 48BA4F5F98EB13E0776DD0D02827DDA4051403A122B33269A4BA4605867BF647 + 2F8E059B8769B89F4BCA902E8841ADF0F1F5E2FC9323BB04F0697C36FDCDD229 + 50A85B0156C7FDD0A6C04F594970E8E78C497E8BC0B5B4681BBCED08E2377E28 + 644A152802A0249557AA5B3F1925EA09C430CF5625B4348D47556224EE892433 + F6831A02E0D4258095B167E9A84FA642AED2AFC0C46933E0EAE183ED919BD921 + 91E9C74C573614C78C18B456CB569C85202A50BF42304AD44AE4F0717722B3B5 + 9655E19B2DE1A828BD0B02D061FF7C26C38A3DA7E9DDCBA7A1996A61DFD7ED3D + AD5781E97317833633D7B9611C311066BF3D30D3799F3E76109E342950522982 + 4CA1D2F52E66AC208DCE2EF25E1AECC67ED72C95227A4784710A2C8F3E45EFF9 + E7DFD860D267C11FAF240A911808590F27C7BE065BBDBD2FAB45CD24A01B494B + 3F5559AD5261A4CF00365D2D14226E77947131B02CEA241DB3D2178D8A56800D + FBDA2AF0B0F82CB44A29DE9BB7082FD83B74E051FF4F83DD1CC9C24EC942D58B + A518E5D3AA405161118EA61F366E14FA64D7F774EC67EF404C165AFAEC6C762E + 62E205983CCD171F2D9EDF917F83C60471A34C85BB8F6B7400F1F1FB517CE982 + 71F3C0D29DFFA1E357BD0B91AC15205470A64D8116B50AD7481C38BB7A60EEA2 + 2070AD7886FF408F226387BAE9D2976E95613401A8125623727B94F133F192ED + DFD17B3F7F0F0DCD1A838562E3129077FE22A6BCF536963CA70A8C15DF2EC7E8 + 21AE888AD98F4B178B8C5F0B05471CA713D6F8A1EED73DF19707DABF6252936D + E18D33A9643472C1CC3973C0777333E4B65D355EF676D6A5AFDDAD8084EC0752 + D28EA2BAAA54A652AB3D8D5A8DFE63EB317AFFBA999D3A56C9CDCD43744C3CFA + BBB863CDAA6518E2ED6EB402E70A7FC2A14369EC7EA09F131FE616DCB5C79377 + 467619A0AB977CE5370B21AAB8076647367BF64C787B7976F00F4F6D887B3FF6 + 33BFE81A044969A8ABAEC0404F77846FF81C09C947999D5A667ED6E1195D02E8 + EA251F4D66A1E4E4147C7FF214983DF1EBE35E85DFDFA7C28DDFBFC3AD5E5955 + 0D8E6766A3E8E265764FEC3D70201263B6B22B5691448ABD49475078BEA0E0FC + E9A3133A0D60EC255F437909CA7E3E0F2B6B1E98538911238663A88F379C9DFA + 83C7B382B515170A2505B94209A1B006B7EFDEC78D1B37D9538966A958E6C2F7 + B0D9F5F506F4B17F012FF6E691D99A4285B0169BB6C5E2626EE68ECAD292D59D + 02789E4BBEC6C64664A4A723272717161C4B58F37AC3D2CA8A3D13D29D0B9147 + A57CE65C2891D268C2BDBC87070EF2728F080E98057BBBDE6CA54223E2497E2D + F2B34F12D03ABD1026BFE463E60951D54334D55742211593FDB38C1DB5ECEDED + 616B6B0B3E9F8F87F52A945FCEB5BF7E3D4FF25BB909EFCC3F31EEB5BFCEF09F + E54B62E0181CFADA61EC2BA3905FF823328F67E885E851977CE3A7CDCEEBC777 + 9FA0A6A41834D013830779B3C086207ADC251FDF7D307BD634ECA59104C0A743 + 881E79C96710E2DF47207952AB83E8B1977C9D85E8D1977C9D81E8F1977C1D41 + FC17C8FC0A083E5041C60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008C44944415478DA + CD99095493C716C7FF40240828208228410141501FAF6A51ACA2D86A6D0F1E6D + FBEA0A8A88CFB5F6D97AEA5265B56EE05254161150DC50D45AAD4FAC55145001 + 112DEE8FCA1165DF242164E1CBF6BDF9428D0B10429AF470CFF96092CCCC777F + 73EFCC9D996B8037E4DF5B4FD389EBBE440D5F0A7D4A70DC2F48FA7EBA812EFA + 7AAB93855B4ED1A4635435B6006C4EB9AC33A537047EAC2A87C49D43F2FA19BA + 0708DA944627AD9F4900243A53BC2D09893D8B03C1B3740FB060E3713A297836 + 2A792D00DB0E5FD199D2EB0226A9CAA131677030748EEE01E6471CA39383FD54 + 00FA929098D33814E6AF7B8080B0A37452C86B80ED473374A6F4EAB91355E5D0 + BDA7713862AEEE01E6851CA693C2E6A282AB5F0B84ED3989233F04E81EC03F38 + 854E0E0B200094F2F3AED4AB3A537A95DF47AA72E89E341CDB14A87B00BFF507 + E8A4F0F9FAB7C0EEE348DD12A47B8039EB92E9A4884015C0EE13BAB3C0CAD9AF + 2D10169D8AE3DB16EA1E60F6DA443A312248E542FA92F0E8633811B948F700B3 + D6ECA7F72B015A2C107BF29ACE94FE6AE687AA7244F451A4452DD60F40427890 + DEE3805E01E2C38250ADE7AD845E01E24217E87D37AA5780989005A86BD21E40 + 2C16A3203F0F8F1E3E406545391AB93CF0785C585A5AC1C2CA12FDEC3928AE14 + E08FC7772C8A6F5DE4EB1C602F01A8D70240D0D484B3674E2333E30A8C58C6E8 + 6E6A066376775266C1C88805B95C06B94C06092586582484B859401928E80485 + 50F4C39D3B99F53A03D0A613417D39EA9FDF234A9B9351B6419FFECEE8616507 + DAC81832990252A27C3702C16219C2402E4113B71A35A5CF8875EA20E4F39AE4 + 502CBB9B7DF1D85F06D0420C3DC7F96EEDC666AFE96D6B0F27D7C11835FE23B8 + 3839C0C69C855EE431214A1BB30C2091D16826300D0219EAC8535C5286FCECAB + 2879FA04F5B51590525454C1F5F4EF499F8ABF0D80281FC9EE6EBAC6B6AF033E + 98301963BDBDE16CCB462F5356876D1B44323CABA5909B93839B19BFA2B6BA0C + 9458C440ACFD5B003C7D7CE77563191FB6E338C1F74B7F8C1C3618CE362630EC + 448F0AE2B0CFEA9A71BBF009D27F3A86EAF2124865928082ACF4237A05F8E798 + C9B66C56B762A27C0F9F4FA662E2046F38DAB0B51D0B3CAFA3909179035997CE + 33104D944CEA723FE7B7DA4E03AC4AB8A6D1242E2EC800BFAA041E5E3E701832 + 12E66CC30E47C5DAC214E33C068065D4FA57C6124F6B9A71E2480A1EDECD8380 + CF8D2DC84E5FA115C0CEC513A08E422812E3D3CFFD61D37700364684C0B99F25 + 8C3AF01BA6BF1B0FCBC11348307AA803586DD4174B14C87F548AB48371282F7D + 4AF1C40A5B4DE2449B000A3504E9973210B57B3F26F97E8E65813360FACEE8B7 + 4750F0B41A32398D86260A9EEEF66D42973548909A928C07777220120903EF64 + 5F38A415804C0D41F8E61D64D21561D9CA6FE03DC29DACEF9A4DA3A2F2068829 + 198150282186B9F66B05C16F96E3CAB51BB87CEE24B8F555A9B7B3D3FDB50290 + CADB070858F435849401824383E16C6F4D561DCD004A6BF96896CAD02C211199 + F4FF92DF8C21CE7664005E5B9079EFBDA217389114839ACAE785B7B32E0CEF14 + C0B7FBAED2BB967C084AD67E2CF96CE67C98985B63D3A608D85A994143FDF1B2 + 51AC54BE592A6F812056AE23DF0D717A0DA1A0693CABE022796F142A4B8BAB09 + 40DF4E017C137F85FE71E94488A52D00ABE37E6DD520FFE7383838B963C217F3 + 94A3CFB801E309866AA6C2D431EE1051525012B9D20AD49F108C3BBDE48BE136 + C08E28CF446B85D20A3F6E894059C9FF40003A1C9EB72AAC8CBD4C472F9F0491 + A47D0BFC6B16B1400F6B6CD91C0E7333D3B73A62AC6140FE28FFBFF312854241 + B612F21688372CC1285DCB15C1CDD14E5997D914EED911A99D05FEB3F712BD7B + C5640828B9F2F3BA7D975A35789091068B1E3D31CD2F0886DD340B5E933C5DC8 + C415A398B80763897745219763985B7F65B9AAB21271BBA3B59B032BF65CA4F7 + 7EFDA97235684FB644EEC2EF0F8AB064D9728C1AF10F8D005E09717154738528 + 23139A719F5722954A31DCCD4159CEB9998353278E6BB70A7D157D818E59E98B + 46710BC086FDAD2D505F5A84CAC77918FFF11478BC3F5A4D6F6F7EDDFA075787 + DEE00A98DB0F1AF55C0146B8B700C4C727E276DE0DEDE2C0F25DFFA563BF9D02 + 2ED929B62742A110B3FD16C0A6DF008485AC859DAD75A7ACF0A630818D2FA2F0 + C78B5A2540456515A2B6476B1F8997EEFC858E5F35150DC21680D0A4DFDA6CF4 + BC301B427288F199F809468DF5D678D4DF14CFC11C55F9F6E332BCEFCE41744C + 22F27273B4DF0B2DD97E96DEF7DD67A817C8D4366A6C6CC4C2454BD1939CBA16 + 2D9C8FB15EC3B4B60223778BC83EA9AA1487534FA1AAA24428914A9DB5DA8D2E + 8E3C4327ACF902B57F9E89371E683FC5C4CC85D2FBD76167EF8880F901E86DD3 + 1BEA76E7EF063C0F673B553923A710478EB49C07FAF4E5C0D088BDF6CCA19D51 + 9D06E86C922FF9C041A45FBC0CE644B628D00FE3C78C50FF8236242BE72E1253 + 52515B558681CE8E88D8F01D120E9D624E6AE7B3D28F4FEB144067937C345917 + CB1EE59203FD633067622FAF51F01EEB052B2B0BB57380B106DB50819FCE5F46 + 4E6EBEF24CEC3A70209263B6920D9F140DBC26EC4B39899BD7B3B3AF5F3AE5A3 + 3180B649BECCCC2C2424EC87218B0DCB5E3618FE9E073C870D858B737F58F434 + 434F7333F0054234F285287E568A82C247F8FDDE03F01AEA48E4E50AED394E66 + BB366F402FAB1EA4AE2984620A65953508DF168BDC6BE777949714ADD608E0AF + 24F9A49418154FF251F7A2086CB689F28AC5D8C4447927A4BA17228FA4F9AD7B + A1644A268B7071F5081CE4E218B938603AAC2CCD954A8546C693FA0A645DB940 + 406BDB85D079924F2814212F2F17F7EFDF47797939B80D5CB26AF1885B59C1C2 + D2121C0E871CE4257871EBAA55616126EF553B9F2973CE7D307ACC34FFE9BE64 + 0E9C868DB525BC468E40D6CD5B387F26AD5D882E95E41B377946661F8EA38F94 + 6AC2A081CE701BE4AA045607D1E5927C1C4737E55DD3D0F7861300F70E21BA64 + 924F2DC4CF27C17B59A382E8B2493E4D21BA74924F13882E9FE4EB08E2FFB498 + FAF9CFC41E1F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008BD4944415478DA + CD990758545716C7FF142923268C0A088CF9288225C655D76435D1D5A821BBB8 + BAD9D850148164354613133796284512358225481501459462595683625490A2 + 94D8A3896BC14619A40803C3D437336FEFBC09234A1966F2663FCEC71BEE7CF3 + EE79E777CF3BF7DC7B8F09DAC9D2F02C3A61ED3F5027A498EFDFEC3B07B62424 + F03D6D3B38FE24F6AEFBD0840DBD2F28F9F8BB6374E2FAD9A86DA15833BC3309 + 8AFB01495FCF611FE0A3AD4769A21835CD1A802D29EC7960A37F3B0FC49D40F2 + 86B9EC03046E3E4C276D984700E4AC19DE9904C71EC7BEA0F9EC03047C934127 + 05F9802FD0006C4BCD65CDE8F57ED3B5ED90982CEC0F59C03EC092B0343A3968 + A116C058121C730C07427DD907F00B3D4427053F07D87E288F35A3D72C9AA66D + 87441F436AD822F6011607A7D249A18B50DD645C0F84461DC1C16FFDD807F00D + 4AA19343FD08808CF9BE2BFD3C6B46AF5E3855DB0E893A8CB4CDFEEC032CDCB0 + 8F4EDAB4C4F81ED89D81F4AD81EC032C589F4C2785F96B017667B2E781553ECF + 3D101A998E8C6D1FB10FE0B32E914E0C0BD4BE42C6924D9169C80CFF27FB00F3 + D7EEA5F732001A0FC41EC967CDE815F3DED5B6C3220FE170C452E300246C0A34 + 7A1E302A407C68209E1A7929615480B89080DFB51A954824B872A90CBFFE720B + FCEA2A343709201034C1D6968B57B9B67072E6A19CDF8A7BB7AFBE5AFED3E916 + D601628203502FD41FA05528C4F1AC6328C8CB8599B905AC397D6161694DDAE6 + 3033338752A98052A1805C2681442C8244DA2A3351D1092A91F8DBAB570B1A58 + 038826000D7A0294165FC081E444989A5BC2B6BF1D468E7D0B1E4387C269903D + 38D6D6E070AC20164B2126DEE13FADC3FDBB77F1CBB54B1034D643D422102AA1 + 5A7EADE8741A2B00FA75A7F1ACE236440D151868EF0C9EFB0870063883A21430 + 3703CC4D4D606A6202F2079A6856910FA50AA05434FA10CF889F55A3EAC16D34 + D4558392C922AE5CC8F99A2855190CA0AF8C9BE41D6E69CD596BEF381813A678 + E19D8913E1666F89FE1C739D7D1BC50A3CAC93A1B4A404C5793FA2EE69256412 + B11A62DDFF0560DC64EFC57DCC2D5207F15CE13DDB176F8E1E0E373B2B32E23D + D7411C8187F5525CBEF15FE4FC3B0D4FAB1E8152C8FDAE14E61C342AC0A8B7BD + EC2DCDFB9413E3FB4D7E7F26A64D9908173B4B43C7028FEB65C82BB888C233D9 + 6A08A14C410DB95972B6CE6800E3FEEC1D63F30A77C5C8B1E3E1B3D81F1E0EFA + 8DFCCBA2F6C4FD5A29320FA690E02E436B4B53EC95A29C957A03AC4EC8D719C4 + 4A4A8EB2AC3838925767C2DF7CD1D7DA1266A6ED149A744ED2BF9F35C6BF3E98 + 09ECCE442257E1D2AF1538BC3F0E5515F7650289CABE2779A203C0CEA553D01D + C5A933798888DC8BE9DE1F6079C05C702C4CD11329B9CD87A0558E71C39C0970 + E710958D72A4A724E3D6D51232ED8AFCAF169D3A601080AA1B82D0CD3B70E9C6 + 1D2C5FF50526FD71382CCCBA7E77DAABB95E5E0B0599431B85328CF670EA14A2 + 45AA446EFE459C3B71044D0D35E9978B727C0D02507443E0F7F167203914C1A1 + 4170731EC0CCF3BA8C57CBBDAA4648E5241B2B49EE201023DD067580A0C86F3F + DF7D82CCA418D4F21FDFB85C786A8C41006A455DC9CCB97EB0B219802D5BC260 + CFED4B14F42C7AABEA5B20A5941A083240CF5AA418E6E2803EED02489DE81E56 + 3721393A02FC8AF2A704C0512F802FF79CA7772D7B173245D7C970D2F45918EC + 3A0C3BB76F26D9D6941945F5409AE8E06824064B498696B54190416A6020EC89 + 0E53C81534B954CCE07DBF350C958FEE8000E81C9D176EF8223E97FEFE936990 + 501A8035713F76E8703D2705760E4EF8EBFC00D026A65A356A456D20CC0513AD + 76EFF19E90C82862B8520BA086A188D17502315C9DED98C1508B7A5118B523DC + 300FAC8A3D47477E3A1D6279D71E085CF639F99DC440C80638DA0FECF23EFAA5 + 28A0552AC6F8B64BAED0FC57077643B3E675524B0D9F8FB8DD9186C5C0E7D167 + E8DD2BBD48902A99EFEBF79CE9D0E1C1E573504985F8C067096CB8763A346A64 + EA583732FB48F1902F8058D671A5AB861BEDC963DA25C525389A9961D82CB432 + EA341DFDD95F98E9AC2B399B7B1E51B14998EA35034B0317E8D2FFB25B502B10 + 3101AD1EF9361314148531433500F1F189B85C76D1B03CB022F2141DB3CA1BCD + 120DC0C6BD1D3DA0CEC4D7481C380D7685CF9240585871BA7F401761E8EE3C10 + 02918C59673F6B16612C01A8E6D720627BA4E199F8D35D27E9D82F67A0892C75 + BB93E8D804E4179562BAD7FB5816A0A717DA8982BC3A42B11CE595F50C40644C + 22CA4A4B0C5F0B7DB2F3073A7EF54C348A34002149673BED44916DE1CDB36964 + 3672C6EC79F3C17B6D70776A3BF5C618928DDBE4DABD6A34F19F2035FD286AAA + 1F89E414E566D06A74D9F6E3F49EAFFE8E865685CE8EE7F30B1019158741CE2E + 58F7AF1518EEE16AB027F28AAFE3E041CD7EC0C191075333CB7559077646E80D + A06F91AFE256311A2BEF41BD239B377736860C71D3F184E732E2B769B3B0F41A + 12F7A7A3AEA612EE6E2E08DBF815120E1C55EFD4B20B733266E905A06F918F26 + 01B83F2515D92773983DF13B13DEC28733DFC36BCE0E3A1FFAA4BA1659D9E750 + 5C7A89D9137BB8BB2339E63B26E1350A84D8937204C5178A8A2E9C393AB9C700 + 8616F91A2AEEE2C9CF176065CD614E25468D7A03238679C2C9D1813991B0B6B2 + 84442A83442225334D2D6EDFB9879B376F31A712ADC2269133CFB5EFAE2D1BD1 + 9FDB0FAFD8702092C85049EEDBB42D16A5F9D93BAA1EDD5DD32380DF53E46B6E + 6E46464626F2F2F27F3B17B22153AC157326A43D1722975CFAC2B950B24CA108 + 1BE2F186BFE71097F0A57E73C0B5B5618C0A098F27F7AB50987B8A80D67509C1 + 7A914F9D271AAB1FA0A5BE0A12611328A98899B5B85C2E6C6D6DC1E3F1F0B081 + C2E3B23CEE8D1B0582B67E93672C383161FCDBB37CE77893183806BB01B6F8D3 + 9B635158FC13B2B30E7709D1AB8A7C93BCE61638F05C265332213CDDDD30D4D3 + 8301EE0EA2D715F9782E4399B3A6D7FF3086000CD309D12B8B7CDD42FCE70804 + CF6AB510BDB6C8D753885E5DE4EB0944AF2FF2E982F81F9A2D02082FF947E600 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008C64944415478DA + CD99075454571AC7FF0C1D11675410653454CB8995A8281A893131BB1A637663 + 2F089825AEBA6BE289254A4D6CD882D29B1D1074598D01A362280AA3288A3DAC + 1E219441EACC30BDBE7DF326608301266FCEE13BE71DEE837B2FDFEFFEEFBDDF + 7DF733C12BF6D5BE7344FCB7F3D12452C19816149F8D844D9F9BD0D1D76B9D04 + 466411099BFF8606A1927AFFFEC815DA9C0E09F8B8BD1C1CF73312B7FC9D7E80 + 2F779F2592B67E81FA56256D8E776441B13F21F9BB05F403ACDE7586203B469D + 4007B0F3187D0A6CF77B4581D8F348D9B6907E80801D1944F2B64524808236C7 + 3BB2E098733812B4987E00FFEFD389E4A025E0F275007B4EE4D2E6F456DF8FDA + CB21D159381AB2947E8055E1A9444AD0B27600635970F4591C0F5D4E3F806FE8 + 292239F825C0BE535769737AD38A59EDE590A8B33811BE827E8095C12788E4D0 + 15A8E5195781D0C39938F9832FFD00CB838E1129A1BE24809C7A3F98F62B6D4E + 6F5CF6617B39E470065277F8D10FB06CDB1122396C95F11538948EB45D01F403 + 2CDD9A422487FBB5031C3A4D9F021B96BC542034320DE97B56D30FB0644B1291 + 141ED03E858C656191A9381DF10FFA01166F4E241229009D02319979B439BD6E + D1CCF67278E42964EC0D340E40425880D1E3805101E24203F0E24F1C25A45229 + 6E97DCC0A3870FC0ADAD8180C7079FCF0393C9423F1613439CD878C615E17F8F + 4BFB3DBB79B1957680D8107F834EA322A110E7B2CE22FF6A2E4CCD2C606DD307 + 1696D664D90CA6A66650AB5550AB5450C8A5904AC490CA4472130D91A0114B7E + 282DCD6FA20D203AD81F8DC29E01708AAEE1784A1218669660F6B7C768CFC9F0 + 183102431C1D60636D0D1B1B2B482432484875B82F1AF0B4BC1C0FEF9480DFD2 + 08712B5FA886E69F770A2FA6D20210450234751380200864A6A7E2F22F1731D0 + C109EF79CFC034EFA9701C3400E60C1372E44DC0D0FE13136D5D404396D56A02 + 4A0D81BAFA6614177150CA294453432D9472F9DEDBD772BE83AE9AE1003D69DC + 5CF508D2965AD83B0E85FB386FA8600A2B7306CC181DACCF377EA52221640A82 + 0455E1E99D6234D657432E956821B6180CD0139BE83367A5B999C50947B60BE6 + 7CB11C93C68F82ABBD15183DE89164C0F346196E953D41CE7F52F1A2A6024A95 + C2F77641CE49A3028CF59EED606966FE8C74BEAFCF27F330EB83E970B6B73474 + 2C50D928C7D5FCEB28B874410B2194AB94EEF78B2F37180D60E28C39D1B676AC + 75A33DA760C94A3F780CEAD9C8BF695A259ED6CB70FAE4317271DF80A8951773 + BB3067BD5100DCBDFE6AC7B46634B08779582EF65F8BC9EF0E83B505C370EFFF + 30A94283924755C8381A8B9AAAA772BE54E3D09D38F11AC0C684BC2E1771FDF3 + 47A8BA5788B15366C26DBC376CFE70DEC444FF58B06CAD3171A4134CF54855DD + A240DAB1143C282D26B75DB15F6961F6F11E031C08FC00FA284276EC47C9DDDF + B076C3D7787FE228989B762DA2B6BF9B4FB8E08B1418EF31A4538856991AB979 + D771E57C26784D7569B70A73961B04A0D143B062F57A903114C1A14170731AD8 + EDB95FF6BC012A3206B408E518EDEAD8218492FCFBBDF2DF713A391AF5DCCAB2 + 5B05D9130C0250E921F874812FAC6C0760D7AE703830FB743975DAEC692D8FDC + F7C9E384460731CA79D05B101A32DA3D27EBA544ED05B7EAD90B1260B04100DA + 91E8CCA6CD9A87A12E237170FF4E989932A09D410CD291AE386A9B84902BD53A + 08AD122239860FB327A72083525CA122C84743FDEF1FC9C1A9AEF80D244097A3 + F35A856FE27F250E7E35137255E7D17CFEA2559402BB7785C1B68FCD6B1D6907 + 54AB481BCCAB9DF38432C84800B95245EE383A8806810C2E43065203D066DA43 + E1E1FD118629F0755C2EF1E39A59902A75009B627F79ABC183AB19E8D7D70EF3 + 97AD8689B94557FD53367B923BA47225A580F651A8743F556A0D9A5B657063DB + 536A6AAD8ECB45ECA148C3D6C086982B44E4DA8F205174AEC08E3D07507ABF1C + 6BD6AE8397E7E86E01684DA3D190CA92CE2B754F5B59B7B06518F98E0355AFB8 + A818674EA71BB60BFD3BEA127168FD6C72975153EF5BE32FBDD5A0A9AA1CDCC7 + 3730E3E3B918F3DE143DBDBDB419E35CC82D54868A17024A8937DB684825260C + 77A25EE3E29270EBC675C3E2C0FAC31789A87FFD85DA8F3B33B1588C854BFD60 + 3FF81D84856C85A3C3806EABA00D080D7C31B8CD226AFAB4994AA52401D8A8E5 + D661EFBE48C323F1BAC86C227AC31C08A43A80ED89973A6C5459560871530D7C + 667D82C9D3A677D2B1FE0DC465487F08C4BADB8F1681189E239C10199D841B9C + 62C3CF426B0FFE4CC47C33173C89FE14135F2080FFEA35B0633922F04B3F4CF3 + 1AD77D155E316D4C104914E4DEDF8C166E254EA49D415D6D8558A154BA1A741A + 5D73E027226EE33CB488750021C9973B6DA85D0B55F7AFC1D1C919BEAB7C31D0 + 7E20F49D0DDF8C1363DD5EEE90B945653879F214F53D3068301B0C53CB2D59C7 + 0FECED31404F937C492947919D73190E838722D07F19664CF5ECC071FD53A9A0 + B8148947D3D050570D375767846FFF1609C7CF80535C7CA12027FDB31E01F434 + C9A7FD26AE7EC44153E563EA9BD8CB6B32A64FF3028BD54FEF1AD032593234C8 + BA7005459C12EA9BD8C3CD0D29D1BBA95DAA852F44FCB14C145D2B2CBC76E98C + 4FB7010C4DF2E5E5E5233E211126A6BA5B8909E3C660E284D17077198A7E76B6 + 64E0B381402881A055846715D5B87DF721EEDE7B40DD4A88843CB113DBA5CFC1 + 9DDBD19FD51776B636104BE5A8E6D6236C4F0C387917F6D754946FEA16C09F49 + F229E552D43E2941E3EFE5B0B4B482B58D2D2CACACA83BA1F67B21F251C85EBB + 174A91AB54E1EE1E63FC86BB3B4704FA2E008B694B3915121147D6D7A020379B + 046DE81482F6249F582C0187C3C1BD7BF7515353031E8F073E9F4F4E2B16984C + 26D86C369E37AB51C9B9C22A2BCBE7B7B5F399BBF4FCD429DE9F2D5F30875C03 + 67613F8009AF499E2828BA890B59199D42F4AA24DFFBB317E60F623BFB28E542 + 0C7773C588E11E14B03E885E97E4633B8F88B0B4B6D9FCEEB80924C0C82E217A + 65924F2FC47F33C16FAE6F87E8B549BEEE42F4EA245F77207A7D92AF2B88FF03 + 3BD3F3F9FA7058430000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008D24944415478DA + CD99095453571AC7FF0104026A83CA22040511D471E9A89DDAD28ED6EAE88C8E + 763A6E288A881D75D4A9535B97CA26B62EB882B20A28A080A0C3682958166551 + 8255F1A8B4A3A82D0AB2230924217BDEDC3C246A0512E2E31CBE73DEC97D2FF7 + DDFBFDEEFFAEEF63E1255B77E83B2A72F33C348B95F47D406C0E98B25D9FCDD2 + A67DA32F22EACBF92C26CA7DA590B507CE53515F7D8226919231C73B33BFA84C + 446FF91BF3006B82D3A9E8AD9FA241A8686FB513B98C391DE0F3276DDA3FF27B + 1CDFF677E6013EDB7B8E8AD9BE00F5AD0AC61CEFCCFC22BE43ECD70B990758BD + E72C450A466D4B3BC0EE78E614F0F57E4981880B88DBB18879009F6F53A9D81D + 8B09809C31C73B33FFF0F338E1B784798055BB52A8583F0FD408DA01F625E631 + E6F476AF99DA7440583A4E062C651E6065501215E7B74C0BD05BE61F760E0981 + 9ECC0378059EA662FD5F001C387D8931A7B72C9FA14D071C3B87C4A0E5CC03AC + F04FA4620397A39ADFBB0A041E4DC3A96FBC9807F0F48BA7E202BD08808CBE3F + 9C7C9931A7372FFB589B0E389A8AA46FBD990758B6E30415BB7365EF2B109A82 + E43D3ECC032CDD1E47C506796B0142CF30A7C0268F170A0486242365DF6AE601 + 3CB6C55031413EDA2ED45BB63324096782FFC13CC092ADC7A9E33440BB02E169 + F98C39BD61F1746D3A28E43452F7AFE91D80E89D3E6FB40E482412DCBC7E0D3F + FF54869AEAA768E10B2010F0C1E158E12D2B0EEC1DB8785423C283FF95BEF5E8 + C78BAD8C034406FAA0CE80AD844828C4F9F47328B89407631353B02D2C616AC6 + 266913181B9B40A55242A554422E9340D22686442A92B1D454B45ADCF64D6969 + 411363001101AB7ABC1B2D29BE8284B8181899988133C81AE326BD0BD751A360 + 6F67030B361B1616E6686B93A28DA85353D78087E5E5F8E9D675089A1B216E15 + 085550FFF356D1C5244600C2FC57A151A81F004551484B4942CE0F1731C4C601 + 93DDA7E203F7F761673B18FD8C58A4E55930D254C2D2E405D424AD525150A829 + D4D63F03AFB804A52545686AA8864226DB7FF34AD6D768CF6638C03102D0A427 + 406AF269E4E5E4C066A8233E59E289C9137E07B37E2C9818E91E9F4A02215550 + B85D761FE9C9A7D0585F0599A44D03B1ED8D00F47D51D85405FE9332D83A38C3 + ED9DE9B41AEC7E46BF29B1934A7EF38F44A1A6157A70331F754F2BA050CABD6E + 16669D3208405F9BE03ECBC6CCA4DF233BAEF38069B3E761C6471FC2C9DACC90 + A2687BDC28C3A582AB28CCCED04008654AC5C8BBBC9C865E037867EA9CB0FE03 + AD368C9BF41E3C5678C3D5D61C7AF49A2E8DF4263CAC97E2CCA97832B8AF41D4 + CA0FBF5994B5B15700464EF9CB400EDBA8813BCCD56CC9AAF57877EC30B04D8D + 0CF7FEB949E46A5CFFB912A92723F0B4F2A14C2051DBE8B34EF41860F2D4B92B + 2D2C2CE3C74F76C732EFD5701C64FAC6CE775855B31CC9F171282BE5916957EC + 5D5A9499D02380CDD1F93A07F17D5E2694423E3EFCAB0706D9D8C1D498D5753B + BCF49863698EDFBBDAC3B89BBED62A55212FFF2A722FA481DF549B7CA328CBB3 + C70087D67C84EE283C576F8448CA4240A01F467087E8DDF7AF97D741209263DC + 08BB2E2114648DB853FE046762C3505FF3F8F68DC2CC890601A8BB2198BB6005 + CCFA0FC6DE3DBB606365A9771FBC5BD1081529B85928C31827DB4E21D4642AFE + B59A8FB863FB5153F9A88E000C350840D90D81FBC7F3E0E83C1A470EEE8689B1 + 118CC8F8352613394B07C92FB50248E54A7A25E68BE51835CC5A0BA1A94EAEA4 + C8A5A65538B227085515F7410074B64FA7009A42BAB2798BBC604E14D8472A19 + 60C9A69F6972B30881C61F0D08EBF9FDCB56F34C04994249565F1594C4D16691 + 0C4EF643485E16DDF21DA6D9141E3D186C98025F445DA60EAF9D0E99B2EBED88 + F79ACF219669C6802F86DA0CEEA6E8571B812F94120015696515FDAB51A2893C + 737118422BD961B5353588080D316C0CFC3B328F3AB26E06BDBC6B6C4BC40FAF + 77851BB9504B85F874E94A5872AC7594D86E3326B990EEA3680720974CD9FEAB + D47427D1AB10BC621ECE9E49316C16DA149E4B85AC9F893679D70A64E75EC691 + B018CC983D176B7D96EA2AFF851E6A35ADACA20380A4E5A44B6906B6469DD1C3 + 6DE87C919131B871EDAA61EBC0E7C7B2A9D08DB32092A9E8FBED51D9AFBDA052 + C8712B2B1EF68ECEF058E90353738BEE2B2035B88F1B8E16B1148FEB5B219529 + 5FAB59AD5261A29B03AA6B6AB1FF4088E12BF1C6A317A963FFFA33BDA07467A1 + 6151B85C588299B366635D0F54D00C8BC61609EA9A4564A67BA1B2922831D1CD + 1E2144D96B253CC3F7421B4232A9B04D73D0226907F03D9EDDE94B0A722CBC9B + 93046B5B072C5CBC040EC31CBB2BF615353A6CB89D155ADBE434145F284673F5 + 6324269F456D758558AE508C306837BAFEF0F754F81773C16FD31D62BA74B900 + 87432360E7E084ED5F6EC4185727FD95786E2AA28258AAC08DDBF79098789A3E + 0FD80EE5C2C8D86C5B7AC2A1FD3D06E86990AFB2AC18CD550FE813D9E2C50B30 + D265848E1A5ED858673BFAB790770BC74F26A1A1B60A2E239C10E4FB15A213CE + A284C7CB28CC4A99DF23809E06F934A7B01327137021238B3E137FE03E050BE6 + CDC430075B9DEF5656D7E33F19B928E65DA7CFC4AE2E2E880BDB0B894C816681 + 1051F16928BE52547425FBEC34BD010C0DF2355596E3C99D2B30675BD05F25DE + 9E301E63C6B8C17EA82D2CD8E6609B9B412295412291A2BAB61EF7EE3DC09DBB + 65F4570991902F76E03A5B1EDEED8B41560330B0BF05C41219AA6AEAB1735F38 + 4AF2330E3EAD28DFA217C09B04F95A5A5A90949C82BCBCFCE7DF85FA9329D69C + FE26A4FD2E442EB9F495EF427132A53268A4EB786FB7914EC16BBC16C28AD39F + 762A203892E457A3302F9380367409C178904FB34E3457FF82D6C6A790907383 + 422AA6672D2B2B2B70381C383A72F1EB33352A783956B76F17083ADE9B3677E9 + 85F7DF739FEFB9700E1903E7603D9883297F9884C2E21F91919EDA25449F0AF2 + FD71D6A2025BAED334854C083732218C72730597CBED16A2CF05F9B84EA382CD + D8165BC7BE3D91008CD609D127837CDD42FC370D8267F55A883E1BE4D317A24F + 07F9F481E8F3413E5D10FF076492FBF90F76EEC30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008BD4944415478DA + CD99095453571AC7FF01641789288B048B026A5B9C711945A9233A554F471D9D + 5A5B171410EB52B5E3D4A94B95456C5DD06A51F64D010514398C960A15A90896 + E0020E2E758A3A6265474C02490859DFDC2487209540121FE7F09DF3CEBB3979 + EF7BDFEFFEEFF7EEBDEF63E015DB74EC072AFA8B05E0B6CBD01F2692C8F0ACB1 + 15E9F9E588D9B6904187CF6E4E361EFD9E8ADDF63770846A8090A402DA82DFF7 + E93C4D7B4F7C3EE2FEB5887E800D472E50715F2E468BA07F14E8B4A0B84B88DF + FE77FA01D687E750F13B3E44335FAAEEB59357680B3A2470AEA61D1CFB031276 + 2EA11FE0D383D954E2AE8FD0D426A52DF09E2C28E67B247DB5947E80B507CE53 + C4311A5AD500FB53E853604FC02B0AC45C44F2EE8FE90708FCE61C95B4FB1302 + 20A12DF09E2C38FA024E062DA31F60CDBE4C2A296839EA796A80436985B405BD + CB6F8EA61D12958353212BE807F00F4BA79283566A00FACB82A3B2911AEA4B3F + 805FE8192A29B80BE0C8999F680B7AFBAAF735ED90C86CA485ADA21F6075701A + 9514BA0A75DCFE5520F444164E7FED473F806F500A951CEA4700C4AADFC732AE + D216F4B6957FD1B4434E9C43FA3701F403ACDC7D924ADAEBDFFF0A1CCF44C681 + 40FA0156EC4AA692C2023400C7CFD2A7C0D6E55D0A84466420F3D05AFA0196EF + 4CA412C3023543A8BF6C6F443ACE86AFA31F60D98E042A4105A056203AAB486F + 877299049CBAA7687B510B119F0B6987901CEDB0B5656208D316239C5978522F + C0A38715439EDCCC6FA31D207E6FA041F38080CFC7859C6C5CFBA910C626A6B0 + B0B482A99905699BC0D8D80472B98CC0C920118B206A1742D42110331454BC42 + D8FE7545C5B516DA00624303D1A8E752A2ACF43A52931361646206DBA1C3E139 + 692A3CC68EC508477B585A58C0D2D21CEDED1D68178950DFD88CC755557870E7 + 16789C1710B6F1F872283EBB53929F4E0B404CC81A9D57A31445212B331D053F + E66398BD33267BCFC47BDED3E1E8608741460CD2F30C18291FC2505E0B28485B + 2EA720555068687A097669192ACA4AD0D25C07A9587CB8FC7ADE57505F663840 + 54F01ABCE0EB06702EE30C0A0B0A60EFE482C5CB7C31F90FEFC06C100326467D + E7A78C4074482954DEFF153919A7F1A2A9066251BB1262E71B01441280161D00 + 4AAF97E064421C1C59A3E0BF7E133C5C9D616E6A047D5F2D2289026939857854 + 5E84C6DA6A486512BFF2E2BCD30603E872935C2A46CDDD42D83BBAE0EDA9B360 + 646C060B53A31EBC6BC779F51F2584DDE04128BE9CAB84E08B6552F77BEC8266 + BD0174B53FCD9C1F656DC3DCEC39691A96AF0E808783397418355A8D8C263C6E + EAC0D9D32924B96F40D0C68D2E2FC9DBD22F00EE5E7FB5B1B5306A668DF4305B + B66613A6BE3BB2E7DED7D3942ADCFAE539CE9D8A41EDF3C7629E4861AFCB3CA1 + 37C0E4990BFC2D2DAD52C64FF6C6CA80B570196AFAC6C1775A0D47828C9464DC + AF6093D7AE30A0A2E4522AED005366CE4F670E735A3977F12798337B066CCC8D + 690368EB90A3B0E8675CB998056E4B43C6ED923C5FBD00B6C517F599C477F252 + 31D8CA1A3E4B02C8D9828C7DDDFAC0C6CA1C9EA31D61DC4BB248C91C71B7EA37 + 9C4D8A4253FDB3CADBC59726EA0D7074FD2CF446317FC96A9859DBE1D0817DB0 + 1F6AF59A84DAEE2D7FD48856A1146FBB3A68855090D9EE691D17C9918751FFFC + 49230170320840D10BC1B4D90BE1326A1C228EEE8789B1912A18653C7D09F1E0 + 598B6A16E60A25183B72783708E5F324328A1C0A950ADF1D08434DF5AF20007D + CADB2380AC1782854BFD60AE54E060986A08753962A8203407181AEFCA537503 + 8FCCBC72C848801C8118EEAC616479C1809C3C4BD9F39DA65C149EF836FCCD14 + 50F68236F35BF73984620642F706C1C97EA876CFBF73D1C011901E96434C20D4 + 4A88E13AC28E2C3BBABF821BEAEB11733CC2B01CF822EE2A756CC36C8865DAD7 + 53FB0E1C45F9BD2A7CB67933BC2679F6E55F633C41072424783181509E953DCF + E18BE1E66CA71A8A9DC62E65E3FCD94CC3DE42FF8C2DA4BEDBF83E445235C0F6 + 981F5FBBA1E57915EA1FDE80CFDC05F09C3CAD176F5D366BC228556D40DA0940 + 3A482295A994E009BB43C4C626E2F68D9F0D9B07B6465FA12236CD41BB44BB02 + 02A1104B96F963B8D35B080BDD4586919D4E0A500A853A709502CA64ED528247 + 7262DC5BC35157DF80C347220C9F89FF1179993ABE651E0462B9EAF7AEB8CB3D + DEF4ACB204C2965ACC9AF301A678BFA7C571976BAF7758686D270BC0663E3A24 + AFD71E140A39267A8C404454226E94B10D5F0B6D39914F457EFE816A46ECCD78 + ADADF05BB311364C076C581780195E1374538124F6CB36119AB8826E6F3A1919 + 4E9CBA6AA4659C47435DB55022958E366835BA39E21215B5753E5A456A803D09 + 97B5DEA8CC85E7F7AEC3D1D9157E01FE1836CC0EBDAD4C7E3F4FB8D8DB822F52 + 6F5D1FFF8F049F7A46B51F7070622997E73B73528F1ED61B40DF225F42E229E4 + E6A97764EB037DE1337D620F0FD00E25277971B5F40E4EA565A2B9A1066EA35D + 11B6E74BC4A79E47199B9D5B9C97B9482F007D8B7CCA3D71CD2F656879F650B5 + 27F69AE68519DE53C1640EE93570A51A16C60A64E716A2947D53B527F6707343 + 72D44188C45270787CC4A56429777D25D72F9FF7D119C0D022DFD5A26B88898D + 07C358FD5562E284F19832C113EEA35D30C4C61A43ACADD02A10A2B54D80274F + 6B70BBF201FE53795FF55542C0E70A9D59A3AC8EEDDF83A1CCC1B0B1B6845044 + 12BEBE097B0F45A3AC28F7DBDAEAAAED3A01BC49914F2A16A1EEBFB7F0E2B72A + 989999C3C2D21AA6E6E6AA6F429AEF42E4907474FB2E942C96C9C2DC3DC6078C + 71770D5FEFB7144C5B6B555021E1B1E47A058A0B2F11D066AD10B417F984649E + 60B3CB5079F71E6A6B6AC1E172C1E3F1C8B06292E06CC17261A19AA3C0D3D202 + 6665E5355EE77D3E0B565C9C3ECD7B91EFD2F92407B231DCCE165E5326A1B8F4 + 267273CE6985185045BE3FCFFBF89A03CBD5472AE6638CDB688C1DE301168BD5 + 2BC4802BF2B15CC7869B5958EE78F78F1309C0B83E21066491AF57887F6781F7 + B2490331608B7CBA420CE8229F2E1003BEC8D717C4FF01B7A0F6F95ABD274600 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008C34944415478DA + CD990950944716C7FF1C02335E1C02C20C0615C463D5322471D5AC9A782491AC + 6E2211AF2082651224AB71BDE590241E78A2DC32180E01418B784450242A28A0 + 115DEF153541390641648619668639BFEDF9D0114B9D033FAB78555F4D4FD5F7 + 75BF5FBF7EFD5EF733430759127D9C8A5D3A0D2D3235FD7FFDDE93604ABE9C38 + 02F7EA04A0280A37EFD7226E998F1913FDBED049F0CEDFA8B81F7C2090AA1853 + BCA3C8142A3C78D482CC820AC42FFF9C79806F771CA51296FF13CD927680705E + 2163CAFFB868AAAEBD3EA90089FF99CE3CC037DB0E53892B66A0A9F5ED58E099 + 84261E47D2CA7F310FB0382A8F4A5AF5051AC5CAF659DB778A31A5C303A7E8DA + 6109BF61EFEA2F990758B4F91095BC66261A444AC6147F9584C61F056FAD2FF3 + 00419B0E52A463D4B7B4036C4C65CE02EB033A5820FE0852D67DC53C40E0CF39 + 146FDD2C02A0604CF1574958DC61EC0BF5631E60E18FD9142F7436F8C276802D + E9458C29BDC67FB2AE1D1E9B875FC2E7300FB02032934A099DAB03785B12167B + 086911F39807F08FD84FF1C29E036CDBFF3B634AAF9C3F49D70E8F3984F4C8F9 + CC037C1D964EF122E6A34EF0762D10B12717193FF9330F302F34954A89F02700 + 72FAFFCEACD38C29BD7CEEC7BA76F89E1C64FE1CC03CC0DC75FB28DE86056FDF + 02BBB391B529907980396B52285E64800E60F701E62CB074F6730B444467217B + 4B10F300B3572753C99181BA25D41991C964B874F1026EDDBC017E5D2D840221 + 8442016C6DED606B670B570E17F7EA25B87BABA2F7FD8B05224601FC56EDA5F6 + D200ED1688CB3D6374472A451BEAEE54A0B1EA36ACAD6DC062778795350B1696 + 96B0B0B0845AAD825AA582422E834C2A81ACAD556EA6A1923412E94F972F9F6D + 620C206943A0C971A0BCF41CD25292616E690D5B7B47FCEDDD0FE0E9E505D7BE + 4E60B35860B36D2095B6414AACC37FD4887B9595B879E50F089B1F4322128AD5 + D07C77A5A4209311808488403C323295D09EAE72B3335178A2007D9C38F01E3B + 1EE3C68E415F670774333723336F0673ED2066DA77010D69ABD514941A0AF50D + 4F50565A8ECBE525686AAC83522EDF5A712E7F2DDA5FEB3C407CF842A3B3D19C + ACFD282A2C84938B1B66F8CD83F788A1B0EE66064B73C3FEA922106D4A0A576F + DC415E56061E37D4402E936A2156BF11406CD8423C161B06283D57827D7B13D1 + 97DB1F0B1607C3D39D031B2B7398BAB5C8141AA4E715E16EC5193CAAAD8252A5 + F0AF28CECFE834400C01683200201289B06A59087ADBF785EFFC85F01E39042C + 2B7313557F2EBC9C2238F4EC86E293C7B41062B94AE971BDACB0B15300C67CD4 + F4E03AD45201068F1A83DECEFDD1C3FA45E5CDCC4CDFE2274E18870319A9C4B9 + 2FA0552488AB28C90F3119C018F118FD592F5B967923B79FA7B5DFC2607C30AC + DF1BCDFE33D12EA53F6E5523E79778D456DF930B651A2763E284C900DEE37D16 + B0D9DD53877B8FC5DC8020B8D95BBDB1F2CFA4A65981ACD414DCB85C46B65D49 + C0E592E3698C03BC3F7E5AA65D1F97B95366CCC2E48F3E442F1B0BC600446D6A + 149D398F5347722168AACFBA54923F8F7180F7C64FBBE6C21D30C22F6809467A + BD836E168CA434B428498CB856F9100778B168E03FB87AA9F8F828930096279D + 31E8C417F212E0E8E4828F7D83C0B6B134DA617B92683CD4DD19167A62848644 + BBBFEA044889D90A7EF5FD4704C0C564801D8B27421FC5E8899FC3ADFF6044EF + DC48029639AD9056277DB14BDBDF7FEF37A245AA84573FC79720484C83424591 + 47435B61D7A648D454DD010130383BAF04D0E821F099F935AC7B38206A73247A + F660EB34D41AA2FD31A33BED68186DF376F5133A8D686E95C3C3AD0FB46FA949 + D2A026836967FE99B48AC5D8B33DEACD2CA0D243E0BFE87B903C121B3684C2C5 + C95EEFAC7794870D2D902BD5348440A2C0008E03B1DACB135CCFE7237E7774E7 + 7D400BA035E3EB2472D3765CBA5689E0252118ED3DCCB0E64FA54120815CA586 + 420B4126A88540B8BB3ABC9437959596E1E081ECCEED423F249EA6767EF31119 + E8F509E189C2D3D811938C499FF8E0BBA03986FAD73189C8D2A10148DF0AA58A + 8610B62A3090630F4B8BE78130212119972E9CEF5C1C58965044EDFA761264CA + 768095F1275EFA40AD54E04A7E2A5CDDFA63F6824058D9B0F50F40461837FC1D + C815E430435B40EBA81D2D417C822C270B0251C7AFC7D66DD19D8FC44BE34E51 + D1C1932155E84FC977C524A0E86C39267FF22982038DB382464314D7EE324FAD + 4043905F35F164915481C1FDFA203A361917CACB3A9F0BFD3BE624B53B642A71 + D2F612D39AC457979894E45878BD30138ECE1CF8FAF981E3E6A6AF5BBC379803 + B1548EDAA656DA12AF827B52FB17D2B30EA2BEAE4AA2502A07742A1B0DD95340 + C57CFF291DD20D49D1EF67B13D3A0E7D39EE58BB2204433CDD8DB244B3B80D8D + C4A1D54F773AED12E3D7D5213D2D833E0F38BB70616E61BD3A2F6DC75693014C + 2DF255DF284573CD5DFA44366BD64C780C1C606084E7C271B445AB4C811BB7EE + 607F660E1AEB6B3070803B22D7AF4052DA419497951D2BCECF9E6E1280A9453E + ED9998B72F0D878FE6D367E20FC78EC6CCE953D0CFD5C9E0B7D5FC461C3A720A + A5E517E933B1E7C0814889DD0C995C8966A11889A9B9DA535FC9B9930727180D + D0D9225F5375251E5E3B071B169BBE9518396204860EF184AB8B33582C1BB06C + AC216B9343266B03BFBE01B7FF770FD7AE5FA76F255AC5020987DBBFFBCE8DEB + 616FD713BD487497C8E4A8E13760C39638949F39B6BDB6AA72A551006F52E46B + 696941C6FE6C9C2A3A0D0B4B2BB0D83DC8166B43DF09E9EE85C8A3687BE15E28 + 45AE52457A780E0F18E4E11EB5D8DF1776B63D68A5C2A312E81DAAB8E838016D + 7C2D04E3453E6D9C68AEFB13A2C7B590890550B649E85DCBCECE8E3CB670E372 + 512500FE3C7FC2EEEAD5B3C267DF4DF0997364CCDFC74E9FE73B8DF8C021383A + D862F4FBEFA2B8F4228EE5E5BC16A24B15F9FE31F5ABB3CE5CF7094AB91883C8 + 86E035C8135C02AC0FA2CB15F9B8EE5E51D62CF6AA6123471180C10621BA6491 + 4F2FC4AFB9103E69D04174D9229FB1105DBAC8670C44972FF21982F83F92D3F9 + F921EBBE110000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008D44944415478DA + CD990958535716C7FF21C8E6464045045A44D076FCAAA38E232E23764A1D473A + DAB12E552C2074D45ADA5AA7EEACB66A5DEBC22E28A2EC0EAD5A40114540418B + 5AB075465C8AB26F92909084AC6FEE7B2951AA21247D7E1FE7FBDE974BC2BDEF + FCEEB9E7DE73EEE1E019093C944B1DFE640E849D2AB0211405DCBADF88A2DBD5 + 90CA95DAEFC56231223EFD3B878D77741BE4E303D954C46773D12ED5006C8D3B + CF0A082D0B668DC3FD3A3E81A2F0F3835A44AEF5621F60CDFEEFA9C8CFBDC097 + 288D1DAF47A1ADF0A8B11DC9B93710B5EE1DF60156EF3B4345AFFB07DAC41A80 + 90F83CD694DFF6E16C6D7B6B6C2E62FE3D8F7D80557BBEA362BE988FD68E9763 + 812E098AC946ECFA77D90758B92B8B8ADDF04F348B149A593B7A8135A543FCDF + D6B683A3BF47DCC605EC037CB8F3147564D37B68122A5853FC4512147506F19B + 17B20F10B023932203A3A15D03B03D913D0B6CF57BC60251A791B06511FB00FE + 5FA553F15B161300396B8ABF488223BFC3D1A025EC03ACD8964AC507BD8F7A81 + 06E0EBA47CD694DEE4E3A96D874464E158C852F6017CC393A984A0655A809725 + C111A7703CD49B7D009FD093547CF053803D272FB2A6F4FAE56F69DB21874F21 + 297C39FB001F042751F1A1CB51C77FB916083D9481135FFAB00FE01D94482584 + FA100019F3F7FE944BAC29BD6ED95FB5ED9043E948FECA8F7D80655B8E52F161 + BE2FDF02075391B2C39F7D80A59B12A8F8703F2DC0C134C32DA052CAD156F70B + 842DB5908AF850748AC92381B5350FD63C1E1C1C1C70BF4182CA3B65831F5CCF + 15B20AF0FEC623D491707FED1232443A44227CFB9F5328B8980FAEA9192CADFA + C3CCDC92B44DC1E59A42A552123825E43229A41231A49D1D328E9A8A558B255F + DEBC79B9951580251BE2A83806406381C88C825E0DF2A4E61E1E9517C1C2D20A + 836D86E1F509EE1834C40E6A70A15053502AD5303535413F130E4CA082B0B511 + 777FBC06415B0BC442814805F547B78A72935901880DF3EFF53940272719A9C9 + C83B978B21C31C3069DA4C4C9F3615C3ED6C1965B95C5A61F2128E263B5393B6 + 4A4531500D4D4F5072B514374B8BD0DA5C07854CB6FB4671CE6668FECD7880E8 + 507F34F63294484F3989FCBC3C0CB377C2FC25DE9834EE0F30EFC781A9897EFF + 5412884E0585F29FEE222BE5045A9A6A20934A68888DBF0B202A6445AFA2D1AB + C545381A1783E18E23E1BB720DDC9C1D6061660243B716A95C8DA4AC7CDCBB51 + 80C6DA2A2894729F1B8539278C0688085E811651CF0042A1101BD60692F53E1C + 0B97AFC0A4F1AFC3D2CCC440D59F4A7C7A3E6C07F643E1F9B3348448A654B8DE + 2EC96B360AE0300168D50370E258024A4BAF6186A71716BDF72EFA9B1B3EF3CF + 4AEA99CB98E5311D692712F1F3AD6BE810F2236F14E5041A05A0AF839A6C878F + 6F9DC30827178C9DFA37989B12677D66CD737492E846A4FB2CF69A891FEE5423 + FD58146AABEFCB0452F5B0DE9C13064FDCA4995EBE5656FD13DF98340DCBFC02 + E0646366ECC43F27356D72A42426E0A79B259048C47E378BB28FB30E3079E6DC + 64DE10FB656FCF5F0CCF3767609005973500FA422DBFE00A2E9CCE00BFB521A5 + AC28C79B75803FCD9C5B61EFE8326E49C0C7183FE655F4E3B212D230A2206744 + 45E563A4C547A0A9FE51795961F604D601267B78358C78C57578C0271BE0E2C0 + 8309873D003539ED7EA9E323E1F06ED4573F682400F60601AC8B2DD0EBC4C529 + 7BE134F235782EF66794A71D98FE34D1B38B0EB4B2C09857867673F8A78A0372 + 25451E3563856F7684A3A6EA2E0880DED9790E60DFCA59E88962EE820F603EC0 + 16BB778663E0002BE63BEAD78168DD380486360AE737A3573C6C41BB440E37A7 + A19A3EA4934A4D3F1433F35D42078587F6EE32DE023480BA0782E50181207124 + C2C2823082C43CBA84A2BA0F5259DBC6C4417CB19C2C3D5B9D4BAFA1BE1E5107 + 0F18E7035D00CA1E08C2B6EF45594525D60406C27DE2587DE36BE571B3107285 + 8A99F17689022E236C5E085172B5049969A9C6ED425D00F43AD425B97997B0F7 + 501C3CE7BC838FFC97F64A797AB466819859E37285928110128891237824F0EB + EE3CD1D1475076ED8A71E7C0E73197A8FDABDE844CA93BA2ED108B317F912F86 + DABF8A6DA19B616F6703E8757DB2C74B644479DA495590114BA8194BC8E14A2C + C1E56A20EAEA1BB07BCF01E34FE2B5D1F9D437ABDF8254A101581F75EE859DE8 + E445DC5A8B599E733079DA741D033F1DDA7DAC13647225893455BFEE349A4F15 + F16291548E5104C294401C8838826BA525C6C7429F455EA00EACF18444DE734E + 2110B49330621506F1ECB0FA5F2B3063CA78BD2FA29D9A065010A569E5E92C4D + 4E40D464B90A0944DDC34A24A564A2A1AE4A2C57285C8C8A463F3D7C9E3A1838 + 9BEC329A12D3A618DD25A6D6EA4A54DF2EC6700767F8FAF9C276882D749D8B13 + DCEC9999AE7FD2C12C9FDF2AD0D8D080A4E3494C3E6067EF0813AEF9C6ACE3FB + 761B0C6068912F26EE28CE646B32B25501DEF0983AB1C717D0AE221075A2A55D + C23832FD5BE5BDFB484BCB4473430D46B938237CEB17883D9E89D29292B38539 + A9F30C0230B4C8472F8B9A3BA5687DF45F262776779F4272E23F83C71BDCCD07 + 9E7B29F949A5902127AF90E415D7999CD86DD4282444EC8454A6409B408498C4 + 0C3AEB2B2A3E9FE9D16B00638B7C172F5D4644542C385C7358DB0CC5C43F8EC3 + E40963E13AD20983070DC0E081FDD12E12A35DD88107553528FBF10E6E95DF66 + 6E253A447CB183E3C8FEFBB76F850D6F200691D35D2C95A1A6BE09615F47A2B4 + E0ECDEDAAACAF5BD02F83D453E854C8ABAFFFD8096C7953037B780A5D5009859 + 58307742DA7B21F2C83BBBDD0B25C894CA7057B737FC46BB3AEF5AE9B3103CEB + 018C5221BBA2995DAA303F9B8036EB8460BDC84717B1AF5C2D457945056A6A6A + D1D6C627BB9680CC2E7D33670D27274754F13978589CCB2B2FBF2CE8EAE7E1B5 + F4F454F769F3BC17CE253E700A436DAD3165F244145EBD8EB359E93A21FA5491 + EF2FB3175DB67374F650C844183DCA056346BBC1D1D1B147883E57E473741EB3 + CBDCD26AC3D8F11308C06B7A21FA6491AF47886F332078D2A485E8B345BEDE42 + F4E9225F6F20FA7C914F1FC4FF01E4E60208B4B5B7C20000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Find_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008D74944415478DA + CD990950146716C7FF03280C9A84231C0383220A1A77C58AAEA5BB1A351B3C56 + 3CB21125888BE77A6234AEB71C124DE27D20378C720882586CD4002BB022A040 + 142D514C81B0C100C31D666098FBE8EDE9091389300C635BC5ABEAE9AFA7BBBF + 7EBFEF75BFEFBDEF31F08A7C71F13671C17F3EBAA54AEAF840D46D1822C7B72C + 404D230FD90F7E427BA7E8B5F30A990CA13B16300CEAFC77D2AB13FFD06CE2E2 + 8E85E89228E9E81B04013CAE6E46E1D33A88650AEDFF42A110615FFC8D7E80ED + E73389B09D8BD029D6001C8E31CC027DC96773DD51CDE59150042A6A1A10BECB + 937E806D67BF27C2BFF4044FA430B43F9DA2B6C2CBE64E2467972162F762FA01 + B69CB94944EE5E820EA10620282E8736E5BFDA385FDB3E1C9D8DA87F2DA51F60 + F3A9EF88A83DCBD0DEFD762CD02301519988DEFB29FD009B4E6410D1FBFE8E56 + 815C336A977269533A68FD3C6D3B30F27BC4ECFF8C7E808DDF5E27620F2C474B + 979C36C5FB9280889B883BE8453FC0866FD209B26334756A00BE8EA7CF0287D7 + BE6281881BE01C5A413FC0FA636944DCA19524808C36C5FB92C0F0EF7029C09B + 7E80755F5D25E2023E47235F03703C318F36A50FF87968DB416119B81CE4433F + C09A90648213B04A0BF0B62430EC3A12827DE907F00BBE42C405FE0670EACA7F + 69537AEFEA4FB4EDA08BD79118B29A7E807F04261271C1ABC1E5BD5D0B04875E + 43D2513FFA017C03E2094EB01F0920A58ECFA6DCA14DE9DDABFEAA6D0785A621 + F9D85AFA01561DBA44C41D59F34616108BC578505A8A8A8AA7E03670C1E7F1C0 + E7F3606161090B4B4B38B21D51D3244265C5C3F76A7EC8EEA215C0E70087880B + 59AB05B890AABF05143209B8956568ADFD11A6A666609A8FC07053268C4D4C60 + 6C6C02A55201A5420199540CB14808B1A45BCA5011D12AA1E8E8A34777DB6901 + F87C7F2C111BB25EFB0AE92BC5F78A10CF89859189292CAC6C3069CA74B88D77 + 03CBDE1623CC993037378348248150244653732B5E5455E1D9E307E077B441D8 + C51728A1DAFAB8303BF98D01BCF7C510311480C602E1D7F275DEAC8EED1B9E97 + A2EDE573BC6FEB08F71973C1B4B2834C41C0C48801136306C81D180C4D72A322 + 3725F923571298E53E06C5F74BF0A8A410EDAD5CC8A5D29365455907C96E556F + 04107D64BDDEF3405ACA15E4E5E4C096E58465DEBE98EA3E11A6C31894F20389 + 820491C8093C7956898C9424B4B5D4432A16A921F6BF114064F07A34EB114ADC + 2F2AC4A59828D8B3C760CDA66D70757684D970230CD6B588652A2466E4E14559 + 3E9A1B6A2157C8FCCA0AB2920C0688085A376034DAD5D5857DBBFCF19E953DBC + 56AFC3D4C91F80492A6FA8C4A5E5C1FA9D6128B87D4B0D21902AE4E39E16E7B4 + 1A041016B80E6D02DD00499739282929C52C0F4FAC58FE2946980E7EE45F95AB + 37EF62EE9C99484D8A47C5E3527477F1C2CB0AB3FC0D02B84802B4EB0050FBF9 + 1D9B37C2D66134B6EEDA0367076B18EBF1CEEB92F4CC42ACF49C8D07CFEB9076 + 39020D75D552BE5865ABCF3CF11AC0403708DAEA2168AAC2C42933613B7A02CC + 7B5E1D1D0C8CFE4EBEF2B7CFE28F50DF21434A3C07CF1E15936E57B8F6516166 + C2A000F49169B317255BBECF5A356FD94A787C3C0BEF9A191B3AF0AF897A3D2A + 2FFF1E726F5C03AFBD29E56161962FED007F9ABDA89CC57671F7DEB01D93C78F + C630635A421A4AD4F34379D5CF488D0B434BE3CB270F0B323FA41D60DA1CCF26 + 8751E3EC37ECD80717474B72A2A20F4045CE763F7179E05C3C89C6BA9A661280 + F5360008A73113B0F3402039691963B88911650563C3BD283543AB676F994245 + 59E1DC3721A8AFAD040930A07EBD2ED81D9D3FE0475C9A11091B5B1616F9FC13 + 466490D6D38BBA230615363034FB5F8F7B1E3282690A37271BEABC7AA4092AAC + D08416EAE31EE91608107AFA84611650039CD93417BA287C37F8A35BC240C891 + 00B0ECAC755C49F46A55D4B6A35324275F3B6B9DAF5D536323222E9C37EC1BE8 + 0150E920083E761A0FCA2BB1DDDF1F33A6FE5197DEBDE405B7831A6D0AC2C1AA + 5F88E2FBC5484FBD6A9817EA0150E820C8BA7D07A74363E0B17031B66EF019A8 + 7F2D547DBB0032B98282105096E81B223232160F4BEF19360FF400A83FA4FEA4 + 5B28C4122F3FD8B046E3E8918360D95A0FF40C4ADAF822B25F25A47232FA2721 + BAC5728C212DF1EA2CCE6D6CC2C953E70D9F89BF8CBA439CDDFC31A40ADD21F9 + 990B91C8BD5B82790B16625B7F56F8DD180844D25FBD8C92DAAB21BA44328C75 + B024F3068D0B3B1F168BD29262C363A15D9179C4B92D9F402CD700EC8DF84F9F + 37C9C9B4F0694E326CEC1CE1E5ED0D4727275DDD62DA078E90C914A4F22A4A79 + 05B9C948101569698184846059A2A0A8148929E968E2D60A6572B98B41D1E8CE + F05CE2FC360F88640327453979F938792E1CF68ECE38B4770726BA8ED6793D41 + 65622ACDA686A0F64A2849175A5DF3129C4B09543E60C76293EED9747F46C299 + 938306186C91AFEED97D74D4BFA032B2952B9763DC58973E9F30C9C59E74BD32 + 347708C90FB977FDADBABA06A9A9E9686DAAC7581767841CDE83E88474941417 + DF2AC8BABA745000832DF2A973E2584E02326E645239F1AC99D3E1B5641E4639 + DAF57B4F67B704BF08C4686BE7A1B0A884CA2BD439B1EBD8B1E0847D0BB1548E + 0EBE0051F1D7D4595F61D1EDF4397A03185AE46BAFABC2CFE54530639A53AB12 + 9327BB63E2045738B0ECC0649A8169660AB1444AE612123436B5E0C7CA6A9497 + 3FA55625BA053CA1237BCC88B35F1F8695E53B7877A439846229EA1B5B70E478 + 384AF26F9D6EA8ADDAAB17C09B14F9F89D9D484CBA8ADCDC3B3032190EA6F948 + 0C3733A3D684B4EB42E42693F45A17E248158A9071AE93D6BA8D733EB1C9CF0B + 96162329A5824E4492D7AB5090974982B6F60B417B914F2997A183FB3F74B535 + 402CE0412E11525ECBCACA1216161618E5C4466DA7116A0AB22C9F3CB9CBEFB9 + 6F8EA7CF8D3FCFF8CB525FAF45E437701D36D616983E6D0A0AEEFF805B1969FD + 420CA922DF47F357DCB5633BCF914B0570231DC2783757B0D96C9D1043AEC8C7 + 761E7FC29469BEEF0F933F2401260C0831248B7C3A21FE7D0DFC5F5AB41043B6 + C8A72FC4902EF2E90331E48B7C0341FC1F19D71108BFB294DC0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Find_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008CD4944415478DA + CD990754546716C7FFC3D08B30A028C588D8B2D9ACAE2446A226B01BA2AE1892 + 8D1A4374B11E2B96B876291253EC11A53B288A1D0FB1014131341D50D1832D6A + F458A8829461DA63EADBEF3DC22C89320CC3F31CEE996F5E9979DFBBBFEF7EE5 + DEEFF2D04696C55EA0772D0A8042A5435745ABD14042A92055A82021454A3147 + 25942A2D8A7FADBC1BBD38E0ED2EBF8408AFEDC5D23DD97474E858C8945AF67A + 6D42B649956E5E300E8FAA1A9175F531EA9A142FFDAE51A9B07BC9389E09551B + 0608DD9D45EF59321E92662D177583A6811B0F9FA3E056192895467F5F2E9723 + 66E9BFB80758BC2B838E5936014D540BC08624D32CF02AF9DC7F281E56361228 + 1A771E5520767920F7008B769EA363BF0E44A342636A7D0685B1C2D3E74D389C + 5582B81513B90758B0E30C1DBFE21334C85B002284E73953FE9BB963F5E71B12 + B390F0DF20EE01E66F3B4527ACFC1475B2D7638156094BC840E2AACFB80798B7 + 259D4E5CFD6FD44AD52DADB6EF02674A47CCFE587F1E1E7F0E496B3EE71E60EE + 0F27E9BD6B27A146A2E64CF1574958DC1908D74DE61E60CEF76934A918D54D2D + 00DFA57067810D33DB5820EE3492D74FE11E60F6B7C769E1FA2F08808A33C55F + 25E1B1A7B02F6C2AF700B3BE394A0BC3BE4495B80560F3C11CCE945E1B12A03F + 8F8849C7FE8860EE0166441DA693C3BED203BC2E098F39890391D3B80708893C + 440BC3FF0FB0EDD045CE945E35FD23FD79C49E933818359D7B80FF841FA48591 + D351D9F87A2D10B9FB04523785700F302D2C854E8E0C21004AF67AE7915F3A5D + A156A34243E563485E5480923642DD2C2745012781000227013C3C3DF0B0A619 + F76F5D717C74254BC229C057EBF7D1C28D334CB280542AC54F27D3703127077C + 734BD8D8DAC1D2CA869C9B83CF378756AB616304959202A590836A9629793A3A + 5127576CBA7E3DAF8E1380E0B5C9B4306AA61E20FA987116A82FFF0D4F4B0B60 + 6D630B476757BCE5E38B1E3DFB404B9B43ADD342A3D1C1DCDC0C16667CF07924 + D0A9ABC6BD1BC51037BC805C22966AA15B78A320EB709701BE5CB397DE1B355B + DF853A12C6353E7EF430B2B3B2D0D3D503EF8EF2C3A8D1BE70EFED0273331E5B + C8073C5E4B6CA0234543BE985255530FD1E5629488F251575B09B552B9B5A430 + 731DA9B653E1E01F00A6AE4EA2935880160BC49EC835F870F99D22D497DD472F + B737F05E4010943A3EAC2DCC58C55F7AD19F6E05F90F47B39A46E9EDFB483F92 + 8A1735E550520A06624D97001237CE366A1DB85C58807D4909E8E3D91F33E62D + C2202F0F585B9AA1B3530B45E2EF83E939F8AD2417CF2B9E40AD518594E467A6 + 9A0C101F391BCF3B7025241209562F0F25FDBD0F264F9F857786FD0536447953 + 45783C072E0E16C8CF3ECB4048951AF5C05BA2F3B52601C445CCEAD01B4DDD9F + 8CA2A2628C0908C494499FC1CEAAF32DDF568E9EC983BFDF681C4B4DC11D32B8 + 6592C6D89282CC50930062C267E185B47D008AA2B064FE5CB8BAF7C3C2E52BE1 + E5EE02BE59D7D6A4B48C027C11F821AEDE2DC3F1FD71A8287BA814533A5763D6 + 899700F610803A0300970AF2919AB21FA3FE3901C1C153606BC9EF92F28CA4FF + 7C09C1133F4079830A47529271FBBA080A857CE6F5828C039D06E8E881DA47D7 + 61010D7CFC036167DF03167C5EFBDD87D7BE65FEFCCBA4F1A3D8ED9C9CDC4BB8 + 70FA041AEBAA8F5C2BC89CD6290063E4DD0F27DC74F3F41E3A75CE620C1BD28F + 05E04AD45A1A371F3CC331610C6AAA9E965ECBCF18CE39C008BFC06AF73706F6 + 99B36435BC3D0464A1E20E404756BBC7958D48DEB31555658F9E1300B7D70140 + F7EDFF2696AD0D8795051F968C8B40ACC0377D1665576895862645C75AE1C7EF + A350FEE43E084087FA996C81A52BD7C0DEC1417F9FB1040361F6BBFBC05CB71A + A7F525CC006B712968F6A8D5318566AF5B45469CC2DDDBB79866811589B91D0E + E21B9907E060678FA0697361616D6B74D3D8595B912EE7D26197ABAEAA425CF4 + 2ED3C60003B0639E3F0C51447CBB1D574BEF637168287CDF317E87FCEEB33A48 + 290DBCDD9D0D42882E8B9076ECA869B3502B80CE004166F6456C8D4E42C0F889 + 583427D8680066BB9DE92E52859A58A27D88F8F8BDB8567CC9B475A015406380 + 40269763E2A410E281F6C3A68DEBE0EEEA62144065BD144A35F1FC49DDB266C6 + 122FCF609555D5D8BA6D97E92B712B0033131892EDD1F1389F2BC2C7E3C663B1 + 9156A86BA248BD5A76A661212835FA1388B6AEF7AE98BD282E1299EE0B7D9DF0 + 0BBD73FE3FA0D4188E29C4E2264C0D998F1E82DE58386F16C68C1CD6E18B6494 + 8A559E89CE545AAD1EC2DBCD09E664FABA9827C2C12369A8AE7C2257A9D5DE26 + 79A3CBE373E81F177C044ADD02B02AEEE7F65BB4EC01CA6E15A28F871766CC9C + 01979E2E686F56F619EC0615E93E6A326FAA1908F6A865C78442A986ACA1163B + 63846C3CD0DBCD13667CAB35E907766CED344067937C7189FB70EA5C365CDDFA + 62E19CE9F07BBFFD598F093F190056F9DF8F4CB976E3360E9196AFAD2EC7006F + 2F446D5889C40369281289CEE6671E0DEA144067937C8C52E5778B50F7F45736 + 26F6F51D8931A3DF83939323DABA786F79B942DEAC428D58C15A8219BB0D0D62 + 145E2A2271C51536261E34600092637E00452CD220962221E50413F5151466A7 + F9190D606A922FE7621E76C72682C7B78493732FF8FC7D2846F8BC8D41FDFBC2 + B1873D1C1D6CD12455A04922C3ED074F71F3CE3D9496DE62772564D246B98767 + 7FBB9DDF6D80B3C0013DEC6D21A79428AFAAC1C6CDB128CA3DBBBDE2C9835546 + 017425C9A75652A8BC77152F9E3D809595356C6CED61696DCDEE09E9F7854851 + 35FF615F2859A9D1440D1CF4B79983077A6D9917321902277B56A9882DF1E4FF + 3AE4E76410D0DA7621384FF23129D4C2CB45A4856FA2ACAC02F50D8D64D612C3 + D95900474747087AF64683DA060FF33304A5A579E2D6E7FC02834FBFEF3B2A68 + DAE409640C9C442F17278C1CE183FCCB577036FD78BB10DD2AC9F7C1D82979BD + 3DBDFCD44A29060FF0C690C183E0E9E96910A2DB25F93CBD866CB1B2B15DFDD7 + 61C309C09B1D4274CB249F41889F4E405C5FA387E8B6493E6321BA7592CF1888 + 6E9FE4EB08E27FDE501A08C65EF7C10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008E14944415478DA + CD99095414571686FF666F94C832A22C8904444D2603894E0E89190389EB883A + 2668086E51F4B86F71148D2C4A56F7A0ECD028A2228A61DC80A028D048838A46 + C50597A8019A4D4237BDD26B4D75F5A14747E886A23C877BCEEBAAD75575EB7E + 75DF72EF7B2C3C276B130B899F978E855CA5A5EA1B127E051DD9B97C125A4532 + 88654A88C82296EB8E0A28941A5CAEE657C9A4F24F53D64F6DA1A5FCFF84F57C + 654DFC792266F938C894DA5E2BD6A8D510918677065171977F67EF8A71EF300E + B03AB680D8BB7202240A0D55DF9454404BE9B6A513F1A85E80FC2B8FD1D2267B + E9BA5AA9C4BE55135934541B0758B92F9F885D3509A2760D13BA4110C0F5878D + E0DEAA815CA936FC2F954A11B7FA9FCC03AC88C925E2D64C469B5C0F109E42CF + 039DC9E7013E78C8179050046E3FAA43FCDA40E60196EF394BC47F1D08814C4D + 579F51D179E169631B8EE4572261DD14E60196EE3E4D24AE9B8A56A91E208A73 + 8E31E3BF5D34C1701E9E9C8FA47F4F631E60C9CE9344D2FA7FA145F26A3CD021 + 1149B948DE309D7980C5DB7388E4B0CFD02C56E9BFDAFEF38C191D153ADE701E + 997816291B3F671E60D14F2788D44D416812A91833BC338948380DCE37339807 + 58F86336412A46439B1EE08774E63C103EFF390F249C42DAE699CC03847E7F8C + E06CFE8204503266786712197F12FB2382990758F0ED518213F125EA857A806D + 19858C19BD69DE38C379545C0E0E4485300FF055F411222D629601E0554964DC + 091CDC329B7980795B0E139CC8FF01EC3C7C8131A337CC196B388F8A3D818CE8 + 39CC03CC8DCC20385BE6802FA0EF01B95C8ECB15E5A8BA55053EBF0E02810042 + B2D83B38C0812C6E6EEEF8BDA91D776F550C7874395FC428C0EC8874226DCB3C + 124041D5F7645EECB622B5B21DFCEA4A343FB90B6B6B1BB06DFBC1CA9A0D730B + 0B989B5B40A3515321B65221875C2685BC5DA260698964AD54F6DDB56BC5B473 + 831700666DDE4F70B67ED5630F945D2AC5FED414985958C3DE71207C46F961D8 + F011707571463FB6356C6DD990C9E490CA15A86F68C683FBF770EBDA15085B9F + 412A128A35D02EBBCECD3FD26B80904D6904277ABE01606F96710FE822CBBA3B + 1578F6F40EFEE2EC069F0F03C076708152AD8185190B16E62C9007B058FAD05A + 4B160DF9A3D210F0F7F544595939AEF24AD0D2CC874AA1D851599AF70DA9B647 + D9D40B005F6E4C2552A3430D4DC89464651EC6F982737076791D9F05CFC648DF + B76163C9A28C37256A12A45D45E0B7AA6AFC72E4109E35D5422197E92036D206 + 080E4B21522800BD07E28F1775F9604BCD7DD4DCE46290BB27FC260681FCA860 + 5B9A75FE12D6CB40D303DEA58E72327DCDC829C483CA2234D63D814AAD9C5759 + 9277883640F2D65093F380482442D8DA9518E0381833E62CC028DFB7C0B63203 + 5DE11C2B84939D254A0ACEE820C40AB56AE82DDEB9665A00895B42D168229438 + 74200DE5E515F8C7B840CC0C9A8E7ED666E8CDA07EF4743102FC3F42D6A174DC + BE5E018948105FC9CD5B490B20216A81D1685437CEAF5AB208CEAE43B06CED7A + 78B83AC1BC1B6DDE9864E772F145E0C7B872A706C70E24A0AEE6A14228D73A77 + 679E7809202E72019E89BB06B8C42DC1A1F40318FDE9648484CC84AD9579AF8C + D749CEAF971032650C6A5B95C84C4F43D5351E39EC4AE75FE3E61EEC31402C09 + D0620420296E2FAAAB1F2178FE12F88D7A0796E6BD8F084E9D2B47D0A4D1D46A + 4861D1259C3F751C829686CCABDCBCD93D0630F5405D55111C1D9C30F2936960 + 5B5BA2ABD6D32516ABF32B53C7FA51F3C3CDFB7F208B1387A6FAA737AE96E4BE + D72380EEC8FBFE810DAE6F0C1DBC7055183CDD1C48004662324AB4E46CF7982F + 405AEC0ED4D73C6A24015C5E0500F1FA9B23B0665324AC2DCD61656146352373 + FAA32835432BD50459B494177EFE311AB54FAA410298B48FB60756AFDF88FE76 + 7686FF759ED0419899E9C3075DBDC3391D2FD1B54F7D484150478D561F5AE8EA + 1D22118BB16FD7F657E781BF7F3CF9A68BBBA7CFB2D56BE0E2EA4AFFB377210D + F5F548D81B43AF0FAC4B2E32D989AB79B9504B04981C340B03DD8674FB8BF4B3 + B122FB8C93C93EC32BE3213BEB28BD514807B07B71008C51E4165CC08E98148C + 9B3405CB1785BC78D1C883F76A5BC9705A4542381A85484C4CC5D58A4BF4E681 + 0E00AD1143241229F9F5E762A0CB107C1FBD19AECE8E465FD0A1EA7183105A52 + B1A45D0D4FD7CE472F7E7D0376EC8CA13F137700A8B5C65BD2AE98441414F130 + 7EE224AC581882EE4843AB841A65749D56D6AEEA1422262E1515E53CFAB15007 + 806E28332602611B82E72E869DC3202C5B128A317EBE265FF4A7480E3509A0D4 + 68284FC8484F78B8D81B72870BC53C646466A381FF44AA54A93C6945A35F275D + 24F62CF9040AB5E9A4A8A0B008DB76C763B09B07C2C356E16DEF2146EF9790ED + 5F45EA559363A78ACCD87443A784F484D7607BDCBEF700BB6239543E30C8C51D + 66E6D61B730EEEDED163809E6EF2D55495A1B5F6019591050707C1CBD3B3D337 + F8780D8652A5D11BAFE980D0521057AEFE86ACEC93686EA8259FF74074F87A24 + 1FCC46398F77A624EFE8B41E01F474934F97132771D2F1CBC95C2A271EF3D107 + 98316D3CDE70737EF9665D2EACD51BAF2BF54D2DC83BC705B79447E5C4DE5E5E + 488BFB0972850AAD423192D28FA3AC94CB2D2DC8F6EF3600DD4D3E5D7AF9C7CD + 52D8B06DA95589777D7DF0D6086FB8BA0C029B6D031F6F3734B6B4A1AE49408E + 348DB84336991B376E52AB1212B140EAE6FE66BF3D3F849341A21D5EEB6F4BAD + 5ED4D63761EBB67894179DD955F7E4FE866E01F466934FD8D68683199928387F + 916CC35660DBF687958D0DB526645817228BB2FD8575A134855A1D3DD4FB6FF3 + 870DF5D8BE78DE0C38D8F7A78C8ADA9E48DEAF4549612E09DADC2504E39B7C1A + 9512ADFCDF217A5607B9580055BB142A851C76AF0D80A50DE921276710368E78 + 507CD6E1C68D6261C773FE8121A73EFC60F4B4D93326937DE004063AD9C3EFFD + 912829BB8C3339C7BA84E8539B7C6326CC2C1EE4EEE1AF528831CCCB13C38779 + C3DDDDDD28449FDBE473F718BEDD9A6D1BF657DFF74880112621FAE4269F5188 + FF1C87F0CF2603449FDDE4EB2E449FDEE4EB0E449FDFE43305F15F63BA3008B7 + A3BAC80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008E64944415478DA + CD99095414571686FFA6914D892C23CA6282282667747462A2282EA87114259A + C435A831483CEE5B1C14A3809219E36E5059B551D4800B46A30888A0482BA088 + 8A3B2A47947D6FE8955E6B5E15A103A3D0D094E7700F8FAEAAEEBA75BF77EBDD + 77DFBB1C34911FC3AF51FB968C835CA5414725BFB41642A9022299827CCAA150 + 6A703BB7F491442C1E7FC8676A55871FF0A7709A9EAC0D4BA17E5DFA0564CA06 + 80F5A197F552BA7BB93B6A845288A48A661072859A40143F924A64AC41340358 + 13924C052D9F00A9A2E31E50AB541012C3DF0571EB69F193FD2B260C641D60F5 + C1246AFFCA8910CBD5CCF9C6F024BD94EE583A097925022466BD42559DF4ADEF + 550A050EAC9AC4D14375EB002B0F24520757B94358AF664337280AB8F7B20CFC + 8705902954DAEB128904C1AB27B30FB022289E0A5E330575B20680CD87F4F3C0 + BB64FAD84178592C2050141EE7152164AD07FB00CBF75DA2427EF48040AAD257 + 5FAB427BE175591DA213B311BAEE4BF60196EEBD4885AD9B8A1A49034000EF0A + 6BC6FFBC68A2F678734422C2FF3D8D7D8025BBFFA0C27DBE4295F8FD78A051FC + C2E311B1FE6BF60116EF3C47456CF80615226543AF1D4966CDE800EF7F698FFD + C32EE190EF74F601166D3F4B1DDE3803E542256B86BF4BFC422F82F7D34CF601 + 7EF82596228A515AD700B02D8A3D0F6CF66AE281D00B88DC348B7D00EFFF9EA6 + 789B661300056B86BF4BFC43FEC011BF39EC032CFCF924C5F3FB1625B50D003B + 8EA7B066F4C60513B4C701C1E77034C0937D80EF03A3A948BFB95A80F725FEC1 + 67716CCB3CF601166CF98DE2F9FF05B0FBB7ABED56A856295053FC0AC2CA22C8 + 440228EB25A449616969090BD21C1C1C905721C7D39CCCEE79B71385AC027CE7 + 7F9CE26D998F6241FB3D201289F07B6C2C529293C1353482A9595718199B9263 + 4370B98650AB554C86AA90CB20934A20AB17CB391A2A422391FEE7EEDDEB7AA7 + D6CD00E6F94551915B1610003973BE2FE65A9B945417BEC0EB1C3E4C4CCDD0DD + CA06033E1B8E0FAC7B41054328D56AA8C802C9D0D0005DB85C7285A4D9D56578 + 7A3713B5359590086B456A6896DDE32746771860EEA623146FEBF76DF6009D98 + 9D8A8946624202FE66638F6123DD3072D408D8DA58136339E01A00061C0EC81F + 93996AC83F35596A28D5144ACAAB919E9E893BE969A8AA2886522EDF957D23E1 + 27A2B65D8B9166009E1B23295EA0971660FFA9D63D50F83813D505B9E861FB21 + 5C264C43BD860B932E063034787B7C72FEEFD237E387A05E41E1FEA367381B7D + 0295E58590CBA43484AFDE00DFFA1EA60E077A6B5FA1D624FD061FBC8870F472 + E803AFC5CBE1DCC71EA6C47870743CA4A9074167A81A1CFF3D05CFB353515694 + 0FA54AB1203B2DE1845E0073361CA20E31000D1E083993FACE9B9464203EBC12 + 8D1E3DEDE1EA3E1394A1314C8D0C74F67A53993A66B0F698773A05D6E65D9096 + 14474388E42A65BF8719572AF40288D8EAAD731E387134129999B7306A820766 + CDF81A5D8D0DD091A07EF2E2758C751B895327A2F0F8DE2D888582906C7EC24A + BD00C2B678A3AC955442269361D59245B0B1FB08CBD6FAC0D1CE9A0CD68ECD49 + B1F17CCCF61883AC2705387D341445052FE5B5328D4D5BE689B700420316B69A + 8DDEE4A7E144D451B88E9F024FCF593033E276C8785ACE5DBE09CF2F47A3B046 + 8198A8483CBA9B01A954E275971F7FACDD00C1FE0B51296A19203C783F7273F3 + 30C76B095C3E1BC884CB8ECA852B9998E1EECA6C26A4A4DE44F28533105495C6 + DCE127CC6B37C0410250D50A809FAF0F89E306584ABF3E0E364C9CEFA85CBA7A + 1B53BF7061E68707CFDFE0142F18E525AF73EEA4C57FDA6E005D37BCB977193D + 6D7BE3F3715FC1D4F8EDD787A307107D87FBD8A1CC44F7AA5880C883BB505290 + 5746006CDB05D01619EAE641F5EEF309D66CF48771172E8C9814A161D6D55734 + A4DB142A8A340DE3855F7F0944617E2E08804EFBF40128B5FBB05FAFD53EBEE8 + 666EAEBD4EBF4A4CEA4022121D941A5388A60FA1DDDB9852D09F745AA126D6D3 + E78D222649E1813D3BDF9F073E1F33E581AD83D3A065ABD7C0D6CE4EFF6E6F41 + 4A4B4A10BA3F48BF31D0260F8C99126DD9C376EEAC399E701DE9CA3A40467A06 + 624F9DD42F0AAD8B48D53988CB5F3D41C1033E868E1C8711E327B5C928FA215D + 4D8CE0646FA5336A85851DC69D5B37F59B076880BD8BC7A2350AB15882C9D3BF + 2319E847D816B889A4CE563A01687D2F8A6A2095ABE16467D9224471492976ED + 0ED27F266E04D0E8F0C3AEA050245DCBC044F7C958F183679BBCF0BABC8E19B0 + 927A25FAB60011147C18B73233F4CF851A01543A0804B575983D7F31CC2D7B62 + D9126F8C76190C5D5256236156671AA25B2A57C1C9D6A219C4D5EB19381E138B + D2E27C8942A974D22B1B6D04A063B12EB99C9C8AED7B83D1CBDE117E1B56E1EF + CE8EADFEBE46540F15899B4A959A099B3202E1D8CB8249041F3CCEC59E833C66 + 3DD0D3D601065C63DF73C7F6EE6A37407B8B7CC1E147703E2E093664665EB668 + 3EC68E6839EAD1AF8E9200344068B4102F9F3D4654CC79549416A2AF93230237 + FB20E2582C323332E2D2124E4E6B17407B8B7CF49AB8F04926AA5E3F65D6C4C3 + 47B86094EB30585874278AFF523DA08F0D9965D58CF18DAD94AC892F245C4556 + 5636B32676EEDB1791C1DB09941235B52284479DA1577DFC1B49B16E6D06D0B7 + C8772525950CC00870B846B0B0EA8121FF1C84614306C2D9A937BA9B7723CD0C + 62890C02A11879F945C8CE798AACEC7BCCAE84582490D83BF4E9BA6FDB665859 + 9AE3836E6690C8E4282C29C7D61D21C84C8DDB5394FF7C7D9B003A52E4A39799 + C5CFB250F9E6398C8D4D606AD60D462626CC9E90765F8834457DB37DA148B94A + 15D8CFF91F5EFDFB39EE5CBC60262C2DBA314605EC0C23BFD7202D259E8056B4 + 08C17A918F2EE0F16F66E0FEFD8778535088F2CA6AD2CB4218991220533374ED + 6E0D332B5BBCB81667999373BDB6F13E370FCF0B2386BB4E9B37730A190367D1 + C3DA022E4387202DFD36E2CE9D6E11A25315F9464F9C75BDA783A39B522E42FF + BE4EF8B8BF33B315D91A44A72BF239387EBCD3D8D46CC380C19F12804F744274 + CA225FAB10E7CFA0B6BA5C0BD1698B7C6D85E8D445BEB64074FA229F2E88FF01 + 9C93340839FFF0830000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_21_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008E64944415478DA + CD99095453571AC7FF010402B840150CD01651ACCEB452473DA256C5A56AA53A + 53952A6A5DA88AB8EBA0584194CED4BA6FEC1014375CB0581704541402B208A8 + B84D3C324291459631212B59DFBCBC1C327284248437E7F09D7393B7DDEF7EBF + F7BD7BEF77EFC7C07BB225EE1E71689537142A025D9547E5F5104AE510486490 + 2BD478C0AD2B1431302B3E6052539795BF278CF74F36C7DE250E074C824CA9EE + B2E28A3A3E69BCBC0D4411B7EEA958249A1C1F348B368836009B62EE1047564F + 8154A105D81A9D6192D2036B66E09D4002A144DE064226579110354F2562296D + 106D003646DD268EAE990A89BCEB1E502995109086B70751F8A2E6F9B1B5533F + A71D60434426716CDD3488642AEA7C7B6CA6494AF7AE9E8EF25A1ED21FBC4653 + B3E483FB4AB91CC7D74F6798A05A3FC0BAE3E944C4FA1910B4A8E8D00D821C0B + 1EBE7A0BCE932A48E54ADD75B1588CC80DDFD00FB0F6681A11B971269AA55A80 + 9078D33CD09ECCF11E8657353C128AC0B3F26A446DF2A11F60CDE11B44D4661F + F0244A53F5E9158D172ADF36E35C7A09A2B77C4B3FC0EA43D788982DB3F04EAC + 050863DFA2CDF89F574CD31D87C4A523F6EFB3E9070838F03B111BF4573489FE + 3F1E6895D0D834C46DFD1BFD00ABF6A51271DBBE438350A17D6B276ED3667498 + FFD7BAE39D3137101F3C877E8015BF5E2612B6CF45BD40419BE1ED4968F435B0 + 7F9A473FC08F7B52085231EA9AB500BF24D1E7819065EF7920FA2A1277F8D20F + E0FFCF8B047BC7F724809C36C3DB939D51BFE344E87CFA0196FF7C9E60872E40 + 2D5F0BB0F7F41DDA8CDEBE64AAEE382C321527C3FCE807581A7E8E480C5DA803 + 3045A452290A0A0AF0F4C91354575783C7E351C5DEDE9E2AAEAEAE286F94E3F9 + A3FCDEE545E9025A0196EC3A4BB077FE0FE0C0D92CA31529E52DA8E196A0A1E2 + 05ACACACC1B4B185A51513E616163037B7804AA5A4023CB94C0AA9440C698B48 + C65013716AB1E41FA5A5D92647A66D007ED8799A60EF5A8C1A5EE73C9097CB01 + 3B3E1E661656E8E3D00F5F8EF4C2E02143E0C272842DD31A3636D690485A2096 + 929075F578C9E5A2ACA408FC778D100BF84215D4810F39E9E7BA0CB028348948 + DCB584049051E78793EFEAADAC896BAA9F17A2B1F239FA3ABAC0738C37980E2C + C8142A5898316061CE00F90706431BD8A9C9A2227F342BBE49C3DD919B5788E2 + FBD9686AA8814226DB5F927BF327526DA762F936000B779C20D8BB971AED81F3 + E7CE223323138EAC8F3167C10F18E13914D63DB4861B122509D1A220F0F0E9BF + 70F9EC1934D6BF814C2AD140049B0CE0B73D9160872FD3011CBBD0B1079AAA5E + A2AA8C03275777784D9F0B25F976993DCCDA6F84F121D0DCC9C349B7805AFD9D + FA2D0BDCE22CBCADAE8042295F529273F38C49000B82138884707FDD27D49108 + 0402046D5C87DE0EFDE1BB7839467E39144C4B33982A0917B3E06067819CCCEB + 1A08A14CA918F424FF5643A701E66F8B27E22900AD07A22EDD6BB75225F9E6C5 + 8DD5F09A320BBDFABBC156633CA303A51D34E9F3D517BA2BE7AF65C37BE2385C + 389384670F0B2112F0A24A3837D7990410B7DB5FEF3CA019E7D707AC80A3F3A7 + 08DC140437E78F606ED6B53929258D83EF7D26E0C1F32A5C3C198DEAAA5732BE + 54ED68CC3CF10140CC2E7FBCD5134AE471727026E924C64E9E093F3F5FD8589A + 77C9788DA466E4C1EFDBF178F34E8EE4A4443C2DCD27875DF1B2524EDAA94E03 + 44872DD71B8DC6461E03975B8EF9CB02307AC4E7E861C4886348AEDE2AC0DC19 + 63A9B5F89D7B79B87DF512784D75C9C59C9B8B3A0D10B973391A851D03840607 + 91E3B819566B3E1F5747729CEF3AC08DAC22CC9A329A9A1FCA5EFE810BEC48D4 + D7563E2ECE491BDE69800812A0490FC086C095B0EDD5179BB787A09FBD1DA9A0 + EB0019D9C598E13D8A9CE808BC2617FE8911FB515B55FE960460751AC05085D7 + 4557F1F1802118397936D5793545D387F5F6633D5ED2DCD1343AC16B38E44A35 + E585237BC2F1A6820B12C0E0DBE9F4EB1B35D1A7CEF99341FD370405C3AE674F + DD75CDA7644E8EA6663A2086CEEED64634866A430A82FA57A9B5A185E6BC5544 + 42218E1FDC679A078C9191136696B15CDD87056ED80896B37367AB1B94BADA5A + 441F3B6A5A1F30CA0313669EB3EFC75AE83BDF0F63C78DA51D20FF7E3E522E9C + 376D143246464CF0596A63639B34CAEB2B04921D9A6E8989494071619E69F380 + 26C161A882522E43D19518B05C0760C1F295D4C2457F03DA266C99967077B6D7 + 3BECD6D4D661FF81A3A6CFC4AD191A4314FB8F4423E36E3EA6CDF8066B7FF433 + EACD6A76AB25322506EA81381A9980C2827CD363A15600B501021EBF19F316AD + 444F7B27AC09F0C7F8D19E061BAA6A14404D2AD640B8B3FA7C0091959D8FD3C9 + 29A8ABA910CB150A7793A2D15600A5210252326EDFC39E8391E8EFE286D06DEB + F1270F37BDCF37F02564ACAFA2864CA94C85011484F65ED9332E0E46B0A9F580 + 13CB1566E656C1A9A70EED3719C0D8245F446C2252AF695764812B16C37B4CC7 + A31E5F2C235761E444454E561A8816B9129F3AF526639FFB38997C050D756F30 + D0DD0DE12141883B958282FCFCEB3937CFCFEE144067937C9A35714C421252AE + A4516BE2F1E3BCE03BFB6B7CE2E2F8C1B312998202682DB5F54DB89E761BA50F + CBA835B1C7C081488CFC95F48E02EFF842C4265DC2FD5C0E27373365A2D100A6 + 26F934CBCB3FCA7261CDB4D1EE4A780EC3D0211E70663981C9B486A7870BF842 + 319A05229457D6A0B4EC058A4B1E51BB1222214FECE23AC0F6F02F2170B0EF89 + 5E7636104B6578535B8FDD7BA35070EFFAC1EA8A975B8D02E84A928F4F76EC13 + A79391712B8BFC862DC9E1D50E96D6D6D49E906E5F882CF29636FB428932A532 + 7C90C717CB060F72DBB76AC93CD8F7B1A38C0ADB17433EAF46CE9D3412B4A143 + 08DA937C2A851C933CACC1C92FC1CB7F5742221240D1228125D3163DAC6D61D3 + CB01BDFABA807BF79AFDE3C7D9FCD67A137DFCAE8EF11A3B7BD1BC99641FB88C + 7E1FF5C1E8517F41CEFD225C4FBDD82144B74AF28D9FE69BEDE4EA3651211362 + F040777C36D883DA8AD407D1ED927CAE6E9FEDB362DA6CFBB3E7701260884188 + 6E99E4D30B71E512F8FFA9D74174DB249FB110DD3AC9670C44B74FF21982F82F + 0C5E37088D0210470000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_22_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008ED4944415478DA + CD990758545716C7FFCC2055055440644CC0967C9FC65856251010A3B140346E + 440D9AB5B0B11BDBDA2258C8AE893D2A1D41B1800A89C602480B30282002F60D + 4656507A87A94C7D7BDFE3134560186626DFC799EF7D7367DE7BE7DDDF3BF7DE + 73CE3D7A784BB684A4524757BA42AEA4A0ADA43F2A014F248154A644CEB3CACC + 6639352370DD1481D68ADF11BD8E00640AED01EE1756812F96BE8128A8C816E8 + 6176E8AA29B57F19C0E6E0DFA963ABA64022576AADB8A8A291745EDA06E26E41 + C563A140F059E8D6D93A836803B0292899FA79F55488652D00DB026F69A4F4F0 + DA99A8E789C01749DB4048A40A0251F6582414EB0CA20DC0C68024EAF8DA6910 + 49B5B780422E078F74BC2388ECFF963D3DB16EDA289D036CF04BA04EAC9F0E81 + 44C1FCDE199CA091D203AB67A0B0BC01F1392F50DB246A775E2E95E2E47733F4 + 3450AD1A60FDC978CAEFBB99E0352B74A11B14590BF29F5782FBE815C45279EB + FF42A110FE1B66E91E60DDF158CA7FA31B9AC42D00DEA19A59A023F9CA75349E + 973510280A4F0A4B11B0C95DF7006B8FDDA40236BBA34124D7549F4AA1AD505C + D984C8F85C046EF942F700AB8F5EA782B6CC46BDB005604F58A2CE3AFFC3B7D3 + 5BDBDE21F108FED71CDD03AC3AFC1B15BCF54BD40AFE1A0BBC169FE058846C9B + AB7B809507AF5021DBFF8E6ABEACE5AD9D4ED259A7F7787DDEDADE1D7413A13B + BED23DC0B73FFD429DDA390F553C99CE3ADE91F8045E47D8F71EBA07F8E78F31 + 14518C8AA61680FD11BAB380F7B2B72C10780DE1BBE6EB1EC0EB3F97A9B05D0B + 088054671DEF487607FC86D33E0B750FB0FC878B5498CFD7286F6C0138702EB9 + DB0A157229EACB5E8057530A31BF01B266213944B0B0B0600E0E8783FFD5C8F0 + E4FE1DB3C2BBF13C9D022CF58DA4C27D16B5027447F87C3E62A2A391989804B6 + BE018C4D4C6160684CDAFA60B3F5A150C899F8482A11432C1242DC2C90E829A9 + 10A550F4EFBCBC348D03BB36004BF65EA0C276BF01387C21452D2575257FA2F8 + 011746C62630EB678551E33F41DFFE0321079BE4160AC84878DE4B9F855E6C36 + 080A787595789A9789C6FA1A08798D7C05946BF2B9F1915A03FC63F7392A6CEF + 37286B50CF0274581015790171B1711860658B894E53E0ECEC8041D6FD41FA0B + 7DB61EE80F8B3C854EF228F2919364894E37CAABEA909191859C3B69A8AD2E83 + 4C2239949B11F73D51DBAD50B80DC0629F082A7CEF120220617E1F8BFA5DE5CD + 254FB250F7AA009636EFC161DA1C88956C18F56291CEB79F9F7AEFFCE531751C + 9A6514F21F1720FAFC39D45495402216D1103B340658B4EB3415B66FA95A16B8 + CD4D476870300672ECE1B57A1D46D8DB329DEFCED24227AECD24798AF8350505 + 3929A82C2D22C34DBA24373DEEBC46009E3BC3A930DF65AD00272E756C011999 + 888F122361696D0B27370F28598630366075F9D6DF96B993C7B4B643A353D0CF + 948DF4841B34045F22970D7B949958DD6D80AF779CA24EF97AB50EA1CEE4EC99 + 70646566E3D369EE58E03117A686DD7BF3EF4AD4F574B8BA38E2D2F9083CC9CF + 8680D71090CB8D5BDF6D8085DB43A95006A0C50201D1A9ED6EA0D7F9FCD808D8 + 0CB687A3DB4218F622CB24AB53959D5A63A6E39B8C3226968B05EE2EC879FA0A + 97CF04A2F4D57349A35869A58E9F680710B2CF4BA51FA0C7FEF9883370FCCC0D + 9E9EF36162C0D6E2DDB7C8955BB7E1F985334AEAA5888A08C763B2C48A44C265 + 79DCD8B3DD0608DAEB854A15A144B0FF0914141462E1B25598347E1459DBB58F + 08AE256661DE4C4726954D4EBD8DA46BD168A8AD88BAC78D5BDC6D80C03DCB55 + 46A33E3BB612E7C4C2EA4D5B61C7B1226BBCF6003753EE62F6D449CC86DAC367 + 2F7129CC1F55E5C50FEEA5C78EED3680FFEEE5A8E1770EB061CD0A98F61D80CD + 3BBD6169D19B7154DACAADB47B98E93A81383B0A2F48DE1CEE7708E5AF0A2B09 + 804DB701FC0840AD0A80A564DC0FB6FF10BBF6ED230E8B452630F1B42C688591 + 98910F1787B19012174D5BE1E71F7D5152540002D0A5DA76005DDDF032FF16AC + 6D06C379D63C7237AB55891E194AF4686A6983B14C47A38B7E001D82D057D05F + 749BFEE5347134735E4082C293470E6A660175E46F2E6E0F6D384346AFD9B011 + 36830669F1DE3B968AF272049E38AED91C504726B8B8455A58DA2C9ABFD0138E + 4E8E3A07C8BC9389984B17355B85D491F12EEE4B4D4C4C2326387C8A356442EB + 5A82824EE15EF66DCDFC803A32668CABB9BEB96925E7BDE186DBB76D82EDA02E + 87A9DA52565E8143878F6BEE89E902873A0F2ABC970C5E65312639B960CAF459 + 1D2B7E67069B18F5C2D041162AFDC671FF53C8CECAD43C167A5DA1E98AA2A1B1 + 09F316AD401F0B6BAC5DE54596C08F555E4FEB7B51D18866A902436CCC3B8448 + 49CBC4B9A81854941509A532D9108DA2D1D700EA94C8E29352B1FFB01F06DADA + C167FB068C1CF1BECAEB4B6BF88CA3124B14B06720DE9C7BF8A40047FCC2987C + C0DA860316DB70C795B3470F690CA06E91CF2F281CBF5E4F8015F10B6B577C03 + D74F3A5FF56A9AC44C6E4C43D0450EBB81660CC4AD94DB38137515D51525183A + C40EBEDE5B1172368684EB9937D2E32ECED10840DD221FED84024323107DF526 + 93133B3B3960FE979FE37D5BAB76D7360925241F5632879264BD6595D5888F4F + 42EEFDC74C4E3C7CE85084FBFF442C24437D231FC111D1B893C1E56624C44C56 + 1B40D3225F42722A8E9D0C811EDB00E6FD2C317EEC684C1CF71186DB0F86595F + 5398F531416D83004D7C015E149721EFD11FC8CDBBCFEC4A08F80D425B8EBDE9 + B1FDDEE867D1077D7B9B402896A0A4BC0AFB0E04202BF5C691D2A267DBD402D0 + A6C847A799657FE4A0E6E533181A1AC1D8A4370C8C8C983DA1D67D2172489BDB + EC0B854BE472DF61C33F5A366298DDC1954B3C6061DE9BE9D49E8341E47A25D2 + 9363096875A7103A2FF2098442703332919BFF0045C525A86BA807AF89873E7D + CD6062DA1B1603AC20619B95FF991E3BF2C183B4C6D7F74D76F7BCF68983E39C + C51E6E640EFC02CBFEE69834611CD2EFDCC58D2B973B85E851453EE7E9F3D3AC + 39769365123E460C1D820F460C67B6225541F4B8221FC7EE838386C626DB477E + 3C96007CD825448F2CF2A984B81A8DC6BAAA56881E5BE45317A24717F9D481E8 + F145BEAE20FE0F14223608393645470000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_23_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008D74944415478DA + CD99095813D716C7FF09C816ACA005377C228A4B5BAD4B51C0BA95BA3C29F6B5 + 8256ADEBB3EE5AF5A958C185BE2EEE15D931B4A0828AD63E5436158180010437 + 70814F5E5196B04A4256B2CE9B0C35CA034212E2F771BE6F323399B967EE6FCE + 9D7BCEB9878637647B443A716CCD74A808745912729E412657E14E490DBB5941 + CC0EDD3843D875AD6D85D61E80C20804998515E08BA56F1DA25D00B9B2EB00F7 + 4B6B2190C85E431457E70A69F08A5C3BA3E1AD016C0BBF451C5F3B035285AACB + 8ACBAA7964E765AD20F28AAB8B4442E127913BBC8C06D10A606BD84DE297751E + 90C85B007686A618A4F4C8863968E48B2110CB5A4148654A12A2AA482C92180D + A215C0B7213788131B3E8558D6750B28150AF0C98EB70791FBA4EA71E0C64F3F + 303AC096A0542270D32C08A54AEA7C7778AA414A0FAE9B8D520E17C977FE4443 + 93B8CD75854C86939B67D30C50AD1D60D3C9642268F31CF09B95C6D00D829C0B + EE3DAB01ABB01C129942F3BF482442F096BF1B1F60E3894422F8DBB96892B400 + F8451A6681F6E4CBE963F0AC8A4B421178545A8990AD9EC607D870FC1A11B2CD + 135CB1C2507D5A456D85E7354D884D2E40E8F6CF8C0FB0EED815226CBB171A45 + 2D00FB98D78DD6F9EF57CFD21CFB452423FC5FF38C0FB0F6C87F88F01D9FA341 + F8762CF04AFCC31311B1F31FC6075873E83211B1EB0BD409E42D6FEDD71B46EB + F4BE553335C77BC3AE21D2F74BE303ACFEF912716AF77CD4F2E546EB787BE21F + 7A05CCEFBC8D0FF0CF9F2E12A4625437B500FC186D3C0BF8AD78C302A10988DA + E3637C80553F5C20987B1690003283154A2412B0D939282C2C44454525B85C2E + B5D9DADA52DBA0410EF86F83024577B37B95E625F38D0AB0F2FB7304D3FF2B70 + 782D00074FDFD4599142D68CAAE202D4953D81B9B9052CAD183033B78489A929 + 4C4C4CA1542AA8F042269540221641D22C94D25444844A24FEF7DDBB1906C745 + AD009607C41251FE8B3500BA0A8BC542644404E8A6E6B0E96D87B11FB962E4A8 + 511838C00E0C0B4B301816A4F76D86A859824A4E3D4A9E3EC583825CF01AEB21 + E2F3044AA8D6DF6325C7761960D9FEB30473EF6B802367D3B436567BD5CAC7B9 + A87FFE18EFDA0FC458F719B0B4ED8766B912A6741A4C4D682077A0D15AC20A75 + 9EA4247FD4F986C78461C8CA66232F2B030D7555904BA5870BB292BE23D5EA15 + 49B60258BAF734C1DCFF35AAB8BA5920F6EC19A424A7C2BEFF20782F5E8A8F3E + 1C05F31E74F4A077FE7DCA49102919B6DF2D2A41FCE918D4D756402A11AB217C + 0D0658E21F4D44ED5F460248A9F3E371B73A6CD8505E82F2872CF4757082DBEC + F990936FD792EC7CBB0FA1B505F2F11847ED2564E81EFDFB2D3CBD7313359565 + 902B64CB0A3293CE1804B078CFAF04F3C0F24E2DC0E7F3B16DF346F4EADD0F0B + 96AE84CBD8F760694687A112197F0BB6567464A65E554308A40AF9B042F6F53A + BD0116ED8E2298012B340081E7DBB7C073F2CD8BEA2BE1E6E1859EFD1CC15077 + 9ED681D20E1E396FEA18CD3FB109999836D50DE7CF44E3D1BD5C08F9DC900256 + D226BD01BEF23D459C0A58A51942ED897A9EDFB86635EC070CC686AD3BE038A0 + 0F4C7418F3DA243E310B0B3CA7E0CEE3725CF82D1495E5CFA43C89CA5E173FD1 + EAC90B7745129114408B0542E2D3DB34508F7DCE935CB87EE2053BC791B07A35 + 74683A3EE42F99E9FABEE6F8724A36167D3605158D32C44547914E8E0DB158B4 + E22E2B31466F808803ABB4FA81F0E04014179762E18AB59834E103F430E97A44 + 90703D07F3E7B85399E0CDF46CDC488807B7A13A2E9F95B4446F80B0FDAB50A3 + 2594F0F7DD41CEE374AC530F1F077B729EEF3AC0B5B43C78794CA2FCC3C39217 + 38CF0C462DE7F983FCCCC4717A0384EE5BA9351ADDB2FE1B30DE7917DB76FBC1 + CED69A54D07580948C7CCC99EE423A3A027F92696754D06170CA4B6B4880FE7A + 0304EF5D897A41C700CB17F960D09091D873E000E96DE9D4074CA77736F36897 + EB59F730D5751C640A1565855F7E0A4045593148804ED5B6010822011A049D5B + 60E71E3F585B33DE50F43A6CA0CE69ED43A9172D89BF562ED5A185FA38EDF67D + 4C9ED832AD0A05029C3C7AC8700B74D6A0B2281DBD6DFBC0C3CB07F41E665A14 + EB67938F278EA6F6D51C0E42034F18F60DE8222E53E7C6DADAF55FECB37011DC + 27BBEBDBBC5361DF66E3E2F97386CD42BAC884A99ECBADAC18D12EAE1F633D39 + 9C8C2D6161A7909F9B6D981FD045C68E9D6E636AC3A871F89BB3F9AE9D5BC998 + BFD361AAB35471AA71F8C809C33DB1AEE232CD3394D1D366BDAB9B3BB66E329E + 154E049F426E0EDBF058485DE0D0A591BC598CFCAB4CD89149CC17DEDE183274 + D8FF696DFB5E18163DE0D4DFA643C79796C1C6E9B88BA8AE2A13C9E4722783A2 + D157151A5D2892AFA7E3872341E837D0117B7DB7E03DE7C15AEF7F5ECBA796D6 + 875010ADAF3D7C548CA3414C2A1FE8DBDF01741373DFCB31C70E1B0CA06B892C + 30340ABF5F49A132B20DDF7C8DE96EE33BBC97F35248795A358463BF5E1A8894 + B46CFC16F707EAAA2B30D4C911017E3B10117311396CF6D5CCA473F30C02D0B5 + C8A7CE894322A3117FF91A95134F99EC0A9FCF6762F040FB36F7BEE44BA050AA + A022335E994209A54480D84B8928B85F44E5C4CE4387222AF86748A47234F204 + 088F8EC7ED2C162B2BF5E234BD01F42DF2A5DC48C7F193E1808919B52A3161DC + 184C1C3F1ACE4E83D0AB2783DCAC50F3920FBE4084B21755C8C97F88478F9F50 + AB1242015734D06108E3F88F7EA483EC8977ACAD20924851C1A9C5818321C849 + BF7AB4B2AC64A74E005D29F2F1784D888A8943526A1A3986CD6069650D330B0B + 6A4D48B32E446EB2E656EB42515285226098F3E815C387391E5AB3CC1BB636D6 + 54A7F61D0A23EF5721F36622095AD72184D18B7C4AB90C1E232C9193770F2F2A + 2AC0E5F220207368EB9EEFC092610D05DDA249D058B35F525B1FF3E04106EF55 + BB699E8B12DC5CDDE72DF19E4B7E039760D7C706935CC623F3761EAE5EBED021 + 44B72AF24D99E593D1D7C1719A5C2AC0F0A14E1831DC190E0E0E5A21BA5D91CF + C171C421734BAB5DEF7F388E0418D92944B72CF26985F8231EBC97B51A886E5B + E4D315A25B17F97481E8F645BECE20FE0749144A08A03468F10000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Find_24_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008DE4944415478DA + CD99095453C71AC7FF216C022AA880146CC1AD9ED3A7CFE5B92155A96B716BAD + 58AD55D467DDF7076A0517FA5E5BF78AB21B0A5A4401B5B5B2888890200114D0 + 8A752928967D13424212B2DE37B95494120209F11CBE937BCEDC7B67BECCEF7E + 33F37D331F036FC8CE9054EAF8DAA9A0D03551B5BF90FA187905D5DC2639352B + 70936B631755B62B0C7500CAAE1210B99A5900A94C893B4F2BDF2A845A00B91E + 08D80F4AC01749DE3A845A0099A2EB00F70AAB20104B5F433CA9C86A64605EE8 + 3AD7DAB706B023F81675629D2B24726597151755F048E7A5AD20B29F54E40B1B + 1B3F0AF59CA737885600DB836E523FAC9F06B1AC19C02BF0BA4E4A8F6E9C8D3A + BE080291B4158444AA201065F922A1586F10AD00B605245327374E8748DA750B + 28E472F049C7D541643D2AFBDD6FD3F47FE81D60EBE924CA6FF34C344A14F4FD + 9EE0249D941E5A3F0B85E5F548BCF31CB50DA236EFE552294E6D99C5D041B566 + 80CDA712A9D35B6683DFA4D0876E50642DC82BA804E74131C45279CB73A15008 + FFAD1FEB1F60D3C978CA7F9B1B1AC4CD00DEA1BA59409D2C9C3A020565F5048A + C2C3C252046C9FA37F808D27E2A8801D73502F92EBAA4FA3A8ACF0A2B201E713 + 7310B873AEFE01D61FFF950ADA390F75C26680FDAC1B7AEBFC376B66B694BD43 + 1211FC9FF9FA075877F4172AD873016A1BDF8E055E894F703C42BC3ED13FC0DA + C357A8905D9FA25A206BFE6A3F26EBADD3FB57CF6829EF0B8A43E8EE85FA0758 + F3FD25EACC9ECF50C597E9ADE3EAC427F057B0BE5EA47F807F7F174B11C5A868 + 6806F836427B0B28E452D4953D07BFA61462413D644D427289606565853E7DAC + E0E0E080672F95C8CFE1F42ECC4EE4EB1560F5FFA229D6DEC50440AAB5228140 + 80E8E8182425258369688C1E66E63036E941CA8660320DA150C869EF2C958821 + 1609216E6A94309454885228FA6F6E6E9ACE61452B8055DF5CA0583E4B50CE6B + 063874EE66A794BC2CF9032FEE7360DAC30CBDFBDA60F81867F4EA6B0B199824 + B25540468243234303183199308202FCDA2A3CCCCD00AFAE06423E4FA0807243 + 1E27F17C97013C7CCF53613E5FB40074242AA714191989B8B878F4B3B1C7F8C9 + AE98EC3211F6367D60C864C0D08001F20383C1A0EBAAB619AABD869C84EB65D5 + 75E0A473919D9E86DAEA32C824922339E9095F13B55A0562AD00561C88A458FB + 5E031C8D4CD1D8B8E461265E163F81B5DDBB98386301440A03981A19D01D6FF3 + 477F7BB478C6183491A03137FF0F449F8B404D55092462910A62B7CE00CBF79D + A35807BE44597DC716E0B0D908090A427F0727ACD9B005439DDEA13BCFD0726D + 111388F0CBB7F0383B1995A54564B84957E4B0137ED20960994F041576600501 + 90D0F727A26EA96D242313F1C18DF3B0B6B5878B9B3B140664D21A1B74F8D5DF + 9485AE235BCAA1B1A9B03465809D744D052190C865831F706F546B0DF0C5DE1F + 29D6418F0E2D1011C64206370B93A7CFC562F705B030616AF7D9FF2651D73864 + EE4CC0C59F22F0302F0B8DFCFA801C4EC266AD0196EE09A358BE2B5B00FC2EB6 + B5806A9DCF8B8F80DD002738BB2D818911134C837655B66B0DB749AFF73331F1 + B7E1EEE6823BBF17233A3C10A5C505129E5869D3193FD14AED92DD67A833BEAB + 5B86903A49E7B0712E3C1C93A6B961E9127798193335F5BBA357B45C4ECCC092 + B92E28A993222A220CF9B95C8844C295B99CF8B35A017CBE2B940AA5019A2D10 + 1093DAA6C1B3BBC9508A05F8E8D3E53035EF49D6768686B1DE7ED7A78D1BD652 + BE7A23139FCD76A6375237536F23F96A0CEA6B2BA2EE721296690D107270B546 + 3FE0B3DB93382703ACDFEE0947071BB2CE773DA4894BC9C6BC69E3E9E39CDF9E + FE898B2C7F5495BFB87F971D3F4A6B80A003AB51A92194D8BAE12B98F7EA871D + 7BBC616D654114741DE07ADA5DCC9E3A96383A0ACFC9AE2DECF4119417175612 + 003BAD0102F7AFD2188D7A2C75C700A761D87BF0207158066402136F6BD0F138 + D72437D2F33079C2284849C8A1B2C20FDFF9A2A4E8090840876ADB00F8EF5B85 + 1A41FB00AF2CE0B5D71B1616E66F287A1536FC75CF500FA53AF3A3FE3AF85385 + 16AA724AC63D4C1A37827ED64882C253C70EEB6E81D304A05603C0AB39B0CDD3 + 0BB636D65DF8EEAF252DEB015CC60DA7CB15E5E508F43BA9FB1CE8A84175612E + 8C18724CFBF813F4EE67AB59619B97EDF808724DFAD70774999BC145ECC50BBA + AD429D913193E778989999478C9DE0820D6438E95B8282CEE06ED66DDDFC4067 + 64E4C8A9968696E6950EEF0E31D9E5B51DF6EF74384C3B2D65E5153872F4A4EE + 9EB8B33276CA9C40F39E961B264C74C6F6CDFAB3C249FF33C8CAE4EA1E0B7556 + 4638CFB43131342A24A174CFE54B1761BAEBA42E773E258D8B7351B1A8282B12 + 4A65B2813A45A3AA044767FFB0BAE8119EE5DC447F7B4778ACF420A1B5ADC6AF + 616E6A0C273B4BA8D9EBE0B7874F70EC348BDE0FD8DA39C08069B2FBCAD9E347 + 7402D026C9E71718864B57AFC3C66E00367EF5255C278E565B4FA5AFA4864F27 + 391CFBF76E05713DE536C2A37E46754509060D7484AFB72742CEC62293CBBDC6 + 4EB8305F2780CEA6C854FB5CFF9070445F89A3F7C41F92987EF1FC1978CFDEA6 + 4DDDCA7A219464B72B9129F09E6D4FBC282E47646C3C72EEE5D37BE221830621 + CCFF7B882532D4F104088E8841463A87939E143B456B006D937CD7935371DC2F + 18601AC3B28F35C68C1A8171A38763E8C001E8DDCB1CBD2CCC5056D38006BE10 + 05CFFE44EEFD7C3C7AFC943E956814D40BED1D9CCC4F7CEB8D3E563DE9BA42B1 + 0425E5553878280099A9D78E95163DF5D20A4097245F3DAF01AC88F348484A21 + 6358752E6401635353FA4CA8E55C885CD2A656E7426112B9DC77F090E12B870E + 763CBC76C52258595AD09DDA7F3888D457827D339E8056B70BA1F7245FA35088 + 340E176C6E0E4A4B4BC1E3F1E8F8C6DCA217940CC32689A82141215724C8F9C2 + CBF7EFA7F15EB59B3267E9D589139CE72F5BE446E6C02558F7B5C4F8B1A3C1CE + C8C6B52BD1ED4274AB24DF8733DDD36C1D1CA7C824020C1D3410EF0F1D421F45 + 6A82E876493E07C7F70F9BF430DBF5C13F471180611D4274CB249F46889F63C0 + 7B59D502D16D937C9D85E8D649BECE4074FB245F4710FF07B82F6208B5BF0F78 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_25_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008D44944415478DA + CD99075814D716C7FF4B5BAA804FC0824F2CA87CB1A122223168ACD1A73106A3 + C6D87B2F0FD48805F25E127B503A2E11BB4234CFA7140B01165956411410850F + 9E285D4016B6B205E6CDCE4694B06C63FD3ECEF7CDCE9D9DB967EEEF9E3BF79C + 7B0F0D1FC8AE8864027A131AAB4946CC08DD3C99AF3F9D4ADEF2578013EB26A1 + B314F2FA57925F20BBA8E6A343280568D1831D6E661441226DC1A3C2EA8F0AA1 + 1440A60782D4DC327085E28F0EA11440DADC798027C56FC01349DE431454B1F9 + 34CC895C3FB9EEA301EC0CFF8338B97E32C4B2964E2B2EA96A201B2F6903F1B0 + A02A4FC0E77F1EE933476F106D007684DD277ED9300522A902C037345127A5C7 + 36CD443D57089E50D206422C6926212AF2840291DE20DA006C0FB947046E9A0A + A1A4F3166896C9C0251BAE0C82FDBC22FFD4E6A9C3F40EB02DE80E716ACB74F0 + C5CDD4F5DEF03B3A293DBC61068A2B394878F412758DC276F76512094E6F9D41 + D341B56A802DA71388A0AD33C16D6AD6876E10E45C905D540D666E29441259EB + FF028100C1DBBED03FC0E6C0382278FB2C348A14007E91BA594099CC9F340245 + 151C128AC0B3E27284EC98AD7F804D276F13213B67832394E9AA4FA5C8ADF0AA + BA119712B210BAEB1FFA07D870E2BF44D8AE39A81728000E32EEEAADF13FAC99 + DE5AF68B4840F83FE7EA1F60FDB1FF10E13E5FA28EFF712CF04EF687C721C277 + 9EFE01D61DB94144ECFE0A353CA9A2D77EBDA7B7461F5C35ADB57C20EC3622F7 + CCD73FC09A9F7F23CEECFD1A6FB8529D158A4422A4A767202737076565E5A8AF + E780C3E1C0D6D616DDBBDBA26F5F47FCEF6D0B723399D6C50F13B87A0558FD53 + 2CC1F8DE1B558D0A801FA335B7804CD2848A822CD4943C079D6E0A33730B98D0 + CD606864044343233437CB28E726118B20120A206AE28B692D44448B40F8AFC7 + 8F5374F6CA6D0056FDFB1AC1D8F70D0920D14A496A2A13E1E1113030A2C3A6BB + 1D5CC779C0C5C5057D7ADBC1C2CC1496E4C1173541401E1595B578F1E2059E3C + CA40437D2D04DC065E335A366633132E751A60E50F5708C6FE45A86C50001C3E + 7F5F6565F99C5E9ECF46EDAB7CF4B0EF0357CFCF616AE3802669338C0C683032 + A4813C81465338357994DE4CFEC8A3DD696ECE60325960A725A3AEA60252B1F8 + 68565AFCF7A45AADE2983600CB032E1151FBBF6D055027172E5C407C7C22EC7B + F5C58225CB306EA40B4C8D0DA886AB131909D144068D8FF30A71E57C346AABCB + 201609E5107B74065876E822C138F01EE0D8C5A40E2BD69516A234870907C701 + F098F935E401AC19D978A52FA1B5075A387534759647BE67AF27E339FB2EAACB + 4B2095499665A5C65FD00960E981F304E3D077A8E0A8B60097DB886D9B37C3BA + 7B4F2C5ABE1A6EA35C3A6CBC266F8E8C4981B52981D43BB7E4103CB14C3A2897 + 75B7466B8025FBA389A843CB480031757DF2F21F4A2BBD227B5E505B0E8F2973 + 60D5D3091626066D34A91E408ABBF3BC46B4FE73F1561A3EF374C7D50BD17896 + CD069FCB09C962C66FD11AE0DB7DBF120CFFE52A2D209FE737AC590DFBDEFDB0 + 65970F9C7AF780A1969DFF5789894B87F7179E78945F8A6B6743515E5A246E10 + B5D86BE227DA002CDE1B45300256B4029CBADADE02F2B15FF99C8DF164EFDBF5 + 1B0A731303B5DDAEECD64C8F4F5ACBD713595838DB1365F5125C8E8E42DE6316 + 8442C18AC7CCB8735A012CDA73863813B0AA75082993D0A053282828C6A295EB + E13E66188C359871D4C9CDBB6CCC9FE141AD43EE273FC0BD9B31E0D4555DCE64 + C62FD10A60E1EE482292025058202426B95D85BCA46BB0B6EA06AF79DFC1944E + 878141478A55834D1A3BA4B57C3BE921E64C71A7FC434EE16B5C6504E34DE5AB + A799A971AE5A0344F8AF52E907B66D5C0B8B6E3DB073AF1FEC6C2DD536541349 + 4CC9C4CC496EA4A323F0925CF444051D456569713509D04B6B80B043AB50AD22 + 9458BE7801FAF61F8A7DFEFEA4B735203F601A6585CE60DC4DCBC667E35D2191 + B55056F8E5A700949514800450ABB61D40E8C1952AA3D17716F0DDE7074B4B8B + 0F14BD0F1BA86B9A7228F99619F1E7BE993CB4909793D29FC0739C625AE5F378 + 387DFC88EE16083EB012B5BC8E01F6EFF1217BC900DB7D7CE1606FD7897E7F2F + 29EC5C7C3A6E3855AEAAAC44E8A940DDBF812012A04E05407830390B151663E9 + CAB518337A843AFD1AC983CC7C788E554CABAC741662AF5ED17D16525781575B + 065E552146BB4FC428B7092AB4A9FDFBCF9B8ABB9E635CA87358D81964B21FE8 + E607349151A326D918D958543BFEDD99BEDB770719F3AB1DA61A4B4565158E1E + 0BD4DD136B2A6E5EB3432DAC6C368EF798801D5BD6EA0D2030F80CD8192CDD63 + 214D65C484E9F67423E3E29E8EFDAD962EF6C6D4C99E9D6E7C520A0BE72FC7A2 + AAA24420914A07E8148D6A2363BD662D3536A69FEFD9C7093E5BD760E4B0A13A + 373EE759018E0731A8F580432F471818D2F7DC3877E2A8D600DA26F95E66A7A0 + B6245FB122F3FE0A43860E69F7CCBBC58C39DD184E3DAD295FF1A124263DC0D9 + CBBFA3A6AA0C03073821C0CF0711E76291C162DD4A8DBF32576B006D927CF235 + 7150F8595CBB719B5A134FFC743CBEF9721AFAF5B66FF76CC55B3E95E4E8E760 + 4542D0F0F275052EC6C621EB491EB526761E381051C13F432496A2BE8187F0E8 + 18A4A73199697762BDB406D0364596702F19C703C30043136A57628CEB08B88F + 1E0EE7017D61DDCD12D696E6785D5D0F4E230F2525A57892F30CF90545D4AE04 + 9FC711F471EC6F71F2473F74B7B54237F25981488CB2CA37F03F1C828CE45BC7 + CB4B0A7DB502D025C9C769680423FA12E21293C8316C0233734B98989A527B42 + ADFB42E421696AB32F142596C90206390F5F317890D39175CBBC616B634935EA + E09130F2F916A4DE8F23416B3A84D07B928F2F102085C9C2BD543639AF5782DB + D808019F07231333A94CDA54480EBB3C728C26C9B882EB4F9FA634BCABE7357B + F14D8FF113E62EF19E457E03BFC1EE6F3670771B8DD4F487B875E35A87105D2A + C93771FA82140747272FA99887C1030760C86067383A3AAA84E872493E47A721 + 47E866E6BB3F19E94A020C550BD125937C2A217E8F41C3DB37AD105D36C9A729 + 44974EF26902D1E5937CEA20FE0FED166D088ED822EA0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Find_26_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008C14944415478DA + D5990754935916C7FF094D8A051D6154D8C5EE9E199DC56E44B1A20BD6599851 + 5CB1ACBDEB62193BB33B33F601E9121451A9AE332E5244111221A0282AE28A0B + 6BA30410015349E39B97304633402021EC61EF39DFC9FBCABB79BF77DFBBEFBE + 7769F83F17DAC7373B42D32903AAE6D4CBA959411BA70AFEA70027D74C417B29 + 94F5A3D39F22AFA8AAC3219A056830801DAE6617412A6BC0DD67151D0AD12C80 + DC0004ACFC12F044920E87681640A6683FC083E24AF0C5D20F1085DC1C010D73 + CFAC9D5ADD6100DB436E51A7D64E8544DED06EC52FB875A4F1520D883B85DCC7 + 428160DA19EFB90683D000D8167C93FA71DD7488658D003B8352F4527A7CC36C + D4F044E08BA41A1012A98240943D1609C50683D000D81A7883F2DD30032269FB + 2DA090CBC1230D6F0E22E7DF654FFC36CEF8DCE0005BFCAF537E9B5C20902854 + F77B42AEEBA5F4C8BA59282EAF45F2DDE7A87E276AF25E2E95E2F4E659343D54 + 6B07D8743A99F2DF3C1BBC7A8521748322BE20AFA802ECFCD7104BE5EAE742A1 + 10015BFE6478808DBE8954C05657BC133702EC3BA39F059A932FA78C4051592D + 81A250505C8AC06D6E8607D870EA1A15B8DD0DB522B9BEFAB48AD20A2F2BDEE1 + 52F23D04ED986378807527FF4505EF988B1A6123C04166AAC11AFFED2A177579 + 5F683242FE36CFF0006B8FFF4C8578CF47B5A0632CF05EF687242274E702C303 + AC397A850ADDB510557C5963AF9DBDA1B342855C8A9AB2E7E0BD2985985F0B59 + BD905C22585B5BA3674F6BD8DBDBE1790D85477759DD8BEF24F30C0AB0EA87CB + 54D89E3FA39227D359118FC7474C6C1C52525261646C0A730B4B989A9993B231 + 8C8C8CA150C8556B83542286582484B85E20A13550A10D42D1DFEFDFCFD07B51 + D300F8EBF7F114F31B7770DF35027C17D1360BBC2DF90F5E3E64A38BB905BAF7 + B2C1F0D10CF4E8650B296504A9420119094D4C8CE930353282294D81BAB79528 + C8CD425DCD1B0879757C051AD6E7B1932FB51B60E53F6229E6DEAF0880B44D95 + 952E31F2C245242424E2139B7E9830792A9C2733D0D7C61A26741AE9791AC80F + 68349AEA5B6590AB2081A28C14CAAA6AC16671907D3B1DD55565904924C7EEDD + 4EFA86A8D5290CD00058F16D34C5DCBF08E5758D0047226F6AAD5C52908DB7AF + 0BD1BBEFEFC098391F42391D5D4CE830A6379D9FB4DF3C5AE4321AF524E6BA9F + FF0CD19111785351028958A484D8AD37C0329F4B54F87E4F35803661B158080A + 0CC2A776FDB166E3660CEDDF57D578DD5C0B8D048E0A9CBD928E279C545494BE + 20C34DEA758F9574412F00AF431729E6810F00C72FA6355B494626627EEA25F4 + B6ED0727370F286864D29AD25BEDF58FC5639AA3BA1C7A99856EA60D605D4F50 + 42F02572D9A07C4E6A95CE004B0F4452CC437F4159AD760B9C65329199958DC9 + 33E760F1570B606946477B242A21134E8CB188B9108182BC1C0878B581F7D849 + 9B740658B23F820A3FE4450024AAFB5351B79A5450FAF9BCC408F4B1EF0F86EB + 22989918C188DEA2CA16AD31C7E943341D9BCC81FB2C06EE3E798DD87341287D + 5D24A91337D8B4659DD050EBB9F72CC53CBC4CAB05D8AC0C449C3D07A7E96EF0 + F4F48085A9FEBDFFFECF2FA764E36B57064A6AA4888A08C7E3FB1C8844C2E5F7 + D989E7750258BC279C62FA2C5703F8C534B5C07F736FA041CCC7F4854B6166D9 + 1526C455B63CD65B9E0433C7FD415DFEF9460EBE7419AF0AE36FA667E2C6D538 + D45673A372D9494B740258B43B8C0AF359A91E42CDC9DE5DDE64D34FC7FAEDDE + 70E86743FC7CFB439A6B69773067FA38D561C2A367AF10C30C4065F9CB87B9AC + 44C7D6EA6AFCFBD7BBCE506754008D16088C4B6F52E1415204F13E7DE1BCC00B + E666C64DFB580B0FEDA397931C07ABCB2919B9983D650C59E8283C277B8670FF + 63287F5D5C4100FAE80C107A78A5D67560D9620FD8F71F86BD870F93058B4E26 + 30596DE9D0D1FF6B4AEAED3C4C1EEF082909399456F8F17B1F94BC2804016855 + 6D1380E0432B51A12594D8B27E352CBB7D829D7BF7C1CACA52A3771BC3865FEF + 69CD43294F9CA85F8F9D94A185B29C96F50013C78E503D13F0F9387DE2A8FE16 + 083AB8426B34BA7F77E31CD8EABD13B636BDDBD1EF1F2423271F4E6387ABCADC + F27204F9F9EA3F07020EACC01B7ECB0021017E287C568CA52B5663D4C8110601 + C8CC7D8289A33F539539591CC4C744EBE7859400FE04A05A0B40269B850B11E7 + 3069DA2C2CF3F234084076DE534C1CD5E8568383C3909B93A9DF3AA00468AD42 + 835C86570FAEA3AFFD00CC775F44362D5DA0DD93B66D65668C1C86B2722E8E1D + F7D57F256EAB8C71760BB2ECDA63FDF8090C6CDBB45A1F15CD8A6F401872B239 + FAC7426D95110C171B33639362124A775DBAD81D33A64E6C77E3D33238888C8A + 07B7EC85502A930DD02B1AD545463BBB2E3531318BFCB49F03BC37AFC2179F0F + D3BBF18F0A0A71C29FA9DA0FD8F6B103DDC86CF795F3278F7528800A6292EB49 + 33738B1D367DECB1C27321664F77D259474A5A26CE45FD842A6E09060E7080CF + 3E6F849E8F47368793C04A8A9EA71380AE493EE53E57B999AF287EA4DA138F1A + F9474C9BE6AC3A3EF9AD589899E0F7B65DD5B1D3F35765B8189F887B0F1EABF6 + C483070E4478C00F104B64A8A9E32324220E59B7D9ECDBD7E39D7502D027C997 + 9C9A8EE3BEC18091297AF4EC8D518E23306EE4700C1E608FEEDDACD0DDCA02C5 + A5D5E0F305282F2DC19DBC023C292C529D4A08F8B5C27E76FD2D4F7DB70F3DAD + BBA21BF9562896A0A4BC12878F04223B3DE144E98B673B7502D02745565BF70E + 61E72EE25A4A1A19C3CA73212B9876E9A23A13529F0B914B5AAF712E142E91CB + 7D060D1EBE7CC82087A36BBCDC61DDC34AD5A8834783C9F7649B7933918056B5 + 0861F0249F4028443A8B83A45B1C5470B9E0F3781009F9CA5795E4E212CD4F89 + 89D3E43CE13F1F3ECCA87B5FCFD96DF1D509E319F396B8BB92397019BD7BF5C0 + B83123C1CABA83842BB12D4274AA24DF24178F0C5B3B076799848F21030760E8 + 90C1B0B3B3D30AD1E9927C760E438F12CFB6EBB32F1C09C0B056213A65924F2B + C44F71CAA3493544A74DF2B515A25327F9DA02D1E9937CAD41FC0234D16208F4 + C185190000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_27_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008B94944415478DA + D5990758545716C7FF431B9A8D55B0C027764C2CAB62013488BA62309AD53559 + C560616DB126064BEC643789D822D211147BC1D51803D810668401111045DAC2 + 2786DE9601A6318DB7EFBD49C6E5038699C7B04BCEF701F7CD70CF3DBF77EE3D + E7DC7B59F89D0BEBFF6D805E01768625107A54CD6B5610EEC15BDC84FF538093 + 1B66A3AB1454FF6B0979C82CACE9768876015AF4E087BB298590C95B905650D5 + AD10ED0228F440C079558A26B1B4DB21DA05902BBB0EF0A2A81A0289EC1D447E + 65AA908545E11BDDEABA0DE0CBD027C4A98D6E902A5ABAACB8B8B281345ED60A + E2597E65B648289C13EEB3486F10AD00BE08794CFCB0692E247215C0AEE0FB8C + 941EDFBC00F54D6208C4B256105299928428CF168B247A836805B023E811717A + F33C88655DF78052A1401369787B10A9B9E539FE5BE68DD33BC0F6800784FFD6 + F9104A95F4F3DED0078C941EDDE48EA20A3EE2D2DEA0AE51DCE67B854C8633DB + DCF592445B29D97A268E08D8B6004DCD4A7DE80641C682CCC22A705F95402253 + A83F17894408DCFEA1FE01B69C8E21027778A051A202D81FCECC03EDC9D2D913 + 5058CE27A108BC2E2A43D0170BF50FB0F9D4CF44D0970BC1172B98EAD3289417 + DE5635E24A5C3A82777EA47F804D277F2242762E42BD48057028E2A1DE8CFF66 + DD7C757B7F581C42BF5AAC7F808DC77F24427D3E469D90B907C41209929379C8 + CA7A85D2D252D4D7F351CFE7C3AA5F3F5859F5839D9D1DDEF081AC67097D8A9E + C535E9156083DF6D226CF712D408E4AAB776EE91D68A14B26694E7A7A3A63817 + 6CB629CCCC2D60C23683A191110C0D8DA0542AE8D02A934A20118B2069164A59 + 2D44588B48FCF78C8C44C639A115C0BAEF6F1167F7FE05D54D729D942472B808 + 090905CB908DBE56033065BA33C6BE3716B68306C0C2DC1416666C88245288C4 + CD28ABA8455E6E1E32D27868A8AF85A8A941A044CBE799DCB82B5D06F8DB77D1 + 44C4D7CB50D9A802F8364AB307A8885296938ADAB739E86F3D04935DE6C2B4AF + 0D99C915303260C1C89005F20F582C5548A56A4425F98BAAB5DCA78D02879B82 + 14EE13D4D594432E951E4B7F1AFB35A956A72CDA0AC0FB1F3788887D9F920032 + AD3A5FB878093131F7613DC80ECBBDD660EAC431303536A08DEF4CA88AB7992C + 5932B2FF852B51E7515B550AA9444C41EC610CB0F69B6B44C481E5A86850011C + BDF8B8C38E7525052879C9858DDD7038B92F839C34C88C34BEDD41586D813CE7 + 4F26373E2C32B42A71EE360739BCFBA82A2B865C215B95CE89BDC40860B5EF15 + 22F280A71AA023696C6CC496CD9BD1C76A203CD7ACC3B43F3AC0CCC4004C25EC + 1617BD8C95E03CB8474108A40AF9C857BC87353A03AC3A7C998838F80EE0F8E5 + F8763BBD25DFBCA8B60CCEF316C3D266282C28E3591D28ED60C8A56E13D49F5C + B9C7838B9323AE5F8AC2EBCC54089BF841E9DCD8AD3A03781DBC48441CFE0CE5 + FC8E3D2021E3FC7A6F6F580F1E8AED5FED86FD602B186A31E735C9CDD8142C75 + 9F81B49C12DC381F8CB292426983A4C55A9B3CD16AE49507A288C8C3AB480029 + FD7CEAEA93361DA8B95F919B0AA7B98BD07FA803CC7F9B3A2C2D07F9553C9CDF + 57B76F3D48C5A71F3AA1B45E86AB5191C8CEE0412C16ADC9E0C65CD009C073DF + 3922E2C86A8D1E083AE38FDCBC42ACF0DE841953C6C1D8B0EB15C18F8F52B1E4 + 4F33E82AF87142121EDDBD097E5DE5D5E7DCD8953A01ACD81B4944F8AE5103F8 + 5F6FEB81ECF81BE8D3AB375CFFEC0553B6090C0C3A52AC196CEED431EAF64FF1 + CFF1D19CA9747E7859F00BAE4704A2BAE26DD6734ECC249D0096EF394B9CF5F5 + 564FA1F664EBA6F5B0E8DD1F3BF71E80B595451B43991C07C425A66381AB2399 + E808BC214BEEC88063A82829AA220106E904F0D7DDE144380DA0F240D0CD8436 + 1DD2EE04C36E9803662FF122B32C8B5EC0D41A3630D07A185A5C268E50B71F3E + CDC407332641A668A1BDF0C377BE282DCE0709D0E9FC6C031076C45B631ED8FE + B9CA03BBF6ED87A5A5C57F297A5736D0CFACF6172FE521E2573751A505D58E4F + 7E019769AAB02A140870E6841F730F841CF646958652E2C01E1FF22D196087CF + 2ED8580FE84CBF569298FA0A33A78DA7DB95151508F63FCD6C0D5000C187D66A + AC464303FD915F5004AFB5EB3165F284CEF46B2549CF73E0E2A80AAB3C722F11 + 7DFD1AB3284401041E5C8B5A41C700495C0E2E91C5D7AC39EE58BDCA532F0029 + 9979709932966E87849CC5F3D42466798002082001EA340088C5626C27231195 + 8977EDF6C140EBFE5D06487B5900E7C90E28AFA8C4B1E3A79967620A409B01EB + 8A5F42296980E3741738CD9CD5BE62966E09CE79D2689C0E3C8BD4141EF35A48 + 5B99E03CDF9A6D645C34D076582FAF15CB30CFCD85899A56129FC8C3C5ABD1A8 + 2C2F16C9E4F2E18CAA515DC4D1D5C3CBD8987D71E0107BF86C5B8789E31C181B + FFF2753E4E0444D0FB019B41B6303064EFB97DE1E4B16E05A02166799C649B99 + EFA476646B3D9760C1DC993AEBB81F9F84F357EFA0A6B2142386DBC377BF0FC2 + 2E442385C7BBC789BDB6B85B01483198FAC1423F2313131F6A4FEC38693C3EFB + 6421860F1DD269C737BF94E372740CD25F64D37BE25123462032F07B48A472D4 + 3708101A7513C94FB9DCA70FA25DB506607AC9471DA514A53F86A9A9397D2AF1 + DE58074C18371676768361666E0E33533608A502269023B7E00D9E65BE464E7E + 217D2A2114F045436C87599CFA763FACFAF5426F4B73FA04A3B4A21A478E0621 + 25E1DE89B2E2825D5A0330BDE4E3373422FCDC65FC7C3F9E9CC326A4E1963031 + 35A5CF84D4E742E48FACB9D5B950A454A1F01D396AFC9AD123EDFD36AC5A867E + 7D2D69A30EF98590FFDF02CEE31812B4A64308BD5FF209852224709371E76112 + 6AABABC0AFAF27F7E9CDC604884AB25EAA2655E7916F285ED124FA67565662C3 + 6FFD5C17AEB8EB34C379F1CA651EE41AB885017FE88BE953278393FC0CF76EDF + E810A2475DF2CD9AFF49A28DADBDAB5C2AC0E811C33166F428D8DADA6A84E871 + 977CB6F663FCC8C8B6FBFD89934800874E217AE4259F46883B37D1F0EF6A3544 + 8FBDE4D316A2475FF26903D1E32FF93A83F80F0E1C5D0895D634E70000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Find_28_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008B24944415478DA + ED990758545716C7FF3320CD8A512CA041ACBB96ACDD8528B6882BEA1A5712C5 + 88651375AD890B6A6225BB49C4160B456440B02BC6C46581A028CC4893A60246 + 080415A48A0C4E65EADBFB1E9F13676106A6B0CB7EDF9EEF7BF3DD37EFDDF3EE + EF9E7BCF39F75E16FEC785F5DF6EC0FF01DEBCD9169A449951755AA392F208DE + 3843F41F0538B2763A4CA5A0EB5F4A7A8CDCE2DA76876811406D063BDC482F86 + 5CA146665175BB42B408A034030137AF1C0289ACDD215A0450A84C07B85F5203 + A154FE2B44615586888505A7D7CDA86B3780CF4EDDA18EAE9B0199526DB2E227 + 550DA4F1722D887B8555F9629168E669DF056683D002F8342491FA76FD2C4815 + 4D007EC13F1AA5F4D086B9A817482094C8B52064721581A8C89788A56683D002 + D81A748B3AB661362472D32DA0522A21200D6F0922E3A78A47C737CE1E657680 + 2D2713A8E39BE640245331F73B4F2518A5F4C07A0F9454F2119F598ABA579266 + CF9572394E6CF6304B10D552B2E9443C7572F35C081A55E6D00D8AF882DCE26A + F0F2CA20952B35FF8BC562046EF983F901361E8BA502B7CEC32B6913C0AED3C6 + 59A025593C7D0C8A2BF8048A4241C973047DEA697E800D47FF49057DE609BE44 + 69AC3EBD425BE169F52B5C88CF46F0B6F9E607587FE41F54C8B605A8173701EC + E5DC3458A14A29477D4529042F9E432AE443D1282697043D7BDAA3A7BD3D060E + 1C805FF82C3CC8B8D3BDE45EBCC0AC00EB0EFD409DF2FD23EA44865B402010E2 + D2E52B888BBF090B4B2BD8DA758695B52D295BC2C2C2122A9592F14C72991452 + 8918D246918CA5A642D562C9DF7272928D76A95A006B03AE53A1DBDF47AD50C1 + DC7F1971AB4D4A5E96FF8CA70F78B0B1B543F7B71C3066822BBAF7EA0B39C586 + 42A9829C04462B4B363A595AC08AA5C6ABBA6AE467A5A2A1FE05C48206A10AEA + BFE4F2E22F980CF0F137D7A8B09D7F428D40D1A6CAF4848C8A3A871B31B1E8E5 + E008D7693331DDDD158E7DEC61C96631178B7C814D7ED4E45DDA2BD1799692A4 + 2A15B5F548E2A6239D770775B51550C86407B3EFC67D4ED41A1484B400FEFC75 + 34C5F97C09AA5E35017C15A9DF02E505E978595688DEFD07C26DCE2288142CD8 + 7462330D6FF6A17FFB6BF9DC09685450C8CEFB19172223F0A2BA1C32A98486D8 + 6134C09ABF5FA1385F7C4000E4AD564C4EE6223030187D9D0661FDE62D18EEDC + 0FB6A4F186ADF158C433A9107E9D8782D478543F7F42869CDC279B1B77CE2880 + D55F5EA238BB97A2B2A109E0C0D9C4162B29C844CCBB7901BDFB3862EA7C2F28 + 4126AD15BBD55E7F533E9C3D56530EBD76175D2C95E026C4D01042995231242F + ED66ADC1002BFD2F50E1BBBD3500BA841316065E4A3ADC3D16C0DB6B113A5BB3 + 4D5A5C9F8F4D83DBE4F1B87C2E1205B9191009F841D9BCB84D0603F8EC3B4F71 + F6FC0A70E8FCED6615683F9F1B1B897E0306C1CD7329F12E16B060EB54A9D31A + 0BA78DD694AFC46760F17B9391F9A80C57CE04E37959B1AC41AA76684B9CD052 + BB62CF598AB3EF2354F0755B809B9C8C88F0084C9D3D1FCBBDBD60D7C2D03154 + BE4BC880D7DC2928AF97E3626438F273D220918857E5F062A30C0258BE3B920A + DFE7430064CCFDD18B779A55F825EB16D45221662D5E016BBBAEE864C1D233D6 + 750F2C8F29BFD1947F48CCC4A2D993982432312905B76E5C05BFAEEA62162F6E + B94100DE5F44509CFD2BF55A60A7DF5F49606263C3363F0C727400DB740320E6 + 76163C674C6496B20F8B9EE132271035954F1F647163C7B656570B60D9CE708A + E3BF4A0370FC72730BDC8F8B24DEA73FA62FF2818DB565F33ED6339B596F3C9C + 3E7EA8A61C979C038F69E39960574A32D6F09307515956524D00FA1904B07447 + 1815E6BF4633845A92154BBD3060D008ECDABF1F9664F65A90A045C72D96096E + 2881771FD3A6FC8E4939682B7CFBB53FCA9F148200B4AA55EB850FB79FA64E33 + 004D1608BA9AA4D3021E1FAC028B6DA1D5B7AF41980B2C8DF6D71F79BDD741A7 + 145346BB30FB4F74F976EA7DB84D1AC33C130985387138C0380BD000A1FBD7E8 + 8D03BB77F8925E6263ABAF1FFA38F436BEDBDF90E48C3CBC3BA9C9AD56555622 + F8F831E3E6000D10B26F0DAAF5A412A7028FA3B0A8042B567F82F1E3C6980520 + 25EB11DC268C64CA69A96988BE7CC9382F440304EF5DAD371B4DE171712EF20C + A6CEF4C04A1F6FB300A4E73E86DBF826B71A121286AC8C14E3E2000D10B86735 + 5E0875034824126C59FF091CFABF0DBFEDBEE8EBD0CB6480CC8745701D370215 + 95553878E898F1919806384900EA84FAD703511161B8979109F799EF61CDCA65 + 2603E4E417C375EC301C0B0C43467A9AF1B9100DD0964A2A850CE50F13E1D077 + 003CE7CF87D3C081BA956A3DD0ED1525FC5A9CBD188DAA8A2762B942E1625436 + 6A884C709FB7A25327EBB37D1D9DE1BBF963BC336A84B1AAF0B0A010874F7298 + F5409F7E4E605B58EFB81E75E460BB02301053E71DB1B6B5DBE6D06F00567BBF + 8FB9B3DE3558C78FB75370E6E2F7A8AD2AC7601767F8EFF245685434D2D3D262 + B8719716B62B0011F6C4699E01965656BEF49A78C2D8D1F8C8CB132E6F3BB65A + B1F45905CE47C722FB7E3EB3261E3A7830C203BF8154A6407D8310A722AF22F5 + 2E8F773721DABD3D0118A187138B620575EED6A36B8F9EBD3172C4504C1E370A + BF1DEE02FB1EDDD0A35B17340844E03708F0535129EEE516E0516131B32B2112 + F2C58E4E833A1FFD6A177ADA7745B72E76104BC91CABACC1FE0341484F8A39FC + FC49915F9B004C39E4A337AF9EE5A7A2A6F411ACAC6C606BD705563636CC9E90 + 665F885CF246AD7DA1709952E93F64E8E855C3863807ACF5594280BB308DDA1B + 1042DE57839B184B406B754298FD904F2412E30E2F15D7E27878F6AC4CD228E4 + 8B48C6E34081AA22F9510DD1FD987CE0B65220FEEEC183E486D7F5DC3D97DDF8 + FD14D785CB97CC2373E01A7ABFD50393278E0337F51E62AE5FD109D1A10EF9A6 + CEF14AEEE3E4ECAE9009316CB00B860F1B0A272727BD101DEE90CFC9797800F1 + 6CDB47BE3396008C6815A2431EF2E985F8FE2A1A5ED668203AEC215F5B213AF4 + 215F5B203AFC215F6B10FF02BBD4550815985E5D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_29_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008A14944415478DA + ED99095414471AC7FF33106E115151233E152FB2448DA868508357C46834EB2E + 6E3C51580F3C628C0F51E34976938846E3C129A078A3188D4B408D200C229780 + 07821058310C0C872303733207F456F76C70E70103330C1BF6BDFDDEEBE9EAEE + F9BEAE5F7F55F57D55C5C2FFB8B07EEF0AFC1FE0F7AE804101B685255106349D + D6A0A2DC8337CD10FF57018EAC9B8ECE52D0FA97939E23B7B8A6CB215A056832 + 801F6EA61743A16C425651559742B40AA0320001E7291742A9BCCB215A055036 + 761EE05149354432C51B88C2CA0C310B0B4EAD9FC1EF32802F42EF5147D7CF80 + 5CD5D469C3A59575A4F20A0D88CCC2CA3C89583CF394EF02834168006C0D49A0 + BEF7990599520DB03DF8B65E460F6F9C8B5AA11422A9420342AE682410157952 + 89CC60101A009F07DDA58E6D9C0DA9A2F31E6854A92024156F0D22A3A022FFF8 + A6D9EF1A1C60CBC93BD4F1CD7320963732D73B43EFE865F4A08F3B4A7802DCCA + 7A017EBDB4C573954281139FB91B24886A18D97CE21675F2B3B91036341AC236 + 283216E4165721E56919640A55F37D894482C02D1F191E60D3B1382AF0F379A8 + 97A901769FD2CF03ADC99FA68F4171858040517856528EA0ADF30D0FB0F1E84F + 54D017F32190AAF4B507A95486D4076978F4F829CAB85CD4D60A98C3D6B6176C + 6C7AA1571F3BD42ACD919B9ED8B324F396D0A0003E47FE41856C5B805A891A60 + 5FC4CF1D36A45234A0A2301B35A50530353583B985254C4CCD61646C0C232363 + 3436AA988EAD90CB20934A206B10CB594D54589344FAB79C9C64BD47240D80F5 + 877FA4427D3F015FAC9B07929239080A0E05CBC81436B67D317EF2143839BD03 + FB0176B0343781958519C4D20648C84854CEAB417E7E017232D35057FB0A1261 + 9DA8114D1B72536E5DEC34C0BA80EB5498DF22D48894CCF557A7EF6A55A6DB73 + 797E065EBDCC471FBB81709E3A0B6636FD980E6BCC66C1D8880572028BA5EED0 + 7486D2487EE848FFD1E49148E6A4238D93087E4D059472F9A1ECFBF1BB88599D + C6700D8035DF5EA3C277FE19D542658794A3A2CE2136EE36EC060CC252CFD598 + F49E234C8DD5156F4F5404A24149213BEF175C38731AAFAAB890CBA434C40EBD + 01FEFA4D0C15B1CB0395F56A80AFA3DAF600BFAC08654F52D06F90035CE77A40 + 412A64FE16BBF597B05A02AD701FCF9CE9A81F793D0579A9F1A82A2F8552A5F0 + CCE6C49FD70BC0FBEF57A8882FFF4200145A95EAEBEBE1E3B3113D6DFB6385F7 + 5AB8BC37AACDCA7744C27E78004B23053877626908915CA51CFE34EDE71A9D01 + BCBEBA4C45EC59025E9D1AE0E0B98456955E922F2F79558E291F2E84A5DD6058 + 9AB0352C696F40EAA71E33C736DFB9F8533ADE9FE48CE8F35178969B01B15010 + 949D12BF59678055FE17A9C83DCB9A015A13994C06AFD55EB07B7B30B6FAFA61 + E8DBBD61C4EE5C4C8ABE9D8145B35D90955F862B6782515E562CAF9335D97524 + 4E68BCD973FF052A62EF1B80C317125B28D06D9F579001D7590BD07BB0232C4C + D8ED7EF6D61E7D3CF54D2E77ED4E163CDC5DC0AD55E0525424F272D2484094AC + CE49893BAB13C0CABDE7A888FD2B502168DB03278F1F437E413196AFD980C9CE + 4E78AB03234E7BF263C2437C326B2293832524A5E2EECDAB10F02B2F3D4C895F + AE13C0F23D5154E47E4F022067AE8F5EBAD742212FF10A7AF6B086DB1F57C2CC + D4046C765B86B583CD7619D55C8EBD978D79D32730F1E149D1AF888E084435EF + E5E3879CB8713A012CFBF23415716095560F6C58B70696D67DE0BB6B0FFADA5A + 196461E916271773A639934047E10549F8224F1E02AFACA48A000CD00960E9CE + 482AC27F7533C0F1E8961EC8BA118C41431D317DD14A1265594C07A6FB309BDD + E1D730F2C1B8E1EA0289CEB7EF3FC2B44963A1205359DA0BDF7FE30F6E692108 + 40BBDF47E30F4B768453E1FEDECD4DA835D9ECB396F180DFEE3DB0B2B4786388 + F5266D6035DF6BA94FA714D4BF2B4E9FE9F42221F511A6B88C619E8B45229CF8 + 2E403F0F7CEA778A3AC500A83D107435A985C26F7DE0E3255E302659A7BEE2E2 + 34B4B99C9CF114535D4633E54A1E0FC164A0D0AB0FD0006107BCB5C681D0C0E3 + 282C2AC14AAFB518EF3C466F80FF94D487F99832C18929A791B9444CF465FD46 + 211A2064BF37AAB4A412A9291C9C8F3A836933DDB1CA73994100D2739F63CAF8 + 7798724848381E66A4EA17076880E07D5E5AB351A9548A2DA41FD09178BB9F2F + FADBF5E93440D69322B83A3BA282578943878FE91F896980C0BD5E7825D29E4E + 9F3D1D8ECC8C2CB8CDFC10DEAB96761A2027AF18AEE346E258603832D2D3F4CF + 856880930480DF0E80502884DFD6CD4C36BACA7305938875461E17FC1352410D + CE5D8A416545A944A1543AE8958DD2001D7DA988CF85A0EC19FA0F1C82259F2E + 46EFDE7D74CE87D40F5878CDE7E372F455663ED06F803DD846A63BAE9F3D7248 + 67005D65C2B479474CCD2DB6D13332AF658B3077D6549D6DDC4E4CC5994B3750 + 53C9C5308721F0DFED8BB0B331484F4B8BE5C45F5ED8A50044D8133F981F606C + 62E24BCF89278C1B8D158BE7C361F0C076155FFC5A810B3171C87E94C7CC8947 + 0C1B86C8C06F21932B515B274268D4553CB89F9272FF4E8C5B57023032C16DDE + 4A16C50AB2B4B6E941AF4A38398EC024E777F187510EE865630D1B6B2BD409C5 + 10D4095150F40299B9CF905F58CCAC4A884502C940FBA19647BFDE0DDB5E3D60 + 6D6501894C0E2EAF1A070E06213D29F6BBF2D2A2ED5D0A40CB18D7397626C6C6 + FE249FF03237B3222DCB0A266666CC9A50F3BA1039140D1AEB42917295CA7FF8 + 88D1AB470E1F12B0CED38300AB13C47D0121E4FF4DE024C411D09A36210CBEC9 + A752C8C1E7FE82D7DC627E2DEF4525B965478E7E14A84A92625793173C274950 + A24A28F9E1F1E3E4BADFF4DCE62FBDF9FE64D785CB3DE6913E700D7D7BDB60D2 + 4467701E6422F6FA953621BAD526DFB4398B93FBD90F7153CA451839CC01A346 + 8E80BDBDBD56886EB7C9673F645400697F7E4E63C71100C77621BAE5269F5688 + 1B5751F7BABA19A2DB6EF27514A25B6FF27504A2DB6FF2B507F12F684D330807 + E377E00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_30_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA8640000088C4944415478DA + ED990958535716C7FF0931B228A25550A155445CC66A0BC53A422BB8EF967EA2 + 750397995147AD5A8B68DDE94C5BD16A5D580402A2A808B4B6D612ABA21090B0 + 2315D7825A455691C4AC6421AF378F9A4A81604268F9E69BF3E57DDF7D793927 + F7F7CEBDE79C7B2F032FC807011114FE2489DFB39C610A3B2631F257CAFF01FE + 6AF9DF02D8109E62C249CCE0D7A9A9C9A1ABC74AFE54807DCBBDD0560AAD7E5C + CA6D141457B73B44B3001A13F8E16C6631942A0D72EE56B62B44B3006A1310F0 + AE97422453B43B44B300AAFAB6035C2BA98258AEFC1DE24E4596848199112BC6 + D6B41BC04747AE50FB578C8542AD69B3E1071542D279652388EC3B1545528964 + 5C84FF4C93413402581F964C7DB5723CE4AA06808DA13F1A6574EFAA29A815C9 + 2096291B412894F504A2AC4826959B0CA211C0BA904BD48155132053B6DD03F5 + 6A3544A4E3CD4164DD2ABB7970F584D74D0EB0F6F005EAE09A499028EAE9FBCD + 472E186574F7CAC9282917E07CCE7DD43C933579AE562A71E8C3C9A62FE6D61C + 3A4F1DFE700A4475F5A6B00D8AC48282E24AA45D7F04B952ADFB5E2A952278ED + 54D303AC3E904405AF9B8667F20680AD11867BA05EAD446DD97D889E3C865C2C + 80AA4E4A2E19BA5A7703DBC20A36AFD84263DE0305FCE46E25D9E745260558B5 + FF072AE4A3E910C8D4061B1289C43819170F2EF722982C362C2CADC0EE6C0133 + 160B66662CD4D7ABE979A154C821974921AF9328181A2A5C2395FD273F3FD5E8 + 09DD0860E5BEEFA9B00D33512B6D00D8C1B9F852469E96FE8C5F0AD3606E6189 + 6EE40D8F70F3804D4F3B2829269424242BD5F560B3CCC8C5049BA181B0A60A45 + B95721AC7D02A94828AE87E6DF0569E74FB61960C5DEEFA823FEEFA146F2721E + A0C8203F1A138BEFBEFF013D6DEDE1EE351EE33CDD616FDB1D9DCC1830633240 + 3E60301AE68336C16BB3BC9A24CAB26A01AEF0F8E0A75E464D7519540AC59EBC + 74EE27C4AC4121B011C0F2A0335478C0FBA816ABE8FB4FA32FE9552EBD9189A7 + 8FEEA057DFD7E031E97D48889A79272658CCA6F393F187AF7CA7BAA14E4521AF + E867C44647E3496529147299166293D100FFFCE26B2A72F36C548954AD2AA6A4 + A4E2D0E150F47670C4AAB5EB30D8B10F2C48E70D156DD2E49C4943513A17958F + 1F40A556FAE5F1B8B14601FCE3F3448AF3890F2A9E35007C16D3BC075464225E + BF7812BDECEC3166C65CA8D00916ECA69D67E80994F327BAEADAE1673260C950 + 8077E19C1642AC50AB065EE75FAC361860D97FE329CE96B90440A95729222212 + BCF44C784D9E894573BD61D599D9A6B5DD89A42C8C1EE982D3B131B851900589 + 48109297C65D6330C0D24FE328CEB67928173600EC3E9EDC44411BE70B9262D0 + E73547784C9B47471733668B265BF486B7E7085D3BFEC76C788F1F899C9B8F10 + 7F34148F1F152B84728DEDCBE489466617079EA4A2B62DD0013427A9292988E4 + 4463CCC419F05D3007966CC3C7FD1F25F1520E7C26BE8DD25A254EC544A1289F + 0F994CBA243F2DE99841007E3B4F509CEDBF03EC3D71B989C2BDDC4BD0C8C598 + 30DB9764D6AE74B86C79ACB73CAEA6BA0FD5B5BF4DCEC37BE3DCE8122639E52A + 2E9D4D80A0A6E2546E1A77A14100BEDB8F539C9D8B502668D9031B3FDE401213 + 136B3E0E80A3832D9826A868CE5DC9C7544F577A21F5D3DD8738CD094655F92F + 85B9BC24178300166E8BA1A276FA1100057DBFFFD495260AD7B83124FAF48597 + B71FCC3BB39ABE633D408C171E8E7573D6B5B9BC6B98F48E0B497414EE970910 + 75780FCA1F955412803E06012CD8124D71762DD6EB8105737DF0AAE3106C0F0C + 048BCCDE17B3ADB17221FD1ADE79FB0DBAECD07AE1ABCF0351FAE00E0840AB56 + 1BFD60FEE6288A13B8440770F074CB1E98327709C0346BF46E9F83D017183AEB + CFFFE4F94A5B5B56B88F70FAADBCA0909C5108F791C3E96712B11887BE0C32CE + 03F33645529181CB7443A839D912E04FDE1213EBFC37A2B75D2FE35FFB0B929A + 751D1EBF0154949723F4E001E3E680767B3D820668F04048424A13053A0AD589 + 31638E2F5D71EAB7D8F2A3B786F6D3B5AFE6DE8487DB30BACDCFE023F1749C71 + 51480B10BE6B99DE3C70358D87D898A37877DC642CF65B60120F6416DC86C75B + 0D61352C2C12B959578DCB035A80B09DCB50A9A79490C96458BBF25FB0EDDB0F + 1BC970EA6DDBB3CD00393FDD85BBEB1094955760CFDE03C667622D40E88EA5AD + 56A3C7A223919D9503CF7113B16CF1FC3603E41715C3DD65100E0447222B936F + 7C2DA40508DEBE144FC4FA0144221102D6AF41B71EBDC9305A84D1A35CD11629 + BC750F3241358E9F4A4445D903A952A51A605435AA05384C006AC4ADAF0732D2 + D3101D198EDEF6FDB17EED4A0C751E6034406A461EE24E27D0EB01BB3E0E243A + 77DE74E6D8BE3D460118F2C74F1FDE805C500EDB3EAFC27BD63438393585D09B + 8948C22829B94796A45C545794C269407F046EF547F8B14464F2F9E778DCB859 + 06011821CC9163A607B1D86C7FED9AD8CD653816CD998E01FDEC5B55BCFFB00C + 2712939077AD885E133B3B39212AF80BC8152AD40AC5381293A0F5725AFA8544 + CFF604A0C5CD739A2F8362845859DB74B5E9D10BC386386394EBEBF8DBE001E8 + 6E630D1BEB2E108A24100845B875F73EB20B6EE0E69D627A5742221648ED1D1C + ADF67FB6153DBA778575174B48E50A94965761D7EE1064A69CFBF2F183BB1BDB + 15402B23DC27D9B259AC40524F2CB530EFD2D9C2B20BD8E6E6F49E906E5F885C + CABA46FB42510AB53A70A0F3F0258306F60F5AEEE74380BBD09DDA1114467EAF + 012F39898056B70861F243BE37DFF4B261595BCD2696C713E3DAECA4AD67EC28 + 5015A43EAA2293EC36298A2EAB45D26F0A0B5385CFF53CA7CF3F3BFAEFEEB316 + FA4C2373E06BF47AC506A346BA8297918D7367E25B84E850877CEF4E9A936AE7 + D0DF53A51063100908830739C3C1C1412F44873BE473E83F38888CBF80616FB8 + 108021AD4274C8433EBD10DF2640F8B44A07D1610FF95E16A2431FF2BD0C4487 + 3FE46B0DE257D3490708324EF13E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_31_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008904944415478DA + ED99095854D715C7FF038401060137D48829E28216A36C7E086811D768A2368D + 4D352A0A2AAE31C64FD1C495B44944A3A2EC9B41348260B56EE082B2C9BE0444 + 108A15CB366C9161566681D7F71E82F201C3CC30B4345FCEF7CDCC9D9977CFBD + BF77CE79E7DC7B19784BFEE2114CF81C7645234F8A81144FEF4BB872C29DA10E + 5D5D945000033AF3B7644000FE1FE53780FFB5FCBA00F60425A8318819692D32 + 62B1FF0E67FE7F15E094FB5CF49782EA1F99F00C7965F5030ED123409B1AEC70 + 23BD0C12691BB24A6B0714A24700991A08929E54822B140F38448F00D2D6FE03 + FCFCBC0E3C91E40D44093B83CFC0B2E02DCE8D0306F065E023E2F4166788656D + FD565CCEE69093977481C82C61170AF8FC79C17B97A90DA20BC0EE8078E2CCD6 + F91049DB01F6F9DF5549E9C9ED1FE01557089E50D205422C692521AA0B850291 + DA20BA007CE1F780F0DEBE004249FF2DD02A93814B4EBC27888CE2EAA2B33B16 + 4C533BC02E9F7BC4D99D8BC017B7D2DF0F04DE5349E9F1AD8BF1BCA60971592F + D0D82CECF6BF4C22C1B9CF17ABBF98DB792E8EF0F9FC03705B5A555628148A90 + F2380D79F905A8A8A8426D7D2378DC6668EBEA83A9CB829EE170B0868D416EEA + 03C3E799715CB502ECF0BE43F87EB114CDA2768083C18A5B4026694175490EEA + CB8BC164EA40578F056DA62E34B5B4A0A9A985D65619ED5612B10822A100A216 + BE98D14604B509847FCDCD4D54391EBA006C3F7D9BF0FBF2433409654A297994 + 90041FBF40303499301A36123367CD86C5B4A930193312FA7A4CB074991088C4 + E0933150C56EC0D3A7C5C8C94805E75503045C0EAF156DDBF292E37EEA37C0D6 + 533789803DCBF04AD00E7024F4BEDCCE0441A0AA28030D2F8B30C2782C6CE62C + 808EA131F91090414B83012D4D06C80F3018D4B5A0337C2BF946E5998FECCDF1 + 28291DA989F168ACAF86542C3E919312FB15A956A9274817802D27FF4104EE5D + 8146BE621638FF63046EDE8E83F1987158B3C10D7633CCA1F30E839E7C5F2225 + 41C45202D985FF444458181A6A2B2116092988FD2A03B87B5D23823C3E46FDEB + 35F137E71FF4DAB1B1A2141505C91835CE0C8E4B5692C98F80EE3B1A3D0FC2E8 + 0EE4B2C486FE14918FECD0EB8FF124F9366AABCA2195495C7292622FAA04B0E9 + FBAB44C8814F50C795BFA86F6E6E86FB966D30183A1A2E1BDD616749DE796D0D + A82A81D7D2A0871624DDBB4541F0C432E9C42769F7EB9506D8F85D0C11FAD54A + B09BDB01BE0DEFD9022FC93B2F68A882E3C2156019BF07163579462F4A7B19F2 + D3F9969DBF5C8ACDC42CDB1988BA188EA77919E0739BFC729263772A0DE0F6B7 + 2B44E8D79F9200925E3B884422B8B8B8C2F8DDDF618F8707C6BF3B1C9A0AF8BC + 3C89BA9B8515F36C915554812B3FFAA3AAA24CCC11B5192B9227BA8CECFA4D24 + 117A68156A38ED00C723E2BB75A07CBFA638030E0B9663F87BE6D0EB701D8682 + 83BC96E573DE541257EFE7E04F0B6D51F94A82CBE16128CC4D2313A260436EF2 + 9D0B4A01ACF7FC89083BF45927404FE27DE60C9E169761EDE6EDB0B7B680B666 + EF3357B428BFFE3007CB9D6DE80A203EE1311EDC88465323FB727672EC1AA500 + 5C8E5E22420FBF013879E961B70E850FAFC0708801E6FE711D9971B5A1A1D19B + 62F96EB5C86E4A67FB66421E96FCC18ACE0F05A5FF4654A82FEA6A5EE66727DD + B1520A60DDE10822F4E85A5437F56E812D9B3642CF60043C0E1EC6C8A1FA6AD9 + D6884DFA190B675B92898EC08BEA2684F99C404DC5F35A12608C52006B0E8513 + 61475D480031FDFDF4E547DD3A645DF7C7B8F15330F7E375649665D0014CC5B0 + 8686C2C3D0E2643DB1B37D37251FB3674E87845C48515638F39D272ACB4B4002 + F4797FBA5CF0D9D7E789D063EBE55A609BFB26B0480B1C387408FA2CD61B458C + 8E57BBF3307A78AC76C404F1BA4195165439F220B5000EB6ED41CDE7F170EE07 + 2FD52CB0FA401811EAB9A113E06C54770B74C4C047ABDCA0C564F6A5BF579935 + 6D7C673B21A3108E33DB01D83535F03FEBAD5A0CACDA1F428478BA75BA504FE2 + EF731625A5CFE1E2B6193656D35506785B52B28BE0686B41B7D352D3101315A9 + DA5388DA5E0FA601DA2DE0179DD0AD43471E70745E024B3B0739DADEFEB9FB1F + 96E6E33ADBE979CFE06833956E070484203BE3B16A798002083AE626370F0885 + 42ECDABA99CEC4FB3CF662B4F1887E5B20ABA0140ED653505DC3C68993DEAA67 + 620A20E0A81B6AE59412945C381F82CC8C2C38CD5B08B7F5ABFB0D905B580607 + ABC9F0F60D41467A9AEAB51005E07FC4B5CF6A94CBE5C263F74E180E1B8DF52E + 6B616F67DD2F80FCE27F41D8548F88CB316057970B2452A9994AD52805E07BD8 + 150D0A9C91A5A624E37C4810468F35C5EE5D5B31759299CA0089A939888C8AA6 + D703A3C698404393B9FFDA855327540250E6902FF252041EC5C7D32BB20DEB56 + 618EBD8DFC017A90E4F45C845F8C423DBB1213CC4CE179702F822EC4203D2DED + 56526CE472A50194BB77047EA92886A0B1825E135BCE781F4E73EC6168682077 + E254B2E3908BA2C4E474E41714D26BE249132620CCF77B88C452BCE2F010181E + 4D593939E55E8C93C200AA8AADD3D2750C82E1C732301A42ED4A584C99043BEB + 69F8BDB919861A19C0C8401F1C2E1F4D1C2E8A4B5F2033EF298A4ACAE85D093E + AF4930D6643CEBF4B707316CE81018E8EBD13B189535753876DC0FE909B77EA8 + 2A2FDD37A000944C775864ACADA5E5491646AEBA3AFA4C5D3D7D68EBE8D07B42 + 9DFB42E44BD2D2655F284C2C93794E9CF4FE86C9134DBDDC5D5692C0ED05E211 + AF00F2FA3624C5DF2141EB7B8550FB1999A5E55C232D03D627A4E6F9A4722A3B + 51F5CC2802049B4C6875A48F3E233DEFA18C2BF87B7E7E22A7A39FD387AB6FD8 + CF7258BE66E5523206AE62E47023D8CDB446526A266E5DBBD22BC4A03AE49BB3 + E8CF89A34C4C9DA4621E264F3083F9E449303131910B31E80EF94C4CCDBD48FF + F3B0986145024CE91362501EF2C985B81E0DCE2F759D1083F6904F5188417DC8 + A708C4A03FE4EB0BE23FCA72E6F96459F6040000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_32_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA8640000087A4944415478DA + ED990950944716C7FF73C825897881CA68810A6A0E89B8AC91E80AC2AA151673 + 784B3864B7D45563C0F54A3C713707180D46911BB9E4902CC62828871C030E20 + 60086A94605617E494CB19668639986F7B3ED6890418980176492AAF6AAAFA9B + EFEBD7FDEBD7FDDEEB6E069E93757B43A8338736E1894086E1141FFF5824FA6D + 660C85AE6E4A9400A70940D32F1960587BFE9C0C0BC02F517E03F87FCBAF0B60 + 5770F6102E6206AF434E2D3FBBDDBEFD7F0A7062B31D064BA1AC1F9F7D0FB72A + 1B871DA25700C510D8E1524125A432056E56D40F2B44AF00F22120C82DAF065F + 241976885E01649D8307F8F641030462E94F10F7EB0ADB19700ED962DF346C00 + DE4159D4C92DF690C8158356FCB0AE8D745EDA0DA2E87EDD6D617BFBD290DDCE + 4306D10DC02B3093FA62AB03C4B22E803D67AF69A5F4F8B61568E18B201049BB + 4148A49D04A2E6B648281E32886E001F046450FEDB1C21920EDE029D7239F8A4 + E3BD41147E5F73F7D476C757861C60E7E934EAD48E65689774D2CFFB83D2B4E8 + B8140E9606C8E515A3A2F21144423EA4622174F4474347CF100663C6E18509A6 + 28C94F1FF3A0E82A7F4801767C79953AFDFE0AF03B3A3556C4E70B10733E0129 + 57D3C164E940DF807458571F2C361B2C161B9D9D72DA2A528918629110E28E76 + 094341052B84A2BF9796E6683D9DBA016CF74FA1CE7CF0269E8ABB000E840CCC + 02CDD53FE05119177AFA061833DE1856BF5F04A3F126902A18B44390CA3BA1C3 + 664197CD840E93425B733DCA8BF2D1D6F204427E9BA0138ABFDEE25E3D3F6880 + 6D27AF5001DE4E6815C9075499A228449C8B41F2A52B98606C8A45F68E586AB7 + 101CE3B160331960B3187403A4480747A573961317AD8C338F1B5A91955380FC + 9C4C3435D6402691F895E4A57E483ED168017603D87AE21B2A7097335A845D00 + 87C3D2D556AEBE5380E6AAFB9838651A162F7F077C29A0378A4977BE47433FFB + CBC3C9061D320AC5E595880A0FC393FA6A48C42225C43EAD01B61CFF9A0ADAFD + 169ADAFBB74056760EFC4F056012C71CEF7B796196D964BAF30C0DF25B6240DA + 65875ECC4779EE65D43F7E08995CEA56929B1AA315C066DF642A78EF3B68FCEF + 9EF8584446AF9564642196A79FC7441353D839AF85841A057D1D66BFA3FEBCB8 + 2CB7569583930BA04789919B4643082472D9CC725E7AA3C6007FF9F42B2A74FF + 2A34F0D56FEA83824391C3E5C17EC54AB8AE7B0BA37559031FF65E2436B5080B + E65B21212612776E15A29DDF1A50C24DDDA131C09F3F49A2C23E5C8DBAA75D00 + 1F47F6B480D2CFDF4A89C4E469E658E4B41EA3582CB0987DAAECD31AEFDACD55 + 9513D34AB0D2DE1A37EF5621F1DC593CAEAA94B48915C6038913DDD47AFE2391 + 0AFB682D0190F659213B3B1BC1211158B2CC196E2EAB61D0CBD4D15492324AF1 + AEC37C54B7481117198EDBA53C8844428F526E4A9446009B8EC5536107D7A3B6 + AD0BE0B3E8CC1E157E2CCE80422C80E32A37125D0D8905186AE67ADF8BC0E98D + 9754E58BD74BE16C674D07D0CCEC7C645CBA80D6A6BAB8626EAA8B4600EE3EE7 + A9F0831B5500BDC92E6F6F129C98D8B9672FCC4D8D898F1FFCB6FA9BEC52AC58 + 3C8F4EE3BFABF83712C2CEA0A1F65159716ECA3C8D00DC8EC45261877E02381E + 7BBD47856F532389F79902BBB7DDA0A7CBEE39C66A7818CFBD74B0B1549553B9 + 6570B4B522C18EC2BF6A5A117EDA0FB5550FEA09C0648D005C0F45536147DE43 + 4D6BDF1658B77A15A69ACFC6E1633E64FA30C124414B6905E6200C712DAF0C6F + D8BC4A520E056D852F3EF141F5C3FB2000FD6AEDF681CBC1482AFC881B0190D0 + CF27E3B2FAB4C08AB51E244760A9D43C4B1918CF7E60A8B43F6BE4D93E4F19C0 + 1659CDE84A2FC84306AF1C0BE7BF4CBF6B1708F0E5E7BEDA5960E3471154D851 + 77B516D8BFE76F64A498F0266BC0C46482F6C3FE9CE414DE81EDEFBA00EA6A6B + 71F694BF766B60C3FE702ACCC74305702AA1A705682FD421C09FD6B8C2688249 + 3F1AFB7E65F39299AA9C577C17B6F3BBBC12EF060F4909F1DA79A1F5FB42A950 + 1F4FD514EA4DF2B8B9883E770E7F70580E77D78D031BE27E667241E93D023087 + 2E070686A2B8305FBB38A03C5E0FA101BA2C107021BB47854E1989C4641D4C99 + 6A8E356E9ED0277B00B50DF4D1F9B93339AAF2CDEF2A606B3D1B35B575F03BEE + AF7D245602041FF5541B07941215118AA2C29B58B2F48FF074DF30302BA891D2 + DB95B09D6709FF33A1282CE0699F0B2901028F78A2FEA97A003E9F8FBD5E3B30 + 66DC24B8BBBD87850BAC311829FBFE47885A1B111D9784BA9A8742A94C365DAB + 6C540970F6F0A67EB351A5DCC8E322223418934CCDE0B5732BE6584CD71A20E7 + 4609E2132ED0FB0193C91CE29D75F725479DF0D30A40934BBEF8D868646566C2 + 78F25478B8AEC7E285F3D537D08B700B4A11199380C6BA6ACC986E069F03BB11 + 1C9584021EEF726E6AFC4A8D0134B9E45306A1C4B85864A45DA3F7C4AF2FB0C1 + DB4E8E98C699D46FDDAA9A7A7C7D25138545C5F49ED862C60C849FF91462890C + 2D6D0204455E505A999B9796B444238001F5FC672268AA46F3A372E81B18C268 + DC44CC9E658157E658C274CA24E2A5F4A1ABAB0389440AB1584C3C4D3DEEDCFB + 01F72B2AE953897641ABD094633EFAE4C707306EEC0B78D1D00042B104D5B50D + 38FA59000AB22F7FFEF861C59E01010C46E6DA2E33D661B37D483EB1495FCF50 + 5709A3A3A7479F09A9CE85C84FDAD1ED5C285C2297FBCCB478D5C372A699EF66 + B7D5186B644877EAB06F20F95E81DCCC1402DAD827C4905F31BDF69A9D11FBC5 + D1AB886607A25C199D94F98C0905AA8EE4470DC4C4F74852745DCE17FEB3AC2C + A7ED59BD254E1B2E2D7CDD76A5CBEA37C91AF80A13C71B61818D35726F14E172 + 72629F1023EA8E6CF1B23539261CB3253289009633A66396A505381C8E5A8811 + 05A0148ED92C5F32FFF6BE6C358F00CCEE1762445EF2A985B878016DCD0D2A88 + 117BC9375088117DC9371088117FC9D71FC47F00F284CEF96B1464CA00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Find_33_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA8640000086C4944415478DA + ED99095454471686FF6E9086665323B88111515C51C41885D1B8C418A351E389 + 33A3511131A2A34C62725C308A4A66B2A011710164535422201937028A82D8A0 + 0DC8228B101CCC60D841024DAFF4026FDE7B84963ED0D0DDC20CE6E49E035DFD + FADD5BF5D5ADAA7BAB8A810EF2D73DC144C0C14DA8E5CBD197E2ED1781E823EE + 8CDEB0A562840238EDB509CF05AF30C02912A0FE5506E8D39677903E017815E5 + 0F80FFB7FCBE003E0F4AEEC549CCE0362B887703762C10FE4F018EB9CFC7CB52 + 50FA91C93F21A7A4AECF21BA0468ED053F5C4F2B814CDE8A874F6AFA14A24B00 + 452F1070F2CBC1174BFB1CA24B0079CBCB033C7A5A0B8144F602A2B83A5DC8C0 + F2E0AD0BEAFB0CE0B3337709DFAD0B2055B4BEB4E1D26A1ED978990A44467175 + 8148285C18BC6B79AF41A800EC0C4C248E6F7B1B12791BC0EE805B3A193DBA7D + 091AF86208C4321508A9AC8584A82C108B24BD06A102F0A9FF1DC26FFB228865 + BA7B402C968093CA4556CE2394FE528E868646F0783C989A99C3D8C414838658 + A259CFAC2A27EDEEC4A71937F9BD0AF0C9A904E284C76208A52DF477CF33091A + 1B52C89A51599C85BAD222B0588630621BC38065043D7D7DE8E9E9A3A5458116 + 850232A90412B1089266A194D14A04B58AC4FFC8CEBEA7B33754003C4EDE244E + FD7D09F8CD2D5A19494AE6E0C4A93360E81960E0600BCC749E83295326E1F511 + 16601BB260CC6641440E2171B314CF2AEB90F7B81839E9F7D1F46B1D447C9EA0 + 05AD7FCB49B9F9FD4B03ECF08B234E7FBA144D923680FDC1DD7B8020085414A6 + E3F9B3420CB11C89996F2D8281B925C45205F4990CE8EB31407E80C1A0DE051D + 5F5AC87FD42AE7643F0A3959F948E7DC467D5D25E452E991ACD4F87DA459ADC6 + AF0AC076DF1F09FFCF96A151ACD04839ECEC055C8BBD09CBE1D6D8B069336639 + D8C17000836E7C4F42C59A26B29E87F925883A7F0ECF6BCA2195882988BD3A03 + 6C3B768308FC7C391A446D0007436FAB55AC2F7B82B2BC140CB51E8339EFAD06 + 19A8603480D975258CCE409B96BE417F522B5EF09507C8E3DC404D4529E40A99 + 4B1627FEA24E005B8F5E23CEEC5A897A61F71E686A6AC2E62DDB60366818366E + 71C7EC69136064C084AE1278351D86AD2270126229088154211F9BCFBD5DA735 + 80BBCF152268CF2AD4FDB627FEF2EC9D2E959E913D2F7A5E81398B57826D310A + C654E3196A8CAAA972CD3B0ECA2711F19978D3D11E5117C3F138271D427EA37F + 564ABC87D6001F7FF30311E2F961B7C72A128904EBD6BBC272C4EBD8E5E9099B + E183A1A77BE7D31299908515F31DF1B0B00CD1E70250515622E5495A2D358913 + 2A009BBF8E2142F7AD4675531BC057E19D3D408DFDAAA27438BFB312AF59DB81 + DD3E74181A56F29B7CF096BDB21C93988D550B1D51DE20C3A5F030146473C980 + 2872CD4E893BAF1580DB3FA389D02FFE4202C8D42AF8FA1E474161095CDC77C0 + 69C6240CD07BF94DDDD5A41CBC3F6F3A1D7F1293EFE3CEF5CB68ACAFBE949912 + BF4E2B804D5F4612A107D6A08AD706F0ED85C44E0A0549D1303735C3FC551BC0 + 32300093A9CE70F7604B9C262ACB37921FE1DD39D3E8F890F7E41744859E466D + D5B3DC4C4EDC74AD00367A7F4F841DF84809D0956C767303DB6C083C0F78C162 + 90498F0DD544E25273B1C8692A19E808FCA7B21161A78EA0AAEC690D09305C2B + 0097431144A8D70B80A311499D141E5E0D80B5CD04DA034C727DD763B6455B26 + 53E36A685930639CB27CEB7E3E9C674C868C4CE3292F1CFFDA1BE5A5C520017A + EC1D951736785D20420FAD4765A37A0F6CFD7833ED817D5E5E303566D3CFA8ED + 0F15ACDAD306065483577BA97D9B44A520045EA41789DC7CCC769C44FF261408 + 70F23B1FDD3CB0EE40381176C8850490D2DF7D2FDDEDA4D03E07DE5FEB067D03 + 564FF6D58A93BD8DB29C9C51487AA00DA0BAAA0A0127FC749B031F7D7196083D + BCB15B0FF89F3C81A26272157273C71B8E537506E828A9594570766C9BD4DC07 + 5CC44445EAB60AADF50C2342BD5D950027A23A7BA03D0EFC69E17B7078D3B91B + 6B1D1F77FEC17182B5B2CCCD29260126D0E5C0C0106492A9B64E7160CDDE1022 + C4DB4D3984BA12B1580C8FAD5BE848BC7BEF2E0CB31CA279056A2423F7DF24C0 + 78545655E3C8513FDD233175BC1E4C03B479C0FF7272974ACF72C95CA89ECC85 + 162C86D3DCB91AF77A47996C3B4259CE2E2881F3743BF89D0E417A1A57F75C88 + 02083AECD66D1CA084CFE763CF4E0F980F26B35197F5709AE5A8495D6A25B7E8 + 67881BEB70E1520CAA2B4B4532B97C8C4ED928051078C80D354DB21E151FA4A6 + E06C4810868D1C8D9D9F6CC3C471637406B8F7200B915197E9FDC0D0E15660EA + B1F65E397FEC884E00DA5CF245465CC0DDC4447A47E6BA610DE63ACDE8BE822E + 24252D1BE117A350575D0EDB31A3E1BD7F1782CEC7208DCB8DE5C447AED01A40 + 9B4B3E2A20455F8AC09D845BF49E78F6AC99F860D9228CB21AD6A36E59650DAE + FD9888F48C4C7A4F3CCED61661A7BF81442A47034F8033E197292FA7A426C4CC + D30A40974B3E6A385D3C170AA63E8B3E959836750A664C9B0C5B1B6B989B99C0 + CCD4187C81084D7C217E2E2D47765E21F2F21F83D7F09C8CBC8DA2915636C6BE + 5FEDC7E041A6303361432491A2BCAA1687BFF5475A72EC7715A54F766B0CA055 + CB3B488B5C8AC68A6208EACBC16219C1886D02034343FA4C48792E44FEC99A55 + CE85C2A40A85F7D871F6AE766347FBB8BBACC6A0812674A30EFA0492EFB78293 + 184782D6A985E8F51B1A0787F903F5CD8C3F242DBF4D1AA7C22B95CF0C25B39F + 6A7269AD257BE82732114A52F045FFCACDBDC76BD79BB76CED75A7D9CE2BD6AD + 5E4ACE811F60F1DA40CC9AE908CE830CC45E89560BD1AFAE98E62EFEF3BDA156 + A3E7C9A502D8D98EC178BB71B0B2B2EA16A25F015062357ABC0FCB88BD67F2B4 + E924C0841E21FA1D408F10572F83F76BAD12A2DF5EF2690AD1AF2FF93481E8F7 + 977C3D41FC177FFDB0F96F539EAC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_34_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008414944415478DA + ED99095453571AC7FF4990DDAD2DAE684144ECB115D1E382AD0BB4384C1D2C6D + 71AB15D1CEA8D33A151D455B57EC0A568B959D8088C8DAB15A1545902596B0AF + EA54461D5A96B02FD90859C89B9B50230C249000333867BE93777293F7EEF7EE + EFFEEFF2DD7B69E866EBBD42A9A063DB50C7956038CDDB2F1AF1BEDB6943E1AB + 87130540E0D1ADA8E7499F5D00FF235BD1C87F8601CE1280A6671960584BDECD + 8605E059B4FF03FCB7ED7F0B606F48FA1076621ABB4346FD2EF02307C17F14E0 + D4F695182C85227F6CFACF287AD830EC107D02C88740872BD90F2191CA91575E + 37AC107D02C8868020B3AC0ABC76F1B043F40920ED1C3C40F1A37AF04592A710 + 0F6A730434B884EE70681A36803DC169D4E91D0E10CBE483765C51DB460A2FE9 + 0191FBA0F6AE5020700CDDE73264103D003C8352A96F77BE0E91B40B607FE04D + AD1D76CA2470B231013BAF109595D568696D058FCB85E9E83130361D0D19C3B0 + 8DDF587FB481CB3BFF28F7066F48017607A4507E1FBE817689F60A70793C4445 + C7E36A5232E80C7D18199B40DFC0080C3D3D30187AE8EC9411381924621144ED + 42883A04629A9C0A910BDB3F2B2CCCD059911E001F9F4DA6CEEC5A0581B853F9 + FB6070F2809C3457FD03BF94B06068648CB1CF4F80DDE26518FBC244D2140109 + 698E7F7A6B11AAEBB9A45FD4A14324424B0307C5392C709B1B20E4B5F13B21FF + 7311EBC6C54103ECFAEE0675F62FCEE075740E28334551604644E16F97AFE185 + 0953B1CCD1094E0E4B31C56C1CF41834E8D1013A8D06F221CF92E64546B7FBBF + 362B3A3468941CFCC66AE465DE4253430DA462B16FC19DA44F885BADE4EF01F0 + 91DF75CA7FF79BE08ABA000E856A56A0EA5E369A2B1FC06CCA742C777E1B5C31 + 60388A4E0ADE3B42A1FDDB5FAFDA5AE111870B919087A4C48B68ACAB8258D4AE + 8038A033C087A7AF51017B56A3B55DD66FC6DB691938ED178049E696D8BD770F + 6C2C26290BAF4D70259675A2A28E8FE4AC7B28C9B882BAEA0A486512F782CCA4 + 0B3A01EC3CF52315B4D7052DC22E80A3CC5B7D6692928E5876EB22CC264EC54A + 97F510537A30D2A7F75BEBDDCDDD79812A1D7439170632013293AF2A20F86299 + 746619FB5683D6003B4E5EA682F7BD8526816605028343919EC986E3EFD7C07D + BD2B4C0CE8188C45DF2CC0C2792F23EE4224EE15E540C06B0D286025EDD21A60 + BBCF252AC4EB6D34FCB6263E1191D22B83629C2FBA1E89C9D32DF1DAEA0D18C5 + 60804157EB52AD1A6E8E7355E9F85B45F8C3F279C8BB5F89F87381A8AE7C286E + 13C9270C649EE8E1F68F5F7D4F851D7C57E3B6CAEDB47404878463C52A1778BC + BF16C6FA83AB7D8525A616C1D5C10E552D12C44486E36E211BEDED428F42D6F5 + F35A017CF06522C5FCC40DB5DC2E802F227B2BF0383F0572111F4E6EEE186568 + 4A14A06968EBEA3B81CB6B7354E94B69C544015BE5F09D9AFE1352AE24A0B5A9 + 36269F95B4492B806D9FC753CC4FD71100F53B739E9E7BD021A5C3D3EB002CA7 + 9A29C7F9C1DA8F192558F5EA5C6510595AFE2BE298FEA8E7FC52929F79DD4E2B + 80AD276229E6E10DE0B475017C1D95DA2B43715224197DA660A5AB3B0C0DF47A + D7B1061E5AB79B4E8B6C54E92456291CED5F21EB100AFFAC6945F8595F702A1F + D51180C95A016CF1BE48851F7E4F05D097BDFBCE3B9866391BDE9F9F2013161D + 743269915684C1087123AB0C4BE7CF51861D0A15BEFDD21B55150F4000FAF5DA + E301F763D114F3C8538093D1B7D52AE0BCCE83C4098C1E754BFF0D447981A6F2 + FEE4254F56198AB062D93C2BE5B762ED94927D174BEC5E52DE13F0F9F8EE1B1F + DD14D87C248A621E7B1F35ADEA15D8FFD7BDA4A6E8D8EBE5854913CD74AFF66E + 969E7B1FF6F3BB006A391C049EF1D3AD0F6C3A1C49851F73270062E5EFD33169 + BD322847A10E3E5CD66E56469C9A3DAABFB5688E852A7DA7E067D8DBCD56A6D9 + 596C24C6C5EA360ABDF76904C53CBE45A302ACCC0C44469CC3F2D79DE1E1BE71 + 481460179763A95D57A70E0A0A437ECE4FBACD031B0F86534C6F0F15C099B8DE + 0A744AC94C4CFAC194699658E7BE4DB906D0F802358AD85A4F53A5F34ACB8902 + 36A8E1D4C2F7A49FEE33F18603615498F7365513526791E161C8C9C9C30A12FF + 7FB065F02A14DE7D480066C1CF9FF8CD66EB1E0B29B6D74395005D0A0424A4F7 + 99A97B34EAEAB6162F5ABCA8C96D9F6ACCB6783AC094FCFD31DA5B1B10159388 + DA9A0AA1442A9DA15334AA000839BE4DE33CF0C4B2EEB01011168249532DE0F9 + F14EBC643D43670532B20A101B97A05C0F4C9C6C4E4667830397CE9FF2D50940 + 9B43BED8E828A4A5A662C2E469F0D8BC01CBEC17687E411FC6CA2E44E4853834 + D456C16A8605BC0FED43C8F94464B3D957339362D7680DA0CD219F624D1C1F13 + 8D94E49BCA35F192C50BE1BAFA0D4C379FD46FDECA9A3A5CBE968A9CDC7CE59A + D8DACA0AE1FE5F412496A2A58D8FE0C80485CAAC3BC9892BB402D0E5904FD19C + 2E9C6382AE678071CF99C176EECB58603B075696D330768C29C68C36018F2F04 + 9727C0E38A2A1496DE4769D93DB4B5349299B75538D5DCD2E4F41787F0DCF8D1 + 18636A0CA1488C2A4E3D8E7F1D80ECF4ABDF545794EF1F3080AE877C3C1E0F3F + 24C6E30E9927187A8A7D2153E81B1A2AF78454FB42E49274F4D8170A17CB64DE + 33AD5FF19835D3C267BBBB1BC68F335516EAA84F10795E8ECCD4EB04B4412DC4 + 901FF2C96552085B3910711B211109C8BCD1412E3118A308CC2803E81B99C268 + AC1938C559E34B4A32DA9EE45BB17AE315FB254BD76C727B93F481EF61F6FC38 + 2C5E381F9959B9B87A295E2DC4883AA159B66A6DC644738B1552311FB3AC66C0 + 669635CCCDCD35428C280085995BD8F81818197BCDB1B52300B3FB85187100FD + 42FC9080B6E67A15C48804D00662441FF20D0462C41FF2F507F12FA9669AF9A6 + F18F5B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_35_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008484944415478DA + ED990958535716C7FF094B6491C5CA228283A0686B15DC819651BBD0A98E759C + B133AE80E0A0AD769CF6B3EE1B9DE9222AA26C2AD0A250D68E962AB840818084 + 1D59AD141D2C810001252424210BBC79091261204002CCC07C73BE2FDFBB49DE + 39F7FDEEB9F79D73CFA5A097FC69FF65E2D2494FB038628CA5F8F84721CED79B + 321AB6FA189101849CF04463DB0406083EBE1D4D5CC9C405083CB61DCDBC090C + 104002B44C6480317DF25E3226001351FE0FF0DF96FF2D804F2EA58FE222A630 + 3AA4C43BC1BB57B5FF4701CE7AAFC4482964FA31E93FA1B89A3DE6100302748D + 821F1273AA21967421BFAA714C210604908E0201BD8C09AE4034E6100302483A + 470E70FF51137842F10B88870DB9ED14ACBDBC7355CB98017C7C318DF0DBB90A + 226997DA0605022132B218A06717805957070EA70D3C6E1BF4F40D4050B53A3A + F86D37BB3A25C9AD1DC43F1EE5DDE28E2AC05F43528973BBDE8450D20DF069F0 + ED611B928A3B50FFB010EC9A07A0D1264147570FDA341D68686A424343139D9D + 52744AA5108B84100AF81076B48B285DC4A52EBEE06F4545196A7BA50FC0DEA0 + 14C2FFC3B72010ABE681D4343AFC2E8480A2A10DA3292658E6FC3A16CC9F8719 + 1626D0D3A1415F9706A94402AE5084263607659555484BBD0BCE5336F85C0EAF + 135D1F1467DEFA76C4007F09B8439CDFE38A7651A7FCFBC18B77065526080275 + 95B9687E5289A9A6D3B1F4D76F43DBD0040291149A540A343528202FF8688313 + 986C2EEE55D4A3852B84945C633ADA54085A58C8A7DF450BBB1E1291C8B7302B + F9106956A5D1EB03B0E7C22D22E0A3DF80DBD1392CE5D0F02BB8FEC32D984EB3 + 829B97179CECED40D3A2CA1F5E9954319FA2E47113F82464878404A148909618 + 8BE646264442810CE280DA00BBFD9388C0BDABD126EC06387259B9075A6AAB50 + 5B9A09332B1BBCFEEEFBE82017BE0EF9F0037642E90FE4E26083BA661E84E474 + ADFEA51E25698968ACAB81442A762BA42747AA05F0A1DF4D22E8E33568154807 + 55E2B4B561BBD72E18189BC3C37B279C1CE6C8A784AA229274A2A9958F644615 + B4245CD0EFDC9041F04452C9AC32C65DB6CA00BBCEFE40847CB216CFF8DD00C7 + C3EE0EA8F4841C797E731D5CDE59079DA933A0277B788A12A34ABADCE2EAA0F8 + 25F2763196D8BF82D8C8085414E7A29DDB1A549899BC4765809DA7BF272EEE5B + 879676E51E100885D8B4D91DA616BFC2814307616DF112344698D3C6A414E3B7 + 2EF6C8AFAC45DC37C1A8ABAD1671845DA6C389137DBAF63E758DB8B47F3DD8CF + F7C49F7D9DD24F4136F7590F72F1DADBEB30C5CA0EBA3D538732CC4E9ECBEF57 + CE57B41352EF63DD4A07309F89111D118EF222061910F91E459949575402D8F1 + E57744E8C13F0C5A563973F61CCA2A7E86C7AEDD705A340F5A231D7E52AEA5DD + C71AD203B2B75F6AFA3DA424C6A3B5A521BA2033798B4A005E5F2410618736A0 + A1AD1BE0F388FE1E28FF310E86930DB06ABD1BB4B5B540A52A333C38D86AE797 + 15EDC48C52B83ACF97E760A555BF20362C104DAC272505F4A4852A0178FE3D8E + 083BFC4712407965CEC3C313BA065371F8D8719818EB0DF88A54559232CBF086 + E3AB641A4FE09FF5AD080FF005ABF6512309304D2580ED9FC5106147372A6AA3 + 5F5D4DEDA7907F3D185633E762E5FA6D6494A54083DA1D6DA9D4617723973797 + CC965F6579EFED7BE5E4747C05623296C8BC70EE0B1F306B1E8204187274FADC + E0EEF32D117E74F3A0C55D2FCF6E0F1C3D7E0CFA7A7A2F0C517A3EDD938732C0 + 6BB5274927075ADE965D65A39E925381E50E73E5FFB5F378B870E6947A1E703B + 1145841D7B01703AEAC77E0A3D6B60ED264F6868D386B2AF545E5B60A368A7E7 + 3F80E3C26E8006160BC1E7FDD55B03DB8E5D25C24E6C457DAB720F0490C62B7F + AA86C70E6F2C59B8406D80DE9255F8900498236F33B21948888D51EF2DB4E568 + 04117EC28D0410C9BFFB45A7F55350C48137DE85C332E741ACF5FEB9FF1F8B5F + B652B419C555707A0E1012128A82DC7BEAC581CD87BF26C24EBA0FEA01814080 + 0FFEBCA33B121FD807733393117B20AFF467329FB2433DAB01BEA7FDD58FC49B + 0E8613613E1E0A80F3B169032A3D292173A11632175AE50A471797618F7A6F99 + 3FCB42D12E2C7F4402CC867F6028727318EAE7421B0F8412A13E9E8A29A44CB8 + 5C2EF6EDDD03C329E67077DF0AE7658B8637D44A984A2A1F83DFCAC6D5E80434 + D4D7F0C512898D5AD9A8ACBC7E590ED0ED81A0F874A58AF2FD405916CCA75B63 + AB9B1B4C4DA762B084E8DFE39DDD0C33453B23BB1031B1F1F2FD80D9344B5035 + 6807AE5D39EBAB16802A877C315157C9BD6DAA7C47E6B16D235C9C160F77D015 + 9299538488C858B01B98B0B5B186CF917DB8742501390CC60D7A72CC7B2A03A8 + 72C827DB13C7454721E5CE6DF99ED871F952FC6ECD5B9861693EA46E6D7D23BE + BF998ADCBC02F99E78B6AD2DC203BF845024C1330E0F1723E2919D9599997527 + 61854A00EA1CF2911D21F29B30503569F2AA84FD8257B1D87E1E6C675AC1D040 + 1F0693F5C0E5F1D1C66DC7E31A268A4A2B515A5601CEB36632F2B6F2A75BCED4 + F3FBFC08A6184F8681BE2EF8421198AC269CFC2A0839E937CED4D5547D3A6C00 + 750FF9640BFB7A421CB2E819D0D0D4868EAE3EB4274D92D784147521F223EEE8 + 53170A1749A53EB366CFF7B09B657DCADB6D038C8DF4E50F75FC5408797F17E8 + A94924285B29C4A81FF2C9E244615E2E2A2BCAC1AA9755E65AC125F7D04646C6 + 30303484C5744B3C6E6C07EB7EB671494906A7476FC59A4D894E8ECEEF6DD9B0 + 9A5C03DFC1E425232C5FBA08F4EC3CDCB816A714625C1DF2B9B8BE9F616669BD + 4222E2C1CED60673EC66C3D2D272508871774263693DE7144D4777FF3CFB8524 + C0DC2121C61DC09010D7E3C179DAA480189700AA408C5B80E1428CFB43BEA120 + FE05B49E8EF9CBE5C7550000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_36_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008464944415478DA + ED99095454D719C7FF33208BE242A2B8301A105053AD487312B48D410E891A39 + 710B6AD40497F418ABC6046BD4C4155B93B863646730B80292BA44C120EB8CB2 + 2908024A2C2A96655864997D9F79BDF3A8A31418986168B1A7F79C39DCC77BDF + 77EFEFFEEFBDDF5D1878212DD912494506AE464D8B927E0E399F0173A5F58BBD + F5F9C0A033883FB086610EBF6D9CE80022F6AC068FAF345BC53B4ABD0A10B67B + 35EA042F3140E8AE55A817AA5E5E80E09DABF054F412031C27008D2F3340AFD6 + FC85D42B002F63FA3FC07F3BFD6F016C8AC830E3206664CBD5D4ACD0F5DEE2FF + 28C0E13533D0530A9D7D6C4619EE9437F43A4487005A33E87039A71C4A9516B7 + 1ED4F52A4487006A3310708AAB20942A7A1DA2430095C67400A954860C6E1652 + B879A8A9A981502080582484A595AD4AA35694511A6D0918545A8B9CFADBC3BC + 6B42B3020484A753473EF38642AD35DA91402844CCE978FC9C980CA685156CFB + 0F8095B52D2C2C2D616161098D460D8D5A0DA54206995402995CAC6068A908AD + 44FA978282CC46B3007C19964A1D5DEB0399AA15E0ABD05FBAE5A4A9EAEF7852 + C4858D6D7F0C7ED5011E9ED33178E870D2100C28D51AAC9DEF0981440631E952 + 0DCD02DC2F2B07272D05FCA60648847C9106DA3FDDE15E3BDB63802F4252A8A0 + 75EF42AAEC9E0214452132FA24122E5EC5500747BCE3331333BDA7C1D1C11EFD + 98202DCF0093C1A00B5193D617CB55645CA8C0972A098C1CA5256548BD76058D + 0D3550291407F26F247D4D3E354AFE36001B8F2753C736CC8458A1A19FB78527 + 1B34AE2ACD4153E5AF18366A0CDE797F2104720A36A4E696CCB6F171DD024F54 + 378A907B9F07BE444EFF4F3751C849430DECA741FAE5783CADAB824226D5416C + 351960C30FD7A8E39FCF8650AEE9D230352D13878E066304CB19017F0EC078A7 + 91B0D535BB81D84E04437975338A1FD743A1226510756404422214E04EFA25D4 + 555740A556FAE773924E9B04B03E28910AFE620E04B25680ED911D2BA02203B1 + F8FA590C1BEE08EFB94B20D75AC2D68AD9DEB901983F4C7606AF494C43953DA9 + 473FA5109CE42B3A089142AD722DCEBEDE6034C0BA2357A990005FB448D5068D + 42422391C6C986CFFBF3B062E93C0CB0669AB4A8D2CD760D2D1264163CC41B93 + 5F47DCE91894DEC98558D81292CF4DDA6034C0DAC33F53619B3E40B3A4156017 + FB7A3B038D5A893B89311839C6196FFB2E453F0B262C989DBAEC548D253EEEFA + 7C6C4A217CDF9E8C5BF72A11FF6328AA2BCB157C99D6A13B71A28DDBCF0E5EA2 + C237CF43A3B8730552D332101ACEC68C5973B1EAE345E8DF41D7313625A41562 + AE973BAA9A953817138D92826C1210252B0BB889278D0258B3FF0215B165011A + FEB527DE7B22A59DC1A3DB29D0CA4498E9E70F4B1B3BA200C3405FEFBC63CD9B + 3E519FBF905184394401DDE4919A71132997CFA3A5B1F6DC6D6ED272A300FEF8 + DD4F54D4B60F0D1EAB7CBEF14BC8554C6CDABA0DCE8EC3C034C38EE232A718EF + 4D9B442F61EE3EF807E2D8C1A8E73D29BACD49F4300AE0D36F1328F6D77EA815 + B402EC8B69AF4061520C997D4661C6027FD85859B66F6303408C175ECEF21CAF + CF27DE2C81F75B13C92A98C2E39A16441F3F005EE5C33A0230D22880D57F8DA7 + D8DF2C26009D9FCCCD9FBF10A39D2760EFBEBD2460E9063089B66418F464245C + CB2AC5548FD7C9B2434BAB70F4DB405455FC0A02D0A5BE6D3E58B5379662EFF8 + 487F36FAFDA9D44E1598BD7825A9B5459BB6D57527C6B31F187AEFCF0A79B6C6 + D5CDFD5E1EAEF4BE43B71C49C9B987B7A6B42A221689F0C3A1FDA629B022F02C + 15BD6399C1C3DD4D010164FE6662F3B6AD18E130B407EDFE3CA5DFBA8FA95326 + D0F95A1E0FA1C7824C1B03FEBBCF50EC9DCF010E9E496B6740CF4272113E58FC + 0959790EEFC263E7AFA64E72D2E7B9F90F08C0383A9F9D958D84B858D366A14F + 769EA2D8BB3FD6DF0F749438999938117D025E3EB3B16AC532B328905DF81C20 + 2C2C0AB7736F9A160796EF88A1A277FB130005FD7CE45C7A3B038D8A4462320E + 468D76C662FFD5F41EC060019D28E2316EB43E9F7BB71CD3A6B8A186578B0307 + 834C8FC4CBBE3941B1F7AC30A8802E9D60472127270F337CDEC3A72B96F65881 + FCD24798E6EE8AA0E028E4E6649BBE165ABA2D9A6207AED4031C8B4BEFD0E8C5 + D5E87CBF4578CDE935436E3B54E337CECF2798C2FB8F2169AEC7A97309A8ADA9 + 902855AAB126AD463FDA1A4545D177648A2E0DB36E70C18E8CC0084727046C5C + 8B096E63BB5FD0BFBDC8B8998FD8B8F3F47E60F84816999DADB75E3879F880D1 + 00C65EF2559664A199EC871D468EC6877E0B31DECDA5DB35776539D07FB93905 + 88391D8786DA2AB88C7542E0F6CD883899809CECEC2B9CA4D8B946031873C9A7 + 0B42F1E7CE2025F9177A4F3CD5F34DCCF77D17635823BAB4ADACA9C3A5ABA9C8 + CDBB4DEF89DD5C5C101DFC1D640A159AF92284C79CD7A9CCBD919CE065148029 + 977CBAEE74FA47369896D618F2CA30B84F9E8437DC27C2C57934060FB2C3A081 + 0320144920108AF1A8A20A0577EFE16E7129F8CD4F49E46D9138B29C071CD9B7 + 1DAFD80FC420BBFE90C814A8E2D563CFF721C8C9B872A8BAE2C157DD0630F592 + 4F2814E262423C6E70326161A93B17B283958D0D7D26A43F17223FA5BCCDB950 + B442AD0E7475FBEDCA71AE4EFBD7F8FBC17E881D5DA95DFBC3C8F75A70521309 + 6843A71066BFE4934AA5C8CFCBC5BDD212F06AAAC1E7B7D0A7734386D863D0E0 + C118E5C8C2A33A31788559F6454599FC67765EBE4B2F4F9BFAFBB9CBFDE69031 + F01386BD3A049E6FFE0E9CAC3C5CB910DF29449FBAE49B3E7351E6709693974A + 21C23897B1183FCE0D2C16CB20449FBBE463398DDF6F6DDB7FCB44770F0230A1 + 4B883E79436310E2E279F09BEAF5107D12C018883E0BD05D883E0DD01D887F02 + FC699DF95FD6BD7E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_37_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA8640000084F4944415478DA + ED990954935716C7FF0918CA228B83E0022D8280A315AC3D202E8C65C6DAD14E + ED74465BAD95CD566DB5D3DA5315379476BA801B56059150511459AA9691A528 + 1809B229A808A8B85720010412B29205BE7909368502810498813973CFE1E485 + 2FF7BEF77BF7BDEFDEFB1E0D1D64E9A6682A3A2410353C19065376869F4442E8 + 07B481B0D5C9C83B1B8F5047D40072F5F74349AC011BF4DAB77D34ED90F01348 + 0C5B353800513B03C1E1CB076CE0DDC9A00244EE08446DF3300688080E409D40 + 317C010E6E0FC053E130063840001A8633C0A08EBC830C0AC07094FF03FCB7E5 + 7F0BE0B328D6006E625A7E8B927A2D62AD8FE83F0AB067D52BE82F854AFF14EB + 36AEDDAB1F74886E01DA06C00F2905F72057B4E14A65EDA042740BA0EC078144 + 22058B9D87B4EC02D47239100A04108B04AA477514851AD2E16DD0A86C5E0B75 + FA7E518660500014ADBA033493811E8D4B404A6A26E8060C189B988261640C03 + 4343181818A2B5558956A512729914528918D216918CD64645B589255F96945C + 6A181080F5872F527B57FB40A66CD3C9C885EC1CECDE1F091A19B8E5A8D1F09A + ED0D37B7C9787E9C0DCC8C8D606ACC00B74100518B023CBE009595F7C1666581 + DF580FB1802F6C45DB87D7D81927FB0DF0696416B56FCD9F2055B4036C88F849 + AB3245D6447545219E3EAE80B5CD7878CE7D150C731B88650A18D2693034A081 + 7CE0D325B3C017B5402495A359A2804022273032DCBF7317177F4A45437D0D14 + 325958716EFA666256A7D9EB04F0C9A10B54F847F32091F7CD46143316A75332 + 6033D61E01EF7F8099D39C613482AE1EFC6FA5ADB5550D26215E10B728212030 + 4D4219784D7C9C8E3F86A7B5559049252A884D7A03FCE34026B57FDD7C8864AD + EAEF4187337B546C78528927A56CD8DA3BC27BC11248C9B2332683EF4E562FF2 + 444DA3104577B868269EE8D8BB944C964C22C1B5EC33A8AD7E048552EE5B9C93 + 1EA717C0BAEF32A8031FFF19829656AD4AFCE666F806AC81B9952D56AE59032F + 775718337A0FEA64C5E13E8787B287F59077D8673C810486323E7232CFA92084 + 32A562E2CDFCF3F53A03AC0D4FA30E7EB210CDD27680AD47BAF7C06332F3E2A7 + D5F07EEDAF30B6B6872983DEC9927694F6A733A73A80DB2822418FC2CF9C464C + 9F3A090971B128BF5608918077A8989DBE4E67808FF6A65287D6BF0E9E44D9A3 + 82EA3DFFCE323F8C1EF702366FD90C8771A36040EFB59F6E45AE6C453D5F82DC + EB0FB170F68BB852F10489472350FDE49E8C2F6DB3E94B9CE804B066CFBFA8C8 + CFDE4093B81D209879BE8B826AED736E1562CEAB6FC2CADE05260C7AAFD3DEDD + A3C53E6E9A7652762916FD612AAA9AE4888F8D4159493E9928B17F093BED984E + 00AB77FD481DFEFC4D34887AF640D8EEBD282DBB8B800FD761D6F4C91861D0FF + 84F60CEB2616100FA8F65E16EB322EA42481D7C08DBFCA4E5FAE13C0AAD03354 + D4C6B750FFAC26FEE2FB0B5D14CAB2136131D21C3E7FF30563C408D0E93D19D6 + 0EF697D9BFD7B45372CA30CF6B8A3A0328ADFC1909CC83A8E33CBE713527ED25 + 9D00DEFFE6072A3AE8EF5A8F557CFD02603CD21ADB828331DACA0CB401A82852 + 73CBE1E339992491141ED6F01073200C9C27F76B09C0589D00567E9D4C31372F + 06B7B91DE0ABD8AE1EB8723602F61326E195B75690284B231BB83DDAD2E97DEE + 462DF33C5C34ED8CBC72784D9BA47EB5AABCB0EFEB10543DBA0302D0EBF474FA + 41E03F1329E696B70940CF2773FEFE813031B7C6F61DC1303335F9D5900A82D6 + DE78F6D1ED2252A589D4B35C5195F4AAD291F305B7E0E9DE0E24120AF1DDEE50 + FD3C10F0C5298AB96DA9E66CF4DBE3595D147ED9036F2C0B8401C3A837FB3DCA + 1C77474D9B75E536664C7355B7B91C0E22F687EBB707FC424E5231DBDED57AB8 + 1BBE6F1FCA6FDF23B9CF6A784C77EBCD7E9F845D7207339E79203F2F1FC909A7 + F47B0BF9EE384131B7FF0AB0EB447617054D1CF8E302B87BCED262ADE3BFBB3E + F098FCBCA69D77FD2E49479CD5EDC8C8685C2DBCAC5F1C58B1FD38C5DCF19EE6 + 7EA03B9190C46BD5CA95B0219138286803C6D85AF7DB0345A5F7D400351C2EC2 + 7685EB1F89976F8BA56276F86A6E68F6C65FEC56E9F10D920B35905CC8673EBC + BCBDFB3CEB1DC5CD799CA65D5CF680004C44F8C1681416E4EB9F0BBDBBE57B8A + B9D34FAB07542220E5E3FA8FD7C262D418F8FBADC0AC19BDEE35AD72E3D64388 + 9AEA703C3E19DC9A4762B942E1A85736BA2C28866286F86B00F6275CEC51515D + 0FDCCCC598F10E78CFD7173636D6D09610FD36E0B9BE60AB69B32E17E3544292 + BA1EB01D6B476A6AA34D678EED09D31940D74BBEF8B8E3C8CECA6AAFC8562C85 + F7CC977BE9A1ABE4E697A80F03EAB95570727440C8D6CF11752C1905F9F9E772 + D24F2DD20940D74B3E5510AAAA2840C3E35BEA9AD8C3D303DE73BC30CACA42EB + 1E50073D4A891F53B3505874555D133B3B3921E6E0379092B2B3892FC4E1D824 + E4E5B2D9B999C9737502D0E7928F7484B8A34CD00D8DD4A712EE6E2FE265F729 + 709A600F0B7333988F3485402846B34084078FAA50525A81D29BE5E0373D2591 + 97271E6F37C174EF575B09F848989B99402C95A18A53879DDF1E4201EBDCEEEA + 47951BFA0CA0EF259F6A639F4D4E446ECE251818AACE85CCC078EE39F59990E6 + 5C88FCC95B3A9D0BC5C894CA9089CE53FD5D263A84AEF25D0C2B4B33F5A08243 + 23C9EFDB9093954640EB7B8418F04B3E559C282E2A444579193835D5E0F37910 + 901ADAD2D20AE616161837DE0E0F6A45E05CCFB3BA71E312FF17BDB9AF2F4B99 + E9356BD1F2C50BC91EF801A37F6789191ED3919357847367127B841852977CDE + F3975CB2B57398AB9009E1E2E408571767D8D9D969851872977C760EAEA146C6 + 261BA7B8BF440026F50A31242FF9B4429C4D02BFB14E0331646F68FA0A316401 + FA0A31A401FA02F16F03449AF9431DDAB30000000049454E44AE426082} + end> + Left = 39 + Top = 16 + Bitmap = {} + end +end diff --git a/source/forms/Animations144.h b/source/forms/Animations144.h new file mode 100644 index 00000000..ce1bdf9d --- /dev/null +++ b/source/forms/Animations144.h @@ -0,0 +1,19 @@ +//--------------------------------------------------------------------------- +#ifndef Animations144H +#define Animations144H +//--------------------------------------------------------------------------- +#include +#include "PngImageList.hpp" +#include +#include +//--------------------------------------------------------------------------- +class TAnimations144Module : public TDataModule +{ +__published: + TPngImageList *AnimationImages; + +public: + __fastcall TAnimations144Module(TComponent * Owner); +}; +//--------------------------------------------------------------------------- +#endif diff --git a/source/forms/Animations192.cpp b/source/forms/Animations192.cpp new file mode 100644 index 00000000..0b9425bd --- /dev/null +++ b/source/forms/Animations192.cpp @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- +#pragma hdrstop + +#include "Global.h" +#include "Animations192.h" +//--------------------------------------------------------------------------- +#pragma package(smart_init) +#pragma link "PngImageList" +#ifndef NO_RESOURCES +#pragma resource "*.dfm" +#endif +//--------------------------------------------------------------------------- +__fastcall TAnimations192Module::TAnimations192Module(TComponent * Owner) + : TDataModule(Owner) +{ +} +//--------------------------------------------------------------------------- diff --git a/source/forms/Animations192.dfm b/source/forms/Animations192.dfm new file mode 100644 index 00000000..70ab7088 --- /dev/null +++ b/source/forms/Animations192.dfm @@ -0,0 +1,33486 @@ +object Animations192Module: TAnimations192Module + OldCreateOrder = False + Height = 150 + Width = 215 + object AnimationImages: TPngImageList + Height = 64 + Width = 64 + PngImages = < + item + Background = clWindow + Name = 'ConnectingSecure_01_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000009F94944415478DA + E5D9697013E71907F0476BD9962D5FD20A1B422CD9B130872F9C8696521A1202 + B639139BA394219FD23693B69069A02D6642E2723949FBA1379300BDD2299472 + DA802FA0657ACC846602D6655B36B6245BC187E4433E65D9BB7DF7D04A2BCB58 + 125291263B78567A7757BBFFDFBEFBECBE8B00BEE093E0491FC05C93E2D5CB17 + D1419605FB7749807F193F2EFD7AD80364BC7AA546AEC8285994BD043081803E + 650234A70E5CC0FB2C60BF53AB08BC2E739F2E5EBE02868F4B05610F306FC7F9 + 847851749D4291B92A98081103102A848802080542C401041BE1D29508040826 + C2E5AB572313C089208E8DBEADC87C668572D1E28010AE443280FC9B1772B018 + E19DBCBC423C35358D6EF317E16A5555640238C3E7E616E2F3E6A57241FD45A8 + AA8E400067F89C9CE5B88C0ECF0FEA0F427575756401D0E1A385779652E165F3 + DCC2048670EDDAFF01E07CC5BC84D828D10FD05E76A2DD2AD1F3B7C897EDD041 + 4D9040B6A107F67313D313BF38D0725241855FB2AC00C7656CB707782C84EBD7 + 430C70A96261B6501855BB70C9F24C79DE0A10274BE89D93D30EFA8F9862E7EC + 775E9BC30E234303D0D3D905DD3D56F3FBC6727172D6FA141C775DF38F8B70E3 + C6B5D00150675E248C53E7176DCF58B8B88009E91EF811E199F629B4CE24BDDC + F2B01B540FEC5023AB82692C9E7F3F7F0C849A50025C3D9A7E383D77C591FC75 + 65E0981885A67FDE809EF666F479DCA7ED85D14290C8704857A4A38326C0D0D6 + 0EB7C7F68046FCC6CC879A59102C965EB00D0DC26CCF09B535D7430750752C5D + BD7AF7BEDC44D97CD0DCBA049DDA4FCF4E8D127BCB2ACD565FB6DFF0DAE1AFAD + 9435DE2E529A63D23316C2E8B00D3E69C1E09AE48A5BE8D911AC963ED068EE59 + 81201FC815995FF6F6C458571B4280EA63F2F1E2BDC7440254C56E9E3A01C323 + A3F8CE8AAE7E5FB6E5AAFD2205BE37BA0CF29FCD816974397C76AF1DFE22FDCC + 23F44C847E6B1F68B5F7ADC4E4D49AF129C238DB63737D2801AA8EC9C98D6F9E + A0AFE1DA5FBF0B5BDF36F9B41F67788532174F91C8E0B5A17C285C9147D78CFB + F79AE14FB8865FCC3C10A8F04D3A26BCE9EC762DF59BB38D1D1AEA6E841660C3 + BEE37441ABFD4D85CF008A3D97CD72E5B2A752A4A974D06FD90AA0F0B91CBA40 + 36DED7C31FA5EA99159D4518E8EF83665DA39570B8C23B276F080DF5A106D87B + 94EE0175BF3DE20FC085A4147C9B5C99031886C1B711C0F22F2DA37B4063632B + FC41A2F65AEDA9F0FA2695D7F0B321DC6AA8092D40C9F77F827AC014D49D3CEA + 3300EC381F93218ABE90988C6FA1105E1F2984E5854BE89ED4A87A00BF97A866 + 0C6B07072CD0DAFCE8F0DE104CC68E10037CAF0275DD49A8FFF084EF001E08C7 + E7EF8182E5D934804ADD01BF4B51F1AEFBA1012BB4B5F8169E87101B730E3D92 + 4D18FF5CBA3D6400C5DF7D87EEBAF51F55FA07E086F0CBC56F6E292858840026 + 41A531C29964153798A1C2B7EBD57E85F736850EE08DC3F4D35CFDA9F7FD0760 + 11AA0A0ED80BF2B3E85AA2D69AE0745223DDF56D8316E868D53C76F8900214BD + 7E88AE010DA73F080C80FD9DFCBC4CFA1250EBBAE01402B00D5AC1D8169CF0A1 + 05F84E397DE00D677EF67800B90A7A6CA06932C34FA76E4267BB2E68E1830A50 + 5101D88E74E5419224F79120482349A69D9AA336EABFA280D7E6B66C461BDD40 + FD23D97598369B434C8C4C897FD56CFFE42DB43F22AC00B467940747C689CA3E + DB34C4444741BC280AC4220CFD31736134068228F48709E8391685E618DB863E + 63183367BE33EB61EC32E77AF60907E8EF75C3A065B4FCC5B70CEF851580E68C + B2A7C934992A44072C8EF31D201ACF62DAD83F62D4C4038892ADA00B1F397C8F + C6B08F39E06E5D5BEF0BFB0D696105A03EAD241BDBED4C687F00A4196C786A19 + 003166E603E0CF32F7BD1115D31BD0E77F5CD2C1DAFD86A01C7BF0004E21808E + 00002472EAAD05BA04D81E30FE900F202D600046B51CC0DF2FEAE0A5036106A0 + 4200AA000084294FD3671E1330D73B31D1C30790E4320063CD1CC0ED0B3A58F7 + C3300368FC4849AA0D0100242F60DAA8677BD446DA2D7C8094A50CC0786BB803 + 64218049FF0112D3D0772A23D303C8C97E3E4072360330D1CE01DCFA9B0ED6FF + 28CC00EE7F98456A8C010024C85C358002700CF100B024E62E0113460EE02602 + 280A2700F91169CED53489461B00409458CA8475024C0DF3011233E8F5C0DEE9 + 0238AF85A21F1BC303800A2F8821EF5C4E91E23A530000F1C92C007B094C8FF2 + 0112D2991E30F99003684000C5E1004085C750F8B46C1C3FD94B4240007189AE + E700540BD06D800F207E8AE9018E1E0EA01E01940413405129BD809EB64563F6 + 815D7D1530E24FF8058B53F17889083E681A81A64EFF01B0D878DEA330AA827C + 80F8340660CAE202F82B02381844808C4A29B9409E069F9BBAFF83108AE74270 + 865FB8643E9E208943A312122A7536680E042046E40640FDFA341F204EC65C02 + D3831C401D02D8106C8055EBBE021D7AC39C084C78B893BE74019E281503418D + F448028E6B07A1B92B0080E8687E0F10901E0012FA1609848D03A83DA7858DE5 + 410658BD7E253D346DD71B11C243AF08CEF08A654FE349547860C253DB1DD158 + A1A5CBE13F80308A0FC02EE7006293984B801C0D2DC0F3EB5771813A5A8D6036 + F2119CE19FC991E34978223AF3043BCE67B67957D5077AB3FF00730D87B15831 + D303608203A839AB814D87027BC9322BC09AA2D56C1826507BAB814388C3A40A + 2ABC3237034FC693986E0F4E0082FEBE5FDB07BD663BC408830C40D5080A40E0 + A0978F8F3AE04EB5BE1701046F384C01BC58FC3C7736A960546F68D777C0E786 + EEBB804156765E169E224BA697F30148BA377CB56718561A6C303246426C6C68 + 5E888C8F3B407DD70CD6EEB1F22D6F9B82F742840278A9E4055E201A82424097 + 43627202489CE19DBD840520D8F5A8F7562B1FDAE0B9BE31887710AED759D40E + 48CF575EA49736E0BF06F3BA1DD18776FBF34FA73ADF0BEA2B310A60FD86B5EC + 9967CFACFB672EACDB99F7C0F0AC0943FDC360D299ADC4A4608DE99DFEA0BCC0 + 0CC5C401146F5CC70664C39104AF2670159F6D732D2778DB51F301CB1018755D + 283C8475781E40C9A6A29967960DE41B06D303A8F0ED5A634484E7016CDC54E2 + 3AA36EC5900FE02A90AECFAEF5FAFB06A04DD31131E179009B376F742B80E4A3 + 31B89EE15ACFDAD70F7AF583880ACF03D8BA65B34758F6DA762F82B314486B6F + 3F34A9F411179E07F0F2D6AD1E61BD60782990965E0B681B9B23323C0FA0F4E5 + 573CCEBC5B91F376EB6397B7E91F406787F9BFA3F6FEB5BE0EA5C369E200B6BD + 52367BD777BFE579A909AD2D08C1D0E5D3503ADC260E6047E9F61961B942E77E + 3B9CA540B6B6B48129021138806F94EE7CE4FDDD9702D9DA1C79081CC0AEB25D + 1E67DEF3D6E75B81D437B746140207B07BDB6E8F475BCFEBDFF702C920744604 + 0207B067FB9EB907407E144816A1D6503EB0E149879C13405129F9371A75AF0A + F68F23874BC643FDDB9E74C83901BEC8D3FF002E19EDAA6BF790140000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingSecure_02_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000009C84944415478DA + E5D8797013D71D07F0DF4AB275F89075D8B231B29DDA31878D4D385AC2308110 + E3038C138E1086C94C33ED4C334D031D4A9B0293C3018253A66726251308D33F + 93504A26A4211C4909D3269D5232F8920FC9D6653BB625D9C687ACCBDEEDDB53 + 5A59C692908A34D9B1ACD51ED27E3FEFED6FF72D06DFF1097BD007B0D074EABC + EE1BB55CB22AD6DF3B3EE5351EDCB5AC38E1017E77A1A3BD605176599642815A + 0B03E68F9A306A86FEC4CEB29FB080645888943DBD46F8514D3196F0003FFEFD + D7CAF2A2AC6F16E76617C512216900E285905400F140483A8058232425402C11 + 7A8D490AC022AC2852362FCE5369E559D1212435C0C1D3B7362E29547CB62857 + 2395CA646CB488109216800D9F478697CA20206744084653120270E135FE960F + 0C170982D1644A2E00367C2E195E2A8539953D4204D3FF03E07C6376BA582839 + 887E650F3AA812024012CE7EE8A0DC04103D40C007EE59F79FFE9DF3E96A2A7C + 8E462A21C3CF77798B00C1648E33C0C5C6FC52914878257FE9CA870A56AC8534 + B982FA6162D647BDF019E69DF9CC5BE6F3C0D4F8180CF7F583CD7677C8B1FC8C + 42A55D23964864FE50F789608E2700D9F21291B4ADA27A7751FE924A3A6460E0 + 7B84A797CFA06DBCD47AC7E01098076740B4F93260421997FC7E11E20AF0F171 + ED2BDAF2B5C72AAA7682CFED84CE7F5E866163179A7785B5BF2845040AB50AB4 + 855A74A838987B8C30A67E0E044B5EF477E20510DCAE69F07A3D30DF7D82D96C + 8E1FC0A513DAB60DFB0E9467A873A1FD8B8BD0A7BBFDFE8C13DFBFB36960249C + FD5F7FEB2FDB970A6F7C5490AA136A8BF2C1393901FA7E1108375DE6059E0FC1 + 85C20F0E0DBBDC9E59477EAE4A1BEA8ED1628923C027270A5C35FB4F483054C5 + 3E3F7B1226A79CAA3D8DFDA3E1ECCB56FB6CB9582AFDD746A8585506B3E87468 + 693681B05E3727703082DBE582C1E16157B765AC6EC23DD336DF6D735C012E9D + 2820B6FEFC24750E5F79FB356878D91AD6EFB0E1D5EA6CA9582C05E2EF0FC323 + 6B575035A3F94E17081B7AD8D82111DCE8141B62C2FFE185EFDF24D7CE3776B0 + C61BA0EEC01B5441BBF2E7C6B0014E5FEA9ECCCEC949174B989B1C12604D1955 + 205B9AF5206830D001422078C8F0367E78760A8560B5C61B60FF71AA075C3D7D + 2C6C80531FEA6E2FCAC95A9D91A542E7324601AC5CBD9CEA012D2D06106C3730 + A1F90864F8619B2D64F8F910FAAC96F802D4BEF83AEA013370F59DE361033CD7 + 78435256A6F94F9E5A5E41217C5A0A2B1F594AF5A496D65EC0B61B025A9EFE4A + 8FC785EE15EE1D3E14C2242AACF105F85923EABA5EB8F6EEC9B001821132BF7A + 142A57965200AD6D260A80C94FFDF3BADD60B387173E10619956F1258EE3DE97 + 9E295B1337809A175EA5BAEEB5334D110104222CE9AEADA8AC7C180178A1B5DD + 0258BD81BB8E793D6EB047183ED4143F809FBE42DDCD5D3BFB9B880158849DA2 + 1FBA2A2B8AA95AD2A6B302D4D3A700D9ED1D0EFB7D878F2B40F5F347A91A70FD + BD535101B0DF53B1E221EA1468EBE8A700BC310C1F5F809F1CA10EFCFAB9DFDE + 1F407921353668EF1C004F550B8C8C3862163EA6008D8D20785A5B7298208803 + 04601A82A09793EF681910CC3CB72C60DD9C65D402F28F60B6A197CD0AE4C438 + 917DAE79ECFAF3E8F7F08402D09D2B393CE5C29BEC13B3909A22049944086912 + 017AD1EFA214011ACDA19700A3DE0542F42E6096A17981807EA73FD3DB099875 + EC761EB70FF47786E0AEC379E4F15F98DF4C2880F67325C39D566F8E081D709A + 347C80145531BD8C79E14E2B0F40A85E4BDD14119377280CCFB40F6E5DEDB16D + 3A64D6241440DB7B25448BD143878E044059C48427D701E0D3037C00D52A7AFC + 3AD54AF70634FFE5C50ED87CC81C93638F1DC05904608A024051004086657B80 + 6B900FA0ACA4019C3A0EE0C6DF3AE0895F2618402B02688D024094B5986A7901 + 469FEFB87B980FA028A701A6BB38807F5CE880AA5F251840CB9912A2CD1C0580 + 3C8F5E86615440C2E3E003642DA3015C864407284600DEC8013234E8339991EE + 018477940F202FA501DC460EE08BBF76C09697120CA0F9DD62A2DD120540BADA + 5F034800DF380F4090495F25C06DE1003E4700D5890450704C59F6B146D1AE8B + 024098A6A4C3B20033937C808C226A3BF0F4F901CEEBA0FAD796C40020C363A9 + C4CD8FB294AA0E6B1400323903C09C02B34E3E40BA96EE01DE410EE03A02A849 + 040032BC0085D794AA54EFD808880A409AE1BF0F40B5005D06F800698BE81EE0 + 1BE600AE2180DA58021436292FA0BB6DC9B4676CAFBD11A622099FB724472553 + 48E054E71474F6450E2010CB78B7C2A80AF201641A1A60C6E107F810011C8E21 + 40519392C82BD0C0B7D6A1AF1142CD42086CF8FCA5B9AA7485148D4A0868EA98 + 80AE680052250100E4B7CFF201A46AFA1498BDCB015C450075B106585FF50330 + E9CD0B22D0E1E1A676599E2A4399063839D2237078437717BAFAA3004849E1F7 + 008C080250509748C02738802B1FE860EB9118036CD8B28E1A9A1AF516843018 + 12810D5FB87CB12A930C0F747872BF63ED23D0DDEF8B1C4024E40330EB390071 + 267D0A10CEF8023CB6653D17C864B0C080858FC086FF5E59812A5395815A1E67 + C6F9F43EAFB5DA413F1039C042C36181388DEE01E0E6003E7BBF1DB61D8DEE21 + CBBC001BAB373061E84046839943900A948564F892F222955C9549777B600170 + EAF3219D1D6C031E4815C51880AC112400E6A3D6BB9C3EB8F989DE860062371C + 26011EAF798C6B4D3218D91B8C7A137C6B1EBA0502282E5D51ACCA52CBA9F57C + 0082EA0D8F0E4FC23AF3044C4D132016C7E78188CBE583B65B033032347D64FB + CBD6D83D1021019EA8DDC40B44419008E874C890A783820DCFF612060067B623 + 9F5BAD1B9C8035F66990F970FFE32CF20788E0475E448865C07F0C16723FDC8E + 7EF68FB767FADE8CE9233112604BDD66A6E599960D9CE7C206B47C1046704D18 + 1F9D046BC7C008EEC5365A5F1DD5C5E260E3317100355BAB98804C3802E7D504 + AEE233CBFCEB71DE7EE4FB98631C2C1DFD283C2474781E40EDB6EAB92DCB040A + 0F83EE016478A3CE9214E179005BB7D5FA5B34A018F201FC05D23FEFDF6ED43E + 063DEDA6A409CF03A8AFDF1A5000897B63703DC3BFDD887D14F46DBD49159E07 + D0B0BD3E282C736E0716C1790AE4886D143A5BF549179E07F064434350D81018 + 210AA4C3E6005D4B575286E701EC78F2A9A0960F2872A12E7DCCFA1E7D2FF499 + 06FEEBF48C6E0E77289D481307B0EBA99DF377FDC04B5E889A60E84608E6FEB0 + 86D2893671004FEFD83D272C57E8022F87F3144843770F58931081037866C79E + 7B5EDFC3299086AEE443E000F6EEDC1BD4F2C197BEF00AA4BECB9054081CC0BE + 5DFB826E6D83CFFFF00B248DD09714081CC0B3BB9F5D78001441816410AE988F + 8CD53DE8900B02143629BE42A3EEF5B1FE72E470D1727474D7830EB920C07779 + FA1FA0A3E4AA4F88C9510000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingSecure_03_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000009F94944415478DA + E5D9697013E71907F0476BD9962D5FD20A1B422CD9B130872F9C8696521A1202 + B639139BA394219FD23693B69069A02D6642E2723949FBA1379300BDD2299472 + DA802FA0657ACC846602D6655B36B6245BC187E4433E65D9BB7DF7D04A2BCB58 + 125291263B78567A7757BBFFDFBEFBECBE8B00BEE093E0491FC05C93E2D5CB17 + D1419605FB7749807F193F2EFD7AD80364BC7AA546AEC8285994BD043081803E + 650234A70E5CC0FB2C60BF53AB08BC2E739F2E5EBE02868F4B05610F306FC7F9 + 847851749D4291B92A98081103102A848802080542C401041BE1D29508040826 + C2E5AB572313C089208E8DBEADC87C668572D1E28010AE443280FC9B1772B018 + E19DBCBC423C35358D6EF317E16A5555640238C3E7E616E2F3E6A57241FD45A8 + AA8E400067F89C9CE5B88C0ECF0FEA0F427575756401D0E1A385779652E165F3 + DCC2048670EDDAFF01E07CC5BC84D828D10FD05E76A2DD2AD1F3B7C897EDD041 + 4D9040B6A107F67313D313BF38D0725241855FB2AC00C7656CB707782C84EBD7 + 430C70A96261B6501855BB70C9F24C79DE0A10274BE89D93D30EFA8F9862E7EC + 775E9BC30E234303D0D3D905DD3D56F3FBC6727172D6FA141C775DF38F8B70E3 + C6B5D00150675E248C53E7176DCF58B8B88009E91EF811E199F629B4CE24BDDC + F2B01B540FEC5023AB82692C9E7F3F7F0C849A50025C3D9A7E383D77C591FC75 + 65E0981885A67FDE809EF666F479DCA7ED85D14290C8704857A4A38326C0D0D6 + 0EB7C7F68046FCC6CC879A59102C965EB00D0DC26CCF09B535D7430750752C5D + BD7AF7BEDC44D97CD0DCBA049DDA4FCF4E8D127BCB2ACD565FB6DFF0DAE1AFAD + 9435DE2E529A63D23316C2E8B00D3E69C1E09AE48A5BE8D911AC963ED068EE59 + 81201FC815995FF6F6C458571B4280EA63F2F1E2BDC7440254C56E9E3A01C323 + A3F8CE8AAE7E5FB6E5AAFD2205BE37BA0CF29FCD816974397C76AF1DFE22FDCC + 23F44C847E6B1F68B5F7ADC4E4D49AF129C238DB63737D2801AA8EC9C98D6F9E + A0AFE1DA5FBF0B5BDF36F9B41F67788532174F91C8E0B5A17C285C9147D78CFB + F79AE14FB8865FCC3C10A8F04D3A26BCE9EC762DF59BB38D1D1AEA6E841660C3 + BEE37441ABFD4D85CF008A3D97CD72E5B2A752A4A974D06FD90AA0F0B91CBA40 + 36DED7C31FA5EA99159D4518E8EF83665DA39570B8C23B276F080DF5A106D87B + 94EE0175BF3DE20FC085A4147C9B5C99031886C1B711C0F22F2DA37B4063632B + FC41A2F65AEDA9F0FA2695D7F0B321DC6AA8092D40C9F77F827AC014D49D3CEA + 3300EC381F93218ABE90988C6FA1105E1F2984E5854BE89ED4A87A00BF97A866 + 0C6B07072CD0DAFCE8F0DE104CC68E10037CAF0275DD49A8FFF084EF001E08C7 + E7EF8182E5D934804ADD01BF4B51F1AEFBA1012BB4B5F8169E87101B730E3D92 + 4D18FF5CBA3D6400C5DF7D87EEBAF51F55FA07E086F0CBC56F6E292858840026 + 41A531C29964153798A1C2B7EBD57E85F736850EE08DC3F4D35CFDA9F7FD0760 + 11AA0A0ED80BF2B3E85AA2D69AE0745223DDF56D8316E868D53C76F8900214BD + 7E88AE010DA73F080C80FD9DFCBC4CFA1250EBBAE01402B00D5AC1D8169CF0A1 + 05F84E397DE00D677EF67800B90A7A6CA06932C34FA76E4267BB2E68E1830A50 + 5101D88E74E5419224F79120482349A69D9AA336EABFA280D7E6B66C461BDD40 + FD23D97598369B434C8C4C897FD56CFFE42DB43F22AC00B467940747C689CA3E + DB34C4444741BC280AC4220CFD31736134068228F48709E8391685E618DB863E + 63183367BE33EB61EC32E77AF60907E8EF75C3A065B4FCC5B70CEF851580E68C + B2A7C934992A44072C8EF31D201ACF62DAD83F62D4C4038892ADA00B1F397C8F + C6B08F39E06E5D5BEF0BFB0D696105A03EAD241BDBED4C687F00A4196C786A19 + 003166E603E0CF32F7BD1115D31BD0E77F5CD2C1DAFD86A01C7BF0004E21808E + 00002472EAAD05BA04D81E30FE900F202D600046B51CC0DF2FEAE0A5036106A0 + 4200AA000084294FD3671E1330D73B31D1C30790E4320063CD1CC0ED0B3A58F7 + C3300368FC4849AA0D0100242F60DAA8677BD446DA2D7C8094A50CC0786BB803 + 64218049FF0112D3D0772A23D303C8C97E3E4072360330D1CE01DCFA9B0ED6FF + 28CC00EE7F98456A8C010024C85C358002700CF100B024E62E0113460EE02602 + 280A2700F91169CED53489461B00409458CA8475024C0DF3011233E8F5C0DEE9 + 0238AF85A21F1BC303800A2F8821EF5C4E91E23A530000F1C92C007B094C8FF2 + 0112D2991E30F99003684000C5E1004085C750F8B46C1C3FD94B4240007189AE + E700540BD06D800F207E8AE9018E1E0EA01E01940413405129BD809EB64563F6 + 815D7D1530E24FF8058B53F17889083E681A81A64EFF01B0D878DEA330AA827C + 80F8340660CAE202F82B02381844808C4A29B9409E069F9BBAFF83108AE74270 + 865FB8643E9E208943A312122A7536680E042046E40640FDFA341F204EC65C02 + D3831C401D02D8106C8055EBBE021D7AC39C084C78B893BE74019E281503418D + F448028E6B07A1B92B0080E8687E0F10901E0012FA1609848D03A83DA7858DE5 + 410658BD7E253D346DD71B11C243AF08CEF08A654FE349547860C253DB1DD158 + A1A5CBE13F80308A0FC02EE7006293984B801C0D2DC0F3EB5771813A5A8D6036 + F2119CE19FC991E34978223AF3043BCE67B67957D5077AB3FF00730D87B15831 + D303608203A839AB814D87027BC9322BC09AA2D56C1826507BAB814388C3A40A + 2ABC3237034FC693986E0F4E0082FEBE5FDB07BD663BC408830C40D5080A40E0 + A0978F8F3AE04EB5BE1701046F384C01BC58FC3C7736A960546F68D777C0E786 + EEBB804156765E169E224BA697F30148BA377CB56718561A6C303246426C6C68 + 5E888C8F3B407DD70CD6EEB1F22D6F9B82F742840278A9E4055E201A82424097 + 43627202489CE19DBD840520D8F5A8F7562B1FDAE0B9BE31887710AED759D40E + 48CF575EA49736E0BF06F3BA1DD18776FBF34FA73ADF0BEA2B310A60FD86B5EC + 9967CFACFB672EACDB99F7C0F0AC0943FDC360D299ADC4A4608DE99DFEA0BCC0 + 0CC5C401146F5CC70664C39104AF2670159F6D732D2778DB51F301CB1018755D + 283C8475781E40C9A6A29967960DE41B06D303A8F0ED5A634484E7016CDC54E2 + 3AA36EC5900FE02A90AECFAEF5FAFB06A04DD31131E179009B376F742B80E4A3 + 31B89EE15ACFDAD70F7AF583880ACF03D8BA65B34758F6DA762F82B314486B6F + 3F34A9F411179E07F0F2D6AD1E61BD60782990965E0B681B9B23323C0FA0F4E5 + 573CCEBC5B91F376EB6397B7E91F406787F9BFA3F6FEB5BE0EA5C369E200B6BD + 52367BD777BFE579A909AD2D08C1D0E5D3503ADC260E6047E9F61961B942E77E + 3B9CA540B6B6B48129021138806F94EE7CE4FDDD9702D9DA1C79081CC0AEB25D + 1E67DEF3D6E75B81D437B746140207B07BDB6E8F475BCFEBDFF702C920744604 + 0207B067FB9EB907407E144816A1D6503EB0E149879C13405129F9371A75AF0A + F68F23874BC643FDDB9E74C83901BEC8D3FF002E19EDAA6BF790140000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingSecure_04_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000009E84944415478DA + E5D9797013D71D07F09F649D16C69625DB80D161241FC17728994E8F81B60947 + 3A64060ACCB443FA4FDA66D2163249680A1452170890B4334993B63980A46D3A + 85120E63834F70E2B6D3992414B0241F18632C1FD8B2255B12962559B2B66F0F + ADB43A6C4948459AEC2024BD5D49FBFDECEFBDDDB766C1977C613DEC1D586851 + 3C7DE11CDAC92DF1FE5E0CE0DFFA8F367F33E901944FD736CA15CA0D854525C0 + 66B18843C642CFF88EB318AF59D47B7C1356C875FECBB90BB530F0D16656D203 + E46C3BB3285DC06D56280ABE164F8494014814424A01240221E500E28D70BE36 + 0501E28970E1E2C5D404F02288F8DC3645C18AD5EAC2E298106A531940FEFDB3 + A56C1EA7BDBCBC5A929B9B47B4458B70B1AE2E3501BCE1CBCAAA253939B974D0 + 6811EAEA5310C01BBEB4B44A2225C233834683505F5F9F5A0044782EA7FD113C + BC34C72F4C6C08972EFD1F00CED4E42CE2A7095E40BFB21DFDAC1A5D7F0B22F9 + 1CDA290706581FBA603FED9873FC7EF7AD771478F89295951289942A7B800742 + B87C39C100E76BF28B389CB4A6FC92AA0279F96A10658A891FC7E65CC4C3E3A6 + 9EA9F78C369713A62D5360181A86318369E435FD5E51A6EA892C89C4D7E71F14 + A1A1E152E200F0232FE008B515EBB62AF38B2BC990FE81E7094FB6BBD136B3C4 + 7AE3E81868EE38A1515A0773EC74E6F9FC01101A130970F190EC80AC6CF5C18A + C7B780CB6183EE7F3580A1BF07BDB647F4790E970362A904640A19DA690F0CF4 + F543DBCC0ED0899E0BBEA8098360348E83D5628670D7094D8D971307507758A6 + FDC60F769565489780EEEA7918EABC76CA6DF3ECDC7274C414C9E7373E73E0EB + 5F9576B4AD538FF064CA7CB0DDB7C267B7D870495CEB173A3C82C938013ADD0D + 1378B03B7245C163A1AE189B9B1208507F586E5FBFF3B0808546B12BC78FC0FD + 699B647BCDF064249FA547FB42856427770B543C5A0A73A83B5CBFD10F7FCFBE + 1E103A1861D234019D9D374D9E59F71ABBDBA30F77D9DC924880BAC372ECC9E7 + 8F107DB8E90FBF86A7F60F46F43BDEF00A7599244B2C85672C1550BDBA9C1833 + 6EDEE881BF4A74CCC12C00010FDFDD45861F3CB5B513FFCE707387D6E686C402 + 6CDCF52A31A035FDB1266200C58E0B2372F5CA6559D9B944D01F592BA1FA2BA5 + C400D971B317FE92AD0D1ED12984A9C909E8E9EA30795CBEF0DE2514426B4BA2 + 01761E222AA0F94F07A30138BB384BF23DB9BA14D86C36FC180154AD5A495440 + 47C76DF8B3581B72B4C7C3F7766B42860F8770B5B531B1001B7EFE1B54016E68 + 7EE750C400B0ED0C4F29E09ECDC8946CC2119E9DAE86AAEA12A2923A3477E043 + B126685A6B9E32C2ED9EF9C3874218D4DF4D30C0CF6A50E9CE42CB7B47220708 + 407875C90EA8AC2A220034DABBF0419686D1EF2D5326E8BB15597806029F771A + 5D9239F47FDBBC356100EB7FFA0A51BA2DEF1F8D0EC00FE1ADE2E73755561622 + 8059D0E8F4703253434F66F0F0FDBDDAA8C2875A1207F0DC01E26AAEE5F86BD1 + 0350087595BB9D95152A622CD1760EC289C51D44E95BCD46B87B5BF7C0E1130A + B0EED97DC418D07AE2F5D800A8EFA9282F20BA80B66B188E2300ABD904FABEF8 + 844F2CC04FF6123BDE7AF2770F0650A620E606BAEE11F8ADFB0A0CF577C52D7C + 5C016A6A80BD4DA6DE8361D82E0C58791846B6E3CFA80DFF531430DAFCD605B5 + 110DF83F8CDA866CB3BA449E69B7E8ED1EE7672FA2DFF3241540E749F59E69BB + E7E884750E78DC344817A48148C0460FF299C365032B0D3DD82CE2999D869ED9 + 541B7ACD6693CFE47B723B36B5CEBB9DD3E182DE1B636036DAF67EEBC5816349 + 05A03BA936740FCEE672D00E8B84910370252AB28D7A786C830C8034E96A62E0 + C3EEDF20309C332EF8BCB96F7CED4B03794905A03DA1C63AFA9D64E86800B295 + 54787C1D80676684092079943CEF4D6BC86A40AF3F3DDF05DF7E69202EFB1E3F + 80E308E06E0C0062397ED7027501AA02ECA34C80EC4A12C0D649037C72AE0BBE + B33BC900340840130300276B3971E4D92CB2BF7B1C062680B88C0498E9A101DA + CE76C1E3BF4832808EF7D59876200680CCA5641B7E6D8FDA30A7910990F50809 + 60BF9DEC002A04301B3D40461E7A8F67242B009B9D6402641691008E7E1AE0EA + C75DF0C4CB490670F33D15A6D3C700B048EA1B037000978501C05E4C9E25C0A1 + A701AE208075C904F042DDCE353F1C6DF8B433068034513619D60BE0BECF04C8 + 5012DB8173C80770A613D6FD529F1C0078F8E25C75E36337DF12760DC600909E + 4901505D60CEC6045824232B60769406684500EB9301C01B3E4B9A292CBA7208 + 62021066F8AE03D058804E034C00D132B2025C061AA005016C8827C0EBED07AF + A19FE2751B3AD69EDCFE7144776FBDE1C53959420E9F03CAFA57A07B287A0036 + 3F9D71298C464126407A1E09E036FA00FE8100F6C411E0832FDEC54419E9706F + FCDE806EECBFAB1642F086CFCE110BB9283C3E699123809E580078023F00FCDB + E798004229D905E6CC34403302D8186F80A5F225609DB22E8840862F6C94E0E1 + 055C20E66C68BA26AB3B003DC3310070B9CC0A6061010062E214091E2B0DD074 + BA139EDC1B67806508005F2CF32078C34B73B3853C149E9CBE12FF43FEC55FC1 + AD6157F4009C342600B59E06E02F26BB00664B2C40BE7C29503373B098118281 + 89E00D9F932B11F2843C3A383977C76069ED3EE81D891E60A1E9309B2F222B00 + 1C3440E3291D7C775F6C3759C2022C572CA3C36001088B054BCAF1F0B9795274 + E4793494775BFC7D5EC361D00F9A81C78933003E46E0002C17B1DE6E73417B7D + EF380288DF749804C8A79A30FA0E8EC56C81D1F1D14101579893979723E40BF9 + D43A2F81F76E0E06A2DE4F807DBD11A66730E0F3137343C46E7781F6F311308D + CDECDDB47F307E3744700099723975447D0840205881C7E7011F1D796F64FFF2 + F77E02300F087BDA40D8F71F60396CBEDB59BE62F1BBE585856803E66DB0909F + F34C8007DEBCE61E3A16D75B6238805C29A3E260BE7B777E654EF50E7A1B2F16 + A31AFC009D8E59308D4FDA6F8DF76D7CE3A9B7DBE3B1B3895868008552CE08E3 + AD00FF2EE13FE8F9977F609770DA9D6024C2DF4EEAF00C00658122B8B4C304F7 + BE666291ED78F88971534A840F02003A24B38787AD06FF2E811687DD01E30663 + CA846700141428BDB1E8C1286C35F81F7D0A0D0F6F304CA4547806C08A150521 + FB378D32CF00E940653F366648B9F00C00D58A158C23ECBBD8A1A3D3C1FDBB84 + 7DC60EA3291A9E09A0528518D820A01A82BB8465CA0223E3F786B4A35F54453A + 954EA6850650ABD4E03BC7434035F8FEA8176A8034E30886E188A6D2C9B6D000 + 85AA4260147BB86A083340E208C32988400314A98A022E6E438FF6F30D90E6C9 + D443A0018AD5457E2103AEF4034E81F30D90E649734A21F80114534D986FC212 + 499780E001329510688092C292A0FE1D5C0D910F905308413F36D0B57BCDFED2 + 871D72418037FE79EC6EA6304B19EF2F37DA26AEBFBCF6C0AA871D7241802FF3 + F23F15CAC49BB0BB8E570000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_01_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000009C34944415478DA + E599797013D71DC77FBA8CC108CB5E5BB66C23F936B6658EB6508626D052AE10 + 2031A70133FD83261C2194F207603AED74F20F3197B94C02290E69DA269321E1 + 3E3DCD0CA5CD74DAE934800F5992ADCBB26559872F7C0A6DF73D492BAD2C61C9 + 9682D4BC999DB76FF7F776F7FB79BFF77BC7B2E07B9E582FFB03C64A926D57BF + A43E726DA89F4B02FC5DF369E9AB110F2073DBB5BB6249E68ABCFC19C066B170 + 93B1A81C7D388B71CE72969109CBE73DCFF4E5D56BA0FEB49415F10092377C31 + 754A2CEFBE4492B5209410A20640B8204415807040883A00A186F0D5B5280410 + 4A0857AF5F8F4E002E087193785F4BB2B2E7E6E6158C0BC2B5680620DE7CA598 + 1DC37D58523287100A53F0B560215CBF71233A01B8C44BA57388E464212D3458 + 08376E46210097F8E2E2D9441216CF141A0C849B376F4617002C9EC77D5888C4 + 27257B88191F845BB7BE0300BB77EF9E4AA55F53A71BA917E752796C80550749 + 925452F9E77D7D7DA76F59174B90F81945B30822C9E9F600138270FB769801EC + DFBF3F9FC7E3DD2B2C2CCC2A2E96427C7C3C50A2C066B3C1C8C88833B7E1DC66 + 6396878787A1B7B7173A3A0C60325BF50FCCB3E352F3E60908C2DDE7270AE1CE + 9D5BE103805A9ECFE73F5DB66C79664141C12881AE633408070CCFB2C9640275 + 472F18C4BB00383CE6783E010877C309E0C08103BF954A4BDE5BBA7409F4F70F + C0A3477F83969616181A1A0AA83E97CBA53C46006888B3DBEDD0D6A6072D770E + 7427BC3A7A52E30782C964849EEE2EF0374FB877F77658013CDDB66D9B942008 + A8ADAD85FAFAFACF9E3D7BF66E7575B53990FAF37FF1C14FB2053D5FCF149131 + C9C929D0D7F70CD4A641D0A7BFED21DA3F04B3A913EAEAFE6B063BD92C9664CD + F33563BC7F2F8C000E1E3C38B077EFAF62519FBF78F102EACF445555952590BA + AE689F979B47CC1DFC336465E5E0AEA2D6EA402539E8257A34048BB99302FEAD + D93E6C5B3460B36BFC4D9B1F841900B96FDF3EDC97ABABCF4165656540EF7189 + 97E44A09414212CC683D02D9D979382E68B56A68CEFC0D3398794140E21B1B1C + E2B59FADAF47CFF4B776A8BD7F27BC00280FC01F7EFEFCF9800148CAAFEAC5B9 + 4569824421165AA87F1F7B000A863A9D069492C3A323BA1382D5D209B286C766 + FB885BBC2BF98250FB20CC00F6EC79177FF8871F7E100C802BD304C43A716E31 + B0D96C28A2004824D918A45EAF0385F8B0CF688FC4CB1B9FF814EF0FC25F6BEF + 8617C03BEFECC11F7EE1C2858001C0862F6232637957F8F1C46A0441DA7E14C4 + E24CDC95DADB5B412EAE18B5ACEDB29A40217BB1785F10B41A557801ECDAB51B + 7BC0471F5D0C1C8017849571B72123438C9F6330B441D3F40A46BFEFB69A41D9 + 149878068449319F0390839A3F95AE0F1B809D3B77E296BB74E90FC101F080B0 + 29ED9FABD3D2A6630046633BC8322AE8C50C12DF227F1A94785F296C0076ECD8 + 8101D4D45C0A1E8013C2C1ECFF0C894419B82B7576764063FA21ECFA3D5D2650 + 29EA262C3EAC00DE7AEB6D3C7E5FBEFCF1F800389F939A9AE69C121BA18102D0 + D365068D3234E2C30A60FBF65FE20FFFE493CB130220148AF0732C54A4FF66F2 + 76D0B534844C7CA801B0376EDC78881ABEF6526E8AF7A91CE3348B5E984CB43C + 0293EC2364CCD93F5E38B69F2ADA230AC0A64D9B0E51CBD8233D3D3DB88C1634 + E8E070388CDCD7357FB9F735B430EAE8E8006A5D51414DB0DE8F28006565651D + 06834188CE5F24D6FBDA8CC2223CE941E728D769350CDB1FCD9B8FAFD73DF916 + 979F3F7F0ECDCDCDC673E7CEA5441A00B2B5B575CCD6F6BE96975F001C4A209B + 3AE7B03978C6E7693BE787733180C6FAA7741D994C0667CF9E0DC9B7870CC0E6 + CD9B499D4E1734809CDC3C860718DADB18B63367FF00036A92354436802D5BB6 + 905AAD3668009959D9340024D468EC60D84A4B66E1FB4A45135DA7A9A909CE9C + 39F3FF01402C9650EECFC6EE8FBA01DACCF0B42D2C926200AA16255D472E97C3 + E9D3A7230BC0D6AD5B498D46133480F4F40C07000E177B80D56A61D8E6171452 + 653668D4AAC806505E5E4EAAD5EAA001A48A44B885B9140004A2A7BB9B619B93 + 9B8F01B4EADCDEA55028E0D4A953910340FC5E62F142F9CABAF10048160AB1FB + 73B88E51A0AFAF97619B959D4301E2407B9B7B84512A95505555151900907856 + 0CF97061FD2A42A552050D209120B0702ED7110306FAFB19B6683F007986B1C3 + 107900907836253E259F200AAE2DC05BDFC102100812B08B73509902313434C8 + B0453102954D547074D5A1264270F2E4C9D001901C49BC0240C6F60F59CB3A7F + 0F7DC188171508892909B1905E336B5C00F8FC6918002A230FB0512B484FDB54 + 511A2E5B2D66BA0E7ACF891327420720F348222912A7409BD6F00D0561F95810 + 5CE2D367A41253132653AB1212D26A66E2960916405C5C9C630EC0758C0268BE + EF698B63041520D14F8EB00258B0E4C7A092ABC784E0100F0FA7178A087E621C + D8491248D20EA28F4B70DF0C16406C6C2CA38C92A72D8A11688440C1D1658362 + CDF1E3C7430BE095A5F3F1CFCB16B98682D0EE13824BBCA428839886C483433C + AA9752533C2E003C1E8F51761D2EDB788100031818E8A76DD06873ECD8B1D002 + 58B874012D48A5D0805EC384E0129F5D2C26A6117CAAE51DC249671D614D111E + 9F830530D67298CFE7E3EE313C34145E008B96BDE214E310D4A250D31026B313 + 25487CAE34938827A639DC1E5C00ECB89CF4973CD034EAF0B550029832650A06 + F0DC66C365F47CBD5E6F3C7AF468E896C308C0CF962FA45B13BD0479438B5C05 + 6D6AC3BF800D39F925398420291EDF670220B1374C7E9C08EC4753F1EF6C14C8 + C2B1218252575717FACB5C51595919BA0D1104E0E72B7ECA10844120085477E0 + C74F8504977897973801D89D76A49DC410E26404B007B97EB7B626B83DD6491D + A79CE243B72586002C7D6DB1B3E59D2DEB794E8BF568792F18DE31A1DBD20BDA + 06BDD93ECC5AA4FD9D25241B98E1483480E52B9738053AC5B95A9621D67DCD7D + DFCEA88772ABA91B340DAD94788868F10C002B5E5F36BA659D820283E1F00024 + BEA55E1315E2190056BEBEC2DDA21EC19009C01D20DDE76E3B4BA7159475AAA8 + 11CF00B06AD54A8F0048BE1806ED196E3B73A705E44F9BA34A3C03C09AD5ABBC + C43AFBB66710F41320CD460B343E91479D78068037D6ACF112EB03868F006932 + 9AA0FEB12C2AC5330094BEF1A657CB7B04395F439FF3BE52DE0C3A95FEDFCF86 + 2C8B035D4A4752A201AC7B73AD7FD7F71CF27CC40445130541DD1AD0523AD212 + 0D6043E9FA5162E940E7391CFA09908A262568A310020D6053E9C6178EEF8104 + 48852CFA20D000CAD69679B5BCF7D017588094CB1451058106B065DD16AFA9AD + 77FF0F3C403A20E8A202020DA07C7DF9D80BA02002A413C23D7585F5B5972D72 + 4C00922309FFA0169B0B42FD708AC3579AC396752F5BE49800BECFE97FE844B4 + AA520101A00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_02_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000009A34944415478DA + E599797013D71DC77F3A1C4B0661D96B4B96F1850D768C6DD2064833D43149CA + 7D2584147C3193294D210428F00747679AA4EE1FD4E630976920C5817F9AB493 + 693BFDA361863F5A4AC34CD36426C1186CD9D6E94397657CEAC068FBDE9376B5 + 2B4B58B2A522356FBCDE7DBBBFB7DAEFE7F77BBFF7DEAE00BEE345F0B41F60BA + D2F4C7F6AF335225CF47FBBEC3636ECDA16DA545710FE0F467F7EFE5656796C9 + D3D290B704E0FB2345400EBC35E690A90938CA04415476F768E0276B8B04710F + 60D7993BE9E505F2AF73B2320BA209216100C40A4242018805848403106D0809 + 09209A107A34090A8081505190FE4D8E8ACA4D95CF0C4242033874E9CB9525F9 + 699F676729A5D29414465A4410121600235E85C54B5380A33322081A6D020260 + C52BFD9EE78A8B048246AB4D2C008CF82C2C5E2A8529993D4208DAFF0580BD7B + F7CE45E5103ADC2E100816A2BD24CCA64E9AA6BBD1FED3B1B1B173C9E56F2D25 + E2154AA9048B0F35BC450041AB8B3180C3870F17272525DD282D2D5D5056560E + A9A9A98044C1E4E4243C7AF4C8B79F24FBC9497EDDED76C3E8E82898CD26B00F + 3D34E52EDF969693BF28592249F18B9A25045D2C0160CFCB64B2B6356BD61694 + 94944C11C86C5341786170EB369B0DEC23E3B07CF37E108B9F6195CF16424C01 + 1C3972E497E5E5150DAB57AF82890907DCBEFD4FD0A061C7E57285D55E2C16A3 + 88918342A1048FC703FDFD7D40152E87FC8A97FD413C0D04A7630245920B42CD + 13743A5D4C01B4EDDCB9B39CA228B879F326B4B7B77F323E3EBEBFA5A565309C + F687CEFC6D733A6DFC73D2A3215166A612C6C6C66178C20DCB36EEE3090E05C1 + 81C40F98CC0EA7EBB16D7E16951B6CC6A8D7C710C0D1A3471D070EFC5C82FBFC + 952B97717FA69A9B9BED6189F7657BF93C99F4EEE7E761C18222D2558CBD46A8 + AC7E7F8AE040084E870306CC6647A77E68FD8873B22DD4B439D600E883070F92 + BEDCD272111A1B1BC3FA1D467C4646A63439590AFFFAE43D282C5C44F282C1A0 + 83AABA5F33B28342703A1D60F2896FDEFBC22D7C35D4DAC1106B002802C8835F + BA74296C0097FEDA399AA950CC4D967827395F200038027032341AF5F0525D83 + 574010082E2CDEC217CF94601030D09802D8B76F3F79F00F3FFC6DD8009AFED0 + FE55B642BE5426A7505F161000F9F98504645F9F115EAA6DF089E643C0E2CD16 + 4B50F1A120180DFAD80278F7DD7DE4C12F5FBE1C3680B73EF8BBA4AC4CF96F55 + 46EA120CE1CEA7EF435E5E01E94A0303BD5059DBC0F1BCF7962E97032CD3880F + 0661747424B600DE79672F89808F3EBA12368040086D37CE434E4E1EB98FC9D4 + 4F00F8F4937F6EA7132CD6F0C4732194E6A6FD030DAFEE233BCA96C50CC09E3D + 7B88E7AE5EFD5D4400B8106C5F5D5F929D9D4B00582C035059D3C08E636E9713 + AC118A0F56620660F7EEDD04406BEBD588013010948E1B0E952A877425ABD50C + 3FACF176011CF6369B75D6E2630AE0EDB77F46C6EF6BD73E9E1100E63E5959D9 + BE29B185007047517C4C01ECDAF553F2E0D7AF5F9B1500854245EE63B75B61D9 + D6633038688B9AF86803106EDFBEFD9850283C80863025B9B940C06ED1A88B93 + 53685A2CBBDA72FA57BB51D513570076ECD8710C2D634F8C8C8C781F162D68F0 + 26128978FB60E742ED03CFE18591D96C06B4AE388E2658BF892B00D5D5D56693 + C9A4C0C74F121B78EED9D2C580A2861CE33D9EA0706D97BDF022397FEFEE37A4 + FEF8F163E8E9E9B15CBC7851196F00E8DEDEDE69BD1D786E517109889040213A + 16094564C6C7B5FDFED2E504C083F636B64D4747075CB870212ACF1E35003535 + 35B4D1688C1840D1C245BC08300DF4F36C977CEF7902A8B3E37E7C03A8ADADA5 + 0D0643C4000A1614B200B0508BC5CCB32DAF788E5CEFEEEA64DB747676C2F9F3 + E7FF3F00E4E5E5A3F01792F0C7DD60D066E5D9962E2E2700B49A6EB68D5AAD86 + 73E7CEC51780BABA3A5AAFD7470C60FEFC1C2F00919844C0D0909D675B5C528A + EA42D0EBB4F10DA0BEBE9EC6EFD9220590A552110F8B11000C62647898675BB4 + B09800E835FAA3ABABAB0BCE9E3D1B3F00F21AD2CBAAD41BEECD0440A64241C2 + 5F24F68E026363A33CDB05854508900806FAFD234C777737343737C707002C5E + F00C7DABAA7D1385BFB6440A209DA28870B1D89B031C13133C5BFC3E004786C5 + 6C8A3F0058BC108957165354C95F569057DF910290CBD348888B701D8170A165 + 2ED716E7085C470B20B60D9A08C1993367A20720FF44FA6700B464C235546DFD + 00C62211AF2A515029691298DFFADC8C00C864F308005CC711308956905CDB2C + 5536A90FD907D936F8774E9F3E1D3D000527D269559E12FA0DA63B08C2DAE920 + 30E2E73F9B45CD4D93A255090DD9AD4B886722053067CE1CEF1C40EC1D05F07C + 9F6B4B72044A9023C30F630B60C5AA1F8056AD9B1682573CDCCA2D5551B2F439 + E0A169A0690FA83EAE207D33520012898457C7856B8B73041E217072646C70AE + 3975EA54740154AE7E917CBCD4A8F508C24050088CF8FCC539D43C2C1EBCE271 + 3B656BD98C00242525F1EACCC6D8A6CAE50400FEDAC3D8E0D1E6E4C993D10550 + B57A052B48DBA5873E3D1F0223BEB02C8F9A47C990E7BDC2695F1B45EB62323E + 470A60BAE5B04C2623DDC3ED72C516C0CA35953E315E419A2E1D0B412A4CCFC7 + E217961750A9D43C6FD80303C043EA19BF5F04FA0746722E9A005252520880C7 + 9393A48EEFDFD7D767696A6A8ADE72180378656D15EB4DFC23381A346A2DF4EB + 4C5F82108A8A2B8A2879462AB9CE07409368907E9B0EC2DB73C9E76C9CC862F1 + 420497870F1FE2AFCCC71B1B1BA3F7420403F8D1BA97798208080C01750759EA + 5C4863C43351E203E0F1D9D11E9A4098D34181D0290EF96A6B96AFC7AC683BEB + 131FBD576218C0EAF5AFFA3CEFF32CF79815CBF17C008CC09C306C1F05C3FDBE + 418F5BB0D2F09EBD3D1A0F1B8BC20258BB61954FA04F1CE3599E58FF39FF750F + AF1DDE0FD986417FBF178987B816CF03B06EE39AA99EF5090A0F863702B0784D + BB3E21C4F3006CD8B8CEEF514E32E403F02748FFB1DFCE6E1D82EE7BDA8411CF + 03B069D3064E02A49F0C838D0CBFDDA0D50EEAB69E8412CF03B065F3A600B1BE + BECD4D822112E4A0C50E0FEEAA134E3C0FC06B5BB604880D02234882B4596CD0 + FE6D47428AE701D8FADAEB019EE724B960439FEF7AB7BA078CDABEFF8CBBECAF + 86BB948EA7C202D8F6FA1BA1439F3BE405C9095D9D0882AE37ACA574BC1516C0 + 8FB7BE39452C9BE8B8C3618804D9D5D90D860484C002D8B175FB13C7F7701264 + 5747E241600154BF511DE0F9C0A12FBC04A9EEE84A28082C80DA6DB50153DBC0 + FE1F7E82F442302604041640FD9BF5D32F802248903E083774C787D63F6D91D3 + 02C83F91F6055A6CAE88F6CD11873FE97F61DFF6B4454E0BE0BB5CFE0BCE85B1 + AAEDB66B0B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_03_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000009C34944415478DA + E599797013D71DC77FBA8CC108CB5E5BB66C23F936B6658EB6508626D052AE10 + 2031A70133FD83261C2194F207603AED74F20F3197B94C02290E69DA269321E1 + 3E3DCD0CA5CD74DAE934800F5992ADCBB26559872F7C0A6DF73D492BAD2C61C9 + 9682D4BC999DB76FF7F776F7FB79BFF77BC7B2E07B9E582FFB03C64A926D57BF + A43E726DA89F4B02FC5DF369E9AB110F2073DBB5BB6249E68ABCFC19C066B170 + 93B1A81C7D388B71CE72969109CBE73DCFF4E5D56BA0FEB49415F10092377C31 + 754A2CEFBE4492B5209410A20640B8204415807040883A00A186F0D5B5280410 + 4A0857AF5F8F4E002E087193785F4BB2B2E7E6E6158C0BC2B5680620DE7CA598 + 1DC37D58523287100A53F0B560215CBF71233A01B8C44BA57388E464212D3458 + 08376E46210097F8E2E2D9441216CF141A0C849B376F4617002C9EC77D5888C4 + 27257B88191F845BB7BE0300BB77EF9E4AA55F53A71BA917E752796C80550749 + 925452F9E77D7D7DA76F59174B90F81945B30822C9E9F600138270FB769801EC + DFBF3F9FC7E3DD2B2C2CCC2A2E96427C7C3C50A2C066B3C1C8C88833B7E1DC66 + 6396878787A1B7B7173A3A0C60325BF50FCCB3E352F3E60908C2DDE7270AE1CE + 9D5BE103805A9ECFE73F5DB66C79664141C12881AE633408070CCFB2C9640275 + 472F18C4BB00383CE6783E010877C309E0C08103BF954A4BDE5BBA7409F4F70F + C0A3477F83969616181A1A0AA83E97CBA53C46006888B3DBEDD0D6A6072D770E + 7427BC3A7A52E30782C964849EEE2EF0374FB877F77658013CDDB66D9B942008 + A8ADAD85FAFAFACF9E3D7BF66E7575B53990FAF37FF1C14FB2053D5FCF149131 + C9C929D0D7F70CD4A641D0A7BFED21DA3F04B3A913EAEAFE6B063BD92C9664CD + F33563BC7F2F8C000E1E3C38B077EFAF62519FBF78F102EACF445555952590BA + AE689F979B47CC1DFC336465E5E0AEA2D6EA402539E8257A34048BB99302FEAD + D93E6C5B3460B36BFC4D9B1F841900B96FDF3EDC97ABABCF4165656540EF7189 + 97E44A09414212CC683D02D9D979382E68B56A68CEFC0D3398794140E21B1B1C + E2B59FADAF47CFF4B776A8BD7F27BC00280FC01F7EFEFCF9800148CAAFEAC5B9 + 4569824421165AA87F1F7B000A863A9D069492C3A323BA1382D5D209B286C766 + FB885BBC2BF98250FB20CC00F6EC79177FF8871F7E100C802BD304C43A716E31 + B0D96C28A2004824D918A45EAF0385F8B0CF688FC4CB1B9FF814EF0FC25F6BEF + 8617C03BEFECC11F7EE1C2858001C0862F6232637957F8F1C46A0441DA7E14C4 + E24CDC95DADB5B412EAE18B5ACEDB29A40217BB1785F10B41A557801ECDAB51B + 7BC0471F5D0C1C8017849571B72123438C9F6330B441D3F40A46BFEFB69A41D9 + 149878068449319F0390839A3F95AE0F1B809D3B77E296BB74E90FC101F080B0 + 29ED9FABD3D2A6630046633BC8322AE8C50C12DF227F1A94785F296C0076ECD8 + 8101D4D45C0A1E8013C2C1ECFF0C894419B82B7576764063FA21ECFA3D5D2650 + 29EA262C3EAC00DE7AEB6D3C7E5FBEFCF1F800389F939A9AE69C121BA18102D0 + D365068D3234E2C30A60FBF65FE20FFFE493CB130220148AF0732C54A4FF66F2 + 76D0B534844C7CA801B0376EDC78881ABEF6526E8AF7A91CE3348B5E984CB43C + 0293EC2364CCD93F5E38B69F2ADA230AC0A64D9B0E51CBD8233D3D3DB88C1634 + E8E070388CDCD7357FB9F735B430EAE8E8006A5D51414DB0DE8F28006565651D + 06834188CE5F24D6FBDA8CC2223CE941E728D769350CDB1FCD9B8FAFD73DF916 + 979F3F7F0ECDCDCDC673E7CEA5441A00B2B5B575CCD6F6BE96975F001C4A209B + 3AE7B03978C6E7693BE787733180C6FAA7741D994C0667CF9E0DC9B7870CC0E6 + CD9B499D4E1734809CDC3C860718DADB18B63367FF00036A92354436802D5BB6 + 905AAD3668009959D9340024D468EC60D84A4B66E1FB4A45135DA7A9A909CE9C + 39F3FF01402C9650EECFC6EE8FBA01DACCF0B42D2C926200AA16255D472E97C3 + E9D3A7230BC0D6AD5B498D46133480F4F40C07000E177B80D56A61D8E6171452 + 653668D4AAC806505E5E4EAAD5EAA001A48A44B885B9140004A2A7BB9B619B93 + 9B8F01B4EADCDEA55028E0D4A953910340FC5E62F142F9CABAF10048160AB1FB + 73B88E51A0AFAF97619B959D4301E2407B9B7B84512A95505555151900907856 + 0CF97061FD2A42A552050D209120B0702ED7110306FAFB19B6683F007986B1C3 + 107900907836253E259F200AAE2DC05BDFC102100812B08B73509902313434C8 + B0453102954D547074D5A1264270F2E4C9D001901C49BC0240C6F60F59CB3A7F + 0F7DC188171508892909B1905E336B5C00F8FC6918002A230FB0512B484FDB54 + 511A2E5B2D66BA0E7ACF891327420720F348222912A7409BD6F00D0561F95810 + 5CE2D367A41253132653AB1212D26A66E2960916405C5C9C630EC0758C0268BE + EF698B63041520D14F8EB00258B0E4C7A092ABC784E0100F0FA7178A087E621C + D8491248D20EA28F4B70DF0C16406C6C2CA38C92A72D8A11688440C1D1658362 + CDF1E3C7430BE095A5F3F1CFCB16B98682D0EE13824BBCA428839886C483433C + AA9752533C2E003C1E8F51761D2EDB788100031818E8A76DD06873ECD8B1D002 + 58B874012D48A5D0805EC384E0129F5D2C26A6117CAAE51DC249671D614D111E + 9F830530D67298CFE7E3EE313C34145E008B96BDE214E310D4A250D31026B313 + 25487CAE34938827A639DC1E5C00ECB89CF4973CD034EAF0B550029832650A06 + F0DC66C365F47CBD5E6F3C7AF468E896C308C0CF962FA45B13BD0479438B5C05 + 6D6AC3BF800D39F925398420291EDF670220B1374C7E9C08EC4753F1EF6C14C8 + C2B1218252575717FACB5C51595919BA0D1104E0E72B7ECA10844120085477E0 + C74F8504977897973801D89D76A49DC410E26404B007B97EB7B626B83DD6491D + A79CE243B72586002C7D6DB1B3E59D2DEB794E8BF568792F18DE31A1DBD20BDA + 06BDD93ECC5AA4FD9D25241B98E1483480E52B9738053AC5B95A9621D67DCD7D + DFCEA88772ABA91B340DAD94788868F10C002B5E5F36BA659D820283E1F00024 + BEA55E1315E2190056BEBEC2DDA21EC19009C01D20DDE76E3B4BA7159475AAA8 + 11CF00B06AD54A8F0048BE1806ED196E3B73A705E44F9BA34A3C03C09AD5ABBC + C43AFBB66710F41320CD460B343E91479D78068037D6ACF112EB03868F006932 + 9AA0FEB12C2AC5330094BEF1A657CB7B04395F439FF3BE52DE0C3A95FEDFCF86 + 2C8B035D4A4752A201AC7B73AD7FD7F71CF27CC40445130541DD1AD0523AD212 + 0D6043E9FA5162E940E7391CFA09908A262568A310020D6053E9C6178EEF8104 + 48852CFA20D000CAD69679B5BCF7D017588094CB1451058106B065DD16AFA9AD + 77FF0F3C403A20E8A202020DA07C7DF9D80BA02002A413C23D7585F5B5972D72 + 4C00922309FFA0169B0B42FD708AC3579AC396752F5BE49800BECFE97FE844B4 + AA520101A00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_04_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000009B84944415478DA + E59A797053C71DC77FB60E5B38C60259F2892E4B3EB09D40294CA69D0C994E93 + 1E33E90C6DC2CDF40F9A700428613A982BFFF00F98CB5C264002254D3BC95052 + 6C2E633CA585B49D7612DA107C9F3A2C5B9225EBC0B62C5B58DD5DE93DEBE9B0 + 255B2A52B3CCF3BE5DED3EBDEF677FBFDF1E2209BEE529E979BFC07449B2E1FA + E7E8257F1EEDE7BA01FEA6FE64C52B710F40BAA1A64E2C91FE5859580CC94949 + 64C892508E5F3C89719FE42DE32649413FF34D9F5FAF01D5272B92E21E80F0AD + AB2FCC49E5D44B24B2EF451342C2008815848402100B08090720DA10FE549380 + 00A209E17A6D6D6202A020A4A570EE4B64F2A50A65D18C20D4243200F19A6BA5 + C95CF683F2F2C50291288BD4450AA1F6C68DC40440892F2B5B2C100A45B4D048 + 21DCB899800028F1A5A58B0499443C536824106EDEBC99580088780EFB410916 + 9F29F411333308B76EFD0F006CDDBAF50594DE43B72BD1172B509E1A66D751B7 + DBDD89F2CF8686864EDDB2FC4082C5172F7C4920C8F49A3DC0AC20DCBE1D6300 + BB76ED2AE47038774B4A4A64A5A565909191014814B85C2E181F1FF7E62E92BB + 5CCCF2D8D8183C7DFA140C063D98CC16DD3DF3A2B46CE532BE4030E9F3B38570 + E7CEADD801C0239F9E9EFEE4F5D77F242D2A2A0A10485D81203C307CCB269309 + 5486A7A0176F01607198F3F92C20D4C512C0EEDDBBDF2F2B2B3FF8DA6B3F8491 + 11077CF1C543E8EEEE06A7D319567F369B8D2C860F788A9B989880BE3E1D68D8 + 8BC136EF95C0454D0808269311EC362B845A27DCADBB1D53004F366CD8502610 + 08A0A1A1019A9A9A3E1D1E1EDE5E5D5D6D0EA7FFCBBFFCE0FB72BEFDFE8B396E + AE5098054343C3A0328D822EEF1D1FD1A121984D03D0D8F81F334CB8BBC412D9 + B2602BC6FABB3104505151E1D8B1E3D7A9D8E72F5EBC80FD5950555535184E5F + 2ADA2B154AC1D2D13F804C56405C45A5D1428FA4C24F74208441F30002FEB579 + 62CCB5DCE19A50875A36DF8B3100F7CE9D3B892F57579F85CACACAB0BE87122F + 519409F8F332A1B8F710C8E54A1217341A157449F73383991F042CBEA5D9235E + F3E99B4DF899A1F60E0DF577620B00590079F173E7CE850D40B2FEBA4EAC5898 + CB9F2F22424B74878905E060A8D5AAA153B22F30A27B21580607A0B5F9B17962 + 7C523C95824168B8176300DBB66D272F7EFEFC079100B836972FF88558510AC9 + C9C9B010019048E404A44EA7850EF1BEA0D11E8B6F6FF926A8F85010FEDC5017 + 5B00EFBEBB8DBCF8850B17C206006F5DE54A5339D7D233046F600865FD47402C + 961257EAEFEF8576F1DE806DADD562828ED6A9C50783A051F7C416C0962D5B89 + 057CF8E1C5F001F841F869DA6DC8CF1793E7E8F57DD0B6602FC3EF6D163374B6 + 85279E012185FB19807B54FDFB156FC60CC0E6CD9BC9C85DBAF45164007C20AC + CAFDE71BB9B90B0800A3B11F5AF3F7D29B192CBEBBFD4944E283A59801D8B469 + 130170F9F2A5C801782154C81F397372F2892B0D0C18A0256F0F317DBBD5043D + 1D8DB3161F53006FBFFD0E99BFAF5CF9EDCC00789F939D9DEB5D121BA11901B0 + 5BCDA0EE8C8EF89802D8B8F157E4C53FFEF8CAAC00884439E4398328D2FF83B7 + 11B4DDCD51131F6D00C92B57AEDC83A6AF1DC84CC93995679E4EA23726B32D8F + 43CAC4B89B7BE677178EEE42C589B802B06AD5AA3D681B7BC86EB79332DED0E0 + 8BC56231F26075A172FF3ABC3132180C80F6157BD102EB705C0158BD7AB541AF + D78BF0FD5462FDEB8A4B1692450FBEC7B956A366B4FDEEB297497DE3375F93F2 + B367CFA0ABABCB78F6ECD9AC7803E0EEEDED9D76B4FDEB948545C0420293D13D + 2B9945567CBE6D172F594A00B4343DA1FBB4B6B6C2993367A2F2EE5103B066CD + 1AB756AB8D18408142C9B0007D7F1FA3ED8B8BBE4300B5B536C73780B56BD7BA + 351A4DC400A432390D000B351A0D8CB665E52F91CF3B3BDAE83E6D6D6D70FAF4 + E9FF0F0062B104997F32317FEC06F830C3B76DC9C23202A0A7BB93EED3DEDE0E + A74E9D8A2F00EBD6AD73ABD5EA8801E4E5E57B00B0D8C4022C964146DBC2A212 + 544E06B5AA27BE01AC5FBFDEAD52A92206909D934346988D006010769B8DD1B6 + 40514800F46A27ADABA3A3034E9E3C193F00DEBBB17DF9C055CB5F6702402812 + 11F367B13DB3C0D0D053465B99BC000162417FDFE40CD3D9D909555555F10100 + 8B2F1229EAFE5EFD15AFA7A7276200F30502229CCDF6C400C7C808A32D3E0FC0 + 966134E8E30F00259E9F99C1BB73F03E39FA8E14009F3F8F98380B971108A773 + 94D116C7085C36A1E048F5410B213871E244F4001C7970F02BB414E1B6181EBF + 7A69E51FC33ABDA5C4CF13F279EC1436D4EEAB9F1180F4F4B904002E630B70A1 + 1DA46FDBEC9C5C52B60C9AE93EF87B8E1F3F1E3D0097BF3CEF4E4B9F037DC63E + 55A3FED192E92050E2E70BE7F13848BC1BFDABDD7F8F8C4CA400D2D2D23C6B00 + B66716C0EB7DDFB62446A000897FE48829801C7136D82DF6692178C42BEB0458 + 7C2A07F07F39C4E7FFB507EE11DF8C14406A6A2AA38C936F5B1C23F00C818323 + D506C79A63C78E4517402E0280936D0A0894F84CD17C1E17897763F96EF2176A + F6D7CF080087C36194A98B6A9BC1E713000EC708DD06CF36478F1E8D2E803C71 + 0E1184C5D8AC0882810981122F1409785C1E97164EFAA0FB9A03F5647E8E14C0 + 74DBE1F4F474E21E634E676C01E44B7269316E3F087353B3CBB1785156261A79 + 2E0D8A6A8BCB770FFD055A1BDB089868029833670E01F0CCE52265FC7C9D4E67 + 3C72E448F4B6C31E0079DE2A8F4F635136AB0DFA8DFD9A540E4F989525E4A5F0 + 52BC9F5108BC39AA6B7FD80D8F6A1F939FB371208BC581084E56AB15FFCABCB7 + B2B2327A072218C00269BE77442721008160076E0A1752D0C853927DCD9FEA01 + 136E687BD8053DFFEA85B1E1B190475BB33C1E1B40D749AFF8E81D89610062E9 + 02AF1C2C9EB605DACC3D230D741B0A16C31A7C003A47C7C06C1C74B4193B7F52 + F5B3330FA2F1B2B14834008954CC10435980AF4BF8063D5FF3F77709A7C30926 + 22BE23AEC5330048659240D30E219CBA67C2F2D463F103467342880F0000B448 + A68787B4065F974069D4318A362DA68411CF0020934929599E190EA6B006DFD1 + F742C3E20D86818412CF002097CB82FA370D658A00398ACC5EAF37249C780680 + 02B99C31C2938B1D5A3A2DDCD7251C230EE84F50F14C00050541021BF85943A0 + 4BD82C36D019FBB44FFABF5C14EE563A9E120D4051A080C9391EFCAC81B2FBE0 + 01D28A21187AC3DA4AC75BA201280B94C030F650D61022406208BD0908810650 + 5850E8B7B80D1EEDA70A90D6C1C4834003285214FA88F45BE9FB4D81530548EB + A035A120F80028F25679A63AC6D4E78540899C2E402612041A40B1B238C0BF03 + AD21FC00694110D47A55F36F961F287DDE22A70550F5F0704F068F2F8DF6C34D + C303FFDEFDEAFB4B9EB7C869017C9BD37F01DEF1A29B45496966000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006A84944415478DAEDDB7D4C13 + 671C07F02F6F22A0E25007822F916553904C67669CC66D189828C317D055A3D1 + 49A6E8D0B80D27C6E04B164D741A991A4514A36E9AE88CD1C5F9BAC9661675BE + BF6C996FD3C5C85B810296D2F76B6FF714EF28E5AEB4D7BBB6047F7F95EBF13C + FD7DEEF73CEDFD0A01344DA33347C02B002F002CDB7351B6491207F6C6676949 + B65CFC1A604B4EB22C631FF8F51F58ACB468840E0F70FCD2BF68D49B44237478 + 80F3B79E41AB37C360B6406FA2DC46F02A8089927EAE1B8FABD0C454008BD0D0 + 64C08289C3D02538C025840E0FF0E0B90A4D06B368049F00E4ED3C2BC9B8858B + 27A2AC56CD246F6E83A0526BB1286344BB085E01C82B2EA50B17A54067B24A3E + 76A39E8256A71344989FFE0EC2BB040A227478001A4668F4418208152A35967F + 32CAB7005F165DA0B7E6A67200F9BBCE4932EEA6CF27E0CE13257EBEFA1466CA + C27B8E85A2C0CCED5B8025DBCED03BBE4897A5024854BE30E168E95DD4690C6D + 9E33EA7560E6F60F80061D25EB3C67AF3DC183B2BA56C71A1AD4FE07B0BAE417 + 59E74B888FE51E3FF8AFD2F700B985A7E8A2BC0CD92B800DA3D98A1B0F2BA0D1 + 1971E9CE133073772E00369E556B5072E2B2FF01C8BD04D62D18CF3D2E283EE7 + 7F00DE0CBF00C8D97482DE939F09A5DAE4758035BB4F8399DBBF00D61FB820EB + 7CABE6A5FA17C0FC0DC7E8BD2BA7FBA40256159D0433B77B0072F6F0E2FBF6C4 + B40F12FD1F40CE1EDE5F4F9530198D928EABA355B866DC8088C0681CCEFE0911 + 21E1FE09C0F6F0B4CC5D5BC6980484068B6AE6B68A727519169FCC84E5F52618 + 1A8D880F7E1BDFA51D46447838566E3F8EFDAB67FA0F807D0F8F746E08822751 + AB2DE792EFD627CC764CF5F4850D6173DA116CDC7B563C80377A78371F55885E + 0EA4ECFF34AE47C4208A4B9E0D1621F2B90207D764FB0F005F0FAFAA5E8B29EF + 0F454890EBCBA1A2B10C5F9DCE6A75E51D832004D5C4E2CAD77F20A24B18EFE0 + 2E0178A3874710D2C72492F69524C9DB2324741D8E038A63BC08BC0072B5B0CE + 3F3EC96C7E468C8E4BE345706539B065DFE30D1A3DFA44D88E99AD66D1085E05 + 18BE2D162161C19897B40C5983B379119E295F4091329CF7F76B980D8F5CF9E0 + 580ADD7B87C142B7B4C1C422F002C8D5C33BAD9F83779387E1FECDC788B74EC7 + 5B5DA7B63987F4F0964C1FEB347972E569BAF9B5D923B407C187C00B20570F6F + 68611F8C4D7D0F064A2F88407A788EC1967DD49BC1888A8EB41DA3ACCD77967C + 10ED218CE83E1A3FCC38D63E80D4B7AF23B647DB0048B00843026720B15B1677 + 0EE9E12D568CE37EAE6E2A47FEB92C84C459B8E4D91083D054AB47A8AA3B2EE7 + DE731D40AA060659022C803DC2C86E7331B297C2768CF4F0580036F9B0FE014C + F23D9984F993B28770B624D8E47F9C7D0AFD22FB0B03C8D5C02015F0E1F8B1B0 + 585BC66511526372308A41203DBCC0A040AEEC638684A377745473A234F532E1 + B610ED55035FF23E01489930CE96001FC2D4414BD0F028098A49836D573E6240 + 10973C97A8130416C211A1B1568BE09AF036C9BB0C20E51220002D2FB605825C + A5BFAFDF478C611C34A17711393014BD62A25A413942B8B224342A3DA00CE14D + DE6500A982AD80D62FB62D42EC8018C4C44673C79C21B063F021902BAF7A6444 + 69EE45DEE40501E4EAE18DDED5B70D8023025F8841A8AF56C35C1184B8CA3938 + B121DFBD9B21B97A788E4B402E0836F94D138EA378EF451CF976817B0072F5F0 + 48057C9C3191D9F40C82E7788A5053A5B2957D62E342845A5FB31D170550B47C + 1AEAB5CE3F5F8B056013A5AC16C1739D41B0EFED8ECFABAAEB61AAA005373CD1 + 00522E0116800DA9AA414CF28200D9EB8ED0BB57CE90B502A444A853D643576E + 763BF97601AA24DE03924B6279013C815056568B4EDE6580CD874A2501204B60 + CAE449DC07154F113C4D5E1060EEDA837471C16CD46AA45D02A402B2A664321F + 5129A708AE6C90CA0A253465068F92F71900090BF7BEED7E3510801B576E616E + 520E5624AFF1E88B05A700E48F8F486C3DFC9B24006409B0009E22184D06DCBE + 7E174B47E663E1A8A5D256C0EC82FD74C9DA4F3900A9E2A37D71AD00EC219C21 + 084148812008B0A3600EEA9AA4BD191202601148B85B0D9E22380550AA9BF780 + 9D477F9704802C0145A6E265A2FCFB8B980DD213045E80992B4AE85D6BB33900 + A922FDFB7E98356D1697A03384E6E75DAF06B1083E01704C8E0F421402A5C7ED + ABF7DC42700940CA25C002B424DF7E35B8B341BA8BE0B30A7017C1FE3C571136 + A66CC7A4842CF7FF5F402E80BC3393F1B0F6B6A4630A45485008B66414F91780 + 2BF1CDD6434E1B1852C72B80570002005ECFDC2E7C0ED099A2D303FC0F9A73F7 + DB30C21F7F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000077C4944415478DAEDDB7D5014 + 651C07F02F1C07C281286A182A9565995A9A5961D38B06BE838E60589A2661A6 + D864616146C53435693A9A3A0A2A56564E5A39EA68A6A5A6536A8949394C5AA6 + 690172C001DE1D777B77BB77DBEDE22E77702FBB77CF7137EAEF1FD6BD75D9EF + 677FCF73B70F10C6B22CAEE70ABB01E002202C2C8CE837C9DF703860CA036EE9 + 8EDC3183B86B9675D142EE0E03583167444000361FF803561B2B1BE19A01D871 + F46FE8280BAC348DDCF14324235C3300DF9DBA040345C3445B415126C9084101 + B030E4A78293E76AD06CEF000141A335606EFA504429C33D86B86600CEFEA741 + B389968D105480FC75FB889C77E5FC71A8ACD7DAC3D3B2113A14E0959283ECCA + B9A9305A6C44CFCB958E6260301A5D22D4341A302FE33EA8A214ED025D33002C + CCD0530AB70897D45750386D78700116AC3BC0AECA4B13010A4AF61339EFB279 + 63F1DB7935F6FC7201346375798C9561B07AFEA8E002CC5FB5975DBB607C403A + 80ABCB572CF8EAD0EF68D09BDABD66A68C58F7F284D0006832320101106ADF89 + F3385BD9E0B4AFA9491B7A006F957E1F5088BBFB2689DB67FFB91C7C80792BF6 + B0C5F9E901EF00A1CCB40D27FFAC86DE68C6D1DFCEA36461C6F50520D4A55A3D + 4A771E0B3D80400F81779F1F2D6E17AEDF1F7A001D592101F0FC073BD88D0593 + A1D65A3A1CE0ED0D7B51BA2833B400DEDB7C30A0A1DF9C95165A00B9EF7FCD6E + 5A3C25281DF066F16E7CF4C693F200166E3C42F4B995B559A18AE9C46FDF9A18 + 8F092977863E00C9151C6EF2EB1A13C13F0E6FFFE92F949DAD024393ED0623AB + C109F312A8C213B135671754CA98D00168D09BD12D2E8ADFDE73E222FF0185B2 + 30481BD60F5111FE0FB72A6D25E6EF9E0CEB4DCD30E9CCE81B712F3E1CB3D5DE + 753158BC660736BFFD746800701D70B4E25F182C2C689A4693C1C223F853F586 + 2A317C6C8F687E9FE6C2151E61F9986D58BA699FEF00A496B0F4F6E7F3B8E848 + 7E9B5BC36BB483085D507141EDF370E0DAFE67F37B50DDC688E1851210E2FFCB + C696A2E7820BD068A091A05282B1B1F847AD83B6D908B3D972B51318D4D9DB36 + 6DD81D502AA40F876A5D255ED99BE974E7DB1687A0A84BC2F1577F446C548CD3 + C96501F8BB8667B3DAD0B54B2C0A9F790C350D3A5034DA21D4341930E6A1FE92 + 10A4847744B8BBD3106CCEDEEE84E011207FFD21A24B58DCBA5DE7E8087C776E + 370C2633EE4978825FBA1200B8E1C095947707A1ED3BDFCEA2730F15BF8FB6D1 + B21182023064751294F6AFB3062D44E65D39D099581829CAA9132ED6EA30E9D1 + 812ECF53679FF0B83B1F91C420AE7B34AC6CEB32985C048F002F171F24BA8627 + 0C812FEAB2306CC4609CF9F51CFA874FC580D8CCF6C7323472D2533C86E7EE3C + CBB65C9B238237084704556474985B8017577F4B740D4FE880812B7BE091B414 + 98188A47E86B9B827E91194EC75ACCE676FF5F68FB847E1148B07F92E48AB1B5 + 3C59BA82F08630346E383E9BBADD3B00A9C7571D65B5032830744D220FC09580 + 3028F2690C8ECB128FE5163667673C24FEBBB6B90A05FB33A1EC6515C30BE50B + 42733D85284D1C8EE59D960EE0EF0286E31010001C111E8E9F85949B9EE2F79D + F957230208E1A3FB84D9C377B107761DCA11C2D39010C27F39FD1BF48EEFE31E + 206FE5374417301AB5CD48888FE53BE0F1D18FC06A6B3DAF80F078B75C3CD83D + 1B65151711AE0817DBBE67FF18744F4C6809CA325703B787F0D60D8EE1FB7449 + F63C0906122075EC483E802B842977BC04FDA5FB31313599BFF3AA6485185E0C + EA014180688BA0AB3720A22E460CDF02250380E410E0005A2FB61582BB4B1565 + 67D09B4E45534439E26F8942B79E094E506D21A40C09BD8602D44AA7F0B201FC + ADB61DE07CB1ED1192927BA26752A2B8CF1382700E5708DC9DD7FC65C6A1BC23 + 4EE1BD02CC59B693E81A1EF7834B77006D115C952F088DB55AD0D50AF4BA3C03 + BB962E92F730D416C0DF353C774320501042F865637760FDA623F872D91C7900 + B3976C27BA86A73552FCD7B19FF6C584F471F649CFE4F6587F11EA6A347CDB0F + D0BD80285B577EBF4F00C5AF65F18FB1246B78C9CD3C801094B159DD1EEB0942 + 786F6FFBBAA6B611966AB6DD84E7AA6401905AC6DE4BCD10018422D50D72C27B + 05C879771BBB61F1D480760049840675238C55B4E4F092016A08AFE38F284D72 + 09E00F84FA72ADECF0B201966F394404801B02932666881F54FC45F035BC5780 + 99459FB3EB0BA7A35E4F7608701D903969B2FD232AE31141CA04A9AE56435F69 + F2297CD001B8B28AEFDBF2BB81033879FC14660E9A83D74716F9F483054900DC + 2F1F71B56AEB0F4400B8212000F88B60B698505EF63B5E7AA00073531690ED80 + E9859FB0A545CF8A00A46AD4C7BD9C001C213C21B883F007C12BC0DAC2196868 + 26FB0B0DEE000404AEE47683AF089200D4DA963960DD578789007043207B72F6 + D5A0AEE7175F26485F103C023CB5A8942D29CA110148D5F84F7B635AD63431A0 + 278496D7A577835C84A002B40DE70AC227048642F92FA72521C8022039040480 + D6F0DEBB41CE04291521E81D2017C1F138A9084B53D760E2802CF97F2F102880 + FC6F27E2CFFA72A2E774574A85122BD28B430B404ABDB36A8BCB050CD27503E0 + 068017800E4FEE504107B89EEABA07F81FDFA6DFEAE112BCE60000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007794944415478DAEDDB0B4C13 + 771C07F02F2F1150507C00455C40CDD43965CC6D3A5DD0E15BD1008A53A2D339 + 99C2E603379DC34916CD741A9D1A0515B7B1CDC4C78C1ADF4E99C6A8539CAF99 + A943702AAF02052CD0C7B5D7DE7A57EF68A1AF6BAFB4517F0949733D8EFB7EEE + F7FFF7EE0F7850148517B93C5E029800F0F0F010F48764EC38E734E5A8B00E48 + 8F8FA6CF99D749B3B95B0D6043EA30A700E49DF90732A59A37C2730370F0E203 + D42B54BC119E1B80D3D71F41A65043A9D6A0AE5189B96307C0D7C7D36A009700 + A848E1A7826B851568A43BE0194245AD0C9F4D8AB18AF0DC00DC7B2241A3AEFD + F922B8142063DB49418EBB317D2C4AAAA5BAF06ADE08AD0AB038E72CB5715E1C + E42AADA0C7A5AB5E414226979B459817DF17ED7CFD5B047A6E00281068507899 + 4578247E8ACCE9835D0BB070DB196A53DA080E6069CE29418EBB6EFE18DC2C12 + E3E89562A8498DC97D342489CDE9235D0B90BEE938B575E138A774005DE54F55 + D89F7F0B350DCA16EF110A39B62D1AEF1E007572D229006C9DBC5A847B253546 + DBEAEAA4EE07F075EEEF4E85E81325E25EDF7B58EE7A80F91B8E52D919139CDE + 016C116A2DAEDD2F43839CC0C59B45C85912FF6201B0F5A8B201B9872EB91F80 + B387C0AAB9A3B8D799DB4FB91F406B965B00CCFDEE20B5736902C45255AB03AC + DC711CB9CB12DD0B6075DE59A7865E316B847B01CCF9F6376AD7F2C92EE98015 + D947F0C35753F8012CD9795ED0E756FA763422A423F33A2C3800EFC744B93F80 + 902B38C5154FD123AC03F3387CEC4A112EFCFD18A45AD86E9053125C25D620C0 + 33047B661F46808FBF7B029CBBFD987B521BD23F12BEDE8E0FB7526909D28F24 + 40D3B511CA7A0251DEFDF1FDE83D08F0F7C7F22D0791B7729A7B00D00F430585 + 552008A5118223552D2BE5C2B7EBE2C76C93143F6510D68FDE8BB5BB4EDA0F20 + D41216BD6A13D12508A496C283D21A149754A34EA9855245E24189C4EEE140B7 + FD9FC46A0444925C78B65884A027C9D89DF591FB003C14D7EB2645B5EEA648C3 + 7502BDAC3D74400FF878D93E1CCAEA4BB0F878A2D1956F5E3482579508973FBF + D06255881780A36B785A8D16DDC23A6351D2DBA8A8A9872E33E4844AF7A5E510 + EA640462DFE86913822DE10D11FAB48D465EF20123048B0019DBF3055DC2A2AF + 7A5468204E171E814C4920D2FF3D5D7015642A0A6AA582190EBAB6C09D47D687 + 03DBF6813D2804760960B6A9B56ADE082E0188DE2C828F9F3766F55B82C45767 + 339D206D94EB0278329D4077DC932A2946BFD3DBE471AA74131E7DE5BD4524DA + 77F683866A5A06E38B60116051F65941D7F0D82190FB783C060E1B80BB7F1522 + BA6D0A5E0F9C6C625F0D92E3A22D86A7AF3C45E9CFCD10C11A842142401B3F0F + B3009F6E3E21E81ADE7FE512448A3AE3B58D5D3074C4202849058310A59D8C5E + 6DE28DF65511448BEF67DB3EB89737824382986DA456FF64690AC21A424CFBC1 + F865EA01EB00423DBE9657D542D43518315B421800BA5804BA13623A2673FB12 + 2A3512745DC256656329969E4A844FB8860BCF963D088DD50AF84ADAE352DA6D + DB011C5DC0A0D404C2C3C39821C0021822BC1B340B4342A7E9B1240D1C001BDE + 2FC24317BE832EB0E95086109686041B7E5FCA31740B8A300F90B6F198A00B18 + 4FC475E81EDA91E980D85143A1D1361D974588ED34076F0625E0FAFD52787A79 + 726D1FDADB1F9D4382F54129F259E09610D6BAC1307C4487EE9627416702C48D + 19CE04308530B9E70278560C44ECD008E6CA0774F7E2C273412D20B010CD11EA + AB65F0AEF2E7C2EBA178000839046880A6936D82A0AFD29D82BB88A446A30A05 + 087AC5179D42838DA09A43D832241A240A40EC63149E3780A3D5BC038C4FB625 + 82A87B28424521DC364B08EC314C21D0575EF22F81FCB4F346E1AD02A4AE3B24 + E81A5E658DD42C40730453650F426DA514EA322F8497CFC0E1B5CBF83D0C3507 + 70740DCFDC107016041B7EDD9883D8BEEB3CF6AD4BE507F0F19A0382AEE1958A + F5BFAF9B72A81FC64F18AB9BF49466F77514A1AA42C2B47DDFFA4FE0ABD52FC3 + D90590FD45126A6596EFAFF9D6E09C3006800D4A6A3566F7B504C17EB6377F5F + 52590B5519D562C23355BC00845AC63EAE98C101B0255437F0096F1560F6AABD + D48EE5539DDA014222D4886B212F55DB1CDE66800A81D7F187E58A4C02380221 + 2EAFE41D9E37C0FADDF98200D04360D2C478EE46C551047BC35B059899F52BB5 + 3D3305D50DC20E01BA03122725E86E51498B08B64C90E232311A4A9476857739 + 005D1AEE739B7F37D000D72E5FC7CC7EA9F87278965DBF58B00980FEE323BA36 + EDF94310007A08B0008E22102A256E14DCC282B79662DEA085C276404AE64F54 + 6ED6871C805035F2C770230043084B08E6201C41B00AB03573066A1A85FD8306 + 73002C025D7CBBC15E049B00C452FD1CB06DFF394100E821909C90FC2CA8E9F9 + C59E09D21E048B001F2CCBA572B266730042D5B89FBB617AD2742EA02504FDFB + B677035F049702340F670AC22E0452811B576EDB84C00B40C821C0023485B7DE + 0D7C26485B115CDE017C110CF7B315616DDC164CEC9BC4FFFF059C0590716222 + EE57DF10F498E6CAC7CB071B2664BB17802DF5CDA6DD26173084AE97002F01AC + 00B47A72837239C08B542F3CC0FFA9FFE4EA737F586D0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CopyRemote_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007724944415478DAEDDB795013 + 571C07F02F044A215ABC41546CBDAFE25D8FD151C7FB6444ABAD0E566BB50A1D + 0F6CB5162BD3D1A916C77314546C6B5B673CEAA8A3E251B53AADF77D8CF73156 + 020409602021D726DBDD0DBB2421D7262F24A3FEFE82CDCEBADFCFFEDE63DF13 + 82689AC69B5C416F01EC0004050511FD4752B69CF69972B386B5903CBA137BCF + A26E9ACF5D6D00AB67F6F709C0F61377A1D61A4423BC3600FBCE3E46A9462F1A + E1B501387EED39D41A03B406234A545ACC18DE1161A1C12E03F805404F919F0A + AE3CCA878AED800A84FC6235668FEE0C6998C46988D706E0FE0B05544CFB8B45 + F02B40CAA6A344AEBB267938720A954C788368846A05989F79925E336B20CAF5 + 26A2D765AB5443415D5E6E172157A144527C1C6A84455409F4DA00D0D0A14C23 + 7188F05CFE0AA9937AF91760EEA613F4BAA44102C0C2CC6344AE9B3E7B186E3C + 91E3D0C5A7305046BBE718290AEB9307FB1720795D36BD71EE089F74005B79AF + F4D873EA268ACAB4553ED369CAB169DEC8C0002829A77C02C0D7D14B4F703FA7 + C8EA58498932F000BECFFACBA7106D9BC5085FDF7F96E77F80D9AB0FD11929A3 + 7CDE017CE90C265C79908BB2721DCEDE7882CC05A3DF2C00BE9E1794216BFFB9 + C003F0F51058366388F075EAE6638107509D151000337EDA476F5D381672A5BE + DA01966EC946D6A284C00258BEFDA44F432F993A28B000A6FFF827BD6DF178BF + 74C0928C83F8F9BB8FC5012CD87A86E8BA957D1BEBDC26165A3D8586B5A5E8FD + 61D3C00720B98373EB59213A36ABCFBD0AFF7BE705F7C64619C8764339ADC025 + DD0A4883A3B073DA014843230213E0FC7D39B34031AFD6BAB68D455888F7C34D + A6CC41F2C1B1303650415BAA43B39038AC1DBA13D288082CDEB00FDB977EEA5F + 80AB0FF3D1AD75430E805DBD31D9AD10BCA942B54C085FA37E38774CF1F41587 + B06AE82EACDC76D47300525B58B79FCA11D73C1A9489C6635911EEFE57048D46 + 0BB5DE886779251E0F07B6ED2FE89643FA012584E78B47887C31013BD23E0F0C + 003670AE42C53C7DF3C605DF09C56A0ADDDB3446A8C4FDE1905B9A83F9D90956 + 4FDEB65804C9CB189CFFFA9F2ABB42A200BCDDC3A30D3AB46E118BC4211D51AC + 545504B746282AD5E2A3F6EFBB85E04E784B84B6EF76C2F6097BAD109C02A46C + 3E45740BEBF66319E25A3646F68303D0E90D8891F460BA818641AB81D614CC0D + 07ADD1BC7475557CDBBFD79CC67BF5A5DC3183C9201AC12F009DD6C720343C04 + 533B2C4042EB69763B41C60C917E9D5BD8BDCE4B66C2639F7C480C859AF5C261 + A42BB7C1C422380598977192E81E9E5EA7438756B158FB6008BAF5EF887B571F + A1AB34113DEA4DAC72AE969927E2FBB6771A9E7DF2346DBE374B0457109608D2 + 77C2831C027CB5FE08D13D3CBE03DAAFA98F3E837A424B693884A6FA78B48948 + A882655B7CDBD76919823A5191DC31CA645E59DA837085D0A5662FFC3E71AF6B + 0052CBD7BB0C407B06A0CB86280E802D1EA17B8D29E8D9609270AE5AA3C388DE + ED84EF0B54322C3C9680D04646213C5F9E20A80A350853D4C4B9A45BEE0378BB + 8161390478004B847E75A7A36FA344EE98ACA008A3FAC459850F6F12C484AFC5 + 04B61FCA12C2D990E0C3EF9E7C188D239B3806485A7398E806866507F41BD207 + 4653E5757984DE9153D1A9D678EEDC6049B0D0F6D16D22502FAA8E39284D5504 + AE0AE1AA1B2CC337A915EB7C12240D70E3A10C9D5B9B01060E1BC005B08730BE + C51CD450F645F72EF5B8272F8D9508E185A04E1078085B84D24235425E4608E1 + CD502200480E0116A0F2662B21D8A774E7F23DB4928C402E7501914DC35037BA + 8E15942D843B43A24CA101E4A156E14503785BB61D607DB355116262A3111D13 + 251C7386C05FC31E02FBE4150F75389574C62ABC4B8099E9FB89EEE1DD63DEF0 + 1C01D822D82B4F108A0B9430E44AD0282F1107562E12B718B205F0760FCFD110 + F015041F3E7DD83E6CDE7606BBD3678A03F862C55EA27B78F72ADEF1A71FEF8A + 91A38633939ED6E1B9DE22BCCC57706DDFAEF44B84996A73C73D02C8F8661CB3 + 4C75FE7E2DB67A6536E400F8A094C9E8F05C6710FCCF76DBCF1505C5D0E7D255 + 263C7B250A80D43676B6265100E08B54378809EF1260DAB25DF496C5137DDA01 + 24118AE4C5289719DC0EEF36403EE17DFCFE59317601BC8190E715880E2F1A60 + D58E534400D821103F66B4F0A2E22D82A7E15D024C49FB83DE9C3A1985656487 + 00DB0109F163995754CA29823B13A43C578EB21CAD47E1FD0EC09651F8B92DBE + 1B58802BE7AF614A8799F876409A47FFB1E01600FBCB476CADDBF93711007608 + F000DE22E8F45A5CBF7C1373BA2FC4AC9E73C976C0E4D45FE9ACB4CF04005235 + F8974656009610CE101C417883E01260636A228A54647FA1C111008FC096D86E + F014C12D00B9D23C076CDA739A08003B04268C9D5011D4FEFCE2C904E9098253 + 804F1665D19969D304005235E2B7C698346E9210D01982F973F7BB412C825F01 + 6CC3D983F00881D2E0FAC55B6E2188022039047880CAF0AEBB41CC04E92E82DF + 3B402C82E579EE22AC1CB80163DA8D13FFF702BE02483932060F0AAF13BDA6A3 + 0A958462F5A88CC00270A77E58B7C3EE0606E97A0BF016C00540B527B728BF03 + BC49F5C603FC0F8FDBE0EA9670CDFD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007764944415478DAEDDB795013 + 671806F0872345888AC503C4B3D6036FB13285D68E17DE57D18AB7D5B652D18E + 07B6588B95E9E8548B23454741C5B6B675C6A38E3A2A6AEBC574BCA9A2752A9E + 2D0A48800886906493DD649B5DDC25819064930DC9A8EF5F61B3F391E7B7EFF7 + 65F753BC689AC6CB5C5EAF002C0078797989FA4B12B69F73997287564DB0F8FD + B798CF2CE84373B91B0C6063DC609700EC3AF50F2A558460841706E0E0F9FBA8 + D4E80423BC3000BF5FCB874A438220F5902B545830AE3FFC24DE3603B8054047 + 89BF14E4DC2B4695B1033884E27215E2C78743EAE76335C40B0390F7588E2A82 + 148CE0568084AD2744193775D1681494298CE149C1080D0AB02CE3349DBA6018 + D43A83A8E33255A9A1A052AB2D22E4CB9E217EE2000449257502BD300034B450 + 6A7CAC2224CD88722FC092ADA7E8B485D13C4062C64951C64D891F85DC07321C + BDFC1024A5B7788E9EA2B069D170F7022C4ACBA2B72C19E3920E60EAC9331DF6 + 9FB981A74AA2CE7B5A8D1A5B978EF50C800A35E51200AE4E5C7980BC82A766C7 + 2A2A149E07F075E61F2E85E8DE29947F9DF7EF13F703C46F3C4AA7278C737907 + 70A5250DC8B95304A55A8BF3B90F90B17CFCCB05C0557E891299872E781E80AB + A7C09AF923F8D749DB4E7A1E4043964700CCFFEE20BD2331063285AEC101566F + CF42E68A499E05B076D76997865E3537DAB3003EFEF6377AE7CA0FDCD201ABD2 + 8FE087AFA6080358BE235BD4E756E66E6C68BF8E200CDE68DEB411FA760E757E + 50570388B9837336371F43C33BB2B7C217F364389C7D43F4A06A5A8E2BDA7590 + 7A0763CFBCC3904A023C13807978313EA8191F527408EBD81A7EBECE4FB74245 + 01161D8981BE5515884A2D3AF9F6C1F723F7401A1080959B0F62D7EAE99E01C0 + 7C0DDE2F2A0749526608CE5499AA900FDFB8A53F7B4CFEF0198BB061E45EACDF + 79C27100B1B6B0CEDF7A8481BD3B40A5D3B37767D7F31EB1AFB54688A2322528 + D2B1C59169FB4BDAB590BE41F1E1B9E210021FC76277F2479E0350AA50414D18 + A0D668401A17454A6F40A552853E5DDB41E263FF7428AA2CC0B2AC496657BE76 + 31083EA5A1B8F8F99F68EC176036B8200067F7F0745A2D064774C7E8B73BE369 + 1505BD5EEB14823DE14D11BA37EA875DB107CC10AC02246C3B23EA165676CE5D + 23403764DD390CAD8E4400110E82AC1E5BA321D8CE20F5C07F852536C7E2DABE + E99B349AB694B2C748032918C12D00FD368542E2EF8BB9BD9623A6473C088230 + 06A7CD3AA14CA14644585B8BE3941A173CE6CAFB865268D2C21F7ABA661B4C28 + 825580A5E9A745DDC323D4C61BA1C85E48BAF22E060CEE8BDB7FDDC33B817311 + D96A9AC5F3078577B61A9EB9F2345DFDD94C116C419822485FF3F7AA17E0B34D + C745DDC3E33AA0676A4B0C8C8E04416958840EBA89E8DA28C6EC5C4BDF085CDB + 0775F145507060F57986EA274B4B10B610FA3789C22F530FD80610EBF1F552EE + 7D44857741FFCDC12C00531C02D30943DACEE2CFADA82230744037FEE792AA42 + 249E9C04491B3D1F9EC77200A1AA4C033F79135C5878D37E00673730982910D5 + 3F0C6B7307F100A608D121711814329D3D565CA1E201B8F0FEEDBC8CE19B1903 + 5B0E650A616D4A70E1F7CD3C86B681EDEA0758987A4CD40D0CD30E18346220F4 + 869A71398408E92CF46E3A050F1F15C3DBC79B6FFB90B000B4080EAA0E4A53CF + 03D785B0D50DA6E1DB356B6F7D117425C0B05143D800961062BB2E410BED70F4 + 0C93B2575EDADE870FCF07B582C041D446A82C53C1B734800F5F0D2500409429 + D0B733D6FE3D8C05A8F9B03510CC55BA75F5367AFA8D473E711E811DFCD03C24 + C80CAA36843D534229D70032895978C100CED6B99C7B1812D195EF00F30F5B17 + 21B47D08424283F963D610B8312C2130575E7E578B330BB3CDC2DB04884B3924 + EA1EDEC51B0FEA05A88D60A91C41282F51802CF2419B27B37178FD0A610F43B5 + 019CDDC3AB6F0AB80A820B9F32EA20B6EDCCC6BE943861009FAC3B20EA1E1ED3 + 014C2DBFF41EC68E1B6D5CF4887ACF7516A1B458CEB67D8FCA4FE167789D3DEE + 1040FA179351AEB27E7F2DB4A2325AB3005C50CAA0AFF75C6B10DC777BEDF7E5 + 25E5D015D175163C4B250840AC6DEC2CCD6C1E802BB1BA4148789B00F3D6ECA5 + B7AF9CEAD20E1013E1A9AC1CEA42D2EEF07603148BBC8F3F3833D422803310B2 + 272582C30B06D8B0FB8C2800CC149838613C7FA3E22C82A3E16D02CC49FE95DE + 963413654A71A700D3019326C6186F5129AB08F62C90B2221994058443E1DD0E + C0949EFFDE16DE0D0C40CEC56B98D32B0E5F0E4976E81F16EC0260FEF3115369 + 7BCE8A02C04C010EC05904AD8EC0F5AB37B03822110B229788DB0133937EA233 + 933FE401C4AAE13FB631033085B086501F8433083601B624CD66B7B01B028043 + 604A6837388A6017804C51BD066CDD7F4E1400660AC4C6C43E0F6A797D716481 + 7404C12AC0B415997446F23C1E40AC1AF3735BCC983C830F680DA1FA7DFBBB41 + 28825B016A87B304E11002A5C1F5CB37ED42100420E614E0006AC2DBEE06210B + A4BD086EEF00A108A6E7D98BB07ED8664CE83159F8DF0BB80A20E1F804DC29BB + 2EEA98F595C447828DE3D23D0BC09EFA266DB7C50D0CB1EB15C02B001B000D9E + DCA4DC0EF032D54B0FF03F0B69D9EA04B7A9D20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000077B4944415478DAEDDB7D5014 + 651C07F02F2F27C289186A10889A8E8E922191393A61C8E02B8A081496E65BA6 + 89562A94669A4CA393A6A3A1232F8A959533BEE4A0A3A296E2DBA8F992F85668 + BE342602071C2077DCFBDE6DB77BEE7207F7B6777BDC8DFAFB0BF7761EF6FBD9 + DFF3DCEEA37A91248967B9BC9E039801F0F2F2E2F597646E39E932E5B0CE81C8 + 4A7B9DBA664E17CDE46E3380F57386BB0460FBB1BF5127517246786A008ACEDE + 8544A1E68CF0D400FC76E501640A0D941A2DAAEA65F82439067E026F9B01DC02 + A026F85F0A2EDFA94293BE03188407A2C758983618423F1FAB219E1A805B0FC5 + 68526A3823B8152033F7082FE36E983F16E5B58DFAF01ACE086D0AB028FF38B9 + 616E02E46A1DAFE35225511090C9E516113292072158286815E8A90120A18254 + E16311E156791D564D8F752FC082DC6364CEBC112CC0E2FCA3BC8CBB36630CAE + DE13E1E085FBD0105AB3E76809021BE78F742FC0FC9C6272F382449774005595 + 8FD5D853720D755265ABCF540A3972178EF30C800639E11200A68E5CBC47B7BC + 713534347A1EC05785BFBB14A27FAF30F6E75BFF56BA1F2063FD41322F73BCCB + 3B8029954687CBB72B2095AB70F6EA3DE467253D5B004C3DA896A270DF39CF03 + 70F51458397B14FBF3B282A39E07D096E51100B3BF2D22B72E4E81A851DDE600 + 2BB614A37049AA6701ACDA7EDCA5A197CF18E15900B3BEF995DCB6F46DB774C0 + F2BC03F8FECB77B801646D3DC5EB7B2BF53496141B493F9F07770A44BF8860CF + 07E07307E7F0B95B487CB33FBD08963DA8C1CE63D7780F2A27C5B8A85A0DA177 + 0876CEDC0FA120C073008A4E9721352E9205A04ADF0CE8D3AD33FC7C9D9F6E8F + 1ACB31FF400AB42F36412951A1976F14BE1BBD13C280002CDD5484ED2BDE733F + C0787D07C8D45AFAE144AE5098203853B5B2476CF80E5DFDE963E2FB8F698475 + A37761CDB6238E03F0B58575483F0518800A71134E94DED73FAE12FA57581295 + 35F50E8F4BB5FD1FAA5510BE4CB0E1996210821EA66347F607EE053870E60626 + BC154503D434CAA0D190D06849BA13343A6F28D484BE13BA40E063FF74A89094 + 635171AAC99D6F5914824F4D18CE7F76061DFC024C06E704E0EC1E9E522E47E2 + B028C4C7F4425D1301AD5605B9D2B037C020A8544AF48E08B50BC19EF0C608FD + DB47637BFA5E1304AB00990525BC6E611D3E7B1389B1AF62DF5FFB40EA08784B + 0742A15042A9851E434B4F07E874F84FD460732CA6ED3BF626D1B1AB903EA6D1 + 693823B429C0C1D33790141785E88D6110F8FB62C6802CA44466B4EA04AAAAEB + 6588EA1B61769C1AFD8247DD79DF3002815DFCA1259BB7C1B82258055898779C + D73D3C660A649D1D8A41C307A2ECCF3B88EB3C0BC3C2A7B63A97D41218FC4A4F + ABE1A93B4F92866B3346B005618C206CE7EF6511E0E38D8779DDC32B2A29C5B8 + B868C46C0A41EC882150120A1AA1873A197DDBA7989C4B685A3F2E336D1FDCC7 + 17C1214186F37486374B7310B610620287E2E7497B6D03F0F5FA5A7CFA9A0900 + 550C02D5092322DE67CFA5B6B25FEBD783FD7375D3232C3E9A0A41B8960DCF62 + 3980D054AB809F3810E7E65DB71FC0D90D0C994482A4F8187A0A3000C60863BB + 6520A1FB74FA584363130BC084F78FF0D287EFA40F6C3E943184B529C184DF3D + E510BA0545580698B7E110AF1B18C61D10372A165A5DF3B80C4274FB29880E9C + C87E13306D1FDA2F005D420C2F4F04493C09DC1AC2563718878FE8D4DDFA22E8 + 4A808431F174007308E97D17A08757227AF66C47DF7961771F363C1BD40A0203 + D11241522B836F4D001BDE00C50180CF294001345F6C330475976E5E2A437487 + 89B82B3D8DA01E7EE81C1A6C02D512C29E292115EBBF5E450293F09C019CAD96 + 1D607AB1AD11C2BA8722342C843D660D8119C31C0275E7C5FFA85032EF944978 + 9B0073D6EEE3750FEFF8F91B16015A22982B4710EAAB1BA1A9F04178E554EC5F + B384DBCB504B0067F7F02C4D01574130E1D78E2942C1B653D8BD760E37800F57 + EFE5750FAFF85C9901F24602C68D1FAB5FF49416CF7516A1A64A4CB77DA4E423 + F8E95EA08F3B0490F7791AEA65D69FAFB9D6D0FC9768002628A1D35A3CD71A04 + F3DDDEF27371753DD41564AB05CF5C7102E06B1BBB58319505608AAF6EE012DE + 26C0CC95BBC82D4B27B9B403F844A813D543FE48637778BB01AA78DEC71F5E18 + 6616C01908516535E7F09C01D6ED28E105809A02C91392D8071567111C0D6F13 + 605AF62F64C1B229A895F23B05A80E484D4ED13FA2125611EC592045152248CB + 950E85773B00555AF67B9B7B37500097CF5FC1B40173F0457CB6437FB1601700 + F58F8FA8CAD9798217006A0A3000CE22A8D44A945EBA864FDF588CB94316F0DB + 015396FD4816664F6701F8AA913F849B0018435843B004E10C824D80CDCBA6D2 + 5BD86D01C02050C5B51B1C45B00B40D468580372F79CE405809A02E929E94F82 + 9A5F5F1C59201D41B00AF0EE9242323F7B260BC05725FED40D93D326B301AD21 + 183EB7BF1BB822B815A0653873100E21100A945EB86E170227003EA70003D01C + DE7637705920ED45707B077045303ECF5E8435099B3021328DFBFF17701540E6 + E109B85D5BCAEB98964AE023C0FAF1799E05604F7D9DB3C3EC0606DFF51CE039 + 800D80364F6E546E077896EA9907F81F4007CDEAF686324C0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000077B4944415478DAEDDB7D5014 + 651C07F02FC24570BE851A8460A38E4E32A64658DAD8642319204848A1495864 + 9168A56161A6C934BD998DA64EBC189666A4958E3A2A60A9E9386512E5CB5458 + BE9489E0010778C7BDEFDD6DBB7BED7207F7B677CF7137E2EF2FD85B96FD7EF6 + F73CBBFB8841344DA33757D04D003B00414141447F49C1A6A33E538E1ED40F2F + A5C72354D247D449F3B97B0C606DDE549F006C3DF4075A953AD108370CC0EE1F + 2E40A9358846B86100BEFDF532D45A0A3ACA846B6D6AE4A7DD036968B0CB007E + 013018C94F05B5E7AF41C574008F7059761D4B32EF738970C3009CBB22874A47 + 8946F02B4041713591E3AE5B948CFA1605139E128DD0A300AF941EA6D72D9806 + 8DC14CF4B86C29B546A8351A8708F9E90988904ABA05BA610068E8D1A10D7688 + 50F7AF1CEFE63EE85F80C5C587E8F50B130580C2D283448EBB263F09A72FCAB0 + FFE425504693DD7D4C4623362C7AC4BF008BD657D21F2F4EF14907B0D578DD80 + 6F8E9C416B87AEDB677AAD06C54B66040640BBC6E81300BEAA6B2EE25C7DABCD + B6F67645E001BC59FE9D4F21C68C8816BE3EF777A3FF01F2D7EEA74B0A527DDE + 017CE929336AFF6C4087468F1F4E5F44E9D2B4DE05C0D7E5A60E94EFF931F000 + 7C3D04DE7E7EBAF0F58AB2838107D093151000CF7FB09BFEA430033285A1C701 + 566DAA44F9B2598105F0CED6C33E0DBDF299C4C00298FFDE4E7AF3F2C7FDD201 + 2B4BF6E1D3379E1007B0F4936344DF5BB52A15B293E2B967F4BE61B760E4D0C1 + 810F407205A7A2FA173C959CC04D82171A15D85659433CA88696A346FF3EA47D + 22B123772FA492F0C001F8B4EA0CE6A74CE000D87B3365328332E88975C25545 + 3D16EDCB80E97615744A3D46848CC3478FEE80343C1CCB37EEC6D6554FFA1F20 + 67FA78A80D2634C8550C002D20C4440EF2EAD82DEAAB42F8BE43C2B86DF24BD7 + 39840F1FFD0AAB37577B0E406A09ABA2BA96190213398066851AFB8ED781325B + CEA9B1B9CDE3E3B26DFF93FE1D48871B85F07CF10803AE64A1A2E8D9C0005068 + 4D90AB28F481011A9DE5D598ED048D8EC2F03B6E1375CC06653D5EA99C6573E5 + BB168B10DC1C8D13AF1E47DFD0701B045100DEAEE1E9341ACC4D4A401CF396A6 + D29BB921608DA0655E5E0C060A31B70F84C4F58AB65BE1AD11C6DC3A015BB376 + D920380528283B427409EBCBAA1A64A7DC8F3DBFEFE1AEB85A360A269389796B + 631E8DCD6651C3816FFBFE2369F41F22E5B651664A34825F00266C8886242C04 + CF8C5D8A8CB87C06410F8AA28549D1C8FC3A854A8B5131F6EF0ECDCC84C75EF9 + 906823FA0D0E8389EE5C06138BE0146049C961A26B786AA51239A99330FFDB7B + 9130753CEA7E398FC4A83C24C6E674DB9762BA62DCE858A7E1D92B4FD39673B3 + 467005618D20BD252CC821C08B1BAA88AEE16DD97702735326217E6324A6244E + 82CEA8E510EE34A46344F00C973FCFB77DC4A81044440EE0B619CD96374B7B10 + AE10E2FB4DC6B6D9BB5C03907A7DDD5E75D206802D1E81ED8494E1F3847DD9E5 + EC31236384EF9B54575178701624434D4278BE3C4150B568112AEF871F179E75 + 1FC0DB050CEB21C003582324C7E42369782EB74DD9A11600F8F061B1414CF881 + 4C60FBA1AC219C0D093EFCD7D907103320D631C0C27507882E606C3FC00C81D4 + 07B80E7868FA1498CC9DC7E511EE96CCC1B8FE8F0B7702BEEDA3EE0AC7E0C808 + 4B50DAF87FE0EE10AEBAC13A7CECC061CE27415F024C4B7A980B600F216BF462 + DC1DFE1873B5C15D79E9B06021BC10D409020FD11541D9A2464873B810DE0225 + 0280C41098C3CC010B0EDDCB01749E6C27047B957EFBB90E130766A2AEFD7B0C + B8331483A2226CA0BA42B833243AE45A4026B1092F1AC0DBAAD87F024FA57576 + 80EDC97647881E1685A8E848619B3304FE18F610D82B2FFF4B8F230B8FD98477 + 0990B7660FD135BC9D074F3A04E88A60AF3C41686B52806A08C6D0C61CEC5DBD + 4CDCCB5057006FD7F01C0D015F41F0E1D724ED46D9E663F87A4D9E3880E7DEDF + 45740D8FED00B6D6FD938119A9C9CCA4A773B8AFB708CDD7E45CDBC7295F40A8 + D9F286E91140C96B9968533B7FBE165B934BEFE000F8A046B3C9E1BECE20F87B + 7BD7CFE54D6D3034D0DD263C7B250A80D43276A5364700E08B54378809EF1220 + F7EDAFE84DCB67FBB4034822B4CADAA0B94AB91DDE6D806B84D7F1A79647DB05 + F00642D6D8243ABC68800F2B8E1001608740FACC34E141C55B044FC3BB049857 + F4055DB6221B2D1D648700DB01B3D233984754A3530477264859830C1DF53A8F + C2FB1D802D9370DF16DF0D2C40ED895F316F6C1E5E7FB8C8A37FC7730B80FDE3 + 23B6D6EFF89E08003B0478006F11F4061D4EFD7C062F4F2CC482498BC97640F6 + 8A2D7479D1D30200A97AE4B3A13600D610CE101C417883E012E0E31539685591 + FD830647003C025B62BBC15304B700640ACB1C50FCCD512200EC10C8CAC8FA3F + A8FDF9C59309D21304A700739695D3A545B90200A94AF93C067333E70A019D21 + 583E77BF1BC422F815A06B387B101E2118B53875F2AC5B08A200480E011EA033 + BCEB6E103341BA8BE0F70E108B60BD9FBB08ABA76DC4CCB84CF1FF5FC0570005 + 5533F167CB29A2C77454926009D6A6960416803BF5D6FA0ABB0B18A4EB26C04D + 0017003D9EDCAAFC0ED09BAAD703FC07E75BCCEAEE6661CB0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007584944415478DAEDDB7B5054 + 551C07F02FAF1056C54045F195968D3A5A8E63A5E58C3AF84625449694B4CC40 + 010D45D34C936974D470345101152C2A2745491CDFA52435BECDD7948F4CCB11 + C14516741FECDDF76DEFAEF7B20BFBBABB67D91DF5F717DCBD9CDDEFE7FECED9 + BD07F0A3691ACF72F93D07B002E0E7E747F44932B79EF0987254442BCC8D1D80 + E0207F5E2F9ACDDD6C00EB52867904A0E8D835D44A95BC119E1A80BD27FF8194 + 52A34A2CC3C284B79C46786A007EBE7817F594064A8D0E77458F312FFE4D0882 + 031C06F00A805A4B7E29B870EB01E4860EE08BF0D400DCB827865CA9E18DE055 + 80CCDC2344C65D9F3E1615351243780D6F846605989F7F9C5E3F3B1A0AB59EE8 + B84C49292DEA150A9B08A9B103112E086A12E8A901A0A1828C0AB08970ED3F11 + 56CD1CEE5D808CDC63F486B4111CC0A2FCA344C6CD4E1D83CBB7453870F60E34 + 5A9DD573745A2D72D2477A17207DC3217A73C6388F740053558FD5D85D7605B5 + 326593C7549402B9F3627C03E09142EB1100B68E9CBB8D1B15B516C71E3D92F8 + 1EC01705BF7814A2778F28EEEB1BFF56791F2075DD013A2F73BCC73B802D9546 + 8F0B372B2153A870F2F26DE42F98F06C01B075B75A8682D253BE07E0E929B022 + 7914F7F5D22D477D0FA039CB270092BFDA4B6F5B14079144DDEC00CBB71E42C1 + E249BE05B0B2E8B847432FFB70846F01CC5CB5872E5C32D92B1DB02C6F3FB67F + 9EC00F60C1B672A2F7AD945C8EE4B877A0A028848684A063B8C0F70148EEE0E4 + 969C44FAE421C64590796BDABEFF0CF1A00A5A8C73AAD510F84762E78C7D1004 + 85FA0E404EF14964249A002AC5726874A6E724D509F7251548DF1F075D7B3994 + 52157A04BE86AF47EF842034144B36EE45D1F229DE05585B7C0619F18320A174 + A893D743A3A13984F0D6A16E8D5D537F9F0BDFB25D88F198F8CE6323C2DAD1BB + B0A6F088EB00A4B6B0361597636EE230D4D56B205150F8A9FC86E17EDD74E726 + 91295C1E9769FB33AA951074D772E1D96211C2EE09B123EB23DF0190ABF4D0E9 + 54A6004AD3ED3165F8ECDE29A225AF312BA515987F6892C5956F5C0C42C0C328 + 9C5EF83B5A06875A20F00270770FAF5E2AC5BCA4684446841901986210CCA702 + 1F0467C29B23F46ED11F45C2120B04BB00995BCA886E61E5EFF90DA9094351FA + 57A921B01E3577BB027A3D347AD3EBE1331DD8B66FFD328DD6ED4C8BA846AFE1 + 8DE01580FE3951080A094452EF4C08FBA519AFBE3FD4DC543022D4ABD0B97D1B + ABE33C342C78CC950F8CD2A255DB10E8E8866D30BE087601E6E51D27BA87C74C + 8174E1502494F6C5C061AFE3FA1FB730B6732AC6749F61F5FC973A86DB0DCF5C + 799A7E329568CBBD407B10E608821742FC6C02CCC9394C740F6FD38F6548110E + C7808D9118326210945ACA88D04D1D8B1E01310E7F9E6DFBF09E81088F0C331E + D3EA4D7796D6201C210C683518DF279638062075FB9AB7B30C6953A23900A658 + 04A613C6BF32933B97526B0D1D10C17D5F2DBF8F45472721A8938E0BCF962B08 + F21A0AC1E256389576D57900773730A475B59895188DF7F7F7E300CC11DEED3E + 07313D938DC724728A0360C38774F133846F63086C3D943984BD29C1862F4E3A + 88CE615D6C03A4AD3F487403C3BC03868E1A029DBE615C16A1977F227AB598C0 + BD13B06DDFA15728DA469AD6042DAD7D12B82984A36E300FDFA54D57FB8BA027 + 01A2C70C3706B086207C350383221210DC5A63BCF282AE015C782EA81D0416A2 + 3182B4A61E810F43B9F026281E0024A70003D0F0621B2098ABF4E7F9EB783B42 + 88ABE26308EB168C880EE116508D219C991232310588822CC2F30670B71A7780 + E58B6D8A10D5B5033A444572C7EC21B063584360AEBCF86F15CAD2CA2DC23B04 + 48C92E25BA87B7BDE4844D80C608D6CA1584BA6A09349501E854350DFBD62CE6 + 7733D418C0DD3D3C5B53C053106CF8EC317BB1A5B01CC5D929FC003E5E5D4274 + 0F8FE900A60A6BA62266FC58C3A2A7B479AEBB080F1F888D6DDF473A0BC1FA17 + 8DC75D02C8FB34DE78FB4AB206E7773402B041B57A9DCD73ED41B0EFED8D1F17 + 57D7415D493759F0AC152F0052DBD887A8691C005BA4BA814F7887003356ECA2 + B72E49F468079044A815D541715FE37478A7011E10DEC71F56106515C01D0851 + 5535EFF0BC01D6EE282302C04C81D88913B80F2AEE22B81ADE21C0F4AC1FE82D + 4B935023233B05980E98141B67F888AAB58BE0CC0229AA144156A17429BCD701 + 98D271EFDBFCBB8101B870FA22A6F74DC167C3B35CFA3D9E5300CC1F1F31B561 + E7AF44009829C002B88BA0522B71E9FC157CF2C622CC1E9441B60392967E4B17 + 647DC00190AA91DF74B2003087B087600BC21D0487009B974E43AD9CEC1F34D8 + 02601198E2DB0DAE223805209298D680DCDD27880030534018277C12D4FAFAE2 + CA02E90A825D80F71617D0F9593338005235EEBBCE981A3F950B680FC1F4B8F3 + DDC017C1AB008DC359837009414BE1D2D9AB4E21F002203905588086F08EBB81 + CF02E92C82D73B802F82F979CE22AC89DE88897DE2F9FFBF80A700320F4FC4CD + 9A4B44C7B45541014158373ECFB7009CA92F37ECB0BA8141BA9E033C077000D0 + ECC9CDCAEB00CF523DF300FF03DA22B9EAC97C1FF20000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'CopyRemote_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007474944415478DAEDDB795013 + 571C07F02F02451211C5038AD788DAA94E0FC7E9A11D67D47AA1081651B43A5A + 2D8A8A8E075A10B152AB831607AB5639040BB64E3DEAA8A322DE3A1DB5DEC7B4 + 1EB5DA5AB9020490047227DB6CE22E49C8B5C90BC9A8BFBF48B23CF6FBD9DF7B + C93EC08BA228BCCAE5F51AC00C80979717D11F92987BDE65CA1D025A63F9A48F + E1E7DB8AD34933B95B0C20337EA84B000A4FDF43B950CC19E1A5013878F16F88 + A40ACE082F0DC0C99B4FD1285542A654E3A9E03996C47C04BE9FB7CD006E0150 + A8C82F05D71F55A041DB010CC283921AAC9832006DFC785643BC34000F9E09D1 + 20537246702B40E2F66222E36E5A300625D5F5DAF04ACE082D0AB034FB0CB569 + DE7048141AA2E3D22592AAD028919845B8FF9F10CB62072288EFDB2CD04B0340 + 410EB1D4DB22C2BD7F05488F1BE65E80C5DB4F539B1346B00049D927888C9B31 + 3F1CB71F0B70F4CA1328556AB3C7A8552A6C5930D2BD000B361751DB168F7549 + 07D055FE5C81FD67EFA0462C6BF69A5C2AC1F625119E01502751B90480A9E2AB + 8F758B9F61D5D5D57B1EC0D779A75C0AD1372C94FDFAC13FE5EE07989F7994CA + 4A1CE7F20E604AAED4E0FAC3328825725CBCFD18D9CB225F2D00A69E568A9177 + E892E701B87A0AAC9D338AFD3A35E784E701B4647904C09CEF0E523B92A221A8 + 57B438C0EADC22E4254FF02C807585675C1A7AD5CC119E051097FE2B959F32D1 + 2D1DB02AEB0876AE9CC40D60D98E0B44EF5BC5CFEB903C7D1844320ABCD6AD10 + C8F3F77C00923B386B0ACE216DD6A7BA0EA89748F1C3FE4BC4834A2821AECAD7 + 83DF2A187B661D06DF97E7590029DA0EA897AA216C50A21514502A29740CE411 + 19BFB4BE040B8E4443DDB90132911C613EEFE1FBD17BC0E7F190B2F5200A577F + EE5E806FF24F62E5CC51A86DD4DEAACA3550AA29162180EFDC74A86E2C65C3B7 + E9A41F4BF8E4B90E61E3E8BDD8905FEC3800A92DACF4C253460005C7AEE89E97 + A9F4776B8E16DDF6BFCBD781DF53C586678A41087C168BDD695FBA17E0DBBCE3 + 583D672C0B4017D305BA20320D82DA729B0E65A2122C2D9A6074E54D8B46F0AE + 0AC5E5E5BF35DB1AE304E0EC1E5EA3488455B3C37573D210802E662AD08FED45 + B027BC2142DFD6FD51187BC008C12A4062CE59A25B58E93B8BB1326E0C0EFD79 + 488BAA41E9C3606DFB1B8F6DEF7460DABE6D2F0A6D3BF1F5981A256704B700F4 + DF120A5F7F1F4CEB9B88D87713F427FFA213D44A39FBD8D2C258A55DF0E82BEF + 13AA4240477FA8A9A66D30AE08560196649D21BA8727AAAD41EABC2884EF0AC3 + 0743DFC7FD1B8FF059CF8588E833C7ECF19DDBF1AD86A7AF3C45E9CFCD10C116 + 842102FF0D7F2F8B000BB71C27BA87B736F72892E22230606B30068F18A86D77 + A90EA187623CC2BC236C7E3FD3F6417D7C10141CA87B4EA5D1DF599A83B08530 + 2060107E9A7CC03600A9DBD7F41D47B1323E9205A08B4130ED044A254750FBF6 + ECE3CA8652249D9800DF2E6A363C538E2034544BE1270CC0A584BBF60338BB81 + 5157558994B9D188FCA5170B608830B1F72244F48ED33D27912911DC21D028BC + 7F372F6DF876DAC0E6431942589B124CF87DD38EA16B6037CB00099B8E11DDC0 + 30EC8021A30643AD691A9741788B8A41985F34FB4EC0B47DC8DB3C740C0ED207 + A5542F023787B0D50D86E1BBB5EB6E7D117425C0F0F061BA00E610E877874F82 + A7027E62DD95E777F766C3B341AD203010A608A2EA46F854F1D8F07A280E0024 + A7000DD074B24D10F455FAE3DA7D0C09998A1B15C508ECE1870E21414650A610 + F64C09B1500A087C8DC2730670B64C3BC0F8649B2384760F41486830FB9C3504 + 660C7308F49517FE25C7D9840B46E16D02C4671C22BA879759506411C014C15C + 3982505B590F659937BA944FC7E10DC9DC6E864C019CDDC3B334055C05C184CF + 083F889CFC0BD89711CF0D60F6FA0344F7F0E80EA0EB806C3622C68DD12E7A32 + 8BC73A8B505521D4B57D3FD15CF869F49F271C02C8FA2A4677FB4AB20665BFA9 + 036082AA346A8BC75A8360DEDB4D5F1756D6425146355BF0CC15270052DBD845 + D2E92C0053A4BA814B789B00B3D6EEA5725326BBB4034822D4086A212955DA1D + DE6E800AC2FBF843F342CD0238032128AFE41C9E33C0C6DD678900D053607C54 + 24FB41C5590447C3DB049891F63395933A0DD562B25380EE8009E3A3B51F5155 + 5611EC5920056502884B640E85773B005D6AF67D9B7B37D000D72FDFC48C77E2 + B162589A43BFC7B30B80FEE323BA36EF394704809E020C80B30872850CB7AEDD + C1A20F93306FE062B21D302DB580CA4BFB82052055237FEC62046008610DC112 + 8433083601B6A54E474D03D93F68B004C020D0C5B51B1C45B00B4050AF5F03B6 + EF3F4F04809E02B1D1B12F829A5F5F1C59201D41B00A3025398FCA4E9BC50290 + AAB1BBBA626ACC5436A03504FDEBF677035704B70298863307E110824A8A5B57 + EEDA85C00980E41460009AC2DBEE062E0BA4BD086EEF00AE0886C7D98BB061F8 + 5644F58BE1FEFF02AE02483C1E8587D5B7888E69A97CBD7D91392ECBB300ECA9 + 359B779BDDC0205DAF015E03D80068F1E406E5768057A95E7980FF01401CB4EA + B01E8D690000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000072C4944415478DAEDDB795013 + 571C07F01F420C10118B5A285E53DA4ED5E9E1D8DAEA8C33D5112B9E08282A0C + B6B415151C81A828C5CA385EA805819143B12D6D9DF1A268559456A94CC7DB7A + 4D5BB51E1D2B57807006726EB2CDDBB84B4836C7262F2403FEFECA64E323DFCF + FEDEDBDD07BA9124097DB9DC5E00B000B8B9B961FD21C27D171CA63CD8C713D6 + 2EFC10F8BC7E9CBE349DBBC70032E3A63804A0F8DCDF502B967046E83500A517 + 1F41BB4CC919A1D700FC72F32974CA542057A9E1A9A81592223E0001DFDD6200 + A7002809FC4BC18D8775D0A1ED001AE17E55136C583C1E06F0BDCD86E83500F7 + 9F89A143AEE28CE0540061DE592CE36625CC84AAC6366D789511C2BDFFC4901A + F59E49841E05482E384F66AD980652A506EBB8A8DA6504744AA52611922326C0 + 90819E46817A0D00090A90C8DC4D22DC7C2482ACE5539D0B9098778ECC8E0F66 + 00520ACAB18CBB6B6508DC7E2C8253579F808A50B37E464D10909330DDB90009 + D965E4DEC4590EE90054B5AD4A385A71079A2472A3630A9914F29266BB06408B + 947008005D67AF3DA6AE00FAD5D2D2E67A005F15FDEA5088314181CCEBFBFFD6 + 3A1F6065E629325F38C7E11D409742A5811B0F6A402255C0C5DB8FA160CDDCBE + 0540D7D37A09141DBFE47A008E9E025B967DCCBC4E2B2C773D809E2C970058B6 + B394DC9F1206A236658F036CDA570645EBC35D0B606BF1798786DEF869B06B01 + 7CBEFD1879207581533A6063FE49F8E6CB85DC00D6ECAFC4FADC2A696D811D2B + B5F70132DDB003F8FD5C1F00E70E8E30AF5CFBE81A427540874203D9877EC31E + 544A8AE19A620708FAF9C3A1D81320E079BB1640C6F219D0DCA9A200E8C2D509 + D56D559070320CD42F7780BC5D01411EEFC09E198740E0ED0DA9B9A550BC6989 + 7301D6651F876DABE61B01A0E259DEBE335B8D9DD54CF80143BDA8F7C44F5A29 + 84DD330E43C681B3B603E0DAC24ACE3E017B9274000AED9839C72E6A9F5355D4 + 312561FB13226AFB2B8AAD20789560C2D34523F83E8B8483E99FB90640DDF3AB + 804ADD352EFDDABB3FB7E950D35E05C965E1DDCEBC612104F78640B8BCF677A3 + AD314E00F6EEE1A1ABC0CEA485D4D93705C005C19AF0FA08633CC74171644937 + 04B300C2C20AAC5B58EB727F86DDAB43E1E8DD9F00FDB8BFEE0C0552A3B783C3 + 613AD06D3FF03512060E15E810352ACE084E01189713083C2F0F881E2384C8B7 + E399E3FA5DA026D4E0C9F7601DA741BBE0A133EF114880CF102F50935D885C11 + CC0224E59FC7BA87D7D2500F9929D130A9E015787FCABB70EF8F87B0E0F5D530 + FFCD65AC9FF71118B7B57E7874E64952F7DDF4112C41E82308FA7BB999045895 + 7306EB1EDEDAAF8FC036ED1A303ED71F26074F043921A31046294321C87DB6C5 + 7F4FB7BDDF1B1EE0E7EF4BBD4768744F966C109610C6FB4C821F16955806C0F5 + F89A967DAC1B002A1A81AD133C3D3D99D7F51DD590521E0EBC616A263C5DB620 + 7434CA802FF6814BF177AD07B07703034D81EDC228985214C8009843A001E8F0 + 5E23DCB4E1076903B387D287303725E8F047A24FC370DF11A601E2B34E63DDC0 + 10669640D69A0554077CF4F164506BBAC6D59F0EA3F973992B01DDF601A3BD61 + 88BF9F2E28493C0F6C0C61A91BF4C38F1834D2FC22E84880692153A9006C08E8 + EA30332816DA083175E60523DD99F04C503308348421427B632778347833E175 + 501C00704C81CD894B60FAB7C32880AE2FDB0581CED29FD7EF41F0F018B85275 + 1A7C47F16170805F372843086BA684442C0310F1BA85E70C606F197640F72F6B + 8C103832000202FD99F7CC21D063B021A0332FFE470115F195DDC25B0488DB75 + 1CEB1E1E7A2435056088C056B62034D7B781AAC61D86D5C6C0898CF5DC1E860C + 01ECDDC33335051C054187DF15520A85072AE1C8AE386E005FEC28C1BA87873A + 0055252F0166CF99A95DF4E4263F6B2F42439D986AFBB1EDCB81AF79897ADF26 + 80FC7511D4F33BCE42B7C208800E4A68D4263F6B0E82BEB61B1E17D73783B286 + 345AF0D88A1300AE6DEC32590C034017AE6EE012DE2240EC96C3E4BED4450EED + 009C084DA2669056ABAC0E6F35401DE67D7C742BCC06600F84A8B69E7378CE00 + BB0F56600140532074DE5CE646C55E045BC35B04589AFE235998160D8D12BC53 + 007540786898F61695308B60CD0229AA1181A44A6E5378A703A05233D76DEEDD + 80006E5CBE094BDF8A830D53D36DDA57B70A00FDF1112A5CBFC941538006B017 + 41A194C3ADEB7760F58414583131116F0744A77D4716A57FC200E02A7427A80F + A00F610EC114843D081601F6A6C5405307DE3F6830054023A0E2DA0DB6225805 + 206AD3AD0179472F6001405320322CF27950F6F5C59605D21604B3008BD71791 + 05E9B10C00AE9AF5FD70888A8862029A43D01DB7BE1BB8223815C0301C1B844D + 08840C6E5DBD6B150227009C538006E80A6FB91BB82C90D62238BD03B822E87F + CE5A848C69B9306F6C04F7FF2FE02800E19979F0A0F116D6314D15CF9D079973 + F25D0BC09ADA9C7D9075030377BD0078016001A0C793EB95D301FA52F57980FF + 013EF298EA0B9F670B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006AC4944415478DAEDDB794C93 + 671C07F06F850E695594E96078459725D3EC306E4B643199C6739E01273A884E + 364581652A6E28432506270E23432387E2266E2C8A63E854D44D996EF1767864 + F198D79C5C050AC8D5BB7DD7B7F57D694BAFB77D5EDA81BFBFB02D8FFD7EDEDF + F3D0F7270A288A42772EC133002B00028180E85F92B0F3346FCAA29E42AC8B7C + 077EC21E9CDE3493BBD300B6C68CE30520FFE44D3CA87EC219A1CB00149FBD87 + 66B98A33429701F8A5EC11DAE46A28D45ADC2EAF47D2FC5088FD7C1C06F00880 + 4A43FE28B872B71AADFA0E60106EFD2B4552E49BE8E527B21BA2CB00DC7E2C45 + AB42CD19C1A3000959C789AC9B11FF1ECAEB9AF4E1D59C113A156065CE292A63 + D904C8543AA2EBD2D52CD7A04D26B38A70F31F0912E686A27F9F9E1D02751900 + 0A4AB4C87D6C2294DD932063E978CF022CCF3A4965C64D640112734E1059373D + 762AAEDD97E0C8C507506BB4565FA3D568B02D7E926701E2334BA81DCBA7F1D2 + 0174553D51E140E975D4B7283A3CA794CB90B562BA770034CA34BC003075FCD2 + 7DC36701D36A6C6CF23E807579BFF20A31627808FBF5ED87559E0788DD7A84CA + 4E98C17B0730A554EB70E54E255A644A9CBD761F39AB66762F00A61ED5B420EF + E039EF03E07B0BA42E99CC7E9D9C7BC2FB003AB3BC0260C957C5D4AEC430489A + 549D0EB07E6709F256877B17C0C6FC53BC865EBB68A277017CBCE9476A77D2FB + 1EE980B5D987F1CD1773B901ACDA7586E87D6B53BD14D99FCF41439BFAFF0340 + 7282B338ADC80C808F2D20A3A4B8A44C83B84710F6451F825828F21E80E8D4FD + D899348FB70EA8682A47FCE130685F6885A25989E1BEAFE3EB29FB20168990B4 + BD18F9EB3FF00E806A1ECE80BAB60A367CAF01FE86C7A40F9E1810B64CD98FCD + BB8FBB0E406A84B534ADD00C604B41299175E9B6BFA0DC08F1300D1B9E290621 + E071040A523EF22CC0E2D402E42647A1AE85DC16A86C2EC7CA9270B32B6F5934 + 824F6D08CE7FF64787D1182700776778CD0DF544019C096F8A30A2E728E44714 + 9921D80548C82D253AC25AF6E50F0680C2EB3F19FE5C7641ECF25A4CDBF77989 + 429F01C675D43AFBB0D6103A1560C986BDC84BF910A3B68540E8EF8BA8110988 + 782D8EF33AB5FA038FBEF2BE211AF4EEEF0F2DD53E06E38A60176045F629A233 + BCC6DA1AEC485E80D1DB83F0D6B83770EBCFBB9C114CC3D3579EA28CEFCD14C1 + 11842982F8397F814D804FB61D233AC3A33B8001183B710C141AB90161A86A36 + 86FB4C77F8FD4CDB07BEEC8BC0A000C3631A9DF1CED21A842384D1BD43F1DDBC + 22C700A46E5F6337EC414E4A340B401783407742D8C8589BDF5BD35A81C413E1 + 100ED4B2E1997205A1B54E0E3F696F9C8BBBE13C80BB030C6955650700671098 + F0FE8305FAF07DF581AD873285B0B72598F0855147312860B06D80B88CA34407 + 18A61DF0EEE4B1D0EADAD7B5B51D98B60F7E4584FE4181C6A094E669E08E108E + BAC134FCE0BE43EC1F827C024C983ADE10C01A02D309CC95170FF161C3B341ED + 2030109608CD756DF0AD15B1E18D501C00486E011AA0FDCDB643D057E9AFCBB7 + 306DD822FCFEF067040CF5C3F3C18166509610CE6C8916A91C9008CDC2730670 + B72C3BC0FCCD76440819128CE09020F6317B08CC1AD610E82B2FFD5B89D2B833 + 66E11D02C4A41F243AC35BB169AF4D004B046BE50A42434D13D4953E1858B500 + 8736AFE676336409E0EE00C3D616E00B82099F3EB518B9BBCFA0303D861BC0E2 + B422A2333CBA03E8BAD46F0DA6CF784F7FE8296CBED65D84DA6AA9A1ED47362F + 859FAE9FE1719700F898E185E6BC680060826A745A9BAFB507C1FC6CB77C5E5A + D3005525D5E1C0B3569C0048CDF04AE40B5800A648750397F00E01A253F7537C + CCF04C3B802442BDA401B20AB5D3E19D06203DC31B97176215C01D0849550DE7 + F09C0148CDF0E82D307BD64CF6838ABB08AE867708B030E57B8AF40C8F2EBA03 + C26787E93FA26AEC223873404A2A25682957B814DEE3007469D99FDBDCBB8106 + B872BE0C0B5F8DC19AF1292EFD3B9E5300F42F1FD195B9EF372200F4166000DC + 4550AA14B87AF93A3E7D3B11CBC62C27DB0151C97B287A86C70090AA49DF0E34 + 033085B087600BC21D048700F408ABBE95EC2F34D8026010E8E2DA0DAE223805 + 2069329E0159074E1301A0B7404458C4D3A0D6CF17570E485710EC02CC5F9D47 + D1372F0C00A99AB6771022E744B201ED21189F77BE1BB8227814C0329C350897 + 1034725CBD78C329044E0024B70003D01EDE71377039209D45F078077045307D + 9DB3089B276CC7AC9173B8FF7F01BE00128ECDC29DBAAB44D7B455421F21B6CE + C8F62E00676A436681D50106E97A06F00CC00140A72737298F0374A7EAF600FF + 01B4C568EA9C08ACD40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007114944415478DAEDDB7D5014 + 651C07F01F1E8408F802A884A845630D646A5633DA38930C6A28888186258366 + CABBE30B166A988CA9613438E8C89B5062DA948E83A5A294904EA3E6FBCB34F9 + 163A8EBC1D70BCDC1DF7BE77DBED9EBBECC1DEDEEEDEEE1D86BF7F94BDBB65BF + 9FE7F7ECEDF338BAA1280A03B9DC9E03D000B8B9B909FA4B324BCF8AA61C363E + 0056BC3F11BB664E174DE4761A407EF24C51002ACEFC034613CA19C12900628F + 7C62C4EB70F2521D28347ACE084E03107BE483037C40A53180D660048D1E618D + F0CC03549EFF171FF976851626BEE44F2274766B2169EE64F0F418C418E29907 + F8EDFA63327473878A33825301F488F0B782AB0F9AA1DBDC0144E8C7D22E78EB + D540F267995C05A9D1536D223CF300779FC8A05B6BB08BB072DE9BE0ED29E913 + C825009985A70539EFAE8CB950DF26378737D8456894C9212B7E9A6B00D615D7 + A0BB522340AD3709723E6A293408A8D46A5A846BF71BC16D90047F9F11416077 + C6ECFF1F000A3A506A247611741A3514AE8D720DC09AC2336841FA2C1220ABB8 + 5A90F3E6A545C2CD3A299CB8F4100C8891F63DD8C8FBFA784167A7DC75001905 + 55E8DE35F344E900AC9ABAF470A4F616B42BB57D5EC3463E342408EE3E6A723D + 40A71A110580A8D397EBE06E7DBBD5316CE4DF9D1402E76FD641F1FAF9FD03E0 + CBB2DF4585C0469C286CE457C44C87B263175C0790967F022DCA8C16BD0388D2 + 194C70F55E2328D53A7CE477A446427649F5C00120EA718B121FF97E0720F614 + D8963487FC3B167CCB8A39B0A5B40ACA36C4F50F006756BF0048FAA612DD9715 + 0B52B9DEE90058F0AF52A26073D171F8EE8B0FB901ACDF774E90D58BB2AB13A8 + 00DB2B6A440DBDF99359C20108B18E5F997B14CA372D724A0748BB1B20E3D758 + 78C57F02E44494436E590D6C4F8F713D40D1E70BA14365103D7CCAB10FC038AA + 1BB40A1D84B84F02FFFA6590BB3A0E36EDA9848A2D1FF70F0031A6801A95C15F + BAEDE0FD32023E23BDF063B2875D20690D8223CB6B6067F969FE008E6E64A4E4 + 1E86D24D8B45EB8006793D641C8FC5479E084F14868075C2B027F17028E753D7 + 02348B700F685335D80C4F45C03AE1E2677F828FE7102B044E007C7772540A85 + 15C0B7876A05094FD7F6B60A43081D3C052AE28F5A2130026496D40AB29191BA + E34728C94E8036A5650A9C7D741CFF333C2486F7391B15F5B0AE2A0E20500343 + 477AE3C70C26E6294687E01280D9DF8F070F2F774808CD84842919BCC3BB0721 + E01BE00546B46733842B0223C0DAA21A417672141DED3800B671610118036FCF + 9C0C77AE3D80F1FA05102289627D2EA2EDFD26B8E3238FA2966BA322D883A022 + 78BFE0E5661360D5EE5382ECE4246D3D006539CBAC0066CC9A065A448323609D + 10FF46BADDF3B49A6F78C4C8FB8D1E861F434C96F5051D843D84A9BED3E187C5 + 47ED0338BA8859B5E320ECCD4E84F66EC40A002BB60874E189E283D0DDA6014F + 992F5C48BFCD1E80EF32B6B3B5050790CA2D1733EF4030094045B0351D88B61F + F5DA6073F8E1E6C0F4A1A8104C5382087F38E124040F1B6B1B207DD7494196B1 + 695BF74371CE722B80F7E6CC00A3A9E7BCD44E880D4B238FB7981F6FB3AAE3C0 + 7B9C040246FB5982A2C8D3C07D21EC750335FCD8E1E3986F826202444486E301 + 9810E8C2934119100888DE088A3615B8B70E21C35BA03800F09D02B2A6465A80 + 9E8BED81C046E9EF2B7720501B0E4DC6CB101C3A14FC03FDACA07A43B099124A + 99C6BC5AF2B00ACF19806FD9EA00EB8BED8B10342E1002834693C798108873D0 + 2160232FBBAF83DAF47356E1ED0224E71D13642767EDD707EC02F446A02B3E08 + 1D2D7230344A604C5322FCB27303B7C5506F00BECB587B53402C082C3C36F2A5 + 8BAAA1A4FC1C1CCE4BE606605EC7A342ECE4D0754054F45CF34D4F6BF3338E22 + B436CBC891F7348DC08FF302106227C71600111431196D7E960982F86EEFFDBA + ACA503544F8C9017596973E47901383205A87579C446128028A1BA010BDF7447 + 09618A14C6916705B07CDBCFA8183B39D38B5FEC03200442BBB403D40D863E5F + 754CC50A40E89D9C996541B4008E40489B5A3887E70C20D44E4E95261116C4CC + 271F541C45E01BDE2EC0D29C8328752343A8C23A206E41ACF911156144607383 + 94364A4159AFE515DEE5005819C9EF6DEEDD80015CBD781D964E4C868DE139BC + FE1D8F1500B19151F0D31F820060538000701441A7D7C28D2BB760F53B59903A + 6D8DB01D9090BD1FA5EEE40855D8860815800AC184600BC21104BB00D49D1CB1 + 010804ACB876035F045600C4135CE191B382006053203E36FE6950FAFB0B9F1B + 241F0446808F3694A1D44758A10A7B145EB27009199009C1F23AFB6EE08AE052 + 80DEE1E8207821201AB871E9362B044E00424E0102A027BCFD6EE07283648BE0 + F20EE08A407D1F5B849D117B20266C21F7FF2F201640E6A918B8D77643D073DA + 2A0F8907E44717F52F0036B5B5E010E33256A87A0EF01CC00E80D39353CAE500 + 03A9063CC07F05FCFDEA9747E6260000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007314944415478DAEDDB794C14 + 771407F0874011D0A2142B41D148A25162AB356D4253D34ABC01B1A0C52AD17A + 2282298A2D686925466D15A3452387622B1E8D47ACD603B555AA6DD47AD4B351 + AC579573611770EF6B76A73B83BF657677667666676757D1F7CF9201D6F97EE6 + BDD9791A7D701C8797B97C5E01D000F8F8F8B8F50FC9DE724634E5E8BE613067 + EC60E29C799D34CAED3180F569234401283F751B4C669C374287013878EE3E28 + B406DE081D06E0D7AB8F41AD3582CE6802AD01E38C202A80D8333F35361AFC3A + B59DE3957B0DA0B27400426855E960DEF82110E0DF893584E80062CF3C42A8AA + 96814A67E48DF0C202A099BFF55002AB66C74243B3C212DEE8802093AB213D61 + 1823C20B0B603FF3F1310340ADD13022CC8D7B0782037C1D027904C080B9FF56 + 603FF344C8E40F06801E33D122D4C9E4909312D37100E866FEEA7D09E3CF9B30 + 0C36668EF62E4076D109B784DF90391E6AA472DA2B7DEB3F29182D5D605F7AAD + 068A16C57B166071C9697C43FA48D018CC6E094E2D8516639CF9AA9A66C02D9F + 103E94FB5E6BABBC6301E0A007A5D69711E172552DF48F0CB3FE7CD5A37ACF03 + 64159DC20B33465901724A4EBA257CC1827170FD81048E5E7C48DBEE441133BF + 34F543B872B70E941A3D9CBBFE004A964CF02C40666105BE392B4E940E20AAFE + A901F657DE8066A5CEE17BC4CCAF9C3786FCFA71A312CA0E9DF71E40AB061305 + 00D5894B0FC8B9A71631F30880A8BCD293DE07F8A6EC37512106454558BF2666 + DEEB000BD61FC58BB31344EF00547AA3D966E697CF690758BEA502CA72933B36 + 002A34F3CF1D80D82360DFF25480AF8B8FC00F5F7DC20F60C9D6B3829E61B52A + 1578A303DC0A20649B4B2B38045B7392402237782CB844550B99879340AF0C81 + 7D738E40B07FD0F303B0AAFCB4A8E1E74E1E08F30F7D0CA63755A053E821CAEF + 6DF87EEC1E080E0A82659B0E42F9F2A99E0598FBDD01D8B66CB2473A80B8F228 + 7C971E81E431D9C3A724C2BAB17B61CDB613AE03B8BACE66ACFB198ABF9C042D + 6AA3C7C3A3420821D529B03B7FB67701C418010D2E83BFF4AB20B81FE6109E8A + E0DB140117BEF813BA0404D920F002E0BBCFAB150AD8B26C8A681D502BAF81CC + 2349B4579E0E6150E7A1509E72C006811520BBB452D03A9BB9763F09D060770F + 38F7E418184D66888D4A7439BC545D4B8687702DBCDE23983C6634B343D32178 + 1460DDEE4AF2F5B876260476790DFA1A2642946F3CEFF7456D1FDADF0FBA8605 + 82096F5F89F922B0022C2A3E2D689F57B43443695E2A4895B62735A22C02DE1D + 3104EEFC7D0F52076543EAD04CCEEF59A7A881C515C9E0178191571EC7DBCE8D + 8AE00C828A10FC5AA00F23C0C28DC705EDF3E9AB7F6204183E2A067498961702 + 357C68CF10F218666E7BCAA483708630ACEBFBB073CA01E700AE3ECA66ADDD43 + 02107F714154E19EDFC9D70AED7412802884E06C1CA86D8FC2A372054125D542 + 80AC2B9CCFB8C91D80EF32D3DAD40865F99F5901508DFEB19715808A407442CA + 5B190EEFD364B9E11157BE736FB084EF66094C1F8A0AC1361228FCBED463D03B + 2492192063C33141EBECC2D5BB6073DE746856D9FE3E01F0D198E16032B71F67 + 4240E183223B4158CFD0B6A038F62CB02384B36EA0868FECD687FD26E82E0089 + BCED448BF69F215F891118392E960C408780C601B57DF8C0206B786B50160404 + 618FA090AAC1AF29C81ABE0D8A0700DF1190D5D74149FE2C2B00AAB81DBD4980 + F6936D8720AED23F97EF405CBF99F0C7A3C310D23700DE080FB581B287E03212 + 4A99D6F2CCEC6F139E3700DF5AB0623B27002684883EE1101ED1D37A8C0D01BD + 071D0271E565FFEAA132E3AC4D78A70096751617B2CF2FFA76870D80FD08389E + 2C734857115A1AE560ACF3855EF5D3E19735B9FC96217B00BECB0CD711100B02 + 852F1877104AB79D857D0569FC002CFB3C2E649FB7EF002A407CC278CB4D4FC7 + F8BB42119A1A6464DB472BE64380B93B79DC250021FBBC33001414339B18DF83 + 0D027DB6DB7F5FD6D802F57794B4332F08C09D23800050B9AB1B88F0EA6A13E3 + CCF30298B5722F2E649FE7D201EE446896B480FC899E75E65D026870F11E905B + B093F6F8A5EE4B6901844048EA1BA1FA76ABD399170480F679A1457C0C4E4C9C + 607D50118A4084D7D41A1D1E72B8142BC08CFC5D38DD3A2BB4887538796292E5 + 11156345E0728394D4494059A37329BCD7018832593FB7F977030170E5C25598 + 31380D96C6E6BBF4EF789C00ECF779A1458C0002108AA037E8E0DAE51BF0F97B + 39901E93E5DE0E48CDDB8ED3EDF3428B5887A90054083604260821084E01E8F6 + 79B1001002517CBBC155044E00F6CB8CD02246202529E55950FAFB8B2B374857 + 1058013ECD2DC3E91E648416F120346DD2346B403684B6EF73EF06BE085E05B0 + 0F4707E11202A6856B176F7242E005E0CE114000EDE19D77039F1B245704AF77 + 005F04EACF71455833721324464FE2FFFF05C402C83E9E0877A5D7DCFA9E4CE5 + EFEB0FEB138A9F2F002EB5A27037A7654668BD027805E004C0E3C929E5758097 + A95E7A80FF01001949F987382F4D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000075F4944415478DAEDDB794C14 + 671400F0C72502E241B550544C6D9A28D17AC4A636B1AD46BC10A5A0C52AC16A + 555430A2D882162B69B4AD62A468E4506C8B47821A8B46456D956A8C5A15CFB4 + 9ED56AC585051670975DF69ADDE97E83DF32BB3B333B33ECCE16F5FDA399D91D + E7FDE67D6FBE27C18B24497899C3EB150003809797974BFF91F46DA7DDA61CD9 + AF27CC9B3008DDB3A09BC6794B06B02979B45B004A4EDE029399148CF0C20094 + 9DFB1B545A8360841706E0D7AB8F41A33582CE6802AD81E08DE0110003E1FA56 + 5079BF06D4960AC0084D6A1D2C983404FCFDBC3993786100EE3C51805A67148C + E0160077767BD26C02835E6F732C37751254D52B2DC91B1D10144A0D2C8A19CE + 8AE036007777FB9963226D8EABB404685A5A5811E6470F83207F1F87843A1C00 + BDDBC77F3000FC7DBD5B13013D346B7D5811640A2564248CECF800F46E7FE59E + 8C5A0E398B27C2F507723872F121180913E3F74C04019B53C7490B2045B747E5 + 9D347E085509D5CF0CB0BFE2063434EB1CBEA7D7B640FEB2C91D1F80A9DB6304 + 1CC72F3D803B550D36DF6B6A527A0E203DFFB84B92E7EAF67839D06360FFF036 + B87FAAA503585E788ACC5D34165A0C6697244E0FAE6E5FD3A881C4A8C1E89547 + 7D566F3443E55D1934B7E8E1DCF50750B8624AC70770D6ED1FCB9FC1E2D81136 + DF795CDB0CC507CF4B0790967F92CC4B89B20264149E7049F27CBB3D6134507F + 5FBB60BCF57856D109E90052F3CAC9AD69D16EA90014CEBA3D3D718F0234B510 + 6E01C0C1D6ED57CF8972F8EC9A6DE5509C19EF1980AF8B7F732B847DB7C74187 + 901460F1A62364417A8CDB2B00877DB75F33CF7109AC2E380C3F7EF589308015 + DBCF88DAC968D56A90120007EEF62E0510B3A74FC93D6A03E0EE25406F7ACB0B + 774325910341DEA1503AF71004F9057A1E40AA78AAAC82E9255110FC16093A95 + 1EFAFBBE033F4C2885A0C04058B5A50C4AD6CC94062039E7206CCF8803B9D220 + 59F272F5535878F06330BDAE862EBD02A8638A87CF28848D13F6C2FA1DC7C503 + 081D6A96E41EB201585772CAADC9CF9F3EC021791C18A1DB9304D893FDB93400 + 291B7F811DABA64B52014C4FDE3E10824F5D385CF8E22C74F10FB4411004C077 + AAD359F6E9055F4E83468DD1E3C9D31106761E0A2509076C103801D28B2A440D + 354B3795D900D82F811AD325EACF377CDE139D7C0BA9803FF4EBA0ABA5E175ED + 15441D339AB9C19910DC0290BA613F6C5B3583B5023EDC1E017E01BE3067D00A + 481A962A3879D4ED530FC7816F3801C13D03C044B60D464211380196159C1235 + D569542A0AA086A5078C2E0E8711A387C0ED2BF7298484C129BC93AFD73CB526 + 8F9E3C49B6DE1B1DC119041D21A85380172BC092CDC7444D75B80230C0C63D15 + 36E7CBB549302A6A24E8082D85D0CF100BFD7D263BBD2E2EFB90B77D2124B41B + 758C30B7EE3598209C210C0F7E1F76CD38E01C40E886266D4329146525427D33 + F30DA00A4000283042E2C074481CCABE1C64AA2A585E1E4F3D799C3C0E3108EA + 7A2DF82B82E17CCA4DFE007CB7B4AAC606DE007C1070F29DFB8025F9EE968499 + AF4B87E05A1238F97D8947A14FB7BEEC00962DADA8A90E5700FA8F0B1479A5BF + DB9C474BE0A3F1A3C0646EBB2EDB72C0651F3620107A8686B4264A12CF137684 + 70560DF4E4FB768FE06E826201967CBB1B8AB33FB302D8C7B89F7AC3D88963A8 + 0498105025A0C658676978E8C907F6F5B6266F4D94030143D823A8EA35E05B17 + 684DBE154A0000DF25D054570B5BB392A041CD0C8701DA6EB60D023DA53F2FDF + 86E837E7C0D94787A16B4427782D2CC406CA1E82CF926856682D3B273F9BE405 + 03F00D54010840AE6CBDB1FCFDA76DCEA32540076043088F0883B0F050EB312E + 047C0D2604F4E415F7F4509172C62679A70096A98E1433D52DFB6E271466CFB5 + 02D847F4CE3E0E00F6084C2106A1B1560946990FF4AE4E8243EB33850D43F600 + 7CA73A45B54C1480AB2170F23913CBA068C719D897932C0C60FEF7074831539D + 7D05302D81C931932C4D4FC77A8DF622D4D528A8B28F542D047F730FEAB82800 + 31531D9F25800070A284D9C47A2D2E08FC6EB73FAFA86D04838C7468784C2108 + C0954B0003E07055350849DE29C0DCB57B49AEA98E2D8454802B111AE48DF0E4 + 561363B76F17408DC01E9099B34B14407B20E4D5B5A0FC57CFDAED5D02603FD5 + B1059F25103B758A75A3D25E049C3C57B71705303B7B37C935D4B005AA00AEB8 + D46325C4C7C659B6A80427029F062997C9E1D15F0AA7DD5E52006781A6410480 + C2647D6F0BAF06045079E12ACC1E940C2BC7648BFA391E2F00B6A94E6CA07D00 + 06682F82DEA0836B976FC0D2773360D1C834C1089C0089593F935C539DD840C3 + 101D800EC185C006D11E04A7005C539DAB0130020AA1D52016811700DB96566C + A025901097F03C51E6FE22A6418A41E004F834B398E47A9D890DF41A9C356D96 + 35412E84D6F3FCAB4128824701EC93638210854068E1DAC59BBC100401B87209 + 6080B6E49D57839006C917C1E315201481FE39BE08EBC76E81A991D384FFBE80 + BB00D28F4D85BBF5D75C7A4DB6F0F3F1834D3105FF2F003EF14DDE1E415B5AB1 + F10AE015801300C933A785C7015EA678E901FE03D92F75F9AC939D8300000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007594944415478DAEDDB794C14 + 671400F0C75504C4030F285EA9A6A918AD476CA289B518F0429482145B09AD5A + 4F3082D0829656D26AAB6240347228B6C52BA8216854D456A9C6AA156FDB286A + A521722DB080BBB0F731DD6F7196D965AE6FD9D915F4FD0399991DE6FDE67DDF + 7B90E0441004BCCEE1F4068006C0C9C9C9A63F2471EF25C194C78C18085FCE1E + 8B9E19EBA1C9BCED0690B132501080820B0F41A727B0117A0C40F1D57F41AA50 + 6323F41880DFEE54824CA101A546070AB59637824300D45ADB6F05B79ED6419B + A1024884963625AC983B1EDCDD9C5993E83100E5CFC5D0A6D4602338142031FB + 9C4DEE9B193717AA1A2586E4359D10C41219AC0E9DC488605780F5B91789CCD5 + 412057EB6D7A5F1452851664723923C2F29089E0E5EED229219B0208DDE7233E + 1C0DEEAECEB4E7095041ABC28511A1462C81E4A829C20308D9E7FFAE10815AA5 + EA742E7DCD1CB8F74C04A76F548046ABA3FDBC4EAB855D7133BB2F00D9E76586 + 37BB38682C6D25D4BE50C3F1D2FBD0D4AAEC744EA5904376C2BCEE0B40EDF368 + 7747084C71AEEC19945735991D6B6991D80FC01E7DFEF6931ADAE5408D8091FE + A6EFCBFFABEDDE00747DBEAE5906D1C1E3508BA3FD8C4AA3875B8F6BA055AE82 + ABF79E416ED27CFB02D8A3CF7321A0A8AC6F85FC13D7840770549F675A0E9B57 + CC327D9F9A77BE7B0370F5F94AD10B58133699F1F3760188CFBE4064C5069B00 + 9273CFDB2479BE7D7E43F474C67B6CDA5B02F92911C202C46595107BE24304A9 + 00145C7DDE32BE5D12EC188016B95610003298FA3C35E14E1839A7E0E76F3EC1 + 0348DA7719AB9FA1B74005F82EFF7741212CFBBC200038935D6CE619C8490C15 + BC02C8B0ECF3CE2ECE2027C450A6DA0A5ECEBE50B8F42478B979F65C0032C83E + BF2C3200E24E85836E701B28A52A18E9FA3EEC9C5D085E9E9EB0717731146CFA + CCBE00422F016A9F5F9F7B08CADD771A93EF3DC8C3784C5CF1C288B063F651D8 + B6FF9CF5007C47DB84DD250EA9806A491544160483F728C2943C192442DFE751 + 70386D99B0006B334FC2BEE4701049D4764B5ED4560DAB4E7C6CF6E62D0321B8 + 34F8C3F5AFAE406F774F33042C00AED91E8DA354802D0517054D7E79E468CEE4 + A90801BD264041549119022B40625E29D668BB2EA318F66F8CE4AC80D28AD3C6 + AF41A3E65B9D3CF9E6C14F017D0679198F69F41A6C049B03E47CBD109A65EC0F + 327DDF7070F370852563932066629CD5C9BBFA6BC17BA007E8888EF118178115 + 2021E722D66CAF34FCA24205605A02258A18981C381E1EDD7E0A23D46130D265 + 1EEFE4519FFF4BB5057CDE7535BE7982687F362A02170415C1EB2D0F274680B5 + BBCE62CDF671DB8FC3DE8D8B382B606AEEDB302D780A28B50A2302DF4A40BB3D + EAF3E8CDFBF8F6351ED3EADB3B0E1D0417C224EFA9707051113700DFB6969851 + 6404A8E3D80302F3FD8D0028A80851E362193FD328ABEE943C19D620B4352AC0 + 5DEC0DD7621FF007E01A6C6452A919C08EC3A5B4D7A1254002501198960359F6 + 83DFEB6548BE9F2161FAA4A8106C4B824CFE58F41918DA7718338061B2237006 + 9BF8ED8590971A0D8DADEC4B0055C047B3A6814EDF715F12213A2011A227742C + 871A6915AC2F8900CF61CE30D0D7A73D5142FB32E1CE3F87AB1AA8C90FEB379C + 7D1314122068CE0C63026C0874C99B12654120212C11A48D32706DF03425DF0E + 8501C0B504A4CD4D4600F4870B1459857FD05E87960002E878D80E08F496FEB9 + F908FC9433A05657064303FAC0003F1F33284B083E4BA255AC30F44F37B3E4B1 + 01B862ED8F87203FED0B130053CCFC658819001382FF703FF0F3F7351D634320 + EF418780DEBCF8890A4A632F9B25CF09B032FD048133DB27A51F813DA931D0D4 + C60E460760894017D62034D74B4053E302436A63E0E4B614BC5F862C01B866FB + 96867A238048D2FE10D9C72FD15E67B904848220934F9F530C79FB2FC3B1F495 + 7800CBB716117C667B32127E3A00B9694B4D004C11726028CC0B9D6BD8F4948C + D77415A1A14E6C2CFB31D255E0AEEF6F3C6E15009FD9DE5A003251AD5EC7782D + 1B04D9DB2DCF8BEB9B415D4374DAF0E8020B806B09886B6BCC00D89600094086 + ADAA0127794E80A59B8F127C667B32ACA9005B2234899A415EADE19D3C6F00AE + D99E8C94F4835D02E80A84A8B61E3B796C00A6D99E0CCB25C00610B660BE6950 + E92A024AFEF9C316DA3EDF2580CFD30E117C465B32702A20222CDC30A26A5911 + F86C90A21A113457CA19FBFC2B0D804267EADBF8D580006E5DBF0321EF2C81AA + 2B2368DB9C4D00B8667B32D012E01365FD379800BA8AA0522BE1EECDFB30A031 + 10FEFCE1886D01A2537F25F8CCF6B88146612A0015820D8109824458F74132AC + 9E126FBB3D0001F099ED6D054022A0C0AD066B117801700D36B88106A1A8F0A8 + 9789D2EF17D66C90D620B0027C9A924FF0D9D470036D828B172E3625C886D07E + 9E7F35E0223814C032393A08AB10B40AB87BE3012F042C005B2E0112A02379EE + 6AC0D920F92238BC027011A8D7F145D816B41B168C5988FFFF024201249E5D00 + 8F1BEFDAF49E4CE1E6E20619A139AF16009FF83EEBB055931D6EBC017803C001 + 60F7CC29E17080D7295E7B80FF01C2ED79F97D06443B0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CopyRemote_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000074E4944415478DAEDDB794C14 + 671400F0C72502E241B550BC526D133458AB69134D6C8B016F3C508AAD049556 + D142230815B45849A3A91603829143B12D1E0D6A08DE472B54D3A8F53EDA54D4 + 4263E45A60017761EFD99DEE2CCEB0BBECCC7CDFB0B35BD0F78F64F6DB61DE6F + DFFBBE0741179224E1650E97570036005C5C5CECFA4D92F75E124D79FCE8A1F0 + F9AC60EA99B11E9ACEDB6100597121A200145FFC1BF406121BA1CF00945DF907 + E42A2D36429F01F8E5CE5350A874A0D6E941A52590119C02A025ECBF15DC7AD2 + 001DC60AA011DA3AD4B07ACE44F0F470E54CA2CF00543E9342875A878DE05480 + E4BCF376B96F76C21CA869961993D7754390CA14B0367C322B824301D6179493 + D96B4341A935D8F5BE54C8550428944A5684557327818FA75BB784FA0C00091A + 6857B9B122D44965901A35C5B900897917C99CF8300620B5E0825DEE9BF9C56C + B8572581D3D7AB4147E86DAED11304E426CC100740EC096FF10741E0E9EECABB + B6FEB9168E55DC87967675B7D7342A25E425CD130F40CC094FAD2361694810F2 + 7BCEDFA882CA9A168B6B6D6DB2DE09404F787F564B40ABD160BD77DC9840E6EB + CA7FEB7B2780F984479DEBCB428391DFABD119E0D6A33A68576AE0CABD2A2848 + 992F2E802326BC86560544874DA0CE75E47B3C6D6C87A2E3577B2780AD09EFF6 + E33AA476D8BA7A26F3757AE105C7013862C2C3AD0451019C35E151089121C1C6 + 2392FF39B7EC3D0B45698B7B1F00DF8477B3B216089DD6E67B37AF0C730C80B3 + 27BC8DD11FF2DE6B73FE29F8E1EB8FF10052F65D46DAD5A8296B4FE25C512A80 + 0ABE09CFFC93B63B00CAF9FE65EE3913409B921005800EB609CF3C94A4146E68 + B6838FAB3F94C49E001F0F6FC7037C53F4ABA810D6131E5D01B5B21A48381501 + FAD73B402DD7C018F77760D7AC12F0F1F6864DBBCBA078CBA7E200C4679F81FC + E470D12B800EEB092F6DC50C6856D432C90F18E6655A27AD7E6E42D839EB08EC + D87F5E3800DF8093B4FBAC4301E8A0273CB56B2BFCA1D9063E6F124CF274D008 + 839E45C1E18CCF1C0320760B984F78EB0B0E41A5E72E8B4FDE3A2804B7A640B8 + F6D5EF30C0D3DB02010B806DC233E80D4EA900AAE7238BC3C0772CC99ABC39C2 + B8FEEF427154A905022740726105D28093947312F6A5468044A60594A8A83E6D + FA3774EC7CC1C94B3A6A61CDF14500012A1838CCC7744D67D061238802B0ADB8 + 9C73FD39D54AF01AD00F466B17C218B779D8C9AF8A0C3225EF1E4880EF502FD0 + 935D43122E022740527E39D284A7368EA9FB37452257C0D48237E0BD9089F0F0 + F61358199C023193129093A73F792A79EA9327C9CE673347E0833047F0E9E7E5 + C20A603CDF4994096F5D5619E46F5802AD0A6E7D7380696153404DA8B010CC93 + F7F31F64BA46183AF71D5B107C08937DA7C2C1A5A5FC007C9BDB86DC1316007C + 2D7056156302A08246E06B076AC2A38E3ABFB7DD99E4E91082D0D1AC024FA92F + 5C8D7F800EC076BC29E472D8BB69297605D0C15709F484D77F0418931F6C4CD8 + F6F73187E06A093AF9A3D16760C4A091EC00C6098F4439DE92B34A4D000D887B + 404851207C34731AE80D5DF73547889A10CF5CA7273CEF91AE30D4DFAF335192 + 7891707708BE6A304F7EE4E051DC9BA050809D872B38D7532D103A7BBA29015B + 08743BD0651F10E4CD24CF24CA8140435823C89B15E0DEE4CD24DF098501C0D6 + 02F2D616284C8F86E676B416A02A8002E87AD82E08EA53FAEBE64358F4562C94 + 579D8481A3FAC16B017E1650D610282DD12E551977510F8BE4B101D822F1FB92 + 1E01B021048E0A8080407FE61A17027D0F5B08D4272F7DAC818AF8CB16C9F302 + C4651E275126BCD4ECA32600EA171754E494FCC6B99E6E81EE0FCB9EA45084D6 + 4619E8EADC60787D0C9CD89186F7C3903500DBF1D6D6D40845192B1800BE98F1 + E3709B00F686A093CF9C5D0685FB2FC3D1CC383C8055DB4B4994092F25F367D8 + 931E032D1D683F0C5100F3C2E718373D35EB9A9E223435484D653F5EBE063C0D + 434CD70501A04C78348044D6B92EEFD825CEF5540B500074A28441CFBA960B82 + 3EDBAD5F9736B682B68EECB6E1D90A2C00B61690D6D74141462C03C017730F8C + 6000E8B05735E024CF0B10BBF5088932E1257D77A0C700F6406891B482B25687 + 9C3C3200DF84979679D00200A7056C851008497D2376F2D8006C139E901658B8 + 603E33A8F4144168F2BC00CB330E9128038E7505A0002C5E18611C51094E0494 + 0D52522781F61AB5A0E49D0E40859E39B7F1AB8102B875ED0E2C0F8E838DD333 + 04FD45171200DF8427A40568809E2268B46AB87BF33EAC7B3F15D64E49B46F05 + 44A7FF44A24C789BB30EF508C01C820B810DA22708BC0028131E05801337866C + B409402350815B0D42119000508F37D4A08EC1A888A81789DAAE1A211BA41004 + 4E804FD28A489CD2460DAA05962D59C624C885D0F93A7A35E0223815C03A395B + 1082100815DCBDFE0009010BC09E2D40037425CF5F0D381B242A82D32B0017C1 + 7C1D2AC28ED0DDB060FC12FCFF2F201640F2B905F0A8F9AE5DEFC9161E6E1E90 + 159EFFFF0240896F730EDBFC0586BDE315C02B001E0087676E164E077899E2A5 + 07F80FD72385F959E5E49C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007614944415478DAEDDB7B4C53 + 571800F00F0A22E07B38105133B764EAD89C669B9AB80C03BE1045D4A1135171 + 884EB689A0A0C349164D3418181A79286E63EAE223C4D744DD84691675E2DB2C + F3355C8C502850C016FABEED5D4FF194F6D2DEDE737B4B15FDFE016FDB43BFDF + FDCEF93E1AF1A0691A5EE6F078056003C0C3C343D01F92BAFBBCCB94470D0B80 + CFA786A2F74CF4A671DE5D06909314E612809273FF80DE401323741B80A317FF + 05B94A4B8CD06D007EBBF118142A1DA8757A506929CE086E01D052C21F05D71E + D6419BB10230424B9B1A964F1F0D3EDE9EAC49741B807B4FA4D0A6D61123B815 + 2035FF8C20EBE6264F87EA469931795D2704A94C012BA3C6DA45E852803585E5 + 74EECA70506A0D82AE8B42AEA240A154DA45488C1C03FE3EA24E09751B001A34 + D0AA12D945104B65901E3BDEBD00ABF3CFD179AB22CC00E98567055937FB8B69 + 70AB4A02BF5E79043A4A6FF3397A8A821DC993DD0B909C5746EF5A1DE9920A40 + 51FB540B472A6E4353ABBAD3631A9512F253663C1F002D4ACA250038CE5456C1 + BDEA26AB6B2D2D32E1015C39DBD3063D68351AA7D618393CD8FCFDBDFF6A5D03 + E0CAD95E613CC8168687F25E43A333C0B5FB6268556AE0E2AD2A284C9BF9E200 + E0D91E212C081B099E2211EFB51ED7B742F1B14B2F1680E56C7FFD8198D776D8 + BC7C8AF9FBCCA2B3AE03E88AD9BEAE59017111EFA2898ED77A2F1C80ADD91E23 + F0894DBBCBA038638E6B01BA62B627D90E1B9746B816C05DB33DAA84E88FDF81 + 5E3EDCB7C3C68293F0C3379F9201A4EDB9C05ADBA857BB6BB67F2C790ACB22C7 + BA1E80ED944F29280777CEF6944EDBE9BA929642A5662BF87B06C2C184E3E0EF + EDE73A802F779C0677CEF6967B1C458DAC1A924FC680FEF53650CB3530DCEB3D + F87EEA41F0F7F3830D3B8F42C9A6CF5C03E0AED97EDDA270F3BF1B1535E6E47B + 0DF4355D933E7A6A42D83EF5106CDB7B863F80BD36874E7D4B806F8B7F772904 + 73B6C781CAFE2FCD16F07F8332278F0323F47D120B07B296090B90B2B30C0A52 + A35C5E013898B37DC692C9209657C39AB23956779E190841D4100C97D7FE69EC + 1C7E56084400CC3E6FD01BBA1400079EED17C58C7098BC25C2C89EEF43496CA9 + 15022B406A51056B9F5FBBEBB41500D72D50A7AF347D1D241A4794B8E56CBFA6 + 703F54525BA1CF9B34F419E86FBAA633E888110405E01AE3F243C0DBD70B9686 + A641E2475F11BD16053AEDE7954440C0DB3ED03BC017F47447AB2445600530F6 + 79D6CFF0D048BA273D0624322D90C484C241F041D868B87BFDA109217E4C32E7 + D74ADA6A60C5B1D9E0154C99EE3C4DB7BF374B0447109608FE3D7C3DEC0218DB + 1CEB6778297927AC00B69494734AA24C150F1323C6839A5299108669A361B868 + 86C3D725CE1B614E7E40605FD335CAD05E7DB6201C218CED3D01F6CD2F750C60 + AFC4D7ED380E7B37CCE355010800054670540996771E278F830F425BA30A7CA4 + BDE1D2AA3BDC0198879CDA38A717AC9B0BCD0AF67DC706C0050127DF33048CC9 + F733266CFBE75942B06D099CFCE1B85310D277887D8055B9A768B6430E558025 + 00C916F864CA44D01B3AD6B5B71DF0901334C20F020207B4274A53CF12EE0CE1 + A81A2C931FD26F28FB21E8082035A714766F98CFAB02C2A74D3225600B015702 + 9EEDFD86789A933727CA8280219808F246057835F899936F872200606E01855C + 6E02A8233C03C28A834D001D6FB60302DDA5BFAFDE85D96F254079D509E833B4 + 07BC1634C00A8A09C1654BB44A55C6BDE46D953C31003370056080ED072A3801 + A02D6009600F217868100405079AAFB121E0356C21A03B2F7DA0818A5517AC92 + 770890947D8C66EBF3E9B987A128330E1A5BC9B600B3026C21D80A3E08CDF532 + D0894530B8361E8E6FCB20FB658809C03CE4E4CD4D8202080D8193CF9E76148A + F65E80C3D9496400895B4B69B63E8F2B007D708122EFE01F9C00D016981135DD + 78E8A9ED3EC75984863AA9A9EC47C957808FA1BFE93A2F00B63E9F96FD0B1467 + 2D3103708DC93F0E3601E0442983DEEE73D920706F673E2EAD6F06AD98EE74E0 + D90A2200E6166869A8875D99F1D0D446F6CB9025000EA1AA8124798700099B0F + D16C7D1E55000290C8DA1FCF3F729E1300DE02CC7016A149D20CCA1A1DE7E439 + 03D8EBF319D9FBA0302BC10CC035227F0EB109E00C84A4B69E38796200669F97 + D68A790344CF9A691E549C45E09BBC4380C559FB69B636C7AC00922D30273AC6 + 38A252AC085C0E48895802ADD56A5EC90B0EC03550052000147A73DF26AF0604 + 70EDF20D581C9A04EB2765F1FAFF3C9C00ECF57967B60006701641A355C3CDAB + B7E1EB0FD361E5F8D5C256405CE64F345B9FDF98B35F10004B0836047B10CE20 + 380460EBF34203600414A4D5C017811380BD43CE992D101B13FB2C51DBAFE573 + 40F24160055890514CB325F85DDE01A2C47154F65F0F0BE72E3427C886D0FE38 + F76A2045700A806FA00A4000CCE46C41F042A05470F3CA1D4E0844005CFBBCA3 + 40730006E848DE7135901C905C11DC5E01A40896CFE38AB02D7C27CC1A3597FC + EF055C05907A7A16DC6FBC29E89AF6C25BE40D395105CF1700974007ACAD0F30 + 848E5700AF001C007479E616E1768097295E7A80FF01C04496F92A3CE29D0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007594944415478DAEDDB7B4CD4 + 761C00F02F1C0C019F4C07226AC6B644089993BD34711B061445C4210E9D8AAF + 212AB829A0A0E2248B261A0C888697E236A66E3E42D4A8A89B30CDA24E7CBB65 + A20E17231C1C70807770EF47772DB6F47ABD5EDBEB71807EFF117ABDDAEFA7DF + DFB7FDD6E8822008BCCCE1F20A8006C0C5C545D0BF246DDF258729078F1D0E5F + 4586A0E7CCE9A4F1BC7B0C203729CC21006517FF018311E18CD06F004E5CF917 + E42A2D67847E03F0EBEDA7A050E940AD33804AAB678DE01400AD5EF85670F371 + 23749A2A004768EF54C38A19E3C1C3DD9531897E0350F34C0A9D6A1D6704A702 + A4159E17E4B8792933A0AE45664A5E6781209529605574A855841E05482DAE44 + F2568583526B14F4B868C8557A502895561112A32680B787C822A17E03808006 + 3A5422AB0862A90C32E2273A17606DE145243F398200C828BE20C87173564F87 + BBB5123873FD09E8F406DA7D0C7A3DEC4999EA5C8094FC0AA4606D94432A008D + 86E75A385E750F5A3BD4169F69544A285C37B37700B42BF50E01C0E37C752DD4 + D4B59A6D6B6F97F53E806F4B7F73284450A03FF173CD7F0DCE07589D7B06294A + 8B767805E0A1D119E1E6433174283570E56E2D14A7CF1206C091535DE0C8A130 + 3F2C085C4522C18EF9B4A9034A4F5E1516C09153DD5F4F24A0D568EC3ED6B615 + D3889FB34A2EF40D007CAA5398EEE3719F06A34F70821CB7CF0090A73AF4591E + 451022B6EEAB80D2CC39C202F4C45477EB9198F772D8B234A2EF01D04D758D6D + 0A981B16021E6EFCEF4A5B8A4EC3F79BBFE00690BEFFB2D50C7B7AAAB3178137 + 00DD5A4F2BA902674C756C9683129142B5660778BBFAC29165A7C0DBDDAB6F01 + D89AEA9E4A9EC3F2A850DAEFD6CBEA20E5742C18DEE804B55C03816EEFC2EEC8 + 23E0EDE5059BF69E80B2AD5F0A03B0AEA8129C39D5A5CEFBC4627B8BA29E487E + E0084F6C9BF4C9730C6157E451D879E03C7F006AB343D7BC33A73A6AA065FFA7 + 663B78BFA92792C7034718F22C1E0E672F1716C05953DD8645E1C4EF62791DA4 + 56CC31BBF2D4401144CDFE706DFD1F30D0C3CB0C811300B9DB3B73AAC301D824 + 4F46081AF01E94C5979B213002989A1DED2BACF505E7C09EA9AEB2F634F667C4 + DB31ACF6A74E75AE2257A2EC07BF85C0E011DED87E3AA38E338253003E2E0C00 + 774F3758317E3D2C797F0DEBEFE153DDA2D871D89577F3D7C3A0E19E6040BA1B + 265704460053B7A77D87673418CD00B82E810A55027C10361E1EDC7A0C63B5B3 + 21503493717FF254975A7C086A3C7663C9A3571E41BACE8D8C600B828CE0FD9A + A78B5580357BCED1BEC3B3B70242F7FAC2E48889A0D6AB3084A521E990F8D1D7 + 36BF87DEE7E30F4682CF3B6EE0E33B04DBA637769D031D842D84D04193E0E0BC + 72DB00D444330BCEC0FE8C5890C8B4BC0026158FC400D02023244C48B1FA1D49 + 673DAC3CF93976E5F1E4F1E083D0D9A2020FE920B89A7C9F3D005EEAE8E32819 + 607B592527007409E00064046BCB2171EE382CF90101604A7EA82961FAA4C810 + 4C4B024FFED8C2B3103064B47580E4BCB3B4EFF036EC39050736CDB5AB023E9B + 36190CC6EEE35AAB04FCCA7B8D7685E1BE3E5D8922FA17095B42D8AA0672F2A3 + 878E616E824C00451BE2A04DC1DC719900C2A74FC1126042A04B9E4894010187 + A022C85B14E0D6EC4524DF05C501005F026AD3A04206E0B3045080EE93ED8640 + AFD2DF371E809F7A0A3418AA21206830BCEEE76306458560B3243AA42A5339B9 + 9B25CF19008FB4DC72D8B7699EDD15607EB29608FE63FCC0CFDF97D8C684801F + 830E01BDF2D2471AA84ABE6C96BC4D80A49C93085DB747474B14A091670F082B + F5B700A022D0051F84B62619E8C42218D59000A77666721B86A80078A92BE472 + 33805D87AB3801509780A320F0E473A69F80920397E1584E123780C41DE5085D + B7CFC83B0625590BA1A583DF12402B6066F40C53D3535BDDC75E84E6462956F6 + C1F295E0611C866DE70540D7ED8502C013D51B0D56F76582C0EFEDD4CFA54D6D + A01523160D8F2E3801E04B40DED68A01A02F2ED0C83FF23B27007409E0007808 + 550D5C92B709B06CDB5184AEDBA7E7FC0CA5D94B0800AE31F5875116004220B4 + 4ADA4059AF639D3C6B006AB7DF9CF70B146425406B27BF61C81A803D10928626 + CEC97306C0BB7D7B7313062091755546E1F14B9C00D025303B6616F1A0622F02 + DFE46D022CCE3E84D035BBCC9C83509CBD8C00E01A513F05C09CD9B1A647543D + 23029B0629114BA0A34ECD2B79A703A06120EEDBDCAB0105B879ED362C0E4982 + 8D53B279FD93112B006AB7973688CD00F82C011CC05E048D560D776EDC836F3E + CC805513D70A5B010BB37E44E8BAFD96DC43825500396C2D096B10F620D804A0 + EBF68E02C011D0E05A0D7C115801504B9DBA04F800C4C7C6BF4894FE187C1A24 + 1F044680F999A5085DA2DFE51FB61B6041DC0222412684AECFD957035704A702 + 5093A383E085A057C19DEBF759217002202F017BA27AD84602A03B79DBD5C0A5 + 41B245E05501F606B902B82290F7638BB0337C2FC404C771FFFF028E02483B17 + 030F5BEE087A4C6BE12E7287DCE8A2DE05C026D03E43F70243E87805F00AC006 + 408F674E0AA703BC4CF1D203FC0F591699F9ACDBE76E0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CopyRemote_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007404944415478DAEDDB794C14 + 671400F0C72D206AA98AE295529B564A6AB54734D1160B8A078A88C57AA0D222 + 2AD82AA8A0A29246931A0C140997425BAAA61E316A55D45650D2A8F53EDA28D5 + A231722DB0800B7BEFEC4EF75B9C6176777667677686A5E0FB6B9919C679BF79 + EFDB796370C2711C7A7338BD02A001707272E2F51F49DE7B4930E5C05103E1AB + B02074CDAC2E9AC8BBCB0032E383050128B9F000B43A9C35428F01387EF95F68 + 53A85923F41880DF6E3F039942034A8D16146ACC66048700A831FE97829B8FEB + 41AAAF0002A155AA841533C682879BB3D5247A0C40E5733148951AD6080E0548 + CE3BC7CB79B31267407593449FBCC60C412C91C1AAF0F11611BA1420A9A00CCF + 5A150272B58ED7F3A26853602093CB2D22C4CD1C07DE1E2E6609F518001C54D0 + AE70B188502B96404AF404C702ACCDBB8067278492002905E779396FC6EAE970 + B74A04A7AF3D010DA6A53D468B61B02771AA630112B34BF1DCB53305A9001475 + 2FD470B4FC1E34B72BCDF6A91472C85B37AB7B00B4CA314100883877BD0A2AAB + 9B8DB6B5B64ABA1FC0B6A2DF05851813E04F7EAE7C5AE77880D599A7F1FCE470 + C12B800895460737FFA98576B90A2EDFAD8282F5B37B170011CF1ADAA1E8C495 + EE0720740BEC58318DFC9C5678DE7E0021E7F980A10320EA9340F4C426C8F979 + 0310729E97E91F5E108210B17D6F2914A5CEEBBE00C43CFFD71311A8552A5ECE + B97579E8FF07803ACFA3298EEF4AD89A7F0A7ED8F2393B80F5FB2ACC3676D53C + 5FDF2283F9C141E0E1CACF42CC19807AC7F53F0B064037CFDF7A54CBBA1DE4B8 + 18AEABBE036F673F38147B12BCDDBC8403E88A791E5542C4E477A1AF07F3B743 + 8DA41A124F458276B014946D2A08707D0FBE0F3B04DE5E5EB039E738946C5F68 + 1F4072613938629E2710DC5C2CB74393AC864CBEEF204FC336F193170684DD61 + 876157F139EE00C41DDF547C513000A679FE46650D601A35EDEFA2B2FF53B513 + BCDFC0C8E4892010FA3F8F8683E95FDA0790B2AF1C1C39CF272D986CB6BDB6AD + 1A924AE719DD79D340082E8DFE7075C31FFA56F232426005807ADE91F3FCC625 + 21AC93A7228CE9F33E94441F3342B00AA0EF79A35758E88EF331CF573C3D0398 + 4E07A1A3E7D0EEB734CF538328FB7E6FE2D06F90B7619B46A7618D601700D761 + E6AC623978F6758751EA0808709965F138D3797EDDC2CF0C9F1BF50B1EBAF3AE + FE18F80CF4042DDED9366C11AC02ACCB2F337A87B721F72CF031CE8ECFF1830F + 83C7C2C35B8F61C5D80DB0EC8335B4C799CEF3C94B428D9247771EC73BAE8D8A + C0044145F076F774B208B066CF59A377787C024C0A9D004A4CC188808298E795 + CE2D86B2F77DCB157CFDFA1BF661BA8E6BA183604218EF3311F62F38C60C4024 + 8C464A3EE6F952458C0100058140D70ED4793EA9E0003C74CF02B7615A327922 + B820489B14E021F6812B09F7B903700DA2028820109607AD87B88FBF363B1E3D + E145EF0F83C16FF7D1273F409F307D5254086B2D41247F64F11918DE7F846580 + 84AC33466F7052734FC3BE94481049E81F486C8D890543E1D3699340ABEB84A4 + 22C48C4B24B78BA435B0F2C45CF01AE10C03FD7C3B12C5B197099B4330550335 + F91103465A5F0499007696947102402D10327D8A21013A04A21DE2E6BF63963C + 99A8150402C214A1AD4906AE8D5E64F21D502C0036EE3909C59BE7F3520108A0 + F3623B21D05DFAFBC643983B3A16CAAA7E857E23DDE1F521BE4650A610B6B444 + BB58A12F2737A3E43901E46F8C821699F5EF5AB6009610FC470E8121FE7EE436 + 6B08C439E810D09D173F524179428551F28C00F11927706AC9A3999A0A606F0B + 985FACE524B922B434484053EB02C3EA62E0E4AE5476C39029009AA9F76E5E20 + 4805080141249F31FD38141657C0918C78760071DF1DC3A93D4F00D4DBB90604 + 17F9C3ACF019FA454F69F1187B111AEBC586B20F6C5B091EBAD70CDB3901504B + DE1460F7C1724E00A80510009128A6D35A3CD61A04F1DD6EBA5FDCD002EA5ADC + 6CC1A30B5600295947A0306D3134B5DBD70244055083AF6A60933C2340EC8EC3 + 38B5E78504E003A159D402F21A8DCDC9DB0C4094FCB69CA30600F4E20245F6A1 + 8B9C00A82D40175C2044750DAC93670DB025EB17284A5F4602708DA93F0E8388 + 39B3C907157B11B826CF08B034FD004E2D7904909B1603CD52FB862104302F22 + 52FF888A5945B0658114D58AA0BD5AC92979CE002249C7CF79472F7102402D80 + 005068C9EF6DF6D580006E5EBD0D4B83E261D394744EFF8564130051F25B330F + 40417A2C09C03566FE3C9C04B01741A556C29D1BF7E09B8F5260D584B5FC56C0 + E2B49F706ACF0B054085B0866009C21E0446006ACF9B02F0D102740828D85603 + 57049B008884BFCD3EC85B05444746BF4C94FE5C5C16482E085601BE482DC2A9 + 09F309B0286A1199A035848EFDB657035B04870298264707C1090153C09D6BF7 + 6D4270384067F2CCD5C06681B415A1DB00D88A403DCE56845D21393027308AFD + DF0BD001F0110F7CF241EAFA9C977331859B8B1B6486E7F303D09581B0E95E60 + F01DAF005E0130007479E6947038406F8A5E0FF01F91DC91F94569A8BF000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007224944415478DAEDDB795094 + 751807F0076125C02BD220BC26AB29C9F2E8186DAC34541451026A4D19540A10 + 0153D130A3641C6D301C0D1C39144B541C8F71D054D412D269D4C4DB69F20A1B + 47AE05167061EF7D77DFDEDF8BEFCBEEB2C77BB23BD0F30FCC6F775EF6FB799F + DFBBEFFB387AE0380EBDB93CFE07B001E0E1E121E81F49DB714E34E5E09183E1 + 8BD031E833B3FAD054EE6E03D89238451480E2B37F83D184B346E83100A517FE + 81368D9E35428F01F8F5FA2350690CA0351841A3C71823B804408F097F29B8FA + A01E9444075008AD4A2D24CC1A0BDE923E0E43F41880BB8FE5A0D41A5823B814 + 202DEFB420C7DD9A320BAA9B144478431704B9420549E113EC22742BC0CA8272 + 7C6B5208A8F526418F8BAA4D83814AADB68B101F361EFCBC3DBB04EA310038E8 + A05DE36917A156AE8074E944D7022CCF3B8BE7244FA301D20BCE0872DCECA533 + E166950C4E5C7E0806CC68F33D460C83DC94E9AE0548C929C3B72F0F13A50350 + D53DD1C3E18A5BD0DCAEEDF29A4EA386BC15B3DD03A0558D890240D5E9CA2AB8 + 5BDD6CB1D6DAAA703F80EF8A7E131562F4A820FAF7BBFFD6B91E60E99613787E + 5AB8E81D4095CE6082ABF76AA15DAD830B37ABA060D59CDE0540D5A38676283A + 7AD1FD00C4DE021B1266D0BF67149E713F80EE2CB70048F8A114DF991E093285 + BEDB01D6ED2883A23551DC00C49CE4E02623E8753A518EFDEDE269C2018839C9 + 5111B7ADD11F048B727C1A23FF38FCF4CDA7EC0056ED3C4F2F8A3DC9111B8133 + 000A4EFC140DC07C9273ED7E2DEFEDA0C6E550A9CB02BF3E017020EE18F8497C + 8503E88E494E7D8B0A22DE7F1DFA79F7617DAC1A4535A41C8F04E3F34AD0B6E9 + 6094D79BF063E801F0F3F585B5DB4AA178DD7CF703B035C9A110249ECCBF859A + 543574F87E437CC835F9C32724C2E6D083B069D769E100BA6392C3663BA0B6FF + 53B711FC5EC4E8F0545108031F4BA124F3736E00698515E08A490EEA84B0F782 + C1B7AFFDED50DB560D2BCBA22CCEBC752104CFC620B8B4FA0F626BF95A20B81C + C0D924E791EC09C4CC18CF39BC39C2E867C641B1F48805824300223839C25A91 + 5F0E424E72EA8D95E4CF7DA9998C263998A1EB9D23D5F6035EC261C0103F72CD + 6032B0466004909A7B0A849CE48CCB0D02898F177CF94E3AC48E4F753AC95931 + FF238BB546E28287CEBC571006FD07FB8011EFC4638BE0108038F3E40C8F0210 + EA2166C2B600787BCA58B873ED0189207D23995CB737C93107300F8FCE3C8E77 + 9C1473046710E6087E7D7D3CEC0210C1C9098E3500DFC7D8324D2C4C9E3611B4 + 98864418A98F80519EB3E9D7AD273954516DEFFF8A17F8070C24D73053C767B2 + 05E10C6142FF49B077DE11E700C95B4F82908FB1A80310002A0A2161EC6A58F4 + 562AB9663DC959363F041A9435907E260A24438D7478AAB820289B34E02DEF0F + 17936FBB16C01E022A6A92239DF32A19DE67B807117E1011D876287308475B82 + 0A7F28E6240C1B38DC3E00119C1C60580308B1053E9C31198CA64E50F3EDB03F + 29975E5F59B00F2AB12C087CCD170607F87704C5B1A781BB4238EB06F3F0C307 + 8D707C11B407C0B7500784CC9C4A06B085B078CC2A887F7719796F2FDD1B6A11 + 9E0EEA008182B046686B528157A32F1DBE038A014062F65110729233A9E00512 + A0F3C37642A0B3F4D7953BF0F1CB71505EF50B0C18D1179E0BF4B780B28660B2 + 25DAE51A0099C4223C67808DC5E5BC00D0163007B08710342210028302E83547 + 08D4316C21A0332FBFAF838AE4F316E19D0210C1C9195E7CD611D8B5F613D13A + C01682ADE282D0D2A00043AD270CAD8B85639BD6B07B183207C8FF2A1A5A548E + EFB2F802080D4185CF9E590A85BBCEC3A1EC44760044701C9D796B0021B6C0EC + F059C4454F6BF73D7C111AEBE564DB07B72D016FD3B3E43A2700147C49D621D8 + B1769EA01D8000A8A098C968F7BD8E20A8EF76EBD7E50D2DA0AFC5BB5CF06C15 + 2B807A81AE01538A826800AA84EA0636E19D02C46D3888A3E0D6009B4B2A7801 + 505BC0BAF82234CB5A405D63601C9E3140FC861228CC8881A67661B680AD0EE0 + 0B21AB6B601DDEA5001173E7D0372A7C11B886770AB030731F8E82277DBF9F04 + 40830B5439077EE70580B640544424718B8A394460728194D5CAA0BD5ACB293C + 638084F57BA02873110DC0B7A6FF3C94044065A4BFB7D9770302B87AE93A2C1C + 93085F4FCDE4F42FB98C01B667C442B3529887217300BE083ABD166E5CB9454E + 9692262E17B603623276E3E8CC53003245C73520EFF0395E00D416B02E675BC2 + 1E041F04A70028F8D2F5BBA120338E06E05B617B86D904A01050B1ED06AE082E + 0390464A9F06B57D4C2E17482E080E013E5B5384A3E0D600426C8105D10BE880 + 8E103A5E67DE0D6C113801F02DD40108C03A9C2D084E0898066E5CBECD08C1E5 + 009DE19D77039B0B245304B701608A60FE3EA6089B42B6C1DCE068F6FF5F402C + 80B45373E15ED30D418EE5AC249E12D8129EEF5E006C6A7D4E89CD418650C518 + C095E572809E78E61903747B72B37239406FAA5E0FF01F03043AF9B72C548600 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_21_48' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006E14944415478DAEDDB7D4C13 + 771807F02F948AB4381CEA60E04B74D95446A6739A61623289288AF802BABA49 + 7432952998A9B8E11C4EB268A6D3C8D0C88BE236B699F8328346C59729D32CEA + 7C7FD9325F717142B14001A1D0F7F6D62BDED197EBCB953BDA80CF5F783D8FFB + 7EEEF9FDDA3E513F8220D09DCBEF050003809F9F1FA7BF2473E759DE94A306F5 + C5C2F868F29E59DD3495BBD300B6A68DE705A0E4F43F301809D6085D06A0F4FC + 4334ABB4AC11BA0CC0A9EB8FD1AAD241AD3340A5D5BB8DE01500AD9EFBADE0EA + 83A76831750085D0D8A2C6E229231028F4771AA2CB00DC7D22478B5AC71AC1AB + 0099F92738B96E6EC61454D63599C2EBEC10E44DAD589238CA2142A702AC2C3C + 43E42E9900A5D6C8E975C96A56E9D1AA543A445894F036C48102BB405D068080 + 060A95C0218254DE842C498C770196E79F26F2D2E36880ACC2939C5C77F3D2C9 + B85921C3D14B8FA0D31B18CF31E8F5D89631D1BB00197965C48EE509BC740059 + D5CFB438507E0BF50AB5DD6B1A9512F92BA6FA0640A352CF0B0055272E57E06E + 65BDD5B1C6C626DF03F8AAF8375E21860F89A07FBEFB6FB5F701966E3D4A1464 + 26F2DE01546974465CBD278542A9C1F99B15285C35AD7B0150F5B84681E24317 + 7C0F80EF25B07EF124FAE7ECA293BE07D099E513008BBF2D2576652541D6A4ED + 7480753BCB50BC3AD9B70036949CE135F4DA0571BE05B0F09B5F89DD6B667BA5 + 03D6161CC1F75FBECF0E60D5AE73BCCDF0443D85583475340203B845E61C80CF + 19DE5F8F64D06A349C5E5749C87159B31162FF30EC4D3D0CB150E49B00D40CAF + 42DA880509A3111CE8DFE16B56355522E348120CAFB440DDACC19080B7F05DFC + 5E884522ACD95E8A92751FFA0E80E50CEFCE7F72338250E0F972A86BADA2C307 + F70B321F933F7A6646D812BF0F9B769FF01CA0336678D71FCACCDFD83C29B2ED + FFD46C8078B09E0E4F158510F244823D391FFB0E00D30C8FEC8494F87720EAE1 + FE72903657626559B2D593B72D1241501B818B9FFD615A6A222B0456009D31C3 + 6383E04E784B84E13D47A24472D00AC129406651392F23AC530F8EA055ADC1D8 + C87846846BF7A52EDF1DA8B67FE935022FF5139B8FE98C3AD6085E0118B92D02 + C2A0002C885E85E4A1A98C08E49EB074660CE3DFAF356D78E4930F88D0A357DF + 201888F631185B04A7002B0ACEF032C32B53CDC3E8F12370E7DA030C31CEC61B + 3D67DA9D43CEF096CD1EE7343CF9E409A2EDDE2C115C415822887B04F9390458 + B6ED382F33BC3773FB615C5C0CD47A954304A67704AAED435F0F40685888F998 + DED8F6CD9209C215C2A85E63F1F39C83AE01B8FEFA3A6A7B9819802C0A6198FF + 1C440527D3E79033BC0C492CFDE79A962A649D4C8630D24087A7CA1384963A15 + 02E5BD7021FDB6FB005C0D30C825400158228C099E8F317D24E663E40C8F02A0 + C2070DF03385EF6D0ACC1CCA12C2D992A0C2EF4F3986FE21031C03A4E71EE365 + 804176C07B93C6C1606CBF2E8510179E86774D08E40CCF5FE04FB77DF83011FA + 8685B60525F4CF03DB43B8EA06CBF0037A0F74BE09F209306172AC390013C2CC + C1CBD0783F1A926943CD4F5E3C504087A7833A41A0206C119AEB5A11502BA2C3 + B741B100E072099000ED37DB0E413EA5BFAFDC41B83A168AC05B081914883EE1 + A15650B610EE2C09855C05C88456E159037055540758DFAC3D42C4C070844784 + D1C79C2150D76042209FBCFCBE06E5E9E7ACC2BB0448DB7C889719DED8C257ED + 006C1198CA1384869A26E8A4024456CFC3E14DABD97D19B205E06A8667BB04F8 + 82A0C26F9E5C8AA2DDE7B07F731A3B80451B0FF232C3233B606AE214D3A6A776 + 784E47116A9FCACD6D1FD5FC09028D2F9B8F7B0450F0F92C34B43AFF7CED2900 + 15546F34383CD71904F5DE6EFBBABCA6015A2961B7E131152B002E9700054015 + 57DDC026BC4B80D4F5FB889D6BE6F0DA015C22D4CB1AA0ACD2B91DDE6D80A71C + EF01E38B2318013A0221ABAE611D9E35C0963DE59C00904B60C6F469F407958E + 22781ADE25C0FC9C5F88A2EC14D429B85D02640724CF48327D44D53B45706783 + 9449655054AA3D0AEF7500B20CF4FB36FB6E2001AE5EBC8EF9D169F82236C7A3 + 99BA5B00E43F3E222B6FEFEF9C00904B8002E8288246ABC68D2BB7F0E9982C2C + 8959CE6D07A464FF4814E77C44037055137F88B402B0847086E008A223082E01 + 7664CF437D0BB75F861C01500864B1ED064F11DC029035B5ED01F907CE720240 + 2E014992E47950E6FDC5930DD21304A7001FAC2E260A73526900AE2AE1A7FE98 + 3B6B2E1DD01942DBEBEE77035B04AF02D8866382F00841AFC28D4BB7DD426005 + C0E512A000DAC3BBEE06361BA4BB085EEF00B60896E7B98BB069C2764C8F9AC5 + FEFF0BF00590797C3AEED5DDE0F49A8E4A2810626B62816F01B8535FE7ED611C + 60705D2F005E00B800E8F4E416E57580EE54DD1EE07F45989FEA5F606CA70000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005714944415478DAEDD87F4C94 + 751C07F00F77074DE72A1C53E0060EC9ACE6961915896EAD5CA56395AB363796 + C504456DD3D188DC698C61B962129522414D2C146C2509F223C5AC254D24C75C + 8264FC0A76DC1DDD0F8FFBC5FDE09E9EBB7A6E70BFBECFF7E1FB3CF730F8FC75 + BBE7B9E7BBF7EBF97CEFEEF944511405F3B9A21600040078A7EA67DE16796445 + 1CEC78618D378BA8018EEE7C86976BD75CEA812937C51961CE039CBBFA174CD8 + 1C9C11E63CC08F3786C16273C2A4730A6C0E173682A0000E17F9B5BAEEA8C04C + 77008360304F42EEE647214616C50A61CE03F48E68C132E9E48C101180FCE3AD + 44AE5BB677338C8E1BC14403F823E88C16D895B90E892008407EE565AA2CEF39 + B03ADCC4AF3D617381C5620D89B063CB63B03846121261CE03B8DD5360B65321 + 11945A2314BCFE546401F657B453E57B36F900DE3DD146E4BA1FEF7E11BAFBD5 + D0746D009CAEA9A0E74CB95C40AF1D5980B73F6DA18EEDDBC24B07786AECAE03 + CEB67783DE6C0F3866B759815E5B1C0006AB8BD7755A3BFBE1F6A86EC67B0683 + 517C0087AA2FF2BADEC32B137DAF6F0F8E451E604FD905AA223F93F70E60CAEE + 7443579F124C563B5CEDEE077AEDF905C0D4B0C604D50D1DE203E07B0B94E43E + EF7BADA86C131F8090250A809DA50D5455C156501B1D8203BC5FD50CF4DAE202 + 385CD3CEEB7A07DFDA242E809C23DF515F1E782D221D70B0A211E8B5F10048CF + F08C3A2D5414BC0A7A8B73EE00909CE0D01D3003C07F0BF4E8FE84E1E114C150 + 16DFA7869ECFF3A20403C82EA9832F0E6C0BD901479B1BA1F5D758589B960E8B + EE91CD382693487CAF257E4FB552A924E05AD152F420E8DC0FE761E8EB578407 + 5085F90E78EFCC69F8A377852008AC01488DB0761DA99F01505A7B39E8799DCA + 5B60333DCE3B82E0003925B550A9C8827F4CE82F41213A011B60B633BC09BD8E + 358010084800D223ACBC0F4E7B013C830B4F95D7FD84FC0C9FDB417080DCE253 + 505DF4A60F806D29EACE404F1FF94E4002909EE119C635704CF106E8CCF80F43 + 7C20200148CFF03C1DE001501BFFFB0E38FEED15ACCF33DBE1E98C0D01C7B820 + B00620F5F8BABBF8249C28CAF601E054AF72080A2B7F8707576D00B95C1EF41C + 5C84A6A6463C80D90E30B4634A4E004CF80752332021510EB230BFED38084800 + D2030CFF0E60B305F4763D74DE71C1AAD48DDEF0BEA00410220E80AAE9773E6E + 59BCF7BD68999418023680905B80099F92B21E96C727CC38460A41B41D102E3C + 498496960BE10148CFF0F67F780A09C0263C29046C80D9CEF0505B00273C0904 + 2400E9199EA70342958932439F3E169293D7C3D2B878FADF9E94F575B922B002 + 10628677737410F6965F87A4E4746F78A6B82268D46330323C84FCDBDCD6D68C + 07C0C7189BF99D67EEBC7FE122A8E86DD63FD0016B564F42FF606A5804244076 + 491D156E8637DBBAF1F720ECFB2CF0CE7345D08EABBDE1EB15199096921A955D + 594375DD4C0A89C01A40C5C31CFF16FD85E7099F207F12962D4F449E8F42F00F + EFCB1006A1FD622B1E40A8191E6E316D9F284F67151E85A051AB6068E8B780F0 + 280424C0F6A26F289C1116DB7AB6B0CE1B3EF6FFB68F0EF2A4C61601153E1C42 + C4005E3AFC1548601D24AD7CC8F71E1704B6E14321B006C099E1B12987C30E57 + 0694B064511A678409C33856F860081DBF5C0A0F90A538497199E1B129B3D904 + 599F7C0F31B2B5D8087AAD1A4647AE6187F747B0584C6800AE333CBE10661B9E + A99286F3DEC087B6BE8C06E03AC3635338DB8154F8601514605B6135C5758687 + 5377AD66C8290FDF097C868F38000A615C33062AE575DEC2B306E0630B4CAFAC + CC2702100CF49DE73B3C6B00216A7A272CB9F77E41C28B0A8041D85E5A0B6E57 + 2C9C556CE43DBCE8003C555C5E0BF51FE5F21E7C01600100012078F269157180 + F954F31EE05F8F1068CCA7F20D180000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000064A4944415478DAEDDA7B4C13 + 771C00F06F5B1051F77031CA236A14DD2B26734E17269A2C9B9BD3A1CE4D8D1B + 99D3A0F8C00C2C11A6D511A77151A416260F6546B331194311411E2A4E97E102 + 3A3566828E21304969614085B6F4DD5BEFF40EE8EBEECAEFAE0DF8FD87E3AEFC + 7ADFCF7D7FBDFB7D8B00C33018CE21780AE004402010207D13F1D12B9C29BF3A + 791C442F9C819F33AB9326F3E60D2035E66D4E004E5EAA058B15638D3064000A + ABFE811E9D9135C29001B870B319B43A13E84D16D019CD8C11BC026034A3FF28 + B851AF008DAD02480495460F1B16BD0601FE42B7490C1980BA871DA0D59B5823 + 7815409C518E645C69EC226869EF06B50DC01EA1B35B0B1B2367B944E015605B + 562526DDF42EF41AAD48C7C5A3476706ADB6D72542F4E2D7617480C821A12103 + 60B55A4063C05C22C83BBA217155B87701E2322E61B22D0B2880C4AC0A24E31E + DCFC01DC6E504249F50330992D4E5F63319B212DF63DEF02C4CA4AB123718B39 + A9003C5A1F1921BFF23674690C0EC70CBA5EC888FFD0370054BD664E00C828AF + 69807B2D9D03F6A954DDBE07B03BE722A710AF4C0DA1B6EF35B67A1F60736A09 + 96298EE4BC02C83098AC70E3BE1CD4BD06A8BADD0059094B86170019CD6D6AC8 + 397BCDF700B89E027B37BC4F6D4BB22B7C0F80CFF009800D070BB163DB9783B2 + DBC83BC0D7C74A2127F163DF02D877B292D3A477AD5DE05B00D1FB0BB0EF77AC + F04A05ECCA2C86E33B57B20348387615E9BA55DDAD8203B14BA05363067FDBBA + 24C00F2D302700283B38E2CC0B20DDB290A8008DC10AB2BC5F071CAFEDFC1B9A + 9BA7F08632EA3925D47EB749C01BC03659311CD8BA04BAB42602808C310142E2 + 676A693194FF3E1666CE0E87C000BF017FEB271452DB42BBA5BD482474782F7F + 117D7515169D83A61F3EE20F20F650111C8E5FE600D0FF84BF3AF513FC553799 + 1704C600A85A58DB64E72800836DCCB4FCABD431A3A96F195B23BF0B3AF51B9C + 23780D40F1E42E60B2F48D4B6E8F1AF138093E2A8135C0607B785D862E906E5C + 455C7D7B006F20D00288B32F236D616D4F2F86942F97C27F6A13F17B5A4155DF + 416BDFE3315FD3817F00E9694811AFA0005C5580FD094BF24E41ED7DF495400B + 109F5989B487A76A6F83D4C428620AE063EAF57AB7AF7F667420B5CD05022DC0 + D6B432A43DBC8443F9B03F7E25F1248847565135D1AB631AE474782B629EC331 + 4F101803A05ABEEE94150C0020032F7D67D53072E4486ABB4EDE0449D97FC28B + D3E7416868A8D3F1D922949414B303186C03039F02FBC59F41578FF3AB2E14F9 + 53DB568B890220939F161601C121A1E0E7E6DECE068116608BF43CD2068638B5 + 00A4092B6D6B81C71F82B965D5038EEB2D02C0CC8F5BDAE49D00BF75D6D49B61 + 7AD87C22792A5104085E077017F89468EC5450577EDCF82062BFBF9F0819026B + 00AEA740FF397FABB11E924FDC812953E6C284A0E001AF4385E0B31540CE7967 + C9A344282B3BEF1E2026E52CD21EDE8EF433B4004C924785C01A60B03D3C7C0A + EC89FB14D45A9DD3E3E49C67923C0A045A80F5DF9E46DAC3C32BC05568CC8FE0 + 963C10264D9A0B2F8C0BB23DED89188FEB29022380CCED9F10EB772EE34E4B23 + C4CAAEC3C449E144F264788AD0A66C8587CD4DB48FCD1515A5EC00B8686393F7 + 79F2CADB075B0445AB1C1A1E5C83192FE9A1A131CC2D022DC0BABD79D8D11DAB + 39AB809BFF36425CBAE395F714A1A35D4924FFB32402E64C9D26589B7502BB71 + 67A24B04C6000A0EFAF8776D9FF678F2C1A16FC2F80921B4AFA743B04F9EDCEF + 0EA1F262393B8094DCCB489227CB3E24349C51F274086D4A053435FDE1903C1D + 022DC09AE41FB16C4914D5C04015EF24E511C98F7D52F6FE4E566A4C11E89277 + 87E03580A5FB8E831066C1C4A92F53FB3C41609ABC2B04C600F83F1FE161FF4D + 8EA761341AE0CA03398C099CED31428FAA9D55F2CE10AEFD76C93D4094E40496 + 93FC05058032341A35441D3E0323FC66B246E8EA5042CBC36AD6C9DB2368B56A + 7A802392CF1D3A38DE44186CF2647C53584424BC7BF9327A0072F192F1CB15E4 + 086CA603AAE4FB87DB6F875727E56059C9EB18353006138F7A35B05EE6BE12B8 + 48DE6700E810DADB5A4121BF8E3C79D6005C4C81FE111539C7014165BBF25C25 + CF1A808FE85F09639E7D9ED3E47D1280445893920B56F358C897CCE72C799F05 + C0638F2C17F20FC670FE4F444F019E02D000F09E79BFF03AC0708A610FF03F81 + 1008DBCF5754460000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006834944415478DAEDDA7B5014 + 751C00F0EFDD8188980A43A8DCA8E3ABD738939936E463A6D42C957CF41A6718 + 4D07C107CD683842723E4A1C2A1D0C4B5EA26145926568BC55484B2D1F99E328 + 6A86403007077177DC8B7BDFB6BBB81BC73D76177EBB77037EFFFAB1BBB777DF + CF7E7FB7FBFB1E220CC3602087E811801B00914884F44D1273CFF1A6FCCCB870 + 887D750AF199397D682A6FC100D2E35FE205E0E8D91AB03B30CE08FD06A0E8E2 + DFA0355A3823F41B80D3D71BC060B482C96A07A3C5C61AC12700161BFAAF826B + F75B408F570085A0D69B206EE1B3101428F69A44BF01B8D3D80E06939533824F + 0112332B909C777FC242686AD3800E07E889A0D418605DF4348F088202BC9F5D + 85ED5F3F0F3A2D0EA4E725426BB481C1D0E9112176D1731012247149A8DF0038 + 1C76D09B318F08F2760D24BD13E55B804D9967B18C8DF36980A4EC4A24E7DDBB + E135B851AB8092CB0FC06AB3BB3DC66EB3C18184577C0B909051861DDCB48897 + 0A20A2B9C302C7AB6E804A6F76D967367642E6E6C5FE01A0EEB4F1024045C595 + 5AB8DBA474DAA6566BFC0F6047DE195E219E9E10498FEFD635FB1E60437A0996 + 9518CD7B055061B63AE0DA3D39E83ACD70F1462D646F797D600150D1D0AA83BC + 9397FC0F80EF29901AB7801ECB722AFD0F40C8F00B80B8BD45D8A1ADCB41A1B1 + 080EB0F35019E425BDE15F007B8E56F19AF4F6D5F3FD0B2036ED07ECF0B6B77C + 5201DBB38AE148CADBDC00B61C3A8F74DDAAD3A82139E665D0E2CFECC1832430 + 62E860FF0740D9C149CDAF861D6BE69115D081AFD50F9EB8E8B4BF46F9173434 + 8C170C65C87005D47CB15E242840F2CAB9D061C497A87A2B881C56B0D9ED103E + 3C84DC9F5E560C15174261EAF428080E0A707A6D80584C8FC53D96F61289D8E5 + BD0225CCD3B7E8D44F50FFF532E1003E3C7C1A52562F0095015FAA9A1D60B563 + 34C2632143C8633E38F62DDCBA334E1004D600A85A586947CF3801E497FC4E6E + 37D945E46A8D8A2BF2DB60D43DCF3B82E000BBF3CA6167DC221A8008AA0A8830 + 5AEC10364CB84AE00CD0D71E9E41AB81EDB10B21042FF7EE00E407783815AC76 + 100C81112031A71A690B2BED4805A4E00044FFCE8CA37E557D01CC3A89D33142 + 4E079F01FCABEB2A79EAEA771FDBADA6877F03FEC5184C8E6585C7A0E61EFA4A + 6004D89C5585B487A7552921257E29040F0E22CFA93518C99FB23C45C488107A + CC070223C07B07CA91F6F052734B202976313E05BA1A9705A7FF046587162C56 + 3BABD753D3E1C559B35DF6F506813500AAE5EBA7874B21796D340D400451FA3A + BC128C566764CC6686B0D050FAEF3BF27A48CEF9039E983C1BA452A9DBF37345 + 282929E606D0D70686BAAD15B6AD5B064A9DFBC5D0E0A0407A6C325B21226C98 + 53F29326CE82D1915208F0726FE782C008B0717F29D206465A6E31A4AC5B823F + 06779D8F6861F78C4EA3C9E94EA032ABE0CA7D1B4C9E38874C9E4E140182CF01 + 3C05312DDA545A68372AE92B1F1E318ADC1718F0FF6DB3AF089C01F89E02D2C7 + 87D3E3F3B76FC127C7EEC2F8F13361E4A8D14EC7A142F0DB0AB8D958475E7977 + C9A344282F2FF50E10BFEF24D21E5EFA97A58C006C924785C019A0AF3D3CA629 + 40CD7936C9A340600458FBF109A43D3CA2023C45BBB9037EAD15C3D8B133212C + 7C14FEB427617DDEDE22B002C8DAFA26B97CE5336E36D54142C6551833368A4C + 9E8ADE22B42A9AA1B1A19EF1B1B9B2B28C1B001F6D6CEA3E4F5DF99EC115A1A5 + 590EB50F2EC194274D505B37D12B0223C09AD4422C77DB0ADE2AE0FA3F75B0E9 + 73D72BDF5B84F6360599FC77B2593063C224D1EAEC7CECDACD311E115803B4F0 + D0C7BF8D3FDE12C98F96BE00112323198F6742E8993CB5DD1B42D5990A6E00FB + 0AAA91244F957DA4348A55F24C08AD8A16A8AFFFCD25792604468055BBBEC172 + 643174030355CC4D2E24930F7D58F6816E566A6C119892F786E03380257B8E80 + 18A6C198094FD1DB7A83C036794F08AC01887F3E2222A3F0672400168B19CE3D + 90C3D0E0E9BD46D0AADB3825EF0EE1D22F67BD03C4C8F2B1BC5DEFD2002843AF + D741CC673FC2A080A99C1154ED0A686ABCCC39F99E0806838E19E0A06C25E3E2 + 454884BE264FC5EEA25364C23B962F65065068BABE0332BF3F871C81CB744095 + 7CF7F0FAEBF08AE43C2C7BD71A1A80AFE8E8D4C3DA0CEF95C047F27E03C084D0 + D6DA0C2DF2ABC893E70CC0C714E81E31D1335C10D4F895E72B79CE004244F74A + 183A6C04AFC9FB250085B06A5F01386CA1705C3687B7E4FD1680888F320AE0F8 + DE78DE127F04F008802580E099770B9F030CA418F000FF01F24136DBE4C91112 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000068F4944415478DAEDDA094C14 + 671806E077394A50E281A81C512A6A0F63526BB5A182D6547A68ED61EB95925A + 8DB758B118B516AD69356DA281E2C1A16834AD8A78A00511AA289EAD8AC6DA8A + 57B90A595828D79EB3F7746770262C0B3B3B30B3BB01BF84E4776799DDF799EF + 9FE317094992E8C9257906D00E80442211F443E2F6148AA63C2A34000BDF1D4D + 7D675E5F9AC9ED348084259345013878BE182633C91BA1DB00645DFB070A42CF + 1BA1DB00FC76A7026AC200ADC104426F7418C125007AA3F0A782A2273550593A + 8041685269B178EA2BF0F1F6B01BA2DB003CA8AC875A6BE08DE05280B8E43C41 + F69B183315557572282D006D111AE46A2C9D3EB64304A7027C955A40262E9B02 + 8DDE2CE87EA9521046A8D59A0E11164E7B15BD7D3C6D02751B00B3D904958EEC + 10415A2FC7BAD9E1AE05884D3E4F26AD886201D6A5E60BB2DF6DCBDFC3DD1219 + 726E94C26034B5FB1E93D1881D316FBB1620262997DC1D3B4D940EA0AABA598F + CC82BB6854E96CB6E9080D9257BFEF1E004D1AA328004CE5DD2CC1C3AA06ABD7 + 9A9AE4EE07B029FD9CA8102F8705B3E38765D5AE07589E9043A6C44D17BD0398 + D219CC287A248552A3C3B5BB25485DF341CF0260AAA25689F453D7DD0F40EC29 + B065F13BEC383E2DDFFD009C596E01B0785B16B977ED0CC8E47AA7037CBB3717 + E9EB3E712F80AD070B440DBD717E947B012CFCE138B96FC34C9774C0C6946CEC + FF66163F80357B2F09FADC4AA854583133027215815EBEBE08F2EFEDFE0042AE + E0249FB886989991F44990BA34EDCFFEC36A7B71C36354540C731A4AAFBE3214 + EF5A26711AC0CEA357B06AEE241A405AAF84E1E9738B7F9F5EF0F1922021371B + 7957FB63CCB870F8FA7859FDAE9787073BF668F368EFE9E961F359DE9EDCD337 + EBF4AF28FFF963E701241CBE842FE7BC8966C2844685064693C90A81AAAF8F1C + C6DF0F429D82E03080504B58BB322FD3008D6A039A555A9CBC5C0C0DA1A5B751 + E705A66E4AEF8350BE263A824B01543A338C8696AB01A16F6903C272EF1E32C0 + 8F1E3BA313780374750D4FAD9023363A0A8103FAD200545108ADA7028530A85F + 6FFA4B8B8DC00910977641D025ACD4E357B07CD6247AFD4E67413D76F14F9066 + 331BDED9D3C1A5005451080653CB8FC46CB0EA040D416070803F3D8ECF3882E2 + 47C2770227C0EA940241D7F0A82910337B32065A82115A1D6A9B09183B58C3A3 + 2A34C89F1D8B81C009B072C75941D7F0120E1762A5E524A8205A425353A0A641 + 05BD4EE7D0EF33D3E18D88489B6D9D41701840A8C7D7E4230588F92C8A05608A + BA275068AC9F0F343A039E0F1AC0FEFB81B41CEBD36EE38591910809096977FF + 7C117272B2F90174750143D1D880A573A640A16DBFA3FAFAF9B263EA44C80030 + E1470C8F40507008BCEC5CDBF9207002AC483C23E80246DB0EC8BE7ADF6ABBD6 + 6004412AA1537AB25782465D236E3E3162E4F089747836A800082E0768AF98AB + 4265752D54A4863DF2018302E9EDDE5E9E8221F006107B0A8C0A1DC88E738B6E + 23F14429860D9B80C1814156EF130AC1651DD0A0B2BFBFC7B20AACDA790361C3 + 226DC20B8970F6EC19FB004BB69F12740D6FDFF18B9C00F72ACBE8B66FEFC80B + 8DC01BA0AB6B785C53406356381C5E08044E80453F9E10740D8FEA808E4AA669 + 40DE5F060C1D3A01FE018196BB3D4F87F7DB5904870052D67E4A3FBE8A59F7AA + CA1093740B438686D3E199EA2C42ADAC1A9515E59CB7CDF9F9B9FC00C458C666 + AEF3CC916F5B7C116AAAA52829BD8ED12F6A515236DC2E0227C0822D19E49E0D + 7345EB803BFF962176A7ED91EF2C427D9D8C0E7F343E02E3C34648E6A71E208B + EE0DE910C161801A11D6F1EF5B6E6FA9F04121AF63D0E060CEF77321B40DCFBC + 6E0FA1E05C1E3F80ED872E08129E69FBE0907087C27321D4CA6A505EFEBB4D78 + 2E044E80799B7F21D3E2A3F19F52D829F0D6FA0C3A7CFFA76DEFDDCE939AA308 + 5CE1ED21B80CE0C3ADFBE181B11812F612FB5A67101C0DDF1182C300D41F1F51 + 95947191EB331C2ABD5E87C25229FC7CC7751A41D154C72B7C7B08D72F9FB70F + 101D7F804CDFFC050B2064A9544A44FF7412CF798DE18DD0582F4355E50DDEE1 + DB22A8D54A6E80DDF19F733EBC3813A1ABE199FA3EEB341D78D38C8FB80164F2 + 967340F2B142C111F84C07A1C2B72EBBFF3B3C777D3A99BA79010B2056356B54 + 589464BF13C408EF36005C0875B5D5A891DE123C3C6F0031A640EB8A9E3EDE06 + A1C972E4C50ACF1BC019D5BA13FCFAF41335BC5B023008F3B61F82D9D81F99F1 + 13450BEFB600547D97740899DB968816FC19C0330007019C9EBC55B91CA02755 + 8F07F81FE3AF43DB38F4BAF80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006AA4944415478DAEDDA7B5014 + 051C07F0EFF1902C47254991130C50CB72CA7C14BE669A321F4896BDC6424DF3 + 914A9386A366684EE9D48C8E86260F25D34984D442E39D62D6280C480EE32468 + 8640D2C181C071DCFBB9ED2EEE0DC73DF61676EF6EC0DF3FDCDD2E7BF7FBECEF + B78FDF9D882008F4E7103D00B003201289787D93F8C39704537E6A741056CE9D + 407D664E1F9AC9DB6D00FBD6BC2808C0F10B95309909CE087D0620EBCA3FE8D0 + E83923F419805FAFD541A531406B3041A337BA8CE01100BD91FF4341F9ED4628 + C90A6010644A2D56CF7F1601FE3E4E93E8330055775BA0D21A38237814203EA9 + 8097EDEE8F9B8FFA6639142440778456B90A1FC64C7288E056804F528A88FD6B + 5F865A6FE675BB5474688C50A9D40E1156463F8747027C6D12EA330066B3094A + 1DE11041D222C79677A23C0BB021E90291B87EB605604B4A212FDBDDB36E1E2A + AAA5C829BD0383D164771D93D1880371AF7816202E318F38B4215A900AA0A2A1 + 5D8F5345156853EA6C96E9346A246D5CE01D0032B5511000260ACAAA71B3BED5 + EA35994CEE7D003BD2CE0B0A313E22C4F2F8664D83E701D6EDCB2192E36304AF + 0026740633CA6F49A050EB70A5A21A299B5EED5F004CD435299076B6D8FB0084 + 6E815DABE7581E27A4167A1F803BC32B0056EFC9228E6C5E04A95CEF7680CF8F + E4216DCB1BDE05B0FB7891A0496F5F3EDBBB00567E7586F86EDB5B1EA980EDC9 + D938FAD9DBDC00361DF99DD7FB568D5289D87993E86BF441030720521CE4FD00 + 7C4E70D20BAE61C9FCC9F441F07643074EE4955A2DAF6CFD1B7575E16E437978 + 881495DFAE15B90DE0FBFC0A7C40DE965200D4B9596F2260D46B316AC43004F8 + 89B02F2F1B05970331714A140606F859FDAF9F8F8FE5B14FB75B7B5F5F1F9BF7 + F2F7656FDFAC73BFA0F687D7DD0BB064CE44A8F4D4EDA902E45DAA1502159F66 + 9CC45F55A3DD82E032005F23ACF48272B205A6D2004D3235B2AF54D2085434DE + 9359D62B93DC8046315970048F01B46B4C68551A20321BA0D1770A5095A0D519 + F078F050FAB93B2A8133406F67785AB51AEFCE9D82A72343A0D499C9BD4F5821 + 68C89B1783C108F16343E80F2D34022B407CEA455E475827F3CB101BFD023DBF + D391A8B92537613699A0259326CC66B7B7834701A8A010A82A301AF4309210CC + 4191FA7647AED460ECA8CEEB8484CC0C54DEE2BF125801362617F13AC35375C8 + B164C134BA055AE42A48EEC91D1E5FA85678665CA8E5B91008AC001F1DC8E775 + 86772CBB04EF4547D1830A2AF28B2B51F99F9C9ED7B9124C3B4C9B31D366594F + 105C06E0EBF63523BF9406E8D0584F6E25AD4A28140AABD7A871F6F8C85196E7 + 55925A6C4DFD13E3C6CE84582CB6BB7DAE083939D9DC007A3BC0605A40AE36D8 + 5D3E2C70308CF7C7DA7285CA02C0243F267206468688E1E7E4DCCE05811560FD + FE5C5E071819B9640BC44CB754C0C5B22A9B751ADBB59D7FEF9F09DA746D28BB + 6DC4D8C85974F296447940F03880A3D06875A8AA6D02F190C1B2E7838607D3CB + FCFD7C7943E00CC0470B2C8E9E46F7B7BD983C3ECCF2F8CCE512A4E6D6233C7C + 3A46048FB45A8F2F04B757C009F22CB074217B05DC207BFEE383A588089F6993 + 3C9F08F9F9B9CE01D6EC3DCBEB0CEF7441292B0095FC868357EDEE79BE113803 + F47686C7D60201834D2E27CF07022BC0AAAF7FE27586475580A3A857B622AB54 + 8EB0B0E978342898BCDAF37579BB3D4570092079F39B68531920645CAFAF415C + E255848645D1C933D15384266903EED6D5B25E361716E6710310628CCD9CE799 + 3DDF3DB822343648507DA718139ED0A2BA26D229022BC08A5D99C4E16D8B05AB + 806BFFD6D03DDF7DCFF714A1A5594A27FF63C20C4C8D18235A9E728C28BF1EEA + 10C165804601E6F8CCD17EA4F8790C1F11C2BA3E1B42F7E499D79D21149D2FE0 + 06B037FD222FC933651F228E72297936842669236A6B4B6C926743600558B6F3 + 04919A108B7B0A7E5BE0A5AD9974F281F7CBDEDFCE9D9AAB086CC93B43F018C0 + C2DD47E18349088D78D2F25A4F105C4DDE1182CB00D48F8FA848CCFC8D1700BD + 5E874B77241834704A8F113A64CD9C92B78750FCC705E700B109C788B49DEF5B + 00F80CA55281D86F7EC600BF899C11DA5AA4A8BF5BCA39F9EE082A95821DE050 + C252B42A85F941434F107A9B3C135F669DA313DEB1E8357600A9BCF3189074FA + 12EF085CDA81AFE4BB86D36F87176F4D235276AEB0000815ED6A2556253AAF04 + 2192F71A003684E6A606344AAEF29E3C6700215AA06BC4C64CB54190917B5EA8 + E43903B823BA56C2A0C143054DDE2B011884657BD3613606E254C22CC192F75A + 002ABE484CC7A93D6B044BFC01C003001701DC9E7997F038407F8A7E0FF03FA9 + D950DBDC9E536B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006A84944415478DAEDDA795094 + 751807F0EF72C458A6918C07880678E749EA90E06865878A79748C334CA6E391 + 4A9386A366684EE9D48C8E86268792E3914976E0811C09488CE07886A6A01802 + 81CB2E08ACCB5EECF9F6BEAFBD1B7BB0EFBEF0BEBB3BE0F3D7CBFBAE2FFBFDBC + CF6FF77D1F14110481EE5CA227007600442211AFBF246E7F8160CAA3060760E9 + 9BA3A9F7CCE94D33B95D06B06BC57441000EE796C268223823741980F4A2BFD1 + A2D17146E83200BF5FAF864AA347ABDE088DCEE034825B007406FE3F0AAEDE93 + 40497600832053B662F9CC71F0F3F57218A2CB0094D53442D5AAE78CE05680B8 + C46C5ECEBB3B76266A1BE4509000D6084D72153E8A0E6F17C1A5009F26E711BB + 57BE06B5CEC4EB79A96AD118A052A9DB45583A6B029EF1F3B609D465004C2623 + 945AA25D0471A31C1BDE8F702FC09AC45C2261F50C33C086E41C5ECEBB63D55B + 28A99022E3D27DE80D46BBAF311A0CD813FBBA7B01621332897D6B6609D20154 + D53DD2E1445E099A955A9B635A8D1A896B677B06804C6D100480A9ECCB15B853 + DB64B14F26937B1EC096D47382428C0C0D346FDFA9AC733FC0AA5D1944525CB4 + E01DC094566FC2D5BB6228D45A1495542079DD9CEE05C05475BD02A9278B3D0F + 40E825B06DF91BE6EDF8941CCF0370657904C0F21DE9C481F5F32195EB5C0EF0 + C5814CA46E58E05900DB0FE7091A7AF3E2199E05B0F4EB5F88EF37BDEB960ED8 + 9C7406073F7F8F1BC0BA037FF0FADC4ADD8DCD891A45DF9FF7F1EF85E103FD3D + 1F80CF094E7A513916440DA73F04CBAA1B90967BC3E278695339AAAB435C86F2 + 746F294ABF5B29721D406119164C1B6506A08A7C68C390817DE0E723C2AECC33 + C8BEE08FF11323D0C3CFC7E2DFFA787999B7BDAC1EEDBDBDBD6C7E97AF37FBF2 + 4D3F751A5547E7B916203A7224543A237D73A2D6682C10A8FAECF88FB85536D8 + 25084E03F035C23A5B7CC70C206E54A0E0CF4A32BC013AF29655F250667EDD65 + F16D68142F098EE07280D3857F61EEB4B13440BD4C0D83D1083DF9F84E758281 + F0865AABC7D08101F49B7645277006E8EC0CAF55ADC6ACA963F04A78189A9406 + 18F43A68748F0718EE406005884BC9E775849579E1166693004AAD09269309E7 + A9254006D718453091DD402D0782DC5F2375CD727039C0A9A21B9817359E1E60 + 52A5253B4B6F246C3A81AAFA6615C60E0BA6B7E3D38EA3F42EFF9DC00AB03629 + 8FD7191EB304A68C0981840C58256E84D6647F7D12460326BFF882F967211058 + 013EDE93C5EB0C2F3DBF04B3A78DA3071554514BA0B4520295D6769049758575 + 31CBE1E5C8289B631D41701A80AFC7D7CCC29B16004C953F90A149D662B18F1A + 654F1831D8FC7399B80A1B53AE61D8D028040505D93D3F57848C8C33DC003A3B + C050B5C831E79570329CFDAF55FFDE3DCDDB32B9D20CC0841F121689018141F0 + 71F0DDCE05811560F5EEB3BC0E30AC3BE0E2AD2A8BE3148C54A6A2DB9FF92668 + D636E3F23D0386864DA5C39B83F280E03680168DD1E1EB142A35AE95D7E1597F + 91F9CA07F4ED4F1FF3F5F1E60D813380D04B2072ECFF4F8247F22FE0E8B93A84 + 844C41BFFE032C5EC71782C776C06D72CD7FB2F7124243A26CC2F389909575D6 + 31C08A9D27799DE165159762FEF4310E01A8F06BF65EB17BE5F946E00CD0D919 + 1EDB12E84D3E113B1B9E0F04568065DFFCCAEB0C8FEA80F6EA814C8C23058D18 + 34680A9E0FE84FDEED793B7DDE8E22380590B4FE1D34ABF4BC00B457376B2B11 + 9B7005C18322E8F04C7514A15E5A879AEA2AD6DBE69C9C4C6E00428CB199EF79 + E6CA5B175704499D1815F78B317A782B2A2AC31C22B0022CD99646ECDFB450B0 + 0EB8FE4F25BDE6ADAF7C47111A1BA474F89FE223312974886871F221E2EACDE0 + 76119C06900830C7673EED07044D46DF7E81ACAF6743B00ECFEC778490772E9B + 1BC0CE63F9BC8467DA3E3028C2A9F06C08F55209AAAA2EDA846743600558B4F5 + 0722253E060F15FC2E815737A6D1E1FDFF6B7B5F3B4F6ACE22B0857784E03680 + B7B71F8417C2111C3AC2BCAF2308CE866F0FC16900EA3F1F519590769E17009D + 4E8B82FB62F4EC31B1C3082DB2064EE1ED211417E63A0688893F44A46EFDD00C + C06729950AC47CFB1B9EF219CF19A1B9518ADA9A4B9CC35B23A8540A76807DF1 + 1FD0236C21AA23089D0DCFD457E9A7E8C05BE6CF650790CA1F7F0624FE5CC03B + 0297E5C057F8B6E5F0AFC30B37A612C95B97980184AA476A25962538EE0421C2 + 7B0C001B42437D1D24E22BBC87E70C20C412685B31D1936C1064E495172A3C67 + 005754DB4EE8D9EB3941C37B240083B068E731980CFE38113F55B0F01E0B40D5 + 9709C77062C70AC1823F017802E02480CB93B729B70374A7EAF600FF02CF164F + DBC8FCE5FD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006AF4944415478DAEDDA7B5014 + 751C00F0EFDD81683A16E5288F90A7888EA34850F82A537B68F630AB7186C974 + 7CA4D2A4E1A8199A533A35A3A3A2C943C9D12993CC42031152081D5F281A9222 + 46071C30C7DDE1C179DCFB6EEFB6DDB3DDE19E7B0BBFBDBB01BFFFB0EC2E7BFB + FDECF7F7DBDDEFC1C3711C0672F01E033801E0F178483F24E3602567CAE32347 + C0B2D72690E7CCEAA4A9BCBD06B07BE54C4E008E9EAF03B305678DD06F000A2F + FF0BDD3A236B847E03F0C72D11687426D09BCCA033621E23F804C088A19F0AAA + 1B24A0262A804250A8F5B062EE24080AE4BB4DA2DF00DC6B9583466F628DE053 + 808CEC5224C7DD933E17DA3A94A02200EC113A951AF8787E924B04AF027C965B + 8EEF59351BB4460BD2E392D1ADC340A3D1BA4458366F320C0D123824D46F002C + 1633A80DB84B04B15C091B3F48F52DC0DAECF378D69A3934C0C6DC3224C7DDB9 + FA75A8114AA1B8AA114C98D9E93E660C837DE9AFF816203DAB043FB0761E2715 + 4046FB43239C28AF812EB5C1619B41A785EC756FF80780428B71024045E97521 + D4B775DAAC532894FE07B035FF1CA710E362C2E8E5FAA676DF03ACDE5D8CE764 + CCE7BC02A830982C507D5F0C2AAD012ED7082177FD9B030B800A914C05F9A7AE + F81F00D74360FB8A57E9E5CCBC32FF03F066F805C08A9D85F8A10D0B40AA347A + 1DE0CB432590BFF15DFF02D871B49CD3A4B72C99E35F00CBBE39897FBFF93D9F + 54C0969C2238FCC5FBEC00D61FBA80F4BD957C1A9B9518057A0B1F9E193E1826 + C585F5FDA05C03A0ECE054FC2582D94951D647E16BF5523875E1B6CDF6BACE7F + 40248AF61ACA134F4AA1EEBB553C9F00902F2FC40B1B60981112A24221288007 + BB4B8AA0F452302426A7C290A0009BBF0DE0F3E965BEDDABBD40C077F8AC4001 + F3F02D3CFD3B34FFF08EF701C8DBE07D89022C06930D02199F1FFF09EEDC8BF4 + 0A82C700A85A5897FE6E811913234163345B9FCE6AEA45C4B28540C040FC4005 + 98E9D1E4785D7C1774AAE73847F029804CA1051DF153ABD301860B882A308352 + A58189F111D693F64625B006E86B0FCF6834C0CCE47130F78538E85463D62BEE + 4B0446808CBC0AA42DAC0B371B088078306016EB9BDAD53BCD44F93FFA5C3D81 + 400E07623534B5C9E8BFE17238F81C800CB5819803F43A3099C1A6123A945A48 + 4978D6BA4F66C171A8BB8FBE121801D6E59423EDE1E9B5C48350EA0498931C07 + 62B90A6A85EDD6AFB25CC54B93E3E8652E1018013ED97716690F8FAA00B2854D + 06D9ACA8BA4BDC090C8E8D4CEA8ED033A8E13065DA74876DBD41F01800D5EBEB + B5DB4298921847973F15752239C8BABA6DD691DFEACC4A1E4BFF7E4FDC0C9BF2 + 6E42FC98E9101E1EEEF4F86C118A8B8BD801F4B581410E81294909A0373A070D + 0D1E4A2F4B141A1A804A3E2E761A84868543809B7B3B1B044680357BCE206D60 + D857405D63BBCD762D714768ED5012DBCD201449804F9C7097A10BAE37603026 + 768635793A5104083E07701572A5062ED6B64048E820FACA8F181962DD161820 + 4086C01A00C510983A29167466E727BEF0C5F1F4F2BEA20A3879F10144474F85 + 5121A136FBA142F07A05545637C0CB29F18C1570ABA5093EDD5F0531D1D31D92 + 478970F6EC19F7002B779D42DAC3BB4A0C0112A05B6776B9CF5D62C25BBBFF86 + D32B8F1A8135405F7B784C43202A72B0C7C9A340600458FEEDAF487B786405B8 + 8A26850C72CFB4C0E8D153E1E91121C4D39EC0E3E3F616C123809C0D0BA14B63 + 4202E02A6ADB9A203DEB06448C4EB5264F456F1164D276681535333E36979595 + B003E0A28D4DDDE7A92B6F1F6C1124ED6210365E810963F5206C8A758BC008B0 + 747B017E70F322CE2A809CEDC9316F7FE57B8B20EF905A93FF39731AA4C4C4F1 + 96E41EC1AB6B235C22780C20E1A08F4FCDF6A1E1CFC3C851CCED712604FBE4A9 + F5EE10CACF95B203D875AC0249F254D98785A77A943C13824C2A81E6E6AB0EC9 + 332130022CDEF6239E9799060F546887C0AC4D05D6E483FF2FFB40276F6A9E22 + 3025EF0EC167006FED380C7C48828898047A5D6F103C4DDE1582C700E43F1F91 + 9155F0271200B2395AD928866143927B8DD0ADE86095BC33842B17CFBB0748CB + 3C82E76FFB880640196AB50AD2F6FE06830212592374C9A5D0D65AC53A797B04 + 8D46C50C7020F3436B0B9B8BE80D425F93A7E2EBC2D3D684B72E789B1940AA7C + 340764FF52891C81CD7040957CCF70FBEDF0A24DF978EEB6A5340057F150AB86 + E559EE2B818BE4FD068009A143D60E12F10DE4C9B306E06208F48CB4F9290E08 + 0AE2CA73953C6B006F44CF4A1836FC294E93F74B000A61F1AE6360C182E144E6 + 0CCE92F75B0032BECA3A062776AEE42CF1C7008F013C04F07AE63DC2E7000329 + 063CC07FD76558DBA305C8AB0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000069F4944415478DAEDDA7D5014 + 751807F0EFDD418C691A8D292F82F1A2E2FB7B838A334D99A599656FE30C693A + BEA4D28C86A366684EE9D48C0E86252F4A8E4E99641A9A889062DAA8856F992F + A0F22E702F201CE2BDDFEDDD76BBB617DCDBDEC2EEDD0DF8FC7577BBECEDF3D9 + E7B7FBFB3D9C88244974E7103D06700220128978FD92E45D6704531E36B02F16 + BD32823A674E27CDE4ED3580D4A52F0802B0EF5409CC169233429701C83D5F8E + 873A2367842E03F0DBD51A687426E84D66E88C84C7083E013012FCDF0A2E97C9 + A1B6560083D0A2D663C98CD1080A14BB4DA2CB0094D63641A3377146F0294072 + 7A012FC7DD9E3403758DAD505901EC119A5B35F870D63897085E05F838B388DC + BEEC25688D165E8F4BC5431D018D46EB1261D1CCB1E819247148A8CB00582C66 + A80DA44B0469532BD6BE17EF5B8095E9A7C8B415D36C006B330B7939EED6E5AF + E25A850279C595301166A7FB9809023B925EF62D40525A3EB973E54C412A800A + D903230E165D83526D70D866D06991BEEA35FF0068D1128200305170B102B7EB + 9ADB7DD6D2D2EA7F001BB34F0A0A31343ACCF6FA7695CCF700CB53F3C88CE459 + 8257001306930597EF48A1D21A70FE5A053257BFDEBD0098A8695021FBC805FF + 03107A086C5E32DDF63A25ABD0FF00BC197E01B0646B2EB97BCD1C285A8D5E07 + F86C773EB2D7BEE55F005BF615099AF48605D3FC0B60D19787C8EFD6BFE3930A + D890710C7B3E7D971BC0EADD67795DB752B3B1B17191D01B098406F7C4E49103 + FD1F80CF0ECE3F55F73126FA597A2A7CEE662D3D63234CFF574349F35DD4D444 + 790DE5C93E0A947CBB4CE435802B77E59830249406F8EBB60204F168B5367E68 + 2482024448CD3F868273C11833211E3D8202DAFD6D80586C7B2DB65BDA4B2462 + 87EF0A94B00FDFDCA3BFA2FAFB377D0340ADDEAC2BD67608547C72E047DC2C1D + E815048F01F86A61DDA85460544C08080B89B2FA6694DE6B865EA783C60A5229 + 6BB10D878BD25BD0A9C60B8EE033008D916A50A8AC579FA01B174C2528350426 + C60DA04FDA1B95C019A0B33D3CD27A85E36223F0FEF4D1503E5043673DAE2F11 + 580192B34EF3DAC2BA51568F518307C04058E8955A49A50C5A1309935E07BD45 + 4C0F079D5984F2BA26AF0C079F02504121503D3C679520576A90303A86DE2F25 + E7004AEEF05F09AC00AB328A78EDE1198D068C1C14490F016A897AC9BA56A712 + 7716069319B31386DBDE0B81C00AF0D18E13BCF6F0EC2BE0EF3BF5387B4B0A8D + 56EF886570ECEB31C361D29404876D1D41F01880AFE56B49453D86C70E00D1C6 + D36CB6E07A850C358DEA76FB6A7406CC9834CCF6BE545A8D75595730785002C2 + C3C39D1E9F2B425EDE316E009D6D603043406F7204954802F05CBFDE30581E9D + B8BCA9D506C0241F1B3305A161E10870F36CE782C00AB062FB715E1B1854C98F + B33EE2A89B1F1595D2A676DBA91B608D42492F964ACAEB21B69EB0D2A0C4C532 + 028362A6D2C9DB12E501C1E700AE827A02145D294374D453B62BDFB75F08BD2D + 3040C21B02670021870015F3A68FB5BD4E3D948F23C52A44454D46FF90D076FB + F185E0B71570BDAE0A2BD28AAD1590E0903C9F08274E1C770FB074DB115E7B78 + D4CC8F0D804A3E29ED92D32BCF37026780CEF6F0D886C0B0217DB0F21BCF92E7 + 03811560F1578779EDE15115E02AEE364A917AB81C919193F14CDF10EB6C4FE2 + F1713B8AE01140C69AB7AD2B34132F00AE8229FB88C8783A79263A8AD0A090A1 + B6A69A75DA5C5898CF0D40883636F39C67AEBC7D704590CBA4A8A8BC801143F4 + A8A88A718BC00AB070730EB96BFD5CC12AE0EABD2A7ACCDB5FF98E2234352AE8 + E47F4A998289D1B1A205997BC9CBD7235C22780C2017A08F7FCB3ABDA5920F0D + 7F1EFDFA87B1EECF86609F3CF3B93B84A29305DC00B6ED3FCD4BF24CD98785C7 + 7B943C1B4283428EEAEA3F1D926743600598BFE907322B2511F755FC0E8117D7 + E5D0C907FF57F6814E566A9E22B025EF0EC16700B3B7EC8118E310111D67FBAC + 23089E26EF0AC16300EAC74754A4E5FCCE0B0035213A532945AF1E133A8CF0B0 + A59153F2CE102EFC71CA3D4062CA5E327BD30736003E43AD5621F1EB5FF044C0 + 18CE08CA2605EA6A8B39276F8FA0D1A8D80176A6CC43B35A981F347404A1B3C9 + 33F145EE513AE18D73DE600750B43EBA07A4FF7C8677042EC381AFE4DB86DBFF + 0ECF5D974D666E5A6803102A1E68D5589CE6BE128448DE6F00D8101A1B64904B + 2FF19E3C6700218640DB489C35D101A1C57AE5854A9E338037A26D25F4EAFDB4 + A0C9FB250083307FDB7E5888601C4C992A58F27E0B40C5E769FB7170EB52C112 + 7F0CF018C04300AF67DE267C0ED09DA2DB03FC0BDC6F6BDBEDD33A1000000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000069F4944415478DAEDDA7D5014 + 651C07F0DFF112633AE919837037E0005AE698F99A243A9559E64BA566E50C93 + E9A0A6D08C8AA366F832A653333A1A96BC28393A4592BDA0F122241856DA8068 + A4091AAF07782FC0BD78DCFBDDDE6DBB67BB711C777B7B3C7B7703FEFE5A7697 + E5BE9FFD3DCB3E0FF0701C87A15CBC8700FD00F0783CA43F24ED782567CA13C7 + 8643F28249E46766F5A1A9DC3E0338BCFE054E004E97D781D586B34618340005 + 571AA1C760668D3068007EBE21029DC102468B150C66CC6304BF009831F48F82 + 9A062968890EA010545A23AC5BF80C848506B90D316800EADBE5A0335A5823F8 + 15202DB314C9758FA42E848E2E35680880BE080AB50EDE5F32CD25824F01B664 + 57E04736BC047AB30DE975C9EA3160A0D3E95D22242F9A0AC3C3829D020D1A00 + 9BCD0A5A13EE12412C57C3F6B713FC0BB029B31CCF48994F036CCF2E4372DD83 + 1B5F85DA26191455358305B3F67B8E15C3E068EACBFE0548CD28C18F6D5AC449 + 079025B96F86B315B5A0D49A9C8E990C7AC8DCBC383000547A8C1300AA4AAB9B + E04E87C2619F4AA50E3C80DDB9173985782A4E406FDF6991F81F60E3E1223C2B + 6D09E71D4095C962839ABB62D0E84D70A5B609B2B7BE36B400A812756A20F7DC + D5C003E07A08EC5FF70ABD9D9E53167800BEAC80005877B0003FB16D19C8D466 + 9F03EC395102B9DB970716C081D3159C86DEB57A7E6001247FF23DFEE5CE157E + E9805D598570F2A3B7D8016C3D7119E9BC957C1D8D89E4DBB723F9C361DEB4B8 + C00740B982D32CB90FF18251F6E970715513FC76AB0D30CBFFDD50A7F80744A2 + 589FA13C3A5206755F6CE0F905A0F2661B3D534B9C1C0B61213C385C5208A5BF + F361CA8C04181616E2F0BD214141F476509FA97D707090D3CF0A0D661EBE05E7 + 7F82D6AF96FA1E809C0CD5347683D168704020EBC333DFC0DFF5637D82E03100 + AA252C72D5263A622460361C1AEE29A0A5A31B54461B18CD183476C8E9E1502D + BE0D06CD74CE11FC0AD0225303463C14D5061BDD092A9D099E9F3ACEFEA17DD1 + 09AC0106BA8667B3DA4018F9386C59310BA4F21E3010D7D55830301BFD83C008 + 90967309E9121679D7E322478209B3D9676ACD623911DC0C7A0B0E1602801C0E + 3CAB056E89143E190E7E05208B4420D7F0C84E506B0D80E1C1F64E203BAE9D18 + 2E0B664DB09F979E7F06EAEEA2EF044680CD591548D7F0A82190B27426D48BBA + A0FAAE9408DB3F2EF9D2F4CEFCA9F4D75C2030027C70F402D235BC56891C6205 + E17407900897FF6A03458FDEE95CB3C9795D8F1A0ECF25CE713AE60D82C700A8 + A6AF922E250822463BECA3566D1AC54A87FD06E2D9B0FCC529F4D7F5E256D891 + 731D9E183F07844261BFD7678B505454C80E60A00B1838F1601308C6B83C1E1B + C52786C483656D71770F0D40851F179F0851022184B8F9DDCE06811120E54831 + D2058C36990AC6129321F2AE932557EB1C8E93EF05F56D0A301A0C709DE88A20 + E2032B4D4AA86EC0607CFC5C7B783A280204BF03B82AA95207C597FF84894F47 + D1773E3C22D27E2C34241819026B00AE8740F2E2E9F4F6BEBC4228AFD5436CEC + 6C181319E5701E2A8480ED809B1D2D9092510571B1739CC2A344B870A1D83DC0 + FA43E790AEE1C9146A4600327C6AC6B57EEF3C6A04D600035DC3631A023326F3 + 3D0E8F02811160EDA73F205DC3BB2753B83CD62096C29E33B7213A2601468747 + 126F7BC11E5FD75B048F00B2B6BD094A9D050980ABA2DA9E0A4F95B7089D3209 + B48B5A195F9BCBCA4AD80170B18C4DFD9E8F8999ED10DE5B04A9440C4DCD5761 + D29346686A89778BC008B0667F3E7E7CE74ACE3AE0465B0B6CFADCF9CE7B8B20 + EF92D9C37F9B9E0833E3C6F156679FC26B6E46BB44F01840CAC13AFE6DE2F596 + 0C1F257C1622C60818CF6742E81B9EDAEF0EA1E262293B804379979084A7DA5E + 204CF0283C1342A74C0AADAD7F38856742600458B5F76B3C273D09BA356887C0 + BC1DF9F6F0FCFFDA3EB49F999AA7084CE1DD21F80DE0F503272108A64174DC04 + 7A9F37089E867785E03100F9CF476465E4FF8204C06C364165B318460C9BE135 + 428FAA8B55F8FE10AEFE5AEE1E2029FD149EBBF73D1A006569B51A48FAEC4778 + 24640A6B04A55C061DED55ACC3F745D0E934CC00C7D2DF0585969B7F68F00661 + A0E1A9FAB8E0BC3DF0EE656F3003C8D40F9E0199DF55224760331C5085EF5D6E + FF3ABC72472E9EBD770D0DC055DDD76B616D86FB4EE0227CC000302174754A40 + 2ABE863C3C6B002E8640EF4A5A32D3094145DC79AEC2B306F045F5EE84118F8D + E2347C40025008AB0EE5810DE3C3D9F4B99C850F5800B2F665E4C1D983EB390B + FE10E0218087003E4FDEABFC0E30946AC803FC0BDC2A63DB18C18F7F00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006B84944415478DAEDDA795013 + 671400F09710A4201EA8558EAA0348B5AD33558B8A8263C75AAFAAADBDC6966A + 75BCA5335A2C1E8DD66975DA191D155B39843A3AD54AAD160F4450B1D8115BC1 + 7A0BA80512A02181868490FBDCEEAE6E242464B3E1DB2403BEBF369B6593F7DB + F7ED7EDF0B1C0CC3A03B07E7198003000E8783F44392F717B3A6FCF2D001B064 + FA48E23B33FAD254DE1E03D8B5FC7556000E5D2C07B305638CD06500724BFE81 + 56AD8131429701387F43086AAD11744633680D269711BC026030A1BF155C7F24 + 06155E0114825CA58365335F85007FAED324BA0C40459D14D43A236304AF0224 + A7152039EFEEA49950DFA400250ED01EA159A18615B3C77488E05180CF338AB0 + DD2BDF008DC182F4BC44B46A4DA0566B3A4458326B34F40CF0B34BA8CB00582C + 6650E9B10E11445205ACFF30CEBB006BD22E62A9ABA75A01D667142239EF8E55 + 33E0569504F2AE5583D16476788CD96482BD496F7A172029351FDBB766162B15 + 4044438B018E15DD02994A6FF79E5EAB81B4B56FF906805C636205808A82D22A + A8AC6FB6D927972B7C0F604BF60556215E8A0AB76E57D634781F60D5AE3C2C3D + 7936EB154085DE6881EB0F44A0D4E8A1E4561564AC9BD3BD00A810362A21FBE4 + 55DF03607B086C5B36CDBACDCF2CF43D004F864F002CDB918B65A5CC0389C2E0 + 7180AFB2F2217BFDBBBE05B0FD5011AB496F5E34D5B700967C7B1CFB71D3FB5E + A980CDE967E0C0971F300358977519E9BA15C3E7EBFD7B0781CE6481E8B0BE30 + 635C8CEF03A0ECE01037BF90201EB91C3E71E5219455FE0B26E3D36A286F7E08 + 4261A4C75082FA48A0FC87951C8F01342BF5D0BF5700B99D572A20272844FB6A + 6A6C0C04F038B02BFF0C145C098151B1711018C0B3F95B1E976BDDE6B65BDAFB + F971ED3ECBDF8F7EF8E69E3A0D829FDEF13C00510157EED682C6888111AF00B9 + DA0893470F23BFF4C6A33FC3BD8AA11E41701900550B4B89AFCF7B05F620B789 + 1E5EA34C6D6D62960B1AC1A07FBC8A2B15DD07ADF235D6113C0E20C3AF74BF9E + FE60B2605023518042A5059DCEF0A4124C2096AB61FAF8111EAB04C6009DEDE1 + 59CC1608E9D313F80B268358DA0A5AFCBC8E10A6C40E87A01E5CD61168019233 + 2F216D61117DBBDE813CEBB6A45941B6AE080085E671EB8A88B64F0736878357 + 01F4F85C8058AE123D3C4795206C6A85B909AF90C7F2738E42F903F495400BB0 + 36BD08690F8F1A025F7C34092A844D70F9762D392972782C5E018BE74CB0BE66 + 038116E0B3BDE790F6F0A80AD03F495A2455C2E99207D0DCAAB13B967A22B40D + 6A384C884FB07BCF1D049701502D5F9B5526E81FCCB3DB5F7C53009575529B7D + 1AAD0E3E9915677D5D2112C086CCBFE1C5980488888870787EA6087979679801 + 74B681410D019DD9FE8EFC9C1F06512F3CFF34E15A292C9D33DE26F961D1F110 + 161E013C27CF762608B400AB779F45DAC090B5A8A05FDF60EBEB56AD6D0F5FAB + D343053E21227EE62EBB27002EFE85657A19943E32414CF42432796BA20810BC + 0EE028882783189F211E3E7F13E263C3AC577EC0C050F27D7F9E1F3204C6006C + 0E0122367EFCF4E69692751C4A2A8C10193911068586D91C870AC16B1560343B + 3FEE6E5D35ACD8F317444526D8258F12E1DCB9B3CE0196EF3C89B487474C7A08 + 00A2CC3B8A3BF53590945AE6F0CAA346600CD0D91E1EDD10983631D4E5E45120 + D0022CFDEE04D21E5E8B4AD7E17B950D4248D97F1B060F89837E0342F1D99E9F + CBE77517C12580F494F7C8652C9B41953D953C15EE22344A1AA04E28A09D3617 + 16E6330360A38D4D3DE7870C996893BCBB08E2061154555F8591C375505513ED + 14811660F1B61C6CFFA6F9AC55C08DDA1A58F3BDFD95771741DA242193FF851F + 0F63A3867116651CC4AEDF19DC2182CB006216FAF8F7F1E92D917C58C4381838 + 289CF6783A84F6C953FB9D21145D286006B0F3C82524C953651F1E11E752F274 + 088D123108047FDA254F87400BB070EB612C939F08FF29D10E81291B72C8E443 + 9E94BDBF83959AAB0874C93B43F01AC0DCED07800B636070D408EB3E77105C4D + BE23049701887F3E222235E777240006831E8AAB45101C18EB3642ABBC8951F2 + 8E10AEFE71D1394022FF2096BDF5532B00CA50A99490B8E737E8C11BC5184126 + 95407DDD35C6C9B74750AB95F400FBF80BC84E0E1BE10E426793A7E29BDC5364 + C25BE6BD4D0F20513CBE07A4FD5A8C1C81C97040957CDB70FAEBF0FC0DD958C6 + D6C55600B6A245A382A5A9CE2B818DE47D06800EA1A9B101C4A232E4C9330660 + 6308B48DC4D963ED10E4F895672B79C6009E88B69510DCBB2FABC9FB240085B0 + 70E711B09842E0187F126BC9FB2C00115FA71E81633B96B396F8338067002E02 + 783CF336E17580EE14DD1EE07FD5D859DB2A27E33B0000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'CopyLocal_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005A24944415478DAEDD97D5014 + 751807F0E75E90D19C928651E0061C0EAD246752D306019D0A7A41D132CD9C61 + 321D04419CC17084EC34A6746A0606384A5E841C9D42895ED0405E128C9AA444 + 60180BF0258E23E8E020E0847BE38EE3B6BBABBD803B6E6FAFFDEDEE00CF5F7B + BBCBDE7E3FFBFBEDED3E70300C83B95C9C79003B001C0E87D22F493A5B874C39 + 70B92744BFB4DA7CCEA44E1ACF4D1B4046ECB348002ED4B4C18411238D306B00 + 4A6FFC0EA35A3D69845903F05D7317A8B5E330363E015ABDC169044600F406EA + 6F058DF7FB40651A01388242350631114F81BB1BD761885903D0DE3D08EAB171 + D2088C0224E5545172DCCC8408E8191801A509603AC2D0881A0E46AE9B118156 + 80B7F36AB1CCB830D0E88D941ED75CA35A03A8D59A1911A2B7AC8587DC793681 + 660D80D138012A1D3623826C7004927707310B90985383890F855B0192F3AA29 + 396E5AFCCBD0D22187F29B1218374CD8DD67C26080EC84179805481057606712 + B7201901E6EA7DA08792DA161856E96CB6E9B41AC839B2951D000A8D0109005E + 550D1D70A76768CA3A8562847D00270BAF21855825F4B12EDFE9EC651E203EA3 + 1CCB4D8A443E02F0D28D1BA1F1AE0C941A1DDC68E980BCA3DBE616005E5DFD4A + 28BC5CCF3E00D453E054CC8BD665517E35FB00E82C5600C4A4956205C776807C + 444F3BC07B05155098FC1ABB004E5FA8451AFAC4BE707601447FF815F6E9F15D + 8C8C8013B96570EEDDD7C9011C2DF801590F4FE8BD04766E0E643F00CA1EDEAF + 1239E875FF3DB6B60DDD83AE2E7FDA50163D2287B64FE2388C00E03D3CF35B5B + 64F02A70E77320A3A20CAA7EF28035EB8360A13B7FCAFE7C2ED7BACC9DF66ACF + E3716D8EEFC6239EBEA557BE05E967AF320330B98767EEDC9811CCF5CEA58BF0 + 5BFB725A109C06A0A387D7744F669D0E0DB256D02A9F468EC02880BD1E9E5CA1 + 86EDA14F5A4E9A8E91401A808E1E9E19216263202C5AC0458E400890947F9D91 + 1E1E5DD3815100A21E9EB44F016F84AFB5EC2B2ABE046D77A91F09840047726B + 19EDE11DDE156AFD8C028110E0707625A33DBCE9854F878D21A136DB5C41701A + 80A91E5EC2EEE7AC9FDB655248C96F82C75686824020B07B1CB208E5E565E400 + E8EEE1E10078F8150121E0ED2300BE83DF76320884008732AF32DAC3E39A4E78 + 58370C0DF70DB032609325BC35280508AC03C00BEFE1856D165AAFBCE7522FCB + 36373E8F3204D20074F6F0E2B32F42938403FEFEC1B0CCCB7BCA7E5421B07604 + 344B257030EB1710FA87DA84A712A1B2F2AA6380D8F4CBB4F7F05AFF94425C56 + 83DD2B4F35026900D43DBC6D61424810DF722A3C15088400073EFA9AB61EDEED + 9E4E4B785FBF2078D4D3CBF4B4C773FA6F5D45700A20F7D84E18568FD31A1E2F + 5711FAE5BDD0DD25257C6CAEAEAE200780620AE0BFF37E7EC153C2BB8AD0D72B + 830E493DAC7E7C0C3A3A031C221002EC3F558C9D3DBE07D90868FEA313123FB6 + BDF2AE220C0EC82DE1BF1085C006E10ACEBEBCF358E36DDF19119C06E843700F + 68353DDE9AC37B0B9E81A5CB7C08F72742981E1E5FEF08A1F65A153980F4A2EB + 9484C787BD8F20C8A9F04408FDF23E904A7FB6094F844008B037F5732C5F1405 + 7F29A99D02CFA7145BC27BFC3BECDDECBCA9398B4014DE11026300DB4F9F032E + AC035FE113D675AE20381B7E2604A701CC8D0B73898BBFA70440AFD7419D4406 + 8B17AE7719615431402ABC3D84FA1F6B1C034489CE6385A96F5901A82C954A09 + 5159DFC002FE1AD208C38372E8E9BE493AFC7404B55A490C7046F4260CA9D0BC + 0CB982F07FC3E3F541E9154BE0933B5E2106908FFC730FC8F9B28E720432D381 + AAF093CBE17F87F7A4146279A9FBAD00A8EA81460507C48E47028AF0AC012042 + 18E8EF853ED92DCAC39306403105265754E4061B0485E9CAA30A4F1A808E9A3C + 12163FBC0469785602E0087BD38BC068F08012D12664E1590B60AEF7C5455092 + 168B2CF83CC03C809300B4279F548C03CCA59AF3007F033EB5FECC14399E0C00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005CD4944415478DAEDD97D5014 + 751C06F0E778C9D19C5E1C4705464C7C491D6734B3867C9B26EC45D329B31A1D + A7D251DEA406C251C72E73CC1A6774142879114AAD345F2A345140C5C8121390 + 18277CC98023E88E039113EF0EB8E360DBDDDA1B58EE6E778FFDEDDE80CF3FDC + 2C77CB3D9FFDEDDEDE170D455118C8D1DC077001A0D16864FD23897B0B89294F + 19331CAB5F9CCABC67496F9AEBAD18C0AEA86789001C38770D9D5D9464847E03 + 907DF12FDC6BB34B46E8370067CA6A606DEB407B4727DAEC0ED108AA00D81DF2 + 5F0A4A6FD5C342AF000EC1646947E482691814E8E7B144BF01B85EDB046B7B87 + 640455011253F364D9EFEEB805A86B6C819906E023DC69B1227AD10CB7088A02 + BC9F5E40ED8E8940ABBD4BD6FD32B9D7E680D5DAEA1661F5C227F0E020FF5E85 + FA0D405757272C36CA2D82BEA9051BDE0C5717203EF51C95BC76BE1360437ABE + 2CFBDD11FB12CA2B8DC8B95C850E47A7CBE7743A1C48897B5E5D80B8E4D3D49E + F88544560013C35D3B8E1694A3D962EBF53B5B5B2B52135EF60D0053AB830800 + 97BCE24ADCA8BBD3639BC9D4E27B009BB3CE1285981C16EC7C7CA3DAA03E40EC + AE1C2A2D7111F115C0C5D6D185D29B7A985B6DB8585E89F4758B071600979A06 + 33B28E17F91E00E953605BE40BCEC7DA8C7CDF0350323E0110B9239BCA5CBF04 + C616BBE2001F659E46D686D7BC032039C9A1E83B38BBCDD6F71DB9C8872BE7CB + 07407292C3DCB62E9D3785C8FE9D186927F1E5076F48035897F9B37323E9490E + 6904AF0198E2F44F6200DD2739FB2E9C4555752831047E863C6CC4B5CF6334A2 + 01484F728E5DF905157F3E86E933C3317850408FE705F8F9391FFBF1BEDAFBFB + FBF5DA6FA0BFF0053CFBC48FD07DFDAABA00FC494E5AE119180D931541F01A80 + F42427EBD702D4D54E248E201A2031E33C949EE42881E013009E2639A4110401 + E8E2EC082B21AD006A4D722ED5FC0EB3691A1104D100EFA6E442CD49CE6DD01F + 5737C7C88E2008401F797686C701A835C94958FE1CB487BF951D4110802ECE4E + 70F8004A4F72B814EB2BD0667E12CFCC9ED3EB35DE20880658BBFB14D49CE4BC + B73C02D7F53A6CCCB8828913E6202424C4E5EBA422E4E49CF44D002EDC242762 + 5E185B7EFCB8D9080A0E418087CF762908820074717680C107507292139B7208 + A55514268C9BCB9677169501C16B00A552A6AB4274D26F6CF9E12346B1DB0203 + FC6543100D10B5F338949EE454FCA3434C5231C68E9D8591A3827AFC4E2E04AF + 013E395040B4FCE28830C42597B82C2F27426EEE29CF0074717686B766FBF7F8 + 62D3EB8AAC80AB75D582E5E542900490B67E299AAD1D3E535E0E044100BA38C5 + 1C793E008953A0D9D68CE25B0E8486CEC2B0E1A3E8BB3D7FD1AFF51641140053 + 3C7AFB11ECDDB48CD80A28FBBB1AF19F95607468385B9E8BB7080D46036A6B74 + 82B7CDF9F9A7A501D413B80654D07778AECA7B8B506FD0A3B2AA08531F6F4765 + F5388F088200ABB61DA698E27C809D07CFCB529EBFECDD452C4253A3912D7F44 + 3B1B4F858DD7AC4CDF4F955E1DED164134C09A6D0791A15D81DB66F94E01EEC8 + 07853C8D112383059F2F84C02FCF6DF7845070364F1D00A9E585101A8CF5D0E9 + 2EF52A2F842008F0F6966F28A678CCA78758006670C124F9F04F7D02C8FBA311 + C121E178F4FF651FE8E29B9A5804A1F29E104403446EFD0A595BDE7102F4354B + B7EF831F666074D824E7366F10C49677872009608FF62DDCB1C8F365C8623163 + 45D20F782060BAD708F74C8D92CABB4228BA70CE33C00AED7E8A39F21C80B1E5 + BF6B40EAB1C23E23D8ED361456E93174F04CC908CD4D46D4D55E965C9E8F60B5 + 9A850198E2B15BF7237DCB2A27805CB9DB6AC19A64692BA1AFE5B97C9C7D822D + BC79C92BEA01484590AB7CF778FCEFF0B28D5914539C0F20C729D03D624E0712 + E5BD0620114F2BA1B1C1807A7D89ECE57D0AC01D82893EF2A4CAFB1C001F61E8 + 438FC0A0BF8CA3DAB944CAFB24008710B3E73B58CC4330699809B93B138994F7 + 5980EED99A7C10477744A90FA0665407E88F475E3480E2CDBB4575808194010F + F02F85D841DBAB61C2330000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006024944415478DAEDDA7D5014 + 751807F0EF7910635AA9C3282FA38DA8F932CE68650DF952CD68996F536635CE + 38958E8A28CD689898A23965334D322098BC08363AA9299A68202F2A4A366220 + 9A59BE8D0147D01D0701E7791C702FB0DD6EEDB57770B7B77BBFDDBB80E7AFBB + BD65B9EF679FDFDD3E0B0A8AA2D0974BD10FD0038042A120FA4B62F79548A63C + E9C960AC9C3B997ECF82DE349B5B3680C4A89725013878FE363ABB28C108BD06 + 20E7F2EF78D86E168CD06B00CE5EAF81B1DD820E4B27DACD568F117C0260B692 + FF28A8B85F8F565B07B008BAD60EAC9E3705418103DC86E83500776A9B60ECB0 + 0846F029406C6A2191E326C5CC435DA31E061B803342B3DE88350B9F7189202B + C087E9C55452F46CB499BB881E97AE87ED56188D6D2E1156CE7F1A838294DD02 + F51A80AEAE4EB49A289708EA263DE2DE89F42DC0FAD4F354F2BA397680B8F422 + 22C7DDB5F635DCA8D422AFAC0A166B678FFB745AAD488979C5B70031C9F9D4DE + F5F325E900BA340FCCC82EBE81965653B7D74CED6D48DDB0C03F00746D564900 + D82A2CAFC4DDBA66876D3A9DDEFF00B6679D931462624498FDF1DD6A8DEF01D6 + 26E65169B10B25EF00B64C962E54DC53C3D066C2E51B9548DFB8A86F01B055D3 + 6040D6A952FF03907A09EC5CFDAAFD717C4691F70052CEF311A143B0E4C549F4 + 159B24C7270620E53C4F5FBCD00852D42799F9C88A7BD37F01D879FED72A2DCC + 2693F707B4D5B6E573FE3F00DC799E9EE24877C2B6B45C7CBDF56D61001B337F + E8B651AE795EAB3362C94B93111440E683583400F78CDB9E4B0640CFF39925E7 + 50786910F163BBAA479FD0E2F657D10AD100A4E7F9C4C27CFC782D0453A74562 + 605080C33E0103FEFB7618E034DA2B95DDBF390295FC9D9373FA7BA8BE79C373 + 80D88C0B907A9EDF78E4382AABC7C882E031007BC63FDE7F513200EE3C2F1782 + 6080B8CC0B906B9EBF52F3330CBA2992220806A0D7BC9CF3BCD408BC00B635EF + 700B8B3EE372CFF3C5F7CA2543F01A40AE79FED42F97A1D54C248EC00BB021AD + D8E11EDE477B0BE0AB797E77612EDA0DCF1245E005F820A5C0E11E9EDC006CB1 + F37C85F60E83F0C28C99DDF61183E031001B981E297D35CFAF4D39826B550A3C + 356E26C2C3C37BDC5F28425E5EAE770072D5755515D6ECFE09E3C6CC42685838 + 02DC7CB70B41E005589774C6E10ECEE6D43C646E5A0CADDE2C5BF85B7FAA10BD + BB1C63C7CC60C2DB831240F01AE0F383C592865F343B0231C95799F0C1C34398 + 6D81014A6208820136A59CC6FE2D6FC9D20137EBAA99F0A3474FC788905087D7 + 4821880248DBB4042D468BCFC29344282838E31E202AE114C56D79FAA6021740 + 8A25D0626A41F97D2B2246CF74199E148260802D7B4E62DF96A59275C0F53FAA + B17E8FFB334F12811760D517DF51DC35CF02D44BF019704BAD62C28F1C158961 + C121B6AB3DA5C73F2B16C123006ECB3B03241CBE40243CDBF6A3464D67C2B325 + 16A141AB416D8D8AF7B2B9A8285F18405C523632E297E12F03B925E07CE69D4B + 2842BD468DCAAA524C1EDFC17B53851760C5CEA31477CD9306E00B2F14A1A951 + CB843F163F03CF458C552C4F3F4055DC1CE912C16300B6E5B7EF39CE00D0372E + E84A3E7A517478B6EDC3C223317C4418EFFE7C08CEE1D9EDEE108ACF150A03D8 + 9AF42DB276BC6F07105B376BABB139E31A42C39FF7283C1F4283B61E2AD5956E + E1F9107801DEDB7188E2B63C0DB037FE5D34B77A370CCDDD7A8C39F343FF6DFB + 40A5E77F107546E00BEF0E41348056FFCFF3D4E325A200CEDEADC6E081D33032 + 62827D9B18044FC3BB42F018806DF96D898790BE63851D406C3D686BC5AAE493 + 782460AA688487BA4641E17B4228BD74DE3DC0B2F8031477CD9302F016A1A549 + 8BBADA32C1E19D118C46033F0077CD3B03885D026C99CD269454A9052D076FC3 + B3F559CE6926F0F6C5AFF303B0813F4D3E4CAC03D812D209A4C273CBED5F8797 + 6ECEA2B881A500F014418AF07E03C087D0D8A081465D86ECF85944C3FB15802B + 049DEDCCD7ABAF62FCB0661424C492FDB7357F03704618FCF81026FC97D1D370 + E24429B27745F91E408E32C382DFF42674598762C2301D1E530C66B6FB1C40CE + A2B1A508DC0FD00F201040F6E49CF239405FAA3E0FF03714E571DB2DCA32F000 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000062D4944415478DAEDDA794C14 + 671806F0675928D16A3D6294236A445B8F98D45A6DA8D2D6447B78A5B5F63035 + B51A8F2234D16285205AD3DAB429040A2A8752ABF1A8A5564551A482D2266204 + 3544EBD15A60297461A1C0BAC02EEC39DDD976D63D869D9DD9F966017DFF22B3 + 9B81E737EFF7EE7CB3C8288AC2C35CB247002C0032994CD45F12B7A79498F294 + B123B0FAD5A9F4DFCCEB8F66724B0690BA6E0E118003C5B761B650BC11FA0DC0 + 894B7FA2BDCBC01BA1DF00FC7CBD16DA2E23BA8D6674194C5E23F805C060127F + 145CBDD7884E6B073008EACE6EAC9DFF348283023C86E8370077EA5AA0ED36F2 + 46F02B405CE63951CE9B163B1FF5CD1A7458015C115A355A7CB8687A8F089202 + 7C9C5D42A545CF85CE6011F5BC74B57799A0D5EA7A4458BDE0193C1E2C770BD4 + 6F002C16333AF5548F08CA160DE2DF89F42FC086CC622A3D669E1D203EBB4894 + F326AF7F0D95552A145CA986D164667D8FD9644246ECCBFE05884D3F4BEDDEB0 + 804807D0D570DF80BC924AB475EADD5ED377E990B97161EF0050EB4C4400983A + 575E85BBF5AD4EC7D46A4DEF03D8967B9E28C4E48830FBCF776B1AFC0FB03EB5 + 80CA8A5B44BC0398D21B2DB8FABB121D3A3D2E5556217BD362710048EEEA2242 + 8762D99CC90890CB453B676D5307724F96890B40725777B35A05835EEFF3B976 + AC7DC5FE73524E51DF00607675F4E7F8D217A7D07770A29CB7CF0038EEEAE87B + 791A418CFA74EF59E4C6BF292E8014BBBA6B7F28052F87AD2BE7F53D00B65D9D + 4AADC5D297A6223850F8A7D2D6ACD3D8B7E56D7E009BF6FED26342A97775BE22 + 0806605BEB713917406253F3E5A97C1C291067E879530387A8707B57B4AC5701 + E45F1C82693322312038D0E9B5C0800730012E5B7BB9DC1D2D48CEDD2927F24F + 4171F00DFE001BB34A406A57F75E462EAA6A264882E03580EBB0A3D73CC95DDD + EA3D07F0DB9DB1C4117C0620794F1FB3EF207104DE008ED35E8A5D5DB9F216BA + 3A9E2586C009601D76AC8FB03ED95D08A97675243BA14F009044E004B04E7BD6 + 677816B3C50980F4830D7A5747028113E0A38C42D66778527700532B767D0745 + ED783C3F3BCAED3521085E03B8064DC82CC0DECD4BA0D218240B7FEB6F05A2BF + 29C7534F46213C3C9CF53D7C110A0A4EF303605ADD60D03B017C71A08468F8C5 + 7323109B5E8109E36723342C1C811E3EDBF9207002C4A49D617D86B739231FDF + 26BE254907DCA8AF710A6F0F2A02824F00599B97A24D6B942CFC889121B66341 + 810F9E15FA8AC01B805902DD3A9D13008925D0A66F43F93D1322C645615448A8 + D36B622108EE80B8D463D893B88C58075CFFAB061B765660DCB8596EE1C54428 + 2C3CE319605DCA498A6DDA27EE3C6E03682430036E29159CE1C542E00DC0B4BA + B65DE3049072F88228E13DB53D09044E80355FFD44B14DFBF8B43CE4242DC73F + 1DE22D01E6CA8F1E1389E12342AC777BDE7F312214C12B00B6692F36806B78A6 + 842234A91A5057ABE0BC6D2E2A3ACB0F805902ED6DAD3600FAEB68BAD28F5E14 + 1C9E69FB3163663985178AD0D8A044557519A64EEC4655CD788F089C00AB761C + A5D8A6FDA6E423C8DDFE811D4068DDA8AB4142CE35B72B2F14A1A559650BFF43 + D26CCC8C98205B99BD9FBA7A63748F085E03B84EFB2D69DF6377D2FB68ED14BE + 1962C287863F8791A3C238DFCF85E01A9E39EE09A1E4FC397E00CCB4573737D9 + 00549AFF3A23F3C7525EE199B60F0B8FF42A3C174293AA110AC565B7F05C089C + 002BB61FA2D8865D42F241646F5F6507E05B8BB6E5D9C20FFBBFED83E4DE7F17 + E08AC015DE1382DF00DE4DDE0F39A66374C424FB312108DE86EF09C16B00D769 + DF629DB48E007C9700BD9D2EAD5662D080198211DAD5CDBCC2B32194FD5AEC19 + 6079D27E8A6DDA6F4D3DE45307D0755FD78935E9C7F158E034DE086D2D2AD4D7 + 5DE11DDE1541ABEDE006609BF662000845F0353C539F9FC8B705DEB6E4756E00 + D756775D025221D0E1EBEA2E232FE9059FC23B96C76F879725E4526C413F4B3F + 2C1A80B708CC959F38BC15852971A2FDFB5AAF00E042686E6A40A3B2025F47CF + C0B16365C84B5EE71F00C72540A20C30E2E67D33060F9C6947505BAF7C83F20A + 260D5763B06C90ED98DF00A428C74E18F4C450DB95F775E0F52900066145CA61 + 584CC3441D787D06802E7ACE88D9EA8F001E010804903CB943F91DE061AA871E + E05FC7176CDBD3062DFC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006314944415478DAEDDA7B4C53 + 771407F06F298CCCE99CC42842D4803A757399F3B130C5C444F7F0B1877B9A99 + 398D8F315922E2C438746673D93288049C3C040D06591C634350794C51B7448C + CF18A7E074080C52280CA8055AE8F3AEB7EE56B8E53EFBBBADA0E7AFE6DEE6B6 + E7D3F3FB9DD3DEAA288AC2C31CAA4700FD00A8542AA22F12BBEF8C62CACF8C1F + 8935AF4EA3DFB3A437CDE4ED3580DDEBE72B0270F064256C764A32C2A0012838 + FB373ABACD9211060DC06F57EA60E8B6A0C76243B7D92A1AC12700662BF9ADE0 + D2ED2674392A8041D075F560DDA2E71118E0C79BC4A001A8AA6F85A1C72219C1 + A700B1A9A544AE9B14BD080D2D7A743A00D8086D7A033E593A8313C1AB009BD2 + CBA9A4A805309AED44AF4B4747B7150683911361CDE217F044A0DA2DA1410360 + B7DBD065A2381134AD7AC4BD1FE15B808DA927A9E40D0B5D0071E96544AE9BF0 + E96BB85AADC5B1F37760B1DAFA7D8ECD6A454AF4CBBE05884E2EA6F66E5CAC48 + 05D0D178D78CBCF2AB68EF32B99D33751B911AB3E4C100D019AD8A0030517AA1 + 1A371BDAFA1CD3E9F4E401949CED29C79A369B4C1E5D636A7888EBF1CD9A4665 + 00949CEDE98DECC305D3645FC364B1E3D25F1A741A4D387BB51AE99B5F1F3800 + CC6C4F232C9F3F157E6AB5EC6BD5357722EB48C5C002E83DDB5FBEA591B51C76 + AD7BC5F5383EA34C39006FCCF65A9DC1B11C9EA3273A59D71B7000FDCDF60C82 + 9CF832B31859716F2B0BE08DD95ECA72D8BE6AA1B200BE9AEDE94A7823F2590C + 0D14BF1CB6A71DC5812FDE9306B039F377DEDAA67BB5AF66FBDA261DD62C99A9 + 3C00DF2E1F93560E92B37D65DB2DD4D58511C7E48A21C3B5A8FC214A251BE0B3 + 9412909CEDBF2D2A44E1E9E1983E2B028F07FAF739E7EF77BFDCFD585FEDD56A + F7A510A0161EE30B0A8B509BF396E7002467FB0D077270BD6ABC5710440370B5 + 397AD7EF0DB023EB0411840B9A1BE8EE9CA93882C700317B8A9116BB54916F77 + DEA804C900EC3E6FB7D91503F0068220406CC629DE3EFFF9DE923E00A49640EF + 5072391007502A94AA044100479FE7FD0DCF6C362173CB3268F5664501E8D894 + 934B1C4110C0D1E6787FC38B4929EA03F0CDC1724511EA7A1A1C83D244BC3437 + D2ED9C1C04D1005C25BE25A510FBB7BDEB950AB8D65083E8E48B787A52244243 + 43FB7D8E548463C78E4A03606F723D4623D2B6BC837683C52BC94F9C30176342 + 42E1CFD3DBA52008026C483A4EF16D727405F406506209B49BDA71E1B6159326 + CC7326EF4A940082C700B1BBF3B16FDB72C52AE0CA3F35D8B8E7DE273F7254B0 + F35880FFFDDF063D45900CC05E02860EBD13A049813DE086A6D6997C58D81C8C + 0E1ED3E71C29046215C00024E69E22923C53F6E161916EC99344282939CE0FB0 + 3EF108C5D7E7E392F29011BF02FF76925B027C9F3C6904C900EC4DAEA3BD8D28 + 8094E449200802ACFDEE178AAFCF331540DF94A423F9F069D9C933653F6EDC1C + 048D0C764C7BE26F84C8451005C0D7E73727FC88AC9D1FBB00E4C6B5FA1A6CCD + B88CB1E3229CC9332117A159DB88FABA5AC1B1B9ACAC581A007B09E85A9AB137 + FE23B475C9FF32C495BC5C84A6460DAAEF5460DAE41E54D74CE045100458BDEB + 30C5D7E7E90AA001B4FA7BE7537F3E23297976D973855884D616AD33F99FE2E7 + 6276F844D5AAF46CEAD2B5B19C08A201B8FAFCD6841CA4EF5CED029012558E0D + 8FFEE4C784BE8851A343049F2F84C04E9E39CE87507EA2541A00BBCFB73ACA4D + 0E80D4E485109AB54DA8AD3DE796BC108220C0CA9D8728BE36C7AE00B14BA0F4 + 7A0B42422330E2FFB20F508BBFC3C346104A9E0F813880D8F820211B6ACCC0D8 + F029AE637210C426CF85201A80ABCFCB5D02778D5D589BFC2B1EF39F2E1BA143 + D72229F9FE102AFE38C90FB0223E9BE2EBF3DB771F92BD097A82D0DEAA457DFD + 39E4C5CF93943C1BC160E81406E0EBF39E00C845A0936FA83F8FC9416D28498C + 95FD37B6AF0B0A9D09EF58F6A63000D726277709C8456092FF3E6A16F2F32B90 + 97B0DEE3FFF1F1DE1D5EBE358BE24BF0ABE45C4F5FDF196658F0E75D1B860D99 + CD89C094FD94201D86A9863A8FF91C8064F055424B73239A3417256F78C401A4 + 8EBA5263C5D2D96E083AC727AF54F29201BC11BD2B61E8934F299AFC0309C020 + AC4CCC85DD3A4276AB1BD00074D01B2C894DEE11C023000F01BC9E79AFF039C0 + C3140F3DC07F35DA9CDBA00C2AA50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006434944415478DAEDDA7B5054 + 551C07F0EFB210A361A5E3F8805147D4B486CA4C1BF2D98CF6D0684A2D736232 + 1D1F993681386286E6944D8D3030A0F2106230C431B2F081202966CD88E3731C + CD471AAF96161604D60576619FB7BD5B1797C7EE39E772EFAEA0BFBF7676EFBD + DCDFE79C73CF175805C77178904BF110A01B00854221E90F89DA7D4A36E5A747 + 0DC6F2D742F87B66BA69A16F8F01C4AF7A5916803D27AEC36AE39811FA0C40DE + E9BFD0D46A6246E83300BF5CAA84BED58C36B315AD260B358257004C16E91F05 + 176ED7A0C53E0304046D4B1B56CE7D0EFE7E3E6E9BE833003754F5D0B7999911 + BC0A10957C4C92EB26AC9D8BAA3A1D9AED009D111A747A7C1436C925824701D6 + A5167309AB67C360B2497A5DBE9A5A2DD0EB0D2E1196CF7B1E8FFA2BBB34D467 + 006C362B5A8C9C4B0475BD0ED18B42BD0B10917C824B5C33A71D203AB54892EB + C67EFC3A2E976A907FB60C668BB5DB63AC160B92D6BE220F80DC096FC18C09F0 + F7F5211E5B7DD784DCE2CB686C3176F9CCD86A4072E41BF201C899F08CF687E6 + A25913A8CF3976AE1437AB1A3ABCA7D5EA7A278090F0AE966960321A99CE7D2A + 38B0FDF5CDF2EADE09E09CF0F87DFDFDD921D4E71ACD365CF8538D668311A72F + 972275FD9BF2027822E169B47A3BC233FCBE4E7D8DCADA66641C2CE99D00DD25 + BC8BB7D454CB61DBCA57DB5FC7A415790EC013098F7526C80AE0AD84C7232C9C + 1562DF22C9F7F9457A0132A217F43E0052C23B7FF31F58CCA66ECFDDBC748E67 + 00BC9DF03E0B9F49BCD6E69423C8FCFC5D3680F5E9BF513DD5F894B52B629E2C + 33802F52C2731E69C90168F6F74F920A1D005A83A5478DC6171CC1BE7CFAEDAD + A7D5FF710DAEEF5CAD901C604BC671513774BDE116EEDC7916132787A29FBF6F + 87CF7C7DEEC1F874FAD55EA9EC8AE6A7242FDFBC43875191FD76CF01D6241C45 + 4A54588F6780E35A99D9F8E3C6288F20500390024EE48E02C9003C89201B80D8 + 25E05CE7D4D7D0DAFC82AC08CC00AE129ECD6A9374060825F74C200244A59DA4 + 0A3891498791BE613E343A13A4AE75D939B221C806F0F59E624911E45A0E4480 + C89462AA84D76630E0BB4DEFC83203849263261001ECFB3B4793F03E8DCF43CA + 868568D49B6503E06B594A26AA544FE2A569D3BB7C2606811A80F470DB9074A8 + 0380D44B80AF466323CEDDB660FCB899080A0AEAF6185684FCFC236C00AEB637 + 7D930EBB372D966D065CFABB1C113BCE63EC9869181E18045F377B3B0B0211C0 + 9EF0389AED2D2AFE8003A0468667C035754587E6DB1B9500413680B89C939234 + 2F4CFB71636660F090618EF7FC7C9592213003B85A024D8D0D488B09C79D66E9 + 968030F2A3474FC5D061C33B7C26158264332062FB7E4901DC352F254261E151 + F700ABE20E7234092F3A21D701C0FFE182AFC4FDBF8A6E5E98F6C1A3A7BB6C5E + 2A04660057DB9BB6AE16195B3F6C07105B5754E5D89876D1EDC84B89400458F1 + ED4F1C4DC25B1FBB0FBB623E40438BF85F8684E6478C0CC5A0C1C3EC694F497D + AE58042A009A8427006874FF1D97FCE329A6E685693F72E45447F3428945A8D5 + 54435559418CCD4545056C00AE96407DB51AA95B97B503B0D40DFB03CF79E43B + 172B428DFD5E4ACB4A1032BE0DA5E563DC221001966DDBCFD124BCC86FBE1705 + 406A9E15A1BE4EE368FE87986998123C56B134358BBB7065844B046A0052C2DB + 189BDD0180660908D33E302814438606128F2721746E5E78DF1D42F1F1636C00 + AE121EEB1210467E78D08B54CD93106A3535A8A838D3A57912021160C9D6BD1C + 4DC0E93C034815B625D731F203FF9FF67E4AFAFF0574462035EF0EC16B00EFC5 + 6641894918117CEF6B2F6210F8E6CB2B4E23376686DBE65D21500390121EEB12 + B86B68C18AC49FF188EF44D1084DDA3AC7C88F1FD480C2B828EAAFB3392394FC + 7EC23D40784C164793F036C7EF65DE057A82D058AF4195EA2CB6AF9E8C03074A + 901BBB8AE9FB7C02825EDF4C06A049783C809832C18CAB77AD18D07F0A3502DF + BC4A7506130669314011E0788F1580AFAFF20E391ADE32FF2D3280D884478560 + 32E254991A01FD2613118491273DF058CAED7F87176FCCE0C4263C96A2590E72 + 347FDF009010EA6AAB51A33E2F79F3CC00722C01E70A0F9BD205416B1F79B99A + 6706F04439CF8480C79E90B5F9FB124040581297039B652075C8E953007C7D99 + 98236A7B7B08F0104062008F77EE545E077890EA8107F8176072A5DB2C820F15 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006364944415478DAEDD9795094 + 751807F0EFB210A369A5E378C0A8239E35369949431E4D33DAA1D1A476393199 + 8E47264E208E9A913965D90883A2C9A1E46888636421891C29664DD278358EE6 + 5106AC03B3B010B02E7BC01EF0B6EFD6BBEDFD7B7F2FEF6F39F4F98B795FDE65 + 9FCFFB3CEFF32CABE0380E777328EE01F800502814B2FE91A4BD6798293F327A + 08963D3F997FCF546F5AC83B6800692B9F610270F0D475747472D4087D06A0E0 + EC5F686DB35023F419801F7EBB0D639B15EDD60EB4596CA211BA05C06293FF51 + 70F1563D0CF60A1010B48676AC98FB18C2C3420226D167006ED434C1D86EA546 + E85680A48C52595E7747FC5CD436EAA0B703782234EB8C782776AA5F84A002AC + CD2AE776AC9A0D93A553D6D7E5A3B5CD06A3D1E41761D9BCC7717FB8D22B2159 + 0158CFF985B326213C34C4E7F9CECE0E18CC9C5F0475930E1B5E8F610FC072CE + 5FADD2C062367B9D4B79F7055CAED4A0E85C15ACB60E9FD777D86CD815FF6CEF + 0510E63C7F67DF9C3DD96725D4DDB120BFFC325A0CDE48E6361332125FECBD00 + AE739E7FBAF308FEA2F47C256ED636BB1DD36A75C10308C69CBFF4A7DA673BB8 + C6C35111CE9F6F56D7F56E005F735EA335DA2BE1517EC4F9BCC66CEDC4C53FD4 + D09BCC387BB91259EB5E0A2E4030E63C09818FDB0D7AE41CAB600FD05D73DE5F + 3B6C5DF19CF3E7E4ECB2DE0D409AF3AA7A2D56CF8FF67B7D500012324E71E9AB + E73801366495C992BCD839FF7EDCD37E5FE3A37DC5C8D9B0902D407C7A31B727 + 611E930AE08334E73DE3C32573BA07406BB2310110C2DF9C774DD80B23F338F6 + 7FF01A1DC0BA7D3F51CD33FE2EB8026CCE39C914C273CE3301A0D9EC56EF3881 + CCA458C91590567C1C878B42245D2B25FA3FA8C1F52F56297A0CC0B6C24294FE + 320853A6C5A05F78A8DBB9D090FF61423C3EDA2B95DE68614A72FB16147E0F55 + EE7C7600525AE0BCFA1ADAF44F0405413480D8D536717771972AC009B93F17BF + DF18CD1C417680353B0BB16FFD026874962E01F0B136378F3902350069B7B758 + CC6E009F1E2CEF1202EB76200224659FA65A6DDF4B2BC0979B5E95A502846059 + 094C0032D7BF8216A355360096084480C4CC72AADDBEDD647203E86A0BB8068B + 762002ACD95542B5DBC76FCFC7DE4D8B64AF00219666EE476DCD043C3563A6D7 + 392908A201C48EB5A4B4A30E807A199F01425C53AB90B0FB02268C9F89C8C848 + 9FBF438B5054749C0E80B4D8185B756E00A979A76549BEC5DC82F3B76C183F76 + 164644442234C06CA7412002D8373B8E66B149D87E04D9C971F85B2F5F0B0877 + 7EDCD8198EE49D89CA80D0E3015C931F3274B8E35858A85236046A00520BB4B6 + 343B00F87F5CF0917EE447C9C90B651F356626860D1FE1764E2E04D92B60CD67 + 8790B3E56D2780D4B852538D8DD9973066CC74AFE4E54428293911186065EA31 + 8E66B75F9772187B92DF42B341FA872131C9CB85400D405A6CB48D0D0E008DEE + DF6740C63767A8920F54F62C108800CB3FFF96A3D9ED13B77D85AC2D4B9D0034 + 71C3FEC0E3EFFCC85131183C64B87DDB538ABE562A8228009ADD5E2A8067F242 + 484568D0D4A1E6B68AB836979515D301905AA0A94EED0620A60584B21F356ABA + 5BF25211EAEDEFA1B2AA029327B6A3B27A6C400422C0D2AD47389ADD9EB602FC + DD79A9084D8D1A47F25F27CF4074D438C592AC03DCC52B23FD22880610BBDB6F + 4CC9150D20243F22F2490C1D1641FC7D128267F2C2F14008E5274BE90048BBBD + 670BC8953C09A141538F6AD559E427CF724B9E84400458BCE51047B3DA8AAD80 + D8CDF988888CC1A0FFCA3E4C29FEBB004F043E7995EA574C1CDC8C92D424BF23 + C01742B701BC9172004A4CC5C8A849CE63521084E4B7AF9A86A3472B909FB232 + E0FFC13D11440388DDEDF9161013165871F54E0706F68F968CD0AA6D7494FDA4 + C15A0C540C701C2301782254FC7C2A30405CF2014E8EDDDE57180C7AC4EDFC0E + F7854EA1466869D2A0B6E69CD7034F6C080846A39E0CD0D5DD5E6E84AE262FC4 + 2705858E84372F78990C2075B71713FC770967AAD418D06F1A1141AEE45D23E0 + B7C38B36E67052777B9AB8633260797AE04A60917C8F0120213436D4A15E7D41 + F6E4A90158B4806BC4C5467B2168ED779E55F2D400C108D74A18F0C0434C93EF + 910002C2E2D43C74DA06F95D6FFB34001F1FA7E7895A6CEE01DC03600C10F4CC + 5DA2DB01EEA6B8EB01FE013C0EA2DB4697C3DE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006424944415478DAEDD97B5054 + 551800F06F1788B1EC01C3A8C0A0036A9263A31934A43253A3599A95DA632CCA + 745442704271D40C1F539A0D3028963C941C0D292213491448316B8446C58671 + 124C0596C1595888655DF6C53EE0B6F7D6D9D9F7BDE772CF451EDF5F3B77F7EC + EEF7BBDFF9F67C20A1280A4672484601DC00482412413F24E5F02562CAD32705 + C19A9767D0DF19EB4BA3BC4503C88C7F8108C0F10BF5D0D74F61230C1B8092EA + BBD0633061230C1B805FFE6C019DC10CBDE63E30982C9C110605C06411BE15D4 + DE6907ADB50210824ADB0BEB16CD047F3FA9D724860D40436B17E87ACDD80844 + 0048767BAABF0F4C46A3C3B5FD498BE05EA71A3456006704A55A071F2D99ED11 + 811800E96EFFEE8BD31DAEF7182CA0D3E93D22AC59FC0C3CE2EFE392D09003B0 + EFF6CB6323C1DF57CA5CEFB75686D64879449077A961EB3B31431FC0BEDB5FBF + 2D67B643FAFA57A0AE510165579AC06CE973BBAECF628183492F890B2046B7A7 + CBFBFD8533994A68BB6F82E2AA3AE8D61A5DD6190D7AC8DEF8EAD00770D7ED11 + 028A8AAB8D70EB9ED2619D4AA51E3C8094EC0A4192F7D6EDD176B08FA722426C + 8F6F35B78907B029B78ADA9F301FF4A67E4112B70F6FDD5EA1D2C17BF39FA67F + F298D71ACDFD50FBB71C347A2354D73542EEE6D7863E005BB797B5AB207169B4 + C39A960E0DE49FAE110F2039FB029595B8C006B035B75290E4B9767B8BD9C43C + DEB36EA1ED7A6A5EA578004959E7A843C98B8954001D6CDDDE3EF1410550E92D + 44005078EAF63B562D7079EDAE23E7207FEBF2C101D8997F9E288473B747610F + 212AC0FACC322A276509F10A40E1DCED77AD71DD023B72CEC0D14FDFC603D87C + E4375E271983560B6202A040DD5E50003E67FAC4FD671D00B86E817AE56D6869 + 09170DECE1C71550FF7582843800D7D8575A0A1597036056540C8CF1F77578CE + 572AB53D963A8DF63E3E5297F7F2F361DFBE25A53F83AC60A9F000F119A7E1C8 + 9665A0509BB0D76E2A2884BF1A268982C0190077A8D970A0D40160EFF12AACF5 + 57E537C1A0799638023180C48C53F0CDF6B77855000A312A011B80EB54D7ABD7 + 43CE9637A15B67E60D2006022B404ADE455E43CDC799250E00B85BC03E486E07 + 62004969C57078FB8A0157000A5295C00AB031A78AD754A7EB513300ED03E801 + CEF1C9F7DF098EC00AB0E16039AFA90E550002C828BC280802DA0ECFCF9DE7F2 + 1C1F04CE00B8079AE4B422C84B8D837F34C26C013A6ECA6590FCD5357872EA3C + 080D0D75FB1A5C84B2B23378005C8FB43DDD4A410150F25326CF85E09050F0F5 + F2DB8E83C00A603DD2F29AEA5005D07FB8A023ABE857DEC9771BBBE1EA1D0B4C + 9D1CCB246F4B54000462001BBE3801F9BB3FB401F08D1BADCDB02DEF3A73E783 + C64D60AEF9F9FA0886800DC0750BA83A3BE050EA07A0D4F21F8751F2E1E17360 + FC846087E78442205A01348042FD5F0FC8FEF112D67A54F611E1F35C921712A1 + BCFCAC7700EB5447F199EA36EEFB167277AFB601E04483B5E179BAF342236003 + 703DD276B5C97901E0242F04022BC0DA2F7FA2F84C75CE15C0650BA0B29F3871 + 0E04064DB09EF67C58D70C148113009FA90E770BA03B1F363186491E055F840E + 451BB4B6C8588FCD9595E7F000486C014FC9F34568B77E7663530DCC98D60B8D + CD93BD22B002ACDE5344F199EAB856005BF2B8085D9D0AB8DB74198A5363213A + 628A6455EE31AAF646984704CE00B853DDB6F4025600947C70E873306E7C08EB + 7BB221D0C9D3777E5AA012CA33526C8DC01B42D5F90A3C00AE531DDB16C04D9E + 0DA143D10E32D91F90961005274FD640717ABC4327F484C00AB072F7098ACF50 + 435780B7A855FA4148680C04FC5FF67E6E2635AE0874F2CDB26A880C54C1A392 + B1CC3567004F08C400D8E2F5BD47410AB3212C22D2768D0F02BAF33FA4CE65F6 + 3CDB3A6704CE00424C75F6613219E152931CC68E89E28DD0A3EAC44ADE1D42CD + EF17BC03C4A51EA38498EADC8556AB81B803A7E021DF59D808DD5D0AB8D77A05 + 3B7967049D4EC30E30D0A94E688481268FE2F3925226E19DCBDE6007E03BD571 + 099CED2054F2F6E1F5BFC32BB6E5537CA73A9CB8AFD7C2DA2CEF954022F90706 + 800DA1B3A30DDAE5D7044F1E1B80C416B08FB825D12E082AEB9D27953C368018 + 615F09631F7B8268F20F24004258995108FD9600DB6043EAB31E48003A3ECB2A + 747BA41D051805101940F4CCED62D00146528C78807F018663ABDBCAC6EACE00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006194944415478DAEDD9796C93 + 751807F06FDB4D04F1802C1C5B26D9384462141192E180883787075EC12CA208 + CCC148801118388120A081051C911D6C2208C3319143C660B2E13432C3404240 + 39848D91CD6EDDD5D2B55DE9B1BEF62DBEA57B7BBCEFEFEDFBBE1D83EF5F4DDF + B7C7F3E9F3BCEDB329288AC2DD1CC53D001F000A8542D41749D95A2E99F28841 + 1198F5CA13F47B267AD34CDDB2016C4C7C4E12801DA517D0E1A08811BA0DC0FE + 1357D166B61223741B809FCF5C87C96CC34D5B07CC563B6F044901A49EF9F727 + 8E4098F2D67B3C7DA50146670730083AE34DCC99F4147A842B0316213980D433 + CF205CAC6D81E9A68D18E18E056066FE7CB5066B3F9E88869636189C006C8456 + BD099F4C1DE517E18E0560CFFC94B8613099DAFD22CC9AFC341EE8A1F22A4816 + 00AB5DFC4B017BE6E922A7C50F83C579DB1782BA458FA5EFC5751F005F337FE6 + AAC6EFF91D763B3627BF145A8094CCA3A214BF297912EA9AF43E3FE9F335CDB0 + D93BBC1E6331B72373E1147901166597519B925E40BBD5214AE19E6933DBFDCE + FCA5BA56389CDF104A8FEB9E4EA7EF5E000E47078C16CA2FC2A94BFF62687484 + FBFC4BD7EAE5075890594A65CC7BD10DB034BB4494E237CC7D1567AB34283A59 + EDB3DDE9D033BF2C61024E5F56C3D06EC189B355C85EFC9ABC00C919C5D49605 + 9325E9003AF537AC282C3B0BADD1E2758C9EF935735E76DDBEDE6840DE818AD0 + 01E8DAED920030395A59E59A7BCFD033CF00D049CB29093DC08ABC6392423C1E + 1BE9BE4DCF7CC801E66E2CA2B252A64ADE014C2C3647A7995F39EB36C0CADC62 + E42D7DAB7B03306166BECB01483D02EC96F704F82CEB10B67DFA2E19C0E2DC5F + 83FA0D6B361A118A0E101520986D2E31FD0072974C83466FE575FEE692C3D853 + AC940DA9D7C31A5CF83A49211BC0DA1D6501CFBFD0FA0F9A9B9FC4C8D171E8D9 + 23ACD3B130E56D18256BB557A9BCD1C255DCE3BBFFE04FA8D9F9A67400B3BFFC + 11DF2C7F877707D059B4331F7F5D1C240B026F00A1EBECBCF47DC85AF236B426 + 1BD1E3E442901D806B043C53A9FE1B66C3339222100390EEF3A6363DB62E9F4E + DC014CA4EE044E80949CE341ADB3C9EB0B5D000D04D70076967DBF5B3204D901 + D2F38F0B7A1EA9C681136061565950FB7C9BB6153969096836081B01CF48D109 + 9C00F3371F096A9F4F5AB75B3400D7F3E57E8BBADA61181B3FCEEB981004DE00 + 427FCA2E585FE002A0FF704127A3E017C1C56B2D5A545EB1E3B1A113101515E5 + F31C5284A2A2436400A4CB8CAEA91179AB3E740308CDB9DA6B48CDF9134306C7 + 63606414C2027CB793207002CCDB7438A87576FEBA5DD892F6015A8DC2972176 + F1EE424540900D40A3BF750DC8FCA19CE8F14CDB0F1D3C1E11FD06B8EE0B0F53 + 8986400C403A022DF56A64AF9AE90620C945758DEB938F897916FD070CEC744C + 2C04C93B60EEEAED820002152F26C2912387030338D7598A649F6767E117DF75 + 02E033024CDBC7C68CF35BBC5808C40024CB0C1DD211E0F3C98B89C009E0DCE7 + 29D27DDE33EC0EE0537CF4A371E81B31C0F96B4FC5E3158243E00520649F2705 + 6017CF442842A3A61EB5D76B387F369794149301483102FE8A178AD0E07CCDAA + EA0ADCDFAB16B08D0D88C00930734D0115CC3ECFD5015CC59322B434695CC5AF + 4F1A8DBD7B2BD033261CA7CF45FB45E00D20749F4FDDB0D3EF310365C4656D1F + 4446C5A15FFF48CEE7E242A08BBF5AFD3B86F7D5E141456FD77D851B12151F65 + 6FA7FC21941D3B4A0620749F6787F9AAE35B3C1742A3A60135357F604F5A3CC6 + C40EF1BA0AFA43E00498B16A1725E63ACBE4F9D40257F17DFE6FFB7015FFFF05 + B011B88A0F84103280D7D76E8312A3101D3BDC7D9F1004BEC5FB43E00D20C63E + EF19ABD582F26A357AF71C2D18A14DD74454BC2F848ADF4A030324A46DA7C4D8 + E77DC5683420E1AB7DB82F6C243182B64583BADA93C4C5B3114C26033740B0FB + BCD808C116CFE4F3FD075D05AF98F6063780D07D9E4F48C641ACE23D13F0BFC3 + D353F328A1FB3C496EB41B313B23702748517C9701E042686AAC4783FA94E8C5 + 13034831029E49983AC60B41E7FCE4A52A9E18408E787642EF871E91B4F82E09 + C020CC48CF87C3DE078569E3252BBECB02D0599D91EF5A66A47E9D7B00F70038 + 0064AFDC232107B89B72D703FC0736A972DBD33D8BFB0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CopyLocal_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005F74944415478DAEDD9794C93 + 671C07F06F5B98C1B1838DA8C0D488C70E97CD395C103459A6735E7373574C88 + 4E83201E8B8A11E7F088D74C343ADCE45066F0C0A98B43C7214C716E5117F088 + 31F39A823858A130682D6D811EF0AE6FB7B729B4F4799FB7EFDB96E1F72F68CB + 0BDFCFF33CD0F7878C6118F4E6C81E01B80090C964A27E93E43DE724537E6970 + 28E2DF7999FD99A97E68AEB7D7007624BE2909C0FE3337D1DEC15023780540EA + 959F3D61240ACB2AD0DC6AA246F01A80D42BFF5C68300CAD66B499DBD16AB2F0 + 46E8F1007917EED9565EAD6BC3C8C1CFDA1134FA36244C79157D02E56E4BF478 + 809FAE3EB09756690CD4085E053059C4FF5570F96E1DF4D61DC095AEAAD320EA + F930FBE74D5A03164C1FDD2D428F07B855DD08439B9988103FF5353CDE47E154 + C82700C9E9C5A25C77E7E229A869D04267052021281BB548F924DA3700CB334B + 999D4913D062EA10E57A8E696EB5C06068718970E50F25647285ED75ED160B76 + 2D7EFBFF07D0D1D10EBD912122185B5B90BE6C9A6F0096A69F61D2164DB403A4 + 64968872DD6D0B27E35A850A056595305BDA5DBE865DF9278283A0D1687D07B0 + 38AD88D9BD74AA243B804DED43138E955E835A6F747A8E5DF91723C371FB7EAD + EF01342D164900B8149757E0764D53A7C7D8958F79251217AE552073C5BBFE01 + B036FBB4A410EC8A7361573E7EC658649FB8E83B80853B0A988CE4E992EF002E + 4673072EDF5142D762B4ADFC96A4C948CD2AE93D005C1ED4EB6C2BEF7700521F + 814D0993EC1FB3C5D7C54FC2BABD45C84EF9C03F00BC19BF0048D896C7EC5D39 + 132AADC9EB006CF18D89D3B026231FFBBEF8980E60C5DE5F44B97BD169357004 + D8BCBF54D2D26BE64E140F408CFBF8F95B8FE3DBD51F1177C08EA27C1C2F0990 + 14C7317D9F52E1E6374932AF0064ACFC106A839908507C3E04A3A2A211D4A733 + 44805C6EFF58DEE5D65EA1903B5D2B50413EBE79277F44D5C1F7BD0FE0EE0894 + 2B6FA055F7BA57107803783AC858B0F528F6AC9E45DC015C961FCCC5EFB7064B + 8EE075803A8ABF029F7F775872046A00A1931C43B3B613C0F6DCB3BCBE4EEAE3 + 400448CE3A2BCA202369CB6164A5C6E16F1DBF23E0182977428F0090128108B0 + 2CA35494494EB3BAC906C00E2ED8A41DF999FA1A521C0722C0925DA74499E424 + 6C3880ECF59FDA0184E6B37D39A8A91E81B1B1E39C9E1382C01BC0D39B98255B + 0E6177EA6C34E9855FE77AF57DACCABA8211C3C7212222C2E56B68110A0AF2E9 + 0084DEC66A1AEA6D002AEDBFBF03D2BF3F47F5F56AA31AE5772D183E743CC2C2 + 2310E0E66F3B0D021160D1CE42516E63176EC841E6FA7976009ADC5256D9567E + D8D0585B797B511110FC1EC0B17C68BF01B6C7020314A2215003083D028DB5CA + 4E007C8E00B7ED23878C43FF01619D9E130BC16F7700B7F24386C438951713E1 + D4A942F70089DB4F8832C959F6E501DE007CCA8B85400D207492D3F50888515E + 0C042280F53E9EE133C92185CF0EE0CA0F1C148D67420758DFED29785F5F2802 + 2F003E931C4F01BA96E72214A15E558BEA0755C4B7CD25254574009E1C81EEA2 + 63F4B8A30EC1A041319DCA0B45A8B37EAF7B95E711D4F72FC03CD62D021160DE + A6230CCD24873657FFBC8FA55F5F725A79A1088D0D2A54545EC4D1D4588C891C + 269B9B99C35CBE3EB05B04DE0034931CBEB961DDF66CF9B08837D0AF7F38F1F5 + 2484AEE5B9C7DD21949E2EA603E03BC921857B93131E11CDAB3C09A15E5587AA + AADF9CCA9310880073D61F623C19647497B7561DB1950FF96FDB07BAB853E38B + 402AEF0EC167003336EF831CA33130F205FB634210F896EF0E81378027931C57 + 31998C3857A9447050946084664D0355795708177F3DE31E202E3587116392E3 + 2A7ABD0E715FFD80C702465123A81B55A8A92EA32EDF15C160D091013C9DE488 + 8DE069792E1BF34EDA0AAF9DF91E1940E824874F688E8358E51DE3F6BFC3B356 + 65334227393479D8A2C7FC34F73B418AF27E03404268A8AF459DF292E8E5A901 + A438028E899B3EC60941635D79A9CA530378238E3B21F8C9A7252DEF97001CC2 + 9CEDB9E8B084E058EA78C9CAFB2D009B0D69B938B62D51B2E28F001E01F004F0 + 7A7387F81CA037A5D703FC03E1F22DDB5FF10FE60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_21_48' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000059F4944415478DAEDD97D4C1B + 751807F0A705C698738A211BD080616CBE24FEB1E8A60CB6C497697CD9D4F916 + 22718E080C8609C8B221764890391208D8E97819B8B0291B43279B305E1C4C34 + 0E3386842C0E861B6F8394162C2DD017E80B9C6DF59AD296BBFB95DF5D2BF0FC + D5F4AE57BE9F7B7ED7BB071E4110B0948BB70CE00080C7E361FD929413CDAC29 + AF5AE905E9EF8683B7171FE98F267373069017F7342B00A71A3BA157328E8CB0 + 6800AAAEDE81C9291D32C2A201F8A97D00D4537A98D6CFC0ADA131488BDC0AF7 + 787BD006700980CE80FF52D0765B022A630790089D77654684A7E05E9F159421 + 160D40D7A00CD4D37A64049702A414D463396E7EE24B30343A014A23002A02A7 + 001F153511F9F1CF8146378BF5B8A69A9C32805AAD718CD027819477C2C16FCD + 4ABB408B0660767606545A625E84F63B52C8DFF78C6B01920A1A09D1FE1D1680 + 43450D588E9B93F02274F448A1E65A2FE80D330EF7993118E058E2F3AE054814 + D512C7935E66A5034C353CAE83CAA60E90ABB476DBB4531A28487EC53D00141A + 032B0064D5B7F698EF05AC4BA198703F80F4D2CBAC423CBA3ED0F2FA56DFB0EB + 0112F26A88C2949DAC7700595AFD2CB4758B41A9D1C2D58E1E283AB06B690190 + 3530A284D20B2DEE07C0F612C88A7DC1F25A58DCE07E005C965B00C4E6541125 + 0777837442C739C0A725B5507AE80DF7023872AA89D5D087F7EE702F800F8E7E + 4F7C9DF6964B3AE07061359CFCE46D34800325BF607D6E9D189341E1C13741AE + D6FF7F00704E7062B2CFCF01B05D029D637FC1C040086728ABEE9342E757F13C + CE00A2B32AE0445AE4BC1D90575B0DF5BFF9C2A6CD61E0E3ED39679B279F6F79 + CDB719F77978F0ED8EE5453F0D83AA8B3F42FF37AF730F20A1B8067C7CF60CFC + D9F52027088C01708DB0F6659F9B03905B7EC5E17EADE29B30A57C827504CE01 + 62B2CAA15818057F2BE92F825C740232C042677893F231C6005C20D002A4145F + C13AC28AFFFC8C19C034B83095A8E267DACFB0B91C380788CD3C0DA519EF5B00 + 9896B0E22C7476E3EF045A80E4C226AC333CC5E8081C17BE07632AF487213610 + 68013E3C5687758667EA00138074E2DF6B40C177CD489F2797C3D6886D76DB9C + 41600C80EBF13521B30C8A32A22D0028D525EE87D4E23FE0A18DDB40201038DC + 0715A1A6A61A0D60A1030CD9B0D8290032FC86D0080808148027C56F3B0A022D + C0FEFC4B580718B61DC06409C8B57268BD6D808DA1DBCDE12D413120B81C80AE + ACCFBCDF5A7FF37B5E9E1ED8109001B85C0264F890907058E71F30671B2E04B7 + ED00AAF03811EAEA2E5103C4E55EC03AC34B3E7A9A168049785C08C8000B9DE1 + D12D0194F03810680162B2CF639DE1993A60BE52122AE896FB427070383CE0E7 + 6FBCDBF3607C5C671118017031C3BB31D40789A2EB10141C660E4F96B30823D2 + 61181CE8A7BD6D6E68A8450360638C4DFECE9367DEB6501124C665D6D3DB028F + 3D3C0D3D7DA19408B400D1591504D50C6FA1D57EB70F92BEB43FF3CE22C846A5 + E6F0E78411B065FD06DEDEA232A2ED46D0BC088C01242CCCF16F1A2F78A6F001 + 822761EDBA40DAFDE9106CC393EF5321345DAE4703986F86875A64DB070AC218 + 85A74318914AA0BFFF77BBF07408B4007B32BE255046584CEBD9D40A7378DFFF + DADECBC1931A5304BAF054082E0378F5C849E0C3E310B4FE11CB7BCE20300D3F + 1F02630094191E93D2E9B4D0DC2B86D53E9B9D4698548C22857784D0F26B2335 + 4094B08C706686C7A4542A25447DF103ACF0DC848C2097496168F01A72785B04 + B55A490FE0EC0C8F2D84858627EBB3AA8BE6C0E9BB5FA307707686C7A4509603 + AEF0D645F9DFE1C8D452C2D9191E4A8D6B541023A2EE0436C2BB0D001DC2E8C8 + 3048C4D7B18747066063095857D4CE2D76080AE399672B3C32001765DD09ABD7 + DCCF6A78B7042011F6E496C3ACC1172A85DB590BEFB600A6CA149543654E1C6B + C1970196011802709EDCAA5C0EB0946AC903FC034ECFC5CCBA49A3F800000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006A64944415478DAEDDB7D4C13 + 671C07F02F6F2245C5A10E049D932C53914C67344EE3360CCC17062AC8AAD1E8 + 244EDC90B80527C6E04B164D9C2C32358A286EEA34F1654617E7EB269B4B74BE + BF6D996FD3C5C85B8102164A5FAFBDF529DE51CA5D5FAE776D09FEFE2AD7E379 + FAFBDCEF79DAFB1502689A46578E8097005E0058B6EB826493C40FEA8B859313 + ACB9F835C0A6EC4449C6DEFBEB3F309969C1089D1EE0D8C57FD1A4350846E8F4 + 00E76E3E458BD6089DD104AD81721BC1AB00064AFCB9AE3FAA86DA52010C4283 + 5A87ECA923D02D38C025844E0F70FF99126A9D5130824F00F2B69F1165DCA225 + 53515EA7B2246FEC8050AF6AC1E2D4514E11BC0290575246177D9A048DC12CFA + D84D5A0A2D1A0D2FC2C294B721EB16C88BD0E901009D05219817A152A9C2F28F + C6FA16E08BE2F3F4E69C6416207FC75951C62DFC6C0A6E3F56E0E72B4F60A44C + 9CE798280A96B97D0B90BBE534BDEDF314892A00A87A6EC091B23BA86FD67578 + 4EAFD5C032B77F00346A2849E73973F531EE97D7B73BD6D8A8F23F80D5A5BF48 + 3ADFD0B818F6F183FFAA7C0F905374922ECE4B95BC0298D01BCDB8FEA012CD1A + 3D2EDE7E0CCBDC5D0B8089A735CD283D7EC9FF00A45E02EB164D621F17949CF5 + 3F006F865F0064171EA777E5A743A132781D60CDCE53B0CCED5F00EBF79E9774 + BE550B92FD0BE0930D47E9DD2B337D5201AB8A4FC032B77B0052F6F006F7EF8D + CCF7E2FD1F40CA1EDE5F4F1430E8F5A28EABA195B8AADF80F0C0281CCCFA09E1 + 2132FF04607A78E4AE2D6DFC3084060B6AE6B68B0A5539724FA4837A550D5D93 + 1E71C16FE1DBC907112E9361E5D663D8B37AB6FF00D8F6F048E786207812752D + 156CF23DFA85598F299F3CB722144E3A8C8DDF9D160EE08D1EDE8D8795829703 + 29FBCB86F5087F9D6293678241887826C7FE3559FE03C0D5C3AB6E5063FABB09 + 0809727D3954369523EF5446BB2B6F1F0421A8360697BFFC03B26E32CEC15D02 + F0460F8F20A48C1F4EDA57A2246F8B30ACFB48EC93FFC889C00920550BEBDCA3 + 1368D1E9312E763227822BCB8129FB5E71347AF50BB71E339A8D8211BC0A3072 + 4B0C42C282B120611932866471223C553C873C6924E7EFD75A363C72E5836228 + F4EC1B0613DDD606138AC00920550FEF94761E46278EC0BD1B8F1067CEC49BDD + 67743887F4F0723327384C9E5C799A6E7D6DB608CE20B8103801A4EAE10D2FEA + 8709C9EF4047697911480FCF3E98B28F7C2318915111D66394B9F5CE920BC219 + C2A89EE3F0C3ACA3CE01C4BE7D1DB535CA0A408241181A380BF13D32D873480F + 6F897C22FB738DBA02F9673310126B629367420882BA4E8B50654F5CCAB9EB3A + 80580D0CB20418005B84313DE663741FB9F518E9E131004CF26103032CC9F7B6 + 24CC9D942D84A325C1247F78EE490C8818C80F2055038354C0FB9326C0646E1B + 9741488ECEC6580B02E9E1050605B2651F3D4486BE5191AD89D2D48B843B4238 + AB06AEE47D02903465A235012E84198373D1F83001F2B421D62B1FFE5A109B3C + 9BA8030406C21EA1A9AE05C1B5B20EC9BB0C20E61220006D2FB60D825CA5BFAF + DD43B46E229A43EF20625028FA4447B683B287706549342BB580228433799701 + C40AA602DABFD88E0831AF45233A268A3DE6088119830B815C79E5433DCA722E + 7026CF0B20550F6FDC8EFE1D00EC11B8420842438D0AC6CA20C456CDC3F10DF9 + EEDD0C49D5C3B35F02524130C9174E398692DD177068E322F700A4EAE1910AF8 + 3075AA65D3D3F19EE329426DB5D25AF6F14D8B116A7EC57A5C1040F1F2996868 + 71FCF95A280093286536F19EEB0882796FB77F5E59D3004325CDBBE109061073 + 0930004C88550D4292E705C85A7788DEB97296A415202642BDA2019A0AA3DBC9 + 3B05A816790F482C8DE104F0044251552338799701BE3950260A005902D3A7A5 + B11F543C45F034795E80F96BF7D325057351D72CEE12201590313DDDF2119572 + 88E0CA06A9A854A0B95CE751F23E03206162DFB7DDAF060270FDCF9B989F908D + 15896B3CFA62C12100F9E323129B0FFE260A0059020C80A7087A830EB7AEDDC1 + D231F9583C76A9B81530B7600F5DBAF6631640ACF8E0FBD87600B6108E10F820 + C440E005D856300FF56A716F86F800180412EE5683A7080E0114AAD63D60FB91 + DF4501204B409E2E7F9128F7FE226483F404811360F68A527AC7DA2C1640AC48 + D937007366CE61137484D0FABCEBD52014C12700F6C971410842A0B4B875E5AE + 5B082E0188B9041880B6E49D57833B1BA4BB083EAB0077116CCF7315E1EBA4AD + 481B96E1FEFF0B480590777A1A1ED4DD12754CBE08090AC1A6D462FF027025BE + DA7CC0610343EC7809F0128007C0EB99DB84CF01BA52747980FF012254F6DB12 + 07A0BA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000077D4944415478DAEDDB7D5014 + 651C07F02F1C27C281286918BE548EA519956396D85859E03BE80886A6691266 + F9326A589A51314D4D268D864E804A2F664EE6CB68A3695A9A36D98B58BE8C93 + 9A699ABC1D708077DCDDDEDDEEDD76BBB8CB1DDCCBEEDD73DC0DFAFBC7736F59 + F7FBD9DFF3DCEE7318C6B22C6EE60ABB05E002202C2C8CE83F92BBE148C09407 + DDD91D396392B8739675D242EE7603583D7764400036FDF017AC365636428701 + D875EC1FE8280BAC348D9CF1832523741880837F5E8581A261A2ADA028936484 + A0005818F253C1898BD5D0DB3B4040A8D71AF052DA10442AC33D86E83000E7AF + 69A037D1B211820A905BF41D91E3AE59300EE5755A7B785A3642BB02BC527288 + 5DF3720A8C161BD1E372A5A318188C469708D50D7ACC4B1F0255A4A24DA00E03 + 0098EC08116E11AEAAAF236FFAF0E0022C2EFA812D9C9F2A022C2B3940E4B805 + F3C6E2D42535F6FE7E19346375B98F9561B076C1A8E0022C28DCC77EBC787C80 + 3A00A8BA6EC1F6C3A751DF646AF39E9932A268C984D000683432010110EABBE3 + 9770BEBCDE695B63A336F400DE2AFD3EA01003FB258AAF2FFC5B157C8079ABF7 + B2C5B96901EF00A1CCB40D272E54A2C968C6B1539750B234FDE60210EA6A4D13 + 4A77FF127A00811E02EFBE385A7C9DB7FE40E801B4678504C08BAB76B11B974D + 865A6B697780B737EC43E9F28CD002786FD3A180867E73766A6801E4BCBF83FD + 64C594A074C09BC57BF0E91BCFC80358BAF128D1E756D666852ABA33FFFAAE84 + 384C48BE37F40148AEE070935FB7E808FE7178E7CF7FA3EC7C05189A6C371859 + 0D8E9B5742159E80ADD9DF40A58C0E1D8006FB3D7A7C6C7307EC3D7E85BF41A1 + 2C0C5287DE83C808FF875B85B61C0BF74C0673BB1E269D19FD221EC44763B6DA + BB2E1A2BD6EDC2A6B79F0D0D00AE038E9DFD0F060B0B9AA6D168B0F008FE549D + A1420C1FD3238ADFA6B97C9D472818BD0DAB3EDDEF3B00A9252C3D65464C5424 + FF9A5BC36B68328B5D70F6B2DAE7E1C0B5FD6F96F7A0BA8B11C30B2520C45DCB + C296FC17820BD060A011AF5282B1B1F857AD83566F84D96CB9D1090C6AED6D9B + 3AB43F940AE9C3A152578EDC7D194E57BE7571088ADA44FCF6EA4F5045AA9C0E + 2E0BC0DF353C9BD5866E5D6390F7DC13A8AED781A2D106A1AAD180B1C3064A42 + 9012DE11E1BECE83F145D60E27048F00B9EB0F135DC2E2D6EDBA4445E0E0C53D + 3098CC7820FE697EE94A00E0860357523E1D84B6EFD28F45971E2A7E1B6DA365 + 23040560F0DA4428ED7FCE4E5A8A8C01D9D099581829CAA913AED46831E9F124 + 97C7A9B54F78DC9557243288ED1E052BDBB20C2617C123C092E24344D7F08421 + F0556D26868E7C08E7FEB88881E153312826A3EDBE0C8DECB4648FE1B92BCFB2 + CDE7E688E00DC21121BA5374985B80856BF7135DC3133AE0FE353D3022351926 + 86E211FAD9A6E09E4EE94EFB5ACCE6363F2FB47D7CFF08C4DBEF24B9626CCD4F + 96AE20BC210C891D8ECD53777A0720F5F8AAA3AC76000586AC4BE001B8121092 + 3A3D8B876233C57DB985CD39E9C3C4BFD7E82BB0EC400694BDAC6278A17C41D0 + D75188D4C4E297F967A403F8BB80E1380404004784C7E26623F9F669FCB673FF + 694400217C549F307BF8AEF6C0AE433942781A1242F86D33BE45EFB83EEE01E6 + AFF996E8024683568FF8B818BE039E1C3D02565BCB710584276FCBC1A3DDB350 + 76F60AC215E162DBF71C108DEE09F1CD4159E646E0B610DEBAC1317C9FAE7D3D + 4F8281044819FB141FC015C294FE8BD074F5614C4CE9CB5F79555F85185E0CEA + 014180688DA0AB3320A2365A0CDF0C250380E410E0005A4EB60582BB4A67CBCE + A1379D82C6889388BB3312B7F58C77826A0D21654834692840AD740A2F1BC0DF + 6ADD01CE27DB1621B16F4FF44C4C10B77942108EE10A81BBF29ABFCD383CFFA8 + 5378AF00730B76135DC3E3BEB87407D01AC155F982D060BFA1A22B15E8553513 + DF7CB05CDEC3506B007FD7F0DC0D81404108E10BC6EEC2FA4F8E625BC15C7900 + 7356EE24BA8677DDD0FCA5E5B8CD776342DA38FBA46772BBAFBF08B5D51ABEED + 07E95E42A4AD1BBFDD2780E2D732F9C7589235BCE40E1E4008CAD8AC6EF7F504 + 217CB6B77E5F53D3004B25DB66C27355B200482D63EFA3668A004291EA0639E1 + BD0264BFFB35BB61C5D480760049847A75038C15B4E4F09201AA09AFE38F2C4D + 7409E00F84BAAA467678D9001F6E394C04801B029326A68B372AFE22F81ADE2B + C0ACFC2FD9F5793350D7447608701D903169B2FD1695F1882065825457AAD154 + 6EF2297CD001B8B28A9FDBF2BB810338F1EB9F98953417AF3F95EFD3170B9200 + B85F3EE2AA70EB8F4400B8212000F88B60B69870B2EC34163DB20C2F272F26DB + 0133F23E674BF39F170148D5A8CF7A3901384278427007E10F8257808FF366A2 + 5E4FF6171ADC0108085CC9ED065F112401A8B5CD7340D1F6234400B821903539 + EB4650D7F38B2F13A42F081E01A62D2F654BF2B345005235FE8BDE989E395D0C + E809A1F97DE9DD201721A800ADC3B982F00981A170F2F73392106401901C0202 + 404B78EFDD206782948A10F40E908BE0B89F54840F52D661E2A04CF9FF5F2050 + 00B9FB27E242DD49A2C774574A8512ABD38A430B404ABD53B8C5E50206E9BA05 + 700BC00B40BB2777A8A003DC4C75D303FC0F679BDEEAC61AEF7C000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007764944415478DAEDDB0B700C + 771C07F06F5E428244882417D12674A82A29DA523A68BC0993204A864A554A28 + 1A2DD5A84C47A748876248105A5A33EA31186F25A51DEA55AF9AA2249AC8EB92 + 5C1E975CEEB977DBDD8DDDDC5DEEB5777BB99BF09BC9CCCDDE66B3DFCFFEFEFF + DBFD27F1204912CF7379BC003001E0E1E121E80F49DD7EC169CA91618158181B + 4D9F33AF936673371BC0FAE4614E01D87DEE1FC8941ADE082D06E0F0A5C7A855 + A87923B41880B337F351AFD040A9D1A24AA644F2D8BEF0F5F1B41AC025006A42 + F8A9E0C6A352C8A80E60114AAB64F864527FAB082D06E0C15309D3FE7C115C0A + 90BAF5B420C7DDB0602C0A2BA454780D6F846605F834EB3CB9615E0CE46A9DA0 + C7A5AB5641A05E2E378B303FB617FC7DFD9B046A3100809242F0368B902FAE41 + DA8C41AE0558BCF51CB931650407B02CEB8C20C7CD983F06B773C5387E350F1A + 426B721F2D4160D38291AE0558B0F124B965F1382775005052A3C6819C3BA8AC + 5336794FA59063EB92F1EE01502D279C02C0D6E96BB978505869B0ADBA5AEA7E + 005F65FFEA54889E5122EEF5C32725AE0798BFFE3899993AC1E91DC0964AA3C3 + 8D87C5A893AB70E9762EB296C63E5F006CE597D521FBC865F70370F610583D77 + 14F73A6DDB19F70368CE720B80B9EB0E933B96C5412C55373BC0AAED2791BD3C + DEBD00BED97DDEA9A157CE1EE15E0073BE3D48EE5C31C5251DB032F318767D39 + 951FC0D21D17057D6EA56F4723420299D761416DF15EBF28F70710720527AFB4 + 06DDC20299C7E1135773F1C7DF052034C276839C94E09A6A0DFC3D43B02FE928 + FC7DFCDC13E0C2DD02EE496D709F48F87A3B3EDC8AA48558782C0E44671994B5 + 2A4479F7C1F7A3F7C1DFCF0F2B361FC6EE55D3DD03807E18BAFEA81C2A95D200 + C191AAA82FE2C2B70D6EC36C93E4D5300819A3F663DDAE53F60308B58445AFDA + 44040780D091785C5489BCC20A542B7550A809E4164AEC1E0E74DB5F517F03FF + 97092E3C5B2C42C0D304EC4DFFD07D009E886BA9495143DD1469B94EA097B587 + F4ED061F2FDB8743716D21524FC61B5C79E3A211BCCA45B8F2D9EF4D56857801 + 38BA86A7D3EAD025AC13964C7E0BA595B5A03243AE52535F3A0EA1BA5E85A16F + 74B709C196F0FA08AFB68EC69E84830608160152B7E508BA84455FF5A8D0F638 + FBE818EA952A44FABD4B0557A35E4D42A35430C3816A0BDCCBB73E1CD8B66F1F + 45A27DB03FB34DA3D3F046700940F426117CDA786376EFA588EF91C474825426 + A70278329D40775C41B91463DEEE69F238E5D484475F792F1181769DDA404B36 + 2E83F145B008B024F3BCA06B78EC10C82E188F01C3FAE2FE5F8F10DD3A11AFB7 + 9F62625F2D1262A22D86A7AF3C49369C9B3E8235087D04BF567E1E6601166E3A + 25E81ADE7F2512448A3AE1B50DC1183262209484824188D24DC12BAD620DF655 + AB544DBE9F6DFBA0EEDE080A0960B611BA86274B5310D610FAB51B849FA61DB2 + 0E20D4E36B497915449D83D06F73080340178B407742BF0E53B97D55D447631C + D5256C95C98AB0EC4C3C7CC2B55C78B6EC41905528E02B6987CB29776D077074 + 0183D4A8101E1EC60C0116401FE19D80D9181C3ABD014B52C701B0E1DB447850 + E103A9C0A643E943581A126CF8FD8927D02520C23C40CA8613822E603C1557A3 + 6B6807A603868E1A02ADAEF1B82CC2D08E73D03F200E371F16C1D3CB936BFBD0 + 1E7EE81412D41094249E056E0A61AD1BF4C3470476B53C093A132066CC702680 + 298429DD17C1B37400860E8960AEBC7F572F2E3C17D402020B618C505B510FEF + 723F2E7C03140F002187000DD078B28D10F455BA77FD3E22C9D128C77504BCE4 + 8B8EA1410650C610B60C893A890210FB1884E70DE068197780E1C9364510750D + 45A82884DB6609813D862904FACA4BFE552127E5A24178AB00C91947045DC32B + AB949A0530463055F620549549A129F64278C94C1C5DBB9CDFC3903180A36B78 + E68680B320D8F019630E63DBCE8BD89F91CC0FE0A33587045DC32B1237FCBE6E + EA91DE183F612C35E929CDEEEB284279A98469FB5EB51FC357D781D96E1740E6 + E79351556FF9FE9A6F0DCA0A6300D8A0844E6B765F4B10EC67BBF1FB92B22AA8 + 8BC926139EA9E20520D432F649C54C0E802DA1BA814F78AB0049AB7F21B7AF98 + E6D40E1012A1525C057991C6E6F03603940ABC8E3F2C5B6412C01108714919EF + F0BC01BEDB9B2308003D04264D8CE56E541C45B037BC558059E93F93DBD21251 + 5127EC10A03B207E521C758B4A5844B0658214178B5157A8B42BBCCB01E8D272 + 9FDBFCBB8106B8F1E74DCCEA9D8C2F86A7DBF58B059B00E83F3EA26BE3BEDF04 + 01A087000BE028824AADC4ADEB77B0E8CD65983770B1B01D9098F623999DFE01 + 0720548DFC21DC00401FC2128239084710AC026C499B894A99B07FD0600E8045 + A08B6F37D88B60138058DA30076C3D704110007A0824C4253C0B6A7A7EB16782 + B407C122C0FBCBB3C9ACF4240E40A81AB7A70B664C9EC105B484D0F0BEEDDDC0 + 17C1A500C6E14C41D885402870EBEA5D9B1078010839045880C6F0D6BB81CF04 + 692B82CB3B802F82FE7EB622AC8DD98C89BD26F3FF7F016701A49E9A888715B7 + 043DA6B9F2F1F2C1FA0999EE05604B7DBD71AFC9050CA1EB05C00B002B00CD9E + 5CAF5C0EF03CD5730FF03F31C0E3EAD6504B1B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007754944415478DAEDDB7D5014 + 651C07F02F1C44722A8A12782A1A9952BEE04B9A3A3AEAA8E43B039A96864926 + E5CB64616986C9343AA934923A0A285A5ACE982FA38E855A69D994EFE6EB8898 + DA981C70C8811E1CDCDBDE6DBB7BEE7277DCDBDE3DC7DDA8BFBF606F67DDEF67 + 7FCFC3B38F1044D3349EE40A7A0A600720282888E83F92B1F9779F293FDFAE15 + 164CECCDDEB3A89BE6733719C0DAF4E13E01D8FEEB75A8B506D1088F0DC0FEBF + 6EA146A3178DF0D800FCFCF75DD4690CD01A8CA8566B913E360161A1C12E03F8 + 05404F919F0ACEFF530E35D3013C4279B51A7327F685344CE234C4630370E39E + 926B7FB1087E05C8D87484C87573E68F4549A58A096F108DD0A4001FE51DA373 + DE1F897ABD89E875D9AAD150A8ABAFB78B50AA54617E524F0641DA28D0630300 + 68198410870877150F91397D907F01166EFA955E376F9400B038EF2891EB66CF + 1D834BB715F8F1CC1D1828A3DD738C1485F5F347FB1760FEBA427AE3C2713EEA + 00A0ECA11E7B8E5F4655ADB6D1673A4D3D367D383E30001ED4533E01E0EBC8D9 + DBB851526575ECC10355E0017C5EF08B4F21E2E364C2D7C5FF96F91F60EEDA1F + E9DC8C093EEF00BE740613CE1797A2B65E87BF2EDD46DEA2894F16005F772B6A + 5170E064E001F87A08AC9893287C9D997F34F0009AB2020260CE9AFDF496C5C9 + 50A8F44D0EB07C73210A96A40416C0CAEDC77C1A7AD9AC51810530FBCBBDF4D6 + A553FCD201CB720F61DB67AF8B0358B4E504D1F7567635D6273E161A3D05596B + 2906F7EC14F800247770AEFC5B8984B8286E29FCE7B57BDC8A8D3290ED867A5A + 89B3BA559006476357DA414843C30313E0D40D05F382627E5BEBF7522CC242BC + 1F6E725509161C4A06F59C1ADA1A1DE2427AE1EBD776411A1E8EA51BF663FBF2 + 37FD0B70E166395EE9D68E0360DFDE98EC5608DE54659D5C08DF3CAA19774C79 + E72187909DB81B6BB61DF61C80D416D6D53B0AF47A21069489C62D7915AEFF57 + 058D46CB801871A7EC81C7C3816DFBD3FA959076A684F07CF10811F7A66267D6 + 3B810150A7677769D4CCD3376F5CF09D505D47A17F7C07844ADC1F0EA53525C8 + 284CB17AF2B6C52248EECB70FAE33F1AED0A8902F0760F8F36E810DF25166F25 + 26A05AA57E14DC1AA1AA468B01DD3BBB85E04E784B84979EED8D1D53F75A2138 + 05C8C83F4E740BEBEA2D397ABDD80185C507A1D31B2093BCCA74030D835603AD + 29981B0E1AA3F9D5D555F16DDF328E46CB282977CC60328846F00B40EFF53284 + 360BC1AC1E8B90D22DCD6E27C8992132AC4F17BBD7B9CF4C78EC9397C828B468 + DB0C46BA611B4C2C8253800F738F11DDC3D3EB74E8D9351639C589786578028A + 2EFC837ED2540C683BADD1B93A66B19434B487D3F0EC93A769F3BD5922B882B0 + 44087F263CC821C082F58789EEE1F11DD03D270A43460D8496D270089DF44988 + 0F4F6984655B7CDB47760941647404778C3299DF2CED41B842E8DB6210BE9BB6 + CF3500A9D7D7EB0C407706A0EF86680E802D1EA17FF39918F8DC74E1DC3A663E + 1837B8BBF07D855A8EC5475310DADE2884E7CB130475A50661CA163839EF8AFB + 00DE6E60580E011EC01261589BD918DA3E953B26AFA8C28421BDACC237EB18C4 + 846FC504B61FCA12C2D990E0C3EF9EF1133A4474740C302FE727A21B18961D30 + 2C71088CA686EBF20883236621A1D5141431E7064B8285B68FE9168EB6D191E6 + A034F52870630857DD6019BE63AB58E7932069804B37E5E8D3CD0C3072CC082E + 803D84295D3E4073D550F4EFDB967BF2D25889105E08EA048187B045A8A9AC43 + C8FD7021BC194A0400C921C00234DC6C0304FB94AE9D2B4257C9389452A711D1 + 290C6D6222ADA06C21DC1912B54A0DA008B50A2F1AC0DBB2ED00EB9B6D8C208B + 8D418C2C5A38E60C81BF863D04F6C92B6FEA707CDE09ABF02E01D2B30F10DDC3 + 2B6256788E006C11EC952708D5152A184A25685F968A83AB97887B19B205F076 + 0FCFD110F015041F3E7BCC7EE46F3D81DDD9E9E200DE5DB58FE81E5ED1A335FE + EC9FFB61FC84B1CCA4A77578AEB708F7CB955CDBBF5CF31EC24CADB9E31E01E4 + 7E3299794D75BEBE165B83F2DA71007C50CA647478AE3308FE67BBEDE7CA8A6A + E84BE946139EBD1205406A1BBB50932A00F045AA1BC484770990B6E2077AF3D2 + 693EED009208558A6AD4CB0D6E87771BA09CF03EFEF002995D006F20146515A2 + C38B06F86AE7712200EC10489A345158A8788BE06978970033B3BEA7F33367A0 + B296EC10603B2025299959A2524E11DC992015A50AD496683D0AEF7700B68CC2 + CF6DF1DDC0029C3FF53766F648C7A723B23CFA8F05B700D85F3E626BDDAEDF88 + 00B0438007F01641A7D7E2E2B9CBF8A0FF62BC3F7021D90E9891F92D5D90F5B6 + 0040AA467FD3DE0AC012C2198223086F105C026CCC4C45959AEC2F343802E011 + D812DB0D9E22B805A05099E7804D7B7E2702C00E81A9C9531F05B53FBF783241 + 7A82E014E08D2505745E569A0040AAC6EDE880E993A70B019D21983F77BF1BC4 + 22F815C0369C3D088F10280D2E9EB9E216822800924380076808EFBA1BC44C90 + EE22F8BD03C422589EE72EC2EA911B30E9E5C9E2FF5EC05700198727A1B8F222 + D16B3AAA504928D64EC80D2C0077EA8B753BED6E6090AEA7004F015C00347972 + 8BF23BC093544F3CC0FF17ACDFEA26854A6C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007794944415478DAEDDB795013 + 671806F087234548158B078817E35045C58BCA545A3B1EA0F5A6A0C5DB6A5B51 + D0568B2DD662653A3A55E968D55150D1565B67ACC7A8A3A2B65E74C69B2A5AA7 + 828A2DCA61380542924DB2C97637B84B0221C9261B9201DFBF70B3F3B1CF6FDF + EFCBEEA7BA501485D65C2EAF008C00B8B8B808FA4B12765DB69B7240E7B6F8EC + 83B7986BE675D16CEE6603D8143BD22E00FBCEFF03A98CE08DD062008E5D798C + 1A858A37428B01F8FD763E640A3508B50615D5322C9A14020F91ABD9000E0150 + 91C22F05598F9EA396EE0016E179652DE2268740ECE16632448B01C879568E5A + 42CD1BC1A100093BCE0A32EEE625E35150564D8757F3466856802FD22E509B17 + 8743AED20A3A2E53350A1232B9DC2842BEA40A719143E12316350AD462000082 + 4670378990342BCCB100CB769CA7B6C44770008969E7041937256E1CB2F32438 + 75E309D4A4C6E8391A92C4D625631C0BB0644B06B57DD9043B7500505CA5C2E1 + 8B775121251A7DA654C8B163F944E700782127ED02C0D6D99B79C829A83038F6 + E245B5F3017C9BFE875D21827AF9733FE7FE5BEC7880B84DA7A8D4844976EF00 + B6946A2DB2728B20952B71253B0F692B26B72E00B6F24BA4483F7ED5F900EC3D + 05D62E1CCBFD9CB4F39CF30134673905C0C28DC7A8DD89519054AB9A1D60CDAE + 0CA4AF8C762E8075FB2ED835F4EAF911CE05F0C9F747A83DABA639A40356A79E + C4DE6F3EE407B06277A6A0EFADCCD3D8E8C10120B4AEE8D0AE0D0605FADB3EA8 + BD0184DCC1B9949D8FD14302748FC2D7722438917957F0A072AA1C3795EB2176 + F5C5C10527201679392700F3F242BFA8D12F292A0405748187BBEDD3ADB0BA00 + 4B4F4681EC5C0BA246895EEE03F1E3FB0721F6F2C2AA6DC7B06FCD4CE70060BE + 061F175542AD260D106CA932592117FEF54E9EBA63E54FAA740829630F61E3DE + 33D60308B58575E5FE530C1FD013329546F7747627E729DD0D1AFA7D9D445199 + 14A4DABAC59169FBEBAA751007905C78B65804EF67313890FCB1F3009454C9A1 + 506A205728A0A6174552A3458D548681BDBB43E466F97428AA29404246B4C19D + 6F580C825BA93FAE7FF927C41E6283C17901D8BA87A7522A3132B42FC6BF1D88 + 8A5A1224DDFAB62058125E1FA16F9BC1D81F73C400C12440C2CE8B826E616566 + 3DA401FA2023F704942A35BC882174FBD78DAD5010BAE9A0D250F8AFB0D4EC58 + 6CDBB7EB45A15D27B1EE985AABE68DE01080C15BFD21F274C7FCE01588EA1707 + 8220A0A683EB774259B51CA141DD8C8E534A2F78CC9D77F327D1B6A3273454FD + 36185F049300CB532F08BA8747C8E907A161C148BAF92E868E1C84077F3DC23B + DEF331ACF30CA3E78F181268323C73E729AAEEDAF411CC41E82378BDE6E5D224 + C0D2AD6704DDC3633BA0FFE64E181E310C04A9D021F45445A2779B2883738D7D + 23B06DEF13E80E1F5FEFBAF3B4756F96C620CC2184B40DC32FD38F9A0710EAF5 + F57AF663840D791321DB7C75004CB1084C278CEA36873BB7B29640F8D03EDC9F + 4B6A0B91782E1AA2AE1A2E3C876505426D99021EE56D7135FE9EE500B66E6030 + 53202C2408EBB2477000FA08117EB118E1375377ACF8858C0360C37B7677A1C3 + B7A7031B0FA50F616A4AB0E10FCD3E8D6EDEDD9B0688DF7C5AD00D0CFD0E1831 + 763834DAFA71598450F11C0C68370D4F9E4AE0EAE6CAB5BD5F1F2F74F4F5A90B + 4A912F03378630D70DFAE1BBB7EF617A11B42740F8B851BA00C610627A2F4307 + E51804078975775EDCC38D0BCF053581C0423444A82993C1BDD48B0B5F07C503 + 409029302810EBFE0ED701D45F6C3D047397EEDF7A80FE1E93914F5C81774F0F + 74F0F331806A0861C99490962B0089C8203C6F005BEB72D6238C0AEDCD7580E1 + C53646F0EFE1073F7F5FEE982904760C6308CC9D2F7FA8C4C5F84C83F0660162 + 538E0BBA8777ED6E5E93000D118C9535089525D55017B9A16BF15C9CD8B092DF + CB5043005BF7F09A9A02F68260C3A78C3B869D7B32712825961FC0A7EB8F0ABA + 87C77400532BAEBF878993C6D38B1ED1E4B9B622943E2FD7B57DBF9A45F0D0BE + A13B6E1540EA5753512933FD7CCDB7C2D2BAE800D8A0A456D3E4B9A620D8EFF6 + 869F979754425544355AF08C152F00A1B6B13314733900B684EA063EE1CD022C + 58FB1BB56BD574BB7680900815924AC80BD51687B718E0B9C0FBF823D3FD8D02 + D80221292EE11D9E37C00F072E0A02C04C81C82993B907155B11AC0D6F16605E + F2AFD4CEA4D928930A3B05980E888E8CA21F51499308962C90922209A4058455 + E11D0EC09486FBDEE6DF0D0C40D6B5DB98171C8BAF47255BF5170B160130FFF8 + 88A92D072F0902C04C0116C05604A58AC09D5B77F1796822160F5B266C07CC4E + FA994A4FFE880310AAC6FCD4D500401FC214425310B6209805D89E3457B785DD + 1C002C02537CBBC15A048B0024D5756BC08EC397050160A6404C54CCCBA0C6D7 + 176B16486B104C02CC58994EA5252FE00084AA09FBBB61D6D4595C405308759F + 5BDE0D7C111C0AD0309C3108AB104805EEDCB86711022F0021A7000B501FDE7C + 37F059202D45707807F045D03FCF52840DE1DB30A5DF54FEFF5FC05E000967A6 + 20B7EC8EA0633655223711364D4A752E004BEABB2D078C6E60085DAF005E0198 + 0168F6E47AE57080D654AD1EE07F2D54D9EAB0B05D4A0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'MoveRemote_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007794944415478DAEDDB7D5014 + 651C07F02FC2897292861A84A28E9529199299A313860E6A8A02028525E14BA6 + 895A1A94669A4CA3934AA3A9232F8A969633E4CBA0A3829692D2F86EE25BA1F9 + D298081E70801CC7BDEEDDB6BBE72E77706F7BB7C7DDA8BFBF706FE761BF9FFD + 3DCFED3EAA1749927892CBEB298019002F2F2F417F49DAE6E32E530EEEDA09E9 + 8943E86BE675D16CEE3603583B7BA44B00B61FFD1BB532256F84C706A0E0E42D + C8941ADE088F0DC0AF17EFA249A9854AABC3833A393E897B1DBEA2763603B805 + 404308BF145CB8F90072AA035884BB928758983814625F6FAB211E1B80EBF7A4 + 90ABB4BC11DC0A909675589071D7CD1B8FF29A062ABC9637429B027C96738C5C + 37270A0A8D5ED071E9922909342914161152E38620402C6A15E8B10100541482 + 8F4584EBE5B558392DC2BD000BB28E92EBE78EE60016E51C1164DCCCD471B874 + 5B828367EF404BE8CC9EA323086C9837C6BD00F3D617929B1644BBA80380CA87 + 1AEC2EBE8CDA4655ABCFD44A05B2164EF00C807A05E11200B60E9FBBCDB4BC71 + D5D737781EC0D779BFB914A27FDF60EEE71BFF56BA1F2075ED41323B6DA2CB3B + 802DB5568F0B372AD0A850E3E4A5DBC8498F79B200D8BA5BD588BC7DA73C0FC0 + D55360C5ACB1DCCF4B738F781E405B964700CC5A53406E59140F4983A6CD0196 + 6F2E44DEE204CF0258B9FD984B432F9B3EDAB300667EBB87DCBAE41DB774C0B2 + EC03D8F6D5BBFC00D2B79C10F4BD957E1A8B8908659ECF03BAF8A37F4880E703 + 08B9835374EA3AA2DF1CC02C826577AB917FF4B2E04115A414E7D4AB206E1788 + FC19FB2116F9790E404149191222433900BAA866C04B3DBBC2D7C7F9E976BFA1 + 1CF30FC483784E0E954C8DBE3E61F8FEED7C88FDFCB0646301B62F7FDFFD0013 + A90E68D2E898871385526982E04CD534DDE7C277EADE913926BDF39041C81CBB + 0B6BB615390E20D416D6216A0AB0001552398E97DEA1DED509EA15964465759D + C3E3D26D7F46B312E23E04179E2D16A1F3BD24ECCCF8D0BD0007FEB88AD8B7C2 + 1880AA870A10841E5A1DC9748256DF0E4A0D4175423788BCED9F0E15B272A415 + 2698DCF9964523785707E3CCE72510FB8A4D06E705E0EC1E9E4AA140F488308C + 1ADC17B5728202D040A9366C60B0086AB50A2F8404D985604F786384011DC2B1 + 23698F09825580B4DC6241B7B08A4E5E4374C4ABD8F7D73E907A02ED1A0741A9 + 54414919903A1D331DA0D7E33F49BDCDB1D8B67FA62F8967BA8B99635ABD9637 + 429B021C2CB98A98C830846F0886A8A30FA60F4C477C686AAB4EA0ABAAAE0961 + FD42CC8E534D2D78F49DF70E26E0DFAD237464F336185F04AB000BB38F09BA87 + C74E81F493C33164E42094FD7913915D6762448F9456E7923A02435FE963353C + 7DE749D2706DC608B6208C11FCDAFB79590498BFA148D03DBC82E2524C880CC7 + E08D8188183D0C2A42C920F4D6C4A15F87789373096DEBC765B6ED035EF44140 + 6067C3797AC39BA539085B0883FD87E3A7C97B6D0308F5FA5A5872D904802E16 + 81EE84D1211F70E7D25BD9AFF5EFCDFDB94A7E1F8B8E2440D443C785E7B01C40 + 90D728E12BF5C7A9B957EC07707603A3492643CCA8C1CC1460018C11C6F74C45 + 54AF69CCB1FA063907C086EF18E24585EF4205361FCA18C2DA9460C3EF4A3E84 + 9E9D432C03CC5D7748D00D0CE30E881C1B019DBE795C1621BC4332C2FD2771DF + 046CDB07BDEC876E8186972782241E056E0D61AB1B8CC38774E9657D11742540 + D4B8514C00730849FD16A0B75734FAF469CFDC79712F6F2E3C17D40A020BD112 + 4156D3049F6A3F2EBC018A07809053800668BED86608FA2E5D3B5F86F04E9370 + ABB1049D7BFBA26B508009544B087BA644A394FA7A95884CC2F30670B65A7680 + E9C5B64608EE1584A0E040EE983504760C7308F49D97FEA346F1DC1326E16D02 + CCCEDC27E81EDEB1D3572D02B44430578E20D45535405BE18D1E9529D8BF7A31 + BF97A19600CEEEE1599A02AE8260C3678E2B40EED613D895399B1FC047ABF60A + BA875778AACC0079350A13268EA7163D95C5739D45A87E2065DA3E54F6317CF5 + CF32C71D02C8FE2211754DD69FAFF9D6F09CE719003628A1D7593CD71A04FBDD + DEF27369551D341564AB05CF5CF102106A1BBB5099C201B0255437F0096F1360 + C68A5FC8CD4B26BBB4038444A895D441715F6B7778BB011E08BC8F3F322FD82C + 80331092CA2ADEE179037CB7B35810007A0AC4C5C6700F2ACE22381ADE26C0D4 + 8C9FC9DCA5C9A86914760AD01D9010174F3DA2125611EC59202515123496AB1C + 0AEF7600BA74DCF736FF6EA0012E9CBE88A90367E3CB51190EFDC5825D00F43F + 3EA26B7DFEEF8200D0538005701641AD51A1F4FC657CFAC622CC19B640D80E48 + 5EFA239997318D0310AAC6FCD0C304C018C21A82250867106C026C5A9AC26C61 + B705008B4017DF6E7014C12E004983610DC8DA7D5C10007A0A24C5273D0A6A7E + 7D7164817404C12AC07B8BF3C89C8C191C805015BDA327A6244EE1025A43307C + 6E7F37F045702B40CB70E6201C422094283D7BC52E045E00424E0116A039BCED + 6EE0B340DA8BE0F60EE08B607C9EBD08ABA33622363491FFFF177015405A512C + 6ED4940A3AA6A512798BB07662B66701D853DFACDF69760343E87A0AF014C006 + 409B27372AB7033C49F5C403FC0FC7DDCCEA8D10E3BE0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'MoveRemote_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000077B4944415478DAEDDB0B5014 + 751C07F02FC14970BE421344D0D4B4724A1D1F654D4D36A201A2041899844516 + 895A1A9666564C93A5D268EA08A8683E22CDC760A38296523695E123B3A9CC4A + CB44F08003BCE3B8D7EEDDB6BBD72E7770AFBDFB1F7783FE669839F796E5BE9F + FDFDFFBBFB17821886C18D5C413701EC0004050511FD21B91BBFF6997274AFAE + 783979344265B748FAD042EE0E0358953DDE2700DB8EFE8606B54E3242A70128 + FDEE2FA87546C9089D06E08B1F2FA34547414F9970AD51839C29A3200F0D7619 + C02F00469AFC5470FACF6BD0B01D20205C565CC782B4FB5D22741A80DFAF28A1 + D1539211FC0A905B7098C87157CF4D4055BD8A0D4F4946E85080578B8E31AB67 + 4F80D668267A5CAED43A1A2D5AAD43849CE4318890CBDA05EA3400809E450871 + 8870FE5F25DECF7AC4BF00F30B8E326BE6C489008B8A8E10396E7E4E3C7EBAA8 + C0C1CA4BA06893DD7D4C348DB57327FA1760EE9A3266FDFC441F75005073DD88 + 3D15E7D0D0AC6FF79E41A745C182C98101D0A4A57D0220D4E19317F17B5583CD + B6A62655E001BC5DFCA54F21EE1E142DBEBEF0778DFF0172561D640A73937CDE + 01421928334E5FA846B3D680EF7EBA88A285536E2C00A12ED736A378FFF78107 + E0EB21F0DE8B93C4D74B371C093C808EAC800078716529B369510A142A638703 + BCB3B10CC58B53030B60D9B6633E0DFDD67371810530EB83BDCCE625D3FCD201 + 6F151EC096379F9406B070D371A2CFAD3A8D0619F1A3F87BF4AE615D30B85FEF + C00720B9825372F80C9E4918C34F827FD5A8B0A3EC24F1A05A46899386E590DF + 12895D599F432E0B0F1C802DE5E7302B71240FC05D9B29931994D140AC13AEAA + AA30EF400AE83E1AE8D5060C0A198E8F1EDF0579783896AC2BC5B6779EF63F40 + E6A41168319A50ADD4B0008C881013D9CBAB63D7B75C15C377BD3D8CDFA6BC74 + 9D47C89FB41B2BB7947B0E406A09ABE4F06976088CE5016AAF6B71F0DBDF4099 + 2D9FA9A6AED1E3E3726DFF837119E477D06278A104841E57D25192F77C6000A8 + 7426283514FB4329E80C96E777AE13B47A0A03FBDE26E998D5EA2AE496A5DA9C + F9B6C52104D745E387D7BE813C546E832009C0DB353CBD568B19F163308C7D4A + D318CCFC10B046D0B10F2F462385983E3D2173BDA2ED56786B847B6E1D89EDE9 + 7B6D109C02E46EA820BA84F569F94964243E80FDBFEEE7CFB84631048CC9043D + C5DE1A9BCD928683D0F6DD0731E87EBB9CDF469929C9087E0118B9361AB2B010 + 3C77EF42A40CCB014D1BD92FB33829B22FA1D2E83024C6FED5A18E9DF0B8331F + 1C4DA35BEF309898D66530A9084E0116141E23BA86D7A2562333691C667D311A + 63C68FC0F9337F222E2A1B71B199EDF6A5D8AE183E34D66978EECC338CE5B359 + 23B882B04608EF121EE41060DEDA72A26B785B0F9CC08CC47118B52E120FC78D + 839ED6F108038CC918143CD9E5F70B6D1F71670822227BF0DB68B3E5C9D21E84 + 2B8451DD1EC48EA7F6B90620F5F8BAB3BCD206802B0181EB84C48133C57DB9E5 + EC7B06C788FFAED55CC5A223A990F53389E185F2044153AF43A8B21BBE9FF3B3 + FB00DE2E60580F0101C01A21212607F103B3F86DEAE6161140081F161BC486EF + C906B61FCA1AC2D99010C2EFCE3884981EB18E01E6AC3E44740163E721760824 + 3DC477C0A3931E86C9DC7A5C01E13ED9740CEF3E4DBC12086D1F7557387A4746 + 588232F4FF81DB43B8EA06EBF0B13DFB3B9F047D093021FE313E803D84F4A1F3 + 715FF813ECD9067FE6E5FD83C5F06250270802445B04757D0B42EAC2C5F01628 + 09002486C074760E987D74340FD0FA615B21B8B3F4CBA9F318DB330DE79BBE42 + 8F01A1E815156103D516C29D21D1ACD4010A994D78C900DE56C9C11378664A6B + 07D87ED8F608D1FDA310151D296E7386201CC31E0277E6957F185031E7B84D78 + 9700D9F9FB89AEE1ED3D52E910A02D82BDF204A1B15605AA3A18FD6A32F1F98A + C5D21E86DA0278BB86E76808F80A42089F1F5F8A0D9B8F63777EB634801796EF + 23BA86C7750057ABFF49C1E4A40476D2D33BDCD75B84BA6B4ABEED87A95F42A8 + D9F284E91140E1EB69686C717E7F2DB51E2CEACB03084169B3C9E1BECE20846B + 7BDBF795B58D305633ED263C7B250980D43276992E5304108A54374809EF1220 + EBBDCF988D4B9EF269079044685034427B95723BBCDB00D708AFE38F2F8EB60B + E00D84A2A6567278C9001F96541001E08640F2D429E28D8AB7089E8677093033 + EF1366C3D20CD437931D025C07A426A7B0B7A8B4530477264845B502CD557A8F + C2FB1D802B9378DD96DE0D1CC0E9133F62E6BDD978E3B13C8FFE1FCF2D00EE97 + 8FB85AB3EB2B2200DC101000BC453018F5387BEA1C5E19BB08B3C7CD27DB0119 + 4BB732C579CF8A00A46AE2C7FD6C00AC219C213882F006C125C0FAA59968D090 + FD8506470002025752BBC15304B700142ACB1C50B0E76B2200DC10484F49FF3F + A8FDF9C59309D21304A700D31717334579592200A94ADC1E83196933C480CE10 + 2CEFBBDF0D5211FC0AD0369C3D088F10681DCE56FEEC1682240092434000680D + EFBA1BA44C90EE22F8BD03A42258EFE72EC28A09EB3075589AF4BF17F015406E + F9545CA83F4BF4988E4A162CC3AAA4C2C00270A7DE5D536277018374DD04B809 + E002A0C3935B95DF016EA4BAE101FE03CC70CDEA501D50830000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007574944415478DAEDDB7D5014 + 651C07F02F0221772A062A8AF83A56EA683966A5E58C3AA8E12B2172A4A46526 + 0A68189A66984CA3638AA3F906A868693919EA80E37B29A9339A6FF936E54BA6 + E588E021077AC7717B2F7BB7DDDEB9CB1DDCDBDE3DC7DD88BFBF606FD9DBEF67 + 7FCFB3B70F10C0300C9A72053C07B00110101040F44D32379FF09A7254440BCC + 897B1D21C1CD049D3497BBD10056A70CF50AC0F663D751A5A004233C330045A7 + FF8182D2A25C5683F9896FB98CF0CC00FC72E91E6A291DD43A3DEE499F606EC2 + 9B1087043A0DE013002D4D7E2AB878FB2194C60E108AF0CC00DCBC2F8352AD13 + 8CE05380CCDC23448EBB267D144A2BE5C6F03AC1088D0AF059FE7166CDAC18A8 + B406A2C7654B41D1A855A9EC22A4C60D40B838B841A0670600501B1182EC225C + FF4F8AE5D387F9162023F718B3366D380FB020FF2891E3E6A4C6E2CA1D290E9C + BB0B1DADB7B98F9EA6B12E7D846F01D2D71E6236668CF6520700E54FB4D85D72 + 155535EA06AF69281572E78EF10F80C72ADA2B005C1D397F07374BABACB63D7E + 2CF73F80AF0A7EF52A44CFEE51FCD7B7FE2DF73D40EAEA034C5EE658AF770057 + 1A9D01176F95A146A5C1E92B77903F6F5CD302E0EA5E450D0A8ACFF81F80B787 + C0D21923F9AFB3361DF53F80C62CBF0098B1B288D9B2201E52B9B6D101966C3E + 84828513FC0B60D9F6E35E0DBDF8A3E1FE05307DF91E66EBA2893EE980C579FB + B1EDCB446100F3B69C24FADC4A29959811FF0E5414055168283A848BFD1F80E4 + 0A4EEEDED3489F38D83409B2B7A66DFBCF120FAA626438AFF906E26691D8356D + 1FC4C122FF015857781A194966803299123ABDF93D4975C203792966EF8F07DD + 4E09B54283EE41AFE2DB7777412C1261D1FA226C5F32C9B700AB0ACF22236120 + E494DEF8C0A2024D1B7884F056228F8E5D59FB800FDFA26DA8699BECEE131342 + CEC842ACDC76D87D00524B581B0A4F624ED25054D7EAF0A4568DA253378CCFEB + E62737B911C4DD62DBFEAC7619C45D693E3C571C42D87D0976667FEC3F004A8D + C1D801E6BB01A5313FC353C6CFEE1D235A083A6699A214998726585DF9FAC522 + 043E8AC2D9F9A7200E115B210802F0740DAF56A1C0DCE4184446849900D86211 + 2C8782100457C25B22F46ADE0F3B247BAC101C02646E2A21BA8495BFE7145213 + 87A0F8AF626360032AEF75060CC6F006F3F908190E5CDBB7EACEA0555BF324AA + 33E80423F804A0DFBA2804870621B95726247DD34C573F80D1F143C18450AB41 + 74BBD6368FF3C838E1B1573E308A46CB36A1D033753F2714C121C0DCBCE344D7 + F0D821902E1982C4E23E1830F435DCF8E3364645A722B6DB349BFB77ED10EE30 + 3C7BE519C67C6E9608CE202C11442F8802EC02CC5E7798E81ADE869F4A902219 + 86FEEB233178F840A869CA84D0451B87EE81639CFE3CD7F6E13D82101E1966DA + 461BCC4F96B6209C21F46F39083F24ED750E40EAF1356F5709D226C5F0006C71 + 086C278CED319DDF97D2D2C60E88E0BFAF503EC082A31310DC51CF87E7CA1D04 + 65258510594B9C49BBE63A80A70B188AEA2ACC4C8AC107FBFBF2009608EF759B + 8D312FCD306D932B291E800B1FDA29C018BEB531B0ED5096108E860417BE30F9 + 20A2C33AD907485B7390E8028665070C1939187A43DD7139849ECD92D0B3F938 + FE4EC0B57DFB57446813699E1368867E1AB82184B36EB00CDFA97567C793A037 + 016262879902D84290BC9C818111890869A5335D7971E7403E3C1FD401020751 + 1F4151598BA047223EBC194A0000C921C002D49D6C1D047B95FEBC70036F4748 + 704D760C615D4210D13EDC0AAA3E842B43A2464601D260ABF082013CADFA1D60 + 7DB20D11A23AB747FBA8487E9B2304EE18B610D82B2FFB5B8392B49356E19D02 + A4E414135DC3DBB6F7845D80FA08B6CA1D84EA0A39746581E8583E05FB562C14 + F630541FC0D3353C7B43C05B105CF89CD8226CDA7A12853929C2003EF9662FD1 + 353CB603D8DA5A391963C68E324E7A6ABBFB7A8AF0E8A1CCD4F6BD1533116278 + D1B4DD2D80BCCF134C8FAF246B507E071300179436E8EDEEEB0882BBB7D77F5D + 56510D6D19D360C2B3558200482D631FA2A6F0005C91EA0621E19D024C5BFA33 + B3795192573B80244295B41AAA073A97C3BB0CF090F03AFED082289B009E4048 + CB2B0487170CB06A670911007608C48D1FC77F50F114C1DDF04E01A666FFC86C + CA4A46650DD921C076C084B878E34754DA21822B13A4B44C8A9A52B55BE17D0E + C0969EBF6F0BEF0616E0E2EF9730B54F0ABE1896EDD6EFF15C0260FFF888ADB5 + BB7E2302C00E010EC053048D568DCB17AEE2D3371660D6C00CB21D909CF53D53 + 90FD210F40AA467CD7D10AC012C211823D084F109C026CCC9A822A25D93F68B0 + 07C021B025B41BDC457009402A37CF01B9BB4F1001608780245EF234A8EDF9C5 + 9D09D21D048700EF2F2C60F2B3A7F100A46AF48E684C4E98CC077484607EDDF5 + 6E108AE05380FAE16C41B8854053B87CEE9A4B088200480E010EA02EBCF36E10 + 3241BA8AE0F30E108A60B99FAB082B62D6637CEF04E1FF2FE02D80CCC3E371AB + F232D163DAABE0C060AC1E9BE75F00AED4D76B77DA5CC0205DCF019E03380168 + F4E416E57380A6544D1EE07F03FDB9EA7FFEF82E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007484944415478DAEDDB795013 + 571C07F02F058A90228A0714AF4AEDA1D3C33A3DB4E38C5A95AA881650B43A5A + 2D8A8A8E5AB458D04AAD0E2A1D2C3A0A2A5AD43AB51E838E0A786B67B4DED7B4 + 2AB5DA5AB902842B819C9B6CB389BB2421D7262F24A3FEFE22C9F2D8EF677FEF + 25FB002F9AA6F12C97D7730033005E5E5E447F48D296B32E53EE10D8068BC77F + 043FDF17789D349BBBD500321306BB0460C7C93B28174978233C3500F9E7FF86 + 58A6E48DF0D4001CBFFE084D3215E42A351E09EBB130F64308FCBC6D06700B80 + 9222BF145CBD5F81466D07B008F74A6A9032F13D2D82C06A88A706E0DE63111A + E52ADE086E0548DA544464DC757347A2A4BA411B5EC51BA15501BECA3945AF9B + 3D1452A586E8B84C8965149AA452B30877FF1361515C7F040B7C5B047A6A0000 + B916C1C722C29D7F85488F1FE25E80059B4ED25989C33880E49C6344C6CD9833 + 02371F0871E4D243A828B5D963D41485F57387BB17606E5601BD71C128177500 + 505EAFC4BED3B7502391B7784D219362D3C248CF00A893522E0160ABE8F203DD + E2675875750D9E07F06DEE099742BC191EC67D5DFC4FB9FB01E6641EA1B39346 + BBBC03D852A834B85A5C06895481F3371F206751D4B305C0D6A34A09720F5EF0 + 3C00574F81953323B8AF976E3EE67900AD591E0130736D3EBD35391AC20665AB + 032CDF5280DC25319E05B06AC72997865E366D986701C4A7EFA7B7A58C734B07 + 2CCB3E8CEDA9E3F9012CDA7A8EE87DABA4BE0E4BA60C81584EC3DFCF1BED046D + 3C1F80E40ECE8ABC33489BFE89AE03EA9BE4D8B8FF3CF1A0525A84CB8AD510BC + 10823DD30F41E01BE0590029DA0E6890A9216A54697FA80A14A541C7A00022E3 + 97369460DEE168509D1B21172B10EEF30E7EFC740F04010148D9908F1DCB3F77 + 2FC077DB8E23755A046A9BB4B7AA0A0D546A9A430814F83B357675532917FEA5 + 4EFAB1440FEB750819117BB1767BA1E300A4B6B0D2779C3002C83B7A49F7BC9C + D2DFAD395A4CDB5F54AE82E0158A0BCF168B10F4380EBBD3BE742FC0F7B98558 + 3E731407C014DB054CC9146A04B7E5371DCAC425482A8831BAF2A6C520785785 + E1E2E2DF5A6C8DF10270760FAF492CC6B219237473D210407F02FAA9C03CB617 + C19EF08608BDDBF4C5CEB8FD4608560192369F26BA8595BEBD08A9F12371F0CF + 835A540D4A8B43B4ED6F3CB6BDD3816DFBB6E134DA7612E831352ADE086E01E8 + BB3E0CBEFE3E98DC3B09716F27EA4FFE4927A8550AEEB1A585B14ABBE03157DE + 3B8C4260477FA8E9E66D30BE08560116669F22BA8727AEAD41EAACB118B9AB27 + DE1FFC2EEE5EBB8FCF7ACE43E46B33CD1EDFB99DC06A78E6CAD3B4FEDC0C116C + 41182204BC18E0651160DEFA42A27B782BB71C41727C24FA6D08C1C061FDB5ED + 2ED321F4508E45B877A4CDEF67DB3EB8970F82438274CF511AFD9DA539085B08 + FD020760D78403B60148DDBEA66F3D82D484280E802916C1B413684A81E0F6ED + B9C7958DA5483E1603DF2E6A2E3C5B8E203456CBE0270AC485C4DBF60338BB81 + 515755899459D188FAE5550EC010615CAFF988EC15AF7B4E2A5721A443905178 + FF6E5EDAF0EDB481CD873284B03625D8F07B271F45D7A06E960112D71D25BA81 + 61D80183220642AD691E9745789D8E45B85F34F74EC0B67DE81B01E81812AC0F + 4A534F02B784B0D50D86E1BBB5EB6E7D117425C0D011437401CC2130EF0E1F87 + 4C02FC24BA2B2FE8EECD85E7825A4160214C11C4D54DF0A90AE0C2EBA1780090 + 9C020C40F3C936433057E98F2B7731287412AE551421A8871F3A84061B419942 + D8332524221920F4350ACF1BC0D932ED00E3936D8910D63D14A16121DC73D610 + D831CC2130575EF49702A713CF1985B70990907190E81E5E665E814500530473 + E508426D65035465DEE8523E0587D62CE17733640AE0EC1E9EA529E02A08367C + C6887C6CDE760E7B3312F801CC587D80E81E1ED3014C1D90CF40E4E891DA454F + 6EF1586711AA2A44BAB6EF239E053F8DFEF3844300D95FC7EA6E5F49D6809C97 + 75006C504AA3B678AC3508F6BDDDF47551652D9465748B05CF5CF10220B58D5D + 209BC201B045AA1BF884B709307DE5AFF49694092EED00920835C25A484B5576 + 87B71BA082F03EFEE0DC30B300CE4008CB2B7987E70DF0C3EED3440098293076 + 4C14F741C5590447C3DB04989AF633BD79E964544BC84E01A60362C6466B3FA2 + 525611EC5920856542484AE40E85773B00536AEE7D9B7F373000577FBF8EA96F + 25E09B21690EFD1ECF2E00E68F8F98CADA73860800330558006711144A396E5C + B985F91F246376FF05643B60F2D23C3A37ED0B0E80540DFFA98B118021843504 + 4B10CE20D804D8B8740A6A1AC9FE41832500168129BEDDE028825D00C206FD1A + B069DF592200CC14888B8E7B12D4FCFAE2C802E908825580894B72E99CB4E91C + 00A91AB5B32B26C54EE2025A43D0BF6E7F37F045702B80693873100E215032DC + B874DB2E045E0024A7000BD01CDE7637F05920ED45707B07F045303CCE5E8435 + 4337604C9F58FEFF2FE02A80A4C23128AEBE41744C4BE5EBED8BCCD1D99E0560 + 4FADC8DA6D760383743D07780E6003A0D5931B94DB019EA57AE601FE0778C3B7 + EA78E749070000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000072A4944415478DAEDDB794C93 + 671C07F02F425768459CC770782DC4C4233B9C719B2626D3788117028A07C1CD + 6D5E6814ABE2142731DE3810891C8A6EBA9938C4A153513665BA44E735AF6C53 + E7B138112C504128D0EB6DDFF56D7D5F4AEFB77D4A1BF4F757ED5B5FFAFDBCBF + E779DFE711FD689AC6CB5C7EAF00AC00F8F9F911FD21925D673DA6DC393810CB + A77E04A1A01DAF2FCDE66E3580F4B9C33D02B0EFF4DFA890C97923B41980A2F3 + F751AF50F3466833003F5F7B844685064A8D168FA4CF9114FB21C4427F8701BC + 02A0A6C84F0557EF3D4583BE0358843B65CFB06AFAFB7A04B1DD106D06E0CE63 + 191A941ADE085E0590649F2272DE8C859128ABAED387D75820DCFE4F86D53307 + D944685580A5B967E88CF923D1A4D6113D2F53F50A0A8D4D4D361124B183D1B9 + 439045A036030028F508013611AEDD972263DE08EF022CC93E4D67268EE20092 + 734B889C376D41046E3C90E2F8A587D0505AAB9FD15214762C1CED5D808599C5 + F4CE25E33CD40140C573350E95DEC433B9D2E2984AD184ECA4F1BE0150DB4479 + 0480AD53971F18EE00A6555B5BE77B005FE5FFE251887EE161DCEBBBFF56781F + 6041FA713A4732C1E31DC0964AA3C3D5BBE59037A970FEC603E42E9BF87201B0 + F5A8528EFC23177C0FC0D34360FD9C31DCEB94BC12DF0368CDF20980395B8BE8 + DDC9D190D6A95B1D60EDAE62E4AF8CF12D800DFBCE7834F49A4F47F916C0E79B + 0AE93DABA678A503D6E41CC3DED553F9012CDB7D8EE8BA55FEBC165B1644A246 + 61FC737B613BDF0720B98323C92ED12F5D230C1DD0A0D221F3E0AFC48336D132 + 5C566D86B85D280ECE3E0AB140E45B005BE68D454DA3C600C016A94E78525786 + 45C7A241BDD10065BD0AE101EF62FBD883108B44589555847D6B6778176045E6 + 116C5C34D902802981E3ED3BBB55DDF8840BDFBE6B90E13DD9C3E70684B43105 + D8BAF7A4EB00A4B6B096661EC5F62423804A7FCE1D85E7F5EB548DE1989A727D + 85C8B4FD45F50688DFA2B8F06CB108218FE37020F533DF0078FAE22EA0D1369F + 977D2D7A8DDF7028AF2F83A438A6C595372F06C1BF2A0C1797FF66B135C60BC0 + DD3D3CE62EB03569AAE1EADB02E083E04C785384FE8103B13FAEB005825D0049 + 5E29D12DAC15593F61DBE2281CBAF523981FF7D7CDAEA075263B383C8603DBF6 + 1DC26974E82A3622EA34BC11BC023070471804410188EF2F41DC3B89DC71D32E + D0525A040A03AC9EA74A3FE13157DE3F8C4270972068E96644BE0876019272CE + 10DDC3ABADAA447A723C86E6BE89C1C3DFC3ED3FEE614A9FC598DC778ED5CF07 + 8B2DDBDA343C73E569DAF8DD4C111C419822885E13F9D90458B4E324D13DBCE5 + 5F1760A37E0E1894158A61A3864049290C08BDD55108F71FEFF0EFB36DDFA94F + 003A858618DEA374C695A535084708838287E2BB69871D03905ABEA66416B600 + 608A45B0D609818181DCEBCA8627482E8981A0BB960BCF962B080DD50A0865C1 + B89078CB79007737309821B0493213C3F3C338007B082C001B3EA8A79F3E7C47 + 7D60EBA14C21EC0D09367C41FC09F408E9691B2031E304D10D0C49FA61642C9B + 62E8808FC70C8356D77C5ED3E1D04F3891BB13B06DDFADAF085D423B1983D2D4 + 8BC096108EBAC1347CCF8EBDEC4F829E04181931C210C01A027377880C9F8D3A + 4A66B8F2E25EFE5C782EA81D0416C21CA1BEBA110155222EBC118A07008921B0 + 6EC90C8CFEA6BB01A0F9CB36433057E9CF2BB731AA47022E969D40486F213A77 + EBD402CA1CC299212197E9D7E052418BF0BC01DC2DF30E68F9652D11C27A7543 + B7B050EE3D7B08EC39AC2130575EF68F0AA589E75A8477083037ED08D13D3C66 + 496A0BC01CC15AB982505359074DB93FBA5724E0E89695FC1643E600EEEEE1D9 + 1A029E8260C3A74514216FCF3914A4CDE507F0C5E6C344F7F0980E60EA9C6021 + C64F88D44F7A4A9B9F7517A1EAA9CCD0F603EAE741A87BDDF0BE4B00392B620D + EB7792C53C0A33006C504AA7B5F9597B10ECBDDDFCB8ACB206EA72DA62C2B356 + BC00486D63172B123800B64875039FF00E0166AFFF81DEB56A9A473B8024C233 + 690D9A9E689C0EEF34C053C2FBF8CCA3B035007720A41595BCC3F306D876A094 + 08003304A2264DE41E54DC457035BC438059A9DFD37929F1A896931D024C07C4 + 4445EB1F5129BB08CE4C90D27229E4654A97C27B1D80292D77DFE6DF0D0CC0D5 + DFAF61D6DB73F1E5885497F6D59D02607EF9882952FF92C30C0116C05D04955A + 89EB576E62F107C9983F6409D90E884FF996CE4FFD84032055CC93A029802984 + 3D045B10EE203804D8999280670D647FA1C116008BC014DF6E7015C12900699D + 710EC83E749608003304E2A2E35E04B53EBFB83241BA82601760FACA7C3A3775 + 360740AAC6EDEF8199B133B980F6108CC79DEF06BE085E05300F670DC225044A + 81EB976E3985C00B80E41060019AC33BEE063E13A4B3085EEF00BE08A69F7316 + 61CBC82C4C1A10CBFFFF0B780A40727212EE565F277A4E5B25F017207D428E6F + 013853EB320F58DDC0205DAF005E01380068F5E426E5758097A95E7A80FF0109 + 7996EAAF4D41090000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006AB4944415478DAEDDB794C93 + 671C07F02F4287B453147530BC36B264D3EC30664B743199C663CE33E04407D1 + C9A62868A6C30D45546270A22C323472283A656351D4A1535137656AA2F31A1E + 593CE6352757810272B5A57DDB777D5BDF97DEEDDB3E2FEDC0DF5FD896C77E3F + EFEF79E8FB137D689A46572E9FE70056007C7C7C88FE2509DBCF08A62CEE2EC2 + 9AA8F7E12FEAC6EB4DB3B93B0C6073EC684100F69CBA8587554F7923741A80A2 + F3F7D1A450F146E83400BF963E46AB420DA55A833B6575489A3D12127F5F8701 + 3C02A0A2C81F0557EF55A145D7012CC2ED7F655815355C8720B11BA2D300DC79 + 22438B52CD1BC1A30009592788AC9BB1F82394D536EAC2AB79237428C09739A7 + E98C456321576989AECB54938242AB5C6E15E1D63F522C9F39027D7A065804EA + 3400805287E06713A1F4BE14190BC778166069D6293A337E1C0790987392C8BA + E9711371FD8114472F3D849AD2587D8D86A2B065F178CF022CCE2CA6B72D9D24 + 500700954F55D85F720375CD4A8BE7DA1472642D9BEC1D000D724A1000B64E5C + 7EA0FF2C605C0D0D8DDE07B026EF374121DE080BE5BEBEFBA8D2F300719B8FD2 + D9095304EF00B6DAD45A5CBD5B8166791BCE5F7F809CE553BB16005B8FAB9B91 + 77E882F70108BD0552174CE0BE4ECE3DE97D001D595E01B0605311BD23311CD2 + 46558703ACDD5E8CBC1511DE05B07ECF694143AF9E37CEBB003EDF7080DE99F4 + B1473A6075F611EC5A35931FC0F21D6789DEB736D6C990FDF50CD4B7AAFF3F00 + 242738F3D30E9A0008B105E4B40C97DBD220E9168CBD3187211189BD07202675 + 1FB627CD12AC03CA1BCBB0E44838A8975AA06C6A4398DFDBF8EEC3BD9088C548 + DA5A843D6B3FF10E802A01CE80DAD6722EFC8BFD02F48FC91E3ED523A44F28C4 + A65DC75D072035C25A98566802F06D4109917599B6BFA85A0FC92B14179E2D16 + 21F049240A523EF32CC0FCD402E42647A3B699DC16A8682A43427184C995372F + 06C1B7261417BF3A67311AE305E0EE0CAFA9BE8E288033E18D1186741F86FCC8 + 032608760112724B888EB0167DF3931EA0F0C6CFFA3F975E94B8BC16DBF63DC3 + 68F4EC675847ADB50F6B0DA1430116ACCB475ECAA718B62514A2003F440F4940 + E45BF1BCD7A9D11D78CC95F70DA5D0A36F003474FB188C2F825D8065D9A789CE + F01A6AAAB12D790E866F0DC6BBA3DFC1ED3FEFF146300ECF5C799A36BC376304 + 4710C608E217C43E3601966C394E7486C774000B306ADC082829851E61B06A3A + C27C273BFC7EB6ED835EF3435070A0FE314A6BB8B3B406E10861788F91F861D6 + 41C700A46E5FE3D6ED464E4A0C07C0148BC07442F8D0389BDF5BDD528EC49311 + 10F5D770E1D97205A1A556017F590F5C88BFE93C80BB030C596585058033086C + F880813EBAF0BD7481AD873286B0B725D8F085D1C7302070A06D80F88C634407 + 18C61DF0C18451D068DBD7B5B51DD8B60F795D8CBEC14186A034F52CB02584A3 + 6E300E3FB0D720FB87A0900063278ED107B086C076027BE525837CB9F05C503B + 082C843942536D2BFC6AC45C7803140F00925B8001687FB3ED10CC55FAEBCA6D + 4C7A751ECE3DFA058183FDD12724C804CA1CC2992DD12C530052914978DE00EE + 96790798BE594B84D0412108090DE61EB387C0AE610D81B9F2B2BFDB50127FD6 + 24BC4380D8F443446778CB36E4DB043047B056AE20D45737425DE18BFE957370 + 78E30A7E3743E600EE0E306C6D01A120D8F0E9138B90BBF32C0AD363F901CC4F + 3B487486C7740053977BAFC4E4291FE90E3DA5CDD7BA8B505325D3B7FDD0A685 + F0D7F6D63FEE12801033BC91392FEB01D8A0945663F3B5F620D89FEDE6CFCBAA + EBA1AAA02D0E3C6BC50B80D40CAF58318703608B5437F009EF102026751F2DC4 + 0CCFB8034822D449EB212F573B1DDE6900D233BCD179A15601DC81905656F30E + CF1B80D40C8FD902D3A74DE53EA8B88BE06A78870073537EA449CFF098623A20 + 627AB8EE232A6517C19903525A21457399D2A5F01E07604AC3FDDCE6DF0D0CC0 + D53F4A31F7CD58AC1C93E2D2BFE33905C0FCF21153997B7F2702C06C0116C05D + 84369512D7AEDCC017EF2562D188A5643B203A7937CDCCF058005235FEFBFE26 + 00C610F6106C41B883E010801961D5B590FD85065B002C02537CBBC15504A700 + A48D8633206BFF192200CC16880C8F7C16D4FAF9E2CA01E90A825D80D92BF268 + E6E68505205593F207206A461417D01E82E179E7BB812F824701CCC359837009 + 8152E0DAA59B4E21F00220B9055880F6F08EBB81CF01E92C82C73B802F82F1EB + 9C45D838762BA60D9DC1FFFF0B080590707C1AEED65E23BAA6AD12F98AB0794A + B677013853EB320BAC0E3048D77380E7000E003A3CB951791CA02B559707F80F + 3CC267EA2E0E8EC20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006874944415478DAEDDA794C14 + 571C07F02F058A4ABDF0A278D0D0234A6CB5A64D3431A904B51E88055B6C256A + 8D15394CB5D8A2965662D46A6934D8C8A1D82AD5A6D51A6D55D456A836D17AD5 + 2B4DD55A35460E1758C0BD97DDD99DEEEC3ACB2CCCECEECCBE6197C0EF1F366F + 775FE6F799DF7B3BEF1782689A46578EA06E806E806E80F68341414426CFDE71 + 5A36DDD8E88158FCE668E65A255D2C9BB7EC005BD226C902B0E7D43FB05869C9 + 089D1EE0D0D9FFA036982423747A805FAF3C80CE6086D16C81C1448946E85000 + 13457E2BB87CE711B4B60A60119AB446A44D1F83B0D0A7BCBAF84E0F70EBA112 + 5AA35932825F00B20B4F1099776BD6745435A86CC99BDB2134AA74589A30CE23 + 4287007C545C416F4D8F87DE6425321F37D4060A3ABD5E1061F18C57111E162C + 9848A707008C36841041841AA50A3929E3FD0BB0BCF0145D9039D90990537C92 + C8BCF919D370EDAE02472FDC8399B2F07EC64251D89635C5BF005905E5F4F6E5 + 3364AA00A0F6B109072AAFA351636CF75E8B418FC215330303A0594FC902C0C6 + 898B7771ABAAD165ACB9591578009F97FE262BC4C89828E7EBDBF76BFD0F90B1 + E5285D949D207B05B0D162B6E2F2ED1A68F42D387BED2E8A57CEEA5A006C3CA8 + D3A0F4F0B9C003907B09AC5F32D5F93AB7E464E00174640404C0922F0FD13B73 + 92A050993A1C60ED8E7294AE4A9606B072E71922A717CDE366700136ECA99035 + E9CFDE9F4C0E80C439FE834D07B16BCDDB1D52010A6D35B27E49C2F3035E445E + FC2E6C2AADC0379FBEE37F80A24FE6A04967963DF9F4C36F811AAC8551DD8298 + 905730A06A21F6AC7D2FB000E458027A5A89F3A60D087F8EC233837ADAC794F7 + 1E23B83E0AE73FFEC376220CE745F00AC0D746C6D24DFBB163CD5CD92AA05A55 + 85654792EC779E4D9E0D0661548FB1284BF98917A143011EC9B00734E8AA0593 + F706411480D44E8E4EAD7601F86A5F2591E4F9CA5E288410DC02649754126964 + A46FFC1E25B9A968D03896C0E9FB47EC7FE3621225CF59A3AE42767932E84803 + FA0C0AB78F99ADEE97181F825F00A67C1B8DD09E21481D958DD4B15992930F8E + A2D07B604F58E8D666885804B7002B8A2A887472D44D8D7600A671E100188AD7 + 268DC1CDBFEE20DA341B31C133BD9E8B2DFB881742EC779EA61DD7C645F004C1 + 45E8F574AF20418065DB8E13E9E42C595786D2BC852E0013278F879132D81198 + 4A487939D3E33CF5B60D8FBDF31143FADAC728ABE37CC107E109615CEF09F86E + EE41CF00BE1E62966DDC8BEDB9F3D1A8A55C0098F016812F7936A420681B0C08 + 53F6C6B9CC1BDE03483DC636D7D7D901142AC7C5CC281BE604E022082D07B6EC + 07BFD4C3967C3F5BC2FC497121DC2D0936F9FDA9C730ACEF706180CCADC7881C + 6333D6ED4671DE22178037A64E84C5DA3A2FB7129262339CE375B6C7DB9C93C9 + 081F118C8143221C89D2D49384DB4378AA066EF2C3FB8D70BF09CA09103F2DCE + 9E803B04BEE49D89BA416021DA22A81B7408A9EFE54CDE01250240EA1250D6D6 + F002B45E6C2B047397FEBE741391C638D45A2F62D8C83E181019E102D516C29B + 25A1511A6CA7A55097E44503480DA10A70BDD8F608512322111935C439E60E81 + 9D830F81B9F37CC97B0448CB3F4CA493B3E28B328F006D11F8420A42539D4A30 + 79D100528FB19E96805C104CF2CA7F5B5099798637798F00B6733C4DA293C357 + 013313A6DB363DA3E0777C45A87FA484B92618436BE7E3E7CDABA43544180012 + 9D1C21003651CA6A11FCAE3B08F6B7BDEDFBCABA26E81E5A903FED104A769DC1 + FEFC343200BE2C016E5CECBFDA09C006A96A6092AFBDA941AC7A29C2ACFDED63 + 920116ADFF9196A39333A1F8D9760024101A154DD0579B05373CC900A43B3993 + 4AA378017C8150D4D6894E5E3400A94E4EB9613E6627CE723EA8F88A2035798F + 000BF2F6D2DC4606A9602A20797692ED1195728BE0CD06A9A8514053659494BC + DF0198B0387FB7C557030370F9CF2B58303A0DABE3F2C8FFAF300BC036320A7E + F89D0800B30458005F115A4C465CBD741D1FBE9E83F4F1CBC956406AEE6E9ADB + C921154C43840BC08570872004E10B8247006E27476E00168109B1D52015C12B + 00F609AEF0C0692200CC1248494A799228FFFE2265839482E016E0DD55A534F7 + 119654308FC2F3E6CC7326E80EC1F1BEF7D52016C1AF006D93E3839084401970 + F5C20DAF104401905C022C406BF29EAB41CC06E92D82DF2B402C02F773DE226C + 8EFF1A89B173C4F703E402C83E9E88DB0D5789CE2914A1C1A1D89250145800DE + C4BA827D6E8FB1A4A21BA01BC003408767CE09BF0374A5E8F200FF03A13073EA + 7A0B8FB00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006754944415478DAEDDA794C14 + 671806F0872252408B52AD04AFD634A91A1BAD69139B9854E35145C4A2061B89 + 56A3450453744D51431A62D456311A6CE4504C3D1BABB55AEBD92AD536DA7AD4 + 2B8D47AC1A956B8105DC7BD99DDDE9CEE02CCB323BC77E33BB1078FF59320B93 + 797EF37EDFCEBB218CA66974E60AEB02E802E80208F5357401B43B80B0B030A2 + 936A765C504D75F8E03E58F4F108E61A892E92CBAD1AC096F471AA00EC397717 + 4E174D8CD061018E5EFA0F06AB9D18A1C302FC7AE329CC56076C0E27AC762A60 + 84A000D829E5B782EB0FAB6172770087D060B2217DEA484446BC22EBA23B2CC0 + FDE73A986C0E6284A002680ACF28127E6BD65494D7E9DDE11D6D10EAF5662C49 + 1A2D1941558015C5E7E9AD191360B1BB1409EE5D062B05B3C5E2176151E27B88 + 890C170DD06101009B1BA19B5F844A9D1E39A963420B905D788E2EC89CE801C8 + 293EAB48F4FCA55370EB911627AE3C868372F2FE8E93A2B02D6B526801B20A4E + D1DBB31355EA00A0EA851D87CB6EA3DE686BF35E93D582C2E5D3DA0740A38552 + 0580AB33571FE17E797DAB638D8DFAF607F055E96FAA420C1D92E0F9F9C193AA + D0032CDD72822ED224A9DE015C35395CB8FEA012464B132EDD7A84E295D33B17 + 00574F6B8C283D76B9FD01A8BD04D67D3ED9F3736EC9597280953B2F123DC35A + 4D2684A20314052099E6D2F38F61674E0AB47A7BD0826B4D15C83A9E8226632C + FE5C71D6FD34182388105480F57BCEAB1A7EF1ECA1C838F609A8374CB0199A30 + ECD551D89BFAA32082AA008BBF39825D6B6607A503983BCF85EFD1378A3DA67B + FC4214411240A0E36CE6E69F50F4E52C34981D410FCF9518425001D45802165A + 87BFEDEB11F326D526BC1404590072E779B3C1801D6BE6A8D60115FA722CFB25 + 85F7CE4B451004D09494118DB3599B0EB300D53E7BC0A56727E170BA307E4872 + C0E1EBCC156C783ADE8AD7FAC6B0C71C2E61683E84A0026C3E50C6BE9EB62E40 + 548FEE186C9F8121E1D3649F976BFBB8B7BBA1679F2838E99691582E8220C0F2 + A2F344F3BCA1A11E25B969A833B6BEA871A509787FDC48DCFBE721D286699036 + 2A4BF2392B0DE5D09C9A89F0048ABDF334DD7C6DDE086210DE08D1DDA3C3FC02 + 2CDB769A689ECFD8F0BD5F80B113C7C04659652178878FEB17CB1EA35CCD4F99 + 7C106208A37B7E887D738E880304FA289BBDE9200BC07C71C154C1C1DFD9D753 + D6792C00531C82D872F06E7B2E3C57812098EAAC88D4F5C4E5CC3BD201E40E33 + 8DB53528CDFBCC03C0D5A4EFFA7B00BC11984E487D37B3CD796ADD1B1E73E723 + 07C01DBE973B307F286F08A125C1853F947612036207FA07C8DC7A92689C5DB6 + 613FB6E7CE43BDA9F5DF33001F4D1E0BA7ABE5B83F042E7CD4C057D0A75F5C73 + 509A7A19B82D84583778871FD86B90F026A8148056DF7CA185872FB0AFCC1298 + 30653C1B800F815B0E5CDBC7BF13ED09EF092A80C041F82218EACCE8561BED09 + DF0C250340EE12D05555A2386FA10780ABC4BD035880968B6D8160EED2BFD7EE + 21F1AD05F8E3C971C40E8EC4EBF171ADA07C21A42C09A3CEEA7E668E68155E36 + 80DC5ABA76B724007F080983E2119FD0CF734C08813B071F0273E7F9C28B02B8 + C7599A649E5FFEF5DE5600BE4BA0EDC5FA0F192842438DDE6F78D900728719A9 + 4B402D08B1F0A200EE799E2699E77D3BC01B605AD254F7A667F3FBB7A408B5D5 + 3AD1F0920048E67931002E28E572FA3D871004F7D9EEFBBEAEA60155F78C28CB + BC28185E3680924B8003E04AA96E60C29B9F3BD1BF6A1E7EDEB88AEC4BD185EB + 7EA049E679291DA02442BDB601FA674DC89F721425BB2EE2507EBA3200D501EE + 01ABF2F7F11EBFDA7B352F000984B6AA06CFEF3662B86109225DBDD9638A0370 + F33C69311F833392A77B1E54481198F0960A87E886271B607EDE7E9A6F9C252D + 661C9E3923C5FD884A092248D920B5955A18CB6D01850F3900534ECFE7B6FC6E + 6000AEFF7503F347A463F5F83CE5FF4F9003F09DE7498B59021C00294293DD86 + 9BD76EE38B0F729031265BD90E48CBDD4DF3CDF3A4C58CC3DE00DE104208FE20 + 48104401F8E679B5003804A6E47643A00892007C8719D26296406A4AEACBA0FC + FB4B201B64200882009FAE2AA5F91E64488B79109A3B6BAE27A01042F3FBD2BB + 412E4248017CC3F1410484405971F3CA1D4908B200945C021C404B78F16E90B3 + 414A45087907C845F0FE3DA9081B277C8BE4E1B3E47F1FA01680E674321ED4DD + 54F49CFE2A223C025B928ADA1780945A5B7040D230435A5D005D002200414FEE + 552107E84CD5E901FE0738F168EA25FF09880000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006934944415478DAEDDA794C14 + 571C07F02F0252503CA8568A8AD136A91A1B8FB4A94D4CABF1A8226A51838D04 + ABD1A202115D53D4988634DA5631106CE4508CF54AACD6AAF16CAB54936AEB51 + AFB41EB15AAD082CB080BBECC5EEEC4EF72DCEB2BBCCCD0C0B717FFF4066C8E4 + 7D3FF37B6FDFDB1042D3345EE60A090204018200811E431020081004E8600021 + 2121B21EA6D97E5E35CDE183FA60F14723C8D8E40DCEAF98DC8A03E4A58D5705 + 60F7D93B703869C5103A1DC0918BFFC060B12986D0E9007EBEFE04268B1D56BB + 03161BD5660455016C94F24BC1B5075530BA3A8041A8375A91366D2422C2BBC8 + 1A6CA703B8F75407A3D5AE1842BB00680ACF28123E3F631ACA6BF5AEF0F65608 + 757A1396268E918CA00AC0AAE27374FEB28930DB9C8A04F72E838582C96CE644 + 589C301ADD2242450FBCD30100561742182742854E8FECE4B18105C82A3C4B17 + A44FF2006417FFA448F4DCE55371F3A116272E3F829D72B0FE8D83A2B0356372 + 6001320A4ED1DBB21254EA00A0F2B90D87CA6EA1AED1DAEA5E93C58CC295D33B + 06408399520580A933571EE25E799DCFB586067DC703F8A2F4175521860E89F3 + FC7EFFDFCAC0032CCF3B4117691255EF00A69AEC4E5CBB5F814673132EDE7C88 + E2D533940158BDE382AC9D8CC568447B0230F5A4BA11A5472F290B20674F9F9E + 7FD20740ED29B0E1B3299EDF5715EFC3E3EEDB30A8D7609424ED75ED09BAF162 + B40B407BD5337D39E6EE9E84E83768580D4D18F6CA28EC49FE8117411580B4DC + A3D8919D04ADDED66EE1B5C6675876F46350AF19D1BD6FA4FB9AEED173410451 + 00520F3599F9C77C0036EE3EA76AF8257387B60ACF9410822A00E95B7EC4CE75 + 73DBA503D8DEBC7FF1214802107BAAB3BAF6E9459FCF41BDC91EF0F04208BC00 + 9A923259879A1579477C00FCA74095E38AFBE7EBA1EFC90E6FA675F8C3B6113D + 86D0E8D1B79BFB9ADDC90FCE86A00A40C6E643D8BE6E1E67077CB0231EE19161 + 58386235524767480E4F56FBCCE349088DA310DD27120EBAE560241581176065 + D13959A73A93C1E006A8E25803C697C6E19DF12371F7CF076E84E4B7D34587AF + 353DF384276F9EA69BC7E68D2004E18D10D5352A84132073EB6959A73AA60318 + 802DFBCB7CEE9FB2A462DCA4B1B0521637C220DB2C0C099D2EF85CA6ED63DE0C + 434CBF9EEE6B94B379AFC10621843026FA7DEC9D77581840EA86266BF30194AC + 4F416D23FB0048071000520C42CA300D5246714F870A433934A766BBDF3C139E + 293908C65A0B2274D1B8947E5B3C80D82DADA1BE4E34801804267CC400B8C2F7 + 7205667FAE3704DF9460C21F4C3989013D077203B8B6B4B24E754C07902F2E48 + 151CF8D5E73E99021F4E190787B3E5B95CD38169FBD8B7A2D0A75F4C73509A7A + 11B83584503778871FD82B9E7F11940B90F9D53E94E67CEA01F0AFC9BBFA63E2 + D409EE006C08A413C8C258E35AF0C89B8F1CD8C513DE1394078181F04730D49A + 105613E509DF0C250140EC1468A8A9C6B6F5A9A833B2C331002D836D81206FE9 + AFAB77913078217E7B7C1CD1F15DF16A6C8C0F943F849829D1A8B3B8764EE13E + E12503882DD2010440AB6F1E58E1A1F33EF7C914F006E042888B8F456C5C3FCF + 353E04E6196C08E4CDB3851704709DEA6839A7BA955FEF4171CE220F807F25EC + 19D00AC01F81ADE420D457EB39C34B06107BAAD35556C802501A4228BC20C092 + 6F0ED3724E75FE1DC03605A6274E732D7A56CE67B415A1A64A27185E14809C53 + 9D9829400098A094D3C1F92C3E08E6B3DDFFBEAEBA1EB60A5A30BC640025A700 + 03C09452DD2025BC20C0A20DDFD37CA73AAE92D2014A22D469EBF1F44E03CAD2 + 2F880A2F1AA04AE21AB02677AF2C80B640682BABA1FFAF09FD2B53716CD31A65 + BE16F707F03FD571959829306BE60CCF46A5AD084CF8DCA94750B2F3020EE6A6 + 2903B020671FCD77A8E12AD2017C75A5F75ACC9E95E4DAA252BC086216486D85 + 168FFFD661B86129229CBDDDD7030E2054E434480048393C9FDBD2BB81005CFB + FD3A168C48C3DA0939CAFF8F1003C075AA935B641FC000B415A1C966C58DABB7 + B0E2DD6C2C1B9BA5ECFF08A5ACFF8EE63BD5C92D7218F206F086E043E082680B + 822000DFA94E6900068194D46E908B200A806B4B2BB7C814484E4A7E11947D7D + 91B340CA41E005F8644D29CDF77126B7C8C7E0FC39F33D01F9109AEF8BEF06A9 + 080105F00FC706210B81B2E0C6E5DBA2102401283905188096F0C2DD20658114 + 8B10F00E908AE0FD776211364DFC163387CF91FE7D805A009AD33371BFF686A2 + CFE4AAF0D070E42516752C0031F565C17E495B5AB9150408020800B47B72AF0A + 38C0CB542F3DC0FF1C5A53EA103E426B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006864944415478DAEDD9794C14 + 571C07F0DF0A54D1A21651291E446D1A35361E69134D4C8B41AD228AA8C14642 + ABD1520B447049B1D634A6D5B64A034123A0625A458D478D9A2ADA56A9A6D5D6 + A35E693CE2D118395CDC657197BD7776A73B836F985D66E6CD5B665C89FBFB07 + 323B2CF3FDCCEFBDF9B168689A8697B934618030401820D4D7100608038401C2 + 006180170A40A3D110BD8976DB19D5144727C6C1D2F7C730D74476519842B915 + 0328C94E520560E7A99BE0F1D28A23741980C3E7EE81D9EE521CA1CB00FC7AE5 + 2158ED6E70B83D6077518A21A802E0A294DF0A2EDF7D0C165F072004A3C501D9 + 33C742F7A86E9D42E83200B71F19C0E2702B8EA02A80B6FCA422E14B7367429D + DEE40BEFEE80D06CB2C227A913824650146065E569BA747932D85C5E4582F3CB + 6CA7C06AB389222C4D190FBDBA47102374190000870F215214A1C16082A28C89 + A105C82F3F4597E54CE5008A2A7F51247AF1A733E0DA7D1D1CBBF000DC9447F0 + 1C0F45C1A6DC69A105C82DABA1B7E4A7A8D401008D4F5D70B0F63A34B73A3ABC + E6B4DBA0BC60D68B01D062A354014075F2E27DB85DD7EC77ACA5C5A43C40E1F6 + B344CF33E62EF001BEACFA4D558891C313B8EFEFFCD7A80E00C96497537A1C2A + B4A9AA77002AA7DB0B97EF3440ABCD09E7AEDD87CAC2D99ABAA78FE8CCFD7321 + B1EF30D89A5EED7B32F49244E9D200A81E36B542D591F3F0C5D2B1B0706F2A38 + E35AC16176C2A81EE36057C64F9208AA02A8BD04D67D3C9DFB7E65E56EB8175D + C6867FB57F347BCCF0E02916411680DCD1B660734D483AA0DE54070B764E8598 + 1134171E150E415180BCD2A3B0BD281D7426D7730BAFB3D4C3F22373811A60E9 + 105E0E0211006EB677399D7E00EB779E5635FCB20523B1E171089200DAADB544 + A3ED8A92C3B063F5026C07D43E38C67E4D1E313BE8F0E8CED3F176E8DDBF177B + CCED751323280E50F1D97C305AA52FE4DDED43212A3A12168F2984ACF1B94187 + 8F48A020262E1A3C74FB784C8A20095050719A68B677F8FE50E103882D811A7B + 16BC9D34166EFD7317125D69303C6296ECF036DA007FBBD643EC1B91EC9DA7E9 + B66BE323E020F8083D5FE9A91105C8DB748268B6CFDD7810B6AD5E88ED804995 + AFC3E4A913C141D95904B99DC0ECF6793FA7B3773E76601FF618E56D7BE20841 + E01026C44C82EA8587F000721F6BDA92432CC063CC1E905495C00230C547C878 + 2B47F467F4D6FA0EE151058360D1DBA1BB2106CEE7DC900F801B6CAC66B31FC0 + F77B6A05CF63960002E023882D07D4F603DEECE10BDFD7175838141F426A49A0 + F007328FC3E03E43C4017C931D4D32D8E46FDC075BD76482BE557A09301DF0DE + F4C9E0F1B6BF2F42C81CA585CC71EDCBA1C15C07DA9A79103DA41BC40D8C6D0B + 4A53CF0277FC3DB86EE0871FD277A8F426A82640F28C296C002904A1F05C5009 + 0404118860D65B21F2494F2E7C1B1401006E09988DCD2C00F3C1055365FB7E17 + 3C8F59020C40FBC5B6433077E9DF4BB720DE31051ABD1761F0C8DED02F3ED60F + 2A1042CE926835D87DCFCF28BFF0C400B8CAFB663754ADFD880310AB693F0CF2 + 03104348181A0FF10903B9635208E83D8410983B2F141E0B905D7C842699ED0B + 8BF7C2963559D06C91061302084410AA60108C4D26D1F0C400B8D9BEE549130B + A033B55D44F9C13382E7052E01B52070E1B100CBBE3B44CB99ED51157CBB0B2A + D72EE100C42A65D76098953AD3B7E93944CFE92CC293C7066C7859007266FB60 + 015050CAEB113D570A023DDB035F373419C1D54063C31303E09680A1B1C10F40 + 6A092000544A750349782CC09275FB6939B33DAA603A404984669D116CF56ED9 + E16503E0667B54AB8AAB3B05D019085D631371786200B1D91E55E0129002489B + 339B1B543A8BC0847F74B3056A73CE1285C7027CB876372D67B44545D201F3D2 + D27D232A2589206783D435E8C0F8D006831AB3E0E88655CAFE63446D00A63CDC + 739BBC1B1880CB7F5D8194618BA1EE8F4438509CAD0E006EB647C52C013975F1 + B5CF3980CE22385D0EB87AE93AF4D327C19F5FEF55162073CD8FB49CD99EB498 + 51980FC0879042108340082BDE2982E513F395DB03180039B3BD5200088129D2 + 6E08164116006EB0212D6610CA48CF78165478BF0866830C064112E0835555B4 + 9C4D8DB4984D70D1FC455C402984B6D7E577032942480102C30941048540D9E1 + EA851BB2108800945C0208A03D3CBE1B483648B90821EF005204FE7972113624 + 6F8639A3E7937F1EA01680F6C41CB8A3BFAAE87B8A5554441494A456BC580072 + EAABB23D414D76A41506080360009E7B725E851CE065AA971EE07F715449EA96 + 7870600000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000065F4944415478DAEDDA694C14 + 671807F0FF8A4841A99662A4D42355935A6363356DA2894935A8F5408562B091 + 68355A6AD1084244AD6D48A3E941034123A0D2B42A1AC51AADF56AABD47ED0D6 + A35E69AA46B13172B8C802EE2E7BB03BBBD39DC519169C99F79DD91997C47DBE + 4886D765FEBF7DDE771E0E03CBB2789ECB100608038401427D0F618030401820 + 0C1006080384017A1080C160A0FACFB93BCEEAA6377A583C96BD3786BB17BA9B + 51587CEEA0018A3227EB02B0EBF4BFF07859DD107A3CC0E173776171B87443E8 + F100BF5EB90F9BC30DA7DB03878BD11C41530017A3FD5170F9CE43B4F93A8047 + 6869732273E6584445F6D204A1C703DC7A60429BD3AD1B822E00B9A5A734095F + BC72266A9BCCBEF0EEA7109ACD367C9C3C3E68044D00D6949F618B5724C1EEF2 + 6A123CB02C0E0636BB5D1261D9AC71E81B15A11AA1C703004E1F426F49847A93 + 19F9E913420B905D7A9A2DC99A2A00E497FFA249F4C24F66E05A8D11C72EDC83 + 9BF188AEF1300CB6AC9CA60F40DECE3FA84EB576871DDBB267E9D40140C36317 + 0E565F47B3D529FAB54B7366EB0740F37C5FB5E5A41FA0D5CEE802C0D7A98B35 + B855DBDCE55A6BABB90B40EDE3076CC681140C1BF01AB6A7EEF19D0F7D657174 + 01F8BCE2375D21460D4F143EBEFD5F8300C0855FB02F19EDF156382DED78E385 + B7B03BFD4759044D00B28A8FA32C3759F70EE0ABDDEDC5E5DBF5B0DADB71EE5A + 0DCAF3E61802C3F71B18ED5F67BAF798884005401A7072B69E78A6007CDD6FB4 + A2E2C8797CBA6C2CBA87E78B84A00B80DE5B60D347D3858FD79457E26E748968 + 781A04450052139ED7E30D4907D4996B317FD754C48E6025C39310640172B757 + 530D38392547B1333F1546B38BEAC6ABEF1DF3FF9B34628EEAF0C6B63AAC3892 + 0236C1811707F6F55F737BDD8A117401D8BCEB8CECFA938E2588EED707C35CF3 + 303C62B6E2F0CBE78FF2878F4864101B1F0D0FDB392429459005C8293B4335E1 + 397D63EA771BE65377C0C4F257F0F6E4B1B8F9F71D2C19938745E3565287E7DF + 792E3CF7CEB36CC7BD05229020021162FAC41824017CCF779666C25B5D741865 + 6BD3D06293D70F04983475029C8C43114260F8B841FDFDD7186FC7B923064142 + 181F3B117B161C2203900EB7B55B7EEA0240DA02271C8BFC005CF108A4ED6067 + 4DF8CBB51971237B0BE1F95283D0D6E440942916E7B36ED003483DDE6C160B76 + 6C58A0B803F822750277DAAFFA39155183E10B3FC01758FCEB0442C86D093E7C + 55C6710CEE3F441AC037E1B1348FB7DCA2437E80879467C0E48A44BC3B7D123C + DECED70D44487F334BB8DE64ABF3878F1ED20BF183E23A82B2CC93C04F4390BA + 2130FC900143E50F41B500DFEEAD965DCF6D81A41953FC01C410F8EDC0B77DC2 + EB31427821A80C020FD11DC1D26443EF473142F80E280500525BC0D2D28CED1B + 33D064A5DB025C0770009D37DB09C1BD4BFF5CBA8994914B515D7314B143FBE0 + E584B82E50DD2168B684D5E4F09DA2915DC22B0690AAEC6FF607052085903834 + 01098983846B7208FC6B882170EFBC5878224066E1119666C2CB2FAEF203703F + B8E0AA64FFEFB2EBF92DF0F4CD4A87548BD0D268960CAF1840EAF1D6FAA81115 + 051F0A00A49AF6FDABA2005A4390C21301967F7588A599F0F20AF761DBC64568 + 6EA3FB668803989D3CD377E83925D7048BF0E8A189189E0A8066C2E3018CE68E + 75A507CFCAAEE7B60007C00765BC1EC9B57210FCB3BDFBE74D8D2D70D5B3C4F0 + 8A01A4B680A9A11EE5054B050052CDDA3D5800E04BAB6E50129E08B074D30196 + 66C2CBF97277D0005A20341B5B60AF735387A706204D78EB0AF7740150B205C4 + 4A0D84B1A1517178C50052139E9A2D306FEE1C61500916416D7822C0E2824A96 + 66C0E9DE013400EFCF4BF58DA88C2C02CD0169AC37C25AEB54153EE4005C7984 + E7B6F26EE0002EFF79058BC76462FD940255BF1DA202204D786AB6000F102C42 + BBCB89AB97AE63F53BF95831215BDB0EC8D8F8034B33E17D565419144020841C + 821444300844009A098F035052175F5A2F0AC02370A5B41BD4225001D03EDE68 + 8B7B0CA6A7A63F092ADE356A0E483508B2001FACAB6095B4366D715B6061DA42 + 21A01C42C7E7E9BB4129424801BA8713835085C03870F5C20D2A0445005A6E01 + 1EA0333CB91B941C90B40821EF00A50881EB6811BE4EDA8AB9A3D394FF3C402F + 80DC937371BBE9AAA6AF2955911191284A2EEB590034F545C95E541566EAF217 + E2618030800280679E3CA0420EF03CD5730FF03F65913FEA0B13091B00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006654944415478DAEDDA696C14 + 651807F0FF526A6DB18258A4D4029198808404212A909008E190A31C15520C0D + 28012B024A69A580681A0389A6A64D21B4056A9433021211E5F0A0E207500EB9 + 620402C5104ADB2DDDB6EC6EBBE7EC8E3B5B663A3BDD79E79D0B9AB0CF9736B3 + 3BD3F9FFF679DF67BBAD8565593CCE658901C40062008FFA1E6200318018400C + 200610038801C40062005D06C062B1104FCADB76D234B5A10353B0F88D61DC3D + 58F45F4DBEF8DC9A018A73C69972633B7EFB1781206B3A429705F8FED44D38DC + 3ED311BA2CC02F176EA3CDED87C71F80DBC798866008808F317E2B387FA31EAD + A10EE0119A5B3DC8993A1C09F1DD0C45E8B200D7EED8D0EAF19B8E6028405ED9 + 71436EAA64F954D434DA43E1FD9D109AEC6D782F63A46108BA0056559C604B96 + 4E80CB173424B8B81C6E066D2E972CC2E26923D023214E370211207FFB1FC4DE + 668301980500784208DD65116A6D7614648D361F80B4CBE7969F40E9B2890240 + 41C5CF86442F7A7F0A2E555BF1D3995BF03381A8CF09300C362D9FD409A0E6FE + 1D367BDF6C0CECF502B666EE0A75490F22922E80159B8E61CBCA692675005077 + DF87035597D1E4F4747ACCEB76A12C777A44382EFCBCBD19F0A638E17178F1D2 + 932F6367D677440443005A5C8C29007C1D3F5B8D6B354D11C75A5AEC1100E2F0 + 4FF5490C1FB3DDBAAF8840052037E6B85D5F0CF069E5AFA6420C1994267C7FFD + BF3A01205A78BE94107401E46E3E8AF2BC0CD33B802FAF3F88F3D76BE1747971 + EA52352AF2675848E16910540148E77C30107CA8007CDD6E70A2F2D0697CBC78 + 3894C22B211001F2B65611E7FC475B8E4500D02E81FAC0D9F0D77E71A35405DF + F0EE64E1FB5515BB7133B114CC732E3CDDA747F8983FE8578D6028006D8D2A4B + 477C6277BC332C1F4B5EFB40D5B95CDDB5D760EE8E8948199C80E4944404D88E + 51A9168108109AF32C69CEFBBC5E6C2FC884D5EE5315604C453FBC326E38AEFE + 7D238CB060C472EA73ADAD77B1F4D06CC4A531E1579E65DBEF4D8CA004214648 + 7A22C9220B101A732C69CEE7961E8E00D8B8E3045588A3EE05183B71343C8C3B + 8C30D0370B83E2A62B9EB764EE10217CEFBE3DC3C798607BF74583504218993C + 06BBE61D5406906BF1D59B7EC057EBE66AEA000E802B1E41A913C4AF3C1F9E2F + 2D08AD8D6E24D892717AD9157A00E926E709BD4F2F5F3D07CD6DE4754702A041 + E0C327A42314BE572870F49F2786202D093EFCFEEC2348EFD95F1E6059C91196 + B4C9711D200650B3045E9F3C168160C775E596838BB5E12FDF46A40E4E424ADF + DEED4159E641E0CE104ADD200EDFBFD700F226A80490577C10DBD6CDD3D40113 + A68C0F078886C07702B7DBAFF8311389FDBB09E185A004041E428AE0686C43F7 + 7B4942F876281500D225D0E6708401EA55EE01E32AD3C2001D37DB01C1BD4AFF + 9CBB8AD92F2E4255F561240F7802CFA6F68E809242D02C09A7CD1D5A4BF111E1 + 5503488BEF001EE0CB3D555400DC121003C821A40D48456A5A5FE1180981BF46 + 3404EE958F165E1120A7E8104B9AF30525FBB1757D361A9DEA9680B403A22144 + 2B2D08CD0D76D9F0AA01A49B9CA3B9C95000A32194C22B022CF9FC204B9AF37C + 07701F5C7055FAEDEF5400DC12989E3135B4E979649FA317E15EBD4D313C1500 + 69CEE717ED4565E1DB02006D4DFAFAF930001F940906649F4B82E067BBF4715B + 43337CB5AC6278D500D225D072AF015BD62F4053ABBA5F86C4007C19D50D6AC2 + 2B022CDAB08F25CD79AE033800ABBDFDF1B20327A900F825202DBD084DD666B8 + EEFAA9C35303C8CDF93545BB5051B84800A0AD693BD3A302E881B0D635A80EAF + 1A403AE76D75B59A0166CD9C21BC51D18BA035BC22C0C2C2DD2C69CC493B40CD + 1278735666E82D2A4344A0D920ADB556386B3C9AC21B0E405B5C0770005C0584 + B9ADBE1B3880F37F5EC0C26139583BBE50D35F89A800E4E6BC9E25C003E845F0 + FA3CB878EE323E7CB5004B47AF34B603B2D77FC392E6FC27C5BB0D0110439010 + E420F420280290E6BCD1003C02576ABB412B021580DC26A767096465663D081A + FD5C2D1BA4160422C05B6B2A5952C0CF4AF7A80ACED7D967D662FE9CF9424012 + 42FBE3F4DDA016411780D6E23A800390868B06A1098171E3E2992B5408AA0068 + E7BC5271EF0378808EF0CADDA06683A44578E41DA01641FC3C5A842F266CC6CC + A173D47F1E601640DEB199B8DE78D1D06BCA557C5C3C8A33CABB16004D711BEC + FEA21C53FF4F38061003A00078E8C945F5C8011EA77AEC01FE07848B39EA9B64 + E3530000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006454944415478DAEDDA694C14 + 671807F0FF0A94A2F528C542296A6AFC608D09D55E9A9854E3AD88520D3612B5 + 46A5566DB5A078B5218D4DDAD040D070A89856455BB5469B6AB587D67ED0C6A3 + 5E69AA46B13122B8C802EE2EEC39BBD39DC1196677DFB9775D12E7F922D97D77 + 98FF6F9FE7E110134DD3789ACB640018000640ACEFC10030000C0003C0003000 + 0C0003C00030000C806E0260329988870BB69F8E9AD6B04129583C7938F3B94D + FAAF265F5C6ED500A5F963A37243BB7EFF173E3FFDC410BA1DC0E133B761737A + 9E1842B703F8F5D25D7438BD70797D707AA8A823E802F050915F05176F3D407B + A0033884D67617F2A7662231A1475410BA1DC08D7B16B4BBBC4F0C4112A070C7 + 9FA2098500059527227233652BA6A2BED91A08EF0D4368B176E083AC91114790 + 0520CD7AC1B653285B361E0E8F3F92F7C296CD49A1C3E11045583C6D047A25C6 + 8922D43FBA47E7ED9F8541FD5EC1B69C3D81B3BD24C1BA1D00E00A20C48B2234 + 58AC28CA1D450CC5849FBB2F0BEE143B5C36375E7DF635ECCEFD41124113C0EA + AA93285F3E810728AAFE2522D14B3E9C822B75661C3D77075ECA473CE3A3286C + 5931312C9030FC73FD93D8C72C771EC9222802085D76CCCC57AC9A16A50E001A + 1F7970F0D455B4D85D61CFB99D0E54AE9E1E1486149E2B39045D006D0E2A2A00 + 5C9D385F871BF52D418FB5B5598300A4C22B41500520DCF64280CF6A7E8B2AC4 + D0C1E9FCC737FF6BE401948497439004082C3B9AB4ECD6541C47554196E60E38 + 59F713FBEF8421D98ACEBBBD7E5CBCD900BBC38D3357EA505D38C3C485A75E74 + A04FFF5EEC39AFDFAB1A2126006F57662021291E4B33D760E1EB2B15BFEE6E93 + 1D3547CE62E3E24C30E191E645EF9424F8E8AE85A916411220B0ED69D2B6F7FB + FC41006A47E067E77CBC313613D7FFBE85419E99181C375DF2FCE6A593F88F3F + A9AEC5EDA472363CF3CED374E7BD0911E42084083D9FE969120558B9E5384DDA + F67A3B60E4D6548C99300A2ECAC922BC3FBC104BDEFA48F675F7ADF5C8AD9D8C + E421F1484EEDCB3E46F93BEF8104218730B2F768EC997B481E2034E8BA8AA3D8 + 519403B3D5A3096074F54B2C00534284F9235688BEC6DC7E1FCB8ECC425C3AC5 + 87E74A0B427BB3138996DE38BBFC9A7200AED53D6E7710C017BB4EAA02604680 + 031022888DC3923943D9F089190884EF17084C0E2584901A092EFC81BC63C8E8 + 3B401C6079D9319AD4EA6BB7FC889D1BE6E8EA8077268D81CFDF755DB14EE0DE + F9A4013D90929ADC1994A61E070E8790EB0661F801FD064A2F412980AAB5B3D1 + DA21BD71A500C64F19C70690422085E7834A207010A108B6E60EC43FECC987EF + 845201C08D802BF0838A1040CB0830005D37DB05C1BC4BFF5CB88E34D73834FA + CF2363681FBC90961C04150AA16424EC1667A09D1282C2AB06E0AAA0F410B66F + 98ABBB03826F361C217D601AD2D253F9C7A410B86B901098779E145E1620BFE4 + 084DDAF61BB61E66011E68DC01636BD2C300421148A505A1B5C92A1A5E3500D7 + EA1D365B10C0D77B4FA902081D816841C885970558F2E5219AB4ED8BCA0E60DB + A63C34DBB58D00D301D3B3A606969E4BF48C5E84870F2CB2E1150190B67DA400 + B8A094DF277A560A82FBDA1EFABCA5A9159E065A36BC6A006E046CAD2D2C00F3 + 8B0BA6CABFFF43150033021C005791EA0635E16501166DDE4F93B67D61C93ED4 + 142FE401D4D6C46F5E0E038804428BB9158EFB5EC5E11503846EFB8D65DFA162 + D37CB4B46BFB61480C400F84B9B1497578D500DCB66F7BD8C40298AD9D9D5179 + F0B42A0066046666CFE0BF51D18BA035BC2CC082E25A9AB4ECD695EC4175F122 + 1E406D4DDB9D817767E604BE45A52411942C48738319F67A97A6F0310760CAC7 + 7FDD56DF0D0CC0C5BF2E61C1F07CAC1F57ACE97F8C1401846E7B4B6343108096 + 11E000F422B83D2E5CBE70151FBF598465A35645B603F2367D4B93B6FDA7A5B5 + 11EB0061C98D8418841E045900D2B68F160087C094DA6ED08AA00820B4D54347 + 400B406E4EEEE3A0E46B6859905A102401DE5B574393827E5EBE5737C0BCD9F3 + F88052089DCF2BEF06B5083105080D4782D084403971F9DC354508AA008423A0 + A7CE3FBF9E07E80A2FDF0D6A16A452044D1DA0B7841DA01641784E29C257E3B7 + 227BD86CF5BF0F881640C1F16CDC6CBE1CD16B8A55425C024AB3AABA17809262 + F6CC8192FCD8FEA1A4016000D4C4F44FC8630EF034D5530FF03F914D2EEA5C7E + A41F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006104944415478DAEDDA694C14 + 671807F0FFAAA8A854635128F5488D69AC21A1DA239A9854E3AD78500D36120F + 0252ABB65A543CD090C6266D6C244810108C55B1AD5AA36DB56A5B513F6863B5 + 5E693CA2688C882EB2A0CB2EBBCBEEEC4EF7056778979D9D7B81C4793EB133C3 + 30FFDF3CCFBB076B625916AF72990C0003C00068EF6B30000C0003C00030000C + 0003C00030000C0003C00030003A0480C9640A789CB9F36CD894860F8E46DAE4 + 78F2374DDACF26BFB8DCB201B6658C0DCB85ECF9EB26BC3EB6CD113A0CC091F3 + F750EF74B739428701F8E3CA4334383D7079BC70BA9936431005585D722E6823 + 017033FA2F0597EF3E85DDDF011C429DDD858CA909E816D129AC089200F41DF7 + 3F0E1BC0ED4716D85D1ECD08952F1EB129076663709FB7509CB40F3DBBF514FD + 5D4D00993B4EEA123E77F95454D658FDE13D4108B5D6067C9A38521602093FEF + 87443446DBE0AA6FC43BDDDFC5DEE49F451114016416972377E97838DC3E5D82 + D355EF64D0E0708444489B36C21FA473C82074F85EFD229BB659EEBF90449005 + C0DDF1F5BBCE840D0070F911BA8444A8B25891953C4A30845078AEA410140164 + 9594236FD9041E20ABE8942ED1B77E3605D72ACC3876F13E3C8C57F0182FC360 + FBF2894101C4C2CB4150044066BE60E5B4307500F0E4851B87CAAFA3D6E60ADA + D7E87460C7AAE901172F27BC148228807FE659BAE5C91D2700CF1D8CA6A0E71E + 1C07E3F361C2D09982FB4FFE5381DB95B501DB9E3FB7060070E199FE0EBCD6AF + 67D3368FCFA3184113C0E6D23F55019C702E4664AFAE18EC9E85219DA7873C6E + D89038FEE73B0F9EF0005C78C47A10151D092FDB32364A11440156159E66E999 + 5F5370028599899A3B60647E0CDE1F9B805BFFDEC592843558F4DE0AC1E31A3D + 3E5CBE53059BA311E7AF55A068F50C131D9EDC79966DBE361A410A8246E8D1B5 + 872924C08AED27587AE6F504183361145C8C531281D4C36A1B4A8F5EC0C6B404 + 70E1FBC6F46EDAC7F89AAF4508420A6164D468EC9B77581A800B9C5D7C2A0040 + ED08FCEE5CD004408A43101A872D4B26F13F7F5954867B917901E1B9528360AF + 71A29B250A1796DD500FA0B6B80EE08A43581CBF1AE91F7E1E74FC636B2592CB + 26A3FFDBDDFDE1FBF8030B87A221C446820B7F30E53806F41E181A6059EE7196 + 0EBCAEE0184AB29260B6BA35018C2E7A031F4D1AE37FEBDB0249232C18B19CDF + 6EB63FC6D2A3B31139B013A263FA3607659997818321A4BA810E3FB0CF20F145 + 500AE0EB3DA755019011183F655C530021046E1CD2E70E0B0ACF071541E0205A + 23D4D734A0CBB31E7CF8662805006BB7FF825D1BE6EAD20104A0E5625B20C85D + FAEFD22DCC1E9A8AF28A5F1135A82B5E8FED1B00D51A42CE48D82C4E7F3B4504 + 84570550B8760EEA1AC49F6B95028442881B148BD8B8187E9B1802770E210472 + E785C24B02646C3DCAD22DBFA9F0B70000AD23107CB1A143AA45A8ABB6860CAF + 186043FE11ECDC302F2C1D100E08A9F09200E9DF1C66E999E7009E6A5C03C696 + C6617AE254FFA2E70A798C5684674F2D92E16501D02DDF1AE0BBFDE5AA00C808 + 10002E28E3F3863C560C827B6E6FBDDF525D0777152B195E314056EE411467A7 + A0C6A66D04B80EA04BAF6E50125E122075CB01969EF97002E881506BAE83E3B1 + 477678D9005CCB6FCE3FD404403EB82095F7D3195500F40808951A08F3936AC5 + E115036CCCFD11A5398B7800B53571F79B98357306FF42452B82DAF092000B73 + CA58BAE5094041F602D4DAB5BD1922001FCF4AF2BF44654411E42C90E62A336C + 952E55E1550398ADCD8F771C3AAB0A808C000120E5E59FB795770301B8FCF715 + 2C8CCFC0FA7139AAFE83240B806BF94DDBCA509493CA03A8AD697B07F0005A11 + 1ADD2E5CBD741D5F7C9085A5A356EADB0129D9DFB3F4CC870B808610430805A1 + 054112809EF9D6007A8C80100229A5DDA01641160017F8ABBCFDBA75407252F2 + CBA0C2E752B340AA411005F8645D294B07D61360FE9CF97C403184E6FDF2BB41 + 2942BB02B40E2704A10A8171E2EAC51BB210DA1DA025BC7437285920E5227418 + 00B908F4717211BE1D9F8F99C3E728FF3C4008408FBA1955087B9747BA9C4BAA + 223A47605B62A13E006D5904FBE0D68CF6FD929401600094B6EB1788DB1DE055 + AA571EE07F33FD10EAAF32B7360000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005DD4944415478DAEDDA6B4C14 + 571806E0770B68C1520DC54257C5D434696B6C507B892626D5A8B52AA2D46669 + 246A09881469B5D8D25AD310631B1B1B0D180595A65ED054ADA9696AB517A9FD + A18D977A4B53358A8D119145167459D8EB2CD339B3CE302CB373D999ED903ADF + 9F256726C3BCCFF9CED9D9050B4DD37898CB620298002680D1F7600298002680 + 0960029800268009600298002680096002980026403F00B0582CEC6BD9B6E331 + D3193D32150533C690DF65312238975B166043D1E498DCC0CE5FFF46B09B360C + 411260E5F6DFF9C158017C77E23A3A3C7EC31064014870E63566003F9FBB892E + 4F00DE40101E3FA519A1F1FE2D3A6FDF3C8C1CF234B6E6ECC6A0818324AFA50A + C04FE9BF159CBDD68C4EA6033884F64E2F8A66666260C223AA1148F8DCBD59F0 + A5BAE0EDF0E1F947C76297ED5B4904C301AEDC72A0D31BD08C200CFFD8D04476 + CC71E3BE2C425400655B8EEA127EE3B299686C7532E1037D10DA9C5D589A355E + 11825878AEE4101401946DADC7C6E2A970FBBB75092EAC0E0F852EB73B2242C1 + AC71CC8DC74544900AAF04C17000C0CB20C44744687238516E9B200AA024BC1C + 822400139C26C157541F4365C9341EA0BCE6274D919B83A7D9D7BAD20A5C68B0 + E387533710A082A2E706290A55CBA6F701E0C2534FBAF1F8D041EC58A03BA01A + 41114069D5116C5E3E4BB70E185B654542623CDE7BB91C0BC795E2CE7D3F0ED4 + 5F449BCBDBE75C9FC78D2D2B66F702E0C2233D80E4D44404E91E3CB5089200CC + CCD364E639807B6E4A1780F19BD2F0D2E44C5CFEF31A8B607BA1841D3F7ABA01 + 571ADB7A9D7BEF9EB31780303C99799A0E4D8A10410E4288903420C912118009 + 4E93E0E1009FD6FEA209E047CF424C9A36015ECAC3228CF4CFC5A8B8D9FCF1E7 + 4659F99FAFFE73870710864F491BCC1EA7BA43F724062187303E792276E71E94 + 0728D97818D56559BA76000120C5212CC9FC008B5F2C65C77C816E9CBDDA0497 + DB8713171A50B3728E452C3C57D12074B67A30D0918C9325978C05888440EA66 + 8B0BB5874EE293824C90F0F1569A093F84092C1E4A0821B524B8F0FBF30E63F8 + E011910198E034091E0EA0C71278F5B549CC07A01E50E172D85B5CC58FBF5F53 + 87EB89951830CC82D4B49450509A7A10B82F845C3708C38F189221BD094602D0 + 5AA403A6BE3E850D2086F0F69895287CE55DDC7636C2563703E9CF26F1E1F9A0 + 12081C443842476B17E2EF26F1E143500A008AD61FC2F6F21CD89D7E5D0026D6 + 3CC502F4DC6C0F0499A5BFCE5CC6BC67F251DFF03D923306E089F4945E50E110 + 4A9684CBE101EC09BDC2470DF0D9CE639A00C81210024442B066A423DD9AC68F + 492170D7104320332F165E1680094E93E085EB0EE2AB556FC6AC03C410C42A1A + 84F61667C4F0AA00AA3F9C8FF62EE9A72CAD007A43C88597056082D364E6C301 + F45802B3B366329B9E37E2395A11EE363B64C32B0220C197AEDB8F6DAB7275ED + 0002C005A5BA8311CF9582E0DEDBC38F3B5ADAE16FA265C3AB0668D6690F985C + 6BE501B8D2AB1BD4849705C85FBB8F26C1C301BEDC53AF09805B02E1A515A1CD + DE0EF7ED80E2F08A010AD7EEC1D6D5796875E9B304C43A402B84FD4E8BEAF086 + 02CCCD9EC33FA868458836BC2CC0A28A3A9A042FFE7C2F0B40BEB82055F9CD6F + 9A00C81278636E0EF3884A492228D920ED4D76B81ABD5185570CB064CD2ED456 + 2CE601B4D6F4AF87B100A482FCFBB6FA6E200067FF388745638AF0F1948AA8FE + 98A21860F3EA8568EBD4E7C39010402B82CFEFC5F93317D96F968A272CD7B703 + F256EFA0C9CC73007667680FD872E0B826006E098497DC928804A10541168004 + 7F67CD0ED454E4F3005A6BD6AEE1A2001C0229B5DD102D826100B61CDB83A0E2 + D78C66838C064112E0AD8F6A69123C1C408F25B060FE023EA01442E8B8F26E50 + 8B101580D6221D4000C2C389414485407970FED42545088603F48497EF06351B + A452847E03A01441789E52842FA66E42F6E8F9EABF0F881540D9916C5C6D3DAF + CBB5E42A212E011BB2AAFB17809A5A53B907FBD717C5ECFF86140318598603FC + 1F675E31C07F9E5C5086033C4CF5D003FC0BA11FA3DB4444E0F9000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_21_48' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005354944415478DAEDDA7D6C13 + 651C07F05F61655BB7C1B21757BB81C13F5071096481B81912B76CA8C0187BC1 + 8D6C61BA682A1944C816A763218BD14483A1D9087B9119E5CD0842343188A2A0 + FE81C6809BA261E0105F986C1DEDDE5FDAB5D79EBD96E7766DAFF7D6A79EC99E + DF3F4BEE2EB7E7FBB9DFEFE9AD9986A66998CFA52100048000A8BD0602400008 + 0001200004800010000240000800012000048000100002A03A40FDE16F23A6A2 + 8BD1C2BECAC7215ABB40A36670943B24C001636E447EF191AFAEC1ADC131EC08 + FD63B7E9AA93C5F040E272E82C390671D17182F7560DE0E34B3761C2E6C08AC0 + 84AFF8A010665326C13E310B8FC4AC86A3E5A70511540338DFFD174CDB9C6077 + BAE07AFF30346ECBF12C74A162046EF8F8D458EF31EBAD31510449000E0AFF56 + 70A56F10A63C1D80107AFFB6C2DECA2CD196951A1E9518826A00D76F5B61CAEE + 0C1B4128BC14045900756D9F63096FDAB901FA2DE39EF0CEB010A48417431004 + A8EBBC489B76E4C38CC38D2538AAF37D9FC2B47D1672D29FE245B8F6A719EA9F + C986E4C5B121115078EABE19589C1AE73DE6743B6523A802B0BAD500DAD82878 + 2EB31E4A1FAAE145E8BE6906D38B79BC00283CE89D9090120B2EDAC59E938B20 + 08B0A7FD02DD525BC00234747C8105E033DB765893BB0A7A7FEC8307DD5B6145 + 4C71D0352E8A82D69DEB8300B8E199274FD3BEB57111C420B808BA453A4D4880 + 5DADE7E843BB3762EF80474DA9B0AE201BEC942D24C2AC6D06DAF66CF203E086 + 4F4A5BE23D46B929EF4F3E083184AC841C385671461C607486C20A907530CD0B + C0144278784105AC8C2F65AF191D1DF703E00B8F4A09C294C506D1D604F8AEF6 + AA74807D5D5F6201604600017011D6C657C39AE472EFB11B7F0CB000287C9481 + F6844FF404E60FC585101A0914FE54D559C858B2343440ADE92CDD5E5718910E + 78E2C975E072CFDD172114E88DF09807E1D24FBF4347FD660D0ABF285D032969 + 49BEA034752F703084583770C32F4D5C26BC09461220FFE93C6F003E84E2E5BB + 60F4B74CD8FBFC2A080CCF0615404010810813966988BAAB63C3FBA06400E01C + 0106606EB17310CC53FAF5722FE8ED7960D7FD02BA0C2D24EB93FCA00221A48C + C4A4D50660D6FA85970D80AB5007F82F3618C1B04C0F7A431A7B4C0801DD830F + 8179F27CE145018CFB3FA10F37948079DC811520A7E3FE20804004BE52823032 + 341E32BC6C80378E5CC0021038029182100B2F0AF0C29B67E8771BB746A40336 + 156EF06C7AF68821DC1DB48A869704D0FE72198C4C0BBF5F2B05404129B72BE4 + B54210E8B33DF0BC7568041C7768D1F0B201708E00024085AB1BE4841705A879 + FD24FD4E6345443B0027C2B0790466FE714A0E2F196010F31E90DB65E0050807 + C23C30243BBC6C80B74F5CC402C08CC096A2CDEC8B4AB8084AC38B0254371FA7 + 3B9BAAC032897704980E28DD52E27945A50411A46C90E63B6698ECB72B0AAF3A + 00532EF6735B7E37300057BEEF86EA4C23BC9AD7ACE82B7549000363BE1168F9 + F06B2C00CC0820807011661D76E8B9FC33BCB4B6017664EFC6DB01554DEFD35D + CDCFB200B86AFD7BE97E005C0821845010E12088021C6ADA0EC35378FF180A05 + 80109892DB0D4A11240198C77D7B40DB47DF60016046A0BCA4FC5E50FEFD45C9 + 06A904411060DB2B5D7447730D0B80AB361ECD80CAB24A36A01082EFBCF46E90 + 8BA02A4060383E084508940D7A7EB82A09411600CE11400073E1C5BB41CE0629 + 1541F50E908BC0BD4E2AC25BF907A1686599FCEF0322055077AE086E587AB0DE + 335469176AE14061FBFF0B404ABDD672024EED3746FCFF870800011001F8CF93 + 734A7580F954F31EE05F1BB7FBCCC093009F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006984944415478DAEDDA095013 + 571807F03F162945AC38A0026AAB68C5A22855CB29C8A5A860B542812AA2D4AB + 1E33B55674943268D5763CEA5544BCAA6311917A81DC8470292205452B285205 + 8A1C72C8699064937413262B42A04A92DDB4F2CD306F1F9BB0EFFBBDEF7B8119 + 548442217A12DF1D4BE9D91BDF308C3ED4C152A7F1A24B1545FC7C1559007E5E + 61AB708093B1B9401F558521283D4048521E5A89B6352A0241E9012E5D2B04A7 + 95AB3004A50748C82942730B4121705A09AC9C3D116AAA2A72419019804B28F6 + 2CCC7E584E02701586A0F400F925D564C2BCCE082F7858E96C223382DC00D61F + 8E957BF2FBD6CC426975039A38DC4E087CF2B18DCFB93223F418607D305BB8EF + 6B7B70B802B927DE3E1A440973385D22D435B66019D90E9AEA7D7B84A0F40002 + 011F4DADC26E119E3E6BC64677337A01D605B18407563B52001B8FC4C93DF9DD + AB6622BFB80A11998FC43DDF55F00902E45AE805587B304618F8CD6C85578028 + 446D1093F9903C106BA4DE6F6DE1805C0B3300751C42E1009228A97886D8EC62 + 711BB48FBABA06E601FC8F27D006A1DA570DA386E950F382A272FA0156EF8B12 + 06AD77A1B502DA47555D33F28AAAC50761C69D22906B79BB0044F18227407975 + 234E4666320F40670B8862FBF219D4B55F701CF3004C0623002BF75C111EF59D + 878A062ED3F963EBB118906B611660E76916AD49FB2D71641660D94F17842736 + BB294505F80745825C0BFD0041BEAEA87DCEEBD1FBFF77004CB60023003EDBC3 + 8447377B2845056C397409A7FC3D9901508633606BD065E601F68424D19AB4AF + 9703B300DE01BF0983FD16A2BA89F916F03F148E33DB16F5023002505EDFD602 + 07CEB1694D7ADD97F6D4F50F877FA71F60A1DF29E1F180C51400931170F01CCE + EEF4E905A01D20D06F112A1BDACE80C3E1C9B426BDC6DD8EBADE1118463F80E7 + A6E3C223013E140093B1ED4008C2762DEF05601480C916500A0026A317401900 + 7A5B80C1501880ABCF862E6FF61D6C086502E055157479FFE2A9BD5DE2FC2BC0 + 74477BA9F752EE96291580ED84A152EF25B2D88A03F8C5DF07354AF0D7206300 + 87BEF7416D732F00D3F93307B07FCB62D473F84CE74F3FC02A2F67786C3CC674 + DEAFC4F9DD2B7024249A3E00650CDA00FE4BD10BD00B202340E0AE2D4CE72053 + ACDDF4A36C004C27208F9009E0E04E5F08C8D7F089B6CF7BBE40003E5F00D57E + 03F0A2B116E30C4721F75E014CC61B223B371F534C8C7033E74F984D36464A46 + 0E6C2D2723293D0B0ED6A688636760A6BD25A212D2E132C31A97A2D998EF6C4F + 8DA11763B1C07516CE9C8F82B7870B4E845C86D12453DCCDBA817E7AA3515FFA + 40BC061EEFE5BFE51004016EBB398F9C13C4CBDF4D1E1416C91740F2305900AE + C6A7618E93CD6B014CB1B042667A1A26985A202723FD150051F2EDD7D41180CF + E7A3F0F1DFB201ECDFB1A1D3EE77052049FCDACD5C4C3533A10058A937E138CD + AC4B80F08804B8CF9D41019C0EBB8A259E73C40056363648652753001A43C7A2 + A1F81E0520DA9CF609779C2B0480E013507F5F1BCFEB6A30C16874A79D7F5300 + 49E2D200EC1CEC9018CF82B9B50DD293D930369D8A5BD753A402F0084965FC8F + 009CE73823E27224A6D9DB81959088C996D6C84C4D86D6F08F505374BFDBFE97 + 3B80E4611280A6DAA754EFABF6D7416BFD53BCAB3504CD35E5E8D37F10B8F595 + 50D3D24563650934B5F5D15C5B0EB581FAA82F7F0C2D7D03F1A8AEF301EA9F14 + A2BF9E019A2A1E4363C848F15C536F1479E8155000D39D1C11131D070B1B5BA4 + 25B130C9CA1659A9AC4E15D07EF7452133C0DEADDF76EA7F6900DD558064E725 + 6357879F6414EDFC32AFCFC5A3C77C679C0D7F09606D670F7642024CCCA7222B + 3D1903868D456D719ED4FE17906B7E54FC44BE00A2E445A1AAA98D96BAEE013A + 9EFED2005C9CEC7021220E6E736752E399B02BF0F69C478D474F9F87DB17F371 + 2E341CCE9FB9203A320AE6D3EC90C64A80A9B51D32925952FB9F20BF8A4ACAE8 + 0190B4C03B64E937D794894BBFA5B60CEA0375D154F5445CFA9CEA52680C1A2E + 2E7D4DDD9168AE2C7AA505EA4A0BA1A16B202E7DADE186648FE7533B3F70A431 + AA1EDEC6E0319F88C7010626A8C8CB84DE3873F128ADFFE50AD0BEFF45D1E73D + 2DB436D6BCF6E7BFBD8D05E293D2E1E4608DA8F864F1CE4B46C9CE875E88C202 + 37176AE77F0DB988AFBC5CC5152039FD4500E5F97F407BCC9436808FC9F17EB6 + D4FE971B40C7FEEF0820ADF72D4D2721ED7A166CAC4CC14EBB2115E04A7422E6 + 394F7F2D80A5DEEE083E198A11C666F8EBF675E81B7D8AE23B373062A2051EDD + BA26B5FF45DF9309E06D887F000DA516EA45E59D4A0000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Delete_02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006974944415478DAEDDA095013 + 571807F03F1611452D162A20B61EA858AF52655051901B34E005DE6845ADD6D2 + 198F7A8C588F5A75A6562D5A0EF12A631950441005416EC552B0D25215141839 + 04227738428090A3D960224A826892DD50F2CD302F9BCDB0FBFDF6FDDF0B33A8 + F1F97CF4E65253017401A0A6A626F5DCF6806452E4268CD0C57AC749C4BDA8BD + EFEFE8B24759004E6CB45238C085982CA08FBA4C083D1A2028311BAD9CF67B7C + 5F841E0D107E2F1FAC56B64C083D1A202EB310CC668E1881D5CAC1A6799FA35F + DF3EDD465028009BA3D8B5F0411E5D00C09609A14703E41457091A6EEB8CD0D2 + 864D34936E219002B0DD3746EECD9FF49C8B92AA7A34B2D89D10B882CB3634B1 + BB85A010806DFE89FC935FDB80C5E6C9BDF18E554F34CC624945603434638320 + 0E83FA6B48BDD91E0DC0E371D1D8CAEF12A1A29689DDCB66900BB0C5379EEFFD + 8D9D1860977FACDC9B3FB6D909394595884C7F26CCBCB4E2723838E5694F2E80 + A77734DF67CB3C85CF00A28818DC4ACF132C88D512CFB736B3E0BB95460D0083 + C5513880A88A5FD422E6419130061D8BC1A8A71E60DFB938D220D4FB6AC068B8 + AEF838B7904E3EC0E61337F97EDB9D499D011DAB92C14476619570214CFBB710 + FEDFB9F42E00A25ADA78A05735E0C28D74EA01C88C00513F7EE5207EBDF74C2C + F500541625001B8F45F003762EC48B7A36D5FDE3E0D95B38BB6B11B500470213 + 486D7AEF5A3B6A01D61FBDCA3FBFC74D2966C03EBF1BB8E0B5847C00BF9DAEA8 + 6992FE15B557015019014A00D61E0AE107EC59A61433C0EB743802F7AFA00640 + 19D680837E11D403FC1C94486AD33BDD6DA90558BDFF12FFCCDE55A86AA43E02 + FB4E87E2F7436B54009400D0EBDA23E01D92446AD35B57D8885F1FF2BD4A3EC0 + 4AAF8BFC7307BE14035059074E8520F8E83A1500E9003E7B57A3BCBE7D0DF00D + 4D26B569CFA5D6E2D7877D2E930FB06CD759BEFF010F310095F5837710AE1CDB + A802A01480CA0828050095A502501480ABC70EA927FB0E35863245A0AD3257EA + 67AFFD765C2ACE5B01ECED6C249E4B795806659A0156530C259E8B4F485201A8 + 001405F0EB3E0F542BC15F8394019CFEDE0335CC5E08B0D99D466C834A0520D8 + 06E11F144D1E80321669003DA954002A0019017C7EF2A2BA0799EADBDD476503 + A0BA0179944C00A78EEC044FF0192E872B7C8FCBE381CBE5415DEB43B434D440 + 73B00E1A6B2AD06FB02E9A6A2BA0F5911E1AAAE8E8A7AD87BA8A120CD435447D + C573F4D7314443793106EB8F406D690106EA8F426D491EB4878D461DBDFDB8BA + E829B4878F158EBA23C7839EFF089A7A466096E509AFDDC669FF678CB6B657FF + 94C111BCC7EE704C7C86F3F25E897A9A5F285F00D1C54400138D8D90F5381726 + 938CF1202B07A626139091F908D3A74D464A5A26ACCCA72131F53E6C2DCC109B + 9406271B73DCBC7D172E8E96088F4EC2629A8D780CBE168395AE7371E94A14D6 + 2C73C6F9A0084C986A8687F7FF9408C079792C0D80CBE522BFE0B96C00BF1CDE + D1E9E94B0310357E2F230BB3A79B880112EE64C06ECE74A900A1917158BAC041 + 0C1078F926D62E77790D40CB600CEA4A9E7602201E4EC786DF3C56080087CB11 + 4EFD264635A64C18D3E9C9BF2B80A8714900A63367213DF52EA698CD44665A6A + 9700A219F2BF02986569893B49C962800186E3515FF4580CD055FEE50E20BA98 + 088058FC2465FF4D0051E3A2515AF6250158DB5A23FE76026658582235390993 + CD66E3EF3F52DE0A40344F94CC00C70F6E7BEDE993014034BEC17D9170A4B9D0 + 10197103736CAC9110178F69E61648BF930CED4FC6A2B220A7CBFCF304F7FCAC + A854BE0044F344BD09A03E4817AD7515F860D0C7686194A38F606CAE2983E610 + 7D3456964263C830B01974E128DAF698E585D0D4FD1475A5F91864301A8D2F0A + 30408FD80E9F081A34162C7AB94280B0ABE198477342E4F528CC98632D04983A + CB0AE929F1E2CC4BCA3F47F053585CA61800F5813A686654BCD3F61715970A67 + 078B6E6D7FC40C38131886554BE72330F815808D830392E2E260326336D29213 + A03372226A8AB225E65FAE001DF3FFBE0092F67F67476B8445C6C26D811382C3 + A2B0D2CD19972E5FC79AE50B7131E81AD6B9BB2220F00ADC962C4648702868F3 + 9D11197E1DB36DED91141B03736B3B2184A4FCCB0DE0CDFC13D5A7BF365A1BAA + C5FB3FF1CD8F594D174E7966751934B4F5C1AA2A157C03341047A0A9F239B486 + 7E2A8C0031F599E54414460B23404C7D621C6860249CFA9A06E3C02C79027B47 + 3BDC8A8EC59051935199F70F868EFB02F49CBFA033CE142FB2D361F099294A1F + 6748CC3FF19E4C00BDA1FE03783C74EA8A054E3A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006084944415478DAEDDA795013 + 571C07F02F2D2255441DD18232B51EAD0EB59651C75B04443CF0A8B5957A56AB + D55A3AE351D11106B5569DA9558B96C3B3652CE32DD683A3C8A142293AD2A1B6 + E24131207700C31948B29BED6E709714082249F68592DF3F6F77DF4EF6FD3EFB + 7EEFC124160CC3A023878519C00C6006D0DD6961A1B36FE3914451E49CFADB61 + E5B461DC582CDAFA192DE6A80FC0FED5AE460738119D0EBC62A91742BB06088F + BF0F05553FC6B622B46B8088E44CC8154ABD10DA35406C9A04D5B59480205750 + 5833F33D74EEF44AAB118C0AA0A48CBB16DE7D5CC00228F54268D7001939256C + C2AAA608752AACF1726E158228001B83A30D9EFC019F19C82DA940955CD90481 + 661F5B59A36C158251003684C633073E77875CA93678E2DA51C1252C97EB4490 + 55D662155B0EDD5EB3D239D8760DA056D3A852302D22143FABC616EFB1E202AC + 0BBECE047EE121006C0E8D3178F27BD74E4746B6149753B33435AF2B688AC241 + 9FA9E202F804463241EB661A7D0670C1954154EA6376412C6DB65F512B47F07A + 2F320032396574003E720A9F21FA6EB6A60CB44326AB200F10702C563408CB4E + 5618E468279C3F9214880FB076FF552664E32C516780764865D5B82F29D12C84 + 297F4A10FAD5EC8E05C0459D4A8D82924A9CB8924A1E40CC12E0E29BCF3C8563 + FFC331E40148061180D57B2F31477CDF4761859274FED871340A4737CF230BB0 + 3B2C4ED4A4FD977B900558B9E73C737CEB872631030242AEE084DF47E20384F8 + CE47598DEE3F513B1400C9122002B07CE769E6C8566F9398017E872210B66D21 + 190053580376845C220FF05D78BCA849FB2E99421660E9B693CC61FFC528A922 + 5F020187CEE1E79DCBCC0044000ACAEB4B20F07482A849AF5FE82E1CEF0C3E2F + 3EC022BF1F9963DB3F110048C6F683A7716ACFA76600D10182FC97A2A8A27E0D + 083E97286AD23E0BDC84E35D4167C407F0DE7C9409DDBE420020195F0786E3EC + DED56600A200244BC06800F3576CD2D9D9A9CF1098D20C50491FE9ECBFF8D33E + 9D382F0498EAE1DE6CDF8D7BF92605E03ABC5FB37DD7E312C401205D02C40148 + 8619C00C2032C0DA255EDC36881F0256A0D404FE1B7CBE0D22343C523C00530C + D100DA539801CC007A02047DEB473A07BDE2CB2D7BF403209D8021422F8083BB + 7DA166EFA1295A738D56AB41D36A5074FDD7E234CD687ECA46F1FD747DAB62CF + 29BAE11AA3668473EE5EEEB92AAAE1ABF5BA3A8570CCF573CFA49EF7F39FCDDF + AF52515AF752506A9D73F7F0F773F13053625800FE613C003F981701680F9A3B + D64EBEAD007CBF2E00EEB9994F9EEA07F0FDAE4D4DDE3E17965DBBA3AEB20C96 + 36BD502B2B46675B3B549614C0B2BB036ACBF26063D717E5C5B96CDB0FE58539 + E8D2DB11954539B0B5EF8FB2DC2C74EDF306CA0B9EA047DF81287DFA183D1CDF + 4269F6434D2B953C80ADE3503CCBFE1B9D7B0F404DE13F3A01EAA11A126E7C6E + 1400EEED5BDBF6428DAC14C39D06E36E7A0646393BE176DA5F1833F25D24DF4E + C7C431CEB8919206D7F1231177F3363C268F414C420AA6BB8FC7D55F6F61F634 + 17444426E0032F779CBA188D45F367086DD899AB58FEF16C1C0FBF04A711A371 + EFCEEF0240E3E9AF9DB08A6A3A1BFF37005D1D06A33CF7E14BD5BFC101B4EB9F + 03A82A2B86F3B0212F04E013E75B3EF1D6008C1A3701A949B7307CF438A4A524 + BD54FD73A137C0BE1D1BFEF3F6C500E0125FB5649EA69DE0E2829B0989024097 + 7E4351C1AE0DADA97F353BE6ACEC3CC302F0AB7F6B00E293EE60CAA4D17A01B8 + 4D714354640CC6B9B8E2567C1C9CC74E447A6AF2F3B7AF6AB1FEB95D4892932F + 3E00FFE61B035C8B4DC22CCF493A014E9EBD8665DEB30480C361173077DE1C5C + 381F010FCFA9888E8CC68809AEF8E3B71BB0751888A227192DD6BF41011AEFFF + FCF6C7035876B383A2BC18AF76EB8DEAD27C58F5B067B7C37C58F7B44795340F + 563DFBA246FA54D8FE6CEC07A0BA48026B3BF63C2F135D5E1FA0696D1C06B18B + DD23583BBC8DEADC0702C04CAFE9B8FCCB358C9DEC86E4F8EB1835D11529890D + 3FCB69AEFE0D06D0B8FE1B03B475F53F7739160BE67A36BBF8F13360F1823908 + 3BD500E0EEE989D8A82801A0D79BEF409A75AFD9FAE7AEE905D011E25FC9F266 + EA066E4E790000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005C94944415478DAEDDB794C14 + 571C07F02F06C1D6A3A4AEDA28DA2B4663B4256ABC0FC4050F30ADB5956A3DAB + D55A9A78543442106B95A4D6030D87674B2CF1AC5A0F5C8A5C1EB568B0B1B69E + 5416AA2EC8A2CBB9C0EECC4E77586718604791DD7D6F09FBFBE7CDEC7B61DEEF + 33EFF706B2831BC771900B373737D9BEE055BBB96D617351A267413BBE8D4EC4 + E14D8B6427FBDC1C6D01A09DB8348803B4A47001B8005C00F60758B12B83C826 + D8EF4D05164CE8CFCFA5D977C361005B16F93A1C609FEA3AD0C6DD2684160D90 + 987613358C658ECD4568D100C72FE5405F63B009A14503A45C53A3A28A1111F4 + 350C164F7E1F9E6DDB3419C1A10006C6B17B61F63D8D19C06013428B06B895AF + 35276C6C8C506DC4E2409F262110015811ABB27BF25B4326E181B614E57A4323 + 04D67CD9B24A4393101C02B03C3E8DDBFAA51FF40693DD139746299FB05E2F8B + A02BABC2427339747CC583EC1F43A4004C2616E535DC73111E3FADC0EAE06164 + 0196C69EE3A2BF528A00ABE293ED9EFCA62513712BAF0827B3EED7D6BC5CB00C + 83ED21FE640142A293B898A5931DBE02F8E0CBE06CD63DF386586CB5BFA64A8F + D865817400747AC6E10042E4173C852A3BAFB60CA4A1D395D20788D893420CC2 + BDAD07DEF55688E777D51AF2004BB69CE6E25604115D01D228D255E0A65A5BBB + 115EFE4B8DF86FA6B42E003EAA8D2668B465D8772A8B3E00C912E0E3BB2F02C4 + E3F09DC9F40168061580459B4E70BB423F4441A98176FE58B7FB2C76AF9A4A17 + 6063422AD1A4C3E729E9022C883ACAED5DF3B153AC8088B853D817F6097980B8 + D069785229FF2B6AAB02A059025400E6AD3FC8ED5A13EC142B206CC77124AC9D + 4107C019F680757127E803FC90984634E9D059E3E902CC5EBB9FDB19FE19B4E5 + F44B2062C711FCBC7E8E0B800A80A6C45202D107D38926BD6C869F78BC3EF628 + 798099613F727B22E78A00342372FB411C88FADC05401C20267C360A4B2D7B40 + EC910CA249874C1F271E6F8839441E807F492A3E72BE0840331CF696D8B4F92B + 653BDB76ED0367023016DD95ED3FF6D366599C1702F82BFDACF665DE78540F80 + 6609F000BEEFF5B03AEE5C6A3A19009AE1027006005709500CE2004B6605F28F + 41A702303F06119F98440EC0198318404B0A17800BC0468098EFC368E760537C + BD3ACA3600DA09D8236C02D8BE311426F31896B1FC6F106B3281654D6058CB97 + A22CCBD5BEC8C408FDACA5359ACF19B6EE33CEC489E7FC58FEBA46A6EE8BD5EA + EA1AF198EFE7AFC93CEB177EB630DE68642463191824E7FC18613C1F7772D4F6 + 05102E2600089379118074D2FCB134F9E60208FD7200FC757372FFB30D60DB86 + 958DEEBE1C803479CB9867AD798C706C0D806970D7F884987AFDF20016A8BA84 + 1B9E3B04A029CB5F0068B8FCAD0148EFBE1C80DCF297266C641AAF468701B4EB + D41995BA6278BEA640B95683F6AF774399B9F5F4EA868A620D3A28BAA3E4F103 + 7878BD01BDF6215EEDE28DB2C27CB453F44279412EDA77ED85124D2EBCBABF83 + C2DCDB50BCD517C57977E0E5DD1B45EADBE8E4DD174FF3FE816797B75159F06F + B3EADFEE00D2FAE701CA9F3C864FFF3EC8BE7E0B837DFAE1CAB5BF3174D0005C + BA721DA386FA20F3F235F88E1884E4F4CB98E837426C8F27A5E3A3403FB13D70 + 4C8599D326896DC2A1D398F7E914EC4D3C817E0387E0C6D53FC4045FA6FEF9B0 + 1960F3BAE5F5EE3E09003EF185B3A6D603F050F44465A1FAA5EADF649EF3FDBC + 87F60510EABF29006917AF62FCE82136010C1E3E121733D23160C828FCF97B66 + BDE5FFA2FAE7F71D75FE23F200C29D6F087026E522820246CB02EC3F7C067382 + 8344809D09BF60ACDF38A4A69CC3A011A391753E035E3D7BA3E4414E93EADFAE + 000D9FFFEE1D3AA34AF77200A77FBB802913C6C802486B5F00F09FA0C4D9A464 + 0C1FE38B0B69A9F019360AD99732E1EEEE0E7D55B55500A1FEED0660EDF92F05 + 90ABFDD4F357A01C3B5416E0C8C9144CFF20E0B900CAC941509DFA15CA007FA8 + 92541838D21757CFA7A2638F3E789277B3AEDEADD43FFF994D00AD21FE07048F + 75EA7822C99C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006674944415478DAEDDB095013 + 571807F03F14810EC850C5D1B1B64AADB45A0F465A502B2A087820B59E54EB59 + 2DD6D2198F8A8E508F5A75A6D4031D0E2F5AC632A2A8308A08E554410A8E3858 + 2B5AA80245831820094720C926DBDDE0A621244849B21BC67C33CCDBCD5B78EF + FBEDFB1E93C9C6822449E80A0B0B0B9D7D815B4F9047BF5B8DFA6619B88EEF23 + E2712E3C48E764BBCCD10CA007C0E1D095108AE55CE7CF1D00D789AB07EB00BD + 29CC0066003380E101361FCF6565131C35D4096B668CA6E7D2E3BB6134808341 + D38C0E109B5602585AE985D0AB01E2B3EF4342B4CFB1A708BD1A2029BF1C6289 + 542F845E0D90515C81E656428520961058377B1C6CFA58761BC1A80052C2B87B + E1ED321E0520D50BA157039456F1A984659D11DA6458E7EFDA2D0456003647A5 + 193CF943C1B350CD17A1492CED8420A7866D6C91760BC128009B62B2C9435F79 + 432C55183C71F510D1098BC53A11048DAD584B9543DFD7ADD97D33C416804221 + 479384EC12A1B6A119DB0227B00BB0212A938CF8DA4705B03526DDE0C987AF9F + 89D2CAE7B854F84859F3BA424E103812ECCB2E4070442A19B961B6D157001D74 + 195C2D2CA336C43AADFD925631A236FA7303201013460760A2AAA60169B72B95 + 65A01E0281887B801D27335883B0EA638DE1439C54E77F55F0D807587F30858C + DE3C87D515A01ECF05CDB85FC1576E8405772B10F36DC0AB0540479B4C011EBF + 11B1970BB90760B304E8F8E14B3FD571D8B174EE01B80C4E0082C293C9E3219F + A24624E53A7FEC3E711527B6CEE316605F5C16AB4987ADF2E11660CDFEF3E4A9 + ED0B4D6205EC88BE8CD8D045EC0344872C407D0BF79F0D9A04009725C009C0AA + 3D09E4F1ED8126B102428F26216EE7126E004C610FD81D9DCC3DC04FF1D9AC26 + 1DB26C3AB700CB779E268F857D0E7E13F725B0E368227EDDB3C20CC009004FD8 + 5E02110939AC26BD7189B7EA784FD479F6019686FE4C9EDCB55205C065EC3A92 + 8033FBBF3003181C60C1EA2D3A3B6D077F80C8B0E578266ADF03A21273594D3A + 78B197EA786FE459B4F1EEEBBCF6E22F0774E2BC14C0D7C75B6BDFB53F9E2266 + D76A150097413F25366DEC9B5AFB32B372CC00AC007059022601C0659801D806 + 58BFCC9F7E52D4A400CE850721263E953D00530CD6007A539801CC007A0244FE + 18CA750E7AC537DBF6EB07C075028608BD008EEC0B8182BA464EB47F3344AE50 + 402EA77E2C6D40CA5AE0ECEC8CB2B272B8B88C4069E9430C777141D983077019 + 3912774BEE629CEB38DC29BE83F16EE35154780B1E13DC7133FF777C3C792272 + 736FC0CB6B8AAA4D4BCB848F9F2FD2AFA6C377A61F525352E11FE08F4BC99731 + 77DE27B8703E090B17CD47C299442C59BA58D5C6C69E56CD5946102088FFBEC5 + F2B0BCC2B0005259FB67810C80451F3B48C522585ABE06A9540A89953DAC2422 + C8ACFA8268A907ACFB42DE2AA45A07C85A1A20B3ED0F34D5526F271D216BAE03 + 69FB062CDA04CA56227C06856D3F289AF9B0B41F8036010FB01F084248B57603 + 2013D528CF6582A7543B887AFD09AC1C8740CCAFD40A2097CB51FEF81FFD000E + EFDDD2E9EED341C8DB21642F40E841E901DB27217F71CD8B96BA8639667E879E + 281384C65DA391890EFDCCDFD51C9350DE1CF58435CF8D02C0242F9793CAA7B8 + D407D404A05F23156497006D6D920EE36A03D04C5E1B00738D490030096B02D0 + D7D263EA02A0FBDB93EA988C2E00A9DAB966FD1B1C80194CDBF2EF0A407DD29A + 77BFA7004CBF2E00662E7A031CD8BDA9C3DD67006C1DFAA3A9BE16360E4E6869 + A8855DBF8168E4F360E33810CD753CD83B0D86B0B61AD68E83D0F8AC0A0E8386 + 2A5B5BA7B7D1505D06C7C1EF40C87B4CED65CEA8AB7C08A761EF2B5BC72123C0 + 2BBF877EC346A3A1F24FD80C70464BCDDF3DAA7F0535E747954F0C0BC0DC7D06 + C075F47BB85D528A0F5D47A1A8F81E3CDCC620BFA804933D5C919D770BD33DDD + 919E538099DE93546D526A0EE6FB7BABDA3317D3B074C12C557B2A3E196B97CD + 53B6EF8EFD08F76EE577485E1B80B6FAA7576145D553F601AE151463DA24B74E + 005732F230C7CF5327C0E97357B022708E0AE058DC058C759F88E2823CD8512B + 45585DDE01E065F56F5000CDFAB7B2EF8F56C1FF0348F9ED0602664CD1091077 + 3605AB3E0BE80030C1730AF2727330C67D32EEDCBCA64A5E7D4E9A004CFD1B0C + 40DBFF7F7500CDA5CF00645D2F82CF540F9D00899732B078AE5F970053BDBD90 + 959109B7499E28BC9E0BC7B746A0AEE241B7EA9F7E4D2F805721FE05AA3771EA + FE64EFDD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006634944415478DAEDDB094C14 + 671407F03F0601032A152C5E89522BF54025D28A5AB58A202AA5D6BB5A2FA2C5 + 5A9A78543442516BD5A4D4032D87172951228A0A51C25111B042295831500A52 + A802A2ABCBB5CBB5C0EEEC4E6776BBE30A3B4ADDDD9925EE4BC83733DF24F3BD + DFF7DE2484C18C2449B085999919EBDC8A9DA7C9C8BDBE78D62803DFF15D680C + 2E85F8B12EF6A539EA02F053B02FEA9ADF608013DFFAA2BEC504C077FEFC011C + 0B5C07B144CE77FEFC01F09DB866700ED093C20460023001E81F60FBA94C4E5E + 826387DB63839733BD96D7DE0D83011CF19B657080A89402A097B94E083D1A20 + 26BD181D846A8DAF8BD0A301E2B3CB21E990EA84D0A3016EE457A0A58D601024 + 1D04362D9808CBDEBDBA8D6050002961D877E1DD32010520D509A147039454D5 + 5209CBBA22B4CBB0C9DBA55B089C006C0F4FD17BF247FDE7A3BAB611CD126917 + 0439F5D8A65669B7100C02B02D329D3CFAA53B245285DE13D78C463A61898415 + 41D4D4868D543BF4ED63C1ED2F435C012814723477902F451036B460D78A29DC + 026C094F2343BFF260007646A6EA3DF990CDF3505259836BB90F943DCF167282 + C0717F4F6E01FC4393C8B02D0B0C5E0174D06D909C5B46BD10EBB4CE77B44910 + BED59B1F0091843038803AAA9E3620E56EA5B20D3443246AE41F20F8CC0DCE20 + CC7B5B60E4307BE6FCEF0A01F7009B8F249211DB3FE6B40234A346D482E28A5A + E58B30A7B00291DFF8BC590074B4CB1410D43621EA7A2EFF005CB6001DDF7F31 + 97390E3A99CA3F009FC10B805F4802792AE0533C6D94F29D3FF69D4EC6E99D8B + F80538187D93D3A483D67BF00BB0E1D065F2ECEEA5465101C111D71115B88C7B + 80888025A86FE5FF6F834601C0670BF002B07E7F2C796AF70AA3A880C013F188 + DEB3921F00637807EC8B48E01FE0C798744E930E583D875F80357BCE9127833E + 47AD117C22137C220EE7F7AF3501F0022010AB5A20343683D3A4B7AE74678EF7 + 875F360CC012DF1DAC935643C6E1CCDE750C009FB1F7782CDA05C5ACF3577F3E + CC8AF34A004F0F77AD73592542A3029831D641EB5CDACD0CC3018405AD613E94 + 0C8FCBE43469FFE5B399E3036117B907B8F5E71318D397A2B3260C3501F00AC0 + 670B700EB079B537FD9DA05155C0A5103F44C6247107608CC119404F0A138009 + 404780B01F02F9CE41A7F87AD721DD00F84E401FA113C0F183015050F7C809D5 + FF05C8150AC8E5D44F2F4B90B256383A3AA2ACAC1C4E4EA35052528A914E4E28 + BB7F1F4E63C6A0B0A010135D26E25EFE3D4C729D84BCDC3B709B3219BF65FF8E + 0FA74F4566E66DCC9E3D93195352D2E031D713A9C9A9F09C3717498949F0F6F1 + C6B584EB58B8E8135CB91C8FA5CB1623F6421C56AE5ACE8C5151E79835CB0802 + 04F1FC7F184ACB2BF40B2095A9FE12A40B4076560EA6CF98A633C0F97317B066 + ED2A5600B95C8EF2878F74033876604797DD6703282A2A56265E5CF417C68D77 + 6600F2FFC887EB07AEAC00696919F0F4746700929352E035DFEB7F03D009D39B + 657000424EC0ACB73588F61648CD6D0049032C2C2CD0D6D606C2B23FC8D606C0 + CA16446B3D60D1971A4530B3EA0F19755D666507340B95F3B2963A90566FA143 + FC0CE67D078268AE85C26A0035D64061F33614620160E300821EAD0742D6F854 + 792E133DA1C641D4F5C7D43818525135B3FB747002A07A00A9FC8849F381AA85 + 50D7E4CFAF910A9239A7EFA59FA95E2C1DEDED1DCC313DAFDAC5179351DF2F93 + 111AF7124C4B762E7F8300A81FA606502FE655009A8BA68F35937F5D00F53C1B + 807A2D3A031CDEB7ED85DD6703D04C5E75CF7F23758FFA581B00D169D7E88488 + 17E6D9013AF77B97736ACD0F2A1FEB17A03BE5AF06E85CFEDA0034779F0D80AD + FC3513D6D6FFF4732BAA9E1806C0AA9F1D9AEB85B0EC678FD60621AC0738A0A9 + 56004B5B078885D5B0B11F8A46E123F4B11B8AA66755E83768381A1E3FA4DE5D + 8E68A82E83ED90772016A8CEEB2A4B613B6C9472B41F311A82F2220C18E18C9A + 7F0A613DF85D88AB4BB502BCAAFFF50AD0B9FFCD6DECD02612C2C5F93DDC2D28 + C1FB2E6391975F0437D7F1B895938F59D35C919E750773664C466A460EE6B94F + 43E22FB7E1E33513F1491958ECEDCE8C17AEA660D592F988BE9888F59FF9E06C + 4C0236AE5E8493D157307AD21414DDC9EE52FE9A6BEA0CA0AE46BD0168EB7F4D + 0075E2D9790598EEE6C200DCFC350F1E1FB9B102C45DBB81E50BE7BE1460C2E4 + A9C8CFC982355529E2EA72ADE5CFD6FFF4359D00DE84F8171B316DEA20DCEAD6 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005F64944415478DAEDDA0B4C53 + 571807F03F08C846754EF181129D2FA2CC0DA3D9E69C2EEAA8A8CC6DCE5774BE + 881BCEB1C4C744230C754E4DC67CA0E3E1636446894CDD346A784C5496E91CDB + C4C81464655A102DF2A86DA1F4711FBDEB2DB616DA8B48DB7B4BE89790D3DB73 + CB39DFEF9CEF264D8F17C330E00A2F2F2FCEBEF9EB0F32699BA3F0504542E8F8 + 2A2903C713A33927DB6A8E1E000F40FB01BE4B88425D432706D8F76514E46A0F + 80D0F90B07B0276E29941A5AE8FC8503103A71EBE01DA0238507C003E001703E + C0DA03F9BC3C044307056279C428762EED5E0D9701EC8A9EE47280F49C1B80B7 + 8F43081D1A20E36231F454D31CDB8BD0A1014E5D2983464F3884D0A101CE174A + A1D65216048D9EC28A1961E8EAEBDD6604970210946B9F85D724322300E11042 + 870628A9A835264CDA22E848AC881CDD26045E00D6A6E4383DF9DD31D35159AB + 428386B041A08DC3D637126D427009C09AB48BCCEE4FA74043189C9EB875A8D8 + 84351A4E0445BD161F1BCBA1DB737EFC7E19E20BC060A0D1A0675A45A87EA4C6 + 86F9E3F805589592C7247D166E01589F96EBF4E413574E4349790DCE14DC31D5 + 3C57D01485BD31627E016292B298E455335CBE03D860CB20BB40627C20D6D9ED + D76B3548591D290C804243B91CC01C15558F9073ADDC5406D6A150A884074838 + 749E37081F5F3F0C0D0EB45CFF2B95F10FB072D7392675EDBBBCEE00EBA851A8 + 512CAD353D08AF164991F6C5CCCE05C0868E3440565B8FF4B305C203F059026C + 7CFDC954CBEBF8FDB9C2030819820044279E660EC47E802A152174FED872301B + 07D7CF121660FBE10BBC261DBF2C5C5880E53B4E32DF6F9CE3163B2021F52CD2 + E3E6F20F901A3B1BF246E17F1B740B00214B401080655B3399031BE7BBC50E88 + DB770A87372D1006C01D9E015B524F0B0FF06DC6455E938E5DF48EB0008B371D + 61F6C77F845A37382293B0EF048E6E5DE27C80D951EB383B030686C19D001AEF + 1571F6FFFCC34E4E9CA70288C3A7D8EDBB2A919B0064CAA61248CABCC46BD2AB + 173C99D7D69493181FD2CBEE7D79172EB906E07249350E6D5E6A01103236EFCD + C4C4D0BE1E00DE0192E3175B0E4AA69CC8E735E99879932DAFB725FFC83FC0AF + FF3C803B9D149DF4EA00FE00562E8A644F89B915C0F1C468A46564F107E08EC1 + 1B40470A0F8007C04180E46FE284CEC1A1F87CC30EC700844EC019E110C0DEED + B13018EFA1A9A653E1B4C1009A36FE797705433662F0E0C19048CA1012321C25 + 25A5181A1202C9EDDB0819391245378A10363A0CD70BAF63CCD831F8B3E02FBC + 31EE75FC7EE50FBC35E14DE4E7FF86C993DFB6B4393979089F2A466E762EC4D3 + A622EB5C16226746E2CCE9B3787FD67BF8E9E429CC99FB21328F9DC08285F32C + 6D7AFA11CB9C498A02453D39C15E5A26752E004136FD0EE008C095CB573161E2 + 7887018E1E3986C54B167202D0348DB2BBF71C03D8B36D9DCDEA7301DCBC596C + 4ABCF8E62DBCFCCA280B40E1DF8518FBDA584E80BCBC4B108BA75800B2B37210 + 313DE29901D884D9C57239004553F0F20D00A55363D8B021A6950F0D1DD16E00 + 367171841879BF3806C0AE3E1B9D1AC0BAFE9D0E60AE7F3300A151C1DBBB0B08 + 82809F9F1FB45A2D489F6E804E09F8F700D52807FCBA41575F07D2BF177C7572 + 534B2A1EC0571408525D07C6FF45E8950F418B82D0455D05837F4F500D353088 + FAC0A09401A2BEA0D836A037485595E99AFD3C44FD8CEFDF37B64120149576EB + 9F0D8701766E596353FF2C806940F2C996330F483E9E00F5F89A32DE637E6DFE + 8C79AB367DB6F9AAB1C854B37EF3FF6D39266553EF36D7C639DF29BFEF5C0073 + F234CD984E70B514B70660DF630C4CAB003A9DBED998F6005A266F0FC05EFDB3 + E34A2B1EF00F604EB825007B2F3B1E1700DBDF9454F364B80008AB6B7BF5EF54 + 00EBFAB79ECCD300AC27DD72F55B021056DBBB3500733F1780792E4E03B057FF + 3EA25ED02AAAD1B57B20EA6B65F07921085AF97D8802FB43595D696C07405955 + 81E77B07A3FE6105BAF71B0479E51D04F41908A5EC2E7AF41F82BA7B12F4081E + 8EBAF252535B23BD8DEEC123F0A8FC167ABE340A35FF15212068189495A53600 + 6DA97FF63D87003A43FC0FE2B76DEAFE3323B50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005F54944415478DAEDDA0B5014 + 751C07F02F082719A8244E6859031A29D9E8680FC7C9268D1395ACCC07036A4A + 966634E323D11122CDD499CC072A0F1F513E484A4B471C1E89CA4C3A0E95383A + 082A8C9C8AA070C01D70DC631FB7ED2EDD7A1EB7A2DEDDEE31DC6FE6E6BFC77F + 6FF6FFFDECFE9639582F866120565E5E5EA273D12BF730196BE270AF9984DCF5 + 6D4A167EDBB45074B10FCDE82C80B4C34592868E9F35DEBD00E42C0F80074026 + 809DC9716868EDC6003BBE8E43A3CE0320777EF900B625CE83564FCB9D5F3E00 + B9835B97E4005DA93C001E000F80F30196EF2E92E42618FE621016440EE7D6F2 + C467C365005B16BEE37280CCFC4B80B78F43085D1A20EB74194C54FB1A9F14A1 + 4B031C3D5709BD897008A14B039C2C514167A00404BD89C2A22923D0D3D7FB91 + 115C0A4050AEBD175EA8A86501088710BA3440F92D351B98EC886024B1286AE4 + 23214802B03C2DDFE9E1B7C64F46B5BA19AD7AA20302CD1EB6A58D7824049700 + 2CCB38CD6CFD7C02F484D9E9C1ADAB990BACD78B22685A0CF8946D8780A714D2 + 7E19920AC06CA6D16A621E8A50D7A4C3AAE831D2022C492B6452BE8810005666 + 14383DFCA6C593507EB31EC78B6FF03D2F563445617BBC525A80F8945C2675C9 + 14975F015C716D90575CC1DE101BECCE9B0C7AA42D8D920740A3A75C0E60A95B + 779B907FE126DF06D6A5D134CB0F90BCF7A464103EBE0A0C7E3E48787F5D552B + 3DC0E22D2798F4E5EF497A055857BD468732959ABF119EBFAC42C65753BB1700 + 5746D28C5A750B32738AE50790B205B8FAEEB389C276D2AE02F901E42C590016 + 6E3AC6EC4EF810779B09B9F363ED9E3CEC59394D5E800DFB4E491A3A697E84BC + 000B361E617E5C3DC32DAE80E4F41C6426CE941E203D613A1ADBE4FFDFA05B00 + C8D902B200CC5F97CDEC5E1DED165740E28EA3D8F74D8C3C00EE700F589B7ECC + 3500D3E356884EF60E7D0DD6003F649D963474C29C771F0068A9BA20BAEF1F3F + 6F16C5E914401931C1EEDCF98A46EC4A9A0DB51B3C2293BCE330C686F5B33B57 + 78EA8C07C0A500B5DAF61648C93E2369E8A531F7D7B52EED88F40067CBEBB077 + CD3C0140CE5AB33D1BE3C29FF5004806B0784E1462137F426AD25CB77856787D + EAAF38B4F1136464E54A07E08E251940572A0F8007C04180D4EF13E5CEE0507D + B96AA36300720770463904B07D4302CCEC3E34D5FE4C306D3683A6D997774F30 + 641B4242425051510945AF3ED0B734C1272008266D1D7A04F487AEA1068ABEC1 + 3034D6C02F3018ADF577A0081C08BDBA1ABDFA0F82B6B60AFEC121D0DD53C12F + E80568EF542260402834D595E8151C0A6DF575F41DF4321A54E5F01F340C1A55 + 29FB7E28D4555710133B0BD9870EF36366E60161CD244581A2EE3FBF7CAD52E5 + 5C00826CFF2BB02D4058D84B282FBF86C16161A8B87A1561C386E1F2A5CB1831 + 72042E965CC4A8D1A3F077F13F7873CC1B3877F63CDE1A371645457F61FCF8B7 + 85313FBF1011139528C82B8072D244E49EC845D4D4281C3F96830FA6BD8FDF8F + 1CC58C991F09C10F1E3884B91FC78A02D0348DCAAADB8E016C5BBFA2C3D91703 + 282D2DE38397955EC12BAF0E17004AFE2DC1E8D7478B0214169E8152394100C8 + CBCD47E4E4C8C706E0027327CBE500144DC1CBF76950461D860C09E5CF7C78F8 + D02706E0822B239528FCD33100EEEC73D5AD01ACFBDFE90096FEB70010FA66A1 + F71F0660096E19C57AFFD4C9C707888E8DC1C1FD07EDF63F570E036C5EBBAC43 + FFBB1A20E7F8093E786700FBF7FF8298D9B13C80BDFE37B36BBE71F38E7301B8 + F0FC07FF07F0F6EE018220A0502860301840FA0400462D08455F30BA7A40D11B + 645B1348BF7EF03536F223A9A901E317082FA3861F4DDA7BA0FD07A087EE2ECC + 7ECFC0A8A905FCD9AFB7BA3A7E3434DC866F9F01D03754C337F039FEF3ECEF4F + 109A6A78070CE4477BFD4FB12FD5AD1AD700D034C33FC0647BC99154FB812D3F + 63CC8CF09EDB973B9E65B15C198D26619B9B6F3F8B0F86B1EC4F9294D5BE94D0 + 92B697BF4B00ACFBDF7A319D01582F9ADBB60E6F0B201CA31300CBBC1880652D + 4E03B0ED7F5B00EBF09603F323BB8F65DB1E006573D6B840D403F3E2001DFADD + 4EFF733F7308A03BD47F507369EAB7B2A6910000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005DB4944415478DAEDDA0B5014 + 751C07F02F78E2A56098A8D4680D68376A363A5269664D10072A59990F06D48C + 2CCD68C647A223C6480F99C97CE003F011954A3069E988C323519929332C7074 + 1054480E155039E01E1C0777BB7BDBEE32B79CC79D1A77B77B0CF79BB9F9EFDE + FF96DDDFE7FFFFFDF780F5A2691AF6C2CBCBCB6E5FF4BAFD74C6A638DCD510DC + 7EDA91620819F10B42F9ED2F52B3F0F39665762FF681393A0B40CCF000B80380 + A704440C0F8007402480DD4971686AEDC300BB3E8F43B3CE032076FEE201EC48 + 5C02B59E123B7FF100C44EDC320407E84DE101F00078009C0FB0665FB1208BE0 + F86702B03472027B2D3D1E0D97016C5BF6BACB01320B2E01DE1287107A3540D6 + 990A18C8CE6BEC2942AF063876AE1A7A83D121845E0D70AA4C015D3BC923E80D + 2496CF9A8801FDBD1F19C1A50046D2B56B6169550303607408A1570354DE5432 + 0913DD113A082C8F9AF448088200AC492B707AF2DBE367E2B6528356BDB11B02 + C59C56DB667C24049700ACCE38436FFF380C7AA3C9E9895B86864D58AFB78BA0 + D2B6E343A61CFC1EF311F69721A1004C260AAD06FA8108F75A74581F3D555880 + 95694574EA27E13CC0BA8C42A727BF65C50C54D636E244C90DAEE6ED054592D8 + 192F1716203E358FDEB37296CB67001B6C19E49754310B6293CD7E43BB1E69AB + A2C40150E949970398E3E69D161494D6726560192A95467C80A403A7048390F4 + F7C1E89101FCFE754583F0002BB69DA4D3D7BC29E80CB08C46950E150A25B710 + 9EBFAC40C667B3FB16001B1D84090D4A2D32734BC40710B204D8F8EAA3087E7B + E3DE42F101C40C5100966D394EEF4B7807773446B1F347F2FE7CEC5F37475C80 + CD3F9E1634E98DEF878B0BB034E528FDDD86796E310392D2739199385F7880F4 + 84B9686E13FF7F836E01206609B80C606EDC5ABB9D83835FC0BE0DD16E310312 + 771D83B6A6D46EFFAF3F6CB58BF35000797898CDBE0B355A0EC01DD680E4F4E3 + 98123CD8665FD1E9B3C2007C9B7546D0A41316BD212EC0F9AA66ECDDB8104A37 + 78442669D7114C930DF5008802D0A0EE2C81D49CB38226BD2AA6EBBABE4C3B2A + 2CC08A4551884DFC1E07362DE101C48C4D3B73909DF20132B2F2840370C7100C + A0378507C003E020C09E6F12C5CEC1A1F8747D8A63006227E08C700860E7E604 + 9898CF5064E713A194C9048A625EDE0340136D080A0A4255553564B267515979 + 0DA36532545DBD0AD9B871B87CE932264E9A888B6517313964322E94FC8D2953 + 5FC29FE7FEC22BD35F4671F1EF080D7D8D6F0B0A8A101E2147617E21E4332290 + 77320F51B3A370E2782EDE9EF3167E397A0CF3E6BF8B9CEC2388895DC0B79999 + 87F86B26481224D9F5F4EAB56A8573018C44E7DF00AD017C063E0EBDB60512BF + 0018D4F7D0CF6F18744DF5F0F10F447B733DA44302D1DA58079F214FA1ADF116 + 060D7F1AEA861AF80606417757016900B35F578D812382A0ADFF17030383A1BE + 7D1DD22765D0DDBE0ADF51E3A05294C37FD458286BAE70891F3E948DC5EFC5DA + 05A0280AD535B71C03D8F1F5DA6EA36F0B809D01E5E515DCC857945FC173CF4F + E06740D93F65087931849F01E7FE388FE9AF4EE347BEA8E82CE4F2307E06E4E7 + 15207266E443678035009B303B582E072029125EFD0781ECD061CC98606EEA8F + 1F3FB6C7006CE2F248398A7E730C801D7D36FA348065FD3B1DC05CFF6600A35E + C32F7E0F0230276E6EED2D7EA74FFD7F80E8D8181C3E78D866FDB3E130C0D6E4 + D5DDEADFD500B9274E72893F0CE0E0C19F10B3309603B055FF26E69A6FD4D639 + 17804D9E3BD00AC0F2F66706B0BEFDF514C0DEEDCF12C056FD93CC4B71B35E78 + 0021EFFF8B972CE601ACEBDFA90096F56F09E0EDDD0F46A31106892F24060D08 + 891FC8B666C0C70F54BB9A690783686B01211D0AB4DE03A4FE20744DA0A543E0 + D5A1E25A83FA2E4CD22740B63632DF2386A343D500F88E00A966DA41C34068EE + 70FB84AA9E690399F7EB20F11F09BDB216FD989662F66DD5BFD300ACEB9F0D82 + E89A72E6131264D789B996F98C79DB7C8C79AA761E7BFFA8B1C8E47DFDE69F6B + 7D4EB27BBDDBA87FF63D8700FA42FC07C55763EAAEE759180000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Delete_10_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005964944415478DAEDDA0D5093 + 751C07F02FC69B130C131332E8405B68767A5269665D121395ACCC174E148DB3 + 34A23BD3444F8CB217BD8B7C2501A52805B20B4B4F3C5E1290BB32C3024F0E01 + 1D27E34D54068CC17890EDD9D69EC7DB5A638F20DB9EFF38F6BBDB3D3C3CE3F8 + FF3EFFFFF7FFDCE071D26AB5E02A272727CE6B11DBD2B4A99F46E3B65C05D2F5 + D9C12CFC9CB88173B0F7EDD101602580E4EC125E9B8E5D39DFBE00489603C01E + 001C1120580E00070021806F12A2D1D63D8201923E8E46BBC20140BA7F720007 + E2D7A1935293EE9F1C00E9C68D8B7780E1540E00078003C0FA005B8E96F0B209 + 4E7BC21BEBC3A6336319F26CD80C60DF86576C0E909E7F0518E56C11C2B006C8 + 2AAE421F7D6F8C434518D600A72ED482EA535A8430AC01CE954BA0E8A50D0854 + 1F8D8D8B67C0CD65D4A0116C0AA0A46DBB1796895B74004A8B10863540758354 + D7B0AA3FC25D153686CF1C14022F005B92F3ADDEFCFED8456892CAD14D29FB21 + A875BFB6AB473928049B006C4E2DD6EE7F2F04945263F5C68D4BCE344C519C08 + B2AE5EBCA38B83E768577E3F0CF105A0D1A8D1DDA7BD2FC29D0E05B647CCE117 + 605372A1F6E0FBA106806DA905566F3E316621AAEB5B71A6F4069B79AE52D334 + 0EC58AF805883D98AB3DBC69B1CD5700534C0CF24AC5BA0DB1CDECF5BE5E0AC9 + 1F8693019051B4CD01F4D570AB03F965F56C0C8C4B2693930748F8F61C6F10CE + 2EAE98FCB8B7E1FCBAA4857F80987D67B5295B5EE375051857AB4C812A8994DD + 082F564890FAD1929105C0D45D95062DD22EA4E7949207E033024C7DF1EE02C3 + D73B8F1490072059440036249ED61E8D7B13B7E44AD2FD63575A1ED2B62D250B + B0FB5811AF4DEF7C3B942CC0FA3D27B5DFED586E172B20212507E9F12BAC0FB0 + 2C7A2BE7C571C23948895B86F61EF2FF1B640064E252CEEBBFFEB09713674000 + 516888D96B658DD4FF004846800178D65F60F67D8545E76D0370A9AE0B477744 + D8C50A884F3A85D98163C900D8C31EB02BE5347980AFB38A796D3A6ECDAB6401 + 2E8ADB7164E76A48EDE0119984A46CCC158EE70F20664D38A23EC9B02B80CCCF + D722352B973F007B2CDE00865339001C0016021CFE2A9E740F16D507DBF75806 + 40BA016B9445008776C741A37B8F9ABEF73CA05AA3815AAD7B8D728356D58380 + 800088C5B570153C0CAAAB03CE9EDEE8EBBC83873C2740D17613AE5E3EE86DBF + 09F7713EE86E6D86EBB8C740499B2098E087CE963A78F80440715B02776F7F74 + 36D7C2D33710B2A65A087C02D1D9741D5E7E4FA14D520D0FBFA990492A75E741 + 90D65DC5AAC895F8E944367B4C4FCF308C5945D3A0E9FF9E5DBC562BB12E8052 + 75EF2F40A60042E193A8AEBE86C94221C43535104E9D8A8A2B15983173062E97 + 5FC6ACE059B854FA3766CF791E17FEB888792FCD4549C9EF983FFF65C3313FBF + 10A10B4428C82B8068E102E49ECD45F892709C399D833796BE8E5F4E9EC2F215 + 6F191ACFCC3881A8B5919C006AB51AB5758D96011CF8726BBFD9E702A8ACAC62 + 1BAFAABC8AA79F996E0028FFA71CC1CF05730214169E8748146200C8CBCD47D8 + A2B00706601A6626CBE600B49A8693CB18D07715983225909D79C1D847D02D93 + C2CD6BA26EE9B7B04B5E1F014ADA8CD1E37D0D11E8696DC49847FDD908182FFD + EE5B75104C0C60CF3D7C27B31170F71542D154038F4942C81AAA2198140479FD + 55B300CCEC33450460DAB4A021AF0066E645612214FE66D90A30CDBFD501F4F9 + D7032829B921FBF703D037AE3F7265BFE8DC83034444AE42E6F14CB3F967CA62 + 80BDBB36F7CBBFAD0172CE9C651B1F08E0F8F11FB16A75240B602EFF1ADD986F + D4375B1780699EFD411300E3DD5F0F60BAFB0F15C0B4717300E6F24FEB5E9286 + 9BFC0370DDFEFEBCF0175E9CF782C5B73FE3FB7FD4BA28038069FEAD0A609CFF + A1020C74FF1FCAE6670E409F7FAB0198E69F2995B327D02B237EFF67008E7D7F + CC6CFE99EF59043012EA5FFC2857EA3113842D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_11_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005974944415478DAEDDA0D5093 + 751C07F02F1C0222149E94A04507D84EC94E4F2BADAC0B63209295697290A4F4 + A211DD99267A42A6957A97F902CA4B6A182A4159C109C74B0272576458E0E921 + A07032501CC88BDB600CD89E6DED19B7A7097B00F7F2FCC7B1DFDDEED978C6F1 + FC3EFFDFF7FFDC8ED9A9D56AB0959D9D1DEBB988B893EA13BBD64128968374ED + 4ACC42E6BEF7582F76C41E4D01488A8F449B44A17D9D7CB68CD3A663D60430CF + F724FDC43D40D8B6E3EAD45D510C00C9FA3221033FEFDF6003200A4032025601 + 40B26C00D600608B00C1B201D80008011CDD1985CE9E090C70E4F32874496D00 + A4FB270770386E1DC43225E9FEC901906E5CBF3807184F6503B001D800CC0FB0 + E55819279BA0FF131E783F782E7D2D46AF86C5000E6E78C5E200698557007B07 + 9310C6354046690D06A8C16B3416615C036497374036203709615C039CAF1240 + DA473108B2010A1B97CF83D324FB31235814404E59762FACAC176A00E426218C + 6B80DAE60E4DC38AE108FD0A6C0C9D3F26044E00B624179ABDF9433121B8DD21 + 418F4C3E0C41A9F9B3DDBDF23121580460736AA9FAD0474B2193ABCCDEB87E49 + E8866532560451771F3ED0C4C16DB223B71F86B80250A994E819508F8870F79E + 14DBC316730BB029B9589DF0712003B02DB5C8ECCDEF8F5E86DAA6769CABB8A9 + CD3C5B29290A89317C6E016212F2D5499B965B7C02E8A263505051AFD9103B0D + 9E1FE89321F9D350320022196571005D35B7DE436165933606FA251249C803EC + 3C719E330887498EF07BCC83797D4320E41E20FA609E3A65CB6B9C4E807EB58B + A4A811746837C28B570548FD6CC5C402A0AB5FA182B0A31B69B915E401B88C00 + 5D5F7F18C43C8FFFAE883C00C92202B0617F8EFA58EC9B689590FF96D8EEE305 + 38BE6DA5F90156456D653DE9E1BF04FA007BD34B386D3A7E7DE07D009DB5E5AC + EFFDED8703AC38A302F003971A3C57794B86EF77ACB68A09D899928B67BC5D0C + 9E2B2EB960398094D855E8EA25FFBF41AB002019012200971ABB716C4798554C + 40DC916C2CF27D880C8035EC01BB5372B805885E1B8AF55F65DD07F06D4629A7 + 4DC7AE7DF53E80F42FC2919A91CF1D8035166700E3A96C003600130192BE8923 + DD8349F5C9F67DA601906EC01C651240E2DE58A834EF515283DF0653AA54502A + 350F7B27A815BDF0F1F1417D7D0378BC27515B7B1DFEFEB3515D5D03DE9C39B8 + 7AE52AE6CD9F87CB5597B160E1025CAAF8078B163F87BFCAFFC68B4B9E4759D9 + 1F08087899391616162324848FBCBC22F09705213F2F1FA12B42712E27176FAC + 7C1DBFFE928DD56FBF85ACCCB3088F58C31CD3D24E33D7ACA02850D4FFDF5CBB + DE20302F805C31F8F99F0DC08FC7437D5DDD8800E57F5EC492975E30081018C4 + 4751C1D800CE9CCE44E4BB11AC004AA5120D8DB74C0338BC67EBB0D53704E0E8 + F2307A441D70729F0E69A710CE533D35C73B7074F784ACA30593A779A1A7BD05 + 8E5367A0B7FD16A63CEA0DB1B011CE1EDE90B635C2D5D317E29606B84CF7D11E + 5DBDFC20BE7D03CE5E3C486FD7C1F5F1391009AAE1327336244DD70C02D00DD3 + 8B6571004A49C16ED21450FD52CC9AE53B6CF46BAAAFE1A9A7E7321350F56F15 + 163EBB907502E895E707F351FCFBE00414E417223824F88127805E7DBA263480 + 7EFECD0EA0CBBF0E402E9330D97770F3C080F82E13017BB7472017B76923D0DD + D60CD7693320ED126A23408FBEFB0C5F2602F4C8BB79F9A2A7B5913D02337910 + 35D70E8B40584438CE9C3A6330FF74990C7060F7E661F9370430D204E8565E77 + 64DBFC4ACE0F1E73CFE569577EB4093875EA4784BF13A10530947F95E69A6F36 + B59817806E5EFB8B4300F4777F1DC0D0DDDF5800B6DB9F3E80A1FC539A87A0F9 + 0EF700C6DCFF1FE4F6A77FFF8F5C17C9000CCDBF5901F4F36F2CC068F77F6336 + 3F4300BAFC9B0D6068FEE95238B8017D222D80B1BB7F71F105F0F94B4D06483F + 996E30FFF4CF4C029808F51F56E05AEAC72C724E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_12_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005F24944415478DAEDDA0B5014 + 751C07F02F84A828A945099A1668972F46D31E56D628C30948A4A9C980A1D243 + 339AF1918F11F291A933393ED0407C84A198E48B12E291A7D2941919F8080185 + E440E1540E3D0E8E05EEF6EEDA5DE7B6F5D8F3718F5D18EF37C3EC2D0BC3FE3E + FFDFF7BF73C3B9188D46582A1717178BD7A256EC356E8F9B0E45BD96398F4F3B + 09216B7E4400FB7A75E221A4AE9E61F166EFD9A3B50091B1BB8DBB56CE6401C4 + AC955BD2B07FDD074E00C10112E2A27043AD63CE130FE609DA74CCB471ECEB35 + 093F080F10BE64A7316965340B20667D19BF0F07D6CF7602880A206604DA0580 + 98E504680F00CE0888584E0027804800DF2C8F465DE3230CB0F58B68DCD23801 + C4EE5F3C80CDB133514FE8C5EE5F3C00B11BE796E0001DA99C004E002780FD01 + 16EEC81364131CF2AC173E0C1A46DF8BD5ABE130808DB3C73A1C2039E73CE0EA + 6613428706D877A218ADE49D7BB416A14303A49F2A07D1AAB509A143031C2B94 + 43D34CB208442B89391386A37327D707467028809674EC5E5850A6A000B43621 + 746880922A25D5B0AE2D428B0E7342473C108220000B1373ECDEFCA698105C53 + AAD14868DB20E8A93FDBD0A47D200487002C483A61DCF4490008ADC1EE8D734B + 4D374C101611540DCDF8888A8367577761DF0C09056030E8D1D86ABC27C2CDDB + 1A2C0D1F2D2CC0BC449931FED34016604952AEDD9B5F3F37182595B5389A7F85 + C9BCA5D29324B6C44885058889CF3226CC9BE0F009A08B8E41767E19B521D6F1 + 5E6F6D2690383F541C0015413A1CC05455D76F23A7A0928901B7542AB5F800CB + 771D130CC2AD933B063CE3C59E5F962B840798BB31D3B86DE1DB824E00B76A55 + 1A14CB95CC4678FA821C499F873D5A0074B5E80C50281B909C912F3E809011A0 + EBAB8FC7B3AFE3B6E73A06604AF4228B177BFB8F85D813C005B859F4ABC5EB47 + BEDB6011E7BE00D2C000DE6BE7145AEC583C09D7D5E27F4A6CD5CE6CBCD8C79D + F79AECF8496100D6A61C17B4E9B85981E202145C25F0EDB2A9ED6202966FCBC0 + 4BFD3D8407D8B6780A6E3589FFBFC17601206604040798FB7E2866AD4EC38E65 + E1ED620262B7A62365450492F6650907D01E4B30808E544E0027808D00095FC7 + 8ADD834DF5D9D275B60188DD803DCA26802D6B17C340FD8C9EBCF35920BDC100 + BD9EFA72ED0CA3AE09BEBEBE282B2B8744F23C4A4A2E61C89041282A2A86BFFF + 509C293887E12386E36CE1598C1C35127FE59FC1ABA35FC11FA7FEC41B635E43 + 5EDE6F1837EE2DF6989323434888149999B9080B0BC691F44C4C9C148623877F + C2E4299370E0C0614C7D6F32D2F61F4444E434F6989CBC97BD671D498224FFFF + DCD2A572B97D01B4BA3BEFFECC01DC3D7A8068B80D374F2FB4D6DFC4639E4F41 + 535703F79EDE68BE55832EBDBCD1585B0DF75E7DD0547B15DD9EEE8F7A4505BA + 7BFB4273438E2E5ED47975393C7AFBA2A1E65F7878FBA1FEDA6574F1914073AD + 14DDFB0D864A5E849EFD0641597191693C75EF7E44CD88B408A0D7EB515E71D5 + 3680CD6B16B5597D3E007A024C2B7FF6DC3F18EA3F0C17CE5F6026A0F0EF428C + 7A79143B01A77E3F8D316FBECEAEBC4C76125269003301D22029B27ECE415048 + 10B232B3101A168AA33F6660E2BBEFE0F0A1F4BB26C01C806E985E2C8703907A + 122E9DBA816CD160E040BFBB465F3278308A8B2E3E1480A971D92F32048E9722 + 3BCB3A007AF5E91205C0E3F127D0A852A273CFDED4E82B98913745805056A3EB + 933EBC11308DBEA78F1F1AAF573011A0CFBBFB0CB83B027D25505595C0A3EF20 + A82B2F5A04E0E6DFEE00A6FC9B00B484BACDE6C73701A695371DF9363F7AE58F + 1F7BF809088F8C40EA9E54DEFCD36533C086550BDAE4DFD10019473399C6EF07 + B067CFF788981EC900F0E5DF40DDF395CA6AFB02D0CD33BF6806C0DDFD5B5437 + E04A1DCD777FAD4AC11CF9767F6E04EA2A4BA9DDFE053602DCDDBFC773C3D808 + 7001F8F24F525FF2AA1A6100064824282B2D6526C0B4F20FF3FCA7573E373B17 + D2E0F1F75D79EEF33F6A66140B609E7FBB0270F36F2D80F9EE6F0E60CDEECF07 + 60CABFDD00CCF34F97CECD136856B1CF7F6B1E7FDCE7BF2D0029BB5378F34F7F + CF268047A1FE03B6265AEAE38524690000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_13_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000062E4944415478DAEDDA0B5453 + 751C07F02F04A813140B03342DD0962FD2B487957594032A126AE2235034B234 + A3737CE4E3049166EA39797CA081F8084321157C1470601C51E9941919F84240 + 2119084E60E0361803B6BBADDDCBB9B7393645B6DD0BA7FDCED9F9EF72C7E1FE + 3EFFDFEFB7BBC3ECB45A2D4C859D9D9DC973615F1FD5EE8F5A0871930A5C47F4 + DE54246D5E6CF2621F99A30DC04C009154491DC71CBFC06AD2AB427C99E79BE3 + 4EB20F101A79587B68E3120680CBD8B8E7388E6DFBC806C03A406C54186A64ED + 33202E3597D5A423E64F619E6F893DC13EC082F507B5F11BC319002EE39B9864 + A46C5F6603E01480CB16E816005C860DA03B00D85A80C3B001D8003802F83E3A + 1CF5DDE0D32067007BBF0A4783DC06C075FEDC01EC8E5C02A942CD75FEDC0170 + 9DB87EB00ED093C2066003B001581E60CD815C5686E0A8E7DDB074DA18F25ABA + BC1B5603D8B96CB2D5011204D7007B07B3107A3440F2F922B411EDD7D855841E + 0D70E66219146D4AB3107A34C0D90221E42D0483A06823B07CC658F472B4EF34 + 82550194847567617EA94807A0340BA1470314578A7509AB3A22B4AAB03C705C + A7105801581327B078F2BB2202502596A149A1EC80A0D6FDD9C66665A710AC02 + B03AFEBC76D7A7BE502835164F5C3F6464C20A85490449630B3ED6B5834B1F27 + 763F0CB105A0D1A8D1D4A67D2442ED0339362C98C82EC0CAB81C6DCC677E0CC0 + FAF86C8B27BF7DC5741457D4212DEF0ED5F3A6424D10D813E1CF2E40444CA636 + 76E50CAB570019641B64E595EA0662BDD1F36D2D0AC4AD0AE40640A220AC0E40 + 47E5FD0710E457506DA01F12898C7B80E843675983707074C2B0E7DC98E3DB42 + 11FB002B766668F7AD798FD50AD08F3A891C45423135082F5D1722FE8B20CB03 + 0487AF3579D2DD6732B80420A355A58148DC8884F43CD416FE6AF275A77FDC61 + 12E7B100FE7EBE46CFDDA8D53C04C0660B90F1ED275399E751FBB3F1B2BBBDD1 + D7E59CBBC00E0097C109C055911207D6CDC67D19F7DF12DB74300BAF0C72E216 + 606BE23956938EFAD08F5B80FCBB0AFCF0E5DC6E5101D1FBD2F1EA501E7B002B + 160562E9B693D8B72E180DCDDCFF6F900448889C87F8E44CF600BA63B006D093 + C2066003301320F6BB48AE73302B3EDFB0CD3C00AE13B0449805B067EB3A6874 + AF5113EDDF04516B3450AB750FFB5ED0AA9AE1E5E585D2D23238F1FA43D1F800 + 0E2E6E6893D6E229978190D7DF8393AB075A1AEEA1F7000F34D555C369C02028 + C455E00D1C02A9A81CCE1E5E90D708D1DB6D28A4D56570F1F486A4AA0C3C0F6F + 48AB6EC375C84BA81716C379C848488485BAE3111097DFC4A2451F2039F904B5 + 1E3C94C85CB38A204010FF7D6BE55699D0B2004A55FBBDBF21009FFF228A8B6F + 61D4A811282C2C828FCF685CCEBF8AB1E3C6E24AC1158C9F301E7FE55DC61B13 + 5FC7C5DF2F61D23B6F2137F7374C99F22EB30A04390808F0474646368282A6E3 + F4990C04CF09424AEA2F98133C1B2929A73077DE1C1C3F968A90D0F9483A7A0C + 618B43919070D428805AAD4659F95DF300766F59DB61F74D01D0895FB97A03A3 + 7DC6E0FAB5EB1440C1DF0598F0DA049300393917E0EFEFCB00A4A50B306B6600 + 05306B76104E9FEA1C009930B959560720D404EC1CFB82689563F8706F6AE779 + FD9E4693448C5EAEEEBAD21751254FB780425C8D3ECF78322DD05C77177D9F1D + 4AB5807EE937DD2F07CFDD8B3A76F61C46B5406F4F3EE45525701ECC87A4B218 + BCC12320ABB8691480DC7D323801A04B9F3F72248A0A6F3E5105D03B4FAE7E53 + FD919529C0B48069C8CCC844605020D27E4EC7ACF767E2D4C9338FAC00C3FEB7 + 3800DDFF34805221EBD0FBC600E8C4E9D558EF93899F3BFBE4000B4243907424 + C968FF936136C08E4DAB3BF4BF3100FDE9DF2AA981BD6E554A6BE0D86F2053FA + 4A89885AC9D2771DE46DB205EA2B4AA8E9FFB8163872E427842C0CA5008CF5BF + 4677CD772AAA2D0B40264FFDA201C0303E1FA525250F5580E1F4EF6C05A4A765 + 503B4F5780E1CED3AB3E80B1FE27740F61E53DF601E8D23704F8E3E29F787BD2 + 9B2601B2B3B2E13F7DEA634B9F5EC9DE0F5B12C60018F6BF4501F4FBDF184067 + 6E80F4A7BFE10D90C9E96F7003D4FF853168F8E71A33FC8C01D0FD6F3100C3FE + 2743E5E002B44898F7FFAE4C7FFDF7FFAE4E7F1220F170A2D1FE277F6616C0FF + 21FE059BFE57EA533583E70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_14_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000064A4944415478DAEDDA0B4C13 + 771C07F02F0C511122469C80C30D74CCF77B3E36B74C062A228A8FC94310D843 + E758E2233E32998F393599738A0E443128080341448120465412C7141DF84250 + 2152102C48D116A845DA6BBBBB23BD156841697B075B7F09B9C29570BFCFFFF7 + FD1F4DCE44A954425B999898683D17B4335179F4076F54D74BC175ED387C1631 + DB7CB55E6C873DEA0BE0D7F8CBAC36BDD1FF736E0102B69D541E095D0E41A38C + D5C635D5D643C988DBB9C208C009005FD41281B0C42BAC36BDD6D78579BD33E2 + 34FB007E5B8E2B8F6D0F6400B8ACED071391B0E74B2300EB00E1A101A8A96FD9 + 03229273586D3A64D92CE6F5AEF053EC03786F8A52466E0F6600B8AC9FC2E291 + B477A5118053002E23D02D00B82C23407700304680C3320218013802F87D6B30 + EABAC1A741CE000EFD188CE7622300D7FD730770604B20441239D7FD7307C075 + E3EAC53A404F2A238011C008A07F80F5477358D90447BD6B83AFE68CA1AEA5CB + AB613080DF567E667080E8AC3B80A9994E083D1A20FE72119A89966BEC2A428F + 0648CD2D85A459AA13428F06B858C083B889601024CD0456CD1B8FDEBD4C5F1B + C1A00052C2B07B617E099F0490EA84D0A3018A2B0464C3B2F608AF6458E531E1 + B5105801581F91A5F7E6F787B8A352508F4689B41D829CFCB30D2FA5AF856010 + 8075919795FBBF758144AAD07BE3EA554F352C916845103634E16B320E567DCD + D9FD30C4168042214763B3B24384672FC4D8EC3D9D5D803511D9CAB0EF5C1980 + 4D9117F4DEFCDED573515C5E8BB4BCC774E6B5959C207030C48D5D8090B04C65 + F89A79069F00AAA8189CCF2B2137C43A8DE79B9B248858EBC10D805042181C40 + 5515D52F90955F4EC740BD84C27AC3002C09DEA0F5A4DD0417A8036C3D769135 + 08B35EE618F68E0DF3FD231E1FD577B43FA273E6C43EAD389D02B8B9BA683C77 + EF990287D7CF677502D4AB562846114F406F84D7EEF2306EB0A9C6F7655FBAF2 + DF04A0EA954C01BEA001D1E979DC03B01901AA7EFE6636F33AF4C805EE01B82C + 4E006EF3A538BAD1AB7B3C2B1C751E13EDCDD90358EDEF81957BCFB602D81D73 + 89D5A643835C5B01446D5A84C8F84CF600BA63B106D093CA086004D01120FC97 + 2D5CF7A0537DBF798F6E005C37A08FD209E0E0EE8D5090EF91132DCF01C8150A + C8E5E497696F28652FE1E8E888929252383BBF8FE2E28718356A040A0B8B3076 + EC68DCCCBF8DA95326E2FA8D7CCC9836055773F3306DFA54FC957B1D1FCF9C81 + 9C9CAB9835EB53E69895950D77773764645C80A7E75C9C49CDC092C59E484A3E + 07EF655E884F4881BFDF529C883D8580001FC4C59D82BFBF0FA28EC530D72C23 + 0810C4BFCF2C3C2CE5E917402A6BF9CFEF4D01264D9E841B79376980DC3FAF61 + E6271F7509C0C76729D3784C4C3C8282FCB502C8E57294963DD10DE0C0AE0DED + 565F1380B9457F340A05E86D3D18E23A3EFA0CB0258F4F616E6D0B89A00A7D07 + DAA1B1B60AE603ECF1B2F609FABD3D14227E19FAD80C85B8A60C96B64E105595 + C262B0237DB4B41B0651E523F4B17386B8F2012C1D4642C82B84C59011A82FBF + AF11806A985A2C830310720226BDFA817825C6F0E14EED56FED6ED7B9834711C + 3D01E3278C47C1DF0598FCE164AD13A05A79D5312D3D0B0B17B8D313E0B5D013 + 2967CE61F1122F2425A560E9178B9198900C5FBF65883B998080157E888E3EC9 + AC3E55DD0260F4D831B87BE76E97013CE6BB23ED5C06169000A924C0C2450B90 + 723AB55300F5FCEB1D40957F15805452CF64DFCCCA06CDA2674C044CAD06412A + AAA123D0505301CB81F6103FE7D311A046DFDADE89890035F256764E68AC2ED3 + 1E8121CE1056143311E80C806A9E2A9D01F6ED58D72EFF9A005413E03C72248A + 0AEFB79A00D5CAAB8EDA363FEAE83ADB0DE96919F0F0F4406646267D4C3B9BAE + 71026263FF4060E0721A4053FE15E4353F2EAFD22F00D53CFD8B6D0086393BA3 + E4C1835600B70A6EB5DAFD3B02A01ABF74513340DBC6D5017C97FB212E364E63 + FE09F28B57F1941D005504DE22475FB5FB373D7F4ADF0D54BBBF4450098B410E + F4E85BDA3A92BB3FAF55048495E45D80BA1B90A36FEDF001EA78C5CCEE6FED30 + 0282B2FBE8FFDE182602D4CA07040630006DF3AF5700F5FC773601AAD16F3B01 + 1DDDFFA9953F9F998539EE733A1D7DF5EC6B0250E55F6F006DF34F95CCCC0A68 + 12D200DAB2DFD9EE9F9D7D056E6E2E3A03C41C8FD1987FEA673A01FC1FEA1F11 + 125AEA5DDB6F360000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_15_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000065D4944415478DAEDDA095013 + 671806E0178AA828555B5AA1D6B680520FBC6F6B9D4A41458A582F1041A054AD + B53356EB3185A2D6AA33B5DEE55019340805454581411C51E85854B4A8788182 + 12502E09188E1020677743B386B0418624BB30E69BC9EC869061BFE7FFDF2FC9 + 0423B95C0E4D656464A4F131FF9DA7E4A11B16A0AA5EACB8BF8373094C56A0AF + 23751E149A888880451A2FB6CD1E3B0AE0BB2D567EF867770A80CD0A38180FCE + E625EC0094D588D8EE1F5B43CFB20FF047F465469BDEE0F525BB00DE9B8FCB0F + 052E05AF8EFD08041D8C43D4B665060056004AAB9B23B03F368DD1A67F5CE240 + 9D6F0B39C53C8067C05179F8161F0A80CDDA722016313BBF3100300E101CE88D + F29AE619101297CE68D3AB17CFA0CEB7079F601EC07DE31179D8163F0A80CDFA + 757F344EEE5A6100601580CD08740A0036CB00D019000C1160B10C0006009600 + FE0CF2436527F834C81AC0C15FFC50253000B0DD3F7B00FB027C502D94B2DD3F + 7B006C37AE5A8C0374A5320018000C00BA075877389D912138EC630BF8CFB227 + AFA5C3ABA137803D2BBED03B40444A36606CA21542970688BEFC104D92E66BEC + 2842970688CFC887B049A415429706B8788B0B41838442103649B072CE2874EF + 66DC6E04BD028824FA9D855979A50480482B842E0D9053C4231A16B746681463 + A5CBE876213002B02E2445E7CDEF5DED8CE7BC1AD40945AD10A4C49FADAD17B5 + 0B412F006BC32ECBF77EE700A148A6F3C655AB866C5828D488C0AF6DC0B7441C + CC7B9A32FB61882900994C8ABA26799B082F5E0AB0C97D32B3006B4252E5FBBF + 77A40036865DD079F3BB56CD464E610512329F2A32AFA9A412090EAC76D23DC0 + 02BFF51A1FB41AED80E03573F4BE03C82263703E338F188895B48F3735085196 + ADF91F34CE1CDBAD11E7B5004E8E0EB48F3D20AE8504E00B257A07505651D94B + A464152A62A05A7C7E0DEC2DE89F937A298D1980A0F08B8C4198743385ED87AF + 3A7ECC2D651EE0DE0B1942D77DC5E80E50AD0ABE000FB93CC520BC76978B91FD + 8DDF2C00B21AC53294F26A119198C93E00931120EBB7E533A9F3C04317980558 + E5E582557B9258DF01AA00613FB9222C3A993980CE588C0174A532001800B404 + 08FE3D80ED1EB4AA1F36EDD40E80ED0674515A011CD8B10132E277A492E66F81 + A53219A452E266DC1D72713D06DBDA20E7511EECEC062327E711860D1B82FBF7 + 1F62C488E1B899750713C78FC1F51B599832693CAE646462FAB4C948FBFB2A3E + 9B3605E9E9573063C674EA9892920A67672724255D80ABEB6C9C894FC282F9AE + 3819770EEE8BE7213AE634BC3C17E258E409F8F97850C790431CEA9AC5C42743 + 89E4D537D68FF2B9BA0510899B5FF7D5014CCDFA4058FB1226E61668AA7E81B7 + CCDF83A0B204A67D2DD15055821EFD2C5157510CD37E1FA0BEE2197ABDFF11AA + 4B0BD0DBD21A82722E7A5810F78BF361D6DF1AB5254F60666983EAE78FD1C3CA + 0E82E7B9E83D7028F8DCFBE83B700878050F148D87474463B9BF974600A9548A + FC8267DA01ECDBBEBED5EAAB02585B5B232F2F5FB103942B7FFBCE3D8C1D3392 + DA01D7AEFF8BA953262876C0A4C91391F1CF354CFB7C2AB5F2A9A969707272A0 + 764042620ADCE63AB7B903BCBD891D702C1ABEBE5E3812CEA11A26174BEF0012 + A90446DD7A41D228C0A04136ADB63E1DC0B809E37023F3262D80B2F1F6007878 + 2C4454D40978797980C3690940AE3E59AC0098BDFD0EEAF83C74EFDB9FD8FAA5 + 8A2DAF8C8090578C9EEF5AD14640B9F5CDAD6C505756A0880079BFB7956DCB08 + 0CB003BF2807660386A0A6F0814600D5FCEB1C40997F25804858433BFC5477C0 + A8D1A3A895571E350D3FBA1D30D7CD15F167CEC1EDEBB9387D2A1E0B17CD476C + 4C1C96782E46D4F118782FF34444C471DAFC93A535C0EEAD6B5BE5BF3D00C347 + D8E36EF6DD0E01908DBBCD7345C2B9B6012223FF828FCF5205005DFE65C4353F + 2D2CD62D00D9BCE2896A00AAD3BF915F0E63E2A83EFD45FC52C5916EFAAB46A0 + B2309798F69F5211509DFE7D3EB15744401D802EFF12E2C62D2A610640B903EC + 860EA556FEF6ADDB183B6E2CB5F25733AEBFF6F5DF69F64C242725C3C5D50509 + 671369575E79241BF7F75F4601A8E75FA700AAF9A703B0B5B3435E6E6E9B00EA + D35F15C071A613CE27A76096F3ACD702A866DFDBC71B519151B4F9D719807AFE + C9129B98030D7CEAF5BF23D35F504E46C1867A03443BFDFF7F03A49CFE6404AA + 9E64B700E01CE5D0E69FFC9956006F42FD07BC2758EA45B1EAEA000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Delete_16_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006674944415478DAEDD90B4C53 + 671806E01706A8088A1B4ED0A9139531C5FBDD31335082C81027288A45A86C3A + E7924DA72EE25067D464CEFBB8280C41ED401151610C23228B63880A8A171065 + 521044A4605B2E057A5D4F498F055A86B63D07B27E09398543E1BCCFFF7DFF69 + 5323994C064D656464A4F15CD09EB3B25FB7F8E0395F08BA2B243C19D1C14B34 + 5E6CA719B50108DFE48DDA4611DDF9BB07C0EED82B9486DE1A388F5E80C09DF1 + B2635B7CBB4507041F4942ECB6E5F40074873D6047F879FA017E6665501A7A13 + 632EBD00FEDB4ECA8E6E5D014E3DFD2310722401A776AE3400D00250C96B1D81 + 43F157290DFDED7217F2F1CEB0B3D403F8051F97456D0F2001E8ACED87E311B7 + 679501807280D0ADFEA8E2B7EE0161099994865EB7D4997CBC2BF434F500BE9B + 236511DB9924009DF5E32116CEEC5D6D00A01580CE11E81600749601A03B0018 + 4680C6320018006802F82584899A6EF06E903680233F3051DB6000A03B3F7D00 + 078303C01348E8CE4F1F00DDC1558B72809E54060003800140F7001B8E6552B2 + 098E196E8D203747E25ADE7835F406B07FF5277A07884ECB078C4DB442E8D100 + AC8C02B4885BAFF14D117A3440525631042D42AD107A34C0E53C361A9AC42482 + A0458C350B26A097A9719711F40A2014EB772FCC7D5C2907106A85D0A3010ACB + 38F2C0A28E08CD22ACF198D825044A003684A5E93CFC8175EE28E7F0512F1076 + 4090C8FF6D5DA3B04B087A01581F91213BF0A50B0442A9CE83AB169F082C1068 + 44E0D635E173F93858F631D3FD9B216FE6468D2787CF58002A00A45209EA5B64 + 9D22DCCC7F84AA826C8D7FE35CCC3E8D38FF09E03ACF45EDB922BE190E7D358F + 04D81C7149E7E1F7AE9D8FC2D26A5CCC79A298794D25118BE1D05FFDA7D4E957 + AEEA07E0410D10FACD02BD770051C418FC91F358BE21D6A83DDFD22480A3B5FA + E7EA1D802B10EB1D405965CF5F222DB7543106AAC5E5F2E9070889BA4C198489 + A91946BEF72AF1237625F500F75E4811BEE1534A3B40B5AAB90D286073141B61 + F65D36C60F32A60E602DC3036BF7A7D00A4054B3488A4A4E1DA2937310F19D27 + 2258A9D40174C7A20CA0279501C000A02540E84FC17467D0AABEFE7E8F760074 + 07D04569057078F72648E5BF2311B77E0628914A2191482135B380B48987D123 + ED5058F41866E6FD21A87B09134B6BB4F05EE02DCB8168A87906332B1B34D53E + 43EF0136A8AFAE80D980C11070CA613E7028789525B0B01981862A367A5B0F03 + AFA21896B676E09617C3DCC60EBCF247B01AFA016AD885B018FA21B8ECFBF2EF + 1DC029790066C032C49C38AD38861D8D25AF59247F5F2016BFFABCB2A898AD5B + 00A1A8F5BE2F31EE0599A89104B0B71F8DC2C2228C19E380FBF70B306EDC58DC + CCBD83E95327E1FA8D5CCC9A3115D7B27230C769263232B330D7D90997D2FF84 + B3F31C64665E531CD3D2D2E1EEEE8A94944BF0F49C8F734929F05EEC89330917 + E0BB741158718960F8F990C1A3A259F82288A111402291A0B8E4A9760007776D + ECB0FA9A0094C16FDFB987C993C69300D9D76F61F6AC696D009C3E9E4D064F4F + BF0A57571712E062721ABC16BABF36001198582CBD038825621899F685B8B901 + A346D92956DEBCDFDBA8E772D0CB6A90BCF52B152DAF1C0101A7027DDEB12547 + A0B1FA29FABE3B4C3102AAAD5FFFBC04E6834628BEB7B01DA91881DEB6F66828 + 7F088B21F6E09615C27C8803F8A50F48002693816391B1E4EA13450B806AEBAB + EB8029D3A6E046CE4DCC98391D597F65B7E900E5CABF4E07F8FBCBF780181602 + 0319888C7A05A03AFF3A0750CEBF124028E0AB9DFDF60044EB13C19500CAE06F + 02E0EBEB0316EB34188C65888DD50C4084274A6B807D3BD677987F7500AABB7F + 33B70AC6F2A3905705D37E03C9D617722B1547A2F5AD06DB691C819AD2878ADD + BFB31120008EC79CC22AA6BF0240DDFC4BE5D7FCA4B442B7004478C513BBD001 + C4EE3F79CA6472E5BBDA01CA95278E0BBDE41D7026113E4B16233E2E01CBFD96 + 92C713277E4340C00A44479F543BFF62F917BBEC19F50044EB4F983801B7F36E + B701F83BEB3A3E729AA51140F5F6E7B5480E9078018BBD17690420820705AD24 + 01DACFBF4E0154E75F1D40575E00A9EEFEED5F0069DCFDDBBD00EAFFBE236AFF + C987FF4A3F8D00CAF9D71940FBF9274A64620934713BDCFFC78E73C4DDFCBB8A + 0EC8BB95D7E9EEAF7AFF77757345EAEF69707377436A4A2A3C3C3D70F17C32BC + 3E5B88C4B3496D3AE0D4C9B836009191316AE79FF8995600FF87FA1758F254EA + 84A4DC9D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_17_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000062C4944415478DAEDD90D4C13 + 671807F03F4C81618D1871828A9BA00C11BFBF9D33821245C764828A0CD44AA6 + 732E9933E2220E75464DE69CA2031518C2A40141FC248A1305E398A2829F8808 + 918220320BA31D7848E9C7EE8EF42C725546DBBB92F549C8351C07F7FCDEE7FF + 5E492DD46A357495858585CE732B779D54C784F9E1994C0EBE6B6BEC39C46EF8 + 4CE7CDBEB1474301EC48BCC869D39B96CFE2172074E731F5AF1B034C6202220E + 9C417CF842EE010E84F9A3EE450BDFFD9B06009F11E00560F9B61475CCC6C526 + 3101E1FB4F2071F3127E004C610FD87AE024FF003F892E71DA7458F04C7E0142 + 361F511FDAF439240DFC4720627F1A92B62D3503F002502D6D8D40644A36A74D + AF5DE2C5BCDE167D8C7B80A0F0C3EAB82DCB18003E6BCBBE1424EF5C6106E01C + 206A53086A64AD7B40745A0EA74DAF59E4C9BCDE1E75947B80C51B62D507B708 + 19003EEB8748115277AD3403F00AC067044C0280CF320398028039023C9619C0 + 0CC013C02F1142D49AC07F83BC01ECFF5E88BA463300DFFDF307B0377C19A484 + 92EFFEF903E0BB71EDE21CA02B9519C00C6006303CC0BA981C4E3641F7F7ED11 + 3ADB83BA974EAF86D1007E5E39C3E800F1997700CB6E7A21746900D1A5076856 + B4DE636711BA34C089DC5210CD72BD10BA34C08502311A9B140C02D1ACC0AAB9 + A360DDDDB2C3084605902B8CBB17E69754930072BD10BA34405185846CB8A53D + C2CB16AC9A37BA43089D06F017AED779F283299F401B605D74A6C19BDFB3C607 + 9512191A08793B0425F9676FDC79849A0757DFFA7B8E27ECD689F45600EF595E + ACE74A1A6CB0E74B2F107295C11BD72E19D53041E84428ADA8C1409B669DD767 + 5DCCEEDA002A95120DCDEA3722DC2B9360680F825B8062991522BF9AC5006C38 + 78DEE0CDEF5A3D0745E5CF713AEF319D795DA55428E0D68BFD536AA30114D602 + 51DFCC35FA045045C5E05C5E09B921D6B29E6F6E22E061CF7EADD101EA0985D1 + 013455F1EC6F64E697D331D0AEFA7A19B700AB83E7614DE4D936001171173883 + E8D6DD0A2E035F75FC485C8DE8B5F3705074963B00532CCE00BA529901CC007A + 0244FD18CE770F7AD5D7DFEDD40F80EF060C517A01ECDB110615F9334A45EB27 + 404A950A4AA50A96D602C8092986BA38A3A8B804EE6EAEB857F810233D86E1F6 + DD428C18311C37F26F63E2F831B8763D1F53268DC795DC3C4C9F3619D997FF84 + D78C8F703EEB32E678CF608EA7327E879FEF6CA49F3C075FDF39387E2203FE0B + 7C919A760A8B17F941949C8EE0A00024FC7614C26581CC31FA502273CF2DE4BB + 4285E2D5A755C5A562C302C85B5A9FFB2A2B01544D9D03B894938B999ED35801 + 7C7CBC919171BE430071F1227C111AAC1340A954A2B4EC897E007BB7AF6FB7FA + F46B4B6BA85B5E300056B6BDD0502F81B55D3F34D656C3A6B703797C0A2B3B07 + 10922ABCDBC7110DCFAB60D5BB3F5E3C7F821EEF0D82B4BA0C36F683D0585306 + 818333A455A5B0ED37983E0A1C5D20AD7C041B475734563E84C06918EAC5F761 + 3BC00DB2F2425600AA616AB18C0EA0502A60D1BD07142F1BE1E6EA42AFBCBBBB + 1BEEDF7F40AFFCADDBF73076CC486602AE5EBB89A95326B49980691F4F454ECE + 15787A4E47666616BDF29AE3E9339998FFA9CF7F9E006AF5A9E21460C8107202 + 8A8A4D06403BFF0607D0E45F0320276470751D4A0374EB698F66E95F4C042C7B + F6855C5A4347E09F9A0A08FAF447635D351D016AF4EDFA3B3311A046BEA7A333 + 1A9E95E98EC00057D45714B58B8050188C98D8F60054F354E90DB07BEBB7EDF2 + CF06F0A609A0567ED2E489B89E77833E6A565ED70468569E6D02020303909474 + 14C1C181389C908415C210C4C625B2E65F45DEF3E3F22AC30250CDD317760080 + DAFDC78E1BCB34DE5900EDD1A71A1789DA03B0E55F417E892B9E7203A089C03B + E4E86B76FFA6BAA7F4D340B3FB13924AD8F675A2475FE03098DCFDC56D22505F + 493E05A8A70139FA764E1FA2565CC4ECFE764E6E909415A2D7071E74042800AA + F1D0D0A5888F3FC29A7F830268E7FF6D13408DFEA8D1A370ABE0569B09C8FDE3 + 6A9BCDEFF50960DBFC16F8FB2135351D010B172025390D4B821621E948324296 + 06D18DB30168F26F3080D7F3FF3A80F6E80F1FE181BB77EED20005370B306EC2 + 389D005959D9F0F6F6620598EF474620BD6300B1B109ACF9A7BEA717C0FFA1FE + 05D56548EABB2C52210000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_18_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000062B4944415478DAEDDB0B5453 + 751C07F02FA64880A1650999A5782424D423998A9247105354F2458A34142435 + B37332133B42A8597A4EE6038D870CC9053BA8A8F820857CE1514424DF201228 + 0F054407C1DC1C6CECD1EE68B7011B28DBEE7F9CF63B87F3DFE532B8BFCFFFF7 + FB71D90E160A8502BAC2C2C242E7B9E5DBD21431AB66A04E24551D47C49F0293 + F1C3928FE8C7E1BB3310FB8DAFCE8B6D37474301900C22004BB71C51C485CEC2 + 23BE8474FED8C03E09F69AD964013671CE309A74789037598090CD07157BD6FA + 99440544C41C4742D827CC03C484CE45EDB326D2F99B0600C916200210B4719F + 226EED7C93A880B05DA9E0AC5B4006C01466C0869823E4017EE69E6534E950D6 + 24B20081EB1215BBC33F054F40BE052276A52069E34233001180AAFAE61688DC + 778ED1A4572EF0A21F6F8C3EC83C4040D8AF8AF8F58B680092B17EE73E246F5E + 6C06601C202A3C10D5FCE619109D92C968D22BE679D28F7F8CDACF3CC0FC356C + 45ECFA601A80647C1FC9C5812D4BCD00440148B6804900900C33802900985B80 + 609801CC0084007E8908468D09FC35480C60D777C1A8159A0148E74F0E6047D8 + 22D48B64A4F32707403A71CD601CA02B8519C00C6006303CC0AAB84C4686A0CB + 3B7D1132C595BA964EEF86D100B62D9D68748084F49B40B7EE7A21746900EED9 + 3B104B9BAFB1B3085D1A2035AB1822B1442F842E0D70EA5A29840D521A412496 + 62D9B411E8D9A3DB7323741A606EF06A9D2707BACF000520911A77165E2DAA52 + 02485A205CCF2B42F59DECE7FE1E87F76ED589D521C0646F2FADE78A9F593302 + 5050CE5326DED406A1B4E231DEB21277F8FCD367CE3103B02A3ADDE0C96F5FE1 + 83873C3E0422491B0499F2C71697577788603480228115B67FEE0591446EF0C4 + 35834F252C12751AA1CB03C8E53208C48A76116E97F030C446C42C4021DF1291 + 5F78D3006B62330C9EFC96E5535150F604C772EE43D4A8FB851799540A673BED + EF521B0560396B3A56449E40D457D38C5E0154506D7032A74839106BB49E1737 + 8810BD723A62B927980330C5600CA02B8519C00CA02740D44F61A473D02BBEFC + 76B37E00A4133044E805B0735328E4CAAF91499B5FFF97C9E590C9E4E86E6387 + C6A7B51832D811058545707176C2EDFCBB18EE3A14376EE563E4085764E75EC7 + B8D16EB878F94FB88F19850B593998E03116E7CE5F82D7C4F1C8387D1E53274F + A4D7A3697F6096EF141C3A72127EB3A72139E51802E6CD4462722A1606CC4142 + 620A58017ED8FBDB7E042FF2A7D7E8DD1CFA9A9B94F70452E97FEF551416971A + 1640D2D4FC3F42AD012CADED207AFA37BAF7EA0B71FD63BCD4EB75086B2A61D9 + DB1E0DB595B0EA630FC1930A58F67913CF9E3C80CD1B6FA3BEAA04B6F68320AC + 2E85555FE5714531ACFB0DC2D3CA7BB0B67744FDC3BF60E5E004E1C3BBB01D30 + 1475A579E83DC019BC927C55E2F1095C2C0961E90490C964282E79A01FC08E1F + 57B7D97D2AE496B69037D4B7A800F5CEE75EBB05B791C3917BF506468F1A896C + 65058C73FF80AE80B3995998E4E941EFFCEFE96730C3C79BAE8094D41398F9B1 + 0F0EA7A661EE1C5F1C48398AF9F366819B7CA84505B406A012A636CBE8005299 + 14163D6C206D14C2D969709BD27F510075E2D4EAE33319C78EA7770A80DA7D2A + 880058BFF22A04753CF4ECDD4F59FA55AA9257B780885781975F73D0DA02EAD2 + EFE5E008C1A312550B50C7B60E835BB6407F27D49517C0BABF33F865F93A0134 + FBDFE000EAFE570348447C7AF8B9B838232FEF0E860D7B0FD76FDC6E5101EA9D + 57AFD4CE7B7A4E4066E605D59A9E7E5AB5F3EA559F0AD0DC7D2AF406D8BAE1EB + 36FDAF09E0E43404050585CF0D3066EC683A715D00EAC43B0288DB9384659F05 + AA00B4F5BF5C79CDF7CB2A0C0B4025AF7A622B00CDE9DF58578D6ECAB5F5F497 + D455A9566DD35FB3056ACAEE2AA7FDBB740B684E7FBB81AE740B5000218B0311 + C7E668ED7FA9F2A3B4BC921900CD0A50EFFCE52B57E9DFFFD4CE5FCABA8CF11E + EE3A2B202D2D03BEBE53DBDDF9C0407F2425ED078BE50F763C0721210B919090 + A8B5FF0D0AA0D9FF2F02E0F6BE1BAEE4E4AA00B22E66C3E3C3713A01DAEB7D7F + 7F3F3A710E878BA020964E0075FF1B0CA075FFB706A012EFCCF4175653ADE048 + DF00699DFEFFDE00A9A73FD502B5F76EB60060B3F76AED7FEA737A01FC1FE21F + DAAC40EA45993BF80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_19_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000061D4944415478DAEDDB795053 + 571406F00FEA82888AAD56D06A15478A1475DC502C3A8250A54A5D8B95B2968A + 3AF68F6AC58E50D45A75A6D6BDB24B41CDA0A2E242152B020E222A7567D1424B + 4410D14013244608599A17E6BDC6908092E4DD30CD99616E2004DEF7BBE7DC09 + 01CCE47239B495999999D6FB56EC489747AF9E03BE480212F58C2F4431970751 + 9318F977B988F9D65BEBC5B699B1B30250D5D82C4335EF3912CF5C230F109970 + 81D5F03F2EFD98B91D117B9E3C00C9220210BAEDA43C2E6C1E9ED48B49E7C7C6 + F873885F3B9F2CC096E48BAC868E08F2200B10B2F5987CFFBA4546D10191D167 + 9018FE19FB00D1610B51F7A299747EE300203902440082361D96C7AD5B6C141D + 10BE370DC9EB9790013086336063F449F2003F73B2580D1DE637832C80FFFA83 + F2D8882FC06B203F02917B537168538009800840B5A06504761FCE6635F4374B + DC99DB9BA28EB10FE01BFEAB3C6143200340B236EC398C94AD5F9A005807D817 + E18F9AFA9633202A3587D5D02B7DDC98DB9BF71D611F60F1DA7879CC86600680 + 64FDB09B83A3DB424D004401488E805100902C138031009846806099004C0084 + 007E890C46AD11FC34480C60EFF7C1A8139A0048E72707B02B3C10029194747E + 7200A483AB16EB009DA94C0026001380FE0156C7E5B072083ABEDF0F21339DA8 + 6BE9F06E180C6047E87483032466DC01CCBBE884D0A9013859C56892B45C6347 + 113A0CB030788DD63B87BACC011B00697965CA3F85A3106E1596A2A638FF8DBF + C689A4ED5AD1DA05F0F470D7785FD90B4B56002EDCE442F852C22070AB9EE23D + 8BA6D77E7CE6C56CC3028825863D0B6F94562B00C41D46E8F4002515D45F8336 + 7718813580D551197A0FBF73A5172A79F56810895B214815DFB6ACA2A65D0483 + 0194365860E7727788C432BD0757AD7A2AB048D461048300ACF09B8D553159AC + 00C864523434C9DB44B8905340FD6E10319CB3EC011863B106D099CA046002D0 + 1160DF4FE1A433E8545F7FB7553700D201F4513A01ECD9120699E273A4929657 + 7FA53219A45219BAF4EC83C6E7751831DC0E250F4AD1CDB20F44CFFF41975EFD + D024788AB77AF587B0F631BA59DBE065DD6358F4B541C3B32A74EB3B10225E25 + 2CFB0F86A0BA1C5636C320ACE1C2A2DF1008AACAD0CBD60EFCCA3258DAD84150 + F927AC077F805A6E09AC068F049F5BA878DF01BCF2222C0FF1456C620A82033F + 47546C3273CDCD12092492FF5EA97E50C6D52F80B8B9E53F44D4011C1DEC71AF + E83E463B8DC4EDBB45183BC609F905B730C5791C2E5FFD03535D26223BF72AA6 + B94E46564E1E66B8B9E27CE625CCF29CCEACA7D27FC73CEF99387EF21C16CDFF + 0429A9A7E1EB33170753D210E0BB008907531112E0C3044F48E46069889F5600 + A9548AB2F247BA01ECDABCA6D5EE5365DEDD0A6291E015003A78C1CDBB701E3F + 8601C8BD5280290A80DCBC6B1A017ECBB888395E1E0C406ADA59F82C98AD11C0 + CF7711920E1CD1084005A636CBE00012A904E63DACD12CE4C3C17EB872E72D7B + BF8D063E0FDDAD07285ABF5AD9F2F408887855E8F18E2D33022F9E3D42CF7787 + 284740B5F51B9E94C372C030E5FB56B6C3952360616B0F61E57D580DB207BFA2 + 0496831C50FFB0482300B5FB54B10260D6B527248D4206806EFD51A33EC4ADDB + F7306EEC6814DCB80DE7096391AF1881B63A80DE796AF5F2F2C4E9331998FBA9 + 174EA4A563E1026F1C4D3D85C53EF3C04939DE6607A8CFBFDE01E8F9A701C4A2 + FA56B3AF09800E4EAF9A669F0A9E9191A937002A3C553A036CDFB8AAD5FC6B02 + 503DFD1BF9353057AC62410DBAF6EECFB4BE985FAD5CA9D6B71E68A775046A1F + DE579EFEED8D40DCFE4358F695BF1240D3FCCB14D7FCF7C32AFD0250E1950F54 + 03707474406161F12B1D70F5FA0DB84C9AA0B103DCDCA621272757B9D23B4FAF + F4CED3ABFACED3AB2A80A6F99728DEB8158F0D0B606F3F0225250F5E01A05B5F + 1D20FBD2157CE4EAC2045707484F3F0F6FEF59EDB63EBD52C1572E0F6200D4E7 + 5FAF00AAF3AF09E0759E00A99EFEEA4F80B49EFE6A4F80FA0C7542DD5F7798D9 + 5F161A88B8F8031AE75F6F00EAF3AF0EA0DEFAAAA7FFF889E371FD5A01264D76 + 46DEE57CB84E9DC2EC7C6666363C3DDDDFE8F0F3F7577440120741417E884F48 + 46484800E2E39334CE3FF5319D00FE0FF52FF4B63CEAFD81B013000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Delete_20_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006174944415478DAEDDB0B4C53 + 571807F03F4E1922468C3841C5294444449DCE3171C80445878F89C270325418 + 93695832E7C44518EA9C9AE8743EC653ED744840ABE26B8A8AC0824C1DE21B11 + 24A3225891CA5AA4A2F441D77B49AFA5B43EDA724F89FD12724A5BA0DFEF7CFF + 730329160A8502BACAC2C242E763515B4F28E2BF9D0A61A30C6C55E583FF9055 + 74178D4DD256F70B85F54858324DE78B7D618FC60288DB79863588CE5D2CE1DC + DF8EF9BC8CC7671F60F1E6E38AC4A5D3599D00F5AA158A718B27504E8304E7AF + F390F4FD8C370B80AA67D266F0058FC13976913C009B11A0EAE7859399DBB1C9 + A7C803902C2200911B0F2B52A203F0A05E42BA7FACDE71123B96CF220BB06ECF + 59569B8E0D9B44162062FD01C5AE15412631017189C7C089F98C7D80C4E840D4 + 3D918274990400C9081001085B93A1485931C7242620667B26F6AC9C4B06C014 + CE80D58987C903FC9296C36AD3D1A113C902CC5B99AA488EFD028206F21188DB + CEC5DE35F3CD004400F8A296086CCDC865B5E925737D99DB6B120EB00F1012F3 + BB62E7AA050C00C95AB52D03E9EBBF3403B00E101F3B0F35F52D674002378FD5 + A6A3827D98DB6BE3F7B10F3067F90E45D2AA70068064FDB4350DFB37469A0188 + 02908C804900902C33802900982340B0CC0066004200BFC585E39109FC36480C + 60FB8FE1A8139B0148F74F0E604BCC02881AE5A4FB270740BA71F5621DA02395 + 19C00C6006303EC0D2943C560E41B777ED1031C59D7A2D7AEF86DE0081E1CB74 + 3E38D0733A36474E6877004ED63514DD28436DE925BDBFC7A1DD9B74E2BD14C0 + 6F92AFD6C7CA9F58B3029096730B4D320578D50FD1DFAAE9B5BF3EFB6C6EC706 + C82C28A7DF0AA72F42870738739907F15399DE08ED0E2091B5EF59587487AF04 + 90E88DD0E1014A2A05F47B83F545681780C5A1D3A8CB602B80A50959466FFED7 + 287F5409EAD1D02869832057FED853D97938B46D39A44D4FE9E727A59D600FC0 + 148B35808E54660033808100F11B6248F760507DF3C37AC3004837608C320860 + DBBA68342B9F2397B5FCED4FDEDC0CB9BC199DBBF5C0B3C7751836C419D78ACB + F09EFB10145D2BC108F7A1B87ABD18A346BAE37CE1158CF3188D73172E61BCE7 + 07C8CDBF005F6F4F9CC92DC0645F2FFC793A0FD3A7F8D0EB277E1370E4F86904 + CC988283874F2268D654A4738F2224782652D333313F643638A95C44CC0F4632 + 271D7343829191CEC5D88F7D907BEAF925582A9341267BFE77CAD2729E710124 + D296FF0FD004707375C18DE2DBAF04703AE71C26FA7829AFE37FD18DABD6D701 + 58141182F894540406052023E3A05600B95C8EF28A7B86016C59BBACCDEEAB03 + 0C76764249E91D585AF740835080B76DFB40FC880FAB9EF6CAF53E2C6DEDD128 + A846D75E0E68A8AD8665CFBE78527B0FDDDE190011BF0256760320AEA9808DBD + 1344D5E5B0EE33885E6D1C9C21AA2A8395830BC455B761E3381442DE4D58F773 + 45FDDD6206606144281292F7300D539BD5EE0032B90C9DBADA422A16C2D5C5B9 + CDCE175EBE0E8FF747321390FF7721BC3FF2A027C0DB6B2C72F20A5A4D806AE7 + 552B37F30482674F7BE104842FF81C3B3969AD00A8DDA7CAA4003CC68CC27965 + 04C62923905F70516F8039C101484B3F88D09020ECFE639F4E00F5FC1B1D4095 + 7F0AC0A24B37481AEB99EC77EE6E8726D14326029DBAF78644544347E0714D25 + 6C7AF585B88E4F47801A7DDBBE4E4C04A891EFEEE084860715BA23D0CF05C2CA + 1226022F03A09AA7CA60804DABBF6B937F6D00AA09183E7C18AE5CBD81D1A346 + A0B0E82A3D01AA9D57ADBA0E3F6AF5F7F7C3A1CCE3089C3D8359F7738F689D80 + 945D7BF1F557F368006DF96F56BEE67FEF561B17806A9EFEC25700B8F04F113C + 3F1CF34A0054E35959D95A01341BD706A02DFF32E507AFF23E3B00AA08BCA51C + 7DD5E9FFB4EE3E7D35509DFE8D822A58F776A447DFC67E90F2F4E7B58A80B04A + 7915A0AE06CAD1B7751C8247BC12E6F4B7757485A0A2183D06BA3311A01A8F5A + 14C60068E6DFA800EAF957077071198C929252B8B9B9E2E6CD5BF404A8465F73 + 02D40F3F1F1F6FE4E5E5D3AB6AE78F1ECBC2CC4FFD5F3AFAEAD9D706A0CABFD1 + 0034F3AF09A06A5C33FBDA4E7FAFF1E398C6B3B373E1E7E76B1040E4C2302425 + 73B4E69FBACF208037A1FE0778B120EAEDBF944F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_21_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000064C4944415478DAEDDA0B5054 + 651806E0172F84A889690AA94D4A83A8E0250933D1144121244908951045D234 + 9AD14C688450337526D35188AB8A12328008081A8A724D11904021112F280B0A + 2B7271B92C0B2CBB6C7B96F6B4E0A2B6C0F99771BF19E6EC61CFCE9CEFF9BFF7 + 67D95935914884EE4A4D4DADDBE7B6F825898E7C63061EBF5D72EE1E9088DEAE + 039B2D50545A85F8EC87E0B5B4757B9D502080B7AB79B737FBC21E1505703D92 + 20F2DDF2290DD09755DF2CC085ECFB282AAB91FB7C6B330F7E5BADC800707882 + 3E079056D99367B8985B0A5E6BE769E070EAC903781DBBCC18C4A0C1EAD01D3F + 9A3EBFC762330FB0F9D07991FFB6658C4E806C5571B8B8CDAA164F031F99052C + 047C6FFD7A0150D5D2D60E76750382CF65930760320254FDBC6109FDD8333091 + 3C00C92202B0F1C05951909B0D9ED4F349F78FDD472FE0A8FBE76401F6852433 + DAB4E73A33B2002EFBCF888EEFB0538A09F0F23F87608F2F9807F077B3456D53 + F76F515F2B0092112002B06E4F842868C74AA598000F9F5884EC5C4D064019F6 + 80DDFE67C903FC1A96C268D36E8E8BC902ACD9192A0AF4FC12D58DE423E0E513 + 85537B9C54004400D8751D11381291CA68D35B579BD28FF7F89D611EC0C1E384 + E8D8AEB53400C9DAE51D81F0FDEB55008C03F87AAE41657DC71EE01795C668D3 + AEF68BE8C77B7D23990758E97E5414B0CB990620593F1D09C3E9031B55004401 + 484640290048960A401900541120582A0015002180DFBC9C51A304FF0D1203F0 + F9D119B55C1500E9FEC9011CF6588B3A9E9074FFE40048372E5B8C03F4A75201 + A8001404B075DEAE543957B4624E1EEC76255F0A606E662AF7B9E2264D466E7E + C84021C66BB42AFCFAA4E4D4BE0338B471619F03045FCC078B5DAB3042BF0708 + 4BB98D568108ACF2A70A21F47B80D88C62C957E11445E8F70097F358E0360B14 + 46E81380CD8E56D816942601E00BFAF60F45EE7DB61880DF092139351D31DEEE + 686B6DEE746D4058027300CA588C01F4A75201A8007A08E0FB8B07E91E7A54DF + FEB0BF6700A41BE88DEA1180F73E37B48BAF110A3A3EF911B6B743286CC7A0A1 + 23D0D2508B699375915F780F330D262337BF084633A7E27ADE2DCC996D88F4CC + 3C7C6CFC01AE66FD85F9733F44EA952C982E988BCBA91958626A823F2EA561D9 + D245F4313A3E1176CB2D1019938055B656088D8C83D32A1B9C088BC17A475B04 + 859C86AEA111EEDEC8C618BD59A8BA7F53722C2DC8A2EFB94D208040F0DFA754 + 778B59BD0BC06FEBF87678570075CD11E0353CC3A0E1A3D15AF7140387BF0D6E + 4D05D4B5B4D15C5B018D91DA68AC2A87FAC877D054F50843C7BC8B3A76098669 + 4F04B792058DD1E2F3F262688E9D88868A07D0D49E84BAC7F7A0A1A307EEE33B + 1836610A38AC5BD09AA08FEA92421818CF437EE69FE2A3096E5C4B970B20140A + 515CF2A8670087F76E7F6EF5E501501340ADFCAC1906C8C92B80F1EC19C8CCB9 + 2199802BD772B0609E313D019752AE62E9E2F9F4CAC725246199A519E2CE5F82 + 8DF55244C526C07E8515C2A3E2E160BF1CA1E1B170725881E0D028B838D92330 + 381CAB1DEC712A341CC69F98212339916E985AAC3E07100805D07873149A3835 + 983EF57DC9E84F3798829B0585AF0CB07891091293D26161BE906EFCFF006C72 + 71806F50286CED6C1011114DAF3E558C000C18A285362E07FA7ABAF8BBF00E34 + DF7C0B8D9C6ABCA135563CFA6CC9C84B23C0AB2EC790513A7223201DFDE13A93 + D0F8A4441201EA7C988E6EE7088CD303A7AC089AE3F4515F5A48036C7071845F + 6088DCFCF73A8034FF5280D6861A4CD5D79300BC6802A8955F60F211AE64644B + 8ED2955764021C1DEC70F2F74838AF5D8563C161DD0250CD53D5638083BBBF7B + 2EFF1480DAE0A1E0F3EA5F0A606C348B6EFC5501A48DCB02ACB4B74158787427 + 80A0E3A7F0F5576B2400F2F2DF2EBEE787A5E5BD0B40352F79611700D9DDBF85 + 538901E263D7DD9FCF614B8EF2767FD908D494DE11EFF693E908C8EEFE23DE33 + 9044A02B80BCFC0BC43FACB20A6600A4136068380D39B937252B9F753D1773E7 + 18D12B9F9A7E0DA60BE7753B01D1672FC0DADA0231B1E761BBC21AA7A3E2E4AE + BCF44835EEBA691D0DD035FFBD0A209B7F450152D2323AEDFEB2009696E6883F + 7711CB3FB37C29806CF6E50148F3DF6B005DF3DF15806A5C91DD9F5B49456112 + FD0648EEEEFFEF1B20E9EE4F45A0F6417E27001FBF60B9F9A77ED72380D7A1FE + 019CEB0EEA107B6FD30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_22_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006AE4944415478DAEDDA0D508C + 791C07F06F5EBA44CA09E56DAEBA095DF29688B8F4E2AD9CA82BBA44C271DD8C + 9713A32E9CC3CC394EBA92105D9A229550C9F57A4A1251242F9DB6944A2FB637 + 5BBBEDCBEDB3669FDBB2EB5C2FCFB38DFDCDECFCF76DA6E7F7F9FFBEFFD96D56 + 4920104056292929C97C6D6B608AE0B78D166071F8E8C96A68E182C562A189C5 + 018BDD86E6168EF0267C8ECD014F78E9CCC616AC5B3C096A0394655EEC7B7B94 + 77003E9F8726B6E0BD08AF5E3763A7D34C6A01360724097CBFB3220176042676 + 7BF387362D446149352E673F07ABB54DE6FB785C2E8E7958530BE0E11B2FF0DF + BCB8C7278028220609D9CF50585A2BF575760B0B015B6CE80160B2B83D0E20AE + D2CAD7B876B7441403C962321BE807F039F5276510FDFA2B436FB426F9F829A3 + 827A804D47AE0A8E6FB3A5740224AB9AD98C478C1AD1419895CF40E00F4B3E2E + 00A25ADBF8A8A86944F0956CFA01A88C00513FAF9F4FDEF73E91483F009D450B + C086439704419E76A86CE0D0DD3FF69E4CC0C91DCBE8053810924C69D3DE6BAC + E805703F7851707A97835C4C80CFF12B08F6FA9A7A80E39EF6A87B23FB23EA47 + 05406704680158B32F4210B4CB492E26C0CB2F0621BB57D203200F67C0DEE397 + E807F8352C85D2A63D5D2CE90558B53B5470C2FB1BD434D11F011FBF489CDBE7 + AA00A005A0A2FE6D047C2352296D7ACB4A0BF2FEBE808BD403387B9D119CDAB3 + 9A04A0B3F61C8B40F8C1B50A00CA01FCBD57A1AAE1ED191010994669D31E8EF3 + C8FBFBFDCF530FE0B4E3A420708F1B094067FDE41B860B873628006805A03302 + 720140672900E4014011011A4B01A000A009E0771F37D4CAC1B741DA00FC7E74 + 435DB30280EEFEE90338EAB51AF52C1EDDFDD3074077E3924539406FAA4E03D8 + BB6D97AB5DEE6C459F3D2C7327FF13C0DACA02BDB992925315003D0250F44695 + 920606F4E561B40A5B3E018E6C30EF7180E06B796054D4751AA1D70384A53C02 + 9B2B00A3FC55A7107A0460938B0DB605A5510210935924FA291C8110177715B1 + FE5E32DF1B18164F1D803C166500BDA914000A802E02F8FF22FBD0E90DF5FDCE + 835D03A0BB81EEA82E011C3BE009BEF03D3CEEDBEFFD3C3E1F3C1E1FFD06AAA3 + B5B10E5F8CD3435EC15328ABAA83D5F81AFDD434C1AE7F85BE6AC3D05CFB12CA + 1A5A68A97B0995215A68AA2E87F2909160D5944175D818D457146390960E9AAB + 1850D11C8BFAF222A869EB82595604552D5DD4973D85F9FC45484E8883A68E01 + 2A8B1E6088CE44543FBB8FE1FA5344ABBAEE64543ECA26AFB98DCB0597FBEFFF + 289E1431BA1780D3F6F6B7C11D01261B8EC3DDBC42184F36C0EDDC8798316D22 + D2B372613E6B1A5232726039C70489A959B0986B8AEB29195860390771D7D360 + BB601EB9465D4E84C3D285381F1D8F15F636083D1F0BD715763813160D231353 + E46665B403A828BC83A1FAC63201783C1E8A8A5F740DE0E8FEEDEFECBE2C0071 + E399B7F3603663B2086096C954DCB89983B9B34D907AE3965480D8F824D8D958 + 9300E151717076B06D07B0D6C51E412117A037D1184FEE659300230DA6A324FF + 16D930B1593D0EC0E571A1327828DE306B6164F0B968E755077F8A26660D3ED1 + 18211CFD0AD1C88B23C0AA29C780A1DA6404DE54BFC0C0E1634511901CFDA6CA + 62A88ED0113D1EA4AD278A808AB63E9ACB1E63D0287D304B857F67D478349414 + C0D06436F2B2FE12AE66B877339DDC7DA26801108FFE944986C8C9CD87C9B449 + C8CAB9F7411340ECBCDD920588BD7A5DB446C6C4C371B90DC2232FC3D9712942 + C363E0EABC1CC1A191707775C489E070AC7476C4B9D070987C6985CCE444A9F9 + EF760071FE09803E0334C06EAC25B36F643801F7F30BA402881B17AF44E30BAD + CD9198942E5AC58DFF1F808DEECEF00F0A85BD831D2222A2A4E69FA82E031CDE + BBF59DFC4B02188CD7C78382C7ED4EFF566615FA08574E7D15FA0F1E468E3E87 + 59215A89D1D718A92B3302B5258FA13166DC7B23E0B67A05824E9FC3B7EB5621 + E04488D4FCF385D7FCBCA4BC7B0188E689EA08206D02326EDDC11CD3E9A29D9F + 6B36133732B345AB78E7654D8078E7C5ABE4CE138D9FFDE3FC3B00D2F2CF15DE + 18A52F7B0640A9FF4070580D5201C4A34F0098CE30261B4F4DBF090BF3D93201 + A22E25C061D962A9A3EFE2EC40362E5E89C63D36AE21013AE6BF5B0124F32F0D + E0433E00499EFE1D3F00C93CFDC74C0093F1501889F1A8292E80FA6786A8FB3B + 0FEBDD5D640288F3DF6D001DF3DF114072F4A74E3142CEDDFB30319E822CE104 + CC1246403C01296999B09C6746EE7CDCB564D82EB26A77F82DFD6A11A263AEC2 + 7EF9125C888C8593A31DC2C2A3DA4DC0A9E0B076007E01C152F34F3CD725808F + A1FE01C48D26EA7061FB850000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_23_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006D44944415478DAED9A075014 + 7718C51F0A08881107BBE244C9A012EC880D1090A6602C20284194108D86CC58 + 62192196187526C64A6816540802222028559A0A2276888885912288C881473D + E4B892DD736E05B953271CBBE7786FE6E6DBBBBDB2EFF7FFDEB7B733AB24140A + 214D4A4A4A52F76D3C96293CB8DA0C5C9EF4CFCB4285652C705ADBD0D4C2251E + 3C629B8B56E237396FDAF093DD44F452E9A1F4B1EFF8A0475901D8E8972473F3 + 873CE7A29C558F460EB713043EF1B30DCDDC4F82D02D003604A40B0FADB10087 + 2B90B9F1F6AA270D73385221B01B5AF0E3BC09E8A3AE2AF5603F6B0002011F8D + ADC20F4278F5BA095B9DA7D30B609D5FAAF0C8CF9614802D01C93237BF7FAD2D + 0A4BAB1197FB4C947969E2F37838EA69452F00CF230942DF75F3BABD03489131 + 48CC7D4A0CC41A89FB5B5B38F05B6FC70C003687D7ED00C42A7BF91A49774A45 + 31682F36BB9E7900DB4F5CA60D84B28A2A7487F7A79E3F29A9A41FC0DA839784 + FE1BED69ED80F6AA6637E161094B340873F24B10F0EBFC2F0B00A9376D0254B2 + 1A107431977900744680D41FABACA96DEFC064E60130294600ACDE7F41786CF3 + 42BCACE732ED1FBB8E27E2F89645CC02D87B268D56D3DE2B2D9905E0B1EFBCF0 + E43647B9E880EDFE1711E4B5847E00FE9B1D50DB2CFD2FEA170580C908300260 + E5EE70E1B16DCE72D1015E3E3138B363193300E46106ECF2BFC03C80BF42D369 + 35BDD9750EB30096EF0811067A7F0F5623F311D8EE13897F76BB29003002A0B2 + EE6D048E8467D06A7AFD320B6A7BB7DF79FA01B8789D129ED8B98202C0A4761E + 0D47D8BE1F14006807E0EBBD1C55F56F67805F6426ADA63D9DCCA9ED3DBE11F4 + 0370DE725C18B0D39D02C0A47E3F128A73FB572B00300A80C908C8050026A500 + 200F00141160500A000A000C01F87BBB3B6AE4E06A9031003EBFB9A3B6490180 + 69FFCC0138ECB502751C3ED3FEBB0F8083FB26A93B55068E66DA7707B5553F91 + BA2FFAF401A9703E0AC0CAD2029FB352D332140014001400BA014051B3062D06 + D47BF2315CAD55BE00AC75B523EF150679AF70772B28290FF1894988F5F5FAE8 + 7B034213E803208FA20DC0E724050005802E02F0FDF3E3C3479EF5CBD67D5D03 + C0B40159A84B008EEEDD0C01F11E3EEFED551F5F20009F2F8072EFBE78D3508B + 6F47EB22AFE009261A8CC69DBC42184ED4C7CDBB0F306DCA385CC9B90BB39953 + 909E750B734C8C909C91035B8B9988BF9C057B6B13C4246460B19D0555C3A293 + E0E2301721E7E2E1E66C8F93A117E0BCD80E67232F62C1A2EF10753E0696D656 + 484A48C2E45966B877FD0ABE1A320A55C585D431B7F178E0F1DE5DA13E2E2A91 + 2D006EDBDB3B43BB02E052CA35CCB731ED00C0DEC61C5171C9705C608B88E804 + 2C75B04348442CDC962EC4A9D0680AC03C3B5BC4C5C663FA6C7364A7A7C2D0D8 + 0C3999EF6ED06A0F80CFE7A3A8F879D7001CDEB3A9D3EA4B02A0AAD1178D6C16 + 7A690D42534D25D4FA0D26EA0BA86A0D0687550175ED2168ACAE806ABFA168AE + 7E8EDE0347A0AEB2186AFD47A0A9AA189A8347A1AEA2081A83468AAAE6105DD4 + 953F8199F55CA425C64353672CD8250FD06FE438543FBD8F817A935059781BDA + 7A8678F93097324C2E56B703E0F17950FB4A1BCDEC1A8CD7FFA6D3CA67DFCC83 + F1B4895407A45DBD09CBD9D3441D60613A0329E959B0996382F894CC0E2B2FAE + 6151F17071B4EFD001E38D66E06E4ED6070190AB4F4A2E00184D99809C5BF730 + D36832AE5DBF05D35946C8B876E37F037073598CA09048E88E33C4E37BB91480 + A1FA53519A7F4362FE650E409C7F1280B2A6365AD8AFA8EC2BF7E98FD6BA5754 + 047AF419006E5D9528020D5565D0D41E8AA6DA4A5104C8D6D71A3A8A8A00D9F2 + 7D8861D6F8B2B85304D486E8A1A9FC113487E9815D56088D6163505F5A0003A3 + 59C8CBB94A5463D13094947F525D067060D7864EF92701F450D7426B430D0560 + BCC158DCCF2FC0A40906B87537BF430788575E5CC52B4F565B2B33C45E4AC1C2 + F936540D8B8C838BD302AA8684C5501DE0E1E684C0A0302C73714270F0594C37 + B342765AB2C4FC0B88637E565A215B00A479529F0220EBC66D98CC982A110069 + 3C39F5CA2701686F7C8D870B557D0283B164C92284874749CC3F8F789494BDE8 + 5E00FA63F4F06FC1232A023D89D6174FFF96DA17A2B38178FA7358E5D018A023 + 6A7DCDC12389E95FD22102EC72E22C409E0D88D6D7D2198D9A92426AFA6BE98C + 01ABB8007DBF361045C07DC552F8059E81E79A95A22A29FF3205D03EFFA20FAA + F40697534F0168DF01E2D66FDF01A6C6D3919E998D39E6C6D4CABFDF01913109 + 7022FEF87CA8F549E3278242B1CAC3552A0071FE6506E0FDFCBF0F405AF6C9E9 + 3F9300702D3B572280F8A434D8CFB5FC2400AE2E8E381D1C2111808F5F90C4FC + 93AF7509C097A0FF0036F247EAD36A15EA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_24_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006F64944415478DAED9A075014 + 7718C51F061111220663099A899A002A560C288202D214100B01218A12630BCE + 58223A425063D499187B28360C4308282208D2398A4A10B02B6AACA052A479D4 + 038E2BB95DE7D60BDC29C91DBB18EFCD30FF5DFED7DEEFFBDEB77B33A722140A + 214B2A2A2A32F7D61FC912EE5D6E81AE56DAD5223436F3C069E5A2952714AD3C + AC98350EBD7AF650E9EC6BBCD1A3BC00B83CD9CF5784AE3C281301E0CA05E19D + 0670F76995C8705B47082D6D58E130BE53106801B03E3059E1E6F779CFC4F3AA + 3A3470B81D20F0456F5BDFC4ED14842E01B02E3843B86FA515385C81C28D4BAA + 8E30CCE1C884C0AE6FC6B7A23868F55693F961DF690002011F0DADC23742A878 + D9884D6E93E905B026305D78E03B6B0AC0C6E014859BDFBDCA1E778B2B1197F7 + 98CCBC2CF1793C1CF4B6A11780F7814461C09A595DDE0184881824E53D100DC4 + 6AA9FBADCD1C04AE756006009BC3EB7200623D2D7F89E42BC5640C24C566D731 + 0FC0FF581A6D20547BAA61C490FED4F9FDA232FA01ACDA7B4E18B4DE91D60E90 + 5425BB11778AAAC841987BB308C1DF3BBD5F0008B5B4095056558F90F83CE601 + D01901423F2DB3A58EFD0EA7300F8049310260F9EE58E1119F3928AFE332ED1F + DB8E26E1E8C6B9CC02D819CAA2D5B4DF126B66012CDD755A787CB34BB7E800FF + A07884F87E453F80209FF9A869927D8BFA5E016032028C0058B23D527864B35B + B7E800DF433108DDE2CE0C80EE3003B605C5320FE097F00C5A4DFB2C9CC12C80 + 455BC28487FDBE465503F311F03F1485DFB77B2A013002A0ACF655040E4466D2 + 6A7AADBB1575BC3DF034FD003C7C4F088F6D5D4C0160525B0F462262D7374A00 + B40308F05B841775AF6640605416ADA6BD5D2DA9E31D0127E907E0B6F1A83078 + AB17058049FD78201CA7762F57026014009311E81600989412407700A08C0083 + 520250026008C0AFFE5EA8EE06DF06190370E8072FD434FE8F01CCF7DA2073B3 + E7007D7427006D95F765EE9FF96D8F4C386F0560636D25752FFB5629F6FB2E46 + 2D87CFB47F1280C5585DA97BE9ACCCAE03D09D443B8077454A004A005D0060D5 + 4207A67D49557078A212002D00DE2529012801C80920E0675FA63DC8A5D59B76 + C9078069038A905C000EEEF48140F4183EEFD53D3F5F20009F2F806A9FBE68A9 + AFC168FD11B851781FE30DF571E5C65D4C1A3F0AF9576FC3C4680CB273AFC2C2 + D40819170B30C3DC182999B9B0B7324542DA4538DA9A23263113F31CACA835E2 + 4C323CE6CF44D8A90478BA39E278782C1C9C1C10171B8FE9569660A5A5C3C8D4 + 1C79E7B3D0F73343D4151782C7E381DBF6FAA77A6DA2731EEFF5F793BF1E1629 + 1680F8CDDA0350D3E80B4EFD4BA86AF5476B6D053ED0FA188DD5A550D31E84E6 + 9A52A8F71B8486CA12A8F5FB044D95CFD067C0A7A82D7B02CD41C3D0F8A208EA + FD45E7250FA1317018EA4B1F4163D070D43EBF8F39B3ED111D93081B3B6B2425 + A660CA340B5CC86061E2540B149C67415555159CE616A900F87C3E1E3E79261F + 80FD3B3674A8BE34004407882B9F937F036626E3A90E609DCF87F57413AA03CE + A55E8093DD34AAF25171697075B6A53A20F4E4392C59E0447680DB3C07FC1115 + 0FEB598E488E3F0B6B5B1B2427265300B474F551537C87324C14ABCB01F0F83C + A87FA883267635C68EFABC43EBFF5B008471176751A5E352C835223A011E2E8E + 083B79169E0BE6E044F81938CF9D8DE8D331B09D698FC4F8044C9E6E899C8C74 + 4C32B3406E168BAA3E214600687CF8111AD855E8A53D50D4FA6564CB8B23C0A9 + 2A416F9DC15223206E7DADC1C3D150FE848C0071AE3978041901CB1996484F65 + 4173E848B08B6EA3DFB031A87C701D3A5F4C40C5BDCBD0D19B84F23B7952F3AF + 7000E2FC8B0134D454481D7EED3B80A8BCD5B429C8BC70895C1352B3E0686749 + ADE2CABFA9030C264EC6ED829C4E0320CC13921BC09E6DEB3AE49F00A0AAA983 + 66B66C00C646E3905B700DA6C61329E39D0520362E09C0D3631E42C2A2A06B60 + 84E2DBF918A0370125770A3064B4318A6F5E929A7F81E8333F2E2E512C00C23C + A11EBDB5D15A5F4D01909CFE2DEC17E8215ADB4F7F2EBB8C5CA54D7FC9085417 + DF83F6507D3202EA83F5C8D6D71E6A80AA2785D4E5CFD0782AAEFD998DB126E6 + E42A2DFF3CD15FD1D3527A008C351C89EB370B31619C2155F98B972EC37CCA97 + 54E5D33273606B65F68F0EB0B7B1C0D973A998E36487E8D824B8CC9D8588A838 + 78B83A232C2286AAFC524F571C0E89C0CAA51EE4EAEEE18A9090309859DB2387 + 952235FF0A0520997F4900A30CF470ABF05EA700A4665CC40C4B33A4A46793C6 + C5AB184094E87AEF2ABAECBD0D40C09130AC5EE1897D0127E0EEEE82C8C868A9 + F9571880F6F9279FD8B30FB89C3A120061FCBF4CFFC61744148653374092D39F + 68FDC6E7F7A8E9AFA16B40B63E11819A4737B06CE942041E0E85F7CA25381418 + 2235FFC4FFE402F03EE86FD79B67EA041B3ADF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_25_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006F64944415478DAEDDA075053 + 771C07F02FD68103C5BAB5F61C55AC05C5C5504040A60151B1A05471B58EDA3B + 47454FACA356BDAB75A065888AE52845454541227B0922A258ADAB6835710112 + 302C83848C26CFE619E1C5E225792F9CF9DD71FF84C778BFCFFFF7FD27DC6120 + 954AA1AA0C0C0C545E5B139E25DDB3C41EDAAEE88CDB6810BDBEC7C5AEA6F27B + 3278DF9FF1CE1E751D202EEF3E040D42B5105A35406A110775F5221241D020C2 + D2A9A3D1A15D9B16236815402852FDFD9AA8ABF74A640042B5105A35C09D473C + 59C38DCD115E356229CBBC4508B400AC0949D278F37B57B8E309AF1AB5026133 + 04B1ECD7D6BC14B608412B00ABC332A47B973942209468BC71E5AA96372C10A8 + 44E0D7D4E36B591C8C3AB65779B3AD1A402211A3B641FA4E84E72FEAB0DED78A + 5E80952169D2A06F9D48807561C91A6F7ED77237DCE19623BEE0019179552516 + 89B07F8533BD002B82D8D2E09553B53E01F292C7E07CC13DD981584179BDA15E + 8090552C6600F80291D60114F5A8F40592AE72891828179F5FCD3CC0A6C3A9B4 + 41B46DD71E433FE9493E2FE694D00FB07CCF3969E81A0F5A2740B9CAF975B8CD + E1110761FE0D0EC2BEF7FCB000E4F5AA5182125E0D22120A9807A03302F2FAE9 + 1B17F2F1C683C9CC0330598C002CD975461A1E301DA5D542A6FBC7D643E77168 + DD0C66017644A6D3DAF4C6054ECC022CDE79527A64C32C9D98804DA1098808FC + 927E80D0006F54BE54FD16F583026032028C002CD8764C1ABEC157272620F040 + 1C2237CF61064017CE80ADA1679807F8253A83D6A603E64E611660DEE628E9C1 + 8D5F8157CB7C04361D88C5EFDBFCF5008C009454BD8E40D0B14C5A9B5E35C791 + 7CBC2DE424FD007E8147A587B7CC270198AC2DFB8F2166E7223D00ED00C11BE7 + A1ACFAF51910129B456BD32B7C1CC8C7DB838FD30FE0BBEE90346CCB421280C9 + FA31281A27762DD103300AC06404740280C9D203E802803E020C961E400FA025 + 00EF856B555E6CD7DB04BF6E5A880A1DF86B500ED0585EACF2FAE9DF76ABC4F9 + 5F00672747CA6BD97F3DC3811F16A2B24E3700EC470DA0BC96969EA907D01AC0 + BEC0F9A8128899EE9F39005D2ADA015A4B690560F95C16D37D515658345B0F40 + 0B406B2A3D801E404D80E09F0399EE41ADFA6EFD4EF500986E4013A516C0FE1D + 0190C8BE462C7AFD8E4F2C91402C96A06DE76E785553892F4C86E2FAAD62989B + 9AE0EAF53B186F3E12978B6EC2729C19B2F38B603F711C32720B31C5D602C999 + F970739C88C4D45C78B8D8228E9D89992C47728D399D043F6F77449D4884BFAF + 078E449FC1243B3BE46466619485358AF273D169C00854736F91F7281289206C + 7CF38F5A8DB2E722D19B77A77FDFE7681640F1CBD401389772019EAE762D0270 + 98E280B4947458D9DA21372B13661636B876319B6C5EF99E9A0288C562DC7FF8 + 583D807DDBD736DB7D55008AC6F32E5F878DA53909909E73194E932D5502C4C6 + A7C2C7CB8504883C7E0E0B667B12002C4F16E2CF2460B2A303D253D3306EA22D + 0A72B2603C70182A387789CD516EB8E973AD0088C4221876ED8197FC0A8C1AF9 + 19B1F39DBA7E8C5A3E0F1D8CFBA0AEA20486DDFBCAD667686FDC1702DE5374EC + D10FB5E54FD1BE7B7FBC2C7F8CCEBD3F4555C94318F694AD4FEFC3A8DF10D496 + 3E44A73E8389E75DFA0D45D593624C9FE68653716C38BB3AE13C3B19D676F6B8 + 90918EB193EC519893FE56C38DFF4D042300CAA3FFBE13A0D879AA09F09DC9C2 + 1FB1092480938B3392D84930B7B2C1D5BC6C180D304125F73665FE350EA0C89A + 02A0B6F23965F69B02281A57AC54D99FE525DBE9F864628D399508BF591E883A + 7E16FEB3A7E368F46978CD98865327E3E0E2EE06764222AC263B202F230DE36D + EC919F954E997F79A90DB07BEBEA66F9A702686BD4130D55CFF191512FBCE297 + A18D6C155695A15DD75EE4E80BF925C42A1F7DE3FE435446A0827B5796711322 + 028A43B0CBC0CFC1E7DC44F7C16628BFF7277A0C1B83D23B85E8653201A5B70B + 28F32F91DDF303EE53CD02C89B9757DB2E3D50CF7FF704289FFE8E76D6C8BC70 + 89581353B2E0E1EA40AE8A9D57AC8A9D57ACE19127C8D3BFF7F0310440B721E6 + E0155F2101A8F22F927D701E3DD30E409B8EC668A8A950F9F237D1622C722F5D + 81ADF504B2F1D4CC3CB838DAA804387E9A8DD9DEACB7467FD15C6F0260B1BF0F + 0E46C460909925B8372F1310DC1B973068B435B152E55FA300CAF9A702508E80 + E2F4AFAF7C46BC1A509DFE5DFA0E465D19878C40D3D3DFB0DF70D43DB94B8EBE + F1C011E03DBC856E834C51F9CF7598FE3711F25703F94A957F8D0134CD7F5300 + F9CE8F196D8AC2A21BB018371AF985D78809B870B11076932CC80948C9C885EB + 145B72E7CFB2D3E0E1EE84B3E75230DDD315B1B2973B1FD9A91F131B0F3F1F2F + 44C5C4C1DF6F2622A262C90958B6D80FC1E15198E7EF87888828D838B9212785 + 4D997FF9E7D402F810EA5F8DA97FEAC6325BB40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003624944415478DAEDDB6B4853 + 611800E0776A20F4D79F45F4238808EA57FD95A22CED4FA80BA95CE505B1A8E8 + 228AA704310A314DD3792D29108B2E8A784923DB1F410C21A4422D711679C9E1 + E6D4B3BB5F67AB2D9D9B569EF3BDDFF07B61B07336CEF7BECFBEF7ECF61D1521 + 04BC91945D472AF3CEC284C9EED9AE78A6039A713E31DA773FBFB4011AEFA4AA + 941E53B51A006670001600780B200607E000480065C21930CC39B0EBC70328C9 + D180517462D7CF01D0008A7392C124BAB0EBC703C02E7C695007D888C1013800 + 07F80370B546474563D7B6284889D9ED199F3980BBE9D18A0F5AD33100E16161 + 4C20A00034EA8640B4FDFAB88D8D8002F0A2E70BD81D2E26105000BAFAF53067 + 75FA102CD22D35762F4446A8A8230404B03A953D17F60F8FC382C5C104020AC0 + D05703CC5BED2B1044AB03D2E2E822AC0A704DFB4AF6018B328FC0F7E9599897 + 8AF747B03B5D605EB05145580670A5AA9B14671C00D1BEA8E8A0B3162788A218 + 14C16816212D760F6C8EDC44F7CB102D00B228BDD236B22AC2D4CC1C64A9F7D3 + 05B8A47D4D4A330FF900B2AA3A651FB03023063EEA0DD0D2FBD9D3F3C1C2E974 + 80940B5D800B651DA4FCE251C567803BDC6DD0DE3B0C9FC60C011FB7592D20E5 + 820360B2D0FB45686C6206DADF8DFA3E1479C36832E30308B55DD420C2232260 + C79628DFF6A07E1201E05E3B29BF1C4B75062C8DA99979F8A09FF69C087BDE8F + 8094CBC6027087C5EE82F16933D4B7F6E103D06C017714A41DF6DD17AA3BF101 + 30030520BDB089D4641D878959FCFF06F3AADB40CA0517E0D6A337548BCED51C + C40548BDFD9CD4E5243031036E685B40CA853E40F9F578302EE0FF3BCC040066 + 0BA0009C2B784AB4D96A266640EEFD2678289CC0019864E01C905FD98C0F50D4 + D02DCB207D2F2B94AEE3FFF2D2B5AA96019CBEF998540BA7E087CC4B64D4F1F1 + D8B5B205203C680BF8BC8294B880FBB76EDF1970FFB7D1C180FBFFF6F84101BC + ABC44A9EBC9505C0BF05980538995B4F6AF334B22F934B52272C2B64ADC4BD89 + FA6F0783F11E6FADE7FB3FCE0102015408C9B2AF15F6B600F3004AAD14D52425 + 72809004E02D20537867807FE2FEB1DEB7B57F3D3E0760BD05E46E19F416E000 + 1C20040094B86224A40094B8608203ACF36D90DAD761A5AE18092900592BFF1D + 23BDCD4A1C76DDB10240A9D8177D8CC935F9D400588E9F6923C9BD41B7806000 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003664944415478DAEDDB7B4853 + 511C07F0DFD402A13FFDB388FE082282FAB33FA5486BFE21F90AA95CA513D1C8 + 9E3E7225841189698A5B3E9102C9E805E2238D6CFF08620811156A85B3C8470E + 37A7DEBDEE3C39E30E9D778ED93DE77787F70B83DDEDB0737F9F9D7377B79DAB + 22848090F4A226F2A8F43C4C5A5D809D3BD5ADD0765FABA2D987B7769502B001 + 80FEB99169D179A9B1F202C08C02200700650A204601500090006A74E7C03CEF + C6AE1F0FA0AA5803168EC7AE5F014003A82CCE002BE7C1AE1F0F00BBF0D5610E + A05251ED4F765100140005602DC0B506239383E0FEDD3190197FC00B8E2A2E0A + F0203B967AC70DDD9F203222021D010DE0A9710438E7BFD36D4C04348097FDDF + C1E5F6A023A001F40E9960DEC1FB10ECCBB72CF52188DE16C11421208083A77B + 2C1C1A9D8045BB1B1D010D60E4A719161CAE75089CC30DDA0476084101AE1BDE + 48DE6945EE71F83D33070BCBC5FB23B8780FD8169DCC10D6015CADEB23953947 + 80732D51ED78CECE03C77101112C360EB4EA83B0237A3BDB2F43AC00C8D2F23B + ED241B224CCFCE43E1A9C36C01F20D6F4975EE311F40415D8FE49D96E7C4C317 + 9319DA07BEADCCF940E17937D4E4C5B105B858D34D6A2F9DA03E02BCF14E83AE + 8151F83A6E167DDEE9B0833E5F8D0360B5B3FB45687C7216BA3E8CF94E8A8458 + AC367C005D632F3388C8A828D8BB33C6B73D6C9A420078D8456A2FAB998E80D5 + 999E5D80CFA699950361FFC71FA0BF92B0B500BCB1BB3C30316383968E417C00 + 9653C09B326D9CEFBEAEBE071F00332800D9E5AF4943C149989CC3FF6FB0B4BE + 131A0B937001EE3E7EC7B4E812CD515C80AC7B2F4853718A2C46C02D433B34DF + 4C650F507B23192C8BF8FF0ECB0200730AA0005C287B460C4569928F80C4C424 + 9A756C3A83C60E9528C094C4C780B4E464EC5A370750D1DA274D47AFF46BB677 + EDD927DAEED7D8B0E8E3BAE64ED1C7CB3213FEABFD3A80B3B79F907ADD19F823 + F11219FF11B06501841D0BB6E3C2F3C1DA0B90029CFF76B0D70F0820AC12AB6A + 7B2F09803005640F70BAA48534966A245F26979E96A200840D805E9721F95AE1 + B09902B4568A6AD2531500B11DF70FFAC720ADE5F2617322447B04843A44436D + 1FEA145300584F81B003902A613B021480AD0840E38A11FFF3005A1F6BA1B617 + 05A071C18402E00720978802D0B86224AC00B0776A75585C31F217816954CCD4 + 2C4D2E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003764944415478DAEDDB5B4853 + 711C07F0DFD402A1471F8BE8218808EAB14729D29A0F92B790CA953A118DECEA + 259742AC22314DD99657A4C034BA81784923DB8B208A1051A156388BBCE47073 + EAD9DD7FCE38C38E674EE59CFF6F07CF1706DBD961FFFD3EFBFFCE8EEEFC1584 + 106073B6B889D497AA60D2EA02EC9454B5C0B37BE90A31C7F0D5AEE002E83569 + 7E00FD0B23D5A27393A3FDF7B5BA56FA00A9850DE471E9C590980177AA9AA1F5 + 815A064005C06C819000C08C0C100A00720B20460690019000AA3517C03CEFC6 + AE1F0FA0B2480516C6835DBF0C80065051940656C68B5D3F1E0076E1AB431D40 + A11075BC908B0C2003C800FF035CAF335239081EDC1B0519B1877CE0A8E2BC00 + 0FB3A2451FB8AEEB13848785A123A001B418478071FE3BDDC644400378D5F71D + 5C6E2F3A021A40CF9009E61D1E3F827DF996A93C02913BC2A82204047078C43D + 160E8D4EC0A2DD8D8E800630F2D30C0B0ED71A04C6E106751C3D84A000370C6F + 051FB43CE724FC9E998385E5E2B9082E8F176C8B4E6A086B00AED5F4928AEC63 + C0B896441D78CEEE0186610222586C0CA895876157E44EBA7F0CD102204BCB9F + B493AC8B303D3B0F05678ED205C833BC23553927FC00F935DD820F5A961D0B5F + 4C6668EBFFB6D2F381E2F1B8A13A37862EC0A5EA2EA2BB7C4AF419E08BAF0D3A + FB47E1EBB899F779A7C30EFA3C250E80D54EEF3F42E393B3D03938E63F296263 + B1DAF00134F53DD420C2232260FFEE28FFE361D31402C0A34EA2BBA2A43A0356 + 677A76013E9B66560E847D1F7F80FE6ADCF602F0C5EEF2C2C48C0D9ADA07F001 + 68B6802F5A758CFFBEA6B61B1F0033280059656F485DFE69989CC3FF6DB0B4B6 + 03EA0B127001EE3E794FB5E862D5715C80CCFB2F4943515248CC80DB863668BC + 954C1F407733112C8BC2FE3A1C1F9F20661D5BCE80B15DB12E80502D30F05A8F + 5DEBC600D2B5CF89A13045F419A069ECE0DD4F9B11C7BB7DCFBE03BCDB7F8D0D + F36EDFE8EB07049812F818909298284D80F2E65E4100D81660DF58A042B9CF07 + DB9F856121B88F83BDFE1A80F3254F49ADE61CFC11F812197606C800520160AF + 12AB6CFD200880645A40AC0513A9294932806400C45831C23D110AD9AF41B1AE + 1455A526CB00AB0BD9E814DDECFE9B6D99A00042B780E400848A6467C0B60790 + 5B40A0487606080DC07DE3DC043B41127A7F19800F408C15235C8050092F8018 + 0B26B63DC056426BC1C45FD7EB5DCC7011DE0C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000036A4944415478DAEDDB5B4853 + 711C07F0DFD402A1471F8BE8218808EAB1470BD29A0F92B792CA953A118DCC2E + 5E6868D42A12D394CDBC8514997687F09246B617410C21A242AD701679C9E1E6 + 7467774F6EB1831E371775FEFFDF86FF2F88E778C6F99FDFC7FFEF6CBAFD653C + CF832F27CAEEF30DAAE330697278F7ABDBDF02CD141EDD276C5FD63C86075715 + 3292E3796A972D073876A9856F2A5708009829AB698387D73319007500AD2A43 + 00D03ED1512D3A3F3556D8566BDAE903A49734F377CA4F85C40CB852D30AED37 + 950C001500B305420200330C201400580B208601300024805AD54930CC3BB1EB + C703A82E5580917361D7CF00D000AA4A33C0C4B9B1EBC703C02E7C79A803C864 + 44C70BB9300006C00056029C6FD451B909EEDC1A0359F1BB3CE0A8E27E016EE5 + C4121FB8B1FB03444644A023A001B4E94680B3FF79B98D898006F0ACFF2B389C + 6E74043480DE213DCCDB5C028275E92B5BBE07A2374450450808607391BD170E + 8D4E80C5EA4447400318F96E80059B63150267738232811E4250800B75AF241F + B432EF20FC9C998385A5E2C5080E971BCC163B35845500E7EAFBF8AADCFDC039 + 16890E3C677501C77101118C660E94F2DDB0297A23DD3F866801F08B4BBF693B + BF26C2F4EC3C141FD94B17A0A0EE355F9377400028AAEF917CD08ADC78F8A437 + C0CB812FDE9E0F1497CB09B5F97174014ED776F39A338788CF004F3C6DD03530 + 0A9FC70D7E8FDB6D56D016C871004C567AFF111A9F9C85AE7763C28B225F8C26 + 333E80AAA9971A446454146CDF1C23EC0FEBA710006E77F19AB372AA336079A6 + 6717E0A37EC67B23EC7FFF0DB48509EB0BC013ABC30D13336668E918C407A0D9 + 029EA89571C2B6AAA1071F0033280039152FF8C6A2C3303987FFDE6079432734 + 1527E1025CBBF7469281069F6B49D6F1EFD7A5EB90AD00C8BEF1946F2E4D917C + 0624262661D7FAF7009A8BC960B448FBEEB0184075B7D3EFE3D459097E7F4EEA + F1410148B540C80264AA1FF1752569C466C0966D3BBCDF7F8C0DAF79E1BE0B15 + EF8B233E5FB0F38B8F07049892F81E90969C1C9E0095AD7D9200F85A20E4017C + EB057E49FC1199B099010C80D08A91B06901520B26D2D352FC162A4EB042C509 + 0619ECFC0CC01F00891523A45A407CFCBF5B80D4274515E9A90C202C01580B48 + 94B09D01EB1E40EA16105FB838E84F83A467000308B130007F00EB6DC5C86F43 + D060CC38199EA80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000037B4944415478DAEDDB5F4853 + 511C07F0DFD402A1471F8BE8218808EAB1470BD29C0F52FE29A95CA913D1C8EC + 8F292D8D5A4562DA6433FF851499DA5F08D334B2BD08620811156A85B3C83F39 + DC9C7AF7DF935BDC8B9B5B4BBBE79C3B3C5F10EF7507CE7E1FCFEFDEBB3F5786 + 10023EC74AEFA33AD551F835EB04DAB9A46983075715329C73786A9731800000 + E3668777BFAAF52DD1A20B0FEF11B62F6B1F91073872B10935942904009A29D5 + B4C0C3EB990C8038804E952100E81EEB89169D9F1A2B6CABB5ADE401D28B1BD1 + 9DB2139258015734CDD07A53C900A802D06C014900D00C039002006B018A6100 + 0C801240B5EA381825F06A901A405589024C9C8B76FD0C801A40654906983937 + EDFAE901D02E7C698803C86458E7935C1800036000BE0067EBF5440E82DB37C7 + 4056FC0E0F3855F18000B77262B14F5CDFF901222322A823500368D10F0167FF + 73B94D13811AC0D3DEAFE070BAA9235003E81E30C0ACCD252058177FB2E5BB20 + 7A5D045184A0003617DE63E1C0F018CC5B9DD411A8010C7D37C29CCDB10C81B3 + 394199480E2124C0B99A57A24F5A91B71F7E4ECDC0DC62F1FE080E971B2CF376 + 6208CB00CED4F6A0CADCBDC03916B04E3C637501C77141114C160E94F29DB021 + 7A3DD91743A400D0C2E27FDA8EFE8A30393D0B170EED260B5050F31A69F2F609 + 0045B55DA24F5A9E1B0F9F0C4678D1F7C5DBF3C1E27239A13A3F8E2CC0C9EA4E + A43D95807D0578E269838EBE61F83C6A0CF8B8DD66055D819C0E80D94AEE1DA1 + D1F169E87837225C14F131992DF401540DDDC42022A3A260EBC618617FD03041 + 01E07607D29E96135D014B33393D071F0D53DE0361EFFB6FA02B4C5C5B009E58 + 1D6E189BB240537B3F7D00922DE0895A19276CABEABAE8038895B884249C75AC + 3AFDFA76990F404EF973545F7400C667C4FD6C3029E920ED5A570770EDDE1B71 + 267AA6F3D9DFB4655BC0713F460603FE1DD7F86500D9379EA0C69214EC2B40D2 + 00DAF3C9609A17F7D3611E4075F7A5F7B73A2B31E038FFC7573A9E2F3C188CFF + F8900062B780E40132D56DA8A6386DEDAE001E6042E463405A727278025434F7 + 880210362D80EB8689B05901B801F8ACF4B4C63F71FF848209353E2880D8778C + FCEF851031005C374CA4A7A5F814FEAF4B54ECF1FE8F3380400038EE18E15B40 + F200B8BE29AA484F65006109C05A40A4F02BC0FF89FB27D8690DD7699301906E + 01A985DA0A904A8801AC26A4BE2CFD1BC66C60CC46B8470E0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003724944415478DAEDDB6D4813 + 711C07F0DFD402A197BE2CA2174144502F7B69429AF385940F29962B9F108DCC + 32539A1A664562DA645353438A4CED99282D23DB1B410C21A242AD7016A5E670 + F3E9F6747A39E50EDB6E3EDEFFFFDBF2BE20CCDBB1FF7E1FFFBFF36EBBBF82E3 + 38E09354D2C255E5C5C2F0B81DB0535CFD0C1A0AE21424C770D6AE580AA0ACB1 + 836AD1390921B800C70BEF72B7D4C7E0CFA4836AE16229D0B4C0BDCB2A190005 + 60C8BCD00215CDEFA8169D1D7740787C49FB803E40C2C506AEAE48250060A650 + D304F7AF26C900D40174EA440140F7504FB5E8CC9860E17189B6993E407C5E3D + 575D74D22B6640B1A6119AAFA7CA00A800982DE01500989101BC01406E01C4C8 + 0032001240A5FA0418BDE06A100DA0225F052686C5AE5F06400328CF4F043333 + 835D3F1E0076E18B431D40A1203A9ED74506900164807F01CED5EAA91C04776F + 0F82E4B03D4E70547151801B69C1C407AE6DFB08FE7E7EE80868004DFA3E606C + 0BA7DB980868008F3BBF81DD31838E8006D0DE6380492B2B2058E67E5294FB20 + 70931F55048F005696ECB1B0A7FF374C5B1CE80868007D3F8C3065B5BB213056 + 07A446D043581620A7EA95E48396651C825FA3E3303557BC2B829D9D8189691B + 35043780B3351D5C797A0830F659A2038F5B586018C6238269828154E55ED812 + B899EEC5102D006E76EE2F6DE3964418199B840B47F7D305C8AA7AC369320E0A + 00B935AF251FB4343D0C3E1B8CF0BCEBEB7CCF7B0ACB3AA03233942EC0A9CA36 + 4E7B3A9CF80C70C6D906AD5DFDF065D028FABCCD6A015D961207C06CA1F789D0 + E0D018B4BE1F104E8AF898CC13F800EABA766A10FE0101B0736B90F07BAF6118 + 01E0662BA73DA3A43A031667646C0A3E1946E70F849D1FBE832E3BE2FF00080D + 8F2459C79AD3AD7FA1581240AA16E87EA2C3AE756D0052C57506A86FBF14DDAF + 24394274FBB61DBB44B7FF1CE815DDBED2D77703482B7DCAD5E61E862189EF15 + 8E8C3CE29B0057EEBC9504806F01FE8D792AD4F579BEF0E50AE5F75FEDEBBB01 + A45C7BC4D5E747139B013E01A03D1F05A66969BF1DF659800DD702FC7A810D3B + 0348AD18898D8AF24D00A9568CB89E08ADF6DF20A9FDDD00482D98E067C08607 + 203DA5D7DD02A4568CF02DE0F500A4164CC4C746CB003E034062C588CFB400A9 + 3B4555F1313280D81B710DFAE530A9DBE5D77B22840620555C6780B74406A0D5 + 022B0DC68A91BF047B5DCCB99F59050000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003634944415478DAEDDB5B4814 + 511800E07F8D02A1C75E237A8B08EAB14733D25C1FA4BCA4586E794334B28B99 + E6AA615624A6ADEDAEE6052932B59B21A565A4FB1248E14B50A4056A517659DC + F5367BD593ABCCA0EBAE9ACD39FF2C9E1F969DDD1938F37F7BFEB92CF3AB0821 + 2046EAB547447F3E1A2C53AEB9CF57EEBC069651A0D92F2D171ADBA1E162AC8A + E6789EDC550B01924B5B89312F4E02C08C825B6DD058188F03F073CC899D3F94 + 543FC507286FEA669A744E62282EC0B1A2BBE4B6F628FC9EC02F81425D2BDCBB + ACE100280023D6F912A86CE9619AF499F87DD2F225FD03F60089058DA4AE5823 + 01604691AE19EE5F4DE600CC010CDA2409C0F0D0C434E9ACD81069B954DFC21E + 2021AF9E54179F50C40C28D13541CBF5340E800A8059028A00C00C0EA004005E + 0288C1013800124095F6389815703788065099AF018BE0C6CE9F03A00154E427 + 815598C6CE1F0F003BF185C11C40A5A23A9EE2820370000EB018E05CAD89C941 + 70E7B62D9012BECB038E2AEE13E0467A08F5816B3BDFC386A020740434806653 + 3F088EF9CB6D4C043480C76FBE80D3358D8E8006D0D537041376B784609B7DA5 + AAF740F0C620A6087E01EC6EBAC7C2BE811F306573A123A001F47F35C3A4DDB9 + 0441B0BB202D921DC28A0039C617B20F5A9E7910BEFF1983C9D9E4BD119CEE69 + 189F723043580270B6A69B54648482E09CA13AF098CD0D8220F845B08C0B90A6 + DE0D9B8337B1BD1962054066667F69075916E1D7E8045C38B2972D40B6F115D1 + 651E9000726B5ECA3E685946387C1832437BEFE7B99AF7176EB70BAAB2C2D802 + 9CACEA24FA5311D46780273C65D0D13B001F87CD3ED73BEC363064AB7100AC36 + 76FF080D8F8C42C7BB41E9A2480C8B751C1F405BD725CB406F9F1868E6B1F6FD + 323D532D06B8D941F4A7D5B2CF80B08828EC5C9505A06D78EE73BBD294489FDF + D3DA7E45005A2510300072853803B66EDF31F7FE6DF0D3B23B2EEE28EDED9700 + A497B591DADC433022F3B3C2515187031340AEC7E5C512503C80A75FA03E3F66 + FDCE00EF8689750FB0EE4A8056C7883803BC77C43BFC9DD6C4C4BCC35FA2ABDD + DE2F80DC1D2371D1D181092057C7C86A4BC07B3DF312A0D53021CE000E102800 + 72778C044C09D06A9848888BE100010340A363E47F6F87FFF534B8E6DB615A4F + 8A6A12623980126345005A25A094603603D612AC1E94FC0B96B054CC53FC7720 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003484944415478DAEDDB6B4853 + 611800E0774681D0CFFE46F42F22A89FFD5C469A0A4979C961B9F286687435D3 + 9C1AB68AC4B4D99CE60529326737432ACBC8F62788C03F4190152445D94572F3 + 72763BFAE5851DF26C6BB2CEF7BDE7D0F7C2D8D9F6C177DE67DF7B76CE38AF8E + 100281C8BB7087B497A7C1A8CB07D85169EB838ED3E93A9A73CCE7AE9303584F + A6C2F8B41F3B7F75009CBBF68C69D215C6EDB80039E61E622BCB50C50AA8B8D2 + 0B9D95993800DF54700CA869BE8F0F50D735C834E992AC385C80FD55D7C955D3 + 3EF831895F0295961EB871D6C8015000469D8B25D0607FCE34E96399DBA4ED33 + D65BEC01B22A3A495BB55102C08C2A4B37DC3C9FC30198033499B22580A6DB0E + A64917A7EBA56DB3D5CE1EC050D64E9AAB0FAA6205D458BAC07E319F03A00260 + 96802A00308303A8018097006270000E8004D0683A00632AB81A4403682837C2 + B82062E7CF01D000EACBB3C129CC60E78F07809DF89FC11C40A7A33A9FEA8203 + 70000EB014E044AB83C94170E3BA35909BB0691E1C553C24C0A5023DF5895BFB + 5FC38A9818740434806EC73008DEC5D36D4C043480BB2F3E80CF3F838E800630 + 303402931E514270CF3DF292B640ECCA18A60861013C22DD63E1D0BBAF30EDF6 + A323A0010C7F1A83298F2F0841F0F8213F991D42448012DB63C527AD2BDA095F + 7EBA606A2E7939824F9C8189692F33842080E32D83A4BE300E04DF2CD5895D6E + 110441088B303E21407ED266581DBB8AEDC5102B00323BF74D7BC95F11BEFF9A + 84537BB7B20538627B4A2C453B2480D296278A4F5A5B98006F46C6A0EFE5FB85 + 9A0F17A2E887C6E278B600871AFB89F570A2E22B401FBF8B661E51C72BC7035D + 4800A75BD97F84E21353B0738D0EC0D436A0CC44F79A96BC36753C0C39CE9C9B + 1CF27D5AE383012E3F22D6A349D457C07F0B10D8B1703BBE76FD8685E7CF1FDF + 52192FFF3C2280D225A03900A542332BA0A0B697B496EE56BC5F2025658F3601 + 94BA5D5E332540AB6344332B8056C7480040BE23F28894A83C0289473B3E2280 + D225A07A005A1D23CB2D01F9E7F2251E69FC3F9700AD8E918CD4546D0228D531 + B2DC5F0174005A0D139A59011C8052C788664A8056C38421232DE48EC803FD72 + 980350EA18919F08A925820068DD296A34A463E78A0B104DB0BA4DEE371D2A3F + CC47C6F0390000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003284944415478DAEDDBDF4B53 + 711400F033A340E8B1D788DE2282FA139691A54223A7A258AED44958F4D3CCB5 + 4DC356519836DBA66E8A1499B35F46649691EDA597C0979E3282A228A3846DEA + EEE67EF44D918DBCDB9A8EFBFD9E7BE97B6030EE2EF7BBF3E19CFB63ECA80821 + 108FBA6BC3C4D9B81FA6FC61C08E969E11709D2B56D15C633177D5BF002EDD7A + C53469A36E172E40ED9507A4D750228B0A303B9E40DFF952F600B6B35AF00622 + D8F9CB0300B3055000AA2D43C4D154268B0A30DE1C867E73390EC00F199C035A + BB1EE303B40D8C334DBAA1320F17E060F36DD2633A003F67F15BC06C1D823B17 + 751C000560CAB7D4021DEED74C933E55BE33F1FE82ED1E7B804A633F71B5E812 + 0098D16C1D84BB97AB39007300BBA92A0160BFEF619AF4D15275E2BDC5E6660F + 50D1D44BBA5A0ECBA2025AAD03E0BEAAE700A800982D200B00CCE0007200E02D + 80181C80032001749A0EC1B40C9E06D1003A0C3AF00A51ECFC39001A40BBA10A + 7C420C3B7F3C00ECC4FF0EE6002A15D5F564171C80037080E500679C1E2627C1 + AD9B3640CD9E6D8BE0A8E22901AED7A9A92FEC1C7D076B7272D011D000063D93 + 20CC2FDD6E6322A0013C7CF311C291183A021AC0D8C467980D451308C185576D + E10EC85D9BC314212D40284AF75C38F1E13B04821174043480C92FD330170A27 + 2108A108E88BD821640468703C977CD1B6FABDF0ED971FE61692172384A33198 + 09CC3343480238DD3D4EDA8FE48110FE4D75617F300A8220A445F0CE08A02FDC + 0EEB73D7B17D18A205A0CEDF47338FACE3ADE7A96A19C009C74B62ADDF9D0068 + EC7E21CD428FECD8B9AE0CE058E728B11D2FA05E011B376F49B9DFD74FEF536E + 37F58DA4DC6EA9294AB97DA5C74F0BE00B4AFB8B507E8146990026D7982400F1 + 16887FB174898A3F8F279E29D16CF74F06B8F18CD84E1652AB000EA03400DE02 + 1285622A80D6C4884653AC4C00A9FE2E2FBE115AED658DD6FE4900B42646E215 + A008001A13232B6D017109AF76FF4C2D20FE3C2380D42D207B005A13238AA900 + 5A1323655AAD3201A49A18514C0BD01A98504C05D006107F1171487519CCFA71 + 98D6C408EB1BA1AC01680D4C549495487A3CA98203A402F8DF2646FE0036B31E + CCE969443A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_10_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003054944415478DAEDDBDF4B53 + 511C00F0EF163DF4DE6B446F113DF4272CA3850E1AB914C372A54EA2A4B2CC5C + DB346C154569B36DBA4D912273F6CB88CC34B2BDF412F8E2534650146484E0C2 + DCD6363BA5762F79B739CA7BCEF75C3C5F185EE7D173BF1FBEDF3BA7F7AB2384 + 8014B5D79F12EF892288C6E7163E7786468065B86D46F9D81918065F9D494773 + BFF9DC75CB0160060A40CD9501126CD80393DF92D8F94373601042678A71012E + DC7CC134698775072E40F5A5FBA4CBBE978B0A70F91F43F7D912F600DED31698 + 9E4D61E7CF0700660BA00054BAFB89BFB1948B0A70DC18801E57190EC0170EAE + 012D1D8FF001AEF68E324DBABEBC0017E040D32D1270EE87AF33F82DE0F2F4C3 + EDF35601800230195D6C81B6F04BA649D7956D978FCF79EFB2072877F49050B3 + 5506C08C264F1FDCB95829009803F89C153280EF5E8469D2474B0CF2B1DB1B66 + 0FB0AFB18B74341FE2A2025A3CBD10BE6C1300A800982DC005006608001E0044 + 0B20860010004800EDCE8330C5C1BB41348036BB15A66369ECFC05001A40ABBD + 02A231FC7F8DA1016027FE773007D0E9A8EEC75D080001200096029C0A46985C + 04B76C5C0F55BBB6CE83A38A6705B85663A0BE7170681CD6E8F5E80868007D91 + 0988FD58FC751B13010DE0C1AB77904CCDA123A0018C8C7D8099445A4688FF7E + 54176D83756BF54C11720224D274AF85636F3FC36C3C858E800630F1710ABE27 + 921908B1440A6C2676087901EAFDCF54D9E8F5431F8B7CFEFDBC224F744B004E + 768E92D6C305104BFE54752383713776AE7C0138BB07B3AE735799B23E4F6B7D + 06C071FF73E239B2530668E81C560540D902DC02D4B60F11EFB1426A15B061D3 + E6858F9FDEBF59F6C4A513CDB75EF975E5F7E75B9F1340ED9BA58D85666D02A8 + 75BBBCD402FC0350BA5D5E3B152000E84C8C8816F85301CA449581FE32486B62 + C46C2ED626805AB7CBFF6F0BE42BE995AECF00A035312255802600684C8C6816 + 60D5B500AD8911CD5400AD8991528B459B006A4D8CACF4EDB004A78C7C90F97E + 7E0600AD8109A902040067911340ED8911CDFC5174350E4CFC02074DF1BD4148 + EAD60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_11_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003124944415478DAEDDBDF4B53 + 711400F033A387DE7B8DE82DA287FE8258560B951AB914C372E52FA2A4B2CC5C + DB5CD82A8AD266DB749B328ACCD92F2334D3C8F6E28B2044F4505024045919B9 + B2369B5BDF9A722F7937B3E27EBFE77BF17B60EC6EBBECEE7C38E7EE8E7D8F8E + 100252545DBA4FDC877321124B0246BCFFF4159E8D8E437C3A09434F5E81A73A + 4F47F378A9DC753C01A422164FC2DBF12F10EC19C607B005069826EFAC30C8DB + 365F3F3E0066A000549EEF26FEDAED30F6398E9D3F387CBD10389E8F0B70FACA + 23A6495BCD1B7101CACFDE226D961D5C5480DD7B0FDA4F14B007701F33C1C4B7 + 69ECFCF900C06C011480526717F1D615725101D6CBDD10B417E100BCE3E01CD0 + D072171FE042C720D3A46B8AB3710176D75F253EDB2EF83089DF027657175C3B + 65160028006391D916680A3D669A7475D10679FBA4FB067B80626B90041C6619 + 0033EA5D9D70FD4CA900600EE0B195C8009E9B61A6491F28D0CBDB4E77883DC0 + CEBA36D2E2D8CB450534B83A2074AE4200A00260B60017009821007800102D80 + 18024000200134DBF6C0470E7E0DA2013459CC30114D60E72F00D0001A2D2510 + 89E2FF358606809DF8EFC11C40A7A37A3CEE42000800013017E0A83FCCE424B8 + 66E57228DBB236058E2A9E11E062A59EFA81FD7D4F614956163A021A4067F805 + 44BFCF5E6E6322A001DC1E7A39B3140E1B010D6060641426A7123242ECD7AD3C + 771D2C5B9AC514615E80A984BAE7C2F59BB6B2CCEBAF6338DCA313007F02A8F1 + 3E50E740773C731EDBDA7B33EEE72CCBCBF83CADFDD3008EB40E92C67DD9108D + FF50257129F4866D0220152B56AD9EB97FF3FA79C6FD94AF4B892C94A8F4FABF + BE7F1AC021EF43E2DABF5906A86DED5705406A01EE01AA9AFB88FB60CEE2AD00 + 0940EDC5D2861CA33601D45A2EAF9D16A0B45C5E3B15401940F9C19581FE3548 + 6B6244331742B42B60A192A6DD02CAFDD300684D8C188DF9DA04506BB9BCD402 + DC03D09A18D14C05D09A18D12CC0A26B015A13235205283F8832D4FA1A942094 + A184991740ED89914293499B006A4D8C282F84788934005A0313CA0AE0259801 + FC4FB09A18F90991C8DCBD54A3FFDD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_12_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003144944415478DAEDDBDF4F52 + 711400F083FA27F8586B3DB4B5D6738F8DAC686AC59274364B4AD3B56A996526 + 01D28C6AB5D23040011DAB6562B56CCD1F59CB78E9855E5AEBC11E9AB6B6B06C + 425658207D1BB67B27378C927BBFE7DEF89E977B81EFEEE57C76CE05C63D2A42 + 087071B87D98D88F144278360EB4E24D701A869E8D43E47B2CE9F95078061C75 + 452A29CF9DC85DF5270093E7213588DCBC3C58B52C9F7F3C36318900706588D8 + 8F1651AD8085F17EFA0BBC9C9882682C0E4F9FBF06477D7176012462361A8777 + 5333E01D08E003D06C8144586B34FCBEC935820F80192800B517FB89BB710704 + 3F45B1F3078B6B103C274B7001CE5E7B4C3569A37E232EC0FEF377489761A72C + 2AC0ECBC0FDDA74AE903D84FE820F43596C161FF2300CC164001A8B2F6116753 + 992C2AC078B51FBCE6721C8049195C035A3AEEE1035CEA19A59A744345012EC0 + 9EE6EBC465DA0D1F3EE3B780D9D60737CEE819000A4030FCAB05DA7C4FA8265D + 5FBE81DF3F6DBF451FA0C2E8251E8B9E07C08C665B2FDC3C57C500A803384C95 + 3C80E3B69F6AD2874AD5FCBED5EEA30FB0ABA98B7458F6C9A2025A6C3DE0BB50 + C3005001305B40160098C100E400C05A003118000340026837ED858F32F83588 + 06D066D0432832879D3F034003683554423882FFD7181A0076E20B833A804A25 + E9F964170C800130806480E36E3F958BE09A15F950BD656D021C553C25C0E55A + B5E427760FBF80DC9C1C740434805EFF2BFEBE404C046A00EBD45B31F24B1B01 + FF808A01A402F83627EEB570FDA66D498F97AF5C9D72DDDBF1B194CF4BB59E01 + A40368703E10052070D731BF35750FCE6FADD5C529D7095FE712592CD14CD7FF + 0670AC7394B41E288048F487288973A1D66C67008A00A8733E22B6839B7980C6 + CE11510014D302DCBC40D656805413239A42AD3201C4BA5D9E6B01E11B11463A + 98BF5DBFE48F41A96E97E72A20EB01FEB544D3B58CF07899B7804413235C0B28 + 0E40AC504C05483531A2D596281340ACDBE515D302524D8C28A602A49A18E100 + 846F5C18E83F87A59A18117E11922D80541323C20A904B2C0A20F6C448994E87 + 9DEBD200B26162E427EA09D6BD1F058EF60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_13_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003194944415478DAEDDBDF4B53 + 611807F0E7907F82974574114474DD652CAB895A49966158AE34453232CB4C73 + D3B05524A56D6DF3C7945164CD8A0CD19545E68D20EBA68B0A29C249D02C45A7 + D536F7A337569CC33C4E6678CEFB9C93EFF7EA6C3BB8F7F9F03CE7303C2F4708 + 013EE5B617C4746217F843BFFEBCAE6A1D00A9D3589A0EEF3C53D03BF211FCC1 + F092E745226130976939C917109758ED5C3CC049F3536239952100C899D94004 + 5C231FE0FDF854C2CFE78301B09667E200F80251D901F88C7BA7C1F57A0CFCF3 + 0BBB61C637870FA0B73FA706B126250536AE4D155E8F7A2610006EBA88E57426 + D50E88CFD7E91FF0D63309A1701486DF7C026B45D6EA028825108AC297C93970 + F4B9F101688E402CC662AD70AC6F1BC007C00C0A4049630F69AFDA07DED91076 + FD50DFD60FF6F339B800976FBFA45A74AD6E072EC0F1AB8F4847CD01457480C1 + D60B9D1772E90358CEED87999FE115FCD9FF0800730450000A8DDDC4567D5011 + 1D507BAB071C863C1C8009055C031A5A9EE0035CEF1AA45A74657E1A2EC091BA + 3BA44D7F18BE7DC71F0183A91BEE5ED231001400AFEFEF08343B5F512DBA226F + BB707CD1F2803E407EAD83D8EB75020066EA4CF7E1DE954206401DC0AA2F1000 + AC0F87A8165D96AB118E8D16277D8043D51DA4A5FE98223AA0C1D405CE6BC50C + 00150073041401801906A0040036028861000C0009C0AC3F0A530AF8358806D0 + 5CA383197F04BB7E068006D05453003E3FFEBFC6D000B00B8F0F75008E93F5FB + 141706C00018C04280B3ED43542E829BD7A74251FA961838AA7842801B251AC9 + BF68AB6637669D4BC63DD4C731000C007D677FC2F38C455909DFFFD7F3D76DD8 + 94F0FDCF63A30C605900C188B4D7C26D3BF72C282459A1FCE7729FCF00920154 + DA9E4902E07E6C5507C099D641D2549A26F9E3F21AED5E06A00A00B9768CA866 + 04E4DA31C277807821E2A0DF06E5DA31A2CDC8562780548FCB2F7704F885F30B + A53F02323D2ECF770003501B001B0189A29A0E906BC74876768E3A01A47A5C9E + 1F0171A1E2886F53E2858BB3D2DBE62200B9768CF01DA00A0039768C88019492 + A400728D8052B2086035EE18F90DF780E5BD361B77480000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CalculateSize_14_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003534944415478DAEDDB5F4853 + 511800F06F2441D0638FF5D043D05B4F454FB5AC166A25599661B9B214C9C82C + F34F4E0D5B4562DA6C9BFF91224D2B32442D934C8840ECA5870A294225484D71 + 73EADDDCEE3CB5EA0E9DD734BCE77C7779BE97DD7B77B8F77C3FBEEF6E63F768 + 082120C585B20E5294140A827B1A68C6985304411060C2E98109971B267FBE8E + BB44707BBCE016BD6073089010BE0956AF5AA9A1390F5FEE1A0C0032ED05C714 + F92BC2D0E838641CD9CA1620C5DA4E4C6776FB01D2CBDA14BF6841D21EF8D037 + 024D5D9F417079E61D278A1E2849D6B105385BF28C98CF8551AF005FF8DAA0B5 + EB137CEC1F917D7FCAE5044B4A380E80DDE9A50E2045FFC028B4BEED05616A76 + 35D8EC0E7C0043E50B66102B424260C3DA35FEFD9EBE410480DBADC47C3E9C69 + 05CC8CA1D10978DF37FCEB46F8E6DD17B0A4462C2F005F38DD5EF836EC809AE6 + 6E7C00962DE00B6382CEBF6D286FC307C00C1480C4824652917E0006C6DCD8F9 + 435E790B546644E1025CBBFB9269D2D9FA9DB800A76F3C2655598754510139D6 + 26A8BE1CCD1EC07CE920D8263D4B38ED7F0480D9022800F1C60662CD3CAC8A0A + C8BED3083539313800832AB807E4973EC50728ACED609A745A6C282EC0F1DC7B + A4DC700CBE8FE3B7408EA901EE5FD57300148001FBEF1628AE7FC534E9D4981D + FEED2BE687EC0162B36B48659EDE0F8019B9A60750773D9E033007B018E2FC00 + 96479D4C934E8ED6FAB78DE67AF6004733AB4869DE49555440BEA916EA6F2670 + 005400CC165005006670003500F016400C0EC00190004A0C27604405BF06D100 + 8AB3F4601344ECFC39001A4051561CD805FCBFC6D000B0139F19CC01341AAAD7 + 535D70000EC00860F3F60855DD5BA4E8EE6CD6CC02B858D14965A2AFEB0AB173 + 5D3CC0AD44ADE217DAA2DD3B6BDF50DD223BCE782A42F6F8BAF51B658F7FEDED + 913DBED8F37300D600D2C4E64B34F07D29F1851295C6FFEBF939C07C002E51D9 + 7BE1B65DFB38405002A4599F2B02D0FDC4121C00B4164C6875FB3980DC440243 + A98FC1C58E9F03406BC588D402AA07A0B56244AA00DA25BDE416A0B562441716 + 199C004A3D2E2FB580FA01283D2E1F3C15C001E8AC18E12DF0A702022712180B + 4D5CE9F1730068AD18898C8C0A4E00A51E970FFC22A4969803406BC5486005A8 + 25640196DB8A911FB24D1CCC5DDE6C820000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_15_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000037F4944415478DAEDDB5F4853 + 511C07F0DFCA02A1C71EEBA187A0B77A297AAA65B5D255926519962B6B221A99 + 65FEC9A961AB484C9B6DF33F52A4694586A86591091188BDF4506145A845A939 + DC9C7AF7DF9B5B6DADCD39AD7BCEEF2EEFF7C5EB76DC3DBF8FE7B7219E236259 + 16DC395BD5C55E4B1283D9FEFB311279FF590713662B4C9A6C306EB683D5E600 + C66203C66C03B9741D842F5924223A815F71D62E9A0D2043FB98F39B16A7EC84 + AF236330315DBC2F82D5EE00E3A4851A821FC0998A4EB624390218EB14D11B8F + 99ECC0304C4004BD910179D45A5816BE9428021A003B35FD9BB6B0B3220C8F8E + 43D6C18D7401D2B44F5955CA760F40664507E7372D4ADE016FFB75D0D2FDD1D5 + F38162B7DBA02C554217E064D923567D2A92F80A70C6D906EDDD1FE0DD806EC6 + E72D661368D2A270000C2607710077060647A1FD559FEB53C03B7A83111F4051 + FD841AC4E2B03058BD62B9E7FBDEFE210480EBEDACFA7414D515E09DE1D10978 + D33FE27A237CF9FA1368D2A50B0BC01993D501DF468C50D7DA830F40B3059C51 + CA259E6B4565073E00665000928A9AD9AACCBD303866C5AE1F0A2ADBA03A2B06 + 17E0D2CD67548BCE956DC5053871E53E5B93B39F172B204FDB02B5E763E903A8 + CFED03FDA4ED1F5EF63F02C06C011480446513ABCD3EC08B15907BA319EAF2E2 + 70008678F01E5058FE101FA0B8BE936AD119F111B80047F26FB1958AC3F07D1C + BF05F2544D70FBA24C0040011834FC6C81D2C6E7548B4E8FDBE2B9BEA0BE4B1F + 203EB78EAD2E9079003093AFBA030D97130500EA001A4582074073AF8B6AD1A9 + B162CFB552DD481FE050760D5B5E708C172BA050550F8D57E502002A00660BF0 + 02003302001F008416408C002000200194298E828E077F0DA20194E6C840CFD8 + B1EB1700D0004A7212C0C0E0FF6B0C0D00BB70EF50071089A86CCFE34DA801AC + DF2CE5D5CA72A7A7AB5524006000286ADB661CA73C2E9DF17152E3FD009C5B65 + 4900BC6828A652102700CEBDC25C678378D71F130B34F195ABD6B8BE7EE9EB9D + D378DFE77D7F3ED8EB0B00028000209AF5BC0057D9B46DB7001092005C9D18E9 + 79A09971E2BE0906E39B6085061BEF0740EAC08458B24700F09ED85C97E87C5B + 60BEE3FD00489D1871B700EF01489D1809991540EAC48824323A3401B8DA2E1F + 3A2D4068BB7CE8AC00C200BE85FA26100CA98FCDA0005CB740C8017015DF15C0 + 97F801903A31121D1D835DEBDF012C8413233F00DE124ECCE2851ED900000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_16_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003814944415478DAEDDB5F4853 + 511C07F0DFCA02A1C71EEBA187A0B77A297AAA656539FB437F2CC372654E4423 + B3CC3F39356C158969B36DFE478A34AD4811B53432210231841E2ACC1067917F + 72B839F56EEE8F27676CE8361BE9CEF9DDD5FD8278372F3BE7F7D9F9ED32BC47 + 44080167AE947590BB7162A09DB66E2D4C986D60B1DA819BB68269F62756B205 + 8257AD10511F7C5E1CB58BBC01986D64192FEB3BDDBD833065B2A223A0017CF9 + A68349B3C50381335B4116CE0EC127408AE6A5DF07CD4FD80F3F46C76172B678 + 77048BCD0EC6A96966081E00974BDA49417C08709619AA038F9B6CC071DCA208 + 7A230732C9665813BC9A2A021A0099997DA7A7C91F1146C62620EDE476B60049 + 9A574499B0D705905AD2EAF741F3E2F7C127AD0E1A3BBFCEF5FC62B1D9AC5094 + 18CA16E042D10BA2BA18467D0538E2688396CE5EF83CA0F3FAF769B309D44912 + 1C0083C94E1DC09981A1316879DF3F7715981FBDC1880F202F6F6306B1322808 + 36AE5BEB7ADCA31D4600B8D7425497244C57C0FC8C8C4DC247EDE8DC07E1BB0F + 7DA04E0EFFBF001C3159EC30386A84AAA62E7C00962DE0884216EA3A9697B6E2 + 03600605202EAF9E94A51E81A1710B76FD9053DA0CE5694771016E3E78CDB4E8 + 4CE96E5C80D8DBCF4845C6715EAC802C4D23545E8B600FA0BA7A0CF453D665BC + EC3F0480D9022800318A3AA2493FC18B159079BF1EAAB22271008679F019905B + DC800F905FDDCEB4E894A8105C8033D90F49A9FC34FC9CC06F812C651D3CBA21 + 15005000860CBF5BA0B0F60DD3A2932377B98EAFAB9EB00788CAAC22E5395217 + 0066B2958FA1E6568C00C01C402D8F7601A89F76302D3A3142EC3A56A86AD903 + 9C4AAF20C539E778B1027295D5507B472600A00260B6002F00302300F0014068 + 01C408000200124091FC2CE878F06D100DA030430A7ACE865DBF008006509011 + 0D060EFF5F6368003406EAEB6CA059C792D3D5D1245A002012D101DFBA339CEE + 8D87810620AF6CF67A9EE27CB8D7E7699D2F00B006704E6CB189AFDFB069EEF7 + F7FE1E6071BE0780E356591A006F6BF29914E417001AB7CB6F131F1000040001 + 208000FCBD6162C79E830B1EFFED65CD3971F7380B71CF922F830200A51D235D + CFD50B0AF13571E7447D2DE9E59EEF01406BC38438F49000101000B4768C044C + 0BD0DA3112302B80D68E91D0B0C38109E0AFDBE59D2DE03E11F7A05F0669DD2E + EF5C010200CFE21380560BF025CC56C052C26AC7C82F29236ACC73083DF70000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_17_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A74944415478DAEDDB5B4853 + 711C07F09F6581D0638FF5D043D043502F454FB5AC666A17BA588AE54A9D8846 + 6699979C1AB68AC4B4D936EF4891B76E8AA8A59109218821F450A196A8455E72 + 389D7A36B7E93F679C439E6D4DDB39FFFF999E2F08E7EC1CCE39BF8FFFDFE6F0 + FFF74208019D6B45ADE87E9404F84E656B3750339685ED08BFEDE0351FDE6FEA + 20B6DABD4800BC68FB0666CB2C71046200CD9DFD3069B23208C6F99FC8809DE0 + B36E0D5604A700262B72E3B2AED3D93308D3460B71046200DDDF75306532DB21 + 50260BC803F121B80448D0BEE6FCA6D93187E1E7E8044CCD17CF46305B67C130 + 3D830DC10EE06A410BCA89F605CA3CC7EB8D278C56A028CA2982DE40813C6007 + 6CF059CF2B0231003437FF9B9E41FF4418199B84A4B37BF002C469DF2055CC21 + 0620B1A089F39B6645FBC1E77E1DD4B57F5DE87967B15A2D90172BC50B7029EF + 15525FF6E77D04D8626B83C6F61EF832A073787CC664044D5C00198071E32CEF + 00740686C6A0F1431FF347111DFDB8813C80A2B8191BC45A6F6FD8BA6923B3DF + D53F4C00E04123525F09C03A02FECEC8D8147CEA1F5D78236CFBD80B9AF8C0D5 + 05608BD13C0B83A30628ABEF200F80B3056C51CAA5CCB6A2B0893C00C9100188 + CAAA414589276068C24CBA7EC8286C80E2A49364016E3F7A8BB5E854D901B200 + 91779FA39294D382180169DA3A28BD11841F407DFD14E8A72D6E5C760501906C + 012200E1CA6AA44D3E23881190FAB006CAD282C9000C0BE03D2033BF963C4076 + 790BD6A213427DC9029C4F7F8C0A15E7E0D724F916485355C3935B32118008C0 + D0F89F16C8AD7A87B5E8F8E0FDCCF64DF553FC00A1A965A83843C600904CBAAA + 122AEE848B00D801348A300640F3AC156BD1B14112665BA9AEC20F10925C82F2 + 332E0A620464AACAA1EA9E5C04200A40B2050401403222801000C41620181140 + 04200490A7B8003A017C1B2406909B22033D65255DFFCA02908504F159C77FA7 + A3B5DECB0E2027250CC6296EFF35E651007CDCA8B7BD76D1FEE62DDB1C9EF7A3 + AFCBE1EB8AD20687AF2B2302DD3ADF0E80AFD9AABBF6052E825DB500F483B97A + 70FAB8ABF369481A8EBDEFEA7C1140046001D8A6CAF201F0BE227B4905090280 + 8FE9F2BB2547440011C0C183B0C3D5C7E052AF2F023803E07AC1C4DE8347173D + 98AB4297DA02ECE3CBBDBE08E00A80AB15231D2F359E01C0D7820989F49808E0 + 11007CAD18F19816E06BC5083D02D80FC28EBB5F6F977BBE5300AE274B4BFD8F + 7B260057D3E5E916105AEC01789A2ECF1E0142093680E504F78A91DF832970CC + 530859780000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_18_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000039E4944415478DAEDDB794814 + 511C07F09F4781D09FFE59447F041141FD53F4576D566B6A071D9662B9A5AE88 + 46669947AE1A6645629AB6BBDE48915797221E69644208620811156A895AE491 + A2EB35BBEEAE4EAEB553EDD182CE7BBF31E70BE2ACF398F77E1FDF1B5D769E13 + CBB260CEE5FCE6DF2F0866F37A7708F6DC024EF3A1D19FBD986A77B204B8132A + 21DE717EFD3B70717646474003286BEE0466C6B0708C898006F0B4E533E80DB3 + E80868008DEDBD30A9337208DAF9AF10EF6DE0B6CA992A825D009D91ECBDB0BD + AB1FA6B50674043480CE2F2330A5D35B21303A03C87DE821380488563FE7BDD3 + F4F003F06D781CA6E68BB744D01B6761627A861A8215C0A5DC263623CC0318FD + 1CD18EC7B5466018C62EC2D8040372EFADB0C66D3551043400766EFE373DC3FE + 1361687412624FEDA40B10A97EC16685EFE70062721B78EF342DCC133EF48E40 + 75EBA785356F2F46A301B223A47401CE67D7B3CA0B5EC4678029A66550D7DA05 + 1FFB466C9E9FD1694115E98D03A0D1CE120730A76F6014EADEF470FF149933A6 + 99C0075014345283707175858D6BDDB9D71DBD83080077EB58E5456FAA33E0CF + 0C8D4EC1FBDEE1851B61CBDB6E5045F9AC2C0053B4FA59E81F9E80E29A367C00 + 9A4BC09454B9943B56E435E0036006052034AD92CD8F390A03E37AECFA2139AF + 160A628FE102DCB8FF926AD109B2BDB80021B79EB085F12704310312D5D55074 + D5973E80F2CA71189B362CE1B2FF1100E6124001084AAD60D5712705310312EE + 554271A21F0EC0A000EE01293955F800E9254D548B8E0EF0C0053893F480CD53 + 9C86EF93F84B2031AB021E5E9789002800039A9F4B20B3FC15D5A2A3FCF670C7 + D7948FE803042414B305C9320E0033495965507A334804A00EA052047200AAC7 + CD548B8EF09570C7A9CA72FA00FE71856C4EF23941CC8094AC1228BF2D170150 + 0130978020003023020801405C02881101440024806CC55918E1F9DDA0CCDF97 + 641D8B4E5B738D93154066BC0CC618A30840124051546BB35D6AB08FCD9F936A + 6F1320233E10340CBF1F8D2D2B005E2BFF95EED6AABF06E668E0E6F3EB366C5A + F8FEB5A7C3667BCBF38EDA5B5EDF0A80D4D3AADB77FBB02280082002081F80D4 + 8E91D7A5E93607204800128FCBEF901CB43910CBA0FF1914010803F0BD0496DA + 5E04B007C0F786895DFB0E8900CB1280AF1D236DCF54CB0380D4860989F4B008 + 606B2096B107632ECC328E0A75747D2B00523B46CC4B40F000A4768C58CE00A1 + C42E00DF0F4B4BBD8E60D7BA388095B063E4070FBF61CC6780A73E0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_19_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003884944415478DAEDDB6B4853 + 611807F0676A81D0473F16D1872022A82F459F6A5969CD0ABA588AE54A9D4846 + 6699979C1A664562DA6CF32E52E4AD9B225ED2C8062188214454A825CE222F39 + DCBC9DDD3D6DD60EBACD0CDD799FA39E3F0CCED90EE79CE7B7F739DB617B0534 + 4DC36A8E8007980570AD48494463EB461F08F7DF06026B308BB7D5EE04703F52 + C8FA818B9A3E82A787073A021A40A5B21B288369661913010DE045DB37309A2C + E80868002D9D2A98D09B19049DF51121DA01DE6B3C8822CC0BA037B37B2DECEC + 1980299D091D010DA0FBBB1A26F54627044A6F02490039840501E2F25EB9FDA0 + 59170FC1CF913198B416EF8860345B607CCA400CC109E06A412B9D1DE50B9471 + 9AD5038FE9CC4051D4BC089A710A24A2EDB0CE7B2DAB086800F4B4F59D36D0FF + 44181E9D808433BBC902C4E4BDA665170F3200F105CD6E3F6866943F7C56A9A1 + AEFDEB4CCFCF17B3D904B9D17E64012EE536D1F2CB87591F01B6D8DAA0B1BD07 + BEF4AB5DBE6ED0EB401123C201D0EA2CAC03D8D33F380A8DEFFB982F45F668B4 + E3F800D2E21662109E5E5EB079BD0FB3DEA51A420078D048CBAF88888E80D919 + 1E9D844FAA91990B61DB875E50C406AC2E005B74460B0C8C8C43597D073E00C9 + 16B02543E2C72C4B0B9BF1013083021099594317C51F87C1312376FD9056D800 + C5092770016E3F7A43B4E864F17E5C8088BBCFE992A4539C1801297975507A23 + 903C80FCFA49D04C9996B0DB150480D90228006119D5745EE2694E8C80E48735 + 509612840330C4816B407A7E2D3E4056792BD1A2E3427C7101CEA53EA60BA567 + E1D7047E0BA4C8AAE1C92D310F800230A8FDD30239556F89161D1BB48F59BE29 + 7F4A1E2024B98C2E4E1333009849955542C59D301E803880421ACA00289E2989 + 161D1D28649633E455E40182134BE8FCB40B9C1801E9B272A8BA27E101500130 + 5B80130098E101B800C0B70062561480383890CD3A169D0E65BD80077004C895 + 9E07B59BEF061D01366CDAE272BB1F7D5D2E9F979636B87C3E233C6049DBBB04 + C84912838632F3006C00D80B5FA850FB893AAE2FB4FD42FB777CDD2540765228 + 6829F7FE34B6AC00DC5AF9DFF4B6D72E0F00B6FEADBA736F00CD03F0003C80D3 + 8938C65D1F83FFBB7F2700B6668CBCABC85AD409A200B0F177F95DC223730A71 + D7905EEAF63C000FC00308884C98D873E0280FB02C01DC3563A4E3A562CE3A67 + 6F87D99A3021F43BC60370314E006CCD18716C01AEC4096035CE18F90D6BD44D + CC6224B3AE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_20_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003854944415478DAEDDB6B4853 + 511C00F0FFD402A18F7E2CA20F4144505F8A3ED5B2D2D20A7A588AE54A9D8846 + 66998F9C1A6645629AB6F91629F2D54B111F69644208620811156A89B3C8470E + 1F53EFE61E9E366B179B33CDEE3DFF6BDE3F0CEEB93BECDCFF6FE77FEFEEB623 + 2184C04A0E8908200288006CE3727E33158DCDEBDD20C8730B482C8199BC35F7 + 39007742A4BC0F9C5FFF0E9C9D9CD011D000CA9A3B819932CE6C6322A0013C6D + F90C06A3191D010DA0B15D0DE37A138BA0B33C82BDB681EB2A27AA08F302E84D + FC9E0BDBBBFA60526744474003E8FCA28109BD610E02A33782DC9B1EC2820051 + D9CF391F342DEC007C1B1A83094BF2F608069319B49353D410E6005CCA6D22E9 + A1EEC018A6791D784C67028661E64518D13220F7DA0A6B5C57F38A800640A62D + EFF414F923C2E0F038C49CDA49172022FB05C90CDBCF0244E736703E686AA827 + 7C506BA0BAF5D34CCDCF17269311B2C23DE8029CCFAA27CA0B07799F01D6B096 + 415D6B177CECD5387C7E4AAF035584170EC0A8CECC3B802D7AFB87A1EE4D0FFB + A1C81623A35A7C004541233508671717D8B8D68D6D77A8071000EED611E5452F + AA3360760C0E4FC07BF5D0CC89B0E56D37A822BD57168035740633F40D69A1B8 + A60D1F806609582345EEC16E2BF21AF0013003052024B592E4471F85FE310376 + FE9094570B0531C770016EDC7F4935E978D95E5C80E05B4F4861DC0941CC8084 + EC6A28BAEA431F4079E5388C4C1AFFE165FF2300CC124001084CA920D9B12705 + 3103E2EF554271822F0EC08000CE01C93955F80069254D54938EF277C7053893 + F880E4294EC3F771FC1248C8AC8087D76522000A40FFE8CF12C8287F4535E948 + DF3DECF635E523FA00FEF1C5A42049C602604662661994DE0C1401A803A81401 + 2C80EA7133D5A4C37DA4EC768AB29C3E805F6C21C9493A278819909C5902E5B7 + E522002A00660908020033440021007055026DCF547CE6B1F4E36AAE91509901 + 323F1FEC5C8505A028AA75D82F25C8DBE1FEBFEDBF6EC32687FBBFF67488000B + 026429CE8286E3BB411B80EDC0EC0FC43E515B62F66DAEFB3B04C88893C10863 + 1201562C407A5C008C32DCFE34B6AC0038CDFC5774B7562D0F00BEFEADBA7DB7 + 37110166C5622F534BEDBFD8CBA60820F412E0BBFF1C00BE568CBC2E4DA39210 + 27007CFC5D7E87F4900820028800CB0880EB0513BBF61DFEADCDF76570C9B7C3 + 22004F2B4696CD77827C2D98907A1CC1CE1517C03E84B462E407658142CC0409 + 01D00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_21_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003994944415478DAEDDB7B4853 + 511C07F0DFD402A13FFDB388FE082282FAA7E8AF322BADADFEE86129962B7522 + 1699653E726A98158969B36DBE91225FBD14F191463608410C21A2422D7116F9 + C8E1E6D4BBB73767ED32E7D65ADD7BCE6CE70B837BB7B37BEEEFB373EEDDC6BD + 3C9AA6C196C8F44ABA30231A3494057027575203F5B7453C2EFBB0D6CE7304C0 + 5DB87D9003F0789CF6E77521000480002C05B85CAE407210DCBC3E0862C3B658 + C1B18A3B05B8131FCC79C7E5EDEFC0DFCF0F3B0236803AC5005006D3E2324E04 + 6C004FBB3F83D164C18E800DA0B34F09337A3383A05B78C4F1B741E02A3FA408 + 2E01F4666E8F857D83A330A7336147C00630F04505B37AE332044A6F0291001D + 825B8014F973D63B2D483C00DF26A76176A1784704A3D902DA39033284650097 + 4ABBE8C28410A08CF39C763CAD330345512E11D45A0A44FCADB0267035DA1F43 + A800E8F9854FDA40FF1661626A06D24EEE440B90247F414B12F73300A9A51DAC + 779A9F10061F942A68EEF9B438E75DC56C3641F1B950B400E78BDB69E985839C + 8F006BACD3A0AD67103E8EA89CBE6ED0EB4096C4C703A0D1A1FB4768646C0ADA + DE0C335F8A6C516BB4F801C4159DC820FC030260E3DA2066BD5F398E01E06E1B + 2DBDC8473A02EC3331350BEF95938B07C2EEB743204B16F81680353AA3054627 + B550DDD28B1F00E514B0264F14CA2C8BCB3AF003E00C1680F8FC46BA3CF5088C + 4D1B71D70F3965AD509176142FC08DFB2F91169D29DC8B1720EED613BA32E3B8 + 578C802C7933545D0D470F20BD720CD473A67FD8EC7F0480730A600188C96BA0 + E5E927BC620464DE6B84EAAC083C00E35E700CC82D69C20F5050D385B4E894A8 + 10BC00A7B31FD065E253F07D06FF14C89234C0C3EB42028005604CF3730A14D5 + BF425A7472C41E66F99AF4117A80A8CC6ABA2247C800E04CB6A40E6A6FC61000 + E40032713403207BAC405AF4B9F06066394F5A8F1EC07A915449CE59AF1801D8 + AE122300760038A7805700B0156164389775FC757A152D3C0280620AF43E932D + 591757B53A6D97172B70FABCA7EDD76DD8E4F4F9AFC3FD9E01B015C711E0B300 + B642DCEDB86D47DDB5777CDDF1FDEEDA13006700C5E233A062F9D7E08A0228CA + 10829A3213009F05E0E28E911505C06AE5BF32D4D3E4B450C7B8DA714FDBFFE9 + 697319005757AB6EDF2D5802EBB3009E0E69AEDB130002E000C0D51D23AF6B0B + 9014C40A001797CBEF083E440008805DB83AAD79DA9E00B80260FB86895DFB0E + B3BA3DB64200DC01F8C21D233F00F9C142CC6CCB46050000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CalculateSize_22_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003924944415478DAEDDB6B4853 + 611800E0776A81D04F7F16D18F2022A83F45FF3223ADAD3F5D2CC572A54E44A3 + B2CC4B4E0D5B4562DA6C9B77A4C85B3745BCA4910D42104388A8504B9C455E52 + DC9C7A76F7E4AC1D746E4E6DE77BB73C2F0CCECE397CDFF73EFBDE6F3BE31C1E + 4DD3608BF0D4323A3F4D086ACA0CD8912DAD849A7B221E9B7D5873E771007600 + 796991A0A12CD8F9E3016027BE308803F078ACF6E771C10170001CC062806B25 + 4A228BE0CEAD01101DB2CB0A8E2AEE10E07E6C20EB1D97B47C045F1F1F740434 + 806A652F5006D3FC3626021AC08B8E6F603459D011D000DABA5530A5373308BA + B9570C7F0FF86FF0218AE014406F66772DECEE1B82199D091D010DA0F7FB384C + EB8D4B1028BD09440272082E019214AFDCDE696EFC11F8393609D373C9DB2318 + CD16D0CE1888212C01B85AD44EE7C50501659C65B5E3499D19288A728AA0D652 + 20E2EF864DFE1BC95E0C9102A067E73E6903BD2CC2E8C414A49CD94F16E0B2E2 + 352D8D3FCC002417B5BABDD39CB810F8AC1A8786CEAFF335EF2CCC6613142404 + 9305B858D042CB2E1D657D0658C35A06CD9D7DF06570DCE171835E07F2CB7C1C + 008D8EDC3F4283C313D0FC7E80F951640BB5468B0F202E6D2306E1EBE707DB37 + 0730EF7B542308000F9A69D9153ED119B0304627A6E1936A6C7E21ECF8D00FF2 + 44C1FA02B086CE6881A1312D543476E103902C016B4844C1CCB6B8B8151F0033 + 50006273EAE892E4E3303C69C4CE1FB28A9BA034E5042EC0ED476F88269D2E3C + 840B1073F7395D9676CA23664086A201CA6F849207905D3F09EA19D33F34FB1F + 016096000A4094A49656A49EF6881990FEB00E2A32C27000463C600DC82EACC7 + 07C8AD6C279A745244102EC0B9CCC774B1F82CFC9AC22F810C692D3CB925E400 + 500086357F4A20BFE62DD1A413C30E32DB37654FC90344A457D0A55942060033 + 32A5D55075278A03200E2017473200F2674AA24927840632DB12590D7900EB4D + 528559173C6206A0DD25C60680303C94CD3CD61C5DCA46DEB200EE2A81AE9772 + EC5CD706E0AEB09F01E2F22687E749A2050EF76FD9B6C3E1FE1F033D0EF7AFB4 + 7D0E807409D806E62C51FBE3B6C45D256A3BDF55FBF6ED119F011C0007E00500 + 05E2F330EEE6AB41AF0260E381090EC09BBE06D97862C4AB00DC9AF9DFE8EFAC + 5F34B09596C06AA7F46ADB5F02C0D6DDAA7B0F08680E8003E0003C1F80AD2746 + DE55E5AE698028006CDC2EBF2FF098C381D887AB81BBFB7C0E000BC053820370 + 06B09E9E18F90D8CD839CCCAED75110000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_23_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003904944415478DAEDDB7B4853 + 511C07F0DFD402A13FFDB388FE082282FAA7E8BFCC486BEB9F1E9662B9522762 + 5159E623A78659919836DBE61B29F2D54B111F69648310C410222AD41267918F + 1C6E4EBD7B7B73D686EDD152EE3DBF3BBC5F10E6DDE59CFBFB78CEE5CE9D23A0 + 691A1C89CEA8A24B73CFC1B8CE0CD8C993D542C35D8980CD3EECB50B5C014AA4 + 6741336BC1AE1F0FA038530C5ACA8A5D3F0F80065094190B3ACA865D3F1E0076 + E1CB431C402060B53FCE8507E0017880BF01AE56A888DC04B76F0E81F8881D76 + 7054718F00F7124359EFB8A2E303040604A023A001D4AB068132FD7EDCC64440 + 0378DEF315CC161B3A021A4057BF1A668D56278261F12741B80B82D7051045F0 + 0A60B4B27B2FEC1F1A837983051D010D60F09B06E68C663704CA680189881C82 + 4F8054E54BC63B2D4C3E043FA666606EB1785704B3D506FA7913310437802B65 + DD7451521850E605563B9E315881A228AF085A3D0512E14ED810BC9EEC872152 + 00F4C2E25FDA44FF1361727A16D24FED250B7049F98A96251F7402A4957532DE + 694152047C526BA0A5F7CBD29CF716ABD50225E7C3C9025C28E9A0E5170FB33E + 02ECB14F83F6DE21F83CAAF1F8BEC96800C525210E80CE40EE3F42A3E3D3D0FE + 6EC4F950E48856A7C7079056761183080C0A82AD1B439CBF0FA8271000EEB7D3 + F2CB42A223607926A7E7E0A37A6AE946D8F37E181429A2B505608FC16C83B129 + 3DD4B4F6E103909C02F6E44BC29DAFA5E59DF800984101482C68A22BD28EC2F8 + 0CFE7783B9E56D50997E0C17E0D6C3D7448BCE121FC00548B8F38CAECA3CC189 + 1190AD6C81EAEB91E401E4D78E83761EFFDB614E00604E011480B8FC465A9971 + 92132320EB4113D46447E1004C70E01E9057DA8C0F5058DB4DB4E8D498305C80 + 33398FE872E969F8C9812532D9B246787C53CC03A0003856891537BC215A744A + D47EE7EB1BF227E40162B26AE8CA5C312796C9E5C8EAA1EE761C0F401C40218D + 7502289EAA18E9A8EF8582CD3A567F5DAA5681DB222936568A8AA323B16BE516 + 80B4BACDE379F9F1228FC7376DD9E6F1F8F791018FC7FFB77D9F006C4D01BF01 + 602A8E11E0B8306F85BABEEF28DC57A18EF37DB5EFDA1E0F407A0AF81D0053F1 + DB11C003AC450036768CF8D573001B1B267880554E81950EE995B6EF11808D1D + 237E05C068E57F32DCDBEC1F006CAD56DDBD4F44F3003C000FE07621AEF175E1 + 4C9FEF06C0D68E91B77585440A6204808DE5F27B428F30DE2613E1014801B886 + 4B3B467E012D5333CC68BFB52F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_24_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003854944415478DAEDDB5B4853 + 711C07F0DFD402A1471F8BE8218808EA25E82D33D2DA9E2A35C572954E4423BB + 98979C196644629AB6CD3B5264693745BCA4910D42104388A8504B9C455E72B8 + 39F5ECEEC9591B733BD311E7FC7F6778BE303837F6DFEFB3FFFF6CBAFF5F44D3 + 3438139F534757169C8349BD65655FF95C0D24931E13EEDA2E2C6F84A6BB3211 + 97ED396A17AD05801901000BA0427E16B4F356ECFAF100CA72A5A0A36CD8F50B + 006800A5B989A0A7ECD8F5E3016017EE1EE2002211A7EDF12E0280002000AC06 + B85AA3267213DCBD3D0C92A2F638C051C51901EEA58473DE704DD727080E0A42 + 47400378AA1E06CAFCF7EB3626021AC0CBBEEF60B1DAD111D0007A0635306FB2 + B9108CCB8F64F13E08DD144414C12780C9C6EDBD70706402168D5674043480E1 + 1F5A583059BC1028931564127208EB0264AA5EB3DE6849DA51F83533070BCBC5 + 7B22586C76302C9A892178015CA9EAA54B532380B22C71DAF09CD1061445F944 + D019289089F7C296D0CD64FF182205402F2DBFD3667A4D84E9D979C83E75802C + 4086EA0D5D9E76C4059055D5CD7AA3C5A951F045A385B6FE6F2B63DE576C362B + 54A4479205B850D1452B2E1EE3BC0738E218069DFD23F0755CCB78DE6C328232 + 438C03A03792FB8FD0F8E42C747E18737D297246A737E003C86B7B8841048784 + C0CEAD61AEFD21CD1402C0FD4E5A71494CB407B8677A76013E6B66566E847D1F + 47417959B2B1001C315AEC3031638086F6017C009243C0912259A46B5B5EDD8D + 0F8019148094E216BA26EB384CCEE1FF365850DD01B5D92770016E3F7C4BB4E8 + 3CE9615C80E43B2FE8BADC685EF4807C551BD45F8F210FA0B87612748BF8BF0E + F302007308A0009C2F6AA65539B1BCE801790F5AA0213F0E07608A07F780C2CA + 567C8092C65EA245672644E0029CB9F188AE969F86DF3C9822935FDE0C8F6F49 + 05001400E72CB1B2A677448BBE1C77C8B57D53F18C3C40425E035D5B20657D9A + 5C7C6C349775FC7706D4ED2201C01340294F647DAAECC02BE5AAFD6D3B76315E + F7736C88F1B8BCBE83F178519284F1B8BFCFEF05C0D54C51697C8C00E05E88AF + 17EE79DE59C87A30FE5EEF797E5D00B68740C001B09580ED011B1E4018022C25 + 607B00DB009E2FC4336C7D0CFA7BBD00C004C0C58A11BE0C01CFEB1901B85830 + 2100041200172B46020A80D5CAFF65B4BF353000B89AADBAFFA0841600DCC2DB + 8F41018010005FE205C0D58A91F74F4AB06BF51F60A3AD18F9037A4C36CC1D67 + 00E90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_25_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000037D4944415478DAEDDB5B4853 + 711C07F0DFD402A1471F8BE8218808EA25E82D31D2DA9ECA4B89E52A9D884676 + 312F3913CC88C434CDCD3B5224295D14F19246B617410C21A2422D711679C9E1 + E6D4B3BB27679DA1F3CCA99DF3FF9DB5F385C1B6F387FFF97DF6FFFF77FB1F09 + 4DD3C02436AB96AEC8BB0813062B6027BFB4011AEF2B247CF6E1AC5D2202AC03 + A07AAE215A746A74A8B000302302600194292F806ECE865D3F1E4049B61CF494 + 1DBB7E11000DA0383B1E0C9403BB7E3C00ECC25786388044C26B7F828B082002 + 8800AB016E546B882C82FB77874042C4012738AA382BC083A450DE3BAEEEFC08 + 810101E8086800CF34434059FE7CDCC644400378D9FB0DAC36073A021A40F780 + 16E6CC76178269E996283D04C1DB028822780430DBF95D0B0786C761C1644347 + 400318FAAE8379B3750D0265B68142460EC12B40BAFA35E79D16A59C809FD3B3 + 30BF54BC3B82D5EE00E3828518C21A80EB953D7471721850D6455E3B9E35D981 + A2288F087A23050AE941D811BC9DEC97215200F4E2D22B6DA1D745989A9983CC + 3347C802A4A9DFD0A529C75D0019955D9C775A981C019FB53A68EDFBBA3CE73D + C56EB741596A385980CB659D74F99593BC8F00679CD3A0A36F18BE8CE9588F5B + CC2650A54971000C2672BF088D4DCC40C7FB51D78722267A83111F4059D34D0C + 22302808F6EE0C713D1ED44E22003CECA0CBAF4A898E8095999A99874FDAE9E5 + 85B0F7C308A8AEC9FC0BC01993D501E3D346A86FEBC7072039059C295084BBEE + 2BABBAF0013083029054D84C57679C828959FCFF06F3AADAA126F3342EC0DDC7 + 6F89169D233F860B9078EF055D9B1D25881190AB6E85BA5BD1E401CA6F46827E + 01FFDF614100604E0114804B054DB43A2B46102320E75133D4E79EC5019814C0 + 1A905FD1820F50D4D043B4E8F4B8305C80F3B79FD055CA73F04B005B64724B9B + E0E91DF9FF01101319C9671D5B4EBFA64DC20AC0EC122B697CC74D47AF54D8B5 + 6E0C202EA79EAEC99373BE4D2E36266AD5E35D7BF6B1B6FB313AC8FABCB2AE9D + F5F98204D93FB51701D80054CA78CEB7CA32538039316F27CE1CDF6C7B06D61B + 24D37E0D005F3B45E5B1D122804F02885380A3F8EC08F07B00AEA780FB89B8C7 + 53A17CBD6D121F017E0FB0D921EAADBDFB71C1AF013E01C0C715233E05C0C705 + 1322802F01F071C5884F01705AF9DF8CF4B5B09EB87BBC15BAD1F65B7E1BE46B + B7EAE1A3B255B07E0F20948800EE00FE98DF276435CC87956671000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005714944415478DAEDD87F4C94 + 751C07F00F70D82C57D19802377048F66B6E995191E8D6CA553A3673D5E64659 + FEC050DB743422771A6364AE984453F10635D150B09524C88F14B39634911C73 + 01920177838E3BAEFBE171BFB81FDCD37357CF0DEED7F7F93E7C9FE71E069FBF + 6EF73CF77CF77E3D9FEFDD3D9F188AA2602E57CC3C8000001F54FDCCDB224F2C + 4D84EDAFACF0651135C0919D2FF072ED9ACBBD30E9A13823CC7A80F3D7FE8271 + BB9333C2AC07F8F1A612AC76174CB826C1EE746323080AE074935FABEB8E1A2C + 7407300846CB04E4AD7F121648625821CC7A80BE611D58275C9C11A2025070BC + 95C875CBF7AC8711AD09CC34402082DE6485F772562111040128905FA1CAF35F + 029BD343FCDAE3763758ADB6B008DB373C05F72E880D8B30EB013C9E49B038A8 + B0082A9D090ADF7C2EBA00FB2ADBA98ADDEBFC001F9E682372DDCF77BD0ADD03 + 1A68BA3E082EF764C87326DD6EA0D78E2EC0FB5FB650C7F66EE0A503BC357AD7 + 09E7DABBC16071041D73D86D40AF2D0E00A3CDCDEB3AAD9D03707B443FED3DA3 + D1243E8083D597785DEFF16529FED7B78746A30FB0BBFC22555990C37B0730E5 + 7079A0AB5F05669B03AE750F00BDF6DC02604A396686EA860EF101F0BD054AF3 + 5EF6BF96C9DBC40720648902606759035555B8093426A7E0001F573503BDB6B8 + 003EA969E775BD03EFAE1317C08EC3DF515FED7F232A1D70A0B211E8B5F10048 + CFF04C7A1D5416BE0E06AB6BF600909CE0D01D300D20700BF4EAFF04A5325D30 + 94FB1ED040CFD1FC18C100B695D6817CFFE6B01D70A4B9115A7F4D80959959B0 + F01EC9B46392D858FFEBD880A7DAB8B8D8A06BC5C7A10741E77FB8008AD3AF09 + 0FA08EF01DF0D1D933F047DF5241105803901A61E51FAE9F0650567B25E4799D + AA1EB09B9FE61D4170801DA5B52097E5C23F66F497A0109D800D30D319DEB841 + CF1A4008042400E91156FEA1333E00EFE0C25B15753F213FC3E776101C20AFE4 + 145417BFE307605BB2BAB3D0DB4FBE139000A4677846ED181C93BD0D7A0BFEC3 + 101F084800D2333C6F07780134A6FFBE038E7F7B15EBF3CC76783E7B4DD0312E + 08AC01483DBEEE2A3909278AB7FA0170AA4FA58022F9EFF0C8F23520954A439E + 838BD0D4D4880730D301866E54C5098009FF70463624A7484112E1B71D070109 + 407A8011D8016CB680C16180CE3B6E589EB1D617DE1F940042D4015035F5CE27 + 2E4EF2BD172F892386800D20E41660C2A7A7AF862549C9D38E9142106D07440A + 4F12A1A5E5626400D233BC7D9F9E4202B0094F0A011B60A6333CD416C0094F02 + 0109407A86E7ED807065A62CD06F4880B4B4D5F0506212FD6F2F8EF575B922B0 + 02106286776B6408F654DC80D4B42C5F78A6B8228C69466158A940FE6D6E6B6B + C603E0638CCDFCCE33773EB07011D4F4361B18EC80158F4EC0C05046440424C0 + B6D23A2AD20C6FA6755339047B8F06DF79AE083AADC617BE5E960D99E919315B + E53554D7ADD4B008AC01D43CCCF17BFE56F8C2274B9F85C54B5290E7A31002C3 + 33EF474268BFD48A07106E86875B4CDBA748B3588547218C69D4A050FC16141E + 858004D852FC0D8533C2625B2F16D5F9C227FCDFF6F1219ED4D822A0C2474288 + 1AC0C6435FD30BAE82D4658FF9DFE382C0367C3804D60038333C36E5743AE0EA + A00A162DCCE48C306ED462850F85D0F1CBE5C800B9B2931497191E9BB258CCF0 + D617DFD33F5D2BB1110C3A0D8C0C5FC70E1F8860B59AD1005C67787C21CC343C + 53A50D177C810F6EDA8806E03AC3635338DB8154F850151260735135C5758687 + 53776D16C8AB88DC097C868F3A000A413B360A6AD50DDEC2B306E0630B4CADDC + 9C6782108CF49DE73B3C6B00216A6A272CBAFF4141C28B0A8041D852560B1E77 + 029C93ADE53DBCE800BC5552510BF59FE5F11E7C1E601E00012078F229157580 + B954731EE05F2E3469CCF1195B120000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000064B4944415478DAEDDA7B5014 + 751C00F0EFDD4148DAC3C6518151071FBDC699CCB421D199A62CF34164A96351 + 6619BE70028F11D2D318B36814C143E511E4E014498422823C544C9BB4414D1D + 2745233818E9B88380F3B83BEE7DDBEDEA2E70AFDD3D7EBB77037EFF61D93D7E + B7DFCF7E7FB7FBFB1E020CC3603887E021800B00814080F44DC4DF9DE34CF9F9 + 496360CD82E9F839B33A69326FDE00D2D7BECA09C0E133B7C06AC358230C1980 + D20BFF408FDEC41A61C8009CBADA023ABD190C662BE84D16C6083E013059D07F + 145C695080D65E0124824A6B80D8852F4050A0D063124306A0FE6E27E80C66D6 + 083E05106755231937236E21B476A84163077044E852EB60DD92996E117805D8 + 9C538B65AC7F1D7A4D36A4E3E2D1A3B7804ED7EB1661CDA217616490C829A121 + 0360B359416BC4DC22C83BD590B422C2B700F1596730E9C6F91440524E0D9271 + F76C780BAE372AA1A2AE09CC16ABCBD7582D16C88C7BC3B70071D24AEC60FC22 + 4E2A008FB67B2628AEBD0EDD5AA3D331A3BE17B21216FB0780AAD7C2090019D5 + 971AE1766BD7807D2A95DAFF0076E49FE614E2B9C9A1D4F66D599BEF0136A457 + 60D9E2259C57001946B30DAEDC9183A6D70817AE37424E62D4F00220A3A55D03 + F9C72FFA1F00D7536057EC9BD4B624B7C6FF00F80CBF0088DD538AE56D590A4A + B58977802FF32A213FE95DFF02F8FA702DA7496F5F3DDFBF00D6A49660DF6F5D + E6930AD89E5D0E87B62D67079098771EE9BA55A356C1EEB828E8D25A20D0BE2E + 090A400BCC0900CA0E8E38FB14646C5C405480D6680369D1AF038EDFEAFA1B5A + 5AC2794319F984126E1E582FE00D60B3B41C766F8A826E9D99002063549090F8 + 995E590ED5BF8F8619B32220382860C0DF060885D4B6D061692F12099DDE2B50 + 445F5DA56527A0F98777F80388DB5B06FB12A29D00FA9FF017477E82BFEA27F1 + 82C01800550B6BB3F4040560B48F99597C9E3A6632F72D632FC96F825EF312E7 + 083E03503CB80B98AD7DE392DB8F3E723F093E2A8135C0607B78DDC66EC858B7 + 82B8FA8E00BE40A00510E79E45DAC2DAB2BF1CD23E7F1BFED39889DF334B2EF4 + 1DB4F53D1EF3351DF807C8380A69E2651480BB0A703C6149D111B875077D25D0 + 022464D722EDE1A93ADA213D29869802F8980683C1E3EB1F1B194C6D7381400B + B029B30A690F2F716F31A4262C279E04F1C829AB237A754C839C0EAF44CE753A + E60D02630054CBD76DD292010064E0A5EFAA1A468C18416DD7CB9B2139F74F78 + 7ADA5C080B0B73393E5B848A8A727600836D60E0532055FC0174F7B8BEEA4251 + 20B56DB39A290032F9A953222124340C023CDCDBD920D0026CCC3889B4819198 + 5E02E989CBED6B81FB1F82855575038E1BAC02C02CF75BDAE49D00BF755E6AB0 + C0B429F388E4A9441120F81CC053E05342D6A5A0AEFC98B1E389FD8101226408 + AC01B89E02FDE7FC355903A414DC80F0F039306E7CC880D7A142F0DB0A20E7BC + ABE4512254559DF40CB036ED38D21EDEB6FDC7680198248F0A8135C0607B78F8 + 14D819FF3E68747A97C7C939CF24791408B4009F7D7B14690F0FAF0077A1B1DC + 836BF2609838710E3C3566BCFD694FC4785C6F111801646F798F58BF7319375A + 651027BD0C13264610C993E12D42BBB20DEEB634D33E36D7D454B203E0A28D4D + DEE7C92BEF186C11146D72686CBA08D39F3140A36C8A47045A804F771561B95B + 57725601575B64107FC0F9CA7B8BD0D9A12492FF591209B3274F15ACCE29C0AE + DC98E01681318082833EFECD7F9B89E443C25E86B1E342695F4F87E0983CB9DF + 1342EDE96A760069856791244F967D685804A3E4E910DA950A686EFEC329793A + 045A8055293F62B99218AA81812A5E4B2E22921FFDA0EC035DACD49822D025EF + 09C16700D1DF1CB2BFE14C9830F9596A9F37084C937787C01800FFE7233C1CBF + C9F1364C26239C6B92C3A8E0595E23F4A83A5825EF0AE1E26F673C03C4480AB0 + FC948F290094A1D56AE0C37DC7ECB7AE19AC11BA3B95D07AB78E75F28E083A9D + 861EE0A0E423A70E8E2F11069B3C195F95961109EF581A4D0F402E5EB27E3987 + 1C81CD7440957CFFF0F8EDF0CAE47C2C27E513460D8CC1C4BD5E2DC44A3D5702 + 17C9FB0D001D42477B1B28E4979127CF1A808B29D03F6296CC764250D9AF3C57 + C9B306E023FA57C2A8C79FE43479BF04201156A51582CD321A8A25F3384BDE6F + 01F0D8292D84E23D6B39FF27A287000F01680078CFBC5FF81C6038C5B007F81F + 205409DBD3D34C8D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006814944415478DAEDDA7B5014 + 751C00F0EF711012A6C2102A37EA88DA6B9CC94C1BF231536A964AA9BDC619D2 + 34041F34A3E108C9F928292A1D144779281A56245986C65B85B4D4F291398EF8 + C81018E8E020EE8E7BBF6FDB5DDC8DE31EBB0BBFDDBB01BF7FFDD8DDDBBBEF67 + BFBFDBFD7D0F118661309043F400C00D80482442FA26C9FBCFF0A6FCD4980888 + 7F7922F199397D682A6FC10032135FE005E0F0E99B6077609C11FA0D40F1F9BF + 4163B47046E8370027AF3682DE680593D50E468B8D35824F002C36F45F0557EE + B6820EAF000A41A53341C2BCA7213828C06B12FD06E0565307E84D56CE083E05 + 48CEAE4472DE5D49F3A0B95D0D5A1CA0278242AD8755B1933D22080AF0416E35 + B66BF56C30581C48CF4B84C66803BDDEE011217EFE33101A2C7649A8DF00381C + 76D099318F08B20E35A4BC1DE35B8075D9A7B1ACB573688094DC2A24E7DDB1E6 + 15B8562787D28BF7C06AB3BB3DC66EB3C19EA4977C0B9094558EED5B379F970A + 20A2A5D30247ABAF81526776D967361A207BFD02FF0050196CBC00505179A90E + 6E372B9CB6A9546AFF03D8927F8A578827A3A3E8F1EDFA16DF03ACC92CC57292 + 6379AF002ACC56075CB92303ADC10CE7AFD541EE8657071600158D6D5AC83F7E + C1FF00F89E02E90973E9B134AFCAFF00840CBF0048D8518C1DD8B818E46A8BE0 + 005B0F94437ECAEBFE05F0C9E16A5E93DEBC7C8E7F01C467FC801DDCF4A64F2A + 60734E091C4A7B8B1BC086036791AE5BB56A15A4C6BD081AFC993DE421310C1B + 3CC8FF01507670D20B6A60CB8AD9640574E26BF57DC7CE3BEDBFA9F80B1A1BC7 + 0A86123A540EB57B578B0405485D3A0B3A8DF81255670591C30A36BB1D228686 + 92FB33CB4BA0F25C184C9A120321C1814EAF0D0C08A0C7013D96F6627180CB7B + 058999A76FF1899FA0E1EB45C2017C74F024A42D9F0B4A3DBE54353BC06AC768 + 8447421F268FF9F0C8B770E3D61841105803A06A61651C3EE5045050FA3BB9DD + 641791AB352A2EC96AC1A87D967704C101B6E757C0D684F934001154151061B4 + D8217C887095C019A0AF3D3C83460DD2F879108A977B7700F203DC9F0A563B08 + 86C008909C5783B4859571A812D27000A27F67C651BFAA390766ADD8E91821A7 + 83CF00FED576953C75F5BB8FED56D3FDBF01FF620C21C7D2A22370F30EFA4A60 + 04589F538DB487A7512A202D7121840C0A26CFA9D11BC99FB23C45E4B0507ACC + 070223C0FB7B2A90F6F0D2F797424AFC027C0A74352E0B4FFE098A4E0D58AC76 + 56AFA7A6C3F3D367B8ECEB0D026B0054CBD72F0E9641EACA581A8008A2F4B578 + 2518ADCEC898CD0CE16161F4DFB7640D909AF7073C366106482412B7E7E78A50 + 5A5AC20DA0AF0D0C557B1B6C5AB508145AF78BA141C141F4D864B64264F810A7 + E4C78F9B0E23A32410E8E5DECE05811160EDAE32A40D8C8CFD2590B6EA35FC31 + B8EB7C440BBB67188C26A73B81D2AC844B776D3061DC4C32793A5104083E07F0 + 14C4B468576AA0C3A8A0AF7C44E408725F50E0FFB7CDBE227006E07B0A481E1D + 4A8FCFD6DE80CF8FDC86B163A7C1F011239D8E4385E0B71570BDA99EBCF2EE92 + 4789505151E61D2071E771A43DBCCC2FCB1801D8248F0A8133405F7B784C5380 + 9AF36C924781C008B0F2B363487B784405788A0E7327FC5A1700A3474F83F088 + 11F8D39E98F5797B8BC00A2067E31BE4F295CFB8DE5C0F49599761D4E8183279 + 2A7A8BD0266F81A6C606C6C7E6AAAA726E007CB4B1A9FB3C75E57B065784D616 + 19D4DDBB00131F37415DFD38AF088C00EFA51761799B96F05601571BEB61DD5E + D72BDF5B848E763999FC77D2E930357ABC68796E0176E5FA288F08AC015A79E8 + E3D7FED340263F52F21C440E8F623C9E09A167F2D4766F08D5A72AB901EC2CAC + 41923C55F651921856C93321B4C95BA1A1E13797E499101801966DFB06CB93C6 + D10D0C54312BB5884C3EEC7ED907B959A9B145604ADE1B82CF00167E7A087FC3 + C9302AFA097A5B6F10D826EF09813500F1CF47446415FD8C04C06231C3997B32 + 181C32A5D7081A553BA7E4DD215CF8E5B4778038690196BFED5D1A0065E8745A + 7867F78FF8AD6B12670465871C9A9B2E724EBE27825EAF6506D8275DCAB87811 + 12A1AFC953B1BDF80499F096C50B9901E4EAAEEF80ECEFCF2047E0321D5025DF + 3DBCFE3ABC24351FCBDDB68206E02B3A0D3A48C8F25E097C24EF37004C08ED6D + 2DD02ABB8C3C79CE007C4C81EE11173BD50541855F79BE92E70C204474AF84C1 + 4386F19ABC5F025008CB761682C3160647A533794BDE6F0188F838AB108EEE48 + E42DF107000F005802089E79B7F039C0408A010FF01F915D37DBA9F090970000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006944944415478DAEDDA0B4C13 + 771C07F05F798420C407A2028D3250F73026734E1726E8CC640F9D8B73F395B1 + 3937870F70EA30EA5C7566738F4403E290C744A3D954C4073A10618AE27353D1 + 3837F0351E0DACB4305A687BBDEBF575EB1DDE85D2C7F5E0AE6DC05F4272F4DA + BB7E3FF7FBDFE30F228220A03F97E8098003009148C4EB4ED27EAA144C795C74 + 382C7D633CF99D397D693AB7C700D2974D1704E0C0B91A305B08CE087D06A0E8 + EA3FA0C10C9C11FA0CC06FB7A5A0C38CA0379A013398DC46F00A80C1C4FFA9A0 + EA911C106B07D008ED881E92673E0F41817E2E43F419807B8D6DA0D31B392378 + 15202DBB8C97ED66A4CE84A6563568AD00DD11946A1D2C9F3DD1298247013ECF + AD203256CC00D460E175BB64693013E874A85384A5B35E8090207FBB407D06C0 + 62310382134E11646D6AD8B020CEBB006BB2CF119929890CC086DC725EB6BB7D + E59B70A7560125D7EBC068323B7C8FD964825DA9AF79172035B394D8BD669620 + 1D40567387010A2BEE800AC1EDD6E1180AD96BDFF20D8076D42408005D65376A + E17E93D2E6B5F676B5EF016CC93F2B28C473B151CCF2FDFA66EF03AC4C2F2172 + D2660BDE0174E1460B543D908116C5E1EA9D5AC85DF776FF02A04BDAA285FC93 + D77C0F40E821B02DF97566599257EE7B009E2C9F0048DE5E44EC593F17146A83 + C701BEDA530AF91BDEF52D806F0F54081A7AF39244DF0258FAFD3162EFA6795E + E980CD39C5B0EFCBF9DC00D6EDB9C8EB732B862090322F1ED408060382832132 + 2CC4F701F89CC1C93E7E1552E725502741F2D2B4AFF80F9BF535CA872095C678 + 0C25649002AAB356883C06F0E391CBB07AD1340A40D6A605E3E3E796B0810320 + 284004E9A5C5507665084C981407C14101369F0DF0F36396FDBA3DDAFBFBFBD9 + ED2BD09F7DF8169DFA151A7E7EC77300E9872EC2670B5F810ECC0C2A0D0A26B3 + D90681AC2F0E1F82BFEF457B04C16D00BEA6B0B20A2F51002A9D113A103D9CB8 + 540328A6A7D691E705BA6EC8AA01D3BE283882570110DC022663E7D5003374B6 + 0166BD77170F0DA5963DD1099C017A3B87876AD4B03A291122860EA200C82211 + BA0E051261F8E010EA4B0B8DC00A9096779ED729ACDC639761E5FC69D4FC1D6E + 453D7AE14F202C1626BCA787835701C822118CE6CE1F91C568D3092886C188F0 + 306A595270186A1EF0DF09AC006B732A789DC3238740CA82E930CC1A0CD3E3D0 + D28181C9C91C1E59D19161CCB21008AC00AB769DE1750E2FFD5025ACB29E0435 + 5867687208C895081870DCADCFD3C3E1E5F804BB753D41701B80AFC7D7ECC315 + 90FA7E22034017794FA0416D9F0F50DC084F450E657EBF276B808D79B7E0E9B1 + 0920168B1D6E9F2B424949313780DE4E6068544A58BE700668F48E3B6A506830 + B34C9E0869003AFC98D1F1101925860017D7762E08AC002919A7799DC0E8DE01 + C557AA6DD6EB8D26C0082DE05A7FE64AA0C25570E39109C68E9E4A856782F280 + E0750047455F151A9B5B002150E6C8870F8FA0D60706F8F386C01940E821302E + 7A18B35C5A750B328ED7414CCC1418111169F33EBE10BCD6014AC4F5F61ECAA5 + B03AEB3AC4C624D885E713E1CC99D3AE0196ED38C9EB1CDEDE63175801EE36D6 + 536DEFE8C8F38DC019A0B773786C4300B568DC0ECF07022BC0A73F1CE7750E8F + EC0067A5409550F69711468D9A0261E111D6BB3D7FB7B7DB5304B70072D6BF47 + 3DBE0A59779BEA2135F3268C1C154785A7ABA7082D8A66689436B0DE36979797 + 720310621A9BBECED347BE7B71459037CBA0B6EE1A8C7F460FB5F5A35D22B002 + 7CB2AD80C8DBB448B00EB82DAD873559F647BEA7086DAD0A2AFC11493C4C8E1D + 235A92BB9FA8BA3BD22982DB007201E6F1ABFF6DA0C2478A5F82E123A258DFCF + 86D03D3CFDBA2B848AB365DC00761C3CCF4B78BAEDA3C4716E8567436851C8A1 + A1E177BBF06C08AC008BB7FE42E44992E03F2DBF43E0D58D0554F8218FDB3ED0 + C1939ABB086CE15D21780D60CE77FBAC3B9C0823639F655EEB0982BBE19D21B8 + 0D40FEF31159990517D8F6E156190C3854D6C9203478528F1134EDAD9CC23B42 + B876E99C6B8024C97E227FEB470C009F85205AF860E709EBA56B026704559B02 + 9A1AAF730EDF1D41A7D3B203EC967CC8FAF0E24984DE86A7EB9BA25354E02D73 + E7B00328D49DE780ECA395BC2370190E7C85EF5A2EFF3ABC68633E91BBF56306 + 40A8EA401148CE74DD094284F719003684D6966690CB6EF21E9E33801043A06B + 25CD9E6C87D06E3DF24285E70CE089EADA09A103070B1ADE27016884C53B0E82 + C534040A2553050BEFB300647D9D79100AB72F132CF8138027006E02783C7997 + F23A407FAA7E0FF03F82CB44DBAF43EAE60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006AF4944415478DAEDDA7B5014 + 751C00F0EFF1881C4D254991130C50CB72CA7C14BE669A321F48993D2DD44CC3 + 549A341C353BCD297BCCE86838CA23C9741221B5D078DC9162D628CC21398C93 + A019728C78DC811CC7717BEFC7B6BBB83B1CF7D8DBE3B77737E0F71FF67697BD + FB7EF6FBDBDDDFF74E80E3380CE410DC07700120100890BE49C6F71778537E62 + 6C14AC9E3F89FCCC9C3E349DB7DF00F6AE799E1780A3E7EAC066C73923F41B80 + A24BFF4197C1CC19A1DF00FC7EA50974060B182D363098AD5E230404C06C457F + 29A8B9A9008CA8001A418D19216DE1D310111EE231897E03507FBB1D74460B67 + 848002646449901C775FFA42686ED3809600E88DA0D2E8E0C394296E11FC0AF0 + 494E05BE6FED8BA037DB911E978C2E8315743ABD5B84D5C9CFC0E08850A784FA + 0D80DD6E03CC84BB4590B76B60CB5B498105D890750ECF5C3F9701D892538EE4 + B8BBD72D80DA062594486F81C56A73B98FCD6A85FDE92F0516203DB30C3FB821 + 99970A20A3A5D30C272A6AA10333396D3319F490B571517000A8F5565E00E890 + 5437C0F56695C33AB55A137C003BF2CEF20A3131218659BEDED8127880757B4B + F0EC8C14DE2B800E93C50E3537E4A0D59BE0526D03E46C7A796001D0D1D4AA85 + BCD395C107C0F710D895368F5916E596071F803F232800D27617E187362F01A5 + C6EC7780CF0F9541DE96D7820BE0ABA315BC26BD7DE5DCE00258FDCD29FC876D + 6F04A402B66717C3E1CFDEE406B0E9D09F48E7AD060C83D40553A867F421831E + 80446154F003A0ECE0E44BAEC0B28553A98BE0CD962E38562675D85EA7FA179A + 9AE2FD8632789812AE1D582BF01BC08FE25A58454C4B4900F2DE6CB6E160351B + 61CCA81110112680BD65C520B9180993A725C1A0883087FF0D0B096196437A4D + ED4343439CDE2B3C947DF8169DF90D643FBDEA5F8065F32683CE4C4E4FB540CC + 521D10C8F8B4E038FC533FD62F085E03A06A61E54B6A8821309D026855EBA1F8 + 521D854086E2AE9AD9AF5A7E0D0CDAA9BC23040CA0D3600315660181DD020673 + B70059094693051E8D1E4EBDF647257006E86B0FCFA8D7C33BF3A7C193893180 + 99ECC4D9C71D100CC4E4C562B182F09161D487E61B81152023F73CD216D67171 + 35A4263F47F5EF4C046A69D575B0DB6C602492C6ED76BF0F8780029041229055 + 60B598C14A40D01745F2DB1D0D6680F163BA9F134485055077037D25B0026CCC + AE40DAC3D377692075D10C6A08B46B7420BFAB717B7D2187C253136299D77C20 + B0027CB45F8CB48777A4B80ADE4D4EA21A1564882BEBA0EE8E86EAD77913F470 + 98316BB6D3365F10BC0640357D2D104B29802E8363E756AEC240ABD53AAC23DB + D91313C730AFEBE532D89AFB374C183F1B8442A1CBE37345282929E606D0D706 + 063D04347A8BCBED23228782F55E5B5BA3D5310074F2E31267C1E818218479B8 + B77341600558BFAF146903A3A09418022933990A385F5DEFB48FA2D3D8FDF7DE + 9DA0C3D401D537AD303E710E953C932802848003B80B83D104F5B256C01FB430 + 673E6A6434B52D3C2C14190267001443E0EDE419D4F876155327C631CBA72E56 + 416E6933C4C7CF8451D1A31DF64385E0F70A3846DC0596BFC25E01D7EEC8E0E3 + 035248889FED943C4A04B1B8D433C09A3DA791F6F04E4AA4AC0064F21B0E5C76 + 79E651237006E86B0F8F6D08443C64F33A791408AC001F7CFB0BD21E1E5901EE + A2195341915403717133E1E1A868E2692FD4EBE3FA8AE01540F6E6D7A1436701 + 3EE36A7323A4675E86D8B8242A793A7C456855B6C0ED2619EB63737979193700 + 3EDAD8F47D9E3EF3BD832B82A2450E0DB72A61D2634668684CF488C00AB06A57 + 219EBB6D296F1570A5A9911AF3BDCFBCAF08ED6D4A2AF99F45B3607AC238C1CA + 9C2378CDD558B7085E032878E8E3D357FBD1C26761E4A818D6FDD9107A274FAF + F784507156C20D604FFE7924C9D3651F234CF22A79368456A50264B22AA7E4D9 + 10580156EC3C86E78A52E1AE16ED1078616B21957CE4BDB20F773153F316812D + 794F08010358FCF561E20DA7406CC2E3CC3A5F10BC4DDE1D82D700E48F8FC8C8 + 2CFC030980D96C820BB7E43064D0349F11BAD46D9C92778550F9D739CF00A9A2 + 2378DECEF718009481615A58F6DDAFC4AD6B3267848E762534DF96724EBE3782 + 4EA7650738285A0E2A8C9F1F34F882D0D7E4E9F8B2E80C95F08E258BD901949A + EE6B40D6C90BC811B80C0754C9F70C8FDF0E2FDD9A87E7EC7C9F01E02B3AF518 + A4657AAE043E920F1A003684B6D61650C82F234F9E33001F43A067A4A64C7742 + 5013679EAFE43903F8237A56C290A1C3794D3E28016884157BF2C16E8D8413A2 + 39BC251FB400647C91990F2776AFE12DF1FB00F701BC04F07BE63D22E0000329 + 063CC0FF48F551DB6DC818B40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006A54944415478DAEDDA795013 + 671807E037048671B4DA28E301A205BCEB49D5A182A3F656713C7A8C33B6D6D6 + 62553AD5E2A8B5D13AAD3D6674B438CA51A9E3512BB5071EC851012923389E45 + ABA05824193007188821174936D9EEAEDD2D39371BBE4D32E0FBD7B2BB6CF27B + F6FDF6F84080E338F4E4123C017001201008907E48DAF7E5BC298F1B1E012B5F + 1D4F7E674E5F9ACEED3780DDAB66F30270B8A406AC369C3342B701C8ABFC07DA + 8D66CE08DD06E08FEB52D01B2DD061B182D18C798D1010003386FE5270F59E02 + 744407D0086A5D07A4CC9D04E161211E43741B80DA4615E83B2C9C11020A9096 + 5184E4B87B52E742538B06B404802342AB460F1F26C7BB45F02BC02759A5F89E + D52F82C16C437A5CB2DA8D18E8F506B7082BE74D81DEE142A740DD06C066B382 + CE84BB4590A934B0E9AD84C002ACCB28C1D3D7BEC4006CCA2A4672DC9D6B5E83 + EA7A25E45FBA0F16CCEA721F2B86C1DED497030B909A5E80EF5F378F970E204B + FEC80C274AABA14D6772DA66321A2063FDFCE000501B305E00E82ABA5C0F779A + 5AEDD6A9D59AE003D896738E5788B1B191CCF29D0679E001D6ECCEC733D39279 + EF00BA4C161B5CBD2B03ADC10495D5F590B56141CF02A04BDAAC859C9355C107 + C0F710D891F20AB32CCE2E0E3E007F565000A4ECCCC30F6C5C0C4A8DD9EF009F + 1F28809C4D4B820BE0ABC3A5BC86DEBAE2A5E00258F9CDAFF80F5BDE0848076C + CD3C03073F7B931BC086037F227D6F259FC616248DA39ECF0788FAC2E8A1A2E0 + 07403983935759074B92465317C15A690BE496DCB0DB5ED35A0752698CDF507A + F753C2ED7DAB05FE03A8A88525B3C6310064112F6D3062E800080F15C0EE8233 + 5074410493A72640AFF050BBDF0D0D096196431C5EED85C210A7CF0A13B20FDF + BC53A7417274917F019213C782DE6CA51E4E0C46A31D02599F1EFF096ED50EF7 + 0B82D700A8A6B0CE56DD6100642A2D94FFD54084C7C04C3CB22A1EAA99FD2ECB + 6E8351FB1CEF087E07385DF1372C9C35910268561B00B35AC142BCBE939D80E1 + 4230982C30726804F5A5FDD1099C01BA3A87D76130C0BC9913604E7C1CB4EA30 + C02C66309A1F4F6004028115202DBB0CE91456C1855B309F00D0996C60B3D9E0 + 3C390488E046AB006C443790C30127D6372AFD331CFC0E70AAF2062C4A9A4C4D + 609265223ACB62C59D3A81ACE6363D4C1C154D2D8B738F43CD5DF49DC00AB03E + B314E91C1E3D04664C8801051150225381C9E67A7CE2560CA63FFB0CF3331F08 + AC001FED2D443A879757560DF3674DA2262AC82287404D8302F426E7894CB22B + 1C8B1E0ECF2726396DF305C16B0054AFAF051537ED00E8AA7BA0865675BBDD3A + 722A7BCA98E1CCCFB532096CCEBE06A3462641545494CBE37345C8CF3FC30DA0 + AB131886760D24CF8927C2B9BEAD8AFAF56196D51A1D0340871F1197084322A3 + 20D4C3BD9D0B022BC0DA3D67914E603876C0C55B12BBED248C52ADA7DA9FBE13 + B499DAE0F23D0C46C6CDA4C233411120040CA0DD68F5B89F566F806B7572784A + 2460CE7CC4C0C1D4B6B050213204CE007C0F81C489FFBF091E29BB0047CFC921 + 2666060C1A3CC46E3F540841DB01B71F48E0E37D97203626C9293C4A84C2C2B3 + 9E0156ED3A89740EAFB0AA0616CF9EE011800CBF6EDF1597671E35026780AECE + E1B10D817EFDC1EBF0281058013EF8F637A473786407B8AB076A191C2957C1B0 + 6133A07FC460E2694FE8F5717D45F00A2073E3EBD0A6B720017057379B1A2035 + FD0A440F4BA0C2D3E52B42B3520E8D5209EB637371710137003EA6B1E9FB3C7D + E61D8B2B82422E83FAFB55307E7407D437C479446005787F472E9EBD65296F1D + 705DDA408D79C733EF2B82AA454985FF599C08D362470856641DC2AFDE8C768B + E035808287797CFA6A3F246A3A0C1C14C9BA3F1B8263787ABD2784D27345DC00 + 761D2B43129E6EFBC8A804AFC2B321342B1520915C740ACF86C00AB07CFB8F78 + B678193CD4A21D022F6CCEA5C28BFE6BFB30176F6ADE22B085F784103080855F + 1F243E301EA263C730EB7C41F036BC3B04AF01C87F3E222B3DF73C1200B3D904 + E5F765D0A7D7549F11DAD52D9CC2BB42A8AA28F10CB04C7C08CFD9FE2E0380B2 + 743A2DBCFDDDEFC4AD6B3267843695129A1A2F710EEF88A0D76BD901F68BDFA1 + A6B0F9285F10BA1A9EAE2FF34E5181B72D5EC80EA0D43CBE0664FC528E1C81CB + 704015BE7379FCEBF0D2CD3978D6F6F71800BEEA91410729E99E3B818FF04103 + C086D0D22C0785EC0AF2F09C01F818029D6B59F23427043571E6F90ACF19C01F + D5B913FAF47D9AD7F0410940232CDF750C6C98084E8867F2163E6801C8FA22FD + 189CD8B98AB7E04F009E007809E0F7E49D2AE0003DA97A3CC0BF6E2E50DBB30F + 1B410000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006AF4944415478DAEDDA7B5014 + 751C00F0EFDD41E8E85894A33C027989E8388A0485AF32B58766636635CE5866 + 19A6D2A4E1A8D9694ED9634647C3511E498E4E9964161A889042E8F842D19004 + 313AE0848EBBC383F3B8F7DDDE6DBB67BBC33DF7167E7B77037EFF616F776F77 + BF9FFDFEF6F13D78388EC3600EDE030017003C1E0FE94EB2BEADE24C79C29891 + B0E28589E431B33A682A6F9F01EC5A398B138043671AC062C559230C1880A20B + FF408FDEC41A61C000FC7E5D0C5ABD190C660BE84D98D7087E013061E82F0535 + 4D52D010154021283506C89837194282F91E93183000B7DA14A035985923F815 + 202BA70CC9767767CE83F64E15A8090047842E9516DE5F90E216C1A7001FE555 + E0BB57CD019DC98A74BB64F4E831D06A756E1156CC9F02C342044E090D1800AB + D5021A23EE1641A250C1C637D2FD0BB036E70C9EBD662E0DB031AF1CC97677AC + 7E116A453228A96E06336671B98E05C3604FE673FE05C8CC2EC5F7AD9DCF4905 + 90D171CF04472B6AA15B63745A66D4EB2067DD4B8101A0D4619C005051764504 + 8DED5D76F3944A55E0016C2D38CD29C4F8B8087ABAB1A5C3FF00AB7795E0B959 + 0B38AF002A8C662BD4DC96805A67840BB522C85BFFF2E002A0422C5743C1F18B + 8107C0F510D89EF13C3D2DCC2F0F3C005F46400064EC28C2F76F58043295C9E7 + 009FEE2F85828DAF0616C017872A384D7ACBF2B98105B0E2AB63F8779B5FF34B + 056CC92D86039FBCCE0E60FDFEB348DF5BC9A7B1D9C93160B0F2E1B111436072 + 4244FF37CA3500CA0E4EE59F62989312637B14BEDC2883E3676FD82D6FE8FA1B + C4E2589FA10C7B5806F57B57F1FC0240BEBC102F6C806126488A098790201EEC + 2A2D86B2F3A1909C9A0E434382ECBE1BC4E7D3D37C87577B8180EFB4AF6001F3 + F02D3AF11BB47EFF8AEF01C8DBE06DA912AC46B31D02191F1FF9116EDE1AE313 + 04AF0150B5B0CEFF7507664E1A035A93C5F67456DB2826A6AD04020692BB6AC0 + CCF72F8E5724F5A0573FC139825F01E44A1DE889BF3ABD1E305C40548105546A + 2D4C4A8CB21DB42F2A8135407F7B7826931166A58E87794F25409706B39D717F + 22300264E557226D619DBDD64400248211B3DADED42EDD6C25CAFFFE7E0D0402 + 391C88D9D0D22EA7BFC3E570F03B00191A23710D30E8C16C01BB4AE854E9202D + E971DB3AC2C223D0701B7D253002ACCBAD40DAC333E88807A1F4893037350124 + 0A35D4893A6C3F65B98B67A624D0D35C2030027CB0E714D21E1E5501640B9B0C + B259515D4FDC098CCE8D4CEA8ED03BA8E13075FA0CA7657D41F01A00D5EBEBE5 + 1B22989A9C40973F150D6205C8BB7BECE691BFEACC4E1D477FBE2569854DF9D7 + 2071EC0C888C8C74B97DB6082525C5EC00FADBC02087C0D4942430985C838687 + 0EA3A7A54A2D0D40259F103F1DC2232221C8C3BD9D0D0223C09ADD279136301C + 2BA0A1B9C36EB98EB823B475AA88E5161089A5C0270EB8DBD80D579A30181B3F + D3963C9D280204BF03B80B854A0BE7EAEE4058F843F4991F392ACCB62C384880 + 0C8135008A21306D723CE82DAE0F7CF1D313E8E93DC59570ECDC5D888D9D06A3 + C3C2EDD64385E0F30AA8AA698267D312192BE0BAB8053EDC5B0D71B1339C9247 + 8970EAD449CF002B771E47DAC3BB440C0112A0476F71BB4EFDBFADB076EF5597 + 671E35026B80FEF6F09886404CF410AF934781C008F0DED7BF20EDE19115E02E + 5A9472C83B7907A2A3A7C1A323C388A73D81D7DBED2B825700B91B1643B7D68C + 04C05DD4B5B74066F655888A4EB7254F455F11E4B20E6813B7323E36979797B2 + 03E0A28D4DDDE7A933EF186C11A41D1210355F8489E30C206A89F788C008F0EE + F6423C7FF312CE2A80BCDA9363DEF1CCF71541D129B325FF93703AA4C525F096 + E71DC46BEAA2DC22780D20E5A08F4F5DEDC3239F8451A399DBE34C088EC953F3 + 3D21549C2E6307B0F3702592E4A9B28F884CF72A792604B94C0AADAD979C9267 + 42600458B6ED073C5FB814EEAAD10E81D99B0A6DC987FE5FF6C12EDED4BC4560 + 4ADE1382DF00167E7980D8610A44C525D1F3FA82E06DF2EE10BC0620FFF9888C + ECC23F900090CDD1AA66090C1F9ADA67841E6527ABE45D215C3C77C633C052E1 + 41BC60DBDB3400CAD068D4F0E637BF12B7AE64D608DD0A19B4B755B34EDE1141 + AB553303EC13BE656B6173117D41E86FF2547C5E74C296F0D6450B990164AAFB + D7809C9FAB9023B0190EA892EF1D1E7F1D5EB2A900CFDBF60E0DC055DCD36920 + 23DB732570917CC000302174CA3B402AB98A3C79D6005C0C81DEB174419A1382 + 9238F35C25CF1AC017D1BB12868F7884D3E40312804258B6F33058B150382A9C + C959F2010B40C667D987E1E88E959C25FE00E0018097003ECFBC57F81D6030C5 + A007F80F767159DBDC6C4F410000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000069E4944415478DAEDDA7D5014 + 651C07F0EF71308EA36934A6BC08C68B8AEFEF0D2ACE3465966699BD8D33BE64 + 19A6D28C86A366684ED9CB8C0E86A3BC24393A6592696822428A69A316BE652A + A0F27A01F702C221DEFBDDDE6DBB6B7B01F7B2B7B07B7703FEFEBA97656FBF9F + FD3DB7FB3C9C842449F4E4923C02700220914804FD90E46FCE8AA63C72C8002C + 7B61347DCCBC0E9ACDED3580D4E5CF8802B0FF7429AC36923742B701C8BD5081 + 0706336F846E03F0EB351974060B8C162B0C66C263049F009809E1BF0AAE942B + A1A53A804568D11A91387B1C7A0505B80DD16D00CA6A9BA0335A7823F8142039 + BD4090FDEE489A8DBAC6566828808E08CDAD3ABC3F77A24B04AF027C985944EE + 58F11CF4669BA0FBA5EB8181804EA77789B06CCE04F4E9257508D46D006C362B + B426D22582BCA915EBDF8AF72DC0EAF4D364DAAA997680F5998582EC77DBCA17 + 71BD5285BCE22A5808ABD36DAC04819D49CFFB1620292D9FDCBD7A8E281D4097 + E2BE19878AAE43AD3539BC6732E891BEE625FF0068D113A200B05570A912B7EB + 9ADBBDD6D2D2EA7F009BB34F890A31223ACCFEF876B5C2F7002B53F3C88CE4B9 + A277005B268B0D57EEC8A1D19B70E17A2532D7BEDCB300D8923568907DF4A2FF + 01883D04B626CEB23F4EC92AF43F006F965F00246ECB25F7AC9B0F55ABD9EB00 + 9FECC947F6FAD7FC0BE0F3FD45A286DEB474A67F012CFBF230F9EDC6377CD201 + 9B328E63EFC76FF20358BBE79CA0F356FA6E6C425C248C6602A1C17D306DCC10 + FF07107205E7EFEA7B181FFD24732B7CFE562D73C74658FEEF86D2E6BB90C9A2 + BC86D2A7BF0A25BB5648BC0670F5AE1293878732007FDE5681201ECED6268D88 + 44AF400952F38FA3E07C30C64F8E47EF5E81EDFE363020C0FE38A0C3D45E2A0D + 70F8AC2029F7F0CD3DF60B6ABE7BD53700F4EC8D9AB1B643A0EBA3833FE056D9 + 10AF20780C20D412D6CD2A15C6C68480B09128AF6F46D93FCD301A0CD0512055 + 8A16FB70B8242F8141334974049F01E8CCF40285863AFB04B370C176825A4760 + 4ADC60E6A0BDD109BC01BABA86475267382E36028B668D83FABE16066ABFBE44 + E00448CE3A23E812D6CDF27A8C1D361826C2C6CCD44AAB14D05B48588C06186D + 01CC70305825A8A86BF2CA70F029005D3402BD86E7AC13946A1D12C6C530DBA5 + E41C44E91DE13B8113604D4691A06B7866B3096386463243809EA25EA6E6EA74 + 706765B258F14AC228FB73311038013ED87952D035BC8E1DF0D79D7A9C2B9143 + A7373A62991CD7F5D8E130757A82C37B9D41F01840A8E96B69653D46C50E06D1 + C6D36AB5E146A502B2466DBB6D750613664F1D697F5E26AFC186ACAB18363401 + E1E1E14EF7CF17212FEF383F80AE2E60B043C0687104954A03F1D4C07E30D91E + 1EB8B2A9D50EC0868F8D998ED0B07004BAB9B6F341E00458B5E384A00B1874CB + 4FA42E71F4971F5D55F2A676EFD35F8032959A992C9556D423803A60B5498D4B + E50486C6CC60C2DB830A80E0730057455F018AAE96233AEA31FB991F30308479 + 2F28502A18026F003187005D8B674DB03F4E3D9C8FA3C51A44454DC3A090D076 + DB0985E0B71D70A3AE1AABD28AA90E4870082F24C2C99327DC032CDF7E54D035 + 3CFACE8F0B800E9F9476D9E999171A81374057D7F0B886C0C861FDB17A9767E1 + 8540E00478EFAB2382AEE1D11DE0AAEE36CA917AA4029191D3F0C48010EA6E4F + EAF17E3B8BE01140C6BAD7A9199A45100057C5B67D44643C139EADCE2234A814 + A895D570DE361716E6F3031063199BBDCEB367BE63F145502AE4A8ACBA88D1C3 + 8DA8AC8E718BC009F0EED61C326BE302D13AE09AAC9A19F31DCF7C67119A1A55 + 4CF81F53A6634A74AC6469E63EF2CA8D0897081E03284558C72FA9AF61C28786 + 3F8D8183C238B7E742E8189E7DDD1D42D1A9027E00DB0F9C11243CDBF661E1F1 + 1E85E7426850295153F38743782E044E80255BBE27B35216E29E46D821F0EC86 + 1C267CF07F6D1FE464A6E62902577877083E0398F7C55EEA032722223ACEFE5A + 67103C0DEF0AC16300FAC74774A5E5FC2608007D4374B64A8EBEBD27771AE141 + 4B23AFF0CE102EFE7EDA3DC0C2947D64F696B7ED00429656ABC1A2AF7FA62E5D + E37923A89B54A8AB2DE61DBE23824EA7E106D89DB218CD5A717ED0D01984AE86 + 67EBB3DC634CE0CDF3E77103A85A1F7E07A4FF745670043EC341A8F06DCBED7F + 87176CC82633B7BC630710ABEEEBB5484C73DF096284F71B002E84C6060594F2 + CB8287E70D20C610685B0BE74E714068A1CEBC58E1790378A3DA7642DF7E8F8B + 1ADE2F01588425DB0FC04604E350CA0CD1C2FB2D005D9FA61DC0A16DCB450BFE + 08E0118087005E4FDEA67C0ED093AAC703FC0B7B836CDBF59C5F6C0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006A04944415478DAEDDA7D4C13 + 771807F0A714428C668A23086DC000BA39E39CAF9389669B732FBE2CBECC6D26 + 6ECE8DE11496A818750E5FE2DC4BA2D1619497C98C666332F7828E176182C36D + BA80E8980ED1F1D602F605E88BA5EFEDB5B7BBBABB514A7BBDF2BBB6019FBFAE + 77C7B5DFCF3DBFEBDD8FF2701C87E15CBC07000300F0783CA46F92F1453567CA + 93C74742CA8B53C8CFCCEA4353B9FD067068FD339C009CAABC05363BCE1A61C8 + 00145D6E865EA38535C29001F8F9BA18F4462B98AC36305A30AF11020260C1D0 + 5F0AEA9A64A0233A804250EB4C90BAE809080F0BF11862C800347628406FB2B2 + 4608284046763992E31E4E5F049DDD1AD01200FD11941A3DBCB774865B04BF02 + 6CC9ADC20F6F780E0C163BD2E392D56BC440AF37B84548593C1D4686F35D020D + 1900BBDD063A33EE1641A2D0C0F6D792020BB029BB12CF4A5B48036CCFAD4072 + DC031B5F82FA163994D4B48215B30DB88F0DC3E048FAF3810548CF2AC38F6D5A + CC49079025BD67813355F5A0D2995DB6998D06C8DEBC243800D4068C1300AACA + 6B5BE076A7D2699D5AAD093E80DDF9173885782C41402FDF6E93061E60E3A112 + 3C276329E71D4095D96A87BA3B12D01ACC70B9BE0572B7BE3CBC00A812776921 + FFEC95E003E07A08EC4F7D815ECECCAB083E007F565000A41E28C28F6F5B0172 + 8DC5EF007B8E9741FEF695C105F0F1A92A4E43EF5AB730B800523EFD1EFF72E7 + AA8074C0AE9C6238F1E1ABEC00B61EBF84F4B995BC1D8D8B8E702C47478C8405 + 3312821F00E50C4EABF41E240AC6381E874B6B5AE0B79BED8059FFEF865BCA7F + 402C8EF71BCAC8D1726838BA81171080EA1BEDF4935AF2D478080FE5C1A1B262 + 28FF3D02A6CD4A8211E1A14E7F1B1A12422F87F47BB4E7F3435CDE2B8CCF3C7C + 8BCEFD04A2AF96FB1F807C18AA6BEE0193C9E88440D607A7BF81BF1BC7FB05C1 + 6B00545358E4AC4D6CD468C0EC3834DD55425B670FA84D7630593068EE54D0C3 + A156D20046ED4CCE11020AD026D700465C1435463BDD096ABD199E9E3EC1F1A1 + FDD109AC01063B8767B7D94118FD306C593507648A5E3012C7D55A31B0980283 + C00890917711E9141679D613A2478319B33B9ED45A250A22B8050C561CAC0400 + 391C78362BDC142BFD321C020A40168940CEE1919DA0D11901C3F98E4E203BAE + 83182E2FCE99E4D82FB3F034DCBA83BE13180136E754219DC3A38640DAF2D9D0 + 28EE86DA3B3222ECC0B8E44DD3EB0BA7D3AFB940600478FFC879A4737822A902 + E205917407900897FE6A0765AFC1655F8BD9755E8F1A0E4F25CF73D9E60B82D7 + 00A81E5FA5DD2A10448D755A47CDDA344B544EEB8DC4B561E5B3D3E8D78D1211 + ECC8BB068F4C9C0742A170C0E3B345282929660730D8090C9CB8B00904E3DC6E + 8F8F892086C4FD696D494F2F0D40859F90980C310221847AF86E6783C0089076 + B814E90446BB5C0DE3898721F2AC93A5D0E89DB693F7058DED4A30198D708DE8 + 8A10E203ABCC2AA86DC26062E27C47783A2802848003B82B994A0FA597FE84C9 + 8FC7D0673E322ADAB12D2C948F0C813500D7432065C94C7A795F413154D61B20 + 3E7E2E8C8B8E71DA0F1542D076C08DCE3648CBAA8184F8792EE151229C3F5FEA + 1960FDC1B348E7F0E44A0D2300193E3DEBEA80671E35026B80C1CEE1310D8159 + 5323BC0E8F028111E0DDCF7E403A877757AE74BBAD4922833DA71B20362E09C6 + 464613777B7CAF8FEB2B82570039DB5E0195DE8A04C05D516D4F85A7CA57842E + B9143AC422C6DBE68A8A3276005C4C6353DFF37171739DC2FB8A20934AA0A5F5 + 0A4C79D4042D6D891E111801DED95F88E7ED5CCD59075C17B7C1A6A3AE67DE57 + 0445B7DC11FEDBCC64989D3081B72EF7245E7723D62D82D700320EE6F11BEE8A + 1CE163844F42D43801E3FE4C08FDC353EB3D21545D28670770B0E02292F054DB + 0B84495E856742E892CB4024FAC3253C130223C0DABD5FE379996BA0478B7608 + 2CD851E8081FF15FDB870DF0A4E62D0253784F08010358F6C909E20D67406CC2 + 247A9D2F08DE867787E03500F9E323B2B20A7F410260B198A1BA5502A346CCF2 + 19A157DDCD2AFC4008577EADF40CB026F3249EBFF72D1A0065E9745A78E3F31F + 89AFAE69AC11540A397476D4B00EDF1F41AFD732031CCB7C13943A6E7ED0E00B + C260C353F551D13947E0DD2B963103C835F7AF01D9DF55234760331C5085EF5B + 1EFF3BBC7A473E9EBBF76D1A80ABBA67D0416A96E74EE0227CD0003021747749 + 4126B98A3C3C6B002E8640DF5AB374B60B829A38F35C85670DE08FEADB09A31E + 1AC369F8A004A010D61E2C003B16016732E773163E6801C8DA975500670EACE7 + 2CF8038007005E02F83D799F0A38C070AA610FF02F7B4264DBDD15DF62000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006B84944415478DAEDDA795013 + 671400F0978352040FD42A47D501A4DAD699AA4545C1B163AD57B5D65E63EB51 + ADE24567B4583C1AADD3DA634647C5510EA18E4EB552ABC50311542C76C456B0 + DE026A81443024D04008B9CFEDEEEA4620C766C3B749067C7F6D36CB26EFB7EF + DBFDBE1738188641570ECE33003B001C0E07E98724ED2D624DF995417D61F194 + 61C47766F4A5A9BC3D06B07DE91BAC001C385F06660BC618A1D300E414FF0B2D + 5A0363844E0370F69A08D45A23E88C66D01A4C2E237805C060427F2BB8FA4002 + 2ABC022804B94A0709D35E037F3FAED3243A0D40798D0CD43A236304AF0224A5 + E62339EF8EC46950DBA000250ED01EA151A1866533463A44F028C017E985D88E + E56F82C660417A5E225AB42650AB350E11164F1F0181FE3C9B843A0D80C56206 + 951E738820962960ED47B1DE0558957A1E4B5939C90AB036BD00C979B7AE980A + 372AA5907BA50A8C26B3DD63CC2613EC4A7CCBBB00892979D89E55D359A90022 + EA9A0D70A4F00634A9F436EFE9B51A485DFDB66F00C835265600A8C82FA9848A + DAC636FBE47285EF016CCA3AC72AC4CB9161D6ED8AEA3AEF03ACD89E8BA525CD + 60BD02A8D01B2D70F59E18941A3D14DFA884F43533BB160015A27A25641DBFEC + 7B006C0F812D0993ADDB828C02DF03F064F80440C2D61C2C3379364815068F03 + 7C9D9907596BDFF32D80EF0E14B29AF4C685937C0B60F10F47B19F367CE0950A + D898760AF67DF521338035991791AE5B317CBEDEA74737D0992C1015DA0BA68E + 8EF67D00941D1CE2E617DC8D4F2E878F5DBA0FA5158FC0647C5A0D658DF74124 + 8AF0184A604F29DCDDBD9CE3318046A51EFA74F727B7734B84E40485685F4D8A + 89067F3E07B6E79D82FC4BC1303C261602FCF96DFE96CFE55AB7B9ED96F63C1E + D7E6B3FC78F4C337E7C44910FEFCAEE701880AB874FB21688C1818F10A90AB8D + 3061C460F24BAF3FFC0BDC291FE41104970150B5B094F8FABC7BC073E436D1C3 + AB6F525B9B9865C27A30E81FAFE24AC47741AB7C9D75048F0334E157BA77A01F + 982C18544B15A0506941A7333CA9041348E46A983266A8C72A813140477B7816 + B305827B068260FE0490C85A408B9FD71EC2C49821D0ED392EEB08B400491917 + 90B6B088BE5D8F00BE755BDAA8205B57048042F3B8754544EBA7039BC3C1AB00 + 7A7C2E402C57891E9EBD4A1035B4C03BF1AF92C70AB20F43D93DF495400BB03A + AD10690F8F1A025F7E3C1ECA450D70F1E643725264F758BC0216CD1C6B7DCD06 + 022DC0E7BBCE20EDE15115A07F92B458A68493C5F7A0B14563732CF544681DD4 + 70181B176FF39E3B082E03A05ABE36AA4CD027886FB3BFE8BA102A6A646DF669 + B43A98373DD6FABA5C2C847519FFC04BD1F1101E1E6EF7FC4C1172734F3103E8 + 6803831A023AB3ED1DF9791E06912FBEF034E187325832734C9BE40747C54168 + 5838F09D3CDB9920D002ACDC711A6903A3A95905BD7B05595FB768DBF6F0B53A + 3D94E31322E267EED23B42E0E25FB849DF04250F4C101D359E4CDE9A280204AF + 03D80BE2C920C1678807CF5E87B89850EB95EFDB2F847CDF8FCF4386C01880CD + 2140C4FA4F9EDEDC92338F4271B9112222C641FF90D036C7A142F05A0518CDCE + 8FBB5D5305CB76FE0D9111F136C9A3443873E6B47380A5DB8E23EDE111931E02 + 8028734771ABB61A12534AED5E79D4088C013ADAC3A31B0293C785B89C3C0A04 + 5A80253F1E43DAC36B56E91CBE57512782E4BD3761C0C058E8DD37049FEDF15C + 3EAFBB082E01A425BF4F2E63D90CAAECA9E4A97017A15E5A07352221EDB4B9A0 + 208F19001B6D6CEA393F70E0B836C9BB8B20A9134365D5651836440795D5514E + 1168013EDB928D656C98C35A055C1355C3AADDB657DE5D045983944CFE57411C + 8C8A1CCC5998BE1FBB7A6B8043049701242CF4F1EF3E1292C987868F867EFDC3 + 688FA743689F3CB5DF1942E1B97C6600DB0E5D40923C55F661E1B12E254F8750 + 2F958050F8974DF27408B4000B361FC4320473E13F25DA2130715D36997CF093 + B2F7B3B3527315812E7967085E0398F5FD3EFC0347C280C8A1D67DEE20B89ABC + 23049701887F3E222225FB0F240006831E8AAAC4101410E336428BBC8151F2F6 + 102EFF79DE39C05CC17E2C6BF3A7560094A1522961DECEDFF147D770C6084D32 + 29D4D65C619C7C7B04B55A490FB047309FECE4B011EE207434792ABECD394126 + BC69F62C7A00A9E2F13D20F5B722E4084C8603AAE45B87D35F87E7ACCBC2D237 + 2FB202B015CD1A1524A438AF043692F719003A8486FA3A90884B9127CF18808D + 21D03AE6CE18658320C7AF3C5BC93306F044B4AE84A01EBD584DDE2701288405 + DB0E81C5140C4704E3594BDE670188F826E5101CD9BA94B5C49F013C037011C0 + E399B70AAF0374A5E8F200FF0374F05ADBD55830640000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'MoveLocal_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005A14944415478DAEDD97D5014 + 751807F0E70E88319D928651E0061C0EAD246752D306019D0A7AC13033CD9CA1 + CC2210C4190C47C84E63CA5E6660806394972047A750A21734909704A3262911 + 18C6027C89E36EA0838380F3B83BE05EB8EDF66A2FE08EDBDB6B7FBB3BC0F3D7 + DDEEB2B7DFCFFE7EFBF2C0C3300CE673F11600EC00F0783C5A7F24E5D30664CA + C12BBC21F6D935F831533A682237630059F14F2001385BD70193268C32C29C01 + 28BFFA078C8EEB2923CC1980EF5B65A01D37C0846112C6F546A7115801D01BE9 + BF1434DFE9078D790410084ACD04C4453D0A9E1E7C8721E60C4067CF1068270C + 9411580548C9ABA165BFD94951D03BA802B5196026C2B04A0BFBA3D7CF8AC028 + C0DB05F5587642048CE94DB4EE17AFD1712368B563B322C46E5D078B3DDD6C02 + CD1900936912343A6C5604F9900A527787B00B909C5787890F445A01520B6A69 + D96F46E273D0D6A580CA6B12301827ED6E336934426ED2D3EC022489ABB053C9 + 5B918C00BCFAEEEAA1ACBE0D46343A9B75BAF131C83BF43C3700946346240044 + D53475C1CDDEE169CB944A15F7008E175F460AB15AE867FD7CB3BB8F7D80C4AC + 4A2C3F251AF908204A673041F32D39A8C77470B5AD0B0A0E6F9B5F0044C906D4 + 507CA1917B00A8A7C089B867AC9F4585B5DC0360B238011097518E151DD9010A + 959E7180F78AAAA038F5256E017C78B61E69E863FB22B90510FBF1D7D8674777 + B132028EE557C0E9775FA60670B8E847643D3CA1EF52D8B92598FB00287B78BF + 4914A0D7FDF7D8DA317C1B64B240C65016DFAF80F693093C5600881E1EFED616 + 1DBA1A3CDD7990555501353F7BC1DA0D21B0C8D37DDAF6EE7CBEF5337FC6ABBD + 9B1BDF66FF1E6EE4D3B7FCE27720FDFC457600A6F6F0F0CE0D8E80D73BE7CFC1 + EF9D2B1841701A80891E5ECB6DB9753A34C9DB615CFD1872045601ECF5F0144A + 2DBC10FE88E5A0991809940198E8E1E108519B82E1DE7BF8C8114801520AAFB0 + D2C3636A3AB00A40D6C393F62BE195C875966D45A5E7A1E316FD238114E0507E + 3DAB3DBC83BBC2ADDF512090021CCCAD66B58737B388E9B0292CDC669D2B084E + 03B0D5C34BDAFDA4F57BA75C0A69852DF0E0AA7010080476F74315A1B2B2821A + 00D33D3C028008BF32280C7CFD04E0EEE0DE4E058114E040F625567B787CF301 + 8FE846A0E98E1156056DB684B706A50181730044113DBC882D42EB99F75EE663 + 59E7E1EE461B026500267B7889B9E7A045C283C0C05058EEE33B6D3BBA10383B + 025AA512D89FF32B0803C36DC2D389505D7DC931407CE605C67B78ED7F4A2121 + A7C9EE99A71B813200EA1EDEB608212489AF3B159E0E045280B73EF986B11EDE + 8DDE6E4B78FF801078C0DBC7FCB4E7E6F4DFBA8AE01440FE919D30A235301A9E + 28571106147DD02393923E36D7D656510340310588FB7C4040E8B4F0AE22F4F7 + C9A14BD2086B1E9A80AEEE208708A4006F9E28C50A8FEE4136025A65DD907CD2 + F6CCBB8A3034A8B084FF5214061B852B79FB0ACE60CD37FC6745701AA01FC135 + 00BFDAE3E17D058FC3B2E57EA4DB9321CC0C4F2C7784507FB9861A4066C9155A + C213C3DE4F10E25478328401453F48A5BFD88427432005D89BFE0556288A81BF + D4F44E81A7D24A2DE1BDFE1DF61E76DED49C45200BEF08813580ED1F9D36FFE0 + 7AF0173E6C5DE60A82B3E16743701A006F5CE0252EFD811600BD5E070D12392C + 59B4C1658451E520A5F0F6101A7FAA730C10233A8315A7BF6E05A0B3341A35BC + 9AF3ADF9D6B59632C2C890027A7BAE510E3F1341AB5593039C12BD06C31A342F + 43AE20FCDFF0447D507ED112F8F88EEDE4000AD53FD780BCAF1A6847A0321DE8 + 0A3FB51CFE77784F5A315690FE86150055DD1DD3409CD8F14840119E33006408 + 83037DD02FBF4E7B78CA0028A6C0D48A89DE6883A0349F7954E1290330515347 + C292FB96220DCF490002616F6609988C5E5026DA8C2C3C6701F07A5F5C026519 + F1C8822F002C003809C078F229C53AC07CAA790FF037DDBEFFCCD9A802B30000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005754944415478DAEDD97D4C13 + 671C07F05F298438CD5E0C51A00127A85363A2736E61A26619EEC5B76C4EB768 + DC8B9B0341B6C030625CE7C8E6922D10A1447919DDD46C6E0CB7A1137911EA98 + 9B385E64C40C5FE6286D602D05815AFA46DFB8B5DDAE297DBD3BEEB9BB00BFBF + 2ED7BBA7F7FDF4B987BB1F3C0CC3602A176F1A2000008FC7A3E54BB23E6F44A6 + BC745E04EC796E99E35A495D2C9E9B3180A3294F210138D570036C6318698449 + 035079E56F18319A49234C1A808BED72D01B2D306AB181D16C258CC00A80D94A + FF52D076A70F74F6198023A875A390BC613984878504BCF8490370B36710F4A3 + 16D208AC026415D5D2326E7EFA06E81DD080D60EE08930A4D1C3DECD2BFD2230 + 0AF05E8904CB4F4D0283798C96F1DC6BC46805BDDEE01761CFC647616638DF2B + C8A401181BB381CE84F945500C6A20FB95047601328A1A30D1BEF52E80EC923A + 5AC6CD4D7B1E3ABA5450D52C058BD5E6F3189BD50A85E9CFB00B902EAAC68E67 + 6C4432031CA5BC67860A49070CEB4C5E9F998C0628CADCC40D00B5C18A0400AF + DA962EB8D53B346E9F5AADE11EC061713D52882571D1AEED5BDD4AF601D28E56 + 61C5599B91CF00BC4C963168BBAD00ADC104573ABAA064FF96A9058097BC5F0B + E2B34DDC03407D0B1C497ED6B52D2CADE31E0093C50980E4DC4AACECC0565069 + CC8C037C58560DE2EC97A801EC2FFB05592707B33FC1994DA6890FE4A33ED8BD + 9E3E00949D1CC763EBB6754B918CEFC2283E0F5FBEFF32F700F04E0E6A04CE02 + B877724E5CAE0769772C3204CF9AF9800A3A8FA5F20803A0EEE49CB9F62B74FE + F530AC58950033C243C71D171A12E2DA0EF178B5E7F343BCC60DE3075FB82BCF + FD04B2AF5E6417C0B39353DC781154CA258C20500640DDC911FF2681DE9E45C8 + 11080364955E62BC93C30402270002757250231006C82C96B0D6C9B92AFF03B4 + EAE548100803BC5358C36A27E72EA8E0C6ED79B423900660AB9393B9F3691096 + 7F4B3B026500A63B3978B5283AC1A87D0C9E4C5CE3750E1504C200FBF22FB0DA + C979776712DC54C8E060E93558B4700D0804029FE79145A8AA3ACF4D00BCF04E + 4ED2BA3867F805F18910152D80D0007FDBC920500660B2939356F80DB4493158 + 18BFD619DE15940604CECF80769914F616FCEE0C1F3127D2B92F2C944F1B0261 + 8094BCB38C77723AFF91416A410BCC9FBF1AE646468DFB8C2E04CA009F9C9220 + 0DBF25290ED245AD3EC3D3895053738118C0DB9FFE807D71683B2333E07A6F77 + D0F074219002283EB00D86F516CE84A7038132008A5B60D8340C2D77AC101BBB + 1A664744DA9FF6F884CFA58A4018E0AD23E558E9A11DC86640BBBC1B328EB542 + 4C6C82333C5E5411FA554AE891CB823E36D7D5559303E843B00638567B5FE1A9 + 22F42915D0256D82658F8C4257777C4004CA0079A72FD112DE73DAFB2BA20883 + 032A67F8EF8489F078DC02DEEE929358DBF518BF0884015ECFF91A2B15EE82BB + 5AFA6E01FC978F123C0173E646073D3E188267787C7F2004497D2D3B0064C307 + 43E857F5814C76D52B7C3004D2008EC685A344E53F4F08A0F6CF01881624C043 + FF4FFB301F6F6A441182850F8440186097F02426CE79C30530D1DAFED909FB17 + AE8498B8C5AE7D54108886F787400AE0B8F03518D2D1F332A4D369E1D5821FED + ABF60ACA0823EA0152E17D21345D6E2007A0D2FCB706149D699C3082D96C8246 + A90266CD58451A61785005BD3DCDA4C37B22E8F55A62003B0E8AB1929C375D00 + 74D53D830E9245E466C244C3E3F571E53967E0C35B5F600F802C025DE1DD8BD0 + 7F873D01E8B805DC8BC8ED80223C6500141568260CF42BA14FD14A7B784E01F8 + 4350DB7F7954E13907E08930EBFE0741A968860AE15A24E139098023A4157D0F + DA91FB60F16C35D4E4652109CF5900F7FA48741A2A7253D807603CB95BB10E30 + 156A1A601A608A03FC0B0252BFCC2B32751E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000057A4944415478DAEDD97F4C94 + 751C07F0CF7130E6A052C614B841E3D0FC3136ADA89160B56999A62BA39A9BAB + 2C0341DA3098383D8D2DDB5A327E4DF911D4749553B4C040388433B281814044 + 9938E3EE1874C70301E771BFB81FDCD33D4F3D171C1C77CFEF13F9FC757BEEE1 + 78DEAFE7F37C9FE773274051141EE4122C02780120100868FD93CCCF9B59535E + F76828ECDB1A8B1D23A983247273069097F23C2B00679BFE80293B4A1A61C100 + 54B5FC0913260B6984050370B5AB1F0C262B4C5AA7C064B1798DC00B80C5C6FC + 52D0717708F48E0E201034FA4948DEB61E0203FCE63DE80503707B60140C9356 + D208BC0264164B19099F9FBE0D0647B4A07300B8228C690DB07FC7136E113805 + F8B05486E6A76E06A3C5CE48F0E93561B281C160748BB06FFBE31014289C1560 + C100D8ED53A037A36E1154A35AC87E339E5F808CE226B4F0C016274076690323 + E14FA6BD04DD7D08D4B6C9C16A9B9A739F299B0D8AD25FE01720BDB00E3D9DB1 + 9D950EC04A7DCF0295B26E18D79B67BD673619A1F8E0CBBE01A031DA5801204A + DADE07BD836333B669345ADF03385ED1C82AC45A7184F375AF42CD3F405A5E2D + 5A92B983F50E20CA6CB543C71D15E88C6668E9EE83D2AC9D0F160051FDC33AA8 + A86EF53D00B62F8113C92F3A5F4BCA1AE8036495FFC8DA3C2F0E5F0A49CFAEC3 + 9ED858F97CC600D89CE7B187170C818DFAA8BC0E2AB25FF35D00629EFF4D8E80 + C56CA6FF818E3AB677CBFD03307D9EC7A638A63BE158490D7C79F40D6600B898 + E7118D01929E8B85407F7A0BEF7D0380CDF3E5CD8D20BD1EC4F867BBABA04710 + B8752A55401980E9793E4F5A073F7586C186B8785812E83F631F7FBFFFEF0E7E + 2EA3BD5038FBCE1120F4DC395597BF07E557AF7A0F9059768DF5793EEBDC45E8 + 53C47082E05300D3E779AE1048031C2C917136CFDFE8FF05749AF5AC229006F8 + A0A89ED3799E6D04CA005CCEF3B23BEDAC21D006E06A9EAFFEB50510F55AC611 + 48031CC8BFC2DB3C5F20AD0193EE4946117C1E8028629EEF406EE308CF2424CE + DA870A026D002EE7F9B4A273D02917C063AB12412412CDB93F5984DADA9AFBA3 + 03BA9472D85FF033AC8AD904E11122F09FE7DE4E068134404A6E355A7E681720 + 5A0B67E16FFDA584D482765819938087770665008136C0276765AC86DFB9590C + E98537F1F0A1CBC3F06D01FE42C6104803BCFFE9B7E817475EE7A4037A061578 + F8E8E88DB0222C7CC67B4C21500228399404E3062B6FE19944A8AFBF420F808D + 4B60DC3C0EED776D208E4E741B9E2904D200EF9D388F961DD9CD5A0774F52B20 + E3D4FC679E4904CA00432CAC01D86A8F858F8C8A8790D030C7D39ED0EBBFA58A + 401B20F79B6B8C8427DA3E2A6A231E9E28AA08C3881A06FA951E1F9B1B1AEAC8 + 01BC9DF3355A26D9037FEB98BB045CCFBC6B91451852ABA04FDE0AB1AB273D7E + A9C23B80A7F064114647103CFC0549023C255E29D85B7A06EDE889748B401900 + FBE202ABC2F33F500E4FB47D84281E96AF88F0B8BF2704D7F0C4F6F910648D52 + 72007B2467D08A9C779C0054AB67400187CB3A215CF4B457E13D210C2343A054 + DE9815DE13022580D392B7604C4F6F18DA7AF4027EE697FDD7F60142EF7F1075 + 45F0147E3E04CA0088F6DF35A0F862332580ABBD0A085E120791E235CE6D5410 + BC0DEF0E8134C0EEC3156869CEBB4E00AA75CFA887E4C2EF1CABF606CA08139A + 1152E1E74268BDDEC40F005D84F151040607DA48877745301874F400A85E0244 + 592C666896AB485D0E74C313F571D5653CF0F15DAFF0D3014491E904A6C24F2F + 52BF0EB301E02D021BE17D06C013C2C8B01AD4AA36A8946C6234BC4F01B843D0 + 38CEFC90EA26AC0E1983FADC4C46C3FB1C802B42F0C34BF1F09FA5C6C1A54BAD + 507932857F00D6924F2B0B58E177AD19ECB665B02644030F0982F1EDBC032CE4 + 5A04580458045804E0FB1878AD7F0059067ACC6F88691A0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'MoveLocal_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000058D4944415478DAEDDA7D4C1B + 751807F0A71442B6313709D980061660BA9790382733385049862FDB5874E20B + 71714E116460C264190B5646E28C46C810C278193821733A71CAD8182F0E3634 + 190B2F5B0813379DA52560A130A094D296BE71D2EA75D042DBFBF5F7EB01F2FC + D5DC5DCA7D3FF7DCCBD383435114FC9F8BB304C00080C3E120FD9194538DC494 + 37AFF382D817820DFBC668E7E8DC4E0338111F4104A0ACFE77D04F528C11160D + 40C5F5BF604CA5618CB068007EBED50D0A951626B47A5069747623B002A0D1E1 + BF14B4DDEB87F1A90EA011A4E31310B7F331707773B1BAB38B06E04ECF102826 + B48C11580548C9AFC5123E3B6927F40ECA403E05608E302C53C0FB515BE74470 + 2AC087850D5476C20E506A26B1049F5E632A1D2814CA391162773D0E2BDCB916 + 3BBE68002627F530AEA6E644100FC920F5F550760192F3EBA99CC44813406A61 + 1D96F099075F84768104AA9ABB40ABD3CFBA8D5EA783DCA4E7D80548CAA9A64E + 26EF22D20186EA1BD54079433B8C8CAB2DD6A9554AC83FB47B7E0048953A2200 + 74D5B608E06EEFF08C6552A96CFE01A4975C210AB129D0D7F4F9AEB08F7D8083 + 27AAA8829428E21D40975A3B096D7F8841AE54C3F57601141EDE8307E070F12F + C4A6BA409FD51013B1095CB85C6CDFD93D2087920B4D7801484E75B7BB24A051 + AB1DFEAEE371CF9B3EF38BEA1606003DD519EEE3D1CF6C363CC161F9DE050330 + 7DAA333CCB1B1070D4B1E26A28497D052F8033A6BA9B7F8A914F878F0F442E3C + 80D9A63A895401D1CF0683BB2BDADDC7885170094E7FF41A1900674C758E2260 + 054829BA4A64A8F9EC62257C5B85E7A2674FAD582581CEBC04CEBC02A8BCB60A + B68484C23277D719EB5C5D1EC0B8988DF65CAE259A1BD776A754545E04D19997 + 99031C2A682036D5BD995B0202E17AA72020037C905B4374AA8B3D5506BFDD59 + 471CC1610092CFF489A7CF1047C006406AAA6B1177824AFE0431046480C4ECCB + 4E9BEA4876C282002089800D80F40F1B86A98E04C282E900BAF6E77D0DA2EE20 + 782A2CDC621D0A0232407CD605AAF8C85E90C8344E0BDFF9B70812BE6C81471F + 09071E8F37EB364C11AAAA2EE101F8B4AC8168F83D3B022129A715D60785818F + 2F0F5CADDCDB99202003BCF7F98FD45769AF3AA5033A7A8533C29B8262407008 + A0E048348C28B44E0BEFB5C6DBB8CCCDF5C16F858E22600320710A8CA847A0E5 + 9E0E0203C261ADB7CF8C75B8109001DE3D7E8E2A4A8B21D601B7BA85909CD70A + 0101DB2DC2E344A8A9B9EC18403F816B80E16A6F2B3C2E046C005967AF62096F + ADED49202003ECCFF8862AE2EF83FB727CA7007DE4FDFC43C1D3CB7BEA69CFFE + 1723A808F306C03C3C5DA80803923EE8E916D97C6CAEABAB760CC0F03ADA5039 + E7AE2187A7DBDEDF7FFB8CF0A808FD7D6210743541F08609100883AC222003EC + E3975225196F9B0050ABA34708478B6E5A1C795484A1418931FCF7FC30D816B8 + 9E73A0B0946AEBF09B13C1218093FCB760781C7D18A2C3FBF09E84356B7D6D6E + 6F0BC13C3CBDDC1A42C3955AC70024B27FAF01F93F34320A4FB7BD2F2FD4AEF0 + B6100624FD2012DDB0086F0B011920E668095598F18E09806945A5971BC33FFC + 5FDBBB71ED7F17608E602BBC3504D600DEC82C052E6C05BFC08DA6652808F686 + 9F0B011B00D35340A351436397183C968520238C490719859F0DA1E9D77A763A + C050A3CA7188CBF969EAD6B58531C2C890047A7B9A198737475028E4EC01A022 + 381A9EAE4F2A2A8D81D3F7BEC41E00530443F89E9E1B50CE7FDAA1F0D30BE9ED + 304E007B11E823BFC173186AB252B0849F3700B6100607FAA05FDC0A5F2484C0 + F9F34D509E19CF3E00B6E4D34A035AB83DAA8795CBB79910A45347BE4FDC0C1B + 3DA5B092E3615CC63A00EA3F4ADA53F7E5322A22ED3B6327783CB4DA78E41DBD + E02D28001A21F2D859908F2DC77AC1C306B0186B0960096009600980ED7D60B5 + FE0175365ACC1D06188D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000057F4944415478DAEDDA7D4C13 + 771807F0A71442A63837421468C0F0E2D48D65CE9785092624B2175FF6E25EC9 + CC36370663B004C588615549E6B26590118CF222CC601899636E88222F93AA5B + 224644439888D3216DCA4A4B054AE9FB1BB75EDD5568E9CBDDFDAE5718CF5FCD + DD51EEFBB9E7777DCAC1C1300CFECFC59907A000C0E170481D9F77EC1263CA4F + 2E0B83F49712F073227552446E9F017C9799C208C089F65B6099C44823CC1980 + 86CB7FC384CE481A61CE00FC7643041A9D09F4260BE88C66AF115801309AD1DF + 0ABAEE4A416DED000241A1D643C6E667203828C0ED49CE19803EF10868F426D2 + 08AC02E495B522095F92B31906E54A5059011C1146951AF874DB1A97083E05D8 + 5D21C04AB23681D6388924F8D49AD09941A3D1BA4448DFF22C2C0CE63A9DF09C + 01989CB480DA80B944908C2821FF9D44760172CBDAB1D2EC543B407E451B92F0 + 459FBD0CDDFD3268BA7A0F4C66CB8CC758CC66389CF302BB0039A5CDD8D1DC2D + 8C74005E43E346A81774C398DAE0B4CFA0D342D9AEADFE01A0D09A190120AAB5 + B31F6E0F8E4EDBA65028D103ECA9FA9DB1D91EB3AE69A3C140EB3D56C546DA5F + DF1E18620680C9D91EBF91BDB72981F27B184C93D0F59704545A035CEEEE878A + 3DAFCC1E0062B6C711D252564100974BF9BD44C32AA83EDD31BB00A6CEF6D7EF + 48282D8743192FDA5FF32BDB9803F0C56C2F5368ACCBE1697CA2A3F47EB30E60 + A6D99E40A05207AB9AA13AFF0D66017C31DB93590EFB77A6320B9057798195D9 + 1EEF8457939F829060EF97C3FEF2B370FC8BB7670F80A7D95E285540FAD6B5EC + 02EC2A17209DED6F8DDE0191280639A6AB5AB85806BD47B23894013E3FDC8274 + B6FFFA4C23345E5C0CABD725C223C181D3F605063C6CF70087AFF65CAEF35208 + E27A1ED31B1ACF80B0F675FA002867FBECE3B570B36F994F1090031CA83E8F04 + A153D20B3AD55AC611680364979CC3CAF3B631F2EDCE179DE0D700BE40400E80 + 6A094C2D269783DF7780FDF730D409B401328B4F63557BB7834C69641400AFDD + B575C81190037C7542C02882483F681D94E2E1F9A464A77D541068037CF2CD2F + D8F7056FF9A4037A060720A7F41A3CB13C19783CDE8CC79045686A3A4B1FA07C + EF9B30A631F9247C7C5C124444F220D0CD673B1904E4004C2C8131C31874DE35 + C3F2B88DB6F0F6A0081068037C7CE824565990C65807DC100D40EE9107573E6C + 49B86D5B50E0C3BF0DD24540062065E01ED0FB8FD0163E2666032C0D8F98B60F + 15027280E2BA0B48C2136D1F1B93EC141E25424BCB397A001F14FE8055F277C0 + 7D15BA25E0EECAA346F03B0032E151202003C01F4AE2557AF222E5F044DB4747 + 6F80D0B070EBB4E7FD8310AA08B40176F06BB0EAC20FED0054AB473C00FB2AAF + 435474A22D3C5154118665432016093D8ECD6D6DCDF4018EF2DF875135F52F43 + AEC25345900E49A0FF5E0724ACD043FF409C5B04640032E5837B40D9CF9748FD + BC63DBBB2A6F1146E4325BF89FF849B03E369EB3B3A206EBEA897289401B206D + 5F355651F8911D804CF54984B62B1FC17B0E962C8DF478BC2704C7F0C4767708 + 82F3ADEC00900DEF0961582605A1F08A53784F08C801BC5D02AD37E510C94B84 + C7FF6BFB20AEF74F781C113C857787C05A07BC5B54035C580351B12BEDDBA820 + 781BDE15026B00E35A356494FE6ABD6BAFA68C30A190930A3F1342C71FEDECDD + 04E9208C8DC8402CBE02F5FC8DA4C23B2268342AF600A822E0E107C5576145E8 + 28B414E7910E4FD4970D8DB6C007B6BFC61E00590422FCB759EBE0D4A90EA82F + CAA40C4014ADA7C33800DD13C0CB0826F873DC028B16AC778940B4FDCA50052C + E284D8B6B10E40F61F25DDD57D95124B29F871C64E900F0F8154728DF40D6F56 + 01B8425058AF3C53E1FD0EC01121E4D1C7180DEF97000442EAC13A504D2CA0FC + 51E71380B954F300F300F300F3006C9F03ABF52FEC3B87CC3EDA5C5A00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005944944415478DAEDDB7B4C13 + 771C00F06F2984CCC71E84288F800175B0856DCEE9C244D444F6D0B16CEAE6CC + C8369D83315D8262C4B18A2473C9328804A33C84110C6373CC0D1DC86382734B + C00868880E613AA0A45828CF52FAA22F6EBDCEABB4D0DE5DFBFBF50AE3FB5773 + 77BFCB7D3FBFEFFDEE5BB8F2088280FF73F0E6019C00E0F1788C8E4B3E73159B + F2D3CB7C61EFAB11E4B530BB980741E5ED328013099BB0009CADBB0386498235 + C29C01286FF807C6D55AD6087306E0B79B3DA054EB60426700B556CF18811300 + AD1EFD52D072AF1F14C60AA010A48A0988DFF21C787B79D8BDB83903D02E1A06 + E5848E3502A700C939354892CFDABF057A076520370258238CC894F049EC6A9B + 082E053898574F64256E0695761249E253635CAD07A552651361EFD6E761A137 + 7FDA85CE1980C949032834844D04F1B00C527646720B9094534764EF8B3103A4 + E4D522493EE3D3D7A0B5530295D7BB40A737CC788C41AF8793FB5FC60370A8E0 + 0FAC1DDEF6E870F0F6F4A03DB66F4C0B65F5AD30AAD04CDBA751AB20E7C0EBF8 + 007076781AE3A2B9736338E331354D9DD0D13B62B14D2A95CD4E00AAC3BBDD25 + 01AD46C36AEC53A101E6CF1DDD7DB313606A87473ED7DFDB1CC178AC4637092D + 7F8B41AED240436B27E41D7A032F802B3A3C8954694478867CAE333E47CF801C + 0A2F34CE4E80993ABC1B77C58C6E87E3F1AF983F0BF26B5D07E08A0E8F6D2560 + 0548CEBFC249874722ECD818617C44D2F721C70AAAA03065FBEC03A0EBF09A3B + EE835EA79D71ECD1DD31AE0138905BCF6987F779DC06DA731DCDAD80A22FDEC1 + 03F0D9C96AE274D2562C1540065D873775A6390590AAF44E257AA2AA02BEAF64 + FE787336163E2681B653893CE4006985971D3ACF9D91BB3034F42CAC5A13098F + 787B5AECF3F47808E361F5D59ECF9F8EE6C5A75F18CB2FFE0AC292B79C07D897 + 7589C84D8E75BA024CE72A2A81BFDA97B904C12D015C89800DC0D15B606A3489 + DB402D7F012B82DB5680F9BC982B01194042E605A2E0F03690C8B40E9FC3561C + 2C29C586800DE0ABB3F5481170DD0EC8003EFEFA67E2DBD4B7B1540015382A01 + 2940EEE11D30AAD4610320634F6E11F48A9E8497A2D64FDBE708023600D4B700 + 19A39A5168BAA787B0951B20303070C663D822545656A001F8E8F839223F7517 + B60AB8D9D30D49A79A61C5F228F00F08044F3BCF763608C801FA31AC016DF785 + 16C99B134580800D20B3F40A92E4A9B25FB93C1A7C97F899B67979F291212003 + F820FD3B225F1007437274B70035F32121EB60A99FBFC53E54086E0B602F7994 + 08D5D597D002907FB82023FBDCEF0E9F8B2AFBD090F536934785800C204E504C + 14A67F680670346E89BAE148FE0DBB338F120129C069C1FB30A270FCCB10957C + 507024F8F8FA19BB3D3EE3B18E22200790C8FE5B03727EBACA6A3C55F6C1C1EB + 4CC953E128C280A40F443D42DAB6B9B6B60A0DC0AE2385445EFA1E33009B6817 + 0B2D66DE3AD822F4F789A1B3AB1122C226A0B37BB95D04CE01E892678B303C28 + 3125FFA3200AD686AEE0EDCE2B265A6E05D944C006C0E416A0CA3E203012962C + 0DA03D9E0EC13A796ABB3D84FACB35DC540035F3FE812F324A9E0E6140D20F42 + E1B569C9D3217006109B56669AF9271E94BD179FF9FF02AC11E892B787C019C0 + BB19C5C087D51014FAF0B5174710C8E4BB850D502688B69BBC2D04CE00C6540A + 88CFFEC5B86AAF7218615C3A689AF9309F11A8CE4C66FC76F85484C63FEBB87B + 0A3883303A2C815ED175F826710D9C3FDF08651909AC7E23402128957274008E + 8CD3820E6E8F1960F182B58C11C8E445A26B10EE2385C5BC45A66D6C01C8F8B2 + FCA2E99AD3B6BDE93C00CB1F6958C4905C466C4AFD81512550334FB7E0B10997 + BE29EA0C028EE4DD06800E6170A00FFAC5CDC893772B005B0852E3CCE34ADEED + 00AC11163DFA38D6E4DD1280428839560AF2F1058C9B1C4E01E642CC03CC03CC + 03CC03707D0D9CC6BF814F90CC379AFBBF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005724944415478DAEDDA7D4C1B + 651C07F05F2984B81775846C40030BB0173418E71C06079825C3974D8CDB7C5B + 24EAE61C2233D9C632265646E28C46C8C8968D978184853127CE3084F1E2C69C + 463063CC904D643A8112B02F30A02BA52D7DE36CAB574BDBEBF5AECFD32BD8DF + 5FCD5D9FCB7D3FF73CF7BBBEF0088280FF73F1FC000800783C9ECBFDD9A7AE62 + 537E787928EC7A36DE7C0E3C26E3C8DC5E03389AB1010BC0E9CBBF817186608C + 306F00EADAFF84498D8E31C2BC01F8EE97415069F430AD37824667701B811300 + 9D01FDADA0EB8E14A64C338044904F4DC3EE4D8F42705080CB939A3700BD4363 + A09AD63346E01420BBB80549F8A23D9B607854014A13803DC2B84205EFA6ADA5 + 44F02AC0FED236A2287323A875334882DBD6A4C6002A959A1261D7E6C7606130 + DFE10491021C28FF016B9FDF961207C181014EF7CFCC18614A4B502288C71490 + F36A227E009C7DFE56BF0C745AADC3BE82F79E83EE3E19345EEB07BDC1E874BC + D16080E37B9E9EBB00649F375FD9D737C63B9D09927B3AA86DEB8689294724AD + 460DC5FB9E9FBB00B67DDE7C77372350554B671FDC1E1E9FB54D2E57780FC01B + 7DFEC61F62A7CBC1B61E8A89B0BEBE3D2099DB00CEFABC4CAE32CD8447CC2DCE + E918AD7E06BA7E178352AD85F6EE3E283DF0827701BCD1E7E910CC3538A2848A + 0B1DF801B2CBAE70D2E7A996C391DDCF585F0BCB5AE736005D9F1749E590B525 + 8172BC5700F695B411C7B252AD0039A5AD48C2BBDBE73F487F8AF21887CB9BA0 + 22671B5E80F78F371327F76EC63203CC45D7E7EDEBA31DA9DC00C8D5062C0064 + 51F579DBC00E18250D50F9E12BDE05C8ABB88415C2BECF730E9055749128C94E + 633D038E3635C0D9C6005663D9D4C20764D0732293E733009FD6D743CB4F4B60 + CDBA44B82F3870D6BEC080FF6002EC3EDAF3F98E68417CFAAF04EBEABF0551F5 + 167C006C9640A7B80734CAC7BD82801D80F5712AABE1D7DEE5D811900364145E + 20CA0F6E059942E7F1B1F657D76047C00EF0C9E9368F8E877B39200778E7B36F + 882F725F463203C8C23913B000941C7C0926547A64003811B00378BA046C0BC7 + 72400EF0F691734459EE76E43380AC9D2595303CB40A9E4C4A76D8C706011B80 + 14E13D80AC9EBF44B0F7C47558B53219040281D3F73045686C6CC00B50587305 + 49F809ED0474DE31C0CAD814088F1040A08BDECE040139C09BF9678832613ADC + 55A25B02E4955F119B64096F0D8A00C1E7016CC3872E0DB36C0B0AE42343C006 + 60FEE2C25CC7CE7DCFFA58E4B48F894E866561E1B3F6A142400E902EAC222AF2 + DFB202B0AD9B430370A8EC064447AF77088F12A1B9F9227A8093C237607C8AFD + 872177C2A342C0062053FC730F28FEFA2AA3F1AEA63D0E04E400DB0F5510A5F9 + 3BAD004CAA572CB25CF9C8A84408090D333DEDF1DD1ECB16C16700ECC393C516 + 61442681A14111ED63736B6B135E0077960039EDA3A2D6CF0ACF16412A11435F + 7F07C4AF9E86BE81589708D801E88AEACAB345181B9559C27F254C82849815BC + 1DA55544D7CD484A044E01C8F0E1822760E9B208DAF7D321D88727B7BB4268BB + D4C20D00D3F074082332290C88DAA15698322B3C1D0267006979B51021488425 + FF4EFB20BEFBBF05D82398C38B443FC3EA9071682ECCA66C01CE10380378ADA0 + 0AF8B0162263E2ACDBD82090E13FCF5C07E7CF77406D4186CBEFC1ED11B000B8 + F33E1DE8E1D63D232C5E90C01A61523E6A99F671217258CC5B64D94607608FD0 + F1E365B4004CFEAA7F57A92036E47E696A5D6B18234C8CC96078E89AC30DCFDD + 2211542A2577006C113C0D4FD6C775F596C0795B5FE40E802902AAF0B6E5D5FF + 0A7B828023BCCF00D0218C8E48402ABE8E3CBC4F015021C84D571E57789F03B0 + 475874FF8358C3FB240089907AB80694930B281F6F7D12602E971FC00FE007F0 + 03707D0E9CD6DF9C808DCC62EE59550000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005714944415478DAEDDA7B4C53 + 571800F0AF2D0DD9740F0951A00103F860C605E7746102898BCCCDC7E2638FB8 + B9871B93315CA262C4B12A2473D932C98846790CB6681CD3311764A2C014E716 + 611171216688538112581F20A52BA52D7DC05D7BB7D3F47D7BDB7BEE6D59BFBF + 6ECEED39F0FDCE77BEF636E5110401FFE7E085011804E0F1786EC7F3BFBC824D + 79D1DC68C87E6EB1F56FF3E8CC4379B306F045CE4A2C00272EDD82C9298236C2 + B401A86BBD07637A236D846903F0D3EFFDA0D59B60C234097AA3D967044E008C + 66E65B41C75D398C5B2A0021A8C62760FB9A548814F2BD224C1B80EE8111D04E + 9868236001D853F50BB66E4F4C4D82D16070182BDDB1060687D5A0B100382328 + D55A786FFD528F08D8007077FB579F59E4303EA6378356ABF38890BDF6099811 + 297041083900FB6EBF3933052223F8E4F894A532C60D844704E9881A0A5E490B + 7D00FB6E7FE38E943C0E87DE7F1E3A7B14D070AD174CE649B7F326CD6638B2E3 + 597601D8E8F6D6F27E7D752A5909B2BF8D50DBD209A3E306977906BD0ECA76AD + 0B7D0077DD1E21A0686AEF81DB834A87792A959A3B80FCB22646D6F5D6EDD171 + B08FC792E26CD7B7FB64EC01E4575E264A735781CE38C5D89A28BC757B854A0B + AFAD7ADCFA9647BED6609A828E3FA5A0D119A0B5B3072AF6BC10FA0054DD5E22 + 5741DEC6E50E73FA8734507DB68D3D805DE52DC4E1BC2C1B4041453323EBFADA + EDCD2623797D70FB6ADBB8B8B2993D800F8E3412C776AEC55201D6A0EAF6F689 + 730AA0D299B100A0F0D4EDF76FCB72796D51D505A82ED8CC0DC081EA8B58219C + BB3D0A7B085601F24ACF13E5F9EBB157000AE76E5F94ED7A04F6979F83AF3F7A + 797A02A040DD3EE8007C3D02B79477A0BF3F9135B0198F28A0EB682E0F3B80AF + F1697D3D345D9D054B96A5C10391110EF722F87CDB35DFE9D15E20E0BBAC2514 + 507F255857FF23484E6E641E20A7E42C51B5771328D446DA73779FAC813FBAE7 + B282C01AC027275A68CD6F9776815EF32476046C00EF7EF603F155E14B7E5500 + 0A362A012B40F9DE1761546B0A681DDC08AC01D03D02F681F338600378E7E069 + A2B2704BC0158002572560079007D0039CE3C353DF328EC01A4049CD6546D645 + C7E1E9F40C977BFE20600378B3F81BA252BC15EE6B983902D6E8FA4B023B8F5E + 8705F333402412B97D0D5D84868673A10180929F979C0EB1712288F0F2DE4E07 + 013B80F58B0B6B1C3EFDB3DF6B8D1A46A1FDAE19E6276792C9DB126500011BC0 + 56F171A2BAF82D1B80BF7173A00FF655DE20773E7A760C39268C1030868015E0 + 98F80D508EFBFF388C924F4C5C017362621DEE3185801D40A1FEB707947D7F85 + D67C54F64989192EC93389D0D8781E0FC0967DD54445F1DB36003AD12D9578DC + 79A611820E804EF24C20B006E0CB1140659F90B002A2A2632C9FF60494730245 + 089A0A403B1F9F9046268FC25F8421850C06FA25941F9B9B9B2F700FE029797F + 11E43229F4F4B6C1E28513D0D397EC15817300AAE4E9228C0C2BE05EEF55A815 + 67C2F2A479BC6D15C7898E9BF11E11380540C9C78A9E82D973E228D7A442B026 + 6FDDF985514A682CC9B735026F082D179BB801A09B3C15C290420E12C96FF079 + EE323873A60D6A0FE53874424F085801BCDDEF500A214E9406B3FE2B7BA19B27 + 355F11ACC9F7495A21254A050FF1669263CE009E10B00150FD4235757719C123 + 96427C528A6DCC1F04B4F3DF89D3C9334F35CF19813380FB1A35B1B2F094A56B + 2FF11B614C354C2B7977086DBF5EE206205084D111050C0E5CA39DBC338256AB + E10EC05F84409347F1715D3D99F0814D1BB803A08BC054F2F6C1EAAFC50341C0 + 917CD00050210C0FC9402EBDCE78F24105E0094165D9795CC9071D8033C2CC87 + 1FC59A7C50022084ACA21AD08C3D687BB0C1913C3680508C304018200C1006E0 + FA7FE034FE0108E997CC9B0C97150000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000055B4944415478DAEDDB7D4C13 + 771807F0A72D84F9B2170D51A0610614E6CC329D730B0E359AB9175F968DBD85 + 85EC4D2663BA648A11659D904C97659A11C9E445D886714C652EE8E4758A73CB + 641199213A05272F2565A5E5AD5D694BE90BFDAD5777B55C7B6DEFB8DF5D419E + BF4AEFEE57BE9F7B9EEB1B881042703797680A00038048241AF373C6E10BD894 + 17CD0B87D4E71E211E53C4E43832376F005FA6ADC60270E4DC0D18B523C60893 + 06A0E2621B0C992C8C11260DC0CF57BAC068B2C28875144C165BC00858017614 + FF8A75E6DF58B30842C4B73336DD5281C1D1012482D630029BD72D86B050B14F + 04EC00B8679E4468510C8071C4CA1861C20290337FAD430DFB36AD01D5C010E8 + 1D005484419D11DEDFB8941661C20250677E43423C188DC3B408A9EB1F831961 + 120F045E002C36EED7A6CE3C113229311ECC8EDBDE1094033AC87C3D61F20078 + 9BF92B6D6ADAFD476D36C8DBFA8CB00019F9B59CAC9BBB751D74F7E9BC9EE96B + F27EB0DA463D8E319B86217FDB067E01328ACEA3DCF4A761D862E77CED21938D + 76E65BBB07C1EE788610BB5DF7B45ADDE402B0DB47C16046B408975BFF81B8E8 + 70D7FEAD9D3DFC036C2BA84707B7AC75016416D671B2EEFE0F9E87E67635545E + EAF0DAEE441133BF3B651534DD54827ED80C179BDBA170C70BFC027C9857830E + 7DB41E4B0710D5F3AF05CAEB9B4163307B6C23667EEFE6679DB7BB7AF55072AA + 413800EDB00D0B0059B58DEDCEB9772F62E64900A2644575C203EC29398B15E2 + E1D828D76D62E60507D8925B850A323662EF00B2CC56FB9899CF4EBD03905D5C + 0D25992F4F6E00B2C8990F3A00DC23406D7977804F0ACEC0371FBF76777440D0 + 00A41D38858A7726815A670968FFBCBA2A38512DE60D69C6FD6AB8FE55BA8837 + 807D47EA7DEE7F63F06FE8EF7F14962C4B8069612163B68588EFC088296FED25 + 124FB45089FF8F042B4EFF04F2A32FE10378EFF31FD1D759AF06DC01446D3F5A + 067FB5CCE305811780829DAF80C66865741C5F08BC03F81B01F76A545E0793FE + 71AC08D80136ED3D8E8AB29219770059B83B81370015836B00B5761FFB1E1B02 + EF0007CACEB35A07D7386007782BE73B54244B817E3DBB11702F1C9D30A10088 + 4A2FFE16BA15F1B03C7185C7363608BC01101F5C1075F0F82FACD7D29835D078 + CB060FC5AD02A954EA751FA608959567F002A4C84A5149CEDB2E00B67555D109 + BB8AFE8405F31321324A0A213E9EDB9920F0027048F6260C1AD8BF19A2867705 + E500813700B5EEF63520FF870B8C8E27DB3E6EFE4A089F13E1BC2F3444C21902 + 7680E45D25A830E75D1700936A51CA9D673E26E629981B1139661B5708410BE0 + 2B3C9708353555FC0204320264DBC7C6ACA00DCF1502EF00FE2A9033CF254250 + 0190E1A31F4C80D9E1118E577B92001E617C084103400D4F165B845E750F28BA + E47E5F36D7D5550B0F40179E2D82AA4709ED1D0D70CF74058075B94F04C101FC + 85678A30D0A77686FF227D199C3CD900D36242A1E96A342D022F0074DBF4C800 + 3735B3204A9A0073E646F95DCB1F0211BEADE37758385B0BF78A663AEF2BDF9F + 267AA7B014D121D49FADC50B40F7778A4D9DED28F9B30688943E1950787F08BD + 6A15C8E57FC00959223C11BBC0E341E9100403884D2D45C4999FF57FDB874A02 + FF2E808AE02FBC2F04C100166FCF4722B414A26317BAEE63831068783A04C100 + FAF53AB43AEB98E3AABD8435C290B68F51786F080DBF9D130660BC089A013574 + 2B2E310E4F45301AF5C201B045186F78B23EAD38ED0CBC27E945E10098227015 + DEBD78FD7F81F120E0081F3400FE10FA7A7B40A5BCCC79F8A002A043D03ACE3C + AEF0410740459879DF0358C307250089B036BB0CF443D3A15CB6125B78EC0013 + A9A600A600A600A60084FE1D04ADFF0042645ECC931E58870000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000052E4944415478DAEDDB7D4C13 + 671C07F05F5B0841D90B1B51A003427DD98BCB74CE2DBC9998C89C6F7B716F21 + 316E6E4CC674CB14238E5521D199253312CD042ACC601CD3B91874BC768A738B + B2C07021660E9D164A60A505A15D694BE90B3CEB75BB0628EDF5CA3DCF1D93DF + 3FB4F7F21CDFCFEFB9BB5E03228410DCCB259A01C008201289DC3F738E5DC676 + 902712A220F38527A96389D8EC47E7260670286B0596639CB8F8078C8C22D608 + 44007696FE84B5F39B562E829A26150C5AEDAC118801E0EEFC23511160B13A60 + D8310256BB336084690F5079F58EBBF37AD3302C4A78D88360300FC396358B21 + 2C54EC1761DA03FCF05BA727B4CE60618D4014C0EEE4FE182DB7B56076CD003A + B45A6B80658FC678DE0F182DF0FEFAA53E11A63D405B573F58861D8C08996B9F + 86D961122F045E00728AEA3919B770DB1AE8EE3382C905C084A0E93742EE9B49 + FC00E4282EA1C2EC9530641FE57CEC41AB132C96A14911AEFDA9019158E2DE6E + C4E98423DB9EFFFF018C8E8E80D98618116CD62128DABE8E1F80EDC50DE8F0D6 + 740F406E89929371BFF86035B4AA7450DDD40E0EE7C8A4DB509DBF2F221C0C06 + 237F001F1EA943473F5E8B650650D5F3B71DCE34B482DE6CF35A4775FE71592C + DCECE8E11FC030E4C4760CAAEA9B5570B37B60DC32AAF3294FC9E06AAB0A4A76 + BE280C80BD6517B042501DA78BEA7CE64BC95076AE913F80AD8535A838673DF6 + 194097CD310A2DB734601AB2B93B7F207B35C815CA7B0780AECE5E93BBF38203 + C07D0AECDFB2CAF39A0A9E9FB90AF24B6BA12CF7556100902C4100641D3C874A + 776D009DD14E1C800ABE2F6B1DEC29AE82E39FBE210C80CF4E34600DBD6773BA + B000DEFBFC2CFA2AEF75C61970A8B60ACE2A43B0E28CADD90FE8E0C697D92222 + 00C5BB5E03BDC5C108507F2512962C4B82F0B0F1102162B1E7B578C2A3BD4422 + F61A2B54C2FC9560E5F9EF417DF215F200FE4E8166CD0DB09A9E2182400CE0DD + FDA791222F837106D0B5E36405FCDE96801D81388096C55DE09353DF6047E00D + E060C5A580F6C37D3A100378ABE06BA4906F84BBA6C04E81B18573264C0B009C + 08C401A82F2EA83A7CFA47D663E0381D88016C9497A3B282B73D00C1D647C7CB + A1BB6B2124A7A679AD0B068128C051F926183007FF3074BDAB03762BAEC1C205 + 6920954A27DD862D4275751559009DF1DF6B40D1779759EDAFB7E9A1F9B61316 + CC5B0E31B15208F1736F6783400C206377192A2978C703C0A6DA346A77E7E7CF + 4B7587F704E50041F00063C347CD89762F0B0D917086C01B4020A7003DED6589 + 6930373A66DC3AAE10043B03E8CE2726A67885E712A1AEAE4678008184E70A41 + 70006CC273812028003A7C5C7C123C1415EDFAB4270978FC6011040330313C5D + C122F4EA7AA0AB53CDF8B159A9AC2507E06B9D0999E1963E12E2E353C6850F16 + 41DBA3813BED57207CD65F008E64BF08C4007CFDB55A4B870A651C68F4EA7CB0 + 08FD7D3A50B537C2B7F2547856365FB4B9A41CB55C8FF389C02B001D3E46FA1C + CC991BCB380613C2C4F0F4727F080D17EAF901601B9E09A157A705B5FA17AFF0 + 4C08BC01C832CB51AC340922FF9BF6A1933CA9058AC014DE1F026F008B771421 + 115A0A71B2C73CCB82410834BC2F04DE00EE9A8C6845DE29D7557B49D0088386 + 3E56E1274368FCF9227F17C1A920E8FB75D0DDD5C43AFC44048BC5C4EF6D3018 + 84A986A76B5FE57977E0BD1B5EE60F802D0257E1C716D1FF18990A028EF08201 + 6042E8EBED01ADE657CEC30B0AC01782C1D5795CE10507301121E2FE07B18617 + 24008D909E5F01A6C1597046BE1C5B786200D3A16600660066006600F8FE1D78 + AD7F005FC119CC0616A6F40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_21_48' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004BC4944415478DAEDD97B4C5B + 551C07F06F29C81EBA89211BD08001361F89898B4F065B32231A9F71F315E2A2 + CED79C9B8993659BD83112A7317119D9E280866A58748233864D180F37E6230E + 33C4851807C3ADD00AE90306EDA02FFA8063A9DE8695B6B7B7BBF79E2BEBEFAF + 9B9E7BCFE9F7D3736E4F6F6584105CCB258B038800B0ADFA27C10659302F09A5 + 2FE423392941C6E53A26B76800FB36AE11A4EF4327BBD167BCCC1961CE00D49F + BE8871A79B33C29C01F8FEAC0E76A707139E499C1F1C4549D14A2C4C96B32250 + 01707BF91FABF3821136DF0C6010BAFF1EF121DC8F1BE65F171161CE00F40C8C + C03EE1E18C4015A0B8A285977ECBB73C8AC1E131587D005C11440528569D22E5 + 9B1E84C33DC57BDFE34E2FEC764768847E238A9FCF47EAA279B310E60CC0D4D4 + 246C2E1216E1EC4513CADF7C802EC0D6CA36B27F7361006047552B2FFD7EF2D6 + 23E8D298D078A60F1EEF64C87326BD5E1CD8F2105D80B70F349383EF3C26C80C + 982EC365378EB475C16C73CD6A73391DA8D8FAB834002C0EAFA0E3B47468FC7B + 819965B18C490FA0547D42D0F16ECFC9081C9FEF37D007D85C7E9C54163F21F8 + 0C60CAE5994267AF1E56870BA7BB34A8DAF6E4B505C0946EC80AF5D176E90108 + BD04F6BCF170E058A96A951E80982509808D7B8F92EAEDEB601A738B0EB0BBBA + 09EA1D4F4B0BE0C3436D828EB76B43A1B4005EFFF85BF259C9B35466C0AECA06 + 7CFEFE73F4012AB73F03B3DD130798AEE025D03DFA1774BA6CD150162E36E1DC + A79B64A201BCBAA78EA84A8AC2CE807D4D0D68F925052BEEC9C3FCE4C42BDA12 + 131202C709418FFBE4F284597D25B13F0D43FDB1EFA0FD62ADF800C608F780F7 + 6ABFC29F3D378B82401D60EFE15321CFEBD09F83D37AB7E008A203BC54F62551 + 29D7E39295FD2628C64C9034801808D400A61F5C4CD7FEBA1F58AF117239880E + B05E5943D4652F0700A22D655D2DBA7BF99F0954000E2A5FC4A88DFB8F212110 + A80198C6FEBD07547CF323A7EB99E5B0B260D5ACB65810440728DAA9265565AF + 0400B8548F5E8B9DAADF71CBF25550281421CFE18AD0D8D8F0FF0060C22FCB2D + 407A86028911BEDBB9205007886609985D66745CF06279EE6A7FF840501E10A8 + 03B0D5CC4F3E75499AFFB5A444396F08920660C26767E763695AFA156D7C2148 + 162052783E119A9B8F4B0F209AF07C21480E804B783E10A800846BB3121B7ACD + 29C8CACAC74DA969BEDD9E3CEA7E6345101D40260BFDE63AFB35A4E8A3766466 + E5F9C333152BC290C980019D9675DBDCDADA441F205CF858118C063D347DEDB8 + E3D60968FA7323225007600BCF156164D8E40FFFB5B200F7E62C936DA8AA219D + 7F648645A00AC0844F57DC87254B3358AF6543080ECFBC1E09A1ED440B1D00AE + E1D910864C4668B5BFCE0ACF86400D20E7B51A92A1C843CA7FD33E29C42FB568 + 11D8C24742A00670E7BB154446EE4266CE6D81B65810A20D1F0E811AC025EB18 + 595352EBBB6BAF881961DC32CC297C2884F69F4FD2BB095E0D8279C484C18133 + 9CC30723D8ED56BA5F83B1205C6D78A63EA83FE60F5CBAEE29BA1B212E087C85 + 9F59A2FE3B1C6E2B1C0D8210E12503C086303C648051FF1BEFE12505100EC1E2 + FBE4850A2F39806084EB17DD2868784902300885BB0FC33ABE004794AB050B2F + 3A80942B0E10078803C40168BF07AAF50F6413B1BD9625D3890000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_01_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000047F4944415478DAEDDB5B4C14 + 571807F06F05224D1FEA032F3526DA075F485BF5A59A181358EF40D2185B2F51 + 2E2A1023C65B912C61919660248AD2DD721389B62A82B760AC054544126D4235 + D6C65453B549B12AA01076D98599BD7A3A33CD4E866567D96177CE392BF34F08 + 67D91DF67C3FCEF932408E0E210453393A0D4002F04D7D17168DC4D909B06DE5 + A7C2FB2BB9EE8BA4B488CCEF5ED735F17DC7011CCD4D521DA0BEED11C44C9BA6 + 18E1BD0168EA7A0A8CD32D8C9520F800A4054C142B6B45BD96979038F3335DA0 + EB89005CFEF56F70B9BD8A119402F0C5EB8F2C8401FB5B68C83A0BC579B54005 + 40FB831EB03B3C2202CB7D64A7CC87F8585DD0C29402ECBFB80B35DF3B238C0F + ADAD04B3E15268000E8FBABDF0C1B35E1865DD8A1194003C7AF5074A33EB81AF + 6F4EC227D099FF1B2C5EBA860E80A7FF0EC288C3350E8171B82127551E410100 + 4A3525F308C28373B92DB0646E52E83DC007905F733DE2C557EC5805AF078661 + 842BDE1FC1E5F1826DD4298B102A00B7EC11B7FC8571EAE75F425DFA8F3AB9EB + C700ECABEB44C7B6EB8171BD8B78E1D20CB31E60184616C162632027651E7C18 + 1F37A6506901234E3BF2BCF3C28C0F668C790DDFF896942F002B6385E9B1D3E1 + 8EE177F8F8A3997401206EE236270A8AF066C80E05EB160604686F3B0B7C91AC + 8BE57FBAB02C7195F83A69E333A494405EF21E9DFFF5B200BB6B6E22D38EE522 + 4041DD8D88177F78FB4A78DC330857BB9F0B7B5E2E1E8F1BB8B9040468BC7014 + F44716095F8B8B8983FA8CD30242A0C6C73D1F3AC04E731BAADAB55AF515C087 + DF06ADDDCFE0C98BC180CF3B1D2C707391DD02D5B7BF47E5ADDF8908B5E9A7C0 + DC5131AEF1C95D1F14C0CA7A5507F0E545DF10B4DEFF47BC29F2C562B50505E0 + 3F4B11745CCFF4D5226D7C6101184FB4638388898D85B9B312C4C77FF5F44F08 + E08FC0C7BFF12902C8ABBC86AAF7A6615D01D2BC191A813F7B06844678F7E173 + E0E63221803F827FE38B2A003EACCB0BBD033638F97377C8007C3A9E5C47FDB6 + 7ED8BC284BA82B220038B7009FB29C15E2B8A8AE4D1620DC50BD028802E41E6E + 41F5056BA06FD845BA7E2839FE0B707351F417A3C92428C0C19F6E612DBA2873 + 295980EC43975043E15754AC80E29AABC0CD053F40D5FEB560197587F12DD503 + 50BD07F80390DC024400B6969D4735867554AC80A21F5AE0A4717DC8F701A164 + C2FB001F403F053DA0B4F60A79808AC64EAC45E76FD29305483F701A1D376E86 + B776F25BA0D8741ECE946668004400FAACFF6F81CAE6DB588BDEBB21591C7F5B + 75013FC0A6A253E84449A6084032074C4DD078708B06801DA0DA982102545FEC + C25A74DED749E2B8ACAA193FC0464303AA2DD942C50A283535425379B6064014 + 80E416A002806434001A0068DD02E126EA57C0940550231A803F80D998058314 + FC36480CA0B230132C8C8774FDE47AC09407385698015686FCBFC688DD07902E + 5C1AEC00B44703D00034007501A2E5C488AA00D1706224EA01709E18A11200D7 + 89116A01709D189934C0FB7062846A000C2746220310AD2746260D102D2746C2 + 0D7180704F8CA80640FB89113512552746D4C87F00C23CDB18CC6AA600000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004964944415478DAEDDB7B4C53 + 571C07F05F791997FD3113FE9A26BA3FE61F73F1F18719C9322735EA0417E37C + 4779CC0131E234286A1920CE31758A36ADA53C156520882C181F74A232966D09 + 6A7CCCA899BA64381550082D2DDC963E3CE376E9F5527A6B2FED3DE720F79B10 + 4EA187F0FBF49C1F970B47811082B11C850CC003502814A4BF1FBF99FD697C48 + 5EAD6B2DE7B94265003EC0B6D2162CFBE183C9D1F0D5C20F597051E21E80EBBF + 5E08789E9131A276E313983671BAC233DF2FC0A1B4B99203941AEE4078589868 + 04B1006CF1CA831F4197E505942757416E7A11500150D3F2009801877B2C0641 + 2C4066DDD7A8F6DA8FEEF1BE656AD0AAEAE900F8E98FBFC1EE7089461003F0E7 + 935B68B156096C7D53A2DF83E6CCABF0F1BCA5740034DD68038BCDC9215807DF + 52E266C2F8C830BF85050A3058138AD7C4C29DA7B7DD8F4FA635C09CA9B181F7 + 009B53DA5E78E3613BF45B1DA2110205A8B95A89B69FDEEC1EC74F5F02258927 + 14FCF9C4011EFCDB0D7D36FB3004C6E680D47861043E80C56646CE972E98F0D6 + 8421CF651BDF27FB67818931C1B88871F09BEA26BCFBCEC4910164EA7F0E79F1 + 051B3F83675DBDD03758BC3782DDE90273FF802082A780264315B0455AED5628 + 4E380EF3A72DE29ECB6F7CAAB83CD8A4CC5078CF1704D85ADC8C0E6F5002637F + 29C1EBFE2ABD5627300C2388603433901A3703DE1E1F3504C1534075DD21501E + 8C717F2C323C124A132BDD08BE1A5F5444147D006870E99A07905F84E73D16D8 + B92AC62700BB0574CD6AB4BFF15B0EA128A102B4970B86353E5FF30501B6E82F + 21CDC6F91CC08EE28B212FFEC0868570AFAD1BCEB63E72EF79A1389D0ED0A62F + 100460DFF311D89FA29E5AF88D4F14C026AD01E9362F927C05B061B74163EB43 + B8FFB8DBE7E7076C5628DC12E717C01B818D77E31B1180C9EA921CC093C71D3D + D078FD1FEEA2C813A3C91C1080378277E30B0A20A7AC091B44784404BC3F299A + 7BFC575B67C0006C2EDD33A04E7327AC8B4916BCAA7C2D40BAFA3C2ACC588C75 + 05F0F3BCA70FEEB675B91BE1EFB71E817EEBE73E01820DB5006CAC7617B47799 + E1D8B956F20038B7009BFCD405DC38BBD8300C205419721388B615401420ED40 + 032ADDB1143A7AEDA4EB87BC920B50B6F30BB200DF9FB882B5E8ECA4797E0124 + EF0129FBEA5179D6722A5640AEFE2C1CFD66057E00DDF66560EC778CE80BE302 + 107353D4D7FC8001486E012200EBF34F21BD6A25152B20FB480354E4AE2603D0 + 49410FD85374863C40417533D6A233D72AC90224ECAA442539EBE08585FC16C8 + D59C82AAEF92640022001DA6FFB780BAF617AC4567AC8EE5C6BB7575F801D666 + 57A0B2BC240E806476696AE0E4DEF532007680C29C440EA0F0740BD6A2D357CC + E5C6F9BA5AFC006B54E5A828EF4B2A56C01E4D35D4FE902A03100520B905A800 + 20197F00C1460618AD5B205411BC2546FB0A9001C63A00961EA0CD49866E0A7E + 1B2406A0CE4A0223E3245D3FB9EB80310F70382B114C0CF93F8D1103205D383F + D80146CBBFCBCB0032800C200DC09B78624434C09B7462845A005C2746A805C0 + 7162846A00A94F8C040D30DA4F8C500F10EC89916033EA4F8C480640FB899150 + 45F09618ED2746A400F80FFEC32EDBB51248B40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000049A4944415478DAEDDB6F6C13 + 651C07F06FF78F607C21C95E8989FA425F88417D615C62545602C88631882806 + F647640B6108190EE8DCC614A7200C9AD6AEFBAB93B9B131303308AB0E9D336A + 322088123102260ED16DB065EDDAEDDAF50F8FBD9A5ECED2DB7A5BEF798E79BF + 64C9D32E4FDBEFA7F7FC72BDDCA32384205CAF181AC8C1E26C38B80058D76E53 + 0BDADECFD329F1DAE2CCBA4800D6C1C5451D40A753E4FDE2568F3F9319972FE8 + 4CCF0921A806703B029CFDF664CC1FD4CED949BFFD1A16CC5FA80BCFFFDF00F0 + E1F5FB9FC090EB061A729B5156508D4901DEA8EBA1D2041FBA3715AF2D7B9807 + 97252E17A0A8FD75D276E693D078CF2A23CC866353031CC85FA438409DED0212 + 13126423C801F8F9DA79B2C2AC0F75FCFB52EF4777D1693CB978A53A005A7B2E + 819BF085C67210620508662299A6745CF8EBA7D0E3C3F91D78FAC1F4A97B002D + 804F7FF81D5E5F403642AC00ADA79BC8F6A35B42E3CC85CFA336FB904E3C9F39 + 40D7B93EB83C7E01C11DFCDB90F128E626274C1A4C0CE0F23889FF6600F3EE98 + F79F397CE37B6AEF63C1B35907E624CDC177861F71F75DF3E50178FCCAF6C273 + 97FB31EEF6C9460807E8B235830FE9F6BA5193F531962C582ECC11373E434639 + 36EB0B7591F399035CFA7318631EEF2D089CC787BC4C6984708096F603D0EF4F + 0B3D979C988CBAECA61042B4C6979294327D8022EB17710F5FB9E959FC3D348A + B160F84804AF3F00E7F8842482780958BA8D646FE7DB0242755623CC5F55DED2 + F8A2CD9704D856D34D0E6ED483F3DE54E49B0FD7A8DB0F8EE32411EC4E0E7919 + 8FE0CEB9295103849BA01881EFA1E12CE2C6A74A00126C5ECE093229C2F51117 + 76BE9C36294024025F918D4F16C056EB2962DAB44400D851F365DCC3EFDBB80C + 17FB8671BCF74A68CD4B95DFEF83B960E994009108918D4F16C066B38D58B62C + 57FC08E08B5F069DBD97F1EBD5E1A8FF9FF0B851B535232600BE4E5DB49141E7 + 20D6A5E54A9E53C40CE070D3BB22747560049D67FF104E8AC26577382501665A + 310394D6775183484C4AC203F7A40A8F7FEB1BA40F50603C41AA0A57503D02C4 + 757D640CBFF40D851AE1F7E7AFC0BAED39BA97C45803F0E5F606D03FE4C4479F + F7B207A0B904F8AAC85B2A8C4B6A6CEC0158563400C57B40FEBE0E52B7632506 + 46BDACF3A3BCF624EA77BEC016E0DD435F530D5D92B3382600391745A3CD9704 + D8B0E71869287E5115474099F5383E7C73357D00CBF655B08FFBA6F1F2B31080 + E5126002B0BEE208B11A5E52C51150F241071ACBD6B0011854410FD85DFD197B + 80CA966EAAA18BD6EAD90264ED6A22B5A5EB70C3C57E0994998EA0F99D1C0D80 + 09C080E3DF25606CFB866AE8C235E9C2F82D4B3B7D80B5258DA4BE3C47006059 + BB4CAD38FCDE7A0D803A405569B6005075B4876AE882D58B847185A58D3E007F + 935475F9ABAA3802A2DD25A60128FD73381280E512500500CB6276A3A406A0E2 + 25401D8065693D400360741E602ECDC5B00A7E0D32033016E7C0CEF959E7D700 + 9801A879C7081500D6C1C5451D60B6DD2EAF0168001A803C80D9B663645A00B3 + 65C788AA0194DE31A27A00A5778CA81E60A63B46665ACC374CCC74C7C86D0F30 + DD1D23F12AC94B626ADF31A204C03F59C8FBCCE590C9460000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'SetProperties_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A24944415478DAEDDB7D4C13 + 671C07F05F798DCBFE18097FCD25DBFED8FE988B9B7F2C2359B6498D3AC06551 + E7A6515EE68418711A1C6A19209BE274F2D2B42BE555990882E8C2E2906EB831 + 966D096A9CD3A8F165C9501CA0105A5AB896BEF8D83BD3CB79ED558EF69EE7A4 + F74D48AE90E7C2EF93E7F9DDF5728F0A2104BEACD134206D412698293790CE6E + 5D0BB47D93AD92E2DCDC9A550A000FA0B220032C948774FD0101DE78370DCDF4 + 7CDC9CEDED64CFEB0740BA706EB003A85492CCB8B0C50770EEF753D3FE47CD94 + 190D9A0760DEDCF92ADFF88801A08B5797BD0923B67BD090D50CC5B9D5105100 + F9ED9FA1B6B34798E37D2BB5A0D79C881C808B0317D032BD9AE9F82F24BE083D + F967E0AD45CB83037C5ED78BA509BEF27C227CBAF4551A5C94F87401BC35A134 + 5D325CBAF30FF3F9684E07BCF372F2E37B000D5091B35072803AD325888E8A12 + 8D305D80D6334D68FBF12DCC71DAFC0FA036E3B08A3B9E38406BEF75A0A65CCC + B118042E80CD6145EEFB1E48782AE191B174E37B7BFF02EFBD8C05E263E2E10F + CDDFF0EC3373E505F0FD5FFF82D3E5118DE02BA0DBD40C749176A71D6AD2BF83 + C5F352D8B1DCC6A7492D81CDEA3C157F3C7180EEF3FD6073B85904BBF76743EA + EB3027362A2882AF8096F60A50972531BF8B8D8E85BA8C26062150E38B8B8913 + 0FE0704BDB0BCFDF188449BB4B34027709187AB4687FD7572C42757A23E87F29 + F76B7C81C61307B87E7B14261C4E3F04CAE182EC3461047E13E422D02BC8570B + B7F18504906FFC29ECC5976F7A0FFE1F1987096FF17C04A7DB03D6C929418440 + 57012E021D7EE31305B0ADA607556E5403E5BC1FF6C2B919B7BB81A2284104B3 + 9582ECD4D7E0E9397101A730FF32C845E0373E590220EFE5CB3A858222DC1DB3 + C1CE8F93A60540E7F415131AB60EC3BAA42CC12BCA6301B61A4F23DDA6C52CC0 + 8E9A9FC35EFC818D4BE14AFF289CECBBC9AC79A1B8DD2ED0E72EC1FB7578B3DE + 840C5B52249F0174E865D0D57703AEDE1A0DF8F729871DAAB6A69201B0D8F13D + 11BA3534065DE7FE636F8A7C315BAC7E00E18AE023313E40517D373688E89818 + 78E9B944F6F3B5FE61FC00B9DA4E5495B70CEB0CE0E6EED8045CEE1F611AE19F + 176E8271DBFB910540C7EEF4C0E088150EFDD8E70720790FE003E05C02744AB3 + 97B0C7853526F20024130C40CC43D140E30501720E74A0BA1DCB6168DC49BA7E + 28A93D05F53B579005D87BF857AC4517662E220BB061DF09D450F0A12C6640B1 + F1241CFC62157E00C3F695609E74CDE0F4B31080E4122002B0BEF418326A3E92 + C50C28FCB6031A8B5793011896410FD85DFD037980F2961EAC45E7AF55930548 + DFD5846A8BD6C13D1BF92550AC3B06CD7B32150022004396874B40DBF61BD6A2 + F35627B3C75F1ADAF103AC2D6C44F525992C00C9ECD2B5C2D1AFD72B00D801AA + 8A325880AAE3BD588BCE5DB5903D2E35B40902849AA02F4955977C228B1940EC + 2D313903842B41DF13E402905C02B200201905400E3D406E4B20E29BA0E4F701 + 0A8002D080F44559302A836F83C400E4BC614201C001F024EC1891148074E1DC + 6007984DAFCB2B000A8002201E60B6EC1809096036EC18913D40A83B46420D71 + 8050778C3CF10033DD3112AE083E1293FB8E1129001E003747D1CC6ED9E22B00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004974944415478DAEDDB6F6C13 + 651C07F06FF78F607C21C95E8989FA425F88417D615C62545602C88631882806 + F647640B6108190EE8DCC614A7200C9AD6AEFBAB93B1B131303308AB0E9D336A + 322088123102260ED16DB065EDDAEDDAB51D8FBD9A5ECEAED7EEBADE73B7EE7E + C9B2EBD6BBE4FBD93DBFDD5D9F47430841A05ED33590EAF2D731607343EEDA6B + 6841DB87791A298ECDCFAC09063096E662D8E1913BBF7C00FAE21C5819AFDCF9 + 43023CF95C2689F678FC3ADF739A3BAE0A100C70B8381B366652EEFC61012E7C + 7726AAA111D83F2C80DCC1F9451D40A391A4E7C4AC54001540059016E0ADBA1E + 2A4DF091FB53F1C68A4759705141A8001CCA5F2239409DE5321213124423C40D + 406BCF553013FF5D6E8B41881B80CF7EFC036ECFA46884B801E8BAD80787CBCB + 21387D5F9B321EC7FCE484B0C1A801B8BCD2F6C28BD7FA31EEF48846881B80AB + 7F0D63CCE59E82C0B83CC8CB1446A00E5064FE32E6E12BB73C8F7F864631E60B + 1F8CE0F64EC23E3E21882039C08E9A6E7278B3168CFB4ECC83F36BD4E905C330 + 8208563B83BC8CC770F7FC14BAB7C3B400C81DDF5F7A828445B835E2C0EE57D3 + E8026C379F25862DCB38805D355FC53CFC81CD2B70A56F18A77AAFFBC7BC5079 + BD1E180B96D37D24B6D56821A66D2B253F03D862874167EF35FC766338E4EF27 + 5C4E546DCF9007C0E6A4F744E8C6C0083A2FFCC95D1405CA6AB3CB0F505ADF45 + 0D223129090FDD97CABDFEBD6F700A80E43DA0407F9A5415AEA27A06F0EBD6C8 + 187EED1BF237C21F2E5D8779C70B730B802DA77B12FD43767CF245AF208098EB + 002B6325FDD69B58B470B126E275403000CD21C05645DE726EBBA4C632630036 + BCF6E0531872DC46436E33CA0AAA210A40CE8A054051FB9BA4EDFC51FFF6BE35 + 7A187527C303E41FE82075BB56636054FECF06CB6BCFA07EF74B5103FC72F312 + 5965D4FA3BFE03A90FA2BBE81C9E5EBA5A1CC0FB47BEA11ABA2467694C007C99 + 48A6211D97FFFED9FFFA587E079E7D383D720FD8B4EF2469287E5911674099F9 + 143E7E7B6D5400ADE79AC8CE13DBFCDB998B5F446DF6110D7FFFB000A69D6B60 + 1D97FFD3E148000E979D787DF7140BEE5AF0BFF7B08DEF99FD4FC0C6D8302F69 + 1EBED7FD847BEF59181D809C43201C4097A5196C48A7DB899AAC4FB16CD14AEE + 7DFCC6A7CB28C7566DA126787F41808D15C78959F78A22CE80928F3AD058B62E + 24404BFB21680FA6F97F969C988CBAEC263F42A8C6979294221E6050013D606F + F5E78200EC103075EBC9FECE773984EAAC4618BFAE9CD2F842ED3F6D80CA966E + AAA18BD66BA70DC07EE723B00F950359F88D4F1440D69E26525BBA01B7153045 + A6CC701CCDEFE544FC2FC047602BB8F1C53D40304270E38B0A20304B4CDFF62D + D5D085EBD2B9ED774CEDD30660EBEC150B19B40F62435AAEE0872C1101D69734 + 92FAF21C454C93DB6368C5B10F36D2BD1D56017C0055A5D91C40D5891EAAA10B + D62EE1B62B4C6D5300625561E709CEF999A22A000F40CE2120DB4449259F012A + 008D99A2B36108500390B354001540260025AF18A102301B164CA8005202A82B + 461454EA8A1181002A800AA002CCED1523332DD9A7CBCF74C5C8AC078876C548 + AC4AF09198D2578C4801F02FF27AB9CC9481C6B60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004834944415478DAEDDB6D6C53 + 551807F07FF746307E90649FC444FDA01FC4A07E302E31282B0164C318441403 + 7B11D942184286033AB731C5290883A6B5EB5E7532363606660461D5A173464D + 0604512246C0C421BA0DB6AC5DBBDD766DC7B1B7A637976EED76DBDE73DB7A9E + A4C969D77B97E7B7739E9E9D9EA32284C017AF6B1A4875F91B18B038A174ECD1 + B5A0EDA33C951CF716E7AC62003104F0F4F39924D4FB89E37CCF69E1BE5300F4 + A5B918B6B994CE5F39006D710ECC9C5BE9FC83025CF8EE4C4843C3773D030806 + 70A8381B166E52E9FC9503503A7171500750A964F9D48958300006C000E40578 + BBAE874A117CECC154BCB9FC711E5C522254000EE62F961DA0CE741989090992 + 11E206A0B5E72AB889FFA6DB5210E206E0F31FFF80D3352919216E00BA2EF6C1 + E6700B0876CF6363C693989B9C1034316A000EB7BCB5F0E2B57E8CDB5D9211E2 + 06E0EA5FC3187338A720700E17F2320323C8FEEFB03F4091F1CB88275FB9F905 + FC33348A314FF2FE084EF724ACE31301116407D85ED34D0E6D528373DE8978E2 + E218B5BBC1715C4004B395435EC613B8776E0ADD25315A00E48EE72F3D418222 + DC1AB161D76B697401B619CF12DDE6A502C0CE9AAF22FECBF76F5A8E2B7DC338 + D57BDD3BE60385DBED82BE60195D802D7A13316C5D217B0FE0831F069DBDD7F0 + DB8DE1697F3EE1B0A36A5B06DD35411F80C54E6F45E8C6C0083A2FFC294C8A7C + 61B658950728ADEFA20691989484471E48159EFFDE37181040CA3CC0CC9949BF + F92616CC5FA89A711E50A03D4DAA0A5752ED01E2B83532865FFB86BC85F0874B + D761DCFE6258007CF2EA03CF60C8761B0DB9CD282BA8465403F061774EA27FC8 + 8A4FBFE80D1BA0A8FD2DD276FE88B7BD77B5167ACD0969003487001F1579CB84 + 76498D292C805F6E5E222BF56A6FC57F28F56174179DC3B34B5649035032C201 + F0E4443275E9B8FCF7CFDEE747F33BF0DCA3E933D780FCFD1DA46EE72A0C8C2A + FFDD6079ED19D4EF7A392480D6734D64C7F1ADDE76E6C297509B7D5825BE7ED6 + 001F1CFE866AD225394B660D60735889DB33A39C77CFBCBBDEC317BE45FB9E82 + 85B3604ED21C7CAFF909F7DF377F76001BF79E200DC5AF44450F28339EC227EF + AC9916A0CBD40C3E49BBD38E9AACCFB074C10AE17DE2C2A7C928C71675A1CAFF + FAA000861DAB611E57FEDBE160002DED07A13E90E67D2D39311975D94D5E84E9 + 0A5F4A524AE8004A0E816000FC1030746BC9BECEF70484EAAC46E8BFAE9C52F8 + A6BB3E20C0868A63C4A879352A7A40C9C71D682C5B1BB4088A11F825455F2EE2 + C21712C06014D4803DD5276704F047E0C3BFF0850550D9D24D35E9A2756AC900 + FE08FE854F1240D6EE26525BBA1EB7A3608B4C99EE189ADFCF99F53CE0EC1513 + 19B40E627D5A6EC025F6B80108376604F0ED12D3B67D4B35E9C2B5E942FB5D43 + 3B7D8075258DA4BE3C272AB6C9EDD6B5E2E8871BE82E8931000F405569B60050 + 75BC876AD2056B160BED0A431B7D00B6539401DC0DA0E410506C9F602CF40006 + 400B800D010583013000850062E1C4083B30C100D889117662441680FFFD7679 + 06102300E1060388D51323918A804B62D17E62440E807F01F377B6CC9C3DCD41 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000047F4944415478DAEDDB7B6C53 + 551C07F06FF72218FF90647F8989FA87FE2106F50FE312A3B21240368C414431 + B087C816C210321CD0B98D294E411834AD5DF7D4C9DCD81898111EAB0E9D336A + 322088123102260ED16DB065EDDAEDB66B3B8EBDD7F4E65A7ABBDB76F7E1767E + 49D3DBC7BDEDEFD3737E3D3D3D57470841305E333490EAF2D731E0F042EDD86D + 6A41DB87793A398E2DCC591709A0EA688FA24917AC5EA42D0035231CC093CF65 + 92588F278C733DA7F8E35280FF23C0F96F4FC7D43582FB47043097E662D8E553 + 3B7FF5008CC539B0337EB5F3A700AA011C2CCE868399543B7FF500D44E5C188A + 03E874B28C3BA62D280005A000F202BC55D7A348117CE4FE54BCB1EC51163CAA + 4414013890BF4876803ADB25242624448D3063005A7BAE8099F877B81D0DC28C + 01F8FC87DFE1F54D468D306300BA2EF4C1E5F1F308EEC06543C6E3989B9C1031 + 31D97F0E07013C7E796BE185ABFD1877FBA24698310057FE1CC698C77B0702E3 + F1212F73EA96106F884E8985021459BF98F617AFDCF43CFE1E1AC55820F95004 + AF7F12CEF109D9114401B6D57493831BF560BCB7E57A6D2E46DD7E300C238A60 + 7732C8CB780C77CF4D517652542900723BF0494F90880837475CD8F96A9AB273 + 825BAD678869D3121E6047CD97D39EFCBE8DCB70B96F18277AAF717D5E2CFC7E + 1FCC054B9505D86CB611CB96E5B2B70036D86ED0D97B15BF5E1F0EFBF884C78D + AAAD1971CF07D8193BE9B7DFC082F90B75538E0382000EB7723342D70746D079 + FE0F7E50C4BF7187336E003679FDFEA730E4BA8586DC66941554232A80D2FA2E + C520129392F0D07DA9FCEDDFFA06E306286A7F93B49DFB8CDBDEB3CA08B3E158 + 648002E3295255B842D116208C9B2363F8A56F882B84DF5FBC06EBB6176206F8 + F9C645B2C2ACE72AFE03A90FA2BBE82C9E5EBC52DB006CB8BD93E81F72E29393 + BD310304722299A6745CFAEB27EEF6E1FC0E3CFB70FAD435201440C92EC04645 + DE527EBBA4C6163340EBD926B2FDE8166E3B73E18BA8CD3EA413EEAFE9162015 + C0E571127F603C31EFAE79FF790E5BF89ED9FB041C8C037392E6E03BC38FB8F7 + 9EF9D200F2F77590BA1D2B3130AAFE7F83E5B5A751BFF3A5B0005DB666B049BA + BD6ED4647D8A250B96F3CF13163E43463936EB0B75A1FB4B0678FFD0D78A265D + 92B35812404BFB01E8F7A771F7252726A32EBB89430857F8529252A4036CD873 + 8C3414BFAC891650663D818FDF5E2DDA052CDD46B2B7F35D1EA13AAB11E6AF2A + EF287CE1F68F0860D9BE0AF671F5FF1D9E0A80BD1622B0134AC15C84852F2E00 + 35BB801480500436420B5F5400EB2B8E10ABE1154DB480928F3AD058B646D2D7 + A01021B4F0C50430A8811AB0BBFAB8640036CE5CB69141E720D6A5E58A4EB046 + 0D50D9D2AD68D2456BF59200E20D5180AC5D4DA4B6741D6E6960894C99E9089A + DFCBA100721C5B744A2C08105C25666CFB46D1A40BD7A4F3DBEF58DA9507585B + D248EACB7334B14C6E97A915873F584F0184F7C95E035880AAD26C4DAC15AEB0 + B4290F40578A52006D2F97A72D8002D02E405B0005A000F48C117AC20405A067 + 8CD0334666F772F97883028801CCC698F500FF005B47BCCCA2019F0700000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004854944415478DAEDDB6D6C53 + 551807F07FF746307E90649FC444FDA01FC4A07E302E31282B0164C318441403 + 7B11D942184286033AB731C5290883A6B5EB5E7532363606660461D5A173464D + 0604512246C0C421BA0DB6AC5DBBDD766DC7B1F79ADE5CBBB6EBDB3DB763E749 + 9A9DDBF5B6797E3DE7E9BDE79EAB2284C01BAF6B1A4875F91B18B03885EDAAE3 + 3DA019056B168BED3DBA16B47D94A792E373A439AB820128190CC00FC0D3CF67 + 9248DF4F1AE77B4E8BEFAB9A4943803A8092110CE0C27767221A1ADEFD190003 + 0802A02FCDC5B0CDA574FECA01688B7360E6DC4AE7CF00140338549C0D0B37A9 + 74FECA01289DB834A803A854B21C79C62C1800036000F202BC5DD743A5083EF6 + 602ADE5CFE380F1E562254000EE62F961DA0CE74198909096123DC3500AD3D57 + C14DFC77B81D0E82ECA7C3B4003EFFF10F385D936123DC35005D17FB6073B845 + 04BBE7B131E349CC4D4EA05285034E8979011C6E796BE1C56BFD18B7BB144350 + 1CE0EA5FC3187338A720700E17F232E5470819A0C8F865CC3FBC72F30BF86768 + 14639EE47D119CEE4958C7270222C85E03B6D77493439BD4E09C77629EB83446 + ED6E701C1710C16CE59097F104EE9D9B427752941600B9E3F9A6274850845B23 + 36EC7A2D2DEAB341336726FDE69B58307FA16ADAE3806DC6B344B779A908B0B3 + E6AB9827BF7FD3725CE91BC6A9DEEBC2980F146EB70BFA82655101F0C9AB0F3C + 8321DB6D34E436A3ACA01A4101B6E84DC4B07585EC3D800F7E1874F65EC36F37 + 86FDFE7FC26147D5B68CA8008ADADF226DE78F08EDBDABB5D06B4E840660B1D3 + 9B11BA313082CE0B7F8A0745DE305BAC5101FC72F31259A9570B15FFA1D487D1 + 5D740ECF2E59151E40697D173588C4A4243CF240AAB8FD7BDF60C4009E9C48A6 + 2E1D97FFFE59D83E9ADF81E71E4D9FBE0614684F93AAC295547B80346E8D8CE1 + D7BE21A110FE70E93A8CDB5F8C08A0F55C13D9717CABD0CE5CF8126AB30FABA4 + FBC72D001F76E724FA87ACF8F48BDEA000368795B83DBF26F3EE99F7BFD7F085 + 6FD1BEA760E12C98933407DF6B7EC2FDF7CD8F0C80E610E0A3226F99D82EA931 + 0504E83235834FD2EEB4A326EB332C5DB0427C9DB4F06932CAB1455DA8F2DD3F + AE7B4028002DED07A13E90263C979C988CBAEC2601C15FE14B494A091D207F7F + 07A9DBB90A03A3CA5F1B2CAF3D83FA5D2F071C02866E2DD9D7F99E88509DD508 + FDD795530A9FBFFD4306F8E0F03754932EC959123200FF578AC04F2778739116 + BEB00036EE3D411A8A5F898B1E50663C854FDE5933EDAF8014810FDFC2173680 + 61C76A98C795BF3A1C2A802F826FE18B0A40C921100E001F67AF98C8A07510EB + D372034EAF4D0BB0A1E218316A5E8D8B1E50F271071ACBD6D23D1DF6020CC641 + 0DD8537D527980CA966EAA4917AD5307058855049C12CBDADD446A4BD7E3761C + 2C9129D31D43F3FB390C401100EF2A316DDBB754932E5C9B2EB6DF35B44F0190 + BD06AC2B6924F5E53971B14C6EB7AE15473FDCC000FC01C876719407A82ACD8E + 8BB5C2158636FA006CA528039819CBE5590F60006C08B01EC00018804C00EC8E + 91D97EC3C4AC079809778C441B33FE8E11D9006663CC7A807F018AABD3CCBFE9 + A1B40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000047A4944415478DAEDDB7B6C53 + 551C07F06FF72218FE90647F8989FA87FC0106F50FE31283B21240368C414431 + B087C816C210321CD0B18D014E411834AD5DF7D4C9D8D8189811845587CE1935 + 19104489105E89E3B50DB6AC5DBBDD767DECB85BE9CDB5AC1D5D7BCF69CBFD26 + 4B6EB7DE9BFC3E3BE79773DB7315841078F281AA8694177F881E931DACB34BD3 + 80A62FB214525C5B5CB34206F0035076B4836AD139CBE7F90578E58D5412E835 + C7CBD98E93C275236A04C8000F00CEFD726A5253C373FE230384EB14A006C032 + 32800CC008405B98897E8B8375FDEC00D4F91930724ED6F5CB00CC000EE4A7C3 + C4B958D7CF0E8075E1E25007502824B9F7085964001940069016E093AA0E2A4D + 70D63389F868D10B3C784085487E3BCC03ECCF9E27394095E122626362024688 + 1A80C68EABE046FE5B6E4F6624041B9F1F89D102F8F6F71BB03B5CCC109803B4 + 9DEF82C5E61410AC633F6B525EC2D4F8182A081302D89CD2F6C2F3D7BA316C75 + 048C40AD07480D70F5563F866CF68710389B0359A9BE11A803E4E9BF0F79F1A5 + EBDEC4DDBE410C8D15EF8D6077BA601E1EF18920F93A6053453B39B05609CE3E + 1AF2C2C519B43AC1719C4F04A3994356CA8B98363581EECD102D00323AF69F1E + 217E11EE0D58B0F5FD24BA001BF5A78966DD0201604BC50F212F7EEFDA45B8D4 + D58F139DD7DD73DE579C4E07B4390BE902ACD71A886EC362C947001F7E1AB476 + 5EC3E59BFDE3FE7DC46645D9C6143600262BBD4F846EF60CA0F5DC3FC2A2C813 + A3C9CC1EA0B0BA8D1A446C5C1C9E7F3A51787DA5AB973E408EFA2429CB5D4275 + 0488736F60087F77F5B91BE16F17AE43BFE9ADC70B808FD5EE42779F195F7FD7 + C91E80E614E05392B550382EA830B00760192600D97B5B48D596A5E81964FFDD + 6071E529546F7D872DC067077FA25A7441C67CB6006B761F2335F9EF86C50828 + D29FC057DB96D307D06D5E06E330FB6F87FD01049B47066039059800AC2E3942 + F4AAF7C26204147CD982DAA21574F7097A007AC3A007EC2A3FCE1EA0B4A19D6A + D1792B956C01D2B6D791CAC255B81F065B648A344750FF6906DD1E20033C00F0 + EC125337FD4CB5E8DC15C9C2F10E5DB34F8040D60146CE48BA8DB7317BC61CC5 + 84EB809505B5A4BA38232CB6C96DD734E2F0E7AB8302E08B57EE7B157D96FBA8 + C9AC47514E391E2B80BCE68F49D3D943EEE3DDCBD4D0AA8E4D0C5056981E167B + 854B744D4101FC75FB0259A255BA3BFEB389CFA13DEF0C5E9BBFD43F40B4EC14 + 1DAB89A46A9271F1CE9FEED787B35BF0FACCE4897B40B400349EA9239B8F6E70 + 1FA7CE791B95E90715E2F3A362BBBCC56626CE5117A63F31FD7FEFE11BDFDC3D + 2FC3C49930256E0A7E55FD81A79E9C31390096F107D066A8075FA4D56E4545DA + 3758307BB1F03E71E353A51463BD3257E17D7EC4033434EF87725F92FB77F1B1 + F1A84AAF73238CD7F812E212260F10CE5340D7AE267B5A770A08E569B5D0FE58 + FA50E31BEFFC881F019E262846E077D8786A1137BEA806F046E0E3DDF8A21EC0 + 1BC1BBF1050C10A94F8C9CBE6420BDE65EAC4ACAF4B9E32C6A1E9808363240A4 + 3E3112AAF87D789A75E1E2D000F81718F8EDCC434B95DD0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'SetProperties_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004884944415478DAEDDB7B4C53 + 571C07F06F791997FD3113FE9A26DBFED8FE988BDBFE5846B2CC498D3A41B338 + E7E6A23C74428C380D0EB50C90CDE1748A36ED4A796E4C044174C1F8A0131D63 + D996A0C6C78C9AA94B86730314424B0BB7A50FCEB85D7A732DB43CDA7BCEA5ED + 3721DC42EF0DBF0FE7FC7A7B7BAE8210024FD6E45593CAC2347499EC609D5D9A + 7A1CFD72BD428A638B6B56780394E4A70A0025C7DBA8169DB56A81B05DA46BA0 + 0FF0A1AA8A9416AE93C508D8ADA943C357198F01BCF6563299EAF1C4B9D47646 + 386E04C01F00CB29E00FE0F2CF67A734353CFB4FFB111001A0051099020C1301 + 88003002D0E6A7A3D7E2605D3F3B00756E1A8C9C9375FD1100660087725361E2 + 5CACEB6707C0BA7071A803281492BCFB0C5A2200110089DF0E873DC027156D54 + 9AE08BCFC4E3A3252FF1E04CC47D5E12E3010E662E90FC0FA830DC4074541433 + 04E600F56D77C00DFD7FBACD028139C0F7BFFD09BBC33569042A3D800640CB95 + 0E586C4E01C13AF2B521E915CC8C8DF28B400DC0E694B6175EB9DB8941AB63D2 + 08929F07D002B8F3772F066CF651089CCD818C64DF08D40172F43F04BDF8E24D + 6FE3DF9E7E0C8C14EF8D6077BA601E1CF2892039C0B6B2567268A3129C7D38E8 + 858BD36F7582E3389F084633878CA497F1E4CC38BA6F86680190E191FFF410F1 + 8BF0B0CF829D1F24D005D8AA3F4F349B1609003BCACE05BDF8FD1B97E056472F + 4EB5DF73CF795F713A1DD0662DA60BB0596B20BA2D4B251F017CF869D0DC7E17 + B7EFF78EF9FB219B15255B93D80098ACF4AE08DDEFEA43F3E5BF8493224F8C26 + 337B80FCCA166A10D13131787E4EBCF0F88F8E6EFA0059EA33A4247B19D51120 + CEC3BE01DCECE87137C25FAFDD837EDBF2F002E063B5BBD0D963C6B7A7DBD903 + D09C027C8A32160BDB796506F6002CC30420737F13A9D8B1025DFDEC3F1B2C2C + 3F8BCA9DEFB205D873F847AA45E7A52D9C1040A0F109B061EF095295FB9E2C46 + 4081FE14BEF974157D00DDF695300EB2FF74782C8060C5E725316F0096538009 + C0FAA26344AF7A5F162320EFEB265417AC6603D02D831EB0BBF4E42800C97B80 + 3740715D2BD5A273D628D902A4ECAA21E5F96BF148064B640A34C750FB455AC0 + E70146CE483A8D0F3077F63CC5B8E701A106C017AF3CF03A7A2C8F50955E8B82 + AC524C08C0B34A4CDDF013D5A2B357270ADB9FE91A0306C869FC98345C3AE2DE + DEBB520DADEA847F00B9DF30311980DF1F5C23CBB44A77C77F36FE39B4E65CC4 + 1B0B578407C0484D245993881BFF5C773F3E9AD984F92F248EDF03E47EC7C844 + 01EA2FD690EDC7B7B8B793E7BD83F2D4C30AF1FE21B152D4623313E7B00BB39E + 98F5D873F8C6F7E6BE5761E24C98113303BFA8AEE2E9A7668716408BA1167C91 + 56BB156529DF61D1DCA5C2F3C48D4F955488CDCA6C85F7FED37EB97C5DE34128 + 0F24B87F161B1D8B8AD41A37C2588D2F2E266EEA002C33DE14D0B5AAC9BEE6CF + 0584D2946A682F148F6A7C63ED1F1200FC773102BFBEC2538BB8F1050420D729 + 207E151023F0F16E7C0101B0CC64D60A8B11BC1B5F5800F0397FCB40BACDDD58 + 9B90EE73BD51C800049A697FC788A40072BE612258F17BF374B801FC07938AF6 + CC7027414A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000048B4944415478DAEDDB7D4C13 + 671C07F05F79332EFE3113FE9A4BD43FB63F7471FA871989994A8D3A41B3A8F3 + 2DCA8B0AC4086A50D43240D431758A36ADA5BC2A8A208818165FE80445CC6682 + 1A5F66E63275C9706EBC879616AEA52F3C72677A394BAFB4D27B9EA3DC3721B9 + 2BBD96DF87E7F9E57ABD4786100267620E94A1C2CC4DD066B032FBCAAA3B8033 + A9EB23D9ED839A6A28FF214E26C4FB706B967177366694A2E2EC381680640EA8 + 2AE1E2912D1200F7B1B90BA2D187BE1E370F9AAEB3AF3B0C202F339605C8BBDC + 84B5E8E4350BD9ED1C4D157E800D8A12949FBD591423E0B0AA02AA7E4A740BF0 + F0EE8D0F9A1ACEE325006F01484E015100908C04200600690A108C0420011002 + 5067C643B7C946BA7E7200CAF438D05376D2F54B00C4004EA5C782817290AE9F + 1C00E9C2B9C10E20930972FDC16F11FCE3B0042072007F85F792D8B807D853D4 + 84A509CE981A0E5B977E41831311F708703269A1E07F4091EE19040705F98C20 + 780FC00550D9F402A88177A7DBBE20040CC0957B7F83D5E6F01941F0F3005C00 + F58F5AC064B1B308E6A19F84A8D9303134C86361D8002C76617BE1A397ADD06F + B6F98C1030002FFEED863E8B75180265B14162343F02768034ED2F7E2F3E77FB + 37F07F572FF40D15EF8A60B53BC0D83FC08B2038C0EE8246746A9B1C28EBA0DF + 0BE7A6D76C078AA27811F4460A12A3BE844913C3F07E18C205800687FED303C8 + 2342478F09F6AF8BC00BB04BDB8054DB17B300FB0A6EFABDF8E3DB96C2F3966E + B8DAFC8A99F37CB1DB6DA04E5E82172045AD439A9DCB041F0174E86950D7FC12 + FE7CDDEDF6F7031633E4ED8A22036030E3BB22F4BAAD07EA1EFEC39E1439A337 + 18C9036416D76383080E0981CF3E0D67F7FF6A69C70F90ACBC8EF25297631D01 + DC74F4F4C11F2D5D4C23FCEDC92BD0EE5E31BE00E898AD0E68ED32C2D96BCDE4 + 01704E013A39894BD8ED8C021D790092F10430DAF002241DAF4545FB56425B2F + F9EF06B30B6F40F1FE5564017E3C7F1B6BD119718B3C02F82BBC97C4128ED6A0 + 92F4EF443102B2B457E1CCF76BF00368F6AE067D3FF96F87450140720AB80310 + BC076CC9B984B48AB5A2180119A76BA1346B3D19807611F480C3F93FF302F872 + 1EA0A7F4A855FF06664E99251BF13CC01520B7A2116BD1691BE57E05A08B979F + F80ABA4C9D50125F0E59C9F9E011C0B95EA05304B7C864A92E0D5B2FE02B405A + F50E54F5E002B37D74B512D48A9AF103F0FB9B2768B95ACE74FC69E1D3A131ED + 3ECC5BB4D23B00B1AE18F11660A82614AD8A8467FF3D65F62F26D5C2FCCF2347 + EE016365C1C4480095F7CBD0DECB3B99EDE859DF4261EC7919F7F8800030598C + C83EE880C91F4D7EEF3974E3FBFAD81C305006981032017E553C864F3E9EE23D + C058583152AF2B07BA48B3D50C0531E760F1CC65ECF3B88D4F11950D29F25499 + EBF163FE4ED18AEA93203F11C13C161A1C0A45B1650C82BBC6171612167800F4 + 14D0342AD1B1BA432C427E4C29A86FE50E6B7CEE8E0F98DBE5B908F4B7EBCE5A + B88D6F540024E3ED8D925C043AAE8D2FE0015C115C1BDFA800C43E05B86978AE + 43EDC676D81411CF7BB749C08C80D1460218AB00FE0AEF2531B1AF181102E02D + 671FF9CC480FC4310000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000047F4944415478DAEDDB794C13 + 591C07F05FB98C9BFD634DF84B4D74FF58FF58371E7F1849361ED4A82B688CB7 + 4639568518F1088A5A04445DD6136D5A4B39154510440DC6832A2A62D40435EA + 6AD478258BEB0A28849616A6A5074F660C93B1740A63DBF7A675BE09C91BE84C + F2FBF0DE2FD339640821E84DCC8E12949FBE023E996C403A19AAD350FA579CCC + 17C7E6D62C93005C003419ACCCB6B2E226D6A2939746B2E39D9ACA3E0013A644 + 23C1077591FB7597D8E37E05B03CAD181566C6B10024B343550EA7F6AC94005C + 013CB875F99B9646EFFE6E0172D26359809C3375588B4E5A34951D67692AF003 + 2C5314A1DCCC3F45310376ABCAA0627F8204401480E412100500C94800620090 + 9600C1480012002100757A3CB48AE0DB203100656A1CE8293BE9FA2500620087 + 5363C1403948D7EF16C0D3B805205D3837D80164329F5C81125D782F89490012 + 80B8017CDE033617D4616982BF8E088755337FA3C105896301389438D5E70005 + BAA7101C142418C1E7E701B800CAEB5E01D5F5E5745B0842C0009CBBFB16AC36 + 8760848001A879D800268B9D4530F7FCAC8E1A07834383DC16860DC062F76D2F + 7CF8BA113ACD36C1080103F0EABF56E8B058FB2050161B2444F323600748D15E + F17AF1D96BFF800F2DEDD0D153BC3382D5EE006367172F82CF0136E5D5A2C36B + E44059BBBD5E3837ED663B5014C58BA03752901035167E1C1C86F7EB302E00D4 + DDF39FEE426E113EB69960DB9208BC001BB5D7906AED7416606BDE55AF177F60 + CD4C78DED00A17EADF306B9E2F76BB0DD44933F002AC53EB9066C32C9FCF003A + F432A8AE7F0D2FDEB5BAFC7B97C50C391BA3C80018CCF8AE08BD6B6A83EA07FF + B22745BDD11B8CE401D20B6BB041048784C02FC3C3D9ED970DCDF80192949750 + 4EF26CAC33809B8F6D1DF0ACA1856984771EBF01EDA639DF17001DB3D5018D2D + 463876B19E17C0D30C1800E712A0939530831DA7E5E9C803908C2B006F85F792 + 58E2812A54B0751E34B593BF3798997F190AB7CD270BF0F7891B588B4E8B9B46 + 1660F5DEB3A82875A128664086F6021CDDBE086F0FA001345B1680BE93FCDD61 + 5100905C02EE00849C07E8293D6AD4BF87D1C3C6C8FA3D0F5899751A69158B45 + 3103D28E544171C6528F00E8E2E50727428BE91314C5974246522E0C08A05904 + 3D6077EE798F01522AD7A38AFB2799F1DE054A502BCE0A03C82EABC55A74CA72 + B9D7009EBC7F8C66ABE54CC71F19FE33D4A6DC83DFA7CD730F20F61726060AD0 + 53138A5645C2D3FFFF61B64F2556C1E45191FDF780400128BF5782B69CD9C08C + A3C7CC85FCD81332EEFEFD0288FD8D111AC06431227BB70386FC30E4ABCFD08D + 6FD2BEF160A00C30286410DC563C82A13F0D1B1880BFBC3051A32B05BA48B3D5 + 0C7931C761FAE859ECE7B88D4F119509EBE4C932E7FDFD1EA0ACF210C80F4630 + BF0B0D0E8582D81206C155E30B0B091306E02F6F8C686A95685FF52E162137A6 + 18D4D7B3FB343E57FB07CC93A25C04FADE6A6F2DDCC617D000CE08749C1B9F47 + 00FEF2B83C17C1B9F179044032429F14BDF65C879A8DCDB022229EF759838001 + F0347EBF04B001908C2B006F85F792D8F708F0193E96F9CC9726324200000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004954944415478DAEDDB7D6C13 + 651C07F06FF74630FE21C9FE1213F50FFD430CEA1FC625466425806C18838862 + 602F225B08E325C3019DDB98E2148441D3DA75AF3A191B1B0333C3CBAA43E68C + 9A0C08A2448C808943741B6C59BB76BB767DD9E3AEA497A3EB9595B5CF73EDEE + 9B2CBB6EBD5B7E9F3DCF2FD7BB7B548410F8B2AEEC28316ADE44FFB013ACB3BB + F26BD497AC5645E2D8E29A55C100CA9B3AA9165DB046CD1620635703A92E5E8B + DB3617D5C203A54477148D1F65DD05F0FCCBE9E47E8F27CEF9AE53C271158040 + 007D963B5340DBF23DD5A2F357A70ADB1F185A25012EFC70FABEA6866F7F4980 + 3545F5A4B6344B0060995DBA661CF9649D02401DA0A2385300A838D645B5E8BC + 550B85ED32430B7D80B73575A4B2F41D598C80DDBA26B47C9AA3003005603905 + 6401C0320A801C009429C0300A8002C008405F9C8D41197C1A6406A02DCC8299 + 73B3AE3F28C074A3000403385898090BE7615D7F40807045F292180FC0BA7071 + A803A85411F97BB24BD40244BC072800510210B1F380F76ABAA834C1A71E4DC6 + BB4B9FE6C1432A840AC081DC851107A8315D467C5C5CC8083103D0DC7515DCD8 + 9DD3ED50106206E0AB9FFF82D3E509192166003A2EF6C0E6700B08F689AFF569 + CF6276625CD0C2A80138DC91ED8517AFF562D4EE0A19216600AEFE3388118773 + 1202E77021275D1A813A4081F19BB0175FBEF115FC37308C9189E2FD119C6E0F + ACA36392081107D856D5490E6E5083738E87BD707186ED6E701C278960B672C8 + 497B060FCE4EA27B41841600199FF84F8F91A008B7866CD8F9560A5D80ADC633 + 44B771B100B0A3EADBB017BF6FC3525CE919C489EEEBDE392F15B7DB057DDE12 + BA009BF42662D8B22CE223800F3F0DDABBAFE18F1B83017F3FE6B0A3626B1A1B + 008B9DDE15A11B7D4368BFF0B77052E48BD962650F505CDB410D223E21014F3C + 922CBCFEB3A75F1260BA9104C8D39E2215F9CBA98E00716E0D8DE0F79E016F23 + FCE9D27518B7BD3AB300F8D89D1EF40E58F1C5C9EE4900E18AE425317F009A53 + 804F59CE1261BBA8CAC41E80659800E4EE6B23353B56A04F06CF0A97569F46ED + CED7E9F6007F808F0F9DA55A7451D622B600EBF71C2775856FC8620494184FE0 + F3F7574DFB3CC0CC9949AFF926E6CD9DAFBAE779000F60D8BE12E651F67787C3 + 01C017AFDEFF02066CB75197DD8892BC4A8404C0720A8403A0A0753369397FD8 + BBBD67A5167ACDF1E000BEF502721801459FB54D5A2F100AC06F372F91E57AB5 + B7E33F96FC383A0BCEE1C5452BA60620D71523530598A889A4EB5271F9DF5FBD + AF8FE4B661C193A9F7EE01725F31325580E6730D64FBB12DDEEDF4F9AFA13AF3 + 904ABC7FD42F98E0016C0E2B718F7B30E7813977BD876F7C2FED7D0E16CE8259 + 09B3F0A3E6173CFCD0DCD802E83035822FD2EEB4A32AE34B2C9EB74C789FB8F1 + 69D24AB1499DAFF2DF3FEA578C34B51E807A7F8AF76789F189A8C96CF022046A + 7C490949530788A60513864E2DD9DBFEA1805099510FFD77E5931A5FA0FD6302 + 80FF2E46E0EFACF96A1137BE9001A26DC58818818F7FE30B09205A9F141523F8 + 37BE1901C0E7CC1513E9B7F6636D4AB6E49DE698795C7EBA89FA11306301C295 + A04F8ACA790A4402E07F0DD4FCCC5BAC808D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004BE4944415478DAEDDB6D4C13 + 671C00F0FFF1665CFCA0099FE612F5C3F6418DDB3E2C2331DBA4C6377059D4B9 + B9282F2A1023BE04452D023295CD37B46957CAEBC644DE441616A774A222CB34 + 418D739AB94C5D22EA0628849616AEA52F3CF6CE7039DB5EEDCBDD3D77A5FF84 + F05CE995FC7FBDE7DFEB93FF432084603C320EB520EDAE556018B1D3C7DF9CBC + 0C62467EDA42665CA83B0BDFEF5D4D08F17FD83913EC830DC5A7914EF9050380 + 33F2BF6B859AC2357800FA866CB8F38703653F7B007CF049320AF6F5D871A3F3 + 1CF3BA3E014AEA3B444D3A77AD022F40CABE5A5451B00E9E9BF14F8142F569A8 + 3B98E615E0E66FE7FD9E1A06D2807A0C4F61CEF479C4F8F91306804A5E71EC43 + E8373F87EAF43A28CC2E03BF007A8D2FA780AAE98AA849E7AC4964C65F6B9B43 + 06C86DDE8A9A6E9CA2C78756A940A36CF10DB036BF065515A5310038639FBA11 + 1ABEDD1034C09DA7B7D1728D82AEF833E3674147EE7598BF70C5C40070E58492 + D58970F7BF3FE9E386AC56F8F89DC4D7D7000AA0B4209501283DD3296AD2D9AB + 1730E3626D53D0008DD76BD1AE33DBE871F2BCCFA022F524C13E9F13E02B6535 + 2A2B5A2F892BE080BA1E9A8E64720298AD26E41873C2B437A6BDF21CAAF07D74 + F87D309246981433097E57FE016F4E9D1E5E00EDFA3AA092B4D82C509EF2232C + 9AB38C791EBBF029938A608B2287703FDF6F009C53C017407DF371501C4BA01F + 8B8D8E85CAD45A1AC15BE18B8B890B1E0067BC6E0A683B54E870DB7E06A12CA5 + 0634974A3C0A9FB7F3C30280FACD46200882F992C32E7C210148750AB03F05D8 + 0854B817BE90007086BF00EE08EE856F42005071F19E1EF599FA605D423A351D + C21B20D4F009A029488701097C1BC406A0CA4B73DD4D3970E7EF1580AFE05C12 + 8B00B8004EE4A5BAEEA39DB8F3C707803B7176885E03383E3D24131180201645 + BD9D1F0188007000ECACEC14A508CE9E110F1B97CCE5BC65C50A703C6B81E000 + 95FABB101D15153042D8003476DE0772F4E5ED7620086103F0D3B57FC1667706 + 8C103600EDB7BAC16C75300816D74F46D27B303936CA6762A201581DC2D6C25B + 0F7A60C4620F18216C00EE3F198061ABCD0381B4DA2133991B4174805CDDAFBC + 275FB27929FCDF3F04C3AEE4DD116C0E2798464639110407D851DE814E6C5200 + 691BE33D71760C591C4092242782C1444266D2BB3065729CDF4B62B2024063AE + 777A14F944783668863D5F26880BB05D7711A9372F620076975FE03DF9A39B96 + C0BDEE0138DBF5909EF35CE170D84193BD585C802D1A3DD26E5B26F815400535 + 0DDABA1EC0DF8F07BCFE7DD46A81D2ED49E2AE078C03182DE2AD083DEE1D84B6 + 9B8F989BA2F130184DF8010AAADA4583888E8981B7DF8A678EFFE9EEF300E02B + 3897C4B255E75069CE7251AF00763C1B1C86BFBAFBE94278F5F643D0EDF87462 + 015061B139A1A7DF043FFCD2851F40CC29404571E662669C5FAEF70010BC0648 + E10AC00A9075B41555EE5E01BD12E8152EAA380F557B568ADB29EA0E80B35D9E + 0F80803B45A9FD02D5799F4BE20AF0B65F40F04E51F70D13720608AA5354EA3B + 4604EF1495FA8E11C13B45E5B26344B04E51B9EC1811AC53542E1B2604EB1495 + 0B80609DA272DB31C27BA7A81C374CF0DA292A47007784903A45E5BC6324D229 + 1A404400E4DA2ECF57F8EC1394F2152004C00BFA6183DB22DF012C0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004B24944415478DAEDDB6F4C13 + 671800F0E7F867347E98099FA689DB07FDA08B9B1FCC481637A951276816E774 + 1AE5CF9C10234E83A29601A28EA953B4692DE5AFA20882E882714A1D3AC46C4B + 50A36E662E53970CE70414424B0BD7D23FBCEBD57039CF5E69E9DDFBDED53E49 + C315EE2E797EDCFBE47D2FCF4B21846024D6EF3F87AA723F83AE7E07908E02C3 + 0538F6F50A4A8A7B7373A6F800FAEDCBC134E8249DBF3C00BE3DF913D6A4F3D2 + E6FB0598F351320AFAA63EE266DB45F6BE2F01AC2B3A830CEA95B27802F28E36 + 4175C12A3200DD32A8017B4BCF0B02DCBA7E29E0A161A24DA8D3F404664E9E45 + 8D5C1F3040715D2BD6A473D6A844056092571D7A1F7AACCFA12ABD160AB24AC1 + 2F40CAAE1A549EBF169E5BC90F8102ED19A8FD262D24809CC6AF50C3CD53DEE3 + FDCB35A0539F7B7D007E7F72172DD1A9BC15FFADF8B7A135E7067C307F596000 + 5DE6174340D3700D6BD2D9AB12D9E3DDFAC63103787242C9DA44B8F7DF6FDEEF + A7339BE0C3E989A3D7803579D5A8B2308D052019BBB4F5707ADFBA3101D4DFA8 + 41DBCF6EF61E27CFFA04CA534F52DCEBC302C06AB720D7B01B264D98F4D2394C + E19B7B60369869338C8B19073FABEFC09B6F4C0E1CA0243F95052839DB8635E9 + AC15F3D8E3227D8320408BB11698246D0E1B94A59C80053317B3E7710B9F3AA9 + 1036A9B229FEF58200ABD555A8B4F00B593C017BB575D0F05D864F80BAC6C3A0 + 3A94E0FD5D6C742C54A4D678117C15BEB898B8F003608680BE55830E34EF6111 + 4A53AA4177B5F895C2E7EBFA8001480E81D100989F5C048AA2D8450EB7F08504 + 40320201E02330C12F7C610FC047E017BE9000E43E04B871E5BE11755BBA616D + 423A331CC4012019FE00428D08805201C40AC157620C802E3F1D7A65B01A2406 + A0C94DF3CCA75DA4F38F0010AB014772533D2B2937E9FCC901904E9C1BC1CC03 + 028951E70102F307D94404200210019016605B451B962238636A3C7CB9E81DC1 + 450B5180C399F32407A830DE83E8A8A8A011C206A0BEED01D0432FA6DBC12084 + 0DC0F7BFFE0D0EA73B6884B00168B9DD0156BB8B45B0793EEB93DE83F1B1517E + 13C3066077495B0B6F3FEC84419B336884B00178F06F2F0CD81DAF20D0762764 + 240B236007C8315C163DF9E28D1FC3D39E7E18F024CF4770B8DC60191C124490 + 1C606B592B3AB24105B46358F4C4B9D16F73014DD38208260B0D1949EFC2C4F1 + 71781743B800D0B0E73F3D84FC223CEBB3C2CECF13F02E87B718AE20EDC6052C + C08EB21F454FFEE0864570BFA3172EB43FF28E79A170B99CA0CB5A88176093CE + 88F49B174BFE0430C10C83E6F687F0E7E35E9F7F1FB2DBA0644B12DE57622300 + 661BBE37428FBBFAA0F9D63FECA468244C660B7980FCCA166C10D13131306D4A + 3CFBFDAF8E6EFC00599A8BA8247B09D627801BCFFA06E08F8E1E6F21FCE5EE23 + 306C5D8AB706900660C2E67043678F058EFFD04E1E00E71060A22863217B9C57 + 66140490AC53540E4F80980041778A661E6C42153B96C962BF4061F925A8DCF9 + 29DE4E513E00C976F95001C6D4292AF71D2392778ACA7DC788E49DA24AD93122 + 59A7A852768C48D629AA941D2392758A2A69C788249DA24ADB30217AA7A8D200 + F8084C84D429AAD41D23A2758A2A69C304FF7C513A459502106A287EC7886400 + 914ED1D710E07FA3C580DB6AB4B0B10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004B84944415478DAEDDB7D4C13 + 671800F0E7F8322EFB4313FE9A266E7FE81F6ADCF6C73292654E6AD4092EC6AF + CD45F9981362C46970A84540D4313FD1A65D299F1B938120BA60FCA0139561DC + 12D43837A3C68F25E2544021B4B4702DFDE0B557C3E52CBDDAA377EF7BD7F549 + 48AED06BF3FCB8F7C9BD97E7A11042301299079A50C5D625D0D5EF00D251587E + 162AB72DA5A4F86C6ECE542080EF8F5CC49A745EDA5CB2006BF79E4055B9CB65 + 710514184EC18FDB57BC02F0C127C968AC9FC78DAB6D67D8CF1D05A0DFB20C4C + 834ED2F9CB0380E412080470EDD2D9A097868936A14ED3639831691635723E2F + C09AA263C8A0FE5C165740DE0F4D505DB03224002679D5C10FA1C7FA1CAAD26B + A120AB148202E896410DD85D7A3264809CC66F50C3D55FBCC77B976940A73E21 + 0CA0B8AE156BD239AB54A201FCF3F8065AA453792BFEDBF1EF406BCE15F868EE + 92C000293B6A5079FE6A786E25BF040AB4C7A0F6BBB43101787242C9DA44B8F9 + E46FEFEBA3994D307B5AE2EB6B40B800D45FA9415B8E6FF41E27CF5A0CE5A947 + 28EEF9AF05E832BF5C029A86DFB1269DBD32913DDEA96F0C0860B55B906BD80D + 13DF98F8CA7B98C2F7F1BEF7C14C9B615CCC38B8ACFE0BDE9A302938805579D5 + A8B2308D0520193BB4F57074CF1ABF002DC65A6092B4396C5096F233CC9BB190 + 7D1FB7F0A9930A61832A9BF23D5FF100758D87407530C1FBBBD8E858A848ADF1 + 22F82B7C713171C2004AF253598092E36D5893CE5A31873D2ED237F002304B40 + DFAA41FB9A77B108A529D5A0BB503CAAF0F93B9F17E04B75152A2DFC4A1657C0 + 6E6D1D34ECCF085804B9081445B19B1C6EE10B6B005F04267C0B5F4800249740 + B000BE08BE852F24009221048089F3B78DA8DBD20DAB13D299E510DE00A186E2 + 9700360092E10F40ACE07D241601880054215D7E3AF4CA603748AC066872D33C + 3B2A17E9FC230042EF038289A0EE030EE7A67AF6D26ED2F99303209D3837B003 + F0DC41CA26220011800880B400DF56B4612982D3A7C4C3D70B66F26E5B89021C + CA9C23394085F1264447450946081B80FAB67B400FBDBCDD1682103600BFFEF9 + 2F389C6EC1086103D072BD03AC76178B60F3FCAC4D7A0FC6C746054C0C1B80DD + 256D2DBC7EBF13066D4EC108610370EFBF5E18B03B4621D076276424F3236007 + C831FC267AF2C5EB3F85A73DFD30E049DE17C1E172836570881741F2EDF0E6B2 + 5674789D0A68C7B0E88973A3DFE6029AA679114C161A3292DE8537C7C7E17D1E + 800B000D7BFED3432820C2B33E2B6CFB2201EF23B14D86F348BB7E1E0BB0B5EC + 9CE85F7E60DD02B8DDD10BA7DA1F78D73C5FB85C4ED065CDC70BB0416744FA8D + 0B25BF029860964173FB7DB8F3A8D7EFDF87EC3628D9944406C06CC3F744E851 + 571F345F7BC8DE148D84C96C190520790DF005C8AF6CC106111D13035327C7B3 + AFEF7674E307C8D29C4125D98BB05E01DC78D63700B73A7ABC85F08F1B0FC0B0 + F933BC9DA2A40198B039DCD0D963819F4EB7870C20B853D41700E71260A22863 + 3E7B9C57660C194070A7A81CAE00B100C6D4292AF78911C93B45E53E312279A7 + A852264624EB1455CAC488649DA24A991891AC535449132392748A2A6D6244F4 + 4E51254E8C88DA29AAD48109D13A45950AC084289DA24A99180935143F30F1BF + 05102B781F89C97D62440A80177B8B83DB4D09DD460000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'SetProperties_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004BF4944415478DAED9B6B4C14 + 5714C7CFF03236FDA0099FAA89FAA17EA846DB0F4D498CADAC512B681AEBA336 + CAC307C488D560519702E2031F5574B3EBB23C5B2A82206A3056598B96D2B426 + A8B13EA24DD526C55A0185B0CB2ECC2EFBE076670C937561969D65E6DE9975FF + 09D93BECCC4ECE8F7BCECEBDFC0F8510822165682EA1A2CC2560B6B9D9E3DCF2 + 26C0A982B485DC38A7C40886ED4B2929EEE31D33E50F00491101907EA40195ED + 5C061DBD0ED2F1437EE96528DFF5F96B003EFC241105FB79DEBAD97289FB5CBF + 000E9CFC196BD03929F3C902D878E81CAAC85E218B199067B808DF7DB3724400 + B77EBD1C706A9868136A373D831993665143D7FB05A0DFB11C4CFD4ED2F18B02 + 80095E75F423E8B2BE848AD46AC8CB2806410048A6801800B2EABF4275374FB1 + E343CB35A0539FF30F607DC1196450AF92C50CC839D1009579AB830670EFD91D + B444A7622BFED4D869D09C7503E6CC5F1618804E19D4807DC5178206E0890925 + 6AE3E1FE7F77D9E3D3E90DF0F1F4F8D16B802F80C29A66AC4167AD518902A0F6 + 4615DA71762B3B4E9CF51994269FA4BCAFE70590B4BB0A95E6AE859756F22990 + A73D03D5FB53780158ED16E41A74C3C4B726BE760E53F8E61EFE00CCB419C645 + 8D83DFD47FC03B13268516802663353041DA1C362849FA0116CC58CC9DE75DF8 + D409F9B0459549F95E3F2A800EF3AB14D0D4FD8235E8CCD5F1DC788FBE9E1740 + 4DFD31501D8D637F171D190D65C9552C84910A5F4C544CE000D6E454A2F2FC14 + 0E0049EDD6D6C2E983EB795340DFAC41871BF772108A932A4177AD7058E11BE9 + FA9000C0BC7A43A0288A5BE478173EC1008A7293390045675BB0069DB1721E37 + 2ED0D78D0AC0170223DFC22708C097EA0A549CBF4E1633609FB606EABE4D0BE8 + 6BD01B826FE17B230030BAFAD0883A2D9DB0362E9549077100904C017F00C62A + C5CF8037168058E2DD12937B0A600740526100E11A4008802E3715BA65B01A14 + FA1C1088027A0ED064A778D6D42ED2F187011003703C3B19CC34F97F8D110340 + 3A706F6107C0B386908DC200C200C200A405F075590B9622F8DE9458D8B06826 + EFC6055100C7D2E7490EA0CC781F2223220443081900B52D8F801E78F5B82D04 + 42C800387FFD6F7038DD8221840C80A6DB6D60B5BB380836CFCFC684F7617C74 + 84DFC0B001B0BBA4AD85B71FB743BFCD291882E4CB615C001EFDDB0D7D76C730 + 08B4DD096989FC10B003C8325C113DF8C2CD9FC2F3AE5EE8F304EF0BC1E17283 + A57FC02F0431C4BB25B6BDA4191DDFA402DA3128D5BD59F5DA5C40D3342F0493 + 8586B484D9F0F6F818BC7B82B800A041CF5F7A00F985F0A2C70ABBBE88C30B60 + 9BE12AD26E5EC001D859F293E8373FB269113C6CEB868BAD4FD89CE793CBE504 + 5DC642BC7B825B7446A4DFBA58F219C0884983C6D6C7F0E7D3EE11DF1FB0DBA0 + 685B02190038CDD24F3B7AA0F1D63FDC43D1904C660B2F00C99CA2BE0070DAE5 + 23A3A2E0DDC9B1DCF15F6D9D630620D8294ADA2EFFA2A70F1EB475B185F0F73B + 4F86D9E525778A9206C0C8E670437B9705BEFFB1754C0082728ACABD634472A7 + A81C6680180082768A2AA5634432A7A8523A4624738A2AA5634432A7A8923A46 + 24718A2AAD634474A7A8123B4644758A2AB5634434A7A8923B4644718A2AA561 + 62AC0A03506AC78858E2DD12937BC3841400FE07233083DB06A176E200000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D84944415478DAEDDB6D6C53 + 551800E0F7EE8B60FC21C97E0989F2437F8841FD615C62505602C88631882806 + F621B08530840C07746E630A4310064D6BD77DEA646C6C0CC808C28A43E78C9A + 0C0882448C808943741B6C59BB76BBEDFAC1B1E792DDD4AEB7EDFD3AF7F6BA37 + 597ABBF5F6E67D72CEDB9E77F7500821988C02C3595455B81CEC2E3F2811F746 + C6E0D7BE21F078FDF0E3D5DB60D9F63A25C7758273A6D40480C3E5F143FF9003 + BEF8AA577980D2FA2EA2C957E42D618F4B6AAC53005E7C3513F17ED33071A9E7 + 2CFBBEAA1B018A02E41FE840753B56C0C0A847E9FCA1BCF61CD4EF7C332CC0E5 + EFCFC53C356CB40DF5DBEEC2BCD9F3A9C9F36306D87BE45BA24997E42C921400 + 27AF3BF8120C39EF43436E339415544344800DFB4EA286E2B7543102CA2C67E0 + F30F578902286A7F1FB55D3ACA1CEF5B690093FE647400F3F695601BF72A9DBF + 68805FEE5E45CB4D3AA6E23F993A17BA8B2EC2CB8B56F00350720A880108E484 + 328DE970FDEF6BCCF363F91DF0CAD3E9D16BC0BA8AE3C8A27F5B1523A0E4B30E + 682C5B2D08A0F56213DA7E620B739C39FF0DA8CD3E42059F1F15605005356077 + F5E988004EB703F91EF861D623B3FEF31A5CF816EC7F01ECB41D6624CD801FF4 + 3FC3E38FCD160650D9D24D34E9A235BA9800BAACCD809374795C5093F5252C9E + B78C7D5D70E1D36794C3665D21157A3E2740D6AE26545BBA16EE3B959F0265C6 + E3D0BC27272C404BFB21D01D4C637E979C980C75D94D0C42B8C2979294A23D00 + 3C05CCDD06B4BFF36316A13AAB114CDF544E297CE1CE8F0A30607F38050C6DDF + 114DBA70753A7BFC91B93D22007E0C46A0288A5DE404173E5E006B4A1A517D79 + 0E0BA064EC32B6C2B14FD645FD140846C0115AF8340F108A105AF87803549566 + B30055277A88265DB06A217B5C616E8B1900C7851B5634E81884B569B9783A08 + 037857DF80AACBDF53C508D86D6C81B64FF3C82E87A7014200949C02E100A40A + CE9698DA47C034006900B54D81E922380D207353546B00BC9BA218C0549A0BC3 + 2A580D4A01C0BB298A010CC53901399FD2F98B0610D414D50A80E0A62806385C + 9C0D765AF97F8D890110DC14C5004A271E1C910064698A72AC225513B23745E3 + 0540B6A668BC00C8D6148D2700FC287953F483BA1E2245F099275261FDD26739 + 5B57B1028422E010D514C50087F217CA0E5067BD0E890909BC11646F8A920268 + EDB909F4C4C3AFDB7C10646F8A920238F5D31FCCAD707C11645F0E9302E8BAD2 + 074EB78F4570057E36643C0F3393132222100370FBE4AD85576EF5C3B8CB2B08 + 418AE06C899102B8F9D7308CB93D531068B717F232E5478819A0C8725EF28B57 + 6E7A0DFE191A85B140F2A1081E9F1F1CE313B22370026CABE9468737EA80F63C + 90EBDA4C8CBA7C40D3342782CD41435EC673F0E8CC14B23D41520028B08A734C + A08808F7469CB0F39D34B2005B2D179071D362166047CDD792277F60E352B8D1 + 370C677A6F33739E2B7C3E2F980A96886E8A863B9F1360B3C98ACC5B96C93E02 + 70E069D0D97B0B7EBB331CF6EF136E17546DCD500680E4CDD2770646A0F3F29F + EC97A2C9B0D91DCA0390BC5D3E3129099E9A93CA3EFFBD6F903C80D2B7CB47DB + 31A279001C91768C100750EB8E114D8F004501B4B863441440BCEF18E10DA0B5 + 1D238200B4B26344128078DD312218402B3B464403A87DC788D888FB1D23B201 + A87DC38454C1D912FB3F02FC0BE3E58FDBE05193390000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'SetProperties_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E54944415478DAEDDB6D6C53 + 551800E0F7EE8B60FC21C97E8989FA437F8841FD615C62545602C88631882806 + F621B28530840C07746E638A5310064D6BD77DEA646E6C0CCC0CC2AA43E78C9A + 0C08A2448C808943741B6C59BB76BBEDFAC1B1A766377777BD5D7B3FCEB9BDFA + 26CB6EBB9E2EEF9373DEECBEEBCB2084603AB65AECC8BA6D25383D412015D787 + C6A0FBFC1FC04EF9673CEF70BAA0667B16A3C6EFE4E7CC4403286FEC2106919C + 92020FDC93CE3DFE6D60983C4091E914AA295E457407F0E3E6D804FC3230023E + 7F10BEBF780D6C3B9E9B01F0F833D948EA7BF3E35CDF29EE7D350580C3E30BC2 + E0880B3EFABC9F3E00C92380A3AA6039775D5667170538FFEDE9988F868375A0 + 41C70D58B4703133BD5ED33B4049009CBCE1E01330E2BE054DF9AD5051540B51 + 010A0F74A1865DAB6168DC473B7FA8AC3F0D8DBB5F900550D2F93AEA38F749F8 + 7ADF1A13588C27E20378F7C8D744932ECB5BAA18C0CF372EA2551643B8E2DF97 + 7E3FF4969C852797AE8E0EB069DF09D454FAA226764085ED247CF8E65A4900A1 + 9C50B639132EFDF553F8F1D1C22E78FAC1CCB96B0006B0EE5C038E493FD00E39 + 00ED675BD0CEE3DBC2D7D98B9F87FADC230C7F7DCC00348FC05C006EAF0B056E + 0761C11D0B66BC0617BEA7F63F064ED609F352E6C177C61FE1EEBB16C606B0B1 + EA18B2195FD2C40E28FBA00B9A2BD64504E8B1B7024ED2E3F3405DCEC7B06CD1 + 4AEE75FCC267CCAA84AD866246B87E4E80610DD480BDB59F8902B4751E02C3C1 + 8CF073A9C9A9D090DB12468854F8D252D2A40354B7F5124DBA64BD2126007C04 + ACBD26B4BFFB6D0EA136A7192C5F55CF2A7C91D68B02E4EC6941F5E51BE0969B + FE11A8301F83D677F2A216413E02C330DC4D0EBFF0E91A4088804358F824010C + 39FF3D02A68E6F88265DBC2E93BB7ECBDA191380104158F8E202585FD68C1A2B + F338009AB1C7DC0E47DFDB18F3DF01672EDBD1B06B183664E4E3E3A06F00B911 + 15A0A63C9703A839DE4734E9A2B54BB8EB2A6B077980578C4DA8B6F2554DEC80 + BDE636E878BF806C4BEC7F000100CD23A009009A1109E03F5F03880368ED08A8 + DE144D941DA05A53546F00713745F50420A9298A012CE5F930AA81BB41390092 + 9BA218C0549A173A3B01DAF9CB0290DC144D2400559AA218E070696E6831FD7F + 8D450350AD298A016827CE0F3100D59AA2227D04CD84EA4DD14402C0DF156F8A + 261A80100187ACA66822020811643545DF68E82352041FBA371D5E5BF1B068F3 + 325E001C8A344531C0A1C225AA0334D82F41725252DC08AADF0E930268EFBBC2 + 7D2E301E04DD007CFAC3EFE18FC249415022445B62A4007A2E0C80DB1BE0103C + A1AF4D598FC2FCD424220873027803EAD6C20B570761D2E3A786401DE0CA9FA3 + 30E1F5CD4260BD7E28C81647205603A6014A6C5F289E7CF59667E1EF91719808 + 252F44F00582E09A9C1245501D60475D2F3ABCD900ACEFB6E289F363DC130096 + 6545111C2E160AB21E813BE7A7C96E8A465A4F1D0085EEE35D53282AC2CD3137 + EC7E39832CC076DB1964DEB28C03D855F7A5E2C91FD8BC022E0F8CC2C9FE6BE1 + 332F1681801F2C45CBC9024CCF0BA8BD0370E063D0DD7F157EBD3E1AF1E7535E + CFAC790162005A9D18210EA0B58911D501687F5C3ED68911DD02E08865628418 + 801E26466401D00C2A007A9B18910D90C813239200F43231220B400F13238A01 + 687562446E24FCC488EA005A9D18512A445B625A9F185103E01F226B9BDB68A7 + A1C30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E74944415478DAEDDB5B6C14 + 551800E07F7A23181F24E99398A80FFA2006F5C1D8C4A07409202DC620A218E8 + 45A40DA1082916D8DA962A5641286C76DD6EAF5A292D2D055382D0D5A2B5464D + 0A04512246C0C422DA16DA74B7BBEDEC762F3DEE59D3C9B0DD99BDCC9C39332B + 7FD274663B33E9F9F69CBFD9BFE76710423013DB2C679171F352603DD3C1F39D + 755F81DCB17FD372B832300AA7FAAF03EBF60A5EE7F379C154B48C91FD170804 + 7FCC0CFF648BC98ACC5B5770002463DCE583EEFE6BF0DB8DD1B03F9F72BBA066 + 5B161D00BBCB4F1C60266E0C8D41F7853F819DBA7336D8EC8E59004F3F9F8D62 + 7AB8409CEF3BCD3D5714A0BCB1473188E4941478E48174EEFCF78161E5018A0C + A7514DF14A4567003F6E8D4DC0AF0323E0F1FAE1874BD7C1B2FDC5B00017BE3B + 13F5D2B0B1363468BB090BE62F6466EE572D000E97C70F83230EF8F48B7EC900 + 78F0BA03CFC088F33634E5B74245512DC404A0E412C05155B08C3B2EABB34A06 + 28E97C0B759C3F123CDEBBDA0026FD89D800688654805F6E5E422B4DBA60C67F + 28FD61E82D3907CF2E59250E50B8BF0B35EC5C0543E31EDAE387CAFA33D0B8EB + E5B800026342D9C64CB8FCF7CFC1F3A3855DF0DCA39991734028C00787BF5174 + D065794B6401683FD782761CDF1A3CCE5EF812D4E71E66F8F70B026CDC7B0235 + 95BEA28A19506139059FBCB34610C0E97620DFB41FE6DD33EF8E6B70E25BB4EF + 29B0B37698933207BED7FF04F7DF373F7A00F38ED5609BF402ED1003E8B1B602 + 1EA4CBE382BA9CCF60E98215DC75FCC4A7CFAA842DBA6226F4FEA801682E0131 + 80B6CE83A03B90117C2D3539151A725B8208E1125F5A4A5AF4001BAA8E218BFE + 5555CC80B28FBBA0B962ADE01230F71AD0BEEEF73884DA9C66307D5D3D2BF185 + BB3F22C0B00A72C09EDA93A200F83B1F816118EE430E3FF14902A86EEB5574D0 + 25EB7431018422E0084D7C3101E4EC6E41F5E5EBE1B693FE12A8301E83D6F7F3 + A2FA33C847084D7CFF0B001C67AF58D1B06318D667E4E3E5200D60C8FEDF1230 + 747CABE8A08BD76672C7EF9A3B0501A48620C0BAB266D45899C701D08CDDC676 + 38FAE186BB00249E2D5812C30035E5B91C40CDF13E45075DB46631775C65EE50 + 1EE0757D13AAAD7C431533608FB10D3A3E2AB80BC07F8D780E0805A0B9045401 + 4033C400881545130D20E6A2A8569600B1A26822CD80B88AA289021077513451 + 00E22E8A620053793E8CAAE0D36024002245510C6028CD0B3CC4477BFCA200C4 + 8AA25A01205614C500874A7303D387FEBFC6222D012245510C407BE0FC889404 + 652F8A0A54925413C48BA25A040845905414D52A000E598AA25A01901A82006F + 37F42992041F7B301DDE5CFEB8E03B4515E060E162E2000DD6CB909C94141782 + 1C215812530AA0BDEF2AB72F9006027580CF7FFC23B8158E160275809E8B03E0 + 74FB380457E06B63D693303735491441B11CE0F691CD8517AF0DC2A4CB1B3342 + C2005CFD6B1426DC9E590878F77841B630423C45D170F7470D5062F952F6C157 + 6F7E01FE19198789C0E043113C3E3F3826A7041188036CAFEB458736E9886F97 + C75BE559961544B0395828C87A02EE9D9B26A928AA5A00341D78A7A79028C2AD + 3127EC7A2D435900B5778C1007507BC78862006AEF18510C40AD1D23C400686F + 9727D131A229001C72768C4806D07AC78864009A410520513A466403D06AC748 + DC005AE918911A9AEF18510C406D1D23728560494CED1D232400FE05772AADDB + 29F51EE90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_21_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004EE4944415478DAEDDB6D6C53 + 551800E0F7EE8B60FC21C97E8989FA437F8841FD615C62445602C88631882806 + F621B285303E321CD0B98D294E411834AD5DF7A993B1B13130337CAC3A64CEA8 + C980204AC408983844B7C196B56BB7DBAE1F1C7BAABB69BBDEF6F6F69E7BEE6D + F6264B6FB7DEDD9D27E7BCED7D775E062104D3B1A3AE171DDEA401D6750F48C6 + B8C3032CCBC284C30D134E174CFA1EED4E0FB8DC5E7079BC60B1B15090F514DC + 3F378D2171FDC031333400D03D2FD8A65044843B6376D8FD4686BC00DB4DE790 + 7EF3520E6057DDD7925FFCC0A6E5706D60144EF5DF04D6E9E67D9DC7E30643D1 + B22080675FCC46512F20202EF69DE17E6F10C016831919B7AD203E0370E065D0 + DD7F037EBB351AF6E7534E07D46CCFA20360757889034CC7ADA131E8BEF427B0 + 53C1B3C162B5F1025CFAEEACE0A561612D68D0721B16CC5FC84C9F2F18A0BCB1 + 473688E4941478ECA174EEF9EF03C37103E0C16B0E3E0723F6BBD094DF0A1545 + B51011A0487706D514AF94750604C69DB109F87560C49F087FB872134C3B5E8E + 0BA0A4732BEAB878D47FBC6FB50E0CDA93CA06C0E170796170C4069F9DEE8F0B + E097DB57D04A83C69FF11F497F147A4B2EC0F34B56C50620E712C05155B08C3B + 2EAB338B06F08D0965EB33E1EADF3FFB9F1F2BEC82458F6746CF014A98015200 + B45F68413B4F6CF31F672F7C05EA738F3081E7F302141EE8420DBB56C1D0B88B + F6F8A1B2FE2C34EE7E9517C0EEB4218FEF03D5BCFBE605BD0627BE17F63F0356 + D60A7352E6C0F7DA9FE0C107E68B03F8F0C87959075D96B74410408FB915F020 + 1D2E07D4E57C0E4B17ACE05E1798F8B45995B04553CC849ECF0BB071DF49D454 + FA9A22664085E9147CFAEE9AB0006D9D87407330C3FFBDD4E45468C86DF12384 + 4B7C692969B1011877AE06CBA41B68472400BC048CBD3AB4BFFB7D0EA136A719 + 0CDF54CF487CE1CE170C4073094403C08F81080CC370373981892F26800D55C7 + 9149FBBA226640D9275DD05CB136EABB4020028ED0C4270A60580139606FED97 + 8200421142135F5C00D56DBDB20EBA649D4614008E73D7CC68D8360CEB33F2F1 + 72100790B3A705D597AF87BB76FA4BA0427F1C5A3FC893F7767816E07F8021EB + 7F4B40D7F1ADAC832E5E9BC91DBF67EC9C012055F096C4D69535A3C6CA3C0E80 + 66ECD1B7C3B18F36CC02C80E50539ECB01D49CE89375D0456B1673C755C68E19 + 00C473C09BDA26545BF9962266C05E7D1B747C5C300B100E805851341480E612 + 900220E6A268A2CD80988BA2890420AA289A284B40745134516680E8A2A89A00 + 881445D50240AC288A010CE5F930AA80BBC14800C48AA21840579AE79B461EDA + E38FBA04881445D504801F252F8A6280C3A5B9BE0442FF5F6342DF05242D8A62 + 00DA030F0CA16F83921545796A898A09E24551B500C41BB3006A05902A784B62 + EF34F4C992049F78381DDE5EFE24EF5AA50A70A87031F13FA0C17C15929392A8 + 21500768EFBBCEED0B8C0581780E900BE08B1FFFF06F858B152161007A2E0F70 + 1BA33182C3F7B531EB69989B9A1411414C5134DCF951019C1EB2B9F0F28DC1A0 + DDE142111206E0FA5FA333B6C86304BC7BBC209B1F41768012D357920FBE7AF3 + 4BF0CFC8386F9F806D728A17813880D23B461206406CC7087100B5748C100350 + 4BC708718044EA18890B40ED1D233103D0DE2E2F75C788EA007048D531220980 + 5A3B462403A0195400D4D231126FA8BE63841880D23B46A40ADE9298D23B4648 + 00FC0BA3FBDDDB238BF1D20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_22_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005004944415478DAED9B6B4C53 + 6718C79FC3CDB8EC83267C9A26BA0FEEC35CDCF66119C9322735EA0417E39C9B + 8B72991362C44B50D4324036C7D429DAB42BE5BA311908A20BC60B9DA888714B + 50E3DC8C1A2F4B86730314424B0BA7A52DBEF69C8DB352FBD6D373CE7B2EC83F + 21795B7A7AFAFC789EE79CFE791F0A210423DA5CD186F665CE01B7EFFFE748E8 + F65FBD30E0F6C0A0CB0B4EB70F3CDE61A087BC40BBBD9091FC1A4C8C8DA2489E + 3F30662A1C801CCB4F929FBC78EDBBF04F4F3F0CF8830F86E0F10D8363708838 + 042C804D65AD68FF1A1DD09E47A4CECDAADFE5039AA6B1106C0E1A32925E85E7 + 27C68D82F0C63BC992A4E6A5B613DCFB2A02003DF2FFA5875058080FFA9CB0ED + A30479016CB49C46C6B5F338005BCB4E491EFC9E350BE046472F1C6BBFCBD63C + 4E3E9F174C59F34302B87CFE24EFF2B0D136D469BB0F33A7CCA2468EC7025867 + B222F38685C43380115306CDED77E0E6BDDE90BF1F72BBA064639228004CF0BA + BD6F428FF32154A5D742415629F00260770D130730A27B5D7DD07CF94FF62A30 + EAC3DB1DA201E434AE470D977E60D7BB961AC0A43F121980FCCA16D94044C7C4 + C08CA9F1DCE35B1DDDA200FC7EFF2A5A64D2B11D7F7AFC8BD09A7311DE9ABB24 + 3C802CC3095492BD48D60C08D483BE01B8DED1C336C29FAFDE05CBA6F70401F0 + C784928D8970EDEFDFD8C707339B60F64B894FEF014A0360E4F20C43678F03BE + 3BDE2E1840FDC51AB4E5F006769D3C6B3194A71EA0028FE70D40CE1260549431 + 9F5BE79559C30270BA1DC8E7BF9C4E7E6EF2A8D7308DEFEDDDAF839DB6C38498 + 097041FF2BBC30698A30004A2A1C80166B2D3041BA3C2E284BF91EE6CD5CC8BD + 2EB0F1E9930A619D2E9B0A3E1E0B20734F13AAD8BA04BAFA3D4AC70F85E527A1 + 72DBFB2101D435EE03DDDE04F6B9D8E858A848AD6121846A7C713171C2017C75 + E0ACAC41E7A5CDE50580290173AB01ED6EFE8283509A520DA633C54F34BE50C7 + 6301ACDE750455E57EA08A0C28B01C836F3F5B16B6090642A0288AFB9213D8F8 + 220660DEB2146C83F85B5435010886C028B8F18902A06409F005100C21B8F145 + 046055D12164D17FA88A0CC8FBA609AA0B96F3BE0F387DC38ABA1DDDB032219D + 29077100BA55D00376941EC502102BDE008AEB5A650D3A67854E590029DB6B50 + 79FE4A78E854BE040A8C87A0F6CB3422B618D6121B07F01F802EFBBF25606838 + 276BD0D9CB13B9F5E7E646F901ACC8AB469585691C0025B5DD580F0777AE92B7 + 078C03F00328C94FE500941C6E9335E8AC6573B87591B9010B809829FAB1BE0A + 95167EA28A0CD861AC8386AF33E43545C71A80884DD160004A96805800824CD1 + B19201824DD1B10240B029AAA51220628A6A25038899A25A0140CC14D50A0062 + A62803C0949F0EBD2AF836C8A7094A6E8A32000CB969FE46E2533A7EDE570149 + 4D512D02088620CA146500ECCF4DF55F4294FFD758A4F7019298A20C00A5030F + 140E8058610160C0A946CF3C00A984B5C4C6013CEB0098ADB2727C8097A7C5C3 + A70B5EC1766B9C88F78091BDC2A45561BD06D151511143183300EADB6E73FB02 + 238140DC14950BC08FBFFCC16D918F04027153542E002D573A46CD09B8FC3FAB + 939EBE459EB8292AD7C0C4953B9D4F0C4BF08140DC1455FBC408715354ED1323 + C44D51AD4C8C103345B5323142CC14D5CAC4083153544B1323444C51AD4D8C48 + 6E8A6A716244525354E9EDF24227462433459506C048E8C48824A6A8562646C4 + 4AD519A02800B54F8C4825AC25A6F6891112001E035B0E8EEA58E50640000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_23_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004FF4944415478DAED9B6D6C53 + 5518C79FBB3782F18324FB2426EA07FD2006F5837189415909201BC620A218D8 + 8BC816C210321CD0B98D294E411834AD5DF7AA93B1B131302308AB0E9D336A32 + 2088123102260ED16DB065EDDAEDB66B3B8E3DD7F4E672B75B7A7BEFB9F79EC9 + 3F697AFA72DB3EBF9EE739B7FF9E87410841446FD7F5A0FDF90B81B4BACEF781 + D71F82407012D88920F8C297F5194FC2ECE40486F89B87258C99990E803F84E2 + 79DD9875FE4A3F8CFB82BA41D01DC0E5BF8661CC1F980281F507212F531AC2D3 + CF67AAF2C1CEF69CE45F3F2A8022C797AA075FB9F105F8676814C6C2C18B2104 + 4293E0199F9084401CC0D69A6E74608309D8C02DD503176AD4170296652521B8 + 3C2CE4653C01F7CE4EB90D4204C0B9EF4EC59C262ED685FA5DD761DEDCF94CE4 + 78DD01A05BE16F7A0245857063C40B3B5E4B530400076FDAF70C0C796F42436E + 339415544354005B1CA79175E3621EC0F69AAF540F7EEF86A570A96F184EF45E + E5725E4AA150106C054B1401286A7F0BB59D3DC48D77AFB480CD7C2C3A804D36 + 27B26F5E467C0660E134E8ECBD02BF5D1B9EF6F109BF0FAAB664C40DE097EB17 + D0729B89ABF80FA53E0CDD4567E0D9452B6203E0F64D120710D1B58111E83CF7 + 27B70A08E5727BE206108E09655AD3E1E2DF3F73B70FE777C0738FA6DFB90688 + 0194D6776906223129091E792095BFFD7BDF60DC005ACF34A16D473773E3CCF9 + 2F416DF6414678BC248002CB495455B85CD31920D48D9131F8B56F882B843F5C + B80A8EAD2F4A02F0FA3D28142EA673EE9973DB7370E15BB0E72970B36E989534 + 0BBE37FF04F7DF37970E0058BEC024F40F79E0D32F7A250174399B0107E90BF8 + A026EB33583C6F19FF3C61E1336794C3265321233E3E66005AA6005645DE127E + 5C52E39404D0D2BE1F4CFBD2B8FB921393A12EBB8983305DE14B494A891F809E + 8A0600A780BDDB82F674BEC743A8CE6A04DBD795530ADF74C74B02C8DFDB81EA + B6AF8081D180DEF14379ED29A8DFF172D4222884C0300CFF234758F81401F8E0 + E0379A065D92B348160031042C71E1930560FDEE63A8A1F81543CC8032C709F8 + E49D55312D834208E2C2271B807DDB4A708D4B9FA21A1100D6E94B4E34E81984 + B569B9381DD401A0670A4403A0549200D6551C410EF3AB869801251F774063D9 + 6A7D000C1AA006ECAA3E3E05805A92B4C4C4002A5BBA350DBA688D495F00593B + 9B506DE95AB8E9D53F05CAAC47A0F9FD9CBB0084F711AF01110003EEFF52C0D2 + F6ADA64117AE4EE7C7EFDADBB507B0A6A411D597E7F000F4D44E6B2B1CFE709D + B6A6E84C0320DB14C500AA4AB3790055477B340DBA60D5427E5C616F530C40B6 + 29FABAB9015597BF618819B0CBDA026D1FE5696B8ACE1400719BA262007AA680 + 1200719BA234CD0022A6282D008899A2B4A400315394961940CC14A50900BE56 + DD14A50D8018029622531403B095E6C2B0017E0DCA590655334531004B714E78 + 2909E91DBFECF300554C515A0028555400078AB3C32711FAFF35A61B00BD0317 + 4A0C402D495A6212A933E3741700AD0088D780FF3D00BC55568B401E7B3015DE + 5CFAB8E47A7D2700C44C51ADB6CBD7392F426242826C08C44D51AD00B4F65CE6 + F705CA8140DC14D50AC0E73FFEC16F91970381B8296AF48E11E2A6A8D13B4688 + 9BA2B4748C10334569E91821668AD2D23142CC14A5A9638488294A5BC788EAA6 + 288D1D23AA9AA2B4768CA8668AD2DC31A28A29AAF776F9583B4694CAB000B062 + E918D10C80D13A46D492A425668419A035807F01B7FAA3EA2A9AB00F00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_24_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004F94944415478DAED9B7D6C13 + 651CC77FDD1BC1F08724FB4B48D43FE40F30A87F189718919500B2610C228A81 + BD886C210C21C3019DDB182F5310064D6BD7BDEA646E6C0CCC082FAB0C9C336A + 322088123102260E816DB065EDDAEDDAB51D8F7DCEF47294BB5B7BBDE7AECFB2 + 6FB2EC69D7DBE5FBD9F3FBF5FADDFD74082108EAE39A2E74287721905673D70D + 60C67CECFAC3A5CF832E20E227E589EF59A705806F7FF91BBCBE71CD20680EA0 + E34A0FB83C7E0E823BF0B53EED45989E182709E1E5D7D351B8E790D2A5AE33DC + 79040178FC8A9C4754576EF6C2A8DB1731844903E0C6BF8330E2F13E0681F1F8 + 20275D1C4210C0E51FCF865D2E76C68E7AED7760DEACF9BAE0F1610328B07EA7 + B8F9F28D6FC0BD81611809980F85E0F58F8373744C1442A400B079FDC15760C0 + F500EAB21BA124AF1224016CADEA448737E881F13E54DC385FC36E3F300C230A + C1EE642027ED0598313DE911A391022868FD08B55CFA865DEF5B6904B3E1446C + 00400F037FE9312409E1FE900B76BC97221BC0EF77AEA2E5663DDBF19F497E16 + 3A0B2EC2AB8B564803D8623D8F4C1B177300B6579D53DCFC810D4BE17ACF209C + EABEC5D6BC98FC7E1F98F396C80210F084D24DA970EDEE6FECE3A3B96DB0604E + EAC43D6093D9862C9B9711DF0158B80CDABB6FC29FB707057F3EE67143C59634 + 59009A2F36A06DC737B3EBF4F96F4175E6111DFFF8090138DCE3C4010475BB6F + 08DA2FFFC35D14056577382501B83C4EE40F94D2CC27663EF21ADCF85EDBFF12 + 3818074C4B98063F197E85A79E9C250F40716D876A20E21312E0B9D9C9DCE3BF + 7AFA450174D81A019B747BDD5095F1352C9EB78C7B1DBFF119D24A61933E5F17 + 7ABC28803CE3195491BF5CD51DC0D7FDA111F8A367806D843F5FBD05D6AD6F0A + 02686A3D04FA8329EC7389F1895093D9C042106A7C490949F400C0727BC7A177 + C0095F9DEE1605804BC0D26944FBDB7773102A33EAC17CA1FCB1C627747CD800 + D42C01ACB29C25DCBAA8CA2609007FE743C09FA5825EF88D2F2A005A2A1C00A1 + 10B0421B5F4400720FB4A19AED2BA06FD8ABB57F28AD3E0BB53BDE0EEB6D900F + 21B4F14505E0D323DFAB6ABA286B912C0058E7AFDB50BFB31FD6A6648B660B13 + 0258BFEF04AA2B7C2726764089F5147CF9C92A4100D14A128065DB4AB08FFA64 + FDE2490740CB121002A0944423B17565C790D5F06E4CEC80A22FDAA0BE64B536 + 00FA63A007ECA93CA93D80F2A64E554D17ACD14B0220DE03327636A0EAE2B5F0 + C0A57D0994988E41E3DEAC290042008885A241007D8EFF4BC0D8F283AAA6F357 + A772EB5D96D6A801441C8AAE29AA47B5A5591C002DB5D3D40C473F5BA76E283A + 9900C80A4531808AE24C0E40C5F12E554DE7AD5AC8ADCB2C2DB201C80E45DF37 + D4A1CAD20F626207EC313541CBE739EA86A2340120128A8602D0B204A400100B + 4569D901C442515A00100B4569290162A1284D3B20F89CA2A1288D0042214415 + 8AD20A004B91501403301767C3600C7C1A940210AD2401180BB30217137EADFD + 4F011002A0944423310CE0706166E03252FB7F8D6906406BE37CA90E40E55B76 + 2316F11E3005801200C442D1C90620E25014DF2AAB8691B94F27CBBA459E7828 + AAD6EDF235B66B101F17173104E2A168AC4F8C100F45637D628478284ACBC408 + B1509496891162A1282D1323C442519A26468884A2B44D8C281E8AD23831A268 + 284AEBC48862A128CD13238A84A2B44C8C442BEA27468801D0FA76F989264694 + 926824A635002CA989111200FE03F193A3EA0FB394830000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'SetProperties_25_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004EE4944415478DAED9B7D6C13 + 651CC77FDD1B81F88724FB4B4CD43FE00F31A87F1897185E5602C88631882806 + F622B28530840C07746E638A5310064D6BD7BDEA646C6C0CCC082FAB0C9D336A + 3220881020BC983844B6C196B56BB76BD7763CF6CEDC791CBDB6D7DE73CF5DC3 + 3759F25CDB6BF7FDF4F9FD72F7DD7E3A8410B0FAA8AEE7FF038C7AFE9954F860 + C90BA00B4889CF138AEF592704B02F7F01F65FA0CE76191213128841200EA0B5 + E70650133E662D05C22BF33365D9A1E77A4E729F4704C077BFFD095EDFA46408 + 7103A0EB421FB83C7E0E823BF0B32EE325989A9C1012020BE0FCCFA7222E1B3B + 6547FDF63B307BC61C1D7B7E58001E3FDE5E78E1663F8CBB7D92214805409BD7 + EF7D15865CF7A121B719CA0AAA4115006EFC3D0C631EEF2310288F0FF232C521 + 480550D4FE216A3B779059EF5A6104B3E1A8340045D6EF65375FB9E175B83B34 + 0A6301F342085EFF2438C7274421480170E9CE45B4CCAC673AFEB3A9CF4177D1 + 59786DE1F2D000B6D474A3FDEBF540791FC86E9CAF51B71F288A128560775290 + 97F1223C3135E521A3910208784299A674B8FCCF1FCCF1A1FC0E98372B3D7C0F + 500A007A10F8A627504808F7465CB0FDDDB4A800B49E6D425B8F6C62D69973DE + 84DAEC033AFEF9A200365BCF20D386451C806D35A76537BF67FD12B8DA370CC7 + 7B6F31352F26BFDF07E682C5A2005C1E27F207404E9F36FDA1D7D08D6FEEEE97 + C14139604AD214F8C5F03B3CF5E48CC8006C34DB9065D352EC3B80165D069DBD + 37E1DAEDE1A0CF4F78DC50B5392328802E5B33D026DD5E37D4647D0B8B662FE5 + 5EC76F7C868C72D8A82FD409CF0F0BC0E19EC40E80D5ED8111E83CFF177751C4 + CAEE708A026869DF07FABD69CC63C989C95097DDC44008D6F8529252A207505A + DFA51888C4A42498F9742A777CBD6F5014005D02966E23DADDF92907A13AAB11 + CC3F543ED2F8829D2F0AA0C0781255152E537407F0756F640CAEF40D318DF0D7 + 8BB7C0BAE58D904D900F81BE9266BDF01B9FA600D0727B27A17FC809DF9CE80D + 0B40088196B0F1C50440C912A05591B7985B97D4D822022084206C7C31012029 + 2900689DB96A4383CE415893962B7A67191640FE9E0E54B76D390C8C7A49FB87 + F2DA5350BFFDADA0006255C4003E3FF0A3A2A64B72169205B06ED751D450FCB6 + 2A764099F5387CFDF14A2C719968244603B06C5D01F6715F34EF1B7F00489600 + 11006B2B0E23ABE11D55EC8092AF3AA0B16C95B23D800530A8821EB0B3FA1879 + 00952DDD8A9A2E5AAD8F0800B650346B4713AA2D5D03F75DE44BA0CC74189A3F + CB890980E45034DE00480E455900038EFF4AC0D8F693A2A60B57A573EB4F2CED + 3101882A145D5DD288EACB73380024B5C3D40A87BE58AB6C281A2F00A20E4569 + 0055A5D91C80AA233D8A9A2E58B9805B5758DA4202C0128ABE676840D5E5EFAB + 6207EC34B540DB9779CA86A25A01802D141502205902A100600B45B5B203B085 + A25A032084402BA650544B25C07F5CB650548B3B80952CA1A85600C4AAC70042 + 013097E6C2B00AEE068301904BA291180DC0589C13B89CF493F6FF18003100FB + 8BB3033712E4FF3446AC079036CE97E20008FDF376C4C21E8AC61B00C9A168BC + 01901C8AC61380A84251B54F8C600F45D53E31823D14D5CAC408B650542B1323 + D84251AD4C8C600B45B53431822514D5DAC488ECA1A8162746640D45B53A3122 + 5B28AAE58911594251AD4C8CC42ACD4F8C6007A0D68911B9241A89A97D620407 + 807F011A8D8BEAB5FBB0840000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_01_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000083B4944415478DAEDDB0B54D4 + 551E07F0EFBC674011D062CCD0A094484F2FCD4DDB6D2338A69496E7C826BA7B + 823DBAEBA37DA46547892DD7639DDCD5D2C2303D45275D5B6597B6F29141EBDA + 2AB93E16DC10C7072FC1190406668079CFDCBDF73FCC303030CCCE9B8DDF399C + F93F66E67F7F9F7BEFFF7FFFF73FF00821F02516BFBC9BBCF76A2E541AB34F9F + 0F646C7C7B2F3E797339CF97CFF202055070E0EF214D7AF54FD2220B209C3102 + 300210268077F273D1DAF93D06D8F14A2EDABA4600C29D7FF800DEDAF01C3A74 + D670E71F3E807027EE1A2107F87F89118011801100DF00D6BE7F3C2472A9136F + C1B2B953B9B2461CC0D65F3C1674803D872B00BE286808110FB0B7AC1A06B38D + 5B0E0642C403FCF5540D747A63D010221EE0E8D93AE84C362782D16CC6F279F7 + 412CE40504C16F009325B8E7C2339795E8D499828610F10055F52DD0192D6E08 + EC75C5FC07FC460818C09A8223014F7EDBEA79686CED84A6DBE08660263C7476 + EAFC46F019E0C5C232F2C715E95C8182191ABD057ABD61508436AD1E2B33A721 + 5A2A0AEDCD50A80088CD0AAD91784668D7E0C5AC1F8416E0B73B4BC9DBAB329C + 00EBDE3B1AF0E4B7AC9C8BAABA567C7EFA2ABAF5A641DF67B55840CB125A80E7 + B71F26EFFE2633E82D8005EB0687CAAFA0BAA165C0FD46BD0EB42CE10168D759 + 820EE0883AA51A874ED7C064ED8BAE5677841F207FF7B190410845624C4E1CE7 + 5CAFAEB9117A80D5DB3E27056BE687B405B8C6CDF62E3A46507327C2F2CAABA0 + 65F97E01B060032295BA0B7B4A4E861F20945D80C5A6E5739CCBAF141E093F40 + 38232C00BFDC524276AD5B08A5C6E4D3E70319AFED3A045A96F0026C2E2A0D69 + D2793919A10768BAD9414E9CBF86B355B5D09A0876AFCF8A8816F0BB9D7F4394 + C08699D3EEC0AC0753912C8FF11AC32B802B0D37C98163E750D7D28549931211 + 375A8A8AEFAEA0E0A54568EB0EFFB34106F06CE60FA16AED40F9F96A24C48891 + 3567065293E443420C09B0EFF06972BCB20129297741CC231008F9DCF6FE00E1 + EC020C60C9FC479DEBECF258FAF5493C989A88A5999E6F923C027CF68F0BE4F8 + 7F9A70DB6D72E73659CF5DE7B98A8B285C9F1D112D206F4731962C488340C0EF + B3FDDB0A05A626C662C18FEF1D14C123C0CF37FD89DC3335D56D3B43700044C2 + 3960E3CEBF0C08C0E2E392327C90BF24B0002C2E5655F701F8C3DEB29026FDD2 + 4FD3FB00643D950611CDBF3FC2477F3E82A24D39BE016C78E753F264FA4C945F + 6A76DB77A1F23B14E62D454B04FC44267FC701643F93C101B07020C4CA783878 + F8145EFFD533BE016CDF5746E6A73F04994C8AF2AA46D4A834110DC08221C844 + 04C913C671B3489F7EF52FACF959866F00C5A5E749439B1ED9731F429408D0D1 + 5C2F5D6F4753B31AC74E9CE500941DF62EF0D6FEAF439AF40BD98F3B9737161C + 446ED61CC4468B208F1FE52CEBFEA367307E8C94967FBA6F00FFACAC27FBE9F5 + 3FE9CE24A4DF3701C9E363B9ED423E8F9BA7731C88059B1DB65843F3A45928B0 + E72316F6E6C5CAE2881A6507CA2A9B507BAD165969D3F0D88C29BE01B001D01B + 1F9522F9CE646E9D0D805226262039211A09B1323613CB25EE28088760B37F9F + D1629FB5315B01ABCDE6DCEF88FE588EA45CC33541694F0797D07108AB00D7D0 + 9BCC68D31A50D3DC0D454333DA3B0DDCAC51635D1D3D593EEE7140E41140A333 + 91559BF721B5E74A20954A9C83A168A243DA23D3B942B2C289F9043CBE20B055 + 3D48982D16D8C087566F855ADB8DB27FD73BF7317862317300D72E29B0E3E5C5 + 181B23F30D80454E7E119938650AC4F4CCEA0A60D1752163D6547A20DA0268ED + C9C402EE64E9A82D49CF88D1B5B61896A315B8D62E8B3EAD83B6A2FE2D88ED67 + 13B07A33A1CB360EC1D2F39E931597B9B20D04B06F73AEEF2341166BB71613D9 + 5839A462611F00A3AE1B4FCCBAC709C09AB05024459484EF4470D6984B37704B + B6A72B9806387FB064FB22F57EC75000069305FA3615B6AE5DE41FC0B68F4B49 + 935E88B851528F008AFA6648680F1088A55CED8AE836F300493992773D07F44F + DEF128DC11462BCDC1D67BB9B55AAC48499EE011A0BDCB8004B111EB729EF00F + 80DD0C9DAB51233E3E6E58B500B5BA1DF74E1C839C05B3FD03387EF632397842 + 81F1F25B86158052D58285B3EF42C6C3A9FE0154D7AAC8B64FBEE1E601FE972E + 20A687350DF0D5A1EA02F5F5D7B166F18F869C131812A04DAB272F6C2DC69494 + C9C3AA055C565CC1965F3F0DF9D818FF006890A5791F726381FE006933EDE383 + 4804A8A677ABF412C8E5E82F0077298C1B7FFBB001301A8DD028AF63FBBA67FD + 9F1263B1A5E84BA2B549101B3B665800E8BB3A21B3E991B76C5E6000F6949C24 + 979A0D90DF1A3F2C00DAD51DB83B418A650B1F090C40E9B7D5A4E4D45524DD71 + FBB000B8D17803990F4FC693B3EF0E0C4085E23AD9FDD919EEB678380034D435 + 60E5D333707F4A626000546D5AB261E71760F383AE0022FA2AE3D34248A211CD + B7D275FBF164515190D0BB43A3CDFDF86C8CEE96A855003EBDCEF3ACF66B7DB7 + ADEF5DA5B1E7BF72AC2E0026C203DFAC83CE6A7FAF2BC0358502AFAF7A6AC84B + A0D700B4C648EEAB457860FAFD4E008948445F0510D1F5283AEA49181B83D851 + 32AE258806989D55AABB688DDACBC3C6393CABB1CF7EC74F6D643299DB678DB4 + C5D8680B32180CF64111D7026CB405587AF65B298E1DCF48BFFCE2850BF87063 + 8E573F9FF3FAD1D8F36FEC27F249498891893D02704988DDE705FC01D09B581F + 324163E82DEB6000068311AAFA5ABCBB3EDBABC7635E03FC7ED717843F7ADCA0 + 00B1A36588A37F62BADD5700762E614369B7E4597809D0A1ED8650DF8ED7567A + F7B8DC6B80C2E213A4516BC3AD713141038812F3410412B79AA72A30992DBD18 + 1E0094AD1A4C8EE763C5A247BD02F82FF95035EA7E1AF2F10000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Recycle_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000083E4944415478DAEDDB0B5054 + D71907F0FFBE7741E51113202A067C20E0243551476BDAC4608CC157D3297977 + 22999A89306D5A52CDC44753C6D14E4DB4C6141F35134DAAA6511B532DD151A8 + 898D12ABB16A8BB03E78892E04D86559D8BB8F7BF7F49CBBEEB20B2C43F7C94E + F8667676EF3D97DDF3FDEE39E79E7B76911042E02B241289CFB26756FC896C7B + 2B1F4D46BBB85DB2FF24C219854FCF76BF2EDEBC079F6C78C56765FBCD315800 + 918C2180C10030D4052218430043001102786F4D3E5A4DDF61802DABF3D1D639 + 0410E9FC2307F087952FA1DD2C443AFFC801443A71CF083B4034C510C010C010 + 40F0018A769C0CCB2098997A377E362F9BD5C5EFB31132808DAF3C1A7280F73F + BF08481501214435C09EF22A58EC0EF1B5BF08510DF0E9991A98396B4008510D + 70EC7C1DCC36871BC16AB763E9930F40A5900E1821A400363EB463E1B9AB3A98 + CCB68010A21AA0B2BE05662BDF0B813DBFBA70CA8010C20250547234E8C96F2A + 7C128DAD2618BB2CBD10EC440293C93C20849000BCBEAD8CBCF36A8E58A15086 + 91E3C171169F086D1D1C96E54EC6308D32BC3743E102200E011D56D23F82C188 + E54FCF082FC06B2527C8E682396E8015DB8E053DF90DCBE6A1B2AE1547CE5E47 + 1767F3799CC0F378B7F0F1F002146E2E257F7C2D37E42D8005EB06A515D750D5 + D0D267B99533A3E497F323036030F3210770459D4E8FD2B335B009DEE87A7D7B + E401D6EC3C1E3608B94289096346BAB7AB6A6E871FA060E3615252B430AC2DC0 + 33BE3574D239825E1C082B2E5DC7D6D7177DB70058B0095193BE13EF1F3A1D79 + 80707601166B97CE75BF5EBDFD68E40122196103686C369053176EE07C652D3A + 051976AC780A3AA3EFEB73B8E2B73B4AA1860DD327DF87990F66625C4A9C57C5 + 0306B85ADF4CF61FFF06752D9D183B760C1286AB71B9AAD60B60DDEEB2B026BD + 6AC91C2F80BC2766A0A9B51D1517AA90344289BCB95391959E220918604FE9D7 + E48B4B0DC8C8180FA5844026978A6517FF7B0D3BDFCC1B142DE0375BFF86E717 + FED0BDCD06C7B27F9CC6839963F0E2FC1912BF010E7F79997CF19F5BB8F7DE64 + F73E8D42E2062859FE13B47545FEBB4106F04CEEC390C9A45EFBBFBEA845F698 + 782C7AE47E9FE343BF002FAFDD47B2B2337BED67083D0122D9057C01B0F8F3A1 + 727CB0E6F9E002B0B8525985ED6F3E37285AC0AA2D0791B760361434FF9E081F + 7E7214BBD72EF10F60E57B9F91F939D35151DDEC1360308C01C55BFFEA0660E1 + 4288D74870E0F33358FFF31FF907F0EEDE72B230671A341A352A2A1B51D364F4 + 09F0F69EF2B026BDFCC59C5E002C18824641903E6AA4B886F0D9897FA1E8A773 + FC033858768134B471786EDE34C42800336DEDD5370DB8D5ACC7F153E7B17DD5 + 0B6819043F9159B3653FF2F3E6223E5681E4C461EEBA7E7CEC1C52E2D4B4FE0F + F907F0D5A57AF231BDFEA78D4B43CE03A3909E122FEE974B25E22A8DEB835884 + 7A71B4AF50CABBF3627571458DAE1DE5976EA1F6462DF2664FC6A35327FA0770 + ADE15BF2BB0FCB903E2E5DDC6613A08CD424A427C522295E8358B5424C9C5584 + 2D8C70162B8C54842D50E839070C262BDA3B2DB058E973177D9838F77BB79BCC + 5E9F153F3CC6E3B5061AB50A71312AC42825E276027DC4C5AAC5EE18A7918B27 + C1159CCD8EB60E0B6A9ABBA06D68A69F6B11D70C1AEBEA6857790C9969C9FE01 + 18CD3652B06E2F32EF5C09D4B452AEC9904A06CC9F9525EE7755C8F38C041AFD + B528DE4160E51DE8E004582C1C8E9CAD7597B1FD84B78B0037AAB5D8F2C6B3B8 + 6B84C63F0036137C69F52E923A7122947464F50470D8383C366D12FD20DA1594 + 522868393B3B4A8900A95C01153D46DE63B5DA05E46A35BE127625C8C22E0082 + C321968BADCC4EE86B87B8586AB1397F9F74FAE255B16E7D01EC5BFFB2FF3341 + 0650F4CE01A2B92B196AA5DC2780522681B6BE596C1532A55A4C4E41F7D985DE + EFED4A94F728B3F538CEF53DA0FBAC0A14CBD13DD80ABC80ECF1A3FB05B0D878 + 706D4DD8F4EBBCC000367E7482DCE2E44818A6F602E0CD9D983333DB0DA051CA + 40A44AC4A89CD760B5A27B42C24E26DF631D6F20100C907778FE4DF7869DE7C1 + DFD9EE0BC040C79E24A5156FE4CF0B0C80DD0C7D53A3476262821780D5DC8527 + 6666B901E4ECA150F709E06AC63D93F704B0F5D15A5873F7461B38805E6FC0FD + A971C85F3C2B308093E7B4E4C0292D5292EFEE1720DC5D20237D54BF00BAA616 + 3CF5FDF1787C66566000576A7464D35FFE29AE0344530BA8AFBF89A2677F20AE + 090404D06A34935F6D3C88891913A20AE0AAF61A36FC62315246C6050640CBC9 + 0BAB76897381FFA70BB0AF2A6D7DBC75B8BA4015BD57D9BB2E5FFC3549C04B62 + EC529890323A6A5A8095CE3C8DBA9B6C1214F892188BDFEF3A463A1C2AC4C7C7 + 7901CC9EEE9C210E3600AED3048D83C3EAA5B9C101D8F9E957A4BAD982E47B12 + A302C0A06FC7A4243596FEF8E1E0009CA8B8420E9DB98EB4FB464705C0EDC6DB + C89D31010B66650607E0DFD50D64E7E173E26D71340034D43560D9E2A9983229 + 353800BA562359B9F5EF60EB83D1007043ABC5FA8205E22530280056BB83E4BF + B51B531EFADEE007A097D02B972F6357F112F78FA782F2D558E1FA7D24796C1A + 4668946E00057DD648692554B188950A74DB79BC2626062A29BDA575F4BE0D67 + 7769BD12156490D2EBBC44705EEBBB1C32AF72EB9DFFCA113C006C4402A9DD0C + B3E03CD60560B158D1545F8B9295DD4BE1410128DE7E8448878F7403A8140AFA + 2C834242BC566D94743FBB33EC193A7D273DA3CEF763F31C8960F52A67F7FAAC + 25B18994178ECD95BD0D464B775DED1483E79D98563A311278275E7B4717E49C + 01C5058B820BB0EDC097A4B1C3817B1246840C802DAC1099CA3B799A385581CD + CE7763F40340C72B4C48946259DE230302F81FB6D0EFEA4DB9AB190000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008154944415478DAEDDB0B7054 + D51907F0FFBE7713209B88261108263C4212468B02C3ABA318D4185EC569045B + 1D89531C49A6B58D82238FDA0C039D3240111B1EC529A88045A8586C843141D4 + 4A82451168F358029B07812492EC66F3D8BB8F7BF7F49EBB64B3BBC9AE99DDCD + 3EC6FD6698BDAF9C3DE777CF39F79C73171121049E422412793CB77CED5FC99E + 37F2D16AB022D451BCF3108E6E7DD16366BD96310A102080920FCE06B5D0854F + CF0F2F80504614201C00A24D2084110588028408E0AD8DF968EFFE1103ECDA90 + 8F8E9E2840A8CB1F3A803FAF7B1E9D462ED4E50F1D40A80BEE1C410788A48802 + 4401A200810728DA7736289D6046CADDF8554E16CD8BCF7763D800B6BFF8C8B0 + 03BCFDC925402CF30B21A2010E9DA981C96A13B67D458868800F2BB4303266BF + 10221AE0F4370D305A6C0E04B3D58A554F3E00854C3C64846105B0B0C3DB175E + B8DA826EA3C52F848806A86ABC0DA3991D80403F5F5A3C6D48084101282A3915 + F0C2EF287C12CDEDDD30F49A0620588908DDDDC621210C0BC02B7BCAC9B697B2 + 850C0D671818160C63F288D0D1C56075EE548C50C9833B190A1600B171E83213 + EF087A03D63C3D2BB8002F9794919D050B1C006BF79C0E78E1B7AECE4155433B + 3EFEFA1A7A198BC7EB3896C59B858F0517A0706729F9CBCBB9C35E0368D06650 + 5A59879AA6DB839E37334694FC76616800F44676D801FAA2A14587D2AFB5B070 + AEE83A5D67E80136EEFF34681052991C93C68D76ECD7686F051FA060FB495252 + B438A835C039BED7F7F063049DD011565EBE86DDAF2CF97101D0A003A2565D0F + DE3E712E3800CD6D7AF2E5C5EBF8A6AA1E269102CE00C16C023436AD7ADCB1BD + 61EF29485923664EBD0FB31FCCC084E438978CFB0D70B5B18D7CF0E9B768B8DD + 83F1E3C7217EA412D5753710EA1AE00CB02C7B3A5ADB3B5179B10689A3E4C87B + 7C3A32D392457E031C2A3D4F3EBFDC84F4F489908B082452B170EE4A4D3DF6AD + 5D861683E7E773B0E20FFB4AB122778E639F368DF2CFCEE1C18C717876E12C91 + CF0027BFB8423EFFEF4DDC7B6F92E3984A261A1460F3C1F2A0167AFDCA052E00 + 794FCC82442276B9E6FC250DB2C6A9B1E4E1FB3DF60F5E015ED874846466650C + 384E112EFDAF0EFB5FCF0B8B1AF0FBDDFFC4F2DC79030068BC77E20CFEB6F117 + 8105A0A1D15C43C99A9FA3A337F4EF0629C05339F320E3CBEF8EF0CED15338B8 + 69A56F00EBDEFA882CCC9E89CADAB61F040865137006A0D187A0568970EC930A + 6CF9F5CF7C0378F3F019B2387B06542A252AAB9AA16D3538CE5557D560EFEBCF + 84450D58BFEB38F216D97F334411543282B431A38519E44765FF41D1730B7C03 + 385E7E9134753078266706626480912F6BED0D3D6EB6E9F059C577024038F401 + C5BBFF81E79665431D2B4352C208475EDF3F7D01C9714A3EFF0FF906F0D5E546 + F23EFFFC4F9D908AEC07C6202D592D1C978A45C21C3D4E2515666A34B61DAD10 + 6665C108852A06AF2E9FE3728C16BA2FB42D9D3873F926EAAFD7236FFE543C32 + 7DB26F00754DDF933FBE538EB40969C23E1D00A5A724222D3116896A15629532 + 61494C2EB5A74FB7595B7F7A66D63E6BA31FACDB0CCEDB5A625F7A7D21E5DBF4 + 9DE1071452B170039C83B158D1D16582B6AD179AA636E8BB4DC28CB1B9A1016B + 9E7D1419A949BE01188C1652B0F93032EE3C09944A856330A490000BE7660AC7 + 694DA09972CFB8BFE109892253DC2E8613D623CACED7C042440E74C25A0580EB + B51AEC7A6D05EE1AA5F20D808E049FDF7080A44C9E0C397F179C016C16068FCE + 98C27F11418C5C8C2A6D2BD4235550C865508F504125970869D00E54B8AB220E + 52A9C491B64C2A75F92E2BDB3FA4A6EDD768B64164B3F0779713BEA393EF6CCD + 2606BA5E569801664D1C0B93C5FEEB947397AE0A791B0CE0C896177C1F095280 + A26DC788EAAE2428E552AF00321E48225308B58016562C95B9A4D5F766C7D31D + 6639FBB68573CD0F63256E7F634F87AE157A03305958301DADD8F16A9E7F00DB + DF2D23371929E24728870C404329731D90B803B8576F0AE05E782B47C0BAB90D + 1540DF6342A2DC8CD7F273FC03A093A16FB53A2424C47B04904B44D034B609FD + 8244AE141064FC312B3730EDBE82B34EE7DC0BEE8E65E678545BFF788363B91F + 6C023A9D1EF7A7C4217FE95CFF00CE5ED090635F6A909C74B70B006BECC182D9 + 590E00DAE689588E188578400DF0F614F006E15E032C4E3BB4CF60EFEC0F06D0 + D27A1BCBE64CC463B333FD03A8D6B6901D7FFFB7B00EE00C6036F6E289D9990E + 0029FD27530E0A60E56F1467EBCFFC50DA3E0D4FED7F28008D8D3750B4E2A7C2 + 9A805F00ED0623F9DDF6E3989C3EC92B807B13A0EF692C83241DA826909E36C6 + 2BC0554D1DB6FE66299247C7F907C09F27BF5C7F40180B44520DA8E1E72A8737 + E70BBF25F07B498C3E0AE393C7460C80D96C86A1E5061D04F9BF2446E34F074E + 932E9B026A755C443401A6A71B2A1B830DAB720303B0FFC3AF486D9B0949F724 + 44440DD0EB3A31255189554FCD0B0C405965353951710DA9F78D7501983FD33E + 470837805BCDB7903B6B1216CDCD080CC077B54D64FFC90BC2B43812009A1A9A + B07AE9744C9B9212188096760359B7FB5FA0EB839100705DA3C1968245C22330 + 200066AB8DE4BF7110D31EFA49F803F01D68F5952B3850BCD2F1D39980BC1A2B + DC7284248D4FC528953CAC014C26335A1BEB51B2AE7F293C2000C57B3F26E291 + A3C31EA0B3AB1752468FE282258105D873EC0BD2DC65C33DF1A31C0032FE5325 + E633A18845AC98E3F7EDD7AB6262A01013986D031762E83C7D40413909C4FC73 + 5EC4D99FF5BD3689CB79F39DFF95C33901D01520B1D5082367BFB60F80EFAF30 + 29418CD5790F0F09E0FFEC44DFEA03B4E3C60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007D44944415478DAEDDA7B7053 + 551E07F06F9E4D00E943B4AD40B1E551DA322A0A4C59DC552C60051171AC0FD4 + 813AE2089D5D77BB0BCE16101904474658502AB2750495878A23BE2A8C2D222A + 144511D82D6D68491F14D24A9B347DE4E67193E33DB7264DD2A47693F4DE6436 + BF7F721FC99DF3FBDC73CE3DE7DC480821F0171289C4EFB945456F9192B58BA1 + 6BB742EC787EDB7EECDBF8A4DFC2F69B633000DB573D8166A38DDF2FFEE0A8A0 + 49173C34D3B5FDE2F6F784077878E5BFC98EB5F92E003163DDD63D787FD3D351 + 005101C46C02610120664401C20120DA04448C284014402480D7D6E4A3B5F3FF + 18E0D5D5F968EB8A02889DBF7800FF2A5A8C76935DECFCC503103B71F7101C20 + 92220A10058802841EA070E751413AC18C94EBF0546E162D4BC07763D000363F + 7DE7A003BCF9C51940AA080A21A201F61CA982D9E6E0B703458868808F4E6861 + 622C41214434C0E11FEB61B23A5C08169B0D4BEFB919310AE980110615C0CA0E + 6E5F78EA820E9D266B5008110D50D97015260BDB07817E3E337FF28010040128 + 2C3E14F2E4B714DC83A6D64E18BBCD7D106C4482CE4ED380100605E0EF3BCAC9 + 2BCFE4F0051ACC30322C18C6EC17A1AD83C1B2B993304CAD14763224140071D8 + D16121FD23188C58F150B6B000CF169791ADCB67B90056EE381CF2E4372DCB45 + 657D2B3EFBBE16DD8CFFB7D07696C5B682D9C202146C2D25DB9F9D3BE8358006 + 6D06A51535A86ABCEAF3BC8531A1F8AFF3C4013098D841077046BD4E8FD2EFB5 + B0DA3DD1F5FA76F101D6947C2918845CA1C4F8D1235CFB55DA2BC20034B518C8 + 37A72FE2C7CA3A982531282E9C2F680D708F5F0C5DDC1841CF778415676B2167 + 4D9836E9464CBF35036393633D0A1E34C0858616F2C1973FA1FE6A17C68C198D + F86B54385F734954001A7440D4ACEFC29B078F6361CE1434B7B6A3E274151287 + 2B9137670A32D392254103EC293D49BE3EDB88F4F471504A086472297FCE1B40 + C8264063FDD239AEEDD56F1CC28373A679C0947F751CB7668CC6E3F3B2250103 + 7C7AEC1CF9FA3F9771C30D49AE636A85C42780984101680D90C9A41EC74F9ED1 + 206B741CEEBBE326BFFD43BF004FAEDF4732B332FA1CA708E7AAEAB073E542E8 + 8CE2FF4BEC859DA5C8BB3BBB0F008D770F1EC15B6B16851680464D6DBD07C086 + DDE58226BD6AC92C0F80FB676743C1E5EF8DF0F6FB87B07BFD92C0008A5EFB98 + CCCB99868AEA963EE7349A5A94FC332F2C6AC0F3AF7F8207726FE701683811E2 + D4121CF8E20436FEF9FEC000B6ED3D42E6E74C855AAD42456513B4CD460F80E2 + 150FA2AD5BFC77834E001A1441AD20481B39829F3F7C5CF6030A9F981518C087 + E5A749631B834773A76288023071B9565F32E0728B1EC77EF8AF0780984D8002 + 2C9AFF27C40D5520296198ABACFB0F9F4272AC8A2BFF6D81017C77B681ECE79E + FFA963539173F348A425C7F1C7E5DCF49BCED062D5727E9C1E0E4193768656D7 + 8E23672FA3EE621DF2664EC29D5326040650D3F80B79E9ED72A48D4DE3F7E900 + 283D25116989439118A7C65095825F1051CA7BAE4FB75947EFF52C6CEF98DDE6 + F51299B17A1E705EC31932696F67A690F51E8FE1C62172AFF50FC66A435B8719 + DA966E681A5B60E834F3F385A6FA7AAC78FC2E64A4260506603459C9F20D7B91 + F1DB9340A58A710D8662B842CD9B91C91FA73581CEDB25521984081B37FD7540 + 8A0EC6CECF46CB4E56C14A242E74C2DA78808BD51ABCFADC23B876B83A30003A + 125CBC7A17499930014AAE677507705819DC357522FF3DB94CC24D5054181223 + E5ABA2422EEF73977CDD65F7705F5BA4B5C8597BE807CB2543CFD3646DF69E4F + 0A4EBFC7725F387EE6025F365F00F44FD4410D850B5F3940D4D72641A594FB04 + B072051AA294F2001482264911E81DEA73E7B85A6F77F4360B8FA4ED3DDB563B + F1FA0D7141F4FEEEF701CC56164C5B33B6FC232F3880CDEF9491CB8C1CF1C354 + FD02546A9BF9662153AA7804058761B3F7BDB63369D6ED9C77D2CE9720CEB0D8 + B99AE3E87DDCDA593BB2C68DE292ECE9477C0118BACC48545AF05C7E6E700074 + 32F493568F8484F87E01145C13912962F8E495123BA47285C7B5BC931A680D60 + 6CC4EB373DD7A135A03F00BDDE809B526291BF60467000474F69C8816F34484E + BA6EC00034540ACF26E00DE0FD3E8102F8AAFEAC97DB400174CD57B1F00FE330 + 7B7A667000E7B53AB2E5BD6FF975007F004AAEBA6B1A5A3C9A005DA4B6FAB8B4 + 504DA0A1E1120A1FF923BF26101440ABD144FEB6F9434C481FEF01C09ABA306B + 7A960B40AD94814895FC93C0BB06387BF2FF15C2BB0658DDC715DCA390FD6DDF + 17C0054D0D36FD65019247C40607C09D278FADDAC58F05DC012CA66EDC3D3DD3 + 05E0FE28F40608A4F7A7E1AFFD0F04A0AAB20A7B37E4F36F92835E12A38FC2F8 + E451FD0208DD04D2D346FA05B0582C30EA2ED14150F04B62345EDE7598743862 + 1017171B113580E9EA84DAC160F5D2B9A10128F9E83B52DD6246D2F509110160 + D0B76362A20A4B1FB83D34006515E7C9C113B548BD71544434812B4D5730377B + 3CEE9D91111A809FAB1B49C9A7A7F8697124D480C6FA462C5B30059327A68406 + 40D76A2445AF7F0EBA3EE80E30735ACF2C31DC002E6A34D8B8FC5EFE11181200 + 8BCD41F2D7EEC6E4DB6E097F00AEF99C3F770EBBD62D71FD712224AFC60A36EE + 23496352315CAD0C6B00B3D982E6863A1417F52E85870460DD1B9F11E93523C2 + 1EA0BDA31B72C68075CBEF0B2DC08E03C748538703D7C70F0F6B00AEBFC2F804 + 2996E5DD3120805F01D8E2E3EA730E99B40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007D44944415478DAEDDA7B7053 + 551E07F06F9E4D00E943B4AD40B1E551DA322A0A4C59DC552C60051171AC0FD4 + 813AE2089D5D77BB0BCE16101904474658502AB2750495878A23BE2A8C2D222A + 144511D82D6D68491F14D24A9B347DE4E67193E33DB7264DD2A47693F4DE6436 + BF7F721FC99DF3FBDC73CE3DE7DC480821F0171289C4EFB945456F9192B58BA1 + 6BB742EC787EDB7EECDBF8A4DFC2F69B633000DB573D8166A38DDF2FFEE0A8A0 + 49173C34D3B5FDE2F6F784077878E5BFC98EB5F92E003163DDD63D787FD3D351 + 005101C46C02610120664401C20120DA04448C284014402480D7D6E4A3B5F3FF + 18E0D5D5F968EB8A02889DBF7800FF2A5A8C76935DECFCC503103B71F7101C20 + 92220A10058802841EA070E751413AC18C94EBF0546E162D4BC07763D000363F + 7DE7A003BCF9C51940AA080A21A201F61CA982D9E6E0B703458868808F4E6861 + 622C41214434C0E11FEB61B23A5C08169B0D4BEFB919310AE980110615C0CA0E + 6E5F78EA820E9D266B5008110D50D97015260BDB07817E3E337FF28010040128 + 2C3E14F2E4B714DC83A6D64E18BBCD7D106C4482CE4ED380100605E0EF3BCAC9 + 2BCFE4F0051ACC30322C18C6EC17A1AD83C1B2B993304CAD14763224140071D8 + D16121FD23188C58F150B6B000CF169791ADCB67B90056EE381CF2E4372DCB45 + 657D2B3EFBBE16DD8CFFB7D07696C5B682D9C202146C2D25DB9F9D3BE8358006 + 6D06A51535A86ABCEAF3BC8531A1F8AFF3C4013098D841077046BD4E8FD2EFB5 + B0DA3DD1F5FA76F101D6947C2918845CA1C4F8D1235CFB55DA2BC20034B518C8 + 37A72FE2C7CA3A982531282E9C2F680D708F5F0C5DDC1841CF778415676B2167 + 4D9836E9464CBF35036393633D0A1E34C0858616F2C1973FA1FE6A17C68C198D + F86B54385F734954001A7440D4ACEFC29B078F6361CE1434B7B6A3E274151287 + 2B9137670A32D392254103EC293D49BE3EDB88F4F471504A086472297FCE1B40 + C8264063FDD239AEEDD56F1CC28373A679C0947F751CB7668CC6E3F3B2250103 + 7C7AEC1CF9FA3F9771C30D49AE636A85C42780984101680D90C9A41EC74F9ED1 + 206B741CEEBBE326BFFD43BF004FAEDF4732B332FA1CA708E7AAEAB073E542E8 + 8CE2FF4BEC859DA5C8BB3BBB0F008D770F1EC15B6B16851680464D6DBD07C086 + DDE58226BD6AC92C0F80FB676743C1E5EF8DF0F6FB87B07BFD92C0008A5EFB98 + CCCB99868AEA963EE7349A5A94FC332F2C6AC0F3AF7F8207726FE701683811E2 + D4121CF8E20436FEF9FEC000B6ED3D42E6E74C855AAD42456513B4CD460F80E2 + 150FA2AD5BFC77834E001A1441AD20481B39829F3F7C5CF6030A9F981518C087 + E5A749631B834773A76288023071B9565F32E0728B1EC77EF8AF0780984D8002 + 2C9AFF27C40D5520296198ABACFB0F9F4272AC8A2BFF6D81017C77B681ECE79E + FFA963539173F348A425C7F1C7E5DCF49BCED062D5727E9C1E0E4193768656D7 + 8E23672FA3EE621DF2664EC29D5326040650D3F80B79E9ED72A48D4DE3F7E900 + 283D25116989439118A7C65095825F1051CA7BAE4FB75947EFF52C6CEF98DDE6 + F51299B17A1E705EC31932696F67A690F51E8FE1C62172AFF50FC66A435B8719 + DA966E681A5B60E834F3F385A6FA7AAC78FC2E64A4260506603459C9F20D7B91 + F1DB9340A58A710D8662B842CD9B91C91FA73581CEDB25521984081B37FD7540 + 8A0EC6CECF46CB4E56C14A242E74C2DA78808BD51ABCFADC23B876B83A30003A + 125CBC7A17499930014AAE677507705819DC357522FF3DB94CC24D5054181223 + E5ABA2422EEF73977CDD65F7705F5BA4B5C8597BE807CB2543CFD3646DF69E4F + 0A4EBFC7725F387EE6025F365F00F44FD4410D850B5F3940D4D72641A594FB04 + B072051AA294F2001482264911E81DEA73E7B85A6F77F4360B8FA4ED3DDB563B + F1FA0D7141F4FEEEF701CC56164C5B33B6FC232F3880CDEF9491CB8C1CF1C354 + FD02546A9BF9662153AA7804058761B3F7BDB63369D6ED9C77D2CE9720CEB0D8 + B99AE3E87DDCDA593BB2C68DE292ECE9477C0118BACC48545AF05C7E6E700074 + 32F493568F8484F87E01145C13912962F8E495123BA47285C7B5BC931A680D60 + 6CC4EB373DD7A135A03F00BDDE809B526291BF60467000474F69C8816F34484E + BA6EC00034540ACF26E00DE0FD3E8102F8AAFEAC97DB400174CD57B1F00FE330 + 7B7A667000E7B53AB2E5BD6FF975007F004AAEBA6B1A5A3C9A005DA4B6FAB8B4 + 504DA0A1E1120A1FF923BF26101440ABD144FEB6F9434C481FEF01C09ABA306B + 7A960B40AD94814895FC93C0BB06387BF2FF15C2BB0658DDC715DCA390FD6DDF + 17C0054D0D36FD65019247C40607C09D278FADDAC58F05DC012CA66EDC3D3DD3 + 05E0FE28F40608A4F7A7E1AFFD0F04A0AAB20A7B37E4F36F92835E12A38FC2F8 + E451FD0208DD04D2D346FA05B0582C30EA2ED14150F04B62345EDE7598743862 + 1017171B113580E9EA84DAC160F5D2B9A10128F9E83B52DD6246D2F509110160 + D0B76362A20A4B1FB83D34006515E7C9C113B548BD71544434812B4D5730377B + 3CEE9D91111A809FAB1B49C9A7A7F8697124D480C6FA462C5B30059327A68406 + 40D76A2445AF7F0EBA3EE80E30735ACF2C31DC002E6A34D8B8FC5EFE11181200 + 8BCD41F2D7EEC6E4DB6E097F00AEF99C3F770EBBD62D71FD712224AFC60A36EE + 23496352315CAD0C6B00B3D982E6863A1417F52E85870460DD1B9F11E93523C2 + 1EA0BDA31B72C68075CBEF0B2DC08E03C748538703D7C70F0F6B00AEBFC2F804 + 2996E5DD3120805F01D8E2E3EA730E99B40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008174944415478DAEDDA0F7453 + D51D07F06FFE36297FFA47B4AD40B1E54F69CBD1A18553C636810243FE087856 + A728837A8647E8D99CDDC4B3F26F1D03CF3882A054C07A04953F6A3DE274158E + 2D224E288A32602B6D28A46929A49592344D9B9797BCE4EEDDC7129234C96AFE + B667F99DD393F772D3E4FE3EEFDEFBEEBD898810025F2112897C962D5DFF36D9 + BDE609683B2DC2F9CB873E4724E3B9C767388FCBCA2BF1CE9F7FE5B3B27E730C + 146049E99BA462C33227403463FD8E4338B8F9A91840C40176AE598A36835538 + 2F7FFF7844932E7E74BAF3F82F3BDF8D3CC02F57BF4E766D2872024433CAB6EF + C77B5B9E8E014415209A5DA05F0044336200FD0120D605A2183180184094005E + 5D57840EE3FF31C02B6B8B70B33B0610EDFCA307F072E932749A6CD1CE3F7A00 + D14EDC35220E3090220610038801841EA064CFF1880C82D9E977E2D77372695D + 02BE1A6103D8FAF4B4B003BCF1E939402C0B0A614003EC3F560FB3D52E1C078A + 30A0013E3CA5868961834218D00047BFD5C064B13B1158AB152B1EBA0F713271 + 9F11C20A60E1C23B169EB9A485D164090A614003D435DF8089E57A21D0C76716 + 4CEC134244004ACA8F843CF96DC50FA1B5C308438FB91782958860349AFA8410 + 1680DFEFAA212F3D532054289C616038308CD927C2CD2E062BE74EC060A53CB2 + 8BA1480110BB0D5D2CF18FA037E0F947F3230BF06C7935D9BE6AA61360F5AEA3 + 214F7ECBCA39A8D374E093AF2FA387F1FD2DB48DE3B0A3785664018AB757919D + CFCE0D7B0BA041BB41556D23EA5B6E782D671913CA7F372FFC00ADED7AF2E5D9 + 2BF8B6AE09AC341E14406FE2C20EE0088D5687AAAFD5B0D8DCD175BA4E485823 + 264FB80753EECFC6E8B404B78A070D70A9B99DBCFFD977D0DCE8C6A851239134 + 44817AF575378075159F450C422A9363ECC861CE735A9745D326A2ADA313B567 + EB9132548EC2D979C8C94C13050DB0BFEA34F9E27C0BB2B2C6402E229048C542 + D9C5C6AB282F5910D116E01ADFEBBBF939824E18086BCF5FC62F664F7696D179 + 42CDE727717FF6483C392F5F1430C0C7272E902FFE750D77DF9DEA7C4E2913F5 + 0B0047A26DBA6EBC71F8241617E4412211BB959F3EA742EEC8443CFCE0BD3EC7 + 07BF004F6D3C487272B37B3D4F113C0122D905686C5C31DB79BC76F711AF0034 + DE397C0C6FAE5B125A001A4D9AD6A8B7005780F9D3F320E3F3F74478EBBD23D8 + B771796000A5AF7E44E6154C466D437BAFB2C6CB1AEC59BD185A43F47F25F6A7 + 3D5558342B5F00A0E14048548A50F9E9296CFECDA2C000761C384616144C8252 + A9406D5D2BD46D069F009BF6D54434E935CB67F602A04111943282CCE1C384D9 + E347D5DFA064E9CCC0003EA8394B5A6E32787CCE24C4CB00931568B8AAC7B576 + 1D4E7CF36F54FCB1B05FB480F5AFFD0D4B16FC0C898364484D1EECACEBA1A367 + 9096A0E0EBFF4060005F9D6F2687F8FB7FC6E80C14DC371C996989C2F3527EF1 + 45E7E7094A2918330B0B91442D79B9C8267C3E4DDA116A6D278E9DBF86A62B4D + 289C3E01D3F2C60506D0D8F23D79F1AD1A648ECE14CEE904282B3D0599298390 + 92A8C420854C580ECBA522614A4C310C3C3D9D9AEA183BF446169DDD669859FE + B187FF3332CEF7EEE497B2AE913824DEE55809A5220E09F17188E71779F43C89 + FF4B18A410BA238597BAAC80198B955F159AA16EEF81AAA59DFF5CB3305B6CD5 + 68F0FC9333909D911A1880C16421AB361D40F67FEF040ABE528EC9501C7FD1E7 + 4DCD119E77548842843A7C6DB8F458F855226313E0AB4FD7F3ADE0D667B39C1D + 84B30A00571A5478E585C770C7506560007426B86CED5E923E6E1CE4FCC8EA0A + 60B730989D9F0DCE46209588F8E9A902F17162A129CAA4EE57C811FE805C13E5 + EC4448C41174C243CB69B256FEF36811CB5F75FA3A8E3F3979EE9250376F00F4 + 27B4414D854B5EAA24CA3B52A1904BFD02D4A9DB845621912B844465FC73B4B2 + BE12E55CCA2C1EAF73EC003B82B5F170F6DBBF43B07136E48E19E117C06CE1C0 + DC6CC3B63F140607B0F5ED6A728D912269B0A217C08C49E385D7395A007DA4C9 + D3566047EF5999D5C657DE7E3B39CFE64D512C5ED01C57FDF6FFD9858D127F00 + 7A7EEC4991B378A1684E70007431F49D5A87E4E424AF00B4C2F17271D0008E16 + E109E068453F1440A7D3E3DEF404142D9C1A1CC0F1332A52F9A50A69A977FA05 + 884617305B6EFD3AC51B80B6ED0616FF780C664DC9090EE0A25A4BB6BDFB0F61 + 1FC01F808C1F2425B23821797A6F164B656EEFE599545F5B0063251EFF73EB7D + 680BF007D0DC7C15258FFD54D813080AA0C36022CF6DFD00E3B2C6F619808642 + E6DE053C01FAD2FF3DFBFE0F01B8A46AC496DF2E44DAB084E000F872F2C49ABD + C25CC017809C6FEEAAE676B72E4037A92D5EDE3A525DA0BEAE1E07361509DF23 + 06BD25466F85496923DC00385337664EC9750228E51210B15C980B78B6007AD1 + 389BF716E00FC2DBE8EF2CE3386100F406C0F2334F83F62A9D0405BF2546E3AF + 7B8F922E7B1C1213139C00ACA9073F9F92E304709D0C79020432FAD3F0D5FFFF + 1700D36D84D2CE60ED8AB9A101A8F8F02BD2D06E46EA5DC93E0122DD05B23287 + FB04D0EB3A313E4581158FFC243400D5B517C9E153979171CF8801D102AEB75E + C7DCFCB1983F353B3400FF6C6821151F9F1196C50301A045D382950BF330717C + 7A6800B41D0652FADADF41F707074217B8A25261F3AAF9C22D302400ACD54E8A + 36ECC3C4077ED4FF5B008F77F1C205EC2D5BEEFCDA3C245F8D156F3E48524765 + 60A852EE04983EF9D63E417F02309B59B43537A1BCF4F656784800CA767F42C4 + 4386F57B80CEAE1E48193DCA563D1C5A805D9527486B971D77250DEDD700FC78 + 85B1C962AC2C7CB04F00FF01834108F97CEF1C650000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000082D4944415478DAED9A7B7053 + 551EC7BF7936298FA6156D2B506C7994B68C8A14868A3B0265592C20B23B2888 + 2CD61147607677ECEEC24CA1B295959D650415E9028B233E782875C4D1451801 + F105C54510704A1B0AE98396B4B4CDA38FBC73CFDE734B6E9B3489D9BC6E3B93 + EF3FB9F79C9B9BF3FBDCDFEF777EE7DC880821F0259148E4B36FC5CBEF93DD1B + 96A3B5D30EA155B2E3303E78E5F73E07EBD7C618801001680D36EEFCF5435F45 + D5E89796CDE68F4BCBCAA30FE0E9E277C8DE4D2B790042EAE5370FE1E096E762 + 00A20E60E786156836F6E480B2C3A7A36AF4DA2767F1C77FDFF961F4013CB5EE + DF64D7A6421E80902A7D633F3EDAFA420C80A000840C8101014048C5000C0400 + B110105031003100020178ABA4106D0360352818801D1B0BD1DE150320B4FDC2 + 0178BD78250C26A7D0F60B074068C3FB2AEA000693620062006200C20FA068CF + E9A824C1ACB4BBF1FCBC1C3A96A09F46C4006C7B6166C401BCFDC525402C0B09 + C2A006B0FF54152C76863B0E16C2A006F0C9590D4C666B4810063580E33FD6C1 + 6463780856BB1DAB1E7B00713271C010220AC0E6886C2E3C7F4D8B4E932D2408 + 831A40657D2B4C56473F08F4F3C5859303821015004565C7C26EFCF6B58FA1B1 + AD13C66E4B3F0876224267A72920081101F0E75D27C96B2FE673038AA48C6607 + CC668B4F08ED1D66AC2E9884A14A79741743D1024018273AACC42F84A6DB0694 + 2CCF8B3C80C6163DF9F6E20DFC58590BA7528537D6CCE101ACDB753CECC66F5D + 3D0F95756DF8FC87EBE836FB7E0BED743840BADA316DD27DC87B280B635313DC + 061E32806BF52DE4F0971750D7DA8531634623719802559A5BD8F9A782887B00 + 150D83A31535A86A68F5DA6F359BF0C4CCC9686E33A0E262159287CBB1646E2E + B23352452103D87FF41CF9FA72033233C7412E229048C55C9F0B80DEE4883800 + 97EAB43A1CFD41039BD31DBA4E67C0EFF2A7F0E7749638F9D5193C94351ACFCC + 9F2E0A1AC067DF5C215FFFDC847BEF4DE1DB9432915700257BBF8C1A08A94C8E + F1A347F0E7742CD4032412B1DB75E72EA991335A85C71FBDDF677EF00BE0B9CD + 0749764E56BF760AE16ACD4D94152D8CAA07F4D56D7D175B23E8B8445871F93A + 16E7E7F60340F5C1915378A7E4E9F002A0AAAD6B1414001575F5665D17DE3E72 + 060B66E542C6DAEF09E1BD8F8EE1DDCDCF0607A0F8AD4FC9FCFC69A8A86EF945 + 00D10C01AACDABE6F2C71B771FE30150B920A89422947F71165BFEF0447000DE + 3C708A2CCC9F0AA552818ACA46689A8D3E01082917002A0A412923C8183982AB + 1D3E3DF15F14AD98131C808F4F5E240DED662C9B3715F132C06407AA6FEAD1D4 + A2C37717AAB167DD62688DC2FF4BEC6F7B8E6269C1C3500D91212569283FD643 + C7CF233541C18E7F4A7000BEBF5C4F0EB1F37FFAD874E43F301219A92AAE5DCA + 96DEB43A4B504A6177F478C02BFBCF72F3713414A78CC7FA658FC0C930ECD4EC + 848D4838A35DD2680D3875B909B5376AB164D624CCCC9D101C809A86DBE41FEF + 9D44C6D80CEE9C16409969C9C8481E82649512431432B7EB5D0B2307D37B4FAB + A377CEEE730887C75C2E11F7CFE0B44522F1309EAD43A41E6B1FB3CDCEAE092C + D0B47443DDD0027DA785AB151AEBEAF0D76766232B3D25380046938DAC79F500 + B2EECC040A451C5F0CC5B1039B3F239B6BA79E102F172352F2B6E4EEB6B16B04 + B393AB444F9CAB62BD40C403270E3B07E046B51A3BD62FC55DC395C101A095E0 + CA8DFB48DA840990B399B52F00C666C6DCE959EC932450CA25B854730BAA614A + C4C965500D55726D543481525157954A7B1FA74C2A75FB2D572851D1F8355919 + 88181BFB745917677FC3D06D87D56286AEDBC1CDFD39E34671D75AD8FE0BD5F5 + FC773D01D03F5086540A17BD564E9477A5402197FA04209588D8EA4C81F8B81E + 2F50B0A998BA6A5FF7E70D75828B5D6F4F97DE8B6B73122FDF236E2164B5D979 + 003FFD5C054616EF06C0626397D1EDCDD8FE9725A101D8F6FE09D264962271A8 + 4230009EC6BB00D05CE3603BCE5CBAC68DAD2F007D9705C9722BD617CE0B0D00 + 5D0C5DD0E8909494E81740A5A699CB0B12B90272A90832B6CDEEE549F289B24F + 9FA7C1AE1D60DE58271BC24CEFFF109C0E271702FE00E8747ADC9F9680C24533 + 420370FABC9A947FAB466ACADDFD00CC9E3A91BBCEE501F4931A4FA72406FD93 + A2BFA7EF821288FBDBA8918CD32F006D732B163F3C0EBFCECB0E0DC0558D966C + FFF03B6E1FC01B003A603A03840AC09FFB73FDFF2780FAFA9B285AFA2B6E4F20 + 24006D46137969DBC7989039DE2F00CF10A03B74362FB70E6708D00448E50DC0 + 35750DB6FE7111524724840680ED27CB37ECE36A017F0064EC342991C5DD31DE + 09B1D4BD48F2342A500F30DB89C7777AEE433DC01F80AACA2A1C78B5907B8B14 + F296189D0A135347050C804A21730F014F0081C4BFB7EC1F0800ABD50AA3F626 + 2D8242DF12A3FAE7BEE3A48389834A95E015809C8D7D757DCB80090173572794 + 8C191B57158407C0DE4FBE27D52D16A4DC93C4037098BA30272F8707402B3F22 + 96BBD502FCD365FAD7FE8180F096FDF93EB67274DC39F704A0D7193031598155 + BF7D243C004E545C2547CE5E47FA7DA378005653377E9397CD03F0560CF51A12 + 5CF5E72BFE7F09C0ADC65B28983E1E0B66648507C04FD50D64EF67E7B965B12F + 00D10E81CC8C913E0134D43560F5A25C4C9E98161E00DA362329FED77F40F707 + 078307DC50ABB165CD026E0A0C0B00AB9D21859BDEC5E4290F0E7C00ACF75CBD + 7205FB4A9FE55F9A86E5D5D8DA2D0749CA98740C57CA077408582C5634D7D7A2 + ACB8772B3C2C004A777F4EC4C346F80430503CC0D0D10DA9598FD2358F8717C0 + AEF26F486307837B1287F300664DEBD9291A4800D87C85F14962AC5EF2684000 + FE07550507F978492A420000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000081A4944415478DAEDDA0B7014 + F51D07F0EFBDEF40C94334894030811092506C1418282D02A1883CC4764A2B02 + C538C51198B663A6EA34BC2652E9940A2A12A1E2181F3C94A8385A8411026A85 + 487908D8901C2197E492701793DCE5F2B8F7DDBFFBDF709B7B7BDE5D6E9399FB + CD64B2B7BB49F6F7F9FFFE8FDD8D80108240211008021E2B7CFE00D9FBD7E5D0 + 18ACE03B4A5EFB10659B5704BCD8A039460BE09FFB2B629AF4332B0BF80558B5 + F91DB277C30AB475DB629AB8BFD8B4EB30DE7DFEF771005E00349D7D5DE0A543 + A7629AF4D3CBE772DB25A5E5B10778ACF84DB26FCB6A0E80CFD8FCCA211CDCF6 + 441C20E600BB37AC82D6D03706941E3E1DD3A4D7FF760EB7FDB7DDEFC51EE077 + CFBE4EF66C29E400F88C9297F7E3FDED4FC6017805E0B30B0C0A003E230E3018 + 00E25D80C78803C401780278755321DA07C1DD206F00BB3616A2A3270EC077FE + FC01BC54BC1A9D4607DFF9F307C077E2EE117380A114718038401C20FA0045FF + 3A1D93413027FD4EFC61411EBD96B05B63C000763C397BC001DEF8EC32209444 + 8430A401F65754C36C73B2DBE1220C69808FCEAA603459224218D200C72F34C0 + 68757208169B0D6B1EBA1732893064840105B0DA07762C3C7F5D836EA3352284 + 210D50D5D806A3C5EE8340BF3FB5243F2484980014951E8B7AF23BD73F84E6F6 + 6E187ACD3E083622409D5A8BD9B9299894350A69231306FE5EA0B9554FBEBA54 + 870B55F5100C4FC28B4F15B01734906130D96132998322E83B7410131BA64DBA + 0733EECBC1B8344F8C8801AE37B692C39F5F44435B0FC68E1D83A4DBE5A86FE9 + 880900713AD065214111EA353ACC9A9C016D7B272A2F5523658414CBE64F416E + 669A206280FD47BF215F5C51233B7B3CA402029158C81EAB6D6AC7CBEBE67100 + CFEE391EF5E4B7AF5D80AA86767C7AEE067A4D81DF423BEC762C9DF513EE331D + 234E9E3A83FB72C660E5A2E982B0013EF9F22AF9E2BB16DC7D772AB74F21E9AB + 8A6AD54DECFEF3C201AF001AB41B1CADAC45B5BACDEF718BC9884766E7432412 + 7AECFFE6B212796312F1F00393038E0F41019ED87A90E4E6E5F8ECA7082E00BD + D13EE000AE68604AFDE83915AC0E4F749DAED32F008D778F54E0CD4D8F451780 + BD98268D07C0A67D9FC70C422C91226BCC48EE336D8C45B3F22161F2F74678FB + FD63786BEBE3E10114BFFA315954300D9535AD3EC7EA1B9A515AB424A615E01E + DFEB7B9835828E1D082BAFDCC0E2395358001A2E84448500E59F9DC5B63F3E12 + 1EC02B072AC89282A95028E4A8AC6A864A6B18340034E860A7D5F5E08D236758 + 001A14412121C81C35929D393E3EF15F14AD9A171EC007272F11758709CB174C + C5300960B401354D7AB4B4EA587577805876011A5BD7CCE7B637EE3D86DFCC9F + 86C4E112A426DFC65DEBA1E3E791962067AEFFFEF000BEBED2480E31F37FC6B8 + 0C14DC3B0A996989EC7E31B3FAA4737382420C1B3305392144ACC3EEA4F33B20 + 1339D96469D2AE50693A5171A505F575F558366712664F99101E40ADFA7BF2F7 + B74F22735C26FB992E80B2D3539099321C29890A0C974B3CCE77BF2FB03BFBB6 + 2D76FFD3A4EBF6D6157249688832661D22F65AFE9BAC36747499A16AED8552DD + 0A7DB7999D299A1B1AF0CCCAB9C8C9480D0FC060B492752F1C40CEAD99402E97 + 718B21990858343397DD4F2B81AED804425178CDF923C355751491BE98397541 + 0993AD1F9CD86D2C405D8D12BB9E7B14778C508407405782AB379691F4091320 + 654656770007F3871E9C9609BB834021158108A5182613B2A528118B7D5A492A + 0E7ED3E65D3DEE954313A5C7E9DFB2325F34598BD5C69D7BEE7FF5DCB9DE00F4 + DFE7225A0A17BD584E1477A4422E157B0038AD26CC9F9EE303408396B3ECD692 + D95F17F02E7F8FE41D7DDB5687E775D998CFEEBFEA8700CC56E626AA438B9D7F + 591619C08E774E9016931849B7C983025CAEBDC9760B9154CEB6B64424602F3A + 504BDBDD8E7927EB0D647130D5E3EC7F09EBB03B90377E74DFB956072ED634FA + 00E87BCC48915AF05CE182C800E8CDD045950EC9C9490101C44CB26289DCA702 + FCB5BECDC124E0ECDF1F4AEB07AB000AF0ED77D5704A867900E8747A4C4E4F40 + E1D29991019C3EAF24E55F2991967A276F00DEC9BB0068F9DB9903672E5F67AF + CD1D40A36DC3AF7E361EBF9C911B19C0359586EC7CEF3FEC73806000552AAD47 + 179032556BF5F3ABA3D9058201343636A1E8D15FB0CF042202683718C9D33B3E + C084EC2C1F80B95327B2E7B92A807EA7C9D399C0DFE22858EBBB5042297F2B4D + 92997683015C57D662FB9F96B28FCA2202608E93151BCAD8B5803F007AC1C3A4 + C2880182953F7BFC4702545755E3C00B85EC3B84881F89D1A930296D7450003E + BA001D00697803582C1618344D741114F923311AFF283B4EBA9C322426260404 + 90300B259144762B79078462CF65B27752A156806B85E7DEFA6C524C05040230 + F57443E13461E39A85D101D8F7D1D7A4A6D58CD4BB924302A0E1BDB60FB6F871 + 018432FA8702A0D77562628A1C6B7EFDF3E8009CA8BC468E9CBD818C7B46FB05 + 90327D5FD9D83A68BAC0CDE69B58383D0B8B67E64407E0DB1A35D9F7C979F6B6 + D8056037F660DE8C3C0EC0DF72986B5D274DD87F050483F037FA73C7981B22FB + ADCFDE00EA0635D62E9D82FC89E9D101D0B41B48F16BFF067D3EE802B0187BF1 + E08C5C0EC0DF62A83F91F0567F81FAFF0F01D42995D8B66E31F7B62862008BCD + 490AB7BC85FCFB7F1A1020D65D203B73947F00E667AF5DBD8AB292C7B9F78651 + 7935B67EDB41923A36032314D2415D0166B305DAC67A9416F73F0A8F0A40C9DE + 4F89F0F691831EA0B3AB1762931E25EB1E8E2EC09EF22F4973971377258D18D4 + 5D8019AF90952CC4DA650F8404F07F3F0908F98CFA931E0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Recycle_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008574944415478DAEDDA0B7053 + 551A07F07FD2244D5AE9CB6A538142CBA32F07451E03CBAE0FCA220B28BB3BA2 + 22B050479DA5CCEE8E9D45675B1E535DBAB328A848815D1C8BCA4329ABAE8A32 + 42415DA5220F0B6E6943A1EF9296B669D247DE3767EFB96D6E93E631D924CD2D + 33F9663A4D72D3E47CBFF39D93EFDE54440881A71089441E8F3D537C84946C78 + 0C5DFD16EEFED6FD2711CA285CBB80BFBD79F7BFF156C1E31E07EB35477F0172 + 5F3A48F6FE65050F206414EE3C8AD2CD2B850150EBCC42E78FA2DDFF121EE095 + 03E5214D7AC3AA1C6101566F7E97EC2D5C898E5EE197C0A69D47F0DE4BBF0B03 + 0802A0D60E2C81D70E9F0A69D2CFAF98CFDF2E2A290B3DC053056F937D5BD6F0 + 0042C6E6370EE350F1D361809003EC2A5C8D36DDC01E5072E47448935EFFF843 + FCEDBFEE7A3FF4004FBCF04FB2674B2E0F206414BD7E001F6C7B2E0C20288090 + 4B60540008196180D100105E02024618200C2010C09B9B72D1390ACE060503D8 + B931175D7D6100A1F3170EE0B58235D0EA19A1F3170E40E8C41D23E400B75284 + 01C2006180E003E4FFE3744836C1CC943BF0CCA26C3A16BF6763C400B63FF7E0 + 8803BCF5792520960684704B031C28AF86D162E36EFB8B704B037C78A60E7A83 + 2920845B1AE0F8F906E8CD361E41AB37236FE93D888E8CF019614401CCD691DD + 0BCF5D55A3974DDA11A152D58818B11929C909C898A84446AA12C989B123DF09 + B6B477936F2E5EC7F9AA7A604C22420150D5D801BDC9EA82402B214D19CB8E49 + 0BD5B506488805B3EF9E88B9F7656252B23346C000571BDBC9912F2FA0A1A30F + 13268C47FC1839EAD45A2780FC922F829EFC8EF5BF424B672F74FD4617040B11 + A1F5A616333227402E1583616C68EBD4A2E2623592626458BE7026B2D2924501 + 031C38F63DF9EA5213D2D327432622889088B963F5AD5D78F5F739DC80463274 + 062B0C06A34F08F6A01572F2D477B82F733C562D9923F21BE093AF2F93AF7E6A + C55D7729F9C71452514801888D418F897845A8576B70FFB4544444889DFEF6FB + 4A15B2C7C7E1D107A679DC1FBC023CFDF22192959DE9F23845A86DEEC4EB790B + 788017F61C0F7AF2DBD62D425543273E3D7B0DFD06CFDF4233562B96CECB7601 + A0F1DE47E5787BD353C105A0D1D0ACC6AE3F2D1EF10AA04197C1B18A5A543775 + B83D6E32E8B1E4FEE9A0AB6038C23B1F7C81FD2FAFF50FA0E0CD8FC9929CD9A8 + A869F708D0ADB78E3800FF9E6CA91F3B5B0733E38CAED16879001A7684388508 + 659F9F41F11F7EED1FC01B07CBC92339B3A050C85151D582BA369D47804DFBBE + 0C1984442AC394F189FCFDEABA1B1C000D8AA09012A48D4DE4F68D8F4FFC80FC + D50BFC03387AF22269EA3260C5A2598892027A0B50D3DC8DD6760D2A2E5D4349 + FE2321AD00C7B8D9DDC7F6081A6E23A463796CE16CC4454BA14CB88D1FEBE1E3 + E7901C2B67C73FC33F806F2F3592C3ECE77FEAA454E4DC331669C97103332016 + 713B73AC42020BBB01D9208610613F3FA04193B607ED51CA2FB5A2FE7A3D963F + 74371E9C39D53F80DAA69BE46FEF9C44DAA434EE3E6D80D253929096148DA438 + 05A2E543EF4A374383D1041D4B4F37258DC186EE5E13B47D46184DECEF7EF6A7 + D7C03F5FDBAB777AAFB831510EB71550C823111B1589289988BB1FCFFEC446CB + B9E548E1E924D8C360B6A0ABC788BAF67EA89ADAD9F73572FB444B430336AC9A + 8FCC54A57F003ABD99E46D3D88CCC14F02393B287B331419012C9997C5DE67B8 + C146C946B60A86B7DCFD6666B0256670EABC0A06CBC07193D50662B57000D76B + 54D8F9E293B83D46E11F00ED04D76C2C252953A742C6EEAC8E000CFB460FCF4E + 83952150C82240C43244458AB952944A06664826F1FDACD53141AB6D28191AF6 + 52D79B6C6C62844B56C4B095C54470CF3DFBDF7AFE6F8703D07F9E0AA815CE7F + B58C286E57422E937805A8ACBDC15545844CCE252E65CF562D8CEB6BDB13B53A + 1C330F7B9EE3DAE692625848DBD037508C9541F6E4713C963B00A3996DA1BBDA + B0E3CFCB0303D8FEEE09D26A9020FE36B94F154083F6E59183E70CF659F496A0 + D3EC0F620C47A1988E2F65325BBC0274B37B4F92CC841773170506404F862ED4 + 69909010EF0460331BB0704EE6A805D068BA312D2516B9CBE6050670FA9C8A94 + 7DA342B2F20EAF00422D0123BB195EA869740150B775E0373F9B8C5FCECD0A0C + E04A9D9AEC78FF3FDC75004F001236598954EE5201EE66DFC2B009D8861EF765 + F6BD550005F8F1A76AD8A4514E008D8DCDC87FF217DC358180003A757AF2FCF6 + A3989A3E453080E1C9DB0168F95BD903DF555EE5C6E6087055558B6D7F5CC65D + 2A0B08803D4E56169672BD803780AABA36A725C0F62F30BB79E9602E016F00D5 + 55D538B83597BB821CF02531FA51189F3CCE0560FEAC0CEEB8BD02E86F9A3CED + 05DCB5C7DE66DF8EE24BF99B699236C6238089ED3C75EA66DA04057E498CC6DF + 4B8F931E5B24E2E2625D00E8806917182880B7F2E78EFF1F0086BE5E286C066C + 7C76717000F67DF82DA96937427967824700219600DD00690C07E8D668919124 + C7B3BFFD7970004E545C211F9DB986D489E33C0248D95639421A39983C03B144 + EAF45AC393F2B502EC3DBEE3EC7349B115E009E046CB0D2C9E33054BE7650607 + E0C79A26B2EF9373DC69B12F00341CAFD2BA03F065FDBBDBFD7D01686A68C2BA + 6533313D23253800EA4E1D29D8FD19E8F54177003276EDAB1ADB47CD12B8AE52 + A1386F29FF6D51C000268B8DE46ED98FE933EEE501ACFA3E2C989BCD03B86B87 + F9D9B5D184DD5780370877BB3F7FCC6AE53640170016EFCAE5CB282D5A8B48A9 + 38380034D6171F22CA09A98851C8380093BE1F0FCFCDE201DC35434389F8D7FD + 795AFFDE008C4613DA1AEB51523074293C2800457B3F25E231891E0142BD04D2 + D3C6BA05D0F6F44362E84651DEA3C105D853F63569E9B1E1CEF898515D01EC7E + 85290962AC5BFE804F00FF039AEE1AF9D45D29580000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008754944415478DAEDDA7D7453 + E51D07F06FD2244D5AA02F204D155ADAF2D2B41E1DE5E5D0E1A6D24E1054E6B6 + 3A1118D4A39E0167DBB167E8B1E5E554A53B3241450A4C3C16B58052A64E8772 + 06157548610802AEB401DAA6A525296DF3D297BC27CFEE736B2E6DDE569234B7 + 9C93DF3F4DF3909BE7F7B9BFDF739F7B8B8010025F2110087C8E3D557680EC7E + A1006A83157CC7861DFFC0DBC58FF99CACDF1C8301285FFB1B74F5D9F8CE7F64 + 006CDA7334AC4997ACCCE717A0F0C5BD64D70B4B464405946C3B888A0D4BF901 + 18096B40E98EBFF30FF0D7CAEAB026BD76591EBF00CB37BC4776952C45470FFF + 2DB07EDB01BCFFE2EF2200BC00A8F5FD2DF0DAFE2FC39AF4B34BE671AF4BCBAB + C20FF044F13B64F7C6151C009FB1E18DFDD857F6640420EC00DB4B964363E85F + 03CA0F1C0B6BD26B1EBB9F7BFDF2F60FC20FF0DBE7DE223B371672007C46E9EB + 95F870F33311005E01F86C811101C0674400460240A405788C08400480278037 + D717A27304DC0DF206B06D5D21BA7A23007CE7CF1FC06BC52BA0373AF8CE9F3F + 00BE131F186107B895220210018800841EA0E86FC7C2B2082A526EC3530BB2E9 + 5C023E1BC306B0E599FB861DE0EDCFCF0142715008B7344065751DCC3627BA0D + 7A3C383B03E3C7C661EC18D94D61DCD2001F9D6884D1646111541A1D8CBD3D68 + 576B902A4F404A72223227C991992647F2B8B8E1DF07B4B6EBC837671BF05D6D + 13307A1CC20170F83B158C562787A0375AF1E83D0A76ECFC956BCC9CF4505E51 + 41446C987DE724E4E62890913C182368804BCDEDE4C0BFCE40D5D18BD4D48948 + 182D45A35ACF0258EDC3BB169EBEA4460F93B4378426B58EFD37515142381C4E + 683AF5A8395B87A43112143C301359E9C982A0012A0F9D245F9D6FC1B4699321 + 1110448984EC58B8006A9B3B60B4D8BD226433A52FEE9F0E8BE00A3A7EF4CB6F + 91A39888658BE6080206F8F4EB0BE4AB1FDA70FBED72EE3D9958E015A0A8FC8B + 9027BF75CD8368EDEC81A1CFEC81602302B45DD7638622D52B028D93E794C89E + 188F47EEBDCBE7FAE017E0C997F691AC6C85C7FB14A1A9AD0BAFFE3E8F9DD070 + 86C16487C9641E12823B008DF73FAEC63BEB9F082D000DCD756D580088D3816E + 0BF18BD0D0DA89B97767784578F7C32FB0E7A595810114BFF9095994371B35F5 + ED1E63AD9A2EBCBE3A9F03786EE7E19027BF79D502D4AA3AF1D9A92BE833F9FE + 2BB4C36EC7FCDC6C8F5688970950F5F90994FDE1978101BCB1B79A3C9C370B32 + 991435B5AD68D418B831D55535B6FF69E1B057000DDA06876A2EA3AEA5C3EBB8 + C564C4A29F4F675F5304999820FD8E716CD57C72E43F285A9E1F18C0C1A36749 + 4B97094B16CC428C1830DA80FAAB3AB4B56B71F2BF4D2C80CE681F760057A8D4 + 5A1C3AD508AB6330BA56ABC7AFF366203E560C79E2286EAEFB0F9F46729C9499 + FF8CC0008E9F6F26FB99EB7F5A461AF2EEBE03E9C9F1ECFB22A180EDCB389908 + 167BFF645EAE3CCE9E897044FCE818E464A620614C2CC633D7FCC4B858366957 + D02B54F5F936343534A1E0FE3B71DFCCA981015C6EB94EFEF2EE51A467A4B3BF + D30DD0B49424A427C522295E8658A9D8E33303F70576E7E063BBB0028DE81FF7 + 20F4040C3CBE8D5903BABACD686CEF83B2A51DBA1E335B25AD2A15D62E9B0745 + 9A3C300083D14A566FDA0BC58F5702A9349ADB0C458BC558943B85F9DD0119F3 + 7E8C4488E10CF70D579FD5C16E7834DA5ED4D4B5C3683673C8C46E63011AEA95 + D8F6FCE3F4E6293000BA135CB1AE82A44C9D0A09B3B20E04A0919F3389FD2966 + C6CE5DBEC694A60CD11231E247C9209344B1637401A541A144A228EED8629168 + D077D1B3E80ADABF468B1302A715262651AB8340DF6783C56C82B6CFCE5EFE72 + B2D260B1DAD82A38C5AC47AE7007A0FF7526A8AD70D1AB554436560EA9443408 + C0C17CD1FCD9E91C409498191309D84485223162190057897A2B7D9B83B97C39 + 6FBC3FA8751CFDAFAD0EE2F619828187F20760B6321BA82E0DB6FEB92038802D + EF1D216D2611124649BD02D0C9D2B34D8412C4440B390057BF7A03A0A5EB1E37 + 0B207098617644F904D0F59A9124B1E0F9C205C101D09BA1338D5A242626F805 + A02D10CD54789444CA5682384AC04ED857A2F60163EE89BA03591C4C0B3B6FFC + 05CA6177207BF284FEE3F800D06A75B82B250E858BE7060770ECB492547DA344 + B2FCB62155000D29B31B715580B7F2774F30D0F2F707A0D674E0D19F4EC62F72 + B38203B8D8A8265B3FF837FB1C602080D36AC20373142316A0B9F92A8A1EFF19 + FB4C2028804E83913CBBE520A64E9BE217C0BD05244CD55ABD1C3AD42D6066AE + 1267EA9B3D002E292F63F31F17B38FCA820260C6C9D2920A762FE00B40C4F4BB + 482CF5A88050ADFEFE2A80027CFF431D9CE298410075B575D8BBA9907D781AF4 + 23317A294C489EC01B807BF22E005AFE7666E0DB7397D8B9B9002C160B0CEAAB + 741314FC23311AAF541C26DDCE68C4C7C7F904A86DD484BD057C01987A7B2073 + 9AB0EEE985A101D8FDD17152DF6E867C7CE2208079B332D9715705D09F34797A + 63E284E7D6D8DFD977A10CA5FCADB4CC9D0E9F003AE6EE3033498AA77F754F68 + 008ED45C241F9FB882B449133C00E884E97D40B000FECA9F1DBF09806BADD7B0 + 70CE143C3457111A80EFEB5BC8EE4F4FB3B7C5BE00F86801BA00D270076851B5 + 60D5E299989E99121A0075A78114EFF827E8F3415F00DEEE07FC2535D40A30D9 + 88DB67FA8F432BC01740835289B2D50F717F2D0A1AC0627392C28D7B307DC64F + 860440432A1EDC02FE363F2E80A1ACFEFF1780F99E8B172EA0A2742573CB2E0C + 0D008D3565FB883C350D6364120F0009D3FBCAE6F611D10266B3059AE6269417 + DF78141E1280D25D9F11E1E8711C80DDD88BFCDC6C0EC0DB76983BBB4E9AB0F7 + 0AF007E16DF5E7C6EC7676017407D077F74164D2A174F523A105D859F53569ED + 76627CC21816C062ECC3FCDC2C0EC0DB66E8462281EDFE7CF5BF3F0066BDC294 + 44215615DC3B2480FF01D4A713F9B05CD3010000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000085D4944415478DAEDDA7B7054 + D51D07F0EFBE7713F34EC9264042120849B05A4260B0B4A2845AAA562AD35811 + 28C4A94C816967CC1418131E8D9674A4828A868738069587128A568B3285885A + 255A1E0236240BE449C2EE92D76E5EFBDED37B6EDC25FBBA86DDCDDE74667FFF + 6CF6DEBD9BF3FBDCDFEFDC736F222084C0570804029FFB563E7F94EC59F728D4 + 7A33F88E3FEF3986D7D62FF23958CE1C8305B065DFC990265DBA623EBF00BF2B + 3F4CF63E5338262A60D3CE7FE0F592C7420F50B1F6D7E81AB0F09DFFD800E0B3 + 057801287AF600D9FDCCE2315101A53B8EA072D3127E00C6C21C50B6F3EFFC03 + FC6D7F7548935EBBB4805F80659BDE22BB4B97A0A38FFF16D8B8E330DE7EF6B7 + 61005E00D4BAA11678F1D027214DFAE9C5F39C3F975554851EE0899237C8DECD + CB9D007CC6A6970FE160F99361809003BC5ABA0C1AFDD01C5071F85448935EF3 + D8FDCE9FFFF2EA3BA107F8CDBAD7C8AECD454E003EA3ECA5FD7877EBCA3000AF + 007CB6C09800E033C200630120DC023C4618200CC013C02B1B8BD03906EE0679 + 03D8B1A1085DFD6100BEF3E70FE0C592E5D00DDAF8CE9F3F00BE131F1E2107F8 + 7F8A304018200C107C80E23DA74232092AC4C0B494282427462129211AE31262 + 9010ADA0631BF1D91935806D2BEF1B7580D73FBA009D91207B7C2C345D7A5C6E + 5443ABD6204D1987D4E478644F52223B5DC900C58CFE55A04DDB433E3FDF80B3 + B54D4054224201B0BFBA0E468B1D268B058BEECD756E1F34D971F1DA0D664C3A + A8AE35434C2C9875E724DC939783CC64578C8001AEB468C9E17F9D4373473FD2 + D226222E4A8E46B52E2400474F3762D060F28A50DBDCC5BE8A4442D86C76683A + 75A8395F87A468290A1FC8476E46B2206080FDC7BE229F5E6CC5D4A993211510 + 88C442765FA8008E9F6DC6A0D9EE44D00D9A51383717368B092AF5002443C361 + 111C413F77F2932F919733114B1F9A2DF01BE083CF2E914FBF6D474A8AD2B94D + 2111B80098ADA33B179EB9A2461F93B43B42C1F434687426F633DE10687C7541 + 85691363F1C8DCBB7CCE0F9C004F3E7790E44ECBF1D84E11420550DBD2C1F4BB + D50341AB37222F2BC5F9398AE00E40E3EDF7AAF1C6C627820B4043DDA9770128 + AEF838E8C96F5FF30BB475F6413F60F440B01001DA6FEA3023278D13E1CD773F + C6BEE756F80750F2CAFBE4A18259A8A9D77AECD3DCECC60BBF2F6007349AA137 + 586130183911F2B394202299472BC42A04A8FAE834CAFFF02BFF005E3E504D7E + 5930130A851C35B56D68D4E8430E40EC36F49A082742435B27E6DC9DC97E9E22 + 28240419E313D963DE3FF11F142F9BEF1FC09193E7496B97018B17CC448484B9 + F65A80FAEB3D68D776E3ACAA1D2FAD9EEF0458B7EB78D093DFBA6A0173A9EBC4 + 875F5FC380C1F75FA16D562B16DEFB43C4464AA08CBFC339D643C7CF203946CE + 8C7F867F005F5C6C218798EB7F7A663A0AEE1E8F8CE45876BB582860CF4A0CB3 + 4E3559ED90898518CDA06D70ACE62AEA5A3BD8F70AA91829E312909A20C7F8C4 + 48281363D9A41D4127E8EA8BED686A6842E1FD77E2BEFC2CFF00AEB6DE247F7D + F324323233D8F7740134353509194991488A5520522EF138C6FDAA60B57BFF7E + 0A77BB21841D56AB0D0AB9CC65BB85A980AE5E231AB50350B56AD1D367849959 + 18B5353763EDD279C84957FA07A01F3493D55B0E20E7BB2B819CF9C58EC5504C + 840C05F999CCFBA101D15E150845B79D943F4113A625AEE9EE876EC0C2544637 + 068D46272CB15A5880867A1576AC7F9CDE3CF907405782CB375492D4AC2C4899 + 997538008DF97993D85709B38F4E9414432896B02D1121BDBDB6185E398EAA71 + 5489C5C6F4B9DDCEAEFFCD366642B4100C18CDE8E8E987D96245DBCD1EE7B1EE + 00F41F27025A0A17BF504514094AC899BEFB3E001AB4172562313B4F0C2F7FF7 + 927724E50DC16ABB759CD946DC8E23707C95C96C81AE6F10B54D1A0F00A399B9 + 7C7669B0FD4F8581016C7BEB046937881177879C13E0C2D51B90311D20923295 + 201630DB04EC607D9D69AE24E94A6F78986C4C05DB6F3D7EB731F3405E6E3A0B + 4091BFFE6F9307404FBF11495213D6172D080C80DE0C9D6BEC467C7C9C0B808D + F9453F9F95E1041049646CE28E3688948A3C4A99AB025C5AE03B10AEB3EFA800 + 5F00DDDD3DB82B3506450BE7040670EA8C8A547DAE42B2F2075E01E860154CB2 + 442845844CE8320F0C1F14D719F607406033C26813F904506B3AF0E88F27E367 + F7E4060670B9514DB6BFF36FF6390017807B0B4899AA357BF9EA60B5C0B4C913 + 86BEC707404BCB75143FFE53F6994040009DFA41F2F4B623C89A3A6544154043 + CEAC471D15E0ADFCDD13F4B7FCB900AEA8AE62EB1F17B28FCA020260F69325A5 + 95EC5A603880DD6CC003B373C62C405D6D1D0E6C29621F9E06FC488C5E0AE392 + 277002F0D50246B30DE7EA5B5C004C2613F4EAEB741114F823311ACF571E27BD + 7619626363BC0288994B9E5822F7A88060CDFE5C154001BEF9B60E76498413C0 + D0DF0785DD800D4F3D181C80BD47BF20F55A2394E3E27901704FDE0140CBDFCA + ECF8F2C215B63A1D003DDD3A6427C9F1D4A29F0407E044CD65F2DEE96B489F34 + C127406DA326E42DE00BE046DB0D3C387B0A1E9E93131C806FEA5BC9DE0FCEB0 + B7C5C301E6CDCC66F73B2A80BED2E4E972D80ECF7B01AEB3EF401949F99BE944 + C7DC7CF902686D6EC5AA85F9989E9D1A1C0075A79E94ECFC27E8F34177003A60 + 7AE313280057F9B3FB6F03A041A542F9EA879D7F2D0A18C064B193A2CDFB307D + C68F7C02F0D1027402A4E102C01C7BF9D2255496AD804C220C0E008D35E50789 + 322D1DD10AA957006FF7035C498DB402E8ADAFEB3143DF432BC01B80D16882A6 + A5091525B71E850705A06CF7874418953822001A72896B0B702D7E1C002399FD + BF0F40D73B00B1A10765AB1F092EC0AEAACF485BAF1DE3E2A23D00A44CEFAB5A + B463A205E8DF2BA6C40BB1AA70EE8800FE07AAAB12F95AE3BCB6000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008FD4944415478DAED99797454 + D51DC7BF33993D900D4A2608810408043856D90E565B9550EA0AC22956B6423C + 8553E1B4E7488B1CC3D648498F56B0A241148F416551A06869158E805B156C11 + 046C20C3928DC04C48324B969979B3BCDB7B6F9861324B1A6626F3D273F2FDE7 + 2D77E6BDFBFBDCDFFDFD7EF73E192104912493C922B62DDD7880942E7F1416BB + 875FAFD9F60912A9F58BA7F9CF576F3D882DBF9B1EB1B39DDA182F00524A1200 + 4B9EDF4F5E7F66268C3697D4F6E30FAF7F843756CE9216C086ED47126AF4AA45 + 53A505F0AB923D64DBB3B37B8407ACDDF237BC59F478E20194AEF8399ADADC52 + DBDF3300483905240150F8DC4EB2F5D9393DC203566DDE87B2B5F3A401D01362 + 40F196BF4A0FE0CF3B8E26D4E815F30BA405B060ED3B64EBAA796868917E0AAC + D9BC07EF3EF7CB5E009200305ADBA7C04BBB3F4DA8D14FCF99E23F2F2EDD9B78 + 00738BDE22DBD62DF40390526B5FDE8D5D254FF60248388057572D80C9D61E03 + 4AF77C9650A3973D7EBFFFFC8FAFBE977800BF78E60DF2DABA423F002955FC97 + 1D78FF8525BD00240520E514E81100A4542F809E00A0770A48A85E00BD002402 + F0CA9A4234F680D5A0640036AF2E44536B2F00A9ED970EC04B450B61B57BA5B6 + 5F3A00521B1EA88403F87F522F80440168B4D9C9F5261B8C3601E6C626585B1C + 686E75C021B861B6B54170B961F7B4BF4F700AF07A6E7E5AD7F549F69FA7EB54 + C8484D8656AD444A1F2D5292D518909182CC7E2918D02F15FD52B4AC6F5DEE5C + B7003036DAC8B92B165456D5A1B2AE0135260BD2D25291DE2F0319C94A28545A + 28D45AA8E422921449502B15FEFFCA9314FC7E24A5A7246360BA1A1E2F81CB4D + A1091E585A049828DC739546D41B4D18A24F47765606460DD563548E1E59FD53 + BB3F06D4D55BC897A72EE3DBF22AA06FFFAE0E404CCACD4AC3AC9F8C0EB96F17 + 449CB9748DF6C90AC3A56A28881B93C60EC55DE3F2312CAB238C98015CA8A927 + 7B3E3989EA86560C193218E97D35A8345AB171C97DDD0EE0CD8F4F43A099361C + 84F2EA267E4C4A92C3EB15616AB4E2F8A9F3C84C5161F6B409189D9B258B19C0 + 8E8FBE219F9FA9C5C891C3A19211EACE72DE9628003B8E9E87D32D42A0532110 + 82C3E184C1D806657B7738049FD8EF8F7CFA35C6E50FC6FC8727CBA20670E08B + B3E4F3EFAF62E040BDFF9E56294B2880FDC72A61770821105850AD6D72F2F370 + 1098BE396DC098C169987EEFED11E343A7009E5CBF8B8C1E931F729F41481480 + 43DF56C3EE12FD10AC761766DE938FE6363B4C56C1FF3B06211800D3BB1F1CC5 + 5B6BE6C6170013CD021C80CBD3BD05E1890B46B450A383218CCF1BC8CF03150E + C2DBEF1FC4F6F58BA20350F4CA87E4E18249385E512F1980F29A069E06832198 + CC2D189F3F240400930F429A5686BD1F1F43C96F1E8B0EC0CB3B8F92470B2642 + ABD5E07839CDF7265B4400CB4B0FC6DDF84DCB1E445D630B6C6DCE10086E22C3 + D5EBD6B010B44A82DCDBFAF340F9E1E17F63F982A9D101D877E414A96D7260CE + 0313A153D2DC4B57BE15B4F8B95A6FC6E98BD7F0E2AF0B7887BA533687871B12 + 094295D18C3B86E979F194460B307D461F7F5F771F3A81AC540DEDFFF8E8007C + 75A686ECA6F93F67580E0A7E781B2F4A981472199A058254AD028247845A2147 + 7789885EFEAE4008ACA4962934B49AF4A27FAA8E96CB3A6EB44F2C401F3D7315 + 5597AB30FBFEB1B86F425E74002ED65E277F7AFB087287E5F26B56008DCCCE44 + 6E663232D3B448D6DC7C2B1B1507ADEF6D14BDE0B0C3EC1079F96A6D75C229D0 + 639BC0D7063E595BEC1DDE95D6571770AE8556A3C6DC82B130B77A688163868E + 4E43065C7BE31828375D5334353B5159DF06436D3D7DAF132E5A18D5555763C5 + FC29C8CFD14707C0667791A51B7622FF4626D0D04EF98AA1549D1A051386D16B + 2FEFAC4ED57D5EC0E28C47BCD94F667063ABE84F855574C4EDCEF69A807924F1 + B83980CB15066C5EF9045B3C45078055820B579791ECBC3CA868640D04C03475 + DC507E54D23636320C865CA144B22A092AC5ADAD2403B389CF58660C379896C2 + 5E51E4BB4F863A0B1DE19B9EE470BAFCC68703C03E9BC7540A2F7F712FD1F6D3 + 43A352740A80054575124D412A0D375E9924A31D0F7DB6CF504F409B2BE877C1 + F95DF0529862C0DEA35C092D852C7A3DBCADC9DA1C02C0E9A2C1B3C9844DBF9F + 1D1B808DEF1C26571D0AA4F7D1FC4F0F6062C148A950F04019E8B6BED1F4C94B + 47D52D76BCD7C10B6E400986C3A0B247B5D1916FB0B4D2E5B20775D72D21002C + 34F664AA04AC2C7C2036006C3174B2D28C8C8CF4B802F0B9F5AD7A870F007F26 + CD062C98965799420098CD16DC9E9D8AC21977C706E0B31306B2F74B03B2F43F + E83153C0EBF162DCE81C0E8041FED77FAA4200184D0D98F9A3E1F8E95DA36303 + 70AED24836BDF74FBE0F1008C04B5FF4B349B97E00494A3537DC1708036B83E0 + D10FE701B7E2FEFEE77602A0A6E60A963FF163BE27101300B6CFF7F4C67DC81B + 39222C00D6591690885C059D5ADE2500C1231C0D009997D617DEA488002E182E + E285DFCEE05B653101A0ED64DEAA325E0B740620780AA8A8D7BAC23C3A5E5360 + CCF041EDCF8900E07CF979ECDC50C8374F63DE1263A9303D6B50973C80494357 + 243E0F08E7FEC10646EBFE910008B4F2B419AFB02228F62D31A6E7CB0E916651 + CD777D7D00449703D326E7F748008ED616684507562F7E283E00B6EDFF8A54D4 + 3BA11F901111805453C0E9F2E264454D070016B315A33235583CEB9EF800387C + FC1CF9E0D825E40C1D14168082A63C855213E20191A23F37E24606E8CAE877E6 + 010CC077DF9F87A8D4F9015CABBB8687268FC02377E7C707C07715B564DB8113 + 7C592C058060E37D0098FB7B68C3D7A72FF0F8E403505B5D8BA7664CC09DA3B2 + E303807D052ADAF20FB0FDC14800CA2B4D099F0291005C361850B2F411FFD7A2 + 9801086E9114AEDB8E3BC7DFD101C09489A378BBCF03D89119CFCA6111A1CBE3 + CE8A1F1F94AEB8BF8BA53AD11B1E008577EEEC5994152F825A298F0F00A66525 + BB887E480E52B4AA0E005887D95E40AC003A737FDEDE45004EA700534D154A8B + 6E6E85C70540F1D6BF1379DFFE11014831055800640A04606D6E83C26141F1D2 + E9F105F0DADE2F485DB38801E9296101845B0F746654573DC0E12641FF697F0E + F3807000D86EF5880C399E9A7D6F9700FC17251057F92A51B751000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000009514944415478DAED9A7B7054 + D51DC7BFBBD96702796C30D98457125E4970B42250D45A95508A2F50A6B12250 + 88539811A69D911619C3AB9142475BB0A241144650792850B0B42A23C40715B0 + 451EC106121E7911D80DC96677F3D8DDBBAFD373EE6637FB26EC2E7BD399FCFE + C9CDB977EF3DDFCFF9FD7EE777CEBD224208429948240A796ED1FA83A47CC993 + D09BEC10C26EE83B51D5D0069399C389CACBD8F4BBE9213B1B56E3FF2B006616 + 9B13DAB64E6C3D704C78002BB77C1157F16B164CF51CAFD8FCB9F00084344100 + 2C7C753F79E7A5A7A1315A85D68F3FBCF329DE5D365358006BB71F89ABE8E5F3 + A7080BE0D7EBF6902D2F17F7090F58B5E9EFD85AFA4CFC01942FFD05745D36A1 + F5F70D0042868020004A5ED94936BF3CAB4F78C0F28DFBB06DD56C6100F4851C + 50B6E96FC203F8F38E8AB88A5E3AA748580073577D40362F9F8D960EE14360E5 + C63DF8F0955FF503100480C6E00A81D7777F1957D12FCE9AEC392E2BDF1B7F00 + CF95BE47B6AC9EE70120A4AD7A633776AD7BBE1F40DC01BCB57C2EB446570E28 + DFF3555C452F7EE611CFF11FDFFA28FE007EF9D2BBE4EDD5251E00425AD95F77 + E0E3D716F6031014809021D027000869FD00FA0280FE1010D0FA01F4031008C0 + 9B2B4BD0DA0756838201D8B8A204BACE7E0042EB170EC0EBA5F360303984D62F + 1C00A1857B5BDC0104B356A389DCD019A13172686BD5C1D061467BA71966CE86 + 36631738AB0D26BBEB799C8583C3DEF36235714092E7382D5106554A12947229 + 920728919C2447862A1999E9C9C8484F417AB292F5ADD79DBB2D0034AD4672FE + AA1EB5754DA86D6A4183568FD4D414A4A5ABA04A924222534222574226762241 + 9200B954E2F9AD3841C2B787B2B4E42464A7C9617710586D141A6787BE838396 + C23D5FAB41B3468BE1EA340CCB52213F478DFC5C35B206A5DC7E0F686AD693A3 + A7AFE0FBAA3AE84D56640FCEE645272A141E414CACB7494504628934E0DEE120 + 64A62A90377850D85135714E545EBE4EFB6440CDE57A48880D13EFCCC17DE30A + 3022CB1746D4002E3634933D5F9C427D4B27860F1F8AB4810A8812E43ED77A8B + E90D0406C0FF776ECBCA4847CE1D4ADCCCAAEA75AEE72588E17038A16D35E0C4 + E90BC84C96A178EA7814E66589A206B0E3D3EFC8D7958D183366246454488244 + CC9FABD5186EDAC158585E562A66FEB430A0DD6CB6A046D305A9181E086E639F + CE1CF9F218C6150CC59CC72789220670F09B73E4EB1FAE213B5BED69534A451E + 00EB173E7CDB016CFDEC2C383AD34EFB713E12E53D2259526DD459F8E3601098 + 7D77B6066387A662FA437785CC0F61013CBF6617291C5B10D0CE20C40BC08E8A + 0BFC887234197A43601F47690D9CE73A06C11F00B30F0F54E0BD95CFC5160033 + 3A0BC405C0FEE3B5FCA770DE102409229AFC7468E77C750583F0FEC79F63FB9A + F99101287DF313F278D1449CA86E160CC0A1EFEB61B23A3D100C74F69979FF08 + D43677C1E6973FFD43215529C2DECF8E63DD6F9E8A0CC01B3B2BC8934513A054 + 2A70A28ACEF75A630000ABFDF61684272F6AD04145FB43189BAB0E7A3D83A094 + 127E1A6589F293C3FFC192B9532203B0EFC869D2A83363D6B40948A4B39889AE + 7BAA69F173ADB90D67AE34C7054055430B5F08F943D0B675A03027830E8E6BBA + 5450E5A9B40053AB0678FABAFBD04964A52868FFEF8D0CC0B7950D64379DFF73 + 47E4A2E8EEC1FC94C44C2216D1F8234851F654772BB71F056736C554FC86C58F + A2A9B503C62E4B008441292EE1433352F8B239D1ABCC6009BAA2F21AEAAED4A1 + F8913BF1F0F8D19101B8D47883FCE9FD23C81B91C7FFCF0AA031C33291979944 + AB3525921452DCCC427988DDE9DBCEA0FAB73133D3358395B80A2B99C8C11754 + 72896FA2B3D13585AEDDC2E7859AC6665A365B60A58551537D3D96CE998C825C + 7564008C262B59B476270ABA67028542EE29865212E5281A3F82EF9492B627CA + C4B85DE60F9181329AED7C2D60A08BADCA7A234C16574DC0D99D20761B0FE04A + 750D362E7B962D9E2203C02AC1792BB69161A347434633AB3700391D9407EFCE + 81B43BE39EBD741DA9039590CBA448A52B38A5CC356A2C81BA474FE255224B25 + 129F67D9BC56862C7E59ADAF1A20F17C106DA2098D4D7BC62E0E66AB835EEF84 + BDFB376EF1C100B097A65195C24BFEB29728D3D550C8246101B885B25864E298 + 4BBB47CBBB73FE66A3559EC3D9D3EE3DDA6C35C8B7D1BFF55A03B4FA9E1C7333 + 0016AB1D669D161B7E5F1C1D80F51F1C26D7CC12A40D50F8006036655C8E6B34 + 29844800D8BA37938201F016EF364397955F76330F709BD9620D0A40DF6941A6 + 8CC3B29269D101608BA153B56D50A9D2C2026021C0BC22414697C612116D1351 + 8181F7F617E82F9299C5AFC2E11C14A6D36BEF512CE543CCE9B0F3E77486F600 + 006D6D7ADC352C0525331E880EC057276BC8DEA335C852DF71CB1E106EF41D74 + 106D4EDFB650EEEF6D0C2ABB55171DF9167D27AC363B9A6EE8030068B42D78FA + FE91F8D97D85D101385FAB211B3EFA17BF0F702B00FC2D98FB3B420008E71D6E + 00FC3DAD36183A4CA8AAD306006868B88A25CF3EC8EF09440580EDF3BDB87E1F + 468F19754B2120A35E6B0D72EB588480C3EEC0B8C25C1E00F3B27FFFB72E00C0 + C59A4B78EDB733F8ADB2A800D0F364F6F26D7C2DE00DC0411FF4F389791E0009 + 5279B7F0C062259AEC1F6AF4DD1E100AC085AA0BD8B9B684DF3C8D7A4B8C4D85 + 6959438202609D6509898865FC5ABD3700FC4738120022870516474250001CC7 + C1A8B9CA8AA0E8B7C498BDBAED106977CAF90DD05000E21D0263470E71DD2708 + 00736707944E33562C782C3600B6ECFF9654375BA0CE50DDD40398B19599DB03 + 82B9BFBFC048DD3F14007D9B01F9990A2C98F993D800387CE23C3970FC327273 + 86780038AD664C9D5410118058C57F2800D79BAEE3B149A3F0C40305B10170A6 + BA916C3978925F16870220540858685578AABAC10740637D235E98311EF7E40F + 8B0D00F616A874D33FC1F6078301607B7412A922C003428D3E2FA2DB037A33FA + E13C800138F3C30538A5891E00576A6AB06ED1139EB7455103E06C4E52B27A3B + EEB9F7478200F017EF06C0DCDF4E4F1C3B7B919FA1BAFB8AF3E7CE615BD97CC8 + A5E2D80060B678DD2EA21E9E8B64A52C2880AA5A6DDC432018008B8583B6A10E + E5A53D5BE1310150B6F91F443C70900F80C913F2F9736E0F607F9978560E3B11 + B841122EF9B9A1F4C6FDADACD8713A820230B4774162D6A36CD1F4D802787BEF + 37A4A9DD898CB4641F00ACC36C37285A00E1DC9F3FDF4B006CB77A944A8C178A + 1FEA1580FF01CC013AF95173A3670000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008C64944415478DAED9A797454 + D51DC7BFB3662660369024AC492040C06A4140A8F5B804910242F53456040AF1 + 14CE114E17699163C2D248498FB6B82041341C83CAA28482A5453942DC2A448B + 2CC1862C9095243381CC924932FB7BB7EFBEC94C660DC9CC302FE734DF7F66DE + 76E7FE3EF7F7FBDDDFBDF3448410049248240A786DDDEB27C8AEDF2D80CE6847 + A454AFD2E2C477B5B032ACC779AD568F82DF2F0CD8D95E6D0C1780CD859F450C + 84542647FA98E1AEE38ADA96C80358BBE3382958FF78443DC05D37749D286FD0 + C268B2A0B4EC1A76FF61F1FF17002AB38D855ADB89BDC7CE080F20922140B56D + F53CD7F74D7B3E151E80901204C09A978F92B75F7802AA76ABD0F6E34F6F9FC0 + 3B1B9F1416C0F67DA7236A74EEAAB9C202F875FE6152F862D680F0802DBBFF81 + BD394F451E40C1865F40D36513DAFE810140C810100440F64B07C89E17970E08 + 0FC8DD7904455B9609036020E480BCDD7F171EC05FF79744D4E80DCB338505B0 + 62CBFB644FEE32DCEC103E0436EF3C8C0F5EFAD520004100A8F48E1078EDD0E7 + 1135FAF9A58FB8BEE71514471EC03339EF92C2AD2B5D0084D496370EE160FEB3 + 8300220E6057EE0AA8DB1D39A0E0F01711357ADD530FBBBEFF79D7879107F0CB + 17DE216F6DCD7601105279AFEFC747AFAC190420280021436040001052830006 + 0280C1101050830006010804E0CDCDD9681B00AB41C100ECDC940D4DE72000A1 + ED170EC06B392BA1373242DB2F1C00A10D7757440034B5EAC8D7176AF07D791D + 74462B468E1A89B8B858442B14908B1D6F6D48A4128F67642202B154E6D3B658 + 22753DE3ADC43805D2460D476F325A58945D6BE1FAA447D5B57A48890DB3EE4A + C19CE919189F1CEBD1F190015437B492C39F9D47FDCD4E8C1B3706F177282092 + 4479DCEB6E4C5F205000DECF39953C621852EE54E2562AAFD7387E4F2206C3B0 + 50B7E9517AA10289317264CD9B812969C9A29001EC3FF12DF9B2AC1193264D80 + 9C334422153BAE7901082784D4E43824250CEDD57893C98C2A55176462B82038 + 455F9C38FDF9194CCF1883E50B678B820670FCABCBE4CB1F9A31726492EB9C52 + D6E35DB70B0205901033A4A74DA96F786BDBBBD0A8313BDAF50381EADB4B5598 + 3A260E8B1FBC3B607EE815C0B3DB0E922953337CCE5308B52A3D22A1340EC6FC + FB26432A1179C0A0AFC6A8F5961EB8625F00541F1C2BC1BB9B9F092F002A555B + 3B76AC79E8B603D8FBC92558B899F66733D340C4721788A6560D0C164FBBFC41 + 78EFA34FB16FDBAAE000E4BCF9315998390BA595AD8201D85F52C1C7347D1B6C + D19C093C04AA3A950E36AFFCE91D0A714A118A3F398BFCDFFC3C38006F1C2821 + 8F67CE8452A9406979136AD5ED110770F46C2D6FBC3784EA669DDFFB2904A58C + F0D3284D941F9FFA0FD6AF981B1C8023A72F90468D094BE7CF443497BB8C5CD5 + 5B795D87E6562D2ED6B44604C0C9EFEB61B4B22E087AAEFEC89C360EAD1A0388 + 5B12567096C70D91F1B387B3AF874E9E4372AC82EBFFBDC101F8A6AC811CE2E6 + FFD4F1A9C8BC67149F90A8A46211177F04B14AA9EB982627AB3DFCC5E1B96A15 + 3A38A3DD21D0CF1FA58F82822BC01294043143A379A39DA209BAA4AC19753575 + C87AF82E3C3463627000AE36DE207F79EF34D2C6A7F1C7B4009A343611698943 + B86A4D89210A19FAAAFEC0B1B33DF73AFF79A2C98F42A686CAA4528FFB6D763B + 3406336A5BBB50D5D80A5D87997F9FB8A9BE1E1B963F828CD4A4E000B41BAD64 + EDF603C8E89E09148A285731141B1D85CC19E35D1D222C03915882702A5A2EF6 + 00E70EA6DD64774D8575DC881BCD8E9AC0626741EC361E404D6515766E7C1AC3 + 6294C101A095E0CA4D4564ECC489907399D51D401467EB03F7A440D69D7169A2 + 74C27086447FE534D6692835460C968F675AFB1BBA8CE8B489D1D96582C9CAC0 + 6AB3436B3071F73160EC36BF00E85F662195C2EBFF564C94C392A0904B6F0940 + 2E6220E5AA3F0AC17DF4DC0DF296AD7B35CDB0AC0704FE39C6F1DDCA7D9ACD26 + 981909CC9CE1668BA30032994CB0B262A8341DDC5AC0EE01C06CB5C3A451E3D5 + 3F66850660C7FBA748B3498AF8A18A5E015CBADAC29F93C815FCE8CBB898B531 + BE6DBBA0B85DB37ADD67EE9EE0EFCB188D1B060B1AD43AB09C8116A6C7AB6C9C + A176BBC368A7FBBB03D0759A9128B76063F6FCD000D0C5D0F95A2D1212E26FE9 + 0154EE61E03EFABD798073F47BF3807AB51E6A9DB1CF00B45A1DEE1E1B8BEC25 + F78706E08B7355A4F8EB2A2427DDE901806AEEF414FE9342080680B7FBFBF310 + 77EFD07759796FA0F1EF94C96CF50B40A5BE89277E32018FCE99121A802BB52A + F2EA87FFE6F7017A03E01D0272CE7EAB9FA6FB13022EA3A8EBB36E7B8F621994 + 72892B2C347A830F808686EB58FFF403FC9E404800DADA8DE4F91D473071527A + BF3DA0B7D167B841B4B19EE702B9BFBB685EA14D7571237F53D7C9CF044D3774 + 1EBF430154575DC52BBF5D82E4E1B1A101E0AE9365B9457C2DD01F00DEF2E7FE + 4C0000BD79871300DFA6D5067D8711E5756A1F0015E51538B03D9BDA101A002A + 3A15C6278F1E3021C070F3FEF429A93C00EA65DFFDB7CE0380859B26DB55D769 + 1114FA9618D5CB452789818DE237409D0018EE871E9B95E602209145751BCEF0 + BB3E5152B147A7BCD5D7EC1F68F49D1EE00F80A9B3034AD6844DAB17840740E1 + D16F4865AB194923127C00D0CED2844497A8D151E23E01F01EE160008818335F + 18F903A0D3EA31395181D54FFE343C004E955E21C7CE5E436ACAE88000221D02 + 53278C76B4E307404B530B16CC4EC7A2FB33C203E0626523293C7E8E5F16DFCA + 03A8E8DADCE901B7D3FD030168AC6FC4734B6660DAE4B1E101A06A6B2739BBFF + 05BA3FE804C05A4D98373B634002A8A9AA42FEDA45FC14181600161B4BB2B7EE + C3B47B7F1C10805021401747E72B1B7AEEE59EBD72F9328AF256214A260E0F00 + AA75F90749D2B854C428E53E00E8668554A6F0F18050567FBECFF9F7000AE0E2 + 0F156065D18E63B305EA863A14E4F46C85870540DE9E7F12F11DC30501E06DBC + 1300757F3B77E1CCA56ABE46A1D21BBA2035E990B776717801BC55FC156932B0 + 18111FE3174079AD3AE221E00F00DDAD4E4F10E3B9AC07FB04E07F9AD9EBEA1F + B180320000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008F54944415478DAED9A797454 + D51DC7BFB366266036A8498400099B01AA15816229C705A41410AAA758D90AF1 + 08E7104E6BA5058E616BA4D0232D0A48000DC7A0B228A160B12847C0158994B2 + DA9004C84AC24CB6594266DEACEFF6DD377993D90999C9BC9CD37CFF99F7DE7D + EFBEFBFBDCDFEF77977912420882492291042D7B39EF24D99A3D19661BCB9FAF + DC750291D6E6A553515CD5844FCEDD8489B105BDCFE97060DBB2A7833636A48D + 9D05B06CEB71B2E3E5696E005D2923E3C0F1A21B28A9690C586E65CCC8FBC374 + 7100E8CD8E2E0720A84AA3C3F17315B039BDA1EB7406F101ACCDFF3C6A20E40A + 2586A6F5759F9754DC8E3E80EC2DC748DEF267A2EA019E6AD0B7A2B85A073363 + 45D1959BD8F9C799FF5F00A82C76165A5D2BF61CFD4E7C00D10C01AA0D8BA7B8 + 8FD7ECFE4C7C00624A14004B5E3F42DE5EF92C34C6E0E373B4F4E7B78FE39D55 + CF890B60E3DE5351357AF5A2C9E2027869D32192FFEAEC6EE101EB76FE137B72 + 9E8F3E80BC15BF46B3C92EB6FDDD03809821200A80ACD7F693DDAFCEE9161EB0 + 7AFB6114AC9B270E80EE90037277FE437C007FDB773AAA46AF983F495C000BD6 + BD4F76AF9E87C63BE287C0DAED87F0C16BBFED01200A008DC115026F1EFC22AA + 46BF32E729F7716E5E61F401CCCD7997E4AF5FE80620A6D66D3B88039B5EEC01 + 1075003B562F80D6E8CA017987BE8CAAD1CB9E7FD27DFC971D1F461FC06F56BE + 4376ADCF72031053B95BF7E1A3CD4B7A00880A40CC10E81600C4540F80EE00A0 + 270444540F801E002201786B6D169ABAC16A503400DBD764A1B9B50780D8F647 + 0F406DBD9E7C73B11CFF29AE445D831E6FE62C84C1EC14DB7E1E40729F388C1B + 35088F8DCEC4E0D478AF86870DE07A753D39F4F9055435B662E0C03424DEA7C2 + B767CE8B6DB7975E9A3B03DA26038A2E9620394E89D953C6604446AA246C00FB + 8E7F4FBEBA5283E1C38740292190C9A5AE32598CDFFD4A69FB971B32B9CCAB4C + C13D2B952BBCAE496572BFE7A8D253139092D43BA4C10C634199C60485B4ED7D + 32A9BB8CFE6D7EEA8BEF303A330DF3A78F97741AC0B1AFAF92AF7EA8C3030FA4 + B8AFA915EDDED555102880A4B85EED75CAFDC35B6734A1A6D9E2AA370004AAEF + 2F9761645A02663EFE50D0FC1012C08B1B0E90112333FDAE7705045F0071BD62 + DDE77259FBFB0418F4C308ADC1DA5EAFD41F00D507474FE3DDB573230BE06E10 + 7C5DDA130205C01B1D02020510AF968348957EEF1560D4D637A3C5EA6D572008 + EF7DF419F66E58D43900396F7D4CA64F1A87A2D27ABF324D9311D1500607E397 + 6333FC60546AF4B0FB7CA1E71B0A096A090A3F3D8B4DBFFB55E7006CDB7F9A3C + 33692CD46A158A8A6B51A16D379A02D8B2E4892E07B0E7D3CBB072232D854025 + 80B85EA70F783F85A0561064F4EBCB27CA8F4FFE1BCB174CEE1C80C3A72E929A + 660673A68E452CE7B1666ECE537A4B8FBA7A1D2E95D74705C0BED3257C56A75F + 83FD625C06145CEF3236276E3518413C424FC5599ED04BC18F1E425B0F9E388F + D47815D7FE473B07E0CC956A72901BFFD307A763D2C3FD7877A4924B255CFC11 + 3E4E85F340993A123A72B68237DE1302FD3AD560B243A55221494D10D73B9637 + 5A5085C680D357EA50595E89D94F8EC2136386750EC08D9A06F2D7F74E2163B0 + CBFDE80468F880646424F74272821ABD540A74856C0E579B1C2C4125177634F1 + D19EA7A1A89438A15679275DBBC381E6160B2AEA4D28ABA987FE8E85FF9AB4B6 + AA0A2BE63F85CCF494CE01309A6D247BE37E64B68D042AEEC5C264283E360693 + C60CE6C92BE472C42AA5E80A79C2F034B8A995458BC9CC0F85955C8F9B2DAE39 + 81D5C18238EC3C80F2D2326C5FF502FAC4A93B0780CE0417AE292003860D8392 + EB014F00310A0526FEB81FDF333431C5C648DD30C209096AB0602C3586777D2B + 0B87DD021D2381E18E99CF014D46060E87A3ED3E279C0E7B4000F40F93B0A6C2 + CBFF5E48D47D52A052CA8302A0BA7CE33662B8E15EA654F1C62B38B7B53BFDEB + 76F7A84799CDE73E4BDBF83661541A742D26FEB8D52E85C3E6CA0556AE0E9665 + A16DBE131480C5E600D3ACC51B7F9A1D1E802DEF9F24758C1C89BD55DE003863 + 273E3CC80D40884F3937E911422290FBD2067ACADEB69874B2EDD73D21513816 + 0B038B53C619C5DDCCDA7908D40B6C76070788090840DF6A41B2D28A555953C3 + 03401743172A74484A4A0C1B80AFF1810008CF787A892F048BD5350566180636 + 560A0DE7094EA7C3FD0E0A40A7D3E3A101F1C89A35213C005F9E2F2385DF9421 + 35E5472101744508FC34B33F1A5AACA8D6EAC172065A9DED79C5CE192AE40021 + 017A02D0681BF1ECCF86E0E9C7468407E05A8586BCF1E1B7FC3EC0DD3C80CA33 + 117AF67E280F08E4FEBE1E50A53540AB3777184075F52D2C7F6122BF27101680 + 26A399BCB2E530860D1FEA05806AF2E841FCAF3046DF2B80BBC5BFAF77184C36 + DE1B68FC0B622CB68000AE97DDC0E6DFCF426ADFF8F00070E564DEEA027E2E10 + 0A806F082839FB6D01AABE9710701B455D9FF5D87B942AA056CADC61D16C68F1 + 0350525C82FD1BB3A80DE101A0A24361626AFF7BF68050BDEFE43AD1CE7A5F0B + E6FE9EA279855665E27ABE51DFCA8F04B50D7AAFF758B92469D4DCA293A0F0B7 + C4A85E2F38415AD8182424C4771880AF02B9BF33088050DE2100E0EBB4D9F989 + 5171A5D6EB3D4CEB1DA859066B164F8B0C80FC23674869BD0529F727758B1070 + 72E3FEE811E93C00EA65E7FE5BE90540AF33E0C16415163FF7F3C8003859748D + 1C3D7B13E983FABB0138B917D195990040A6886933DCC9EFF6C4C8A55E8DF255 + 47B37FB0DE173C201080DBB5B7316DFC50CC9890191900974A6B48FEB1F3FCB2 + D817006D2C4D48C27AA0230042B97F4701489C167E621408404D550D96CE1A83 + 471E1C1019009A2623C9D9F92FD0FDC16000A21D022387F477D5130040795919 + 3665CFE087C08800B0DA5992B57E2F1E79F42777F5002ABA3B23784057BA7F40 + 001CBC6B57AFA2207711B76093460600D5B24D0748CAC074C4A9953C00D6C660 + CAF8CC6E07C062B1425B5D89BC9CF6ADF08800C8DDFD0991DED7372800B14280 + 2E8E2E9456BBCB0CDCF259CEE8919B3D33B20076157E4D6A5B58DC9F18E70780 + 6E59C9152AB70708738170567FFECF05F6000AE0D20F256015AE3F52E86EF5D0 + 242996CE7EBC4300FE07BE04EFEA083B57D90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000009204944415478DAED9B7B7414 + D51DC7BFFBCC6EC0BC4093C833E11103A815916229C747907200A17A0A955721 + 1EB1054E6BC502C7F06AA4A4472A0A4800856350792850B1589423E0138D948A + 401B203CF222613721D957929DD9DD99BD9D3B6137B39BDD4DCC6E76F69CE6FB + 4F76E7EECEDCDFE77E7FF777EFEC444108413029148AA06D2F6C3B4E5EF95D0E + EC4E37BA52568603C3B0B036B3B03B3834DA9DE235ED8C032EA240838DC1C249 + 23D053AF0DDAD99031C63A00E2E6617390D010CC562C9D3126BA009E2B3C4636 + 2E1AEF05B06CDBD18807BF7EE1449454D4E3A35357D1CC38837E8EE7386C5AFC + 5874012CDE78846C796E52973B808AA6C191E22BB858753360BB83B1A3F08F93 + E50160B6735D0EC0A30A8309474E95C1C9FB4237992CF20358B5E3D3A881506B + B418D2AFB7F7FDC5B21BD107B068C36152B8E4F1A83A40AA3A73134A2A4DE244 + 587CEE2AB6BE30F5FF0B0015EB72C3686AC2CE43DFC80F209A2940B576C104EF + EB95DB3F911F809C9205C0B32F7F40DE58F6040CD6E0F5395AFAF31B47F0E6F2 + 27E505B06ED7F1A806BD62FE7879013C53B09FEC78717A4C3860F5D67F6067DE + 8CE803285CFA2B3434BBE48E3F3600C89902B200C87D690FD9FEE2CC9870C08A + CD0751B47AB63C0062610EC8DFFA77F901FC6DF789A806BD744E8EBC00E6AE7E + 876C5F311B371BE54F81559BF7E3DD977ED30D401600064B4B0ABCB6EFB3A806 + FDFCCC47BDAFF30B0F441FC0ACBCB7C88E35F3BC00E4D4EA4DFBB0B7E0E96E00 + 5107B065C55C18AD2D7340E1FECFA31AF4E2198F785FFF65CB7BD107F0EB656F + 926D6B72BD00E454FEC6DD787FFDB3DD00640520670AC4040039D50D20160074 + A7808CEA06D00D402600AFAFCA457D0CEC06A306A0BAD64CBE3A730DFF2E2947 + 4D9D199B57E6A2A1293600A4F64AC0E81103F1E0C86C0C4A4FF4E978D8002E57 + D692FD9F7E8F8A9B4D1830A01F926FD3E1EB93A7630AC033B3A6C0586F41F199 + 8B484DD062FA8451189699AE081BC0EE23DF912FCE55212B6B30B40A02955A29 + B65100AFE5CD83C5CECB1DBF08E0B773A77ADFD31F4D8F7FF60D4666F7C39CC9 + 63149D0670F8CBF3E48BFFD4E0CE3BD3BCC7F41A8517402C893A40A552FA1CFB + EE6C2986F74BC2D487EE093A3F8404F0F4DABD64D8F0EC36C73D10C413A8E2DA + B46B95AD4F70A8D42A9F368DE022A55AE3734CA952FB7C27233D09093DE2BDEF + D5AAD6EB69D52DAFE9CFE2468BA3F5BC42ECFE00A8DE3D74026FAD9A155900ED + 419006E30F810210830E01810248D4AB4194DA36D7F5C0A8AE6D80CDE11B5720 + 086FBFFF0976AD9DDF390079AF7F4826E78C46F1A5DA366DD2F9A03D08815C10 + 0A4256DF64E8B5BEDFF187516E30C3E5F77C96E656773C1092F40A1CF8F85B14 + FCFE979D03B069CF09F278CE03D0EB75282EA94699D11A150877F74F14475A13 + C0D21E10976BCC01FB4C21E83504997D7A8BCF167E78EC5F5832777CE7001C3C + 7E865435309839F101C40BFDB40B15EFD275336A6A4DF8E15A2DA2A101B727E0 + 17A3337D60304E1ED7EBAC2012E03A21F2A41E1AA4A5F4F4F675DFD1D3484FD4 + 09FDBFBF73004E9EAB24FB84FA9F31280339F7F641A6909B546AA5427C7A93E6 + 2955BC5689AED2CE8FCFC2EE708B10A82808FADCA0A5D9059D4E87143D4142CF + 7831688FCA0C169C385783F26BE598FEC8083C3C6A68E7005CA9AA237F7DFB38 + 3207B55C9C2E80B2FAA72233B5075293F4E8A1D3A0ABE4E45AFA75FAB201F142 + 0A6A8594484BD2892913A7F605EEE23834D85894D536A3B4AA16E646567C96B0 + BAA2024BE73C8AEC8CB4CE01B0DA9D64D1BA3DC8BE550974BA386FDE27C6C721 + 67D42091BC46ADEE3217047A12D5C1B9616AE2606BB68BA5B05C18713BCB7ADB + 08E712015CBB548ACDCB9F42AF047DE700D095E0BC9545A4FFD0A1C208287D00 + C469341877771FD1927492A48A040CCFC8736E2206636378703C11836D722971 + D3DC045608B64948418EE36E05CD83E75C0101D0DBE5612D8597BC7280E87BA5 + 41A7550705A0D2C4890B14AD82875A98EDA510A4014947502A97B09AE6DDADC7 + 3CDFA1BA6166C10A931EEF728865CF21B4991B19C1F6EE9000582707A6C18857 + FF343D3C001BDE39466A1835927BEA8202A0A5293E4ED92100FEC1B707C0646B + 16479E13BEC73A5A567EB40AD45B999000CC4D2C52B50E2CCF9D181E00BA19FA + BECC849494E4A000A8CE5EB98138A1D4ABB43AD10D1A61D272F16DCFED052269 + 73FA7D8EBDB5C2193BA29F08804A84E074886DD4056E0198B1A131280093C98C + 7B84F544EEB4B1E101F8FC742939F05529D2D36EF70520043BEEDE815E00741E + F0774047ED4F15C801141285C3B20C585E25A602DC2E11027581D3C509809880 + 000CC69B78E26783F1D883C3C20370A1CC405E7DEF6BF13E40B80082D95F0A40 + 6A7F8F4BFC2178538161E0742B61109CC0F39CF71A144065E5752C796A9C784F + 202C00F5563B797EC3410CCD1A1212807F0AD0FFE0710638F58F49819F66F745 + 9DCD814AA3196E214007DF5ACDA493A0A7044A015C2EBD82F57F9886F4DE89E1 + 0110DAC9EC1545E25AA03D0750794A215D2D4A473F9403824D80520754182D30 + 9AED1D0670B1E422F6ACCBA5318407808A96C2E4F4BE3E00A8C68F1C28FE0DB4 + 16E80880F6F2DFDF1D9666A7E8069AFF1E31ACB30D0087902256C375BA080AFF + 9618D5CB454789CD1D87A4A4C4A000BA2205BC4151EBBB25F71E951A71BBEC49 + 8B068BCD0700D3D408BD9BC1CA0593220360C70727C9A55A166977A4FC280784 + 1A7D5E184497DBF75830FB4B454B2B3D55B330F27455482B41759DD9E73A6693 + 0577A5EAB0E0C99F4706C0B1E20BE4D0B7579131B06F8701F8ABBDD59F144028 + 77780088E774BA6069B4A3A4DCE8739D1BD5373069CC104C199B1D19003F5CAA + 223B0E9F16B7C5B19002BC50F7470ECB100150979DFA6FB90F80AA8A2A2C9C36 + 0AF7DDD53F32000CF55692B7F59FA0F7073D0078CE778F2EDD0FF86F59C399FD + 838DBEC70181005C2B2D45C1A22962098C080087CB4D72D7ECC27DF7FFA40D00 + DA593A2149F703ED010865FF8E0250F0ACB8306A034070CF85F3E751943F5F58 + AE2B2303806A71C15E92362003097A6D4000D14E81E183FBB69CC70F00CB3A60 + AC2C47615EEBADF08800C8DFFE1151DED63B28008F03A8E8FD398F03BAD2FE81 + 005884CD939A31237FD1D4C802D876E04B526D73E38EE4041180DBC960C298EC + 8000A49520DA0084F90A4352945838FDA10E01F81FC93416F95A0B73F1000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000009644944415478DAED9B797454 + D51DC7BFB3CF04CC063589AC099B01948248B194E312B494B57A0A652DC42354 + E0B4D658E018B646841EA9202061311E83CAA240C562291C0171412305A9D006 + 084B361232D9664966E6BD596FDF7DC9BCCC4C6626313399373DCDEF9FCCBCFB + DEBBF7F7B9DFDFEFFEDE9D17092104814C2291046CCBDA73966C5EFC186C8EC0 + D787C30ACB6A61B13AD068B1C16273C1C258C1DA9BFE3E3F7524540AA9A4AD7B + 04F5315C00B2724F84DDF92DCB7E818ABA4618CD6C2B0876224163A3A55D103A + 05C04BBB4E93D79FCFE007D49966641C6018362084FA06064B260D47778D32E0 + 60FFA7011097130D56121C82DE88E533C74616C00BB9A7C8D6A51304002B769D + 0CBBF39B964C4461691D3E397F0B66C616F03CA7C3816DCB9E8C2C80655B8F93 + 1D2F4CEA740550A36170BCE026AE95D7FA6DB73216E4FE61B23800F41647A703 + 705B69950EC7CF17C3E6F486AED319C407B026EFD38881902B9418D4A7A7F0FD + 5AF1DDC80358BAF918C9CD9A1A5105785A8DDEC4D5083A3E11165CBE859D2F4D + FBFF02408D16445A9D096F1FFD5A7C00910C016AEB173D257C5EBDFB84F800C4 + 3451002C7EED23B267C5D3A832065E9F23657FDA731C6FAD7C465C001BF69E8E + A8D3AB164E1017C0731B0F91BC9767448502D6EEFC1BDECE9E197900B9CB7F85 + 7AB35D6CFFA303809821200A80CC57F693DD2FCF8E0A05ACDA7E04F96BE78A03 + 201A7240CECEBF8A0FE02FFBCE44D4E9E5F332C405307FED7B64F7AAB9A86D14 + 3F04D66C3F84F75FF94D1700510054199A42E08D839F45D4E917673F217CCEC9 + 3D1C790073B2DF2179EB160800C4B4B5DB0EE2C0C667BB00441CC08E55F3A135 + 36E580DC436723EAF4B2998F0B9F5FDDF141E401FC7AC55B64D7BA4C01809896 + B3751F3EDCB4B80B80A800C40C81A80020A675018806005D2120A27501881480 + 8A6A3DF9F2D26D5C2C2C41658D1ED10420A9472CC60CEF8F4746A563404A9CD7 + C0430670A3AC9A1CFAF43B94D69AD0AF5F1F24DCA3C657E72EE0CD3599A88B82 + A7410AE0B93953A0AD33A0E0D23524C52A31E3A9D1189A96220919C0BEE3DF92 + CF2F9763C89081504A08647229DF46016C5F9D897A537400F8EDFC69C277FA93 + D9E9CFBEC6A8F43E983779ACA4C3008E7D71857CFEEF4ADC775FB2704CA39044 + 2500AA00994CEA75FCDBEF8B30AC4F3CA63DFA60C0FC1014C0B3EB0F90A1C3D2 + 5B1DA710288037B217C060718AED7F4000D4DE3F7A06EFAC99135E00D42E9EBF + 28B6DF5EB660D6142838FF7D21BCFBE109EC5DBFB06300B2DFFC984CCE188382 + EBD5ADDA3CF3017F2399CABB5DDAF216874C2EF36A53489AFA94CA155EC7A532 + 397FDD90DE09D028BDAF2152A5D7F7922A3DEC3E6FE7289A87E38610AF91E0F0 + 3FBEC1C6DFFDB26300B6ED3F43A6663C0C8D468D82C20A146B8D1181F040DF38 + C8651228FC48DA0DE246A5DEEF9829048D8220AD574FFECDB28F4FFD1359F327 + 740CC091D39748793D83D9131F460C374E0B97EFAEDFD1A3B25AC7ADFF6C5820 + F802A03622B5070FC0EB5C0F188CCD893B3546108FBED49CE7F1DD14484EEC2E + 8CF5E0C90B48895373E37FA86300CE5D2E2307B9F53F75402A3246F4425A4A3C + 7F5C2E9580B539A035B0A869B041DF6086AE8181D56E0F0B040A80EF47D67ADC + 14047D6BCC60B643AD5623514310DB3D8677DA6DC555069CB95C8992DB2598F1 + F8703C367A70C700DC2CAF217F7EF734D206A4F1DF690134A46F12D292BA2129 + 5ED37403698B4376878327AF339A6130315E2F341A2D56E81B59E15CBD89F5EA + 2BA1BB5AF81CAB512246A3E267B55752220F5E2997706A73F2B05472EFD0A0FD + D637B028AE36A3A8BC9AEF87BE4956515A8AE5F39E407A6A72C700182D36B274 + C37EA437AF046AB54A907C5C8C0A19A307F0E41572396294527486F97B0FD1EA + 70416772A0C16CE15468E512A201169615DA88C3CE03B87DBD08DB57CE428F58 + 4DC700D04A70C1EA7CD277F0602839E9790250291418FF402F5E923449520B17 + 0CFA02B6C3D5342EBAEBECB0B3D03112A8654E1818EE58AD0E262B778EC3D1EC + B4134E87DD2F00BA591A52299CF5FA61A2E9910CB552DE2E00343F500854B29E + 0E51733B4507E96BF6E67ACAE972795D43E3996D5EEF8C662BE2BAA9A0D55B38 + D9BB8202A0398AA9D762CB1F67840660F37BA7482523E763B43301B03E8BBAFB + 1ABA0A396C56A19D265CAB53D226009A63929456ACCC9C181A00FA30F45DB10E + 8989090101C8142A2149C9B92CEF1906BECEFB034067DF3DF39ED750BBAB67B9 + D9E41CB45BF9C2C7CAB5E91B993601E8747A3CC8D51399D3C78506E0EC852272 + F8CB22A424FF2820005A9CC4A8A4ED021048FE8100E8B81937D9A59CB32EB056 + 2B7F8CD60175462628802A6D2D9EFEE9403CF9C8D0D0005C2DAE225B3EF88ADF + 07080480DAF737EF42C5AD8832A5BA590D9C237E6E2D0071B634DA9CDE27BAE5 + 3E6E781F1E00351E4273285015B83860DAFAC68000CACAEE206BD6787E4F2024 + 0075460B7971F3110C1E32C81B00E7ECF811FD0500340FF82AA0BDF2A7E64F01 + 141285C3B20C58A78C0F05B8EC3C04AA029BDDD15480F90170A3E82636FD7E3A + 527AC68506806B277357E5F3B540A8007E48F6F754892F042114180636971455 + 9C129C4E87D0070570ADF01AF66FC8A43E8406801A5D0A13527A0705D01921F0 + 93F4DE5CA96D4599560F17E720CDFE02388F24E82E82DC00AC1C2063D51D5A04 + 85BE2546EDB5FC93A4C1A5427C7C5C500550731743F2E67FE40A267FB7020225 + 404F05946A0DFCFADF1E008CA9111A1783D58B26850740DE47E7C8F56A16C9F7 + 267A3DFD4D18D59FFFEBAF1A6C0F80B6E2DF571D06B38D57038D7FB731ACAD15 + 00BDCE80FB93D458F4CCCFC203E054C15572F49B5B48EDDF3B2080CE0801C129 + 2A7D97C7DEA354C16F98B8C3A2DED0E005E06EC55D4C1A3B0853C6A58707C0BF + AE9793BC6317F8C7E21FA28060B3EFE426D1EEF25FFD05520035BB933E270066 + 6EE66BF5267E25A8A8D17BF5535E5A8E25D34763E4FD7DC303A0AACE48B277FE + 1D747FB0BD007CADADEACF13403075B801F0F7B4D96168B4A0B044EBD5CFEDA2 + 226C5C3A855F02C302C06A7791CC757B31F2A11F47450838B9757FD4D0541E00 + 55D9F9FF94B49CCB5D7BF5CA15E4E72C14FEA5362C3F8D2DDB788024F74BE537 + 2B28002747FAE763D204009ECF03BE9B16A164FF40B3EF56802F0096B5425B56 + 82DCEC96ADF0B000C8D9FD0991DED3B315003A589A903C9F07DA02104CFEED05 + 2071B27C61E40BC0C095CE72468F9CA5D3C20B60D7E12F4845830BF726C4FA05 + 10E9101836B077D37D7C0070F90A8312A55832E3D17601F82F54DC64F9944382 + A30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000009774944415478DAED9B797454 + D51DC7BFB3CF04C80635097B8280412A05916229C705B4C85A3D85B216E2112A + 705A6B2C700C5BA3428F541090B08847505914A8582C8523202E68A42015DA00 + 61C9466026DB2CC964DE9BE5CDEDBB37CC63669209313399371EF9FD9379EFCE + 7DEFFD3EF7FBFBFDEEBB73A32084209429148A906DD95B8E93D5731E465BDBE1 + D32570B8BC70704EF06E2F9C6E37663F31003A8D52D1D26B34EB63B8005C9ED0 + FD2361A72E1951E7708505E1070DA0A0B40A0EA7A71104FAF7D971035B04212A + 00B2F30E45DCF935F39F4079751D6CF57C23086EA2405D9DA34510DA04C00B9B + 8E92D79E1DC11EA82DCDC679C0717C480835B51CE68EEE8FF6066DC887FD4103 + 205E01B54ED23C048B0D0B260D8D2E80E7F28E90B5F3464A00166E3A1C71E757 + CD1D8582926A7C7CF20AEA3957C8EF091E0FD6CD7F2CBA00E6AF3D48363C37BA + CD15408D86C1C1FCCBB85056D564BB937320EF4F63E401607178DA1C80CF4A8C + 661C3C5904971008DD6CB6CA0F60E9D64FA20642ADD1A277B74ED2F185A21BD1 + 07306FF50192973D2EAA0AF0B74A8B5D9C23985922CC3F7B051B5F18FFE30240 + 8D4E884C663BDEDAFF95FC00A21902D45E9EFDB8F479C9E643F20390D3640130 + E7D50FC996854FC2680B5D9FA3657FD972106F2E7A4A5E002BB61F8DAAD38B67 + 8D9417C0332BF790AD2F4E8C09052CDBF80FBC953329FA00F216FC0635F56EB9 + FD8F0D007286802C00B25EDA4936BF38252614B078FD3E6C5B364D1E00B19003 + 7237FE5D7E007FDB712CAA4E2F983E425E003396BD4B362F9E86AA3AF94360E9 + FA3D78EFA5DFDD01200B00A3B521045EDFFD69549D7E7ECAA3D2E7DCBCBDD107 + 3035E76DB275F94C09809CB66CDD6EEC5AF9F41D005107B061F10C986C0D3920 + 6FCFF1A83A3D7FD223D2E75736BC1F7D00BF5DF826D9B43C4B0220A7E5AEDD81 + 0F56CDB9034056007286404C0090D3EE008805003F8A1028AFB0902FCE5CC5E9 + 82625CAFB420961490D2311E43FAF7C4838332D12B2D21E0C1C30670A9B482EC + F9E45B9454D9D1A347372475D0E3CB13A7620AC03353C7C2546D45FE990B4889 + D762E2E383D12F234D1136801D07BF219F9D2D43DFBE7743AB2050A995AC2DD6 + 00FC7EC678E998FE6072F4D3AF3028B31BA68F19AA683580039F9F239FFDF73A + 3A774E95CE19340A09C01B4BB3501D036F833E05A854CA80F3DF7C57887BBB25 + 62FC43F785CC0FCD0278FAE55DA4DFBD998DCE530814C0FA2559A8B1C72E006A + EFED3F86B7974E8D2C006AA74F9E8E290033278F8546F43F18C23B1F1CC2F697 + 67B50E40CE1B1F9131238620FF624593005ECF9909AB4390DBFF0000D47C1012 + 0D0AECFDD7D758F9875FB70EC0BA9DC7C8B8110FC060D023BFA01C45265B0080 + 58320A801A8560D0106474E9C4F6157D74E4DFC89E31B27500F61D3D43CA6A38 + 4C19F500E234804354FBC56B165CAF308BD99F67DFF1AF0CEC822A5DC035B4CA + 5BBB39546A55409B46ECAB546B1ADD77407A47A85581CFACF19336E71270ADD2 + 06E2772FBDE879623B0D5293DB4BCFBAFBF029A425E8C5E7BFBF75004E9C2D25 + BBC5FA9FDE2B1D23067441465A223BAF562AC0BB3C30597954D6BA60A9AD87B9 + 96633B382301810260F751357E6E0A82EE19B2D6BBA1D7EB916C20886F1FC79C + F65991D18A6367AFA3F86A31263ED21F0F0FEED33A0097CB2AC95FDF398A8C5E + 19EC984E80FA764F41464A3BA4241AA050063AE3F67818792A3D3A4A563B0797 + 57C5EAB2E0E261772B242036C7AD95240A21CED0002D4EAB449FAEC9204AADD4 + 1EA76B187DAD4260B0746A65A3FBD6D4F228AAA8476159052C753CDB47545E52 + 8205D31F45667A6AEB00880F49E6ADD889CC9B9540AFD749924F88D3A173C738 + F1E26988D729A051ABA155377D1FBA9BD4E36DF9965A75131B3FFDFB3B3D5E98 + ED1ED4D63B44153A512C8EB883E7A536E2713300572F1662FDA2C9E8186F681D + 003A139CB9641BE9DEA70FB4A2F4FC01E8341A2667367A7493A64A8BC438153A + C41910A7D7C0A055B1E4298D6250A85360C1A3E833AA220A4D703BE1161D516B + F4F0B879B625CFCA01C62A33EC4E11EACD3E4E8F00C1E36E12005D2A0B6B2A9C + FDDA5E62E8980ABD56DD08C0F09F766131E973943A49472F580DBEFDC4C1A318 + 00E0663515BCDE803EE7CBCC624871488A6FC78ED9BE208B4304E66D1600CD51 + 5C8D096BFE3C313C00ABDF3D42AE736A24B5D7CB06801A85603018D8E79600B0 + D879A4689D5894352A3C00F465E8DB2233929393220620D8F9E600D08C4E479D + 9AADDE898476BA1601309B2DB8AF7B02B2260C0B0FC0F1538564EF1785484BFD + 499B02F03919DC87CE433C2EA7D44E4BAE5350DC1680D15485277F71371E7BB0 + 5F7800CE1719C99AF7BF64EB00A100A8343AE6302D536A9A184500B49C35E57C + 5300E8E8FB46DEBF0FB51B165E8C67A121217A695F229639EEB6004A4BAF217B + F270B6261016806A9B833CBF7A1FFAF4ED1D1200ADD9B456B7044028F9870260 + 1647DCEE568ACE7AC13B9DEC1C9D6354DBB866015C2ABC8C557F9C80B44E09E1 + 0110DBC9B4C5DBD85C2014006ADF5DBE019D8A5643FD4D35888E347169098870 + ABD125047ED127F761FDBB3100D418849BA14055E01581996AEA4202B8507001 + 3B5764511FC203408D96C2A4B4AE81004467870FE82901A079205801ADC9FEC1 + 90281C9EE7C00B2A160AF0BA1904AA0297DBD330050F02E0149562335EA393A0 + F097C4A8BDBAED30A9F5EA909898101680EF93FDFD55120C410A058E4EB59530 + 8A4A10048F740FCE5E078397C392D9A3230360EB8727C8C50A1EA977258704D0 + 1621F0F3CCAEE2CB9613A5260BBCA28334FB4BE0FC92A06F1AEC0360315B714F + 8A1EB39FFA6564001CC93F4FF67F7D05E93DBB36AB006AB4145205F8E6F3CDC9 + DFA7805009D05F0125262BABFF2D0170A3FC06460FED8DB1C3322303E03F17CB + C8D603A7D86BB1FFFBFFC8413DD9DFE0B9404B01DC2EFE83D561AD773135D0F8 + F719C7BB1A01282B29C3DC098331F09EEE910160ACB6919C8DFF045D1F0C05A0 + 2D4240728A4ADFEBB7F6A86C78D9F285458DB53600C0D5C242AC9C379695C088 + 0070BABD246BF9760CBCFF67DF4B01CD8DBE200EA2DBDBF4EC2F9402A8B905FA + 6A0DD48B235F65B1B34A505E69B9751F11DEF973E7B02D7796F40F9511F9696C + FECA5D24B5473AE20DDA160108B6DBCDFEFC0134A70E1F00764D971BD63A070A + 8A4D523BCF3B612A2D465ECEADA5F08800C8DDFC315176E814124034434010EB + FEA07EE90C0055D9C9FF154B6D5671E2A4E62CC89D373EB20036EDFD9C94D77A + 7157523C032088C3F0AB21191200FFF781E065AB70B27FA8D1F72920188098AF + D03B5989B9131F6A1180FF036A3B8DF9C0C35ECC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000009814944415478DAED9B097013 + D719C7FFBA25DBF105C536600E134C0C3414425252CAE480640867932994B3E0 + 0CD000D3A6710A4CCC5587422634102098236402493812A0909250188E9083E0 + 50080D748C31872F6C4BBE74D89256F7EBBEB5B59665C91696AC1553FE331EAD + F6EDF5FDDEF77DEFDBE727112104FE241289FCB665ED3C47362C781A9DADBD67 + 0B60B1BBB8ED796307D16712DDEB35DAB431D2011CB9500433630D0AC27D0DE0 + E4E512986D2E1E82D56EC7FC1786402113070CA15301D81CFECF0F852EDD54A3 + C16C0B0AC27D0D20BFB40666ABA31504FAF9CAC4A10141080B80ACDC1321377E + E3E217505EDB0083C9D20A829D88D0D0600E0842A700787DFB19F2CE2BA3B907 + EA4C19180718C6E217425D3D8385E306234625F7FBB0F73500E272A2DE4ADA86 + A03360C9D411E105F06AEE69B269D1181EC0D2ED27436EFCFA8563915F528B2F + 2EDE8689B1F93DCEE97060F3E2E7C20B60F1A6E364EBABE33ADD03A868181CCF + BB8582B21A9FED56C68CDC3F8F170680CEECE874006E95A8B5387EB10836674B + E85AAD5E78002B779D0A1B08A94C8EFEA95DF9EF054595E107B068C331929B35 + 31AC1EE0A96A9D91AD11B45C22CCBB7A1BDB5E9FF4FF05808A16441AAD111F1C + FD5E7800E10C01AA35F39FE7B757EC38213C0021250880056F1F213B97BE08B5 + C1FFF81C2EFD75E771BCBFEC256101ACDD7326AC462F9F3B465800F3D61D24BB + DE9812111EB06ADB3FF141F6D4F003C85DF25BD499EC42DB1F1900840C014100 + 64BEB98FEC78637A4478C0F22D87B17BD54C610044420EC8D9F60FE101FC7DEF + D9B01ABD64D6686101CC5EF531D9B17C266A1A840F81955B0EE293377FFF0080 + 2000D4FAC61078F7C0576135FAB5E9CFF2DB39B987C20F6046F68764D7EA393C + 0021B56AF301EC5FF7F203006107B075F96C680C8D3920F7E0B9B01ABD78EA33 + FCF6DFB67E1A7E00BF5BFA3ED9BE3A930720A47236EDC567EB173C0020280021 + 4320220008A9B00128AFD2916FAFDCC1E5FC625454EB10490092BAC4E289C17D + F0E4B00CF44B896BF1E04103B8595A450E9EFA11253546F4EE9D8A848794F8EE + FC25445208CC9B31019A5A3DF2AE142029568E29CF0FC7C0B41451D000F61EFF + 817C7DB50C03063C0CB988402215736DDE00841405F087D993F8EF74BAFCCC57 + DF6358462A668D1F21EA308063DF5C235FFFB702DDBB27F3FB5432514402A01E + 2091885BECFFE1A7420C4A8DC7A4A71EF59B1FDA04F0F29AFD64E0A08C56FB29 + 84FB0100D52747CFE2C39533420B80EAF2C5CB786F65266A23E06D900298336D + 0264ACFDDE103EFAEC04F6AC99DB3100D9EF7D4EC68F7E027937AA7C02D8B222 + 1375C6C80240E58610AF12E1D0BF2E60DD1F7FD331009BF79D2513473F0E954A + 89BCFC7214690C110D808A4250C908D27A74E556957C7EFADFC89A3DA663000E + 9FB942CAEA184C1FFB38A2648099B5F5C65D1D2AAAB4F8F2D479BC9B3D077AB3 + 5368FBF951203E5A86E4C418FE590F9CBC84943825FBFC8F750CC0F9ABA5E400 + 3BFEF7EDD717A387F4405A4A3CB75F2A16A1C1C4E056A51EE51535282AAFC61D + B50E66A3292C0647C544B3C54E02D27A76436A4A57F4EB93C219ED56915A8FB3 + 572B507CA718539E198CA787A7770CC0ADB26AF2D6476790D62F8DFB4E0BA001 + BD929096148DA478154462498BE3ED0E07479EBA1E6373426F64607349B871D9 + 69B3C0686F7C0EB9D80583B9791E41C6D617512A45A3717231D27B268288E5CD + 062B1A635A2E72422C95412115B7BA6F5DBD0545552614965541D760E1569194 + 979460C9AC6791D137B96300D887248BD6EE4346D348A0542AF862282E4A81EE + 5DA2D88BA7205621824C2A855CEAFB3E742DA1C315F8824AA98F657F9EE75B1D + 2E688D0ED49BCCD0E8AD28667BDC6CB1F06DC461E700DCB951882DCBA6A14BAC + AA630068253867C56ED22B3D1D7236B37A0250C864ECA704837B25224A29834A + 2EE19225D763AC3B52209E3DE42DCF765FC7381C4ED888A4119E93FDB35BB805 + 597A0650D76861B4B2FB9ACEB1B2C73A1D769F00E8444950A570D63B8788AA4B + 329472A94F00E9DD63111FA38254C27A010B891A4FA44AEED36D045DC5A137D9 + E16C5ADCE4B05B5BDDCBBDDA4CA55221265AD50481DDE76A39CA70AB42746616 + 98AB4D00169B034C9D061BFF322538001B3E3E4D2A18291262943E0170F14B17 + 694AE45CFCD23010B100E4E2E6D181E601AA400078CAE61273F92221369A379E + 2A10003AA30549722B96658E0D0E007D19FAB1488BC4C484560046FDBC07D7EB + 9EAE4FE3D73B1FB8D7137BC7B1A7EC4DBC9C2E578B73AE9769D9A4CA709EE156 + 2000B45A1D1EED1587CCC923830370EE522139F46D2152927F2618002A83C98A + B8680537BAD0EDF600A8353578F1570FE3B927070607E07A919A6CFCF43B6E1E + 205400BC8D6F0B001DD3DDAE4F0DA7A210DA03505A7A1759D3467173024101A8 + 3598C96B1B0E237D40FF4E05E036D2FB1C5A893A6CD616F1CF016B07C0CDC25B + 58FFA7C948E91A171C00B69DCC5CBE9BAB05FC0190C8149CC1B45091D2C4C802 + A009D197F1BE00D0DE77F7BC37804A9D85CDE8AC816CE2A40CACEC7E5D03D32E + 8082FC02EC5B9BC9FDBE28E829313A1426A4F4F40B80566DB45A0B04803FF7F7 + 04E0F92B146DBD89AD20C5DC9068B1368740AD81F10BC0CA1E6750DFA54550F0 + 5362546FEF3E49EA5D0AC4C7C7F90440F5D3AD4A28247434543679036B888F4B + F3409CCD8D3667CB03DDEE3E72702A07808A83D0140AD40B5C2C304D5D834F00 + 8CB1012A178315F3C78506C0AE23E7C98D2A0B92BB253603608D1D35A40F0F80 + E6016F0FE848F6F78644E1582C0C2C4E09170AB430A210A817D8EC0E1610D30A + 804EABC723494ACC7FE9D7A101703AEF3A397AE136FAF6E91914807BC9FE9E5E + E20D810F0586E18A2535EB094EA783BF47657925C68DE88F0923334203E03F37 + CAC8AE6397B8D7627F003A23047E99D113D5F556946A7470B1065A9DCD238B67 + 1274BF08B90194959461E1E4E118FA48AFD00050D71A48F6B62F41E707DBF200 + 2AF78B90FB8DAE2DF7777B80BF04E8E901251A3D3F04B607E04E6121D62D9AC0 + 0D81210160B5BB48E6EA3D18FAD82F5AFC6F60CCB03EDCA7772D102880F6E2DF + DB3BF4261BE70D34FEDD622CB6960058EFB97EED1A76E7CCE57F4E17927F8D2D + 5EB79F24F7EE8B5895DC2780CE0801DE28EAFA9E6F85E2C6D76F7758D4E9EB9B + CFB558A1292D466E76F354784800E4ECF882881FEAEA17802F0F68ABF79D6C27 + DAFD143FFE3C80CA4EE706D8D34C6CCFD7E88CDC48505EADE3DBF5ECB0296574 + C8593429B400B61FFA8694D7BBD02D21362000DEBA97EAAF2DEF7003E0AE69B3 + 43DF60467EB1866F67F315FA278AB170CA530101F81FA88E93F9A0B709500000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000096E4944415478DAEDDB097054 + F51D07F0EF9ED9054C4288240112200818A052102D96321EA0839CEA08E52CC4 + 012A30AD351618391B29E9488502120E610495438182451186433C9048410A74 + 2084232421B00949F648B2FBF6EDBEDD7FDFFF6DDE6337D90D71AF974CF9CD64 + F678FB8EDF677FFFE3BDBC5510421028140A45C065599B4E045E318C9191F630 + A60FEB4D8F4511EC361ACD31148095339F8938C096AFCE034A4D48082D1A60FB + F17CD89D6EE179B0082D1A60DFA942D818362484160D70F86C116C0EB784C03A + 9D98F1625FC468944D46882880838B6C5F78E6AA0135364748082D1AE0527105 + 6C2CD700813EBE3EAA5F9310A20290957B28ECC9AF9AF3224A2B6B60B1DA1B20 + 3889023535B626214404E0AD0DC7C87BAF0F110E2892616138308C3D20425535 + 8359C3FBA08D5E1BF0605B340071BB50CD92C6114C16CC1D3730BA006FE41E25 + AB670F9500E66D381CF6E457CC1A864B4595F8E2F475581947C0CFB9380E6BE6 + 3C1F5D8039AB0F92756F0C8F7805D0A0CDE060DE35E49754F85DCE3236E4FE69 + 843C00261B177100318A0C461C3C5D0887CB17DD6834CB0FB078F391A841A835 + 5A744F4D945EE717DE893EC0EC9507486ED6A8A8568077DC35D5F27304A3D011 + E65DB88EF56F8DFEFF02A041274465C65A6CD9FF83FC00D16C023496CD78417A + BE68E321F901E40C590066BEBB8F6C9AF7320C96C0E373B4E22F9B0EE283F9AF + C80BB07CDBB1A826BD70DA507901A6E7EC269BDF1EDB2C2A60C9FA7F61CB8271 + D107C89DFB2AAAAC4EB9F36F1E00723601590032DFD94136BE3DA15954C0C2B5 + 7BB175C92479009A431F90BDFE9FF203FC7DFBF1A8263D77F2107901A62CF998 + 6C5C38091535F23781C56B77E393777EF70040160083D9D304FEB1EBEBA826FD + E684E7A4E7D9B97BA20F3071C18764F3D2A912809CB164CD2EECCC79ED0140D4 + 01D62D9C82328BA70FC8DD7D22AA49CF19F7ACF4FCAFEB3E8D3EC06FE77D4036 + 2CCD9400E48CECD5DBF1D98A990F00220E505A6E22DF9DBB81B3976EE2F65D13 + BC01E46C021420A95D2C9EECD3054FF5CF40B794389F030F19E06A7139D97DE4 + 271455D4A273E754B47D4887EF4F9E4173AA80E91347A2ACD28CBC73F9488AD5 + 62EC0B03D02B3D451132C0F6833F926F2E94A067CF47A05510A8D44A61597303 + F8FD94D1D26B7AB1F4D8D73FA07F462A268F18A8081AE0C0B717C937FFBD8D0E + 1D92A5F7F41A855F00B99B00AD00954AE9F3991FCF17A0776A3C463FFD58C0FE + A15180D796ED24BD7A6734789F2234B70AF00740E393FDC7F1E1E289E105A071 + F6F4D966053075FC4868F8FCEB237CF4D9216C5B362D388005EF7F4E460C7912 + 7957CA5B0C000D11215EAFC09EAF4E21E70F2F0507B066C771326AC813D0EB75 + C8BB548AC2328B0FC0FB8B3351D90CCE0645001A1441AF2148EF9828DC53F0F9 + D17F236BCAD0E000F61E3B474AAA184C18F6045A69001B9FEB955B26DC2E37E2 + CB2327B1765126AA6A9B07001D05E25B6B909CD0463AD65D87CF20254EC71FFF + E3C1019CBC504C76F1E37FD76E5D31A46F47A4A7C40BEFAB950AD45819A132E8 + 8EE87D42D1B84FC03BB42A05D4FC9F56EDC98D262D46A1C18CE3176EE3E68D9B + 18FB6C1F3C33A0477000D74AEE92BF7D740CE9DDD285D77402D4332D09E949AD + D12E5607BDF6DE5EE9815008CEEDD91ECB7940C41B1C8565AE7BFB72B87CF74B + 13F20E75DD6B314135DFAEE9142446AD14BE0031E8FE9C1C87AA6A3B0ACBAD28 + 282987A9C62EDC43505A5484B9939F4346D7E4E0002C360799BD7C0732EA4602 + 9D2E469A0CC57056A424B543FBC4040183FE791F9842A9F2D916BDD7275C4193 + A6091B8CB528AFAAF6F44D2AAD044F38A70070E34A01D6CE1FCF1F9B3E38003A + 139CBA682B49EBD183FF8694BE001A0DFFA8429FB404B4D269F86A50094D8206 + 2D478D5A2D6D877E43F5C37BB9BFCF709C0B0EA2922A8773DA85666666004385 + 11B52CFF5EDD3A2CFF5917E7F40B404F93439A0A67BDB787E8DB2543A755FB05 + E8D12116F16DF442C96A78249A3C51EB84473109FA3F7CB3D50957DDAD2D9C93 + 6DB02FB10FD1EBF568D35A5F87C0BFE7F6ED64857B024C361ECCDD2880DDC181 + A92AC3AA3F8F0D0D60E5C747C96D468DB66D747E013A27EA9194102B017892D0 + F19FF3947C3000B131040EE8FC264FA32900A65A3B92B42CE6670E0B0D809E0C + FD54684442425BBF0029F13AA4B68FF31CBC56E5034093A761B45871B7DAF1F3 + 00DCBE7D085DB72EFF2601188D263C961687CC318342033871A680ECF9AE0029 + C90FFB05D0F0AF5BD19B34F94EA8955629F4DA0ABE096895F73A3D3199A60078 + 87C3CD6F4FE9462CDF24C4E419870B162B7B5F004359055EFEF52378FEA95EA1 + 015C2E3490559F7E2F5C07A80F30F8171D85B2F7EEFCE848403B3871F81212A9 + BB9F581C22C503F50E679D97CBEDF659E77289919FD1314265D0A0C95384FB01 + 1417DF42D6F8C1C2358190002A2D36F2E6CABDE8D1B3BB6C0062E271AD639A0C + 70B5E01A56FC710C5212E34203E09793490BB70A73817001D44FBE31003AAB13 + 3B3F9ABCDBC5817529EE0B907F291F3B96670ABF2E09F992181D0ADBA6748A28 + 809864FD75E8B908E7607D460001AC110096656131DCA293A0D02F89D17877EB + 6152ED8E417C7C9C5F009526464898F6FC6ADA31F200B443F497BC3F00FAED8B + DF7C7D803B263B3FA6F309F21D273560F9F74D354CA3004C6D0DF46E068B660C + 0F0FC0E67D27C995723B92DB27F805204A7E04885136092050F97B0378FF0AC5 + 586D45AD53294C8AECAC67F4A07D40A585090860329AF168920E335EF94D7800 + 8EE65D26FB4F5D47D72E9DFC02D0387FED0E62547434D4D555039D0435DCA604 + D2C8899158EE83FAA40A00340484BAA640ABC0CD839555D5F805B8537A07C307 + 76C7C84119E101F8CF9512B2F9C019E1B45802E0931DDCB74B83D99F770504D3 + FBD747A238763B03BB4B2534053A3BA408B40A1C4E8E07621A0094149560D698 + 01E8F7685A78000C9516B260FD97A0D7074301F839BDBF7795D447909A023F3F + A09325035F092E1727EDE346410172668F1486C0B000B04E37C95CBA0DFD1EFF + 6540804834815F6574E2A7D02C8ACB4CD2F027C179758236BBFD5E85F1EB5EBE + 78115BB3A7493FA60ACBBFC6E6E4EC24C99DBB2256AF0D580134C45361F1DA40 + 63E52F5640A00ED0BB028ACACCD210D81880DDCEA2ACF8267217DCBB141E1680 + EC8D5F10E5438912008DA1FDBB088FF5E7024D05B85FFB179317C36C7508D540 + DBBF188CDDE10360E63B4D356342F6ECD1E105D8B0E75B525AED46FBB6B17E01 + 22D10424385AFADEA7C64ACF0518B1595499ABA5457C7F85EE094ACC1AFB7493 + 00FE07924089F9DA26DD120000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_21_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000097F4944415478DAED9B097013 + D719C7FFBA25436C6308B603066C02C44043098492522621900CE16C3285E12C + 3803698069D338254C38EB50C8240D1428E6284C2009470A145212020338E400 + 1C0AA140078C398C6D8C2D832D59B6A5D5EA7A7D6FA55D245BB28D244BF6846F + C6B3FB7657BBEFFBBDEF7A6FD73242087ECA227B08A0010032992CE0B9CCCD27 + 22422EBDCBA39835B20FEB8B2CD87B34A863280056BDF65CB303D8FAD50540AE + 0A0942AB06B023270F56BB4BD80F1642AB06B0FF74012C1C1F1284560DE0C8B9 + 42586C2E09026FB763F64BFDA051C99B0CA15901D81CCD1B0BCF5E2B438DC516 + 1284560DE072D13D5878473D086CFBFAD8FE4D8210110099D987C3AEFCEA792F + A1A4A20626B3B51E043B91A1A6C6D22408CD02E0AD8DC7C987AF0F173AD49C62 + E21CE0386B400895D51CE68CEA8BB63A75C0CEB66A00C4E544354F1A86603461 + FEC4C19105F046F631B266EE0809C0DB1B8F845DF90FE68CC4E5C20A7C71E606 + CC9C2DE0754E87036BE7BD105900F3D61C22EBDF18D5EC16C084B9C1A1DCEBC8 + 2BBEE7F73CCF5990FDC7D1D10160B4389A1D80288565061C3A53009BD317BAC1 + 50157D004BB61C8D1808A54A8D1E291DA4765E4169E401CC5D759064678E8DA8 + 0578CB5D632DAD110C4220CCBD78031BDE1AF7D302C08415447A432DB61E3815 + 7D0091740126CB67BF28ED2FDE7438FA00A2295101F0DAFBFBC9E6B75F469929 + 707E8E94FC79F321FC63C12BD105B062FBF1882ABD68E688E80298B5720FD9F2 + CE841661014B37FC1B5B174E8C3C80ECF9BF41A5D91E6DFD5B068068BA405400 + 64BCBB936C7A67728BB08045EBF661DBD2A9D101D0126240D6867F451FC05F77 + E44454E9F9D3864717C0F4A59F904D8BA6E25E4DF45D60C9BA3DF8F4DDDF3E04 + 10150065556E17F8DBEEAF23AAF49B939F97F6B3B2F7461EC094851F912DCB66 + 4800A2294BD7EEC6AE95AF3E04107100EB174D87DEE48E01D97B4E4454E97913 + 8749FB7F59FF59640094941BC977E76FE2DCE55BB873D7888DCB322400D194AC + 353B90D83E1683FA76C3334FA5A37B729C4FC7430670ADA89CEC39FA230AEFD5 + A26BD714B47B448BEF4F9E6D5100664D19037D451572CFE72131568D092F0E44 + EFB46459C800761CFA817C73B118BD7A3D0EB58C40A1940BE7EA0288A60B3000 + BF9B3E4E6AB3A5B2E35F9FC253E92998367AB02C680007BFBD44BEF9DF1D3CF6 + 5892744CA792F905104D112D40A190FB1CFFE1423EFAA4C463DCB34F068C0F0D + 027875F92ED2BB4F7ABDE30C426B00C0E4D30339F868C994F0026072EECCB916 + E50233268D818AEA5F17C2C7FF3C8CEDCB67060760E1DF3F27A3870F42EED5F2 + 46014453BC01301121C4EB64D8FBD569ACFCFDAF8303B076670E193BFC69E874 + 5AE45E2E4181DED4A201306110742A82B44E1D8437CA9F1FFB0F32A78F080EC0 + BEE3E749712587C9239F468C0AB0505DAFDE36E24EB9015F1E3DD9A200B02C10 + DF4685A484B6525F771F398BE4382DEDFF80E0009CBC584476D3FC9FDA3D15C3 + FB75425A72BC705C2997A1C6CC0996C11EC4BE1289C45B626F512B6450D23FB5 + D2AD1B535A9482B22AE45CBC835B376F61C2B0BE786E60CFE0005C2FBE4BDEFB + F838D2BAA7096D5600F5EA9288B4C436681FAB854E7DFFA9AC230C84C3E5BE1F + EF7003113F6F13CE39EF3FCBE6F47D2E53C85B949EB6A8A092FA352B41344AB9 + 3000A2B0E7D91D0E54565B51506E467E71398C3556E10D72496121E64F7B1EE9 + A949C10130596C64EE8A9D48F76402AD562315431A8719C3860C408C462ED067 + 30C4CE862A8D7D78C5946680AB39270CD566E49CBB4E239F5A024F1C7601C0CD + ABF958B760121D2C5D700058253863F136D2A5674F3A42721F00BC850218942E + 8D1E1B31AD562740D0D248A4F1548CDEA3255A89F7C8FA535A549089DD09385D + 2EC9CD383BA1FB2E61D41D9E6B4E5DB826F4CD1F0036490AA914CEFC702FD1B5 + 4F8256ADAC074045B73A39ED84A60DDAC89DB4ED564A1713038D9C2AE1AA0FDE + 6AABFF2E91732A2077D92173BA03AAD9A5F039CF3BDD5BA7E37E9CB11119E476 + 0B2C4EF7B57501B0E770957AACFED384D000ACFAE418B9C329D1AEADD6D70554 + 2ABA55A06B071D121362050B5079F22F0B8E6A99D3D35185F00ABBCA6C87D3F3 + 6587C3CED77B961844753A1D62357494A1055CBE19468C277AA3855A808B5A80 + C3A3B493C2B1FB0030D65A91A8E6B12063646800D864E8C702031212DAF90590 + 1CAF454AC73877E7D50A1F004C792606931977AB6D0F06A08E15B0DF7AF46F12 + 0083C18827BBC42163FC90D0009C389B4FF67E978FE4A447FD02888B512395A6 + 4716070201A8AEB5A0D4C83719805655BFA617479FB3396132F38D0228D3DFC3 + CBBF7C1C2F3CD33B3400570ACAC8EACFBE17D601FC0188553A9096D2116ADAF6 + 06E02DA100F01E79264C7906A131004545B7913969A8B0261012800A9385BCB9 + 6A1F7AF6EAE117808AB663D8479A340DC5A8E542749729A905C89DD27D44736E + 0A006FB1B9E8FD689065501E14C0B5FCEBF8E00FE391DC212E3400F43C99BA68 + 9B500BD40530F4679D84C0278E38AB0758DA5329953E694E4C7162912476D45B + EC62A477B97C7E73A5D8406B7A4E8260A4799F77CA1A059077390F3B576408FF + 5B10F292184B85ED923B470D8038F2716D34420014AE6F0000CFF33095DD6645 + 50E84B624CDEDF768454BB34888F8F0B0B80BACA370480D5F5620014CDBF3100 + 5C6D0D742E0E8B678F0A0F802DFB4F92ABE55624754C68360056BBEF31F1376C + 36EAB0F13E354063008C862A3C91A8C5EC577E151E00C772AF9003A76F20B55B + 67BF00142A8DA0304B7D4A161829001610FD29EF0F8058EEFA03506AB4D2AA8E + 2A48032763C0D3E3C61AAE4100A525A51835B807C60C490F0F80FF5E2D265B0E + 9E15A6C5FE0010B95A981435054020F3F706E03D2F60939D5ABB5CA8FBADBC3B + 7B3037A83071010114171663CEF881E8FF4497F00028AB3091851BBE045B1FF4 + 0780C985EBA5D0285836D47AAC8195C1F5EF290169606A2C9AFB90BE29020026 + 02048F2B302B705160FACA1ABF006EE6E763E5DC31420A0C0B00DEEE2219CBB6 + A3FF809FDF0740951DDAAF5BBDFADFDB028289FE75213138562B072B9DF43057 + 60F30306815981CDEEA080385F00F4DC954B97B02D6BA6F4AF34617935366FE5 + 2E92D43515B13A75D0001E24FA7B5B495D08922BD0FA80154B65D4129C4EB73B + 58AD3CF445B790BDF0FE52785800646DFA82C81FE910104073B8C02FD23BD349 + 148F22BD112EAA202B8024705E41D062B54AC7ABA8CB283923B2E68E0B2F808D + 7BBF2525D52E746C171BD00298B054C82C405C0869C8FC450B081400BD2DA050 + 5F25A5C08600D078851E0972CC99F06C9300FC1F004F68F9954EC85700000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_22_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000009544944415478DAED9B0B7014 + F51DC7BF77B967C0240484440C902060804A1164B09451041DE4599DC2F09042 + 1CB002D35A6391916723858E562850C2A330069587050A16451820E203081444 + A00349788424843C24B9CBE592DB7BEDFDFBFFEFDD6EEE92BB24BDBBDC2623BF + 99CCEE7FF776F7FFFBFC7FAFFF7F370A42087ECAA27800E001800700029F5428 + 029E4BDF762A22E4527B3C8CB96307B0BE2882BD47933A860260ED6BCFB63A80 + 1D5F5E0694EA9020B46B00BBB2736175B884FD6021B46B0007CF16C0C2D94282 + D0AE011CBB58088BDD2541B0391C98F7E22068D5CA16436855007667EBC6C20B + 37CA60B6D84382D0AE015C2BBA0F8BCDD90802DBBE3E71708B204404407AE6D1 + B02BBF6EE18B28A934C354676D04C14114309B2D2D82D02A00DEDA72927CF0FA + 68A143AD2926CE098EB306845055C361FEB881E8A8D704EC6CBB06405C3C6A6C + A469084613164D1D1E59006F649E20EB178C9100BCBDE558D8957F7FFE585C2B + ACC4E7E76FA18EB307FC1DEF7462C3C2E7230B60E1FA2364D31BE35ADD029830 + 3738927313B9C5F7FD9EB7711664FE61BC3C008C1667AB0310A5B0CC8023E70B + 60E77DA11B0CD5F20358BEFD78C440A8D41AF449EA22B5730B4A230F60C1DAC3 + 24337D62442DC05B7E34D6D21AC12004C29C2BB7B0F9AD493F2D004C5841546E + A8C58E4367E40710491760B26ADE0BD2FEB2AD47E50720A7C802E0B5F70E926D + 6FBF843253E0FC1C29F9D3B623F8C7E297E505B07AE7C9882ABD74CE187901CC + 5DB38F6C7F674A9BB080159BFF8D1D4BA6461E40E6A25FA3AACE21B7FE6D0380 + 9C2E200B80B4777793ADEF4C6F1316B074E30164AD98290F80B610033236FF4B + 7E007FDD951D51A517BD325A5E00B3567C4CB62E9D89FB66F95D60F9C67DF8E4 + DDDF3C00200B80B26AB70BFC6DEF571155FACDE9CF49FB1999FB230F60C6920F + C9F695B3250072CA8A0D7BB167CDABAD0FA0A4C248BEBD741B17AFDDA1D35033 + DA12802EB1D11836B0179E7E3215BD13637D3A1E32801B451564DFF1EF5178BF + 163D7B26A1D3433A9C3DF703362D9D8572933B0664EE3B1551A5174E1D25EDFF + 79D3A7489B3A16E595D5C8B9948B6E311A4C796128FAA7242A4206B0EBC839F2 + F59562F4EBF718340A8228955238F7DDE90BD8B2324D0220A764ACDF85DFCE9A + 24B5D942C9C9AFCEE0C9D424BC327EB822680087BFB94ABEFEEF3D3CF2488274 + 4CAF56B4490073674C405494D2E7F8B9CBF91890148749CF3C11303E3409E0D5 + 557B48FF01A98D8E33080D01C8E902810030F9E450363E5C3E23BC00985C3C7F + B14D59C0EC6913A0A6FA3784F0D13F8F62E7AA39C10158F2F7CFC8F8D1C39093 + 57D16E00301121C4E915D8FFE559ACF9DDAF8203B06177369938FA29E8F53AE4 + 5C2B4141B9292000B95D800160C220E8D50429DDBB08EF133F3BF11FA4CF1A13 + 1C8003272F91E22A0ED3C73E85683560A1BAE6DD35E25E85015F1C3FDDA62C80 + 6581B80E6A24C47794FABAF7D80524C6EA68FF870407E0F49522B297E6FFE4DE + C9183DA83B5212E384E32AA502E63A4EB00CF620F68D4024DE117A8B264A0115 + FDD3A8DCBA31A5452928AB46F6957BB873FB0EA68C1A886787F60D0EC0CDE21F + C95F3E3A8994DE29429B1540FD7A74434AB70EE81CA3835E53FF54D61106C2E9 + 72DFCFE67403113F6E12CEF1F5CFB2F3BECF650A798BCAD316155451BF662588 + 56A514064014F63C87D389AA1A2B0A2AEA905F5C01A3D92ABC3F2C292CA4D3E6 + E7909A9C101C0093C54E16ACDE8D544F26D0E9B45231A475D661D4882188D62A + 05FA0C86D8D950A5B9CF6E98D20C700DC7C3505387EC8B3769E4D348E089D321 + 00B89D978F8D8BA7D1C1D20707805582B39765911E7DFBD21152FA00B0592880 + 61A9D2E8B111D3E9F402041D8D445A4FC5E83D5AA295788FAC3FA54505993878 + 8077B92437E31C84EEBB8451777A7E73E6F20DA16FFE00B0495248A570FA07FB + 89BE7302741A55B300546A9D601182B5A8EBF3B1A8845F653DAED0D025983065 + 7D21D5DFA3390056BB135C5539D6FD714A6800D67E7C82DCE354E8D451D7AE00 + 186BADE8A6B16171DAD8D000B0C9D0F70506C4C7776A04404DB77A25ED84B603 + 3A2879DA769BB53E3A1A5A2535635763D76323D348513E0A4A97030ADE9D52EB + 5C513EE76DBC7BCB7B01B01305940E0B2CBCFBB70D01180C463CD12316699347 + 8406E0D4857CB2FFDB7C24263CEC1B04D56ABA8D426CB406C9343D322BD06BDC + 9D61E951A3E06927DDED9A5A0B4A8D36F09E2F3B9C0E5BA367896954AFD7FB58 + 8F04CE934D383B0F539D8D5A808B5A80D3A3344FE1387C009495DFC74BBF780C + CF3FDD3F3400D70BCAC8BA4FBF13D601FC018851399192D4151ADAF606E02DA1 + 0060D738BC4A0CA63C83D01C80A2A2BB489F36525813080940A5C942DE5C7B00 + 7DFBF5F10B404DDB037A756E12002B498B2AB98802B8917F13EFFF7E3212BBC4 + 8606809E2733976609B5402000C989B188EBA81702A19AA6CB5000C474D04B93 + 9986CA3331D2BC6FE315CD02C8BD968BDDABD3842FCB435E1263A9B053E2A301 + 0144B38F34692112AD510AF95DA1A23140C94BF7B17B825A4B00788BDD45EF47 + 832CB30A51CA8D1661DB14009BCD0653D95D560485BE24C6E4BDAC63A4C6A545 + 5C5CAC0F80913FEBEE33E2AC2264858F5AA5F22974C4B42796C96247BDC52146 + FA06E9F27AB1815A102740B0D1B6D1CC350B80AB3543EFE2B06CDEB8F000D87E + F034C9ABB022A16BBC2C009830DFD7A855C2B639004643351EEFA6C3BC977F19 + 1E002772AE9343676F21B9D7A36101D050797F00C46BD8CC4E4C81A2FF3707A0 + B4A414E386F7C18411A9E101F0435E31D97EF882302D6E2D00D606D14EBC86AD + 4738EDF5FF32D39218505C588CF9938762F0E33DC203A0ACD244966CFE026C7D + D01F8028B5565098153F2A161829001610FD29EF0F40C352D9FBBA52A395568F + 54411A381903310E3405E0767E3ED62C9820A4C0B000B0395C246DE54E0C1EF2 + 73BF00885223CC015A022090F9079A2BB0E96EAD4329D4FD569BDBFF591D5069 + E2FC03A094AE5FBD8AAC8C39D23F5284E5D5D8C2357B4842CF64C4E8358D0030 + B97CB314DA28960D751E6B60F57AE37B4A409A581C11CD7DC4C0240100130182 + C7159815B828B0F22A73230056AB0DE5457790B9A47E293C2C0032B67E4E940F + 75A90740951D39A8970440ACFFBD2D2094E82F426270AC560E563AE961AE003A + 6962109815D81D4E0A88F301504D81A9382332164C0A2F802DFBBF2125352E74 + ED14133480FF27FA7B5B494308922BD0FA80154B65D41278DEED0E345EA14FBC + 12F3A73CD32200FF03326F3FF99775046C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_23_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000009314944415478DAED9B7B7054 + D51DC7BFBBD9D74D302FD024208F040103548B2083A58E62D0419EEA140A2285 + 3840254C6B8D05469E8D94385241A0848730059587028245110688F800024D44 + A0032104421202494CB29BCD63EFBE4FCFB9D9BBC96677D9CCEE666F32E5FBCF + DEF73DBFCFF99DDFF99D73CFCA0821F026994CE6F5DCEF177E443E5C3C13B506 + 1BA456C6BA5DF87CF55CAF85BDA78D810090DAF0960A3980CEA4FB00EE03B80F + 20F800D2B79E0A49104CEEF520668F19C4CAE2776DB41B8035739F6D7700DBBF + B908C8950141E8D4007665E7C368B10BDBFE42E8D4000E9E2D8281370504A153 + 033896570C83D9EE8460B25830E7C5C7A156CADB0CA15D0198ADED1B0B73AF97 + A3DE600E0842A70670A5A40A0693D50D02FB7D63C2903641080980F4ACA34137 + 7EEDFC1751565D0F7DA3D10D8285C8505F6F6813847601F0F6E693E483375284 + 02B5A7F4BC153C6FF40AA1A68EC7BCB183D18553857630142A00C46E439D89DC + 1B824E8F0553468416C09B5927C8BAB4D14E000B371F0BBAF1ABE78DC195E26A + 7C75FE061A79B3D7EB6C562BD6CF7F3EB400E6AF3B4236BE39B6DD3D80893583 + 233985C82FADF278DEC41B90F59771D200D019ACED0E405471B91647CE17C16C + 7385AED5D64A0F60D9B6E32103A150AAD0AF6737E77E7ED1DDD003485B739864 + A54F08A907B4D42FBA069A236885409873E90636BD3DF1FF0B00134B882AB40D + D87EE88CF40042D9049856CE79C1B9BD74CB51E90148294900CC7DFF20D9BAF0 + 6594EBBDF7CFA1D2DFB61EC1478B5E9116C0AA9D27436AF49259A3A505303B73 + 1FD9F6CEE40EE101CB37FD1BDB174F093D80AC05BF434DA3456AFB3B0600299B + 80240052DFDD4DB6BC33AD4378C0920D07B063F974690074841890B1E90BE901 + FC635776488D5EF05A8AB400662CFF846C59321D55F5D23781651BF6E1D377FF + 701F40BB0328ABD4911F2EDC44DE955BA8AAE3C10094D73635810FF77E1B52A3 + DF9AF69C733B236B3F622254183EB80F9E7A22197D13A25C0A1E3080EB259564 + DFF19F505CD580DEBD7B22E6010DCE9EFB19DB56CC74029052CBD7EF45EA9431 + A8A8AE45CE857CC445AA30F98561189894200B18C0AE23E7C877974A3160C023 + 50C908C21472E15C4703307BDA58E73E1B269FFCF60C9E48EE89D7C68D90F90D + E0F0F797C977FFBD83EEDDE39DC738A5CC0960E39219A8D037C580AC7DA7426A + F4FC29A39CDB7FDFF899E001616172976BCE5D2CC0A09ED198F8CC635EE3C33D + 01BCBE720F193828D9ED3883F0E3E95C6C5E91EA0420A5D82AB1D9AF8E7703C0 + F4E9A16CFC6BD9ABC105C094773EAF43019839753C94D4FED6103EFEFC2876AE + 9CE51F80C5FFFC928C4B198E9C6B953E0148D9045A02601221447332ECFFE62C + 32FFF4927F00D6EFCE2613529E04C7699073A50C45157AAF00A49408808941E0 + 9404493DBA095F93BE3CF11FA4CF18ED1F8003272F90D21A1ED3C63C89702560 + A0B65EBBADC39D4A2DBE3E7EBA4301F8E38C89888E50223EB68BB3AC7B8FE522 + 214A43CB3FD43F00A72F9590BDB4FF4FEC9B8894C77B2029215A38AE90CB50DF + C80B9EC15EC4BE106FF82247F842130AA9B970A4BD34028A3019548A26DB98D1 + A28ACA6B917DE90E6EDDBC85C9A306E3D961FDFD035058FA0B79EFE39348EA9B + 24ECB3046840AF3824C545A06BA4069CAAF9ADAC200C84D5DEF43C93B5E9EB8D + B8B44538676B7E97D9E6FA5E55986B19158E7DD140056DD72C05512BE4420588 + 62EFB358ADA8A933A2A8B21105A595D0D51B85AF4765C5C574D0F41C9213E3FD + 03A0379849DAAADD4876F4041A8DDA990CA9AD8D18357228C2D572813E832116 + 3650F95A74C18C6680EB781BB4758DC8CE2BA4914FE5044FAC1601C0CD6B05D8 + B0682AAD2CCE3F002C139CB97407E9D5BF3FAD21B90B00938102189EECAC3D56 + 631A0D2740D0D048A476648C2D6B4BF4929635EBC968D140268B0DB0D9EDC279 + F62196B710BA6D176ADDEAB8E6CCC5EB42D93C01D893F9BAFF99200390FEC17E + C2758D8746A5F00940A1D4081E21788BB2B93F168DF068ACA329B46E124CCC58 + 5748CDCFF005C068B682AFA9C0DABF4E0E0CC09A4F4E903BBC02315D349D0A80 + AEC1883895098B52C70406800D867E2AD2223636A65301D06A7578AC57145227 + 8D0C0CC0A9DC02B2FF870224C43FD8A900945754E1E5DF3C82E79F1A181880AB + 45E564ED673F0AF300AD0128E92F27A785504720426EA3FB4D818D0B0F875A4E + 0399DD3DF8B2B6E966A82D0C72BB05325B5352D5680F73396F72FC2BC7D60280 + 99C820B71860B0355DDB1A4049C96DA44F7D5A9813080840B5DE40DE5A7300FD + 07F473ED06954AFA1B0625DD1FD4A72B54749F5335158625482E06D294B4A49A + 87CDB1B2C36A31B9BD4B5C6AC3719C8BF7B07B2C2D1684E81B4DE0CD36EA0176 + EA015687D1360AC7E202E07A412156FF791212BA450506809E27D397EC107201 + 6F001213A210DD85139A819276978100888CE09C8399D6C633E968BF6FB2C97C + 02C8BF928FDDAB528575C5014F89B1AE3026E1E13603604D41A1540704C093F1 + 4C15BAA674FB5E004C2613F4E5B7591214F89418D3FB3B8E913ABB1AD1D1511E + 0174EF1A8EB8D848E15A4FCD2058004C3478EAEA799F00F8867A70761E4BE78C + 0D0E806D074F936B9546C43F14EB1140385BA44953D170955CC8F0640A0D54F2 + E6FF139A1D41AD2D005ACA6CA7CFA34196C50501246DFB2C06F802A0D3D6E2D1 + 380DE6BCF2DBE000389173951C3A7B03897D1E7601F0F4AF7AB8B479362660A9 + AF52A1704975C56E4F1C2889056D298B18E95B7597574BB582D151116AEA493C + F446E213C0DDB2BB183BA21FC68F4C0E0E809FAF95926D87738561B1140098C4 + 9A675EE00B40697129E64D1A86218FF60A0E80F26A3D59BCE96BB0F9C1600068 + 6DBC2700E23D6C6C2F0EA9C51EC017809B0505C84C1B2F7481410160B2D849EA + 8A9D1832F4D7ED06C0D82AE289F7B01929ABB9F92F333E7B017ADDD5CB97B123 + 639673197D503E8DCDCFDC43E27B27229253B90108A35D1E335825B341C10223 + 05C002A227E33D01689D2AB7BCEFAECE48B3476A200D9C8C81D813780360349A + 5051720B598B9BA7C283022063CB5744FE40378F00885C258C01DA02C09BFB7B + 1B2BB0098F068B5CC8FB8DA6E63850ADE73D02A8A5D72B781D32D2260617C0E6 + FDDF93B23A3B1E8A897403C074B1F02ED461AC37D438BC81E5EBEECF7402B9C7 + F498E8EE2307F714003009101C4D8179819D02ABA8A9770340E315FAC5CA316F + F2336D02F03FD11C23F9E3E847C90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_24_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008F64944415478DAEDDB095054 + F71D07F0EF2E7B82E19204D0A801A306B5498DC6D1DA4C623409F16C9C60B56A + 954CB411A74D43AA4E3C4BAD7462A351231EC129A6F548D46A6A6274546292AA + 68C533A3800702A240805D16D87D7BFFFBFE6FF72D7B2174AFC74EFDCD307BBC + DD7DEFF7F9DFEF3D448410B4172291A8DD6DBF5CF409D9B82C138DAD26081D39 + EB77E2F335F3DA3DD807E6F810C00F808F96CC4693CE2274FEC201089DB87384 + 1C209CE221C0438087008107C8DE7632249D605AEF47F156FA207A2C3E9746D0 + 00D6CE7B31E800DBBFBE0C88A57E218435C0CEC212E84D56EEB9AF08610D70E0 + 4C39748CC12F84B006385A5C019DD1EA4030984C98FBDA33904BC59D46082A80 + D11CDCBEF0FC8D1AB4E88C7E218435C0B5CA7AE80C660F04FAF8F6C4219D4208 + 094076DE918027BF6EC16BA86E688146ABF7403011115A5A749D42080AC07B5B + 4E900FDF1EC31D503043C398C130FA76111A9B19CC1F3718DD94B2D02E864205 + 40AC16341BC88311D41A2C9C3A22B400EFE41D27EBB3C63A00166D391AF0E4D7 + CC4FC7B58A067C79EE16B48CB1DDCF59CC666C58F072680116AC3F4C36BD332E + E83580066D06878B6EA2A4AADEEB7603A343DEEFC70B03A0D699830EC047458D + 0A87CF95C368714557A99A8407589E7F2C641012A90CFD7A25385E9794DF0F3D + 40D6DA43242F7B62486B8073FCA86E65E7082AAE232CBA720B9BDF9BF4FF0540 + 834E886A55ADD87EF0B4F000A16C023456CD7DC5F17CD9D623C20308198200CC + FBE000D9B6E875D468DA1F9F43157FDC76189F2C9E222CC0EA1D27429AF4D239 + 638505782B772FC97F3FA34BD480159BFF85ED4BA6861E206FE11B68D40A7F6D + B04B0008D9040401C8FCD32EB2F5FDE95DA2062CDDB81F052B660803D015FA80 + 9CCDFF141EE0AF3B0B439AF4C29963420F505DA726DF5FBC8DE26B7750DFCC60 + EBD219A86F11BE092CDFB8177151320C1FFC04463E9B86BEC9312E07EE37C08D + CA3AB2F7D80554D4B7A24F9F5E887B448173C53F7429805F4F198BDA8626145D + 2C4162B40C19AF0CC3C0D46491DF003B0F9F25DF5EA9C280014F422622889088 + B96D3C404D93AD097CB4E79B9026FDEEF4971CCF73F2F62133A36D6D40174927 + BE398D67D37A61E6F811229F010E7D77957CFBC33DF4E891E4784F29B5D58A33 + 672F217FE56C078090B162C31E644E4D474484D8E5FDB397CB30A8572C26BDF0 + 74BBFDC30301DE5CB59B0C1C94E6F13E450807001AFF385888BF2DFF55600168 + 5CBA70199B96CE42ADC6D607E4ED3D19D2A4174C1DED78FEE74D9F61E61BE990 + B2F9BB237CFAF911EC5835C73780251F7F41C68F198EA2D23A8F6DC5E78AB165 + 65A60340C8A07789CD9E368103A0C123C42A45D8F7F519E4FEF617BE016CD855 + 48268E790E4AA50245D7AA515EABE9D200342882524A90DA3381BB96F0C5F1FF + 207BD658DF00F69FB848AA1A194C4F7F0E915240C7E65A7A578D7B752A7C75EC + 940B80904D8002FC66D624C446499114DFCD71AC7B8E9E47728C823DFEA1BE01 + 9CBA5249F6B0E37F4ADF148C79A627529363B9F72562115AB40C5733E88EE8F5 + C1505C1F700E59840812F64F26B1E54693E6A3BCA6098557EEE1CEED3BC8183D + 182F0EEBEF1BC0CDAA1FC95F3E3D81D4BEA9DC6B3A011AD03B11A98951E81EAD + 8052D6B6577A2014C26CB5FD9EC16C03E16F6CE0B659DAF665B4B8EE9726E41C + 12FB6B3E4109DBAEE914442E117305C007DD9FC96C4663B31EE5755A9455D541 + DDA2E7AE1D545754B053E697909692E41B8046672459AB7721CD3E12281472C7 + 64486ED662F4A8A188948B397D7A50227144504B9D0F9AB01562343316A89AB5 + 282CBEC9F67C32073C319B3880DBA565D8B8781A5B584ADF00E84C70F6B202D2 + BB7F7FB684C42E00069D16AF8E1CC895245F1D150A2557620AB62792DB678CCE + A5C5D712E79275D408A7FB0C68A9F235C864012C56ABA3993126C23EB7720866 + FB674E5FBEC11D9B3780DDB96FFA3E13A400D91FEE23CAEE4950C8241E00A387 + DB6A060F20912AB81AC1D51669DB78CC27E135597B53706F123468B2AE486DBF + D11180DE6806D3588B757FC8F00F60EDDF8F937B8C0471DD146105A06ED52351 + 66C0E2CC74FF00E862E842B90AF1F1716105A052A9F174EF18644E1EE51FC0C9 + F36564DFF765484E7A34AC006A6AEBF1FACF9EC4CB2307FA0770BDBC86ACFBEC + DFDC79807002A8ACBC8BEC69CF73E704FC0268D0E8C8BB6BF7A3FF807E610570 + A3EC26D6FC6E32921362FC0360B793194B0BB8B9803B80947D548AD983904721 + 4A6C615FDB8636656424E4627628B37A0EBFB477F648D41201B1D50491C536AD + D65A5DE71306FB7FE5589C008C4404B149079DC5F6597780926B25D8B53A93BB + ABD4EF536274288C4B7EDC75222495B28F1190B2AF53926310DB4DC9D502293B + 5FA01012A9BC2D41765152D9C0C062BFB3C36C3278EC8B9F4A474729B9D51CFD + ACC9CBECBA56ADB3D7002B5B03CCF6A42D2C8EC901603018A0A9B94B2741FE9F + 12A3F141C151D26C95233636C62B408FEE91488C8FB695BECC5622749D106800 + 03DB74D42D4C87004C6B0B945606CBE68E0B0C40FE8153A4B44E8FA4C7E2BD02 + 24C42891D83D9AEB0BDC0174062B4456E3FF04C0873B0063B440A3357408A056 + 35E1A94405E64EF97960008E175D2707CFDC42CA138F7B05886527493D13A220 + 63DFEB0C004D4C6471457007F056FD198681464F3A04B85F7D1FE346F4C38451 + 698101B8545A45F20F9DE796C5DE0022E94D9AEC62245226E6E6F82289023271 + DBFF131AED9D5A67009CC368657F8FED64954A2557FDF50623570B3A02A8AAA8 + C2FCC9C330E4A9DE8101A869D090259BBF023D3FE80CF0FC4F7A729D1E5FDAFC + AA502A91B82C76F8618F5F2AF307EA1C26BEA7771B2EAF57A9B86AAF90CBA0D3 + E9D81141D421C0EDB232E4664DE086C08000184C5692B97207860CFDA9200034 + 2882D562EE1880AD5ED7AF5E4541CE1CC74DD401B934B620773749EA938268A5 + CC6F00F7E4BD01F0DFA16777F8932AFC10F82000BDDE80DACA3BC85BD2762A3C + 2000395BBF24E247128206A077EBF5F8EFD0739266A3C103A13D80A6662D248C + 1A395993020BB065DF77A4BAD98AC7E2A23D0022D8490F4D5826B240423B4616 + 807688DE92F706E03E5576FEDE7DB59E9D3DB209B2432735E0E702ED01B0FD15 + FAC58B313FE3854E01FC17DD8609F9F849597C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_25_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000090A4944415478DAEDDB0B7014 + F51D07F0EF5DEEB509E44534094830418801AA459081524711B408122A63A808 + 14E2081598D61A0B8C3C9B5270A48280848730055B1E4A285834C20011B540A4 + 3C0C3810C2232421904492BB5C92BBBDBDC7FEFBFF6F7277B9E4F2E8DDE52E37 + F29BB9B9BDDDCDEDFE3EFBDFFFEB363242085A0B994CD6EAB6DF2CF8886C5E9E + 8E0ABD05818ECC75BBF0E9EAD9AD9E6C9B397A03F0E1D27454D5FD8401362C49 + 4775FD7D8040E71F38800F16CD408DD116E8FC030710E8C49B86DF018229EE03 + DC07B80FE07B808CAD27FC5209A6243C80D7C70E64E7E2F1D5E8348035B39FE9 + 7480ED5FE60372A55708410DB02BB700268B282D7B8A10D400074E17C1C80B5E + 210435C09173C5309A45078260B160D60B8F43AD947718A15301CCD6CEAD0BCF + 5E2B479DD1EC154250035C2EB907A3606D81C0DEDF9830B843087E01C8C83AEC + F3E4D7CE7B01655575D01B4C2D102C4486BA3A6387103A05E0EDCDC7C9FB6F8C + 964EA83343CF5BC1F3A65611AA6B79CC193708DD38957F0743FE0220A20DB502 + 691B41A7C7FCC9C3FD0BF066D631B26EEE1807C082CD477C9EFCEA396371B9B8 + 0A9F9FB901036F6E753F9BD58AF5F39EF32FC0BC753964E39BE33ABD04B060B7 + 414EDE751494DE73BB5DE08DC8FAE3F8C000E88CD64E07B04771B91639678A60 + B6B9A26BB535810758BAEDA8DF20144A15FAF58E717C2E28BAEB7F80B96B0E91 + AC8C097E2D014DE3475D3DED2368A58A30EFE20D6C7A3BF5A705C08275882AB4 + F5D87EF054E001FC790BB05831EB79C7F2922D87030F10C80808C0ECF70E90AD + 0B5E42B9BEF5F6D95FF1E7AD39F868E1A4C002ACDC79DCAF492F9E3926B000AF + AFDA47B6BD93D6254AC0B24DFFC6F64593FD0F9035FF65541B02FFDB60970008 + E42D101080F4BFEC265BDE99D2254AC0E20DFBB163D9D4CE0728ABD4916F2FDC + C4B9CBB768F3670603E80A7540E6A67FA1BB3A04C3063D8C114FA4A06F7C84CB + 897B0D70ADA492EC3B7A1EC5F7EAD1A74F6F4475D7E07CFE151780BFEDCAF56B + D2F3A78D7601783575142AAA6A9077A100B1E12AA43D3F140392E2655E03ECCA + F98E7C7DB114C9C98F4025230851C8A56D67CEFD802D8BA7E25E17784466E986 + 7D484F73F60C5917F9F857A7F0444A6F4C1B3F5CE631C0A16F2E91AF7FB8839E + 3DE31CEB38A5AC4B02FC76D2188484C85DD67F975F8881BD2391FAF463ADD60F + 6D02BCB6620F193030A5C57A86600728AF69B8053ED8FB955F937E6BCAB38EE5 + CCAC6CB7002CFE7930177F5FFAAA6F01587C7F3E1FDB96CF7000043296ADDF8B + 692F8F8592E6DF1CE1E34F0F63E78A999E012CFAF033327EF430E45DAD0C1A00 + 167684484E86EC2F4F63D5EF7FED19C0FADDB964C2E827C1711AE45D2E435185 + DE0560E3E2E98E0725B3F69DF06BD2F3268F722CFF75E32712000B86C0290992 + 7AC54833C99F1DFB2F32A68FF10C60FFF10BA4B49AC794B14F2254091869AE57 + 6FEB70A7528B2F8E9E44577A52F477D3531119A6445C7437C7B9EE3D7216F111 + 1A7AFE433C033879B184ECA5ED7F62DF448C7EBC1792E223A5F50AB90C75065E + 2A19EC40ECD7217FCC0E370D55880C0AFA52291A726349DBA3A8BC06B917EFE0 + D6CD5B481B3508CF0CEDEF19C0F5D21FC9BB1F1F4752DF24E933EB002527C422 + 29360C3DC235E054CEA35A4502DE24404F45D834B59617A1AB1350536F8249A0 + EF06FAAAE31DFBD7D4195D8E15D93DB4C932074EA34644A81AA12A99F4398ABE + 22C234127A04A7902E82FDB816AB15D5B52614551A50585A498F6B92668ECB8A + 8B6987E959A424C67906A0379AC9DC95BB91D2D81268E849D93B436AAB01A346 + 0E41A85A2EE9330CFBD5F036DAFBC195252D5845D4F236686B0DC83D779DD67C + 2A691B5B4FAC1609E0E6D5426C58F80ABD589C6700AC273863C90E92D0BF3F2D + 72721700C168C0AF460CA007228EE2A8D170128286D644EAC61EA3A2C9EF966C + 9B3DB9E6584D93B627C8C262036CA2E8B8CD780BA1CBA274D5AD8DFB9CCABF26 + 9D9B3B803DAB5EF3BC27C80032DECF265C8F3868548A36010A4B2A41C723F442 + 68A4E494749DC5D6F2BBED895A9B6C3337DBCFFE34883D041BC5129D95ADCD6A + 437252AF36014C662BF8EA0AACFD539A77006BFE718CDCE11588EAA669B70428 + 941AE99660A1513A3B24F6ABE8F66A37266F7683C5AEB62B9EF33BDA2B013A5A + F7C4AA042C4C1FEB1D001B0C9D2FD2223A3AAA05C0A8610D75435704D06A7578 + 2C2102E913477A0770E26C21C9FEB610F1710F04154079C53DBCF48B47F0DC88 + 01DE015C292A276B3FF98F340F104C002525B791F1CA53D29C805700557A2379 + 6BCD7EF44FEE175400D70AAF63F51F26223E26C23B00BA9D4C5DBC43EA0B0413 + 40C1E502EC5E992E3D53E8F594186B0AA3E21F0A1A0081F63CF5E5B75927C8FB + 293116EFED38426A45352223235C0094F49D93D3935087214C6EA39F1BF6E742 + 43A196D3CE8CD8B203C6DAE71689DA4220A7EDBCCCD6D0D61BC41097ED42E37F + E5D89A0098890C728B11465BC3BE4D01F8FA3A70228F25B3C6F90660DB8193E4 + 6AA509710F463BBBC24A257D0F81927E8E89E010DB235C2A099CAAE184589F9D + 8551102113CD28A9E2616B7CB2C36A115A1CCB3E980A0FE39C57B9D9F88A37DB + A037088D2540A425C0DA98B48DE2581C003A6D0D1E8DD560D6A45FFA06E058DE + 1572F0F40D243EFC905B8048DA49EA151306155DD711009698CCE68AD01CC0E2 + 6670C9F33CF426D22EC0DDB2BB1837BC1F5E1C99E21B80EFAF96926D87CE4AC3 + 627700A19C1A89B1DD5A00B07B9DDDE3FF2F80BBE405FA5D26C12C9582F6004A + 8B4B3167E2500C7E34C13700E5557AB268D31760F3836E01E89035B167B404C0 + 2A43251D3831003623638F726D3DADD4645E01188DC68671413B00370B0BB16A + EE8B5213E81300C12292F4E53B3178C8CF5B0560C3D150955C1A08C914744024 + 77FE3FA1B9B152EB4809681A66917E1FAD64E5B47511692B623299DA07A05F7E + E5D225ECC89CE97884D6273F8DCD5BB587C4F5494438A772003CF5B35E8EABCD + 82CD0BB0E1AF52A17019EE3A4680A2F35882D535618BBDA66FD65C5E29D54A15 + 1F83B0DFFF6D01984C022A4A6E216B91732ADC2700995B3E27F2EE31010160C1 + 10ECF77F5B0035B50628781D32E7A6FA166073F637A4AC56C48351E15E03344F + DE1D80FD6FD8FC9E7D7EA042E79C466B0D80D657E8172DC79CB4A73B04F03F62 + 060DF97A98D5850000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_26_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008C64944415478DAED9B7B7014 + 5516877FF39E4E425EA0494082090206585D042958D6524C74631010565C515C + 88059440ADAE718132806C8A2296AC20C40D0F432DA83C56407071114A083E56 + 082C0F13DCBC788424042631C92493641E3D333D77FBF6645E2493A466263399 + 32E79FE9EEDBD5F79EEF9E73EEB9A77B448410B8139148E4B6ED0F2B3E22DBD6 + A6A3566342A0256BF31E7CB661B1DBC176A9633F807E009E03F8704D3A1A5A7F + C1007256A7A3B1AD1F40A0F50F1C800F32E7A359C7055AFFC00108B4E2CEE277 + 00C124FD00FA01F403F03D808C1DDFF8250826C5DF8385A963E8583C9E8D5E03 + B071F113BD0E60E757858058E61584A006B027BF1406934538F614425003387C + B6023A3DEB1584A00670E2622574468B1D026B3261D1330F432113F71842AF02 + 309A7B37165EB8AA42ABCEE81584A006505C550F1D6BEE0081FEBE367D5C8F20 + F8054046EE719F2BBF69D933A8696885466BE800C14444686DD5F50842AF0078 + 6BDB29F2FE6BC9C2807A53347A33F47A835B088D2D7A2C491B8B3046EEDFCD90 + BF00100B871696740DA14983E52F4CF22F8037724F92CD4B53EC00566C3BE173 + E5372C4945716503BE3C7F1D5ABDD1ED7D9CD98C2DCB9EF22F80659B8F91BFBF + 91D6EB164085BAC1B1826B28ADAEEFB49DD5EB90FBE7698101D0A433F73A009B + 54AAD43876BE0246CE15BA5ADD1C78006BF2BEF61B08A94C8E114307D9CF4B2B + EEF81FC0D28D47496EC674BF5A80B3FCDCD4C6E7086A211016145DC7D6B766FC + B20050A10951ADBA0D3B8F9C093C007FBA0095758B9EB61FAFDE7E3CF0000229 + 0101B0F8BDC364C78A595069DCAFCFFE92BFEE38868F56CE0E2C80F5BB4FF955 + E9550B52020B6061F60192F7F69C3E6101EF6CFD177666BEE07F00B9CB9F47A3 + 36F0EF06FD06A0A6AE897C7FF9062E16DF448B91C01940205D80020891583071 + ECFD98FC481286C745B80CDC6B0057ABEAC881AF2FA1B2BE0DC3860D45D40025 + 2E159660FBDB73FB8405ACCA398497664C456D43330A2E9722265C8E394F4FC0 + E8C43891D700F61C3B47BE2DAAC6A8510F402E229048C5429B0D405F8801595B + 3FC72BB392EDE734413A75FA0C1E491A8A79D326893C0670F4BB2BE4DB9F6E63 + F0E058FB354626EA14C0DFF6E4FB55E9E5F31C0A5300D4022412B1CB3DE70ACB + 31666824663CFE90DBF8D0258057D7ED23A3C72475B84E219CBFF813B6AF7A19 + F57DE01399353907F0C7D9291D0050F9F4483EFEB1E625DF02A072A5E87F7D0A + C0DCE75220E3F5BF1BC2C79F1DC7EE750B3C0390F9E117645AF2441494D5B905 + A06AB6BAC007FB4FFB55E937E73E693FCECA3D680740C506219211E1E0576791 + FDA7E73C03B0656F3E999EFC2818468982E21A54D46AEC6D3F5E2A44DEDAF976 + 00819477B6ECC7BCE75385630A819111240E1924D411BF38F95F64BC92E21980 + 43A72E93EA463DE6A63E8A1019A0E3ADBDEC56136ED7A971FCF4B93E0560E1DC + 344486CA101B1D661FEBFE13171017A1E4C73FDE33003F145591FDFCFA9F303C + 01C90F0F41625CA4705D2A1609955A5B47F4DD40CEE705426DCE1FA26042F0FA + EF270BC772A955373A169B54A89A915F741B376FDCC49CA963F1C484919E01B8 + 56FD3379F7E353481C9E289CD30468547C0C12634231305C0946EEE8950E8482 + 305BACCF63CDD6BA9DEDA5A6D0C639FA3272AEFDCA258E314A9D8E6D0A4A79BF + A62988422A1626C026B43F93D98CC616032AEAB428AFAE4353AB41A81BD65456 + F2CBE593484A88F50C804667244BD7EF4552FB4AA0542AECC990C2ACC5D429E3 + 11A2100BF4290CDB60BD95EE5EB751A529E0163D07758B16F917AFF1914F6E07 + 4FCC2601C08DB272E4AC7C919F2CC6330034139CBF7A17891F39929F21B10B00 + 56A7C5EF268F166692CE5E79551D22073050F02022C3181E884478060DA0C24C + 8A3848A512FBB36552A94B5F74166D42DD4AC75A20B218A13772421FCD7CCACD + 1AF4506BCD421D7054E21098DBADEC4CE155616C9D01D897FDAAE799200590F1 + FE41C20C8C85522EED1200355BA94C295884602D32C77A6CE200CEE228653BCF + B0CD2DEE76092A7A93EB35A3D9F10C0AAC2B0006A319FAC65A6CFACB1CEF006C + FCE424B9AD97222A4C1954009ADA0C8891B358999EEA1D00BA19BA54A1467474 + 54B72EA0905057540AB140C65F3375A2944DF9AE02A22D70DA84E57817B63832 + 4ECECC75EB026A75131E8A8F40FACC29DE01F8E6423939F87D39E262EF092A0B + 50D5D663D66F1EC05393477B07A0A4424536FDF33F421DE06E0053275A5787BE + 08A0AAEA16325E7C4CA8097805A041A3236F6E3C8491A346041580ABE5D7B0E1 + F599881B14E11D00BE9DBCBC6A97900B041380D2E252EC5D9F2E7C51E675498C + 2E855171F7050D009665A151DDA24990F725312AEFED3A415A2C0A4446460405 + 007D5B2B188B1EAB17A5F90640DEE11F48599D01B1F7460705802675331E8C51 + 62D1ECDFFA06C0C9821272E4EC7524DC7F9F0B0019FFCB88F9412842112AE6F8 + 73EBFD4C480814623E5FB7744CC16986D641514E0231BFCE8B38EB5AAFB5485C + DAD9F67FE5704E008C4404B149071D67BDD719C09D9A3B489B3402CF4E49F20D + 801FCBAA49DED10BC2B6D8BE1992C9F85F0964FC7908A340424C18E4FC35E73D + 806D074873FAAA063DB8F62F3B689E23E25897BE6C9FDA8487323075F2D50DCB + 3FCBC05AF706560BB0F016606E6FE37838263B80EACA6A2C993901E31E8CF70D + 00558386646EFD37687DB0530072111206470B00A82BC8F88D1305402B323651 + A9DB789316790540A7D359B3C26E00DC282F47F6D2678525D02700589385A4AF + DD8D71E37FED1640CCC0706117680370B7F41400C3309D2A6FE16388C160E81E + 00FFF0922B57B02B6B81FD034A9FBC1A5B96BD8FC40E4B403823EF1280A0845C + D2E159DE0010CC9E334263708CD51D008381456DD54DE4663A4AE13E0190B5FD + 4B221E30C82D005A9008918B858D9048CA6F88C48EFF131ADB835A4F6280B318 + 2D564B92CBA43D06D0DCA28554DF84ACA5337C0B60DBC1EF484D8B05F74685DB + 013CF6AB21767FA7422B43B45C458B1DCED521FB0ED0E2E88B35BB2A6CB245FA + BB96CB926A35345AD66109DD00E0E31546448BB164CEE33D02F07F15B8EFEA90 + C7F4440000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_01_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000088B4944415478DAED9B0F5093 + E71DC7BFF99F404A08A891488F00C50AB31604366DB7DBECE61FFCB39E4E85C9 + 6CBBAA9CF3DFDAD3FED9EDB6E376F3DCEDCED6DD6E73DED4693D56D02247A983 + 4E452DD3E2AC323A015109686902520860C8FFE4DDFBBC90143042DEBC090937 + BE775CC2CB9B27EFE793DFF33CEFFB3E81475114FE9FC39B123025E0510194CB + 465D3E910743FB75568D29E333F1FCC662F0F8625EA8C13809683CBF97124B2D + 786AE12E568DDDB9BC1F4E672CE67CEF8DC92BA04FFF3955FB7E2EB2D7E64124 + 913EE6652EAF5BED1613AE957E80053F2E81226EDEA49030420029FD4B7FCD41 + C2B31A4C4B7CCAF746E0F03CEF6A6DC3BDFA367C774BE5A4E80A230490D27FF8 + E01CD25E58E215CED7345457D315B07C5274058F004FE9FF682DC45231A7466D + 16DBA4E90A1E01170F7D9F22A53F3D511390864957B879FEDC84C29059E8DB2F + 9F6625DC23A0626F02B568F366EE4741D926147A782E1C790FAB7E792FC80242 + 08187C019B5E0A35C394007FC2A32CCC63F5D193DC047C67DDF250B37889CBE7 + 3D6B4E557113106AD44084938055BFF82CD4C7CF2915FBB2B80958F9D62518BB + 4B46EDE27B097A1AF5E3EC3110B970F8702004BC1F3640E366D494CC791658F1 + E6C730F59C0A1B20B6093F01137CD2C45DC09E72987A2BC2062834020CA5A1E6 + 0894000236AE8C110296EF2E81B9F74C48211EDA4CA8EB6C47DD5746581C5618 + AD03CCF669321912144ACC8D8D454AB4C2EB6BDD6782BAFE762ABF7835E46239 + 2A5EB930A6849009709FBE92D85D144AEEB6E3C33BF5B8D5DB05B14C0CB15C00 + BE5000A194CFECE3B0B860B7386033DA11052196262460635A1A9E7C42394240 + E6CECBC82D5A09B92A02B76E37A3F5ED6EDF05E4BC7E1C96FEF39C81D8A4B8B9 + 1107EBFF83012105F94C29A40A09F87CEFC72CE68B21E00BE1743930A0B3A3AB + E32B2C9E158F37B21760862C02E5474B7030268681D72427A0AAF29FFE0BF017 + C8D73C309BB0A3BA1A5A6B1F941A394432E198FBBBE1450211F3BB4420631E75 + DA4E183A7AB067FE7CFCA9F62AA6CD4946726212040201CE7C54C952C06B8760 + F5B302D8E4B34E1DB6D2F0529504517111E3EEFF387821BD4DC817C1FCD082C6 + C626A8E3D4989D9CC2C09384A50037BC3C41C694BBA5CF4A8F3B36A66F3BED4E + 661F3E9FEEFB1201A4D16246904C18E18117F2448C0C373C894C28F3B42F114A + 87244971BABC8CA5805DEFC26AFC9433240F66AFDBEFD39FD44F2A2BC18B9730 + 835ABFDE88852A15163DA941C6F468C448BF06B9D1D58B9A2FB4A8FA420F9922 + 02EA2415441221034F221D82F6063F28491038018F0362139B8B870D67FE017D + A41316FA137F265281C205F3A15128C77C5D9FD58CC3376FE1EFB7B5503F3D13 + CA58A5079E548168A80A46C393EA385976929D80653BF7C13E708533ACB71C6B + 68C281869BA0E82A2F484DC2F6F44C56AFAFEFD263E7855AA8523450CE881E13 + 9E442C90A0F87471F80878BEB814FD4E3B76A73F8B57BE91EA571B6D7D06E457 + 5623293D0D314AE5D7D0F4A0371A9E3C2FFAA088A5801DBF86DD54171401FBAF + 0FB6BB3B3363D89BB3EB5ABD5613F2AB6AC153C5222949E3812721831E2384AE + 0A32600A7842BC77EA383B014BB7BD490F4E4D7E43B20562934E133D8056FD0B + 12F5F471E1DDDB8E961CE1262098406CE137545E846C561C03EF1EE4C6822761 + 2D60C9D65D70591B43CD3B22AD74BFDF7CEE2A94C91AA8D5718380C3E6FAD1F0 + A4F485435325FB0AD85A00A7551B6A66FAA0ACCCA3D9E9C4E2B24F98917F34FC + F0E9CE1B7C58097003B10D11B0A2FC13E807FCBB2E993F2B1BA51BAB7C174056 + 86042E5DD080829DB3C76AB8DD117AE1D5F5B4007DA839A6043C1ABB8F026AB9 + 09786EE93CC03510F0C3DFF2DF7BA8A32F6EFC495CA414A5D929F425317FDC7D + AF9C6DE126809C09F22853C005A4FCA510AFE66EF2FCEE7039E0A406175BECF4 + E9B1C3455F0ABB9C7050839FB4D53138E8E9747AE85B3B70696D01649231EE1B + 0CB555F9E703E1590159D5F51E01DEE01968A7E511F89EC63BF84366129223C7 + BF6942C2B90272B6EF09383CC9F00A70837A8377578256DB06ABAE0BC7566EA4 + 2F97637D7E1FEE15B038392802DC153016BCD339D80508BCF94B3D8E67242246 + C4EE0B6657CEDDE75801DB5E0B8A809443BFC54BEB5E664A7F3C78AAB31B277E + B809AA8848D6EFE3AE80BDD5BFA294B2186C5BF8BAEF0B231FBF934AD9CC811F + 004976098CC85F9BCF94B7CD397812E51EF4DCF0243D06039AAED563B7230233 + 28F65F2F14CB22D0B2B000FB2FEF8542A6C08DED2DBE0B0866127F174BE5ADC9 + 7B049EC43DE8D95D766680343CE86546FE23AB4B90A1CE6265E19D9A7DD4C16B + 07C0A3AF92DF7AAE109BB27F163E02D6AF5EFFD8E9CE0D4F62719861E83640D7 + DC819F666E43C1B776205AAA1C13E46E77335578F66D5CEFBECADC498EB72792 + 2531862F6C04AC7971B5577812B3C3EC8127212B3F76AB8359F4B0F53B90337B + 157E90B20CCFCC4C67AEFC440231F4FD3ADCF8F2DFA86CFE109FB6D7202A4ECE + 2CA3393B7838BDE12C34CA249FAA6742058C9EEB87C33B86AA80C0BB259101D3 + EC30A15F6F62EE243BAC4EB85C836B0702910062B90832FA13F7AC2FDC77E244 + 6E29ABAE33610256ACCC619E9341EF76CB1DE8F43AA4A5A542F684D403CFC871 + 9A3DF04486CD35FE771288205EAFC0AF7163420510F896562DCC7A2BB62EF839 + F65D2C44944ACE2C7AF8036F37D383669B116951F3F0C7170F431D15CF7AEA98 + 3001CB7296A0ADE51E8C9D2694E47FC41C2C59C7FFFDC5DFE0CCDD724C9F390D + 916A9167F5F771F02E17C594BBB1C3020562B0E59BDBC968CFB0F8736C132660 + CEECA747C00FFF7B9B414B15D5FD0D154D65E87174317D5B24158EF86E80CB41 + 9F4318E91FB30DE9AA2CAC999B8B75F3369035004EFF8F302102561D5B44196D + 4614E5958D57A654D3830634747E0E6DCF5D74193B998DD13225C8995DEA8CB9 + C8989535EEB4187602DC70F0B34C8399A97F9C9C123025604A40A88F21A4F91F + 5F1E72CC49EBF35D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_02_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000A1C4944415478DAED9A095454 + D71DC6BFD9671086195076449028AB28C6D62584A811F7DA544D4C5D9A13434F + 121B6BD5634CB439B6D193D866696A9A346A3DC6A44789626D5D114589018326 + EE03A26C2230C8360BCBBC6196D777DF64C6410718989121277CE770E6CDE5DE + 77DFF7BBFFFFBDF7BD371C9AA6F153166700C000000B000E87632B349BF474DE + 178BA0AAFABE472793878DC5A4A5FBC0E589383D6AD8477234D80E01284E6DA6 + 85620AD11356F6A883DB79EFC364F247ECE4753F5E00EA9AABF4B77B9FC3B805 + 8B2010893B3995D961A9816AC3C5CC0318FF7C06642149FD0E42B70048E8E7EE + 988988A461181C19EDF4893930DA8EEBCB2B70E76A0552D38FF7BB54E8160009 + FDE6BA53889B92E6D09CB352E4E4C0377856BF4B852E016894D72CA13F7F0184 + 62A14B1DB553EDFD3215BA0470F6B3A93409FD2191C3DCD21949851BA74FF5A9 + 41B20AA5BCF09F4E817709E0F096087AF24B2FB97E15747B9F9AB6D7997FEDC1 + 2F36563E62001E34F8E8012C5FE6690F03007A230E4DB19F39BBBE720D40CAC2 + 599EF6E24066A76B9EDB7FC235009EB6EA0EB90460EE1BDF79FAFA5DD2E1771E + 770DC09CD773D1D298F14015E743D076D25EEC1EDDA1333B77BA03C0DE7E63A8 + 5B3DB024BBBC0ACC5E9785B6A6FDFDC6504FD5FF00F4F1A6C975006BFF8B36F5 + E17E63C8330054999EF6E13900B3D66440A73EEA511346930E379B545034D6A2 + B65577FF1F5C09227CC448F0F7C763325F876D5DDE09F62500EBF6D5AADCAA4A + 1C2C29419EB2061071C013732110F33BD4315046E83506040AC5480D0BC5C291 + 091D60B80C60E61F3E07A53DED1643CE8A187FEFBB0B509AF5F00E1243EC2B02 + 97DBF5331453BB19AD8D145AEEE9302D340C2BC78C41B88FBC530097AA2FD2F1 + 8189103A7844D72980DE1A72562D060A1BF2F291ABAC822C6210BCE462A7DB0A + B942F0B896E8D056E9A0AA6DC2DAE46404E4DDE80040A56BA2571F7E05E7EE9E + C1A28465783BEDAFDD0058F519F4BD8C809EA84ED786E559C7502734401EE103 + 4AA3879132B3216E15097FD1200144524107E344C4BC806729E7730430E88D28 + 2DACC028AD095FACAB84882FE6E4949CA4D71D7B0DD2506FB6DE14D94C6C98F2 + B6E701D4B7A9B0E478365AE51CD6B04E4561ECE021181F1C8C202F09C4020928 + 830EA51A35CED7D4A258AB8134D81B834365B651B7376F2D232A53DCC1D4A099 + EC390EDCFE3712E312E1EFE787AB8A6B787DF49F302F6E413700567E087DCB79 + 974D72A07358DE6CE0E0F9A347D87C6FD7B56351F408A427C621C0ABF3F0AFD0 + A8F0F1D59BC8AEAEC2D09121F09259EA8A78125B1D31FFFE712153572C11233E + 2E9644025B969B7B0E5F2D3C86D880F8DE01E8CC504F75A8A41C7F2C28805C20 + C2F6A79F428C9FDCE9B667ABEAB1E6DCD708191904B9BFA51D9F197D3EF77E8A + 48EC4058CD13659DCC86E2F795DD4F82335E7B0786D67CB79875248D5E87BDC5 + E5F855745497A3DE99C8FE6071560EA262A2E0337890CD3C0121E0DAA5058F67 + 3BD66AB4A82AAC45767A3EA7DB65F0510370551C5A87F3B56AAC389B8FE40963 + C011703A8CFA83E6795C1E944A25025A42F1D1BC1D4E00F8DD5B30B45DEE5343 + BDD19B79975160D0B3796E957DC88B7896631221D7145731377821564C5CDD3D + 80E9AFAE6396A3A23E37D4139D57D66263FE15880607213A36B28379EBA85BCD + 73395CE4E6E562CB931F624A745ACF01F48521674519DBF0E782629CA8AB451C + 33F27E72396B966F9FFB76E6AD4B6566D6019C5E7A01A1BEE1DD03487B7925CC + FA424F7B7D48D65187BF0C2362A2D909CF51BE3F68DE6436E130B3EC2A565B76 + 87DD47C0CBBF85495FE669BFCC45E96DC7BB0ACBB1ED7A19468C1A810066C364 + 33FC83796BBE1331CB9C0D042957D62B71AFB81E079765791680BDA19E6AF3C5 + 226496D5C0C7570A1FB90F7C25BE90F9CAE025957498EC48BE13F33C0E9F5D16 + 898ACA1508D545E2BD39FF700E007933C433D7B8DD101945A2183F1962FDA490 + 0B793D6A5FA66D43515333F3D9C2EC05B42853A95149E95918BECC39E532190B + 65887F00BC853EB676F997BFC192C8742C497ED13900535E7C9601A0ECF56839 + D2957A15D299BBB4B0E05068984D894AD508317339B1CC0846313B3A0264B8D4 + 0B23994F09CF79303A9309C50C8C52160E03A551852B8D5AD07C01E4727FF832 + 1153A5ACC69E6732911C3ACE7300324BABB15BA9C3933F7BD256D6D2DE8CFAC6 + 3AA8991B1E955A0D4D13F3A7D360A8588428B98C891429E2FD066198548A2806 + 0E6070AAAFECDDDF62FCAA0B2869B885C2BA1B6CD9F271AF905FBF380760E2F4 + 5180B9D5AD00DE2DBE8BEAD011888D8C67BF1BCD469868233B439B6933F3DD62 + 4E6FA2D0A6D5B150088C6655339A99889933C41BEB47863BD5577E76A96B4F84 + C84E9043B7B915C0E2FFED827F4C02828704B3268988F976D3FD79C456CE84B5 + 91B600A96BA8C7AD6BB7B06A6C2A96274DEABA13DAF21CE1F8277F730DC0A388 + 8094B3D730EF97CFD9962783C9601B7502C26AD86ADEC0FCEFD6CD12D035F558 + 1F1F8E27FC7D9DEECBE50898B962AD5BCDDF6BD5E0E9439F60FEF4055D9A2765 + E47B934A85C2C222CC0A89C1A689D32011F6EC8ED1F5089836DCAD00BE69D460 + 6BAD1EA993523BE4BBBD79BDD112FE2545E550D7D660534C089EF0F3EA557FF9 + A72A5D8C805757B915C0A797F3704C5D8351F1491D263BABACE68914CCC84F90 + 0462EB53737BDD9F4B1190F5412CDDAE73EF04F82597023D7E34C283C21DE6BB + 553AA30EB481C6A5F397B18CE22281E6F7AA3FA1C40B33D6DCEC1D00FB1F4BBB + 4BD3764CA4C3E282206536258ECC93098F2C8B4424429A1B5A71A7B80AFB171F + 435C60428F2FA85A73973EA4D88FDF8C4D87B7C8E7A1F67D0A80096F3AE9A361 + 989A36D5BECC764C46DD2AA31D0815B3A3535568F1FE8C7FB2F7F0CEF65778EF + 06BD2C633E9AF40DD83A7D1B168EFAB56701DC6EB8493FB32F0DA9A92936F324 + CF291D85B8A4185B3DCA0E84DE64396E5353A82CAEC1ECE8795895B21E917EC3 + 3BBDB8BA965A7A7BC1C7D87D653BF8221E8204A138F2C219CF4700138AF4D682 + 4D484A4E44635313AE175EC782C716A399D2E0EBFAD3888A8FB0D53531A36F4B + 0B93C156D650AD8656D982D1818FE3E7432721CA2F1A3E221F061A85D2C6DBB8 + 547D010535F910F90AD81729DE5A1932161F611F7E38BAA63E05B0F9F4463A47 + 7D9C3DD656B7E02FB3B6B1214D5263C3893538527110C3E3864120E277306FFA + 2115DACDF77F8BA0D71AA06F353CF4E6882FE6B2EF1255779A11424760F7B319 + 9D9AEF73001BB3D6D2FB6EEC414AF8647C30F753C8257E1D3AF8F2D22E7AF399 + 37210FF28334CCF2649798B737DE9DDA5414D4775A9116359B01FC778761EF31 + 0064A415F7AEDB6E451D89CCDA5B72DEC2C9B2A3F00E946090BF183C21B7CBF3 + 9ACD34FB2EB1A59642B828126F4CDEE4F464D9E7CBA0B32213E6E7DFEF44F6ED + E368D4D7DB72DA5E24FC4D9499214B6342782A96262FC7E4E1D36CB7BA3F6A00 + 0FC22091C3440779BDCD96097842844AC398BD4122C87B7EF2F6B737E7EE12C0 + 4F55030006000C001800E0E96BF0A8FE0F732A4DDBBEC3D5A30000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_03_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000A154944415478DAED9A797013 + D71DC7BFB2ACCB36B6E55B3EB0241B62E38EB9020527843104038626942BD042 + 200D6908D79098C2644A329D0E99B453483B9D40CB840628A484721462309731 + 4782B9C18065647C483E65F992656CDDD276776DC9972C1F129632F1F71FAD56 + BBEFEDF7F37EEFBDDF7B2B064110F8298B310C6018401B000683613B6931EB89 + 1B87964155797F4085F1A327E29595DFC28BC9610CE8C62156E746B70B4092BD + 83607375889FBA69400517DDD805B3391889A95B7FBC009AAA1F11B78EBC8549 + 8B9781C5E1F65284C5EE59A34E83BB278E63CAF2A3088C1CEBB1107A054085FE + B5AFE62276AC1021A2F87E17C880C9765C2793A3EC911CD3DF3BE7B15DA15700 + 54E83FAFCDC698196976CDF557929C1C0408D23DB62BD805A0563C6E0BFD458B + C1E6B29DAAC0A033787457B00BE0EADE990415FAA122A14B2AA1BA42FEE5EC21 + 3546CD42D356FFAF4FE07601647E164BA4AE59E3FC5310862135DD5957FEF56F + BCB1BDFC050370A3C1170FE0DDB7DDED6118C060C42074F467CED7FF750EC0B4 + 25E9EEF66247967E5FF9FDB1F3CE0170B75557C82900BFF8F89EBB9FDF29657E + FEB27300E66FBB869686A3DD2EEF7F08DA0A1D44F6E80A5DD9B7CF15008E788C + A13ED56D4A767A1698B7F502348DC73CC6D040E57900863869721EC096D3D034 + 657A8C21F700509D70B70FF70148CF380A6DD35977FB40E5F34614342851DDD2 + 4A7F3798F508E0F020F0F543627008C2783E76EF733A131C4A00D6F4D5AAA226 + 358E15E6E34A4519947A3DD83C36985C2F30590C78319930EA4C30EB2C30680D + 88F51D8199234558344A8C98117CD70198FBE141E89A2FBBC4507F4519DF79EF + 1E6E2ACBE12FF0032F900D16CFDBE13D46AD09ADF55AB4D469313B26169BC68F + A741B814C0600DF557460B81AFF31F60F793C7B471DF602EF4AD1D832C8BEB0D + 2687092F2FC77E9A151AE8947AAC4F1E87D8DB054E02D8BC17FA4146C080CC3F + 6FC186DBD771A7B11E6C3F16B42A1DF82C0E128202E1CFE6C240269FCD7A0DEE + D7D7D15DC12F820B1F7ECF1D6AB657C7D65DA5A416C9CD661CDA5A0E8E37D721 + 04B703382879805D798F48032C2C14537D59449AE7F7B8CE606120A742816FA5 + 12E4A91B11121F40770FAB71A6575B57613159F46795B416E3FC27E19F0B0FDA + 85A037E908369343FBB60F60D35FA16FB9E9B44106B40E7FAFD5E8F0D593825E + 8DDBD3B9D2426CBF9D8F00B11F028302BA18F766B06C304A2565981931173BE7 + EFB69994359610BB73BFC0A9C26358F0D212FC65DE970303D097A1A1925CADC2 + DB17AE823B3200FCB0801EE6AD92DC97E24FA97FC7E890447C99BB0B174BCF62 + A43086FE6D02674AEF00E66CFC1CC6D65C77FBEC13C2A2AC1CC48D1781CBEB18 + 17B8DE3CDBB1CEA48524F7297D2C148A102D8EA4BA0472AFDDC4EEF907303576 + DA8F130083688BC4FD0572EC2B93439C140B6FB2F5BDBD58B66B78ED201A552A + 04F1F96D1142E6119A662D9EDC97E0EE46295D947D001B3E8551F370C80D0D46 + F34EE7C0274180C0F6448802C1EA04C26ADCAA9267A578357026B6CFDCC1E875 + 1698BD6E2B4CBAA76E313450ED974871B8AE09A313E21D1A6F1B2398C8CAC942 + E6B22B181592D07F004369A8BF529233C821A91C278B4AC10B0F42D29844FA3C + 65D2BB3B08AF36102AB23B5416D4E0D27BB974E8F70A206DED2658F4052E7F68 + 2399D898C97AB8CCC1BF26943636E280A408595575088D088148140B9FF64511 + 35C0D9334E7F27A1DC7970072BE2D760CDE4758E01CC5EFB5B98F5A52E0740F5 + 57855687D4A8482C8E8FC0544184C3EB1984DE76AC32989191731B0FD55A440A + A32018196E1BE8BA873B87D9090469DC8BE1050B61C177674FE1FAFB7908F38B + 187A00371535D8724B8AD9B3E6A0A4B404F22A192C2D2D78532CC07C510C12F9 + BE0EEFCFAB53E1D7D9B721140B112108A35BBDB77EDED9B8F57B5555158C0A0B + BE597ECA167E0EDF0C312DD57D9AEADC427D69DB0F79A80B8D45A228A9A355C9 + B9BC585E0419092386E54D828840BA3002113E3CBB6550108E1496E162550346 + 04F8233A321A913102BBE16ECD0E998CB6E4E8D2F58BD8F6F33F6041D292BE01 + CCF8CD521280C265ADAF359B9172FC2A16CC5F081F962F4C16724D4F74EC301B + CD46D435D44246CEE9358A6A4C0C0DC22FC9A465464C08789D5AB873793915F5 + 38212DC15D752BA205D110C50A111A1C66336E354F4D8B1A632B32CF9EC1834D + CFBAAC0D860CC059B912BB9E2930EBB5B67F9C58CD53C64D16A3ED3AB3C50C13 + 614435B9F0A9ACAEC4737533D2A282B1FCA5588C0BA5E679638FB26B342664C9 + 6B704656830AA309A22811E285A3C00FE8585B3C954910A51575591738049032 + 3B19B0B4BA0CC0C6277270E2C7232A2ACA66941A94ACE6ADC66D20CC6DDF355A + 0D1911B590979219DF58319203FC1CD653D2AA41564D13BE2BAB877768308424 + 8C38711C2E5C3A4FA7BE29C2D7FA0780CA041984C625E695AD6ABC7E7437DE98 + B7C0361A776E75BDB963C3C56A9C9296CCE315E54A54CBABC82E21C03FD2DE02 + 8FE3E3B8B2F6C83AB7E76F0859711827F38FE24CE109C4F88B7171CD0DEAFF4F + 431F01874813A78D5C4C9E30D96EB8DB4098DA4050AD2E93954159AD445A7000 + DE118622CED7674075E65E2AB1ED08516B7FEAD3DEBE40EF1B22EBB7B8C43CA5 + 378FEF41F89831E0F3F9768D5350A8739424054FA155366271C204AC4E9E8A70 + 1FDF41D5494580535B6229B3E25C629EEA93AB0ACA913E23BDD77E6E959104F1 + 4C5A8CA56C60654C9053F5E666973BB927B86EB34B00FCF956367ED0AA10375A + ECD038352D526A7AAE8246AAC0B9A51BC879DD6BD0F53A150117BE48240C5AD7 + 0C80DB58AD98F2EA74F8F8F36CC6ADEB734AD4406795A91D04B595F5BA528B69 + 046BB0D5824D66897332A48303D06DA01CB472E5D789F567562365FA547A80AB + 2CAD865C2EA37F4B4A49ECB173633B26D70A250F65C85C75955EB2BAE461DC01 + 60CB99F5C403FD2DFAB85C5E8134F13C6C48C98044F9189F5CCF40D2C4842ED7 + 9BC9D6B7760D55AD1AFA4A0B8EADC8822828EE854178E100ACBBAFEB533EEA62 + 84FAED72CD397A2BABBB792A3BA4D4D4A8466B95013B527775C9DF1D89DAF5FD + E6E17EBCF3F2FB880A88716F1720CB23A89799BDEDCBAF3DB90A79CD77119510 + D6C5B8B97D4034580CF4ABAFFA62352687A760E58477911A37CB6E7905CA7CE2 + 3F7907703CFF30799F1119AFFC9E82EE5E007D8982F061E607C8A93A8FE8A430 + DB79CA787769543AB4D4E860D29B911C3A1E112322C945950F14CFAB50DC5084 + 3A6D0D787C2E0C2D461AD6DE8587E0C719E1D900ACDA77670FB1F3FB3F821BCE + 81BFC071C667B110309310A837C456717CD9686D20019133C7079336E3A3691F + F748793D1A00A52A7505F159CEA7F48B0B9F10367C8379FD7A33AC6D32A059D1 + 82E9B1AFE377D33FC198F09F0DE8E13D068055D6412CBBF83CCA9B65B6FF0650 + 6F8869D3ED2D4FBD440DE54560D6A8B9F8D5B8D50336EEB1003A8B8A8AC2BAA7 + 286D2C865AD744E60D5C7AD333C437146305135C323DDA05F053D530806100C3 + 008601B8FB19DCAAFF0321D546DBFF90F0B80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_04_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000A004944415478DAED9A7B5413 + 571EC7BF7910921849C21B512005147CF2508E62B50ABED7AD55D475ADEDB62E + 6AD75A4F5D3DB6DBF5F42F3DEE1F76ED6E57773D75F5687BB68BD457D5A2AEBC + B4600F22880F90222680407886475E2499CCCE844D2424624882C12DDF737286 + B9337367BE9FF9DD7B7FF70E0C9224F173166304C008805E000C06C35268247A + C882AFD641F1E4F6A02A138F4DC4ECB7FE0D26CB9B31A80B3D24DABB5D000FAE + ED25395C2DA2666D1F548555059F8120FC103B7FF7CB0BA0A3A18CFCF19B5F61 + C6EA75F0F2E63EE352A3DD52BD568D5BA7BFC5CC5F67403466DAB0876003800E + FDFC2F97227C5A04FC25510E57C480C1F2778B54869A32195EDB9435EC9B820D + 003AF4BB9BAF6162CA22BBE61CD5839C1C0843960DFBA66005A0B3F16E6FE8A7 + AD0687CB71A9629D56F75234052B00794752493AF40324116EA99C6E0AF7B3AF + BD5043F42834E79DB30E03B70270615F38393F3DDDF5A720752FD4745FE5FEF3 + 245EDF533BC4003C6870E801FCF66D4F7B1801E08C18A4D6B4CD3976CA350073 + D62CF3B4173B323A7CE68DCCCBAE01F0B45577C82500BFFC43B1A79FDF255DD8 + 3FDD3500CB3FCA87B22DA3DF698E87A059CE648FEE50EED1A3EE00F0CDB031F4 + 7C07D643B2CBA3C02F765F81BA3D73D8181AAC861F80179C34B90E60D779A83B + 2E0C1B439E01A038ED691F9E03B06C6706341D973CED0306428387ED0A34A83A + D1D2C3069BEC86379B8B28A108E1D4CFC78B69F73A9733C11709C09CBE9AA5D4 + 6B91F9D32364C96478D8D1020E8F0316D7DA28A13542A7D161828F100BC2C3B1 + 323A16813CBEFB002CDD7102DAAE6CB7187254B4F1BF96DCC699C752B0842C08 + FC78F012B0C164DAF7613492D02B0DD470AD8146A1C5EB11D1D89E906002E156 + 00CE1A1A8CEABA155879F112956518C1F66681301020F484E5381D055C11073C + EAE7C563DB85A16CD240DBD4835D348482FB2E02F8F0087A9C8C00570048047C + A48D8F417C8008629EC8F4365BD40A3CEE5420BBB611576A6AA01530E013CCB7 + 0B42AF31402153626A1781AF76D7D2FD8543103C0EC02C0634031ED71919F857 + 4539BEB85B0E41380F7CB1ED723D87C94163752B927C5EC53F569D7008822D80 + ED07D1A3BC39E4869C958C8A88CDD77E804A4C454308DF64DA2C16B337329AAB + 14981B908ABFACF8D27D0086CA90336A566BB1FEFB2C30C70AA90EB37704F062 + 79599DF3E84E0DF624EFC386848D0342B001B0E483FDD0AB0A3DEDF1B9AA6CAB + C7DAAB85889C3ECE629ECDE8DDD291A0D568515D2AC5F52D771028087E268497 + 0E00837C1A89FB8AEEE092AA0D1192304BF89BC5A6F66B1FD563B6703E0E2C3F + 640150DF5947E656FF074D4A39B625FF1E1C9637C31AC0B64FA157977AC4D060 + 25EDD262C5F7D7302D7992C5349BF9B429907A1245376F63FFC2CF51D658821F + 6479902B9F401CEC0B85BC1DC7D24E6156F81C6B008BB7EE86415BE176435A82 + C4D1FB15480C1A8359C122B7017C332B0F3D21C110075AD749C3F0A260549657 + 41A951C2DFCF1F01417EF0E10BD1DCDE8CF6AA2EE46EBE657AE40101B8F286FA + EA6F65E5382BEF46B7BA1B4922017626C641E2C375B9DE03B7CB90A70742C282 + 4CFB3C36CFE61C169345F96082C56299F6B3F3737078C909A4442D62D8F4018B + DEDB0E634FB9DBDE10AD26AAD75EFA5D0EDE58BE0A7CAF51B8577917F7CACBB0 + 7EFC2BD836350C5C367F50F549A9A1B0B4458182C62E14C9E5E050C9D3A489B1 + 039AB65C5B2B45906A1C8EAFCD30F50B360016BFB71944CF63B702D896FB2314 + BEC1888F49B4942975DD282A294277B31C3BE2C7232D321424C3DB729C41F658 + D5512857E0FCA31A14505B15618458EC0771901022B110FC3E93217A24E86FDA + 54460151EB54C8CBCE43D6BB0590F846BE18006594C14D547EBE6A499AA95D1A + 8C0610E4D3F5C536550B6E1797C09F30E0D3A418C40588EDD693722617F01341 + 2209B732FC3CD37D5572A7140B8296614FEA5ECBA860F7CB10CBD8F05C63FDDF + D0B3B4EAD24D044D88436868A855B99ED09BB60663EFB64E5E47358B7B58E4EF + 8B1D091310CCB76ECB394FE4D85B5461814077668E983695539D6197B603C5D7 + 4B91B7A51802EFD1CF0690B2712D05A0D1A5B76ED6E9EA7A1CAA6E41CA9C14D3 + 3E612460248D16D366D1E52618A41ED53F3D864C26C5C6D808A44F8A00AF8F49 + 0D41E0E803198E55C830EE95308C8F8AEE93FCF483419966329896F29C1B3978 + 3F6EA74D66386400E8875D78F63A66CC9B0B1FAEC8C6B4D9386DDAAA8CBAAE4B + DD09A9B4866A1F1DD893148B94B1C1D491A7E7C9D5061C2CA9C4D5D6764C9938 + 05E382C7594CD3EA9F16D7D7D7A3BE4A8EABE905F47FC10C0C2079F1546A92AD + 7219C017D50DC8C72824C4C53B64BA7F995AA33641201B5A7071EE64BBF7B8DB + A9C481AA06B4788F42E2F404F88D0AB01C6331D8963EE7CCE5D338B9F2341242 + 67D8A4C4B6A93095093248B54BE69B549D58907108F352E781CF19E59069DA70 + 87A2138A26EAA76803CF9B8FF963C2B1227A3292C7463FF35E04A1C3C5C715D8 + 5F9885D181C1484A48828033DA729C1E7203B4637078E571BBF3812189800FEE + C9D01912024998C4C634C9305ADABC590FCA2BA0696AC74C111FB3FC048819CD + 43E4A8C1E5063AA31147A47264347652CD621AA64C980AB55E857317CF203BFD + 164285E31C03B0F4FD5D2E992F7C52852DF9DF22F5B594014DD3D2187AB3CCC6 + DA26A4F082F0D1CC052EDD9BD689BF1F444174326E35DFC468FE68AC8E7A133B + E77EE2F86C307961A4D337A7DFC2FAE22AF84E8A41A06FA0A9336B696A436B5B + 2B043C01264C8C869EEA0CE976D9578AE60E40568393891227EFDCE7055CAB35 + AD0916CAAE93A50DC5484FDA3AE0CA906D046CFDD0F99BD74BB1E56AA665B615 + C2E362F6D848C40547E0E31B1790342B110CAFA7CF62E803A3ACF001B2566D42 + 84D0CF250059873F777E51F4CA9F63499DC6B50EF022B307422A079F003602C9 + A7CFF135538BBA707F844585DA440041EDCBA4B5185FABC106A36B13240E9525 + 2ED9F9D03900FD8648B78A5E88483D3A0391F11270A9C820FE07C13C12D09961 + 75711D4EADBB6477B81A2ABD3000B4BE2E3946EE2DFC23A2E2C2ADCACD69B1B2 + 4D0D869C83336F5F197019EBA505406BEBD977C99B6DF9088CEE9DF4107D9A83 + CEA84357A31A2255008EAFC9B0CCD8FEAF00F418B4E4C6CC75B8A3BA8590487F + 93E9FE522BB4D0D412D8F1EAC7782B61A3C31F395E0A0066083B2EFC0E39F597 + 218E100CF8A54760F4C11B93D620257211C2C5125342A3D0B4938D5D0D28A92F + C299FB19A86CADC0C577729D8A188F0030CBD427E47E026E903704413CBB1F43 + 69109A0E1DB4D48FFE2A6C16CB8B05169B05430F013E938FF3BFC97EF900D0A2 + 47878337FE84739599F0167A0DEACB30D14960F5E40D74A60731CFD7A987F738 + 80BE20CE3DC84456E577286FBDF7CCFF0DA0DFF8D480782C8B5981B429EB9C36 + 3EEC00F415DDC6A5EDD5A8ED90A155D5022E9B4BAFE2204C1481F1FE31562B3A + AECA0AC0CF55230046008C001801E0E967F0A8FE0B915F24DB7ED6BE25000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_05_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000009E74944415478DAED9B095053 + 771EC7BF3920090201E41441C00B100FB0782082B7C5655D2BB5BA76B7ADC76E + 5DB6BAEEE8E21EB6DB9975D7CEAEB6DB71DA595BAB53756AAD55DB15173CC00B + 91150554101C1522C815242108C94B48F2F6BD97067826422E1299E53B9349DE + FBFFF3CFFFFB79BFFF0D1C9224F1FF2CCE1080210006001C0EA7FBA65EA726AF + 1E5A05F9E39B5615E63B722A66FDFC6B7079028E555F7CD100549CDF41BA0B09 + 8C99B9C9AAC2EE5FDD0D9D6E3862E6660D5E006D0DB7C8A2232B91F8EA2AB809 + 84CFF99ADEECDD2E4289E2E3DF62C64F8FC267C4E441018105800EFD4B9FA761 + D4E408F8478EB1BC1068BB3FB7D448F0E89604A9BFC819144D8105800EFDA7D2 + F3889DB7C8AC394B55919F0F71C89241D114BA01281A6F1B423FE355B80BDDED + 2A544368064D53E8067071EF7C920EFD80C80887144C3785F2BCF34E35438F42 + B3DF3A6915F06E00A7FE3A8A9CBB7EBDFDB520354E35DD5B17BE3888A5DB6B07 + 18800B0D0E3C80756FB8DAC310005BC42109E63D7FFF37F60198BD6289ABBD98 + 91DEE29C578EE5DA07C0D5561D21BB00FCF80F375C5D7FBB746AE74BF60148DF + 76091DAD479FC962790876176AC3ECD111BAB06F9F23001C79610CF5AB678664 + BB47811F659D815276EC853164AD5E3C004E9E34D90F60EBF750B69D7A610CB9 + 0680FCB8AB7DB80EC0922D47A16A3BED6A1F8C5A943234771290111DCCF53037 + 3E8286F920D8430437AE798F76CF049D09C0387D35AA4B4FA2B0A10ED9D50F70 + BDA909F22E35DC45EC7D09AD5A073EB8981AE087B96111488F8A82A75BCFB69D + DD00D27EFB2588F63C8718B2566F9FCFC3B5E65AC6344FC8859B900FFE0FEF6E + 227E773E3D058A50A8A907A5814EA1C3F2A8486C4A98CA807028007B0D59AB7F + 96DC445E6D0D260704C35F24829E54A3916A02553219EA544A7806899817B757 + F8EB347AB4D5773020DE4D4C80D7E5723B016CDE0BB58D113090BA276BC0BEF2 + 2A9CA97B04BF486F78F8B277ABBB545A3C79A040BC123894550B015F68318417 + 0200072A8BF255C9E4D87AB910726F12DE211EAC34BA693CB9A7C0CCC014FC6B + F99716436003D8F411D41DD79C66C81629D42AAC3B7B118DC374261068B5D6B4 + 2375F8227CFACA01C701184843B642C838950B440DEBEE20DDB93D23C6E30A29 + B64E7B17EBA765F60B8105E0E58D3BD1D559E86A7F16A9A8B1116F5F2C404442 + 0873CDE3F68C143ABD168F4B9A91B7BE18A1E2B03E21380D8054492033EF02E2 + 0383F0BBC4A9D413B37EFF8543B223F1CDB385681073E01B2836C9DBFAA81DF1 + 1ED3FB6D0A6C00EFBC872E65A9C3CDABB54ABC9E73099EE163D1226F41805A89 + 8FE724C1C7BEF3175CA86BC4B61B1588983282B9E673DC58E9E545F7706ECD35 + 44FA8D7E2E041680C59959D012953657E8D92764D43B178AD0201223293E99B9 + 2EADBA09E9C307F86C413222BD85D6FC044B6D14C8E4E3E7109F3CC96C7A4375 + 339685AEC2B639EFD906E07986ACD1AE922AE4B428903687BDE15A595381D2B2 + 127C929A809921C136973FFF782EFCE246412812824FF5037C6E4F14A89E1290 + 56B5A220F3966500166DD804BDFAAEDDA68D3AF1A01A1FDCA946FAC274B8F304 + CC3D1DD9B3BB247D22C595C24BD83A651C56475B7E1ADD5B19D917211A1B0191 + 97F948BA79B9041B6766A143D381968E66B42A9FA0A5B399A9CF172B8E3C1301 + 1B7E099DBADA21E66F499BB026BF0469F3D2E1E12962A5E9F43A6AAA6BD86B6C + 27DA505050889F84FA637B620C488E80AA94DAA4BC4A7927E46A0DE484860A7D + 0DD43A2D5A093572248D08898B8697D893C9E7C665F703D5D51274115DD49AC2 + 0D42A18089147A967FA7B29CE91F06044073671B5EC92E44FCF424040C0F64A5 + 69F55D26F9D53A0225C56588E293D8933A09221E8F95FE0FAA197D75BF1E22B1 + 07845C0AA680844868804A9BF20DF481882F325B1763C7C8FBA14CB59640D1D5 + 62FC3EE97DFC2C612DC7E46488A76FE8D7A0B92764944AA743C6E922F8444421 + 3222F2B9F9E828E886421AA054DCA904A74D86FD0B129875BF51F98F9BB0E56A + 0562E363E1E7EB6B91D1E7E9FA7F8BB1386C29762CDEC53178E90560DEDAD728 + 008D963F6A335A9B5B88665F3F4C8999C2326A34D9977414BCDAFA5A34DCABC6 + EE94042405F7982D6C9223ABA00C41547B0F0F0DEFD7280B0AD790B7ACB20C21 + 9A301C5E7592FE8310C703D8515C89B3AD1D98363DB15FA37D4191C9E5B85B7A + 17BB674DC0BC91F40861C8D7A4D462CD9922607830264C8C6199EC6DD49C6A24 + 3590D7B523FBAD0BF01478758F0A2C00498BA9F154DF6993F9D34DADD859D782 + E45949F44ACC22A32AAD0A72691B08C2D0A4548461D8255404540A25568688B1 + 71F408D677347A3DB654D442C2F54042E2140878A6BD3FFF998EB0A5558AB2D2 + 329C587DCE6452643213E4904AABCD37772A30E7E81E4C8C8903476830409B32 + F6BE515111ACFC5D3F74844F151DA8B92B41465434BC0522780984F072172240 + E4C15CC7FA8783CB313D99D2E934D8519883EF6AEF23393909DE421FE63E97C3 + 35890265870A39F9D9D89FF10D9222524CE6030E8900994683CDB725CC67B1C0 + 1D622E074194711F371EF6D6CA30956ACF6623809AA81095F770F0A57156FF26 + 2D26EA1E48313B291581FE3DA30D8F63581869746A649FCBC69F533EC08A49AB + CD4E86D8CBE15F6FB5A9227D69CEE15D089A30863551A187422DB562A323A5AD + A21E175FDF6C73F985F535F8CDB96388999C8098C809ACB49C8BFFC1B2A89596 + 4F8593168E7638803D0F1B7096E461445490D9F4D282DBC89D110D3F37DBFF98 + ECA1B20B9BCBEBE01F36168993A719C094162044178EFD2BBEEEEEF1FB059096 + 69FB93789E248A56A49DF81C7133C6B3EE1B3B46495903FE3E73111646C6DAF5 + 3B2A0D81E5FB3F8236220C01BE01687BFC1427DF38C3EAF1FB0470E6C31852A3 + B2BE03B44487B904EA46F963F8286F9334B9540151D5136CD28B6C28992D77AA + F32C884B4759C30DEC5D7EA8DFCD1016803EA2C46ED5C81E9269076661644290 + C9CE0D2D4949230E667C6BB6971E68390500AD7DD73F25775DFF0B464EE8E9AD + 357AC3612BBDADAD97B82377DD15F88AFC9C0AC1690068659E5C435E6A3D8BE1 + 91A64DA1BD5189287D34B344752604A702A05662E486136FE29AF432FCC78B59 + A73C460801AA507CBCF433C406C539058253011821FC29770BBE7F700CFE63C4 + AC733F5A4A39353778D48965E357606DE2AF061C84D3011875ECF657E4DF2E6F + 8746A8864FA82778EEDCEE34FA94A7A359C5BC467A862336702246788732696D + 2A396E3596E2E5F1E9D892F247BB2BED3200B4E42A19F949E187385CB60F3C31 + 0F221F7708C50256D3A03BC82E420B2DA167DE75D4BB46A541EAA80538F0DAD1 + C10DA03788D395DF21E7DEBF71B3A108D49800BE80BDA8A14D8B4562A484CD47 + 5AF4522C1E97DEE70C6F5001E82DAA3EA4445E8DC6F67AB4AB15CCE6A5905A5E + 8FF11F8740CF60875772E8FF0687000C011802E0EA3A0C0170A5FE078BD33CED + A3337B330000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_06_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000009AD4944415478DAED9B095454 + D719C7FFB3CF30CA8E80882C2EAC0A2E4991B8424441B4314A126D121B6A7352 + B1D644636A8E6D4E4EB4B18DB639C7634E352A49B455DC3D5A5C020344596250 + 10044560406419505661F699D7F70619793286D960A0E57FCE9C99B9DFBCEFDD + EF77BFFBEE060C8220F0FF2CC608801100DD00180C86BE50AB5110D987DF406B + ED0D939C398D9B8197DE3A06268BC730E9C2A106A0246D3BC1E5CB3171D60693 + 9C9567EF8646E382A0055B862F80B6FA5B44DED1D7F1C2CA37C0E1F19F7399D6 + 60A94A2EC54FA74E2262550A1CC7860D0B08340054EA677D1D0B9F305FB8FA4D + 34DE09D4FACF0FABAA71FF5635E6FDF6E2B0E80A340054EA3F6E4A4370548CC1 + E08C5589480407CFB861D115F400DA1B8ABA537FC54A70F95C8B9C2AE5CA61D3 + 15F40032F7451354EABBF9F95AC531D5156EA7A70D6A30D42834E7D7674C02AE + 07707E870FB160ED5ACB6B41280735E8DECA38F81D966DAB196000360C70E001 + FCE66D5BC73002C01C3108B9EE5D74E8B86500E624C4D93A1603D21AFDCBAB27 + 2E5906C0D6A15A43160158BA35DFD6F5B748E73F9F691980F88FB2D0D99CF2CC + 4F8C4F41BD5333668FD650C68103D6007074C804D4AF9E19922D1E05966CB90C + 69CB89211390A91A7A000679D2643980CDE7206D3B3F6402B20D80D653B68EC3 + 7600E236A540D6F61F5BC7F1A4627234C9A46857A874DFF96C0E3CEC04E0309F + 1F9FC533C1C104D0337D7D561D2A2DFE204A45714B1B945A15581C96AE9CD090 + 03B256031FE16884B97960A1CF78448EF5A601B11840ECFBDF42DE916ED5804C + 15D5EA2F9F4E0193D91D389BC702DF910B01F9E208D850C9D464232921275F42 + 3503AB030390181A4282E05B1780B50232170295FA7C9616E2F6C7B8D1588BCB + D5B56866A8E0E43B4A07821205A3432285BD94C0B688D9D05CC9B310C0C67D50 + 989901032D95568E54B1185FE4DF04C6F060EF69A7B7293A54681677204AC1C0 + BEAD126A7FD368084302000332A37FDB249563CBD56C946A1EC3C5CF5E5FAED5 + 127854D68E45DEF1F872D97EA321D0016CF807149DB9831A9039523ED620F1EA + 1554F135B44CE88110EFFB2A76C5EFB51E006B05A4D432F0F1B51CE4D6D7E360 + 4C14029D9DCCF64565C2CA0B17C19D28D43F137A203496B4E093B93BF1E6F4C4 + 7E21D0002CFEFDE75075E558255843155E979E0195831BC67978A1B8300F27E3 + 6331C68E6FB6CFB31555F8ACA80063821C69E5D4C3B1B5EC312EBE930D3FE709 + 3F0B615000DC6D69C57A5126C64D9A822901537565C56545E8AC29C7B1B8F960 + B30446F961107D3331FAD42530278D86804F07F9A8AE0D91C2287CB53CD90400 + EBFF0C95B4C0AAC167D688B129BB00113322E13F7E02CD26CA4B471013D83D27 + DC6CFFBB6EDEC5E9F63AB87BBBF6B155E63FC0F7EFE4FE6C16D0002C5AB7056A + F91DB32BF36C0B259756634FD91DCC9F3D0F2E423783D75CC9BA8C84B1CE581F + 166CD63D731B2448CA2BC0C4709F3EB6DAEA06C4BB2560FBA25DE601309472C6 + 889CCDE293DC026435B56341D40270593C9A9DF564964749A69222959CFA6E0F + 0F419CDF7893EF55D5DE8A15A23C044EEB7B98AB52A8F1A8B4033FAE2F310E40 + CC7B1BA055949A15748FDA14522489AE4322E063D6B459465D23557621333D13 + FF8E892047066793EF37F78C0861912106ED253977707E4D2626B9061A8440CF + 80F7DE854621363B78AA35D6A6FD08072F1F040404D05ABA3F353434E05E7121 + 4EC645E8567DC64A229521F64A2EC25E083568BF575C894F66FD15AF84240C2C + 005D5FCCBA89A0A0608CF5F6340F604D15885A09FEB5F84508584FE151417EF0 + 43A1EEB3F728015CC9A173AC5008471E178D52290ED448101C1668D0A7F85E35 + DEF45B8BA4C80FFA07409D0CB1B4F5FD5694412868DF7324ADBAE0A7854F8783 + 8B7DBFD7F7168B45CF92A2A2624C22D4D83B7F9ABEACF0612BDE12E563726077 + 3F97CB1590C9655093E3BD5AAE8693A713FCFD7D7536955645F3F7A0BA0E8E5D + AE5815BE062E76AE701438C17D94071CF88E18C51BCDA001884A7C8D04D06072 + CB89C856DB945D02F0186083030E9F0D3EF90CE031F8F074F780D0D9F894A674 + E34601968F71C287D39FB6EA17E47077A6A91533664C33C957578B0C0D8D1228 + C8D5AD5C26878A04A6860A6A8506FB7F790456014049A6D1904B5825245D72B4 + 281468256F70AABC06ED4E4EF0F6F5A2FD96C3E4E8DEC5E26AB436B4824D0263 + 93D359015F003EBF7BC4B877B70287A36622DC8D9A2E77B76A52E66D9433D898 + 3A750ACD9F86BCB729EA90B6E326394A1D5A719C0E207211394BD3769905C090 + 0ED734E2B812F09FEC6BD05E7AEB2EDE76E0C399CB468B528D3695068D72156A + 64DD5DECCBA9BEA4EDE95FAB28B55AACCE2F871D99EE7EE3FDCCAA53FD83061D + DC3DCB0E206A620CA3CF4C904148AD06E05CF92DEC28CAC0E429130CDA6FFD74 + 1B69AFAC83BBD0C1689F8D5DED587A3619814181F0F434FE61ABD16A50565686 + CE4629925F4BD10F8B039A01955D52AC29B88F90C820C300724A90FAE2245A2B + 9BE2777EF47CD87185465D935B900B4F8D370E261C8593C0593F22D097C3499B + AD167C8FE61FD905C7102F7078EC3EB6BB051538BF2411BE0E2E26FB3D575182 + 6DD7531117150701E7E99E00D5D2BDA5D4289021CA40B46F2C762CDE0D1E9B4F + 1B0EE919B0708211B7364D3BCB1E208DA9C238DFBEE95A51781F3BFD3D31DBD9 + CE0CCFC01EF143A44A09C4CC5B64D0DEDCF510D7AEE5E077D3371A370F885DB7 + D1EA00AADB9B117BFA6B4C98E9DDC7D6F8E011563A87E0A38897CDF6FF61FA71 + 14AA94888A88A6958B6B2A917F3B1FBB16EEC5E280A5FDAF052EFF3D8850CAAC + F700ECAD234C39EE8D2767705EF48D0B995C0E69E1237CAA31AE1F3F4F7FE1C9 + E01D3A9DB6D75053598BE4841404BB871AB71F60C246AAC9AA6AA92462935F82 + 4BB003585C26CDD674A70D9FCDDD8D84A9ABCDAE4053A78458FA4D3482420350 + 2BA9035F26C0A184631833CAC3F82DB1810440E9C8CD43C4A73FFC11EE21CE60 + F63ACDA1B6AF5462265213B38CAAF0F354DA789BF8D5896598EB1D8DBF2DD9D3 + E76167730094365F48222E549F866B80030D42478314FEDA407CF7FA49DDFC7C + C02B622B00E4BD88A4B38910D55DEA03A1B9AA0301DC50FCF3D56F2DCA84210D + A007C20ED19FF04DE17EB8F8DB8367CFD1DBA84C60B4B1F0F1DCED5839659549 + 273CC306408F44155788AD97DE4727BF0DF61E76B4F3BED6EA4E38C0194B8396 + 63E6B85F20C02D1832950CAE4257AB6787CD005052A8E5C481EB5F21397F1F3A + 991DCF3D05A696AE94A8E3F1ABEF16C2CBC1DB6A95B52980DE20322ABF475AF9 + 25E4D55C437D57ADEE789CF164AF4443AE12B9E4123AD82DACCF5CFE7F028021 + 20F51D75BAB4A744A5BE9BD07D409E0923FF3738026004C008005BD76104802D + F55F7394252BC1B153130000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_07_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000A604944415478DAED9A095054 + 471AC7FF73301CC230C3219708288A20622446113411F024BAEA2ABB6ACCE6D0 + 4DB95EEB96467795CDD65630A6B6D0DD5A259598E86E56CB5B57D7239EA01540 + BC104441510E411839E782B967DEBE37C4070303CC050315FE55D4F0BADFEBEE + EFD75F777FDDEF310882C0CF598C410083005A0130180C3A51A75512D9079742 + F8F2BE5985F187BD89B8F78F82C9726498F5607F03F0F85A2AC171522074CA06 + B30A7B96BD0B5AAD27C2E3B70C5C00A29A0222F7C8AFF1D692A5707074EAE231 + 9DD154B54286BBA74E2266D931F0FCC70F0808060028D7BFF9ED5C048D0F8657 + 48A8E9854043FF5F5F5E8117051578E7B73F0C88A1600080727D69DD354424CC + 326A9CA97A9C910177BFA4013114680062C1C356D75FBC041C278E5585AA14AA + 013314680037BE492428D7F70E09B649C1D4507874FD5A9F1A43AD42D33EFCAF + 59C06900E7760411F1AB5659DF0A42D5A746B757E6FEFFE0172995BD0CC08E06 + F63E8095BFB1B70D83002C118350E87F330E1CB70EC0B4E4247BDB62443A93EF + FCF1C425EB00D8DB545BC82A00F3FF74CFDEEDB74AE7764EB40EC0BCAD37D1DC + 78ACC32DA6BB205DA805D1A32D94F9DD77B60070A4DF18D4A33A2CC956AF02EF + 6EB90C59D3897E6390B9EA7F00FA3868B21EC0E6B39089CEF51B83EC034078CA + DE76D80F40D2A663908B2ED8DB0E0349553228340AF01D9DE1C0ECDE36AB23C1 + BE04F03A7CED4E975F94E3D3AC1BF43597E580517C1EC67BFB21717808C67979 + D816C0DC3F7C0F85E47AAF1964AEEED5D660754606543A3538CE1C38F138603B + 31A16A5143D6A042A0B30B56454660416884ED01F4864196AA4E2EC3ADEA0A9C + 292DC383A626F08286C085EF04A5440D71750B421C9CB175520C2417B2AC04B0 + F11BB250CB3CA0AF4479C5F6AC2C48DD74E005BAE9D36442059ACA2598A16663 + DFB6DAFE0F80EAD17FE6E541A955E18BA9B1E030CDDB8749D50CACCFB88622AD + 149E215C7D9A56A54363A9042BC257627BC2E7D421AF49200C016CF83B94CDB7 + AC369001B9D174958E81C3C545D8F3B008E1E11178F5AA162B4382B02C2CC4EC + 3A54522D96DFB802C1102DB87E2EFA349D8E40C353B11E424A62AAED00746590 + 39BAF1B21E5FDCCE8583A71726454F822BC70D42B1109999E771715112DCC965 + CE5C5590CF2FBE9801CF0877B0384C1AC2AB874D489B938E8563937B84600060 + CEFA9D50B7E4586D6C7B3D691262775E3E8A240A4C7CF32D04FA0C37C8CF7990 + 8568B2EDDB27475B547E7AFE7D7C5F53450F054A6AB906921225AEACCC46807B + 60B7107A0D805829C7DEFC629C2E2BD7BB7BD8C831603159743E8BC1D6FFAAB4 + 4A9C397F1AA7921210ECCEEFB64C06D1D9134564743EF5E459F8BFE10D66BB40 + 49229061066F1ED2E6A59B0160DD6750CB1E586DFC91E242EC2D2881475000C6 + 858D8323BBED1D2393D1EAAAED61943C2F01A7BE0ADF26C65854DF07577250C9 + D3C091EB40A75143A126BF1ED757DE4188C7C82E21180098BD660B348A628B0D + CF150890762F1F0D2C3622C323C1E777DFA36C665B83AF5EBB82D48961880FF4 + 33BBDEB4BC27382DAE8657004F7FADD2B56EDA282F98E79D8CD4D969960130E6 + 725D69D38FF9C86C102022221C7EDE9D8D60335A8D6DDFF3EDD5D0D880AAC202 + 9C999F40C6FCE60138FDBC0CBB9E5562E8A836E05A9D06BA16065A2AD4B8BDEE + B1690066ADDE009DB2C8EC1E506809C49EF8017C5F0FF0793CF8FBFBB519CC62 + 75FB6C7B30B77273B162983B3E1A3BC6ACFA2F965762C79332048C196A90AED6 + AAF1A2B006A793AF22C227D22804430F58FD09B4CA32B30150AA952970BDF225 + 72040DC8AB6B8286C32187000FDE7E5EF0F86928504632086697506412390921 + 07198BA683CF61995CF781A2721CAA17C127D8537FAD21D4745EF5933A6C9B94 + 8AE4A8E5BD0BC0B05025F2EB85D85B58814A723E088B18D5EDFDEDBDA5B8E409 + A2B43AEC8C8D30B8E742452D9CD904A6F879C3B903C0AD59F978E4E004BE3FB7 + 53D93565B55818B0145BA77FD63300EACD104B57639281A628F56E316E91D19F + DF709F3663996C728CB71ADC241482EDC006D7D5CDE0B9AC8C6C1C9E158370FE + 10FDF52B991C89676FC29DEF0E45A3186F787291181248C2F0C408AE0BB90C66 + 227872189CD8CED0903B478DAEED1057582341B4634C97CBA10180848F7F4502 + 1058D2E946A5EF195707F8F9F81BCD2FB8FD086C950A0AB209AFE70FFE501E84 + 7522380A5EE1F09C29F4BDCB2FDD82D2CF97CE178AC8BF574DE09333A694843A + 7E72A4D13A04E4E6291A717604D0C135290FA0963F85468E8ADB4F91B5241E65 + 1272BB2B68C4F5F22AE4374AE0E4E90EB1508CACC5337F9A0BD42816AAB0FC4A + 2EA626C419D421699642A3D6D0F38CBA8307082A6B11EB1ADFE5526800207676 + 141941B4D80CC09ED21A5C2158F01FE1D3298F72CDD1642C9F3A36C8205DA5D3 + E18E500A3169D4BBBE9E0679298F5FA0848C16C3478F8156ABD5A7B59FF08CE9 + 79713942D8A3B03E6E3326F84FECB44BEC1409320899CD009C7D56801D0F330D + 96A7D7135E6D452396F986E377D1EF985C5E6D8B18338EA5634A4C2C5CB8C637 + 4F141882A123E3805640D43C534FAE4C42A1084C35135383E3111B340DF12367 + EAF709BDEA01A52D327C505489A071FE70603918E451CBD3466FD74EBDDC930E + 922E7D5CCA2021C4D046F6E405EDBDA5A646A09F3F24B5CDC8DB50D2613BBC76 + B3CD8C6FAD58852947BF023F980BE610828C03D8745EDD3321B647C56341E858 + F3CA2487C8DCE37B11386E3CBCC8ADB5F17BBA0623A817A0A8A818090173F0D5 + A27F75F08099236D0A80D2974FAB708DA9A60F2D38CCD62FD01AAA4558C074C2 + FA11DE669799D524434A59039266B47DCF402D7FDD49480E8547C58FC023BCF0 + D7995F2236F86DFD5C60E8016B36DA1C4085B811B34F7EDD69BB4A1D68864ADD + F0EF79EF5B54EE87E70F42E53D14A34347D369AF7B5E47B4BDD1566A14287C5A + 08A140884DB129786FC2470613210DE0F2EE704225B7DD04D85E87980A940C77 + A6BD40DFC89FB6AB9F2B5DE006F33F25AC631048735263E1BC5F82C3726C0540 + B42D7F148CD2B2521416156049E40A6C7A7B1BF8CE1E9D2A32FAB1B4AD552DAE + 2266ED8F0377B4231C9CDBE681C672093E1EBD966A9C4595A75CDE4CDC6BCE46 + EC84A906E955B595B877FF2E223CA3B03D21B5CB8D509F01A074E6F10962F3A5 + B5F08DF2A0870275922B2A969B7474654C42791391B07F22A6C725804FC607CD + 2A29EEE4DD01191AE28FD3FF823961F34D3F13EC6D009452AFA710878AF7C32B + CC9D86401D5A0C5387E0E8F27370757433BB1187F20E10E9F9BBE0EBEB836765 + CFC9B86223564D5A439D4299772ADC1700C8BA884F2FACC3F98AD3F01CC9A54F + 72A9A110C689C4FEE42346C7694F656EFCDF27649CC1C196E97FC650575FCB5E + 8CF40580D74ACFD94DECCADE018F10AEFE1517255195145C9927FE96B4875EA2 + FA4276014029AFFA2EB1F5E2EF51A52C877BC010FD8126F58A4BF4A20593FD63 + 911CF59E3E6435B747070C004A94FB9E2C3C827DB7F7A2A2E539867839EBDFFE + 6A143A28442AA8E42AB8B2DDF08FF9FB90103AAB571A685700ED45794466E955 + F2F70E8A1A1F422C17D379BB93BE36E92DCF8006D051640447881522FDE466EE + C46811809FAB06010C0218043008C0DE6DB0ABFE0F1DA5795D60B0DBA2000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_08_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000A6D4944415478DAED9A0B5053 + 571AC7FF49082480F2905728480288A2557C56C1E2035F0BBEDF3A6B6BADDAED + 6A75BBD5D576D76977A638B6B36CED4E473B5D5BDD5D9DB5A860AD8A2FC02750 + 1F88A8202824119510401214F2202477EFBD9A9040905C12083BE53FC32439DC + 7BCEFD7EE7FF7DE7E4DEB00882C0AF59AC5E00BD005E0060B158A646835E4BE4 + EC5F06C5E37C469DF9848CC2F8B77E049BE3C66274A213648ADB1A80A2CC64C2 + 95A74164EC46469D3EC8F93BF4FA7E889EBCE5FF1780B2B290F8E5E0528C59B4 + 0C5C375E3BA71BACB6EA342A5C4F3B8271CB53E11D1CD3A32158054059FFE29E + 4484C508E1278AB4B933169A4DEF6B24523C2C9462E2DA533D3A15AC02A0ACFF + BC3A138313A65B0DCE56156567C34B90D4A353A10D807AD9ED17D65FB808AE3C + 57BB3A6FD234F5F8546803E0C2775308CAFAFE22A14306A052E16E5666B70645 + AD42F1EF1CB509781B00C7B7871193D7ACB1FF2A88A66E0DDA5CE77FF80FE66C + ABE862004E0CB0EB01AC7EDBD931F402E88C5884867ECDDE7BC83E00F18B939C + 1D8B15196C3EF2F2E1D3F6017076A88E905D00667F72C3D9D76F978EEF186D1F + 80595B2FA2E1696AAB436DB7A0519DD93D3A42E7BFFFDE11000EF698803A8EC2 + 7249B67B1598B9E50C5475877B4C404CD5F30074F3A6C97E009B8F41A53CDE63 + 02720E00459AB3E3701E80A44DA9502B4F3A3B8E3632EEF43A92DD3BC1EE0460 + 6B5046ED2BBA8B535229A2BCBD312A2818E3838310C077772C80C43FFE1B9A67 + 59DD121053FD2E33037972395CF9AEE0F0D8502B34880D0CC4DAA1C3313A30D8 + F100BA3A20A3AAD52AD46B7518E0EDF5CAE374060DB21FC990FEE01EAED6D4C2 + 3BCC836E573E6CC4587F3F24C7C5E2CE8FE7EC04F0E177D076D2014C641E4C7E + 4D1DDD7674D64C84F6F1B1E9FCAB3231B6E5FC02B52F179E817C34C8D5D0C8B5 + 785BC3C69FFF52D97301DC905722B5B404E79F54C2C7A71F06860F4478FF0814 + 94E463845E834DA346D8DC57BD568DD5672F40E6A1475F813B74EA66D494D6E3 + E3F8BF62CD1BEB3A84601DC0C69DD036E4D91D280B6AD3FB8AE71AA43D10E3A4 + B8141A360F911103201289E0E9DAC7744C43D373649DFE199796CC67340E0561 + F1894C68051CB8FBF0A06F32A0BA5481AD711D436004C03C205B54ADD2204322 + C109B114129D1A428110C2883078F37DC161734CC771582E7061BBD0EF8F66A4 + 21257638C609048CC62AAC9161C5D98B081EEE0F369B454390172BF0CFB90790 + 1039BD5D085601FC66C30EE81A73195D80B92E3CAEC17F4BEED279ED1F148090 + A0100404065804EDC2E6D2AF5C0ED7E2DCFB65F7E1575F839409B18CC7DD7821 + 0FF986A7742A50A2D2412766E3DCDA3CF8F07DAD42E81200A30EA62148108CC8 + 6811DC5C2C1FABB9B0B816208C30D82C36DDAED6A99071EA2472172792E7BA5B + ED9F455877E2AD5A25569EBF02C1D07EA6B6A79267981FBA1CC933521800F8E0 + 53E854059D06F0539904BB0BEF42C57781285C08FF7E7EE40064801C3307B05E + CCBC35575CCEBD8C4D51022489FA331E3B2E35031ED15EE0B8B2E9CF060381AA + DB75B8B8261FAF7985B6816015C08C755BD0ACB9D76900C619CA9054E0872231 + 9DFFE164C10B0E16BC7000A795035AB942269381FD448A3D53C6311E7BE5D95C + 48FA68E9626814E582E5A255D83625B97300DAB39CADCA9355E183ACAB881E13 + 035F9F9635BE3D18CD840E5967B3706A4E0202DD798CC6DA74F916AEBB282C00 + 50B58053E18E2BEB0A6D0330FDFD8D30688BED0ADA5C72723598F67326C64E18 + 4D577B2EDBB2F051B3EFD2AAEDF6ED3B58E6EF89554306D93C0E8BD062EB955B + B8EAA6451F6F0F34195ABEB63FBE598D33AB7230C06F900504EB0E78FF3DE8B5 + 628701A052617B891883632C83E1BBF0DB1C6B74455DB502CAB212A4CF64B61A + ACC92E80D45F0F4F774FE80D2DB7F064E5B5D81EFB35E60D59DCFD00526E96E0 + D4332582C3036907B49E6D45B51235B25A84868758A4C8959C5CA4258C43785F + 779BC74A483F8FBE3102D3F2AAD3EBE857F9A35A2C0F598DAD933EED1800F564 + 8863A8EC7030CA72B6E893DC62322F35E4D218646A3382D034AB51947B0FEF46 + 0B917ABF02064F1EBD725020C4E4066A1219C79F46B63867C1C93C28B51AAC8F + 89429230087CB31A72AB46815539051834E2C58F3AA85AD202B91EA3396FE21F + 73F7740C20E1DD25240099FD53FF52545EE6BB1AE013E0F5B2E2BB98FE572996 + 632CD70D3BE20643ADD723BDAC12DFDE29A3410848608A7229B2174CB698619F + 0821B9525481DDA0C1EF8746624164300D821AE7BA9EA09D6614950614881E03 + C0E48097FB80928232EC1B3F02C3FD5BAC4F81C890566157E17D78BBF1CCEA80 + 0E7FBB598E0BE4C486932EA9532820215D4281581AD51F7BEF4931242E1A3CB2 + B6341B74E45F4B0DA82281C5BA262065D6AE8E01C4CD1846EE201A1D06E09BF2 + 4A1C23BFFA0686FAD19FCDF3539EFF0499E3A36DEEABBC518595C51578737C9C + A98D02F148FC187D82DC21787953C42823080AC01CDFE5B6D5006A27C822540E + 0370EC41213EBB7D1A82083F531B95060DAA06086BDCF1AFD9AB18F537F7C86E + 788587C337C0077AD22DE6B96E94BAD972EF525C5882CF62BFB46D1570B403A8 + 59FB6D8184FCA6D6B2477765BBE2B9B211231406240F0963D4DFFE0A39D29B5C + 306CD8508B766AB6F506BD459BEEA503AE5EBA61753B6CFDEBF0FACD0E0BDEA8 + 4907526010B981CB6F29802A850613D8427C396936A3BEE4AA464C4DDD8529D3 + A798768EE66AED0A2A458A0B8AB177E121C40927D8E08069110E0740D58123A4 + E5FB89FA5A0018A024FF3754485E898E517F1BEE3E0144D1E44AD172DF809AFD + F6605456CA20964810E931106BDE588FB98317513F09645977C0BA0F1D0E809A + B549A9DF2068982F7DC382BEB8260334A5CF91B3E223B226B019F5774E528CCF + 0BF3101F174F7FA6EC6F0E826E33834181205806D43CADA5570E8FA63ED83C71 + 1B05826501E0CC57D14493DA7105D05C07D81A1405702D5C20BBF3147F68E4A2 + 3FC161DCDF566E231267CF039FEB4E076D200C16208C305ABB42DBAC41D93D09 + B93254E2DE47324B00E63F9676B414EA3A62DA9E5870C30DA65AF04CA6429C47 + 0276CFDFC778E0CD27D6130F3965888A8CB268376E7F5BBBA25A5E8DC7558F51 + 53558DD8D089786BE46A4C8E98D67D002865979D25DE3BB60281837DE89B16C6 + 1B1687969DC4C8D7C6301A3C577A89587FE21DCC4F5AF832E066E88996CD0F15 + B4525D0769F9434865523AFFE70D598239831720C033881EEB953F97EF2AEDCA + FD8AF8FADA170818F80202550C79D57D717CD5F976EFDD591379CDC4B85DAF63 + E2D4F83677972564C12B2B7F0057F0B1E0F5A5E4DF92365F859D06C0086167DE + 17F01FE845A703950A213A11F62F4B670421396B1B91AFCDC58841A320AE2847 + A9B814CF94CF9118359B0E3C362C9EAEF6AF80E81C00947E2A3A4C7C7C7A0378 + 816EA6273B6E4A4FEC9CF56D9BF5BA3D49EACA89C47DE3E9F7545ECF1DB20889 + 03675337633BF764A83B01507A52FF88D892B101D7E4B9F00A6979CE171F3A19 + 4B63565045AAC3601ED496105E3C6F535E3391D301184515B43DD776E1E2C34C + F0A9A73B1A039AD44D98183615FB96A476D945F51800465537541117C5D9B85A + 9103715D199206CDB5E9199FC300FC5AD50BA017402F805E00CEBE865E00CED4 + FF006B8845DBF26C8AAE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_09_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000AC94944415478DAED9A0B5053 + 571AC7FF4980040443883C4505E56182AF62A582DA55A854A9DA875A6DADF5DD + 69A575BAADD3EE56DB9D4E753B3B6BD975BBB6DBA9DD5DB56AD5E2A3A845ABD4 + 56402D159FBC0ACA4301099207843C49EEDE736342C00412931276CA7F8609F7 + E6E69CFBFF9DEF3BE7BB2761511485DFB258030006009800B0582CCB49A3414B + 15EC5A0CD9ED8B4E3526889C88294BBF029BC36539F5C13E96F5A0DB0450726A + 13E5C3D32026799D530D57167C04834108D18CB7FE7F01C81BAE50E7F72EC2A4 + 058BE1CDE5D969C268F3AC5EA34251F6D798FCDC3E04468CEFB710EC0220A1FF + C3E7B331627C148644C738DC200B1D96FF9BAB6B507BA506BF5BF36DBF4D05BB + 0048E8B7494E419C9A6ED39CA32AC9CB033F3CA3DFA6824D008AC6ABA6D09FBF + 003E3C1F973AD06974FD3A156C0238F3591A45423F383ACA2D9D9054B87EFA54 + 9F1A23ABD0B4E5877A056E1340CEE611D48CD5AB5DBF0B4AD7A7A6ADF5FD173B + 316F63DDAF0CC083067F7D00AB5EF4B48701000F2216A5615EF3FEBDDF3500D3 + 166678DA8B0D191DBEF2EC815CD70078DAAA3BE41280B97FFCD9D3F7EF92723E + 7CD8350073DEFE01CA967DDD2E773C042D8D3E40F5E80E7DBF7DBB3B00ECED37 + 867A55B725D9E555E089B74E40253DD06F0C39ABFE07A08F8B26D701AC3F0295 + 3CA7DF18F20C0059B6A77D780E40C69BFBA0961FF3B48FFB64AEF47A93CB9560 + 5F0270D4942D29F51A70395C78B3BB7A7519C0ECDFEF80A6F5749F1BD21B29D4 + B4B6A241A9404AC4B0FB8C594BA25621E3F041F0E84B32A2A3B1542CC6B00081 + FB01B862A8271103652D77512E6D46955C41BF4A51DBDE06BE2F9F797F657C1C + 56248CB1FB7932FA2B728FA3A255011F5F1FE8D43A2C8E89C3BAC489F869D737 + 2E0278FD33681F30026CDD2831572597E3FA5D29EA95725C93CA012E0B02BF20 + F0F98311260C87801F44FF9946B0BAF106D8B535D83A3DB5C7B65950E3705535 + 3E282A062F940BBDA6033C258515ED2CBCBAA1DEB3009A5532AC3C791AB7E891 + 0EE0FA831F148880407F08E830150804E07AF1C066B1C1617398EB392C2F78B1 + BD4CD0746D28F8EE384ECE9FEB505FE55219569DCC83D7705FE6585ADD8AAC8C + 7FE1A984853D42B00F60DDDFA0559E7309C0AD36199E3E7A0C229118A11121E0 + 704C46BD58DE16D3CC31DB1BDE1C6FCBB119C4CE433B50B4E859F8B01D7B3825 + 10969CC883203EC03400150A6C99B5AD47084E032021E78C8A9A6478FF5C2134 + 7C3F248845CCA85B8CF7008240C8C93D82EDD327637490C0E1FEFE5B52868F2B + CA10220A845EDD0159451BF62CCE41E2D0493621D80530EBB50FA16F2F74CAAC + 3DE98C2CFCB5E8220ED6D7404C430809EA8C86EE200804735A141415604D6418 + 9E8A8976B82F16A5465A762E307210BC7DBDE8624E03FF16214EACCA27F0EF83 + D02700CC3ADFD888CC33858815C521343CD864DC0A049763151D3488CA9BBF40 + A45563C32389368DDAD37F4A6BF0496D0584D18399E3167A3E58199789371F7D + C70900AFBE07BDEA925B0148DA6598F9CD2924254F849FAF5FA7713B6971975E + 22D55515D8919EE2543F4D2A0DD20E9F40646208736CD019212F5323FF95CB10 + F80675816017C0E36BDF4287A6EC81CDDA1AA12DC5E5F8B6558E917151CCB1AF + 97AFE53D629A8CBA35086D8706E7F3CEA07091F3FB9313BF3C02616230D8F70A + 2912056BC56F2233E58D0703D053C8392A929B4163462030A0735223B3BD7737 + E3D669719A5E46BF9D978A503F9E537DA5EEC9018B9E08C93C40442644FFC660 + 7CB7A6D03100E92FAF83515BEAB269B34821F4FCC9F3484811598C771971FAB8 + 4DA1449040D00544E18573D832613492C3C31CEA87456999D7197B4F76014074 + BB5882B32F5DC650FE300B04FB11F0F24B30686FBA0DC0C1AA9BF8A8B20E2344 + 43E970EFBC29DEBD346896D0E570E94D080542881F1ACD4405498B8A922ABC10 + EA8F25F1C39CEA2F71772E821F0EE9728EA4C1E6E4BF77A90BFA0C00C9FFA3CA + 66840C1332C7A6C9CE0442A3D6E0C6A56AEC499F8CECAA3A64D73732CB258986 + 868646C4B429F097A9131CEEEB8E4A8D9939F9884A0CA797E0CE8D9BD646159E + 8B5C85B7A7BFD73B00F2CD10C7D8D06B67E690EB4D6FE75FC6451F23FC857E5D + AA3E2EC7172517CBB1716C3CE68F1ACA9CCBBB7D071B0A4B1034622802057CA8 + 2B6B70F08964CB67B26FD443D361B41B15BB2B6E615BF56D84C40A60309A3671 + 090852134CE76560CB9C6DBD03485DF92C0DA0D12DA36F067081ABA59F050659 + 469E8050C935A0EAE4383E6FCA7DA3F8C68F9751A321BB6F2A9C7B36CDF25EF2 + FED360F9F8218A9E17B31E9D80303F5FAB4FEA31FB503ED8D121F00BE4416FD0 + 3367098836793B26B36760EB939F7B0640A1970A7E021E5DDB9B7E744140482A + 65C88C8EB4339A7A7A34EFD0F304DB121DE4DC33C77E866F6C14E43205A4B5F5 + D89C9280D448536A65DF9060D3B50A244C1C0DADA173E52220942D2A3CCC99EA + 188094C7C701C676B701F8F846038E1835181CDE5900111035C58D389E148B20 + 1FC77F89B2B1A41675A16188880887542643696919E60C1E8485348465976A31 + EAA168F07C4DCB2619F90ECA1405925B2D981FBED4B1398054822C4AE5360047 + 2AAFE04F57732DE5A95992CB325C5BF98E536D7D5972013BEACA109F10431B34 + 406FD4A3F452395A642D88118F44704830739DA6A333020888DAB27ABC93B409 + 0BC73DDFF71120D5E930EB7CB9A53C2522C509B7BA1D5F27C53BD5567E8B02EF + 37C891F248320C06836584493404F0FDD161ECFCF6AA8386633E2E292C43CEB2 + 33881D32BA7700B333D7BBCDBC59E97BB3A019EEDDA53AE3D4F9E1FBC5CB9C6A + A749D58EC7F66D435A7AE7C4680D8269DBCA3891BC4D0645B90AF96BAF385609 + A6CC1CE57600BBEA9AB05DA1B0A481D148A1A5B81967A78FBB77377A87DB7AAC + B00A9353A7330F52D6C6C98893B4304B7D2F0D6EFE528327C29EC1C6B44D8E01 + 98BDF675B70350EB3448DAFD0F08C57C707CD8CC39529E9E58F032A2F842A7DA + 5A7E741738D1C3314438843926A6AD41900729B3546A157E3A77113FACBED8A5 + 0CB60BE0449688D2A9DD37015AEB285B8B8210AF2ECFEA194D464CA3BC9D6AE7 + 4BB606FA0963103B328E19758B7143A771735A343536E366790D3E9EB71DA931 + E9BD03B0FEB1B4BB458F0CF5F81753A114B6303581791E384B3FABB39CE8F8C0 + D53DD4B6EB5B3065D21466F48D94D102A27B34101012A984592E17C42EC1BB69 + 9B2CBB437D0E80A8B8BE887AFEABB9CCE6259910256572AC4F7A17AB93D63ADC + 7169D3756AC98179983BEB491828D364478A1DEB68B09516253404AED20F5973 + 3E65F6093D0280E870C9016A7D6E2682E34D5F8290CDCB832F9C8238748C439D + 93484AD83A1C2F3EBD8C99EDCD107A0341A2A1A94182B2B25266498C11C65BFA + EB530066087FC87D0DFE23EED5F20D3ED8B928DB6108533F194FA5A426C3DFC7 + B40D6E0DC29C1664D465747D20A397C136B9120A959CD97788F41F8EDD8B0F21 + 6270A4E70010917478E5D07228797278F3BCA069D2E28399595830F6B95EE784 + 15FB175118AA4774B869C9962968A30A29EEB43442A168854C250547E78DF821 + 221AEA588C0E166364500C44A1632C7B831E4B016BC9D452EAA31FFF8CAFAEEF + 841797C37CC7372A301EFB5F387ADF26A6B5B6156651DB8BFFC9FCDFA655227A + 700CC42109880B1641143206F1F46BF765AFBBFA0500B3EA15B7A84FCF6FC5B1 + CA83D0E93A6CEEE25A8BCC0305353F222C2002A3843136F7FD7B53BF02607553 + 945C23EBD1BC1BFBBA1FC06F55030006000C001800E0E97B1800E049FD0F2A27 + 7CDB131047450000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_10_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000094F4944415478DAED9A7B5413 + 571EC7BF93044890150202825679A80769EB836AD767EBA3AB6051D7B7565057 + B4DBA5D5635757F7E176FB073DB6A7BA3DFDA36E3DBE78945A7C401554280855 + 2BBA5215B43C1409B428280A018B7927B3B98333F2884C86A4247BCAF79FDCB9 + 99B977BE9FFBBBBF7B67128AA669FC9A45F501E803D00680A228AED264D4D217 + 52964379E78AA0C6E4835FC2E4D8AF2012BB51822EEC25591A6C8B004AF31268 + 57A906C3266E14D441E5855D301A7D3072FAD6FF5F00CD7525F4A543CB307EF1 + 72B8B8499FD194C962AD5EA342D1B1A398B0220D5E81A39D0E022F0012FA67F7 + 4661E8E8200C081E6675C3140C5CF941750D7E2CA9C1ABEB4F3BDD54E0054042 + FFE7863C84CF9865D19CB52ACDCF8767C01CA79B0ADD0268A9BFDE16FA8B16C3 + 55EA6A53473A8DCE29A742B700BEDD339326A1EF1B1C6497CEC854F8E14C5EAF + 1A24ABD0D43519CF04DE2D80CC0F86D2D3D7ADB3FD2E685DAF9A6EAF82FDC998 + B7FDA75F1880030DFEF200E25639DA431F809E88A235CC67FE81C3B60198BA64 + 8EA3BD5890C9EA33CF1FC9B60D80A3ADDA43360198FBB7EF1D7DFF362973C738 + DB00446F3B8BD6C6B44EA7581F825CA33DD83DDA4305FBF6D903C021A731C4AB + 4E4BB2CDABC0EB5B73A06A3AE2348684CAF900F4F2A6C976005B8E43D59CE934 + 861C034079CCD13E1C0760CEE634A89B4F3ADA87859BD458759ECD3BC1DE0460 + AD2921B21940D4BB49D03C3A6337434B32D351DED4DCA3F6C60FF4C3C1D9D18E + 03608F119AFBF551B8F90720287428C4623153E7266E7BD12A11B94044892016 + 8921A624E66349876B0FA4EDC70FABD776DBFE9EEB579052568EB817C72066E4 + 309C4F3C6123804D7BA0ED61045852835A85D85359701F3C10A1C1211C0409E5 + C218277215BB7165160E1F000A6AE673D7956B48ACB809B18B18C3641E58F450 + 8F75FFA8751E00440F544AC49CCEED1602890617B10B5366A38100285DBD82B7 + FDC4D272EC2A2E41FF000F68EFB62235261B1183C65B84C00F60E327D0B65EB4 + D9343B42AC1A541A06825BA02F424282E02691F242483E92641500A2CFAF9761 + EFED0A780EEA87D66A1D52961DB308A1C7003A1BEA890EDDACC6CED26B983279 + 1273CC0721F568AAD50088D6E49C41A58B1A12A908C67B14B262CF6290E7731D + 20F00288DCB003FAC785369BED2C120151C74F227C6C38BCE572AE9E85C094DB + 2547024128809A1625E666E520708C2F5AEFAB11620AC3B1D86CF27B0707C161 + 00B69CBB8862A30621238298639944C67DC744808515E270C6E12E0028BAFB48 + 9C979489E6111E70974BD150DE8CED933E404CC45A0100DE790F7AD535BB9A27 + 2333FF541E464F7A9E496EC45C9B49095CD8B20508E9C73350B6EAF782FAFA57 + E2699CF217C127B83FF46A03F40A112EC4979048A3AC02303B7E2B0C9AF21E9B + B534420997CB51A06A4160883F679C0F02291FCF3C2118C081C41C7CDA4F8F80 + 177D98E3CE512018005FC859A3A947B2211FED0BA98BCC3CBA4F435FFA641AA8 + 7FD6A059D9C2AC0E2419B2704E669D160C20E3602EFEE9A6C2E0083FE658A5D4 + 60886A04D257E5580760D65B1B61D296D96C9A55455313967E5388D071CF71D9 + BD2DEBB7EDFAD44D5AD4DD54402E9582F2F761201091E4280400456B99CFF4C4 + 731D00984C34EA8A1FE0CA3B9590CBBC29FE0878EB4D18B50ABB0148BFADC08E + CA4A04840E604CB787A06AD6A0E1662D5223279A01B86151D639C806057010F2 + B20B501E1B25A8BFD4A473F850AA35AF043E5C1D9906BB23933063D8ACDE07B0 + F36A05D25BEE9A7769EE7015B97210681D85AA6BD538382302637CDB96C57B2A + 35DEC8BE047968100203037A04E093A402247BD2F01BE9C5D535563F427CF866 + BC3DE9CFFC00C82F4362531D6F476CC8F169DB77C52894A89865898885D050A9 + C4023F39FE1211D6E1FCF610CAAE577400A0361A994FD993446949AB9373716B + 888C01CEEA51BD0AD1BE4B90307B273F80196B979A01D40B1E696B01B06A2856 + 227FC134C85DBB9A513C5261D537FF35C3323FDE2E9CCED5CF482F80CE0424CF + FA2D42FABB77B94EA93362E6915CF88EF3EB504F12E16497D7F0E9FCBDBD0F20 + A1A81C271F3776199157241EF868CA98675ED775B4F518999287F051615056D5 + E0CBC80918E8DEF1F1F9E3AB55C86850C26FB81C4693C10C4BC70198269D839D + D19FF10398347B9439753EB61B80949FEE635F4B0BB331614592D287210198E2 + E329A8AD71F925782D723AEAEAEAD1545689E40923E0EDDAF64F96EB2DAD88BF + 518BD0B1C1A05C69E88D7A0E0201BE62701CB64D7B8F1F00D90952B4CA6E000A + EF54E28F678F76484A75C58DF876D906F8F7130660F8E7EF330088148A1A68EB + 1E206DC17AA8F51A2C3F7E103EC307C1DD4B0A03AD67CE6121D4573DC4FB2F7F + 8C25A3DEE8FD0868D2E91079A98279401189DAB6E477AE36207B4218377AD68A + 44C0EBD151D01A341C0493391AEE99134348580864DE6E4C3D31DD1E42D5F7B5 + 3811938F70FF17F80144BDBDC56EE659CD3FBA1B0D722D97080980732B36C1DF + BD9FA07686EF49600010194C64748D0C042FB92764BF696B5B6378BA73D51AD5 + D0E8D568BEA141D1860AE6A9903F027E176A770027EF356247ED036E1AD4DF68 + C417A38211DAEF49627C325A7C1A575086F973E771A36B34274A6EA4CD400C26 + 0307872DD729EE63E68039CC12C874C51B01F19BEC0EC0683261E257BB210D12 + C345266136265BC2A62126FC2541ED900858387F0153D61A35564128292C45EE + 1F2E22D83B941F40CEBF47D23AB5FD12607B9DA7F4C834E73C12056459F2BAD5 + 8A8D2699A036368A5BB174C152C6DCB32010A99F4C03C5AD1ABCEC319959FFD9 + EFACFEB3B4BD65EE835E94120985A8021EFE32E601E54CDC656E64AC51D00E6F + 7AE5E2954C62EB0C81291B9E969B944ADC2ABB8D9CD80B1D5E8B390C00D1DD96 + 5A3A3AE5558807D2E6476E139E178F45EA8AAF0503206A0F81244336025808DF + 5D28ECF236C8E10088AEDE2DA263D3164136448CD67B1AAC1FB5019B5FF9BB55 + 1D1300AB96AC869136740B81D455DEAE82E92185D4E519CE1301ED21C4652C03 + ED65645E5EBE3BF1AFCC939A3500D62E8B63921B1F049217AAAA1550D76B91B6 + 328B83E0140088AA9BAAE8CD59F1B8D1740D46BD116B23FE84ED3313BABD0116 + 002B2E099A8DEB8C5AAB20380D00229218F717FD079F5DDE89E52FAC61F6EA42 + 0010B1D1408C9B6893C515A2A6EA47681EEA51F0661163D3690008D5C2E4D9B4 + 79FAF4E8DAE103C290BBBEB0FB08F8B5AA0F401F803E007D001C7D0F7D00FA00 + 3850FF03E5172CDB147D71740000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_11_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000AD44944415478DAED9A095014 + 571AC7FF33C33120C730DC448333E0011A0DA86B4013036C103C622C35EA2626 + D1C494ABD1E86AB99BD56C3615129394EE2615752BA724AEBA1A8D268A78E001 + 8A78821860F0E050584E61866B0EE6E8EDD7438F8083D3C38C3859FD5751DDD3 + 76BFEF7DBFF77DDF7BFD5A1E45517898C57B04E0110023001E8F67BA68D06BA8 + ECAD7320AFBC6455633EFD4761DCBCFF802F70E559F5601FA8A781360BA03023 + 857211AA111EB3CC2A23D7B33740AFF74544DCEADF2E0045553E7576C76C8C99 + 3907CEAEC21E9A3398BDAA552B7161CF6E3C3577274421231D0A02270024F433 + BF4E46E8C881F09384736E9C079DE9BCBEAC1C37F3CB316161BA43A502270024 + F45BEA3210199F68D639AE2A3C7E1CDEC1931C2A152C0268AABE620CFD1933E1 + 2274B1C958BBBADDE152C12280935F265024F4FD2503ED6290A442C1B18C3E75 + 92CC424FBFB6D72C708B00F67F184AC5BDF186EDBDA0DAFBD4E9CE3AF1ED0F78 + 7EEDADFB0CE0013A78FF01BCFECA83F6E11180DE8847A999E3F1EF76D906E0E9 + 59931EB42F6664E07CE7A91F0FD906E041BB6A0FD90460EA3B171F74FF6DD2FE + 75A36D0330E5CF99686DD8D9ED16EE21686AB417AB477BE8C437DFD803C00E87 + 71C8A2BA4DC936CF0293571F86B2F1478771C85A391E803E5E34D90E60D5CF50 + 2AF63B8C430F06807C8FDD3BA6D3ABB021F732847C03227CC5907A8B11EA1D08 + 67BE830198B47227548A34BB0328A8AFC2BCA307F0F8C0015035A9D1A26C814E + D38E60372146FA07214C24A2A178D170FCE0EF2E36D34935273B36AF04EF1700 + A24547D350DD8F8FC16183201008986BCA66155A35AD6891B7A0A9A919726523 + A0A1F084588441221F48E9BF61BE4178C24FCCC986CD0092577C0F75F3B15E39 + 686994EA544ACCDABF0FD211C311E0EFCF5C73E23943C017C089EF0C3E8FCF9C + EB0D7A34299AA1686D845C21476D752D160C198CF9C386F72D00AE61678D322B + 6F61E5F953183F2E16AE4EC2BB20380B9C996BAE823B9BB117F2CF23D1C3AD8F + 002CFF129A5E4600577D742E1B27944D1816196182C03A6C0E42FAC983581735 + 12A30343EE741AAA2E6DB668793876B3149E59058E0D80747C55560ECEB62A30 + 6A549471F43BEA417708029E137DEE84ED7BB7227DDA6404B80B7B6C37B55086 + 0D97F311003EF6BC998BC7BC07DC05811B8065FF84A635C72E8E9AD39AD36790 + D9DC84C89143E1E6E46674B803029B0A442E0257E65CABD7E2C8C17DC89E33E3 + 9EF6EA946ACC3C908E36270A7EFC00EC7CE9C05D106C02D09343D668C7D532AC + 2FCCC3B0514321EC709E85D0BD1EB0106A6FD7A0F55A11522726586CBFB8518E + 59E987E115EC01519B3F0EBC76021EAE9E26089C00242D5D076DDB199B9DEDAE + 5B2D6A4C3F9086B0280984F4DCCF022021EECC77360B81A4C2F5D26B88D0A8B0 + 666C34273B2B5277233BC089399FE09B88CDD3B73806806527735044CF2A8103 + 7D69E78C1DEC1E059D21B0F520F7721E16F60FC20BE1928ECEDE3B12F76E398A + F7DC34081A2146CD95467C35EDDF880F4FE47107F0D6DFA055E6D9D5F9F22639 + A61DCC40D8E8014C71338EB0B1C039758C3E0B811D7916C289E327F0ED841118 + 2AE6B610CAD892819D61D1B8EA9CCFFCF69107E3C81BD9E4AB178F1380898B57 + 43A796F5DA59732394725E86836D55081CE0D7698ABB930202BD13CACA6EC295 + 27447884A4CBCC907EE8102ECE7E1E4201B78F4B044045FC727C5DFA395D0BDC + 5127536073D2F74C14F40A80A590E3A2843D87C01FE40937A19019F9CE10548D + 1A94169722694030CED5D42278F850887D7C18089AB676145F3A8B63339238DB + 22000CD337604DCE72F84ABCE8173B359E30FC0E5B5EDCC90D40E2A26530688A + 6C769A55191DFE53D3B2D03F3A80F9EDC2773141502AD4A8BA5A834D13A21113 + 1C849CEA1A2C399B87B1316398C2D82897435455838D714F59B4C3A334CCF168 + EA29B8CCDA8495A71631000C060AB7AF2890FF7639995578E69FED1C018BDE84 + 5E536A370007CB6EE1BD6219D399CE00B42D7AC6F9ED894F75C9EFBF66E7E19C + 56C3AC124B4BCB91E4E68CA523C238DB23003A4700114983EDD37F4154C8E8BE + 07B031BF08DB1BAB997C64452094E756E3F371A310DFBF6B7153E9F598FC7316 + FC23C25171B31229C325F43D415601B812F30A76576F35D96C286BC63BD11FE0 + A5A8F99601902F4302439545436CC85952CA0519D2DA1ABA0068AE56E219270F + 7C32FE49B3CF9CA9916349662E73BE273906522F774EB658005F3D2645BDA812 + AE5ECE267B73FBBF8ED513DEB50C207EC18B34806ACE067B03A032B70EFB273F + 734FC7BE2B2A43559B1A6BC74474692BA49F100B22253D3EB7EDFB2C7CE4A234 + D51C16C0CCE0795813FF41DF03F8E24A499714D0346B21AE33E0A7C93156B553 + DAACC48C74E3129D14CDD8200FB3F7BDFAC3495C7BDCEDAE88E30C2076E208C0 + D066370069350DF8B4BEC154904867A6F185581A1662553BA71B9AF07E950203 + 42FBA3EEB20C3F8D8FA46B09FFAE7B56C92A31303A18ED863B9BB7C4E642E9DB + 581CB3C23200B212E4514ABB0128A8AFC4DC235B111021627E9382F4FE88244C + 1B34D2AA76FE959B897D8A7248A503515824438C5B203E899B6EFAF772452DA6 + FEF42D428604C1D993EC2AE94C1088CD0F633EC3B4C8997D1F01ED060312B20A + E01BED0F3E9F67EC4C4820C6FB7A5BD5CED25FCBA1914A984592D6A0C5B99C0B + F8581ACCB44346FEEFC555100F0E82BB48C8BC427706406ACEE1F9D908F71D62 + 1940F2925576739ED5A2F454E4BBC8E1EE23BC1301E1C3AC6AE3D96D9F6170F4 + 68B8F673818ED2328BA4DAC21B880B1D84DDB78A209548E0267685466F5CB9B2 + 10546A3574254E38F75621B79560EC73DC171D5C4546E82FA5D54C1A98AD01B4 + 43F7523B25C0F8D305484E322E89F5F45A8140B8212B83867EC3944842A117E8 + A03318BF5F7686505B711B53FC672165E27A6E0092172FB73B003D9D06C9BB36 + A225C01881439422A44E99C7F9F982DB3558706437E2E2E368E78C1BB53A8396 + D93D2652E954A66B0402197902880028B95881A3F373201187590670F81F1154 + BBCA7E05B08B133C1DBE13EA98F7F4AACBF5F840E30E4F707BC33BC5D3E28224 + 18D14F4631BF59081ADD9D5D6B1682BAE34820D4963720CA7DAC6953C4AAFF2C + 7D3FB478EF7C2AB3E108733E57321F6B135238194C39B696BAA4398341D2C1A6 + 91D775A40D0B41DB31FA2C04B54A8D92BC32A4D3C58F8CBE430068D5B4505352 + E3A0E8578FD65A157E79F9382203875B34FAD28E172897C7F908F40B42BBDEB8 + 043707A17314145E2AC6DAD80FF172F402EE5B62F71B00D17F9B2AA8D9DBA6E0 + B6A10E1E062FFCFC6A86D92DECCE8ADA28A59EFB7D22F30A4D1CEF0E812D8A2C + 84A2FC6224042563FD944DD6ED0AF7050016C26BBB66A34471152BC7ADC192D8 + 3FF56858AE6AA4623647E20FD3E7190B1CA5638A1B490522B61EB0102E5DCAC3 + 33FE09F874F217647FD13101109174D857F8235E1836ABCBD675779D29CFA256 + 1EFF23929F9DD4C5617310482A90556282DF2466DAEBDE964301E0AA6FCE6FA6 + 76576C456CD478D3B5EE10BAD783D3D9674CFB80FF1700369D5F8FC0E040F888 + 7C20F210C35BE465FA8A6CA00C7741A8ABAF4759C14D1C5C9089008F20C72A82 + D68AEE1B9557751145B5BFA2B8BE88395EBD2D83DE450B1F771A86B7173C7D3C + E934F280BB9771A799D4836B25D711AA0F6736437FD3007A1229A457EB6590D5 + 15E01A7D2CAA2B4459F30D085D8534100FB809DD70ABBC02BBE6A421FAB1318E + B10EB8DFA2F39F2A69B8816B748410382D9A66BC9B90629A0D2C027858F508C0 + 23008F003CDC00FE07CEDAB0DB13F1149B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_12_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000B1B4944415478DAED9A0B5454 + D51EC6BF611ECC8C040C2A3A4A323C340143502CC034450911E4A6A9A5D54D2B + BB5E2DD3A5CBEA2EBB6B75B35A77A5E5ED752D4BA4878F5250A1D01C4D451CB5 + 7C403C7CF154184461068479CF9C7BCE19679AC18139E30C0837BFB558078FE7 + 9C3DDF6F7FFFBDF7D9038B2008FC99C5BA07E01E003300168B653D69326A89C2 + 6F9E82E2EA69971E260A1A8BF1CF6E8717DB9BE5D28D3DA0CE3ADA218052E95A + 82C7D7203C61994B8D5C2A5C0FA3B13F2226AFEEBB0094F545C4896D4F62DCEC + A7C0F5E677F23893C3B37A8D0ABFEEDA89F8793BE03F6474AF82C0080015FD23 + 9B52113C5A820121E18C1FCE82C1FAFBF5AA6AD41455E3D145F9BDAA141801A0 + A27FB3518AC8A4C71C9A63AAD24387E0279EDEAB4AC129801679B139FA4FCC06 + 8FCF73AB319D46D7EB4AC12980C39F4F21A8E80F0C9178A441AA144A0E4A7BD4 + 24350B4D5890E310B85300B9EF0413935F7CD1FD4F41E87AD4B4AD7EF9EA6B64 + ACA9ED660077D160F70378E1AF77DBC33D00772216A1A18F87367FEF1E800973 + A6DF6D2F0E64627C65C10FFBDC0370B7AD7A426E0198F1C66F77FBF3BBA5DCF7 + E2DC0390FEDA11B435EDE87009F3085A1F7A07AB474FE8972FBFF404806DBDC6 + 9053759892DD9E05D256EF87AAF9875E63C855F53E000E0CE9C98AFAD771F312 + 39233C0A31816270BD3CD39CFB0056ED814A99EB922157450188DBFA5F484225 + 50C815101206A48684212D341CE1A241BD00806297DB269DE9CD6352147BE911 + 31622454AD6AC81BE4A8965723842BC0F4D011E44F240285C29E07307DE50EA8 + 953F763B80AB379B3123772726254D8037C7BCEBE4CDE643A150A0AAA61A0DF2 + 7A8C1D28C6ACE1A148BA5F429608B3376AB757823D0580D2F25F7E82DC8F8F61 + 438781CD6683C3E282ED451EBDB8F4FF373634A2A2EE32AE93C769C324783C3C + 14718386742F80D41559D0B41EBC234396F538535D52B6605E7E2E1E491A6F97 + 024A3CB6370D83CDE24067D4A2A2B202D57555F0D1E9909DF144A789F0280057 + 0DB9AA9C8A4ABC73EA382263C97A0F08BC2D055C369706C0F1E2D0D7ABF4EDD8 + 9D970DD993B349008E376BDD07B0FC7368EF30014CA53711784B56887DD76A10 + 1919810091883EDF550A2808E555A5F0BFDE80F72726910B33B5C3671FDC9CDB + BB01E84D1AAC3C7C0867351A84460583CF114040FE50A27BDF410A2C50727EDA + 8575093188178B3B7DBEFB00967D086D9BCC6DA39DF5D0AAA3329C6853D2E629 + F16F99B740E898020B04559B1A478FFC84A3736776D9EEEECD7BA14C5A81E7C6 + 2E828FF77D7620DC02D0992157B4A5B41C1F5F2847784C3069506007808A38D7 + CB7E16B040107085282E29C6388E1E2BC7C676D9C68A2D3B21E51A90103401DF + 3E95436DF55B21300230ED95F7A06F3FEEB6D98EAABDA9C1CCBC1F11346610F8 + E462C71C738E1D848E29B02D85BDD23DF86ED2648C0C1075D9CEB6CCBD58C7D7 + C3C83661F198E55839F11FBD03C0B2C3329C363561C0507FDA38156B0B040EFD + C3B5A6C016826571545D7406798FA7911FB6EB244A33A538356E2E72AE6C83B6 + 458FFCE78E62F880912CE6005EFE27F4AAB31E355FDDA2C08CBCFD64EF0782E7 + C5B302301B34F7BA46AD41B3BC85FE3D8A9C196C07C4A2E262CC19E88F859112 + A76D51002216FF8C94CCF1F015FB2096178FCCB93B98034859B21A064DF91D9B + 75D443EBCE9CC7CEE65AF807DD47FFDB1602A163A1BEF21AFC7526CC0E1F824D + 2595888C8F855020B4A660FFCF077020632A0609F94EDBA70050B340DC470F10 + DEC30179C90DEC5F5848A7E08E00388B1C1325674B610AF10657C0B103D0A66A + 4353590B5E7930140BA3465A61E5B72AAD29686C6E04BBA61E598F25326ACB02 + E0E96D8F1317B845A41713D207CEC1DA9475CC003CB678194CDA32B74D5B744D + A5C194DDE6F8DB4ADBAA87B6AA0D9B93E3C9812DC0EEFAE4BD523C3C318E1E14 + 8B4EFF8ED7460EC3F490615DB6C322B4F4F1C096021AC0AB7B1611857A29B87C + 0E4CD53C9C7CB994610216BF04A3B6D2630064F2062C3D71168111FED6734632 + EE54CFEF4A4D4088DFEDA3FAEB052751C2E563B03810676467717CF62408C8F1 + 80892C0096E42C244E190F4328E2E3EA99461C7CE11424A250870BA46E05B0F5 + FC657C585581FE21BED673F2DF9BF05E5C34D2248E373FCA15ED98FFF3090C91 + 0CC528BD06FF7E2486717B1600B3BE4E21E4019574D935962BB121F90BA48C48 + 770E80FA66886DAA77DA902572CEF4717105B636CBC911D9BCB9A1526870BF92 + 85ADD312BABC6FFE3E198A142DF86EEAC388192862D2941540CAEB1731FA3F12 + 0C88F68717F9D6D854D58A37C6BC8DA763173A0790F4FC5C12809C7183CEB4B9 + AC0A9B1AEBAC00A8DE581F1789A4A0C15DDEA7D01951D3D26A67FEDC750582FD + 7C21E2755E0E1400DE9C4FB1FCC04BD6B26B95ABB028F4552C4958D1F300BEBB + 70C55A0226F22DB0FEDC75FC363799714DDB9A7F5A7A12A3457E647AE2BA0070 + 025B8645A0567891AE7F0B8079412F60F5A36F3A079098120D98DA3D06E05853 + 0B5EAF94D3BDA1571B20AA51E1EBB8112E3F674D690D2E9203667D751DB26283 + 11D6CFF17EE117D20BC8EC6780F8C1FED6732E9500B51264112A8F01B8D6DE82 + 89DB36D0D32055FFA375226C4C5DE0D2338C461D62B2D6614C422C1AE48D8836 + 71F1FED4F9F617110672C5D9848CEF37C23F2AC0BAE6A04495DD67D3B230392C + B9E71340696A61390423EE835E63405C2B0B6B6FBD0A33D58F0D4DF8E43A096F + EC83501BD4901D3E897DF12311C0FBE3EF982ADA55F8DBB91A7887F8C0DB976B + 773F350D16BC740E437C839C03485DBACAA3E629BD55B00779AD97C1E17BE101 + 953FB6A43FEBD2FD0BF2BE813A48446F9B19083D4ACBCA912692E0B5F8A9309A + 4CD852F22B369C3E428E3322F8F41792E70CD099CCDF5F5065C7AE15E2D89222 + 660BA1C4E4308F03A07A67DEE9CB108F1A80F6F21648C747D85F409AEA4CCD7A + 0219A72A3069CA24FAE5486BD040A556A18C5C5C3D777F00F634287183C54170 + E450B07804F446BD1D00E5D59B981BB4006BA6AC65062075C9728F03A0B478DF + B7F4EB70ABBC0DFB672F86C4AF3FA3FBBE2A3E89EDF597303A3A9AEE7DA3D168 + 4D01A500B11FF802F368AF359ADF5B6C21585681210161CE01ECFF2082D0A93D + 3700DAAA9145E05D9E0A02726A8A6AD4E31993F3373B4AEF7AAB119138012291 + 883468DEA5A652401B35E961208D1A6E1D29D3141C0B801B754A24F64BC26733 + 3399BD0EDBFEB1747768FDD177898D6736806DF4423EF98A4AF54A57D75FBA71 + 9E98B17D3232A6FE85366934997BDF1602352852D2DC3A5A2068F46AB2F7AFD9 + B573D70190ED10CF6C9F09D9D5023C3FE6EF745D7675FDDA836B8863CA83181B + 1D07B5DE9C4C4B0A2C402C29B0854095C265724658F5D09B78F1A125CCB7C4BA + 1B00A536ED4D22EBF426CC899E8F409FC19D3648C18AFF741412C72740E823A0 + 634D99B685D0590A2AC9455342FF47ADD1EF550098EA78F5516269DE02CC9CFE + 84D5B00582A5142C03A205020580321FE33B0E1B6765513B4A7D17C0AABCA544 + 9DA00A112151E6018E30D0C6A9EF0929754C41B342813272664897CCC23BD3D6 + DF66BE4F01204D11633E1A811969E91072FBD1E72C101CA580DA362B3B5B86B7 + 933FA04AABABB2EA3B00D233937043DB80F0B0E1080B0DA3BF27EC2A05C70E15 + 22FB192922078DEAFB006E7D5842565380EC921DC8BF988B8041FE081B1A8EC0 + C1E6BDC58E29A8ADAB8544F7C06D035F9F05602B2A11F91772B1A7742764578E + 60B07808428225B72D8E0E1F2AC08185B24ED7177D1680AD1ADB1A88BD65D9D8 + 5DFA3D2EB75F80442C8178B018425F01CA2F9E47A2CF647A0BFCFF1680ADCAAE + 9510D925DB915B9E031DD4108945A8ADBE82D2576BFBF62CE0AA6CC70B4AEFA7 + 7D62F7AD3063007F56DD03F06707F03FA48AF3DB59BB2F0B0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_13_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000B184944415478DAED9A095453 + 571AC7FF210408200A2242A0D8800A095540D0B21C14B0A345ADD6A56367DAF1 + B4D6767AB075DAC1D62E8C3D6D51C773503B5DA7532B635BAB75A96DD5AA23AB + 20B6A2882801440C286B944D200B217993FB42224B302F246CB6FF733C2FEF71 + DFBDEFFBDDEFFBEEF7EE934551147ECB62FD0EE077005A002C164B7F51AD5250 + 67BE7E124D55174CEACCD92B04917FD9072BB62DCBA41B8740FD4DB4410045A9 + 49948D9D1C93C3D7993448D9996D50A9C64310F3FAE805D05C7389FA65EF4ACC + 5CF12438B676FD74A7367855299722EFD04184FDE93B8CE3058E28088C0010D7 + CFFA220E93021F842B7F32E3CE59E8D4FFBE25AE40E5A50ACC79FEF8880A0546 + 0088EBB74A52218C9D67D038A62A4A4FC7588F05232A148C0268A92DD4BAFEF2 + 15B0B1B3316BB00E79C7880B05A300323F9F4B11D79FC07FD022039250B89296 + 3AA446925528EA99C306811B057064D3242A66CD1AF39F82EA1852A3BB2BE3CB + AFB038F1C62003184603071FC073AB86DB86DF010C442C4A4E1FD377ED370F40 + D4130B86DB160352336E997DE084790086DB544BC82C008FBD797EB89FDF2C1D + D9126A1E80451BB2D0D6F05DAF26CC5D50DFE900AA474B2863E74E4B00D83BA4 + 0629551D2890D422C8CD031CB6891568AF25D9EC5560E1EB27216D3C3068C61A + D2BFF27FC137C5F9F0E0DAE1B5871F4114CF7DC07D8D3C000C8AA63DA565D85D + 7D191E1EEE10898A11E9E281F5A161F01AE3320C00D6FF0869F311B30C325555 + AD8D587AE47B44CF8D069BCD86F88618D74BAEE3693F01564F0BC6181BFB2106 + D074C8E2461AD3A307BFC2A490003877CDBA4AA54289E82A5A2575783E280A4F + F94D191A000B12BE83ACF9D89003F8474E2A8AACD5F0E5FBD05E60CBD6EE4449 + 3BDA7129FF32C62965D8302B0CA11379F7ECC7EC4A702801E8CA57A2C3E5D7B1 + BDB400B36686C2DA8A036B16076C2B36FD9BC3E6A0BABA1AE7AF9C4794AB2B5E + 9B190637AEE1B0301B40DCABBB21BF9366B6414C259149F1617E3E8EDEB80E0F + 7777F809A7C0D65A3BFB3A2FE072B4C6B259D6282E13E1B2E8129D1FD606CD00 + C7AAA7AD16053010834CD1BE52119235C63BBBBB80CF9F04FBAE59A567BF5B18 + D8B06D696FD08785B21D5967B2B082E786BF4E0FB13080573E8762801EC0544A + 3585B772329071BB16BEC207E1E8E0A8757B2B6BCD8CDE75FDDE61403C80B421 + 3AFCF32124870721CCC3A347DF69BB8E8C6C004AB51C0999E9C893B56292C053 + 33AB5CFABA9DB5F6C8ED3AF61706E4FC726921C634DCC447B1317DFA371FC0BA + 1D50B49D35DB50166406AFAF3F7D16A7DBEAE135C59D9E55ED2C5BF701D03B0C + 745EA05429F1D3B11F7078D142788FE9FBCD62D000F4679029DA5B2A4672D145 + 7805B8D1467707604DFFE3F48040BCA07718FC7AE11C663BB09110126C700CB3 + 013CFAF21628DB73CD36B6B7245239E27E3C0667BF31E070AD616365033B4E97 + A10CC380D4047999A7716AD97CCDDF0C2F833A00E2C672DA28BE8BAF1EC6B002 + 783B2717991D8D70F2D03E3801D0DB0B648D0AC8E50AC8E432040805FA30D079 + 41466E0612A67863D9649F7EC7494D49A501046CF7A6D82C2B64BDA85965B82E + 2CE6005EDA08A5F4A2458D97B43761EE0F27C10B9A00ABAE755B0780A8FEE66D + B4D5CB10ECE28269AE2EF8B1BC027EB302E965511706927A099AAF95E0D0A2E8 + 7B8EA503B028259A2A6D1161A5601592E6273307303FFE7574CA8B076C2C8BEA + 9B2B524415F8B4B214E3F94E3DAEAB5A34C68B1BB0D2C70B7FF6F707DF49EBEA + 09D905A8D424381ECF431F066959E9D815158E20D7718C007C93BF8B4ACA7D1B + 5050381B2FA2BD6040000C1964AA961FCD44A39B156C9D38FA6B776AA5E0362A + B16D4E581FA37E16DFC0B6ABB50808F6A767BFA2BC123C590B3E8E09333A960E + 80A8FE0AB5646F2C6C1C397875FADB58332B9E1980792FAE835A2132DB689DE4 + 9D5284EE3FD5C3FDA54D72706A14F8362E1A13EDFB2E65E296262C397E06D1B1 + 51906A4AE5FCB317717C71ACC1B6778D50D0C753FFCDA60134C91AA9908FA760 + C2646778B6FAE2FB5527197AC08B2F40A5B86E310005B79BB13AFB2CDC04DA59 + 56CA3AD154DA8A4371E1E08F75EEF7BEA80327E83C20165762A9B3135E9EEECB + 683C1D008D4D946FB22B0DBEAEB011457FBB414A6A83CBE3A00220EEFC4E49B1 + 3EFE25C5CD78792A1FAB85FC7BDEB721A700792ACD733534E3D892D9E06A5603 + 530054B7DCA4A2FE1304AF196EF498DF2EFD09C1BC50E300C89721B6BAC6E840 + 3A9733A63DA537B1435C4E0320B32FBBDA8AF4E5D1460DCAAD6B42626E011267 + 0910EBC57C8F500720B7E234B5FAE84ADAF308807FC67C8825C215C601C4AEFE + A306402DE3018DE9507935B69495D10048E25BE8301E89330516EBBF3F004969 + 89D4C1DAAFE9BAA3417C076FCE781F4F053F3BF4008E55D423B1A0483F139F84 + 0523C2DDD9E47ED2ABEA9074AE184911419AFB1DEF01E017CC7FE32A223F0D04 + C7474D579D260188983F1D50B75B0C40614B1BE2AF56D100AAF2253811E60F17 + 1BD3F6FE3BD46A2CCB1181C59B8040851C490193FA6D9B7BAA1C92796F20F9DC + FBFAC44B006C0AFF805908904A9045492D0640A5EA8030650B9D8D6B0A6EA1F8 + B97761C532ED4BD367F959D85B5902BEBF378AF34B71EEA957FA36A2B41F6E76 + 7FB6033BB82C384DB5A5679FC8A42468690F205A75FE2A1A785CDCBAD664B207 + 34767460F1B972CC080FA64BE3CCF46CEC09E6C3D7C1DE60DB953925604F7182 + BDB3B66650AB291A7CE1BA0A38D8381A0710B776BD458D27FAF2D2197C742D07 + 1D6D4A9C78EC69783B7B31BEF7B5B4FDFADDE24E4A89A28B254878280C4B2607 + F46877E5761D5E3AB90FEDCE2CFD0B171159791C6B27E0D4F3B9CC0AA1883F30 + 2B384C11999925B925A01C6CF0E60313B0D07D7CCF061AC30CA9F08E82CE1F73 + E7C4D2E78A4E396A6A6AE15DAF498842EDF678B9548903550DF8BEBE091EBE6E + 608FEDD90789FF786102D646FC9D1980B8F85730187A37E718F6955DC65427CD + DBDEF2178CB65791C47778271C7CBDC173E3D1B34F0090D298E481E53EFE28BC + 5583FCDB35709CC8C5C4075CBBEEEBD4244DEDD72BE2FEA40ACC5A73019E631F + 300EE0E47601D521B35C02ECAE565048E268FBDEAA7430DA3E9BA544AAC6B098 + 88188D512A1A00F95A448781A8185C3B2EECEC6CC175B1A58D26D7C976597700 + A4EE7864DC22242FFA84D9EB70F7FF2C3D1832B44B63486D8A562AFAF35084CE + D6243E1B2D2C854ABB454FBC8048D6A97D4B95771D15AAAE73A58C06A07BE748 + 5B9347CFFE8800C0545B33DFA38ED7FC80C89991F4AC76AA957A2FE80D80FCAD + 5333EBBDBDA0AA4882C4884D787AC66AE65B62230100F192B894482C5EF8B87E + 1798184944BC401706DD21102FE80EA0AAAC0E73C6CFC3A74B537A18342A003C + BB7F25D536A619D3FCA6EBDD5EA694EA01D0C77B8441758904414E33F1EF65BB + C96ED2E80240DEE0D61E7D064B172CA7CF69D7D65478BDC340F75BD9E5FEE4BC + ADBD0DE5A20AC47A3E8A1D8F7DD6C7F8510160DBE9CDD4C16B7B3027720EEC39 + 77931F31B643A5B87BDE2D0CC8B248364D9AEA1A9118B3B947CC8F3A001AD7A6 + 3ECEDD8E2FF23E844020C4B4A981B40710190A835251196AEBEAF0B8DF137835 + EA0D7DB61FB5007422BB399BD237E274751A421F0A85A7A7A7C1303897771EEF + 846FC5E3014F307AF051034027921336676C4403750B8133A6F5A8094818948B + AFE361FBD9FA7DFFFB0E40D743537B2EA6605B6E12C6BA8C83BF702AFDB588A8 + A9B511370A6A90137FE9FE05A013A90E3FC8D98A6F0A76C2C7DF077C6F3EED05 + 9969993DAABDFB16804EA4504A3C99800B0DBF422814A0B6B60E6B05EBEF99FD + EF2B003AA55FFB1FF55EDA5BA86BABC2B321F1D810BDF1B705A0CB20EA6C6536 + 42BC66192C7C4C06F05BD5FF01FFCD15EAF030F9340000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_14_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000B004944415478DAED9A0B5454 + 751EC7BF33C30C33832203228F5006F0059C8580241DF3F05010152BEDA19695 + A5B5AD96C79274DBACD3D9B476B7DA5EABBBADA6693EF299AD462A0F2515C904 + 917885C220CAFB3140CC9B99BBF77F818981C199614698B2EF399C7BEF9FFBBF + FFFBFDFC5FBFFFFD0F8BA228DCC962FD0EE077005D00582C962151AF5353E7BF + 580CD9CD5CAB1E26F28BC2F427BE049BE3CCB22AE31068A08A3609A0287D23C5 + E3AB307EDA6AAB0AB97AFE7DE8741E088E5BF7EB05D05A7385CAD9B708531E5E + 0CAE337F80C7E94DA66A550AFC70F810A62ED90F37DF708782601100D2F4B3B6 + CE817FB818A303C65BFC70163A0DE78DD24A5CBF52899867BF75A8AE601100D2 + F47F6E4847487CA2497396AA283313A37CE63A5457300BA0ADB6A0ABE93FF430 + 787C9E4D8569541A87EB0A66019CF97426459ABE6780D82E0592AE5098913EA4 + 26C92C3463D95726819B05706C933F15B76285ED6F416986D4746F9DFE6C17EE + DF50759B010CA3C1DB0F60F993C3EDE1770083118B5231C7CCED076C0330E391 + B9C3EDC584F416DF79F6E009DB000CB7557BC82600F35FBD34DCEF6F938EBD73 + 8F6D0092D767A1A3797F9F5B2C6F8286870E227AEC1109A25A750A8C7171B33A + EFE96DDBEC01609F5D0D59AB45C7F6A2ACBD05295171787C72E8AD6FEE3325DB + 3C0BCC5B77128A96834366D694A145C70FC1F92E5F5CADB88607C74DC0CB51D3 + C0655B96DDF1000C22687A3EED1B28FD447017897025F7474CE4B9E09399F32C + 82603B8094AFA1683D665743D6EAF573E92813B211302E80B92E292B0555DF8C + 2DB3E6C26FA4FB1000901DBEED266FA58F72CF2353DD8EE08993996B670E1FD2 + 4A29AA6810EFC6CCC1146F9FDB0760EEDAFD50B67E33AC003E2FBC84BD0D5508 + 0F0D0387C3610010C964325CC8C9C66BD1122C080A3499D7E648702801F484AF + 44373A14385C56828C2A296E281518271E8B89411318004E2C2E386CFAC8E642 + ABEC44DAF953582C0EC29AC828FB0398F3D24EA8DA336C3664A988F18FF37290 + 567D139EDEA3E1E3E30DC1483E044E02E6FFCE4E7C23005C0E173ABD0E59E7B3 + 10C277C6A6E9128CE0FEF2DDD2AE000663C81AED282AC4E6827C88BCDDE125F6 + A04D3A81DF6DBC3700E64877831E001C96137DEE84ECCBE7C06AAAC7969971F0 + 148AEC0460CDA7500FB205582AAD9EC25FCE9DC6E9A65AF8858E019F2BE8AE65 + EB00105D2ECD85EA46250ECD9FC35C676C3FE6D800B47A15D69EC94476AB8C31 + 4F4C1353960060D2B942A3EBCC9C0CDCCDE5D15D21CA4E00567F0075C7059B8D + B2A03499FEDAB96C9C68A8C3986037F0D8BC7E009C983F2E73E4B2BBD37BCD04 + 3C8E33331E906B52FB4EF535F86FC22CFA59D4ED053090216B74F49A146FE65D + 8257A83BD86C961180AE5AEDAA75D20AFA02E83B10565495A3AAB81007936761 + 94B3C05086CD00925E7C075A79B6CD66FBAA4DAD44FC915488268D0457E06448 + 2710C818D00340A554C119DDDDA07B36E83B139078E06C76160ECF8D877894C8 + A81C8705B0E9FB3C7CDD5C058F0057A374024029D3A0AD460E85520E7F9791E0 + 73D8A8952BE03B2910BEBE3E46E3804223C7998C33D81C2BC134EFFECBE5F41D + E9360278E10D681597ED6ABEA7F63D424681C3FB6545A36ED7A2B9A21D11EEEE + 58161C80082F1FB875EFC76CBC58821CBD068181620300A2ACACB358132CC663 + 934D6FDBD90C60F6CA75E854950CDA2C8BEA3F56EC2DBD860FA4E546B5DF5EAB + 80A0458B0DD1E1881BDB3FB6FFD795629C506A8D00E4FD908F7891331D0ADF3D + 60F9BD01BCFFDDDB5461DD156C7FE44BB2EDC71A14005386ACD553A7B2211DA9 + 8650C43798F79173F0594234DC9C8526F310689FD53521342498E9FFA5C565F0 + 542BB0335172CBB27A0348D82AA1CA5B7FC2B605FB103F3ED1320089CFAF865E + 5D6CB3E9DE8AFC3215A3C3DC98915F2153616403853D495307344F942AADC2DF + 4BE90551D41F5053530BE5F51A1C9E37959E214CE761516AE698F6F959038094 + E3ABA8E39547307B6C323E7A60AB852DE0F9E7A05357D8CD7CBDBC1533BFCE82 + 5FE418E8E908B026BF1187926660B2FBADD7F5176AEB90925F8A00BA0B5C2F28 + C5AEC47B11E82A345B5E6F001B333650FBA43B20508CC0A5D53F0D0F00626455 + CE6526F0214D3F96E78E77242166F395C8E478EC540E73BE392612126F91D93C + A6001CAAFD822EB703397F2A82A78B97C9C1B1DFCE10475F63B6A09E26674E99 + 375BB0F6523E03A026BF1907E83E1C2C72B128EFBB79A5881AE386783F6F8B81 + F706B0F2ABA7A98BBA33E8A85361EF82FF21C2F71EF300E29F799406506B7181 + 9602108947001572642E8CB3DBB3CD01B86F4B38A51BA780ACB2035B9276222E + 2861E801E437CAF0F4F9CB18E1CD47984A4007301183045987DC8656BC121964 + 06400E03E06A5329357BC77466EC692869B51C80647618A097DB0D408B4683A4 + 9C52B8FA8CC0036C3E5E0CF2B5FA19056D1D58F9E30DE67C67843F825C061E0C + B3D3CA19001B4EA650C71B0FD2E50A1900DB93F7639AFF0CF3004824C8A21476 + 034014BDE74368F86A2CF10DC7FA694956E5AD97B761FED11D080811435A5189 + 0FEF9D0789DF84FE37525D1B37DF6EF910E39F4DC5FDBBE3E11DD6B5E8BA99D7 + 808CE5172116050E7D0B20DA50741D67144AC40A05D818EA6F713ED27A9ECB97 + 42484F85644D40F6085EF0E4639EB7C780794EA65DC3564F2F74783433811799 + 7A653F2A50F8D275C6AB59007356A5D8D53C515A45015EC8FC0ABE2E7E38BDF8 + 298BF2E8F47A2C4FDD836A271626874C4427A5455171099EF38FC0D290289379 + EA15722CDBF5319AC60999A64F4402AF49DA70EC5972D4B238409270EB416630 + D2D066D6165561A290677A0CA0CDF5D527158D48555088BE770A73ADEE54A182 + EE02F3F54A3C31B67F1075AE4581BF15DD80CAE717F344CDD276BC1AF9169646 + 3E631980392BD7D81D80B5DA5D9C8BF7F3CF2226668621AD0740BCC00BEBA7CE + 62D2941A15CE5557604F512EBE6FAC8647A02B9C5DB9863C3A8D1ECDC56DB8B0 + B2182281BB790027FF194C6994F61D00AD5521AB13BBF87AC4CE8C8590E7C27C + 0227CD9F00206B82DA829FE8D5219BBED6A3CD09100A5C30CAD70502118F6E69 + C6DB76A4F6178C5D828DB3DF63FABE553F961E0E495BCAA9857B13704FD41488 + 442274EAB54600949D4A287FEEFA54AF86127C011F6A5DD76A55A5551A01201B + 28AA4A1D32975F626ADFE101C8942DD4825D89F0193F0681E382A0D5698D00E8 + 745D47AD9EA4D3E63ABB8CF70020F7EBE87402818CFCF5452D783761331E0C7D + C460CA6101D0B54B3D737031DAF9324C098FA64DA918E31A9DBADBA4AA1F80CE + EE2331CDA4F70240029F64F142BC97BCD9C890C30220ABB6F4FA54C44F9D6930 + 4CA4D42A8CAE493760D2BB6B9FB482BE006ACB9B10ED7A1FFEB37027F992F4EB + 0090BC2396E27AB11131B96B7E676A968EEC7ABA812500C81870B3A801F17725 + E183F9FFEE67DEA10154B7DDA0FE78E40974BAAA2189B8CF6A00F595CD90D5B5 + 2065C61B5811BD7240130E0B80A843FD33B52E75352ECB2E22667A0CB307D077 + 20EC0D80CC06B5B57568AC6B4262E03CBC16FF57DC356AEC2D0D383480EE17A4 + FE91F516BE28DC8684E989CC064ADF99A0ACFC2A6A2AAB319A0E88E6873C8447 + C31E47807B90452FEEF0007A74B0602FF57ADACB983655C2C403443D33C195A2 + 022C0D5881559297AD7ED95F0D00A2ECCAEFA855C797414CAF0403C401867180 + FC606AB6C703581FFBC66F1B0011191C971D58049DBBDAF08329699514215444 + BF39FE370980880C8E6486289317337B042D321904F5AECCF2F68E00D0FDE2D4 + EBA75EC1D1AB073021703C3AAA55487B36FBCE01D0A3DD79DBA9374FFF19619E + 1138F2E4C93B0F00115931BA094486159E3D00FC1F051722EA019FC3DE000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_15_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000A864944415478DAED9B795014 + 571EC7BF33C35CA03028820222971240018F28018C0211E5CA41CC59D18DC658 + 293429A36EB6B64265ABB258F963D5A41275D54D9424261A89495C5634414041 + 8E101C0115440E09CA29304060EE99DE7E8D4E4007689801C6986FD554F734FD + 5EF7F7D3BFF7DEEFBD1E381445E16116E74F007F02E803C0E1700C07F53A1595 + F7E58B90DDBA38A2CAEC5D172274CD31707942CE880A8E83067BD046015C3D9B + 4C09444A783FF6D6882E5295B70B3ADD54F886BFF3E002E86C2CA50A8FBE8047 + 57BF08BE503448757AA347354A397E39F12D825FFA0612E7408B82C00A0009FD + F3FF89C6AC4077387878B3AE9C03AD61FFF68D3AFC5A5A8765AF9FB6A8A6C00A + 0009FDDF5ACFC22F22CAA839B6BA9A9505BB193116D5148605D0D554D617FACF + AE86402430E9626AA5DAE29AC2B000CE1D88A448E84FF37037CB054953B89279 + 765C4D925168E9ABDF1B053E2C80B41DB3A8F00D1B4CBF0B4A3DAEA6FB2BFBB3 + 2FF06452FD1803984083630FE0B5B513EDE14F00A311875232DBAC43C74D03B0 + F4B99889F662447AD667E6A69E310DC0445B35874C0210FFF7E289BE7F9394F6 + C122D300C4FDED3C7ADABFB9E714F62168A87414D9E360CA6DA867B64B5DDC86 + 3D37FBD34FCD01E0E8981A1A89343A35161F3B082B70B17B79DCFD10EE19924D + 1E0562DFF911F28ED409316BCC50AB5C8ED8D347B1604110A40597F07D7C025C + 274F19B4B8E50130316992B67561D3F993080B0B414B632B5A6BAA91FAE46A4C + 16588F1180ED2721EF4C1B33432355CECDEB482A2BC692458BC1E3F15073BD16 + 93BB653810B51A7CEE5801909D18579343E987EA72ECABBF8640FF0006801587 + 8FA2D2222C11D8E29F614F981F40CCB66FA0E83C35A1A6AB652DA8EDEA40854C + 81D2965A340B04F0F7F7630008797D2B54D959D958EF3307EBFCE70E286B7226 + 389E00EEA6AF44377BE4F8EA5A25B27FAD423B4703B1480C9158C46C25F67670 + 9CE2380000517A563A762C0CC1CA591EE60310FDF6E75076679A6C88AD88F18F + A585C868B885494E6238CD74C0243ABCADB856F487CF6CF9644B877E7F00029E + 109D8A0E9CCB3C87A3D1F1982DB1333F80D1181A898E559663A7540A91939031 + CEE7DD31CA981F1E008FCB434343032E97142235FE69388AADCD0060CB01A846 + 1901235152DE059C6AA88583B71D6C6CAC19D3A30140BE5FAE2C434F7D15BE8E + 8D416ECA7F2D1B00070A6CCF2940765B131C7CECC0E57220E00A4C0240945394 + 83D9D020BABACD44006F7D08554F81598C1AD38E9FA5F8AEA1CE609E31330400 + B1959839E75E00627E5F2274F77B6D7D0D4AA4F9785F2E181B0083191A89CEDD + BA8D37CF67C239689AC1BC3900902670ABEA32F6442C47C30F174C03B0EACD0F + A0E9CD37D9ECBD52EB3978E2DBEF6035CB1A425BFE80BFE9D47AF4B62BA1ECEC + CB32B52A1DAC843C6608B4B7B787A7A7FBA0007EBE58047ED76DEC8B0C87A3B5 + 089987D22C13C0FEB2721CBA751D533D6C0DC7340A2D64753DB0A7E1447BB863 + A1932BA65B5B61868D0832A5928E9866FCBBB21AC1A18F4268D567BC7F1E909B + 9F8B79222BEC7C7C0944BC3ECF670F9F3511C0E6F7A0915F32AB79AD4E8165A9 + E910CF990CBED88A39D6DD2407AF4D83ADF42CEF19AFE946CB65DF6C42D2954A + 2C5C387F0000B9BA17172EE463ADA7333607FA0D286332809589EF40ABAC18B5 + 590E757F5F418C6C2B2E81A3AF84F9DE7EA31B7320C4EE65C170B2160D5AD7D7 + D7AAF159731BFCFD7C0D003A5A65B8542245F292B988F1B87F81C4EC008C191A + A9B6E596A040DB0EDB19D6CC93F750F2F059D43243D80EA61D457439BA79903E + 8000B8517F032D5575F8243C18410E12A3654C0610F5C65BD0ABCA4D36DD5F91 + 27CE009E36CCBEE2FA6FF83E3E62C8277F579BB30BD16C2F81B3F30C5C2DAF80 + A447897DE14170B2B9DF3C875231DB8C94DC01005A7B9A296BBE0D26092773D8 + 45C01B1BA153D59ACDBC522BC7A2E319705DE088D68A4E24CDF34182B7E7B0E5 + 88A197CF144035633A9A9A9A315F24C2CEA50110D323C150EA0F80980F391080 + 8069F3F1DDDA1F2706C08D2E199E3A9D876974E283DA5E642584B32E9B70AA00 + 553D3D583B7B26FEBAE0115665FA03A86ABB46457FFE38B39E58B1B589F13A2C + 00F26688A76F64F584D8A8B65B8EA77FCA838D831809B60EAC8D1035CB1568EE + 5522689A3DEB32FD01DCE8A8A1561C7E0C7ABD0EB91B4BE06CEB3A3C8088F5CF + D3009A585F902D009E150FBB16F921C275BAE995B2049055FD139578E62FD069 + 75487F2507DE537DC61F804CAD43D8890CF0F83CFC10150A4F5BEB51D553725B + 86E974824412A5A101141A0024672651DF367D89DE36057B00212B03007DAFD9 + 00A8F57A44E65C818A0B1C5DE80D2F9B9103F8A4A6115F35C93047C4C7178BE6 + 0C796E7E460D0380F64405EF9D0BAEBB1AB72BBB90B1AE00EEF69EC303209920 + 87929B0D00D1AB698751D0528F9C97B6D043981DEB720A951C6F671D8754DE89 + 19F46830A94D8EAF9E5C6FFC64AAEFC5CDE97D1F31008E480F51C9F9EF32C9D7 + 2D692B2ADE6E2053E8F18F00A20E75DF24678A80FDEF8E48992D65759049EC98 + 4CB0B1B1096E2DCD48F69F3564391201C15B8AB032250422F7BE2193576F8D0B + 89A5EC86C1E84DDBCD6ADE208AFDABB52B6DCDD8907E044EB3DDE1E1E6019556 + 89DADA3A84F025F84758EC90654904A4B8F9A2967BCD90793E2189C3CEB8BDEC + 0084ACF01A1B0043C2D118764FB574E383EA56CC0F5A80298E7DC31F014032C1 + E7E9005A3373F0D7621D1A0A89B9D7D1E42830CC3A49F2F5D18A8358E513CF32 + 0212B78C3F803BDA7FF127ECAD2CC5F2B065B016D840A5531A005CBC78093BE6 + 476085879FD1B227ABAFD273876C50121DF3E489C8745B53CB455E6229994B0C + 0FE0C7DDBE945A61DE0E90AD8E7095A8729C84F090DF33C5FE000AF37E417497 + 063E745E27A66F57417767ADD0A18EA3C32F1C2D149305B0779F64986E139159 + 67A2DF366C0AD9CA747E23FAB1F47849A6E8A0D61C4B408FB01BA18F8632C714 + 1AB901804EA783966E22A40F90C964502815861523229144009BA922F004035F + 1492A7AFAF1320F3F5426622649100CA5BAE50EB525F809B972BE6F904189EB8 + 3100CC712D6D5EAFA13F5AE8E80F39AED169987DB5FEF797B67A3D85E6B20E1C + 7CEA0822BCA30CA62C0EC0A28F7DA8B901FEF074F3321836150031DF46273EAF + F8BE86A4C8E401862C0EC0F6FF6DA28ABB0B10111CF9BB617AE2A2D6A9EE03A0 + B9637C280077CD47B8ACC2DEA70F113F960D80EEDCA867BF5C05F174A1A1098C + 168042A9447B4D37E2DC13F0AFD83DF799B748004464D1223E2512BE737DE0E2 + E2322A002D37DBA06C5161FBD2F7B06171E2A0262C120011E90C9F4F8D617E06 + 23114F610540A950A2A1B1113D2D0A4479C6E2DD88F7E16237734803160B80E8 + 4C651AB5256323A24363C111520300B47774A05DD6CE0C81C438D9DA610AE27D + 9FC10B81AF60B6C323AC6EDCA20110EDCDDF4D7D2ADD83F088F00100AE955F87 + 0BC70D21B31E274F19FE4EF3589B7EA00010919121AF2B1B8B031733A14F0094 + 5E2DC3D67949782EE065936EF0810040468697BE7E0A729B6E78CDF16400FC5C + 5C845DCBF70F486AFEB00088487A1C7F381CD3DCA7C2C9D991790D76FCB974F8 + 39CD7D3800109115DDB894700406FB432A2D41E69AA2617BF93F1400226655F7 + 64DF3F70146FAE324C6A1E1A00772190BC802C68985AD76000FE0F70871CEA8E + 6292AE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_16_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000ADD4944415478DAED9A095454 + D719C7FFC3EC080C03888226B2EB80B2B90346C52A2E586D8C9A45D3C41863DD + 8EA9C6B4A9F5B427DAA4A935A64DD263A2515397A8B15A8DB880685C46C528A2 + 6C8A026E6C02C33A6FF6D777DF38B830C3CC30238C8DFF733C6F7CF3EE9BFBFF + DDEFDEEF7BF7C1A1691A3F67719E017806C00880C3E1B49C34E8D5F4E97FBF0C + C59D0B76DD4CDAB33F12677E0737AE906357C30E90A581360B202F63252D10A9 + 103674915D3F5274FAEFD0EB7D211BB9ECE905505796439FDD3E1D035F7A197C + A1C8C2ED0C66CF6A554A9CDFFD3D86BCB203DE81312E05C1260024F47FFC7A1C + 7AC504C12F38CCE69B73A06BF97CAFA41437734A31FCED832E35156C024042BF + B12A0391C963CC9AB35579999990048C77A9A96015407DF96563E84F79090291 + C0A11FD3A8342E3715AC0238BE6E144D42BF6B7090537E904C85DCA3191D6A92 + 64A1616FEC310BDC2A80FDAB7AD12367CF76BC17B4A6434D3FAC631BBEC52F97 + DF7AC2003AD1E09307F0D6EB9DEDE11980F68843ABD863E6373B1D03306CEAF8 + CEF66246069BAF3CB9EB9063003ADBAA33E4108089BFFFA9B3FBEF90F67F34C0 + 3100A9EFFF88A69A1D8F5D627B08B6DCB41DD5A3ADD2EA35E073CD176AC7D6AF + 770680ED1D6AC81E5535D761C2DE6D480C08C4DAE4C9AD52B2C35960C2B2C350 + D6EEEA3C87566A8CAD578BB0B938170A652DBE4C1C8F81DD035C1C80938BA6C5 + C7D2502E114124164151588CDD936680EFE64C004BFF0B65DDFE0E3364AF066E + 5B8FA14312E0EE2546D6B9F37827340CD3FBC43B19806277A79AB4A4EB8A4ACC + CC3C8CC46143C073E343D94021FB9C1C69535E85A7C0DD3900C62FD901AAEE40 + A71BCDADA9C1CD7A05AA298A3DE7CEE3A09252E31AAD43545424B85C2E845C11 + 2E155C42B4818F958949EC750E57821D09C054BE12DD6E52626BE1551C2C2E40 + 338F86582466E7393942A807D45C68555A740FE80EFFAE5DD936040051DAC103 + D83E6E22C2BD258E0318F7EE66A81A8E3A6CC85655514AFCE3E245EC2B2D8257 + 80077CBCA5E07B72993CCF670C8AD96B443CE3517CFF28E4895A0090A9505252 + 0254DCC4C69454E702688F217BB4E746315665C921EA2684473731DCDC3810B8 + 0920E2DF37DA06001E870FAE1B9705E0C671C3E1F44358396800F447CE3A0860 + F13AA8DB1901F668CD0539BEBD761D5D7B4BC017F35ACE8B79EEECE85B026032 + FD3000727D6DAD0297B34EE0FD7A079F053A02C05FCE9DC67FEE96C28F314F46 + DD2432FA5C371E6BC86890C718E4190D93F326E3CC02680220E00AD923990E99 + 678F22A2F42EBEFAA0D201008B3E85BAE98CC32639A0CC9EDF9457807F5E2D68 + 65DE1280C7C3DF04C0B4003E0CA049D3887D07F6E2C43B97E0EFD1BD15048700 + 5832648F0A99309D7AF03002FAFA812B7850BE190C34B44D3AA89BB5E0A8B8EC + 39530690067AB110CC2D802C18BE3BB81C63A41065175E4014371E2B5356B70F + C0D8851F41DB2C77D8AC39A5EE3D80467F0EDCA5C6CEEB3506D4DD6D02A550A1 + BF5F57F4F3F341A8C49BFDAE4249E17A5D3DB22A2AA0E6F1101119061FA9B455 + 0620D16202A060EA86B3D96730C837019F4DFADAB500ECBD5E820F2F67C35F66 + 34D850AE84AA528D59B220CC90454222145BE81C8561BB0E2168706F48453EAD + 320001A037E87129379BC98425184D71F0C90765E4254F3B012C5801AD32DBE9 + 00C8E82B0378107AF15153D280E7F542AC7E610882BD446DB62B6950614A5A26 + 9292135B2D80A61AE04A7E0EA68404627E4C047EDA26772C0BA4CC5B069DAAA0 + DD46C9883DAEC2DA5A4C3B224760AC2FEA6E37225427C08631C321E25A7F61B4 + 31BF145BAA2A1015297B6401ACAEA9C6959C2B8864002E898B401F1F1FF6FA8C + 8D19CE0560CE90BDFA3C271F9BCB6E43EC2D00BF4C8DDDA92FC05BE86E53DB5F + 33E09AFD7D101818C086BF5AA7425E7621D0A4C0F2413118F9DCA3FB010E0318 + 3377110CEA7C874D3F6EA2C4538DBA9BCD58377C008632F5BC2D52E99448FC2E + 1DF1C983D92C505C5C8A3226CF2FEC178299B250760A3C30A1668FE99B4E3A18 + 0173E740AF2E762A80841D6980BF10C14C8ADB3A6E844D6D88A1CC3BB5589E7B + 15010CB0E2C2628C65467BD900663114702DB6733900C448D4F64310880558DE + AF37A684F6B0B9ED81D24A2C3B938D18A9047F1C1C0D99B48BD5360E03206F86 + B886329B8CD92285468FA4DDE9ECE7A39386A3BBBBD8A67626917AC09E368F03 + C8BC7E846E50D76372D4548E4D0092674D630094DBD5C9B644E9F518B0339D29 + 73F9C89E3ECA69F7B51540F4A7417493AE11971795A28BC0C36C643C51004424 + 94C53C1AC93D6D5BFCCC8944925460FDFD44FAA6078FC30AAA96EEFF79387BFE + C28222788BA4D60124A44433C579B3530138A21BCD4AFCB9E00E0A952AAC89EA + 85245F499BD7CBD36FB400D89BB78BFEDDB145D0501A14BC7B973C385907402A + 410EADEC6CDFA86CAEC79AAC4CA4951420A44F08CACB2BB076F00424F40C37DF + 8036BEB839F8E5DA1600AF6D9F4CE7E9B3C1A9E3227B41B16D6B40674780C660 + C08E3BF7B0EE562D02837A20242408948EC299E3E7702AA92FB396B8B5D9DE14 + 01F2D213F4EBBB5F8277AF2EE8AD8DC1D657F6DA0660DCFCA54FC6196DFDD55A + 7A493EFE762E032A511744C5F569A9FCAAAAEFC1B3BC119B52675ABD078980E4 + F7F23076431254FE0DD0308FD8AFF59A83F747ACB0310246873E19006D88CCF3 + B5C555B8A2D2233E260E7EBE7E50EB55D0331944476B91975F80690260E6733E + 56EF25CFB8854DCFCB7055930BDF602F945DAAC1BE199988ECD6D7C60898B7B8 + C38C531A153EC93A8AEF8BF2D02F3206C1C1C1D019B4ECE32D316E02702AF334 + F6BFF8168224BE6DDEAFB4BE06BFD9FE15CAFD05AC797583165ED5FE487F5BCE + AE0956011C5E23A33554C72C8027395AFCC0D3A057580462FBC6B18FB75ABDF6 + 110024FC954C7FB24F66E1AF5ACB55602368FCE8A6C149AE0EC21E1EF00A303E + 685515D46179C22ACC889F651B00337B084F444B7F984F9FAE3A8E2171432195 + 4819D33AE89935C20480843F110150AB50E05AFE7574812786058D40B04F287A + 489E63BFBF515384DC8A1C9CBC7D0C42091FDE8C79D3569B52A18254118023B3 + 4FB76C8EB80C80E58797D239CAF318183388FDBF0900A53546DFC30088481650 + 31FF14650DA054CC67CA789E16E921ECC207DF83F7C8062BD96A2BCFADC6F7AF + 1E427C8F812D5FB80C0052A125FD2B1613C68F8787C0D3B8E03161AFD1AB2D02 + 202210F40C2C323D48B490CF1AC3A36FABC9066BF5D57A2C8C7F0FF3137EFB88 + 21970140F4857C0DBDAB740B92878C320BC0B4006A0D5A364274F78F6D013099 + 4F0D7A11AB53BFB07F4FB0230130A34BA730B93A3C3A14FE7EFEAD1640D3E787 + 47DF08C77824D753BA070BB696D2E11E63FE8DD839F843F287EDDB14ED480044 + E45175C9A1B948193D1606DAD02A03105902A0D252ECE893516FAAA4A0ADA2F1 + A75F7C8CA9D1AF5A34E172008848BDAE9434203C24A25506B004808CBEB6518F + DA3A056B7E42D8242C1BB1826487360DB82480A2EA427AE2E611484919CBD602 + 260055F7EEA1465163BCE8FEDF07983200394AE08389B25FE1B5B837496AB4A9 + E32E098088A44579D331C4CA625B16C0C2FC6B08E685B3399F843B51578F6E08 + F1094354B768C8FCA3CCCEF3A71200498BC91B0620362E96FDE32702E0D42939 + 764E4D636B7867FD8ECB0220DA72F11BFAB38B1F63D0E081ECFCCF3A7E01398B + 4BEC1EE5A71600D3077ACCFA4478868AA055E9E0D714808DD37638B5432E0D80 + 886C62CCFA613AA45229E6CB96B63CC4FC6C0010CDDBF3269D597C1047679FB7 + 9AD6FE2F0110912A51C81339BD339600FC0F075301EABB34B729000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_17_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000A5E4944415478DAED9A095053 + 771EC7BF4908240181704800915351AA58BCEAADE0288AB8D5F5ACAB565BDBF5 + D875ECEAD86E75763B533BDD6E6DEDD8C5A95BADB59DF5D65651817AE085C75A + 04154404B94422208400B98FB7EFFF42B21CA1BC1090B4FA9DC9FCF3DEFBBFE3 + F7F9FEFE47FE2F1C8AA2F03C8BF302C00B0026001C0EC7B2D368D05019DF2F84 + AC3CD3A68B89FB0CC3D82507C0E5B9706C3AB19BF54B265B05907B760BE52C50 + 2362F45A9B6E5490F1190C066F0C8CDDF8EB055057719BBABE7F0146CC5D08BE + 8BA09DD38C56F7EAD44ADC3C7A04A35E3B08CF80210E0381350092FA17BF9E8E + E02121F0098D607D030EF496EFD5C52528BD5D82896FA5384C53600D80A47E43 + D55944C54DB51A1C5BE59E3F0F0FFF0487690AAC00C8A5774CA93F672E9C05CE + 76DD50ABD63A54536005E0C2CEC914497DDFD0902EB929690A39E7CE3ED340C9 + 28347ED90F6D80B30290FC513015BB6285FD4F41699F69D0CD95BEFB3BFC6E73 + 593703E8C100BB1FC09B4B7B3A8617003A230EA566CAF3DF1CB20FC0F879093D + 1D8B151959D7BC7C38D53E003D1D6A57C82E0033FFFA734F3FBF5D4AFE78B87D + 0012DFBD88C69A83ADAAB04F41CB453B317BEC0AA5EFDAD51500F63B4C401DAA + D5906CF7283063631A94B5871D26A08EF453491E365DCDC08EB8191821F17740 + 00DD3869D2D12D73E6B1EFC0F7F641A09EC25753667401800DC7A1AC4BEE9180 + 6C15717F4B6616868D8DC195F31938356B1172F71FE90200B2A33D1D1B2BCD3F + B10FC27E21F0F7F5C79D3B7731BF7700826FDCB30F40C2FA8350D59DEAD1C00A + 6595C8A9A941A95C86A72A9565BF8F508881DE5E88F2F643A5A20E2B33D2316E + EC18B83809206BA885EC6E3E5655EB7F3D00CCD357A22A9512FBF2F29052FC10 + 52B50242B1007C81135C45224B1DA38A03B54A8D0679239CC045D88030F40DEC + 0B1E8F07270E1F6917D2B041EE84159B1E751EC0F477F6425D7FCEEE80D8AA51 + A7C6F65B993850F88009DA5D22025FE80467AE33785C27F0797CA69E0B4FC894 + 022753A96A50C34B2C66DC371D17E05EDE3DF4CD2FC2BFDFAFEC1A009D09C816 + 5D2C2FC3A62B97A073E7C133D00D3C67AEE5587300C45DF2DD89F9F09992CF6D + DADFE43E8FCB8352ABC08D9433B8F5DE53B2BCD702027B00EB7642D3C90CB045 + 7B7273B02DFB267C236817DDF96D8E130002BEC9EDD6EE0B9BCAE6EE33E7F05C + 907626154989DF624CC804C705B037F716BEA001F48E14B770BD79F0EDB9DF1A + 80D97D728CD47F4037A5604304B626267512C0DA6DD0345EB33B480E5456F7A7 + 14E563E3B52CF80FF26911BC416B8446619A6330692DE0C14DE446072B6200B4 + 76BF75FA9B01E80C3A9C3A7D1AB7D63E20802C10EC06D05E40B6A88CEEB8669F + 3C0571642FA6A3331A293456AAA078AA82AB918B7E624F7AA833F5FAF55A35EE + D7D641E144414C777601617E0C84F6D25FC81759B6532E9CC6BBAF7C80592FCD + B31DC0B43F7F0C9DE2AADDC15AD3DB67D391CB55C0DD5F444FB6D4A82DAE477C + 5030960C0CC1107A32634DB7ABA538945F8CD4475204444A1016186E71BCB5FB + 3C8EA9A9144B1F425B66C47F5EFBD171009040969EBD0249B417E3BAAB8CC2A7 + 1386B71B786B256567E270452D860C1B6CB5F32320CCDB44FB7EF81E97FE988D + DE6E128E6D00FEF437E894595D0E80B89F2F5241AF36C25FC1C3EEA993E0E122 + A46FDE71D3521B284C399686E0E8016DC67EB3FBE6ED466D030A8A1E208F9E13 + 24BF7E01FD7C06D806207EF546FA21F33A1DA8B580EAE8BE6DDC91E3F00A7507 + BF4283A38913E0E922627DCD7DF70B91545C8E61C362AC767E7AA30E8F4ACB51 + F2B818FAEA1ACC19B90A0B862CB6046F1700360E75A4D3C565D89C9D0BBDC680 + 9D138763B4BFC4A6F3271F4DA5478D96EE13D556C950525A0A99AC06B1810198 + 1B21812235C7BEDF025357AE855173CFEEA09B6BFDE56CA43F956298BB185F4F + 1E65D3B9C70A8BF0594119E33E91A25685F227E5903E7982577C7D303B2C0071 + 413E10D2594174E6DBCBF601885FF9360C9AA22E0530E7E405E4D7CBF1E5F891 + 880D62D7E971280D53C61D4B87383C046AB50615D20A84D2B3C3C45009124224 + 9088846DCE7348007B72EF23B3AA0E5BC7475B9C62AB841319F49C408B57C3FC + E9C0833050ECFA8BF5ED0640DE0CF18C151D3E98D9214793DD00E2DE984F0390 + F6741C2F00B4958E2580EBF60118131F0D18153D1D2DA3870A254E3FA9C3F127 + 7278F2B9383232B2C373AE9E796801A0D1ABA995C75EC7D890897873C4AA76FF + A5D26626C8A1943D1674A5428E9385393851701B45F5750808098440E0027951 + 392E2CDED0FE8994E9C54DCA8E2F2C0052F393A9D5279621CA67309297A5B303 + D01319A0351A71869ED4A45637204BAE82AFA437FA48FAC0D5CB34CC65666661 + A987004BFAFA7578ADE619B0FCD002EA5AD5252486FC1E9FCEF8173B00D3D76C + E8F0269D12D5F2D59A810EFA86B414C70B72E899621EFD93D71B21C1C1F0EA2D + B6D4A15318B532198AEF95E0DAC2D5F4D497DBE16DCC1970B5E412B5F4E85C38 + B9F0F08FD8ED78356A2ECB0C9812DE3D009A646ED7698F6BA111F64244783F04 + 05F7B1CCE90D4603F4145D1A4CA5C5FD202F56D7BF7AB60CE3D76763DAEEF130 + 4894CC4FEEEBAB72E1EBEAC7320356AFEBB6E04BE43598796C37FA85452222A4 + 1FC41E62680CA68557B292430098B789FB4A951279B7F259BB4F7468C736EC0F + 0C4739BF184E022E061B4762CFFC831C56A340DAE70329ADAAFB3AC00650F850 + A8C3A2D94B2CFB48C0C475AD4163D93603B89D7917315572241A5D585DBF8C63 + C06EAE1A54901BB3E822BD5B8383F34E6168E00876005AAD24778BFEB07F16E5 + DC978B50FF70DA713D0C74DF6076DF9CFEE6EF15155214DD2F4262E41C2C8A59 + C604D2FA7AF4B35359153F63D77F77E0A7A253F00C7685482C40BD5489977831 + 9655218701F063EE61EA931B1F60FAA4048BDB2A9D29EB9ABBCFECD7ABA0A63F + 154595F44F5E193CE085A8DE83E02DF2618E4B1B1E23BF3A0F72A30CAE3E42B8 + F909C1E572A053E921CB6F40CAF20C847A853B1600323919BABD3F6624245856 + 71AD757E660044048281CE16955E89466523F46A03538FC8C5D5B9CDEA72E53D + 19B64E4BB27D51F4590020DA70720D55CA2B44FF88FE6D0034779F881C639A0A + FD21C7497DF25D6B6CFB9A9E045F952FC3BA91EF61CD98BFD8FE5EE059012063 + F49A93CB103F659AD5CEAF39007553A931984A028064426B91B4AFCE97E39DD1 + 6D83773800A4E31A95340831E30643E4ECDA26FD754DAEB3719FBC5B90953640 + A874C33F13BE445CC4544E3BF7741C00445BCE6DA6AED49D43D4C0A816EE9399 + 9FB09769DDCF9AFB6600C471F2424559A3C5C2414BB17EC2FB100BBDDA0DC0E1 + 00143CBD4FCD3C108BF849F116F7CB1E97E1C1FD42E6782F0F370884027085FF + 7F708552099D5A0F8D5C0789D01F33A3E66071CC72047A0475F8E00E07802871 + CF24CA3D5208712F2F26DD2F5EBE8C6F120F22581C8A9BE5D7F1B0A600D2FAC7 + 96FABE6E7E08F38AC0CB01435B2C79B3914302A0272FD4DE82AF101D3D18D26A + 291A1EAA71E6ADABDDF2100E09A0AAF1093561E7CB18173716991959F87BEC27 + 2DC6EEDF3C00223235963A3F82B6528FCBABB2DBFCB3E3370F80CC09DE383A1F + 1F4EF91CF3A21775DB03B002F0BCEAB907F03FD3E5BFDBDD17E71F0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_18_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000A544944415478DAED9A795014 + 571EC7BFC3C05C0233031A194104D1555011EF78242A1A0F347189B25113B331 + EAC6986834714DED26B5BB95D5C43FCC51BBA51B6BBD8FCDA251A396BA044459 + 05450C2A72960787DC23733030774F6FBF1E87800CDAC3303259FD56513DD374 + F7EBEFE7F77BBF7EEFF5F0689AC6D32CDE3300CF00D801F078BC969D36CA4467 + EE5F0875E54F2E5D4C1E360A1397FC1B3E7C21CFA5133DAC4705D9298082B48D + B44064C480F16B5C6AE856E697A0A860444FDDF0CB05A0A9BE415FFEEE358C59 + B0107E425107A7D99CEEB518F5C839F23D9E5F940C599FE15E0381330092FA19 + FF9C8D7EC323D0337200E70678B0B67C569696A1FC461926AF38E3355D813300 + 92FABAFA34C4C4CF706A8EAB0AD2D3215524784D57E004405B93674FFDF90B20 + 1009DC6AD06C347B5557E004E0FCF6693449FD5E91115DD228E90AF967D39EA8 + 51F2147AE1AD63ED8073027072533F7AEAF2E5EEDF056D7EA2A65BEBDCCE7D78 + E5D30A0F03E846839E07B0ECCDEEF6F00C4067C4A38DEC367DD721F700BC9094 + D0DD5E9CC8C6F9C80B87FFE31E80EEB6DA15720BC0CB7FB8DADDF7EF964E7E31 + DA3D00733FCE405343F24387704FC1968B7662F4D8153AB763475700F8CE6B0C + 3D560F3D92DD7E0ACCD99002BDEAB0D7187255DE07E0090F9AF6EEDA8DC4F72F + 2354DAB70D04EE00D61F875E73D26B0CB9A27C653596A69E46887F18CEBF73D5 + 0D00EA23DDEDC5655929035E3D7104B288FEB859948F9C55C5908B835A207006 + 90F051320C9A53DD6A46A95721B3BA16F5CD6ADCD3195AF6F7148BD14F2AC7D0 + E0600C9449DB9CF3797626CEE9B5183E2416D917AF60EBDC3D9810F1A2770370 + 0C5F891A2D36EC2A28C6D9B2429437EB20968BE027F265FFE72BF281D0478466 + BD1E3C231F06AD1EC10201664746617174342A1A3558999E8E49F11321F41521 + 2FEF26DE895E8B3746BEED3A80D9EBF6C2D878D66D435C65B1D1D87A3D17074A + 8AC097F2111822819FD8B7CD31021F01F83EBEF0E3FBC197E7C77E361A8C50D5 + 68A1ACBD0F5FF82066440C14BD14ECF1D5F76A10658BC696B95BDD03D01943AE + E8E67D15D667A44123A6200BF5075FE0D3EE98D6E689847C31BB15F9DAB7B485 + 8646AD45786838F87C3E0BA851DB08ED9D661C7D33A51300D66E87A99319E08A + 52CA4BF1495626FCFB8921918B3A3CCE59F47DD93F3B10F1031024F5ED8044A0 + 6C14D27E4C47C18715DE098098FFFDC5F3E81D1DD426DD6D4C77A04C14FB99EC + 7F5CF41DE659300FA2CFF7E1B3704EA41DC7D925575AC603DC01ACF91AA6A64B + 6E9BE4C1E0747F4E9D9A2D58F24101AC498BC18AC65A3D4C5A0BDB9715621144 + 7C1F9436E961B65920954B210F09843C58DEC63CC902BF0759D03AFA4402BE10 + 199919D8F4E2D7881F30A36B007464C815E92C3CCC397614BC3021843D0468B8 + D38860DA0F8B070FC094B0104448E56D8EAFD71B71B6FC160E96544069B3A15F + 4C286401F236D177986F1D7D92313FE55DC5CB8A24BC37E143D700CC5AFD052C + CD596E9B75A64DD9B938DE5001B14C80A6720356C7C6308FB11826D51FBF0CF1 + C3ED52FC3527177D0685A0AF229C8DBEC3300BA255F4C9FEAAAA2A48D4526C4B + DCED1D00C8A066DA0F290854F8335F4CD839231E8383E42E5DA358A546D29914 + C48D1A8E20B9BC5DEA3BA2CFE7F942A7D321FF6A21525764B908E0FD3FC1A2BF + D6E50048F48F569501261A0767FE6C9E4773EF5A1BAF1421B5A101C3470D735A + F87E2E967620FB8EED45C1071504148F338099AB36C06A2CEAB4D18E0C4D483E + 8D46CA823F8E1CC2F67957758E19DC7C94790DE3A68C65D3DF59E1232048F449 + 81243A76FA080E269D404CEFA19D07E04A843A92869940C61F3DCD56F853F3E2 + 5D3EBF8E29868927D3D13F2E864DFD8EA2EF30DF64D641D9508FEBD7AEE3CB59 + DFB24F02CE0066AC5C039BA9D06DD3CE4C08F936C8841297CF7DFDCC796819E3 + FDFB47B4297C144541CF4C96487F576B34D0EA35D0699B1022566060CFC1181D + 360ECBC7AE72B10BACFC1D3318B9DBE5005C158F36B1DB8325F7B0B5A8129131 + 11ECF85FAF35B246C98448C494B7C84009628265880E0A4414F359792ADFBD15 + 214F0170187255A7CAEA98E2970F450F09064AC5181424650AA80CFD03450891 + 88DB1D9FBAE782FB6F86F8B66A8F19F2B4DC0610FFF66F180035DDEDE31980F6 + B2700470D93D001366C632D3B2E66EB3A9329B51C854F6D266234A744654184C + A8666688EBA29EC39C90E0C79E9F957AC73D006424C8A3F51E374A516614A9EA + 7147D380E2FB352862FE8A557568A66C104B25904A6490489999213376282D2C + C39AB8F17863C8B88E2F48DB5FDC9CD9F68D7766809999CD25572AD9A8DE6832 + 4269B12240E80F2953D1E532193341122250226507384456662A4C1636EEDE2D + 83A8B616FB46FF8A533BAD33A0C9A4A32DCC75C8EA30F7E9F07BEBBBDC3C7B63 + 95B7B036E314E246C4A157F0732DF37A8A899C8519223B0C5B690B3BC0215B95 + 5A8DF2BC621C5FF02E7A4B7A706AC791018C277AC68E89A8D655E2E2BBD72113 + C93BFCA156DB0C7829CA2300EE34EBB1B25089C484F9EC77ABCDCA9A27A6CD94 + FD916AA2EC6B9026AB112472D99772B0B9BF029382B88F1EB3D22A580087F3FE + 457F9CB21A52B11497571692B9023700B357ADF508008AE902717BB76071E292 + 36663B8A7EC1B5624CEB19823F4F9AE3523B240306AC388DA48309A004162C18 + F83A36CEDCC2AD0BA47C154D9B0D9E2B809F0B0D183F7D1E020202DAA47E6B20 + 24FA24F573B3AF63BD4D8C709AEF521BF53C1ADF0648600D32A2A9CE80D4A597 + 101914C50D40EB1F4B7B421F1C5F416BA50D080D0D65BF1B2C76D88EE83B3281 + A47F4D6D0DAA4AEAF097E99BB160D822726F8FBC39D2E777E6FC035B2E7CC6AE + 341B98296862DF456CF41FFCBFFB01ECB8B28DFEFEDE7E8C8A1DDD2EF58948F4 + 593056FB145CA3638A60611514C230FC76D4724C8D7AA9DD5BDF52D51DFAECED + 14ECB9BA1DF76DF59047F8C362641E89D502A4AEB8D4F27ED02B00A4DFFE91FE + E4BFEB3079E264A7858F88449F144822E30310EA0635D4B58DD0AAB5F0F70D40 + 6FFF3EEC7E52E14D3433CD96FAB5BC5122ABCCEA121D76CD3FE4FABB414F03A8 + D2DEA3A7ED1F8B57983AE0ACF01139A2EF306FA2EC5B92311403C66C33B32689 + F8423E7C7C7EBE67B25F59A2C596595BF1EB2149AEBF1EF73400A2215F85D3D3 + 67C4B30B1B0F47DF61DEFA200B886102A6B5F98EA4571BD995E6CDB3FEDECEBC + 57017875DF4CDA3F5204B95CDE12FDAAEA6A04C87A80E7676FFF51D17F5894D9 + 064D5513E4E69EF8DBBC1D18193AC6A909AF01F069CA7AFA067505E17DFBB2DF + 6B943528B97E9BEDCBBD427A22482165C7FF8F8BBEE38D12A5A5B074D42AAC9D + B4815DFAEAA85DAF0170207717BDBDE81BC4C60E6353FF626616B6CDDA8B41BD + A271E0DA6E1CCD4F86162A884562F8F5E0C34FE80B93CDDE45AC461B5BE10D4C + BA8707462269D8622C1EF1569B5F82783D80DCAA1C7AD9B1D7306ED258DC28C8 + 63467B092DCF6A876EDD2FA6B32BB250D5580965535DCB7E456028A28207624C + D8F3ED1E87BF18006A838A1EB36D3062470C85EA562352965D7C64EA7695BC06 + 00D194EDA3E9CAA60A1C5A78AAC3A2F57F0D808C07B4462DFBC6E68934C815C0 + D3AA67009E7600FF03D0D2ADDB0D4939DA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E524944415478DA + E59B095854E5FEC7BFB331EC9B222A20953DE855D1C2D0B21BE596A6699B96CB + BDE576BDE66EA85D23C5D29BA15921A2E0D57BEB7A2DD3149500650910C512DC + 12141141100566861996D9B7F37FDF33383881CA0C30F8F4FFF1F070E69C99F7 + 9DDFE7FCD6F73D70F0FF5C385DFD05BA5A2C007C109FC9D86352324962659578 + CAC1F56F6B1F39005BE7BFD4A9131A8C0CF69CB88CA25BD2470242AB003ADB0C + F6A61742AB37E24A456D1281F0665742681580B193091C397D1D72B5167A0383 + 82724992AC0A53BE593F52FDC800307432818C0BE590AB74660885E592536A3D + 5ED9B168A4FC9100A033742E80B3D7EE4041013C02105A05A0D5772E80AB1512 + 56710B08C4EA0A6FD6E6AAF5CC387B426815808604282AE1B1C73B7CC2AD8BC6 + A352DC6056FC5E08E07070E986D8AE102C00ACD899C17CB96014D43A63A74E5A + 2F57118575AD42A0B677A94494AF50285ED9B57292C4AE0096EF4867BE7A7F34 + 94DACE0560341A88D2DA0742B858527DF9EBF7C70CB62B8065B169CCD70BC740 + A13101F830AEE35D206AC1785C2997E0D82FD7A12400EE2706BD1ED18BC6767A + A96E31C1D298134CF4E29721D7183A7B5E28357A249EB9CEC2684DF45A2DB62D + 19675F004BB61D67A2978C43A3BAF301DC95E24A29D2CE95112096D6505F2F47 + CCD2F1F605B0383A99D9B6F41534A84C0022769DB00F0512FD797C3E9EF4F769 + 0673B30ADB974DB02F80455F253131CB26A05EA5B78FE2BF931A99020537C5D0 + EA0C387DF10662574CB42F80855F263231CB5F45BDB26B0050A1556185A81EFF + 4EFC053B3E98645F000BB61E6362574C82AC0940E4EE54BB2AFFC9BC97CDC71F + C7A7202E7CB29D016C39CAC4864F8654D175167057D6C625236ED56BF605307F + 7302B323FC75024067EB786D92F2F20A9CBF701145D7AEA1B2F236EAEAEAC96F + 1D89851C787878A05B376FD42A01D9EDD21530E8D2F373530BEC02E06F518799 + 1D2BDF40ADDC0460C37FD23A6C22835E07516901C4E557A1D728E1E8E402A1A3 + 13040221B83C1E783CBEE97D063DFB5E9D4E078D5A09B54A4E8BA202C6883D2A + A9627761615687F6081600E66DFA91D9B9FA2D481A3BCE028C46238E1E4BC40F + FB7F007802B8B97B832F70804EAB815EA76515A6A5316334559F1C2E175C2E8F + 4D8BF47D0E049056AB4663BD0C2A45838C619875F939AA3820AB43FCD402C0DC + CF0E9A00C83B0640656525A2A2BE80582285A7770FB6C6D7A81444490EFE3C72 + 2C82FAF7872F31770F771708F83CF6333ABD01D2BA46F63357AF5E456E561A71 + 0D1EB1186710E521ABAD2656A13ACBE88D33CEE5A6DCE8500073FE798089FB70 + 0AC44D16F0D9B7E9360F2CBD538AB2733FC3C3AB3B6BEE4A45037C7AFA61F088 + D150197824DDB5ADE19A36E6295C2A2C46F2D1C390884470767183425E0F994C + A4206633353F3B25A5C300CCDEB09F89FBC7DB10B5D305323333B173471CBAFB + FAC3489C574F4C78EACC391831FC69F0795CB6F2E3132B10909B4EFF72B996C1 + DE48EE34E54357A6685D407FB45A3D76EF3B82CBB9A970727127D66084A8BA52 + C73086B9F9D9C97B3B04C0AC4FBF67E2D6BC035183ED0072737311FD75347C7A + F5814EA38677771FCC5BF03E7AF5E8C65E170AB870E413A539CD533F6CFD49A3 + 3342AD67B0FB703682FCBD90B06F0FF990A97CAEBE53AE331A8C6F9CCB494A6A + 3780F73ED9C7C47D349D0030AD526FDE9B61D560AA06290AB30EA1474F7FE849 + 240F78220881C1CF82AEAFF088C22E42AE85E2F7976624EF8C0D319D21A7620F + 64216CC43034D4C9B02FFE2B68341A623D5C88AA6E351AB4BA90F3674E94B40B + C0BB91FF63E222A6A3C6060BA0696B557838D45A067CBE005EDEDE58BC7C395C + 5D9C89A973E02AE4B57B236EEFD11CBC3AE639DC96695908DF6C8F22DEC425E9 + 52853A694D5E5EB67284B5D9C1E22BFD75DD7F0980993601389A9080842347E1 + D5CD176A4523C22322D1CBD7C7A4BC23AF7D9A37C9773F9DC2FCB7C250490050 + 08B7CA4AF0FDBFA2E1E6D90DE2EA5B14C4E2FC93C9B13603F8CBDA6F99F88FFF + 82EA7A13802FBF6B9B0BE8494EBF94BA17BE3DFBB0D1FEA549D301270FD6ECDD + 9C78B8AFD53FC4F969F09BFC42F3AAD8FEE4D398F3FA0BEC951B620D64A464CF + 4C4EC0F95F72E0207442CDED32A9B25619684DB164F1D566467CC3C4AFFD2B01 + 60DD4ED5E11F0F2239E5042972BCE0E1E98915AB3F048FF8A60751FEF711BE3D + 7230E50CDE9DFC3C7B6C2041A1A84A0D854A83B8CDEBC83C025223D440A9922F + 3D979D14631380191FFD9B895FF71EAAAC04B074E102081CDDA156CA3173EE02 + 0C0E1E044712ED9D1CB81DA63C9584D43398366184F9355DB829AFD5E097EC34 + 9CCE384E2A4701C4551557F24E260FB409C0F4357B0880596600DBF6FFFCD001 + E43211AE9F4E448FDE7DD860346AEA7C76540F277EB3E9330FDF68B9DF3B460F + EB6F3E3E96FE2BA68C7BD6E27A894883864639B66DFC075B6657559642ABD70D + BC909372C56A00D33EFC17131F39DB2A0B3876E4308E13F377747245C8F01178 + ED8D374859DB14F5ADD5F621F2D3CF67F1FAD8E116E768EB4E2BD7FDBB6320AE + A9263D83147279DDCA732753B65A0DE09DD5BB98B8F5735055D776005B366D44 + 8D48CAE6FD69B3FE8E810307B0F99E46FF8E9694AC7CBC3A2AD4E21CAD162B88 + 1B9CCDC9C0A9F4143670CAC45507881BBC631B80C839660B883D90F9D0012E9D + D80B6FD2E8D0FA7CC28C05E00A9DE1E6D8D682A77561EE7199E7873C693E4ECD + 398F7161212DDE5F21D5A2B4B80807BFD9C9B6D8A2AA8A8B79D9494FDB046027 + 01604D169835E36DF8050691424484759BB6C2C5C59505D0199271FA02C63CDF + 522F51A31E12492DB67FBE16AE2413555594888805F8DA0460C7BA39A4106A1B + 007AA7288080C7FB4326A946544C3C9BF65C3A38FADF95AC33BF61E4732D77CB + EA94B485AEC796C8D57027DDE7EDF21263FEC9A436555FAD00986DAE041FE602 + 742123FFD82EF8530B203978C6E2087648DADAD3F4CF6B6F0D403C61E88040F3 + CB9CB39711362CF8EE25B653A45BF91AF22B6F6CC0A6B5AB5800772A4A405CA0 + 4D93B700104B0058D30DBE377DAAC90208808D9BBF24FDBA4BF3E01CB0B180CB + 3101E1B4232E5039955788E12103D856992A6FBC2756D4C9A488FA24A2FD2EB0 + 7DED6CF382485B247CE9420884EE2408D66155C43AF4EEDDEB81D3B1509A66E6 + 98CF5A7E937BCB067ACC34FD3D73FE2A9E19D2AFD5914B4BAE232E26FA6E102C + 2016106C17009BFFB90122898C5DDF7B77CEDFF0D4D343DAFC596B25EFD2350C + 1D1CD4EAB5CCF4342427FED49406AB0FE79D4C7ACB2600310480358BA23FFEF0 + 3DB232B3D865AF67860DC7B4E90F4EBFED7182730525183AE8C956AFC5C66C43 + 595905E40DB2F61542311FCFB66A51B4F85A11B1828DE8D1AB0FE90A55F8FC8B + 2D702035B935D2D6C2F0E2951B0819D8B7C579B55A8D15CB96C3C5CD0BD5A414 + 3668D4C16DDD4B6801601B01506B05009A0A972D9C0F27576FB6199A336F1E42 + 43875A05A0AD72F95A199EFAD3E32DCE67A467E08703872010389066E8563131 + FF7E6D1DB30580E88859566F8D25FC780069A9696C04EEE6E58EC8C8B5EC5295 + CD45FF7DA4B0B80243FA075A9CA32B512B3E580D23789091624CAD685C4332C0 + E73603B0E58B19741ADCBA98869E7E8FB325F1A4C9933170B06DC1F0618D6370 + 5080C5EB03070F233139958DFED5B76FCA5512452F9B1744DA23A161133638B9 + BA7FEC45FA02BA9DB579D37AF89194D899BB9B376E942162FD677076F584A4E6 + 16B46AF52A62FE5F583346877DBFA143873A735D7D0BBD7DFC1EE3F178F07473 + 26C1711DDCDC5C3B4579A98CD41D1F7D0295D6401457D1E8AF77F3EC119C7A68 + 57519700A012FAE2F8507004A77BF60E14D0BD3FBA17F0D9A76BE0DEC1106A6B + 6558BB613344B5F56CACA915DDC1F06747A0BCB24626D72A47A7EF8FBBD02500 + A83C1336712E9FCFDFDDA377207B677CBA7960FD9AE508F0EFDD21E35F2F29C3 + A751D16890ABD9CD535175053E0A5F82E0E060ECF9DF215C2E2C32D6DCB9F9E6 + AF998947BB040095D0B0892B797CFE169F9E01A6ED6E122467CF9C8229AF8D6F + CA0ED68B5E6FC08184247CBB3F010E4267F69C44548988954B30765418144A0D + 81A26421FC5658C4D4DCBEF9E6D9ACC4235D028085F0E284D9A41F8CF7F6F115 + 383ABA40A1A8879FAF0FDE7E732246873D07A1D0A14DE3A8D51A6464E762DFC1 + 639048EB49B3E5CE2EBDD3A5AFD52B1661CCC83FC3D94948D2A1BE19C2BEC3C8 + CB3BA7BF743633A4A6B2F4729700A0F2CC0BE38681CBFBCED9D9AD2FDD1EA71B + A51A9592548A3C3C1BFA1442860CC2138101F0EDD11D9E1E6EEC67EAEA1B515D + 2342E9CD5B387FA910B967CFB3DD1F2DB5A9D0AED3A0D7EB8686860A96FD7D16 + DC5C9D580077215C2FADC496EDFFC19DDB1528FAED57895EA71BF520089DFE0C + 0ECD0E1CE79E11E032E12EAE1E42BA72CBE30BA0D3AA4903A5333F20612E0068 + FBDCF48004ADECE813243AE2428DA4C627775EC161B0D1D327E0908B8B7376FF + A0277ACD9DF9961902CD0C91513BE1E1EE0E3E9F879F539320AEA97C2004BBFD + DBDCA0E1A37D1D1D1C971210B38952BD1EFC888C9E28AD6D7A444641175CCB49 + C9BD5BAD33EC283C73424ADFF7F2D4798F3BF085C58306F6E7530872851C5FC5 + ED85BBAB0B5E193B0A3562090AAE5C23107E62213046FD6B77CA6FE47619807B + 841BF2E2C4E7790CF332999EA44D04919B1F486F3CBD488E8DE4B89C54D1C546 + 30A7380C93999F9372BAB58148B01DE1EB1778B27FBF209E485C0B8D468D7E7D + 0348C6F1879F9F1F81504BB20281909644F70EE504C2B8DF437884FE71F22593 + 0958B9BB4B21787875CFD06A358E8E423EABBCBFBF1F0BC0FF2E04D6125A87F0 + 0801B05D7A3EF6D8633C8E309BB8559FBE41034C1088F27EFECD10A83B64A625 + A3A6AAC202C21F020095DEBD9FE8C3110A721C1D9DFBF4ED37D0EC06FEF74028 + BC5A8CAC8C1374FBCC0CE10F03A025840144F9005679FF261022B114052C84E3 + 66087F28002D201077F00FA0EED0EC12F4F1BB822BCD10FE7000EE0FC16409D4 + 2DC4A499A2EE90997E1CFF07E794974FC7BBEB760000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E6A4944415478DA + ED9B0B5854D516C7FFF3627883A8A03C34B5AB969125A26965A9A5A6B7EBF591 + 666AF9AAEB231FA869E655B4BA969A952208A5F7566619E62BE20D2212523C4C + 530C1104461466186678CCFB75EEDE677414419B1906F0EBDEF57D7C73E6CC39 + 7B9FF5DB6BEDB5D6DE070EFEC785D3D10FD0D1F27F001DFD001D2D4D00AC8CC9 + 60DAA353D2495C6555CDD4439BA6E9EE3B003BDE78B64D3B349A18EC4B3E8FA2 + ABB2FB02428B00DADA0CF6A715426730E1A2A8369E4098DC91105A04606A6302 + C7B22F43A1D1C1606470A1421A2FAFC2D42F368DD4DC37008C6D4C20FDD70A28 + D47A0B84C20AE94F1A035E885A3252715F00D01BDB1640EEA5EB505200F70184 + 1601E80C6D0BE077919455BC0904627585E5B5A73506666C7B42681180964C50 + 5456452639BCC31D4BC6A1B2A6C1A2F8ED10C0E1E05C694DBB426802206C4F3A + F3F1C251D0E84D6DDA69BD424D14D6B70881DADEB91249BE52A97CE1B3D52F4A + DB15C08AA834E69345A3A1D2B52D0093C94894D6DD13C2D992EAF39F2E7AEED1 + 7605B03C3295F974F173506ACD00D6463BDE05B62E1C878B1552FCF0F365A808 + 80BB89D160C0CE25CFB779AADEA4836511C9CCCE37C740A135B675BF50690D88 + CBB9CCC268490C3A1D762D1DDBBE0096EE4A62762E1D8B464DDB03B829C59532 + A4169411204DADA1BE5E818865E3DA17C09B3B13985DCB5E4083DA0C60FD67C9 + ED4381CCFE3C3E1F0F0676BD05A6BC0ABB978F6F5F004B3E896722968F47BDDA + D03E8ADF2162B91217CA6BA0D31B917DB614916113DA17C0E28FE39888157F45 + BDAA630050A159A148528F7FC7FD8CA8952FB62F80853B7E6022C35E84FC0680 + F0BD296DD2A9BA41867AC9552864D55037D6C1A05541AF55134FE0C0CBCB0B5D + 3AFBA056CD81ACB2340C467D5AFEE9940BED0360FB712672D5DF20533ADE0234 + 1A0D7E8C4F44724A2AC412299C5DDC2074768140200497C7038FC767AF331A0D + 2404EAA1D7EBA1D5A8A0512B6848BCC098B04F2D53EE2D2C3CE9D00CB1098037 + B61D65A256FD9D00D0DBDB5E3331994C38763C0EDF1EFC0EE00AE0E1E903BEC0 + 097A9D1606BD8E559826468CC99C7B70B85C70B93C7652A4D73911403A9D068D + F572A8950D72866136E667A9A381930E19A526005EDF7A84895A3D09B50A3380 + F7FE93DAAAC6D58D7294E426D3A00E6F1F5F36C3D3AA95EC88873CFD3CBC3AFB + C2C8E1434F8A2F23632EC078C40D843C0E793023EA6BAA909B99445C83472CC6 + 154479C86BAB8955A8731983E99582D389A50E05B0E083EF993D6BA640DAD87A + 0B389D93834F3FDD05570F1FD6DC55CA0674F1F5C3A4A92F23B87F6F0885823B + 1EC4FC28CC1DEB516A921A9F2D2C46FCB123904AC47075F38052510FB95CA224 + 66F3527E6662A2C300CCDF72C80C40D13A00274E642032321A5DFC026122CE6B + 20263C7DF63C0C1FFA38F83C2EAB2C9F47FF003E97032E1975CE6D4F4217648C + C42368894CD726E8C8EBF506C47C7D1CE7B393E1E2E649CE9920A9AED4338C71 + 7E7E66C27E870098F7AF58267AED54D4DCB0802D5FA6D9DCA0EC5A29CA0A4EC0 + D7BF0799D935E8ECD71D03868D819A9839EDCC89CF81B380F8F96D3D33F7587E + 98356E305B9E6BC9FD9F1FC9C283FE5E387A601FB9C99C3C555FAFD09B8CA649 + 0559F1F1AD0630F7BD834CF4DBD320B1D305442211D6BCB5163E5DFD61203379 + 8F5EBDB1E0F505F07073058F68EC26E4B29FF6085DA58B8ACDC453C306A3A14E + 8E03319F40ABD59209930B49D5D546A34E3FE84C4E7249AB00CC79F75B267ADD + 74481A6C0740C3D6AA952BA1D631E0F305E84462F9B215617027CA0B88B9BB13 + E5391CDB95BFDD38F6FF908DF1A386E09A5CC742F862F756D22697844B35EA64 + E2BCBC4CD5705BA34393277A6DF30126FA9D19048079957ADBFE74AB1BBA5E7C + 06B5E58544713F36768F9A321F3A139735797721AF0575EEA2F01D974C1E39D0 + 727C20FE345E9FF4142A09000AE16A5909BEFD7C273CBC3BA3A6FA2A05F166FE + A98448BB01BC1AFE3513BD7E06C4365A8042A1C0E2850BE1D325809DEDA7BD3A + 0F4F848610F3043C5D789619BEB5F25D420EE64C7C9205595AA3859C246C1909 + 4771E6E72C38095D20BE562653D5AA7ADA922C3579B2D91BBF220066DA0CE0F0 + A143884F4822494E2778797B63E5DAB524B3E3C1CB9967B7CFB72487927230EB + AFC3D9639A37145569A0546B11BD6D23812D203982182AB5625941667C845D00 + 666DF89289F9E72C54D79B017CFC8D752E7036E92BF890A446A322A63F693638 + CE9E64A6E7C095CCF677136BD79DC70D7BD8727C24F5174C1FF784E53B2DDB2B + 6AB5F8393315D9E949247314A0A64A7431EF54C200BB00CC5CFF0513B3613601 + 60FD4E55694909368787B3614F43B2BCCD1F7E44FC9E0F2F579EC3B79E8FA7E7 + 61CA98214DCE9548B468685460D7FB6FB3697655E515E80CFA01BF66255EB419 + C02BEFFC9B89D9F81AAA6C0070FCE8112412F377767147C8B0E1983869329C78 + E690E768F9F1443E268E0E6D728E166E346F39B8370235E26A5233C8C89C54B7 + BAE054E20E9B01CC58B78F00986301B0EBE0893F6CE052761C9C88AE34EE8F9C + 380B42776FB892599F42A06295A9DF23131A31A8AFE53831B300E39F0D69F23B + CD1445C40D72B3D2F1535A229B4ACB6BAA62891B4CB719C0CB6B3F6762C2E7DA + 6401614B174320F464F3F3656B37A07BF76EF010D28ACEF16B1929596730E6E9 + 41CDCE8B643A5C292EC2A12FF6B025B6A44A74362F33FE719B014C5FF31913BD + 691EAAEAAC0730E7956908E8D9972422126CFC6007DCDCDCE1E1EC78F3A7929E + FD2B9E7BB2B95E924603A4D25AECFE7003DC4924AA1295488805F8D907207C9E + C502226333EE79332D52F28EED4150AFFE904BABF1D2A2756CB6E7E6D432803B + 2B3D4E8BD7349521037A598E4FE6FC8691C39AEF95D4A98C90D5D5637BF81A78 + 76EA826B1525A6FC53F13C5821CD00EC2100AC8D0234FD5DF0DA4C04520B2031 + 78FBEE18B6B2632B3CC2C091390095ACDCF3183124D8028AAE1FD28D5C5A2829 + 1A1BF0C186B75800D74525202E6055E7CD00446D9C471221EB5DE0B5192F992D + 8000787FDBC7A45E77BBD538699D02E1B29FB0AB16B85D7ECA2BC4D0410F9B4B + 65A2BCE9B6C9B34E2EC3D6CDEB5BEF02511BE75A32C13F72012AE792F7C3C7C7 + 974C82757879C132B8B87BDC7552A7003837C0DC0474372437DB78F42F81EC68 + D3EF39677EC7E081FD5ABCFE4AC9654447ECBC39095E2016106C17804802C096 + 6A70DBBFDE83442A67D7F75E9DF73A1E7B7CA0D5F7DA2A79E72E21E4D1BE2DFE + 9691968A84B81F6F84C1EA2379A7E2A7D80560F786B99605116BE4FBEFBEC5C9 + 8C93ECB2D7E02143F1F28C7B87DFD63841C18512843CF2608BBF4546EC425999 + 088A06B9FD89903D008A2F15112B781FBEDD7BC0A053E3C38FB6C34920B0FA7E + 2AD6D605672F9662D0803ECDCED325F7B0E52BE0E6D109D52415366A35C1D6EE + 253403104100D8B2284A43E1F2C56F10DFF7618BA1790B16203434C4EAFB6D91 + F397CAF0D843BD9A9D4F4F4BC777B1872110389162E86A3131FF7ED6B6D91CC0 + 3FE7DABC287AF4FB58A4A6A4B23370E74E9E080FDFC02E55593FB6D64961B108 + 03FBF76C728E86E2B0956B60020F72928C69948DEB4804F8D06E00BB08805A1B + 0134343460E5D245E8EAD7834D8967CD9E89D123473854792A45A59508EE1BD4 + E45CECA123884B486167FFEA6BE50AB554D9DDEE05110A60E7FA39766D8D1D8E + 3D48AC20059D4848A45B5A5BB66C42375F5F8796C497CBAF61C0838196EFA5A5 + 6558BF690B5C490126155F854EA3798B98FF47B6B4D90C80BD0F47B7B72A7F3B + 014F4F6F7635C8DBC30D8B162F82935068751B0CF3C7DD3FD4DB9FFD94C9EBF0 + D63B9BA1D61989E26A3AFB1B3CBC7D83530E7F56643780D64AE833E342C11164 + 77F3EF29A07B7FDD7D3B63CBBBEBE0E9E1EEC86E505B2BC786F7B641525BCFCE + 35B592EB18FAC47054548AE50A9D6A74DAC1E85F3B040095C12326CCE7F3F97B + 7DFD7BB223D3B5B31736AD5B81A0407F87B47FB9A40CEF6EDD89068586DD3C95 + 548BF0CEAAA5080E0EC6BEAF0FE37C6191497CBD7CF22F1971C73B040095D011 + 1356F3F8FCED5DBB0599B7BBF55ACC9D391553278EBB111D6C1783C188D8A3F1 + F8F2E051E256AEEC39A9A412EB572FC5F3A34640A9D212282A16C26F85458CF8 + 5AF9E4DC9371C73A04000BE199F173493D18E3D3D54FE0ECEC06A5B21E017E5D + 316DF2048C1E310C42A19355ED68345AA4679EC681433F402AAB27C59627BBF4 + 4E97BED6842DC173239F82AB8B90DD3BB4403870047979058673B91983C49557 + CE7708002A839F1E3B045CDE37AEAE1E7DE8F638DD28D5AA552453E4E189D0C7 + 3068E023E8DD33087EBE5DE0EDE5C1DE5357DF886AB10457CAAFE2CCB9429CCE + 3DC3567F34D5A642AB4EA3C1A00F090D152CFFC71C78B8BBB0006E42B87CA592 + 94E5FFC1F56B2214FDF68BD4A0D78FBA1784367F07272424C495E3DA6D3DB8CC + 2A37772F215DB9E5F105D0EB34A480D25B5E90B0947FB47CBEF18204CDECE81B + 247AE2428D24C72723AFE43078DFBB6BD0613737D7CCFE7D7B779F3F738A0502 + 8D0CE15BF7C0CBD3137C3E0F2752E25123AEBC278476FBA7A947868EF6737672 + 5E4640CC254A75BFF72B3206A2B4EEC62B324ABAE05A4142E45E8DDE18559893 + 2CA3D78D7969412F27BEB0F89101FDF9148242A9C027D1FBE1E9EE86179E1F05 + 718D14172E5E22107E64213026C3C4EB15A5A73B0CC06DC21DF4CC8427790C33 + 86744FC226FA92C1EF49079EFE488E4DE4B88264D1C526303F711826233F2B31 + BBA586C8643BDC2FA0E7A9FEFDFAF22435B5D06A35E8D72788449C4004040410 + 08B5242A1008A9F174EF5041208CBD13C27DF46F73CF9A4DC0C6DD5D0AC1AB53 + 97749D4EEBEC2CE4B3CA070606B000026F42602DA16508F71100FBA5DB030F3C + C0E30833895BF5E8D3F7613304A27C40E02D08D41D32521320AE123581F0A700 + 40C5DFBF770F8E5090E5ECECDAA34FBF01163708BC0D42E1EFC538999E4CB7CF + 2C10FE34009A437898281FC42A1F780384A446860B2C84240B843F1580661088 + 3B04065177B8E512355202E1E22D087F3A00778760B604EA1635A498A2EE9091 + 9684FF023F649B4F0CA07C7F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E614944415478DA + ED9B095854E5FEC7BFB331C3B0882820026ADAA3B8E0869859D772CBAC7FDD32 + AFD5A52CD4D43435C33423916E65A9A9292E58F9BFF52FBB86099902CA1222AE + 2CA6098A0802C3B0CC30CCB0CC30FB9CFB9E33383217929961409FFEF7F73CF3 + 70E670CEFB9EF7F3FED6F73DC3421B7971ED97D4CEA8D721571970AFE5C32FBE + C78F5B16B3BABB1FAB0E6800F77AE06DA5C701FC7F94FF02B8D70F70AFE5BF00 + DA7E79677F668F3841D2C931714DDDDCC331F374F71D806D8B1FEFD60E8D260A + 074E5E4551A5FCBE80D02180EE5683EFD20BA13398704D549F4420CCB997103A + 0460EA66023F9FBD09A5460783914241852C495183B9DFC44CD5DC37008CDD4C + 20E3B70A28D57A0B84C20AD9198D01B3F72E9FAABC2F00E88DDD0B20E7463554 + 3480FB004287007486EE05705D2463066E0581685D6179FD398D819AD593103A + 04A0250E8A96C83D279CDEE1B6E54F425CD76419785B0860B170A5B4AE472158 + 0158BD2F83DABE741A347A53B776DAA8549301EB3B8440EBDE9512699E4AA59A + FDE59A67643D0AE0EDBDE9D48E37A7A345D7BD004C262319B4EEAE102E97D45E + FDE2CD19A37B14C0AA3D69D417CB6640A535035817E77C13D8BCF4495CAB90E1 + 970B37D14200FC91180D06EC5C3EB367CBE195B127A99D6F3D01A5D6D8DDFDA2 + 456BC0B1F33719181D8941A7C3AE15B37A16C08A5D27A89D2B66A159D3FD006E + 4BB1588EB4FC3202C45A1B1A1B95885DF964CF02786B6732B56BE56C34A9CD00 + A2BE3CD9331488F7E770B97830D0E70E98F21AEC5EF554CF0258BE23898A5DF5 + 141AD5DDBB26585E2142FEA5DF70BDA81895E22A34281AA06868201C58707573 + 87BB472F18D802D45796AC86519F9E772EB5A047002CDB7E8C8A7DFB7FD0D8E2 + 7C001A8D06BF1C4FC189D43448A432085CDDC017B882C7E383CDE180C3E132D7 + 198D06E200F5D0EBF5D06A5AA0512B698758409970402D577D5D5878CAA9F981 + 1580A5DB7EA1F6AC7E068A56001BBF4EED72071445A1B6E40AAA8BF2C88005F0 + F0F40697E702BD4E0B835EC70C980E8B94C91C79586C36D86C0E6312F4752E04 + 904EA74173A3026A559382B4179D97AD8E034E396596AC016C3D4AED897CD669 + CBE29595626CFA6C0BA475727879FB32F15DAB569141B23065DA2C040F0F866F + 5F6F7879BA81C7E530F7E80D46C815CD90CAE4B87EFD3AB27F3D494C83433446 + C8C054D4D712AD50E75006D3DFF3CFA5943A15C0E22D89D4DEC8E70800BDA3ED + 59E4ECB9F3D8BE6317841EDE8CBAB7A89AE0EBEB87E7E6BD84D1C183C177E159 + 3F08ABF55128EB3AA445ABC3E582621C4F4C409D5402A19B0754CA4628145215 + 519BBFE565A5A4380DC01B9B13A8BD6B9E47BDD20CE0A37FA639D4A84C740315 + 974FC3A75F204CC47869557FFC9917A181C0B2D6C0255A404F3AFD974D3E6D1F + 842EC7E98F9E04A3F9B327309AA3D31B10F7FD515C3D7382384A4FC2C90469AD + 584F51C6857959C9DF3905C0A24F7FA2F6AD7D01B266C735E0ECD973D8B6FD0B + F8F80F805EAB419FBE3E58B26C19FC7DFB30BDF1B92C08B86CB06C0C70CCE049 + 754AD7275FFD7C1643FA7920F1E001F20F73E8ACADAED09B8CA6E7F3B39392BA + 0C60E1A6C366004AC7008844224446AE83B74F7F1888271FF8C060BCB178113C + DC85E09011BB09D8CC5F4784B68CDD3F65E39189E3D1D4A0C0C1FD3BA0D56A89 + F6B021ADA96C36EAF4E32F9D3F59D225000B3E89A7E2D6CD455DAB066CFA36DD + E686684F5EF0EB8F100A84E0727904821F863F3C137465CDE5B0E1CE6777B806 + DFD9CAC34B33C6598EBF3D7E1EB31F9B802A858E81F0CDEECD4493D8245CAAD1 + 2097E4E666B54CB6373A583D53C44787A8B8F7E641EA8009242424E048C251F4 + EEE3074D4B33D67D10837E7E3E70E19867BEAB291D0DEA87A40B58F8DC648809 + 001A42655909FEF5D54E7878F5415D6D250DE2ADBCD3C97B1C06F0FA3FFE45C5 + AD7F11D226FB0028954A2C59B204DE7D03186FFFD2FC459834711CE3DC3C051C + 9BEDBD3339947211AF3DF33083A3B44E0B0509D799C989B874211B2E7C5748AA + CAE42DF52D03ED4996AC1EEDB50F0F5271EFBF4C009857A9B77C976153235524 + C96910179324A737BCFAF4C5C8479F6666AC972B076C3B064F75600FCFFE6594 + E538FEE445843F35893936928B8B6A3450A9B588DB124D60F3488E20418B5AB9 + 323F2B29D62100F3377E4FC545BD0C899D1AB08CCC3E57E049545F89F96F2CC3 + E8901110F0D8707561DBD54E679290968B79B3265ABED3455B45BD1617B2D270 + 36E304C91C79A8AB115DCB3D9D3CD22100AF46FF1F01106E1780929212C46C88 + 866FFF01244353E11F9B3F27E92B8F997D67A9FE6D399A918B3933C2ACFB976A + D1D4ACC4AE8FDF63D2EC1AF12D1236F5237FCB4EB966378057367C4BEDFFE015 + D4369A016CFFA17313A8BE918FC6AA9B24DB7347C8C447E033680478B4E3E373 + FEF8A64E5C3FD5E6821961C196E363A7F2F1ECD450AB6BE9B49D8E5A87BE8E45 + 9DA496D40C72E2931AD6E49F4ED9663780F0A86FA8FD1B5E25006CDFA9FAF493 + 8F50239133713F3C6229468D1A0EA10B072E5CE797F2C9599748181C6F758EDE + C3101133C8C9CEC099F414069EA2AE269E98C18B7603F8FBFBFF4BED8F7E0D35 + 760058B5FC4DF0F89E4C7EBEEABD68F8FBFBC143609FF3B35552B32F63E6A363 + DB9D17C975B8555C84C3DFEC634A6C698DE8726E56D2385BDAB47ACC97D71F20 + 005EB700D875E8D74E1BC849DC87C04143492222C5F30B23C12275BD87A0D5F9 + D9B0BFD2D92593470FB61CA79FBD82E993C7B4BB46DA6C804C568FDD9F6D803B + 894435A21229D1003FBB01BCB4EE2B6AFFC6089B35802E4FE7BF3C0F410F0443 + 21ABC596DDFBC9CC13FB77B2F7BF2DA72EFC8EC727B55F296F682125744323B6 + 6E5C0BCFDE7D51555162CA3B9DC4B1A5CD766F89C5C52C404D836D00E8559B45 + AF85237020D1001283B7B60230577800C7C976909D731553268698E1930FBDA7 + 48174A5AF2513637E1D30DEF3200AA452520266053E7ED016C5C60D1803DF199 + 9D369093B8D7AC010440F8F2B5E070DAD4F90406CD800405A6DEEF8C474789D0 + B8E00196E333B9857868FC08522A9B076F6A734383428ECD1F4675CD046800FB + 08007BA240E4CA65AD4EB001EF4645A37F7FFFBB7647E706ECD69E5996B3D64F + D216047D4CB5FE3D7FE93A268C19D661CBB74A6E222E76E76D2758403420C421 + 007BA3179044C876005B481894CA14CCA2C7FC056F60ECB83136DF6BAFE45EB9 + 81D0D1433BFC5F667A1A928F1D6F0D83B509B9A7935E701040842513B4C504C4 + D72EA2B9B68C59F61A3BE121844E9ED2E581B6D5809183EF68547E410942473D + D8E13D7B6277A1AC4C046593C2F1448806B08700B0A71A2CBE5144B4E063F8FA + 0F8041A7C6679F6F655261BB066CE37597AF9562FCC821EDCED34BEEAB57BD0D + 378FDEA825A9B051AB09B1752FA11D80DD1B222C0B22363D3C99AE55CB16C3D5 + DD9B2986162C5A84B0B0509BEFB747AEDE28C3D8E10FB43B9F919E811FE38F80 + C77321C550653151FF61B6B6D96500B424FE148FB4D434C603F7E9ED898D1B37 + 304B55B6CFAD6D52582CC298E08156E7E850BCFA9DB53081030549C634AAE6F5 + 24027CE630805802C0DE45D1A6A626BCB3E24DF8F80D6052E2575E0DC7F4A95D + F705FF2945A562840C0DB23A177F3801C7925319EF5F5B55AE54CB54FE0E2F88 + 30003E88706851F448FC21A205A9E8EDEDCB6C696DDA14837EBEBE4E7D17F766 + 7915463E1868F95E5A5A86A8984D10BA7B4126A9844EA37997A8FFE7F6B4D90E + C02E02A0DE01003A9D0EEBD7BC4D54914792210EFA7A7B2126FA3DB8BBB9390D + C02D510D860FEECF1CCB1524EF78FF43A87546327035EDFD0D1E5EBE21A947BE + 2CEA1280AEFC62A4EC56293E8989461FDF0066EF2F28D01F1FAC8F8487BB7320 + 948B251836A81FEAEB15D8F0D11648EB1B195F532FADC6439326A3422C512875 + 2DD3D30FC5FDE63080AE3E64735D05E41505F0ED3F9099199F3E5E58BA7801BC + BD7BDFF53EAAD3459256D1D1AB4E3BD1A4D4309BA7D25A11DE8F5C819090101C + F8FE08AE16169924D5E5732E661E3B6A37006749D894A7D770B8DCAD3EFD82CC + DBDD7A2D22C2E762EE5F9F6C8D0EF68BC160447C6212BE3D940817BE90392793 + 8A11B56605664E9B02558B9640696120FC5E584449AACAE7E49C3AF6F33D01C0 + 4078ECA9085206EDF7F6F1E309046E50A91A11E0E78379739EC6F4290F83CF77 + B1A91D8D468B8CAC733878F817C8E48D10BA79324BEFF4D2D7DAD5CB3163EAA3 + 10BAF2493834DC81703001B9B9F9862B3999E325E25B57EF09005A26FC65D644 + B0393F08851E43E8ED717AA354AB6E2199220793C2C662FC9851183C30087EBE + 7DE1D5CB83B9A7A1B119B512296E9557E2D295429CCBB9C4547F74AA4D0B5D75 + 1A0D067D6858186FD592D7897F716500DC8670F3969894E5FF4475950845BF5F + 9419F4FA697783D0EDEFE08486860A59C27E516053916EEEBDF8F4CA2D87CB23 + 4E52430A28BDE505098B13A0CBE6D61724E8CC8E7E83444F4CA899E4F864E655 + 2C0A1F7BF9041D71731366050F1DECBF30FC050B043A326CDCBC0FBD3C3DC1E5 + 72F06B6A12EA24E2BB42E8B19FCC8C7A68BA9FC045B09280882083F2BFFB2B32 + 0632685DEB2B322A7AC1B582A4DC5F6BF4C6BD85E74FCAE9EB9EF8DBA2075CB8 + FCE2512383B93404A54A891D71DFC193449CD933A741522743C1B51B04C27106 + 026532FCB5BAA2F4DC3D03D046D8E31F7BFA110E453D41BA0F234F30944CFE40 + 7AE2E97F92631339AE206EBFD804EA0C8BA232F3B253CE76D41071B693FD0206 + 9E0E1E369423ADAB8756ABC1B0214124FC062220208040A827518140484BA2F7 + 0E9504C2ACFF84701FFD68EA71B30AD8B9BB4B43E8D5BB6F864EA71508F85C66 + F08181010C80C0DB10184DE818C27D04C071E93768D0200E8B9F45CC6AC090A1 + 23CC10C8E00302EF40A0CD21332D19921A9115843F05005AFAF71F3C80C5E765 + 0B04C20143868DB49841601B0885D78B712AE324BD7D6681F0A701D01EC20832 + F82066F081AD20E8B7D50A1808272C10FE5400DA4120E61018449BC31D93A893 + 1108D7EE40F8D301F86308664DA0CDA28E1453B43964A69FC0BF0169269C4FF8 + 9D3E2C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E544944415478DA + ED9B095C94651EC77F7371CC008228875CA5AD47C8BA7964B55D6AA5AEEE51E6 + 9657A5B56EE6899A66246A99A57629A168B96B6BAE8AA12902A21088E70A7824 + 20CA3DA03007331C735FEF3ECF8B0ECC82380303FAA9FD7F3E7C78E77DDF799F + F7FF7DFFE7F3BCC3410B7965D97626E6839990AB8CB8D7B2E6ABEFB16FC36C4E + 578F63330005B09900A8FD3503D814F506146AD3BDD6FFDE01B8D78AB7946E07 + F06B94FF03B8D73770AFE5FF005A7E58BC2DA35B82201924B1AA5AF6F2FED57F + 35DC77003E9FFD6C970E68B630D8917A0585958AFB02429B00BADA0C76A5E5C3 + 60B2A0405C9B4420BC742F21B409C0D2C5047E3C5D0495CE009399415E853C49 + 598D9777AE1EA5BB6F0098BB9840FAC50AA8B4462B84FC0AF9299D09E3B7CC1D + A5BA2F0018CD5D0BE0FCB59B505300F701843601184C5D0BE0AA58CE2A6E0381 + 585D7E79ED199D8919DB9D10DA04A027018ACA92D8A34E1FF0F3B9E350256BB0 + 2ADE1202381C5C2E91752B041B00915BD3992FDE1E0D9DD1D2A583D6ABB44461 + 639B10A8ED5D2E96E6A8D5EAF1DB97FE51DEAD00166D4963BE9C33061A43D702 + B058CC446943BB102E15D75CF96ACE73BFED56000B638F335FBDF31CD4FA2600 + CBE39CEF02EBDF1E87820A390E9F2B824677E78917B3C9844D739FEFDE767841 + 4C2AB369DE0B50E9CD5D3D2E347A1312CF16B130DA1293C180CDF3C7762F80F9 + 9B8F329BE68F45A3AE6B0194578891937B1157AF5E43719918F25A05F45A351B + 045DDC8470137A42E0EE09B9B8281266635ACE996379DD0260DEA66466F382F1 + 68D0360188DA9EEAB481CC2623A4A57990555C8549AF819BBB08AE6EEE10085C + C1E5F1C0E3F19BCE339BD8738D4623F43A0D745A1575873CC6821D5A85FADBFC + FC4CA766071B0073BF4C626216FE01F55AE7CD099A2D161C387818BBF7EC03B8 + 02787AF5045FE002A3410F93D1C02A4C832263698A3B1C2E175C2E01C2E7B3E7 + B9104006830E8DF54A68D50D4A8661A2734E6AE3804CA7DCA40D8077BE486462 + 164D44BDC639002A2BABB0F6930D90C814F0EEE9C746776AEA1C2E07CF8C198B + 418306C2AF574FF4F012C185DF64010612FC94F58DEC77AE1614222BFD28F10C + 1EB1182188F250D6D610ABD09E674C96A9B967524A9C0AE0EDCF0F33B1917F84 + F2168055DF1EEBF08515374B5196FB137AF8F462CD5DA36E807F400886FC7E34 + D4262E29B7ED4BB5AF8D1B8A8B7945483C900099B406429127D4AA7A28955235 + 319BC9392752529C0760E3212676C99F3A3D2D9E969E81CD315BD0CB3F987496 + 1612D17598F2FA5B7872E423E0F3B8ECA80262057C1EF923FFB9DCE61BA15642 + 7B31DA90D11E81F625749FD160C2D6EF0FE1F2C914B88BBC88355820ADA93232 + 8CF9CD9C13C9BB9C0260F68683CC96257F21003ABE3072EAF4196CFCEC2BF40E + 0C8551AF83AF5F6FCC79672E02FD7AB283B9F0397013103FB733C1B16E6364D8 + F27CFB8F67F1A09F080777EF2007386C9CA8B95961B4982D2FE69E4C4AEA3480 + BFAD3FC06C59FAA27565E8A37F1E77E862DA0605F23313E017100C1389E4610F + 0D4048F8633092A7C923294EE44A15B747F3E6666CFAB8E14D7B88FFC7269CC1 + E3C387A0A14E89DDDBBE845EAF27D6C385B4BAB2D16C300EBD7036B5B85300DE + FAE40766EBB24990373A6E01346D2D5C14490A1C067CBE003D7D7D11B938121E + 222104BC26E5EDD2BD1DF9EEC8398C7B7A186E280D2C849D5FAF27D7E49274A9 + 459D42929D7D42F384A3D9C1E696DE5CB7BF094007D60613120E607FC221F8F8 + FA43A769C48AE83508F0EF0517A2BC0751BEB3426D6277F279CCFAD363A82200 + 2884CAB262ECF966133CBD7D21ABA9A420E6E56425C77618C0AC8FE399B8E52F + 4376CB02D67D9766D7454C24A75F3EB68B44F95036DA8FFEF314585C7BB066EF + E9CEBBF393BFCBB4030D7F939E6DEE87F61CCDC66B1346B2474A647A2849B0CE + 483E880BE74EC2C5D51D921B650A4DAD26CC9162C9E6D6667EB497897BEFAF90 + 3AE802F1F1F1483C729414393EF0F6F1C1D2F79693E8CE83973B173C7BA39D3D + E3A46663EAF847D96D33890985D53AD245EA11B7219AC40201A91124D068550B + 724F24C57408C01B1FEE61E256BC0269836300FE3E7B36F86E5EC4F455787DF6 + 5C0C8978988DF4EE2E9D37FD9692909683C9CF0FB77EA6257B45AD1EE74E1CC7 + 695230F10502C8AAC505D959C9E11D02F0FA9ADD4CDCFB530880A659EA0DBBD2 + EF7A0195528AA2D389F0EB134AA2B216A327CF66F7F770E7379B3E73F729B63B + 9D31EEF141D6ED1FD373F1E2986136C78BA57A3434AAB079ED7B6C995D5D554A + AA4963F8C59329050E03786DD5F74C5CD414481CB08083090938927494547B1E + 18FEF89378F1A5BF404072BD870BCFEE6BD82B47322F60E2B3436DF6D1A28DC6 + ACBDDFC64026A9213D83022A55DDD2DCAC94CF1D063023FA5F04C03487007CFC + D187A89628D8BC3FEDCD3988081F0421317D5AF0385B92B32E62DC538FD8ECA3 + 95A298B8C1F993E9389596C2064EA5AC3A9EB8C12B0E0398BEF23B66DB07D351 + 53DF04E08B7FDFDD052EA7EE424FD2E8D0FA7CC2B439E0B8B8C3D3CDDE82A76D + 615AB8CC33437F63DD4E3D7509CF3D31A4D5F9628501A5D70BB17FE756B6C596 + 568B2F659F487AC49EB16CEE725AD44E66DBCA190480FD2B55535F998CA0B0FE + A4109162CDA75F40E42182A713F27E5B9276E60A463F1ED16ABFB4D104B9BC16 + 5F7FBA121E2413558B8BA5C402FC1D0630F5FD7F30DBA25F47B59D00E8939A4E + 00843C38104A790D36C66E639FBCC8C9D1FFB6649ECBC3332307B7DA5FA73143 + 51578F8DAB96C18B749F372A8A2D3959497605211B005356EC2000DEB002D8BC + F7A776BF4C2732720E6F4730B5009283A7CE8B622FC92743D3F4DFE91A8078C2 + 88F030EBC7ACF3F9786A44F8ED436CB7481771F4E44FD5D8804F56BECB02B829 + 2E067101BB06B739E9D5E5DF30DB56CDB4DB02A8CC78F5960510006B37121710 + 8A9A2FCE016B11B4DDA52C389D7C1FE3544E011E7D6410E8540255DED22256D4 + 291558BF26AA732E40DF128B5B3D0BD575F60358B2E01D085CBD4810ACC3BB51 + D1E8D327B0DDE15828B746E658F7DADE49CBB2816E33B7FE9FBD7015C3870C68 + F3CAA5C545888BD9743B08E6110B88801DD21AC0AA59560B888DCFB8EB050A4F + 1D862B6978E8FCDEC4C9D3494114E2E0A8AD956E29110F0559B7B32F5FC3B0DF + F66FF3BC8CB4E3484E3C722B0DD61CC8CE4A9AD421005B090047B2C00FFBF620 + 3323939DF61AFEE848BC3AA5FDF4DB1927C8CD2BC6B0C10FB5792C366633CACA + C45035283B5E0851005BA2679142C87E00D7AF1562C3C76BE117184ABA422D3E + FD6C235C484DEE88D8BB167DA9A00443C3FBB5DAAFD3E910B97011449E3EA821 + A5B059AF8BB0772DA10D0033AD95A03D2E4053E1A594EFE0DB3B806D86264D99 + 81B0BEFDEE3CDA5D5B605BE91FDA1CCBAE5C2BC3EF063DD8EA3BE969E9D8179F + 0081C085344395D789F90F809DD20A402C01E0683778F087781C3F769C8DC0BE + 3E5E58B56A253B5565FFB3B54FF2AF8B31646098CD3E3A1315B978192CE04149 + 8A319DBA7105C9009F7618C0D72B675A2744EC958686062C9E3F07BDFD43D992 + 78FA8C691833EA69A72A4FA5B0A40A11FD6D836CFCFE03484C3EC646FF9A1BE5 + 2AAD5C1DD8E109918E02A09210BF9758C131F890BE802E69AD5BB71A017E7E4E + 7D13B3A8FC06C21F0AB67E2E292943D4EA75107A78432EA98441A77B9798FF67 + 8E5CB315801802A02393A20683012B962E22A628008FC743AF9EDE581DFD1E3C + 442287AF75272915576350DF3EECB64249EA8EF7D7406B3013C5B534FA9B3CBD + FD228E256C2FEC1C804EFC62A4ACB4041FAF8E86AF5F10BBF617121C880F562C + 81A787732094574930E08100D4D62AB1F2A30D90D6D6B3B1A6567A13231F7B02 + 155512A5CAA01993B637EE62870174F6172359193F61E78E6F484114C63E99C0 + 805E58BE781E82FA04B4FBBDBB864B724265B58C989A1A1FAEDF8406958E5D3C + 95D688F1FE92F9888888C08EEF137025BFD022B959FED27F32120F750880337E + 319272E430F6EFDD83DE01214DABBF260366BE360513C78E629F58477283C964 + 46FC8123D89770082EAE42769F5C5A85A8A5F3F1FCE8A7A1D6E809140D0BE1E7 + FC424672A3FCA5F399893F3A0CA0539AB790469918B5E557E0EDDB1B6E6E22A8 + D5F508F2F7C3C4092F60E8900892B39B8B25A61D24468311172EFD8C83875320 + 57D44128F262A7DEE9D4D7B2C8B9786ED49310BABB9274686A86B0FB00B2B373 + 4D97CF670C9554955EB11B80B365F853631F0597F76FA1D0B31F5D1EA70BA57A + AD86548A3C3C36E27704C460F40D0B81BF5F2F78F7F064BF5357DF881A8914A5 + E595B870391F67CE5F60BB3F5A6A53A15DA7D964320E1B3142B0F0EF6F90F8E2 + CE02B80DA1A8B40A1BBFFE276EDE10A3F0E7FFC84D46E3E8F62074F93B38C386 + 0D1372840151E0324B441E3D5CE9CC2D8F2F204F56471A28A3F505096B37C4B6 + CF4D2F48D0CA8EBE416234EAD1486A7CF2E4D51C066BBD7B87248844C21303FB + F70D7C73DA242B049A1956ADDF8A1E5E5EE0F379F8E958126492AA762174DB0F + 26068F1CE3EFE6E2B680809849940A6CFF15191351DA70EB1519359D70AD2025 + F7B73AA3794BFED954053DEF85C96F3DE8C277BD3E387C209F4250A955F8326E + 17BC48C619FFFC68486472E4155C23108EB010188BE9CF372B4ACEDC33002D84 + 3BF49909BFE731CC0B64F811E40EFA93871F461F3C3D48B62D64BB828485EB16 + 30A7380C93917332E5745B171AF1F48427FC83C2B2060EE8CF93CA6AA1D7EB30 + A05F0849BFC1080A0A22106A495620108E27D1B543158130F67F21DC473F9979 + B6C9041C5CDDA5107AF8F44A3718F46E6EAE7C56F9E0E0201640F06D08AC25B4 + 0DE13E02D0710978E08107781CD713C4AD42FBF57FB80902513E28B819027587 + 8CE3C990548B6D20FC220050E9D3A76F28C75570D2CD4D18DA6F40B8D50D825B + 40C8BF7A1D99E9A974F9CC0AE11703A035848789F221ACF2C1B74048650AE4B1 + 108E5A21FCA200B48240DC213884BA43B34BC8E404424133845F1C803B4368B2 + 04EA1632D24C5177C8483B8AFF02AF33AF4FEB4DEA270000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Find_-03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E174944415478DA + ED9B095C54D51EC77FCCCA9E2022022E690F2D25B7C8F4F92AD3349FF52A975C + 32737F992B6EA5A658A6A5652E84A2E9CB3253513443400444C0250553530811 + 54907566605866987DEEFBDF8B8E4C20CEC0207EAAFFE7339FB93373E69C7BBE + F7BF9E73AF1D6AC8E8C5DB99AF974F82B45287E6968F37FE80FDEBA6DB35F538 + 6603B000820980EC2F0DE02302A0F80B03D84C004AFECA00362D9B8852A5BEB9 + E7DF7C009A7BE235E5A103F82BCADF009AFB049A5BFE0650F3C3FC6D090FC509 + D220117985D2910756BEA57DE400AC9FFE62930E683032D819730519B74B1F09 + 087502686A35D81D9706ADDE88F4DC92488230BC3921D409C0D8C4047E3A7D1D + 0AB5167A0383AB39B248792146EE5A3940FDC80030343181F88B3950A8742608 + 6939B2536A3D866E993940F14800D0199A16C0F96B0550B2001E01087502D0EA + 9B16C0EFB9326EE2661048EBD26E959C51EB99210F13429D0034E4A058591072 + CCE603AE9FF90AF2A415A689D784003B3B5CCE963E5408660002B7C6335FBDF7 + 12D43A63930E5AAE50D1847575426075EF72962455A9540EDDBEF035D9430530 + 6F4B1CB361C64054699B1680D168A0496BEB857029ABE8CAC619839E7EA800E6 + 86C4321BDF1F04A5A61AC007A1B63781B5EFBD82B8B3977130EA244A8AF2A0AA + 288556AD844E5DC59D8ED0DE01620717D83B3F06694E66200CBAB8D433C7AF3E + 1400738263984DB30643A131D87C20955A8D231151888A8E459144067B072788 + 69B242A1183C3E1F7CBE806B6730E861D0EBA0D3E9A021286A95823EEBAF3246 + EC54952A77A4A59DB4A96F3003307BF33166D3EC21A854DB0E80C168C4A1433F + 63F78FFB019E002EAEEE100845D06935D0EBB4DC845993608CD55A67C7E381C7 + 23200201D74E4480B45A352ACBE550292BE40CC3AC484D568502276DB26C6506 + 60D6A62866F39CA1A850550358B63DA6519DAB2AE5C83A4F7DE8B568E1EEC9D9 + B646A5E4AE78C00B83E1DAB235659D3C2EEC1A98EAD0CBA74820161204468F32 + 5931CE25445370E091C63882260F7949116985EA3CA3378EBB70263ADBA60066 + 6E886482E7FE1BE5AAC6C33D75FA2CD6ADDF044717774EDDAB9415F0F4F4C2C8 + 3163F074978E108B85F73F911A5254AAC0A5F42C9C883E0A6951011C9D5CA054 + 94432E9728496D46A5264647DB0CC0FB5F4530C1F35E457955E300C4C62760E3 + E62DF068ED4B57D8480AA0C6DB13A7A27F9F9E10F079DCA0023E393C7AF179F4 + B2333F13D61AD8C4887DB159A9815EF9B20A1C3A1A8F4BC951707072256D3042 + 5294A76318C394D4C4A8DD3601F0DEFA9F9990C0D720BF032068C771AB3B2CCD + CFC6CD0B27E0E9DD0E3A8D1A1E5EDEE8D6F76528750C37984860077B56C56B8C + CCD493784E7A35801233061ACA4DB61FF9051D3C1C7078CF4EFA931DE7278A0A + 72744683F1CD0BC991918D07F0C5112664C17F1ABC2C9E93938BB9818BE0DECA + 1B7AF2E4ED3B75C28CE9D3E0E2ECC05D6927318FB3F18608EB22430E9E459FDE + FEA8289363CFB60DD06834E430799014DEAE346875BD7E3D1B93D52800D3D71D + 66B62C78830058BF31C286AD59730251A561201008D1B2654BCC5F1008676747 + 4ED5D9C93776FDEDBBC8F318DCBF27F2E55A0EC2AEAFD7720E52A356A1ACB438 + 2525B1AA9FB5D1C1EC9CA6AD3DC46C59F8A6696768D5B7B116775490F92B4A6E + A5C18D3CBB9A3CFDC09193A131F038957716F3EFB47A7091F54773183DA887E9 + 78CFB1144C1CF62CF208000BE1F6CD2CECFD66135C5AB42407799B05312B3529 + 2AA4C100A67E7690D9BA7884D59BA30A850293A74E87BB870FE7EDC74D9A86BE + 013D39B577B1E7A3815A5F4BF6C5A460FCD0673990D9520DE464AA095187F1EB + 2FC910891D509C7FB3B4AAA4AABD35C992D9A94D5973A01A80957B83FBF78751 + 96778C921C37B47073C3E2251F72DEDED5A1E1365F97841DBF8031439EE18ED9 + BC21A3504D358406A1EB56902F10528E508C2A9562CE85C4C8E0060198BC3A8C + 09FD60A4E9FE8035DFC559D4C9A563DFC3BDA527D4550A0C1AF10E18912B797A + 3B3892B7BF9F58BAE2F05AFFAEA6E3F0F85F3162602FD3673661CB29D1E097C4 + 589C8E3F4699A310D2C2DCF494A4A8AE16766F0E60D2AA7D4CE8876F41628509 + 5CBF7E1D1F2D5BC1853DD6F6D77CB11E420A4F8F39F26DBEE97024E1225E1FD0 + D3ECBB2C890615950A6CFEF4432ECD2ECCBB4199A5AEEBC5E4E874AB014CFC64 + 2F13BA643424159603080F0F47C4D168CAF69C11D0AF3F860F7F93F3FACE629E + C57D582A11899730ECF91E66DFB1219BD5D87D3B82212D2EA29AA1947C52D9C2 + 0B49D1EBAD06F0EEC77B98D0A5630940F52AF5BADDF10FECE0DAE9088868AE6C + DC1FF8C678089D5AC091BCBE885FDDB545AA5E4F263430C0CF741C99741943FA + 7737FB9DCD1473C90CCE27C7E3545C348D47F582B4308CCC60B4D5002604FDC0 + 842E1B8B622B3460E68C191088AAF3F3F94B83D0C6AB35E7F979B65700C49CFA + 0D03FBFAD7FA3EB7548B1B991938B06B2B57624B0A732FA52446F6B4A44F3300 + EFACF89E00BC6D158031A346C2A7BD1F2522127CB276039C9C9DE06243F5AF19 + 4462CF5CC1803EDD6AB59154EA219395E0EBCF97C3992251616E968434A0B5D5 + 00C62FFF8ED9F6D17814955703F8EAC7FA4D802D4F537EDA8AB68F77815C5684 + 513396D00953D627AA1B00F30783B0ABB38DB9F4F3EF683A4E387715CF07D476 + F0655506949695E38BA0C57075F3407E4E96313529920F0BC4EC1CDE5EB68BD9 + B6FC1D0260D94E159BFE4E183F0EBEAC06500CFE2A643BA93E5BE1E15E956743 + 494A4947FF679E328162F713D8B504B658525456E0B3E58B380005B9592013B0 + 6874B346E396FE8FD9B6E25D145A088083F6D6C86A0D2000ABBF24137074BCD7 + 3969035BF5B1FE8047C78DE5712AF57704F4E80283B17AF2C61ACEB34C5E8AB5 + 1F2F6B9C098C5DB293004C3401D8BCEFC4033BB81CB31BEEEE9EE404CB3066DA + 1CAAD55DEEEBD4EDEE40B86BD7ECFBFDA0DCEDA3BB9F2F77B5D9CF672F66A0B7 + BF5F9DED6F645D4768F0A6BB4EF02A69803F2C10B3F1C77CF00DB32D6892551A + F0F9EA559048E5DCFADE8429D3D0B347F707FFA981AA70FE52267A3FFD8F3A7F + 4B888B4554C4D13B61B0E8504A52E408AB01B0778985AE9C8CC232CB011CDCBF + 1727134E72CB5ECF3CDB0763C6D61F7E1B630617AE66A177B727EAFC2D247833 + 6EDECC85A242DEF04488031034D9A4012161090FECA0B2A4105967A3E0D9A61D + 69811A53E72C028F5F230A589009D5D7A44B072FD3F1A5F46CF4EADAA9561BB5 + 5A8DC0B9F3E0E4E286224A850D1AB5BFA57B09B5006C2500964601EEE4C938E7 + BE3F1D0ECEEE5C313479EA540404F4B6F8FFD6C8956B37D1E3C9C76B7D1F1F17 + 8FFD61E1100A45540CDDCE24F5EF6C699FB5006C5931991221EB6ED8387C300C + B1C763390FDCD2CD154141CBB9A52ACB6B3ECB242D3317DDBBB437FB8E0DC581 + F317C3083EE4948CA995954B28027CDE0800934C99A02526C09D8446C545032F + EF0E5C4A3CFCADD1F07FBAB633641A600F8FFB78988E33B2F3E0EFD7D6ECF7B0 + 03871011759CF3FE45F9B7142A99B24D83174458002104C09A6AF0AE8487ED23 + 2D380E370A89EC96D69A352BE1E5E969D392F8FAAD7C747DC2D7F4393BFB2696 + AD5C0347E7169015DF8656AD5E44EAFFA5357DD602D0D00726B45A2D962C9C47 + AA28049FCF87877B0BAC5CF1219C9D9C6C06E0466E219EECE8CD1D97CACBB068 + E9C750690D347115EBFDF52E2D3CFD8F876FCF681600ACDCBC918DD52B57A0A5 + A70FB7F7D7D6B70D3E5AB2002ECEB681702BAF189D292A9494C8B17CD53A484A + CA395F532229409FE7FA2127AF58AED0560D8CDB177AB1C1001AFBC44852C209 + ECDAF90D3CBDDB7357A68D97073E983F0B3EDE5EF5FEEF81DE811ADC2E9492AA + 29A9EADC840A859ADB3C9514E562E982D9F0F7F7C7CE1FC271252DC3585C706B + F8B98488230D0360832746A28FFE8C03FBF6A29557DBEADD5FBD1693268CC5AB + 43067057AC21B141AF3720ECD051EC0F3F0291B8BADE9049F2B06CE16CBCFCD2 + F3505669084A1507E1B7B40CA638FFD6F0F327237EB21A80AD9E18494E4CC077 + 3B77706BF6F6F64E502ACBD1CEA70D46BC310CFFEAFB0C44229145FDA8D51A9C + 3A9B8A7D078FA0585A024727576EE99D5DFA5A1C38138306F487A38398C2A1FE + 1E843D87909272417FF97C42AFE2BC1B57AC0260CB27466E6467616BF0465456 + 2AB9ED7176A354A3AA82582440BFE702D0DDFF29B4F7F541AB56EE78CCD599FB + 4F79850212890C39B70B70F94A3A4DFE1C57F9B1A9362B6CD569D0EB75BD0302 + 8473FF3B91DB766301DC8570FD461EBEF8FA5B14E4E722E3B77332BD4EF7527D + 109AFC8911F6E687B2FC4C94176651A5E8CCADDCF2054272926A4A9D75A61B24 + 4CE51F5B42DFB94182CDECD83B48743A0D2A29C7A72BAFB463F0698B566DC39D + 9C1C13BBF8756C33E5ED1126086C64085ABB9560BA4220E0E3C4F148488BF3EA + 85F0D06E97EFD667606B7B91FD1CF0984934A936F5DF22A3A7496BEFDC22A364 + 175C7328E5DEA1D619B6A49D8D2965DB0D1E35F57191409CD9AD6B17010B41A1 + 546043E86EB852C419FAF24B642E325C4DBF46108E721018A3FEF5829CEC33CD + 06A086F07ABD30EC9F7C86194CC307D019F8D1C56FCF5E78F6473A36D2710E79 + CA4C239853760C93909A1C7DBAAE8E029E1FD6AFB54FFBA42E9DFDF812F20F1A + 8D1A9D3BB5A5F0EB0B1F1F1FCE675C492308B191ECDEA182200CF9238447E881 + 8917AB55C0CADD5D16C2636E1EF15AADC6DE5E2CE026EF4B7E8505E07B1702A7 + 097543788400345CBC3A74E8C0B713279259B5EBE4F75435049ABC8FEF3D08AC + 3924C446A1B830D70CC29F02002BDEDE1DDBD98985C9F6F68EED3A75EE6A3203 + DF1A10D27ECFC4C9F81876FBCC04E14F03A03684A768F26DB9C9FBDE01219196 + E22A07E19809C29F0A402D08640EBE6D5973B8671252194148BF07E14F07E0FE + 10AA3581350B291553AC3924C41DC3FF01E83AB14F14D0FD390000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Find_-02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000DFD4944415478DA + ED9B095C54F516C77FB331C31A22A06C6AD97343324D5E3E5BD54C5B5EAFCC32 + D3CC2D735F53735F3273C94C71C1D2973DF3A9186AD920228880B901990AC8AE + 0CDB302C03CC7667BDEF7FEFD0C8044F6660103FDAF97C06EEDCF9DFFFFF9EEF + 3DE7FCCF7FB91CD493518BBEA177AE9C0059AD1E6D2D6BBEFE0147364DE1B476 + 3B560D300076AC988072C55F00DA5AFFB603104600543CD400961300CA8718C0 + 7602A0F26106B06DD97854A90C6DAD7FDB01686BC5EBCB3D07F030CA5F00DAFA + 06DA5AFE0250FFCBFC3DF1F7240892464E1695968F3CBAFA5DDD7D0760CB9417 + 5BB541A389C6BED337905958755F406814406B9BC181D874E80C2664482AC504 + C288B684D02800532B1338F16B0E94940E06238DB4820AB1BC1423F7AF1E44DD + 37008CAD4C20EE6A01941ABD05427A41C579CA805776CD18A4BC2F00E88DAD0B + E04A5609540C80FB0042A3007486D605705352C12A6E0581585DFAEDCA0B9481 + 1E762F21340A404B0214230B76463BBCC12D3386A3A8BCD6A2787D08E070702D + AFFC9E42B002306F771CFDD5D4C1A0F4A6566DF47A46362E255F456656364A4A + 4A505B4B802814447F0E442EAE004FA8A654353126BD2101467D6CCA8598B47B + 0260EEAE587AEBB42150EB1C0F40435138F17314C4D13190965540E4EC0AA1C8 + 190281105C1E0F3C1E9F2D67341A6034E8A1D7EBA1A5D4A0344AF2DD90469BB0 + 4F53A5DA9B9E7ECEA196610560CECE33F4D7D35F824A6B06B038BCE52E40D334 + A4B9D7509299421416C1DDC30B7C8113F43A2D0C7A1DABB0C964046D32B7C9E1 + 72C1E512207C3E5BCE8900D2E928286AE4D0A86AE5A4BE9529499A70E09C4326 + 2DAC00CC0E3B4D6F9BF932945AA343E84A0A8BB066DD46486555F0F4F265132C + AD464594E460D0D0E1E8D5AB273A787BC1D3C3157C3E8FC0302225BB14D24A05 + B8263DE4E525B8102B2637C92516E3C2C294574A895568AED006D3FBA9174EE5 + 3914C0ACEDD1F4B659C3A0A05A0E20E9FC456CFCF26BB8B87BB1E6AE56D5C2D7 + D70FEFBEFF1E9EE8D9154201DFFA46EAEE84E80889AC16976E1683D2192020B0 + F8460AC90931909516C2C5D51D2A650DE472998A98CD3B2909A74E390CC0CC6D + 51F4F6D9AFA0566306B0EC9BD3CDAAB442928582DF13E1D33190649526D6D487 + BCF11E54B4D09265F219C578E6FF5CF2A97F234C22C6A42226F2E43BB4F7B490 + C94ABF8EAB096238BB7A90AF26C8A4457A9A364E4A49883AE0100033B68AE9B0 + 39AFA246D37CF74A3C7F011B366D858F5F27E8B514BC7D7D3063E64CF8FB7AB1 + AD09F924D2F3B99627DE94542928DC2CAC828A6449D7738A11E425C4F183FB08 + 100E1B27A425057A93D1F4566A9258DC6200D3BF3A4987CD7D1D35EAE601B85D + 20C1ECB90BD1CEC71F0612C9BB747D1CD33F9E0C773767F088C6AE422E785CFB + A7208C243E4AE54A449E4BC3DFFBF6466DB51C07F76C8556AB25D6C3655C4361 + D4E9FBFD76F1746E8B004CDDF233BD73DE3F21AF03B06A6F8CCD1531913CEDEC + 11B8885C484013A0BD6F07F41C30144C4AC1E771E146946F4CF5A672CE0F86F7 + B31CEF172763E8C03E2896EB5808FB776C2496C425DDA506D55565C9C909EA81 + F6F60ED60036FF44EF5CF046B3A6C5238E46E2C88F27D0AE7D07506A0596AD59 + 4BCCDE1B021E8728CFB3BBBEC6E460740AC6BDDA1F45040003A1F0562E0E7DBB + 0DEE9EED512E2D6440CC4C498CDAD96C0053361DA7772D789300B06F6144A954 + E2C38953E0E51DC046FB31133FC2C0D0BEACB9BB3BF31C36EF762826156386F5 + 07633779E55AC8C9838A8F3A8EDF2E25C149E88CB2E25B55EA4A75677B9225AB + 7BFB68E3317AD7276F5956863EFBEE8C4D95149324A7BA289B2439EDE0E9ED8D + E0675E634DFB11A2BC3D2E4F37E20F235E0CB11C479CF90DA3869A5DC2480A67 + 9652642CA145F8A695241608488E5006B546393B35411CD62C0093BFF891DEBD + E86DBB1747274DFE88A4EF1EC4F495983075069E0C098648C085B3C0B173AE91 + 67AF62C4E0BE96EF4C775D50A9C5A58433F8352E9A648E0294974A329213A382 + 9B0560D2FAA3660076AC0DE6E4E460C99295F0F5EF44323415BEF8720B495FF9 + ECD3B7B5ABB3554EC45FC31B2FF4B13A972BD3A256A1C4F6759FB2697669513E + 19CEEB83AF269DCAB01BC0C4CF23E8F0C5232DFB03D67F1FDB64052559A9A829 + CE21D99E1BFA3CFD2CDA77EEC9063ED7BB05BE26423F5DAFC0F0013D2CC72713 + AFE3D5679FB02ACB046CE67E0FEF0D437999948C19AA484CAAFE2435F1D416BB + 014CF8EC301DFEE9BB90D9E1026B49B42F9656B2FDFEB8C9D311D2BB075C9C78 + 70E23B7EC9419C741D2F0F0CB13AC7CC5E49881B5C498AC3F9D8532C3C797969 + 04718351760318BFF6101DBE64945D7B84A64E9D0ABE93393F5FB07435FCFC7C + E12E62829FE3019CBE7003839F6EE8DE922A1DF2B3337174FF6E76882D2B95FC + 9E9C20EE6B4B9D5677F9E19A8374F8D2D1048079967AD381B8262BB8727C3702 + BB742389880C6F4D5A000E19D7BB8BB8E61F6D98596BAAC8F37DBB5A8E632FA6 + E185D08600640A032A2A2AB163C30AB8919EA854922B2316D0C16E00E356FD40 + 872F1B8D321B2D80199E8E1A3912418FF680BC428AAF767DC30E6C5C9CB8365D + 6FAF8DC45FCEC073FD7B36385FAD36A2AABA069B572D82473B6F1417E49A5212 + C536655F56F7F0C1CAFF1000636C06C0CCDA8C7D7F34023B130B207DF0560600 + 317D1E098224FB65F37F474A624A069EE96706C0580E339BCC4CE06AC947A9A8 + C5172B16B2004A24B964F82CB6A971AB4263577C4FEF593E16D21A3380AFFE6B + 8B0BEC325B00013076C6227079827AB573D84488F060E7FB9A4A8A1A4B84427B + 75B61C27A566A2FF13DDD8C111A3BCA9DE05D5F22A6C5CB3AC652E3066D97E7A + CF8A0F0800DB57AA66CF98063E498254CA6A2C5EBE0AFEFE7E776D8CC3A9FB80 + FD633EF76710F58030519DD5937C2E5CCD42BF90BF355A777E6E0EC2C3B6FD11 + 04D3880584C006B16AFBFDA5FFA6F7ACFC10A57600F8E2B3B5282B97B3931E1F + 4E9A82BE7D9FB0F95A7BE5CAF51CF4EBFD78A3BFC5C79E41D4C95FEABA41E9B1 + E444F1DB760318BD641F0130DE0260FBE1B34D56509471190AE92D76DAEBC9FE + 03F0D4C0E75AAC687D57E8DDD5DF729C9A968B7EC15D1BBD6667D876DCBA2581 + B256DEFC44E8BDC5DFD27B564DB0CB02B2B332B161DD3AF8FA758241A7C1C62F + 3743E024B0F97A7BE4F7F47CF40D7EACC1798AA2306FCE5CB8BAB78394A4C246 + 2D1562EB5A42835D62E1AB27A2B4DA76004C573867FA1438BB79B183A1899327 + 2334F4A956017023EB169EECF96883F371B1713812110981C0890C860AB389F9 + 77B7B5CE8600564DB458C0CE88789B2A29BA79858C0772D908DCDECB13E3482C + 0087C9059ACE84E8268A3C1EE463394ECF96A04F8FCE56BF335DF1BCF98B6002 + 0F72928C512AC512D2036C683680DD04803DBD0023CCD2D6FC59D3E0D3A1139B + 128FFD600C860C7ADEAE3A6C91CCBC2284740BB23A1771F4184E46C5B0D15F5A + 7C5BA9A950F9357B428401B06BE5449208D9BF612332E230CEC4C4A09D972FBB + A4B57EFD6A74F4F575E82EAC9CDBC5087E3CD0F23D2FEF1696AD5E0F17374F54 + 94154247510B89F97F694F9D8D009860C9046D7501464C46036EC41E82ABAB3B + C90479F06EDF0ED3A64F834824627FB769C1BD117F08ECE06539CE9794A2E763 + E65EA14A5E8D854BD740A33312C5354CF437B87BFA86C4447E93D922002D7963 + E4567E1E3E5FBD12ED7D03D8B5BFA0403F2C5FB200EE6EAECDAAEFCF72BBA80C + DDBB744465A51C2B3EDB0459650D3B2D5E292BC1D30306A2A0A84CAED4A987C4 + 1E0EBFDA6C002D7D612231FE2CF6EFFB16BEFE9DD927E3D7D11B8BE7CF44807F + C7BB5ED7A485900285A5E5804E85B51BB7A15649B18BA732A9044B17CC424848 + 08F6FD10891BE999A6B292DB232EC79FFCA94D003072EA979F71F4F021F8740C + 32AFFE1A7498306E345E1F36887D62CDD97F6230181171EC171C89FC094E4217 + F65C85AC08CB3E9985A1839F874AAD2550D42C84EBE9997459F1ED1157CE9D3C + 61370047BD319294108FEFF7ED65E7EC452257A85435E814E087B7DF7C0DCFFD + A33F9C9C9C6CAA87A2B4387F3105877FFC89A4DC957071F560A7DE99A9AF45F3 + 66E0A541CFC2C55948BA43C31D08078F213939D570ED4A7CBFB2A2FC1BF60170 + E01B23F979B9D81DF635140A15BB3CCE2C946A356A089DF8183820147D427AA1 + 7360007C7CBCF088871B7B4D4DAD123259050A0A4B70ED460651FE323BF26352 + 6D469851A7D160D03F151A2A98F3F17876D98D01F007849CFC226CDEF11D4A8A + 25C8BC7EB9C2A0D70FBE1B84567F6344A7D3E1E7E39188169F8440E8CCCEDCF2 + F8021224293280D25B3648587A0066D85CB74182C9EC981D247ABD160A92E393 + 27AFE2D058E7E91314E9EAEA92D0A3DB637E93C6BC6D81C0F40CAB36EE26303D + D8FD066763C4282F2BBA2B847BF6C6486D4D0D62A2A390742E1E4A95AA892D32 + 06A2B4AE6E8B8C8A99702D2029F75E4A6FDC957EF1741553EEE577263FEAC417 + 66F70EEEC1672028554A6C0D3F000FD2E3BC32743071970AA465641108BFB010 + 6893E15F250579179A04E070CD1B080D4A5105758D0C5A6535F4941206ADDAAA + 049F043981C80DAAEAB2151C9A8E4F493AF56B6335853EFFDAC00E019D137B74 + EFC69391F8A0D552E8DE358874BF810808086063C68D7402E18C98593B541208 + C3FE0CE13EDA2EFF62DD9611FB567719088FB4F38ED3E9B4229190CF2A1F48E2 + 0A0320F00F08AC25340EE13E02D07CE9D8A54B171E479840DCAA53D76EBDCC10 + 88F20181772030EE107F260A65A5122B080F040046FCFD1FEBC4110A92442297 + 4E5DBB075BDC20B01E84F49BD93817779A593EB3407860003484D08B281FC42A + 1F580742565E85341642B405C20305A00104E20E81418C3BDC7189F20A0221E3 + 0E84070EC0FF8760B604C62DCAC9608A7187F8D868FC0F401DA14F47AF7C9700 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-01_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000DF54944415478DA + ED9B095854E51AC7FFC32CECC80EB29A961A46A6658B954F6ACBF556F796A8A5 + 66A9A5E59699662EA19895A9990B2E687AB3EB2EE28680B2C8A6668A0B0A04B2 + C9B00C330C0C0C33CC3EE77EE70C0ECE058181417CAC5779983973E6FB787FE7 + 5DBFEF1C16EE92F716EEA0B62E9B0AA1548DEE96151BF6E2D09AE9ACAE9EC764 + 0203802904808679BFE570F27D557AD6B8E1DD0F600B01206A04D09DD26D0036 + 874E4155FDDF00BA5BFFEE03104E0088FFD200BE2100647F61009B0880EABF32 + 808D4B27A346AEED6EFDBB0F40772B7EB7DC77007F45F91B4077FF01DD2D7F03 + B8FBCD97DB93EF4B102493449709AAC644868DEBF6B6B3198075D35FE9D20975 + 7A0ABBCEDC446E69CD0301A145005D6D067B12B3A1D6EA91C3AF8E2110467727 + 841601E8BB98C0F1F3F99029D5D0EA286495886324028CD91D365CF9C000D075 + 3181A46B259029344608D925E2734A2D466D9D355CF64000D0E8BA16C0A5BC0A + C869000F00841601A8B55D0B20F1F74C5CBB9E89C28202088542C8EAA550C8EF + E8CD12511455C602954F51AC8BD06912332EC467DD57002A12A06899BFE5B4C5 + 26D269351015113DEA4A20108A61636B0F6B1B5B70B9D6B062B3C166730CE7E9 + B4CCB91A8D062A6503940A1979AFCDA2F4D8A5A891EFCCCE4EB1A885980098B7 + 2D89FAF9B311506AF496535CAF4764D409ECDE7B08B0E2C0D1C9151C2E0F1AB5 + 0A5A8D9A5158AFD781D21BE6645959C1CA8A00E17098F37804905AAD447D9D84 + 58895442AC635946BA220248B148CB6A02E08BAD89D4FA1923D1A0B60C80127E + 19C2BE5B8D4A51359C5D3D99F4AA52C889922C8C787D14828282E0E5EE0C1727 + 0738D872A05069D1A0D2A05EA684A44E8ABCFC42C49E8C028BB222166307A23C + 24D595C42A149728AD7EC2950B7185160530774B02B561E6AB90AB0C00BE8EE8 + B80BD45414A1F8CA59F4707167CCBD412E85978F3F06BD3812F56A1609B44D90 + E7840C4571652DD26EF21908770B8FC3821D4B8DABE989A82C2F859DBD23E4B2 + 3A48242239319BB119A971711603F079F8196AE3ECD72153E93A45F54CC259AC + DBB015EE5E7EA4A6D0434B4C78D2C7D331ECB981E0107F67915939C40A386CF2 + 63453C83BCA6FF10A55A877359A528ACA88596A4623A3B68E8944CFEB3C93912 + 02F55ACA29D8DA3B116BD0435459A6A128DDC719A9B17B2C0260CEA6D3D4C639 + 6FA05ED9710069E9E7F1C3EAF5F0E819008D4A090F2F4FCC9A331BBE9EAEC62B + 6AC3257EDE4A1B562A9222E3968000D11ADC46433181B95EA6809F3307C7F6ED + 2250584C9CA8AC28D1E875FA77AFA4C7C4741AC0EC8DB1D4A6CF4741AA300058 + BAE38C598329A435C84E8982A7B71FB42492F77AAC3FFC073C0735B9926C72D9 + EDAD69C5DBD38012B5C9797476F0253182163D39768B2FC6334F3E0E69AD04FB + B6AF874AA522D6630591A0B45EA7D60CBEFAFB99824E0198B53E860A9FFB4FD4 + 29CC0FB074DAFA6CD63C267E70385CB8B9BBE1AB055FC2D1C1963175076B7687 + 7A6F09098825C23A68880564170930F2F927502E513310766F5E4D38599174A9 + 406D8DF0F2E5D486A1E6660793BF69E6CFD154F8176FA1AEC17C008722A37020 + F2385CDCBCA06CA847E88A95F0F17403976350BE33A227714054D780C44B7998 + F48FC12823006808A5C50538F0CB46383ABBA1AAB29406313B232D764B87017C + B6EE24B565DEDB90340258BE33BE5D8368494ECF8CDF032FEF0026DA8F7C6722 + 743C47C6EC1D6D0D41AF4569A3E0A4C8BFF7473E657CBF3FE12A26BC3698F9A4 + B04A05895C8BE4D863B87A311D3C6B5B08CB8B6B1AAA1B02CD29964C01AC3D41 + 6D99FF2FB397C5F71F38846327E34891E3021757572C5AB28898BD157A10E5AD + 2CB8E67438F13AC63602D1919A2057A0243D850A116B969158C0253582100D0A + D9E7575263C23B0460FA9A63D4D6F9EF1000E66D8C4C9E3A0D6C6B2762FA324C + 9D311B83828398486FCBB3EC8ADB91B39978F79581C6F774B02EA956E1626A02 + CE279D2695231755027ECEE5B4D8011D02306DF5516AEB82778D3B432B7F4D68 + 7300994484FCF3D1F0F409205159811163A733C77B90CACE68FA54DBCDD5BDCE + 78EBC520E3EBE32999787BD893269F17885490D6CBB0E9BB454C992D282B22CD + 9C66C0B5F4B81CB3017CB2EA08B56D6188599BA3919147703C3A8E547B0E78F6 + A5973166F43BE012F3A7535E47E55E767332ED0646BD186C728C76577A37FBE0 + CE7054092B49CF500399AC76C195B4B87566CFF5F10F91060066EC0D2E0FFB16 + E5826A26EF7F346D26829FE80F7B1E9B89FE96923B239D4ACFC26B2F985A37BD + 76C1276E70293D09E712E398C029A9121C266EF09ED900A67E7F988AF87A8CF1 + FE801F7E4B6C7380CC337BE04A1A1DBA3E7F73E24CB0783670B4696FC1D3B250 + 77B9CCC867FA1A5F9FBE9085E1CF06353B9F5FA346D1AD5C44EEDEC6B4D82201 + FFFAE5D49841660398B2F22015B1681C4466B840C8E810F806F625858808DFAD + 5D0F077B7B06400BC3775A122F6663D8338F373B2EAAD7422CAEC6E61F43E140 + 3291805F202216E0653680C9DF1EA02216BFD7EE7B84E82B35262404FE8FF487 + 445C89F5DB763057DE9ED771FF6F4D922FFF899706F76F76BCB641879ADA3AAC + 5DBE104EA4FB2C2F29D067A4C5B4ABFA3201F0D18A7D54C492F1048061957ACD + 9EA456BF4C2F64649CDC013FDA02480E9E307B293324874C4DE77F76678B00E2 + 092F04F732BE4DCDC8C5D041FDEE7CC4748BF4F29D8AFCD0CB6AAB42BF620054 + F00B405CA05D939B9CF4E1F2BD54C4D2F1C6DBE4DA23E3EE580001B06ADD7AD8 + 1317B87B70DA22ACAC0C403A13176849BF9287A7831F03BD94402BAFBF2B56D4 + 4A6AB07AC5D2CEB9C0A465FF2500269A0560F68C19E058D38B14B558141A061F + 1FEF56266331B5013D29C382D57A94A0F5A30CCB01CCEF0BD7F33078C0A32D9E + 5B54908F88F08D77826016B18060B4434CE6FF20F4376AFB371FA0B2CE00E0E7 + FD496D0E907BEE24AC49B747AFEFBD3D6E123C7AFA99396B93B22DC9537D9BC6 + BB74231F8306F469F1BCE4C404C4469F6A4C8395472FA7C584980D60E2D2DDD4 + F6D0490440FB77AA0E1DD88FA4B329CCB2D790E79EC78409ED4ABF1D922B5985 + 1814D4BBC5CFB6846F4271311F32A9A4E385D08425FFA1B62FFB08023300E4E5 + E662D5CA95F0EC1940BA420556AFFB093C2EA74B005CCF29C653418F343BAE54 + 2A316FEE17B0777441252985752A65707BF7124C008C5FBC8B00986C04B0E9E0 + D93607A053E1F5B8DFE0E6E1CD344321E32721B0779F7BCFD6660B6C2AFD029B + 62D9CDBCDB18D8BF57B3EF242526E1D0E12870B93CD20C95DE22E6DFAFBD504D + 00BCFFF52FD4F6E553CCB2005A8E461E467C7C021381DD5C9C10B63C9459AAA2 + 2CBCCF9C93CFC793FD024D8ED12B51F3BE5C083DD89090624C29AF5F4C32C08F + 1D0240DF2516113615825AF30048A5527C3967063CBC029892F88349133172F8 + 308B2A4F4B6E611982FBFA9B1C3B1C7914D1B1F14CF4AF2CBF2D5388E53D3BBC + 20C200583ED56801E6DC2E5F96730992B23CB890BE404DDAE2B9F3E7C3D9D9B9 + F534D70E7F08ECE9667C9B7FBB1C031E6DCA0A8585C5581AF603EC1C9C211696 + 42AD547E45CCFF2773A03603B08D0030270BDC11B55A8DC50BBE20A6C8059BCD + 86BBAB33C2962D627A034B49115F80C77BFB30AF6B24B5F86AC90A28D43AA2B8 + 828EFE5A4767CFE0F8A81DB99D02D09927468A8B0AF17DD832B879FA327B7FFE + 7E3DF1CDE2F97074B00C84DB6542F4EBE58DEA6A094257AE81A8BA8E8935D5A2 + 0A3CF7FC50949409253275C3C8C48311D73A01A0734F8C54DDFE13FC1BE9F0F4 + 0964AE8CB7B7273E9D3605EEEEAEAD7EEF5E8590B77B8FC61380524115313539 + BE5DBD11529992D93C1555F2B164FE1C04070763D7DE28DCCCCED50B2B6E8FFE + 2339FA44870058E28991B853271179F0003CBCFD0DBBBF5A35A67C381E6FBD31 + BC313B982F5AAD0E878F9EC2A1A813E059DB31C7C4A2322C5D3007AF8D180679 + 838A40696020DCC8CEA584E5B7475F4A893E6E36004B3D30919E9A8CDF76ED64 + D6EC6D6CEC2197D721C0B72742DE79132FBFF00C783C5EBBC6512A5538F77B06 + 0E1E3901615535ECEC9D98A5777AE96BE1BC597875F84BB0B3B526E950DB0461 + DF515CBE7C459B792979B0B0ACE866B700A0A5A8B000DBC237A0BE5ECE6C8FD3 + 1BA52A4503AC791C0C7D7E0806060721D0CF171E1EAEE8E1E4C07CA74E2A8348 + 2446496905326FE610E5FF603A3FBAD4A685EE3A755AADE6E92143B8733F9DCC + EC3CD100EE40C82F2AC3DACDBFA2A29C8FDC1B7F88B51ACD88D62074F9132374 + 7638792C0AA763A2C1B5B665566ED91C2E09924AD240698C3748188300D33E1B + 6E90A02B3BFA0E128D46857A52E3932B2F6751F8CED9C33FCADEDE2EB57FDFDE + 3D3F9E186284406786E5ABB711984EE070D8381B1F832A6159AB10EEDB1323D2 + BA3AC49F8E457A4A326472791BB7C86889D2EAC65B64E4F4826B0929B9772A35 + BAADD9BF9FA9A1CF7B7DEC278FF038D6B79E18D09F434390C965581FB1074E24 + E38C7A6D04711731B272F20884530C044AAFFD774549E185360174F5132374EF + 909F978B9B3732515C58884A4105C4E22AE342288B5880BBBB07642413CB6B85 + A12C8A4ACE488F3BDFD2584386BD39D4CB3730AD7FBFBE6C11890F2A9512FDFA + F893F4EB075F5F5F2666DCCC26101262E8BD431981F0C6FF4378609E18D137DE + 234467095ADAFBC4080DA1878B7B925AADB2B1B1E630CAFB91B84203F0BB0381 + B18496213C144F8C78F7EAD58BCDB24E256E15D0A76F90010251DED7AF0902ED + 0EC909B1100AF826101E9ADBE57D7C7A07B0ACB9E9363676017DFA0D30BA81DF + 5D10B2FFBC8594A433F4F69911C24303A0398420A2BC3FA3BC5F230851550DB2 + 1808A78D101E2A00CD201077F0F3A7DDA1C925AAC404424E1384870EC0BD2118 + 2C81768B2AD24CD1EE909C781AFF03078EB14FEB114BC00000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Find_01_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000DF04944415478DA + ED9B095854E51AC7FFB3B1838280B2B8445E25955C7ACCEA9657CBB2EDB6A865 + 66E59EADA6B9A5A6628BA5E58A2866DE2C3311C30DD90444249704CD050C0564 + 6798196080D9D773DF73464627516700A5477B9FE7C09933DF7CE77CBFF36EDF + C6C355327ACE774CD4E28910D7EBB9CF9131E9B89DF2FEAB43ADE74B56FF8C1D + CBDFE6DDEA7BDADC8005B08100545D06D096D26600D62F9A0849C35D0D600201 + 30709FEF4A13882400D2CB00DA52DA0CC0BA85132053FC03A0ADDBDF76002208 + 40F55D0DE05302A0BC8B01AC250035773380350BC6A356656CEBF6B71D80B66E + F8D572DB01DC8DF20F80B67E80B6967F005CFDE1E38DE9B7C509D24DE2CAC5B2 + 513BC35F6DF36EE7350056BC3DE496DED06466B039F91CF2CA6AFF16109A0470 + ABD5606B6A2EF44633CE97D6C41384116D09A14900E65B4C60CF917C28B57A18 + 4D0C724AAAE3E5628CDA123E54FBB70160BAC5047E493C8EDC9C1C941617415E + 23457D5D9DC1A8D78A1806661E0F32FA5FC10393CF30BCE3301952B38F1EC8B9 + AD000CA6D607A0D16AB16B6F3CE212522096C8E0E2EA0E6717578844CEE00B04 + 1008845C3993C90893D10083C1009D560DAD46499F8D398C199B35B5AAEF7373 + 0F296F3900BDB1F50098CC66C4C4EEC596ADD160F842787AF94028728241AF83 + D1A0E71A6C369BC05039EE81F87CF0F9044428E4CA391120BD5E0B45BD1C1A55 + 839C619845D9999A28E050AB74589A04A0335A1E666664528B2AD728E4283891 + 0C18F568EFE3CF39579D46C5BDF187863C0DAF0E7E3041801143C2A0D31BA1D1 + D1A13740ADD1A15EA14251511152F6EFA187E491C6B8811A4F2653455AA139C1 + 18CDAF9F3C9A58D8AA00666C486356BEF338B406738BC966641EC597CB57C3CD + D3875377B5AA011D3B0660F4D8D7D1FFBE10383B096DCA2BA9D12C003577182C + 30E8D01190860639E263B6531D0AB8B97B42A5AC875C2E5591DABC929D9198D8 + 6A00A6AF4F6556BDFB04D4FA9601484E39886F5645C2B76330451433298016E3 + 264FC5E0417D21A4B7CF8A50C083880E211FE093E763A89C866D3869825263E4 + A284426D403D1D6ABAC69AC8E9D367702A3D0EAEEE5E5C796955B981614C93B2 + 3312B6B60A808F225398D5EF0D834A67013037CA7113A8AD2844D1C983F00FEC + 02834E0BBF8040F479F82928092A7B332721A9B388ECFCAA3B4F7D61108A25F5 + 38925B06ADDE64531F6736A491AC599A8C26047AF1B17BDB66FA82C7F989AACA + 1283D9647EF964667C7C8B014C8B4866D67C400FAB3335A72E141797E2DD69B3 + E0ED1B082379F290EEDDF1FE7B53E0E5EECABD650F673E04FCEB773FB406138E + 9DAF4009C1F8AB90F9A341A5C303613DD15027C7B68DABA0D3E9C861F2211597 + 294C7AC38053C7920B5A04E0C3B549CC9A0F8743A1751C001BB6DE7E6F3A545A + 338442113AF875C0DC3933E1E1E6CAA9BA3B359EC7B3AFEF5551ADC01FF9551C + 105C9597AA545A0C7DB0172AE47A0EC29675CBA84E3E854B0DEA6A25595919EA + 471C8D0E364FF4C19A0466EDB467D0A0B10058F05DB2DD15555E3C859AE25C78 + 77E8485E5A8561A326426BE2732AEFE12C687C8F37AD87692C42B0F8023E023A + B4BB02462AC71B4FF5433901602194151560FBA635F06CDF01B2AA3216C407D9 + 8713229B0DE0FD55F14CC447CFA25EE35888552895183B6E0A7C7C83386F3F6E + D2543CFC603F5277C0CB55C085B1E64A1DBDF5526903A5CD66E41555E1B561FD + 389085321DE42A23D21376E3D4F14C3839BB42525154ABAE5177752459B279B2 + F756C63111D39F27CFEB18806DDB7720766F222539DEF0F6F1C1FC059F9077E7 + 738D6721B454A8EDA8A95723FD543E460DED6BB946AA9227D64245E1336AF922 + F20522CA1124944328A79DCC888F6816807756EC632267FC17F2CB00167F7FC0 + AE4A4E27FD049F0EFED0AA95786AD45B30893CC9D3F3E026BA7EEBEDCD3547FC + A78FB57C6CFA59BC3838CCFA1D6BAA25353A1CCF48C191B424CA1C4590894BCF + 671D4EE8DD3C00DFEC652267BEE0D0B0F8C58BF9983DF7532EECB159DEB2952B + C9EE8568E7266CDDE126AA6CCFA1B378EED13E36970BA43A34289458FBC5275C + 9A2D2EBF44A9BCA1F71F9989E71D06F0F6F2DDCCFA992F1100FB274676C4FC8A + DDFB1229DBF3C0A0471FC32B235F22AFCFE7BC7E6BCBBECC1C3CFDB0EDCB655F + 163B9719FD7D0464922AEA33D442A9AC9B75F270E20A87014C59B68B593FEB65 + EBCCD0E73FA4DCB4820B47E2E0446D65E3FE932FBF09815B3BB891D7771258AA + B64BD599EB971A3E28D47ABEFF480E860DEA65F33DDB732D253338919986DF52 + 13E97ED45F908963C80C463B0C60F257BF321BE68C74687274F294A9103859F2 + F3399F8623A0534778BA08C829D95D85DD927434174306DE77CDF5D25A3D2E5D + CCC3CE2D1BB82EB6545C7A3A2B23BEBFC300262DDD6901E0C0DCE04B2F8D4450 + D71E948848B1F4DBD570777783970BBFA9EA5B2C29C7CFE3B10742AFB92E5518 + 515D5D83755F2F840745227169819434A0A3C300267E19C344CD1D655D1FB0F4 + C7D41BFE98ED9E66EDD980CEF784425E5D8557DE9DC7657BEE4E4DBF7EE62F06 + C16BB28CAD0CEE1B623D3F987501FFEEDFE39ADFD4A94DA8ADABC7378BE7C0CB + DB17152505E6ECC3F102D82136CF30E1F36826EA935789A87D1AC0A6BFA347BF + 866056032806AF89DAC4E5FC5C0F8F727E3607684D1DC8C8BE8087FBF5B08262 + C714D9C11B1D1D4A4503BE5A389B0350595A003201BB6E6D5368FC67DB99A879 + A31D5A233472C4088B061080652B2C2670A5761ED7EB63FD218F4E5AEA16324F + 5DC4803EDDB9C4886DBCF92AE75927AFC5B2250B5A6602E3966C63A2E68F2100 + 9651EAE55BD36E5AC199E4ADF0F1F1272758873153A6C1C5DDF3BA4E9D350F9E + 854B239FEB6A48631D03423B5BCC82FE1C399D8FFEBD429A2C7FA9201F51116B + 1A9D600E694018EC109BFBBFB5F867266AC118EB32397BE4F3254B50459D1476 + 7C6F3C458401FDEE77F0AEF6CBEF670BAE0B203D35050971FB2F87C1AA5D5987 + E3473A0CE0CD453F1180B10E0188FEE517A4A6A573C35E0F0E7A08635EBF71F8 + 6D894F38997B09FDEEBBA7C9EF2223D6A2A8A814CA0679F313A13716FEC86CFC + F40D54D55B00ACFCE5E626A0A811A3E05802FC03BA9016683179DA6CAE1B6B15 + 3B32A11B15E91D12603DFFE3CF22F40BED764D19AD568B191F4D87BBA737AA28 + 1536E9B461F6CE25D80018BB600BB371E19B0EAD156643E1BB53A7C0D5C387EB + 0C4D9A32050F0E1C60F7EF1D9173174A707F68D76BAEA7A5A6514A1E0B91C889 + 3A43651749FD7BDA5BA70D80D7E7FF8FD9B8689C75B5B8BD121BB303C9C9299C + 07EEE0ED85F0F085DC50556B4B6E7E29EEEFD1C5E61A1B8A677C3C07660820A7 + 644CAB52CCA308F075B3008C99B799008CB702581B7DD0AE4A0C3A0D170D3A05 + 76E352E211AF8E46D8FD7DAF29C734C31E4282FDACE77985E5E8F3AF609BEF63 + 76EE425CC201CEFB5755142B35D5AA80660F88BC367713B371F104873580955F + 63A27120F900BC2924B2535A5F2D0D47A78EFE0ED77323C92FAA44EFEE41D6CF + 8585455810BE146E1EED512D29835EAB9D4DEAFFAD23755EB34A2C2A7C22C475 + 8E03D0EBF598376B3AA9A208028100BE3EED11BEE81378B8BBB71A804BA562DC + 1712C89DD7CAEB307BFE1268F4266AB886F5FE46CFF6FE610762BFCB6B198016 + EC1851C9A5F833730FFC3B75E6E6FE3A070761EA3B93E1E2E2E270631B13A120 + FFF6D66BC5E512F4ECD6093535722CFC7C39A435F59CAFA9915662D0438FA0A4 + 5C2257EAD54FA44647FDD16C002DDD317238FD20B66CDE04FFC0AEDC9B09E8E4 + 8BB91F7F80A0C04E376EF04D8900656219A99A0A9F2D5B8306A5969B3C955695 + 62FECC0F11161686CD3FC7E25C6E9E5952593CE2F7F4B8BDCD02D01A3B4612F7 + EFC3CEE8EDF0234DE0667F8D7A4C786B0C9E1F3E947B63CD997B361A4D88D9B5 + 1F3B62F7C2C9D9D2DFA8969663C1AC0FF1E4E383A152EB088A9A837036378F91 + 54148F3871286E4F3300B4CE8E1159491E4ACE1C467B1F3F320177A854F5E812 + 1488E79E1D8E07FA8751CCBE6A72F40644DC5D44F8ED5836A27FDD0B89AC066E + EE5EDCD03B3BF43567C6FB1836F451B8B93A5338345E81B06D17B2B24E1ACF9C + 481F2029BF74CE2100ADB963E45261013644AC8642A1E2A6C7D989529D46CDCD + 0C3FF2D040F40DEB85AEE427FCFC7CD0CECB83FB4D7D83125269354ACA2A71E6 + DC796AFCEF5CCF8F4DB559617B9D26A3D1F0C0C081A28FA68E87A7872B07A011 + 42FEA5727CB3EE0754569422EFECEFD54683E1F11B41B8E51B26D8E8B06F772C + 92E2E3207276E5466E05421139492DA5CE06EB0209ABD763BBD0971748B0991D + BB82C460D04141393EBD79158FC117EDFD3AC752B73B23B44748C0A4B123AD10 + D8C8B078D90682E905A150808307E2219394DF10C26DDB31D2505F8F034909C8 + 3C940EA54A75932532466AB4FEF21219153BE05A4229F7F75A83697DEEB1E45A + B6DC53AF4CBEC749E87CB14FEF50210B41A9526255D4567879B8E399271F2773 + A946CEF90B04613F0781311B5FAC2C293C7A5300B77AC708DB77C8BF90877367 + CFA0A8B01055E24A5457CBB8EB1605E0C1D7D70F4AF2C3AA3AC9421EC3A46767 + 261E69AAAE81839F7BA46350D7C3A13D7B08A4E41F743A2D7ADEDB99C26F3082 + 8282389F712E9720A4C4B373874A8230FCAF10FE363B46CC97D70835F621ECDD + 2FC04268E7ED9BA6D7EB5C5C9C855CE383C9AFB000821B21709AD034843B62C7 + 48A76EDDBA0978CE1964565DEEEDD1CB02811A1F147C05026B0EE9290990884B + 6D20DC313B46020343BAF09C45992E2E6E5DEEEDD9DB6A06C15741C8FDF3220E + A525B3D367560877D48E115B08BDA8F19DB9C6075F062195D522878390648570 + C72D97B78140E610DC9935872B2621AB2608E7AF40B8E3005C1F82451358B390 + 51678A3587F4D424FC1F354BCB4F885155620000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000DF14944415478DA + ED9B095C54D51EC77FB3C1B02628C8AE56226A646AF6485F9B657D5A5E7B964B + 9B8A5A6A6A96968A42D9A2951BA998DAEE1335F599811B8A40590A968A18CA26 + C332CC0203B3EFF7FDEF1D1A99249941943EDAF97CE63377EE9C7BCEFD7FEF7F + 3BE7DCC3438BF2DC9C75CCDA852F43DA64466797E4E51B91BE389177B9FB71E9 + E0D9D99F3169C9E3206DEC7C0029CBBFC5E625133B01C0C2714E0D58B525FB8A + 0A3D65E43D9D0F600D01A8FB1B9840A70158BD601C64EA6B1AC0CB04C0C2FDBE + 264D601501903703E8CCD269003E4D7A190ACD3F003A5BFECE03904A0094D734 + 80F904407B0D03584900EAAF65002BE6BD84069DB5B3E5EF3C009D2D78CB72C5 + 015C8BE51F009D7D039D5DFE01D0F2C7EB6BB3AF8813A44E76554B154F6F4D1E + D9E9C3CE0B007C32F1EECBDAA1CDCE60C3DE42145735FC2D20B40AE072ABC1F2 + 4D0751517206C5458552954CA2A49B08A5D3DD1906761E0F0AFAAEE181296118 + DE2FB059B20A0EEF3B754501D82F030183C1886D3B33F07DC63ED4CA1410FBF8 + C15BEC0391C81B7C8100028190AB67B35961B35A60B1586032EA613468E9B7F5 + 1463C70643836E7D51D121ED650760EB4002369B1D9BB7EDC4E75FA783E10B11 + 10180CA1C80B16B309568B9913D86EB781B1DB1D37C4E783CF2720422157CF8B + 0099CD46689A5430E8D42A86611614E419D280431D92AEB60AC062EB18009592 + 6ACC4FF91052793DBA048772A66532E848481EEE7DE021DCD4AF2FC242821174 + 9D2F6A945A18CC36184D1618098E4AA546FE9123282F3AC66987D8C717243C54 + F575A41586A38CD53EFAD8E1DD65970580D97AE9000EE51DC6A2C5CBE01B10CC + A9BB5EA746F7B0708C1A3306B7F4ED056F91C8A5FE39592301B0406FB4C260B2 + 424F206C24B0B45E079DB414BF1E3E0493C9045FBF00E8B44D0448AE23B579A6 + 2067F7EE0E0760B23AD471D6AA3DED6A54293983CAE3B908098B227F62E7547D + C4E3A3A1B1899CFE45485A201438BE673C733B148D3A87E0044167B0426BB040 + 4D1F0BDD8A5465C08D9121389CBD07F97907E0E31748DA6087BCAEDAC230B6F1 + 053999DF740880996B0E304B270F87D1626F37D143B93FE19D0F9622243C0616 + 931121DD433163FA5444840673DD798B78100B79E0F15C73309DC1441AE078FA + CE6F0E8895BB9F4A851EBD7B44402A29C38E8D1B2899E0717EA2AEB6D262B7D9 + 9F3896979171C90066ACCE6296BD722F75DA3E0015E724983C6D1682BA45C04A + 9EFCFADE3762DA2B1311E0E703013D693F6F3EF7DD5A619D206B02464E789BE3 + 98FBB672C7ACE694D56910DB2B06EA461536AE5DC699049F9CA65C5AA5B1992D + 837EFD796FE9250198BE6A3FB3FCD5FBA0333900CC4973DF04584F7EEAE066F8 + 8A7D21148AE8C987A14FC208CEA10A057CF893F0AD89CE5AC4B88706432257E3 + 97E25A98CC7FEDDC6D361BEEBE350E352A3307E1CB4F179326F1295C1AD0D820 + CBCFCFD10FF5343AB8DCD36BA97B991553EF8796C87B5A366DDE866F37EF4050 + D7EE30EA354859B408E1A15DE125E0C15FCC77AB0D13A9FA518250A550B70EC0 + 62C5E81137A39A00B010AA2A4AB169DD0A0474E90A455D150B626A416EE6AA76 + 0398B6720FB362DA03D0183D03A0D16831FA8509A4FA919CB77F31713286DD36 + 007CB2F3401F81C7232E69831627CAE404C4F53EF47A03460EBF19ACDE942928 + 54EAACC8CEDC815F7FC98397B70F6435150DFA7A7D0F4F9225977B9BBA229359 + F9DA83E47D1D1DCFFB6CAF5B8DD41417A0B1FA2C253941080A0945BFA10F72AA + 7D1D09CFF7407AA665F4A5EBD80C312C38F03C18850A4FDE15CF1DB321B2586A + E49C67DA9205E40B449423C8A037685F3B969391DA2E0053966530A9D31F4293 + C1B3246BEC8B89E07B0790EA6B9138651A06C6F78558C4878F977BAA7FB1A2D6 + 9950ADD49053B5E3AC448E47EFE87FFE3F7A5095F526FC92B31F3F1DD84399A3 + 080AA9E4747E6E667F77DB7701F0EAD25D4CEA8C47D0A4771FC099B32598357B + 3E42236228CBD3E3A3A59F50FA2A24D5177AF4F42F56EC1402EA3506FC78BC0C + 0F0D7395AD546E829A4C70E5A2B7B8345B5A5D4E899CA5FF6F79BB4F7B0C60F2 + 27DF33AB66FE07AA66000BD7EF6BB381DA33C7D0545342D99E3F6E49B803C131 + 711009D89027F8EB8BDA48349916151E19D6CF79BC2BAF08F727F475A9CBCE60 + B32B59E9EB53A190D5D198A1015A6DE31BC772777FE239808F7632AB663DEAD1 + B4F8FCA4645449EBB9B83F6ED254C4DF14075F527DD6FBBB5DDCAC9AF1E3690C + BF2DCEE51C1B66256406472943FC316B37074FA5906E213378D6E3AE272ED9C1 + AC9EF53801707F6164DCF849E07B39F2F339492988080F45003D7DFEA59BFF05 + 65F7CFBFE3AEC17D2E382F6930A3FC6C31B67EB9861B62CBA592E3F93919033D + 0690B8783BB3FA8D279C2B43EF7EB1BFCD068EEE5883A89EB19488C8F1C4F859 + E0D1C82DE08FB8EFC698AAAD2AC307DFE83CDE7FA418FF1E187B411DB9C60AA5 + B21E9F7E98047F8A445249A99C34A0BBC700267CF01DB366F6536E2F8EB2C3D3 + C71E7F12D1BDE2A052D66165DA3A7AF23CCE043CEEDC8D7230FF0C86DED2FB82 + F38D7A1B1A1A9BF0D1C2D9080CEA869ACA527B416E86C09D365DEE61FCFB5B1D + 00DC5C1B64676D9E7EE63944F5200DA0189CBA761D37C81192FC6CCECF9A4147 + 4E3BE71494206180432358CDB192FDB34377137DB41A353E487A9303502B2905 + 99805B5DBB541AF7DE16266DCED3CEF703DEFF2AABCD068EEE58EDD000023076 + CA6C4A5E5A8CF309061B0A597FC86B3EBE58615AB187849B7A388F737F2DC5A0 + FED7C36677086F6F7141A3AA018B53E65D9A09BCFC6E3A93F6D648B229F79DE0 + E4499321E09C6023E62E4C262718FED79DF11C1D3ABE1D3F78B8504B98160776 + D6AF379FF8E978293799D25A292F2D415AEA8A3F9CE029D280788F01BCF4CE26 + 26EDED673D7A472825391952B98A9BF418973809036FB9B98D5EDA5F8E149613 + 809EADFE979DB51F99BB7E680E8375DBF373339EF218C08B291B99B4B9A30880 + 63AA7EC93707DA6CA0FAF41168EA2AB869AF81431230E8F63B2E59D096A630A0 + 7784F3F858510506C4B50E6055EA4A545448A055ABDA9F08BDB0F05B266DDE28 + E76B72EE94E2E262BC9BFC0E42C36360351B2815FE185E5E22B7AFF7A4FC76FA + 1C01E871C179A3D18899D367C02F200875940ADB4CC67877D7125C003CBFE06B + 0230C623006C289C9C380162FF606E3034213111B70D19E4466F9E97936724B8 + B94FCC05E70F641DC0E62DDB201279D160A8EA2CA97F1F77DB74B9A5B1495F31 + 6BE78F455D9303C0D2FFB66D026CA9FEFD288D074A390FDC35B80B5E183F919D + E0873B9910D34695D89850E771516915E27B47BBFCCF86E299AFCF266729808A + 9231A34EF33645800FDB0560CCBC2F99B549CF7BFCAEB05AADC6D4572723A47B + 0C97123FFFC258DC77CF9D1EB5E14E292EAF46FF1BA35CCE6DD9BA1DBB32F771 + DEBFAEE69CD6A0D485B77B4264F4DCCF99B50B5E6CD77E81AD9BD3B177CF5E04 + 0587C264D2E383F75210D63DA44313A19273B5E87743A4F377595905E625BF0F + 5FFF2E50CAAA60361ADF24F5FFD893365DEE6FD4DB1B08C04B4E002BD30FBADD + 90DD664561D626F8F905402010A05BD760BC425A21168BB9FFDD5A6A69C51EA2 + C382CF0B2CA943DF5E8E3CA341D58837E7A670AB4966A381F5FED6802EA1F1FB + B67D56DC6E0097BA63A4BCAC0C8B9217A06B6824B7F6171D158EA4B767C1DFDF + AF5DEDFDB95456CB10DB330CF5F52A24BDBB04F2FA266E5ABC5E5E8B7F250C65 + FF5769CDFA7BB3D2D37E6B17808ED831929B7D105F6E5887D0881EDC93090FEB + 8639AF4F456444D845AF6B5343A84295540198757867F10AA8B5466EF1545E27 + C1DC59D3101F1F8F0DDF6E436151B15D567BEEC923D9BB76B60F4007EC189196 + 1C472D458690B068C7EAAFD58CD1A346E2CE6109DC68B12DCFDF724628B47952 + D46AB561CBF61FB895662F6F5FEE9C525E8D796F4CC388E17742A73711143D07 + E164513123AB39F7E4D143BBFEE731808EDA319297938DAF36ACE7E6ECC5623F + E8744D88890CC7538F3F8C3B6EBF9592252FB7DA311A4DF8F1E702A47FB71332 + 453D7CFD02B9A97776EA6BF6CC29146DFE0D5F1F6F0A87D6F310366E477EFE31 + EB89A3D98364D5E5851E01E8C81D23E565A55893BA1C1A8D8E5B1E67174AD989 + 536F2F2186260CC180F87EE81115899090605C17E8CF5DD3A4D6422E57A2B2AA + 16270A4F93F047B8911F9B6AB3851D75DAAC56CBE0214344D327BD84007F1F0E + C01F104A28547EF4E917A8AD91A0F8E411A5D562197E3108977DC7081B1DD889 + 53D62C7C7CFDB8995B8150444ED24803288BF30509A75DB0C3E6E61724D8CC8E + 7D83C462314143393E3D791D8FC1A22E21D1DBFCFC7C73E262AF0F1F3FE62927 + 0436322C5CBC866006422814E0E0BE0C2864D5178570C5768CA89B9AB06F4F26 + F20E6543ABD3B5F18A8C95843637BF22A363275C2B29E55E6FB4D85617FDBCB7 + 81AD77FF33137A7909BDCFDED43F4EC842D0EAB45896F60D0229E23C38623899 + 8B12A74E9F21083F701018BBF5B1DACAB2C36D02B8DC1B26D8B143C99962149E + 3C810A0A9B75D25A28950AEEBC430178E8D62D045AB2425DA32C89C730D90579 + BB7F6AADAD21773E3CB47B648FDCB83EB10239F90793C9883E374453F88D4264 + 6424E7330A8B08C2FE0C76ED504B101EF83384BFCD8E117BF33B42FCE6E96477 + DF1667215C17D4ED80D96C128BBD859CF051E4575800517F40E034A1750857C5 + 8E91B09E3D7B0A78DE3964563137C4F6734020E123A3CE4360CD217B7F266452 + 890B84AB66C74844C4F5313C6F519E58EC1B73439FFE4E33886A01A1E8F7B338 + 74602FBB7CE6847055ED187185D08F848FE6848F6A06215734E01407618F13C2 + 55B763C40502994354346B0EE74D42A12408A7CF43B82A778CB40EC1A109AC59 + 286830C59A4376D61EFC1F6304F04F8A8C32900000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E024944415478DA + ED9B095854E51AC7FFB331EC0222C8AA64294A5456E6B56EDDB4C5A73DDB73A9 + D4346F99669695844B96A96586B860E92D3312CC2D0D5084105053C116134505 + 84619B056618987D3BF73D677070148141941EED7D9E79E6CC59BE33EFEFBCDB + F77DE7E3E11C193DFB7FCC9A392FA3566D4277CBBC848DF861E104DEE5BE8FD3 + 0D5EFC601D0178C5016079CA2F5754E9692F8C3807C00FD8F8E9C42B0BE085F7 + BE66D6CC1DFFF7B0802F9391B278D29505F0FCACAF98A4791350DBD0FD00E67F + F93D52974CEE06007327382C60E5A69C2BAAF41BCF0DEF7E00AB0980F46FE002 + DD0660D59C0990355ED300C6130033F7FB9A7481950440DE0CA03BA5DB00AC88 + 1F0F45D33F00BA5BFFEE03904800EAAE69001F1200CD350C603901A8BF960124 + C4BD02A5D6D2DDFA771F80EE56FC5CB9E200AE45F9074077FF81EE967F009CFB + E3ED353957240836C8AB728F66A5A6F1C00C611866008FC70BA6DDC10C031B8F + 07057D57D3B1D30CC33B08AB39ABF040E6B12B0660E9E47B2FCB8DF47A03366F + 4FC3F6B44CD4CA1470F7F082D8DD032291187C81000281903BCF6AB5C06A31C3 + 6C36C368D0C1A0D7D06FCB31C686757AA5766D51D15ECD6507D0956660B5DA90 + B2793BD6AD4F01C317C2C7370042911BCC26232C6613A7B0CD660563B3D9FF10 + 9F0F3E9F800885DC796E04C86432A049AD825EDBA8228B995398AF4F02F67649 + B1D22A005B171128975462F6BC45F4C4EBE11710C48135EAB5A4240FF78F7C18 + 37C60C4248903FFC7DBDF06799027A930506A3199552252C8D32484A4FA2823E + 0281882CC613A43C54F552B20AFD61C6621B7DE44046E9650160ED0202397907 + B060D13278F80470E6AED33622B87708468F1D83C103A3E0EE26723ABFE0642D + 74460B7DCCDCFD158D46445F170113B9C11F87F6E1C8815C188D46787AF940AB + 5143A5926BC96C9E2DCCCDC8E8720066EBA501C8C8FC058B96AE406070385993 + 0D1632E1F193A7E0DEA1374328E0D35D7910D29748C083806FFF1C9728E8E95B + 39081A83092633416832212A22946B9375997DD91928C8CF8687972F59830D72 + 69959961AC130B73D33774290093A5F30072F2F663FEC2A5E8151209B3D1805E + C1C178FBAD69080DF2E38E8B4973B18807FE7909B842A6E65C406F6CFED0B695 + 4C5E6BB0E0A6EBC351A336C3420F4652760ADB92D7010C8F8B13D29A0AB3CD6A + 1B75243F2DADCB00182DF6803473E52E971AD3372A51B4770B827A87C342913C + AAFF4044C4DC41ED3110D053F7125380E35D587A4C796208EAD45A52DC4A8A9B + 394BE060D0366B2D1A9D192306F74589C2081575D41A1B54485EB38C73093E05 + 4D796D6593D564BEF5B75F77975C128019ABB3992FA68C80C16C7399A489D2D6 + 84D7A693F9DA20148A10D82B10B3DF9F096F4F0FCED4BD49795E1B6597566F82 + DE6C71286FE002A285DBC7DAA35A63C47DB7F685B4D18A6A958983F0ED8AC5D4 + 269FD2A51E0D4A594141AEEE4E57B383D35F7A6B5516B3ECBFF74167721DC00F + A99BB121651BFC7B06C3A06BC2824F3EA1081F40CAF3E1EDCE6FF77A360D1A9A + 15D79BAC8E6D43F3360B41D9A4C743775C8F2A02C042A83C53828D5F27C0C7AF + 2714D24A16C4D4C2BCF4959D06307DE51EE6CBD7EF87D66807F05E52C75CC042 + 01EACFCC0D14E523B968FFC053636016FA7066EFE321B8F8936F0E35631FBC05 + 558A26149CAEA59C6F39FFB0436C562B9EBDF746EE4869B33BE4A46FC36F07F3 + E126F680ACFA8C5257AFEBE34AB1E4F4D7A625EE6612A63E080D99A12BF25D72 + 2A7EDC964E458E3F027A0620FEC3F729770BD0C3A3759FBF989828F61C2108D5 + 04A335A18A10A3EE89B16F53802CAE3590EB1891B4640EC50211D50832E8F49A + 694772D3123B05E0CDE5BB98843747A2C9E01A80D1E35E055FEC43A6AFC16B53 + A7E196D8817017F1E1E9D6BEE9B72652A506C7CA1514575AFE076B0D7A52F6D1 + BB063AF635EAADA8A837E260EE1EECCFDE4595A3088A5AC9F182BCF4984E0198 + 9A90CE2C9FF610D7302B715FED6EB7018D4A8ED3FB7722283412264A7BC39F9D + C4EDEFE1216C317DA6FDB47AC11974311BE183FC7D5AC0D435E0A161039D4E2B + 911BD1D8A4C1F28FDFE7CAECDAAA32B22473CCEFF919C75D06F0C6B2342671FA + C350EB3B1E483752F0DBBC3D9DAA3D6F0CBBFB3F78EE9927B8A8EF251674B88D + B6A44967444DBD866A001B4AAB1478E08E68A7E3ECF8253B8F91B236110A9994 + FA0C4A68340DEF1CC9CB58EA3280D7BFD8C924BEF528D4BA8E03981D3F0F929A + 7A2EEF4F9C321537C54473A6EF26ECBAA106B69FA4D2E8F1EBB1720CBF7D80D3 + 31B66A95901B1CA60A715F56065912F51714B59BC80D9E7719C094A53B989533 + 1E83AA19C0DCB599ED36F0E7EE0D08A08E0E5B9F3F36F675302277F8B8BB16FC + CE17E61C971939B445E15D078B71F7E01B2E385FA234A1EC54317EFC7635D7C5 + 96D74AFE28C84D1BEC3A80CF7E6256CE7CDCA561F1471E1B85B03EFDA9109153 + FD9F006F6F4F02D035E67FBEEC39741277DD72FD05FBE54D16D4D5D563C5A278 + 785326AA9594C8C902825D063079C93666D5CC270940C72646D827F5E8E34F21 + 222A1AAA3A2912D77C4D818BFCBF93D1BF3DF9A5F01486DD742180069D15CA06 + 353E9B3B0BBEFE81A8AE28B115E6A575E829380198B4782BB3EA9D518E99A105 + DFEC69F3627620A370C75708672D8072F0E8A9715C9342BA35DBD911F02F310E + 9027FCFBE628C7CFDCDF4E63686CBFB387B8CE11DB7163FB1A9AA6467C1AFF2E + 07A046520272810EDDDCE9A4573FDDCCAC9EF5B44B93A38F3F31CA6E0104E0B3 + 655FC2CBCBCBE9B8804B677620BC4B880BACE4FD5682C183A240098153DE764E + AC685029B1787EDCA5B9C0C4853FDA01B830373869D21408DCD8418A06C4CD9D + 87B0D090B66FC843735798E7A813CEC7C29CB3C1467586B1EFDBFF47296E8EEE + DB6ABB6525A79194987036081E230B887519C0844F363149EF3DE3783F60E1FA + AC761B28DEB70362CAFBECF8DEE3CF8F432075855DBB6BB3AE17A9956E8B6E69 + EFD05F6708409F56CFCBC9DA83F49D3F37A741E9D682BCB4A75D06307E410A93 + F4FE7314553B6E01C9C9C9C8DC93C30D7B0D1D360CA347B79D7E2FC5090A8B08 + C080D601AC4C5C8E336724D034AA3A5F08BDF2D14626E983E75D7A47A8F8C409 + CC9BF711824222C90AF4F8FC8BCFE1261275F87A57E4F71315B86940E405FB0D + 0603664C7F0B5E3EFE9052296C351A623B3A97E004E0E5F9C94CD2EC170980FD + 35B9251BB2DB6D804D857F64AC47CF5EBDB9CED033A3C72132AADFC5EFD64EB7 + E0FCC383A25A62D9D1539588BD21E2826BB2B3B291BA690B442237EA0C559E22 + F31F800E8A138097E67ECF24C5BDE8784DAEA3B22935151919995C040EF4F7C5 + FCF9F15C47A6ABA5E874156EBCC139C6B0132833DE9E051B0450513166D0367D + 40196051A7008C9BF31D0118E33280C646355E9F3205BD8223B992F8A597C6E2 + BE11F7743980E2B26AC4F40B73DAB7E9C7ADD8999EC9457F6975B9465FA70DE9 + F480C8D8F8F5CC9A0FC742AAB603F8E287F65DE0AC541D3F0C55D549F853BFC0 + 64D463FACC99F0F3F36B33E8311DF087A8B040C7CF53E53518745DA8E37769E9 + 19C4CD5B084F6F3FD4C92A613218DE25F3FFDC15A84EFF6F4CDCB7CC9AF8719D + 7A57D86432E19D19D36185881B0D0A0CF0C347733EE0FA065D25A51229A2A3EC + 758652D5807767CFE7C60F4D063D1BFD2D3E7E41B1995BBE2AEE34804B5D3152 + 565A4A4AC7A3675018379111191E8A0F67BF0D1F6FAF4EB577BE9457C9D1BF4F + 30EAEB55885FB004F27A35176BEAE53518FAAF3B51512553694CBAFBB252927E + EF1480AE5831A2283F01C9D17C0485F6E19E4C48EF204C9E341E8181016D5E77 + B1422824B08763BBB25601C6A8C5478B13D0A8317093A772A904B367BE89D8D8 + 58ACFB7E0BFE2A2AB6C96ACA9F3A94B3F327970174D58A91F49F7760D3C68DE8 + D53BC23EFB6B3161FC4B2FE2D191C33B9D1D2C162B52B7FE8CD42D3FC14D6C77 + AB3A7915E2DE79130F50C0D5EA8C0445C741385A54CCC8AACB9F3ABC77E77697 + 0074E58A91FCDC1CAC5FB7961BB37777F78256AB466458089E7EF211DC3DEC76 + B8B9B975A81D83C1887DBF162265F34F9029EAE1E9E5CB0DBDB3435FB366BC81 + FB87FF1B9E1E624A87961608C95B515070C4F2E7E19C5B6555657FB906A00B57 + 8CB003A6A50599E033366E7A9C9D2835EA75108B45187AC76D8819188DB09060 + 0404F8C3C7CBFE549B48817AA512D535521C3F710A070E1EE27A7E6CA9CD0ADB + EBB45A2CE6DB860C114D7FED158A2F1E1C80B3104E9755E1B315DFA0A65A82E2 + A387EA2C66F388B6205CF615236C76D8B16D0B76A5ED8448ECC18DDC0A84220A + 92062A9DCD8E17241C4180EB3EDB5F90602B3BF60D12B3D98826AAF1E9C96B79 + 0C3EF6EB15B1C5CBCB3337BAFF752113C73CED80C06686B98B57A387AF2F8442 + 017EC94C834256D526842BB662A451AD46E6AE74E4EFCD8146AB6DE715190B29 + 6D6A7E4546CB0EB85650C9BDD660B6AE2AFA75B7923DEFC1675F8D72138A4FDD + 18132D642168B41A2C4BDA005FCA380F3D3082DCA50EC78E9F24083F7310189B + E5899A8AD2031D007079578CB07D078D520A35152E5A950C06AA1C8D3A762688 + 6936001E658C5ED0D033D036C8E2790C9353989FB1BFB5B686DCF3C89DC1617D + F2A207F417C8293E188D060CE8178188F0708485857131E3AF2282B0278D9D3B + D4108491E743F8DBAC18B135BF2374364B74F45D6116420FFFC06C93C9E8EE2E + 1672CA8787877100C2CF42E02CA1750857C58289DE7DFBF615F0C4B9E45691FD + FA0FB24320E5C3C25B20B0EE90B3271DB25A891384AB02002BA1A1D745F2C4A2 + 7C7777CFC87E03621C6E107E0E8422CA2A7BB377B3D3670E0857D58A11670883 + 48F9084EF9F06610728512C73808BB1C10AEBA15234E10C81DC2235877687109 + 451D4138DE02E1AA5C31D23A04BB25B06EA1A0CE14EB0E3959BBF07F7F880B5E + 405FF7F40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E4F4944415478DA + ED9B095C94651EC77F7331030384C821A7A629A6A2E666A99F3E6D9A699BDBB6 + 9DAE999B4A6187496659C622DA61696522A258BAD5E681BA6665801722909A82 + E52D2A200CE71CCC70CC7DBDFB7FDFC19109D66610A1D57D3EF09977DE79DEE7 + 7DFFDFF77F3D170FADCA33495F316BFFF10CEA1A2DDCF7E59B72D095E5B5A7EF + 771E27A76EC186779FE55DEF7BBADC606AE297CCDAA46904C0DCA582B7579257 + 6EC1C6F7A7772D80A7DFFE27B376E1B3A8FD1D005894B2199B96CCEC5A005316 + AC2700D39D005666ECEF52A1E7FC6D5C2B009BB0F983B8AE05F0B7373F67D626 + CFF87D68C08A8DC858FA7CD702983CFF33267DD14CD436743F80C52B3660CBB2 + F86E00903CD3A901695B73BB54E8979F1ADBFD00D61080DF4314E83600AB17CE + 84BCE9A6063083003812A19BD204D20880A2054077966E03B02A690694CDFF07 + D0DDF2771F805402A0BAA901FC8300686F62002B0940FDCD0C2025713AD43A6B + 77CBDF7D00BA5BF0D6A5CB01DC8CE5FF00BAE3A6778E993084110927F0C11BC5 + 304C0C8FC70BA5D3A10C033B8F07257D56F3C05C6418DE4FB059F6151DDA73FA + 7F1EC0E0C1F7F97A0779BFC463F871422FAF01126F29C4126F884462F0050208 + 0442AE9ECD6685CD6A81C56281C9A887D1A0A5EFD6D38C1DEB0D6ADDBA33670E + 68AF1B80D7D6E676BA1364E8C9AB8B8F4176FA30C46209FCFC03211479C16236 + C16A317302DBED363076BBE381F87CF0F9044428E4EA791120B3D988E6460D0C + BA260D69CCC2A202433A70A05342551B009FC4DFD769C297CB2AB120F943D4C8 + EB1110180296AEC9A023217918FFE043881D3C0861213D10E0E7839CE355D068 + 4D8808F243834A09796D152A4A2FD0FF79D20E1124DE3E049381A6BE8EB4C270 + 94B1DA9F3E7628BBF4BA00E80C35C8CD3F84C54B96C3DB2F10ACBAEB754D08ED + 158667A64DC5F0DBFB422216BAD4CF3A5A06AB95815A6F454C9F70F0798E4733 + E875387EE4471C3B940793C9041FA91F74DA4668340A1DA9CD934579D9D99D0E + C07E8D04B276E760C9C7AB10141A496DD96125159E11FF02C68D1E0EA180CFD5 + 110978744CFFA40DF487FC535530982CB0D1CD4D563BEEBA3D1A1ABD8DEB98B1 + E75893F931271B850539F096FA73A6A5A8ABB2308C2DAE282FEBEB4E0560BB06 + 02FBF30E22F9FD4F101C160D8BC988E0D050CC9B3B07112101DCDDC4423E2442 + 1E78BF72BFC72ECA09801506B395BBBF913E1FBAAB2FE713AAD466C8D4E4336C + 0C646517B063E37A722E3CCE4FD4D55458EC36FBA3C70A32333B0D80C5D63100 + 65E51578EEA579E811144EEA6C41BFFEFD91303B1EFE526FD0CB86544CCE8DDF + FEB5C595F524B4AD0502FBD6C11D4FB8F356D2163EF74CC5750668284D6F6AD0 + 60E3DA4F3993E01320456D65B3CD6C19F1F3E1DD259D02C06CF51C8099C2D68C + F8396836DA21148A10141284C4375F879F54C2A9BDAF98DFE6ADB72E958A26EE + EDB36FDEC842B03834416FB261FC1DBDB936D8A7AAA837A15A63E6207CB96A29 + B5C9A7706940835A5E5898A71FE369746817006B836C9997B6CBED866A2EFC8C + FAF233E8D13394BCB40E0F3C19078395072F52775F7AF38ED23ED8190F8D407D + A3DEA1019721D031FBC93E61B3DE823F0EEBCDF90CB65411001642E5A5126CFE + 3C057E013DA1ACAB6441CC2ECACF4AEB3080B96B7298E52F8C83D162F7E8ED37 + 376BF1C43371247C04E7ED67C6BF887BEE1EC679727F6F815BD996DE68A6FB3A + 84365A5A00981CC72CB626AD19F7C446535E20E040962A4D9C39E466EDC0CF3F + 15C04BEC0D79F525B5BE5EDFDB9364C9E5D95E5DBD8FF9F4C5FBA1377B06E0AB + 0D19D8BA238B929C1EE8D9B3279292DEA2D8CDC72D24BC80E75EB2C9460B1327 + BC03C2E563130BA20582BAC9807177F4E5EADB282728AE35426730217DD942F2 + 0522CA11E4D01BB4738EE565A676084042DA5E66C54BE3A1333900BC99EE9E09 + 1CDFF52F04F60C8151AFC5C4279E8555E40B8988071F11FFBF5ED3DA18268F8D + 4575BD16BF94D6912FB1397E6FC75AEC942D4E1A1DE3FCDE64B0713EE1A7BCBD + 3898B38B32471194B5B2B385F959833B04604EEA6E2665F604684D3677AF47F1 + F98B4898978890F068CAF2F4589EB29CEC5E087F1F01F86EB7E278123399DE89 + 52396AD4ED683001B153DA3CF1EE1897D3250A139AC80457BEF7169766D75695 + 9113B70CFEA520FBACC7005E59B98B497965227972F7016CCAD8866DA4FE126F + 5F8CBEF78F98FCC4235CD8928A3D12DFA528347A9C93A94810D7E73090BA8F1F + 39C0E51C3B7AC5264B19EB52A194D7519F410DADB6E1F563F9D99F780C60764A + 16B372CE9F38D5624BE267BB7FB381F30777C28B6465E3FE84C7A681EF7D0B7C + C8EB7BB5786CB7026A7BFA4EBE834D8282037C9DA7E4EA26DC37A2BF4B35363F + 9091191CA50CF1C77DD9743FEA2F286BB792194CF618C0CB9F6632A9090FA1D1 + E07E289D36231E7C91233F5F90FC0EC27B05C34F2270E6F21D2AAD2ED5EACDA8 + D368B92CB0BC46857B86DFD6A6BA8C32C5B20BC5D8F6E51AAE8BADA8951D2FCC + CBBCC363002F2DDFC9A4BEFA6734EADD07F0E09F1F4544EF01948828B06C790A + 7CA53E1C80CE2C76D29006AD1145E72A316658BF36BF2B9AAD50A9EAB1EAC324 + F85224AA9595284803423D06F0C227DF3369731FA64E880340F2BA3D57BD98ED + 9E167EBB0651B70E84465587275F5C409ACB83D4AB7DFB677E6510BC76EBB896 + B123AE08BCBFA804A362FBB6B9A6813A4DEA86467C943C1FFE3D82505D51622F + CACF74EB2DB802F8E83B266DDE5FDC1E1667476D1E79EC2944B21A403138EDB3 + 759CEAB3F9BE807C80E01AC79B7E7DF9819F4B71D7905B9DA058B360D37613FD + 6B9B9BF041D21B1C801A5909C804DCBABB4BA5F8653B98D5F3FE4A00DC9F1899 + F4F0A30E0D20001FAF4881D4C7E74AE3D43A0B847C19D7E5E55FE3085CDEF152 + 0C1FD887EB28B1C2DB5B39CF068D1A4B17275E9B093CBFF41B66F5EB8F3A6786 + DEFD62EF6F367062F7D7080C0C2127D88029CF274022F56DD7A93B80F0B81B5E + F68FECE77F4372B98DBB0645834BCBE8FBC19365183A20BADDFA652517919E9A + 72D9099E260D88F518C0731FFC9B5933FF718F264793162E428D5CCD8DEFC5CD + 7A0123860F75FB5A4FCB91D3973034A67D00B9FBF6226BE70F2D61B0EE9BC2FC + CCC73D0610B7649B03800773831B366CC4AE3DB9DCB0D7A8D1A331F569B7C26F + 874AD1D90AD280A8767F4B4B5D894B9764D036693A9E08CD7C7F2B93FEE613CE + F5014BBEDAF79B0D34D7D7A2E4701642C2A261B3181137E70DF05B8F7AB89109 + 5DADCAD0DBC29CC7BF14CB10DBBF2D00A3D188B909AF42EAD70375940ADB4CC6 + 5877E7125C00CC783783497FEB298AABEE6B001B0AE366C641E21BC875869E9F + 158FBBEF1CE1C6DD3C2F272F546248FFC836E773F6E560CBD6ED1089BCA83354 + 7981D43FC6DD365D1E69FA3B9B99F405933D5E23B425230399D97B380F1C14E8 + 8F7716B1DDD3CE9F73395D528D21B745B89C6343F1DCD7E693A3144043C99851 + D7BC8022C0871D02F0ECE28D4CFADB5308806399DCB2AFDD5B2E6F3119B868D0 + 2BBC0F97123FFED4640C193AAC4D3DA603F6705B54B0F3B8F8520D06F50D77F9 + 7DEBB66FB0336B0FE7FDEBAACBB506952EACC303227F4FDEC0A4274E712E93F3 + A46CD9BC1959D9BBD18342A2C9A4C7874B16232C34C4E376AE562E96D7E2F6BE + 577C4269E925242E5A021FDF00A8E495301B8D6F90FA7FEC499B2E00A62DFC17 + 0198DA210066B319AF2524C006216581020407066071F202F8F93A12A3CE986C + 2995C931B04F2FEE58AD69C01B6F2F86C16C23C10DACF7B7FA0584C4EED9FE59 + 7187015CEB8E119D46817305DF22A4571437911115158159B39E834422F158D8 + CB8950546880F35C79B512FDA343505FAF41D2BBCBA0A86FE486C5EB1535B87B + D4185454C9355AB3FEFE7D19E9BF74084067EC18C9DD9F83F59F7F8E90F0DEDC + 9B09A3EEF15BF3662322CCADCCF4AA4556AB0263D2E29DA52968A2DE213B79AA + A893E1ED79AF20363616EB376CC7A933C576794DF9634772777EE73180CEDA31 + 92B9F37B6CD9B409C1A409DCECAFD58C997F9F82490F8EA53E41C7468AAC361B + B66CFF81FEBF8397D861562A4515125F7F050F8CBB173ABD89A0E8390827CF14 + 33F2EAF2C78E1ED8F9AD47003A73C788B2A2181527F21110184C2620854ED788 + E888704C9A34117F181E4B31BBD5E4E8551C84AFB7170A0E172263DB77902BEB + E123F5E786DED9A1AFF9735FC6F8B1F7C0C75B4CE1D07A05C2C66F505878CC7A + E268EE087955D929B70174F68E91B2D212A4AD5C81E6661D373DCE0D7D1BF410 + 7B093166D4480C8B1D84DE9111080E0EC42DFE8EA1AFC6262D144A152A643538 + 71EA2C7E3C7C84EBF9B1A9365BD85EA7CD6AB5FC61E44851C2ACE9E464BD3900 + 97215C2CABC247ABBE404DB50CC5278FA8AC16CBB8AB41B8EE3B46D8E8F0FD8E + EDD895B91322B13737722B108AC8491AA90365712E90707A3DAEFBEC5820C166 + 76EC0A128BC58466CAF1E9CDEB780CDE0B088EDA2E95FAE40D1CD0372C6EEAE3 + 4E086C64485EBA8660FA43281460FF9E4C28E5555785D0653B46D864495E7A92 + 4CE31C1812FAEA4B64AC24B4B965898C8E1D70ADA0947B9DD1625B7DE6F06E35 + 5B6FC293CFDDEA25145F183278A09085A0D569F169FAD7F0F795E24F0F8C2373 + 51E1F4D9F304E1070E0263B73E5253517AE837015CEF1D236CDFE1E2F9629C3A + 7902974A4B51575B03954AC99D7728000F4141C1D0D223E81AE4493C86C92D2A + C83ED85E5B23EF9D342634A277FEC098010205F90793C988987E51888A8C4444 + 4404E7334E9D21087B33D9B9432D4198F86B08BF9B1D23F69635426C5C678BBB + 2B455908B7F408CA319B4D1276D5092B7C24F9151640E465089C26B40FE186D8 + 31D2AB4F9F3E029E388FCC2ABADF80410E08247C44E41508AC39E4EECD82BC56 + E602E186D931121EDE379A27161548243ED1FD62063BCD20B2158433E72EE040 + CE6E76FACC09E186DA30E10A6110091FC5091FD90242A154E33407619713C20D + 05A00D043287C828D61CAE9884524510CE5E817043EE18691F82431358B35052 + 678A3587DC7DBBF01F397C225E0B9312490000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E644944415478DA + ED9B095C55D5F6C77F77820B1750914166CC1213C927E54BCDFC9796BD5E6FC8 + 7AD52B2D070ACDD49CB2A78453654FFB9B210E38BD5799A196FAEF6F800384A8 + 590AF63445111964860BDC0BDC793CFFB5CFC52B280FEF45029FFED7E773B987 + 73F7D9E7ACEF5E6BEDB5F73E5B8016F2DA922FB9A4B89751D3644277CB92C46F + F0C5B209825FFB3EAD6EF0EAE22F08C0F8DB04C06E6C5FFE5AD7029810FF39B7 + E9BD09A86EB401F8E4AB8C2E557AEE2B635A00D8852FDF9FD8B500C6C77DC66D + 8A7F950018BB54F1B664C9DA5DD8F1E1A4AE05F0CAA27F709B164F44D56D0060 + 694232BE5A31A56B01BCBC701B01986407B076E7F75DAAF4ACBF8E6E01E02B24 + 7F14D3B500FEFAEE166ED392C9B787057CBA033B57BED1B5005E5AB0994B5A3A + 05550DDD0F60D9A75F62D7AAD86E00B0648ADD02D6EFCEEC52A5DF7AF1F1EE07 + B09100DC0EBD40B701D8B0780A2542773580C9F64CF0AE7481F504407E1BA4C2 + DD06605DFC64D4AAFE1F4077EBDF7D00120940DD5D0DE03D02A0BE8B01AC2500 + F577338084B8495068CCDDAD7FF701E86EC55B4A9703E82A7968C4D8419C443C + 5608C1308EE3220402813F9DF6E738580502D4D2778500DC658E13FC048B293D + E7C4A1F3FFF10022231FF370F3719B2EE08431621797FE5237195CA56E90485C + 211489201289F972168B1916B30926930906BD167A9D9AFE379FE7ACD8A65368 + B6E6E61E51FF8701784C3C74946C361D2C76F7F4F2F4F4F28658E20293D100B3 + C9C82B6CB55AC059ADB607120A21141210B1982FE742808C463D548D4AE8344D + 4AB298C539C77449C0914E0954BF2A80E851CFDC2F1260B79BBBC7A09EDE7E60 + 01C6A0D3F00A87DF3B0061FD22E01F10849EBD7D78659930288A5A396AAACA51 + 52984F9F4B641D1248DDDC41CA43595F4D56A13BC599ADAF9C3E9156D8A900E6 + 6ECAECB4205857968FFC1F0FA0472F1F3073D76A9A20F3F0C2A047C6C2C5B337 + ACD7DDC9BB870706F40D22255B9FD769353873F2384E9FC882C16080BBCC131A + 7523944AB986CCE6859CACB4B44E05B03AF6B15B563EE560063EFC781D7CFC83 + 49512BCC64C231B1D3F0F8F0DF402216F265C4641A12A1805A971E8194FEEE64 + 2199BE00BF7BA82F8C660E8D3A0B2564663E2DB7102DE632C733D2907D2C036E + 322F026585BCBADCC47196989CACD4ED9D0AE056CC20E3C8712CFE60357C0342 + 6132E8E1EBEF8F77E6CE42A07F2FFE662E6201A412F2F3EB9CEF60CE15982D56 + DE02C63E180E5173016281728511A50A8A19160EA545F9D8B7631B4113F071A2 + BAB2C464B558C79D3E9692D26900AC1D2450545C82C96FCE452F9F40982992F7 + BBEF3ECC99110B2F0F375E2199AB102241DB61E787DC0AE88C66BEB5CDF419F3 + 9B303B042626523EAF5A072525694D0D4AECD8B486770921054D795599CA6234 + 45FFFCE3C1824E0160E90001A3D184D7626741A5B3422C96C0D7CF07EF2D9C0F + 4F99944C5DC82B2F6827E49E2994436F304367B241D0192C1833248C5C45682F + C39EAAA4DE800AA59187F0D9BA9554A790BA4B1D1A1435D9D959DA11CEF60E6D + 0260B49D95EDC9DFE0F3E4BDE8D5DB1F7AAD0A1F7EB402817EDE90908F7B4845 + 37ED6EF22B14D4A204C06881BED9129845FCD703617CBC68F944E5048041282B + 2E40F2960478F6EC8DDAEA32066246CED1D4F5B70C8005216744A552E3B9F153 + 48F9203EDAC74C9D8E91BF1D0CD6789E6E4CF9B6D56F79B6BCAE097A6A7D3D03 + 40ADCF8E2D1410B47A33460E0AE5215C130E85B506DE1D3253F7E1E79F8EC1C5 + D50D3515C50A6DBD36CC9964A94D0006B32D2999B7FE80439554E4E5A0A13C1F + 9E5EBDD0DBCF0F03863FCDB7580F525EE840A631E1C9C1A857E9F89637D0476F + B2D0B70D027B4495CE84610383216E5119839357A587466740D2AAC5140B2494 + 23D440AB53CF3A9D9592D82100733666709F4C1B4D37B63A65012F8C8F81C0C5 + 934C5F8D3767CD4674D4008AF402B8B9081DAE43A737352BDE0CC064B6436030 + 1B35460C8D08A2CC5064BFA689BA4A16137ECA3A8C1F320E503225416D55E985 + ECA3A9911D02307B433AB7E6CD31D01A1D079077E93266CE5D04BFC050CAF2B4 + 5893B0861E52CCB7BEC0893C93F5EB4C7983F96AEB5B603459789730344350AA + F5181119DAEABA02B9014DE4826B3FF81B589A5D555E442E6C8AFCD7B1B40B4E + 03787BFD61EED3E94F4063B0017837E9E62E5079E9341A2B2E53B6E781E811A3 + D03338820F7C3257D1BFBFE8BA10F3ECA30351A550E35CB19C1EDE72433668BF + 8CC60BA31FBCB7D5393677C192A59D5B13515B534D630605D4EA86F9A78FA6AD + 761AC0ACC4835CC28CB15053107254162C5A8A928A3ABEDF7F63FA4C0C8E8C80 + 3B75792E22C7CDFFAA30E573AFD4A25AA1699397D562C1A821FD5AFDC67AAC52 + 72835394211E4F4FA3B2345EA8ADDA4D6EF092D30066AE3DC025CC7C0A2ABDE3 + 00C64F7C0342892D3F8F5BBA1C017DFCE0296D27F839E016750D5AE4972B60B4 + B476453D05BC4706DF7343F952CA148BF2F3F0F5671BF921B6BCAAF44C7656CA + 10A701CC4848E5D6CE7A9A0F2E4CE2361FBC6905A7F66D4470787F4A44E478EE + F57980504C009A5BDF81DEB4BD226C58ECDDC3FD1A18A50AC3A36E0420579951 + 57578F757F8F8707F54455A50572B2007FA701BCB526854B7CFBF73410712C99 + 62C3D3A79E198790BE03A0ACABC6862D5BA8E505707730FA3B1223D5D43BC81B + 34B03053AF56E0E1417D6F28D3A0B540D1D0888F972C80178D3E2B4A0AAC3947 + 53440E54DFFA19A67FB29F4B9CFD07346A1D03C0666DFE30EE4504879105501F + BC71CB568AFC02B0011FCBE32903EE9409073657D2A435E04C7E05864686DBE0 + D3870D8E58D266A08F5AD5848FE2DFE101549616805CC0A15BB72A346DF5FF72 + EBE7FC11CA66004BB61EBA6905A7F66DB059000198F0D6BB10364F6DD96A17F0 + B180257182E6E3F6A4ADE83FF28170FB71D699220C8E08030B0D4C796B8B0B1A + 940AAC5C16776B2E30EDE36FB9F5F3FEE4D4B4F8E429B110BAB020D880F865CB + 1114D0CE7D1904DB17FF47D0F2015A67BAF62FE6664C4F76FCC3D96244F50F69 + B3EAA282CB484A4CB81A04CF930544390D2076D53E6EC3BC670980E30B2371F1 + 4B5141BEC9A6B25E9F3A0DD1431E70F85A67E5E4F92BFF164066FA61A4EEFFAE + B91BACDE9B7D34E579A701BCB1722FB761FE38FBCAD0FBFF3C7CD30ACA2F9C84 + AABA989FF68AFEED700C1936F296156DE90AD194FE5E959C0BA588BA2FB8CD6B + D627AE45717129D44DCA8E2742AF7FF40DB771C1F34E2D8E5EB87811F1F1CBE0 + 17104A56A0C3276B56532A2CB965086DC9CF796D03D0EBF598F3F66CC83C7BA1 + 9A52618B411FE5E85A422B00312BBEB60170626D90F9E8A44931907A78F383A1 + D8A9B1787868B40377735ECEE69763D0BD41379CCF48CFC0AEDD7B2091B8D060 + A82C9FCC3FC2D13A5B3DD2940F777349EFFEC5FE7EC08ACFD31DAAA4FCE2291A + 0F14F011D8A7774FBC4A81110216EE6E9E09713729727FB89FFDF87C412522FB + 05B6FA9D75C573E62E801522282919D36B540BA907F87B87004C7E7F2797F4B7 + 1729B3726E75B8B1B111B1B153E1EB1FCAA7C41327BE8A27463FEA541D8EC8C5 + A22A0CBC27A0D5B9DD5FEFC5FED4437CF4AFAEB8A2D6D569023A3C2132697932 + 97B4F0A50EBD23949C9C8C94D403E8E5ED0783418B952B685CE0EFDBA900F24B + AA717FDF3EF6FF0B0B8B69FCB102EE1E3D51575306A35EFF0E99FF7F3B53672B + 001397EDE09216BD4C006CAFC9ADDAEEF8EBF2568B19E7D293219379422412C1 + D7C71BD3DE9C06A954CAFFEED0245B1BFE1016E07D4DE1323922C26C798642D9 + 8077162DE3E7108D7A1D8BFE66CF9E7E5187F66CCEEB30805BDD3152585080C5 + EFC5A3B75F10BF90111A1C88F8B879F094B977A8BEEBE54A452DEE0BF5437DBD + 12F1EFAF82BCBE919F16AF9757E2E1612350525EA3541BB563D27726FDAB4300 + 3A63C7C8F71919D8BA7933FC02C3F89609E8E38B85F3672030C0A1CCB45D29AB + AA8355AFC6F295096852EBF9F54479752916CD9B89A8A8286CFB720FCEE5E659 + 6B2AAF3C773273FFB74E03E8AC1D235597CFA0927A06DF3E21B6D55FB311AFBC + FC22463D328C5FFEBA59E4E75A384C1F6F2FFEDB6CB160E79EEFB06BCFB77071 + B559549DBC1C71F367E2C9D1A3A0A1C152935ACB43F825378FABA9B8F2DCA923 + FBFFC729009DB963242B3313DBB66EE1E7ECA55219349A46840605E22FE39EC1 + A3C31E22251C4B96F47A238EFF988DE4AFBF454D6D3DDC655EFCD43B9BFA5A30 + E72D3CF1F848B8BBB9527768BE0661C75E64679F369F3D95195D535E74CE6100 + 9DBD6384C58475096BA05269C096C7D942299B3875751163C4F0A1183C6820C2 + 4282E04701B38797077F4D63939A14AD43495925CE9EBB80E3274EF2233F966A + 3361A34E8BD96C7A70E850C9DB5327C1D3C38D077015C2E5A2727CBCEE9FA8AC + 2845DE2F27EBCC26D3E8F620FCEA3B4658EFC0264E995BB8B9CBF8995B915842 + 41524FA9B3C9FE8284DD2FD888B1F9050996D9B137484C26035494E353CB6B04 + 1C3EE8E91BB2472673CF1AD0FF9E8098F1CFDB21B09E61C9CA8D04D30B62B108 + DF1F4A416D4D79BB10BA6CC74813254B07D35271F44826D41A0DDA7F45C64C4A + 1B9B5F91D1B009D7124AB9B7EA4D960DB93F1E54B072635F78BDAF8BD8357F50 + E4003183A0D6A8B126693BBC3C6478FAC9D1BC159DBF7089207CC743E0ACE63F + 5796149E68174057EC18616387CB97F270EE97B3282E2C44755525EAEA6AF9F3 + 360310C0C7C7176A7A044D434DBC80E332738EA5FDD0565D43473D33C23F28EC + E88088FE2239C50783418F887E2108090E465050101F33CEE51284C3296CED50 + 4D109EBA1EC26DB363840198FEC2637CBFCEC4D1F70419841EBD7C328C468354 + EA2AE6950F0E0EE201045F85C05B42DB10EE881D237DC2C3C34502D72C72ABD0 + 7EFD07DA2090F241C1D7203077C83C9C8A9AAAD25610EE981D238181F7840A5C + 25C7A452F7D07E11917637086E0121F7623E8E641C64CB67760877D48E91D610 + 0692F221BCF2C1CD20E4B50A9CE7211CB043B8E3768CB48240EE101CC2DCE19A + 4BD4D611840BD720DC911B26DA8660B304E616B5349862EE90997E00FF0757F7 + 2D5E727B4BAB0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E4E4944415478DA + ED9B0B5C5555BEC77F9C076F90B7BC31ED8AA94C9F71B4BC365AE954379BB963 + 63569AF940B3AEF9B62C452173C6D2A60C1045B36BE60B356D8A00510991D214 + 6CCA149140E4F03C87C7E1C079EEF3D8F7BFF6411E897A0E22F2D1FBFF7CCE87 + 7D0E7BEFB5FFDFF57FADB5F672403B99F1EE5E3E79F90B50341971A72536E910 + 3E8B9DEC70BBDBE9D0C0F4D5BBF9E415930900277C5FBF33AB47955EF6F2B836 + 001B0F6247DC4B3D0B605ADC2E3E396632E4BDC002E212BFC0E7ABA7F62C8097 + 633F27002FF51200FBB1F3DD693D0B60EAAA1DFC96955351A3B202F8684FCFBA + C092296D2E1097B80FBBD64CEF59002FC57CC66F59F53201E07A54F1CE242E61 + 1F76FF6346CF0298B2E27FF92DB1D351DD0B00BC13BF177BD646F72C80C9CB3F + 2500335A0124A47CDBA34A2F78716C3B007BB0F7BD593D0BE0C5B73EE1B7C4CD + EC1D16F0F16EA4AC7BA56701BCB06C2B9FFC4E34AA1BEF3C80D51FEFC2BEF573 + EE0080B8E8560B48DA9FDDA34ABFFEFCE3771EC06602D01BB2C01D03B029369A + 0AA17B1AC0CCD64AF09E74812402D01B4683770CC0C6553351DBFCFF00EEB4FE + 770E402201A8BBA701AC2400EA7B18400201A8BF9701C4C7CC4083C6745B1BAD + 282FC7F9733FA3A4B808D5555550A91AD1A452C1C1C1011E9E9EF0F6F1411DD5 + 22EADACAC5301B8FE59F3C72BEC700DCAE862C66139AE4A568AE958137737076 + 718393B30BA4522788C46288C512E13C339D67361961341A61D06BA1D7A9E9BB + E93C6FC1A7BA06CDB60B178EAB6F1B80DB238F49468C715B4407B1AE1E9E1E1E + 9E3E90481D61E40C30193941618BC50CDE62B13E9048049188804824C2798E04 + 88E3F4685629A1D33429799E8FCDCFD52503C7BBC54C6F2B8061639E7940EC80 + FD2EAEEE43BD7C02C0CCCBA0D3080AF7BB7F10220644A26F5008BC7CFD046599 + 30280DB50AC8AB2B505652449F4B641D52B2185790F250D6D79055E8CEF026CB + 94B327334A7A2D80E1A3C74FA49EDCE9ED1FE8C2CC5DAB6982B393331E7EF409 + FC6EF848C1FCDB8B48E4203C8CD9D2D10B755A0D7E3AFD1DCE9ECC81C16080AB + 9B07346A15944A8586CC66527E4E4646AF03F08731CF4C9788C5DB0382C21D2C + E4BCACD71F1A3D0E8F8C1B0F0999360B76BE6E12F87948E0E52A869BA318A296 + 2761EAEB380B543A33A5639350943128CC65BECBCA405E6E165CDC3CC91A2C50 + D4541879DE3C2B3F277D67B70058B225FB9683609DEC128A4E1D464070388C06 + 3D9C5CDD31E2A949E04512A13927097DA4A2568505A5A9D588BE9E7872583F88 + 451DFBC444FFAB68E0206BA09861E621BB5C842F777F4A17390871A2A6AACC68 + 315B9E3D9B9B96D62D003E9CF3589795BF5C5A86E9AF2D81B75F304C14C9EF1F + F81F58326F0E3CDC5D20A65E777316097F7F2B16229091572A3CCEB8DF47109C + 6BCF3192F285353A28294537352AB17BCB06C12544143415D5E5CD66CE38ECC7 + 5399C5DD02A02B66C071464C9D3D1FCD3A0B99B914FE017E58B5E20D78B851AA + A348E8EE24BEA1BF65FD5426F4B099603CF6BBF04E21B0E72AAB37A052C90910 + 3EDBB88EDC4944E95287C606795E5E8E7694BDD9A15300962E10F87CCF016CDF + 7308DEBE7DA1D73663EDFBEF2124C0C7AABCB3F8A6C1E6878B55D01BA9062008 + 464A897F1C12D6C11DDA3F5205016010CA4B8BB1F793787878F9A2B6A69C8198 + 977F223DE9960198ED24D0D4ACC684C9D1A47C8810ED67BF3617A31F7E90CC1D + F07061CA77AE7EFB4E3E575A0BBDC12C40B050FB5ACE844786844322EEEC5A1E + 25B506C11DB2D3BFC48F3FE4C2D1C905F2CAD2066DBD36C29E62A95300CCDFEC + 91ED3B53B0F7601A95B1DEF0F5F3C33BB16FD3838BE0493D4F7F6C9292EA46E8 + 4969036785C03A416B3061E4E0304844D74260AE5258AD87466740F2FA588A05 + 52AA11E4D0EAD40BCEE6A425DE1200CE641F808953A2E1E0E841A6AFC6DC858B + 312C2A12CE14E95DA5366A4F5255DF4C8A9B6130B6416086A8D19B306250C835 + D9814913A54A16137EC8398AEFB30E533125456DB5AC20EF44FA905B02603059 + CBD2A549876F7A03B552815FBF4F15D21E2B591F7FEE15E1F73E2E923613E76F + 0C74D2E343A154EB5A143783A38F9EB3C2603769D61A316C6050A7108A1506C1 + 0513FEFE3658995D5D71993AD038E4DFB91905760358BC398BFFE8B5B1F41016 + 9B7B6EE7DE034821F3777671C7238F3E8A179F9B00A9C41AF5ED119D81063F82 + 05B45801FBCB59BF335169393C382090EEDDF1BE6CE4CA8AA5946D89A895D7D0 + 98A1016A75E31B674F647C683780459B8EF11BFE671C0520DB01BCB93C0E572A + EB84BC3FE7F505787048245C1D457094D85764B23A9FBBAA387580C164228B6A + 0162B24250AAF56409A11DAE63F14A466E70862AC4EF8E655078A4F1426DF57E + 728317EC06B030E928FFF1DC3F4163B002782BF9E62EF073E64EF8D04087D5E7 + 7F993A17BCD4191ECEA24EF3F8F564FCC848C8951A14C8EA04F3BF9E58283D8E + 8AEA77CDEF32AA142F1715E2C0679B853186A25AF6535E4EDAEFED06B0203193 + 8F9FF724D406B32DD70A32EEBF262024622015220AFCF3E304B8BBB90A00BA22 + 46B30585B27A281A356D3FB60B1F66B31923875E0B40D16C425D5D3D36BEBF0A + EE9489AA65C50AB280BE7603989F70988F9FFF149AF5B6016066FBC4D3131076 + DF2028EB6AB079DB36A1E7990BD8DD783BA96FD2515A54C268EAE88A7A038787 + 06475C737EA3D68C8646153E885B064F6F3F5496155BF24FA4D914843A3CC3BC + F8743E61C1D3427A6112B335F38617B3717DFED75B11CA2C8072F0947931C22D + 599C6201BBB3A86D8FB0C9116F0FD7D6EF0D2A35863F6005C00C8395CE2C651B + E8A36E6EC27BABDE140054C98A412E6053E31D4E7A7D431A9FB8703C0D456D2F + A79F1CDF620104E0A38478B8B9BAB6BBB9830082F4102CA32B3C347A23EA543A + 2A8C2CA89037226A60181D5B95B7B44BAF8DCA06AC5B1D736B2E30F7A3543E71 + D19F29E5D80E605AF41C88A46C92A211B1ABDF4548F0F5DB6540586C648D3AB4 + 1CDC8809D38FB9192B4C9B3506FC72B91A43EF0FEDF4DCCBC5BF223931FE6A10 + 3C4F1610653780D73EFC9A4F5AFC17285B00C46D3B72D31B147EF7359CA85E67 + 53597F7D611A7C0343EC6CB54DD9CEE4212A85AFCAE90B65D705907DEC28D253 + BF6949833587F24EA44DB41FC0075FF1494BFFDBAE69F11D9FEF427AE6B7C22C + EF7F8E1A85A9539EEF12005B24BFA09C00740E38293101A5A532A89B945D2F84 + E6ACFF92DFB4740201B07D61A4A0E02256AC5C8D80A070B2021D366CF8108E8E + D2AE697813F9F1120118702D00BD5E8FC50B17C1CDC31B35540A9B0DFA285BD7 + 123A007865DD217ED31BCFB6AE0CADD97EF4A637603EFA53C60EF8FA070A83A1 + 4953A65150EC7FFDD66E32CEFAEDBFA3FA07B61EFFFC6B25860C08BEE69AAC63 + 59D8B7FF20A452471A0C951791F947DA0AB50380D9EF7DC16F5E36D1EEC5D13D + 7B53909A962944603F9F3E58B37A953055D5DD72A1A40A83FB0775F88D2DA02C + 5EB20C1688A1A4624CAF695E4E19E0FD2E0198B5F68015809D6B832A950AB366 + BF0AFFBEE142493C63C6CBF8D3E3A3BB1DC0C5D21A3C705F6087DFF61F3884D4 + F42342F4AFA9BCA2D6D56982BA3C2112FD8FFD7CF25BCFB5BE1FB076C7319B1F + AEA2E00C941597E04DE3028ED361D1D2A5E8D3C7EBC669CE067F1810EAD7FAB5 + A84C8E41FDDAD26C49492962DE590B57772FD4C9CBC1E9F56F92F9FFD31EA81D + 9E6FE69A143EF9EDE7A9B6B67F7598E3382C98BF00265E02B1580C7F5F2FAC89 + 5B4E630337BBEF753D292E5720322240386E5036E2CD15ABA1A31123A7D7B1E8 + 6FF2F00A883A72706B619701DCEA8E91E2E262AC8C5909DF80106121233C3418 + B1314BE1E1DE05089D140657AAEA707F983FEAEB9558B5663D14F52A21D6D42B + AAF0F0C85128AB902BD59C76DCB194E47F77094077EC18A9BD7211B273B90808 + 8E107A26282800AFCE9E095F3F1F7BF51524C4BF4FEBB1ACBA1E167D33DE5D17 + 8F26B55E584F54D4C8B062E97C444545E1D35D07F1CB85428BBCEACADF4E67A7 + 7E653780EEDA3192FAD557D8B37B0FFC03C3ACABBF260ED1D3A7E0CF4F3DD6E5 + EC603299B1EF501A52BEF8171C9DACE38D3A450562DE988F27C68E81466B2028 + 5A01C2B90B85BCBCF2CADFCE1C4FFD975D00BA73C7C8F1EC6FB16DEB27C29CBD + B3B31B341A15C24382F1DCB3CF60F4C8E17072B2AD58D2EB39E49ECAC75E525C + AEA887AB9BA730F5CEA6BE962D7E9DB2CD1FE1EAE244E9D0D40661F721E4E59D + 35FD7C267B98BCE2F22F3603E8EE1D236CC2B424EF0844BC056C79DCBA50AA15 + 941FF9D0700C7E2012214181F0F1F182879BB5579B4981FA86065456D5A0A0B0 + 08274F9D16467EACD466C2469D6693C9F8871123A40B5F9D212CBB31005721FC + 7AB9021F6CDC8EAA4A190ACF9DAE33198D636F04E1B6EF1861D9E1CB835F20ED + 9B54489D5C84995BB1444A41524FA5B3B1F50589D620C086CD2D2F48B0CA8EBD + 4162341AD04C353EF5BCC681C7DFBDFCC30EBAB9B9E60C1AD83F68D64B135B21 + B0CC10B76E33FA787A422211E3DB2369A89557DC10428FED1861C552667A1A72 + B2B3A1D6686EF28A8C8994E65A5E91D1B009D7322AB9B7E98DE64D174E6536B0 + F39E9C34FB3E478953D1D02183240C825AA3C686E49DF0A48CF3F4136321AFAD + C3F9824B04E11B01026F31FDB5AAACE4E40D01F4C48E1136765037D44045858B + 4629879E2A4783B6195747016C9EC0CFDF1F1ACE815CA8669503CF67E7E7667C + DFD9BD468C796654DF9088138322078A15B5F53018F4881C1086B0D050848484 + 10847ACA0A04E1681A5B3B541384A77E0BA1D7EC18B1B4BC2374354BD8BA6384 + 41E8E3ED97C5710667672789A07C6868880020F42A04C1123A877057EC1809EC + D7AF9FD8C12987DC2A7CC0C0C15608A47C48681B04E60ED947D321AF96758070 + D7EC18090EEE1FEEE024CD7576760D1F1039A4D50D42DB41B870B108C7B332D9 + F2592B84BB6AC74847088349F93041F9D016108ADA069C17201C6E8570D7ED18 + E90081DC21348CB9439B4BD4D6118482360877E58E91CE21582D81B9452D0DA6 + 983B641F3B8CFF0347A12B5EBBE947440000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E5B4944415478DA + ED9B0B5CD45516C77FF362780B0828308065292B529B8FDD72DBDAD4B2AD766B + 737D5B3ED7AC7C640F4B5D24B5ADB42D0344B1D5F2856F4953405422A46C0BAC + D5D41041E5393003330CCCFBF5DFF3BFBC647938208E7C6CCFE7331F66863BF7 + FF3FDF7BCEB9E7DCFBBF025C2333FFB1974B7CF3AF50D659D8E777B79E803365 + E9B4D14DEFA3D71FC2A7CBC60B6EF6355B5C60C6AADD5CE25BE3A16800702B65 + 79C2E7F82C7AA273014C5FB98B4B5C32018ADA9E0020195B964F722E80692B92 + B8C4A5930880997D5EB33DC3A94A2F7E6E5433807507B035668A73013C1FB383 + 4B5C3609953DC00262E2F763DB8AA9CE05F0DCF26D04604A0F01B017DB573EEF + 5C0053A3B7721BFF3E15159A7A001FED74AE0BBC3AB9D90562E2F760C7AA69CE + 053065D9166E63F47304C0EC54C5DB9298B83D48FAC774E70298BCF4536EE3F2 + 6990F700006FC7EEC2CE77673A17C0A4259B09C0F4260071BBBF74AAD20B268E + BC06C04EEC7A6F9673014C7CF35FDCC698193DC3023E4EC2EED57F732E80098B + 3FE112DF9E0979CDAD07B0E2E31DD8B366CE2D001033B3C90212F6663A55E997 + C73F72EB016C20003D6116B86500D62F9F4989D02F1AC08CA64CF017E9020904 + A0275483B70CC0BAE8194D0B22FF07F04B04104F00AA7ED100FE4E00B4371740 + 694909CE9D3D83C2827CC8CBCBA1D1D4A056A38140208097B7377CFDFC504533 + 915659B60836CB89DC53C7CE390D401C01A8BE09004C2623328EA5232B330355 + 55D57075F380D4D50D128914429108229198B5B3D9ACB0592DB0582C3019F530 + 1AB4F4D97A8EB363B341A5DB74FEFC57DA9B0A2076D974A874D66EBB80DD6E47 + 7AEA111C4ADE0F81484223EC07B1C40516B309568B99296CB7DBC0513B764342 + 218442022216B3762E04C86C36A24EA3864157ABE6386E796EB62111F8AA5B6E + B21580EEA46B36D4417129072201071FBF40F09D9B0C3A06457657247AF90743 + 480ADA3901BDEA7F2314D4BF6C660334CA7294169E23EB9090C5B8839487BABA + 82ACC2F03D67B54F3E7D2AADB05B0174A70CFBFD13636924B7FB06F475E3CD5D + AFAB85ABD415BF7DF851DC33EC7E66FED78A90B4E66FC6666F390606BD0EFFF9 + EE6B9C3E95456E6482BB8717745A0DD46A858ECC665C6E565A5A8F0330F4A127 + A78945A2CF0283C20476725E7ED47FF3FB51F8DDA8272026D3E6835D6F0F31FC + BDC4F07117C1C345C4469D175E7D83D90E8DC146C1D8CAA6641E0AEF325F67A4 + 21273B036E1EDE640D76282A4A2D1C679B959B95BABDC70018FAF093E3C442D1 + 9E3E21FD04160A7C1217099E9D3A0741A1E14CF1105F09C2FDA4908A1DBBB495 + 8894AACC285651CCB07128BE9C8FCF93361329018B1315E54516BBCDFE97D3D9 + 2929B71CC0B0118F0D16485D72FB06F5935A29927B7A7961C2CC79F0EAE50377 + 17217E15ECC646BB2B6221E5F32A0C505380AEAD512369E35AE612420A9A0A79 + 499DCD6C19F2C3B7E9053704E0D58D995D0E82769B0D3FA46D851BF9B9582C81 + 8B9B2B7EF3F8643EAC432C12C0532A240B68FD3BAEE18AB2002F3C7C4F18B942 + FB63C2372DAA36A14C6D6610B6AC5B4D7D0A69BA34A04655999393A51FD1D9D9 + A115800FE7FCA14B00B6EEDC874F9392E1DBBB0F8CFA3ABCBFFA3D0407FAC185 + 57DEB5E351B7938F1FFFB188C17870B0AC4D08D78E4C2901E021945C29C0AE7F + C5C2CBA7379415253C8879B92753136E184067CDA0B64E8B3F4F9841CA87B068 + 3F7BEE4B78E8FE7B21A2C8E64DCAB73FA8CDFFC83A5B423E6E8795603C3048D6 + A125F0380A9526E60E99A99FE3877F67C345EA86CAB22B2A7DB53EBC33C9529B + 00EC9D24B079DB2EECDC9F42498E2F7AFBFB6365CC5B34770BD1CB8D121A8163 + 6126379FE6778BB53EE253E41B3E30984D8DED898DCC254F6E84CE6042E29AE5 + D45642394225F406ED82D35929F13704C0D64902CF4C9C09818B1799BE162F2F + 5C84A1F70C84AB44C8029FA372BEA80A26B38D20D8984BE84D560C8B0881B801 + 425B77544B53251F13FE9D751CDF641CA5CC5102A5BCF842CEC9D4C81B02C047 + 5C47E5E7BC7CBCF8CA52040687B1DC3D2EEE634A5F456CF49B07FFFA5670A5A2 + 066652DE48104C162B83A0335B31E4EE60E64AED4981C2C45C30EE9DB7589A2D + 2FBD0CB3D512F96376DA852E03305B1D07B08D82DFAE03472855F5C4830FFF01 + 93C63D0309053E0FA9E3A3CF4B855AC7146F8640964066AE234BB8B77F50BB10 + F8BA854F96766F8A87B2B2826A0615B4DA9AD74F9F4CFBB0CB004CD6FAC2E4B5 + 84A3D7EDE0E23787C15B3A3FEF8F19FB3C04AEDE70978A58F4E7C51194CF3C18 + 811AAD9194A6ACD14A101A0098AC36768B75060B06DFD1A7CD98C05B6B31B9C1 + F794217E7D228DAE47F58252BE97DC6042A7012CDA90C17D347724F9A1DDE191 + 1B3F75360492FAFC7CF9CA5508EE1B002F57D175A2786B31982D6CF479C5CDA4 + 78FD7B3BBDB73288B53A0B22C2032111B7B6AC62CA142FE7E761DF960DACC650 + C88BFF939395725FA701BCB2FE04B7F6C551D09B1D07F0C898A711123E801211 + 053E8C8D83A7873B03E0A834DE005F33581A46DDCC14AF87606EB204A0466742 + D49D41ADFA50D459D91AC3BAF7A3E1493391BCB8404116D0A7D30016261CE73E + 7E6934F95D3D8037133B7601BE3CCD39B801A17744405D5581712F2E61F9BE47 + 3BD19FFB1F8768BCF8E861774159A3C7C552154D81B676AFC797D1C37F15D6EA + FB1ABD0DAA1A0D3E88590C6F5F7F941515D8734FA638340A2D002C884FE762E7 + 3D06ADC9E6C86F69742C78FC4FE320E32D80E6E08D9B3731D3E70316A5011D46 + EFB6C44AB1E752990A4A8DA109590B00946E0F8D086BFA0F5F1CF101DB442F6D + 5D2DDE8B7E8301282F2E00B98043176FD1687EDC512E76FE18D4191D03C0CBE8 + C79FAEB70002B0362E0E1EE402D776CE03A17AA561A1C33120AA3A038A2A3414 + E05ABAA2D168C6E0BB65E0BFE695B773CD806AD42AAC5EB1ECC65C605E6C2A17 + B7E08F2CC1E065D927E9D7EDE04CFA76F8F9055210ACC1E4390B2175F704D74E + E8E7DD43C0FE367E6E3F43E0D8FF299BF47463FDF19F551A2D22FB87B4D9FE72 + C12524C6C73606C1736401519D06F0F2DA142E7EE113D0181C2FA8DE5C1A83D2 + 0A155BDF9B33F7450CB9CFA1EB3A2C069305D57546E6FFF22A4DBB00324F1C47 + EAE1230DD3604572CEC994B19D06F0D24787B9F8579E8246EF38802DDB76E0C8 + D12FD92AEF032346E0B929E3BB15002FBC05680D665C2C521080E036DB24C4C7 + E1CA9562686BD55D4F84E67EF80597B0E84F50370088D974ECBA1DD455CB51F0 + 6D2A0283C260B31A316BFE1B108AAE99051CC8843A6A72DF8066857FB8588AC8 + 3B5B03301A8D58B4F0157878F9A28252619BC918E5E85E424B001F1CE2125EFB + 73A796C5F9A970EAF33320F5F063C5D00B735FC0FDC3873870B5CECB994B6518 + D4461E907122037BF61E8044E242C550493E99FF4047FB6C714B73D67CCEAD7F + ED1902D0B98D911D3B77E38B23E92C02FBFBF5C23B2BA3D9525577CBB9423906 + DDD1B7C577FC06CAA25717C30E11D4948C1975754B680678BF4B00FEB63A995B + FFFA5F9A7686567D76DCA14E2C26039B0DFA06F76329F15F274C4464D43DADDA + 715DF0870161014DEFF3AE5622A25FCBD96DEFBE641C4E3DC6A27F45D955ADA1 + 4A17D4E50591D9EFEDE7362C1EDBA5CDD1A4A49DF822E5287C694A3499F458F3 + FE4A04050674EBAA6B7E712506863703282CBC82656FBF0B774F1F545596C06C + 34BE41E6FFCFCEF4D9E2FE66BDBBAF1E4017F6064D2633E6CD5B002B27864824 + 42406F1FAC8A59022F4F0F87FBB89E7D149628C82202D97B95BA066F2C5D4145 + 14D50B46031FFDAD5E3E8151C70E7C92D76500377A6244A756E0E7EC8308EC1B + CA3632C2424330E785D9707575ED34D0C6642AACAF4FD37757CBAB7197CC1FD5 + D56A44AF5A0345B586C59A6A45397E7BFF08149556AAB566FDA813BB137FEC12 + 80EE3831C247E4C4C48D080C0E67231344E5F1D2D7E7233828B0CB7D364A0925 + 5C36432D56AE8E45ADD6C8364F1515C558FADA7C44454561F38E03F8E97C9EBD + B2FCEAB3DF651E3ED46900DD7562E4D0A14348DA918400B204B6FB6B3563D6B4 + C9786ACC231D2E74762456AA127727A760F7FE837091D6D71B558A522C23B88F + 8E7C083ABD89A0E81984B3E7F3B8CAB2ABCF7EFFD5E1839D02D09D2746944579 + 283A73123E7E01E4021ED0E934089385E0C9271EC3D05F47D19C2D6E6EDC81F3 + 7BB9BBE0EB6F73B173DF41542AAAE1EEE1CD96DEF9A5AFC58B5EC6E8471E84BB + 9B94A6436B3384A464E4E49CB69EF93E734865E9E59F1C06D0DD27460A0A0A10 + BB762D6A6BB56C7BBC7EA3540FA98B04BF7B6018EE8D8A44B82C1801017EE8E5 + EDC57EA3D1D441A1AC46514919CEFC7401D9A7BE63951F9F6AF3C2579D36ABD5 + 3274F870C9C217A653907563001A215CBA5C8A0FD67D86F2B262E49DFDAECA6A + B18CEC08C24D3F3162369B91BC7F3F8E1CFE0212A91B5BB915892514248D5440 + 599A1E90688A7AAC7CAE7F4082CFECF827482C1613EA28C7A791D70938BCE313 + 107A80CAEEAC88017706CD9A32B609023F33C4ACDE4030BD21168BF0E5B11428 + 2B4B3B84E0B413237CB2545978965CE36770A474C78FC858496973C323323A7E + C1B58852EE4D468B6DFDF96FD3557CBBC7C6CDBEC3452CCD1F1C1921E6216875 + 5AAC4DDC0E6F9A76FFF8E848542AAB70EEC24582708441E0ECD6A7CB8B0A4F75 + 08C0192746F8DAE1E2C53C9C3DC33F245500B9BC1C554A25FBBEDE0004F00F08 + 80CE228456258F16705C666E76DA376DF535FCA12747F409093F193170808877 + 1BFE39A481FD43112A93212424842054D3AC40108EA7F07B875A8230E67F21F4 + 981323F68667841A6B08474F8CF0107AF9FA6798CD265757A998292FA360CB03 + 9035426096D03684DBE2C448DF7EFDFA8904D22C72ABB0FE0306D54320E54364 + CD107877C83C9E8A4A79710B08B7CD8991E0E03BC3045249B6ABAB7B58FF8191 + 4D6E20BB06C2F99FF3F155463ABF7DD604E1B63A31D212C220523E94292F6B00 + A150AA708E4138DA04E1B63B31D20202B9832C9477876697505611840BCD106E + CB13236D43A8B704DE2D94544CF1EE9079E228FE0B8DC5275ECF877998000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E444944415478DA + ED9B095894D7B9C7FFB3B18DA0C8223B1853D1189B5C136F6C6EB69AD4DE26BD + 6D6AA2896B4463628C9A10E34A01973489E61A8388A0D526D67DAF51700311B9 + 49AA60131334A820618719986160F66F66BEBEDF19D68A3A0338F2D8FB3E0FCF + 0CF37C73BEEFFD9D773D678E08EDE4F58FF6F3A90B5F425D1387BB2DF1A95F62 + F392974577FA3E1D6E30E3C37D7600DA5E0060C397D8B2749C6B014CFFD35E3E + 6DD1CB50365BC0875B335DAAF4D2D79E6B07E030FE1237DEB5006256EEE6D316 + 8F87A217B84042CA217C1EFFAA6B014C5BB18B4F5BF20A148DBD01C0417C9130 + C1B5005E5BBE834F5B3A810098D9FFABB765B954E985539E6D03B0FE00B6264E + 722D80A989DBF9B4B809A8ED05169098BC1F7F5D3ED9B500A624FC95004CEA25 + 00F662DB8AA9AE0530397E2BBFF18F9351A3B103F874A76B5DE0BD896D2E9098 + BC07DB57BEE65A0093E2BEE037C64F210066972ADE9924AEDB831D7F9AE65A00 + 1397FE85DF98F01AAA7B01806549BBB0F3C3E9AE053061C9160230AD15C0BADD + A75DAAF4BC5747B703B013BB3E9AE15A00AF2EFA33BF3131A67758C0673BB07B + D54CD7027865E1263E6DD9745437DC7D00CB3FDB8E3DABDFB80B0012A7B75A40 + CADE6C972AFDF6F85FDE7D00A904A0376481BB066043C2742A84FEAD01C4B456 + 82FF962E9042007A433778D700AC8F8F695D10F97F0077482ACACB51F0FD4514 + 175D45755515349A06346A34108944F0F6F1816FFFFEA8A338A45556C6C2CA65 + E67F7DB2C065009209C09D581435998CC83A790239D959A8ABAB8787A71CEE1E + 9E90C9DC219648209148D97556AB05560B078EE36032EA613468E97F4B016FC3 + 16834AB7F9D2A533DA3B0BE08F313DBA286AB3D97022E3280E1FDC0F91444633 + DC1F52991B38B30916CECC14B6D9ACE0E93AF6406231C462022295B2EBDC0890 + D96C4493460D83AE51CDF37C427EAE210D3863B92300D61180FA1E0250555989 + 94A435A8AF57A35FFF40F0F499C9A0235307463EF92CEEBF7F30FCFD7DE1E3ED + 039954C2BEC359AC68D034322B29BE7605E7734F131409598C174879A8EB6BC8 + 2A0CE7798B6DE285AF8F15F73880A4B86950E9BA0F37FFFC396CDAB01E729A71 + C1DCF5BA46F8F905E2BF5F7C0943A3EF87BBBBDBCD1FA49DE80D26145C2E4456 + C69750D529E125F7864EAB815AADD091D98CCBCF3976AC4701745B7392266539 + 54A5DF2320281C36725E93418FA18F3E0DB1673F3277FB2DA412116434E912B1 + 08125147F5AD34D356BACE62E5C1D19FF00DE11AABA1013FE665C353EE43D660 + 83A2A682E379EB8CFC9C8C6D3D02A027E491A75F1827154BF60C088D127114F8 + 646E328C9DFC0682C32359940FF59521B2BF3BDCA58EDDDA42DA57A8CC285399 + 1890B2EB577168C7168017B138515355CAD9ACB63F5CC84D4FBFEB001E7D7CCC + 832277B7FCA0E028770B45F23EDEDE7865FA1C78F7ED072F373186867842EE26 + E9D2D8822514D618A026F76C6C5063C7C6B594594C1430C55054973759CDDC88 + 7F7C73A2E8AE01888A7AC6C33F52FEAD5F40C810A95406A9548CA9B317A08F4F + 5FF4F3926248900733F7EE88E00AA5F52654AACD0CC217EB57915589295D1AD0 + A0AACDCBCBD13FEE6C76E83100239F7A7EB1671F9F8F7CFD0640D7D480C9B3DE + 437058247C49F9C1A47C776FD43E38551000014279491176FD3909DEFDFCA0AC + 291740CCC93F9B91D26500EF6DCCEE5210B4509ECE3BBC098141112CDAFFE773 + 2FA26F50249927E0E32161BEDFB9566DB70BF2F3C6A8A1A1108B1C41C5A35869 + 62EE909D7108FFF87B2EDCDC3D515B59A2D2D7EB239D29966E00B0E68D679C06 + B079EB2EECD89F4E458E2FFCFCFDB172D96248497B1F4F8943666F2310672E96 + 53F4274B8A0E71088290290AAB8DD0519A4C5B9D40B0655423D452DAD4CEBB90 + 939EDC2D00CE9AC1EFC6C740E4E60DA35E8B39EFC6E2919F0F81874CCC029FA3 + F2D5A54A4A7D3616EC46FC2CF806089D3D53A3C1CA62C2DF734EE1ABACE35439 + CAA0AC2EBB9C77366358B700D89C2070B9F02ADE9CB704812111AC765F9FFC19 + 95AF5236FBCEC4BC6F8B1430711656279808C243F70DA059BDFD00450A131A9B + B458F7C162566657575C87D9C20DFB36F7D8E52E03B03A4160EB8E7D64FE47A9 + DAEB83279E790613C7BD4865AD087D9C987D41AE54A860345B61A2525880A037 + 59F0F341C1B77521A16A15BAD7DD9B93A1ACADA19E4105ADB6E1FD0B678FADE9 + 3200C10C1D95D8450928A9A88390F767CD9D8787874533D37793883BB9C3CDA5 + 54A1A1A6870070ED2158316CE08056089D3D95F0AC65E406E773B3F07F99C720 + D48D6A65F55E728357BA0CC06C711CC0CB93664024B3D7E7892B3F40C8800078 + 53E4173B6700A855EBE8BE569805009C8DDE5B982BEA8C160C890CBCA5259451 + A578FD6A21F67D91CA5A6C4575D9777939E9FFD16500268BBD359D9F72FCB603 + 9C3F948AB0A8C154882830F6F5F980584A009AB57780A370C9F3A30643A33392 + F2B656082DAF3C0543AD9E437444C04D6382A2C9C2BAC7F51FC753E1E58BEAB2 + 220559C000A701C4A666F19FCE1A0D23677368D684F6F4E931BF47F8C02150D7 + D560D396CDEC211D8DFEED6F6E345B9A95B643E0DABD17203511849F85FB5313 + 75E3D80D7A2B540D1A7C92B8103EBEFEA82C2DB2E59F4D77A8E6EE00E0DD0D99 + FCDAB79E85DEEC180033C761CC6F5F4658245900E5E04D5BB6B0A287AA607B97 + E7841B083099D2647DF6573B8096CF04088D7A138646DA2756F85F688E047735 + D19FB6A9111FC52F6000AACA8A402EE050F4E970D13B29A7F8CF663F079DC90E + 60519A232EB0C16E010460CADB8B206A5EDAB28F2E62A9903A5F06E6666EFCD4 + 430351DF684051959A14BE397CA14E78705008BDDA95B7B5AB241BD42AAC5A1E + D73D1798977C824F9A33065A8ABE8ECAC4A9339B83600396AD5C81D0E0A09BDF + 4C64BFA1A81948CB03889ADF70A45949750383D1A29BF06A6B9E7261F9EC81FB + 423A1DFB7AD135A42527B504C102B280E14E0398BBEE389F34F7D768323A0E60 + E192049457ABD8FADE9BB36763C4C30F3AFCDD9B4983CE840A452303D25ECC66 + 8E000477FA9DECCC53C83872B4390DD61CCC3B9BFE92D300E62465F0EBE6FD86 + 959882C46D3A71DB012A2E9F43534D095BF67AE4B15FE0E1C79EE8360036FBF4 + 64626A757DE41EAD9F6BB47A3C30B0730029C9EB505252066DA3BAEB85D0DB6B + D3F9E4779E87C6E0784B5D70E9472C5ABA0C81C1116405062425ADA15258D66D + 082D62A0ECD0D06464CD8FA2BE892CE04617331A8D887DE75DC8BD7D5143A5B0 + D5641CEEE85E420700B33F3DC227BFFB5B68F48E0310A2F78429317097F767CD + D05B6FBD89C7468EE831008208C14E6FE4505C5987A1036F04909599853D7B0F + 402673A366A8FC2A997FB4A3637700306BCD977C4AECFF40DD0C2071F3498706 + A9F8F13C3495452C02FBFBF962CAF499C2023F1CA984F8DB5C2294C22D5270BD + 0643A33A0677610325F6BD8514282550533166D4352DA10CF071D7007C72984F + 99FF3BA797C5351A0DA6C6CC44C080085612C7C44CC573BF7CD2A9311C91C29F + 6A114D65717BD9BBEF208E649C64D1BFA6F227ADA14E17DCE5059137561FE237 + CC7F910038BF31B26DFB4E1C3E7A1CBEFD036136E9B1FAE31508A6BEA027575D + AF9429A8246E03505C5C82B8651FC2AB4F3FD4D596C36C342E20F3FF5F67C6EC + F07C33571DE437BCFF87D69DA1959F9F7278201BE5E81F3277412EF786442241 + 807F7FCC7A6B163C3CEC51DCA1F6AA137F1818E2D7FABEA84289C1E101ECBD4A + DD80054B975390A44AD16810A2BFC5BB5FE0F093073615761940774F8C5C2B2A + C2E2C571F00B0C657B7F11E121485C3A1FDE7DE45D1AEF5FA5A4AA0EF787F9B3 + ADB6F895AB292B68D8B278BDA20A8F8D7A1CA515B56AAD59FF6CE6EEB46FBB04 + A0274E8C9C3A9585D4D48D080C89643313121480250BE6528518D8E5315BA4AC + 460DAB5E8315AB92D0A835B2CD53454D1996CE9F8BE1C38763CBF603F8E152A1 + ADB6EAA7B1E7B28F1C761A404F9D18A9BEF61DAA2833085B636CF7D762C6A409 + E3F1E413A3D85ADFED223FDFCE6182FD7CD8AB95AAC25D07D2B17BFF21B8B97B + B1CFEA1415887B7F2E7E35FA29E8A8516AA4424980F0FDA542BEB6F2A7B1E7CF + 1CF99B53007AF2C4C8E9D3A7B1316D135BB3F7F09043A7D320223404E3C6BE80 + 27473D0A77B7B662E9563C4C263372BFC9C7CE7D7F43ADA21E5E721FB6F42E2C + 7D2D8C7D9BB2CD13F0F274A774686983B0E320F2F22E582E9ECF1E515B71FD07 + 8701F4F48991A26BD7B076ED5A681AB56C7BBC65A35450FEBF7EF1281E1A3E0C + 5161210808F0435F9F3EEC3BC2B50A451D4ACB2BF1DD0F9791FBF539D6F909A5 + B62042D769B558B847468E94BDF3E6348A2F9E0C400B846BD72BF0C9FACF5155 + 5986C2EFCFD559386EF4AD20DCF113234276A8BA7281B985A7979CADDC4AA432 + 0A92462A9DB9D61F48B4FA85D03637FF4042A8EC845F90709C094D54E3D3CCEB + 443C3EE817107E402EF7CA1932F8BEE019935E6A85206486C455A904D30752A9 + 04A74FA643595B714B082E3B3122144B19E9E9C826D7D06A75B7F9898C859436 + 37FF4446272CB89652C9BDD9C859375CFAE6844AB86ECCB8D707BA49DDAF3E38 + 6C885480A0D569B1366D1B7C28E3FCE657A351ABAC43C1E52B04E12883C0DB2C + BFAF2A2DFEFA96005C716244E81DAE1416E2E2C5EF504C6953F8919452A9649F + DB0D40442E11001D274693AA3A5EC4F3D9F9B9C7BEEA6CAC914FBDF0F880D0C8 + B343A2074B14CA7AF63BA4E841E1080F0B4368682841A8A7AC40104EA50B7B87 + 5A82F0EB7F85D06B4E8C080062278C66795D10474F8C0810FAFAFA6799CD260F + 0F7729533E2C2C9401086B81C02CA17308F7C48991A0A8A82889C83D87DC2A62 + D0E007EC1048F9D0B03608823B649FCA406D75590708F7CC89919090FB2244EE + B25C0F0FAF8841D1C35ADD20AC1D844B3F5EC599AC13C2F6592B847BEAC44847 + 080F90F2E14CF9B066100AA50A050CC2F15608F7DC89910E10C81DC2C2057768 + 7309651D41B8DC06E19E3C31D23904BB25086EA1A4664A7087ECCCE3F8279327 + 225EA1D20CBE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E4C4944415478DA + E59B0B5C9455FAC77FC3CC30C00072973BA6A698B99FFFBF5DB7D6D24DB3ADDD + F6DF96AD9734F15A6BE52533352544B3CB6A6B0988829732C34B9A9A28784542 + DA5C01B75D178D143591EB0CC33030F77766DE7DCE3B38420B388334F2771F3F + E3CC30EF7BCE79BEE7799EF39C73DE23422B7969F57E7EFD8267D0A0E370A7E5 + AD8C1C6C5CF4ACE8A7AEA74D052FAEDAC7AF7FE359A8B476002B3F39EE56A593 + A63D7EF373C6216C5A3CC6BD0066BEFF05BF61D173A86FBEF31690B4211B9B97 + FCD1BD0066BCB7C70E40DB0300ACCFC696A563DD0B60FABBBBF98CC57F84B2C5 + 02DEFBF4845B955E3A65742B0007F071E238F70298B672179FF1E638287A800B + 2C4BDF8F4F9226B817C0D4B777F2194BC643D1D41300ECC3D665CFBB17C09415 + DBF98CA5CF1300B3F07DF567796E557AD1E4C76E0258B7179F264F722F8084E4 + 2C3E23F179D4F5000B484EFB02DB56BCE05E0093976D2300937A0880DDF8ECED + 04F7027821E9533EF3AD1750ABB103F870877B5DE0F589375D2039ED7364AD9C + E25E009312B7F29949930980D9AD8AB727C9A99F63FBBB53DD0B60E2D28FF9CC + 655350D303002C4FD9891DEF4D772F80E7976C2100531D0052779D74ABD27327 + 8C6A05600776BE3FC3BD00262CDEC467264FEB1916B0763B76AD7AD1BD00C62F + DAC8672C9F8E9AC63B0F60C5DA2C7CBEFAA53B002079BAC302D277E7BB55E957 + C78DBCF3003610809E300ADC3100EB974DA744E8BF1AC0344726F85FE902E904 + E0A79E0D565EBF8ED273FFC4E5F28BA8A9AE8646D388268D062291087EFEFE08 + 0C0A423D59A15659351F56EE44C937C74ADD06605DD234C78248778AC96444DE + B1A328C8CF437DBD0A5EDE72C8BCBC2195CAE02116432C9608D759AD16582D1C + 388E83C9A887D1A0A5EF9652DE862D8606DDE6F3E7BFD2FEBF0260B3D97034F7 + 100EECFB0222B1947A380812A92738B30916CE2C286CB359C1D37542833C3CE0 + E141402412E13A4F0264361BD1AC51C3A06B52F33CBFACA4D090017C65F94900 + A41180EE5A14ADAEAA427ACA1AA8546A04048581A7BF990C3A327560E8F0C7D0 + BFFF00848404C2DFCF1F528958B887B358D1A86912ACE4F2A5EF51547892A088 + C9627C40CA43ADAA25AB3014F116DBC4B3DF1CBEDCFD00DE9AD62D8BA2254567 + B071FD3AC8A9C799B9EB754D080E0EC393CF3C874103FB4326F3ECB821AD446F + 30A1F44219F272B3D150AF848FDC0F3AAD066AB542476633B6A4E0F0E16E0590 + 4A0054B709E0EB5305F8645326427A47C346CE6B21FF7F7A7C021EFCE5039090 + BFB35A251E2248C522883DD8ABEDFDCC1BAC361E1CBD2C569E7A1E30534CD8B6 + 631FBE2BCE87B7DC9FFE6683A2B692E379EB8C9282DCCFBA0D404AE25434E8BA + EE5E45674E23735D1A422362C191E201C1C14898310BE1BD4384DF651211BCA4 + E4E7AD6AE63B298FFD66E678182D367CBCFB1886DC1B85FDDBB7D00F22214ED4 + 565FE36C56DBB3670B7372BA05409735670DD537A1FA4221C2C26360A148EEDB + 2B08714386516FDA2026C797CB3C84F75B09DF0E1266053AB30DA3478D4053A3 + 1ADB333FA291C54401D3038A9AEBCD5633F7C0DF4F1F2DBF2D00B7237DFA3CEA + 151227FF363834325E22914222F140C22B0BE1EBDF0B013E12C4877B09E67E3B + C2B05C539950A5360B10B6AE5B4501D583864B031A1BEA8A8B0BF4C35C1D1DBA + 0DC0D011BF7BD3DBD7FFFDC0E0DED03537E28559AF23223A0E81A4FC0052FE76 + 2B6A6D1395048041B87EB51C3B37A5C02F2018CADAEB0CC4EC9253B9E96E0730 + F8574F04F9C8241591D1FDE52CDA3F3CEA49FC6AE41382AF0F8AF476CAEC5DC5 + 715969829A62557EEE7EFCFD6F85F09479A3AEEA6A835EA58F732559EA96960D + FDF553CBE47E012BFCFC0329A3F3C04B6F24930B483028C28B829EC7ED57D08E + 58292894D518A1A3613263F5328A0552CA11EA68D8D4CE3D5B9093D62500AF67 + E6772908167D9949F97B288C7A2D1E796A3C7C832385DEF7F6EC4CF9B6558506 + C8F1C0BD11343A889CB8DA2E4D06AB1013FE56701C7FCD3B4299A314CA9A8A0B + C5A772077719C09A971E7549F90B6517F1E29C25088B8C1572F7F4756B297D95 + A097B718CE5A3E8BF085A595345A003FEBD7BB4308ED49B9C284A6662D52DF79 + 5348B36B2AAFC06CE1067F5B78F8429701B862065BB376236BCF21CAF67C317C + E4A39838F6194A6B45F0F5143B59AB5DCE94D5D0BC8087995EF7DF13E6340496 + B3B0B9CBAECD6950D6D5D29CA1015A6DE31B674F1D5ED36500361708CC5B9884 + 2B95F5C2B8FFF29CB9F89FFBE3E143A6EF2971BE17D995E7AE2861A279808D2A + 3759780C8A0D25BF6E5B467BCDE2085805B94151611EBE3E7158C821D4CA9ADD + E406E3BB0CC0EA0281311367505E6BCFCF97AF7C0791E1A1F0F31253E39D87C8 + A4BC4A0D136723F3B508A9B0CE64417C5C9853B943458319572E9661CFD60DC2 + 145B5153F18FE2829CFFED320046D5597964F4D3888A1B408988026B53D3E02B + F72100AE47FECAFA664A79AD04C02ABCB326E809C2C098FFB4841F8BA2D922CC + 1ED7FD398912AF40D454942BC8027A771980D9E21C00363D1DFEF8D388B9271E + EAFA5A6CFA788BE0BB3E9ECE01685DB952A31794E7040036E1B38DCAD79BACB8 + 373AA453088D7A2B1A1A35F8207911FC03435075ADDC56722A477CEB167400C0 + 64B12F4E2C483FD2E9CD6C21A3247B23A29905D0183C7176A250249BDAB3F63A + 9BFA8EFE795F34E9CD76E55B0070163B04D642ADC182FE51C16D20B02E623345 + D6592C66689B9BF07ED2420140754539C8059CAABCCD45F337E4F11FCE1A0523 + 6773AAE14C46DCB00002904AB340B98FF7CDC2C91A589B8517FDD7995D98380B + 29636B81607F7740801D425C44102B54182E99F2CC421C56A06EC0AA1589B7E7 + 02AFAD3FC17FF4F263D09B9D073061F24C88A42C083662C53B2B1115D171BD22 + F64F64AF54D4F2C1D100DEDEEB9CB5C505484B8EB3C360A303D355A337A16F64 + 48BB655F29BF848CB4941B41B0942C6088CB00E6A51FE7D7BE329A22B01DC0E2 + 8C23B72CA0ECEB6CC8C422617DEF99090908EA1DE562ADC0438363A16E36E06A + AD867AB663F86CDD70D03DE1EDFE967FE238720F1E6A19066BF7159FCA79CE65 + 0073D38EF229B37F03ADC9EACCBD826CD99A85ECDC3C61D96BD8C30F2361D238 + A7EFFDB15848C18ABA26A8B5C6F60190757404203D2D1557AF5640DBA4EE7A22 + 3427F5089F32E709341B9D07507AFE3B2C7C33196111B1B07246A4A4AC81D453 + E292E23F8E561A9D1935AA668735DCF0748EE2C4A03EFFE96246A311F3E7BD06 + B95F206A2915B69A8C439CDD4B6853F7EC945C3E75EE6F85490693C48D476F59 + 001B0AFF71F8530487860B93A171931210DDA76FC7B5DD62846DFD335B22F7F3 + 9139BE376B0D886F0740DE893C7CBE7B2FA4524F9A0C5DBF48E63FB04BF05FFD + 28874F9BF73B680CAEAD096ECBDA89FD078F0A113834B817DE7D3B4958AAEA0E + 319A2D68D29984885FDFA813B2C3D6C23650E6BFBE083688A1A664CCA86B5E42 + 23C09FBB04E0950F0FF269AFFD9EA2AD6B001A351A4C9EFA22427AC70A29F1F4 + 6909183D7278B70060C2ACCC4020AED53660606C5B00BBF7ECC3C1DC6342F4AF + ADFA416BA8D74574794164D69A6C3E7DFEFF41DD022079F331A71B5979A108EA + CAEF11181406B3D980D7162C40AF5E019DAEB8F04EF8C3BD313787BD8B154A0C + A049D20DB97CF92A1297BF071FDF00D4D75D87D9685C48E6FF1757E0B605F0C1 + 013E7DC1D35D5A163799CC98F5F26C70BC0462B1985C2110EF2E5F025F5F1F97 + CBEA48CAAFD73B8034A81BB170E90AB20CCA158C0616FD2D7E0161438EEDDD58 + D66500B77B62E4D2A5722C5C9C88E0B02861EF2F2E2612C9890BE0E72BEF1600 + 57AB55E8472931DB6A4B5AB91A0A954688352A45351E7C6818AE55D6A9B566FD + 632776657CDB2500DD716244F9C377A8385788B0C838A1672222C2F0A799D310 + 1C12D4E97D7C07DE101D16E0F85C4131C0AAD7E0ED552968A25C816D9E2A6A2B + B074C11C0C1932045BB2F6E25FE7CB6C75D53F8C39937FF080CB00BAEBC4C8FE + 2F0F60DBB62C8486C7D8777F2D66CC9C3211BF7F7264CBE8E0FAD2A38552E29D + 7B73B0EB8BFDF094D9DDAA5E5189C437E6E0F15123A0A334B949AB17209C3B5F + C6D755FD30A6E8AB835FBA04A03B4F8CE4E59DC4860D1B85357B2F2F39743A0D + 62A3223176CC5318FED02F2093499D2AC76834A3F0740976ECF912750A157CE4 + FEC2462B5BFA5A34FF551A6D1E818FB74C48921C10B6EF4371F159CB3F8BF21F + A8ABBCF22FA70174F78911AD5A81CBC5C7E041131DB63DCE364A4D06BDA0FC43 + 0FFE02F7C50FA4C95338828202E027B7F76A3329A06A6840754D2DCE7F7711DF + 9C3E23CCFC58AACD84CD3AAD160BF7F3A143A5F3FE3495E28BB700E006844B57 + 2AF1C1BA4F505D5581B27367EA2D1C37AA33083FF98911B3D98C3D7BF620FB40 + 36A4326F61E5562C91529034D2048A733C20E108026C0ADDF28004CBECD81324 + 1C674233E5F8D4F33A118F77024263F6CAE53E05F103FA46CC98F49C03021B19 + 92576D402F7F7F4824629C3C9603655D65A710DC76624443C952CEA1433879F2 + 24F5B2EE168FC858486973CB23323AB6E07A8D92A1CD46CEBAFEFCE9A30DECBA + DF8C9D798FA74476F1FEC1F1120641ABD3E2A38CCFE04F23CE6F1F1F853A653D + 4A2F7C4F100E0910789BE50FD5D72E7FD32900779C1861599DB6A1161A4A5C74 + EA3A18297334E99B712330B27582D0D050E82C6234ABAA93443C9F5F5278F8AF + ED953574C453C37A47C59D8A1F3840AC50AA84E79006F68B414C7434A2A2A208 + 828A460582703C87ED1D6A09C2133F86D0634E8CD85A9E11BA318770F6C40883 + D02B3024CF6C367979C92482F2D1D1510280E81B10044B681FC25D716224BC4F + 9F3E6291AC80DC2AB6DF80FBEC1048F9A8E89B10983BE41FCF455D4D451B0877 + CD8991C8C8BEB12299B4D0CBCB27B6DFC0C10E37886E05818D2A5FE51D65DB67 + 0E0877D58991B610EE23E56304E5A35B4028940D2815201C7140B8EB4E8CB481 + 40EE101DC3DCE1A64B28EB09C2859B10EECA1323ED43B05B02730B254DA6983B + E49F38827F03E621085E50EFA5E30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E534944415478DA + DD9B0978535516C7FF6D92A66DDAD21DBB028A8060671C94714465864519D751 + 1105546451441410D964696B85C101D7520A298280AC8294CDB62CADB5D485A5 + 282A4BA505ECDE266DD2B4D95F9237E7DD962E124A524AE8C7F9BE344DF2F2DE + 3BBF7BCEB9FF7B6FAE1B5AD8E48FF6F2C9339E805A6F61AFE3D71C842B2DE195 + 879BFE5F989201F9CC27DDAEF7355B5D60F2077BF8E4994F42A5B3B8D4717B16 + 2B4F877CF67F5C0B60D2B25DFCCA994F1100EE46FB8F85F234AC9EF3B46B01BC + BA34955F39EB69D4681B002C5A77C8A54EC78E7FA8F97FF9D7F86CEE33AE05F0 + CAFB5FF1ABE68C4075FD8D8F80D8557BB166DEB3AE053071C98E0600DA4E0060 + E55EAC9D3FD2B50026FC773B2F9FFB2C948D11B06443A64B9D9EFFF2B01600F6 + E0F305CFB916C0F845DB78F93BCF41D10952202E7917D6C58E722D8071EF6DE5 + E5F39E87A2AE330048C5FAB8D1AE05F072C2665E3E7F340130B3D7CB3666B9D4 + E9392F0D6D06B0622736C4BFE05A0063E337F1F205A351D50922203EE92B7C91 + F0A26B01BC14F7050178A19300D88E8DEF8D752D80176337F0290B5F44A5A601 + C0C75B5C9B026F8F694E81F8A42FB169D1CBAE05F0C282F57C4AEC4B04C0EC52 + C7ED59FCF22FB1F9BFE35C0B60CCFCCFF994B89751D10900BC9BB8155B964C70 + 2D80D1F3D61280714D00966FFBC6A54E4F1B35A405802DD8FAFE44D7021835F7 + 333E257E7CE788804F3763DBD2575D0BE0F939AB79F9BB1350517BE301247CBA + 095F2E9B740300C44F688A80E4EDD92E75FA8DE706DF7800AB084067E8056E18 + 8095711348085D5F00A5252538F5EB2F385F780E15E5E5D0686A51A7D1C0CDCD + 0DBE7E7E08080C4435DD8356593603562E33EF8783A75C08607C9312ECC814B0 + 5A38282E9C82B2E82C2C263D3CBD64907A7A412291C25D248248246E38CE6A61 + C7721C0793510FA3414BAF2DA7781BD61A54BA35A74F7FABBDAE00920940478E + 066D361B0EA47F8D3DA95FC14D24A1160E8458E201CE6C82853333876D362B78 + 3A8EDD90BB3BDCDD098858CC8EF3204066B311F51A350CBA3A35CFF37179B906 + 39F06D87CCDC5E066045ECF8A609916BB5F2B23224277E849A1A35FC0343C1D3 + 7B26838E421D18F0E050F4ECD90BC1C101F0F3F583442C62DFE12C56D46AEA50 + 5D5D83F305BFE358EE3704454411E30D721EEA9A4A8A0AC331DE621B73E2878C + F39D1640DEB1A358BD720564D4E242B8EB7575080A0AC5BF9F1A813B7AF78454 + EA71E51B69617A8309A7CEE4232B7D2F54D54A78CB7CA1D36AA0562B74143623 + F37232323A14401201B8D649D1EF0EE760DD672908EE1A091B25AFC564C493CF + 8FC5BD7FEF0F31E5BB7055B1BB1B24223788DC8547EBEF0BD960B5F1E0E861B1 + F2D4F280996AC2175B5271F67836BC647EF49E0D8ACA528EE7AD13F372D23776 + 1C8085E3AF6952F4D8D11F91B222092161D1E0C871FFA0208C9D3819B7740D66 + 9F4BC56EF094509EB7B832DFC6F984CFCC1C0FA3C586CFB71F44CCED11D8B579 + 2D7DE0C6EA4465791167B3DA9E3E919B96D621009613809A760210BAB78485F3 + 1018120E0B55F288E81E7869C204F8FAC8408D0D9954C45ABC3D26E4FFAAAD07 + 316CC820D4D5AAB139E513984C262A98EE505494D45BCD5CFF9F7E3C5078CD00 + 12178C6BD7D298D06DC5BE331B266A2DB15802FF007FBC36F52DF8C8642CD465 + 5277D6CFDB71CDE16B6CDAF50D9E7EF45F28539B1984F52B96D239DDA9BB34A0 + 565575FC788E7EA0B3BDC365009CF6BCD16ACB0B6050952020A82B74F5B5B867 + D8B3B0C19D39EF2315397C1EA1A5DBB229A387A1940008104A2E1662EB6789F0 + F50F82B2B24400F166DEE1F4E4760368AFF5BB6F78A0B7545C1C1ED9532654FB + FB87FC1BF70D1ECE72FD8E702F0AFF8E56B43CCE2B4D5053A466A7EFC24F4772 + E121F54255D94595BE46DFCD19B1D4217736E09F8FC5C97CFD137CFD0248D1B9 + 63D2AC784A0331EE08F3A4A2E77EED17B063568A94FC0A2374D44DCA97C5512D + 909046A8A26E533BED444E5A924B01DC33E8B1A2B0A85BA38D7A2D863D3E0277 + DDFB00427C2508EB22E93087ED25469DC18AA21A138EE41CC2F759FB49394AA0 + AC283E73FC707A3F9701B8E7C1E17FF790CA8E86864753EE6B303D6E193C3C3C + 707B574F5CA7C66F65850A13EAEAB558BEF81D26B32B4A2FC06CE1FAFD9C9B71 + C669006FA7643B5D044B4E1F45CD1FA749EDF9A0FB1D7F41AFFE0F3656FDB60A + DFE59709F293A15F8F50D207CEB589D06309CA75DB9A2428AB2A69CCA082565B + 3BEBC4E18C8FDA05E0A349FF72EA06A6CE8EC585926AD6EF4F993A0D77DDD987 + 75790284CB2E700523C18723F9E5E0AC40DF6EA1B812037BADC391522CA63438 + 969B85EF3233E8181A2F282BB6531A3CDF6E00CE84C153A32690AE6DD0E7098B + 17233C2C14BE526144E75C4BFE5450C9E4AFD9C2A35754089C098462951917CE + E563C7FA556C88ADA8283E793C27ED6FED06607382C07D439E4044B75E244414 + 484C4A22E1E30D5F4FD1E527BF8A9D29AE26C96BA5EA4E234692BD3D2382E128 + 4345BD858D1E57FC2F163ED4135514172A2802BAB61B80D5410282681938F449 + 44F5E803757525D6AC5BCB7258E6E17CF5BB58594B006C1401566A001E7A9315 + B747063B1449B57A2B54B51A7C103F077E01C1282B2AB4E51D4E73487DD90520 + E49523268CD0063F3202914204501FBCE6F3060062CA7F92E84C00391A05E5AA + 7A0680B334433098ADB82D3CC82E04E10E8591A29032267A68EBEBF07EEC6C06 + A0BCB81094020E5DDA2E00E1A48EDA03C39E688800029044A34099B757F3C909 + 8000448021F8E0D64662ABEA0CCC718E3D2E410083706B58208320BCB6D01FAB + ADC1795B0BD95CAB566169C2828E49012107059B99BCFFAA27F8E5C046040686 + 5211ACC59849D321F5F6C195E4BC5B63445CE2203C0BFF0EFA6B776849D199E9 + BA1C79C7512D303742104EA5355810D535A0CDFBB85058007952E2A522788A22 + 20C66900335665F11F4F1E022367733802DE9E1B8BA272159BDF7BFD8D29E87F + 574CDB17B982992D9606000C8295BAD54618F42C40D0193982E04FC369FBF525 + 3BF310D2F77DDDD80D56A61E3F9C36C269006FADCCE43F797D28F466C701AC59 + B7117BD2B3D8B4D7C0FBEFC7D8179F73FC822D4C28A8964687D9B3B521152E81 + B804A107A5833D4B4E5A8E8B178BA1AD53B75F084D4F3EC47F3A651874A60600 + 73E5574F81FA9A0A14FE988ED0B068582D264C9C3A0BEE2DE7B81C282777F78E + 40ADD68812651DCB6D3B789A20F521A1F467331A8D9831FD2DC87C03504952D8 + 6A32C638BA96D00AC0B4A4037CE29B0F434B5D90A326DCD4C8D1E3E1210B8030 + 189A326532EE1D70050D72955CB0524B9755D743A333D9FD5C9862B707202B33 + 0B5F6EDF0989C483064325E728FC7B3B7AFFAD6E69EAF2FD7CE2D4E1A8373A0E + 40B00D1BB72275EF7E56814382BA60C9A238A7357D4BAB3770A852EBA8DAB74E + 458EB3A07774C89FDEE330E3ED39B04104358931A3AE7E1EF500FF6B17803713 + D3F9E5D31E61C34CC116AC3EE0D049389381F506B78477679278E4A851E87BE7 + 5F2E3B8E77241F2E1DC2BA0B77F878354F9F6BF54626935BDAF61DA9D8977E90 + 55FFCAB23FB4866A5D58BB2744DEF8248D4F9AFE283406E7E704376CDC425190 + 8100EA12CD263D3E5CBA88CD045FEB78DB445D62BDDEDCB02852A7C7ED51C14D + 9F9D3F7F110BDE5D026F1F7F545795C06C34CEA6F0FFD099F3B7BABF291FEFE3 + 93DE7A1C1ABDF3004C26335E7DFD4D703631442211428302B0F8DD79F0F5F1BE + 460460BAC268B6A04CA941CFC820F69E4A5D8BD9F3139850321B0D42F5B7F8FA + 87C61CDCB93ABFDD00AE75C7884EADC0D9DCDD08BD258AADFD45474562D26B13 + E1E9E9D92EA705EB1ED62C802E56A8481A07B2A5B6D845CBA0A8D1B069F11A45 + 39EEFDC740149556A9B566FDD0CC6DF29FDB07A003768C1C38988915C9728486 + 77632D131E1682F9B3A62222FC2ACAD481F2505CA58645578BF79626A28EBA4D + 61F15451598CF933A7222626066B37EDC46FA7F36D55E57F3C73347BDF1EA701 + 74D48E91D45D7BB07EC326845024B0D55F8B19AF8C1B8327860F662DE65031FC + 935949106D4D4DC3D61DBBE0216D48AB6A45291610DC87860C824E6F22287A06 + E1D7D3F97C55D91FCF1CFB76DF6EA70074E48E1165513E8A7E390CFFC0104A01 + 19743A0DA22323F0F8A30F33B92C91889B0F6E8347176F0FE41EC9C3E6EDBB51 + A5A881B7CC8F2DB40A535F7366BC8161831F80B7979475914D1036A7E2F8F113 + 965F8E65F7AF2ABDF09BC3003A7AC7484141013EF8F06368EAB46C795C582835 + 19F4907A4870FF7D0370574C5F748B8A40687020BAF8F9B0EF08C75629AB5154 + 528693BF9D45EEF747983A14A4B660C2A8D36AB170770F182099FEDA382AB25E + 0CC0250805174AF1C18A75282F2B46FEAF47AB2D1C37A42D08D77DC788D03BEC + D8B103BB77EF8544EAC5666E4562091549230DA0B8A61F4834553D367C6EF881 + 84A0EC845F90709C09F5A4F1A9E5756E3C16FB8744ED94C9BC73FAF4BA356CE2 + 0B239A20083D43FCD25504D30F62B108DF1C4C83B2AAB44D082EDB312288A5AA + F3BFB29FC8F0E474DB3F91B190D3E6C69FC8E88409D722D2016B8C9C75E5E91F + 0FA884E31E1EF94A0F0FB1F4DC9DFDFA8805085A9D169FC837C2CF4786471E1A + C2A2E8D499DF09C2D70C026FB3FCA7BCE8FC0F6D0270C58E1141D0E49FCDC7C9 + 9327514063F8F2B2722895CAA6354161CE202424047AAB1875D565B16E3C9F9D + 979BF1BDBD730D18F4D8C0AE11DD0EF7E9DD4BA450D650B419D1FBB628444546 + 2222228220D450AF40100EA5096B875A8230FCCF103ACD8E115BA3EE776F1CEF + 3BBA634480D0252038CB6C36797A4AC5CCF9482AB60280C84B105824D8877053 + EC18B9A57BF7EE2237690EA555F46DBDFA364020E723229B2108E9907D281D55 + 15C5AD20DC343B46C2C36F8D76934A723D3DBDA36FEBDDAF290D225B40387DF6 + 1CBECD3A202C9F3541B8A9768CB486D0979C8F62CE47368250285538C520EC6F + 8270D3ED18690581D221324A4887E6945056138433CD106ECA1D23F621344482 + 90164A1A4C09E9909DB91FFF074D90145EA08F15F50000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Find_11_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E6A4944415478DA + DD9B095C94D5FAC77FC330C33280EC08036859DADFAEF7F6AF4CAF95F75ED4EA + B6DDD42CB75CAB6B9A0B99960B90D972B5DB228B0EE656691AA55E17401042B0 + 4DC49BFF5C43D440D6196018665FDFFF73DE4196449C1971E4E3F3F9C02CEF3B + EF799FEF79B673CE7B046827733ECEE452E63F0E95DE829B21754A2D4EFEA680 + C96CC5F7C7CF232DFE09C18D6EB34303B33FDAC7A52C78122ADDCD01C0C462E5 + 50215761D3BE9FB0F6B5A7DC0B60D6877BB9B4F8A7A06C0190B421D7ADCAAF78 + F191D6F7CBD3B3215BF8B49B017CB0874B5BF8341AB537CF022E4B822C0BB245 + FF702F809757EFE6D62E7C8600986FB6FE582ECBC4FAC5A3DD0BE0A555BBB8B5 + AF8F4683C60E60E5E6836E553A61FAA8B6F7B2FDF8F48D31EE05F0E2FBDF70EB + 168F45BDFAE65B40C2BABDD8B0E459F70298F9DED776009A1E0060ED5E6C5C3A + CEBD0066BC9BC1C9DE78168A160B78EFB33CB72ABD74EAC87600F660D3B2E7DC + 0B60FACA1D9CECCDE720EF012E9098B61B9B13C6BB17C0B4B7B773B225CF43DE + DC1300ECC296C409EE053075C5364EB674020130F19F577F91EF56A517BF30A2 + 0D40EA4E7C9634C9BD00A6246DE564CB26A0AE07584052CA37F87CC564F70278 + 21F1730230A98700C8C0176F4F712F80C9099F71E9CB27A3566507F0D197EE75 + 81D726B6B94052CA57D8BA72AA7B014C5AB6854B4F78810098DCAA78679294FC + 15B6BD3BCDBD00262EDDC4A5274E454D0F00F0D69AEDF8F2BD19EE053061C946 + 0230AD1540F28E6FDDAAF4BCF171ED007C89EDEFCF742F80F16F7CCAA5274DEF + 1916F0C936EC58F5927B013CBF783D277B6B066A9A6E3E80159F6CC557AB5FBE + 09009266B45A405A46C10D6954DFDC0895FC12348DB5D0AB9B6031EA6036EA21 + 1008E01F1080A0E060D45331A65154C5C36ACE2BF921F7A4DB00AC230037220B + 188D06E4E7E6A0B0201FF5F50DF0F691C0CBDB072291173C844208859EFC7956 + AB05568B1966B31946830E06BD863E5B4E72366CD4376A379C3A7548734301AC + 4D9C418550F701B0D96CC8C9DA8F3DBBBE814028A21E0E86A7480CB3C9088BD9 + C42B6CB359C1D179FC0D7978C0C38380787AF2E7890990C964805AA5845EDBAC + E4382EB1E4B05E061CEA9679BB4E004C6FAD04AFD705F46A25CA8A73008B0981 + C1E1E0E83BA35E4B0A7AE04FC346202038021CF5BC9974E7B8961BA23B127BD0 + 6702A3AAAFC5F1EF72098A902CC697CEE1A06CA825ABD0177316DBC4633F649F + EF76006904A03B468325C547B07E6D2A24D4E3CCDC75DA66848484E3B167C6E2 + 7F06DC012F2FF1D56FA49DE8F4469C3C7D16F9597BD158AF80AFC41F5A8D0A4A + A55C4B6633AEA4303BBB5B01A4264C6F9D107155BE2B2AC4E64FD3111A110D1B + 39AF85FCFFE9E7A760C803F7C293FC9DB5EAE92180482880D083FD75FC3DF306 + AB8D23CBE0F87502661D268A099F7FB90B678E16C0471240DFD920AFAD34739C + 75664961D6173D0640F1911F919E9A82B0C8588AEC0604868460CACC59E81D11 + CA1FF7F214C05B447EDEAE65AE8BEBB16326330783C5864D19B91874A714BBB7 + 6DA403023E4ED456979B6D56DBE863873333BB05400A01707552B4F2D225AC58 + BE04C16151B0502497C6DE861766CC80BF9F04D4D9907809F91E774598FFAFDB + 9E8B9171C3D1DCA4C4B6F48F29B318F97822AFB9A4B69ACCF7FEF7C79CB2EB07 + B07CBA4B93A22C6D25BCB90846EA2D4F4F11028302F1CFB90BE02791F0A62EF1 + F2E0F37C27AA39DCC6D6DDDF62F4E37F4595D2C443D892BA8AAEE941E9528FA6 + C6BAA3470B75C39CCD0E57004826000D2E00D8BFF73FF4B7174121113068D598 + F76622997D18C4A4BC9F9787D3D7EB0CD38EBD87307BC24854120006E1D2C532 + 6CFF740DFC0343A0A8BDC440BC5A529495765D00D62C9BE6F4D29856AB41FCDC + D9080995F2D17ECCC4697860F07D649E0204F808D15DF56CC6FE22BC342E8EC7 + 715E618492EEB3206B37FEFBD36188BD7C505775B151D7A0EBE34CB174050057 + 6E4C59F52B4CAA5A2A72822830893070D863FCF7BD4879618BD9730E983AE740 + EBD346FF857FB5D2C9676B0CD0529A94AD4E24D822AA11EA286D6AE61D2BCC4C + 710980AB72FFF027CA23636E8F35E83418F9E458DC33E42184F98B10D94BD41D + 976F0178A534EBAD286F30E2A7C283F83EFF00558E22286A2A4E1F2DCABADB6D + 00EE7FF8D107C45E9223E151B1D0AA55989FB81A62B11877467853AEEF36FDAF + 2A6572239AD51A24BFF3265F66D7545E80C962BEFBE7C3D9A7DD03E02F4F2C0D + E815FCAEB78F1FFAF4BB03CF4C9C093F6F21A481E2EBBDB443C2E215AB5B766C + 4881A2AE96C60C8DD0689A5E3F5694FDA17B000C7F3C273C32F61196F7473D35 + 0E7FBC7F28220268D04310BA5B3A7303337BA284DCA0F8703EBECBCBE6638D52 + 5193416EF0BCD3005E4B2F703A0816EF598FE0A030BE3E7F7CF21C887DFDE04F + 058FC755CCFF6A812E28C007FDA3C32070A14B2A1A4DB8507A165F6F59C70FB1 + E53515C78F1666FEAF4B003E7CF9AF4E353EE46F4F41DAA73F152272245309EC + 27F16DED7D4775B111959273757CDD7F8734D4690872B5859F6348FD5702FC28 + 13D55494C9C902225C06E0A819B0F274280188B9ED2E2869E8BA71CB46AAF1A9 + EA133B1FFD7EB9A0E007402682D02F2AC429084D3A2B1A9B54F8206931028242 + 51555E662B29CA74C8073B0560739080C964C6F0C7C6209A5900E5E04D9B37F1 + E5AE2735CD6A7E56F63BAA4769A592A2B795B706A385C36D91C1E86AD8C06E91 + 598CC9623F5FA36EC6FB098B7800D51565201770A8E94E01581D2540F2E7B816 + 0B2000A9692990F8FAB45D5C20E02D82C503A68C471738CAE5CD3013003B04C0 + 60B2DA21B4A3C0BEB7D03FABCDAEBCAD5D4069523662D58A65DDE3022CB23A2A + CF4E9A49837B3649D18495EFBE0369E4D5DB15B45884FD55D06AE6ECA5B649CB + 0330D3B0D7447F3652544F10622202F93398AEB62E4AC50B65E7204B59733908 + 9E240B18E4320066568ECA82C50928AF6EE0E7F75E993307F7DDF307275BB58B + 526D20F0561A46DBE8D5C683600A5F86E0718DA05090771059FBF6B7A4C1DA5D + 478B32C7BA0CC068B14F502E4C3B70CD0B549E3E0275ED457EDAEBFEA1C3F0A7 + 071E7418DE651932309A6A7A3399B58D87C094BF0C82DDA1CE4810C27B750921 + 2D2519172F5640D3AC74BD108A5F97CF7D342B0E06B3CDE19B3F71F234594112 + A81882D56C404AF287540A3B3F0630992D2D00D83498D5FEDE627FCFEC516FB4 + 203AAC1784C22B338CC16040FCFC0590F807A1964A61ABD130C8D1B5840E0016 + ACCDE33E7E65047426C701B0543876FC348825416083A1D9B36761E8E0ABD420 + 82AEAF63B5DA7BDDD20A816B8162BF1F9DD18CBEBD83AEF86D7E5E3EBECAD809 + 91484C83A14BA564FE031CBDFF0EB7343FED20F7C9EC91D01AED0DBE21BBB60B + 30A93C530C5555191F81C342833079FA4B6C821F8ECCF6B0B8F6C77EBDD1AC35 + A2BA51C343E870FC779006C4847638CE66A2E25F5B0C1B8450523166D0AA9750 + 06F8974B00E6A5E4706B5E7D041AF23967A4898A90F1535E4468782C5F12CF9C + 3115A3E21E72EA1A4CACD4E3B54A0DD4BACE1766D8224BFFDF01C8F87A17F665 + E5F2D1BFB6EA378DBE5E1BE9F284C8DCE403DC9AB98F426D700E0093CD9F6FC3 + AE3DD9080A0E87C9A8C3BF57AD446444984BA32DADC18CFA66DD15D6C0D2E49D + D121AD9FCF9FBF88656FBD075FBF40D4D75D82C9605844E6FF6F67DAEA707FAF + AEC9E292E7FD9D9F6860B26C7D8EC317B2592D3891B71D12893F052A21B94230 + 5E796516F58C377FDCA1C4DA21CF0BF882C1D7BB2DA0B2D99F3BA476008DCA26 + 2C5ABA824F9326839E457F8B7F60F8A0DC9DEBCFBA0CE07A778C949696217ED1 + 5284844BF9B5BF3E3152BCB57C21FCFD7C3B51D6B16BB2CA905904F37F95C680 + DBA382D0D0A044C2CAD59037A8F869F106793586500A2EAFAC536A4CBA11793B + 643FBB04A03B768C1CC8CDA351A10CE1517DF89E898A0CC3B2D7E7421AE55065 + DAA930C330529A9437AA61D636E1ED556BD04C30D8E2A9BCB6024B17CEC5A041 + 83B071EB4E9C3875D65657FDDB982305FBF6380DA0BB768CD49C3B8E6ACA0C61 + BD63ECABBF1613264D7C0E0F3F38942F66AE35F9D97E02551ADA8B7F656971FB + CE4C6CFF7A37C45E768BAA9757F27047C50D87566724283A1EC22FA7CE727555 + BF8D293EB4EF3FCE01E8C61D23072937A7A6A5F373F6DEDE1268B52AF4914661 + DC9827F1F09FEF8397D8B1293383D188C33F1EC3B68CDDA89337C05712C04FBD + B3A9AFC5F17330F26F0FC1D7C78BD2A1A50DC2B65D387AF498E5FF8A0BEEADAB + BC70C26100DDBD63A4B4F41C567FF0119A9A35FCF2385B2835EA75A4BC080F0E + 1B8C7B060D44DF6829C2C282D12BC08FFF8D8ACE952BEA515E518DE3274EA3E8 + FB9FF8828895DA4CD8A8D36AB198EF1B3C5834FF9FD328BEF8F0002E433877A1 + 121FA46E46755505CEFE72A4DE6236C77505E186EF1861D9A1FAD763BC5BF8F8 + 4AF8995BB6766036196800656E7D40A2FD0302971F9060951D7B82C46C36424D + 353EF5BC56C0E19DC0B0989D12896FE15DFD6F8F9C39696C2B0496199256AD23 + 9801F0F414E2DBDC4C28EA2ABB84E0B61D23AC58DAB77F3FF2C835D41AED351E + 91B190D2A6964764B46CA1B59CB2C00683D9BAF6D48F398DECBC47C6BD789BD8 + D3ABF40F77DFE5C92068B41A7C2CFB02017E12FC7D541CEAC88A4E9EFE9520EC + E7217036CB3FAACBCFFFD0250077EC1861E9ECCC99B3F8F9E7E33877EE1CAAAB + AB21972BF8EFED062040787818745611548ACA0401C715941CCEFEBEB36B0D1E + FEC4B008699FA2BB06F417CA150DFC734803FAC520263A1A52A9942034505620 + 080733D9DAA186203CFA7B083D66C70803B064CA083EAF337174C70883D02B28 + 34DF64327A7B7B79F2CA47535C6100A22F43E02DA17308B7C48E91DE7DFBF615 + 0ABC0AC9AD62FBF51F688740CA4BA3DB20307728389885BA9A8A0E106E991D23 + 5151B7C70ABC4487BDBD7D63FB0DB8BBD50DA2DB413875A61487F273D8F2592B + 845B6AC74847080349F9185EF9E816107245234EF2100EB442B8E5768C748040 + EE101DC3DCA1CD2514F504E1741B845B72C748E710EC96C0DC42418329E60E05 + 7907F0FF1A19265E9117E0130000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E724944415478DA + DD9B0B5894551AC7FF30330C3030DC0485E1A2E96A9BB9CFB6E9D6F6B8D69ADD + 3477D3564BCD1B66EB9A37242D2F409659D65A8B5C0453B3BC867917905B0854 + A6E0AE999A1A7841AE33301798FB3733DF9EF30D0CB022CD007EF9F83ECF3C73 + 3FE77B7FE77DCFFBBEE77CC70DED64E1C6E36CE2C267D06CB4822FB952A544DE + 996BD09B980E9F6B345A242D7AD6ED4EF7DFA183058959ECC645CFA1C96007B0 + 6A730E3F14DCDC20100A31283CB80DCCF55A242F1ECB2F80D73FC96493168F85 + C660E147F1FF937A950EE7AF2B6066ACF8F66C055262C6F10B60FEC747D9A425 + CF43A3FF750050B1585954CA35D876F47BA42E1DCF2F80791B8EB02931E3A16A + 0190B0259757E5D7BCFAB4E3F5EAF46CA4C5FE9567001F1D665362FF0AA5EED7 + B38056894BCB42DAB2BFF10BE0B50F0FB2A9B12F10004C77DBEB35599D9689CD + CB27F00B60EEFA036CEA1B13D0A8B50378F7B33C5E958E9BFD54DBEBB463F8F4 + CD89FC0278F5FDAFD84DCB5F4443F3AF6F01719B8E60CB8ABFF30B60CEBA7D76 + 00DABB0040EA116C5D39895F00D1EF65B0696FFE1D8A160B58F7793EAF4AAF9C + 39A61D80C3D8B66A32BF0066BFBB974D7B6B32E477810BC4A71CC467712FF30B + 60D63B7BD8B4152F41DE7437003880EDF153F8053073CD2E366DE51402C0CCBD + FF704701AF4A2F9FFE641B80E4FDF83C611ABF006624EC64D3564D41FD5D6001 + 09495FE18B35AFF00B607AFC1704C0B4BB04400676BC33835F00AFC47DCEA6AF + 7E05751A3B808F77F3EB024BA7B6B94042D297D8F9EE4C7E014C5BB59D4D8F9B + 4E00987955BC3349D8F82576BD378B5F0053576E63D3E367A2F62E00F076E21E + EC5E17CD2F80292BB61200B31C0036EEFD9A57A517BD3CBA1D80DDD8F3FE1C7E + 01BCFCE6A76C7AC2EC3B6E0155376FE2C7733FA0FCE72BA8ADA98146A3469346 + 03373737F84AA5080C0C440309C5CD8AEA185899FCB2EF72CFF302E0A5E59BD9 + B4B7A351ABEE7D0026931105B939282A2C404343233CBD24107B7A412412C35D + 20804020E47E67B55A60B53060180626A31E468396BCB79C676DD86A50EAB65C + B870427B670124443B2C2025A3B0C71DB02C8BBAF21F5073A98C28EC49463810 + 42910718B30916C6CC296CB359C1DA6CF60B727787BBBB805B24A5BFF32080CC + 66239A352A18744D2AD25E7C5989210D38D12BAB36B700D84400F45614A8A9AE + 464AE2063436AAE01F1802967C6632E8E8223046FCF9490C1A34187DFA0440EA + 2B854828E0FEC358AC506B9A382BA9F8F9324E977C4DA00888C5787330558D75 + C42A0CA7598B6DEA99EFB22B7A1D406A7C3449847A0EA0ECF4296C4E4D86848C + 383577BDAE0941412178F68517F1DB218320167BDCFE42DA89DE60C2F98B9750 + 907504CA0605BC25BED0693550A9E43A623693CA8AB2B37B19C06C4726D85D17 + 68A8BC8C1B678B11DC2F1C36E2BC16C68491CF4E0623A2A368FF8DD0DD0D74D0 + E9B33B79B4BF10AB8DE51E8C1578E12F0F71FF319339E18BDD07F0536921BC24 + 52F2990DF2BA2A8665AD73CA8AB276F41A801402A027D5E0E95327919E9C84E0 + D0483064E2F30F0AC28C39F3D0AF6F1FEE7BB1D00D9E22E2E7ED7A66BB688F7E + 676658182D366CCBC8C5B0DFC87070D756F2857D33A5AEE60663B3DA269C29C9 + CCEC1500C971B31D0B22AE0A0D6F6B56AF406070182C642697450EC0F4E868F8 + FA4820203D49C4647273EF5E68A7FEBF694F2EC68C1E8526B50ABBD23F2191C5 + 44ACC71DF2DA9BCD5633F387FF9CCC29FFD500D0B015F7D63298C868098522F8 + 07F8E31F0B97C047228188682F11BB7371BE13D59CEE63E7C1AF3161EC13A856 + 993908DB93D79336DD49B83440ADAC2F2D2DD23FE66A74B805401201D09D45D1 + 63470E91C7110404F58551D78C456FC513B30F860751DE8728DF53A198F61E39 + 81F953C6A08A00A0106E5E2BC79E4F13E1EB1F0445DD4D0A62415971564ACF00 + AC9EEDF2A2A84EA745CCC2F908EA23E366FB895367E18F231EE62637A99700BD + 95CF661C2BC6DC49A3391C150A13543A0B0AB30EE23FDF97C043EC85FAEA6B4A + 7DA33ECA9564E916001B09804617011C3AF015728FE790242700BE7EFE58BC6C + 39F17501FCBCA8CFDB7FE3BCA1DF5EF6677D8359131EE75E5BC99C70A9D6081D + 0993691FC613D8229223D493B0A95D74A62833A9DB001257CD72796B6CE9827F + 42E4258551AFC5D4E8797870D8506EA6F716F5DCF45B85023C94F31DA68E1FE9 + F88C6EE3DF6834E1FBA23C7C5B709C648E22286A2B2F9616670DED3600572FCC + A455417EE51442C222A16B6EC29FC64DE31AA5A6EFCA84CFFE42CF6C8B0D4D7E + EEB10E9F97CB4D686AD662E3DAB7B834BBB6EA2ACC1666E87F4BB22FBA0CA03B + 32FCF1712BA57E81EF797AF9206AE020BC30750E7C3C0590F97BF4B469A7845A + 2B8D5A7BB72441515F476A0625B45AF51B678AB337F00360D4D89C90D0C8A769 + DC7F6AFC24FC6EF8A3E82B15C1D753D0EBCA7666240CBD9F80B8C1E992027C93 + 9FCD598A4A519B41DCE0255E008C787CECB5D0F041FD697E3E7DDE5284464421 + 3CC083A4B9777C2DC321954A33AE5EB9847DDB377125B6BCB6F26C6951E643BC + 00183E6A9C3562C01077B5528E25ABDF878FD48F98BF8837E5A9C89B2D5CF598 + FC411CE93F00B595E57262017D5D06B034BDD0A54990A6A7DFECD9808801F743 + D550879717C673B1DFDBC3FD767FB86D5B7E3E5E18181604B76E0C895A6F8552 + ADC14709CB210DE883EA1BE5B6B2E24CA77CF016001B5E7BC2E98ECD6606239F + 9988F0A8C1509318FCD9F66D5CBA2B24FA0BB82ACF3913A35CCE5E95C342AABF + 01A1814E41A028E9FD44660B0B13796849047A3F6E1907A0A6B21CC4059C42D9 + 290057CCE091279EB75B000190929A0489B7775BE3A47577373B08EEB98B762E + DC6868298159F4EFD73904F2352C5CA96C57DED6CEA2D42A25D6AF59D57317A0 + 006C2E109830259A14F57491428DB5EFAD852CACEFED47DDCD5EF7B7E607AD4A + D2A78A5A351852F252A5E8884684F8739FD3F7F47AA8AEB62E5CE86AF9CF484B + 4A6C9D04CF130B18D66D005617082C5A1687EBD58DDCFADEFC05AF63F8EF1F74 + B157BB54299AC9E8DB1C108C662BC2FBFA7396E38C14E6E721EBE8B196305877 + A0B438F3C56E03A066E8ACA46FDB8183C7F2B965AF917F1E8919D326BBAA3B27 + 0A8D0E16A27C1B049265320442889F5310529236E2DAB54A689B54DD4F845A01 + D089C5593977FE22297EE24192215819239293364024722D0CD28B50EB4CC4AF + ADE44101B0DC6B3B041B8120ED1282D16844CCE22590F806A08EA4C256937198 + B37B099D023059EC4BD4B129C77FB1011A0ACF667F8EA0E07E5C31F4D22B3320 + 8BBAEFF6BD75C2F6A1C1A1D01B196E62B34360ED20ACF6EB30124B8808F6BB6D + 7428C82FC09719FB09780F520CDDBC42CC7F882BF01D12B3A980FD78DE68D2A1 + CDA511DCF6C56EEC3B749C9B818383FCF1C1DA383262AE55827439DC62B33994 + 6FFFE020903941162CBD65498DAE44C52C5D0E1B04509164CCA86B5E4122C007 + DD02B024359FFDE49F4F426F760D809A242193A7CF419F90486EC97A4EF44C3C + 357AA44B6DD0699E0B71D616080446FBD71C049305917DFD3AFC2D63DF011CCD + CAE566FFBAEAEB5A43832EB4DB0B228B53F2D87FCF1F039DC9DEE19B69BFEC02 + AD5275F1345455971110184212240362626321F5F3EF32116A2D71874406436B + 3043AED6734ADF9E118B41B240C7FB8A8A6B58F5F63A78FBF8A3A1FE26CC46E3 + 3262FEFF72857B87EB5B9494C3262E781A5A93EB07264C263366CF7D1D669B10 + 02810021410158B766057C7CBC9D6E8386DF068D015A63E71B3374FB6C60981D + 8052A5C6B2956B6020AE61361AE8EC6FF1F50F1996BB7FF3A56E03E8E98991CB + 57CAB1247605824264DCDE5F54840C6FAF8E85AF0B10A81888A9AB9A8DB0B21D + ADC14AE68901A101DC565BDCBB1F42DEA8E196C51BE53578E4D1C770A3AA5EA5 + 35EB9FCCDF9BF6DF6E01E88D13238AEB3FA1F25C0942C2A2B891090B0DC16B73 + 67232828B0CBFF7596E4D1BAC253DC1252590AC60C46ABC23BEB13D1A435729B + A7F2BA4AAC8C5D8861C38661EBCEFDF8F1C2255B7DCDF589A70A8F1E7619406F + 9D18D9B7FF10B66DDF89E07E11F6DD5F8B1973674DC3F8679FE046CC955AC342 + 46DD60B670512233BB007BC8A4E721B65B5483BC0AABDE584826DC51D0E94D04 + 8A9E8370EEC225B6BEFAFAC4D3278E1E7209406F9E18C9CD2BC0C694746ECDDE + D353029D4E83A8F0304C9AF83C463DFA3051C2B9253393D184E29365D89D7118 + 75F206784BA4DCD23B5DFA5A1EF33AC6FC6524BCBDC4241C5ADA20EC3A80D2D2 + 33961F4E17FEA1BEEAEA8F4E03E8ED13235A951C15A5B97027BE4CB7C7E946A9 + C9A0879898F59F1E198E077E3B04B27EFD1018E80F1F897D549B89024AA512D5 + B575B8F8D3157C7BF214170A69AA4D85569D568B857978C408D1E27FCC22F38B + 1707A015C2CF57ABF051F267A8A9AEC4A573A71A2C0C33BA2B0877FCC4088D0E + 7BBFCCC081838721127B712BB702A1884C92465240318E1B241C9300573EDB6F + 90A0991DBD8384614C6826393E19799D1B8BB5FEC111FB2512EFA2FB07DF173A + 67DA8B0E08343224ACDF043FA91442A1005FE76642515FD52504DE4E8CD064E9 + 08A9D6F2886B346975BF708B0CF179525DDA6F91A145127383E4005B484A9C7A + E1648E92FEEEE949AF0EF0108AAF3C38F47E2185A0D569F149DA0E487D2478EE + A9D1A85734E0FCC5CB04C2310E026BB3FCADE646C5775D02E0E3C4084D66B4CA + 3A6848E2A253D5C348324793BE19AD45029DF9434242A0B70AA15154C5B9B16C + 615949F6B79DB53562D4B8C7FACAA28AEF1F325820573472F7210D19188188F0 + 70C8643202A191440502212F93EE1D6A098467FE1FC25D7362C4D692EED22841 + C5D9132314825F409F02B3D9E4E9291672CA8787CB3800E1AD10384BE81CC23D + 7162A45FFFFEFD056EE222E2569103073F608740949785B741A0EE50989785FA + DACA0E10EE9913236161F745BA8945259E9EDE9103870C75B841783B08174854 + 39519043B7CF1C10EEA913231D213C40948FE0940F6F01215728719E8370DC01 + E19E3B31D201027187F008EA0E6D2EA16820102EB641B8274F8C740EC16E09D4 + 2D14A498A2EE50987F1CFF03735D2A5E05FC213B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E8C4944415478DA + DD9B0B5454E516C7FFC3CCF0660481516010BC75B59571D7ED41B95C565ED3BA + D9C36B5D2DB57C56D7547CA69508649A5E33F502A243695A661A0A120A888008 + 54E6ABD4104941E4CD0C30C3C0BC5FE77EDF191E4E22CEE038B9DC6B8D0E67CE + 6BFFCEDEFBDB7B7FE7E3E03A599894CBFC6FEE18A87466F6EFF7C547E068593F + E79F28AD6A46C6CF57A0D61A6EBA9FC96844FCBCB11C87DFC01FC4EA020B1273 + 98F8F9CF42A933DDE9EB42AD33E2D0892B2C8C9EC4A8D72321EA39E702884A38 + C2C4473D8776ED9D07D029976B65C83D5B4980585B8342A144E2827F3A17C0FC + F82C2661C1F368D35800447F9EE31C0A1C0EB83C1EEE17057683B9D6802D0BC7 + 3917C0BCCD994CE2C27150688CCE51FC0F2291AB5072AD097A83093F9EAB40D2 + E2179C0B60EEA6434CE2A217A150FF3900A8184D0CAAA50A7C79E8676C5DF292 + 7301CCD998C1242D7E09F20E0071DB8F3A55F9556F3DDBF57D657236C44B5F76 + 32800DDF33494B5F864CF5E75940A7C488B3205E36DEB900DEF9F420B375E9BF + 0800435FCFE7305929CEC4E7CB273817C0DBEBD398ADEF4D408BD20260F5CE5C + A72A1D33736CF777F1617CF1FE2BCE05F0D6BA03CCB6E5AFA2B9FDCFB780986D + 19D8FEE1BF9D0B60F6DAFD1600CABB00C0D60CEC5831D1B900667D92C288DFFF + 379A3A2C60ED57794E557AC5F431D701F81E5F464F722E8099ABF731E20F2641 + 7A17B8406CD241EC8C79DDB900667CBC97117FF81AA46D77038034EC8A9DEC5C + 00D357ED61C42B2613007AF6EF4F77E73B55E9E56F3ED30D604B2ABE8A9BEA5C + 00D3E2BE61C4D19321B90B2C202EF100BE5EF5867301BC19FB350130F52E0190 + 82DD1F4F732E803762BE629257BE81468505C0A66F9DEB024BA674BB405CE277 + F866F574E702981ABD8B498E799300D03B55F19E242EE13BECF9648673014C59 + F125931C3B1D0D7718406D4D0D2E9C3F87F22B97D1505F0F456B2B140A05381C + 0E040201FCFAFB936C548F7669ED62980C79677E3A5AE21400933FDC4100CCE8 + 0290B0EF98C32E64321A20BD5A82A6AA4B30EAD470F7F0829BBB07F87C37B870 + B9E0727996FD4C46765F83C1009D560DAD46491BA4258C193B3432D5F68B178F + 2BEF1880D7DFFF82498E9BE9500B309BCD38927518E9A907C0E1F2E123E80F1E + DF1506BD0E46839E55D86C3681315B3AD11C1717B8B870D91619DDCF9500D2EB + B56857C8A151B5C91986893D53AC1103C71D52B35B01786DF9E78CF8A3596868 + 750C80FABA3A24C56F444B8B1CBEFD8560C8369D46455B80887CF219DC7FFF10 + 0404F841E023009FC7658F31184D6855B4A1B9B90515577EC7A9E263040A9758 + 8C2788F290B73412ABD09C628CE629677FCAAE703C80B8595D16909452D0E713 + CBEAAFA2F2EC31F4F30B60CD5DAD6A83BF301811C34743073E4C1D4FFC56F2E2 + C808949496213F2B03B2E626787AF940A554402E97AA88D94C3C53989DED5000 + DB0880DB1D057E282AC4CE2F921130400433715EA34E8B975F9B86271E7F043C + E2EFF4AA3C170EF85C0EB82EF4637D3C6563323330900FED1192070F3D89095F + 7F9B864BA70BE0E12520DBCC9036D61A18C634FB4C61D66E8701D81A3B8B2442 + 7D0770EAE409246F494460D0201888E2BEFEFE98367B0E060E08607F77E371E0 + CE277E7EDD95995ECE477FD31B18688D667C997214117F0DC1C13D3BC80F9656 + 7A637D95C16C324F385B9C99E9200033BB32417B5D40D326C3C5E3A9100E14C1 + 48227948F81084FF6D388C440B2E717C2F37AAB82D437B3792F1A31EB66C2166 + B06DEF518C19FD14DA5AE5D893BC193A9D8E044C17481B6ADA4D7AC323BF9CC8 + 29BF6D004904405FAA413A6CC57CB00C3AF2B4783C3E7CFD7CF19FA845F0F6F2 + 624D9D2ACFE95179C6E66B7C73F018268C1B853AB99E85B06BCB7A724E17325C + 6AD02A939C3E5DA81E61EFE87003802D3133BB1A22F6C8E18C74F2C9809FFF00 + 6855ED58F0412C31FB40B812E5BDDD5CEC3E5F4F98F6651CC7DCC963504B0050 + 083595E5D8FB453C7C7CFDD1D4584341CC3F539495E474002A95128BA3E6C23F + 20848DF6AF4C9981C7231F25E649323B0F2E1C95CFA61C2EC2DB1347B3382A9A + 7490AB8C28C83A885F7E2E86AB9B0724759532758B3ACC9E64E90600890480BD + 4DD1F4B403387A248724397EF0E9E78B85CB9693C8CE453FA27C6784B7DDD06F + 2EA9593F60C684A7D9EF261213CA1AB4506974107F1A4B60F3498E20815AA35C + 70B63033B1EF0056CEB4BB29BA64FEBBE07B08A0552B3165D61C3C14318C8DF4 + 9EFCDB37FD4EA100D3737EC2949746766DA393B8552D3AFC5C988B1FF38F90CC + 918FA686EAD2D34559C3FA0C20810068B103C0D58A72AC5DF51184C183080015 + 62D76D20F93D8F3C7D9ED550678B82B7928CDC1398F4FC08AB6DE5521DDADA95 + 4858F3019B6637D45E85DE6818F66B7176699F00C447CFB06B6AEC507A1A7288 + F9BB7B78E3E1274660FC84096CD4F776E3DAAEBD8D30328F9DC484B1C3ADB6D1 + 7BA5316BDFF64434491A49CD208352D9FADED9A2EC8D7D0260EFCD36949D80B7 + 871B3BEE3FFAF4387808FCE1E5CA25B93DA7776DAC14666EB543D77F2F8E8EB4 + FAC9406793891B9C2ACEC70F79D9ECB9E44D0D29C40D5EB31B405F24F2E97195 + 41A2FBC3697EFEE69C25080A0D83C8CF95A4BC77BC97D125D5323DAE5E2EC3FE + 5DDBD8125BDA507DEE7461E6C34E01F0D8532F9842070F75699549B168E53A78 + 0BFA21C497EF34E5A948DB8D6CF5B8E5BF31E4FA7E68A82E97120B18E00C002E + 914F53000F40DEDC88D8CFB6824BC6BD406F9E4D073BCA465AD526C85A15D810 + B71C02527DD655959BCF1465DA14846EEB1EC2C347B907867B6B446143D04AC6 + E0D59BB6B1B9392D78680CA0C1F04E39028D07B452D4934243473ECAF636AC8B + 59C602A8AF2E0771019B2E6DB5D392E402BB8360F1B79F81B5000260DA826852 + A1F1ADCE4E8B203A1CD232A0B74248E0E58EB0017EE8AD5622D5318CE41F93D9 + A2BC99E9BEDD56B90CEB5745DF9E0B50001BDF19651780F1AFCF22C53D6D52B4 + E293B56B101234E0E64F9D684715E458BE76EF47F428A96E26CA018384BE5DBB + 53FDA89254F1CEEF3793ABE557204E8CEF0C8225C40222FA0CC01E33885ABA12 + 95752D6C7F6FEEFC7978ECE11BAFCBB9E506E0F71A199BDE1A88398708FBD9ED + 3A0579B9C83A74B863186C4C3B5D94F96A9F0198ED2020DEFE35520FE7B16DAF + 914F8EC48C3726D979EB16A9922888F2664BF787D87848403FD8D43AE890A4C4 + 0454565643D926EF7B22D409C0640781F325A5C40A62210C1A0493414B6E6423 + F8AEFC9E2FD08B34C894ECD3379A4CEC03D0194C0825EE600B04AD568BC50B17 + C1CBC70F8D241536E9B411B6CE25F408806657B60AEDD4BC3C693A5C3DFDD862 + 68FEBC77313CF22639482FCAB4B4A9D9C066244FDF6032B3E7D5138B1005DEDA + 12F2F3F2F15D4A2AA9415C493154739998FF505BEFBF47007468B147767CF52D + 52D2B3D9082CF4F7C5BA3531EC70688FB4ABF5ACF25D1F73873B18883B040A6E + 5A58D14ED4E225CB61061772928C6955ED1F9211E0BFB7054067B4B4AC9726D9 + F6BABC41A7C1F99CDD18181CCEB6AC27BE3E190F3E746330BC59CE3F6CB0105A + 9DD162014471130BC1F29D0A85101CE0D3238494FD69389475948DFE8D75D794 + 9A6655509F1B228BB7E5339BE68C86D6605BCFFE7AD9BE6B0FF6A767C1AFBF10 + 7A9D1A9B36AC419030C0E6E3A9EF9B58A51976CE805A81C90A820941FE3E6C1B + BD532A2A2A11FDD15A787AFBA2595203BD56BB8C98FF67F6DCB71580455BF398 + CDEF3E03B5DE7E00B4433BFDAD79D09B79241DE64218E087B5AB56C0DBCBD3C6 + 3330EC9337B1003A2DC102A333286BF546841277A02293B762D98A55D0E84D44 + 710D8DFE461F5F61C4D1D4CFCBFA0CE076578CA8E4525C2A4E877060283BF717 + 364884B7DF990D7777F75E8F1B1CE4C72EA06869D3F43A634403E3E081BEEC54 + 5BCCEA4F216D51B0B1A6455A8F27868F4055AD44AED4AB9FC9DB27FEB54F001C + B16224EB482E362788210C0E639F4C7090102B974521245878CB63CDE449CBDA + B5D0E86EEC48311602D0B7CBF0F1FA78B429B5ECE4A9B4B11A2B964621222202 + 3BBE49C56F17CBCC92FA6BAF9C2C38F4BDDD001CB56264FF81746CDFB91B81C4 + 12D8D95FA31E6FCF9C8A979E1B65D3E8404DBD4DAD6381740AB58CFC6385D89B + 920657378B5B354B6B11FD5E14C68E7E0A2AB27F9B52CD42B870B18C91D45D7B + E5D4F143E9760170E48A91A6AA32549D2F826FFF40E2025E50A914081385E085 + 71CFE291BF47B07D43EBC7DBD39D91DA8131E3D4D9F3484D3F8C46099D1C15B0 + AD77DAFA5ABE781EC6FC63243C3DDCC87068EC86B0270DA74F9F359E3F55F088 + A4F6EA6F360370F48A91DF2F5FC1DAF51BD1AA50B2D3E374A254A751C38D648A + 234744E2EF110F222C348404CCFEE827F0668F51B42921696A46554D3DCE5D28 + 45D18F27D91181A6DA5468D569321A0D8F4646F217FE67067CBC3D58009D10AE + 5CADC5862D3B515F578DB20B279B8D06C3E8DE20DCF115233A9D1E7BBF4B416A + DAF7E0B979B09D5B5A321BF45A524019BA5E904067A547CBE78E1724686647DF + 203118746827393E79F22A0E8335BE81A1A95E5E9E850F0CF94BD0ECA9AF7641 + A02343DCFA6D04A6003C1E17C78E66A24952DB2B04A7AD18A1C992A4E202FB8A + 0C4394EEFD151923515ADFF18A8C8A365CABC808B05D6B306DBD78224746F77B + 76E25B835D796E971F1AF6008F4250AA94D82CDE0D81B7179E1F3B9AB5A292D2 + DF0984C32C04C66C1C5F5F55F153EF009CB062840E65A5A597F0CBAFE77099B8 + 486D5D3DA45229BBDD62001C08854268CC7CB44A6B62380C5370A638FBC79ECE + 15F9D40B23068484153D30740857DAD442AC4D8BA1F7852254244248480881D0 + 42460502213793CE1D2A0984E7FE08E1AE593162EE18FF3B47095B578C5008FD + FC02F2F57A9DBBBB1B8F555E44822D0520EA84C05A42CF10EE89152303C3C3C3 + B91CB742E25683EE1BF2A00502513E44D40D81BA43416E16240DD55610EE9915 + 23C1C17F19C471E317BBBB7B0EBA6FE8B02E37105D07E1E2A5CB389E9F43A7CF + BA20DC532B46AC213C48940F65951775809036C950C24238D205E19E5B316205 + 81B8832894BA43B74B34351308A5DD10EEC915233D43B05802758B26524C5177 + 28C83B82FF030D1A345E48EAD8140000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E964944415478DA + DD9B09545447D6C7FFD0DD34D080ECCAA66492899E30CC99643E2713E3E7E423 + 6AC6984D8D1A8D4950338951D1E082510463161335D141647349CCEEA0421401 + D944D09828E09828AE88CADEDDD0CDD2FBF6BEAA6A16314868683A1EEF390F5E + BFEEB7DC5FDD7BEBD6AD5776B84522930AB82D0BC2A0D19B3098D2A25043A1D1 + 43A1269B4607A5BA6B9F23DFFF5C2129552A959376AC78B671501F8488DDAD1F + DE4ECCE7B6BEF52454BAC10560321989D2BA5E219CAD6838F7EFB7C6FFD9A600 + 9626E471FF5E381E4AAD19C0AAE42356BFE1C605FFC4859B8D38F4D355A80880 + 3B89D16040DCA20976165C7AE00096C4E770718B2742A1350EF67DA1D21A90F1 + E35506A32731E874D816F1946D01446C3BC2C5453C8536CDE003E8902B3532E4 + 955D2740BA5B434B8B02F14BFE695B008BE3B2B86D4B26A1556D0610BD23C736 + 14ECECC0E3F3F140A04F17981BF5D8BEF469DB0258B435938B5FFA345AD406DB + 287E9B88E54A9CBF21854E6FC40F67AF212172B26D012CDC92C1C5BFFD0C5A54 + BF0F002A0623872A490B3ECBF80989CB9EB52D80059F1EE212229F85BC1DC0BA + 5DB936557EFDEB133BF7D7A6642379F9733606B0F92097B0FC39C894BF9F0574 + 484C721692573E6F5B006F6C4AE71297BF4000E8FB7B3DABC9DAE44CEC889A62 + 5B00FFDA98C625AE9882268519C0FB9FE7D954E998B913BAF6930F63E7AAA9B6 + 05F0FA47FBB9A4A869686CFBFD2D2026E91076AD7ED1B600E66FD86706A0B80B + 00241EC2EE35D36D0B60DE87A95CF2AA17216DB7800D5FE4DB54E935AF8DBF05 + C0417C163DC3B600E6BEBF974B7E67062477810BC426A4E3F398976C0B20FCBD + EFB8E4D5332169BD1B00A4614FEC2CDB02786DFD375CF29A5904808E7DDEF455 + 814D958E7AE5C92E00DB0FE08B752FDB16C0ABEBBEE692A367417C1758C0BAF8 + FDF872FD1CDB027825F64B02E0E5BB04402ABE7AEF55DB029813F30597B2760E + 1A5ACC00B67C3B382EA06E95A145520D85AC01EAB66618B42AE8B56A322AB683 + 9B9B1B3C3DBD5857DC2AAE8E84519F5F7A32F7BC4D00BC1CBD874B89798500D0 + 59FD461A8D06793939283C5A006963231C9D44103A3A412010C29EC7038FC767 + BF331A0D301AF4D0EBF5D06A54D0A815B43C769E3361B75AA6DC555E7E4C3168 + 0066AFF98C4B897D0DF55604603299909D7918E9FBF7C18E2780AB9B27F80207 + E8755A18F43AA6302D927226731DD2CEDE1EF6F63C5620A1BF732080743A0DDA + 5AE4502B5BE51CC7C5961E572703C7AC3262EB0660D6EADD04407827806D7B8F + 0EE8E2EA36392A4EE7D0021FDC3D7D59B557AB561205EDF197C79F849BE73098 + 48CBD31A8089339F634F9EC8C11E048801ADD2069C39914BA0F088C53883280F + 795303B10AF569CE609A5D7632FB9A5501BCB46A2797B26EAE552CA0E4F429A4 + 246C8788B438357795B2155E5EBE98F4C2343C34EA0108850E3D3E08773B44B5 + 16E7CB2F212FEB10648D52388B5CA154B4402E972809A5E9A545D9D956033033 + 6A0797FCEE3CD4370F0CC089E2227CBE3305DE430349CB9A4890D3E0B999AFE2 + D1BF3D023EF1777A573E696A01CF0E3C7BBA753F9F7A839198849E6CD43A48C3 + 434762C297DFA6E16249219C446EE4980992861A3DC719E79716657D653D00EB + E6755A40426AA1C51794D55EC3F5B2A3F0F51F4E22BB061EBE4311F2D844688D + 76EC660E7C3B380AEC99A97708C7DDF97A2F843D4C94E7A03198F0596A2E42FF + 1880F46F769393CC85D486BA9B7A93D134A5EC7866A65500241100FDED056AAA + ABB17EED6A78FAF8C3402279C0F0FBF0CABC7970751181343644421E6BF1FE08 + F5FFA4EF72313E6C1C5A9BE5F826652BB45A2D8B2792FAEA36A34EFFC8991F73 + 2A060C2031761E49842C0740BBAD987756424B5A8BCF17C0DDC31D6F46BC0D17 + 918899BA4868CFFAF91E54EBF33DBE4E3F8A294F3F815AB98E41D8B37D23B9A6 + 3DE92ED56896894B4A8A54632CED1D7A0030B73313B4C405EAAE9C41D38D7278 + 780D8546A5C013D3E6C3C0D9339377212DDF57656F7787C963433BCFDC7BE818 + 16CE1A8F1A028042A8BE5E81EF76C6C1D5DD0BD2866A0A6271697156C2800024 + 1000968E06954A05222316C2CB3B8045FBA9B3C3F1B7D17F25E649323B271EAC + 95CFA61E2EC6BFA687311CD7A45AC895061466A5E3CC4FC7E1207482B8F6BA4C + D5A41A6149B2F42B00DB63E6761644FA2ADFA7ED47EE911C92E478C075883B96 + AE8C22BECEC310275E6784EFBBA1DF590E649D40F8947FB07D2331954BF51A28 + 493799BC2996C016901C410C955AB1A4AC2833DEA600962D7E0B02273766FAB3 + E72DC09F424358A47716D85B749DDE8402FC3EE724663F3BB6F3189DC2BBD9A4 + C54F4579F8A1E008C91C0590D6575D2829CE0AE937807802C092A268E5B50A6C + 58FF2EEBF6342A25623FDA4CF27B3E697D3E2C09F87DB19043793F62C6A431DD + 8E5548B4686D5360DB07EFB034BBBEA6123A833EE4BFC7B32FF40FC0DAB91615 + 4533BE4F430E317F4727173CFCE8183C3F650A8BFA5D81CF72B9138CCCA3A730 + 65C2DFBB1DA39338D462F7EE8A8754DC40C60C322814CD2BCA8AB33FED17806D + 0440930500367FF401C41219EBF75F0A7F1321210FB12E8F42B0B6641F2BC533 + 61A3BB1DD3D3B944E206A78F17E0447E368147C60BD2FA54E20633FB05202E3A + DCA2A9B1E54B1642207463F97944540CFCFC86C1D591667AD607907BFC0C9E1A + F7C8AF8E57C974A8BC7209FBF624B121B6A4BEEA6C4951E6C3FD0260E943559E + 3A88C0E09124119160E2F437D8D8DED5D16CFE5C5F3C9BFBADAFBBFF60FCE3BF + D64BD26640636313B67F1C0317D213D557554888050CB518403FC47EF43F261B + 83EE1B05796303623F49048FF47B3E2EFC3E9D6C2D1B695619216B6EC1E67551 + 70F3F046EDCD0A536971669F82D0809E2138F809479F601775E08807D14CFAE0 + F7B724B1DC5C48B23F01DF3CDA1BACA21EB50B3A52D4193868C9A6686BC54731 + 2B1980BAAA0A1017E8D3AD07FC7CC4023866010440CC879B207271EDBA388903 + 74D8CB276DC186BD038C0BB46862207F8C26B41751BADCA3592EC3C6F5D13677 + 0102E0E9EB7E810F042B15CD58B2621582868FB8F3CD08009A1BD08DEE531E76 + 1D0FD1C3F098FEA74A52C53BF6EF24951557911C1FD71104CF130B08B518C0B2 + 94428B83E0B9A3FB208089D5F726BF381BFE23EEEF174891B310013E43FADD22 + 85F979C8CA38DCDE0D36A49514674EEB17804FDF78C2A21B27EDFA12FB33F259 + D96BECFF8E45F89C197DBF61BBD086BD5C2B6366DD5F0809F1DB70FD7A1514AD + F2FE27421D002C31839FCF5DC0A26531F0F51B0EA35E83C4ED5B582ADCABC63D + 48655D3319E0A01D829B451068C93D72E9DB10B97AA081A4C246AD26B4AF7309 + 3D0230594080566A9E79F155089C3DD860683119183D36FA0E39482F5AD548DB + 88F226E6E734D0F97BB9A1AF31B320BF00FF493D40C03B90C150F51562FE23FB + FAFC3D02305A4280C8CE3DDFE23FE9D92C02FB7AB9E3E30F6348A0B36C242869 + 563100069389B984DE6082BFB7DB6F0EA868252A72591489423CC84932A651B6 + AD263DC0C7030240F36B4B444E9290A9B3E7C1DB77384B895F9F1F8E8961632D + BB864203230560E4DA21982BC27E5EAEBD4248DD97868CAC5C16FD1B6A6F28D4 + 8D4ABF7E17443A00D0E4C252D9B9E76BA4A667C1C3D3173AAD0A5B367F003F5F + EF3EFB327D75DE6832312B301A39B6CFFA7DF2D99F40E8C91DAE5DBB8EE87737 + C0D9C51D8DE26AE8349A95C4FC3FB1E4B97B04A03598A7A99627F4FD757993D1 + 8073F9DF41247225E9300FBE3E5E58B0E04DD2328EECFBDE90FE31D00B5A9D81 + B91E6DFD0E001DAE48DDC1CFD3A51B0499BC192BD7AC875A67248AAB69F437B8 + BAFB86E61ED871A9DF0006BA62E4D2E5AB5814B91A5EBE016CEE2F382800EB63 + 96C3D5C5F937CF652DCFB23C8ECD279A21984170ED10867988589DB1A9498E98 + F73741D2D4C252EF26491D1EFDFB18DCAC11CB153AD593F97B93FFDB2F00D658 + 319275240F9FC625C1D77F046B99003F5F444745B0FFBD0A8776B3E76E01D1EE + 0A26F39890BE44AD944BF1DEC638B4929841274F250D5558B33C02A1A1A1D8FD + F5019C2BBF6412D7DD987AAA30E3A0C500ACB562A4FEEA59D45D3C0D9F6141E6 + D95F830E7366CFC4D8C71F657582DB335ADAEF6B880B342BB54CD99E1C8606C8 + 63C78AF16D6A1A1C84668B6A94D4207A450426848D8352A52550540CC22FE597 + 3871ED8DA9A78F657C6F11006BAE1839925B80ADDB9259CDDED15104A5B20523 + 02FD3163EA3318F7D8FFC0C141F06B2320645A553A06A343743A3DCE9CFD05E9 + 0733D120A693A36EACF44E4B5F51918B30FEFFC6C2D94948BA434317846FD250 + 525266F8F974E123E29ACA737D0660ED152334266CF8F813C85B146C7A9C4E94 + 6AD52A0885028C7D6C34FEF2E7100413283EDE9E18E2E6C2CE696955A0B64182 + CA1BB528BF7819274E9E62F181A6DA54E8A8D36830E8FF3A7AB460E99BE124BE + 3831001D10AE56D660F3F6CF51575B854BBF9C6A34E8F561BD4118F41523B477 + A8BB5CC6DCC2C959C42AB73CBE8004490D1940E93B5F90E8F40B3A626C7F4182 + 6676F40D12BD5E8B3692E3939657DA71F8C0DD27E88048E45C34EAC13FF8CD7F + 795A2704DA33ACDB984460BA814FC6E04773332115D7F40AC1662B469A49B294 + 7E3003397905686D53FEC62B3206A2B4AEFD1519252DB8DE24EEB14BA3372696 + FF9823A3BF9B38FDF5FB1CF8C22B7F0A19C5A710144A05B6267F05371711264D + 088358DA88F3172E1308871904CE6478BEEEE6B593BD02B0C58A11EAE7E5172E + A2ECCC595CBE7215B5B575104B24ECB8D900ECE0E9E50D83BD23E4E2AA183B8E + 2B2C3D9EFD434FD71A3D6EF298A101238A478D7C9027913641ABD560E4FD4108 + 0A0C4440400081D0447A0502212F93CE1D2A0884A76E8770D7AC18A100DE9D3F + 81F5EB54FABA62844218E2E15DA0D3691D1D857CA67C6060000310D801815942 + CF10EE891523C38283837976C222E256C3EF7FF0213304A27C40601704EA0E85 + 795910D757758370CFAC18F1F7FFC3703BA1E0B8A3A3F3F0FB478674BA41E02D + 10CA2F5EC1B1821C3A7DD609E19E5A31D21DC24344F920A67C603B08895486F3 + 0CC2914E08F7DC8A916E10883B04065177E8720969238170A10BC23DB962A467 + 08664BA06E21258329EA0E85F947F0FF7A2E665E638590D90000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Find_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E914944415478DA + DD9B0B5854651AC7FFC3CC701B98B82B17D136D70A739F676BDDCC6DDD22D4D4 + B5D2D2BC6C1B62566A6AA6698A607657570D01194C2B374DD2154C05E4AE505E + B1B494104164041966861906E67E3BFB7D0718205167B84C3D7ECF739E3973E6 + CC39E7FD7DEFFB7EEFFB7EE7E3A0537B2BB588D9F4EA13309A19F467FB452C87 + 5A6F844667829A6E64DF6C6570E95AE309BD9919BF6DE193EA7E7D804E8DD31D + 0083D9CA7E5F967CB4CF6FB869E1D3A89535DB04EF0C011C0E2E54C99C0AA10B + 80A52905CCE6D723A13759FBF5A62AB58E086CEA1602D5BD0B95D2528D463361 + FBF2C972A70278735B3EB365FE53D01AFB1780D56A21421B6F0BE17CA5E4E74F + E747FDC9A9009624E7319F2E8882C6D00A60A5A8EF4D60FDEB4FA3AC468E43A7 + AE404B00DCAA59CC66242C1CCB71E0D2BD07B03831874978631CD4064B7FDF17 + 5A8319874F5E616174D7CC4623B62E1AEF5C008BB61E6512168D478BBEFF01B4 + B78A5A05F2CE5513205DB541A5522371F1D3CE05F0464216B375F10434EB5A01 + C46ECF710E05E2FDB93C1E8686057680B9568FA425139D0B60E1964C2671C944 + A87466E708FEABD6A0D4E0E235198C260BBE3F5F85E4A5939C0B60C1E6C34CE2 + 9BFF844AFBDB00A0CD6C612096AAF0F9E153D8F6D664E702787DD3212679E964 + 28DB00ACDD91EB54E1D7BD32CEB6BF26351BA265CF3819C0C66F99E465CF40A1 + F9ED34A0BDC589B2207AFB59E70278754306B36DD9730480A9A7D7EBB3B64694 + 89ED2BA63817C0BCF5E9CCB6E553D0A86E05F0FE17794E153A6ECED88E7DD111 + 7CB672AA7301BCF2F1FF989415CF43DEF2DB6B405CCA21EC58F5827301CCFD68 + 7F2B00F5EF00C0B643D8B97A9A7301C47CB88F11AD7C01B2360DF86857BE5385 + 5EFD72542700DFE2F3D8E9CE0530E7FD3446F4CE74487F0726109F9C812FE266 + 381740F47B7B19D1AA17216DFE3D0048C797F1339D0BE0E5757B18D1EA990480 + 91FDBEE1AB02A70ABDE2A5A73A00241DC0AEB5B39D0BE0DF6B7733A2D89968E8 + 670DB82E16E3C2850BB8525181BABA3AA89A9A48F6A72239110742A1107EFEFE + 6428364325112F85C5945F7A22F7A25300BC14FF5F026076BF00D0EBF5C8CD39 + 8AC2FC02C8E472B87B08E0E6EE013EDF0D2E5C2EB85C1E7B9EC56286C56C82C9 + 648241AF855EA7A6C5918B8C153B750ACD8E4B978EF569ADB00B807FC5ED6252 + D7FC0B12552B80CD5FF7DE04188681A4F2026E94971281DDE12DF4038FEF0A93 + D100B3C9C80A4C4B648CB5B50AC57171818B0B974D8FE979AE0490D1A8478B4A + 099DA65949AE175F5AA21301C7FA245EEF026076EC974C6ADC4B0480B14FE852 + F54ED8BC09F246057CFC82D85A9F41A7A1E93F468D89C2D061C310E8EF877B84 + 5EE0F35A35C0643643A96A815CAE40C5E5729C2E2E2050B844633C5998CA4609 + D10ADD19C66C9D75EE4476559F0298B5FA732635FE65D4F7018033A74F419494 + 0401E971AAEE5A4D33FC038230F1B91710F1E050B8BBBA76FF24BF9A92D0E90D + F8F95239728F7C0B855C064F8137346A15944AA986A8CDB4D2E3D9D97D0660E6 + AA9D0440B40DC0D6B4C21E5D542EBE8C9AF3C5081C18062B315EB3C980C7274C + 8789477BB1F51C9E0B073C6EEBA70BD93A3F88C5CAB09BC9024C8D7C98656224 + 3E61D7D7E9283B5D080F81905CC70AA9A4D6C43096B9A5C7B3BEEA130033567E + C6A4AE9DD32B0D3873EA2452921211181C0E93410F9F8000BC3CF735040F0860 + 7F77E371E0C627766EE700478119CC0C3B59B3F39B3C3CF4C71064ECD9497E68 + 2DA3496ED498AC16EB9473259999BD06F0E28AED8CE8DD18D437F50C40EDF5EB + 58B76615FC024360269E3C34FC5EBC1413036F2F01B8E44E0237E2DCEC95FC26 + 100C52F6E6222A720C9A9B94D893BA05068381688F0BA4F5D75B2C46D3C33F9C + CCA9EC3D80B531360D48DE5764F785A827BF58F80D3CDD3DC1E3F1E1E31F8888 + D1E361213DC8E3BAC0CBCD05DD897EA759C8C9633AE64676671462CAC42750A7 + 34B210BE4C5A4F1CAA0B192E756852349C3D7B5C3BDAD1D1E126002904404F46 + 8123870E92ED107CFD0740AF69C1E277E2317040205C49D753E17BDB28A8B443 + C7B06066146A09000AE17A7525F67E96006F1F7FC824D72988374A8BB3927B05 + 605B7C0C09841C03A0D1A8B174D102E2E543596F3F755634FE3AF211D6B9093D + B8E8AB7876DF9162CC9B16C9E2A89219A0D498519495811F4E95C0D5CD030D75 + D50A6DA376B023C1523700E6D822417B4DA08E04394DB51524C8F185D02F000F + FD7D127BFC1E22BC2326CF74630FE31E8BB0ED1FC8FA0ED153FEC1EE5BC8C9E5 + F57A6874068836C413D87C12233440AB532F3E773C33B1C70092090047B3C1B7 + DE980FBE87107AAD1AB3625EC7432386C39D787A4F7EEF55DF06876C07734E60 + D6E4C76DC7E8044E4DA301A78EE7E1FB82A32472E443562F2E3B5B9C35BCC700 + 92E2E6D80A22F6B4AB5595F868DDBB080A0927003488FF782389EF79A4F7798E + F5BE1DE71CCA3B89E913467739562935A0B9458DAD1FBCC386D9F5B55761349B + 86FF58925DE61400870FA623E7680E89F6BCF0E74747E3D92953C0671D1FD77E + E9ED849159781A53C68EEA728C96F0E9F3A6ED4884AC4142720605D4EAA6E5E7 + 8AB337F508402201E0485174E3C71FA041AA60C7FD19D1AF61F8F00832DEBBB0 + 10FABA651F2BC53F2347763966A23349C40CCE9414E0BBFC6C028FE40BB2FA7D + C40C5EEC198035731C2A8A2E5BBC007C37211B9F2F5A1187E0E081F076A7915E + DF03C82DF901E3C73C7CD371B1C288AB15E5D8FF650A9B624BEBC5E7CF1ECFFC + 738F006C25001A1D00103D6B3A42070F23818894D8FF2608045E2C80FE6805DF + FF88A8BFDD2C97B4C54CB2C746247D12072F3212D58B2BA5440306F40840426C + B4DD5363343CA50006DDFB00947209D627A6B263BFC0B57F001C3BF9139E7CEC + E6B7669AB416289A54D8B8760584BE01A8ABA9B4961667DAE5846E02E0C803D1 + 224675E91184510D2063F073D18B41F33A1E91DF85CDF270DB2088B9E3DD6E3E + 61CC5F47D87EA133C946365162A06E69C6C7716FB3006E882B414CC02E1BECB5 + A18EFCC72486D5000220EEC30D107879775C9CC3B1A5BD3409E2F6D22F900C99 + 7D9FD0626D15DEDA8960935281F5EB627B67023D0330B13A386CE8108DBA098B + 97AFC4A0F0C1B7BE1901406303BAD17DCA83D3FE109D9EA45D2EFA4985A482B7 + EFDFAA5DADBC02516242BB13BC4834608493004CCA0B1C38288AD6F7A6CD9889 + 471F1B7DE73FF543B1BB283F0F59878FB40D8392F4B3C599CF3B05C05FFE3EE9 + 43A1AFDF6A5AF68A88781031F3E6395B76B625276E4575B518EA6665CF0321FA + AAACA3376E96D5A1EC583A8282C3493AAAC1FCE5B1E0721D8B02A9667B79BA22 + 2440D82340B4E4BE74C99B1078FB424242618B413FC2DEB9846EDF1576ECE119 + 4C7CFEDFE07BFAB2C9D02292188D1A798B1884D3BD065000559226D0CA787080 + B7C3100AF20BF0CDBE0324077125C9D0F50AA2FEF7DBFBDF6E0138AA06DBBFD8 + 83B4F46CD60307F9FB60FD87F1EC30E848AB9136B300A8A30BF6B71F029D4059 + FAD60A58C1859204637A4DCB2A32027CD22B00560709284910F2EC8C3908080A + 6743E27973A3312EF27187AE51AFD090E1CDCA02A015617B21ECDB9F8EC359B9 + ACF797D45D53EBE49AE01E1744DA01581C2540DAF6CF77232D230BBE7E41301A + B4D8B2F103B6126C6F4FCA9B75B058983608749CB7228442B8CD05AAAAAA11FB + EE47F0F4F281BCE13A8C7AFDDB44FDFFE3C873770B8066588E365AA19D1DB300 + 060B8F75824101BEF8E4BDD5F01278DAF5FF66AD810D6E2800DA014C1B84603F + AF6E2128944D787BF53AE88C1622B88E7A7FB3B74FD088DC03DBCB7B0DA0A72B + 46CA2F5FC1FC37DF817F50283BF737243C14EBD62C63CBE2776AF45D612B15DE + C2B44D8C586DE1EE405F4117088D8D4AC4BDBF01D246155B166F94DEC0A3A346 + A3A6B641A9366A9FCA4F13FDD82B00BD593122BBF60BC43F9520286430DB3321 + 2103F0EA2BD1F0F7F7BBE57F060FF021D02DB619216B1B006B9B295208413E9E + 2C842B95D5786F7D029AD57A76F2542A1163F5B2451831620476EE3E40A7D1AC + 0D37AE4D3D5D74F85B8701F4D58A91B4FD1948DDF9154884D83AFB6B36E2D539 + B331F9E927D81EEBAE592C1D0ED0DA19445BF86B349A515458885D691970756B + 352BB9B416B1CB17616CE41868880935ABB52C849F2E95330D75D7A69E3976F8 + A04300FA72C548764E01366F4D616BF6EEEE0268342A0C0E0BC1F4A99331E6B1 + 47E0E6CAEF723E15930ACCC6FE9D3EF5C4B79C2E3D8FBDFB0F422A53C0532064 + 4BEFB4F4B562E942443DF9383C3DDCC87068EE80B0271D67CF9E335F3853F470 + 43EDD59FED06D0D72B46D44A29AACEE6C285B1B2D3E374A2D4A0D3C2DD8D8F51 + 8F8E44C483C3101A3C10430787C0DDC39D5D32430B9C0A851275372428FBE532 + BE3B791A66629234D4A68D669D16B3D9F4C8C891FC25AF4513FFE2C102688770 + E56A2D36267D811B756294FF745A6E3699226F07A1DF578C180C46ECDEBB0FFB + 0F1C04CFD583ADDC72797CE224F5200F677B41C29602D28CB1ED05091AD9D137 + 484C26035A488C4F7A5EC361F0814FE0A0030281E7F10786FD2178EEECE76D10 + E8C8B0767D0AEE110AC1233978616E26640DB5B785E0B41523CAA626641C3C82 + A3B9F9A49735777845C64C8436B6BD22A3A105D71A1272EFD09B2CDB2E9DCC51 + D0F3C64D7BE55E579E5BC543C31FE051086A8D1A5B445F4148469C096323D120 + 93E362D96502E1080B81B19A9FBD515375E2B6009CB16284E60E6A85042A12B8 + 68940DD093C8D1A06D81ADFA4334C04BE803AEBB3794929A380EC3149596647F + DFDDB5468E99347A40E8E0E207EE1FC695CA1A89B6E971FF7D8330282C0CA1A1 + A104422319150884BC4C3A77A82610C6FF1AC2EF66C5081DF6A44A0DCAC48D0E + AD18A110EEF10D28301A0DEEEE6E3C56F8B0B0501640583B045613BA877057AC + 18193864C8102EC7ED3831ABF0FB8645B44220C287867540A0E650949785867A + 71170877CD8A9190903F8473DCF825EEEE9EE1F7DD3FDC6606619D205CFAA502 + C70A72E8F4990DC25DB562A42B840822FC2056F8B03610348EB8C842386A8370 + D7AD18E902819843D8206A0E1D2621931308651D10EECA1523DD4368D5046A16 + 32924C517328CA3F8AFF03C95B815EEF2DA13F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E8D4944415478DA + DD9B0B5C547516C77FC3CCF0064179CA43AB5D7535B6CD5DB7744D933473CD5A + 6A2DB55AD1B42C5F918925A1596EA5A626080EA6566B6E2EA618088880BC5454 + B07C809AE203E43933CC3030EFB93377FFFF3B3048A00D034C7D3C9FCF7CEECC + 9D7BFFF79EEF3DE7FCCFFFFCEF9F87DBE4EDA43C76E36B8FC36862D19792FB63 + 25941A03945A3D18238BF24AE9312D8329890B2728FBF4C25D08AF2B000663DF + 0238FD532D5414C06F00429700F44CDF02B85425E514EF0081585DF9CDC6135A + 869D6C4F085D02D03126EEF7B284C3BD7EC18D0B9F42B5A4D9A2F8ED10C0E3E1 + DC35895D21740010B52D97DDB4201C5A83A94F2FAA506A88C2862E2150DB3B57 + 212E55A95453B6BF334D6A57006F25E6B09BDF78026A7DDF0230998C4469FD5D + 219CADA8BFF0F91B13FF6857004B13B2D9CFDF9C0895CE0C6085A8F75D60DD82 + A770B1528AD49357A12600EE244686C196859378DD68BAE70096C467B15B163D + 09A5CED8D7D7855AC720ADF82A07A32B61F47AC42D9E6C5F008BE30EB35B164F + 468BB6EF01B4C9956A19B2CFDC20403A5A8342A144FC92A7EC0B60D1960C366E + C914346BCC0062B667D9870289FE7C8100BF0BF66D0773B30E5B97FEDDBE0016 + 6E4E67E397FE1D0A0D631FC57F260D7215CA6E4AA0371871FCEC3524444DB52F + 803737A5B1F16F3D0D85FAD7014085668555620576A59D44E2DBD3EC0B60C1C6 + 5436216A1AE4AD0056EF386257E5D7CC7BD2F2FDFDA44C88963D6367001BBE67 + 13963D0399EAD7B3803689156540B4FC59FB02786D7D0A9BB8EC1F0480C1D6F6 + 7A4DDE17A5637B74847D01CC5F77804D7C27028D4A33808FBECCB6ABD2B17326 + B57F171DC2172B9EB32F80799F7CC76E8B7E1ED2965FDF0262B7A562C77BFFB4 + 2F80573FDE6706A0FC0D00484CC5CE95D3ED0B60EEBF9359D18A7F42D26A011F + 7F9D6357A557CE9E781B80EFB12BE605FB0298F3D15E56F4EE0B10FF065C6055 + 420ABE8C9D615F00911F7ECB8ADE7B11E2E6BE05505555857367CFE2CA952BA8 + A9A941539382E4FE4D2423E6C1D3B31F060CE80FA9CA08455D65148C869CD213 + 47CAEC0260F69A3DAC68E54C0240CFFD5EBF3BB7D72E64640C105F2F83A4F212 + 189D1ACE2E6E7072768150E804073E1F7CBEC07C9C91E18E35180CD069D5D06A + 9474685CC69AB0532353ED282FCFEFD54A510700FF5AFD0D2B8A9989865EB400 + 93C984F4B4347CB76F1F787C213C3CFB4320748441AF0363D0730AD302096B32 + D720780E0E7070E07383237A9C2301A4D76BD1A29043A36A96B32CBBAAB44823 + 02F27B255BEB00E09555FF21005EEA3500D4BC376FFC0C52A90C5EFDFDB84A8F + 4EA3A2833F8C1E3F11BF1F3214BE3EFDE1E9E1412C81CF9D63200321B9A21912 + 72CED52B9771323F8740E1138B7105511EF2C67A62159AD32C639A75E644E6B5 + 5E05F072ECD76CD2FB2FA35E6106B0E9BFB6BB80ACF63A6E9C398A7EDE3E9CB9 + AB55CDF0F11F88B0D14F40671280315957767BEEF18770A1FC2764A5A5A0512A + 81AB9B07544A05E472B18A98CDF4D282CCCC5E03F052CC576C52EC2B0480BE47 + 540B0BF2F145521251381826E2BC8C4E8B8859B3F1E8A8911008F8DC45050E3C + 08F8E60FFF67B19ECECBD032391D19B6CD51E8494CD8B52705174FE5C2C5CD93 + 588309E2FA6A03CB1A5F2D2DC8D8DD2B0066ADDCC526AD9A8DBA1E003875B218 + 897171F00D0C858128EEEDE383D9F31620D0DF87FBDF49C883B380F8F96D57BE + DB2C04CB29CF42CB98B06B5F0E86DF1F80943D3BC91FE6224A7D6DA5C1643445 + 9C294A4FEF318099EFED2400222D00E2F61EED56639A6619CAF3F7C32F20180C + 89E421F70D4168D8A3A0F32C7CE2F86E4E54716BBAF6762411131E36EF21BBB6 + EDCD46F8E363D1DC24C79EA4CDD0E97424603A405C77ABC5A8378CFCA138ABA2 + 470066ACF8824D5A3DC7260BA0DD56CC8AE5D091A7251008E1E5ED85054BA2E0 + EEE60A21B17177A23C0F9D956761FD2CD43707F3F08F29E35123D77310BEDABA + 8E045407D25D6AD0246B282929508FE96EEFD0E18E5E8CDECE8A3E988BBAA6EE + 0338947A907C52E13DC01F5A550B96BCBB0A01FEBE706C55BEA74231ED4DCDC7 + 9B3327A29A00A0106EDDA8C0B75F6C8187D70048EA6F51108B4A0B33127A0660 + F55C8B052424E759D50843FAF4734776C33F20948BF6E39E9E0107572FCEEC3D + 5CF8B8A3D5FFC2C3A7D63165CC8396DFC9870A317F7A38F7CF35890E721583BC + 8C14FC70B2088E4E2E68A8B9215337AA07752759EA04601B01D0DD5EE0E081EF + 70E470164972BCE1D1CF0B4B9747834FFAEE7E4479BE8355BA5A25FB338E2132 + 623CF7DD4882C2E53A2D541A1D44EB5791582024394203D41AE5923305E9F136 + 03485C35972442DD03F0F6A2372074F18456ADC4ACB90BF060D808380B1DE02A + ECB9E9B709057830EB04664D1B6BD947CBF7958D3A9C2CC8C6F1DCC324731442 + 525775B1A43063440F00CCB16482D6B880522EC6D5E369F01B18CA05A3F0E9AF + 71ADF67311B49B3EFBCBCFFF4E474C1835CCF23D35BB182F4C19D3E1FF0AB10E + CD2D4AC4AD7D974BB3EBAAAF43CF1846FC589479D1260009044077468369070F + 208B98BFB38B3B1E7E640C9E8D88688DFA7CABDBB01646FAD1538898F468877D + B4804BEB177B77C443D2504FC60C3228954DEF9C29CCDC681380ADB1732C0511 + 6B64C3276BD1209671FDFE8CC8D73162C470AEBF17F27B7F289F995F8AA7C347 + 75D84733C52AE206A78B72712C27930B9C72495D32718317ED0260D992372174 + F2E4F2F3C5D1B1080C0C8087B3B5094FF7E448D10F983C6E64A7FD55323DAE93 + 81D3BEAFB671436C715DD5D99282F4876D02104F0074A7281A39EB05040D1A42 + 121131567DB2116E6EEE1C80BE90DCE33F62E2DF3AEB256E61C888B3115B3F8D + 853BE989EAAA2AC4C402FC6D03F0FE1CAB8BA274784A0184DC370C72693DD6C5 + 2791EE88A4BC8E7D0320BFF83C268CEEFCCE4493DA085993021B5647C3938C3E + 6B2A2B4CA585E95605A14E00E20880462B01D0F477DEEC97104C2D80F4C11BB6 + 2671A64F477A2445273940EFBA41D1E90B18F7D730337C98E711E90B5D3AF251 + B634E393D8E51C80DAAA0A1017B0EAE29D006C8989ECD6D4D8EC99D3CD164000 + AC5DBF898CD7DDDA1B27AD53200EDC165CCDAF2772ACA41C8F8C1C0EA3C9ACBC + E9B6EEB5492EC3BA35313D7781EEDE54D5D96CF8FA069220D8846767BD0A1757 + 0FDCB123E3998743B71B06AFD317F3E9AC65CB726904FD4DB77F796868974D5F + AFB80A51FC96B62058462C20ACDB006C9151E3A766FB06844CA4F5BDE93366E2 + 91D1637EF9A43E2876E7E5642323ED506B37587FA0A430FD79BB00F8CB6353FF + EDE9DD7F252D7B0D1FFE07CC9D3FDFDEBA7392101F871B37AAA06C96DB9E08D9 + 227F1EFBD4582767D722BF40920A6B5AF0D9E64D707474EC2335BB16AD568BA8 + A56FC1CDC31BF5241536EAB461D6CE25F4C60371206E5013107C7F001D0CBDF2 + F22C3C36EEB1BEBB5A17929B938BFF25EF8750E8480643B7AE10F31F6AEDB99D + 5E95B5E5062ACF1F4763E5252E027BBABB60FEA2282EE25BD5586B2477737144 + E0008F6E33A25D71D4DBD130810F3949C6B4AA96F7480FF0A9CD00E8BBC2DD15 + 394942A6BD38073E7EA15C4A3C7F5E249E0C1F6B7D038441A5B8990316D0DFBD + 5B1092F71D405AC6112EFAD7D7DC546AA4AA409B0B226D006C3183A49DDFE0DB + 03E9F0EEEF07BD4E8DCF3F5B8B407F5FABCFAF95B670E570DAB75B0BE1DAB51B + 88F9E063B8BA7B41DA700B7AAD763931FFCFBA73DF5D02B065BD04ADD0CE887C + 033AA3007C3E1F7E3EDEF8F4C395F07077B5EA7C4993869B2C615B21F87BBBDD + 15824CDE84E52BD740A33712C53534FA331E5E7E6147F66FBFDC6300B6AE18B9 + F4D355BCBEE45D0CF00BE2E6FE068706E1C3D865F0B82D3BBC933429B5DC758D + 1402E824692B842E283436CA11FBD17A881B155C59BC515C8B471E1D83CAEA06 + B952AF7E2267AFE8C71E01E8C98A914399D958BF39117E0307714F2628D00FB1 + D18B31906CEF26F4CD71532B00BAA5964081F879B9768070B5E2063E5CB705CD + 04189D3C15D75761E5B2C5080B0BC3CE6FF6E342F9655343EDCDE74EE5A57D6F + 33809EAE18F9765F0A443BFE0392219A677F193D5E9BFB329E993C9E7B625DB5 + AED5339CE266082C57F4A414E8B3F0EDE702236344724A3ABEDE9B024727B35B + 49C5D58879673126858F834AAD2350D41C84F3E597D9869A9BCF9DCE4F3B6813 + 80DE583122A9BC8CCA7385F0EAEF0B676737A8540A0C0A0EC2D35327E3E1871E + 247DB6C0722CEDFE0C8CF9C953FF6FDB52107ABD1EC5A74A91BC3F155299820C + B63CB9D23B2D7D45472DC4C40963E1EAE244BA43A61DC29E03282939C39C3B9D + 37B2A1FAFA05AB01F4F68A111A13D67CBC8174934A6E7A9C4E94EA346A383909 + F1D8E851F8D31F476070C840F8FA0CE08225555AD1AC8458DA88AA5B75F449A2 + F058310787A6DA54E8A8D3C830863F8F1A255CFA7A2439CF8503D006E1EAF56A + 322CFF12B53555B87CFE94943118C2EF06A1CF578CD0DE61F77F93C9133C0881 + A30B57B9E50B8424486A416ECEF28284A5724C87CFAD2F48D0CC8EBE416230E8 + D042727CF2E4553C166BBD7C43F6BBB9B9160C1B727FE0AB2F3D6F81407B86D5 + EBB6A19FA727370B7DF4483A240DD5778560B71523069D060DD7CE4327B90E45 + 8BEA175E916188D2FAD6576454B4E05AC9B2EC0EADC198585E9C25A3C73D397D + DE7D8E02A72B0F8E1826A010942A25368B76934CD40D532685A3412245D9C59F + 0884431C04D6C43C5B5B79EDC45D01D863C5082DA395955F42F1E9333856729E + 24300D247D6D467B0D810767E2E7CE24B991D5DF8CE5B16C5E6951E6F1AEDA1A + 356EEA18FFA04185C3860EE18B258DC4DAB418FA400842828311141444203472 + 2F571CCD4EA773874A0261F2CF21FC66568CA8B43AF30DF1CCF5446B578C5008 + FDBC7D72F57A9DB3B39380533E98045B0A20B80D0267095D43B827568C040C1E + 3C98CF732A206E15FAC090E1660844F9A0E07608D41DF2B233D05057D501C23D + B36264E0C0FB43794EC2226767D7D007868EB0B841F06D10CA2F5D417E6E169D + 3EB340B8A7568C7484309C281FC2291FDC0A422C91A18C8370D802E19E5B31D2 + 01027187E010EA0EED2E415FBF2BBBD80EE19E5C31D23504B32550B79090C114 + 7587BC9CC3F83FFEDB7B5E14C693AA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E854944415478DA + DD9B095C54D7F5C77FB331C0B0ABA82C6A93FCD5C69836FAD7A454CD1FAB516B + AC55136D34A9684C9B68D01815E3824BCC86568D2238184D93581BFF18974AD8 + 1404C41D50A3E00AB26FB3B2CCBEBDDEFB06068988CC00133F9ECF477DBE79EF + DD77BFF79C73CF39F75D0EEE930FE33298AD7FFB3F30E85ED99F560083C9821B + 65F2C48A6AE9F4431B661ABAB9C9870AA72D00966E2670ECEC5DA8740698CC0C + F24B6589CA6ABCF6CD8650DD6303C0DCCD04D2AF9442A535DA201494CACEE84C + 9814BB2854F55800309ABB17C0A5DB555053008F01843601184CDD0BE066998C + ED782B0844EB0A4AE4E7742666823321B409404F1C14956531295DDEE0D64513 + 51216DB075FC7E08E070F05391D4A9105A0158BA3B9DD9F6EE58E88C966E6DB4 + 5EA5251D36B60981EADE4F85925CB55A3D69CFF22932A702F820368DD9FEDE1F + A031742F008BC54C3A6D6817C2D5C29AEB5FBE37EE79A70258127392F972E138 + A8F556002BC55D6F0251EF4EC48D52198E5FB80B0D01F030319B4CD8B1683CC7 + 8E47771EC0E2E85466C7FBAF40A5377777BBD0E84D48387F9785D196980C06EC + 0C9FE05C00E13B53981DE113D0A8EB7E00CD72A742819379C504486B6DA8AF57 + 217AF144E702787F4712B373F1243468AD00D6EC49750E05E2FD797C3E9E09EA + D502A6A41ABB96FCD1B900166D4F64A297FC11F55A93733AFE33A955AA915F22 + 85C168C6D9AB4588593AD9B900166E4B60A23F7815F59A5F0600151A159649EA + F175C205C47E38C5B900DEDD7A9C89593A05CA2600EBF79E706AE7372E78C576 + BC362E19E2657F7232802DFF616296FD090AF52FA701CD12294E8278C554E702 + F8DBE6A34CECB23F130046479FD765B2569C883D11D39C0BE09DA8234CECF269 + 90ABAC0036FDF3A4533B1D396F7CCBB1F8477CB572BA73012CF8FC076677C40C + C81A7F790D88DC7D1C7B57BDE65C006F7F76C80A40F51800883D8E7DAB5F772E + 80F99FC633E295AF41DAA4019F7D9BD62D8D6A1B14A8979443A5A881B6B10E26 + BD0646BD96C4431C787B7BC3CFCF0F728D057555254B6136A6E59E3B91EF1400 + F3361D64C41FCD84A41B4C40A7D32125390569696990486570751341E8EA0681 + 40082E8F071E8FCF5E67369B48226484D168845EA7814EABA289513E63C13EAD + 42BDB7A020B34BEB04AD00847DFC3D235E350B9286AE0360B1589090908043F1 + F1E0F004F0F4F2035FE002A3410F93D1C07698A6C78CC59A8172B85C70B93C36 + 34A6D7B9104006830E8DF54A68D50D4A8661D6E5666BC5406697CCD5AD00CCDD + 788011AF7E8300B056A937EF4FEFD4C3B58D4A145E4AA5A91D7CFCFCD93C5FAF + 559311E762D8EFC7C3AB873F2C5C3E5B836CAEC372C91BB990BF381613EAE435 + C83B9D4A4C834734C61DA4F35092733AADF61263B2CCCE3B975CD4A500FEBAFE + 5F8C78CD1BA8ED020DB878E10276454743E4E9C7AABB46DD809EBDFCF1EAF499 + 1832F819B80A051D83A8D3E35AC16DA41E3F06995402779127D4AA7A28951235 + 519BD773B39293BB0CC05BEBBE2300E6741A40566626F688C5E8D93B888CAC85 + 38391DA6CF09C3EF460E039FD83B15018F438EC91F2E1D750E4D0859A18A40AD + 8196E669A1946A071978922019F1F581A328B89006379117396781A4A6C2C830 + E6B773B392F67709803723BF65E2D6BE899A7A2B806DFFB6DF0414954528CE3B + 05FF807EC4B3EBE0E7DF07CF854C80D6C4B08DB9F03970157059556F16A69D22 + F4CCF1C3A1375AA027F7EFFD211DBF1EE08FA307F6919BAC29744D55A9D162B6 + 4CCBCB4E4CEC3480396BBE61E222DF22001C5BA92A2F2FC7DA551FC1AF57004C + C493070F780A61F3E7C3D3430432D810098973E33EFA396DF1A090620FA623F4 + E51034D42971206E3BF47A3D71985C48AACB1BCD06E3B0CBE7530B3B0560F6EA + AF99B8757351ED00003A6DAD8E580E9D81019F2F808FAF2F162EF9001E2277A2 + EA5C7808B936357754F61FCBC4D409A351A934B010BED915459EC925D3A51675 + 8ADA9C9C2C4D88BDB343AB577A63D53E0220CC0660E7C1531D7E50D59DCB9097 + 14C0B7476FE8342A84CE781B4686CBAABC8790D774D5A3175C7E6E0E53C63C6F + BBF3FBE359786FD6585410001442797121BEFF6A073C7D7A405A534E41BC9F7B + 3A29C661007F59F91513B77E9EDD1AA056A9B0247C217AF40C64BDFD8CD96118 + 39723851770E3C5D799D1EF96689FF311B0B5E0B65711449F55092B43D23E928 + 2E5FC8868BD00DB595C50A8D5CD3DF9E60A9D5ABCD8AD8C38837CC47759D7D00 + 8E1DF9012752524990E30B4F6F1F2C5911413ACF83B75B8BCD77C562DBE1A433 + 089BF6327B6C26AA72AB5A07B5560FF1E675C41708488C500B8D56B5382F2B31 + DA7100EBE7DB3420263EA3430FB99AF21DFC4850C3AAFE9FE780EBE6433C3D07 + EE82877BBC8E021937F2D7B6EB8FA59EC3EC29A36CBFD1E26DA95C8F0B592771 + 363D85448E0248ABCB6EE49C4E1AE23080DD04803DB3C0BDA2427CB671033BED + E9346AACFB7C0B89EFF964F4F9ADA6BA474947801C3F791E332785B43A5728D1 + A3A151859D9F7CC486D9D515F7603019875CC94EBEE11080D875F34920D47100 + 09C78E2095A8BFAB9B075E78310453A74D63839C16C767BF3C0C46E2A98B9836 + FEA556E768F98E66AF07F746435A5B4372060554AABAE579A793B73A08609E2D + 12EC8809DC3E9B406277B0F37EE8D439107AF8C29D74DE85C769B733AD7BFCF0 + AB46BDF03FB6E3E4CC5CBC3A7644ABDF69A45846CCE052763ACEA42593F648BE + 20AD8E276630CB21003104803DD9E0B2C50B21107AB1F179784424FAF6ED433C + 3F970D6FBB5A4E645FC68431C31E385FA630E0DE9D5B38F4CD6E36C59654975D + CDC94A7CC12100BB22E7D90A221D91B0D93311D87F20094424C4FEB74224F260 + 017487A49FBD8271BF7FB05F924613643239767D11090F32135597154A8806F4 + EE7600343DA500827F35184A590DA2A2E3C874C481C8A57B00649EBF86D0DF3D + B8625EA7314351578F2DEB23E0E5DB1395A58596DCD3891D72420F008826003A + 5A14A5E1EF82B97310443580CCC15B76C5B1AACF27104888CE06425D29D997AE + 63CCC8A156F8B0AE22D1CF7968A2A46A6CC0E7912B58005565852026D0A1C61F + 04B0769E5D45D1B96FBC6ED50002E093CDDB48BE2E6A7938C79AEA7239D64207 + A7937EE14C4E015E1CF62C4995AD9DB7DCE73CEB940A446D5CD37913D84900C8 + ED00D0E204EBB062CD3A0404F46DB739164A53CB1CDBD9D66F72FFA4408F99A6 + 7FCF5FBE89FFFDCDA0369F7CAFF02EC4D13B9A9D603ED180A10E01D8B126CCAE + A5B1CD9F6E8244A664EB7B7F9DFF0E7EFBC26F3A7CAFBD92F3D36D0C7F7E609B + BF65A49D4452C28F4DD360CD919CD389331C0260EF4B29CA6FC2ACB65679070E + 7E162346853EFA26A6FD66DAFB75F873CFB4793E267A278A8BCBA06A503A1E08 + 3922C3474D1C257475CFF6EFDB0F7A6D23FEB17D1B5C5C5C3AFB58BB8496DC97 + 2EF900224F5FD49050D8ACD70DEDE85A4257B869EE88972757F6097AAA0F4D86 + DE7A7336468F19DD7DADB521E969E9F8FFF8C324077121C950F91DA2FE833A7A + 6F97BCD2F0D193379234781DF5C09EEE2E88FAE253B654E50CA153F1D20F2360 + 010F4A128CE9D48DABC80CF08553013C1FF28ABFD045501610F48C9086C47F99 + 391DAF4E9EE81400F1878E2021E904EBFD6B2A4B545A99BAAFC30511FAA9ACA3 + 2F5272ED0C64C505F0F5F32736A9C6F2952BE1EDE3D32EE1FB7DA1C85580DE7E + 1E768D48515131D66CF80CEE1E3E90D596C3A0D3AD20EAFF0F7BDEBBCD6F851D + 115AA19D39F73DE8CD7CF0783CF8F7F445D4C7ABE1E1E1FEC87B29882A858A75 + FFFEBEA20E41502849DCB17A23B40633E9B8967A7F93A78FFFD01387F7DCEA34 + 0047D5E0E6ADBB78277C257AF807B26B7F03FA056253E47278760002FD42AC79 + 79CCDFA7FDEBE5722522376D86445ECFFA1AB9A40A2FBE1482D28A5AA5CAA0F9 + 43DA41F1954E01E8CC7E096A8F5F6C8B857F407F766402FBFA23726538F9B7FD + C854D1A885C5C2D822BF9EDE6E6D6AC2DDC2627C1CB5030D2A1DBB782AA929C3 + EA65E1183A7428F6FDEB30AE17DCB2D456954CBF9891F01F87017476C7C8BFE3 + 8F22F6ABEFD0AB4FB075F5D764C0DFE7BF8929135E7EE8ECD0A831B0854E2B04 + 863DEEE5ED6E7B4193C98CF8A389F8F6E051B808AD1A22935460CDF2708C1F3B + 066A8D9E40D1B010AE15DC626A2B4BA65FCA4C38E61080AED831929892862D5F + EE666BF6AEAE22A8D5F5E81F14805933A660CC4BC321FCD9E228FD7698769E26 + 38CD0340FFEFEEC2C1A9AC733870E838648A7A926C79B1A5775AFA8A58BA08E3 + 4247C1DD4D48A643530B84034790939367FAE952C6B0DA8A7BD7ED06D0553B46 + 6EDEBE830D9F6E21B9BA8A5D1EA70BA57AAD86EDFCE89011F8EDD02118101C88 + 5E3DFDE0E6E6C68E7C7D838AE41672945756E3CAD57C9CBD90C302A1A136159A + 759A4D26E3F01123044BFE1E46FC8B1B0BA019C2DD7B15242DFF27AA2ACB70EB + DA4599C9681CDB1E846EDF3162212650753B0FD577AFC2CD5DC4566E797C0171 + 923A9240196D1F48D8E6449A3E377D2041233BFA0589D1A8472389F1C9C8AB39 + 0C3EF1E9157C582472CF1A3CF0A9BE6FCF996183406786F551BBE1EDE5053E9F + 8753271221ADAD681782D3768C28EBEAF0C3D1042411D3A86F543FE2131913E9 + B4A1E91319352DB89612EDD8AB339A630BCEA72AE875AFBCBEE0572E7CE19DE7 + 860CE653082AB50ADBC5FBE1E521C2A4F163512B9521FFC66D02E14716026331 + 4DAD2A2D3AD72E0067EC18A16A7EED7A3ECE5DCC23265288AAAA2A32ADC9D9F3 + 5605E0C0D3DB1710B8A9EA2415511C86C9C8CD4E3EDBD6B3468C991CD23BB0FF + E9C18306F224523989457418F474308283821018184820C8C9AC40209C4CA46B + 872A0261C2CF213C363B46E8070F5600D659A2A33B4628046FDF9EE90683DED5 + 55C8673B1F1414C802086A86C06A42DB109E881D237D060C18C0E308B38859F5 + 7B7AE0B35608A4F381412D10A839649C4C426D75592B084FCC8E918080A7FA71 + 84826C5757F77E4F0F1A623383A0FB2014DCBC83CCF454BA7C6683F044ED1869 + 0DE159D2F960B6F3414D20245205F259082936084FDC8E915610883904055373 + 683109A98C40B8D102E189DC31D23604AB2650B39092648A9A43465A0AFE0B16 + 9B7B5ED8AF7F0A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E8B4944415478DA + DD9B095854D715C7FFCCC2B08320A82C6A4C3EB152D2446A624D628C8D5BD4A6 + 6AE296B4AEAD266E51134D5450A389C12D0104C1686B6A6C5C128922A00202A2 + 6204773080A032ECB3B2CCBEBDDEF7064790A9CE0CC3C4CFF37DF3CDE3F1E6DE + 777EEF9C7BCF39F75D27B491E549D9141C20A49394EA3AE13B47D64FD138A2BF + 4789D3C300B6FF73789776A83750D87BEA264AAA244F0404B300BADA0CF66716 + 43A333E0165F9C4A204CFA2D21980560E862023F9FBF0D994A039D9E4251A528 + 555A8777F6AD7F43F5C400D0773181ACAB959029B52608C595A2732A1DC6262C + 7C43F64400D0EABB16C0A5D25AC869004F0004B30034BAAE05F02B5FC428DE0E + 02B1BAE27BE20B2A1D35DA9110CC025093018A9615F127EDDEE1F68563502D6C + 3629DE16029C9C70BD42E85008ED002CDB9545ED5830022AADA14B3B6D922989 + C25AB31068DBBB5E2E2894CBE563777F3C41E450001F2564525F7FF06728345D + 0BC060D013A5358F8470ADBCFEE6371FBCF9BC43012C8DCFA0BEF9F04DC8D546 + 00AB12EDEF02D10BC6E056A508C72FDE868200F87FA2D7E910B370A493154D77 + 1EC092B85354CCA25190A9F55DDD2F146A1D52F26F3330CC894EA341ECE2D18E + 05B038F62415B378345A545D0FE0BE94554B9071F92E01D2DE1A9A9A64885B32 + C6B10016C5A451B14BC6A2596904B066F729C75020A33F9BC3C173C1FE0FC0DC + ABC3CEA56F3916C0C2AF53A9B8A56FA149A9738CE20F4983548EA27B4268B47A + 9CBF5681F865E31C0BE0C31D2954DC47E3D1A4F86D00D04247857C4113FE9572 + 1109CB273816C082EDC7A9F86513206D05B06ECF69872ABF61DE28D3F1DAA474 + 24AEF88B83016C3D46C5AFF80B24F2DFCE02EE4B64621A123F79DBB100FEB925 + 994A58F15702406B6B7B7693B589A9D8BD72A26301FC23FA2895F0F144886546 + 001BFF9DE150A523678F7C709C7802DFAE9AE45800F336FF48ED5A3919A296AE + B5003E9F8FAB57AFA1A4B414353535686C6C229F46321B3AC1DBDB1B7E7EBE10 + CB29486BEF2E835E9B5978E174914300CCFDF2881180CCFE00542A15D2D24E22 + 23231302A1082EAEEEE0B9B882CBE581C56683CDE630D7E9F53A12066BA1D56A + A15629A052CAE8B0B8883260AF5222DF535C9C63D72CB11D80395F1CA61257BD + 0361AB057CF95D66A73BA0280AF5E5D7515B5248147681A7972F385C6768356A + E8B41A46613A39A20CC6FCC389C5028BC5660223FA3A670248A351A1A5490AA5 + BC594ADA8B2ACC532602397619A9DB0198BDF12095F8E91408ECE402D5D5D5D8 + B6751B8422097C7C03982C4FAD94132581A1C347A17F682802FCBAC1DBCB9358 + 029BF98D960441D2A616088562949696E0424E06710D36B1183706A6545C4FAC + 427989D219665CBE905E615700B33EFF814AFC6C2A04CD9D0770F1E245C4C5C6 + C2CDD397317785BC19DDFD03F0F6E4A9081BF01C78CEDCF637D27A27D443C528 + A55A8D1B4565483F7E1422A1006EEE9E90CB9A20950AE4C46CDE2DCC4D4FB71B + 80991B0E5089ABA71300C62AF596FD5936352AE297A2F2DA59F8F70C868138AF + 4EABC6B0F153A1717235559C392C2770D8C66F16F9B4BD11BA284B7F883160DA + A808E69C868C097BBEFF1945F9197075F722A00C10D4576B294A3FB730376DBF + 5D00FC7DDDF754E29AE968E88405E4E7E723EE9B18F8F7EA0DAD5A05DFEEFE98 + 3B7F017A06F8318F99C771820B87657AE28F13C66D7406A8B514F6FE988DD03E + DD917C602FF9873181AAAFADD41AF4868997F352533B0DE06F51FF2100DEB319 + 4055151FAB577D0A5FFF40E8C8481ED2B71F66CF9B0B4F7737B0C95376E7B1C0 + B654733320120E9DC1EBAF0E4173A3140792BE869AB8078B0C9A82BAAA16BD46 + 3BE84AFEA9F24E01783FF23B2A69EDFBA86F3202D8F15FCB5D801EC98BCE1C82 + 9B8B1B381C2E7C88BF0F1C320A74859DC366C183286F4EF5C7D59F270D7FC174 + BCFF782E268C7C0535520D0361DFCE6862492C325D2AD128692828C8550CB576 + 7668774FEFADD9472545FE8D00B07EA5EAD8CFC93876EC38BAF9F5804ADE82E5 + ABA3D0B3873F9C69E55D589669FB18F9EF893CCC7F7738AA09001A42D5DD72FC + F06D0C3C7DFC20ACAFA2412C2A3C9B166F338019ABFF452545CD449D9500E432 + 19162FFC007EDD8398D1FE9DF767E3A5C1118CD97BB9B261AF78F650EA39CC9D + F43A43B242A88694246DD969C9B872310FCE3C5734D4DC9528C48A3ED6044BED + EE6DFA677B0980592600B107CF58D4480D09721AABCB489043E674BFEE087B75 + 1C73DE9B28CFB2427BCA8C858C191A663AFE31FD3C66BEFD1A73AC271797D4A9 + 2057AA91B8258A8C055C12233440A1942DB99C9B1A67138069ABBEA592D6CDB6 + DA023E5AF401B82E5E502964983167019E0F0F830B970557679655ED3C4E8E9E + BA8019E35F35FD4D97EE2AC56A5CCCCDC0F9AC932472E44258C7BF5570362DCC + D236DB0198BA723795B87E0EEA1A2D0770A7A21C5F6E588F80C0DE04801C519B + B792A88E439E3EC7BAA76FC135C733F23165ECD076E7CA056A34B7C810BBE953 + 26CCAEABBE038D4E1B76352FFD966D00D6CD315940FCE1ECC736505B7A194D35 + B749B4E781B0C1AFA0C73303C165D3531EDB666DA93617BC1E116A3A4E3DF30B + 268E1CD2EE5ABA7843E72E07F7C441D8504F72060964B2C68F2F9F4DDF6E1380 + 5D048035B3C0D6CD9BD0209030F3FEB459F31116369099EF6908F696F49C428C + 1F31B8DD397A259B4FDCE0525E16CE65A633F0A4C2BAC3C40DA6DA0420216A0E + 09842C07B062C987E0F2BC98F87CF1CA48F4EAD5139E64DA63D918F03C4A4EE7 + 5DC1E861833A9CE74B34B853568223FB763129B6A08E7FAD2037F5451B01CC36 + 458296B8C0A5E45D08EEDB9F0422024C9CBB1C4E6C2E0380110B1CFB71970C09 + EF673ACE3A7F156FBED2512F418B0E2291183BBF8A84079989EAF8E50262013D + 6C02104F00589A0DD2E9E9AC195310F2CC004845F5888E4B62121B773B8FFEF7 + 2527FF06DEF853C7F5D246851E92C6266C5DB7125EDDBAA3A6B2DC507836956D + 499B1D00EC8C9C6D2A883C4EE8AACDBC99EF21B80FB10032076FDD99C498BE31 + C3031308D953F22EDDC4B097C28DF0615C43A05FE650938FACA5199B233F6100 + D4F2CB415CC0A2CE3B05809699D3DF355A0001B069CB0E92AFBB3F689CB44E03 + 6131DF606A7E9D917305C57879D040922A1B9537B4899C1AA512446F58D37917 + 882300AC298A3E18041BF1C99A280406F67A64770C94D69E9D4C67DBDF49DB88 + 903EA65ABFF3AFFC8A3FFE21D46CCB77CA6F23312EE6FE2058442C20DC36006B + 675B5514DDF2C546084452A6BEF7F739FFC00B2FFEC1E2DF5A2B05D74B11F17C + 7FB3FFCBCECC405ACA89D669B0FE68C1D9D4C93601882500C45600F8F1D00FC8 + C9CE61CA5E7F7CE9654C9BFEE8E9B7334E70B9A81C11BF7FCEECFFE2E36271F7 + 2E1FB26669E702A19835B3AC5A1A2B2B2D2156B00901BD7A43A751E2AB6D5BE1 + CCE55AFC7B5A2CCD92AFDDAAC0A0B0673B9CA74BEECB967E0477CF6EA827A1B0 + 5EAD0AB7742DA10300ABEEBCF5F62BAF9C827F8F2026199AF0D7C9E8DDCFFC53 + 627AB3220C36272FFCEE990EE7B232B370E8F04F24077126C950551931FF5058 + 287699A7225E1BB7C1D3DB278A1E813DDD9C11FDD5174CA9CA11424FC5CB96AF + 84016C484930A692B77C466680AF1C0AE0F9A1A30278CE5C7E60F0733C3A249E + 366512C68F1BE31000878F1C454ADA6966F4AFAFB927538AE4BD6C2E88744606 + 0F7B6BA3AB87D7DA6EBE01CC72D696CDEB1144A6C4AE5CDDACA8B88B35EBBF84 + 9B870F440D55D0A8549F10F3DF664D1B76BBBF8888083796478F625FFFA0BE6C + 361B3E9E6E64708C82A7A74797282F9192B863F50628357AA2B8921EFD759E3E + 01E1A77FDA5D623380CEEE186911D7E346E62104F40C66D6FE027B0660D19285 + 7021E6F9B03C3CD8B9F1B808F071B3A81FB1588AC88D5B20103731638D58508B + 97870C4565758354A651FC39F360E2559B017476C7C871E28F9BB7272020B00F + F364827A05206AD562F2FDFF23531A86A051C1DC8EBFB7EB23DBBF5D7E179F47 + C7A059A662164F05F57CAC5EB118E1E1E1D8FBFD4FB8595C6268A8BD37E997EC + 94633603E8ECBBE2070E1D45FCEEFFC0BF678871F557A7C1FC39EF63C298E14C + B6684E24CD2A26BBA4C5CFAB23049D4E8FC3C9A9F8EE60329C79464B1109AAB1 + E6E3C518396218E40A3581A26020DC282EA11A6AEE4DBA9493F2B34D00ECB15F + E2C4C94C44EF48606AF62E2EEE90CB9BD037381053264FC0B03F4574581C6D56 + 68DA6CD4A0D0CDC3853952A9D4C8CABD8003478E43246922C99617537AA74B5F + 2B972DC49B6FBC0A37571E990E750F201C388A8282CBBAEB97B2073554DFB969 + 35007BED18B9555286A84D5B49AE2E6396C7E98552B552011EF1F7D7860EC68B + E161E813128480EEBE24A1E2C140FA6D6A91412014A3AAAA1A376E16E3C2A52B + 4CF64787DAB4D059A75EA7D3460C1ECC5D3A7F163C3D5C1900F721DCBE534DD2 + F27FA3B6868F921BBF88745AED884741E8F21D23F4FADDBE038771F0483238CE + AE4CE596CDE1924152451228ADE90509530A48A7CFAD2F48D0911DFD068956AB + 460B89F1C993973B51D8E4E31FF293BBBB5BEE80FEFD7ACD7D6FB209023D33AC + 8BDE056F2F2F70386C9C399D0A6143F52321386CC78894DCDC91E414A49ECC20 + 4F59FE9857647444694DEB2B3272BAE05A49C6873D2AAD3EA138FF9484BE6ED4 + BBF39E71E6F0CA7E1F3680434390C965F83A713FBC3CDC3176E40834084528BA + 554A209C60205006DDDBB59515172C02D0953B46B67D381A59E70A5178E51A09 + 64EEA0A1BE9E2966506D8A00E4A8923CE91203A8734E14955D98977EDE5C5B83 + 878D1BDA23A8CFD901A1FDD9B4DBA8D52A843E1B8290E060040505110862322B + 100819A9F4DAA18C4018FD30842766C748B35CCD1CD3EF0859B3638486E0DDAD + 7B9646A37671E17118E58383831800C1F7213096601EC253B163A467DFBE7DD9 + 4EBC5CE256BD9FED3FD00881281F14FC0002ED0ED9196968A8E3B783F0D4EC18 + 090CECD7DB89C7CD737171EBFD6C6898C90D82DB4028FEB50C3959A7E8E53313 + 84A76AC7487B080389F2218CF2C1AD200442098A1808274D109EBA1D23ED2010 + 77080EA1DDE1814BD0AFEC15DD7A00E1A9DC31621E82D11268B71092648A7687 + ECCC93F81F5491825E0F7D56E90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E734944415478DA + ED9B0B5C5465FAC77FC3CC30DC415450404DEBAF6E2CB5A968BAADBB6A9959FD + FD7B4933B5BCD57AC90B6ABAE62A5AADA566A50842695B6BAE0A7945EE202221 + C5C534C51041EE97B930C365EEB7B3EF7BC0D111B49961003FEEFFF97CF83073 + E6CCFB9EE77B9EE77D2EEF1C0EFECB85D3DD17D0DDF2FF00BAFB02BA5BCC00AC + 894A67BA625232496C55AD7846CCD699DA870EC0EE77FED2A9131A8C0C0E265D + 4561A5F4A180D02E80CE368343A905D0EA8DB85E511F47204CEB4E08ED023076 + 328153593721576BA13730B8562E8993D562C6375BC7A91F1A00864E2690F673 + 39E42A9D094241B9E407B51E2F452C1F277F2800E80C9D0B20E7460D1414C043 + 00A15D005A7DE702F8B542C22A6E0681585D4159FD45B59E79B12B21B40B4043 + 16282A6BC313ED3EE1EEE59350256E32297E37047038B85222EE5208660042F6 + A7319F2D190FB5CED8A99336CA5544615DBB10A8ED5D2916E529148A97BE5CF7 + AAA44B01AC8E48653E5F3A014A6DE702301A0D4469ED03215C2EAEBBFAC5D2E7 + 9FEA5200ABC253982F963D0F85A605C08648FBBBC08E259370BD5C82333FDE84 + 9200B89F18F47AEC59FE42A7A7EA6613AC0C4B62F6BC3B11728DA1B3E78552A3 + 476CF64D16467BA2D76AB177C58B5D0B60C5DE4466CF8A17D1ACEE7C00B7A5A8 + 4A8A94FC5202C4DC1A1A1BE5085B39A96B01BCBB279ED9BBF22534A95A006CFA + 32A96B2890D59FCBE3E18980DE77C094D562DFAAC95D0B60F9E7714CD8AAC968 + 54E9BB46F17B442853E05A99185A9D0159974B101EF272D70258F6592C13B6FA + 15342ABB0700159A1556881AF175EC8F8858F36AD70258B2FB0C131EF22A64AD + 00420F2477CAA4AA26291A4595904BEBA06A6E805EA3844EA3229EC081A7A727 + 7AF5F446BD8A03695549080CBAD4BC8BC9D7BA06C0AED34CF8DAFF8554617F0B + 50ABD5381B9780A4E4140845123839BB42E0E40C3E5F00072E175C2E8F3DCF60 + D09310A8834EA78346AD845A25A721F11A63C441955471A0A0E0BC5D33443300 + EFEC3CC944ACFD3F024067EB786DC46834E2D4E9581C397A0C70E0C3DDC31B3C + BE23745A0DF43A2DAB304D8C18634BEEC17170808303975D14E9798E049056AB + 4673A30C2A45938C61982D7999AA48E0BC5DEE921980B7779C6022D64D45BDBC + 05C087FF4CE9D0E0AA66198A739268508797B70F9BE169540AF68E0FFFD30BF0 + ECE9030387071D29BE0C4C4B01C6256E20E072C88519D028AE454E4622710D2E + B1181710E521ABAF2356A1CA61F4C637F22F2694D815C0E28FBF67F6AF9F0E49 + 73C72DE0627636BEF8622F5CDCBD5973572A9AD0CBC7175367BC8EA0A1832010 + F0EFB990964B61EEE947A9486A7CB9A00871A74E402212C2C5D51D0A79236432 + 918298CD6B791909097603B0687B4C0B0079C7009C3B978EF0F048F4F20D8091 + 38AF9E98F0AC790B3166D433E0711D5865795CFA07F01C387020779D73D795D0 + 868C8178042D91696F82DE799D4E8FA8EF4EE36A56129C5D3DC831234475553A + 86312CCACB883F6417000BFF11CD446E980171AB056CFF36D5EA01A5D52528CD + 3F071FBFFE646557A3A76F5F048E9E081531733A99238F03273EF1F3BB66661E + D07E983B69045B9E6BC8F7BF3A918927FC3C71F2F041F2A596E4A9AEA65C6734 + 18A7E667C6C57518C0820F8F32917F9B09918D2E50515181F5EF6D80776F3FE8 + C94ADE7FE0202C7E7B31DC5D5DC0251ABB0A1CD8FFB608EDD2454467E0B9D123 + D0D420C3E1A8CFA1D168C882E900516D65B341AB1B76293BA9B84300E67F7084 + 89DC380BA226EB01D0B0B576CD1AA8B40C783C3E7A9058BE727508DC88F27C62 + EE6E44790EC77AE5EF368E4367B23079FC4854CBB42C846FF6ED20633A9070A9 + 428354989B9BA11C636D7430BBA2B7B61D6622DF9F4D00B474A9771E4AB378A0 + 9AA24BA82F2B208AFBB2B17BFCF445D01A1D5893771370DB51E73E0ADF73CAB4 + 714F9B5E1F8EBB88B7A73E872A028042A82C2DC691AFF6C0DDAB27C4759514C4 + BB7917E2C36D06F066E8774CE4A6D9105A690172B91CCB962C81772F7F76B59F + F9E6423C1B3C9C9827E0E1CC35ADF01D9563F1D9983FE58F2CC812B1063292B0 + A5C79FC4A51F33E1287086B0BA54AAAC570EB0265932BBB2795BFE4500CCB11A + C0F19818C4C5279224A7073CBDBCB066C30692D971E1E9C4B5D9E7DB9398C46C + CC7D650CFB9AE60D85B56A28541A44EEDC4260F3498E208452255F999F111766 + 1380B99BBF65A2FE3E17758D2D003EFBB7652E7039F15FF026498D5A494C7FEA + 3C709C3CC84ACF810B59EDEF2796F69D278D7ED2F4FA44CA4F9835E959D37B5A + B697D76BF063460AB2D21249E6C887B8B6E27AEE85F8409B00CCD9F40D13B579 + 1E0160F94E55497131B68586B2614F4DB2BC6D9F7C4AFC9E074F17AEDDB79E4F + A7E562FAC49166C78A451A3435CBB1F7A3BFB169766DD52D68F5BAC09F3313AE + 5B0DE08DF7BF66A2B6BC855A2B009C3E790209C4FC9D9CDD307CF4184C993A0D + 8EDC9690676F397B2E0F5326049B1DA3851BCD5B8E1E08835858476A06295993 + 1AD6E55F48D86D3580D91B0F1200F34D00F61E3DF79B03DCC88A8523D195C6FD + 7153E642E0E60517B2EA5308542C32F507644263870D36BD4EC8C8C7E4BF0C37 + FB9C668A15C40D7232D3F0436A029B4ACBC4B5D1C40D66590DE0F50D5F3151A1 + 0BACB2809015CBC01778B0F9F9CA0D9BD1B76F1FB80B684567FF5E4672E6254C + FCD3B036C72BA45ADC2A2A44CC37FBD9125B545B71393723EE19AB01CC5AFF25 + 13B975216A1B2C0730FF8D99F01F30982422226CF978375C5DDDE0EE647FF3A7 + 9296F5339EFF635BBD44CD7A4824F5D8F7C966B89148545B512C2216E06B1B80 + D085260B088F4E7FE0976991927B6A3FFA0D1C0A99A40EAF2DDDC8667BAE8EED + 03B8B7D2E3B47B8EB98C0C1C687A7D3EFB178C1BDD76AFA4416980B4A111BB42 + D7C3A3472F5497171BF32EC4716181B401B09F00B0340AD0F477F15B7310402D + 80C4E05DFBA2D8CA8EADF008037BE600543273AE62ECC8201328DA3FA41BB9B4 + 50923737E1E3CDEFB1006A2A8A415CC0A2C9DB0088D8B290244296BBC05BB35F + 6BB10002E0A39D9F917ADDF5CEE064740AC481FD0F9B6A81BBE587DC028C1AF6 + 644BA94C9437DEB57836C8A4D8B16D53C75D2062CB025326F85B2E40E54AD221 + 787BFB9045B001AF2F5E096737F7FB2EEA1400A715CC6D40F743727B8CA7FE27 + 80BDDBF47DF6A55F31E2E921ED9E7FABF82622C3F6DC5E04AF110B08B2094038 + 01604D35B8F31F1F422491B1FDBD3717BE8D3F3CF3B4C5DFB55672AFDCC0F0A7 + 06B7FB597A6A0AE263CFB686C1BA13B917E2A6DB0460DFE605A6868825F2FDB1 + 23389F7E9E6D7B8D18390AAFCF7E70F8ED8813E45F2BC6F0DF3FD1EE67E1617B + 515A5A017993CCF644C8160045370A89157C049FBEFDA1D7AAF0C9A7BBE0C8E7 + 5BFC7D2A96D60597AF976058E0E36D8ED3967BC8AAD57075EF813A920A1B34EA + 204BF712DA00082300AC698AD250B86AD93BC4F7BDD96268E1E2C5080E1E6EF1 + F7AD91AB374AF187DF0D6C733C2D350DC7A28F83CF7724C550651131FF21968E + D916C0DF1758DD143DF97D34529253D815B8670F0F84866E665B5596DF5BCBA4 + A0A8024F0F1D60768C86E29035EB61041732928CA915CD1B4904F8C466007B09 + 807A2B0134353561CD8AA5E8EDDB9F4D89E7CE9B8309E3C6DA55792A85255508 + 1ADCCFEC5874CC09C4C627B3AB7F5D75995C2551F4B5B9214201ECD934DFA6AD + B1E3D147891524A3070989744B6BFBF6ADE8E3E363D792F8665935029F0830BD + 2F2929C5A6ADDBE1420A3089B0125AB5FA3D62FE9F5A33661B00B65E1CDDDEAA + FAE51C3C3CBCD86E9097BB2B962E5B0A4781C0E23118E6B7A7FFDD203FF6BF54 + D680F7DEDF0695D6401457D1D55FEFEEE513947CFCCB429B01745482FF3C2918 + 1C7E561FBF017CBAF7D7D7A727B67FB0111EEE6EF69C06F5F5326CFE702744F5 + 8DEC5A532FAAC1A867C7A0BC4A28936B9513528F46FEDC2D00A88C18FBF2221E + 8F77C0C76F007B677AF7F4C4D68DABD12FC0CF2EE3DF2C2EC5073BF6A049AE66 + 374F457515787FED0A040505E1E077C771B5A0D028AC299BF6537AECE96E0140 + 2578ECCBEBB83CDEAEDE7DFAB56C77EB3458306706664C99D41A1DAC17BDDE80 + E89371F8F6E849E2562EEC3189A80A9BD6ADC00BE3C742A1D410284A16C22F05 + 858CB0BA6C5ACEF9D853DD028085F0E7C90B483D18E5DDDB97EFE4E40A85A211 + FEBEBD3173DACB983076340402478BC651AB3548CBB888C331672091369262CB + 836DBDD3D6D7FA90E5787EDC73707116B07B872608874F2037375F7F25277D98 + B0EAD6558B01D8FB8991E6FA3A14669D05C7A867B7C7E946A946A52499220FA3 + 463E83A0C02711E0E7478A292F787B79C0D3D5110D8DCDA8138A70ABAC1297AE + 14E062CE25B6FAA3A936155A751AF47ADDF0E060FEAABFCE87BB9B330BE03684 + 9BB7AA4859FE4FD45457A0F0979F247A9D6EFC832074FA132374FFEEEB43C770 + 38FA24788ECE6CE796CBE343A75593024A67FA8184A9FCA3E573EB0F24686647 + 7F41A2232ED44C727C72E7151C061F79F5EE77DCD5D52563E8E0417D17CD996E + 82402343E88EFDF0F4F0008FC7C5B9E4388885550F84D0654F8CD08B3B76FC0C + 621352D1D824FF8D9FC8E889D2DAD69FC82868C3B59C84C8036A9D21A2203B49 + 4ACF9BF8DAE2818E3C41D1EF0387F22804B9428ECF230FC1C3CD152FBD301E42 + B104D7AEDF2010CEB21018A37E4A4D79C9458B0074E6F31234D6EF3B928C1BBF + 5E87B0A61275B5D52AAD52EEC469ED96908F8DE45539B90B4546303F7018263D + 2F3321ABBDB1C8623BC6D77FC085A143067345E27A626D6A0C79BC1F893801F0 + F7F72710EA4954201052E2E8DEA19C4078F15E080FCD132395B7C4AFC4EC8850 + 58BBBB4B2178F6E895A6D56A9C9C043C56F980007F1640C06D08AC25B40FE191 + 7862A4CF638F3DC6E50832885BF57F7CF0932D1088F2FE0177205077484F8987 + B0B6C20CC223F3C4889FDFA0FE1C013FD3C9C9A5FFE343024D6E10701784825F + 8B703E2D896E9F99203C524F8C9843202136A01FAB7C402B0891588A6B2C8444 + 138447EE89113308C41D02FA5177B8E31262098170FD0E8447F28991F621B458 + 02750B3129A6A83BA4A726E23FEFDE8E5EB0193BB20000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Find_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E674944415478DA + ED9B095C94651EC77F7331C370882820026ADA47F1C00B35735B37AF356B6BCB + 5CABA52C8FD43435C3342391B6B2D4D4140FACDCAD2D5BC3844C01E508114F0E + D3044504816138E660866386B9E7DDE77D07476661656618D08FBBFFCF673EF3 + CE3BEFFB1CDFE7FFFC8FE7795F165AC90B6BBFA07646BD0685DA887B2D1F7CFE + 1D7ED8B298D5D5F5D8544003B8D71D6F2DDD0EE07F51FE0FE05E37E05ECBFF01 + B4FEF1F6FECC6E3182A49263E21AD99CC33173F5F71D806D8B1FEFD20A4D660A + 074E5E4551A5E2BE80D02E80AE56836FD30BA1379A714D54974420CCBE9710DA + 0560EE62023F9DBD0995560FA3894241853C495983395FC74CD1DE37004C5D4C + 20E3D70AA834062B84C20AF919AD11B3F62E9FA2BA2F00184C5D0B20E74635D4 + 3480FB0042BB00F4C6AE05705D24673A6E0381685D6179DD39AD919AD99D10DA + 05A023068A96C83D275C5EE1B6E54F402C6BB476BC3504B058B8522AEB560836 + 0056EFCBA0B62F9D0AADC1DCA59536A834A4C3867621D0BA77A5449AA756AB67 + 7DB1E66979B702786B6F3AB5E38D6968D6772D00B3D9443AADBF2B84CB25B557 + 3F7F63FAC86E05B06A4F1AF5F9B2E950EB2C00D6C5B97E0A6C5EFA04AE55C8F1 + F3859B682600FE9B988C46EC5C3EA37BD3E195B127A99D6FFE112A9DA9ABEB45 + B3CE8863E76F3230DA13A35E8F5D2B66762F8015BB4E503B57CC4493B6EB01DC + 9662B10269F9650488AD363434A810BBF289EE05F0E6CE646AD7CA5968D45800 + 447D71B27B2810EBCFE172F170B0DF1D30E535D8BDEAC9EE05B07C471215BBEA + 493468BA764DB0BC4284FC4BBFE27A51312AC555A857D643595F4F38B0E0EEE1 + 094FAF1E30B205A8AB2C590D93213DEF5C6A41B70058B6FD1815FBD69FD0D0EC + 7A005AAD163F1F4FC189D43448A47208DC3DC017B883C7E383CDE180C3E132D7 + 994C4662000D30180CD0699BA1D5A868835840997140A3507F555878CAA5F181 + 0D80A5DB7EA6F6AC7E1ACA16001BBF4AED74051445A1B6E40AAA8BF2488705F0 + F2F60597E706835E07A341CF7498768B94D9E279586C36D86C0E3325E8EBDC08 + 20BD5E8BA6062534EA4625292F3A2F5B13079C72C928D902D87A94DA13F98CCB + 96C52B2BC5D8F4E91648650AF8F8FA33FE5DA751934EB23079EA4C840E0D857F + 6F5FF8787B80C7E530F7188C2628944D90CA15B87EFD3AB27F3949A60687688C + 9081A9ACAB255AA1C9A18CE6BFE69F4B29752980C55B12A9BD91CF12000667CB + B3CAD973E7B17DC72E08BD7C19756F5637C2DF3F00CFCE7D1123430782EFC6B3 + 6D08ABA529946D1ED2ACD3E37241318E272640269540E8E105B5AA014AA5544D + D4E62F795929292E03F0FAE6046AEF9AE750A7B200F8F01F694E152A17DD40C5 + E5D3F0EB130C3399BCB4AA3FFEF40BD042605D6BE0122DA0079DFE66934FEB86 + D0E938FD311067346FD6384673F40623E2BE3B8AAB674E1043E94D389921AD15 + 1B28CAB4302F2BF95B970058F4C98FD4BEB5CF43DEE4BC069C3D7B0EDBB67F0E + BFC07E30E8B4E8D5DB0F4B962D43A07F2FA6363E970501970D969D0E8EE93CC9 + 4EE9FCE4CB9FCE62501F2F241E3C40FEB0B8CEDAEA0A83D9647E2E3F3B29A9D3 + 00166E3A6C01A0720E8048244264E43AF8FAF5859158F2FE0F0DC4EB8B17C1CB + 53080EE9B18780CD7C3B23F4CCD8FD63367E37612C1AEB9538B87F07743A1DD1 + 1E36A435954D26BD61ECA5F3274B3A0560C1C7F154DCBA3990B568C0A66FD2ED + 2E88B6E405BFFC00A140082E9747200460E8A3334067D65C0E1B9E7C76BB6BF0 + 1DAD3CBC387D8CF5F89BE3E731EB0FE350A5D43310BEDEBD9968129BB84B0DEA + 1592DCDCACE6498E7A079B36CDFFF01015F7EE5C489D9802090909389270143D + 7B0540DBDC8475EFC7A04F801FDC389691EF6C484783FA3EE902163E3B096202 + 8086505956827F7DB9135E3EBD20ABADA441BC99773A798FD3005EFBDBBFA8B8 + F52F40DAE81800954A85254B96C0B7771063ED5F9CB70813278C618C9BB78063 + F77CEF480EA55CC4AB4F3FCAE02895E9A024EE3A333911972E64C38DEF0E4955 + 99A2B9AEB9BF23C1924DD35EFDE02015F7DE4B048065957ACBB7197615524582 + 9C7A713109727AC2A7576F0C7FEC2966C47AB873C076A0F3543BF3E199DF8FB0 + 1EC79FBC8888272732C7267271518D166A8D0E715BA2096C1E89112468D6A856 + E66725C53A0560DEC6EFA8B8A897207150039691D1E70ABC89EAAB30EFF56518 + 19360C021E1BEE6E6C87CAE94812D2723177E604EB6F3A69ABA8D3E142561ACE + 669C2091230FB21AD1B5DCD3C9C39D02F04AF43F098008870094949420664334 + FCFBF623119A1A7FDBFC19095F79CCE8BB4AF56FCBD18C5CCC9E3EDEB67EA90E + 8D4D2AECFAE85D26CCAE11DF226ED330FCD7EC946B0E037879C337D4FEF75F46 + 6D8305C0F6EF3B9E02D537F2D1507593447B9E089BF03BF80D18061E6DF8F89C + FF7E5307A69F6A75C1F4F1A1D6E363A7F2F1CC94709B6BE9B09DF65A87BE8A85 + 4C524B720605B149F56BF24FA76C73184044D4D7D4FE0DAF1000F6EF547DF2F1 + 87A8912818BF1F317F29468C180AA11B076E5CD7A7F2C95997881B1C6B738EDE + C310916990939D8133E9290C3CA5AC269E4C83171C06F0D7F7FE4EED8F7E1535 + 0E0058B5FC0DF0F8DE4C7CBEEADD68040606C04BE098F1B35752B32F63C663A3 + DB9C1729F4B8555C84C35FEF63526C698DE8726E56D2187BCAB469E64BEB0F10 + 00AF5901EC3AF44B8705E424EE43F080C1241091E2B985916091BCDE4BD062FC + ECD85FE9E8924923075A8FD3CF5EC1B449A3DA5C236D32422EAFC3EE4F37C093 + 78A21A518994684080C3005E5CF725B57FE37CBB35804E4FE7BD3417210F8542 + 29AFC596DDFBC9C893F9EF62EB7F5B4E5DF80D8F4F6CBB525EDF4C52E8FA066C + DDB816DE3D7BA3AAA2C49C773A89634F996D9E128B8B59809A7AFB00D0AB368B + 5E8D40707FA201C4076F6D0160C9F0008E8BE74176CE554C9E1066814F3EF49E + 229D28E9C847D5D4884F36BCC300A81695804C01BB2A6F0B60E302AB06EC89CF + ECB0809CC4BD160D20002296AF0587D32ACF27306806C42930F97E473CDA0B84 + C684F6B31E9FC92DC42363879154D9D27973AB1BEA950A6CFE20AA73538006B0 + 8F0070C40B44AE5CD66204EBF14E5434FAF60DBC6B75746CC06EA999653D6BDB + 92D620E863AAE5FBFCA5EB18376A48BB25DF2AB989B8D89DB78D6001D18030A7 + 00EC8D5E400221FB016C216E502A57328B1EF316BC8ED16346D97DAFA3927BE5 + 06C2470E6EF7BFCCF434241F3BDEE2066B13724F273DEF2480F9D648D09E2920 + BE76114DB565CCB2D7E8718F207CD2E44E77B4B5060C1F7847A3F20B4A103EE2 + E176EFD913BB0B656522A81A95CE074234803D048023D960F18D22A2051FC13F + B01F8C7A0D3EFD6C2B130A3BD4613BAFBB7CAD1463870F6A739E5E725FBDEA2D + 7878F5442D09854D3A6D98BD7B096D00ECDE30DFBA206257E3C970AD5AB618EE + 9EBE4C32B460D1228C1F1F6EF7FD8EC8D51B65183DF4A136E733D233F043FC11 + F0786E2419AA2C26EA3FC4DE323B0D8096C41FE391969AC658E05E3DBDB171E3 + 0666A9CAFEB1B54F0A8B451815DADFE61CED8A57BFBD166670A024C19856DDB4 + 9E78804F9D06104B0038BA28DAD8D888B757BC01BF807E4C48FCF22B119836A5 + F3B6E03FA5A8548CB0C12136E7E20F27E058722A63FD6BABCA551AB93AD0E905 + 1106C0FBF39D5A143D127F8868412A7AFAFA335B5A9B36C5A08FBFBF4B9FC5BD + 595E85E10F075B7F979696212A6613849E3E904B2AA1D76ADF21EAFF992365B6 + 01B08B00A87302805EAFC7FA356F1155E491608883DEBE3E88897E179E1E1E2E + 03704B5483A103FB32C70A25893BDEFB001ABD89745C435B7FA3978F7F58EA91 + 2F8A3A05A0336F8C94DD2AC5C731D1E8E51FC4ECFD850407E2FDF591F0F2740D + 8472B1044306F4415D9D121B3EDC02695D03636BEAA4D57864E2245488254A95 + BE795AFAA1B85F9D06D0D94636C92AA0A828807FDFFECCC8F8F5F2C1D2C50BE0 + EBDBF3AEF7511D2E92B4889E5E75DA89469596D93C95D68AF05EE40A848585E1 + C0774770B5B0C82CA92E9F7D31F3D8518701B84AC64F7E6A0D87CBDDEAD727C4 + B2DD6DD0617EC41CCCF9F3132DDEC171311A4D884F4CC2378712E1C61732E7E4 + 5231A2D6ACC08CA993A16ED61128CD0C84DF0A8B284955F9EC9C53C77EBA2700 + 18087F78723E4983F6FBFA05F004020FA8D50D080AF0C3DCD94F61DAE447C1E7 + BBD9558E56AB4346D6391C3CFC33E48A06083DBC99A5777AE96BEDEAE5983EE5 + 3108DDF9C41D1AEF40389880DCDC7CE3959CCCB112F1ADABF704002DE37E3F73 + 02D89CEF8542AF41F4F638BD51AAD3349348918389E34763ECA81118D83F0401 + FEBDE1D3C38BB9A7BEA109B512296E9557E2D295429CCBB9C4647F74A84D0B9D + 759A8C4643F8F8F1BC554B5E23F6C59D01701BC2CD5B629296FF03D5552214FD + 76516E3418A6DE0D42973F83131E1E2E6409FB44814D457A78F6E0D32BB71C2E + 8F18492D49A00CD60724AC46804E9B5B1E90A0233BFA09120399424D24C62723 + AF6651F8C8C72FE4888787302B74F0C0C08511CF5B21D09E61E3E67DE8E1ED0D + 2E97835F5293209388EF0AA1DBDE18D193D8A0FAC62548483BCC4643078FC818 + 49A7F52D8FC8A8E905D70A12727FA53598F6169E3FA9A0AFFBE35F163DE4C6E5 + 178F181ECAA521A8D42AEC88FB16DEC4E3CC9A311512991C05D76E1008C71908 + 94D9F8E7EA8AD2731D02E8EA37468C449F37FDFD38722F9CBF595B7AB59C34E0 + 6132F8FDE981A7FF27C766725C41CC7EB119D419164565E665A79C6DAF2C626C + 270504F53F1D3A6430472AAB834EA7C5904121C4FD062328288840A8235E8140 + 484BA2F70E5504C2CCFF84701FBD31F2B845051CDCDDA521F4E8D93B43AFD709 + 047C2ED3F9E0E0200640F06D088C26B40FE1817863A4CF800103382C7E169956 + FD060D1E6681403A1F147C07023D1D32D39221A911D9407860DE18E9DB77603F + 169F972D1008FB0D1A32DC3A0D825B4128BC5E8C531927E9ED332B8407EA8D11 + 5B08C348E74398CE07B780A09F562B60209CB04278E0DE18B18140A64370083D + 1DEE4C09999C40B87607C203F9C648FB102C9A404F0B1949A6E8E990997E02FF + 0695A1585E32743A990000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_21_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E574944415478DA + ED9B095C54E5DEC77FB3B1CC0082288B6CA5BD2E21D79B4B56B74DADD4AB7729 + F3965BA5F57A3357D4342351CB2CB54D0945CBF7DA6B5E15435304442110D72B + E0928028FB80C22CCCB0CCBE9DFB3C071D980BE20C0CE8C7EEFFF3E1C3993367 + CE73FEDFF35F9FE71C0E5AC86BCBB633311FCD845C65C4BD9635DFFC887D1B66 + 73BA7A1C9B012880CD0440ED6F19C0A6A8B7A0509BEEB5FEF70EC0BD56BCA574 + 3B80DFA2FC17C0BDBE807B2DFF05D0F2C3E26D19DD1204C9208955D5B257F7AF + FE9BE1BE03F0E5ECE7BB7440B385C18ED42B28AC54DC1710DA04D0D566B02B2D + 1F06930505E2DA2402E1957B09A14D00962E26F0F3E922A8740698CC0CF22AE4 + 49CA6ABCBA73F528DD7D03C0DCC504D22F5640A5355A21E457C84FE94C18BF65 + EE28D57D01C068EE5A00E7AFDD849A02B80F20B409C060EA5A0057C57256711B + 08C4EAF2CB6BCFE84CCCD8EE84D026003D09505496C41E75FA805FCE1D872A59 + 8355F19610C0E1E07289AC5B21D80088DC9ACE7CF5EE68E88C962E1DB45EA525 + 0A1BDB84406DEF72B13447AD568FDFBEF44FF26E05B0684B1AF3F59C31D018BA + 1680C562264A1BDA8570A9B8E6CA37735EF85DB70258187B9CF9E6BD17A0D637 + 01581EE77C1758FFEE381454C871F85C1134BA3B4FBC984D266C9AFB62F7B6C3 + 0B6252994DF35E824A6FEEEA71A1D19B9078B68885D196980C066C9E3FB67B01 + CCDF7C94D9347F2C1A755D0BA0BC428C9CDC8BB87AF51A8ACBC490D72AA0D7AA + D920E8E226849BD01302774FC8C54591301BD372CE1CCBEB1600F33625339B17 + 8C4783B60940D4F654A70D643619212DCD83ACE22A4C7A0DDCDC457075738740 + E00A2E8F071E8FDF749CD9C41E6B341AA1D769A0D3AAA83BE43116ECD02AD4DF + E7E7673A353BD80098FB751213B3F08FA8D73A6F4ED06CB1E0C0C1C3D8BD671F + C015C0D3AB27F80217180D7A988C0656611A14194B53DCE170B9E07209103E9F + 3DCE850032187468AC5742AB6E50320C139D73521B07643AE5226D00BCF75522 + 13B36822EA35CE0150595985B59F6D8044A680774F3F36BA5353E77039786ECC + 580C1A34107EBD7AA28797082EFC260B3090E0A7AC6F647F73B5A01059E94789 + 67F088C508419487B2B6865885F63C63B24CCD3D9352E25400EF7E7998898DFC + 1394B700ACFAFE58874FACB8598AB2DC5FD0C3A7176BEE1A7503FC034230E40F + A3A1367149B96D5FAA7D63DC505CCC2B42E28104C8A435108A3CA156D543A994 + AA89D94CCE399192E23C001B0F31B14BFEDCE969F1B4F40C6C8ED9825EFEC1A4 + B3B49088AEC39437DFC1D3231F039FC7654715102BE0F3C81FF9CFE5365F08B5 + 12DA8BD1868CF608B42FA1FB8C0613B6FE7808974FA6C05DE445ACC102694D95 + 9161CC6FE79C48DEE51400B3371C64B62CF92B01D0F1859153A7CF60E317DFA0 + 7760288C7A1D7CFD7A63CE7B7311E8D7931DCC85CF819B80F8B99D098E751B23 + C396E7DB7F3E8B87FD4438B87B07F982C3C6899A9B15468BD9F272EEC9A4A44E + 03F8DFF507982D4B5FB6AE0C7DF28FE30E9D4CDBA0407E6602FC02826122913C + EC910108097F024672377924C5895CA9E2F668DEDC8C4D1F37BC690FF1FFD884 + 337872F81034D429B17BDBD7D0EBF5C47AB8905657369A0DC6A117CEA616770A + C03B9FFDC46C5D3609F246C72D80A6AD858B224981C380CF17A0A7AF2F221747 + C243248480D7A4BC5DBAB7233F1C398771CF0EC30DA58185B0F3DBF5E49C5C92 + 2EB5A85348B2B34F689E72343BD85CD2DBEBF63701E8C0DA6042C201EC4F3804 + 1F5F7FE8348D5811BD0601FEBDE04294F720CA7756A84DEC4E3E8F597F7E0255 + 0400855059568C3DDF6D82A7B72F64359514C4BC9CACE4D80E0398F5693C13B7 + FC55C86E59C0BA1FD2EC3A8989E4F4CBC77691281FCA46FBD17F99028B6B0FD6 + EC3DDD7977BEF3779976A0E16FD2F3CDFDD09EA3D97863C248F69B12991E4A12 + AC33920FE2C2B99370717587E446994253AB0973A458B2B9B4999FEC65E23EF8 + 1BA40EBA407C7C3C128F1C25458E0FBC7D7CB0F483E524BAF3E0E5CE05CFDE68 + 67CF38A9D9983AFE7176DB4C624261B58E74917AC46D8826B140406A0409345A + D582DC1349311D02F0D6C77B98B815AF41DAE01880BFCF9E0DBE9B17317D15DE + 9C3D1743221E6523BDBB4BE74DBFA524A4E560F28BC3AD9F69C95E51ABC7B913 + C7719A144C7C8100B26A7141765672788700BCB9663713F7E11402A069967AC3 + AEF4BB9E40A594A2E87422FCFA8492A8ACC5E8C9B3D9FD3DDCF9CDA6CFDC7D8A + ED4E478C7B729075FBE7F45CBC3C6698CDF7C5523D1A1A55D8BCF603B6CCAEAE + 2A25D5A431FCE2C994028701BCB1EA47262E6A0A240E58C0C184041C493A4AAA + 3D0F0C7FF269BCFCCA5F2120B9DEC38567F739EC9523991730F1F9A136FB68D1 + 4663D6DEEF632093D4909E410195AA6E696E56CA970E039811FDFF04C0348700 + 7CFAC9C7A89628D8BC3FEDED3988081F0421317D5AF0385B92B32E62DC338FD9 + ECA395A298B8C1F993E9389596C2064EA5AC3A9EB8C16B0E0398BEF20766DB47 + D35153DF04E0AB7FDEDD052EA7EE424FD2E8D0FA7CC2B439E0B8B8C3D3CDDE82 + A76D615AB8CC7343FFC7BA9D7AEA125E786A48ABE3C50A034AAF1762FFCEAD6C + 8B2DAD165FCA3E91F4983D63D95CE5B4A89DCCB695330800FB57AAA6BE361941 + 61FD492122C59ACFBF82C843044F27E4FDB624EDCC158C7E32A2D57E69A30972 + 792DBEFD7C253C4826AA16174B8905F83B0C60EA87FFC76C8B7E13D57602A077 + 6A3A0110F2F04028E535D818BB8DBDF3222747FFDB92792E0FCF8D1CDC6A7F9D + C60C455D3D36AE5A062FD27DDEA828B6E46425D915846C004C59B1830078CB0A + 60F3DE5FDAFD319DC8C839BC1DC1D402480E9E3A2F8A3D259F0C4DD37FA76B00 + E20923C2C3AC1FB3CEE7E39911E1B7BF62BB45BA88A3277FAAC6067CB6F27D16 + C04D7131880BD835B8CD41AF2FFF8ED9B66AA6DD164065C6EBB72C800058BB91 + B88050D47C720E588BA0ED2E65C1E9E4F318A7720AF0F8638340A712A8F29616 + B1A24EA9C0FA35519D7301FA9458DCEA59A8AEB31FC09205EF41E0EA4582601D + DE8F8A469F3E81ED0EC742B93532C7BAD7F64A5A960D749BB9F5FFEC85AB183E + 64409B672E2D2E425CCCA6DB41308F584004EC90D60056CDB25A406C7CC65D4F + 5078EA305C49C343E7F7264E9E4E0AA21007476DAD744B897824C8BA9D7DF91A + 86FDAE7F9BC765A41D4772E2915B69B0E6407656D2A40E01D84A003892057EDA + B707991999ECB4D7F0C747E2F529EDA7DFCE38416E5E31860D7EA4CDEF626336 + A3AC4C0C5583B2E3851005B0257A162984EC0770FD5A21367CBA167E81A1A42B + D4E2F32F36C285D4E48E88BD6BD1970A4A3034BC5FABFD3A9D0E910B1741E4E9 + 831A520A9BF5BA087BD712DA0030D35A09DAE30234155E4AF901BEBD03D86668 + D2941908EBDBEFCEA3DDB505B695FEA1CDB1ECCAB532FC7ED0C3AD7E939E968E + 7DF10910085C483354799D98FF00D829AD00C412008E7683077F8AC7F163C7D9 + 08ECEBE38555AB56B25355F6DF5BFB24FFBA18430686D9ECA33351918B97C102 + 1E94A418D3A91B57900CF07987017CBB72A67542C45E696868C0E2F973D0DB3F + 942D89A7CF988631A39E75AAF2540A4BAA10D1DF36C8C6EF3F80C4E4636CF4AF + B951AED2CAD5811D9E10E928002A09F17B89151C830FE90BE892D6BA75AB11E0 + E7E7D427318BCA6F20FC9160EBE792923244AD5E07A18737E4924A1874BAF789 + F97FE1C8395B018821003A32296A3018B062E922628A02F0783CF4EAE98DD5D1 + 1FC0432472F85C779252713506F5EDC36E2B94A4EEF8700DB40633515C4BA3BF + C9D3DB2FE258C2F6C2CE01E8C41B2365A525F87475347CFD82D8B5BF90E0407C + B462093C3D9C03A1BC4A82010F05A0B65689959F6C80B4B69E8D35B5D29B18F9 + C453A8A892285506CD98B4BD71173B0CA0B36F8C6465FC829D3BBE230551187B + 6702037A61F9E27908EA13D0EEEFEE1A2EC90195D532626A6A7CBC7E131A543A + 76F1545A23C6874BE6232222023B7E4CC095FC428BE466F92BFFCA483CD42100 + CE786324E5C861ECDFBB07BD03429A567F4D06CC7C630A268E1DC5DEB18EE406 + 93C98CF80347B02FE1105C5C85EC3EB9B40A514BE7E3C5D1CF42ADD113281A16 + C2AFF9858CE446F92BE733137F761840A7346F218D32316ACBAFC0DBB737DCDC + 4450ABEB11E4EF8789135EC2D02111246737174B4C3B488C06232E5CFA15070F + A740AEA88350E4C54EBDD3A9AF659173F1C2A8A721747725E9D0D40C61F70164 + 67E79A2E9FCF182AA92ABD62370067CBF067C63E0E2EEF9F42A1673FBA3C4E17 + 4AF55A0DA914797862C4EF0988C1E81B16027FBF5EF0EEE1C9FEA6AEBE113512 + 294ACB2B71E1723ECE9CBFC0767FB4D4A642BB4EB3C9641C36628460E1DFDF22 + F1C59D05701B42516915367EFB0FDCBC2146E1AFFF929B8CC6D1ED41E8F26770 + 860D1B26E40803A2C06596883C7AB8D2995B1E5F40EEAC8E345046EB0312D66E + 886D9F9B1E90A0951D7D82C468D4A391D4F8E4CEAB390CD67AF70E4910898427 + 06F6EF1BF8F6B44956083433AC5ABF153DBCBCC0E7F3F0CBB124C82455ED42E8 + B61726068F1CE3EFE6E2B680809849940A6CFF11191351DA70EB1119359D70AD + 2025F7F73AA3794BFED954053DEEA5C9EF3CECC277BD3E387C209F4250A955F8 + 3A6E17BC48C619FFE268486472E4155C23108EB010188BE92F372B4ACEDC3300 + 2D843BF4B9097FE031CC4B64F811E40AFA939B1F466F3CFD926C5BC87605090B + D72D604E71182623E764CAE9B64E34E2D9094FF90785650D1CD09F2795D542AF + D76140BF10927E831114144420D492AC40201C4FA26B872A0261EC7F42B88FDE + 1879BEC9041C5CDDA5107AF8F44A3718F46E6EAE7C56F9E0E0201640F06D08AC + 25B40DE181786324E0A1871EE2715C4F10B70AEDD7FFD1260844F9A0E06608D4 + 1D328E2743522DB681F0C0BC31D2A74FDF508EABE0A49B9B30B4DF8070AB1B04 + B780907FF53A32D353E9F29915C203F5C6882D844789F221ACF2C1B74048650A + E4B1108E5A213C706F8CD84020EE101C42DDA1D925647202A1A019C203F9C648 + DB109A2C81BA858C3453D41D32D28EE2DFF9312B5EA7E309A90000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Find_22_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E194944415478DA + ED9B095C54D51EC77FCCCA9E2022022E690F2D25B7C8F2F92A97349FF52A97D4 + 32737F995BB8959AA29596962BA268FAD2CC5414CB101001117049C1D4144204 + 15649D19189619669FFBFEF7A22313843330889FECFFF9CC67EECC9C39E79EEF + FDAFE7DC6B871A327AE17666F3D2899056EAD0DCB262C3F738B0669A5D538F63 + 36000B209800C81E69009F1000C5230C601301287994016C5C3201A54A7D73CF + BFF90034F7C46BCA0307F028CADF009AFB049A5BFE0650F3C3DC6D090FC409D2 + 20117985D2910797BFA57DE800AC9DF652930E683032D819730519B74B1F0A08 + 7502686A35D8139706ADDE88F4DC92488230BC3921D409C0D8C4047E3A7D1D0A + B5167A0383AB39B248792146EE5ADE5FFDD00030343181F88B3950A874260869 + 39B2536A3D866E99D15FF15000D0199A16C0F96B0550B2001E02087502D0EA9B + 16C0EFB9326EE2661048EBD26E959C51EB99210F12429D0034E4A058991772CC + E603AE9DF10AF2A415A689D784003B3B5CCE963E5008660002B7C633EBDE1F00 + B5CED8A483962B5434615D9D1058DDBB9C2549552A9543B7CF7F4DF640017CB8 + 258E593F7D20AAB44D0BC06834D0A4B5F542B894557465C3F4414F3F50007342 + 62990D1F0C8252530DE0A350DB9BC0EAF75F41DCD9CB38147512254579505594 + 42AB5642A7AEE24E4768EF00B1830BEC9D1F8334273310065D5CEA99E3571F08 + 80D9C131CCC69983A1D0186C3E904AADC69188284445C7A2482283BD8313C434 + 59A1500C1E9F0F3E5FC0B53318F430E875D0E974D01014B54A419FF557192376 + AA4A953BD2D24EDAD437980198B5E918B371D61054AA6D07C06034E2F0E19FB1 + E78703004F00175777088422E8B41AE8755A6EC2AC4930C66AADB3E3F1C0E311 + 1081806B2722405AAD1A95E572A8941572866196A526AB4281933659B6320330 + 736314B369F65054A8AA012CD91ED3A8CE559572649DA73EF45AB470F7E46C5B + A35272573CE0C5C1706DD99AB24E1E17760D4C75E8E55324100B0902A34799AC + 18E712A22938F048631C419387BCA488B442759ED11BDFBE70263ADBA60066AC + 8F6482E7FC1BE5AAC6C33D75FA2CD6ACDD084717774EDDAB9415F0F4F4C2C831 + 63F074978E108B857F7E2235A4A854814BE95938117D14D2A202383AB940A928 + 875C2E5192DA8C4A4D8C8EB619800FD64530C11FBE8AF2AAC601888D4FC0864D + 5BE0D1DA97AEB09114408D77264C41BF3E3D21E0F3B841057C7278F4E2F3E865 + 677E26AC35B08911FB62B35203BDF26515387C341E9792A3E0E0E44ADA6084A4 + 284FC73086C9A989517B6C02E0FDB53F332181AF417E0740D08EE35677589A9F + 8D9B174EC0D3BB1D741A353CBCBCD1EDF997A1D431DC6022811DEC5915AF3132 + 534FE239F1D5004ACC18682837D97EE41774F070C08F7B77D29FEC383F515490 + A3331A8C6F5E488E8C6C3C80AF8E3021F3FED3E065F19C9C5CCC095C00F756DE + D093276FDFA913A64F9B0A176707EE4A3B89799C8D374458171972E82CFAF4F6 + 4745991C7BB7AD8746A32187C983A4F076A541ABEBF5EBD998AC460198B6E647 + 66CBBC370880F51B236CD89A393B10551A060281102D5BB6C4DC7981707676E4 + 549D9D7C63D7DF76479EC7E07E3D912FD77210766D5ECD39488D5A85B2D2E294 + 94C4AABED64607B3739ABAFA30B365FE9BA69DA1CFBE8DB5B8A382CC5F51722B + 0D6EE4D9D5E4E9078E9C048D81C7A9BCB3987FA7D5FD8BAC3F9AC3E8413D4CC7 + 7B8FA560C2B0679147005808B76F6661DF371BE1D2A22539C8DB2C8899A94951 + 210D0630E58B43CCD68523ACDE1C5528149834651ADC3D7C386FFFF6C4A9783E + A027A7F62EF67C3450EB6BC9FE98148C1BFA2C07325BAA819C4C3521EA47FCFA + 4B3244620714E7DF2CAD2AA96A6F4DB264766A93571DAC0660E5DEE081036194 + E51DA324C70D2DDCDCB070D1C79CB7777568B8CDD72561C72F60CC9067B86336 + 6FC82854530DA141E89A65E40B84942314A34AA5987D213132B8410026AD0C63 + 423F1A69BA3F60D5EE388B3AB974EC3BB8B7F484BA4A814123DE052372254F6F + 0747F2F67F2696AE38BCD6AFABE9383CFE578C18D8CBF4994DD8724A34F82531 + 16A7E38F51E62884B430373D2529AAAB85DD9B0398F8D97E26F4E3B720B1C204 + AE5FBF8E4F962CE3C21E6BFBABBE5A0B2185A7C71CF936DF7438927011AFF7EF + 69F65D9644838A4A05367DFE31976617E6DDA0CC52D7F5627274BAD500267CBA + 8F095D341A920ACB0184878723E26834657BCE08E8DB0FC387BFC9797D6731CF + E23E2C9588C44B18F6420FB3EFD890CD6AECFE1DC190161751CD504A3EA96CFE + 85A4E8B55603786FC55E2674F1580250BD4ABD664FFC7D3BB8763A02229A2B1B + F707BE310E42A7167024AF2FE257776D91AAD793090D0CF0331D47265DC6907E + DDCD7E6733C55C3283F3C9F13815174DE351BD202D0C2333186D3580F141DF33 + A14BC6A2D80A0D98317D3A04A2EAFC7CEEE220B4F16ACD797E9EED150031A77E + C3C0E7FD6B7D9F5BAAC58DCC0C1CDCB5952BB12585B9975212237B5AD2A71980 + 77977D4700DEB10AC0985123E1D3DE8F1211093E5DBD1E4ECE4E70B1A1FAD70C + 22B167AEA07F9F6EB5DA482AF590C94AB0F9CBA570A64854989B25210D686D35 + 80714B7733DB3E1987A2F26A00EB7EA8DF04D8F234E5A7AD68FB7817C8654518 + 357D119D30657DA2BA01307F3008BB3ADB984B5FFF8EA6E3847357F142406D07 + 5F566540695939BE0A5A0857370FE4E76419539322F9B040CCCEE19D25BB986D + 4BDF250096ED54B1E9EFF8716FC397D5008AC1EB42B693EAB3151EEE55793694 + A49474F47BE6291328763F815D4B608B25456505BE58BA800350909B0532018B + 46376BF4F6E2FF31DB96BD87420B0170D0DE1A59AD010460E5D764028E8EF73A + 276D60AB3ED61FF0E8B8B13C4EA5FE8E801E5D6030564FDE58C37996C94BB17A + C592C699C0D8453B09C00413804DFB4FDCB783CB317BE0EEEE494EB00C63A6CE + A65ADDE54F9DBADD1D0877ED9A7DFF332877FBE8EEE7CB5D6DF6F3D98B19E8ED + EF5767FB1B59D7111ABCF1AE13BC4A1AE00F0BC46CFC311F7DC36C0B9A689506 + 7CB9F23348A4726E7D6FFCE4A9E8D9A3FBFDFFD44055387F2913BD9FFE479DBF + 25C4C5222AE2E89D3058743825297284D500D8BBC442974F426199E5000E1DD8 + 87930927B965AF679EED833163EB0FBF8D31830B57B3D0BBDB1375FE1612BC09 + 376FE64251216F7822C401089A64D28090B084FB7650595288ACB351F06CD38E + B4408D29B31780C7AF11052CC884EA6BD2A58397E9F8527A367A75ED54AB8D5A + AD46E09C0FE1E4E286224A850D1AB5BFA57B09B5006C2500964601EEE4C938E7 + 7C300D0ECEEE5C313469CA140404F4B6F8FFD6C8956B37D1E3C9C76B7D1F1F17 + 8F0361E1100A45540CDDCE24F5EF6C699FB5006C5936891221EB6ED8F8F15018 + 628FC7721EB8A59B2B828296724B5596D77C96495A662EBA77696FF61D1B8A03 + E72E84117CC82919532B2B175104F8B21100269A32414B4C803B098D8A8B065E + DE1DB89478F85BA3E1FF746D67C834C01E1EF7F1301D6764E7C1DFAFADD9EF61 + 070F2322EA38E7FD8BF26F295432659B062F88B00042088035D5E05D090FDB4F + 5A701C6E1412D92DAD55AB96C3CBD3D3A625F1F55BF9E8FA84AFE97376F64D2C + 59BE0A8ECE2D202BBE0DAD5ABD80D4FF6B6BFAAC05A0A10F4C68B55A2C9AFF21 + A9A2107C3E1F1EEE2DB07CD9C7707672B219801BB98578B2A337775C2A2FC382 + C52BA0D21A68E22AD6FBEB5D5A78FA1F0FDF9ED12C0058B979231B2B972F434B + 4F1F6EEFAFAD6F1B7CB2681E5C9C6D03E1565E313A535428299163E9676B2029 + 29E77C4D89A4007D9EEB8B9CBC62B9425B35306E7FE8C5060368EC1323490927 + B06BE737F0F46ECF5D99365E1EF868EE4CF8787BD5FBBFFB7A076A70BB504AAA + A6A4AA73232A146A6EF35452948BC5F366C1DFDF1F3BBF0FC795B40C6371C1AD + E1E712228E340C800D9E18893EFA330EEEDF87565E6DAB777FF55A4C1C3F16AF + 0EE9CF5DB186C406BDDE80B0C3477120FC0844E2EA7A4326C9C392F9B3F0F280 + 17A0ACD210942A0EC26F69194C71FEADE1E74F46FC6435005B3D31929C9880DD + 3B77706BF6F6F64E502ACBD1CEA70D46BC310CFF7AFE198844228BFA51AB3538 + 753615FB0F1D41B1B4048E4EAEDCD23BBBF4B530700606F5EF074707318543FD + 3D087B0F2325E582FEF2F9845EC57937AE5805C0964F8CDCC8CEC2D6E00DA8AC + 5472DBE3EC46A9465505B14880BECF05A0BBFF5368EFEB8356ADDCF198AB33F7 + 9FF20A05241219726E17E0F295749AFC39AEF263536D56D8AAD3A0D7EB7A0704 + 08E7FC7702B7EDC602B80BE1FA8D3C7CB5F95B14E4E722E3B77332BD4E37A03E + 084DFEC4087BF343597E26CA0BB3A85274E6566EF90221394935A5CE3AD30D12 + A6F28F2DA1EFDC20C16676EC1D243A9D069594E3D39557DA31F8BC45ABB6E14E + 4E8E895DFC3AB699FCCE081304363204ADDE4A305D2110F071E27824A4C579F5 + 427860B7CB77EB33B0B5BDC87E3678CC449A549BFA6F91D1D3A4B5776E9151B2 + 0BAE399472EF50EB0C5BD2CEC694B2ED068F9AF2B84820CEECD6B58B8085A050 + 2AB03E740F5C29E20C7D7900998B0C57D3AF1184A31C04C6A87FBD2027FB4CB3 + 01A821BC5E2F0EFB279F6106D3F00174067E74F1DBB3179EFD918E8D749C439E + 32D308E6941DC324A426479FAEABA3801786F56DEDD33EA94B673FBE84FC8346 + A346E74E6D29FCFAC2C7C787F31957D208426C24BB77A8200843FE08E1217A60 + E2A56A15B072779785F0989B47BC56ABB1B7170BB8C9FB925F6101F8DE85C069 + 42DD101E22000D17AF0E1D3AF0EDC4896456ED3AF93D550D8126EFE37B0F026B + 0E09B151282ECC3583F0977962C4DBBB633B3BB130D9DEDEB15DA7CE5D4D66E0 + 5B0342DAEF9938191FC36E9F9920FCA59E183187F0144DBE2D3779DF3B2024D2 + 525CE5201C3341F8CB3D31620681CCC1B72D6B0EF74C422A2308E9F720FC259F + 18A91B42B526B06621A5628A358784B863F83F4D6DF64FA316E8A10000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Find_23_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000E0D4944415478DA + ED9B095854E51AC7FFB331C31A22A06C6AEA7543344D6E5E6F9B9669CBED9699 + 669AE692A9B86496A6E66E96E68E0B96DEEC9657C5701F440411304D814C0564 + 57866D189601663BB39EFB9D333632318FCCE0A03ED9FB3C0367CE7CE7FBCEFB + 3BEFFB7EEFB71C0E1AC9E8F9DFD0DB974E84AC41CF7EDF1E9D84FB2911A3065B + 8E576CFE1107D74DE5B4769B560D3000B62D99882A85FEBE2A6E4BFE02F0A000 + 441200D58F3480CF0900E5230C602B0150F32803D8B2F87DD4AA0C0F5AFF0707 + E0412BDE58EE3B804751FE02F0A06FE041CB5F001A7FF97857D27D0982A49113 + A51555230F2D1FA57BE8006C98FA7CAB366834D1D873FA3A724A6A1F0A083601 + B4B619FC9090059DC1846C498D984018F12021D804606A6502477FCE8792D2C1 + 60A491595C2D965760E4DEE583A9870680B19509245E298652A3B740C82AAE3E + 4F19F0F28E88C1CA870280DED8BA002EE79643C500780820D804A033B42E801B + 926A56712B08C4EAB26ED55CA00CF4B0FB09C126002D09508CCCDB1EE7F40637 + 440C4769558345F1C610C0E1E06A61D57D85600560EECE447AE3B421A0F4A656 + 6DF45A761E7E49BB829CDC3C949797A3A18100512888FE1C88DCDC019E504DA9 + EAE34D7A43328CFA84F40BF199F705C0473B12E84DD35F805AE77C001A8AC2D1 + E3B110C7C5435A590D91AB3B84225708044270793CF0787CB69CD16880D1A087 + 5EAF87965283D228C97743266DC21E4DAD6A7756D639A75A86158039DBCFD09B + 67BC0895D60C6041D4BDBB004DD390165C45794E3A5158044F2F1FF0052ED0EB + B430E875ACC2269311B4C9DC2687CB05974B80F0F96C39170248A7A3A0A89743 + A36A9093FA96A6A76AA280734E99B4B002303BF234BD65E64B506A8D4EA12B29 + 29C58AD56B2195D5C2DBC79F4DB0B41A15519283C14387A357AF9E68E7EB036F + 2F77F0F93C02C388F4BC0A486B14E09AF4905795E3428298DC2497588C1B0B53 + 5E232556A1B94C1B4CEF665C3855E85400B3B6C6D15B660D8382BA7700A9E72F + 62EDFACD70F3F461CD5DAD6A80BF7F0046BDFB0EFAF4EC02A1806F7D23B7EF84 + E80889AC01BFDC2803A533404060F18D14D292E321AB28819BBB2754CA7AC8E5 + 3215319BB7D3934F9D721A80995B62E9ADB35F4683C60C60F137A75B5469B524 + 17C5BFA5C0AF7D30C92A4DACA9BFF0FA3B50D1424B96C96714E399FF73C9A7F1 + 8D308918938A98C8936FD7D6DB422637EB1AAE248BE1EAEE45BE9A209396EA69 + DA38393D39F607A70088D824A623E7BC827A4DCBDD2BE5FC057CB56E13FC023A + 40AFA5E0EBEF8788993311E8EFC3B626E49348CFE75A9E787352ABA070A3A416 + 2A92255DCB2F43888F1047F6ED2140386C9C909617EB4D46D39B19A962F13D03 + 98B1F1041DF9D16BA857B70CC0AD6209667FF429DAF805C2402279A72E5D31E3 + C329F0F470058F68EC2EE482C7757C0AC248E2A354AE44CCB94CFCBD5F6F34D4 + C9B16FD72668B55A623D5CC63514469DBEFFAF174F17DC1380691B8ED3DBE7FE + 0BF2DB0096ED8EB7BB222692679E3D0837911B096802B4F56F879E0387824929 + F83C2E3C88F2B6546F2EE77C6F787FCBF15E711A860EEA8B32B98E85B077DB5A + 62495CD25D6A50575B999696AC1EE468EF600DE0EB63F4F679AFB7685A3CFA50 + 0C0EFE74146DDAB603A55660F18A95C4EC7D21E07188F23C87EBB325FBE2D231 + FE9501282500180825370BB0FFDB2DF0F46E8B2A69090362667A4AECF6160398 + BAEE08BD63DE1B0480630B234AA51213264D858F6F101BEDC74EFA0083C2FBB1 + E6EEE9CA73DABCDBFEF80C8C1D36008CDD14566921270F2A29F6087EFD25152E + 42575496DDAC55D7A83B3A922C59DDDB076B0FD33B3E79D3B232B4EABB337655 + 5246929CBAD23C92E4B481B7AF2F42FFF92A6BDA8F11E51D7179DA863F8C783E + CC721C7DE6578C1E6A760923299C534191B1841651EB9692582020394225D41A + E5EC8C6471648B004CF9F2277AE7FCB71C5E1C9D3CE50392BE7B11D35762E2B4 + 083C11160A91800B578173E75C63CE5EC18821FD2CDF99EEBAB8468B5F92CFE0 + E7C43892390A505521C94E4B890D6D1180C96B0E990138B036989F9F8F850B97 + C23FB003C9D054F872FD0692BEF2D9A76F6F5767AF1C4DBA8AD79FEB6B75AE40 + A645834289ADAB3F63D3EC8AD222329CD7875E493D95ED3080495F44D3510B46 + 5AF607ACF93EA1D90ACA7333505F964FB23D0FF47DEA69B4EDD8930D7CEE770B + 7CCD847EBA5181E1037B588E4FA45CC32B4FF7B12ACB046CE67E0FEC8E4455A5 + 948C196A494CAAFB2423E5D40687014C5C75808EFA6C14640EB8C04A12EDCBA4 + 356CBF3F7ECA0C84F5EE0137171E5CF8CE5F7210A75EC34B83C2ACCE31B35712 + E206975313713EE1140B4F5E55114DDC60B4C300DE5FB99F8E5A38DAB247C81E + 99366D1AF82EE6FC7CDEA2E50808F087A788097ECE0770FAC2750C79AAA97B4B + 6A7528CACBC1A1BD3BD921B6AC42F25B5AB2B89F3D755ADDE58415FBE8A84563 + 0800F32CF5BA1F129BADE0F2919D08EED48D242232BC39791E38645CEF29E29A + 7FB46366ADB922CFF6EB62394EB89889E7C29B0290290CA8AEAEC1B6AF96C083 + F44415920219B180760E0318BFEC473A6AF11854DA6901CCF074F4C8910879BC + 07E4D5526CDCF10D3BB07173E1DA75BDA3369274291BCF0CE8D9E47C9DDA88DA + BA7A7CBD6C3EBCDAF8A2ACB8C0949E22B62BFBB2BA87F796FE9700186B370066 + D666DCBB6310DC915800E98337310088E9F3481024D92F9BFF3B5352D2B3F1CF + FE66008CE530B3C9CC04AE967C948A067CB9E4531640B9A4800C9FC576356E55 + 68DC92EFE95D9F8F83B4DE0C60E3FFEC71811D660B2000C645CC07972768543B + 874D84080F76BEAFB9A4C8562214DEABA3E53835230703FA746307478CF2A646 + 17D4C96BB176C5E27B7381B18BF7D2BB96BC4700D8BF52353B623AF824095229 + EBB0E0F365080C0CB86B631CCEED0FD83FE6737F04D1080813D5593DC9E7C295 + 5CF40FFB9BCDBA8B0AF21115B9E5F72098492C200C768855DBEF2EFA0FBD6BE9 + 04543800E0CB552B51592567273D264C9E8A7EFDFAD87DADA372F95A3EFAF7EE + 6AF3B7A48433883D71F27637283D9C96227ECB61006316EE2100DEB700D87AE0 + 6CB31594665F82427A939DF67A62C0403C39E8997B56B4B12BF4EE126839CEC8 + 2C40FFD02E36AFD91EB915376F4AA06C90B73C117A67C1B7F4AE65131DB280BC + DC1C7CB57A35FC033AC0A0D360EDFAAF217011D87DBD23F25B5611FA85766E72 + 9EA228CC9DF311DC3DDB404A5261A3960AB3772DA1C92EB1A8E5935051673F00 + A62B9C33632A5C3D7CD8C1D0A42953101EFE64AB00B89E7B134FF47CBCC9F9C4 + 84441C8C8E8140E04206432579C4FCBBDB5B675300CB26592CC0DEDDE2A5372E + 93F140011B81DBFA78633C8905E030B940F39910DD4C91AE217E96E3AC3C09FA + F6E868F53BD315CFFD783E4CE0414E92314AA558487A80AF5A0C602701E0482F + C008B3B4F5F1ACE9F06BD7814D89C7BD37162F0C7ED6A13AEC919CC25284750B + B13A177DE8304EC4C6B3D15F5A764BA9A95605B478428401B063E924920839BE + 612326FA00CEC4C7A38D8F3FBBA4B566CD72B4F7F777EA2EACFC5B6508ED1A6C + F95E5878138B97AF819B8737AA2B4BA0A3A84F89F9AF77A44E1B00265A324147 + 5E9830190DB89EB01FEEEE9E2413E4C1B76D1B4C9F311D229188FDDDAE05771B + FE10DCCEC7725C24A940CFCEE65EA1565E874F17AD804667248A6B98E86FF0F4 + F60F8B8FF926E79E00347E63C451B95954882F962F455BFF2076ED2F2438009F + 2F9C074F0FF716D5F747B9555A89EE9DDAA3A6468E25ABD6415653CF4E8BD7C8 + CAF1D4C041282EAD942B75EA17120E445D6931807B7D612225E92CF6EEF916FE + 811DD92713D0DE170B3E9E89A0C0F677BDAE590B21054A2AAA009D0A2BD76E41 + 839262174F65520916CD9B85B0B030ECF93106D7B3724C95E5B7465C4A3A71EC + 810060E4D4C9E33874603FFCDA8798577F0D3A4C1C3F06AF0D1BCC3EB196EC3F + 31188C883E7C1207638EC145E8C69EAB969562F127B33074C8B350A9B5048A9A + 85702D2B87AE2CBB35E2F2B913471D06E0AC3746529393F0FD9EDDEC9CBD48E4 + 0E95AA1E1D8202F0D61BAFE2997F0C808B8B8B5DF5509416E72FA6E3C04FC748 + CA5D0337772F76EA9D99FA9A3F37022F0E7E1A6EAE42D21D1AEE40D877186969 + 1986AB9793FA5796165D770C8013DF18292A2CC0CEC8CD502854ECF238B350AA + D5A82174E163D0C070F40DEB858EC141F0F3F3C1635E1EEC35F50D4AC864D528 + 2E29C7D5EBD944F94BECC88F49B51961469D468341FF6478B860CE87EFB3CB6E + 0C80DF21E41795E2EB6DDFA1BC4C829C6B97AA0D7AFD90BB4168F53746743A1D + 8E1F89419CF80404425776E696C717902049910194DEB241C2D20330C3E6DB1B + 2498CC8ED941A2D76BA120393E79F22A0E8DD5DE7E2131EEEE6EC93DBA750E98 + 3CF62D0B04A66758B6762781E9C5EE37381B2F465565E95D21DCB737461AEAEB + 111F178BD4734950AA54CD6C913110A575B7B7C8A89809D7629272EFA6F4C61D + 59174FD732E55E7A7BCAE32E7C615EEFD01E7C068252A5C4A6A81FE0457A9C97 + 870E21EE528DCCEC5C02E1240B813619FE5D5E5C78A159004ED7BC89D0A014B5 + 50D7CBA055D6414F2961D0AAAD4AF0499013883CA0AAAB5CC2A1E9A4F4D4533F + DBAA29FCD95707B50BEA98D2A37B379E8CC407AD9642F72E21A4FB0D46505010 + 1B33AE67110867C4CCDAA1924018F647080FD176F9E76F6F19716C759781F058 + 1BDF449D4E2B1209F9ACF2C124AE3000827F87C05A826D080F1180964BFB4E9D + 3AF138C264E2561DBA74EB658640940F0ABE03817187A433B1A8AC905841F853 + 00602430B073078E50902A12B975E8D23DD4E206C18D2064DDC8C3B9C4D3CCF2 + 9905C29F06405308BD88F221ACF2C1B741C8AA6A91C94288B340F8D3BD316205 + 81B8437008E30E775CA2AA9A40C8BE03E14FF9C6886D08664B60DCA28A0CA618 + 77484A88C3FF01D8B2C04FB1E2FC9A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_24_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000DF74944415478DA + ED9B095854E51AC7FFC32CECC80EB29A961A46A6658B954F6AD6F556F79A98A5 + 66A9A5E59699662EA198A6A9990B2E687AD36BE582B821A02CB2A999E2820281 + 6C322CC30C0303C30CB3CFB9DF39830373416058C4477B9587993367BE8FF777 + DEF5FBCE61A191BCBF6837B563F93408A56A74B7ACDCFC2B0EAF9FC1EAEA794C + 263000984A0068BA5BFFEE03B09D0010D503D87E24F1BE2A3D7BFCF0EE07B02D + 782A2A6A1F610B78E401841200E2471AC0B70480EC1106B09500A87C94016C59 + 360555726D77EBDF7D00BA5BF1C672DF013C8AF23780EEFE03BA5BFE06D0F8CD + 57BB12EF4B1024934496082AC685878CEFF6B6B309808D335EEBD209757A0A7B + CFDE427671D50301A159005D6D0607E233A1D6EA91C5AF8C2210C67627846601 + E8BB98C0890BB99029D5D0EA28641489A324028CDB17325CF9C000D075318184 + EB4590293446089945E2F34A2D46EF983D5CF64000D0E8BA16C0E59C32C86900 + 0F00846601A8B55D0B20FE8F745CBF918EFCBC3C088542C86AA550C8EFEACD12 + 511455C202954B51AC4BD069E2D32EC666DC57002A12A06859B0FD4CA74DA4D3 + 6A202A207AD414412014C3CADA169656D6E0722D61C16683CDE618CED3699973 + 351A0D54CA3A281532F25E9B41E9B1575125DF939999D4A916620260FECE04EA + A7CF4740A9D1779EE27A3DC2234E62DFAF87010B0EEC1D9CC1E1F2A051ABA0D5 + A81985F57A1D28BD614E9685052C2C08100E87398F4700A9D54AD4D648889548 + 25C43A96A7A52AC280A44E69594D007CB9239EDA347324EAD49D03A0885F8290 + D5EB502EAA84A3B33B935E550A39519285116F8C464040003C5C1DE1E460073B + 6B0E142A2DEA541AD4CA9490D44891939B8FE85311605116C4626C409487A4B2 + 9C5885E232A5D54FBC7A3126BF5301CCDB1E476D9EF53AE42A03806FC2DAEF02 + 55650528BC7A0E3D9C5C1973AF934BE1E1E58B412F8F44AD9A45026D03E4B941 + 4351585E8D945B7C064263E17158B061A9712D351EE5A5C5B0B1B5875C560389 + 44242766F35E5A724C4CA701F822F42CB565CE1B90A9741DA27A36EE1C366EDE + 01570F1F5253E8A125263CF9931918F6C2407088BFB3C8AC1C62051C36F9B120 + 9E415ED37F8852ADC3F98C62E49755434B52319D1D34744A26FFD9E41C09817A + 3DE934AC6D1D8835E8212A2FD15094EE93B4E4E8039D0260EED633D496B96FA2 + 56D97E0029A917B066DD26B8F5F48346A5849B873B66CF9D036F7767E315B5E2 + 123F6FA10D2B164991765B4080680D6EA3A198C05C2B53C0C79183E3BFED2550 + 584C9C282F2BD2E875FA77AFA646457518C09C2DD1D4D62F4643AA300058B6FB + AC598329A455C84C8A80BBA70FB42492F77AA23F7C07BC0035B9926C72D96D2D + 69C5DBD28012B5C9797476F0263182163D39769B2FC6734F3F0969B504BFEDDA + 04954A45ACC702224171AD4EAD197CED8FB3791D02307B5314153AEF9FA85198 + 1F60E9B4F5F9ECF94CFCE070B8707175C1D70BBF82BD9D3563EA7696EC76F5DE + 1212108B8435D0100BC82C1060E48B4FA154A26620ECDBB68E70B220E95281EA + 2AE1952BC97543CDCD0E267FD3AC9F22A9D02FDF464D9DF9000E8747E060F809 + 38B9784059578BE095ABE0E5EE022EC7A07C47444FE280A8A60EF1977330F91F + 83514200D0108A0BF370F0E72DB07774414579310D624E5A4AF4F67603F87CE3 + 296AFBFC7720A907B0624F6C9B06D1929C9E1E7B001E9E7E4CB41F396612743C + 7BC6ECEDAD0D41AF5969A5E0A4C8BF0F463E637CFF7BDC354C1C3598F924BF42 + 05895C8BC4E8E3B87629153C4B6B084B0BABEA2AEBFCCD29964C016C38496D5F + F02FB397C57F3F7818C74FC59022C7094ECECE58BC7431317B0BF420CA5B74E2 + 9AD391F81B78AF1E888ED404D90225E92954085BBF9CC4022EA91184A853C8BE + B89A1C15DA2E0033D61FA7762C18430098B7313265DA74B02D1D88E9CB306DE6 + 1C0C0A0C6022BD35AF7357DC8E9E4BC7BBAF0D34BEA7837551A50A9792E37021 + E10CA91CB9A810F0B3AEA4440F681780E9EB8E513B16BE6BDC195AF54B5CAB03 + C82422E45E8884BB971F89CA0A8C786F0673BC07A9EC8CA64FB5DE5CDDEB8CB7 + 5F0E30BE3E91948E77863D6DF2799E480569AD0C5B572F66CA6C41490169E634 + 03AEA7C664990DE0D3B547A99D8B82CCDA1C0D0F3F8A139131A4DAB3C3F3AFBC + 8A7163C7804BCC9F4E79ED957BD9CDA9949B18FD72A0C931DA5DE9DDEC437B42 + 51212C273D431564B2EA85575362369A3DD7276BC20D00CCD81B5C11F21D4A05 + 954CDEFF78FA2C043ED51FB63C3613FD3B4BEE8E743A3503A35E32B56E7AED82 + 4FDCE0726A02CEC7C730815352213842DCE07DB3014CFBFE0815F6CD38E3FD01 + 6BF6C7B73A40FAD90370268D0E5D9FBF356916583C2BD85BB5B5E0695EA8462E + 33F2B9BEC6D7672E6660F8F3014DCEE757A951703B1BE1FB76322DB648C0BF71 + 25396A90D900A6AE3A44852D1E0F91192E10343608DEFE7D492122C2EA0D9B60 + 676BCB006866F80E4BFCA54C0C7BEEC926C745B55A88C595D8F64330EC482612 + F0F344C4023CCC0630E5BB8354D892F78DF708B526F4951A171404DFC7FA4322 + 2EC7A69DBB992B6FCB6BBFFFB7248957FEC22B83FB37395E5DA74355750D36AC + 580407D27D9616E5E9D352A2DA547D9900F878E56F54D8D209048061957AFD81 + 8416BF4C2F64A49DDA0D1FDA02480E9E3867193324874C4DE77F76478B00E209 + 2F05F632BE4D4ECBC6D041FDEE7EC4748BF4F29D8AFCD0CB6A6B83BF660094F1 + F3405CA04D939B9CF4D18A5FA9B06513CCBA4D6EFC5D0B2000D66EDC045BE202 + 8D07A72DC2C2C200A423718196D4AB397836F009D04B09B4F2FA46B1A25A5285 + 752B9775CC05262FFF2F0130C92C007366CE04C7925EA4A8C6E2E010787979B6 + 30198BA90DE8491916AC96A304AD1F65580E607E5FBC9183C1031E6FF6DC82BC + 5C84856EB91B0433880504A20D6232FF87C1FBA95DDF7E88F21A03809F7E4F68 + 7580ECF3A76049BA3D7A7DEF9DF193E1D6D3C7CC591B946D4E9EE9DB30DEE59B + B91834A04FB3E725C6C7213AF2747D1A2C3F7625252AC86C009396EDA376054F + 2600DABE5375F8E0EF483897C42C7B0D79E1454C9CD8A6F4DB2EB99A918F4101 + BD9BFD6C7BE8561416F221934ADA5F084D5CFA1F6AD7F28F213003404E7636D6 + AE5A05F79E7EA42B5460DDC61FC1E372BA04C08DAC423C13F05893E34AA512F3 + E77D095B7B2794935258A75206B6752FC104C084257B09802946005B0F9D6B75 + 003A15DE88D90F17374FA6190A9A3019FEBDFBDC7BB6565B6053E9E7DF10CB6E + E5DCC1C0FEBD9A7C27213E01878F4480CBE59166A8F83631FF7E6D856A02E083 + 6F7EA676AD986A9605D0722CFC086263E39808ECE2E4809015C1CC5215D5C9FB + CC59B97C3CDDCFDFE418BD1235FFAB45D0830D0929C694F2DA252403FCD02E00 + F45D626121D320A8360F80542AC5577367C2CDC38F29893F9C3C0923870FEB54 + E569C9CE2F41605F5F936347C28F21323A9689FEE5A577640AB1BC67BB174418 + 002BA6192DC09CBBC54BB22E4352920327D217A8495B3C6FC102383A3AB69CE6 + DAE00FFE3D5D8C6F73EF9462C0E30D59213FBF10CB42D6C0C6CE11626131D44A + E5D7C4FC7F34076A13003B090073B2C05D51ABD558B2F04B628A5CB0D96CB83A + 3B2264F962A637E82C29E00BF0646F2FE67595A41A5F2F5D09855A471457D0D1 + 5F6BEFE81E181BB13BBB43003AF2C44861413EBE0F590E17776F66EFCFD7A727 + BE5DB200F6769D03E14E8910FD7A79A2B25282E055EB21AAAC61624DA5A80C2F + BC3814452542894C5D3732FE50D8F50E00687862A43D0F4C54DCF90BFC9BA970 + F7F267AE8CA7A73B3E9B3E15AEAECE2D7EEF5E8590A76B8FFA13806241053135 + 39BE5BB705529992D93C1595F3B174C15C04060662EFAF11B89599AD1796DD19 + FB6762E4C9760168FCC4487B25E6F429841F3A08374F5FC3EEAF568DA91F4DC0 + DB6F0EAFCF0EE68B56ABC39163A77138E224789636CC31B1A804CB16CEC5A811 + C320AF531128750C849B99D994B0F4CED8CB499127CC06D0590F4CA4262762FF + DE3DCC9ABD95952DE4F21AF879F744D098B7F0EA4BCF81C7E3B5691CA55285F3 + 7FA4E1D0D193105654C2C6D681597AA797BE16CD9F8DD787BF021B6B4B920EB5 + 0D107E3B862B57AE6AD32F270E169614DCEA1600B414E4E76167E866D4D6CA99 + ED717AA354A5A883258F83A12F0EC1C0C000F8FB78C3CDCD193D1CEC98EFD448 + 651089C4282A2E43FAAD2CA2FC9F4CE74797DAB4D05DA74EABD53C3B640877DE + 6753989D271AC05D08B90525D8B0ED179495F2917DF34FB156A319D112842E7F + 6284CE0EA78E47E04C5424B896D6CCCA2D9BC3254152491A288DF10609631060 + DA67C30D12746547DF41A2D1A8504B6A7C72E5E52C0AAB1DDD7C236C6D6D92FB + F7EDDDF39349414608746658B16E2781E9000E878D73B151A81096B408E1BE3D + 3122ADA941EC9968A42625422697B7728B8C9628ADAEBF45464E2FB81691927B + 8F52A3DB91F9C7D92AFABC37DEFBF4311EC7F2F65303FA73680832B90C9BC20E + C081649CD1A34610771123232B874038CD40A0F4DA7F9715E55F6C1540573F31 + 42F70EB939D9B875331D85F9F9281794412CAE302E84B28805B8BABA414632B1 + BC5A18CCA2A8C4B4D4980BCD8D3564D85B433DBCFD53FAF7EBCB1691F8A05229 + D1AF8F2F49BF3EF0F6F66662C6AD4C02212E8ADE3B9411086FFE3F8407E68911 + 7DFD3D427496A0A5AD4F8CD0107A38B926A8D52A2B2B4B0EA3BC0F892B34009F + BB10184B681EC243F1C48867AF5EBDD82CCB64E2567E7DFA06182010E5BD7D1A + 20D0EE9018170DA1806F02E1A1B95DDECBABB71FCB929B6A6565E3D7A7DF00A3 + 1BF8348290F9D76D24259CA5B7CF8C101E1A004D210410E57D19E57DEA41882A + AA90C140386384F05001680281B8838F2FED0E0D2E51212610B21A203C7400EE + 0DC16009B45B5490668A7687C4F833F81F0461B14F226CDBDA0000000049454E + 44AE426082} + end> + Left = 39 + Top = 16 + Bitmap = {} + end +end diff --git a/source/forms/Animations192.h b/source/forms/Animations192.h new file mode 100644 index 00000000..cbd000ed --- /dev/null +++ b/source/forms/Animations192.h @@ -0,0 +1,19 @@ +//--------------------------------------------------------------------------- +#ifndef Animations192H +#define Animations192H +//--------------------------------------------------------------------------- +#include +#include "PngImageList.hpp" +#include +#include +//--------------------------------------------------------------------------- +class TAnimations192Module : public TDataModule +{ +__published: + TPngImageList *AnimationImages; + +public: + __fastcall TAnimations192Module(TComponent * Owner); +}; +//--------------------------------------------------------------------------- +#endif diff --git a/source/forms/Animations96.cpp b/source/forms/Animations96.cpp new file mode 100644 index 00000000..b14c57b2 --- /dev/null +++ b/source/forms/Animations96.cpp @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- +#pragma hdrstop + +#include "Global.h" +#include "Animations96.h" +//--------------------------------------------------------------------------- +#pragma package(smart_init) +#pragma link "PngImageList" +#ifndef NO_RESOURCES +#pragma resource "*.dfm" +#endif +//--------------------------------------------------------------------------- +__fastcall TAnimations96Module::TAnimations96Module(TComponent * Owner) + : TDataModule(Owner) +{ +} +//--------------------------------------------------------------------------- diff --git a/source/forms/Animations96.dfm b/source/forms/Animations96.dfm new file mode 100644 index 00000000..dd238ed7 --- /dev/null +++ b/source/forms/Animations96.dfm @@ -0,0 +1,13994 @@ +object Animations96Module: TAnimations96Module + OldCreateOrder = False + Height = 150 + Width = 215 + object AnimationImages: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'ConnectingSecure_01_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004F74944415478DA + B5D56B4C53570007F0FFBDA52D6D91371213811A743E08023AE25C0C9B4F0499 + CFCC2538B2ECC3B2CC6CC9964D18C8E6A608D12FFB32974C5DF6FCB239290F41 + 409DEEE1B6A0955781E26383E254167965DCDE7B6BEFBD3BF796160A35DC26F5 + 24CDB9BDF7F4FC7FE7DC734E2984B024159ECDA135F4790A30AAFA8144FD4985 + 12905254BD215C6FBCB83A7B0D653219415314689A9AACE1A927EFC9E5ACA506 + 2105C825795FF52B0683F14B35882702080661A9AD7D3200E575BC6C698C8F4F + C8CB5CF5F4B4707F446D5DDD9301988B2CC78CA688E2ACD56BA0D76941F9854F + 21EAEBEB8303D4552CDC43EC15E472D9639AD8EBFE2DE8BBCAEFDAB1322B9B84 + EB26031110D1D01004A0B622F9455354EC0FE99B7621322616E2230E02CF4270 + 31107927B97662FCE110FEB2DBD1A2398AFB11DB6604CE469C6F3CA71E505F91 + D4F7CCDE379EBA676F83C3D60A4994FC9ECB9DCF5F9088E82813AEDD74E35C5C + A3DF6805C10D7B7727962E4F837761363735A807D455244B5BDF3A82E6138700 + 97CBF4C247F79CDE6729FB2C47E64568CBAB92F72373D50AB4597BF05DBCCD2F + BCABFD1A1866E25CB8DEB0CDBB3B2E3437060978F363347D7A08DBCB1D7EBF33 + 17D58C2F5A9A11F90E9E4366D632B4B7D9F14D9C4D997639BCA7D30AD63971BC + FFDB5D25D3B7E8EFBF5D090E90BBFF43347F76781620A9B07A874EAF3BF349EA + 7E6D46C6127474DCC257315D104537FA6C377CE1DEF65E04C7B36C50802DAF97 + A1E5F3CA59002FE2C48AB76B56A62F4267D7DF381961C5ED9E36702CE3173E85 + B06CA424510C0EF05A095A4E1D0B08F0B6494F4B4657B703071CA7C13F267C7A + 5105B07D91FA8128E2B0DC5C942432B5E48F8C6C02792348F2F7E9D793CFAE0E + 67FD5C5A51FDFC5C7DAB039C5ECC0E0E0BE171915A24446B61348641A3D380D6 + 6AA08F4F05456AB07741937B6109D9708F58F147D36D6EFDBBFD8690003A4F2D + 961C0F05CC8F9E0DD0C5262B35F8210F202E0314DB8B2B35766C7CAF7FCEFE55 + 01DA4FA64A7787C5C080E805CA0C508F463C8098E5A0F83BB86CB163D3811000 + CC9531C72C71B1C5FF8C040668E7C52B3525FEA7003451A9A01F0DE252B51D5B + 8A5500528E46AF9720D18E83E39702856B4DDAE2EFF5F3706FF4310053940700 + CE03884C02ED1EC2C5B3BDC82D195001A88A6574E15A03CFF2AF3ACAC6BE9E1E + AE33E98A17A625E2F82D060FC60203C20CE45CD7869163D7ED01442482164771 + E1C75E6C7D5F05C05C152BAD5E9789CEEBDD92172187EB23F4C5E674321AB2BE + 0EDB8631342E050690FF7B5A4700619407608C010D06CD677A915FAA1290B3F9 + 59302C4B1036C9C5B91A0C2643C1920C33E99486200928EB1AC21801C447CD06 + 68C84706786AF23DDC04B78BC5E5BA9B5C7E9963EE6D2803D6E7E69083442408 + 276EF7DE41EA72B3322281DC130960EDFD71AC7D30018DA0EE10221F8EF45759 + 7070F0882AC0E6BC0D0A401EAD280A4AAD5CCBF7444141F02E1E773A06C033FC + F1FEB2D192B93A565B1440DEB62D24C833DAA970C1774F0EB7B7DD0237C18534 + DC072828C89F9A0125786A06381707DBF51EB0136CC8C37D809DDBB7FBDEB777 + CABD80766B27461E8E9E1F281DCD0F75B80FB067E76EBFF7ED9B0979613213B0 + B6B64B1CCBF99D132105BCB47BAFDF1A9839138CD389EBAD3724CE197A840228 + DC53386B0D88331623E36470ADD54A0E2B76D340E9F84F2103A454C5FC4A815A + A7A631D9E24E5110F306CBC77E0915E07F8320D567A2A2752E0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'ConnectingSecure_02_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004ED4944415478DA + B5D66B4C5B550007F0FFBD7D40DB8D3E780533180BCC0C18C23424CECC1994B1 + C118226498CC18B30F6671D1C44485F1989B809B2C1A3FA84B74CECCC707C5C7 + 1866714CE68C2E9A20C81BBAF190B60C68040A42DBDBC2BDD7736F697995709B + 9403CD39DC7B38FFDF79DC9B520862A9B8DCF65C72BCF68A4C46CBA5F4B7CDBA + 2D543001659FB5BDB02731E24A646414E40A3928F2B3F80B4AAC29B1C662EAF0 + B009410508E5EC579DD5C971FA4A29884D01048218366D1240281FD4DFEDDD16 + AD4D0A8F88F485AE4698CC9B0478A7AEBB3EF101FDD342B88CA6C5447F08B3D9 + 1C18A0A1665B1140D790E6AE75BA18C7A24ECE1A929FCF30847BC2A9C5407F08 + 8B2500C0B59AB8A31AADA12E35EB1984E90DE0E619B02E2758B71D9CCB41DA0E + CC4C583164340269EF42197BD813EA5BF2B5889140003FD6C4DE7DB4F8A50747 + 8D6D30773783E7F815F7293272544C34745A0DFA2D1CD4879A964249C5F31CA6 + 6D53D0E9F4BE8339321200A0A1268E3FF44A351A3F3A03B8DD9A2367471DDE7B + B55FF7D4ED88093DAABA9389F48793D1D6DA0B4DD180881202389E876DF25F8C + 4DCCF5441BD429DEA7E3FE882540C0CB6FE1C68767905F695EF17F5F360DB9C8 + 9E2BD9EB2948DFB30BED6D46A805803873123E3581C151DBB553C5BB0B963FA2 + 56EB5860808327DF44E3C5AA3580D35F74BC9A14A77B6FCB9DC7E9B4B49DE8E8 + E887AA7080A40BCB3EE90BF7F6F722E6E7E7170202649F28C7CD8FCFAD017811 + 19E623EF3F94BA039D5DFF20A4E01EFEB391998F4DAF08F796CA2BEDC7C939E2 + 0203BC588A9B976AFD02BC7D5253E2D0D56306F3C41F185A277C799104E8BE9C + 709AE3502574170E146993BD150E97678FB9E5EDC57BE3EA9C9EE21317776F34 + B634C0A7894ECB241B1A1EA640A44E01B55A0E9952065A21434844022852C339 + 029A5C9347666061AA157FDE1860325F1B560505D0792991374FB088D2AD0528 + 0D71620D97D503084F03E5ECC3AFF5463CF5FAF086E34B02B47F92C08F4C72FE + 01BA187105A8F9290F409F04CA3588DB578DC87A230880F873FADAABE18692FB + 53FE018AAD11624D71B32240A64D003D6FC1AD1F8CC82E9100D8FEB62E93074F + 9B2B666EF90B57681425DF846CC5A86D1D8046EB0180F100C262412F58D1F47D + 1F0E969A2400CE1BECCA5085CAE5741D37974F7FBE3C5CA951966C4B89C6857E + 3BC6A7FD03E42A35A9E5A0E9050F604B3468CE869FBFEBC3A1531200F1E70DFC + 23FBD2D1D9D2C37B114278C8969092F854321B72BEAABA27619DE1FD03940A12 + 4C0072CA0350EB41C38EC66FFB905B2611B0FFC063B03B9D04D1CDBB19F77595 + 4695B7332D9E0C4A83E559947759314D0011DAB50019F908004F4DFE0ED560C1 + EDC4ED867B4C6EB979E3C75000641EDC4F5E241C413830D0378884A47871462C + B9C611C0DEB119EC1D9F838C95F612221F868C772EAFC2522D097020E7491120 + CC96E358B116DBC2358E15112EB70B831D26B8ECAE0BC3E5B6D28D06965A4440 + CEE16C12E499ED5238EBBB26841BDBFAC1CC31410DF701F2F2729756400C5E5A + 01C6CDA0BBA517CE3967D0C37D8082FC7CDF7E7B97DC0B686FEDC4D484ED2753 + 992D37D8E13E405141E18AFDF6AD847030ED73686D6EE71927B3E23D1154C0B3 + 85C52BCEC0EA95B03B1C6869FE9B671CC14788806345C7D69C016ED561B43BEC + F8ABB995BCAC9C59A6B2995F8206D87E5EFF3BF9EEBA4F4A67F2883B3896CBB1 + 544EFF162CC0FF3263DE8DB244B1DC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingSecure_03_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004F74944415478DA + B5D56B4C53570007F0FFBDA52D6D91371213811A743E08023AE25C0C9B4F0499 + CFCC2538B2ECC3B2CC6CC9964D18C8E6A608D12FFB32974C5DF6FCB239290F41 + 409DEEE1B6A0955781E26383E254167965DCDE7B6BEFBD3BF796160A35DC26F5 + 24CDB9BDF7F4FC7FE7DC734E2984B024159ECDA135F4790A30AAFA8144FD4985 + 12905254BD215C6FBCB83A7B0D653219415314689A9AACE1A927EFC9E5ACA506 + 2105C825795FF52B0683F14B35882702080661A9AD7D3200E575BC6C698C8F4F + C8CB5CF5F4B4707F446D5DDD9301988B2CC78CA688E2ACD56BA0D76941F9854F + 21EAEBEB8303D4552CDC43EC15E472D9639AD8EBFE2DE8BBCAEFDAB1322B9B84 + EB26031110D1D01004A0B622F9455354EC0FE99B7621322616E2230E02CF4270 + 31107927B97662FCE110FEB2DBD1A2398AFB11DB6604CE469C6F3CA71E505F91 + D4F7CCDE379EBA676F83C3D60A4994FC9ECB9DCF5F9088E82813AEDD74E35C5C + A3DF6805C10D7B7727962E4F837761363735A807D455244B5BDF3A82E6138700 + 97CBF4C247F79CDE6729FB2C47E64568CBAB92F72373D50AB4597BF05DBCCD2F + BCABFD1A1866E25CB8DEB0CDBB3B2E3437060978F363347D7A08DBCB1D7EBF33 + 17D58C2F5A9A11F90E9E4366D632B4B7D9F14D9C4D997639BCA7D30AD63971BC + FFDB5D25D3B7E8EFBF5D090E90BBFF43347F76781620A9B07A874EAF3BF349EA + 7E6D46C6127474DCC257315D104537FA6C377CE1DEF65E04C7B36C50802DAF97 + A1E5F3CA59002FE2C48AB76B56A62F4267D7DF381961C5ED9E36702CE3173E85 + B06CA424510C0EF05A095A4E1D0B08F0B6494F4B4657B703071CA7C13F267C7A + 5105B07D91FA8128E2B0DC5C942432B5E48F8C6C02792348F2F7E9D793CFAE0E + 67FD5C5A51FDFC5C7DAB039C5ECC0E0E0BE171915A24446B61348641A3D380D6 + 6AA08F4F05456AB07741937B6109D9708F58F147D36D6EFDBBFD8690003A4F2D + 961C0F05CC8F9E0DD0C5262B35F8210F202E0314DB8B2B35766C7CAF7FCEFE55 + 01DA4FA64A7787C5C080E805CA0C508F463C8098E5A0F83BB86CB163D3811000 + CC9531C72C71B1C5FF8C040668E7C52B3525FEA7003451A9A01F0DE252B51D5B + 8A5500528E46AF9720D18E83E39702856B4DDAE2EFF5F3706FF4310053940700 + CE03884C02ED1EC2C5B3BDC82D195001A88A6574E15A03CFF2AF3ACAC6BE9E1E + AE33E98A17A625E2F82D060FC60203C20CE45CD7869163D7ED01442482164771 + E1C75E6C7D5F05C05C152BAD5E9789CEEBDD92172187EB23F4C5E674321AB2BE + 0EDB8631342E050690FF7B5A4700619407608C010D06CD677A915FAA1290B3F9 + 59302C4B1036C9C5B91A0C2643C1920C33E99486200928EB1AC21801C447CD06 + 68C84706786AF23DDC04B78BC5E5BA9B5C7E9963EE6D2803D6E7E69083442408 + 276EF7DE41EA72B3322281DC130960EDFD71AC7D30018DA0EE10221F8EF45759 + 7070F0882AC0E6BC0D0A401EAD280A4AAD5CCBF7444141F02E1E773A06C033FC + F1FEB2D192B93A565B1440DEB62D24C833DAA970C1774F0EB7B7DD0237C18534 + DC072828C89F9A0125786A06381707DBF51EB0136CC8C37D809DDBB7FBDEB777 + CABD80766B27461E8E9E1F281DCD0F75B80FB067E76EBFF7ED9B0979613213B0 + B6B64B1CCBF99D132105BCB47BAFDF1A9839138CD389EBAD3724CE197A840228 + DC53386B0D88331623E36470ADD54A0E2B76D340E9F84F2103A454C5FC4A815A + A7A631D9E24E5110F306CBC77E0915E07F8320D567A2A2752E0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'ConnectingSecure_04_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004EC4944415478DA + B5D5794C93671C07F0EFFBF680B65CA545644239CAE64114D019972CD9E63482 + C7C6CCB2FDA1336E7F2CCBC84CB6A9780F8F8A73D9F5C7DCE2B169DC4C963929 + 144510175CA273994190AB95E1B10A4C4A8BC084B6F4EDFBEE79DF52A052C2DB + A43CCD9BDF7BF5F97EDEE3795E0A616C29EBCEBD404BE88B14A014F5078EFA93 + 0A27207543E9CB9111CACB8B162FA1542A25688A024D532315BE3AB28F6FE78C + 65082B806FBAF5A51B150AE5493188690184823096974F0F40781C6F192BB5DA + 8495390B9F1D171E88283799A60790B6C17858A98A2ACA5DB404117219A880F0 + 314445454568009321F975623790D539939C6231D9D6DCBEE65E5BB020773109 + 978F042228E2C2851000E506DD1BAAD8F85FE62F5F8B18753C588F0B5EB713DE + E141B0EE21B23E847E7B37EE5A2CB82439887FA3563F11381171B1F2BC784085 + 21E5F6736FBEFF4C97A51ED6E6BFC0B15CC071BEF3194989888B55E1461B83F3 + 9ACA80ABF57A19585A1A317B6E16FC2F6675D505F1009341C7E56F3A80EA23C5 + C0F0B0EA95BD5D43FE63A9EB8D07A2A364BB0FE90A91B3701EEAEB5AF193B639 + 20BCA9E10606071F9F8F8C50ACF68F8E9AEACA10011FEC43D537C57875B735E0 + 7F691BCAFAD36767C77C841791933B070DF5169CD6340BB79D0F6F6DAC8373E8 + F167F77F5CBB6DFC10FDE3EA95D00079859FA0FADBFD130029EB4A0BE411F2B3 + 5FE90B65D9D94FE3D6ADBF714ADD04966570BBF9E668B8FF7C3FC2E5763A4302 + AC786F272E1D2D9900F0238ECCFBB06CC1FC743436DDC3B1A83AB4B7D6C3E51C + 0C081F431897511CCB860678771B2E1D3F1C14E03F677E960E4D2D566CB59E80 + 7B92F0F14D14A0F97BFD1E96C57EFE7496E3C8AD251F323208F881C0F1DBE3D7 + 478E5D73E4FEBEC350FAD2547D8B039CC8743E70782335313224C4C9A0544A21 + 914B40CB2488D0EA41910A670768B24F9AB0184C6F1DAE57B5BB966EBEAF080B + A0F1782667B57B31236E22401EAF132ADCDD3E80261B94D38C2B65162CDB727F + CAFE45011A8EE9B90E071B1C109724DC01CAD3EB03A8E78272DF41ADD182E55B + C300F8B4765F595EDBE982CEDEE00059B456A814FB9F0090C4EA417B1EE0B752 + 0B56148900ECBAB8792399466943FEE72783856724E80B32AF16A3EBD1240055 + AC0F00970F1093029AE9C6E57366E46DFB676AC0999B3F78A43299D46C6B35EC + 5D7668CF93E12AB50289A6223CEC0B0E902AC8BC2E93926997F101A21241B38F + 50F3AB19F9DB45007E6E38CD69676AE0E8E9851F2184CFC82C8856ABC84706D0 + 183F46773F171C40BEF7B49C00A4940FA05483C620AACF9AB16A8748C0CC5989 + 60C89CCD236C03DD2D33E392B262E2A34191C99C1FDBEAB22DB0F779A08D9D08 + 90908507F82AD98E54811976A2D6D4E65AB5D33AF530E40149C9496495838761 + 30D0378098383E1CC2A4C3EF97B7564166AE01C778444D426471B11C5BB266D7 + 8303A200B3529E22319CD089B0F87FE3B6BDAC17038EC7B8DBD35EBE7D69F16B + 53752CB60980645DF258B050D9806D965C5A9FA31F776CE10D1F05E87429106E + 36C78E43F82A7FE5BDF647D3123E0A484D4D0DF20858E1793AEC0E743A3ACD9B + 9EDF3C2FDCE1A380B4B434FE5DE323496547AA4000435EBC1E9B830CD1968079 + 22AC808CF48C495E40DF2361C8E8B0D9ECD3821000FAF4CC495F407FF5217A70 + ABE3E63B252BBF3C1536C077D7BFBEA756C4A78939D9CB324CEBC396B70FAEFA + E24CB800FF03C9B9B467B01C1E040000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_01_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004EB4944415478DA + B5967B4C5B551CC77FF7426F5F281457D8C60A6566C3C91E20229921C46D4CE5 + 113687022912E3CCCC74CEBF043298FEE174845780C09048C42CFB4F330A6380 + 8B8F4C678C32188CF25E4B5FC08A6C405DDB7BCBDA7BBDF7420B85CEB6B19CE4 + E43CEEB9E7FB39DF73CEEF5E04FC9824B2AB296800DA8D0008BC7A8142FE44FC + 091055D07A98C715FC949098840885024011045014592961B95CE963D255791B + F815804991F9ADEFF0F9826FBD81D814005F20E4EDED9B03C06EC7DBF2AE2D5B + C469712FBCB846DC15A2FDDAB5CD019016C8CB05C2A0A2F88424E0621C405CC4 + 57213A3A3A7C03282C2CCC4651F40BBAFADC13868CDD354AC6B554CCB1FDF189 + B438B622086E213A3B7D00A0C5DF128942BF4B4D4D85E0E0602008C299719C00 + 8BC502F3F30F41A351833E381D1E87EC5F27B811A2BBEBBAF700C5C5C5E3B9B9 + B9BB47474741A1500045512ECF99C943439F013E9F0FEA5933CC447EE8B25ABB + DD0663C38310B327161C07F3C60F9D3E015067CF7E0C972E3580D1687CAAB1B1 + D1E47816952FBF200CE29FCF12DD04A97427A8D52A504797BA882B066E83D96C + BACEE3F2331CB7E3C71B5DBE019C39F3110B505E5EEEF29EB4A0CD181D73E0E9 + 971E354164A414743A0DA8A4A5ACED8CF8C8601FE0165385E6CA1BC56BAFE81F + BFDFF40DE0F4E90FA0A9E9AB0D001259EB318C8B7DFF66D82D4E448404A6A7F5 + 702FB20448D206E343779CE28EF10E08C28AE33E019C3AF53E34377FBD01C001 + 2193FCD5B675EB763018666078DB27A01CE9070237BB88AF42C88F201449FA04 + 70F2E47BD0D2F28D5B00C718B1381CE6E666A16DE108589F20BE367905909393 + F3696060E0E74C9D8E032BD7E9BFCBFBB66DBFB6357FF68AA7B9BD02C8CBCBC3 + 0D06030FA3030B8FC7633397CB65CBE763F70287C301C3FD19B69D9874104687 + 15A0542A89868606BE5F00643219353535E5145F0BB06B770C0BF0F0C11CDB8E + 8B4F00F5A412262626A0BEBEDEE3FC5E01E4E7E7537ABDDE2D80541A0D1CDA99 + 7F8C8BCB8EECDD07D37A1DE300D4D5D5FD7F00E9455179F24846914EA7730B10 + 11B1837500C72D4E47FE9E35804AA582DADA5ACF00515F861CA2804275A5C69F + DD8973849CA2837DAFD3315EE316401C16061807039BEDF1B223D13B6181FE26 + 4C4E4E424D4D8D170065A1668CC7E15B71EBBBBA92C5CB6BC5312156B423361C + 2457E2E9F0AA760B1012120218C6A54F3EB0EDEDB42366D32316B8BABADA3380 + B42C944A488E83C1DE61CA01C1887383B845D27D12400300C25B62D915B90310 + 08046CDD7143184796AC56D06AB5505555E51D40CAD197C18CE334C410B5442C + 75F285FCCC5D07A48006A260A7EC20BE1C031AA596DDEBF500EBEB8C23369B8D + 0EC7D3446565A5E76BC8001C7A2D05488AA4212CA01C55C1B37B1871FA2B46F7 + 913400AF5F04410A31A06480B78188A0F3C58A8A8A0B5E011C4D3BCC0230AB25 + 493B5BB275A68FB4B310D6252BA8EE6AC16AB656684A168A3D4DEC6D6201D232 + 5EA5859657BB2A6E77F631E263FDF78030117E1577026466A6AF3AC00AAF3A40 + 2C1130D43B02B809F7BBB813E078569673BF1D963B0006FA0661FEC142B7F6DC + 42BABFC59D00D9C74FB8ECB7D309E6609A4DD0D733401138E11227FC0A907B22 + C7E50CAC77C24CFFF1F6F6DCA1088BFF21580059B66CC31920D71D46B3C50CB7 + 7BFAE86085A76ACF197FF11B405499E8160248B23783E91F710B6927D3F4E717 + 7FF317C0BFA605AD67B6F609A70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_02_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004E24944415478DA + B5967B4C5B551CC77FBDF4098BB46505C2B3CC3DE4958D90A9535CB205A66C64 + 12C88040CCDCCCCC7462F60F201B242A73C82B40604A5846983366E1AFF98799 + 7FA87FCCFF10E40D1BD2D2175084B6BCDA7B5BE8BD9E7BA0170A5DDAC672DA9B + 73EEEDE9F97ECEF7FCCEEF1E1E04B0DC7E305092A40CED0E0A22F8BEF4B7AC3A + F4BC400254760D5C4E3B7CB05BA10807BE800F3CF4D9FA020FD73C5CC396AA46 + A3858002B0E5CB1F876B92E26455BE40EC0B803F101AED3E01B0A5EDC98BF198 + 88D0C4B0830A4E74378456B74F00DFF68C3E391C257B9F150F2208ACE80942A7 + D3F907505656964F10C41DD47CED255D9E07C7BDBE9A74FCCD93F2B04D71DE96 + A02708BDDE0F00247E492693F7646666426868285014C55D244981CD6603B3D9 + 84026B1A12DFCE83A884D44D51CEF2BD10067F002A2A2A5E1416161E9D989880 + 9191116018C6ED771E1A592E0F03894402E61512DEC9BFB92D8A2A86A161C962 + 06A954C605A6C1E01F00535AFA39DCBBD70E269329A4B3B3D3E6FAADEEF1584F + 7C64C8A5C15F3B40A93C04D3D32A38F7610D86620568046B312DC0DCE2DA5884 + 3C38D9B53B660C7AFF006EDCF80C03D4D5D5B9FDEFD16F6A3B5A73E1B3C77720 + 2E4E89824B03592C009E3912372F826AD6F2F3170529B93BB7E8FCFC9C7F00D7 + AF7F021D1DDFEF01A8FE61E866629CB469E8E9774474742CCCCCE821F3720D52 + 676D3771E2AEFE2E88F5F5F50DBF00AE5DFB18EEDFEFDC03E082708CFDD41C19 + 190546E32C9CFDE02B58B1A099CF2DB989BB4A55F7E015866668BF00AE5EFD08 + BABA1E780470F55128226061611ED2734A41FD12F19DC527808282826A3E9FFF + 35DB26F0DEE679AD5F894A1DABABFE34C5DBD83E011415159146A3512C140A41 + 2C16E34B2412E13A29390504020118E766F1FDC9374EC1F8E830A8542AAABDBD + 5D121080E2E262C6603070E23B018E1C3D86014C8B0BF8FE445A3A4CABA76072 + 7212DADADABC8EEF1340494909A3D7EB3D022895092040CEAC2C2F6D3A92920A + 3328C34D4D4D416B6BEBFF0750DE95D5658C5F28675F1C9E00A2A363B0032469 + E31CF977DEC82E01B4B4B4780788FF467A860186D0DD5EFEDD93B82044507EAA + FF3D94E3351E0114E1E12014086163637DD391844328F19840AD56437373B30F + 00B572AB502C90D849FB15DDADA5873BC58521C2F298E408887D9486D2EBB447 + 00A9540A42A108BF64D8FB28E488756D1503373535790750D6CA99F48C1330DC + 37C6B8205871D10151B932351688208088AE643C234F00C1C1C1B8EDDA21AC23 + 0EBB1DB4E8B4D3D8D8E81BC0E9ACB7C04A9208629471508E5F2421929C23C795 + 40F00970324E503C3C069A292D5EEBDD00BBDBAC231B1B1B281DCF500D0D0DDE + B7210B70E6DDD3E88D4523081B4C4DA8E0D544569C87C469F4DC09E201191C18 + 51004107F99A882874DDADAFAFAFF109202BFB2C0660674BD34E5CE336FB8C76 + 6208BBC30EAA212DD8ADF67ACD2D4B85B7817D2D1820FBC23924B439DB6D7127 + F78C157F3EF00F506B5440C539809C9CF3DB0E60E16D07280705A37DE340AE91 + 0117E700722F5EE4D6DB65B90B60B07F18CC8B96A7DA4ACBF9408B7300F9B979 + 6EEBCD39C106A6750DFA7B07198AA4DCF24440010AF30ADC6260B7135674E2ED + EBFD9BA16C8187C000C5F9C57B6280DE158C569B15FEEAED47C98ACCD4562EFF + 113080F85AD99FE8EC9AE14B677410B7D14E3A5B5FB5F42C5000FF01296AB58D + 666D1F3B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_03_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004EB4944415478DA + B5967B4C5B551CC77FF7426F5F281457D8C60A6566C3C91E20229921C46D4CE5 + 113687022912E3CCCC74CEBF043298FEE174845780C09048C42CFB4F330A6380 + 8B8F4C678C32188CF25E4B5FC08A6C405DDB7BCBDA7BBDF7420B85CEB6B19CE4 + E43CEEB9E7FB39DF73CEEF5E04FC9824B2AB296800DA8D0008BC7A8142FE44FC + 091055D07A98C715FC949098840885024011045014592961B95CE963D255791B + F815804991F9ADEFF0F9826FBD81D814005F20E4EDED9B03C06EC7DBF2AE2D5B + C469712FBCB846DC15A2FDDAB5CD019016C8CB05C2A0A2F88424E0621C405CC4 + 57213A3A3A7C03282C2CCC4651F40BBAFADC13868CDD354AC6B554CCB1FDF189 + B438B622086E213A3B7D00A0C5DF128942BF4B4D4D85E0E0602008C299719C00 + 8BC502F3F30F41A351833E381D1E87EC5F27B811A2BBEBBAF700C5C5C5E3B9B9 + B9BB47474741A1500045512ECF99C943439F013E9F0FEA5933CC447EE8B25ABB + DD0663C38310B327161C07F3C60F9D3E015067CF7E0C972E3580D1687CAAB1B1 + D1E47816952FBF200CE29FCF12DD04A97427A8D52A504797BA882B066E83D96C + BACEE3F2331CB7E3C71B5DBE019C39F3110B505E5EEEF29EB4A0CD181D73E0E9 + 971E354164A414743A0DA8A4A5ACED8CF8C8601FE0165385E6CA1BC56BAFE81F + BFDFF40DE0F4E90FA0A9E9AB0D001259EB318C8B7DFF66D82D4E448404A6A7F5 + 702FB20448D206E343779CE28EF10E08C28AE33E019C3AF53E34377FBD01C001 + 2193FCD5B675EB763018666078DB27A01CE9070237BB88AF42C88F201449FA04 + 70F2E47BD0D2F28D5B00C718B1381CE6E666A16DE108589F20BE367905909393 + F3696060E0E74C9D8E032BD7E9BFCBFBB66DBFB6357FF68AA7B9BD02C8CBCBC3 + 0D06030FA3030B8FC7633397CB65CBE763F70287C301C3FD19B69D9874104687 + 15A0542A89868606BE5F00643219353535E5145F0BB06B770C0BF0F0C11CDB8E + 8B4F00F5A412262626A0BEBEDEE3FC5E01E4E7E7537ABDDE2D80541A0D1CDA99 + 7F8C8BCB8EECDD07D37A1DE300D4D5D5FD7F00E9455179F24846914EA7730B10 + 11B1837500C72D4E47FE9E35804AA582DADA5ACF00515F861CA2804275A5C69F + DD8973849CA2837DAFD3315EE316401C16061807039BEDF1B223D13B6181FE26 + 4C4E4E424D4D8D170065A1668CC7E15B71EBBBBA92C5CB6BC5312156B423361C + 2457E2E9F0AA760B1012120218C6A54F3EB0EDEDB42366D32316B8BABADA3380 + B42C944A488E83C1DE61CA01C1887383B845D27D12400300C25B62D915B90310 + 08046CDD7143184796AC56D06AB5505555E51D40CAD197C18CE334C410B5442C + 75F285FCCC5D07A48006A260A7EC20BE1C031AA596DDEBF500EBEB8C23369B8D + 0EC7D3446565A5E76BC8001C7A2D05488AA4212CA01C55C1B37B1871FA2B46F7 + 913400AF5F04410A31A06480B78188A0F3C58A8A8A0B5E011C4D3BCC0230AB25 + 493B5BB275A68FB4B310D6252BA8EE6AC16AB656684A168A3D4DEC6D6201D232 + 5EA5859657BB2A6E77F631E263FDF78030117E1577026466A6AF3AC00AAF3A40 + 2C1130D43B02B809F7BBB813E078569673BF1D963B0006FA0661FEC142B7F6DC + 42BABFC59D00D9C74FB8ECB7D309E6609A4DD0D733401138E11227FC0A907B22 + C7E50CAC77C24CFFF1F6F6DCA1088BFF21580059B66CC31920D71D46B3C50CB7 + 7BFAE86085A76ACF197FF11B405499E8160248B23783E91F710B6927D3F4E717 + 7FF317C0BFA605AD67B6F609A70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'ConnectingInsecure_04_50' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004D74944415478DA + B5957B4C5B551CC77FADF43DA065C080D2F6C2E6D031E710911813A3C21F6E26 + A2518114C97466663AF19F89E870F3319CF212088C11C998D12C59A6A3E5EDD4 + E87CC4478CB80D4A79B4145ACA4A4B8132A045DA7BBDF79496168A6D6339CDC9 + EF9CDE73CEF7737EE7FC7E8706212C22E99587E977D07B6800DC802610B4DF69 + A1049014B63EC66671BF4BCFC8A4F1785CA0D36840A7D3562D38EDEA7F54B922 + 93434801A8222E683DC4E1702F0402B12500C140C8DADAB606001DC7F3B2EEE8 + E89803FBEFBBDF43DC1BA2ADBD7D6B00B042593997B7EDCDB4F44C60311940F3 + 125F83E8E8E8080EA0B8B8F8193A9D5E4636EFDA64C8E00D8B68689C48C9D997 + 96418A335705C1274457571000A4F8730241D4E5ECEC6C888C8C049BCDE6AE56 + AB0D9696966066C60C63631AD0451E8415FEBE75821B217ABA3B030728292919 + CACBCBDBAD542AA1AFAF0F0882F0FA4E2D1E15B51D381C0E68A6166152FCAAD7 + 6E1D0E3B0C2A6E42CADDA9E0BA9857BFEE0A0A80282A7A1DCE9E6D008BC512DE + D8D8B8E0FA2629909DE66DE3BCF3A4E01A60583268346AD024957A89F75DFF13 + 1617173AD92CCE13AEE8F8F66A777000C78EBD8600CACBCBBDE66185724B52CA + BD110FDC6E02B11803AD760CD45829723B253E70F32FB02E2D548C7DF1748967 + 88FEFACBB5E0008E1E7D059A9ACE6D0010495B73982CE697CFC6FECC100A45A0 + D7EB60447C0270DC0E43FDBD6E71D77817846DD96A0D0AE0C89197A1B9F9D30D + 002E08A9E80F795C5C02180C93A0887F0354037F83CDBAE825BE0621CBA21138 + 1E14C0E1C32F414BCB799F00AE3131313BC0649A02F96C162C6F22EE590202C8 + CDCD3D191616F601D526F3C06A38FDB7BD658FFF51DE7CEA117F6B0704909F9F + 6F35180C6C269958D86C36AA2C160BD93DA97B81C16080E1D624EA67643E084A + 451FA8542A5B43430327240052A994989898708B7B02DCB93B050198A74DA8BF + 3F2D1D34A32A181E1E86FAFA7ABFEB070450505040E8743A9F001896040CD233 + F39639A747F6DE037A9D96F200D4D5D5FD7F808F7F785FDE7F7E2447ABD5FA04 + 100A139107ACD625B7478C530650ABD5505B5BEB1FA0B4E7F821F2D2D0CB1EAF + BAE04B3C3966674E67C537648E1FF30910131B0B4C0613ECF615A74792926196 + 7C13464747A1A6A6C63FC0C5DE96953006234C691C287B2FEBA393EBC579020E + 5C3ED14EA6578D4F003E9F0F4C268BBCF980FA09A44716176E23E0EAEA6AFF00 + 97AE7F4E44C76D07B369065C10483C76574EB8808716BEF4B61CEDC8170097CB + 456D5784501EF9677919C6C7C7A1AAAA2A308038E10EB093399B8230CE4F29E2 + F8F1A91151E140239339F5EA7D75AA1D54236A74D6EB01D6B7298FD8ED76321D + EB6D959595FEC39002884F8C279B04AC9013E7E7E621824F8903E0E8C925A0FF + FB4118FA4905B883083411D9C87AA6A2A2E27440004251022943A0DDA2EAFA79 + F41DB803E6CD0B306A52B5BDF5E8BB4FF95B38D0820012C5896BC2C8E25E7D1C + C761CE6C01B531B4E26E00B15804C8D904EE01E1B4D4CE67A667B744DC0D2091 + 487C1C01E5052053AC19F466BDB2E8A1E37B422DEE06C0308CBA6B942469F155 + 8B1050823119CD64882ABCF244480192C9ECE5FB023A8F840A2BA3717A4B2010 + C0CEA45D9B5E4097754298E0C644EF8B670E7CF259C800CEFD56AB1170A2B040 + 063B70BB7DC0A078E1C383D5174305F02F2DD397678D85A4970000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004E24944415478DA + ADD67F5093751C07F0F76428FECE92287F9CD65D5D99DD75F58F77518084803F + 6341E091818572FE3848D40C85DD52D3AC23436563A01E755667E58F10C5B84C + CF4CCFAB3B1342994CD8068EB11F8CFDDED89EE7E9D93379F08921CFB3FADCED + BE77DBF7FB7C5EDFCFBEDFCF2682C028515EA484AD105DF506A854F9862467D8 + 4F230154AC4D04C583119CF2E36515AEAB0C232222061024BF425C6AEE82D5E1 + C3B5DBFAB08888017E821FA04D6786D1E6B98FB8F7279D3DBDA630C91C316053 + F5AFD4178549F0FA49941EBEF8D0B97B0B92D0EFF0C0647333883E8717D76EE9 + 5B5C4EE7C29A2DCBCC11018AE5BF505FAE4B867B80E4357F9C1830F50F212C76 + 2FAEB676B556AE7F637E4480A2433F53951B16C1E923B0BDF6C243E7EE59930C + 6DAF0D975BBA6073F9D8F77B4CFD38B0315514116063652375B0280D760FC17B + 4DF0BC769BEC0C86A4AF4FD375150E15A7470658BFFF2C55F5C162F4BB0328AB + 6D12B476E7FB29707AFDD877EC12E49B9644065857514F55952C83D51510BA94 + 8D326523149B977301423BDCCCE953D0AED18357471AACC0DA34662C579E8372 + EB9BC301823ADC6F2A749B5D783BF105448BC708AA407975036AB749C2038476 + B82B2D5A785C4E5E9590152E6546A9FC271CDE9E151E104987EBA04FB7E4F579 + 183F56CC6BADB4EA348E96657301FFB5C35D69D1C16DB7D385E0362817F4F84B + 741093301BDF179C81784C340D38893AE94A2EE0FFE870AA6E0BDE4D7D999DA3 + B1DE41718304E2190178ED037871C2ABD89D7214BBE8AFE02BD93B5C40241DEE + 52B3060EF7D0750C763887B52FB473510F6E44EDC794A7C598383D06C1A36BE9 + B0338828D5627CB373351720B4C3657F4B57CBEF822CA10E6EC744B6C315E724 + 42DB7F0725E7DEC2F859223AF978FA33827E912C62ACE129DC207E1F07190658 + 80D00E77D6B30A739E998D5EB51B27F29A3049FC38D3E17A6DB7D03CEE00629F + 9D84C9B113409224937C10418164104EB3F794B6B44FC2028476B8570EC6213E + 6501BAE966E43510389279069F1E6BC4CDA80A3C323706536327837820F1E018 + 7CCF6972D1089B4E536A9DC3020A3F3F4DC937AF80C5E987B4E6FCA880F3FE7C + 242C8A671EDCA5BD074F0F813EA70DB39E7B14D3E2A6869291DCE4C1B1DFE480 + B5DD8781807BBE4EDAD7CA02D6EC3B4929B664C04C03F8C402F913589896107A + 301942444547E1B1B869FFDAF15072ABD10693CA85798E42D4EF2DE71EC2823D + 3F508A6D993039FC90291B460534910548494FE6EC2E5472EE8E0932345A7AAD + E852E92D945F9410DCF9E07358C07BBB8F538A8FB218009F88AF7E12694B16DD + 3F64C3774B3E8031192CE8BCAD1B969C03C8DFF91D555D9A0DA3DD8F8F95F5A3 + 022E880AB164693A27D130048DEBED31427DAB336C720E204F768C526C5FC900 + F84462ED0CAC58BE2C547692088B30E80D68FBBB7DC4E41CC02AE9D79462472E + 03D8557D6A54C045F10648566484293BC15E3F6DA70E77551DBA011F5ED3CBAC + BA87027277D4518AB255E8A57B369F48393A135919990F5CB5F05F4310A156DD + 1D11C10256961EA114E57934C08F4F142746055C8E29428E247BC46633780682 + A38641A8C3225840CEB65A4A2ECD67007C22BD6E16723373D944C4B00A702BA3 + E9D4E24E9B5AADF5599FA77F0302C300D91FD65055E5AB61E4790DB73666A0D5 + F807AFB94341DDA4DBEF4B612B1004087C5AD838FED95A41FFB4FF011FC9E04E + BEE7AB310000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005494944415478DA + 9DD67B5054551C07F0EFC61ACB4B628A987C8CE94C5A4DCE34FD6545810F08F0 + 41A0880C393E42C9C7606A6628EC109A8E366682B020E66B74CA7C86A6C5649A + 93E36B4AA31016176197C7C22ECBBE5F2CF7DECEBD1B176F2CEEDD3D333B6766 + F7DCFBFB9CDFDEF3DD9520C0B1A1FA2A13E025775D039851B966BACDD7879260 + 007B56268211C160979CBEAEC46DA5764444D0008A16D7886BF5ED305ADDB8D9 + D8E9131134C043890334697AA1333B39C4ADC6CEFB7DA342920F2F7F571F3460 + 7DD5AFCC57F9D3E1F2D0283C78F5896B77E64D87C9EA84DEECE0107D56176E36 + 74359A3CCE84C30569FAA000EB2A7F61BE5E35138E7E5AD4FA5029A0370D210C + 16176E34B42BCB56CF7A392840C1FE9F997D6B92617353D85273E5896B77AC98 + 09758F19D7FF6E87D9EEE6DFD7EA4D285BFB9E2428C0DA7D9799F28214589C94 + E86BD8E7B5436FE13034393E75B795D8BF2E3538C0EABD3F32151FA7C1E41840 + 514D5D40D7967E98049BCB835DC7AFA172FDECE000ABF6D432151BE6C2681F08 + F4527E14555F8662E33C21406CC231A485D111323C1F13897AA51AA21269B003 + 2B53B8B9B8FA12AA37BD3F1C2026E1D887697444286A6FB540DBE7C0BCB7A640 + 1A1258238BAB2EA26673A66F80BF84B3D85D041086DF1F74A24367C19DC60EB8 + 1C76519D28C99FC3CDF2CA1F70704B966F80BF84F3026468EEE8432F39D36C47 + D47A2BD2A64D866C5488A80EC82BCEE35051B6102036E1689AC6EEFC59305A9C + 68EB31720893CD8D3B4D9D705AADA411C280B2A30BF725E588C4787C9F7701D2 + A74611C0591C91E7080162138EED4074A48CDC0830985D3090A865114612B32A + AD11598953F9B56DC666ACBB9809E99801B82CFD981AFE36B6271DC236F2151C + 2DF94008109B706C07767D944C42C582BA3F9A61730C0592CE6086CD6CF2EE5C + A2C5BD90BD183D498A88E764607F9C0D8F2C1C2244998613A5CB8400B10967B1 + 39111D158E852766C0EEB1A334F128DCF628D0A4C06F7FB6202FFD4DA84DCDD8 + 70693EC2C64948F130927E1479D13CE2E9EE89B847DD084509FA7980D884633B + 101D1986EF0C0B31E1A5F1E851397034EB0222A4B1A8387D133A6B23EA43CB10 + 3B391251B1E1DC7AB6F8208221541661EB759D5317F665F200B109E7ED4018DE + 288B437CD23474B475C1D54DA166FE05949FB9825B9E9D78E64519A263A3403D + 56787066DFB3E9ED0461D6B4151A27F080FC2FCF33951BD361B079203FF093DF + 0E9C32E72021399EBB71BB9A9C002D45F0168C9D128398B8686F315A589C9D4D + E4C81A1FBAD13FE0784D23EF6BE0012B769D65149F64A09700FC75801DC9C726 + 62464A82F7C6B417114272E0D9B898FFED78A8B85167865E69C7ABD67CD4EE2C + 163E84793B4E318ACD0BA0B77A50527D11FE461D9D87A4D49982DD795B2EDC31 + 457B6703C98C76659781F14812D89D0FDE87072CDF7E92517C96C501C48CF8AA + 1790323BF9BF876CF86EE9C730FA6E035A1B35C38A0B004B4BBF65AA0AB3A1B3 + 78F07975AD5FC015493E66CF4915141A8620B81EAD0EAA07AD3E8B0B004B4A8E + 338A2D391C40CC48AC1983F47973BD6DA7299F88EEAE6E34FDF370C4E202C062 + F93146B13597036CAB3AE7177055BA0699E9193EDA4EF1C74FDDAA418BF291A6 + DF8D77BA4A8C9A270272B71E6114458BD143325BCC483A341659190B1E3B6ABE + BF0616A152B68C88E0013985DF308AE22504E0C1178A337E01D765055894993D + 62D80C3E03ECDCC621543E113C60D1E61AA652BE94038819A947C62177412E5F + 881AD6016167DA5AD5686E52A9D46EE32BE43760601820FBD3034C45F13292E5 + E2009B2E67A0417757D4DAA1C1FC45E2F7759F1D600101DECDE738B97B65407F + 10FF056FD2005D60B583050000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005534944415478DA + 9DD67B4C53571C07F06FA5CEF78329613285B945B367B2E83F5B86416565202A + 83499030A34E94F888CF398742838F69D438E7030A82448D667173EAF035CD1C + C66C53B3189D13A55AA5BDB0D207EDEDFBC1EDBD77F7DE8E8B3714B8ED2F694E + D29E737F9FF3EB39BF568128637D4D231BD5025671CF31509956BF24D51DE963 + 452C807DCBA68395C1E0A79CB9A9C59D6653AF8898013423AF10371EB4827407 + 71EB91312222660045CB0334131DB038FD61C4E3B626D70026BD6EE9C7E69801 + EBAA7F63BF2D998100C5A0B4AEB1CFB9BB8A67C0E1F6C3EAF40908BB3B803F9B + 8C4F3D41D7B4BAB539E698006BAA7E65BF5B9E0E5F27236BFE2025607574236C + 2E1E41E80EAC504D8A09B0FAF055F6C0CA0C78823436D75EEF73EECEA5E93098 + 9DB8F94F2B9CDEA0F87EBBD58183AB3E51C4045875E00A7B6875265C7E5AF61A + FEBCB6595D0286E1AECFB53B5A1C5E93151B60C5FE4B6CE5DA5970F84228ABBD + 16D5DA6D4B54F00428EC3E790355EBB263032CDFD7C056AE9F03D21B8A76A918 + 653557A0D930570A90DBE1189A4672E268BC3C72286E3F7806591DA9AB02CB32 + 85B1BCE6326A367EDA1320A7C3116607267080AB77F53073A75B35F50D28E3A2 + 2B6479F545D46ECA8B0CE8AFC3F180E4C478DCD1B6A3D9D081FBBA7604FD3E59 + 95A828992D8CEAAA9F51B7393F32A0BF0E47984824BF120F9D9184DD1384DB4B + A1CDEEC1CC2913B93B1F27AB02EACAF3A82F2B9002E476383A14C2DEE519B0BB + FC78A4370B081777C7EFEB4C0878BD5C21A40DCA0B23EE2B0E613826E087E20B + 500E18C801CEE298BA500A90DBE1F80AA48C8BE716B2427F273D0101E1F47672 + F7DC81EC0FDF14E7EAC9275873310FCAA41002AE4EBC37F423EC50D5633BF715 + 1CAFF85C0A90DBE1F80AEC599109C2E2C6855B4DF005BA1B5207E981CFE50CEF + 5CD18E7B71FB31F27525868D1D0CFEC7D9F6DC2520E2B4B3706ADB6229406E87 + 234C76AE0263907F6A267C9417DB679C40283052E870B71F1A5098311506C713 + ACBFFC19868C5770C987709FD1DC8B11112F9926E21EFDC72054A05304C8ED70 + 218A424AD2181C217290326902CC3A2F0ECF3A8361CA041CBF7C17568F160F06 + 1D44C2E4E1189130140CC308C9BB102C1801E1E9089C3394DAF34480DC0ED7DA + 6E43320798723011A9AA0FD0A637C26FA2519BD780A3977E47A3672B46BF3618 + A31246807E2171D7C8BFE7B17A398493D097922922A064EF79B66A430E6C1E0A + EA23BFF45E811085E47163516FCC455A46AAF0E056C3BFF01B6938FC2E244D8E + 477CE2A87032469A9C1F1D5637C8A74174867CEF126A7B930858BAFB2CABF932 + 171D1CA0CF0A986CC2987FF61DCCCC4C0B3F980923E206C6610CD7A4A43BEE4E + 4E5A9CB06ABD78DB5D82865DE5D24358BCF34756B3691EAC6E0A153517D15F5C + 638AA1CA4A97EC2E5C72E98E69263CDACC245AB5461B4B29D2F89D773D47047C + B1E334ABF93A5F00C889D4EA71C8CCCEF8FF90F5DC2DF302C6CA55ADE531D123 + B904B068DBF76C7569012C2E0A5B6B1AFA055C5794207B769624510F048733B7 + 5BA07BD41231B904B0B0E224ABD95C2800E4C4F4DA24E4CC9D132E3B43474498 + 8C26343F7CDA6B72096081FA04ABD9522400B6579FEB17D0A85C89BC9CDC0865 + A7C5EB676821F04CFB9CE80C629AB18224FA04146D39C66ACA16C0CCF56C39A1 + AA7F15F9B9F35EB86A91BF061EA1D33EEB1521020A4B8FB29AF2851C80C2379A + 9FFA05DC1CBC1AF3F30A7A6D365D67801FF5024217112102E66FAA65ABD48B04 + 809CC83A361E45F38AC444748F0A482BA36F31E049B34E6708926F71BF01A11E + 8082AF8EB095E58B6191790D375EC94593E52F5973BB83FD9B6BBFEF47AC000F + 88F26911E3F49E6551FD41FC0F50EE015D7DD2A1EE0000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'CopyRemote_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005584944415478DA + 9DD67D6C13651C07F06FB722EF021132C1010261894A1343FCC3E8781B0E37C6 + 8B1B2C834C02C8A0E1252020E2606B2620883A71C0D67543820A51943727822E + C2C812314814642FB4ACDBDAAEB45DBBAEEFAFD7BBF37A7537CE75DBB5BFA479 + 92F6B9FB7D9EDF3DCFEF2A428CB14B5147C774018D46B728945A254D7744FB59 + 140FA074D37CD00218E12917EA55B8A334F68B881B4052C20A71EB41076CAE00 + FE687E1C1511378020850194BA2E981D3E1671BB59AFF288C40BAAA4738D7103 + 7656DEA43F972E809FA05078AA6EC0B9470A16C0EEF2C1E2F0B2886E979FA984 + B1CDE3B3A656ED5C618C0BB0A3E237FA8BCD0BE10D5282E60F1503167B2FC2EA + F4E3765387A66CCB1BD3E2026C3FF92B5DB67511DC0112FBAA6F0C38F7F0C685 + D0763A50DFD0018727C07D6FB4D8717CDB9BA2B800DBCAAED327B667C0E92305 + 5F13DEAF7A8B93C550CCF1A9BDA3C2C91D99F101B61CFB992E7F7731ECDE108A + AA6B63BAF6C08674B8FD048E9EBD858A9D59F1013697D6D0E5BB96C2E609C57A + 2917458AEB90EF5EC60708ED70642804C9F4248C1E391C75779510D4917A2AB0 + 29831D8B15D7A0D8F3565F80900ED7D06AC2AC19CFA2EE811E5DCC8E9E239982 + C484D80A595C7915D57B73A20306EB70618064C644FCA536E36FA51E4D1A3382 + 01BFA04A944897B0A3ACE2479CDA971B1D3058876B6835B28036A383D98841B8 + 7D044C760F5E7B690A9E122708AA80ACFC0A4E17E5F101423B1C110CA2746B06 + BA99F2DF7DA863CFB78B41346BCD08787D4C21F80DCA0303EE8B4E601426E3FB + 829F204E18C2002EE18C6C351F20B4C335AA0D90CC9C048A79540E4F104E6F00 + F630C24B40DFE544DAEC19DC5C8DED11765CCD817852087E67109211AFE350FA + 691C641EC157256FF301423B1C110CE0B36D59E8B0B871B1FE3EFCFE5E70B7C3 + 039FDB1559B9C8887B89C7F0F47431468E1F86F0CBD9DAE6641189AAC5387760 + 3D1F20B4C335AA1F33154846EEB93478090F0EA57D033A3896ED70F7547A2C9B + 2B81D6FE08BBAEADC0F06411937C38F31BC97C280EF194691AEE91BF0F450982 + 1C40688723020148529251AACCC0D49993D1D9E2C1C769E73022613C2ED435C0 + EA6DC183A1C731216514464F18C13C2A8A4DDE83A041B1087797FFB2B6B03B87 + 0308ED708D2D7A1630FB781252D35F855E6380CF4442915D83EF6EFE896B5DFB + 31F6F96118336134C82712F78CE1EFDC160F8370E83485B6A91C40FAE915BA62 + F77258DD046455BF0C588159299351A65E8C798B52D91B77681FC36720E1F0B9 + 3031652CC6258D8924A3F8C9C3A3DDE282AD258060C83B4B27EB6EE2001B8F5E + A2E5EF65A38B010C144D6A3D3B6EA87D056919F32237A62288C42189782669DC + FF56DC9BDC6676C0A2F2E045971435478AF99BB0E0F00FB47CEF4A585C044A14 + 573158D4520548CF5CC85B5DA4E4FC15935464B476DAD0A132586942342FBCF2 + 9EFB7080770E9DA7E51FE4B20021915A391119598BFEDB647D574B3D81B198AC + 687FA8EB939C075877E05BBAB2300F6627810F153583026E88A4C85A92C94BD4 + 07C1E03A8D66A89BDBA326E701D6969CA5E5FB56B3002131BF7A12962F5B1A29 + 3B454645980C26281B5BFA4DCE03AC917D4DCBF7E7B3808395970705D489B722 + 67797694B293DCF1D3B6EBD0AA6AD331CD738EA1C4A61B1090BFFF0C2D2F5A83 + 4EA6670B89F4D3CF21377BE513472DFA630823D4AAD67E111C6075E197B4BC78 + 2D0320F091FCE2A080FA61DBB12A27AFDF66D3B307C2A38645A8A32238C0AABD + D574856C1D0B101299679291BF329F4B44F6A900BF329A762D1E29D56A6DC0F6 + 02F30E08F501E4BD5F459717AF8759E031DC733D1B4DE6BB82E6F606FD0FD37E + 5F8E5A813020C6BB458DF39F6C8AE90FE2BF7202055D64DCA7BE000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005584944415478DA + 9DD60B4C53571807F07F01059D4ECD344EA7D3B98899D9E62BCBDC5686C85050 + 51611834CCA81B4A9C0E274E1D0A4DE7336EF1854241D438A3316EF3EDD4199D + 0E4563B600321F140AB485164A5BFA7EF7DEBBDB5B29DEB5D0DB7E497392DB73 + CFF73B5FEFF96E790831F2CAEE50A1DDC1AB23ADD44707D627E8037E1B0E60EF + AA19A038303C537EAB10E391B8BD4744D80082E45688BBB52DD0991C78F85C19 + 101136C0457003D4C935E830D85E20148D1A928C3FB93A511136607DE99FD4BE + 9C04D85D24F28FDEE975EEEEEC04E84D36A80D5606D169B2E3C13385BCD36AF9 + F8645EAA222CC0BA925BD481D589B03A494EF3A3A300B5BE1BA135DA51F9A4A5 + B568CD67A3C302E41EFE833AB86616CC0E025BCA6FF73A77D7CA44C8540654FC + DB0283C5E1BBDEA6D6A368ED6C5E5880B507AF5387729361B4119CEFF13CAFAD + 6A238321E9E373F3911887D7A58407F87AFFEF54F1B773A0B7BA51507E33A47B + B77D9504B3DD853DA7EEA264FDDCF000ABF75EA68AF352A1B3B843BDD5170565 + D721DA309F0DE0DAE1DC4E27F893C62226BA2FAEDD7F024E1DA9AB02AB9299B1 + B0EC1ACA362EF40770E970F76AA5E0BF3F1695CFDBE823E6C0B409231119115A + 210B4BAFA27C737A6040B00E77EF7133E2268DC363A90615554D9028B470391D + 9C2A21CC99C78C82924B38BA65516040B00E77AFA6097193C741AA32D227C105 + ABDD0D8DD18629B123D0273282530504C51771BC20930DE0DAE19C763BF67D33 + 8769287F5535BC40B8E84A74C261B7F955C202256A78873000A3F14BF6154445 + F4A101E77142B0840DE0DAE1EED734226ECADB74A54898AD2E986C4EFAE3628E + 974A67C6F4896FFAE64A75F55877351D5123DDB01B9D78AFFF27D891741CDBE9 + 9FE067E1176C00D70EE7A477B9373715AD1A0BCEDCFA070E4737D860B2C26EB5 + 7877CE6B4375E47EBC3A2E0AAF0C8D81E7E5AC6D32328848F11C9CDEB6820DE0 + DAE1EE574B1037753C324E25C0E6B26067E269441043E8E5293C6D5221F18358 + C8F4F5C8BBF639FA8DE2D1C9FBD1DD8FA03FA40FD1B7FD2D541395D110C2E903 + 70ED700E9B0DFCA9B11056CDC098F1A3A16AB060EB87C7D03F62286ED02DB6D3 + D688DAE8220C8B1D8081C3FA8324492679178202C920CC1AFB05597E67BA0FC0 + B5C35556D5833F2D16538B86839F341DAD52256C6D04440B2FE1CAC31A9C536C + C2E0B13118346C20889712778D9E6B66B5854618E4D27CDD181F20E7A78B54C9 + 8605D09A5D101CB911A40213B0BD7626E267F199855B640AD894048C76135E1F + 3F1843860FF22623D9C93DA35E6D82AEC101A7DBFAAE5CD0F9D40758B9E73C25 + FA2E0D1A1AD05B3CA8AE67C6BC879F626672BC7761D28B88EC1389D7860FF9DF + 8EBB93EB3A0C508B2D9868CAC1E5DD85EC87307BD7AF94687306D42617846557 + 112C6E92D9484A4964EDCE5B72F68E09D23B6A553AB488955ACAC58BF7ECBC6B + 1D1FE0CB1D6729D1F78B180097E0978E40F2DC592F1E32FFDD922F61D4ED5A34 + 3F97FB256701966F3B4395E667A2C3E8C20F659783026EF37230775E0A2B911F + 82C6A9DA3A2079D61C30390BB04C788A126D59C200B8C48CF29158303FD55B76 + 9208886857B6A3EE49438FC95980A5829394686B1603D85E7A2128E04ED41AA4 + 2F480B5076C277FC64CD72348A9BE4F4CB324E29D4C97B05646D3D41890A9642 + 45F76C2E9174FC0D2C4ACB78E9A805FE193C0889B8B147840FB024FF18252A5C + 46035CD8293A17145011938BC5E9993D369BAE67C0334A19842420C20758BCB9 + 9C2A112C67005C22E5C428646564F912117E15605746DA2C437D9D442273E8DE + A1DF016E3F40E6A6235471E10A74703C861BAFA7E169C7DF9CE67607F5986EBF + 930356C0030871B58071F6C75521FD41FC0F5707065DC85F8B92000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005584944415478DA + 9DD60B4C13771C07F06FA1F89ACEB949884EA3734F1D8B6EC9123741740E05A9 + 220C8386197543898F80CAD4A1D074EA346E713EA1200E99615BDC9CAF213A33 + 8741D4982D91A1201510DA4A81967AF4757D5CEF6ED7EBA89C14B8F69734FFE4 + FABFFB7DFEBFFEFFBFAB0401C696A24A36A01B5834DB19E9FBCAF5D184BFAF25 + C1000EAC9D035604C333E54C950A771ADAFB45040DA0197185B85EAB056171E2 + 767D9B5F44D0008A160768D074416FB27B110FDAD484DB157D72C3026DD080CD + 857FB1DF65CC8583629073A272C0B9FBD2E7A2DB6287C144F2882716076ED5B5 + E94CA479E6C9EC25DAA00059057FB287D6CD03E96244CD1F2A050CDD4F1146B3 + 07A1693FBC3E767C5080CC637FB08737CC87D5496347F1B501E7EE5D330FEA4E + 13AAEE6961B2397DD7DB0DDD38B271812428C0C6C397D9A3997130DB69D1F778 + F6EB638399C730DCF1B97A47856359F1C101D61FBCC4E66F5A886ED28DDCE2AB + 01DDBBEBF358581D14F6975D47C1E684E000EB0E5C64F3B72C026173077AAB2F + 728B2E4399BD580810DBE15C4E27123E7C1361D2309CB97617A23A524F05D6C6 + F1635E51058AB62EE90B10D3E1CA6F357080B7F04FA31E6692C2DB93C3111212 + 5821F30ACB51BC3DD93F60B00E577EF30164B3A6A14E4BE0CAAD7A7E63B92997 + A84A283264FC282FB880133B96FA070CD6E1CAABEB218B9A06B5C10A1BB7A11C + 2E1A84D581A993C2210D0D11550179FE7994E4A60A01623B9C832471284BC635 + 14272A6EDE87CD49C1EE7443AD3781E2F6C7B395B041871AC9518CC444FC92FE + 3BA421611CE02C4AE5CB8500B11DEE52F57DC8A2237928C955C053051B07F020 + BACC24A6BF3ACE37B7957888ACF26448C7BBE130BBF0CE8859D8135B82DDDC4F + F083E25321406C877390361CDC94883623895315B7E1EC05B6900EB8EC76EFCA + 25EDB81B7A10CF4F91E2B9B1C3E079391B1F997944A86A217EDCB55A0810DBE1 + 2EDDA8856CF674A494CD0549D9B0F7E39F30847D917FF7373DEEC2CCC8C95077 + 3FC4968A4F307C82844B3E9CEB7E34F7617C88211DAFE02E7D73281470F90062 + 3B9CDD6645C2EC19C8AEFE00935E9F88CE461B3223F33122642CAA6B5B41381F + A176E81184BF3112A3C2478061183E790F8205C323AC5D8E73EA9C27C93E80D8 + 0E5751558384981978EF4804A26267E271AB0EF6761AC7122FA0B2A60E65CD9B + F1C2E461181D3E0A74AFC43DA3E79AD560E310264D6B0E31C907C8F8F63C5B90 + 9D08A39582FCF895812B10F32EB6DD9E8598F951FC83B5EA36903A9ADB3F5644 + BC361A6322467B9331C2E49EB1DB6001D1E884CB4D466AE44FEA7C8035FBCFB2 + CA2F92D0C501068A2B376AF851712F0E1FC5C5781FCC7811A161A1782962CC33 + 2B7E9A9CE08EAA4165C3344B062EEECB136EC2F4BDBFB2CAED29305828288ACA + 31585C65D2111B3F4FB03A6FC9852BA619EF68EC24A055E98C2C2589F1ACBCE7 + 393EC0677B4EB3CA2F97F200311155380E7109F3FFDF647D57CBF4C2183A8C68 + 79A0E9935C0058B5EB67B63027157A3385AF8A2E0E0AB826C940822C5E90A80F + 82C375B6EBD154DFE237B900B05251C62A772CE70162624EF178242E5EE42D3B + 43FB4574E83AD070BFB1DFE402C00AF92956B9338D07EC2E3C3728A052BA01C9 + 89497ECA4EFB8E9FBA458366D5238DCB89689D82D00C0848DB59CA2A7357A093 + EBD96222B6E4652C4D4AE975D4FCFF0C1E4493AAB95F840FB03CE77B5699B792 + 0350F85AF9DBA080AA619958969CDA6FB3E9D9039EB1954734F945F800CBB617 + B305F2553C404CC4974E405A4A9A2F11DDA702C2CAB4B6A8F1B0A1A949ED24A6 + 72EF00771F40EAB6E36C7EDE6AE8451EC3AD979350A7FF5BD4DCA7C1FECBB5DF + 197E2BE00104F834BF71FA9BB501FD41FC0F3018035D9F67E323000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005554944415478DA + 9DD60D4C13671807F07F013F703AE7D4119DC6A971C9169718F611A72EEA4811 + 4471A0065967D40D250EA313750E8586A9D3B8459D2814448CDB50E374CA9CA2 + 129986C410678C1FF383024A5BA4404BBFAEBD7E5DEF6ED7AB1CDE5AE0DA2769 + DEA4F7DE3DBFF7B9F77D5A19C28CDCB2EB6C7877C8B43672607C45EE0C73C8AB + 9100F6AD99035602C33FE56C9D1AB7D41DBD222206D08CB442DC78D00A8BDD83 + FA27FA90888801142D0DD0A0EB82C1E67A81686BB351CCCC8A7509DA88011B4B + FF66F767CF859B629077F47A9F73F764CD85D5EE82D1E6E41166BB1BF58FDA0C + 0469F9A862F3626D44800D25D7D89FD726C0E96524CD1F140318AD3D0813E1C6 + CD873A63518EFC8D8800EB0F5F650FE624C2E1A1B1ADBCB6CFB9BB572740DB69 + 43DDBFADB0911EE1FB76A31545EBE6C92202AC3B78993DB43E09848B967C8F7F + BF3E37123C86E18E4FCD2D350E6F488E0CF0F5814B6CF137F36175FA905F5E13 + D6BD3BBE92C3E1A6B0B7F2064A36A6440658BBEF025B9CBB1016D217EEAD42E4 + 975D866A53AA1820B5C379DC2E28E4D3C0CAA2F0DBA5DB08B41B89155893C48F + 0565D528DBF25930404A87ABACB90745E2343CD0984172E59C34F675448559C7 + 82D28B28DF9A1E1AD05F873B71F52E14F3E2D1A8B7E16CED3D7498EDF0513E49 + 9528CC5EC08FCA923F7174DBD2D080FE3ADC892B77A0487A1FAD26122E2F0D2F + F7215C5E4C1C3302D1124BA12CAEC2B1FC0C31406A87733A1C28DA988A2EC283 + 33D7EEC0CD01DC14CD55C2019FD71B5409127ADC931DC2508CC7EF597F21266A + 00073887E3CA4C31406A873B79E53614C91FC2C935227F05DC5E1F37FA78888D + 7463CAB851C25C8DA5111B2EA623662C779DF0E2BD2133B14B7E0C3BB957F04B + E1176280D40EE7B41338B8291D7AB30BE55575A0A89E153BDD1E509E40C72365 + EDB81B7D00AF4E8AC12BA306F395313D237844B47A3E4EEC58250648ED7027AB + 6F4191321D8B2BE7C24591D8233F85D8A851DCE961F1DC60C3D4C963A0B53622 + B77A3162C7C9B8E4B15CF7A3B90F232006764CC45DFAE62014C22B00A4763892 + 20A058F031565F8DC78429E3D1D94462D5E4FD88C548DC6FD2C34A69F0605011 + 46BF3D14C3460F01C3307CF26E040B864738BADCE7B579E6740120B5C39DBA54 + 8FCF39407C511C66C9A7E3B9460F673B8DC3A955F8A7A119471EE7E0B5B70663 + F8E861A05F4ADC3DFABF7318490E61D369F22C130440F64F556CC9A645303928 + 288F5CE9730F64A6CCC0DADA0F303B7116FFE0566D1B9C7A1A0EAF0371938763 + 44DCF04032469CDC3F5A8D76589A3CF0FA9C53754AF32301B07AEF3956B5390D + 5D1CA0AF385D5DCF8F073469F8346976E0C14C00113D201A23E346FC6FC53DC9 + 2DDC1E31AA49BC6BCFC6853D05E24D98B5FB0CABDABA04463B85C2B28BE82F6A + 982CC8931344AB0B945CBC629A098CA64E0B5AD57A134BC966FB57DEFD1C01F0 + E5AED3ACEABBA53C404ACC2A1D83A494C4179B2C78B5CC4B186387092D4F7441 + C94580953B4EB1A57919301014BE2FBBD02FA056968D9405C9A24441080ED7D9 + 6E40F3E39690C94580158595AC6A5B260F901273CAC76251EAC240D9193A24A2 + 43DF8186874DBD261701962B7F6555DB153C6067E9F97E01D7637290BE282D44 + D969E1F8695B7478AA7EA6F37AF089BED0A2EB13A0D87E9C55E52F4727E19554 + 01F9B137B1346DC94B472DF46BF0239AD54F7B450880CCBC0A5655B0820350F8 + 41F547BF80BAC1EBB12C3DA3D766D3BD07FCA386473487440880655BCBD912E5 + 4A1E2025928F8F8362894248440755405C194D8B168D0DCDCD5A8FE51DEE37C0 + 1704C8F8F6085B5CB00A0689C770CBE5343C32DC9634B727D8FB5CFB9D16B202 + 7E40984F0B19A77F5C13D63FC4FF002C63015DFE219F640000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'CopyRemote_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005524944415478DA + 9DD60F4C94651C07F0EF09261A688EC8249C59ABAD3FB6D6D6B249292108FE07 + 2160E8D44289D3343522106EA426B3660A7A7720E8B4D90A4231242917E9D8A4 + 5C5B96A5728AC21D70FC398EFB7FDCDD7BEFFBF6DC7BF2CA1B07BC77BF8D3DDB + F1BCEFEFF3FC9EE7F9DD49E067ECAAB8CCFAF78444EBA4DCAFC8B72DD1FBFC6F + 2080435B168315C1F04CA96D56E19AAA774C44C0009A1157882B373A61B038F1 + DB6DAD4F44C0008A160768D50CA0DF34F400D1DD6776B9DEACFA70697BC0809D + E5BFB25F65C7C04131C8AFBA3CEEDC92AC18182D43D099EC1C62D0E240CB2DAD + DE6AB1BC5E95BBAA3D20C00EC52FEC919C58D85D8CA8F95382019DF121426FF6 + 203A074B7396840704D87EEC67B6746B3CAC4E1A05954DE3CE3DB03916EA3E13 + 9AFFE984C9E6E43FEFD11951B66DA92420C0B6D246F6E8F604988768D1CF78CE + 6B97CECC6118727D2E5D53E1D88EC4C000D2C33FB2F28F96C16877A3B0F2925F + CFEE7D3F0E5607858367AE40B1737960809C43F5AC7CD74A186C6E7F1FE5A3B0 + A211CADDAB8400B11DCE61B72327E90D508C04C7CFB5C0DB6E4456604B023716 + 555C4445EE9AD100311D4E5EF73BA4490BD0DA6D82C34523323C0C123FEB5854 + DE80CABC64DF80893A9CE26C0BA46B17E27E9F15A71BAE91BB6D07ED16B71DC5 + D92BB851A6F8015505A9BE0113753845ED55485316A27B70084E370DCACDC0EE + 746376782826892C854C7E1E270BD38400B11DCE6636E3E8EE351830BB48055A + E024F35D0432483A1E4D792A215C800D5AFC25398A50CC414DD605044F9A4C00 + E7704A96210488ED70CADA664853DF86C541C345D104407B2B412056870B5111 + 33F8B91D863BD8D1908CE048371C043C7FDA42EC8F3B897D640B4E17AF1302C4 + 76389B8974B1DC14F4181C90D734C13D62CB9C642BDC94CB3B4FD283EB418731 + FD99603CFA78085719FD7D338708522DC3377B370901623B9CB2E60AA4693158 + 7B260643940D25F1DF212C3882BB3D3AA315F322C3A136DEC1AE8B6B31354A42 + 924F25DD8F267F0C8F78A4771EAED357A7A0182E1E20B6C3598C0648D363915E + F712E63E3707BD77AD78F7C9124C9584A3AD6B0026B70637A69421E2F9508445 + 4C03C3305CF261040B864358071C75EAFCC1641E20B6C39557372187005E2B9B + 85E8B805E8EAD0C2DE43A36CE579DC546B50FAE7663CF67408664484811E9178 + 78F47C66D5D908C2A4E9C837CCE501D95F9E6715BB57436FA5203BFED39800AB + C9800FD29660DD85F958141FCDBDB853DD0DBB9686CD65C313CF4EC7CC5933BC + C9186172CF68D45960B8EB2437C7FEB246367893076C3E788E557E9C84010218 + 2F2A6BBC07F4C44026DE4958E47D31E345044D0E42F8AC99FF5BF1C3E4867E13 + 742A1B5EB464A3BEA4487808B30E7CCF2AF352A0B35028AE68C0447189C9425C + 62AC6075DE920B574C33DE51DF6740A74AAB6729C922CFCA87DFC303DEDB5FCD + 2A3F4DE5006222BA7C361296C73F3864A357CB8CC0E87AF568BFAD19955C00D8 + B8F75BB63C3F0DFD660A9F55D44F0868926463F98A4441A2510882EBEBE947DB + AD769FC905800DC567586541060710138B2B23B17AD54A6FD919DA27A257DB8B + D67FEF8E995C00582FFB9A55EEC9E400FBCAEB26045C0EDE8AE4D5493ECA4EF3 + D74FDDAEC13DD57D8DCB89B7B4C506CDB880CC3DA75865E17A901FEEA22A1077 + F229A426A58CB86ABEB7C1836853DD1B13C10332F24FB0CAA20D0440E173E5D9 + 0901CD21DB919E9C3666B3193E039EB18343B4F944F080F4BC4A5621DBC801C4 + 44E2A92864A664F289E851151056A6A35D8D3BAD6D6D6AA7E105F21DE01E0548 + FBE4382B2FDA847E91D730B7310937FBFF1035F761B07F93F6FBAACF0A78007E + BECD67547FB1C5AF5F88FF019754035D567A76B50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000054C4944415478DA + 9DD67B4C53571C07F06F05151C82CC3132A7713373C916972CFEB12C994E19A2 + 8008037568D0E003243E8253E7B0081D5387B2CDF9A4057115378CF33175EA64 + 1A1547B231B33FDCDC7C141168D1525ACBED9BBEEEBD3BBD958B7714B8ED2F69 + 4ED29E7B7E9FF3BBE7FC408220636375031BDC13123DE51A36E548E1FB8680BF + 8602D8BD6A2658110CDF94D38D2ADC54E90644840CA0197185B871BB0394D585 + A67BDA808890011E5A1CE0BEE609F4E61E0EF1C7BDC7468A0E7F47B9667A6BC8 + 800D55D7D96F0A12E0F430901E6E1874EECEBC0498AC3D30981D1CA2DBEA44D3 + 5DADD9DC639FAADC90D61A1260BDFC2ABB7775221C6E46D4FC91E180C1D48730 + 5A9CF8FD4E8765DF9A593121010A0F5E66F7AD9D0D9B8B4671CDB541E796E727 + 42DD6546E33F1D30DB5DFCF79D0613F6AF9B230909B06E5F3D7BA03019961E5A + F433BEF3FAC860E1300CB93E576EAA70707D4A6880357B7E662B3F4E85C9E145 + 49CD95A09EDDB6320936A70715753720DF303734C0EADDE7D9CA8DF340D9BDC1 + 3ECA4749753D149BD28500B11DAEC76E8374C94C38C82DD87BFCD7E02AB02A99 + 1B4BAB2FA17AF387FD01623A5CF9F70D902E4D409BDE0EB79746ECE8C8A0CB58 + 5A751135455981014375B8F2A3D7519C9B088DD101F9C946D87ADC60187107B2 + AC208D1B65F29F70B8786160C0501DAEBCF62A8A97CD42A7C9C9CDA569062E5F + 25A2482544964256790ECA926C21406C87B39A28546E9E0F83C50DF9A91BF012 + 80EFC35582F63527E106ECD0E22FC9014461024EE65D40F8B0E1047006B5B2C5 + 4280D80EB7EBC8654857CCE1AEA19754C097DCF314E1747B31367A143FB79D6A + C6FA8B59081FE7859380DF1AF51E762429B19DBC82A3654B8400B11DCE4A75E3 + 60D147D0995CD853574FDE7F5FDDDD1E9A54C17F3DED924EDC0ADB83E849E178 + EE8508AE32C6560B870853A5E2D8B6E54280D80EB74B590FE9CA54CCAF4B2057 + D18E8A39273066443C599E8585B4DB1763A3A0363563E3A5F9881C2F21C92349 + F7233096E1112374AFE216FDDB4894C1CD03C4763873B711C57969483DF61A26 + 4E9E005DB30D29D19F2142F23C74461BAC4C076E8FDC8FB8D7A3303A6E14A910 + C325EF45B0603884ED89F3AC5ADA9DC503C476B88AC317B0257F1EA6EE8FC7B4 + A477F1A85D0B47278DBD6967D1DED5855D4DB918F34A0462E246837E2671EFE8 + FBCE66B0138459D32EA526F28082AFCEB1F24D1930DA3C901DFA654080855460 + 4B7E3AD27F988C19B3A7710B77A81FC3A1A5B9571237291AB1F131FE648C30B9 + 6F3419ACA01EB84813734CD1C8BAEFF080FC8A33ACE2934C3C2180C1E26BE505 + 6E3CEDCCC707C933FC0B337E44D8F0308C8D8FFDDF8EFB92537A330C2A3BDEB4 + 16E0FCCE52E121CC2B3FC52A8A16C060F5A0ACFA22868A2B4C1E92521205BBF3 + 975CB8639AF18FC62E0A1D2AAD91F54866F876DEBB0E0F58B1E304ABD8B29003 + 888969552F2179EEECA787ACFF6E996730069D116DF734FD920B00CBB61D67AB + A4D9D05B3CF8BCFAFC90806B9202CC4D4B1124EA8720B8AE4E3D5AEEB6054C2E + 00E496D5B18AE2C51C404CCCAC19878CF479FEB2337440844EABC3FD7F1F0C98 + 5C00582AFB8E556CCDE100DBABCE0E0968085F8BAC8CCC0065A7F9EBA76ED3E0 + A1AA55E37661BAB68CD20C0AC8D95ACB2A4A96A28BF46C3191A47C190B33173C + 73D502BF061FA245F57040040F582CFD965594E61280075F287E1C12D0185188 + 4559D903369BDE33E01BDB39444B40040F585454C3CA65CB38809848A91D8F9C + 05397C22BA5F058495696F53A3F97E4B8BDA45BD41FE0678FB01B23F3DC45696 + 2E875EE435DC5C9F893BFA3F45CDED0BF66FD27EDF0E58011F20C8D502C6892F + 5705F52FE27F048BFE4E8643E78D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005444944415478DA + 9DD67F5014651807F0EFC921E08FCCD27134CD6CA6A69A9A71EA9F66D2513204 + 44455042861CB550421D08CCCE43B8484D40C75F281C88326A368D566A4492A4 + E138938DD31F96A571780A77C801B71CF7FBB85FBB6FEF2DB2BA71C0DE3D33CC + 3B73FBEE3E9FF7D9F77D1619428C829A6612D20D44667611CF2BD539F1C66097 + 65E100F66F5C0822811198F2DD750D6EB6740F8B081BC072D20A71ED7607CC76 + 0F7EBF6B088A081BE063A5015AF4BD305AFB79C48DBB0F6D36B9ECAD1359B1DA + B001F9D5BF9203D9B170FB38288F378F38B7342B16167B3F18AB8B47F4D9DDB4 + 129D4E9BCB3EF74441B2362C405ED515722867115C5E4ED2FC2839C0581E234C + 36376EDCE9701EDEF4DE84B000B9472F93C39B17C3E16151587B75C4B97B362C + 82AEC78AEB7F77C0EAF408BF773116546C89978505D872B8911CC94D80AD9F95 + 7C4F60BF3E646C3C86A3C7A7E9A60647F312C3036C3AF813A9FC64092C2E3F8A + 6A9B42BA77E7477170B87D283F730D55F949E10172F6D793CA8265303BFDA1DE + 2A44514D23D45B978B01523B9CCB6E47E9C7F1FC2B283D7525B40A6C4CE0C7E2 + 9A4BA8D9B66228404A8753A81B519693884EB31B2CED0531816D1E62145737A0 + 56911A1C305A8753545E42F9E624182C1EEC3BFD0BBC3E96A2A51DC992ECA5FC + A8AAFA01C70BD3820346EB708AA30D28DFB2143D362F8F25B4647E7A4F34AD84 + D40DA5AABC88BAA27431406A87B3F59950A5480363F3D10A5C06471181A3E5F5 + D34A70432BE184017FCA8E600266E15CD68F908F89A480F338A9CA1003A47638 + E5918B28CB5D0193C3CF27E6018F107E96A37B225298DB6E6E455E432AE433FC + 70D38ABD31EE1DEC8EABC32EFA0A4E957C200648ED703613834A65067AAC5E94 + D5D5D36FEE18E11A4B2B305805A7AC0BB7220EE2A917E5183F251A818FB3E981 + 8D47446896E0EB9DEBC500A91D4E59711E65792B91FA552CFAFD4EEC8D3F8B67 + 62A6F3D73C5E3FC6C78C85CED28A824B2B1133534693C7D0EAB0F48F131063BB + E7E016FB5B144AE01500523B9C856150969F86F9B5B330FBA559E86E75607EE4 + 764491C970F47BE1209DB81D5581A92F4FC0C4A9E3E8EBE1F8E48308FAB27884 + A3D77D41A7EC4B1500523B5CE1A17328CD7F1F6F564CC3BCB8B7F1B0DD005717 + 8B034917E8C634E3F3E60C3CFD4234264D9D08F689C48363E03707E3A408ABBE + 5D699E2D00B2F75D24555B93E9E6F24175ECE76101D65E067BF2D3115BF73C16 + 2C9EC73FB843D70967270B37EBC29439133179DAA481649C387960B4307698EF + 79E8A971BDAE57F5DD11001BCACF13F5A729E8A580914255718E1F9BE4B97837 + 61C1C083B901444464049E9D36F97F2B7E9CDC6CB482D138F19A3D1BF5A5C5E2 + 4D98B5E75BA256AC0263F7A1A4A601A345139785B8C445A2D50D945CBC62961B + 184D3D6674680C26E2932D08AC7CF03902E0C3DD67897A7B1A0F9012F3AAA723 + 2169F1A34D3674B5DC1318A6DB84B67FF543928B00EB767E43AA95E930D20EF7 + 454DFDA880ABB26C242D4D14251A82A0B89E2E23B477DB82261701D6969C21EA + C20C1E202516D6CE40F2F2650365E7D8A0886E43375AFEB9376C7211608DEA34 + 51EFC8E401BBAA2F8C0A68966F466A724A90B2B3C2F1D3B5E9715FF340EFF560 + BEA1C4AC1F1190B9E3245117ADE1BF725222AEEE39A4A5AC7AE2A8057F0D0184 + 56737F588400C8509E20EAE2B514E0C397EAEF47055C8FCEC5EAD4F4619BCDE0 + 1E088CED3C421B142100562B6A49956A1D0F9012892767227355A690881D5201 + 7165DADB74686DD16A751EF3ABF41BE01F0248FFEC18A92C5E0FA3C463B8AD31 + 05778C7F489AFB38C85FB4FDCE0D5A810020C4A7058DB37B3786F49FF67F8CEE + FD4E6CEC56F00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_11_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004D54944415478DA + 9D967B4C536718C69F0A0E549C230EC9BC44B7644BB6B8842CFB63C9581019C8 + 456430081266D40DA98201C50B82D03010191AE640A05C1C611B8B610E618C89 + 2373189269C896B8E9508A28B448E90D7A8796B6E7EC9C831C38A3C069DFA479 + 93D3F7FB9EDFFBF6FB9E53015C8CACDA6ED2B515823B163BB9AB3A3DD8E4F45B + 7700CA527780E4814197FCD82341AF44B12884DB000E82DF206EDF1F81D668C5 + DD4772A7106E03D81CFC00FA651AA8F453CF2146FFA2D423EA84C11AB7018ED7 + FC4E7E290C86C54620E74AF792B52529C1D019A7A0D64F321013460BEE3E943F + 309B4C3BEB4E466BDC02C8ACFE8DFCEA480826A7095EF55E9E805A3707316EB0 + E04EDF485F79DA87DBDD02C8A8FC952C4F0F83C9EA406EFDAD256BCF1F0A8154 + A947CF8311E8CD56F6F9985A878AA3BB046E011C2DEF242F6784C330E5E0BD86 + 3EAFCFD4060686A0AE4F57AF04959911EE01A45DFA85AC3A1609DDA41D79F55D + 2EAD2DFC2C14268B0DA54DB7517D3CCA3D802365ED64555634B466BBAB4BD9C8 + ABED84F8C41E2E005F87331BF4A83E118371930DA2BA9BAE4D20359CC9F9B537 + 507BEAA385007C1C4E78B115E293B1D05000EE467E4D07EAB3E39C032CE77087 + 4B5B20CE8E87DA6843416D874BC205C2DD4C1655FF842BB909CE019673B8C35F + 5C83F84C0203E06E88AADAD09097C805E0EB703A8D1A35398950196CF8BCB67D + 593133E4F85B70193ED8821F527E86E78A9514C075348A92B8007C1D2EADE42A + C4B9490CC07231AC1D4066471C3C37DA61314CE3EDD5EFE35C68038AA89FE09B + 824FB8007C1D4EA756427C36990128AC69A13658E1BC73C118EE795CC28BAF79 + 62CDCBDEA05FCEE34F0D0C84872412DF171EE402F075B8B4E22688F3F621EEBB + 604CD9CCB810D18C0D6B36716AA4BA0164DDF818AB360B28F15594FB39A80FC1 + 42BCA07815F71C7F78A100D32C005F879B502A20CEDF8F80F20DD8FAFA162806 + 4C08983E062FD297EDFCBE5705FCDEF0C15ABFD5200882119F8520413010268D + A5559A3311C702F075B8F4A246548B0EE09D0A7F0486BE8767C37298E5769445 + B661D266C2E99BF178699B37D6F9AD85639EF06CA69F99D4660A422F1BCED16E + 65018417DB483E0EA7552950957F10EF56FA23282C90D978443A0AF3A81D56C2 + 82F5DB7CE0EBBF6E468CE08AD359A73642FBD88A69FBE4769968A28F0538547A + 9DE4E37099C58D4CEEF53D839DE141331B1333101E2B3DB0DEDFF77F1DCF896B + 557AA82566BC6514A2BD249F7B0853CE5F235D71B82E2205A111219CEE6646CE + EDD841CCE471A5162312F938691304D19DCFEEC3027C7AAE9974C5E1026B5E41 + 7854D8F343B6B05B621E8C5A318EA147B205E21C8003855749571CEE964088A8 + DD111CA10510149C724C85C187434EC53900FB0B9A48BE0E47C78EFA8D88D913 + 3D3376C2E114422157A0FFDFC78B8A7300F689BE25671DAEA8A67559806ECF74 + C4C5C43A19BB83BD7ED221199E489ECAA6ADF8405EA0952D09907CB691A41D4E + 4979369F086DD88484D8F87957CDF9CF40430C4A9E2C0AC10224E57C4DD20EA7 + A426502C6E5916A0C73B037BE31217359BD93340E7610662D029040BB037BB9E + A41D4EC9F30C44346E46727C322BE4583001EE648687A418E81F1C945AB56F52 + EF00FB0280C4D37524ED702A9ED7F054672CFA547FF2AA9D0BF21FCA7E039C4E + 8006707137A7D17C21D5A57FDAFF01C8AAC24E56A16CFE0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'CopyRemote_12_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000050E4944415478DA + B5967D4C13671CC7BF1D32F0952063466153B7914D6716FF5AF6078BA2E34D04 + 07832041E3CBD40621E0EB1405C270E870630CA79452E7D0B82D6E732851D9CC + 1CC6644B942D662A8E220A2DF2D6A3F41D5ADABB6777872DDC28F4CE65BFA479 + 9AF677CFF7F37CEF79BE773248AC5DCA4622ED0AD9EF761789ADCA8EB27AFDF7 + FF145F302708A1B3A6A2E941DF84109201CAB72D071181C1B5FC70438DD62E03 + 22C266E396BAC72BC45301D08C3823AEDFE984C1E2404BA7FE0944F71FAC7A7C + 8D3CAAFF3F01386971002DDA7EE84C433CC47DF67B4458309AD4BD776D56EB8A + 9A3D89FD92017656FF4A3E9347C1EE64907FB271D2DE235BA260B40C81320DF2 + 1003163BEE755078353C04B75ABA9A2BB7BFB34432405ED52FE4F3AC95181C66 + 44F5074C0128E32884DE6CE7C4E1743A712C2756261920F7F8CFA4323B065607 + 8D03AA6B93F61EDEBA129A3E136EDCED84C9E6F0FCDE4319C1D00C8EE7C54B07 + C8A96C205FE4C6C13C448BBE86DBAF8F29330FC3B0C7E7EA4D35188641D5CE04 + E900DB2B2E93133B56C138E84281EAAA944B51F27E34AC7627CACE5E07616828 + 76270901C484CC90D58213BB1261B0B924898FAD026503EF8072EFBBE3017C85 + 4C56F94554ED5E03BDD589A29A9FA439B02D8E1F0B95577800D5BE14EF009385 + 4CD6A717A0D8938C7E16E069ABB0FA12084DE3E48134EF009385CCF6A3E7A1D8 + 970ACAE244B1F29224E162F96A7E2CAABAC83B70AA205D08202664CC037A28F6 + A7F10062ABDDA0C6DE2BEB1011F23A0EC5A850A2B8CC03D416650801C4844C76 + D977A8CE4F87CEECC487CA7A9FE23674E34F593966BDF40CECE661BC312D12FE + 0F932063254E17AF1302880919B39E82E240060FC0154D68F8C9FCBCF676185A + 9177290553E6D198FE5C20B8E7A3FE911901BA97B1C8B1195F976C1202880999 + 9C8FBF81E260260F90A47A13341C584AE72110C1C295CB7A70DBAF02B35F0964 + C5A7B20144B31FC603F16CEF42DCA67F0B4031863D006242C648B10E14AC471F + 6B67F4A930CC8F7801433D0C2A12EAF0FCF430BE47636CC5AE2BEF61C68BFE98 + 193A8DBFDF9CB81B8280E121ACFDF63A4DFE408A0720ABBC9EF80A999CD23350 + 146E60019C88FD2A0C91D16FE17147377A5A2D583ABC032ED87127E018E6BE16 + 84A0D099EC2D1A15768FDC6F56CAC64298B41DF986F91E00F9271788AF903152 + 7DA82ADAC803C4D78663594C243F71A7A60BB62E171C8C1D210B6620987D15E3 + C518A138371A290B0C0F1C18760D2ED1160D347B00B696FD487C854C5E692D4E + 146E828E3D86AB4E876345DCB291899911083F7F3F84CC09FED78A47C50D3A13 + 28B50D8B2D72D41F29146EC22D87BF27BE42C6A4F7BC49E166F07E44C7AF14AC + 6EC472E18A696664D4F719D0AB3661B179545C00B0F9A373444AC84456CF455C + 42CC934D367EB5CC1818AA578FF6BFB57AE2942DE36C1F3B8F076063C9B7444A + C85C93C991B03A5E20340E8285EBEBD1A1ED7EBB577101C086E2B3646CC8F8AA + E5AA7958939438623B437B85E8EDEE45CBBD07138A0B00D6179D21EE9039545D + E713A0714A3652D6247BB19DF61C3F4DBB160FD58FB4C30EBCDD5D6CD04E0A90 + 79B096B843464C714194969C3AE6A879BF0D1C449BFAE184101E808CFC2F893B + 644A15E77D02DC08CCC5DA94F409C3C6BD07B8B1838768F30AE10158BB4F45DC + 2123A6B820CA4CCDF408D1E31C103AD3D1AE416B4B5B9BC66158C43E035CE300 + D23FA821EE9011537B1B92D1AC6B12D53B5AE42F367E977A75800390389BD73A + 77749BA437ED7F0086ADF44E1F05CB910000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_13_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000053F4944415478DA + 9D977B4C536718C69F0ACE4E654A949920866D997FE8D825FB674B86415490CB + 14611024CCA8934B14070A3A44A154DC246A90B909E5E20C2C9A8DCD893295CD + CC614CA6216E31D38156904B8152684BEFA5D77376CEA9941E5BDA1E9EA4F9DA + D3EF7CEFEF79CF79BE9EF2C05185F51D24B73378774D3672636D5EB4DEE3B7B3 + 01A8CA590BD20F0C7ACAA53B62748A653342F80DC0D579F8B245C88E7F0777BB + 47A0D29971EFB1D423042700AECE656A23D6BC158A09BDF939C4C8DF54F5F886 + DC68C5AC01EC847F8DB8FD7088292A19D720FADD150CC484CE847BDDD24706BD + 7E5DC3814D8A590158EDFE013C912830AE996420FA656A064263B440A935E16E + D750D7993D1B223801ECAFFB933C9D1B0D939540C9B90EAF732BB3A2A1D64D42 + AE313210B4F3FBE2512C0EE2630E8F8751B91ADFECDDC8E3045050FB07F9F5EE + F5305A08BFE6CF0B04E4EA6908DAF9C3BE317CB02A0C373BC5385B10CF0D20FF + ECEFE499BC58E8CD761C6EBCE575EEF1ECF5181CD3E0CEA321680C66E771DA79 + 517A244E5CB88DDAFD89DC00F69E6927BFCD8F8376D2EEEF29A0EFD761B99681 + 21A8F8D0CE8FEEDA80D2FA76888A36B3017CE5DC6434A2665F02D4461B4A1B6F + FA0D41AB62570CF4262BE35C48BD2FABBF81FA835BDC01BCE53CAFFA57D4146E + 82CA60E354DC55B4F3F2AC3894D55D4363718A678099729E77BA0DB5454950EA + AD1034FCC6AD033971CC483B2FCF4E80A0F62ACE1D4EF30C3053CEF3AAAE4074 + 20190A0A60B6A29D97E72442507305E74BD3D900BE72AE57AB202A4E855C6785 + B0FE9ADF45F590A26F4103562E8DC0DCBECD10E626530097D124C86003F8CAF9 + E7A72E4174288D01F057FD2A31F65E4D4160A80D26AD057CF99B68C9BA8E63D4 + 2568167ECA06F095739D6A027525E918D75A71B4BE8D394682A01698E3B1B881 + 72FE0FAF0AAFBC1180054BF9CC6C659F166FCFFF0801E2045CACD8C906F095F3 + FC933F4274388301A095DD1A8B49AB01A7137EC2AB0B97B3E60EA89EA2E05A0A + F8613CAAF8CBD41E60A75E8413E225D9EB7860FF6B1E84B03801F6545F27BDE5 + 5C3BA184E848260370ACAE151D8179085FB902B21E3DDEB715818F608773DE28 + 1E04562364E5420485CC0741104CF12908BA6B34845E616A1D2C99487102ECAE + 6A23BDE53CBFF22244A5DB30465D4B5A31E7972332E6430C0F48611CB5A33AB1 + 95E948E18D4FB0F8353E168504C1EE52786AA48FE9E5060A4223192851853B01 + 724F5D21BDE55CA3944354B69D02B0E22BD12FB8C3CF47546C24B3F0D0E00846 + C53A103C0BC2562D4130F534C41423D8C5E9512DD741D56386C5668C900826BA + 9C00D9272E93DE72BEEF78336A053B18005AF14D61581717E55898704004CC0D + C09265C12F389E2EAEA21E4EE4620356EB72D15659C6BE09B38EFF4C7ACBB946 + A9404DD94E8C3F8F6142731862E2D7B3DC395ACE766C271CA3724C059958038B + D5E17C6A5D27C0675FB690DE725E54D9CCFADC197C087189B1CF6F3277B7840B + 8C5CA6C4F06325566BA79DBB01ECA8F8817C31E7DE748B978BC48FE35985DC20 + 28B8B1D171F476F72B492B2FCAD5B91BC076E105D235E7BEB4B63114499B3739 + DA4ED83D42C8A4323CF9AF67C6E22C806D82EF49D79CFB12BD0FA424257B68BB + DD19BFC17E099E89FB241633D648852A895780CC234DA46BCE7D89DE07D29253 + 5DA2E6F932D010BDE26733423801324ABE235D73EE4BF43EB035257DC6CD66EA + 1EA0C70106A2D7238413606B7123E99A735FA2F781CCD44C6721BB5B07D89D19 + E81FC4D327BDBD8366D52AEA37C0E60690FE4503E99A735F3AD89E8CAEF1FB7E + CD9D16F92FB5FDBEE7B1033400C7D53CAAE5640EA77FDCFF0346C6135D8EF167 + 690000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_14_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005474944415478DA + 9D977D4C13671CC7BF1544E74B0CBECC4CDDDC962DCB8C338B7F2D190B22AB02 + 0E152241C37C45212A82884E51A84C9D4E37A66C42797146371763DC7C21A89B + D9A63151E75E623645A9A0D2A2055ADAEBCB95BEDEDDEEAEF6E895EBA5E73769 + EEF23C4F9FDFE7F93ECFF7AE5541A136355C61947D4375C31360E6D6AD4F2125 + 7B9F07A0BA6016981830B8213F5ED3E196AE272AC4730350746C465CFDAF0B84 + D38B9BF78D9210310128B57DEAC431C84F9B8184F8216833F4C164773F8378FA + 375B3DBDB130A54F318052DBFF68EB46D5B224F4BBBD30DBFB7908ABD3839BF7 + 8C775C2439BB7173669F6200A5B63FB53851903103767200C2E2F0E0466B576B + CDBA0FA72B06F053B10184DBDE6E24307A440248B74FE8EF36DBF075D15C55CC + 00A5F5BF335F15A6C0E3A7517EE48AECD87DAB536073BA45B63FECB6413DF375 + F45849D0EC3E5EBEA5C3E192F4D8014AEA7E650EAD4D45BF8F8EC98161F180D9 + E616D97EFDAE013B972583F4F8B1FFC455D495CE8B1DA0F8F02F4CCDFA3920BD + 14B637FD263B76EF9A54E87BEDB876A70B76975764FBCE15B3F9FB8A864BD096 + CD1703C845CDE7F1E09BE23438DC544C0E70E2CEEB13B3838709D9AE5999CAF7 + 55365C44C396858301A245ADA8E6226A3766C0D61F4045D3E5982138EDCA570B + B66B56A98300F52D68DA9A2D0D2015B50D875A50BB2913842BA0A878B838DB2B + F3D3F87B4DDD791CD99E230D2015B50D079B5157B60016D20F4DE3CFCA1C2848 + 136CAF5C9D1E04A83D87A315B96200B9A8B99C0E683767A18F0550AAC7561D4A + 2FE48122C7E3547E33E2870C6501CEE098668918402E6A25D567A0DDBA0866A7 + 1F550D2D31172761446BC221C44F0AC0E3F0E19D11EF638FFA2876B35B70BCEA + 6331805CD45C761BB4DB72788070510C8538559CF4CA091D8ACE67B3C5298C1C + 3F1CDC5BC2F2C8C143C4E932F0C3AE956280A29A4B4CB4A8957C791AF5E5B930 + 39FCF8B4A1996FFB53B5070178319329C5708C1503B32BFF47558DB16F0C638B + BFC0C690623FB40091D0F31A6E53D787A10A3E0160DDC10B4CB4A8913602DAED + 4B78809066354DC2D4375F86BB9BC6E1CC737871D464BEBD93788092966C8C7C + 6528464F18019AA6F9E2210806340F41F679CEEACBADD902C0DAEA66265AD436 + 1E3809ED8E3C1E6077FD59BEED4AFC7A24A9DFC3934E23BADB9D98192803A5F2 + E076FC41BCF4D6188C99309ADDA281C2A12BD7469A5D2C84DDD0594E4C15000A + BF38C7448B9A93B0425BB114BD8E81379AFAE86424CF49E227EED23F45BF9182 + 877263DCABA390C8FE20E18BD1E2E2DCD566768268F7C217E89F6ED0585B0580 + 35FBCF30D1A256FAF9F7D0562E6701FCF84CFB13DF766D783166A7250727A683 + 107143E3306E6262C48A078A13263BCC3A17A6390BD1BCAF527C0857EF3DCD44 + 8B9AC36A419D66050F1052FAB12950A7A78A5617B45CBC628A0E5E2DBD04BA74 + 460BE35725732B0FCD2300ACDA738A918A1AA7B27DC7515BB912A6B0BE8CE353 + 90366FCEB3433678B574188CB9C78227F72DF0F983B687CF2D00ACD87592898C + 5A780A22752B711BE67D942E2A34088285EBED36417FCF84698E01DB25019657 + 9D6022A326272E860BE667066DA72949881E630FDAEEB60FB25D1260A9E63B26 + 326A72E26298BD204BC2764A889FFEB1010F758F0C3E2F3E305611065980BC1D + C798C8A8C9898B614ED6A2B0A8496F0307D1A17B181542005852FE2D13193539 + 71315C9C9D1BF561133A03DCB59387E890841000166F6D6222A326272E86798B + F28442D42007C4CE743ED6E3415B4787DE4BBCCDBE03028300723F696422A326 + A72D97B2D06AFA2BA6B10362FE651FBFEF4A3AC001289C4D52A70E1428FAC3FB + 3FCB8A345DA96091B50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_15_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005474944415478DA + 9D977B4C53571CC7BF4544E623C63963A22C6E7F986C862D4BB63F96CC459195 + A7E8683448D0880E65A801011DA2D030743AD974A2427938A3C43D9C2F646C38 + 33873119C66CCBB239D02A0A2D58A0A5B4F4017DDD7B76EFAD5C7ACB2969F926 + CD6D4F4FCFEF737EDFEFB93795214415D4B692D07E216B7378487CF5CE181BF5 + DBA9001CDBBE1224080C7ECAE53B6ADC53F70784983200C306D788DBFFF6C064 + 75E2EE031D1562CA006E26388087DA41E887479F433CFB93AB9E58971D331834 + 40A89EF3D6109611DE1FC98A81D93A0AC3F08800316475E06E87EEBEDD665B55 + B72765306880503DEF33D9B139EE4D44848761463860308F43182D0EB4B5F7B4 + 57EEF8203A2480503D6FEBE845C9C6E5E8335A71E77E0F86ED4E714E9FC18C93 + BBE26521014CC5738DDE828CD868444684A3D760816660182CD7CA9BF7D4389D + 97181C407ECD6FE478760C1C6E16C5675A279D4BF3BCADBD176E97530847F947 + 72D81C6E1CBD701BD5F9C9C101E455FF4A4EE4C462C4C506D5019AE78F9F0D21 + 67CD3BE29C92DA16A80AD7480102A5DDE376A172671C6C4E06FBEB6F4D5AFCF0 + B658A1CD34CF5D0E27CAB727089F4B6B7F46EDDE0F2702D0D29E7BEA064EE526 + C032CA04D5015E7C5EFD3D2FC98C15BF2FAD69467D91820EE09FF6DC932DA8DA + 9D04F3880725F5378386E0E5EBB987CB4159F66A615C597D1D67F6AFA703F8A7 + 3DAFB21955052930D93D2115F715EFF981ADF1E267655523CE96A4490102A57D + D46E4375E15A186D6E28EB6E84D601CEF3A7436A647EAFC06C12851FB27E4478 + D8740EE02ACE29D3A50081D2BEFBC475A8F6A462900308555D5CF18F1B5311BE + C80387C5853766BE8743F2B338C85970BE6CA31420F7F42F8496F651AB05AAA2 + 753058DD28AB6D96142060B905C2A8C56DD0A13DE204579CC1AC972285D9C6A7 + 1601629A3A09DF946F9102ECAA6C21B4B4E71FBF02D5BEF50280AFB65C9663D4 + 6D4765CA252C9CBD58BA73931ABBAE2B101925E38ABFC09D04867BB1224444FF + ABF89BF97D06CAE01201767CF513A1A5DD6EB1A0A6380D7A8B1B9FD63689E3B7 + 64D958B2F4650C3CB6E36DB2179178D13B9FDBF95F61C7B060E92CCC5930132C + CB0AC5C720F8AEF110B641C7354DF1904204C839D64468692FF8F22254FBD305 + 005FADAC5F84E5F277D1DBADC3481F83D3298D18E13A92D7ACC0DC57223177C1 + 1C303E85C7AEFC98CD60E72086B5DDC5A6252240F6178D849676BBC50CD5810C + 01E060CD3571BC357C2756C42D1716EED13C43DF232B58990B51AFCDC7BC8573 + BDC5586971FE6A3658617AEC84CB3312AD550EB58B00DB8E5E25B4B417567C0B + 55C9260C7029F695FCEC62AC4A58E15D98F5424C9B3E0DF317CEF3DBF1787193 + 7E1806B51DCBACD9683A522A0D61D6E14B849676ABD90455E9660EC08DCF5457 + C4F13B91B99027C64A76E76DB974C70CEBBD1A074CE851EB8CC42D5BC1EF7C6C + 1D1160EBA18B8496F63D9F37A05A992900F82AF15C141292E39E876CE26E591F + 1843BF115D0FB4138A4B0032CBBF23B4B4DBB80E54956E81DE0F2CE97C149257 + 274A0A4D80E0E006FAF4D074E8E1727B3DF7BF5F88009BCB2E105ADA8B2A1A40 + D3BD79FBB0764D8AB7ED2C4385E8D7F5E3C97F3A2CB38C7B1E106093B281D0D2 + 1E48FC2950AC4DA5B49D118F9FA64B8B27EAA75AEE41F8BEAECCA49D1420E3C0 + 39424B7B20F1A7607DEA3A9FA346B78187E8543F09082102A4177F4D68690F24 + FE146C50A405BCD98C6580BF760B109D5408116043513DA1A53D90F85390B12E + 432CC44CE880B433DD5D1A3C7AD8D9A9719A5EE79E019E0900699FD4115ADA03 + 696F4B2ADAF57F0435775CE41FEEF6FB16B5033C4088AB5175B1627B48FF37FF + 0712E74F5D999BDCD50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_16_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005474944415478DA + A5977D4C13671CC7BF054454D4E8E688AFCC25CBB245CD92ED8F257351141044 + 4588060D127553992F41141882D030741A5D70A0D2F2E28C1A17E7E67CDF9866 + 0E43A2CEB865D91C62270A14AD4081BE5D5F8FBB677757397AC7155BF64B9A27 + B9E7B9FB7D9EEF7DEEDAAA1064EDACAE27C19DA1BAEDEA238B345B6328C5D9E1 + 00946D9A0F120006BFE45C830E77751D7E21860DC0B0810571F3EF76986C6EDC + 693228420C1B8066020378A8EF4697C5F902E2D9EF5CF7C49ACC98EE6103ECA8 + FA951CCA8C818B665170AC7EC8B5FB37C4C06C73C268710810BD3617EE3C30DC + B753D4829ADCA5DD2F050856B819AF8DC3DAF839080F0B118F8D0C038CE60188 + 1EAB0BB71BDB1B2BB6C4CE0A082058E17E7B68401F4D0BC7F66D5C88B64E0B1A + EEB7C362778B6B9F1BCD38BC6D912A608060857BDA6DC39AD8D96212FCE94F8D + 560186E57673FDAE0E47B727060E301CE1B898E1F170BBF689AFF49338502E1A + 074EDF846647D2CB01FEAF708F0D6664C4CDC1285E049F2AAAAE833667991440 + 4938866150BE79211C1E36A0049484BB755F0F8FCBE94D605382301657FF84EA + BCE58301E4C2656BAEA3626B3C283783C2DA1B43361F4AB8C28C18C9DAE2AAAB + A8CD4F5506F0152EFBE8351CC94A80D5C90494005F4AC2F5275092B94418D59A + 4B3856B85219C057B8EC2375A8CC5E0CB3A30F45B5D7038610E2F611AE705DAC + 644E5D7911C78BD2A4004AC2B99D0E54EE5C0A93BD2FA8E6BE955D750CF7E832 + 44623ABEDB70056121233880F338A15E2D05D8AEF985C885DB79F80A3439C9E8 + A168A86B7E0E2E014EB827BD3A649C49C2B83742E0B27A307BF487D81B771C7B + B85B70B2648D1420EBE8352217CEE5B0439B9B826E8A566CC21006A1AA50C5B9 + 16AEF9A71753103685C1985723C0BF2B7B9E58058850DD627C53BA5E0AB0ADA2 + 8EC885CB29BF006DFE0A186D344AAAAF4A1ADC614BC1C085F743721181899239 + 0A0634869723629A8A6B3E8A9391E13EAC0811DE31137F32B746A2041E1160CB + 573F12B9704E8A8276D74A01405E73AB2623FACDE9703D67A1597E09519153BD + 3B37E9B0ED522AC6CC1881B19346836559A1793F04012B4050DDAE0B6D05BDA9 + 22C0E6B2CB442E5CCEA173A82A48439795C6E7D5972500375499981BF7019EB6 + 1AD0F188C27B244F48E48F90324C7E6B1CC64F1ACBDDA281C6FD237F8C32DA39 + 088BBEB5C0142D02647E7991C885735256680B570B00F29A5F3B05F3E2E70A17 + 6E6F7B068781819B7162E2EB91981035DEDB8C9536E747B3D106D323373C7D8E + 597A756FA308B0F1C07922172EAFEC5B6877A70B007BAA2E4800EAC3B66241C2 + 3CEF85592F44E88850BC123541B6E381E6A62E0B8C3A3BDEB165E2F2FE62A984 + 1BF67D4FE4C2D9AD5C024519E8E41E2179C51D9F8AB8C48592DD792397EE9861 + BD634FA709ED3A430FA155F3F89DF75F4704F878EF5922172EEFE069688BD772 + 0034BED0FE20016888C8424252FC0BC906EF96F5813176F4A0A5493FA8B90460 + 5DE9192217CE6E3143A35E2700C82BF1C434242D4994341A04C1C1753EEF42F3 + 8316C5E61280B525A7895CB8FC83A75059BC1E5D0A8FE1E293D390BC6CA93776 + 965184E83074E0F13F067868AF7050281120437D8AC88573D86CF0577727EC42 + 6A728A42EC8CF8F8B5B5E8D1DE6402459BA20D2526FD9000E9BB4F107FC22915 + 2FE1CA94153E8F9AF26DE0219A758FF5DCAFB38F94204480D5055F137FC22915 + 2FE1AAD434BF2F9B7E07F8B15580685684100156E5D7127FC229152F61FA8A74 + B1113328016932AD2D6DF8F76173739BDBF436F71DD0370820EDB31AE24F38A5 + CAAB4B4163D7BD80D60E14F98B7BFDBEAB98000F10E4D514EBECC14D41FDDDFB + 0FF53C585DFAAF5B570000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_17_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005434944415478DA + A597094C14571CC6BFE550BC6AB435A48AB53569D24393264D9A26B55154944B + 11A2418267CB518F78201650D850B41A6BA95A6177396AB4DA18ADF5A05A2B2D + C590A8316DD256455D45815D5D6117766177F69C9D99CE0C30CE30C37617FFC9 + E665DFBC7DDFEFFDBFEF0D4185102BAFAA9109ED17AAEB1E3FB350B32196507C + 3A1C80F29C396082C0E0969C69D2E3A6BE63488861035074708DB87ACB089BC3 + 8B1BF74C8A10C30620A9E000EE1BBA60EE75F7433CFD8B554FA8CE8DED1A36C0 + 56DD1FCC37B9B1F090348A6A1B03AEDD9B158B1E871B965E170F61757870E3AE + E9B69320E656E72FEA1A16C066CDEFCCC175F3E0F2D141AD1F1901587A9E4374 + DB3DB8DE6C6C3EB47EFE8C8000A1A69D6153E92749C9DC9EEC7968EFEC45D36D + 237A9D5E61FE99A507DF6E5CA8FA5F8050D36EB23AB162FE4C8C8808933CE7F2 + FAC462E7616876C3FA9B7A546C4E080E20D4B45F6B3682F47AFBB1A455F6691C + 080F897D27AE42B335293880E1A4BDCD6C4746ECBB18C50540A18AAB2E43BB6D + B11460B0E79CA72F92F66B778CF0B9DDFC3E420772E2F9B1A4EA17546D5F2207 + 107BBE55D780174DFB8327566427BF2F5B5BA2BB889A8234658001CFF3B4BFE1 + D0860520BC1476D43404140F94768FD3297C2FCD4DE647B5E6026A772C530618 + F03CAFF20A0E6F8A87DD4D05D501AE94D25EB86AAE6C9DBAF23C8E14A74B0106 + BFE17C6C922BB724A2C7E547714D7DD010BCD7A2B45BDD2DF8477518633115A7 + B37E464458240B701647D5195280C16FB8FC8A4BA8CC5B049BD31F92B8B8B6E8 + 6A712BBC1C1193FDF0D87D9839FA23EC8E3B825DAC05C74A57480136555C61C4 + 9EFB3C6E68B6A5A09B20A1AEFE55518001CD6E10269BE7D2FED8AAC7CA934978 + 697A38C6BC12C5AFEE7E6CE721C2F589F8A16CAD1460E3A1CB8CD8F3FCC375D0 + E6A7A28B2015C5579D9E0F37E94445CA19448F9D2279D6CA8A7F763E1551312A + 567C149B078AFDD002C4888E37F037756D244AE11300D61FB8C4883DF7BA5CD0 + 162C85C541A2B4EAA20CA09ECEC2B437A7A2F3A1131F8415220A13F979022634 + 8F388831AF4562DCA4D1A0699A171F80E0BAC641105D9E73ED45D63401605D79 + 1D23F67CFBC1B3D0162EE301946A96EE55CC8AFB104FDA4C703FA3A05972012E + 92C0C60B6918FF7A14C64F1A074A243C30727384C5C942F41ADA8A6CD30480DC + FDE719B1E71E9713BAA27498ED24BEA8AA930134A872317BC12C7E6363FB5374 + 3C2040A97C88796B2226448FEF13A3A5E2DCD86371C0F6D00B9FDF35C3A0B636 + 0B00D9FBCE3262CF0B0E9C867647060FA054736A26636EFCECBE8DE93E88F0C8 + 70BC1C3D61D0899F8BDBCCBDB0E89D78C7918BBABD25D21066EDF991117BEE76 + 12D0EECCE40176E9CEC9001A2336202E619EE4747D2D979E98A2FBC6EE4E1B8C + 7A533743AA6673271FD84700F864F72946EC79C1D727A12D5E894EF6FE2A55DC + 9129884F5AD01F32F96969118CA5A31BADF70C327109C09AB2938CD87397C30E + 6DC96A1680C497DA9F64004D519B90949C20119241B0709DCFCC68B9DBAA282E + 01585D7A82117B5EB8FF3834EA353C8052251C8D41CAE2457D6DA72945880E53 + 07EEDF7938A4B80460A5FA7B46ECB9CBE14065C95A9887B88689C762909692AA + D0764AB87EEDAD063CD23F36F8BCF8D8546A330404C8DC7994117B5E5C7E1C81 + EAE684422C4B5D2ABA6ACA3670102DFA47434208001945DF31813C57CAC0F2B4 + F4215F360319E0C6361EA245114200585E50C304F25C2903994B3305214AD601 + 6967DA5ADBF1E07E4B4BBBD7F636FB37C02F0348FFBC9A09E4F9E0DA7E3915CD + E63F835AFBBC987FD9D7EF7B8A1DE00042DC4DB14E7D9513D27F5BFF01650661 + 5D164874150000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_18_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000054C4944415478DA + AD977D4C13671CC7BF155054D4A8336C2AD32DDB1F5B24D93F5B4CC6A2802088 + CA20386468D40D61BEC437E4A5080D4387711B0A0A7D0166746A8C6E2A43268E + 4D3166EACC96EC05513B5168ABB550A0405BDAD2DEDDEE0EAFF4EC15DABA5F42 + 9EE4EEB9E7F7793ECFF3FB3588E063EC523453BE7D21BA6975504BA55B224D82 + 6FFD0128CB5C0CCA0B0C66CAF7D795B8ADD47984F01B8020BD1371ED1F0D0C46 + 1B6EDDD30A42F80D6027BC03B8AFEE4657BFE519C4933FE8ECF1D55991DD7E03 + EC945FA50E6645C26A2721AE6D1E75EEFE8C48F4192DD0F70FB210BD462B6EDD + D5B6984DA6A8EADD2BBAFD02D82EFD852ADF148DC121D2ABF91302017DDF0844 + CF8015375B35AD159B972CF00B605BE54F54C59658986C040A6AAE8C3AB77463 + 34549DFDB8DEA241BFD9E67CFE54DF87C35B978A3C02F85A6A61B3A662CD9270 + 8C0F1C27F89EB9AF8FF5032C0C49974FD36D252AB7C78F0EE06BA9D1170C769B + EDD913E128F9340626AB1D074E5E837467C2D800BE969AA6DB888FA31620C883 + 092E0A158D9065AFE4033CAFDDDF52BB7147039B6590B6E7FE6D49661C3B1629 + 2E4191F3A13B00A73DBBBA192F526A6DDA3EA44585632253020251246F404D5E + B23000A33D5B71152F5A6ABFB6A86033F33B6F71D6727694487F406DC12A6100 + 46FB6EF9CFF83F4A2D377DB1E03792AA3A1C2D4CE503B876B81C59138E6C8BC3 + 8085F0CA001342A566A10D98A1C55FA223084118CE665C44E0B8201AE03C8E49 + D2F800AE1D2E477A19553B96A16FD081C29A26AF2198702DB58F9687617B4332 + 02673B601D1842F8A4F7B12FE628F6D24770BC780D1FC0B5C3E5565D42D5AE15 + 30981DA32623280201A200C1773BE4B5F8CD5E8AA9AF0762F24BC160FA43CFA3 + 01162240B90CA74A36F001B65634529CF6DCAA0648B313D163B243527D5930C1 + 4D87040ED8F06E402E268A668E18A04BED51AF126B4F2760C61B13E8E413E923 + 21E83FD209315EF71AFE246E4C4031869C009B0FFD4871DA732B2F42B63B09DD + 3480A758287D19F3DE0C835547A23AA91EA12173D8E7ED74F2CFEA9230F9D520 + 4C9935092449B2C939080A240B61EAB65E50897B939D009BCAEA294E7BDEE13A + C8F252A037DA51AC6810046822331011B3108F3BB4D03D30E1BD71F9B4112B5A + C79763DAFC604C9B35853EA291C4DCC83C33E9CD3444BFBA436C98E704C8FAAA + 8EE2B4E71FBE0059FE2A16C05344C85FC1A2D80876618DEA092C5A0256C28219 + F343303D74DA7032929F9C19FBF446181ED830E4185CA096F4B63A01361E384F + 71DAF32BCE412E4E45D7801D9F2BEA0501AE88B21015B7687861721822202800 + 3343A73FB7E391E486AE7EE89566BC6DCC42FDFE22FE25CC28FD8EE2B48BCBCF + 425690C602788AC535B311131FCDDBDDB072FE8E097278ECE93440A3D4F65076 + D12266E7DC3A4E804FF69DA138EDE2436720DB93CE02EC955F1004680EDC82B8 + 84D86797CC7DB7A40B8C5ED783F67B6AB7E43C80F525A7294EBBF8E069C80AD7 + A2936E1E9E22E6E81C242C8FE7257283A0E13A9F76A1ED6EBB60721EC0BAE293 + 14A75D5C760AB2A27534801D5FC8CE09025C0FDE86C4952B86B5938420844EAB + C3FD3B0F3C26E701AC957C4B71DA0BBE3E01A9643D0BE029E28FCD4572629280 + 76C2597EAA76351E2A1FA9876CF8405B6C508F0A90BEE718C5692F2C3B81AAA2 + 0DE81AA50C971D9F8B5549292EA5267C0C0C449BF2A1470827409AF81B8AD32E + 39780263C5EDE9F9589D9CEAB1D9707780193B588836410827C0EABC1A6A2CED + CF1F417A4ABA3311E166806FA6A35D857FEFB7B5A96C86B7E8DF00871B406A6E + 35359676D7C8694C426BD7EF5ECD1D09EA6FBAFDBE23688001F07135C138F365 + A64FFFECFC0738AF4B5D4B133E140000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_19_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000053F4944415478DA + AD977B4C53571CC7BF9522E063C439A2538CCEC43FB6B164D93F33198B20A23C + 7CAC0482CA88B2011571A2A2435E4D051FD3CDB7F4018CE1C636744E10993832 + A7215163B6C439452DA240915A2850282DB494DEBB7B2EB670D787A5FA4B9AD3 + DC7BCEF97DBEBF73BEBFA63C4C3076C8AFD2135BC1BB611CA15748D243F50EDF + 7A0270383504B41B1864CAB906056E29D44E213C06B050EE15E2DABFEDD00E98 + 70F381CA2184C700668B7B000F95DDE8EA1F7A0ED1F137933DB25818DAED31C0 + 76D99FF41161288C660AD9A5575DCE3D901C8ABE812168FA075988DE01236EDE + 57DD35E8F54B8B77AEEAF6082043F2077D2C2D0C83C3945BF37DF880A66F0CA2 + 4767C48DC6F6C6E39B97057904B0F5D4EFF4F1F4E5D09B2CC829B9E272EEFE94 + 30B475F6A3E16E3BFA0D26DBF3679A3E9CD8B282E711C096E375F4C9AD11D00D + 59DC5E43EEEB538D8E85A118FBD4DF52E05446A4638089FA9CA228984D44DD8B + 97157C1E0EBDD18C8315D720D91EED1C60A23EEFE83560FDD22078F327B9059D + 27AF833473351760BC724F7C7EFD9E12C6A121B8222F488D60C77CF925C8777D + 620F401267165F83A73E6F61CE382EE45DF84DE6BB5C932FAB4549568C630066 + C4CBF8FCFA5DA612063D53087B0162E14A7614492EA03427CE31C036E915BCAC + CF9B9EF62229EA03A76B4445D528CB8BE702583B5C46513D5E85CF0D3A1DFBDD + 0015FEE19DC434CCC3D9E48BE04FF26600CEA35CB48E0B60ED705F9CB88C57E1 + F39D09A168D53621A33606FC392330EA86F1DE948FB037BC0C85CC119C167FCA + 05B076B8F4639750B42D0A7D8323C82BA977999806C56C3066BDF13EEF362870 + DBEB285E5BC8C7D4377CD9D93D4F742C8497220A3F16247101AC1D6EF3918B28 + DAB10A5AC388CBE4EB2B9761D06C804C700EB3A7CDE5BCDB262BC51DAFC3F00B + E431C9FD98AA58980F658398AC7E0BB72DD77D20C6B00D60F3D1DF68A27CD337 + 1720C95C831EBD19A2E2CB4E012E9B3762FEA279E86C36E043AF5CF8F166B23E + 7FD2AB4062653402164DC5F480296CA724C9AD10A46A0442DF6DAC6ACBEE8DB1 + 01A41DAEA18972E1A12A48770AD0CD00B88AC592D9080E5F8CA7AD2A0CA92D28 + 16D430CED16353B500FE0B7CE11F301D967189AD2379A6D71818887E656BB676 + BE0D40F875354D940BBF3A0769562C34036688E5B54E01EAA9642C591ECC6EDC + DED60175931E3E7EC0EB0BA661C62CFFD16414373919FB3403D03E3261786430 + 4829EA6DB401A41C3C4F13E5A907CE42BA3B8E057015C1B237B13462C9E8C6D4 + 288497B71766CE9AF13FC563C9B55DFDD0280C786740889A03F9DC4B98BCFF17 + 9A284FD9570959763CBA7466EC91D73805B8C213223C328CA36EB4E45CC5166A + 74ECE9D4A25DA1EAA1CDBC2544B9751F1BC0677BCFD04479EADE9F20CD59C702 + B88A90923988885EFEFC92D9ABA5C6C168D43D6879A0B44BCE01D858F0334D94 + A71456409A9BC00214CAAA9C025CE5A7237A652427911D0403D7F9AC0BCDF75B + 1C26E7006C1057D04479CA9E1F20CD4B4427D3B95C4578D95CAC59BD6AB4EC94 + C521845AA5C6C37B8F9C26E700248ABEA789F2147139A4F91B180033F6497F75 + 0AD0E0BB15316B040ECA6EB1D9AFAD4589C78A27CA61133E5689B54A970009B9 + E534519E2A2E8344B49105701591E5818813C48EB39AE3632010CD8AC74E216C + 00EBB2BFA58972210350949F84AE17D830EA7420D6C6C43B6D36D63B40C65616 + A2D921840D606D56094D94A7EDF90EEEC4AD19BB91109B604B64B1AB00B732AD + 2D6D687AD8DCDC66D2BECDFC068CD801C47F594CBBA3DC1ABBEA0468ECFACBAD + B96341DF61DAEFFB0E2B400026B89BC33873287542FF35FE0326171E5D994CE6 + 8A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_20_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005044944415478DA + ADD67D5014651C07F0EFC921628063C6E00B8ED54C3515CD34D31F39130D6F81 + BC880481404462218CE280A24520DC101A8E35668470C78B0C363665961A921A + 6538649233CD582AC809CA71E07170C01DF7C2DD71B7BBEDEEC9E1762FDC9D3D + 33CC32CB3EFBFB3CBFDDE7CBF2E0E6286EE8A4DC9BC1BB6A30531BEA0B22B476 + FFEA09E0705E38281718CC25DF7789714D2C7788F0184090AE35E2F28D612835 + 4674DF96D945780C3011AE01FAA413189FD63F40DCFF8BAE1ED7981F31E13160 + B7E837EAF3FC08184C244A9B3B9D5E7B3037022A8D1E8AE9191631A531A0BB57 + 7653A7D54636EE4D9CF0085054FF2BF5C5F628CCCC922E5DEFC30714AA79C4A4 + DA80AB3DC33D353BDE08F1085078F467AAA620065A2381B2A64B4EAFADDE1685 + A1B16974DD1CC6B4CE683D3FAA50E1CB9D1B781E0176D65CA06A0B63A1D6132E + CF61DED711859AC590F4F6E9B826C6D1A238CF003B8EFC44D5ED8A876AC68CF2 + A60EB7E656BD1F0DADC18443272EA37E77822DC0DD90090E0CC0DB9121F0E62F + 720B52DE7001C23D9BB880B9E2EE864C77EF080C7A3D5C99549517CB1E2B1ACE + A3E183371D03DC0D19A94283CDE12FBADC890A513B9A4A521C033C09992BB7A4 + 3068B574231C6FCFCAFC8DEC5150FF239ACBD26C01F4C0A3844CBF4C85CD1121 + F05DCC773A575077162DE5E95C0093702449E25143E6CA0D0966346AEB353AC8 + F037AF167E588BEF72CF81BFC89B069C46AB20930B60128E2209FC1F21539C11 + C6FE2E51DE41517B0AF8ABCD30A867F1D2D2D77020BA05FBE94770BCF21D2E80 + 49389220E14EC8101441DFC0CB2664746A1574BC515CF73A8280A7F978EC8925 + 60F6CDE43D358BF012C7E3EBAAAD5C009370CC237035647E3796D300035EF529 + 852F6F05276452E283517CFE2DF806F3E8E2BE348CA07F482B62B1FC295C27FE + F0412566AD0026E1984750579C08A5CEBCE0EA5FA90DC2BA67D6C22827712CF5 + 1C56FAAD61CFEF1235E34F5335029FF5837FE052308B628ACF2128902C423B61 + 3833543A9562056C3FDCC676A07E4F1226B526081A2F3A055C34E520347A3D46 + 2432C807B438F5EE2FD0CD6A91FD6D02563D17806581FE7487E60BCF1D99735A + 858E464C4B25A5CA755640FE67675980706F322668C042637DFD4A84C584B237 + 1E1EBA0FFD280183598FC79FF4C3F2A065966224B7387354D1A1A5EC3762D63C + 1322154CF55801DB0E9DA6288280B024150A8D09950DED4E011D642E2263C32C + 37262D082F6F2FAC085AFE9F15CF17578E4F4321D6E1054D3EDA0E56705FC2DC + EA53960E7C94C602161AA1A255888E8BE2ACCED272EE8A09D2729C1C5362582C + 9BA44CBC3066E573F7B102DE3B709205884AD331AE36E1E38636A7804BBC7CC4 + 26C43C78C96C574B3E8451C82731785B6A539C03C8A9FA86DD05C2B24C16B0D0 + 086F5A8D848D719C4236081A37363A8E81DE41BBC539802D95272C8F605F160B + D82F3AE314D0C92F40D2A6444BDB49C22E422E93A3EF56BFC3E21C40B6E02B36 + 0985E5D918A36373A111DDB2062949C976DA4E58B7DFD0A01477C5F7A4B346BC + 2EAB544A9D02B2F6B552CC4A84155B6880099F087F700AE85A5288B4E4D487B6 + 9AFDC7C02006C4771D22AC80CCD263F43B4007912087052C34E25A83919192EE + 306CE6DE01E62861110376115640464913FB3D5057B115E32E6CC3F8E3C1C84A + CDB216226C3AC0ED8C64700877FA0606868CCAE7E9FF01661B40FA878D6E7D90 + F6FA8BA0E14BDC99420FEA1F3A7E5FB6DB0177018EC6C94FF3DCFAD4FF17E244 + 155D097AEF4E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyRemote_21_48' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004E04944415478DA + ADD67F5093751C07F0F764082A6A9664F9E3ACEEEACAECAEAB7FBCCB022410C4 + 1F4110704468213B7F1C246A04C26EA169D69121B231508E3AAAB3F24788625C + 26C7999E5777A6843A446103C7D818FB3D06DBF33C3D7B260F3E31E079569FBB + DDF76EFB7E9FCFEBFBD9F7FBD9441018F9CA8B94B015A2CB2E0FB55ABE2DCAEE + F7D34000653991A07830BC537E6A55E1AA4A372122600041F22B44CB8D1E986C + C3B8724BEB171130C04DF003DCD60C406F197A80B8FF279D3DBE5A1235103060 + 47D56FD4979228B8DC240A8F5E9C74EE81EC28986D4330589C0C62D0E6C2959B + DA3687DDBEAA7AD7BA81800079F25FA9AFB644C33942F29A1F22060CE63184D1 + EAC2E5F69EF6F2AD6F2E0F08907BE417AA7C5B2CECC3048A6A2E4C3A77FFE668 + A8FB2D686DEB81C531CCBEDF6730E3F0F6D5A28000DBCB9BA88ADC38588708DE + 6BBCE7B5D7606530247D7D9AAFAA70242F3E30C0D64367A9CA0FD7C0ECF4A0B8 + A659D0DAD20F626077B971B0BE05F21D098101B694355095F9EB607278842E65 + A358D904C5CEF55C80D00EB768FE1CDCE9D68257471AAD404E1C339628CF41B9 + FBADF100A11DAED7E8C03B912F22583C4D50054AAA1A515390E41F20B4C35D6A + 5363C861E7550999642D334AE53FE368518A7F40201DEE1E7DBA93DE588619D3 + C5BCD64A2B4FA3B638950BF8AF1DEE529B064EAB952E04B74139A0C55FA20A84 + 61097EC83E03F1B4601A701275D2742EE0FFE870AA5E23DE5BFD0A3BA7DBD481 + BCC62488177AE0B28EE0A599AF615F4C2DF6D25FC1D7B277B980403A5CCB8D6E + D89C63D7D1DBE16CA641DFCE457DB8167408739E1163D6FC50788FAEF19E9541 + 04A9D6E0DBD24D5C80D00E97FA1D5D2DB703B2883A386DB3D80E97971609B5B9 + 03F9E7DEC68CC5223AF90CFA33827E912C62BAEE695C237E0F810C232C406887 + 3B3B9489A5CF2E417FA71327B29A11267E9CE970FD969BB8117218E1CF856176 + F84C9024C9241F45502019847DC0754A5D3898C4028476B8572B166065CC0AF4 + D2CDC8A523702CF90C3EAB6FC2F5A0323CF25428E686CF06F150E2D1D1FB9EDD + E0A011164D77A169290B907C719A92EFDC00A3DD0D69F5F92901E7DD1B1111BB + 9279708FFA3E86FA080CDA2D58FCFCA398B760AE2F19C94DEE1DCD061B4C7786 + 31E2712ED74807DB59C0E6832729C5AE440CD0003EB142FE0456C545F81E4CFA + 1041C141786CC1BC7FED782CB9496F8141E5C0329B040D074AB887307BFF8F94 + A22019069B1B3265E3948066321B31F1D19CDDF94ACEDD3141FA4663BF093D2A + AD91728B22BC3B1F7D0E0B787FDF714AF1710A03E0132BAB9E445C42EC834336 + 7EB7E4431883CE88AE5B9A71C939808DA5DF535585A9D05BDDF844D93025E082 + 488284B5F19C44E31034AEBF4F8FCE9B5D7E93730059B27A4A5194CE00F84464 + CD426C58BFCE577692F08BD06975B8FDF79D0993730099D26F28C59E0C06B0B7 + EAD494808BE26D48DA90E8A7EC047BFDD45D1ADC55DDD38C0CE375ADCCA49914 + 90B1A78E521467A29FEED97C22A676115212931FBA6AFEBF062FA25375774204 + 0B482F3C46294AB268801B9F2A4E4C09680DCD455A52EA84CD66F40C78C76E06 + D1E917C102D20A6A28B9742303E013F1758B91919CC12622C655805B99EE2E35 + 3A6E7776AA874D2FD0BF019E7180D48FAAA9CA924DD0F3BC86BB9B12D1AEFF83 + D7DCB1A0AED3EDF765BF15F002043ECD6F1CFF3C47D03FED7F001FC5E04E9A5D + 00520000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E34944415478DAB5D77F4C94 + 650007F0EF717021865A6C225E2EA1F56B6365B619F9573F58DAD4659325CDB5 + 16641C2B9B92839031353282953A518EC390995ACC9546173F62B060ADB1DC0A + 173986202720DCEFF3DE2381BB03DEDEF7817BE1BDF7BD97F77D99DF7F5EF6DE + F33ECF8767CFFBBD9D86A66928C927D5ED8A1E589FB81286ED1B10A3D568C43E + D7A8017CFDC14BB2C7D775F4C2E91D8F88B8EF80B6EB4318F74FE3B6CD2B8A50 + 0D084ECB7BAE67C8052735C121B2B6A462796C0C87500C38606CA34FE4BE8AF1 + C00C8A6A7E931C7B2CFB65501353707A2882F08C4D62D0EE43EEF667398462C0 + 7E0670720E202771BA2858A9C03CC23781FED1BB28CC4C5307D857D14C57ECDB + 4A0005A616C9B16539AF61C046E1F7EE2150F7FCDCFD11BB07CC1C4B0378C7A7 + 143D77C735068BD54BFE6EB9D6AB1E907BDC4C1BF3761040714DABA2674BB2D3 + 9933318D2FCFB7809963E900B529AC6A1202E436DC3D1F85AA836F10003B9192 + 941A5E27D74F2B1BD8398400390593537E15A6FC37C9C9569B23A606760E7580 + F74B7FC037851904C04EA468E19C6DE45A5CF9333B873860B186CB2DFF11C6FC + 5D70FD1754BD03A200B90D47B99D3015EEC6A83780926A33B9D76E71637A3251 + 11E2C15536749F32683880DC86FBA8FC324EE7BF05E7D8EC0EB03BB6E5501D52 + 1E7D11EB9393C9BD68AD065173DF395AEDEC35461BC59BE7CA4FF5B07CBB731E + 20B7E17C6E378C87DE2680A3C6ABB3BB32E5C3F53B3A45888880C5DEEF0F8F5D + C099A2779833C01FD76B1DC4C7159DB2110280DC86F3D8AC0460F305515A7585 + BF3B3314FE198D9385900448C570B4165587DF2380F074F6DF40C9B99B78EAC9 + 34E8F58F70F7C51066B3990F307C554FB30DC7BEDF9FD5FC1A1170D76E130584 + 167FE2F117B026498F9868FEA10B4708004CC3D1721AEEC017E785A8192FFADC + 7AA4A46C42E29AA4D96D8ED64A221A1B7FE1039886A3D5349CCBEF429765396F + F150A410A200A50DD7DED38DA2EA5EB2F8CA87572356A7158C61110EFB288281 + 20EF60363735F001599FD7D1E10D2715C7A403FF0EAFC263C9CF6345C2FC7F1E + 8E703B6DB8D9F727345101DEDBD1DAD228042C6CB8C5F24AC1F758AB4FC3EAC4 + B582CF42083BF3CA0E0C5C43755E2A12E2E39151D2C1210480778F5CA2C31B4E + 2A7F5847B04CB719EB529E862EAC66D9501E07B7787AEA33E4E4750D5AE810A2 + BFAF870FD853544B8B355CA4048201EC397E11F4CC730284D8E2A184103A5D10 + 3D957B8500B186934AA7C381B807D23884CF6DC52DCB5FA28B87C27C81D1A15F + 481C20B3E02C1DA9E1A432E1F723EBD4776427E2573C8491E1BF25170FCF9201 + 0B113E2A0EA6FD1B652F2E00285E592475657B652FCEE67FA47DC2DF519ABE01 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004544944415478DABDD77B4C53 + 571C07F06F692982A26C26A2B265C2B257E2E21EC986FB6BEF49D4CD39E746C8 + B20C3729D94456110466A6630675C896A2F4E198EEE1A6CB82D30ECA0844CDB2 + 9891CCE9D8D280480505FAA24FD7D296F6AEF7400BD77B2DA765D93721971C4E + F3FBDC73CFF9DD226218066C4422116822579F61A8264E6659E602C8D63C04A9 + 24895780AD2D4A047060F393D480E3E77A6071780411FF0BA0F3E2203CBE20AE + 1A1D3CC4AC008120DD93D00F5A61717AA388C21796635EAA549430A0B4B183F9 + B4F81978FC2154379D893977CFA6A7E0F48EC362731284CD3D8601930BC56B56 + 10444280AD61C06793009AA4499330E2F44F215C5EF40DDB5195BF3231C07B0A + 1DD3B065150154A8DB63CEDD57F43CFA8D4EFCD23D08E73FBEE8F890C9868325 + 79B303383CE354F323B96E75C330E220BFB777F5240E901D38CD28E56B096067 + 53475C889A4DCF86F744107BBF6C876ADB8BB307249A4A958E0FD8A6394B75AE + 3C37DCA895E545EF249EB09F63B3A3B105EAEDEBF8009A0653764887BA77F330 + 303AB1A9A412BA959B9E5DEA16682AD6CF1EC0AE00130A911FAAC245ABC97567 + E3693455BD2A0C98A9C355AADAC24BB90AD61B01F8C727E6B29F999B9244BD02 + 8280F7959D541DCEEDB04359FE0A017CD4F433B9FB8E5E23826399713D867919 + 46742B64A228A0340CA0E970728516F5256B498B6557C01B0861F507279073D7 + 4A2CCBCE267324621192264F95583C714D167357A8F9C753307CB56E0AB0A5A1 + 8DAAC3D95C161CDE5E8061871F9F1CD521180CC23E6EC7C581E4B810B704CC74 + BEAB15CDD853B29E1CC3C8F31F0F31D00F1950A6ECA246F000C5F55AAA0E6733 + 8EA0AEBC00C6F0978C86AFDBC898744E2AB99A5C43F873388D0A1113102B3BEA + BFC75EF9C6F026E4CFEBECBE847DC7AEE0FEFB7291957547745C08A1D56AB900 + 59DD294655F61201B0ADF256718D5AB17B6B3EDCDEB1E8586A4A0ACEF7FD8D9A + 2F7A71EF3D8F63F1922C244BB89BEE66040F50B4FF24A32E7F99BCBB63EE8186 + 66DE98DD6FC3A5EB19C8C9790C998B974C2CB3441C13D1DAFA1317F076ED0FCC + E7951B08806D95B4B1FAACF8C33097533C9258084140A4C1D0E6ACBE1BD59A1E + 527CC1ED8B30472AE6CD611166D33002FE006763B6E95AB880C28F8F33EACAD7 + C8F9AED168672C6E1E33E3AF6B19B83BFB51CC5F3875E73723462D46F45EFE0D + A2243FE77474B4B7F20107CB37C2E2A65B81A72BBEC3D2AC5C2CCA5CCAFB5B04 + 610A1FD9FEFE2E68E4CBB1303D1D1B6ACE45113CC09BBB8E31CAAA7C02D8AD3C + 3923E0D79121A44A9FC09D390F402AE6BF889C3673B4F8730FAE203BEFC2D57E + 2682E8BBACE7020AAA8F3087AADF103CDF42F107FC28A8FF26FC327A9887102A + 1E4904219506A06F7C870F30BA02A855355321D89C379B9196921B45B8464770 + C5F0BB60F1283EDCBBD9FF9038AFE3D72B0E33AA0FDF228078E2F5F950A8F896 + AC44FAFCDB3074ED42CCE2D3F39F00A6235CCE34A84B1FA12A2E0888BBB2404E + ECDF4CFD2591ADFD2F72E313EEA93BF7120000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004674944415478DABDD77B4C5B + 551C07F06F29AB1BA38C491C63681C185FC9CC7C24CAFC4737DDDCDC50D4F958 + 2699821B25718A3040A8CB504670734303485B904C379D5BB6B047798D308118 + B3C8B2398306116C27CFBE803E46E98B5E7BCF6859B9D7725A8CDF845C7238E9 + EFC3B9E7FCEEAD806118B0110804A049B6A28DA19A389D95B14B20D9F23044E1 + 619C026C6D412880C3BB9EA6069CE8E881DE68E545FC2F808BD7FA61B54FE1BA + C6C841CC0BE09CA2BB13DDFD06E84D933E44DA73AB10B9482408199055D5CA7C + 9EF90CAC0E37A4B56D01E796A4AF8569D205FD988920C62C36FCAD352373CB6A + 820809F0BE07F0C534802611A2308C981C3308F324FA86C751B86D4D688077CB + 9B988ADD1B09205FD11270EE818C0D50694CF8B1AB1FA609BB6F7C483B86CAF7 + 36CD0F60B4BAA8E67B3368B0403D6224BFB774F6840E901C3ECFC8B29309606F + 6D6B5088E2F4673D7B620A9F7ED30279CE0BF307849A027913179053DD4E75AE + AC372CC879733D1C4E072A4E760455B854B2895C3FAC6A802237850BA0693025 + C73A204D7D0A7D3A1B412C8D5C18F40A14291A509DFF726880FD5FFF808FDE5A + 4700F2536D98B0BBE076D1DD8EA28CCDE4BAB7EA3C6A0B5FE507CCD5E10E1C6B + 437EEA5A0C1B1D64AECBEDF971D8205E1CE169B374FB8817F081EC225587B318 + C721CB7B05861B4E541E6F85DD2DC0D95FFB31658B0DEA3644466BD0552E11F8 + 00591E004D872BA96D86347D2369B10E1783099B1DC9FBEA9078F71AAC4C4820 + 73C28502844D9F2AA1F0E6758130CCEF73EACE9E83FA68CA0C6077453355879B + 30195199F71AB905878E5E206326C7383A55080AF1AF80B9CEF7679E2692BB63 + 0369286CBCFBA07B488D3DB24E6A04079059A6A4EA70E6D151E4A63D0F8BD58E + 9AD3ED642C2E268A5CFFD00EE2DAA0880A11101028A5354A14EC4CF66C42EEBC + FA2B97517E6A000FDC9F84F8F83B7DE37C08A552E90F901C3AC7C8F7BC481E9D + 9FD45E08B002061464A460D432F3748BBF231A9755BF435ADD83FBEE7D02CBE3 + E2B120DC7FD3CD4670001907CF308ABC97082050CA8ED473C68627F5B8D42B46 + 62E2E3885D1E777399C38501118D8DF5FE80774A4F335F156C2500B655D2C660 + 37E017F562BFE2DE0442F002BC0D8636EDDD5D64D9D9E24B6E5F86852221670E + 8BD06987E17438FD36667353833F206DFF094651F03A39DFC5D5CA398BEB6C3A + FC36108D7B121E4354CCCC7F3E1B31AAD7E0CFDE9F210873F89D8ED696462E80 + 6D307A0BDD0AACCBFF1E2BE293B02C7605E76F5E8456330295AA13D5D9AB1023 + 16636B71870FC101EC28FA8E91156E23808F6567E604FC34328445A2277157E2 + 8310CD6AB36C4C633A5FF1F50FAD263BEFEA7515E345F4F576FB03B64B8F305F + 4A5379CF375FD87781ED65DF82713FC241F015F7C68B10899CE8AEDAC90568CC + 4E94CAEBA8106C2EE97488B82DC987308F8EE02FF515DEE23EBCA777B3DF90FC + 1EC76FE4D730F27D6F13403099B4DB91567E9CAC84386A298606AE062C7E6BFE + 13C0AD08B329028AAC47A98AF30282AECC93930777D1BD164D03FE01376015EE + 08E274940000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004724944415478DABDD77F50D3 + 651C07F0F718CE2050D20E50B284CEB23B3BFB7157E875FD522B2F2D5230CDEB + BAB06414144181C07952D4515E9A0704DB92EBE84A290CC2C58F381449C5A44B + BDA3E288357E286C6C83B6EFC6D8EF6FDB231B8CEF1CCF46D7FB9F2FF7EC393E + AF3DDFE7F93CC0635916AEF0783CD0245BDCCE524D9CCACA98C5106EB90F82D0 + 104E01576D5E3080437B1FA706D474F442AD35FA44FC2F805357866034DB31A0 + D47210F30258ED746FA2674803B56ED283487D7A0D22C204BCA00159156DEC67 + E91B60B4385058D5EE77EE477B9E806ED206F5B88E20C6F5260C8E3248DFB296 + 208202BCED041C9902D0245C100285CE328D6026211BF90705BBD60507C8286D + 66CB329F21803C71ABDFB99FA43D05B95287B3DD43D04D983DE3C3A3E3287F6B + F3FC005AA38D6ABE3BD7347AF42BB4E4E7D6AEDEE001C24327D9CAECAD04B0BF + AA2D2044F19E8DCE3D61C7C7D5AD10E53C377F40B0C91735730139923354E7CA + 68D0E3CDE447606579907C7F36A0C225C2CDE4B9AFA211E2F792B8009A06537E + A21319C9EBF1E73003B3CD81D8A8F08057A048DC0849DEB6F901642A13AAA59D + D0E826E0B0D1BD8EA2B467C9737FC5495415A4F806CCD5E18ED4FE82AC94440C + 8E9961B15AE0B0DBC9EB581211E66CB374FBC827E09DCA53541DCEA867509E93 + 048DC18AAAFA737076581CBFD807BB2926A0D71011A54477A990E70164390134 + 1DAEE2BB9FF1C68E47498BB5D8584C98CCD87AA00E0977ACC3CAF878322794CF + 43C8D4A9E2F3AF3F17F043BC7E4FDD0F0DE8FF2A691A9059D642D5E1260D0694 + E66CC388D602516D3B26CC36684D63E8922320C40D01739D6F716D07D2521E23 + 0D8580AC0E4C9ACD900DA9B0AFBA931AC101A41F965275B871468D8CED9BC038 + 01B52D17C8D8EA15B7C2E43C92970764B8724D4085F00BF097B2636DC87C69A3 + 670566A6E6DC79881B94587D7722E2E26EF38CFB4248A5526F80F0D30656F4EE + F3E4EAFCA0EAA71B028C0C03E1CE0DD01A2C9EB155B747E357F91F2894F4E2AE + 550F2376591C16847A6FBAD9080E20ED603D2BCE7D8100FCE568ED69CED8A05E + 81D3DD0B9190F0106262975D5FE650BE5F4453D38FDE80D74A4EB047F39309C0 + D52A69A3316B70B9FF66AFE2EEF843F80454E66E270D8636677ABAC9B2BB8A2F + 5E128D9B047CCE1C1742353A02ABC5EAB5315B9A1BBD01A91FD6B0E2FC17C9F9 + 2E9648E72CAE32A9F0FBD528DC19FF20162D9DFEE6B311636A25FEEABB085E88 + C5EB74B4B5367101E5B93BA0D6D3ADC09379C7B13C2E11D131CB399FB911A34A + 05E4F22E48B2D760696424928B3B3C080EE095A26FD8CA825D04F07E65FD9C80 + F38A618409D66345C23D10CC6AB3AEE8C6559EE29BEE5D4B76DEA50139EB46C8 + FA7ABC01BB0BBF643F2F7CD9B907E8AE56D74DB8FBF0D7601DF77310BE8ABBE3 + 46080456F454BCCE0528192B4A44755408572EA854085F98E84130630AFCDDFF + 9BCFE21EBCCDC1BAFE43F2BA8E77E67DC18A0EBC4A0081C4750FA4961E232B11 + B9E8160C5FBDE4B7F8CCFC2780990846170E71D60354C57D0202AEEC23DF1EDC + 4BF767D114E05FCCD119EED701EE9B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004694944415478DABDD77B4C5B + 551C07F06F29548763CF64BC34026E3E92E9988B932D31F13537944D9C53B781 + 31321D903845501070198A065DDC340CA1C51122C1899961B24A0B8CC99645A7 + 20B08429630C18CCD252A0B417E89B5E7B0FB4ACDCAE9C16E3F79FDBDC9EF4F7 + 39E79EFB3B206059165C04020168922E6962A906CE2422782952E2A221F2F7E3 + 15E06A0B7C011CD9FF3835A0EA7C1786B57AB788FF0570F6D200F4A6295C5769 + 798805012C53744FA2736004C33A831391B4752D162F12097C06A41537B25FA6 + 3E05BDD986DCB2268F633FDDF70474062B86353A82D08C1BD13FC420356E1D41 + F80478C70EF86A06409340911F943AF32C8231E0DAE01872F66CF20DF056A19C + 3D76601B0164491A3C8EFD3CF919F4AA74B8D03100DDA4C9795F31A441D1DBB1 + 0B0368F556AAF18EFC33328E3EA5967C6E68EEF21D9072E4345B92BE9D000E96 + 357A85C8DFF7B47D4F4CE1B36F1B20CED8B17080AFC916CBF9808CD27354EF95 + D964C4DE2DD1E47385ACC5ABC20529B1E4FA41712D24EFC7F301340DA6B2BE1D + 895BD7A3BD5F0BA3C18888D0155EAF409EA416A5593B1706F85BC1A0FACC9F50 + 682661B3D23D8EBCE4E7C8F560F16994E5BCE41E305F87AB94B722317603FA47 + 4D305BCC30596D6026EC2B11B2DCDE66E9F6915BC0BB2567A93A9C7E9C415146 + 3C46262CA86A6883DE6842F9852B9832067BF518162F53A1A33045E004A4D901 + 341DEE445D0BF66E7B0466FBCC0D161BC6ECB3DF7EA81A51776F4244642419E3 + 2F14C06FE6AD120AA7AF01423F97DFA9FEA9067D15F1B38003C7EAA83A9C6162 + 0285193B31A835437C727AA554931A5CBC6AF10A714BC07CEF77A5AC1989CF6E + 24B3E7C2351683C9842BCA1E7C78BC831AC103A41E955275B8499D1609719BC9 + F15AF34B2BB917BD268C5C9B3AFFC2A5FE002A844700CD0A70339F9B8AC63328 + AF6770FF7D31080FBFD379DF1D422A95BA0252BEA861C5EF3D4F8ECE8FCBEA6F + 09D0330C76C73D06EBD42CE0A1D561F8ADFB32724BBB70EF9A4711121A8E007F + D74D3717C103241F3EC54A325F20004F3929FF9D77AF674C01690B8BA8A88D08 + 0E099D5E667FA147844CF6B32BE08D821FD9E3D9BB08806B95B419318DA0BDEF + 0E97E28E7842B8059464BE481A0C6DCE75769065E78A2F5DB10AB78B84BC311C + 423D34088BD9E2B231EBE4B5AE80A44FAA5849F62BE4FDCE2F95CE5B5C6D54E3 + F28D65B827720396AC9C9DF95CC4E8B00A57BBFF80C0CFECF2763436C8F880A2 + CC97313C4EB7024F667D8FB0F018AC0A0EE37DE7400CA994E8ED6D4669FA5AAC + 0C0AC2AEFCF34E040FF05ADE776C49CE1E02F8A8E4D4BC805F950A2C126DC65D + 510F4034A7CD72D169D4CEE25B1E5C47765EDBF55ED681B8D6DDE90A48C82D67 + BFCE7DD5BE07E88E56EE244C385A09D6B69E877057DC11074224B2A0B3F84D3E + 40C5585020AEA64270B9A85623F0B61827821955A2A7AFD56D7127DE6A63B9FF + 905C8EE3DD59DFB0E243AF138037E1CE81A4C213642582962C87E2469BC7E237 + E73F01DC8C60748190A43D4C55DC2DC0EBCA6EF2C3E1FD747F16CD00FE0581E7 + 15EE80F647DC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004794944415478DABDD77F5093 + 751C07F0F718AC2451CB4B54EA023CC938CCD4BB828CCEEC879118545A795ED7 + 8525E32E93B020202F923ACA4BED506123B9CE2E4B2E4FC5F12B1CA7C4219777 + 81353A046CC80C1863AC6D8C3DDBF3B03DED7964C3F1CCF1DDE87AFFF3ECBE7C + 6F9FD7F37DBEDFCF33442CCB828B4824024972E41758A28993898E9C0F69EA23 + 908486080A70B545C1000EEC5C4F0C38D9DC8D11A3D527E27F01345DD1C06A77 + E0BAD62840CC0AC038C89E4497468F1113E541646C4CC0DC391251D080EC3225 + 7B28EB695869270A2B2FF89DFBF98EA760A226306230F108C3980DFDC36664A5 + AEE211410176BB005F4F0248122E09C190899E4298295C1BFC0705DB928203BC + 5B5ACF1EDEF53C0FC89337FA9DFB65E673506B4D685169601AB77BC607860D38 + F25ECAEC0046EB04D17C77FED68FA16FC8C87F6EBCDC1D3C407AE01C5B9EB399 + 07ECAD54068428DEF18C6B4F38F0C5F146C8F6BC387B40B0C997D50B017B2A2E + 129D2BDA6EC30B49F190848971AAA93DA0C225D214FEFA51592DE41FA60B0124 + 0DA6A6F52A52D7AD40DB552D7FB6E3A3EF0D78058AE4B5A8C87B3938C04F2D3D + D89A1C878E7E23946D5D500FEAE19C207B1C45999BF8EBDEB273A82CD8EA1B30 + 53873BDBDA83F47571D0E8CC30D32C6C940D460B8DF89848579B25DB473E01EF + 97371175381B6545E9EE54E82D0C1A5AFE80D1D5E98E9EFF1D0E5B64408F61EE + 022D54A552910790ED029074B8DA964E6C4A4E003DE104C538316A1A47DABE6A + C43E9084E898187E4EA8588490C9532516DFBC868943BCBEE7F4D96AF47D973E + 05D875B881A8C3D1148543D969D018EC3851DB06CA66878136A2F94F7B4088DB + 02663ADF352D2AA426AFE4EF9E0BD7584CE671A80DFDF8F8988A182100641D54 + 107538CA62C1C6271E86C3C9427949C58FAD5FB30C0CE3404D4707AEF4871121 + FC02485680BBF3E991359C475593192B1E4C4454D47D9E715F088542E10D907E + 55CDCA3E48E35F9DFB2A7FBE2DC06E1D47CA93AB61B1319EB10D6B97E3526F27 + 0A2BBA11B7FC312C5E1285B050EF4D371D210064EE3FC3CA735FE201FEC21DBD + E9E9D1F7A3EA17D7268C7D14918B97DC5CE650B15F445D5D8D37E0ED9253ECB1 + FC2D3C806B95A4D1DBF5E8E8BBCBABB83BFE103E01E5B9AFF00D863417BB54FC + B273C5E7DFB308774AC482391C42373C088666BC3666437DAD3720E3B393AC3C + FF350C1A69145728662CAEB3E9D079630196C5ACC5BC8553773E1D313AA2454F + EFAF1085D05EA743D95827041CC97D152363642BB021EF472C8D4AC4A2C8A582 + BFB911C3DA21A8D59751919380851111D852DCEC4108006F169D60CB0BB6F180 + 4FCBCFCC08681D1AC01CC9E3B83FF62148A6B5592E2683CE53FCD995ABF89DD7 + 7E5DCDBA11D77ABBBC01DB0BBF658F16BEE1DA0364AF569AA1B1FDE0F7609DAB + 05085FC5DD71232412065D65EF08015A338312D969220497369D0EE177247A10 + E6D121FCD5F79BCFE21EFC8493E5FE43F27A1DBF9EF70D2BFBE42D1E104828BB + 1D19A53FF02B1131EF6E0CDC68F75BFCD6FC27805B11665338E4D96B888AFB04 + 045CD947AAF6EF24FB593409F8173D1B1BEE210313780000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CopyLocal_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000046D4944415478DABDD77B4C5B + 551C07F06F5BA81B8E6DBA646CD439C0A92C0E07CE2813B34CF1B5083A151FCB + 628C4C07246E43A62090C5195CD02968D8A42D4A16CDD499E878546012908733 + 2AC6C1644B41B0BC062D6DC7DAD2F5B6B794EBBD77B4506E2DA7C5F8FDE73687 + 93FE3EF7F49CDFBD881886011791480492E4285B18A28933898A5881CC947848 + 43C482025C6D51308092BDDB8901A7DA7A6130D97C22FE174073D7306C0E1706 + 752601625100A78BEC97500F1B6130531E44FAA39BB06CA954143420BBBC89F9 + 282B19367A1A85952D7EE71ED9F300CCD4140C13661E313169C7D0B80559299B + 79445080032CE0E3190049C2A46268CDF42CC242A17FEC0A0A766D0D0EF05A59 + 03736CDF633C204FD9E877EEFB198F40A333E3A7EE6198AF3A3CE3A3E31338BE + 7FC7E20026DB14D17C772E192731A035F19F1B3B7A83076496D432F29C541E70 + A8B2292044D19E87D83DE1C27B9F374271F089C503824DBEA241083858D14A74 + AE68871DDBE263D85DBC04B5EDE7032A5C9CB983BFBE555E07E59B3B85009206 + C33596E4F89BD17651078B95C2DDB1B28057E0B0B20E15794F2F0ED03964426B + 470FBBCB4DA0298AAC70C6E3FCF550792D2A0B9EF50D58A8C3B5778F605BDC3A + F4E926E1989A869DB2C3C89EEF3B3744B26D966C1FF904BC2E6F26EA7076CA86 + B20329305A9D68F9BD07660783929A5FE1B24704F4332C5BA9437759A6C803C8 + 6601241DAEB97308C909EB41B3774F39A7A1639F746945D58859BF1551D1D1FC + 9C108908E2995325915CBB864AC45EDF73BABA06035FEC9C05EC3B7686A8C339 + 1D0E94EE4FC5A0C18AAA1F3B61A75D18BF6A44F39FB68010FF0A58E87C9FEDEC + C7FD091BF8BBE772C56A8779D206B5EE128E9CBC408C1000B24A55441D8EB25A + 91B4251676A70B5D1735FC586AD246502E11FBF2D18EAEA15022845F40202B30 + 371F7C5787EAB314626F4F844C769367DC1742A5527903323FAC61146F3CC903 + B856E96F0F24C545C1EA9278C6D2B6DF815675370A2B7A71DBADF762CD5A1942 + 43BC37DD7C84009071B48A51E63EC53FBBFDAEC0F901C1588FB60F277EB02026 + E61E44AC597B6D9943247E11F5F5DF7B035E29FE96F92C3F8D0770AD92344687 + 119D03D77B1577C71FC227409EFB0CDF6048E35E76AEF88A1B576389542298C3 + 21F4E36370D24EAF8D79A6A1CE1B90FEEE294699FF3CC64C348A2A540B16D7DB + F5B830B212B7446FC1F255B3773E1F71D9A0C35F7DBF4124A6BD4E475363BD10 + 703CF7391826C956E0C1BCAF11294BC4EA8848C1DFDC88719D161A4D072A7236 + 61557838DB31DB3C0801E0A5C35F32F2825D3CE01D79D582809FB5A3582ABD0F + EB6236423AAFCD72314FE83DC51F8EDBCCEFBC73831AC68DE8EF537B0376179E + 603E297C91DD03646F3AB493C6EED29360A61304085FC5DD7123A45227D4E5AF + 0A013A8B13C58AD344082EBFE8F508BB2ED183B05CD6E2EF813F7C16F7E0A7A6 + 19EE3F24AFC7F10B799F328AB75FE6018184621B537AD957FC4A842FBF01A323 + E7FC169F9BFF04301761318741997D1751719F80802BFBC83747F792BD16CD00 + FE01AEA819EE474E95690000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004794944415478DABDD77B5054 + 551C07F0EFB2B8258A581620F4004CAC19128DA6A03F9A9E1AA399953D1C6D9A + B06469B4080B02C689228772021B546049A6B131B3995271E32103A9638E1385 + 813020AF5D4061EF3EC05D1676D97B77B9DD7B651797BB2E6797A6DF3FF7CED9 + 33FBFBECB9BFF33B77252CCB820F89440292C8509C6189264E45545808E4EB57 + 411618204AC0E796F80328DCFE1431E0D8B94EE88D168F88FF05D0D03C008BCD + 813ECA2842CC09C038C89E44C780017A93D58548591B8785F36512BF01E925F5 + ECBEB46761A127915B71C6EBDC3DDB9E86C96A877EC4242046CC13E8D78E226D + 7DBC80F00BF02107F8760A401241B200684CF43462D48A9EA1EBC8D99CE41F60 + 47710DBB7FE70B02204B51E775EED7A96BA0A24C38DF3A00D3B8CD353EA81DC1 + 810F92E706305AEC44F39D71CD60865A6314EEEB1A3BFD07C80B4FB1A5192F0A + 80DD15F53E21F2B73DC7D584035F1DAE43D9AE0D7307F81BD9653562C0AEF2B3 + 44FBCAE170207E5918EE0A5980EA0B6D3E252E90270BD74F4BAAA0F864A31840 + D2602EABF558197D371A5A0661E02AFAC995F7F9BC02798A2A9467BDE21FE0EF + 2E0A8FC686E3E2150ACDBD5AB4AB34A0AD56B2C4A9EB84EBEE9253A8C879CD33 + 60B60ED7C225E51F41376586C96C113A9CDE3886A4B828AECD92D59147C047A5 + 0D441DCE6E6750F4FE5A18C618FC71B90F36CB38F27E6D846322CCA7C7B07031 + 85D662B9C40548E700241DAE45A5437C4CA870CFB7598A3BE936E59F44CCFD49 + 888A8E16C603A512044CED2AA9F4C6759E34C0ED7B8E9FAC84FA878DD3809DFB + 6B893A9C9D6150B8631DFAF463A83CDF0ECBB805C3F4759C6E32FB84B82560B6 + FDDDD63384B80722847BDA016E275884F3BE577F0D7B8EB411234480B4222551 + 87E32B3E6E4514ECB40D9DFD5A616CEB9AD5B0714FEE50F5EF68548108E115E0 + 2D9ABA8690101B012B23AE95FCA34AD4FE65C3832B121119798F6BDC1342A954 + BA03E4DF54B2651FBF241C9D5F549CBE2580B1D9B06A3907B04F6FB9ADC90938 + DBD18ADCF24EC42E7F1CE14B23312FD0BDE866224480D4BD275845E6CB02C05B + B4AB29D15873FF151CAC342026E63184852FBDB1CC8152AF88EAEADFDC01EF16 + FCC21ECADE2400F856491A069B01FFA817B82577863784474069E6AB4283210D + E7B2F3C943EE0CC5ED32A9680E8FD06987C0D08C5B61D6D654B90352BE3CC62A + B2DFC09091467EB972D6E4BA091DDAAE2EC6B2E8042C5A32FDCB672286F514BA + BAFF84248076DB1DF575D562C081CCD7A13793ADC033593F21223211A16111A2 + CF9C082DA5814AD588F28C382C090EE63AE639174204783BEF47B63467B300F8 + BCF4C4AC800B9A41CC973D817B631E826C469BE5C334A273257FFEE178A1F22E + F5A95827A2A7BBC31DB025F77BF660EE5B5C0D90BDE9D00C8D2D4547C04EAE16 + 213C25778613219331E828794F0CA0461914941D2742F07151A743D06D892EC4 + E8B006BDEA268FC95D78FB24CBFF43723B8EDFCCFA8E2DFBEC1D01E04B58B9C6 + 94527C545889E0457760F0EA25AFC96F8EFF04703362D4140445FA2344C93D02 + 7CCEEC217EDEBB9DECB5680AF02F516415EEA863C5250000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CopyLocal_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000046E4944415478DABDD77F5093 + 751C07F0F718CE447EA9273F8450663FEFECB4BA0ABBBAEBA7E66926453F3CAF + EBC212F0B4080B04F2B2C8A328B043826DC5797A9574679A122084875E679825 + 7951CE05329AC07E3AF60CDCD8F36C7B7AF6C086E399E3BBD1F5FEE779F6ECBB + FBBCF6DDF7F97C9F895896852722910824299077B0440327B224310EB9EB5640 + 12192128E0A92D0A0750B9E5116240C369158C165B40C4FF02387941039BC385 + 7E9D45809811807191FD124A8D0946CAEE4364AF5E86E8391251D880FCDA7676 + 6FDEE3B0D16E94D677041DBB67F3A3A0EC4E18CD148F308F8CE11FBD1579EB96 + F388B0006F7280CF260024899244404BD19308AB1DBD43C328D9B8323CC0B6EA + 1676DFF6A7784091BC2DE8D88F7356A14F47E1A76E0DA86B0EDFF541BD19356F + AC9919C06273128DF766C03402B5D6C29FB79D53850FC8AD3CCED6153CCD0376 + D5B7878428DBFC04B7265CF8E8401B643BD6CF1C106E8A652D42C00EC529A2FB + CAED722165611C16C647E3EC1F3D21152ECF5DC31F77D63641FECE062180A4C1 + 5CD652589A1C8796DF3430701D6ED57DD2906760B7BC098AA2676706E8BCA4C3 + 25AEC974A90640DBED648573D6F2C75DB5C7515FF27C60C0741D4E63B0222D21 + 16AA410B466C0E584669E8CC563CBCE216CC9D1D4104090878ABEE245187733A + 19546D5D0DD328838B6A1DDF58761EEC849B8E0FE967888ED7A1BB3A57E403E4 + 7300920EE7692CD2A438FEDCDB6633F73441BA782596A4A7F3D723C522444CDC + 5562F1F87196D87F768E7C7F0CEA831B2601DBF79D20EA704E8641E5B6B5E837 + 8EA2F5E78BA0C69C308CEAD17A7E2424C40D01D3DDDF03FA61A426CE9B7CCD75 + 38FDB00DBDA601541C5212230480BCAA46A20EC7381C589C9AC89F6B868CE39F + CDCCC0356EBBADF9EE479C55BB88104101C1A2E166208D9B013B235C2BEF1E38 + 8C8E0BC01DB767202525D5773D10A2B1B1D11F90FBE93156F6F633FCD6F9417D + EB0D016EA71369C9F33146BB7CD7B6663D8433AABF502853E2B65B1F4052720A + 6645FA2FBAA9080120A7E2282B2FCCE401C1E2D94AA7E6D77E153E691884547A + 3F129392C7A739521C14D1DCFC833FE0B5F2C3EC97C5593CC0D32A49637298F0 + BB7AAE5F716F82210202EA0A9FE31B0C694E29BB51AA50F1C5E3E627E0268958 + 30C68330E887C0D08CDFC23CD1D2E40FC8FEB0819517BF88210B8D3245E3B4C5 + 0D6306FC79251E4BD3EF45EC82C96F3E1571D5A8C3DF3DBF401441FBDD1DED6D + CD42404DE10B308E90CDC0634587B028250309898B04EF79117A9D167D7DE7A0 + 285886053131C82A3BED430800AFECFE9AAD2BD9C803DEAF3B3A2DE08C761073 + 240FE266E99D9088859B106536F88A3F79D7727EE575F5F7B15E446F8FD21FB0 + A9743FFB79E9CBDC1A207BD2A1191A9BAABE02EBBE5B800854DC1B2F422261A0 + AC7D5D08D0591994CB8E10213CE9341810353BC387B05ED5E2B2FA7CC0E23EBC + D3CD7AFE21F96DC72F157DC1CADE7B950784123BD79AB3ABBFE1672226761E06 + AF74052D7E7DFE13C0F5082B150579FE3D44C5030242AE1C20DF566C217BBC9E + 00FC0B49AA12EECBEF0BC00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004644944415478DABDD77B6C53 + 551C07F06F1FEBDCBAADC32D1B308D6C06D104838FA8C318A3202A1175283E16 + 34C6A17B44D1B9E1E6B610A7934C51A619B0B5C5C5278A0901A16CC365642C66 + 819108C6094B01DBBA57BBB6ABBD6DD7D2E7B5F7B076945BBAD3CEF8FDE7B6A7 + 27F97D7AEE39BFDB0A589605178140009A5429FA58AA893359922B43F9BA3B20 + 110B7905B8DA8244003B4A1FA206ECEB57C364754645FC2F8063BF8FC0E9F643 + 67B0F210F30278FD74776278C40C13E30A234A1E5B8EB41489206140655B2FFB + 79C56A383D013474F4C59CBB6DD3C3605C3E982C0C4158EC97F0F7A40D15EB56 + 10444280B783802F660034499508A1673CB3089B0B1727FE417DF1CAC4006FB6 + 76B33B373F4E00B58A9E98733F297B141A03835F8746C04CBBC3E3E39316EC7A + 6BEDFC0056A78F6A7E2863663BB47A2B79DD734A9D38A07CC761B6BDEA4902D8 + DAD11B17A269D323C13DE1C7C7DFF4405EFDD4FC0189A64EDECD07542B8F539D + AB80DF8F9C055264A64BF1875A1757E1E6F2B5E4FA5E5B2714EF16F101340D86 + FBE699A962A806B5C1FBEA40D103CBE25E8146452794B5CF240630DBDCC8CE48 + 46FF5903F4660627CF8DC165B7D1152E7B825CB7B61D4647FD73D10173753866 + DA03995402F5B8155376376C0E17598935F72C8534594805890A78A7FD185587 + E3667F5ABA0A6687173ABD05E66073A9DCD38F802733AEDB909669C0506BB920 + 0CA80C02683A1CD75A65296224890404C175B8F5DB3A5170D34A2CC9CF2773C4 + C1CF8433A74A24BA7C4D1245AECE819F0F41FB6DD12C60F3CEA37177B8BE333A + 385C6EE8ED46740E5AE2425C1330D7F9363B7CC84E1387DF731D6ED46887C63C + 8696FDE7A9113C40458B8AAAC3F9BC5E64CBA470FA85703AEC646C4BF1837079 + 0368FEEE084E6AFD54889880589962A691150444CB1B6D7B71E25C126E5D5688 + BCBC1BC2E3D1102A952A1250FED92156BEE569F2E8FCB0E3976B02023E1F52D3 + 33200A78C263D52FADC680FA2C6AE4C3B865E97D58B8280F49E2C84D77358207 + 28DB7E9055D4AC278058713A5DBCB1810BC368FC5A8382827B91BB70D1E56516 + 8B6222BABA8E44025E6BDECF7E59B78100B856491BB3DB8C335A6944F1506221 + A202DA6B9E25679B36C78787D0A05493E2B2EB73709D44C49BC3218C9313F07A + BC111BF368776724A0E4A37DACA2EE054C583D6852AAE62C6EBC64C49FA399B8 + 39FF6E6464CD7EF3AB11532603CE5F188440E889381DBD3D5D7CC0AE9AE761B2 + D3ADC0AADA1FB138AF1039B98B799F851093063D349A5350562D47567A3A3634 + F587113CC02B8D7BD9F6FA6202F8A0FDE09C8001FD385224F7E3C682DB2011F1 + 1F428CC5182EBEE6F61564E79DD669D810E26270E3460036367CC5EE6E789974 + 3A9A78BC1E6C6CF91E6CE04E1E225AF150420889C48BE1B6D7F90083CD8B66F9 + 012A049713462352930BC308DB941E7F697F8B5A3C8CF70558EE1F52C4E3F8C5 + DA3DACFCFD5709209EB8DC6E94B4FE4056223D6301C6474FC72C7E65FE13C095 + 081B930A45E55D54C5A302E2AE1C253F6D2FA5FB793D03F817D0AF0BEE8169FF + CE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_11_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E04944415478DABDD77B6C53 + 551C07F0EF6D4791B10142B231A691CDF84AA6882632FCC3F84224820EC50759 + 8C7153D6258273C0E6D6A0E82453E2A619B83EB4211A1F982C20AB7BB86C0162 + 8048E22019A67440071D5B9F1B7D604BDB6DC7F5B076BBDC6B39F7D6F8FDE736 + ED69BE9F9E9EFEDA728410C4C2711C5852A93F4C98164E6569F67CA8D73E0855 + 9A425010EBE6E4001A363DCE0CD87FD402B737288AF85F003DA76D0886C771D1 + E11520520244C7D9DE09B3CD03B72F944094AC2E40C61C15271B50D1DC4DBE28 + 7F0AC1C80434C6C349D7EE2A7D02BED018DCA33E8A180D5CC325A71FE56B9751 + 842CC0BB93802FA7002C49572960F745A611FE10CE0F5F41EDC695F200EF3475 + 903D9B9FA5806A7D57D2B59F953D03ABC387DFFB6CF0FD1D4EDC3FE41CC5DE2D + 6B52037883634CEBE3B9EC0960C0EEA5B7BB4E5AE403D40DAD445BB98E027618 + BB2521EA4A9F9E3C13E3F8F4DB2EE8B63E9F3A406E6A741D42C056C31149132E + 6761062ED8EC928AEBD56BE8F5FDE636E8B71709015227DC657700C5AB1E90BC + 033BF56D3054BF981A203EE17A7AAD0805FC6CC565CFD1EB8EE656186B5F1607 + C8997096C111143D5680B9B3154CCF1505BCA7ED913DE1D4BA4E8C05B324BD0D + 190B1CE86B52730940C52440EE845BBFAB0DF977ACC4D2BC3CFA589A928362EA + 53A5545EBFCE52F277E7C02F8730F05DD13460F39E4ED913CE79D58DD6E36E49 + 887F05C89D70B62B7634B6F433230480F24653CA134E636CC189FE2813222940 + 6E4A1BF6E1D4C05CDC7B4F2172736F4BDC2F8630994C7C80FAF34344B7ED057A + B03E36FE26A9F883D2D538DE7F06DBB56771F75D2BB0382717B3D2F887EE4684 + 0050B6FB20D157ADA700A93966F90B553A33F2F31F41F6E29CEBDB9CA64C8A68 + 6FFF950F78ABBE857C53B3810262A392359EB0876EFBCCF27892214401DAAA97 + E0B91A652E3F62EE83C660A1E5F31766E1169552B02686703987118D447907B3 + B3A38D0F28F9643FD1D7BC8A616F047506D34DCB5DD75C3833B80077E63D8C79 + 8BA65FF98D8811B703FDE7FE00A788F03E1DDD5DED42C0DEAA57E00EB0EDC093 + D53F61496E21B2B297081E8B239C0E3BACD6933054166051662636D41D4D2004 + 803776FE40B4B51B29E023EDC19B028ED9873047F5286ECFBF0F2AA5F04BC837 + EA4A94AFBA7F193D79BD17AD248E387FCECC07146BF691AF34AF4F9E01B63910 + 894650DCF83DC8C4720142AC3C9E3842A58AC2DCFCB610E0F04751AF3BC08488 + E584CB85F4D98509847FC48E0B037F8A9627F0631324F60F89F775FC5AF5D744 + F7E19B142025A17018254D3FD29DC89C772B86067B9396CFCC7F029889F0FBD2 + A1AF7888A95C1420B959243FEFDEC4F6F37A0AF00F1653E5DF1EFE9174000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_12_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004154944415478DABDD77D4C1B + 651C07F0EFB5D0B90DB6B1C53186C681F32D996EC644D97F3AC5B93875CEA12E + 8B31C21C25713A992B0299A268700B53C3267D513433D1CCC40CB70ACC06B211 + 75664B8419D0DA81056140694B6D81F5EDEE7AB60F5CD971B7723D8CDF7FEE49 + EF497E9F7BEEB9DF5D298EE3100B4551909352E3594ED6C4E9ACC95C0AEDD60D + D0A4A8440562B5292580237B1E940D38D16E83CBEB9744FC2F80B64B03F08758 + F43BBC22C4BC00342BEF4E5807DC70F9027144E1E675485BA8A11403F6D5B772 + 1F953C0C7F3882CA86B309E7BE5FF4107C01062E8F8F203C1341FC3D3A8E92AD + EB094211E0B528E0E369809C2CD2A830E20BCF20C603E81DFE07153B372A03BC + 52D7C21DDDFB180194192D09E71E2A7E1476870F3F760DC0773514FF7D68D483 + 63AF6E991FC0EB6764CDE773C53D81BE112F195B2EDA9403B4474E73FAD22708 + E060436B5288EAA247A27B82C507C72D30EC7F520C48B6C9642D4FC3AEFC7BB0 + 30559514A4DCD02206EC379D2383649BCC853FAE2018F0CB9A5FA3DD428E6FD6 + 37C17860DBFC017C93B10D8E9195909B2A63134C65DBAF0F50D264DA3AEC085E + 9D0417B9FEE35955FC38391EAC3F8D868A023120C2B2984F93E91DF2A060D306 + 2C5E90784F48025ED7B791919226B3A9FC38829337CABE05B1A42D73A0AB4E4B + C501FBA20096A1A1A4C9D4367622F7968D58939343CEA5A829A8A61F6BB57AEA + 98AA16AECAC9EF4EA1EFCB6D3380BD47CF90819226D3DADD8532D36F49212401 + 0C4D436993D99EBF16BB6B7F928D10014A3E3493010F5092CE817ED9084940EC + 1132BCF114D958EF36FC9054F1B78A36E3FCE56E1CD0FF893BEFC84376F64DF1 + 735208B3D92C04686B4F118051F73401249B9F6DBF4367B0E2F6DB1EC0AAAC6C + A4A60837DD6C8408507CB89163A37DE0B3F21D0410EB5672E30EB9D1D9B718B9 + B9F7237355D6D432A7A813229A9BBF170276D77C3BB50774CFC03D49CB2E7ECE + DA854A934D509C4F22842420C23230963F87616F18D526F39CC59D4127BA0797 + 91E24B97AFC40D1AB5684E0CE11C1D061DA6051BF34C4B931050F8DE093238A6 + 7B16AE89B957E07C4F37B9F25B73EEC3921533573E1B31E672E072CF0550AAB0 + E0E968B5348B012CC3425FB19300DED1372604B4F707B13A3B0F2B33578BCEF1 + 8851C708ECF68B3095AEC38AF474ECA86E8F23448017ABBE8A36A2303EA97C21 + BA07E6EE0305873E8FBEF9EEC5CDB97741A316BF7C7C1E67BC78FEDDEBC9CEEB + E8B7733CA2B7C72A04ECAAFC820C6200C7388D1AC3C93911BF389D58B4204F84 + 902ACE8747683434ACF52F0B012CC3C0F0F64B04202781500885755F0B56627C + 6C047FF5FD2A599C4F988970B17F4882D7F1F3659F92413280D988F42519181A + EC4858FCDA48029424C2457069D20F369C81B5192E586A75B23EB1FF33C0B5F9 + E6F01E79DFF7D3807F01BDECFCDF43CCE3230000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_13_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004334944415478DABDD77D6C13 + 651C07F0EFB55B7593C1740903A691CDA0928028243AFC4BA288531490370931 + EA18AC4B04E7D0CE6D216E4E3325F32503D7175D0806C9480838EA36D20C8128 + BE90384836D394613737B6756B57DA6EB4EBEB79CFB1EB72DC5D77D7197FFFDC + DA3DCDEFF36D9FDF732D45D334485114053955663C4FCB5A38558BB3E741BBFE + 716852548206A437950CE0F33DCFC806345FB4C1E9F18B22FE17C0B9ABFDF007 + A3E8737804885901C251799F84B5DF05A737104714AE5B8639691A2A69406963 + 07FD65C9B3F08762A86A3A9F70ED27BBD6C01B88C0E9F6B208F7F824FE19F1A1 + 64FD0A169114E01D06F0D514404EA56B5418F686A611BE00AE0FDD44E58ED5C9 + 01DE6E68A70FED7D8105941B2D09D77E56FC3CEC0E2F7EEEEA87F75630FEFCE0 + 881B87F715CC0EE0F14764ADE7EA866B1CBDC31EF66FCB659B3440E99CC7A251 + 442261596B6B773DC7EC89283E3D6A8161FF2BD200A5737EC3398E9D6B1F435A + AA4AD66B2A0CED42C07ED38578F264E6FCA74E3B2603FE846BEBB405ECF583C6 + 5618DFDF280490C6CC15C9CEB96D600C5BD72C670E9BC4FBA9DAD80A53F9ABE2 + 8077F5E7309B39BFD43D80C95B13A063C231AD2E7E89BD1E683C83A6CAADE280 + 5206F05FCCF99B052B255F230A6092B327DCDE4367A174CE377CD48258285316 + 98AB39990E743568A9388049CE9E701C40C99CAFDA770C790FAEC6E2DC5CF671 + 8A9A826A6AAAD4EADBD754357F424EFDD082DEEF364E0398C6EC0153F28519FA + B29759C081A60E59809B8131FC762DAC08210BA0A4AEF4F7A1A8FE17D9080180 + 694C93C6DAFA1618DEDBC002C881A1A4B6BDB854364212507CF0348CBA4DECCE + 565A976C7F4167B0E2D147F29193737FFC793184D96CE60398E434495E547712 + DF566C6101E4C0905BAEA00B577AEFC1C34B9EC2828539484DE16FBA3B110200 + 939C26C90940AFDB0CD784BC1B0CA90BD62E54996CC8CB7B12D90B16DE7E9B53 + D409116D6D3FF2014C639A242FFCB819C68AED18F284506B32CFD87C747214DD + 0399BCE65C2542880248F2E2BA1338ACDB06E7F8CCEFC0AF3DDDF1E4F3EE9B8F + BB356AC11A82181D19423814E66DCCB3EDAD7C00939C26C98B6A8F435FB98305 + D4E84F4B7FE661379BFCA1DC55989B359DFC4EC498D3816B3D7F80528578D3D1 + 6169130248F2DD3547F175D5EBCC1E487C0EACAB6CC6A29C7CCCCF5E24F81F87 + 18710CC36EBF0C53D932646564604BEDC538420078A3FA7B9A24E7000E5F1875 + 86539280DF9964699AA7F140DE5268D4C22F225EF768BCF9DAE52BD89DD7D967 + A739C4F51E2B1FB0B3EA084D1A6B6B8EC0F0E15B2C205105824114361C676EBB + 4F081062CDB9E2101A4D18D6C6DDC903A410BEB161FCDDFBA76873AE4291184D + 7E21F16EC7AF957F4393C604A0A462740C5727FC48BF2B1F1973EFC5E0402796 + 640DC252AF9BF16BB628404E72A977C2E74D87B174A564F219018A3B8BD48983 + 7BE4FDC09802FC0BABA222EE8BFDA1990000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_14_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000044D4944415478DABDD77D4C1B + 751807F06F5FE81C836D8E38C6D03830F325D9DCD444E13F9D6EBA3875EAA692 + C5373607244E11908ED645140D8A6C28604BAB84387599D1B0CD0A6C0D735B9C + C6CDC896B00D116CB1BCB4D052DB822DF44ACFDE8D3BB8DDB5BD16E2F34FC9F1 + 83E7F3FBF6F7DCB51292244195442281982AD29D22452D9CAE55A94B90BF653D + 147229AF01D55B120F60FFEEFB45030E9FE986DDE51544FC2F8093172DF04E4E + A1CFE6E221E60420A6C4BD135D1607EC6E1F8BC87D780D92162A2471030A35ED + 644DC183F0FA8350379E8AB8F6FD9D0FC0ED0BC0EE74D308E7D804FE1EF6A060 + CB3A1A1117E0F510E0E36980984A54486175FB67101E1F7A87FE812A273B3EC0 + ABB56D64DD9E47688052678CB8F6C3BC4D30D9DCF8A9D302F7BF93ECF5C16127 + EA5FDB1C1E10EBA8A52D4BC24B9BD6422E97855D33E01883D9EAA27F369EEF8E + 0E8875D4CE5D19402040445C57B1F3A1D09998C2075F18D150FCF8FC019851EB + EE1FC58E8D7762618234E2FAB286363EA0587F9A137BBCA3F6638709133EAFE0 + BACAFCCDF4EB5E4D0B746F6EE503985DBFA13D89B98C5AEFA013DB37ACC7A205 + C24994EB5AA0573E151E501802CC75D47EBE3C00DF9887DB38EF51FA759FE67B + 34AAB60B03A8D88B3427301FA3A67A6183E0DF080242B1B37738AA2905707903 + A212C82E69C2C4F80DA2D63295B4D486CEDA7C090B08C5CEDEE18AEB5BA02D7A + 8C06EC6B6C8FF88F020401E3955164DE9C8D551919F435B94C02E9F454C96457 + 5F1364DCF3D07CF418CC07B7CE00F6D41D67EF70B30162EA82A50FBBAACFC684 + 080BA09A5263D250F2047DB0DE6D3C210AE1F1B9F0AB794A3482072838602099 + 5D2BEB0DD0953E490362A93FAC16D1494404947C72149F976DA301D4CC8A2DC7 + A40317CC8B70FB6D59484FBF91BD2E8430180C5C407EF53192899D1A136DE9D3 + 708C13A29B9FEEEA845ADF8D5B57DF871569E94890730FDDB5081E20AFEA08C9 + C4AEAE6B86AEEC590CB9FCA8D01BA2361F9918C1A5FEA5C8CCBC17A92BD2AEC6 + 1C7A324642B4B6FEC005ECAAFC8E6462A700F5A5CFC03E163D815F7A2ED13B9F + DD9CA94808410013FBDE9A6FA155E5D08077B447C2BFE78493DDF99265CB719D + 82FF7980428C0C0F81F0139C8379BCAD850BC87DEF30C9C4AE3A70089FAA9F0F + 61C2DF077E335DA6777E4BC63D589C32B3F36B11A3761BFEEC390789D4CF998E + 76632B1FC0C4CE006C1E02950DCD8280B3030456A6676179EA4ADEEF18C4B0CD + 0A93E93CF4456B90929C8C6D156758040FF062F9D72413BBB2EA201ADE7E9906 + 84AB9C8F9A4006EFC24D99774021E33F76DDCE11B6F9C6B5EBE893D7D1672219 + 446F4F1717B043DD4432B1BFB5FFCBA800DFE424726B0F0922849A33C520140A + 025D9A57F800AA6979CD5710534132888BE35E242EC862119E512BFE32FF8ED5 + 29833056970A7ED4F6078224F50D89F3387E4EF919196DD7D192485E7C3D06FB + 3B04772E54F302988DF0B813A12BBC5B54734140CC9D05EA9BAADDE2BEE14C03 + FE037E1E5AEEE77E48520000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_15_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000045D4944415478DABDD77D6C13 + 651C07F06F5F566561802E61C034B2197C494014131D897FF806BA800A882F0B + 517120DBFE40E73637B74244A799CEE10B9B7DD385888140620658B741B309C4 + F7191792CDCC39EC60636BD76EA5D7965EDFCFF661D7DDEDDADB752CFEFEB9F6 + FAA4BFCFF3FC7EF7DC9D8C6118C4422693414A94E9CF3092064EC6F2AC8528DE + 782F544AB920412CB76C3680FDBB1E960C387AAE1F76A73721E27F01749E1F82 + D71FC645AB5380B82E40302CAD127D43E3B053741C51F8C44ACC9FA792CD1A50 + AAE9603E2D790CDE4004EAE633A2633FD8F108283A04BB83220887DB874B632E + 946C5C4D10B302BC11057C36099012E92A392C54600AE1A27161F40A6A0AD68A + 0352EDF648388C5028C83BF751D17A98AD147EEC190275D51F3F3F32E640D3EB + F9330352EDF6CB7637B6AF5F05A55221F8FDF2B81B831627F96CEAEA9F7B00DB + ED3F749B052BC146ED8EC7A33D11C6875F9BA02B7F5A1A6036DDDE3F3C816DEB + EEC1BC3479C2B1D5BA7621A0DC7096972956D3EBE9F69F7B87E1A7BDBC7175C5 + F9E4F8B6A615FAB7360901DC252FD576622EBA7D7BFE1AC1D87DFA5618AAB688 + 0376379E42E3EE2709A04A6F124D2ED6ED019A9E4A5CB4811CF76ABE4373CD73 + 89016CCDCB34A709C0E90D495A0136A6777BCDCB8F0AC62404BCA9EDE4ED70BE + 68FDB4654F11C0DEE60ED1A4ED3D9710F665A5049DBFC88A9E03C5B238205A73 + DE0E57DED41A0788051D8CE0A1F223C8BD6D2D96E7E490734A850CF2C9AB4AA1 + B8764C53F0AF88961327317868D314205A73865BF3A0DF0F5DC533A4B1DE6B3E + 2D8A70D14EFC36184E099114C0CEB8AAC9087DE5660290127F5B86B0B3E127C9 + 0801A0E41323C3AD39EDF1E0ABEAAD0410BB6CA4842B44A1CB0C490851402C2A + 3E3F016DE5B318F70425258FC5D9BE1EA80DFDB8EBCE3C6467DF123F9F086134 + 1AF980E286930CB7E67EEF55E8AB5FC0A833805A8371C6E4369F0DBDC38B70C7 + 8A07B1646936D294FCA69B8E10008AEA8F33DC9AAB1B5BD054F93CECEE9957E0 + 97815E32F3DCDC0790B564E9B5658EDE11C5106D6DDFF3013BEBBE65B835F779 + A3FB404D0101BCAB3D9E34F978D04166CE4DCE86182221805BF38AFAC3F842FD + 52F47BF27DE00FF35FF1992FBC79316E54099F036208DBD828828120AF314FB5 + B7F20185EF1F65B835A73D6E02B0BA82A8D3B508FEF80A439199DF9E733F1664 + 4ECD7C3A62C26EC53F03BF43260FF0AE8E0E539B10C0AD7955FD21E8DE799500 + 12C5863DC7B02C3B0F8BB396097E631163560BCCE62E18CA56223323035B6BCF + C51102C02BFB0E33DC9A7BDD6E5140C1C707C144EEC3ADB97743A5103E78500E + 5B3CF9BA55AB49E7755F34332CE2C2401F1FB04D7D90E1D67CCFFE6F20161126 + 82F31E2FD26FC81320D8E42B3247606AA8E43D6AB108952A883ECD6B4240B29A + 278B5F6D361EC23561C1BF837FF2663E3D02A108137B43E2DD8E5FACFA92115B + F26441476F5A85078E9072642CB80923C3DDA2C9B93127002EC245A5435FBA46 + 52F284809433278863F5BBA4BD624D02FE039E1575EE88CBCE27000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_16_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004614944415478DABDD76B6C53 + 651807F07F2FABB230401719308D6C042F090B8A896EDFBC012EA020E2851014 + 3764DB07C81C73639B283ACD74999B0C5C2F3A89440C44C2C5B281CD10890A61 + C6C564CCB98BDDDCAD5DBB753D6D69D7DB8EEDBBF5ACE79CF6F474109F2FA73D + E74D9FDFFBBEFF73DA4A689A46B0241209C45491FA322D6AE04C2D4F5988FC8D + 8F402197F21A047B4BE602F86CF793A20127AE74C16C754644FC2F804B7F0EC0 + E9F6A3DF68E5216E09E0F58BDB89CE813198291783C859BF0AF3E72924730614 + 36B4D07505CFC0E9994245E365C1B11FE73E05CAE583D9421184C53E897F476D + 28D8B89A206202E612B81D6B3382CBCC9C4B544861A03CB3089B0BBD231328DF + 96250E106FE0AEFF35049FCF4BDE7F9AB70E7A23855FDA0740DD7433E386472D + 38B237FBF6034281EB1A1CC7CE751990CB65CCB5A1313BFA0C56F25AD7DA151F + 602E81FBA94DCFAC44A82A739F0D64C28F4FBED141B5EF85D8805B0D5CEFB005 + 3BB3D7605E829435B64C75810FD8A7F999374DBFDF8FCF6700622A52E07EEB18 + 82DBE524D7ABF2B3C9717F4313D4EF6CE603B8FBBDE7F0451CDEF31C0194AA75 + 82CD850257FEFAD3ACB107D54DD0946E110FB03A7DA2562054DCC0795CAEE9C6 + 791BC8F140C30F682C7F3932203C707B0F9D87B2E8790238D0D81217223C70EF + E5AE675D8B08785B798917B8C9C0DE85004295557C14938E7BE202CE5F64447B + 7DBE8401140600DCC015D56BA12ADE4482F561E38F113F68CAE7434B3785F4FB + B3B03C2D8D9C93CB2490CEDC5532D9F43141C6BE134E9F3D87BE639B670181FD + A6B9810BEE9DBAE4450210AABF0D03D855F36B5C88A880F0E52E3E74165F956D + 2580607285CAE6A3D0AA8768040F5050ABA5B98173391C5096BC8431871762AA + 7DA81F057557452104014C066A4F415DF62A46AC1E546AB43101A649136E0C2E + C2430F662235F55EE67C248456AB6503F26BCED1DCC0B99D3771A4E41598EDB1 + 57E06ACF0D5468BAF0C0CA27B064692A12E4ECD071113C405EF5199A1BB8FD75 + DF4359BE8D003E509E89DA7CCC6B21334F4F7F1C294B964E2F73E09B5008D1DC + 7C9E0DD855758AE606CE4159F145C58E4006A23F077ED777909987370F951022 + 22801BB8E2EAE30460B47951A53ACD6B3E4153CCCC17DEBD18772A64BC314184 + 6974045E8F9715CC8B179AD8809C8F4ED0DCC039AC1350BDFF260170EB5A6F07 + 2ABFEEC68AB4C7B0207976E65CC4B8D988EE9EEB90483DACBBA345D7CC077003 + 575A7D2C2A60C3BB27B12C35138B5396F1AE8510A34603F4FA56688A56213929 + 095B2BAF30081EE08D83C7696EE09C767BD4BD6FB33B90784726EE4B7F180ACE + 63365894C5449AAF4C1E86AEA68424AFAD5F4F8710BD3D9D6CC0F68AA374ACC0 + 8597C7EBC1F6DA6F414F3DCA43849A0767BE366335EBA75608A15078D1D9F016 + 1F102D70D1EA9AC9C45A09DBB801FFF4FD11B13983F74DD1C17F48ACAFE3D74A + BFA4A3EDB750B9DC6EE4D47F47562269C15D181E6C136C1E5EB705108EB05189 + 5017AE11D53C2220EECE11EA64F56E71FFF16600FF01932772EE8321745D0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_17_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004594944415478DABDD77D4C1B + 651C07F06F5B5A85CC6DBA646C43E3C0CC976473BE4599FFA8539C8B734EC597 + 85CC45D0411337812108640E45DD24CADEE98B63668BD3992CDBB0834D64CEC5 + C82246B204166460613068A1507AA5B4B4BDF66C9FD1A3ED3D3DAFF8F2FBA7BD + BBA7F97DEEF97D7B4D651CC7215832990C52AA50779E93B470AA1627CF41DE9A + FBA04A900B1A047BCB6602F87CD3E39201C72E74C262735211FF0BE0DCA53E38 + DD3EF49A6D02C43F02787DD226D1D137020BE3E211D9AB966256A24A261910EF + CCFD3E1FFFFEE39C27C0B85858AC0C4158C7277175C80EF59AE5042119309399 + 6FC85816DC6E24A9E430319E6984DD85EEC13194AD5FF1DF004233FFB1D588ED + 1B1FC3B59171FCDCD60766C2CDAF1918B262FF96D5F1016632F3CEFE516465DC + 8B44A59C407A4C36B2A6B1A5533A20BFA689DBA57E124E8F1FE5B5E7459BD366 + DEDCDE0F96F592EB95394F05AEFBB0F37023B45BD74A03BC1300EC9E0248A958 + 3357AF7D885F53AA3D23046CD5FF44DD638F7B12FB363F430025BA46D1E69FE6 + 3E0DA399A1CE9CF57AB1236F35397EAFA61EBA77D70901B4B06DDE7796006C4E + 56D20E842A7AE665AFAFE4AF55E8EAA12F79511A405D6D80A6F03902D856DB14 + 17227CE67E964545EEB3E4FCB69AEF505BF6321D109DF62D7B4EF380995670E6 + EFE7ACE28FA98002CD396ADA5D130E688B9E27C1FAB0F67B6A831FFE18846F32 + 392ED4ACB966B4EDCD93F180FC008096F682DD75D015BF4000B4F2B01C56967C + 83B4DB5760716A2A3997A090413EF5AD5228AEBF2A15F288CF9D3855879E23EB + A60181B071B4B4BB1C0E1C2CCD2480607868656719B41811172226207AD6457B + 4E4153FC12461C5ED12D6DBBD60BF5AE66C908012090768E96F609C6065DE9AB + 18B47950A9378822C6D8315CBAAA94841005845761F571EC2F7E059671F11D08 + 5673573BCAF59DB8FBAE74A4A4DCCA9FA7210C06432420EFB33A8E9676A7DD0E + 4DD97A02F840733266F311AF15EDFD7371E79247B060610A940991A18B460800 + B95527395ADA8BAA8EE240F9864006623F077E335E26779E96F63092172CBCBE + CD090A514443C3E948C09B3B8E73B4B43B02190802CCF6C0B35C7B4238778E21 + 771EDE3C5462082A8096F6824F0E43BBFD0D0288AE8BDD975179E80A693EE796 + F9B851A510AC0922868706E1F578238279F64C7D2420FBA3631C2DED0EDB1815 + 106A7E47EA83983D6FFACEA311A31633AE74FD0A99DC13F1ED686A6C10026869 + 2FA93A429FFBA8128B52D2313F7991E05A08316436C1686CC1927903D8F97626 + 322B2FF008016063C5514E4ADA43F58B690089AA47715BDA3D50453D6683C558 + 8749737DE152642C5B4E92D7DA6BE44288EEAE8E484056F997DCDFA53DBC3C5E + 0FB2AABF02E7BF5F80A0350F5508A15279D151F39610102BEDB1EAE2F030926E + 48E711F65113FEECF99DDA9CC7B37E2EF80F29E2E7F8B5922FB85869172B97DB + 8DECBD5F939DB869F6CD18E86F156D1E5EFF0A201C616792A0CB7F4052732A20 + EECE94FAB66A93B43F995380BF008B3B6BEE260C71E00000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CopyLocal_18_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000044D4944415478DABDD76D4C1B + 051807F07F5BA842C6862E8E6DD538304E4D66F02571CC2FEA7C419239A7CE97 + 65318BE0364884313641201326EA94383030E9CB448371BA250B73ABC0242C73 + 31936CC6650920E16585B1425B5ADA5EE95ADA839E7737AEF47A77F54AD4FF97 + B6776D9EDF3DF73C6DAAA0280A4C140A05E4A4447F9E92F5C6F9AC495B86FC4D + 8F409DA01414606A2B160338BCEB69D980E317066077FB4411FF0BE0DCD531F8 + 027318B5BA0508D980C5B43D2F2713892A05FAC71CB013FE3022377B1D9624A9 + 157103E26DFBA5BFCCA8DAF114FC64087627C1229CD333B86EF3A06053268BF8 + CF00916D673A41F86717101E3F86275CA8D8B6217E003927EF4E44B6BD77C486 + D49424103703E1F3E336278E14E5C80714377551F505CFC2170CA1B2F97CCCE2 + 9FE43DC3BF62BAEDD72C6E64AF5F0BB3D5C5BEA7F3F2407C803D34E0CB79809C + 24AB95B010415EDB2FF699514DCF04E19FC3672D9DD0EDDB2C1FF05E4307D558 + F8220B28D377C62CFEF9EE1760B212F8AD674CD0F69ABCE7D8E7E5BA0E21609F + E157C91B1C0CCC8001B87DB3B23AC0C5EC98C608DD7EAEED1CE083A636E8DFDF + 2204484D7A419D11DA929758C081E6AEB8104C51AEED1FE665B3C7AAF56D3094 + BDBA38C062C3B49D031C683A83E68AD7C50162AB56587F06BAFD2FB383F551F3 + 2F7115E68A1E3CDA81AA9D39D280BDDA7392ABE69BF6405FFA0A0B10CBC6F216 + CC78EF8A0BB624D58A9E867C4518504C03A456ADE8702BBE2EDFCA0298FB179D + AE410219F76EC09AF474F67502FD1BA09CDF2A95EAD663A24AC9FB4CEB4FA731 + F2DD96054061E359C955F37BBDD096BE06879714BD9A1EF3280AEA7F8F0B2109 + 101BB492BA93D097BF890977103506A328C235EBC2D5EB89B21102003DE994D4 + AADD24DC3852FA06ECD3E21DE0D24B77A2A8B15B162226203A7B6A4F405BB18D + 051CD49E92043848277A6FA4E2C107B2A0D1DC1D3E2E86301A8D7C40FE17A729 + A955F34C39F055E5DBF40C487F0FFC61EA43A561006BEF5F8F95AB34484CE00F + 5D344200D85D7B8A925AB5FDB5C75880D543E290AE5578FF2982BDF28C8C2790 + B672D5AD3627A86222DADB7FE603DE3D7492925A3582EE80AEEA1D16109DEEE1 + 3ED47C33C82BCE2516421420B56A7B3F6D110544165F76E70ADCAE56093ECB20 + 266D132083246F30CF76B4F101B91F1FA7A456CDEB7609DB1E7263684A83FBD2 + 1FC7D2E50B571E8D98B25B313874090A6590B71D5D9DED42809C55E3B2B1EC47 + ACD6646145DA6AC1390E61B35A60325D86A1641D96A7A4606BCD85304200D851 + 7D8C92B36A5C2E5AC691A47E12F7643C0475D4D72C3B37CEC970F1E71FCE6427 + EFCAA889E210C343FD7CC0F6CA6FA97F5AB5C804C920B6D77D0F2AF4A8002156 + 9C0B8750AB49F437ED1402A4564D2ADD939348BE2D2B8CF04C59706DE44FD1E2 + 61FC6C8862FE21F17E8EDF2A3B4A49AD5AACF80301E436FCC0762265E91D18BF + 712566F1C8FC2B804884874886BEF83159C54501715716C989DA5DF2FEE5CE03 + FE06B9AA50EE36603F190000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_19_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004554944415478DAB5D77D5014 + 751807F0EFDDC1A58CA06523EAD12834BD3863513953D83F692F1A939595BD98 + D334410A4C4A8806016362649413D480722F8A8DBDDA8C83DA051803634ED350 + 3639CCA831081DC8DB1D77DCCBDEE91DDC1D6CB73FB9E5F6766FDDBDA9EF3F30 + BBCB3D9FE7B7BF678F55D0340D260A85025252AC3F4B4BBA7026CB53E7237FC3 + 03502728790598DA8A780035DBD648061C3FD7039BCB2B88900588A7F3DCEC4C + 74FE3D0CEFE414062C2E1E4236209ECE1FBB3F0D36CAC72272D6AFC4BCB96AC5 + FF0EE8E81A24457B86EC58B76A1941383C13B83AE646C1864C82880B10989276 + 27BA07C7D9CE19C49AD04A505E3F1C6E1FFA469D28DFBC5A1EA0A8A19DFEBCE0 + 0978FDD3A8683C2B7AEDFEDCB5A07C41D81C14DBF9EFDDA3B83D650E144A2546 + C61C3858982D0FF06E08F0C50C404A92D44A9829FF2C22D47997C98AAC156968 + 3BDF231FB0BDAE95AEDFF1340194EADB44AFFD346F1D4C160ABF5E1C04757D92 + 3DCE74BEFBF5B5F8E4581B74BB9E8B0FE0F20625AD4038C3E31EF49B5DE477A6 + F3AADC2751A66BE50376197E11DD5DDE6B1E688B9F25803D8DEDB2104C51CA37 + 453AAFCECFC6FB0DCDD0BFB7910F101BB3825A230B88374CE71FE4AE47A5BE19 + 86D217E501F23F3B0DDDEEE7C9C6FAB0F167598599A24CF61D6EC5DEADD9D8D3 + F0231ACB5F1606C49AF3ED35A7A02F798100E20DD37965DE33C2809DDA0ED139 + F7B89C3852B68900980F8A4C479F155313A9B230F3165870B12E5FC1028A4200 + B1392FAC6982B6E4258C5F0B708EFB83341E2FFD1E19CB5663797A3A3996A052 + 403933552AD58D9F892A25E7EF9A4E9D46FF571B67013BEACF88CEF975CA057D + D9AB1875F951653072CE39834E745D4D9485880988B5CB8B6B4FE060C92BB079 + 0282E72F0D0FA0B0BE53328207088D192D36E76EBB1DDAF2CD04B04F7B521041 + 05DDE81A564B42880284F2CEFEAF71A8E28DD01E88FD1CF8D3741915861EDC7B + 4F16349A34F6B810C268347201A139A7C5E6DC6D1F27008B3B806A5D13EFBC93 + A670696801EEBEEB112C5EA241620277D345237880BC032769B139DFF9F131E8 + F6BE4500D1E9ECBB8CAAA3579091F13052172FB9B1CC092A51444BCB4F5CC0DB + D527E858734EEE6F6805840042C5C31143080284E63C720578CB3EED42AF5D43 + 8ACFBF6D11E6A855BC6B1884756C14017F80B331CFB4367301391F1DA763CDB9 + 50AC135672CFEF4C5F859485B39D4723EC360BAEF4FE11FA4FC8CF998EF6B616 + 3E406CCEA3C33CFD966AB2B0287529EF5C18316631C3643A0F43F14A2C4C4EC6 + A6AA732C820778B3F25BFA66731E99DFCC2398AB7E147764AC803AEA314BF68C + C3CA167FEABE4CB2F32E0C98E830A2AFB79B0BD852F1257DB3398F8C3FE0C796 + DA6F404F3FC84308150F278C50AB03E86ED8CA07C49AF358E9B45A91744B168B + 70DBCDF8A7FF2FC1E22C3E384D336F489CAFE3D74A0FD3B1E65C2CBEC949E4D4 + 7D47562239E5568C0C5D102D1E99FF041089705349D0173D24A9B82040766581 + FC70609BB4D7EC19C0BFD7503AEE0D02A47A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CopyLocal_20_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004394944415478DAB5D77D6C13 + 651C07F0EFB5A3C0B20193C018F585CD374C30F892E8F02FC557220A2AA88418 + E350D6455EC6D0CD6D21A213A78DA0D9607DD161E60B2F4641A8DB701919C498 + 2989846423736C6C736CF46DEB7AEDE8D65EDBB3F76CEDB8DEF57A37F4FBCFD3 + DE5DEEF7E9D3E7F95D8E6259165C288A829C14995A5859174E6649E65CE856DF + 074D8A4A5080AB4D2901282D7E8736031969B3E074FB4411D302ECDDFCA86CC0 + 91B39DE8B58E203B2B4314F1BF034E5FE887CB3B8EEE41570C91F7F432A4CDD6 + 5037046042F2FE898EFE2138E931F8FC21B4F7DA0962C0E945C1EAE504A11850 + 58D3CC7E5EF0387C8130CA6B5B24AFDDB3E931D06341385D3441703371B1CF81 + A5B72E207F4BD98615CA01DB23802F26017292AA51C14A07A6109E31FCF1B715 + 01FF38F66F5BA51CB0A5AA91ADDEFA0C0194989A24AFFD34FF29F4D868FCD6D6 + 0FFA9A3F767CD0EE22E30D01DCBEA0AC19886660C81B997637F9DC74AE134186 + 8171E7F3CA01BABD275943D17304B0ABB65911A262D313913511C22775133327 + 00EC349F49BAB47DA35E4401D34DA9B1116C380CD3BB6B8580647B5CF7D90918 + DF594300DC8D94A452B78A8CEFD5D41380B9E445E5807CFD71988A5F202B7BBA + D96DAA472814426DD97A7180549329D0FF84AF4AD7110077234585F39F25E3AE + 9A9364140076184E276D325EF7080CC52F616894E11D5F595A87F1D1058A4069 + F36C68ABD2513140610490ACC96CD1FF0053E92BB8EA0EA0C26C891D6FB93C8A + 9CDB5660497636F99EA2A6A09ADC556AF5C43843ADE2DDEBD8CF27D0FBCDDA29 + C0D6EA53499BCC35DA8DFDC52FC3E9E5CF40FB401FB655B72A422404486DB1ED + FAA330946D20800F0CC779E7E8A007170634B2110240C13E4BD226E3B25971A0 + FCB5C81A1047765AFF913D13928044797BCFB70460F330A8341E139C1F6169B4 + 5F9987A577E742ABBD39765C0C61B158F880489361B926C36DB10F6B7F15058C + D86D30BEFF0601C4A7B5FB222A0E5EC25D773E8C45595ACC48E12FBA78840010 + 69326CB226B3E3E33A5140B4784ECE43C85C943531CD296A494443C32F7CC09B + 953FB2C99A0C3D3C249C95B01B5DC35A5EF168A410A200B1262395331D6D2837 + 7792E2736F5A88591AB5E01A0EE1B05F051360780BF354633D1F90F7D11156AC + C9248A63DC4116DCEDD90F62CEFCA95F1E8F1876DA70A9EB4F50AA006F773437 + 350801624D265156961CC6626D2E16662E169C8B22EC916DDBD3730EE6A26598 + 9F9E8E751567630801E0F5DDDFB3899A8C587EB70E62B6E611DC92730F34716D + 960BED72C48A3F79EF72B2F2CEF7F5B051447757071FB0B1FC6B56AAC9C427C0 + 04B071DF779167FBFD028458F168A2088D864147CD5B4240A2269328AD0E0752 + 67E6C6109E612B2EF7FE255A3C860F8659EE0D89F7387EB5E44B36519391CA98 + DF8FBCAA436426D2E76460F0CA79C9E2D7E73F015C8FF0D0A930153E20ABB828 + 407165911CD56F96F79E3F09F8171E6314EE85D05E380000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'CopyLocal_21_48' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004034944415478DABDD77F4C94 + 751C07F0F773874F49A2969BA8574B70596D36FBB115F657BFCD6565A69573AD + 8525C752432C08984B23A3585A03E37E1439FBA1D44AD30B308613D71ACB2D73 + 516308718AC2FD3EEF3912B83BB86FF77CE10E9E7B1E1EBEF7D07AFFF3B087EF + 9ECF8B2FDFE77DC011422086E338B0A4D0728A302D1CCBE2CC3930AEBE137C9A + 4E36409CCD6901ECDDFC0033A0EE74073C810145C4FF023879AE0703A1115C70 + 066488690122236CBF89F61E2F3CC2600291BB721966CDE439CD80829A66F251 + FEC318084751567B4A75ED9E4D0F42181C86C72F5084BF7F08175D41E4AF5E4E + 119A00AFC7001F8F015892CEEBE010C2E388E020BAFAAEA074C30A6D802D558D + A47AEBE314506C69525DFB41DE63E8760AF8B9AD07C2D550E27EAFCB8FFDDB56 + 4D0F101818665A1FCF656F3FEC8E00FDBAE94C87768071EF71622A7C920276D6 + 36A78428DFF448EC4C8CE0FD834D30EF786AFA00AD293137CA013BAC2D4CEFD5 + D5A000F31B4F5380F8A05452615C45AF6FD5D4C3F2E61A3980A560F22A8FC252 + F40C3DD95AB3CB520F6BF15A6D80572ABEC36725EB28407C504A83F39EA0D79D + 35C7515BBA5E193055C3E5577E0F53D1B3F0FE13D1BC038A80EDA6934C0D27F8 + 3CB0943C8FBE4018E5561BBDD762F76164283325C4ACB94EB45519B904A02006 + 6069B82D95DF627FD173F0F48FEE80B8632B4BEB907DF30A2CCECAA2F7D2F41C + 74636F955E3F7A9DA1D7499E73E48763B07FB1661CB0B5FA0453C3057D3E984A + 3750C06ED3D1D15D190EE2DC653E25C4A480A9DEEFD7F67C894FCA5E8C9D01E9 + BA0EC7456CAB6E6546C800F9FB6C4C0DE7773A28C0198CA0C27C44BA3B51017F + F4A5332154016A31EE3E00F3DB2F5340725ABBFE42F9E7E771DBAD3930186E4C + DC5742D86C3629C0F8E13122369CF87EBF53FBD3A4802B2EA722203E7CE92DF7 + 61C1420366A4490F5D32420688351C6169B8EDEF1D94A3A20174FA0CC8CEBE17 + 990B168E6E739A5E15D1D0F0A314106B38A2A5E1BC212F7EB75F27191E8F1A42 + 11906AC3B5B4B7A1CCDA4187CFB9613EAEE5F5B23522C2EDEA43241C911CCC13 + 8DF55240EEBB7524B9E1D4E21E72E3CF4B73B124EB1ECC9E37FE9327237C1E27 + CE77FE0A4E1796BC1DCD4D0D72C0C4869B2A0F151FC622430EE6672E927D2F8E + 70C55ED9EEEE33B0162EC3BC8C0CAC2B3F9D40C8002FEDFA9A24379C5A7E71F4 + 62267F3F6ECABE1D7C52CD8A11FCEEC4F047EF584E4FDED90BDD248EE8EA6C97 + 0236961D204A0D3759C2913036EEFB0A247A970CA1343C9E3882E72368AF7955 + 0E506A38B5B4BADD48BF26278108FA1CF8DBFE9BE2F0047E384AC4FF90241FC7 + 2F147F4A266B38B50C8642C8AD3A44772263F6F5E8BD745675F8C4FC27808988 + A0900E4BC1DD4CC31501294F56C837959BD9FEBC1E03FC0B0450F8DFBED6A689 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004E24944415478DA + ADD67F5093751C07F0F76428FECE92287F9CD65D5D99DD75F58F77518084803F + 6341E091818572FE3848D40C85DD52D3AC23436563A01E755667E58F10C5B84C + CF4CCFAB3B1342994CD8068EB11F8CFDDED89EE7E9D93379F08921CFB3FADCED + BE77DBF7FB7C5EDFCFBEDFCF2682C028515EA484AD105DF506A854F9862467D8 + 4F230154AC4D04C583119CF2E36515AEAB0C232222061024BF425C6AEE82D5E1 + C3B5DBFAB08888017E821FA04D6786D1E6B98FB8F7279D3DBDA630C91C316053 + F5AFD4178549F0FA49941EBEF8D0B97B0B92D0EFF0C0647333883E8717D76EE9 + 5B5C4EE7C29A2DCBCC11018AE5BF505FAE4B867B80E4357F9C1830F50F212C76 + 2FAEB676B556AE7F637E4480A2433F53951B16C1E923B0BDF6C243E7EE59930C + 6DAF0D975BBA6073F9D8F77B4CFD38B0315514116063652375B0280D760FC17B + 4DF0BC769BEC0C86A4AF4FD375150E15A7470658BFFF2C55F5C162F4BB0328AB + 6D12B476E7FB29707AFDD877EC12E49B9644065857514F55952C83D51510BA94 + 8D326523149B977301423BDCCCE953D0AED18357471AACC0DA34662C579E8372 + EB9BC301823ADC6F2A749B5D783BF105448BC708AA407975036AB749C2038476 + B82B2D5A785C4E5E9590152E6546A9FC271CDE9E151E104987EBA04FB7E4F579 + 183F56CC6BADB4EA348E96657301FFB5C35D69D1C16DB7D385E0362817F4F84B + 741093301BDF179C81784C340D38893AE94A2EE0FFE870AA6E0BDE4D7D999DA3 + B1DE41718304E2190178ED037871C2ABD89D7214BBE8AFE02BD93B5C40241DEE + 52B3060EF7D0750C763887B52FB473510F6E44EDC794A7C598383D06C1A36BE9 + B0338828D5627CB373351720B4C3657F4B57CBEF822CA10E6EC744B6C315E724 + 42DB7F0725E7DEC2F859223AF978FA33827E912C62ACE129DC207E1F07190658 + 80D00E77D6B30A739E998D5EB51B27F29A3049FC38D3E17A6DB7D03CEE00629F + 9D84C9B113409224937C10418164104EB3F794B6B44FC2028476B8570EC6213E + 6501BAE966E43510389279069F1E6BC4CDA80A3C323706536327837820F1E018 + 7CCF6972D1089B4E536A9DC3020A3F3F4DC937AF80C5E987B4E6FCA880F3FE7C + 242C8A671EDCA5BD074F0F813EA70DB39E7B14D3E2A6869291DCE4C1B1DFE480 + B5DD8781807BBE4EDAD7CA02D6EC3B4929B664C04C03F8C402F913589896107A + 301942444547E1B1B869FFDAF15072ABD10693CA85798E42D4EF2DE71EC2823D + 3F508A6D993039FC90291B460534910548494FE6EC2E5472EE8E0932345A7AAD + E852E92D945F9410DCF9E07358C07BBB8F538A8FB218009F88AF7E12694B16DD + 3F64C3774B3E8031192CE8BCAD1B969C03C8DFF91D555D9A0DA3DD8F8F95F5A3 + 022E880AB164693A27D130048DEBED31427DAB336C720E204F768C526C5FC900 + F84462ED0CAC58BE2C547692088B30E80D68FBBB7DC4E41CC02AE9D79462472E + 03D8557D6A54C045F10648566484293BC15E3F6DA70E77551DBA011F5ED3CBAC + BA87027277D4518AB255E8A57B369F48393A135919990F5CB5F05F4310A156DD + 1D11C10256961EA114E57934C08F4F142746055C8E29428E247BC46633780682 + A38641A8C3225840CEB65A4A2ECD67007C22BD6E16723373D944C4B00A702BA3 + E9D4E24E9B5AADF5599FA77F0302C300D91FD65055E5AB61E4790DB73666A0D5 + F807AFB94341DDA4DBEF4B612B1004087C5AD838FED95A41FFB4FF011FC9E04E + BEE7AB310000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005494944415478DA + 9DD67B5054551C07F0EFC61ACB4B628A987C8CE94C5A4DCE34FD6545810F08F0 + 41A0880C393E42C9C7606A6628EC109A8E366682B020E66B74CA7C86A6C5649A + 93E36B4AA31016176197C7C22ECBBE5F2CF7DECEBD1B176F2CEEDD3D333B6766 + F7DCFBFB9CDFDEF3DD9520C0B1A1FA2A13E025775D039851B966BACDD7879260 + 007B56268211C160979CBEAEC46DA5764444D0008A16D7886BF5ED305ADDB8D9 + D8E9131134C043890334697AA1333B39C4ADC6CEFB7DA342920F2F7F571F3460 + 7DD5AFCC57F9D3E1F2D0283C78F5896B77E64D87C9EA84DEECE0107D56176E36 + 74359A3CCE84C30569FAA000EB2A7F61BE5E35138E7E5AD4FA5029A0370D210C + 16176E34B42BCB56CF7A392840C1FE9F997D6B92617353D85273E5896B77AC98 + 09758F19D7FF6E87D9EEE6DFD7EA4D285BFB9E2428C0DA7D9799F28214589C94 + E86BD8E7B5436FE13034393E75B795D8BF2E3538C0EABD3F32151FA7C1E41840 + 514D5D40D7967E98049BCB835DC7AFA172FDECE000ABF6D432151BE6C2681F08 + F4527E14555F8662E33C21406CC231A485D111323C1F13897AA51AA21269B003 + 2B53B8B9B8FA12AA37BD3F1C2026E1D887697444286A6FB540DBE7C0BCB7A640 + 1A1258238BAB2EA26673A66F80BF84B3D85D041086DF1F74A24367C19DC60EB8 + 1C76519D28C99FC3CDF2CA1F70704B966F80BF84F3026468EEE8432F39D36C47 + D47A2BD2A64D866C5488A80EC82BCEE35051B6102036E1689AC6EEFC59305A9C + 68EB31720893CD8D3B4D9D705AADA411C280B2A30BF725E588C4787C9F7701D2 + A74611C0591C91E7080162138EED4074A48CDC0830985D3090A865114612B32A + AD11598953F9B56DC666ACBB9809E99801B82CFD981AFE36B6271DC236F2151C + 2DF94008109B706C07767D944C42C582BA3F9A61730C0592CE6086CD6CF2EE5C + A2C5BD90BD183D498A88E764607F9C0D8F2C1C2244998613A5CB8400B10967B1 + 39111D158E852766C0EEB1A334F128DCF628D0A4C06F7FB6202FFD4DA84DCDD8 + 70693EC2C64948F130927E1479D13CE2E9EE89B847DD084509FA7980D884633B + 101D1986EF0C0B31E1A5F1E851397034EB0222A4B1A8387D133A6B23EA43CB10 + 3B391251B1E1DC7AB6F8208221541661EB759D5317F665F200B109E7ED4018DE + 288B437CD23474B475C1D54DA166FE05949FB9825B9E9D78E64519A263A3403D + 56787066DFB3E9ED0461D6B4151A27F080FC2FCF33951BD361B079203FF093DF + 0E9C32E72021399EBB71BB9A9C002D45F0168C9D128398B8686F315A589C9D4D + E4C81A1FBAD13FE0784D23EF6BE0012B769D65149F64A09700FC75801DC9C726 + 62464A82F7C6B417114272E0D9B898FFED78A8B85167865E69C7ABD67CD4EE2C + 163E84793B4E318ACD0BA0B77A50527D11FE461D9D87A4D49982DD795B2EDC31 + 457B6703C98C76659781F14812D89D0FDE87072CDF7E92517C96C501C48CF8AA + 1790323BF9BF876CF86EE9C730FA6E035A1B35C38A0B004B4BBF65AA0AB3A1B3 + 78F07975AD5FC015493E66CF4915141A8620B81EAD0EAA07AD3E8B0B004B4A8E + 338A2D391C40CC48AC1983F47973BD6DA7299F88EEAE6E34FDF370C4E202C062 + F93146B13597036CAB3AE7177055BA0699E9193EDA4EF1C74FDDAA418BF291A6 + DF8D77BA4A8C9A270272B71E6114458BD143325BCC483A341659190B1E3B6ABE + BF0616A152B68C88E0013985DF308AE22504E0C1178A337E01D765055894993D + 62D80C3E03ECDCC621543E113C60D1E61AA652BE94038819A947C62177412E5F + 881AD6016167DA5AD5686E52A9D46EE32BE43760601820FBD3034C45F13292E5 + E2009B2E67A0417757D4DAA1C1FC45E2F7759F1D600101DECDE738B97B65407F + 10FF056FD2005D60B583050000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005534944415478DA + 9DD67B4C53571C07F06FA5CEF78329613285B945B367B2E83F5B86416565202A + 83499030A34E94F888CF398742838F69D438E7030A82448D667173EAF035CD1C + C66C53B3189D13A55AA5BDB0D207EDEDFBC1EDBD77F7DE8E8B3714B8ED2F694E + D29E737F9FF3EB39BF568128637D4D231BD5025671CF31509956BF24D51DE963 + 452C807DCBA68395C1E0A79CB9A9C59D6653AF8898013423AF10371EB4827407 + 71EB91312222660045CB0334131DB038FD61C4E3B626D70026BD6EE9C7E69801 + EBAA7F63BF2D998100C5A0B4AEB1CFB9BB8A67C0E1F6C3EAF40908BB3B803F9B + 8C4F3D41D7B4BAB539E698006BAA7E65BF5B9E0E5F27236BFE2025607574236C + 2E1E41E80EAC504D8A09B0FAF055F6C0CA0C78823436D75EEF73EECEA5E93098 + 9DB8F94F2B9CDEA0F87EBBD58183AB3E51C4045875E00A7B6875265C7E5AF61A + FEBCB6595D0286E1AECFB53B5A1C5E93151B60C5FE4B6CE5DA5970F84228ABBD + 16D5DA6D4B54F00428EC3E790355EBB263032CDFD7C056AE9F03D21B8A76A918 + 653557A0D930570A90DBE1189A4672E268BC3C72286E3F7806591DA9AB02CB32 + 85B1BCE6326A367EDA1320A7C3116607267080AB77F53073A75B35F50D28E3A2 + 2B6479F545D46ECA8B0CE8AFC3F180E4C478DCD1B6A3D9D081FBBA7604FD3E59 + 95A828992D8CEAAA9F51B7393F32A0BF0E47984824BF120F9D9184DD1384DB4B + A1CDEEC1CC2913B93B1F27AB02EACAF3A82F2B9002E476383A14C2DEE519B0BB + FC78A4370B081777C7EFEB4C0878BD5C21A40DCA0B23EE2B0E613826E087E20B + 500E18C801CEE298BA500A90DBE1F80AA48C8BE716B2427F273D0101E1F47672 + F7DC81EC0FDF14E7EAC9275873310FCAA41002AE4EBC37F423EC50D5633BF715 + 1CAFF85C0A90DBE1F80AEC599109C2E2C6855B4DF005BA1B5207E981CFE50CEF + 5CD18E7B71FB31F27525868D1D0CFEC7D9F6DC2520E2B4B3706ADB6229406E87 + 234C76AE0263907F6A267C9417DB679C40283052E870B71F1A5098311506C713 + ACBFFC19868C5770C987709FD1DC8B11112F9926E21EFDC72054A05304C8ED70 + 218A424AD2181C217290326902CC3A2F0ECF3A8361CA041CBF7C17568F160F06 + 1D44C2E4E1189130140CC308C9BB102C1801E1E9089C3394DAF34480DC0ED7DA + 6E43320798723011A9AA0FD0A637C26FA2519BD780A3977E47A3672B46BF3618 + A31246807E2171D7C8BFE7B17A398493D097922922A064EF79B66A430E6C1E0A + EA23BFF45E811085E47163516FCC455A46AAF0E056C3BFF01B6938FC2E244D8E + 477CE2A87032469A9C1F1D5637C8A74174867CEF126A7B930858BAFB2CABF932 + 171D1CA0CF0A986CC2987FF61DCCCC4C0B3F980923E206C6610CD7A4A43BEE4E + 4E5A9CB06ABD78DB5D82865DE5D24358BCF34756B3691EAC6E0A153517D15F5C + 638AA1CA4A97EC2E5C72E98E69263CDACC245AB5461B4B29D2F89D773D47047C + B1E334ABF93A5F00C889D4EA71C8CCCEF8FF90F5DC2DF302C6CA55ADE531D123 + B904B068DBF76C7569012C2E0A5B6B1AFA055C5794207B769624510F048733B7 + 5BA07BD41231B904B0B0E224ABD95C2800E4C4F4DA24E4CC9D132E3B43474498 + 8C26343F7CDA6B72096081FA04ABD9522400B6579FEB17D0A85C89BC9CDC0865 + A7C5EB676821F04CFB9CE80C629AB18224FA04146D39C66ACA16C0CCF56C39A1 + AA7F15F9B9F35EB86A91BF061EA1D33EEB1521020A4B8FB29AF2851C80C2379A + 9FFA05DC1CBC1AF3F30A7A6D365D67801FF5024217112102E66FAA65ABD48B04 + 809CC83A361E45F38AC444748F0A482BA36F31E049B34E6708926F71BF01A11E + 8082AF8EB095E58B6191790D375EC94593E52F5973BB83FD9B6BBFEF47AC000F + 88F26911E3F49E6551FD41FC0F50EE015D7DD2A1EE0000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'MoveRemote_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005584944415478DA + 9DD67D6C13651C07F06FB722EF021132C1010261894A1343FCC3E8781B0E37C6 + 8B1B2C834C02C8A0E1252020E2606B2620883A71C0D67543820A51943727822E + C2C812314814642FB4ACDBDAAEB45DBBAEEFAFD7BBF37A7537CE75DBB5BFA479 + 92F6B9FB7D9EDF3DCFEF2A428CB14B5147C774018D46B728945A254D7744FB59 + 140FA074D37CD00218E12917EA55B8A334F68B881B4052C20A71EB41076CAE00 + FE687E1C1511378020850194BA2E981D3E1671BB59AFF288C40BAAA4738D7103 + 7656DEA43F972E809FA05078AA6EC0B9470A16C0EEF2C1E2F0B2886E979FA984 + B1CDE3B3A656ED5C618C0BB0A3E237FA8BCD0BE10D5282E60F1503167B2FC2EA + F4E3765387A66CCB1BD3E2026C3FF92B5DB67511DC0112FBAA6F0C38F7F0C685 + D0763A50DFD0018727C07D6FB4D8717CDB9BA2B800DBCAAED327B667C0E92305 + 5F13DEAF7A8B93C550CCF1A9BDA3C2C91D99F101B61CFB992E7F7731ECDE108A + AA6B63BAF6C08674B8FD048E9EBD858A9D59F1013697D6D0E5BB96C2E609C57A + 2917458AEB90EF5EC60708ED70642804C9F4248C1E391C75779510D4917A2AB0 + 29831D8B15D7A0D8F3565F80900ED7D06AC2AC19CFA2EE811E5DCC8E9E239982 + C484D80A595C7915D57B73A20306EB70618064C644FCA536E36FA51E4D1A3382 + 01BFA04A944897B0A3ACE2479CDA971B1D3058876B6835B28036A383D98841B8 + 7D044C760F5E7B690A9E122708AA80ACFC0A4E17E5F101423B1C110CA2746B06 + BA99F2DF7DA863CFB78B41346BCD08787D4C21F80DCA0303EE8B4E601426E3FB + 829F204E18C2002EE18C6C351F20B4C335AA0D90CC9C048A79540E4F104E6F00 + F630C24B40DFE544DAEC19DC5C8DED11765CCD817852087E67109211AFE350FA + 691C641EC157256FF301423B1C110CE0B36D59E8B0B871B1FE3EFCFE5E70B7C3 + 039FDB1559B9C8887B89C7F0F47431468E1F86F0CBD9DAE6641189AAC5387760 + 3D1F20B4C335AA1F33154846EEB93478090F0EA57D033A3896ED70F7547A2C9B + 2B81D6FE08BBAEADC0F06411937C38F31BC97C280EF194691AEE91BF0F450982 + 1C40688723020148529251AACCC0D49993D1D9E2C1C769E73022613C2ED435C0 + EA6DC183A1C731216514464F18C13C2A8A4DDE83A041B1087797FFB2B6B03B87 + 0308ED708D2D7A1630FB781252D35F855E6380CF4442915D83EF6EFE896B5DFB + 31F6F96118336134C82712F78CE1EFDC160F8370E83485B6A91C40FAE915BA62 + F77258DD046455BF0C588159299351A65E8C798B52D91B77681FC36720E1F0B9 + 3031652CC6258D8924A3F8C9C3A3DDE282AD258060C83B4B27EB6EE2001B8F5E + A2E5EF65A38B010C144D6A3D3B6EA87D056919F32237A62288C42189782669DC + FF56DC9BDC6676C0A2F2E045971435478AF99BB0E0F00FB47CEF4A585C044A14 + 573158D4520548CF5CC85B5DA4E4FC15935464B476DAD0A132586942342FBCF2 + 9EFB7080770E9DA7E51FE4B20021915A391119598BFEDB647D574B3D81B198AC + 687FA8EB939C075877E05BBAB2300F6627810F153583026E88A4C85A92C94BD4 + 07C1E03A8D66A89BDBA326E701D6969CA5E5FB56B3002131BF7A12962F5B1A29 + 3B454645980C26281B5BFA4DCE03AC917D4DCBF7E7B3808395970705D489B722 + 67797694B293DCF1D3B6EBD0AA6AD331CD738EA1C4A61B1090BFFF0C2D2F5A83 + 4EA6670B89F4D3CF21377BE513472DFA630823D4AAD67E111C6075E197B4BC78 + 2D0320F091FCE2A080FA61DBB12A27AFDF66D3B307C2A38645A8A32238C0AABD + D574856C1D0B101299679291BF329F4B44F6A900BF329A762D1E29D56A6DC0F6 + 02F30E08F501E4BD5F459717AF8759E031DC733D1B4DE6BB82E6F606FD0FD37E + 5F8E5A813020C6BB458DF39F6C8AE90FE2BF7202055D64DCA7BE000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005584944415478DA + 9DD60B4C53571807F07F01059D4ECD344EA7D3B98899D9E62BCBDC5686C85050 + 51611834CCA81B4A9C0E274E1D0A4DE7336EF1854241D438A3316EF3EDD4199D + 0E4563B600321F140AB485164A5BFA7EF7DEBBDB5B29DEB5D0DB7E497392DB73 + CFF73B5FEFF96E790831F2CAEE50A1DDC1AB23ADD44707D627E8037E1B0E60EF + AA19A038303C537EAB10E391B8BD4744D80082E45688BBB52DD0991C78F85C19 + 101136C0457003D4C935E830D85E20148D1A928C3FB93A511136607DE99FD4BE + 9C04D85D24F28FDEE975EEEEEC04E84D36A80D5606D169B2E3C13385BCD36AF9 + F8645EAA222CC0BA925BD481D589B03A494EF3A3A300B5BE1BA135DA51F9A4A5 + B568CD67A3C302E41EFE833AB86616CC0E025BCA6FF73A77D7CA44C8540654FC + DB0283C5E1BBDEA6D6A368ED6C5E5880B507AF5387729361B4119CEFF13CAFAD + 6A238321E9E373F3911887D7A58407F87AFFEF54F1B773A0B7BA51507E33A47B + B77D9504B3DD853DA7EEA264FDDCF000ABF75EA68AF352A1B3B843BDD5170565 + D721DA309F0DE0DAE1DC4E27F893C62226BA2FAEDD7F024E1DA9AB02AB9299B1 + B0EC1ACA362EF40770E970F76AA5E0BF3F1695CFDBE823E6C0B409231119115A + 210B4BAFA27C737A6040B00E77EF7133E2268DC363A90615554D9028B470391D + 9C2A21CC99C78C82924B38BA65516040B00E77AFA6097193C741AA32D227C105 + ABDD0D8DD18629B123D0273282530504C51771BC20930DE0DAE19C763BF67D33 + 8769287F5535BC40B8E84A74C261B7F955C202256A78873000A3F14BF6154445 + F4A101E77142B0840DE0DAE1EED734226ECADB74A54898AD2E986C4EFAE3628E + 974A67C6F4896FFAE64A75F55877351D5123DDB01B9D78AFFF27D891741CDBE9 + 9FE067E1176C00D70EE7A477B9373715AD1A0BCEDCFA070E4737D860B2C26EB5 + 7877CE6B4375E47EBC3A2E0AAF0C8D81E7E5AC6D32328848F11C9CDEB6820DE0 + DAE1EE574B1037753C324E25C0E6B26067E269441043E8E5293C6D5221F18358 + C8F4F5C8BBF639FA8DE2D1C9FBD1DD8FA03FA40FD1B7FD2D541395D110C2E903 + 70ED700E9B0DFCA9B11056CDC098F1A3A16AB060EB87C7D03F62286ED02DB6D3 + D688DAE8220C8B1D8081C3FA8324492679178202C920CC1AFB05597E67BA0FC0 + B5C35556D5833F2D16538B86839F341DAD52256C6D04440B2FE1CAC31A9C536C + C2E0B13118346C20889712778D9E6B66B5854618E4D27CDD181F20E7A78B54C9 + 8605D09A5D101CB911A40213B0BD7626E267F199855B640AD894048C76135E1F + 3F1843860FF22623D9C93DA35E6D82AEC101A7DBFAAE5CD0F9D40758B9E73C25 + FA2E0D1A1AD05B3CA8AE67C6BC879F626672BC7761D28B88EC1389D7860FF9DF + 8EBB93EB3A0C508B2D9868CAC1E5DD85EC87307BD7AF94687306D42617846557 + 112C6E92D9484A4964EDCE5B72F68E09D23B6A553AB488955ACAC58BF7ECBC6B + 1D1FE0CB1D6729D1F78B180097E0978E40F2DC592F1E32FFDD922F61D4ED5A34 + 3F97FB256701966F3B4395E667A2C3E8C20F659783026EF37230775E0A2B911F + 82C6A9DA3A2079D61C30390BB04C788A126D59C200B8C48CF29158303FD55B76 + 9208886857B6A3EE49438FC95980A5829394686B1603D85E7A2128E04ED41AA4 + 2F480B5076C277FC64CD72348A9BE4F4CB324E29D4C97B05646D3D41890A9642 + 45F76C2E9174FC0D2C4ACB78E9A805FE193C0889B8B147840FB024FF18252A5C + 46035CD8293A17145011938BC5E9993D369BAE67C0334A19842420C20758BCB9 + 9C2A112C67005C22E5C428646564F912117E15605746DA2C437D9D442273E8DE + A1DF016E3F40E6A6235471E10A74703C861BAFA7E169C7DF9CE67607F5986EBF + 930356C0030871B58071F6C75521FD41FC0F5707065DC85F8B92000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005584944415478DA + 9DD60B4C13771C07F06FA1F89ACEB949884EA3734F1D8B6EC9123741740E05A9 + 220C8386197543898F80CAD4A1D074EA346E713EA1200E99615BDC9CAF213A33 + 8741D4982D91A1201510DA4A81967AF4757D5CEF6ED7EBA89C14B8F69734FFE4 + FABFFB7DFEBFFEFFBFAB0401C696A24A36A01B5834DB19E9FBCAF5D184BFAF25 + C1000EAC9D035604C333E54C950A771ADAFB45040DA0197185B85EAB056171E2 + 767D9B5F44D0008A160768D074416FB27B110FDAD484DB157D72C3026DD080CD + 857FB1DF65CC8583629073A272C0B9FBD2E7A2DB6287C144F2882716076ED5B5 + E94CA479E6C9EC25DAA00059057FB287D6CD03E96244CD1F2A050CDD4F1146B3 + 07A1693FBC3E767C5080CC637FB08737CC87D5496347F1B501E7EE5D330FEA4E + 13AAEE6961B2397DD7DB0DDD38B271812428C0C6C397D9A3997130DB69D1F778 + F6EB638399C730DCF1B97A47856359F1C101D61FBCC4E66F5A886ED28DDCE2AB + 01DDBBEBF358581D14F6975D47C1E684E000EB0E5C64F3B72C026173077AAB2F + 728B2E4399BD580810DBE15C4E27123E7C1361D2309CB97617A23A524F05D6C6 + F1635E51058AB62EE90B10D3E1CA6F357080B7F04FA31E6692C2DB93C3111212 + 5821F30ACB51BC3DD93F60B00E577EF30164B3A6A14E4BE0CAAD7A7E63B92997 + A84A283264FC282FB880133B96FA070CD6E1CAABEB218B9A06B5C10A1BB7A11C + 2E1A84D581A993C2210D0D11550179FE7994E4A60A01623B9C832471284BC635 + 14272A6EDE87CD49C1EE7443AD3781E2F6C7B395B041871AC9518CC444FC92FE + 3BA421611CE02C4AE5CB8500B11DEE52F57DC8A2237928C955C053051B07F020 + BACC24A6BF3ACE37B7957888ACF26448C7BBE130BBF0CE8859D8135B82DDDC4F + F083E25321406C877390361CDC94883623895315B7E1EC05B6900EB8EC76EFCA + 25EDB81B7A10CF4F91E2B9B1C3E079391B1F997944A86A217EDCB55A0810DBE1 + 2EDDA8856CF674A494CD0549D9B0F7E39F30847D917FF7373DEEC2CCC8C95077 + 3FC4968A4F307C82844B3E9CEB7E34F7617C88211DAFE02E7D73281470F90062 + 3B9CDD6645C2EC19C8AEFE00935E9F88CE461B3223F33122642CAA6B5B41381F + A176E81184BF3112A3C2478061183E790F8205C323AC5D8E73EA9C27C93E80D8 + 0E5751558384981978EF4804A26267E271AB0EF6761AC7122FA0B2A60E65CD9B + F1C2E461181D3E0A74AFC43DA3E79AD560E310264D6B0E31C907C8F8F63C5B90 + 9D08A39582FCF895812B10F32EB6DD9E8598F951FC83B5EA36903A9ADB3F5644 + BC361A6322467B9331C2E49EB1DB6001D1E884CB4D466AE44FEA7C8035FBCFB2 + CA2F92D0C501068A2B376AF851712F0E1FC5C5781FCC7811A161A1782962CC33 + 2B7E9A9CE08EAA4165C3344B062EEECB136EC2F4BDBFB2CAED29305828288ACA + 31585C65D2111B3F4FB03A6FC9852BA619EF68EC24A055E98C2C2589F1ACBCE7 + 393EC0677B4EB3CA2F97F200311155380E7109F3FFDF647D57CBF4C2183A8C68 + 79A0E9935C0058B5EB67B63027157A3385AF8A2E0E0AB826C940822C5E90A80F + 82C375B6EBD154DFE237B900B05251C62A772CE70162624EF178242E5EE42D3B + 43FB4574E83AD070BFB1DFE402C00AF92956B9338D07EC2E3C3728A052BA01C9 + 89497ECA4EFB8E9FBA458366D5238DCB89689D82D00C0848DB59CA2A7357A093 + EBD96222B6E4652C4D4AE975D4FCFF0C1E4493AAB95F840FB03CE77B5699B792 + 0350F85AF9DBA080AA619958969CDA6FB3E9D9039EB1954734F945F800CBB617 + B305F2553C404CC4974E405A4A9A2F11DDA702C2CAB4B6A8F1B0A1A949ED24A6 + 72EF00771F40EAB6E36C7EDE6AE8451EC3AD979350A7FF5BD4DCA7C1FECBB5DF + 197E2BE00104F834BF71FA9BB501FD41FC0F3018035D9F67E323000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005554944415478DA + 9DD60D4C13671807F07F013F703AE7D4119DC6A971C9169718F611A72EEA4811 + 4471A0065967D40D250EA313750E8586A9D3B8459D2814448CDB50E374CA9CA2 + 129986C410678C1FF383024A5BA4404BBFAEBD7E5DEF6ED7AB1CDE5AE0DA2769 + DEA4F7DE3DBFF7B9F77D5A19C28CDCB2EB6C7877C8B43672607C45EE0C73C8AB + 9100F6AD99035602C33FE56C9D1AB7D41DBD222206D08CB442DC78D00A8BDD83 + FA27FA90888801142D0DD0A0EB82C1E67A81686BB351CCCC8A7509DA88011B4B + FF66F767CF859B629077F47A9F73F764CD85D5EE82D1E6E41166BB1BF58FDA0C + 0469F9A862F3626D44800D25D7D89FD726C0E96524CD1F140318AD3D0813E1C6 + CD873A63518EFC8D8800EB0F5F650FE624C2E1A1B1ADBCB6CFB9BB572740DB69 + 43DDBFADB0911EE1FB76A31545EBE6C92202AC3B78993DB43E09848B967C8F7F + BF3E37123C86E18E4FCD2D350E6F488E0CF0F5814B6CF137F36175FA905F5E13 + D6BD3BBE92C3E1A6B0B7F2064A36A6440658BBEF025B9CBB1016D217EEAD42E4 + 975D866A53AA1820B5C379DC2E28E4D3C0CAA2F0DBA5DB08B41B89155893C48F + 0565D528DBF25930404A87ABACB90745E2343CD0984172E59C34F675448559C7 + 82D28B28DF9A1E1AD05F873B71F52E14F3E2D1A8B7E16CED3D7498EDF0513E49 + 9528CC5EC08FCA923F7174DBD2D080FE3ADC892B77A0487A1FAD26122E2F0D2F + F7215C5E4C1C3302D1124BA12CAEC2B1FC0C31406A87733A1C28DA988A2EC283 + 33D7EEC0CD01DC14CD55C2019FD71B5409127ADC931DC2508CC7EF597F21266A + 00073887E3CA4C31406A873B79E53614C91FC2C935227F05DC5E1F37FA78888D + 7463CAB851C25C8DA5111B2EA623662C779DF0E2BD2133B14B7E0C3BB957F04B + E1176280D40EE7B41338B8291D7AB30BE55575A0A89E153BDD1E509E40C72365 + EDB81B7D00AF4E8AC12BA306F395313D237844B47A3E4EEC58250648ED7027AB + 6F4191321D8B2BE7C24591D8233F85D8A851DCE961F1DC60C3D4C963A0B53622 + B77A3162C7C9B8E4B15CF7A3B90F232006764CC45DFAE62014C22B00A4763892 + 20A058F031565F8DC78429E3D1D94462D5E4FD88C548DC6FD2C34A69F0605011 + 46BF3D14C3460F01C3307CF26E040B864738BADCE7B579E6740120B5C39DBA54 + 8FCF39407C511C66C9A7E3B9460F673B8DC3A955F8A7A119471EE7E0B5B70663 + F8E861A05F4ADC3DFABF7318490E61D369F22C130440F64F556CC9A645303928 + 288F5CE9730F64A6CCC0DADA0F303B7116FFE0566D1B9C7A1A0EAF0371938763 + 44DCF04032469CDC3F5A8D76589A3CF0FA9C53754AF32301B07AEF3956B5390D + 5D1CA0AF385D5DCF8F073469F8346976E0C14C00113D201A23E346FC6FC53DC9 + 2DDC1E31AA49BC6BCFC6853D05E24D98B5FB0CABDABA04463B85C2B28BE82F6A + 982CC8931344AB0B945CBC629A098CA64E0B5AD57A134BC966FB57DEFD1C01F0 + E5AED3ACEABBA53C404ACC2A1D83A494C4179B2C78B5CC4B186387092D4F7441 + C94580953B4EB1A57919301014BE2FBBD02FA056968D9405C9A24441080ED7D9 + 6E40F3E39690C94580158595AC6A5B260F901273CAC76251EAC240D9193A24A2 + 43DF8186874DBD261701962B7F6555DB153C6067E9F97E01D7637290BE282D44 + D969E1F8695B7478AA7EA6F37AF089BED0A2EB13A0D87E9C55E52F4727E19554 + 01F9B137B1346DC94B472DF46BF0239AD54F7B450880CCBC0A5655B0820350F8 + 41F547BF80BAC1EBB12C3DA3D766D3BD07FCA386473487440880655BCBD912E5 + 4A1E2025928F8F8362894248440755405C194D8B168D0DCDCD5A8FE51DEE37C0 + 1704C8F8F6085B5CB00A0689C770CBE5343C32DC9634B727D8FB5CFB9D16B202 + 7E40984F0B19A77F5C13D63FC4FF002C63015DFE219F640000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'MoveRemote_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005524944415478DA + 9DD60F4C94651C07F0EF09261A688EC8249C59ABAD3FB6D6D6B249292108FE07 + 2160E8D44289D3343522106EA426B3660A7A7720E8B4D90A4231242917E9D8A4 + 5C5B96A5728AC21D70FC398EFB7FDCDD7BEFFBF6DC7BF2CA1B07BC77BF8D3DDB + F1BCEFEFF3FC9EE7F9DD49E067ECAAB8CCFAF78444EBA4DCAFC8B72DD1FBFC6F + 2080435B168315C1F04CA96D56E19AAA774C44C0009A1157882B373A61B038F1 + DB6DAD4F44C0008A160768D50CA0DF34F400D1DD6776B9DEACFA70697BC0809D + E5BFB25F65C7C04131C8AFBA3CEEDC92AC18182D43D099EC1C62D0E240CB2DAD + DE6AB1BC5E95BBAA3D20C00EC52FEC919C58D85D8CA8F95382019DF121426FF6 + 203A074B7396840704D87EEC67B6746B3CAC4E1A05954DE3CE3DB03916EA3E13 + 9AFFE984C9E6E43FEFD11951B66DA92420C0B6D246F6E8F604988768D1CF78CE + 6B97CECC6118727D2E5D53E1D88EC4C000D2C33FB2F28F96C16877A3B0F2925F + CFEE7D3F0E5607858367AE40B1737960809C43F5AC7CD74A186C6E7F1FE5A3B0 + A211CADDAB8400B11DCE61B72327E90D508C04C7CFB5C0DB6E4456604B023716 + 555C4445EE9AD100311D4E5EF73BA4490BD0DA6D82C34523323C0C123FEB5854 + DE80CABC64DF80893A9CE26C0BA46B17E27E9F15A71BAE91BB6D07ED16B71DC5 + D92BB851A6F8015505A9BE0113753845ED55485316A27B70084E370DCACDC0EE + 746376782826892C854C7E1E270BD38400B11DCE6636E3E8EE351830BB48055A + E024F35D0432483A1E4D792A215C800D5AFC25398A50CC414DD605044F9A4C00 + E7704A96210488ED70CADA664853DF86C541C345D104407B2B412056870B5111 + 33F8B91D863BD8D1908CE048371C043C7FDA42EC8F3B897D640B4E17AF1302C4 + 76389B8974B1DC14F4181C90D734C13D62CB9C642BDC94CB3B4FD283EB418731 + FD99603CFA78085719FD7D338708522DC3377B370901623B9CB2E60AA4693158 + 7B260643940D25F1DF212C3882BB3D3AA315F322C3A136DEC1AE8B6B31354A42 + 924F25DD8F267F0C8F78A4771EAED357A7A0182E1E20B6C3598C0648D363915E + F712E63E3707BD77AD78F7C9124C9584A3AD6B0026B70637A69421E2F9508445 + 4C03C3305CF261040B864358071C75EAFCC1641E20B6C39557372187005E2B9B + 85E8B805E8EAD0C2DE43A36CE579DC546B50FAE7663CF67408664484811E9178 + 78F47C66D5D908C2A4E9C837CCE501D95F9E6715BB57436FA5203BFED39800AB + C9800FD29660DD85F958141FCDBDB853DD0DBB9686CD65C313CF4EC7CC5933BC + C9186172CF68D45960B8EB2437C7FEB246367893076C3E788E557E9C84010218 + 2F2A6BBC07F4C44026DE4958E47D31E345044D0E42F8AC99FF5BF1C3E4867E13 + 742A1B5EB464A3BEA4487808B30E7CCF2AF352A0B35028AE68C0447189C9425C + 62AC6075DE920B574C33DE51DF6740A74AAB6729C922CFCA87DFC303DEDB5FCD + 2A3F4DE5006222BA7C361296C73F3864A357CB8CC0E87AF568BFAD19955C00D8 + B8F75BB63C3F0DFD660A9F55D44F0868926463F98A4441A2510882EBEBE947DB + AD769FC905800DC567586541060710138B2B23B17AD54A6FD919DA27A257DB8B + D67FEF8E995C00582FFB9A55EEC9E400FBCAEB26045C0EDE8AE4D5493ECA4EF3 + D74FDDAEC13DD57D8DCB89B7B4C506CDB880CC3DA75865E17A901FEEA22A1077 + F229A426A58CB86ABEB7C1836853DD1B13C10332F24FB0CAA20D0440E173E5D9 + 0901CD21DB919E9C3666B3193E039EB18343B4F944F080F4BC4A5621DBC801C4 + 44E2A92864A664F289E851151056A6A35D8D3BAD6D6D6AA7E105F21DE01E0548 + FBE4382B2FDA847E91D730B7310937FBFF1035F761B07F93F6FBAACF0A78007E + BECD67547FB1C5AF5F88FF019754035D567A76B50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000054C4944415478DA + 9DD67B4C53571C07F06F05151C82CC3132A7713373C916972CFEB12C994E19A2 + 8008037568D0E003243E8253E7B0081D5387B2CDF9A4057115378CF33175EA64 + 1A1547B231B33FDCDC7C141168D1525ACBED9BBEEEBD3BBD958B7714B8ED2F69 + 4ED29E7B7E9FF3BBE7FC408220636375031BDC13123DE51A36E548E1FB8680BF + 8602D8BD6A2658110CDF94D38D2ADC54E90644840CA0197185B871BB0394D585 + A67BDA808890011E5A1CE0BEE609F4E61E0EF1C7BDC7468A0E7F47B9667A6BC8 + 800D55D7D96F0A12E0F430901E6E1874EECEBC0498AC3D30981D1CA2DBEA44D3 + 5DADD9DC639FAADC90D61A1260BDFC2ABB7775221C6E46D4FC91E180C1D48730 + 5A9CF8FD4E8765DF9A593121010A0F5E66F7AD9D0D9B8B4671CDB541E796E727 + 42DD6546E33F1D30DB5DFCF79D0613F6AF9B230909B06E5F3D7BA03019961E5A + F433BEF3FAC860E1300CB93E576EAA70707D4A6880357B7E662B3F4E85C9E145 + 49CD95A09EDDB6320936A70715753720DF303734C0EADDE7D9CA8DF340D9BDC1 + 3ECA4749753D149BD28500B11DAEC76E8374C94C38C82DD87BFCD7E02AB02A99 + 1B4BAB2FA17AF387FD01623A5CF9F70D902E4D409BDE0EB79746ECE8C8A0CB58 + 5A751135455981014375B8F2A3D7519C9B088DD101F9C946D87ADC60187107B2 + AC208D1B65F29F70B8786160C0501DAEBCF62A8A97CD42A7C9C9CDA569062E5F + 25A2482544964256790ECA926C21406C87B39A28546E9E0F83C50DF9A91BF012 + 80EFC35582F63527E106ECD0E22FC9014461024EE65D40F8B0E1047006B5B2C5 + 4280D80EB7EBC8654857CCE1AEA19754C097DCF314E1747B31367A143FB79D6A + C6FA8B59081FE7859380DF1AF51E762429B19DBC82A3654B8400B11DCE4A75E3 + 60D147D0995CD853574FDE7F5FDDDD1E9A54C17F3DED924EDC0ADB83E849E178 + EE8508AE32C6560B870853A5E2D8B6E54280D80EB74B590FE9CA54CCAF4B2057 + D18E8A39273066443C599E8585B4DB1763A3A0363563E3A5F9881C2F21C92349 + F7233096E1112374AFE216FDDB4894C1CD03C4763873B711C57969483DF61A26 + 4E9E005DB30D29D19F2142F23C74461BAC4C076E8FDC8FB8D7A3303A6E14A910 + C325EF45B0603884ED89F3AC5ADA9DC503C476B88AC317B0257F1EA6EE8FC7B4 + A477F1A85D0B47278DBD6967D1DED5855D4DB918F34A0462E246837E2671EFE8 + FBCE66B0138459D32EA526F28082AFCEB1F24D1930DA3C901DFA654080855460 + 4B7E3AD27F988C19B3A7710B77A81FC3A1A5B9571237291AB1F131FE648C30B9 + 6F3419ACA01EB84813734CD1C8BAEFF080FC8A33ACE2934C3C2180C1E26BE505 + 6E3CEDCCC707C933FC0B337E44D8F0308C8D8FFDDF8EFB92537A330C2A3BDEB4 + 16E0FCCE52E121CC2B3FC52A8A16C060F5A0ACFA22868A2B4C1E92521205BBF3 + 975CB8639AF18FC62E0A1D2AAD91F54866F876DEBB0E0F58B1E304ABD8B29003 + 888969552F2179EEECA787ACFF6E996730069D116DF734FD920B00CBB61D67AB + A4D9D05B3CF8BCFAFC90806B9202CC4D4B1124EA8720B8AE4E3D5AEEB6054C2E + 00E496D5B18AE2C51C404CCCAC19878CF479FEB2337440844EABC3FD7F1F0C98 + 5C00582AFB8E556CCDE100DBABCE0E0968085F8BAC8CCC0065A7F9EBA76ED3E0 + A1AA55E37661BAB68CD20C0AC8D95ACB2A4A96A28BF46C3191A47C190B33173C + 73D502BF061FA245F57040040F582CFD965594E61280075F287E1C12D0185188 + 4559D903369BDE33E01BDB39444B40040F585454C3CA65CB38809848A91D8F9C + 05397C22BA5F058495696F53A3F97E4B8BDA45BD41FE0678FB01B23F3DC45696 + 2E875EE435DC5C9F893BFA3F45CDED0BF66FD27EDF0E58011F20C8D502C6892F + 5705F52FE27F048BFE4E8643E78D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005444944415478DA + 9DD67F5014651807F0EFC921E08FCCD27134CD6CA6A69A9A71EA9F66D2513204 + 44455042861CB550421D08CCCE43B8484D40C75F281C88326A368D566A4492A4 + E138938DD31F96A571780A77C801B71CF7FBB85FBB6FEF2DB2BA71C0DE3D33CC + 3B73FBEE3E9FF7D9F77D1619428C829A6612D20D44667611CF2BD539F1C66097 + 65E100F66F5C0822811198F2DD750D6EB6740F8B081BC072D20A71ED7607CC76 + 0F7EBF6B088A081BE063A5015AF4BD305AFB79C48DBB0F6D36B9ECAD1359B1DA + B001F9D5BF9203D9B170FB38288F378F38B7342B16167B3F18AB8B47F4D9DDB4 + 129D4E9BCB3EF74441B2362C405ED515722867115C5E4ED2FC2839C0581E234C + 36376EDCE9701EDEF4DE84B000B9472F93C39B17C3E16151587B75C4B97B362C + 82AEC78AEB7F77C0EAF408BF773116546C89978505D872B8911CC94D80AD9F95 + 7C4F60BF3E646C3C86A3C7A7E9A60647F312C3036C3AF813A9FC64092C2E3F8A + 6A9B42BA77E7477170B87D283F730D55F949E10172F6D793CA8265303BFDA1DE + 2A44514D23D45B978B01523B9CCB6E47E9C7F1FC2B283D7525B40A6C4CE0C7E2 + 9A4BA8D9B66228404A8753A81B519693884EB31B2CED0531816D1E62145737A0 + 56911A1C305A8753545E42F9E624182C1EEC3BFD0BBC3E96A2A51DC992ECA5FC + A8AAFA01C70BD3820346EB708AA30D28DFB2143D362F8F25B4647E7A4F34AD84 + D40DA5AABC88BAA27431406A87B3F59950A5480363F3D10A5C06471181A3E5F5 + D34A70432BE184017FCA8E600266E15CD68F908F89A480F338A9CA1003A47638 + E5918B28CB5D0193C3CF27E6018F107E96A37B225298DB6E6E455E432AE433FC + 70D38ABD31EE1DEC8EABC32EFA0A4E957C200648ED703613834A65067AAC5E94 + D5D5D36FEE18E11A4B2B305805A7AC0BB7220EE2A917E5183F251A818FB3E981 + 8D47446896E0EB9DEBC500A91D4E59711E65792B91FA552CFAFD4EEC8D3F8B67 + 62A6F3D73C5E3FC6C78C85CED28A824B2B1133534693C7D0EAB0F48F131063BB + E7E016FB5B144AE01500523B9C856150969F86F9B5B330FBA559E86E75607EE4 + 764491C970F47BE1209DB81D5581A92F4FC0C4A9E3E8EBE1F8E48308FAB27884 + A3D77D41A7EC4B1500523B5CE1A17328CD7F1F6F564CC3BCB8B7F1B0DD005717 + 8B034917E8C634E3F3E60C3CFD4234264D9D08F689C48363E03707E3A408ABBE + 5D699E2D00B2F75D24555B93E9E6F24175ECE76101D65E067BF2D3115BF73C16 + 2C9EC73FB843D70967270B37EBC29439133179DAA481649C387960B4307698EF + 79E8A971BDAE57F5DD11001BCACF13F5A729E8A580914255718E1F9BE4B97837 + 61C1C083B901444464049E9D36F97F2B7E9CDC6CB482D138F19A3D1BF5A5C5E2 + 4D98B5E75BA256AC0263F7A1A4A601A345139785B8C445A2D50D945CBC62961B + 184D3D6674680C26E2932D08AC7CF03902E0C3DD67897A7B1A0F9012F3AAA723 + 2169F1A34D3674B5DC1318A6DB84B67FF543928B00EB767E43AA95E930D20EF7 + 454DFDA880ABB26C242D4D14251A82A0B89E2E23B477DB82261701D6969C21EA + C20C1E202516D6CE40F2F2650365E7D8A0886E43375AFEB9376C7211608DEA34 + 51EFC8E401BBAA2F8C0A68966F466A724A90B2B3C2F1D3B5E9715FF340EFF560 + BEA1C4AC1F1190B9E3245117ADE1BF725222AEEE39A4A5AC7AE2A8057F0D0184 + 56737F588400C8509E20EAE2B514E0C397EAEF47055C8FCEC5EAD4F4619BCDE0 + 1E088CED3C421B142100562B6A49956A1D0F9012892767227355A690881D5201 + 7165DADB74686DD16A751EF3ABF41BE01F0248FFEC18A92C5E0FA3C463B8AD31 + 05778C7F489AFB38C85FB4FDCE0D5A810020C4A7058DB37B3786F49FF67F8CEE + FD4E6CEC56F00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_11_20' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004D54944415478DA + 9D967B4C536718C69F0A0E549C230EC9BC44B7644BB6B8842CFB63C9581019C8 + 456430081266D40DA98201C50B82D03010191AE640A05C1C611B8B610E618C89 + 2373189269C896B8E9508A28B448E90D7A8796B6E7EC9C831C38A3C069DFA479 + 93D3F7FB9EDFFBF6FB9E53015C8CACDA6ED2B515823B163BB9AB3A3DD8E4F45B + 7700CA527780E4814197FCD82341AF44B12884DB000E82DF206EDF1F81D668C5 + DD4772A7106E03D81CFC00FA651AA8F453CF2146FFA2D423EA84C11AB7018ED7 + FC4E7E290C86C54620E74AF792B52529C1D019A7A0D64F321013460BEE3E943F + 309B4C3BEB4E466BDC02C8ACFE8DFCEA480826A7095EF55E9E805A3707316EB0 + E04EDF485F79DA87DBDD02C8A8FC952C4F0F83C9EA406EFDAD256BCF1F0A8154 + A947CF8311E8CD56F6F9985A878AA3BB046E011C2DEF242F6784C330E5E0BD86 + 3EAFCFD4060686A0AE4F57AF04959911EE01A45DFA85AC3A1609DDA41D79F55D + 2EAD2DFC2C14268B0DA54DB7517D3CCA3D802365ED64555634B466BBAB4BD9C8 + ABED84F8C41E2E005F87331BF4A83E118371930DA2BA9BAE4D20359CC9F9B537 + 507BEAA385007C1C4E78B115E293B1D05000EE467E4D07EAB3E39C032CE77087 + 4B5B20CE8E87DA6843416D874BC205C2DD4C1655FF842BB909CE019673B8C35F + 5C83F84C0203E06E88AADAD09097C805E0EB703A8D1A35398950196CF8BCB67D + 593133E4F85B70193ED8821F527E86E78A9514C075348A92B8007C1D2EADE42A + C4B9490CC07231AC1D4066471C3C37DA61314CE3EDD5EFE35C68038AA89FE09B + 824FB8007C1D4EA756427C36990128AC69A13658E1BC73C118EE795CC28BAF79 + 62CDCBDEA05FCEE34F0D0C84872412DF171EE402F075B8B4E22688F3F621EEBB + 604CD9CCB810D18C0D6B36716AA4BA0164DDF818AB360B28F15594FB39A80FC1 + 42BCA07815F71C7F78A100D32C005F879B502A20CEDF8F80F20DD8FAFA162806 + 4C08983E062FD297EDFCBE5705FCDEF0C15ABFD5200882119F8520413010268D + A5559A3311C702F075B8F4A246548B0EE09D0A7F0486BE8767C37298E5769445 + B661D266C2E99BF178699B37D6F9AD85639EF06CA69F99D4660A422F1BCED16E + 65018417DB483E0EA7552950957F10EF56FA23282C90D978443A0AF3A81D56C2 + 82F5DB7CE0EBBF6E468CE08AD359A73642FBD88A69FBE4769968A28F0538547A + 9DE4E37099C58D4CEEF53D839DE141331B1333101E2B3DB0DEDFF77F1DCF896B + 557AA82566BC6514A2BD249F7B0853CE5F235D71B82E2205A111219CEE6646CE + EDD841CCE471A5162312F938691304D19DCFEEC3027C7AAE9974C5E1026B5E41 + 7854D8F343B6B05B621E8C5A318EA147B205E21C8003855749571CEE964088A8 + DD111CA10510149C724C85C187434EC53900FB0B9A48BE0E47C78EFA8D88D913 + 3D3376C2E114422157A0FFDFC78B8A7300F689BE25671DAEA8A67559806ECF74 + C4C5C43A19BB83BD7ED221199E489ECAA6ADF8405EA0952D09907CB691A41D4E + 4979369F086DD88484D8F87957CDF9CF40430C4A9E2C0AC10224E57C4DD20EA7 + A426502C6E5916A0C73B037BE31217359BD93340E7610662D029040BB037BB9E + A41D4EC9F30C44346E46727C322BE4583001EE648687A418E81F1C945AB56F52 + EF00FB0280C4D37524ED702A9ED7F054672CFA547FF2AA9D0BF21FCA7E039C4E + 8006707137A7D17C21D5A57FDAFF01C8AAC24E56A16CFE0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'MoveRemote_12_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004D24944415478DA + C5967B4C5B6518C69F0A04DCC505712E1BD319758997C5F097F10F0C63C86D0C + 1084B0852D9BBA41B8043636643020C86493292273504AE744B268A64E36C245 + 17270B265B88B7B8C946190C5AC6ADA5F44EAFE77C9ED3D296DA424F89896F72 + F22627EFF99EDFF79EEF7DCEE1E17F0E9E2FC545825EE2E3F2370D1612DB9417 + A9FDCF00EAB2B68370C0604BBEEB13A15F34BD2CC48A00289A5B236EDC1E8742 + 63C4AD7B934B42AC08C04C71031894CC42AAD22F404CFCC6A8C7B76447CEAE18 + E048F3CFE493EC4818CC344ACFF72E5B7BFA6024941A3D64AA792BC49CC6805B + 7727EFE8B4DA1D2DC7121D103E011436FD443ECD89C2BC89E6541FE80FC8944E + 08B9DA809B03E3030DB96F6C5B1140C1B91F49435E0CB4460A65C2EBCBD69E3A + 1405F18C0A7D77C6A1D2191DF7A7644A9CCD8F75E8FA0490DFD0433E2B88835A + 4F717E863DAF0F656A2B0CCD8CCFB57E11CE15C6AF0C20B7BE8B341EDE09E5BC + 05E5C26BBE3C8AEA77A3A13598517BF1069A8E24B803703119BD5683C6A24428 + 74169FC41747B9A007FCA3499E01BC994C4EDD55341D4D865C6B4665CB0FBE75 + 202BCE9A2B04DD1014BFB934C0722693F3F115F08FA560960158695434774258 + 92BA34C07226937BE632F825699069CCA81274FA245C95BDCB9A2B9BAEE27C59 + BA3B00179351CFC9C13F9E6E05E01AA30A118ABBF7626BC8CB3819234435BF0B + 17CA33DC01B8984C5EED37682ECD80546DC6FB820EAFE23A4CE2775E1D1E7BF6 + 1118D426BCB22A1C01234968ABDCEB0EC0C564D47219F8657BAC006C5084821F + CFCF63ED986208859DA9F0DF4461F5134160BF8FF2076A044A9FC31FE65F0251 + 05930B001793C9FFF02BF04F645A019284AF8282116154218210ECBA73DE14FE + F4ABC7E3CF0731E28F3206443117ED80D0CEEABBC446452A0BE100E062324A19 + D381F27D9861DA197D21145BB63E05FD148DFA84763CB93AD45A23560EA1A8FB + 2DAC793A006BD7AF024DD356713B0401BD0061681797CE39C721A7AE83783399 + FC9A36F02BF6330066C47E118AF0E8D7F0706C1253431A84990EC302036E079E + C5C617D661DDFAB5CC2B720ADB337B4F2BD331102AC958A9628B0320FBA32BC4 + 9BC928653368AA3C6005886FDD8C889870EBC2E3E209E8262C30D206843CB306 + C11BD6D9C4685771362B651A48EFCFC989851721A99C1B70001CAAFD9E783399 + C29A563456BC0D2933863BBFDC8C1D7111B685691B845F801F423604FF6BC74E + 7185540599480793657E1B2BEE72080F9EFA9678331995DCF933D31F7C1CD1F1 + 512EBBB3B5DC75C7146DCBF21905A6452ABCA4CE46C7E90AF7317CE7834BC417 + 93096FDE88B884988543E6BE5B7A118C6C5A8ED17B123931DBDABE781D07C081 + EAAF892F26739D978D845DF12E426E100CDCCC9414C377473D8ABB00ECAFBA48 + 169B8CB7D82EDC84E4A4445BDB69CA23C4F4E43406FFBEBFA4B80BC0BECA3662 + 379993CDED5E017AFDF3909A9CE2A1ED9463FCC4A3128C881E484C46BC3E59A5 + 902C0B9079A295D84D864BB046949E92B668D43CBF0616625834B2248403604F + E9E7C46E3235FCCB5E01FA820AB03B356349B3B19F01368F5921863D42380076 + 970889DD64B8046B449969990E21CAAD03AE9D191B156368707898F906BCC87C + 032C6E0019EFB510BBC97089E29E140C487FE554EB0CF21763BF611E3BC002F8 + B89AC7B87426CBA73FED7F00F0F8CC4E0FCCE9430000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_13_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004B54944415478DA + D5976D4C53571CC69F0E8CDDD439A2CC44595C96F9C1850FCB3EED830B220379 + 19303A0C1862749B40B40C14740802616E83A801C62694C266C4B86C6E6E3886 + B299390C1F346433CBE6500A08B460292D7D7FA1F4E5DEDD7B0BA5576EEF6DC9 + 92654FD29CF4E4F43CBFF3BFE7F9DF5484FF58A2FF0D40A9BC8F0C73EBDB4E0F + B9BB551A6FFBD7001A0A76820C01835E72A55F8101854610226C002F115A216E + FD3509A3751E771EA87921C206707B43031852CD426B9E5B8078F43BE59ED25E + 183FBB6280A36DBF928D85F170BA09547CDEC7BBB6FE603C4CD639E8CC0E06C2 + 6075E2CE7DF53DBBCDB6ABFD583A0B22648092D65FC84F0E25C0E122425ABF3A + 12D0999620F416276E0F4E0E361F7E3D764500C5E77E269BA549B0CD7B51D971 + 93776D5D7E02943366F4DF9B84D93EEF9F9FD699F069D16E9667C80045CDBDE4 + 67C5C9B0CC7943FD09E8FB3AA5B3303004159F1B030A9C2B49E10610CAB9D3E1 + 40CB9154981C1E5475DC081982D6A977136173BA71FAD22DB41E4D0B0EC09773 + 69D38F68294D87D1EE09CB3C5055F25EC8CA32F80182E55CDAD88DD6B24CE86D + 6ED4B4FF145E050A9299B15A7E1DF2E36FF20304CBB9B4E12A64C7B2304B01AC + 54D56D3DE82897700308E5DC663242569E0D9DD58D5A794FC8A636A831B6A61D + DB36C662D55806CE57E6720308E5FCBDB357203BB187010855E346058A7E9020 + 72B3074E8B0B62DD8BB8EBEA5F8D5AB8960108E5DC6A34A0AD22075A8B1B1FC8 + BB99391204B5C1139CE676EAE477450D78FA8508ACD9286656EBC72CB0CDCE5D + 53CE1B258B107E00A19C179FF91AB2CABD0C00ADFCAE24CCB9ED684CFD06CFAE + DDC25A3B611C46498F04E2181165FE24D503BCD487E084F0031C6EBA46F2E5DC + 62D04376328F01F8B0AD0B7D91526CDDF61C342336BCE229831851BE938BA6F1 + 476413A2B7ADC5BAE8A740100463BE084157CD07E1EC525618966EE4A1866E92 + 2FE7C5F55F4256B50F3316DFE34B3CBF053B125FC5D4841A8E692F9AD2BA988A + 945E7F0BCF3C2FC6FAE875F006182F8EF49C4D67A720CCAA890AE3563F40E1D9 + AB245FCECD7A1D64D5FB2900373E967D877E7131E29276301B4F2A1F615A6105 + 21722166FB06446D5AEF3323D8E6F468D259A11D31E8498F284E556318F403E4 + 9FFE9EE4CBF991BA4EB4D61C600068A55C88C1AEE438DFC6840F22625504366C + 8A7AECC44BE646AD19EA61AD9E74FBCC5997F060DDB7245FCECDFA59B454BF0D + ED420C533B63909892C03A9DAFE4EC137B09DFA89F3142A330C3E576C42E9AB3 + 00DEF9E832C997F3B2FA4ED6F781A813484E4B5AB864CB4F4B04C0E8347A4C3D + D0E3254B21BAEBABB91BD181535F918FE79C4F374585487B238565B40C82829B + 99D662F4FE38ABEC9C00FB6B2F91813917D2CE8ECDC8CC48F7959DF0724268D4 + 1A0CFD3D12D49C05B0AFE62219987321D17D409299C55176AF3F7ECA71151E2A + C654AE79BCA6AE35AA7801F24E5E2003732E24BA0FECC9CA0E881AF763A02146 + 150F8342F801F6567C4106E65C48741FC895E4046D368B77801E271888514E08 + 3F406E790719987321D17D202F3BCF6FE45D5601766526C695181E1A1DA5DE01 + DBA97780671940CEFBED6460CE8574BC370B83DADF425ABB24F24FAAFDBECC59 + 011A20CCDD3875F94C4158FFB8FF014556CD4EC1899D180000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'MoveRemote_14_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004A84944415478DA + ED976D4C535718C7FF0D38D8D4107C9999BAB90F5B962D7E58FCB40F2E880C04 + 19321A0C1A62749B421404119DA240987332DD18B001E5652EBA9918E3A68E80 + 6C6613C3070D73CBB23994020A2D58A0A5EF2DBD7DB9F7ECDE5BB8F4E5F6D29A + 25FBB27FD29CE4F4E43CBFF3F4FCEE4D65F88F23FB1F209C45075BBA4984DBDE + A63C64535341A2ED5F03A8C9DB00120606B7E4BB1E257A9513614144044033E1 + 35E2D65FA3305A9DB8F340332F4444006E3A3C807EF514B466C70CC4E3DFD8EA + 69ADF989534F0C50D27C937C9E9F08CACDA0ECAB6EC9B5D5BB1361B23AA0334F + F310062B853BF735F7EC36DBC6D64319411061011437FD4CEAF62661DAC584D5 + 81986840679A83D05B28DCEE1BEDABDFF7D6DA2702286AF889D417A4C0E6A471 + ACED17C9B5A7F62441356946CFBD5198ED4E617E5C67C217859B82EA091352AA + B9280A5F16A5C2E2A0C3EA0017EEBE8EE92C3C0CC3EA73A3578986E234698050 + AA15D65F47E381CD304D7B50DE76236C082E27DE4F868D72E3F4855B682A499F + 1F404CB5FD751D683C9801A3DD135171DF94B7744151BA657E0031D5F6D7B6A3 + A934137A9B1B95AD3F46D681BC547EAC68B98E96C3EF84069052CD6EB5407128 + 0B532C40A419362851D2990BDAB60C77A99B31A8824B14404AB5E29A2B501CC9 + 86CEEA46554B47D8C56DD0A0EFA93A44AFF480B2B8609B7274AA9C46B92F8400 + 20A59ADD6C82E2E8561EC03734A111258B123FB95189C21FE46C711A0B97C582 + 7B4BE81F5982200480C2FA2E124AB5E2CF2EA3B92C075A8B1B1FB6B4F373BFCA + 4EC20327D69112C462893F307BF2DF653558F2520C5BFC6956439AFD30A21002 + C0BEDA4E124A359BC908C5B1ED3CC06C36B4ADC49A979F87639C4143C6353CBB + 68153F3F621C4071871C0B5F5880C5CB9F01C3307CF1590802660682BAAA2A33 + C80580BD35ED24946A07CE5C84E2782E0FF051F3557EAE3BBA00EB93DFC0D888 + 06E38356ACF394829651F823BA16CFBD1287B8E58BD99F68AEF0ECC8CDD97476 + 16C2AC1E2933AE1100F23FBD4642A966351AA028DF8149CBDC054EFE7A151252 + D6F31B8FAA1E635A4383A21D58FAE222C4AF88F31663FC8B73A349678576D0A0 + 271E5982BAD2D02700EC397D858452ADE4936FA1A8D8C902B8F1B1E27B7EAE27 + B6081B5313BC1B335E88A8055158BA223EE0C473C58D5A3334035A3D717B8BFB + 5DC2DDA72E9350AA590C7A3455EEE2016693766E3592D392FC4EE76DB9FF8969 + C63BEA278D18556AFC8AFB01BC77F21211538D4B69F5793456BC0BADCF779BCF + AF466A7ACACC250B3E2DE303A39BD063EC811E2EF7F45ADFE27E00BB4E5C2481 + AAF95A1098DEF8A3487F3BCDAF5010040B3739AE85EABE16AF59F2D15E5D11FA + 51BCB3EA0209544D2A9C86995B32BC6D6768518809CD04FAFF1E0C6ABB28C08E + CA6F48A06A52E13494676689B49D16F4530DABF150F948ED72E24D4D95512D09 + 907BFC1C09544D2A9C865BB3B27D5413FF19388821E5C3901002C0F6B2B32450 + 35A9701A6E93E7847CD8CCDE016E1CE12186442104806D47DA48A06A52E134CC + CDCE150AD1411DF0EFCCC8B00A03FD4343EC3BE055F61DE00902C8F9A09504AA + 2695C35D59E8D3DE0D6BED5CC89FECE3F775D10E700011EE269A4B67F222FAC3 + FB0F564ED24E4CCA66690000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_15_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000049C4944415478DA + ED975B4C14571CC6BF55DAD25A43A825244A635F4CDAC687267DE9830D220541 + 8A848D160D3162AB5085805C2CA240A86DB5D2624181E5D2369698B644AD4030 + 58538BE14143DA3EB4167591DB2EBAC02ECBDEEF3B733AB32BC30E7B763BDB34 + 691FFA259B939C9C9CEFF7FFEFF79FC9C8F02F4BF63FC07F1EA0AC7D904478E5 + 2DA7976C6D2D4CB2FE63000DF99B412460F0472E0D2931AC9C950C21198061A5 + 35E2E6EFD330585CB87D4F2309423280879106705F3D0FADC9F118E2D12F9C7B + 7A4741D2FCDF06286DFB899C294882D3C3A2EA8BC1B0674FED4F82D1E280CE64 + F7412C589CB87D5773C766B56EE9A8C8A442FC254049EB8FA4F16032EC6E5652 + 079E8A0274C62508BDD9895B23D3234D87DEDC18162054DABD1E379A0A536175 + 3138D67923ACF9C903C950CD993074671A269B4BD89FD11971B6682BB5581100 + 2DEDC5E7AEE15C711ACC0E46520778F1797DA833FB6058EEC2EBC34A3497A44B + 03589EF6E2B3036839BC0D46BB17D59DD72543F03AF16E0AAC4E0F4E5FB889D6 + D20C6900CBD35ED2D48F96B24C186CDE88CC0355DD3E0045F9F6F000A1D2EEB0 + 59D15A9E05BDD583DA8E6B9175203F0D130B4AE47D278793CCF74EB90C6FA30E + 6E2A40A8B41F6EEC85A2221BF31C40A49AE4CCDFEBC946D45A2F9C6637ACF38E + AB2A97411E0821001437FF4068697758CC5054EE80CEE2415D7BBFC88080E52E + 584135B7428391271B397306AB9E8FF69DD64F9883200480A2A601424B7BE999 + CB501CDDE90308D4BE4B2970786C68CABC88F867D7892B372851D42B4774828C + 337F9A9B0486FBB1540801E0D0E757092DED36B3196D5539D09A3DF8A0BD4FD8 + BF212BC0FA0D2F60EE810DAF912388C673FEF35CE5BFAE6840DC8655581DF70C + 5896F5992F42F05DF34338AFA8AA16E402C0C1863E424B7BD967DD501CDBED03 + 08D4E6CEB5D894F23A1E4E69609F61D09CD9033BD791927E39625E8C464CDC6A + 3001C68B2BBF67D5D93808937AAACAB05E0028F8B487D0D26E331BA1389EEB03 + F8B0ED8AB03F185588C4D44DBE8BA7558F30336A012B7323E1A535888D8FF19B + B162737E35EA2CD03E58D013AF2C515DBB3022001C38FD3DA1A5BDBCFE1B28AA + F760CE2C9A1EA47CB50E5BD212FD17B37E88954FACC49AF8D865152F991BB426 + 6846B57AE2F19B8B42B8FFE445424BBBC56880A2662F07E0C1C78ACBC2FE5074 + 3152D29345D5F95B2EAE9861FDAB7ECE8069A546642E0278E7A36E424B7BC527 + 5D68ADCDF301042AFD7C02D232521F872CB85A36004637ABC7E43D7590B90820 + EFC4B78496762BD781969A7DD02E03DBF6750232DE4A17190541707073335AA8 + EE6AE1F6D8372E371701ECADBB406869AFACEF024DC3B14791B53DD3DF7696A1 + 42CC6A6631FE8706AF980BD077AA26FCBB604F6D17A1A53D94F82990676553DA + CE08E3A79A54635C39A176BBF086A6CEA00E0B907BFC3CA1A53D94F829D899BD + 2360D4E87F030F31A61C0F092100ECAEFA92D0D21E4AFC14EC92E7847CD82C66 + 805FA77C106354080160576527A1A53D94F829C8DD912B1831411D1077666A52 + 85D1FB6363DC3BE065EE1DE00D02C879BF83D0D21E4A4706B231A2FD59D2D925 + 91DFB8C7EFABD40EF00011DE4655777D7E44DF9B7F02F108D04E054E9DD20000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_16_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004994944415478DA + ED977D4C1B6500C69F0253745F61BA906D28C6C41893FD61A27FF807863184C1 + 1011C2640B219BBA811B84313E64B08D20EACC304CD8A0E5639AB990CCC529DB + 74C111270B2623444DD4C958373668BB156829FDBA7E73F77AD7C2D1BB5EF130 + 26FEB32769DEE6EEFA3EBFF7B9E7DE4B15F89FA57808F01060B193E51DFD6489 + D35D77CF922DCAE224EA3F03682ADC04220383BBE4FC801A43EAC92541C802A0 + 1979415CFB5307B3DD83C111BD6C0859003E5A1EC02DED340C56D71CC4835F59 + F7F4CEA2A4E97F0D70A0FD2772BC28096E1F839A53FD8B9A7FB23B0916BB0B46 + ABD30F31637763F0A6FE8683A2367756668685E001A40A47D3349AF726C3E965 + 6425F0681460B42C40986C6E5C1FD60DB7EC7B6DA32C0071E1CA947D68294E05 + E5A151DB757551F3A37B92A199B262E0860E5687873F3E61B4E044C996B04987 + 000417AEACF50A4E96A6C1E6A26525C089FBF97DA3CD0FC3B0ABE91B52A3757F + BA7C80E0C2959DEC455BD956589CB338DCD5271B8253C3BB29A0DC3E1CEBBE06 + E5818C7F06902A9CC7E5445B7926CC8ED9259907ABACFD147EF6D56AD8AFBF8F + 7BCC6FA11E5E4980FDCA1F89B870E527BE83B2220B26CA87BACE1F969640611A + EECDA851703603AB9E8D80DBE60535EDBAACF1987382217880D2D62B445C38B7 + D301556536A6590029D18446A42252F2DC186BFEDE856C44ADA7B1FCC968707B + A5E99E2D0482072869E925E2C25534F740559D0BA3DD87FA8EEF0506834C0368 + B8F1724425A2B146708E821EC38F34233A4EC19A3FC69691663F8C24040FB0EF + B3CB445C3817454175709B1F40AC84F675887FEE29B8271828DFBC88D8151B02 + 2B37AB51723107CB9F5E86956B1F07C3307EF3790802660EC2DDA3A999C9E101 + F6365D22E2C2551C3F8FF69A3C186C3E7CD071490070555184849457707F5C8F + C93B145E2255FE447E8B68C2BAE75761F5DA95EC2D5A309E1FB96394D1C14258 + B5E335E6781EA0E8D30B445C38176583AA76871F40AC4D5DEB91989AE09F58A7 + 7900A79E86877661CD332B1013BB3A60C608CDB9D162B4C37067C644661589DA + BA99611E60CFB16F89B870554D5F417528DF0FF0617B8F00A03FAA189BD31203 + 13330188C8659178223646B4E20573B3C10AFD6D8389F802E68212EE3EFA3511 + 17CE616313385C80299B372481942F3620253D59B0BA40E4C215D34C60344D99 + A153EB05E60280773E3A47C485AB6AEC86EAC84E16C0878F55DF080006A24B91 + 96913A57B2D0D5324130C64913C646B421E602805D0D6789B8700EAB05CABA5D + 7E00B1D24FC721E3F574815108040B373561C0E8CD31497301C0CEFA6E222E5C + 75E319B41D791B0689C770EB9771C87A2333103B434B424CEA2771F72F3DBC3E + E7462973014041DD19222E9CD36E47380DC51C444E56B644EC34FFF869C6B4D0 + 8D9841F9CCF1FA7AB3765180FC43A749B8C249892BE1B6ECDCA0474DFA367010 + A3EABB5AAF07AF4A41F0003B6A3E27E10A2725AE84DB73F2C26E36F31DE0C671 + 3FC4A824040FB0BDBA8B842B9C94B812E6E7E6F346744802C264C6C734B87D6B + 74947D07BCC0BE03664300F2DEEF24E10A27A5AADE6C0C1B7E9175ED82C81FEC + F6FBA264021CC0126793D4B9C6C225FDDDFB1BC0C1CE4E8CF5B2BE0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_17_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000048F4944415478DA + EDD76D4C1B751C07F06F61283A27610F213A7446B364267BE12BE30B0C630C06 + 434408932D043795811B846DC8E4618CE0D4993971E080169866BA256473EE81 + 8CCCA1C8C28B2D445FA8938D02035AB6525A4A697B7DE6EEEFF53A8E3BEEE8DA + C4445FEC9734975C2FFFDFE77EDFFFF55205FEE3523C023C02FC6F01A52D3D24 + C4A56EB866C9E6E6A204EA5F03D4156C000982E1BBE47CAF1A7D6A7DC8888702 + 6826B8415CFF6B1C669B1B37EFE842423C14E0A583030C68A760B0381F20EEFF + CE764F6D2D4C980A1AB03073C2CEFEABC204B8BC0C2A4FF6045CE4F3FC04CCD8 + 9C305A1C1C62DAE6C2CDDBBA5B768ADAD85A961E1021020833DFAFEA46FDEE44 + 383C4C5013787C09609C994798AC2EDCE81FEF6FD8B3697D4880B9CC4B953FA3 + A12819949B46555B77C0E647762542336941EFAD7158EC6EFEFC8471065F176F + 0EF8A84B00739997365DC3899214589D745013F095CF7ECF68E5300C3BCAAE3E + 351AF7A60607D8AFFA950833F7B8DD68DAB705338E5954B775058DF0D5E1F793 + 40B9BC387AE63AAED8F2D68745904EF6F41F636EF3DBA8854716B0B7F91722CC + BCACB1134DA5E930DB67436A2EAC7DAA93E8F5549956BE14B5C265F5809A7276 + 6ADCE62C21820794345E23C2CC3D2E279A3FCC8089F2A2A6F527D906040CBB40 + 987402052918995623AF3D0D4FBF188EA52B23B9AB4D235609820714375C25C2 + CCCB4E744059968929162057EF9CDB04A7D78EC68CF388796AB5E8BB51B6F907 + 97321119AB609B3FC1EE079AFD30B2081EB0E778271166EE7638A02CCF86D1E6 + 456DCB1509A08BC9C79AB5CF6172C88E57C32A1089E5DC790A3AF43F568FA5CF + 4760D9AA27C1300CD77C0EE19B9A1FE1BAA8A99CCEE201BBEB3A8830F303F517 + A0ACD8CA01E42A4EF50CE2925EC3BD311D9C13349ADFBA0C879742F1E52C44BD + 1089A855CB400B1ACF1D7DE728A39D4558B46395E6353CA0F0D82522CCDCE5B0 + 4355990383D58B8F5B3A24806E4521E293E3B885C735F7A11FA4402B3C885DB7 + 1CD13151FE668CB8B9EF3863B4C130346D22B38A786DCD743F0FD875F4021166 + 5E7EFC1C9455DB39805C6D687B161B53E2FD0B337E4478443856C4442FB8E3F9 + E6668305BA41838978FDCD459B30FFC80F4498B9D34E41793097037CA2BA2801 + F42C2942526AA2E8EEFC2317DF31CDF88FA64933C6D53A517311E0BD4FCF1261 + E6E55FB643599D8749AB47760249DFAE464A5AF2834D26BD5B468031EA4D18BD + A395341701761E6E27C2CC1D362B948776B0002F3E53FE2801F4469620ED8D54 + 51230982C54D4E18307C7B54B6B908B0A3F60C11665E71EC349A6B767200B94A + 3D158B8C37D3FD63676859845EA7C7C0DF438B361701F26ABE27C2CC1D361B9A + 0EBD0BC3228FE196EF629195912933769A7FFC34A35ADC558F683D6EBCAEAB35 + 6B0302720F9E22C2CCABEB4E2350F54557606B66B6E051938FC1871856DF5D14 + C103B6577E4302652EB707B665E52CFA6333B7077CC7310E312C8BE001DBCADB + 48A0CCE5F6406E762EDF88964C403C99B1510D06078687D977C0CBEC3B605602 + C8F9A89504CA7C611DB89A897EC36F415D3B5FE44FF6E7F715D909F80021AE26 + 5B67BF2808E9DFD63F2998CB4EB14EF0110000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_18_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004974944415478DA + ED975F4C5B551CC7BF1DE0986C41FE2CA89BDB92E983710FBE68F680610C6130 + 440261B285904D65E0C6C2E6F85BC608A2CE4C8501425B609A293304754210DC + 4437260F2C441FD4C94607E34FD93A6829A57F80FEBBF7786FCBBD507A0BAD31 + F1855FD29CE4F4E47C3FE773CEB9375784FFB9446B006B006B00429DA7EBBB89 + 97D3F49A6C649F243BD2F89F015464EE01F100831DF25D8F1C7DF2897F05B122 + 00457B26E2E65FE3D01ACCB87557E935040FB05C3B0B60A53C0318504C41A59B + 5F8078F83B931ED7901539E53500A73DB7A11B955991305969882F76AF38C147 + 19919831CC43AD9BB3434C1B4CB87547797BD668DCDB9097B02A840B00AB3DB7 + FE06AA8E4561CE427B6460BD2FA09E5984D0E84DE8ED1FEFAF3EFEEA2EAF0158 + ED79B29F519D1D03A3994271E3F515273877340A63933AF4DC1E876ED6CCF73F + 52CFA0E6C4BE55AF393FE05DD90DC269CF9776E1B39C58E8E7298F0CB0C59ED7 + 076ABD1D8666F6B1AB4F8EDA9371A26DE5C12FACF3239DCC903F46CDDA375006 + 8B20C049C92F84D39E2FB986BA53FB31336743496397C7106C95BF1D0DA3C98A + F3976FA2C390BE4BE44B7E0DDD191862D25B609C9AEF1C336B939742F00039B5 + 3F114E7B41DD8FA83B9D00EDAC6DC5308A50F011F908FE774A76113D96624DE8 + CE27420242FDC13E3134C37A17081EE044F555C2692FA8EB802437111AA315A5 + 0DD704037A6DA5B0C18C977C0AB04114B268203316C3D372A437C723F8D9F508 + 08DDC06C09C5FC6841081EE0F8854EC2692FA8FD01D2BC244C3100EE6AB7E449 + 6C7FEE199826683424B5236CE3167BFF0813FE4E5B1202B6F961D3E6C741D3B4 + 3D9C8320A017204CAD63E2E9641EE058453BE1B417D6B4415A9802B5C18AB2FA + 0E41802E3A03E1D1BBF16054898941235E5E57C41831A1FFB12A04EEF047E0E6 + 4DCC162D06732DDB6754CF32103AC5A858BB9D07C8FAA48D70DA8B6A5A212D3A + 60077057E1B2A71011136E9F787CEC21E695144CD43C82776C445058A0238C76 + 0E67DB19B501AAC1690DB1892214A5D3FD3CC0D1F3DF134E7B51F515C8C4A950 + E9AD78AFBE5D10E0BA280B7B63231C13D30E081F3F1F8484052D5BF162B856A5 + 83F29E4A43AC8E70A7439871EE5BC26917577D0369F1213B80BBDAD3F834A2E3 + A29C56E750EEBC628A76B49A492DC6E54AA7702780B73E68219C76F1851648CF + A4D901DE97B50A0274FB6623363E66E190B9AE965E02A39ED060E4AEC225DC09 + E0487933E1B48B2B9B212D49C7A4DE027715FDC516C4BF16E714E402C1C04D3E + 5261E8CE8860B813C0E1B2CB84D32EAEF81AD2B38719002B3E945E1104E8F1CF + 41E2EB090EED34250831A19CC0C0DF836EC39D00D24BBF229CF6E24F9B20293D + 620770577197B622393149403BC55FBFB11105EECB871516335E519669152B02 + A49DB94438ED25154DA83BFB26542B5CC3FD5F6EC581A49425574D781B588821 + F97DB7103CC021F1E784D35E5AD984D5AA2FA808079353DD3E6CB833C0B6A376 + 882141081EE0606123594DFBF22D484B49E383281703CE664647C6706F606888 + 79073CCFBC036C2E00A9050D6435ED4B2BFF6A12FA55BF793476B1C89FCCE3F7 + 4541032C8097B30956CBC7995E7DECFC036E43B04E167A92D60000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_19_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004874944415478DA + EDD76F50D3751C07F0F7044F483D42E0A4B4F4AE7CD0E5839EE5033A44044122 + 6E1C86C67152312660406A29A0DCC07F696962C206A8517185456124495C04F1 + 408FAB0795A10C11D8D0091B63EC1F6C8CFDBEFDBE9BFCE0D7FE34B8EEEA019F + 3BEE3BC66FDFCFEBFDD9EFBB1D02FCC72558042C021601FF3BC0BEAA7632CF2D + 6E58A6C9B6CADC28D3BF063893B519C40706BDA4A1538E2EF9F082111C606E72 + 0AB033BE0DA2E38F21E88C56DCBCA35A108207A08DF75777380036BB6F801EE5 + 28D4FAC9478807BFB2DDE3ABC551A30B06B02BCE8AA360B13128BCD8EEF5C527 + 33A3306E9C84463FE1408C192DB8795B75CB6C326DA93E90E813C20550206DC3 + B9EC684C4C313E2558E60F68C667115A830537BA87BACB73B66E9C17E06DD94F + 8426CFAF6845796E2C4C563B8A6ADABCBEF884281A8A113D3A6F0D416FB672CF + 3FD48CE3FCDE6D8EBD9F2E5BF5FC92A5A4997DF8DBA055F72A2498720BC8AFFC + 91D0E46F9D6FC1477971304CDA7D7D1B41EFD7FB1A8303C3B0C7A7B54B8E0BF9 + F102DA5CE04F7E0E7D2628C46298826974B25961D525CF457080BC0B3F109A3C + F7DCF7A828D88EF189691CAE69F5DA9880613758C2FD5EF6660C4C161B4ED575 + E09A317DA3B3F9E321CB43031C576BFB0D2E080EB0B7FC3AA1C973CE7E878A7D + 89D099A7BD367FAD7E2B266C66C8840D085FB186F7B702D94574DA8AB4E1CF86 + B2CD03D9A9D8D91FC62D8203E47CD84C68F23D1F7C8BCAFD49D09A6C28A96EF1 + 0868B16560DD86A730D267C68B7EC5081484A02C2B0EFD6372A4D727206CC372 + AC0C7B0C0CC3389ACF20E8D49C084BA3A2702C9903649F692234B9F87423A407 + 84186501DE6A536538226236E1FEA00A93C376540B9BD89363C29EAB4204AD0F + 4050D84AD8E7349E59E973268D9945E8958385BA751C40FCFE5542938BDF6B80 + F4600A34461B2455D73C025A994C44C64638361E523CC070AF09CB028155EB57 + 20787590B319C36F4ED7718D11EABB635A322D8854968C757300D1A96F084D9E + 75F24B480FED7000BC5584EC096C898B746ECC38117E4BFD10B23AF86F89679B + EBD47AA87AD55A627336E7DD849927BE2234B9E8783D6485A9501B6C28AD6AF2 + 0868138811131FCD4BE71C393FB19D71AEDA111D86E42A5E731EE08D6357084D + 9E75EC73488B763900DE6A73CD93884B887D7493B9A665E66034C35A0CDC51BA + 34E70132CABE2034B9E8681DA4C5690EC05159A34740BB7F2E125E8EE7357241 + B0B891876AF4DD1E70DB9C07D82DA92334B9A8F433480FA763C430056F157379 + 0D925E49748E9DB1BB450CAB86D1F3E75D8FCD7980F4924F094D2E92D4427A64 + 370BB0E1B8F46B8F80CE803C242709DD8CDDCE1D3FC58012F7E4FDCA292B5E52 + 49744AAF80B4E25A429367492EA3B224C301F056F1B56BB1439832E7A8B97F1B + 28A24F7ECF238203EC2ABC446872310BA838F23AD4FF700CB77FB2163B93533D + 7ED8CCDC03741D7420FADC2238C0CE83358426CF2EFD18BE5457F021A4A5A471 + 8DEC2E13E04F66704081DE9EBE3EF63BE039F63B60DA0590FA6E35F125F94CBD + 735D886EF52F3E5D3B5BE477F6E3F705B713A08079EEE6B6AE9CCE9AD7FF1A7F + 01CE42754E1D65DA120000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveRemote_20_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004344944415478DA + EDD66F6C13651C07F06FDD164099033AB2E1504C448D911726BE90173363CC8D + 9539972DC34196C9D4C102230391881D639953316850276CED3620684894A062 + 90459CE2602610125FA8B8B14261FD035DD7AEEBBFEBFAE77A773EBDAEB79DBD + F50FBCF0CD7E4973EDA577DFCFF37BEEB93B19FEE792CD01E600738039C0CC1F + BBBBFAB9240FBFEC0B72EB3A1BF2A9FB0644C20F6D5D032E0146E82FDF0E6870 + 5563BE2F84248061136BC4C5BF8DB0BBFDB872DD74CF084900CD240618368CC3 + E2F44E21EEFE41D215DDF5F9E3F70C20854FEBF3E1A359288FF6C73CF0A3BA7C + 38DC5E589D933C62C2EDC39521D3350F45ADEDDE539A304200BCA5FE8D635916 + 9F6F2BC064804DE8E079A980D5318DB0B97CB83C681C6CDFFED2AAC87F1E6B5B + F2EC03695C2FF9FAA7CE6F7F15AD0848027676FECA712C83F68622507E064D3D + 1762861FD85200FD981303D78C707AFCC2FE51AB035FEC58278B84CB52B94B99 + 4F64C87DAE00A8716FAFDE6FAF988910008D477E26F92C0E3716C3E56512EA00 + C331E40429B86375F118964C61DF550D8EEC54C8A6C317C91FCA9C8FD0BAB1DD + 76452104C08EF69FF829E8D8B51E8EC9209A7BFA6286FFEE6F26001F5E98A7C4 + 02991C6D6F1682F2D13878F222CEB96B56C9D2B84BD92B3349F8020263C88795 + 440880ED9FF5F253D0B1BB14764F30EEE89F3F9C85154F3E0ABF99C5B1CA1F91 + BD3087DFBF4B7D140374932DE7A96C79FAD207111A54283C82E0C04E217C67F4 + CA890A01B0EDD059BE039D6F97C146D168E93E1F13709EAE456EE16ADCD19960 + D65238FDDA2FF00428D47C5382654F3F8C8CA5E9A443D3C1916D681F65F51084 + D3A053DA570880FA4F7EE001AA3DE518278078B5BA331B7945B9FC898DFABBF0 + 8E32F005BD58F2F8422CCECA0887B1E2F0D0D66175C37273C2C6056579869689 + 4101B0E5E0F71CC73050EDAD84D54DA3B5EB5C4C401F5B87B5C579E113B36144 + 4A5A0AE4598BFF33E2E970BBC509D30D8B8DA3C3E1A28BB0EEC0E97007DEDDC0 + 03E255AE7A190A1505A2D1855B2E1E31C386B7B6313B8C1A93285C0478E38353 + 3C40ADAC82C545E3BDAEB331011764F5282E299ABAC8A247CBCEC058CD368C5C + 3744858B00B56D5FF3AB40D5B48907C4AB353D8FA0E4658528280A417063A316 + 68874624C34580CDAD27C353B0AF9A07BCAF3E1313D09FDA80B2574AC36D6719 + 4984D964C6F03F37670D17016A5ABEE2EF84AAE61A8CB902885785C773505156 + 2ED17646587EFA11036E696E1B027EBC686AB51B6202AAF79DE0422351EDDF4C + 00343E547D17133030BF111BCA2B672C35E9690821B49A5BB32204C026E53172 + 0D901B514B2D0F88578A13CBB1B1A26AD69B4DE41A086D753C422B8910001BF7 + F6F0EF031DFB5F87258165B8FECBE5A8AEAC168298A80E883BA31BD1E3C6B056 + 4B9E01CF906740300A50F54E77522FA443E96AB85375C91C428AFB8BDC7E9F93 + EC40B280D9EAD4C75B937AD5FF17EBAF684EE430361D0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'MoveRemote_21_80' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003F94944415478DA + EDD66F4C1B651C07F06F1DC4E95C702B13944D5EE8CC8CC6687CB3171836F923 + 889340986C2104340CB28DB039FFCCB28DD4A9737F3237B695C2708618A25974 + CECC112671B2F16266F18D1A11CABAD11656684BFF5EE9BFE3EEF1EE3A8E9E3D + E8B199E80B7E49F334D7BBFB7E9E5F9FA75715FEE3522D0016000B8005C0FF06 + B0ABAD97CCF35A8A0932AB9B77E6DAFE35C0D1DA75200A18FC29DFF61970DD30 + 76CF883800C32A6BC4953F46E0A6C2F865E0F63D21E20034A30C30689980DD1B + 1410D70646031115FB82AE3677E8AE016FB7FE4C3EAB5B8F10CD42F379EF9C17 + 7D5AB31E1E2A08873720205C5408D7FA47C334137A4E575F24413CBE7FF933F7 + 25932EEEED6FA6B0FB0D68119105EC68F9891CDF9A8340845524BF3F09707866 + 104E1F8F1809376FCB5D1C1BAE4A2257539F4851877C11F827825DE6B0BB3416 + 21021A4EFD489AB7E7C31F66D0D87E79CEF0035B7260B679B97560021598128F + 8F393C3851FF8A4A1AFEB07A492A6F2270DEF2C52144407D733739D950005F90 + 51D481F2AFB86ED193D0667720402D01CB6D9F9EEB069CDA51A812C293C9D5F4 + 2753B9F007B8CF18EEC5CA2244C0B6635D44B7F35578B819ED6DEF4908E80A56 + 2273F52AD88C019CABEAC143498FE050E7155CA42A9FE5C3339E4A572F5DF120 + 589615C2A71104EC1D44E8BC59E32A15015B8F5E20BA5D1BE09E9C4A18CED78B + 27D39095B716A3262B42E30CCE94FD80839DDDE8A31B9D996B32D4292B968289 + 099E1EF9637EC72487F05A4C1A77A608A83BF23D6979A7184E3F8DA6D3971202 + 2ED1D5C8CECF126E3C62BE8DE0180397DF8B956B9663595A4A348C9586F3A3C7 + 41C17EC3E52453AA6C4B93AB5F046C39F41DD1BF5B82090EA0A4D6B6A4E3E582 + ECE88DD9286251F222A8D396FD63C633E16EBB17D621BB93D0D170C922AC39F0 + 0DD1EF2E8383A2A16DBB9810D0C3D620AF304732BB68CBA53366D8E8E8B4B931 + 62B04AC22580B73E3E4BF41F6C14004A2AABF5511414E5DF5964F1B36563308E + 712786072C71E11240F5FEAF49ABA61C761F8D0FDB2E24045C56D5A1E8B54249 + 501C82C3D9C6EC30FE352C1B2E0154693B89BE71B3005052EBDA1F43F1EB1BA2 + 6D671959C4B8751C837FDE98355C02A86CFA92E8F75408808F5ACF2704F4266D + 476971894CDB1971FB99872DB869B8658984F19255EBB6CC09A8D8D341F47B2B + 61F3451286F395F74506369694C56C35F9AF8147180D3767458880CD9A3344BF + AF8A03D0F8447F2E21A06F7103369596CFFA6333BD06F8D124208CB20811B069 + 773B6969AA16004AAAB063252ACA2AC42026AE03D2CE9886CD181A341AB967C0 + D3DC33602A0E50FEFE69A2DBF726EC0AB7E17BDD25E8B7FFAAE8DC9922BF733F + BFCFCB768007CCF36EB275F670EDBCFE69FF0D5C73294E424C34CB0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004424944415478DA + CDD77D4C1B651C07F02F89C9CAE61F9B6F2CA066FF18FFD87B60C8D8566861C0 + 644C872E647173A8BCC8463679511C2F1DA062D0A0B0414B61315351C354C616 + 6003DAD27658600CB38C202151C3C032A04CFA069495BBF3E9810502D4EBA9D3 + 5FD25CF2DC93E7F779BE7797DE79E03F2E0F572753E52D8C9BEBB5DA66B04F7A + 4264FDC7004509C16038301C532E6AFBD0D937ACB3CD30E15C119C0014CD2D08 + F5ED418C5BA6D1D63BC419C10960A7B8017A07C660304DCD227ED2B75B3D1055 + 91281AE30D482957319F248A60B3D3387DBEC565F30FE344305AA6306A9A6411 + BF5B6C0431D43D61B58A2BD2A35644B8049C922A98E2A4104CDEA73925B0EA21 + C0609C47DC33DBA0EB19EC29391EBA8917E06469235372220CD6690A99954A97 + CD0BE2437067C4046DF7204C13D3CEF1BB0623CE2687AFD8C72520B9E42A73EE + 6404CC5314A7041CE5B85F7F3398590C4D1E9FA68E3E949EDAC70F70FCD37AA6 + ECADE7619C9C417665136784A3F2DFD80BABCD8EC22A35A42991FC0049455798 + B2D4288C4FCCB8D57C6165CBAF429676801F20F1E35A469AF602EE59ED90545C + 732F818408F698236F80FCED17F901E20B6B1859FA418C1100DFCA29AF436546 + 343F405CC1B78C2CE365182C76E4CAEBDC6A9C9BB89F3D4AA497713EF3103FC0 + EBEF5733B2770FB100BE2529ABC567D931FC00B1F9DF30E5A763306AB6234F7E + C5ADC667120FCC016A704172981FE0586E1523CB3CCC02F8D699D2EFF079EE11 + 7E80A3922F1859D62B2CE0BDF24B6E35CE79F3E02CE0DC457C99FFEA5F03A263 + D396FCE579FA6C862CFB2846CCF77927907BB61A53FAEE25E335178A3C9600F6 + 868A174DD2F60C4396738C00ECF840F6BD5B8DB3925E9A05947C0DE1C6F58BCE + 352B54DC009AEE214825B12C806FE5157F85A0CDDEFC00EADB7A94E5BC86D1BF + F118E6155721788B8FFB80A423918879A78277E38555FD51026455F5EE27F06F + D5FF17505A98F94000C91905CB031E48F7B95A1620494F004DD3E4C7B0C7556B + BD601DD363E78EADD0EABA200CF485EAFA0D88F7F8A351A543B83810F54D5A44 + 8609515BAFC2763F3F74767460F5634FC274B79F5D87A229E77A14BB368D6675 + FBCA008AA29D933DD779C1621842200168DABA10B4D3174A6D07C4C2E7D0D4A2 + 43986801A04185DDBB02A0D6B462E3365FDCBA79837C2D7960C66E9FDB14EDDC + 5CB3660540766A3C79919C4B80A22058B71E560349C07F1B49E0263C1FF58179 + E40ED9E153300FF763F5E34F939DFE8A879FD88071FDCF880815A2EE9A0A3B02 + 02D0D6FA03D6786D80918CB34950F34928C8265600C4CD4F266FB482B58E04F4 + 08F4DFCE0284817E2481769240009A54AD0813EF260968480241B8DCA044F4FE + 10545F6A4470F01E28146A6CF1F5475787CEB91E9B004958492EE3B280AC94B8 + 45D74AF0E73D3007103CE20DEBC80004E41A5B1624B08624601AFA0541C25D50 + 2835F07E6613067A6FC1E7D9ADE8EFF97151FC8E7B4275BDD309F803DAC98E3F + A187FAA40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000042F4944415478DA + CDD67D4C1B751807F02F89C936F10F179D2C4B7CF9CF1837F76279191BD452B6 + 3207D36D2E64D9CC5081CA463679511C2F1D4CC5A041618396C2B2CC04754C05 + 9C202B2D2D2D6F658C644A9090185F6030A0CCF50D286BEFCE5FAF1546A0783D + 75EE492E975C7F799ECF7D7F77E905E07FAE80FB1A90AED4317EF66B77B8B04B + 7E4C64FFD700C5C92F80E1C0702FB9641844CFE058A7C3C548B8223801289A5B + 10AD3F0EE3B66D165D03A39C119C004E8A1B6060681226CB8C07F1D388D11E80 + B84AA968923720AD42CB7C2215C1E1A471F29C6ED9E11F268A60B6CD60C232CD + 22FEB0390862B46FCA6E8FAACC8CF38958167042AE614A52C498BE43734A60C5 + 0380C93C8FB86575A0B37FB8BFF468F47A5E80E3652AA6F4D84ED867296457B5 + 2C3BBC30498CDFC72D30F40DC332353B77FDA6C98C33A9129F739605A4963631 + 678FC7C03A43714AC05DEEE7F586C9CA6268F2FA34770FA2ECC42E7E80A39F36 + 32E56FBD08F3B40BB955CD9C11EE3AFDC60ED81D4E1455B7429EB69B1F20A5F8 + 32539E1E87DB532EBF86DF5DB9CA262832F6F003483FAE67E4192FE196DD0959 + E515FF12488E61CF79CAEFA17CFB657E80A4A25A4691B9179304C0B7F22A1A50 + 95B58F1F20B1F02B4691F50A4C3627F2950D7E0DCE97C6B26799FC5B9CCB3EC0 + 0FF0FAFB358CE2DD032C806FC9CAEB713E379E1F20E1F4974CC5C9784C589D28 + 505EF66BF029E91E2FA016176407F9018EE457338AEC832C806F9D2AFB1A9FE5 + 1FFE7BC0BE848C45FF38814F6C8422E7100B78AFA2CEAFC1796FEEF500CE5EC2 + D4D00F8B7EAFBD501CB008B0233A6AC1A2F6011314B9AF62DC7A877702F9676A + B0FD99350BAEA9355A6E0043FF1814794708C0890F14DFF835382765BF0750FA + 05229F5DCB0FA0EF1B855C96C002F85641C9E7106E58E73F20E5F06EC4BF5389 + F2BCD730F10F5EC382926AD47C940C4575A3FF09FC5775FF02CA8AB2EF092035 + AB7069C03D99EEAD2501B2CC64D0344D0E863DAF783808F6C91184076F84BEB3 + 17C2F0E7D1D27615E288105CD17622262A1C0DCD06C4EE8C445DA3164F6FD884 + FEEBBD707F44D32E17DB87A2A9B97E14DB9B86BAD5E81B4051F4DCE255AB8360 + 338D223CE42E80BE1B6261285404207103540420F100B60804B86A34E2C1471F + 8765EC374F1F6FBFF983815AEF03909B9E44BEE3BC09501456AE5E0BBB892410 + B28900AE1180001A8311E2C83002E820806D24013D494048002D88D8BE15BAD6 + 36ACDF2CC0F59E6ED0A43DE5727A92A0E693D018BA7D0112E717930FCA95EE04 + 2646B02D7433F41DD7B0EA9175B08E0F21700DB9C39BBF22F0B127611EFD050F + 053D05F3C8CF88898EC4774D5A048785A1ABBD0381DEEB7FF563132089B8B771 + 49404E5AE282BDF224708324B08524D0431208265BD08528E156A85ADA201147 + 902DD0912D10A1BE5183FDB1625CAC5341248A805AADC3738250F41A3B17C4EF + 7E26B46D3D73803F012ED28F3FF04618060000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004204944415478DA + CDD67D4C1B751807F06F139309CCC439118C31BEFC6134BACCBD222F8ED749E7 + 64BAE9828B1A8902958D6CF2A238281D9B8A41838E0D7A1416B33FE60B53BBB9 + 81B0414B6959A1C385C48904A7715B810105E91B50D6DE9DBF5EB148A07877D9 + 963D49F34BEEF7BBE7F9E4B9A797936091487DBF86C50D88BA4F332581F62442 + 12DD8CB8BD01B9AA56A18FA0DDE5C126E5AE78E70D039467C681E5C1F01E39AE + EF4357DF90D1E56193F922780168865F2374BF9831EE984647EF206F042F809B + E607E8BD3A0A8B6DCA87F86DA0D329414A8D2C7E543420A75ACB7E2E8B87CBCD + 60EF91D6458B7F921E0FAB630A23B6490EF1B7C345108317279CCE849AFC9480 + 8845017B942DECC1AC444C5E67787560C91D80C53A8B18B3BB60EC31F754EC4C + 7A4A146077E519B662D773704ED328ACD52C5ABC34231157866DD05F34C33631 + EDBF7ECD62C5A1EC64712FA2EC8A46F6F06E29EC5334AF0E78C33BAFFD163B87 + 61C8DFE7ACA90F957B368903ECFCA281AD7AF77958273D90D79EE58DF0C681B7 + 37C2E972A3EC980ECA9CCDE20059E5A7D8AADC148C4F780415FF6FC8558DA0F2 + B68803C83E3BC92AF35EC498D30D454D93B00E644AB9B558F51354EFBD240E90 + 51A666A9FCAD182500B1515C5D8FDA826DE200E9A5DFB154C12BB038DC2851D5 + 0B2A5C227B815B15CA1F71A470BB38C05B1FD5B1D407DB3980D850549DC497F2 + 547180B403DFB0D57B5331627763BFEA94A0C2FB645B66006A1C55ECF87FC0B6 + B4BC792FFCBB1E5E05AA700707101BFB2ABF87E372F7BCEBEAA3E59279808D49 + 09730E197F1F0355F41A07F8B0FA84A0C2C5EF6CF5010E1F47D463CBE7EC35B7 + 68F901DA7B2DA0E46F60D87E5D74074A0ED521E6895071007DCF10A8E23709C0 + 8D8FA91F04152ECA7AD907A8F81A1B9E0C170EC87A7D335E2DA8855291C601C4 + C6FE835FE1DBB20C50C71A8477E066C5ED0BA82C2BBC2580EC82D28501B7A4FA + 4C2C0850E467826118F263B975C9DD61708E0E20E89EFB611F3623F8DE07C87A + 95AC0FC276ED2F2C0D7B08D6813FB134FC118C9B2F2188EC3BC83E4D33FE3C34 + 43FBF3D18CEF7AB3AE3330E0DF9BBD87839685C1611944F4FA95D0192F202E6A + 0D5ADA4C488A8D4093D6086942144E9FD123257903D40D5A3CBE62257EEDBEC0 + 7D15D134EDCBE3C7CCA29ADB0200E4B919E4E6990E9004772E0B87D33280A888 + A7D176EE67C446AF25804E0278064D9A7390264613401B01C4425DAFC19A75EB + 60EAE84048A8B743977DC567F2F940BE4EB4E84D8100E9B387C9F75C1001D847 + FA1113B10A3A02882380663FA09D0062FC80130D1A3C1B13096DAB012B56AF45 + F7791318929EF6B8FDF9B80E1094C6707E6140514EFA9C67E505382CFD888E58 + 4D005D085E4E6660E80A82437D3310721F9981413203618F9259B80469522C4E + 376AB03E3212468301216436ACFD7FCC69BF7726B4862E3FE01FBD7D8F3F11D5 + 10A30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003FD4944415478DA + CDD77D4C1B651C07F06F8D8922D104E7D4698CD118A3894B26810C4709748080 + 1374D3852C6A7C1950D9C8262F8A40CB982F2C68D0B1418FC234FE4134EC0527 + 61B28D523ADE19244B9C93E05BDC3A98B430FA7240597B773E772D2BA4B4DE5D + 94EC975C9ECB73CFF3FC3ECFEFDABB56811091F9410357A77D1B16A71B7263FF + C126347F96A308765D116A320F909D7949C806AC46DCDA80027D97D45BD0EBF2 + 204DB75B45FF6780EA9C04702218FC90A3DD63181EFBBBDFE5E152C422440118 + 565C214C3F9931E35CC0C0E884688428809B110718BD3205AB7DDE8BF8657C90 + 5620BD41AD9A920DC8AF37725FA85570B959941CE90A99FC40960A36E73C2CF6 + 390171DDE92288898BB334BDB9A1283D28222460AFCEC01DCC4DC4DC0D565405 + EEB81DB0DAFC8869870BFD97CC976A76253D230BB0A7F60C57B3FB79D00B0C4A + 1B3B4326AFCC4EC4E5493BBA2F9A619F5DB8D97FCD6AC3A1BC14790FA2BC9A76 + EEF09E5438E6195115E083FFBC5EB53A040C4BBE3E6787C650BB374D1E60D797 + A7B8BAF75E806DCE034DE359D1083E3EDA990CDAE546559309BAFC2DF200B9D5 + AD5C5D413A66663D92922F0D8DBE1D5461863C80FAF3939CAEF0254CD36E9437 + 9C9656819C54A1D5EA7F84FEFD97E501B2AB5A38AA682BA668F9AF636D7D1B1A + 8BB7C90364551EE3A8E2576125BF072AF46D921257A85F14DA72DD0F3852BA5D + 1EE09D4F9A39EAC3ED02406E94D79DC4D79ACC7F076C7BAB30E0797BCFE351A8 + 2FC984C5E1C67E7DABA4C4FBD4193E400B1C7F8E045C6FF9A65A1100484EDABC + 6CD0E0EF33A04A770800B9B1AFF638629E8858D6D761308A03F4FF3A0DAAEC35 + 01F071FDF792126BDFDDEA051C3E8A4D4FAE9107E81DB582D2BC8149C70DD915 + A838D40CE5D36BA503725FDF821D255F81D2BE49006E7C4A9D9094B82CF7152F + A0E65B7C776027A8A653D22BF07FC5AD0BA8AD2A5D15405E71E5CA8055C9EE8B + 1501E545396059961C9CD032C2B9F760185F3FB778BEE41ADFCF30C2FBDF3FD6 + 3B9E619980F53A4C83C1018B93F9C161110FC0699D40D8BDEBE0B098117EDFC3 + B05FBB8CF0FB1F21ED5FA47D14B6F13F70F7BAC770DDFC1BEE5AF3101C9357BC + 6B0460FCA88E7341009A826C6187AC6F4777463C08DA3A8ED88D1B60EA1B4142 + 6C943039393E06ED9D7D484B8C45EB9973C84889C789B64E3CB57E037EBE3042 + D65090F91E1FC45709C65F0943F7503040967F30D9411801382C57A18C7916A6 + 5E02504609E54B4E2000432FD29294683D4D00A9F1682180C8E8680CF50F207C + ADB7428BE56796DC1E96A03A7BCEAF0C28CBCF5A76AFF8D23B49E9951B23D1D5 + 370C556C34010C2029E13902E821803802E822001501181017B709466337D647 + 46E3C2F901F26FE936783CEE65E5E751C69EE19B807F004D7BAA3F219E79F500 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003D24944415478DA + CDD67D4C13671C07F06F9325EA30CBD46DBA6CD912638C7FCC64BAA1B860B40A + 0A28A246A38B5BC2225051A2E36563F2527146166650516829F8877F60A26E32 + 71084A0B4520BC88F10F891A8C73D30A420BA32F0714DBE76E77D7424B4AEBF5 + D946FC2597BB3ECF73F7FB3CBFBBDE3D320488DD99E59C4A198F7EAB03B471F4 + F4055C2C4894F9EB97053A79D7F7655C49EE3730DAFE0DA002977E4EA2075067 + F60A6AC074C4EB0D48D3E883BD052D7627A25507E4CC7F06284C5A0B4E024318 + 72B9A91B9DDD7DAD7627B7512A421280B0D20AD178CF8021DB18DA1EF64A4648 + 02388834C0C367033059465D88073DED8C0CB1650AF9003520B5B4813BA990C3 + EE6071F89C3E60F29F12E430DB4661B48C8888BF6D761ED1DB35CC30EBCA3262 + FD2202020EA974DCE9E4F51879C94AAAC08C370093D98318B4DAD17ADF70BF68 + 7FC427548083C537B9A2031BC08C116495D7074C9E9FB81E4FFB2D68EA32C032 + 3C36D1FEC264C699948D742FA294A25AEEECC128584789A40A08213CAFCF4D56 + 11C3F27F9FBA8E6E141F8AA603EC3F759D2BF93606E6112772CAEB242384F871 + 6F2418BB0305158D50A56EA20324175EE34AD2623134EC0C2AB977E4686AA14E + DF4207509CB8CAA9D2E330C838A02CBB115C0592A2C47DAEA6069AEFB6D20112 + 0B2A3975C6360C30F49FE3DCD26A94676EA70324E4FFC2A93377C0C4AF07F234 + D54125CE536C16F74A5515CE65ED7C35607B7CBACFEBEEED452BA0FE61A708A0 + 0D65C955981FDFF669AF3C5F28F3014446AC9B34A8E38915A58777C1C82FC98E + 6AAE0595F888628B1B5089950BDF9AD4A7D5354803B43F1E823AEB4B11401B47 + 8A7F45D8A2397480D647835067EF1101C74A7F0B2A71EEBE6D2EC0D9CBF862F1 + BCE001C95F6DC29EECF350E77CCDAF8A5F525720EFCC255C381E0F75C5F5E02B + F07FC5EB0B282EC89A16404A66FED48069C9EE8E2901CA8C24B02CCB6F9CB827 + E2B16B23C4DDCE8D1F7BF509ED84889F5FCF58D778C2129FEB691BDBFD03C64F + F624174E26AE24C2EFF18BF3C90821FEB13E18CFF5B4B7FC0072D212C519B2EE + 19CD9CB3008CA90733E7BD0F5BBF016FBEF3212C7D7F21E4DD8F6079F12742E6 + 7F0C73CF1F98BD6021860C8FF8FE0F60ED7BEA4189107725BCB0BAA60E7F8004 + CF607E06B37880D5F81CABC39641DF7207F2F0CF51C7976FC3DA30D4E85A1013 + 118EAA1BB71017B50657AAEBB164E9A7E8BA7B07C20A92759289F213AFDB2354 + B0BEF9F6D480ECD48449E59C35979FB9D180F0B0E53CA093078442AB6F43A47C + 156AB4CD88895C8DAA5A3DE2A2E5B8F2BB0E9F8586A2BDB50D21EFF115EA7DE2 + B96DECE467A2A1B97302F00F07BCC03F95E676600000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003D54944415478DA + CDD77D4C13671C07F06F933907419D6036B7258B5B96C53FCC124D8C2C198945 + 5091E1D469946CBE45A0A204E56563BCB4A2661AB6B0C9841E05972CCADE0822 + BE200A080C8CC21AFF91A8419D192B326981B6D7038ABDBB67D76B8132687777 + DB88BFE4F2DC73CF73CFEF73BFB677571502447CF6B784D2EE441FEDC2E7D459 + C889DCE40FC536BFE807FC787C8FCADF3C55A045B6659513BD6E9708501A874F + 7C8F9F0A129501B67E5A464AB4BB6176FC1B40057EFE2249394071669F500C98 + 8978B601E98666B91FC175278B18FD7E35F39F010A9356824860B8A754B676C1 + D8F5E48693256BA4222401385E5A215A6E9B60758CE2E6BD5EC908490017270D + 70EF8F7E58EC231EC4DDC7ED8C0A71651A75BF62405A6913F94AA386D3C523FB + 5473C0E4C713D4B0394660B60F8B8841875340F4760E314C6459669C5F4440C0 + 017D233991BC0AC34F79491598FD1C60B14D200668276EDC31DD29DA17B54411 + 20B5F82A29DABF1ACC28879CF26B01931F4B5C85EE3E3B5A3B4DB00F8D8E1FFF + D362C337296B94DD88528AEAC8C9D4B5A0473849157087FBFBDA63A1450C2FFC + 7CEA3BBA507C20461960DFD7B5A4E4E03AD88659E495D74B46B8E3C89E68304E + 170A2A5AA04F8B5506482EBC404AD2E3601D626525F78D3C431DA88CF5CA009A + 2F6B883EE3030C302EE8CAAEC8AB40D25AB1D51A2EC3F0C9066580C4826A4265 + 6E443FA3FC71AC2DBD84F2AC4DFF0CD8B42B63CADD26F4ED7050599B6111DE07 + F20D976425CED7BC2FB63AFD790CDE6F9F325EFD5DA16A0A203A2A72D224E3EF + 0CA8CFB68800A5A12BA9C1F24521938E3534364903743CA2519ABD1566E195EC + B0E182ACC48734EBBD806AAC7873AE3240FB432BA89C7811A0340E155721FCAD + F9F201C91FC762BBEE34A8DC8F44C0D1D273B2126BF76EF4004E56E2CC911DA0 + 2A6AE557E0FF8A6717505C9033238094AC63D3036624BB37A605E83293C0F3BC + B011B125B382C18ED0C0AC10B8866DC2037F0E58A125CFCF053B3408BC300F2C + 3320B42FC2E510DE39824285BE45E8870A7D3354C161784AF78DAFC7896BF368 + 6869F70FE0387ED264CFC99CF85E28F6BDE3EE472DC771531617F739CFF8F83E + EFBB1134FCE20790979E289CE84DEA6F719F0A7912F926F160FF3EEEEEFB621B + 5B3BFC011226260B5710347F2168730F82C35E05DD6742F082D7607FD28D9097 + 5E87ADF711425E5E04EBE3DF3067E11BB0F63C10E679C6C7309C1733B6DE5805 + AFB5FD3A3D20372D61D2150785BE0287D98488F06568BA6E44E47BCB51DF7C13 + ABD5EFA2B6A10DB1D111A8A96BC6861835AA2E3662F13B4BD179CB28FC475081 + 635D131F9B4FF9DDA8A636E338E02FDFA8C23F359D7FCE0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Delete_07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003C94944415478DA + CDD67B4C53571C07F06F9339073EE2C0981917B3E95F262CD11083D1C4AD283E + E6F0B9C5193162041A94883C36E455EB1235CCB089835E0A9AB8049D18256A14 + 14B0208A82F88AC411B6C42855100AF6752985F6DEB3DB4B2D65A5DDED71127F + 49F36BCF39FDFD3EF7F4DEDE2B839FD89A7D923039DBD06D1E026DA88E95E3D4 + C15899AF7999BF2F6FC93C4198DCED02C08E83CCF9801A67276E1A06149CC61F + 8777D201BECF28256A65AC08A08D03474FE14C5E3C1D60F38F25A42877077A2C + 6F032843F9CF09F400EACE1E410D188F78BF01A99ABA407F825B360756AB77CB + D9FF0D909FF01588048673C9D98676B4B4BFBA6D739095521192001C2F6D23EA + 1FEB60B00CE24E5BA7648424809D930668EBE885DE34308CF8F365132B437489 + 42DE4B0D4829D6925F1472D8EC3C328FD7F96D7E384E0EA365003D26AB88786D + B10988CED67E968D2C498FF689F00B4856D792A389CB601DE225EDC0C40F00BD + 7104D167B6E1F613DD93825DCBC3A8007B0AAF9182DD2BC00E72C82ABDEEB7F9 + A1F86578DE6D4243AB0EA6FE41F77897DE8863492BE9FE88920AAAC86F7B56C1 + 3CC049DA016738CFD7177AB388E185CBA7BAB91D85C9ABE900BB7EBD428AF67E + 0DA3D5819CD26AC90867FCB4330AACCD8EBCB27AA853D6D00112F32F91A2D468 + 18FA1D0135F78C1C4D1598B4B57400C5910B449DB60E7DAC1DCA92AB81ED40C2 + 2A31E76A2AA1F961FD7F0336C6A6795DECA1F3968049DF805E96FE769C5B7C19 + 7D6D8D5EE31527F3655E80A8E591A316DDEFB082C9F8167AE17940A5B91C5063 + 95E21B312BD517113E3B78D45C4DAD561AA0E5190B66DF77228036944517B0F0 + B3C97480E6A76614676E468FF04876407329A0C6FB156B5D800A44CC991A3820 + 31660DB6ABCAC0646D1101B4B1BFF01C7E57C58029BB12F80EBCAB787F018579 + 59E30248CA383436605CBABB624C80323D013CCF0B2F22663221188E0133C2BE + 08C3C3078F307FC17CDCBB771FE1E1E1686A6A46C4A20834DE6AC4E2258B71A3 + BE014BBF5C0AADB60EF24839AAAFD5206A45142A2BABDCF538B1368F9AFA26DF + 008EE3DD8B31619208206236011F4E81A3DF20DCF8A7C26135803833FB1AF868 + 1AECACF0CC11F4311C16BD90436017B22C381443A66ED741F1EE83ABB9E10390 + 931A2FDC425D3BC0715EF291F7AE712796F06EF4F038E735EFFCCC79D4AB6D68 + F605881B594C3C8AB88A731EC547402EAC9FF59EF57861FEFACDBB6303B253E2 + 461D7150C84C587A74080A9D0573770782A77F0A73D7334C9A311BC6CEA798FC + C9E730BCF81B5366CE8541F71782A60BEBBA9E0F37139A72FFC2BE41696FB6B8 + 01FF002F1ABC3F68702E0E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003CB4944415478DA + CDD67D4C13771807F06F1337A292B9CCECAF25C6FFC5450746A35329AF3A45E3 + 7471C697B1C8CB1022E3256308AD885183092A0A3D0A5B4214454D74CE88282F + A5F2A2455EB64890F09F83F90205EDCB518AD7BB9FD76B29E5A5DDDD6D233EC9 + E549EF7E7D9E4F9EEBF5770AF889FDEA8B84CAD98B210B83E3A5BF414AA87ED8 + 21E4A317AEE352FE0185AF750A7F45F6E654102A773F062D6F2535F78EBCF3D7 + 70F944AC3CC09EEC5F09A5FA8E07303841DD90D4382769A70B50740555A70ECA + 037C9B554E34EA580120378E9DBB8CAB05F1F200BB7F2A2325AAEF3164FD3780 + 4A5C3B9D201F20BBB357C806CC45BCDF80746DA3D45BD0627760B3265949FF67 + 80C2845010110CE792EB4D7D68EF7BF5D0EE20D16211A2002C276E10FA270378 + 631DC7A3DE17A211A2000C2B0ED0DB3F0CA379CC8578FADC402B105396A81C96 + 0D482BD59133894AD8190ED9BF34FA6D7E2A4E0993750C43669B80786DB5F388 + 17DDA3341D569619E313E11790AAA927E792C2617BCB899A40C03CC0689A448C + 58EC78D833D0537428224816E070F17D52941C057A9CC591F206BFCD4FC687E3 + AF41339ABA07601E1DF79C7F6934E17C4AB4BC3FA294A21A72E1F02658C65851 + 137086F3F7FAB7D1226038FEF1A96DEB4371EA6679804367AB49C98F5FC16473 + 20B7BC5634C219F9072341DB191454EAA149DB220F9054789B94A4C7E0CDA843 + 5273EFC8D5D680CAD8F6CF80AF6333663C6B9F2E5B0F4DC6768CD00CD465F7A4 + 4D2061939055DABB30F634CFB87EB3A2503103101911366551D7F37150993B30 + 4CCBDF8E55A577F0C5670153CED5D5EBC4013AFB6DA0B276C1C8BF0FE469EF48 + 6A9C97B855C86ACDEF085EB2401EA0FD190DEAE76F0480DC5097DCC2AAA581D2 + 0149FBB62036BF0AA5D9BB85B7E263DADB921A1F4DDCE606DC44857A0FA8CA6A + E913F8BFE2FD0514171C9913404AD6C9D90173D2DD1DB302D49909E0388E3F88 + 90C9070BE1183323687910FEE8FA132B56AE404747278243826178D486D56B56 + A3B5A5156BBF5C8B078D4DD810BA01BA864628C394A8BD5F87C8E848DCADAEF1 + D46385DA1CEAF406DF0096E53C8B21002C58FE7910BA78C04A1ED0FEB80321AB + 426030B8002DCDAD58C703F47A1EB0D109D041191EE602444D0038AF83A0EE81 + 0F406E7A3CBF83B927C0B2201F0682B59985ECB099F80DFF2330A3AFF9BC080E + 3E13218FF09F3F06430F4331FF1330D62160FE62389C79C162309641A11ECBD7 + 9B98447D539B2F40DCE462E21E1B3B2967B9C9221307EBC6FA5BEF5D8FE3AF37 + 343F9E1D90931637E55EB99AB1AE26EE2F4FBFEE8DF234272E143B0D3BB15ED7 + DCEE01BC035B69BA3F92A1403F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003FA4944415478DA + CDD6FD6F13751C07F0771D301D0F11891263E25F40094326448C63DD13088BC1 + 87200164CA1E1C2CE0C6E2646B6B45818C0465B0F5F6A00675A823829AAC1B7B + EEB6CA9E74121724FB51E6986DF7D0875BD772BD3BBFFD76EB36B6D6EBA90B9F + A4F92477DFFB7E5EF7F95EEFBE0A848883BA2A9129D80B8B8383DC78BFE43B7C + A1DBAF08765E11EAE203DA2F45A6701F057C58F67D5885356FEFF6032E5EC157 + 27DF9007D857784964D4076076DC93DD01DD856A5C3E952A0FB0F7C46722A339 + 48001C4E3157C32A5C98F58A1F50FC35BE3973481EE0F5FC4A51AF4DA500B9F1 + C1F9CBF8B6285D1E60CFBB1562A9E64D589CFF065085EAB319F201B22BCF0AD9 + 80C588071B905BDE1AEE1298DC5EECD01F8963FF33C0B98C6D1025307C43AEB4 + 0FA077E0AF1B6EAF982C152109C00BD21A61FC6D10E34E0F3A6FDF958C9004E0 + 786980DB774660B54FFA11BF0F75B10AA45464C68DC806E494B5881F67C6C1CD + 0938F1696BC8E267D2E260734EC2627751C498D34D1077FB2758565591971214 + 1112704CDF249ECF8A87EB9E20A903914B00AB6D0631EA70E3C6ADC15BC58713 + D6C9021C2DA9178B8F2481F5F028A86C0E59FC747A3CFE30DBD1DE3F08FB8427 + 707CD86AC385EC64792FA2ECE23AF1E2D1ED704CF2923AE00BDFF3FAA7D54131 + 02F9FB34740FA0E4D80E7980C39F18C4D2775E84CDE585BAB24132C217270F25 + 82757328AA32429FB3F39F012FA71E9FF7A8AF55C6A2343705E313DEB08ACF0E + 75791DCCFD6DF38E5FBB744E310F9098A09A33E8E63007FDF19730CA72D0565C + 0FAF0319DB69D694D762C3934BE79C6B6C6A9106E81BF280C9DB8D1156FEE758 + 5356838D4F45CA03FC72C70526FF5558C97E40575E1356615DE62E9AB5FA1FF1 + CCD351E103B2F6EFC45B1F558379EF350A901BDAD21FF0B97A0F982A43F81DF8 + BFE2C1059414152C0A203BFFF4C28045A93E150B02B47919100481FC449AC565 + CBE175D9A1542AD1D7F72B22A256C3E31CC143518FC163B72062C51A786C6692 + 1F877B7C184B563D4173C4CAB5708F0D2129391106435D603E9ECE2DA0D1D815 + 1CC0F342603028C001E5FA75047013D1D11BD0DBF333363DBB095D9DDDD8BC65 + 334C1D3F61EBF3CFC1686C47ECB617D04CD65715AF427D7DA31F505337755342 + E0E61ADB8200D4B9E9E40332D5019E271D5801DED781F5FE0E446F8C464F4F2F + 626262D0D9D945005B60329908602B8CAD6D04104B00CD5025C4A3E17A031293 + 93506BA8A5F3F164BEE94E34B5770703A4CD0CF66D04972E07470058B69274C2 + 063192E48971F2E15F45F218F0F0A3E0D8519ABD2CD9733CB21A9CC30A45D41A + 922D00CDE6C07CB403A4C3CD1D3D0B030A73D2E6AC955FCCD33DE1F4C5F79FE7 + 85993B9B5E3E5A8C9F75DD7DE35B3A7A0380BF01B1E19B3F4C84C1C200000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_10_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004004944415478DA + CDD6FD4F13771C07F077878A81914DDD83CBFE85018A4125BA482950DCC616F7 + 10477CC2C8834CA213C9080FAD95450C4B5C44A1A5E01236713E6D2E33E541CA + 93E0CA53C04DE30C3F6E0CB014461F0E68BDDEDDBEBD428541BBBBDB46FC2497 + 4F7AFDE6FB79E57DD7EBC910A0528BAF7095F9BB3166A7714A7F0B62EA64E6BB + 7C5757DC448D3A45E66F9D2CD0260734B59CAE20850748AD93E5DFE16BCD5E69 + 807DEA6F385DE11E1EF079E50FA206AB0EEFF2022E5CC7A5E2FDD2007B0A6B38 + 5DD13E98ED4F2427A0397F0D974FA74A03A4E47FC5E954070880C669DDF7A206 + 17667DE005947D8B2B670E49037C9C57CD69D5A93C406A9D3A7719574BD3A501 + 767F56C555A80E62CCF16F00B5B8F645867480E4C9F34A326039EAD906E4E8DB + C45E82BB4E37766A8FC8A9FF0C703623169C008667C9F58E41F40D3E3639DD9C + 5228421080618505D17E7F08930E17BA1E8D08460802D08C30C0A3DFC761B1CD + 7811BF0E775332245765CAC725038E57B6725F66CAE1A459E45F6C0B38FC4C9A + 1C56C70CC66CD33CE24F879320461E4C51545C556EB25F4440C0316D33772E4B + 81E927ACA00482570016EB53C484DD09D3C3A187659FC4BF210970B4FC365776 + 2411948B4141754BC0E125E90AFC66B6A1E3C1106C532EDFF9518B15E7B395D2 + 1E44D9650DDC85A349B0CF308212F094E77EFDC362E7312CF9F934F50CA2FCD8 + CE7F06BC9F7A62D19DB63E320E159FBE05EBB41B45D54D82119E2A3E9400CA49 + A3B4B61D8F7F695DF4FDCD9AB3B2458084F8B8058BEE9B1954E4246372CA2D6A + F8FC2AD23720E2D5A005E78CCDADC2003F8FD2D09E780F13140D7555A3B80432 + 92F8AED2D763C36B2BA50106865DD0E5EEC23825FDEF58556940D4EBC1E20159 + 7BDF465AC90DE8F23E8485BC0F68F40651833599EFF05DADFD11170B3E82AEB6 + 4E7C02FF573DBB80F2D282650164E7952C0D5896E9B3B524409D9B019665C9C1 + F11DAB9E073D6D45444438FAFBEF212A6A037AFBFA111DBD0926530F6262B6A0 + B3F3276CDFBE0D6D6D77102BDF816612AF42214763A311CAA404180C0DBEFD18 + 7E6F16C6F66EFF0086617D8B653CC0E6050CDC4350C81AB86C160485AE85CB6E + C173A1EBE0B29A1114F6329C93A35811F60AE923E4F37AD287A154CE01D87907 + 07E31D3F80A29C74F2FC9E4D8061F804DC04101E198E0192C0C6A88DE8EDED43 + F4E6687499BAB135662B49E0EEC2048C2D50C42B70BBB10989CA44D4D5D5F3FB + 3164BFB9249A3B7AFC01D29E2EF6BC87AD0CF5261019E1056C22809E3940D72C + 805C8237B7A19D0076C4FE0D904400867ADF7E7C0224E196CEDEA50185C7D316 + 5C2B6F025670ABC2F80E4F9F9A0417FC02E913C0EA174153E45D63F51AB8F9BE + 16B4630CB29075A0ED6620E425BECF8F9F6119B476F6F9007F01975B823FD9CE + 0FED0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_11_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004154944415478DA + CDD6FD4F1B751C07F077055CA26C460D6EFA3738CAC031D1A07414281A349B31 + 48B639743C885BA66344E4A11DA0DB82C90C6C407950C394395914CD8081B4B4 + ACB84279103332177E5436B014465BFAC8F5EEFCF6CABA1168BD9E4AF6499A6F + D2FBF6FB79DDFBEEBE571182D4BB9FB6B3CA8FDF84698982D052D4FF84AFCA33 + 45818E8B82FD38BBEA22DB589289392B85CAA6CB21353E91FFDA0AA003AD8A2C + 618083156DACB2348B0308AD1375DFE37CC57E6180038AAF5965D93E0EF049E3 + 8F213596BFB7C707387709DF54BD2D0CB0AFAC9555961F80D1BA2C38818AB3ED + B870325B1820ABE44B56293F4800144E2A7F08A97159C11B3E40EDB7B878FA90 + 30C05BC52D6C83229B0308ADCA9A0BF8AE3A571820F3A366B65EFE0EE6FEC563 + 5859D386F6CFF284030477BEAF040336A21E6C40619336D44BF08BCB83F486C3 + 12DB7F06389397049607C33BE5926E0AA3537FE95D1E368D2F82178066F80531 + 707D1A8B4B6E0CDD9CE18DE005A0687E809B7FCEC36471FA10BFDF1EB68990D1 + 9C2F99170C38D6A8613FCF97C0453128F9421BB4F9E91C09CC4B4ECC591C1CE2 + CE928B206626ED36DBEEE6A28C8088A0800F1AD46C4D41321CCB0CAF04368503 + 26F33DC482D505FD8DE91BB5EF4B9F1504385AF7335B7B381536378DD296FEA0 + CD4FE526E30FA305BAC96958EC6EFFF7B32633CE1E49FBE78D686FF6F13517FA + 991D529C3B2A83D549F34AC05BDEFBF596C9CA6118F2F8F419A63033A15E33AF + A3F58C680D2045BA7BD5A4491350FFE12B303B3C286FE9E38DF056D5A114D85C + 14AADB06B03D6AF531955AC30F70DD48A3BE30038B764F48CDEFAFF2A61E446F + 0D1306F86D9642C3F1D7B160A3A068EE0D2D813C1937CA9BAE20E6E988D00105 + FB5F456E750794457B306F13FE3A963776A1A5782F946DDDA127F07FD5830BA8 + AB2EDD10C091E253EB0336A4FB4AAD0B5014E5816118F261B951B4693396ED8B + 10476FC7D8F804C2239F80CB6242D8A34FC26536226273149C8BB308DFF2149C + 0B3388786C1B9C776E73A363FE16D2D35371B9F38A7F3D9A5B9B816A60383080 + A619FF642F80B29B2116FB0071B1313018C6101FFF1CF443062424EC824E770D + 89892F42A3BD0A89E465A854FD90927BA9A75705992C059D9D3D2B27C5F84F4E + 753500A0BC30976C9F2B09D064FB25000F01448BA3313EFE2B1E7AE471B8ADBE + 04DC96395F121623C222A3E0E292D80A1749207CCB366E4C93A5A2ABCB97004D + D6BB9B845A670804C8B937D9FB372822129483241043006313888DDB41121825 + 09EC845E3F8484179EF727A02509247913E82309A424A3B7A70FA904D04D0077 + D7E3122009F70F8EAC0F283B96B3EA5AE1E148781CDE04C45C02B171B118191E + C1CE5DF1D05FD3134002010C22F1A544683503049044006A029012402FD2D265 + E8EAEC5E153FCDD0D00C8EFA017F0350677C3FFAFD71310000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Delete_12_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004294944415478DA + CDD6FF53D3751C07F0E7F8925D1A59A4D95DFF4109182805416CB0392CCABE78 + C4A949092CB2AB448BF83681128F3A3B48610CACA3C20C2B5381C16D6C7C5F03 + 66DEC991C78F05A23060638CB1313E9F4F9F7D86D31D6C7DF6A9389F77BBF7DD + F6BEF7EBF1797EF6D98D071FC928FB8992E5BE0EC39C03C5F266F89362C98BCC + 2AADBE8433F97B78DEF6F17C1DF2F6678D94EC933D0C806BA45517F14D612A37 + 407AE939AA262F159366074AE497FD1A7C4CF2D232E002EAA569DC00078A1B28 + 597E1A03E09A63A77FC6B7C5FBB801F64BBFA364057B19C0A735BFFA35B8E89D + 575C8053E7F17DE99BDC007B0BEA2959E17E4C9817393750FC5523CE1E4FE706 + 48CBFB9A92151DA0010E1C97FDE2D7E082ECD75C80CA1F70EEC4416E803772EB + A86A693A03E09A928AB3F8B13C931B20F5E35AAAAAE82D4CFE8BC7B0A4A2018D + 9F677107709E7C573803D622F7362047DEE1EF2DE8B52D21B9FA10DFF29F014E + 66258062C1706E39DF3D82C1915B5ADB12B5932D82158020D915D1796D14C639 + 3B7EBB3ECE1AC10AE020D801AEFF3505C3EC820BF1C70D9D8587945A097F8A33 + E0708D86FA52C287CD4122EF4C87CFE12732F830CD2D6072D6CA2066E66C3462 + 7C68DE6211D41E4DF18AF009F8A0BA9DAAC84E84759164D5C0BA20C060BA8398 + 36DBA01D1E1DAE7C37E9A97F04BC9A7E6445CF4F4489507948048B9D407E9DDA + E7F0B2CC44FC39318BEEA151CCCEDBDDEFDF349830A657AED87FA1FE246F0540 + 9824F0D8343C1D8053EF8B615E205835E08CF3FB3A66303318927E7C94FD2378 + 32D4B34155BB861D60C800547DB80B26EB120AEB946CE6BB537A50088BCD81F2 + 864E6CDDE4F9196BC0B5090255392930CE2FF935FCEE14CA5B11F658A0FF80EC + 7D2F40F2C545541F7919D31607A4B56DFE35902566D622B902F28F7643D6D0E2 + 7F03FF57EE5DC0E9F2FC3501BC975BB63A604DA62F675580F468164892A45F14 + B3F2EE0FC1A2650611E15B31A8BF8AA8C86DD00DE811BD230ABD7D3AC4C644A3 + ABBB0FF1F1B150ABBB20103C0FA54A03915080168512BB9245B8D4A4709F4730 + 67935075EABC030882746F0E60004617E0CA5504AD7F0436D324821E0C65D6C0 + 0D8FC266BC85E090CDB0CE8C23F8A12D58981E43F0C6C7619D1A73012E2B962F + 8A745F9CAACB0BA0302793FEF55A6E8020C05B1702C7BC11611161B8A2FF1D91 + CE06FA07E906B6A34FAB434CCC337403BD888F7B0E6A4D27DD400294CA760885 + 89686D55422C16A1A9D9D500419F77BB89F6EE7E6F808C3B9B9DFF42EEDB4003 + 4C888808879E06043CF030EC660302D787C23E3BE16AC0E45C37C16EBA4937B3 + 190B741341215B609BB90131DD40137D0B6E9FC7344037ACEE19581D507038C3 + E35E39014B5613C2970191914FA35F3780EDD13BA0EDD32226F6597475F5202E + 3E0E1D740309FC04A8E8069244496853B46167B218CD4D2D1EF51324014DCFA0 + 1BF03765467F3F721FA5D80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_13_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004154944415478DA + CDD4FB4F5B651807F06FB96C5E866C41A699F10F3066D265227398318A030AB2 + 64D385916D0E1D17C98C718C8840E90A3A164C30CC0DCA651A54E6C6549C1DC3 + 70EB5A2ED2096A2251C28F13C680527ABFD19E737C7BCACA1A28393D2AD9939C + 3C49CFDBF7F99CEFB908B046E556B733F2A20398B7B8C0B7CA1B3AD05C7C5010 + E8BC60AD3FE7547DCBC88BDF80D6EC82ACB123A8C1B2FCD7D82EADFF11974A0F + F103BCFD711B23FFF0100BE05BD2BAEBF84292C90F905D79856928C9C49CC985 + 8A46455083CFE4EF5F02B4A3459AC50F705CD6CAC84BB35800DF3A73F13B7C29 + 3BCA0F704CFA15232F3BC2023E6AF821A8C1E5EF1CF0022E5CC3D7956FF2031C + 296B61E4926398352DF24E40F6591B2E9FCDE607C82AF99C91971F270017CECA + BF0F6A7059C1EB5EC0F96F70E5DC097E80C3C5CD4CBD349B05F0AD8ADACBB85A + 9DCB0F90F941135357FE16E6FEC56B5851DB8AB64FF2F803784F7EA07803D6A3 + 1E6E4061E3AD606FC1A0C30D71FDC944CB7F06A8C9DB0B8603C3B3E45AFF0446 + 26667E76B89914AE084E008AE61684EA8F49E8CD4E0C8F4F73467002B8286E80 + F1BFE7A135DABD88BFEE6A2C026434E527CEF3069C6A50329FE627C2E1A25172 + E9D69AC3CFE524C260B663CE6863110B6607414C8F592D165153514640840F70 + 30FBF48ACB7CF625316A0B92605BA43925B0310CD01A96113A9303EAD171CC8C + 0DAC58DBDE52235801D8F7AAC83F524318CE9F4C86C549A1B4B96FCDE155B949 + B8336B44FFD8248C56A7EFF77B5A039EDBECF65BDBD3ABE406F85317820BEFA5 + C264A73825E029CFF33AA535B1189ABC3EDDB727F07C947F829C01635AA0EEFD + 34186C6E489ABB39233C5579621F2C0E17AA5B55D81EED7F8E13A0E0683A0A6A + 14A82BCC80DEEAE6387665491A7F82FCF47EC85B6F069FC0FF550F2FE06275E9 + BA00DE2DAE5A1DB02ED3976A5580B4280F344D9383617BC8A391709A7510C66C + C7C8E8EF088F781276C32CC23691AE9FC186C8ADB0E9A6111EF9346CF353D8B0 + 651BE993A43F03EBDC1DA4A725E3BAA2D3B71FC5EE4DA347A5090CA028DAB738 + F49127E0B4E821147A01B13B77605833825DBB623138A441FCEE38A8D4434848 + 88476F9F1A49A2047475F7212539091D9DDD4817DF07D00F1C0C7AD4010092C2 + 5CF2F1584A80A2202000170B7881007E23571EE54BC0E1E911D124897BA46F85 + 7D619A244292D04D217CF336D84912E2B414281437D9FD28B2DFFD247AFB6F07 + 02E42C2F265F31C1C6082CB280188C12C0CE1777404312888B8BC5D0D03076C7 + BF0CB57A107BF6BC02A5520591682FBABA7A914C12E824098849028A1B9DBEFD + D80448C27D03BFAC0E283B95E377AF3C0097558F18A190007E45C8635BB068D4 + 22E4F128388DB308DD144D92F026E0204984463C05C7C25DF699B0932452D352 + 71834D60397E8AA6A01C18F101FE01B0427B3F67DFF7D30000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Delete_14_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004104944415478DA + CDD46B4C5B651C06F0A78C0E4D18DB9C9A193F183F1AA38241C71CCA7580142F + DB5C906C73E8808A33C65D14B9B42BE858D04C991B3D14A641654EA63298EBC2 + ADA394060A652ED138C6470171D09695B6D0427BCEF1ED2974102E393D2AD993 + 9CBC49F3E6FDFFF29CBE47841522FDAC81551E790516871BF2AA260492929C14 + 6E95A9AE40F5C1ABA2E5F689563A24BBAC9EA58EEE8099008446567919D5793B + 8501B24A7F64A9BCD760B2BBA1505D0E68B0429AC6AD726523CE16EC160678EB + 933A96FA683707101A794503BE2E4A1706C82C39CF56E6A763CCE646B1EA5240 + 838F495F9E05D4A3469E210CB05F51CB5205191C40688E9DF909DF28F60A03EC + 937FCB52857B38C0C79517031A2C7B7B870F70FA02BE2B794318604F610D4B15 + EDC3A86D4670038A2FEB70EE78A6304046FE572C25DB4F006E1CA77E0E687061 + EE2E1FE0D4F7387FE28030C0EB79D5AC529EC90184A6B8FC1C7E28CB160648FF + B08AAD90BD89B17F710D8BCB6B51F7698E7080E0C9F32218B01AB9BB018755ED + 81BE02BDCB83179507E31CFF19E0644E2C581E0CEF960BBA0118076E75B93C6C + 325F042F00CDF02B42FBDB106EDBA7D1DD3FC21BC10BE0A6F901FA07CD304D38 + 7D881B7F191C22BC54258D33F302ECCC3CB268CA2351127C2E8D83CBCD20FF6C + FB8AC34F64C5C16A77626C628A438CDB5DE8E8BB89D11B06309EC59FF2FA9A93 + A24580ED89F10B36DDB485A03C370153330CAF0642820193F50EC26273E15AFF + 201E0D5D08686DBBCA0FD06F0DC6A98349704CD328A8D6AC38BC343B017F8E4E + 40F7FB102626A7FDBFFF6DB2E2B10D1E61803F2C4138FD5E0A6C4E9A5703DE78 + FFAFC3261B8761C8F569E919C0E39B1636C80B90BB578277BE50A3E2FD5458A7 + 3C28AA6EE18DF0A6E4C076385C6E94D56AA13C240155AB0EBC81FF2B772FE04C + 59C1AA00DECD2B5D1AB02AD367B324407E34070CC39087E5D6A07BD763DA6E41 + 44F813E8355EC7339111E8EEE9C3D62D91D0E90D783E3A0AED5A3D6263A249AD + 5A2426C6A2A9598394A478FCA26E419A2409171BAFF8CFA3B9B319B46A0DCB03 + 689AF16F5EC301C67D80BEEB10876E82F3F628C4610F90F51682C31E84D33282 + B51B3663D23C4CD68730651EC2DA8D0F63D23488B4D4390033EF61D1DAB10CA0 + E87036B9BBB30DD034D7C00C0184473C09A3F157D2C0D3E832F4626BD4B3E8D4 + 77237A1B69A0635E0309DE06DA909C9C08B5BA1992D464345C5273E7D1E4BCB9 + 26DA743DCB01B2EE6C261F91A07BC27C0D443CC501D684DE0797750CE275F7FB + 1A58E76B42EC6D627C04E2F59B4903A4898DA409D3305209A09100E6CEE31A20 + 0D6B3A7B9706141ECA5AF0AE442161704F9206C2C361ECBB8648D280A1BB175B + 48037A7D17B6453F07AD5687989817A0D1B4233E3E16CDFE069A08208503CCAF + 9F66685CED34FA01FF00E8CD7D3F674361DC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_15_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000040B4944415478DA + CDD47D4C1B751CC7F14F47479D3A864F0BD1FDA17FFA87731059AC9909081B10 + D874D305C93687CA83648B4698220FED0A3A16341870C0D1B11954E6646AC748 + 19131854206CB419266AD2E15F8E215B5B1E4A5BFA407B77FEEE5A3A9B01B99E + 4AF64D9A4BE07ADFD7BDDBAB042B4C414D07DB50B813B3F33E889D727517A8A2 + 5D92E5FE2F59E9CDF99FB5B38D452F63DAE185F2E4A5B01657E6A5F24785FA22 + D41FBC220E905BAD61A923BB3145006247D1A44573F11E71809CAAEF59AAF835 + 58EC5EA8D4DAB016ABF233F8A3B2F1024E95EE150778EB933696FA682F0F103B + CA86767C599E290E905D79966D2AC984D9E64585BA23ACC547F37705001AB428 + B3C4010EAA5A59AA348B07889DA3F53FE02BD57E718003CAAF59AA6C1F0FF8B8 + E97C588B15EFECF6034E9CC337956F8803EC2B6B61A9F20330D9164417507DD1 + 8633C7B2C501B24A4EB394E2200178718CFA31ACC56505AFFA0175DFE2ECF1B7 + C5015E2F6E661B95D93C40EC54D49EC177D5B9E200991F9E641B146FC2FC2F1E + C38ADA56B47D9A271E207AF33F46346035E6DE0614AAFBC3FD0886DC3EA4351E + 4A74FC67809ABC04B00218DC29E706C66018BB3DECF6B1294211820034232C84 + EED79B98B57B70C53829181104ECC92EBA6BCB93F20C70002F2D0C601C9F8265 + CEC5237486DF61321AC0F896FE15D5B4D448EE026C4F7E29E4A43F1CEBF0797E + 22DC5E0625A7FA575C7E3C271156BB0BE639278F98B1BB317A7D029BD6791021 + 09BD819EDE3E6180EB36196A0B92E05C6004159049018BF50E62DAE6C635E338 + 9E7A30B4826080D12A45DDA11D70786894365F5E7179556E126E98E630F0DB4D + CCCD7B827FBF65B1E2E9685FF88082FDE9385CD78513EFA6C2E6A20515E086FB + BE4E586C3C86218F4FF7C818EADF4B03D5DA197E81FF6BEE5D407D75E9AA000E + 17572D0D5895ED815912A03C92078661C88BE58F11F747C36D9B42DC96CD1831 + 8C2232EA3138676F636DD44638A727218B8EC1FCD404640F3D0E87791CB2879F + C0BC853B6E82C3F42776A6A74073A133783D9ABF36831EDDD5E50134CD044F96 + F28069C4C53E4300BF60EB73B118BE62805C1E8FC1A1AB7871DBF3E8EB1F4262 + C23674F7EAB03D39015D977A919692848ECE6E02D8014DFBC5C04D31C19BEBF9 + 79194079612E79740205681A6B08608100626337434F0A48D73F0A175760FD46 + 72BCE52F313389B51B62E00C94E00A4492024EF30D649002E703056872BDC512 + BD0323CB0172EE9C4C9EE135F76D80C74E0AC43D0BBD7E14F1F171A4801E2FC8 + B7626070981490A34FE72FD0430A2427F90BA4A62643ABFD09E904D04E008BD7 + E30B90C29707F54B03CADECF09F9AC38C082832BB08514B806E9038FC06D3521 + 8294702F7E17B802513170CDFC152C11494A384989F4F43402D086E4A7191A7D + 838620E06F580D753FAF86FF890000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_16_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000041D4944415478DA + CDD6FB57D3751CC7F1D70EC8C4326FC72E66E7D43FD065963A0E120813914969 + 7988A3262597484F27C122609B83120F752834D89858870A332C118D8B38E6E6 + A6C8D891CEA9CE41ED97044B6120ECCAE6F87EBF7DF8B24D3830CEF6AD38BECF + D9F99EB3F3E1F37E9CE7E00C1E669977BF6866AADEDF8411E7182435E711CA94 + EC16C1EEF2A0AC4E07C5BE645EA073BCD92EC9293FCB54E56EC6B0632CA4E593 + 47A26A85322F851B20FBB3464691F70A86EC1EC88E9E0BAD40D646F62955B540 + F5C1ABDC0099650D8C72FF160C1200D7915637A1267F2B374046E98F8C32FF75 + 986D1EC8554D212D96678BD9A74C7106C70AB77103BCFD493DA3FC681B0BE03A + B2AA467C2D49E506482F39C15417A462C0EA41B1EA6C488B0F64A778010DA895 + A57103EC92D731CAC23416C0750E54FE846FE43BB80176CABE659445DB59C0C7 + D5A7435A2C7D67CB04E0CB93F8AEE44D6E80ED45B58C52B213FDD67B9C0BC88F + D4E3F8C1746E80B482AF18A5741701787050792AA4C54539AF4D000E7F8F1387 + 767303BC915FC32864E92C80EB14571CC70F6599DC00A91F1E65AAA46F61E05F + FC191657D4A1FED32CEE00CE9B270D67C05CCC830DC8556943FD082EB9C690A4 + D81367FFCF00E559B16082608C1F39A9BF0ED3F53B1DAE31263158841FB0353D + 6FDA9AA785628C03283AB810BA5FFB306C7343D7F53BEEF418C15081FF9169A8 + 2DE74D038812D64F39F48763010BF050C1017A7A0761B68CB2885F6EF46105DF + 8D30DEF49F55B75F080E70C31E89CFB3E3E0F2D02838A69D75F9A18C388CD846 + 316071B288BB3617BAAFDDC2CAC8E988A001D7AC7C54E4C4C3798F0EAA003F1C + 308FDC470C595DB8DAD38B671E9EFA5D121420674732DEAB6CC3E13D1B607753 + 28ACD1CCBABC34331E37FB2DD0FFD6078BC3ED7FFFB6790447F6264259D71C7A + 81FF6B1E5C406559E19C00F6E697CE0C9893EDDE991120DB9F059AA6C98B619F + 610F2D81CB6286E0856761ECEAC69A9704B8DC6942D4DA1771D1D08997A3D742 + A3BB84F5B1D16853EBB041148B96731A6C4A8CC799A636A4881371AAB1D97F1F + C5DE4D43ADEB0C0CA028DA7F387C01015807B18A003A4DDD8858B81CCEBBB711 + B1E851EFF3313806FF027FC913B09BFB307FE993B00FDCC4FC654FC1D6FF2752 + 927D007AD28B81FA62008024371334E32D4051082300370108041305568F17B8 + D28528E16AE80D5710132D24050CA4C03A52404B0AC4A1A5558DA48D09F89914 + D84C0A34780B50E43E5F8976BD311020E3FE61F20D1416B978A280E0391610BE + 70194687FB31EF91E5182505E69102CEA1BF4989C7C9F3162216AF80C3DC0BFE + D2957090123E80EF3EB60029AC3174CD0C28DA9731E5B30A8B5C04B76D88FC0E + 3C0FA3E92A29B00A1D1D4608856B4881CB885917058D564F0AC4E07CBB16A204 + 5F011129D00AB13809A71B9BA6E4A7680A170C263FE01FC0556C3FF6C56A8F00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_17_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004194944415478DA + CDD7FB5354651807F0EF26086A63A06689D4F41764419A993A6E4282DCD27288 + 519372812827132C0276D70553871A0A13F6B0620DD59A6172097745DC552ECB + 382C26CDF443A6CD3409A4B2BB5CF6BEB89C737A39C00AC365F69C26C667E6CC + B33FBCE77D3EF37DCFCEEE116196DA77BC813DF1410C6C6E1AFE16C3023D661B + 6EF75AC96716978C3751BA3F5634D37AD16C9BBDF7A5962DFB702B065DC39056 + 5CF21B3152857BA3E1F07851A46E86F2409C304066713D5B96958001E730AFE1 + 134BAA6A00959D280C90F1791DABCC4E429FC30BF9C98BFC12488FE1BA4C7501 + AA8F5E1306482BAA61A983DB602100A1252BD7A02267BB3080E4E84F2C95F306 + CC762F142A0DAFC18A8C78AECB953FE354DE0E6180773EAD62A94F767000A125 + 2FABC337D2646180D4C2336C796E324C362F0A54F5BC061FCA481C03D4A0529E + 220CB047A166A9BC140E20B40E959EC3B78A5DC200BBE5DFB154FE4E0E70B8BC + 96D760D9BBDB460127CEE2FBC2B7840176E657B29474377A6DF70527A0F8AA0A + A78FA40A03A4E47ECD52B23D04E0C511AA9AD7E0FCCCD74701C77FC099637B85 + 01DECCA96095F2540E20B40A4A4EE3C7A2346180E48F4FB265B2B761FA0F5FC3 + 821235AA3E4B170E103C79420906CC453DDC802C5513DF2368F30C2356F9BED8 + C11BB03D357BCAB0675E8A4771FA26B07E3046969C6DBD89B65F7EC7BD1B46B0 + F4ECFF216A2A8B455300D151AF4C5AF4A7732107A019FF8268FEAD1B03F621FC + 7AAB1B2B8387F008A6BF4FA7BFC20FE0A5FD03DCE8B2C06C75FB106141439827 + 9A7AAFDF805B8E05F822430C8F9741EEA9A659871F9388316877C3647571887E + BB079D7FF4207CC154845F80CC5D71D8AFD4A32473335CF719BF12080A00CC83 + 0F107D360FCEEB0D501F9680526BF927F07FD5C30B282DCA9B13C0BE9CA3D303 + E664FA584D0B901F4C07C330E462B91EF0E812B8074D887CFE59B4777462FE63 + CBE1EABF4BFA13705AFE4170E80A38CCDD085EB212F6DEDB085EF6141CBD7F93 + FE34EC77FF4252C2169CABD5FAF6A3B9BD19E89ADB6706D034E35B1CB88800AC + E651C0B54EAC5D1D81B6AB1D7879DD6AB418DAB171FD5A5C6E6AC366F17A5CD4 + 35634BF426681BF4888B89429DA61149F1E30066C2C542D73203409A95465E28 + C712A069042C0A85C76A4144C42A183BAE2370F1E3BE045C7D77487F12CEBE1E + 0485849124BA4812E1709848024B4793488C8F41759D86DB8F26FB8D27A16F35 + CE04903C584C7E00E62D0CE1002F44AE42BBB1132FAE194F600D5A5AAF62E386 + 752401034960031A754D78355A0CED051DB6C646A1FE7C2312C911549304C6F7 + E31220095F36744C0FC83F209974562380219B059111CF9167E03A792696C133 + 700F018B97C3DD7F078124011749607EC80AB82CA48786C169EA42D0D2703849 + 020909B1A8A9D54C8A9F66685C315CF301FE05636E673F2850B6810000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_18_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004134944415478DA + CDD7FF53D3751C07F0E70A03ADAB50FB629E577F417550D442A529131004B13C + E2D4A4E44B1467211601DB1C9478D461A2C098584785195F1A08C3219B63300D + 86A7DDE50F9ED55546A63044D817D89A9FCFBB0F9FE19483ADEDDDC5F9BADBBD + EF76EFF7EBF5F83CF7D9761F017CD4CECA93A4E29D75B0391914D69EF2B515A5 + 196B7179681CBD1706316E777ADEBF6A1EC3C19C1881B773025F4D732A34E4D0 + CE58582619F85B2C01FE345B780C4B08BA4C9750F96E1C1DE0EDCF3A48D57BEB + 3136711392DA2EBF115355B2430C9BC385B27A03AA73E3E900D9E56DA46AD706 + DCB0DF0C68F89D25516AA0C84BA403647DDA4AAAF39270DDE682EC7067600964 + C6F2AB547902CAF737D20132CA5444B13B19231C80B6A4356AD4E66FA203A497 + 361145FEAB305B5D902BD5010D966725F0ABACFA388E146EA603BCF97103517C + B89907D096ACAA155F4852E8006925C7484D410A862D2E142BDB021ABC272B71 + 1AA0429D2C950EB05D5E4F1485A93C80B6F65436E34BF9563AC036D9574451B4 + 85077C54D312D060E95BC96EC0A1467C5DF23A1D604B511D5148B661C8F23775 + 02F2830D38BA378D0E905AF0395148B7730017F62ABE0B687051F62B6E40C537 + 38B66F071DE0B5FC5A522D4BE301B4557CE028BE2DCBA003A47C70985449DFC0 + F07FF81A161FA847C32799F400EAC9771435603EEAEE016C4ACB9B15F753C284 + 809A39ACA318BA3800C2FCFBDFB7AAAE5C300B208E5E3363D3CFF64528CF7C19 + C48F3B616A4B63EF255CF8E50A968738710FBC1FD2EAF4810118D6BF7BD1F0E3 + 206E589DF8E1A7419F8880012EC63FC0C53F46601E9FF4209E0876E25EC1ECB3 + 7E01B2B7C623B7468FFD5922385C2C0A8E74FB1CBE2F5D8431EB2486C72778C4 + A8D58176ED6934EDCF85C36E81A2BE23F004FEAFBA7B01956585F302C8C92F9D + 1B302FD3A76B4E806C77265896E55E845F831E588CC9B1613C17F634FA4CE721 + 8C0883B1EF2C560A9F47776F1F44AB85D0EA8D8816AD82A6AB1B71EB4468D7E8 + 9010B7162D6D27919C1883465587A71FC3F766A135F47B07300CEBD9BC800798 + DD8081F3087EE851D847FE42F0C38FC37EFD0AB72E83CD3C889025CB611DBA8C + 854B5670EB6F58B8F44958AEFD8A8D0931686AE998BE28D67371DA1E2F00C9AE + 0CEE796E3A0186E113707080F0B067D03F700E2F4684C3F8BD092B5F8A80814B + 206A9510BAEEDB09C47209A84F68B904C4686DEF44D2865834B7A8F97E0CD7EF + 5612BA5E933740FAEDCDDCEF6FD0FDA1EE04C29F45BFE91C163CF8082646AF72 + 493CC62770DF5412235C12A1CB609F4A62B13B8990A52B60BBF6BB0770AB1F9F + 0097F029E3C0DC80A2DCF4199F55D0A250382C6E409FC99DC0E933264446BE00 + 43CF1944AD8E844EDF83E83551E8ECD22346EC4E207EBD18C7DB34484A8C43B3 + 4A3D237E8665A0379EF500FE01CD04693F3E0EEE7A0000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Delete_19_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004154944415478DA + CDD78D53D3751C07F037853CD823989552D91FE0F5206165A7E703284E994879 + C4A949C94318A7091639B63928E9A8E302651B93F2A8304373E07894F1E438B1 + D9D35D9ED7599EA583A33138D8D806387FBF6FDFFD864B2E58DBB7E2FADCEDBE + 77DB779FCFEBFBFEEDB7DB82E0A3F6A8DA4869D61A386FF0F0A7428301CBC818 + 06AC4E58AC6318B28DA3E792E952D9AED8C533BD27C857C3DDE56748D91B6B61 + 9FE020A96CF739BC287D0DAE99AD305C34C1EA98F03EDF6F19C1A1EC7533CEF1 + 09C82E6B268777C7C336C6F99580BB7802F45A6C02862704ADC6CB28DFB39E0D + B0EBA346A27C538411E74D482B5BFD46B8AB70671CECE32E14577741B577031B + 20AB44479439091876DC0C68F8ED25D534439D2B6603647E584754B99B306477 + 417EA425B00432E28555A66982E6AD4436407AB196A8F76DC62005B096ACA201 + 9579496C80B4A293449DF7122CA32E28340D010D56646E1456B9EA343E966C61 + 03BCF65E0D51BFB34500B0965C5987A3D26436406AE17152B13F190336170A34 + BA80061FC8144F02B4A892A7B0017628AA895A92220058EB40F957F854B18D0D + B05DFE1951E76F1500EF56D4063458F6FA660FE0F0097C5EF80A1B606B7E1551 + 4BB7C36CBBC19C80E2500D8E1D4C6503A4ECFF84A8653B28C08583EA53010DCE + CF7AD10328FB02C7DFDFC9067839AF92A8E4A90280B50A4A8FE1CBE2743640F2 + DB478852F62A06FEC16D58505A8D9A0F32D801CC936F2B66C06C941790949AFB + AF9CD6DFD2569504FD051017BB7ACAA65F1C73036A1A7E278F856113B803BECF + A26FEBF01F5092B112C48F6CDC5B4E182EE3E2953E44FD0D226000C7FB7775BA + 7E34617874023FFC6CF289F00B90B56D0372349D02C0C5F907F8E9FAA0F06BD8 + 8DD036EA51AB9460DC6E155E535737069EC07F55FF5F4079B1645600D97945D3 + 036665FA644D0B90EFCB00CFF3F4418475CE3DF3E01C362366C913E8317E8FB0 + 8887611FEC43E8FD74B5F4227C5E1446CDD710FEC0A3B0F5FF8AB90F2EA2EB55 + BA3E0E6BDF1588D6C7E2747D8BB71F27F4E6A1EFFA7A6600C7F1DECD21026000 + 31D11EC0B2A54B60387701CB5F588A4EC379AC5AF13C5ADBBB11B77A399A5A3B + 215ABB0ABA263D1244B1D0EACE2049BC0E35A71A270FC57B0FA73F3B03409A93 + 4EFF4E4D26C07142026314F04CF493386FFC0E21F73D04C7903B8105700CF622 + 3462214DE23AC2226F25F118467FBF8AF0F98B304A93484C88C7C9DA06A11F47 + FBDD4AA2CD609C0990F6E766FAF5177C77A40088897E4A003CF76C34BACF193D + 099CEDC1CA15CBA0EFF024D04C1388A709D4D3FB7FA3280E75BA16248A2940DB + E0ED272440136EEFBE303D207F6FDA946B157C5724C6ADEE049EA6806F1172EF + 7C3887FA318726E1742711B1802660A29F8D282189D0C8476037FFE64D22512C + A280FA29F1733C878EEE6FBC803F00CB4C633F30C2E1740000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Delete_20_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000043B4944415478DA + CDD7FB5394551C06F0870AB94C37F35261B73FA0A91484C46063B9086E60500E + 316A52720963342E46C0B202250E351428B02C5843851914080408CB729715B4 + FA21C6669CAE86A2B022EC8D05D7F73D1D5E70D509B6DD53313D333B6766F7EC + F97EDEE7DDDD99758095249575920FE3FD306DE6917EA4CBDA561C8CF1C3A4DE + 8431ED14345A13AEEAA771EAC79121A3C1202E4F0DBDB2D8FB1CAC1DBAB75445 + 0A13FC31758D872D71BA0BD04CDE448CEBA6A13E3B7CB66877C0934C803DC56D + A4E8CD20186638645474581D9E17EB8FF3A35AF40E0D436B9CB13C7F49338943 + 899B169D6315905874821CDE130C9D89B3A981D9F004B8A0D109189E102807CF + A1786F081B60F747CDA4E4ADCD989CBA0E6985D266C46C727705C2306D467E55 + 374A93246C8084824652921C8A09E375BB86DF1AA9E204E429616C80F80FEA49 + 69CA168C1BCC9095B7DAD7405CB0B066295AA0D8F7221B2036BF8EC853C37185 + 02589355D6848AB40836404CDE57449EF632347A33B2154D760DCE8E7F415865 + A50D3892B1950DF0FA7BD544FECE5601C01A59493D3E9146B201A2738F91B2F4 + 488CE9CCC85134DA35787F7CD83CA00E95B22836C0CEEC2A22CF881200ACD95F + FC353ECDDECE06D821FB8CC833B7098077CB8EDB3538EB8DF039C0E11A7C9EFB + 2A1B605B6625914B776054778DB981EC43D5387A209A0D1095FE319167EDA400 + 330EC86BED1A9C99F0D21CA0E80B1C3BB88B0DF04A5A052995450B00D6E4141E + C597F9B16C80C8B7CB4949D66B18FB075FC39CC22A54BF1FC70E609E7C4B6C02 + 4444A7FC2BC36C4D5D6581C35F008101E22519DEAEEAB40DF093D1D5AE835DEE + E4E1E63C833B60BD4CBB000571CF83D8707366B7D4F49EC3D0CF17B1E66F1036 + 0112B64B90ACE812001C6FDBC7A3FB87614CE86750DBA4446DD13E98674C96D7 + E455CDF637F05FE5FF0B28CECF581240625ADEC28025993E9F0501B2D438F03C + 4F1F44581DEF5D89A9AB97E1B9EE29F40F7E0F6FAF75E8559F81AFF77A74F49C + 8258B401CA8E3E04897DD0DCD605C9263F34B4A82012F940A5EAC25ACF67715A + 7DD2721E279CCDA3BD7B607100C7F196CDCBEEA180895178BACF019CEF7F1006 + CD45383FF0305D2FD0D50DFAD13FE0B2F211E82EFF0ED7558F4177E957B8AE7E + 02DA915F200909407D63EBFC45F1968B6BEF5904204D8EA5FF66E61BE0383852 + 808902D67B3C0DF5C077B40177F4F40FC277A3173A7BD4B4016FB475F4D2067C + 69039DB401311A9A95089304A2AEA1151161C1A8AE6B12CEE3E879379A50F50E + 2E0688B9B999FEFA38DEBD62AE018F6704C0B2FB56C3383E02A7E50FC1481B70 + 5AEE469B18A64DAC8161EC3C5C563C4A9BF80D2EAB1E879E36114E01351470E3 + 3CA101DA7047DFE98501994931B7DDAB5980699236E0BE16EAC16FB1C1CB037D + 2707E0F31C6DA0BB1F7EA28DF433D083207F115A680321416234D20642254138 + DED082F02D9B5153FBCD6DF5733C87CEBE3316C09FFD146E3F9D261FDF000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_21_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004514944415478DA + D5D70B5054551807F03F958038D5288A4AEF669A669A9EEA8069282C12C44312 + 73885193924718A3F130E2B12B50E2504381C22E0BD650618AB5B41288BC5F92 + 60653339E630598908B8BB20EC1370BDF774F62EAD32C0BA7B2BA7BE999D3373 + EFD9F3FDEEFFDE3B73AE03AC54A2B485E4C578C3C810D852E72F0D41A51EC388 + 7602A77EE9EFD23920A424D667C8DA7F1CAC9D4C286E261FC5FA60DCC822F560 + 8BD5E6FBA27C30AA1D83526DE01057B5E314317056AFD3094A924366455805EC + 123792FC385F18AEB13625E07417A01ABD8118D68CE3BB737DE70A76AC7B9217 + 6067611D2978EB45E82618A49536596D9E13ED8B5E851AED67FBA0D64F588E0F + AA46B13FDE7FD63E5601F105B5E4C0CE0068C6189B1230154B1F97CB2A0D8761 + 09417D770F0A77BDC40FB0E3E31A52F47620460DD791515A6F33C254D9DBFDA0 + 1B3722B7BC15E284207E80B8BC2A5294188211FD75BB9ADF5C19D25A4892D6F3 + 03C47E2827E2A4500CEB8C10959CB02F8198006E144A8F43BAFB657E80E8DC4A + 2249DE80210AE05BC2E26A94A684F10344E57C452429AF40A53522535A6D57E3 + CCD8606E14898FE160DA267E8037DEAF209277377100BE252A92E3D38C707E80 + C8ECC3A438351C4A8D1159D22ABB1AEF895D3F09A8449928821F605B663991A4 + 457000BEB5A7F06B7C96B9851F60ABE8732249DFCC01DE2BFEC6AEC6C2373798 + 01078EE28BECD7F80136A7971149C6562834D7782790B9BF0287F646F20344A4 + 7E4224C26D1460C45E89CCAEC6E9711BCD80822F7178DF767E8057534A895814 + C901F85656FE211CC98DE607087FA78414095F87F26FBC8659F9E5A8F820E6D6 + 80B0C8A469DB9E396E8FF36E7C7319953DD38E5596E5394C03F8AD13FC230D6F + 550D8DCDFF13C0AF7A17BB169E7B270B77E709DC01EB9B589B00715B824CBB62 + 9876C5C4864DB169CAD1F61E1C3BDE0859C16E1827C6A69C9794D7D89FC0BF55 + FF5D40616EDA6D01C4A7E4CC0CB82DDD276B46802839062CCBD21FE146C77B17 + 413F3C088FE54FA3B3EB0C9C172C854E75998EEED02A2EC165E1FDD05CB90897 + 450F413DF01BBCBC56A1A5B5034B1E7D027D3D3FC3FDB1A7D07BFE27CB7A0CB7 + 368B86D6AED9010CC35A263BDD430157AF9801DD67B0DA7319DA4E9EC6DA173C + D0D4760A82B5CFA3AEB103FEBE5EA8AE6B41B0BF0FE4350DF0F65E43EF730B96 + 79AC4477E7C9C98B622D17D7D0360B2023319A7E4C4C26C03070A4008309B0E2 + 199AC08F709ABFC492804ED90767D7FB6812BD98EBFA004DE20FCC733327316F + F12350F75F4050A01FE455B5DC7A0C5DEFAF241ADBBB670344DD984C5F7EC7BB + 5D69020A78AE789603AC5AB99C26D04D13F044536B2704DEAB6902ED348135A8 + A96B4690BF00F2EA7A8406FB41263F818DA1013822ABB6ACC72540136EEA383D + 33203D216ACABD9A430163230A9AC07314F0037D2616C330D40FC7F94BA157D1 + 0416D00494E604B48A8B705EF820B483BFC3C5ED6168062E202C341015B26FA7 + C4CFB00C9A3BBEB700FE045CDE733F197F976B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_22_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000044F4944415478DA + D5D77D4CD4751C07F0375B61D0CA5980337A586BAD3F649A89C004E18E0725F0 + 0C4D674C4D4A1E4299C643239E4EA0C4B14601C21D07D6D030B2080850088EE3 + 7890A7B21A4C1D9B9542107010DC713C79FC7EDFBEF7030F190FDEFD5A363FDB + EDBBFBDDEFBE9FD7EFFDFDDEF63D33AC5011B23A92162C00C3121853CA8E1E8C + 8C4DA3E5465FF3D40CD9213926D4DEEF3B66C600748C71801BDD4350A9276711 + D77B5BB56610E58608877803C27314E4D31021A6742C62CED6ADD8FC74A010A3 + 639318544F7088BFC7A628A2AF735CAB75CF8D122D8B581170422227E9A11E98 + B8C31A95C0AA4700D5E83C62583385E66B3DD7328E7ADAF1021CCFFA81641CDB + 0EED3483D8BCDA159BA70479E0F6801A0D9D3D508F4F1BAEFFA51A4566D88E65 + FBAC0808CBA824678E7B4333C9189580BEF4FBF54F9586C3B084A0BAAD0B5927 + 5EE70738FAD92592FDBE0F462766109F576D34425FC947BCA09DD221B5400949 + B82F3F40685A19C98E1061647CC6A4E6F756BCAC12D2C85DFC00219F941249E4 + 1B18D6EA20CEAD322D81606F6E4C905D86EC033F7E80A0D462228DDA8D210AE0 + 5B093915C88BDEC30F1098F22D9146EF856A4C87445985498D13437672A358F2 + 3DCEC6EEE30778F7E38B44FAE13E0EC0B7C4D9A5F8227E3F3F40407221C989D9 + 8F418D0E49B232931A9F0CD935072846BED89F1FE070620191C6FA7300BE7532 + AB08E7120FF2031C129F27D2B8031CE0A39C12931A27BCB77B1670E61B7C99FC + 363FC081B87C228D3F8401CD1DDE0924665EC4855301FC00FE319F1369C2610A + D0E194F43B931AC785BE390BC8F80A85A78FF003BC159D4724E2000EC0B792D2 + 2FE0EBD4A0FB03F604442E3A753C6AF30AB213DEC1E0BFF81926A5174037D8B5 + E87A717E9AD9228097A7FB829B941DBDBC1BDF5B820DB60BDED7C815C601FEAB + 7A3800A1077DF587529326EEBDD989E2CC68E8A627177D262DB8F49025F0BF00 + B252631F08202C3A6569C003E93E574B02C451C1605996BE08379AAFB6C1F870 + 1F1C376F4453EB55B8386D86F24A3BDC9C1D205736C353B01555F206787BBAA2 + BC52013F5F771495D5C0D5D519B5B5F5B07B6D0B7E696F31CCC77073B3A851B6 + 2E0F6018D670F363ABADA11DEE87A3FD060AF819166BD6616CB007164FDBD2B1 + 9B8ECF42D37F0B9636CF43DDF73B5CB76D85A2AE01EB5E5A8FEEAE0ED8BE6C87 + 5BD77F9D7B28D6F07035F5CB00E22382E8597E2E0186A109586382021CEC37E2 + 0A4DC0599F40531B042E8E5C021E7713F0A009542920F276474945358402376E + A36D7270427B7313371F43E7BB9B84BCA16D3940E0FCCDF44F85F993567409FA + E1B4E55534B55CC5AA356BA155F5C2E2A967E61318B80D4BABE768127FC0D2FA + 059AC46F787CED8B50F7DEC44E1F2F9494551AE6E312A009D736B62F0D880B0F + 5CB056E64F58616244BF049BE812FC4413B0477D632BDCB639415ED7040FA10B + AA6A94740F085051550B5F9A40697935FC44DB515472197BFD7C505854BE207E + 8665A068FCD100F80762807C3FFB63E9940000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_23_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004434944415478DA + D5D60D4C94751C07F02F5B1391ADB508DFB3DA6A6B2BB334845290E345303A0B + CB39A626252FA14CE3A511709C4089638D02857B38B0468539B52E4105BB3B8F + 13E42DB3369C214B2B3CDE0F947BE1F5789EA7FF3D47670C0E9E7B325BBFEDD9 + 7FFBEF7FFFDFE7F93EFF67F7B860964A94D7B07931FE6059CC59D625276BDB70 + B9ADA76174820D91ED1599E7FE15E0C20740333C04A4B42D3ADC318DA1B1B58B + 378217C042F303B4DEEA87DE306243FCD2D9647681B82456D42F189050AC613F + 891561D4C220F568CDACCD0F458930681A419F619843DC368D1244D7D521B339 + A02459EC10312B60BF4CCDE6C70562789CE19580EB03807EF02E62C0388A866B + BA6B057B829E1504D857F83D5BB07723CC6334D24A2FCCDA3C273A10EDBD06D4 + 5ED5C13034669FEFD60FE2707C88C33EB302E20BAAD923FB42611CA17925602D + EB79EDD01B390C435E1F65731B0AF76F1206D8F3E939B6E8BD5730383C0149A9 + 9237C25AD9BB83611EB520B75C0B59429830405C5E255B9428C69DA109A79AFF + BD24F26A50499B8501623F3ECDCA925EC380D90269C979E7128809E5C60C7915 + E4EFBF2E0C109DAB60A9E470F41380D0CA283E8BD2942DC2005139A7582AE54D + E84D1664CACF3AD53833F6556E94CA2A70346DAB30C03B1F9D60A90FB67200A1 + 252D3A8DCF25DB840122B38FB3C5A9DBD067B4204B5EE954E303B19B27010A94 + 49238401766596B3545A0407105A070ABFC117993B8401764ABF64A9F4ED1CE0 + C3E2EF9C6A9CF16EB80D70E424BECA7E4B18607B7A194B4976A2D7382E3881CC + C32770EC60A4304044EA672C95B18B002C38487DEB54E3F4B8376C8082AF71FC + D0EEB9015B2293A6FDE9CF5BF43464D2480E20B4B2F28F61BCF7FAB47945599E + CB34407050C09445DA964E1465BC8DBE7FF01A66E597C3FFB96553E6546A0D7F + C0BD28C1807FAB7801E27684DDD3A654F9B9FF5902FF09A03037EDBE00E25372 + 6606DC97EE933523409A1C038661C8C572A3EB430B61EEEF82CF8BAB50D77805 + 6E1E4B61EAD36181C732187ADAE1EEB90286EEDFE0BEE8710C76DCC0C6405F54 + 29B558B3762D9AEA1B6CF39D37ECFBD1DCDE0C54DA26C7009A66EC8BE773806E + 1BA0E90A7C7DD6A0A6AE19FEBEDE506B1B10E4FF32AA55B5D814EC87CA6A0DC2 + C30270AA42890D7EEBA1D65CC4CAD55EF8A9B971F2A618FBCDA92E3A004812A3 + C9A7F4640234CD25304400DE5EAB70892430FFE1255C026E1ECB61EA6D87DB23 + 8FC2D8F33B16783E0643D74DF8F9AD8386345EF2E433D05D6FC1D2A756A2BDF5 + 676E3F9AECF75712EADA664780A8BB8BC937BDEB839E300F9004BC9EE700EB5F + B225202209A86AEA4902EB50AD260904F9E1CC790DC4A101509C514224DA0095 + 4A83D5DE3E68AEBF64DF8F4B80247CA1EE879901E90951539ED53C0218BE6D05 + BC40CEC08FE4912C8659DF4192B09E855B2481E524813F48022B60EC26492C24 + 4974DE84FBE22760E8F815E2B010282AAAA6C44F3334347597ED803F01505384 + 3F654F6C0F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete_24_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000044A4944415478DA + CDD67D4C1B651C07F06F8D098A269AE95CC67CFBC3F887DB9C06C660BC968E31 + B6311DBA2CCB36870A5436B2C98BC1F1D21574186250D8A0A5B01854A6192A32 + 32400A7D050AEC25339031497C03C67B11FA0214CADDF9F4609D84975DCFB9F8 + 4D9A27B95E9FDFE7BED7A627C00A49546818B89626DB2CC265C78456AE1F10DC + 0D901B1B0C8603C3714AB9BE0B57BA060DB659268C2B821380A2B915A16DEFC5 + 98651A2D37FB39233801EC1437C0CD1E23464C537388CEBE56AB0011C562A191 + 3720A148CD7C2616C266A771F29C66C5E19F440B316E99C2B0699245FC65B111 + 447FC784D51A529C1CB12C6245C0095903931727C2E40CCDA901B7078191F13B + 8851B30D861BBD37F28F6EDBC00B70BCA08EC93FB61DD6690AA925AA158767C7 + 88D03D6482BEA317A68969E7F18191719C890F5B76CE8A80F8FC5AE6ECF11D30 + 4F519C1A70C4F17DBD3562663134F9F928DBBA5070229C1FE0E8E7D54CE1FB3B + 313E398BF4122567842359EF86C26AB323A74C0B59C22E7E80B8DC2AA6303102 + 6313B32E0DFF67D215B59027EDE107107F5AC9C8925EC3A8D50E49F14FAE3510 + BB835D331435507CF03A3F404C4E05234FDE0B2301F04D46D12594A444F20344 + 677FC7C853DEC488C50EA9E2924B83A5E2DDEC2A915DC4B9D47DFC00EF7C7C81 + 917FB88F05F08DA4B0125FA4EFE70788CAFA96293AB91FC3663B3215552E0D3E + 25DE330FA840A9E4003FC0116919234F3DC002F8E654C1F7F8527A881FE0B0E4 + 2B469E7690057C54F4A34B8333DEDB3B07385B8EAFB3DEE207389856CAC8D30F + 63C83CC3BB01E9990B387F3AEAEE80C8A8A445FFB96E6B5F823CE30801D8715A + FE834B83D3E2DE9803E47F83E981CE45EF5794E60A160142B7852C3849D7D10F + 99248A05F04D66DE79046DF45870ACBE41CD0DA06DEF4361C6DB18FE173FC3CC + BC3204BFBC8E3FE05E841720EED0AE7B32FC76E465D5AE37F05FE5FF0B28C849 + BD2F80F894ECA501F765FA7C960448926341D3347931ECEAF6F81A588D7DF0F5 + DA047DCB3504FA7A42DD7419427F6F2835066C176E454DBD1E3B430371B1460D + 3F7F1FE874CD58BFC9133F5F6D03237800B3F619E77E14BB378D7A6DEBF2008A + A29D273F4C0016633F7C37CF01DC5779C03CD403F7D54FC33CD84DD66760EAFF + 038FAE791E637DBF224C1480EA3A0DBCB66C414BB3811C7F0E63B77E9BBF28DA + 7971F5BA6500E98931E44976BE018A621B9820009FCDAFA0B1E52A027CBDA06E + 6C8530C007F59A66840AFD48033AD24010694085C8DD229457D6213828000D2A + 2D36787AE37A9B81DD8F22FBDD6EA241DFB61C20FACEC9E491DAEDB1A7C82D20 + 0D781380E11A1E5AB51696E15EB83FB18E34411A78923430F8271E59FD2C4C03 + BF2330D00F2A950E1E2FAC47CF2FEDF0787123BA3BAF3BF7631B200DAB1A2F2F + 0D484B885E70AF1C8089514703AF3A1BD0E84903813E50AA9B4803FEA4012D69 + 201855B52A44848B5051558790906028950DF0F4D98AD6A6C605F55334455ABC + E204FC0D1EE08C3F06AAA5490000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002E44944415478DA + CDD7D94F13411C07F05F1313FF0A1F7CF3C1579FB5A2023628E510907028B4C8 + 119043A1D0222047D0A01468B78724448B88B78443080A6A02219A988008BC68 + B48AD282F4584AA1B463BBC2DA026D66071AFDBECC7432C727B3DBDD1D1EAC27 + A9FC36A2CA12C16071C055D513E012D90521535E69BE0F77AA92795CC6B29D13 + CBDA10254D8239CB2AA7C5BD53D1D409ED35A9648004492BA264296E80036AA8 + 479C162ECB8CFE0390DF858EBA3432407CB11629CB531900692A1BDBE15EBD88 + 0C1077598314B27360B0EE04A083CE6B627200F1CA5E2106FCABFC3F8002F510 + C74BC01BB1AFA15065369FDE354083F808200C86A7CBC337333036FD73C7882D + 00A70B6F2386C7F5B0685D81D1A9D91D21B6001C4E3CC0F4D779309897D711DF + DFB9570FD764F0E78901F9AA97E846061FEC0E17486E0D051C5497CE07937519 + 8C661B83F865B5C3E8C7D989259A3EAA298AE084600179CA41D4981902B65517 + D6C0BD7B008CA6BF88058B1D4626F593F2AC63078900B92DFD489E7D02E81527 + 946A5F041C542B0A812F7366783DA107F3D20ADBFEC36882A69C50B207518EBC + 0F35E7868165D9893DD873BF7E335A188CCBFDF719189B8196BC703240D6CD1E + A4B878124CB635906A07B8CC015569C781B63BA05E370CCA7C011920B3A10B29 + 0A226071698DD3E2DE91AAFB802A3C4506C8B8FE14290B4FC302ED8072CD736E + 3B200E634A99BA17D49722C900A2FAC7882A12C23C4DFE3A96A9BA415B1C4506 + 48AF7D80A8E21830BABF072AD4DD7E07BCEF6D25066ECEDB573D3C1670BEBA13 + 5125B10C20508491514C296DED61DBAAD3046C7DDFFE036C5DFF799AAD6FD7DF + 07905AD581549238E6ABB852DDE51730DEDFC62CB27972CFA41BA537C6D36F73 + FBC66F1F404A850E51A5090C205062A3A38303C03D177C18D40507807B2E387B + 2686F3B5F6D7DF07807B2E981AEEF0BB03B83BB3ED0EE09E0B92E3638303C03D + 17A42404110018F934F62CE03D40FC1CC0CDA1C3825D39C01003763BBF01900F + 0B3FE901AB4C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002E14944415478DA + CDD7ED4F52511800F087ADADBFA20F7DEB437F4464A5E6344949CD7C2905F365 + 9A2F650A189A2FB36689225720362B8C2C7B73A9E92CB5369DABAD4D33F54BAD + 284BD1E4E5AA20C209AE76131CECDC63CC9E2FE772769E737E9C7BB8DC87079B + 9126D723AA3C09E6AD4E208D2BCA4EB82D3FC3E392C30E4EA9B88328493203B8 + DAFA84D3C2B2F3820D40F303B85B954A064896B4214A9A0273D635E21D903775 + 407B4D3A1920A94C8728599A07E0841AEA11A78525D9711B00C53D30D4659001 + 124BB5485591CE0048A3B2B11DEED78BC800099734A8457616E66D3B01E8A1E3 + 9A981C40BCF2962006EC56FC3F8022F520C75BC01BB1AFA370552E9FFE678006 + F12140180CEF90CE37333036FD73C7886D00971B6F2386C68DB06473C0E8D4EC + 8E10DB004E171E60FAEB02CC5B563711DFDF79568FD464F117880185ADAFD08D + 2C3ED89D6E28BB351834A92E930F66DB2A982C2B0CE297CD0EA31F67279669FA + B0A6249A13820514A80650637618ACACB9B112F7EE013099FF2216AD76189934 + 4E2A728E1C2402E42BFB9022F718D00E17946B5F064DAA1585C197390BBC9E30 + 8265D9C1F6FF3099A1292F9CEC4194A7E845CDF911605D7561277BCFEB379395 + C1B83D3F9FFEB1195016449201726E76A3960BC7C1BCB20E526D3F9739A02AE3 + 28D07627D4EB874055184506C86EE8422D45D1B0B4BCCE69F1AD2155F702551C + 4306C8BAFE14A98A4FC022ED840ACD0B6E3B208E605A99BA07D41763C900A2FA + C7882A11C0021DFCEF383A4640BC43FEF176B89BC702326B1F22AA341E4C9EF7 + 01B9FA79C0A4F73D3AA6DDB7FF00DB67FC3CCD5E4B75DDEC75754654D07E1FC0 + B9EA0E445D1632806021883DC94CE63FB9F7B37FBF17E9C5FD69FDC7FB00D2AB + 0CA8B52C81792BAE547705048CF7B58506805B1708E3E24203C0AD0B3E0CE843 + 730670EB82D3A7E2037EA340FD8176CC07805B174C0D194203C0AD0B521385A1 + 01E0D605694942CEF71AEB0CE0D6059FC69EE10CC30A1FC06EC56F3CA3113F6E + D8D7DD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002E64944415478DA + CDD7ED4F52511800F087ADADBFA20F7DEB437F446465E6A44C49C9144B917C99 + E6CB320511C99759B344812B989B15669659B3CC7496549BCE556BD34CFCD48A + B2144D5EAE8A229CE0A2579060F71E65F57CB997B3F39CE7C7E100F7E1C046A4 + 2B3A514B5912CCD99C50A5ED05365129E6515799BA07DA65020E9B5C7AB250AE + 4744B98002E046A5AA1B6ECBCFE101526577102149A100575B1EB32A5C7131DE + 07687E00771569788014493B22A4A9306B5BC3DE0179531774D4A4E30104656D + 88A8107A004EA8211EB12A2CC94EF00194F7A0B32E030F905CDA8A34B2740A80 + 1B558D1D70BF5E840748BAAC43EA8AF33067DF09400F5DD7B2F001D895FD021B + F0AFE2FF01146987597E049C11C73A8AD6E472C95D0334641D02C480E19DD2FD + 761AC68CBF768C0802B8DCCC36C2306E8245FB2A8C4ECDEC08110470BA98018C + DFE661CEBAB281F8F1DE533D4627E6CE63030A5B5EA11B622E389C6E28BB351C + 36A92E930B16FB0A98ADCB14E2B7DD01A39F67269648F2B0AE248E1582061468 + 86506376142CAFB91925EEDD0360B66C21166C0E1899344D2A738E1CC402E4AB + 069032F71890AB2E286F7D1936A95614055F67ADF066C204D6A5557AFCA7D902 + 4D79D1783F4479CA7ED49C7F1C6C2B2EC6C9DEF3FADD6CA3306ECFD767706C1A + 54053178809C9B7D487DE9045896D741DA3AC8660D50641C05D2E1847ABD0134 + 85B17880EC865EA42E8A83C5A57556C5FD43AAED07A2988707105F7F8234C527 + 618174824CF72264C287A75A6CE0F678F7BA8F430344F53D882889877932FCDF + 711CCFF7F8256DEBA3C7AA3362E9FB7DFB0FD0F7A62FC6ADDDF9CBFC004066ED + 4344942682D9F33C20D73E0B09F8F8BC8D5ACCBFE8E6EBEDE35E8C17B179DD3E + 3F0070A1BA0B1157F814205CC49F3A1D1900D3BE607CA03D3200A67D013F2121 + 326780695FF069481FF21D851A0FB5330100A67DC1D93389910130ED0BA60C9D + 910130ED0BD292F961CF009BF10000D3BE4028E0C36E451060371665DB17FC01 + B8CF1B3F02ADBCDC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002DF4944415478DA + CDD75B4F13411400E0D3C4C45FE1836F3EF823ACA88004A4020222172DA57209 + 08121128A5452E41835268BBB488412D228A485054084AD50442D49880083C19 + ADA250905E96D2B2B4235D68B51036B3030D9E97ED4EE6CCF9323BDBF608603D + CE557620EA721C98ED0C90865CD30DB764F1023E39FEC96915EDA8A9381E666D + 0C28753DBC0A974BA3D6015DD02A4F2403A42A0C882A496401A451AEEE84DB8A + 33648064F91D449526B1802B4D8F79152E3B2F5A03343E80BB15296480A4D256 + 44C99261C6B64CBC038A860E68AB4A23032416B720AA2C7515C04015F58857E1 + D2CC983580EA1EB4D788C9000945CD482B4F6301A4A1AC6F83FBB5123240FC25 + 3DD2949D85D96DBC86CA7A03745CCD20071057FE278801BB15FF0FA04037C8F3 + 1108869C2B28549B2DA4770C509771081006C33BA5F3ED148C4CFEDA366213C0 + EDC1DB08E3A80916EC2E189E98DE1662138071E30126BFCDC1AC75691DF1E3FD + 6AF570BD5438470CC86F7A85AE4B85E0643C507C739033A9265D0816FB1298AD + 0E16F1DBEE84E1CFD3638B347D585F18C90BE107E46907507D660838963D5889 + 7BF700982D7F11F336270C8D9BC65559470E120172D57D48957D0C68971B4A9A + 5F7226554B42E0EB8C15DE8C99C0BAE8F28FFF345BA0212794EC8B2847F51C35 + E686816DC98D9DEC3DAFDFCD3616E3597D7DFA47A6409D174E06C8BAD18B3417 + 8E83C5B102B2E67E3E6B4085F828D04E066A0D46D0E647900132EB7A90A62012 + 1616573813C222A279E1B8E2DDEB5E811F20BDD68DB4174FC03CCD805CFF62CB + A40F4F74EC55D6D2EB1FAB1447F83FF3190F00486ABB10552882399AFBE73832 + 4A04FBF61F00D397C980C5BD8BFAAEBEF0CDDB38DF771F0048AF7E88A8A258F6 + 6FB942F7744BC0C7672DC101E0F605A2E893C101E0F605A37DAD9CCFDABBB82F + 362239CF006E5F10171383BD03BE7BAC1DC0ED0B3E0D188203C0ED0B4E9F8A0D + 0E00B72F9830B607E70CE0F605290971B0531100D8ADBEE00F760A213F796E49 + F60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002E04944415478DA + CDD7DB4FD3601400F0B3C4C4BFC207DF7CF08F706204449009888808CA650E08 + 28121118632097A04137602B1B60A60E278A80282A04053581E0252620024F46 + A728DB905D6130B64F56586590355F3F58F0BCB43DE9E9F9B55FBBE5F0602DD2 + AA1E22AA20168C361748554F814B488547E9AD44F9189A8BE2785C6A9993CF55 + B421EA4A1C0D200D89A20B6E89E3C90029E53AD458180F06AB0BCA54DD9C1A97 + 0AA3D6001DA09124900192A55A441525D000D2286D6887DBD2D3648024C91D44 + 1527D280AB8D9D9C1A979C17AC02EA1FC0DDF2336480C4620DA2C44930635D22 + 7E02D2BA3668AD4C21032414B620AA247905E0824AEA11A7C6C5A2985580FC1E + E8AA53C900270B9A905292420348A34CD60AF76BD2C900F197D5485172160C5B + F80CCB645A68BB96410E20EEBC2E88013B15FF0F204F35C071097843CE6514AA + CCE2DBB70D509B71001006C37B4AFBDB291899FCBD65C42680DB83F7200647F5 + 30675B84E189E92D2136015C6E3CC0E47713182C0B6B889F1F56BA87AB857C13 + 31E062E32B7443C807A7CB0385CD03AC45D5697C30DB16C06899A7117F6C4E18 + FE323DE6B0DB0FAAF32339211840AEB21FC9442130BFE4C12ADCBD0BC068FE87 + 98B53A61685C3F2ECF3CB49F0890D3D08BE45987C1BEE886A2A697AC4555E921 + F06DC6026FC6F460712C32F95F4633D4658792FD1065CB9FA3FA9C30B02EB8B1 + 8BBDEFEB0FA395C678563E9FBE912968C80D270364DEEC418A0B47C03CBF0CE2 + A6BE8005EF3A955CAECF1AEF5FF7F01880A8B61B29F22261CEB1CC5A1416114D + 6FF7ECDDC7E4F45F27997D2E793F80F07A17525E3A06B3761748D42F02023E3E + 5181B8A5072A5223989CEF3850DEDB7C3DC697F703A4D774202A5F00263BFBDF + 716494203800DCB9E0D3B396E00070E70241F471D6B5F65EDC171B311BF37E00 + DCB960B45713F08E70F3BE633F00EE5C101713131C00EE5CF0B95F1B1C00EE5C + 70EA442CEB5A737937FC00B873C1C4A00EB62BFC003B3517FC05C419213FC388 + 10860000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002D04944415478DA + CDD7594F13511400E0D3C4C45FE1836F3EF823AC100191A52CD68A08CA525982 + 8A44EC36B4C812342805DAE902061544140111540C8A4B02718B0988D627A38D + 282D4837684B976B1970A42293990B0D9E97B97373CF9C6FEEB493393C5889BC + BA1E44960960C6E503DC50E806C0589EC2E392432FCEADB98DC8F234B03A7DA0 + D40F702AAC141FA08E84F62EB448D3F100C7ABBA10792E9D02E006A1E9832B72 + 211E20BBB213E92442B0387CA0D2F7732A5C214E5C01F4401B21C2036429DB11 + 29155100DCA868EE86ABCA2378804CE21A22651914E0BCAE975361C509C132A0 + E9165CAF3C8A07C890B521529E09D38E45EC1D503676414775361E40246945A4 + 222B04F04135798753615941EA32407D033A6B73F00087CA8D484B645300DC50 + 3574C0CDBA3C3C80F0AC016914C7C0B281BFA1AAA11DBA2EE4E303B02BAF0A6C + C056C5FF0328D58F707C04BC518F1FC5688BF8AE4D03D4E7EF01C482B1B4A4FB + C5277869FAB161C41A4020C86E239E8E9B61CEE985B18F531B42AC01F802EC00 + A6AF3360B1BB5710DFDE84AAC719C4FC196CC069DD137449CC078F2F08929611 + C6A4DA5C3ED89C6EB0DA1728C44FA707C63E4C4DCCBB5C7B0D65099C1034E0A4 + 7618351444C1C2629055E2F66D0056DB1FC4ACC303A393E6497561F46E2C4049 + F3105217ED0397370052E363C6A49ABC28F8326D87E71366B0CF7BE9F9EF561B + 3416C7E0BD888AD50F5053492C38DC01C684E8B8242ED7678CD7CF067934A0F0 + F220D29CDA0FB6053FC88D8FD64D7AD5ABA58EF2D6417AAE2A279E1EEFD8B98B + 1E9B3F9BE8F1BFD687010AEAFB91A63401E6E6FD8CEAD8F864EA62AB8BFE3E5F + 2AFE77D1A5F9F5D68701C417FB90F64C12CC863ECB09C3C375016FEFE9230360 + DB1724240A220360DB17BCBBDFCAF81BE0321F0660DB1708925338DF29AB1D60 + DB178C0FB54506C0B62F484F4D8D0C806D5FF07EB89DF15963BF07D8F605870F + A6C166451860ABFA825F2689163F45626B960000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002BF4944415478DA + CDD7EF4F52511807F087ADADBFA217BDEB457F44942BCC50D19831332915529B + 955926BF04D39C350B54B8FC90468599456A2696CDB2D6A6FD5C9B65D1ABB658 + AE40530105E5C709AE483292EE3DC8ECFBE6C0D93DF7F9F05C607B18108DF072 + 3FD29CC981198F1F64FA4740270D0216B94A7543A03B9BCBA073367671594B2F + 226A38301D06E046AA1D04436D1E1EA0F4E25D44D41E04A7DB0F72DD20ADC272 + E101729569EE43A7888B0738D6D88388F35C12801B99BA1FAE490AF000FC866E + A4AD2B0087CB0F0ADD00ADC2F5C2EC28A0174C321E1EA0586E46848847027053 + DF6181EBF2C3788022D90D44880B49C0056D1FADC2D2E39C1540FB1DB8D97004 + 0F502836214252043F5DCBD81D90B7F54057131F0FC0AB3322425A1C06F8A189 + B847ABB0B83C7F05A0BA05DDCD25788043B506A491F149006E14CA2EB8DD5286 + 072838A7476AE95170A4F0335428CDD07349800FC0AEBC26D880CDCAFF03A8D6 + 8DD27C048C315F00EDD354323D1B066815EC02448111B9C4F2E20BBCB2FD4819 + 91000886A835E2D9841D66DD4B30FE792A254402C01FA406B07D9B06C7BC378A + F8FE365C3D532F644E63034E6B9FA22B4226F8FC21A8EB1C4D7AA8B99409736E + 2F38E71749C42FB70FC63F4D7D58F07876EB6BD8B41031C049CD085296EF81C5 + E510A5835BB70038E7FE20665C3E189BB44FAA2A32766201AA3A8691AA722F78 + 968220323C59F7C04B4B1BDD2EAF9B37CFAD8C18E084EA216AAF6281CB1B4C7A + 282333875C25466B6CAFB1242BF69ACE7E1CA0E2AA15A94FED87B9C500480C8F + D705BCEED3C0B6ED3BC0FED51677F3C84DE9EEC701CA5B0790BA9A0DB30B81A4 + 1D6065E5A60740752E78F740971E00D5B9809DCD49FAAC23C556B3B6E8DFF6E3 + 0054E782F743C6844FB4FA3EA50E509D0B38B979E901509D0B26864DE901509D + 0BB8F9F958DF817FFE0F509D0B3E8E9861A31207D8ACB9E0372A490D3F9B7F32 + 830000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002B34944415478DA + CDD7ED4F52511C07F01F7F482F7AD79F21D50C33102466CC4CCA07329B955AC4 + D3154C73D62C50E172419A956614A99968B6CA5A5BF6B836DB8A5EB5E572A594 + 0A88280F27BC02930C76EF5166DF37877B76CFFD7DEEB997BBFD38104F55DB10 + 32D5F2616E310CB8D150A340D609386CD6244F965F1E44E6BA02F8E50F01617D + C8AA7063258F1EB5D40850678578808AD67E44D68BC01303E0466B19069BA210 + 0F507EF12E22150761D617021D35CCAAB04E7E801E09F37DE85249F000C79A1C + 883C2FA101B8214C83704D5384079035F6218BB20866BC21D05343AC0A37C805 + 71403F7413523C40A9AE07912A290DC04D43A713AEEB0EE3014A881B885417D3 + 800B96015685B5C7456B808E3B70B3F1081EA058DD8D484D09FCF4AE60EF80AE + DD01BDCD323C80546947A4B63406084133798F55617595780D60BC057D2D6578 + 80430A1B3213321A801BBDA1176EB756E0018ACE5991497B146636F137D41B7A + C071A9121F805D795DB001DB95FF07504B8DB37C049C97C130DA67AEE6FAB70C + D0569903880163F514E78B2FF0DAFD63D3880D804894D9463C9B9C8239DF324C + 7C9EDE14620320146106707FF3C0CCC2521CF1FD5DAC7A9E55CEF56003CE589E + A22B722E04435150768D675CD452CE8579DF12CC2E0468C46F5F10263E4D7F5C + F4FB775BEBF9AC1049C029F36364A8DA03819568C60539B9029C9DFE67DE3E77 + 7192809ACE3164ACCE05FF720454B6276917BD72B6D3A3C6EE4ACE3595E5277F + B3994F019C348EA28E1A1E78972219D57BF30AE88BADBFF88E9DBB60EAAB9BF1 + 7CE2380570E2AA0B994EEF87F9401834B64769016F06CCD90130ED0B78F9C2EC + 0098F605EF1F50199FF56AD144568B679A4F0130ED0BF80251DA3B4ADCF1DFF3 + 8C7680695FF061C49E1D00D3BE40242CCC0E80695F3039D69DF11DC0FE0E30ED + 0B2462316C555200DBD517FC0108E7003FD87DF3A90000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'CalculateSize_09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002AB4944415478DA + CDD7EF4F12611C00F02F7F482F7AD79FA1AB4C23512C47CC4C4A85C866A915F1 + 5320AD513341E58E0369549851A666A2D92A6DAEDFB536DF44AFDA72B5229B85 + 24EA014F78221311BA7B90D9F7CD3DF7EC79EEFBB9EFC1DDBE3C88C7F1762FB2 + 9EDA0BBFE6C3A0713C042E61ACD90DC1100D26F704100D7C1E97BD89C5F2B621 + 646D2C86D93F614EC9D786861A05B2498007905D1E44445309FC0CD2A0B33FE0 + 5601692173D45223409D29C503D49AFA11795A083331006E686DC3E05094E101 + 6A2EDC41A4E200FC98A3414F0D734AAC97ED638E3AE21E74ABCAF100475B3C88 + 3C57CE007043671D84AB1A111E4062EC4536A508FC011A0CD410A7C4CD32411C + D00F2E9D180F50A5772352256600B8D1DCD507D7F487F00095BAEB8854573080 + F3B6014E89B5C7842B80CEDB70C378180F50A17621525309DF034BD815D07778 + A0A7558207102B9D88D456C50034B49277392556CBF7AF002C37A1F762351EE0 + A0C281089D8401E086C1DC03B74CB57800D1593BB26A8F803F8BBFA1C1EC06CF + 25293E003BF39AC0066C55FC3F80466A9CE323E03D5F08A33D445D7E70D3006D + D23C402C18CB4BFA263FC22BDFB7AC11298048945D2126A6A661766E115E7CF8 + 9A1522054047D8017C9F67C0FF3B14477C791BCB5E6497E5CF60031A6C4FD015 + 593E2CD05150768FA7DDF0CCD38E73A31BC69BA75E5E0270927884CCF29D30BF + 14CDB829AF60E5D3BB6DFB8EC4DCF4275F62AC717A13E3966A7E62BCD1FA2440 + 7DD718B2D415407031022AC7E3B480977D1DCCC5D6265D3D5F4EBE3E69A6F924 + C009CB28EAAC2F84402892B102BB8A4A720360DB17BC1E20720360DB1714F24B + 333E6B2EF34900B67DC1BBFB544A0556EF30DDFCFA0AAC9E2701D8F605C50261 + 6E006CFB82F723CEDC00D8F605C2D232ACDFC03FDF036CFB82A931176C562401 + B6AA2FF80BB347F23017FFEF7B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_10_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002A94944415478DA + CDD75D4FD3501807F0FF3E8817DEF91DBC81A008E20643C92488A0C026624040 + 45601B0341330D32606B57060615C4E90444064A5420C61734C6C41BE1CA188C + 11D0A063F256B6E356606123CCF68C05FF37A73DEDCEF3EB6977F1C8B096338D + 83A4B93001AE050FC4C64B80AF332E7C99FAED3B26181A9B80B92851267A015F + 02379F6E7012CBD983F835BF02AD6D48CA1AA8C9DD0FF7020F63C70898E2243A + 407E7D1FB194C831FB674552F18DD17283604B157400CDB55EC29426E3A79B87 + BEE5B1B41D502708A38E1B00773E850E9067EC26EC39257EF800B4D159FB612B + 4BA503E45EBE4FD8B2239899E361E0FA251536680E09A39E7988D68A343AC0C9 + 5A3B612FA60900DAE82DBDB8A155D101B26BBA88B55C8569178F6AAE4F52E12A + 8D620DD08D767D3A1D20CBD041D88A7401409B2AB303370DC7E80099FA5B84AD + CC100097AC3D920AEB4E295701CDF770BBE6381D20A3B29DB0DA4C4CB996A977 + C0D06447675D361D20BDBC8DB0BA2C1F80471DFB4052E1CAFCC3AB80C63BE8BA + 924307385A66238C3E5B00D0A6DAD489BBC63C3A80EA420BB1E84E603A82BF61 + B5A903F6AB6A7A0075E50DA106EC54FE1F4009372CF115C85E2DAE90034C41AC + 7BDB00F5EA1810110CFF2D8E1713181BFF1E316213C0E315B711231F27313BB7 + 84D79FBE4584D804E03DE1017BE3E4B40FBB29EF469DB200A0D8FA9C5CD7C462 + 91F7A2BC7578CB1FBDB43708A3B6CD1998ABCD490A1C4B990F0214314F89293F + 0EF3CBDEB0EA98780576EDDE83C9CFE3418BFB170D9D5F3F5FBF1E3A1F042834 + 3F218D05F1702F7950617BB625E08DA3293A00B17DC1BEC4E4E800C4F6056F7B + 98E87C0362FB8284A4942D7720F449FF351F0410DB17BC7FC4450720B62F902B + 94D10188ED0B3E0CB4857DD77EDC7A429161BF01B17D81322515DB9520C04EF5 + 057F0106FBF1302DE157040000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_11_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002AE4944415478DA + CDD74B4F13511806E0B73FC4853BFF827103A25CAC2D5425481041B9D40A0101 + 1581B6940A986A905B3BD3A1605041AC22205250A2821A8D688C892B5819D444 + 291AA196EBD01E7BA10D95D0CC9CD2E0BB99992FA7F33D7366BAF824584F91F1 + 09692E888773C5854ACB33844B7D5E1CA6ED0EBCFCF405F30B2BC1FAF7D939B4 + 1426482022C1C585CD23A4B528118E2597E01FBB09F06DD681E99979CF39C1E8 + C4148CC5497480B38D36623A7708738B6B505B46C5DC03FADC83702EF130748D + 832991D201540D83C4542AC3EF853551CD3746CD8D802D93D30194D706085396 + 8C5F4E1EDAB6C7E276203FD177D470C3E02EA4D001F20C7D843DAFC04F0F8036 + 1AF3102CE547E800B9F5F7095B7E0CB37F78E8B821518D75CAC3BEA3967988F6 + CA543AC0E95A2B612FA5FA00B4D19A0670439D4607C8D6F71073451AEC0E1E35 + DCA0A8C6D54AF93AA00F9DDA743A4096AE8BB095E93E006DAA8DBDB8A93B4107 + C8D4DE226C55860F70D9DC2FAAB1E68CC20F68BD87DBFA9374808CAA4EC2AA33 + 31E358A5DE015D8B15DD75D97480F48A0EC26AB23C001E75EC03518DAB5447FD + 80E63BE8B9924307385E6E218C36DB07A04D4D5337EE1AF2E8006917DB884973 + 0AF608FE86354D5DB05ECDA7075077DE106AC04EE5FF01947263225F81E4CDF2 + 1A49600A629DDB0668C88F0111C0F02EE97D358589C91F112336015CEEF082BD + FB65913C7048DEBFB0493601785778C0BE383F40DD610BD66A73A4C17331F510 + 4089F939B9AE8CC532EF4645FBD89680D7D646ECDABD075F3F4F066B816B6F93 + 7F9B7AAFB75A1F0228669E9226551C1657DD617720265E1E1D80D0B9E06D6F4B + 740042E7820349C9D1F90684CE05EFFA994D4F2A760702F51080D0B920519A12 + 1D80D0B9E0C3232E3A00A173814CAEA0FA06BC884002981080D0B9E0E37007B6 + 2B21809D9A0BFE02587DEF302BEAFEF50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_12_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002C84944415478DA + CDD7CB4F13511406F0AF89897F850B772EDC1BE30604A1082DA092DA2082F2A8 + 3C02022A026D2908183408053AD3A1605041AC222082284151138C8FB8319AE8 + CA202686D6072DA53C86F68A036D0079CC5C69F0DBCCCCC9CC3DBFB9D32E8E0C + 8BC96106496D7A08DCB35E88C9F66D32D8C7DDB03BDCB039A6F073621AC3EF47 + 3F183342778B5A603132DF4976C32362CC0C836BC68322CBE3751FAA4C0DC188 + CD89E7EFBEC03139E3AF7FB38FA32E2B5C0609F1DF9C65EC27F5D97238A73CA2 + 1FF612E0ABDD899131C7FC39C1C0AB4F68C889A00364D4F411D3E9831877CF41 + 6B1990B206CA520EC035C5A3AAF52998DC483A407A750F31E529F06B724E52F3 + A5D172FD60F3957400CDE56EC2E447E3878B87BEF1A1B41D48930B471DF700DC + D9183A406A552761CFC4E2FB3C80363A732F2C0587E800299577085B7004F609 + 1E06AE57526383264A38EA997B682A8AA3039C2CB712F67C9C00A08DDED48DAB + 5A151D20A9AC9D980B55B0397994723D921A9768948B804EB4E8D5748044432B + 618BD4028036250D1DB86638460748D05F276C71BC00B860EE92D458772A7601 + 507F1B37CA8ED301E28B5B08AB4DC09873967A070C7556B45524D101D485CD84 + D525CE037854B07725352E4E3FBC0030DE44FBC5643AC0D1020B61F449028036 + A5B56DB855954A07509D6B2426DD09D8FEE16F585ADB0AEBA5347A0075E725A1 + 066C55FE1F401E3724F113C85E4CCF91702633D8B56980EAB420900D187B82A3 + 36EDEDDF3CEB93FD05F078D717ECDDAF108E3B76EEF2D7463F7FF49F4BA9AF0A + E03DEB03F68528A06DEE437972A4BFE6BBFED36469D38DEACB00B9E627E48A26 + 18D3BC17854D436B0286AD358101889D0B82C2948101889D0B5E76D4F917F165 + 2566B5FA86BF01B173416844F49A6FB472677CF789DA01B173C1EB2E263000B1 + 73813C32263000B173C1DBFBDC9ADF546A7D1940EC5CA050C662B3B20CB05573 + C16F85C4F33073CD5A7A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_13_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002C84944415478DA + CDD7C94F13511C07F06F1313FF0A0FDE3C7837C60B9B08229B4AB041A4CA5241 + 02B228026D29C812548402ED7428185416AB0888204A545C42DCE2C52D7A3288 + D1D0A2B6A5B4C0D03E61C086AAD499070D7E2FF3FAD2F77E9FBE9966F2936029 + 39FAFBE4BC3C10D39C1B85CDC3F095AA944058269D305B1D30599DF83E398D27 + EFBEBC9EB2DB839AF223272022925F836CDD5D52971E0CC7AC5BD0C28D1B2430 + 5B1C5E889137636F3519215BA900598D7788E65828EC332E1419EEF95C54991A + 8C51930D8F5E7D82756AC633FFD56C417DE62E0944C4F3E54CCD2069C80A83CD + E912BCD84D80CF661B46C7ADF36382A1671FD0981D4E07C8A81D20DAE3BB6171 + CC41611812B307CA5276C2EEE450DDF600BA9C083A407A4D1FD1E646E2C7D49C + A8E2CBA36007C1E445D101E4677B892E2F1ADFEC1C544DB7C59D405A187F55B2 + B7C09E88A103A4567713263F1613F300DA28F5FD3014ECA503A4545E234CC17E + 982739A8D97E5185D5F23DFC55A5BB81E6A2383AC0917223614EC5F100DAA8B4 + BDB8A088A703C8CA3A89BE301E261B8752B64F54E11279D412A01BAD2A291D20 + 49DD469822290FA04D4963172EAA0FD20112559708539CC0034EEB7B4415561E + 8D5D04345CC5E5B243748084E256C22812316E9BA53E0175BD11ED15323A80B4 + B08530CAA47900870AE6BAA8C2C5E9FB16019A0E745625D3010E1418884E25E3 + 01B429AD6BC795EA543A40FCC926A2551E8669157FC3D2BA3618CFA4D103A82B + 2F0B3560BDF2FF0072D96141B7E071C7B9352BFEE2E180C40B50931600F20FC6 + B6C0C5178FA265C033579E1CE119AF34BF69F316CF78ECE3FB95012EB76FC1F6 + A048BEC8EF45173E8B9DFF2B8073F906EC08F61340685F3062ACF50F40685F10 + 101AE59F6740685FF0B4ABFE8F5FB4B0F9C2A6AB3A01A17D414878B47F0042FB + 82E73D3AFF0084F6056111312BDE53B1CF861740685FF0F2268BB58A1760BDFA + 829F45D7023FB646C8830000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_14_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002F04944415478DA + C5D7C94F13511C07F05F1313FF0A0FDE3C7835C67890D28AC5B2AAA412445096 + 0A12904511BA509025A8480BB4D3050C2A8B550424204A545C427039B9E3C900 + 2EA145E95E60689FED009356B1CC3C69F85EDE9B9779F3FBF4659ACC8F032B29 + D28DA286EC08203D089864626A164C5637CCD91760FCD3B7370E00BE5ECC9D65 + B439209CD549A1F631BA22E6C23CE985B2D6D1909BEA32B960B1BBC16C755188 + 5FF67918FFF8FD9DD3E188D497C4B242D08002CD43A4CCE1816BD1CB68E3D62D + 1C305B5C4188B1F7D31F54B9FC9D5880FC960748753A0A1C0B1E28373C0AB9A9 + 368B0793261B3C7B3B0556E702BDFEC36C81A6BC031C6011FAE63CD5306ACE17 + 80CDED61BCD9EB7B5DBE9A6D303963F5CD118CBCFC0C2D05D17880DCC621A43E + 73102CAE25901A46D83C03AA32F783C34D427DC713D0140AF100390D03485D14 + 0B73CE2556C50323D50D03511C8707105FEA479AE278F8E92041AEBFCFEE04B2 + 05D428D3DD03DDD9043C40567D2F224A1261D607C08D4C3B0886D2437880CCDA + DB88283D02663B090ADD20ABC20A710C35CA3577A1B53C090F70B2DA8888F349 + 14003772753F5C958AF000E955DD485B2602938D844ADD00ABC215E2B815402F + B4CB93F100698A0E4494275300DC54B4F4C035C5313C40AAFC3A22242914E082 + B68F5561D9A9C46540F32DB851751C0F90226947843415666C8BD827A0683242 + 674D3A1E20B9AC0D11B2341F80841AE20EABC2929CC3CB00551774D765E0018E + 961A90469E4E017053A9EC849BF5597800D1393D52CB4E80E93FFE8695CA0E30 + 5ECCC60760570E083660B3C21AB06B9F70434ECA9FD74F873834C0FF51CA64D3 + F3AECBD4286D1BA2D7AA3384F47CDBF61DF47CFACB043D5FEBFEBF00FEAF62B4 + 0E633737867A5860D1D56B7FF13F8BFAD7FF75FF9A008F37B4604F646C7801EB + F5057B79610230ED0BC68C8D58EFC05AEB4100A67D4144541CEB5FCAE80498F6 + 052F7A9AC20360DA17F0A3E3C30360DA17BCEAD3847C07D8AC070198F6050261 + 026C5482009BD517FC06FBB8123FF17896E20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_15_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003004944415478DA + C5D7C94F13511C07F05F1313FF0A0FDE3C7835C6789002B20805510912445096 + CA1290452BA52D0559828A50A0335DC0A0B2584540028244053588CB49DCF064 + A08AA145E9464B19DA673B40434B28334F1ABF9799BECE7BBF4FDF4C93F97160 + 2D85CA51549719040E270226199BD4C282D90E135F675F2FADA07022876B6134 + D1271C5F00E56006989A99079DD1B686F8F9C1553D54C5E7CE63030A14CFD14D + 3E1796282794B48CFA9D5493CE0583D9067AA39546FC312FC1C497D98F8B164B + B0AA98C70AE101E4134F5143560858979D8C26EEDEC501BDC1EA8518FFA4FD2C + CB0EDD8F05C86B7E8264396160B13B40A87EE677527546084CEB4CF07272068C + 8B76CFF82FBD011A73C339C0229E8B736543A8292F024C3607E3C9EEE7F587DE + 04D37346D7398291B7DFA0393F120F905D3F88E4178F81C1BA0222F5089B35A0 + 22FD28586C14D4B68F0151108507C8AAEB47F2421E2C2CAEB02ABE3122E51090 + 45317800FEF53E4414C5C26F0B0512D530BB1DC88CA08F62E563505E3A8E07C8 + A8ED4164711CCCBB00B8112B06402D38810748AF7E8048C129D09B29902A0758 + 1596F2A3E9A38478042DC2783CC0F94A0D22AFC4D300DC48E47D704B94800748 + ADE8428A9204D099282857F6B32A5CC68F5903F4409B24110F90226D47A43091 + 06E0A6ACB91B6E4BCFE00192257710599A4403AE2A7A5915165F885B0534DD87 + BB1567F10049A56D881425C39C69197B07A48D1AE8A84AC5032496B422529CE2 + 025050453E6455B834EBE42A40D6095D35697880D302352224A9340037E50D1D + 70AF36030F90705985E4E273A0FB87BF6179433B68AE65E203B02B6F08368069 + 0E1C89DA11A83BEF5F0C72B001A2D641CF58655A94E79CCDB817C0FD52CA04F0 + AAF306BDD8C6C5F7ECDD07DAEF539BC6D73FAF7FEF7BFD2680FBAD186DC338C8 + 8D0E2C60BBBEE050302FB080EDFA82C3213CBFF7DABDF87A7C8BFA8E7B0198F6 + 05E39AFA2D7FD1563BB0D5B81780695F101416131800D3BEE04D776360004CFB + 82D0C858BFF79ACDB3E10560DA17BCEB2560A7E205F85F7DC15F330F1E3FA102 + 3ACE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_16_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000030A4944415478DA + B5D7C94F13511C07F05F1313FF0A0FDE3C7835C6789002B20805510912445096 + CA12904511684B4196A0221468A70B185416AB88404094A8A00491781237F4A0 + 0114428BD2BD85A13C3B0334140D7DF3B0DFCB4C5EE6F77E9F599AF4C783F5E4 + AA86504DAA1F20045EC35CD239F215C627E75E3B5650B022836FF15EF5EFF0B6 + 029CAB18025786276660D1BC04639F677784F80B403BF10093D30BA033DAD711 + 3FDFB9BA07AA85FC0562408EF205BA29E483835E85C2A6A16D8BAA92F96030DB + 416FB4B188DF66078C7D9A7D6FB558FCD5F9024E0837205BF10CD5A505806D79 + 15AB70F72E1EE80D360FC4E887998FB2F4C0FD4480ACC6A74896110496252714 + 699E6F5B54991200533A13BC9A9806A375C9BD3EA737407D66300F38C47D71A6 + 6C0035648580C9EEC42E66BED71F7A134CCD1B5DE70806C7BF406376281920BD + B61FC92F1E03836D05449A412E7B4059F251B0D869A86E1D06454E181920ADA6 + 17C97305B0685DE1D47C7344AA01A0F222C800C2EBDD48911709BF2C3448D44F + B83D81D410F628563D06D5A5E3648094EA2E44E547C1820B401AB1B20F340527 + C800C9950F1055700AF4661AA4AA3E4E8DA5C270F62851F44053513419E07CB9 + 165157A259006924F26EB8258A21032496752065610CE84C3494AA7A39352E11 + 46AC03BAA045124B064890B622AA28960590A6A4B1136E4BCF9001E225771055 + 1CC702AE2A1F716A2CBE10B50668B80F77CBCE9201E28A5B10258A8779D332F1 + 1390D66BA1AD22910C105BD88C2871820B404305F59053E3E2B4936B00593B74 + 542591014E1768904292C80248535AD706F7AA53C8003197D5482E3E07BA1DFC + 0C4BEB5A417B2D951C8053F06DBC8718B8356F5FF6F33869991C3812C64245CD + FDEEB5F2A430F73997756200B3D9E6CDF7ECDD0733DF2781EBBA0780F9538A03 + 1869BFC1B9113600672E38C80FF72DC0DB5C70C85FB0EDBB6636DF08D364235E + BF01DCB9E07080C07D079B376736DD7AA7DED63D00B873C1A8B6D63700DCB9C0 + 2F28C23700DCB9E04D67BD6FBE01DCB920303412FE573C003B9A0B925C738183 + 6C2EF80397B62C3F13A5D9F00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_17_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003044944415478DA + CDD7C94F53411800F0AF89897F85076F1EBC1A633C480101655154820D22284B + 6509C8A208B4A5204B882214685F1730A82CA288404084A8A00491781237F4A0 + 0114428BD28D96F22863FB80175AA0CC1B24FA5D66DE64BEF97E9DBE36F978B0 + 12E9AA3E049C82F77A7E11F92B92F8666E796EA7AC0594C57B01C26038B7B40C + 7C85E1D1A96D23D601EC4B7817D13F3201B3261B0C7D9EDC16621D80B6E30146 + C767406BB0AE207EBE7354F7550BF933C48034E50B744BC887797A09B26BFA3C + 2695C4F2416FB282CE606110BF4DF330F469F2FD9CD9ECADCE0CE6846001A98A + 67A822C1072C0B4B5889BB77F140A7B7B820063F4C7C9425FAEE2702A454F720 + 59921F986D76C8D13CF798541CE703635A23BC1A1907C39C8D5D9FD2E9A132D9 + 9F071C82DD9C2CEB4655290160B4DAB1939DEFEB0F9D11C6A60D8E3982DEE12F + 509D7A8C0C9058DE85E4978F83DEB208224D2F9733A020F62898AD3494D6F783 + 222D900C9050D681E4E9C1303BB7C8A9F8DA10A9BA81CA082103086FB42145C6 + 09F865A641A27ECAED06E2039851AC7A02AA2B27C90071A5AD88CA0C85190780 + 34C4CA4ED0649D2203C4163F4454D619D0996890AA3A3915960A839851A26887 + 9A9C3032C0C5C266445D0B6300A42191B7C16D51381920BAA00929B3C3416BA4 + 215FD5C1A9709E306405D00A75120119204A5A8FA81C0103208DBCEA16B8233D + 47068894DC45546E0403B8AE7CCCA9B0F852E832A0EA01DC2B384F0688C8AD43 + 942812A68D0BC43720AD6C8686A268328020BB1651E22807808622EA11A7C2B9 + 09A79701B246682A8921039CCDD22085249A0190467E4503DC2F8D2303845F55 + 23B9F80268B7F8194609C28881EEF1F66517CF058093F46DB89D19F7ECDDC7AE + 4D7C1F65E7A2DA2E765E1813E871DD05801B078E0422E761EE873B9FDDD79D48 + 276E75745FFFBF00B87DC140E34DD831004E5F70901FC41EB21A38EFC046FB37 + 046CD5171CF20E5EF78936BB81D5E7CDF66F08D8AA2F38ECB34300DCBE60B0B9 + 7C6700B87D81975F88C7EF9AF87F00B72F78D352097F2B5C00FFAA2FF803158D + 303FFED43C070000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_18_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002F94944415478DA + DDD7C94F53411800F0AF89897F85076F1EBC1A633C480101655154020DB2284B + 6509C8A208B4A5224B882216685F1730A808411181802851410812E24970410F + 1AA8426851BAD1028F32B60FFA22ADB66F068889DFE5CDFB3233DF2FF3A6493F + 1EFCE3E0B906B9AA0184B9F4F5D22A0A5664F02DDB06A84EF503C481E19CD23E + FC19C62667B78CF000D8D7B81DC4E0B81616CCCB30FA71664B080F006DE70698 + 9C9E079DD1B681F8FED6513D502DE4CF130372942FD14D211F96E835286C18F0 + BAA832990F06B30DF4462B83F8695E82D10F33138B168BBF3A3F1C0BC102B215 + CFD1ADB400B0AEAC715AB87B170FF406EB26C4C83BED7B597AE07E224056FD33 + 24CB0802CBB21D8A342FBC2EAA480980299D0986C6A7C1B8B8CCE667F506A8CD + 0CE60146B09333657DA82E2B044C363BE7C5CEFBFA4D6F82A939A3638CA07FEC + 13D4671F2303A4D7F422F9C5E360B0AE8248D38FB30794261F058B8D86AAE641 + 50E4849201D2AABB913C371C161657B18AFF1E22551F5079116400E1F54EA4C8 + 3B013F2C3448D44FF14E203584798A554F4075E9241920A5AA0351F99130EF00 + 908658D9039A82536480E48A87882A38037A330D52550F5661A9308C794A145D + D050144506385FD686A82B510C803424F24EB82D8A26032496B622656134E84C + 345C557563152E11466C003AA04922200324489B1155246000A45152DF0E77A4 + 67C9007192BB882A8E6500D7948FB10A8B2F44AE03EA1EC0BDD27832406C7113 + A2447130675A213E01696D1BDC2F4F2403080A1B11254E70006828A71E61152E + 4E3BBD0E90B5406B65121920A6408314924406E02DE263A2884FC83DDEBCEAE5 + B180E8CB6A24179F039D8F9F6182601D206AEC65736549A1EC1827EF01E0A2FE + 32D6C56CE6BEB9F37DCFDE7DA0FD3AC9E65DEFEE79D7FC4D00AE71E04828FA3F + 015CFB82E1961B7FFDA6B8790F0097BEE0203F8CF31DF095FF23C0575F70C83F + 7C6701BEFA82C3013B04E0DA178CB4D578FDD6CE62AE702FEAF50E70ED0BFC82 + 2260BB621300BB2F70FC151F9AD06EB92FF805A1A9243F94388C950000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_19_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002F54944415478DA + CDD7CB4F13411800F0AF89897F85076F1EBC1A633C68010585A2181B6890870A + 541E017928026DA90818A28885B6DB07185494A088404094A8A00408F1248AA0 + 070DA0105A90BE5B58DAB1AC74B5ADB4BB0304BFCB4C27F3CDF7EB74B7C9C781 + 6D0ECE7F03C853F72196A9438E1514AECCE45A360D509D76181003C6EA96D681 + 2F303231BB61841FC0E9627611FDA3D3B0685E82E1F1990D21FC00A493196062 + 6A1E7446FB1AE2C77B77F5308D903B8F0DC855BD46B7845C70902E28AAEF0B98 + 743D850B06B31DF4461B85F86976C0F0A7990F568B254453C06385A00139CA97 + E8767A28D8965D8C1277EEE080DE60F3420C7E9C1E936584EDC50264CB5F2059 + E651B02C39A158FB2A6052656A284CEA4CF076740A8CD6257A7D566F80DAAC70 + 56AF36BD394BD683EAB223C06477324E5E7D5EBFEB4D30396774CF11F48E7C06 + 79CE313C40464D37525C3C0E06DB0A88B4BD6CCE80B2942360B19350D5D40FCA + DC483C407A752752E4F160D1BAC2AAF8DF2152F700911F8D0710DE6847CAFC13 + B0602141A279CEEE06D222A851AC7E06EA4B27F100A9556D8828888179370037 + C4AA2ED0169EC203A4543E4644E169D09B4990AABB5815960AA3A851A2EC80FA + 623E1EE05C790B22AEF029006E4814ED7047148B07482E6B46AAA258D09948B8 + AAEE6455B85418BD0668834689000F90246D4244B18002E046A9BC15EE4ACFE0 + 011224F71051124F01AEA99EB22A2CBE10F31B50F708EE9725E201E24B1A1121 + 4A8039D332F60D486B5BE04145321E4050D4800871921B404205F164DD84F1FE + 666CA06FBC7BD3CDA10171855AA494245380409118C7A7C65DBBF7D06BD3DF26 + E8B9A8A19B9E979F8F0CB8EE0588BDAC410AF159D005790D93047CAAB86FD1D5 + 433DA3EFBAEF7ECF673F00936BFB3AD2B13500A6B1EF5024DA7680E7104F3079 + 06FEB5DF0BC0B42F18787893F1370DB6EE0760D217ECE7466D2D20585F702084 + B7B580607DC1C150DEBABF69A06720E8FF00D3BE60B0A506362BBC00ECFB0270 + F7057F9A9305930386C6D8F705BF006B061B3FEE46EDB00000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'CalculateSize_20_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002E74944415478DA + CDD74B4F53411400E0D3C4C45FE1C29D0BB7C618175A4041A12806848A3C54A0 + F208C84311684B45C4A0A256686F1F60508904450402A24405254A1A57E20374 + A10114428BD2176DE152C6F64A1B2BB4CC0C347A3633399973CF97997B9B0E0F + 9622FE8C06C13A44CBA50C1EC97AA2C5C188FF0750A0EE233C02DE6BC7020A57 + 66F3ADEB06A8C9D80D0883E15ED23AF0197423936B462C033817F136A27F681C + 662C7330383CB126C43200EBC4038C8C4D83DE645F427C7FEBEA1EA611F1A7A9 + 01F9AAE7E8AA880F0E76114AEAFB02165D4CE383D1620783C9C6217E5A1C30F8 + 71E2DDACD51AA229121021BC803CE553743D33146CF38B58851B37F0C060B4F9 + 205EBD1FFF20CF0ADB4A05C8AD7B82E4D97BC13AE78452EDB3804555E9A130AA + 37C3CBA13130CDCE79F3930623DCC809A7FB21CA91F7A0DADC0830DB9DD8C5EE + F7F59BC10CA35326D71C41AFEE13D4E5EDA303645DEB468A53FBC1685B00B1B6 + 97E4195091B607AC7616AA9BFA41991F4907C8ACE9448A0201CCCC2E1035FF33 + C4EA1E600AA3E900A2CBED485978007E5859906A1E93ED404604374AD48F407D + FA201D20BDBA0D31453130ED02D08644D505DAE2437480B4AAFB88298E058385 + 0599BA8BA8B14C14C58D526507D497C6D1018E57B620E66C1C07A00DA9A21D6E + 8AE3E900A915CD4855120F7A330BE7D49D448DCB45D14B803668940AE90029B2 + 26C4940A39006D94D7B5C22DD9513A4092F43662CA1239C079D543A2C6929331 + BF01B5F7E04E45321D20B1AC1131E2249832CF072C387238967A87FE8E372FBA + 795E80B0A4013192141780850BCC03BF45C3FDCDDC286EE8F6E62A4F447AE7FE + F29B366FF1CEC7BF8E2C0724146B91529ACA01024572421CF730CF433C4DDDCD + 3C236EDE07E0FE5BAE901C03FD2A9F618A3088009C73FBA2EB080E0037B6ED8A + 44FECE34507EA577831AE06F0748F33E00DC7BC1C0DD2BC48DB00138F782EDFC + A8E00256BB17EC0811043C6B92FC8A80D5EE053B4305382785153E807F752FF8 + 058A61193F9CD961E00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_21_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002E94944415478DA + CDD74B4F13511400E0D3C4C45FE1C29D0BB7C6B8D2020AC8C347C0521141051A + 1E017928026D29881854942AEDF401064D232122020151828012254437220ABA + D0000AA145E9636829D3F6DA4E60425BA6CE5C247236333D9D73CFD7B993B647 + 00AB21BAAC432AD93930DA28C08DCA7A03B4DEC814F0A9612EF601B03BAF0B6C + C0FF8AED0328D40EF2DC02C1DB65178A54E708C97F06A8CB3C048803C37749DB + F057189D9CDB342208E0F670BB11436333B06873C2C8C4ECA6104100CACD0D30 + 39BD00468B6315F1F383B77B844E225CC006146806D06D891096290F94360E86 + 2CBA9E2E04B3CD01268B9D46FCB62DC3C8E7D98F4B2419A62B8EE3856000F9EA + 7E549F150EF6150FA7C29D3B046032DBFD106FC6673E29B323F66201F21A5E20 + 65CE11209D6E28D3BF0C595493110E53462BBC1E9B06CB9293C9CF99CC703737 + 12EF8B2857D98BEEE54581D5E1E65CEC7B5E7F98AC30356FF19E23E81BFD020D + F9D17880EC3B3D4875F12898ED2E90EAFBF8AC0155E987817450506B18027541 + 0C1E20ABAE0BA90AE36071C9C5ABF9FA906A7B81288AC703486E762075D131F8 + 455220D73DE7770732A3E8A34CFB0CB4978EE301326ADB11517C021648FC9F63 + 99A61BF42527F100E9358F1151920026EFFF0185B69B57638524963ECAD59DD0 + 58968807385FDD8A882B89340037E4AA0EB82F15E101D2AA5A90A65404462B05 + 95DA2E5E8D2B24F1AB807668968BF100A90A0322CAC43400372A1ADAE081E20C + 1E2045FE1011E5C934E0AAE6296BC178BF011B1818EF5EF508184072793322A4 + 29306F5D095974FA54027D9436F530B9EA0B31CC395B7ED7EE3DCCF9CCF7C960 + 80B8B40911B2542F80826BC41356C0C4500BDD247071DFA281F9B5D76BEF07E6 + FD0049257AA496A7D18050713629716B005CE78254F1160280437C1BED64DDD3 + 50F98D9E0D3F00D7D8773006B17D52BEF9ED05E03A170C3FBAC5BB11670097B9 + 60BF3096F75EB3E53704FC6D2E381016C777D758634300E65CF0DE3B1744E3CC + 057F00828E113F1D79584B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_22_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002DF4944415478DA + DDD74B4F13511400E0D3C4C45FE1C29D0BB7C6A55650501E3EA042255854A0E1 + 119087D696B60222A62A4A9576FA00434C15898A40409420A044097125A25417 + 1A4021B4287D4C5FB4E5DA4E60428169662EA2C6B399DB9B73E77CBD3369EFE1 + C152A44B8C48ABCC8259871F70A3AAFE1E3C50E5F0B8ACA193D3CE1B9046710A + 2CCE8D004CD07A35171F805D79456003FE56FC3B8052FD00C747C07BE30DA038 + 6D019FFC6D80BADCBD805830C2298F863EC3887966C3883580E022BB8D181C9D + 8279A70F86C7A737845803F007D901CC937360B17B9610DFDF85AAC71AC4FC39 + 6C4089AE1FDD10F3C1EB5F0469E340D44557B2F960737AC06A7753889F4E2F0C + 7F9C7EEF22C97D86F2244E081A50ACED43F57931E05E5864B570EB161E586DEE + 08C4EBB1A90FEAFCD89D5880A286E7485D7000485F1064C6175117D5E6C4C084 + C501AF4627C1EEF2D1F333561BDC2A8CC3FB212A54F7A0DB45F1E0F004592F0E + BFAFDFAC0E9898B587C6087A473E4143F1413C40FECD6EA4397B086CEE00C88D + BD5CEE01D5D9FB81F4F841651A046D49021E20AFAE13694A9360DE15E0547C65 + C8F53D409425E301C4D7DA91B6EC30FC20FDA0343CE3B603B9F1D455A17F0AFA + 7347F00039AA3644941F853912FFEF58A1EB02A3E4181E20BBF6212224A9600D + 9D072AF55D9C0A578A13A9AB52DB018D32011EE0744D2B222E0828006E2835ED + 70479E8607C8AA6E413A691A584247B22A7D27A7C217C5C94B803668560AF100 + A24A132264420A102D042929D83BB43ADEBEECE6D1804CE55D44546450804BBA + 278C8BC6FA4CD455DED44DCFD59C49A0C7DBB6EFA0C7535FCDF478BDFC084046 + 453322E499A153F14254F589E3A9D4CD56165DFE1C2EBEBA68787E75FE725E04 + 40286D428442441DCB2F138F1901E3832D9B0360DB179C4C176C0E806D5F2012 + 0A36E71D60DB177C19E960DC01A66FCA941F01601BBBF624A0FF13C0B62F18BA + 7F9DF199729D5F0360D317ECE62772DD34C65817F0A7FB825F18FD103F2DCE35 + 4C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_23_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002E34944415478DA + CDD7CB4F13411800F0AF89897F85076F1EBC7AD60A0A8AF8820A9520288FA640 + 401E5A5BDAA62042AAA25469B70F30C45490F8024245080A4894104F220A78D0 + 000AD2A2F4B1B48552C676850DA5A5D99DD2E07799D9C9CC7EBFCC4EDAF938B0 + 167C71232264193067F7C00DE219B089726112D52A54CDD05293C561B3969E9C + 2A32208D3C9302E04645DD2378ACCCC103A45CD523B5EC22981D91008CD07A33 + 171F809D79436003762AFE1F4089AE8FE527E0BC77AFA0384D3E97DC36406DEE + 21400C18FE294F07BFC2F0F86CC48820807795D946F48F4CC382630986C66622 + 4204013C5E6680F1A97930DB5C6B889F1F7DD963F502EE3C36A058FB06DD1170 + C1ED590571435FD84535D95CB03A5C60B13929C41F871B86BECC7C5A24C9C3FA + B24456081A50A4E94575C218702EAF325AB87B17072C566700E2DDE8F467555E + EC7E2C40617D3752E51F0572C90B12C3EBB08BAA736260D26C87B72353605B5C + A2C7672D56B8571087F74354A0EA42F70BE3C1EEF2325EEC3FAF3F2C76989CB3 + F9FA087A8627A0BEE8181E20EFAE09A92F1F07AB7305A4861E36EF80CAEC2340 + BA3CA034F683A638010F20ACED40EA924458585C61957C6348755D40949EC403 + 086EB5214DE929F84D7A40AE7FC56E0772E3A956A67B09BA2BA7F10039CAE788 + 283B03F324FEDFB14CDB0906D1593C4076F513448892C1E2BB0F28749DAC122B + 0427A856AE698706090F0F70A9AA1511D778140037E4EA3678204DC1036456B6 + 20AD3805CCBE2B5985AE63CB0523DD4DD8C0CDF161C0C4A101190A2322247C0A + 102E7849FF2EA07BF6EEA3C7A6BF8FD37D69A389EE576525D0FD50F30300E9F2 + 8788284FA300D7B52FB6048CF61AA9241B5FBEFEEC4FB219136A7CFD39009056 + DE840869BAEF56BC1C7607CE9F4B8E0E80695D30D6DF121D00D3BAE0422A0FEB + 0C841A0F0030AD0B32F8BC8877607D3C08000CE2DB707B74004CE3C0C104B4E3 + 007FBBED6780695D30D87C9BAD79CB0802B0AB0B267C75C1AF88EB82BF2DA911 + 3F5758EC110000000049454E44AE426082} + end + item + Background = clWindow + Name = 'CalculateSize_24_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002DB4944415478DA + CDD7D94F13411800F0AF89897F850FBEF9E0ABCF5A414111054A854AB0558E86 + 23208722D03605398206A508DD1E90105344E209011182821825C42711057DD0 + 4015425BA5C7F680D28EED8A1B5AD2CDEE9406BF97D9FDB2DFCCAF3393EE0E0F + B622ABB60711B26C58B56F006E28DBFBA1B751C2E352433F2CAAEE46845C1C00 + 78A19178CC69E0DA02C15F80EA3EF435E7E00132ABF448AD905000DCA86BEB85 + 072D7978808C6B3AD429BF042647340003F4DFCCC707608FBC2DB0017B15FF0F + A05C3BC1710978EF3C9B28415DC427770DD09A7F0C100B46F091476FBEC2CCC2 + 4AD4881D009F9FDD444CCE1A61CDB10ED3F3CB51217600BC3E768085250B986C + EE2DC4CF0F81D1E37552BE051B50A679856E4BF9E0F1FAA1BA6B82B1A839970F + 56871BCC361785F8EDF0C0F4E7E58F4E923CAEAB4CE684A001A5EA71D4561007 + AE0D3FABC2FDFB7860B6BA42106FE78C9F5485F187B100251DA348557412C875 + 1FD4E85F321635E5C5C1A2C90E53B34B6073AED3F915B315DA8B13F0FE888A55 + 23E86E4922D8DD3ED6C5C1FDFAC36C87C5555BE01AC1D8CC17E8283D850728BC + 338C3AAF9C06AB6B1364FA312E7D407DEE0920DD5E68314C82BA2C090F50D03A + 883ACB9361CDB9C969F0ED21D38E005171160F20BDF50CA92BCEC12FD20B0ADD + 0B6E33909F48B572ED73D05E4DC103E4B53C4144652A5848FCD7B15C3304FAAA + 343C406ED3434454A58339F03DA0D40E711A58293D43B50AF50074D508F10097 + 1BFA11715D4801982235250D7B86C2E3FDEB611E0D90D4F7214D750698029F64 + 75DAC18845B3A33D547BE0E0213A67FCBE405FCBBA87E9EB869C24C67C0840AC + 3420A246440198422810509D85771EBC8F940F62C391C17C08205B710F11B559 + 14E086E66944C0DCB8213600B6E7820BE7D36303607B2E989FEC635C6B2E7B23 + 04C0F65C70315318F11785E7FFDDB39A01B6E702B12886006011DF6606620360 + 1B478E2621A6B5C6DE035C01BB112180BD3A17FC016F280B3FE237F250000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_01_24' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E24944415478DAB5D77B4C13 + 770007F06F291485A14E1311BA65D245DD12E23351DC5FBA91CD65339BD16C98 + C52C73A0252AF115108951878E49B6B1C8460BD319750FB228E82AE888669065 + 219AF88868080FA9A0D077ED1579B4A59CBD1FF6F07AD7E3EEC8BEFF1CB9FEEE + F7FBF0CBEFBE4D55344D434EF65435CA7A606EF274E83F5C8C38B54A25F4B94A + 09E0BB2DAB248FAF6E6A83C3331815F1BF03AEDDE9C1A02F8887568F20423120 + 1094F65C6B8F130E6A88456C5E938EC4F83816211BB0CB708D2ECB7D0783FE51 + 149DFC4774ECD12F57831A1A81C34D1184BB7F18DD362F72D72E6211B2013B43 + 801F9E03A4244113030BE51F477887D0D9F704855919CA003B8E5FA1CBF3D610 + 4081B14174EC31FDBBE8B252F8B7A507D4808FBDDF6B752334C7E4009EC11159 + CF3D76F6C36CF190BF1BAEB72907E47E6FA20DBBD712C0811357653D5B9C9D19 + 3A13417C73BA01A139260F509A42E3653E406AC30D782918F77E4400CC447252 + A27F9F5CF755D43173F001520A666B692D2AF3D79193AD34872AEB98399401B2 + 4BCEE144E10602602692B5F0D60FC8F540C55FCC1CC280891A2EB7F43C0CF9EB + E17C1A50BC038200A90D47B91CA82CFC147D1E3F8AAB4CE45EA3D985E070B22C + C44B33AC6839AE57B100A90DB7BDF44FFC98FF091CFD633BC0ECD87BFBABA17B + 6D25E6A6A5917BB16A15629E7FE7A8D563D738750C679E9A0B17613EF3F13840 + 6AC379DD2E18F66F2480C386DAB15D19F1E2CE638D2C4454C044EFF7B6A367F1 + 53D1A6D019E08E6BB37423AFBC5932820790DA706E9B8500ACDE004A8C35DCDD + 19A570B72F411242142016FDE153301EFC820022D3DC791FC5BFB4E38D0519D0 + 6A5F61EF0B214C261317A0FFF622CD341CF37E7F75F2EFA8802736AB2020BCF8 + FC792B3027458BB858EEA18B44F000A186A3A534DCAEAF4FF351A31E74B8B4D0 + E99623794ECAD836C7AA4511F5F597B88050C3D14A1ACEE973E2B63991B37838 + 62084180DC866B6C6D4151551B597CFACCD998A251F3C63008BBAD0F017F8073 + 30AF5CAEE302361FA9A6231B4E2CF6613BEE3D9A81D7D39661DAACF1FF3C12E1 + 7258D1DE711DAA183FE7EDB8DA50CF07BCD87013E5ED823F90AACDC0ECE454DE + 676184CD6A4157D70D54ED4EC7ACA4246C286E62113CC0E7877EA3231B4E2CFF + 597A3155F3165ED5BD094D44CD32A1DC7676F1CCF485E4E4DDEE36D361446747 + 2B17F059D1295AA8E1A2C51FF06353D9AF080697F010428B871346683401B456 + E4F001420D279666BB0D09F12B5984D765C103F34DC1C5C3097D81D1E15F482C + 20ABE0673A5AC38965C8E74376F9EF642792A6BD8CDE47B744178FCCA4012F22 + 3C9E0454EE5C2A79711E40F6CA02A93E9623797126CF00A405C2DF14BFD3D700 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_02_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004524944415478DABDD77B4C53 + 571C07F06F1F9487A26C26A2B265C2B257E2E21EC926FB6BEF401C9B73CE8D10 + B3CC312DD9060C1184CE4CC70CEA103750DAA2ECEDA6CB82D30ECA0844CDB218 + 4DE6746C212082A0D096963E1DA5CFBBDE03BD70BDD7725A967D1372C9E134BF + CF3DF79CDF2D128661C0462291802625DA530CD5C4A92C4F5D08E50B0F412197 + 0A0AB0B525B100F66D7A921A70F44C0FCCF67151C4FF02E8BC3884714F00578D + 7601624E005F80EE49740F596076B839C4C6AC15989FA090C40C286EE860F617 + 3C83716F10AAA65311E7EE7AEB2938DC7E98AD0E82B0BA26306872A220672541 + C404280A013E9D02D024492185C1E19D4638DDE81BB1A132373336C0BB9FE999 + FAC22C0228D7B4479CBB47F93CFA8D0EFCDA3504C73F1E6E7CD868C581A2ECB9 + 01ECE37EAAF9E15CB7B83060B093DFDBCFF5C40E50EE3BC9A84B720860FBE18E + A81055F9CF86F64400BBBF6A8766CB8B7307C49A0A8D5E08D8D2789AEA5C8DDF + 70A15A99CDDD4934613FC7665B430BB45BD70801340DA6F4A01E35EF6463706C + 725329E4742B37333BB42D682C5F3B7700BB024C30487EA80A6F5E4DAEDB1B4E + A2A9F25571C06C1DAE42D3165ACA2C586EF8E0F54FCE653F332F5E4ABD02A280 + F7D59D541DCE65B7415DF60A017CD4F40BB9FB8E5E230213A9513D86F9294674 + D529251CA03804A0E97025753AD416E69016CBAE80DB17C4EA0F8E21E3AE4C2C + 4F4F2773E43209A453A74A269BBCC6C9F82BD4FCD3090C7CBD661AF05E5D1B55 + 87B3BACC38B4350F23762F3EF9528F4020009BDF868B837151216E0998ED7CAB + EA9AB1AB702D3986E1E7EF0F32E81E1E40A9FA3C35420028A8D5517538ABC980 + 9AB23C18435F32EABF6923638A844472353987F1E748121522222052B6D5FE80 + DD25EB439B5038AFB3EB12F61CB982FBEF5B85B4B43BB87131844EA7E3039435 + 27184DE94B04C0B6CA5BC53966C1CEA25CB8DC13DC58627C3CCEF6FD8DAACF7B + 71EF3D8F63C9D234C4C9F99BEE668400B079EF71465BF632797747DC03F5CD82 + 319BD78A4BD7539091F11852972C9D5C66B92C22A2B5F5673E20BFFA47E670C5 + 3A02605B256D2C1E0BFE1898C72B1E4E24842820DC606873BABB0BAAC61E527C + E1ED8B91A09009E6B08851D3087C5E1F6F63B6E95BF8808D1F1F65B415AF91F3 + 5DD5A89BB5F8E8C428FEBA9682BBD31FC58245D3777E3362CC6C44EFE5739048 + BDBCD3D1D1DE2A041C285B0FB38B6E059E2EFF1ECBD2566171EA32C1DFC20893 + D180FEFEF3682C598145C9C9585775864308006FEC38C2A82B730960A7FAF8AC + 80DF0CC348543C813B331E8042267C1139ACA35CF1E71E5C4976DE85ABFD4C18 + D177B99B0FC8537DC11C546D103DDF62F1FABCD8B0FFDB502B7E5880102B1E4E + 18A150F8D0DDF0B6106074FA50AD69A642B0393B6A42527C2687708E197065E0 + 77D1E21C3ED4BBD9FF9078AFE3D7CB0F319A0FDF248068E2F678905FFF1D5989 + E405B761F8DA8588C567E63F01CC44D8ED49D0163F42555C14107565911CDBBB + 89FA4B225BFB5F726B13EEB76296DE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_03_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004684944415478DABDD77B4C5B + 551C07F06F29ABC8803189630C8D03E32B99998F4487FFE8A65B980E459D8F45 + C994B1511275080384BA0C650437F75040DAC2C874D3B9650B7B94D708138831 + CB583667D05404DBC9B3B405FA18A54FAEBD67B4ACDCBB725A8CDF845C7238E9 + EFC3B9E7FCEEAD806118B0110804A0498EBC8DA19A389DE5B18B20DEF01844A1 + 219C026C6D413080FDDB9EA3061CEFE886CE60E145FC2F800BD7FA60B1B9705D + 63E020E60570B8E8EE84B24F0F9D71D28B484F5E8188309120684076552B7330 + EB7958EC5390D4B6F99D5BBA65358C934EE8C68C043166B6E29F1113B2525612 + 445080ED6EC057D3009A848B42306CB4CF204C93E81D1A47D1A6A4E0001F7CDD + C4547C944C0005B216BF73F788D741A531E2E7AE3E18276CDEF141CD182AB7AF + 9F1FC0607152CDF764406F867AD8407E6FB9D41D3C40BCFF1C23CD4921809D87 + 5A03429464BCE0DE132E7CF15D0B64B92FCF1F106C0A654D5C406E753BD5B9B2 + DC3023F7DDB5B03BECA838D11150E132F17A72FDA4AA01F2BC542E80A6C1941E + ED8024ED59F46AAD04B138222CE015289637A0BAE0B5E000BBBFFD099FBEB786 + 006427DB30617362CA49773B8A335F22D79D55E7505BF4063F60AE0EB7E7681B + 0AD25663C86027739D53EE1FBB15910BC3DD6D966E1FF1023E965EA0EA7066C3 + 38A4F9AF437FC381CA63ADB04D0970E6B73EB8ACB101DD8688680DBACAC5022F + 20DB0DA0E970A5B5CD906C49262DD6EE643061B52165571D12EF4BC2F2840432 + 27542840C8F4A9120A6F5E1708437C3EA7EECC59A88FA4CE003E2C6FA6EA7013 + 26032AF3DF24B760DF91F364CC681F47A70A01216E0B98EB7C7FE96E22799BD7 + 9186C2C6B30F94836AEC907652233880AC030AAA0E671A1B455EFA8B305B6CA8 + 39D54EC6E262A2C8F5CF91015C1B105121FC02FCA5AC4681C2AD29EE4DC89D57 + 7FE532CA4FF6E3E18756213EFE1EEF381F42A150F802C4FBCE32B21DAF9047E7 + E7B5E76FBF02A37A1466A662D43CF3748BBF3B1A97557F4052DD8D071F781A4B + E3E2B120D477D3CD467000997B4F33F2FC5709C05F0E1CAEE78C0D4DEA70B127 + 1289894F217669DCCD650E15FA453436D6FB0232CA4E31870A371200DB2A69A3 + B7E9F1AB7AA14F714FFC2178019E06439B7665175976B6F8A2BB96204C24E4CC + 6111DA912138EC0E9F8DD9DCD4E00B48DF7D9C9117BE45CE7749B562CEE25AAB + 16BFF747E3FE8427111533F39FCF468CEA34F8ABE7120421769FD3D1DAD2C805 + B00D4667A65B8135053F6259FC2A2C895DC6F99B0731A219864AD589EA9C1588 + 898CC4C6920E2F8203D85CFC03232DDA44009F494FCF09F8657810778A9EC1BD + 898F4034ABCDB2318E69BDC5D73EBA92ECBCABD7558C07D1DBA3F405BC2339CC + 7C2349E33DDF7C61DF05D20E7E0F97EB710E82AFB8271E8448E480B26A2B17A0 + 31395026ABA342B0B9A81D41F81D495E846974187FABAFF016F7E2DDBD9BFD86 + E4F3387EBBA08691ED7A9F0002C9A4CD868C8A63642522A31663B0FFAADFE2B7 + E63F01DC8A3018C221CF7E82AA382F20E0CA3C39B1771BDD6BD134E05F36E815 + EECCF20AA00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_04_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004734944415478DABDD77F50D3 + 651C07F0F7184E2550D20E50B284CEB23B3BFB7157E075FD523BBDA248C1B4CE + EB32925198040502E749514779990638B605D7D1955A2308173FE250240DC32E + F58E8A23D6F8A1B0B10DDA0F18FBFD6D7B6483F19DE3D9E87AFFF3E59E3DC7E7 + B5E7FB3C9F07380CC3C0150E87039A648BDA18AA8953591DBD14FC67EF072F34 + 8455C0559B130CE0C8DE27A801A7DA7BA0D61A7D22FE17C099AB83309AEDE857 + 6A59887901AC76BA37D13DA8815A37E941ECD9B20EE18B789CA001598256E668 + C646182D0E1456B5F99DFBE16B4F423769837A4C47106306130646F4C8485A4F + 104101F63B01C7A6003409E38540A1B34C23F493900DFF83825D89C101323F6B + 62CADEDA420079C216BF733FE63F0DB95287F35D83D04D983DE343CA3194EFDF + 3A3F80D668A39AEFCE758D017D0A2DF9B9A5B3277800FFC869A6223B89000E56 + B60684284EDBE4DC13767C54DD0261CE73F307049B7C61131B90233E4775AE8C + E306BC99F228AC0C07E2EFCE0754B884BF953C0F081A207A37990DA06930E535 + 1DC84CD9803F87F430DB1C88890C0B78058A440D10E76D9B1F40A632A15ADA01 + 8D6E020E1BDDEB284A7F863C0F0A4EA3AA20D53760AE0E774CF20BB252133030 + 6A86C56A81C36E27AF6359F862679BA5DB473E016F579CA1EA7046831EE539C9 + D08C5B51557701CE0E8B939DBDB09BA2037A0DE1914A7495F2391E40961340D3 + E104DFFE8437763C465AACC5C660C26446D2A15AC4DF9988D57171644E289783 + 90A953C5E5DE782EE08678FD9EDAEFEBD1F765F234605F693355879B9C184769 + CE360C6B2D104ADA3061B6416B1AC525390242DC1430D7F91649DA919EFA3869 + 2804647560D26C866C508503D51DD4081620E3532955871B33A891B97D33F44E + 80A4F922195BBBEA36989C47F24ABF0C57AFF3A8107E01FE5276A215FB5EDAE4 + 598199A9B9D08EE3F51AACBD2701B1B1B77BC67D21A452A93780FF493D237CE7 + 797275BE5FF5E34D0146BD1EFC9D1BA11DB778C6D6DC11855FE57FA050DC83BB + D73C829815B15810EABDE966235880F4C3758C28F70502F0974AC959D6D88041 + 81B35D0B111FFF30A26356DC58E650AE5F4463E30FDE80B4921AA6323F85005C + AD92361AB30657FA6EF12AEE8E3F844F4045EE76D2606873AEBB8B2CBBABF8D2 + 655158C4E3B2E6B810AA9161582D56AF8DD9DCD4E00DD8F3C1294694FF2239DF + C562E99CC55526157EBF1689BBE21EC292E5D3DF7C366254ADC45FBD9DE08458 + BC4E476B4B231B509EBB036A03DD0A3C9577122B63131015BD92F5991B31A254 + 402EBF0471F63A2C8F88404A71BB07C102BC52F4355351B08B00DEABA89B13F0 + B362088B791BB02AFE5EF066B5595774632A4FF1CDF7AD273BEF72BF9C712364 + BDDDDE80970BBF608E17EE76EE01BAABD57513EE3EFA15ECF60758085FC5DD71 + 23783C2BBA05AFB3014ABD1525C25A2A842B175523085B98E841E84715F8BBEF + 379FC53D789B8371FD87E4751DEFCCFB9C111E7A95000289EB1E482B3B415622 + 62C9AD18BA76D96FF199F94F0033115A6D1844590F5215F70908B8B28F7C7378 + 2FDD9F4553807F01CC5919EEC6C1472E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_05_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004684944415478DABDD77B4C5B + 551C07F06F29D48963CF64BC34023A1FC974CCC5399698F89CA0A038A7EEC162 + 9CB895441D828280CB5034E8E29C32A42D428804276686C92ACF31D9B2E8DC10 + 58C29431060C66692950DA0BF45DAEBD075A566E574E8BF1FBCF6D6E4FFAFB9C + 73CFFD1D10B02C0B2E02810034499335B35403671211BC14E2F86888FCFD7805 + B8DA025F0087F63C460DA83CD38561ADDE2DE27F019CBA3800BDC9866B2A2D0F + B12080C546F7243A074630AC333811BB63D760F12291C067406A51137B38E549 + E8CD53C8296DF638F6D3371E87CE60C5B04647109A7123FA8718A424AC25089F + 00FBEC80AF6600340914F941A933CF221803AE0E8E217B7B8C6F80B7BEAE638F + BC134B0099D2468F633F176F46AF4A87B31D03D04D9A9CF7152A0D0AF7C52D0C + A0D55BA9C63BF2CFC838FA945AF2B9F17C97EF00F1A113AC242D8100F6973479 + 85C84B7ECABE276CF8ECBB4648D39F5F38C0D76449EBF880F4E2D354EF95D968 + C48ECDD1E473796D8B5785F3C571E4FA41510D64EF27F201340DA6A2A11D49CF + AC437BBF1646831111A12BBC5E815C590D8A33B72C0CF0B78241D5C93FA1D04C + 62CA4AF73872F73E47AEFB8B4EA034FB65F780F93A5C455D2B92E2D6A37FD404 + B3C50C93750ACC847D254296DBDB2CDD3E720B7857728AAAC3E9C71914A62762 + 64C282CAC636E88D26949DBD0C9B31D8ABC7B078990A1D05628113906A07D074 + B8A3F52DD811FB30CCF6991B2C5318B3CF3EE14015A2EE8C4144642419E32F14 + C06FE6AD120AA7AF01423F97DFA9FAB91A7DE589B380B70BEAA93A9C61720205 + E95B30A835437A6C7AA554931A9CBB62F10A7153C07CEF7745ED05243DBB81CC + 9E0BD7580C26132E2B7BF061490735820748F9524ED5E126192D76C66F22C76B + F5AFADE45EF4EA30726DEEFC0B17FB03A8101E01342BC0CD7C6ECA9B4EA2AC81 + C17DF76E4478F8EDCEFBEE1072B9DC1520FEA29A95BEF702393A3F2E6DB82940 + CF30D816FF28ACB659C0837787E1F7EE4BC829EEC23DAB1F4148683802FC5D37 + DD5C040FB0F7E0715696F1220178CAB1BA3F78F77AC61490B7B0888ADA80E090 + D0E965F6177A44D4D6FEE20A48CEFF892DC9DA4A005CABA4CD886904ED7DB7B9 + 1477C413C22D4092F1126930B439DDD941969D2BBE74C52A2C1209796338847A + 681016B3C56563D6D7D5B802767F52C9CAB25E25EF775EB17CDEE26AA31A97AE + 2FC35D91EBB164E5ECCCE722468755B8D27D1E023FB3CBDBD1D458CB071466BC + 82E171BA157822F30784856FC4AAE030DE770EC4904A89DEDE0B284E5B839541 + 41D89A77C689E0015ECBFD9E95646F27808F24C7E705FCA654E056D126DC1175 + 3F4473DA2C179D46ED2CFEF4036BC9CE6BBBD6CB3A1057BB3B5D013B73CAD86F + 7276D9F700DDD1CA9D84BB0E57C0665BC743B82BEE8803211259D059F4261FA0 + 622CC897565121B89C530F21F0961827821955A2A7AFD56D7127DE3AC572FF21 + B91CC7DB32BF65A5075E27006FC29D03C9478E9295085AB21C8AEB6D1E8BDF98 + FF04702342AB0D842CF521AAE26E015E5776931F0FEEA1FBB36806F02F816B15 + EE61C720860000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_06_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004794944415478DABDD77F5093 + 751C07F0F7184C2351CB4B54EA023CC938CCD4BB128DCEEC97240695565EE775 + 19E9B8AB202C08C88BA48EF2320C153682EBECB2E4F254E467384E8943CEEE02 + 6B7408D8100C1863AC6703B667CFC3F6B4E7910DC733C777A3EBFDCFB3FBF2BD + 7D5ECFF7F97E3FCF90701C073E1289042449575EE088264E263C7401E4090F43 + 1618202AC0D796F80338B4671331E06463278629B347C4FF0268B8D207B3D586 + EB5A4A84981580B5913D898E3E3D868D161762F79618CC9B2B93F80D482B5271 + 05294FC2CCD8915376C1EBDCCFDE7C0246CB04860D46016118A5D13B6442CAB6 + D502C22F40AA037078124092605900068DCC14C264C1B5817F90BD33D63FC0DB + 5FD77247DEDD22003215F55EE77E217F061AAD114DEA3E18C7ADAEF17EAD0147 + 53E36707A0CC1344F39DF95B3F8A9E414AF85C7FB9D37F80FCD039AE387D9B00 + D85FAAF2099197FC94634FD8F0F9F17A28F63D3F7B80BFC952D48A01FB4A2E12 + 9D2B86A6F1DC8668C882A438D5D0EA53E17C79BC70FDB0A81ACA0F92C4009206 + 53D57C15091B57A2E5AA5638DBD1E1F7F8BC02B9CA6A9464BEE81FE0A7A62EEC + 888B425B2F05554B0734037AD827C81E47EEDEADC2757FD1399465EFF00C98A9 + C39D6DEE42D2C628F4E94C30311C680B0D6A8C417444A8A3CD92ED238F80F78A + 1B883A1C6D31A3303501FA3116754D7F807274BA63E77F878D0EF5E931CC5BA8 + 85BA502E7101D21C00920E57DDD48EAD71316026ECB0B0768C18C79178A00291 + F7C7223C2242981328952060F25449A537AF41D200B7EF397DB6023DDF254D01 + DE29AC23EA700C6D41415A22FA0C569CA86E8185B6C2C05068FCD3EA13E2B680 + 99CE7755931A0971AB84BBE7C33716A3691C1A432F3E2A551323448094AF2A89 + 3A9C657C0CCF3EF6106C760EAA4B6A616CD3DAE560591BAADADA70A5378808E1 + 1540B202FC9D4F8FA2EE3CCA1B4C58F9C07A8485DDEB1AF784A8ACAC7407C8BF + ACE014EF270AAFCE03653FDF1660358F23FEF13518A359D7D8E6752B70A9BB1D + 39259D885AF128962C0D4350A0FBA69B8E1001F61E3CC329335E1000DEC21FBD + E9E9D2F7A2FC17C7268C7C04A14B96DE5CE640A957444D4D953B2039FF14579A + B55D00F0AD92347AAB1E6D3D77BA1577C61BC223A038E325A1C190E662875A58 + 76BEF882BB1763AE4C2A9AC3237443036019D66D63D6D556BB03767F7A925366 + BD82018A415E49E58CC575B40EED37166279C43ACC5F3475E7D31123C35A7475 + 5F862480713B1DAAFA1A31E068C6CB181E255B81CD993F6259D87A2C0E5D26FA + 9B1331A41D8446F32B4AD263B0282404DBF31A5D0811E0F5DC135C71F64E01F0 + 49F1991901CD83FDB843B601F7453E08D9B436CBC768D0B98A3FBD6AB5B0F35A + AF6B3827E25A77873BE0B59C6FB96339BB1C7B80ECD5CAB00C76157C0F9B6D8D + 08E1A9B8334E844CC6A2A3E82D31406B6291AF384D84E0D3A21B42F09C5817C2 + 343288BF7A7EF358DC859FB073FC7F486EAFE35733BFE1141FBF21007C89C56A + 45F2911F849508997F17FA6FB47A2D7E6BFE13C0AD088A0A86326D2D51718F00 + 9F2B7B48F9C13D643F8B2601FF023C9F1BEEA7B26A2A0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'MoveLocal_07_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000046F4944415478DABDD77D5014 + 651C07F0EF717021815ACE88422690154E92924D49348E45353A4959D18BD338 + 4D467ACC941016048C930D399485161ADC918E53636533256F01C640BC6453DA + 24183A40D0F126DCC29D786FDCEEED716CBB2B7770EC793C77347DFFD99B8767 + EEF7D9E79EE7B78B8CE3380891C9642049A6BA91239A3895A8F045506E5D0745 + 6080A480505BE60FA070D72662C0A9E62EE80C568F88FF05D0D03600ABCD813E + CA2041CC0B607790FD121D037AE88CB40BB173F31A84062B647E03328AEBB9C3 + 6949B0B293C83BDEE875EE81D71E81919E806ECC2822C6CC0CFA474C484B5E2B + 22FC02A4F3804FA70024095104406B64A711261A3DC3D790BB3DC13FC01B9FD5 + 7247F66C1601D9AA3AAF733F523E010D65C42FED03308EDB5CE343D4188EA66F + 991FC0609D209AEFCC15BD19BD5A83F8B9EE5C97FF006561255792992C02F61D + ABF709919FFA18BF271CF8F0CB3AA8F63E357F80BFC951D54A017B4B9B88CE15 + CB30D8181F83D005C1A86CB9E853E102E516F1FA6E7135D4EF6C9302481A8CD0 + 5892D6DD8EE6CB144C161AF7C746FABC02FBD5D528CD7E767E80D67E039ACE77 + 42C36F2C96A1C90AEF7E52BCEE2BAEC4F1DCE73D03E6EA702DED83D818B702DD + 9419B689493034033D7FBEEF5D15C1B759B27DE411F0564903518763682B8AD2 + B7426FB1A3F18F4E186D1C0A2B7E878309F7E967085D4CA1BD48297301327800 + 49876B68ED4752FC4AB0FCDDD3F64950FC932E25BF1C312B1310151D2DCE0994 + CB103075AAE4F2EBD7207980DBF79C2EAF40EF57DBA6016F169D21EA7076D686 + 437B92D1A7B3A0ECE75630AC0323E37A34FC65F5097143C05CE7FB6C6B0F1E8E + 5F25DEBD906B160646B3151DD4151C387989182101A41DAA22EA70F4B80589EB + 63C1D81D68BBAC11C79213578376C8F8978F16B4F5071121BC027C598199F9F8 + 876A949FA5117BF7064446DEE61AF784A8AAAA7207283FA9E0546F3F2D028456 + 79C33D60B321312E0A1687DC3596B2E91E3475B423AFB40B77DDF920962D8F44 + 50A0FBA69B8D9000761F2CE3D459CF88CF6EAF2B70B15732D6A9EDC6899F4C88 + 897900E1CB965F5FE640B957444DCD8FEE80D482EFB963392922406895A4D1DB + F468EDBDD9ADB833DE101E012559CF890D8634CE65178A2FBA7529821572C91C + 01313A32CC1F5FBBDBC63C535BED0ED8F9C1294E9DF322860D2CF24BABE62C3E + CA8CE2D2E062DC11BD1E0B974CDFF96CC4551D85BFBBCF4116C0BA9D8EFABA1A + 29E068D60BD099C956E0D1EC6F1111B9014BC323247F732246282D349AF328CD + 5C832561617CC76C7621248057F67FCD95E46E1701EF9794CD09F8553B84058A + 87B022663514B3DAAC10E3D8A8ABF8E3716BC59D77A14FC339113DDD1DEE8097 + F34E709FE7EDE0F700D99B0E6B67B1E3F049381CF11284A7E2CE38110A851D1D + C5AF4B0194C98E02D569228490DF4647107253820B61BAAAC53FBD7F7A2CEEC2 + 4F4C72C27F486E8FE397B2BFE054EFBD2A027C09CD37A6D423DF882B11B6F016 + 0C0D5EF05A7C66FE13C04C84C1100275C67D44C53D027CAEEC21DF1DDC45F65A + 3405F817AE2819EE9D3C1BEF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_08_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000047A4944415478DABDD77B5054 + 551C07F0EFB2B8198A581620F4004CAC19128DA6A43F9A9E266396953D9C749A + 8C74992C090B02C68922877242CB07EC124C53636633A5E2C6430652C71C470A + 0361405EBB80B27BF701EEB2B0CBDEBBEBEDDE2BBBB8DC7539BB34FDFEB977CE + 9ED9DF67CFFD9DDFB92B6159167C482412904496F2244B347122E2A222207F7E + 1964A121A2047C6E493080E2CD4F10030E9FEE84D16CF389F85F000DCD03B039 + 5CE8A3CC22C48C008C8BEC49740C9860B4D83D884DAB923077B64C123420B3A4 + 9EDD93F1346CF435E4579CF43B77E73B4FC26277C2386C1110C3D671F4EB4790 + B12659400405D8C601BE99009044982C043A0B3D8918B1A3477B1579EB538303 + 6CFDB686DDF7C12A0190A3A8F33BF72BF94AA8290BCEB40EC032E6F08C0F52C3 + D8BF2D6D6600B3CD4934DF1D574C56687466E1BEEE7C67F00079F171B6346B8D + 00D8515E1F10A230FD19AE265CF8F2873A28B6BF307340B091ABA81103B6979D + 22DA572E970BC98BA27047C41C549F6D0B2871913C4DB87E525205E5C76BC500 + 9206735163C4D2F83BD1D032081357D18F2FBD27E015285056A12CE7E5E0007F + 77517838311AE72E5168EED5A3BD57077ADC4E9678CB6AE1BAA3E4382AF25EF5 + 0D98AEC3B57049F947D04D5961B1DA840E67348F2235298E6BB36475E413F061 + 6903518773320C76BFF71C4CA30CFEBCD807876D0C05BF35C2351E15D063983B + 9F42EB5EB9C403C8E400241DAE456D407242A470CFB7598A3BE9D6151E43C2BD + A9888B8F17C643A512844CEC2AA9F4FA759634C4EB7B8E1CAB84E6C7B59380F7 + F7D6127538A79341F1D6D5E8338EA2F24C3B6C63360CD15771A2C91A10E2A680 + E9F6775B8F1649F7C508F7B40BDC4EB009E77DAFF10A761E6C2346880019BB55 + 441D8EAFF8A4257170D20E74F6EB85B10D2B97C3C13DB9F2EA3FD0A80611C22F + C05F347569919218033B23AE95C2432AD4FEE5C0FD4B562036F62ECFB82F844A + A5F206C8BFAE64151FBD281C9D9F579CB829807138B06C3107704E6EB90D6929 + 38D5D18AFCB24E242E7E14D10B63312BD4BBE8A62244802DBB8EB2CAEC970480 + BF68D750A2B1E6FE4B3850694242C223888A5E787D9943A57E11D5D5BF7B03D2 + 8B7E65CB73D70900BE559286C961C23F9A395EC9DDE10FE113509AFD8AD06048 + C3BDEC7CF288DB23315B2615CDE11106BD160CCD7815666D4D953760D3178759 + 65EEEBD09A691496A9A64D6E1837A0EDF27C2C8A4FC1BC0593BF7C2A62C848A1 + ABFB3C2421B4D7EEA8AFAB1603F667BF06A3956C059ECAF91931B12B10191523 + FACC8DD0533AA8D58D28CB4AC282F070AE639EF6204480B70A7E624BF3D60B80 + CF4A8F4E0B38AB1BC4ADB2C77077C203904D69B37C58860D9EE4CF3E982C54DE + 853E35EB46F474777803DECCFF9E3D90BF91AB01B2371D9AA1B171CF41EE0565 + B908E12BB93BDC08998C4147C9BB620035C2A048718408C1C739831E61B7A47A + 1023433AF46A9A7C26F7E09DD758FE1F92D771FC46CE77ACE2D3B705402061E7 + 1A53FABE43C24A84CFBB0D83972FF84D7E63FC27801B1166731894990F1125F7 + 090838B38FF865D766B2D7A209C0BF50E415EE5A55F8210000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'MoveLocal_09_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000046F4944415478DABDD77F5093 + 751C07F0F7184E4360A8273F1CA1CC7EDED96975157475D74FD3334B8A7E789D + D765A4A32C090B04F2B2C8A328B494D846729D5E25DD99A60408E1A1D7195A49 + 5E9463818C26633F1DDBC08D3DCFC6D3B307369CCF1CDF8DAEF73FCFB3EFBEBB + CF6BDF7D9FCFF34CC0300C7C1108042049A1B29D219A3891452962C81E5F0651 + 6C0CAF80AFB6201A40D586078801F527D530DB9C2111FF0BE0F8392D9C6E2FFA + 0D361E625A00DA4BF64BA8B41698EDAE0062FD8A25889F2512440D28A8696376 + E53F0C273586B2BAF6B07377BCFC20EC2E0FCC563B87B00E8FE21FA303F9AB97 + 7288A8009B59C0A7130092C48962A0B7539308870BBD8343285D9B1D1D60D367 + CDCC9E3756708062456BD8B91FC996A3CF60C74F5D5AD82FBB03E33A8315D59B + 574E0F60737A88E6FB33601986466FE3CE5BCFA8A307C8AA8E32F2C2D51C60DB + DEB68810E5798FB07BC28B0FF7B542B1E589E903A24D89A2990FD8527B82E8BA + 1AF37A21992FC6FCA4789CFEA327A2C215B295DC716B4D23946FAFE103481ACC + 05BD1D8BD3C468FE4D0B13DBE196DF258D7805B62B1B515BFCD4F4001DDD0674 + B34DA6B37B00D4A88BACF0C655DC715BCD51D4953E131A305587D39A1CC8484E + 845A67C3B0D30DDB080583D581FB97DD80D93363882021016FCA8F1375380F4D + 63E76B8FC13242E3BCC6C03596ADFB3B30462545F433C42719D0B55B2608000A + 58004987F3351669AA983BF7B7D99C1D8D902ECCC6A2CC4C6E3C562840CCC455 + 25148E1F67088357E7D0F747A0D9BF6612F0FAEE63441DCEE3A151B56915FACD + 2368F9F93CECA31E98468C68393B1C11E29A80A9AEEF01E310D253E64CBE663B + 9C71C8895ECB002A0FA888113C40FECE06A20E47536E2C4C4FE1CEB583E6F1CF + E664E1327BBBADFEEE479CD67889106101E1A2655720835D0117CDDF2BEFEC3B + 88F673C02D37674122490F8C87423434340403649F1C61146F3DC9DD3ADFAF6B + B92660CCE34146DA5C8C52DEC0D8ABB9F7E194FA2F142954B8E9C67B909A26C1 + 8CD8E04D77358207D85879985116E5708070D119ADBCB15FFBD5F8B85E07A9F4 + 6EA4A4A68D2F73AC302CA2A9E98760405EC541666F492E07F0B54AD258DC16FC + AE991D54DC9F7088900079D1D35C8321CD095517CA6AD55C71F1DC64CC120979 + 737C08937190DDBC74D0C63CD6DC180C58FF413DA32C790E83360AE5B50D5316 + 378D9AF0E7C5242CCEBC1389F326BFF9D5884B6603FEEE3903410C157475B4B5 + 36F101D545CFC23C4CB6020F151FC0024916925316F0DEF3238C063DFAFA7E41 + 6DE112CC4B48406EF9C90082077871FBD78CBC742D07784F7E784AC029BD0ED7 + 89EEC5F5D25B2112F26F4276AB2950FCD1DB96723BAFB3BF8FF1237A7B54C180 + 17CABE643E2F5BC7EE01B2271D8AA6B06ED757F07A6FE7214215F7C78F108968 + A86A5EE1030C0E1A158A4344085F3A4C46C4CDCC0E201C97F4B8A0391BB27800 + EF19637CFF90826EC7CF177FC128DE7D8903441297DB8DBC3DDF702B91903807 + BA8B9D618B5F99FF047025C2668B83B2E00EA2E2210111570E916F2B37903D5E + 4F00FE05492A12EE41CBC4520000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_10_10' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004644944415478DABDD77B6C53 + 551C07F06F1FEBA05DB7E1960D984636836882C14754668C5110035174283E16 + 25469CA38B0FE6869BDB429C4E32450105DCDAC2023E504C0808651B2E236331 + 0BCC44304E680AD8D6BDDAB55DED6B2D7D5E7B0F6B47B9A53BED8CDF7F6E7B7A + 92DFA7E79EF3BB2D8F6118B0E1F178A04995A287A19A389905F959903D753744 + 423EA7005B9B970A605BF9A3D48083BD1A986DEEB888FF0570F2F741B8BD41E8 + 8D360E6246007F90EE4EA8072D30DB3D51C4FA958B91314BC44B1950D9D2CDEC + A8580EB72F8486B69E8473B7BCFE18EC9E00CC563B41589D57F0F7980315AB97 + 10444A808D61C01793009A88457C18ECBE2984C383CBA3FFA0BEB43835C05B5F + 7632BBDE594900B5F2AE84733F953D01ADD18E5F0606619FF046C7478C56ECDE + B86A66009B3B40353F92618B133A838DBCEEEAD7A40E906D3BC6B456AD2680CD + 7BBB934234953D1EDE13417CF27517E4D54FCF1C906AEAE49D5C40B5F214D5B9 + 0A0583C89B2341B654823F34FAA40A37CB5691EBFB2DED50BC57C205D03418F6 + 9B678B8550F5EBC2F7D58592871725BD028D8A76286B9F4D0D607178919B998E + DEF346182C769CB9300C8FD3415778C393E4BAB9E518DAEA9F8F0F98AEC3D927 + 7CC89288A019B161DCE985C3E5212BB1E2FE8590A4F3A9207101EFB69EA4EA70 + ECECCFCA97C1E2F2436FB0C2126E2E957B7A11F26527751B32B28D18D829E345 + 019561004D87635B6BD66C21D2043C82603BDC9A2DED28BAB5180B0A0BC91C61 + F833FEE4A91208AE5ED304B1AB73F8A7A3D07D533205787BE789A43B5CCF393D + 5C1E2F0C4E13DAFBAD49216E0898EE7C5B5C01E46608A3EFD90E376472426B19 + C6F64317A9111C40C5761555870B04FCC8CD92C01DE4C3ED7292B14DA58FC0E3 + 0FA1F9DBE338A30B522112021265DC3E819C30205EDE6C3980D317D270C7A2A5 + 2828B8393A1E0FA152A96201B2CF8F32F24DCF9047E7476D3FDF10100A042096 + 664210F245C7AA5F598E3ECD79D4C8D5B87DE183983BAF0069C2D84D773D8203 + D8B0F508A3A859430089E2767B38637D97D468DCAF4551D103C89F3BEFEA320B + 0509111D1DC7630165CD8798BD756B09806D95B4B1782D38A793C4148F241122 + 2EA0B5E63972B669734A3D8006A58614CFBA290FB34402CE1C16611A1B85DFE7 + 8FD998273ADB6301EB3F3EC828EA5EC4A8CD8726A56ADAE2A62B26FC39948DDB + 0AEF4366CED437BF1E316E36E2E2A57EF0F8BE98D3D1DDD5C105ECAE79016627 + DD0A2CABFD01F30B96222F7F3EE7B30862CC688056FB2B94558B912395626D53 + 6F14C101BCDA788069AD2F25800F5B8F4C0BE8338C60B6E821DC5274274402EE + 43C86E35458BAFB86B09D97967F55A2682B81CDEB83180971BF6315F35AC239D + 8E263EBF0FEB767C8760F01E0E225EF148220891C80F75CB1B5C80D1E147B3FC + 301582CD69D318C4E9C5518463DC80BF74BFC52D1EC507420CFB0F29E671FC52 + ED1E46FEC16B04904C3C5E2FCA767D4F56429A39072343671316BF36FF09E05A + 84CD2686A2F25EAAE2710149578E931FB796D3FDBC9E04FC0BD0330BEECED1AA + 620000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_11_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E14944415478DABDD77B6C53 + 551C07F0EF6D47C1B10142B231A6918D00924C514980F907F185421418823C42 + 08810DE812853164736B4074922971A080EB03160241C564E1B1B207CB162006 + 08264C93616A0774D0B1F5B9D107B6B45DB9AE87B5DBE55ECBB9B7C6EF3FB769 + 4FF3FDF4F4F4D79661591691300C039A146B2FB0540B0733397D2C941FBC0245 + 928C5710E966A400AA36BD410D3879C90887CB2788F85F00AD7F98E10B8471C7 + EAE221120284C274EF84C1EC84C3ED8F21362CC841CA280523195054DDC2EE2F + 7C1BBEE023A86A2EC45DBB27FF4DB8FDFD70F4B909A2CFFB10776D1E142E9A49 + 1092005B0700DF0D026892AC90C1E20E0E213C7EDCEAB98FF2D5B9D2001F7FDF + C81EDCB280004A35CD71D77EA37C1726AB1BBFB69BE1FE3B10BBBFDBDA87435B + 17260670F9FAA9D64773CFE945A7C5456E375F334A0728ABEA5875F12202D879 + A44514A2A2E09D813311C6D7C79AA1D9BE387180D494691AF980EDBA8BA2265C + C6F814DC365B4415572A1792EB67D5F5D0EEC8E303C44EB87B0E2FD6CC7F59F4 + 0EECD6D64357FA616280E8846B6D33C1EFF5D0156F7E9F5C7756D7A1A6FC2361 + 80940967ECEA45DEBC1C8C1E29A37AAE20609BBA55F284536A9AD0EF4B13F536 + A48CB3A2FD809289018A06005227DCD23DF5C87E211793B3B2C863497206B2C1 + 4F955CFEF83A42CEDD9D5367CEA2F378DE10E093034D92279CED810375571CA2 + 10FF0A903AE1CCF72DD857DB418DE0010AF7E9139E70AA9A5A5CED085121E202 + A426BFEA287EEF1C8D17A7CF4566E673B1FB85107ABD9E0B507E7B96D57CBA84 + 1CAC2F6BCE8B2ADE95FF1EAE74DCC00EF55F9836750E266664624412F7D03D89 + E00136EF3DCD6A4B961280D85C36FE89128D01D9D9B3913E31E3F13627C9E322 + 1A1ACE71010595B5EC91B2E504101995B471069C64DB879747130F210850972C + 83F34188BAFCA2A11D2A9D91948F1D9F86510A396F4D0461B7F520140C710E66 + 53633D17B0E1AB93ACB66C257A5C4154E8F44F2DB73FB4E346D7384CC99A8531 + 13865EF993885E87151D37AF819105399F8E96E6063EE050C90A38BC743BF056 + E9CF9894391769E993788F451136AB0526D36FD015E760426A2A96575C8A2178 + 8075BB7F64D5E5AB09E00BF5E9A7022E5BBAF18CE2753C9F3D030A39FF4BC8DD + 678F95CF7F692639796D774C6C1471EBA6810B58A33ACAFEA05A3B7006E8E640 + 3014C4DAFD27100EBFCA43089547134528142118AA37F201564F08959A535488 + 48AEDA6D481E991B43787A2DB8DD795DB03C86EF7FC446FE2171BE8E57951E66 + 359FAF270031F107022838F813D989D431CFA2BBAB2D6EF9F0FC2780E108972B + 19DAA2D7A8CA0501A29B05F2CBDE4D743FAF0701FF0015C3E5DFC1F62CF70000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_12_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E84944415478DAC5D76B6C53 + 651807F0FF69B782B07119913186814DBC2528181360DF140121082282488831 + C2902E51C1219DDB824EA71990A1DC5C2F300D261A3E1826D46DD86C8145858C + 840DB3692D9BDDDCD8D6B55D6D77E975EDEBFAC229EBCE697BCE59A2FF2FA7E9 + 79D3E777DE3EE7392D4308011B86619028F9DA2B24E1A27159943E13CA179741 + 9124E37C78B836230570ECAD670503CE37986073BA7911FF09A0FE5617DCBE20 + 3A2D4E0E6252804050D83761ECB2C3E6F24410BBD62D41CA54052319B0BFA28E + 7C91F73CDCFE108A2BAFC45DFBD9EEE7E0F28CC2E670518463C88BBFFB0791B7 + 7129454802EC1B031CBF071092690A19FA5CFEFB88410FDA7BFF41D18E1C6980 + B74FD49253EFAEA380028D21EEDA23CAB5305B5CF8B9A50BAE115FE4FD1E8B03 + A7F7AD9F1CC0E91E15B4036CEED887D0D1E7A4AF0D8D26E900E5B14B449DBF91 + 020E9DAD138528CD5D3DD613411C3E6780E6C0262EE080EEAAA821939196829D + 6B9EC203C9325190424D6D6C80D821D3F8C71D783D6E41EBCB94EBE9F1838A6A + 680F6E9E3C801D32A6EE01BA134253A2AD86AE604B6C80942153DF6486776418 + 2414FBF62CD9BB811E0F555C4265D1362EE03D75FDA4864C7B8F03DB562DC3F4 + 29F17B222660FF1840CA905955780EDEE107057F05E1A4CCB2A0E5A4928902BC + 73F2B2A421535ED58CEC853958949545CF25C919C8EEDDD272F9DD63B23C7A57 + 2EFC70111DDF6CE607881D3275AD2D28D0FD260AC10BC8FB5C2F79C86C59BB18 + B9E5BF0846240448497357A760042F40597E9168DE7F8936D627953F892AFEE1 + EE1770ED762B0EAAFFC4E38FAD4466E682C8393E845EAFE702F61EAD225AD5CB + 142036BF9A7E874A63C4A38FACC0BC8C4C24274537DD44042F20B7EC7B72B670 + 2B0584A795D0D87D7634774C4776F672A4CFCBB8BBCD49F2B8889A9A1FF9016A + D52BB00F070417BF6A6C41B1CE14559C4D3C042F60D7A7E789B6703B7A9D7E94 + EAF4098B5BBD56B476CFA2C567A6CDC554859CB3268CB0F6F722E00F4435E6E5 + DA6A7EC069D5ABB00D25DE816B6DADF4CA1FCE7A0633E6DCBFF28988019B05B7 + DB1AC1C8FC5177479DA1860B78A3E45BA22EDA41011FABABE2021A3ABD989FB9 + 1273D3E773CEB1887E4B1FCCE61BD0E52FC19CD4546C2D6D882078013B8BBF26 + 5F16BF3ED60389E7C0F6A35F21187C1A0F653F01859CFBF07139AC91E26B9E5C + 4A3BAFA9D34C58447B9B3136C032184099E64242C4756B3FA64DC9E120F88AB3 + 61110A4500C68A3DD180D70ACE10CD476F528090787C3EE49EFA2E6A270607FA + F057C74DDEE26CFCA32112FE87C4791C8B054C44A4CE988D9EEEA6B8C5C78717 + 20B8F2B8844808B7864710F4A761F16C1B0CE5AAC43FAFF900FF47FE053054D6 + DF1409DFC70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_13_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003EB4944415478DABDD77D6C13 + 651C07F0EFB55B6593C1700903A691CDA09080434894F9879128CA401C2A4308 + 310A4CE9128539B4736B88D369A6662AAFEB0B2C46A3667F18E6ACDB4833DEA2 + 20236123D9485386DDDCD8D6AD5D69F7D2B75BFBD81E5CA1F4EE7AD711BEFF5C + 7B7DEE9ECF73F7FC9EBB528410DC198AA2209452DD6902095998391BCA579643 + 91248B3971B86F2A11C0B7EF3D2F1A507FD60C9BD3CD89B82F809397FBE0F605 + D06B75C620A605A003E2EE84A9CF0E9BCB1341EC58BB14336728A8840125B5AD + E4FBE217E0F607A1AE3B2DD8F6CB9DABE1F24CC1E6703108C7B817FF0D8FA178 + 432E834808B02704D87F0B2026A90A19865CFEDB88310FAE0DDE40C5D6BCC400 + EF1F68218776AF6500655AA360DBAF952FC16275E1AFCE3EB8267D91FD035607 + 0EEFC99F1EC0E99E127505D85CB78FA367C8C97C36B699F9017BF56724D57930 + 10C0144D8B6A5B55F462684E04F0D58F4668F7BECA0F905AE7D76DE3D8B6E649 + A424CB441D53AE6DB97700B6CE4FB55BE0F5B805DB562BF399ED27B54DD07DBC + 511890489D9BFB4751B87A5968B1119E4795BA26E8CB5EE7067CA83939AD3A3F + D7D50FEFE4044830B64C2B77AD67B6FB6AFF405D452137A02404B81775FE4EFE + 0ADE6304011F1C3C21B9CE0B3E6F44D09F2E0ACC6666BA159D0795142F404A9D + AFDCFD33721ECDC3C2EC6CE67B929C82ECD67A2297DFDC26CBA32BE4F8EF8DE8 + F969632CA0F83B03D1946E6000FB8EB58A02DCF08EE29FABB4248428809474F4 + F5A2A8E66FD1085E80B2A691683F2A6000E105434A36AF5B221AC10BD8F54D03 + D1A95E6366B6D49C335F814A6BC2E22756212BEBE1C87E2E84C160E0061455FF + 468E956F6200E105436CEC3E3B3A7A1EC4E38B9EC1BCF959484E8A9E74772304 + 011AD51BB04F887BC08473C6D409B5DE8C9C9CA791396FFECDCB9C2417443437 + FFC90DD8F1453DD195BF8941A71F557A43DCCE47BC23E8EA4F8FEA9C8D104210 + 7058B519B6F1F857E07C775764E4B31F9A8B190A794C9B3062647810B49F8E9A + 98275A9AB8016F57FE4234155B19C0679A06FE7B4E3B98913F96BD12B3326E8F + FC6EC4A8CD8AABDD6DA064FEA8EA6835367303B6A97F2047D46F85E680F03AF0 + 72453D1664ADC2DCCC0531BFB18861EB102C968BD0972E45465A1A36559D8D20 + E202AC6334AAB5C779011742234B513C8B47729640218F7D11713946229DAF59 + 96CBCCBCF65E0B6111D7BA4DDC802D654789F6D3ED0C40281E9F0F45877E4520 + F0540C82AB73362C42A1A061AA7D3771001F626C7408FFF65CE2EC9C8D7F2A48 + C2FF90381FC76140DC9EEF48900471796212A90FE4216DD61C0CF4B76351C600 + 8C352A2ADEB109BD967365C2EB27CFA98FC2E94C85AE6405EFC84501EE77FE07 + 9250DCDF53A82FD90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_14_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003EE4944415478DABDD77B6C53 + 551C07F0EF6DBB8263639345C6184436838F04043551F68F5104025190A74816 + 83E2942E51990337B786084E33354379B93E605924C1F00701B16CC366084434 + 4EE3201930E7663BBB47BBB5AB6D37FABAED0EDD8116BADE7B7BDB2D7CFFB9CD + EDE9FD7DCEB9E7D7DE3284108C0FC330E04BA9E602410299979D01C52B8B2197 + 49622E3A569B4906B0EFDD1744034E5CEA80D5E1E644DC17C0F9AB26B87D4174 + 5B1C31880901D8A0B83BD16EB2C1EAF44410DB562E40DA54399334A0A4B6997C + 53FC12DCFE5128EB2E0816FFFCED17E1F40460B53B29C23EECC57F032E14AF5E + 44114901768400FBEF00C424552E81D9E9BF8B7079D0D5FF3F2AB714240778EF + 401339F4C14A0A2857EB058B7FA9580183C5895FDA4C70DEF445CEF759EC38BC + 63153F60A7F66242AD9633230D6FAE5808994CCA3BA6D7360CA3D9415FEB5B3A + E203126DB5961BBD08B0ACE0B8AAA265A13D11C417DFE9A1DEB966F200E156EB + E81942E1F227F1408A44707C85BA491C209956FBB9D500AFC7CD39AE5AB18A1E + 3FAE6D80E6A3B5FC800F55E727D46A5D7D766C5ABA18D3A670AFC41E4D03B4E5 + EBF9012521C0445BEDD7EBBDF00CBBA20B6F7F991E77D7FE88BACA4DFC80F70F + 9E9B9456ABDCBA94F333A2010E7740D40A14ECAA8777E4215163C349CBB4A0ED + A082E104147FAD23AAD2D514B0FB68B3E085020116FA1B43C87FB800F3F2F2E8 + 39999481E4CE9799547AFB98228DDE0FA77E3803E3B1B5F1016272C5D48DA29A + CB092104018A9A3344BDEB55BAB13EADFB4914C2E571E0776350344210B0FDAB + D34453B68E0212C9DF6693E895100414559F24472B3652C058CF8A8DCD67C315 + E3343CFED812E4E6CE899CE742E8743A6180AA6C036C23ACB8CAA15C6C6F8352 + DB8147E73F875939B94891456FBAF10841C0B6CF4E104DC566F43BFCA8D2EAE2 + 161FF40EE25A4F26F2F39F45F6AC9CDBCB1CFA65144234369E15061C2E7B0DD6 + E1F82BF05BE7353AF37B8B87238410046CDD739CA82AB750C05ED569FE7BCEDA + 2333CF98311353E5B1CF036388C1817EB07E366A639E6B6AE007142AEBC9B7CA + 37427B80FF7BE04FC3753AF347F29EC1F4ACBB331F8F18B25AF04F670B18893F + AA3B9AF58DF10116178B6AF5294EC0E55E16B373976066F6EC98F7C288018B19 + 06C31FD0962E40567A3A36565D8A200401AF971F21EA4FDEA200BE14D6D42318 + 7C0A73F39F805C1AFBB3EBB40F468A2F5FB888EEBCD66E030923BA3ADB2706F0 + F87C283AF43D2782AB783861845CCEA2BDF61D7E004464948CE2EAC84DA44E29 + 88205C4366FC6BFC0BF3B3FAA0AF29E37CBCF60746C9D83FA4A41ECBC767C4EB + 27CF2B8FD095489FFE20FA7A5A3967CE954901DC8B703852A129795A547141C0 + FDCC2DCFB8E1DF089862D90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_15_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E94944415478DABDD77D6C13 + 651C07F0EFB55DC585F1E212064C239B413401514C9425C6F8066141141154B2 + 1810A7747F2873D3CDAD12D169A666BE04717D81856882C1848058B7613304E2 + 4B04E342B29939871D6C6CEDD6ADF4BAD176BD5E1FDB8376BB5DF7DCD36EE1FB + CF35CF5DFBFB3C4F7F777DCA1142902C1CC7251D2FB39C4AFE8629B224672E0C + 4FDE0BBD4EA3F8C0586D2E1DC0A7AF3EC20C387CA6136EAF3F29E286004E9EEF + 817F4CC44597578198164010D9BE898E9E21B8F94002B163DD72CC9EA5E7D206 + 94D6B790CF4B1E873F1481B1E114B5F8872F3F0A3E1086DBC34B08CF48109706 + 7C28D9B05242A405D815057C711DC0924CBD064E3E348EF00570A1FF0AAAB716 + D001E5D6D329757B4414111604D9D8C786B570B878FCD2D603FEEA5862BCCFE5 + C1BE5D85EA8054BBFDB27B04DBD7AE804EA7559CBF3C34826EA7577A6D3FDB39 + F38078B7FFDCEA50AC443C35C54F447B42C4475FDB612E7F8A0D904EB777F60E + A368CD3DB8394393F4DA2A73B33AE00DD3C96975FB6FEDBD180BF865D7D51A0A + A5E3DBF58DB0BCB5910E288D0266A2DBB717AE525CBBC7D2086BE5263AE0B5BD + 27C897AFAF930095663BB538ADDB43C1C078E19DEBA5E3EEFA1FD050BD850DE0 + F5879956209EC9DD5EBDED31C5354C8092CF6CC454B64102EC3ED0422DDADC7E + 0962302725E8EC792EB4ED35704C005A0242040F957F8BFCDB0BB0242F4F1AD3 + 693968AE3F49B5DA6BC70CADFC8E38FAFD71747FB3716A80A1EE3831BFF9B4D4 + 58EF37FC4445F8025EFCD12DA6845005ECFCE418B1543C230158F28FB307C575 + BF32235401C5B547C881AACD122076DBB0C417E671CE01260413C054F12C8646 + 05A6E2B19CEE6883D1DA89BB96AD466EEEAD89F164089BCD4607ECF8E030B154 + 3D8F7E6F0835569B6AF1C1E020DA7BE7E1CEA50F62E1A25C64E8E44D3719C104 + D857F11CDC23EA2BF07B57BB34F3FCFC0790B370D1B5658EFE22D2104D4D3FD2 + 01DBF61C22A6EAAD12E03DD3B1298B0F091E69E6138BC74343A8028A8C07C957 + C617A33D30F573E04FC7DF8999CFBD650166E995FB80186270A01F42489035E6 + 89E6463680CB27A0D67C5471FE0AE1A599DF91773FE6648FCF7C3262D8EDC2BF + 5D67C16942B2BBA3C5DE4407BC50B99F98DF7D490224CBFA77BEC3E2DCD55890 + B358712E8E187039E1709C83B56C39B2B3B2B0B9E64C02316D4051DD4188E27D + B82DFF6EE8B5CA8D07EF194C145FB362A5D479AD171D248EB8D0D5A10E002511 + 12C1F9D1ABC8BCA9408188175F9ADD077B5D856C7B1D47E8F5023AEA5FE152DE + 964FCC6830441E36EE97AD846FD889FFBAFF92CD7C7242E10889FD434AEB7F01 + 0D9135673EFA7A5BA9C52766460013115E6F262CA5AB988AAB026E54FE07BE52 + E6DF5BA25EB20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_16_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003EA4944415478DABDD77B6C53 + 551C07F0EF6DBB8A0B03748101D3C866104958504C94FD637C812C0822A2480C + E135A5FB439D0337B78AA2D34CCD1483B83E60124C4C303120D60D6CC62B2A66 + 10179331E71E7673AF76EB567ADBD976BDED8EEB19B7ACAF7B4F3BC2EF9FDBDE + 73DADFE79C7EEF6DCB114290A8388E8B395762389FF805716A51D66C689E7900 + 6A9522E6CD42BDB954009FBDFA1833E0F8C536D89D9EB8885B0238FB670F3C63 + 4174DB9C318869018420DB27D1DA330C3BEF0D2376AE59869933D45CCA80E29A + 0672A0E84978FCE3D0D69E976CFED1AEC7C17B03B03B788A70B87DF877D085A2 + 75CB294216B0C77821E9C06D5D9517DAE6F0B974B50256DE7F03E1F2A273E01A + 2AB6E4B301920D5CE35F7D0808027DFE8966352C361EBF34F780FF6F2C3CAFDF + E6C0A1370A6E3E400C5C5BEF08B6AFCE834AA50C8FF50DBBD16575D2C7E6C6B6 + E400A904EE5C9325BC136255163E359189203E3E66867ECF7A79C09BBAB3D30A + 5C67BF03DB0B56E0F63445C4DC72FD693640F104E08BEB00968A17B8DF5AFA30 + E6F5D0F12A4D013DBE5D5307C35B1BE401AF1D3C43BE7C7D0D0594E9CD92CDA5 + 0257B1ED8988B9FB0D7530966D6407383D01A61D102B3A707E9F77B2F1EEB5F4 + B8AFE647D456BC200F28FADC447425EB2860DF9186A4105303F7EEAEA723C652 + 024855FEDEA3F08DCE4D0A38738E0DCD07359C2440537D8AE8F73E4B83F541ED + CF71E78C07026868E7917B4F3E16E5E4D0732A2507C5F5DBB85239794C53465E + 09277E3885AE6F364803767F7A92184A9FA300A9FADBDA83C2EA5F934230010A + ABBE2747CA37514028B952E50AF0B86C01338219A02B7D1EC3A30258AAB9AF1B + 45072E312198003B3F3C4E0CE59B31E0F4A3D26892050CF98670B5770EEE5FB2 + 12D9D97785CFC743984C2636C0A1D2176177CBEFC0A58EABD01ADB70DFE24730 + 7F4136D25491A18B463001B6EDFF96E82AB650C0FBBA9309E70D0B0EBAF2DCDC + 8791357FC1E4364F7C134A21EAEB7F9207BCAC3D4ABED26E9DC840E2FBC0154B + 0B5DF9D4E66249219202D85C02AAF42762C6AF113EBCF2D977CEC30CB532664E + 0831343800C12F4404F3CCE93A79C04B658789FEBD1D14105DBF77B6A0F2EB76 + DC9BF3106665DE58793462C46E437B472338853FE2EA6830D74F0FB0F69DEFB0 + 307B25E6652D8C19131183362B2C96CB30962C4366460636555E0C23980189C6 + 9ADC6EA4DF968FBB7397421D759B0D15EF18A2CD1767F6C35C5D4A93D7D46D21 + 22A2B3A3551E10EF67B958A33E3F79547B18C1E0833108B17968E5ABF29647BC + 898850AB05B4D6BC923A2011C23562C53F5D7FC46D2E963F304E42FF9052FA63 + 2285C8987507FA7B9B249B4FAD9B02988A703AD361285EC1D49C09702BEA7F86 + 9CE3DF7E1D0C730000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_17_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003D54944415478DABDD76B4C53 + 671807F0FF6969A3C6EB4C44C565C2A26E89CE7989D32F7353F112A773935D8C + 31C47B9BCCCB708341E34499F19239172FF4A26CD992453F189DEB40C7746A4C + 58D4484CC030040B8240B1507A8A7239E79457FAEAA9B43D1CDF5374FF2F70CE + FBB4CFEF9CE7E5D0728410A885E3B8B0E334FB25F51744646CFC10983E781BC6 + 381D17B916ECCDC50238B0E13D66C0C92BE5F0F8DA1411FF0BE0E2AD1AB47506 + 50EDF64521FA0410036C9328AB6982876F0F21D62C9C8881FD8C1C33609BE3B2 + A699770502A1DF77AF7D1F7CBB048F97A7086F6B07EE35FA615E3299229801B1 + CC7C55F2A4E0EDC600A30E0DBCF00CE16F47657D0BB256CC7A390079E6FF14BB + B0237536EE37B5E26A490DF8479DA19A3AB71747B62CD2068865E6E5B5CD5899 + FC16FA1B741452D5E0A33585D7CAD9015F5A2F9283E6B96813BA60C9BBA45AAB + 34F3A2D25A48A248D773D6CDEB5E0F60EF2F85B06D5BCA06D8DA0DF8F1298025 + BDCDDCBC747AA826D3768E1DB0E9D0797278F3420AC8B015AAD6EE33CD87CBCD + 2BCE5C9244EC312DA2C7DFE4E6C3FEF5326D005F9BC47407E444CE3C2B754E68 + 2DDB9E0F47C6C76C00F30F4E624D5B4201DB8F5FD084E839F32E4942F6C6C5F4 + FCF6DC3F9097F5897640AC09CEFCDBB50B42C79A00A6EFCF12DB571FD28DB52B + EF2FC59ABFFFAB47A0235E136AE050374A0E99B8E70236EE3F43ECE91F518052 + 0489604EC60924BD360B631313E9B9383D07DDD3FF217AFD939F06BD2EEC75A7 + 7F3F8BAA5F973D1FB06ECF29723C338502829B47297E89C7751734213401ACE9 + CBD1F45054AD2BB95F0DF3C12266043360CD7727893DF333D4FB04E4389CAAB5 + 2D520B6EDD33302134018EA47F0A4FABFA1D08A6A8A214164739DE9830130909 + 6342E795104EA7930D909AFD1BB166ADA0809DD633BDD635895E94D60EC5F871 + EF60E4A80418E2C2375D248219B0D2F233396A59D5BD077A7F0EDC70DDA6579E + 943403F123473DB9CD717A554441C19FDA006E7FF7B3DC763A7AEE84A757DEB3 + B91C350433E0F38C63C4B663350544E6DFCADBC8F9E90E6D3EE49511E867D447 + D504110F1AEB210A62D8C63C7F2EBF6F00B9F9EB89D33078F8B32B8F44347BDC + B853710D9C4E08FBEBB85058C00E509C7BB301A313666244FCE8A83519D1E86E + 80CB751DE386D761EF172948C9B912423003223F96CB99917E94740A53F06AD2 + 9B30463C6683E1BD0F687347DA44244F9A4CDFA4B8DA456444654559DF000F3B + 04F2AEE5180281688452733932C268145196BB3E76406F087F7303EE56DD546C + 2E4790BA48F01B524CDF8CD41083060F435D6DB16AF39E7921809E089F6F00EC + 5BA732356706BCEC3C06054ADEDF5CBE56120000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_18_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003CF4944415478DABDD77D4C1B + 651C07F0EFB5D0CC65309438D8BA45A819BA64065F12B6FDE3745307897373CE + 97C52CC4B169F9C3894C41683698CC308D3A031B7D61B86062C21F66382B3009 + 842D8B2E685C9600125ED6F252A0ACD0F60029F4288FEDC195BE519EEB367FFF + B4BDE7B9FE3EF7BDA7773D861082958A6118EFFB5C6DCBCA3BF85452C25A285F + 7D1AB228091338E6E9CD4402F8E6FD17A80135D7BB60B14F8744FC2F80E6DB03 + 989E75A1CF6C0F4250034EE8AE898E3D2B2315D152069D0363B0B00E2FE248FA + 56AC5925634403C4C6DEFA8F0945993BE1E0E661B1B23CC23A3983FED10964EF + 4DE5110F0CE01BBB2709D631B7849870A077D886C2433BC4033817DD99F08DBD + DD388AB89887C0FE3BEB1D1F325B71FEA30C7AC0C7EA66722E7B37A69DF35055 + B5849DFB45D68BFE47EC8EFDCE881D7BB6A5C064B6F1731A5BBBC40172DC80EF + 160134B55A26C108EBF48BFDF70E138ADD6B8275B870B6BA119A13AFD1033E2C + BB4ACA8FA7F3807C4D63D8B95F2A5F81C1CCE246DB4050EC25475FE2DF17681A + 2203D8A7E7A81210CA343609A33B7E217601F059451DB49FEEA707647FAB27EA + DCBD3CE0E4C52651084F5321F653597BF86DC5DA3AE8F20F440688B43CB10B80 + 9315BFA0AAF04D7A80F2EB2B44F3C93E7E617D5EF59BA8C642D3D3950D283A96 + 1119E083AF6A8936EF751E10AA7615546366EA5151B0357166B49529192AC0D1 + D29FC8C582833CC073FE02ABA99B85E2B11D484A4EE63F47B9EF0192C51B9854 + BAF01A2D95F8ED73F9E72B30FEB09F1EA0CE7B0363535CC8F136531FB2CFFD21 + 0A210A70E44C0DD116BC8D61BB13253A7DC839B6391B6EF74753234403CEE7BD + 05CB2417765EBB3B89E3E537A910A20099C53F1275E1211E705A5DBBECBC31CE + 8AF6C1383CF9C476C8E51BBDDB4321F47A3D3DE05DD525724175D8BD0696BF0E + FC65E8804AD78594CDDB90B85E8EE828FF4517888808609EE050AAB91C346E23 + 2C7FE40A451A1212D72FC41C250D8BA8AFFF951EF04E7E25D114BDC70302EB66 + 6F074ABEEFF66B2E5438C47D01F8365FFBC83AAC924983F6F520EE8E0E837372 + 7E0BF36A439D384050ECF376F48CCBF178F273888D5F3AF240C4B8C58CEE9E56 + 3012A7DFAFA3A9B19E1EE0FBB75C2845D625B241BE1DEB1236048D098851F308 + 0C863FA1CBDD8AF898181C2CB9EE45DC33202DEF0299753E834D8A2D90055C66 + 3DC55AEF7A9BBFFC542AFF05B7FA0C4440F4F674DE1B606AC6499E5755C2E50A + 46846A2E948090C93874561C8B1CB01C62627C04778C7F876C2E94736E9E789E + 90227A340B8788897D184383B7C236F7ADFB02F045D8EDABA1CD7996AAB928C0 + 83ACFF000C35C3DFB77BF4650000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_19_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003D04944415478DAB5D77B4C53 + 571C07F0EF6DA12146D0E9226A314A97F94874F84814FF998F39956C6E3EE78C + 3166E2A3FC31E75061D0A83834B865BAC5077D20339A18FD63D1B90A284AD4EC + 0FA646830125082B08088542E92D5AE0B6E5D87BE556FAB0B9E7A2DF7F6E73CE + B9FD7D7E37A7B7F73284104809C330C231DD784BDA090399143F02DA2F674215 + A56082E7F8DA8C1CC0D1ED0B25032EDEA981CDE10A8BA002EC36DDA6EE3C3525 + 09E54F9AE1EAF3A2C1EA08415003E474BEE09304D8D81E3F62CBF2E9181EA362 + DE3BA0ACA251285AD3D489A573260A087B772F9EB53991B6224940C802B8BDD2 + D6573776F83BE7110B7D57827571B03B7B50D7D285EC0DF3E9003FEACBC8EF69 + 9FC1C5F54357782BE2DAC3A98BC0F67860B3B3FECEFFAB6EC187713160140A3C + B7DA71F287143AC02E1FE08F0180940C5329D0CA726F10BECE2B2CED489E9680 + D2BB35F480EF8F5F2327762E17009986D2886B7FD12E85C5CAE2DFCA46B02FFB + FCE37CE77B362EC291B3A530ECFE4A1EC0E1F2485A2FA6B9A31BF5AD0EE133DF + 79EED625C83294D003D28E99893E7D8500D877FA2615822FCAF67885CEF3B429 + F829BF08C6BD2BE503E486EF7C7FEA32E4188B60CA5C4D07D0FE768518F67C2D + 6CAC9F0BAF5315E68BF23958508203DB52B02FFF1F1466AFA303ECF8F5323166 + AC120072C3779EB3E30B7980AD797F91D3596B0500FF45835356D70E6F6F3C15 + 66F8482B2A8F6B192A803E630D3A5EB803C6390FC1E2CC0BD04C9C8F498989C2 + 5894928162E0DF53A97C7D8C562A02CEBBF4F715D49F5B291DB0E5D04562CC5A + 8F1607875C933960AECBD3858A67D1540859809319DFC0D6ED0E3B5FD5DC809D + 27CA2523A8019B73CE137DF6060170507F39EC1AD6E34445B34A12821AB05177 + 869CD26DF2ED81B7DF07EE5B1E4367AAC1D429C950AB13FCE3E11066B3591EC0 + EA7423CF702964BE8BB0A86A1A89C91FCFC3D8716A4447056EBA600435E0DBCC + 026238F09D00084E79DD63E4FEF9141ACD5CC48F1DF7FA32472923228A8BAFBE + 1B40B8E26222216401422E7BBF03B59D6AA1F888516310A352869CC723DADB5A + E0E6DC011BF35A49111D407C2C1773A3F211D97EAC0A1F25CE41DCE8379D0723 + 3A6D563CADBDEB7B12E2027E1D374B8B8706D0A49E21E3D5C918133F3E64AD88 + 68B3B6C262B90753FA748C8E8DC5DADC3B7EC4900173334E913E6E162668A641 + 15749BE5C3DADBFDC53F9F91249CFCB0C14244445D6DF5D0002F7A39F2A9AE00 + 5E6F28225C71312242A572A33A7F9B7CC0DB10CECE56FC5FFF206C71319CA79F + F06F48B2DE0D232162E33EC0F3A687118B0FCE3B010C46381CC360DC355B5271 + 6AC0FBCA2BE890AEDFB35F150F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_20_12' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A84944415478DAB5D77B4C53 + 571C07F0EF6DB121061066E45537A17BB9C4C53D1206FF18373783990FE6DCC3 + 2CC64C9C963FC6186E3020440C5B70CBD40591B608332E31F18F45E73AD0300D + 1AFF602E197101C31004C6C3160AA5171894DBC7B13DACD5DB36CD3DF7CAF79F + D39E7BCEFD7D7A7AEEBD2D470881D4701C8762539BF409BE64A4AC807EEB4BD0 + C4A8B8D063FEDA1C0BE050C375A6E2CF68939014170B9B632E224216E0D8818D + 92C79FBFD18301CB1432D3922222961C70EDF610EC334EF48DDA83887DB9EB10 + 17ABE114015C1E6973BA872660E3E731B7E041D7C018458CD86650B06D3D4530 + 033E375C23270A36614EF0A2A2A92DEAD86FF25F073FEF86CDCE53847F25EE0C + 8E63ED53ABE8D752BE3B871D50E403FCF03F404A966B54B0F0C243C4F43CFEF8 + C702C1E944DD675BD8019FD65E21270B7329A0D4D81A75ECB7FACDE8B7F2B8D9 + 3904FEBF8560FFA8D54E5B4500C79C5BF21C7F4626667CCBEEA0AF5B6FF5C0ED + 76C178683B3BA0E0B899188AB7514065E3552644F5FE377D7BC283A36717574E + 31406ECA8C9741BC5E98BECC6307E8BFBF448C5FECA000FF895852A3DF42DBAF + EA9B29A0A174273BE0E0771789A9E41DBAB3E5A6CAD40C8FC783A6F2F7D801FB + 6B7E268D65BB28C07F22A6C207DFA66D65FDAFB4950D3094BC8B895997A8FF8D + B2B370CEAE6202C5255AD159ABE79800FBBE3E4F4C651FE0BE4340758339D8DF + 766F16BA3539C8C8CCA4EF63D41C54DCE23347AD5E6C97A955A2735DF8E51206 + 7ECA6307D495BC0FDB8C7805BA46065178B29D09210BB0B7EA1C3194EFA68023 + 868BA263BC7B1AB747349211B2001F559C21A72AF6F8F640E4FB408FE55FC92B + A108609D76A1C67821ECF814E1D1359C88B5CF6743AB5D1DEC8F84309BCDEC80 + 0F4B4F13E3E18F292034ED7D7750FDE35D3CF7EC6B484DD362598C78D385221E + 2B20505CA7CB424A6ADAE232C7A8A3225A5A7E9307085B76AF03BD935A51F140 + A2216401384EFCCBFAF7CEBFC981E35DB4F88A279211AB5187CDF123C6C7EEC3 + 25B8441BF3CAE566658040F1A7335F45C2CA879F3C143169B3E26EEF2D702A41 + 74755C6D6D5106D0E59F21E9DA6C24A7A4878D0B20C6AC16F4F7FF8986E27558 + 191F8F5DD5378208C580AC9253644178194FEA5E8026E436EB0F6F1F0F167FEB + C5F57462C7603F0920FA7ABB9501669D02D95071DAF7680D47442A1E4800A1D1 + B8D05DFF89B24D1809313D69C1BD81BF22160F44707B89FF1F12F3E33814108A + 884F48C2E87047D4E28FE6B1001E45381CCB612A7A4552715980A5C8030C6388 + DF73E473580000000049454E44AE426082} + end + item + Background = clWindow + Name = 'MoveLocal_21_80' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000B1300000B1301009A9C1800000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003614944415478DABDD77B4853 + 511C07F0EFDD6C88A8BD40AB15E5A21718BDC0EA9F287AD3CBDE454464A5F38F + CAB43415C9B0B0A217BEB6F9280A02FF885E4B0D334AFA430A8ACA424CF355BA + D974EE4E9BBAB99DDCB54D37C7D83D57FAFD73C6EF9E737E9F5D7EF79E8D2184 + 804F24E4BFE1B56056E878C8B72E86C44FC4B85FB3D766680037A257FB3CBFB8 + B2163A83C923E2BF005E7D6A81A9DF8A26AD61144210C062F56D5D4D4B07746C + AF1311B5291C81FE12861A7046F18ADC8A5D0B93D986D4A2D75EE75E3EB6066C + EF00747A9643E8BBFBD0DC6E44ECB6451C820A103708B8FD0FE04B044844D0B0 + E66184B117F56D5D4839B8920E7032EB05C93EB589032429CBBDCEBD2ADF8006 + 2D8BB7D52D60FFF43BF3AD5A3D724E6F160630980678ADFBD5D18D468D81FB5C + FEAE961E107B534D14F1DB38405A6105AFB519C7D70DF6841557EE954399B05D + 388036929565F400F9F5A74479760707B06FC42732E59BB9F17C5E0954E722E9 + 0031D71E1355E24EAEB369235D5582FCA45D7480E3990F4961F21E0E60DF8857 + E1982DDC9896F70C45297BE9018AC4DDE8E8B150DF014180A84BC54495BC1F6D + 063332F2D55CEE4D6327AC7DA1BCF6099CA04575969CA102E424EE83AE7BE80E + D8CF848D29C590CD5C895961615CCE4FCC40C40C9D3962F1D0384E2C72D9E7D1 + 93A768BC1FC91F7024FD0151A41CE40017158FB91C3B60C4A75F125E086AC0A1 + D4BB2437F5F0600FB8BE076A35CD38955DE5334230406BB42053F9C8E59AD1C6 + E24B5B804F086AC081A402A2BC709403B84755FD3764DCF98EF9F356402A9DEE + CC7B42A8D5EAB105388ACF9DB31C53A64A31CECFB5E9DC118200EEB92E9B0175 + 9D52C86411089D3275E836FB89BD224A4B9FD30118C6F5C7EDCBEACF24FAE657 + 97E28EF0861813C0C8E2E32785C05F221E35DF8EF8DDDE068BD9E2D2982FCA4A + 84011CC567872D43F0E4E16FEE8EE8D469F1BDEE1D1891D9E5E9A8282F150690 + 1DBB4BA64957202474DAA8390E44BB56838686F7C88F0FC7E4A020ECC9A87422 + 040322127349BF790966C81640E2F69AB507ABFFED2CBE7EE1226ED1C7A606E2 + 40D4D7D50803F4F499C9AAD40258ADA3119E8A3BC28190482CA8C93B21AC093D + 218C9D1AFC68FCE0B1B823CC033662FF8744751CBB3F86231141C113D1FAF3A3 + D7E223634C00231106430054714B7D2A4E0D18EBF80BABD86DDF283FC9BE0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003604944415478DA + C5D75F3054511C07F0DF8DC94CD30C33F550F4DE4B4D2F7934488544490623F9 + 6FF367C852F267D75218358BF567AF458D8A90488694A9FC79608A9732321E8B + 157665772D96FD73DABDD96D9776ED3DA2EFCBB9BBF7DEFD7DF69CFBE71C0236 + 12C67E82C8EC50989729E16EF54BA013D60D7FAACDAD780E4FF3AF13BA6D6757 + 1FB4DD792303DD04A1FF109A5D8FC89C309893ADD32A6E1C4E790B3416441800 + BA029B8F39C6B40F40FB90C271C4A5CB041092F91091AC702D400905641BADC2 + D9F101BF01BC67D054146D167038E980A39DDDFE4982D0641F1D71E199008233 + 6A119F1D4101709357D608CDC5B166014E69F6CD40C029E1A8F4A433F2519A00 + 826ED7A02A5624CC2FED04D0002DF7E30C00A1F3A01FA1B139242C91D41F493D + E86A6B63DBAF52ABDC664BE5037AA00900BBB2518C0133A7072308C2A61E10CA + 4004440282CF42AE34D8B887889D95331F7D01A77407A6B608172190AFADAD1F + 1757AECCEC2940B7EDC87488DA07483A5D226DDBBCDF00600AFA680E0131A450 + 214F7EA2BBDC1C60BB5FD802E0C6B969876BFBD2BA435A0727E1D3E4AC458455 + 7F633340ADB1AE23FABF4CC1E2D21A0C4FCCEC08B105A0545B0798F82E069174 + 7503211CD556F7AE61B88BF5FB690F416AF50754C2700785520399757D164F2C + 8A7107C9D22ACC4B5728C4CF25050C7F9D195B96CBCFD4A4FB8AF580BF3D8A8D + 81268014FE3B5416EF012BEB1AAB7AC0CE164024F98358902960687C6A9C9770 + F6041620B9F22DE2259ED7DEAC6AC8AA7D6FB17861AC077C9B93C2E0D8144897 + D70CDFFF1049A03CC993C00224F17A5045B217C856D556F5802EBAEB755A24A3 + 301AEDEDD3FB71122A53BCF10009A5DDA8EAE60590ACA820A7B6D76A842EF9D1 + E740AE504271433FF0537DF000F1DC4E54C5F485C56515ADE2C6C911F40099E6 + 8707603CE840FCB44BB0205702BBE60DBD1E88F3A25A96E035086E5DC603C416 + B72332DD1FC472FCD731ABBA0B6A33AEE04DC9620A5B1199711544DAF90047D0 + 45AB308771916AD9FC5750971548EB05673838EA5E0B22EF045200DCB0AB3AE0 + 514E101E2022BF0955670651B3E23C4127ADC2B90CBF0D403BD4B343F086209C + D380C8AC100A809BDCCA17F098730DEF22DC8D75012DC05EAD0BCC02F6625D60 + 11B017EB028B80DD5817D0066057360A36E05F87F673E07FE51757EA6F3FDAB4 + 590D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003624944415478DA + BDD75B3054711800F0EFC464A66986997A287AEFA5A6973C1AA442A2248391DC + 6D2E439692CBAEA5306A16EBB2C7A24645482443CA54D807A6782923B38FC50A + BBB2BB16CB5EFEED596CBB72D9F3D7FA5ECEEE39DFCEF79BEFFCF79CFF47C07A + 84731A10991502B30A35E0466EE52B78CAB941509F9D5D7DD06EF9C303DD04B1 + F1258CFD0C91D9A106C0FDEAD7B40AB36EF9AF012A5EC2F3FC9B4600556073EE + 09A67D003A80548EC32E5D6680D0EC7A44E684C18C6215BB039CF216682C88D8 + 167034E990A39DDD411141E8B28F0FBBF0CC0021998F11C90AD703D45040B6D1 + 2A9C1D1FB006E0BD80A6A2E86D014E69F6CD40C019F188FCB433F2519B018233 + 6A119F1D6100E0465E59233417C71A016267A11FA1B339222E91D51F4B3DEC6A + 6B63DBAFD16ADCA64B95031B402320E86E0DAA6245C2ECC25E000DD0F230CE08 + 983A2B8C20089B7A40280311100908BE8AB9F260D30E9901B02B9B8429802AE0 + 94EEC0D49FE02204CA9595D593D2CAA5A92D01FF3B4CD78023D321EA0020F964 + 89BC6DF375AB0276CB310330057D346F0131A8D2204F7EA2BB722F50330037CE + 4DBF5E76FF1195D22A14C117D1F49E11FF00B43ACB1AD1FF6D02E6175660687C + 6A4B04D62DA0006AAD6580F19F5290C897D711E2117D75EF1A86BBD414B0D5A3 + 78F37563426AF52754C27007955A0799757D3B162F8A7107D9C232CCCA970C88 + DF0B2A18FA3E35BAA8549EAB49F795620152F81F5059BC072CADEA2CEA809D2D + 8044F61731A750C1E0D8C4182FE1FC292C4072E57BC44BBCA87F5A6821ABF6E3 + 8EC50B633DE0C78C1C84A313205F5C319EFF259141799227810548E2F5A08A64 + 2F502C6B2DEA0015D47A9D94280C189DFEEFD3FB59049529DE788084D26E5475 + FB12C896349053DB6B31828AFCE80BA054A9A1B8A11FF8A93E7880786E27AA62 + FAC2FCA2865671D3C811F40099E68707603CEA40FCB42B30A75403BBE61DBD0E + C479198E2CC15B10DCB98AB7258B2D6E4764BA3F4895F8AF63567517D4665CA3 + F57E3126C714B62232E33A48F4FB018EA08B56610EE3B2E1C8E6BF81BAAC403C + 40D4831644DE0B340070835DD5014F7282F06E41447E13AACE0C32EC8AF3049D + B40AE732FCD601ED50CF0EC15B84D6980B6801F66B2ED816B01F73C18E80FD98 + 0B760458632EA005B0C65C401B805DD9244C01BBE55A755B6E69FC01347E793F + 6D57E2890000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000035D4944415478DA + C5D75D3054611800E0F7C464A6698699BA28BAEFA6A69B5C1AA442A2248391FC + DBFC0C596AF3B36B298C9AC562F7D85D352A424A32A44CE5E782296ECAC8EC65 + B1C2AEECAEC5B23F5FBB07273F2D7B4E56EFCD77F6EC77E67DE6FDBEFDF6BC18 + AC46544103AACE0A8169B50EF2456D4025F21801C4C811B4402D270C335FBBBA + FBA19D9E1BECEDC0B0B50F91DC3A8467871100BA9157F5021E73AF91007382CD + 738E311D83D03EA4751E746BDF0088E03C41784E3801B85BFD8A5262F68DC015 + 40E573785A70DD22E070CA01670787FD520C33E61C1D74E36F0084E7D4223C37 + 02A6D4CBB42BC0AD6882FAC2288B00970CC746C0E0946C4875D215F9E93600C2 + B21E229C1D6902E8A0107F4929714E62D00A80FF0C1A8A634980CCB52F0033DA + 1D92952A6B8FA41F74B7B7B3EFD11BF41E93659ADE3520090865499090134500 + E8467E793D3496C4938089D37D511866570B08B11006D180E08B8CA70A5D5F21 + 1210725B8C04EC68989EFB17401D34DD4FD8B0042E994E4CD30D1E42A0595A5A + 3EAEA85A98B008A09D795D6C0698AF9D994E31FB00A9C64B55E4DA6E01EC7650 + 3E07FE579000A6A89BE21260FD5A3DF216267B6A760DC04BF0306DD89D1F324F + 69EE93C267E9A44504E5255803188CD615A2E7EB18CCCE2DC1C0E8C45F11968E + E2CDDF6F01E80CD601467F2840AE5A5C45C8864CD97DC50C4F056D407AF54754 + CAF004ADCE085935DDDB262F8EF304E5DC224CAB1608C4AF392D0C7C9B189ED7 + 68CE8833FD15B40069C2F7A83CD10B16968D5655C0C11E40AEFC8398516BA17F + 646C849F74F6042D406AD53BC44F3E6F3AAE0C902DF9B06DF2A2782FF83EA582 + BEE13150CD2F91F77FCA955091E28DD102A4F03B5165AA0FA8170D5655C01CE6 + FD3A2E571318A3E9E7D3F5490A5569BEF40049651D4870F3022817F4902BE9B2 + 1A618E82D873A0D1EAA0A4AE0784E97EF40089BC362460FAC3ECBC9E52F2F591 + 2BEA043C2380DE2B19E3412B12665C82198D0E38E2B7D42A90E0438C6CD11B10 + DDBA4CE9782727C797B4203C3310141AFA7FC7ECEA7690B0AED003C41535239C + 7515E4A6F701AEA89D52622EE322317284AFA1263B98DE12C4DC6B42F89D6002 + 403738825678941B426F13DAA22FA004D8ABBEC022602FFA826D017BD1176C0B + B0455F4009608BBE8012C0167DC14EF36DDA17581BBF01EEF8863F4514821A00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000035E4944415478DA + CDD75D4C52711400F073D3E5D6DA74AB87D2DE7BA9F5928F4EC94ACDB4CC9C3A + 33F193FC98265AE60788963A6BA8A87001AD51696A9699D32C57F9F1A02B7D29 + 678EC7524C05131015E4E31FA092A828F736ACF372E1DEB39DDFCEFF7FFF7030 + 588BB87B2D08BF1306D2052D900D26B71D1E158463A6CF9EDE8168B7FCE1FE2E + 0C5BFF422D6E42FCDC7098556AA148D041A870212D780DD0062266A405602AB0 + 39F718DD3514ED436AF761AF4E2B400CAB01E179916600D928AC7D018F59D76C + 020EA71D707771D92FC63043FED1612F8E15209AF904E1F95166C05DFE2B4285 + 193742560135CFE169F1759B008F2CD766C0E094644471D213056AAD0051F922 + 841744C38C7285740758D52DD05842B500249E03C198C1E990A4422E3A9279D0 + DBD9C9B94FA7D7F94C57AAFAD781164064EE438433628C002D94E02F0915CE4F + 0E5D05709E415359BC0530757A808A614E2240280761100B08BE48D88A888D1D + B2002272EA108F493503C8465155233497275A2D8147B61BDD78838D10A8349A + 95E3B2DAA5A96D01E1B78588CB8885D9BF780D8BAA1AA0E57ED2963DE04E778B + DB07483159A1B0B4765B00E9CA1B622360B75C2BC0BF8AFF074017F4125C026C + 50AD437EBC548A6ABBA78497C0046027F918DF98DD4B9B525A07C4F0593C6D13 + 61EB28DEFC7C0B406FB0AF117D5F27607E410343E353DB224803B47AFB00E33F + 6420552CAF212423C6EA01421A45461A90C9FF882A6814506B0D905BDFBB63F1 + B2040AC817966156B16446FC5A50C3D0B7A9D14595EA8C303B48460A90C17B8F + AA927D6169C56057075C9C01A4F23F8839A51A06C726C63829674F9002A4D7BE + 439CD4F3C6F3520F79751F762C5E9AE80BDF671430303A018A458DE5FE4FA91C + AAD3FC305280344E37AA49F707E5B2DEAE0E98C2B45F27A54A33C6607C7D7A3E + 89A13623801C20A5B20B716F5E00F9920E0AEA7AEC4698A238FE1CA8D45A286F + E8035E6620B9A33899DD81B8F420985FD4112ABE310A04DD806705133A5D2DC9 + B407ED88977509E6545A600ADF12EB4092BFF9CA10BC01C1ADCBE40089E56D08 + CF0E01998AFCCF3183DF09753957C82D4142692BC273AE9AFF96B3049D840AB3 + 6817CD5726EF35D4E78591DB848E980B0801F66A2EB009D88BB96047C05ECC05 + 3B021C3117100238622E200470C45CB05BBE43E7027BE337D38F8C3FB700CEA2 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003474944415478DA + ED97494C136114C7DF0091C49840A20705EF5E345EE448005101111491004164 + A7B204A4A0154A4B4181A061294BA72D68AA828028220151A2B21C200A172548 + 382A148116694B814297CF6981DA84029DCFF462F85F667B93FF6FDEFBE6CD3C + 02369558D28648D635902D698127EA023AE2312E99B65CC11B68C80B238CFB1E + 5E8168AFFB4606BA0962EB20FE7E2B22EF86990070C5ADEB80C7F9E16600A3C1 + 4EB15BD7CD01B145CD48981B0EF32A2D148A3A69191730823701DA41C28DC403 + 88E13522322FD20480AB82DA97F084771D0F209AFB1491EC2813C03DE16B5AC6 + 9C9B211B00352FE059D10D3C8028B60491F9D130A75AC7CE00AFBA159A8A63F1 + 0022731F219213430168A1987C45CB989D12BA01C07F0ECDA509780011AC7A24 + E0C69A00705558D5042D65497800E177C4A88E1307F3FFF01A16563542EB8364 + BC3E6004C076B6D01680ADA2156C0FD90D80760998A23E9A252086343AE42748 + F351EF04606D111E67BA842207A4711BF1ECDA06509EEC0DC8060C6348DBE024 + 7C999CDD11C21AC091F4836ECECE072609C2C03E36E2C9B70AA037D89688FE6F + 53B0B8B406C313335621AC01B867BBB450453F2D1D559EF240815AAB005ABD6D + 00133FE52053AE6E42484729F70031C3476E0920F5180C260C8E87A5150AC9D1 + AC435E4E8E4EFD3ABDCE7BB6523DB0AD0F64093FA10A860F68B406C86DE8DBD5 + BC34D107144BAB30AF5C3141FC5ED2C0F0F799B165B5FAAC382748BE05307366 + 3096201C25545D59888038AA765FA5E5CA08CB0C990132051F50558A2FACAC1B + 6CCA80B313804CF1176241A581A1F1A9717EEAB9939606EE39AE4CCAA49C5A5B + EAB5B5F513F2DA9519AB0019B5EF113FED0215A587BCFA8FBB9A9724F9C28F39 + 250C8E4D817279CD7CFE974C01D5E97EDB5AB11BD335DE019072BA4269FEC86C + 0348E7F7A09A0C7F50ADEA6DCA8051C6F53A2D5399600CD423F67E9E84DACC00 + BC569C5AD98DEA6E5D04C58A0EF2EB7B6D8630AA28E13CA8355A286BEC074156 + 205E2B4E29EF4475CC20585CD6D132B754BEA807C8EC603C00C6C30E24C8BE0C + 0B6A2D70C5EFE86520D9DFB4E588DE82E8F615BC122495B523322704E46AFCCF + 3147D805F5ACAB78FF03F6980B6801ECCF05FB73C17F3917EC759F5DE7025BF5 + 0730DD8F3F3CED9A7D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003464944415478DA + EDD75F3054511C07F0DFC564A66986997A287AEFA5A6973C1A36151225198C64 + FDDDFC19B294FCD9B514468D3FEBCF5E8B1A1521251952A6F2E781295ECAC878 + 2C56D895DDB558EEEE9EEE2EB695C5DE535E1ABF97BB7FCEDDEF677EE7EC997B + 0858ABA8821644A6F8824C45016EF12ADBA13AF532A17FEDE4E285761A3FD8DB + 4110EB6F22F39A11997A05A4F31408C4ED8C82059C0B862B5FF40A6AD2FD8D00 + 7DC056F7AC7F6F1C107EB70991B7FD0D00DCE257B4C2C3CC003C003BA70155A6 + 05C08C92826C711BA3E02C8ECF1AA0056AF941788050411D22D3830C00DCCA2A + 7F0E8F0457F10021FCC788CC083600EE54BE6414CCBBEEBB0A287B064F72AEE1 + 0182336A11991902D3CA15EC0E084A9BA03E978D07084A7B80485E280DA02097 + 7CC1283823C66F15207C0A0DF9117880C0D46A24E2B30D00DCCA2EA987C68228 + BC7D20E05615AAE085C1CC5FFC0DB34BEAA0E95E34C1E49E0D00EC6493C206FC + EB623C05BB0130B7088F72EDFC9015523B0C3AB76F0070C5DD0CA780E8576B90 + BB288EA5B21470287EBF83ADEDBE3182D0651C1974166E021446BB02B280A11F + D2DC37069FC6A6B64498033826DB35D2937E5232A438E184BC28B300ADCEB246 + F47C1987B9F96518189D348BD003244E7D3E84CEFAA0A4485E7B38E9808B8DB5 + 4D8F46AB719D2A56F56EDA07D60194D632C0E8771948154B6B08C9109DEE59C5 + 61C94C0193A7FAD804615D4BB73515111046B7EEB3A4501168DA212320A9F203 + 2AE2B0404DE920ADA67BDBF0FC4816C8E7976046B16840FC9C57C3C0D7C9E105 + 95EA74558AB7CC34C031C59E4B8714D253AB5A5E5E39262B5F9C340B4814BD43 + 25316EB0B8A2B3A803B6360052F96FC4AC520DFD23E323C2D833C7FF5C030E5C + FB702B408A892285718FDF0448287F8B8471E768A616D2ABDF6F1B9E17E506DF + A615D0373C0E8A8565E3E73FA472288D77C7DB8AE3859DA82CC103944B5A8B3A + A02FFD7A9D902A0D181DDDE3AE8F63509EE889B713C61677A08A1BE741BEA881 + CCEA2E26BF0139116741A5A6A0A0AE0744495E788098C23654C1F586B9050DA3 + 70D3CA14770299EC8337059CFBAD48947C1166E9C7727ED51B661D88F6305C79 + E2D720BE7909EF796037CE058C007BE782BD73C17F792ED869FCAE9E0B2CAD5F + 5A588F3FCF1A95210000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000035C4944415478DA + ED97494C53511486CF132289319144178AEEDD68DCC892609D1145110912540A + 0A15242205ADD0C102024103526DFB3AA0A98A032288061C8803740151D8A851 + D3A542116881B694D2D2E1FAFAA09599BEEBB030FE9BFBDA77CFFDBF9E737B73 + 0F0193E25C6E44F2DCFD3034EA02A1F219305131278A1E058A66509E3D40789F + C323A3D162719D6DCD04E1FB9056DE80C8BC58305A9D8CCCA74AA8680235EFA0 + 1FC06B30DF5CDF7BFF8413A57588E41D02C38813C4CA2646C662CE5E7A14C91F + 4375413C1E40EAC55A449E8FA70170259235C20D41021E00BBE81E52E427C080 + C50985CA278C8C2F706226011A40234AC4034816D720B2209106C0D505E943B8 + 293E82077054740B91FC241AA058F18891B1F064EC04C0B50770BBE8181E4012 + 5F8348C151E8B78C6367407CB516EE94B0F10012F3AF2352984C0138A184AC67 + 64CCCF889B0090DC857B65C7F1CE81C33C35928BD83400AE0AABEEC0FDF23482 + 498C7F72C2391592095360E017FE86855535507B291D1F00DB798A7C008C4BF0 + BB35DF265CC75D118796207B586744D35F075895B52C2C2464A98E203CFC359D + 119269005CE51B862520DAED2EB44B7E8A650D14606DEE8AFB54D137E9BBCC1B + C351B473164045FA1640016078A7D46975F04ED7372F8417401FAE8D213C412B + F59526CDEA9CE591C141C1AD2EB76B4BDF156BDBAC73C007E0F6049688D60FDD + 303CE2808E2FBD7342780D7A376BD90411A4A17E150F11904291BFD757980F4F + CDD02C00A73B30802FDF8C60308F4D42E8BB28F7281587659C5982B579A15CCA + A482CAACD5E1185F6F94DA7AE704C851BC46951C16D89D1EC8AF7EB3A079D909 + 169846C660C06CA3218646ECD0F1B9F7E3A8D5BA5595B7CF38730F8471435397 + 0032F7549AEB6702FA01B2E52F5155C636B08D7B02CA40483080C1F41362D062 + 87F64FDD9F2499DB37F80C165B631AC069E90B2439B593CA931B0AD4AF160C2C + 4DDB065FFBCDA0FDD80DE65187FFFBEF06135CCDDA85771266499EA16BA77783 + 65CC1D70B077BFF6182C348C872A72CB5B1D48B3A3F00032AF3423D9993D60B2 + B940A06E61B206141DDF0156BB13CA6B5A419E138D771467543C4132EE3E18A6 + AEE5B81250D779323706EF3EE0EB0B06A96BB948F59C5906D277D3A350F9745A + 5FC008E07F5FF0BF2FF827FB82C5E2FE685F10A87E00E7DB8F3F62D6AE290000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000035E4944415478DA + ED975D30546118C79F83C94CD30C33755174DF4D4D37B934488544490623F9B6 + F918B294B0BB1661D4F8581F7B7651A322249221652A1F174C715346C665B11B + 76B1BB16CB7EBC9D5D76235F7BDED274E17F73CE9EF33CEFFFF73EEFBBEF9C87 + 8035C514B6A10AA617CC2D6800572C612790C9DE84FEDEC1C913ED163FD8DB41 + 10C61F8C07AD889F7C196629003635101DE5303C5601041D20BC7DC504A037D8 + 2EC7F8DE141055D082C8141F902AD5D815600BDAA12AF52A1E40645E132253AF + 81645E0D5C613B2D632EE392E1CAE1BF82EA743F3C80F07B8D88BCEB6700C015 + A7A2151EB1FCF10042B3EB9120CD1FA6156AC812B6D132CE6478AF01B4400D27 + 100F20845B8BC8F4400300AE32CB5FC063EE753C8060CE13446604190072042F + 6919B36FFAAC02943D87A7D937F00082326A10C90A8629C50A7605B8A58D5097 + 1B8A770E04A63D44243B840250432ED94CCB3823C6771580F70CEAF323083AB9 + A6E080D42AC4E7841A0070955552070D05517800FE772A51053B0CA6FFE06F98 + 55520B8DF7A3F196400F80EDBC4EEB01B6DA84C79936BEC802A9EC061DDB3700 + FC6D6D057024FEA09DB5F5813182D0651C1B74E4FD7300FB649B066AD14F8B86 + E4A71C90A77A030053D84D7309887E9506B9F1E35C94DB01881CFABC099DE561 + 5191ACE668D221272B4BAB1E8D56E33C59ACECDD740EE8010AA39D019981A10F + 69EA1B834F6393DB42E80DC467FA4209C2B2861A3415111046257E1615CA03D6 + 5768138056675E217ABE8CC3DCFC320C8C8AB784301AD8A7D8322993426A62CA + E5E59513D2F245F18E006AAD7900A3DFA520912FAD41888628778F4A868B74AB + 3D60C7B40DB700249F289237FFFEDE049024F8808A182EA052EB20ADBA7B47F3 + FC481790CD2FC1B47CD100313BAF8281AFE2E105A5F26C658A97D468B0DB2436 + 0024F2DFA1921857585CD19955016B2B0089EC17C48C4205FD23E323BCD87327 + CD1A604D268084F2B7881777815A282DA457BDDF31292FCA15BE4DC9A16F781C + E40BCBA6E73F2432288D77C33B8AE3799DA82CC11D144B5AB393F5FB7542A230 + C0E8A85DD6F5710CCA133DF08EE2D8E20E5471EB22C81635C0AAEAA23309C88E + 380F4A951A0A6A7B809FE489F73DB0177D012D00635F30437D96732ADFD0AB40 + B4BBE1CA16BEDEEF0BF6FB82FFAB2FD82D7E4FFB0273F51311CD8F3F6092371F + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003584944415478DA + D5975D30945118C79F3726334D33CCD445D17D3735DDE4D220151225198CE4DB + E663C852F2B16B1146CD627DECBB8B1A1521251952A6F271C1143765645C16BB + 6117BB6BB16B3F4EEF2EB6D560F73D61A6FFCD99F7BCE779FFBF79CE39CFBC0F + 01EB4A28EB42D5B72F816C590B39B53D4047F9D11740A9D24049431FF0537D08 + C39CB3AB0FB21437DCDF45101B0FF1DC0E54CDF48585252D2D7373E508BB814C + F33301180CB65BBBF1DEB480F1B01DF1D3AEC03C05C0A23E4447050CEF350041 + 1708EF5CC503882D694364BA3F48951AEC0CB0049D509B710D0F20A6A8159119 + D741B2A8018EB09396318771D938B2F96FA02E2B100F20EA7E0B22EF051A0170 + C5AE6E87C73941780011F94D48901904B30A0DE4093B6819E732FCD601DAA09E + 1D820710CE6940645688110057B9552FE109E7061E4018FB2922B3438D000582 + D7B48C59B7FCD7002A5FC0B3FC9B78752034BB1E91396130A358C5CE00A7A205 + 1A0B23083A31A6C521998F10C90AA700345048BEA2659C1D1FB006C07B0E4DC5 + D17800C119B588CF8E3002E02AAFBC119A4B62F1B620E86E0DAA6645C2EC3F5C + C3BCF2066879108777080D00D8CE66C206D86DFD7F004C612FCD2D2006555AE4 + C94F7457EE1A0037CE0D9015188625AD0313F065627A5B086C009DDEBA44F47D + 9B848545350C8D8BB784C006D0E8AC0318FF2905897C651D423442B97BD730DC + A5E60696BEB1092055F0099532DC41A5D143665DEF8E81C531EE205B5C8159F9 + B211627E510543DFC5A34B4AE5B99A745FA9256373990052F81F5079BC072CAF + EAAD0AB4B30590C8FE40CC295430383639C64B387F0A0B20B9EA3DE2255E04A5 + 5A0759B51F770C2A8AF5801F337218189D04F992DA34FF4B22838A244FBC529C + C4EB4695C95EA058D1594D6F38AF53128511464F5D9F9ECF135095E2BD63253C + C1B40F400790CA71D8A57313C05EF4057F031C4D3AE4686777708220F4D9C787 + 5D78FBDE1738A5D937539B7E4634223FED8C7C345BF60573D46F39BBE61DBD0C + C479194796F0EDA6BE40E43CE047E86D8E884A65F5C7520FBBDADAD8F669755A + B7E93265FFBEF405E2B303110461534F95D70C4440245542BF8AB8F260F30CED + 795FE094EEC0A426B8D41955AAD5AB27A555CBE22D01F6B22F70643A441D0024 + 9F2A959BFEF5F6A52FB014B7A77D81B5FA0DED02923FFB8F7870000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_10_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000035D4944415478DA + D5975B30946118C79F2F26334D33CCD445D17D3735DDE4D220151225198CE46C + 7318B2941C762DC2A87158EC7EBBA85111529221A583C30553DC949171596B37 + ACC3EE5A6BD71EDE3E8B6D1987FDDE30D3FFE63BBCEFF33DBF79DEF77BE6FD13 + B0AA046E27AA48F400C5A21E2C95010188A40AF83929A7EE117CF8320695499E + C4F298A3B317DA297EB0B78320D61EE24A3B10EFF62590A9749055DD6531C4B2 + 72232F8052AD85A2BA1EE0277B990096136C15B3366E9A105BDC86784C6F985B + D0D14A6EAE2C612790293E78008C87AD889F720566290016F5213ACA6378AE00 + 083A4078E72A1E4074510B22537D615AA9C5AE004BD00ED569D7F000A20A9A11 + 99761DA4F35AE008DB6925E6302E1BAF6CFE1BA8C9F0C70388B8DF84C87BFE46 + 005CB179ADF0382B000F202CB70109D203604AA1851C611BADC4D90C9F558016 + A86507E1018472EA1099116404C05576E54B78C2B981D70742D84F1199196C04 + C813BCA6959875CB7705A0E2053CCBBD49D089354D0ECEAC456456084C2A96B0 + 2BC0296F82FAFC303C80A0F44788648552005AC8275FD14A9C19EBB702C07D0E + 0D8591784B1098568DF8EC302300AE72CAEAA1B1281A6F1306DCAD423C56384C + FDC36F985356074D0F62F001B0339B091B60B7F5FF013085DD349780E857EB90 + 3B3FDE55B96B00C5312E802CC0589ED2DC37065FC726B684C006D01B2C2B44CF + 7711CCCD6B606054B22904ED3EB006A0D55B0630FA6B1AA4F2C55508F11095DD + B38AE13A6D51B0994C00C982CFA884E10A6AAD01D26BBAB70D2A8C7205D9FC22 + 4CC9554688D979350CFC900C2F2895E7AA52BD6941980092F81F5159AC1BA896 + 0C1605DA580348657F2166146AE81F118D70E3CE9FC25A82C4CAF7881B7F1194 + 1A3D64547FDA36B020DACD7814EF1B16817C41637AFF5B2A83F204F76D1BD109 + A6AD1F3A80D4F6834EEDEB00707DC1B8992FE8DAE00B36021C4D38646F637370 + 8C200C99C7079DB8FBEE0B1C526C1BA9453F231E929F76445EDA3DF70562C73E + 1FC26075445C22AB3D967CD8D9DACABA47A7D7B94C942A7BB7F40533D4B19C5D + F58E5E05623C8C5796F0ED3A5F2039DB17461056B554774B430484531DEC9BB8 + 581E685EA13DF7050EA9764CEA4531B545941ACDD2C9E94A95645380BDF405F6 + 4CBB880380E4E32572D3516B5F7CC14EF3F7D41758AA3F07179D3F2824D3BC00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_11_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000035F4944415478DA + D5975B3054711CC77F079399A61966EAA1E8BD979A5EF268900A89920C4672B7 + B90C594A2EBB1661D4B8ACCB9E5DD4A80829C990D2C5E581295ECAC878ACB5C2 + 2E76D762D75EFE1D8B6D73DB3DFF30D3F7E5EC39E7FF3BDFCFFC7E67FF73BE04 + AC29A1E21DE2C65D00854A0BE9D51F6127E547B9C28F2919F40D0B41B6A0325C + FF25964259BC1BB1F2DBC1C91381090DF67610C4FA493CB7139527B8837C496B + AACE201D652114CBF5303A84E0FDE731A848F43000AC186C57BB7EDFB020B6A4 + 0355DEBA08D2450D645677990DB1A29C88F3A050AAA1B0AE0778499E78003145 + 6DA892E905730B1A5AE6C6CA14740299EC8D07C078D08A78C99761960260510F + A2A35C86C72A00BF0304B7AFE0014415B62032C507240A35760758FC76A84EBD + 8A071099DF8CC8D46B209E570347D04ECB98C3B8A43FB279AFA126DD0F0F20FC + 5E1322EFFAE90170C5AE6C854799FE7800A1390D889FE60FD37235640BDA6819 + 6731BCD7005AA0961D88B70F8470EA10991EA807C05556C50B78CCB94ED0A931 + 2C0E663F416446901E2097FF8A9631EBA6CF2A40F973789A73030F2028A31691 + 99C130255FC6EE00A7AC09EAF342F1461098F61091AC100A400D79E44B5AC619 + 31BEAB00DC67D0501081F71206A456231E3B540F80ABECD27A682C8CC203F0BF + 53852A596130FD0F7FC3ECD23A68BA1F8D0F80ED6C246C80DDD6FF07C01474D3 + 1C01D1AFD420375E9C8B62D7008AA29D019981B1B2A4B96F0CBE8C4D6E0B417B + 1F5807D0EACC6B44CF3721CCCDAB60607462C74E98ECE34600B5D63C80D19F12 + 10CB96D620444394BB4715C345820D90C4FF848A192EA054EB20ADA67BC7A282 + 481790CE2FC1B46C510F313BAF8481EF13C30B0AC5D9AA142F09D60812791F50 + 698C2B2C2EEBCC22B7B602104BFF40CCC895D03F221CE1C69E3BB90EB0D54B78 + 9C69E38B2C90D26ED0B1FD2F80BDC8051B018EC41FB4B3B63E304610BA8C6383 + 8EDC5DC905E346B9A0CB442EB04FB669A4867E5A34243BE5803CD57B9E0B440E + 7DDE84CEF2B0A8585A7B34E9909395A5558F46AB719E2C51F4EE4B2E9838D317 + 4A1096B5D4E6928A0808A33690AFA2225980718736E58219EAB39C5DF5965E07 + A2DDF54796E0CDA65C609F62CBA42E14511352A854CB2724158B135B02EC652E + B063DA865B00928D17CB0C5F3AFB920B4CD5ED692E3057BF0183B2A63F0B8363 + D00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_12_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003724944415478DA + D5974B4C53411486CF052289318144170AEEDD68DCC892404505445144030411 + 50A0F28848412B949602024103521EBD2D45830A02E29380F806BA80286C94A8 + E952B1A8B4685B4A1FF431DE16DA9477EF0824FE9BC99D3933E79B337792F909 + 9853B6F035AA490F01DD8C15DC91B7178042A507855A07136A3D4C6A0C30F869 + EC9320E3C06EDB784050045A6D8DE1811E82707C5CA87F81049987406BB44081 + E4CD8A13CB5343E0EB2F354847C7403D6D74F6FF50A8A0362B947000D8122CB7 + 8663DC199025E8457517C240A3B7B855019BACD41EC7141A3B8C152178F54E06 + F5D9E1780019377A50C3C5C3A0D299A150F2D26D089B4ACE1D04ADC104952DFD + 20CC89C00348AFEA420DACA3F067DA4C2BB9AB0AC5BD40E646E20130AF3F41C2 + DC63F09B02E0520BD15129337C1640D403E24BC7F100522B1F21322F0A945A13 + 7605B8A26E90B04FE001A4947722927D12145326E08BBB6925E6338FD85B9EF0 + 2934159CC203387BB50391574ED90170C56B7802B70A639C00ABC5CF03482A69 + 43A2FC1898D098A058DC452B711133720EE01134F3E2083A739DC189FC164416 + C4D901705554FF006EF34FE30124F0EE2092136F0728153DA695987B3E6A16A0 + EE3EDC2D39837704F19C66441626C02FCD0C7605F8B51DD05A9684F713C6E5DF + 4424379102304119F99056624E7AF42C80E01EB4559CC30388654B9090976407 + C055714D2BB457A6E201C45C6E440DDC6498F8876B585CD3021DD7D2F001B033 + BB081B60ADF5FF01B0C47D348F8018349851A83093A15D2EC16A2B2C02A84A0B + 06E406862DA4532A83F7B29F2B42B8B58D850016AB7B85E8FF38067FA68C30F4 + 65FC9F201601982CEE017CF9A6A45EC4FA3908F908953DBC91C9503AC6691F41 + 8EE82DAA6632C060B2427E53DF8A132B5218A09AD253CF719D1DE2F79401863E + 8F8F4E6BB5FB1BF38E2A1D004BFD843B593ED1C80319FC8603BBE701E0FA0207 + C452BE6021C0B6ACCD7EDEDE9B640461E5EC180E146CB82FF0CFF569A70E7DAF + 7C44BD27004598D6C4177C77F1052F17F80279803492B07A6E9557AB9AB7E76C + 09F2F2F4EA375BCCC13F6F680736C4178CEF93261184673375B7D9888064EAFE + 7E9057A9635D2BB4EEBEC03FCF974575545105D21A8D33BB94F5BAF125011CBE + 60927A96F31A9FD3AB405A98BDE58A9F2DE90BFC58BE673D00A9BF57AB9D0F8D + 0DF105ABC5AFAB2F70577F013A6EB33F6278D4630000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_13_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003914944415478DA + CD975B4C52711CC77F275D6EAD4DB77A28EBBD975A2FF9D8926E6AA6DD67AE4C + BA287959255AA45C424B9D354D14395CAC59D9C54C33A7D95DE3A156F652CE9C + 8F85900919200AC8E5DF01852013387F63EBFB72C6D9FFC7EFB3DFEF1CF87E09 + 985581F415AA6131C062734271632F0452E50906E827CCA0354CC198C10CE313 + 1678FB59333069326D9617A5E85C67E236252308A2FED7DD04E1F9705AF202D5 + E66C81A96967B03AB7A22201B4FADF103F8C167833A81A14E56E5DEB017035F8 + B36E353B7A1F5A842CB1FD1BBBFC004E899F2251DE7630591D50A27819B07945 + D616F8F2DD00CA01151826ADDEFBDFB47AA8CB4F20E603589EBF24362A6AF130 + 4138B92BFB378AFC00F2453DA8FE542218CD8E9026E092931AB24A6B74C33811 + 82E7EF86417C3A695E805585D1F78080F5EA0F86757128D9E607907BB51B359C + D901FA293BF014CF428670A9ECF83630596C50D5DC079282642F803A4E994A38 + 2396A96BF44D2B0A966E8A8C88ECB33BECF1A3574DAF3D805E809CEA4ED4C04E + 819F93765ACD7DC593F5005998EA05D06C50320922A20910E220028E02828FEA + 6AC341DF09790158573A90A470178C53007CEA8BE8E8222B690640DA0DB2B3BB + FD56B0AA28864DDDA8A63664B25AA7D7E8C4539ABF026455B523B2680FE84C36 + EC09F0A55DA0E0EC9DF30CC4B2638E2D026418A931B479CECE013851D18A48CE + 7ED04ED84028EBA2D558C8DAE9BE0A248FA0B1E4801720589D1FC0B14B2D883C + 7FC00D802B4143075CE7A511746ABC8799657791B4380DC68C36289575D26A7C + 81953A0BD00E4D82743C804C6133224BD2DD00B8BA207E00378487F1569021B8 + 8948EE2137C045E9435A8DF927F7CC00D4DF875B6547E6FD21F2D59C87F010B7 + 0991BC0CF86E9CC69E80B0AE056E9733F100D28BAF21929F4901D8A09C6C0BA5 + 9F57DC9C7D3300A23B70B7F2381EC0418E0249044C3700AE4A6B6FC3BDAA2C3C + 80B47372D4C03F0A630B780D4B6B9BA1E572363E0076671F6103FC6BFD1700C1 + CEF801B065BD345740BCB1D85182248F615A08A81F4075763CF5D71DBCC875A4 + 55390CEF8747170C3107C0E10C6D107D9F54F073C20A6F87347F85C05A810BC0 + E6080D60E8AB8E72C4E65908F507AA7B929CC5D0F902D072C538B9608CB2E4DA + 00B980962BC6CD051E8850724140571C8E5C40CB15E3E682119F5CF0EC8F5C40 + CB15872317D072C5E1C805B45CB12717FCA06CB940FE84DE04B213DD57BEECB1 + 5F2E085617D65C10AA7E013132F63FE283DB870000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_14_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003944944415478DA + C5974B4C13511486CF0891C49848A20B45F76E346E644900F185288A48802082 + BC2A42540A8AD087054483A64081765A50830A02BE3520BE45161AC58D1A1F2C + 155BB52DD296015AFAB84E0B1D5BA1D07B85F86F263373CF9C2FE7CE4CFE9F82 + 49F155CF90342702AC7604FEE8F3573D688D6330346C81979FD46F1880E8465E + A4DE7D3F343C66D607F53DEFA228F74981F229AAE64582D9EA809273CF662C3C + 9D150986E131D019475D10BF86CDF0F2A3E6FD08C36C682CDAA17703381BFC5D + BB8ABF241E2D40E690BEB04E2F80C38AC7A836370A46C71D7E4D2028104067F8 + 03316832C38B0F031F640737AEF105B02C7F514850D0C27E8A720856F485C9BC + 000E353C40B2BCCDC058EC50DAF464C6E6A7B2A3E0CB4F23F4BE1F00E38885BB + FE5D6780BAFC2D942F8095854BDA818275EA37C6B5A128C6EA05902FEB46F587 + B68269CCEED7049C72B0BB3CA033B9601C08C1A357FDD070389A035087F6C652 + 8E80A5EA6A43F3F282C5E18101813D36BB2DE2470DF3DC0DC8011CACE942F223 + DBC0306A0361D343BF219C2ACFDC048CD90A552D3DA02888E10034EB7BD3292A + A019102A4614EC07046FD5526392E78438805CE95D24E7EF80A1111B56734F09 + 55DD4017C67A6DC1CAA2603E7B41CA0E88B158C657EB1B4635D302F0CEDE468A + C29DF08B0510B10FC251052F7A0240D905AAA3BBA6BC0321FCE08C05808CDFAA + 8D37DC355300B2AB6E22BA280EF48C9578022265273415EFE600665BEF059075 + EA1AA28BF7806ED80A1255275663096FBBEB2856DC8173A509144E2DB738E364 + 07A28F27B800482596DF860BC2443280F4F236A42C4904ADC90A65AABB588D4F + F06227016E42B338996C0BD2242D882E4D760190EA44C375B828D9EBF347E4A9 + 292F61AAF812A205292E800AE52DACC6A203711300F557E172F93E3280144133 + A285A9F0D3344E3C01495D07B456A6930124979C47B4288D05B042257DC39F7E + 9C04B9F11300B22BD0763A930C20A9B80929C4E92E005295D5B6427B55361940 + E2B1462417ED07ED3F7C8665B52DD07126871C80B8B3878801E65AD8FF81FF25 + 0EC0694A314B5F986D688B222F92993300A72B467E6038975CEBED87D7FD3F7C + 42606F811BC0EEF06F103DEF06262DB9665A086C578C9B0B3EB1B940374B2EC0 + 72C524B940CB5A721D462E98D11593E60237C474B900CB15CF472EC072C5A4B9 + E09B472E78F8572EC072C5F3910BB05CF17CE482D9D64F9B0B06595B2E6EBC8F + 37819CADAEA348758FCB05FEEA372CF1024EE4F4405A0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'SetProperties_15_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000037F4944415478DA + CDD7494C13511807F06F8048624C20D18382772F1A2F722480A888088A488020 + B253590252D0CAD25240206858CAD269014D551010412410222E2C0788C24509 + 22478522D00A6D29A5A5CBB32DB4B6AC9D6788FE2F6D66DE9BEF97D769F27D04 + 6C84CEEF4765099EA0D521B025035FA6616959052393B3C34A0DF2E1267BC92D + EFBB79F8EDF9A0D1C11E82D80C506B6D037CFB218605E9EA064238A6AFEE5B47 + F3125B020C0536EF3B4E770A427648E932EADE6D0548E77D40E5342F50AA7590 + D5D0BF6BF192382F902CAF8248AA302216979530F275767C452E3F5B97E92FDE + 097024E5A08BA3E3812982D0E51C1B75E75801D2B8EF5065A23728D674369D80 + A3038048F207F14BA684E189E9094ED2B9933B015C339C5A8080D3C231E92937 + E4A7B602A4D6BC419CE40B20576921BBFEFDAEC58BE3BDE1FBBC1486C6A741BA + A2325FFF299240558A0F610208DD8602089DFD6161B9447034FD908783BDC380 + 46ABF19CAB900F9A8066400AA71755A75E04D9AAD6A61330C4F0BE4E8B64468C + 0E2178FB710A6AD27CCD80D933435104612F00841888806840F05958260DB53C + 213320A9A207D5DEBE0412850672EBFB6C461852107B1EE44A3594360E0037DD + 8FB02CE09AE94CD75F28D3FBE42AD5DA09718D62765B40625917AAA5FBC3D28A + 865271CBE4F27B81CC08B00218BEBBD09D63EC004967CAA5EDA6B55B00B4879D + 889B710516F500A6FE41545248F35D07F07A807FE7AA19B0D73E2B407C690722 + 3303412C57639F0093D70DF58C6B04953DE6C571C56D88645C07D1B21AD8FC6E + 4A85D9B4CBC64F16F735346407E30162EEB722F25EB011801B566D273CCE0DC1 + FB09A20A9A112F2B0416646AC8E777512A9C470BD80074808015B6E525DC2E5B + 5EC248762322B3C38C00DCE4D5BC8427EC1B788008D65344E6841B0185BC5794 + 0A336F05AE03AA5FC0B3829B7880F01C01227323605EB6867D02ECAA56682A8A + C20384653D422433520F504311D96E4B3D73721283D6019CE7D05C128B070865 + D4232E2BCA08C04D7E6513B494C6E30142EED6A15A66342CFCC5DF30BFB2115A + 1F24E003B02B5BC412B0D75A2BC0BFCAFF033034A514B76EDB0D9B82DD15231B + 1886256D4353F0696A6E4704E5AE783FE6024A5D31D5B960523F178828CE05BB + 76C53873C182BE2517ED321750EA8A71E7021362BBB9805257BC1F7301A5AE18 + 772E98B1980BFA36CD0594BAE2FD980BF6DAB7AF7381ADF90DC85A0A4EE5F7BF + 420000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_16_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000038D4944415478DA + BD97494C136114C7DF0891C49868A20705EF5E345EE468B0A22222B80708A208 + 426509484111686B41C1A061294BA7A56A5051C0150984881B620251BC2841E8 + 51A155DBAADD282D5D3EA785D6B6D476E633F8BFB49979DFFC7F797DD3BC3F01 + 0BE2485EA1DAACED80100495A3E4C11B19BC9DFC366CB2A218512ECBE05B1319 + 1517F449A3AFFB08C217C066A7414069F0E314FCD29B616442E117C201E030F0 + 3DB781B3EA305A864CE1A3DB7AFD02586CF40026BFA841A99D5D8090BFA7DC63 + 5BD92C752080B5792BC2C3C296CB08C25EBE7E749BD00BA050FC12D5B15960B2 + D8A1F4DAAB80E6974FB140A39F0595D6E884F8A937C1C827C5D88CC1B0A3B538 + 5EFD378088A2559D40C016F97BEDE6481467F10228103D470DD9D1609CB3D3EA + 405828804AF307E287CE04C3E353E3C29C9D9B5C00F2C8A104C21EB2465EA769 + 5B57B8322A342474D06AB36EFF566F78ED027403E4373F45C2DCDD6030DBA04C + FA22A0797566347CFEAE85A1B129D0CE98DDD7BFAA34D0981743B800145B87D2 + 0822A48D9AEC1244C0496A7A3FC86BB5499E1D7203E409FB5153FE1ED0CDDA68 + 75C021C7BC4EA9744E183BF5FA3C7B2B83E68258C2D320A2783587BA504BDD36 + 98CD731BD5CD46855F809CFA3ED472662F688C56E04A076843385499B10B0C26 + 0BD4B40F82A830CE0BC0F13D9CB33A7D1920ED749DF6A1EF90BA01B26B7B500B + 271E7ECD5819997B8A2BE907B228C10D10ACDE0B807DB51B898AF6C34F0A8047 + 3D88892EB263E701C47D20397B806072D65D9C59F30891C507416DB060778027 + EE0569C9213C8053D5F711597204547A0B0824BD8C8C05EC7DCE4FBEE8095C2B + 3B8AF713A45FEA42E4F9A34E005CF15BBAE1063771D110FAD3A2214CABEC40E2 + D24450EA2C5021E961647C819DB000F008DAF8C978002704ED882C4B7602E0EA + 42F303B82938860790CABF85C8F21427C045F16346C6BCD307E7019AEEC1EDCA + E3780029E56D88E4A6C277DD1C7607048D5D70A72A0D0F20B9F43A2279272800 + 0B54910FE9F8B9559E7D781E4078173A2E67E00124954891889FE604C05545C3 + 1DE8ACC9C403483CD78A5A782741F90FAF6145433B745DC9C2FB1F7000603B7B + C80540578C8A97424B0680B5153364FFEB4AEE02C0DA8AE9E682FB433278270B + 9C0B186DC5FF231704DC8A99E682092A17A882E402465B314E2E50522BB92A40 + 2E60B415E3E6021784BF5CC0682B5E8A5CC0682BC6CD05D31EB960C02717043B + BFA4B980AE7E033702124E3B8C780B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_17_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003954944415478DA + B5D75B4C52711C07F0DF49975B6BD3AD1E4A7BEFA5D64B3E3A33BB9969993975 + 76D1D2C8CB2CD1322F206AEAAC794185036A8D4A33F392399DEB6EB4E5CC5EAA + 99F25888A99002A2825CFE1D50090DE1FC4FF97B819D0BBF0FFFF3E737BE042C + 175BFC160156111FF4267454981AA47376D63F30D4EDE70DBDEB25084740C5E5 + 03806830AC97B4BF97C1E0E8C4BA082BC0DA60EDF15D6CEF48B409E97D87027A + 9C02CC167A0BD1FF450E33B306181819778A7006D89EB6C5D7CB6BB38C202C79 + 3B8702F84E0146333DC0E80F154C691696118A4F54F7907A5690CA15C02FD3FB + 3110B04FF149B3D71F851A570132446F50252B08F4460BE434BE75D9BC2C3108 + D4B30BA0D4CCDB10D3B37A18F836FE754EA73B589F15A65A0128FCA5E184C563 + 9BA2522DD991B135D0D3C3B3DF64361D98A8D2BD5B01DA015785AF50757230CC + 2F5A68AD8097278052FD07F14BAB870FC3F2617ECAA13D2B80F1FDD27882F090 + 501B2B1B1190406D9ECF8A0A4D8CE30AD901E975CF113FF508E80C66C86D78ED + B2796952307C9FD480F4AB1C347306FBF19F4A35D4A41D251C1BF865F9B0A903 + 15D4E6D6190C8BBB5575F3E34E0169FC3E549B7E0CB40B665A2B602DEB7E952B + B5368C85EAF07250067557435601ACEF7DD93E173701D28C556A3AD6EE113B20 + A5AA1709AE1D07F5BC09F21B5ED04658ABE8D261D0E98D50DED40FC28C503BC0 + DD7DAB00C915DD48C00E839939135673C7CA17F70199194EE0DC63BF9875A70B + 09334FC23405E0501F8453C5AC902580A817C4D74F310324957722322B02543A + 23E315E0887AA021FB34B3479058DA86C8EC33A09C35024FDC83D598C73A617B + E50A9F41636ED45F9BD0B1D61DC5176FB522F266940DC0B4B8822EB8971FBD2E + C0E5288E2F6A41A29C6898D21AA150DC8DD5B88015BE0CE8040937765D80CB51 + 7C81D784C8DC581B806915D4B5C37DDE593B006B149FE33E40645E9C0D502C7A + 8AD5987325620950FB041E169DB703B046715C9E0491F9E76052BBC878057835 + ADD05C12CF6C14C7E6DC4524E70205304209D981D5382F397209C07F042D6597 + 988DE298EC0624E4C6DB004CABB0BA191E9727319B03D137EA9180930053FFF0 + 332CAC6E82D6DB97994D422B80716787620CF8DF85FD083602E06C14AF3DBFEA + 4F295E0BF7B9001B80930BDAA432F828C3CF056E011B990B6801E8E682112A17 + 283173814B00935C3045FD2557BAC8055800A6B96005E12C176001362217B8FB + 12FF25178C39E482170EB9806EFD06A6480B4ED78DEBF50000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'SetProperties_18_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003874944415478DA + CDD7494C13611400E0374224312690E841D1BB178D173912C01D111491007101 + 17AC0851292842170A08044D8122745A40838A0B821B811877AC8904E1A204B5 + 47ADADD056E894028569FB3B2DB496D2656614E3BB349DFE33EFEBFBFFBEF461 + B0481111158702ADE97FD38D61CE375CF9EB8037CC0FEC9DD9827648B3634CBE + 00F6049ED7D7724393D012640EEF8FEC5A00109F88064483615FD2F156097D5F + 867D22BC0156E62C0B0F0959AAC4301B6F757FA4C42BC06AA357889E8F2A181B + 9F86DECF1AAF086F803579A17701838DEA016243048A23BD02482B3DC0976F7A + D012537308F500953DB69113A37707A8231409982D6885BADAD0B22A77795470 + 50708FC56A891EAE31BD71025D805CD92B54CD8901336983C2E6D77E93571E8F + 01C3F814E88849076274DC0CBD9F34831326D3E6C6FC78BD13A0D9A4C8C0B0A0 + 166A5F0B100647A8BDFBA01613A9EE157201CE485FA0DAAC2D303963A3558190 + 60009DE137E2A7D10CEF86544392535BD7BB2758931FC6A59288A9B3659A9E9E + 59A7AF9FD478059CAE7F8A24D9DBA95556286A7AE9377945E616F83A42806250 + 05C4C4B4EBFA0F9D01EA7276609E67209C1B76740920E27B3571DFF38CB80039 + 9227E8CAE99D609CB2D2AA803DECE755A5333A3036EA2B3EEF5342FD99581720 + D0FDF300A76ABA51C3D95D6098B400BFE9196D843D4A8F6D03939984AAD61E90 + E6C6614CEE752DCE1277A2066E3C8C4D581825770FBEFC09E07909EC009CCB8F + 90346F0F8C520001F5202651C6899D05C8BA417E6E2FBB2DC8AC7A80F0FC44D0 + 9B48D61510C8BAA0A960DF8243E81E3E5BF1F18A768417EC07DD3809227917A3 + C422CE6EC7AB50FA189A8B927D02FCB6E2A317DB107E21D901601BC28647708D + 9FE213E0B7156794DE41B2C214D01A49289177324A5CCC4998033C8016619A0B + C0A815A78B5A115E94E600B08DE2FA0EB82E3AE802306AC587843710CE3BE000 + 94C91E324A2C3899380BB8720F6E961E9EB705B45BF1015E0BC2F98760C438C3 + BA02A2BA36B8559EC1AE15A7155E45B8209D0290508EDF6794989795340B90DC + 863B95C7D8F581D4822624156638006CA3A4F616DCADCA64D70953CE37A206C1 + 11D0FEC1CFB0A4B615DA2E9D600F609DD92D9C00C65BF0B7C3572BF6FCFCFF01 + FCABB9C02F80C95CD0AE50C27B25B3B980166031E7025A00BA73C1676A2ED005 + 980B1801D8CC055AEA2FB9CECF5CC008C0762E7022BCCD05819EB1A87301DDF8 + 058305F63FCAB2C9BC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_19_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003864944415478DA + D5D7494C13611400E0374024312690E841C1BB178D173912A81B228A221220A8 + 14112A4B400A8A2C2D05048286A52C9D16D0A082802C22811057161308C24509 + 4A8F8A45A015DA52A0D0E5775AA0B650DA99114C7C972693BFF3BE79FF3F2FF3 + 30D8A1F0F0F243F6D60CF77561D84E020C09365E3FC87609440E48ED36ECD969 + 01608B7AEC8A2D031B506B918F208EA1220BD817BFDBCDD9799718C3F4190786 + 3DF99B0045D1DE8048300C4B5A3E8861687C6A4B8435807BB24B2360705432A2 + 38E281FC3456013A3DB942F47E9E80B9F96518FC3A69156100483CFAFD31BDE3 + 5E49B1BC767FD21E2F2747A75EAD4EEB3D55A2EA5B076E026874E400E3DF6530 + A3585A43484688ECBE552C86CC1C3079AC9F89618EB544595311061144E93E49 + 8A1421E61532019284EF51318B016A8D1ED26A7A6C262FB8C100F9FC1248158B + 46C4ECBC1A06BF4C8E2EA854C7AB52CECBCC13B8A7B8B2892445C4D6AA969757 + 0EC92A1627AD0212056F5169CC09585CD193AA80B3138054FE07F14BA98681B1 + 89317EECC9C31BCF801BDBF5BA0320C58F6245EBC63362022454BC42FCB8D304 + 5307E9D5EF6C26CF8F3A01DFA615D03F3A018A8565D3F59F523994C5FB60EB09 + EC3D8405209EDF8DCA13CE80724947AA0286309CD709A9D288D113357E332486 + 8A445F4ABDC5B438B6A40B55DE3A0BF2452D6456BFA6720FC8893C052AB5060A + EB7A4190E4470F1053D4812AD9E7616E414B29B979648ABA014FF6A7B705AC07 + ED48907C0166090087B81195C865F9AE02845D20BA7DD104A0D48AA30ADB109E + 1200329586760538C24EA84EBDB425C0662BBE91DF8CF0D4CB209DD7004FD449 + 29318F75CEF8CB15BC849AF4A02D01365BF1F57B4D08BF1B6404D00D6E653B3C + CA0C360128B562664E0312A605C38C5203D9A20E4A89B358FE6B8036A8E5869A + 00945A7138AF0EE1E9A14600DDC8AA6881C7BC2B165B40BA155FE53E41784698 + 11902B7C412931E766C02AA0FC393CCDB9B6E90C906AC56119B508CFBC0AD3CA + 15DA15E09535417D1E935E1F084D7B88704E3801D0401EDE6AEFBF16911113B8 + 0AE03F838682487A9D3024B51A09B84C23806E6497D6436361143D40F09D2A54 + C9898099BF780DB34BEBA0E97E34BD2D30006867360B7380B556BC1E9B0EE176 + C7FF07F81773815D0095B9A0B95F0C1FC5D4E6025280ED9C0B6801C8CE055F89 + B9406A672EA004A03317CC109FE4521B7381BD87D896B9601DB1712E201BBF01 + A304E03FD79666C60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_20_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003814944415478DA + D597594C13511486CF0891C49840A20F0ABEFBA2F1451E09202A228222122088 + EC54968014B4B2B41410081A96B2745A40830A02B28804425C594C20082F4A10 + FAA858045AA12D050A5DAED3021528B4330392F8BF4C329939FF37E7DEF9730F + 066BF2BF5789600FD4F8301AD35F1D9D3D2DD61BEAEDC4B0BD30DD4E7A00BDC1 + D6FB2798B6BEE80052D90F3975EC3BC0D1F843F63636074518A64B3F3EE4C4DB + 04C01476535C02AC5FA541EEFC38572559008764DB06C0E08C78587EDA1179AA + 4D000AA35D0091C0D03FD2FC490483E3533B42E801C48E7DDE98CEEA88B84856 + 732CE9B0B3B595758F46AB71992A56F6AE039A006875E41AD1F37502E6E69761 + 606C725B08BDC1E4D9BE500CB3AA21BE8A85300823C8BF880BE5011B3B6402A0 + D6920318FF218519F9D21A84789870F7A864B84AB72E81438A1D933029243AAB + 5C5E5E39292D5F9CDC162049F01115315C41A5D6416A75B759F3FC485790CD2F + 8144BE6880989D57C1C0B7C99105A5F25C658A9774EB1EB067DA851F0024FF59 + 246FD90A680448E4BF4725316EB0B8A223D5011B6B0089EC2FC46F850AFA4727 + 4679B1E74FAD1B58AAB10920A1FC0DE2C55D24FAA485B4AA0F665FCC8B7283EF + D372E81B9900F9C2B2F1FE2F890C4AE3DD29FDDAC687E3795DA82CE1122896B4 + A45FD6EFD70989C200A32316F9DDA008CA133DE801C41677A28A3B9741B6A881 + 8CAAB7546A4076C40550AAD45050DB03FC244F7A511C53D88E2A985E30B7A0A1 + 64BE5119C22EC093BD8D0094A298F1A80DF193AFC22C01C0260A51510EC36315 + 40D009C2BBD77604301BC55105AD084FF101A9524DBB036C410754B1AEEF0860 + 368A23F39A10CEBA0192793570851D948CB98C2B862B87FF1AAAD3FC8C0094A2 + 38FC4123C2EFFB1900E88A53D1064F32FC8D0094A23834BB1E0952FD6146A186 + 2C613B25E34C86F71A402BD47002372D01E9280EE1D6223C2DD000405799E5CD + F0947BD3640F908AE260CE3384A70719007204AF2819B36FFBAC0294BD84E7D9 + B7E8E540507A0DC23382615AB142BB03DCD246A8CB0DA5978481A98F11CE0E21 + 00D4908BB750A901E931BEAB00BC17509F1F410F20805585F89C5003005D6595 + D441434114BD25D01FCB2BD86130B38BDF30ABA476D3B17CBB285E97C926FC17 + 73012580BDD6FF07B01F738145002A7341539F083E8BCCCF05B400F6722EA005 + 40762E1823E6028985B9C0528D5DCF0533C4915CB2C35C40567F00A0C7CD3F90 + 6737BC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_21_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000037D4944415478DA + BD97494C13511CC6FF0344126302891E14BC7BD1789123014445445044020491 + 9DCA129082224B4B0181A061294BA70534A820208B4820C495C50482705182D0 + A3622BD00A6D2950E8F29C16A82D4B991981EFD2A6F3DEFB7E6FE937EF8FC1BA + 02EE57A32A5638CC2EA881AE72CAEAA1F9510CA6FFEEE4E285766B3FD2DF8D61 + A600B49D4D640AA037D8FCFC24D3CE0F592195C388739719C05E6B3B80630987 + 1D6C6D0F09314C977962C4997BE0008E29764D80C159D1A8FC8C13F2529B0130 + 05BD14B7001B546990072FDE4DB91380C869C007D3591F1595C8EA8E271F71B1 + B1B6E9D36835AED3A5CAFE0D403380E21857402430F44D5A3F0B6178727A4708 + BD81F8DC40188659D71183A6210CC2898E5F45C5F240D315DA02A0D5915B88BE + 6F5330BFB0024313E26D21360C1C53ED998449313131E5CACAEA2969E592D822 + 805A4B0E60F2A71466E5CBEB10A251C2DDB39AE126DDEE0C3830ED23AC00C97F + 95C8DB363F370224F33FA112861BA8D43A48AFEDB5685E18E506B2856590C897 + 0C10730B2A18FA2E1E5B542ACF57A77A4B370C769B84194012EF032A8B7587A5 + 551DA915B0B50190C8FE41FC51A860707C6A9C1B77E134A901D6650448AC7C8B + B8F197888DD24246CD478B9D0AA2DDE1C78C1C06C6A640BEB862FCFDB74406E5 + 091E94FEDAC6C609DC1E5491781914CB5AD29DF5E7754AA230C0E88853F67E58 + 0895499EF4A238AEB41B55DDBD02B2250D64D5BCA33209C88DBC084A951A8AEA + FB8097EC452F8A638B3B5115D31BE6173594CC4D9525E8013CC56747008B51CC + 78DC817829D7608E0060110351511EC3730D80DF0D827BD77704B018C5D145ED + 084FF505A992FEEB98C5EF829AB41B46004A511C55D082F0B49B2021EE031C41 + 1725630EE3AAE193CD7B03B519FE46004A511CF1B019E10FFC0D0074C5AEEA80 + A75901665B403A8AC3721B113F3D0066156AC811745232CE66F8AC03B4431D3B + 68CB192015C5A19C7A8467041900E82ABBB2159E716ED1CB8110F6738467061B + 00F2F8AF2919B3EEF8AE0154BC8217B9B7E9256170661DC2B3426046B14A7B05 + 38E5CDD0901F460F2028FD09C259A104801AF2F1362A634066ACDF1A00F72534 + 1646D2DB82C0B41AC463871900E82AA7AC019A8AA2E945F17ED40594A2F820EA + 028B51BCD7A21CC5FB0140F9564CCD62F7BA80D6AD986C5DD03220842F42CB75 + 01A528DE8FBA60B731FEAB2E9820EA028985BA80ACFE02FEB3EB3F188F39A700 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'SetProperties_22_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003734944415478DA + BD97494C53511486CF032289318144170AEEDD68DCC892404545445044020491 + 99CA10908222434B0181A0612894BE96A2410501194402218E0C2610848D1294 + 2E158B402BB4B440A1C3F551A0B60C6DDF93FA6F5EFB7AEFFDBFDC7BF3F71C0C + 36159229443C5624CC2EAA81AAF22B1BA1B9340E5BFFECE6E18B2C8D1F1DE8C1 + B0AD2FC1776B510D330AE614FF02D0002D0FE20D00EB06DBC71C673805223BA4 + 721975EFDE0140D9D948E6008E241F7471743C20C2305DCEB151778E09C07E6B + 3700D774A766C0E0B4784C7ECA0DF9AA6D0E20761BF4C774F687C5E5B2FAA369 + 873C1CEC1DFA355A8DE74C8572600BD000C010F4913C026C48A541DEBC249A72 + 2F80E933839118665F0F0865220CA200C16771993CC478874C00CAE23D89B196 + ADD787B47D14C1C8E4CC9E105B06AE19CE0CC2A48C5857B9BABA7642CA5D9E36 + 0BA0D559B711FD5FA66041B10AC3DFA6778530BE032E0CE7683B40F29FE5F2F6 + EDBFEF00506BAD0398FC218539F9CA2684788C70F7A9A5D3A4C60696D6300148 + E37F40E5741AA8D43AC8AAEB333BB124960632C50A48E4CB7A8879850A86BF4E + 8F2F2995676B33FCA4968C8D650048E5BD4395095EB0BCA6B36AA2A3038044F6 + 17E2F7A20A8626A6263889E74E520248E1BE469CA40BC44DD142B6F0BDD949C5 + 715EF07D560E83E353205F5A35BCFF25914155B237B5284EE6F4A2EA948BB0B8 + A2B59A7EFDBE4E4916F5303AE29ABF1D110137D5875A142756F4A09ADB9740B6 + AC815CE11B32BB080531E741A9524369433FF0D27CA94571425917AA61F8C1C2 + 928694B9B17205BD80A7FBEF0960368AE90F3B112FFD0ACC13004C6221322AA4 + FB6C00F07B4070E7AA01805414C79576203C2300A44AEA7FC74C7E370833AF19 + 004845716C712BC233AF8384A807D8826E52C66CFA65FD93C57B0575D9412647 + 60751447DF6F41F8BD203D0055B16A3AE1716EF08E3B605514471634217E5630 + CC112559BEA08B94711EDD7F13A003EA59A1D4722082DD80F0EC503D0055E571 + DBE009FB06A91AC330389CF514E139617A8042FE4B52C6CC5B011B00D52FE059 + C14D6A006139F508CF0D27AAE235CA3BC0AE6A81C6A2486A47109AF508E1CC08 + 7D595E84B75B9A6BA29C84C00D00CE73682A89A116C5B6E80B4845F1FFE80BCC + 46B12DFA025251BCDF221DC5B600205D1593B3B0DC1750AA8AADED0B5A0745F0 + 4964BE2FB0B48E4DFB026BF507174EDF3F32D1E8060000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'SetProperties_23_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003744944415478DA + BD97494C135118C7BF0122893181440F0ADEBD68BCC89100A2222228220182C8 + 4E6509484191A5A58040D0B094A5D35234A820208B4820C495C50482705182D2 + A3621128424B0BB474794E0B5416297D03F57F9969FBDEFC7F79DFEB7FDE47C0 + 9A82D21F2192150AD30B6AC8275B014799B17E862B87FB1C1A0A2309FDBD938B + 17DA6DDE705F1741AC7F084C13221E3BCC0040573965F5D058146D04D01B6C1D + 739C69E787AC90D261D8B9731340C0DD6A54C50A8719F95E00EAA0E941CC8E00 + 47120E3AD8DA1E1011842EF3D8B033771B006DE70D3205E09862D708049C168F + C84E39212FF52680FD961E40ECD4EF43E8AC0F8B4BA4B547930FB9D858DBF46A + B41AD7A95245DF3AA0450126CFF4871184752D209486080807049FC5C5B2C08D + 2B6404600A7A304B400C2835C88317EFA6D809406FE0986ACFA44C8A1102854A + B57262B67269724780E218570A76776BFD90968F22181A9FDA1162E31E7060DA + 47580192FD2C91B56EFD7D1B805667DE42F47E998079B90A06BF4DFE13023B07 + D601D45AF300C67FCCC28C6C790D423C42B97B5633DC66F1CA481572FD2699FF + 019530DC40A9D6417A4D8FC94985516E20952F8344B6648098932B61F0EBE4E8 + A24271B63AD51B0BC20890C47B87CA62DD61694567D6445B1B0089F42FC4EF05 + 250C8C4D8C71E3CE9DA45582C4CAD7881B7F81DAAA5AC810BE3739B120DA1DBE + 4FCBA07F7402648B2AE3F7BF2452284FF0A017C509DC6E549178111696B5662F + 9F7EBF4E48160C303AEAEFF376480495499EF4A238AEB40B55DDBE04D2250D64 + 09DFE094117223CF8342A986A2BA5EE0257BD18BE2D8E20E54C5F486F9450D96 + F9466509BA814CF13102604531E3613BE2A55C81390A80453D0847790CCF5500 + 7E1708EE5C350260457174511B22537D615641FF75CCE2778230EDDAA612981D + C55105CD884CBB0E12EA3CC0117462197318970D5736EF15D464F86FDB036645 + 71C4FD2644DEF33700D015BBAA1D1E6705D03B9285E536207E7A00CC5047B21C + 4107967136C3670DA00D6AD94158AF78E3E0504E1D2233820C0074955DD9024F + 3837E80184B09F223233D80090C77F8965CCBAE5BB0A50F1029EE5DEA45782E0 + CC5A44668550A7E215DA2BC0296F82FAFC307A516C89BE002B8AFF475F60328A + 2DD1176045B125FA02AC28DE6F6147B1A500F4F7669F8AF12C76EF0B767BC29E + FA82E67E117C124D998430477F00D0E9D73FDEA872900000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'SetProperties_24_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003664944415478DA + BD974B4C13511486CF0891C49840A20B05F76E346E6449A0A222222822018248 + 79561E0129284269292010343C0AB4D35234A820A0804820C4270F1308818D12 + 14965A5B815668A140A18FEBB43C6C41DACE60FD379D999EF6FF72CFCC3FF760 + B0A1485603C2F3A26066610DA88A5BDD0A4DC574CC78ECE91D806CD58F0EF460 + D8E64944CE4384B3A309002D14E3EDA48C594921EB00BC67D05C1AB7056034D8 + 5E7B8CE91A82F6218DFBA857B7054078B618093874130055155435414B59C2AE + 0087530FB8BBB8EC9FC23003EBE8A817CF0220EC4E1DE2B3636076712F008DD0 + 7A3F7157008F4CD716C0E094744C75D21305687700507636933980D473300833 + 381D9256281B8E641CF4767672EED7E9753ED395EA814D406CAF86BBC968203B + 3D48C730A70640281B611003083E49CB55E1E62BE45000A38147961B93302947 + 08D4ABAB6BC715B5CBB2BF0230457D245B800D6974C84F9042535B03301EBB33 + DD62F70152FDA850B56FFFDE02A03CD187582DDBD6C692B68F53303239BD2B04 + E91CD804D01BEC5B88FECF12985F5C85E1AF32AB2B61731DB70368F5F6014C7E + 57C0AC6A6503423A46B8FBD731680ACA0019C20FA88241038DD60039F57D567F + 541A4F03E5E20AC855CB2688B9450D0C7F918D2FA9D567EAB20215945A902E78 + 87AA927C6179CD6017B98B33805CF907E2D7820686262413BCE4B32736014845 + 715AED6BC44B394F3C2B7AC815BFB76A5E92E00BDF665430382E01D5D2EAD6F5 + 9F722554A7FA518BE2545E2FAA49BB000B2B7ABBFB67BC5F25F205138C81787C + DE8E4C416DBA3FB5284EAEEC41FC5B1741B9AC833CF11BBB218C2A8C3B076A8D + 16CA1AFB419011402D8A93CABB109F1908F34B3A52E6E6CA13F5029E19B40540 + 2A8A190F3A9120F332CC11006CE28FC8A888E1BF0E20EC01D1ED2B162DB03B8A + 13CA3A109E150C0A35F5D7315BD80DE2ECAB3BEE01BBA238BEE405C2B3AF819C + D80F7045DDA48CB98C4BA64F8EE015D4E78652DB92C5DE6B45F8DD5013005571 + F89DF0282F8CD41B76AB985ED88C843961304B6CC90A445DA48CF319411B001D + D0C089A00610CD6D44786E840980AAF26BDBE031F73AB51644719E209C156902 + 2812BE2465CCBE19BC0E50F31C9E16DEA0B62B76C45C402A8AFFC75C60358A1D + 3117908A6247CC05A4A2D8117301A928FED7221DC58E00B055E3D0B9C05EFD06 + F268CF3F249EBFF20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005DF4944415478DA + CD960B50545518C7FF7B77975D5E820AA8B3A2B32A86C9432D75326D244350B3 + C601A3722C1C65F1D1683ECB0053CB1AD10A35C05D70724C2B30CBC9CCC7585A + 96E8886520B0A08EC20A018BB0EFD7BDBBDBB97741A1D9DD96AD69FA66EE9C7B + F7DC39DFEFFCCFFFFBEEF2E025166F39E42CCE5984761D8D77F67F8DFE44DEF2 + 05DCF8F6BE727CBAFD159EA7F778DE16599473D0599CBB186D3A5BBF92F78EAD + 7BCB706447A67F002F6D3EE02CCE7B9500D0D8517CAC5F897356A4B900F67C86 + CFDF5FEA1FC08B6F94388BB6647200FEC6B68223F86267967F00199B14CEC2BC + 2568D7FF1380C328CB97F90FE077E65EE137C07F11FF6F8075F2F3FD3C02DE25 + 0BE34C295A9564F8D7003E90CD84D3070CF6952F2FD6E38AB2B55F103E01D81D + BE0971A14A852EBD1515752D3E43F80440DB7D03503675A05D6BEE8668AE24D9 + E728B2933AFC0658BBFF07E787D949B0D00E6C2E3DEF35F9FBCB92A0D19BA1D6 + 9A38884EBD0515B52DD54683E169C586F91E21BC02AC293AE72C58310B269BC3 + 2705440240AD7908715F67C1A51A55CD9E95CFC4F905B0FAE333CE3DAB66C360 + B5E3AD92EFBD267F2F6B161ADBB4F8A95A05ADD1FAE0F73FD41AEC7D2DC5F746 + 343373AB382A6A988C4C2D8992444FD8B73A153AB3DD2705D860FD7A4FADE360 + 1CA47CCE5EA987BA5955E584F3805983D2138A6C934780B4B58AF102214E0606 + 058D1C13330A2DED5D287C7D2E342606B925677D866063FBD264182C34761EBE + 806989A371B1E23A345A5D0B4363F6B18F64356E0148EFBF367C44F424896428 + F8140FCA5B4D285C371F5D46A65FC97B47AEFC14D293A78022EB5DAFBB83CB57 + 7FBF51969F1DEF16E0854D0AE3C4C7128384020101A00840238AD63F8FFB061A + 5B14A7FBA7802C951BF3E4DF217DF6540EC06CB1E1D0D1D34C79BE4CE84981FA + F4B9D3C7F2C839A8D406D436DC41F18605E830F8FF39CEDBFF2D16A63C810052 + 21F7BB74283FF1E35DF275947A50407E4A325C923A6D420C46440DC0998A5AAC + C9980123F947B64D7192B464DF1A128FC743EEB279A47FD871F09BCB4899360E + CD1D7A5CADBE85E646D585B25DB2240F0AC8E5A1E1836452693406868AE1B059 + F1727222918F029FCF8380CF07CD3861611C5C7B7638C0399D6D94EC33436E18 + 32DA18D7BD8D66F0F36F0D108A44D09B2CB877B7093A4D6729F140967B808D8A + 35A2A0C082476263102C1642E0A0B128652244423E0C64018AEC8C75B6B2514D + 12814BC225E62E70A3BD1B6262EC48586D2E00104F596D346E37DC84C5647A93 + 7860A7278067293E75222E318E03E03B6CC8989588E0C000AE2A5863B209F516 + 7BF78ED9A40E2E39FB4CF702B293392BABC0AF4AF08422026083B2EA06518D4E + 2BCB5FFE957B800DC571A0F8D58FC68F4758881894DD8AB4A40484058BA0D59B + 38081BC95673A7BD8FE4EE0026C44A5D0A10002A4004B3D9026575351838261F + CB5F5EE91660E1CAC2102A44A81F3B2E1683C3834131163CF75402060D104340 + B11EA0B84EA73533DCEE1FCAEFDA71CF7DCFD1B00AFC728D0088C4D0E90DB85D + 5747A08C038F17ACD5B805E82E45B574CCE888A111E1E03166CC9B9180C8B040 + 7469F504821C01315D2D51A0F76E5D4AF43562E238A90BA0B20E7C71203A3BBB + D078F3968E5440589F8AF92B0069465724D1C3A78C940C016813E64C4F401401 + 100AA8070AE8880718BBA3DB036E40EC2E5F705570AD16027110DA5ADBD0D2A4 + AA2CCBCF9AFC770047232223D3C78E1E41563021F5C9780C0E13432C1470102C + 006B421B578AE875043D102E63B2732E056A20080C465363133ADADA8E930A58 + E015206353C9BBA1A1A13971E3633800B61AE2460DC540E20321E903EC6EEFB6 + 76C2487CE08B07D8F263016ED63740AFD1EE2EDF25DBE81560E14645A64814F0 + C9E393E249F9093900E9903044860711001EB7B3568D89F403E6C1AE59550402 + 7E7762C048E66C448A1E0076ACA9AA86CD6CCE2ADB955DEA1D60BD7C3AC5E75D + 9C3A751242830238806183422089082100AE3EA0D65AC831D07D00D86EE9F283 + 0B803D06B60C59000BB9AE5FAD84D381E4F2DDB273BDF3FD09C67C964EDFC03F + 4E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005D34944415478DA + CD960B50546514C7FFFB62970514155F03C290A298EC809AE9A4D3488AA2E538 + 86668E9938C6A239936F4B1123CB1CD10A334016EC615A815ACE30A539961696 + 31621188BC7CB1080ACB63DFAFBB776FDF7777054AD896AD693A3377EEBDDFBD + F73BBFF3FFCE39DF15C083ADCC38C6E5EE5886563D035FEDF50F4EE2938C1704 + 7D3D1778FA78C5AEA35C6EDA721EE0CDC35FF5CB71FA9A452E804345F874F78B + BE012C4FFB98CBDDB9022D7ABBCF0A64BC5F88E37B927D0358B6FD08979BBE92 + 0030D8937BAA5F8ED3D626B9000E7E86CFF7AEF60DE0F957F3B99C5DC93C80AF + F646D6717CB12FC53780A5DB545C76FA2AB41AFE09C03114662A7D07F0D9730F + F319E0BFB0FF37C0A6BC0BFD5C02C1CF56073737675DBCF15F03784739139C17 + 18F4959325B528ADB9DF2F08AF0058A777425CAC6844A7C186CBD5CD5E437805 + C0B0DE01D4A8DBD0AAB3B8219ACA88F779AAD4F8369F01361EFE9E7B37351E56 + C689ED05173C3ADFFB523CB4060B343A330FD161B0E2F2F5E64A93D1F8946ACB + 823E213C02ACCF39CF65AD9D05B3DDE995025231A0D17643B4EBADB8744D5D77 + 685DC238AF01662667C8860D1BA9248F568D088F883BB86E0E8C36163BF2BFF3 + E8FCED94596868D1E1C7CA46E84CB6AEF17B1A2D5AD40D151CB823162D0A8A55 + A9E63E019236AA268825F8DA5F2E8F1813F508EEB7E970E89544E82DAC570A50 + A3F97A57A3E7619CA47CCE95D6629A22122597CBA1D5E99B1D0CE69C7A4F59D5 + 2B0069BD57C3C2474D0A0D1D01915080DA5B4DC8DE301F5AB3033BF3CF790D41 + 6DF7EA0418AD0CF61DBB88A459932124F39557DFC62F577EBF569899AAE815E0 + B96D2AD3C4C9B17289584C0084A8BBD588EC4D0BD06972F4CB794FDB997706CF + CE9EC20358AC761C3D71D65194A994F4A540EDE2F933C60AC83A346A8CA8B9D1 + 809CCD0BD16E64B04B75B67F0A2813F9737ADE37484A980A3F92A0ED9D7A1415 + FF70876C4E917D28907726342C34F189B828840F1B806F4B6BB061C97498C80F + 91A09FBB8683148E8D61F1617129E64E8B46539B01572A6FA0A9A1F162E17E65 + 7C1F0AE4E505050F5646468EC2A0201938C68665B363897C4234693A61B7B3A4 + B42CB8D76E80C5E6204E3838E941BE1509451090F784E42C224B38313A82BCCF + A0A4BC1E123F3F18CC56DCBDA3865EDB51407220A57780ADAAF552B97FD6B8E8 + 2804C82410730E2C9F1307994404A148C0E7056DCB462BCB47E8201D9242D031 + FE9E5EBBC7E8333BE3C0A5DFEAC089C4B011989B75F5B09ACDAF911CD8D717C0 + 334291B0382636C605E064B094282027D706A3C5954824F2EA060DEFB0CB592F + 0054019BDD0500925336BB1D3515D788624C5261E69A2F7B07D8921B4342AD7C + 5431010303651039ED489AA9C0800029C42221AF00955C4F14E0A366A953A70B + 86DCD33D837503B12CCD0102F06B0D0412292C162B6A2A2BE18073CAA9CC3565 + BD022C79393B501828318C1D1F8D21C10110B2362C7C5281C1241FB40613DF1B + A8B455B75BDD00DDD1FFF99E435C74A44B010220F493426F30E266753519330D + 3A9DB551DB2B80BB1435916346878C08092600563C3D43819081FE90901CA02A + D04E4715601CDDD13E88B86B39DC4A50057EBA4A00A432747474A2A1FE869E54 + C0C09EFE1E0220CDA8347454D8E311A1C3217058308F000C25009D5A030F4027 + AE6F6CE37748B687C3BFAA103B3ED20550560D91CC1F2DF75BD0AC6E2C2BCC4C + 99F277002742860E5D3C767438C09891385D8121036490914E22712B60A00AB0 + 4E770E700F83B0AEBCE0ABE0EA75886572A81BD4686B69394D2A60914780A5DB + F2DF0A0A0A4A8B9910456670010407492197520011BFC198C8F66CE315408F25 + 7800D10DE552A00A62FF00D4D7D6C1A0D51D28DAAFDCEA1160C95655B254EAF7 + D16393143C002DC7316143307C7020AF00FD39BADBAA258D85F12A0768FD5380 + AA8A4AD82D9694C2FDA9059E0136E7CD204DA764EAD4490892FBF1002389F3D0 + 1037009958A3B3926560BAA2A6CB42BBA52B72C06475F0E549AB800258C9517E + A50C9C1309450794E77BFAFB03A58A8F4E6B81BED10000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Recycle_03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005CA4944415478DA + CD950B5014751CC7BFF7E28E1304137C0C0AA142A89068A953D98CC4F81CAB21 + 354233718C437326D3D25204D13247B4C20CF10E2C35CDC0474ED658F6D02433 + 038B40E4A5C94350DEC7DE7BF776B7FFEE81601C745C4DD36F6667777677FEDF + CFFFFB7BFC25E823E2B71EE5F76D884523C5608BF673F42736273E25DE53324E + E2404A9CA4B7FF247D2DB234F5309FB9314E047037367F701C07539F770F6049 + CA213E3369B108F0E6BECFFA259CBC22C601B027171F6F7DC13D80C54907F8CC + 4D4BD040D16E3B90FA7E0E8E6C8B770F206EC37E3E3379290160B02DF344BF84 + 9356CE7700ECFE0447B72F770FE0B9D7B3F8BD29F12280BBB125FD083EDD91E0 + 1E40EC7A1D9F91BC0C8D867F02701839691AF701DC56EE166E03FC17F1FF0658 + AB3DD7CF14487EB2DAF9597B574519FF35807734D3C1BB8021FC723CAF1C97CB + EEF40BC225009673CD88F345B56833D870A9B4DE6508970018D63580B29A6634 + B65B3A20EA0A88FA1C5D6254B3DB006BF67DCFBF9B18052BC36143F6B93EC5B7 + BF1805BDC182A676B308D16AB0E2E2D5DA1A7D73E3DC83298B4A5C06981E9FAA + 1A3264B8867C5A36FCFE5191E92BA361A639971C50CA81267D17440B65C585C2 + 1B68AEBB55C483DF6FD123FBB42ED1DC2BC0FC35BAF17205BEF454AB83C6848C + 42639B01BB57CD84D1C66263D6777D8ABF9D108DEA86765C28AE45BBC976F7FD + ED263DA68C0B42DEA542E8DBA97A3B839927DED39438052093EFCA88C0919302 + 0286412695A0B2EA36F6BC3C1B948575C90121847ABDD54489301C699FB397CB + 1113351152B25E61E94DFC9CFFFBD59CB4C408A700CFAED799263E3441AD90CB + 09809400D423E395B9D09BEDD89475D6650821B62E9F01A395C18EC3E711F3C4 + 2411C062A571E8D857F6DC348DA23707CA17CC9D162A2179A86D32A2E28F5A64 + AC7D126D267BBFC4BBC726ED19C4444F8607A98F96360AB9A77FA8226743702F + 0E68CF048C0898FD68640802870CC437BF5460F58247602687616AF6D76420B9 + D68E128904C9CB67C14AB3F8F08B7CCC9C1A8ABA6603F28BAFA3AEBAF67CCE4E + 4D542F0E68B5DEBEF7698283476290B70A201513171D01A94C0A19B9E4E462EC + 3C683B478613C012208E83986BF20A7656B83BBEDB49D9D00C833CD20572851C + 06B315B7AA6A40E95BB3490D24380758A75BAD547BA63F101682012A0514B063 + D18C48A814327101218F260B43064E8B381D1972B182283186ED10EF84981816 + 049A16002AC14B65B091E71B1595B09ACD6F901AD8D11BC03CB2DBD3E113C245 + 00396F476CF483E2B3D01542610ABB365A5971C782A808C17538D009D4014233 + 76FCF85B0578998200D0282BBA4A1C63E6E7A4AD38E91CE0B5CC70E277F1B888 + F1F0F15241CE3178262A023E6A25DA8D66D1019A4CC56B558D77014431270082 + 0336DA014072008BC58AB2E262E22937F944DA8A02A7000B5FCAF0927A290CA1 + 63C330D87700641C8DA71F0F17EB41DE51031C599C220E88BB660551CE01D3CD + 7E070860131CF8B50C12851294C1881BA5A504CA34E854FA1ABD53808E566C0A + 1E33DA6F989F2FA49C0DF3A685C36FA027DA28A39806A1E8AE55371131AE9B60 + 4F80C8B06007C09532483D94686D6D4375E5758A7480CF3D1DF35700328C2E07 + 8C1C3125286028A4AC15731E0B87BF8F27149D0E90823390D12C7403CBDDBBE3 + BBE9601DDF04808B02805285863B0DA8AFA92DC8494B98FC7700C7FCFCFD1784 + 8E0E84C46EC16C0230D8DB137ACA00794711DEAC6B250714DB05C0F67461C258 + 8703170B4A215379A2A6BA06CD0D0DA74807C4F40910BB3EEB2D6F6FEFA4F0F1 + 210063260011F0F552424D8E3A855C26D680899C8E9DBD6EE7F89E209DF3404C + C135C8556A549657C0A06FDF95BB53B3AE4F8085EB74F14AA5C7470F4F22E705 + ED00F0567B908BCC05994C7440389E6D8C631875A5A013A20BCAE14009E49E03 + 5052540CDA6249C8D99998DD37C0ABDA695299246FEA5472803016710604F80F + 44E0505FE2805414BDDD428132D12ED580308064C481C2FC02F01C66E4EED27C + DB5DEF4F982E9C4EF8F434450000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005DA4944415478DA + CD960B50546514C7FF7BEF2EBB2CAC62A2D9A0182A86818294D9A8D3403E621C + 27331F446662C6A2396359692A88689A235A6186C8C332D36CF1919335368E8D + 1694396021A8BC6484E5CDF2D807ECDDC7DD7BFBEE5DC875045AB6A6E9CCECEC + 7DED777EDFFF9CFFB92BC100F1DA2E0D9FB9792974263B3C8D948C73F82C3956 + D2DF7DC9403F8EDF79923FBC2516AD463B76647D3BA8C4DB139FEF01388BA329 + 719E01AC4C3DCE676E8D13013C8DED9F9EC617A9AF7806B022E5189F99B45C04 + 78FFF037834ABC6DCD2227C0C13C7CB9F355CF0096271DE5339357A0C568F358 + 81D44F3438B13BDE3380B82D47F8CC6D2B09801DBB33CF0C2A71D2DAC54E8003 + 5FE1E49ED59E01BCF45E0E7F28255E04F03476A49FC0D77B133C0388DD94CD67 + 6C5B85D67F60C31DE9C7A149537B0EE0716697F018E0BF88FF37C0DB59970759 + 02C9AF16967FEED0BAE8AE7F0DE043751478373084474EE757E05A79F3A020DC + 027070EE0971A5A40E9D262BAE9635BA0DE11680DDE11E40B9B60DAD06468428 + 28AD696A6B6E4A664C960B67D3139BDC06888A4F558C1CF9889ADC5A15306E42 + C44789D1B0D8396CC9BD3C60F23DAF47436F62A0339845880E9305052535D035 + D48373384A78F047183D72CF67279AFB0558BC213B542AC3F7DE4AE5D809C1E3 + C4C5D2D7CE86D9C6B9A5805C0AE8F4F720DA8D1694DC6DC5A4C011C8BF5A0CBD + C1D8C8DA31EFCCC7EA5B7D0290C1737D74E098C8808051A02909AAEB5A7060DD + 3C74591DD89AF3E380C93F48988DDA16037E2EAD83A1DBFAD7F5269D1E0B9F09 + 0745D62B2EBB8BDF0A6FDCD4A4254EEE1360D9A6ECEEA94F842B65522901A050 + AD6DC6C1F53130320EB7141042E8D77A9D5184E1887D2E5EABC0C2A8081180B1 + D870ECD40F6C5E9A5AD69F02154BE6CF9A282175A8D375A1AAA611196FCD87DE + CC2239E7A2DB1042EC5C3D175D163BF61EBF8217A223E145CAD3DE6944DEF99F + 6AC8680EEA4781AC0B01A303626644042370E4105C2AACC2FA254FC3CA920725 + 831B9A2C691B8BCD8123DF1562CEB46034B49950587A070DB5755734FBD4D1FD + 289095A5F27B481D143406C3540AC0C1226E7618918F4243AB01363B8B76D2DD + 4D6431C6C68225F61424174C4A51342444664A428396D2880C0984D56647C18D + 6A722E85C96C417D8D16467D472EE98184BE013666BF29577AA73F16120C1F85 + 0C5E120E2FCF9902B9172DF684D098C2CEBA49530AC3490060856F72CDF5DC79 + 0C026C477E713538A29E00535D59058BD9BC99F4C0DEFE00165034753E2C3C4C + 049081C5B267A788C7C66E0634598821B296D5B63993F4262512381C2EE7E47B + 6AC858D86C024015784A4A006C282FB9098EB32FD6A4AD39DB37C0BB99446FBA + F4F1C9A118EAAB809467F1625418862AE5A06989A882D0D95D168773D72499BD + 77C71C9CBB7701114A56F04725785A0686B1A0BCB4946C899B76266D4D519F00 + 4BDFC8F0A57C65A689934230DCCF0752CE4E3C1C8661BE72325EBB450061F1DB + 64B8F402B05CDF651014B0DA9C0020AE329ABA505D5646AE750F3B97BE41DF27 + 408F15754113C6FB8FF2F703CDDBB0606628860FF186544A414A53E0C9E2262B + 471271629D598E7B20B95309C02A28F07B392432393A3A3A515B75C7481C30D4 + 35DF030064185D0B1833FAA9B1010F83E2AC984F00FC0940A7A18B00484822A0 + B2BE9DC8EBE8B709854F44489013E07A39282F395A9A5BD0A8AD2BD2A4254CFB + 3B8053FE23462C99383E1094C3829819440195B7E804194D89B61346B38DE5EF + 3562CF8E5997C614EE0900BF08007205B4B55AB4B5B49C230E58342040ECA69C + 5D2A952A292C3418129641CCCC30F8F928A0371A09002D2EAC6DD6132BB2F73B + E13E1580F0498F3A018ACA402BBC5155510993DEB03F6F9F7AE380004B3766C7 + CBE55E9F3F1949DE17763301980C95B717544A624BA91340783BDAD8DE1EE01F + 04E92985E882EBB721552871ABA414368649D0EC4BCC1D18E09DAC59142DC99F + 3E3D12949D1101BCC91CF0F3F11201041B0A0056F21FC1C1C1A504BD10F7A09C + 0ADC220A28515C58441A1873F3F6AB2FB9E6FB135D7B924EF8E733B400000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005E64944415478DA + CD950B5054551CC6BFBDBBCBB2088A8A66036884280A24E26BC674943423C76C + 7C109A9958B268CED858F94410CDC7885698E90A629969B6F8C8B2A6A6D1D1C4 + 1E8E68082A2F11594484E5B12FD8DD7B77EFED9CBB886040CBD6349D999D7BEE + F3FF3BDFFFFBCE4AD0C558B2EDB8A05E33173A1387D48CEFD09D919A38433CA6 + ECFB0659EB63259D3D27E9EA236F6CD108EAB5B12280BB2365EF697CBA21CE3D + 80F8CDC784FDEBE2506BE4B029E3DB6E15DE9838B305E0140EA5CC770F6051EA + 1141BD7EBE08E0EED8F8C9097C9EFA9A7B000B530E0BEAA40522C0FBFBBFEE56 + E1E4A5B39C007BB2F1C5E6D7DD0358907448506F58881A23EBB602A91F6B7074 + 6BBC7B00F3D71D14D4C98B080087ADEA93DD2A9CB46C8E1360F79738B6FD4DF7 + 00E6AD3920EC4B891701DC1D9BD28FE2AB1D09EE01C4ADCE14F6262F46ED3F88 + E1A6F423D0A4A9DC0770BB729BE136C07F31FEDF00EF649CEF660B24BF5AEDC2 + 0BFB96479BFF35800F549321B880411F3991538CCB450FBA05E1128083774D88 + 0BF9956834D97031EF4E436DD5BD2CF08E5C8EC3A553E989D52E034C8E4FF5EC + DFFF4915B9B5382038249202700ED7008AB475A8355844886BA5D5A8ADAA84D9 + DC4C6FE50B100E5AF4C83A9399D8DC29C09C9599613239BE577A790D1A1CF234 + EA4D567C98180D2BC7635DD6F92E8B6F5F120DBDC9029DA159846820EFDED2D6 + 63D4D040184C4DC8F92D0F7A83F1BE9DC3B4931FA96E760840727F3560606094 + BFFF00481909EE54D5217DD91434B3BC4B0A2864804EFF08A2DE684541B90ED1 + 5183C190EFE51596E3F72BD76F68D212233A0478657566D3C85123BCE4321901 + 60505E558BDDCBA7C16C7360FD81735D16DF9630051535065C2CA884A1C9D67A + BD5AA7C74B139F11012C5616878FFF68CF4E53C93B53A078EEF4094324A40F95 + 3A33CAB40FB067450C8C16874B0AD041FD7A4F67146178129F9F2E1763E6A448 + 781075EA1B8DC83EF3F35DB2330675A240C60FFE01FE31E3234330B07F4F9CBB + 5A8615B3C78225F5530E9E257174CD8C128904C9F153D160B6E1D8D97C4C1D1D + 8CAA3A13AE14DC465545E505CD4E5574270A6464F8F8F651050505A2B78F2724 + BC1DF39E0B17DB2193D29F1476B244D6CE8BD1A4E1E0C991AE9A5EB7930B3431 + ACDD3967393B2E5E2F8394BC676AB6E2DE5D2D8CFA862CE281848E015665BEAD + F052A60F0D0D410F4F393C1801AF4E8980C2837C80F4951AD36CE5505C594F0A + 388B5210F148CE399E82412C1E151A081B4B360102E02065E8BCACA414D6E6E6 + B5C4033B3A0398C1489933E123C29D00121EB1D1CEB994284001480DD1948E96 + 158B2B27D7DA9E3BE7200A70C8C92B032F6108008BA2FC1BE47D6E8E266DE9A9 + 8E01DE53878391160C8F08432F6F4FC861C7EC49E1E8E9A580816C281480CA7F + EB6E5DEBCAC5A2A4050E479B73721C193A082C4B014A213032582C5614151490 + 2FF2634EA62DCDED1020F6ADBDDE8CB7DC34645828FAFAF6804CB0E3E58961E8 + EDAD1015A03EA0CE365B1DCE55D39EB7B6A1BD0A0F3D70E98F120852398C2692 + AAC242A24453EFD3E92BF51D02B44451173438D86F809F2F01E03063C270F4ED + A94483C12C02D01E1756E844B389AB161E166D0F4015B051806B250089754343 + 232A4A6F1B49027AB54BCCE3006433BAEC1F18307690FF13900A2CA68F1F0E3F + 0220973953202A60E34921BEC588FC5F57DF624A2740112472056A1ED4E0BEB6 + 3257939630E6EF008EFBF5EB377748F04030BC0D2F12803E3E4AE88D4401E201 + AA407975232CACBD5313D25F64689013E06A11180F05B4155AD4D5D49C260998 + D52540DCEA035B7C7C7C92C2C342C038AC88194F0CD9C3135E0A2951412A66BE + 89EC4C2CF728820F576C6F634C7A8F02FC4201149E282D2E81496FD895BD53B5 + AA4B80D85599F10A85C767A3A32220B15B10F36C38BC950A188D46C8490B1CA4 + 05F7C9566BB270ED93D04E0560C4B0A79C00B985907A2A7133BF00ACC592A0D9 + 9998D535C0BB191318A92467DCB82830224004940A397CBD3D4400EA01FAEF48 + E3F8F866D40AD2624E96A52DB805A94289BC2BB910783C9FBD4B75B66DBD3F01 + CD089C4ECF0875F40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005EA4944415478DA + CD957D5014651CC7BFBB77C771C029BE66C38BA142BCA6626429D3884EA60E53 + 438AC498892587E6348DE53B82686A235A61A5272F969966874A9636F587A509 + 968DE820488048BC6B1C70DEFBDBDEEDF6EC820A23106C4DD333B373CFB3CFEE + 7E3FCFF7F772140618A9BB8B38F5DA04749819881D1907CF227FC34B547FFBD4 + 402FAFD87582536F5884761383ACDCB34312CE4A8B177E330F7C8382CD89E200 + 5EDBA1E1D41B130500B12373FF697CBA25491C40CAF6E3DCC14D49D01A196CCB + FD7648C25BD35EE80628C2E1CC647100CBB28E72EACDC90280D8B1F59393F83C + EB1571004B338F70EAF42502C0BB07BF1E9270C6CA842E808F0BF1C5F657C501 + 2C493FCCA9B72C459BD129DA81AC8F3438B633451C40F2A6439C3A63190160B0 + 537D6A48C2E9AB167601ECFB12C7DF7B5D1CC0CB1BF2B90399290280D8B12DE7 + 18BEDA9D2A0E20697D1EB73F6339B4FFA00CB7E51C85265B251E40B4728F211A + E0BF18FF6F80B773CF0F3104D42F7617F7FC81D571E67F0DE07DD52C7083C0E0 + 1F39595C8392EB0D166D6BCB398E652B2870E50C8392A29CB43B8306989592E5 + 3976ECA32AB2B5DC7F62F0141EC0CD0ECE880BE5CDB86B72A0B2B103233D2994 + 55D6C262B5F35BE51CB843363D0ACEE4A559FB0558B8262F422AC3770A2FAFF1 + 938227406776800760DC8303A86EEA80D6601320EADB0C783A3C1056A71B1D77 + 8D28FEB50C7A83F1B68BC1DC531FAA2AFB04206577D53F3020DACF6F1C243485 + 863B3A7C9016073BC36253C1F901C5DF5B1107BDC98676835580D099ECC4894E + C41008854C0A9A7CAFACAA1E97AF5CBFA1C94E8BEA1360F1FA3CCBD46993BD64 + 522901A00940277256CD21A76007E5805C0AB4EB1F40741AED28AFD762D6D449 + 0280CDEEC491133FB80AB355B2FE1CA859B42036842271686E37A3BE558B7DAB + E7C2EC706373FE8F038AEF4A9D834662FBC58A66182C8EFBF7EFB4EB111FFB04 + 3C085C270945E1999F1B48630AEAC781DCEFFDFCFDE6CD98128CC0B1C3F0D3B5 + 3FF066420C5C2C058A1A5CCBE0F3B5A5DD8826AD097CEA5CAB69C5EC6913D0DA + 61C2958A5B686D6CBEA0D9A38AEBC781DC5CA5EF485550500046283D41732C92 + E2C22191D068D11AE074B94982D971BBD30CBBC345C038B0243A7C80F89051FC + 45D19090104687F8C36273E072652368F2BE8954434B43138C7A5D01C981D4BE + 01D6E5BD25F752E43C1E1A0C6F4F19E4120EC9B3A320F79008027C62F2A7B292 + 90F0A54978040861CEF27356B8D7B5C7C1C9B870F17A9DF08EC3C9A0EE662DEC + 56EB469203BBFB038827B4672227470A001E3487C5B322E045E6468B5D00B091 + 935737773E10EABEDC64CD1000370F4214A3430304D1121E0034993B515D7E83 + 38C62CD464AF2CEA1B60AD3A92F855111E1581E13E9EF0A058243C1B8E61DE72 + 4889381F0ADE72F37D07EE01A0D7FA9E3B4ED2068BCBEAC092B0D86C76545754 + C00536E654F6CAD23E0112DFD8EF43FBC84C2161A118E5EB0D1979FCC5D808F8 + 2AE5D01BAD8203BCC0EF0D1D0F4ECF8B128BDDEE1E6BF23B35743C9C4E1EA016 + 1C2D85D164465D551571C232E274CE1A7D9F00DDA5D81E3469E2E871A37D2125 + 00F133C3306A980252727AFE62C91F83C5C10ADD91176538AE5BBCB70B420EB8 + 5C28B976139C44069DEE2E1A6B6F1949050CEFA9F710006946BFF905F83F35DE + EF114839060B66860B003A838984811612AAB6A5130ED21D0561EE9E686F00DE + 0107D30500D257DAFE6CC3EDA6E6524D766ACCDF019C183D66CCA29089819070 + 4ECC7F260C23950AA1126412490F07D8EE2A601F3E7D77527601548392C9D1D4 + D8848EB6B6D3A402120604485A9FBF43A954A647460483661D983F231CC3BD3D + 490E9808002D647913E9785607D36F12F2EB29A18F75015CAD06ED21476DCD4D + 98F486BD857B54EB0604485C979722977B7CF664741468B71DF36644C0472187 + 5221854C2A11AAC0CAB8C9C7B987CAD0D52331F93D1EE0120F20F7446579059C + 365BAA664F5AC1C000EFE4C6D212AA78FAF468487880999150C83D603219EF3B + D0A633C168657A57422F1780C9615D0E5C2AAD1200CAAE948234D6E70AF7AACE + F5D4FB0B9B4B864E129537F00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000006004944415478DA + CD947D5014651CC7BFBB77C7F1AA686816A09242203822A64E66A38C53A38EA3 + F982E898892577DA34D398E21B8268BE8C60452F7A1E62996976A84469E51FCD + 6062938D2F21688088F222E00107F7C2BDEDDEEDF6EC1E908E1CC136D3F4CCEC + 3CFBDCEDECF7B3DFDFF7F7A3D0C752E714F187362C80A1934566DE050C64ED52 + CD16F70CED8FD0A6BD46797B8EEAEB25A9FB0B79CDC6856823005257C6E1F338 + B279913480357B4FF39ACD4BD06A6191A53D3F20E12CF53C71CF3CF41DF2B725 + 49037873B78ED76C491201A4AECC8345F87C7BB23480945DA7F8C35B93D16266 + B153FBFD808477A8E7770114E258E6726900ABB24EF09A6DCB4500A96BC76767 + F065D6EBD20056661EE735E92B4480F70F7F3B20E18CB50B3D009F16E0AB5D6F + 480358917E8CD76C5F09BD9991EC40D6273A9CDC93220D60F9D6A3BC26631501 + 60B147737640C2E9EB167B003EFE1AA7F6BD250D60D9E623FCA1CC141140EADA + 997B12DFEC4F950690BC298F3F98B11A2DFFA20D77E69E802E5B251D40B2F223 + 4B32C07FB1FEDF00EF698B075402C6E970B63535FEC9B9B97BE45841812F6359 + 5C2ECC5537F71B60664A96EFF0E1CFA8C85FABC3C644C67FA09A09BE1F18C223 + 674AAA50DD64444CD85034EB0DB871AB1A569B43F8BB8C077FD46E44FEB93CB5 + CD2BC0E2F579B172057EF0F3F71F3536F239B4773A2100B8B9FE1971B1AC011D + 1627EA5BCD489E118307ED7618AD0CDA3ACC28F9AD144693B9C9C5E2D5B31FA9 + 6EF70A40527F3D6C64784268E808C8680A750F3B4400D6DD3F80CAFA36B498EC + 22C4BD87264C887C16344D43465164A7505A711F57AEDEBCA5CB568FEF1560E9 + A63CEBC44913FC15723901A051AFEFC087EA4438580E5BF38BFB14DFB7261146 + 8B1DAD269B08D16E71A0BCB60D536246C2D7472E02D81D0C8E9FBEE02AC85629 + BC3950B564EEF4288AD4A1A1B513B5CD06E4AE9B051BC3F5CB01A51C6835FE0D + 61303B5076BF0533E2C78230C0404A5170EE975A321722BC38A0FD29342C74F6 + B4F8488C1C3E08C5A5B57867C124B8C96319478B4918BD97626FEA2CD4E94DB8 + 54DE00B38D815C26838C5CE64E0712278E46639B0557CBEFA2B1AEE1A22E4795 + E8C501AD362878A82A22221C43827C210387A533C7892F93CB68F1729140B22E + 0E1C3145880647CEC22EFCEE22370CB904FB8D24C00EC6859A07ADA088FD16D2 + 0D0F6AEB6136B6E7930CA4F60E9096F7AED2DF2FF7F9E84804F82AE02BA7B02C + 3196D450465EE014EB6875B850D560209D01B082381114C485733784B0274485 + C16A77E2CAED3AB888734E8645CD9D6A386CB62D2403FBBD01CCA365F4B9B809 + 71228052C62369462C02FC14622885CE103AD2EA748BADE972A34B5C1015EE39 + F13777B71BAC0B976ED610872802C0A0B2EC16718C5DACCB5E5BD83BC0464D1C + 6859F9B8F1B1181CE80B1F9AC7A2976330284029265C006088520569B71EA1AE + CBED161CE13C4E10F184E870F1AB2F0B00A061B73B50595E0E17B8C967B3D75E + EB1520E9ED838174A0C21215138DA78203E0437198FF520C8283943D19106ADF + D9E34037001E3B77BBC390395C525A038EA261B674A2A6A28240598714E5AE37 + F60AD0D58AAD1163C7848C080986827261DEB4180C1DE4870EB3B5A704157506 + 22C0F57CBD08D00DD3B54F8C1EE501F8A31A3C2D477B7B07EAAAEF9A49070C7E + 54EF0900328C7E0F0D0F9B322AF469C8896173094008019093402A4837702450 + 5627274E474194E5BB83F8B80B62065C2E5CBE7107BC4C01FD433D9AEA1BAEE9 + B25327FF13C0E99061C396448D190939CF620E011812441C3059C4120835BEDF + DC013BE3F608F3DDA28F03080E38590F00C860ABAFAB479B5E5F443A60619F00 + C99B8EEC0E0A0A4A8F8B8D848C6730E7452184BEF027634E21F764C04646B330 + 0B3C5DC03DF9F55D25F10054825228515D750716A3E940418E2AAD4F80A4B4BC + 14A5D2E78B1712C683E69CC4817108F453C264B6880042DA1B0D16D2E38CD710 + 0AE7F8E8D11E80EB95A07D94B85D560EC66E4FD5E5A8F3FB06D8A09D4ECBA892 + A95313202700B3A7C5C24FE983C1010AF8900C0853CFCEBAC9CBF927DAB02794 + 423EC4E1E3C2AF04802200A557AF81E7F04AC101D5CF8FEAFD054AC88E4E8B96 + 5B870000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000006274944415478DA + BD957B5054551CC7BFF7EE5E96E5E12B341D40234558D1C9486B34A7F48F9A34 + D348919C5EF460B1FAA3CCD44C21B4CC11B5E8A1EB22F67E2DA65956FA473359 + 3A938D5A0A9A28912D6002BBC23ED9DD7BEFEEE977EFAE890908B799CECC9973 + F79C73EFF773BEBFDFEF2C875EDA939BBE629B9FBB071D7E195ADB2AEB5E5896 + CCE17A5AE77A7BB978C36EB665C95C5CF04928ADDCD72FE135E6BBD4B1C4FA2D + AC4BEFD50650B47E17B33C9F072701686D255BBFC6B6E5F7690378E2D51DCCB2 + 7C3E1C5E0965D6AFFB255C563C5B1D4BB77C89AA17F3B5013CF68A8D595EC857 + 01B4B6D2CDBBF1CEAA026D00856B3E655B5714A0CD2361B5F5AB7E09BF543C27 + 06B00BEF952ED406F048D947CCF2E24215406B7BE9EDCFF17ED983DA001E2AFD + 8059563EA002BCBCF58B7E09972CCA8B02BC558D0FD73CAC0DE08195EF31CBAA + 87D0EA11353B50F6A60D1FAF2DD406B070C576662979840024ACB5ECEC97F0CA + 27E74501DEF8049FAE7B5C1BC0FDCBB7B12DA5852A80D6B6BAE2637CB6BE481B + 40C1B24AB6B9E451B4FD87325C5DF1116CE566ED009A95BB34CD00FF47EB15E0 + BE67AD23F40237951E2772E0B2687706C086922D43E9C584AE7B69AE93E61CF4 + 490763CC4E53A738B01A49C2C15D15C5E7FB0C30BDB02C7ED8B011665A7A346D + 74E6C4FE9C26656002A68C4B85DB1B40F379277E39510F7F675059AA6160DB03 + 2E54EDA92CEEEC1160DEE2CA1CBD806F8C0909A3C6645E8F765F089BCCD3C1FA + 9009CA96CF0F9C4693D38705B7996010789C6DF3C3E517E1ECF0E0C04FC7E072 + 7BFE9225DCB9F375F3C96E0128E98EA68D4CCF4D4D1D0E1DCFC1DED2A1028423 + 7DCBC5FD354DE8F086606FF360FE6DD9F8A3D50799DED5711C78FADEB1536771 + E8F0F113B6F2E209DD022C5856E9BFF1A61B1204BD9E007834B5B9540029DC37 + 80BA4627DADC0115E28F16174CD70D479CA0570FA3000482223ED8B14FAE2E37 + 0B3D39707AFEAC6963398A4393C387C6D60EBC563C034129821555DFF72ABEEE + 89197051EC1DEE4E15A2DD1B44ED59272699D2618C1310A7072E5028AAF7FCF0 + 279565460F0E58F7A6A6A5DE35756226460E1B80FDC7ED787A4E2E18C783E7AE + 5EB1061271B862109E10418874100F26678DC039A717876B7FC7397BD37EDB06 + F38C1E1CB05A93070D316764A46370723CC58E61C1ED26E8753A343BDC10A5B0 + 6AEFF9761F0262588D6F84BA12A0B9D34C241C20EB699FCCD4355194D1EEF143 + 61F7523534FFD9088FABBD8A72A0A87B80A595CF18128C1559D999488C176014 + 38144CCF413CF9A7D3716A2CC311C4C4019972434950E55919955C5184DDFE10 + 5C54414102686876408A44101225349CA947B0B3F305CA81F53D01CCE675FC9E + F1378C5701E2F51C65B3098946011E7F500D4390C4EB9A2EA8208A981C13FDF7 + EFDCB169F007423874D20E32840044D4D59C20C7A479B6F245BBBA0778DE321E + BCAE76DC841C0C4C8A8741C79047D60E4834A80EE8A932948AF487C2D1938711 + 138FBA20D34995B9700C449464FC78BC016146151008A2AEB61632229377962F + 3AD22D40FE539B93F824C13BD6948D6B0625228E6798736B3606271928F68158 + 08187EB33B2F09C57A381C03888526373B5DB5FDA002001E1EAF0F0DA74ED19C + 7FF0EE8AC5AE6E0162A5E8C818333A6578CA200288E0EE29591832C00841CF5F + 7240544E1AF9C7EE8B3970291C517744FA233870AC0111AAA2F6F60ED8EB7FF7 + 50050CECAA7705005D463FA7A6A7DD3C2AF55A089C8C59534CB88600DADD3E0A + 03AF667DFDB90EB522E44817808B30B1F1C6EC5151805FEBC1783D5A5B5AF157 + 63D3115B79D1E4AB01EC48193A74FED8D123A1A788CD9C928D21C946F56ED7EB + 75E40043201481A854007589B198F8E52EA83920CB38F8CB19309D80467B239C + ADADBBA902F27A052858B6ED95E4E4E495E37332A16712664EA5244C30C0E5F1 + D17DC043B9951B5BDDE80CC951617651F47200C58190140500DDACF5A7CFC0EB + 726FACDE605EDA2B40FED2CA428321EEDD49B913A0632239604292D1405D50F3 + 20A2DC0374358B72245605912B4F1F0B4914A00E9C60C0C99A5A888140916D43 + 7155EF004BACD3781D77E0965B72C90102983A0E46431C65B11782E2007DBC85 + 6E425F40EC310995DF13B3AF8B021C5500E270ECF011B008EEA8DE68FEAEABDE + DFB63A8E4E0E5A49630000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000006544944415478DA + A5967950136718C69F4DB20987081EA888C85015A2E28858B55A7BF8871DB56A + 45A4D4B1566C25A8FF54EBAD8068B58EA0233D30068F5AABB5E051EA519D4EFF + D0E24CED682D820E085A0544E5CE41CEDD64FBEE12145BA0B2FD92CC97DD2CDF + F3FB9EF7797761D0C558BEE7BC90B362068C361EA9FB7F4677C6D62553D162E7 + B0F3E825EC5DF936D3D9754C578B2CDB7D46C8F964169AAD7CB7C4DB8F54C305 + E857CD960790925520EC5DF50E1A5B38A4E75EEC9E03BA69D29C66F809863573 + E40124EF3C2DE857C7A18100E48EB47DE7B07FDD5C79004B3E3B21E8D7CD43BD + 854386E15CB7843352664A73FADE1F716063823C800FB7E509FAF5091280DC91 + 9E538043A989F20092B61E17F66D48449D99C316C3996E096F4E99ED05388DC3 + E9F3E5012CCA382AE837CE9700E48ECD5F9DC43719EFCB0358987E44D06F5A20 + 017CBAEF876E09A72D8D6B05F8321FDF6EFD401EC0824D87057DEA42D49A5DB2 + 1DC8F8220FC7B627C90398BFE1A0A04F5B44001CB6EB4F754B78D3B2F85680CF + BFC3F11D1FC903786FDD7E616F7A920420776CC93E86EF7726CB03485C9B2BE4 + A42D46DDFF68C32DD9479197A9930F205BB9DD900D3077852144C53293E86B0C + 03268AAE8E008460A20AA63FF46B7F2D9DB3D1B97A5AB25E10844A3A55CA4028 + E6385C399D9DF2F88501DE4CCAF0E9D72F44473F2DA61F6358964548487F04F5 + EA89007F3F68E8986555F45142411728190518FAE2AB512224C80F0E17874693 + 0D0F1F37E0C6AD0A586D0E71D96201C241BB1107CEE6A6D83A05885F993B52C5 + E2BCAF9F5FF8D0612FA1A9C5D92DAB07F60940C2EB5AA8BD70F7EBAC305A5D68 + 6836A3F0B722184DE6473C87B74EEDD1DDEE10806AFEC7A0C161B1A1A103A0A4 + 152A9F3463B7EE4D082F9004F192938577505DDF82F8D7A224883B3566F01E81 + 5C62A0A0F58A4AEFE3EAB59BB7F23253467508F0EEDA5CEB98B1A3FD58958A00 + 14A8AE334A006ECF8B65F15271359A2D4E3CA833216E72142A1E59C090B8B819 + 11C0EE70E1C8898B7C7EA68EEDCC813BF3664C8E64A80EE24EDA0038F78B0194 + 5535A0CE649720EE3E6E86367C00346A1554B4199AD048A5C83F7BF901754544 + 270E182E840E0A9D3629661806F7EB89CBB4A3E5B36228640AA41EBA4CA5E81C + 64C79229305AECA8A700D6991C547B27FE7A62C178ED40290F350D165C2BB98B + 9ACAEA4B7959BA299D3860300404F5D6454484A157800F91430A15AB5442A954 + 80A5136E37C0793CA037DC0424CE1E9A7972497C19AD1CCC360E16FA87D44C10 + 358D26F0BC1B16EA86870FAA6036361DA00C24770CB026F7638D9F6F76947618 + FC7D58F8AA15487C63047C342A586831B18E560787F29A6649901721C49900C6 + 4685C2485D535D6F81CDC94BE173B9783499AD5442379CD49EF7CA2BE0B0D9D6 + 53067676063053A1549C8D1E1DDD0AC03294E8E1F0F765A53A8A6112E36077B9 + 9F897BBC203473DE6313C18A300E02B8F7B09E1C1308C085B2E25BE418179F97 + B9F474C700ABF5D150284B468C1A89C01E3EF0513198F36A147AFA6B606AB14B + 9DE122B5520A9B9B442571AFE83F8F632307C16A77E2EAED4A7288A0ED0E9495 + 94808767DCA9CCA5D73B0448589ED343D183B5440ED7A24F903F344A01B32669 + D1AB87062ACA80F8113BD2EA744B3BA6D27AC55B5DE02910E239B717C4C5F1F8 + F5E63D728D81D9D2827BA5A5E484B55741F64A638700DE56AC8F183AA4EF80BE + 415013C0CC8991E81DE04BB5B4110023EDB4ACBA111CDF26EC75C0ED05104148 + 3C561B06A7F82028220028D0D4D48CCA8ABB66EA80C0F67AFF02A09BD1EFA161 + 83C68787F6875AE1C1F457A2D0A7A7AFD4016D0ED85CE24E3D4FED6ECBC0B372 + B4BAE322804202F0D0F3A2F6492D1E55555FCFCB4C1EF75F0027FA0607CF8B1C + 32182CC31300954072A0450AA2D872F71F9BA480F19E76006D30DE798C36BC15 + E0CF0A080A15AA2AABD0505B5B401D10D72540E2DAFDDB02020236458F1C0615 + 4566FA442D02FD34F0F5A127A0D7013B39E0720B922827085EF1E75D9032C0F3 + B872A31C829245C59D72588CA65DF959BA355D0224ACC94DD268D45FBF1C3B0A + 2A81C3F449621B5217982D128028F4A8C18C1607FFF41EC07700203AE0E45A01 + 40B7F6DBC52570D9EDC979592907BA06586598AC5032851326C48205014C1C4E + 37223502FDD5743F57482174701EA91DF976C17B6EF7DE63A74B04282300358A + AE5D87E0C1D4FC5DBA5FDAEBFD0DEB5E924EFE25B2870000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Recycle_10_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000006504944415478DA + A5967B704C571CC7BF7BF7DE6C362FF17E449814491483A87A3463F40F1D22A5 + 24A85115AD6C309DAA7A3F12A1B4236150626D42AB4A35F168EA51C6F40F1533 + 65A8AAD08830E441E521FB7E64EFDDBDFDDDBB2B8D3689E4F63773E6DEB3F7EC + F97DEEF7F73DE71E155A898F769D13777F3C1116A7076D0DAF0854D55A505E6D + A67B1117AE9662CF9249AA96C6AB5A9B6CF18EB362CE2709303904ACCFBBD066 + 0829362D98009B93C7D6C317B177E96465008BB69F12733E7D1B46BBD0AEE44D + 63BDE11CF4CBA6280348CB2E14F72E9B8A67361E19B9E7DBA7806EA27C4D37FC + 04C38A779401A46E3D29EA974F431D01288DF47D6790B76ABA3280059F1F13F5 + AB92516BE5916938D3AEC4996989F23563EF8FD8BF768632800F36E78BFAD533 + 6400A591915388AFD6CF520690B2E9A8B86FCD2CD458786C349C6A57E20D6953 + FC0027713063B6328079998745FDDAD93280D2D8B0E738BEC97C4F19C0DC8C43 + A27EDD1C19E0B37D3FB42B71FAC2693E80DD05F876D3FBCA00E6AC3B28EAD7CF + 45B5C5AD5881CC2FF371644B8A3280D96B0E88FAF47904C0638BFE44BB12AF5B + 94E403D8F51D8E7EF1A132807757E5897B33526400A5B171E7117CBF355519C0 + AC95B9624EFA7CD4FC8F65B871E761E467E9940328CEDC24DA05303E2533B05B + B79E3A7A349F1E0EE3380E3D7B764778C73084060741437D8E63A9A9C1D000B5 + 8A818A6EB41A357A8607C1E5E6F1CCEC40D55F75B871BB0C76874B9AF69608F1 + 80D384FDA773D31C2D02242DCD1DC47238AB0D0AEADB7FC02BE8101A0C9665E4 + 240C25919A9AA17B95EAC53E5D3B866A10DB2B1CF4889A4A867B586387C9EE46 + 9DD182A25F6FC264B63C1178BC756287EE4EB30024F96FBDFB44C64544F4A089 + 55287F6A6C97D4BD3A87607A7C2C02384686287D6C81402714B51FF866C9435C + B9F6C7EDFCACB421CD02CC5C996B1F3E626810C7B2F29B55D698B05D371E621B + 9C200D395E548A8A1A2BA6C5C78023E5FEAC34CB206ABF5A4E971B878E9D170A + B2745C4B0A942627C447ABA80E95B5B646008FB76D5EBC78AB12466B031ED271 + 2C61547F3CAAB15162062CB500167846A52838FDCB233265540B0A18CE45F48E + 983876D800F4E916864BC5955894388C7CA096EBFEB2B85B51871AB39320DC94 + DC8211D111D004A8E1F178F0B8CE8A6BC5F7F1B8BCF2627EB6EECD1614301842 + C33BE9A2A222C95481E048B6E471929C6AF9A0D9C07B60B435E069BD9DDCEE91 + EBEBA526E933F58D18581D6E981D3CAC2E01766AD5F53679753CADB7D23317AA + 1E55C062AADF4F1E486D1E6045EE124D9076674CEC0004077208A23FCF1C3790 + 2661FD8E57C9A75E97DB2B2717BC80E011E512497D91CC62730AB0B908820EA4 + 167B03CAA98C6E9E47032DCF07F7CAE07238569307B6B60490C8A899D383870E + 9601B4010C92C8D5215A0E669A4C0270BA05945619FD897D0002251E11130113 + A953596B85A3419081DC34B6DE62074F031BDC6EDCBD759B14E393F2B3169E6C + 1E60B97E301875F1AB4306A1434820B49C0A53C7C6A043B0066AB564269F020E + 597E506DC546252415787F5F8295605C04F0A0AA163CFDE674BA70B7B81802BC + 234F642DBCDE2CC08CC539214C08678D1E188BCEE1C1086455481C138D8E211A + 3296132C41486F5C426693DF5E4AEE4FFAEF7E5C746FD89D0DB872A79C14022C + 561B1E94949012F68E853B979A9A05F02FC5DAA8FEFDBAF4E8120E0D2B62F2E8 + 68740AD3CAC9396A3E05C8031EA94196DFA78404E0FBCDE307710B022EDD7C00 + 8FA8427DBD11E565F72DB4023A34CDF71F00DA8CAE4644F67EBD6F447704A845 + 24104067027866B6CB25A07971FF8991DEC4DB683E59018F1FC0EF8BB8D8485A + 353C2E4B006050FDB41A4F2A2AAFE767A58E7C19C0B12E5DBB2647F7EB8300C6 + 8B89A3A804A15A04D27A66FD0A3829392F2BF0A207FE2987282B21B9BF8800BC + F42DA928AF405D757521AD8069AD02CC5A99B739343474DDE04103C0A9044C1A + 1D8B3032A191DC2C95409ABC823619A7DFE98D00CF61FCE5181EDBC707F07B19 + 44864559E93D584DE66D05D9BA15AD02CC58919BA2D1047CFD5ADC10B0E4D949 + 63A465A841B096A5923072095CBC97EAEBAB3DDFC4034D5578EE81CB37EE4154 + 73B873AB186EA733353F3B6D7FEB00CB0CF18C5A55346A541C022480B103497E + 4E76B1F4819112493B9CB4D178FC7B80D00CC0F0D8BEE481E7002C6E5EBB0ED1 + 8B0905DB743F37CDF7373D94834E6EF01B4F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_11_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000064B4944415478DA + A5970B704C6714C7FF7B77379BA737453C46C94A8B41D050DAD1E950AF528F54 + 8DAA6865831AAADEF210AA3A12C633D626B4AA54138FAA47A9696714336568AB + 0925C29044A279483677DF7BEFEEEDB9DFEE12D324E4F6CCDCF9BE7BEFDE7B7E + DFFFFB9F9B13151A89053B7E92B67E3C12569707ABB27F69ECA7589FF0268A2A + 789CCF2B46ADCDF5F8FAC34A33B6CD7F4BD5D073AAC65E3A7FEB6969FB8251E0 + 1D1E3C6F7825E041258FA2F25A9A4B387BB9003B168E5606306FF32929F39331 + 30DB4524679F7D6E0839D6CE1E01AB43C086FDE7B073D158650073371D97323F + 7D1B3536B149C9EB46B2E9348C8BC72B0348CC3826ED5C3C018FAC0252B3CE34 + 4D01C32836A6987E8469E93BCA0012361C958C4B26A28A009446CAAE93C85E3E + 4919C0ECF58724E3F229A8B40848339D6C52E2B4C4716C4CDDF90376AF8A5306 + F0E1BA1CC9B8228E01288DD4CC63F83279AA3280F8B507A55D2BA7A28217B0C6 + 74BC498957278EF7031CC5DED469CA0066A6ED978CABA63100A5B17AC7617C9D + F6BE328019A9FB2463D27406F0D9AEEF9B943865CE441FC0F65C7CB3F6036500 + D393F64AC6E41928E7DD8A1548DB9683039FC72B0398B6728F644C994900023E + 371E6952E2A4B9937D005BBFC5C12F3E5206F0DEF26C69676A3C03501A6BB61C + C0771B1294014C5D962565A6CC42C5FF28C3355BF62327DDF0FC00C3E3D382DB + B5EB60A05BB3E8663FC5999F8E3C09D21E8719BB4F6425DA1B0498BC28AB9746 + 8B5321A1A15D7B44BD88E61161D06838A8551C384EC50E35477395EAE9731A5B + 46E810DDB105E8161D748FC67B1536986D6E54D5F0B8F0DB35986BF93251C0C8 + 239B0D37EA0520C97FEFD4A5734C64647B7AB1EA71A24012CE7FADEE7900AE4D + F360F468DF8C250F401494F210A94150FBDF73EDE63D5CBAF2D7F59CF4C43EF5 + 02BCBB2CCBD67F40DF50AD46C3929454989BA4738756E19830540F9D46CDDEFC + 77492D0351FB611D4E37F61D3A23E6A61BB40D29503065CC30BD8AF6A1A4D2CA + 00361986831A9B6786FC93C3170AA82DB360FC902896B8F0214F893968E808D2 + 008F682B724FFC7A9F4CD9AD01054CA7233B458E7AB55F14BAB46B86F3F92598 + 3BAE1F3DAC662B78569CCB2B418DC585FBD41B8E18D01D16EA88E4E73C1E0F4A + AB2CB8927F07A54525E772320C6F34A080C914D1A295A15BB7CE64AA6068D51C + A6BCA667001A9A6BC9901E2F207A24D6EFC9FD9FC7EB1BE56BA58FACD43F8A70 + 50135B438D692B7A470D6F47D9231E16BB130FEE17833757EF260F24D40FB034 + 6BA12E34644BCFE82884056B11A6D320EEF56884D0C8DB5DCC80769788DBA535 + B42A40A0CC32806CB481FA8EB0B904EA0345589D026C4E11C5D498BA04C177B8 + 05DCBD5D08A7DDBE823CB0A12180719C9A3BD1BB6F6F0610AA5363D2D09E080F + D1424D0AC8669257EB747B5952590DC1F3044222550200B2FC3CA950443E720B + 2201B8712BEF3ABC5E61724EFA9CA3F5032C31F606A7CE7FB94F2F340F0F4648 + 10870943F434D7C16C7132003765BD5552CD240F6C87488907F48C84D9EA22F3 + 5A984A3290DB2DA29AB711A4170E8713B7F2F321C23BE848FA9CABF502C4CDCB + 0CE7C2B516FD4BD168DD220C215A15C60ED6A315C1C81F248D5F01BBDB430968 + FF3DBE95B3B93CD2B9BC2DF23F26328C9300EE3EA864D7788B15776FDE24256C + 2D8F6D5964AE17C05F8A95DD7A746FD3BE4D0B0413C098D81E68DD2C84566267 + DF06D97C010544BFF48FD5F0CFE53146DF897CE0C2A5EB45A410505D5D83A2C2 + 3B3C5540F3BAF9FE03401FA3CB919D3BBDD235F205FAA048181DAB67007205C8 + 95202BE0903DE0910F30F97D4AC800BE6B0135DCA288F3D7EEC223A950FE4F39 + CA8A4BAEE6A4270C7A16C0A1366DDB4ED177EF8220B50C104525490AD45A1980 + BCD2FBE46EB9D402E66386F4F801FCBE8889EECCDC7F51060087E2A262549597 + 1FA30A98D828C0D465D9EB222222927AF78A4210E7C52852A059988E2A42C354 + A01C7008123396588F0702D5C11420800B04E0A5BF178505B76131D76ECCCD30 + 2C6D14206E6956BC4E17F4D5C0983ED0AA448C1E1C8DB0101D6A792B33A29CA8 + ACCA4AFB2B3CF1405D43FAB7A37F74171FC09F8590380D6EE4E5C3ED7024E464 + 24EE6E1C60B16918A7565D888D8D4190CA83D143E84314A42515827C0A90075C + 82172ED1B7F7421D0FD455819521D5FFC53F6EC34B00D7AE5C85E4C588DC8D86 + 9FEBE6FB1782E9764EF3E1E55D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_12_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000006554944415478DA + A5970B50546514C7FF7BEF2ECB22F8CA57E16354404A1C952CED39359681AF32 + 2173CCC49245CDC9CC672A849635A28DF8807541CB4C33F011A5A63936635A93 + 8E36A96086C824AC683C6497BBEFBD77F776EEB7ABD20424B7337C7BEE63B9E7 + 77FEDF39DF7E5783366C7EFE713977CE68B87C01DC8BE9B51AD4DB5CA86F72A1 + AEC98D46BB073F97592E6D9CFB5C426BFFA369EB816F6FF95EDEF8D61838BC7E + 2C2FFCA1CDE01FA58F46559D809317ABD1E4F4DEB97EB3DE864DF35E68354E9B + 00F3361E9137BF9D04C1EDBF2705140BC8C0F57A0155B54D742CE3D899726C99 + 9FAC0E60EE86C372DE3B63617349585978EC9E21145B3DEB7938DC22D6EE3A81 + FC05E3D401CCF9E45B39EFDD09B03AA576056F6E2BCD47605A38511D40C6BA12 + 397FE18BB8E510915570B47D0A189398CF347F07F3E297D401A4AF3D209B164D + 420301A8B5CCAD8750B8F4657500B33EDA2B9B96A6A0DE2E22DB7CA85D81B333 + C6339F95FF0DB62D4F5507F0C68745B269592A03506B597925F874E514750069 + ABF7C85BDF9B823A41C42AF3B7ED0AFC7EC6C410C001ECC89AAA0E6046F62ED9 + B47C2A03506BEF6FD987CFB35F5307303D6BA76C5A318D017CB0F5EB7605CE9C + 3D2908B0B9185FAC7E5D1DC0B4153B64D3CAE9A8157CAA15C8DE5484DD6BD2D4 + 014C7D6FBB6CCA9C410022D698F6B72BF08A399383001BBFC49E8FDF5407F0EA + D242393F2B8D01A8B555B9BBF1D5DAF47B0778262D3BBC478FFB8D746B26DD1C + 9697391375FFA30D57E5EE52DC4519F276B70DDB0E1664B85A0598BCA060B056 + 87C38688887E31B103507AA14C75E0E63621E9699CFAE53C6C4DC20D49C498FD + 1B8C975A0498B2A4E0D7DE7DFB244647F702CF69C0696890E7398E792E74ADF9 + 39AF091E77EB148E985E1DA1A1FBF4C77C798D00897E9FF9D073CE5FFE13A7CF + 5E282BCAC918D222C02B4B0A9CC31F1E1AA1D36A5B0CD2D23903A5EFF6EC6440 + BF1E912C30C70880DF2D4DEC9C0F7DD7EDF161E7DEA352718E51D79A02E52963 + 9F8CD3D03C58EA1DB0D4D9DA2575AFAE9118FF582CF43CC732AFB82930382D8D + 302D70CB2AA0F8E08FD78A728CFD5B51C07C24BA7774D2E3C362D1B747479C2C + B560CEF861D0EBB42C8BB68C3642D877AA1CD76A058288036D866075F858E67E + BF1F350D769C2DBD8A9A2ACB89A275C6675B51C06C8EEADCD5D8BF7F1F74890A + 878E3249792A8EE8796879250B0E7E7AB0441FCA762B1000F37EF24AC6E5D7AD + 70D2FED1E19130E0FE2EB825B8D06073E2C62D01769707D7AF5543B0356EA31A + 486F196071C17C7D842177507C2C3A84EBD8487D6A100CFAA002CA50F67C5E29 + 4010C1A00A8C5F96D9790305B4BB25B808E0A6D505B7D707AF4F84571499AFBC + 52018FCBB58C6A606D6B00E3399E3B98303421084081273D118748838EED7415 + 00B7CF8F2B3556923504101A23E21EA0EC45DA074AA48008274154D3C6940517 + 2502F0E18F8B65A49A38B92867F6819601169912C0F1A50F0D198C4E91E188D0 + F398382A968EF5AC90783EA88087DE1394A08AF4A2A240084226256E03D86943 + 2A10741515B28F00DC6E0FFE282D8584C023FB73669F6B1120756E5E2417A9B3 + C73D188FFB3A7780218CC3B891B1E84AF560B5BB99024AB0CB96C6A0F481603D + 4814F8E141D1B039BCD43D76B8BC1203F2F924340A4E820C40B03B5079F93229 + E1EC5292BBC0D62240A815EBFBC70CECD6AB5B6702D020F9D118DCD7D1C08A50 + 194A75BBC54030F3507065FEFDA17A10C92BD3A5C07828F34A4B3DBBD6D86845 + 55C555813AA053F378FF02A0C5E84C749FDE8FF68BEE89709D06492100251365 + 7152A6E0EA0D2BC91AB85B03FEBB9DC014219F18D79BEAC08BD365550409D4FE + 558B1BD596734539E98FFC17C0DE6EDDBBA7C40DEC4BEF7A3201C4524B1A682D + E0A1D372776A40919575821C52820104FEA1864F9270F27C25758906D555D568 + A8AD2DA10E98D426C09425851F464545AD48181C8B305E4632D540C70E7A589B + 9C34053C6B390BBD7AB93CFE3BC5C70AD21F0208D545627C1FD6013F2900E050 + 517E05765BD3FAE275C6C56D02A42E2E48D3EBC33E1B913804615C0049239536 + D4A383411B5C882880873415D95A701BE06ED6B7BB83294000A7082040BF1D97 + 2E96C2E776A717ADCBD8D636C042F3931CAF3935726422F49C1FC9A3E211AEA7 + 75C0EE642BA312A896161987DBD76C1D40681A6E4300C3E3FB06017EAB20001E + E7CF9E831CC0F3C5EB8DC79BC7FB1B0F387B4E15B1A34A0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Recycle_13_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000006704944415478DA + A5970B50545518C7FFBB779765417CBF121F998096381A3E681C6D3253D1D432 + 25C751134B16354733DF0F10CDC78896F8807511CB4C73C034F391E65899666A + DAA4826F990414E3212C779FECBDBBB7EF9E5D050D36B97DC39973CFD97BEFF7 + 3BFFF37D87EFAAE0C7666FFD49FA2C61009C82078B327FF6772BD64C1900B3C5 + 81D24A3B4A2A1D28B73871F65A518ECD6A7D3D63EE88B2BA9E53F97BE9ACF413 + 52EAB481B0BB3C7816D369542835DB9F8038935B7875E3F437221501CCDCF283 + B4F1C3C1B056B9B178DB8F7E9DAF8E1F88FC121EA7AE14A0D256F578FE41A919 + 9B660CA9D38F5F80191B8F4A9B67C68077B89F4901D93C1270AF94477E71255D + 4B387EFE26B6CC1AAA0C60FA862352DA47C360B68B58BAEDF83343C8B662CA20 + 581D02D6EE3A89F4D96F2A0398F6E94129EDE311A8B089F5725ED3969A8EC238 + 67A43280847507A4F4396FE1A1554052C6B1FA296088617DA2E97B98E6BDAD0C + 207EED7EC9387714CA0840A9256E3D8C6D0BDE51063065F55EC9B8600C4A2D02 + 924D87EBE538396138EB93D2BF43E6E2586500EFAFCC928C0B631980524B4A3B + 80CF978E550610B7628FB475D15894F002969B0ED6CBF1B284913E80FDD89134 + 4E19C0A4E45D9271F13806A0D4966DF9065F264F5006303169A7645C329E017C + B2F5DB7A394E9C3ACA0BB0391B5FAD784F19C0F8253B24E3D28928E65D8A1548 + DE9485DDABE294018C5BB45D32264E220001AB8CFBEAE578C9B4D15E808D5F63 + CF9A0F9E1DE0B5B8E4C0962D9F33D04F93D52A558FF4A43806A0D496A7EE8624 + 49572448DB1D66641ECA48B0D709307A7646578D1647F441411DC2C25F40CEE5 + 5CA4254E46C9FF48C3E5A9BB3022E6559C3E7B09E64ABE48143078DF06C3D55A + 01C6CECFF8A36DFB7651A1A1ADC1A955F8EDCCEF8A1DD734C3849150D3FB2E5D + FF0BE72E5CCECD4A49E8562BC0BBF3336C2FF7EC1EA4D5680840CD1E921BA7AA + BE7E7ACCB15E8D568DF4E8D0B201542A1A5393DF7CADB0928D39DFBD0EA70B3B + F71E13B3530CDABA14B8396658BF0815ED4361A995CD799DD40050A99E82F302 + B4691A8436CD82BD00F49C4885C1ED073CFB4D432D40033CACE0917DE897BB59 + 29868E7528603A1ADA3634A66F8F70B46FD910A7720AE1A27AD0EE12E1A446C1 + E457EA564D82312C3A0C3AAD062ED1830AAB8B41BADD6EDC2FB3E042CE1DDCCF + 2F3C99B5CE30A00E054CA690C64D0D1D3BB643939040683935C6F48F207A8E5D + 6B356A56F1886E8A69EAA9838726DC3410A868FA33AF04BC5D40D7E75B401025 + AA0B6D2833DB50F49087C5EEC4BDBB05E0CDE5991403F1B503CCCB98A50BD2A7 + 76EE128EE0402D6BB1FD3B43AFD3B07D949B0C20AF8EFE18882CB5DB23B17141 + 8905B62A918A5207DB8A0AAA92AB5C02AA0481F579B76EC369B72FA418585B17 + C07035A73E14D93DF231C0A8BEE108D10780E3AA01AA64005AB1EC58707B1590 + C765BC1D168708BB534451B98DB64DF00188D4BB70E34A2E29268CCE4A99BABF + 7680B9C648A8B99C97BA7545A3068108A6958F78258CAE75305B9D2CF804F274 + E35E05EDAB37D01EB55E116D68F502D58122AC4E01368228A0C294AD9E001C0E + 276EE4E44084A7F7BE94A9176B05889D9ED640DD406B8978B10B9A350E46908E + C3B03E616846F1C0510C6838AF024E97C7273DBC0AF820E4C0B0F8002C5490F2 + 549EE79798299045F0162BF2AE5F27256C4D0EA4CE36D70AE04BC5D28E619D9A + B76EDE98F65E8DA1BD3BA159433DCA7907839083EEE6FD0A52C2C3001E29D0B3 + 7328A95445E96B819DE2409E931D9753200A7463797905F26FDFE129031AD5F4 + F72F003A8CCE87B66BDBA743682BE8035418D23B0CCD0940CE000DE7CD02F953 + 8DAD5C0E42DFFE3315682C502F7F98C8304E02C82B2C6573C57F17A3A8A0F062 + 564A7CEFFF02D8DBBC458B31119DDA23502B037442D3103D1EF2362F00ADFA2E + EDADD3E5AE8E01B754AD862F33A222DA521C54E15C6E3E415286E417A0ACB8F8 + 0065C028BF0063E76F5B191212B224B26B387DEB4988E9138E46C13A968A5A8E + 635F3B4E4162B2CA2B9715604A3000CF136AB84411A72EE55196A870FBE62D58 + CC95EBB3D719E6F905889D9711A7D3057CD12BAA1B02380943A3E94CD0531690 + 02F26124BFBCA8DCCAA2DD5D230BBC59517D3E447569C732E05719800EE7AB57 + 72E07238E2B3D62564FA079863EAA7E654A7A3A3A310480031D111B47A2D1A06 + 07784F428F7C0E48DEC3C8FD08A07AD58FB28305219D01A71900FD27BC701192 + 0783B2D71B4ED4F4F70F701E944E0FFEC9990000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_14_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000006794944415478DA + A5970B50545518C7FFFB62975792E223111D45D01247231F334DCD640F4553CB + 949C462D6A64516B32F3990AA1BD46D4C214D65DE9655A03A6596A56D3DB4C4D + 9B51C0D494294034585C96BBEFBDF7EEED3B67174727D8E0F6CD9C397BEEE37C + BFEF7FBEEFEE391A44B117ADDF2B9BCDF741941574C5CED7B7A0B9CD87565700 + C7CE359E71030FDAF227B4447B4713EDE692EDDF296FE64F805F0CE1A5F2EFA3 + 3A7F63FE04385D3ED8DBBC1CC2E1F2E3D8EF57AA3D6EF7FDB665D33A85880AB0 + B8EC1BA564E103F006435D52C0A8D7C0EEF4DE0471B4A6E1EC96450F66AA0278 + 7EDB57CA966727C21D90B17AC7B7519DBF9EF700EA9A05FC54558F364FE0FAF5 + AB7627DE7E6E52A77EA2023CB7E5B0B2F5F96C083EB94B0A300B51BA5CB60BA8 + 6B6AA3DF0ABE3E7101DB164F5607B0E8AD434AE90B53E0F44A58BBE3EB2E4330 + 5B3FFF21B87D2236ECFA01654B1E5607B070F3E74AE98BD3D0EA91BAE5FC465B + 6B3D0CCBD2E9EA00F237EE57CA963E826B6E1185B62FBBA780399BF705D62F60 + 5DFEA83A80BC0DFB14CBB219682100B556B0FD2076AC7C4C1DC0FCD7F7289695 + B360778928B21EEC96E3A2FCA9BC2F2CFB0CE5AB73D4013CF36A85625995C301 + D45A61E97EBCBB76B63A80DCF51F2BDB5F9A8D6641C43AEBE7DD72FC72FEF408 + C03EBC5FF8843A80A78A762996D54F7000B5F6F2B64FF041D15C7500F30A772A + 96357338C02BDB3FED96E3820533C2005B2BF1E1FA27D501CC59F3BE62593B0F + 4D4250B502456F5760F76BB95D07B82FB7C8D4A7CF6D66BAF5B44EA71B6D2978 + 8A0044BC66D9DB2DC76B16CE0C036CF9082159AE52A0BCE373A2FC802DDFDB29 + C0CC25B6117A030EC5C6C50D1A9A3E04355567515698CB01D4DABA92DD983AE9 + 5E1C39761ACE36E18A2462E2DEB7CC673B0498BDC2F6DB8081A9592929FDA0D3 + 6AF0CBD15F515AF0349AFF4719AE2BD905F3DCE9D0D27CA7CFFD89E327CFD454 + 14E78FEC10E0F11536CF9D778D8A33E8F504A0C5F16327553BBED1E6CF99C601 + 7CFE2076EEF952AA2C361B3A53E0C2AC29F76468681D1AEC6E7E8DBDC86058CF + 9BE6E6B14EC37A2DFAF78C43FF5EF1D0B031BD27D1FFF2C5AB02BFA7A716A307 + AEB50AA83CF0E35F15C5E6C19D28603D9C322025FBEED1E918D8E716C83489DB + 2FC1E1F6D33E2F084AA49B9C86E1C2BF537B25A07792890330C0A01442AB3BC8 + 9F9165198D2D2E9CACBE84C6BA861F2A369A2774A280D59A98D4D33C78702A6E + 4D34C1A0D362DCB0DB608AD181F61634A94C9306F077AB17FEA04451D20624C4 + B0C021921262312AAD2F7FD64FDBB8E6360F5A9C1E5CB926C0E5F5E3F25FF510 + 9C8E72CA81BC8E0196DB161BE3624B860D4F47BCC9C05BCEBDC3106BD4938C61 + C999B380A870751880248778CFC6171A5B714DF01388092D0253CD874050A4E7 + 45DED7FE71117EAF7715E5C086CE00A66A75DA0399A332AF03CCB83B1D897131 + 5C6AD6425C8950C4B9C2D7BA1DA6BED9054F40E29B5239A4E151870124EA8338 + 5F55438A89332B8A17ECEB18609925135A5DF51D2347A00745C100A68D4FA388 + 8CD0E9B45C050610600072386A7666904973366E11BC70F92478296F1A1D9EB0 + F30880CFE7C7F9EA6A48088DDD5BBCE0548700398B4A13B4090657C6EDC3D12B + 291EF124FDE47169E845F9E0203919844C0ECF5F76501FCEF4F63626A33FBC01 + 9103B8FD223C04514F1B532E3F01082E376ACF9D2320CFADFB4B96383B048894 + A27DF0D0B4E47EC9498833E9903D6608927BC442CF14A0C6151059E421520010 + D912449682655F3B808B36A4823740BB63278204E070B4A2EEE225812AA0C78D + FEFE05401FA31329A903C60D4AE94BC9A7C5A4316948BE259692CBCB0198ECB5 + 57596432076857E0AE612970528534D85DA484C4AF71C754090CB6E9EF265CA9 + 6F3855519C37F6BF00F624F7EE3D2B236D206263349848003D136361A4523444 + 14604735BEF62CF2C8FAF344A43153841D4C188C9F006A1BECFC5A7D5D3D5A9A + 9AF65305CC880A307BC58E57131313D7648E4887C9A0C1A4B169E8116F848314 + 6000EC9CDA40070F1F9D96AEE70083695723B21C591903280F02385E534790C0 + C50B7FC0E56CDB54B9D1BC3C2A40CE725BAED118F3DE98AC9174D653903D2E1D + 0971462498F404A0E319DF9E032C72A64038071840E826358292849F4ED7D23B + 1A9CADAA46D0E7CBABD8985F1E1D60A9F51EAD4E7364FCF82C904F4C1E9F4EB9 + 608053F0C0A0D7F1C99BE800EAF28A91FA8F7C0BE40840E4FB90353C9557C0CF + 042011C0E993A7A084F050E526F33737FAFB075A1DA34E344E02780000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_15_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000006614944415478DA + AD977B50547514C7BFFB82054131F091880E2AA889A3E16B32FF907C800F2C53 + 73CC4C2D587C8DE6FB09A2598DA8890F5877A597590D98463ED21C4BD34974B0 + 19040C9F938050B03CF6FDBA77F776EE6F57B40910B6CEECCEEFEEBD77F77CCE + F79CF3DB732568C556692E0A7B5463E1720B688B5D2AAE44A3C98182B2EAAB76 + 5E88CF5E1A677ED677246D01E05C6D03B85D51875A83CD0B517593BC8FD7A6C4 + D5F90CB0F2D0CFC2C72971B0736E6CCCB9D8AAF38F92E2A037D9A03358194483 + C98E82DFAB4B2C66F32BDA35892D42B40AB022FB8290B9781CAC4E779B14F097 + 4BA0D35BFF01F16B69E5AD7D4BC6C7F804B0FCE08FC2BEA5136176B8B0E9F04F + AD3AFF30791CCA6B8DB85C5C0183C5D174FE4F9D1EFB97C5B7E8A7558065FBCE + 0A079627C06873B54901D1C47A7DA433A2BCC640C702CE5FBF83832B26F906B0 + 64EF1921EBBDC9D05B796C397CBECD10A26D4F9A00B38DC3CEA39790BD728A6F + 008BF79C14B25625A2D1C2B7CBF9D3B6457316EAD5D37C0348D9952F64AF7E15 + F5660E69DA73ED534095C0D654CD0FD0AC7DCD3780E49D2704F59AE9A823005F + 2DF5D0691C5EFFBA6F00491F1E13D4EB674267E290AE39DD2EC7E92953D99A96 + FD3D7236CDF20DE09D1DB9827AC32C06E0ABA565E5E3D32DB37D0358B0FD1BE1 + D0C6D9A83572D8A639D92EC75B53A679014EE0F3B439BE01CC4F3F2AA837CD61 + 00BEDAD683DFE28BF4B77C0398977644506F9ECB00DE3FF45DBB1CA72E9AEE01 + 3890872FB7BFDD7680B10BD2955DBB3EAFA24B0B150ABFA1EA2DF3506374FAAC + 40FAFE5CF09CB35880F0894D8F9C53DA146B8B0033566A07C91538131018D8BB + 5F541FDC2A2D833A753E0170F8407DBC5D8E372F9EE101D8F735A64C7819570A + 8AA03718AB790E138FEF55DD6A1660F63AED6F3D7B45C4868777874C2A41C1D5 + 4264A72D6000BEDAB6CCAF903C371152FABDA2B23F70ADF066696E46CAE06601 + DE58A7B5BC386C48A0422E270029AE1514222B75216AFF431B6ECB3C8A242F80 + CDEEC49163E7F8BC0C95A22505EECC9C3C265A4279A8D49919C0FF61EFBE9908 + 3F3950DF6844DEA95F1EE666A8225B50407336BC6778C2E8A151E8D5B5239B05 + CD761E0D663B8D594E5021B148641209AD52CFB1D4731C111A842E214A482412 + A69E9377A3D1EC64F7B85C2E54D5995058721F55E595977277A9E25A5040A309 + 0E794E15191981CEC14A44840523B65F370407FA41A990D1DD121ACF5CB0D839 + D8684811474581FEF3C5194029862891B2639E2ED8698AAA355850A7B7A0BADE + 0893D58E470F2B60D437E4500D24370FB056BBC23F3020B3FF802874502AD8FB + A5813DD0A553008B52260539E771AFDA009E3C898E44952858B6CAE886D08E81 + 2C7A1D1B4E6D70383938388EAD0FEEDE83DD6ADD4035B0B32580A95299F454CC + 90982680E9A3A3980232AFDCE27CECE09E38E65DEE26803B558DE4D88E4E81FE + D019ED2C6A0F004FAB13B78B4BE17673337233169D681E608D3A065259C90B83 + 07A153909201248EEA8B90207FC8655206204A2C46E8712E30251EC354D49A60 + 71F0A8A5C194E305581DCE26009BCD8EDB2525E0E11E713C63D18D6601662DC9 + 0A9206294CD103072034A403039834A20FC9AA849C52209779001C2280CB13B5 + F8CCE01204F6B9CE6885C9C6C34A69AAAA377B23F700184D663C282BA3CF96CE + F9992BF5CD02785B5117D9AF6F58F7B0100290237E7824C2A806EA8D36A682E8 + F46E951E3CEF89FEF17B78740F8A986300662A52B1562A6A0D4D000D0D8D28BF + 77DF481DD0E9697FFF02A0CDE87A7844CF91BDC3BB215029C3C4617D5811CAE5 + 5228649E2A176B80A3DCD30B9C98026F2AA8259A004C34901AAD0E9A8EF57012 + 40CD5F35A8AEA8BC919B913CE25900C7C2BA749919DDB71702FCA50C20B42329 + 400F1B4C0172524EB9B651AE4580C70A0CEB1F0EBDD9411B988994E0D939D171 + 03B5A2085B515E81BA9A9A7CEA80E9AD02CC5E7778477070F0E698415108F093 + 60E2702AC20E4A829143412AB8DD9E1A70BABC917BF3EFF2B6A5A888C1E22418 + 3BED193C1E54EAD8B97B77EEC2A437ECCEDBA55ADB2AC0ACB5DA05FEFE7E9F0D + 8F1D4C9B8F04F123FA521BFAA3D168F12A404F3B5460628E9B6A80ED07683A16 + D7D8E89E748F03D74ACB0912B8555C02A7CD969CBB2B25A77580D59A315299E4 + CAA851B108A0BF8C849151540B0A0407F8D17E2E632970D02F72DE4E1015F0D4 + 8008F0A43B1EA7E072D10376ADA8F006043726E4ED565D78DADFDF0CF8AD4E20 + 804BD20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_16_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000065D4944415478DA + A5977950535714C6BF84842C1A97BA565C8AB856AC16B4B61DFF90BAAFD5AA75 + EC326A2BC16DB4EE2B88B6B52368C50562225DC7B6032EA52ED53AB6DA3AAD38 + E28C828AA24E05044BD8B2BF97BC24AFE7DD00A31DC0909EC99BF7F2B6EF77BF + 73EECD890CCDC42AE30571B77E144411CF0CE996A3978A70E5CEE3BF78AF383E + 63699CE3D94F01B260007CFE2008282EE697A2D6EEC6E5C2F2A0218202107CC1 + 01DC29A982D9CAD54194DD20F531A684B8AA9001561EFC4DFC3C210EBCE0C7C6 + CC0BCD8A7FB6300E163B874AAB8B41D4D8795CBE5D5EE07438DE30AD99DA2444 + B3002B32CE8B698B47C3E5F107E5804A2143A5C5F514C49F374B6FED5D32263A + 2480E5077E11F72E1D0787DB874D877E6D567C47FC68149B6DF823BF0456A7BB + E1FCE34A0BF62D1BDFA44EB300CBF69E11F72F9F001BE70BCA0129A47A7D5469 + 437185958E459CBB721707564C0C0D60C99ED362FA4793607179B1E5D0B9A021 + A4D8BE702C1C9C809D872F2263E5E4D00016EF3E21A6AF9A8A5AA7B745E24FC6 + 16E31918564F0B0D20213547CC58FD26AA1D02924C675BE6807E02DB271A7F86 + 71EDF4D000E2771E170D6B66A08A00428DC483A77068FD5BA1012CDC714434AC + 9F854ABB8064E3A9160927274C61FBA48C9F90B9697668001F7C92251A36CC66 + 00A146527A0EBEDC32273480F9DB7F100F6E9C03B34DC036E38916096F4D9856 + 07701C5F27CD0D0D605EF261D1B0692E030835B61E388A6F92DF0B1E60D4FC64 + 75E7CECFEBE9D202955A3DD4B0F95D06F0F1C11F5B249CB8684600607F363C3C + 9F2F42FC82B320F3A429C1D524C0CC95A6410A254E6BB4DA5E7DFAF646E1ED22 + 18B6BC8F0A9B27640792F76561E2E85771E9F27558ACB672AF8071C7F6E86F35 + 0A30679DE95AF79E3D622222BA224C2E436EEE351812E71180804F0DC75A24BC + 79F1CC00C0DEEFB170EE64C8E97DD70BFF46EED51B37B3521206370AF0F63A93 + F3E5D8215AA5424100725CC9CD4346D27C06106A6C4BFB0E1FBE33850170BC07 + DF1E39EBCD4ED12B9B72E0EEAC4923FBC9280FA5950EE45EBE8AF4C40530FF8F + 69B82DED30014C45B802A8AEB521FBE4EF0FB352F4914D38603C13D13D62C2EB + 43FBA267E736C8399F0717C7C1E1E4E1E4DCD41B06D719C96432A8552A68B46A + 68345A4C1F330C6555765C2DB88FB2E2D28B59A9FAB8261C301A75ED9ED34746 + F6407B9D1A3D3AEA10D3A70B74DA70A89561D29BA93BF2C1C90BE0A847903A35 + 094AFA09564B4394C9D9B1972EF0D4C498AD4E54599C28AFB6C1EEE2F1E86109 + 6C969A4CAA81F8C601D69A56A8B49AB4FE03FAA2955AC9B6D7067643A7B61A56 + 130A851C6E02785CE3628F4A425E7F600BA7BA91FCF1F8FC748F9FBA22A937E4 + E0F608F45D60FB0745F7C0BB5C1BA80676360530451E263F193D24BA01E0A5C8 + 4E940E1D03900A89F7F850546661A2BE0600B0CE59B2BE4D2B35FC746CB6F26C + D401002FED3DB8937F93AE0933B352161D6F1C608D211AF2B08217070F42DBD6 + 6A0630754414DAB5564111266753531AA55B1099A024ECA511D703DC2DABA591 + F3D069C261B67070B93D0D001CC7E34E4101BCF00F3F96B228AF5180D94BD25B + CB5B2BEDFD060E408776AD18C0C4E1BDD1A18D9A01280840CAB1C7EBAF130F38 + 500F5362B6C3E9F692B88B3915187900C06677E04161217D77B6CF495B696914 + A06E2A5646F689EAD8B5633BB4D228313EF605AA012D01C81804032061C11B10 + 16EA01A86DACB2B960E7BC70F15E94553B9E02A8A9A945F1BDFB369A016D9F9A + 31FF05A0C5E84A448FEEAFF48AE8420E2830363692156135B5DA610C40C483C7 + 3678047F43014ADBB07EDDC87281013868963809A2C46C6D00A8F8A702E525A5 + 795929F1C39F0570A463A74EB3FA45F584561D86B1319194020D54340D958A80 + 03520D08947BFA041CA84B85F427B21EC04E0DA9CDE5A6EED842B004535C82AA + 8A8A1C9A01339A0598B3EED0273A9D6E73F4A0BED0A8E41817DB1BEDA920ABC9 + 5E9602122A257B259B25807A0762FB47C0E270D30A6A27277C74CECF846B682D + 9060EFDD2D82DD62DD959DAA5FDB2CC0ECB5A6F92A55F857C3620643132EC3B8 + 615168A355B182640E90A89B2A4EAA0336723190FF401D046AC2EAF4100C4F8B + 96170F4A2BD9B95BF905F0705C7C566A4266F300AB8D23E561B24B2346C4401B + 2EC7F8E151940A256AC90109401AB59956370759DD5003124CBD1B75E988E9DF + 9D2DDFB9378B19C0F5AB7910FD189BBD4B7FFE49BD7F01CA98B14E092A748C00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_17_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000006394944415478DA + 9D977B50546518C69FBD71595CAF402A78410435310D50A7C63FA450D0D43425 + B2A6891859BC8D86F70B209AD9089AA0C2B20B5DA6B19AC54BE425CDB1A49C52 + 941A044D409D040483E5B2F7DB39ECE93BDFBA0C4E80CBBEB367CEEED93DE7F9 + 7DCFFBBE1F2F02F4139B9457390C28047F58592EAE605D8CD1ED3B9E0770583E + 179C1B18FC4F4E5DAB4379CD930141B805D0E570CF88B2AA46741A6CB87EAFD9 + 6D08B700982EF7006A1ADAD0AAB33C8568BA4DD46355A9316D1E03A415FEC27D + 961A032BE3C0CEE2ABFD8A7FBA2A065A83051A9D99427418ACB8FE7773B5C968 + 7C4DB565719F10FD026C2CB8C2E5AE791D66BBC32D07BCC50268B4E667207EBF + D378376F6D6C8447001B8EFFC4E5AD9B0FA3AD0BBB8A7EEE57FC40CAEBA86FD5 + E3B7AA06E84CB6EEEB4F345A1C5D1FD7A74EBF00EBF32E72C736C4436FE972CB + 013EF87A7DACD1A3BE4547DE73B85C5E8BE31B177806B0F6C8052EFFA385D09A + 59A4175D761B828F7DABE6C1686170F044190AD2DEF00C60CDE1B35CFEA6C5E8 + 34B10312EF19E9CA8B506C5EE219406A4E2957B0F94DB41B1964AA2E0DCC0179 + 3C3D67287F8472EB52CF00520E9EE1145B96A18D00781A1985E751B4FD2DCF00 + 561D38C929B6AF80C6C0204B797E40C259A98BE839B3E00714EF4AF00C2079BF + 9A53EC48A0009E46667E29BE484FF40C2069DF775CE1CE44B4EA19EC559E1D90 + F09ED4254F01CEE0ABCC95EE03CC4DCAF2090C1C25275F7DE82B95CE50EC5A49 + 013C8D3DC74FC16A365771E03EB768517C4E956AEE1360799A6AAA58820B4478 + DCC4B009A8AD7D00C5EEF728C0C785DF0F483863F53227C0B112C4CD9D856BD7 + 2BA1D5E99B5906F34F1F91DFED1520719BEACFE0B16322838246422414E0E6CD + 4A28D2DF478BDEEEB1035947D5484E8C87903CAFF2DE3FB871EBF61D7576EAB4 + 5E01DEDEA632BD1C355D2A118B09809000FC0545C6070480C1278AD30312DEBD + 66B91320EF5B24BFB3900258AC767C7DF2125B922D97F4E540ED8A8573C20524 + 0F8D1A23CA6F54A020338902781A7B73BF41F2CA45F01203ED9D7A949CFBF591 + 3A5B1ED28703CA8B41C141F1AFCE08C3D8C0C128BD5281F5EFC6426FE5E82FDD + 19CD5CC1FF51B2B30E9C282DC3D2D86834B51970ABFA019AEA1BCBD439F2983E + 1C502A654387CB4342C66098CC0776A30173A68F8737C1E71C0E586D76B4694D + 78DCAA23763260C835F2A2F3A098A44D201441281241229190310EB0D959D818 + 0652990C06B3158F1F3540AFED28263590D23BC056D5466FA96FEEA4C961F0F3 + 91D0E39529A31130C497D684582C240FECC2930E33BD9525A31AEB701E5E0480 + 07B113651B99A0347434B310088642F0E78775F7F996DC416AE0605F008B8422 + E1B988E911DD002F85049074C828005F48567B17EA9AB454B4AB1B00182CF586 + 4824ECBEDEAAB3D2553B018813763B6AAAEE10C798E5EAECD5677A07D8A28820 + 1E56BF386D2A860CF2A100A1A3866252F070DA96FCC1E7B5B617003A390B0490 + F97AD341A4A5D3023349990BC062B1A2A6BA1A2C1C334F67AFAEE81520616DFE + 20E12089217CCA648C18EA470116CC9C00FFC13E1093D5F100BCCD3686A382BC + 304B2C7701D43575A2456B21F779A195CC86CE953B01F406231EDEBB473E9B86 + 95E6A6697B0578DA8A9A9089A1FE23FD87C2CF5782B8A8F1A406A424FF028849 + 1AF885F2633A7FB86AC005D3D06A80C9C692D59B69ADF404E8E8E844FDFD077A + D201437AEAFD0F806C46E5416382678D0B7A8102CC8B1C8F4052847C014A444E + 003B0FC03A85191700191BDBF466182C2CCC56164DEDC667005AFE6D41734363 + 853A3B65E6F3004EFA0704AC080F1D4BAC142396008C18EC8B76F2703E0D7CDB + D56B0CA425BBBA3B803FA2C347939C3314C0485AD444201A48BBBA001AEA1BD0 + D6D2524A3A6059BF0089DB8AF6CB64B2DD1153C320F511110742E89EE043F682 + 6E07583E050EDAEB4C8F62E4772A1780810CA47AB38D4CC75AD809C0FDDA3A18 + B4BA432539F2ADFD02246C5525797B7B7D191D390DBEDE42CC8F9A405BACC360 + A600BCE8934E139D78F9F72E07A22605416BB4912DDC409CE0DD7150E10E9D89 + C2DEADAA86DD624951E7A416F70FB059394728125C9B3D3B127E3C407428AD6A + 99D48B6C364E00BE15F93AA02BE79CF977D681B32674263B81B1927FE9583C6C + D4D0CDA9F25605D94D31AFE490FC4A4FBDFF00F75FAA4E859BB85F0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_18_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000061B4944415478DA + C596094C544718C7FF7B712CAC2005AA050F3CD056AC0A5893C618A91C6A3D6A + 05496B9A6223BB5ED5A2E2096A5B6B23681515965D689B34A6C9E251BCAA355A + 698DB52A360A522EB572EA72EEC55EEFEDBECE7B2C14234B974D934E329977E5 + FD7FF3FFBE99F978F89F1B6FA0971B15D79841FEEE3733CD24E4AD8D31FC6700 + 07A5B3C1B880C17E72F27A0D6E553D1D14844B0036BB6B46949435A0536FC1CD + CA6697215C02A06CAE0154D5B7A1456B724034DD27EAB14A594C9BDB0069F93F + 335FC96260A6ECD85E786D40F12F57C640A337A1556BE4203AF466DCFCB3B9BC + CB60784BB979A15388010136E45D610EAF9E03A3D5EE92039E421E5A35C6E720 + 6E3C68A8C859131BE116C0FA633F31396BE361B0D8B0A3E0EA80E2FB52E7A0AE + 45875FCBEAA1EDB2F43E7FDAAAC19175094E7506045897739139BA7E2E74269B + 4B0EB08DCDD7C6561DEAD45A72CDE0F2AD6A1CDB30CF3D8035872E30B99FCC87 + C64823A3E0B2CB106CFB6C651C0C260AFB8F97202FED6DF700561F3CCBE46E5C + 88CE2E7A50E27D5B86E222E49B16B90720CB2E66F2362D46BB81C22EE5A5C139 + 209DCB8D998A1FA1487FC73D80D4FDA719F9E625682300EEB6CCFCF328D8FAAE + 7B002BF79D60E45B13D1AAA7B047717E50C27B640BB87157DE1914EE48720FE0 + A3BD2A46BE2D890370B7EDCA2DC63719C9AE03CC4ED9E3151C3C5C4A5EAD10FB + 4AA6E66F4F468B8EC2A78AB38312DE2D5BE400380D93415FC680F9DAA441E139 + A5CCE81460699A729250840BDE62F1A871E3C7A0B6F631E43BDEE300DC6DBB8F + 9D44DCAC685CBF790F1AADAE99A6107FEA90B4A25F80E42DCABBA12347448684 + 0C8380CF43E9DD32C8772EE7003ECFFF6150C299AB9674031C2D424A623CF8E4 + 7FF72AFFC2EF77EE3F5065C926F70BB06C8BB26B5AD414B1482824007C9496DE + 873CE303A87556B71DD87344859465091C80C96CC577272ED1455952913307AA + 13E7CF0CE7913834B41A70FBF61F90677E4800287C213F3528E19DAB977603E4 + 7C8F15C9F3E12104DA3B75283AF7CB13559634CC89038A8B21A12173DF9C3A1E + 238387E0CCD5527CFC7E2CB46686FBD295CAA8A7B1678295B6E378710916CF89 + 46539B1E77CA1FA2A9AEA144952D8D71E2804221F10F9086858DC0508917AC06 + 3D96CF9BCED92710F0C9C88785D40626D26DA44861EB143B5162C56C84CE464E + 6D9A3C640B18B68AB25869DCB85B01B14402BDD18CC627F5D0693A0A490EA4F6 + 0F90AEDCE029F63E3C61E278F8789130598C98352D0CC302241C049FC723078C + 15158F9F12212266EF16E246724FF5DCF701B0501484DE62724DE1514D2DCC46 + E3369203FB9D012CE00BF8E722A64470006C7F3D2C888443C225250B61B6DA50 + D3A47188768B13A73144ECC9B9D4F3BC456BE666CD0A5B280262B5A2AAEC0171 + 8C5AAACA5A75BA7F80CDF208F005E5AF4D9E043F5F2F0E60EC707F4C080DE096 + 25DBD9B8563B01E011877A5C51779A60B4587B014C2633AACACB41C33EFD54D6 + AAD27E0192D6E4FAF27D45FAF05727E2257F1F0E6078802F71211042323B1680 + 15A86E7C1180156501C45E1E0E00A363E6DD003ABD018F2A2BC97DD7D0E2C369 + 9A7E011C4BB1356CDCD8C06181FEF0F11621216A3482FCC4100AF91012007621 + 90D09238DB3961DA6EE7F28115AD69EA845A63822759731D3AF373001D1D9DA8 + AB7DA8232BC0AFAFDE0B006433BA153222F48D51212F73007191A311ECE70D11 + 0B405C60339E72643AED70C0E670A1BE458F2E0B8D679D5DB09295D21740FD4C + 8DE6FA86525556EAF47F033811181494183E762407103B6D14E78087880F9103 + C0CA02D0DDC2FF643ED0A633426FA26134D3686A373C07505F578F36B5BA98AC + 80250302246F29D82B914876464C6297A210B1C401764F6827A5B64828E0C41A + DB0C30914A99B633BD3D3AFC1592741407603053E82210F52DDA5E80DAEA1AE8 + 35DA0345D9D2F4010192D295299E9E1EDF46474E260925202108839F8F27B916 + F53AC0CEDE4A7280DD78A83EC9C86E953D007A5290EA8C16521D6B4838685494 + 95C36A32A5AAB2658503036C52CCE40B78D767CC88240E08101F3506BEDE1E24 + A988030201B7E3B5688C9C00B7F3391C889A10028DC142CE103D71C2C625272B + DCA125F940E273EF4E29183BE28A0E48AFF4D5FB1B7DFAA84E7164A50F000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_19_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005FD4944415478DA + CDD7795013571C07F06F2E20210852C403D452056DC5AA2875A6E31FA2E0558F + 7A50A7ADB5764612AF6A51F13EE86547D07A4248A0D319A7FF804AF1AAD6B11E + B5D63A42AB1C72A8AD8080E14C36C726D94DB66F97436881864C67DA37B3BCCD + 31F97DDEEFFD7EBB8B08FFF110FDAF011BB5D7B83EFEDCCF36969B99BE36C6FC + AF010EAAA6827383C17FE5D4CD0ADC29ABEB13C22D80D3E55E22AE1756A3C564 + C7EDD25AB7116E0118A77B80B2AA46D41BE93644CD7D123D56A78E69F4189098 + 7195FB521D031BE3C2F6AC6BBD06FF62650C0C261A0D46AB806836D970FB416D + 91C56C9EA6DB3CAF4744AF800DE957B8C3ABA7C3EA70B995016FA9080D066B17 + C4ADE2EA92236B62233D02AC3FFE3D7764ED0C98ED4EECC8FCA1D7E0FB12A6A3 + B29EC28F8555305AEC1DEFD735187074DDCC1EE3F40A5877E422776CFD2C50B4 + D3AD0CF083AFD7A70D142AF54672CEE1F29D721CDF30DB33C09A4317B8B48FE6 + C06065B12BF3B2DB087E7CB2320E669AC1FE6FAE233DF10DCF00AB0F9EE5D236 + CE438B85ED53F0CE6397F622349BE67B0650A7E671E99B16A0C9CC608FEE52DF + 32A09A25CCBBB5DF419BF4A6678084FDB99C66F342341280A76377C679646E5D + E41960E5BE939C66EB12349818246BCFF72970B27AAE30EF493F83AC1DF1EE03 + A6AE48F6090E1EAC221F7DA0ECE73F5EB32D5E00783AF6A4E5C142190B39705F + D106649DD3A9AD3D021627EAC64865B8205728868F0C7F098F1E572263FB52D4 + 530C3ED69EED53E0BDEAF96D805CC44E99809BB7EFC160A46A5906334E1F5295 + 740B58BA4557103A6C685448C82048C422FCFA5B31343BDE16009E8EBDC74F61 + F9A25888C9EFDD2BFD03BFDCBD5F9C9DA21EDB2DE0AD2D3ACB8489E31432A994 + 00C4045004CDCE7705C0A719DFF629F0EE550B5B01C772B07C719C00A06D0E9C + 387989CD4951C97ACA40F99239532244641FAA1BCCC8CFBF0FCDAEF7A0A71C1E + 6720F96836DE8F9F092F29D0D44221E7DC8D27D929AAB01E32A0BD18121A32EB + F5F1E11816DC0F67AF16E0C3776241D9387C9E914B1E4CDCBB2D8B44226C532F + 8283DC454F9CB98105D3A250D368C2DDA247A8A9ACBE9E9DAA8AE921035AAD5F + 40A02A2C6C28FAFBF9C0613161D9EC688848FAF82DE10F3BEB024DEE8E2CB9E8 + BBC84DD24950FCF5DF45FEB0FC6B32F3CF0F2C391C0C8B9F0A1E40A154C264B5 + E1E9932A5086E62C520309DD0392741BBC15F2C3A34687C3D7876C93DD8A6573 + A221F7920A45C9031812C048B3420021203F13043FF39F39C97D8B253227F9CC + EE6071ABA00452B9829C33785CF11036AB751BA981FD3D01E68A25E27391E322 + 3B0051A342103624900407292431292406C5BFD71140EB6AD9B6830F2C005CAD + ABE7671E60671802F025E70E941516934C318BB35356E5760FD8AC89845852F4 + CAD831F057FA0888118303302A34B02D032238C8B2CB6B0C6D41DB01403F85B7 + B0F76C1B42DF42C36A77082BB793ADA0691BCA8A8AC0C2157D3A65557EB780F8 + 35694AB152668A7879345E08F0150083039578352C0852895800F001CA9FFE1D + E04700FCE0CF59927F7D8B5508DC0EA04C663C2E2D25AF2DFDF30E271ABA05B4 + B56243D8C81141838202E02B97219014E3C4F0811D00BEF02A6A8DA4D05C5D00 + AD4FCE22C8099A216F3451B62E80E6E616543E7C44910EF0EFD2317F05908BD1 + 9D90A1A1AF0D0F192800E2A25E4470801C3289842044C2F33FD95A6195C26A89 + A8BD1E2A6A5AA037D042B15256471780FE991EB555D5F9D92909D1FF04381934 + 60C0928811C30440EC84E118E0AF80974C4C1062A1E5F8366B6FB5F63DE73155 + F52658EC2CEA9A2D42163A03AA2AABD0A8D7E7910E58D82B60E996CCCFFCFCFC + 76468E09EF0004FAC9E1E325814CDA09C0B6067E5EF94023658589B4A8D5E644 + 4D93A90BE06179054C06E3819C545552AF80F824DD0A6F6FAFAF27458D254528 + 452CD9027F5F6F345334A404C0077B460ACCC25F0B3AB5E1A48821A4EA190160 + 26AD6AB19155D71B3B0025854570D0744276AA3AAB77C026ED14B1447473F2E4 + 2828E552520361A4C2BDA0F4F17A9E01B27A87B3F562C374EA06FE9FC8768089 + 1C14793CAFD41B04C4BDBBF9E05C88CB39A0BAD239DE9F40B8984EAE52E43D00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_20_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005F14944415478DA + CD96794C545714C6BFD91806980A14B7225AAA502B5814B7C4F887880B5AB5E2 + 5262AC894D64C62D5A54DCB72E692368D52ACB0C344DDAFE032E45D16A8DAD54 + 6BAD51AB30228B2B83A0300CB3AFEFCD4CEFBB2C8516E8CCC4263DC9E4BE37EF + E57DBFFB9D73EF3D3CF411695B941EBC8428CA92F17A7BC6F3E543FF45FCBF01 + 362A2EFB9802DE6F76D6332B776D92F9A5011C944D85C70B0CEE9513576B71A3 + FAB94F105E01B8DCDE195156510F9DC981EB558D5E437805C0B8BC03A856B7A0 + D9606B87682827EAD395F2A416BF0132F27FF67C214F829D71637BE1E53EC53F + 5F9904BDC9068DC14A215A4D765CBFDFA8B298CDD3949BE7F50AD127C086DC4B + 9EC3AB936175BABD72402CE441A3B77683B876AFBEF2C89AE9F17E01AC3FF6A3 + E7C8DA99303B5CD851F0539FE29FA527A3AED9882B156A182C8ECEFF9F6BF4F8 + 72DD2CFF36A27547CE7B8EAE4F81D1E6F2CA012EB87A7DA631A2AEC940AE3DB8 + 78A306C736CCF60F60CDA1739E9C0FE7406F65B1ABE0A2D7105C7CBC7206CC36 + 06FBBF2B436EC63BFE01AC3E78C693B3711E7416D627F1AEB14B711E799BE6FB + 0720CF2EF1E46E7A175A33833DCA0BBE39204BA1E36EC50F50642EF00F207DFF + 294FDEE654B410007F6377FE59146C5DE83DC0D415FB02070C182C238F3E7825 + 346C4CDED6C5D09818EC539CF549789F7C2E1DF7E49E8649AFABF0C0F3954D8F + C252A5DCDA2BC0A20C659C50847392A0A0612362DEC0E327F5C8DBB68402F81B + 7B724A306D7202AE5EBF0BBDC1D8C8329879F290ACB24700D280DC1E32342A31 + 327210047C1EEE9457217F7B1A9A8D0C3E529CF14978AF7C7E3BC0292C5F9004 + 3EF9DEDDAA27F8FD66F9BDA22CF9E81E01DEDBA2B48C1D971024120A09001F77 + CB2B91B7632905F037F61E3B81F753932980CDEEC437C72FB0C55932516F0ED4 + 2C9E33259647F250AF31E38F3B2AE4ED5C46013EC9FFDE27E1DDAB52DB008E16 + 63F9C2190810025A9D11C5A5BF3C252D5A742F0E28CE470E894C993C26064307 + BC82D2B23B58BF341906BB1B3CF2A6377D41477007A8931C62DF9EBE82794963 + D1D062C24DD54334D4D5971565CB927A7140A1908686CBA2A3A310260D046335 + 6359CA78621F1F0D4D5A389C2CB4E4A069D0186073B060890AB7DD7247955020 + 048FBCC7E70B20240E268C8AA6EF5FBB5D054948304C563B9E3D55C3A86F2D24 + 3590DE3340A67283384872F8CD9131080E2469725AB17CF604048A85B428B9BA + E07A03838DA54D0A4B8E08968CF49ADE732399BDCB4D4727C3E2D7DBF7210C94 + 1018068F6A1FC06EB56E2335B0BF3780B97C01BF343E21BE0DC06145DACC7190 + 0689A83807C17D9803E0C4884E9B2871C145468683A1506EFAACCD814A0825C1 + E4DA89EA8A7B70BB99454559AB4EF50CB0392F1E7C816AD4E838F40B09A400B1 + 5111881B3E10021E8F0238485E558F1AE9EC3B67DE2ECC74B8E16A1B390007C3 + 50009BCD8E6A950A2CDC134E66ADBAD523C092353921FC109129F6AD91783534 + 98BA30383C046F4747901C7738E041CD337DBB680700884B62FA0D96BAE24693 + CE4AC4596A3D371A4D663CAAAA22F796B092C319FA1E01DA97A2267AC4F08841 + 11A1089688104E8A715CCCC04E00E22E6A1B0DA416DC7F0308A0CFB87B27F943 + 6BB47703686DD5A1EEC143235901FDBAEAFD03806C463722A3864C1C16399002 + 8448023031761044423E85E0AC7DFCC20407C94157808ECE591C2022822ED215 + 39BB0134BD6842A3BAFE565156FA847F03381ED1BFFFE2D8E14329C0F4B1C3D0 + BF5F10C422B2BC043CDAFF93D4529BA9DD64DA1DF550DBA0C30B9D8DEC193C58 + EC4C3700759D1A2D4D4D256405A4F60990B6A5E053A954BA333E2EA613205C2A + 81442C808838C04D945B8ADC8F6D77C0D5EE82BAD9040BD91F1AB5160AD815E0 + 414D2D39150D078AB365997D022CC954AE108B03BE1E9F38BA13208CAC0809D9 + 0BB8347402B06DC27F553ED062B4C24496A8D5EE4283D6D40DA0B24205A7CD96 + 5E942D2FEC1B6093620A5FC0BB3A695222A41C40E2EBB4C0B4461B05E0F2AE21 + 2DB799DB0BBA2CC3F1B1AFC1EA60288099D8CF39A1268D29076027BFBB376FC1 + E3C68CE203B24B5DF5FE044537884E7A948E120000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_21_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005E44944415478DA + CD96794C545714C6BF370B0CC3222AA20DA841856A85A0E2D234264271AF6BD4 + D286FEA189CCB8458A8A55EBDA983682566C059C91A669E33FE012DCAA35B65A + 975AA3262C228B5A6510148665F63733EFCDBCDEFB18111A980E93A6E94D5EEE + 9BB96FE6FB9DEF9C73EF63E065A46DD50AF9BB56A1C5CCC1DFB12FEF048A7354 + 4C5FEB8CB71F5300BF95BB0DBF01FE8BF1FF06D8A4B9D6CF1430BFDB79614EC1 + FA14CBBF067048950CC1070CFAC8A99B75B85BF3B25F103E01B8DCBE1971BDA2 + 011D6607EE5437F90CE11300E7F20DA046D78A1623EB81682C27EA33B5EA9456 + BF01B28EFD2A7CAD4E819D73637BD135AFE25FAD4E81C1CC426FB48910ED663B + EE3C6AAAB45A2CEF6BB72CEC13C22B4066C155216F6D2A6C4EB74F0E04CA18E8 + 0DB61E10B71F36541D593733DE2F808D477F168EAC9F0D8BC3851DC77FF12AFE + 65462AEA5B4CB851A183D1EAE8FAFEA5DE806F36CCF16F23DA70E492F0EDC6B9 + 30B12E9F1CA083D6EB0BBD09F5CD46722FE0CADD5A1CCD9CE71FC0BAC31785FC + 4FE7C360E3B1F3F8159F21E8F862F52C58580E074E5C4741D607FE01AC3D744E + C8DFB4101D56BE5FE2DDC74ECD25146E5EE41F803AB75428D8BC186D160EBBB5 + 97FBE7806AAE38EFD2FC044DF612DF019257EE554446BEA5224BAB060C8E9850 + B865295A2DFE1FC7BB8E5D80A9ADB54280F01D6B40D179ADDAD627C0B22CED78 + 991C178394CA91636247E1797D230A3F5B0E3D791FD8ABB9D02FE1BDEA05E2BC + BBE02C92DF4DC0CD3B6530184D4D3C87D9A70FABAA7A0520E7FF83E811C32745 + 450D8354C2A0BCB21685DB568800FE8EDDF9A5485F340312F27F65D5CFF0C7BD + F287C539EA845E013EDCAAB54E4C4A54CA6532022021003538B63D0D2D260EFB + 34E7FA25BC47BDC8037006E98B934500D6EEC48F272FF325392A795F0ED42E9F + 3F3D8E217968D05B50565E85C21D1F8B00FE8E3D474F217D492A0264405B8709 + 25E77F7B4EDE9062FA704073292A3A6AEE7B13623122320C176E9423F3A31498 + 1C02F66B4AC9B1ECDBA1C4300CB6672C819377E187B3B7B06046221A5BCDB857 + F9048DF50DD78B7355297D38A0D184860F52C5C40CC7C0500578D68AF4394960 + 483A64C44289544AFED40D969C0DF488A687A49BCC74C77391E38227F7F4E278 + 415C77703C6E3FA881225809B3CD8E17CF753019DA8B480D64F40E90ADCD0C54 + 06E5BD3D3616C10A39188EC527F3264341FCB358594848641692C7EA672D44A8 + 53D0E5123CC23D3F278E8B81C34901AA215528C83D87A7758F61B7D9B6911A38 + D017C0028954723E3E315E0480D386B4D949080D928B45493B830A19595E8C90 + 38DC29EA899C777582B8881D747612076E3D7804994249009CA8A978481CE396 + 15E7AC39D33BC096C278E273E53B09E331204401386C58963A11E1218122804C + CA88561B080015136DA7A24267E49CE80085728B6B9D0E544116140C96B5A3A6 + B2123CDC534EE7ACB9DF2BC08A75F9219210B9396EDC580C0E0F1601A2868421 + 696CB4183DBD68B4154F9AC4E8BB22EF127EE384580304C0C1712280C96CC1D3 + EA6AF29D7560695E96A157004F2BEA63C68C8E1816118E6062FD20528C49B143 + 49F49D2920C1A1AEC9485ED3DC3DF21FAA0C10D7E8675AA86D26BB588434F774 + 6E6FEF40FDE32726D201037A74CCDF01C86674376A78F4D4915143458090A000 + 4C8D1B06B94C2242D0C8FE7C65868358D01D803EE7F2DCDB49E446ABB30740F3 + AB6634E91AEE17E7644CF92780931143862C8F1B3D4204A0C598382A92CC320F + 00A0D39B492BF604A0E274970890CBC13A7858ED5C0F005DBD0EADCDCDA5A403 + 967A0548DB7A7C7F6868E8E7F1E363458099134762705810694529E40480BEF1 + 7034DF9E4AA705F7BA1EEA1A3BF0AAC346F607C693FF37008F6BEB6036180F96 + E4AAB2BD02ACC8D6AE0C0C0CF87EF2A4842E8081A42394C48137008278F11E07 + 5E5BAF6B31C34AA26F6AB38A80DD01AA2A2AE164D98CE25C75917780CD9AE912 + 297373DAB44962615180306520C9B15CAC030A40859D9EDD8E7B0D405C6835D9 + 60262D6AB3BBD0D86EEE748100D8C95576EF3E043766951C545DEDAEF717B766 + 924EDEEA40910000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_22_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005DF4944415478DA + CD96794C146718C69FBDD88343B4486D40092AD4030A62D5C4580BF5A21E3446 + 2DDAF60F4D64F18A146F5BA5DA346D44AD6805DC85A669639382D578566B6CB5 + 456A8DD2280B82E0C572B92CC7B2C7EC35BBD36F66D7754961BB6C9BA66F32F9 + 6666BF9DF7F73DEFF31D3CF888E5DB4B98A2BC95D0E8ED0834F6167C8BEFF665 + F106FA9DE7EBCF99DB944CE1EE55E830FC1380E328CB97070E107066AF0818E0 + BF88FF37C026C5D5419680F79B8566E615AD4F33FE6B0007E5A960FCC060BB7C + 5FD1809BF5ED8382F00BC0E1F44F886BD5CDE8315871A3AECD6F08BF00EC0EFF + 00EAD59DE8E835BB215AEF92ECB395D9699D0103E41EFB99F93C3B0D16BB133B + 4BAFFA4CFED9EA34E80C66687B290EA2DB60C18D7B6D2A93D1F88672CBA20121 + 7C02E4145D610AD6CE026573FAA58058C8835647F581A8AC69AE3DBC6E764240 + 001B8FFEC81C5E3F1746AB031F94FCE433F9A759B3D0D4A1C7AFD56AF49AAC9E + F7ED5A1D8E6C9817D842B4E1F045E68B8DE9D09B1D7E29C006EBD716AD1E4D9A + 5E72CFE0F2CDFB389AF3666000EB0E5D600ADF9F0F1D456357C965BF21D8F878 + F51C18CD76EC3B7E0D45B90B0203587BF02C53B869117A4CF4A0927BC72EC545 + 146FCEF01F2075E51E4964E44B72F2D3AAA1C323938B36BF852EA31D79CA4B83 + 53409ECEB5BB153F40A7EDA866C07C69D6A1F49C329B1A106049AE72A250840B + 52992C666CDC6834B53C45F196C5E83406BE1DEF3E761EAF4F99808A1B77A0EB + D5B7D176CC3D79485EDB2F00D97EABA2478D4C898A1A01019F07556D238AB72F + 85969C07F628CE0F2AF19EEC855C9B5774062B16BE063EF9DE9DBAC7F8FDD6DD + 9AB2FCECC47E01DEDEA6344D9A9C2413098504804F001A50BC6319071068E415 + 9EC68A45333900B3C5866F4E5CA2CBF3E5A28114B8BF74FE8C781EA943B3D688 + BBAA7A1CDB99890E7224DBAB383BA8C41F6567B8014EE19D8C54040981AE1E3D + CACFFDF2841C506207504071312A3A2A7D7A721C464586E14245357296A7C260 + 65B88E83D99B1D64F1B4D20E7C7DA6120B66BE82D64E036EA91EA0B5A9F95AD9 + 7E79DA000A2814A1E1C3E4B1B12331345402DA42E1DD7929E0F3F868EDE886D5 + 46A34B4FA18D2C34662B0DDAE9E412B160028180C82C008F944E48144C1E1FCB + F5BFFE473D2432290C94052D4FD4D0EBBA4B8907B2FA07D8AACC11CBA4052F8F + 8B43B044043E6DC17BE993210E1272A6647D41939D516F21C9C9E24893658FDD + AAB9963CDB9F3D3B5CADD54EA3B2AA1E7CB198C0D8F1B0A111168ADA413CB06F + 2080857C01FF5C42520207C0B39B9139270521D220188C94CB4864E4F71E6B48 + 527892D11C841BC8FD9CE456A0B2AA0E028994DCDB505F5D03A7D3BEA42C7FCD + A9FE01B61427802F504D489C88212112C04661C9AC49080F16138989B4048095 + 5C67A6DDC9FBAAE0822160A413DBDA8802D7ABEE412891C16CB6A05EA5020DE7 + 9493F96B6EF70BB06C5D61083F4464881F3F0E2F8407131751C8484D46449884 + 00F02024104E37804B66B89232CF47EE827279C3A5402D84D260E80D463CACAB + 23EF4C434F17E4EAFA05704F456DECD831112322C23905868549313D3186F300 + 0BC07EB8E6513BECB4D7C8DD1EA0BD9478E601B6F62C4077770F9A1A1FE8C90C + 18E29DEF2F006431BA1935327A6A4CD48B08968AB8FA4F8D1F019190EF0660F0 + E8A9819B620EAFFAB3FD1CEE7B0B1979AFC9E601605BCD530DDAD4CDB7CBF2B3 + A6FC1DC08988E1C397C68F19C501B0664C1A1D495AA14701B5D600B3ED3900FB + 4E4AFA39DC1EA088514D167B1F0075931A9D1ACD69320316FB04C8DC56F24968 + 68E8870913E33C00E3A287213C444CE637F10091BAA5CB448E69741F05D8D1B3 + 8711915040001C9C0ADE008DF71B60D0F51E28DF2FDFEA1360D956E54AB138E8 + AB5753123980D99362B84549261642C49A9024B1B3F5763B9D351C6B3C16A0A1 + B507ED3D14E7071B79E90D505BAD82CD6CCE2ADB9F5DEA1B60B362065FC0AB98 + 362D05A1B2200E204C2646884C84200F00C35DB4A7042E15D41D069888FCAD44 + 2107016367010B6021D79D5BB7C13831A7FC80FC8A77BE3F01DC6C854EEDC41C + 220000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_23_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005EF4944415478DA + CD96094C145718C7FF7BB1BB1C0515D106D4A262B16238AC3531D88A22DE6DAC + 5A68D3A49ACAE215156FAB106ADA1AD1566805DC05D3A6B107581B1BBC6A6CB5 + F5AA111AE570018F0A08B22CC2B2E7ECCEEC4EDFCC2EB834B05DB64DD3974CDE + BC99C97CBFF7FFFEDF7B4F000FEDCD5D47D9A2AC77A0D1D3F8B0E80406D376AF + 59CAF739F95FE39B7DEF0A06FA4EE0E927693B8AD9C2EC153C80AFEDFDBCAFF0 + EDFE74DF0052B7ABD882AC956837FC13806328CD55F80EE07364B7E633C07FD1 + FEDF009B9517079902C1358A61E716AE4B32FE6B001F2B6682F50283FBE4BBCB + 0DB851F77850105E01D81DDE0971A9AA195D062BAEAB5BBD86F00A80B67B0750 + D7D481F66E8B0BA2E536899EACCA48EAF01920F3C8CFEC271949A0680776955C + F4187CDFAA24E80C1668BBCD3C44A781C2F53BADD526A371966AEBE201213C02 + 6C2CBCC0E6AD990DB3CDE1950252B1005A9DB90FC4D59AE6DAFCB5C9313E016C + 38FC239BBF2E0546AB1DEF15FFE431F847E9B3D1D8AEC7AF554DE836597B9F3F + D6EAF0E9FAB9BE2D44EBF3CFB29F6D9807BDC5EE95025CE3FCFA48AB47A3A69B + DCB3387FA31E8737CEF70D60EDA1D36CC1A605D09919EC293EEF3504D7F6AE9A + 03A385C6FE63975098B9D07B80992B72646161CF2AC8AB95C3468C8C2BD8BC18 + 5D266650C1DDDB1EE559746ADAAA58B0472D3A9494AB32CC03022CCD544D124B + 705AEEEF3F667CD45834B7B6A370CB6B7862A491AD3A37380514F3F83E4B7906 + 33A644E3F2F55BD075EB5B191A29270E296AFB0520BB5F65C4E85109E1E12321 + 120A5053F700455B97A0C3E8FB769C75E414D2E64F8790FCEF96FA0FFC76F376 + 4D696EC6E47E01DED8AE32C54F89F59788C50440885AF53D14ED58062D390FE4 + 284F0D2A704EC622BECF2EFC01A90B1379000B65C397C7CF3165B90AC9400AD4 + 2F5B90384140F2D0AC35A2BAB601453B97F300BEB6EC8293485BF432FCC4C093 + 2E3DCACA7F7948CE07910328A03C1B1E113E6F7A5C1446873D8333576AB029ED + 1518AC2CF6AACAC9A6E4DD922C1008B07BD56258693BBE28BF8605893168E930 + E066F53DB434365F2A3DA0481A4001A5322864A8223272148604C960B75AF056 + 4A3C914F083191502412C1667780222B23E96027400E52F85CED736386DC3064 + DFA0C980214B87956670E5F73A48E57218CC141E3D6C825ED759423C90DE3FC0 + 36D546A9BF3CEFF9E82804C82410DAAD787B6E0264443F838922BE005FDBEA46 + 2DBF43729B14D7331C4C9F318BB8E848586D4E00A19F1FB9A771BFE12E28B379 + 27F1C0FE8100160945C2F298D8182700432135391E01723FA702E462C86CF516 + 869F614F30EEB29331ED7001B8403805AE561200A98C00D85057554314A39796 + E6AEFEBE7F80AD4531108AAA5F983C09C1813208680B5E9F1587900029F44633 + 4424B75632DDDA076DBDB3E682312E159C20CE71EC44A702572BD510C9E4B058 + 28D45557838163EA89DCD515FD022C5F5B10280C9418264C8CC6B09000C066C6 + AB33E3104AFC2012092026397090403AA28033B82B688F1276573A380F90DEC6 + 79A0F20EC4327FE80D46DC57AB099469C8C9BC4C5DBF00AE52D4468E1F173A32 + 348407583823166121323E380F4052D04DD941338EA7C6739BB913CAF98E4F41 + 452DC4F200747676A1F1EE3D3DA980E03E15F35700B218DD081F15F1D298F011 + 3C4020C97F62EC739088B94A10F2CEAF6F6C7755425F0F306E4AF47880331F07 + A069D3A0B5A9B9A234377DEADF011C0F1D3E7CD98471A389F924BC1963C78691 + 5ECC2BC0CDAC496B80C566EF9D35F74C4EBEB3BB5260B6323051742F00D73735 + 36A143A339492A60894780D4EDC51F040505ED8E9914D50B101D311421815288 + 890A0E32D3474F4CE494C43C052069914AC4BD8A98488A28F2DE1DE06E7D030C + BAEE83650714DB3C022CDFA65A2195FA7DFE62C2E45E80C811C1181EE20F0931 + 2237DB3672EC32524F017A2A82F3874828E215B01133B803D45655C366B1A497 + 1EC828F10CB045992814092E4F9B9680207F3F24C78F413029C3400223719990 + E6F2ED723A67B89E35A1A1A50B8F3BCDFC82C43DE7CA9003A0C875EB66055807 + E6941D545C708FF7276CFE914E7C6FD7840000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Recycle_24_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005EB4944415478DA + CD960B50545518C7FFBB7BF7012E828AA8B3A8914A1018609A9554928A685A63 + 2A544E134EB2F81ADF8F4C71A8C91CD10A4CC05D70721AADC06C2C2DCCB1B47C + 902394F216350504C1E5B1EFBDBB7B776FE7DE0524836DD99AA66FE6CEB97BCE + DDF3FDCEFFFBBE738E006E6CD1D6836CEEB6D7D1A2B7C15B4BDF5B80C33B9205 + 7D8D0BDCFDF9D52D07D8DCB43708801D3B728FF6CBF1D665F35D00599FE1F39D + 6F7A07F0CAE63C36677B320FE0ADBD9379185FEC4AF10E2069939ACD4E5B8C7B + 867F02700805194AEF01BCF6DCC3BC06F82FECFF0DB04E75A69F21105CA41976 + 66CE8A38E3BF06F081722A580F30B84FBE3C578B4B3577FB05E11180C3E99910 + 67CB1AD061B0A2B8BAC963088F00EC0ECF006AEA5B714F67E98468BC4ABC4F57 + A7C6B57A0DB076FF8FEC87A971A0ED4E6CC93FE3D6F9CE2571D01A2CD0E8CC3C + 44BB8146715553B9C9687C5EBD616E9F106E0156E79C6633974D83D9E6F44801 + 292580466BFE13C4858A86CAACE5D323BD0258B5EF7B366B453C8C5607DECEFB + C1ADF3F753A6A1EE9E1E3F97D54367B276F7DFD568B177E54CEF36A2955945EC + C7AB12A0B7383C5280332E5FEF68F4A86BD1917716A72E5DC3BED5B33C07989A + 9C2E0B0A1AA124438B034728A2B3D7CC86D6CC605BDE298F21387B77C90C182D + 76EC3A74166D771BCB58B0072C5AE41F57A79AFB0498BF561D4189F1AD8FAFEF + E8B1E31E4663732BB2D7CD458789E997F39EB64D55842931A138577C055A9DBE + 89B123FEE847CACA5E01C8E1531A3C6AE404856238444201AA6A6F2367FD4B68 + 33DAB15D7DB27F0A2813F8364DF51D12673E092199EF4AF52DFC72F96A454146 + EAF85E011237A94D318F47F98A298A000809C02DE46E988756A3F7C771DAFE13 + 484C788A07B0D0367C7AE4245398A114F7A5C0B505B3634305240E0D1A232AAB + 6F2077F30268C87D205D75A25F8ED353E7F0EDF69CAF91383B16120A68EBD0A3 + F0F84FB7C9F11CD28702AA2245B022E1E9E8711815341045172BB126E959186D + FDBF1638C8D641DB1D38F84D31664D894063AB0197CB6FA0B1AEE16CC16E655C + 1F0AA8547E01839521212331C84F06A795C66BF1D1443E211A5B3A60B53368D3 + 5BD0D4AA87C5CA802135E7240F4BA6118A44FC7702F250220A31E10FC16A6370 + FEB75A48645218CC34EEDCAE875EDB9E4F7220A577808DEAD5525F9FCC47C2C6 + 61804C0C91D38645F1319049283E29B9BCE09C1A68077F40910592D649FAD0F9 + 9BE55BEE1B0719E380CFFF5A0381584260ECB8597B1DB4D9FC16C9815D7D01CC + 118A84C723A3227900A1C38AA4E9D190CB24D09BCC3C8485665055A7713972B8 + 9CF506101D16E2528000082552F26E434D590551CC3EBF2063E957BD036CC88D + 245A963F3A3E02FE7219840C8D97E3A2102097F2ABE700B89D4E6721F23BD0ED + AC6BC57627DB0DC6B59C02174A098054068B85464D79391838271DCD585AD22B + C0C2E5D972A15C6C080D0FC390800110D82D78F1B9280C192883566F04C58580 + 4C5EF17B73F7AA1F54A1EB7754B84B810BA5D510C97CA0371871B3BA9AF49906 + 1DCB5CABED15A0B314352163C7040E0F0C204B32E38567A210E42F034571C925 + 24121205480E3024CD391518E77DD95DCE0988C39517362E074AAB40C97CD1DE + DE81BAEB37F4A402FC7BFAFB0B00D98C2E2946063F315A318CCC60C6ACD8C710 + 14E00371170009819E00D88907AED4EE87A00B82EB738DF12128A904E533002D + CD2D68AA6F2829C84899F477004702870E5D103A66140FC025E3C4F060C87D24 + 7C081CE484BBD9D8063349C6077380E9A144570E70D9CF01D4D7D5A3B5A5E518 + A980796E019236E5BDE7E7E7B735328294A28F9807080B1ECC27221706277174 + A7CD442E294CF7AAB91B9B544C75039988423419EF02E0DAEBD76A61D0EAF614 + EE566E740BB070A33A592A957C3271C2F86E809061FE181AE00BB148C04BDB4C + 6E3D46FA3E0017168A1275AE1C0480818DC4A227406559396C164B4AC1EED47C + F700EB55B14291E0DCE4C913E0E72BE101460C964311282700427E951A1D4D36 + 23FBFDB87756000722100861E67749275F051C004D9E2B974BC03A31A3708FF2 + 744F7F7F00F0CD874EDBB2A9270000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_01_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004964944415478DA + C5977D4C1B651CC7BF777D850658CB26435EF6224EC3D8620281CD649B982CD3 + 2944A2035DA2938C11379D2F13252031C4A024BAC81FFE6126E04234CB601A9D + 758B866CBCEAD864848C171784C2A08375A3D0D2B2F6AEBD3B1FCA8B14AEBD8E + 94F84B2E77FD3DBF3EDFCFF37DEE79EE8EC2FF1CD4FCC5E952A823E5710D24B5 + 43BC546833BB47D2734BE15C15805FCAE2BED89A9E5DB07947A168E1E0B5CFD1 + 7DA9F66466C9C8074107F8F993D834B5467525FDD5A728A55A295AC83A59347E + DF2838ECCCCE173E365E0D2A00197D57CABE6D49D18F44F92D1E33DC45FB6F5D + 2B9412DA887B3B7D00C40B19B9C9C11A9468E84F5F4766C930B534BF00B0F7F9 + D85505A8FFD5E81F6055D5E7C22F404651FBAA8AEBCB5324000A2F005327BD5B + 85A5C68818258899B73CA73FD52201F0E10F04E0AB803B9C4D49D40AFF5DE82B + FF940028F88E009C0AB8C3A5C1701C6C2E3754321A6172B957DDE0D47D5CAEEB + 445E89D10FC009226EAB792061BBCB85EA9E61E80D26186C0EC8E434045E406C + A80A7BE3D6223F291EDD661B8E35F742C672E82932FB0178AF8200D48A088BDB + DC3A3A81B79A7AC0852BA18B8E4058441894B4120A99122E07877BA3E3308F9A + 201085B4B427D1D4D28CA1A2093F00EF9491219DF76BF37CBE7E641C475B7AA1 + DB14019A97011CA052A9A18BD44213A2F140CCC0B8183778B780A8C8F5A8FBA9 + 4E02E0783101F8DD8FF86CCE6877E2D90B1DE042E510EC2C76ADD76263580886 + 49BE696C1251F13148D8920015AD9A05218782C09CF9F18C04C09BEF02D38D22 + BADE309F5E1F4475DF1892D684E2EBDD8F2346A35AA8313958BCDEF03758DD43 + 484ADC362B3EE746CDB91A098037F200C73551D1C50EDCB23951D37707C79362 + A055CABD2A1A462D38F6C70092D35289ED518B0054A8AEAD9200C87F8500DCF0 + 39EFCB7F7AE77A2DF771A0E11F3C9192EC119FB15D393705342543D5D94A0980 + C3196431F7FB16F67B730A1E809C4B7D6469F2A243D82CD0B85C3CEE1B20FDB9 + 54700EA30F61896795E4CA019A1B4D123BE1D11300EF0868B48187B070D2577E + E31F60CFD3B1E079574042AF75DE46978D116DD3C828546F8FC6631AEF57BB96 + A67109078EE407E2B127367D5B81BC978F801738B01CEB395C3C0B93D984CEF6 + 0E9CDBF7121275EBBCFEA7AFAAF60B6025A7F0408D7D5B66C7E19C3CB03C03D7 + 1CC08CF85F6D5791CB2AB055F05E9ED304E422CDB81A2867A2B168AA7F19C083 + C6C6729D70E8C02102C02E0074F776C33060B8E1E69CFB8D258EDBF3B5D1656B + 36A868BA8E9253A9BC9BFBF256B1E5FDA0001C7CF1A0C7768FFDE460881BFD7D + 03181E1C61785EB84836B3018AC2A3144D3FA38E50AA9C56C626F0FCF6A122CB + 505000B2B3B289ED7740F61828D58A0537A61DD398304F8261C8071469E3690E + E3068BE066F8AC9112CB79D17B6025007B76ED46EB955617CFC31D13171DB2EE + E1B55084C866A784C0D8AC364C8C5961BB3B3D29087CCEF047D67AB1BE5604B0 + A15C7B4F2E9745B8592E8B6C9F1DA09405A0A84C924BA0680A9C9B9F7931B9C9 + 833F6B672C1513A598F2D5D78A00623E0BDBA200E8A162DBCDC5796DA1364211 + CEAA435DD3D6A1003F62570410CCF817912D5B3F02E943880000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_02_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000052D4944415478DA + C5977B6C53551CC7BFB7B7B7ED56FA58D77563744C2101B731FF908143D13912 + 4103C3610CC43F88224834621002E26492C50C489044138D09012408FF90084C + 07C84B18203806938C75C86302DDBA0DD672DBAEAFB5F7E5D9C66BEB6DBBC116 + 7FC9CDB93DFD9DF3FD9CEF79DC7B29FCCF413DB8D951014DAA32EB24A92A944F + 956AEFF1ADC58B2AD03D2200BF55667D93573C7FD5B8C235B289B7EA36C1F6C7 + 9ECD73CB5B570F3B40D5D7D617355AF55FC50B5FA3541A956C62A43B829ADD35 + 52C81F9E56BACE717E5801C8E81B0B66E54F1A3D3E3D6E72C7CD4E5C3CDCF884 + 52522D716F5A0C80B152C9A2C9C33528D9A8DE518FB9E52DD4C0FA8700AFCFB1 + 8E28C0B1038EF80023AA7E3FE20294945D1C51F1EA8D050900D61C04BA36F7FF + 571A688C8C51929C79D175D55BCE2400F8FC1702F0FDA03BECAB4A902B3DBAA9 + DE7A2E01C0AA5D0460CBA03B1C18018E439BBF1B5A864646B2063445F5CBABDE + 569B00602511F7ED1C92705810B0EBAA037B9B3B70CD1B00A356421225308284 + 57324D589C9B8529E9C63E07B65FC012EA5E46E7DAC05D798015DF12803D32C2 + F236DFF004B0E8F865B02A09C64C3D747A2D18050325B9288986CFE583E35607 + 163C938AF772C660F1BE7AD86951E238BED051DE55170DB0BC12F0FF1AD7E607 + F5B67B3E2C38D200E8C98805800BF1A0691ABA9451C81C9B016D721F0C252970 + B5E9065C9D4EE4E5E6C1E16883D3E52A6A2DF79C8E06F8F44B0270248EB8F4B0 + F8E0840D35773CC831246309195D8E498B102FE2641B8B6D57DB312E6F0232D2 + D37B21689A41381886496FC2FE035508F88369ED153E5734C0279F91955423A3 + 1BBD151B88037F7678B13437938828FAE534B903987FFC0A0A5E2A844167E89D + 1246A10217E1B0EFE0FE767B193B467E0D7CB40408D5C5108DE1CA803C3F2760 + FD253BAADA7C9852301969264BDFBA202E389D9D387AEAD8D1DB65EC2C7980A5 + EF1280CB31E73DFA6734D01BBFDB10D099903F291F49AA243074CFA254F5425C + B9DE84BA86BAEF6E7FC1AE9007585C42F655736CE1B88BB3AF6EC189EBF89B0D + C1A037C0684841AA3115E6143329CD385B7F16CDB79A17B6AC75EF9605289E3D + 1542C81143B8BF68B72842D333F732703E5EC0F5400437C8D51C8CE09A3F8C7F + 49499A2028F1E35BCABC37E51DF878252086128EB6D5E7C19B553F43203DE698 + D230918C70A2C9FCF0DEA84E8A7690147BB76EC13BE5ADB14FC2A2195642C9C5 + 9EF7FB71B0D3879FBAF5985E301D2EB7935C2EB05E166E0F0BAFAF0BCF272BB1 + 3D3F23AADD9953AE0447F1874B113B1EC16CA83B8D06258DDC0979E008302F46 + C0091C4291101A6D8DD092E7C1E1D28551EDAAB76D8F0BE025851E83881F1521 + 6415CD80C562014F847B209C6C272E5CACC70B411EA5A21A1A44E9901D2BF9DF + FAAA55270B3094C8DE686A7B7BF6BC4C46C510F108718023D67B71E6F4B99028 + F22FDBCB3C97FA35A8802A5B9DB25A1084638F3F039E0820B34267D68E4A76CE + 9B530AB68B853A590DE1BE0B77EEDEC53F97AF9107A4B88912F8433C4507950A + E44912B552A1A40A44413C642F73CF7E2A80AC4AE3AB6966F329AB750C1A9B6C + 92C592463D376902244AEC85080403686FB9039FDB4FC00430494A503439E1D9 + 7040928422B205EB9F0AC05AA99FCA30CA5A49C4F908CFBDCF2895CB341ACD32 + EBB3A3A133EB0888D03B253D30BEAE003CED5D08B1DD769E4389639D5BF68362 + C86BC0B25E9BFEF84B857583B188A614CB494F33556AA5965250E0C23C88E536 + 42B4938AB03FDC8EF33D39648098510165366DC812150A6DC8EBB6BB36C13798 + 66C307F084F11FEDF8963F21EBB2A00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_03_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005394944415478DA + C5967B6C53551CC7BFB7ED6D6FBBB20C700FD6D2960DC40D111422EC0FD4A193 + 10D9C47F141F489047343E9077B64CD3980574909848822180041590C4A0AC3A + 71445C98C278296E730E075BDBB55BD73D3ABAF6F6F671EFF55060AC6BD70ED8 + E22F39B9F7FECEEF9EEFE7F73BE79E7329FCCF46DDBE396004335136F957E29A + 1F3B54ACED09B5E5AF34821B13808AB2C93B66E4BFB8296BFED69881ADE7CBD1 + F0CBD19D45A56D9B471DE0FB8FB4F39824C5D9FCE54F5172461E3330C00550FD + 75B5E8F3F8F3967E683B37AA0024FBFAB98B663E3C293B3D6E70478B13174FD4 + DFA394584BAA97370C804E2C5C3967B4928A69A6039750546AA586FA07000A96 + 68C714E0E40FB6F80063AA7ECBE20214165F1C5371D3F6B90900B6FE08B87746 + F68A430B13A35062ACE245FB4C7B6A12006CF99600EC1AF180375D0962C53B37 + A6BD6712006CFA8A00EC19F180438DE343B0BA7D10489F4EAD824A268D8833ED + AB4D00B08188F71FBC2B6191C855B474E260631B2EF7B82153C840511484008F + 99E3D55891A34551567A58C4B4FF420280F59F1280A331846397D9C1FAF14E75 + 03EABD2C94E319A892492399CB6939A494143E37874E6B377208D4674FE4E0C2 + 370D0900D695019EE371CB3CD8BFBEE61F1CB774918C01BD8A819A96A2D9CD82 + 2199EBA669A15428219548D16E7180EEEAC6F21EA054E259472AF4AC2806B758 + 4B3C8D9100EF9610809FE3888B11973FBADDA86875624DAE069A2426EC63433C + 76D559F1C5B52ECC9E37132A46059984466BB319ADD75A909E9101CEC7A1B7AF + 6F8DA5B8775F24C0DBEF03DEEA18BA77FF297EFCA705DFF50631FBD159044006 + 0999128EE590AC4E46C54F263EE4F16ACD46AF2312E0CDD580EFFC30A22313BE + 614D7D2C3E6FB4A3D2761D0505CF40412BC255901290F6763B6A6A7FAB3217F7 + 2E8A5E036B5F26007571E73DF2315A7CFF150776343A6130E831C560804A9114 + 1696DD6AA76A4EC1EEB0BD622E761D8906585508F8AF0E2F3C68713A7C01A432 + 242B8A8AE83CD8ECC4B6864E6832B530E80C489B9836201E0C0471F8F8116F80 + EB496B37828D02C87FEE71F03EDB30C2779EEBFB39BCD1E0809AF816A7A9B124 + 7D1C726F2DC21B711DFE202A9D1E989CFDE89130986A988AE9590FC162B7E0EC + A5DFBF24D9AF189CE29D0ABCB501107C51D90EB58DA72BD1919C02BD468F7F5B + AFE0AAB919A9521A2F4CCDC5D2EC1C68C8421B80ED76E0D8D546545C6B427F28 + 88A09FCB3397BA6B63023CB9500B4108C65D749C20E0E973562C5DB20CB49C46 + 4808859BB3C709B3D50CBBDD86F59393B16CD2B888F778B2582B4F77E1F5525B + 9C8D68CD5A0C6F37612A5A9A50DE5487850B160E88F3A4B17E2FCC66F2AD9B2D + D8FCC83CAC9AF1585412A67DFBE3EE84D7C92519096CB7C487D4BC3C64666A88 + 78302C1E080550557512B382140A441A99A234760AA2E879FE83B67143FD5422 + D1DB66302665C8D449B6A2C58552B7C70D866CBF82C887ABF0D7E53A74B67796 + 9B4B5C5B473ADE5D03E8B74F583D2125652FA364D0DED111CACE9E22CB7A302B + 5C09966371F95C3DF975F77FE2F5BBCABA8CF0DC786752598A5E2EA136129923 + 9692DEB3F705A0DBA6CEA528BA9C94B28A0FF88FC914CA1353A6E96664EA33C8 + 54F0F0F97DB036DBE0EA0AFF14FC4DB60835A4984E91E34AE085439662D76BF7 + 0530D43446A596563087D529EA05E9BA07A024C7314FA624100C80F5B060C971 + EC7371F07B8367427EEE25BB716093191D80B01921D1C9535EA520798F9C3773 + E40C4D910A21E40F4114502B88C26E6BA0EF108913861BE2FE000659AA116A05 + 3D3E8B0C28F04157CBE0ED369E8D1AC0BDDA7F2158893FCE87BA610000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_04_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000053D4944415478DA + C5956B6C14551886DF99BDB26BA737285BD836D0965A6EDE680A4523B6819008 + 057F188C44A24445058C485084565D4D438D92F883F8832821820630C60B0B44 + 02480B52B02C720D85D22E65775ADA6DBB9769F7323B3B339E5D5ACA96BD14D2 + EA976CE6E4CCB7E77DCEFB9DF30D85FF39A881C14E13B499CA9CE3646A4EEC54 + F94C4FC85EB6D284C0A800ECAFCEF96A7AD9B20D797336C64CBCD9F025AE1CDB + B7754995FD831107F8ED73E36CAD5E73BA6CC573945AAB8E99180C0451FB43AD + ECEFE34B5FF884FD7B4401C8EE2F172F9C39233B7F7CC2E4DB56072C7F5C7E48 + 29F90C71AF340E40AE5CB172D6486D2A6698779EC3922A1B3574FE2EC082C5C6 + 51053872804D0C30AAEAFD9110A062936554C5CD35C54900361E04B8ADD16FE5 + A1C6C4304A8E65DEFD73E6ED2793007CF83301D836EC05EF4C25C9950707E66F + EB93006CD84D00B60F7BC1FBB324B4727EF0A288093A2D18B52A2ACFFCDD9924 + 00EB8978EFF70F282CE374870BBB1AED386EEF81A8A240D11442BC88298C0E2F + 16646345D144681534CC3BCE260178FF6B02B02F86707C9BF7DFECC4BA9357A1 + D42AA17944058D4E8D94741DD43A0D046F084ED603262060DBBCA9B0EDBF9104 + E0BD6AA0EFF7843647CD9387C5E121008D989B9D86DC9431B0F5FA71D8D60DF5 + 380613F3B3A1A455F07473B8DD64C3EA801A6B2ADB1200BCBB99001C4E202EC7 + 78757F9E8717B0F6E4753411F1FCA2C950D00A381D2E745DBC8E2EBE678C1750 + 6A348C81DDC4354703AC5907786B63E83EF855E4841016982F20F7C999486518 + D0940297CE5F466787E3064563124D2B54415E9867AF729F180478FB0DC0DF10 + 477478C203D1C2F9B0E5BC1D564D2AA64E2D828200F8FD3C7C5E2FD298341CF9 + F328EFF30A85ED26976D1060D5CB04E052E2BAF74793DB07834E0546A58C9A6F + F7F15876F41A7A241A999919301A8D3064192200E152849D68B034C07ACBBAE5 + D666576574095EAF00F8E6F8C2FDC38BCE3EBC54678596DCFBB5D30C58599845 + 04EEBC6B267D60F19126E4173E8A297905502A9411D1010097CB8543C70E757A + 79674197097D5100658B4A20FAD938C272FF50C68AF32C32A797226B6C16EA2D + A7A0F038F051FE38CC25D72F9C61F30BF8A2A50B9704058A9F2886D1608C0090 + BAE3C051333ABB3B5FB36D76DF6D38830EBCB31E90FC43F4A3ADFFB5F92A6AAE + 9CC5A2F98B214B12445904DBC1C272C182A7D2C6E2B3D2724C62D223B927DA5A + F169FD31083A3DE6163F0D47B70375A76B1B5A83CE5298887D4301E6951B2149 + 42DCBAFB450915E7EC98FDCC42A4A7A74394C40880447E2131841BD666589BAE + E3C79906E4E95491FF88E490EE69E7B0DDEE81402BE1F5FB66B3555CC3BDEB0E + 3AF0E62AC40F195BCF9DC22157174A8A4B22A203001D8E0EB02C8B9E1E273215 + 2AFCF4FC324CD0A7446D820BF2D8BB7B17DEAA64E336220F7930F1E45DC4B11A + 4D1065E5F3E1E6DCD0E97418433E386180C6C66BD0B7B0582A6B6090E9F85B90 + E5BEA51FDB536202248B9CEAB467D56A551DD9B920938FDE7843D694C7489309 + 3BE1E1389CADFFA79DE2A5E9AD26B77B38EB3D304038266E49290C067BDBF540 + 089A8C8BD31E2F2ACCC8BA73165AAEDD8483ED3A1C0A8696B326CE392A00F746 + 6E4DEA2C9A56D6154C9BA44F1DCB20440E6F5BCB6D74B73B3DB244FD42AE9315 + A0F3284A2E277CAFD8AA5C7F8D2840388CD54C09692E7BD3C63193338CA950E9 + 9508924ED8EBF281F70511F40A10FC21725DE5E5AD9B5C7B461C201C134CD0A9 + D419AB41C9AFD20A7A8652A3080B22141003E4FC1F24F7FA9B5B95EEE3235E82 + 38654997243A47A64281B6606FF3BDCDE63F0178D8F8176877913FE648951C00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_05_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005274944415478DA + C5960D6C535514C7FFEFF5F563EBBEA74C60EBDC26C9BE3006173E647C740117 + 235BD04413623412D922014511250CC4C68028A0C6186370223168224AE27012 + 5956D9C24036D8A6619FC9065BB7D20E06BC75EDD6BED7F7E16D41B68ED79691 + 359E9BB62FF79E7BCEEF9C7BCF79A5F03F0BF5DFC3111374C94C5A1D995AACAC + 2A37DE14068DEB4DF04404E0B73D6907F28C2F6ECB5CBC5D51B1EFC27EB4FF79 + EC60E9AEC177671CA0EAC3D4453ABDF6BCF1E5959446A75154E43D3CEA7FA897 + DD2E6EC9DADDD6A6190520D1B71514CFCF9F9D951252D97EE53A9A4FB53DA02B + B991646F491000835CB2FEC9990A4A51AA8FB4A074D7003575FE2EC0EA35A911 + 05A8FDDD1A1A20A2DEEF484880921DCD11755EBDAF200CC0F693C0E8C1C05579 + 6A621412252B25EFDEB9EA430D6100DE3B4E00BEBC6F83B7A7C2E8CA130FD595 + 7F8501D87694001CBA6F834A7A4EAF004E9410C3A8A053A902F4AABF6D0C03B0 + 9538777E3F4DC732BC9284032D97611EBC817E971B144D4C92B98C9868ACCD7A + 04AF64A7224EA342F5E18B6100DEFE9C001C53701C3ACD9747C6B1AAAA092A0D + 0D4DB41A5ABD06F1297A480249E835171807878385D970D6F48501D8B207709D + 0893E649F393966B49F40C895C906434D86EE117D2311FCA9A85C487E3405A37 + AC9D56AC7333F860A72D04C01B1504A026E419DFBBA45C155DEC18D699DB313B + 3F03B17131708F7970B9B91B0EB7946E33B103CA009BDE02C6EA150D064B7F70 + 1DE0A7DE6BF8B8E706E62FC80545D118ECB3A2AFC75269A960CB95015EDF00B8 + 2F043538D9B17D9CC3082F20273E3AE83171E4223E7EBC154B8B0AA1A2551005 + 11F5A71B385194B690F5144AA62E5A76B27F4C0094AF230097429F3B111B71BE + E65407785A834DF392B031777680DEBE7FAC386377C0C18B1872F3285A65844E + ABF367A1BBAB1B5E52AAA220C07AD53AD0BF834D9F0078AD04E07A83A79B3C8E + 93289E37772329F309641A325173A606C604197B0B0C50D3B7EFD7C2AA4B889D + 9B86CCCC0CA8190DB46A2D714E812600BE8F40006AEBCD703A5D1B2C15B70EDF + 05303EBB10A2DBAAE8D8F7E51B6FB6DB319C64C0E2054BC82949E0452FCE359D + 45A2F33ABE20994850D3E81BE7B1B9C38E584316F2F3F2A12283BAE3DC67A7EE + 6C1D6C43B6CF2C1523EF04DE818D5B4903714FF13F01B2B7A91E2787AD30161A + FDDB2402E08310C9E8E8EC80CB66C7774F3F87C71292C1726E94D556619861B0 + 745121342AB51FA2B1F53CBA7ABB4E5A38B614264801002B8A524903F32AA6BF + 6A68149FDA3D58BD72151835E3777E1B805C362F07AFC0A3BFDF02D6D20FF342 + 837FAF40D6F6F4DEC439AF0EC5CB8B7165B00FE75BCEB58D71EC53C326B8EEAD + 82B280EA0890A53F57828E8F838A44C4903E9F939BE38FDEC37970DA5C875951 + 7A24EAA2B07C6E3A76142C0B08E2EBB6667CD5F937B9E06EB09EE07DC0417EE2 + 82017452020628F2929129FCCAF0282C5A4660486949221ACC0DD8EF8D06032A + D876582911D112C65F7DFFAA7EEA5AF05D4124FDA3C46F32E6A597A565A4FAB3 + D0D6DA09F6E668F940C5ADCAE9DA7A208039A64483368A6ECF2BC88E8DD2EBE0 + 1C75A1BBB5871578798575373BEDBFCCD306F089615FD20B6A35FD6346BE411D + 15A3053B3C8AAB3D439C2CCA8748A73B4D8122AF25991EDC35722222003E49DF + 9BF80C681C8D4F894D8E4F8901CD008E6B63E0C678F0E35E883CA932D99BD35F + E1EC8E08804F1E352524C81A6C2635FE1229F36C4A454326B14BA2D44B0AA0CA + C2B33B49BDF31103982C734C8816D4FA58EFA8C6C37EC23AEE77DF8C013CA8FC + 0BDDA2893F8DBD78870000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_06_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005154944415478DA + C5970B4C536714C7FFB7C06D790A75D6895441107C40E6C0078ADB446748A6B0 + 2DCB96CDC544A3332E8B3A8D9B418D69368766D32DCB668CCECD6C335B4C5C32 + 5635D34984288F492122686145A0B445296B4B5BDADBDEB6F7EEA37545E042C1 + 403C4DD3AFE7FEEF777EE79CEFBB0F0A4FD9A8FF076715904C0D975F27AE5C61 + 295F63F2EAF2372BE09A14803F0ECBBF5898FFD6DE39B9FB0485EDB73E4753D9 + F9634507751F4D38C0EF9F242D93448BABF337AEA268092D28645D2CCACF95F3 + 4C9F7BF96B87F47F4F2800C9BE71714156E68CD4E9A38A1FB419A1FAB3F10943 + F135A47ACB470098C5176ECE99A8A4044D79B60E45073BA9A1FE20C0DAF54993 + 0AF0D745FDE800931AFD918D0A5058AC9AD4E0CA238B4300ECBB04D88E0D3ECA + 0F2D8C40A178A1E20DF7294FDD0801F0F10502F0CD98270CB84268F98181F2BB + AA10007B7F2600A7C63CE17875CA33352100F690E0F61FC71978E07F49AD06BF + B418E0F0F8200E13615E420C0A664FC3868C444CA1C3A1FCBE3604C0EEAF08C0 + 7981C063CBF6ED2BF5B865B4828E8E40E41431C4B1341C2617C26C2C4A72D3E1 + 2BEB0C01B0EB30D0571AA2CC8FF9F9C13EB78F43AFDB038DD5899F9ABB5061B2 + 419E39039C87835EFD10454E118E1F78380AC08EFD04E04AE81EF302BE41AE80 + EF7883163F684D98BB28052C016BAD6F03CBFA5668F79BAB85013EF81070948F + 38E1E341FB3F2AA31D5953632021FD16DA393C38AC5536804E9323363E1666A3 + 059AA6B62A6DB1254F1860FB5680B93542D0816C5DA4D4BBAB5A516164901D1F + 81B3AB32102112096A8FDED6E1B22B0CC9A972BF4775B31E0E872B4B77C0D234 + 1C60DB3B04E0CEA87D37322CB65668E08E9F89BCC52B5156790D2B23197CB624 + 39A86B343BA0EC34639A3802F77A9DA8E3A390317F2E8944E15EA31A067DD70E + 52856F87036C2904DCADC27D27D6687260CB0D0D66CD5D84AC7999FE235E2F8B + 4B6597B12B35069BD2657EDDCEAA76543A80B8B838B85C6E24252562FAF4C06D + BEBDBD0377EFAA9D64DE360A949A759B370501F2D72D858FD10F5F5C6478ED5F + 3B14AD263C9FBD0C4933E58175F048E2641CB87AFD2A8EA749919710850E52A5 + 0D0D062C5DB11209F1D2475952C1D5C3B22C8C46F25C71BB8E773BB9E4810ABC + BF07E09821F17974396C78F1C219643F970D994C069AA6074DD86F965E336A6B + 6A505AF82E52A74851AE6FC7F6F28B28585D80A8C8E800041540D177E951555B + CD78BDEE8DDA62EB6F418097562781E33CC3171DC7E1504B0FDA486606C68B39 + F3E7212525D0F3EEEE6E180C5D104BC4B0596D582262713443E63FF7D72E1B4E + 9B38AC5BF30AC2C3693F72637313EAEEA8BA7D3EDF7ADD41AB6AF01A786F1B46 + B600CCB9E6069CEC546341D67CFF4E69516B9013118305D269E8619C284C4927 + 5B73E0B1EE4055196EF659B126EF6554AA6EA2E5FE3F2A2FCBBC6E50047B1D04 + B0929F3884B00714872FA3BC58F2428EFFC48EFB3AA4DFEFC6AB9C5850EF23E0 + 27452EE82269A431ACAF86ED89EF51A0EF710D152AE8504B3E22AD4ECB4CC995 + CA1260EFB5435DAF69EE709B174241AE3C0296A84054189D90A3632D95429A71 + 03CC2E912E0FA3453732B253C368B2D735B7DBE1B0319F6A8BCD87C63BD71301 + F4DBAC92F89DE4FDE16BF98267218A1041D7F400AC932DE538EE04054F13E571 + 5A3AC6F806F544007E8823D23729F0A76265D109D1532570DB59305637588707 + 3CC75774145B564D2A40BF252A629FA1E9F0AD3CA837C83ECF242E09F9DAC98D + E8B4B6B877EFA4034C843D7580FF00E5DD75ACCD31E0800000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_07_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005344944415478DA + C5957B6C537514C7BFB7EB6B6BD9D6B583001B6C655B86433390C740C58D60E4 + B5EA1FC44450235189860888200C16ADB88041A25112137C84189F1034426502 + 06D7459C1D76A3B00D619BDBDA6E638C3ED7B5EBBD6DEFF5D7763CB65E564636 + F936BD8FDF3DF79CCF39E7F7FB5D0AF759D48D8B435A4895C2CC2A3254C46FCA + 19EC416BC93A2DFCE30270BC22F383829267B6AA8BB6F31AB69FDB87C63387F7 + 6BCAADDBC61CE0E7DD190BA432C95F25CF175362A998D790F133D07FA3E706FA + E9854FBFDD593BA60024FB86B94F3E386BF28C49231A5F6DEB85F164C33D86E2 + 0CA47A0BEF00308D2B5DF7F05825C52BDDA13A68CA2DD4F0F19B004FACCA1857 + 80DF7EE91C19605CA30F6A4480D232E3B806D7ED9D1B0760FB09A06FFFD0A7DC + F0C2F0148AE32B5EEC98EEE01F7100DE3A4A000EDCB5C3E8501C5BEED685EEF3 + 9A38005BBF260007EFDAE168ED745F18E2006C21C13D5F8D32F0D07BE3351736 + 5637429C20803A39094B3355D0A827412E4A80EECBBFE300BCF1110138CC13F8 + EEB33DDADA836D359721942620314582508085C41BC23BF36640A08FB30C4B37 + 5500FDC7E294F9B6718E678CE89A8F4675B713FBCFB723949E84A45409AE353B + B0CC27C0815D3D2300BCBE93009C8ADFE3C1538065717D80C11499649859D4E0 + 3AF976682A2F409CAD84542E419BA9138C2FA0B1943B75FC001B36035E3D4FDC + D8BE9FB2DAF19EB103BD7408DF2EC9C7BCF409BCC0272C766CBFD885DCC26CF4 + BBBD6835B57774D0CE5C68118C0578F56560E0DC1D82461D5E76F9B09B04BE42 + 0B51346721689A4657530D2A57CC228EA821B661F9432C661E31627EC99C88CF + 7F4C2D7039FA9EB2EE741D8F0558FF2C01B8C8DB753713C0BE0B56FC64ED4361 + C16CE4A9F320A00491D77FADAAC4C62C29D6E44C8C040EFF0CBD1EE44E48844A + 2A42DE913ACC2B590081804297B90B6DCDE64FCD65CE0DB1002F9502746B4CD6 + 4E3A88A5954D506564A120BF0062B124922D45217276B9DDA8FDF334F42B0B20 + 1726E098D9816D755D24610E3932213A68E0D1E245917BBBCD0E93F1C2C98E32 + E7F218809295F3111AE88C99849E4008ABEB2CF08949462A1572D4332097CB07 + 212247D49BCE6351C081AD6A25ACFE00569BBAB1B8B8185E9F178140001327A6 + 47006C761B6A0DC64B14CBAEED08B82E92B9C0DEAAC06B5B007660587C6EF0C8 + E192BD179BF59548CBCF864AA98A04EFEDBD0E914804B94C8EEA6A3D4E695EC0 + F4E45454D4EA51D5EFC49CC2D9D1A670D1D678BD5EB4FCDB0A9BCD068FC76305 + CD3E7413E0F1251960D940ECB2BB4D9B9A7AD0A7CE8152A58C009CD5D7602A15 + 8239C045EEDFCD4EC5F27439BCA11034759D285ABC0CA929298310618F2C1886 + 41D3E52634B7B6D8193A907FAB02AFACC79D158529AF39831AD685A9D3A746B2 + 32FC5E8BD6173791FD802C3197034593334071D1D5F0DD95067CD2D288E5252B + 22EFB31C8BE6B666D437D6738C9FFE8C6182E5DD5A8FED06809B9C9211470D54 + 103FA4093173762EC2B3F05C553D3E0CCA2004C58BFC7E820F0F3CB204128904 + B5E70DB0396C55210E9B3B77396F2E372A5ED021D242982551B4E4146667C953 + 646831B5930DC6B3DA5CE6FE91CF3C738FE231B148581D0A062DA4066FF2D98D + 0E80685A85A2549C243AAE2ECC80BF9F86A5A9DB029A59D0A1F5F6F0D94FD12A + A675C3D943E019BEE7A306082B6B8F62872851B477525E1A7C2E1A0E8BBB87F4 + 7807C531A7CDBB7C5747E3EB9E00C29ABE57B19634FA63992A51291052F0F731 + 08FA43E12D770DD968BE1F7780B0D2B4489E20513C472E57917F2ED994246C88 + 5B43BE7867FF1780B1D07D07F80F0E918FBA950971D90000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_08_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005244944415478DA + C5947B6C537514C7BFB7EDDA6D2DB0B6B002EDBA5140840E08E1311E46980999 + 82430C3EA2092604251A23AFA038205A0D42021812D03F603C54346462A6A310 + 64C43854C6C6C6730FC284EEAE8F3DBAD196AEEFF6DEEBCF8EC1D8BDAC8C6CF0 + 4D6E7AEFE9E9F97ECEF99D5E0A4F5954F7CD611392D5928C3F4968B6702A5771 + 3B66CB5D61426850008E6FCDD869CC7D638361F646C1C4C60B3B50FB47D1AE25 + 5B6C1F0F38C06F5FEA7292E5B2F3B9CB1750D264A96062241441D98F655CD017 + 9EB3F4337BE5800290EE6B66E44DCE1E3556D367728BC589EADF6B1ED38AAB20 + D39BF310003D97BF62FA40352528F3E18B58B2C54AF58EDF0358F8B26E5001CE + 9CB0F70D30A8EE77D527407E41F5A09A9BB7CF4800B0F124E0DDF5E0B75CEFC1 + 080C8A131A1E3F66DEF77702804F7E21007B1FB9605728412E77FFC65C589E00 + 60C31102B0EF910BF637CF7CA02201C07A62DEF97D3F8D39DE2307163B2EDE82 + 2FCA6081568DE7B52A248928980F56250058B79B00140918F7AFDBF6600439C7 + CA21928820968AA0A124F83C671C02A5740280355B015F498231F7887302B1BB + BAD2E145619D1D679C1E0CD3CAE1B676627148823D9B5BFB00F8681301389DF8 + 8CB9AE2E4B68274AC8AB592616A1286F0AC4D4DDDA3D96F8EBAB4D3840B763E4 + B36AD86BDA100BC5DEA60BDC4785013E5C0BF8CB047CBB0A861806A536177E25 + A6151D7EE87563302E6B3CAAAF5661C75435E68F4AE30133E4B70B4F5C0597A5 + 0625A660B96C7307C26E7DBB093E3EC0FBEF02C10BBC2EFED7FEFA667C53E780 + 423502864C03F45A3DA412294494180DB76E6098F33ABE7D6EBCE0916CBB6485 + 39C442A31F8EC67A2B3C4EEF6AEB66CF5E3EC0AAB708C035C1535F565A879624 + 05B2276563D89034622CBA77C562319C38558CCA2553A04812F11876D73A70AC + 9385CE301AAE0E376ED5D0A574812B8F0FB0321F08DF143C776F3486EF6E3871 + B0A10DE3B3A72243AB8B77DF0D71AEB21C6B3324786D8C9AEC47140B4FD5236B + 880C6B8C23F1B3E53668653A868F54C3EF0FE072F9B5060230810790BB781698 + A09DBF843DFE8ACBAFD891629C0CB54A15370E05C350C815703A9D085FBF8243 + 53B4688FC4B0E8B203938C46345A2C08068298B7602EC4645903C100CE9FADB4 + 9245CCE44FE083F5001BECE5FFE02ECC2BDA87CCE913919A920A866171AEAC1C + 29A929308C35A0AEB60EFF2C5B89F45405DE3C590451A6161A8D063EBF0FC929 + 32B01C0B97CB85CAF2AA0BF426570E0F60FE0B3AB06C547091BAB5B4DA06D5B4 + 8990CB53D1D1EAC2E866075ED1285068F3C04A465F3C5D07759218C79D9DD8EF + 93615ECEDCB871D7C5C0E6B0E3E2A54B9D2CCBEE1245B08736793CF727F0DE2A + 3C5C5D30EF9C2E46B38A826AB812764B335E576561DDB439BC545F3482594585 + C85FF42A2412490F08161EAF1BB5F564A95B5BCF3715B8E67603DC211F439140 + 7F5111948E90628C518F366B072635BAB1949509E61E1285209F998367C64E88 + 771F89456075586169B2A0A5ADD5CF71EC174D05EE9D5422D39E1A61822255A6 + B41AA665283986037DCDD140875D469810EB9D9BB55DF562BA3AFDD48CA93371 + 93FE17169B858946A3A5C4F04824EC2E693621706F07FA23FDB6B4E5D294A41F + 74933568BB711B016FE82BD2C9165EA209924C99F22C39926462F313B8D0D1A6 + CD8196DE69FD068877B74DF9A95826DEAED40FC51D870FD160EC1883D84E5B81 + B7AABFB51E0B203E89ADCA7C91187BA5F2A44C26C2221665582A1CD1D2267FEB + 130188CB04A95EA2CC23EFA497C813DB1471AF2631F6C9010C809E3AC07FA978 + 823FFFE96C520000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_09_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005354944415478DA + C5977B4C53571CC7BFB7AD942A16DB828096C73A260A6C3841A13E36D9B299CD + E1CCB269B6640FB769F6723EE6E60063885348A66E99FB47B319B2A951A2C9E6 + 98D9D46DA23879080814343CACB5545A5E7D973E6FEF0E05D1D22B1526F1F7CF + B9F7F4DBDFF773BEE7F4B6A5F0908BBA7D515C8050092FF61C99CA629732957D + 9E8EEC3505704C08C06F3B6377A764AFDA22CBDACA2ABC51FD359AFE2ED9B362 + 5BC7E70F1CE0D71DD2CCD029FC8AEC37975221A121AC4297C385B2C3658CDDEA + 94AFDCAEA97AA00064F58A8C658FA7C63C1A35AA58ABEC46CD9F8A715A319524 + 3DF93D00E2989C35E90F6A51AC555A5C8B15DBD4D4C8F96180E75E924E28C0D9 + DF35A3034CA8FB508D0A90935B33A1E6A545194100B69E02CC7BFC5F654606C3 + 1214C3165EE05CE981F220005F9C2000DFDF77C3C1A9205AE6CE45E90F978200 + 6C3944000EDC77C3B1EA4A7FAC0C02B099985B7E1AA331C3723B38677679A0EB + 7760D6B4B0C1040E5E0E02B0E95B0250C2623CF6D50ED4DB7F35A05C6BC05CC9 + 546C9B9F885BA56D410036EC04AC2783C47C675E6371A0596F459BC906995080 + 17E323FD54475A3BF155ED7570A686C0637163A5731276E76B4701589F47004E + DFD3FC17A50ED55D66B4186DB866B0811B2280442481385C8CE6160514AB33C1 + E772FC0EF180F695D38D089385A34F6582DBE95DA5CED51F6707F87823602B63 + 59308376533F969DAA47F29C14444544F94C43F902F0282EB81C1E4EFC711C47 + 16C52159342520A9E2162DF692EF109154888E469D8176D2899A02B33E10E083 + F7017BF5B0A97FE80C76D4A850A236217DDE3C444746FB8CB9430017ABCAF1A9 + 94839509110109F639DC5870B21E495932DC6AEF824967C9BF9967280C0458F7 + 3A01681C75DFF7366A7054E7C422F942624CCC299E6F6C6D6B41865B87BC27A5 + 23DF42062F64C7EA90F65432CC262B94F537EB08407A20C07B3980B39DD5F8F6 + E53BE75B618C89474CF460021C92008F8C3D3DBDA0940DF879E9633E5D61BD06 + E2501ED6264D479BD98197CF5D47DAC254B86937AE5C68EABF99AB9F120090BD + 7C0168BB86D5F8F6FD924B4AA42EC980801C40C6CBE072452DE2E2E33073C64C + D49F3F87B399097078BD9057A810112141B4DD82683E0F2D4211626552D08C07 + 95FFD440E5D0735140A2F14BE0C3CD80D73EC29FB98B8381ECE05E643D9BE18B + BE43A941B25700ADCD824ECA83DEDE3E5C7D6B3D42B9939079743F59B11C9A4E + 0D3AD41D982F4F07C5A16077D951515665547D69100524F0F4335278BD6EF6F8 + 874AFEEF0DCC5E9C8249C4A4B1A21987E64C876C320FC51A134C1E1A9F3D22F1 + E93E6AD6823B2703919111F0783DF0323468326A753A34D429CEA872F5CB02CF + C0DA75B8770DC22C3F791876A900C2F030345CB80AE5BB1B48032A405A54538E + 6A629A342B8918D3BEE807C68AAA4A747775179243983F12C044062182D419CA + 850B312198991885964A2576BA26230C010F375CA6DCB89830038B3397F8564E + 0F25A0EBD1A1B6AE0E76BB7D9FCAA9DF34700EA860A67797B44028E6F2B9ED71 + 4FC4880CB7CC30F75837AAF38DDF8DD425EC9A36779A487CE5D5175EF36DC100 + 8083ECBFDEA847776F379AAF35C1433B53D479D6AB630218A8D822F1EA103EE7 + 9824211C5DAD061BED62E49AED06BF9FCA09E44F0E259058D366A771F526BDCF + D862B3F6530C9AC80E29C8B3E1BC3ACF7868780BC65AF145A24F383C6A9F40C8 + A7FA8D4E3B39659B55B986FD7E9A5DA237188A49A428286878159A5C733B5BAF + 7101F80C0AC572D2FC1BF2F1CA6268E6AC2A4FFFFC78FA8C1B60784B76895269 + B747D75960E97D2800FFB71E3AC07F0DB48D3F5A1D2A030000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_10_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004DD4944415478DA + ED966B4C536718C7FF871628D78238C00D14BCC4219A3847A0021359345B8638 + 590C53A7CBF0BA8B4E67DC0CC8B64E4DC83677CBB60FCEDB16F8302F8BBA0ADB + DC161956109441605C04425BAE1581D21B879ED3F6ECF44081D2030502D997FD + 3FF49CBE7DDEE7FF7B9EF7694F09FCC722EC3717A4100509C36FB14B12FE50E6 + 6E8FB93539438A815901F8F964F8A7D1C9E947164A8EF2062ACA3EC13F7F5E3C + B531BBF5DD1907B8763C2C4EE4E35992BC632DE121F2E00DA4062814E61532A4 + C1B47AD3076DA5330AC0565F1DF3DC8AE5F316854C18DCD9DC85FBBF564FD38A + B9CB766FF53800F399D48CA767AA285EC92E946363760B31767D1860FD86B059 + 05F8FD46DBC400B3EA3EA409015233EFCFAAB92C27C605C0D17C4077CAF15366 + 6C63781AC5F035CF794D76FAB60B80F7AEB0005F4F3AE1E0928B5866E44676A6 + D805C0915C16E0F4A4134E354E76F6AE0B80C3ACB9FE87291A333C6FF9E164E7 + EEB90078E70B16E0228FF1D4ABB54BA527915BDF8ED7A29E40C5A51A1700074F + 0286EBE326B4257BA9E06FF40ED0E0534CB03F2E3FBFD201F2C3B226E436AAE1 + 2520B06DC003D9C73A26003890C502FC366E350A5D3F5E28A8445C5C3C42E686 + 42E82684BB9B3B7B7507411038FBE3192876243A0CB1C64423E3562D1A2C3468 + 3D05CA6C5EDF92A9FD831FE0AD4380B190A7DB23096FB5F7E2CD3B8D8893C423 + 38289833B7839CBF781E8A5746FFD40FEE53F75348BE5101BF4831BA1E68347A + 4A13D12B85CE19E0F5DD0059E6643A3AE123F689B8565685D8C404887DC5431D + 1072207957F2A0D816C73B23BB8A1A50EB2D80414B42D76590B664F67DE40CB0 + 772B0B50057E0D263C5EAEC24D5280E8E8A8A1EA47002E5DBD04C5D618DEE13C + 51D18A7CCA0A4F3F77B45475D62B337BA39C0176A502A6265E63FBED9A1BD598 + BB6229C4FE6208586365A312A1A1F3B8E3B87AFD1A145B567171F5DA7E58D92E + 2E0BF0E6B6EE9337A3DECF177E8FF9A0963D4286ECF1520EFDB31A06484E8985 + 856CE335B6BDE8CD162495A910B36625D7FA364527440FD5500D58B04A128B62 + 79092A9F59C46D49286E062314E2E3C54178D2D7131BCA5B112589062160505D + 5207B3BE7F9E526A543B76E08DC38095746A9F5D8F4823E22F7F8715F151602C + 04EA4BEBF0D7E65DA8E9E9C2FEA202B859D8E4AF1EE06223CF7D8684C4789497 + DEC342FF00180344088B7C1CB495467951252C4673A052DAD7E70090F46C18AC + D6D1DF71C741A4AC0C24254A2C4B580243B7110BBB34F83C2A948B7B60347173 + 6BABD6A6A7E40AA4BDB8095D2C9C5ADD89882511B058CDD0E975282FAE6C5665 + 6A1639CFC09EBD185F8330EB7EFA1EF402114C7A1A29DEE1783F2E893734F2C2 + 97484F4B87992DC8CC1A0F5E69D4D4D4A1BDA5E32B76080F8D05D0B2177FB8D0 + 2F6E146E8708E12BF64250431FF659BD78E3DE1618B07DF3F661005BEBB5062D + 8A0A6F9BAC2419613FFF6180C96A8E14FE7E1E81CAE0A58181DD4D5A1345F62F + 6E970E4FEEB02272E6303B5FDEC919DB3B603B0E79B19C36539634D5314DFEB4 + 006C9A9F235E27100A6E8AFC3C09B2D7544651744A8754DF3D1660F7963DEC5C + 309CB91DE461B71AF212393D409B96B767E91BA60560D3829C8034C2CD2D977D + 06F858CDD66F55599AFD8E9F07DE2140C4F3ED65C0F4586091B465EA9AA60DC0 + 999C10471242C141B6C1DFD8934D47D3069829FD0FF02F1DAE7B3FD685651D00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_11_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000055C4944415478DA + C5977B4C53571CC7BFB72F8AB440DB21A220A80374803AA93CE2CC56B3C54586 + 71F1115D628C99332E73D9E674848E396298266AB63FDC66CCE68CD3CC18E7A6 + ABBA391F90A91B0541A5A022206D0179687BE903DADEB6F7EE20A2965E293A99 + DFE4A6B7E7FECEF97ECEF79E7B6E2E85672C6AE0644F31A42A51422969CAE12F + E5CA2DBE16CDCA62B84704E0B792846D699A25EB27E614F01636576C45ED9983 + DBE717B56C78EA004736C5674B23C2FED12C7F85924825BC858C9B41D9FE32CE + E5F4E42ED8D8AA7FAA0064F606F5DC8CF4B849B14316B7DFECC2C53F0C4F68C5 + 9593F4721F01309ECB5F99F9B426C52BDD9E2ACC2F325383DBEF03BCF646FC88 + 029C3AD63A34C088BADFD39000F9851747D45CB7451D02A0E03860DF1E78951B + 1C0C4F501C5F78C16DBA5DE742007CF23301D831EC01FB9B42D4720F4E74DFFD + 1D0260FD3E02B06BD8033E6E9DEEFBF21000EB88B9636FC8012FDFB6C1E36791 + AA90213A4C34EC5474BB2B43007CF4150138C863FCE0BF85EC86D9872E203A4A + 09BBC30E8588C264A50CA9D11104280259B151489085F326A3FB21C43E90FF41 + 09E03C1A2266E0CD1355F0C726624AF21478191F1C76076C761BAC361A5DB78C + A8589C0DA95078BF7F9DC5891D0633328CBD58FB69DB1000EF6B09C0C990F7B8 + C9D68BB9C72E618E660E147225C44231C402093896C5A123FB50B73470B7FD9A + 987F6968818474773148376FB4D6F103BCF721D053C6E31B08F37965134EDA58 + A867AA2121C67D874828818DEE46CBE5321C793D2300D84BC016FE598726F8D1 + 6B7199E1A1538D0FBDD21F00AC5945102B784D0706ACBEE3C05B7F352267D64C + 844BC2C9EC257767DF9782D1644202DD846D399382D691CE6C41416D2B202073 + B4BA0BCC5A7A6B30C0EA6504A006FCEA1F70CDB90634C8A2101F3FF6AEB9D7ED + 03EB63315A158B2B353558AE64B0222576D05DE470C3E642DED97A8C4E51A2CD + D0556B2AA4338201DECE073C8DBCC67DF2B31CA61EBE84D4DC34482552D8AD4E + 34D73680250B4EA3D1405FAEC7CE1931C87A4E16B4860C742F169DBB89A417C7 + A1416F82B3D722BF5D0C670080262F0B7E576BF022BCF7287678BCC8BFD28617 + B252C07939D457D66377C6581C6EB7A3522C47477B274EABE3112D1662554D1B + BA49327BA78D438450806F4D56FCE2A7103B4185866A23DC3D3D6966ADF36A60 + 02EFAE035857507C036AECB620EFF7FD489E9184CE660B96C624E3E3CC97E0F4 + 325874EC001461E138306F09EC8C07330EEC445CDC18CC1AA5C0F229D3B1F8C4 + 4124673E0F4A4CE16A4503B9759E09C6C26E6300C0CB73E2C1B25EDEF8FBE422 + BBDF2C125F7276228C97DAB03B3506E93269505DB5DD8D0D2D6E64E764A3B4B4 + 14029F0F1332521049362C37E346F579438FC96D8D46317C8109BCB31A8F56BF + C9DC5F7F84739C005D0D348ECF5B8614852AA872FFB51AEC693762FAB469E8B2 + 74422012402C15C1EB67D0DA7A0B37AF351F3516D20B062F421BF98944089DA6 + 189C52912E2CB09806D49C38A8E627811B9C3A13498989C4D44BF601E6AEB98B + 71A1FC42255C4EF76C73117D3E0060B84A22DF0E0853D48F52858FEFB9E3AA36 + 31742E899209A8D9ACD4E7BD9A9715AD50C0478C19B6FFA8BA5885F65B1DDF98 + B4F4DA87EB1F0BA04FE33729D32809F4020A11AC9FFDCCA4ED2E79F87AE216A5 + 63C5C215320159FDFDB3F782765871FAEC198EF13393DBB48E1BFF09A04F0925 + 516AA15050E487FF8B96427BE540FBD8628C0A93AA3A26264E92ABC81B33322A + 1272B91C628908D71BAFA3C660D01B0BAD015F5E4F043064425BA22682A36693 + 81A75210647014D2C32492B83E102B6DE17A5DCC98CE6267D78801F069CC6659 + 4C18274AF7536C6FABD61EF055F5BF000CA5670EF02F0EFB8A3F188909390000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_12_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005644944415478DA + C5967B5054551CC7BFF7EE135088E52120EE2228633C7CB7899A89111589A659 + A665E958F650C7722C0770726BCC5ECE3493939353A60ECC2853598A9A0C664E + 9AA0801A2088AEC0EEC282E8B280CB3EEEEEBDDB595688652FAC3960DFFDE39E + 7BEE6FCFF773BEF79E732F85FF59544F63AF0AD210E1983F48D70CFE526789C1 + A14B5DA5827558008E6C1BF36562EA8B9B62676CE62DACBFF005AA7ECFDFB160 + 8BEEFD2107F8F5E3E847A50192E2D4157329B154CC5BC858199CCE3BEDB4986C + 29CF7DD8787E4801C8EC2BA73F959C1419376AD0E2E6BA56949DA8BC4F2B6709 + 492F650000B93373D5B4A19A14AF0AF69663C1162DD5BFBF17E0C9F9D1C30A50 + 74B47170806175BFAB410132B3CA86D5BCE0D3E93E00361F033A77785E75F60F + 862728275F78DE7D05BBCFF800F8E02702B0F39E077477F9A875FEDB28F8EE9C + 0F804DB90460F73D0DA86EBF83F32D46A42BC211E62719D4B83781EF4B7C006C + 24E677F6FB9C894B2B8B2EA1A28B83B9CB8494F0402C8A8B20306190D2820153 + 29D853EA03E0BDAF08403E8FB1F780B95775D8D57007339529B879B3151AAD06 + 46430B9E968762D9F8484C0B0FF29A48C10F3EF681CC0DDB00D361DEF8FACFA6 + C56CC3EC43E7913A771E428242211688C1D939D469EB5056598A3F174E4384BF + D86398827D977C00ACCF2600858398BBFB6E5918BC5C5409872C1C890989900A + A510110017848DBC2F0A0B7F44E912250414D5FBBF0A8309DB8E57A384318DD6 + A9CC7A7E80B5EF025DA7797C9D7D109C78A1B01286A0608C1B3F0E62DA6D2C12 + 48BA8F35B53548B2E9F1D123633D26B1B5AC1E79375AC13A9CC51A5BDB6CA8C0 + 7903BCF53A60B9E065DA3781C30DB79153A9C72465123124A6B484CC54003F91 + 7F770ABF151D47DE2C059265FE1EC1E9C92D9B73B402B444005B17F3AA36BB3D + D71B60CD32025031E07D7769C1892BB04487212434046029345CD3C270CB80B4 + B42760B73A5057FE174ECD4FEE7717DD0DE5C18B60A203D0D1682A69C86A4BF1 + 06589D09D8D4BCC62E99ED2C26FD72191352E2413B05B85AAEC6EA58191ABB6C + A89586C2CE38B0788415EB1222799FA1C70EFE0D364986969ADBB059DA02F42A + 983D00529F5582B5347A3F847797A29AC4B8BCBA0571531468BED68A45521A1B + C686BAFB2B6FC2C991B53E250A111221F29B3B6027E7AF8C7EA87B080BCB614E + 713DE44A39B4157AD8CCE6446DB6A9DA3381B737029C85373E97D4ED06641CCF + 857C62141ACB9B50B6FC1D8C10B997DA9EAA7208691AAF254C81BEAB13A987F6 + 8122E7473296223E38149F979EC1C1E65A44C687E3C6250D2C2626599763ACF2 + 00787C5E3438CECE1BBF4B568EC3CCE206443E1C8A404D270E4C8EE6ADDBA36B + C7312A08AE4FBB184313E47E42EC6FB560C2D438703487AA73B5CE2E4B5BE02D + 154C9E09BCB10603CB6DB2F8E801D44B4D08EE10E2D4F32B792BD37EDE0FC5E4 + C990F8895174F224646132C4C4CB41160B0C0603AE5FAEBFA8C936F67E7EF500 + 749043207CA894B2237F240B8795C556C60FC1A03DAEEB2816DF060A91919E01 + 3BCBC0C298C1921FC3D9C0B03654945E41A7D1B4429B63CCF300B867A9402B24 + B2B3B4804AE1586E9726CBB8B6EF65C5F6E0AFA7264F5D9F302181183204C2D6 + 7D6438066AB51AF5D7B5FC1BD17FD118957F142D917CC681DDA9CBEA2CED0327 + 8C91C89A9666BE142E25AF68370003ABC38AEAABD5B8A1AEAF71D82CE94DAADE + A5767F0083818903021A95139554AC3C16B488EE863074DC46D1A993ACC36A8D + E96F3EA4002EC9B707CF22EFA037298A5E121D31DA2F461183F0516128BE500C + 7D53F33A4D8EF19B6105E851940AFE6249F042B276568844A2F49123460A8CC6 + B6130D59C6671E08405F293EF18FA468C942B2199EEDD97C1E28802FFD03F7FB + 903FECB866520000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_13_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000056E4944415478DA + C5977B4C53571CC7BF7DD0D2969437F4C1C3428DF8E826A20EE744EBE67C4C8C + 7F181767A6333E32A3666ADC1CC2966EC19938278B264BCCE61C718E98CC45AD + 666E2AE20365A013A8A84CA8AD2D50C1B6B4943E28B77797CAABE5423703DB37 + B9E9B9E7FCEEF97EEEF79E7B6ECAC0FF2C465FE3980AE1B1ECE42B5457367D29 + 5961EE3628D7A9E01E1380B385C95F4E56AEDC9596BD9BB6F071E57EDCBB7CF2 + C0B202C387A30E70FAF3A457C205DC5BCA77E73138E11CDAC22E7717CA7E2C23 + 5D0ECFACE59F1AFF185500EAEE35D3172AA688D313472C6ED1B6E2F605CD0B5A + 9115547AB38601482173D7658DD64DD14A7DEC0E96153C6104F7F7032C589A34 + A60017CF1947061853F75E8D08909B777B4CCDD5FBA68700D87D1EB01F081C25 + 8383A1098AA40B6F689FFAC8F510001FFD4C011CFEC713F674553DB540220887 + 3482475F4B0E34D4DFDE0C01B0EB3805706464F341131A3A9C50FE720B5C360B + 6B2748B175AA0C7CAA1D5CD79FC0771521007652E61DC5218DFBE4EC26905972 + 15F3950B505FFF173ACD4DF8789A1CCBA9BD8481601F2A81A355210076145100 + 27698CE91F8987F061F1994A48A6642249940CBBCD8E3BD5772065BAF1C90C39 + 32E38501D0EAEF43EC03B91F14028E33B4771B6CAE317760FBB50770F022A098 + AC404C640C382CAEFFD0EAB5A8B87B13E71629208FE4F74FA3FEE16E08806D7B + 2880DF46307FDE57FBAC03EF5CD22025438E246912B8BDC63D474FDBE572E3D7 + DF4FE1FAF22C4472D8030914D78600D8B21DE82CA3F11D80711304DE54DF0557 + 268148240A30EF03282B2FC37B1216D6678803A63978BC0687E05CADCFB7FE44 + 0FF0FE06C05539C4747002471FB6E090DE8CF153D2FD865EA717E6562B448922 + 481224303FB3E071CD2D5C5EFA12580C464098592555B03249105E72CE9302EB + 8DA1009B565100B5C33EF71E2D385F0B421607A1508896C636C0D28ECC580134 + 240F33A6CD40E995521CCA12639E2472C85A5A5952836A01F55977769FD2E759 + 560C05589F0B781A688D7B64EFEAC6D4D335189F9D0A8BDE0679971747E6C861 + 767BB1A4B411E9696988B518519C23A75D435B4BEA7055C482A3D5E5D6792C02 + A8E00B0050BE351384CB387411F6BE8A0D4E0F56D5B5403A3101E65A13CECF4C + 85B077E35952A983852071F2650952791C34747641C06640CC0DEB9F66D3353D + 1A6502D85A1C707B3CE38D79F686C00436EF047CAE20FF0110BDBD1D6F9C3D86 + 487104E68649F155CEE2FE31A3C3864EAF1713A2E3FC750B4F172396CB43F9DB + 1BFDE336B71BB34E7C83C44C319A1EB6C1DDE95518F2ADF70200E6CE4F82CFE7 + A58DFFF91989EC721D3871E158CB0BC786E468DABA6DF74DB08A6568D46A7162 + 620C12B96CEC7AD08A47FC70C4CAA2F0A8420FD24944EB54EDED81096CDC84E1 + F5DC6473A91AA56D3A2C11CB5194B36848D5B5263DB6945FC4EBCAF9A8FAB30A + 0A361FD56D2690D17C88D3E361B7DBF1B8DAF85097679918BC086DD48F1021A4 + 6510F89AE54234C9C067842060CC4741EE65393169760EE2E263D1DCDA0CD353 + 136212A2C1E187A18BF0A0A14E0B5B5BC74E0AA02800E0DF28656FD41AEA2283 + 3EBFFDCAE0FE71FB62764845D283CAD794D477C2E337EC3B7ACE4D26131E69B4 + 5AAFC7AA6856C1F9C200741AA78A8A62F098BA158B5746F2F9BC00809E765373 + 13EE6BEA3B099F5769C8B3570DBE76540052BE8898C4E50AEEBD3A6D3643962A + 8397E8F29B5B6C16D43DA883A9E5697D37D1BDC65860AF0CBE765400FC29140A + B3C1621725C42664674DCD82305208A3C9801B37CBB50C8F75B26E98BF74A306 + E0970ACC144ED46A0693B93F2D5926CAC898800B972E781D2E4B4C9B0A8EB107 + E855BC0A11024E743E3B2C6C0775CA7577BBFB77BEFF04A04FE2C2A8541613E3 + 8C7BDAAF0E57F3375048883F689EE9F60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_14_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000056E4944415478DA + C5960B50545518C7FF77611F2CB8B03042BC764D1025440C94C4B149102333B0 + D73869D3A4636A8D3DCD7416B536874CCBD1266C262535CB52CC345B8CD469C2 + 3722022D908F04F6C13B5C765976D9E7BD9D65155C76DD7512EA9BD9D97BBEFB + 9DFBFF9DFFF9CEDDA5F03F0775FB628F14BC30FFD8DF496A9AE752A6FCA64D9D + B9580AD38800FC5C10FB6952E6FC5563A7ADF158D854F109EA7E2BDE92B74EFD + DEB003FCB421E6115E20F742E64B33290E8FE3B1D062B2A06C5F19D3D76BCE78 + FAFDE68BC30A40565F3B25277962645C84D7E2B6C64E54FE5AFB2FA59872E25E + C65D00444CEEE2B4E15A94C790EDB98CBC752A6A687E0060F65331230A70B2A4 + D93BC088AADF0AAF00B992CA1115977D3CC507C09A6340CF16D7BBCC50633C18 + C57832CF3D27DB71C607C0EA4304A0F09E1FE84C3138D3D285B5E7EAF1FAE438 + CC4F8871AD65062F6445E77D00ACFA9600ECF02ECEB8E73EAF69C00F1D26E87A + 7AF0C2985048A68E03C5506E75B2AFCA7D00AC24E2FABDF72C7C7B7CF0AF567C + A132206D522A2E5494239163C5F69913C1F7F773A993EDBAE403E09D6D04A0D8 + 83B0E72D6931985058A3C0514527A26245484B49039BC546D51FD5606EAAB17B + 5632A2027903F365BB7DBC0772DF2A007A8F7A59ED60FEA4BA0BEF9EBB86B0D8 + 288C118B1114300A5C7F1EB87E3C70FCB8B8D6700D57EB2B50323715517CAE13 + E0EB6A1F006FE41380E35EC49DB9D32DDD587EF62AE253E2210C0E25A2DC7E71 + 87B003C031B6596D3872FC300E6626202934D009B057EE0360C5DB80A1CC83EE + 204C0F7970D6D12A0813A3210C09E91764B338A4E958100404F78BB3287F9C2C + 3B8145A200AC488A1E6CC26FEA7C00BCFA0AD057E1267AA703DBEB9A51D4AE85 + 38211A56238D76B2FF469D1E563B8D394FCC019FC747C5A54B48631BB03523CE + C54CD9BE3FF126AB3B5161D137420A8B3BC0B20504407ED77D7744964C0EDB83 + 21602C14F44D7F237F720CE68D094356492D1ECA988196E636F0BB54D83F6B02 + D894EB51DCF47D3D76B04C8ED136A544B3D21D60492E60BEE151D811261B8DA4 + C355884D8944476D070ECF1A8FC4107EFFBD9CD27AD0E1D130B6A85092930821 + C7CF6D099BF75F4111CF029BC5DEA89474C7B90164CE4D87BDAFD9BD096F1D45 + 8DD58EEC4A2504E181C8A629AC1B173E50B2B5B10BC73AF5D8991C8538BEE73F + 345F9E6AC1DE500626BD053AE3CD608D143DAE0EBC465CA1FB86E80F82F45A2D + 98F45D2178A338D89EFE24B262C77A146AD069B0E058319E199744DE8A8F0E3C + E6E55D8590C7F0D0D36980A1D714D121EDED7401782C2B06346DF568FFEDC8AB + 54A19534DC6764F533847CB73AADCD8E176B5AC18F158321DB7128D5790A6E18 + 2D5858D386A8C91150D5B4C3DCA7096C95C2E8EAC0D265B87B38450A2A4E6157 + 5D158AB2F3902D7275C04ADBB1B0F447184204881645A3EEFC459C7E7E118E34 + 5CC5A6CB6711281682E23050CBDBAF2B249AF1437B4047BE04F0117602D2453E + 1160B9DDDB473ABC9DBC19D3A74E85D16C44E92FA5F023272128548007C4A3C1 + 0EF4838AFC6E68DB74EB95F9DA021780FB0DD146E1EAF0B0D19B67CF7C1C3463 + 83D96E464F9F0E0C4513672CFDE36E6D376E5493B36B66121452AD76D800623E + 124E0AE207D43C9BF31CC5E6F8F78B99ED26581CDF3693539C34E695EAEB569B + D93E4FB9B6BBF4CEF9F70D1025158AD85C544D4F9D1E363E7E8253D8EE1436F4 + E9D1A45040D9A8D6DB6866A95AA2291E3A7F58B6C001C1E1A264427C62726ACA + C3C4762BAAE5D568686A3433347380B1D93F54AED735799A3B2C008E182D4510 + 9F2B3C10191E3937237D1A2ECBABA050A996AB249A9DDEE60D1B407F48C11273 + 849B0502C1AAE0E060A8D4AA0F54F9DA0DFF1DC0AD106F0C5D4251CC7A3BE865 + 6A89EE84B7DA7F003CC08D3F6FB9F0790000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_15_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005484944415478DA + C5960B4C535718C7FF7DD01752A080B6AEE5A538083A65A0C014916D3AF7802C + 4B5C348BC98C8FCC2CCB7C0D871A439C9165BA2D733EA2D3898F4DD996CD51DD + 5C8C1991595A446850018129B56515A42F5AEC83B6778757157A699D42F635CD + 39F7DCEF9CDFEF7EA7F7DE32F03F0763A873AC18BC28B6EC4F3294459F4A290D + 6E6DDE8A6238C645A07CA76C776ADEDB9B12B336D326DEA9FE0C372E95ED29D8 + A6FD68CC05CEEE9066F242B95579CB1730383C0E6DA2CBE142C5A90ACA6E7366 + BFB95DA71A530172F5D7335E99315D326552C064FDED4ED45CB8FE84284A49AA + 973D8A402C95BF227DAC2E8A36E4C7AEA160DB5DC6C8719FC0C237A4E32A70F1 + 9C2EB0C0B8D20723A0407E51CDB8C2E525194104369F07BAF70C3F4B8D2C0C4D + A106731C6E0FBAC89D229DC0A7CD931FAA0C2250F81311F89A063A1A78F8F8DA + 4B75B8A8BD8FBDB933F05A8278C4340AF26F144104369D24028702C3299AB1C1 + 58F8F315444E4941E3CD7A9C5E9486E951C26179F223CA20021B08DC7AFC3F82 + 29349B6D50DD3363D7D516BCBCF055582D5634A89538973F1B13F9DC8715387A + 3588C0FA2F8940190D987E4BEAEE5B5052F337EA2D0E44458B102E0C47725232 + 786C3E9A5B5AE06C6F42D9E23408D8CC810A7C1BE43990FFE14EC0F66BC0320F + 8D9736B6A3447D07B269B19048C4FD502E8B4BBE3C70D903ADA24681448F1107 + E627130803F2D2BA20021F6C21027F04800F8CFDD6761FEBAA5B31756602C242 + C37C600E9B075E5FDB774CFA4CF239537E1A2772A720234608F9F1FA2002EFAF + 037A2A68B80F652C2E3772CBAF41942286304C08A7B5173D163B181403D1A268 + C449E3FA655804FE97EA0A9EF198707401D9161613F213378208BCB70AB057FB + 411FADC0C19BED38F08F01E28468E89BBA20A6BC58241341DFE384D2C1467666 + 363C2E0F2E2B2AB13826043B32E211C21860CA4F35041158B38C08D48FBAEF7D + 5170E1263A277161D258F16E5C140A674AC12280D2E60E941A8084B87828552A + 6C4C89C1AA67C5C3E6CABFBB154460653EE06CA5050F75537EAC054F22403AC5 + C2919CA9BE539FD469516EF4C06E31635F563C1648847E97F0CBF7CD58CFECB9 + 44F6AB5653642AF413C87B7D0E3C761D2D78E878D6E556702684605F620CE644 + 087C298D56274EB69BB05A16890401FD1F1A79851EDB43ECF07AA9079A2263A8 + 7F05D66E00BCF611FCE1BF85D4135FC1EE7543B16435C4E40EA08B56B301FBD5 + 2AAC9A918ED4A889BE653E3F720087851EB86CBD682B3232FC04725F9412BB5E + FAF20FC6EEDB5D68B2B9703055020E93E197A734DBB1F15627F8E11158C4E945 + 616294EFDCF24A2D74323ECC3A9B8308F0FD2BB07A0D468FE02FA8D206353EAD + 53202B331377B55ABC13138B95A969248BC217B55538DCA286282E0CF79A0CEA + B68F4D6923052CA411E209C24B003F309D68889880F92FE480C561A14A5505A9 + DE8048B2FC758607DD422E24C931E868EB82B5A367AB668B69D73081278DC9C5 + 10847044E571D2D8977232E7C143749C1E07343A0DBA8C5DA0185E840AC9635A + C841B7B51B77D45A8BDDD13BADA3D8D6392602B13B23E785860A2A97162C2368 + 02773BE0F238FB25FAFAFD2D39B6F658D142DE1D4EA77BA9B6C858F6E81A4F25 + 806230E3B9A2334909494BE6CE9E3B0876FAC00EB71D7AFD3DB4DDD250BD2EF7 + BABB5BCC7B472EF1740243DBC0155DCE782E237D5A5252FF9537B634F697DC60 + 30C2F1C0A1A43CD8A8D96654D0CD7F6A81BE90150B26B3B8BCDA9CEC9C49E111 + E4CDF7FBF90714E52DF2528C0ADD56537DA0B96322D017B125E1E9216C6EE5F3 + B3D2F8D535571BC8D32EF571E68D99C0808468098BC528F37AA8B344E0ADC799 + F32F6AE37C3FA371C2B50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_16_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000054E4944415478DA + C5967B4C53571CC7BF2DB4BD94876D01018196E0706E028A3A45976DE0E22B5A + B768E662F6C88C9B7BC5388DD3C070219B68E24CFC6359D4E9E6169D1B8B2EB2 + 628243437D6C2B0E5169A3121ED2C77828A52FE86D6F1F7707508472E1AA40F6 + 6B6EEEB9E7FCCEF97ECEF79C737B05F89F43F0A070B418546C786A15A9CAE54E + 657556BF397F7D313C1302F0FBAED4AF66E4AFDD969EBB8333F1CE95BD309C2F + DDB7AAC8FCE9B8039CFE22653E1529F93BFFAD3C8198127326321E06DAE35A96 + EEF62E78F5734BF5B80290D9EBE72ECDCA4C9A9A306A725BF35DD454E89F508A + D511F7168C00A064D5EBE78CD7A4384373F42A56159904A1F503008B57A64C28 + 4065B96574800955BF1FA302A80B6A26545CB3672E0FC08E338073DFD05636D4 + 180EA342729C8C0FFE60108A90D3A43974890760FB49D2FB6B0ED1918487D7B3 + E4B7F0172D98208B736B9E875C2C1E68D11CFE8B0760DB31027068747196A36E + 50E36D9B0BAF551A90949884E7C268942C9CFED081233A1E80AD44DCF5E36309 + 07D820CE99EE41D76E87D945C3D24D8391C563D68C59A8385781DF966663BA3C + AADF81EFFEE101D8B29F0094720873CFB6D2DC892FAB1B60178523363E1631D1 + D19084539045C9A098A480D16842C0720BBF2E9BD5EFC0F73CEF01F5E65D4077 + 198FCDFDF5070C26EC3798A17C26190AB9A24F581226211735501693ABBCB21C + BB662660B9320E9A1FAEF1006C2A240067475DE3DE2823AFE36D358D489F990A + 2915D92724128A1121920E82E8BF775AADA8D59D85F695D9A83866E001F8F813 + A047CBA1FB10A6DB17405ED955444C53401810A2EB5F07BA1D6E849136710485 + CCCC4C28A728EF3B40C1D26AC1055D15B4EA2C5C3DD9C003F0C1BB007D6598E8 + 60074E3474A0A4B11554140571278D821C2596A4C8418509B1F84C1D12B37290 + 18970437D98CB575D72063ECD8395B85850931D01CBFC903B0711D01A81B71DD + 7BE31D6D3D6A591F289B0F6796CF403C25EAABB77A7DC8D518B068513E1AEB9B + 606D33627B760AD64D8D1BF8E0D0FC54CF03B0410D781B39851F145F2CD7A3CD + EF4709197C6D7ADC40D3957B2EBC79E90E8424E98D3405366726224614366424 + CD099E25C85F310F01DAC229FCE07959750B3A7C7EFC312F0DF1E2F041DB849C + F30E17B26324488BE0FEA0B9A8EDC0A630E786008B264BA1FDC270073EDC0A04 + E910FDA17BA1BADD8C16870DAF3F9D8591A2C569434D472BD6643CFBF07B8F0C + 73FCF041EC0C77F7D29A5A0A6CAA61002F2D4A4130E8E3B69F7B4B0C79E80904 + F1ADC98ED2BB3D6085427C434ECADC49D440D6BE8B6D288DF4C347FB9B8D05B6 + A9C31D786F231E5171485DEF1F5069BD017B6BFF842C210919D39E425555152E + AF5E8FC952695F8ED5E346FECF4780A408B8DA7A2A8803CB43011CE41683C78C + 464100A7045E04122623273B07915152B477B6A1E9B20E050129FC044E4F724E + 0BBD10A446C3E3F6C2DDE9F9A8A5D0766008C093447271440A151965CA9B9F27 + 484D56820978E00D78616E35436FD08376D30C040271648C148AE449802808D3 + F576AB8BB1A57715C339660014439C269137AC7859AD8C8F8D23E204C0EFEDBF + 1310B7B78738E02360A4ECE941F30D3318DAF7B6A9D07E6CF0304F0E4042B55B + B65A218B3DA55EA22642CC7D887E80DE3243CA5D361B8CB72C60BCBE22B2F94A + 42C71813406FA4ED915FCC9DB3E005954A059BB30B36970D3E02E3703A60EDEC + 82C3EABC130CB25BCC45F632AEFE6306482D91675294B86EE59215821B37EBD0 + DCDCA4072B6825A7A31982E079A3D7514696CB3F52FF3103F4B9B05B7E302363 + DAFBED77DBE1B23B725A3EB35F7FD4BEE30230A5383A4E2C11DD266F06DAE8ED + 529119071FB5EF7F53D2913F93B0BBDA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_17_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005254944415478DA + C5957B6C53551CC7BFB71D7DD0D1B1EED56EDD64C8CC120762441C2A8F6DA289 + AC408808FC612291971114084A98441B429C5182891A0D20232A1250045C070A + 73AC4C03734C166493C060A3AF6DED1E5DBBAEEDBD6DEFF57463B06E97DD3D58 + FC2537F7DCDFFDDDDFF773BEE7E45C0AFF73507D83437AC8E2A252CB492A9BBF + 94AB6C0F5A7256EBE11F1780E2DDA99F3E9EF3EAB6A9D9DB790B1BAB3E416DD9 + B13D8B775ADE7DE800A776699F9129A497725E5B40496412DE42C6CFC078D8C8 + F93CF49CA51F58FF7AA80064F6D766BD343D4BF368D290C5CD0D0E54FF766D94 + 525C25716FCE0300D238DDEAA71ED6A478C370E86F2CDE69A606E6EF012CCCD7 + 8E2B4069897568807155BF1B4302E876548FABB8A1709600C0F6D3807B4FE45B + 6EA0313C46717CE60DCE19F6FD2100F0DE7102F0C5B01BF6A6F86BDD4C006B4B + 6B90A34DC08619E93D39C3818B0200DBBE2700FB8616E778723C759FD734E068 + 8B17EEF65654AF9C0B99580CC3379502005B8978D7B72312F60683385EDF04A3 + AD1D66B78F3C8790AC90E196BB1BB39F5B80DABA3A1464AA903F251186839705 + 00B67C46008EF108F3CFB6E48E033B2FDD0026C911AF8E83523909B209728418 + 16417F10531F99067B4B0B60AEC3770B67C05024700EE8DED90D787E11B0B937 + FF75AD197BEBCCD066AA11A38C81442C85348A5C6259EF985C12321653629C2C + F919154B9E44E5D13A01804D0504E0ACE01A1BAD1D58F3E775A4CE50931F0405 + BF3B001127EA7140ADD6402155DC072150172F5FC20A1583C4AA360180B73603 + DD461EDDFB300196456EF115D01A393C0E1F9221426E4A2CA4228AACBB0F65CD + 6ECC9B3F0FB1D1B1770164686D73A0E1CA796C681309006C5803F8AA0689F677 + C0D8E4C4FAAADBE058603DF9716D9E9E426CEEED59DED489B7ABADC8CBCDEB59 + 028AB862B3D950DF588F1474E375BBD049B86E1501F8E781EB1E8E1D558DF8D1 + D48E179262B06FEEB4888A65A5FF824BCB201B510AABD586567B33F2344A2C4B + 5761812606678EDC1400784307D0B77885FB86BB6B2C28BA69C7C985997842A5 + 88A89B79E22ABC64D633274BF1CA14155E4E9B8CE828F1BD0AC391FAA1017216 + CD46C867E515EE7BE6C2A75C90454CBFC67D351D81208264E9122551BC1E5618 + ED020EBCB915607D03F487792CF70BBBD743F68508F1F289F76BC9CD70603F36 + 8A5D2A33ED72410F7610C0FC5C2D5836303C212EF2A13BC4E2F7B66E9C767870 + D51B828C0BE142765AC427872BECD823F2864DFCCA54E0DC38D881B5EB304CC5 + 9E0811910AAB09276E5F4799A51171094948D126830932602DCD3895BF2AE2BB + A5455FE29A840B9F94074D051D6B0602B8C84D8911C45E9117DE847864A46720 + 253905E434021DA2517EA11C2B9D016471BD7B812510BF8A189C97B3A0C41468 + 4F601171E04C04C06862CAC7B135F9B9BA9909F189A0837E3044DCE971A2E242 + 050281E04F2CC7D68A402940518BE54A696674921CADF54EF31DDA9941F60033 + 768042D5968CF4C7F63EFBF41C0240F700D0213FBC74379A9A9BD1D5D545661F + 8254290125E360B9DA02860E2EB1147416F7EF337A00BD421D15ADB02ED72D17 + 87F70343C4C34BD007D207E572BB60BB6107E30DBC4FACFF68609F5103DC75E1 + ECDCECE75F4C52ABD160BA8509B209104944F0077C70BBDD687774C0E9703949 + E926D30EE70F7C3DC604905AA85AA1556B8E4ECFCAC2B9B2732E70D47592263B + 123EB2F74C2CD8121FD359D4AA87E7413DC60490ACC744A92CAE45A3514FB2DA + 6C1F9A0B3A778DB4C79800C2915618BB9D34C9A7684E7747DFD939D2EFFF03EC + 9F833FF0DFB2270000000049454E44AE426082} + end + item + Background = clWindow + Name = 'SynchronizeDirectories_18_06' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004E94944415478DA + C5967D4C557518C7BFE75EBCAF5C2E1714228108243024AC9CE26693DBC45A0A + B552B76CB45C692F8E556019C81A3682CD68FD6199668D5EFC43367B51D489E4 + 2075A977B602512E2F5702AEBCCBE5BEDF7B38E79E7E7011BB78380708D6B33D + 7BCE7EBFE7FCBE9FDFF39CDF3987C2FF6CD49D8B8A6228C283626AC9503A7F2A + 77F936D3A5DF560CCFBC009C2889F92445BF65577CFA6EDEC476C33E349EAB2C + CF2EEA7A6FCE017EF9287A95422DBFA4CFC9A0640A196F22EDA15177A48E733B + BCAB9FFBD07C654E01C8EEAFAD782A75595442A46072CFCD7E5C3D736D9652DC + 6552BDD55300C47259DB1E9FAB4DF15A55C51FC82EEAA4268F4F00646E8C9E57 + 809A9366618079551F374180AC82ABF32A5E55B6420460F729C0561E38CB4D2E + 0C4FA138BEE2DD3B5675E88208C0FBC708C0FE692FE81F12CEE5C85AA6612796 + 84AA5175F87711805D3F108043C2E21CCF98405E89A119154D6694AF598AA0DA + 0E11803C226EFF6E46C2569AC611E32D5477F4A395ECD4C3F8A09505E1B1082D + 52C235F8BAA517494B1E4282BB1F19CD0E1180773F2300953CC2FCBB3DD33180 + 0F2E19C18528101EA543484808943225C052700EBBD0738B882726412957A1AF + E132B6F78B9D82B74B00C7719132FBC78F347763EF9F37715FD2426834C19049 + E5132E1F8B32E28AB128E1A43871EA18F679552200B98504A05AB4C7F583766C + AE69802E5E0BD7A0172EAB073E527AB95286C8A8082424C44325570740FD7CFA + 27E4DB7CD856641600D8F90EE0ACE3D10D84D954DD80269626ED1A417E5A2CB2 + E316215C2E4593C585FD8D665CB4D0D0AFCD803C48315E0939CE5DFC15CF9807 + 50B0A75B00E08DD700B78157F44E055AAC2E3C7DBA812C4AE1F8FA5424699513 + B32CB96753CD75782362909C981CD01243BD01D1379A70A0B0570060C78B04A0 + 61CABEFB9F7A063B2FB6617DB40E2F274604647C71BD1BDFF678B03C6D39DC4E + 0F1C7607EC763B2CC316381C566C1D5980BD7B7A04005ECD02BC6DBCC28197FC + D529FDCB4C8EDD001691762493CA248512D72AB094C4047252CE1E35093F84FA + 0D2BC1BACD53088B7CABC6A7DD3E164A898437E57C5D9FC82978330FF0B9A7B5 + 5B2173332350062D08CC25A1EAF057C2006B9F8C86CF37323D2132C58CBEE75D + 34DA9CC4496C75FA7D90E1F0525430F21E0C0BB8E5C26F832215D8BE43BCC6E3 + 76B2BD19F9E7ABA10E0E814EAB232F230DD41A3554C14AD437D423273A11B969 + AB02EE2BF8E6208E52DE6A8666B69A8B6D439301AC2484609A7696A2D199928C + 95448466BDF0121F8DC656239CD75B90E7534272F7871BDD148B4FA56E306488 + 61B8D4AE3D96C60080995A6CA96E63ECFD3155994F648E8BD3247A505B570787 + CD7E94E5F0F1A8C8E2524DF80248733889A444AD93AB5DB7BD86BF0B8756DDD3 + 82995A5C59689C5AA5697F7EC30B633BBFE32EAF1326D34DF476F78FFDC64BC8 + 0B4B458EA16AA11C03260B37E265D2CD4536C37F0618B507CAC29C5B9EDDACE2 + 28DF58056852017FBCDB925177389CE8310E8088E77614583E9FBCCEAC01E24A + C3AEACD3AF5BE96548EF5B8C885A1C098D4E4DBEC62C3C231E58AD560CF50DC3 + DA67B3B21CF57A57C15025DF3AB307280BAB786459EA2BADA636B85CEE1250DC + A314A83564452D79F83DE477EC0649FB91A5D983FF7EEAE70C20B6343427482A + FD9E657D5F76145ADE9A98282607A018BEE9AE336B003F44F0C39DB4C33813C1 + C9F60F0C537E3FAC7B2A440000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000056D4944415478DA + CD977B58D35518C7BF53536ED65051BC24663DA2488699371201490951CBBC8B + 8A1A880A8F3728F3860A498FF56861CA10D3076D4A08684CB98C26370D9DA354 + AE339F52E4CEC6D8D8C66EB05FBFFD8A51B28D0165BDFFFCDEDF79CE7BCEE7BC + E77DDF730E0DFFB1D0FE3700BB4EE710DD342D50B612DE31C19EB27F0CE0D826 + 0F106660E8BA24DF7C082EBFAED7109D00DAB4E63922B7A8124D52156E97D7F4 + 0AA21380A6CD3C00FE53211A248A3F21AA0BC9D97DE2823C853D06D8199B4D1C + 0FF28452A3C59E6F724C1A7D16E009B1540181A48582104995B85D56532C97C9 + E6C4852DEC16841E607B0C87F86A8B175AD45AB30C07F40304E20E88C666250A + 4A2B4BA3B7BEE3DC23806D27D94474F03CC8546DD87BE68649A3A8402F54D44B + 905F5C09895CA56FAF15887122C4BB5BA9ADEF1C129D417CBDED5D342BDACC36 + D6C56B95A09982D192E993C57D8893DB7D7A06B0F5CB34E2D48EF910B7B462FF + 99ACEE8C81880FE742A6D4E0283317313B7D7B06B0E5188B38B56B219AE4AD66 + 192A954AB0B338E0DE2DC4938A0A88444D78618015D42AF90FA463AE2B852DE7 + 4A4B73BB4C4D3D40D017DF1331A1EFA151A641785CA649A3A6DAC7785A741374 + DB41B0B31F05EB812FA17F7F0BA8D54AC8A51208EAAA20ACAF6E24B44450E1CD + F414B300028F5E2118618B2124014CC9778997919C928AF193A6C2CD6D36A6B9 + 8C831DDD1A16FDFB41A16E2533438E6B37B87854560C7E110F2AA52C9C979711 + D92540405412C1D8BD1402A906874E5F37BAF2DAF23B98E2EA0557B759E84BEB + 285ABA12EE3DD389D2337E2C818DB525323339B87727070A65CBF29FF2D2924C + 026CFC3491607CB28C0230B6E79B83B6608CE364046EF483A3C3D03F2636D037 + 35FB1E3C664C4211FF3158A9D7709F9B235034B68C3514137A80F5110944EC9E + 156868D6E0F06956A7418515655089AAE0B3D80FD636561D93934B6F8758E235 + 85D22FB3B958ED331D35620DAEA77390CD66A1B1BE7A072F3F3DDA2880FF2126 + C1D8BB8A02302411870FA395668590E0408C193ED8649C30AFDDC29A45B32057 + 6951F2A80A49091751FE80CBE1E5A5CD350AB036FC02C1D8E7470144C65EED34 + 283F3F192ED3DCE1386932349A56BDF3757BDFEE89758BDCA8B6B3293958B758 + 77B2EA0A950C97981751788B5D47020C370AE0B72F9E60EC5F8BFA66B5C155AD + 5EBE14AE73162134C41F349AF15AA38389BDC446C08A79D4C9AAF3C2F978260A + B259200168460156ED394B300EF893001A1C61744EDD470557290F0C1BE30895 + 5A432EB8DD031D61B8799537F53D11CF42C06A5F4A572894387B8ED9B50756EE + 3E43C484AFA7000CC9D12391D0F6B184FF86F570183914CFC6FF5FFF8EC55DC1 + 479B96508DBF565482C94CE83A06567C1C479C3AB0010D46D2302B239DCC6B36 + 167CB012733D5D0DBABE5DA24E26202A740DA55F4A4E4776565AD759A0038009 + D1B6B5A2F20107CE2E33F0F26B13C07F524F4DDBBE03C4339749C6C10DE0DD2F + 47D2D54C14F1F2A572A16C84C93A608E4C71F75D66696175D965BA0796FABA63 + E69B4E46FBDEFEB90CC969796411CA85ED603B348B9A8EE7652684F60A402753 + DD7D0E0CB0B08918FFFA54383B3962F634678C1D6D8F81369690CA14F8ED691D + F2EF96A0A4EC21F8C53C2C7BDF076FBBBA22F2F313282CE0F8573FFEE542AF00 + 74F296DBFC25A425C36ED828BB21F62361F3225D7F1ACA2462DD4988C6861AA9 + FD288781FBC28221118BC1CE2D406AD24542A190EB20BEED15804E264EF4B0B1 + 1862B5911C6001F9EB4C036D381911B5A45E425E8F580A91227EF0E811076D07 + D1C344825A4C98F806E8743AAE249EFF1BC4BFFE341BF9CAB8757D687DE31D5E + 1D4F7372EE0CF15CDE8624C45A12E27C3B842DDD162989F114C4737B9C1A8378 + AEAF634310BF03E6BAD003F85065130000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000056E4944415478DA + CD977B50135714C6BF5854B4D8828AA22214ABD50AB4CE58D4A656059587D55A + 512B0CB528A20CEAA05546EB0B5FD54E6D7D60812054076C1411454DC3231479 + A9B118DA2A12413BEA20F24C421292901764BB592355939000EAF4FBE7DEDD3D + E7DEDF9E3DF7DCBD3418B46453128197A0F403AB685DB1EF92F1ABD0FF0760C3 + B1C22E7E021A57D546F825ACF196BF348083AB6680B002436F72EECA5D945635 + F418C208A05D675D208ACA6B2096A971BDB2AE47104600DA76EB00AA1E09D124 + 551A206ACBC8D9039222BC85DD06F826B1803814E10D9556872DBF1476EAF47D + B83724322504D2560AA259A6C2F53B75B71572B94F52F4BC2E417400AC4BC827 + 8E44CE44AB466795635F1B4020F90F42D4A202975FC38F5D3DCBA35B0051711C + 22768D2FE4EA766C4DBEDCA9D3FE953351DD2845C9ED1A4815EA8EFBF502098E + AEF5EB5E215A1B9B43FC1CE58F1665BBD5CEFA7C7D2C68A16074E4F2C92BBD8B + B87501DD03587D388B885F3F0792D6366C4FCEB3E8D8DEA685B0BA12E2866AD8 + 68E568168BD1DBB63F342AC5EF24175B256C3DC1E717595C191D0091075944FC + 8679102BDA2C4E7EF5DA75C4C527C2C6D60E8E4ECE7873C0DBE8D3C7161A8D0A + 0A99148286C71036D68A081D11517625FBBC5500113F5E241236CE8748AE454C + 52AE5987FA7B7F4154CDC7B80FBCE035652A860C19089B5E34D0C8913EF67C07 + 02B102ACCB3770EF4E39AACA7950ABE431BCE29CBD160156FE904930A2174048 + 0298D3B56B5C1C8E8DC744FA4C84862CC018E7C126EDB2B97CD8F5B3456E6E3E + FEFEA3104A55EB977F166765740A10BE3F83606C5E04814C8B5DC7D84686BA76 + 2DF88567E13E610A7C7CFDC8926D58AE64F2114F1ACC9BE649DDBA547413D327 + 79A2BCEA2158977EC3CDD2428152D43ACA544E7400847D974E30BE5D4C019812 + 9BCDC645562E028343B1C86F4AA7397296C34390BF17EA245AB0B3F351C06141 + D458BB9E57921D6B1660D99E342271CB1234B568B1FB18CB68D007651C8C7476 + C5B4D901506B34D41B53EF6EA8DCFA26D87F12D567B2B908994B8742AD43C53F + 8F9191760A95B74AF379C559B3CD0284EE62128CADC1148029AD5CB102A33D26 + 6353D40AF4EFD7FBB9895FD489CC227C357F3AB9B1E9EB841CA799A7507695D3 + 40020C330BB034E624C1D8164201EC4DBC603468453E13749FCF31C465145574 + 0C9FDFD03EE9842FF4A65AC6993C842D9A456D6CFA28A4A630C12D608104A099 + 0508D9964230B62F45638BC66404225785630C1981A8C8656404FA769A034753 + B31016E44FF5954A158E9F605A8E40F096E30463472809A0C53E8671ED7874AB + 102E2EAE183F712A1A45D227A17F1A094314D6857E465DFF949C89E8F040EAC1 + FDEA1A3099699673206873329110B38C0230A5BC9C6CE4E47030373008BE3E74 + A3E7CFE6C2FEB833D8B72184EA9F3E978D82BC2CCBAB40FF5B1EBF63399ACC2C + 43B55A85E8A8B5701B3B01F3031760B49BF3F300CFFCCBED3EC20463E772F06E + 5622E3422ECA79253285503EBCD33A60CDB940DE5C07690D1F1326CFC0D01123 + 5171BFC1AC6DE4423ACE65159345A8080E831CD1D22C3E549C9BB6D12C80B5F2 + 9A1EB0A3AFADDD9E719E5EF0183F16D3267960948B1306D8F5834CAEC483470D + 28B951818A3B7751759B87C55F04E0133A1D7B0F1C4519373FB4F6E1BD933D02 + D0EBA34FE72C243D198E439D1D073B8D80DD5BF61DBBA15C2AD1EF841035D5C9 + 9C9C5D076C8B5E03A944024E111797324E114AA5420FF16B8F00F472779F6167 + 3BB87F1839C05CF2D283DC0F879195B19EEC57908582A56C56A60C7219BED361 + A07D74B3A01EEFBB7F087B7B7B64A6A73E07F1CA4F4623DCDEFBBA17ED8D14D7 + 77C7D1C67B1843BC96A31909B19484487D0AE160EF80F3E92914C46B3B1B9A83 + 78AD87535310FF02CCEECE03F399231A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005684944415478DA + CD977950535714877F71A52C36A84C451911ED2816DBE2A81D0617C40D975275 + 22556BA9A8286E552BB4D60D51944E75B4602B415007354823A848593505822D + 4843A71605D14E55F6250964CF2321BCBEBC4A001342C0D6F6FC93775FEEB9E7 + BBE7DC7BCE3B0C3C97955FC492670EAE43A35C8BBECAE1480EB8C737317AA363 + 98AC07E8B3E54ED26780FF4AFE3F00BBCFE6F632048C02A295F489DEE6ADF8C7 + 004E6E9A0DD2020CFD94E43B8F50545EFFD2104600BA36CB1C9157528566790B + 0A1FD6BE148411805667194079A5088D52F573889A62CAFAA2D8206F519F013E + 8BC9214F057983D0B661EFB95CB34A5F057A432257432855D1104D72028565B5 + F7950AC59CD810DF5E4118007646F3C8C82D73A1D2B459A43878002094744088 + 65040A4AAB4AA3B6CE9BD427801DDF659351DB1640D1A2C3BEB81FCD2A456C9C + 8B8A0629F2EF5741AA6C31BCAF134A707ABB4FDF12D1F6A84CF2DB1D0B2153EB + 2C5224080219D93CF0EF14A2A2B2120AB90C03ADACA12194B7A9539446885417 + 4A4BF37A3C980680ADDFA49367762D8644D58A0371B7CC2A35D53EC1B37B7C30 + 9943E130C2093676AF63D0202B68340494722984F5D51035D488C93632A8F84E + C6358B00B69C4C25CFECF645B3B2D5ACF12B8957C14D4E81EB3BD330CBCB0B1E + EEE3319C690DAB410340685A2192A89072BB088FCB4A505E22400BA10815F033 + C37B04083A914246072F8558A145686C96C9C9CDD4CE6B4A7FC614CF7998E135 + 13FD0CDA249DC0167AB8D2A3CCC232585B0D4656160FBFDDCD859A507DF82B3F + 3DC92CC0C6AFAF93EC90E510294C97637DCC03376EC6980993B139D01FE3473B + BC30A3237FA4E49560D6343794943F45EACD1F70AF2857A816ABC69A3A130680 + C0882492BD670584D4F740D8D9342380C667A520449558C2FA1836B6361D26A9 + ADB79B66CD9D4CFF5ECD2EC64A9FA9A895689196C1434E762AC40D35BB04F919 + 51DD02AC3FCA25D95FFAD100A624EC501834B0C6CE4F3761CCC8A19D376CE403 + 4EDA5D7CB4C403CA96363CF8A31A49890978F87B114FC04F9FDF2D40C0914432 + 66EF4A34CAB4387C36D568F1B25C2EDCDF9B8589EE53A0D5EAD0BEEFF6E2A51F + 07F84EA79FCFDFC8C71ADF19545D01AA850A5CE124A0F8A7EC7A0AC0B15B80B5 + 611C92BD6F350D604AFC582C78CEF9007B760680C160BC18F62E5E88F99E8700 + D61CBAAEE8BD70319E83829C5450008C6E01FC432F91ECFD6B6880F0981B460B + 97E727531EF082E3B889D47DD7D286C84EB55BFFB875D57C1A21EA7226D6F92D + A0DFABD504CE5FE0F4EC8135FBE349F6017F34C834263D10117E04BA7EAF61C3 + 8675701EE5007335F344DC4D046F584ABBE3CF8A2A7038893D9F81D57BCF93EC + 836B29002D8EB18D935753F523B4CAEAE1BD78059E5175A023F630DC84CF03FF + 367A2C9A8BA3BB56D3FF5F49CE40CEADF49E6FC1AA3D71647468000D604A5AA8 + 3C10BC633B5C26B863196B39DE7471EA1AFB4EE1381C9900FD5A827B0F917423 + 0B25827CB952A41869360F58D217FC52548873313198ECE10D1F9F79183BC6C9 + E43C7D7FB085E589E4743E9584F2603FCC01B2A6E653FCACC460B300B0409A6B + 1E41452524D7B7A7C1D9652C748C81A813CB21531218626305C76176E84F6A51 + F1F409CAEF0BE0B76C11A67B7A22FCF8691417F0D6D63C7D7CC924406F64EACC + C52C4A93EDF08693C3F011A3603B8469A8860AA9445F09216EAC958F7072B6DB + 1FB20D528904D97905B8999440AAD54A3DC4E59702D08B9BDB6C5BABE1D6EBA9 + 05DEA786931860385247B18E7A7E80363255DDA48E1F367AE421FBA1CC902661 + 1D26BABD4B956F26AE732F7681F8D71B93512EE33FE9C7E81FEF3CCE95F1D624 + 638857D2195110FE14C4C576087BA63DAE71E3698857D69A7507F14A7B435310 + 7F01A1B8D6034DF8F7790000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005604944415478DA + CD977954534714877FA9CAE25289CB714351A93D56D2D66A3D583C5671A9A155 + 5B2DEE451045EA72AC28A71651EA52EDD1D625AD108462518348419440425064 + 110B48D02A82A0D55245104302094948D8327D7911D4268180ADEDFDE3BD9979 + 3373BF77DF7DF7CE65E0892CDE124E4282BCF0B8B6119D959D87A3707A9F0FA3 + 236B5A272FFA328C046F5F0189F245007888D9BFBAF3009DD6FC8C741AE0BF92 + FF0FC0A6A3E91DFC048C6C6D139915B2CE55F58F011C583D15C4020CFD94B8AC + DBB85252F9C2104600CD3ACB0C915150861A653D728A2B5E08C208A0B1D93280 + 92075248149A2710E5F99476B7305F5769A701FC42D3C8415F57681B7508F829 + BDCD45DFAE72855CA94195A28E86A8566A9173ABE2A65AA59A16E63FA74310AD + 005F84A492C36BA6A3AE4167D142EBAE4095FC2984AC568BECA2B222CEDA19AC + 4E016C38924238EB3E80AABE195BC32FB6B968AFCF74DC7920C1CFA713507AE7 + 166A651268EB54E866D3030D5AD505EA232669A575C78A8A32DAF58B5680F59C + 64F2E306366A35CDED5267FD9A03CE112EBA5AF744FF81F6E8D1AB37ACAC6CD0 + D0A0855AA94055E543481F97CB888EF8E66709CF5804B0F69080046FFC10F2BA + 266C0B3F6F764179493EA4A58518FDD604384F9A8C01FDFBA04B17C3362EACE1 + A8AC5621294D8CDB453750522046BD561524CE4CDEDD2EC09A037C12BC690E6A + D44DE6DFFC7236BE3F7404E35D66C0FBB3791835B4AFE1C1DF7E1C614E316CAD + AD2012A5E2B7DC7468B4750BAF660A62DB04F0FDEE1C09D9FC3164AA46048589 + 8C26363735A2F062349CC63A633ADB8D0A58BA56E5C470C1DCF79DE8A1739937 + 3179FC18149494829F9088EB57D2AB34B2BA91A67CA215C0675F3CE1FACF8354 + 653A1DF31393109F900CF7A55E58C0767EFA8018377FB9700D0B678E4385BC11 + 49C254A4A5F0217B5CBE517C49C8310BB06A6F2CE16E714715751ED87134C908 + E06E5E32EC870C832BFB2368EB1BE890DDF2E62DCA97B227D06D9E20178BDD9C + A1AED7A1F0F787888D8E42F18D2BA9E24CC14CB300DEDFC410EE570B680053B2 + C2CB1BAFB19C11E0B70ADD6DBA191BE0194B449CCDC2D2D993A8B00E3CAC52E1 + 142F0AF997532A2980416601BC764593D08045905047B29D47F9460005299170 + 99361703468C0279922FF45743F232F47DE64FA1EFDC988BF09C6708EB7A2B1C + 8FE4213B8D0F0A806116C073078F70B72EA1014C89CFCA95B40536ADF7460F5B + 2B0380C9B441C0392982A7BBC1DA1A8D1611C778ED5BC023E804E1062EA30176 + 879E35DAB6F45A2A860D7500CB790A243205A59C3C677E7DCFCFC38DEEEE8FE0 + C3CF6B0E3D7EEF7E1978BCE8F67D60596024E16EF3A04EC50D262D20120A2010 + A660AEFB12B0A7B918FBC033037BB871D8B56121DD3D152744DA7941FB7FC192 + 8008C2DDEE491FCBF7708DA3A7AEB9097773F9608D9D088731E370AF4C426B6B + F90C7A8B04AEF9946EEFE09C42F0B6E5105F2F46EC59110AC497946AA96A709B + 71C092BA202F3707E1A1A17867A22B66B167C071B8BDC979FAFAE0F3F9EF214E + 904905A10C30FBF6476D75CDC14C51F466B30096D60509F17110242662F49B13 + 30EEDDF170741C893ECCDEB0B5B5A61CAE1ED5350AE4E55DC5FDD23F5072538C + 059FB861928B0B76EFFF01F9D9A99EE5A5774E98058085A2AEAE80F4CF023099 + FDD06FE010F47CD5AE351BAA14727D26844C52A11C68EFD02BD07F1D14723952 + 32B291101B45341AB51EE2A4114047C5C9696A4F9B7EDDBDA90D66535D16038C + 4194473CA2DA85D011BEA65A13D977D8E0AF997DECFCABAB1EE10DA7B7616767 + 87F898E3CF41FCEB75C19011AF2F7F85D125D2C17134630CCB18E2A514261484 + 070571BC058269C7C49998481AE2A55546E6205E6A69660AE22F3ED9D803E788 + 3EC00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005524944415478DA + CD977950D34714C7BFD18AA6680D1E1D15EBD922565B514BADB445C1B11E2DF5 + 4CD571C49BD4E28807532B0805B575D4D18A5682501CD0409A013C222058E410 + 8B627054F0C05A2FAE0209909090FC726E7FF949399A00015BDBF7CFEEEC6F77 + DFE7F7DEDBB7FB586894653BA2093F6825AAEAF5F88E9F84CE48E086454C1B12 + 160FE1DEB5ACCEAC6D9ABC747B14090F5EC5007455420FC7E1E77DEBBB06B0E4 + EB48722C6835AA952F02208068BF4FD701BAACB9857419E0BF92FF0FC0D6E359 + 9D74012B8F329059E1BE1EAA7F0CE0A0CF74101B30CC5312731F20BFB8F28521 + 2C008C26DB0C915D588A3AA51657EF57BC10840580DE681B4071890CD50A4D23 + 447901AD7D4E24CF43D665802D1199E410CF0394DE841D3F65B5BB68EF3A0FC8 + 951A48156A06A25649E1EABD8AA20695CA33D2DFAB53104D007EE119E4F08619 + 50EB4C362D341928089352F1EB35094A4BCBA0AC57A0474FB641A7559BA33999 + 92A94FDCBD9BDDA15B9A0036FD984EC27C3F814A6B4440D4A57617CD1EFB2A0E + 8685A327BB0F060E1A0AFB3E7D6167D70B3A1D8506A502D2CA32C8AACA6B8889 + F00A7253936C02D81876811CDD341BF51A63BBCA05F1220813CEC2F95D574C9B + 3E0D535DC66020C79E769D0132DA1D4A8D16B9D70AF1E0EE6D14174AA0A554C1 + 929C0BBB3B04F8EA8714726CF35CC8D506EC8CBA6875726DF9239416E662B2DB + 4CB87B7C8C6E2DD298F9F8CE9EE204ADDE884B377E07DBEE15A4A565E0E6B52C + 6828F51737725212DA05D870504C8E6DF5425D83C1AA728AA2B06A0D0FC3C74C + 842FCF1B4E6F0C68D34A6772EEE0A349CE282C7E02F1B9F3B8959F25D5D4A847 + 598B892600DE81B3247CDB3CD4A8F4088E4CB3D8B4FA7111D4D2A7F88CEB0DFB + DEF6ADFE9CE0F9D1E57A4E605A51C64D70674C44855C8FE4D40C64A68B515355 + BE59723935AC4D80F5FB4E13BEFF02C854D6AFE3A0A01068C1C656BF2F3162B0 + 43338095B9A752AF63E92C5734684DB8F3B00C09C238DCBF9D9F21C94999D926 + C0BAEF13087FFB6248E9F740C8F1648B4D8B2EC5C3C5D51DE326B9426F30B648 + D9A4D10AC06AAFA9CC48F4D92B583A772A9D558132A90AF18238145C49AFA401 + 06B709B0668F88F0BFE13200D664C1FC8570F3FC1C015B5683C56AFF120D1765 + C17B9E3B9355CD56888D11202F530C1AC06261D3C0AA5D4212B16309AAE92759 + E871B1C5A6F7B2447079DF1D439DC683D2E9995F264C0C343B61E3124FA63D2C + B808EF85CFFB1A0D85E813828E2DB0324440F801CB18006BB22B341406161B3E + 3E6B31C2F16F2780B48E87032792E1E7FD2933F0E85929040261C731B022F824 + E1072E670076479CB100A82929864E5E81195E5C3CAD5236EB6EB480B9D9BED6 + 8BE9EF89484288EF62A61F9F988ACC8B291D9F82E5813184BF7305FD2AD659B5 + 8096CE037E1B7D31728C0B167117E1AD918EAD8DD0C215214744381AB01C925B + F79170260D8592CBCA06996A48BB79C096BAA05E5A02D9A39B98F881075E1FE6 + 84872595ADBEB7AC0F78F3A7203125874E42D970E83F10F5B5758772D284DBDA + 04B0B52E38773A11C9E2F3707EC71593DF9B8CD16F8E423F87BE60B37BD201A7 + 456D9D02F9F937F0ECC963141749C09D3F071FBAB961F7FE2328C8CB5859FEE4 + B79356013A5317145CCF476C7414EC7AF5C680418EE8FD1AA7E9365429E4E69B + 1035D515CA414387F709F4F785422E477A761ECE25C4118DA6C10C71CA2A4087 + 9A5B88C968809276895A5E099D5A09A39E42F71EBD60D06B7E81898835B59A98 + FEC3867CEBD08FE35F2BFD0363C74D0087C3C169516C2B887FFD59EE38D2C9BB + 1BAB7BCCF0D1CEACB7C75B42BC94BA8086584143C4FE05E1C071409228868178 + 6985495B102FB532B206F127DB3ADD03F86FE3B50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_-01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005434944415478DA + CD970D50545514C7FF1B23526A41E68C016A851A86E1983914D40C6B8682E367 + 8AA222602829458614298A9A9A838D1FF8C1A280812E22A2021BBB2EB4F1A522 + B8AB22EAB05268C687C02EEC020BBBCB7EDCDEBE80B2DDE5632DEBCCBCF7EE7B + 73EEBDBF73EE79E7DEC340B7AC884A26AC2DFE686CEB82A5B2FD503A52770732 + 06D3A757D96F5312616D0DA00034D8CD3A3FA889A3D67DF40740EC69A4EDF9D8 + 3280659109242E3A9006B054761C4CC599983596012CFDEA3839BA35084DED4F + 02C046FADEB59603583CF35FC46280FF4AFE3F00E1C70A06B9048C129596CC8A + 0B652AFE31807D6B3D41068061503977E91ECAC40D4F0C6104A0D30FCC118515 + 3590B5AB71B5B2FE89208C0034BA8101887F93A2A955D90D5127A266F73E1EC2 + 945A0CF0457C3ED91FC2844AA3C7A6C4823E3BED0966A241224326370F42D10D + 3CAAAF43477B1B351AA391107D0565428E4ADA79E2EEDDC27EBDD20BF0799C80 + 1C5CF7013ABBF4FD52175F2EC181432C580D1D8E51A31D316CC40BB0B6B64157 + 978A026985A4A116D2C6BA66A22721A24BBCF30302083B924B6243BDA050EBB0 + 39E127B31D6A2BAF41525D0167D7E9F0647A62BAEB04C8156A7469B530848F46 + A343F9ED7B10DF2987B84208B54A112D2CBAB8B35F804F632F92C361B3D1A6D4 + 99B7FCD215C4EC3F8269EE3311BC6A1126388EA4BF1BFE1CB94205197511EA45 + FCB0093643ACC0E70B70B3B4004A55A7EFF5226E469F00EB0F70C9D10D3E9077 + 6AB12521CF4851A7D5E0561E1B2E53DCE035670EF4FA3F97CA30A92174E77B4C + A26248077EE93D784C7D1D15E207E064FF80F2B20289B2B9F3355331D10BB06E + 1F871C0D9F0B5987D6A4F559D939C8C8E2C17779107CBDDDFA8C913382722C9E + 3105F5720D727802E4E772D0DC58B74158CC8B350B10F25D1689DB381FCD0A0D + A28FF38D06ADBA9A0347873198E133172AB586B6BAC7FD3DB262D65BF4F3D445 + 117CBDA6A143ADC79D9F6B9191968ACA5B65026111F743B3006B622E1056C442 + 4815A6B7E3550141707271C3968DC1786EA835FACA1689D9255836DB8D4A6A54 + D04A1438CD4E85E8726E0305F0B25980E06F33082B723124D47960FBB11CA341 + 6FF292E03E631EEC9D9CA968EFB1FE712FAC5DF41EFD649D2DC4CA79EFD349CD + E0859464364AF239A00018660156EF4A27ACAF97D000A624287035C64F76C397 + 61AB31EC596B933A3D5E89650BB0728127DD562A55483AC1EEDF0381DFA491F8 + 4D4BD1441DC9761CE3180D7E5F948B318E63E1FA2E138DCD6D8F7BA0FB16EEEF + 45BFEFFD9E8BB095DEF4B7EA873560B3D3FA8F8180ED6CC2DAEC470398121E97 + 0B4E0E1FF3972CC79C99EEA64DEF965DF199885EBF886E9F3EC7437E1EB7FFBF + C03FFA246145ADA001765203FC5DF43A2DAAAE64D179C089CA82BFD434D18BDF + 33B7C11B5B3F5948B7B71D3E8BD8483F08CB2B9191C94785B0B8BD43AAB0EF33 + 0F0CA42E282BBD8AF83816A6BEC3848F8F17C6BFE26052CF501FAC99F736CE71 + 8BA8245408BB91A3D0D622DB5FC44FDB681660A07581F4D73B686BA886F39BD3 + 31D1C5150A0D0352593B3A556A7CE6EF8316592B4ACBAEE3E1FD6A886F0BB164 + 81373CDCDDB173EF21884A0401750FAA4E9A04184C5D20BC568694C40458DB0C + C74BA31D30FC79DBDEDD50D12A37EC84686EAA6F1FED386E445444285AE572E4 + 1696203B239528951D068853460083AD0BD46A158A0BF271F3C675D4D5D4402E + 97C16A880DB41AE58F54A2E0285B94C923C7DA6FB37BD136A245F208935CA6C0 + D6D61617D2531E83F8D7EB02875727AE7A8661953CCEC999F1C6646388A7722C + A720FC2988941E083B5B3B9C4F4FA6219E5A5D600EE2A91626A6207E07F323E9 + 039E07B9270000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_01_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005424944415478DA + CD977950535714877FE8A052AB252E3388D675A07451D18AE3D0692575AD0E58 + C72258AA205611B75A975A4416A5B6A3AD0B2E44DC8A9A4029202595B508443A + 2813986244A5326291A040088490E4BD24C0EDCB5333384980C4D6F6FC9333EF + 2EE7CBB9E79E738F1D9ECACAC88B84171E8026A51E31A7D2618D44AC5FCAFE46 + 1DFF1997F6ADB2B366AD7172407802E1ED598946A5CE2AE3DD25FA583204FB83 + 6C035811768EF0220219003DF6F3D2AC321C1EBAEC09406C2292BE5B631B80FF + AE33242E328805B055F61E15E0A7036B6D03F0FBEA343919B11A4DED2F02C047 + F2C175B603D86CB99BD80CF05FC9FF07605B7CA19547605742779005711BB9AA + 7F0CE0D03A2F903E6018A6A416FF89D2AA8617863001E8ECEA9B238A2475686D + D7E2FADD472F046102A0EFEC1BC0CDEA7A64E75DC5AD9B1248A50FF51D5ACA9E + 803C66862A991DAED0CD9AF3B76F17F50A6504F8F25401391CC205ADEF42D8D9 + C21E172D7C63207E888D83FDA02118E934068387BC8601030641A7A3A16E6F83 + AC418AE6C67A39E9222165C559697D02F8222E9F1C0D9D038DAEAB47E317054C + BE4F4E87DB140F70B95EF0E1BAB341A1D6EAA1A6F5686ED3A0B8B412559515A8 + 9288A1A555916251764CAF005B4EE492D88DF3A1D27662F799AB6627CBA5D578 + 5821C2BB9EF3E035673616CD7261E28046CD6305285D87715E9B4A8381FDFB21 + 27271F7FDC2804456B96978B32537A04D8149B4D8E6F590825D569D6384DD3F8 + 6CF53A8C739D86CDEB03E1FAFA08E398216A5ADB29C89514738B086ED734C2D3 + DD0592AA071066FC8A8AD2421925D74C34171346800D4732C9C9AD8BA0D07460 + CF993C138086FB12A81B6AE0BD3C08AF0E1D6CB46C304E9EDE5D5FEE64D0BA4E + 6414DFC132467FA4D0E34A563E0A72859037D66F155FCB8AB508107A48484E6E + F346ABBA03E6242C3C0A3471C0CE6DA118EFC4E9394EB2CBE03B773A13175DA8 + AC9622254980BB374BF3C5A2CC79160142BEFF85C46D5F02B94A8FC8D339269B + 4AF22E61AAC7FB98EC310B3A7DE793BFCE3A81183D11EC3D93FD7636E33A962F + 98C9E414402A5321912F40D9EFB90D0CC0288B006B0F5C26BC1D4BD1AC325F8E + BD7D96C2F3431F446C0F6616592A214FA8E2528B11B0D893CD29062F5C48E0A3 + A4400806C0CE22C0E7DFA610DEAE4F2063DE03D1F1574CB6BE753511EE1E1F60 + ACDB14689988674D11F2CC116C0ADFECEFC5EA4705F908F099CDEA1445E3DC79 + 7EEF1E08FE2699F0BEF66501CC4974543474704068E85A4C701E8E9EF2E5C11F + B3B1E9D305AC43EED7D681CF4FEA3D0682F6259153617EECAB786FBCD064D3E6 + DA3BD0B64831D7C70FB532B5D1DDE4E9F91B94B0E0C5ECB798F80CE6A5BC84D5 + 1353B3509097D9FB2D088CE613DEEE152C803931E4814D1B3660BCAB3BFCFC7D + E13AC1F9F9D3EF5646A34EA4E2C84E3F882BEE22253D0712F1B57675B3CAB9C7 + 3CD097BEA0ADB1164DD5E598368B8B5113DD50FDB0F1B9F1EEFDC19AC5D3919A + 296292501138C34742D9D27A589493B4DD22405FFB82F4B45426BB09E136D903 + 333C66C0C56512867186E2158781D0505AB4B42A71FD4619FEAAB98FAA5B62F8 + 7EFC11DEF3F444CCC163282BC90FAC7F70EFA259006BFA02A5AC0E0DF7C4E070 + 466084D36826333A1AABA1AA4D61A88490373D6A771A336E48F88E8D68532890 + 5B54828C1401A128B501E2920980B57D819689095151012ACACB21ADAB8342D1 + 8AFEF683D0A1A77E431711522D54C2F0B1CE519C618E3B5A648FF1E6DB53E1E8 + E888CBC9179E83F8D7FB82D1135C57F5B3EB9F306E929BDD5BEF9842BC94BE80 + 8158C9405C7806C171E4202D3981857869CF724B102FB52F3007F1379A7AE803 + B8E335B60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_02_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005464944415478DA + CD970D54935518C7FFD3442C2DD03C195056A687C4FCA83C0A7A4EA162E8691A + 8921020299E047C72F2C43145132D312451D1351031D123151C7D730E2631238 + 872744396262D8C1F1BD31B6B10DDEB1DBBB17233CDB046659CF393BF7BEEFEE + 7B9FDFFDDFFBDC7B1F161E5860148F70B7F9A24949C15ADB79948FA4287FD640 + BEE9691C10799A7023FC1880E863E707E478C76AAF6E80233FE2CCEE15D601F8 + 452412EEF600342A3BAD5620EA702A92F7045907E01B7E92707704D20014F670 + CF0DC871C49A25DD00B16791B277A57500CBB62690B8C82006C05ADB7528193F + EC5B651D80CF17C7096747309A548F03C043EAFE10EB01ACF6DCCBAC06F8AFEC + FF03B039BE608053C02AD1E9C9FB71EBDCD5FF18C08190F740FA81616CC2BF7C + 1BE2AA86C7863001E832F44F884B926A8844225C158BDB542D753AFAD50B04A4 + 9E2E6FD23D64EA5A34A72A2B0BFB043301A0BAFA0628BC5C826F6238183A6C04 + 468F71C233239E838D8D2D3A3B756857B5A1B9E13E5A1AA5326220A16597B3CF + F50B60D3B17C1213EA0E1D6540F889028B1FD4568AD1585D0EE7C9D3E13EC71D + 1EAE2E30D0AA693A28A8B4146ED7CA21BD5783CA9B15A8AA90A043A78E9414E5 + 44F709B0212E8F1C5A33179A4E83E5918B7EC1DEEF8EE06DB77908095A82F18E + 23F1D42040ADA3A0A69D1B4B0DFDAB6F6D8781A22014E6E1D72B05D0EA341F5F + 2BCA4A7B24C0FAA3B92476DD7CA83BBAB02DE16793865D7A0AE5398998386506 + 3CD96C7AAD18B0789633E42A2DEE48E5B402FAEE86F40C2A541AB84E7E1D1555 + 35105CCC40B9B8A0592BD3BC666E4DF4007C169B438EACF78452DB6576F4E917 + 32907A3E1B3EFEC158B66066CF7BE38A31468E5CA941739B96AE135CAFAEC347 + EF4E429D824266761EF2730590354A374A44D9B11601D61ECC229C8D0BA1D0E8 + B13DE192094055B1008E0E4E98CF5ECCC8DCED9C3C14B67E1E53A1EDD4835F70 + 03DE73A7A2BDC3809B77EE232D2519B7AE8BF32445591E1601D61C1010CE6636 + 5ADBF56615F0F50FC238971988FA3C04C3860E31D3E26F92130231BC3DDEA1A7 + 09B8DFACC6595E32CA8A731B6880172D02847E7B81C4852D864C4D21F2B8D0A4 + FB6B19F1709BB3088E135C401EEC15C6D1935E8E577BB93225875F8CE50B5D99 + 9036AA9094C84349BE003400CB22C0AA7DE984BBC50B2D6AF3C7F18AC0604681 + F04D2BF1B4AD0D2C1ACD7330A500CB3F98CD3C6AB53A9C3CC5EB5B814FBF4E23 + DCADDE68A6EF0351F19926FD565FCD8193E34B786BF63C34C894DD2327BDC4A7 + E5080BE89EE2FDDF0BB1D6D783F9E3EE1FB5E0F152FA5E039F7C954AB85F2E65 + 00CC596666262E0884F0F2F103DBC3ADF7949B58747C062242D84CFD2C3F1BF9 + 97B2FA8E82A0DD29E458B80F732BDE152F30E9D4D0A54795880F177A1F183F6D + 26AA6B9BD04B0426FC76862E62EA919C74C4847943527E0B69E785A8908854ED + 2D6A8747EE03FDC90B4A4B4BC1391A876933DDB188ED89F1AF38986D67CC0F82 + 174C053FAB88DE840A613F6A3494F2D69822614A984580FEE6054D3537D026BD + 03E737A7D3E7011DEB140B2D0A35BD37746083BF27E4AD4A149796E1DEDD6A54 + DD9060E9870B30CBCD0DD1FB0FA3AC242F505AF3DB69B30003C90BAE8AAFE054 + 42026C6C87E3F9318E18FEAC5DCF69A86E53184F42C89AEA54639CC68E88D8B2 + 0E6D0A05720B4B70312D9968B5ED468833260003CD0B8C6B4251FF3BD4322986 + 900E2814AD183CC4167A4AFB130C44A0956B1347BDECB0D37EA4DD1679733DDE + 7099023B3B3BA4A7263D04F1AFE7058EAF4E583188353871EC3867D6C449A610 + 4F242FA021026888A4BF20ECEDEC712E359181786279812588277A2D3707F127 + 7CDEFB03B58003220000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_03_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000054C4944415478DA + CD970B50545518C7FFAB8D698682E80C2213A2051A1969110D8E3382198A9362 + 2A42A6E20311717CA701B2A264A5A9890AEB239D451681161557404064C58C51 + 57C540125F83F21059766581DDBD771FECE972C91D995D58772BEB9BFB9AF39D + 7BCFEFFCCF77CEB91F077F59D8B67472307A2EA4AD3A6C3D248235B625623A7B + E7269D029F1BCAB1E65D63E585F102C28B0965016CB52D07B29012FF956D00F3 + B9C7092F761E0B9070F0B4550DC72D9FD909B0FF17A46E5B601BC0BC583EE16D + 9E8FC656ADCD0AC4EFCB44DAF630DB0042A38F125EDC42064087EDBC9356351C + 1B39AB1320F104D2BF5F621B40C8A62324991BC602D86A5BF7A6216347B86D00 + 73371E2649718B206DFB3B000264EE5C663B80CD2DBF603603FC57F6FF015877 + 486CE510704A693D09488EF253FE6300BB974D0479098C8E2AE9172A907DE66C + 754DE5956A83A17D34079CA104A48171DD66FC39B44C7DACB2F2A24538138076 + 836502F1A5526CDF7500FDFA0FC0102717F4B71B883E7DFA42ABA5A16A6B41D3 + D33AC81AEBE5C44022AEFF9A77D22A005D7BCF00FCD40C1CCF388D51EF7B63D2 + 243FF88EF5809E81A6B57AD4CB55E8C5E85351F1072A6F57A0AA5C020DADE44A + 4ACE255804587BB098EC89F003AD3320FA67B1D9CAB2DA7B7874538C0F7D27C3 + 7FB23F027D4680D2E8A1A4B450D13AA8343AC85A68B80E1D8C7BD575C8CF2F42 + D91531285A1D7CA32457D823C0EAE422B2377212D45A83D9C6299A46E88270B8 + BA8FC5EAA845F07019C496BFD60B68A374CCA9654F15F3DCD8AC82E748179457 + 554374E62C6E5D15375172F508733161045875A08024467D06A5A61D31472E98 + 0034DCBF0565C303CC085DC48CB91D5B163CD193E9B11A776AE58C123A630037 + B7AA1034C1134F143AE4E415A1B840047963FD1AC9A5BCC46E0156269E23FB57 + 4D412BD56E56818D315C50867ED8B43E0A6E4E03BBF83A3493B75090323D3730 + 3170F36E1D66F979314362C0EDFB7510A6A7E1CEEF578B2425B993BB0558F153 + 2E495A1308855A8FCD470A4D00CAF2F8F0F29E002F9FF1D0E9F5C6DE928E49D9 + 796071E047A098604C2B2CC3EC4FC731330AA86B52E284200DD72F173C650086 + 760B10B95B4492D67D8E6695DEAC0253A605C1D77F3AB67EBD041C0BEB6752D6 + 6F0899E2C3CEA80E1552F80294168BC00098BC692C88F8319B24AF9F01B95207 + EEE17C938F9617A6B20A0CF71CC74C399DB1D7CFA5E8B8AE0E9EC0DEF7669420 + 24D0B73378291A478F092C2B10BEE314E16D980999D2FC761C17170F0DFA6265 + 5438DC9C07F7A8C00F29E7B122D89FA57AF8B8160241BAE51858FA9D90F036CD + 4613F33F107F28C7E4A3D24795A0653508080AC16319D5A5E7CF9588593C952D + 4B389C83E8A5D3D8E7135979282ECCB53C0B167F9B4978DFCC6101CC19CDAC03 + CB232231DCFD037C392F181E6ECE5DFCE4854D849B948D5D6BBF80E4D61D084F + E7A35C72A94D25533AF7B80EBC4C5EA078FA088D77AF61EC277E18F68E27EED7 + 48BBF85FCC0FC202C6202BB78459842EC2C171085A9F35EF29C94F5FDF2DC0CB + E605594221B2B3451835C61B1FFB78C3C3FD6D383AD8E18D7EAF434D69206F6E + C3E55209AA1F3E405585047382A662BCAF2F1276EEC3F5D2A285F5D5F78E9B05 + B0262F6891D6A0A1EA1AECED1D31D86918DE1C606FDC0D952D8A8E9D1072E993 + 36271757BBD80D516851285070B11467846984A2541D10A92600D6E6051A2626 + C4E26294DDB881DA9A1A2814CDE8CD40E8B5D4791888887A46F11DDF72DEE230 + C87EC3B3A6068CF6F46280ED712A33A50BC4BF9E170C73735FD08BD39BEF3A72 + 14E7DDF74C215E495EC040CC6720529E4338D83BE064269F85786579417710AF + 342F3007F12704A6031243B8B7F20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_04_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000054E4944415478DA + CD970B50945514C7FF6BF8C83421B31161D47472507CC4E423A929D1C04725A0 + 229288A829928DEFF281AC2859838D0F505844A5451710119095A721B8541BB6 + 38294298E2580A282CCB2EFB7EDFBEFD20CAD95D64BF26EBCC7CDFDCBB7BF7DE + DFF9DF73CFDDC34297ADFE228B70760641AC3080A9B1132F22754F30CB91DF74 + 0F0EDF9F49927705A3556EC0BE137C8716DE1BB1B00B20175C7608338095313C + C2D91D420330B5BDC72F202D269419C00AF619C2895A4E03C426E739B470F4FA + C04E8063E771767F183380E5515CC2D9B3022D723D63056212B2907E209C1940 + C8AED38413BD920230E00027C7A185A322177702C46720F3AB35CC0096ED3849 + 92D8E1340053DB77341DE7E2D6320308FE3C852446AF42EB3F3886FB8EF29075 + 701D7300C62BFFCD1803FC57F6FF01D87AA2C2A12D30EAF5D7AAF29373CC069D + 2FD59DC802CB95803CA2DAB5D44405DA36756A5DDD55A5430087D6CD02E90546 + 79A510B107133070D0100C1BEE8E17060F41BF7E03A0D76BA1527440FCB8116D + 2D4D12622611D5DF15E538046032F74CF0CDD97348CBCC83C7E4699833C7075E + 9E63A1379A2055EAE13264302412196ED4D4A1AEF6166ED788A0D32AD9224171 + 6CAF010C26FB0015821F68CFDFF07E0F91AB83F09A9B0B5A652A283506A87546 + 74A874183FFA1528B466D4373C404949197EAEAA8046AB5E7A5D5098DD23C096 + E4727238C2075A8319BB4E55580D34190DB85E908A0953A6E37DFF853052A001 + 6F8F835A6B8042A3A71F95D608B14C8D999EEE90A9CDA8B97D1FFCFC4BB871AD + 42AC91A8C7D88A896E804D4965E468E41CA8F5669BDEE7E45D42464E2142C2D6 + 60D9FCE9DD9FF7ED03C8D5FAEEC7A24673BB02B3BDC6A0596640415119CA4BF9 + 90B4346D165516C5DB05D878BC94C46FF0835267C2EE9357AC00EA2BF330C2D5 + 0D73FD17517253D9928AD650BFC9B4C7B5BFB551DE5B3228750EA8B7B44385C0 + 772741A533A3F66E23B233D3517FF35A994850E86B17E0D3F862726CE33CC835 + 269B0A047D148EB19ED311BB2302CFF7777AE23BCBC969A5405AA44A586258F4 + CB032C9AFD3A15D040A358890C5E3AAABF2F7D4C01B8DA05F8E4482149DCBC80 + DA3B23F69CBC6C05F0535E12BC672FC4C8F19360EE3A29A4EBD5E937B0DE7F06 + 1D8CDCA26A04FB4DA303DAA2421A970761391F1400CB2E40E4213E49DCFA21A4 + 2AA34D0542422D0ACC40F4B6B51838A02F7AB223E704583A6F26DDD668B4389D + CA7BBA02115F5F2449DBFC21511AC04E29B19AF4CE8F05707773C7D477E6E271 + BBFC89844548A7069F85FAD0FDB83357B07EC92C5A9D7BBF3F048F97F9F41858 + 1B974B38DB03D1A6B47D1DF32F152037BF188B9785C2DFD7DBAEF71690D853C5 + D8B96A1EDDCFB85084F2CB854F3F051F7F994D383B96D07FCB634E14584D6C36 + 195057711E9E5366C063AA371A1E8ABBF6FF2F1562223EA0DBECA47C1CDC1400 + D18D7A64E795A04654A950B52947F498077A5317088542242424C1EB4D1F0406 + 2CC0B8D1AE36C759EA83305F4F5C28145049E82A5C860E83BC5D7A585092B9CD + 2E406FEB82967B37216BFC151E93A65159D10B6A9313950B945446D461CB723F + 48A472540A45B8DF7017B76F891014301F6F797BD329BC5A58B6B2E9FE9D3336 + 011CA90BAAAAAA702A25057DFB0FC2CBC3DD30E845E7EEDB50D921B3DC8490B4 + 362B86BB8F1A1CB57D033A6432945E15223F3B9D68342A0BC4592B0047EB02B3 + C90869730314E22638112D6452299C2808835EF32D958DF89A760D77E8C8117B + 5D5E72DEDE2E7E84F19E53E0ECEC8CDCACB42720FEF5BAC0EDD571617D58CF71 + 478DF5604D98680DF14CEA020A62050591F627848BB30B72B2B834C433AB0BEC + 413CD3BAC016C41F35431312ED5285AE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_05_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005684944415478DA + C5D70B4C53671407F07F95109FD80ECD141CEADC587D32E2638ECDA8439D9AA9 + C389CA145144F1C19CAF88582988BA0D179DA8507C9182454414850182C302CE + A9A4101564185051042BB4A5A5EF17DCDD5E94486885DE65EE244D6F6EDBFBFD + 7AEEF9CECD61E05504FD9446F0421743A23221F24416EC89C8E06FA8776E5C06 + 4EEFF665D8F3DBF62F07EE4F2578BB7C2900DDE0C65E41C29EA5F400ABA25288 + F8B0A568549AB0F744A65D0B47042F780548079FEB470F1010292078BBFD2800 + DD88387E1189912BE801FCB949048FB39C02EC8BBF6CD7C2E1EB7DDA00C72EE0 + 6CD44A7A80E51C3EC1DBE38F06A5917606228FA622F9C02A7A00BFB033042F3C + 800498708077C9AE85391BBE6B03C49C43CACF6BE80196859E22E2B8AB2800DD + D87B2419E7A3D7D2032CDD7992880D5F8DC67FB10DF71E1120F5E03AFA00DA2B + BF11B401FF57D0068C1933BD5FAF817D02C90B58FAF058061843081062F2F801 + 99CA2CBD549B505151A8EE3660DB89826EDF02E9F32A5417E79999AC810E8306 + 0F45DFFE03E0E8D80B46A31E1A5533242FEB206DA89711AD4470C99F396FDD52 + 1D0087D64D07D1052321E93CF829E9608F9F8499DE33E0E6E6028DA105C35D06 + C16034412255E05E59052A1E94E361990806BD9A2B2ABABAAFDB809656DB0261 + D15F888A3E8A095E33B131D0171FBBB2F058AC80CE6046B3D68089EE43603013 + 68D29851F9A816B9B9F9B87BA7003ABD76496951765AB700A616EB009D5E0FDF + E5417073F7C4B690D5F8E40367EABCB8490D95CE04ADDE04B95A8FC96C5738F4 + EC41B5F4B28735C8CCF81DF78A0B243A99F6436B35D10ED81A2F240E07CF80DE + D48AB0D3059D002FAAEE42595F059FEF03D1D7C9893AB764DA2872612394DAB6 + 979A44BC6CD2E0CBB16E7070E881170A13B272F221CCCB84ACA17E8BE8464E8C + 4DC08F71F9C4910DDED01A5BAD6660FBAE70685B7A83B33304C3DF1FD07EDEA1 + 27A0D418A1D018A8DBA0D29A502755C17BC248B2365AF1A0BA0E6929C9A8BC5F + 9C2F2ACA9E6513B0F9781E11B36936D46441ED3E75BD13A034EB343C264E85E7 + E7536134B7C072A382E679A241AEC1FD278DD4BFA782FC40AA50C167BA07594F + 409D448D73826494DCCC7B490286D80484C45C258E6D9E03A5AEC56A0666CE5D + 08AFAF16607FE81AF2471DDB8705638188656AB492DBE876F9532C993581AA27 + 4B1612F902DC12668204306C0236FE964DC46E990785D68C3DA7AE7502DCCDE1 + C363D2548C1C3F117AA399DCAE44FBE2AF0F362FF68296DC1127338AE1FBF5E4 + B6E2D5E9712641D07506361CCA2462B7CD879CDC42D6228C13013DD10B5B7F08 + C6085767BCAD5DFC92741DEB164DA3508F9F3D874090D2750D04FF7A8588DBBE + 1032B509DC93B99D2EDAF8A41C5AC953CC59E4875A99A143C37A9D0DCEEAB6EB + 479DC94368C06CEAF8DCC51C08AF6577BD0BD646A713BC1D3E90AAAD3F8EF564 + 1F085ABB1EC3DD3F85BFFF32B04774CC26F186283C3E0BD121F321BA5789B4CB + B92813DD5069A46A97B7F681EECC0572710DC49577E039856CC1EC71A8AE9574 + F8FCCDF96085F7285CCC2E229B502158CE83A06C921F2ECA4DD96E13D0DDB9E0 + C28534A4A767803D6E123E9B3219A3D91FC199E5843EBD1DA1D51921932B5178 + 53849A47D578582E82EFB773F1859717F61D3C8A925BF901F53555495601F6CC + 05CD0DCF50FFF76D3099CE1838D815FD9C98ED4F4375B3C2F22484ACF1856AF0 + D061FD393B36A159A1405EE12D64A425133A9DC68238DB0960EF5C60A909E175 + 214A4B4BF0BCB61672B91C0E8EBD61326AFF209B41A6AE49C77776738960BDC7 + DCD1241163D4180F12CC447A6A6207C47F3E17B88E705FD983D1933F6C249B31 + 7A6C67C43B990B48843F89487C8D603159B894CAA710EF6C2EB08578A7738135 + C43F16F41512E59A60A50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_06_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000057D4944415478DA + BDD70B5054551807F0FFAA20BE0A52270412C324747DC4A858A48D929662990A + 444808BE20B4CC7C6488ACA09969E3031416441DD045C205840D100C7918A2CE + DAA0082303A6A38282BBEC2EFB7EC0DECE5E95747651F6367A6676EE99B3F7DE + F3DBEF3BF7DCFD5878DC56EDCEA5B81B1741AC3480698B492E40EAE6C52C6BAE + E93E79E52F7C8ABBD91F228501B12905564D1C1BF1197DE424E5E3C896006680 + E53F6751DC9F026800D3C649CCC3B1AD81CC0061DB33A9E4A8403C941B109722 + B06AE26D110B1E037291C6096206088DE551DC2D41348069DB76281BE9B15F33 + 0384708E53DCE8601AB023F9B45513C77CB3E811E0E0299CD8BE941920383A8D + E26E0D419B5CCF3802B10959C8D819C60C10147594E2C6841280013BB939564D + 1C1DE9F708107F1299BB5630037CB539954AE284D100A62DEE40067EDFBD8A19 + 20F0C7C35462CC323CFC1F8F61DC011EB2F6843307309EF9A9C618606D63B367 + 0EB61B367039B981691B1CCF026B0405EA01E9D7915F52A015AB8FD5D757285F + 0A60CA0C5F3F722577B8A3CB70F2C1A021AFC3D6D60E7ABD162A450744ADCD10 + B7B5B453462AE2CA5F45CF5DD1DD80F529E5BD4AC1DDBA8B686DAC81C7C4A918 + 3BD1136E6EA3F0CE5B6F62809D2DB43A3D446219AED6D6A3BEEE3A1A6A85D069 + 951C61E5991DBD02EC0D9F09EA398C73955588FB350193BD6763F58A008C7176 + 40ED2D11141A3DA67938D13753E98D90A83A71E3E65D141797A2E65239345AF5 + 977F5716F27B05E8325A1668B45AF82D598991EE9ED8F0DD32BCEB32941E6F6C + 9142A53540AAD4E283712EE8DB8705D32D4C3B6A6DC36D08F2FFC0D5CBE5224D + BBDACDD29A300318BA2C034EE50AC0E31722387405827CA7758FDF172B2057EB + 698458AE25917086AD4D5F82A0705F6640415129CA4A04686F6B59273C5F14DF + 23E087E4326A5FC42C680D46441D293703D455E4C0C9D109BE8BFCA1D61948AA + 2884CC99001509BF4CAD835CA523A930A045ACC4F409AEB0210895CE88BAA666 + F0333370E3DAE5526165E19C1E01DF27955207223F869AE4D0525B1C180A37B6 + 1776464560607F9BEE71320F3A943A480940468EA668DC69EB80CF9431249D40 + B3488993BC0C5CA92A692580113D02D61E2AA1E2D77C02A5AE0B5B52CF99012E + 6527C0DB67015CD9EF817ABC4E22174EC50389123537DBA0249178B280455205 + FC7D3CE9749AA2909EC64375990004C0EA11F06DFC19EAE0DAB9906BBA2C4620 + 604918469308C46E0AC7203B9B67BE33795A09A485AC0753EEABAEDD86FF9C29 + 8F16AF468BA3C7782F8EC0EAFD8554E23A5F92CF4E6C4D3D6B0668A812C0D9C9 + 195E3EF3D0DAAEA0C7A8A79E595377D3928FE8C57828A71AAB164E2783C03F77 + EE81C7CB7CF11A88DC2BA012D77F4E72D969310279F905E0E715C13F28047E9F + 7AFF37B18573E38E9EC5A690D974FF647611CACE16BEF82988F82D8F4ADAF005 + DAC9DF72CEE162B39B76751A50772E13EC495E607BCD4053B3989EFD09C0148D + EDE173E97E4C4A1176AD9E0FE1D51BE09F2E46ADF0BC4225563A3D771FE84D5D + 70E14235F6C727C2F3FD5908583C1FEEA346583CCF541F04CF7447766125D984 + 2AE0307438E412E9BECAE2CC0D3D027A5B17B4DEAC81E46E033C264CC578CFC9 + D018FB41245341ADD5617DF06C88A57254540971ABA9110DD7850858380F1F7A + 7B63C79E045CA92E0D6DB9DD78DC22C09ABAE0E2C54B48494E814DFFC118E6E8 + 8CC1AFD977BF0D951D32D39B10ED0FEF2B1C5D5C87446F5C830E990C2515D5C8 + E767501A8DCA84386106B0B62E30767542D2DC04B9E81E6C8C1A48A552F4B31D + 00835EFD277916051A89266DE848A76D0E6FD86F94881E602C7B12ECEDED919B + 95FE0CE2A5D705CE6FBB2FEDC3EA9BE63ADA83356EBC39E295D40504114210E9 + 4F100EF60EC8C94AA311AFAC2EE809F14AEB024B887F014B1D1B12FBC008DE00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_07_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005844944415478DA + BDD7095013671407F03FA090D62B884E51A857AD0A5E38CAA0582F3A3ACAB4DE + D422555054A4B66A150FAE8858EB68472B2A84883AA041444085028272B73AD5 + 84A945A916152B08722424E4DC6C48B69B45A90E41CC76EA9BD9D9C95EDF2F6F + DFF7ED3C2BBC88A01FAF5071DB1741AAD28377320F9644F486F9CC3E52900BC1 + 8EC55696DCDB71F1FA8397287EC812486800DB888CCF46C2AEA5EC00EB7E48A3 + F8BB96A359A9479420DBA281A3823E63F6BCB84C9C0AF3610758FB7D2AC5DFED + C300D8062FF60ACE44AC600708884EA1E24357A049A1C75E41964503EF095AF8 + 027009893C5F7600FF2821C50FF365006C63CF897424457DC50EB08A7796E287 + FB31807DF1972D1A3872E39276C0F18B3817BD9A1DC02F3C91E247AC42A38264 + 9D81A863A948DE1FC00EE01B7A9AE247FAD3003DF6F3332C1A383C78593B20E6 + 3C520E04B2037CB92B818AE3053000B6B1F768322E1C5CCF0EB062E7492A3672 + 0D9AFEC334DC7B5488D4431BD8032CB9D1686883B2B9061A7903488D12063D01 + 9B9E1CB4E9B5D7E907651312CD99CACA12D55B032C892933BC97D177F2073A3A + 0FA437F4EAD30FB6B61C902401B5B215CD0DCF2069AC9352462A48FC4BEE1B0B + CA6280FBAC0591769CDED16326B863DCF809709BE08A010E5C70EC6C41E84834 + 4BE4B8535189CA7B77F1A042041DA1E2894AAFEEEB16B04D50DCED2B90D4FC85 + 6A7121264DF5C2D49933D1B71707FD7AD9C17DF420D8F6B086D148414D1AD1A2 + 6EC3FD4735C8CB2BC0EFBF15434B68BE282FCD49EB167078C36C505D30B45A02 + 4B560662C8A84908D9BC16A39DFBC37469F9C346B46A484C7371828D75FBE368 + 07B3A0553C7882ACCC9F71E75671B356AA1961AE263A010C46F3828B1959389B + 96033FFF40F8797B741CFFB3560AB5560F898280A7EB87B0B17989A0502FD723 + 3BB70045F9599036D66D1595E5C6740BD01BCC03B6EC8884DAC0016FF7B718F6 + 41BF8EE3B51205146A122A1AD128D7C0C3C5193D7BDA30E7D43A23EE3D7C86B4 + 9464DCFFE35681A834676E9780EFE28BA823417340E88D083D55DC09703B5380 + 89536660F227B340EA0DCCB175DE6E50697490A97590AB74506A49D43429317D + FC3006613002CF9A55382F4C86F8D7FC061A30A84BC096B802EA68F0A7D0D045 + 642E66CF5B084FAF853810BA0ED656FF4E1ED39F952969848A60B6561589EA46 + 39E6BA8F66B269CA4252A210378BB24003ACBA046C3E914FC56C9A0795CE80B0 + 84C24E80F2EC534C0646BA794047B63105B8D5672AEA254A88AB1AA0D0983E62 + EDAFAFA94581A55E933B8AF7F41961F719F826E62A757CF37C28B406B319D819 + C683D6C8C1F62DC118E1D4FFE558ED05476FCFA54A3ADD4AA6F84ACA1F217091 + 2773CDE3A7B5100A53BAAF81AF7FCAA162B77A43AE694344C2B54E8086C71550 + 3754C37BB91F6A5BC857C7A7A72EC5FC8E58ED0535A1C7E10B6508F1F362CE9D + 4FCF45D1B59CEE6741F0E12C2A76DBE77441B599CD00411008581B84A1A3DCB0 + 2660255C863BBE769E7A650189105CC5FE8D0B20BA731F6997F350212A53AA25 + AAC16F5C07DEA62F90D557A3AEF206BD12CEC170573754D54A5E3BFF6A7FE03B + 7324D2734AE945A804F60E03A168911D29CD4BD9DE25E06DFB820BA917919E91 + 8931E3DD31CDD303635D3EC600FB3E789F630B0D41422253A2A8EC36AA1F56E1 + C15D117C162FC0744F4FEC3B740CE29B05FE754FAACE9A0558D217C81BFE46ED + BD1BE0721D30C0D109BDFB723BBE86AA56B9E94B086953BDD2D179689FF0904D + 6895CB915F72139969C99456AB3621CE750258DA17986AA2B0A01022B118354F + 6B2093C9D0C3EE3DE8759AEBF454C8D2B668131D860CDE63DF9F1BD2D2FC1C2E + 6327D2602E2EA526BD86F8DFFB02A7E1A3565B5BD9240EFD688C95EBB8CE8877 + D217D088553422E925C29E6B8F8CD44406F1CEFA82AE10EFB42F3087F807842F + 2212FD3B6CD20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_08_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005844944415478DA + BDD7094C14571807F03F379E5D3C1244AB169B1641B10D0195DA8A3518A8E2D5 + 6E1151D05AC5A3B556B1A8B00BA2B6A1AD072A2C881AD0458A28E80A088A5C5A + AA5D4F9440B1C6834BD8FBDE65D99DCE8E8A252CC74E5ABF6433C99BB779BFF9 + E69BF7F259E165ACDBCB2392360741A2EA00DD8849BD08CE96F95696FCA77372 + C42FE788E42D0B2052EAC13E5264D1C2F16B02A82B2BB510A95B17D203AC4EC8 + 2538918B202401748395928FB4A8C5F4005FFF984370A2BE8040A1475C6ABE45 + 0BC745CCA3AEECE4F338BA83490FF0D5EE6C82B38D4901E8063BE91C8EC704D3 + 03AC88CF2252B607A34DAEC7CE549E450BC746CC7F09C8453A3B841E203C8E4B + 7076845000BA117BF80C32E296D1032C679F2038D1A11460574A9E450BB3D62E + 7A0138741A27E3C3E80142A3D3094ECC72B4CADB696720EE603632F7ACA00708 + D97E8CE0B0C249801E7B38672D5A387ADDE72F0089A790F5D32A7A8025516944 + 327B0505A01B3B0F64E2B784D5F400C13F1C2192582BD1D6CFCF50A7D3A2B2AC + 14776EDF42534303A452096CEC1CD1A1D75C26807CAD507DBCA6A65C6911A0BF + 6A95B819C227D5701A3602239DC760D090B7606FEF88F6762D540A1904CF1B21 + 6C6D12114622E2E6D5C25EDFA745E93285F7CC409683E3E078374F6F4C9AEC89 + 0F3CDD316238038E0EF6D0EADA21104A71B7BA06350FEEA3AE9A0F9D56C9E657 + 5CDCF59F00BC66CE650E701C78FAC369B31018E88F89EF8E85D3401B0CB2B786 + B5B5158C4602AA7623C4E4895AFBF733141595E0CEF53268B4EA2F6F5514E4F4 + 0AD89C5AD6EB2B3074E8C1E7A5C1DDD3071FFB0760D000076A7CD850474C751B + 0D1BEBD7CF423AA8FDA4BAEE3178E72FE0EE8D328146A4763557135D007BD7F8 + 81E881917D96878CD3F9080D5F856573A75263A6A937EA5A2056E8E0EBFE366C + 6CFE8D20D02CD523BFB004A5C53C885A9B36F12B0B13FB04188CE6051BB7B2A0 + EC7044ECB66F31DEF9ADCEF1074F84506ADAD12AD560BAC7D82E0895CE88070F + 1B91939589DA7B374AF81505FE7D02F406F3802066185CDD7D9010BD16031DEC + 3AC79FB6C92055E9A050EBD12256C187CC84BDAD0D951D8311681428718A9B89 + 9BD78A9F9380513D02BE4F2925F645CC82566FC4F6A365DD00BF67EF87EFA7F3 + E13AD98B4AAF29D62FF082825C5CA2D4923F1D646A1D9EB4CAF1C99409B0B3B5 + A61EC694858C742EAA4A792001563D02BE4B2E210EAC9B0D3559C5E662717038 + 5C3D7CB07B5B44970CD8DB0262B916228596AC052D6424E4618B14B3BDDFA7EE + 6B345A1C3BCEED3B031B0F1713891BE640A9336047DA956E80DACA3CB88C72C1 + 74FF20B488E45405462D9D8146A11CD76B9B2157BF3EC45A8532AC9C378D9AF3 + E86903B8DCACBE6BE09BC48BC4A18D01906B0C6633907BEE02B2F30AC15C1A06 + 66806F977BA6BA6D2621CFDAE4D4EB29E1D76373881F75EFD49942945E2AE8FB + 2B58BFBF8048DAF419A4EA0EC4A45DEA0630ED03F72E71E141EE039EBE7E78D8 + 28A49EF055C912E4C2F1ABFCA1D4EA91C02DC7EE3573C0BF5B8B9CBC2254F32B + 152AA1D2A5D77DA03F7DC1D56B55F875FF619876C225CC20B88D77363BCFD41F + 04CF70C599820A72132A87D3F091908B25FB2A8AB2B6F408E86F5FD0527F1BA2 + A735709BEC0D4F2F6F68083B08A42AA8B5ED880CF58350A2C495CA3FF1A8FE2F + D4DDE783B930101FF9FA62D7CF0771B3AA24BCE971FD09B3004BFA82AAAA3F90 + CC49859DC3608C701E8DC143199DA7A15226359D8410B5352B9CC78C1B121DB9 + 0132A914C5E555389F934968342A13E2643780A57D81D1A087A8A11EB2B606D8 + 1AD4904824B0751800BD4E7D99AC449E46AC491F3ED625D6691823522C68C144 + 8F29603018C8CDCEE882F8DFFB82D1EFBC17666D65933E6E829B95FBA4EE8837 + D2179088E52422E315C289E184B3D9E914E28DF5053D21DE685F600EF10F8D0E + 1B129BFE90A30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_09_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000058F4944415478DA + BDD7095013671407F07F084440A880A58347418A7510BC3AD6CAC058B5D68E54 + 45AC82753CF02A68AD5685AA08448AB51DED688B0A0151079463103CA08020C8 + A1D629065BA4B5028A0C8470E526D792906C9755192D419274EACB6476B29BDD + EFB76FBF631F03CFE2CB9F0AC9845D9F42AAEA4374CA759812715B1642A1D6E2 + 487A2512772F669872EEC09FB71DCB2713F62C8544D96752E32F4674F23570C2 + 03CC0384FD78954C0C5F0691420BF6E962D33210BA88DEC6241721F99B40F300 + 5F1CB94C722296434801CC8D98A402A4ECFBCC3CC096EF7348CEBE9510C8B588 + 4D2E30A9E1D8B025F4969D9887330782CC036CFA2E9BE4EC0FA201E6063BE12A + CE45AF320FB0212E8B4C8A5C85EE1E2DBE4DCE37A9E1836101CF009791CA5E6D + 1E2024369DE41C584D03CC8D83A7729116BBD63CC03AF6799213B586061C4ABA + 6252C3315B973F059CBC880B71EBCD03AC894A2539D1EBD0D5A3313B03B127B2 + 917178837980D59167494E4C0805D0E230E792490D476D5BF114109F89AC1F36 + 9B07F87C5F0A99C8DE40038C895E82405565396AEFDD431B8F07A95402A69535 + FAB4EA5212282084AA730F1E542A8C06ACDA7B9A4C88D9886E238661CDDD6AA4 + 9D4D01CBC60ECE2EE331D27E14582C6B683404947219049D6D1076F145A49E0C + ABB95574C9688031772EE13740256C85E7B459F098E485312ECEB06631C1B460 + A04F4782D0E8D0D9254053E3DFA8AFE3529952B0B955D70E0D0B302666CE5D1C + 64636D7BF13D9FF9F0F75F88C9135DE168CBC44896052C28805E4F42A9D1434C + 2D680F1FB7A2B8B80C7FFC560135A10ABE575598F39F00DEDEF3EC6C46DB3E99 + 317BBEF3B2C0004CF39C80B7ECADC0307005CA410FE7BAFA66E4E7FD82DAEA0A + 815AA47AC7509F18387D4F72C52B1F01BFE177C878F598E7BF02AE13DCE87D24 + F571B2B781CFE4B7C16432FE8520D12ED5A2A0A80CE525F91075F177716F16C5 + BF12702C741EC821183B22A221EFB3466CE40EB8BB8C7A06006E3FE043D443C0 + C7CB751042D9ABC75F8FDA9093958187F7ABCBB855850B8705E8F486054B56AE + 87BBD707381ABD15B623AC06F6DF7FD20DB94A8376B10A3E53DC6069C118C0E9 + F4409B4081CCF40CD4DC2EE9A400638605687586017E0B96C2F7A300FC18150A + 8B176EB4B9530A89A2173D14822F52C2C7DB0D2C2B26954992BE567F16D252D3 + 71A73C1F1480312460775239793C6C3E08AD1E91672A0601EEE62563FAFB73E0 + 39D3176A0DF5DA4635B07BE56CF428098815D4574E404A419A3A649833C30396 + 964CFA3CB59AC0D973E9C367E0EBC432F2E76D0BA0A28691A108DF1F0395CE1A + 7BF76C87C758C781FD2C4B4024232094ABA9BEA08654DE8BC6760902E74CA19F + 43530B0FE9E959C3F7819DA74AC8F8ED9F40D1ABC381941B83001D8F6AA1E878 + 8C25C16BC193E8E867CC0E990B5EB70CBF521D51A6EAC5F387DF21946257F087 + F4CFCCDC22945F2F1C7E147C157F8D3CB973117AD43A831920A8B97FEDC650B8 + BD3B035B36AD8197BBCBC0B1FE7EDB0F69E992D1C3EF7A7503F5AAFE31B8B50F + 9173A51875DC9B72A55031F695F38031758198DF045EDD2DF4CF8413A7CD4423 + 4FF8D2F1B8CD547D403CAD0F827DDD905B58454D4295701CED8C1EB1E4785571 + 56F8900063EB82CCAC8BC8CEBD0ACFA9B3E0E7E783A95E93E0EC64075B6B1654 + 840602B102A555D5D45AD080FA3FB9080AF4879FAF2F0E1D3D819A3B6521FCE6 + C6F30601A6D405928E66B45299707070C29B2EE360F786C3C06AA89049FB5742 + 88BADBE52EE3DDECA322B6432695A2A4F20EF2723248B55AD98FB83008606A5D + D0DF274A4B6FE02E978B969656482412588EB085B657594A75847CB5589D3ADA + 75EC4147278708B1A00393BDA75360075CCE4E7B09F1BFD705E3DC27ADB76030 + 53DD3C3C195E5306235E4B5D4021D65188B4E7084707475CCA4EA511AFAD2E18 + 0AF15AEB0243887F003C2F1C12BFB752E80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_10_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005794944415478DA + BD970950946518C7FFCBA908B58424A0E6D1540486DA0C8A588ECA68480A5A12 + 318A6863A2D978522AC24A9A35569A07B020EA2CBAC81087722C8712B0A8142D + 4E869A88A963B0E2B2F77DB1FBF5EDA7610E0B7BCCE47FE69DEF9BF7FCBDCFFB + BCC743C3137D7EA49638B6291A0AAD09F6CA4C003D42051E08E4E43F810B6DB7 + 91B57911CDEE0E480D54FEEC470E91BD2506324D3FD2F32F38D207F6AE5D0095 + D68803EC66E46C7DDF39800D072B89EC6D4B2055F73B34F87F959E570BE6F658 + E70052BE3F4FE46C8F83586504E3789D631658174D7D33F26A90F7C552E7003E + 3D504E30539741440238AB8CDC6AE4EFF8C03980B5DF9410CC1DCB21541A9199 + 57EDD0C099298BA92F23A70227D2E29D03F8E4EB6282B9339E0270568CECF338 + 959EE01CC0EABD4544EEAE04F4298CF82AAFD2A181F7A4C43E0128078B91E81C + 4072269B60A6255200CE6A4F56290A32573A0790C4384D3077AFA000F6E59E73 + 68E08CF5CB1E031CFB0967F6AE720E60C56E16C14C4F82406170DA0299478B51 + B87FB5730089BB4E12CC8C6412C088FDCC329B0DCDA67EC87AEF4125E6C39DD0 + 432693C2D57D04FA8DDA8BE4095DAD13694EDDBCD9ACB21BE0E31DF9440E6335 + 05604BBCDFDA5070221F1E23BDE11F300EA37C5E8487C708180C3AA89572081F + F54024E08B093391D27EA9A6CC2E80842F8F13D9196BD067631B569497825355 + 85E0B070CC8C88C4DB61AFC1DFD707233DDDA1D519D12755E2229787BB5D7FA2 + B38307BD4EC5E0716BF7D905606BE62AC943C8BB6F627AC43C4C099B8A5123DC + 9E9410202F43323DEDC26FB41FEAEA1AF0FBAF4D2498E6A3AB5C4EC9B000B614 + 1A3AD77BA49FD7BD6933E7F9C72D8D4558F044BCECE30E9A951E2CD7B4653775 + 74DE47654515AEB53509B562CD646B3E613740F89C98CD7E63C61E8E8A8EC3E2 + 982804D1C9C187696E791F3C9419515DD380C6FA4A8805FC2DBC969A2343026C + CB6B1A7609AE379620704C20E62C8A83ABABCB80B97D7DBC1011329ECC1B0CA3 + D69B71E34E0F4A8A0A71EB8FB6061E97B360588083EBE682180223E6C3244C0A + 99811F3236C0CBF3F1DA5BAA3677744320D322227402DC5C9E4258CA4C66CB8B + 4985B3EC42B45FAE7F440204DA043099AD13CC9ABF0491F36371307DDD33EB7E + F58E000A8D1E7CB106B3C326C2D5C5E531003913A389A0AC50C062A3B5B11224 + 00CD2680A591352D895F85C9A405BE4D5B4F7ABFFB40FEBD5E29244A1DE46A03 + FE26673B6B0A69093737CA072CD26A7538798A6DDB025B731B894329F3A0339A + B1EB44D320801BCD65080A08C43BD1B1E815A92813EF4C8C8442A58348A98558 + A1854CA5C75FBD72BC17FE063C3D5CA975B8FBA01B6C76916D1FD89CD3401CDE + 10058DC16CD50265E7AA70B68C838415C94888891CC8B7B88388F401A1420391 + 42070999BAF852AC5C388D2A3F5B5A83C60B1CDBBB6053563D7164E342A8F426 + A4E5FF3C08C0D46FC4B55A1642C26660FABB51E8EA1163FFDA28EA49DE72BD9B + 9CBD6EA06EAF5086CC35F3C1BB760B25E7EAD0C16B51AA45AAA061CF017BE282 + 964B5770E050167512AE4C8843F0C43154BEB5F86079C4789472B8E421D40C5F + 3F7F2824D243DCBAA2ED4302D81B17F03BDB21BA7F03C16F85636AF80C18689E + 10CAD450EB0C484D9C037E9F1CDCD6ABB87BBB139DD779885FBA08B32323B1EF + BBA3686F6D48E6DFEF3A6D15C091B8E0F2955F90959D0B374F6F8C0E180BEF17 + E803B7A14A2EB3DC8410F73D54068C9BE0B33B7523E43219EA9B5B5151524868 + B56A0BC49941008EC605169F1077DF865CF0006EFD6A48A452B87B7AC1A0575F + 24D7A1522BD1B2FC5E09DAE3FB123D5522ECC59BA15341A7D3515E5CF00CC4FF + 1E178C9DF4FA2A179A2B6BC2ABC1B4902983219E4B5C404224911005FF42F8D2 + 7D5156CCA2209E5B5C3014C4738D0BAC41FC03FA7917121B6B9D070000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Find_11_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000057C4944415478DA + BD970B4C536714C7FF803CA2C3B5A2D3819130875344914D4491381973A2327C + 44C7D0016E11F115F13927D0C27433718BCE1714440D68953010A5020276BCB6 + 38B13815E750D469790AA5EF965B28EDDD6DC54E46296D93F94F9A7BFBDDEFDC + F3BBE73BDFE3D8A04F5B4F949247377F0245B706F119BFC0940EC40483DF2143 + 755D23A4CA6E437B9B4082635B16DAC002193A6F397A953CBE3504324263B6B1 + 96049A0532F0DBA5D43D89B29A873811B7C83A804D3F159129DB1643D2D58BC4 + 8C324BDE817DEB164041A871905D89D4ED4BAC03D8788843A6ECF8146265AF45 + CE5F5562FA55B07686590710FBE3653275E75208156A304F96581681F521FA2B + 23BD18E9BB9759071073309F64ED5A8E4E0AC05A31D20A91B167857500EB0EE4 + 92AC3D2B2190AB919C5E6891E3E4D850FD95995A8053F1ABAC03F8EABB1C92F5 + CD2A3D80B562A65CC699C470EB00D6EECB26D3F686A343A6C6B7E91C8B1C27C5 + 86F501E4239319611D4074329B64C547E801AC55D2893C64257F611D4024F32C + C94A58A307D89F76C922C78C0DCB5F001CFF19E7F6455907B0262193642546A2 + 5DD6639661B74A858A8A72DCBE750B4D8D8D9048C4B07370426F0F718D5A200B + 559D5D67EEDFAF54980D10B1F734C9624453006A7CCFBA68D2482668C2F3061E + E8A34663CCB8F118E1FC261C28E73D3D2A28E552089E37A3B3BD45486AC9D8DA + 5F8B2F9A05F0F99E0C3295B9560F604A05F97928E45CC1E4E97EF09F1380F7A7 + 79E22DBA339C1CEDA1EA56A3432C4759250F4F1AFEC2833A1E15290593577575 + FF9000E15F9F2453185FA2C3C434BC59F33B4EA5A5E1838060AC5C118A49EE63 + 8DF62BADAA85CB681794947071FB46050855D767B7AA8A72870430F5E55A4D2F + 9AEE72E1ED3B07BE7EB3E168DF674AED82E48B4BBFFF0BE7FBA3EEC153700AAE + E04E4D85801076BD632C27CCCE58BF798BE35CC6BA1D090E598AD0C5C170A5D9 + 53C6839BEBB6E756891A85C55C949772206C6FD9C6AB2E3E6A3DC0874BAE4DF1 + 99FD71F8EAD5F0F61C8FE10EB6FD9E1B0B9FB25B8B3F1F352337FB3CEAEFD670 + 7955450B0605D8915E6172086EE4B3E033331033E6CE07A9D51A1CD2470E87BF + D7040CB3EDFF2DBAE71AADEEC0A2C005F679D4FE56FA9C0278DB24C0A1F5F3FF + 1DCBFFC83F2814011F85E130633D5EFAD275E5FEC1479B98C0DCE91EB07B0582 + A45EA4D690FA286465B271BD9C030AC06648008DD63841E8CA287878CDC2C184 + 0D18E1646F68BFF9B04D7F2E6C142811E84341D8D842DB97033A11840AA7CFB0 + CD8F808EDA98E27633A0D438227EF7164C74A51BDA1FB5882094A9F410FC0E39 + 827CDF85A3839D21444FF84D60B3B387CE81ED69E5E4E1D820A8D45AEC3D5531 + 00A0B5E136642D0D080B8F42B35497032492A2E6412A27209011E8A47E62B90A + 8F5BA5583ECF0B4E0EC3F47617F28A515E5634F42C884BE592473606A3AB476B + 340204B5F64744C5C0DD730662632231D5E3C522E448F9114808B44B94104809 + 88A868345051D9B474267877EA917BA90475BC6AB9B253E16A721D30A72E1036 + 3F42E39D2AF8CE0EC27BBEB3101D32437F24AFBED734A03E58E1E786BCA22A6A + 11AA04DD650C6422F1E1AA92EC9D8302985B17B02FE4203BF732264FF3436060 + 007CBC3D3186E60C2135143A18DD14ADBF5F8FC70FEBF1E01E0FAB962DC2DC80 + 00ECFFE1186AAF73A35B9E369C350A60495D206AFD1BCFA848D0DE1C85D1E3DC + F0C6489A6137544825BA9D10C28E56F9B8F1EECE09BB36432A91A0B4F23A0A72 + CF9304A1D4419C1B0060695DA0A272A2B48C8B9A9BB578C6E7432412C3DE7138 + 7ABA95D7A839C8214444A6CB04D724FA28DA2E91A00D53A6FA8046A3213F27AB + 1FC4FF5E17B8794C8AB2B5B1CB749F38D9C6CB7B20C46BA90B2888480A22EB25 + 049D46C7C59C4C3DC46BAB0B068378AD758131887F005A901912237090A60000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_12_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005904944415478DA + BD970B50545518C7FFC002A2A20BF8406554300D4D711CC59C4D474DC967A619 + 210842A592CAE00B351556D2B4311F85020BA20CD82A6328EAC6538997A9E0EA + 64A4812629F166DFCFBB0FD8DBDD0D560C1676B7C9FFECCCBDE7EC39E7FBDDEF + BCBECF061DDA9A58487EB76901941A1DCC9123CD063CB1123C8912AD12024299 + 0AB71FD53D8EDBBC70B2590374C8A6F32532BE808CDBF21EE4EA76EC4BF9A9D7 + 4E47362C406DAB1465957F41A2501BEB9B78629C8A5864030B646C1C1197479E + 8E5C0C29D16E76671D09D4F3A4A86D9150EF246E543C41FCD625D6016CFE3687 + 4CD8B61462651BA2536E5832060EAEF7839CD0E228BB0489DB975907B0E90487 + 4CD8F13E448A368B8C775574721E583B575807107EEC1A99B8F30308E45A30CF + E45BE6818D8B0DCF98E45C24EF5A691DC086A359242B6A15F81480B58A49CA46 + CA9E0FAD03587F249364EDF9083C9916B1C9D916198E0D5F6E783213AFE3EC3E + 7FEB003EFDEA12C9FAC2DF0060AD9809D7901A1D601D40D8C10C32696F005AA5 + 5A7C99CCB1C8F081F0151D00594863065A07101ACB2659FB020D00D6EA40FC65 + A4C7065B0710C23C4FB2F6AF35001C4ABADA67475D7B1B448DCF20E3358046AA + 2016894073E807AD86B8499D4FD92ABE32F5F1E312B9D9006BF7A791ACE810B4 + 48357D1ABF57518ED4941438380DC450770F0C701E0C07CAB846A382422601AF + B91EFC960601A923C3EFDFCABD621640E0DE73242B269402D0E230CB741FFE8B + 479036D7C0DBC7173ED36762981B1DF676B6B0A546F2F5198F56910C0525F750 + F3E477545772A156C999DCD2BC437D02ACD993422632C30C0026BFBCFC2E5292 + 92309DB100FEAB9763C2E8E1C6FFC82EED0A4A1FC06D882BF2F30BF14B793108 + 95F2E307A53999BD0204EC3E4326C47C825613DB50AD56212A32029EDED31012 + BC0613C60E7FB54117024E613916CD7B1B95D5CFC1B9FE231E5614F30881D2AB + A735F10A406F732569FE13200460BCBB0CAE2E835FDAA56E41F26541FF3394C3 + 56CD45A3588BECDC42141570206869D8C62DCB8D3309D0977CE72EBB3971EAAC + 85014141983CDE03FD1D6C4D39C028855A87477FD42333E302AA7EAD28E496E6 + F8FD1780A619B317B907AF0B86C79001D4A2FB7757B25BA95DA78F17E4B8C8BE + 80FB3F17345300234C02EC482EEE750A6E5D3C4EB97F05BCA6FA1ADCDE29D741 + FDC198E2091AB50DBA0EA06FA36D270D5E484F63E34E110714804DAF002736CE + 03690263E9EA10784E9A8963D19F63403F7BE357E6719FA351A8C46C1F2FD8E9 + 21A84A7D54A9EB188820543897CA36CF037A80765DCF0491BB62206F7344F4EE + 088C1BE962ACBF5BD508B15C855A9E020BA7BF019A5D97B5410D55535B07363B + A3EF35D009A0775B4FFA218B0376660E0283C310B49C61AC7F5227005F4A4024 + 53A38E2FC3D2596FC2C981669C8E8B9773517423A7EF5DB03DA9883C193E1F2A + AD0E7BCF167703686FD3E241762A265127E08CB97E78DA20C491CFE6432C23A8 + B09C0ACDA9105D1F9AD73489B1CECF074E8E34701F5621F36A3E2AB96532055F + 3EB2D773C09CBCA0A4EC36BE3E7E1AD366CD4768D02A4C1C3B8CCA0F40E507FF + 40F0F4F9815485678D4230BC9C7139A7943A844AE0E2361452A1E864697EC64E + 9300E6E605F555F7C0ABA984F7145FCC99C3C0080F0FCAA018324203477B3B38 + 3B398057FF02CFAAAB50FD1B17FE2B97E01D060387BE3985FB770A431B9E3F3D + DF23802579C1ADDB771117CFA2AEDF8118E23E0A0307D18DB7A15C22D6DF8410 + B436CADC3DC638EF8FDA0289584C5D5077703DF30249100A3DC4F7DD002CCD0B + F46B825F5B0551732D685A3984543C60DFAF3F342AC54D6A0F72082191E6367A + E40117577A9490D784896F4D059D4E47D6A5F45720FEF7BC6094E78475B63676 + 6963C679DB4C9ADC1DE2B5E4051444080591DE09E14277C1954B690688D79617 + 988278AD79414F107F0319061912CC99EFFC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_13_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005A64944415478DA + BD97095053571486FF0002E2D220DA5275B4D465D05AD0E2D660AB4855DC503B + 526404448B52F705AA5501ADB6766C475BAC1010759006198A8046088B91B545 + 14DC500AEAB8B0892401B2E791405E5F226440422069C73F3379F7DE979BF3BD + 7BDE3DF71C1A3AB43B3A973C19E40642A5C6FEB37930A49F02DD209428C017C9 + C11329D02C2170E39F970F6452E9FC3321CB053042B4CEC6CE282EF9DB6677C8 + 95EA7E4DB4B2A0812F947783F8FB616D45C4962FA69804B0E3743619B17521A4 + ADED38107BDDE0A4631BDD51CD13A3B0BC062259AB6EBC812FC4A96D8B683042 + BA1F6F8BC8247FDFE101B1A2BDDF93D52450C717A3BA5144B549E4DC7C84D33B + 179B06B0E5D70C3272D71208E56D088DCD31E63F70247001A40A158EB3F211B5 + 7BA969009B4FB0C9C83DCBD1226B33CA785785C6648219EC691A40D02F97C9A8 + E0156892AA107E26CBB815D8E4A1BD86C57010F3ED4AD300361E4F259921AB20 + A0004C5558743A62F77D691A40E0B16492B96F35F812150EC7A41B65F870D032 + ED353CEA0ACE1EF0320D60C30F4924F33B2F2D80A90A8FBC8CF3A1DEA601041C + 4924A3F77B832756E1FB18B651860F05797600A4222EDCC7348075875924F380 + 8F16A03F220802B9D77371FB76196A6B6AD0D2D2020BCB815029E5D7A8F0904E + 08E4E72B2AF2A5FD06F00B8F279907D76A018E46A7199C24E2D5A0A1EA16E8B6 + 7618613F1A8386BC034B4B6B289504641211F8AFEA2068AC6F22D56450591127 + A55F006B0FC691CC503F348A95068DA7A55C02FB0A1B8E4E33309BE10A17A789 + 78D77630AC2D2D4028DBC06B96222BFF169E3EAA405579295A0969786941E6D1 + 3E017CF69F239961EB2800157E64EA8716F36B20787A172E0C77B8CC9C094BF3 + D7E35414D67CC39DE1A4ED6717DEC1B061B6C8CAE2E26E491E1484FCABDB0519 + C90601D6EC8B25A3C203B400FAD44AF93C78C73638384E83BFDF1A4C1CFB5EB7 + FB6497F6556E0916CE9D85F2AAE7D46A5DC5BD9B797C4593FC437DEF840EC07B + EF1932326C3D78BD6CC39C4C0EF544D958B1DA179E8B3EED69B58B9239450858 + 35172F852AA473B8C8CD66A3A9B17E57692127C2208021DF375416E303877198 + 3A6B0ED4ED2AAD7152BBFCA40E86D47C3ABA1BBCDC216B55E3E1933A242726A0 + F2FE4D6E6941C6825E01FAD28CB94B1BA6CF5964EFEBEF8BD1C307C18CF6E654 + B247AF5DAD39AEA5B8C84A40D95FD9AF2880F7FF0B00C998EF89F5EB7D616365 + 0E0B33C0CC8CD6CD6E5704CDCAA8DA49ED2A5C8863A138970D0AA0873DDDC09E + 983C832E284965C279FA1C4C98EE8A3655BBCE98DD501BB83A39C0DCDC5CBB1D + 342ED02475EA0E5F281404CE9D67F5BD021A80139BE6E97CF8A6B6878442D266 + 85B0BDDB317E145DF7C4574B9EA1BE49067797F1B03037EBE195A7D5B560B112 + FB7E073A01DAD5FA09FE4C61233E39033E7E01F05DC6D08D173DAC83504AA086 + F2B52763120658987573C7C54B1CE4E664F4BD0B3A01347ED327051507BCD606 + 62CC84A9D8FA8D3FA638BC8E039535022A33A6B26231815A8104DEF32663A095 + 85F65EE9BD4A24A765A1BCB450221348471A8C03FDA90B04B58FF1E24E1EA6CD + 76C36497D908F070D6D6073C91FC3504959A3F7F25C2A625CEB85FF10497320A + A820940F5BBB111037B79C2CC84A0CEE15A0BF75417C42121292D2E0F8F10C7C + F6B92B96BB7D022505AD816891B6A29E2742DD8B67785C5989AA07A5F05AB918 + AE0C068EFE7C0A65C5DC75F5CF1FC7EB0530A62EF0986483131151B0B21E82E1 + F6A33078285D771A4A4542CD498826DE4B89FDE8B1430E866C85482844767E31 + AE2427900A854C03F1470F0063EB024D3EC0C9E6A2A0E806AAA97C402A116380 + B50D9484EC1AB507D98A66459CDD9891876C87D1439AF90D98F49133E8743A52 + 932E7483F87FEA82AFA9BA80D05F178C7298E86F46338F1B3BCE9136794A4F88 + B7521750107E14C4854E085BBA2D5292E2B4106FAD2EE80DE2ADD605FA20FE05 + C4163412A99D901A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_14_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005AD4944415478DA + BD977954D45514C7BFC3262A16931B2E474AD33451D344033B22A2B8859A49E4 + 820822E4725C2953814CD28E76D4306158D4C0468970636297D8549630179045 + A5C361971996597EB33023F3FACD0828C20C3373CAFBCFEF9DDFEF77DFFDBCFB + EE7BF75E063A644F782639E1330F8A76025DA4BCBA095C8114ADA236E495D53D + A0800511BE8E4D3A29BF248CCEC1EEB00C72D2D711328512FBCF666A55FAC1DB + 117C91143C81440DD1229221AFB4BE584C51F323FC5CF482E802D8199A4E7EDA + E204895CA993623F1306787C493788DB0F6B4A82B72EB0310860C7995412BCCD + 19545B3B0E44FEA955E9E86627547185C829AA8640DCD6F5BE81C7C7E9ED8B18 + D043BA7EDE1E9C4C7EDEB1184269BBCECA4A3A5C6A794254350AE831415AC123 + 9CD9B9C43080ADA71249C8AEA5E04B9EC13F324D9F3970D87B2128A902C7D859 + 08DDBDCC30802D273824648F0B5AC5CFF432FEB2F8872783B577B96100BE3F5E + 27A17B57A09952203022453F0FF82C563F03C29310FED54AC300361FBB4A587E + 9FA28906305402C21210B96F956100DE47E3086BDF6AF0440A1C0A4FD0CBF021 + DF4FD4CFC0D0789C3DE06A1880D7F7B184F58DAB1AC050090CB98EF3FE6E8601 + 6C3C1C43C2F6BB812B54E0BB704E9F8ACAF66768A97D0221AF06A64AFA4A6E6D + 8589597F28E4921BF4E94C903549CE979464513A03781C6213D681356A80BE24 + 3F3F1F672322606A6E81A156A33170D09B303333875C2E83582400EF692D9A1A + EB9A8992F8DEB99974452700F7C00B8475709D1A2028EC9A46056E653104754F + 3071AA2DA6CD9C8DE143983035668041CF346BEABBE0B55248CEFC0B15E52528 + 2F2A449B8C0A2CCC4E0EEA1360DDC128C2F27747A350AED178417E1EC24259F8 + D0DE096EAB5D30C17AD8F30FAF24D0949BF7C0645A2225251DF7F2332195493E + FF3B3B314E2BC09AFDE7082BC0830650E008ABA7D7547B5E91CF81CD743BCC71 + 70A4153B92167D05930E88A5F366A8C79CF40238CFB54551792538F17FE07E41 + 264FDA2C19DB5B4C74017CB12F9284066E5403F42669C949484E4EC50AD7F558 + E16CD7EB3F9D8EB89C74131E2B1D50CF572021291D19A91C3437D6ED2ACC490A + D608E0F675040909F00457C3313C7E24084AE301F0F1F182F5C8211AB7490571 + E97A26BC5C9D206E53E2E1935AC4C55C44D98382F4C2ECC4855A01A045AAEEA6 + 60FAEC791833EE3DB4D3DB4148A741A2B64AC80B04D5D8CBCD19ED4A55B6A470 + 897D11776EA53EA501466804E84B6C1D9611FBF9CBE1E9B91E03FA19C3C40830 + 3262740BC0975740680A5579A7F24274141BB9191CD0003DECE903D030F3E345 + 569B37AD477F7373B5311580EAF8313AA722CF57AF0A4F65874BA45219CE9D67 + F7ED015551AA0DA038230E23865BC1D671195D33C8D500AA550E635A60FE8CF1 + 3031EE652DF44FFF54D580CD8EE93B063AAB62A20123F60A07D1BF2760ADBB27 + DC5DECBA5C7EF57605EA5B282CB79B0453D5BEBCB21D972E2721232DB1EF53D0 + 09D0AEEC9D402A93E1B3B5DE1833FE036CFF7203A68C1DAE7E9F55544397E632 + 54F34458E764D30DA2F07E19E2AEA5A0A83047246EA2466ABD0774E90B32B36F + 23E8F8694CFFC8115EEEAB30F9ED6128A3FB035E477F50DF4C61C3421B3A484D + 9077B7149713B3E94B280BCCC143216C693D999D12B3572380AE7D414D49011A + 2BEE63E2145B3838CCC1DC59532092CAD14897E84D34884C22466B430D1E963E + 427971215C572EC11C7B7B35F89DDC748FBACAC7177A05D0A72FC8B9958B53A7 + 593036B3C010AB51B078C3B22B1B5202BE2A13A2995B2FB21A6D3DE8A0DF3608 + F87CA466E5223EEE22914AC52A885F7B00E8DB173CAEE6E297DFE251F9B814C2 + 662EBD728A4ECF0321975137E833C891B648A3068F19F92DF32D4BBF165E0326 + 4D9E064B4B4B5C8D8DEE06F1BFF705A3DE99B0C188611C653D6E22E37D9B9E10 + FF4D5FB089EE0B649AFB021AC29D8688EE84605A327125364A0DF1DAFA024D10 + AFB52FE80DE25FE6184312365F2EA10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_15_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005A74944415478DA + BD977950136718C69F2097166CF02A1E2DD58E162B5E63518B5A0B82E0893A5A + 450B288819C4E2456B3DA056AA1DDA6A8BD584432D2A8A1A2F28B7DC1690095A + 4544D0B60E8443128EDCD91060BB8909A302B9A6E3933FF64B36EFBEBFFDCEF7 + A141A35DB1F9E4D12D9FA1AB9B84212AA8E0A25DAC40E9E3C612A293F46486B8 + 4A0C0A7C4DB4D701945D860154D7B58027946B201A1E50D9DDE318AE2D2603EC + 8CC9238F315C4128BBB1F754BECEA01F36BB422096832F94A921DAC4044AAB1A + 1F4A2512B7B8B0654641F4006C67E690BF062F80ACA3DBA0402B731AF802D92B + 10C595DC47D15BDD9D4C02083D914546872C8444D1857DF1B93A838E042D402D + 4F84A28A3A08A58A9EDF9BF8021CDFE6498311EAF9F3B6E80CF2B7502F88E45D + 0607ABE66B3D5F84DA6621D526915D568313DB179906B0F59734F2E48EC510C8 + 3A71203EDB9867E0D0660F48E44A44251680B973896900C14753C893BB96A15D + DA6954F29775203603ACDDCB4D0360FC749364EEF646AB448988B84CE37A608B + 97FA1A1E9B8ED8AF5698061014759D6485AD440B0560AAC2635211BF67956900 + 9B8FB049D69ED5E08B9538189B6A54E2838CA5EA6B043319A7F6AD310D20E0FB + CB24EB9B356A0043441004727372C1292F475D6D1DDADBDB616E35104A85EC16 + B538528916D999478F0AF46ECF3D001B0F2591317BD7822752E2BBD8149D41C2 + E65A345495826E3714C3EDC7E02DDBB76169698D8E0E0252B110FCE7F568696E + 6825BB4946F9EDF46B0601F81F4C2459FB7CD400BA7495CDC6CD9B29709CE20C + 973973E13C753C86D36D606D650142A104AF5D82F47C0EFEAEAE447505070A42 + 12C129CC88D40BE01B718E64EDDFA006888CB9D1EF9BF39EDEC50C970598397B + 162C06BC0827551FAADF3D3E99ACFE9E79FB3EE8F4C1C8CCCCC15F77F2212764 + 9FDF2D4C63EB04D8B03F81641DF045B3A8A3CFE40A6ACCB76F0BC158C7E9D8E8 + E78309EFBF034DF65E4ACEE5C063DE0C54543F434AF21FB85F96CF97B7CAC6F5 + 35277A007CF69E2659E1FE1480128759BD87ADADBE069DA2E7F0F05E079B41D6 + 2F726B92939AC60AF799EA2B3BA3187EDEF3D0285022353D07795929686D6ED8 + C1294A8FEE1760DD9E789219B1510DD097A20E47A2DB6C10188C00388C1AD6EB + 3EF952E362720136AD768354D18DCAA7F560275DC0E30765399CC2348F7E01D6 + 7E1D479E0CDF045E3FCB30343808E39D662174EB260CB2B6842EFD7E251B016B + 1752D595EAB092E062E20594FF99F59C0218A91340D743FF2D4B868BDB720C1E + 66AF3EF9B46FAB9D80DA31213543C3D8B0585D5DA97AE16C42224AF2524001D0 + FA05D027E7F94B9A3E9EEB691F14F805065A5BAB139999D140A3691F427B0140 + DD5095345A48B99CC0E93389FA7BC000805B13A7CE72F7F3F5C1388777FB1EFF + D745DDF8A7968BC4C424FD73405594EA0268A8B90721B71A9F7A7A436A4EEF49 + 3B72882D96BA38527B82599F5017AFA6232F3B4DFF2AD056C5643F18AAAE5CB9 + 3E10EF8D9F862F83FD3165DC0875922B454FD0D426C57AB749B0307F158273FF + 31D8373251C129124B5B24A374EE0386F882BCC2621C8A3A8EE9B35D11E8BB0A + 4E634768FC0181C6562902BCA6C05203517AAF0A57D30AA94DA80076438743D4 + D67EAC303369B75E007DBE20E1FC259CBB74038E939D317FFE1C4C739A803689 + 023CAA42164AE4983EC606B73995A8ACAA41F5430ED6AC5884392E2E88FCF138 + CA4B72FC1B9E3D39D7278031BEC0EB432BFC1CCD8485952D86D98F86CD607ACF + 6928110A5427215A798D62FB310EB6FBC3422014089055508264F605522E97AA + 20CEF70230D61774771248BA968EE23B1C70B9F5108B8414D0C0CE0E852C9F5A + 8329F23679C2D0F7467D6B37841ED6C66FC2C44953A9038A8EEB97CFBE0261BA + 2FA04AF1A2875CBDBE60F4D8097E66B401090E1F38D23E72EA0DF1467C0105E1 + 4B419CD542D8D1ED70ED72821AE2FFF10581942F2074FB82FE20DEA82FE80BE2 + 3F607C44127F16115F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_16_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005A34944415478DA + BD97795454551CC7BFA38454A29061A486DBD1E3825B1D0E0A276473C35C530C + 0D5143493171A1CC05D22CD33A9A98300CA4818264A8E8C40C0322AB823864B2 + C9521E0FB20903CCBEC000B7372F1C519885B1D3F78F796FDEBBBF773FF7BEDF + BBBFFB65A05BBB5999E4C41657100283D234B99C5B85828A863C5507591011E8 + 26331CD5B7182F02747619414029ABB80642691BF2CBEB5F0AA21780BAD33880 + 8AC7CD68122BBB21EA8AA8DE3DA302DC9A4D06D81599414E06B841A5EEC2BE9F + 33F5067DE7EF0691540981584143B44A55C87F505F2297C9DCA38297F40B420B + 1014914E4E6DF580A2BDCBA8C041660C08448AE7206E97D694856DF3B4370960 + C799541216381FB2B64EEC8FBEA937E8E8660F5437499053FC1862799BF67A83 + 4084D3DB1730D00F691B6F0F4B213FED580889B2D3E8604DBED60A24A86E1453 + E7046905953813B4C834806D3F7248F84E2F88141D38189DD69F67E06BFF7990 + 29D5381E9785885D8B4D03D87A824DC2772F8150DED1AFCE7BEA202B05CC3D4B + 4D0308F8E11A89D8B30C2D323542A378FD9B812D0BE963088B0BD6E7CB4D03D8 + 7CFC2A6106AF40330560AA42229311BD77A56900FE47130973EF2A08A46A1C62 + 251B0CECEA54A3A5A60AE2A61A98752A20140A6136E855A8DB1437A8DC4C5635 + 2BCE959565195C1DB5009BBEB944985FAEA6010C293FFF0E58912CBC62311836 + B6A3F0BAE550989B5BA0BD5D05B9540CC1935A3437D6B5902E125098CBBD6214 + C086AF1348E4BE356892A87198C5D619D0F8B008A2DA4A4C9AEE80990E73606B + 630DB3810C30A827394E1B0F81500E4EE65DFC5D5E828A623EDA54B2507E76CA + 1183007E87E20873BF0F0DA07BE4F9083F1381F79C3CB0D67B1926DAD968EFF5 + AC20BCDC220C1D6A091E2F1D7FDEC98452A5F0FE239B93A817C037F43C611E58 + 47031C894CEAE39D77A0EAF6354C9D391BEFBBBB83A1ADDB842EE1D42F3E7099 + 4583B0330AE1E1FC2E8A2B1E817DFD77DC2FC814285B14E3FACA092DC0BA0331 + 8479D0178D92F63E47CFE372C0E1A662B9B72F56CC9FDD6BD43D9598920FDFA5 + CEA817A991CC4D47462A1B2D8D753BF939DC309D003EFBCE1266881F05A0C6B7 + CCDE79F3B82813767663E0E4EA89B6F676BA77D23DFAA7F25EE4441FE3D959D8 + B0D20DF2B62E94FE558BC48478941715A4F3B339F374027CB4379A44846EA001 + FAD2679F6EC6047B4704056EC46B16E6BDEEF7048949BC818DDEF3A8CD8DA656 + C870312E1E85B7529F50006FEB0458F34514090FD988261D9FA19FCF6A38B92F + 45D0363F3AE3FB14F9F7B5B0E2B90858E7456F6E34B3101B1387BC0C36280086 + 5E00E851F53D1E6639BAC2DAD68E7A05EAEE51936779409EFFBFE5E325F451A9 + 54E1ECB938C33360480E7317DF983CC3D173BDAF0FC68D7EE7C581EB9C9187D5 + 35888B4B309C0306015CBC8286BD35F294C782C558BBCACB60EF4F2F5FBCCC45 + 461AC7F057A0D994EA03E8EC5083CF8EC694690E9836C70535AD2ABA9751C387 + 60ADBB3DBD1ABE28FEFD722426F150CCCF91CA9B6523F4AE03C6F8829BD9B770 + F8D869CC9AED06FFF51FC27EEC70FC96538926A1029B164E87B9D9006DDBFC7B + 0F7099934D2D4259B01E660349ABF064362F618F410043BEE0970BBF22362109 + 93A899709DEB8CB1E3C6A0B6594A6D4E95F0719980EADA46E4DC2D45E9834A54 + 94F0B17AF922383B39E1C8F7A7519897EE57F7A8EABC5E00637C41566E1E8E9D + 0CC7200B4BBC693B1283875869ABA14C2CD25442B434D54B6D478DB63C101C08 + B14884D4AC3C5C4F8C274AA55C0371A117407F7DC1138110499C34F00BEFA1A1 + BE8E2AC312EA698C4642BA8AA91D2A5BD9AA8C196637E22BEB37AC825B050D98 + 3C7506ACACAC70F552EC73102FE10B40F98267E6A445A2425E596F5F3072ECC4 + F503180363468F9FC49862DF1BC2745F406DC5734A6A8CF20514842F0511FB14 + C2DACA1A572EC5D010FF9B2FD005F1DFF8824F285FA032EC0BFA82F8073C3A50 + 12D059DEA20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_17_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000059D4944415478DA + BD977954D45514C7BF20616C3A84A6A947D1923448F1189A98B21A8AB9757017 + 914208F0880B696E649276AC347161049333DA20298831C92AEBA8433058B209 + C849655F66801998E137C300BF7E33E808311B78EAFE33EFF7E6DDF73EEFBEFB + EEBB570FCF654F44168921891E47D24DBA85073A8986A6F7AF59FA039CF27504 + A903867C48DCDDC7C82B6F78658841003DBDBA1922BBA8066D1D52E496D5BF12 + C42000598F6E00E5D57C340B89E7107585D4EAAE917E4EFC6103ECBE98499EF6 + 738244D68B033F676954FACEC709820E023C61A702A2B54382DC47F5C56291C8 + 393278C59020940041E1E9E4197F177476F5EAA438D2400F3C41E70088FB2535 + A56101AE36C302D8793E950C0BFC1822690F0E5ECAD0A87462BB0BAA9ADBC12E + AA86502C55F637F00438BBC34D0F4310E5E01D61C9E4B99D4BD14EF4E8AC2CF7 + D75A5E3BAA9A84549B445A5E05CE072D1B1E40C04F89E4855DEE107476E3F0A5 + B4A1CC81633E4B20226438C9CC46F8EEE5C303F03FC5222FEC59813671F79016 + EF2F87239241DFBB7278007E3FFC4686EF5D8516910C21912943B380EF52C5EF + 918824447CB97A7800DB4FC693F4E035E05300BA884422C19D3B19C8E7725155 + 558DB6B636188C34864C2ABE43B9C66D09BF33AAB4345B6B705202F89C8825E9 + FB3DC0EB90E168C46D8D4A82C667A829B90F9AB905C68E9F0413B3D130347C1D + 5D5D12883B84E035D682DF54D742F6927E0577936EEA04F0D9B7D749FA576B15 + 009AE4C68D58C4C72760C62C3B7CB46811EC665B610CCD0446860620BABAC16B + 132331331F9565C5282FE2422A118570739243B5026C3B16435E3CB01ECDED32 + 7C13C152BBF3A68A7CCCB577C187F60B6030A24FBDEF0123B16481B5E23BE55E + 114699992225251D7FFD910542D2B9EE414E62AC4600AFA34C927E70A30240DD + 99EF080880E5BB73F0B9F726584D7E53AD9512321FC0D97E0E8ACA9F8295F03B + 1EE665F18896CE69AA7C4209E0197295A41FDAAC0008BD786BD0A42DD5E5E812 + D4C36DF546989A18F5EDBCDFEEE5B2C6C5AEEF985272B1E5137BD40B64B89D94 + 8ECC54165A9AEA7671D949616A01361F6290F4C39E686AEF52B9AB13A1C7D0A3 + 6F0CFF2F7C6039C142D9AFEAED8C66B1E1B5C60162692F4A2A6B111B138DB2C2 + BC746E4EE212B5001B0F5C26E947BC2800198ED3073B6E25E7166CE73960BAF5 + 2CC8643DD4C2A49240DE965BC273D5624557545C3ABC3D5CA9DC421EAA45B8C6 + 8C46C1BDD4460AE02DB5001BF65F22C343B6290054C9D60D6B61EFBC1241815E + D0EF1F6AC8C1CD88E824F86E7257E416722B5C6130C1C9648102D0530BB07E5F + 2479E188379AD55CC39DFEDB31DD663EFCFDBC60623452A5FD5F7C9E6324C077 + CB0A459B2024B81CC5D46E01390034484319079653A7E11D9B0FD0C4173C77C0 + 972AF276FF7C729F9F8782E8EFAA1A309931DA7D409BD82D760FB21837F18C8B + DB726CF270577904AAAC712D2E09996989DA6F8136B1B6763435B2307E623BCF + 71ECBA4F97C1CE76E6C00555A4D3DC876588BD9582222EBB43CC174DD0180774 + A90BF8D51578529001DBF98EB09A3D17CFF8042CC78D86B7DB2C181AE80F189B + FBE723C425E65041281BE61663D1DEDA763A272566AF46005DEA82A8ABBF8211 + 138F19EFDBC1C16121640666E8A50CBEC5D51A12428A27D58D60E797A0E45105 + CA8BB958BB7A1916DADB23F4FBB328E0A47BD53D7D7C5523802E7541169B83E3 + 3F9E8791F1288C193F11A6A368CAD7502414C85F42B434D7778C9F34C5EC5070 + 2084020152B33948888D2609422C87F8452D80AE754161651D92D332505C5884 + DADA6A59B794788DBA070DD45F255482C8225A0986C5E4095F9BBF410B6EE535 + 60A6F56CD06834C45FBF3200E23FAF0B264EB5DAAAAF378231E5ED197AEFD90C + 867885BA00545DF012A2A55D024EA9EABA8082F0A420AEBC8030A799E3E67586 + 0262F87501958AB38B6B74AE0BD441FCAF75812A887F007DDB5A12EDF47BF900 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_18_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000058A4944415478DA + C5977950D34714C7BF110F2E154A19AD075A5B1D15AB4C1D8BD0834B058A47AD + A85845D401F1AA178CD68B5AA974B4A32DA80960B56841C68257245CA501A20D + 62A807B74775003993404212921060FBCBAF0A581212D069DF3FBBBFFDEDDBFD + ECDBB7FBF631F03F0BE34565674C36E9A32A5FD5463C999BDDE4AF0DE0D87A57 + 102330B45D926F3C447E79ED2B43F40068EF30CE103985556892A9915756F34A + 103D0034EDC60194578AD020553E87A8BE4FCD3E2736D84DD46F801DD15C723C + D80D2A4D07F6FC94DDABD277816E90C894104A5B688846990A79A535450AB9DC + 3D3674419F203A01B631B3C88F1B3DD0D2DA6194E290810C08252D2F41FC515C + 5512B969CEB47E016C3D99412237CF835CDD8EBDA77FEF552922C803150DCDE0 + 155642AA5077B6D70A2588DAE2C9401FA4B3F396C8347262AB179A95ED462B6B + FDF599B01915F552AA4E9099FF0027B779F70F60D30F1C726AFBA790B4B461FF + E9CCBE8C8143817321576A70243E07CC1D3EFD03D8788C4D4EED5C8026455B9F + 26EF2EFB63D2C00A59D83F80E0EFAF1266C82288E51A84C5A61B546C6FD3405C + F500D2FA0A0C6C53A0B1A909838698A355ADF88DDA991495A8E56C49498EC1BB + A11320E8C865C20A5D0C11056048F8FC3C30593118646A09DB91636031743806 + 0F36456BAB0A0A9914C2BA6710D5578B4907092EB8917AC92880C08824C2DAED + 0BA14C838331297A15EA1EDF45636539264F9F85998E4E18616B031313060650 + FF1CA74F80A8498EEBDCDB78545A84F24201D42A799820372DDC20C0BA6F2F12 + D6574B6900FD2BE7232A8A8999CE1E58E5B70893EC6C75F64BBB5984A1961648 + 4FCFC2DD5BD950AA5A96FD99CB49EA1560CDA14412BD67391A9A35F82686DDA3 + 63477B1BCA79C9B077980D973973A988D4756191E7116CFE2733E8F22AF70EDC + 9D66A0B0FC29D8D7AEE35E7EB650296E99A0CB273A01020EC613D6DE1534802E + 49E570C04E49C762BFD558326F76D7E43AFA26A5DFC2173E4EA8916890929A05 + 6E061BE2FAEAED025E6AA45E00FFB0F384B56F250D101E7DA5C7A04FEF64C16E + EC787CE4E10975AB9A9E99745BBD56967B39D165C2F51BF05FF43114EA0E143F + 7A86A4C40494DDCFCF12E472E6EA0558B92F8EB0F6FBA3BEB955A70536AE0FC4 + C4698ED8B9652DCC4D87F4F84FBAD9E2E7642E0296B853A15D7B53CA71213E01 + 053733EA2880B7F402ACD87386B00E0450001A1C66F53C3965398970765F089B + D1E33B57AD2D49B77D58E7EB4E97D117D210E4E7458776AD15CEC5C583CF6583 + 0260E805F0DB7D9A30C3D6D000BAE4CB0D41B405366D0880854E0B74C9893836 + 8256CEA7EB4AA50A67CEC61BB6C0F25DB1E4D481B568D0730C8F1E0E47878919 + 56AF0DC0B85123A0CBFD5EB41C8BBD845DC1BE74C35F1555888F4F34EC035A00 + F422D2BA27D472C498EDE2894AA1A26BCFFFED8CE41F7F880859457F5E484E05 + 379363F81418127B7B574B331BF3270E1FB8DA2EFBDC1BB31CA6BCBC7A1DAF59 + C1BD32245D4947A180275388E4A37ABD078C91992E3E4BCD4CCD7F75707485AF + 8F0B9CDE9FAAB76FDE9D52247372A94B2807D636B6686E6C3A9E9B9E18A217C0 + D8BCA0B2380F750FEF62F27BB33071CA54D8D98D8597E3BB18666906995C8927 + 9575E0DD2E4671E903941709B0F4336F7CE8EC8CF0A35128E06705543F7D785E + 2F80B1790197C7A70734B7188E37478E86E530ABCE6828974AB49110E2861AD9 + C831E386EE0BDD0CA944828C1C3EAE252510A552A185F8452F80B17941A6E031 + 783C1E6EE7E74B65A21A15D5348272BE5AAA2CA6DE676C65A332CEC66ED4D7D6 + 6F5885360A6B31C57E06ACACAC70F9E2B997205E575E50407997B7AEBC60F4DB + 93560F6098C48D7B673263EAB49E10FF495E4041F85310E75E40585B59E3D2C5 + 381AE215F2025079411784B859057E89FEBC401F44FFF302EA29CE2BAAEA535E + A00BE26F94834B12C4D0E9410000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_19_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005844944415478DA + CD977954D45514C7BFA3A66CD6E0162E85594794C8308F1B8988A844A465EEA2 + A21E10158E1B94B9A142D2B18E16A60C627AD046090115906508D954741C4A65 + 574E21BB3003CC30CB6F36E6D76F7EC59032330C60CBFD67DEEFCDBBEF7DDE7D + F7DEF72E03FFB130FE3700BB4E67933D54CD97AB49F7087F57C90B0338B6690E + 481330B443E26F3E06B7BCA1CF105D00DA35A61922A7B006AD6205EE94D5F709 + A20B80AADD3480F26A019A44C45F10750FA9D5E745F9B90A7A0DB033328B3CEE + E70AB94A833D3F641B55FACAC715423101BE484643B488E5B8535A5F249548E6 + 46052DEC11840E607B4426F9DD1637C8941A9314070D60802F943D0371BBB8A6 + 247CEB3C875E016C3BC921C3FD1740A268C7DE33378C2A85F9BAA1AAA90D7985 + D5104915BAFE06BE102702DC7B14DABAC101E169E4F7DB3E401BD16EB2B2D65F + 6BF96DA86A14516D1219DC4738B9DDA377005BBF4D214FEDF81042991AFBCF64 + F4640E84F8CC878450E1283B07113B3D7B07B0E55812796AD742B44AD52629CA + E572703232C1BD5780275555686969C54B832CA054487FA60C735D2E909D2B29 + C9E9363475007EDF5C2323023F46B34485E0A874A34AAD0D95A82EBC09A6F510 + 0CB71903CBC1AF60E0403328957248C522F09FD642D058D74C6A48BF829BA909 + 2601F81EBD42B2821643400118939F622F233E211113264D85B3F36C4C731C8F + E14C4B980D1C0042A9A622438AE41B5C549416A1BC9007855C12CCCB4D0BED16 + C0272C8E64ED5E0ABE588543A7AF1BDC7943D95D4C71728393F32CF46774262D + 6D0A779F694FB7D36E17C3CAD21CE9E999B87F371B845CB6FC97DC9438A3001B + BF8C25595F2CA3010C9DF966BF2D186B3719BE1BBD60673BE2CF85F58C4DCCBA + 8F393326A1B0BC124989C978C0CDE613CDB271FA7C4207B03E24868CDCB3024D + 6D2A1C3E9DD46552415529142DB5F058EC054B2B8BCEC5A9AD77402C719B42B7 + 2F73B858ED311DF54215AEA766228B9384E6C6BA1DBCBCD4708300DE87D8246B + EF2A1A409F841C3E0C35C30201FEBE183B72A8513F6127DFC29A45B320556850 + 5C518BB8988B287BC8CDE4E5A6CC3708B036F802C9DAE7450384465EED326979 + 5E3C1CA7B9C06ED264A8546A9DF1B567DF6189758B9CE9BEB309D958B7587BB3 + 6A13950497D81751708BF39402186910C06B5F34C9DABF168D6D4ABDBB5ABD7C + 299CE62E42608037180CC3B9460B137989039F150BE89B556B85F3D16CE46725 + 810260180458B5E72CC93AE04D01A87084D535742BF2AFD2167875AC1D144A15 + B5E10E0B74BAE1E655EEF4EF89E824F8ACF6A4DB0421C7D973ECEE2DB072F719 + 3222783D0DA04F8E1E0985A69F39BC37AC87EDE81178DEFFFFFE752CEA0A3EDB + B484EEFCADAA066C764CF73EB0E2F328F2D4810D683210861969A9545C73F0D1 + A72B31DFD549AFE93B24EC640CC202D7D0ED4BF1A9C8CA48E93E0AB40030229A + 76356A1E66C2C171065E7B6B22CA9F34D2CB769C00F9DC6392757003780FCA10 + 77351D85BC3CB154201965340F9822535C3C97999B595C769C3E074B3D5D30F3 + 3D7B8363EFFC5A8AF8945C2A09E5C07AE870B4B5B41ECF4D8F09EC138056A6BA + 781C1864661532E19DA970B0B7C3EC690E18F7BA0D065B99432C21F07BF553E4 + DD2B4671E9239417F1B0EC130FBCEFE484D0AF4FA0203FD3BBAEF2F105BD003D + A90B04358F51C1E5A899CC610386D98C86D5CB4CDD6D281109B537219A9BEAC5 + 36636C07EF0BF28748280427271F8971174982906A217ED40BD093BA20E64611 + AE2526575697DCADD468DA2732C01849794403F55731F53C4A225A88E8A1AF8F + 3A683D8419D4C26FC0C4B7DF0593C9C495D8F3CF40FCE375C1E837C6AFEBC7E8 + 1F6DFBE60486BD4357881755171450AB7B18AA0B2888B514C4F90E086BA63512 + 62A369887FAD2E3004D187BA00D4EBA713A2B94D8EFC12E375813E883F00AFB4 + 4812748B15570000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_20_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000057C4944415478DA + CD977950137714C7BFB1A868B105154545A856AB55689DB1A84DAD0A1E80D55A + 512B0CB578A00CEAA05546EB8557B5535B0F2C1084EA808D22A228693842914B + 896268AB1804E9A803C899838424E402B69B3532D29C8075FAFEF9BDDD7D6F7F + 9F7DFB7EEFF77B34E865E58E3802AF40928F6DA075C7BE5BC6FF85FC7F00B69D + C9EBE62FA071556D8477CC264FF92B0338BE610E082B307426576E56A2B8A2BE + D7100600ED1DD60522BFB406CD32356E97D7F50AC20040DB6E1D4045B5104D52 + A51EA2F63E39FBBCB8104F618F01BE89CD254E847842A5EDC0AE5FF2CC3A7D1F + EC09894C0981B4958210CB54B8FDB0EE81422EF78A0B5FDC2D884E802D3139C4 + A9D0B968D57458E5D8DF860681A4B50B4411BFA62C72E33CB71E0184457188C8 + 4D0B2057B76377FC0DB34E47D7CF4555530B0A4BAB2155A83BEFD70B2438BDD9 + BB678568736426F173980F5A94ED563BEBF2F599A005558D525227905DFC0851 + 5B7C7B06B0F1643A11BD752124AD6DD81B9F6DD1B1BD4D0B6155399A1BAA60D3 + 268758DC8CBEB603A151297E27B9D82A61EBB9B2B27C8B2BA31320F4388B88DE + B618CD8A368B93DF2ABA8DA8E858D8D8DAC1D1C9196F0E7A1BFDFAD942A35141 + 219342D0F00CC2C65A11D1418494DCCCB86A1540C88FD78998ED4B20926B1111 + 9765D2A1BEF24F88AACA30F1030F78CC988961C306C3A60F0D34F24D1FBBBF03 + 41B302AC1B7751F9B01415A53CA855F2085E41E6618B00EB7F482518E14B2124 + 014C495111172723A331953E1741814B31DE79A851BB0C6E19EC06D8222B2B07 + 7FDDC98352D5FAE51F05E9296601828FA6108C9DCB21906971E00CDBC0B0A35D + 8BB2BCCB983C6506BC167893255BBF5CC9E4239E0F583CCB9DBA95967F0FB3A7 + B9A3B4E2295869BFE15E719E40296A1D6B2C273A01D67E974C30BE5D41011813 + 369B8DEBAC2CF8050461B9F70CB3397299C383BF8F07EA245AB0337290CB6141 + D458BB95579811691260F5A1242276D74A34B56871F00CCBE0A54F4A3818EDEC + 8A59F37DA1D668A82FA6BE5D5FB9754380CF344A67B2B9085C448742DD01FEDF + CF90927401E5F78B737805E9F34D02041D60128CDD0114803159BF6E1DC6B94D + C78EB0751838A06F9789FF2DE752F3F1D592D9E4C6A6AB13725C645E40C92D4E + 030930C224C0AA88F304634F20057038F69AC14BF9394CD0BD3EC73097B154D1 + D1FF7EFDF85C095EE6498D8C4BD958BB7C1EB5B1E9A29098C004379705128066 + 1220704F02C1D8BB0A8D2D1AA31108DD108CF16404C242579311E86F36074E27 + A663ADBF0FA52B952A9C3DC7B41C81805D6709C6BE2012408B230CC3DA517D3F + 0F2E2EAE983475261A45D2E7A17F11097D14B6047D465DFF149F8AF0603FEAC1 + E3AA1A3099499673C07F673C1113B19A023026D99919C8CCE460919F3F1678D1 + 0D9EBF9C0B47A32EE1C8B6404ABF782503B9D9E9965781EE581EBD6F0D9A4C2C + 43B55A85F0B0CD1833610A96F82DC5B831CE5D015E3ACB1D3CC50463FF1AF0EE + 9523E55A164A79853285503ED26C1DB0A62F908BEB20AD29C394E973307CD468 + F01F3798B40D5D46C795F402B208E5C36188235AC4CD270AB292B69B04B0563C + 66FBEEEB6F6B7768A2BB07DC264DC0AC696E18EBE28441760320932BF1A4BA01 + 8577F9E03F7C848A073CACF8C2179FD0E9387CEC344AB83941B54F2BCFF70A40 + 271F7DBA7019E9C9701CEEEC38D46914ECDEB2EFDC0DE552896E2784A8A94EE6 + E4EC3A684FF82648251270F2B9484BB94028950A1DC4AF0600DDED0BDA349AE2 + 3B69B1573BB46A5D66BB91FBE108B232D6933A9F2C142CA5589930C465E47E87 + C1F6E162413DDE9FFC21ECEDED919A9CD805A2177DC123B22F68B078241F35E6 + BDAFFBD0DE48707D77226D929B21C46BE90B4888552444E20B08077B075C4D4E + A0205E555F5042CEEE6BAE2F3005F15AFB026310FF00CA69341250CC08AF0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_21_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005724944415478DA + CD977950535714877F71A5A036A84C451911ED2816DBE2A81D061744515C4AD5 + 8954ADA5A2A2B855ADD05A3744513AD5D182AD84451DD4208DA02265D5140856 + 90864E350AA29DAA207B0264CF2321BCBEBC4A04134200BB9C7FF2EECB3DF77C + F79C7BCF79878117B2E2AB58F2F481B5A8976BD1533914C101F7D8464677740C + 93F5003DB6DC4E7A0CF05FC9FF0760574C6E3743C028205A48EFA8AD9E8AD706 + 7062E36C901660E8A724DF7A8CA2B29A5E431801E85A2D73449EF0399AE4CD28 + 7C58DD2B082300ADCE3280B20A31EAA5EA171055F728EB5EB1819EE21E037C11 + 9D439E0CF404A16DC59E33B96695BE09F08444AE8648AAA2211AE5040A4BABEF + 2B158A39B1C13EDD823000EC88E291119BE742A569B54871603F064412550788 + DB0F9E97446EF19AD42380ED3F6493915BE743D1ACC3DEB89FCD2A856F988BF2 + 7A19F28515902A9B0DEF6B44129CDAE6DDB344B42D3293FC7EFB02C8D43A8B14 + 09824046360FFC5B8528AFA880422E437F2B6B6808E54DEA14A51162D5B99292 + BC2E0FA60160CB77E9E4E99D8B2051B5607FDC0DB34A8DD54FF0EC2E1F4CE650 + D88D7080CDE03731608015341A024AB914A2DA4A88EBAA1AC85632B0F856C615 + 8B00369F48254FEFF24193B2C5ACF14B8997C14D4E81F37BD330CBC3036EAEE3 + 319C690DAB01FD40685A20A6CE45CACD223C2E15A24C284033A10811F033C3BA + 04083C9E4246052D4183428B90D82C93939BA89D5795DCC614772FCCF098893E + 066D924E600BDC9CE951666129ACAD06222B8B87DFEFE4424DA83EFE8D9F9E64 + 1660C3B7574976F0328815A6CBB13EE6011B3661CC84C9D814E087F1A3ED5E99 + F1327FA4E409316B9A0B84654F917AFD27DC2DCA15A91B54634D9D0903404078 + 12C9DEBD1C22EA7B203426CD08A0FE590908710516B33E85CD209B9726A9ADB7 + 9966CD9D4CFF5ECE2EC60AEFA9A896689196C1434E762A1AEAAA760AF233223B + 055877844BB2BFF6A5014C49E8C15068608D1D9F6FC4989143DB6FD8C8079CB4 + 3BF864B11B94CDAD78F04725921213F0F05E114FC04F9FD72980FFE144327ACF + 0AD4CBB43814936AB478692E17AE1FCCC244D729D06A7568DB775BF1D28FFD7D + A6D3CF67AFE563B5CF0CAAAE009522052E711250FC4B762D0560DF29C09A500E + C9DEBB8A063025BE2C16DCE77C84DD3BFCC160305E0D7B072F44FFC8833F6B0E + 5D57F45E381FCF41414E2A280046A7007E211748F6BED5344058F435A385CBF2 + 93290F78C07EDC44EABE6B694364BBDAAD7FDCB2721E8D107931136B7DE7D3EF + D56A0267CF71BAF6C0EA7DF1247BBF1FEA641A931E080F3B0C5D9F37B07EFD5A + 388EB283B99A793CEE3A82D62FA1DDF167F9737038895D9F81557BCE92EC036B + 28002D8EB28D935763E523B4C86AE1B968399ED549DBC51E869BF065C0DF468F + 46717164E72AFAFF4BC919C8B991DEF52D58B93B8E8C0AF1A7014C4933950782 + B66F83D304572C652DC3DB4E0E1D63DF2E1C872212A05F4B70F72192AE654128 + C8972BC58A9166F380257DC1AF458538131D8DC96E9EF0F6F6C2D8310E26E7E9 + FB83CD2C7724A7F3A9249407DB61769035369DE467250699058005D254F5082A + 2A2139BF3B0D8E4E63A163F4474D831C322581213656B01F36187D492DCA9F3E + 41D97D017C972EC4747777841D3B85E202DE9AAAA78F2F9804E88E4C9DB98845 + 69B2EDDE72B01B3E6214060D611AAAA1422AD1574234D457CB4738380EDE17BC + 15528904D97905B89E9440AAD54A3DC4C55E01E8C5C565F620ABE1D6EBA8053E + A486931860D85347B1867A7E80563255DDA88E1F367AE441DBA1CCE046510D26 + BABC4F956F26AE72CF7780F8C7FB82514EE33FEBC3E81BEF38CE99F1CE246388 + 5EF4058FA8BEA0D652083F0AE27C1B842DD31657B8F134C4BFD6177406F1BAFA + 8262CAFAC2AEFA0253107F01EBC81C12D007C4260000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_22_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005624944415478DA + CD97795C545514C77F93CAE2928CCBC70D4525FB984C659A1F0C3FA628E6506A + 69B887208AE4F231513E19A2E492F6D172991206210C75900844199861506411 + 0564D014419034320471366698956D5E6FDE08693303039475FE78EFDEFBEEBD + E7FBCE3BEF9C7B68782ACBB64711E1A1BE7852DF84AECA9E63B1F8E9A03FAD33 + 6BDA262FFD3C9208DBB51A2265770038883FB4AEEB005DD6FC8C7419E0BF92FF + 0FC0D613599DFC04B43C5D3331377CA3BBEA1F0338BC6E26082B300C5312732B + 70BDFC71B7214C005AF4D61922BBB80A75CA06E497D5740BC204A0A9C53A80F2 + 3F241029B44F21AA6F93DA3D2203DC255D06088CC8248E04B843D7A447F00F59 + ED2EFA7AAD3BE44A2DC40A0D052153EA907FB7E68E5AA59A151934BF53106D00 + 9F856710C7D6CF86A6516FD542DB9E3488E59AE720AE955495B2367830BA04B0 + F9783AC1DAF81E540D2DD81175B9DD4507FC67A3A24A8C1FE32EA0B2E22EEAA5 + 22E8342AF4B2EB83469DEA12F911537512CDC9D2D2EC0EFDA20D60132B8DF87E + 3313F5DA960EA973AFE583759C8D9EB67D3178A823FAF4EB0F1B1B3B3436EAA0 + 562A20AE7D04C9936A29A127028A72F9E7AC02D8709447846D791F724D337646 + 5DB4B8A0BABC0892CA128C7F630A5CA74DC790C103D0A387711B37C668D4CA54 + 48CD14E25EE96D94170BD1A053850A73D2F67508B0FE309708DB3A1F75EA66CB + 6F7E350FDF1E3D8EC96E1EF0FB6421C68D1C687CF0B71F879F5F067B5B1B0804 + 19F8A5200B5A9D66C98D1C5E42BB0001DF5C20C2B77D08A9AA09A1910293892D + CD4D28B91C079789AE98CDF4240396BE4D3961BC60C1BB2ED4D0859C3B983E79 + 028ACB2BC14D4EC1ADEB5962AD5433D69C4FB401F81F4C22D8410B2151994FC7 + DC94542425A7C16B852F16335DFF7A4098367FBE74134BE64C428DBC09A9FC0C + 64A673217D52BD457885CFB208B0F64002C1DEEE0531791ED87D22D504E07E61 + 1A1C478C823BF303E81A1AA990DDFAE6ADCA5730A7506D0EAF00CB3C5DA16ED0 + A3E4D74748888B45D9EDEB19C21CDE1C8B007E5FC513EC2F165300E664B5AF1F + 5E61B82238702D7ADBF53235C03396883E9F8B15F3A691611D782456E12C2716 + 4557D36B49806116017CF7C61111C14B21228F647B4E704D008AD363E0366B01 + 868C1907E269BE305C8DC9CBD8F75F3483BAB3E32FC367A131AC1BAC702A8683 + BC4C2E48009A45009FDD1C82BD633905604EFCD7ACA12CB075931FFAD8DB1801 + CCA60D02AC3302F87819ADADD5EA107D92D3B105BC434F13EC909514C0BE88F3 + 26DB56DECCC0A8914E60B8CE8048AA209513CF99DFD00BF4F6A4BA87A2B908F4 + 9D4F8D3F7858050E27AE631F58191243B0777A93A7E246B31610F079E0F1D3B1 + C06B3998B3DC4C7DE09981FDEC44ECDDBC84EA9E4DE423F322AFE3BF60797034 + C1DEE5431DCBF7B34DA3A7BEA519F70BB8604C9C0AA70993F0A04A44696BFD0C + 068B84ACFF986AEF669D45D8CE5510DE2A43C279018A8557946A896A78BB71C0 + 9ABAA0B0201F511111786BAA3BE6323DE03CDAD1EC3C437DF0E9A27790C8CB21 + 835036E80307A35E5677244710B7CD2280B5754172522278292918FFFA144C7A + 7B329C9DC76200BD3FECED6D49876B80AC4E81C2C21B7858F91BCAEF08B1F823 + 4F4C7373C3BE43DFA1282FC3A7BAB2E2B4450058296A590D24BF17834E1F8441 + 4347A0EFCB0E6DD950A5901B3221A4A21AE55047A77E21411BA190CB919E9D87 + E4845842AB551B20CE980074565C5C66F6B51BD4DB8FDC601ED965D0401B467A + C463B25D023DC1D5CAB43103470DFF923EC02148267E8CD75CDE8483830392E2 + 4F3D07F1AFD70523C6BCBAEA255A8F1827E7F1B4090C53881752179010DE24C4 + A95608BA031DE7E26328886ED405F7C8BAA0B6DB102FB42E3007F1279A480812 + CF1F66CC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find_23_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005574944415478DA + CD977950535714877FD18AA6680D2E1D15EBDA22565B514BADB445C15AAD2D75 + 4DD571C49DD4E2880B532B0805B575D4D18A5682501CD0409A015C2220586411 + 8B62705470411D5CD80492404242DECBFAFA78520C264080D6F6FC73EFDC77CF + 3DDF3BF79E73EF61A149966E8FA6F8412B505DAFC74FFC24744402D72F64DA90 + B07808F7AC617544B779F2926D515478F04A06A0B3127A280EBFEF5DD73980C5 + DF4752478356A146D515000144FB7C3A0FD069CB66D26980FF4AFE3F005B8E65 + 75700B5879A4819A15EEEBA1FEC7000EF84C07650346E394C4DC07C82F7ED665 + 080B00A3C93647641796A14EA5C5957B955D82B000D01B6D03282E95A1464934 + 4154DCA2AD7F16C9F390751A607344267590E701526FC2F6DFB2DA54DAB3D603 + 0A1501A952C340D4AA485CB95B59D4A0567B46FA7B7508A219C02F3C833AB47E + 06343A934D8A268316C2A414FC795582B2B272A8EA95E8D1936DD069358DA739 + 9994698EDFB993DDEEB634036CFC359D0AF3FD1C6AAD11015117DB549A3DF675 + 1C080B474F761F0C1C3414F67DFAC2CEAE17743A120D2A25A455E5905557C829 + 13C52BC84D4DB2096043D879EAC8C6D9A8278C6D1A17C48B204C3803E7F75D31 + 6DFA344C751983811C7B103A3DE4F524548416B9570B71FFCE2D14174AA025D5 + C1929CF3BBDA05F8EE9714EAE8A63950680CD81175C1EAE4DA8A129415E662B2 + DB4CB87B7C8A6E6669AC317C674F7182566FC0C5EB2560DBBD86B4B40CDCB89A + 0582D47C733D2725A14D80F507C4D4D12D5EA86B3058354E922456AEE661F898 + 89F0E579C3E9AD01AD7AE974CE6D7C32C91985C58F213E7B0E37F3B3A4845C33 + CADA996806E0ED3F43856F9D0BB95A8FE0C8348B456B1E1541237D82AFB8DEB0 + EF6DDFE2CF293C0F5DAEE704A61565DC0077C644542AF4484ECD4066BA18F2EA + 8A4D924BA961AD02ACDB7B8AE2FBCF874C6DFD3A0E0A0A81166C6CF1FB162306 + 3BBC00B032F764EA352C99E58A06AD09B71F96234118877BB7F233243929335B + 0558FB7302C5DFB60852FA3D10722CD962D1A28BF1707175C7B849AED01B8C66 + 299B6AF202B0CA6B2A33127DE63296CC994A6755A05CAA46BC200E0597D3AB68 + 80C1AD02ACDE2DA2F83F7019006B327FDE02B8797E8D80CDABC062B57D89868B + B2E03DD79DC9AA8D5E888D11202F530C1AC042B17960E54E2115B17D316AE827 + 59E831B1C5A277B34470F9D01D439DC683A4430E4D7F4D99DD5E1B167B32ED21 + C105782F78DE270812D1C705ED7B60458880E2072C6500ACC9CED05018586CF8 + F8ACC108C79722806A791EF61F4F869FF797CC40C9D3320804C2F6CFC0F2E013 + 143F701903B02BE2B40580BCB4183A4525667871F1A45AF5C27693071A9B6D6B + BC98FEEE882484F82E62FAF189A9C8BC90D27E142C0B8CA1F83B96D3AF629D55 + 0F68E93CE0B7C11723C7B860217721DE19E9D8D209665B117258842301CB20B9 + 790F09A7D35028B9A46A90A987B499076CA90BEAA5A59095DCC0C48F3CF0E630 + 273C2CAD6AF1DDBC3EE0CD9B82C4941C3A0965C3A1FF40D4D7D61DCC49136E6D + 15C0D6BAE0ECA944248BCFC1F93D574CFE603246BF3D0AFD1CFA82CDEE491F38 + 2D6AEB94C8CFBF8EA78F1FA1B84802EEBC2FF0B19B1B76ED3B8C82BC8C15158F + 1F9CB00AD091BAA0E05A3E62A3A360D7AB37060C7244EF3738CDB7A15AA968BC + 0921AFA9540D1A3ABC4FA0BF2F940A05D2B3F37036218E2288864688935601DA + B56C2626A3012A7A4B348A2AE8342A18F524BAF7E805839EF803264A4CD41231 + FD870DF9D1A11FC7BF56FA0C63C74D0087C3C129516C0B887FFD59EE38D2C9BB + 1BAB7BCCF0D1CEAC77C75B42BC92BA8086584E43C4FE0DE1C071409228868178 + 6575416B105DA80BEED37541559721FE020BBCF803DA1A869E0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Find_24_07' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005414944415478DA + CD977F50545514C7BF1B23526241E68C096A851A86E1983914D60C6B860A232A + 098A8A8081A416995AA6286A6A0E36FE00854511035D44041436765D68E3A722 + B8A88838AC149A2108ECC22EB0B0BBEC8FDBDB1750B6BBFC58CB3A7FBC77DF9B + 7BEFF99C73CF3DF71E067A64457822616DF747537B37CC955DD1A948DE17C818 + CA98BECE7E5B13086B470005A0C63E56C6901487AFFDE80F80A8B348D9FFB179 + 00CBB6C493D888401AC05CD97D2419E72243CC0358FAD50912B32308CD1D4F02 + C046EA8135E60398ADF92F6236C07F25FF1F808DC7F387B8048C12A586CC8D5D + CF94FF630007D7B8810C0243DF25BDB80665A2474F0C6100A0D50DCE11059575 + 9076A870B5BAE189200C00D4DAC101887E93A0B94DD103517F8BD23EE7442853 + 6236C0177179E45028134AB50E5B4FE6F73B687F30138D62292E7273212CBF81 + 470DF5E8EC68A766633411A2ABA44CC8564ABA4EDDB95330A057FA003E8F1590 + 236B3F4057B76E40EAA2CB25381CCD82C5706B8C1E638F11235F80A5A515BABB + 9514481BC48D0F2169AA6F213A125A5ECCCB181440D8B11C12B5DE1D729516DB + E27F3239E061F535886B2BE1E83C136E4C37CC749E04995C896E8D16FAF051AB + B5A8B87D17A2AA0A882A855029E511C2C24B7B0604F834EA12391A360FED0AAD + 69CB8BAF20F2D031CC709D83E055DE98643F8AFEAFDF39520A420F42A80FD183 + 66580DB3009F2FC0CDD27C28945DBED70BB969FD02AC3BCC25311B3C20EBD260 + 7B7CAE4147AD468D5BB96C384D7381BBA72774BA3F974AAF541FBA0B674DA162 + 480B7EE95DCC9AFE3A2A45F7C1C9FA011565F962454BD76BC662A20F60ED410E + 89D9B800D24E8D51EB33B3B29196C983EFF220F8CE77E93746CE092AB064F634 + 34C8D4C8E6099097C3414B53FD0661112FCA2440E877992476D342B4C8D58838 + C13798B4E66A36ECEDC661B6C70228556ADAEA5EF7F7CA8AB96FD1EF3397CAE1 + EB3E039D2A1DAA7E7E88B4946454DF2A13080BB91F9A040889BC40589B174322 + 377E1CAF0A088283930BB66F0AC673C32DD15FB63899558265F35CA8A44605AD + 588EB3EC64945FCE69A4005E360910FC6D1A616D590231751FD8753CDB60D29B + BC04B8CEF6C25807472ADA7BAD7FDC0B6BBCDFA3DFACF30558E9F53E9DD4F45E + 484A64A3248F030A80611260F5DE54C2FADA870630264181AB3171AA0BBE0C5B + 8D11CF5A1AEDD3EB9528B6002B17B9D16D8542898453EC813D10F84D0A89DBBA + 14CDD4956CF7718EC1E4F7CA7330CE7E3C9CDF65A2A9A5FD710FF43C36FABBD3 + DF07BEE7226CE57CFA5FED833AB0D92903C740C02E36616DF3A3018C098FCB05 + 279B8F853ECBE139C7D5B8E93DB237EE2222D679D3EDB3E93CE4E57207DE05FE + 11A7092B7C050DB0879AE0EFA2D36A50732593CE030E5416FCA5AE995EFC5EDD + 7A6FECF86431DDDE79F43CA2B6F84158518DB48B7C540A8B3A3A25F2B1FDE681 + C1D40565A5571117CBC2F47798F0F070C7C457EC8CF6D3D707215E6F239D5B48 + 25A102D88E1A8DF656E9A1427ECA26930083AD0B24BF56A1BDB1168E6FCEC464 + 2767C8D50C48A41DE852AAF099BF075AA56D282DBB8E07F76A21BA2D84CFA2F9 + 98E5EA8A3D07A2515E2208A8BF5F73DA28C050EA02E1B532249D8C87A595355E + 1A6307EBE76DFA4E43799B4C7F12A2A5B9A1638CFD8491E19BD7A34D26434E41 + 09B2D2928942D1A98738630030D4BA40A552A2283F0F376F5C477D5D1D643229 + 2C865941A356FC48250A8EA25591386AFCD89DB62FDA6C6E153FC214A769B0B1 + B1C185D4A4C720FEF5BAC0EED5C9AB9E6158244E707064BC31D510E2A95CCB29 + 087F0A22A917C2D6C61619A98934C453AB0B4C413CD5BAC018C4EFD378F2034C + 117EB40000000049454E44AE426082} + end> + Left = 40 + Top = 16 + Bitmap = {} + end +end diff --git a/source/forms/Animations96.h b/source/forms/Animations96.h new file mode 100644 index 00000000..d7f915c7 --- /dev/null +++ b/source/forms/Animations96.h @@ -0,0 +1,19 @@ +//--------------------------------------------------------------------------- +#ifndef Animations96H +#define Animations96H +//--------------------------------------------------------------------------- +#include +#include "PngImageList.hpp" +#include +#include +//--------------------------------------------------------------------------- +class TAnimations96Module : public TDataModule +{ +__published: + TPngImageList *AnimationImages; + +public: + __fastcall TAnimations96Module(TComponent * Owner); +}; +//--------------------------------------------------------------------------- +#endif diff --git a/source/forms/Authenticate.cpp b/source/forms/Authenticate.cpp index 56b12e98..c7ef5e52 100644 --- a/source/forms/Authenticate.cpp +++ b/source/forms/Authenticate.cpp @@ -33,6 +33,7 @@ void __fastcall TAuthenticateForm::Init(TTerminal * Terminal) FShowAsModalStorage = NULL; FFocusControl = NULL; UseDesktopFont(LogView); + FAnimationPainted = false; FPromptParent = InstructionsLabel->Parent; FPromptLeft = InstructionsLabel->Left; @@ -42,6 +43,9 @@ void __fastcall TAuthenticateForm::Init(TTerminal * Terminal) FPromptsGap = PromptLabel2->Top - PromptEdit1->Top - PromptEdit1->Height; ClientHeight = ScaleByTextHeight(this, 270); + FHorizontalLogPadding = ScaleByTextHeight(this, 4); + FVerticalLogPadding = ScaleByTextHeight(this, 3); + FLogTextFormat << tfNoPrefix << tfWordBreak << tfVerticalCenter; ClearLog(); } @@ -118,6 +122,10 @@ void __fastcall TAuthenticateForm::FormShow(TObject * /*Sender*/) { ActiveControl = FFocusControl; } + + UnicodeString AnimationName = FSessionData->IsSecure() ? L"ConnectingSecure" : L"ConnectingInsecure"; + FFrameAnimation.Init(AnimationPaintBox, AnimationName); + FFrameAnimation.Start(); } //--------------------------------------------------------------------------- void __fastcall TAuthenticateForm::ClearLog() @@ -129,13 +137,47 @@ void __fastcall TAuthenticateForm::ClearLog() //--------------------------------------------------------------------------- void __fastcall TAuthenticateForm::Log(const UnicodeString Message) { - TListItem * Item = LogView->Items->Add(); - Item->Caption = Message; - Item->MakeVisible(false); - AdjustLogView(); + // HACK + // The first call to Repaint from TFrameAnimation happens + // even before the form is showing. After it is shown it takes sometime too long + // before the animation is painted, so that the form is closed before the first frame even appers + if (!FAnimationPainted && Showing) + { + AnimationPaintBox->Repaint(); + FAnimationPainted = true; + } + + int Index = LogView->Items->Add(Message); + MakeLogItemVisible(Index); LogView->Repaint(); } //--------------------------------------------------------------------------- +void __fastcall TAuthenticateForm::MakeLogItemVisible(int Index) +{ + int CountVisible = LogView->Height / LogView->ItemHeight; + if (Index < LogView->TopIndex) + { + LogView->TopIndex = Index; + } + else + { + int TotalHeight = 0; + int Index2 = Index; + while ((Index2 >= 0) && TotalHeight < LogView->ClientHeight) + { + TotalHeight += LogItemHeight(Index2); + Index2--; + } + + // Index2 is the last item above the first fully visible, + // were the Index on the very bottom. + if (LogView->TopIndex <= Index2 + 1) + { + LogView->TopIndex = Index2 + 2; + } + } +} +//--------------------------------------------------------------------------- void __fastcall TAuthenticateForm::AdjustControls() { UnicodeString ACaption; @@ -164,7 +206,6 @@ TLabel * __fastcall TAuthenticateForm::GenerateLabel(int Current, UnicodeString Result->Caption = Caption; int Width = FPromptParent->ClientWidth - FPromptLeft - FPromptRight; Result->Width = Width; - Result->AutoSize = true; return Result; } @@ -245,7 +286,7 @@ bool __fastcall TAuthenticateForm::PromptUser(TPromptKind Kind, UnicodeString Na if (!ShowSavePasswordPanel && (Prompts->Count == 1) && FLAGSET(int(Prompts->Objects[0]), pupRemember) && - ALWAYS_TRUE(IsPasswordOrPassphrasePrompt(Kind, Prompts))) + DebugAlwaysTrue(IsPasswordOrPassphrasePrompt(Kind, Prompts))) { ShowSessionRememberPasswordPanel = true; } @@ -262,7 +303,7 @@ bool __fastcall TAuthenticateForm::PromptUser(TPromptKind Kind, UnicodeString Na } PasswordPanel->Realign(); - assert(Results->Count == Edits->Count); + DebugAssert(Results->Count == Edits->Count); for (int Index = 0; Index < Edits->Count; Index++) { TCustomEdit * Edit = reinterpret_cast(Edits->Items[Index]); @@ -288,8 +329,8 @@ bool __fastcall TAuthenticateForm::PromptUser(TPromptKind Kind, UnicodeString Na if (SavePasswordCheck->Checked) { - assert(Data != NULL); - assert(Results->Count >= 1); + DebugAssert(Data != NULL); + DebugAssert(Results->Count >= 1); FSessionData->Password = Results->Strings[0]; Data->Password = Results->Strings[0]; // modified only, explicit @@ -327,7 +368,12 @@ bool __fastcall TAuthenticateForm::Execute(UnicodeString Status, TPanel * Panel, TAlign Align = Panel->Align; try { - assert(FStatus.IsEmpty()); + // If not visible yet, the animation was not even initialized yet + if (Visible) + { + FFrameAnimation.Stop(); + } + DebugAssert(FStatus.IsEmpty()); FStatus = Status; DefaultButton->Default = true; CancelButton->Cancel = true; @@ -354,25 +400,30 @@ bool __fastcall TAuthenticateForm::Execute(UnicodeString Status, TPanel * Panel, { if (Zoom) { - LogView->Hide(); + TopPanel->Hide(); } else { if (LogView->Items->Count > 0) { - TListItem * Item = LogView->ItemFocused; - if (Item == NULL) + // To avoid the scrolling effect when setting TopIndex + LogView->Items->BeginUpdate(); + try { - Item = LogView->Items->Item[LogView->Items->Count - 1]; + MakeLogItemVisible(LogView->Items->Count - 1); + } + __finally + { + LogView->Items->EndUpdate(); + RedrawLog(); } - Item->MakeVisible(false); } } Screen->Cursor = crDefault; if (!Visible) { - assert(ForceLog); + DebugAssert(ForceLog); ShowAsModal(); } @@ -391,7 +442,7 @@ bool __fastcall TAuthenticateForm::Execute(UnicodeString Status, TPanel * Panel, Screen->Cursor = PrevCursor; if (Zoom) { - LogView->Show(); + TopPanel->Show(); } Repaint(); } @@ -410,7 +461,7 @@ bool __fastcall TAuthenticateForm::Execute(UnicodeString Status, TPanel * Panel, Constraints->MinHeight = Height; Constraints->MaxHeight = Height; } - LogView->Hide(); + TopPanel->Hide(); Panel->Show(); FFocusControl = FocusControl; @@ -423,7 +474,7 @@ bool __fastcall TAuthenticateForm::Execute(UnicodeString Status, TPanel * Panel, Constraints->MinHeight = PrevMinHeight; Constraints->MaxHeight = PrevMaxHeight; Panel->Hide(); - LogView->Show(); + TopPanel->Show(); } } } @@ -434,13 +485,14 @@ bool __fastcall TAuthenticateForm::Execute(UnicodeString Status, TPanel * Panel, CancelButton->Cancel = false; FStatus = L""; AdjustControls(); + FFrameAnimation.Start(); } bool Result = (ModalResult == DefaultButtonResult); if (!Result) { - // This is not nice as it may untimately route to + // This is not nice as it may ultimately route to // TTerminalThread::Cancel() and throw fatal exception, // what actually means that any PromptUser call during authentication never // return false and their fall back/alternative code never occurs. @@ -456,13 +508,68 @@ void __fastcall TAuthenticateForm::HelpButtonClick(TObject * /*Sender*/) FormHelp(this); } //--------------------------------------------------------------------------- -void __fastcall TAuthenticateForm::AdjustLogView() +int __fastcall TAuthenticateForm::LogItemHeight(int Index) +{ + UnicodeString S = LogView->Items->Strings[Index]; + TRect TextRect(0, 0, LogView->ClientWidth - (2 * FHorizontalLogPadding), 0); + LogView->Canvas->Font = LogView->Font; + LogView->Canvas->TextRect(TextRect, S, FLogTextFormat + (TTextFormat() << tfCalcRect)); + int Result = TextRect.Height() + (2 * FVerticalLogPadding); + return Result; +} +//--------------------------------------------------------------------------- +void __fastcall TAuthenticateForm::LogViewMeasureItem(TWinControl * /*Control*/, int Index, + int & Height) +{ + Height = LogItemHeight(Index); +} +//--------------------------------------------------------------------------- +void __fastcall TAuthenticateForm::LogViewDrawItem(TWinControl * /*Control*/, int Index, + TRect & Rect, TOwnerDrawState /*State*/) { - ListView_SetColumnWidth(LogView->Handle, 0, LVSCW_AUTOSIZE); + // Reset back to base colors. We do not want to render selection. + // + At initial phases the canvas font will not yet reflect he desktop font. + LogView->Canvas->Font = LogView->Font; + LogView->Canvas->Brush->Color = LogView->Color; + + LogView->Canvas->FillRect(Rect); + + int Height = LogItemHeight(Index); + // tfVerticalCenter does not seem to center the text, + // so we need to deflate the vertical size too + Rect.Inflate(-FHorizontalLogPadding, -FVerticalLogPadding); + UnicodeString S = LogView->Items->Strings[Index]; + LogView->Canvas->TextRect(Rect, S, FLogTextFormat); +} +//--------------------------------------------------------------------------- +void __fastcall TAuthenticateForm::RedrawLog() +{ + // Redraw including the scrollbar (RDW_FRAME) + RedrawWindow(LogView->Handle, NULL, NULL, RDW_FRAME | RDW_INVALIDATE | RDW_UPDATENOW); } //--------------------------------------------------------------------------- void __fastcall TAuthenticateForm::FormResize(TObject * /*Sender*/) { - AdjustLogView(); + if (LogView->Showing) + { + // Mainly to avoid the scrolling effect when setting TopIndex + LogView->Items->BeginUpdate(); + try + { + // Rebuild the list view to force Windows to resend WM_MEASUREITEM + int ItemIndex = LogView->ItemIndex; + int TopIndex = LogView->TopIndex; + std::unique_ptr Items(new TStringList); + Items->Assign(LogView->Items); + LogView->Items->Assign(Items.get()); + LogView->ItemIndex = ItemIndex; + LogView->TopIndex = TopIndex; + } + __finally + { + LogView->Items->EndUpdate(); + RedrawLog(); + } + } } //--------------------------------------------------------------------------- diff --git a/source/forms/Authenticate.dfm b/source/forms/Authenticate.dfm index 8242e712..9843fb7a 100644 --- a/source/forms/Authenticate.dfm +++ b/source/forms/Authenticate.dfm @@ -6,7 +6,7 @@ object AuthenticateForm: TAuthenticateForm BorderIcons = [biSystemMenu] BorderStyle = bsDialog Caption = 'AuthenticateForm' - ClientHeight = 359 + ClientHeight = 380 ClientWidth = 375 Color = clBtnFace Constraints.MinHeight = 200 @@ -18,27 +18,51 @@ object AuthenticateForm: TAuthenticateForm OnShow = FormShow PixelsPerInch = 96 TextHeight = 13 - object LogView: TListView + object TopPanel: TPanel Left = 0 Top = 0 Width = 375 - Height = 44 + Height = 65 Align = alClient - Columns = < - item - Width = 100 - end> - DoubleBuffered = True - ReadOnly = True - RowSelect = True - ParentDoubleBuffered = False - ShowColumnHeaders = False + BevelOuter = bvNone TabOrder = 0 - ViewStyle = vsReport + object LogView: TListBox + Left = 48 + Top = 0 + Width = 327 + Height = 65 + Style = lbOwnerDrawVariable + Align = alClient + BevelInner = bvNone + BevelOuter = bvNone + BorderStyle = bsNone + DoubleBuffered = True + ParentDoubleBuffered = False + TabOrder = 0 + OnDrawItem = LogViewDrawItem + OnMeasureItem = LogViewMeasureItem + end + object LeftPanel: TPanel + Left = 0 + Top = 0 + Width = 48 + Height = 65 + Align = alLeft + BevelOuter = bvNone + Color = clWindow + ParentBackground = False + TabOrder = 1 + object AnimationPaintBox: TPaintBox + Left = 8 + Top = 11 + Width = 32 + Height = 32 + end + end end object PasswordPanel: TPanel Left = 0 - Top = 44 + Top = 65 Width = 375 Height = 233 Align = alBottom @@ -195,7 +219,7 @@ object AuthenticateForm: TAuthenticateForm end object BannerPanel: TPanel Left = 0 - Top = 277 + Top = 298 Width = 375 Height = 82 Align = alBottom diff --git a/source/forms/Authenticate.h b/source/forms/Authenticate.h index 7490899d..bf84f89e 100644 --- a/source/forms/Authenticate.h +++ b/source/forms/Authenticate.h @@ -10,11 +10,12 @@ #include #include "PasswordEdit.hpp" #include "WinInterface.h" +#include "GUITools.h" //--------------------------------------------------------------------------- class TAuthenticateForm : public TForm { __published: - TListView *LogView; + TListBox *LogView; TPanel *PasswordPanel; TPanel *PromptEditPanel; TLabel *PromptLabel1; @@ -35,8 +36,13 @@ class TAuthenticateForm : public TForm TPasswordEdit *PromptEdit2; TPanel *SessionRememberPasswordPanel; TCheckBox *SessionRememberPasswordCheck; + TPanel *TopPanel; + TPanel *LeftPanel; + TPaintBox *AnimationPaintBox; void __fastcall FormShow(TObject *Sender); void __fastcall HelpButtonClick(TObject *Sender); + void __fastcall LogViewMeasureItem(TWinControl *Control, int Index, int &Height); + void __fastcall LogViewDrawItem(TWinControl *Control, int Index, TRect &Rect, TOwnerDrawState State); void __fastcall FormResize(TObject *Sender); public: @@ -69,6 +75,9 @@ class TAuthenticateForm : public TForm TList * __fastcall GeneratePrompt(UnicodeString Instructions, TStrings * Prompts); void __fastcall DoCancel(); void __fastcall AdjustLogView(); + void __fastcall MakeLogItemVisible(int Index); + int __fastcall LogItemHeight(int Index); + void __fastcall RedrawLog(); private: void * FShowAsModalStorage; @@ -83,6 +92,11 @@ class TAuthenticateForm : public TForm int FPromptEditGap; int FPromptsGap; TNotifyEvent FOnCancel; + TFrameAnimation FFrameAnimation; + bool FAnimationPainted; + int FHorizontalLogPadding; + int FVerticalLogPadding; + TTextFormat FLogTextFormat; }; //--------------------------------------------------------------------------- #endif diff --git a/source/forms/Cleanup.cpp b/source/forms/Cleanup.cpp index a6fae310..eae80a33 100644 --- a/source/forms/Cleanup.cpp +++ b/source/forms/Cleanup.cpp @@ -120,7 +120,7 @@ void __fastcall TCleanupDialog::InitControls() break; default: - FAIL; + DebugFail(); break; } @@ -133,7 +133,7 @@ void __fastcall TCleanupDialog::InitControls() } Item->SubItems->Add(Location); - assert(Item->Index == i - 1); + DebugAssert(Item->Index == i - 1); } AutoSizeListColumnsWidth(DataListView); diff --git a/source/forms/Console.cpp b/source/forms/Console.cpp index ca0b77b5..192f13c7 100644 --- a/source/forms/Console.cpp +++ b/source/forms/Console.cpp @@ -12,6 +12,7 @@ #include "Console.h" #include #include +#include //--------------------------------------------------------------------- #pragma link "HistoryComboBox" #pragma link "PathLabel" @@ -49,6 +50,8 @@ __fastcall TConsoleDialog::TConsoleDialog(TComponent* AOwner) OutputMemo->Font->Color = (TColor)0x00BBBBBB; FixComboBoxResizeBug(CommandEdit); UseSystemSettings(this); + SelectScaledImageList(Images); + LoadDialogImage(Image, L"Open console window"); OutputMemo->Font->Name = CustomWinConfiguration->DefaultFixedWidthFontName; OutputMemo->Font->Size = CustomWinConfiguration->DefaultFixedWidthFontSize; } @@ -69,9 +72,9 @@ void __fastcall TConsoleDialog::SetTerminal(TTerminal * value) FTerminal->ExceptionOnFail = false; FClearExceptionOnFail = false; } - assert(FTerminal->OnClose == TerminalClose); + DebugAssert(FTerminal->OnClose == TerminalClose); FTerminal->OnClose = FPrevTerminalClose; - assert(FTerminal->OnChangeDirectory == DoChangeDirectory); + DebugAssert(FTerminal->OnChangeDirectory == DoChangeDirectory); FTerminal->OnChangeDirectory = FOldChangeDirectory; FOldChangeDirectory = NULL; if (FDirectoryChanged) @@ -213,7 +216,7 @@ void __fastcall TConsoleDialog::DoExecuteCommand() if (FTerminal) { FTerminal->ExceptionOnFail = false; - assert(FClearExceptionOnFail); + DebugAssert(FClearExceptionOnFail); FClearExceptionOnFail = false; if (FTerminal->Active) { @@ -238,7 +241,7 @@ void __fastcall TConsoleDialog::ExecuteCommand() } catch(Exception & E) { - assert(FLastTerminal != NULL); + DebugAssert(FLastTerminal != NULL); FLastTerminal->ShowExtendedException(&E); } } @@ -354,3 +357,19 @@ void __fastcall TConsoleDialog::FormCloseQuery(TObject * /*Sender*/, bool & CanC CanClose = !FExecuting; } //--------------------------------------------------------------------------- +void __fastcall TConsoleDialog::Dispatch(void * Message) +{ + TMessage * M = reinterpret_cast(Message); + if (M->Msg == WM_SYSCOMMAND) + { + if (!HandleMinimizeSysCommand(*M)) + { + TForm::Dispatch(Message); + } + } + else + { + TForm::Dispatch(Message); + } +} +//--------------------------------------------------------------------------- diff --git a/source/forms/Console.dfm b/source/forms/Console.dfm index 9e475a94..5c181f45 100644 --- a/source/forms/Console.dfm +++ b/source/forms/Console.dfm @@ -3,7 +3,7 @@ object ConsoleDialog: TConsoleDialog Top = 169 HelpType = htKeyword HelpKeyword = 'ui_console' - BorderIcons = [biSystemMenu, biMaximize, biHelp] + BorderIcons = [biSystemMenu, biMinimize, biMaximize, biHelp] Caption = 'Console' ClientHeight = 393 ClientWidth = 551 @@ -12,23 +12,1331 @@ object ConsoleDialog: TConsoleDialog Constraints.MinWidth = 420 ParentFont = True Icon.Data = { - 0000010001001010000001002000680400001600000028000000100000002000 + 000001000700404000000100200028420000760000003030000001002000A825 + 00009E4200002828000001002000681A0000466800002020000001002000A810 + 0000AE820000181800000100200088090000569300001414000001002000B806 + 0000DE9C000010100000010020006804000096A3000028000000400000008000 + 0000010020000000000000420000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000027201BC527211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF26211BC30000000000000000000000000000 + 0000000000000000000027211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF28221DFF28221DFF28221DFF28221DFF2822 + 1DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF2822 + 1DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF2822 + 1DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF2822 + 1DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF2822 + 1DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF2822 + 1DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF2822 + 1DFF28221DFF28221DFF28221DFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF2A241EFF2A241EFF2A241EFF2A241EFF9491 + 8EFFFAFAFAFFBFBDBBFF45403BFF2A241EFF2A241EFF2A241EFF2A241EFF2A24 + 1EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A24 + 1EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A24 + 1EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A24 + 1EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A24 + 1EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A24 + 1EFF2A241EFF2A241EFF2A241EFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF2C2520FF2C2520FF2C2520FF322C27FFFCFC + FCFFFFFFFFFFFFFFFFFFF7F7F7FF8A8684FF2D2621FF2C2520FF2C2520FF2C25 + 20FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C25 + 20FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C25 + 20FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C25 + 20FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C25 + 20FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C25 + 20FF2C2520FF2C2520FF2C2520FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF2E2721FF2E2721FF2E2721FF2E2721FFD6D4 + D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5D3D2FF544E49FF2E2721FF2E27 + 21FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E27 + 21FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E27 + 21FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E27 + 21FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E27 + 21FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E27 + 21FF2E2721FF2E2721FF2E2721FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF302822FF302822FF302822FF302822FF3B34 + 2EFFA9A6A3FFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFF9E9A97FF362E + 29FF302822FF302822FF302822FF302822FF302822FF302822FF302822FF3028 + 22FF302822FF302822FF302822FF302822FF302822FF302822FF302822FF3028 + 22FF302822FF302822FF302822FF302822FF302822FF302822FF302822FF3028 + 22FF302822FF302822FF302822FF302822FF302822FF302822FF302822FF3028 + 22FF302822FF302822FF302822FF302822FF302822FF302822FF302822FF3028 + 22FF302822FF302822FF302822FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF322A24FF322A24FF322A24FF322A24FF322A + 24FF322A24FF635D58FFE0DFDEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2E0 + E0FF66605CFF322A24FF322A24FF322A24FF322A24FF322A24FF322A24FF322A + 24FF322A24FF322A24FF322A24FF322A24FF322A24FF322A24FF322A24FF322A + 24FF322A24FF322A24FF322A24FF322A24FF322A24FF322A24FF322A24FF322A + 24FF322A24FF322A24FF322A24FF322A24FF322A24FF322A24FF322A24FF322A + 24FF322A24FF322A24FF322A24FF322A24FF322A24FF322A24FF322A24FF322A + 24FF322A24FF322A24FF322A24FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF342B25FF342B25FF342B25FF342B25FF342B + 25FF342B25FF342B25FF38302AFF9C9895FFFBFAFAFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFB0ADABFF403832FF342B25FF342B25FF342B25FF342B25FF342B + 25FF342B25FF342B25FF342B25FF342B25FF342B25FF342B25FF342B25FF342B + 25FF342B25FF342B25FF342B25FF342B25FF342B25FF342B25FF342B25FF342B + 25FF342B25FF342B25FF342B25FF342B25FF342B25FF342B25FF342B25FF342B + 25FF342B25FF342B25FF342B25FF342B25FF342B25FF342B25FF342B25FF342B + 25FF342B25FF342B25FF342B25FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF352D26FF352D26FF352D26FF352D26FF352D + 26FF352D26FF352D26FF352D26FF352D26FF58514BFFD5D3D1FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFECECEBFF75706BFF352D26FF352D26FF352D26FF352D + 26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D + 26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D + 26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D + 26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D + 26FF352D26FF352D26FF352D26FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF372F28FF372F28FF372F28FF372F28FF372F + 28FF372F28FF372F28FF372F28FF372F28FF372F28FF383029FF8D8985FFF8F7 + F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0BDBBFF4A423CFF372F28FF372F + 28FF372F28FF372F28FF372F28FF372F28FF372F28FF372F28FF372F28FF372F + 28FF372F28FF372F28FF372F28FF372F28FF372F28FF372F28FF372F28FF372F + 28FF372F28FF372F28FF372F28FF372F28FF372F28FF372F28FF372F28FF372F + 28FF372F28FF372F28FF372F28FF372F28FF372F28FF372F28FF372F28FF372F + 28FF372F28FF372F28FF372F28FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF393029FF393029FF393029FF393029FF3930 + 29FF393029FF393029FF393029FF393029FF393029FF393029FF393029FF4F47 + 41FFC7C4C2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F4F4FF7E7874FF3930 + 29FF393029FF393029FF393029FF393029FF393029FF393029FF393029FF3930 + 29FF393029FF393029FF393029FF393029FF393029FF393029FF393029FF3930 + 29FF393029FF393029FF393029FF393029FF393029FF393029FF393029FF3930 + 29FF393029FF393029FF393029FF393029FF393029FF393029FF393029FF3930 + 29FF393029FF393029FF393029FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF3B322AFF3B322AFF3B322AFF3B322AFF3B32 + 2AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B32 + 2AFF3B322AFF817B76FFF0EFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFF554D + 46FF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B32 + 2AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B32 + 2AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B32 + 2AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B322AFF3B32 + 2AFF3B322AFF3B322AFF3B322AFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF3D332BFF3D332BFF3D332BFF3D332BFF3D33 + 2BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D33 + 2BFF3D332BFF817A75FFF0EFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFF574E + 47FF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D33 + 2BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D33 + 2BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D33 + 2BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D33 + 2BFF3D332BFF3D332BFF3D332BFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF3F352DFF3F352DFF3F352DFF3F352DFF3F35 + 2DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF554C + 45FFC7C4C1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F4F4FF827B76FF3F35 + 2DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F35 + 2DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F35 + 2DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F35 + 2DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F352DFF3F35 + 2DFF3F352DFF3F352DFF3F352DFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF40362EFF40362EFF40362EFF40362EFF4036 + 2EFF40362EFF40362EFF40362EFF40362EFF40362EFF41372FFF918B87FFF6F6 + F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3BFBDFF544B44FF40362EFF4036 + 2EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF4036 + 2EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF4036 + 2EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF4036 + 2EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF4036 + 2EFF40362EFF40362EFF40362EFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF42382FFF42382FFF42382FFF42382FFF4238 + 2FFF42382FFF42382FFF42382FFF42382FFF625A53FFD6D4D2FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFEEEDECFF807973FF42382FFF42382FFF42382FFF4238 + 2FFF42382FFF42382FFF42382FFF42382FFF42382FFF42382FFF42382FFF4238 + 2FFF42382FFF42382FFF42382FFF42382FFF42382FFF42382FFF42382FFF4238 + 2FFF42382FFF42382FFF42382FFF42382FFF42382FFF42382FFF42382FFF4238 + 2FFF42382FFF42382FFF42382FFF42382FFF42382FFF42382FFF42382FFF4238 + 2FFF42382FFF42382FFF42382FFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF443931FF443931FF443931FF443931FF4439 + 31FF443931FF443931FF483D36FFA49F9BFFFBFBFBFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFB7B2AFFF50453EFF443931FF443931FF443931FF443931FF4439 + 31FF443931FF443931FF443931FF443931FF443931FF443931FF443931FF4439 + 31FF443931FF443931FF443931FF443931FF443931FF443931FF443931FF4439 + 31FF443931FF443931FF443931FF443931FF443931FF443931FF443931FF4439 + 31FF443931FF443931FF443931FF443931FF443931FF443931FF443931FF4439 + 31FF443931FF443931FF443931FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF463B32FF463B32FF463B32FF463B32FF463B + 32FF463B32FF706761FFE2E0DEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6E4 + E3FF756D66FF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B + 32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B + 32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B + 32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B + 32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B + 32FF463B32FF463B32FF463B32FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF483C33FF483C33FF483C33FF483C33FF5246 + 3EFFB2ADA9FFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFDFCFCFFA9A39FFF4E42 + 39FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C + 33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C + 33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C + 33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C + 33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C + 33FF483C33FF483C33FF483C33FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF4A3E35FF4A3E35FF4A3E35FF4A3E35FFDAD7 + D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDAD8D6FF6C625BFF4A3E35FF4A3E + 35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E + 35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E + 35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E + 35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E + 35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E + 35FF4A3E35FF4A3E35FF4A3E35FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF4B3F36FF4B3F36FF4B3F36FF50453CFFFEFE + FEFFFFFFFFFFFFFFFFFFF8F8F8FF9D9691FF4E4239FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF4B3F36FF4B3F36FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF4D4137FF4D4137FF4D4137FF4D4137FFA7A1 + 9CFFFBFBFBFFCBC7C4FF645951FF4D4137FF4D4137FF4D4137FF4D4137FF4D41 + 37FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D41 + 37FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D41 + 37FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D41 + 37FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D41 + 37FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D4137FF4D41 + 37FF4D4137FF4D4137FF4D4137FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF4F4239FF4F4239FF4F4239FF4F4239FF4F42 + 39FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F42 + 39FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F42 + 39FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F42 + 39FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F42 + 39FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F42 + 39FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F42 + 39FF4F4239FF4F4239FF4F4239FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF51443AFF51443AFF51443AFF51443AFF5144 + 3AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF5144 + 3AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF5144 + 3AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF5144 + 3AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF5144 + 3AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF5144 + 3AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF5144 + 3AFF51443AFF51443AFF51443AFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF53453BFF53453BFF53453BFF53453BFF5345 + 3BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF5345 + 3BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF5345 + 3BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF5345 + 3BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF5345 + 3BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF5345 + 3BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF5345 + 3BFF53453BFF53453BFF53453BFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF55473CFF55473CFF55473CFF55473CFF5547 + 3CFF55473CFF55473CFF55473CFF55473CFF55473CFF55473CFF55473CFF5547 + 3CFF55473CFF55473CFF55473CFF55473CFF55473CFF55473CFF55473CFF5547 + 3CFF55473CFF55473CFF55473CFF55473CFF55473CFF55473CFF55473CFF5547 + 3CFF55473CFF55473CFF55473CFF55473CFF55473CFF55473CFF55473CFF5547 + 3CFF55473CFF55473CFF55473CFF55473CFF55473CFF55473CFF55473CFF5547 + 3CFF55473CFF55473CFF55473CFF55473CFF55473CFF55473CFF55473CFF5547 + 3CFF55473CFF55473CFF55473CFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF56483EFF56483EFF56483EFF56483EFF5648 + 3EFF56483EFF56483EFF56483EFF56483EFF56483EFF56483EFF56483EFF5648 + 3EFF56483EFF56483EFF56483EFF56483EFF56483EFF56483EFF56483EFF5648 + 3EFF56483EFF56483EFF56483EFF56483EFF56483EFF56483EFF56483EFF5648 + 3EFF56483EFF56483EFF56483EFF56483EFF56483EFF56483EFF56483EFF5648 + 3EFF56483EFF56483EFF56483EFF56483EFF56483EFF56483EFF56483EFF5648 + 3EFF56483EFF56483EFF56483EFF56483EFF56483EFF56483EFF56483EFF5648 + 3EFF56483EFF56483EFF56483EFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF584A3FFF584A3FFF584A3FFF584A3FFF584A + 3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A + 3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A + 3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A + 3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A + 3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A + 3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A + 3FFF584A3FFF584A3FFF584A3FFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF5A4B40FF5A4B40FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D + 42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D + 42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D + 42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D + 42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D + 42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D + 42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D42FF5C4D + 42FF5C4D42FF5C4D42FF5C4D42FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E + 43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E + 43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E + 43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E + 43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E + 43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E + 43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E + 43FF5E4E43FF5E4E43FF5E4E43FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF605044FF605044FF605044FF605044FF6050 + 44FF605044FF605044FF605044FF605044FF605044FF605044FF605044FF6050 + 44FF605044FF605044FF605044FF605044FF605044FF605044FF605044FF6050 + 44FF605044FF605044FF605044FF605044FF605044FF605044FF605044FF6050 + 44FF605044FF605044FF605044FF605044FF605044FF605044FF605044FF6050 + 44FF605044FF605044FF605044FF605044FF605044FF605044FF605044FF6050 + 44FF605044FF605044FF605044FF605044FF605044FF605044FF605044FF6050 + 44FF605044FF605044FF605044FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF615146FF615146FF615146FF615146FF6151 + 46FF615146FF615146FF615146FF615146FF615146FF615146FF615146FF6151 + 46FF615146FF615146FF615146FF615146FF615146FF615146FF615146FF6151 + 46FF615146FF615146FF615146FF615146FF615146FF615146FF615146FF6151 + 46FF615146FF615146FF615146FF615146FF615146FF615146FF615146FF6151 + 46FF615146FF615146FF615146FF615146FF615146FF615146FF615146FF6151 + 46FF615146FF615146FF615146FF615146FF615146FF615146FF615146FF6151 + 46FF615146FF615146FF615146FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF655448FF655448FF655448FF655448FF6554 + 48FF655448FF655448FF655448FF655448FF655448FF655448FF655448FF6554 + 48FF655448FF655448FF655448FF655448FF655448FF655448FF655448FF6554 + 48FF655448FF655448FF655448FF655448FF655448FF655448FF655448FF6554 + 48FF655448FF655448FF655448FF655448FF655448FF655448FF655448FF6554 + 48FF655448FF655448FF655448FF655448FF655448FF655448FF655448FF6554 + 48FF655448FF655448FF655448FF655448FF655448FF655448FF655448FF6554 + 48FF655448FF655448FF655448FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF67564AFF67564AFF67564AFF67564AFF6756 + 4AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF6756 + 4AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF6756 + 4AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF6756 + 4AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF6756 + 4AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF6756 + 4AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF6756 + 4AFF67564AFF67564AFF67564AFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF69584BFF69584BFF69584BFF69584BFF6958 + 4BFF69584BFF69584BFF69584BFF69584BFF69584BFF69584BFF69584BFF6958 + 4BFF69584BFF69584BFF69584BFF69584BFF69584BFF69584BFF69584BFF6958 + 4BFF69584BFF69584BFF69584BFF69584BFF69584BFF69584BFF69584BFF6958 + 4BFF69584BFF69584BFF69584BFF69584BFF69584BFF69584BFF69584BFF6958 + 4BFF69584BFF69584BFF69584BFF69584BFF69584BFF69584BFF69584BFF6958 + 4BFF69584BFF69584BFF69584BFF69584BFF69584BFF69584BFF69584BFF6958 + 4BFF69584BFF69584BFF69584BFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF6B594CFF6B594CFF6B594CFF6B594CFF6B59 + 4CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B59 + 4CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B59 + 4CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B59 + 4CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B59 + 4CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B59 + 4CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B59 + 4CFF6B594CFF6B594CFF6B594CFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B + 4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B + 4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B + 4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B + 4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B + 4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B + 4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B4DFF6C5B + 4DFF6C5B4DFF6C5B4DFF6C5B4DFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C + 4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C + 4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C + 4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C + 4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C + 4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C + 4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C4FFF6E5C + 4FFF6E5C4FFF6E5C4FFF6E5C4FFF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF705E50FF705E50FF705E50FF705E50FF705E + 50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E + 50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E + 50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E + 50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E + 50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E + 50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E + 50FF705E50FF705E50FF705E50FF27211CFF0000000000000000000000000000 + 0000000000000000000027211CFF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF27211CFF0000000000000000000000000000 + 00000000000000000000AF5D20FFBA6527FFBA6527FFBA6527FFBA6527FFBA65 + 27FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA65 + 27FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA65 + 27FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA65 + 27FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA65 + 27FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA65 + 27FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA6527FFBA65 + 27FFBA6527FFBA6527FFBA6527FFAF5D20FF0000000000000000000000000000 + 00000000000000000000AF5D20FFD07735FFD07735FFD07735FFD07735FFD077 + 35FFD07735FFD07735FFD07735FFD07735FFD07735FFD07735FFD07735FFD077 + 35FFD07735FFD07735FFD07735FFD07735FFD07735FFD07735FFD07735FFD077 + 35FFD07735FFD07735FFD07735FFD07735FFD07735FFD07735FFD07735FFD077 + 35FFD07735FFD07735FFD07735FFD07735FFD07735FFD07735FFD07735FFD077 + 35FFD07735FFD07735FFD07735FFD07735FFD07735FFD07735FFD07735FFD077 + 35FFD07735FFD07735FFD07735FFD07735FFD07735FFD07735FFD07735FFD077 + 35FFD07735FFD07735FFD07735FFAF5D20FF0000000000000000000000000000 + 00000000000000000000AF5D20FFE68843FFE68843FFE68843FFE68843FFE688 + 43FFE68843FFE68843FFE68843FFE68843FFE68843FFE68843FFE68843FFE688 + 43FFE68843FFE68843FFE68843FFE68843FFE68843FFE68843FFE68843FFE688 + 43FFE68843FFE68843FFE68843FFE68843FFE68843FFE68843FFE68843FFE688 + 43FFE68843FFE68843FFE68843FFE68843FFE68843FFE68843FFE68843FFE688 + 43FFE68843FFE68843FFE68843FFE68843FFE68843FFE68843FFE68843FFE688 + 43FFE68843FFE68843FFE68843FFE68843FFE68843FFE68843FFE68843FFE688 + 43FFE68843FFE68843FFE68843FFAF5D20FF0000000000000000000000000000 + 00000000000000000000AF5D20FFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA3 + 6AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA3 + 6AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA3 + 6AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA3 + 6AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA3 + 6AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA3 + 6AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA36AFFEFA3 + 6AFFEFA36AFFEFA36AFFEFA36AFFAF5D20FF0000000000000000000000000000 + 00000000000000000000AF5D20FFF4C099FFF4C099FFF4C099FFF4C099FFF4C0 + 99FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C0 + 99FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C0 + 99FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C0 + 99FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C0 + 99FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C0 + 99FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C099FFF4C0 + 99FFF4C099FFF4C099FFF4C099FFAF5D20FF0000000000000000000000000000 + 00000000000000000000AF5D1FC5AF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D1FC50000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE000000000000007E000 + 000000000007E000000000000007E000000000000007E000000000000007E000 + 000000000007E000000000000007E000000000000007E000000000000007E000 + 000000000007E000000000000007E000000000000007E000000000000007E000 + 000000000007E000000000000007E000000000000007E000000000000007E000 + 000000000007E000000000000007E000000000000007E000000000000007E000 + 000000000007E000000000000007E000000000000007E000000000000007E000 + 000000000007E000000000000007E000000000000007E000000000000007E000 + 000000000007E000000000000007E000000000000007E000000000000007E000 + 000000000007E000000000000007E000000000000007E000000000000007E000 + 000000000007E000000000000007E000000000000007E000000000000007E000 + 000000000007E000000000000007E000000000000007E000000000000007E000 + 000000000007E000000000000007E000000000000007E000000000000007E000 + 000000000007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2800 + 0000300000006000000001002000000000008025000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000027211CA427211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CA40000 + 000000000000000000000000000027211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF0000 + 000000000000000000000000000027211CFF28211CFF28211CFF28211CFF2821 + 1CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF2821 + 1CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF2821 + 1CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF2821 + 1CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF2821 + 1CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF27211CFF0000 + 000000000000000000000000000027211CFF2A241EFF2A241EFF2A241EFFA7A5 + A2FFF5F5F5FF969390FF2F2923FF2A241EFF2A241EFF2A241EFF2A241EFF2A24 + 1EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A24 + 1EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A24 + 1EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A24 + 1EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF2A241EFF27211CFF0000 + 000000000000000000000000000027211CFF2D2620FF2D2620FF2D2620FFF6F5 + F5FFFFFFFFFFFFFFFFFFDBDAD9FF5D5753FF2D2620FF2D2620FF2D2620FF2D26 + 20FF2D2620FF2D2620FF2D2620FF2D2620FF2D2620FF2D2620FF2D2620FF2D26 + 20FF2D2620FF2D2620FF2D2620FF2D2620FF2D2620FF2D2620FF2D2620FF2D26 + 20FF2D2620FF2D2620FF2D2620FF2D2620FF2D2620FF2D2620FF2D2620FF2D26 + 20FF2D2620FF2D2620FF2D2620FF2D2620FF2D2620FF2D2620FF27211CFF0000 + 000000000000000000000000000027211CFF2F2822FF2F2822FF2F2822FF7470 + 6CFFF2F2F2FFFFFFFFFFFFFFFFFFFEFEFEFFA7A4A2FF3A342EFF2F2822FF2F28 + 22FF2F2822FF2F2822FF2F2822FF2F2822FF2F2822FF2F2822FF2F2822FF2F28 + 22FF2F2822FF2F2822FF2F2822FF2F2822FF2F2822FF2F2822FF2F2822FF2F28 + 22FF2F2822FF2F2822FF2F2822FF2F2822FF2F2822FF2F2822FF2F2822FF2F28 + 22FF2F2822FF2F2822FF2F2822FF2F2822FF2F2822FF2F2822FF27211CFF0000 + 000000000000000000000000000027211CFF312A23FF312A23FF312A23FF312A + 23FF433C36FFBCBAB8FFFFFFFFFFFFFFFFFFFFFFFFFFE8E7E6FF716C67FF312A + 23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A + 23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A + 23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A + 23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A23FF27211CFF0000 + 000000000000000000000000000027211CFF342C25FF342C25FF342C25FF342C + 25FF342C25FF342C25FF736D68FFE8E7E7FFFFFFFFFFFFFFFFFFFFFFFFFFBCB9 + B7FF443C36FF342C25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C + 25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C + 25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C + 25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C25FF27211CFF0000 + 000000000000000000000000000027211CFF362E27FF362E27FF362E27FF362E + 27FF362E27FF362E27FF362E27FF413933FFACA8A5FFFEFEFEFFFFFFFFFFFFFF + FFFFF3F2F2FF817C77FF362E27FF362E27FF362E27FF362E27FF362E27FF362E + 27FF362E27FF362E27FF362E27FF362E27FF362E27FF362E27FF362E27FF362E + 27FF362E27FF362E27FF362E27FF362E27FF362E27FF362E27FF362E27FF362E + 27FF362E27FF362E27FF362E27FF362E27FF362E27FF362E27FF27211CFF0000 + 000000000000000000000000000027211CFF393029FF393029FF393029FF3930 + 29FF393029FF393029FF393029FF393029FF393029FF665F5AFFE0DEDDFFFFFF + FFFFFFFFFFFFFFFFFFFFCBC9C7FF524B44FF393029FF393029FF393029FF3930 + 29FF393029FF393029FF393029FF393029FF393029FF393029FF393029FF3930 + 29FF393029FF393029FF393029FF393029FF393029FF393029FF393029FF3930 + 29FF393029FF393029FF393029FF393029FF393029FF393029FF27211CFF0000 + 000000000000000000000000000027211CFF3C322BFF3C322BFF3C322BFF3C32 + 2BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF403730FFA09B + 98FFFBFBFAFFFFFFFFFFFFFFFFFFECEBEAFF3D332CFF3C322BFF3C322BFF3C32 + 2BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF3C32 + 2BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF3C32 + 2BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF27211CFF0000 + 000000000000000000000000000027211CFF3E342CFF3E342CFF3E342CFF3E34 + 2CFF3E342CFF3E342CFF3E342CFF3E342CFF3E342CFF3E342CFF423831FFA19C + 98FFFBFBFBFFFFFFFFFFFFFFFFFFECEBEAFF3F352DFF3E342CFF3E342CFF3E34 + 2CFF3E342CFF3E342CFF3E342CFF3E342CFF3E342CFF3E342CFF3E342CFF3E34 + 2CFF3E342CFF3E342CFF3E342CFF3E342CFF3E342CFF3E342CFF3E342CFF3E34 + 2CFF3E342CFF3E342CFF3E342CFF3E342CFF3E342CFF3E342CFF27211CFF0000 + 000000000000000000000000000027211CFF40362EFF40362EFF40362EFF4036 + 2EFF40362EFF40362EFF40362EFF40362EFF40362EFF6B645DFFE1DFDEFFFFFF + FFFFFFFFFFFFFFFFFFFFCDCAC8FF595049FF40362EFF40362EFF40362EFF4036 + 2EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF4036 + 2EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF4036 + 2EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF27211CFF0000 + 000000000000000000000000000027211CFF433830FF433830FF433830FF4338 + 30FF433830FF433830FF433830FF4D433BFFB1ACA9FFFEFEFEFFFFFFFFFFFFFF + FFFFF4F3F2FF89827DFF433830FF433830FF433830FF433830FF433830FF4338 + 30FF433830FF433830FF433830FF433830FF433830FF433830FF433830FF4338 + 30FF433830FF433830FF433830FF433830FF433830FF433830FF433830FF4338 + 30FF433830FF433830FF433830FF433830FF433830FF433830FF27211CFF0000 + 000000000000000000000000000027211CFF453A32FF453A32FF453A32FF453A + 32FF453A32FF453A32FF7F7771FFEAE9E8FFFFFFFFFFFFFFFFFFFFFFFFFFC1BE + BBFF554B43FF453A32FF453A32FF453A32FF453A32FF453A32FF453A32FF453A + 32FF453A32FF453A32FF453A32FF453A32FF453A32FF453A32FF453A32FF453A + 32FF453A32FF453A32FF453A32FF453A32FF453A32FF453A32FF453A32FF453A + 32FF453A32FF453A32FF453A32FF453A32FF453A32FF453A32FF27211CFF0000 + 000000000000000000000000000027211CFF483C33FF483C33FF483C33FF483C + 33FF584D44FFC2BEBBFFFFFFFFFFFFFFFFFFFFFFFFFFEBE9E8FF817872FF483C + 33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C + 33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C + 33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C + 33FF483C33FF483C33FF483C33FF483C33FF483C33FF483C33FF27211CFF0000 + 000000000000000000000000000027211CFF4A3E35FF4A3E35FF4A3E35FF857D + 77FFF4F3F3FFFFFFFFFFFFFFFFFFFEFEFEFFB3ADAAFF544840FF4A3E35FF4A3E + 35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E + 35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E + 35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E + 35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF4A3E35FF27211CFF0000 + 000000000000000000000000000027211CFF4D4037FF4D4037FF4D4037FFF7F6 + F6FFFFFFFFFFFFFFFFFFE3E1DFFF756B64FF4D4037FF4D4037FF4D4037FF4D40 + 37FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D40 + 37FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D40 + 37FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D40 + 37FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF27211CFF0000 + 000000000000000000000000000027211CFF4F4239FF4F4239FF4F4239FFB8B3 + AFFFF9F8F8FFA8A29DFF53463DFF4F4239FF4F4239FF4F4239FF4F4239FF4F42 + 39FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F42 + 39FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F42 + 39FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F42 + 39FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF4F4239FF27211CFF0000 + 000000000000000000000000000027211CFF52443AFF52443AFF52443AFF5244 + 3AFF52443AFF52443AFF52443AFF52443AFF52443AFF52443AFF52443AFF5244 + 3AFF52443AFF52443AFF52443AFF52443AFF52443AFF52443AFF52443AFF5244 + 3AFF52443AFF52443AFF52443AFF52443AFF52443AFF52443AFF52443AFF5244 + 3AFF52443AFF52443AFF52443AFF52443AFF52443AFF52443AFF52443AFF5244 + 3AFF52443AFF52443AFF52443AFF52443AFF52443AFF52443AFF27211CFF0000 + 000000000000000000000000000027211CFF54463CFF54463CFF54463CFF5446 + 3CFF54463CFF54463CFF54463CFF54463CFF54463CFF54463CFF54463CFF5446 + 3CFF54463CFF54463CFF54463CFF54463CFF54463CFF54463CFF54463CFF5446 + 3CFF54463CFF54463CFF54463CFF54463CFF54463CFF54463CFF54463CFF5446 + 3CFF54463CFF54463CFF54463CFF54463CFF54463CFF54463CFF54463CFF5446 + 3CFF54463CFF54463CFF54463CFF54463CFF54463CFF54463CFF27211CFF0000 + 000000000000000000000000000027211CFF57493EFF57493EFF57493EFF5749 + 3EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF5749 + 3EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF5749 + 3EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF5749 + 3EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF5749 + 3EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF27211CFF0000 + 000000000000000000000000000027211CFF594B40FF594B40FF594B40FF594B + 40FF594B40FF594B40FF594B40FF594B40FF594B40FF594B40FF594B40FF594B + 40FF594B40FF594B40FF594B40FF594B40FF594B40FF594B40FF594B40FF594B + 40FF594B40FF594B40FF594B40FF594B40FF594B40FF594B40FF594B40FF594B + 40FF594B40FF594B40FF594B40FF594B40FF594B40FF594B40FF594B40FF594B + 40FF594B40FF594B40FF594B40FF594B40FF594B40FF594B40FF27211CFF0000 + 000000000000000000000000000027211CFF5B4C41FF5B4C41FF5B4C41FF5B4C + 41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C + 41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C + 41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C + 41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C + 41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF27211CFF0000 + 000000000000000000000000000027211CFF5E4E43FF5E4E43FF5E4E43FF5E4E + 43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E + 43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E + 43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E + 43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E + 43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF5E4E43FF27211CFF0000 + 000000000000000000000000000027211CFF615145FF615145FF615145FF6151 + 45FF615145FF615145FF615145FF615145FF615145FF615145FF615145FF6151 + 45FF615145FF615145FF615145FF615145FF615145FF615145FF615145FF6151 + 45FF615145FF615145FF615145FF615145FF615145FF615145FF615145FF6151 + 45FF615145FF615145FF615145FF615145FF615145FF615145FF615145FF6151 + 45FF615145FF615145FF615145FF615145FF615145FF615145FF27211CFF0000 + 000000000000000000000000000027211CFF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF27211CFF0000 + 000000000000000000000000000027211CFF655548FF655548FF655548FF6555 + 48FF655548FF655548FF655548FF655548FF655548FF655548FF655548FF6555 + 48FF655548FF655548FF655548FF655548FF655548FF655548FF655548FF6555 + 48FF655548FF655548FF655548FF655548FF655548FF655548FF655548FF6555 + 48FF655548FF655548FF655548FF655548FF655548FF655548FF655548FF6555 + 48FF655548FF655548FF655548FF655548FF655548FF655548FF27211CFF0000 + 000000000000000000000000000027211CFF68574AFF68574AFF68574AFF6857 + 4AFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF6857 + 4AFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF6857 + 4AFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF6857 + 4AFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF6857 + 4AFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF27211CFF0000 + 000000000000000000000000000027211CFF6A594CFF6A594CFF6A594CFF6A59 + 4CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF6A59 + 4CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF6A59 + 4CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF6A59 + 4CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF6A59 + 4CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF6A594CFF27211CFF0000 + 000000000000000000000000000027211CFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B + 4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B + 4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B + 4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B + 4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B + 4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF6D5B4EFF27211CFF0000 + 000000000000000000000000000027211CFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D + 4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D + 4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D + 4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D + 4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D + 4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF27211CFF0000 + 000000000000000000000000000027211CFF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF27211CFF0000 + 0000000000000000000000000000AF5D20FFBD6729FFBD6729FFBD6729FFBD67 + 29FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD67 + 29FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD67 + 29FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD67 + 29FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD67 + 29FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFAF5D20FF0000 + 0000000000000000000000000000AF5D20FFD87D3BFFD87D3BFFD87D3BFFD87D + 3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D + 3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D + 3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D + 3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D + 3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFAF5D20FF0000 + 0000000000000000000000000000AF5D20FFEE9859FFEE9859FFEE9859FFEE98 + 59FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFEE98 + 59FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFEE98 + 59FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFEE98 + 59FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFEE98 + 59FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFEE9859FFAF5D20FF0000 + 0000000000000000000000000000AF5D20FFF4BC94FFF4BC94FFF4BC94FFF4BC + 94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC + 94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC + 94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC + 94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC + 94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFF4BC94FFAF5D20FF0000 + 0000000000000000000000000000AE5D1FA4AF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAE5D1FA40000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFF + FFFFFFFF0000FFFFFFFFFFFF0000C000000000030000C000000000030000C000 + 000000030000C000000000030000C000000000030000C000000000030000C000 + 000000030000C000000000030000C000000000030000C000000000030000C000 + 000000030000C000000000030000C000000000030000C000000000030000C000 + 000000030000C000000000030000C000000000030000C000000000030000C000 + 000000030000C000000000030000C000000000030000C000000000030000C000 + 000000030000C000000000030000C000000000030000C000000000030000C000 + 000000030000C000000000030000C000000000030000C000000000030000C000 + 000000030000C000000000030000C000000000030000C000000000030000C000 + 000000030000C000000000030000C000000000030000C000000000030000FFFF + FFFFFFFF0000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFF + FFFFFFFF00002800000028000000500000000100200000000000401A00000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000027211CA427211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CA4000000000000000027211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF000000000000000027211CFF28221DFF28221DFF2822 + 1DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF2822 + 1DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF2822 + 1DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF2822 + 1DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF28221DFF2822 + 1DFF28221DFF27211CFF000000000000000027211CFF2B241FFF2B241FFF2B24 + 1FFFCFCDCCFFD9D8D7FF5E5854FF2B241FFF2B241FFF2B241FFF2B241FFF2B24 + 1FFF2B241FFF2B241FFF2B241FFF2B241FFF2B241FFF2B241FFF2B241FFF2B24 + 1FFF2B241FFF2B241FFF2B241FFF2B241FFF2B241FFF2B241FFF2B241FFF2B24 + 1FFF2B241FFF2B241FFF2B241FFF2B241FFF2B241FFF2B241FFF2B241FFF2B24 + 1FFF2B241FFF27211CFF000000000000000027211CFF2E2721FF2E2721FF2E27 + 21FFD4D2D1FFFFFFFFFFFEFEFEFFA8A5A3FF39332DFF2E2721FF2E2721FF2E27 + 21FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E27 + 21FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E27 + 21FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E2721FF2E27 + 21FF2E2721FF27211CFF000000000000000027211CFF312923FF312923FF3129 + 23FF362E28FF9B9794FFFBFAFAFFFFFFFFFFE8E7E6FF716B67FF312923FF3129 + 23FF312923FF312923FF312923FF312923FF312923FF312923FF312923FF3129 + 23FF312923FF312923FF312923FF312923FF312923FF312923FF312923FF3129 + 23FF312923FF312923FF312923FF312923FF312923FF312923FF312923FF3129 + 23FF312923FF27211CFF000000000000000027211CFF342C25FF342C25FF342C + 25FF342C25FF342C25FF57504AFFD3D1CFFFFFFFFFFFFFFFFFFFBDBBB8FF4740 + 39FF342C25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C + 25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C + 25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C25FF342C + 25FF342C25FF27211CFF000000000000000027211CFF372E27FF372E27FF372E + 27FF372E27FF372E27FF372E27FF382F28FF8D8884FFF6F6F5FFFFFFFFFFF3F2 + F2FF837D79FF372E27FF372E27FF372E27FF372E27FF372E27FF372E27FF372E + 27FF372E27FF372E27FF372E27FF372E27FF372E27FF372E27FF372E27FF372E + 27FF372E27FF372E27FF372E27FF372E27FF372E27FF372E27FF372E27FF372E + 27FF372E27FF27211CFF000000000000000027211CFF3A3129FF3A3129FF3A31 + 29FF3A3129FF3A3129FF3A3129FF3A3129FF3A3129FF504841FFC5C3C0FFFFFF + FFFFFFFFFFFFAEAAA7FF3A3129FF3A3129FF3A3129FF3A3129FF3A3129FF3A31 + 29FF3A3129FF3A3129FF3A3129FF3A3129FF3A3129FF3A3129FF3A3129FF3A31 + 29FF3A3129FF3A3129FF3A3129FF3A3129FF3A3129FF3A3129FF3A3129FF3A31 + 29FF3A3129FF27211CFF000000000000000027211CFF3D332BFF3D332BFF3D33 + 2BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF534A43FFC8C5C3FFFFFF + FFFFFFFFFFFFAFABA8FF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D33 + 2BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D33 + 2BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D332BFF3D33 + 2BFF3D332BFF27211CFF000000000000000027211CFF40362EFF40362EFF4036 + 2EFF40362EFF40362EFF40362EFF41372FFF928D88FFF6F6F6FFFFFFFFFFF3F3 + F2FF87817CFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF4036 + 2EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF4036 + 2EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF40362EFF4036 + 2EFF40362EFF27211CFF000000000000000027211CFF433830FF433830FF4338 + 30FF433830FF433830FF635A54FFD6D4D2FFFFFFFFFFFFFFFFFFC2BEBCFF5349 + 42FF433830FF433830FF433830FF433830FF433830FF433830FF433830FF4338 + 30FF433830FF433830FF433830FF433830FF433830FF433830FF433830FF4338 + 30FF433830FF433830FF433830FF433830FF433830FF433830FF433830FF4338 + 30FF433830FF27211CFF000000000000000027211CFF463A32FF463A32FF463A + 32FF4A3E37FFA59F9BFFFBFBFBFFFFFFFFFFEAE9E8FF7F7771FF463A32FF463A + 32FF463A32FF463A32FF463A32FF463A32FF463A32FF463A32FF463A32FF463A + 32FF463A32FF463A32FF463A32FF463A32FF463A32FF463A32FF463A32FF463A + 32FF463A32FF463A32FF463A32FF463A32FF463A32FF463A32FF463A32FF463A + 32FF463A32FF27211CFF000000000000000027211CFF493D34FF493D34FF493D + 34FFDAD7D5FFFFFFFFFFFEFEFEFFB4AFABFF53473FFF493D34FF493D34FF493D + 34FF493D34FF493D34FF493D34FF493D34FF493D34FF493D34FF493D34FF493D + 34FF493D34FF493D34FF493D34FF493D34FF493D34FF493D34FF493D34FF493D + 34FF493D34FF493D34FF493D34FF493D34FF493D34FF493D34FF493D34FF493D + 34FF493D34FF27211CFF000000000000000027211CFF4B3F36FF4B3F36FF4B3F + 36FFD6D4D2FFDFDDDBFF766D66FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF27211CFF000000000000000027211CFF4E4238FF4E4238FF4E42 + 38FF4E4238FF4E4238FF4E4238FF4E4238FF4E4238FF4E4238FF4E4238FF4E42 + 38FF4E4238FF4E4238FF4E4238FF4E4238FF4E4238FF4E4238FF4E4238FF4E42 + 38FF4E4238FF4E4238FF4E4238FF4E4238FF4E4238FF4E4238FF4E4238FF4E42 + 38FF4E4238FF4E4238FF4E4238FF4E4238FF4E4238FF4E4238FF4E4238FF4E42 + 38FF4E4238FF27211CFF000000000000000027211CFF51443AFF51443AFF5144 + 3AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF5144 + 3AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF5144 + 3AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF5144 + 3AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF5144 + 3AFF51443AFF27211CFF000000000000000027211CFF54473CFF54473CFF5447 + 3CFF54473CFF54473CFF54473CFF54473CFF54473CFF54473CFF54473CFF5447 + 3CFF54473CFF54473CFF54473CFF54473CFF54473CFF54473CFF54473CFF5447 + 3CFF54473CFF54473CFF54473CFF54473CFF54473CFF54473CFF54473CFF5447 + 3CFF54473CFF54473CFF54473CFF54473CFF54473CFF54473CFF54473CFF5447 + 3CFF54473CFF27211CFF000000000000000027211CFF57493EFF57493EFF5749 + 3EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF5749 + 3EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF5749 + 3EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF5749 + 3EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF57493EFF5749 + 3EFF57493EFF27211CFF000000000000000027211CFF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF27211CFF000000000000000027211CFF5D4E42FF5D4E42FF5D4E + 42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E + 42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E + 42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E + 42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E42FF5D4E + 42FF5D4E42FF27211CFF000000000000000027211CFF605044FF605044FF6050 + 44FF605044FF605044FF605044FF605044FF605044FF605044FF605044FF6050 + 44FF605044FF605044FF605044FF605044FF605044FF605044FF605044FF6050 + 44FF605044FF605044FF605044FF605044FF605044FF605044FF605044FF6050 + 44FF605044FF605044FF605044FF605044FF605044FF605044FF605044FF6050 + 44FF605044FF27211CFF000000000000000027211CFF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF635347FF635347FF635347FF635347FF635347FF635347FF6353 + 47FF635347FF27211CFF000000000000000027211CFF665549FF665549FF6655 + 49FF665549FF665549FF665549FF665549FF665549FF665549FF665549FF6655 + 49FF665549FF665549FF665549FF665549FF665549FF665549FF665549FF6655 + 49FF665549FF665549FF665549FF665549FF665549FF665549FF665549FF6655 + 49FF665549FF665549FF665549FF665549FF665549FF665549FF665549FF6655 + 49FF665549FF27211CFF000000000000000027211CFF69574BFF69574BFF6957 + 4BFF69574BFF69574BFF69574BFF69574BFF69574BFF69574BFF69574BFF6957 + 4BFF69574BFF69574BFF69574BFF69574BFF69574BFF69574BFF69574BFF6957 + 4BFF69574BFF69574BFF69574BFF69574BFF69574BFF69574BFF69574BFF6957 + 4BFF69574BFF69574BFF69574BFF69574BFF69574BFF69574BFF69574BFF6957 + 4BFF69574BFF27211CFF000000000000000027211CFF6C5A4DFF6C5A4DFF6C5A + 4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A + 4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A + 4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A + 4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A4DFF6C5A + 4DFF6C5A4DFF27211CFF000000000000000027211CFF6F5C4FFF6F5C4FFF6F5C + 4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C + 4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C + 4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C + 4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C4FFF6F5C + 4FFF6F5C4FFF27211CFF000000000000000027211CFF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F51FF725F + 51FF725F51FF27211CFF0000000000000000AF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FF0000000000000000AF5D20FFBD6729FFBD6729FFBD67 + 29FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD67 + 29FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD67 + 29FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD67 + 29FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD6729FFBD67 + 29FFBD6729FFAF5D20FF0000000000000000AF5D20FFD87D3BFFD87D3BFFD87D + 3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D + 3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D + 3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D + 3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D3BFFD87D + 3BFFD87D3BFFAF5D20FF0000000000000000AE5D1FA4AF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAE5D1FA400000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFFF000000FFFFFFFFFF000000FFFF + FFFFFF000000FFFFFFFFFF000000800000000100000080000000010000008000 + 0000010000008000000001000000800000000100000080000000010000008000 + 0000010000008000000001000000800000000100000080000000010000008000 + 0000010000008000000001000000800000000100000080000000010000008000 + 0000010000008000000001000000800000000100000080000000010000008000 + 0000010000008000000001000000800000000100000080000000010000008000 + 0000010000008000000001000000800000000100000080000000010000008000 + 0000010000008000000001000000800000000100000080000000010000008000 + 0000010000008000000001000000FFFFFFFFFF000000FFFFFFFFFF000000FFFF + FFFFFF000000FFFFFFFFFF000000280000002000000040000000010020000000 + 0000801000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000001414140D2116 + 1617211616172116161721161617211616172116161721161617211616172116 + 1617211616172116161721161617211616172116161721161617211616172116 + 1617211616172116161721161617211616172116161721161617211616172116 + 16172116161721161617211616171414140D000000000000000027211BEB2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211BEB000000000000000027211CFF2A23 + 1EFF2A231EFF2A231EFF2A231EFF2A231EFF2A231EFF2A231EFF2A231EFF2A23 + 1EFF2A231EFF2A231EFF2A231EFF2A231EFF2A231EFF2A231EFF2A231EFF2A23 + 1EFF2A231EFF2A231EFF2A231EFF2A231EFF2A231EFF2A231EFF2A231EFF2A23 + 1EFF2A231EFF2A231EFF2A231EFF27211CFF000000000000000027211CFF2E26 + 21FF2E2621FF2E2621FF2E2621FF2E2621FF2E2621FF2E2621FF2E2621FF2E26 + 21FF2E2621FF2E2621FF2E2621FF2E2621FF2E2621FF2E2621FF2E2621FF2E26 + 21FF2E2621FF2E2621FF2E2621FF2E2621FF2E2621FF2E2621FF2E2621FF2E26 + 21FF2E2621FF2E2621FF2E2621FF27211CFF000000000000000027211CFF312A + 23FF312A23FF645E59FF8A8682FF37302AFF312A23FF312A23FF312A23FF312A + 23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A + 23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A23FF312A + 23FF312A23FF312A23FF312A23FF27211CFF000000000000000027211CFF352D + 26FF352D26FFD5D3D1FFFFFFFFFFE0DFDEFF655F5AFF352D26FF352D26FF352D + 26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D + 26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D26FF352D + 26FF352D26FF352D26FF352D26FF27211CFF000000000000000027211CFF3930 + 29FF393029FF615A54FFDDDCDAFFFFFFFFFFFEFEFEFFAFACA9FF443B34FF3930 + 29FF393029FF393029FF393029FF393029FF393029FF393029FF393029FF3930 + 29FF393029FF393029FF393029FF393029FF393029FF393029FF393029FF3930 + 29FF393029FF393029FF393029FF27211CFF000000000000000027211CFF3D33 + 2CFF3D332CFF3D332CFF413831FF9F9A97FFFBFBFBFFFFFFFFFFEBEAE9FF7B74 + 6FFF3D332CFF3D332CFF3D332CFF3D332CFF3D332CFF3D332CFF3D332CFF3D33 + 2CFF3D332CFF3D332CFF3D332CFF3D332CFF3D332CFF3D332CFF3D332CFF3D33 + 2CFF3D332CFF3D332CFF3D332CFF27211CFF000000000000000027211CFF4136 + 2EFF41362EFF41362EFF41362EFF41362EFF625952FFD6D3D1FFFFFFFFFFFFFF + FFFFB8B4B1FF41362EFF41362EFF41362EFF41362EFF41362EFF41362EFF4136 + 2EFF41362EFF41362EFF41362EFF41362EFF41362EFF41362EFF41362EFF4136 + 2EFF41362EFF41362EFF41362EFF27211CFF000000000000000027211CFF453A + 31FF453A31FF453A31FF453A31FF453A31FF453A31FF8A837EFFFBFBFBFFFFFF + FFFFEEEDECFF453A31FF453A31FF453A31FF453A31FF453A31FF453A31FF453A + 31FF453A31FF453A31FF453A31FF453A31FF453A31FF453A31FF453A31FF453A + 31FF453A31FF453A31FF453A31FF27211CFF000000000000000027211CFF493D + 34FF493D34FF493D34FF493D34FF60564EFFCDC9C7FFFFFFFFFFFFFFFFFFCFCC + CAFF60564EFF493D34FF493D34FF493D34FF493D34FF493D34FF493D34FF493D + 34FF493D34FF493D34FF493D34FF493D34FF493D34FF493D34FF493D34FF493D + 34FF493D34FF493D34FF493D34FF27211CFF000000000000000027211CFF4D40 + 37FF4D4037FF4E4138FF9A928DFFF8F8F8FFFFFFFFFFF4F3F3FF8F8782FF4D40 + 37FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D40 + 37FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D4037FF4D40 + 37FF4D4037FF4D4037FF4D4037FF27211CFF000000000000000027211CFF5043 + 39FF504339FFBFBBB7FFFFFFFFFFFFFFFFFFC2BEBAFF5E5248FF504339FF5043 + 39FF504339FF504339FF504339FF504339FF504339FF504339FF504339FF5043 + 39FF504339FF504339FF504339FF504339FF504339FF504339FF504339FF5043 + 39FF504339FF504339FF504339FF27211CFF000000000000000027211CFF5446 + 3CFF54463CFFB6B0ACFFE4E2E0FF887E77FF54463CFF54463CFF54463CFF5446 + 3CFF54463CFF54463CFF54463CFF54463CFF54463CFF54463CFF54463CFF5446 + 3CFF54463CFF54463CFF54463CFF54463CFF54463CFF54463CFF54463CFF5446 + 3CFF54463CFF54463CFF54463CFF27211CFF000000000000000027211CFF584A + 3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A + 3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A + 3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A3FFF584A + 3FFF584A3FFF584A3FFF584A3FFF27211CFF000000000000000027211CFF5C4D + 41FF5C4D41FF5C4D41FF5C4D41FF5C4D41FF5C4D41FF5C4D41FF5C4D41FF5C4D + 41FF5C4D41FF5C4D41FF5C4D41FF5C4D41FF5C4D41FF5C4D41FF5C4D41FF5C4D + 41FF5C4D41FF5C4D41FF5C4D41FF5C4D41FF5C4D41FF5C4D41FF5C4D41FF5C4D + 41FF5C4D41FF5C4D41FF5C4D41FF27211CFF000000000000000027211CFF6050 + 44FF605044FF605044FF605044FF605044FF605044FF605044FF605044FF6050 + 44FF605044FF605044FF605044FF605044FF605044FF605044FF605044FF6050 + 44FF605044FF605044FF605044FF605044FF605044FF605044FF605044FF6050 + 44FF605044FF605044FF605044FF27211CFF000000000000000027211CFF6453 + 47FF645347FF645347FF645347FF645347FF645347FF645347FF645347FF6453 + 47FF645347FF645347FF645347FF645347FF645347FF645347FF645347FF6453 + 47FF645347FF645347FF645347FF645347FF645347FF645347FF645347FF6453 + 47FF645347FF645347FF645347FF27211CFF000000000000000027211CFF6756 + 4AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF6756 + 4AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF6756 + 4AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF67564AFF6756 + 4AFF67564AFF67564AFF67564AFF27211CFF000000000000000027211CFF6B5A + 4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A + 4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A + 4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A4CFF6B5A + 4CFF6B5A4CFF6B5A4CFF6B5A4CFF27211CFF000000000000000027211CFF6F5D + 4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D + 4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D + 4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D + 4FFF6F5D4FFF6F5D4FFF6F5D4FFF27211CFF0000000000000000482A14FF7552 + 38FF755238FF755238FF755238FF755238FF755238FF755238FF755238FF7552 + 38FF755238FF755238FF755238FF755238FF755238FF755238FF755238FF7552 + 38FF755238FF755238FF755238FF755238FF755238FF755238FF755238FF7552 + 38FF755238FF755238FF755238FF482A14FF000000000000000070360CFFC770 + 30FFC77030FFC77030FFC77030FFC77030FFC77030FFC77030FFC77030FFC770 + 30FFC77030FFC77030FFC77030FFC77030FFC77030FFC77030FFC77030FFC770 + 30FFC77030FFC77030FFC77030FFC77030FFC77030FFC77030FFC77030FFC770 + 30FFC77030FFC77030FFC77030FF70360CFF000000000000000070360CFFE083 + 40FFE08340FFE08340FFE08340FFE08340FFE08340FFE08340FFE08340FFE083 + 40FFE08340FFE08340FFE08340FFE08340FFE08340FFE08340FFE08340FFE083 + 40FFE08340FFE08340FFE08340FFE08340FFE08340FFE08340FFE08340FFE083 + 40FFE08340FFE08340FFE08340FF70360CFF000000000000000070360CFFEF9E + 63FFEF9E63FFEF9E63FFEF9E63FFEF9E63FFEF9E63FFEF9E63FFEF9E63FFEF9E + 63FFEF9E63FFEF9E63FFEF9E63FFEF9E63FFEF9E63FFEF9E63FFEF9E63FFEF9E + 63FFEF9E63FFEF9E63FFEF9E63FFEF9E63FFEF9E63FFEF9E63FFEF9E63FFEF9E + 63FFEF9E63FFEF9E63FFEF9E63FF70360CFF000000000000000070360CFFF4BE + 97FFF4BE97FFF4BE97FFF4BE97FFF4BE97FFF4BE97FFF4BE97FFF4BE97FFF4BE + 97FFF4BE97FFF4BE97FFF4BE97FFF4BE97FFF4BE97FFF4BE97FFF4BE97FFF4BE + 97FFF4BE97FFF4BE97FFF4BE97FFF4BE97FFF4BE97FFF4BE97FFF4BE97FFF4BE + 97FFF4BE97FFF4BE97FFF4BE97FF70360CFF000000000000000070350CDC7036 + 0CFF70360CFF70360CFF70360CFF70360CFF70360CFF70360CFF70360CFF7036 + 0CFF70360CFF70360CFF70360CFF70360CFF70360CFF70360CFF70360CFF7036 + 0CFF70360CFF70360CFF70360CFF70360CFF70360CFF70360CFF70360CFF7036 + 0CFF70360CFF70360CFF70360CFF70350CDC0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF8000 + 0001800000018000000180000001800000018000000180000001800000018000 + 0001800000018000000180000001800000018000000180000001800000018000 + 0001800000018000000180000001800000018000000180000001800000018000 + 00018000000180000001FFFFFFFFFFFFFFFFFFFFFFFF28000000180000003000 + 0000010020000000000060090000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002720 + 1CE527211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CE72721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF2C2520FF2C2520FFDDDBDBFF8C8885FF2F2823FF2C2520FF2C2520FF2C25 + 20FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C25 + 20FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF2C2520FF27211CFF2721 + 1CFF312923FF312923FF4B443FFFC8C5C4FFD7D5D4FF59534EFF312923FF3129 + 23FF312923FF312923FF312923FF312923FF312923FF312923FF312923FF3129 + 23FF312923FF312923FF312923FF312923FF312923FF312923FF27211CFF2721 + 1CFF362E27FF362E27FF362E27FF362E27FFC1BEBCFFF6F6F5FF3E362FFF362E + 27FF362E27FF362E27FF362E27FF362E27FF362E27FF362E27FF362E27FF362E + 27FF362E27FF362E27FF362E27FF362E27FF362E27FF362E27FF27211CFF2721 + 1CFF3C322BFF3C322BFF554C46FFCCC9C8FFD8D6D4FF615853FF3C322BFF3C32 + 2BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF3C32 + 2BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF3C322BFF27211CFF2721 + 1CFF41362EFF41362EFFDDDBDAFF96908BFF42372FFF41362EFF41362EFF4136 + 2EFF41362EFF41362EFF41362EFF41362EFF41362EFF41362EFF41362EFF4136 + 2EFF41362EFF41362EFF41362EFF41362EFF41362EFF41362EFF27211CFF2721 + 1CFF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B + 32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B + 32FF463B32FF463B32FF463B32FF463B32FF463B32FF463B32FF27211CFF2721 + 1CFF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF27211CFF2721 + 1CFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF5144 + 3AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF5144 + 3AFF51443AFF51443AFF51443AFF51443AFF51443AFF51443AFF27211CFF2721 + 1CFF56483DFF56483DFF56483DFF56483DFF56483DFF56483DFF56483DFF5648 + 3DFF56483DFF56483DFF56483DFF56483DFF56483DFF56483DFF56483DFF5648 + 3DFF56483DFF56483DFF56483DFF56483DFF56483DFF56483DFF27211CFF2721 + 1CFF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C + 41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C + 41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF5B4C41FF27211CFF2721 + 1CFF615145FF615145FF615145FF615145FF615145FF615145FF615145FF6151 + 45FF615145FF615145FF615145FF615145FF615145FF615145FF615145FF6151 + 45FF615145FF615145FF615145FF615145FF615145FF615145FF27211CFF2721 + 1CFF665549FF665549FF665549FF665549FF665549FF665549FF665549FF6655 + 49FF665549FF665549FF665549FF665549FF665549FF665549FF665549FF6655 + 49FF665549FF665549FF665549FF665549FF665549FF665549FF27211CFF2721 + 1CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B59 + 4CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B59 + 4CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF6B594CFF27211CFF2721 + 1CFF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E + 50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E + 50FF705E50FF705E50FF705E50FF705E50FF705E50FF705E50FF27211CFFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB73 + 32FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB73 + 32FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFAF5D20FFAF5D + 20FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA + 77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA + 77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFAF5D20FFAF5D + 20E0AF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20E20000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000FFFFFF00FFFFFF002800 + 0000140000002800000001002000000000009006000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000027211BF327211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211BF327211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFFCECAC7FF938E8AFF2E2924FF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF2721 + 1CFF27211CFF27211CFF27211CFF27211CFF27211CFF27211CFF28211CFF5A54 + 4FFFD2CECBFFD4CFCCFF5C5551FF28211CFF28211CFF28211CFF28211CFF2821 + 1CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF2821 + 1CFF27211CFF27211CFF2F2722FF2F2722FF352D28FF958F8BFFEAE6E3FFA29C + 98FF2F2722FF2F2722FF2F2722FF2F2722FF2F2722FF2F2722FF2F2722FF2F27 + 22FF2F2722FF2F2722FF2F2722FF2F2722FF27211CFF27211CFF362D27FF362D + 27FF39302AFF8E8782FFE8E3E0FFADA8A3FF362D27FF362D27FF362D27FF362D + 27FF362D27FF362D27FF362D27FF362D27FF362D27FF362D27FF362D27FF362D + 27FF27211CFF27211CFF3D332CFF625953FFCEC8C5FFDDD8D5FF756D67FF3D33 + 2CFF3D332CFF3D332CFF3D332CFF3D332CFF3D332CFF3D332CFF3D332CFF3D33 + 2CFF3D332CFF3D332CFF3D332CFF3D332CFF27211CFF27211CFF443931FFD8D3 + D0FFACA5A0FF4E443CFF443931FF443931FF443931FF443931FF443931FF4439 + 31FF443931FF443931FF443931FF443931FF443931FF443931FF443931FF4439 + 31FF27211CFF27211CFF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F + 36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF27211CFF27211CFF53453BFF5345 + 3BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF5345 + 3BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF5345 + 3BFF27211CFF27211CFF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B + 40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF27211CFF27211CFF615145FF6151 + 45FF615145FF615145FF615145FF615145FF615145FF615145FF615145FF6151 + 45FF615145FF615145FF615145FF615145FF615145FF615145FF615145FF6151 + 45FF27211CFF27211CFF68574AFF68574AFF68574AFF68574AFF68574AFF6857 + 4AFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF6857 + 4AFF68574AFF68574AFF68574AFF68574AFF27211CFF27211CFF6F5D4FFF6F5D + 4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D + 4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D + 4FFF27211CFFAF5D20FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB73 + 32FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB73 + 32FFCB7332FFCB7332FFCB7332FFCB7332FFAF5D20FFAF5D20FFF1AA76FFF1AA + 76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA + 76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA + 76FFAF5D20FFAF5D20D8AF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20D800000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFFF000FFFFF000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000FFFFF00028000000100000002000 0000010020000000000040040000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000002721 - 1CF128211CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF2821 - 1CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF27211CF12721 - 1CFF2F2722FF2F2722FF2F2722FF2F2722FF2F2722FF2F2722FF2F2722FF2F27 + 1BF328211CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF2821 + 1CFF28211CFF28211CFF28211CFF28211CFF28211CFF28211CFF27201CF52721 + 1CFF2F2722FF302823FF2F2722FF2F2722FF2F2722FF2F2722FF2F2722FF2F27 22FF2F2722FF2F2722FF2F2722FF2F2722FF2F2722FF2F2722FF27211CFF2721 - 1CFF534A45FFDAD6D3FF726A65FF362D27FF362D27FF362D27FF362D27FF362D + 1CFF514943FFDED9D6FF736C67FF362D27FF362D27FF362D27FF362D27FF362D 27FF362D27FF362D27FF362D27FF362D27FF362D27FF362D27FF27211CFF2721 - 1CFF3D332CFF645B55FFCFCAC6FFB6B1ACFF504640FF3D332CFF3D332CFF3D33 + 1CFF3D332CFF625953FFCFCAC6FFB7B1ADFF514741FF3D332CFF3D332CFF3D33 2CFF3D332CFF3D332CFF3D332CFF3D332CFF3D332CFF3D332CFF27211CFF2721 - 1CFF443931FF443931FF534841FFD9D4D1FFC1BBB6FF443931FF443931FF4439 + 1CFF443931FF443931FF524840FFDBD6D2FFC1BBB7FF443931FF443931FF4439 31FF443931FF443931FF443931FF443931FF443931FF443931FF27211CFF2721 - 1CFF4B3F36FF80766FFFDCD8D4FFA8A19BFF544840FF4B3F36FF4B3F36FF4B3F - 36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF4B3F36FF27211CFF2721 - 1CFF695C53FFCEC8C3FF766A62FF53453BFF53453BFF53453BFF53453BFF5345 + 1CFF4C3F36FF80766FFFDDD8D4FFA9A19CFF53473EFF4C3F36FF4C3F36FF4C3F + 36FF4C3F36FF4C3F36FF4C3F36FF4C3F36FF4C3F36FF4C3F36FF27211CFF2721 + 1CFF695C53FFCEC8C3FF756960FF53453BFF53453BFF53453BFF53453BFF5345 3BFF53453BFF53453BFF53453BFF53453BFF53453BFF53453BFF27211CFF2721 1CFF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B 40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF5A4B40FF27211CFF2721 @@ -37,13 +1345,13 @@ object ConsoleDialog: TConsoleDialog 1CFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF6857 4AFF68574AFF68574AFF68574AFF68574AFF68574AFF68574AFF27211CFF2721 1CFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D - 4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF27211CFF7036 - 0CFFCA7232FFCA7232FFCA7232FFCA7232FFCA7232FFCA7232FFCA7232FFCA72 - 32FFCA7232FFCA7232FFCA7232FFCA7232FFCA7232FFCA7232FF70360CFF7036 - 0CFFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA - 76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FFF1AA76FF70360CFF7036 - 0CD870360CFF70360CFF70360CFF70360CFF70360CFF70360CFF70360CFF7036 - 0CFF70360CFF70360CFF70360CFF70360CFF70360CFF70360CFF70360CD80000 + 4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF6F5D4FFF27211CFFAF5D + 20FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB73 + 32FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFCB7332FFAF5D20FFAF5D + 20FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA + 77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFF1AA77FFAF5D20FFAF5D + 20D8AF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D + 20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20FFAF5D20D80000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000FFFF 0000000000000000000000000000000000000000000000000000000000000000 @@ -105,29 +1413,6 @@ object ConsoleDialog: TConsoleDialog Width = 32 Height = 32 AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC300000EC301C76FA864 - 000002644944415478DA63641860C038EA0010C1635670074829D3D9EEBB5F4E - 4D508139E07F77470B5D6D2FADA861003A8011EE80B0F43ABA3A60D5CC265407 - 98F815D0D50167364D4075808A55385D1D70E7D84A840344B53DFEABA8EBD2D7 - 01372F33BCBEBA03E2001945F5FFC6361E7475C0D9233B189EDCBF89708081A5 - 0B5D1D70E1F81E5407E8993AD0D501974E1F407580B6912D5D1D70F5DC615407 - 68E85BD2D501372E1E477580AA8E295D1D70FBCA695407286B1AD2D50177AF9F - 477580822AA41C28C84A623031D463983E7709C3D1136768E68007B72FA33A40 - 5649132C51579ECFE0E1EA0066EFDE7798A17FEA1C860F1F3F51DD018FEF5D47 - 7580B4BC1A588209281412E8C3909516C7C0C1CECEF0F9CB5786095366336CDD - B98FAA0E78FAF016AA03246494501448494A3054146733589A1983F927CF9C67 - 68EB9ECCF0ECF90BAA38E0C5937BA80E109594C3AAD0D7D395A1A6BC90819595 - 85E1EDDB770CAE7E115471C0EBE78F501D20242A85A148455991A1BEAA98414F - 470BCCDFB47527436D5327551CF0EEF5335407080889C12559595919D2926219 - 9213A2C1EC57AF5E03837F22C3DEFD87A86239087C78F70AD501BCFC4260091D - 2D0D86D6C61A06551525867FFFFE31AC59B789A167C254862F5FBF52CD7210F8 - FCF11DAA03B878F8C012AB97CD0706B936C3FD070F196A1A5A19CE9CBB40558B - 61E0DB974FA80E60E7E4024B98991A3368AAAB31AC58BD96E1E7CF5F34B11C04 - 7E7EFF86EA005656769A59860DFCFEFD13D5014C4CCC7475C0BF7F7F511CF01A - 4889D0D5050C0C6F800E10053B40445D9D97F7172B173D6DFFCCF6FBDB9B9B37 - 3F0F8EBEE140020069430B30B1046F080000000049454E44AE426082} end object OutputMemo: TMemo Left = 0 @@ -500,14 +1785,14 @@ object ConsoleDialog: TConsoleDialog 6F5F3F230C60656367C006EEDDB8C8A0A4A18F55EEF7AF9F70033E03F93C0CA4 832F6003280100DE68A794EEBBE7600000000049454E44AE426082} end> - Left = 456 - Top = 160 + Left = 328 + Top = 192 Bitmap = {} end object PopupMenu: TPopupMenu Images = Images - Left = 456 - Top = 224 + Left = 392 + Top = 136 object CopyItem: TMenuItem Action = EditCopy end @@ -525,8 +1810,8 @@ object ConsoleDialog: TConsoleDialog Images = Images OnExecute = ActionListExecute OnUpdate = ActionListUpdate - Left = 456 - Top = 192 + Left = 328 + Top = 136 object EditCopy: TEditCopy Caption = '&Copy' ImageIndex = 0 @@ -543,4 +1828,1029 @@ object ConsoleDialog: TConsoleDialog ShortCut = 16458 end end + object Images120: TPngImageList + Height = 20 + Width = 20 + PngImages = < + item + Background = clWindow + Name = 'Copy log entries-console window output' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002434944415478DA8D94DD4F52 + 611CC7BF676DD9D6FFD09FC07DB5BA6DAE8B263382838991BD5D74D30B7078F3 + 0C72666B70091E0E84A588529AB96E6ACEB2965B7391D8CB45C69CAB0D26460A + 0403EB090F1BEBE0B3C7BE1767673BBFDFE7F9EE7C760E4708C115DF0C0123F5 + 87AF7F142AED09515764CED559DCCEE5F2DD6912BC710AD56D4283E1D5D22A12 + 73A937F952F5040BDA045EBA3345862C1D28D7FE5007B78A657C5C5DC7F8F3F7 + 8B2897DB2591CF31811707278964D5E2BAF462D790C7740C07DBF6219B2F29D0 + F8B3E472C8A6D53081BD030F4948E844A1FC9BDA30B992C5C2A76FCAFD4A7A0D + 61FB698E093CDF3F4142761D6E86D40D7F150B2C07BB643581666F9CC84E3DF2 + A56DD58223F8142C5973EFD2989AFFD094D504F6786275200FABAC6E58FC99C7 + 5EB252E92C12B34B6FB972E5E4509F21A7004DE228915D3C368AEA86EEE00CFE + 4756EAAB025D96AC1D1A05D8ED7E40E4BE2E08E197AAA5CD8D1C58B2163E7F47 + F24BA6294B163A3905D8E51A26B2BB1BEB859A6A410C3C064D566B8E6B0EE1C9 + EC22C20E5D036874DCAB3734C1199D570DE6B319D064B5A654A9D50F9F46C4A5 + 6F0079214242620F325B55D5A03730099AACD6580D4761F1271075F30DA0C126 + 13493423B3A906DE0A3C024D1615EA9FC0B0686C00F5D610F56FB3BFED0068B2 + 5A734D7704826F1CF73D671B408EA37E49303AA35459B408FE318C784D6C206F + 8F5065B5E6AAF6301CFE1846FBCFB181065B982A8B16972F86D880990DDC79B7 + 3459B4B8FD2318BBDDCB069EB148644FD23F890F5EE0FE02E4668BE8D3E7006D + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select all log entries' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002434944415478DA63FCFFFF3F + 03350123C8C088F2D954317545672A23DCC085AD291419165F3D07D5C0052DC9 + 141998503317D5C0F968067EFDFE9361DD9EB30C976E3D6178FBE10B584C889F + 9B4157558621C4CD84819B931D457D22BA81F39A1106FEFAFD97A16DF6668647 + CFDF62758DA4A80043537620033333135C2CA916CDC0B94D08030F9CBEC1B078 + F351305B5F5D8EC1DA5015ECE2CD072E30BCFB08716D458A0F83AA9C385C4F72 + 1D9A81731A93E0928F5EBC63B87EEF19C3B3571F18627D2C19585898C1E2FB4F + 5D6758BAF538989D16EAC860A6A308D793523F0FD5C05948062283BF7FFF313C + 7DF59EE1E683E70C272FDE85074372B03D83B99E325C5D1ABA81331B500DBC71 + FF39C39EE357186E005DFAFBCF5F0C8B9282500D4C6F403370463DC2C05397EF + 32CC5B7710CC66057A5743518A415D5192E1FB8F5F0C5B0F5D807831D891C104 + C9CB198D68064EAF4F844B364FDF000CBFF760C3EAB38318840578C0E2C7CEDF + 6658BCE908D4CB0E28066636CE4735705A1DC2C0ECE6050C20717E5E2E86B682 + 7006464688F8FCF507194E5FBE074977402F9BEA28C1F56435A11938B5166160 + D3F4750C2FDF7C04B3AD0CD518B45564182EDE7CC470EAD21DB89A082F2B065B + 63752447A0193805C9C0D357EE312C5C7F102322F435E4192EDE7808669BEBAB + 30C4FAD9C2E572D00D9C5C9380A219940E0F9DB9CEF00E98ED440479194C7595 + 190C8006EE3C7289E1FBCF5F0C1C6CAC0C1EB6FA70F5B92D0B500D9C589DC040 + 09C86F4533704215650616B4A119489169500037909A00004AD749E85EF3442B + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Auto adjust size of console window' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001B74944415478DA63FCFFFF3F + 033501A342ECFA1B405A9D4AE6DD0419F83FDCD7892AA6ADDCBC0FECC2FF4262 + 327815C63B4A80E985FB5FE055F7EED51306461945F5FFC6361E381505793B33 + C485FB82D98B566E6658B7752F4EB5678FEC8018A867E6885541889F1B436254 + 208AD8FC65EB19D66CDA8555FDA553FB21066A1A58E1F5CAAE75F3C0B45B5012 + 5E75D72F1C8318A8A2650C168808F66158B1760B86C2FD5B968269479F680C39 + 643D77AE9D851828AFA2C3101D16C0909912C360E31682A1E9C8AE35601A97DC + F4394B1896AEDAC0F0F0CE158881E5E5E50C39E98938BD62EEE003A64F1ED882 + 53CD9499F3193A3B3B2106B6343731C44787E1546C64E50AA6CF1DDB8D53CDC2 + A5AB186A6AEB20060A08893114E6653024C54531E89AD86128BE7CE61098C625 + 376FD13286FE4933183EBC7B0531909B871F2C595298C3D0D33F0543D38D4B27 + C1B4869E39861CB29EAF5F3E420C6463E360C007EEDEB800A695350CF0AAFBF5 + EB07C440601981554155790943667A328AD8F4997319DA3A7B7018F91F66206E + 003134056AD81C3C86410041036186820021C3C0064A2BAA7F067A9887A04A22 + 00D0655F18A95E6253DB4000988DA4C33B05652A0000000049454E44AE426082} + end> + Left = 392 + Top = 192 + Bitmap = {} + end + object Images144: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + Background = clWindow + Name = 'Copy log entries-console window output' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002724944415478DAB594ED4B53 + 6118C6AF7D0EEA2F498AFE80B430B52CA9281DB652A4652D1B99A835DB348A10 + 2AE7B6B3B6954E4C54660DAD49421051A9E44B09221528F4B2B44DCD6D6E73EE + C5A7671BADB576CE1E3F787D3CDCF7F53B37FCCE111142B095114501574CAF58 + 286F036114E865395ED6F268770270579A0DBE63A28F1FBFF98C779F7E8E04C2 + 248F15F21F2014E13F646ACE81AF8E558C7EFC3141DB0B4CE772969801D58697 + E45EE53E04421BBCC36BEB41CCCEBBF0C5E1C1E88C7DBAE5FCFE2C66809C7B41 + D4B25CA8FBC6D30E4A8FECA1C56E8CCCD8E94B4430FB7D119A8B0744CC802ACD + 1069ADCA873710115CD8A0B3CB9E35A82DC3D0C90BD801175A6C442B2F84E6C9 + 38EFB07DC597A92F9A7F4C4B002AEF0C105D75115CFE70DAAD5F6E2F8C8353D8 + AC690980B4D94A743547C15927D22EAF078358F485C0649A336ADAFC186D3F64 + 94662FC50015B72C84AB3D81655A922E2B6E1FDA9F7F4026D3FC8120E6165C54 + 674F5488693A9F150394DFE8215C7D318C0393BC172CB8FCD8AC69ADB25C510C + 705AF588E8AF95627195E7028F0F66DB18984D7353D3FA86A1BD941F079C6AE8 + 209C428276DB7BDE0BBE395790C9B43F293BB81B0AD310F4970BE300F1D536C2 + 5D3F03A727FD052E7A41C753EABE8069A969300CC25053140794D43DA0807238 + 57F901E6FED710322D39E2BC5D50DE7F0653DDB1BF804C4BDBB6EF809069A951 + 72FD68539C8C0344A28C5F3DCA9ABA054D4BCE71FA1F54E9AC302BC5EC0089B2 + 53D0B4D4A8B416743649D801A50AB3A069C939BC77271A35BDE8BA59C60E28A9 + 7F48F402A6A5A6B1B51B3DB72BD801C5B52641D352D3A4EE426FF3D9CD01989A + 9392006C657E03188BD5E0187690680000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select all log entries' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002864944415478DA63FCFFFF3F + 032D0123DD2C88289F4D359B5674A63262B560616B0AC586C757CFC16DC18296 + 648A2D48A8998BDB82F9681680A4F69EB8C670FCE21D86E76F3E327CFFF18B81 + 839D954142849FC1DA4095C1D9428B819111D582447C16CC6B46B560C6AAFD0C + A72EDFC3E95A6B435586E4203B14B1A45A3C16CC6D425870E5CE1386FE453BC1 + 6C16662606535D25061E4E0E867B4F5E31DC7DFC0AAEAEA7249241908F0BCE4F + AEC363C19CA624B8C2E317EF321C3C7D83E1D1F3B70CA1EEA60C8E669AF0602B + EF5BC5F0EEE31730BF24D19341435112AE2FA56E1E6E0B6637222C408E07901A + 2626889E771FBF324C5AB28BE1E9ABF7607E76A40B8381861C5C7D6A3D1E0B66 + 35605AF0E1F3377070DD7EF892E11E30685EBEFD88229F16EAC860A2AD88E037 + E0B160269205FFFEFD6758B6F518C3D1F3B781EC7F7071365616B06F7EFCFC0D + E6E7C7BA3368294BC3E5D3F15930A33E11AE70CBC10B0C5B0E9C07B379B83818 + EC4CD4C106294A8B324C5ABA8BE1E6FDE7100B62DC193495A5E0FA321AE7E3B6 + 607A1DC2829A49AB19DE7E80446451BC2783AABC045CAE7BFE56707081401EC8 + 02258405994D782C988664414ECB4278D094A7F832C84B894023F90B43E3D475 + 0CBFFFFC85B838C285414F4D16AE2F0B9F05536B1116B4CFDEC8F0E4C53B305B + 5C989FC1DD468FE1F3D71FC09C7D85E1D397EF7075B17EB60C16FA2A707E7633 + 1E0B26D724C0155EB8F19061EE9AFD18A98A898989414D4192E1C6BDA760BEA3 + B9364390AB295C3EB765016E0B2621590002976E3E62D875E412C3E3176FC1A9 + 47554102E8137D70A4AFD8760CAC869F878B21C6CF06AE270F9F0513AB131828 + 05F9AD782C985045B905056D782CA0D87428C06A01ADC0D0B70000AA1B6EE0F1 + BE05C00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Auto adjust size of console window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002604944415478DA63FCFFFF3F + 032D0123CD2D50885DFF0048CBD3C8FC87200BFE87FB3AD1C4F4959BF7817DF0 + 5F484C862616BC7BF5046201B11A02AD65C1F4FAA38F89B684514651FDBF89AD + 274185D292620C7D4D256076515D0FC3D3E7AF08EA3973783BC402030B17BC0A + D9D9D81826B49533C8488983F94F9EBD6428A8EA64F8F9EB175E7D174EEC8158 + A06B628F5761494E2283939D058AD8BE4327187AA6CCC7ABEFF29983100B340D + AC880ACF5DEBE68169B7A024A2D45FBF700C6281AAB6092238D8D9180AB21219 + 3AFB676268D8B779099876F28DC1902B2F4C6798306D3EC3CF9F8860BB7DF50C + C40245757DB080BCAC34434B6D3198B6F30CC730E4D0F695601A97DCC3C74F19 + 6A9A7BC13408DCBF791162819CB21683A79B2343695E3AD807B880B56B10983E + BA7B1D4E35201F744F9AC9B07DD77E864777AF412C90925361F0F670067A330B + 68013B4ECDE60E3E60FAE4812D782CF8090CDE690C5B77EC6578F6E80EC40231 + 294851A4282FC7D0DD5607A465198C6DDC31349F3DB2134CE392BBFFF0314369 + 5513907E04167BF5EC21C402215129B8420E0E7686EAB20286DAA64E0C432E9E + DC07A6F5CD31CBAEE6BA7286D6AE090C3F7EFC848BBD7BFD0C6201BFA0280331 + E0CAD9C3605AC7D89628F51FDFBF8658C0CDCB8F5761676B0383BF0F6A71B271 + CB7686F2EA06BCFABE7EFE08B1809D830BAF420E0E0E864D6B973128292A80F9 + F7EE3F60F00B8E0206C70FBCFA7EFEF806B180858595A07795951419B66C5805 + 66FB048431DCBD779FA09E3F7F7E432C202A40812038D01F4CAF5DBF91582D40 + 0B14D49F3230324811AD8334F082F6953EAD2D0000E52BE0B2607B4F9D000000 + 0049454E44AE426082} + end> + Left = 328 + Top = 256 + Bitmap = {} + end + object Images192: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'Copy log entries-console window output' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000030C4944415478DAC595CB4F13 + 511C854F37EACAC4F87FB071E9C28551428CF101963E9097A0086E340A1468A9 + 108218433542E98B020AA594221AA2890851145112092498B8003512173C0AA5 + 6FA42DD7A10821E9EDCC7446C2D9DCCDDCDFFDE64CEF57092104FB19C936C08D + 47AF922421A3643598A6D74AFDC91EBAFBA577004A742F49F3CD33E053C8E623 + 9D43D318FF3A37066F303559082AC0F5C601D272EB2C221BFC8A189EFC059727 + 80D1A99F63CBBE506A6F12105480A2072F88E1F639AC47F8017C9B7361DE1D80 + 6B35800F93B35F48209866D22A5C8201AEDDEF27C6D20B08853760783EC13AA0 + E8FC3178FC212CB883FF20FC783F31336D2ABB982218E06AC333C20C40E04F94 + 570353DF1731F07916E1C8D6F33EF70ACCE5E912C10005F54E625665C0178AA2 + A57F9C174494D97BF4C861B87D21CCFE98436BC525E10057EA1CC45C21852714 + E175F8763698FD33BFDD303BDFC15A95291C20BFD64E2C5532B80311E8FB3EF2 + 06284E3F1E5BEFE89C68D3C88503E4D6D81800055602E1841B573C7E34F57D4A + AA219AB0A80039DA2E62512BB0EC671A708C504785231178D7A2102B2C2A40B6 + E629B168B2B0E44FDC809B114F73DF28C40A8B0A90A5EE6000B2B1E40BA3D93E + 4C1D1661AE9C7F3D0AB1C23256CB5D7100CACA3662AECEC1A297A5016F0006E7 + 08C40A8BD99F1207A0505989499B8B05EF3AF45D83D481D1681441E6CDC50A8B + D9BF735B7600E4E51662D4E661C193B88155A601A3F32DC40ACBA2CA88079095 + 9989A13A1FF34C0366FB9B840DF8D6C2102BACD64A291D40AF611AF0B2376076 + 0C41ACB0AC6A191DA0499D17BB05AC9FA067105CC2624BA9AE17ED1A051DE031 + 03E0E2003074BF0697B0A80D484FC4D6329D031D5A251D80CFA003070F814B58 + 6C5135F6E049CDE578008984D7FF089455ED9CC2A2A54476720B40D78DCEDA1C + E1008A0A2BA7B0D852A9B3A1AB2E4F3880BCBC955358B4142B4FC75675A30DB6 + FA7CE1009BBF152E61B145A3EB44F7BD02E10099A5264E61D152283B155BB50C + 80BDA1501C0097B0D872F7E17F00E012D69E0370096BCF01049DBC2B5480FDCA + 5F361ABADF2F11DE2E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select all log entries' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003724944415478DAEDD57B504C + 511C07F06F8D5E5B44A2642A3D10BDC623D36886C86398D18C84664CE9A9844A + FF30A212D5F8CBAB48A8D050DECD9841F460480F9A495B0AD9F4D864253D94AD + B6ECEEE8CEDE3DDB3D18CB3F7EFFEC9CDFFECE399F7BCEBDE7688C8C8CE05F86 + C67F8022C067CFD9BFA2C93912A23126E06262B05A27F78B39C70DB89018A456 + C0D698F3DC80ACC3EA05F8EFA700323900BD7D621495BF02FF6D2BDA3BBAD1DD + DB0F59FFF1FABA30996C083BAB6958B5D85EDE1E2B02A88043AA01350D42A45E + 2940BF7880F30979BADA08F7F180BD8D996AC0010A20430540D4D983D8945B10 + 0F0CFED432EBE9682339CA1B130CF488FF026980F3092420ED6A112AF8EF98B6 + A6A626E6CFB184A9B121BE890751DBD00AA1E80BAB8FEF3A37B8BBD8116305C5 + 5200E71202591D060625884CCEC6E09084C9856E5A0617072BA62D910CCB57A8 + BDA38BC92D59381B7E9E6E04203836831B70F66020D169483A79737B27DE0B3F + A1B3EB2BD6AF5840D464DF29C1A38A3AA6BDC8D11A21DEEE445D48DC6F00B842 + F6F4758236E4155642D02A62F28EB3CC11B165E5AF03D2E3B9017DDF0650DFD8 + 8686A68F68148A206811B1B66734E6DA4C4794EF6A22BF2D9E02383306A055BA + 05B70A9EA3467A060C0F0F535766DE9C1908DBBC9CC887D200697124A0AABE09 + E9D70AE5CBAD1C86063CD8599BE14B4F1FEA054226BFD0C11AC11BDC89FAB083 + 544000AB83EC33DB7B3457FE3B1A53268D8787AB3D9C665BC0C8505F9EBB9E5F + 8187CFF84A80A52A0099DC80D34A80B2AA0664DD7ECCB40D78BA88DFE1057D9E + 0EAB2EF76E298AA5C7B422204805603B0D702A960DB876BF0C4565B54CDBD6D2 + 14D15BD710031FBF744FBA056D2C40A01709084FA00052950037F2CB51585AC3 + B4797A3A4888F0961FB7A3C17FD382B49C87501C4BB63DA19B3D08C00E2AE000 + 1BF0A246808C9BC5AC9C85993156BB39415B6B1CAA5F37E349653DF165D8989B + 20DA7F2D09384401A42801862412C49DBC8E2EE95BCE153ADA5AACCB4A761125 + EDF621EA76D20027F7FB139D1AA5275CEAE57CD697A018E6A69311BC711992D3 + F358357B433C31DDC48855BBEB701637E0840A802C647740FED397A87B27C4E7 + AE5EF93B306DEA442C72B285ABF34C6848877C50528D0F0AB7A2B39DA5FC5D50 + 8C082A204635E04F45442205705CCD80481AE0D83EF502A2922800B5CEFE23C6 + 04FC8BF80FF80EA9CF11DF1A48E3DE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Auto adjust size of console window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003014944415478DA63FCFFFF3F + C34002C65107801CA018BBE1160323832A5D6DFECF70FBFEE200358803E236FC + CF8A74A1ABFDD396EF61B8BF288011EE00151D0BBA3AE0CE9513A80EE0E113A2 + AB03BE7C7A877080AC92C67F535B2F920D71B03601D3078E9E2159EFE9C3DB18 + 1EDFBB81708091951B4906C8488933F4B79481D985355D0C4F9EBD2449FFB963 + BB501DA06FEE44B4667636368689ED9560478000C8F2FCCA76869FBF7E116DC6 + C593FB501DA06B624FB4E6929C4406273BD444BBEFD009869E29F38936E3F299 + 83A80ED032B42629084160E7DAB960DA3D389964BDD7CE1F457580BA9E39C986 + ECD9B0104CBB04C493ACF7E6A593A80E50D53621D9907D9B97806927DF1892F5 + DEBE7A06D5014A1A06704976763686A2EC1486F6BE69780D39B86D0598B6F78A + C0ABAEB2288BA16FEA1C869F3F1189F4DE8D0BA80E9057D5014BC8CBC930B4D5 + 9532C8CB4A33D8B887E035F8C8CE35609A18750F1F3F65A86AEA6678F8E80958 + ECE1ED2BA80E9055D460F0727362282DC800870031C0CA39004C1FDBBB8128F5 + A010E89E308361DB2E6016BC7F03D50152722A0CDE1ECE0CE585594007B01365 + A0B9830F983E79600B910EF8C9D0D93F8D61EB8EBD0CCF1EDD417580B8B42258 + 91A2BC2C43776B2D83029036B1F5C46BE099C3DBC13431EA1E3C7CCC505ADDCC + 701F4883C0CBA7F7511D202A210BD7C0C1C1CE505992CF50DFD285D7E073C776 + 8369232B57BCEA1A6BCA18DA7B2632FCF8F1132EF6FAC563540708894A12158C + C8E0E2C9FD605ADFDC9164BDEF5E3F477500BF9028C9865C3973184CEB98D892 + ACF7E3BBD7A80EE0E127BD3D70FDFC3130AD696845B2DE2F1FDFA13A808B878F + 68CD5D6D8D0CFE3EA8096FE396ED0C6555F5449BF1EDCB275407B0737011AD99 + 83838361D3DA650C4A8A0A60FEBDFB0F18FC82A38089EC07D166FCFCF10DD501 + ACACC4E57D1850565264D8BC1E5214FB064630DCBD779F24FDBF7FFF44750013 + 13334906804050801F985EB76113C97AFFFDFB8BEA00924DA00240384051FD0E + 0323A3325D6DFFFFFFEEE3FB37550647D76C443B0000AE2FA1D0F44A7BBC0000 + 000049454E44AE426082} + end> + Left = 392 + Top = 256 + Bitmap = {} + end end diff --git a/source/forms/Console.h b/source/forms/Console.h index 52ee4f06..bb52dd1d 100644 --- a/source/forms/Console.h +++ b/source/forms/Console.h @@ -17,6 +17,7 @@ #include #include "PngImageList.hpp" #include +#include //---------------------------------------------------------------------------- class TConsoleDialog : public TForm { @@ -42,6 +43,9 @@ class TConsoleDialog : public TForm TEditSelectAll *EditSelectAll; TAction *AdjustWindow; TImage *Image; + TPngImageList *Images120; + TPngImageList *Images144; + TPngImageList *Images192; void __fastcall ExecuteButtonClick(TObject *Sender); void __fastcall CommandEditChange(TObject *Sender); void __fastcall HelpButtonClick(TObject *Sender); @@ -72,6 +76,7 @@ class TConsoleDialog : public TForm void __fastcall DoChangeDirectory(TObject * Sender); void __fastcall UpdateControls(); virtual void __fastcall CreateParams(TCreateParams & Params); + virtual void __fastcall Dispatch(void * Message); void __fastcall DoAdjustWindow(); public: diff --git a/source/forms/Copy.cpp b/source/forms/Copy.cpp index 97393489..c80500be 100644 --- a/source/forms/Copy.cpp +++ b/source/forms/Copy.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include "Copy.h" //--------------------------------------------------------------------------- @@ -133,26 +134,26 @@ void __fastcall TCopyDialog::AdjustTransferControls() } } - TImage * Image; + UnicodeString ImageName; UnicodeString ACaption; if (!FMove) { if (!FToRemote && FLAGSET(FOutputOptions, cooRemoteTransfer)) { ACaption = LoadStr(REMOTE_COPY_TITLE); - Image = CopyImage; + ImageName = L"Duplicate"; } else { if (RemotePaths()) { ACaption = LoadStr(COPY_COPY_TOREMOTE_CAPTION); - Image = CopyUploadImage; + ImageName = L"Upload File"; } else { ACaption = LoadStr(COPY_COPY_TOLOCAL_CAPTION); - Image = CopyDownloadImage; + ImageName = L"Download File"; } } } @@ -161,34 +162,29 @@ void __fastcall TCopyDialog::AdjustTransferControls() if (!FToRemote && FLAGSET(FOutputOptions, cooRemoteTransfer)) { ACaption = LoadStr(COPY_MOVE_CAPTION); - Image = MoveImage; + ImageName = L"Move To"; } else { if (RemotePaths()) { ACaption = LoadStr(COPY_MOVE_TOREMOTE_CAPTION); - Image = MoveUploadImage; + ImageName = L"Upload File Remove Original"; } else { ACaption = LoadStr(COPY_MOVE_TOLOCAL_CAPTION); - Image = MoveDownloadImage; + ImageName = L"Download File Remove Original"; } } } Caption = FormatFormCaption(this, ACaption); - CopyImage->Visible = (Image == CopyImage) || (Image == NULL); - MoveImage->Visible = (Image == MoveImage); - CopyUploadImage->Visible = (Image == CopyUploadImage); - CopyDownloadImage->Visible = (Image == CopyDownloadImage); - MoveUploadImage->Visible = (Image == MoveUploadImage); - MoveDownloadImage->Visible = (Image == MoveDownloadImage); + LoadDialogImage(Image, ImageName); bool RemoteTransfer = FLAGSET(FOutputOptions, cooRemoteTransfer); - assert(FLAGSET(FOptions, coAllowRemoteTransfer) || !RemoteTransfer); + DebugAssert(FLAGSET(FOptions, coAllowRemoteTransfer) || !RemoteTransfer); EnableControl(TransferSettingsButton, !RemoteTransfer); EnableControl(CopyParamGroup, !RemoteTransfer); @@ -296,7 +292,7 @@ void __fastcall TCopyDialog::SetDirectory(UnicodeString value) //--------------------------------------------------------------------------- UnicodeString __fastcall TCopyDialog::GetDirectory() { - assert(DirectoryEdit); + DebugAssert(DirectoryEdit); UnicodeString Result = DirectoryEdit->Text; if (RemotePaths()) @@ -354,7 +350,7 @@ void __fastcall TCopyDialog::UpdateControls() //--------------------------------------------------------------------------- void __fastcall TCopyDialog::FormShow(TObject * /*Sender*/) { - assert(FFileList && (FFileList->Count > 0)); + DebugAssert(FFileList && (FFileList->Count > 0)); if (DirectoryEdit->Enabled && DirectoryEdit->Visible) { ActiveControl = DirectoryEdit; @@ -436,7 +432,15 @@ void __fastcall TCopyDialog::FormCloseQuery(TObject * /*Sender*/, DirectoryEdit->SelectAll(); DirectoryEdit->SetFocus(); } - }; + } + + if (CanClose && !IsFileNameMask(GetFileMask()) && (FFileList->Count > 1)) + { + UnicodeString Message = + FormatMultiFilesToOneConfirmation(DirectoryEdit->Text, RemotePaths()); + CanClose = + (MessageDialog(Message, qtConfirmation, qaOK | qaCancel, HELP_NONE) != qaCancel); + } if (CanClose) { @@ -448,7 +452,7 @@ void __fastcall TCopyDialog::FormCloseQuery(TObject * /*Sender*/, void __fastcall TCopyDialog::LocalDirectoryBrowseButtonClick( TObject * /*Sender*/) { - assert(!FToRemote); + DebugAssert(!FToRemote); UnicodeString ADirectory; // if we are duplicating, we have remote path there if (!RemotePaths()) @@ -483,7 +487,9 @@ void __fastcall TCopyDialog::TransferSettingsButtonClick(TObject * /*Sender*/) //--------------------------------------------------------------------------- void __fastcall TCopyDialog::CopyParamClick(TObject * Sender) { - TCopyParamType Param = Params; + // Save including the preset-unspecific queue properties, + // so that they are preserved when assigning back later + TGUICopyParamType Param = Params; bool PrevSaveSettings = FSaveSettings; if (CopyParamListPopupClick(Sender, Param, FPreset, FCopyParamAttrs, &FSaveSettings)) { diff --git a/source/forms/Copy.dfm b/source/forms/Copy.dfm index 52617af6..b91cd06f 100644 --- a/source/forms/Copy.dfm +++ b/source/forms/Copy.dfm @@ -19,139 +19,12 @@ object CopyDialog: TCopyDialog 225) PixelsPerInch = 96 TextHeight = 13 - object MoveImage: TImage + object Image: TImage Left = 8 Top = 11 Width = 32 Height = 32 AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC400000EC401952B0E1B - 00000A4F6943435050686F746F73686F70204943432070726F66696C65000078 - DA9D53675453E9163DF7DEF4424B8880944B6F5215082052428B801491262A21 - 09104A8821A1D91551C1114545041BC8A088038E8E808C15512C0C8A0AD807E4 - 21A28E83A3888ACAFBE17BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C - 9648335135800CA9421E11E083C7C4C6E1E42E40810A2470001008B3642173FD - 230100F87E3C3C2B22C007BE000178D30B0800C04D9BC0301C87FF0FEA42995C - 01808401C07491384B08801400407A8E42A600404601809D98265300A0040060 - CB6362E300502D0060277FE6D300809DF8997B01005B94211501A09100201365 - 884400683B00ACCF568A450058300014664BC43900D82D00304957664800B0B7 - 00C0CE100BB200080C00305188852900047B0060C8232378008499001446F257 - 3CF12BAE10E72A00007899B23CB9243945815B082D710757572E1E28CE49172B - 14366102619A402EC27999193281340FE0F3CC0000A0911511E083F3FD78CE0E - AECECE368EB60E5F2DEABF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2F - B31A803B06806DFEA225EE04685E0BA075F78B66B20F40B500A0E9DA57F370F8 - 7E3C3C45A190B9D9D9E5E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3C - FCF7F5E0BEE22481325D814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB7 - 0BFFFC1DD322C44962B9582A14E35112718E449A8CF332A52289429229C525D2 - FF64E2DF2CFB033EDF3500B06A3E017B912DA85D6303F64B27105874C0E2F700 - 00F2BB6FC1D4280803806883E1CF77FFEF3FFD47A02500806649927100005E44 - 242E54CAB33FC708000044A0812AB0411BF4C1182CC0061CC105DCC10BFC6036 - 844224C4C24210420A64801C726029AC82422886CDB01D2A602FD4401D34C051 - 688693700E2EC255B80E3D700FFA61089EC128BC81090441C808136121DA8801 - 628A58238E08179985F821C14804128B2420C9881451224B91354831528A5420 - 55481DF23D720239875C46BA913BC8003282FC86BC47319481B2513DD40CB543 - B9A8371A8446A20BD06474319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F - 3E43C730C0E8180733C46C302EC6C342B1382C099363CBB122AC0CABC61AB056 - AC03BB89F563CFB17704128145C0093604774220611E4148584C584ED848A820 - 1C243411DA093709038451C2272293A84BB426BA11F9C4186232318758482C23 - D6128F132F107B8843C437241289433227B9900249B1A454D212D246D26E5223 - E92CA99B34481A2393C9DA646BB20739942C202BC885E49DE4C3E433E41BE421 - F25B0A9D624071A4F853E22852CA6A4A19E510E534E5066598324155A39A52DD - A8A15411358F5A42ADA1B652AF5187A81334759A39CD8316494BA5ADA295D31A - 681768F769AFE874BA11DD951E4E97D057D2CBE947E897E803F4770C0D861583 - C7886728199B18071867197718AF984CA619D38B19C754303731EB98E7990F99 - 6F55582AB62A7C1591CA0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB54 - 8FA95E537DAE46553353E3A909D496AB55AA9D50EB531B5367A93BA887AA67A8 - 6F543FA47E59FD890659C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B - 0DAB86758135C426B1CDD97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352 - F394663F07E39871F89C744E09E728A797F37E8ADE14EF29E2291BA6344CB931 - 655C6BAA96979658AB48AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A - 275C2747678FCE059DE753D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477 - BF6EA7EE989EBE5E809E4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806 - B30C2406DB0CCE183CC535716F3C1D2FC7DBF151435DC34043A561956197E184 - 91B9D13CA3D5468D460F8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE - 9A524DB9A629A63B4C3B4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDF - B7605A785A2CB6A8B6B86549B2E45AA659EEB6BC6E855A3959A558555A5DB346 - AD9DAD25D6BBADBBA711A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806 - DBAEB66DB67D6167621767B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D - 5A1D7E73B472143A563ADE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613 - CB29C4699D539BD347671767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BD - E44A74F5715DE17AD2F59D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E - 593373D0C3C843E051E5D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F91 - 57ADD7B0B7A577AAF761EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8 - B7CB4FC36F9E5F85DF437F23FF64FF7AFFD100A78025016703898141815B02FB - F87A7C21BF8E3F3ADB65F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC - 90AD21F7E798CE91CE690E85507EE8D6D00761E6618BC37E0C2785878557863F - 8E7088581AD131973577D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3E - AA2E6A3CDA37BA34BA3FC62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDF - FCEDF387E29DE20BE37B17982FC85D7079A1CEC2F485A716A92E122C3A96404C - 884E3894F041102AA8168C25F21377258E0A79C21DC267222FD136D188D8435C - 2A1E4EF2482A4D7A92EC91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A - 9E169A76206D323D3ABD31839291907142AA214D93B667EA67E66676CBAC6585 - B2FEC56E8BB72F1E9507C96BB390AC05592D0AB642A6E8545A28D72A07B26765 - 5766BFCD89CA3996AB9E2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A586 - 4B572D1D58E6BDAC6A39B23C7179DB0AE315052B865606AC3CB88AB62A6DD54F - ABED5797AE7EBD267A4D6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D - 4F582F59DFB561FA869D1B3E15898AAE14DB1797157FD828DC78E51B876FCABF - 99DC94B4A9ABC4B964CF66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40D - DF56B4EDF5F645DB2F97CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A4 - 54F454FA5436EED2DDB561D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB - 5501554DD566D565FB49FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203 - FD07230EB6D7B9D4D51DD23D54528FD62BEB470EC71FBEFE9DEF772D0D360D55 - 8D9CC6E223704479E4E9F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A - 429AF29A469B539AFB5B625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794A - F354C969DAE982D39367F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F - 6FEFBA1074E1D245FF8BE73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6D - EA74EA3CFE93D34FC7BB9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4 - BD79F116FFD6D59E393DDDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727 - EEADBC4FBC5FF440ED41D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7 - 068583CFFE91F58F0F43058F998FCB860D86EB9E383E3939E23F72FDE9FCA743 - CF64CF269E17FEA2FECBAE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5 - FDEAC0EB19AFDBC6C2C61EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE4 - 7C207F28FF68F9B1F553D0A7FB93199393FF040398F3FC63332DDB000004F949 - 44415478DAC5D67D5014651C07F0EFEE21689A78884824AF5E46E9D47F9528C8 - E1A46469594DE34CD3D8C89BE4D864353906F8D218C24C36BE2462EA48862668 - 28F90203191044603A3919A222EA2088BC09F7BEC7DEEEF5EC1EDC711C77BB74 - 7FB83737CFDDDE3EBFDFE7F93DCFB37B94D56AC5E33C28015055553B5E453D45 - 714BD56AB5DE9BE4426E3B40AD8E05C771B23A767474A2B5F5AED7081780C562 - 91D5D1603042ABD5E1F6ED3B5E21FE3780652D181C1C1C42B45EA628FE3582E8 - F51AC0B22CFA07063C76524E9B06854201B379D08E6869B9738DA6B984F1225C - 0042403987AFAF2F789E774290E9684A48889BE715C04C8269341A8F9DFCFDFD - C73C5FFF47230880F20E60368FA7BF33A0FE92F7008661A0D5E9243BE69E6E1A - 278FAA672CD6A579EB9C778B13203E7E21189915C83CDA809DA9F190731315E2 - 17FF7E137FDDEA7241B8024805747AE92D2D54400070BCBC1B68F53FF7D1AF63 - F06773A713C2056032996405CC2ABC2402584E1EA0B9AD173D1A930D71A3F312 - 49FAFACE3475AF1360D1A20530910A180C06C9803925FFE2DB34351896C7A643 - 551EAFDD91ACC680CE846E8D51443C1210D7DBAFD1149DF04D6A7CAF33605405 - 588EC567E5E9B8D1D384BC153F401530473C9F41D6C0AEF4C5300EF2B22AE0E7 - 03F40C38107D5A13EA9BDA9B488C7976405C5C8C08300E21589EC5C65FD7E3AA - A90113A7FA827BA0C0FE653F224AA9C2D7C57F63F7BA25D09B397C79F0A2C7E4 - D9298B71AF4B835AB20E3446C722EFEC1910625076406CEC7C710A8647BEA12C - 1557F4F5981E65BBF1187B195808E2C8DB45387CA61B7B3F4E84D6E4FCF4E478 - 0B14B4CF98109EE4B9DFAD451B790B9F2B1A6F0A314601C8E8B5469D7DE4C3C9 - C97C896F034198DB79BC60DD88820D29644416641EAC10AF3159FBD068CE8182 - F243ACDF76B715F92AE955E89941E416D660DF27CB1C80850B5F11011BCAD7A2 - 515B2326A7C8CB965C616B691AFA1E328FB78C389B548EC0275462D087BA0E24 - FDBC1C138369DC6BB98F2BEBBB24D745E68132E47DBADC0158B0E065710A128F - C6800D3260CA8CC96434B43380B4C2394DB71EBA3606FBDF2A41FEC9CB68E0B2 - 11AC9A8C591121A8AB6C40E28402F715484D14DBAC031790FFF99B0E404CCC4B - 22A0F5510B924B57C1771605FF19539C920BAD82B6B5FD6461F5DFD563A2CF24 - 4C0A516056F8D3E23535157568F8E8A16405B2F2CFE1FB2F563A00F30980195A - 84C38849A113A09C3975048200C4CFB6EF7D5DFDE0580EA142F221D86FE53558 - 421F729B786BDA1B62BB39AF140737BD4BB9FD53DA616A43EEF54C28674F46C0 - 4CA5ADFC34ED5A91515354597611756B3B252BB079DF191CCE78CF06A0A8B19F - A261390173C92FD591D1A1813382A73B55C201180122C0F2F315586C3DE036F1 - 96B4154380121CC95AE5193012F1CC731181414F058949C64C3E043B7FAE0CD5 - 290F242BB0E5BB5328D8F2BE346024227AAE2A30382478ECE4B46D8794FE7216 - 6ACB3EF78B6FED4A1B606F318E6EFB401E202A4719C65BA9DAD9CF4685854786 - DAB7A3EB7A50A0A4F4342AD774485660EB9E22146E5F2D0D184EAE129387792C - BFB0454F9E3E8538668FDB7819E9EFD800BB8FE378F61ACF0047F2D96111C3C9 - 697A44055C6F52274A8A50F661BB6405B6ED3A869F7292DD03E2B7C2E7AE9FB2 - 794EB44A151119EEB20314A3120FC38E9D3A860BABE5000A712237C573052276 - 045C25CD8B92D1461C4F5AC2F1BC2E5DD6B576C0E33CFE03DA7D10EE0642AFF1 - 0000000049454E44AE426082} end object DirectoryLabel: TLabel Left = 46 @@ -160,666 +33,6 @@ object CopyDialog: TCopyDialog Height = 13 Caption = 'Copy 2 selected files to remote directory' end - object CopyImage: TImage - Left = 8 - Top = 11 - Width = 32 - Height = 32 - AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC400000EC401952B0E1B - 00000A4F6943435050686F746F73686F70204943432070726F66696C65000078 - DA9D53675453E9163DF7DEF4424B8880944B6F5215082052428B801491262A21 - 09104A8821A1D91551C1114545041BC8A088038E8E808C15512C0C8A0AD807E4 - 21A28E83A3888ACAFBE17BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C - 9648335135800CA9421E11E083C7C4C6E1E42E40810A2470001008B3642173FD - 230100F87E3C3C2B22C007BE000178D30B0800C04D9BC0301C87FF0FEA42995C - 01808401C07491384B08801400407A8E42A600404601809D98265300A0040060 - CB6362E300502D0060277FE6D300809DF8997B01005B94211501A09100201365 - 884400683B00ACCF568A450058300014664BC43900D82D00304957664800B0B7 - 00C0CE100BB200080C00305188852900047B0060C8232378008499001446F257 - 3CF12BAE10E72A00007899B23CB9243945815B082D710757572E1E28CE49172B - 14366102619A402EC27999193281340FE0F3CC0000A0911511E083F3FD78CE0E - AECECE368EB60E5F2DEABF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2F - B31A803B06806DFEA225EE04685E0BA075F78B66B20F40B500A0E9DA57F370F8 - 7E3C3C45A190B9D9D9E5E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3C - FCF7F5E0BEE22481325D814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB7 - 0BFFFC1DD322C44962B9582A14E35112718E449A8CF332A52289429229C525D2 - FF64E2DF2CFB033EDF3500B06A3E017B912DA85D6303F64B27105874C0E2F700 - 00F2BB6FC1D4280803806883E1CF77FFEF3FFD47A02500806649927100005E44 - 242E54CAB33FC708000044A0812AB0411BF4C1182CC0061CC105DCC10BFC6036 - 844224C4C24210420A64801C726029AC82422886CDB01D2A602FD4401D34C051 - 688693700E2EC255B80E3D700FFA61089EC128BC81090441C808136121DA8801 - 628A58238E08179985F821C14804128B2420C9881451224B91354831528A5420 - 55481DF23D720239875C46BA913BC8003282FC86BC47319481B2513DD40CB543 - B9A8371A8446A20BD06474319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F - 3E43C730C0E8180733C46C302EC6C342B1382C099363CBB122AC0CABC61AB056 - AC03BB89F563CFB17704128145C0093604774220611E4148584C584ED848A820 - 1C243411DA093709038451C2272293A84BB426BA11F9C4186232318758482C23 - D6128F132F107B8843C437241289433227B9900249B1A454D212D246D26E5223 - E92CA99B34481A2393C9DA646BB20739942C202BC885E49DE4C3E433E41BE421 - F25B0A9D624071A4F853E22852CA6A4A19E510E534E5066598324155A39A52DD - A8A15411358F5A42ADA1B652AF5187A81334759A39CD8316494BA5ADA295D31A - 681768F769AFE874BA11DD951E4E97D057D2CBE947E897E803F4770C0D861583 - C7886728199B18071867197718AF984CA619D38B19C754303731EB98E7990F99 - 6F55582AB62A7C1591CA0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB54 - 8FA95E537DAE46553353E3A909D496AB55AA9D50EB531B5367A93BA887AA67A8 - 6F543FA47E59FD890659C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B - 0DAB86758135C426B1CDD97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352 - F394663F07E39871F89C744E09E728A797F37E8ADE14EF29E2291BA6344CB931 - 655C6BAA96979658AB48AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A - 275C2747678FCE059DE753D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477 - BF6EA7EE989EBE5E809E4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806 - B30C2406DB0CCE183CC535716F3C1D2FC7DBF151435DC34043A561956197E184 - 91B9D13CA3D5468D460F8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE - 9A524DB9A629A63B4C3B4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDF - B7605A785A2CB6A8B6B86549B2E45AA659EEB6BC6E855A3959A558555A5DB346 - AD9DAD25D6BBADBBA711A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806 - DBAEB66DB67D6167621767B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D - 5A1D7E73B472143A563ADE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613 - CB29C4699D539BD347671767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BD - E44A74F5715DE17AD2F59D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E - 593373D0C3C843E051E5D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F91 - 57ADD7B0B7A577AAF761EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8 - B7CB4FC36F9E5F85DF437F23FF64FF7AFFD100A78025016703898141815B02FB - F87A7C21BF8E3F3ADB65F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC - 90AD21F7E798CE91CE690E85507EE8D6D00761E6618BC37E0C2785878557863F - 8E7088581AD131973577D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3E - AA2E6A3CDA37BA34BA3FC62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDF - FCEDF387E29DE20BE37B17982FC85D7079A1CEC2F485A716A92E122C3A96404C - 884E3894F041102AA8168C25F21377258E0A79C21DC267222FD136D188D8435C - 2A1E4EF2482A4D7A92EC91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A - 9E169A76206D323D3ABD31839291907142AA214D93B667EA67E66676CBAC6585 - B2FEC56E8BB72F1E9507C96BB390AC05592D0AB642A6E8545A28D72A07B26765 - 5766BFCD89CA3996AB9E2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A586 - 4B572D1D58E6BDAC6A39B23C7179DB0AE315052B865606AC3CB88AB62A6DD54F - ABED5797AE7EBD267A4D6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D - 4F582F59DFB561FA869D1B3E15898AAE14DB1797157FD828DC78E51B876FCABF - 99DC94B4A9ABC4B964CF66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40D - DF56B4EDF5F645DB2F97CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A4 - 54F454FA5436EED2DDB561D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB - 5501554DD566D565FB49FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203 - FD07230EB6D7B9D4D51DD23D54528FD62BEB470EC71FBEFE9DEF772D0D360D55 - 8D9CC6E223704479E4E9F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A - 429AF29A469B539AFB5B625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794A - F354C969DAE982D39367F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F - 6FEFBA1074E1D245FF8BE73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6D - EA74EA3CFE93D34FC7BB9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4 - BD79F116FFD6D59E393DDDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727 - EEADBC4FBC5FF440ED41D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7 - 068583CFFE91F58F0F43058F998FCB860D86EB9E383E3939E23F72FDE9FCA743 - CF64CF269E17FEA2FECBAE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5 - FDEAC0EB19AFDBC6C2C61EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE4 - 7C207F28FF68F9B1F553D0A7FB93199393FF040398F3FC63332DDB0000050849 - 44415478DAC595695053571886DF7B430BCA561014A984C5B4D2EA4C7FF4577F - B423A555B1823A5A47AB2D28028AB5A238AE84A575C17504092140AD6D411110 - 8B20303054ACD4629719A7A85470AA550421204B22096639BDB957C396E48665 - C693B9736E4ECEF9DEE7BCE77C5F2842085E66A30C00B19935A3A5A8556B1194 - BE2940391E7183B611E058E45C586386617EFE2F77F04763DB35B596CC1F0FC4 - 08009DDE3A236AFE7E882E851ABF35B48E0B62048046671D40C3830EC87B541C - C4ED963A8A42F0B1A8808E31036C935D26C7A302A0D6E8B13BFBB2C54507D707 - A05BA1427B4F1F0BF1848568AEA729FAC3D142180162A4D5E4C4C640F43DD35B - B5D0D60690770F4074F6AA70ED56F3AD94E88FE68C09608BA492A46C9A0765BF - 0E7BB2AA2D2E3A101188FB6D3DB8CADC839EBE7EE378ABBC1BA95FCEA7C604B0 - 39B5829CFC6A017A553AAB17EB99750FDB7BF180790CEF95D7EF206D4BD0D800 - 369D282369310B991D69119755C97F0493268F46876994C96C3102441F2F2192 - ADC1E86200AC69FB736B311175C308B0E16831498F0D41A7528BF8CC0ADEA093 - 1D1D311175C3081079F802916E5F820EA5750E1CCEFB1563AE1BFFB4FECE887E - 6248592340C4C14292BE63190B90282BE50D68EFFC1A26A26E1C8D9CDBC10284 - EFCF27D29D9F42AED40C59ACD16B105F1989A6CE9B381294035FD759ECF891B3 - 57311175838931870558FB4D1E91EE5A01B9428B24D94576911E5AD4531950B9 - 35C1CEE955F4FEABC7BB2416F6F084BD931326A26E30312816202C29974877AF - 42BB4263DCB9B82A1CF57DB598E2E7CC8EF575A8A169112065D1791496B5C054 - DDD0E9B510D03626414CD50D260607F045C28F44BA67350B909451809B822CA8 - DDEF1AC599F3629FA70CC493BBFD78CF360EA7B7460CA91B2AD289EBFDC91050 - B678DF769F5947BE0EFF184AF5331CCAB90249CC420E604DDCF7441AB7066DBD - 1A2456AFC78DA79759718AF970E202AEA76928E5CC3936F6A124BC026E93456C - D0C78A47083F1F0C3B0F1AF79B1EE2AFCD6DBCF7224E568EF46DC11CC0677B4E - 11A9389405083935070E33757070B76776430F05607AC3584FBB128A076A4897 - 1421A3E04FD4E90EC043648F193E9EA8ADAAC382574E9B77207201DB8B6565C8 - D8BE980358B52B9B48C461EC11FCD7DD881D15CB61370370767718226EE80534 - D7773117ABEB9E1276369330C9538019DEAFB373AE54D6A22EFA31AF03E28C52 - 64EE58CA01ACDC9945D2C46B992CE02EA101622703612FB481CB34A741100C00 - FBCE7DEF6CEB824EA3839741FC39D8CF1557308FCE362B9C18B588EDE3D38B91 - B57BF900C0F0892A411B6E3B6662BABF135CA7B970F6D3F44847861D51557935 - 6A37B4F23A102FF909DFEE5DC1015094E97F5161B2EB6CE6971A5F7F2F37778F - 29439C18001804C400565CAA44209199154E880A790E5084EFC42B2D030C8678 - E32D1FB7A9D3A7B22226C59F835D2A2D474D440BAF03096985389DB09A1F6030 - 84FF6C919B87A78769719ACB90E28B2508D04ACC5FBE0D4B398093F9F821E973 - EB00FC925D847A425D9D39CB4FE8EDEB654CC791F74180A2E20BA85AF788D781 - C4D473C8D917CA0FF0425CC48A0B2DDA6F48D1820B85F8409D6A36DEDE8DCB38 - 8094333873609D658001F199429F17E2343DC88191452AAFE81CCAC39A791D48 - 3A918BB3C9EBCD03CC4D84CD3D5B978637FD45221F5FEF1119201826FC022CB7 - 301765A1D600E420EF508465077C0EBADE60BA7778A30D6A8E5A6FBCADD868D5 - 5C23C0CB6CFF03EC5E1AEEAAEE4ADC0000000049454E44AE426082} - end - object CopyUploadImage: TImage - Left = 8 - Top = 11 - Width = 32 - Height = 32 - AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC400000EC401952B0E1B - 00000A4F6943435050686F746F73686F70204943432070726F66696C65000078 - DA9D53675453E9163DF7DEF4424B8880944B6F5215082052428B801491262A21 - 09104A8821A1D91551C1114545041BC8A088038E8E808C15512C0C8A0AD807E4 - 21A28E83A3888ACAFBE17BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C - 9648335135800CA9421E11E083C7C4C6E1E42E40810A2470001008B3642173FD - 230100F87E3C3C2B22C007BE000178D30B0800C04D9BC0301C87FF0FEA42995C - 01808401C07491384B08801400407A8E42A600404601809D98265300A0040060 - CB6362E300502D0060277FE6D300809DF8997B01005B94211501A09100201365 - 884400683B00ACCF568A450058300014664BC43900D82D00304957664800B0B7 - 00C0CE100BB200080C00305188852900047B0060C8232378008499001446F257 - 3CF12BAE10E72A00007899B23CB9243945815B082D710757572E1E28CE49172B - 14366102619A402EC27999193281340FE0F3CC0000A0911511E083F3FD78CE0E - AECECE368EB60E5F2DEABF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2F - B31A803B06806DFEA225EE04685E0BA075F78B66B20F40B500A0E9DA57F370F8 - 7E3C3C45A190B9D9D9E5E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3C - FCF7F5E0BEE22481325D814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB7 - 0BFFFC1DD322C44962B9582A14E35112718E449A8CF332A52289429229C525D2 - FF64E2DF2CFB033EDF3500B06A3E017B912DA85D6303F64B27105874C0E2F700 - 00F2BB6FC1D4280803806883E1CF77FFEF3FFD47A02500806649927100005E44 - 242E54CAB33FC708000044A0812AB0411BF4C1182CC0061CC105DCC10BFC6036 - 844224C4C24210420A64801C726029AC82422886CDB01D2A602FD4401D34C051 - 688693700E2EC255B80E3D700FFA61089EC128BC81090441C808136121DA8801 - 628A58238E08179985F821C14804128B2420C9881451224B91354831528A5420 - 55481DF23D720239875C46BA913BC8003282FC86BC47319481B2513DD40CB543 - B9A8371A8446A20BD06474319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F - 3E43C730C0E8180733C46C302EC6C342B1382C099363CBB122AC0CABC61AB056 - AC03BB89F563CFB17704128145C0093604774220611E4148584C584ED848A820 - 1C243411DA093709038451C2272293A84BB426BA11F9C4186232318758482C23 - D6128F132F107B8843C437241289433227B9900249B1A454D212D246D26E5223 - E92CA99B34481A2393C9DA646BB20739942C202BC885E49DE4C3E433E41BE421 - F25B0A9D624071A4F853E22852CA6A4A19E510E534E5066598324155A39A52DD - A8A15411358F5A42ADA1B652AF5187A81334759A39CD8316494BA5ADA295D31A - 681768F769AFE874BA11DD951E4E97D057D2CBE947E897E803F4770C0D861583 - C7886728199B18071867197718AF984CA619D38B19C754303731EB98E7990F99 - 6F55582AB62A7C1591CA0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB54 - 8FA95E537DAE46553353E3A909D496AB55AA9D50EB531B5367A93BA887AA67A8 - 6F543FA47E59FD890659C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B - 0DAB86758135C426B1CDD97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352 - F394663F07E39871F89C744E09E728A797F37E8ADE14EF29E2291BA6344CB931 - 655C6BAA96979658AB48AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A - 275C2747678FCE059DE753D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477 - BF6EA7EE989EBE5E809E4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806 - B30C2406DB0CCE183CC535716F3C1D2FC7DBF151435DC34043A561956197E184 - 91B9D13CA3D5468D460F8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE - 9A524DB9A629A63B4C3B4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDF - B7605A785A2CB6A8B6B86549B2E45AA659EEB6BC6E855A3959A558555A5DB346 - AD9DAD25D6BBADBBA711A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806 - DBAEB66DB67D6167621767B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D - 5A1D7E73B472143A563ADE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613 - CB29C4699D539BD347671767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BD - E44A74F5715DE17AD2F59D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E - 593373D0C3C843E051E5D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F91 - 57ADD7B0B7A577AAF761EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8 - B7CB4FC36F9E5F85DF437F23FF64FF7AFFD100A78025016703898141815B02FB - F87A7C21BF8E3F3ADB65F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC - 90AD21F7E798CE91CE690E85507EE8D6D00761E6618BC37E0C2785878557863F - 8E7088581AD131973577D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3E - AA2E6A3CDA37BA34BA3FC62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDF - FCEDF387E29DE20BE37B17982FC85D7079A1CEC2F485A716A92E122C3A96404C - 884E3894F041102AA8168C25F21377258E0A79C21DC267222FD136D188D8435C - 2A1E4EF2482A4D7A92EC91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A - 9E169A76206D323D3ABD31839291907142AA214D93B667EA67E66676CBAC6585 - B2FEC56E8BB72F1E9507C96BB390AC05592D0AB642A6E8545A28D72A07B26765 - 5766BFCD89CA3996AB9E2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A586 - 4B572D1D58E6BDAC6A39B23C7179DB0AE315052B865606AC3CB88AB62A6DD54F - ABED5797AE7EBD267A4D6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D - 4F582F59DFB561FA869D1B3E15898AAE14DB1797157FD828DC78E51B876FCABF - 99DC94B4A9ABC4B964CF66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40D - DF56B4EDF5F645DB2F97CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A4 - 54F454FA5436EED2DDB561D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB - 5501554DD566D565FB49FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203 - FD07230EB6D7B9D4D51DD23D54528FD62BEB470EC71FBEFE9DEF772D0D360D55 - 8D9CC6E223704479E4E9F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A - 429AF29A469B539AFB5B625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794A - F354C969DAE982D39367F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F - 6FEFBA1074E1D245FF8BE73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6D - EA74EA3CFE93D34FC7BB9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4 - BD79F116FFD6D59E393DDDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727 - EEADBC4FBC5FF440ED41D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7 - 068583CFFE91F58F0F43058F998FCB860D86EB9E383E3939E23F72FDE9FCA743 - CF64CF269E17FEA2FECBAE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5 - FDEAC0EB19AFDBC6C2C61EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE4 - 7C207F28FF68F9B1F553D0A7FB93199393FF040398F3FC63332DDB0000047C49 - 44415478DAC5D7FD4F13771C07F0F79D0CD962743A445A226324F8906DC9B2BF - 00349BC6CD873D68E634A871C236E4490C0803864325634070424B4197E06662 - 18CAF3830427D36C93C46C6E0E06D5E97808D227A0A594428F7E7777A5DC1558 - BDAB3FEC935CEF7AB9EF7D5EFDF6DED72B4508C1FF591407A0284AD6A0639A1B - 32D5D4CF76866C51C54559C57BF9DEBE020A63222165F2B8F357DFD2A2B37778 - 01E2A901334E6913D1F1C70046C7EDF8E5AFC71E88A7063866A4017AFA8DD09B - 27DD885F29902D85B151469F01C9653F90A2D828D81D4EA49FBFE1F5D8BC8FA2 - 30363E0983D9C623463844F7E03D9AA23715C4441A7D0224AADA49F1279B619B - 764A3A7EA91F601813212C93F8A96BB08B3DC72B3E01124AAE91B3716FC23A35 - 838C8AEB5E8F3D736433FA7466DCBC3700CBC4D4DCFE21C318D873503E018E9E - 6D21E712B6C2323923798C93ED3368B0B0180BBFDDD6D90BF61C2E404A7987AC - 5CDB6D3694246D83D9C620B3A24D16FE8BC36FC06A9FC697DFFD88D2A46D0240 - 4EAE8F1637A234793B465980AF95A96981EAD8764F80D45CC715D54395B20326 - 2B83ECF256793310B3955F67699A51767CA727406AAEE30A6BA13EBE0B46ABEF - 339055D688F2D4775C00EEC62227D7F10557A14A7D8F07E4681A6535CE897D9B - 5F67ABEA5091FEBE0B90A4BE2E2BD7F15F55439DB61B06ABC3E719C82EADC585 - CFF6B80089A56DB2721D9FFF3DD427F6C030CEE0A4A61E9D0F97B063E5457979 - 8013BF97BFEB02C47FDD2A2BD709F997A14EDF0BFDB883BF70A3F36EE2B955A1 - 78312C1C34EBA0D917EEDE42F30BFB634C8BB667EF39576A6AF1E8E22E1720AE - B899C8C9B565C40475C63E1E905B56033B43E1B77E7FAC0DDF2819E101F8B4A8 - 81C8C97542DE25A833F7436711AE01FD981DC925B7B122284C12E26A6D9D00F8 - B8A08EC8C9B5D964803AEB000F38ADBE32B77F8A9D89BB43CF2254C24CD4D689 - 0031F935444EAE93CE54A234EB20FF1588AB4F67456AD91D8484AD87521932DB - 7871447D7DBD003892574DE4E4DA6C32A224EB109B028747F334CD1D2842D721 - 5811C23605DFF0BF100D8D0D02E0F0E92A2227D72979951EEF27193F749B9EC7 - 4B11AF628D422934F682686A12010EE55E26E25CCBA9E89D9B9070EE36024322 - 10B446096AB6D193102DCD8D02E0E0C94BC49D6B39F5CFB01589259D58A58C40 - 6050F0ECF4520B107ADD1018C7B4C785D9DAD22400A23FFF9688732DA526A6D9 - EC0F2C85226C2302572B663F1916200CBAC7D0F6FCC93D80DA22D66D087523DA - AE350B80FD9995647EAE9F54FB4E75C07F65185E581D2C5C5CF310463DDB5CDB - 6524141DE947A87127616EB911ED6D22C08719DF90C572EDADBA7501600294EC - DD6F83E83B16102386613CB8DFCD37EFAFDCD1C58D098F6E087523EE6B7B04C0 - DE13E7C962B9F656CC8C13B917EF42ABA71720464D3A3C7CE0D9DC5D3C024C3B - 08AC2CE0751EF0415A05999F6BA988531CC22020B8E67D7FF71809BDB0F95CE5 - E4D0ECE29CFB63C20164751615F71CA91D5D012C5B8B65CB5762E051AFF7E61E - 637DFC6734BF5EDE5DE53F11F04C15BBF99A935EF29694E66EC0BFA47D0DEEB2 - 16CA900000000049454E44AE426082} - end - object CopyDownloadImage: TImage - Left = 8 - Top = 11 - Width = 32 - Height = 32 - AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC400000EC401952B0E1B - 00000A4F6943435050686F746F73686F70204943432070726F66696C65000078 - DA9D53675453E9163DF7DEF4424B8880944B6F5215082052428B801491262A21 - 09104A8821A1D91551C1114545041BC8A088038E8E808C15512C0C8A0AD807E4 - 21A28E83A3888ACAFBE17BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C - 9648335135800CA9421E11E083C7C4C6E1E42E40810A2470001008B3642173FD - 230100F87E3C3C2B22C007BE000178D30B0800C04D9BC0301C87FF0FEA42995C - 01808401C07491384B08801400407A8E42A600404601809D98265300A0040060 - CB6362E300502D0060277FE6D300809DF8997B01005B94211501A09100201365 - 884400683B00ACCF568A450058300014664BC43900D82D00304957664800B0B7 - 00C0CE100BB200080C00305188852900047B0060C8232378008499001446F257 - 3CF12BAE10E72A00007899B23CB9243945815B082D710757572E1E28CE49172B - 14366102619A402EC27999193281340FE0F3CC0000A0911511E083F3FD78CE0E - AECECE368EB60E5F2DEABF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2F - B31A803B06806DFEA225EE04685E0BA075F78B66B20F40B500A0E9DA57F370F8 - 7E3C3C45A190B9D9D9E5E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3C - FCF7F5E0BEE22481325D814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB7 - 0BFFFC1DD322C44962B9582A14E35112718E449A8CF332A52289429229C525D2 - FF64E2DF2CFB033EDF3500B06A3E017B912DA85D6303F64B27105874C0E2F700 - 00F2BB6FC1D4280803806883E1CF77FFEF3FFD47A02500806649927100005E44 - 242E54CAB33FC708000044A0812AB0411BF4C1182CC0061CC105DCC10BFC6036 - 844224C4C24210420A64801C726029AC82422886CDB01D2A602FD4401D34C051 - 688693700E2EC255B80E3D700FFA61089EC128BC81090441C808136121DA8801 - 628A58238E08179985F821C14804128B2420C9881451224B91354831528A5420 - 55481DF23D720239875C46BA913BC8003282FC86BC47319481B2513DD40CB543 - B9A8371A8446A20BD06474319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F - 3E43C730C0E8180733C46C302EC6C342B1382C099363CBB122AC0CABC61AB056 - AC03BB89F563CFB17704128145C0093604774220611E4148584C584ED848A820 - 1C243411DA093709038451C2272293A84BB426BA11F9C4186232318758482C23 - D6128F132F107B8843C437241289433227B9900249B1A454D212D246D26E5223 - E92CA99B34481A2393C9DA646BB20739942C202BC885E49DE4C3E433E41BE421 - F25B0A9D624071A4F853E22852CA6A4A19E510E534E5066598324155A39A52DD - A8A15411358F5A42ADA1B652AF5187A81334759A39CD8316494BA5ADA295D31A - 681768F769AFE874BA11DD951E4E97D057D2CBE947E897E803F4770C0D861583 - C7886728199B18071867197718AF984CA619D38B19C754303731EB98E7990F99 - 6F55582AB62A7C1591CA0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB54 - 8FA95E537DAE46553353E3A909D496AB55AA9D50EB531B5367A93BA887AA67A8 - 6F543FA47E59FD890659C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B - 0DAB86758135C426B1CDD97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352 - F394663F07E39871F89C744E09E728A797F37E8ADE14EF29E2291BA6344CB931 - 655C6BAA96979658AB48AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A - 275C2747678FCE059DE753D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477 - BF6EA7EE989EBE5E809E4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806 - B30C2406DB0CCE183CC535716F3C1D2FC7DBF151435DC34043A561956197E184 - 91B9D13CA3D5468D460F8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE - 9A524DB9A629A63B4C3B4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDF - B7605A785A2CB6A8B6B86549B2E45AA659EEB6BC6E855A3959A558555A5DB346 - AD9DAD25D6BBADBBA711A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806 - DBAEB66DB67D6167621767B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D - 5A1D7E73B472143A563ADE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613 - CB29C4699D539BD347671767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BD - E44A74F5715DE17AD2F59D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E - 593373D0C3C843E051E5D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F91 - 57ADD7B0B7A577AAF761EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8 - B7CB4FC36F9E5F85DF437F23FF64FF7AFFD100A78025016703898141815B02FB - F87A7C21BF8E3F3ADB65F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC - 90AD21F7E798CE91CE690E85507EE8D6D00761E6618BC37E0C2785878557863F - 8E7088581AD131973577D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3E - AA2E6A3CDA37BA34BA3FC62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDF - FCEDF387E29DE20BE37B17982FC85D7079A1CEC2F485A716A92E122C3A96404C - 884E3894F041102AA8168C25F21377258E0A79C21DC267222FD136D188D8435C - 2A1E4EF2482A4D7A92EC91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A - 9E169A76206D323D3ABD31839291907142AA214D93B667EA67E66676CBAC6585 - B2FEC56E8BB72F1E9507C96BB390AC05592D0AB642A6E8545A28D72A07B26765 - 5766BFCD89CA3996AB9E2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A586 - 4B572D1D58E6BDAC6A39B23C7179DB0AE315052B865606AC3CB88AB62A6DD54F - ABED5797AE7EBD267A4D6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D - 4F582F59DFB561FA869D1B3E15898AAE14DB1797157FD828DC78E51B876FCABF - 99DC94B4A9ABC4B964CF66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40D - DF56B4EDF5F645DB2F97CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A4 - 54F454FA5436EED2DDB561D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB - 5501554DD566D565FB49FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203 - FD07230EB6D7B9D4D51DD23D54528FD62BEB470EC71FBEFE9DEF772D0D360D55 - 8D9CC6E223704479E4E9F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A - 429AF29A469B539AFB5B625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794A - F354C969DAE982D39367F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F - 6FEFBA1074E1D245FF8BE73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6D - EA74EA3CFE93D34FC7BB9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4 - BD79F116FFD6D59E393DDDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727 - EEADBC4FBC5FF440ED41D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7 - 068583CFFE91F58F0F43058F998FCB860D86EB9E383E3939E23F72FDE9FCA743 - CF64CF269E17FEA2FECBAE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5 - FDEAC0EB19AFDBC6C2C61EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE4 - 7C207F28FF68F9B1F553D0A7FB93199393FF040398F3FC63332DDB000004D549 - 44415478DAC5D57B4C53571C07F0EF2D20EA988FE1C6746E5133B3CDB947E23F - FEC102E8782B2AC294E10604854D1CF8C0898C32943932A306105A0A84E03693 - 6D71C1071146E6603EB6F8C7B63883524129A5F22AB4F6455BE8BD67B7F7DA42 - D76A7AC1C4D334A7BD39F7FC3EE777CFEF5C8A1082A7D9283B80A2284137ED95 - B50A54537F586C24529215667C6280E319A1F02679F6F9CF5CB983EBF2018F88 - 690168C6BB44B4FDDB0BADC1823F6FF7BB21A60518A7BD0374288731A4333B10 - 7F532091C733C386A70CD853F51B39911906CB388383B5AD8F1D5BB23D0C0F0C - 66A875A31C426347DC52DD1451A23576C4940039925F49E9A76B313AC67835DE - DF17503F9884D09B71AD5DD55EB6F3FD9553026457FC42CAB22260B4D2C8AFB9 - F4D8B15FEF588B9E411D2EDFEC85DE64755EEF533F40F9AE486A4A805D654DE4 - 647614F466DAEB7B18368E4AAD67317AEE77CB75392A72A279C0BEEA364175CD - 300C4AD243D83D405050D322087F383D1C46CB18BEF9FE7748F6C44E0004D5F5 - D53B18D48E2231740566F8FA0802385A81AC09D27D71AE00A175AD541BD0A9E8 - 875772470632A2B85E2CBB08D9FE8DAE80A9D4F5DD7E1DB684BD8959FE7E8232 - 20AE6A44CD81781E603F58A653D7D76E2A613119E1CD8BAD28731DD7174ACEA1 - 363F9107EC965E9A765DCB551AA4C5ACF238BE5B23C7FEA66D581EB8128723AA - E127F24361E559D4156CE10139952D4FA4AE4D7ABDDB7813FAF017751C739689 - 60D18FE1EDD9C1F82AA20EC5D20BA82F4CE2019F95374FB9AEBB07B4EC3F1157 - D7B9C9612E63145A39721A37C36F118DD90B6672D746EEE9F0168B98D1198B6F - 8B52784056E94552B13B06BA519BA0BABE622DC0BC393E3816751AF567BB6036 - 4E64C044F5E31F9F523CF7AA3F9E59308B05D3EC977122FC0797C16ABBEACF01 - 769EB8402AF7AC8796050869AB4E0661C9F297611960F0BA652FBEF868AB73E5 - B94D090878C50F01CFCFE60E2E7B700782B01F3BC2346C69E0009F1C3B4724FB - E23062B4A1B0BAD96B40F3782A82C35743A5E8C340A709EF58B341C3821BFEE5 - 58F8DA3CCC7D2100F4A4C08EDE7ECDA836B108BD9203641C6D20D2DC8D18360A - CBC06AC98B088908E62655F5A860BACF86A7CD085C1A80F94173F9608C6B707B - AF531BA1E9B4624C64E2DF863B4ACE10C9E79B394091ACD16B400BB31D6BA242 - F889D940BD3DF7E1E3E783C0A0F9FF5BF144702DFB3232296D58A24EC1F91231 - BF09D38FFC44A40712A1368E0BCA4070D5428447AF75591D9F72D715D30CDF6B - 06B5E8EFD063852103B3E820FC78348307A415FF40A4791F406DB0E190ECBCD7 - 804B5426A262231E6E32F7D5329330EA81117477F40EB36765A8324FD3EE9883 - 03A41E3A4DA407933064109681D09A45885D17ED12C80DC1E286FA87D0795BE1 - 16DC09F8F8CBEF88343F9903145735780D68F5CDC286B8F57CDA19DA2362A06F - 101DED9D1E833B01DB0A4E1169C1360CEA856520BCEE25C46FD8E421EDB4B3FC - 7ABA7B71577E4F29A2C87BF7F2B44A8F800FF3EB88549CC2018E487FF61A7079 - 66361237254C2A35CF8FA1A75B89AE47203840525E2DA914A70ADE03D1F58BB1 - 357ECB230F1BC71EB0F70A0E71D70DC101B61EA82115E234B60A8401624E2D46 - 7242B23310EDF6185C33A3E8EEC19D8EAEAEA556ED1B6D45B0B90004457ED86E - 3D5B0583AF42E86D37140735EFBA64E069B6FF00B71B20ECE5EE5A9600000000 - 49454E44AE426082} - end - object MoveDownloadImage: TImage - Left = 8 - Top = 11 - Width = 32 - Height = 32 - AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC400000EC401952B0E1B - 00000A4F6943435050686F746F73686F70204943432070726F66696C65000078 - DA9D53675453E9163DF7DEF4424B8880944B6F5215082052428B801491262A21 - 09104A8821A1D91551C1114545041BC8A088038E8E808C15512C0C8A0AD807E4 - 21A28E83A3888ACAFBE17BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C - 9648335135800CA9421E11E083C7C4C6E1E42E40810A2470001008B3642173FD - 230100F87E3C3C2B22C007BE000178D30B0800C04D9BC0301C87FF0FEA42995C - 01808401C07491384B08801400407A8E42A600404601809D98265300A0040060 - CB6362E300502D0060277FE6D300809DF8997B01005B94211501A09100201365 - 884400683B00ACCF568A450058300014664BC43900D82D00304957664800B0B7 - 00C0CE100BB200080C00305188852900047B0060C8232378008499001446F257 - 3CF12BAE10E72A00007899B23CB9243945815B082D710757572E1E28CE49172B - 14366102619A402EC27999193281340FE0F3CC0000A0911511E083F3FD78CE0E - AECECE368EB60E5F2DEABF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2F - B31A803B06806DFEA225EE04685E0BA075F78B66B20F40B500A0E9DA57F370F8 - 7E3C3C45A190B9D9D9E5E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3C - FCF7F5E0BEE22481325D814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB7 - 0BFFFC1DD322C44962B9582A14E35112718E449A8CF332A52289429229C525D2 - FF64E2DF2CFB033EDF3500B06A3E017B912DA85D6303F64B27105874C0E2F700 - 00F2BB6FC1D4280803806883E1CF77FFEF3FFD47A02500806649927100005E44 - 242E54CAB33FC708000044A0812AB0411BF4C1182CC0061CC105DCC10BFC6036 - 844224C4C24210420A64801C726029AC82422886CDB01D2A602FD4401D34C051 - 688693700E2EC255B80E3D700FFA61089EC128BC81090441C808136121DA8801 - 628A58238E08179985F821C14804128B2420C9881451224B91354831528A5420 - 55481DF23D720239875C46BA913BC8003282FC86BC47319481B2513DD40CB543 - B9A8371A8446A20BD06474319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F - 3E43C730C0E8180733C46C302EC6C342B1382C099363CBB122AC0CABC61AB056 - AC03BB89F563CFB17704128145C0093604774220611E4148584C584ED848A820 - 1C243411DA093709038451C2272293A84BB426BA11F9C4186232318758482C23 - D6128F132F107B8843C437241289433227B9900249B1A454D212D246D26E5223 - E92CA99B34481A2393C9DA646BB20739942C202BC885E49DE4C3E433E41BE421 - F25B0A9D624071A4F853E22852CA6A4A19E510E534E5066598324155A39A52DD - A8A15411358F5A42ADA1B652AF5187A81334759A39CD8316494BA5ADA295D31A - 681768F769AFE874BA11DD951E4E97D057D2CBE947E897E803F4770C0D861583 - C7886728199B18071867197718AF984CA619D38B19C754303731EB98E7990F99 - 6F55582AB62A7C1591CA0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB54 - 8FA95E537DAE46553353E3A909D496AB55AA9D50EB531B5367A93BA887AA67A8 - 6F543FA47E59FD890659C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B - 0DAB86758135C426B1CDD97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352 - F394663F07E39871F89C744E09E728A797F37E8ADE14EF29E2291BA6344CB931 - 655C6BAA96979658AB48AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A - 275C2747678FCE059DE753D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477 - BF6EA7EE989EBE5E809E4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806 - B30C2406DB0CCE183CC535716F3C1D2FC7DBF151435DC34043A561956197E184 - 91B9D13CA3D5468D460F8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE - 9A524DB9A629A63B4C3B4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDF - B7605A785A2CB6A8B6B86549B2E45AA659EEB6BC6E855A3959A558555A5DB346 - AD9DAD25D6BBADBBA711A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806 - DBAEB66DB67D6167621767B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D - 5A1D7E73B472143A563ADE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613 - CB29C4699D539BD347671767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BD - E44A74F5715DE17AD2F59D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E - 593373D0C3C843E051E5D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F91 - 57ADD7B0B7A577AAF761EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8 - B7CB4FC36F9E5F85DF437F23FF64FF7AFFD100A78025016703898141815B02FB - F87A7C21BF8E3F3ADB65F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC - 90AD21F7E798CE91CE690E85507EE8D6D00761E6618BC37E0C2785878557863F - 8E7088581AD131973577D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3E - AA2E6A3CDA37BA34BA3FC62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDF - FCEDF387E29DE20BE37B17982FC85D7079A1CEC2F485A716A92E122C3A96404C - 884E3894F041102AA8168C25F21377258E0A79C21DC267222FD136D188D8435C - 2A1E4EF2482A4D7A92EC91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A - 9E169A76206D323D3ABD31839291907142AA214D93B667EA67E66676CBAC6585 - B2FEC56E8BB72F1E9507C96BB390AC05592D0AB642A6E8545A28D72A07B26765 - 5766BFCD89CA3996AB9E2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A586 - 4B572D1D58E6BDAC6A39B23C7179DB0AE315052B865606AC3CB88AB62A6DD54F - ABED5797AE7EBD267A4D6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D - 4F582F59DFB561FA869D1B3E15898AAE14DB1797157FD828DC78E51B876FCABF - 99DC94B4A9ABC4B964CF66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40D - DF56B4EDF5F645DB2F97CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A4 - 54F454FA5436EED2DDB561D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB - 5501554DD566D565FB49FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203 - FD07230EB6D7B9D4D51DD23D54528FD62BEB470EC71FBEFE9DEF772D0D360D55 - 8D9CC6E223704479E4E9F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A - 429AF29A469B539AFB5B625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794A - F354C969DAE982D39367F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F - 6FEFBA1074E1D245FF8BE73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6D - EA74EA3CFE93D34FC7BB9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4 - BD79F116FFD6D59E393DDDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727 - EEADBC4FBC5FF440ED41D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7 - 068583CFFE91F58F0F43058F998FCB860D86EB9E383E3939E23F72FDE9FCA743 - CF64CF269E17FEA2FECBAE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5 - FDEAC0EB19AFDBC6C2C61EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE4 - 7C207F28FF68F9B1F553D0A7FB93199393FF040398F3FC63332DDB000004E749 - 44415478DAC5D57B4C53571C07F06FED03457C653AD4A91B9B0ABA255BE23F66 - E9228A22E8C4C97CE023024560934C9C2E130D6C1AA3268B1A9D4A05D4683614 - 9C0EE796C590188D828B7F3A0396675FC8E8030A7DD0D7BDF7ECF6D6B674AD70 - EF58E621E4A437E79CDFE7F7BBE7DC232284E05536910F201289044DBA78F1B2 - 40B5E891CB356E6551D146FB7F065028B241D3F488637DEB7774A8D1D8F84754 - C4A8001445F11AEF700CC26030A2A1E15104E27F0178BD143C1E0F8C46231E3E - 7CF484A2A4CB0B0BB798470DF07ABD686E560D3B76E1C22488C562B8DD1E0EE1 - AF44E3538A922DF3214605F02DC8A7C96432300C1344F82AC1229A148A9CF746 - 0570B38BA99EB50C3B36694162D4E7D53F5E435E5E8E687400B75BD0BC304075 - 4D08B0B7F2BEA0731D2B72A334673908ED454B4B9BA0C08989F3B8FEEAD5DA70 - C0898264F0F928FAC6DF686885C1E2C0F69444C824E27F55816BD10034C3AF10 - F7FFD4C36273E1B9D906F99B5248C4FC5FE1FCF973FD806BD723015E9A1F40A5 - 33C338E0E410EA9E7EE42E4F426C8C4450056A6A7E0A01F654DC23270B97C2E5 - 65B0FFC2BD61271EDBB114FD36274C03831CA28F45A83406AC5C381131923123 - 069E3BEF1DAEAF1D0AD8ADBC4B4E7D9E82410FC34BEF4BD6D43F046175A2ED79 - 2F8A33DE8F3ABEBDAF153B6F672369DABB3891A684542C456DED8D10A0F85C3D - 395D940ABB9BC681AABBC3063F9A9F02AD61000F9EEA6175848E61B7A91F0AF9 - 8C88F13ABB06A58F8B219D45E0B27AB028EE439C4AAF44DDCDDB21C017DFDF21 - 6776A5C1EA1CF9760B34869DD765B2B27BC0C2FE1A83FAC72D38AA90878DE960 - 33CFFD7913243369C44E1DCB3DEBED1CE01072473A0A76E4F90145A77E276777 - AFC2C02085D2AA7ADE8887EE524C9E28C6F1B46A5CBED58E82A5B323321F3747 - 82F153C7B1609AFD67828899D6B7D16D6B88E1003B4FFE4ACE7DB90696417EB7 - 5BA02D3A138FB7E6CD86AB8741926B0F4EE767063357DCCAC2F83932C44D8BE5 - EE015FF00082B07F3E84C3ECAAE3009F1DFF8594EFCD40AF9DC23795777803EE - 7873205FB1185D9A6EF4B4397026B91C4EDAC9653E39210E935E8F033D2470A0 - F73DB39B1C2CC2AAE30005DFD511E5579FC06C175681C5E5D3B12455CE2DDAA5 - ED82B39B828B72624AC2044C899FE40FC68407F7F503263BEC9D6ED889C37F1B - E61FBB41CABFFE94031CACF88D37A09ED98165694BFC0BB381F4DAE7104BC578 - 2D7ECA3F320E05B718AC70EABDC88ACD474961897F13E61DB94E94FB36C064F7 - 0AAA80FCFC0CAC484F09CBCE5FF2F08C69C6DFF7192CE86DB362FBE4224C934C - 0F1DC3DCC3354459B211261B854315B77903EE8A0A91B63AF5C5268BCC961982 - 31F5F442ADD29BD98F7DB2AEA4AF29B00607C839544D94FB37C368135681E4AA - 9958FD717A58A008048B33FE6544DB334D44F02060FBB73F10E581AD1CE0F0F9 - 3ADE807B9222ACCD58E32F3B434745F4741BA06A6A8B1A3C08D8567A85284BB7 - C1601556811597DE40E6DA7551CA4E078F9F56AD47474BA76E8C887CD45962D1 - 45056C39708928CBB239C011E54DDE8007637761C3BAF5438E5AF4D7A055EBD0 - FE120407D85C72819C2BCB11BC07D22FCF4256E6A6977E6C027BC0D76B384447 - 04820364EDAB2267CB72D953200CB0EACA2C6C5DBF3518888E780DE195D1A8B5 - 6855B5B727B82D0BEE1F0415061014F9456B9E701E368946E8B4279AFD7D1F84 - 55E055B6BF01BE2AF7DD2F2E1B0C0000000049454E44AE426082} - end - object MoveUploadImage: TImage - Left = 8 - Top = 11 - Width = 32 - Height = 32 - AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC400000EC401952B0E1B - 00000A4F6943435050686F746F73686F70204943432070726F66696C65000078 - DA9D53675453E9163DF7DEF4424B8880944B6F5215082052428B801491262A21 - 09104A8821A1D91551C1114545041BC8A088038E8E808C15512C0C8A0AD807E4 - 21A28E83A3888ACAFBE17BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C - 9648335135800CA9421E11E083C7C4C6E1E42E40810A2470001008B3642173FD - 230100F87E3C3C2B22C007BE000178D30B0800C04D9BC0301C87FF0FEA42995C - 01808401C07491384B08801400407A8E42A600404601809D98265300A0040060 - CB6362E300502D0060277FE6D300809DF8997B01005B94211501A09100201365 - 884400683B00ACCF568A450058300014664BC43900D82D00304957664800B0B7 - 00C0CE100BB200080C00305188852900047B0060C8232378008499001446F257 - 3CF12BAE10E72A00007899B23CB9243945815B082D710757572E1E28CE49172B - 14366102619A402EC27999193281340FE0F3CC0000A0911511E083F3FD78CE0E - AECECE368EB60E5F2DEABF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2F - B31A803B06806DFEA225EE04685E0BA075F78B66B20F40B500A0E9DA57F370F8 - 7E3C3C45A190B9D9D9E5E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3C - FCF7F5E0BEE22481325D814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB7 - 0BFFFC1DD322C44962B9582A14E35112718E449A8CF332A52289429229C525D2 - FF64E2DF2CFB033EDF3500B06A3E017B912DA85D6303F64B27105874C0E2F700 - 00F2BB6FC1D4280803806883E1CF77FFEF3FFD47A02500806649927100005E44 - 242E54CAB33FC708000044A0812AB0411BF4C1182CC0061CC105DCC10BFC6036 - 844224C4C24210420A64801C726029AC82422886CDB01D2A602FD4401D34C051 - 688693700E2EC255B80E3D700FFA61089EC128BC81090441C808136121DA8801 - 628A58238E08179985F821C14804128B2420C9881451224B91354831528A5420 - 55481DF23D720239875C46BA913BC8003282FC86BC47319481B2513DD40CB543 - B9A8371A8446A20BD06474319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F - 3E43C730C0E8180733C46C302EC6C342B1382C099363CBB122AC0CABC61AB056 - AC03BB89F563CFB17704128145C0093604774220611E4148584C584ED848A820 - 1C243411DA093709038451C2272293A84BB426BA11F9C4186232318758482C23 - D6128F132F107B8843C437241289433227B9900249B1A454D212D246D26E5223 - E92CA99B34481A2393C9DA646BB20739942C202BC885E49DE4C3E433E41BE421 - F25B0A9D624071A4F853E22852CA6A4A19E510E534E5066598324155A39A52DD - A8A15411358F5A42ADA1B652AF5187A81334759A39CD8316494BA5ADA295D31A - 681768F769AFE874BA11DD951E4E97D057D2CBE947E897E803F4770C0D861583 - C7886728199B18071867197718AF984CA619D38B19C754303731EB98E7990F99 - 6F55582AB62A7C1591CA0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB54 - 8FA95E537DAE46553353E3A909D496AB55AA9D50EB531B5367A93BA887AA67A8 - 6F543FA47E59FD890659C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B - 0DAB86758135C426B1CDD97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352 - F394663F07E39871F89C744E09E728A797F37E8ADE14EF29E2291BA6344CB931 - 655C6BAA96979658AB48AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A - 275C2747678FCE059DE753D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477 - BF6EA7EE989EBE5E809E4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806 - B30C2406DB0CCE183CC535716F3C1D2FC7DBF151435DC34043A561956197E184 - 91B9D13CA3D5468D460F8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE - 9A524DB9A629A63B4C3B4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDF - B7605A785A2CB6A8B6B86549B2E45AA659EEB6BC6E855A3959A558555A5DB346 - AD9DAD25D6BBADBBA711A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806 - DBAEB66DB67D6167621767B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D - 5A1D7E73B472143A563ADE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613 - CB29C4699D539BD347671767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BD - E44A74F5715DE17AD2F59D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E - 593373D0C3C843E051E5D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F91 - 57ADD7B0B7A577AAF761EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8 - B7CB4FC36F9E5F85DF437F23FF64FF7AFFD100A78025016703898141815B02FB - F87A7C21BF8E3F3ADB65F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC - 90AD21F7E798CE91CE690E85507EE8D6D00761E6618BC37E0C2785878557863F - 8E7088581AD131973577D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3E - AA2E6A3CDA37BA34BA3FC62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDF - FCEDF387E29DE20BE37B17982FC85D7079A1CEC2F485A716A92E122C3A96404C - 884E3894F041102AA8168C25F21377258E0A79C21DC267222FD136D188D8435C - 2A1E4EF2482A4D7A92EC91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A - 9E169A76206D323D3ABD31839291907142AA214D93B667EA67E66676CBAC6585 - B2FEC56E8BB72F1E9507C96BB390AC05592D0AB642A6E8545A28D72A07B26765 - 5766BFCD89CA3996AB9E2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A586 - 4B572D1D58E6BDAC6A39B23C7179DB0AE315052B865606AC3CB88AB62A6DD54F - ABED5797AE7EBD267A4D6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D - 4F582F59DFB561FA869D1B3E15898AAE14DB1797157FD828DC78E51B876FCABF - 99DC94B4A9ABC4B964CF66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40D - DF56B4EDF5F645DB2F97CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A4 - 54F454FA5436EED2DDB561D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB - 5501554DD566D565FB49FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203 - FD07230EB6D7B9D4D51DD23D54528FD62BEB470EC71FBEFE9DEF772D0D360D55 - 8D9CC6E223704479E4E9F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A - 429AF29A469B539AFB5B625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794A - F354C969DAE982D39367F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F - 6FEFBA1074E1D245FF8BE73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6D - EA74EA3CFE93D34FC7BB9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4 - BD79F116FFD6D59E393DDDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727 - EEADBC4FBC5FF440ED41D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7 - 068583CFFE91F58F0F43058F998FCB860D86EB9E383E3939E23F72FDE9FCA743 - CF64CF269E17FEA2FECBAE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5 - FDEAC0EB19AFDBC6C2C61EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE4 - 7C207F28FF68F9B1F553D0A7FB93199393FF040398F3FC63332DDB0000048C49 - 44415478DAC5D7FD4F13771C07F0F715E69C330E9D200F19632422BA2D59F617 - C0CC2671D3B907CD14280F4E980F61A20687A384B9072413A71BB414361397C5 - 04A7C8334AD8DC347392B1CD0DA96D79928700A5E5A9147A6DAFBD7D7BA3D0A3 - 5DB9AB3FEC93B4BD5CEEFB7DBFEE73DFBBB614CBB2F83F8B7202288A1235E888 - F2864835759B66D82DF283F126F7BD5CB6BF80E28C3808699E73FECBB7B468D5 - 8C78201E1A6077086BC44F7F0F60629AC6AFF78779888706D8ECC200EA7E0346 - A7CC2EC41F14D82DC599F106BF01D9653FB26732E341DB1CC8FDFA86CF630BDF - 8DC7E4B419FAA9590E31EE44A806DB2594E4A5D3197106BF00EFCB5BD8B3FB37 - 63D6EA1074FCA381807ED20D6134E3978EC10E32C7737E01B24AAEB3E70EBE02 - 93C58E13153FF83CF6B37D9BD1A79BC2CDF60118672CF3FB87F4932073507E01 - 0E9D6B62BFCA4A80D16C173CC6417206F546823172DBCDAD1A9039FE059C3F7F - 41D47DFDBB31182587B7626A96415E45B328FCC9BD2FC3445B51F4DDCF283DBC - 7501909E9E02BB7DE933721E9FF565134AB3B7618200FCAD3C6513E447B6F101 - 0C236CC243671B203FBA1D632606F9E5D7C475202381FB94291B5176EC75FF00 - 07CED441716C070C26FF3B202BAB4779CE1B7C80CD66834AA5F63970D3A6581C - 385D0379CE5B1CA040592F2AB820F335EE335F5E838ADCB7F900ABD52A6892FD - 9F5743717C27F4269BDF1DC82FADC6371FEEE2032C04A0BEAFF1393076E306BC - 575405C507BBA09F66F091B216AD3D01E49920EE565EB5DC81BFCADF5C04B058 - 040DCE3C75198ADCDD189DB6715F48D2C29B58B126124F474543421C12F2E67C - B648B817F93296B86DCF3D73AE5CAD46EFB73BF8009AA6A1D1742E0928AEBA0B - C589440EF071D955D00C853FFB97E1A9E88D82111E80B4342968811DD8F74925 - 147949D01917D6C0E8248DEC923B7822244A10A2AABAC60B807440ABED5A1250 - 54F91B14B2140EF0A9E2CAFC7E0BE9C4DDA1C71029A013D5355E0066B3595007 - F69EBC8852592A7709DCAB4F67424E591B22A236203C3C622ED83BA2B6B6960F - 484D4D869974A0ABB37B4940E1C53B2891A591BBC0C60B3FAE6C4358640C42C3 - 224828B8C0FF42D4D5D7790188E8807B999940A8C682F0CCFAE7B12E2C7C21D8 - 07A2A1611120252589037477F70A42B88A5D1182F42FDAB0263C0621EBC241CD - 052D85686AACE703A4D244EE1288A9EEE119A491F0D56131581B123AD75ECA03 - 31AA1B0263B3F216E6B5A6062F00D2819E9E0782C2FBC7ACC8AB1C421039F3B5 - C1617367060F845E370CADFA9EF307E8ECFA98D84817A2F97A231F909CBC47F0 - 1A705682EC360282A2F06470E8C2E25A84308C92706D8781A52471812C35ED60 - 995B2E444BF3224052D26EEE123CE8ED130438553B02F5F84AF2F48B75BBC60B - 8871FD08B9A3545C78FF85ED1DCE31D1D2BA4817A253ABE6031213DF11B5066C - 76078E56DC43FB48A00762624C879E2E7EB8AB38049816B03011C08BF3803D04 - 408B5C84DE10CEF0BE6EB581957886CF57418184BC1CF37F4CC4FE28752F62C0 - F71D8F438F08AC5CB51A03BD1ADFE16EE5F73FA3C5F5ECCE4BCB66963F72896C - BEE09004BC2A24DC05F807BADC13EEF319964D0000000049454E44AE426082} - end object LocalDirectoryEdit: THistoryComboBox Left = 46 Top = 25 diff --git a/source/forms/Copy.h b/source/forms/Copy.h index b1087099..42176615 100644 --- a/source/forms/Copy.h +++ b/source/forms/Copy.h @@ -31,12 +31,7 @@ class TCopyDialog : public TForm TButton *TransferSettingsButton; TGroupBox *CopyParamGroup; TLabel *CopyParamLabel; - TImage *CopyImage; - TImage *MoveImage; - TImage *CopyUploadImage; - TImage *CopyDownloadImage; - TImage *MoveDownloadImage; - TImage *MoveUploadImage; + TImage *Image; TPanel *ShortCutHintPanel; TLabel *ShortCutHintLabel; void __fastcall FormShow(TObject *Sender); diff --git a/source/forms/CopyParamCustom.dfm b/source/forms/CopyParamCustom.dfm index 23b68bd6..ff9a2e86 100644 --- a/source/forms/CopyParamCustom.dfm +++ b/source/forms/CopyParamCustom.dfm @@ -6,7 +6,7 @@ object CopyParamCustomDialog: TCopyParamCustomDialog BorderIcons = [biSystemMenu, biMinimize, biMaximize, biHelp] BorderStyle = bsDialog Caption = 'Transfer settings' - ClientHeight = 468 + ClientHeight = 494 ClientWidth = 420 Color = clBtnFace ParentFont = True @@ -15,12 +15,12 @@ object CopyParamCustomDialog: TCopyParamCustomDialog OnCloseQuery = FormCloseQuery DesignSize = ( 420 - 468) + 494) PixelsPerInch = 96 TextHeight = 13 object OkButton: TButton Left = 168 - Top = 435 + Top = 461 Width = 75 Height = 25 Anchors = [akRight, akBottom] @@ -31,7 +31,7 @@ object CopyParamCustomDialog: TCopyParamCustomDialog end object CancelButton: TButton Left = 252 - Top = 435 + Top = 461 Width = 75 Height = 25 Anchors = [akRight, akBottom] @@ -44,13 +44,13 @@ object CopyParamCustomDialog: TCopyParamCustomDialog Left = 0 Top = 0 Width = 420 - Height = 431 + Height = 456 HelpType = htKeyword TabOrder = 0 end object HelpButton: TButton Left = 336 - Top = 435 + Top = 461 Width = 75 Height = 25 Anchors = [akRight, akBottom] diff --git a/source/forms/CopyParamPreset.cpp b/source/forms/CopyParamPreset.cpp index 41964431..2c7fb36b 100644 --- a/source/forms/CopyParamPreset.cpp +++ b/source/forms/CopyParamPreset.cpp @@ -226,7 +226,7 @@ void __fastcall TCopyParamPresetDialog::FormCloseQuery(TObject * /*Sender*/, void __fastcall TCopyParamPresetDialog::CurrentRuleButtonClick( TObject * /*Sender*/) { - assert(FCurrentRuleData != NULL); + DebugAssert(FCurrentRuleData != NULL); SetRuleData(*FCurrentRuleData); } //--------------------------------------------------------------------------- diff --git a/source/forms/CopyParamPreset.dfm b/source/forms/CopyParamPreset.dfm index 7917bbe4..ff48822e 100644 --- a/source/forms/CopyParamPreset.dfm +++ b/source/forms/CopyParamPreset.dfm @@ -6,7 +6,7 @@ object CopyParamPresetDialog: TCopyParamPresetDialog BorderIcons = [biSystemMenu, biMinimize, biMaximize, biHelp] BorderStyle = bsDialog Caption = 'CopyParamPresetDialog' - ClientHeight = 514 + ClientHeight = 539 ClientWidth = 675 Color = clBtnFace ParentFont = True @@ -16,7 +16,7 @@ object CopyParamPresetDialog: TCopyParamPresetDialog OnShow = FormShow DesignSize = ( 675 - 514) + 539) PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel @@ -29,7 +29,7 @@ object CopyParamPresetDialog: TCopyParamPresetDialog end object OkButton: TButton Left = 423 - Top = 481 + Top = 506 Width = 75 Height = 25 Anchors = [akRight, akBottom] @@ -40,7 +40,7 @@ object CopyParamPresetDialog: TCopyParamPresetDialog end object CancelButton: TButton Left = 507 - Top = 481 + Top = 506 Width = 75 Height = 25 Anchors = [akRight, akBottom] @@ -62,7 +62,7 @@ object CopyParamPresetDialog: TCopyParamPresetDialog Left = 2 Top = 51 Width = 420 - Height = 426 + Height = 451 HelpType = htKeyword TabOrder = 1 end @@ -70,13 +70,13 @@ object CopyParamPresetDialog: TCopyParamPresetDialog Left = 426 Top = 91 Width = 240 - Height = 384 + Height = 409 Anchors = [akLeft, akTop, akRight] Caption = 'Autoselection rule' TabOrder = 3 DesignSize = ( 240 - 384) + 409) object Label2: TLabel Left = 16 Top = 20 @@ -187,7 +187,7 @@ object CopyParamPresetDialog: TCopyParamPresetDialog end object HelpButton: TButton Left = 591 - Top = 481 + Top = 506 Width = 75 Height = 25 Anchors = [akRight, akBottom] diff --git a/source/forms/CopyParams.cpp b/source/forms/CopyParams.cpp index 73fe1517..c7fbe474 100644 --- a/source/forms/CopyParams.cpp +++ b/source/forms/CopyParams.cpp @@ -52,7 +52,7 @@ __fastcall TCopyParamsFrame::~TCopyParamsFrame() //--------------------------------------------------------------------------- void __fastcall TCopyParamsFrame::SetParams(TCopyParamType value) { - assert((value.TransferMode == tmAscii) || + DebugAssert((value.TransferMode == tmAscii) || (value.TransferMode == tmBinary) || (value.TransferMode == tmAutomatic)); switch (value.TransferMode) { case tmAscii: TMTextButton->Checked = True; break; @@ -70,8 +70,7 @@ void __fastcall TCopyParamsFrame::SetParams(TCopyParamType value) case ncLowerCaseShort: CCLowerCaseShortButton->Checked = True; break; } - ReplaceInvalidCharsCheck->Checked = - (value.InvalidCharsReplacement != TCopyParamType::NoReplacement); + ReplaceInvalidCharsCheck->Checked = value.ReplaceInvalidChars; FRightsFrame->AddXToDirectories = value.AddXToDirectories; FRightsFrame->Rights = value.Rights; @@ -80,6 +79,7 @@ void __fastcall TCopyParamsFrame::SetParams(TCopyParamType value) PreserveReadOnlyCheck->Checked = value.PreserveReadOnly; PreserveTimeCheck->Checked = value.PreserveTime; + PreserveTimeDirsCheck->Checked = value.PreserveTimeDirs; CommonCalculateSizeCheck->Checked = value.CalculateSize; @@ -92,7 +92,7 @@ void __fastcall TCopyParamsFrame::SetParams(TCopyParamType value) } else { - assert(FLAGCLEAR(CopyParamAttrs, cpaNoRemoveBOM)); + DebugAssert(FLAGCLEAR(CopyParamAttrs, cpaNoRemoveBOM)); RemoveCtrlZAndBOMCheck->Checked = value.RemoveCtrlZ && value.RemoveBOM; } @@ -109,7 +109,7 @@ TCopyParamType __fastcall TCopyParamsFrame::GetParams() { TCopyParamType Result = *FParams; - assert(TMTextButton->Checked || TMBinaryButton->Checked || TMAutomaticButton->Checked); + DebugAssert(TMTextButton->Checked || TMBinaryButton->Checked || TMAutomaticButton->Checked); if (TMTextButton->Checked) Result.TransferMode = tmAscii; else if (TMBinaryButton->Checked) Result.TransferMode = tmBinary; @@ -133,6 +133,7 @@ TCopyParamType __fastcall TCopyParamsFrame::GetParams() Result.PreserveReadOnly = PreserveReadOnlyCheck->Checked; Result.PreserveTime = PreserveTimeCheck->Checked; + Result.PreserveTimeDirs = PreserveTimeDirsCheck->Checked; Result.CalculateSize = CommonCalculateSizeCheck->Checked; @@ -198,6 +199,9 @@ void __fastcall TCopyParamsFrame::UpdateControls() Enabled); EnableControl(PreserveTimeCheck, FLAGCLEAR(CopyParamAttrs, cpaNoPreserveTime) && FLAGCLEAR(CopyParamAttrs, cpaIncludeMaskOnly) && Enabled); + EnableControl(PreserveTimeDirsCheck, + PreserveTimeCheck->Enabled && FLAGCLEAR(CopyParamAttrs, cpaNoPreserveTimeDirs) && + PreserveTimeCheck->Checked); EnableControl(ChangeCaseGroup, FLAGCLEAR(CopyParamAttrs, cpaIncludeMaskOnly) && Enabled); EnableControl(IgnorePermErrorsCheck, ((PreserveRightsCheck->Enabled && PreserveRightsCheck->Checked) || @@ -223,15 +227,15 @@ void __fastcall TCopyParamsFrame::BeforeExecute() // adding TRightsFrame on run-time corrupts the tab order, fix it TransferModeGroup->TabOrder = 0; - assert(CustomWinConfiguration); + DebugAssert(CustomWinConfiguration); AsciiFileMaskCombo->Items = CustomWinConfiguration->History[L"Mask"]; IncludeFileMaskCombo->Items = CustomWinConfiguration->History[L"IncludeMask"]; - SpeedCombo->Items = CustomWinConfiguration->History[L"SpeedLimit"]; + CopySpeedLimits(CustomWinConfiguration->History[L"SpeedLimit"], SpeedCombo->Items); } //--------------------------------------------------------------------------- void __fastcall TCopyParamsFrame::AfterExecute() { - assert(CustomWinConfiguration); + DebugAssert(CustomWinConfiguration); AsciiFileMaskCombo->SaveToHistory(); CustomWinConfiguration->History[L"Mask"] = AsciiFileMaskCombo->Items; IncludeFileMaskCombo->SaveToHistory(); diff --git a/source/forms/CopyParams.dfm b/source/forms/CopyParams.dfm index ea0b6f70..0c8e111b 100644 --- a/source/forms/CopyParams.dfm +++ b/source/forms/CopyParams.dfm @@ -2,23 +2,23 @@ object CopyParamsFrame: TCopyParamsFrame Left = 0 Top = 0 Width = 420 - Height = 431 + Height = 456 HelpType = htKeyword TabOrder = 0 object CommonPropertiesGroup: TGroupBox Left = 212 Top = 165 Width = 201 - Height = 98 + Height = 123 Caption = 'Common options' TabOrder = 3 DesignSize = ( 201 - 98) + 123) object SpeedLabel3: TLabel Left = 15 - Top = 71 - Width = 68 + Top = 96 + Width = 66 Height = 13 Caption = '&Speed (KB/s):' FocusControl = SpeedCombo @@ -37,23 +37,23 @@ object CopyParamsFrame: TCopyParamsFrame end object CommonCalculateSizeCheck: TCheckBox Left = 16 - Top = 46 + Top = 71 Width = 175 Height = 17 Anchors = [akLeft, akTop, akRight] Caption = '&Calculate total size' ParentShowHint = False ShowHint = True - TabOrder = 1 + TabOrder = 2 OnClick = ControlChange end object SpeedCombo: THistoryComboBox Left = 106 - Top = 67 + Top = 92 Width = 85 Height = 21 AutoComplete = False - TabOrder = 2 + TabOrder = 3 Text = 'SpeedCombo' OnExit = SpeedComboExit Items.Strings = ( @@ -67,10 +67,22 @@ object CopyParamsFrame: TCopyParamsFrame '16' '8') end + object PreserveTimeDirsCheck: TCheckBox + Left = 32 + Top = 45 + Width = 159 + Height = 17 + Anchors = [akLeft, akTop, akRight] + Caption = 'Including directories' + ParentShowHint = False + ShowHint = True + TabOrder = 1 + OnClick = ControlChange + end end object LocalPropertiesGroup: TGroupBox Left = 212 - Top = 268 + Top = 293 Width = 201 Height = 50 Caption = 'Download options' @@ -94,7 +106,7 @@ object CopyParamsFrame: TCopyParamsFrame Left = 8 Top = 165 Width = 194 - Height = 153 + Height = 178 Caption = 'Upload options' TabOrder = 2 object PreserveRightsCheck: TCheckBox @@ -272,7 +284,7 @@ object CopyParamsFrame: TCopyParamsFrame end object OtherGroup: TGroupBox Left = 8 - Top = 322 + Top = 347 Width = 405 Height = 102 Caption = 'Other' diff --git a/source/forms/CopyParams.h b/source/forms/CopyParams.h index c6b4c852..07f9508d 100644 --- a/source/forms/CopyParams.h +++ b/source/forms/CopyParams.h @@ -49,6 +49,7 @@ class TCopyParamsFrame : public TFrame TButton *IncludeFileMaskButton; TCheckBox *NewerOnlyCheck; TCheckBox *RemoveCtrlZAndBOMCheck; + TCheckBox *PreserveTimeDirsCheck; void __fastcall ControlChange(TObject *Sender); void __fastcall ValidateMaskComboExit(TObject *Sender); void __fastcall RightsEditButtonClick(TObject *Sender); diff --git a/source/forms/Custom.cpp b/source/forms/Custom.cpp index a5f3e708..d962d165 100644 --- a/source/forms/Custom.cpp +++ b/source/forms/Custom.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -107,8 +108,8 @@ void __fastcall TCustomDialog::AddImage(const UnicodeString & ImageName) TImage * Image = new TImage(this); Image->Name = L"Image"; Image->Parent = this; - LoadResourceImage(Image, ImageName); - Image->SetBounds(FIndent, FPos + ScaleByTextHeight(this, 3), 32, 32); + LoadDialogImage(Image, ImageName); + Image->SetBounds(FIndent, FPos + ScaleByTextHeight(this, 3), Image->Picture->Width, Image->Picture->Height); FIndent += Image->Width + ScaleByTextHeight(this, 12); } //--------------------------------------------------------------------------- @@ -155,7 +156,7 @@ void __fastcall TCustomDialog::AddEditLikeControl(TWinControl * Edit, TLabel * L } else { - assert(Label->FocusControl == Edit); + DebugAssert(Label->FocusControl == Edit); } ClientHeight = ClientHeight + (FPos - PrePos); @@ -270,7 +271,7 @@ void __fastcall TSaveSessionDialog::Init(bool CanSavePassword, } } - assert(!Folders->CaseSensitive); + DebugAssert(!Folders->CaseSensitive); Folders->Sort(); FolderCombo = new TComboBox(this); @@ -433,7 +434,7 @@ void __fastcall SessionNameValidate(const UnicodeString & Text, { TSessionData::ValidatePath(Text); - assert(StoredSessions); + DebugAssert(StoredSessions); TSessionData * Data = (TSessionData *)StoredSessions->FindByName(Text); if (Data && Data->Special) { @@ -611,25 +612,30 @@ bool __fastcall DoShortCutDialog(TShortCut & ShortCut, class TRemoteMoveDialog : public TCustomDialog { public: - __fastcall TRemoteMoveDialog(); + __fastcall TRemoteMoveDialog(bool Multi); bool __fastcall Execute(UnicodeString & Target, UnicodeString & FileMask); protected: DYNAMIC void __fastcall DoShow(); + virtual void __fastcall DoValidate(); + UnicodeString __fastcall GetFileMask(); private: THistoryComboBox * Combo; + bool FMulti; }; //--------------------------------------------------------------------------- -__fastcall TRemoteMoveDialog::TRemoteMoveDialog() : +__fastcall TRemoteMoveDialog::TRemoteMoveDialog(bool Multi) : TCustomDialog(HELP_REMOTE_MOVE) { Caption = LoadStr(REMOTE_MOVE_TITLE); // The same as TRemoteTransferDialog ClientWidth = ScaleByTextHeight(this, 420); - AddImage(L"REMOTE_MOVE_FILE"); + FMulti = Multi; + + AddImage(L"Move To"); Combo = new THistoryComboBox(this); Combo->AutoComplete = false; @@ -644,21 +650,41 @@ bool __fastcall TRemoteMoveDialog::Execute(UnicodeString & Target, UnicodeString if (Result) { Target = UnixExtractFilePath(Combo->Text); - FileMask = UnixExtractFileName(Combo->Text); + FileMask = GetFileMask(); Combo->SaveToHistory(); CustomWinConfiguration->History[L"RemoteTarget"] = Combo->Items; } return Result; } //--------------------------------------------------------------------------- +UnicodeString __fastcall TRemoteMoveDialog::GetFileMask() +{ + return UnixExtractFileName(Combo->Text); +} +//--------------------------------------------------------------------------- void __fastcall TRemoteMoveDialog::DoShow() { TCustomDialog::DoShow(); InstallPathWordBreakProc(Combo); } //--------------------------------------------------------------------------- -bool __fastcall DoRemoteMoveDialog(UnicodeString & Target, UnicodeString & FileMask) +void __fastcall TRemoteMoveDialog::DoValidate() +{ + if (!IsFileNameMask(GetFileMask()) && FMulti) + { + UnicodeString Message = + FormatMultiFilesToOneConfirmation(Combo->Text, true); + if (MessageDialog(Message, qtConfirmation, qaOK | qaCancel, HELP_NONE) == qaCancel) + { + Abort(); + } + } + + TCustomDialog::DoValidate(); +} +//--------------------------------------------------------------------------- +bool __fastcall DoRemoteMoveDialog(bool Multi, UnicodeString & Target, UnicodeString & FileMask) { - std::unique_ptr Dialog(new TRemoteMoveDialog()); + std::unique_ptr Dialog(new TRemoteMoveDialog(Multi)); return Dialog->Execute(Target, FileMask); } diff --git a/source/forms/CustomCommand.cpp b/source/forms/CustomCommand.cpp index 45c965a4..8104bd11 100644 --- a/source/forms/CustomCommand.cpp +++ b/source/forms/CustomCommand.cpp @@ -47,7 +47,7 @@ __fastcall TCustomCommandDialog::TCustomCommandDialog(TComponent* Owner, FCustomCommandList = CustomCommandList; FMode = Mode; FOnValidate = OnValidate; - HintLabel(HintText, LoadStr(CUSTOM_COMMAND_PATTERNS_HINT4)); + HintLabel(HintText, LoadStr(CUSTOM_COMMAND_PATTERNS_HINT5)); int CaptionRes; switch (FMode) @@ -91,7 +91,7 @@ __fastcall TCustomCommandDialog::TCustomCommandDialog(TComponent* Owner, } else { - assert(ShortCuts != NULL); + DebugAssert(ShortCuts != NULL); InitializeShortCutCombo(ShortCutCombo, *ShortCuts); } diff --git a/source/forms/CustomScpExplorer.cpp b/source/forms/CustomScpExplorer.cpp index 8bc96064..99059d5c 100644 --- a/source/forms/CustomScpExplorer.cpp +++ b/source/forms/CustomScpExplorer.cpp @@ -133,6 +133,7 @@ struct TTransferOperationParam bool Temp; bool DragDrop; int Options; + TAutoSwitch Queue; }; //--------------------------------------------------------------------------- TTransferOperationParam::TTransferOperationParam() @@ -140,6 +141,7 @@ TTransferOperationParam::TTransferOperationParam() Temp = false; DragDrop = false; Options = 0; + Queue = asAuto; } //--------------------------------------------------------------------------- class TTransferPresetNoteData : public TObject @@ -164,14 +166,14 @@ __fastcall TCustomScpExplorerForm::TCustomScpExplorerForm(TComponent* Owner): RestoreParams(); ConfigurationChanged(); RemoteDirView->Invalidate(); - assert(NonVisualDataModule && !NonVisualDataModule->ScpExplorer); + DebugAssert(NonVisualDataModule && !NonVisualDataModule->ScpExplorer); NonVisualDataModule->ScpExplorer = this; Application->OnMinimize = ApplicationMinimize; Application->OnRestore = ApplicationRestore; FAutoOperation = false; FForceExecution = false; FShowStatusBarHint = false; - FIgnoreNextSysCommand = false; + FIgnoreNextDialogChar = 0; FErrorList = NULL; FSynchronizeProgressForm = NULL; FProgressForm = NULL; @@ -181,7 +183,7 @@ __fastcall TCustomScpExplorerForm::TCustomScpExplorerForm(TComponent* Owner): FDDExtMapFile = NULL; // CreateMutexW keeps failing with ERROR_NOACCESS FDDExtMutex = CreateMutexA(NULL, false, AnsiString(DRAG_EXT_MUTEX).c_str()); - assert(FDDExtMutex != NULL); + DebugAssert(FDDExtMutex != NULL); FDDTargetControl = NULL; FDelayedDeletionTimer = NULL; FDelayedDeletionList = new TStringList(); @@ -206,6 +208,7 @@ __fastcall TCustomScpExplorerForm::TCustomScpExplorerForm(TComponent* Owner): FMoveToQueue = false; FStandaloneEditing = false; FOnFeedSynchronizeError = NULL; + FNeedSession = false; FEditorManager = new TEditorManager(); FEditorManager->OnFileChange = ExecutedFileChanged; @@ -241,7 +244,7 @@ __fastcall TCustomScpExplorerForm::TCustomScpExplorerForm(TComponent* Owner): TTBXStringList * TransferList = dynamic_cast( static_cast(GetComponent(fcTransferList))); - assert(TransferList != NULL); + DebugAssert(TransferList != NULL); FTransferListHoverIndex = -1; TransferList->OnChange = TransferListChange; TransferList->OnDrawItem = TransferListDrawItem; @@ -267,12 +270,13 @@ __fastcall TCustomScpExplorerForm::TCustomScpExplorerForm(TComponent* Owner): FCustomCommandRemoteFileList = NULL; FSessionColors = new TPngImageList(this); - FSessionColors->SetSize(16, 16); + FSessionColors->SetSize(GlyphsModule->ExplorerImages->Width, GlyphsModule->ExplorerImages->Height); FSessionColors->ColorDepth = cd32Bit; AddFixedSessionImages(); SessionsPageControl->Images = FSessionColors; QueueLabel->FocusControl = QueueView3; UpdateQueueLabel(); + FRemoteDirViewWasFocused = true; CreateHiddenWindow(); StartUpdates(); @@ -298,9 +302,9 @@ __fastcall TCustomScpExplorerForm::~TCustomScpExplorerForm() { Application->OnHint = NULL; } - assert(Application->OnMinimize == ApplicationMinimize); + DebugAssert(Application->OnMinimize == ApplicationMinimize); Application->OnMinimize = NULL; - assert(Application->OnRestore == ApplicationRestore); + DebugAssert(Application->OnRestore == ApplicationRestore); Application->OnRestore = NULL; delete FTrayIcon; FTrayIcon = NULL; @@ -320,7 +324,7 @@ __fastcall TCustomScpExplorerForm::~TCustomScpExplorerForm() // sometimes we do not get DDEnd so the list is not released SAFE_DESTROY(FDDFileList); - assert(FSynchronizeController == NULL); + DebugAssert(FSynchronizeController == NULL); CloseHandle(FDDExtMutex); FDDExtMutex = NULL; @@ -329,7 +333,7 @@ __fastcall TCustomScpExplorerForm::~TCustomScpExplorerForm() FOle32Library = NULL; FDragMoveCursor = NULL; - assert(!FErrorList); + DebugAssert(!FErrorList); if (FEverShown) { // when window is never shown (like when running command-line operation), @@ -340,7 +344,7 @@ __fastcall TCustomScpExplorerForm::~TCustomScpExplorerForm() } Terminal = NULL; Queue = NULL; - assert(NonVisualDataModule && (NonVisualDataModule->ScpExplorer == this)); + DebugAssert(NonVisualDataModule && (NonVisualDataModule->ScpExplorer == this)); NonVisualDataModule->ScpExplorer = NULL; delete FQueueController; @@ -402,7 +406,7 @@ void __fastcall TCustomScpExplorerForm::WMCopyData(TMessage & Message) PCOPYDATASTRUCT CopyData = reinterpret_cast(Message.LParam); size_t MessageSize = sizeof(TCopyDataMessage); - bool Result = ALWAYS_TRUE(CopyData->cbData == MessageSize); + bool Result = DebugAlwaysTrue(CopyData->cbData == MessageSize); if (Result) { const TCopyDataMessage & Message = *reinterpret_cast(CopyData->lpData); @@ -464,7 +468,7 @@ bool __fastcall TCustomScpExplorerForm::CommandLineFromAnotherInstance( const UnicodeString & CommandLine) { TProgramParams Params(CommandLine); - bool Result = CanCommandLineFromAnotherInstance() && ALWAYS_TRUE(Params.ParamCount > 0); + bool Result = CanCommandLineFromAnotherInstance() && DebugAlwaysTrue(Params.ParamCount > 0); if (Result) { NonVisualDataModule->StartBusy(); @@ -480,7 +484,7 @@ bool __fastcall TCustomScpExplorerForm::CommandLineFromAnotherInstance( UnicodeString SessionName = Params.Param[1]; std::unique_ptr DataList(new TObjectList()); UnicodeString DownloadFile; // unused - GetLoginData(SessionName, &Params, DataList.get(), DownloadFile); + GetLoginData(SessionName, &Params, DataList.get(), DownloadFile, true); if (DataList->Count > 0) { TTerminalManager * Manager = TTerminalManager::Instance(); @@ -542,7 +546,7 @@ void __fastcall TCustomScpExplorerForm::TerminalChanged() } ManagedTerminal = dynamic_cast(Terminal); - assert(ManagedTerminal != NULL); + DebugAssert(ManagedTerminal != NULL); if (WinConfiguration->PreservePanelState) { @@ -559,16 +563,18 @@ void __fastcall TCustomScpExplorerForm::TerminalChanged() InitStatusBar(); } - TerminalListChanged(NULL); + DoTerminalListChanged(false); if (ManagedTerminal != NULL) { - // this has to be set only after the tab is switched from TerminalListChanged, + // this has to be set only after the tab is switched from DoTerminalListChanged, // otherwise we are changing color of wrong tab SessionColor = (TColor)ManagedTerminal->StateData->Color; } UpdateTransferList(); + // Update panels Enable state before refreshing the labels + UpdateControls(); } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::SetQueue(TTerminalQueue * value) @@ -583,9 +589,9 @@ void __fastcall TCustomScpExplorerForm::SetQueue(TTerminalQueue * value) FQueue = value; if (FQueue != NULL) { - assert(FQueue->OnListUpdate == NULL); + DebugAssert(FQueue->OnListUpdate == NULL); FQueue->OnListUpdate = QueueListUpdate; - assert(FQueue->OnQueueItemUpdate == NULL); + DebugAssert(FQueue->OnQueueItemUpdate == NULL); FQueue->OnQueueItemUpdate = QueueItemUpdate; } QueueChanged(); @@ -668,7 +674,7 @@ UnicodeString __fastcall TCustomScpExplorerForm::GetQueueProgressTitle() FQueueStatus->Items[FQueueStatus->DoneCount]->ProgressData; if ((ProgressData != NULL) && ProgressData->InProgress) { - Result = TTerminalManager::ProgressTitle(ProgressData); + Result = TProgressForm::ProgressStr(ProgressData); } } else if (ActiveAndPendingCount > 1) @@ -899,7 +905,7 @@ void __fastcall TCustomScpExplorerForm::UpdateTransferList() void __fastcall TCustomScpExplorerForm::UpdateCustomCommandsToolbar() { TTBXToolbar * Toolbar = dynamic_cast(GetComponent(fcCustomCommandsBand)); - assert(Toolbar != NULL); + DebugAssert(Toolbar != NULL); NonVisualDataModule->UpdateCustomCommandsToolbar(Toolbar); } @@ -921,7 +927,7 @@ void __fastcall TCustomScpExplorerForm::UpdateSessionsPageControlHeight() //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::ConfigurationChanged() { - assert(Configuration && RemoteDirView); + DebugAssert(Configuration && RemoteDirView); RemoteDirView->DDAllowMove = WinConfiguration->DDAllowMoveInit; RemoteDirView->DimmHiddenFiles = WinConfiguration->DimmHiddenFiles; RemoteDirView->ShowHiddenFiles = WinConfiguration->ShowHiddenFiles; @@ -988,7 +994,7 @@ void __fastcall TCustomScpExplorerForm::FileConfigurationChanged( if (Token != NULL) { TForm * Editor = dynamic_cast(Token); - assert(Editor != NULL); + DebugAssert(Editor != NULL); ReconfigureEditorForm(Editor); } } @@ -1004,7 +1010,7 @@ bool __fastcall TCustomScpExplorerForm::CopyParamDialog( bool Confirm, bool DragDrop, int Options) { bool Result = true; - assert(Terminal && Terminal->Active); + DebugAssert(Terminal && Terminal->Active); // Temp means d&d here so far, may change in future! if (Temp && (Direction == tdToLocal) && (Type == ttMove) && !WinConfiguration->DDAllowMove) @@ -1125,7 +1131,7 @@ void __fastcall TCustomScpExplorerForm::AddQueueItem( const UnicodeString TargetDirectory, const TCopyParamType & CopyParam, int Params) { - assert(Queue != NULL); + DebugAssert(Queue != NULL); bool SingleFile = false; if (FileList->Count == 1) @@ -1133,7 +1139,7 @@ void __fastcall TCustomScpExplorerForm::AddQueueItem( if (Direction == tdToRemote) { UnicodeString FileName = FileList->Strings[0]; - SingleFile = FileExists(::ApiPath(FileName)); + SingleFile = FileExists(ApiPath(FileName)); } else { @@ -1160,7 +1166,7 @@ void __fastcall TCustomScpExplorerForm::AddQueueItem(TTerminalQueue * Queue, TQu { if (Queue->IsEmpty) { - TManagedTerminal * ManagedTerminal = NOT_NULL(dynamic_cast(Terminal)); + TManagedTerminal * ManagedTerminal = DebugNotNull(dynamic_cast(Terminal)); ManagedTerminal->QueueOperationStart = Now(); } Queue->AddItem(QueueItem); @@ -1172,7 +1178,7 @@ void __fastcall TCustomScpExplorerForm::RestoreFormParams() //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::RestoreParams() { - assert(FDocks != NULL); + DebugAssert(FDocks != NULL); for (int Index = 0; Index < ComponentCount; Index++) { TTBDock * Dock = dynamic_cast(Components[Index]); @@ -1213,7 +1219,7 @@ void __fastcall TCustomScpExplorerForm::CreateParams(TCreateParams & Params) //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::SetDockAllowDrag(bool value) { - assert(FDocks != NULL); + DebugAssert(FDocks != NULL); for (int Index = 0; Index < FDocks->Count; Index++) { static_cast(FDocks->Items[Index])->AllowDrag = value; @@ -1314,16 +1320,20 @@ void __fastcall TCustomScpExplorerForm::FileOperationProgress( if (FTaskbarList != NULL) { - assert(ProgressData.InProgress); + DebugAssert(ProgressData.InProgress); SetTaskbarListProgressValue(&ProgressData); } - if (FProgressForm->Cancel > ProgressData.Cancel) + if (FProgressForm->Cancel > csContinue) { - ProgressData.Cancel = FProgressForm->Cancel; + if (FProgressForm->Cancel > ProgressData.Cancel) + { + ProgressData.Cancel = FProgressForm->Cancel; + } + // cancel cancels even the move + FMoveToQueue = false; } - - if (FProgressForm->MoveToQueue) + else if (FProgressForm->MoveToQueue) { FMoveToQueue = true; if (ProgressData.Cancel < csCancel) @@ -1419,12 +1429,12 @@ void __fastcall TCustomScpExplorerForm::DoOperationFinished( { if (Operation == foCopy) { - assert(Side == osLocal); + DebugAssert(Side == osLocal); FSynchronizeController->LogOperation(soUpload, FileName); } else if (Operation == foDelete) { - assert(Side == osRemote); + DebugAssert(Side == osRemote); FSynchronizeController->LogOperation(soDelete, FileName); } } @@ -1446,11 +1456,18 @@ void __fastcall TCustomScpExplorerForm::OperationFinished( //--------------------------------------------------------------------------- TCustomDirView * __fastcall TCustomScpExplorerForm::DirView(TOperationSide Side) { - assert(GetSide(Side) == osRemote); - USEDPARAM(Side); + DebugAssert(GetSide(Side) == osRemote); + DebugUsedParam(Side); return RemoteDirView; } //--------------------------------------------------------------------------- +bool __fastcall TCustomScpExplorerForm::DirViewEnabled(TOperationSide Side) +{ + DebugAssert(GetSide(Side) == osRemote); + DebugUsedParam(Side); + return (Terminal != NULL); +} +//--------------------------------------------------------------------------- bool __fastcall TCustomScpExplorerForm::GetEnableFocusedOperation( TOperationSide Side, int FilesOnly) { @@ -1503,7 +1520,7 @@ void __fastcall TCustomScpExplorerForm::UpdateHistoryMenu(TOperationSide Side, Data.Index = static_cast(i * (Back ? -1 : 1)); Item->Caption = MinimizeName(DView->HistoryPath[Data.Index], 50, (Side == osRemote)); Item->Hint = DView->HistoryPath[Data.Index]; - assert(sizeof(int) == sizeof(THistoryItemData)); + DebugAssert(sizeof(int) == sizeof(THistoryItemData)); Item->Tag = *reinterpret_cast(&Data); Item->OnClick = HistoryItemClick; Menu->Items->Add(Item); @@ -1636,7 +1653,7 @@ void __fastcall TCustomScpExplorerForm::CustomCommand(TStrings * FileList, bool Capture = FLAGSET(ACommand.Params, ccShowResults) || FLAGSET(ACommand.Params, ccCopyResults); TCaptureOutputEvent OutputEvent = NULL; - assert(FCapturedLog == NULL); + DebugAssert(FCapturedLog == NULL); if (Capture) { FCapturedLog = new TStringList(); @@ -1702,11 +1719,11 @@ void __fastcall TCustomScpExplorerForm::CustomCommand(TStrings * FileList, { if (ALocalFileList == NULL) { - assert(HasDirView[osLocal]); + DebugAssert(HasDirView[osLocal]); // Cannot have focus on both panels, so we have to call AnyFileSelected // directly (instead of EnableSelectedOperation) to pass // false to FocusedFileOnlyWhenFocused - assert(DirView(osLocal)->AnyFileSelected(false, false, false)); + DebugAssert(DirView(osLocal)->AnyFileSelected(false, false, false)); LocalFileList = DirView(osLocal)->CreateFileList(false, true, NULL); } else @@ -1766,7 +1783,7 @@ void __fastcall TCustomScpExplorerForm::CustomCommand(TStrings * FileList, TFileOperationProgressType Progress(&OperationProgress, &OperationFinished); Progress.Start(foCustomCommand, osRemote, FileListCommand ? 1 : FileList->Count); - assert(FProgressForm != NULL); + DebugAssert(FProgressForm != NULL); FProgressForm->ReadOnly = true; try @@ -1779,7 +1796,7 @@ void __fastcall TCustomScpExplorerForm::CustomCommand(TStrings * FileList, if (LocalFileCommand) { - assert(LocalFileList->Count == 1); + DebugAssert(LocalFileList->Count == 1); LocalFile = LocalFileList->Strings[0]; } @@ -1850,7 +1867,7 @@ void __fastcall TCustomScpExplorerForm::CustomCommand(TStrings * FileList, Progress.Stop(); } - assert(!FAutoOperation); + DebugAssert(!FAutoOperation); if (!RemoteFiles) { @@ -1858,7 +1875,7 @@ void __fastcall TCustomScpExplorerForm::CustomCommand(TStrings * FileList, for (int Index = 0; Index < RemoteFileList->Count; Index++) { UnicodeString FileName = RemoteFileList->Strings[Index]; - if (ALWAYS_TRUE(SameText(TempDir, FileName.SubString(1, TempDir.Length()))) && + if (DebugAlwaysTrue(SameText(TempDir, FileName.SubString(1, TempDir.Length()))) && // Skip directories for now, they require recursion, // and we do not have original nested files times available here yet. // The check is redundant as FileAge fails for directories anyway. @@ -1890,7 +1907,7 @@ void __fastcall TCustomScpExplorerForm::CustomCommand(TStrings * FileList, __finally { FAutoOperation = false; - if (!RootTempDir.IsEmpty() && ALWAYS_TRUE(!RemoteFiles)) + if (!RootTempDir.IsEmpty() && DebugAlwaysTrue(!RemoteFiles)) { RecursiveDeleteFile(ExcludeTrailingBackslash(RootTempDir), false); } @@ -1914,9 +1931,9 @@ void __fastcall TCustomScpExplorerForm::CustomCommand(TStrings * FileList, void __fastcall TCustomScpExplorerForm::BothCustomCommand( const TCustomCommandType & Command) { - assert(FCustomCommandLocalFileList != NULL); - assert(FCustomCommandRemoteFileList != NULL); - assert(FCustomCommandLocalFileList->Count == FCustomCommandRemoteFileList->Count); + DebugAssert(FCustomCommandLocalFileList != NULL); + DebugAssert(FCustomCommandRemoteFileList != NULL); + DebugAssert(FCustomCommandLocalFileList->Count == FCustomCommandRemoteFileList->Count); TStrings * LocalFileList = new TStringList(); TStrings * RemoteFileList = new TStringList(); @@ -1970,7 +1987,7 @@ void __fastcall TCustomScpExplorerForm::CustomCommandMenu( void __fastcall TCustomScpExplorerForm::TerminalCaptureLog( const UnicodeString & AddedLine, TCaptureOutputType OutputType) { - assert(FCapturedLog != NULL); + DebugAssert(FCapturedLog != NULL); if ((OutputType == cotOutput) || (OutputType == cotError)) { FCapturedLog->Add(AddedLine); @@ -1985,7 +2002,7 @@ bool __fastcall TCustomScpExplorerForm::IsFileControl(TObject * Control, } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::DirViewContextPopupDefaultItem( - TOperationSide Side, TTBXItem * Item, TDoubleClickAction DoubleClickAction) + TOperationSide Side, TTBXCustomItem * Item, TDoubleClickAction DoubleClickAction) { TTBItemOptions O; O = Item->Options; @@ -2042,7 +2059,7 @@ void __fastcall TCustomScpExplorerForm::ReloadLocalDirectory(const UnicodeString //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::BatchStart(void *& /*Storage*/) { - assert(FErrorList == NULL); + DebugAssert(FErrorList == NULL); if (WinConfiguration->ContinueOnError) { FErrorList = new TStringList(); @@ -2089,6 +2106,7 @@ bool __fastcall TCustomScpExplorerForm::ExecuteFileOperation(TFileOperation Oper bool Temp = false; bool DragDrop = false; int Options = 0; + TAutoSwitch UseQueue = asAuto; if (Param != NULL) { TTransferOperationParam& TParam = @@ -2097,14 +2115,30 @@ bool __fastcall TCustomScpExplorerForm::ExecuteFileOperation(TFileOperation Oper Temp = TParam.Temp; DragDrop = TParam.DragDrop; Options = TParam.Options; + UseQueue = TParam.Queue; } TGUICopyParamType CopyParam = GUIConfiguration->CurrentCopyParam; + switch (UseQueue) + { + case asOn: + CopyParam.Queue = true; + break; + + case asOff: + CopyParam.Queue = false; + break; + + case asAuto: + default: + // keep default + break; + } Result = CopyParamDialog(Direction, Type, Temp, FileList, TargetDirectory, CopyParam, !NoConfirmation, DragDrop, Options); if (Result) { - assert(Terminal); + DebugAssert(Terminal); bool SelectionRestored = false; TCustomDirView * DView = NULL; if (HasDirView[Side]) @@ -2117,7 +2151,7 @@ bool __fastcall TCustomScpExplorerForm::ExecuteFileOperation(TFileOperation Oper UpdateCopyParamCounters(CopyParam); std::unique_ptr TransferResumeList(new TStringList()); - assert(FTransferResumeList == NULL); + DebugAssert(FTransferResumeList == NULL); FTransferResumeList = Terminal->IsCapable[fcMoveToQueue] ? TransferResumeList.get() : NULL; FMoveToQueue = false; @@ -2170,8 +2204,8 @@ bool __fastcall TCustomScpExplorerForm::ExecuteFileOperation(TFileOperation Oper Params |= (CopyParam.QueueNoConfirmation ? cpNoConfirmation : 0); - assert(CopyParam.TransferSkipList == NULL); - assert(CopyParam.TransferResumeFile.IsEmpty()); + DebugAssert(CopyParam.TransferSkipList == NULL); + DebugAssert(CopyParam.TransferResumeFile.IsEmpty()); if (TransferResumeList->Count > 0) { CopyParam.TransferResumeFile = TransferResumeList->Strings[TransferResumeList->Count - 1]; @@ -2205,13 +2239,13 @@ bool __fastcall TCustomScpExplorerForm::ExecuteFileOperation(TFileOperation Oper } else if (Operation == foRename) { - assert(DirView(Side)->ItemFocused); + DebugAssert(DirView(Side)->ItemFocused); DirView(Side)->ItemFocused->EditCaption(); Result = true; } else if (Operation == foDelete) { - assert(FileList->Count); + DebugAssert(FileList->Count); // We deliberately do not toggle alternative flag (Param), but use OR, // because the Param is set only when command is invoked using Shift-Del/F8 keyboard // shortcut of CurrentDeleteAlternativeAction @@ -2254,7 +2288,7 @@ bool __fastcall TCustomScpExplorerForm::ExecuteFileOperation(TFileOperation Oper } TMessageParams Params(mpNeverAskAgainCheck); - Params.ImageName = L"DELETE_FILE"; + Params.ImageName = L"Delete file"; unsigned int Answer = MessageDialog(MainInstructions(Query), qtConfirmation, qaOK | qaCancel, HELP_DELETE_FILE, &Params); if (Answer == qaNeverAskAgain) @@ -2287,8 +2321,8 @@ bool __fastcall TCustomScpExplorerForm::ExecuteFileOperation(TFileOperation Oper } else if (Operation == foCustomCommand) { - assert(Param); - assert(Side == osRemote); + DebugAssert(Param); + DebugAssert(Side == osRemote); RemoteDirView->SaveSelectedNames(); const TCustomCommandType * Command = static_cast(Param); @@ -2297,13 +2331,25 @@ bool __fastcall TCustomScpExplorerForm::ExecuteFileOperation(TFileOperation Oper } else if ((Operation == foRemoteMove) || (Operation == foRemoteCopy)) { - assert(Side == osRemote); + DebugAssert(Side == osRemote); Result = RemoteTransferFiles(FileList, NoConfirmation, (Operation == foRemoteMove), reinterpret_cast(Param)); } + else if (Operation == foLock) + { + DebugAssert(Side == osRemote); + LockFiles(FileList, true); + Result = true; + } + else if (Operation == foUnlock) + { + DebugAssert(Side == osRemote); + LockFiles(FileList, false); + Result = true; + } else { - FAIL; + DebugFail(); } } __finally @@ -2362,16 +2408,24 @@ void __fastcall TCustomScpExplorerForm::ExecuteFileOperationCommand( } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::ExecuteCopyOperationCommand( - TOperationSide Side, bool OnFocused, bool ShortCutHint) + TOperationSide Side, bool OnFocused, unsigned int Flags) { TTransferOperationParam Param; if ((WinConfiguration->Interface != ifCommander) || WinConfiguration->ScpCommander.ExplorerKeyboardShortcuts) { - ShortCutHint = false; + Flags &= ~cocShortCutHint; } Param.Options = - FLAGMASK(ShortCutHint, coShortCutHint); + FLAGMASK(FLAGSET(Flags, cocShortCutHint), coShortCutHint); + if (FLAGSET(Flags, cocQueue)) + { + Param.Queue = asOn; + } + else if (FLAGSET(Flags, cocNonQueue)) + { + Param.Queue = asOff; + } ExecuteFileOperationCommand(foCopy, Side, OnFocused, false, &Param); } //--------------------------------------------------------------------------- @@ -2389,7 +2443,7 @@ void __fastcall TCustomScpExplorerForm::HandleErrorList(TStringList *& ErrorList int Index = 0; do { - assert(Index >= 0 && Index < ErrorList->Count); + DebugAssert(Index >= 0 && Index < ErrorList->Count); TQueryButtonAlias Aliases[2]; Aliases[0].Button = qaYes; Aliases[0].Alias = LoadStr(PREV_BUTTON); @@ -2446,7 +2500,7 @@ void __fastcall TCustomScpExplorerForm::ExecuteRemoteFile( //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::EditNew(TOperationSide Side) { - assert(!WinConfiguration->DisableOpenEdit); + DebugAssert(!WinConfiguration->DisableOpenEdit); Side = GetSide(Side); @@ -2494,8 +2548,10 @@ void __fastcall TCustomScpExplorerForm::EditNew(TOperationSide Side) RemoteDirectory, GUIConfiguration->CurrentCopyParam, TempDir, RootTempDir); TargetFileName = UnixExtractFileName(Name); + TCopyParamType CopyParam = GUIConfiguration->CurrentCopyParam; LocalFileName = TempDir + - GUIConfiguration->CurrentCopyParam.ChangeFileName(TargetFileName, osRemote, false); + // We probably do not want to trim the VMS version here + FTerminal->ChangeFileName(&CopyParam, TargetFileName, osRemote, false); } else { @@ -2511,9 +2567,9 @@ void __fastcall TCustomScpExplorerForm::EditNew(TOperationSide Side) TargetFileName = ExtractFileName(Name); } - if (!FileExists(::ApiPath(LocalFileName))) + if (!FileExists(ApiPath(LocalFileName))) { - int File = FileCreate(::ApiPath(LocalFileName)); + int File = FileCreate(ApiPath(LocalFileName)); if (File < 0) { if (!RootTempDir.IsEmpty()) @@ -2542,9 +2598,9 @@ void __fastcall TCustomScpExplorerForm::EditNew(TOperationSide Side) bool __fastcall TCustomScpExplorerForm::RemoteExecuteForceText( TExecuteFileBy ExecuteFileBy, const TEditorData * ExternalEditor) { - assert((ExecuteFileBy == efExternalEditor) == + DebugAssert((ExecuteFileBy == efExternalEditor) == ((ExternalEditor != NULL) && (ExternalEditor->Editor == edExternal))); - assert(ExecuteFileBy != efDefaultEditor); + DebugAssert(ExecuteFileBy != efDefaultEditor); return ((ExecuteFileBy == efInternalEditor)) || @@ -2556,10 +2612,10 @@ void __fastcall TCustomScpExplorerForm::CustomExecuteFile(TOperationSide Side, const TEditorData * ExternalEditor, UnicodeString LocalRootDirectory, UnicodeString RemoteDirectory) { - assert(!WinConfiguration->DisableOpenEdit); - assert((ExecuteFileBy == efExternalEditor) == + DebugAssert(!WinConfiguration->DisableOpenEdit); + DebugAssert((ExecuteFileBy == efExternalEditor) == ((ExternalEditor != NULL) && (ExternalEditor->Editor == edExternal))); - assert(ExecuteFileBy != efDefaultEditor); + DebugAssert(ExecuteFileBy != efDefaultEditor); Side = GetSide(Side); @@ -2587,20 +2643,15 @@ void __fastcall TCustomScpExplorerForm::CustomExecuteFile(TOperationSide Side, try { Editor = ShowEditorForm(FileName, this, FEditorManager->FileChanged, - FEditorManager->FileReload, FEditorManager->FileClosed, Caption, - FStandaloneEditing, SessionColor); + FEditorManager->FileReload, FEditorManager->FileClosed, + SaveAllInternalEditors, AnyInternalEditorModified, + Caption, FStandaloneEditing, SessionColor); } catch(...) { if (!LocalRootDirectory.IsEmpty()) { - try - { - RecursiveDeleteFile(ExcludeTrailingBackslash(LocalRootDirectory), false); - } - catch(...) - { - } + RecursiveDeleteFile(ExcludeTrailingBackslash(LocalRootDirectory), false); } throw; } @@ -2609,9 +2660,10 @@ void __fastcall TCustomScpExplorerForm::CustomExecuteFile(TOperationSide Side, } else { - assert(!FStandaloneEditing); + DebugAssert(!FStandaloneEditing); TForm * Editor = ShowEditorForm(FileName, this, NULL, NULL, LocalEditorClosed, + SaveAllInternalEditors, AnyInternalEditorModified, L"", false, SessionColor); FLocalEditors->Add(Editor); } @@ -2635,7 +2687,7 @@ void __fastcall TCustomScpExplorerForm::CustomExecuteFile(TOperationSide Side, } else { - assert(Side == osRemote); + DebugAssert(Side == osRemote); if (!ExecuteShell(FileName, L"", Process)) { throw Exception(FMTLOAD(EXECUTE_FILE_ERROR, (FileName))); @@ -2651,7 +2703,7 @@ void __fastcall TCustomScpExplorerForm::CustomExecuteFile(TOperationSide Side, // no need for handle if (Process != NULL) { - CHECK(CloseHandle(Process)); + DebugCheck(CloseHandle(Process)); } Process = INVALID_HANDLE_VALUE; } @@ -2670,9 +2722,57 @@ void __fastcall TCustomScpExplorerForm::CustomExecuteFile(TOperationSide Side, } } //--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::SaveInternalEditor( + const UnicodeString /*FileName*/, TEditedFileData * /*Data*/, TObject * Token, + void * /*Arg*/) +{ + if (Token != NULL) + { + EditorFormFileSave(static_cast(Token)); + } +} +//--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::SaveAllInternalEditors(TObject * /*Sender*/) +{ + for (int Index = 0; Index < FLocalEditors->Count; Index++) + { + EditorFormFileSave(static_cast(FLocalEditors->Items[Index])); + } + + FEditorManager->ProcessFiles(SaveInternalEditor, NULL); +} +//--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::InternalEditorModified( + const UnicodeString /*FileName*/, TEditedFileData * /*Data*/, TObject * Token, + void * Arg) +{ + if ((Token != NULL) && + IsEditorFormModified(static_cast(Token))) + { + *static_cast(Arg) = true; + } +} +//--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::AnyInternalEditorModified( + TObject * /*Sender*/, bool & Modified) +{ + for (int Index = 0; !Modified && (Index < FLocalEditors->Count); Index++) + { + if (IsEditorFormModified(static_cast(FLocalEditors->Items[Index]))) + { + Modified = true; + } + } + + if (!Modified) + { + FEditorManager->ProcessFiles(InternalEditorModified, &Modified); + } +} +//--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::LocalEditorClosed(TObject * Sender, bool /*Forced*/) { - CHECK(FLocalEditors->Extract(Sender) >= 0); + DebugCheck(FLocalEditors->Extract(Sender) >= 0); } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::TemporaryDirectoryForRemoteFiles( @@ -2688,10 +2788,6 @@ void __fastcall TCustomScpExplorerForm::TemporaryDirectoryForRemoteFiles( { RootDirectory = L""; Result = WinConfiguration->ExpandedTemporaryDirectory(); - if (Result.IsEmpty()) - { - Result = SystemTemporaryDirectory(); - } Result = IncludeTrailingBackslash(Result); } @@ -2709,7 +2805,7 @@ void __fastcall TCustomScpExplorerForm::TemporaryDirectoryForRemoteFiles( Result = IncludeTrailingBackslash(Result + CopyParam.ValidLocalPath(FromUnixPath(RemoteDirectory))); } - if (!ForceDirectories(::ApiPath(Result))) + if (!ForceDirectories(ApiPath(Result))) { throw EOSExtException(FMTLOAD(CREATE_TEMP_DIR_ERROR, (Result))); } @@ -2735,7 +2831,7 @@ void __fastcall TCustomScpExplorerForm::TemporarilyDownloadFiles( TemporaryDirectoryForRemoteFiles(FTerminal->CurrentDirectory, CopyParam, TempDir, RootTempDir); } - assert(!FAutoOperation); + DebugAssert(!FAutoOperation); FAutoOperation = AutoOperation; Terminal->ExceptionOnFail = true; try @@ -2752,7 +2848,7 @@ void __fastcall TCustomScpExplorerForm::TemporarilyDownloadFiles( for (int i = 0; i < FileList->Count; i++) { FileList->Strings[i] = - CopyParam.ChangeFileName(UnixExtractFileName(FileList->Strings[i]), osRemote, false); + Terminal->ChangeFileName(&CopyParam, UnixExtractFileName(FileList->Strings[i]), osRemote, false); } } } @@ -2760,13 +2856,7 @@ void __fastcall TCustomScpExplorerForm::TemporarilyDownloadFiles( { if (!RootTempDir.IsEmpty()) { - try - { - RecursiveDeleteFile(ExcludeTrailingBackslash(RootTempDir), false); - } - catch(...) - { - } + RecursiveDeleteFile(ExcludeTrailingBackslash(RootTempDir), false); } throw; } @@ -2870,7 +2960,9 @@ void __fastcall TCustomScpExplorerForm::ExecuteFile(TOperationSide Side, UnicodeString LocalFileName; if (Side == osRemote) { - OriginalFileName = UnixExtractFileName(FullFileName); + // We need to trim VMS version here, so that we use name without version + // when uploading back to create a new version of the file + OriginalFileName = FTerminal->GetBaseFileName(UnixExtractFileName(FullFileName)); RemoteDirectory = UnixExtractFilePath(FullFileName); TObject * Token = NULL; UnicodeString LocalDirectory; @@ -2926,7 +3018,7 @@ void __fastcall TCustomScpExplorerForm::ExecuteFile(TOperationSide Side, break; default: - FAIL; + DebugFail(); } } else @@ -2949,7 +3041,7 @@ void __fastcall TCustomScpExplorerForm::ExecuteFile(TOperationSide Side, break; default: - FAIL; + DebugFail(); } } @@ -2963,8 +3055,8 @@ void __fastcall TCustomScpExplorerForm::ExecuteFile(TOperationSide Side, TExecuteFileBy ExecuteFileBy, const TEditorData * ExternalEditor, bool AllSelected, bool OnFocused) { - assert(!WinConfiguration->DisableOpenEdit); - assert((ExecuteFileBy == efExternalEditor) == + DebugAssert(!WinConfiguration->DisableOpenEdit); + DebugAssert((ExecuteFileBy == efExternalEditor) == ((ExternalEditor != NULL) && (ExternalEditor->Editor == edExternal))); Side = GetSide(Side); @@ -2975,7 +3067,7 @@ void __fastcall TCustomScpExplorerForm::ExecuteFile(TOperationSide Side, DView->CreateFocusedFileList(Side == osLocal); try { - assert(AllSelected || (FileList->Count == 1)); + DebugAssert(AllSelected || (FileList->Count == 1)); for (int i = 0; i < FileList->Count; i++) { UnicodeString ListFileName = FileList->Strings[i]; @@ -3107,7 +3199,7 @@ void __fastcall TCustomScpExplorerForm::ExecutedFileChanged(const UnicodeString CopyParam.FileMask = DelimitFileNameMask(Data->OriginalFileName); } - assert(Data->Queue != NULL); + DebugAssert(Data->Queue != NULL); int Params = cpNoConfirmation | cpTemporary; TQueueItem * QueueItem = new TUploadQueueItem(Data->Terminal, FileList, @@ -3125,7 +3217,7 @@ void __fastcall TCustomScpExplorerForm::ExecutedFileReload( const UnicodeString FileName, const TEditedFileData * Data) { // Sanity check, we should not be busy otherwise user would not be able to click Reload button. - assert(!NonVisualDataModule->Busy); + DebugAssert(!NonVisualDataModule->Busy); if ((Data->Terminal == NULL) || !Data->Terminal->Active) { @@ -3165,7 +3257,7 @@ void __fastcall TCustomScpExplorerForm::ExecutedFileReload( TempDir, true, true, true); // sanity check, the target file name should be still the same - assert(ExtractFileName(FileName) == FileList->Strings[0]); + DebugAssert(ExtractFileName(FileName) == FileList->Strings[0]); } __finally { @@ -3300,7 +3392,7 @@ void __fastcall TCustomScpExplorerForm::ExecutedFileEarlyClosed( //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::ExecutedFileUploadComplete(TObject * Sender) { - EditorFormFileUploadComplete(NOT_NULL(dynamic_cast(Sender))); + EditorFormFileUploadComplete(DebugNotNull(dynamic_cast(Sender))); } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::RemoteDirViewEnter(TObject * /*Sender*/) @@ -3326,11 +3418,11 @@ void __fastcall TCustomScpExplorerForm::SideEnter(TOperationSide Side) void __fastcall TCustomScpExplorerForm::DeleteFiles(TOperationSide Side, TStrings * FileList, bool Alternative) { - assert(Terminal); + DebugAssert(Terminal); TCustomDirView * DView = DirView(Side); DView->SaveSelection(); DView->SaveSelectedNames(); - assert(!FAlternativeDelete); + DebugAssert(!FAlternativeDelete); FAlternativeDelete = Alternative; try @@ -3361,6 +3453,31 @@ void __fastcall TCustomScpExplorerForm::DeleteFiles(TOperationSide Side, DView->RestoreSelection(); } //--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::LockFiles(TStrings * FileList, bool Lock) +{ + DebugAssert(Terminal); + RemoteDirView->SaveSelection(); + RemoteDirView->SaveSelectedNames(); + + try + { + if (Lock) + { + Terminal->LockFiles(FileList); + } + else + { + Terminal->UnlockFiles(FileList); + } + } + catch(...) + { + RemoteDirView->DiscardSavedSelection(); + throw; + } + RemoteDirView->RestoreSelection(); +} +//--------------------------------------------------------------------------- bool __fastcall TCustomScpExplorerForm::RemoteTransferDialog(TTerminal *& Session, TStrings * FileList, UnicodeString & Target, UnicodeString & FileMask, bool & DirectCopy, bool NoConfirmation, bool Move) @@ -3371,7 +3488,7 @@ bool __fastcall TCustomScpExplorerForm::RemoteTransferDialog(TTerminal *& Sessio } else if (RemoteDirView->DropTarget != NULL) { - assert(RemoteDirView->ItemIsDirectory(RemoteDirView->DropTarget)); + DebugAssert(RemoteDirView->ItemIsDirectory(RemoteDirView->DropTarget)); Target = RemoteDirView->ItemFullFileName(RemoteDirView->DropTarget); } else @@ -3396,13 +3513,15 @@ bool __fastcall TCustomScpExplorerForm::RemoteTransferDialog(TTerminal *& Sessio bool Result = true; if (!NoConfirmation) { + bool Multi = (FileList->Count > 1); + if (Move) { - Result = DoRemoteMoveDialog(Target, FileMask); + Result = DoRemoteMoveDialog(Multi, Target, FileMask); } else { - assert(Terminal != NULL); + DebugAssert(Terminal != NULL); // update Terminal->StateData->RemoteDirectory UpdateTerminal(Terminal); TStrings * Sessions = TTerminalManager::Instance()->TerminalList; @@ -3419,22 +3538,22 @@ bool __fastcall TCustomScpExplorerForm::RemoteTransferDialog(TTerminal *& Sessio TDirectRemoteCopy AllowDirectCopy; if (FTerminal->IsCapable[fcRemoteCopy] || FTerminal->CommandSessionOpened) { - assert(DirectCopy); + DebugAssert(DirectCopy); AllowDirectCopy = drcAllow; } else if (FTerminal->IsCapable[fcSecondaryShell]) { - assert(DirectCopy); + DebugAssert(DirectCopy); AllowDirectCopy = drcConfirmCommandSession; } else { - assert(!DirectCopy); + DebugAssert(!DirectCopy); AllowDirectCopy = drcDisallow; } void * ASession = Session; Result = DoRemoteCopyDialog(Sessions, Directories, AllowDirectCopy, - ASession, Target, FileMask, DirectCopy); + Multi, ASession, Target, FileMask, DirectCopy); Session = static_cast(ASession); } __finally @@ -3480,7 +3599,7 @@ bool __fastcall TCustomScpExplorerForm::RemoteTransferFiles( TGUICopyParamType CopyParam = GUIConfiguration->CurrentCopyParam; CopyParam.FileMask = FileMask; - assert(!FAutoOperation); + DebugAssert(!FAutoOperation); FAutoOperation = true; FTerminal->CopyToRemote(TemporaryFilesList, Target, &CopyParam, cpTemporary); } @@ -3511,8 +3630,8 @@ bool __fastcall TCustomScpExplorerForm::RemoteTransferFiles( { Configuration->Usage->Inc("RemoteCopyDirect"); - assert(DirectCopy); - assert(Session == FTerminal); + DebugAssert(DirectCopy); + DebugAssert(Session == FTerminal); if (FTerminal->IsCapable[fcRemoteCopy] || FTerminal->CommandSessionOpened || @@ -3587,6 +3706,8 @@ bool __fastcall TCustomScpExplorerForm::OpenBookmark(UnicodeString Local, Unicod bool Result = !Path.IsEmpty(); if (Result) { + // While we might get here when the session is closed (from location profiles), + // it's not a problem as the Path setter is noop then DirView(FCurrentSide)->Path = Path; } return Result; @@ -3595,7 +3716,7 @@ bool __fastcall TCustomScpExplorerForm::OpenBookmark(UnicodeString Local, Unicod void __fastcall TCustomScpExplorerForm::RemoteDirViewGetSelectFilter( TCustomDirView *Sender, bool Select, TFileFilter &Filter) { - assert(Sender); + DebugAssert(Sender); if (!DoSelectMaskDialog(Sender, Select, &Filter, Configuration)) Abort(); } //--------------------------------------------------------------------------- @@ -3755,6 +3876,15 @@ bool __fastcall TCustomScpExplorerForm::SetProperties(TOperationSide Side, TStri return Result; } //--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::KeyProcessed(Word & Key, TShiftState Shift) +{ + if (Shift * AllKeyShiftStates() == (TShiftState() << ssAlt)) + { + FIgnoreNextDialogChar = Key; + } + Key = 0; +} +//--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::KeyDown(Word & Key, Classes::TShiftState Shift) { if (QueueView3->Focused() && (QueueView3->OnKeyDown != NULL)) @@ -3772,7 +3902,10 @@ void __fastcall TCustomScpExplorerForm::KeyDown(Word & Key, Classes::TShiftState (Action->SecondaryShortCuts->IndexOfShortCut(KeyShortCut) >= 0)) && AllowedAction(Action, aaShortCut)) { - Key = 0; + // Has to be called before the action as the dialog char is already in queue. + // So when the action consumes message queue, we already need to have the + // FIgnoreNextDialogChar set + KeyProcessed(Key, Shift); // Reset reference to previous component (when menu/toolbar was clicked). // Needed to detect that action was invoked by keyboard shortcut // in TNonVisualDataModule::ExplorerActionsExecute @@ -3785,15 +3918,15 @@ void __fastcall TCustomScpExplorerForm::KeyDown(Word & Key, Classes::TShiftState { if (NonVisualDataModule->OpenSessionShortCut(i) == KeyShortCut) { - FIgnoreNextSysCommand = true; + KeyProcessed(Key, Shift); TTerminalManager::Instance()->ActiveTerminalIndex = i; return; } } if (Key == VK_TAB && Shift.Contains(ssCtrl)) { + KeyProcessed(Key, Shift); TTerminalManager::Instance()->CycleTerminals(!Shift.Contains(ssShift)); - Key = 0; } if (IsCustomShortCut(KeyShortCut)) @@ -3801,12 +3934,12 @@ void __fastcall TCustomScpExplorerForm::KeyDown(Word & Key, Classes::TShiftState const TCustomCommandType * Command = WinConfiguration->CustomCommandList->Find(KeyShortCut); if (Command != NULL) { + KeyProcessed(Key, Shift); if (CustomCommandState(*Command, false) > 0) { ExecuteFileOperationCommand(foCustomCommand, osRemote, false, false, const_cast(Command)); } - Key = 0; } if (WinConfiguration->SharedBookmarks != NULL) @@ -3815,7 +3948,7 @@ void __fastcall TCustomScpExplorerForm::KeyDown(Word & Key, Classes::TShiftState if ((Bookmark != NULL) && OpenBookmark(Bookmark->Local, Bookmark->Remote)) { - Key = 0; + KeyProcessed(Key, Shift); } } } @@ -3829,7 +3962,7 @@ void __fastcall TCustomScpExplorerForm::InitStatusBar() const TSessionInfo & SessionInfo = Terminal->GetSessionInfo(); const TFileSystemInfo & FileSystemInfo = Terminal->GetFileSystemInfo(); TTBXStatusBar * SessionStatusBar = (TTBXStatusBar *)GetComponent(fcStatusBar); - assert(Terminal); + DebugAssert(Terminal); int Offset = SessionStatusBar->Panels->Count - SessionPanelCount; @@ -3878,18 +4011,18 @@ void __fastcall TCustomScpExplorerForm::InitStatusBar() void __fastcall TCustomScpExplorerForm::UpdateStatusBar() { TTBXStatusBar * SessionStatusBar = (TTBXStatusBar *)GetComponent(fcStatusBar); - assert(SessionStatusBar != NULL); + DebugAssert(SessionStatusBar != NULL); if (!Terminal || !Terminal->Active || Terminal->Status < ssOpened) { // note: (Terminal->Status < sshReady) currently never happens here, // so STATUS_CONNECTING is never used SessionStatusBar->SimplePanel = true; SessionStatusBar->SimpleText = LoadStr( - !Terminal || !Terminal->Active ? STATUS_DISCONNECTED : STATUS_CONNECTING); + !Terminal || !Terminal->Active ? STATUS_NOT_CONNECTED : STATUS_CONNECTING); } else { - assert(Terminal); + DebugAssert(Terminal); SessionStatusBar->SimplePanel = false; const TSessionInfo & SessionInfo = Terminal->GetSessionInfo(); @@ -3980,7 +4113,7 @@ void __fastcall TCustomScpExplorerForm::Idle() UpdateStatusBar(); } - FIgnoreNextSysCommand = false; + FIgnoreNextDialogChar = 0; } //--------------------------------------------------------------------------- @@ -4005,8 +4138,9 @@ void __fastcall TCustomScpExplorerForm::UserActionTimer(TObject * /*Sender*/) //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::ApplicationHint(TObject * /*Sender*/) { - assert(Application); - UnicodeString AHint = GetLongHint(Application->Hint); + DebugAssert(Application); + // Application->Hint contains long hint only + UnicodeString AHint = Application->Hint; FShowStatusBarHint = Active && !AHint.IsEmpty(); if (FShowStatusBarHint) { @@ -4056,6 +4190,20 @@ void __fastcall TCustomScpExplorerForm::ApplicationRestore(TObject * /*Sender*/) ShowWindow(Handle, SW_SHOW); } } + + if (FNeedSession && DebugAlwaysTrue(Terminal == NULL)) + { + FNeedSession = false; + NonVisualDataModule->StartBusy(); + try + { + NeedSession(false); + } + __finally + { + NonVisualDataModule->EndBusy(); + } + } } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::UpdateTrayIcon() @@ -4118,7 +4266,7 @@ void __fastcall TCustomScpExplorerForm::DuplicateSession() // modified only, explicit StoredSessions->Save(false, true); // encode session name because of slashes in hierarchical sessions - ExecuteNewInstance(EncodeUrlChars(SessionName)); + ExecuteNewInstance(EncodeUrlString(SessionName)); } else { @@ -4135,9 +4283,14 @@ void __fastcall TCustomScpExplorerForm::DuplicateSession() //--------------------------------------------------------------------------- bool __fastcall TCustomScpExplorerForm::CanCloseQueue() { - assert(FQueue != NULL); - return (FQueue->IsEmpty || - (MessageDialog(LoadStr(PENDING_QUEUE_ITEMS2), qtWarning, qaOK | qaCancel, HELP_NONE) == qaOK)); + DebugAssert(FQueue != NULL); + bool Result = FQueue->IsEmpty; + if (!Result) + { + SetFocus(); + Result = (MessageDialog(LoadStr(PENDING_QUEUE_ITEMS2), qtWarning, qaOK | qaCancel, HELP_NONE) == qaOK); + } + return Result; } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::CloseSession() @@ -4153,7 +4306,7 @@ void __fastcall TCustomScpExplorerForm::OpenStoredSession(TSessionData * Data) if (OpenInNewWindow()) { // encode session name because of slashes in hierarchical sessions - ExecuteNewInstance(EncodeUrlChars(Data->Name)); + ExecuteNewInstance(EncodeUrlString(Data->Name)); } else { @@ -4181,63 +4334,67 @@ void __fastcall TCustomScpExplorerForm::OpenFolderOrWorkspace(const UnicodeStrin void __fastcall TCustomScpExplorerForm::FormCloseQuery(TObject * /*Sender*/, bool &CanClose) { - if (Terminal->Active && WinConfiguration->ConfirmClosingSession) + if (Terminal != NULL) { - unsigned int Result; - TMessageParams Params(mpNeverAskAgainCheck); - UnicodeString Message; - int Answers = qaOK | qaCancel; - if (TTerminalManager::Instance()->Count > 1) + if (Terminal->Active && WinConfiguration->ConfirmClosingSession) { - if (!WinConfiguration->AutoSaveWorkspace) + unsigned int Result; + TMessageParams Params(mpNeverAskAgainCheck); + UnicodeString Message; + int Answers = qaOK | qaCancel; + if (TTerminalManager::Instance()->Count > 1) { - Message = LoadStr(CLOSE_SESSIONS_WORKSPACE2); - Answers = qaYes | qaNo | qaCancel; + if (!WinConfiguration->AutoSaveWorkspace) + { + Message = LoadStr(CLOSE_SESSIONS_WORKSPACE2); + Answers = qaYes | qaNo | qaCancel; + } + else + { + Message = MainInstructions(LoadStr(CLOSE_SESSIONS)); + } } else { - Message = MainInstructions(LoadStr(CLOSE_SESSIONS)); + Message = MainInstructions(FMTLOAD(CLOSE_SESSION, (Terminal->SessionData->SessionName))); } - } - else - { - Message = MainInstructions(FMTLOAD(CLOSE_SESSION, (Terminal->SessionData->SessionName))); - } - if (WinConfiguration->AutoSaveWorkspace) - { - Message = - FORMAT("%s\n\n%s", (Message, - FMTLOAD(AUTO_WORKSPACE, (WorkspaceName())))); - } + if (WinConfiguration->AutoSaveWorkspace) + { + Message = + FORMAT("%s\n\n%s", (Message, + FMTLOAD(AUTO_WORKSPACE, (WorkspaceName())))); + } - Result = MessageDialog(Message, qtConfirmation, - Answers, HELP_NONE, &Params); + SetFocus(); + Result = MessageDialog(Message, qtConfirmation, + Answers, HELP_NONE, &Params); - if (Result == qaNeverAskAgain) - { - WinConfiguration->ConfirmClosingSession = false; - } + if (Result == qaNeverAskAgain) + { + WinConfiguration->ConfirmClosingSession = false; + } - if (Result == qaNo) - { - CanClose = SaveWorkspace(true); - // note that the workspace will be saved redundatly again from FormClose + if (Result == qaNo) + { + CanClose = SaveWorkspace(true); + // note that the workspace will be saved redundatly again from FormClose + } + else + { + CanClose = + (Result == qaOK) || + (Result == qaYes) || // CLOSE_SESSIONS_WORKSPACE variant + (Result == qaNeverAskAgain); + } } - else + + if (CanClose) { - CanClose = - (Result == qaOK) || - (Result == qaYes) || // CLOSE_SESSIONS_WORKSPACE variant - (Result == qaNeverAskAgain); + CanClose = CanCloseQueue(); } } - if (CanClose) - { - CanClose = CanCloseQueue(); - } - if (CanClose) { CanClose = @@ -4255,10 +4412,14 @@ void __fastcall TCustomScpExplorerForm::FormCloseQuery(TObject * /*Sender*/, if (CanClose) { - CanClose = - FEditorManager->Empty(true) || - (MessageDialog(LoadStr(PENDING_EDITORS), qtWarning, qaIgnore | qaCancel, - HELP_NONE) == qaIgnore); + CanClose = FEditorManager->Empty(true); + if (!CanClose) + { + SetFocus(); + CanClose = + (MessageDialog( + LoadStr(PENDING_EDITORS), qtWarning, qaIgnore | qaCancel, HELP_NONE) == qaIgnore); + } } } } @@ -4267,7 +4428,7 @@ void __fastcall TCustomScpExplorerForm::FormCloseQuery(TObject * /*Sender*/, void __fastcall TCustomScpExplorerForm::CloseInternalEditor(TObject * Sender) { TForm * Form = dynamic_cast(Sender); - assert(Form != NULL); + DebugAssert(Form != NULL); Form->Close(); } //--------------------------------------------------------------------------- @@ -4314,7 +4475,7 @@ void __fastcall TCustomScpExplorerForm::ComponentShowing(Byte Component, bool va void __fastcall TCustomScpExplorerForm::SetComponentVisible(Byte Component, Boolean value) { TControl * Control = GetComponent(Component); - assert(Control); + DebugAssert(Control); bool Changed = (Control->Visible != value); if (Changed) { @@ -4408,7 +4569,7 @@ TControl * __fastcall TCustomScpExplorerForm::GetComponent(Byte Component) void __fastcall TCustomScpExplorerForm::DirViewColumnRightClick( TObject *Sender, TListColumn *Column, TPoint &Point) { - assert(NonVisualDataModule && Column && Sender); + DebugAssert(NonVisualDataModule && Column && Sender); NonVisualDataModule->ListColumn = Column; TPoint ScreenPoint = ((TControl*)Sender)->ClientToScreen(Point); TPopupMenu * DirViewColumnMenu; @@ -4440,8 +4601,8 @@ void __fastcall TCustomScpExplorerForm::DirViewExecFile( void __fastcall TCustomScpExplorerForm::DoDirViewExecFile(TObject * Sender, TListItem * Item, bool & AllowExec) { - assert(Sender && Item && Configuration); - assert(AllowExec); + DebugAssert(Sender && Item && Configuration); + DebugAssert(AllowExec); TCustomDirView * ADirView = (TCustomDirView *)Sender; bool Remote = (ADirView == DirView(osRemote)); bool ResolvedSymlinks = !Remote || Terminal->ResolvingSymlinks; @@ -4473,7 +4634,7 @@ void __fastcall TCustomScpExplorerForm::DoDirViewExecFile(TObject * Sender, } else { - FAIL; + DebugFail(); } } @@ -4496,12 +4657,12 @@ bool __fastcall TCustomScpExplorerForm::GetHasDirView(TOperationSide Side) //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::CompareDirectories() { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::SynchronizeDirectories() { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- bool __fastcall TCustomScpExplorerForm::DoSynchronizeDirectories( @@ -4518,7 +4679,7 @@ bool __fastcall TCustomScpExplorerForm::DoSynchronizeDirectories( bool SaveSettings = false; TSynchronizeController Controller(&DoSynchronize, &DoSynchronizeInvalid, &DoSynchronizeTooManyDirectories); - assert(FSynchronizeController == NULL); + DebugAssert(FSynchronizeController == NULL); FSynchronizeController = &Controller; bool Result; try @@ -4527,7 +4688,7 @@ bool __fastcall TCustomScpExplorerForm::DoSynchronizeDirectories( int CopyParamAttrs = Terminal->UsableCopyParamAttrs(0).Upload; int Options = FLAGMASK(SynchronizeAllowSelectedOnly(), soAllowSelectedOnly); - assert(FOnFeedSynchronizeError == NULL); + DebugAssert(FOnFeedSynchronizeError == NULL); Result = DoSynchronizeDialog(Params, &CopyParam, Controller.StartStop, SaveSettings, Options, CopyParamAttrs, GetSynchronizeOptions, FOnFeedSynchronizeError, UseDefaults); @@ -4556,7 +4717,7 @@ bool __fastcall TCustomScpExplorerForm::DoSynchronizeDirectories( __finally { FSynchronizeController = NULL; - assert(FOnFeedSynchronizeError == NULL); + DebugAssert(FOnFeedSynchronizeError == NULL); FOnFeedSynchronizeError = NULL; } return Result; @@ -4646,7 +4807,7 @@ void __fastcall TCustomScpExplorerForm::Synchronize(const UnicodeString LocalDir const TCopyParamType & CopyParam, int Params, TSynchronizeChecklist ** Checklist, TSynchronizeOptions * Options) { - assert(!FAutoOperation); + DebugAssert(!FAutoOperation); void * BatchStorage; BatchStart(BatchStorage); FAutoOperation = true; @@ -4761,7 +4922,7 @@ bool __fastcall TCustomScpExplorerForm::DoFullSynchronizeDirectories( TSynchronizeChecklist * Checklist = NULL; try { - assert(!FAutoOperation); + DebugAssert(!FAutoOperation); FAutoOperation = true; try @@ -4790,7 +4951,7 @@ bool __fastcall TCustomScpExplorerForm::DoFullSynchronizeDirectories( DoSynchronizeChecklistDialog(Checklist, Mode, Params, LocalDirectory, RemoteDirectory, CustomCommandMenu)) { - assert(!FAutoOperation); + DebugAssert(!FAutoOperation); void * BatchStorage; BatchStart(BatchStorage); FAutoOperation = true; @@ -4832,7 +4993,7 @@ void __fastcall TCustomScpExplorerForm::TerminalSynchronizeDirectory( const UnicodeString LocalDirectory, const UnicodeString RemoteDirectory, bool & Continue, bool /*Collect*/) { - assert(FSynchronizeProgressForm != NULL); + DebugAssert(FSynchronizeProgressForm != NULL); if (!FSynchronizeProgressForm->Started) { FSynchronizeProgressForm->Start(); @@ -4861,7 +5022,7 @@ void __fastcall TCustomScpExplorerForm::StandaloneEdit(const UnicodeString & Fil //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::ExploreLocalDirectory() { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- TSessionData * __fastcall TCustomScpExplorerForm::CloneCurrentSessionData() @@ -4870,7 +5031,13 @@ TSessionData * __fastcall TCustomScpExplorerForm::CloneCurrentSessionData() SessionData->Assign(Terminal->SessionData); UpdateSessionData(SessionData.get()); TTerminalManager::Instance()->UpdateSessionCredentials(SessionData.get()); - SessionData->IsWorkspace = false; + if (Terminal->SessionData->IsWorkspace) + { + // Have to reset the "Workspace/XXX" name which would become user-visible + // once IsWorkspace is cleared + SessionData->Name = UnicodeString(); + SessionData->IsWorkspace = false; + } return SessionData.release(); } //--------------------------------------------------------------------------- @@ -4894,7 +5061,7 @@ TObjectList * __fastcall TCustomScpExplorerForm::DoCollectWorkspace() TTerminalManager * Manager = TTerminalManager::Instance(); std::unique_ptr DataList(new TObjectList()); - if (ALWAYS_TRUE(Terminal != NULL)) + if (DebugAlwaysTrue(Terminal != NULL)) { // Update (Managed)Terminal->StateData UpdateTerminal(Terminal); @@ -5022,7 +5189,7 @@ bool __fastcall TCustomScpExplorerForm::SaveWorkspace(bool EnableAutoSave) void __fastcall TCustomScpExplorerForm::UpdateTerminal(TTerminal * Terminal) { TManagedTerminal * ManagedTerminal = dynamic_cast(Terminal); - assert(ManagedTerminal != NULL); + DebugAssert(ManagedTerminal != NULL); SAFE_DESTROY(ManagedTerminal->RemoteExplorerState); @@ -5038,7 +5205,7 @@ void __fastcall TCustomScpExplorerForm::UpdateSessionData(TSessionData * Data) { // Keep in sync with TSessionData::CopyStateData - assert(Data != NULL); + DebugAssert(Data != NULL); // cannot use RemoteDirView->Path, because it is empty if connection // was already closed @@ -5056,7 +5223,7 @@ void __fastcall TCustomScpExplorerForm::UpdateSessionData(TSessionData * Data) void __fastcall TCustomScpExplorerForm::ToolBarResize(TObject *Sender) { TTBXToolbar * Toolbar = dynamic_cast(Sender); - assert(Toolbar != NULL); + DebugAssert(Toolbar != NULL); for (int i = 0; i < Toolbar->Items->Count; i++) { @@ -5101,7 +5268,7 @@ void __fastcall TCustomScpExplorerForm::DoWarnLackOfTempSpace( if (!ADrive.IsEmpty()) { __int64 FreeSpace = DiskFree((Byte)(ADrive[1]-'A'+1)); - assert(RequiredSpace >= 0); + DebugAssert(RequiredSpace >= 0); __int64 RequiredWithReserve; RequiredWithReserve = (__int64)(RequiredSpace * WinConfiguration->DDWarnLackOfTempSpaceRatio); if (FreeSpace < RequiredWithReserve) @@ -5186,7 +5353,9 @@ void __fastcall TCustomScpExplorerForm::DoOpenDirectoryDialog( { UnicodeString Name = DirView(Side)->PathName; if (::DoOpenDirectoryDialog(Mode, Side, Name, VisitedDirectories, Terminal, - HasDirView[osLocal])) + // do not allow switching to location profiles, + // if we are not connected + HasDirView[osLocal] && (Terminal != NULL))) { TWindowLock Lock(this); DirView(Side)->Path = Name; @@ -5203,7 +5372,7 @@ bool __fastcall TCustomScpExplorerForm::CommandSessionFallback() { bool Result = true; - assert(!FTerminal->CommandSessionOpened); + DebugAssert(!FTerminal->CommandSessionOpened); try { @@ -5224,7 +5393,7 @@ bool __fastcall TCustomScpExplorerForm::EnsureCommandSessionFallback(TFSCapabili if (!Result) { - assert(FTerminal->IsCapable[fcSecondaryShell]); + DebugAssert(FTerminal->IsCapable[fcSecondaryShell]); if (!GUIConfiguration->ConfirmCommandSession) { Result = true; @@ -5275,7 +5444,7 @@ void __fastcall TCustomScpExplorerForm::FileControlDDDragEnter( } FDDTargetControl = dynamic_cast(Sender); - assert(FDDTargetControl != NULL); + DebugAssert(FDDTargetControl != NULL); } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::SessionsDDDragEnter( @@ -5285,11 +5454,18 @@ void __fastcall TCustomScpExplorerForm::SessionsDDDragEnter( FileControlDDDragEnter(SessionsPageControl, DataObj, KeyState, Point, Effect, Accept); } //--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::QueueDDDragEnter( + _di_IDataObject DataObj, int KeyState, + const TPoint & Point, int & Effect, bool & Accept) +{ + FileControlDDDragEnter(QueueView3, DataObj, KeyState, Point, Effect, Accept); +} +//--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::FileControlDDDragLeave( TObject * Sender) { - USEDPARAM(Sender); - assert(FDDTargetControl == Sender); + DebugUsedParam(Sender); + DebugAssert(FDDTargetControl == Sender); FDDTargetControl = NULL; } //--------------------------------------------------------------------------- @@ -5298,10 +5474,15 @@ void __fastcall TCustomScpExplorerForm::SessionsDDDragLeave() FileControlDDDragLeave(SessionsPageControl); } //--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::QueueDDDragLeave() +{ + FileControlDDDragLeave(QueueView3); +} +//--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::AddEditLink(TOperationSide Side, bool Add) { - assert(GetSide(Side) == osRemote); - USEDPARAM(Side); + DebugAssert(GetSide(Side) == osRemote); + DebugUsedParam(Side); bool Edit = false; TRemoteFile * File = NULL; @@ -5311,7 +5492,7 @@ void __fastcall TCustomScpExplorerForm::AddEditLink(TOperationSide Side, bool Ad if (RemoteDirView->ItemFocused) { - assert(RemoteDirView->ItemFocused->Data); + DebugAssert(RemoteDirView->ItemFocused->Data); File = (TRemoteFile *)RemoteDirView->ItemFocused->Data; Edit = !Add && File->IsSymLink && Terminal->SessionData->ResolveSymlinks; @@ -5333,7 +5514,7 @@ void __fastcall TCustomScpExplorerForm::AddEditLink(TOperationSide Side, bool Ad if (Edit) { - assert(File->FileName == FileName); + DebugAssert(File->FileName == FileName); int Params = dfNoRecursive; Terminal->ExceptionOnFail = true; try @@ -5369,7 +5550,7 @@ bool __fastcall TCustomScpExplorerForm::LinkFocused() //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::ExecuteCurrentFile() { - assert(!WinConfiguration->DisableOpenEdit); + DebugAssert(!WinConfiguration->DisableOpenEdit); FForceExecution = true; try { @@ -5435,7 +5616,7 @@ void __fastcall TCustomScpExplorerForm::FileTerminalRemoved(const UnicodeString TEditedFileData * Data, TObject * /*Token*/, void * Arg) { TTerminal * Terminal = static_cast(Arg); - assert(Terminal != NULL); + DebugAssert(Terminal != NULL); if (Data->Terminal == Terminal) { @@ -5444,28 +5625,37 @@ void __fastcall TCustomScpExplorerForm::FileTerminalRemoved(const UnicodeString } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::LastTerminalClosed(TObject * /*Sender*/) +{ + UpdateControls(); + SessionColor = TColor(0); + UpdateRemotePathComboBox(false); + NeedSession(true); +} +//--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::NeedSession(bool ReloadSessions) { try { - TTerminalManager::Instance()->NewSession(false, L""); + TTerminalManager::Instance()->NewSession(false, L"", ReloadSessions); } __finally { - if (!Terminal || !Terminal->Active) + if (!WinConfiguration->KeepOpenWhenNoSession && + (!Terminal || !Terminal->Active)) { Application->Terminate(); } } } //--------------------------------------------------------------------------- -void __fastcall TCustomScpExplorerForm::TerminalListChanged(TObject * /*Sender*/) +void __fastcall TCustomScpExplorerForm::DoTerminalListChanged(bool Force) { TStrings * TerminalList = TTerminalManager::Instance()->TerminalList; int ActiveTerminalIndex = TTerminalManager::Instance()->ActiveTerminalIndex; Configuration->Usage->SetMax(L"MaxOpenedSessions", TerminalList->Count); - bool ListChanged = (TerminalList->Count + 1 != SessionsPageControl->PageCount); + bool ListChanged = Force || (TerminalList->Count + 1 != SessionsPageControl->PageCount); if (!ListChanged) { int Index = 0; @@ -5517,11 +5707,16 @@ void __fastcall TCustomScpExplorerForm::TerminalListChanged(TObject * /*Sender*/ SessionsPageControl->ActivePageIndex = ActiveTerminalIndex; } //--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::TerminalListChanged(TObject * /*Sender*/) +{ + DoTerminalListChanged(false); +} +//--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::UpdateNewSessionTab() { TTabSheet * TabSheet = SessionsPageControl->Pages[SessionsPageControl->PageCount - 1]; - assert(TabSheet->ImageIndex == 0); + DebugAssert(TabSheet->ImageIndex == 0); TabSheet->Caption = WinConfiguration->SelectiveToolbarText ? @@ -5536,11 +5731,11 @@ TTerminal * __fastcall TCustomScpExplorerForm::GetSessionTabTerminal(TTabSheet * //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::UpdateSessionTab(TTabSheet * TabSheet) { - if (ALWAYS_TRUE(TabSheet != NULL)) + if (DebugAlwaysTrue(TabSheet != NULL)) { TManagedTerminal * ManagedTerminal = dynamic_cast(GetSessionTabTerminal(TabSheet)); - if (ALWAYS_TRUE(ManagedTerminal != NULL)) + if (DebugAlwaysTrue(ManagedTerminal != NULL)) { TColor Color = (ManagedTerminal == FTerminal) ? FSessionColor : ManagedTerminal->StateData->Color; @@ -5548,7 +5743,7 @@ void __fastcall TCustomScpExplorerForm::UpdateSessionTab(TTabSheet * TabSheet) TabSheet->ImageIndex = AddSessionColor(Color); TThemeTabSheet * ThemeTabSheet = dynamic_cast(TabSheet); - if (ALWAYS_TRUE(ThemeTabSheet != NULL)) + if (DebugAlwaysTrue(ThemeTabSheet != NULL)) { ThemeTabSheet->Shadowed = !ManagedTerminal->Active; } @@ -5558,7 +5753,7 @@ void __fastcall TCustomScpExplorerForm::UpdateSessionTab(TTabSheet * TabSheet) //--------------------------------------------------------------------------- bool __fastcall TCustomScpExplorerForm::SessionTabSwitched() { - assert(SessionsPageControl->ActivePage != NULL); + DebugAssert(SessionsPageControl->ActivePage != NULL); TTerminal * Terminal = GetSessionTabTerminal(SessionsPageControl->ActivePage); bool Result = (Terminal != NULL); if (Result) @@ -5573,7 +5768,7 @@ bool __fastcall TCustomScpExplorerForm::SessionTabSwitched() } __finally { - TerminalListChanged(NULL); + DoTerminalListChanged(false); } FSessionsPageControlNewSessionTime = Now(); @@ -5589,7 +5784,7 @@ void __fastcall TCustomScpExplorerForm::SessionsPageControlChange(TObject * /*Se void __fastcall TCustomScpExplorerForm::TransferListChange(TObject * Sender) { TTBXStringList * TransferList = dynamic_cast(Sender); - assert(TransferList != NULL); + DebugAssert(TransferList != NULL); UnicodeString Name; if (TransferList->ItemIndex <= 0) { @@ -5613,7 +5808,7 @@ void __fastcall TCustomScpExplorerForm::UpdateTransferLabel() bool ExistingPreset = (FTransferListHoverIndex >= 0) && (FTransferListHoverIndex < 1 + GUIConfiguration->CopyParamList->Count); - assert(ExistingPreset); + DebugAssert(ExistingPreset); if (ExistingPreset) { HDC DC = GetDC(0); @@ -5701,18 +5896,19 @@ void __fastcall TCustomScpExplorerForm::WMAppCommand(TMessage & Message) } } //--------------------------------------------------------------------------- -void __fastcall TCustomScpExplorerForm::CMAppSysCommand(TMessage & Message) +void __fastcall TCustomScpExplorerForm::CMDialogChar(TMessage & AMessage) { - TWMSysCommand * SysCommand = (TWMSysCommand *)Message.LParam; - if (SysCommand->CmdType != SC_KEYMENU || !FIgnoreNextSysCommand) + TCMDialogChar & Message = reinterpret_cast(AMessage); + if ((FIgnoreNextDialogChar != 0) && + (toupper(Message.CharCode) == toupper(FIgnoreNextDialogChar))) { - FIgnoreNextSysCommand = false; - TForm::Dispatch(&Message); + Message.Result = 1; } else { - Message.Result = 1; + TForm::Dispatch(&Message); } + FIgnoreNextDialogChar = 0; } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::WMSysCommand(TMessage & Message) @@ -5790,10 +5986,21 @@ void __fastcall TCustomScpExplorerForm::DoShow() TForm::DoShow(); FSessionsDragDropFilesEx->DragDropControl = SessionsPageControl; + FQueueDragDropFilesEx->DragDropControl = QueueView3; + + if (Terminal == NULL) + { + StartingDisconnected(); + } FShowing = true; } //--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::StartingDisconnected() +{ + DoTerminalListChanged(true); +} +//--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::PopupTrayBalloon(TTerminal * Terminal, const UnicodeString & Str, TQueryType Type, Exception * E, unsigned int Seconds, TNotifyEvent OnBalloonClick, TObject * UserData) @@ -5853,7 +6060,7 @@ unsigned int __fastcall TCustomScpExplorerForm::MoreMessageDialog(const UnicodeS } else { - assert(FErrorList != NULL); + DebugAssert(FErrorList != NULL); TStringList * MoreMessagesCopy = NULL; if (MoreMessages) { @@ -5933,7 +6140,7 @@ void __fastcall TCustomScpExplorerForm::InactiveTerminalException( if (!Terminal->Active) { int Index = TTerminalManager::Instance()->IndexOf(Terminal); - if (ALWAYS_TRUE((Index >= 0) && (Index < SessionsPageControl->PageCount))) + if (DebugAlwaysTrue((Index >= 0) && (Index < SessionsPageControl->PageCount))) { UpdateSessionTab(SessionsPageControl->Pages[Index]); } @@ -5978,7 +6185,7 @@ void __fastcall TCustomScpExplorerForm::QueueEmptyNoteClicked(TObject * Sender) RestoreApp(); TTerminalNoteData * TerminalNoteData = dynamic_cast(Sender); - if (ALWAYS_TRUE(TerminalNoteData != NULL) && + if (DebugAlwaysTrue(TerminalNoteData != NULL) && !NonVisualDataModule->Busy) { TTerminal * Terminal = TerminalNoteData->Terminal; @@ -5994,7 +6201,7 @@ void __fastcall TCustomScpExplorerForm::QueueEmptyNoteClicked(TObject * Sender) void __fastcall TCustomScpExplorerForm::QueueEvent(TTerminal * ATerminal, TTerminalQueue * /*Queue*/, TQueueEvent Event) { - TManagedTerminal * ManagedTerminal = NOT_NULL(dynamic_cast(ATerminal)); + TManagedTerminal * ManagedTerminal = DebugNotNull(dynamic_cast(ATerminal)); UnicodeString Message; TNotifyEvent OnClick = NULL; TObject * UserData = NULL; @@ -6025,7 +6232,7 @@ void __fastcall TCustomScpExplorerForm::QueueEvent(TTerminal * ATerminal, break; default: - FAIL; + DebugFail(); } if (!Message.IsEmpty()) @@ -6059,7 +6266,7 @@ void __fastcall TCustomScpExplorerForm::DDExtInitDrag(TFileList * FileList, { FDragExtFakeDirectory = ExcludeTrailingBackslash(WinConfiguration->TemporaryDir()); - if (!ForceDirectories(::ApiPath(FDragExtFakeDirectory))) + if (!ForceDirectories(ApiPath(FDragExtFakeDirectory))) { throw Exception(FMTLOAD(CREATE_TEMP_DIR_ERROR, (FDragExtFakeDirectory))); } @@ -6075,7 +6282,7 @@ void __fastcall TCustomScpExplorerForm::DDExtInitDrag(TFileList * FileList, TDragExtCommStruct* CommStruct; CommStruct = static_cast(MapViewOfFile(FDDExtMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 0)); - assert(CommStruct != NULL); + DebugAssert(CommStruct != NULL); CommStruct->Version = TDragExtCommStruct::CurrentVersion; CommStruct->Dragging = true; wcsncpy(CommStruct->DropDest, FDragExtFakeDirectory.c_str(), @@ -6097,7 +6304,7 @@ bool __fastcall TCustomScpExplorerForm::RemoteFileControlFileOperation( } else { - assert(Sender == RemoteDriveView); + DebugAssert(Sender == RemoteDriveView); TStrings * FileList = RemoteDriveView->DragFileList(); try { @@ -6127,9 +6334,11 @@ bool __fastcall TCustomScpExplorerForm::RemoteFileControlFileOperation( //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::RemoteFileControlDDEnd(TObject * Sender) { + // This also handles drops of remote files to queue. + // Drops of local files (uploads) are handled in QueueDDProcessDropped. SAFE_DESTROY(FDDFileList); - if (FDDExtMapFile != NULL) + if ((FDDExtMapFile != NULL) || (FDDTargetControl == QueueView3)) { try { @@ -6158,7 +6367,8 @@ void __fastcall TCustomScpExplorerForm::RemoteFileControlDDEnd(TObject * Sender) TTransferOperationParam Param; bool Internal; - if (!DDGetTarget(Param.TargetDirectory, Internal)) + bool ForceQueue; + if (!DDGetTarget(Param.TargetDirectory, ForceQueue, Internal)) { // we get drInvalid both if move-d&d was intercepted by ddext, // and when users drops on no-drop location. @@ -6178,6 +6388,10 @@ void __fastcall TCustomScpExplorerForm::RemoteFileControlDDEnd(TObject * Sender) // download using ddext Param.Temp = false; Param.DragDrop = true; + if (ForceQueue) + { + Param.Queue = asOn; + } if (RemoteFileControlFileOperation(Sender, Operation, (WinConfiguration->DDTransferConfirmation == asOff), &Param)) @@ -6192,7 +6406,7 @@ void __fastcall TCustomScpExplorerForm::RemoteFileControlDDEnd(TObject * Sender) { CloseHandle(FDDExtMapFile); FDDExtMapFile = NULL; - RemoveDir(::ApiPath(FDragExtFakeDirectory)); + RemoveDir(ApiPath(FDragExtFakeDirectory)); FDragExtFakeDirectory = L""; } } @@ -6224,41 +6438,52 @@ void __fastcall TCustomScpExplorerForm::RemoteFileControlDDGiveFeedback( FLastDropEffect = dwEffect; } //--------------------------------------------------------------------------- -bool __fastcall TCustomScpExplorerForm::DDGetTarget(UnicodeString & Directory, bool & Internal) +bool __fastcall TCustomScpExplorerForm::DDGetTarget( + UnicodeString & Directory, bool & ForceQueue, bool & Internal) { - bool Result = false; - - Enabled = false; - try + bool Result; + if (FDDTargetControl == QueueView3) { - int Timer = 0; - while (!Result && (Timer < WinConfiguration->DDExtTimeout)) + Directory = DefaultDownloadTargetDirectory(); + Result = true; + Internal = true; + ForceQueue = true; + } + else + { + Enabled = false; + try { + int Timer = 0; + Result = false; + while (!Result && (Timer < WinConfiguration->DDExtTimeout)) { - TMutexGuard Guard(FDDExtMutex, DRAGEXT_MUTEX_RELEASE_TIMEOUT); - TDragExtCommStruct* CommStruct; - CommStruct = static_cast(MapViewOfFile(FDDExtMapFile, - FILE_MAP_ALL_ACCESS, 0, 0, 0)); - assert(CommStruct != NULL); - Result = !CommStruct->Dragging; - if (Result) { - Directory = ExtractFilePath(CommStruct->DropDest); - Internal = false; + TMutexGuard Guard(FDDExtMutex, DRAGEXT_MUTEX_RELEASE_TIMEOUT); + TDragExtCommStruct* CommStruct; + CommStruct = static_cast(MapViewOfFile(FDDExtMapFile, + FILE_MAP_ALL_ACCESS, 0, 0, 0)); + DebugAssert(CommStruct != NULL); + Result = !CommStruct->Dragging; + if (Result) + { + Directory = ExtractFilePath(CommStruct->DropDest); + Internal = false; + } + UnmapViewOfFile(CommStruct); + } + if (!Result) + { + Sleep(50); + Timer += 50; + Application->ProcessMessages(); } - UnmapViewOfFile(CommStruct); - } - if (!Result) - { - Sleep(50); - Timer += 50; - Application->ProcessMessages(); } } - } - __finally - { - Enabled = true; + __finally + { + Enabled = true; + } } return Result; @@ -6271,7 +6496,7 @@ void __fastcall TCustomScpExplorerForm::AddDelayedDirectoryDeletion( FDelayedDeletionList->AddObject(TempDir, reinterpret_cast(Alarm.FileDate())); if (FDelayedDeletionTimer == NULL) { - assert(HandleAllocated()); + DebugAssert(HandleAllocated()); FDelayedDeletionTimer = new TTimer(this); FDelayedDeletionTimer->Interval = 10000; FDelayedDeletionTimer->OnTimer = DoDelayedDeletion; @@ -6284,7 +6509,7 @@ void __fastcall TCustomScpExplorerForm::AddDelayedDirectoryDeletion( //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::DoDelayedDeletion(TObject * Sender) { - assert(FDelayedDeletionList != NULL); + DebugAssert(FDelayedDeletionList != NULL); TDateTime N = Now(); TDateTime Alert; @@ -6359,9 +6584,11 @@ void __fastcall TCustomScpExplorerForm::RemoteFileControlDDTargetDrop() // abort drag&drop Abort(); } - else if ((FDDExtMapFile == NULL) && (FLastDropEffect != DROPEFFECT_NONE)) + else if ((FDDExtMapFile == NULL) && (FLastDropEffect != DROPEFFECT_NONE) && + // Drops of remote files to queue are handled in RemoteFileControlDDEnd + (FDDTargetControl != QueueView3)) { - assert(!FDragTempDir.IsEmpty()); + DebugAssert(!FDragTempDir.IsEmpty()); TTransferType Type; UnicodeString TempDir = FDragTempDir; // We clear FDragTempDir before calling @@ -6387,9 +6614,9 @@ void __fastcall TCustomScpExplorerForm::RemoteFileControlDDTargetDrop() { TargetDir = TempDir; - if (ForceDirectories(::ApiPath(TargetDir))) + if (ForceDirectories(ApiPath(TargetDir))) { - assert(Terminal && !TargetDir.IsEmpty()); + DebugAssert(Terminal && !TargetDir.IsEmpty()); FPendingTempSpaceWarn = true; try { @@ -6477,7 +6704,7 @@ void __fastcall TCustomScpExplorerForm::RemoteFileControlDDCreateDataObject( //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::GoToCommandLine() { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::GoToTree() @@ -6503,7 +6730,6 @@ TStrings * __fastcall TCustomScpExplorerForm::PanelExport(TOperationSide Side, { bool FullPath = (Export == peFullFileList); DirView->CreateFileList(false, FullPath, ExportData.get()); - UnicodeString FileName; for (int Index = 0; Index < ExportData->Count; Index++) { if (ExportData->Strings[Index].Pos(L" ") > 0) @@ -6515,7 +6741,7 @@ TStrings * __fastcall TCustomScpExplorerForm::PanelExport(TOperationSide Side, break; default: - FAIL; + DebugFail(); } return ExportData.release(); } @@ -6538,7 +6764,7 @@ void __fastcall TCustomScpExplorerForm::PanelExportStore(TOperationSide /*Side*/ } else { - FAIL; + DebugFail(); } } //--------------------------------------------------------------------------- @@ -6568,7 +6794,7 @@ bool __fastcall TCustomScpExplorerForm::AllowQueueOperation( return true; case qoGoTo: - return ComponentVisible[fcQueueView]; + return ComponentVisible[fcQueueView] && QueueView3->Enabled; case qoOnceEmpty: return !FQueueController->Empty; @@ -6580,7 +6806,7 @@ bool __fastcall TCustomScpExplorerForm::AllowQueueOperation( //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::GoToQueue() { - if (ALWAYS_TRUE(QueueView3->Visible)) + if (DebugAlwaysTrue(QueueView3->Visible)) { QueueView3->SetFocus(); } @@ -6610,7 +6836,7 @@ bool __fastcall TCustomScpExplorerForm::GetQueueEnabled() //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::ToggleQueueEnabled() { - assert(Queue != NULL); + DebugAssert(Queue != NULL); if (Queue != NULL) { Queue->Enabled = !Queue->Enabled; @@ -6728,6 +6954,10 @@ TDragDropFilesEx * __fastcall TCustomScpExplorerForm::DragDropFiles(TObject * Se { Result = FSessionsDragDropFilesEx; } + else if (Sender == QueueView3) + { + Result = FQueueDragDropFilesEx; + } else { TCustomDirView * DirView = dynamic_cast(Sender); @@ -6744,12 +6974,12 @@ TDragDropFilesEx * __fastcall TCustomScpExplorerForm::DragDropFiles(TObject * Se } } } - assert(Result != NULL); + DebugAssert(Result != NULL); return Result; } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::RemoteFileControlDragDropFileOperation( - TObject * Sender, int Effect, UnicodeString TargetPath) + TObject * Sender, int Effect, UnicodeString TargetPath, bool ForceQueue) { TFileOperation Operation; @@ -6784,6 +7014,10 @@ void __fastcall TCustomScpExplorerForm::RemoteFileControlDragDropFileOperation( // upload, no temp dirs Param.Temp = false; Param.DragDrop = true; + if (ForceQueue) + { + Param.Queue = asOn; + } if (ExecuteFileOperation(Operation, osLocal, FileList, (WinConfiguration->DDTransferConfirmation == asOff), &Param)) { @@ -6809,7 +7043,7 @@ void __fastcall TCustomScpExplorerForm::RemoteFileControlDDFileOperation( TObject * Sender, int Effect, UnicodeString /*SourcePath*/, UnicodeString TargetPath, bool & /*DoOperation*/) { - RemoteFileControlDragDropFileOperation(Sender, Effect, TargetPath); + RemoteFileControlDragDropFileOperation(Sender, Effect, TargetPath, false); } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::RemoteFileContolDDChooseEffect( @@ -6877,7 +7111,7 @@ void __fastcall TCustomScpExplorerForm::RemoteFileControlDDDragFileName( FDDTotalSize += File->Size; } } - assert(!FDragTempDir.IsEmpty()); + DebugAssert(!FDragTempDir.IsEmpty()); // TODO: this is quite ineffective // TODO: what if invalid character replacement is disabled? FileName = FDragTempDir + GUIConfiguration->CurrentCopyParam.ValidLocalFileName(File->FileName); @@ -6922,8 +7156,8 @@ void __fastcall TCustomScpExplorerForm::RemoteFileControlDDQueryContinueDrag( } catch(ESshTerminate & E) { - assert(E.MoreMessages == NULL); // not supported - assert(!E.Message.IsEmpty()); + DebugAssert(E.MoreMessages == NULL); // not supported + DebugAssert(!E.Message.IsEmpty()); FDragDropSshTerminate = E.Message; FDragDropOnceDoneOperation = E.Operation; } @@ -6935,7 +7169,7 @@ void __fastcall TCustomScpExplorerForm::RemoteFileControlDDQueryContinueDrag( // But by the way exception probably never reach this point as // it's catched on way Result = DRAGDROP_S_CANCEL; - assert(Terminal != NULL); + DebugAssert(Terminal != NULL); Terminal->ShowExtendedException(&E); } } @@ -6977,23 +7211,50 @@ void __fastcall TCustomScpExplorerForm::DirViewGetOverlay( } } //--------------------------------------------------------------------------- -bool __fastcall TCustomScpExplorerForm::CanPasteFromClipBoard() +bool __fastcall TCustomScpExplorerForm::CanPasteToDirViewFromClipBoard() { return - IsFormatInClipboard(CF_TEXT) || + DirViewEnabled(osCurrent) && DirView(osCurrent)->CanPasteFromClipBoard(); } //--------------------------------------------------------------------------- +bool __fastcall TCustomScpExplorerForm::CanPasteFromClipBoard() +{ + bool Result = false; + + if (CanPasteToDirViewFromClipBoard()) + { + Result = true; + } + else + { + UnicodeString ClipboardText; + if (NonEmptyTextFromClipboard(ClipboardText)) + { + if (StoredSessions->IsUrl(ClipboardText)) + { + Result = true; + } + else + { + Result = DirViewEnabled(osCurrent); + } + } + } + + return Result; +} +//--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::PasteFromClipBoard() { - if (DirView(osCurrent)->CanPasteFromClipBoard()) + if (CanPasteToDirViewFromClipBoard()) { DirView(osCurrent)->PasteFromClipBoard(); } else { UnicodeString ClipboardText; - if (TextFromClipboard(ClipboardText, true) && !ClipboardText.IsEmpty()) + if (NonEmptyTextFromClipboard(ClipboardText)) { if (StoredSessions->IsUrl(ClipboardText)) { @@ -7012,15 +7273,50 @@ void __fastcall TCustomScpExplorerForm::FileListFromClipboard() // TBD } //--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::SelectSameExt(bool Select) +{ + TCustomDirView * CurrentDirView = DirView(osCurrent); + if (DebugAlwaysTrue(CurrentDirView->ItemFocused != NULL)) + { + UnicodeString FileName = CurrentDirView->ItemFileName(CurrentDirView->ItemFocused); + UnicodeString Ext; + if (GetSide(osCurrent) == osRemote) + { + Ext = UnixExtractFileExt(FileName); + } + else + { + Ext = ExtractFileExt(FileName); + } + if (Ext.IsEmpty()) + { + Ext = L"."; + } + TFileFilter Filter; + Filter.Masks = FORMAT(L"*%s", (Ext)); + Filter.Directories = false; + CurrentDirView->SelectFiles(Filter, Select); + } +} +//--------------------------------------------------------------------------- UnicodeString __fastcall TCustomScpExplorerForm::FileStatusBarText( - const TStatusFileInfo & FileInfo) + const TStatusFileInfo & FileInfo, TOperationSide Side) { - UnicodeString Result = - FMTLOAD(FILE_INFO_FORMAT, - (FormatBytes(FileInfo.SelectedSize), - FormatBytes(FileInfo.FilesSize), - FormatNumber(FileInfo.SelectedCount), - FormatNumber(FileInfo.FilesCount))); + UnicodeString Result; + + if ((Side == osRemote) && (Terminal == NULL)) + { + // noop + } + else + { + Result = + FMTLOAD(FILE_INFO_FORMAT, + (FormatBytes(FileInfo.SelectedSize), + FormatBytes(FileInfo.FilesSize), + FormatNumber(FileInfo.SelectedCount), + FormatNumber(FileInfo.FilesCount))); + } return Result; } @@ -7039,17 +7335,17 @@ void __fastcall TCustomScpExplorerForm::FileStatusBarPanelClick( } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::UpdateFileStatusBar( - TTBXStatusBar * StatusBar, const TStatusFileInfo & FileInfo) + TTBXStatusBar * StatusBar, const TStatusFileInfo & FileInfo, TOperationSide Side) { - assert(!StatusBar->SimplePanel); - StatusBar->Panels->Items[0]->Caption = FileStatusBarText(FileInfo); + DebugAssert(!StatusBar->SimplePanel); + StatusBar->Panels->Items[0]->Caption = FileStatusBarText(FileInfo, Side); UpdateFileStatusExtendedPanels(StatusBar, FileInfo); } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::UpdateFileStatusExtendedPanels( TTBXStatusBar * StatusBar, const TStatusFileInfo & FileInfo) { - assert(StatusBar->Panels->Count >= 3); + DebugAssert(StatusBar->Panels->Count >= 3); TTBXStatusPanel * HiddenFilesPanel = StatusBar->Panels->Items[1]; if (FileInfo.HiddenCount > 0) @@ -7081,7 +7377,10 @@ void __fastcall TCustomScpExplorerForm::UpdateFileStatusExtendedPanels( void __fastcall TCustomScpExplorerForm::RemoteStatusBarClick( TObject * /*Sender*/) { - RemoteDirView->SetFocus(); + if (RemoteDirView->Enabled) + { + RemoteDirView->SetFocus(); + } } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::ToggleQueueVisibility() @@ -7149,8 +7448,43 @@ UnicodeString __fastcall TCustomScpExplorerForm::PathForCaption() void __fastcall TCustomScpExplorerForm::UpdateControls() { TTerminalManager::Instance()->UpdateAppTitle(); - RemoteDirView->Color = (FSessionColor != 0 ? FSessionColor : clWindow); - RemoteDriveView->Color = RemoteDirView->Color; + // WORAKRDOUND: Disabling list view when it is not showing yet does not set its + // background to gray on Windows 7 (works on Windows 10). + // See also EnableControl + if (Showing) + { + bool HasTerminal = (Terminal != NULL); + if (HasTerminal) + { + if (!RemoteDirView->Enabled) + { + RemoteDirView->Enabled = true; + if (FRemoteDirViewWasFocused) + { + ActiveControl = RemoteDirView; + } + } + RemoteDriveView->Enabled = true; + RemoteDirView->Color = (FSessionColor != 0 ? FSessionColor : clWindow); + RemoteDriveView->Color = RemoteDirView->Color; + } + else + { + if (RemoteDirView->Enabled) + { + // This is first called when the form is being constructed + // (not anymore due to Showing test above) + // but the false is overriden in the constructor later. + // An even later in TScpCommanderForm::DoShow() + FRemoteDirViewWasFocused = (ActiveControl == RemoteDirView); + EnableControl(RemoteDirView, false); + } + EnableControl(RemoteDriveView, false); + } + EnableControl(QueueView3, HasTerminal); + QueueLabelUpdateStatus(); + reinterpret_cast(GetComponent(fcRemotePathComboBox))->Enabled = HasTerminal; + } } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::DoDirViewLoaded(TCustomDirView * /*Sender*/) @@ -7162,7 +7496,7 @@ void __fastcall TCustomScpExplorerForm::DirViewLoaded( TObject * Sender) { TCustomDirView * DirView = dynamic_cast(Sender); - assert(DirView != NULL); + DebugAssert(DirView != NULL); DoDirViewLoaded(DirView); TransferPresetAutoSelect(); } @@ -7226,7 +7560,7 @@ void __fastcall TCustomScpExplorerForm::UpdatesNoteClicked(TObject * /*Sender*/) void __fastcall TCustomScpExplorerForm::GetTransferPresetAutoSelectData( TCopyParamRuleData & Data) { - assert(Terminal != NULL); + DebugAssert(Terminal != NULL); Data.HostName = Terminal->SessionData->HostNameExpanded; Data.UserName = Terminal->SessionData->UserNameExpanded; Data.RemoteDirectory = RemoteDirView->PathName; @@ -7292,7 +7626,7 @@ void __fastcall TCustomScpExplorerForm::TransferPresetAutoSelect() CopyParamAttrs); if (CopyParamIndex >= 0) { - assert(GUIConfiguration->CopyParamList->Rules[CopyParamIndex] != NULL); + DebugAssert(GUIConfiguration->CopyParamList->Rules[CopyParamIndex] != NULL); Info = FORMAT(L"%s\n \n%s", (Info, FMTLOAD(COPY_PARAM_RULE, (GUIConfiguration->CopyParamList->Rules[CopyParamIndex]->GetInfoStr(L"\n"))))); @@ -7320,7 +7654,7 @@ void __fastcall TCustomScpExplorerForm::TransferPresetAutoSelect() void __fastcall TCustomScpExplorerForm::TransferPresetNoteMessage( TTransferPresetNoteData * NoteData, bool AllowNeverAskAgain) { - assert(NoteData != NULL); + DebugAssert(NoteData != NULL); TMessageParams Params(AllowNeverAskAgain ? mpNeverAskAgainCheck : 0); @@ -7338,7 +7672,7 @@ void __fastcall TCustomScpExplorerForm::TransferPresetNoteMessage( switch (Result) { case qaNeverAskAgain: - assert(AllowNeverAskAgain); + DebugAssert(AllowNeverAskAgain); WinConfiguration->CopyParamAutoSelectNotice = false; break; @@ -7354,20 +7688,24 @@ void __fastcall TCustomScpExplorerForm::TransferPresetNoteClicked(TObject * Send RestoreApp(); // .. and we should never be busy here - if (ALWAYS_TRUE(!NonVisualDataModule->Busy)) + if (DebugAlwaysTrue(!NonVisualDataModule->Busy)) { - TransferPresetNoteMessage(NOT_NULL(dynamic_cast(Sender)), false); + TransferPresetNoteMessage(DebugNotNull(dynamic_cast(Sender)), false); } } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::PreferencesDialog( TPreferencesMode APreferencesMode) { + std::unique_ptr PreferencesData; TCopyParamRuleData Data; - GetTransferPresetAutoSelectData(Data); - TPreferencesDialogData PreferencesData; - PreferencesData.CopyParamRuleData = &Data; - DoPreferencesDialog(APreferencesMode, &PreferencesData); + if (Terminal != NULL) + { + PreferencesData.reset(new TPreferencesDialogData()); + GetTransferPresetAutoSelectData(Data); + PreferencesData->CopyParamRuleData = &Data; + } + DoPreferencesDialog(APreferencesMode, PreferencesData.get()); } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::AdHocCustomCommandValidate( @@ -7406,10 +7744,10 @@ void __fastcall TCustomScpExplorerForm::AdHocCustomCommand(bool OnFocused) //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::LastCustomCommand(bool OnFocused) { - assert(!FLastCustomCommand.Command.IsEmpty()); + DebugAssert(!FLastCustomCommand.Command.IsEmpty()); int State = CustomCommandState(FLastCustomCommand, OnFocused); - assert(State > 0); + DebugAssert(State > 0); if (State <= 0) { throw Exception(FMTLOAD(CUSTOM_COMMAND_IMPOSSIBLE, (FLastCustomCommand.Command))); @@ -7448,7 +7786,7 @@ void __fastcall TCustomScpExplorerForm::BeforeAction() //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::PostComponentHide(Byte Component) { - assert(ComponentVisible[Component]); + DebugAssert(ComponentVisible[Component]); PostMessage(Handle, WM_COMPONENT_HIDE, Component, 0); } //--------------------------------------------------------------------------- @@ -7464,8 +7802,8 @@ void __fastcall TCustomScpExplorerForm::Dispatch(void * Message) TMessage * M = static_cast(Message); switch (M->Msg) { - case CM_APPSYSCOMMAND: - CMAppSysCommand(*M); + case CM_DIALOGCHAR: + CMDialogChar(*M); break; case _WM_APPCOMMAND: @@ -7494,7 +7832,7 @@ void __fastcall TCustomScpExplorerForm::Dispatch(void * Message) if (Component == fcQueueView) { ToggleQueueVisibility(); - assert(!ComponentVisible[fcQueueView]); + DebugAssert(!ComponentVisible[fcQueueView]); } else { @@ -7517,12 +7855,75 @@ void __fastcall TCustomScpExplorerForm::Dispatch(void * Message) M->Result = 1; break; + case CM_SHOWINGCHANGED: + CMShowingChanged(*M); + break; + + case WM_CLOSE: + WMClose(*M); + break; + default: TForm::Dispatch(Message); break; } } //--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::WMClose(TMessage & Message) +{ + // Cannot close window while we are busy. + // We cannot test this in FormCloseQuery as that is called also from + // Close(), which is called by CloseApplicationAction. So we can be busy + // there already even, when it is legitimate to close the application. + // Possibly a better place to handle this would be WMSysCommand. + if (NonVisualDataModule->Busy) + { + Message.Result = 1; + } + else + { + TForm::Dispatch(&Message); + } +} +//--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::CMShowingChanged(TMessage & Message) +{ + TForm::Dispatch(&Message); + + if (Showing && (Terminal == NULL)) + { + // When we are starting minimized (i.e. from an installer), + // postpone showing Login dialog until we get restored. + // Otherwise the Login dialog (and Authentication window) show restored + // over invidible (minimized) main window. + if (WindowState == wsMinimized) + { + FNeedSession = true; + } + else + { + // This happens before application ever goes idle, so the toolbars would + // stay enabled (initial state) until the Login dialog is dismissed. + UpdateActions(); + NonVisualDataModule->StartBusy(); + try + { + // Need to process WM_ACTIVATEAPP before showing the Login dialog, + // otherwise the dialog does not receive focus. + // With Commander interface the ProcessMessages is called already + // by TDriveView, but with Explorer interface, we need to call it explicily + Application->ProcessMessages(); + // do not reload sessions, they have been loaded just now (optimization) + NeedSession(false); + } + __finally + { + NonVisualDataModule->EndBusy(); + } + } + } +} +//--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::FormConstrainedResize( TObject * /*Sender*/, int & MinWidth, int & MinHeight, int & MaxWidth, int & MaxHeight) @@ -7592,7 +7993,8 @@ void __fastcall TCustomScpExplorerForm::SessionGenerateUrl() //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::FileGenerateUrl() { - std::unique_ptr Paths(PanelExport(osCurrent, peFullFileList)); + std::unique_ptr Paths(new TStringList()); + DirView(osCurrent)->CreateFileList(false, true, Paths.get()); GenerateUrl(Paths.get()); } //--------------------------------------------------------------------------- @@ -7606,12 +8008,16 @@ void __fastcall TCustomScpExplorerForm::SetSessionColor(TColor value) TTBXColorItem * ColorItem = dynamic_cast( static_cast(GetComponent(fcColorMenu))); - assert(ColorItem != NULL); + DebugAssert(ColorItem != NULL); ColorItem->Color = C; NonVisualDataModule->ColorMenuItem->Color = C; - SessionsPageControl->ActivePage->ImageIndex = AddSessionColor(value); + // Is null when called from LastTerminalClosed + if (Terminal != NULL) + { + SessionsPageControl->ActivePage->ImageIndex = AddSessionColor(value); + } UpdateControls(); } @@ -7642,7 +8048,7 @@ bool __fastcall TCustomScpExplorerForm::CancelNote(bool Force) //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::NoteTimer(TObject * /*Sender*/) { - assert(FNoteTimer->Enabled); + DebugAssert(FNoteTimer->Enabled); CancelNote(true); } //--------------------------------------------------------------------------- @@ -7776,12 +8182,12 @@ void __fastcall TCustomScpExplorerForm::LockWindow() //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::UnlockWindow() { - assert(FLockLevel > 0); + DebugAssert(FLockLevel > 0); FLockLevel--; if (FLockLevel == 0) { - assert(FLockSuspendLevel == 0); + DebugAssert(FLockSuspendLevel == 0); Enabled = true; } } @@ -7797,7 +8203,7 @@ void __fastcall TCustomScpExplorerForm::SuspendWindowLock() // while we have nesting counter, we know that we never be called // recursivelly as Application->OnModalBegin is called only // for the top-level modal window - if (ALWAYS_TRUE(FLockSuspendLevel == 0)) + if (DebugAlwaysTrue(FLockSuspendLevel == 0)) { // won't be disabled when conditions in LockWindow() were not satisfied FDisabledOnLockSuspend = !Enabled; @@ -7817,10 +8223,10 @@ void __fastcall TCustomScpExplorerForm::ResumeWindowLock() { if (FLockSuspendLevel > 0) { - assert(FLockLevel > 0); + DebugAssert(FLockLevel > 0); FLockSuspendLevel--; // see comment in SuspendWindowLock - if (ALWAYS_TRUE(FLockSuspendLevel == 0)) + if (DebugAlwaysTrue(FLockSuspendLevel == 0)) { // Note that window can be enabled here, when we were minized to tray when // was SuspendWindowLock() called. @@ -7833,29 +8239,39 @@ void __fastcall TCustomScpExplorerForm::ResumeWindowLock() } } //--------------------------------------------------------------------------- -void __fastcall TCustomScpExplorerForm::UpdateRemotePathComboBox( - TTBXComboBoxItem * RemotePathComboBox, bool TextOnly) +void __fastcall TCustomScpExplorerForm::UpdateRemotePathComboBox(bool TextOnly) { if (!TextOnly) { + TTBXComboBoxItem * RemotePathComboBox = + reinterpret_cast(GetComponent(fcRemotePathComboBox)); + TStrings * Items = RemotePathComboBox->Strings; Items->BeginUpdate(); try { Items->Clear(); - UnicodeString APath = UnixExcludeTrailingBackslash(RemoteDirView->Path); - while (!IsUnixRootPath(APath)) + if (Terminal != NULL) { - int P = APath.LastDelimiter(L'/'); - assert(P >= 0); - Items->Insert(0, APath.SubString(P + 1, APath.Length() - P)); - APath.SetLength(P - 1); + UnicodeString APath = UnixExcludeTrailingBackslash(RemoteDirView->Path); + while (!IsUnixRootPath(APath)) + { + int P = APath.LastDelimiter(L'/'); + DebugAssert(P >= 0); + Items->Insert(0, APath.SubString(P + 1, APath.Length() - P)); + APath.SetLength(P - 1); + } + Items->Insert(0, Customunixdirview_SUnixDefaultRootName); } - Items->Insert(0, Customunixdirview_SUnixDefaultRootName); } __finally { RemotePathComboBox->ItemIndex = Items->Count - 1; + // Setting ItemIndex to -1 does not reset its text + if (Items->Count == 0) + { + RemotePathComboBox->Text = L""; + } Items->EndUpdate(); } } @@ -7900,7 +8316,7 @@ void __fastcall TCustomScpExplorerForm::RemotePathComboBoxItemClick( // VanDyke style paths if (APath.IsEmpty()) { - assert(RemotePathComboBox->ItemIndex == 0); + DebugAssert(RemotePathComboBox->ItemIndex == 0); APath = ROOTDIRECTORY; } if (RemoteDirView->Path != APath) @@ -7911,7 +8327,9 @@ void __fastcall TCustomScpExplorerForm::RemotePathComboBoxItemClick( //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::RemotePathComboBoxCancel(TObject * Sender) { - UpdateRemotePathComboBox(dynamic_cast(Sender), true); + DebugAssert(Sender == GetComponent(fcRemotePathComboBox)); + DebugUsedParam(Sender); + UpdateRemotePathComboBox(true); } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::ClickToolbarItem(TTBCustomItem * Item, @@ -7923,9 +8341,9 @@ void __fastcall TCustomScpExplorerForm::ClickToolbarItem(TTBCustomItem * Item, TopItem = TopItem->Parent; } TTBCustomToolbar * Toolbar = dynamic_cast(TopItem->ParentComponent); - assert(Toolbar != NULL); + DebugAssert(Toolbar != NULL); TTBItemViewer * Viewer = Toolbar->View->Find(Item); - assert(Viewer != NULL); + DebugAssert(Viewer != NULL); int X = Viewer->BoundsRect.Left + (Viewer->BoundsRect.Width() / 2); int Y = Viewer->BoundsRect.Top + (Viewer->BoundsRect.Height() / 2); @@ -7942,7 +8360,7 @@ void __fastcall TCustomScpExplorerForm::DirViewEditing( TObject * Sender, TListItem * Item, bool & /*AllowEdit*/) { TCustomDirView * DirView = dynamic_cast(Sender); - assert(DirView != NULL); + DebugAssert(DirView != NULL); if (!WinConfiguration->RenameWholeName && !DirView->ItemIsDirectory(Item)) { HWND Edit = ListView_GetEditControl(DirView->Handle); @@ -7959,27 +8377,42 @@ void __fastcall TCustomScpExplorerForm::FormActivate(TObject * /*Sender*/) Application->OnHint = ApplicationHint; } //--------------------------------------------------------------------------- +TDragDropFilesEx * __fastcall TCustomScpExplorerForm::CreateDragDropFilesEx() +{ + TDragDropFilesEx * Result = new TDragDropFilesEx(this); + Result->AutoDetectDnD = false; + Result->NeedValid = TFileExMustDnDSet() << nvFilename; + Result->RenderDataOn = rdoEnterAndDropSync; + Result->TargetEffects = TDropEffectSet() << deCopy << deMove; + return Result; +} +//--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::CreateWnd() { TForm::CreateWnd(); if (FSessionsDragDropFilesEx == NULL) { - FSessionsDragDropFilesEx = new TDragDropFilesEx(this); - FSessionsDragDropFilesEx->AutoDetectDnD = false; - FSessionsDragDropFilesEx->NeedValid = TFileExMustDnDSet() << nvFilename; - FSessionsDragDropFilesEx->RenderDataOn = rdoEnterAndDropSync; - FSessionsDragDropFilesEx->TargetEffects = TDropEffectSet() << deCopy << deMove; + FSessionsDragDropFilesEx = CreateDragDropFilesEx(); FSessionsDragDropFilesEx->OnDragOver = SessionsDDDragOver; FSessionsDragDropFilesEx->OnProcessDropped = SessionsDDProcessDropped; FSessionsDragDropFilesEx->OnDragEnter = SessionsDDDragEnter; FSessionsDragDropFilesEx->OnDragLeave = SessionsDDDragLeave; } + if (FQueueDragDropFilesEx == NULL) + { + FQueueDragDropFilesEx = CreateDragDropFilesEx(); + // No need to set OnDragOver as we do not have any restrictions + FQueueDragDropFilesEx->OnProcessDropped = QueueDDProcessDropped; + FQueueDragDropFilesEx->OnDragEnter = QueueDDDragEnter; + FQueueDragDropFilesEx->OnDragLeave = QueueDDDragLeave; + } } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::DestroyWnd() { TForm::DestroyWnd(); FSessionsDragDropFilesEx->DragDropControl = NULL; + FQueueDragDropFilesEx->DragDropControl = NULL; } //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::FormShow(TObject * /*Sender*/) @@ -8078,7 +8511,7 @@ void __fastcall TCustomScpExplorerForm::SessionsPageControlMouseDown( { SessionsPageControl->ActivePageIndex = Index; // Switch to session tab (has to be session tab, due to previous check) - if (ALWAYS_TRUE(SessionTabSwitched())) + if (DebugAlwaysTrue(SessionTabSwitched())) { CloseSession(); } @@ -8097,7 +8530,7 @@ void __fastcall TCustomScpExplorerForm::SessionsPageControlDragDrop( (SessionsPageControl->ActivePage->PageIndex != Index)) { Configuration->Usage->Inc(L"SessionTabMoves"); - // this is almost redundant as we would recreate tabs in TerminalListChanged, + // this is almost redundant as we would recreate tabs in DoTerminalListChanged, // but we want to actually prevent that to avoid flicker SessionsPageControl->ActivePage->PageIndex = Index; TTerminal * Terminal = GetSessionTabTerminal(SessionsPageControl->ActivePage); @@ -8146,22 +8579,37 @@ void __fastcall TCustomScpExplorerForm::SessionsDDProcessDropped( TTerminal * TargetTerminal = GetSessionTabTerminal(SessionsPageControl->Pages[Index]); if (TargetTerminal != NULL) { - assert(!IsFileControl(DropSourceControl, osRemote)); + DebugAssert(!IsFileControl(DropSourceControl, osRemote)); if (!IsFileControl(DropSourceControl, osRemote)) { TTerminalManager::Instance()->ActiveTerminal = TargetTerminal; RemoteFileControlDragDropFileOperation(SessionsPageControl, Effect, - TTerminalManager::Instance()->ActiveTerminal->CurrentDirectory); + // Why don't we use Terminal->CurrentDirectory directly? + TTerminalManager::Instance()->ActiveTerminal->CurrentDirectory, false); } } } //--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::QueueDDProcessDropped( + TObject * /*Sender*/, int /*KeyState*/, const TPoint & /*Point*/, int Effect) +{ + // Downloads are handled in RemoteFileControlDDEnd + if (!IsFileControl(DropSourceControl, osRemote)) + { + RemoteFileControlDragDropFileOperation(QueueView3, Effect, + Terminal->CurrentDirectory, + // force queue + true); + } +} +//--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::FormClose(TObject * /*Sender*/, TCloseAction & /*Action*/) { FShowing = false; - if (WinConfiguration->AutoSaveWorkspace) + // Do not save empty workspace + if (WinConfiguration->AutoSaveWorkspace && (Terminal != NULL)) { std::unique_ptr DataList(DoCollectWorkspace()); UnicodeString Name = WorkspaceName(); @@ -8312,7 +8760,7 @@ bool __fastcall TCustomScpExplorerForm::UpdateToolbarDisplayMode() //--------------------------------------------------------------------------- void __fastcall TCustomScpExplorerForm::DisplaySystemContextMenu() { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- bool __fastcall TCustomScpExplorerForm::IsBusy() @@ -8329,9 +8777,44 @@ bool __fastcall TCustomScpExplorerForm::IsBusy() Boolean __fastcall TCustomScpExplorerForm::AllowedAction(TAction * /*Action*/, TActionAllowed Allowed) { // While the window is disabled, we still seem to process menu shortcuts at least, - // so stop it at least here + // so stop it at least here. + // See also TCustomScpExplorerForm::RemoteDirViewBusy return (Allowed == aaUpdate) || !NonVisualDataModule->Busy; } //--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::EditMenuItemPopup(TTBCustomItem * Sender, bool FromLink) +{ + NonVisualDataModule->EditMenuItemPopup(Sender, FromLink); +} +//--------------------------------------------------------------------------- +void __fastcall TCustomScpExplorerForm::DirViewBusy(TObject * /*Sender*/, int Busy, bool & State) +{ + // This is somewhat redundant to LockWindow() call from + // TTerminalManager::TerminalReadDirectoryProgress. + // But disabling window is known not to block keyboard shorcuts + // (see TCustomScpExplorerForm::AllowedAction), this hopefully works. + if (Busy > 0) + { + if (NonVisualDataModule->Busy) + { + State = false; + } + else + { + NonVisualDataModule->StartBusy(); + LockWindow(); + } + } + else if (Busy < 0) + { + UnlockWindow(); + NonVisualDataModule->EndBusy(); + } + else + { + State = NonVisualDataModule->Busy; + } +} +//--------------------------------------------------------------------------- diff --git a/source/forms/CustomScpExplorer.dfm b/source/forms/CustomScpExplorer.dfm index a935d45a..ce20b190 100644 --- a/source/forms/CustomScpExplorer.dfm +++ b/source/forms/CustomScpExplorer.dfm @@ -87,6 +87,7 @@ object CustomScpExplorerForm: TCustomScpExplorerForm UnixColProperties.ExtWidth = 20 UnixColProperties.TypeVisible = False OnDDDragFileName = RemoteFileControlDDDragFileName + OnBusy = DirViewBusy OnGetSelectFilter = RemoteDirViewGetSelectFilter OnSelectItem = DirViewSelectItem OnLoaded = DirViewLoaded @@ -278,14 +279,15 @@ object CustomScpExplorerForm: TCustomScpExplorerForm RadioItem = True end object TBXItem225: TTBXItem - Action = NonVisualDataModule.QueueDisconnectOnceEmptyAction + Action = NonVisualDataModule.QueueDisconnectOnceEmptyAction2 RadioItem = True end object TBXItem173: TTBXItem - Action = NonVisualDataModule.QueueSuspendOnceEmptyAction + Action = NonVisualDataModule.QueueSuspendOnceEmptyAction2 + RadioItem = True end object TBXItem226: TTBXItem - Action = NonVisualDataModule.QueueShutDownOnceEmptyAction + Action = NonVisualDataModule.QueueShutDownOnceEmptyAction2 RadioItem = True end end diff --git a/source/forms/CustomScpExplorer.h b/source/forms/CustomScpExplorer.h index f1179553..79fadd11 100644 --- a/source/forms/CustomScpExplorer.h +++ b/source/forms/CustomScpExplorer.h @@ -52,6 +52,9 @@ enum TActionFlag { afLocal = 1, afRemote = 2, afExplorer = 4 , afCommander = 8 } enum TExecuteFileBy { efShell = 1, efInternalEditor = 2, efExternalEditor = 3, efDefaultEditor = 100 }; enum TPanelExport { pePath, peFileList, peFullFileList }; enum TPanelExportDestination { pedClipboard, pedCommandLine }; +enum TCopyOperationCommandFlag { + cocNone = 0x00, cocShortCutHint = 0x01, cocQueue = 0x02, cocNonQueue = 0x04 +}; //--------------------------------------------------------------------------- class TCustomScpExplorerForm : public TForm { @@ -179,6 +182,8 @@ class TCustomScpExplorerForm : public TForm void __fastcall SessionsPageControlDragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State, bool &Accept); void __fastcall QueueView3Exit(TObject *Sender); + void __fastcall EditMenuItemPopup(TTBCustomItem *Sender, bool FromLink); + void __fastcall DirViewBusy(TObject *Sender, int Busy, bool & Allow); private: TTerminal * FTerminal; @@ -192,7 +197,7 @@ class TCustomScpExplorerForm : public TForm bool FForceExecution; bool FShowStatusBarHint; UnicodeString FStatusBarHint; - bool FIgnoreNextSysCommand; + unsigned short FIgnoreNextDialogChar; TStringList * FErrorList; HANDLE FDDExtMutex; UnicodeString FDragExtFakeDirectory; @@ -245,6 +250,7 @@ class TCustomScpExplorerForm : public TForm bool FMoveToQueue; bool FStandaloneEditing; TFeedSynchronizeError FOnFeedSynchronizeError; + bool FNeedSession; bool __fastcall GetEnableFocusedOperation(TOperationSide Side, int FilesOnly); bool __fastcall GetEnableSelectedOperation(TOperationSide Side, int FilesOnly); @@ -272,16 +278,25 @@ class TCustomScpExplorerForm : public TForm void __fastcall SessionsDDDragOver(int KeyState, const TPoint & Point, int & Effect); void __fastcall SessionsDDProcessDropped(TObject * Sender, int KeyState, const TPoint & Point, int Effect); void __fastcall RemoteFileControlDragDropFileOperation( - TObject * Sender, int Effect, UnicodeString TargetPath); + TObject * Sender, int Effect, UnicodeString TargetPath, bool ForceQueue); void __fastcall SessionsDDDragEnter(_di_IDataObject DataObj, int KeyState, const TPoint & Point, int & Effect, bool & Accept); void __fastcall SessionsDDDragLeave(); + void __fastcall QueueDDProcessDropped(TObject * Sender, int KeyState, const TPoint & Point, int Effect); + void __fastcall QueueDDDragEnter(_di_IDataObject DataObj, int KeyState, + const TPoint & Point, int & Effect, bool & Accept); + void __fastcall QueueDDDragLeave(); void __fastcall EnableDDTransferConfirmation(TObject * Sender); void __fastcall CollectItemsWithTextDisplayMode(TWinControl * Control); void __fastcall CreateHiddenWindow(); static LRESULT WINAPI HiddenWindowProc(HWND HWnd, UINT Message, WPARAM WParam, LPARAM LParam); bool __fastcall IsQueueAutoPopup(); void __fastcall UpdateSessionsPageControlHeight(); + TDragDropFilesEx * __fastcall CreateDragDropFilesEx(); + void __fastcall KeyProcessed(Word & Key, TShiftState Shift); + bool __fastcall CanPasteToDirViewFromClipBoard(); + void __fastcall CMShowingChanged(TMessage & Message); + void __fastcall WMClose(TMessage & Message); protected: TOperationSide FCurrentSide; @@ -308,7 +323,9 @@ class TCustomScpExplorerForm : public TForm TImageList * FSystemImageList; bool FAlternativeDelete; TDragDropFilesEx * FSessionsDragDropFilesEx; + TDragDropFilesEx * FQueueDragDropFilesEx; TPoint FLastContextPopupScreenPoint; + bool FRemoteDirViewWasFocused; virtual bool __fastcall CopyParamDialog(TTransferDirection Direction, TTransferType Type, bool Temp, TStrings * FileList, @@ -353,7 +370,7 @@ class TCustomScpExplorerForm : public TForm void __fastcall ExecutedFileEarlyClosed(const TEditedFileData * Data, bool & KeepOpen); void __fastcall ExecutedFileUploadComplete(TObject * Sender); - inline void __fastcall CMAppSysCommand(TMessage & Message); + void __fastcall CMDialogChar(TMessage & AMessage); inline void __fastcall WMAppCommand(TMessage & Message); inline void __fastcall WMSysCommand(TMessage & Message); void __fastcall WMQueryEndSession(TMessage & Message); @@ -383,7 +400,8 @@ class TCustomScpExplorerForm : public TForm virtual void __fastcall BatchEnd(void * Storage); bool __fastcall ExecuteFileOperation(TFileOperation Operation, TOperationSide Side, TStrings * FileList, bool NoConfirmation, void * Param); - virtual bool __fastcall DDGetTarget(UnicodeString & Directory, bool & Internal); + virtual bool __fastcall DDGetTarget(UnicodeString & Directory, + bool & ForceQueue, bool & Internal); virtual void __fastcall DDExtInitDrag(TFileList * FileList, bool & Created); virtual void __fastcall SideEnter(TOperationSide Side); virtual TOperationSide __fastcall GetSide(TOperationSide Side); @@ -446,9 +464,9 @@ class TCustomScpExplorerForm : public TForm bool AutoOperation); void __fastcall LocalEditorClosed(TObject * Sender, bool Forced); TTBXPopupMenu * __fastcall HistoryMenu(TOperationSide Side, bool Back); - UnicodeString __fastcall FileStatusBarText(const TStatusFileInfo & FileInfo); + UnicodeString __fastcall FileStatusBarText(const TStatusFileInfo & FileInfo, TOperationSide Side); void __fastcall UpdateFileStatusBar(TTBXStatusBar * StatusBar, - const TStatusFileInfo & FileInfo); + const TStatusFileInfo & FileInfo, TOperationSide Side); void __fastcall UpdateFileStatusExtendedPanels( TTBXStatusBar * StatusBar, const TStatusFileInfo & FileInfo); void __fastcall FileStatusBarPanelClick(TTBXStatusPanel * Panel, TOperationSide Side); @@ -491,8 +509,7 @@ class TCustomScpExplorerForm : public TForm TQueryType Type, bool Important = false, TNotifyEvent OnClick = NULL, TObject * UserData = NULL, Exception * E = NULL); virtual void __fastcall UpdateSessionData(TSessionData * Data); - virtual void __fastcall UpdateRemotePathComboBox( - TTBXComboBoxItem * RemotePathComboBox, bool TextOnly); + virtual void __fastcall UpdateRemotePathComboBox(bool TextOnly); virtual void __fastcall ToolbarItemResize(TTBXCustomDropDownItem * Item, int Width); virtual void __fastcall CreateWnd(); virtual void __fastcall DestroyWnd(); @@ -518,7 +535,7 @@ class TCustomScpExplorerForm : public TForm virtual void __fastcall QueueLabelUpdateStatus(); void __fastcall EditorAutoConfig(); void __fastcall DirViewContextPopupDefaultItem( - TOperationSide Side, TTBXItem * Item, TDoubleClickAction DoubleClickAction); + TOperationSide Side, TTBXCustomItem * Item, TDoubleClickAction DoubleClickAction); void __fastcall DirViewContextPopup( TOperationSide Side, Byte PopupComponent, const TPoint & MousePos); bool __fastcall CommandLineFromAnotherInstance(const UnicodeString & CommandLine); @@ -531,6 +548,19 @@ class TCustomScpExplorerForm : public TForm bool __fastcall SessionTabSwitched(); void __fastcall RestoreApp(); void __fastcall GoToQueue(); + virtual UnicodeString __fastcall DefaultDownloadTargetDirectory() = 0; + void __fastcall LockFiles(TStrings * FileList, bool Lock); + void __fastcall SaveInternalEditor( + const UnicodeString FileName, TEditedFileData * Data, TObject * Token, + void * Arg); + void __fastcall SaveAllInternalEditors(TObject * Sender); + void __fastcall InternalEditorModified( + const UnicodeString FileName, TEditedFileData * Data, TObject * Token, + void * Arg); + void __fastcall AnyInternalEditorModified(TObject * Sender, bool & Modified); + virtual void __fastcall StartingDisconnected(); + void __fastcall DoTerminalListChanged(bool Force); + void __fastcall NeedSession(bool ReloadSessions); public: virtual __fastcall ~TCustomScpExplorerForm(); @@ -545,9 +575,10 @@ class TCustomScpExplorerForm : public TForm void __fastcall ExecuteFileOperationCommand(TFileOperation Operation, TOperationSide Side, bool OnFocused, bool NoConfirmation = false, void * Param = NULL); void __fastcall ExecuteCopyOperationCommand( - TOperationSide Side, bool OnFocused, bool ShortCutHint); + TOperationSide Side, bool OnFocused, unsigned int Flags); void __fastcall AdHocCustomCommand(bool OnFocused); virtual TCustomDirView * __fastcall DirView(TOperationSide Side); + virtual bool __fastcall DirViewEnabled(TOperationSide Side); virtual void __fastcall ChangePath(TOperationSide Side) = 0; virtual void __fastcall StoreParams(); int __fastcall CustomCommandState(const TCustomCommandType & Command, bool OnFocused); @@ -623,6 +654,7 @@ class TCustomScpExplorerForm : public TForm void __fastcall ToggleQueueVisibility(); virtual UnicodeString __fastcall PathForCaption(); void __fastcall FileListFromClipboard(); + void __fastcall SelectSameExt(bool Select); void __fastcall PreferencesDialog(TPreferencesMode APreferencesMode); void __fastcall WhatsThis(); virtual void __fastcall BeforeAction(); @@ -641,6 +673,7 @@ class TCustomScpExplorerForm : public TForm virtual void __fastcall HistoryGo(TOperationSide Side, int Index); void __fastcall UpdateTaskbarList(ITaskbarList3 * TaskbarList); virtual void __fastcall DisplaySystemContextMenu(); + virtual void __fastcall GoToAddress() = 0; __property bool ComponentVisible[Byte Component] = { read = GetComponentVisible, write = SetComponentVisible }; __property bool EnableFocusedOperation[TOperationSide Side] = { read = GetEnableFocusedOperation, index = 0 }; diff --git a/source/forms/Editor.cpp b/source/forms/Editor.cpp index 33118f61..0eb89c09 100644 --- a/source/forms/Editor.cpp +++ b/source/forms/Editor.cpp @@ -27,6 +27,7 @@ //--------------------------------------------------------------------------- TForm * __fastcall ShowEditorForm(const UnicodeString FileName, TCustomForm * ParentForm, TNotifyEvent OnFileChanged, TNotifyEvent OnFileReload, TFileClosedEvent OnClose, + TNotifyEvent OnSaveAll, TAnyModifiedEvent OnAnyModified, const UnicodeString Caption, bool StandaloneEditor, TColor Color) { TEditorForm * Dialog = new TEditorForm(Application); @@ -38,6 +39,8 @@ TForm * __fastcall ShowEditorForm(const UnicodeString FileName, TCustomForm * Pa Dialog->Caption = ACaption + L" - " + LoadStr(EDITOR_CAPTION) + L" - " + AppName; Dialog->OnFileChanged = OnFileChanged; Dialog->OnFileReload = OnFileReload; + Dialog->OnSaveAll = OnSaveAll; + Dialog->OnAnyModified = OnAnyModified; Dialog->StandaloneEditor = StandaloneEditor; Dialog->BackgroundColor = Color; // load before showing, so when loading failes, @@ -60,13 +63,23 @@ TForm * __fastcall ShowEditorForm(const UnicodeString FileName, TCustomForm * Pa void __fastcall ReconfigureEditorForm(TForm * Form) { TEditorForm * Editor = dynamic_cast(Form); - assert(Editor != NULL); + DebugAssert(Editor != NULL); Editor->ApplyConfiguration(); } //--------------------------------------------------------------------------- void __fastcall EditorFormFileUploadComplete(TForm * Form) { - NOT_NULL(dynamic_cast(Form))->FileUploadComplete(); + DebugNotNull(dynamic_cast(Form))->FileUploadComplete(); +} +//--------------------------------------------------------------------------- +void __fastcall EditorFormFileSave(TForm * Form) +{ + DebugNotNull(dynamic_cast(Form))->SaveFile(); +} +//--------------------------------------------------------------------------- +bool __fastcall IsEditorFormModified(TForm * Form) +{ + return DebugNotNull(dynamic_cast(Form))->IsFileModified(); } //--------------------------------------------------------------------------- class TPreambleFilteringFileStream : public TFileStream @@ -126,7 +139,7 @@ int __fastcall TPreambleFilteringFileStream::Write(const void * Buffer, int Coun int __fastcall TPreambleFilteringFileStream::Write( const System::DynamicArray /*Buffer*/, int /*Offset*/, int /*Count*/) { - FAIL; + DebugFail(); EXCEPTION; } //--------------------------------------------------------------------------- @@ -137,14 +150,13 @@ class TRichEdit20 : public TRichEdit bool __fastcall LoadFromStream(TStream * Stream, TEncoding * Encoding, bool & EncodingError); - void __fastcall SetFormat(const TFontConfiguration & FontConfiguration, unsigned int TabSize, - bool AWordWrap); + void __fastcall SetFormat(const TFontConfiguration & FontConfiguration, + TColor FontColor, unsigned int TabSize, bool AWordWrap); void __fastcall ResetFormat(); int __fastcall FindText(const UnicodeString SearchStr, int StartPos, int Length, TSearchTypes Options, bool Down); void __fastcall Redo(); - __property bool SupportsUpSearch = { read = FVersion20 }; __property bool CanRedo = { read = GetCanRedo }; __property bool LoadedWithPreamble = { read = FLoadedWithPreamble }; @@ -163,7 +175,6 @@ class TRichEdit20 : public TRichEdit private: HINSTANCE FLibrary; - bool FVersion20; bool FWordWrap; unsigned int FTabSize; bool FInitialized; @@ -175,7 +186,6 @@ class TRichEdit20 : public TRichEdit __fastcall TRichEdit20::TRichEdit20(TComponent * AOwner) : TRichEdit(AOwner), FLibrary(0), - FVersion20(false), FTabSize(0), FWordWrap(true), FInitialized(false), @@ -183,14 +193,15 @@ __fastcall TRichEdit20::TRichEdit20(TComponent * AOwner) : { } //--------------------------------------------------------------------------- -void __fastcall TRichEdit20::SetFormat(const TFontConfiguration & FontConfiguration, unsigned int TabSize, +void __fastcall TRichEdit20::SetFormat( + const TFontConfiguration & FontConfiguration, TColor FontColor, unsigned int TabSize, bool AWordWrap) { if (!FInitialized) { // for efficiency we should be creating handle here - assert(!HandleAllocated()); + DebugAssert(!HandleAllocated()); } // setting DefAttributes is noop if we do not have a handle @@ -201,10 +212,12 @@ void __fastcall TRichEdit20::SetFormat(const TFontConfiguration & FontConfigurat std::unique_ptr NewFont(new TFont()); TWinConfiguration::RestoreFont(FontConfiguration, NewFont.get()); + NewFont->Color = GetWindowTextColor(FontColor); // setting DefAttributes may take quite time, even if the font attributes // do not change, so avoid that if not necessary if (!FInitialized || - !SameFont(Font, NewFont.get())) + !SameFont(Font, NewFont.get()) || + (Font->Color != NewFont->Color)) { Font->Assign(NewFont.get()); DefAttributes->Assign(Font); @@ -220,7 +233,7 @@ void __fastcall TRichEdit20::SetFormat(const TFontConfiguration & FontConfigurat if (!FInitialized || (FWordWrap != AWordWrap)) { - assert(HandleAllocated()); + DebugAssert(HandleAllocated()); // Undocumented usage of EM_SETTARGETDEVICE. // But note that it is used by MFC in CRichEditView::WrapChanged() SendMessage(Handle, EM_SETTARGETDEVICE, 0, (AWordWrap ? 0 : 1)); @@ -243,67 +256,54 @@ void __fastcall TRichEdit20::ResetFormat() int __fastcall TRichEdit20::FindText(const UnicodeString SearchStr, int StartPos, int /*Length*/, TSearchTypes Options, bool Down) { - int Result; - if (FVersion20) - { - ::FINDTEXTEX Find; - memset(&Find, 0, sizeof(Find)); - Find.chrg.cpMin = StartPos; - Find.chrg.cpMax = -1; - Find.lpstrText = UnicodeString(SearchStr).c_str(); - - unsigned int Flags = - FLAGMASK(Options.Contains(stWholeWord), FR_WHOLEWORD) | - FLAGMASK(Options.Contains(stMatchCase), FR_MATCHCASE) | - FLAGMASK(Down, FR_DOWN); - Result = SendMessage(Handle, EM_FINDTEXTEX, Flags, (LPARAM)&Find); - } - else - { - assert(Down); - Result = TRichEdit::FindText(SearchStr, StartPos, Text.Length(), Options); - } + ::FINDTEXTEX Find; + memset(&Find, 0, sizeof(Find)); + Find.chrg.cpMin = StartPos; + Find.chrg.cpMax = -1; + Find.lpstrText = UnicodeString(SearchStr).c_str(); + + unsigned int Flags = + FLAGMASK(Options.Contains(stWholeWord), FR_WHOLEWORD) | + FLAGMASK(Options.Contains(stMatchCase), FR_MATCHCASE) | + FLAGMASK(Down, FR_DOWN); + int Result = SendMessage(Handle, EM_FINDTEXTEX, Flags, (LPARAM)&Find); return Result; } //--------------------------------------------------------------------------- void __fastcall TRichEdit20::Redo() { - assert(FVersion20); SendMessage(Handle, EM_REDO, 0, 0); } //--------------------------------------------------------------------------- void __fastcall TRichEdit20::CreateParams(TCreateParams & Params) { - const wchar_t RichEditModuleName[] = L"RICHED20.DLL"; + UnicodeString RichEditModuleName(L"RICHED20.DLL"); long int OldError; OldError = SetErrorMode(SEM_NOOPENFILEERRORBOX); - FLibrary = LoadLibrary(RichEditModuleName); + FLibrary = LoadLibrary(RichEditModuleName.c_str()); SetErrorMode(OldError); - FVersion20 = (FLibrary != 0); - if (!FVersion20) - { - // fallback to richedit 1.0 - TRichEdit::CreateParams(Params); - } - else + // No fallback, RichEdit 2.0 is available since Windows NT/98 + if (FLibrary == 0) { - TCustomMemo::CreateParams(Params); - CreateSubClass(Params, RICHEDIT_CLASS); - Params.Style = Params.Style | - (HideScrollBars ? 0 : ES_DISABLENOSCROLL) | - (HideSelection ? 0 : ES_NOHIDESEL); - Params.WindowClass.style = Params.WindowClass.style & - ~(CS_HREDRAW | CS_VREDRAW); + throw Exception(FORMAT(L"Cannot load %s", (RichEditModuleName))); } + + TCustomMemo::CreateParams(Params); + CreateSubClass(Params, RICHEDIT_CLASS); + Params.Style = Params.Style | + (HideScrollBars ? 0 : ES_DISABLENOSCROLL) | + (HideSelection ? 0 : ES_NOHIDESEL); + Params.WindowClass.style = Params.WindowClass.style & + ~(CS_HREDRAW | CS_VREDRAW); } //--------------------------------------------------------------------------- void __fastcall TRichEdit20::DestroyWnd() { TRichEdit::DestroyWnd(); - if (FLibrary != 0) + if (DebugAlwaysTrue(FLibrary != 0)) { FreeLibrary(FLibrary); } @@ -430,12 +430,12 @@ void __fastcall TRichEdit20::Dispatch(void * Message) //--------------------------------------------------------------------------- bool __fastcall TRichEdit20::GetCanRedo() { - return FVersion20 && (SendMessage(Handle, EM_CANREDO, 0, 0) != 0); + return (SendMessage(Handle, EM_CANREDO, 0, 0) != 0); } //--------------------------------------------------------------------------- void __fastcall TRichEdit20::SetTabSize(unsigned int TabSize) { - assert(TabSize > 0); + DebugAssert(TabSize > 0); HDC DC = GetDC(Handle); SaveDC(DC); @@ -538,7 +538,7 @@ bool __stdcall TRichEdit20::StreamLoad( } // If Unicode preamble is present, set StartIndex to skip over it TBytes Preamble = TEncoding::Unicode->GetPreamble(); - if (ALWAYS_TRUE(Preamble.Length == 2) && + if (DebugAlwaysTrue(Preamble.Length == 2) && (WasRead >= 2) && (Buffer[0] == Preamble[0]) && (Buffer[1] == Preamble[1])) { StartIndex = 2; @@ -688,15 +688,16 @@ __fastcall TEditorForm::TEditorForm(TComponent* Owner) SetSubmenu(ColorItem); InitCodePage(); + SelectScaledImageList(EditorImages); UseSystemSettings(this); UseDesktopFont(StatusBar); - SetFormIcons(this, L"Z_ICON_EDITOR_BIG", L"Z_ICON_EDITOR_SMALL"); + FixFormIcons(this); } //--------------------------------------------------------------------------- __fastcall TEditorForm::~TEditorForm() { - assert(FInstances > 0); + DebugAssert(FInstances > 0); FInstances--; if (FInstance == 0) { @@ -778,7 +779,21 @@ void __fastcall TEditorForm::EditorActionsUpdate(TBasicAction *Action, Handled = true; if (Action == SaveAction) { - SaveAction->Enabled = EditorMemo->Modified; + SaveAction->Enabled = IsFileModified(); + } + else if (Action == SaveAllAction) + { + bool Enabled = !FStandaloneEditor; + if (Enabled) + { + Enabled = IsFileModified(); + // optimization + if (!Enabled) + { + FOnAnyModified(this, Enabled); + } + } + SaveAllAction->Enabled = Enabled; } else if (Action == FindNextAction) { @@ -815,17 +830,16 @@ void __fastcall TEditorForm::SaveToFile() { std::unique_ptr Stream( new TPreambleFilteringFileStream( - ::ApiPath(FFileName), fmCreate, FEncoding, EditorMemo->LoadedWithPreamble)); + ApiPath(FFileName), fmCreate, FEncoding, EditorMemo->LoadedWithPreamble)); EditorMemo->Lines->SaveToStream(Stream.get(), FEncoding); } //--------------------------------------------------------------------------- -void __fastcall TEditorForm::EditorActionsExecute(TBasicAction *Action, - bool &Handled) +void __fastcall TEditorForm::SaveFile() { - Handled = true; - if (Action == SaveAction) + // Test is needed for "Save all" and is redundant for "Save" + if (IsFileModified()) { - assert(!FFileName.IsEmpty()); + DebugAssert(!FFileName.IsEmpty()); SaveToFile(); if (FOnFileChanged) { @@ -835,9 +849,28 @@ void __fastcall TEditorForm::EditorActionsExecute(TBasicAction *Action, EditorMemo->Modified = false; UpdateControls(); } +} +//--------------------------------------------------------------------------- +bool __fastcall TEditorForm::IsFileModified() +{ + return EditorMemo->Modified; +} +//--------------------------------------------------------------------------- +void __fastcall TEditorForm::EditorActionsExecute(TBasicAction *Action, + bool &Handled) +{ + Handled = true; + if (Action == SaveAction) + { + SaveFile(); + } + else if (Action == SaveAllAction) + { + OnSaveAll(this); + } else if (Action == PreferencesAction) { - DoPreferencesDialog(pmEditor); + DoPreferencesDialog(pmEditorInternal); } else if (Action == ReloadAction) { @@ -877,9 +910,9 @@ void __fastcall TEditorForm::EditorActionsExecute(TBasicAction *Action, } else if (Action == ColorAction) { - if (ALWAYS_TRUE(Action->ActionComponent != NULL)) + if (DebugAlwaysTrue(Action->ActionComponent != NULL)) { - ::CreateSessionColorMenu(Action->ActionComponent, BackgroundColor, + CreateEditorBackgroundColorMenu(Action->ActionComponent, BackgroundColor, SetBackgroundColor); } } @@ -891,13 +924,13 @@ void __fastcall TEditorForm::EditorActionsExecute(TBasicAction *Action, //--------------------------------------------------------------------------- void __fastcall TEditorForm::BackupSave() { - if (EditorMemo->Modified) + if (IsFileModified()) { int Uniq = 0; while (true) { UnicodeString FileName = FFileName + L".bak" + (Uniq == 0 ? UnicodeString() : IntToStr(Uniq)); - UnicodeString ApiFileName = ::ApiPath(FileName); + UnicodeString ApiFileName = ApiPath(FileName); if (!FileExists(ApiFileName)) { EditorMemo->Lines->SaveToFile(ApiFileName, FEncoding); @@ -912,7 +945,7 @@ void __fastcall TEditorForm::ChangeEncoding(TEncoding * Encoding) { if (FEncoding != Encoding) { - if (!EditorMemo->Modified || + if (!IsFileModified() || (MessageDialog(MainInstructions(LoadStr(EDITOR_MODIFIED_ENCODING)), qtConfirmation, qaOK | qaCancel) != qaCancel)) { @@ -936,7 +969,7 @@ void __fastcall TEditorForm::ChangeEncoding(TEncoding * Encoding) void __fastcall TEditorForm::FormCloseQuery(TObject * /*Sender*/, bool &CanClose) { - if (EditorMemo->Modified) + if (IsFileModified()) { SetFocus(); UnicodeString Message = MainInstructions(LoadStr(SAVE_CHANGES)); @@ -957,11 +990,13 @@ void __fastcall TEditorForm::FormCloseQuery(TObject * /*Sender*/, //--------------------------------------------------------------------------- void __fastcall TEditorForm::ApplyConfiguration() { - bool PrevModified = EditorMemo->Modified; - assert(Configuration); + bool PrevModified = IsFileModified(); + DebugAssert(Configuration); EditorMemo->SetFormat(WinConfiguration->Editor.Font, + WinConfiguration->Editor.FontColor, WinConfiguration->Editor.TabSize, WinConfiguration->Editor.WordWrap); + UpdateBackgroundColor(); EditorMemo->Modified = PrevModified; EditorMemo->ClearUndo(); UpdateControls(); @@ -969,10 +1004,10 @@ void __fastcall TEditorForm::ApplyConfiguration() //--------------------------------------------------------------------------- void __fastcall TEditorForm::FileUploadComplete() { - assert(FSaving); + DebugAssert(FSaving); FSaving = false; UpdateControls(); - if (FClosePending && ALWAYS_TRUE(FStandaloneEditor)) + if (FClosePending && DebugAlwaysTrue(FStandaloneEditor)) { Close(); } @@ -1054,7 +1089,7 @@ void __fastcall TEditorForm::UpdateControls() StatusBar->Panels->Items[3]->Caption = FMTLOAD(EDITOR_ENCODING_STATUS, (FEncodingName)); StatusBar->Panels->Items[4]->Caption = (FSaving ? LoadStr(EDITOR_SAVING) : - (EditorMemo->Modified ? LoadStr(EDITOR_MODIFIED) : UnicodeString(L""))); + (IsFileModified() ? LoadStr(EDITOR_MODIFIED) : UnicodeString(L""))); StatusBar->SimplePanel = false; } @@ -1090,7 +1125,7 @@ void __fastcall TEditorForm::Find() do { - assert(FLastFindDialog); + DebugAssert(FLastFindDialog); TSearchTypes SearchTypes; @@ -1173,7 +1208,7 @@ void __fastcall TEditorForm::FormShow(TObject * /*Sender*/) CutFormToDesktop(this); - assert(FWindowParams.IsEmpty()); + DebugAssert(FWindowParams.IsEmpty()); if (FWindowParams.IsEmpty()) { FWindowParams = StoreForm(this); @@ -1220,7 +1255,7 @@ bool __fastcall TEditorForm::ContainsPreamble(TStream * Stream, const TBytes & S //--------------------------------------------------------------------------- void __fastcall TEditorForm::LoadFromFile(bool PrimaryEncoding) { - TStream * Stream = new TFileStream(::ApiPath(FFileName), fmOpenRead | fmShareDenyWrite); + TStream * Stream = new TFileStream(ApiPath(FFileName), fmOpenRead | fmShareDenyWrite); try { bool CanTrySecondary; @@ -1246,7 +1281,7 @@ void __fastcall TEditorForm::LoadFromFile(bool PrimaryEncoding) default: CanTrySecondary = false; - FAIL; + DebugFail(); // fallthru case CP_ACP: @@ -1327,7 +1362,7 @@ void __fastcall TEditorForm::CheckFileSize() if (EditorConfiguration.WarnOrLargeFileSize) { TWin32FileAttributeData FileAttributeData; - if (GetFileAttributesEx(::ApiPath(FFileName).c_str(), GetFileExInfoStandard, &FileAttributeData)) + if (GetFileAttributesEx(ApiPath(FFileName).c_str(), GetFileExInfoStandard, &FileAttributeData)) { const __int64 MaxSize = 100 * 1024 * 1024; __int64 Size = @@ -1356,7 +1391,7 @@ void __fastcall TEditorForm::CheckFileSize() break; default: - FAIL; + DebugFail(); } } } @@ -1406,7 +1441,7 @@ bool __fastcall TEditorForm::CursorInUpperPart() //--------------------------------------------------------------------------- void __fastcall TEditorForm::PositionFindDialog(bool VerticalOnly) { - assert(FLastFindDialog); + DebugAssert(FLastFindDialog); if (!VerticalOnly) { FLastFindDialog->Left = Left + EditorMemo->Left + EditorMemo->Width / 2 - ScaleByTextHeight(this, 100); @@ -1443,16 +1478,8 @@ void __fastcall TEditorForm::StartFind(bool Find) { Options << frWholeWord; } - if (EditorMemo->SupportsUpSearch) + if (WinConfiguration->Editor.FindDown) { - if (WinConfiguration->Editor.FindDown) - { - Options << frDown; - } - } - else - { - Options << frHideUpDown; // not implemented Options << frDown; } FLastFindDialog->Options = Options; @@ -1533,7 +1560,7 @@ void __fastcall TEditorForm::CreateParams(TCreateParams & Params) //--------------------------------------------------------------------------- void __fastcall TEditorForm::Reload() { - if (!EditorMemo->Modified || + if (!IsFileModified() || (MessageDialog(MainInstructions(LoadStr(EDITOR_MODIFIED_RELOAD)), qtConfirmation, qaOK | qaCancel) != qaCancel)) { @@ -1547,8 +1574,9 @@ void __fastcall TEditorForm::Reload() //--------------------------------------------------------------------------- void __fastcall TEditorForm::ApplicationHint(TObject * /*Sender*/) { - assert(Application); - UnicodeString AHint = GetLongHint(Application->Hint); + DebugAssert(Application); + // Application->Hint contains long hint only + UnicodeString AHint = Application->Hint; FShowStatusBarHint = Active && !AHint.IsEmpty(); if (FShowStatusBarHint) { @@ -1580,15 +1608,24 @@ void __fastcall TEditorForm::SetBackgroundColor(TColor Color) if (BackgroundColor != Color) { FBackgroundColor = Color; - TColor ItemColor = (Color != 0 ? Color : Vcl::Graphics::clNone); - ColorItem->Color = ItemColor; - TColor EditorColor = (Color != 0 ? Color : clWindow); - if (EditorMemo->Color != EditorColor) - { - EditorMemo->Color = EditorColor; - // does not seem to have any effect (nor is needed), but just in case - ForceColorChange(EditorMemo); - } + UpdateBackgroundColor(); + } +} +//--------------------------------------------------------------------------- +void __fastcall TEditorForm::UpdateBackgroundColor() +{ + TColor Color = FBackgroundColor; + if (Color == 0) + { + // double default, first our preferred default, then system default + Color = GetWindowColor(WinConfiguration->Editor.BackgroundColor); + } + ColorItem->Color = Color; + if (EditorMemo->Color != Color) + { + EditorMemo->Color = Color; + // does not seem to have any effect (nor is needed), but just in case + ForceColorChange(EditorMemo); } } //--------------------------------------------------------------------------- diff --git a/source/forms/Editor.dfm b/source/forms/Editor.dfm index 44e32539..def27fbd 100644 --- a/source/forms/Editor.dfm +++ b/source/forms/Editor.dfm @@ -9,6 +9,1351 @@ object EditorForm: TEditorForm ClientWidth = 609 Color = clBtnFace ParentFont = True + Icon.Data = { + 000001000700404000000100200028420000760000003030000001002000A825 + 00009E4200002828000001002000681A0000466800002020000001002000A810 + 0000AE820000181800000100200088090000569300001414000001002000B806 + 0000DE9C000010100000010020006804000096A3000028000000400000008000 + 0000010020000000000000420000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009A76 + 57FFFBF3EBFFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF9A7657FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009A76 + 57FFFBF4ECFFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF9A7657FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009A76 + 57FFFBF4EDFFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF9A7657FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009A76 + 57FFFCF4EDFFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF9A7657FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009B77 + 58FFFCF5EFFFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FF9B7758FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009C78 + 59FFFCF6F0FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFE1D7CBFFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FF9C7859FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009D79 + 59FFFCF7F1FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FF86888CFF52575EFFB7B4B1FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FF9D7959FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009E7A + 5AFFFDF7F2FFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFDBD1C8FF848384FF2A2727FF44484EFF9D9E9FFFF5E7D9FFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFF9E7A5AFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009F7B + 5AFFFDF8F3FFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFF7D8185FFAEADADFF2A2727FF292626FF657686FFC6CDD4FFF4E7 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFF9F7B5AFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A07B + 5BFFFDF8F3FFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFC5BFB9FFA6A5A5FFAFAEAEFF606F7DFF93B7D9FF87ADD1FF89AB + CCFFBCC7D2FFEFE4DAFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFA07B5BFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A17C + 5CFFFDF9F4FFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EA + DCFFF7EADCFFF7EADCFF595D63FFAFB5BDFFB5D4F1FFA5C7E6FF99BCDDFF8FB3 + D6FF86ACD0FF84A9CCFFB0C1D1FFE1DED9FFF7EADCFFF7EADCFFF7EADCFFF7EA + DCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EA + DCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EA + DCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFA17C5CFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A17D + 5CFFFDF9F5FFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFC6C4C3FF85A8CAFFA7C8E6FFB5D4F1FFA8C9E8FF9DC0 + E0FF94B8DAFF8CB1D4FF85ABCFFF5699C0FFCAD5D4FFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFA17D5CFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A27E + 5DFFFEFAF6FFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFF8EA8C1FF90B3D3FFACCCEAFFB5D4F1FFAACB + E9FFA0C2E2FF98BBDDFF91B5D8FF3F9DC7FF2C8EB8FFC7D4D4FFF8EBDEFFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFA27E5DFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A37F + 5EFFFEFAF7FFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFC8CBCFFF7EA2C3FF98BAD9FFB0D0EDFFB5D4 + F1FFABCCEAFFA2C4E4FF85B5D8FF1E85B3FF47B3DEFF2D8EB8FFC7D4D5FFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFA37F5EFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A480 + 5EFFFEFBF8FFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8EC + DFFFF8ECDFFFF8ECDFFFF8ECDFFFF7ECDFFF7F9EBCFF88ABCBFF9EBFDEFFB2D2 + EFFF9AC6E6FF6EAFD2FF3390BBFF46A7CFFF23A9DFFF4CB9E2FF2D8EB8FFC7D5 + D5FFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8EC + DFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8EC + DFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFA4805EFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A580 + 5FFFFEFBF9FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFBAC3CBFF799DBFFF8FB1D2FF8DB9 + DBFF4EA1C4FF92C9DEFFE1F8FCFFE9FDFFFF6BC9EBFF22ABE0FF4ABAE3FF2D8E + B8FFC7D5D6FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFA5805FFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A681 + 60FFFEFCF9FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF2E9DFFF7296B8FF82A5C7FF6BAC + CFFF50B9D8FFEAFDFFFFEAFDFFFFE8FDFFFFE2FCFFFF66C9ECFF22ADE1FF48BB + E4FF2D8EB8FFC7D5D7FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFA68160FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A782 + 60FFFEFCFAFFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFADC5CFFF3C96BDFF2C97 + C0FF29C8E9FF86EEFEFFE9FDFFFFE4FCFFFFDFFBFFFFD9FBFFFF63CAECFF22AF + E2FF45BCE4FF2C8EB8FFC7D5D7FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFA78260FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A883 + 61FFFEFDFBFFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFB7CED5FF3095 + BEFF49E3FAFF31E1FBFF85EEFDFFE0FCFFFFDBFBFFFFD6FAFFFFD0F9FFFF5FCB + EEFF21B1E3FF43BDE6FF2C8EB8FFC7D6D8FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFA88361FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A984 + 62FFFFFDFBFFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFB7CE + D5FF3296BEFF4DE2FAFF35E1FBFF83EEFDFFD7FAFFFFD2FAFFFFCDF9FFFFC7F8 + FFFF5CCBEEFF21B3E4FF41BEE7FF2C8EB8FFC7D6D9FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFA98462FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A985 + 62FFFFFDFCFFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EF + E4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EF + E4FFB7CFD5FF3297BEFF4FE3FAFF3AE2FAFF81EEFDFFCEF9FFFFC9F8FFFFC4F8 + FFFFBEF7FFFF58CCEFFF20B5E5FF3EBFE7FF2C8EB8FFC7D7D9FFF9EFE4FFF9EF + E4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EF + E4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFA98562FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AA85 + 63FFFFFEFCFFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FFB7CFD6FF3197BEFF51E3F9FF3EE2FAFF7FEDFDFFC5F8FFFFC0F7 + FFFFBBF6FFFFB5F6FFFF55CDF0FF20B7E6FF3CC0E8FF2B8EB8FFC7D7DAFFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFAA8563FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AB86 + 63FFFFFEFDFFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0 + E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0 + E6FFF9F0E6FFF9F0E6FFB7D0D7FF3197BEFF53E3F9FF42E2FAFF7DEDFCFFBCF6 + FFFFB7F6FFFFB2F5FFFFACF4FFFF51CEF0FF1FB9E8FF3AC1E9FF2B8DB8FFC7D8 + DBFFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0 + E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFAB8663FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AC87 + 64FFFFFEFEFFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFB8D0D7FF3097BEFF55E3F8FF46E3F9FF7BEC + FCFFB3F5FFFFAEF4FFFFA9F4FFFFA3F3FFFF4DCFF1FF1FBBE9FF38C3E9FF2B8D + B8FFC8D8DBFFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFAC8764FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AD88 + 65FFFFFFFEFFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFB8D0D8FF3197BEFF57E3F8FF49E3 + F9FF79ECFCFFA9F4FFFFA4F3FFFFA0F2FFFF9AF2FFFF4AD0F1FF1FBDEAFF35C4 + EAFF2B8DB8FFC8D9DCFFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFAD8865FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AE89 + 66FFFFFFFEFFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFB8D0D8FF3097BEFF59E3 + F7FF4DE3F8FF77EBFCFFA0F3FFFF9BF2FFFF96F1FFFF90F0FFFF46D1F3FF1EBF + EBFF33C5ECFF2B8DB8FFC8D9DCFFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFAE8966FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000AF8A + 66FFFFFFFFFFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFB8D1D9FF2F97 + BEFF5BE4F7FF51E4F8FF75EBFCFF97F1FFFF92F1FFFF8DF0FFFF87EFFFFF43D1 + F3FF1EC1ECFF31C6ECFF2A8DB8FFC8D9DDFFFAF2E9FFFAF2E9FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFAF8A66FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B08A + 67FFFFFFFFFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFB8D1 + D9FF3097BFFF5DE3F7FF55E4F8FF73EAFBFF8EF0FFFF89EFFFFF84EFFFFF7EEE + FEFF3FD2F4FF1DC3EDFF2EC7EDFF2A8DB9FFC8D9DEFFFAF2EAFFFAF2EAFFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFB08A67FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B08B + 67FFFFFFFFFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFB8D2DAFF2F96BFFF5FE3F7FF59E4F7FF71E9FBFF85EFFFFF80EEFEFF7BED + FEFF75EDFEFF3BD3F4FF1DC5EEFF2CC8EDFF2A8DB9FFCBDBDFFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFB08B67FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B18C + 68FFFFFFFFFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFB8D2DBFF2E96BFFF61E4F7FF5DE5F7FF6EEAFBFF7CEDFEFF77ED + FEFF72ECFEFF6CEBFEFF38D4F5FF1CC7F0FF2AC9EEFF2F90BBFFD4E0E2FFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFB18C68FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B28D + 69FFFFFFFFFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFB8D2DCFF2E96BFFF63E4F6FF62E5F6FF6CE9FAFF73EC + FEFF6EEBFEFF69EBFEFF63EAFEFF34D4F6FF1CC9F1FF28CAEFFF2E90BBFFD4E1 + E3FFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFB28D69FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B38E + 69FFFFFFFFFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFB8D2DCFF2E96BFFF65E4F6FF65E5F6FF6AE8 + FAFF69EBFEFF65EAFEFF60E9FEFF5AE9FEFF31D5F6FF1CCAF2FF25CBEFFF2E90 + BBFFD4E1E3FFFBF4EDFFFBF4EDFFFBF4EDFFB38E69FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B48F + 6AFFFFFFFFFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFB8D3DCFF2D96BFFF67E3F6FF69E6 + F5FF68E8FAFF60E9FEFF5CE9FEFF57E8FEFF51E7FEFF2DD6F7FF1BCCF3FF23CC + F1FF2E91BBFFD4E1E4FFFBF5EEFFFBF5EEFFB48F6AFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B58F + 6BFFFFFFFFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFB9D3DDFF2D96BFFF69E4 + F5FF6DE6F5FF66E8FAFF57E8FEFF52E7FEFF4EE7FEFF48E6FEFF2AD6F8FF1BCE + F4FF21CDF2FF2E91BBFFD5E1E5FFFAF2EAFFB58F6BFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B690 + 6BFFFFFFFFFFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFB9D4DEFF2D96 + BFFF6BE4F5FF71E6F5FF64E7F9FF4EE7FEFF49E6FEFF45E5FEFF3FE5FEFF26D7 + F9FF1AD0F5FF1FCEF2FF2D90B9FFC7CECBFFB6906BFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B791 + 6CFFFFFFFFFFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFB9D4 + DEFF2D96BFFF6CE4F4FF75E7F4FF62E7F9FF45E5FEFF40E5FEFF3BE4FEFF35E3 + FEFF22D8F9FF1AC4EAFF3698B1FF6D645AFF93846FFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B892 + 6DFFFFFFFFFFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7 + F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7 + F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7 + F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7 + F1FFB9D5DEFF2C96BFFF6EE4F4FF79E7F4FF60E6F9FF3BE4FEFF36E3FEFF31E3 + FEFF2AD1F1FF3791AAFF756659FF9D8D80FF746457FF725C4F3A000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B893 + 6DFFFFFFFFFFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFB9D5DFFF2B96BFFF70E4F4FF7DE7F3FF5DE6F9FF32E3FEFF2AD1 + F1FF3A94ABFF756659FFB4A69BFFC5B7ADFFAB9B8FFF756253F2725C4F3A0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000B994 + 6EFFFFFFFFFFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFB4CED5FF2B94BDFF72E4F3FF81E7F3FF50D4ECFF3A94 + ABFF7B6D60FFBDB0A7FFCABEB4FFC7BAB1FFC5B7ADFFAB9B8FFF756253F2725C + 4F3A000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BA94 + 6FFFFFFFFFFFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFCF5F0FFE3CFBCFFCCAC8CFF979F97FF2A93BCFF66D6E9FF5396A8FF7768 + 5BFFE2DCD7FFE8E3DFFFD0C4BCFFCABEB4FFC7BAB1FFC5B7ADFFAA9A8EFF6F5D + 55FA473D6E4F0000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BB95 + 6FFFFFFFFFFFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFECDE + D0FFCAAA89FFC39F7AFFC39F7AFFC39F7AFF91978BFF3F839DFF766659FFB3A5 + 9AFFDBD3CDFFEDE9E6FFE8E3DFFFD0C4BCFFCABEB4FFC7BAB0FF928074FF5C4E + 6CFF111197F5090D953A00000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BC96 + 70FFFFFFFFFFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9 + F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9 + F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9 + F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFFFF + FFFFFFFFFFFFFBF9F7FFF7F3EEFFF3ECE5FFEFE6DCFF9CA6A5FF77675AFFB4A4 + 9AFFC6B9AFFFDBD3CDFFEDE9E6FFE8E3DFFFD0C3BBFF938376FF625474FF2425 + DBFF1214CBFF0D0E9BF4090D953A000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BD97 + 70FFFFFFFFFFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFFFF + FFFFFBF9F7FFF7F3EEFFF3ECE5FFEFE6DCFFEBDFD3FFE7D9CAFFA9A79EFF7B68 + 5AFFB4A49AFFC6B9AFFFDBD3CDFFEDE9E6FFB1A59BFF665975FF373CDDFF2A2E + E2FF2022E1FF1214CBFF0D0E9BF4090D953A0000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BE98 + 71FFFFFFFFFFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFBF9 + F7FFF7F3EEFFF3ECE5FFEFE6DCFFEBDFD3FFE7D9CAFFE3D3C2FFDFCCB9FFBCA7 + 94FF7B685AFFB4A49AFFC6B9AEFFA4958BFF6B5F75FF4A52E0FF3E45E6FF343A + E4FF2A2EE2FF2022E1FF1214CBFF0D0D99EC0C0C971600000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BF99 + 72FFFFFFFFFFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFF7F3 + EEFFF3ECE5FFEFE6DCFFEBDFD3FFE7D9CAFFE3D3C2FFDFCCB9FFDBC6B0FFD7BF + A7FFBBA590FF796658FF8D7B6EFF685C75FF555EE2FF535DE9FF4851E7FF3E45 + E6FF343AE4FF2A2EE2FF2022E1FF0F10AFFF0D0D995000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BF99 + 72FFFFFFFFFFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFF3EC + E5FFEFE6DCFFEBDFD3FFE7D9CAFFE3D3C2FFDFCCB9FFDBC6B0FFD7BFA7FFDAC3 + ACFFBF9972D46B5A5C69594C64FD3438D2FF464EE7FF545EE9FF535CE9FF4851 + E7FF3E45E6FF343AE4FF262AD9FF0D0E9FFC0707952400000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BF99 + 72FFFFFFFFFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFEFE6 + DCFFEBDFD3FFE7D9CAFFE3D3C2FFDFCCB9FFDBC6B0FFD7BFA7FFDAC3ACFFBF99 + 72D4BF996614000000000A0D984D0E0F9EFA3136D8FF464EE7FF545EE9FF535C + E9FF4851E7FF383EDDFF1012A2FE0B0D995F0000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BF99 + 72FFFFFFFFFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFEBDF + D3FFE7D9CAFFE3D3C2FFDFCCB9FFDBC6B0FFD7BFA7FFD8C0A7FFBF9972D4BF99 + 66140000000000000000000000000A0D984D0E0F9EFA3136D8FF464EE7FF545E + E9FF4A52DFFF1315A2FE0B0D995F000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BF99 + 72FFFFFFFFFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFE7D9 + CAFFE3D3C2FFDFCCB9FFDBC6B0FFD7BFA7FFD8C0A7FFBF9972D4BF9966140000 + 0000000000000000000000000000000000000A0D984D0E0F9EFA2E33D3FF3B41 + D8FF1416A3FE0B0D995F00000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BF99 + 72FFFFFFFFFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFE3D3 + C2FFDFCCB9FFDBC6B0FFD7BFA7FFD8C0A7FFBF9972D4BF996614000000000000 + 000000000000000000000000000000000000000000000B0B97470C0D99D50D0E + 99DE0C0C99550000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BF99 + 72FFFFFFFFFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFDFCC + B9FFDBC6B0FFD7BFA7FFD8C0A8FFBF9972D4BF99661400000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BF99 + 72FFFFFFFFFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFDBC6 + B0FFD7BFA7FFD8C0A8FFBF9972D4BF9966140000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BF99 + 72FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7BF + A7FFD8C0A8FFBF9972D4BF996614000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BF99 + 72FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8C0 + A7FFBF9972D2BF99661400000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72D2BF9966140000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0000000003FFFF000000000003FFFF000000000003FFFF000000000003FFFF00 + 0000000003FFFF000000000003FFFF000000000003FFFF000000000003FFFF00 + 0000000003FFFF000000000003FFFF000000000003FFFF000000000003FFFF00 + 0000000003FFFF000000000003FFFF000000000003FFFF000000000003FFFF00 + 0000000003FFFF000000000003FFFF000000000003FFFF000000000003FFFF00 + 0000000003FFFF000000000003FFFF000000000003FFFF000000000003FFFF00 + 0000000003FFFF000000000003FFFF000000000003FFFF000000000003FFFF00 + 0000000003FFFF000000000003FFFF000000000003FFFF000000000003FFFF00 + 0000000003FFFF000000000003FFFF000000000003FFFF000000000003FFFF00 + 0000000003FFFF000000000001FFFF000000000000FFFF0000000000007FFF00 + 00000000003FFF0000000000001FFF0000000000000FFF00000000000007FF00 + 000000000003FF00000000000003FF00000000000003FF00000000002007FF00 + 00000000700FFF0000000000F81FFF0000000001FC3FFF0000000003FFFFFF00 + 00000007FFFFFF000000000FFFFFFF000000001FFFFFFF000000003FFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2800 + 0000300000006000000001002000000000008025000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009A7657E89A76 + 57E89A7657E89A7657E89A7657E89A7657E89A7657E89A7657E89A7657E89A76 + 57E89A7657E89A7657E89A7657E89A7657E89A7657E89A7657E89A7657E89A76 + 57E89A7657E89A7657E89A7657E89A7657E89A7657E89A7657E89A7657E89A76 + 57E89A7657E89A7657E89A7657E89A7657E89A7657E89A7657E89A7657E89A76 + 57E8000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009A7657FFF6ED + E4FFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDC + CBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDC + CBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDC + CBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFFEEDCCBFF9A76 + 57FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009A7657FFFBF4 + ECFFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF9A76 + 57FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009A7657FFFBF4 + EDFFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF9A76 + 57FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009B7758FFFCF5 + EFFFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6 + D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6 + D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6 + D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FF9B77 + 58FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009C7859FFFCF6 + F0FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FF777B7FFF9A9B + 9CFFF4E6D7FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FF9C78 + 59FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009D7959FFFDF7 + F1FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FF969798FF2926 + 26FF3A3C40FF888B8FFFEEE0D4FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FF9D79 + 59FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009E7A5AFFFDF8 + F3FFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF5E8D9FF3739 + 3DFF292626FF292626FF596675FFBBC7D2FFEFE4D9FFF7E9DAFFF7E9DAFFF7E9 + DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9 + DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFF9E7A + 5AFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A07B5BFFFDF8 + F4FFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFF7C7F + 84FF292626FF5E6873FFA0C2E2FF93B7D9FF8BAFD2FFB0C1D1FFE6E0D9FFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFA07B + 5BFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A17D5CFFFDF9 + F5FFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFEDE1 + D6FF4F5D6AFF9FC0DFFFB5D4F1FFA5C7E6FF99BCDDFF8FB3D6FF87ADD0FF8BB1 + CBFFE4E2D8FFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EA + DCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFA17D + 5CFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A27E5DFFFEFA + F7FFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFFAAB7C3FF85A8CAFFA7C8E6FFB5D4F1FFA8C9E8FF9DC0E0FF94B8DAFF4A96 + C0FF4B9ABBFFEEE7DCFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFA27E + 5DFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A37F5EFFFEFB + F8FFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFFEAE2DAFF7598B9FF90B3D3FFACCCEAFFB5D4F1FFAACBE9FF9EC2E2FF2C93 + C1FF3B9BC5FF4F9CBCFFEEE7DDFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFA37F + 5EFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A4805FFFFEFB + F9FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FF9EAFC1FF7EA2C3FF98BAD9FFAECFECFF78B4D8FF4B9DC4FF4BB2 + DAFF32B1E3FF399BC5FF4F9CBDFFEEE8DEFFF8ECE0FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFA480 + 5FFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A68160FFFEFC + FAFFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFE0DCD8FF6F94B8FF88ABCBFF59A0C8FF9ACFE2FFE6FBFEFFE1FB + FFFF59C4EAFF30B4E3FF379CC5FF4F9CBDFFEEE8DFFFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFA681 + 60FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A78260FFFEFC + FBFFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FF7BA1BBFF6197BDFF3996C0FF67EAFDFFE2FCFFFFDFFB + FFFFD5FAFFFF56C5EBFF2EB6E5FF369CC4FF509CBDFFEFE8E0FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFA782 + 60FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A88361FFFFFD + FBFFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFE6E5DFFF3E93B9FF369DC4FF41E3FBFF69EAFDFFD6FB + FFFFD3FAFFFFC8F8FFFF51C7ECFF32BAE7FF359BC4FF509CBDFFEFE9E1FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFA883 + 61FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A98462FFFFFE + FCFFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EF + E4FFF9EFE4FFF9EFE4FFF9EFE4FFEFEAE2FF509CBEFF3DA5C9FF45E4FAFF69EA + FCFFCAF9FFFFC6F8FFFFBCF6FFFF4DC8EDFF2FBCE9FF339BC4FF509CBEFFEFEA + E2FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFA984 + 62FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000AB8663FFFFFE + FDFFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFEFEAE3FF509CBEFF3CA5C9FF49E4 + FAFF69E9FCFFBEF7FFFFBAF6FFFFB0F4FFFF49C9EEFF2EBEEAFF319BC4FF509C + BEFFEFEAE3FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFAB86 + 63FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000AC8764FFFFFE + FEFFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0 + E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFF0EBE4FF509DBEFF3BA5 + C9FF4DE4F9FF69E9FBFFB2F5FFFFAEF4FFFFA4F2FFFF45CBEFFF2CC1EBFF2E9B + C5FF509DBEFFF0EBE4FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFAC87 + 64FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000AD8865FFFFFF + FEFFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFF0ECE6FF509D + BFFF3AA4C9FF51E4F9FF69E9FBFFA6F4FFFFA1F3FFFF98F1FFFF41CCF1FF2AC2 + ECFF2D9BC5FF509DBFFFF0ECE6FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFAD88 + 65FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000AE8966FFFFFF + FFFFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1 + E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFF0EC + E7FF509DBFFF39A4C9FF55E4F9FF69E9FBFF99F2FFFF95F1FFFF8BEFFFFF3DCD + F1FF28C5EEFF2B9BC5FF509DBFFFF0ECE7FFFAF1E9FFFAF1E9FFFAF1E9FFAE89 + 66FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000AF8A67FFFFFF + FFFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2 + EAFFF0EDE8FF509DBFFF39A4C9FF59E5F9FF69E8FAFF8EF0FFFF88EFFFFF80ED + FFFF39CFF2FF26C7EFFF299BC5FF509DBFFFF0EDE8FFFAF2EAFFFAF2EAFFAF8A + 67FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B08B67FFFFFF + FFFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFF1EEE9FF509DBFFF38A3C9FF5DE5F8FF69E8FAFF82EEFFFF7CED + FEFF73EBFEFF35D0F3FF25C9F0FF279BC5FF509DBFFFF1EEE9FFFBF3EBFFB08B + 67FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B28C68FFFFFF + FFFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFF1EEEAFF509DBFFF37A3C9FF61E5F8FF69E8F9FF75ED + FEFF70ECFEFF67EBFEFF30D2F5FF22CBF2FF2498C3FF509DBFFFF1EEEAFFB28C + 68FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B38D69FFFFFF + FFFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFF1EFEBFF509EC0FF36A3C9FF65E5F7FF69E8 + F9FF6AEBFEFF63EAFEFF5BE9FEFF2DD3F5FF21CDF3FF2298C3FF509EC0FFAC8D + 6CFF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B48F6AFFFFFF + FFFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFF1F0ECFF509EC0FF36A3C9FF68E6 + F6FF69E8F8FF5DE9FEFF57E8FEFF4FE7FEFF28D4F7FF1FCFF5FF2098C3FF4087 + A2FF1580AA0C0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B5906BFFFFFF + FFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFF2F0EDFF509EC0FF35A3 + C8FF6DE6F6FF69E7F8FF52E7FEFF4AE6FEFF43E5FEFF25D6F7FF1DD1F6FF1F98 + C4FF1E84B3C51580AA0C00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B6916CFFFFFF + FFFFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFF2F1EEFF509E + C1FF34A3C8FF71E6F5FF69E7F7FF46E6FEFF3FE5FEFF37E4FEFF20D7F9FF1CBB + E2FF2093BCF968645CA96A55400C000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B8926DFFFFFF + FFFFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFF2F2 + EFFF509EC1FF34A3C8FF75E7F5FF69E7F7FF3AE4FEFF32E3FEFF26C2E4FF22A4 + CBFF949C9BF9806E60FF736052C56A55400C0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B9936EFFFFFF + FFFFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7 + F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7 + F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7 + F3FFF2F2F0FF509EC1FF32A2C8FF79E6F4FF69E6F7FF29C3E4FF27A6CCFFA2A7 + A4FFC7BAB0FFBDAFA3FF806E60FF695758DB3333660F00000000000000000000 + 0000000000000000000000000000000000000000000000000000BA946EFFFFFF + FFFFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFF3E9DFFFD2C1ADFF4790ADFF31A2C8FF5FC8E0FF3DA9CAFFC6D0D2FFDFD8 + D2FFCBBEB5FFC7BAB0FFBDAFA3FF4F4578FF0D0D99C50000950C000000000000 + 0000000000000000000000000000000000000000000000000000BB956FFFFFFF + FFFFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFF6EEE6FFD8BF + A6FFC7A481FFC7A481FFBFA383FF448BA7FF369DC0FF979D9AFFD5CAC3FFEDE9 + E5FFDDD6D0FFCBBEB5FF8D829BFF181AD4FF0E0FA5FF0D0D99C50000950C0000 + 0000000000000000000000000000000000000000000000000000BC9770FFFFFF + FFFFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFBF8F5FFF8F3 + EEFFF3ECE4FFEFE5DAFFEADED0FFDDD2C5FF92897EFF7F6D5FFFBCAFA3FFD5CA + C3FFEDE9E5FFA9A1B2FF363CE4FF282CE2FF191BDAFF0E0FA5FF0D0D99C50000 + 950C000000000000000000000000000000000000000000000000BE9871FFFFFF + FFFFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFBFAFFF7F3 + EEFFF2EAE2FFECE1D6FFE7D9CAFFE2D0BEFFD7C2AEFF8A7666FF7F6D5FFFBCAF + A3FFA198AAFF525CE9FF444CE7FF363CE4FF282CE2FF191BDAFF0D0EA3FF0D0D + 98B3000000000000000000000000000000000000000000000000BF9972FFFFFF + FFFFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFF7F3EEFFF2EA + E2FFECE1D6FFE7D9CAFFE2D0BEFFDCC7B2FFDAC2ABFFBB9570C8695858DC5045 + 78FF363DDBFF5059E8FF525CE9FF444CE7FF363CE4FF282CE2FF1113B4FF0D0E + 99F1000000000000000000000000000000000000000000000000BF9972FFFFFF + FFFFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFC + F9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFC + F9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFF2EAE2FFECE1 + D6FFE7D9CAFFE2D0BEFFDCC7B2FFDAC2ABFFC09972C5BF956A0C3333660F0D0D + 99C51213A6FF3A40E0FF5059E8FF525CE9FF444CE7FF262BC8FF0C0D9AFE0B0E + 9A5D000000000000000000000000000000000000000000000000BF9972FFFFFF + FFFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFECE1D6FFE7D9 + CAFFE2D0BEFFDCC7B2FFDAC2ABFFC09972C5BF956A0C00000000000000000000 + 950C0D0D99C51213A6FF3940E0FF505AE8FF383FCBFF0C0D9AFE0B0D995F0000 + 0000000000000000000000000000000000000000000000000000BF9972FFFFFF + FFFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFE7D9CAFFE2D0 + BEFFDCC7B2FFDAC2ABFFC09972C5BF956A0C0000000000000000000000000000 + 00000000950C0D0D99C51113A4FF2023B7FF0C0D9AFE0B0D995F000000000000 + 0000000000000000000000000000000000000000000000000000BF9972FFFFFF + FFFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFE2D0BEFFDCC7 + B2FFDAC2ABFFC09972C5BF956A0C000000000000000000000000000000000000 + 0000000000000000950C0D0D99B40D0E99F10B0E9A5D00000000000000000000 + 0000000000000000000000000000000000000000000000000000BF9972FFFFFF + FFFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFDCC7B2FFDAC2 + ACFFC09972C5BF956A0C00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BF9972FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDAC3ACFFC099 + 72C5BF956A0C0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BF9972FFC5A2 + 7FFFC5A27FFFC5A27FFFC5A27FFFC5A27FFFC5A27FFFC5A27FFFC5A27FFFC5A2 + 7FFFC5A27FFFC5A27FFFC5A27FFFC5A27FFFC5A27FFFC5A27FFFC5A27FFFC5A2 + 7FFFC5A27FFFC5A27FFFC5A27FFFC5A27FFFC5A27FFFC5A27EFFC09972C5BF95 + 6A0C000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BC906F17BC90 + 6F17BC906F17BC906F17BC906F17BC906F17BC906F17BC906F17BC906F17BC90 + 6F17BC906F17BC906F17BC906F17BC906F17BC906F17BC906F17BC906F17BC90 + 6F17BC906F17BC906F17BC906F17BC906F17BC906F17BC906F17AA8055060000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFFFFFFFFFF0000F800 + 000001FF0000F800000001FF0000F800000001FF0000F800000001FF0000F800 + 000001FF0000F800000001FF0000F800000001FF0000F800000001FF0000F800 + 000001FF0000F800000001FF0000F800000001FF0000F800000001FF0000F800 + 000001FF0000F800000001FF0000F800000001FF0000F800000001FF0000F800 + 000001FF0000F800000001FF0000F800000001FF0000F800000001FF0000F800 + 000001FF0000F800000001FF0000F800000001FF0000F800000001FF0000F800 + 000001FF0000F800000000FF0000F8000000007F0000F8000000003F0000F800 + 0000001F0000F8000000000F0000F800000000070000F800000000030000F800 + 000000010000F800000000010000F800000000010000F800000000010000F800 + 00000C030000F80000001E070000F80000003F0F0000F80000007FFF0000F800 + 0000FFFF0000F8000001FFFF0000F8000003FFFF0000FFFFFFFFFFFF0000FFFF + FFFFFFFF00002800000028000000500000000100200000000000401A00000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009B7758FF9B77 + 58FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B77 + 58FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B77 + 58FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B77 + 58FF9B7758FF9B7758FF9B7758FF9B7758FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009C7859FFFCF6 + F0FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FF9C7859FF0000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009D795AFFFDF7 + F2FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FF9D795AFF0000000000000000000000000000 + 00000000000000000000000000000000000000000000000000009F7A5AFFFDF8 + F3FFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFF777B + 80FF9B9C9EFFF5E8D9FFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9 + DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9 + DAFFF7E9DAFFF7E9DAFFF7E9DAFF9F7A5AFF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A07B5BFFFDF8 + F4FFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFF9798 + 9AFF292626FF393A3EFF878A8EFFF4E7DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFA07B5BFF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A17D5CFFFDF9 + F6FFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF5E9 + DCFF383A3EFF2A2727FF71879CFF91B2D3FFBAC7D3FFEFE5DCFFF7EADDFFF7EA + DDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EA + DDFFF7EADDFFF7EADDFFF7EADDFFA17D5CFF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A27E5DFFFEFA + F7FFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFF7F8287FF6E8296FFB5D4F1FFA1C3E3FF93B7D9FF8BAFD2FFA9BFD1FFD8DC + D8FFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFFA27E5DFF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A37F5EFFFEFB + F8FFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFFF4E8DEFF7FA0BEFFA0C1E0FFB5D4F1FFA5C7E6FF99BCDDFF79ABD0FF3991 + B8FFE7E3DCFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFA37F5EFF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A5805FFFFEFB + F9FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFACB8C5FF85A8CAFFA7C8E6FFB5D4F1FFA8C9E8FF519EC6FF51B2 + D9FF4496BAFFE7E4DDFFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFA5805FFF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A68160FFFEFC + FAFFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFECE5DCFF7598BAFF90B3D3FF85BBDCFF5EA9CCFFA4D7E9FF38B5 + E4FF4EB4DBFF4497BBFFE7E5DEFFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFF8EDE1FFF8EDE1FFA68160FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A78261FFFEFC + FBFFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FF97ADC0FF7EA2C3FF40A3CAFFD3FAFFFFE4FCFFFFC5F2 + FCFF37B8E6FF4AB5DBFF4497BBFFE8E5DFFFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFA78261FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A88361FFFFFD + FCFFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFD8DFDDFF2F8DB6FF48B8D8FF49E5FCFFC8F8FFFFD4FA + FFFFB8F0FCFF34BAE7FF46B6DCFF4497BBFFE8E6E0FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFA88361FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A98562FFFFFE + FCFFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EF + E4FFF9EFE4FFF9EFE4FFF9EFE4FFE8E7E0FF4497BBFF59CCE6FF4CE5FBFFBCF7 + FFFFC6F8FFFFAAEFFCFF31BDE8FF42B6DDFF4497BBFFE8E7E0FFF9EFE4FFF9EF + E4FFF9EFE4FFF9EFE4FFF9EFE4FFA98562FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000AB8663FFFFFE + FDFFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFE8E7E1FF4497BBFF58CCE6FF51E5 + FBFFB0F5FFFFB7F6FFFF9CEEFCFF30BFEAFF3EB7DEFF4497BBFFE8E7E1FFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFAB8663FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000AC8764FFFFFE + FEFFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFE9E8E3FF4597BCFF57CC + E5FF54E6FAFFA3F3FFFFA8F4FFFF90EBFDFF2DC2ECFF3AB8DFFF4597BCFFE9E8 + E3FFFAF0E7FFFAF0E7FFFAF0E7FFAC8764FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000AD8865FFFFFF + FFFFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFE9E9E4FF4597 + BCFF56CBE5FF59E5F9FF97F2FFFF99F1FFFF83EAFDFF2AC5EEFF36BAE0FF4597 + BCFFE9E9E4FFFAF1E8FFFAF1E8FFAD8865FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000AE8966FFFFFF + FFFFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1 + E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFE9E9 + E5FF4597BCFF56CBE5FF5CE6F9FF8AEFFEFF8AEFFFFF75E9FDFF27C7EFFF32BA + E0FF4597BCFFE9E9E5FFFAF1E9FFAE8966FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000AF8A67FFFFFF + FFFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2 + EAFFE9EAE6FF4597BCFF55CAE5FF61E6F8FF7EEDFEFF7BEDFEFF68E7FCFF26CA + F1FF2DBBE0FF4597BCFFE9EAE6FFAF8A67FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B18B68FFFFFF + FFFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFEAEBE7FF4598BCFF54CAE5FF65E6F7FF72ECFDFF6BEBFEFF5BE6 + FDFF23CCF3FF29BCE1FF4598BCFFA68A6EFF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000B28D68FFFFFF + FFFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4 + ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4 + ECFFFBF4ECFFFBF4ECFFEAECE8FF4598BCFF53CAE4FF68E6F7FF66EAFDFF5DE9 + FEFF4EE5FDFF21CFF4FF26BDE2FF3886A5FF1A80B31400000000000000000000 + 0000000000000000000000000000000000000000000000000000B38E69FFFFFF + FFFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFEAECE9FF4598BDFF52CAE3FF6CE7F7FF59E8 + FDFF4EE7FEFF3FE3FDFF1FD1F6FF21BEE3FF1D84B3D21A80B314000000000000 + 0000000000000000000000000000000000000000000000000000B48F6AFFFFFF + FFFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFEAEDEAFF4598BDFF52C9E3FF70E7 + F6FF4DE7FDFF3FE5FEFF32E1FDFF1CCEF2FF1EB1D8FF596B6FA773594D140000 + 0000000000000000000000000000000000000000000000000000B5906BFFFFFF + FFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFEBEDEBFF4598BDFF50C9 + E3FF74E7F6FF41E5FDFF2EDCF9FF21AED5FF719BA5FA968578FF736051D27359 + 4D14000000000000000000000000000000000000000000000000B7916CFFFFFF + FFFFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFEBEDECFF4598 + BDFF50C8E2FF71E1F0FF28AFD4FF8CACB6FFCABDB4FFC6B8AEFF968578FF5448 + 66DD0D0D99140000000000000000000000000000000000000000B8926DFFFFFF + FFFFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFF9F3ECFFDEDB + D3FF4293B7FF43B7D6FF81A3ACFFEAE5E1FFDFD8D2FFCABDB4FFAEA09EFF1414 + ABFF0C0D99D20D0D991400000000000000000000000000000000B9936EFFFFFF + FFFFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF7F2FFEDE0D2FFDECAB4FFDEC9 + B2FFCFC4B2FF868C87FF958477FFCCC0B7FFEAE5E1FFCCC3C1FF3B3FDAFF2326 + E1FF0F10B9FF0C0D99D20D0D9914000000000000000000000000BA946FFFFFFF + FFFFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFF3E8DFFFD8C0A7FFD2B699FFD2B699FFD2B6 + 99FFD2B699FFCBAF94FF846F5EFF958477FFB6AAA7FF5F66DFFF444CE7FF3339 + E4FF2226E1FF0F10B6FF0D0D99C6000000000000000000000000BB966FFFFFFF + FFFFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFFFFFFFFFBF9F6FFF5EFE8FFEFE5DBFFE9DB + CEFFE2D1C0FFDDC9B4FFCDB59CFF5F4F68F51E1FACFF4850E7FF555FE9FF444C + E7FF3339E4FF181BC1FF0C0D99E3000000000000000000000000BD9770FFFFFF + FFFFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFBF9F6FFF5EFE8FFEFE5DBFFE9DBCEFFE2D1 + C0FFDDC9B4FFD6BCA3FFBC9870B4291F85190C0D99D21D20BBFF4850E7FF555F + E9FF3035CBFF0D0D99EC0B0B992D000000000000000000000000BE9871FFFFFF + FFFFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFF5EFE8FFEFE5DBFFE9DBCEFFE2D1C0FFDCC8 + B3FFD6BDA3FFBE9871B4AA805506000000000D0D99140C0D99D21B1EB7FF2D31 + C3FF0D0D99EC0B0B992D00000000000000000000000000000000BF9972FFFFFF + FFFFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFEFE5DBFFE9DBCEFFE2D1C0FFDCC8B3FFD6BE + A4FFBF9971B4AA8055060000000000000000000000000D0D99140D0D99C50D0E + 99E00C0C942B0000000000000000000000000000000000000000BF9972FFFFFF + FFFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFE9DBCEFFE2D1C0FFDCC8B3FFD6BEA5FFBF99 + 71B4AA8055060000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BF9972FFFFFF + FFFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFC + FBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFC + FBFFFEFCFBFFFEFCFBFFFEFCFBFFE2D1C0FFDCC8B3FFD6BEA5FFBF9971B4AA80 + 5506000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BF9972FFFFFF + FFFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFDCC8B3FFD6BEA5FFBF9971B4AA8055060000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BF9972FFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFCFFD7BEA5FFBF9971B4AA805506000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9971B4AA80550600000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFFF000000FFFFFFFFFF000000E000 + 00007F000000E00000007F000000E00000007F000000E00000007F000000E000 + 00007F000000E00000007F000000E00000007F000000E00000007F000000E000 + 00007F000000E00000007F000000E00000007F000000E00000007F000000E000 + 00007F000000E00000007F000000E00000007F000000E00000007F000000E000 + 00007F000000E00000007F000000E00000007F000000E00000003F000000E000 + 00001F000000E00000000F000000E000000007000000E000000003000000E000 + 000001000000E000000000000000E000000000000000E000000000000000E000 + 000000000000E000000081000000E0000001C3000000E0000003FF000000E000 + 0007FF000000E000000FFF000000E000001FFF000000E000003FFF000000FFFF + FFFFFF000000FFFFFFFFFF000000280000002000000040000000010020000000 + 0000801000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000009A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000009A76 + 57FFFBF3ECFFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000009B77 + 58FFFBF4EEFFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FF74777CFF98999AFFF4E5 + D6FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6 + D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FF9B7758FF000000000000 + 0000000000000000000000000000000000000000000000000000000000009D78 + 59FFFCF6F0FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FF979799FF292626FF3A3C + 41FFBBC1C9FFF4E5D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7 + D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FF9D7859FF000000000000 + 0000000000000000000000000000000000000000000000000000000000009E7A + 5AFFFDF7F2FFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF5E7D9FF3B3D42FF8BA0 + B4FF9BBEDFFF91B2D3FFBAC6D2FFEDE3D9FFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFF9E7A5AFF000000000000 + 000000000000000000000000000000000000000000000000000000000000A07C + 5BFFFDF8F4FFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFAEB4BBFF95B7 + D6FFB5D4F1FFA1C4E3FF93B7D9FF579DC4FFD1D8D5FFF7E9DCFFF7E9DCFFF7E9 + DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFA07C5BFF000000000000 + 000000000000000000000000000000000000000000000000000000000000A27D + 5DFFFDFAF5FFF8EBDDFFF8EBDDFFF8EBDDFFF8EBDDFFF8EBDDFFF4E8DCFF7FA0 + BEFFA0C1E0FFB5D4F1FFA1C6E5FF3B9ECAFF3B97BFFFD2D9D6FFF8EBDDFFF8EB + DDFFF8EBDDFFF8EBDDFFF8EBDDFFF8EBDDFFF8EBDDFFA27D5DFF000000000000 + 000000000000000000000000000000000000000000000000000000000000A47F + 5EFFFEFAF7FFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFACB8 + C4FF85A8CAFF77B4D6FF8DC6DDFFA7E0F3FF48B8E4FF3B97BFFFD2D9D7FFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFA47F5EFF000000000000 + 000000000000000000000000000000000000000000000000000000000000A581 + 5FFFFEFBF9FFF8ECE1FFF8ECE1FFF8ECE1FFF8ECE1FFF8ECE1FFF8ECE1FFEDE5 + DDFF5A93B9FF49AACFFFBDF6FFFFE1FBFFFFA6E4F7FF48BBE6FF3A96BFFFD2DA + D9FFF8ECE1FFF8ECE1FFF8ECE1FFF8ECE1FFF8ECE1FFA5815FFF000000000000 + 000000000000000000000000000000000000000000000000000000000000A782 + 61FFFEFCFAFFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFD4DCDAFF3F9BC1FF75E6FCFFB6F4FFFFD3F9FFFF9CE3F7FF48BEE8FF3997 + C0FFD3DBDAFFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFA78261FF000000000000 + 000000000000000000000000000000000000000000000000000000000000A984 + 62FFFFFDFBFFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EF + E4FFF9EFE4FFD4DDDCFF3F9BC1FF78E6FCFFAFF2FFFFC5F6FFFF93E2F8FF47C0 + EAFF3897C0FFD3DCDCFFF9EFE4FFF9EFE4FFF9EFE4FFA98462FF000000000000 + 000000000000000000000000000000000000000000000000000000000000AB86 + 63FFFFFEFDFFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0 + E6FFF9F0E6FFF9F0E6FFD4DEDEFF3F9CC1FF7AE7FCFFA7F1FFFFB7F3FFFF8BE1 + F9FF47C3ECFF3898C0FFD3DDDDFFF9F0E6FFF9F0E6FFAB8663FF000000000000 + 000000000000000000000000000000000000000000000000000000000000AD88 + 65FFFFFEFEFFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFD5DEDEFF3E9CC1FF7CE8FCFF9FF0FFFFA9F1 + FFFF82E1F9FF47C6EEFF3799C0FFD3DDDEFFFAF0E7FFAD8865FF000000000000 + 000000000000000000000000000000000000000000000000000000000000AE89 + 66FFFFFFFFFFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1 + E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFD5DFE0FF3E9CC2FF7FE9FBFF96EF + FFFF9CEEFFFF78E0F9FF46C9EFFF3598C1FFD3DEE0FFAE8966FF000000000000 + 000000000000000000000000000000000000000000000000000000000000B08B + 67FFFFFFFFFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFD6E1E2FF3D9CC2FF81E9 + FBFF8FEDFEFF8EECFEFF6FDFFAFF46CBF1FF3498C1FF968A74FF000000000000 + 000000000000000000000000000000000000000000000000000000000000B28D + 68FFFFFFFFFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4 + ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFD6E1E3FF3D9C + C2FF84EBFBFF88ECFEFF7FE9FEFF66DFFBFF46CEF3FF2F92B8FF1C82B02D0000 + 000000000000000000000000000000000000000000000000000000000000B48E + 6AFFFFFFFFFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFD6E2 + E4FF3C9BC2FF86EBFBFF80EBFEFF72E6FEFF5EDEFBFF45D1F5FF2491BDEF1C82 + B02D00000000000000000000000000000000000000000000000000000000B590 + 6BFFFFFFFFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFD7E2E5FF3C9BC2FF8AECFBFF78E9FEFF64E4FEFF4ED5F5FF3BABCFFF766A + 5ECF71604F2D000000000000000000000000000000000000000000000000B792 + 6CFFFFFFFFFFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7 + F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7 + F1FFFCF7F1FFD7E4E7FF3B9AC1FF8DECFBFF67DEF7FF3FA9CCFFAAAAA6FCB7A8 + 9DFF776559F3423670420000000000000000000000000000000000000000B993 + 6EFFFFFFFFFFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFF9F4EDFFE3D0BDFFB7B4A5FF3897BDFF5EB7D1FFC6C9C9FFDFD8D2FFC9BC + B3FF938690FF0F0F9CEE0B0B992D00000000000000000000000000000000BB95 + 6FFFFFFFFFFFFDF9F4FFFDF9F4FFFDF9F4FFFDF9F4FFFDF9F4FFFDF9F4FFFDF9 + F4FFFDF9F4FFFDF9F4FFFDF9F4FFFDF9F4FFFDF9F4FFFDF9F4FFFDF9F4FFECDE + CFFFCBAB8BFFC7A582FFC7A582FFABA08AFF857465FFB8AA9EFFE3DDD8FFC4BB + BCFF3338DEFF181BD4FF0D0D9FED0B0B992D000000000000000000000000BC97 + 70FFFFFFFFFFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFFFF + FFFFF7F3EEFFEFE6DCFFE7D9CAFFDFCCB9FFC8B29BFF79665AFE978992FF5D67 + E4FF444CE7FF3035E3FF181AD2FF0C0D99E5000000000000000000000000BE98 + 71FFFFFFFFFFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFA + F8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFF7F3 + EEFFEFE6DCFFE7D9CAFFDFCCB9FFD9C2ABFFBF9871D259496D4D10109BEE353B + D9FF5964EAFF444CE7FF1F22C0FF0C0D99AC000000000000000000000000BF99 + 72FFFFFFFFFFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFC + F9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFEFE6 + DCFFE7D9CAFFDFCCB9FFDAC2ABFFBF9972CBBF996614000000000C0C942B0E0F + 9FED3339D5FF343AC4FF0D0D99B200008006000000000000000000000000BF99 + 72FFFFFFFFFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFE7D9 + CAFFDFCCB9FFDAC2ABFFC09972C5BF956A0C0000000000000000000000000C0C + 942B0C0E99E20C0E99A80000800600000000000000000000000000000000BF99 + 72FFFFFFFFFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFE + FDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFDFCC + B9FFD9C2AAFFC09972C5BF956A0C000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BF99 + 72FFFFFFFFFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFF + FEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFDFFD8C0 + A7FFC09972C5BF956A0C00000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000BF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72C3BF956A0C0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFC000 + 007FC000007FC000007FC000007FC000007FC000007FC000007FC000007FC000 + 007FC000007FC000007FC000007FC000007FC000007FC000007FC000003FC000 + 001FC000000FC0000007C0000003C0000001C0000001C0000001C0000081C000 + 01C3C00003FFC00007FFC0000FFFFFFFFFFFFFFFFFFF28000000180000003000 + 0000010020000000000060090000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF00000000000000000000000000000000000000000000 + 00009A7657FFFBF3ECFFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FF9A7657FF00000000000000000000000000000000000000000000 + 00009B7758FFFBF5EEFFF6E7D7FFF6E7D7FF696D72FF7E8186FFDFD4C9FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FF9B7758FF00000000000000000000000000000000000000000000 + 00009D795AFFFCF6F0FFF7E8D9FFF7E8D9FF7C7F84FF292626FF65778AFFA5BA + CEFFD4D4D4FFF6E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FF9D795AFF00000000000000000000000000000000000000000000 + 0000A07B5BFFFDF7F2FFF7E9DBFFF7E9DBFFE3D8CEFF5B6E80FFB5D4F1FF9BBE + DFFF89AED2FF67A2C4FFDEDDD7FFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFA07B5BFF00000000000000000000000000000000000000000000 + 0000A27E5DFFFDF9F4FFF8EBDEFFF8EBDEFFF8EBDEFF8DA2B7FF95B7D6FFB5D4 + F1FF9FC3E3FF3EA0CCFF3D96BDFFDFDFD9FFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFFF8EBDEFFA27E5DFF00000000000000000000000000000000000000000000 + 0000A4805FFFFDFAF6FFF8ECE0FFF8ECE0FFF8ECE0FFD1D2D2FF7499BBFF86BA + DAFF92C9E0FF9ADDF3FF43BAE4FF3C96BEFFDFE0DBFFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFA4805FFF00000000000000000000000000000000000000000000 + 0000A78260FFFEFBF8FFF9EDE2FFF9EDE2FFF9EDE2FFF8EDE2FF578EB2FF41AB + CFFFA4F3FEFFD9FBFFFF8EDFF5FF3EBCE7FF3B97BEFFE0E1DDFFF9EDE2FFF9ED + E2FFF9EDE2FFA78260FF00000000000000000000000000000000000000000000 + 0000A98462FFFEFCF9FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFE0E3DEFF3E9A + BFFF55E2F8FF99F1FEFFC3F7FFFF80DFF6FF39C0E9FF3A98BEFFE0E3DEFFF9EF + E4FFF9EFE4FFA98462FF00000000000000000000000000000000000000000000 + 0000AB8664FFFFFDFBFFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFE0E4 + E0FF3F9ABFFF58E1F7FF8EEFFDFFADF4FFFF71DFF7FF34C3EBFF3998BEFFE0E4 + E0FFFAF0E6FFAB8664FF00000000000000000000000000000000000000000000 + 0000AE8965FFFFFDFCFFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFE0E5E2FF3E9AC0FF5BE1F6FF84EEFDFF96F1FFFF62DDF8FF2FC6EDFF3897 + BFFFE0E5E2FFAE8965FF00000000000000000000000000000000000000000000 + 0000B08B67FFFFFEFDFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFE1E6E5FF3E9AC0FF5FE2F5FF7AECFDFF7FEEFEFF54DDF9FF2ACA + EFFF3797BFFF9F8A70FF00000000000000000000000000000000000000000000 + 0000B28D69FFFFFFFEFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFE1E7E6FF3D9AC0FF62E2F5FF6EEAFCFF69EBFEFF45DD + FAFF26CCF1FF2F8DB1FF1A80B31E000000000000000000000000000000000000 + 0000B58F6AFFFFFFFFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5 + EFFFFBF5EFFFFBF5EFFFFBF5EFFFE1E8E8FF3D99BFFF65E2F4FF64E8FBFF53E7 + FEFF37DDFAFF21CFF4FF1E8BB9E51A80B31E0000000000000000000000000000 + 0000B7916CFFFFFFFFFFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFE2E9EAFF3C99BFFF69E2F3FF59E7 + FBFF3CE4FEFF27D4F5FF34A7C6FD756457D36F5E4D1E00000000000000000000 + 0000B9946EFFFFFFFFFFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFEDE0D2FFBBAE99FF3690B4FF6CE2 + F2FF49DBF3FF40A6C4FFBAB3ACFFB1A297FF5E5065E30909991E000000000000 + 0000BC9670FFFFFFFFFFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDFDFCFFF4EDE7FFD2D4CEFF3895 + BAFF57AFC3FFD3D1CEFFDFD8D2FFB1A3A1FF2121C1FF0C0D9CE30909991E0000 + 0000BE9871FFFFFFFFFFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFF4EDE7FFEADED1FFE1CFBCFFC3BB + ACFF806C5AF8B2A398FFD0C8C5FF4E55DDFF2F34E3FF1718D0FF0D0E9ADE0000 + 0000BF9972FFFFFFFFFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFEADED1FFE1CFBCFFDAC3ABFFC099 + 72C58B6F592E5E4F66E43538C4FF5863EAFF444CE7FF2528CEFF0C0D99AF0000 + 0000BF9972FFFFFFFFFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFE1CFBCFFD9C2ABFFC09972C5BF95 + 6A0C000000000909991E0D0F9CE33137D4FF424AD2FF0E0E9CB6000080060000 + 0000BF9972FFFFFFFFFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFDFFD8C0A7FFC09972C5BF956A0C0000 + 000000000000000000000909991E0D0E9ADB0C0D99AC00008006000000000000 + 0000BF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972C3BF956A0C000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF0080001F0080001F0080001F0080001F0080001F0080001F0080001F008000 + 1F0080001F0080001F0080001F0080001F0080000F0080000700800003008000 + 0100800000008000000080000000800040008000E1008001FF00FFFFFF002800 + 0000140000002800000001002000000000009006000000000000000000000000 + 0000000000009A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF000000000000000000000000000000009A7657FFFBF3ECFFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF9A7657FF00000000000000000000 + 0000000000009B7758FFFBF5EEFFF6E7D7FFF6E7D7FFF6E7D7FF686C72FF8184 + 89FFE9DED2FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FF9B7758FF000000000000000000000000000000009D795AFFFCF6F0FFF7E8 + D9FFF7E8D9FFF7E8D9FF7B7F83FF677481FF92B4D6FFA5BACEFFC0CDCFFFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FF9D795AFF00000000000000000000 + 000000000000A07B5BFFFDF7F2FFF7E9DBFFF7E9DBFFF7E9DBFFE9DFD4FF82A4 + C4FFB5D4F1FF9BBEDFFF459DC6FFB7CBCFFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFA07B5BFF00000000000000000000000000000000A27E5DFFFDF9F4FFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFF8DA2B8FF90B7D6FF8AC3DCFF75CEEDFF49AF + D5FFB7CCD1FFF8EBDEFFF8EBDEFFF8EBDEFFA27E5DFF00000000000000000000 + 000000000000A4805FFFFDFAF6FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFBECB + D0FF459EC3FF83EEFDFFD4FAFFFF6CD2F0FF41B0D6FFB7CDD3FFF8ECE0FFF8EC + E0FFA4805FFF00000000000000000000000000000000A78260FFFEFBF8FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFB8CED4FF52C2DEFF7DECFDFFB8F6 + FFFF5ED4F2FF3BB1D8FFB8CED4FFF9EDE2FFA78260FF00000000000000000000 + 000000000000A98462FFFEFCF9FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EF + E4FFF9EFE4FFB8CFD5FF51C1DEFF77EBFCFF9CF2FFFF4FD5F5FF33B3D8FFB8CF + D5FFA98462FF00000000000000000000000000000000AB8664FFFFFDFBFFFAF0 + E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFB9D0D7FF4FC0 + DDFF71EAFBFF7FEEFEFF42D7F6FF2CB4DAFF81857BFF00000000000000000000 + 000000000000AE8965FFFFFDFCFFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFB9D0D8FF4CC0DDFF6AE9FAFF63EAFEFF35D8 + F8FF25B5DBFF1881B14B000000000000000000000000B08B67FFFFFEFDFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFB9D2DAFF4ABFDCFF65E7FAFF47E6FEFF27D9FAFF25A8CCF9696257490000 + 000000000000B28D69FFFFFFFEFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFB7CED5FF49BFDBFF5FE6 + F8FF35B7D5FFA6A7A4FC8E7E71FD312B7E5300000000B58F6AFFFFFFFFFFFBF5 + EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5 + EFFFE9D9C8FFCBAB8BFF969D93FF48AECAFFB8BBB9FFDFD7D2FF7E759DFF0D0E + B2FC070E994BB7916CFFFFFFFFFFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFBF9F7FFEFE6DCFFE3D3C2FFB8A4 + 92FF8D7D70FF9890ACFF444CE7FF282DE2FF0C0DA4E9B9946EFFFFFFFFFFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFEFE6DCFFE3D3C2FFD8C1A9FFB9946DD2453A75601619B3FC505AE9FF292E + C5FD0D0D984FBC9670FFFFFFFFFFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFE3D3C2FFD8C1A9FFBC966FC5B692 + 6D0E00000000070E994B1014A6EA0D0D984F00000000BE9871FFFFFFFFFFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F6FFD7BFA6FFBE9771C5AA956A0C000000000000000000000000000000000000 + 000000000000BF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972C3BF956A0C000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000F0000000F0000000F0000000F0000000F0000000F0000000 + F0000000F0000000F0000000F000000070000000300000001000000000000000 + 000000000000000110000003F0000007F000FFFFF00028000000100000002000 + 0000010020000000000040040000000000000000000000000000000000009A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF000000000000000000000000000000009B77 + 58FFFDF7F2FFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFF9B7758FF000000000000000000000000000000009D78 + 59FFFDF8F4FFF7EADCFFC4BDB6FF63676CFFC8C8C8FFF6EADCFFF7EADCFFF7EA + DCFFF7EADCFFF7EADCFF9D7859FF000000000000000000000000000000009E7A + 5AFFFDF9F6FFF8EBDFFFF3E7DBFF485869FFB4D3F0FF97B8D6FF99BDCDFFF8EB + DFFFF8EBDFFFF8EBDFFF9E7A5AFF00000000000000000000000000000000A07C + 5BFFFEFAF7FFF9EDE2FFF9EDE2FFA6B5C4FF82A4C6FF90C3E2FF4FB4DBFFA8C6 + D0FFF9EDE2FFF9EDE2FFA07C5BFF00000000000000000000000000000000A27D + 5DFFFEFCF9FFF9EFE4FFF9EFE4FFD9DBDAFF4A90B6FFB9F4FDFFA0E4F7FF4ABB + E1FFA9C8D2FFF9EFE4FFA27D5DFF00000000000000000000000000000000A47F + 5EFFFEFCFAFFFAF0E7FFFAF0E7FFFAF0E7FF98C2D2FF5FDAF1FFA6F3FEFF88E3 + F8FF40BDE3FFAAC9D4FFA47F5EFF00000000000000000000000000000000A581 + 5FFFFFFDFBFFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FF97C3D3FF5EDAF0FF8FF0 + FEFF6FE1F9FF37C0E5FF74827DFF00000000000000000000000000000000A782 + 61FFFFFEFDFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFF97C3D4FF5FD9 + EFFF7AEDFDFF57E0FAFF2EC1E6FF1D84B24F000000000000000000000000A984 + 62FFFFFEFDFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFF95C3 + D5FF5ED8EEFF61E9FDFF3DDFFBFF23C2E7FE1B80AE4C0000000000000000AB86 + 63FFFFFFFEFFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFE5D2 + C0FF799B9FFF61DCEFFF46E5FDFF2FB8D7FF8C847EEB5C4E5F5B00000000AD88 + 65FFFFFFFFFFFCF8F4FFFCF8F4FFFCF8F4FFFCF8F4FFFCF8F4FFFCF8F4FFFFFF + FFFFF4EEE8FF7FAEBCFF57BBD0FFC3C8C8FFC2B6ADFF211FA8FE0A0E994BAE89 + 66FFFFFFFFFFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFF4EE + E8FFDFCEBDFFAF8966CB74655C8DA69891FC6D70D0FF3136E4FF0D0EAAEDB08B + 67FFFFFFFFFFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF8FFDECC + BBFFB08B66C5AA80550C000000001818918D2F34CFFF3137C5FA0D0D993CB28D + 68FFB28D68FFB28D68FFB28D68FFB28D68FFB28D68FFB28D68FFB28D68FFB38D + 68C5AA80550C0000000000000000000000000B0E9971090E9638000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000000F + 0000000F0000000F0000000F0000000F0000000F0000000F0000000F00000007 + 0000000300000001000000000000000000000010000000390000FFFF0000} KeyPreview = True OldCreateOrder = False OnActivate = FormActivate @@ -35,6 +1380,9 @@ object EditorForm: TEditorForm object TBXItem2: TTBXItem Action = SaveAction end + object TBXItem1: TTBXItem + Action = SaveAllAction + end object TBXItem16: TTBXItem Action = ReloadAction end @@ -145,7 +1493,7 @@ object EditorForm: TEditorForm Images = EditorImages OnExecute = EditorActionsExecute OnUpdate = EditorActionsUpdate - Left = 480 + Left = 464 Top = 56 object SaveAction: TAction Caption = '&Save' @@ -155,6 +1503,11 @@ object EditorForm: TEditorForm 'F2') ShortCut = 16467 end + object SaveAllAction: TAction + Caption = 'Save &All' + ImageIndex = 15 + ShortCut = 24659 + end object EditCut: TEditCut Caption = 'Cu&t' Hint = 'Cut|Cut the selection and put it on the Clipboard' @@ -1894,14 +3247,118 @@ object EditorForm: TEditorForm 02CB835C0534C9F5DEA2803D380D800185E8B5160C4C4CE1402536401979202D 0854B859E18960182C77A21840090000F3B037F05FC021570000000049454E44 AE426082} + end + item + Background = clWindow + Name = 'Save All' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000019C4944415478DA63948F5D7F + 949181C18A8108F09F81E1C8C3C581B6C8628C0AB1EBFF7B7BFB329CBB7C8BE1 + EFBF3F0CFFFEFE0562080DE143D8F6B6B60C3B766C6578B0389011C3004F4F1F + 864E54710C50BCE62FC3EE5DDBB01BE0E6E1CDD0EE8FDF8092B57F18F6EFD981 + DD0017372F86665F8878C684E30C17EFBE232648C0610236C0C9C59321DF8991 + 41908B81C1AE601B0329610236C0DED983E1E7AF3F60534F1CDEC3404A98800D + B0757467F80135E0F4D1BD0CA48409D8006B7B3786EF3F21069C3BB18F01394C + 7081F2757F180EEDDF0931C0C2D6056EC0C553071890C3041B78FF8D81A16BE7 + 1F86A3077731300253E21C0141D16419254D06464646862B670E323800C304E6 + 257C00145E40773630C9C7EACF0232926112C861820F80C20BC3A3E861323B9E + 9741881BA2ECE7AFDF0C779F7D61C89CFF9241445C0A1C5E580D400E930D3902 + 0C56D597190E3468327CF9FA1D8C23A6BD641093940587178601E03011124B96 + 51D40087C9E63C41068BAA4B0CDBCB95183E430D489AFF81415442161C5E58E2 + 0A354CFC555E61A8D878470C4C839232009672EE9BF0A80E8F0000000049454E + 44AE426082} end> - Left = 536 + Left = 552 Top = 56 Bitmap = {} end object EditorPopup: TTBXPopupMenu Images = EditorImages - Left = 480 + Left = 464 Top = 136 object Undo1: TTBXItem Action = EditUndo @@ -1948,4 +3405,5902 @@ object EditorForm: TEditorForm Action = PreferencesAction end end + object EditorImages120: TPngImageList + Height = 20 + Width = 20 + PngImages = < + item + Background = clWindow + Name = 'Save file' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000024F4944415478DAADD54D68D3 + 601807F07F8CCB56C7409D7632E7C7C083070F0A1E549475B6EBD6AEED687107 + 0F2D7811BD549922A2271141B732283B2982A09E74ECC3A3A5ED563BEBD0B959 + 1C5236C48B0845C7D6F423499BD6E4AD6D131131730FBC3CC9FB3CFC785E1212 + AA542A61238392C1FD9E89F71470E43FADC49727CE83046CF74C941C8E3E8862 + 11F38B4B288A228AC5A2B444948A22C97FDC93EEBB8C46A205022FB126702D55 + D06E77E091EF0A7EBC1ED63456F38901B82F0F21180CA8419BCD0E212F62B87F + B32670E07981E4A970500D5AAD325880EF8C36F0EA68198C4C87D4A0C56A0327 + 1430E8D2065E1B2B83D148082981AF81DD965EE4F802EE3A694DE0F57191E458 + 34AC06CD3DBDC87279DCE9D306DE9C2C83B3335348E515A0C96C4546022F76D0 + 68DDFA6F589205464265F05D6C5A0D1ABBAC48E7044DD329636E36025609769A + 2C60B3EB0717DEBE528306A305A90CBF6E303E1755831DA77BB09AAE81F73D4D + D03751486739642A2B27671EC935E97D0DD368D6B756FB17E767D4E0A9CE6EAC + B25CB5E185771B8EDF8863E7AE3DF03B7902C938C70BD8D2C0E0D2339ED42AF1 + 692106B6A0004F1ACC5849D5C0D10B8D30DC4A60474B1B06ADE95FD371D035D4 + 4B8BC1F9C72CA95522117F83B402E48F1E3330694EAC363C3DC7C072EFB374AC + 36DC36AD108C61EA0826A3EE07DF49AD124B1F65502883FB3CE35E9DAED1BFBB + FD10EA987AD2F0F06C092EFF5772ED73D1A0699A1CB53261FFC8376C5780CB4A + 90A228EC758F7937811A926A8CDCD07720F9D7A73AB9ACFF7DEB83F4813D4C6D + F42FE0274A7D769EC6929E170000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Cut' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003254944415478DAA5947F4853 + 5114C7CF9DA6B9AD347F244691AB94CAA242671645D32210CBDF1B59B9B23093 + 0AA592D06D450495B3D6B62C8659FD517FD5B686299169AB8D48B62CA2A41FAC + 442C4B1B896D7B9BBABDDBDDD0C8D29A75E07178EFDCEFE7DEF3E33E047E5A76 + 76EE49068391A6D5AA53C68B638C7D1EF903DBBC396FE1FAF5EB5ED96C369048 + 44E8BF81E474274E9F3E25D668B42012558ED16464E42CC118D99A9A345D7E03 + B3B2F2EE5DB97269834AA522C0AA1F9ACCCCBCE2B8B8F9172D164B8B4EA749F7 + 1BC8E717745FBD5A3F5B2E5780585C85783C5E606868C47981207F2F87C381EA + EAEA833A9DF69CDF40A170D797DA5A45A452A904A3D110C1624D5757541C4A8D + 8E8E86CACAAAEEDEDE4FF17ABDDEE537B0B0B0C807944A6BA0BBFB43D7B16392 + B914E502994C36D4DF6F5DADD3E9DA27D5142FB0A868476463632354541C068B + E51DD4D75FA60606BE661258EBA4BB2C106C75AC5A95C2DCB6AD001E3E34825A + ADEE713AED590D0D0D4F46D7FC0E4CDCC36407848800432E46104B422F010F49 + 78317D455BF839028A7282F731181E981D0E7A5373F3ADBE9F371D0B8CDD3995 + 1D15DA8A119A03404B68ECBE8F20E84878CCFC7D4CDA0AD2E295F040DF0ADEC1 + 6E6B7B14DCD1D131F46B1663802C6ED9190046AE837624437B9DD5FB8D995CB6 + 69D1EAFCDB83D43708EEBC41CDE3C432EDFDBD70E7A6EAEF37859D5C6E034CEF + B69B953746E28CB0B5E2D6597189BCAE1786B32121C1694B3796AC78F3588707 + FABA9E219A3E6C6F57EAC70792745951610E0FE054975961800507A6B3C20354 + 4153D9F9832E5B2965525C9EB1EEA891B32C6D0D01CA1182F744777218861307 + 4D17DE4E9072F975B2301D037E8E007101A31E8FC7BDC3F9F47C9B37EE05064C + 098AB0B68817FB32E296D5111769372B7227E8322F9095B49C8F818E07849F52 + D4E7BBD071F347E1D92987F440BB5FDB4D8AD2919A6F271BCBEC66F9CC89C7E6 + 0FC6E6966B88B31240890F98542604063AEE30C939FF04242521FF2C2C242926 + 90579A9CF01A11B2FE90F25F2C6177389B35AD9368B4A4D61F89F408EDF6AC1D + ADF1E481E09DCBFD490C1C5843644C1A63A9F3894233DED87C071D297EE88472 + 59210000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Copy' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000024B4944415478DA8D944D4F13 + 511486DF898998F81FFC0586BD1ADD1AE2C28058DB2952ACF8B570E347DBE917 + 9322418C69972D9D692D0AA5500591B8D110140D24868054D185D810A3491B5A + 2BB4759A16BDF623364EB9B9F82E6E2693739E39394FEE7084105C714F1330C3 + CDA7B3CAF1A8A8C9B1AA2A2CAE725CBE3B457C374EA2B8BD935B79F36A651DD1 + D9D87C265F6442EBC04B7726C9A0A9154AE937B5702BA760757D0363CFDF2E42 + 515AFC229F62022F0E4C10BFB90DD7FD2F7614B90C47B1BF690F92997C151A79 + B6B42A594E1D6402BBFB1F1249684756F9459D70792D89850F5FABCF6BF12F08 + 584F734CE0F9BE71225935B829A927FC99CB325595F7FBFA7BB6D0F277AF75A0 + B1374264BB1699FCB6AAC1E67B0A96ACD9A53826E7DED765D5815DAE7019C8C3 + 2CAB27CCFDC8603759B17812D19995379C523831D8A34B5581067184C80E1EE9 + 9C7A42A76F1AFF232BF6B90A7DE737B73657819DCE0744EEE9801078A96ADA4C + A7C092B5F0F11B963F25EAB264A19DAB023B1C4344767662235B523588DEC7A0 + C96ACCB1E6037832B388804D5303EA6DF7CA131A600FCDA90A33C90468B21A93 + 2F94CA1F9F42D0A1AD0179214824B10B89ADA2AAB0D73B019AACC698754760F2 + 441172F235A0CE2213BF684462530DBCE57D049A2C2AD4338E21515F036ACD12 + F56FB3B7691F68B21A734D7318827B0CF75D676B408EA3DE24E8ED21AA2C5A04 + CF28867B0D6C206F0D526535E66ADB21D83C618CF49D630375960055162D0E77 + 18E17E231B58D92D4D162D4ECF30466F77B381674C7EB22BE99F44062E707F00 + B5208AE80134F7E40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Paste' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002644944415478DA8DD4DD4F52 + 711807F0EF4F2F5C736DDDB63636FD03BC6E1ABDADE64C414423411D4B2F327B + 5D96882892ADD54D71D156F122B3A654D274D4BACB65A5B93527219936024C25 + 45F0A58460A29D880D497F1E0FCFCDEFB7F37C9FCF9E9DB31DC2300C0821D85A + 42A1B8352D8D5C8EF5EF5BAD3D2AA450716B3B50242ABD173BCE00EB450C93F6 + 2A76D7C7D0732983BA8AECF720389068E435BEA4C283B705FF4D62A0D6ECE1B3 + 8395D98CA0A60691E072BC516FF250E09DEAACF83931F209D34E176ABB3C6447 + F0F8A9522C789D9CEF69DAE5857F7621353030C30DCEB853048F9D14C33FF595 + 13F44ECE22E05BE4068F969560DE334E019DCC59F6AF0A0C2CAE440A2C1A4990 + 028F888B31E7FA420D99491D1E5E2DC6EA1AB315C39B11377ADF7DFEB0145ACD + FF876E020F8B84F8E11CA3C0A7E975D03594201CFD43F57E05C31875FB60E9B3 + 7F24E148A1AE551AD8000F09059899705043DD19E7A1578851AFEFDFF4BC4DCE + 4766463A7C4B218CBAE2A843AF28C9D900F982224C8FD929D0B2EB020CCA32AC + 84D7A9DED0B81736E75CFCFECD3D05A3B28C24C1C2427C77D8A8A1E799176168 + 92E09AA11F6C75308787177DC368574992605EC1094CDA47A870CFEE18A82AC7 + F2EF355630148942F3C00A534B7912CCCD2F80DB364C857BF75C82B1590A85F1 + 2D2BA890E6A1416B41875A9604F7F278F8E99FA7C2AFF7A96068916131C8BE61 + 1CD576E391A62201660D0164FF76C1C1ECEB30A82BD16462DFF08A2417CABBCF + F0B8AD8A10B61F6CA22A9A3B18434B15021C1B2AB54FD07943CE0DCA9A4C8C5E + 2D877F25BA23A8D29AD175F33437286D6C679062996F5593BF925B6CE84CF607 + B50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Undo - internal editor' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003694944415478DAAD944B4C13 + 511486CFBC4A8BB5542814B176DAA284872060A24430A2468D0B234541130AA2 + 0B13772EDC6AC4BD7B4C8C0F2CA810530C314663D468828F800F900ACAA32D83 + 508BB68569693BD3B95E1B5B0445A3F124B39873CFF9EE3FF7FE67088410FCCF + 20E240625B13CDAE2EBA0C12D1EA6C35DF8917182A2FC9D12AD51E4412850482 + E538E506400F9CD6FD2F17C3BEB11240DD215B4EBA5633240811819FF5563AAD + 03CF584BD189A4244553E6CA2C658A5A0D344543281C82698F1B3CEE4FCFC5A8 + 788CBB76A0EF9740BDA573979E65EFEA561BE0F5CB1733A1D05C9F9E3556188C + 6B8024C99F3ECDEFF7C1FB776F8381807FA7D35AD3FD13D0D8D0D998BD36EF52 + 66960E701504833C68D2B5B1B519DCEC714F02DE0496299743E64A1DC8150A08 + 63B57DAF7AFC117EAED871DDEC5804B435E5E4979C5E91AA993F13FC38478660 + EA23771BA4E83920611080DC4C51E45953CEBAFC344D06F87D5E18ECEF6D7758 + CD071702EB6D57728B36367C53100F4992C0DED783C2417E3B6E7814CFA7D7B4 + 2B95C9B2EE82F56585497205BCEBEF45FE19AF9EB3567309A0A1A1F3C9BAD2F2 + 0A9A66169C15BE24F8607FC587037C99EBDA8181785E5F67DB919691795F6FCA + 05CFD438708EE146A7D57C655EE1E1AED182D20AE3621B0891300466BDF0D1F1 + FE0D56599C58AC3C43AFC9DE349B5BB8491EE4676074E875F358CBBEE3096076 + 63974795AAD588421844AC2A2284BD51213246008CE392094942F7C6DBAA6FFD + B8216BB1D9F34AB6E4854341181DEC6D73B454D52580ACA5235F22E97440E204 + CD0538C7A323A13F4D85E9C86DAF29B7541D9AE3811BEE6F19BB6A3E3C3F2904 + F1572366A8BB59969C92F63423CB00B3BECF30ED769DC40ACFFD13306BEFF964 + 46AD7DACD59936C86472989E724190FF52800D6EFF6B205BDF6E04C45C54A769 + 2B15CB5431177C9E743D7658ABB62EF0E12F8135EDB255246D6068948A48B280 + 0062374533D54AD50A8A9125C55CE09B9E8C08C25C89ABB5D6FE5BA0BEEE6639 + 4531F768864926081228FC63A019195034FDDDF4516C279F288862B5EB6A5557 + DC664B020D16DB0D8552554B92D47C928875C5BC89E77802A2D17A67DBFE873F + FA764920F6D8293C3567891810E16209101EC5A8240DE0976682F35D586CAD3F + 9CE11992B5141E0544B2B8CA8B592348107BB88EDA89A52E6C01F07FC557340C + D7E82CF8A4A20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete - internal editor' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003434944415478DAAD944B4C13 + 511486EF3C3AD34EA185528AA5BC232221517929DA5216BEA07561E2C210C256 + 4D8C2C8C0BA3D1C4A0AE4C64A12B5DB83021BA7253CAC305B405953E50880A06 + 48444402A5A54367DA69A733CE0C14294F179CDDBDF79CEF9E73EEF92FC4F33C + D84F8344200441D2A2DA74A60046F00E9EE7DA3D0EFBC85EC155E6A61618826E + 413C74DDEDB00D49AC245084A19872B0B8B422EFE7D4F7408CA28CDE0FBDE33B + C1AA1B2C6D6A755647516905343EE6A6193A54EE71F6CD48C02AD3B95C0C233E + 955654E6A5A5AB4184A6C0F8A87B968D0B50D7FB99CDB0DA06EBFD0C4DF68392 + B223201E8B8189317798A6C9329FAB774E02569B2C754A956AE8507925042388 + 1444854360727CF44782248D5E6FBF7F8D05D79A2D4F35D9FAB68292C38065E3 + 60F2DB48341AA14F6F29B9D6DC74594EA4BF164A4051542645AF848240287F84 + F687CD002CC614DAC297D93979AD070C4580E312607A628CA529EAA2D769B389 + FE2940A92FF5562BAE90BF2D2C2E27641826ED85827EF07B66724078BFB04E9F + 6FD5E6E44A81C2453C4D912D9E81AECE642BB600A5FE98ADA7504C66371496AA + 705C2EED2D0716251F75A6565ACFCD4C89D9DFF038EDCF36F6765BA068478DE7 + 2BE418DEAFCF2FD6E27222E56CE1CF2F408602F7BC8EAE879B1F6B47E0EA4C36 + 9A6418EE34141E5C3FA7A9150138EBF3386CD5DB8DD2AE19E218DEA7D5E9F538 + AE48390BF8E70145ADDCF50CD81EFF17B0CAD85487E1982D334BA74165D87A66 + A28F8248938296030B80895257DC03F617BB026B1A2C6711047D97A1D111C8DA + 3C32511A90C125A7E045A6A9D4564299BE065DE4D958B4D9EDB0BFD91658536F + B984A0B24E55864606C3B0E4108F318024839F237EAA7E750E8B5E2914CAE624 + 34B4BCC4C6E3CC059FB3BB2705586B6E3C8EA0F84765BA1A4A669B6059512DD3 + 5C983AB151293566CB730C975F5B2D9F03E19510CD27B8B3294A11B58CA2F8B0 + 82200C308C482A88D0F41C97889EDC4ECB35F5D6472886DE11478AE778108984 + 9701C5950F0FDBE6D74B3E56D75824C31197302A0636C6041896357F19ECF9BA + CB6F731381902782A2A018C3D0C2E5FF7E9B64992214C5E00E8E83DA7D2E9B17 + EC61C223B6423CB8CD71DC55AFABDBB55EF27EDABE03FF027581CEE8D9D93AB9 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select all log entries' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002434944415478DA63FCFFFF3F + 03350123C8C088F2D954317545672A23DCC085AD291419165F3D07D5C0052DC9 + 141998503317D5C0F968067EFDFE9361DD9EB30C976E3D6178FBE10B584C889F + 9B4157558621C4CD84819B931D457D22BA81F39A1106FEFAFD97A16DF6668647 + CFDF62758DA4A80043537620033333135C2CA916CDC0B94D08030F9CBEC1B078 + F351305B5F5D8EC1DA5015ECE2CD072E30BCFB08716D458A0F83AA9C385C4F72 + 1D9A81731A93E0928F5EBC63B87EEF19C3B3571F18627D2C19585898C1E2FB4F + 5D6758BAF538989D16EAC860A6A308D793523F0FD5C05948062283BF7FFF313C + 7DF59EE1E683E70C272FDE85074372B03D83B99E325C5D1ABA81331B500DBC71 + FF39C39EE357186E005DFAFBCF5F0C8B9282500D4C6F403370463DC2C05397EF + 32CC5B7710CC66057A5743518A415D5192E1FB8F5F0C5B0F5D807831D891C104 + C9CB198D68064EAF4F844B364FDF000CBFF760C3EAB38318840578C0E2C7CEDF + 6658BCE908D4CB0E28066636CE4735705A1DC2C0ECE6050C20717E5E2E86B682 + 7006464688F8FCF507194E5FBE074977402F9BEA28C1F56435A11938B5166160 + D3F4750C2FDF7C04B3AD0CD518B45564182EDE7CC470EAD21DB89A082F2B065B + 63752447A0193805C9C0D357EE312C5C7F102322F435E4192EDE7808669BEBAB + 30C4FAD9C2E572D00D9C5C9380A219940E0F9DB9CEF00E98ED440479194C7595 + 190C8006EE3C7289E1FBCF5F0C1C6CAC0C1EB6FA70F5B92D0B500D9C589DC040 + 09C86F4533704215650616B4A119489169500037909A00004AD749E85EF3442B + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Display preferences window' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004724944415478DA8D546B5054 + 65187ECE2EEC9E65592E0B044BE2858B601803C5188C34522225D6B848748192 + ED3A6A390538E394D93845303A013398501ACD02EAA416CB74D11F6AA3604419 + 0992AEC465613194CBB2C02E7BBFF49E3366C3E8A067E6CC7C67BEEF3CDFFB5C + DE97C13D9E5C55A99A018A68E9F1C25BAF5157BDB5D07966A14DA5EABDA000A9 + CCF875CD1EB85C6E146DDFED1A738CC9CEA9D5B6FB01146C2A2AF91C0C9343EB + DD70B9CF40282C5D9F95519ABF711D7D7A505DD7842B7F0F7CE2B633353E626F + 2E0366971738A25157EEBA0390C06AB3D6A46D2DC85B8F438735E8EAB986570B + 94484E5C0EBBD305BBC38529E3345A7FED44C7C56EB75C1E2C7C342509BF7776 + 61D23055FE1FE8FF80AA5243536D997CCE6A8754C2F23B165A5FEDD3E3C6B891 + 28BB40FC11209362C2300D815008BBDD819B631368BDD0AE6F56572D990798AB + 2A29C9599B515990978319D31C86FF19477BA7168B1F7C0041323F384943C3B4 + 0966B31521F200783C1ED808F07C5B3B8CD3D36FB43454D7CFAFB070FBA240B9 + 7CE4C0BEF7D1ADD5E1CFBF06F0447A129C4497FBD14AAFCDEE84D566C79CC50E + AFD783A91913DA5A2FB8DD2E73A4A6E98BF1DB80992A151BEC0D292FDDF67271 + 5CCC3234359FC5862757C1E170A2B77F08977AB4549117B1B42793F9939E4E04 + 127583D104AD568B419DBE6C8A317CCAB9CF90768D62916F616ACA4A81EAC567 + D1D33B0CE38C19D15111D0F6E9705C73F206DDB99332C83210543C9E91162291 + F8213C3488AA044CB3B3F8ED8F2E8C4F4E3A3D6E4F2307E83D76682F2C3C151B + 7E6EEF4694220CACD817C734A730383CF25C4B43D577B7747E2D3242519F929C + 84E0407F8404C9486F0BFCA52C99254145D5410F0F78F4CB0A98E62C983559D1 + 71E91A22E876A18F102D3F9E865E7F7D537363B5E656125E5128221A1F4B7D04 + 72020B2573383632A9044174C147E53520C0926FFDA5D2BC952BE2F0F4DAD5D0 + 8F1AE0703AE147D119D0E971E65CDB1051DB21F0C2C7CB30D5ABD35729164546 + 60595438DCA4ABC56AC1F95F2EA27F7018369BE3086F4AEEE6B7432060CBD6AD + 49DF92F8503C4646278886847777487F1DBA213D048C0031D14BC18189595FA4 + 2527A07F7814DD97AFE26C6BC7670EA7B5FCA7A375C6DBB1D950501C2DF3170F + 143EAFA4CC79A8038159B38562E2800F8558E4EBC3BF1C58EAC371189B9CE6C7 + C5BEFDF530BB4C8A93EADA9BF372A82C2AD9AA080FABCDCECAE43B402010F03A + 71DDC265514C2685C903896A04C9324E7A5B78A70F9FF801BD7DBACDCDEACAA6 + F99D52543AB1F199EC50966579AAE6391B4F9B3388EB0CB148C46BCB552CA12A + 2562319F53B148880FCBF7DFD97A341CBE22075F8F8F8F4577F715AAC08484E5 + B15891100B3F3F0958912F44E47CBF6E98372191CEBDA0CCC689EF4FD380B85C + D7DC50B5ED6EE3EB2089A7A43EDD03C6758A61443B62962EDE92939DC9E7928B + 51DFA0BEDA63F7560B58E4D3F8FA80D27D9CC0DEE106F03D07EC53F9C5F2E060 + D6B0F3DD37C910213EDE7BC033E61E97DEEF80BDEB4361E642ADE4D6D469DFD0 + DC7B69A1F3FF0258A409FFF54527050000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find text - internal editor' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003B64944415478DABD946D4C5B + 6514C7FFD78C8DB76D98516664152C7D856D5D81C2EA20B4B031276E61748953 + 74B244C52FC6E9C612CDE24B6262B265197EF0835F9C663A9798381775441771 + 32605018132A7DBB2D54FA7A7B5BDADE0277D2B1FAB451040B7E708927B979EE + 7DCE2FFFE79C73FFF752581252A9E206596A966CF5DA6CE6DA25F9CB6469FE3B + 9D30DA6C96727273F7AF1DEA1F82899AC7F51089C4181CE88375A41744709191 + 48E44C794D6381AAB21A06921F1FEAC1DD38BFD9E17004FE1FC157DFFD28D1F9 + D64BF0B36178FC215CB8DC8D0FDE6E5F645E7EA3F3DE9953EDD41C7F2795BFF4 + 4D0F8C0337CABAAE9C372D0A0A0482DCBCBCFC118A82042BC4BED663CB9EBB3E + EF5C09F32D2CCCEF48564A9594C81FDBB849D057B7FF08749AED181AB5C1ED76 + 613AE84738C840B5B31E1DED7A385D0CBEBCDA8BDCEC4C680977F5A76184585F + 8A991C37809F891E74386C5F53642E6D055B4ACE57D537FF67C1297A147C34F8 + 2679E3EF5352A9FC6C91BCE2F5AD6A6D9AA079F0DA4AEDE1C38F2F2E13F43A2D + E058CF459AB6B41241C5778A4AED132245799A60855A0399A810996BD7C0E3F5 + C3E363526BEB53CDCB0419CF2422BE896152A19AB4AC384D5E4807EE331289C4 + A7A4C236AAB8B83833636DD6ACA854FD805A5506B3DD8599190EFC2C079FD37A + 2F3ECFE7389DCE3B7FFA74BA48A67AB0BA52B9848B8199A231371B2F74B9AC5E + 52A164C79A8CECDBBA9617B07FB706D7078C60030CB84808E6E16ECCF39C8AA6 + E95F8442D9C3D939199E8643ED699CED760FE662D1BD76BBE5074A2C963D9BB3 + 71D38586834751AF51A2EF96092C1B402C320D7AEC26B890FF39BBDDFA99582C + 6FCCCCDDF07DE3A117535CFF8819012298E4264DC308075C2769DA7A2639C373 + F9858F1EDB73E019546E13C3306623208B181786CB36966CA793A6CDAF4924B2 + 8EBC02E1E97DFAB634CE3B6981D7F1EB2532C3A793B6F9B1B8B4AA5ED7F82414 + 25428C8C3BC01070361601E39E80D334749D803AE2D72F8452E5E13D4DFA342E + E477C33ED66F2207972505D9ED354DF9BB76D5A2A8508051B3130CCB92997088 + 8659980DD782C40E02D2C978597543699D6E771A37C34560ECEF5A88C7F95C6A + 9BB28AFB9D8FAD5FCD0EEBB2D6C78CA3860DCA0A8D8F8F451E5A8DCB5897351F + 0D07F2A896B6E309ADB60E7B6B55908AB6E0DB6E03DCBE60EA7AEFC411E88F9E + C0579F9C4D728C5AAD2E686AA846A9F811FC3C6884FD375F8A3BF5CA619C7CE7 + 1CA65C139B93E04D72C0CE7FF1EC0011D4B43C7FFC0AF9D91D58D5D88035ECBC + B595220EBFDF8F6459FC01390131E5FFD2BCED0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Replace text' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004034944415478DABD946D6C53 + 5518C79F73DADB97B55D295B1D1D19654CD992514C40B3D42D20513486146C71 + B8CC6D12705B5613A304351A3F10623411134562BB8DB891602426ECDE8E258E + F0E6D46E8BD38C55964640A06319DD345BE9FAB296F6DEE3D3E288B8D8E0176F + 72EF39F79EFFF9DDF3BC1278C0ABC6E16412932C4342FB782E1DF95F801B1D2D + 26795A66BC934A042FF677FFB1081445A8A60436300A7920A57B863C9DD77202 + ADCFEE5D4E35CA93385D8B0BB30C58050172C4CBBBF667800C600AD704602027 + 04768B92B479D8D33EF2AFC06A47DB0738540DF2EEAD384AD5DB9D5B400EE762 + 52BC404BF34212B0D78678F791ACD6EEFC10A18FE1CFB6E634B9B2B256A13219 + D40A2D2D9701B502854FD1774594D0993B2C553E221CBD92D13DE168DD44800A + F8F38225407303BF0FA7070D09DF331AE9F7C38441199A3B4E08B984CBCE4520 + A4D2666F5FE7CDAC4FEDCE1ADC7D164FA8BE0F686EE8D900404790EC2F8E9D9B + A6C026BD82AB396372CDB6B635A024D7EE0145D8EEED75F5DD0D52DB7BE84B9B + 577057FD03289CA494EC9418DB5F123B5B8FA21F10F87AE5934EADC1C0BA8090 + DA8CA90AC25DC6A80400D801C2C83246E0201EE245D49EBE0FB8BAD11396CBE5 + F9A954B2B93872DE2FA3D085E242044F02619F03237B4012DF072ADB22492050 + CA5A709B5C6262F7B0A7E3FC92B4296DF230B55A0DF178BC3770DCFE7C4923BF + 8E02E92322D8035FD9C71E34F1EF01D734F526F5CBF48A442209B185F8DB68CE + A66253D1B65BC1E027135F3AF6FD67A0B951183216165AD52A3544A35160E8A8 + B2B25218F5F9AEDF38B6A3ECEF95231112FAA9D735B9B8F90080BC48ABAD9044 + 31FCEAC242F63B59D520ECD269B55FAF287A08944A65F656A99470E5EA6F703B + 18B09852C31FA36E3D4A6F62A55870DE37C8BBEADA359AA7082527F03D88B711 + 2B6AE45624B26B310F79D30A933D0B55DD85CECECDC10DDF851E43F2927970CE + 6F85818174B5ADB99270DCB82634B3CEF1F3990109E0DDB648E46807606DEB74 + 171175280B2CB675E4A9969BA61F5D6FD1693479C02914703B1482D1311F5FE8 + EFAF93AD4AE47344F30863C482CDA1D33AFEDDCB0F4F4FB883F3511D9A2D6518 + 08D5E3512359E0EA4661B7D168ECD6EBF3211C9E875028743D9D4E9F52272784 + 82D4E543988BE598466358193FA2FCADA747CFBC619A9D7EB335125DB9242899 + 47493DBF8352DACC08FB9EA6C55381132FFCFA5703E8C98C8382AB36533955CF + BD94CFA9F5E12AFF70FDDAA9ABC78291A81E4F98C8683A75BA3D581CB19C0D16 + 5B563F06228C41A8DF686B51A938D96174FE2B5C3A5653F72DDF8529F14D301A + 7DC7A454AE0405E76544DA9B1368B5B554504E7E1CA7A5289CC29AFE023BCCE3 + 8C499EA60BDDBF10E0DCE88ACDB83E83B67ED43A1FFDEC4F8490B54442558F5D + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find next' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003D64944415478DABD946B4C93 + 6714C7FF6FA9C81003518A66C0EC5A286D19D0420B56611444194E1B049725C3 + CC929975F1CB3A8C1FE66E599669D846C696F9C1B8780DC6CC0C2F206623B04D + 5A576AC1D5527AA3B359EF948B56A0585ABAB7CD4450B2E83EEC246F9EE73DE7 + 3CBFE7DCF21058242C16A78F5C4A17A91466B3A16C91FD22B9D43E32477466B3 + B190DC841E6A88C78091D257EAC16064A15FA58469500112B8E0939DCDF61696 + 6E4BE30B4AA026EDFA9BD7119A0BACB35AADA3FF0FF0DD4F8F455A3F7E1B1EDF + 249C9E719CBDD88B6F3E912DF8BCF37EEBFC971FCA8899C06CCC7EBEE33A74AA + BEDC6B974F0E2F0069345A524A4AEA2041201BCB484D837CC9FFB5B6D6E5DCDC + E17090178D946032D99B92D7D294E53BDF4485281F37B566381C764C8C793039 + E6057F63250ECAEA61B37B71A14B81A4C4048849BFAE5F3418F7B9633E77F46A + 04A6EEEDB25ACD9708B22ED2B40CE6C9E2CADAFF0CFCCBA245E0DED821B2E347 + 08168BDDB2815DD4F49250FC04D0D0DFBD5C7A387AE2DC12A0CB6684DFE73C67 + B1181B4820E72A4720DECEE0143E012C128A90C34847423C154E97074EB737B6 + 36BC5EBB04E875DEC15DF79F1A3242219932E70BB22107F114C266E7402ADD1B + DB77747442A9BCF168C42391D3648452824EA727AC887F6E9AC1155284FC5C18 + 46EC989AF22330ED87DB669A9F0B0656D96CB6D9E8A12B573A1E1C5751E3A783 + 0464553484FC0E9CBFD00EB36E0033D373E976BBC9454698CDA3AE48BC5551B7 + 0F3BAB44F855A5836FD40BFFDD711834BD0806FC7C8BC5F2476666CEF367CE1C + 73369E98445E41212C463D2445C9D8C14F42DBE9EFD1D3DD5D3D3262FC99C8CA + CAD9B32A79EDD92DBB1A51292A80726018892B29281370418904A151AB0F3735 + C93F686EFE6A7F89A8E4A8F4F818B66CADC17C380CC3B00EF1A109EC2B5F8D09 + DBC029B95CDE18ADE1D7A9E92FCAB74ADE80202F0BEADB666C2F2FC2673F3A60 + 70CC2C5BCB28901A47411C85C0A8D78321BD0EF9A9F7477F182132A363D343E7 + 1657566CDB010E3313837A2B76D76C82E4B016BC928AD8A1878763DF3FFBC5BA + 703804AD560B87CBA588027DF9A5AFA66EDE5C860DE934680D36D4D78820F9FC + D9812E974343E41514FB1F04EEAF5E9C5273F3117CD71707AB2FF45429EB866E + E36526F0D3D5CE35449DF440442C2E4775191F2C46063A7BD508064360BCB01E + 3C2E03035A03043C2EA1E8BF35BB7E5DDACAAA8FD44B9A420D4DE2DBFDC51877 + 9AD1D5DD931105FE4E5EBAF15FE659D57EAA4554B7F7C0E543EFBD25D9DD628A + 8D8DC93084EABC24BC264A41DF0D0D79F1B099EC742E816714FA9EF6DFC85734 + 05F31199ADAD5EF5B8FD6F3269FF308E873E830000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Go to line number' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001D04944415478DA63FCFFFF3F + 03350123BA4066EF268A6CC03030A367E3FFE9C57E0CBFFE906E6EFEC4CD9806 + A6776DF83FA3D49FE1C7EF7F0CD5F30F1165506BA21D982E9880C5C0B4CE75FF + 679605327CFFF58F6417164CD8C8C0281FBB7E2FE37F06A13F7FFFC63F591E72 + 29B563EDFF59E5410C5F7FFE63A85B489C0B9BE2212E2C9CB08181512176FD7F + 1D3D03861BD7AEFEFEFDFB57958BF6BFEED915C10C5F7EFC25D9854530035DDD + BD18FEFCFAC970F9F24586BFDF5E336C6AF160E0E36663685C7C982883EA636D + A106AE4718C8CACCC4C00CC4F7EFDF637878FF36434DA436839B8914492E2C9E + B00ED54016287EF2E409C3D52B1718B6AC4F20CA20BE072FC07449FF5A4C173E + 7C709FE1C1BDDB0C65E15A0CEE24BAB0B47F0DC2C0BF7F7E335CBA7881E1D797 + 970C1B5BDC19B839D9183A961F25CAA08A486B5403F5F48D18AE5DBB0C8CE5DF + 4DF6CA5F9BE7D44431BCFBFA87E4582EEF5F05343066DD41600EE4FBCBF837F5 + F1E2903371F58BFFCFAE8D6678FBE50F43CF4AE25C58120E716145FF4ACC9C12 + 5BBBE8FFECBA1886375F7E93ECC2CA3E2C06C6D42C041A180B36B07FF531A20C + 2A0CB5821AB802D3C0E8EAF9FF67D5C591E5C2AABEE598064655CDA3AC3CA47A + 894D6D0301039ED955837712D10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open online documentation' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003AF4944415478DA7D945D4C5B + 6518C7FFE79C9E8F7EB30EA8742DEDB0B089012EE6E2ADD12B8D6616B28919BD + D0686262B22542D8B859B833738BE88D26BA4C0D6CF36B14D40BAFCC8C9746B3 + 39B78963D0D2524A0BF48B7E9DF6F4F89E3784D10F7CAE4E9EF7FFFCDEE7799F + E73C0C9AD973933AB773E004189C60C01C87AA76503FC3ACA9507F878AF950E4 + CE3C6E4D56EA43997A47A77FEE1506EA94D1DCF2A4B9A50D7AA3053A5EA46795 + 7209855C06D95402B96CEA51555147C3D707E7F7014EB21EFFC0FBBCA01FB7BB + BC2040EA954B052D186AB50A5E1061B4D8C0B22CF5AD871751960B1F04A7EF4C + 90F86A0DD0E30F5C24D98C3B3C4F81E374A42A20115D467A730D5D4F986035F2 + 5849E490CCA970788E426F3043512A88061F685913A8EFDC2EB0F3F4ECCBA2A4 + FFD1E9EDA330CD521B6B78C629E3C2E97E74D824EA53C92DBFDC8EE1FC177FC3 + EAEC234F0A0A8D2CDE45B954F405677C730C6D806BE0C1214FAF576F34EF3E80 + 5B8AE2CA9963F4FBD63F45C4330A9EEF95D066E6F0E7621267AF6D41940CF4BC + 90CF6275E9FE1269D411C6ED9F1DD41B2C37B532F6DAD4B005FD1E337EBA9DC3 + D4CF29EA6B37C8B871E630FDF67FBA8A68FAB13E1A5C20E0F410E3F1CFDD68ED + 700F9BAD076B809FBC6187D72EE0CDCF62886C95512AE6C1E623F8EDF20BF4FC + AD2BEB588ACBBBFA6C7A131B6BA1AF0930B0E0F0F4F6681DDC6B069185496211 + 4F5768A74BC920AEBEF72C06BA0EE05EA48477BF8CD5E8CB7209ABC1FB8B8C7B + 24907579FB4CDA28EC67A56408D3A3C7D07DC88C60A28CB1EB312432B5335D25 + 63157E74374F81CEAEA7FF1738F1921E2F1E77D012CF7E15453AAF3468346064 + F95E9E96DCEEEAEEE179615FE0AF17BAC191FB4E7D1C4434596EAAA99465C456 + 1E2ED1A6B4B4760C1B4CD67D8157DFE924F356C5DB9F47F6D5E4B7D3482656BF + A763234AC69B07DB5D4D858AA2A0BA1D86C47328E8DA20085253DD663C8C627E + FB24B3B359166C76579720368A8DA4DBF3E33D107916AF4DFD4B4A6E5830640A + 8A48C6C3C160B17C84FE7A9E91C0AB1CCF070EB43951DF1C93C4E187F34721EA + 18BCFED143AC6C941A9A914C4450A9C843A1E9C1D9DDE5E01E99BD2488FA318B + CDDE00B599780804184BC90DB0CCD6BA96E187A119DFA8E6AB595FEE91FE8B9C + 8E1F335B5B513FE8F5A60DF2766653EBEEE5D0CC5FE71AD6D7E34C0343C47B89 + 3CFE6192317404CCB2DC4E460A2A04A4FD39B25C5C26194E84AF0D7DB3379E69 + 7AFDC96F0597C0F93896F5918DA5AD1CC7CE499404FCA154AB81B0AC04F0DD29 + B93EF43F3EE490D8FC9504780000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Reload file' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000032F4944415478DAADD27D4C4D + 611C07F0EF75EB5EEF9590B761E30F1999B0F18FCDBC86349B92F5A250A879AB + 10A9DCBCE56529DC730B511449A834B3CCF2C7DD3584E9CDF23289DE6E756BB7 + 53DD73EECBE3DC43976751637E676767E7799EDFE7FC9EF37B248410FCCF90F4 + 8091179FFC8DAC3698E0C1842F627B067A1C1B1891564292B62E82C168E953B2 + AEBEA77E87D2EA060D676959CE84FBB0BF05F7A81E93B3DB17A38BEF1BB44669 + 753D1ADB3AA1A9FCAA31129D88F60277298B494AF832B09CB95FB0A9B50375AD + 2C1A752CD415B5A59C81F7488B5CDD42813BCE3D24E777AE80BE9B0689703577 + 36C15E6A0FA781CEE298BD94A0ACEE033876281A04585D56532EE4BA516078F2 + 03A2DCBD12ED5D26F1BD83D723EDD96914BDBD0DD6A2879D6C00C63A4D80B76B + 30869129603E45C0CB9C21AEFDD2D002215742816149F78932C2136D9D26B1A2 + 2D77D660B8DC012E0EE3F099FD800643AD804A211560A9F0B47E20616209BA38 + 238A359560223C6970DB9902C2447A4127807B1F0423C03D0C6E63E6D9B65DF8 + 311B4C450224F64404AD70E1C22AB0DD3C12331F2135CA8B06434FDD23AAA8B5 + 68618DD0753763C4A051D4BFACD2BD42CC8B2098A4BCADD2BCF9E5E25C6C6A11 + 2EEE5B4B832127F2886AFF3A3477187B77B5AB0E61EA95300DE06C5B96CBE4C8 + 722F15E7E398025C3AB08E06371FCB25AA68EFDF82FD459C321FE9313E34187C + 2487A41E580FADDE88A037F3C0F11CCCBC59B82DB033CB91B4201FE3874CFE03 + 781757637D693048914D54073788A0FFCB59226412403BB30C71B3D3E1EA3487 + 42DA0DAD70FC712EE32FE42123DE8F0603E3AF13558C9F08FA3D9F2982D60A85 + 2E20745A3C964EF4F9D920ED2BE4942991B024FD3B783E17D7140134E87F2893 + A80E05A049CFC3FFE90CA13A8B6DCBD64AC7C82761D2D069A86FAF819E6B43F2 + AA02380F7611730F9FBB85ACA31B69D0EFE015C2C46E1440233669E6226A3A83 + 6ADD6B14BDCF44B3BE5E84656410964CF546A07B1486C91C6D152B526E20FBF8 + 261ADC107D9930714122A8357CC5E881136C096D062D7813879143C6412A91F6 + 6A8A22391B3713B7D0A0EFFE4B44191B0CED3F1C1B457216724E86F406FF5AFA + 257AC06F0510C5E8A392F3640000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Redo' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000035B4944415478DAAD94594C13 + 511486CFED7466BA514A905068A1AD46414594221A13173426C61817440D4231 + 6AF4C5F8E6A31A8D89AF3E69E28351B4154C108A4F1A1F4CDCE2821B55AC11EA + 74A8152C52595A2CB37A476D1D5213977893C9DCC93DFF37E79C7BCE41B22CC3 + FF5C280D4408651DDA1BFD4B088DBC126F0B650413B2083D115EB80EED3BB8B4 + 8DC3D3B101ABEB595F609F2C1F937E09C4466E049AB385D6A29AFC190540D33A + E0051EC6C7C6E0433432CE09DCD1016FE0B4A3B9B2D66432DF20B524393A1C77 + 316D5BC25940A7C75FAB379A6E96CFAB20CDE6DC2CAF25490226D4079101F6BE + 4E4757B96B9619C24C3F44D981156C6BDDBD69C0D2C68E997A83E165A57BA981 + A228F8F265123E0E46219998009D4E0F85453630E598BFD90FC786F03E17F47A + 3D44232C30FD7D4D61DFE6D6694047B3BF637EE5E2AD39660B7CC28277FDBD2F + 45090E23597C2203AAD02074C86A73AC2B75CD0675C6E32331781BEC3912BE54 + 773203743475CE34E7E587CAE657410A7BD6FBFC614F728A5F3EDCBE239116E2 + 08D61A732C37CB17B89146A3C9009389710806BACF85BD75FB3340A7E7DA019B + 73D69902AB1DD85010466283AB22ADF5773217D570B58A341AEF9555541BB45A + 725A5E396E0A822F1EDE602E6D5E9F01BA76755D9835B77AB7DE6082378107F1 + FEF3DD0500C7A5B4C8E9E97A53EC9A5366345980A4E86955A1105E3FBBDDC75C + DC324705BCD6E62A7737D03A03FEDBDD57ACB76E81DA0B87C75F8F5F6B30C786 + 15250449B92892CED3921468491A46478606998B9B8A7F86DCEC6F2F9DBD709B + 020C059F0C312D1B8B7ED715CEDA0B3AC16EB403D2DA349230CCFAB6BF5601BB + 8E16143B4F98CC79108B32909C8857B3BEFA677FD3760A4B05EC741B4C96A7F9 + 8525C04DA53034F4389CE257A8DBECAF804A9271D88F67581D354A5E26136330 + 168FDDE285D4EE0F577646FE0DD8E85F44D064B725DFAA55BE392E05C9F1CF82 + 28087E90A5EB82847A65511E8D4A42F8579E6701BFDF666713A1A5BC389799E2 + 15F0601079FC8802164920F07C8297B9B5EFBDDB1EFD16F80DDAD8B11A11C465 + 8AD615293507CA996A6C2AE0D4E4440BEE8C3D7F044C97846CCF3D884FF61204 + 311769881F36084F1C1144813BC4FAB69EFA63A07A1537B4959004B5181BB940 + 467958CAB097032DEA4ECA02FEAFF515C5D7A8E80599C7090000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Save All' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001F14944415478DA63948F5D7F + 949181C18A01084405B919FE8318FFC12488016542F86F3FFE800A339E78B024 + C092010B6054885DFFDFD7D70FCC79F8E831C3BFBF7F18FEFEF90DC440FA2F90 + 86F1816C63335BB0BACD9B37313C581CC888D3402F2F1F3067422833033E50B0 + FA2F98DEB66D0B7E03DDDCBDC09CDE10FC0616AF8118B86BE736FC063AB97882 + 395D41F80D2C5B073170DF9EEDF80DB473740773DA02F11B58B51E62E0A1FD3B + F11B6865E70AE6547BB13070B04224F2269F60B8FAE03D984D4AEC830D34B376 + C1B0E9D4D13D0CE4C43ED840234B270C03CF1DDFC7404EEC830DD43773804B2E + 4DE367E0666364508CDBC0404EEC830DD436B6874B6ECE1360302838C6F0E9FD + 6B0672621F6CA0BA812D5C727D160F8359D969862F1FDE309013FB8CC0BC7C46 + 584CD658544A012CB82C898DC1BEEE22D8406CB18F0E7EFC666068DDF607CC3E + 76683703A354E432115616CEEDC044650212F457790596DC78478C015BECE303 + A094C1884B1257ECE303A09481D7406CB1FFF3E76F861FBF7E31FC00D2EF3EFF + 64889E7C9F414E4903ACE6E2A903F80DC416FBB24A5A0C73A38061F7EB37D8D0 + B0890FC0622070F5EC41FC06628B7D69054D8619617FA02EFDCD1033FD29580C + 046E5E388CDB405CB10FD23CC1FF1BD875204353E6BF26CE405CB18F0E40A901 + 068045C5110090232C09B55E6AC20000000049454E44AE426082} + end> + Left = 552 + Top = 136 + Bitmap = {} + end + object EditorImages144: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + Background = clWindow + Name = 'Save file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002A74944415478DABDD54B4814 + 711C07F0EFB8B9BA4552561A660FA143870E054145966BAEABBBAE6E2BD625DB + 0E4110819844849DA28452B1AC93411DEC1054F80802537CA6A8946552942861 + 871E488ACEAEBB33B3F368E6BFCEFAFA4335663F587EFB7FECF7F36766876114 + 45C14A16F3DF801DDE86370CB0F71FE50E8F3DF4ECD2B223408AB74139E67643 + 96150C7EFAA27609B22491AEC872783C3BA790EF8BE76464656690ACA6E61798 + E6B9C41FB59EF105405E9E1B0F2A4AC0F6DF3274ECB8FD1770BAA4122D2DCD98 + 1628406E6E1E4451C6ED13264340F16389F4D6D6163AE072E5420849A83ABECA + 1050F24424BDA3BD950E389D1A20A2B2C01870F16918E8EA6CA3030EA70B9C20 + A23CDF1870A92E0C7477B58115F8A540962307415EC40D8FB17B70B93E7C0F7A + BBDBE9803D3B07012E8432B731E04A6318E8EFE9001BA20036BB13332A702ECD + 84A4757F173EEE03EEB68581D7BD9D742023D3097F503074FAF935D0DF051F0D + 48B739E00B2C1F187CF5920E58331C6067F865034303DD7420ED6836A6FC7340 + 8D772D12E3A2A0EDF10738CCE89FA0D67984D467262045A3AC49C68684A4C8EF + 3EBCEDA10387D3B330E5E3221B9F15AD27FD60E910366DDE8A6A0F4F82358CE3 + 05AC8E35C3121B83B3B52C59D7EBE3602F7C220548B5DA31C9CE01CF8BE311E4 + 7858AF0E63636232CA9DFED9D37324D8A2021A52786F82ACEB353CD4073F0D38 + 74C48E093618D9587F3E8E84396E7E562F4132AED926C9D86C8E26E13A5270E7 + 1B59D76BE4BD06084B007EDF01ABD9C749918D8FCEC490C0FCEAAF8857034A53 + BFC36432452E8D8EB82AC6C8BA5EA33460BBB7BEC8625953BD256537A2CD3164 + EEFE4910A0B0E627195715CC9D7C3E62BB3EF27B8061186C3B55571405A6421D + 9AB539F7CEF13FFA5B368E262C9E7AA7BE32F72C7865AE54AD38F00B1866F1E0 + 1363BEBF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Cut' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003FE4944415478DAB5947D4C53 + 5714C0CF6DCB13DA528A6C2B9B9B62B42C4BE7242D05FC63730A3163B3818012 + 4D705B821BCCCDF475711154DC986E313843198B3A321003DD1F12BE5C90815B + 208B5F6D756E03B6F1615A3E2482161EA48F4281DE9D6702C3A9A0E04EF272F3 + CE3DE7FCEE39F7DC4328A54008814795C4C4E46A001A585D5D193B979D105710 + F2380083212946AB5D7BD9E51A84F6F66E554343D5C013052424247D9199B977 + 9FC5F2FDFF05483E9F97F755DCB16379D0D1D1731F000FB00B43258E8ED2D4FA + FACA81C706242626390A0BBF0DCBC939740F40A3D1306AF58BC7B55A6D5A7FFF + 00F4F4F4AEAFA9A9F8650180E4A1E2E2EF94D9D99FCE000C06C3532211539192 + B2E5B5B8B858484FCFE8E3B8C1158D8D8D930B01D0D2D212C8CCDC7F172095D2 + E72815D7ECD9635A8E59809099C3E1483D7BB6CAB2A03B1000A74F9F82ACACFD + D0DBDB9BA650280A0E1FFE5CEAE7C7C0891327A1A5A5B914DBF7ED055FB20028 + 2E2E02A39105A55209070F1E00A165CBCA2C18BCE5678E736D6E6A6A1A5B1440 + A7D301C3309091F13EB4B5B583D0B24EA7B3AAB3B36D5B6B6BAB77DA764E80EC + 65A30A1850F1C4D305D70A87055D7C7CD2F34B96909E1D3B52213676235CBC78 + 05CACBCF00C70DE56259B2D0C4373BC60301FEDADDAF4A24A25C54C7DC350298 + 44CBD29782866A5E08E48BD2D27686D86C36080B5B09E7CED54E7ABDDE77850B + 7D50B6F7016491EC76205086DF4DD41D2253600531D54918699134E869A20BE5 + E1937736425D5D1D7650078C8D4DBD515B5B51FFB072DE03F08FFE285C42FD9A + 09D0ABEE215F3C74168C4C1B866CC8E122377F18F4D78533A09EB800111A3574 + 7575C3C820F7E8A3421E6D2AC222A5E0B156B9FF3839E324D31A5F51A9237E0F + 7E763574DAAAFE0E10C3724558B494BB75033CC3FD47C7277C25DEEB057FCE0F + 883235A3AA85B7E76F9FB1D0EC92072AE4974296A9D7DCEE6AB5F0B7B99DAAF0 + F0BEB59BDE0B76FEF613F4B55B8731848CF8A8C97D35FF9B390181D1EC65E1C7 + 3D30BC019C2563F248F6754AA040C2F86B26BD9E7D083E22ECAB367DE97A6665 + C452C7F5861CB7CDFC992C8AFD183BE128F5817EF49AF9D78702647A630221A2 + 4ABC6B1EB770869060DCBE49A7201D1D6BA79D04C0E48497BA1A9B42019A8459 + 2342C80D845879BB79DB9C5D14A0DD1D231289B71242FD292557F83B5CB990CD + 6CA7A5EBB3EF8C7B46ACBC2DFFAD699D5CCF5660A84804AC98F71DCC2732BDA9 + 1B3BCDEEB69B93FFD5B1A7D0FD4D2C99EA0900D8F3B884E269D7CCE8A258BBB0 + F236B37ED100A99EFD4044E038A5BE78DEFEF58F0151EC3A31C0250CB51701B9 + 8B0680662B23932DB3A1F52A74FF815088C750B7DC3E8F0E67D6E8E2018244B0 + 4A390347D07D1D3A5B617CFCC0ECC7F95FC03F9D9C4EEFC29B82E80000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Copy' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002634944415478DAB593ED4B53 + 6118C6AFF339A87FA4A4E80F4813D3852515A5C35613698D968D4CD49A6E2E8A + 102AB7B9B3B6952E4C54AC8696921044542AA59510EB0516F4B25EDC667B73BA + 579FCE365C63ED9C9DF3C1EBE3E1BEEFDF73C1EF5084106C64A814E09CF5290F + 0A351349904A93A26C99EFF1D4ED2CE09AAC146C65529FEF3DFF84971F7F0B82 + FC078827D98B2C7C5EC4D7C510663FFC9867AE8BAC27CBBCBC01CDE627E4BA7C + 3722F135D6E1D5680CCE9F7E7C590C62F6BDCBD1232FDFCA1BA0A41F139DA202 + BABB73050765FB773287039871B8984724E1FCEE81E1F41E8A37A0C93045F44D + 55588E243917D698D9A5C02AF39069189522FE80533D13A457590DC3FD39D661 + 972F5CEC5E2A2F220988D625C802E457C789B1B906FE9544C1AD3F8165582617 + 20D4B42C40D66D27C69603A0EDF30597A3B1183CE138849A6691957AD380C6CB + A3846E3D8C25E648A1F80261F43F7A0B41A6395CEF98F99234A0E1E230A1DB6B + 61197FCDDAE0977F057C4C9B664C8BC61270BABCD02B2AA834E098E60E315DA8 + 8727C4D22018866DE215849AD67BA62A0338DA719BD02A09FA27DEB036F8E6F6 + A19869EB91EEDD0195750AA6B3D51980F87C1F31751E873B58B8813FD5E001E3 + 3E8769F9E9304FC2DC529301D4B5DD24746703DC210EC0D8337099961B71E576 + A86F3C84B5EDE03F40B1A54D9BB780CBB4FCA8E931F4A98E64001455F4AF8754 + 3BC4695A6E0E95974063B4C3A616F30748D4039CA6E547D33B8A01AD843FA05E + 65E3342D37FB766D439761048397A4FC0175EDB7384DCB4F977E08C3571AF903 + 6A5BAD9CA6E547AB1BC448F70961005E977392056C64FE02F786D4E05168F73B + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Paste' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000030B4944415478DACDD65B4853 + 711C07F0EF91EAA1904A0BEAA122DF132B821E346F89B7CD4D978A9864492288 + 5DCCB4DCE605A5E8A152E7960A19849959C96C19D653A029A19978C97B6AF33E + 07DE77DC74A7FF19E9169E5DA4977E7B3887FFFFF7FB7DFEBF1D76A118860145 + 51E00AA150240298C7EC3D49BB5D5B5BF30ADB08536F6B009FCFDFEDE4B44B4B + B65AFE00678C46BDAB4AA55AF9674028147A308CD315B29E42B625EC1A49C927 + B9328A32962B95CAF66D01A5B16E0DA0E0B9B151BF7CCA74A5C09017B5E53E68 + 4F9B45173426550E7BD9062EBA31FC8404D04B73A68D5BE5C3C8CBCBE53C9554 + 9A6D0202A245E86D6B877A6008492F8629BB005BA01D1F306DDCFBB8C3E6E899 + 816BA6AB7A681C9A49EDF60147E3FF02CE47456056DD6FB559F5CE5447CC467A + 0DC18A64DFA52D807F640434BFFA38AB74CB3AD4B948F030D187FD3C7006BBFC + A6A10F5F7BA79AE835269045FE062E846366A4971B58A1F1E180D40418D6AD08 + 24DA87A6313ABD88E69EF15632427069A2CFEC26E0271262FA670F6721CD0207 + A57894E407DA60B40AE856F5189C98C3C8F4029ABBC73A49BEFB26E01B21C0D4 + D00F6E4047A3CE558282E40014BC6EE1CC490C3B4D1ACFA3A97B8C1C621D836A + 0D0A9303A84DC0275C80C9816E2BC02A01EEA23025084BF4BACDA76C24FDB4F3 + 3A72902F905D0B3203DE82304CF4777116ADD2AB50B96440769D87A2B72DB017 + F12127212EAB87E226CF12E063ACB7D33AB03F1DC5A902CCADACD905D89094D4 + A1244D6006CEF17918EBE9E006C8C37BB72F0DC569E190D7B4DA6D1E13E881AC + 272A94654498012F1E0FEA6EEE6F613D01947B53214F8F8476D9E0D004597225 + 9E8AA32C80D0508C765901F40470BE01F99D6894D67EB3DB5CE4EF8EECE21A3C + CB8A31039E212118E9F8CE5960D01B50E39C0245662C348B8E4D902DABC6F3DC + 383370F8D8512C68349CC946A3119F0E65402E8E43F9FB36BBCDF9DE27905354 + 858AFCF80DE07833F9CD3A6BABE8F3113114D24B9859706C829CC24ABCBC9F40 + 51B6FE555846747A1923975EC68C836F516E4105AA1E5CDD1EE050678B6081DF + 1D9DEDE0B445EA800000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Undo - internal editor' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000042B4944415478DAB5955F4C5B + 5518C0BF736FFF5F5A5A1816697BDB4147149832A7461215CCC0C464D382912C + D01AE5652FC6973DF86034EC8507B3F866D4C484086C18C95A0D2346F7424608 + 8B661B10D88031DBDB7FD05AFEB4407BDBDE3F9E5B47B342D916C94E7273CFB9 + DF9FDFF77DE73BE7225114E1690E24011042B985EDACC7E65B9D09C2782F7758 + C7BB81E7011697BB8144E4AC280A53D9CD685B78F45C7257D9EC723793805C20 + 421356B5E3770A1044B0EDA400447F60C831F15800ED747F585959F5A3345F5D + 59196382D30EABA5CE8240FEBD4AAD69335B683018CA40A3A180E705C86633B0 + BE1683608081643235C622A12732D8113D18E0727F69B3D65CB056DB617EF636 + ACC5626388402D35F65ACA64A6F3652C16A9CFBB0C7E9FD70F59B1D9F753BBAF + 28C0E6F2F4DB6BEB3F323E6BC211F2B0303F0DB4AD06743A7DDE59221187447C + 43B206AA4407A53823E20138E0F762D0BDE52D61E7E4FA2567621FC0EAF25C7B + BEFE44ABBEAC7C5F94A95412BCF716B0F3F525AC7E15AB4B4DD0A45469DEB0D7 + D681AEF4BF209697EE403412FA8619ECF8A458068B0D279A6AD56A4D81F30CAE + F5DCAD29E078EE0B6670A60FA057D89559BB3DEF1032D9C8730D8D5489B61438 + 8E83E9BF26782E9DA4FDC367C37B33D8697CA5594392E4BE0C98FB7721165DF9 + 8D09CEBCBBB785E96EF7693555325AF7C2AB393FCCDF0B108BAC7CEE1B7CAF2F + 0FB0748E942928F5DAF193AF1FB891DEA539486CC6FA99A18E9EBD729BF39729 + 5B6DC36BA58672886FC4C0B73437EE1D74BC9507D85CEE97541AEDCD63752F1F + 7870A48DBF7FF716A4D91D27865C7A5886B33F5F5E5175B1CA7A0CB299342CCE + DED8F40E380C7980D5E9394D69F5A346D351DCDF69E03219ACC8E67A9DC36BC9 + 88C3739C4B009F0167E0F2FBD70BCAD475A555AB2FBF46DB8FE7B25D989E000C + 407980A973845628E5BF8A52778862007F0E61418807D10B880C132813645808 + C14867A65876966ECFDB5A9DFE7773757D6EBD343B590838E8103DE9904A545A + 66BC78A4D29A2B25B378B3B0448706383DF346734D9D9AD2422AB90DD1C072E1 + 261F06403BAF9C53AAA8EF8CA6EADC7AFD9F106C6F6D7EC60C38BE3A3440724E + 12F26F8F54D2482697E3F270100DFBD22991A75707DAA3FF0FF0C1CF0AAB427E + 0A5FD7E7650AC5299DE11990C9E439517C2D022C9BECF50FB55FD87755141BB6 + 967E956832F400128E22401558D38E5BB551AE50504A750928541AD8B54C6EC7 + 71FDB7A698C0CC9BD2697F22807401CAE5CA562942840820F0354292B2027DC9 + 1E3B866C3A7D23C327CF8487BB62BBDF1F09B0393C7AD0A10DAA445F142ED971 + 5C06322C8B67E20F28B0F1A96FFC63F661F9A33368E99559CD2F46154AB58120 + 880706220882801F1E788EE3B1D9558E87BEE0E5F63F8B05F0D812E1DF681B96 + 7D8D44A8C0A77C0B6BAD60CB3B0242932C97FA233ADC1539A8170A004F73FC0B + DF1B42EF96DBABE10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete - internal editor' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000043A4944415478DAB5955D4C5B + 6518C79FF3D99E9EC25ADAD26E7CCC2D73CC3482848233A31FC9C6602B0B4BBC + F1C6E08DDE1B317E249A9868547663BCD345BD98F162C6F8C10ADB42222D48A2 + 509AE13A1D01611B41D9DAF1D19ED3D3734ECFF17DC176AD94B15DF0DCBDEFFB + BCCFEF39CFFB7F9E43E8BA0EBB69441E40104461B3D9DFF51C99BE772D1A8D8A + 8F13CCE33FDDA181669E0A5FFE1EAF71EC2D80565FF01CCD327DAAAC8C8B49A1 + 331E1F493F4AF056FFA99769DAF019C31A08515C7F63323CD4BF05808373E68A + BE234FB7C2E2C20CDCFB6771584C2C04E3F1B8FCD0E0BED36FB246EEC3A79A8E + 024992108F8D832865FC53E150A400F0F8BADFE3CDE6770FBB5B806618C0BB7F + DD9C86D5E4DD6F27C2A117D0522B139B44497D6CE4F9BE06B767E31EF287B99B + D34955951BA7C6AE2E15006D81EE584DFDA1671CAEDAC26D7C8621A9F595F308 + F24A99E05FF2157B7A0F36340245D3905E5F85D93F6382AE69DEC9C850ACA444 + CDFE934FD2C00EEFAD3B50EF703E80685A0EE6677E0731BDFED14464F02DBCE7 + 76BB59CEB6FF62A5C5D6537FF00890140519310D737F4C2B8AA69E8845062365 + 1FB9F1D953B5062379D956BDCFEDDCB7BF00C9A92A2CCC5E878C24BE2625C4CF + 393B3F60B1DA03E88B37EE65A50CCCCF5ECF29B2DA131D0D858A2BB045452D2D + 013B69360D58AAAA8FBA6A9E284054458185B91BA0CAF28CC5E6389C3F531419 + 6ECDDED01555EE9D0C0F5E28AE6159C066090266938DFFC15C6939EEAA3D5038 + 53E42CA4D6EE439563EFE697E554589C9F415F20BD3A391AFAE4FF0AD8165054 + E76F4C7CC5F34E942D965FB1699A067FDF99836C467C1FBDCD3BE5E4FB50405E + 291E5FF027A3C914C46F52ECB3BC741B2431FD3552D78BDBF5C78E004F7B5700 + 68EA92A3BA86E74CE69233AC9AC4DDA5A4AC28FE6BBF5C893F3600B5FE1900FA + 3B9BD3C5180C5C89A2B0E6B189420A5612CB77744D6E8F8E0DDF7E64408B2FD8 + 4B91C45756BB8B6018B6B09F5A5B01299306ABCD89BA962D4052ABF767344138 + 168D8E247604A0EEEC2328B2DF62AD26F2996E065AC7CD16D774384712707E4F + 55359387A37D1084B5582621FA8A87E31680C71BFC8066E8B72B2AAD1BDD9937 + 49125190B5052D2DB6E22C9BBD5DC72992FA11F9F12C6BD8F01110249B112262 + F256477E3896005A03C17E9A625EE7CD95401449126B1F956159CB65DB8AEBEC + F176B611243DC8F115B63C04974BCE66439311E12CC0885A0AF077FF6AE4B836 + E63F676CAAAA8024A457E45CCE5B4E294DC73ADD2C4D5F3118B91A86356E642C + 6504744FBE80BAFA25B4D61E8C6B6F473D41B26368AED7D134035A2E874B2310 + 3A9C9C8884C6B7D37A4BFB897A9262AF328CA101279787E8AADEF1DBE8A5E192 + 37C0CE1882E67A9DAAA0F409AD07FD99866007DB9C5FFC3045D14D281092B212 + 57D684F658ECE7D5ADC36E13F22941E85F4C848706760A9E373CBF38BBE9228A + 6245623883C550F206BB65BB0EF81795E154EFDE356D070000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Select all log entries' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002864944415478DA63FCFFFF3F + 032D0123DD2C88289F4D359B5674A63262B560616B0AC586C757CFC16DC18296 + 648A2D48A8998BDB82F9681680A4F69EB8C670FCE21D86E76F3E327CFFF18B81 + 839D954142849FC1DA4095C1D9428B819111D582447C16CC6B46B560C6AAFD0C + A72EDFC3E95A6B435586E4203B14B1A45A3C16CC6D425870E5CE1386FE453BC1 + 6C16662606535D25061E4E0E867B4F5E31DC7DFC0AAEAEA7249241908F0BCE4F + AEC363C19CA624B8C2E317EF321C3C7D83E1D1F3B70CA1EEA60C8E669AF0602B + EF5BC5F0EEE31730BF24D19341435112AE2FA56E1E6E0B6637222C408E07901A + 2626889E771FBF324C5AB28BE1E9ABF7607E76A40B8381861C5C7D6A3D1E0B66 + 35605AF0E1F3377070DD7EF892E11E30685EBEFD88229F16EAC860A2AD88E037 + E0B160269205FFFEFD6758B6F518C3D1F3B781EC7F7071365616B06F7EFCFC0D + E6E7C7BA3368294BC3E5D3F15930A33E11AE70CBC10B0C5B0E9C07B379B83818 + EC4CD4C106294A8B324C5ABA8BE1E6FDE7100B62DC193495A5E0FA321AE7E3B6 + 607A1DC2829A49AB19DE7E80446451BC2783AABC045CAE7BFE56707081401EC8 + 02258405994D782C988664414ECB4278D094A7F832C84B894023F90B43E3D475 + 0CBFFFFC85B838C285414F4D16AE2F0B9F05536B1116B4CFDEC8F0E4C53B305B + 5C989FC1DD468FE1F3D71FC09C7D85E1D397EF7075B17EB60C16FA2A707E7633 + 1E0B26D724C0155EB8F19061EE9AFD18A98A898989414D4192E1C6BDA760BEA3 + B9364390AB295C3EB765016E0B2621590002976E3E62D875E412C3E3176FC1A9 + 47554102E8137D70A4AFD8760CAC869F878B21C6CF06AE270F9F0513AB131828 + 05F9AD782C985045B905056D782CA0D87428C06A01ADC0D0B70000AA1B6EE0F1 + BE05C00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Display preferences window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005734944415478DAB595094C14 + 6714C7FF337BC0AE5BAC802837AB726BAA08D5AD8220126C940A34686B03AE69 + 5A2D6AAB402349AB46DBA2A980C6BB6DD4C5A6A64239146B1005F13682D483AD + 4055649143D80576B9965D66A6DF8C959A28B126759249769379EFF7BEFFFBBF + F7511CC7E1753E140FA028EAA51FC62F4B3D030AF3F8DF24A6B430273BFA6531 + 42EEFF0258B074DD043F6FF7FBDB37AD05C3B048D99885A6D656659166E7C357 + 06C4AAD77AD1106DE3C095156AB20F868787D3633C825213172FDC36376C0618 + 96C56FC74B51527639BD4B579D555151C1C6A9533EA64045B260D29F853E07E0 + 938B68F1C54D692BDCCE5DAAC2F92B9597898A5E73DE09765DBC280A94480466 + 884187BE0B79274A71B7FE413309D7B9BB8E574D547A90EFAF37B11C13F614F2 + 1C205E9D5AF84D7A72ACA7870B44348DC71D06388C194D183406CC83E8ECEAC1 + 109148662B25C12C1A1FB5E161530B26FBFB8265195CADBC894B57AB8A0A3459 + 712301D64447A876252D894197B1173652094C3DFD387FBD062D8F0D508C9281 + 379DC56A85F3587B787B3913364DFAC2C06A65905B740A8F5ADA928B72B2F78F + D4033A4E9D7A63F7D6F5536D6D6CD0D8DC81D28BD598353D00AEE31D48F58C90 + 6C6888457BA711CD6D7A78B838412CA2A1ADBD87D2F20BD5059AEC1092877D21 + 20302141EAA7F06CD2ECDEECD4D1D98363272F202E5A0589582C24B75A8784E4 + 2C9187978A3F89BED3043BC528180C9D389A5FDC52DFA7536AF3F22CCF016212 + 572B25B4F4837973666610C720BFE40A26793AC3D9C91EFD03669C2839873F6E + DF2502719812E04B4584CE14E22C441AFE04128918C70A4E42D7D49A3EC45972 + 8B7FDED3300C785F9D7646E9E132EFEDE02998A39A4E7415E1506E29162F0815 + 2ACF3B7E1A376E6A8F74F59B57C9A422DA562C3D3025C0E7C3883015680291CB + 6CC0EF03BDDE80EA5B5A34E89AD1D5653A9BAFC98C7A02589EC6E51DDC8EDEBE + 01982D16C12D65576F236AF65441962DDFEF6506DA8D76C5C53FF6F3477FF7A3 + 357672A9B47BF52749949418C14E2117E6434C6C6C6323C128025CBD3E03F987 + 33A961C0AF3F6D434F9F1966DE8EDDBDB876B39634D71FE6412B32B20E30837A + D330203C2159E1A890757FF1D972110F701C6347BEB30C03E4325BAC4CDDF20C + 409D767E82D22D2CC0670242A64D864C2E43F9E55B9839CD4F90E8F8A932DCF9 + B34E6335F4AEE2011207C5DE403F1FF5C2F911C40022B88C7380B1A70FDD4623 + AAAAB5A8FDAB018FDADA2B0A0E6746FCDB6475AA9F045CC2647FEF2D894BDEC3 + 9DDA468CB5B723154985539D2EBF88BAFAFB0C0FF0F7F5164547860ADA2B4831 + F66F2AD06FB6E0D02F85B8ADADDD68059557ACC9AA7DA14D7D151EBACF3F4D1C + 2797C9D0D2DE092787D1C282E36DC9F13A8B450294AF9C1F444FB771D01B8C64 + D2CDF82A63D7E3BA5E9DC70B6DFA74D0E2D5299531F3238302FDBD3168B112DF + 33A0C9B4F223CC27E75F3E39DF5817327C0662088EE5C804B722738FA6AA2027 + 7BC68883169F94B2C2DDDDF9C0D28445C26EE19333245821B7155E3119385BD2 + 447E65F0C0EEDE3E7245D0C4AAC01B0A19F61FCE45E58D9A950547B27F1871D9 + 91018A0D268DE6778BB6EE1E9C1CEDE1EAEC2424974A48F5223144629A80A4E8 + EBEB87C9D403DF495EA0C9B0D5DCBD87CCBD39232FBB278DA62E85AA821D1A1A + 9BF86357930A5D944AB7F1D111B3885B0888408C46137F1FE0564D5D1B07B665 + F68CA02055C85BC8DA97A31F64B950BEC1235E3831CBD6058A29EA3BA2EBD9A2 + 233BF691C68B7DE4EE5FAA42A67E1B1F1325E85F5C5281B20BD7BEAEEF6FDA4E + 1A3A149BB42E994CF45C2BB80DC5393BB4AF7C65C625A5F88C75B4AFDB9C9E2C + 2CBE0D5BF740D7DC31F1F7A33B1EFC2F77B20051A79E235F85FFF3B79CE81CF9 + B29861C0EB7CFE064EF3ECEFD45AB8FA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find text - internal editor' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000043A4944415478DAC5965B4C9B + 6518C7FF1FACA5542018C6295468E9911E5D57CB043AE916A65381356671BA31 + E385380F172426D3C44B4D76A1C678A34B76E179780E33CE6C63B22CD1306030 + 39D4F6EBF940E9992250604C826F0B454ACB0C318B6FD2347DF37BBEDFF3BCCF + F37E29B5BABA8A7BB9A82C7B4CA1B06E84A2204B6D9024BEB45ACD2776C824F6 + 32057C3EBF8CC92A08B63F7B0A454585989898C0505F4F88049767630A0963CC + C2FC7F82C3EDCF4BD53ABDF1EDD73AE00B4461F704D0DD7375F5EC99AE9C9D30 + D9044C91A8EE77F25D97D114563E0E3EF5E2C6EFE5DB4B2BBF7C7736375B5337 + F7224D505B2BD61497EC1E329C7C15F52A317EEA1BC44C34845834883F6361EC + D33D8AD39D47B0FCD70ADEFAE03C2CC611C8E40AB43DD10227A9C0E90DC2EDB2 + 63F0EAB72B7796170B5C2ED7529A402010BF54C9157F78A8FD99344138E0857D + F4D78C4C737277E190E1649AC0E371E2D6F51FB1188F3FE470D037D304E4783E + 17EFD19DD036E9D304D3113F1A9A9A21AEE520875AC5E454003EF271B93C282B + 2BCD108CDFE8457C26F2B2CD467FB4452019DDDB6C504A15CAFF548165B41F33 + 41CF17168BA96343C0E572594C263BAE6B7D2E87CBADCEE84134E443D86D4E8E + 6162447731F2831C913AA3070981931E25AC69CC6231ABD2040C06CB4A511407 + DBAF1E9295616DDA2466F212E06D0792075F24C93CB9A5C9A23798F985676A84 + 0AEC5188E10FC5108EC6E0A26F61717EEEA0DD4EF76D7E488AE74BD5504AF9F0 + 07A7093F039779040BEB7C9A4028945C28DA5DD5A6D5B7E2C8633A4CD06ED85D + 93300E5DC394F38FD3562BFDCE6641822FA9E2B7699B5BD1D6B20FE366176C09 + 7EB00F3E8731C96F9D227FA54059A1D2EAD302BC3623CCC3D72E91333DBC5990 + E06B64DA0A95663F1ED76B30667612DE07AFDD08D3505F92DF100804020E83C9 + F6F2140F43AAD4A605CC90260FF67E132101A5FF1C8F80431AED95680E40A654 + E340830A468B07D6043F1DC4C0E5AF92FC868064732C8F5DD8CD2782AD010BF1 + 59DCB8FC35EEDC9EE75B2C16478A67B0D8DDB2FA1632494A34EE95C2644BF053 + E492CDA1FF5237799DCCF3699A76506BE759F73EBBB8A44BFC6053D680F1815E + 44FD9EE36432CEA7F882FBCBBAA49A472097CBA15108413B26D7F885798CF75F + 41C4EF3E4EA6EE7C4A305C5C51AD1629EAB306384D23709B87CF91B23B537C69 + B5502D946BA190D54129E1C1E6F6AF571C27FC305CA69BE768DAD449AD5FB2D9 + 4AA192C115C8B30644835E8CFDF673F2F2ACF1F9B335522DA3462083422A8644 + C081DD1D80835CB8795271C49FE02F8E11818A123736160A38F2485E7E01F32E + 970C73B1B0AFF7C2679C24FF80229AC7BA8FF16FFC959E4F3994A1E354592EB3 + 28D8BC5F077D8312621E07D707C6E10FC710084D636E61096FBEF2348EBDF07A + E8874FDE2BDFCC278641C4ABDA96FFFEE377CB29D9D1A34C31BBDA4CE68987BB + AF1E2230EC8427020375AFFFB6FC0DDF43C9EF428002520000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Replace text' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E84944415478DADD557F4C53 + 57143EE7BDB6B416191840F0171DD3A910A6D95CE6443762C444B7445A1D5329 + 8E19A7A531CB24FB656616173333B7B965C61524C64C6010406805756A64645B + 8B616131189CA81B2A98A171442D14685FDF3D3B458A8AF147FC732F797D7DF7 + 9E73BF7BBFF37DE7213CC135DF62272128B7C95558F6A858FC7F02A49B6D3988 + 520101CC180E3AAD0A75CB49D79E863000016D02C23988B49008AF0188AF3DCE + A21F1F09906EB1BFC98F7224F88454F50448521C226C2584A9838A3AF98FFAE2 + FE1000C7F8F9C785202A01A445FC6E1720D634D516953E1C20CBBE112530B96B + 1DEF87C7E6996D0B25941A0489B4266751DB100081DBED742C18A1CD9C5F4180 + 733D4EC7D38F530389174D9110A671D24C0ECBE0C0CC7B00046D70BB0A8BEFD0 + 6AB7F0496B400926B9EB8B3BEF0348B2D67E808899E37ADD9BC7607F092186F8 + EF00A056E6BA939337DD0DA00A329F7415BA1E74CA7B0092720F2C45900F8778 + 4DF0FDDA21835F0D06038B9AEBF65E1B4ACEB22F962438368AA2B798A2921100 + 8B7D8504504DC1C1899EBA7DFFDC01C8D8AA499AF41CEF1013F9F58B89BEE3EF + 72720973997F875F7B3947AEA2A0FAA2A76E4FCB6D1541A5A7D6B1F22EE956F3 + E09CFB6A60B23AB338D9C9B204DE76E6E4C1064EA25CA665171FAF87D5B31881 + 741C9A1EA66518A01F04EC14044765899603620191B08E962A9A729DDFA224BD + 878C22D4E012E3A98A9F63A6C7AD6390395C608144C7DCCEC29AF959F9EB48E0 + 054F9DA391015A797E076F623D6F8095441799B3CF464B7418C055A1D56A564A + 4CF2A07FF0FBCBA5968DA1091EAF02121197CA2CCB1EE5D6875D4C51ED7EBDC1 + B046AFD783D77B4B112A2D1688638D06439D102AF87DFD332F55AC687F628090 + 3CF506FD974F454541C89E3D3D3D8AAA8A6BD3929F99D4E7F341F7D5EE0F2F97 + 59BE7A628049D6AAA93A39E24242420244E8B420CB1A181818808484F14C991F + DACEFCE9BE5C6A5E106A215C8F022ED54CAE8D3CBA3F1546197324C28F793E39 + E41B22FACED6D75774DB075667794C4CF4AAB8D858D031884EA7BB7D6BB5D0D4 + FCBB3ACEEB5E1D41BD9540F40DA9780835229A48FA94CD375519B83571ED6F07 + 7378E1DD4CC16E5EB88E45F312177E1B37C2BC218009ABCA6375B2A125313131 + 697C7C1C6819246218E46CFB39F0769D2C8F09FCA5E3FEF4C688EEB36C19DC08 + 1B9520CD5ADB58FA13D37BD8D6DBB73E3CBF67ECD890099591563125A72A4592 + 756766A5A581D1386668712D9FA0ABEB0AB49F3BF7C3A552F3DBA68C3CFDF828 + C3B35A19A6732B61F7435E4AC7D9D75FE8683944A0BE66F3F61FB9AF06E13F49 + 39CE6DF1F1B15B4C2613F8FA7D70F3C64DB8FE6F0F2901A559567B77240E36AD + 6633993954C3F779765A1B536499DDDE929D76E52C4B1A166CE8ED753F10801D + 7DCA18699CEDF30DF888D4E3BCC0C1402078E46A75F6756EC5F51C3A975D97E7 + 57D4C6D037E1E565F679B20C9ED4BF5B973F7FF174CDE81338F4FA64D061FC08 + C0046BD5740D68A674FA83BF407576E0EE5DB0736FB0530F786A0BDF098FA55B + F237B3FBB7A3F02FB23654867A55CD066F9F3D3C5F141559C68BA73ED637999B + DD095E2095FD912708BBB5322EE5F78F782A9AA95992DBB07F064B73278F7DCE + CFE33CFE4A48457CE2358F053037CB6692111D5C8357394161C51C5594C06616 + C15E96E5416EE1BB8A2223ED2861014B99BB299E4714DBD77B7DA5FF018EFF68 + 0970541F4E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find next' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004564944415478DAC5956D4C5B + 5518C7FF17E8848C32C000730BA19052DAB585C290755002C80AC298326453C0 + 0F2C4397450798256816A3D1C4A8E016D8E20763A2F305F641DD96187486A941 + 9820E3B50CDADE96420BA52D1D140A659B93D6D36E2594163234C6273939F73E + F99FF3BBCFCB399772381CF82F8D5AEFE070781D6492AC7175D2B43C73AB9ACD + 008EA2F293888A8A044DABD0D1DA426639E5531349342ADF9AFF0F50F3CE278E + C6B75E86D16C81DE388BAFAEFC82A6B74F505BD578017CE475D50A2A6A3DDE7F + 6C6EDCA8A65EB57001A2A3137685846ED79754BE86AC7D025C6BEF8379C608CB + ACC93552C4B9A8AB3A84901026DE3CD782A19BBF219EC3C391E2424C9108C627 + 8DD0E926D0D3F60DEEDD5D8AD168343A0F0087C3290C8D886ECD2FA9F402287A + AEFBFCD4ACA20A2FC040472B6C0B7387C7C6E8AB1E00369BFB5E0C5774263DE7 + A01720352D1D0971BB11B82D00FA6923F406936B6630185E80D1DE76CCCFE81B + 542A799D07203E9EFB93402CCD1388D2FE5504EA915ECC68E9EB04205D0F3089 + F39F8F64C5B27DD6C03436BCDA86CE16DDC549F15903AD7A14D3AA81DB34AD88 + 5807E0F5531492376A0D729B7493AFDAFF00C0BD4196A56FA21D20DA94F51194 + 076C0B6C662588902C4C8061C602F3AC0553EA5BB02D5A2A542A45CBDA4D9C7A + BE30B1F9544D2DC27630D1DED9835FC9D0A964B0593DF56E4053705854B5F8C0 + 61143F9D895B4A2DC626A6A092756342D17F9E2CA85907686A3C7FA1FAD32E3F + 2CFFE940F52116182B0BF8E2F38BB8D9D9E6A177A7686067EC1E5172BA14CF48 + C518569082118069720C4337AE0D9290933D01BC812F9B9B456517B41026A580 + 568E422A64A2F449267EB87269A2BEFE83D855008BC50A646C0B5A622749FCF9 + 22310A735221538C13801E4BD67958754376369B155A5F5FBFE85C505757C7CC + CBCBB7EE783C0A47CEA9902B2D2079B713881C77170C284B65C024FF39C4ADA7 + E2E23892A0EDC11DF1A24CF01353F0547A1246681D5404B06CB3E2D92C015EFF + CE46DF5961707C15D50908F0F783BF1F058B650E32990C01F7E77ACCCB2B07A7 + 2F95DFA648579C7E2C38EC23DEDE2CF00589C8D8BB0772B513308D3BB6451C7B + 2E1BE51F4F41B42FC7B5897B33D778F8BCD6E74C3AAD543A6FD9851587FD258A + 14ECFB9088DD455C51060402015285F1506AA61E0096975075F4008E366A1E19 + E0F64D6875E8EBEF9F2711F00C5171829D71094910F27948E4C642AD353C4C91 + 0D27CA0B50D220DF52044A8502B45A3D6B77D84F5205A555D6A060D2CC1BD8A9 + AA32BC7BD98071F35F78941A0C0D0D42F084DDD1A9B444BA6A505279DA219148 + 9099C677A5A7BD7B1806F39CEBB0397F281FBE710CEDBFF7213B23D5D5D2BD83 + A38EF0F07084870643F44A9B0B00D2454AD245F7168C78FF780AEE5B3428C8CD + 70E99D802E328BB1B9755FBE78D67555B8F5676A8FA3F4AC1289E41C289523C8 + E606E185FDE1E81F94A1AB57F6C7B79F3588570FDA3FB59817AF7652949DB9E2 + F07B75F2EBE20E5F9ABF0151F4614B04F194D00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Go to line number' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002174944415478DA63FCFFFF3F + 032D0123CD2DC02591D9BB892A36E3B420A367E3FFE9C57E0CBFFE906F4FFEC4 + CDB82D48EFDEF07F46893FC3CFDFFF6863415AD7FAFF334B0318BE032DA8997F + 8824835B12EDC074C1844D0C8CF2B1EB7733FE671061F8FF2FF3C1D2E0133045 + A99DEBFECF2A0B64F8F68B7C1F144CD8C8C0A810BBFEBF9EBE11C38DEB57FFFF + FCF973EAB79FBF2B5FAF0EFB92DAB1F6FFACF220862F3FFF926D4111CC025737 + 2F867FFFFF32DCBC718DE1C9E3C78FFFFF634877D5FEB36D566508C3971F7F19 + 1A161D26C9E086385B8805FDEB11163033333230333132BC7BF78EE1E2C50B0C + 7C2C5F18B6B6FB3030B33093ED83E2FE75981630333101A5FE33DCB87183E1CD + CB470C15113A0CAE4692D4B500443301F1FD070F196EDFB8C2B0695D3C4906F3 + 3D7801A64BFAD7E2F6C1CD9B37199E3F7DC05015A9CBE042A60F4AFAD7605AF0 + FEDD7B868B972E3270317E64D8DAE103CCEB4C64C74119B205FF41A9E8E67586 + 478F1E3DF9F7F77F8E93DAF70DB36B2219DE7DFDC3D0B5E2286906475883E9F2 + FED5100BF40D8C19AE5FBB02CA07D33FFFFF5AF96E69CCA7B8FA25FF67D74631 + BCFBF2876C1F94F7AF02E6E4980D471819FFF1FEFDCF94F37849003CC1C7D62D + 065A10CDF0F6CB6FB22DA80059804B32A676E1FFD975B1600BFA561D23C9E0A2 + 302B88057D2BF05850B3E0FFACBA38863714F8A0AA6F396E0BA2ABE7D3D682A8 + AA79D4A9D1867EA54F6B0B0058B41378640ACD290000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open online documentation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000045B4944415478DAB5965B6C53 + 751CC7BFE7ACD7D3EB365AB65EB632B69969260F2C315E1279311A74B1956030 + B821F2C00BF101BC30756A82E25ED4C4C407F041D9600CE66849A72131311831 + D16486C44508B7D1AE57DAADF776BD9C8BE79C6E856667E5895FD2E4F4FFBB7C + 4E7FBFFFEFF72BC1711C1EA5100280200849A5C3E936B21AEE555ECD7FC83E70 + 5C7BD58B88701C7B9D77BD48E6898B3E8F2B25E52FC696023876FCA062EDC677 + 48021F6A0D9B0C5A7D2BD4940E4D7285A8672A65AC14B2C86596914B2FA5590E + C7C940EA5BDFE5FDC587021CBBCFB7712AB9970F3A60B67641A154D58C2BA522 + 1886865CA1846C1556E6CF62A105013647142B83BEE9D7A31B02AAC11573A676 + 87B5C56CAD41934B6124EE05C1D0E5DA995AA387D9D60DA58A12BF276221C423 + BE10512C0FAC41EA00425A38BBF18AA9AD737BB3E97EF0E55800CACA12F6BFB8 + 154FF599A151C910592E60F6EF2066AE8461EFD906994C5E7D91380F89FAFF21 + 02A9E78474D503F65E38AA31B67ED9DED15B0B2EA443575AC0C4FB4F434FC9D7 + 15F1F7F918DE1D5F84D164AB9D85FD37504827467C675E1BAB01B6B83C46E889 + C58EEE2775427ED7A45CCC63EA900D96563582091AC7BD29C4B30C5EEAA770E0 + 799D68F3E9E42DFC19D0D47C2AE512166FFF9B4586EBB8EB76A64440E7B06748 + AB6B1EDF6CDB5AF7867D1605BEDB67169F8F4C2EE1AABF7A49F2D914660E77C1 + B68982772E816F7E2DD4F9DD0BDE412E9B1CF68F3B27448063D8E3355BB6BCA2 + D137D7199A74329C3CD0865092C6A153D5CB91CF248142147F7CF50294721253 + 7F6571E2B7649D5F2E93403CEC9BF58D3B07AB291AF6DCB0381EEF7D303D5252 + C867C06643383BF22C7AAC3AE44A2CDE3E19412C4DD7D909690AFBAEDDBC3BEE + 7CACFA0B863C597B77BF9624C986804A72013F7DF48C5893950A87F726A3985F + 2CAEB363591681DBF339DF84535703D8BA9E6808106ED417BB8CD8B16D33D205 + 06474E4770335292B41500C185FFEE038414B5D97B7AD7BA534A344A129746AA + 9760F47C1497AF6537B4A5F951120DDC7A2045C39E9F5B4CD69D42773602CC7E + D00D861F3C3BC7EEA04CB31BDAAEF0B54AC443BFF0457EB97A4DDF74EFA3B4FA + 1F9B4D96862932704BE0C022C9B4D466949424E361147299B7FCA75DA76A8DC6 + 6989A0D9EAD034C9E4924E0457C1272E130C9402A3E782C833D2E964E80A3FFC + 7C7922C7D96A8D268C8ACE21F7C72AB5F698B1B54DD2B1BF93C2F707BBC4E7CF + A683B87455720520B51C45712537EA9F707D2E39EC7486D6ED94D6B0CE512123 + 716C4F87588BD1738B48E6E87536F96C5A18DBD2C34E10FB9EB31652A69AE33B + BA5D0AD2480AB9B4D0E511962E0E04A6DE080B67920BC7BA77C6262349373FE7 + 07289D114D4DB2868185E217F8D9542A16E668967585CEEC0AAEE9365C9996C1 + 1394DC683E0C8E38AA54A9350AA59A5F9772906493A8675946BCEBC2862B1557 + F27C94B14A2AF675D87BB06EEA6D085893D5A5BF9B248941FEBF479FC05E5585 + 798FEB2CCB79F9A53FFDD0A5FF28E57F9C6255EF1859D5DF0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Reload file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003BF4944415478DAB5D57B4C53 + 571C07F0EF6D0B686CA2267399DBCC62C6329DD53075CE643311354E17093141 + D420086EE283D56DC0E4210FEBD4896150D0B6E06B13C139249B6E632CDB9C6E + 0ED8260E032B0CFF3181098C1228A5B4A5EDBDC7D353524A38D5FA87A739E9E3 + 9C7C3FFDFDEEB9AD4008C1931C823F9076EAC6E36ABF3BDC58AF4F89B4FA7FE8 + 9F3909F83479258229CAB3A5FAB70EDCEAE86D70B8C95BFEC82301510AAE901B + 2D5D181C76A0B1BD6702F248C0250607B477F6C33464C7A075148D6DDD0D64C4 + 11559CBA6E2020905A7E9D14ED8A84C32505059887EDE81BB279115A49435B77 + EB88D5BAAA3C6D433F17F8D0708D14EF590D9B3338204C0198CCE3C8808522C6 + 2E23CD507181F7753F929294B5B08E8A93C29CE2287A86EF638A620A9E56CE86 + 401FF77A8770B3B50B9DB6BB988117D8BE1E93193443E002EAD21FC8897DEB60 + B18F032DBDB771E696168D9DD721C944C8426498316D26D6BCB801892A35DACD + AD387C671FF2E65C8344B37EFAB30334830FA468BF27BA0FDE86D9E666EF2BFE + D6435B7F889D0A390DF64C197B96B3D7CAA94A487291CDBA35EDB0DA9D28A8FA + 1534830FEC2DFA96E852A33038E2466DC7655CA0C09EE51978EDF9156CBDD5D4 + 84F3C612B4999BC740B90FAD8D6C637B72CAEBA04F8DE203BB0BAF127D5A3406 + 2870F06735B2230B112A0F9B702DDC920BFB1B12601C6AF255E59957DE347A81 + B25A94A547F381E4E35F1343FA46F45B5D014FCE2FFF7D03ED3F59207271AC5D + DE7979590B5BCF2DFB0EA7F66FE4033B3FA921868C189886F9C0BF837790FE47 + 2C640AC1D7220F12AA0845E5E226B6274F7F15A7B362F8C03B47AA8921735340 + 209891A7BB82B30762F940D2C7974859D666F4595CD8D1B29CDED17648F4AE16 + 5D229D12243741E1EB35089FBEF021C057F82C770B1F48D4541143F65606C437 + 47B050163C16AE9E7F0C2B9F8B7E6805F9276BF0797E1C1F48C8BF400C07E2BC + 40D3221FE0992F2B5F856659051442C8A453555C9F818F5614798113D5A8D0C4 + F3816D39E78921271EFF5B9C88FF6BD1587BC65B347FFA52C4BEA4C62B4F2D61 + 776D73F74D9CBB5D8018D52EAC0DDFC4320E967E89CAC3DBF9405CF639A2CFDD + 4E015A41A30A84B6452686C0EEB0F920C9AF2A411090B424139B17BEE7CBD094 + 5C44D5D11D7C606BE619A2CF4B644042BD0AC9E147318F7EEBEABBA5A8EFACA3 + 3F051606105140C4336F605B441AE6CD5A3CA1651A6D15BE38F62E1FD892719A + E87293D0478FE93DAB1173950B7C6B121161B275D33F2327664D7B1661F2A9DC + 8BACD156E252C1CEC0C0631CF9802320F024C603BCB243EF1878DDED00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Redo' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004294944415478DAB5956B4C53 + 7714C0CF7DF601944791F268E9E561151C1034EEA161E18359B22CD3B5A56E59 + A8FBB0B8655FE692997D58FC40B2EC83D99690ECD3FCE0125B34291349F64816 + 62DCA6C6CC283A85210C686F5B412A485BFAA08F7BEFCEBD1B60794C32F47CB9 + FFFFFF9EF3FF9DFF39FF73FE842449F02C8558021004B1F5DDDABBE8EACAA66A + FF59FBA43C95F7FE4F80A9B3BF8D24A477F04F1B4860000234A8392949E23510 + 25177FD67E6959D9E161CD6AE62201C47E01B2CF075C1D373604189C7D651A20 + 4EA935DA434693194A4AF4C0B22AA0690AE2F11844C261F0FB7D904C242E0291 + 39CABBFEE4CD9DCDDF19CA2BAD2449C2F4FDE0BB7C8FEDF4BA804A87A79A55B3 + 974DE69A6AAEB61EC80D4227DB4D4F05617C6C342E8AC26FC57AFDAB4D2D7B20 + E09B04AFF7AFCF7997EDC41AC03687273F4FCDDC3473F51693B97679A3F0FC23 + 88C7A2CA5C5754023A5DE1326861210ABEC9316878AE15288A82D0832918BB37 + E4E6DD56E71A00D779A1BBD450716CFB8E5DFF1A47607C74184391BC8ABF2F63 + EC69D43B98AF2BB2D4591A41A3D1AE395934320FC3776E5EE15DD6B61C40CDE1 + DE7252ABF2B7EC6D63689A563C1EB97B2B2E0AE93779B7FDC7952DBAC86A67CB + 719AA24E36ED7E0958469503584C26E0EEAD6B3E9FCB5A9303E08EF47FAC2F2D + FF92AB6F047965E48FDFD1F378071EF57CAE8F5D24E76CE92BD61B0E71DB77C1 + EA0C89A208B7AFFF9246806A3560C05CD778A0585F86C77C04DED13BD751E985 + D521303BFB4F15E88A8ED6EE68DEB0768606AF82104B54783D8E078F031EEE6C + 7EB194C1EB381D9880D999E0718CE3578F1B72CEBEB75895F65C5DC31E25A11B + C9C4C820C412E1BDFE33F61B2B3938D22F35B4BEAC8C031343100DCFBDEEEFB1 + FD90E37D67EF3E20683716530DCDB0203BA37C310F0CAB069AFD671C9AF2610E + E7EDBE33D6BE1C80A579BF320E7A8721BE30F71AEFEAF8695D17B12554543655 + 310418D1DA88B562C26899702BFC12559844167361C7629BCC091167692DA568 + 06E66602109E9DFA8477DBBE802DC89A241BAA6A0F68F274B09888C14C70E29E + CF751B0BA24B7C2A00BC1DC7F20B0ABB4BCA8CCA3C74DF2BDFE90FFD3DD6AF9F + 0AA0EAED73A50C9DE73354727914165A369B81D969BF2488990FFC6EFB375B06 + C877DAECBC708255693E2BD2972B6B0242A2F321C866D2729B38C9A78401E83D + 9CFEDF00F97670C69601755E41BB367FA5A1A51613904AC620934E2501C84102 + A47109A48768C56722A1D353DFBF9FD81C0045EEA85A35F333F6FF7D1AAD2EA7 + 5A655D41C8822808381695136632A95FB1E2DB370D90856BFF560DC6C26E20A8 + F758959A908B69A3B6108F452029098619972DB469C092983BCFEFC6907C8AC3 + 3730F114495220BF58A8ADE8CBA7482F2622BE54B66CBDDC3C11B024E50ECF36 + 958A7E45799B0962272E5560B516A2E51CE6E223BFDB36F0C4103D2BF91BDD8E + 21EF557566B10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Save All' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003154944415478DA9D94494C13 + 5118C7FF2358239BC10855C216978B7AC08B882850CAD28D56311AA3A072720D + 01E28E07120F1A713D18138D5EF082086811819616680882121450A389820A6A + 20C600765F9DBE671BCBD24EFA4F5EBE37DFCBBCDF9B995FCB2415370E30C026 + 049F8F5F6A06D70355CEF91699E4E246D70E85024EA70B6F3E7C85D3E160E774 + B84875D26B87EF7576463AD9A055D586698B993F515338B920402E57E0417505 + 66FA6E703E76546A390E565C855AADC2B43500A0A0400EBBDD899B7B423803CA + 1E3948D568D48101325901AC3607AEEF0EE50CA8A8B393DAD9A1090C9048DC00 + 3BAA7771079CAAA7005D973630402C91C16CB5E34A2177C0E9060AE8D6693163 + B5F807E48BA53059ECB8BCD3F71BECBDA8C3B7493D67E8ECB880D704902792C2 + 68B6E148460812A2E9A283D55678B20D0AB99C93C2B4E7ABB0B249499F20274F + 02030BF0A1BB5CE8EBD6C06D58B00A3737375180305702BDC93A07F0AA470BB7 + 61C12ADCD2F28C02043962FC3152C0EDFD11888D64C82B5A57A284542A0B5A61 + 55DB730AC8128A3163B09066FDB12852D32FBCC5CFB1CF108B65412BDCAE6EA1 + 80CC6C11A6F414F0E4C43252D32A8731313E02116B58B00A77B4B7128025355D + C0335AE89FA1B2946AB4E5FC1026BF8F224F249957617F39DB48BF814EDB0626 + B1B8A1346C69C4AD84351BB198B704CD65CBC9E2E67343F8F56314B9F912A270 + A92004FCA8C09B8F4F0177BA28A0BB5305C63D71431681A966A73CC55AFA8364 + 2542D3081FC25CF11C85B9E6854E4D01F326AB2A343931C526640D9BAD30D7F4 + 75B70706088422AFC2770F44203ACCF7161B6B98C164C6BB313D2A1F4F23861F + E75DEBEFD1040664B186CD56781BAB303F2E11B587C361305AD86126A3E4FE6F + D2F764A0571B189029C89FA3F05656E1D85589A839C423A7776FAE67C7D1877A + D2F764F065871F00AA162515A5D8D3B60B1883995AE151388D5538666502EEED + 63E8E9FF41CAEBACA4EFC9707F973F009054D45011161E792D7EF5061F855359 + 85DDA93DCEF79EDE64B2E08C1258C18FF7DEFF7E40E71FE081300C7309FF29BC + 509E7E8AF56DB898DEBF8A4BDF99F9D087030000000049454E44AE426082} + end> + Left = 552 + Top = 208 + Bitmap = {} + end + object EditorImages192: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'Save file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000036D4944415478DAEDD66B4814 + 411C00F0FF7AB7274A508AF8C1FA60212869658A51E9E9F9B8D33BF5EE940A2A + 908AA0082CD31E1A4561919169509F8D302A28C9B79ECFF3999A692A111691D5 + 871029CBF379CF6D6FF776F7D6B31163C52FCEB1CC7F8699F9FF66668F3B8C20 + 0858CB82AD039C01FE19159D1840D46A2624B3BDFE5AAA8D5C12B035A382D06A + 346073F40D8F7E079BCD0604F9D8082B5553B1BD2698D84AC5CC387E6CA5E244 + 793C9BA3AAAA0AC64AB5D83F011AB5064A0AB3E158CE3D1819FD4626764A4A26 + 63DA348A89AD8BC631101AAD9027C0E3A20BD49A3535D568805AAD068BD546B5 + 1F1E120B72EC992F2C6C5C575B8306A4A6AAC16CB152ED070201CE3A0174F5B5 + 68404A0A07B87F502408E0FC4B2B1B37E896012427A782C94C4F28160890ED04 + 686AAC430354AA54309AE9232B3A20CC15E4947157D0D2548F06289529B060A2 + 27140A04B8E804D0B7E8D080246532CC1BE90977D385015C7AC501DA5B1BD000 + 451207B89326CC3B905BCEBD039DFA6500F2C464985B3053ED8234614E20AF9C + 3B81EEF646342041A1825907E0B65618C0950A0ED0D3D18406C4CB5530336FA2 + DA27A244B0CD075B412AD7F2E527018FBAB82BE8EB6A4603E2E44A989E3309B2 + F3A54A7F770B1A109BA004C3AC71D500033DAD68802C7E750183BDCB0062E292 + 606A860FB895BE0182FDB8AFE482D1443E6647ED1AE362117C1A3741B16E0A02 + 8242796B0DBDD1A301D1B189F06711A03273131B1B9D9399CC2E00919B08DC25 + 62904870D0160CC3CE08196FAD91FE3634402A4B84DFD30BBC49D5E7BCE8E464 + C2A093B56CBFEE460409E2768EB96164721C24B898AA55F90310121EC35BEBFD + 403B1A102553C0A4810FA8CDF2267F212D54A25D671A617B5834D55F90646077 + 8E911F89844E6CDFBD3B8948B8D6C78E65CA87C10E3420324601BF0CF3BC4955 + 991BD963DE93A587A0DD52AA3F3F7E92EAB3AFE18EE32E80E8DC6E762C5346DF + 75A201FBA35D0165A73C5980F472170486D28B5E958E83D54650774E1F3DCEDE + BFBDBD37BB8D1DCB948F430800F9B7FC6D406048B8D8C38B37E9E9719C05D88F + 9559342FF28723A9D3EE1DF76F7FC2329B5706D87CE4B90F2EF66CF3F5F30FF6 + F6DDC2F6971C0516907273905DF4BA6C620900770A3B4EEB5606C0300CFC0E3F + 23111E0DE48830A65F133001FF532A3FFBBA761258EFD813CDBE25016B51D601 + 7F01F8E586DF3D4962A60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Cut' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005A94944415478DAC597795013 + 571CC77F1B428CD95815C680A28815C196A9450A51943A58A56AADA334760A3A + 48D401112AE468BDB032233DC47205D43A3A15C4110FCA259EF542A70E9D041B + B022386ABD0F1C0FC0EC266C92DDFE82C80822C61AEBFB27C97BEFF77D9FF7BB + 7643701C07B6411004FC97112A970BFB73AE47D0DA54B22D23CC1E9BA767B69D + FBBA005F44AB5745CAA6A5EE2C390825F9197689381640AEBAB66B739A6744EC + F2FF1F000F1FEB3978505556AA1A64F3BF790B00D16A75D8C4E0F4B868D94B01 + C2E72967123C22CA04A6AFF7E76DB8EB108070B97A676C942C62EA27C13D01F0 + C2A3D5295E4306AE1693223877FEB2ACA420BDC4411E50E99255B18101A37CBB + 0508FD325EEC420AF3270407CA62A2C2214695CAD026DAAD342FABC9310072F5 + 8535CB127CFC460E7B0E60C6BC244F3E8F5FBE207296FFB449E36057D96128AE + 389655BA2D43E5C0245437A6A5A824DE5E833A01606E4CC07897A67C1BE7E233 + DC138E9ED2C1D61DC5D78D66F3070777E4B6381460ED6A8564C4B0C11D00B3A2 + 950B5D5DFA6DFA71E5127E6FA1107435F5B065FB1E236D328FDF5B90A9B7D939 + 14E08755499291C387B401A056CEFBBEC31357242D00036582337F3740615185 + 154F9F5B5290B9FBA99D430152572E917879B84154C22A983A2904E41133E0FA + AD7B505D5B0F65FB7E371BCD8CAC3C3FABE2593B870224C6CE95EC293B04B219 + 9FC2C763FDA1E1F20DF8E34F3D1C3F55F5C062B57E55B62DF35857BB57039026 + B892349F4F9DAB7D005069E902D0241689FA26AB63C0C37D00D4D65F8123274E + C3D973F5F56696995EB17DFD95EE245F0EE0AFE8473A73CB7032126787B6CF1A + 706F11C51A97C299CDF731D3970E1C38204D281080502880D09071B0EFF071B8 + 71EB4EC543CA38A7B268A3E1459EEB11A07750E2381E41141340B8E3128BD3A7 + 81837A8E8000DC1188BB6FBE230498ECEF3A382D391E7ED2FC0A66B3055A5B19 + 686E7EBC0E1FC92B5086ED29742F041005247EC4E3F32AF1A7180F3D69E6B845 + ADD59A0BED7B796490A26A904F90D4B997081E5FD3425AE214D0D79C85478F9A + E06153F3EB3E8C26F2C552FF3AFCE68373BB295DF69CAE3741803CEFC0CFE4EE + DE017051BB0F448F6BD9E0F724BCF1E34360D76F6570A8F03500C441CA488207 + 85B8DA60A06F7F0875454C67B3503E29F5BF387A4A8C572BDD020D55A51601C1 + 5472FC3E937B91FDC0D8721FCC8C719DC5C26C69FD6BE3A55706E8334659841F + B3AD2C37DB58AD29EE6A444A9394FDDDBD33FBBA79C1D5DA638D1C583E27587E + E4B080309587EF18686ABC0A75270B519DB59D506A608DB1B664B51F40AA3C01 + 04849A2DCC88AE3740D7CF7572166C27FB4A88960737AB39B36526AD5F7F9B0C + 5464D8000678FA41ED91AD1C636CD98B72024CA769685667B0D25284A0ED0BC1 + 18650106308A63B9A554B5E667DB9C7074C250273E3F0513743ECFC919582B53 + 64B8D73C0FAEE69BDAC0DA011EDDB9044D772F2B285D8EE64938156BF032DFA1 + 2F72696D76A25D0064A0320073A00AE905B63C68CFCC914F0CC0960FC99898E9 + 9D3C8300EEDEA3558DFFE8EF19B4351E1D8DCA2F5E2C26057738E0F8D443D60D + 2EE5B6D8510504BA3A711201BC0D48EFDBBEDE82ABE566B3752DA3CF3DFF5C5E + 2000D95FA2A29A1B0B28AD26BA73D8920EA2E6549665A7D3D53907EC02E8181D + ED57D3D85336DB00787C2795D56A49A1759A35CFAE89A549BFA06A1C0BEC625A + 9BB3E9D500EC1C22A9229907F03D2AACA3B4D9CB3A7B4091879272966317D1BA + 9CCD6F04004B730EB6EC1D18EB031882E99DD714BAB6D6CD59C3285DEED13703 + 1014EF0E84E006B66D9662698FA7752F0C5AFCAE13F4BA88923496A25BD75274 + E83F23BCE993F205D84F514C0440AB404C8ACB5131043D93859E5175B5712800 + F82D7421457DF468EE89079A80C3D7515B29DB1A11C58C85BAE71FCB8E05C021 + 1E1527E184C274549885F2D80B883D060696434D765377FBBB05785BE35F0127 + 2DEE926095BE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Copy' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000030C4944415478DAC595CB4F13 + 511C854F37EACAC4F87FB071E9C28551428CF101963E9097A0086E340A1468A9 + 108218433542E98B020AA594221AA2890851145112092498B8003512173C0AA5 + 6FA42DD7A10821E9EDCC7446C2D9DCCDDCDFFDE64CEF57092104FB19C936C08D + 47AF922421A3643598A6D74AFDC91EBAFBA577004A742F49F3CD33E053C8E623 + 9D43D318FF3A37066F303559082AC0F5C601D272EB2C221BFC8A189EFC059727 + 80D1A99F63CBBE506A6F12105480A2072F88E1F639AC47F8017C9B7361DE1D80 + 6B35800F93B35F48209866D22A5C8201AEDDEF27C6D20B08853760783EC13AA0 + E8FC3178FC212CB883FF20FC783F31336D2ABB982218E06AC333C20C40E04F94 + 570353DF1731F07916E1C8D6F33EF70ACCE5E912C10005F54E625665C0178AA2 + A57F9C174494D97BF4C861B87D21CCFE98436BC525E10057EA1CC45C21852714 + E175F8763698FD33BFDD303BDFC15A95291C20BFD64E2C5532B80311E8FB3EF2 + 06284E3F1E5BEFE89C68D3C88503E4D6D81800055602E1841B573C7E34F57D4A + AA219AB0A80039DA2E62512BB0EC671A708C504785231178D7A2102B2C2A40B6 + E629B168B2B0E44FDC809B114F73DF28C40A8B0A90A5EE6000B2B1E40BA3D93E + 4C1D1661AE9C7F3D0AB1C23256CB5D7100CACA3662AECEC1A297A5016F0006E7 + 08C40A8BD99F1207A0505989499B8B05EF3AF45D83D481D1681441E6CDC50A8B + D9BF735B7600E4E51662D4E661C193B88155A601A3F32DC40ACBA2CA88079095 + 9989A13A1FF34C0366FB9B840DF8D6C2102BACD64A291D40AF611AF0B2376076 + 0C41ACB0AC6A191DA0499D17BB05AC9FA067105CC2624BA9AE17ED1A051DE031 + 03E0E2003074BF0697B0A80D484FC4D6329D031D5A251D80CFA003070F814B58 + 6C5135F6E049CDE578008984D7FF089455ED9CC2A2A54476720B40D78DCEDA1C + E1008A0A2BA7B0D852A9B3A1AB2E4F3880BCBC955358B4142B4FC75675A30DB6 + FA7CE1009BBF152E61B145A3EB44F7BD02E10099A5264E61D152283B155BB50C + 80BDA1501C0097B0D872F7E17F00E012D69E0370096BCF01049DBC2B5480FDCA + 5F361ABADF2F11DE2E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Paste' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003EF4944415478DAD5D76D4C13 + 771C07F0EF69F1CDE20BE3ABCDC4C565F1CD125F6C6FE614DDE6D4288F2D5011 + 51C008329C9BC309A90E285B167589D444454AD108018456C1C4642FDCCC1E44 + 1DC9145C612805C102F2D04285F65ADA2BBDFD39AD51B9FFF5A8B8C55FD25C7A + FD3D7CF2BBBBA665789E473018868154BC9794B460F91B4B8B49D6F6E9F7A4B2 + B293B516B79B4C3ECC32827399D9005469FB8F8241DEF39DF06343E5B1FCFF04 + A04CDF3F4032DEE2038814F2E7E11AA97ED878EED892570A50EEC85D4E3E5393 + CC2292A220E52B9F54DC24E57E52554CFA181BAB4A3A5F0A5096BAEC3A03E6A3 + 1793AF44A86435DDC035884C4253766D4FA42C803EF51D7EFD9684193D0E34F0 + A838AE951CBE6B9F56003C5B7FF7762BFA2CDDC8AEE999B15A49C0E880E5B9E4 + 23CDEF4293BB5B1270B8442F00DE5FBDE2E9B9BEEE01D80647E70620F712BC12 + 40B8F1FA02ECFDD24F53954FFA7E98197C13FFC8BDA954AB7685047CA656C1DE + 470778580F4C11FB70EAEB283C534A1F4D5ED5BF98D1DC66BD8109F7C620820E + 4852C166BD2709302EF80AA77363E00FC81090B8DAF200F671164DAD3D37469D + 9E8D2682A002D6252961EB0D05F81265DFC4C1E79707E8B0DA31E460617FC4E2 + 5A4BD75F3CEBDEA42FDA6A17057C9AA8C4486F071DE09E8449B117FA3C253C5C + 0065976E490ECF8EFF00E32E0F861DEE270817FEB8653193FA15E28084780CF7 + D0019304608CD88BF27C1558EF94AC0DB4768FE0F29F5DE0FC8FF39D8EB1E97A + 461CA08AC7D0FD7F2401F5115FC0A04984D33385D38DCDB2105364CEE2450B31 + E69C44F77D2B2A3489E2804F547118EC920078C806147B6038A8C6B8C72F6B78 + 30026496A5DF01C385DF70E6905A1CF0B13216839676098097007250F16D321C + AC1FA517AFCB06E424AC128E07741770B6209902888FC5C3CE366A13EFA41775 + 8ACF092005632C37AB0D04234F67C2B9C21471C0DAB8580CDC334B02EAA70105 + 291875910D187F97BF01F55AE198AF33A252BB8D02888D41FFDD50806C5414A6 + C2E60A6F039A927A547DB75D1CB026261AFD1D7FD3015E1FB904BB0960076C4E + 0EA7EAAECA1EBC2779DD6380EE3CAABF4F13074412405FFB1D6A139F00C882A1 + 280D2313E16DE090AE16353F645000D1D1B0B6B5D2013E02989F85726D3A8627 + 7C28ADB9227B70CEB60DC2B1A0A416B587775200515178600E01506442AFCDC0 + F078781B28D455E3FC915DE280D59B37A3D7DC422DE67C9C00282BDA8921B201 + 43DDCFB2076726AF178E5A02A83B9A290E58350DB8739B0EE038F2559C85D242 + B28130EF81E2E3128037DF5E8A099B8D5A1C0804F0D3E25C9C2CC8109E823906 + 2CBB494E7D18AAC1AF4B34384100F6B90684FA6F188C2D79E5F27E89488428E0 + FF887F016566AFDF6F043A120000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Undo - internal editor' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000058C4944415478DACD977D4C53 + 5714C0CF7DEF95425B5A3E3AA0403F00C10E61181145E3325D9625CE382D5FDB + 849A9925FB6B7FCC7FCCF6C732B26C59FC677F6DC9FC6B099F13069D4B6662A2 + 09D962C21481513AF90CFDA60815F92AAFED6BDF4E1FD2A9B4884CE66E7273DF + BDBDF79CDF3BE7BC736E09CFF3F0221BF9DF0010428431B7B62387A718A9EB72 + D5D84E297DF4A53700688D26334333BB0301FF49475BCDB50DA78F36321AF52B + 0602E424E1A1942750842719E0611E08D850DE6F244C5AAD6D86C16D0034525A + 6359B07C7F2535D8DFB712E402C71CADD5B7D7376B8C262305F0556A6ABA3A33 + 4B058A945448924821140A011F0E83CFB702F7EFCF81C7ED02965DBDC6037FDE + D65C7577CB00D9B51D9AE414B9EDD0E1D7C0EB9D05B3B9DF1B64C38749989BA3 + C5A216B95C71BC707731C8158AA79AD8ED72C0C4F8C82A1F0A7F606D31B46F09 + 40DBD07958AE48BFB9B7FCA0B076CF330DA37787ED7864354793B73B2FBF30EA + AAA8804D402216191ABCC307581F4254FDF074006377955299D9A5DF5316DDE0 + B45B8150047272B58F09E7380EE6EE796071F101040301A019115A2605323255 + C0E0F37AF3FB5918ECEBE5037EF64D7B5BF5F54D01D0C7177273B517B579859B + 9AD833ED04FBD44488E382BFE0F12B6806370AC8C2A03C4ED1749D565740AB72 + FE015E78300F16739FD3C7065F9EEDAC5B8E0BA0339A2EE90AF41F6664E5C4F6 + 2DF6C9D161F0CECDF487B8D039677BCDD0937BD4C6EE121A484BA64A5DA6CD2F + 8ABA6972FC2FB498FB0B6B73D5E79BB8C0F46B91BEEC2D456A7A4C8088A987FF + FC03CDCF9EB035D75C8D67A1ECF7DA942246D293B74BBF4799A112D6F0AB00F3 + 9DDE799B3F90C577D406E20198F5A5152512A92C6EA02D2F2DC2986560850F06 + 5FB5FD5833100F4253DF51CC8824C3A5FB0E119AA685B551CB009EF79EB03655 + 5F8D09802E982F293F9242D3CCA631B0303F07D631CB4CC01F38E0EEACB3C7DB + A76BE8BEA229287E3B559929CC673D0E70D927BEB336193EDA009051D7299349 + 12974AF61D81AD34EFAC1B5CB6F109B20415D69F0D0F625A0113575A5A66933A + 5F2FCC7DCB8B303932706BAAE9F4C10D00B9EF9A8AA4C992D15D7B2A622A0C63 + B60B060318077E1C59E0301EE6E7A623CFD598EDBA63029CE9CA172749268B4A + 0E08732E18845173AF67AAE9946A0380EEACE9F5C424D98D54650E6EF40B7D4D + 212AC33114E27C180B4E4CAF2EFC1CACC013173E4FD85D43ADD0D3C8C502C834 + 7667C8988499C2D2CAE8DAC8C0EF8016201B00D21B5AE5C994F45BCC129C209C + 849D1185A110EFA088DF616FAB9FDF926F1E69D9272F49C469AA95C292358088 + A6F1A19BB1019E4CB1CFA3A98D3FED4F4C90DED614963D7441006C6383767441 + 344BED2880CED87D5EA6507EF3924A27CC575796C0631FEB996A3E7DEC3F0068 + A474C6BD968CDC027D629254588904EDA2F7DE97D696D39FED3840A4AE242549 + 2FAEBF7DA44DDBC7D10D6C39A6E3FE1D05509FE93E2512893A952AAD8866D692 + 1AEB5B86FBB3AE3E5BB3A162D32BD9BF6AB51D099A44E6139A308D6919D98411 + 2508CB111DDE19077ED2C137ECAD861BCF1D20ADBE459E4CA467B1687C2C4E94 + 14C81469405174F4F7A5052F5A60A9151356C33AD0B6002237664ACC14E38554 + CE4358491152CCF354394AA9148B25B418834DF4F0ADD72BD82A9A1E53B0C5C7 + 062A2377816D0360A1BA48087521E2531C858E970F88142E1A959247B5C25AD2 + C1B7063FEBB30439DF5177FB99B9E86FCF0AA06DE8DA47D1A23B529922CEBEC7 + D7306D03BBBA8CF583BB024BF0FE93C5EA9901340DA63A8CEACBE8DFB84AD715 + 0B7584E32275E2537BB3A13996BC6707C0AA4631D448428244445154544018FF + 0BF07C18C790D071720BFBF7E05C68B7F69C63E3C9DB560CA8EBBBDE41E55FE3 + AE3C9CCE62F7E1D1091C47F1DF512FE1C3D76D2DD5D3B0851613E045B5170EF0 + 37C4B4F9DF3A48150E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete - internal editor' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005624944415478DAED57DB5313 + 6714FFF69A90849064C3452E2168C53AA9961614876BC61105D28EA54EC7E9B4 + 0F9DFE417DEA535F9C4EEBD88EA3CEB4864BC74182545B42A05AA8CA48E42AB7 + 04036477C95EFB7DD1ECAC6C08A00FF6A1E7F1EC7EE7FCCEF97EE7F261AAAA82 + B729D87F060086619AF278C3D92213457DAB007035120A5E7D13073E9F8FB630 + DEEF00503F5614E57C64A877481FB401C04BE7FD07CAAB7CABCB0BB29012CE47 + EE0483AFE7DC6FCB63AC3FB9DCC58192722F78341E6665416C1FB9D333941540 + C67945D5115F499917B0C90DF0F0C1B028CAD299B1C1EEC1FD38AFA9F13B28BB + 35E82E2E6DF0561F0728BE8D441C3C7E30BC361C0A320600EF379E4B3B2FAFAC + F61597556A8636D79F83C97F465855519A47067BC6F6E23C13487169A5AFDC5B + 9DD6212FD147F74122BE72793874F34B038093FE8FAEC3035DA59E430683EBCF + 6320FAF8415C16A453A3F7FA9EE4725EDB74C683E1A63B6595873CD09EA69F8D + 3E02B195851E3E36F3C9F8F8B8600070C21FF89C20A8CB878FD660E63CEBAB56 + 61FA9EC796C1CCD4C33955119A2243B766B3398759F45104711B5E6121537440 + D33F9B8D82D5C5B9BB5C9C3D37313190DC918475CD9D177092BC72F0F07B94C5 + 663738882D2F80C5F9E8849264FD91C8404CFFED444BA001E0A0DB5375B4A0C0 + E9D6F4AB4B736069617A8213A496897B7D6BE9EBC8550575AD9D6D384EDCA8F0 + 1EB1E617380D2056166791D13017E34EA368D2696F0E040812FFD953F5AED566 + 7768FFA2AC2DCC4ECD62BC5A1F0E772F65F4390164A2C170EC97031507197D34 + 19599C7F0A12B1E57E2E3ED361613C5D3849FFE0A9AAA6F2ACF9DA3F1B893530 + 3F3DB92A09CAC9BFFEE89DD69FDF1540E63E6992EC2B2EF594395C450610CFE6 + A2B042E261C89B3A78E798C99CA77D43E53B3F33B92E8852E3FDDFFB26B69FDD + 1380746A11A309BADF5D5876C855586230B2B23807909EA2684DCF732C4CFB24 + ABCAEAD9F060F02EC8227B06900651EB7763366BBFC359780C3615904B84D416 + 589899122549EACAD53DF70500096AA916C6DA672B7034B88BCAB2FE2B49228C + FC892ACBD21723A1EE2BB980EE1B009277EA3BEC4E13F6D4C114B9B21173F9D9 + 0CD8E2B8EF61DABF02BBC86B66C012B4E417B4B8DC253B6600D6BB2A2BCAC5DD + 26E8BE3980DB2C3D569BA3CEC114E68C4C140548CC7911484A67782878EB8D01 + A02AC009FA375BBEF3C8F6A684CEA1E9861A0F41909A1E11311E5B6281F28655 + F0614BE0280ED43EBBC35561B11ADB321A503C9F1C835DB3C6C59460244569DF + 525B3C48ACADC605496C7DAD3EF04163671D4962BD306AC63098A02437128067 + 370761276C33319ECF489CBC54E07253FA7EB0C57328438B70789DDA3EBC72CF + 82A6763F20F09B76BBCB4A9BCC06E71CBB099B4D32C2C558BF7E16E004B806CF + 9828DAF40A0876733DAAB06CBD7E78E59A86E7E10CB89A6F7752FA94EA53CB25 + 3727A1C1C6EDD3B0B6A9BD0923F05E5BBEC34AEB40F03C8BBAE3DF892DA5E9C9 + 9F3D1B3B0238D9DA791160F815482A4C4F2A8D5C420A3ADFC8B90FD4B6741EC3 + 31EC769EC5C6E8B387DAB3B0C5DF55D8A5B64824C2650700372288BCCB64B618 + 0CA31A876987A492B2924A2F352D6D874940DF329BF33CAF808099100521C8C7 + A73FCDBA11D535B7A1920B51B4D9ABBF475996E15D265945C65A47878211B007 + 395EDF516E32E3BD90943E3D08C40949162F8507825F67E5C0CBBA0F9194C98B + 3800F77890E23951016AFBE8604FFF5E9C6BD7F1A281FD4A90D4299A366BC1A4 + 527C223C70D39915C00B32BD0081139457962455C1E40BA3A1DE1BFB719E91F4 + BBC06DB94EE0641B41128847704C2B3BBF0B34F4E9CD96FE062EA3D7769B6CBB + 83802F23B7F747B8979F531439B0E3CBE86DC9FF00FE0569910AEE33CBC1D500 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select all log entries' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003724944415478DAEDD57B504C + 511C07F06F8D5E5B44A2642A3D10BDC623D36886C86398D18C84664CE9A9844A + FF30A212D5F8CBAB48A8D050DECD9841F460480F9A495B0AD9F4D864253D94AD + B6ECEEE8CEDE3DDB3D18CB3F7EFFEC9CDFFECE399F7BCEBDE7688C8C8CE05F86 + C67F8022C067CFD9BFA2C93912A23126E06262B05A27F78B39C70DB89018A456 + C0D698F3DC80ACC3EA05F8EFA700323900BD7D621495BF02FF6D2BDA3BBAD1DD + DB0F59FFF1FABA30996C083BAB6958B5D85EDE1E2B02A88043AA01350D42A45E + 2940BF7880F30979BADA08F7F180BD8D996AC0010A20430540D4D983D8945B10 + 0F0CFED432EBE9682339CA1B130CF488FF026980F3092420ED6A112AF8EF98B6 + A6A626E6CFB184A9B121BE890751DBD00AA1E80BAB8FEF3A37B8BBD8116305C5 + 5200E71202591D060625884CCEC6E09084C9856E5A0617072BA62D910CCB57A8 + BDA38BC92D59381B7E9E6E04203836831B70F66020D169483A79737B27DE0B3F + A1B3EB2BD6AF5840D464DF29C1A38A3AA6BDC8D11A21DEEE445D48DC6F00B842 + F6F4758236E4155642D02A62F28EB3CC11B165E5AF03D2E3B9017DDF0650DFD8 + 8686A68F68148A206811B1B66734E6DA4C4794EF6A22BF2D9E02383306A055BA + 05B70A9EA3467A060C0F0F535766DE9C1908DBBC9CC887D200697124A0AABE09 + E9D70AE5CBAD1C86063CD8599BE14B4F1FEA054226BFD0C11AC11BDC89FAB083 + 544000AB83EC33DB7B3457FE3B1A53268D8787AB3D9C665BC0C8505F9EBB9E5F + 8187CFF84A80A52A0099DC80D34A80B2AA0664DD7ECCB40D78BA88DFE1057D9E + 0EAB2EF76E298AA5C7B422204805603B0D702A960DB876BF0C4565B54CDBD6D2 + 14D15BD710031FBF744FBA056D2C40A01709084FA00052950037F2CB51585AC3 + B4797A3A4888F0961FB7A3C17FD382B49C87501C4BB63DA19B3D08C00E2AE000 + 1BF0A246808C9BC5AC9C85993156BB39415B6B1CAA5F37E349653DF165D8989B + 20DA7F2D09384401A42801862412C49DBC8E2EE95BCE153ADA5AACCB4A761125 + EDF621EA76D20027F7FB139D1AA5275CEAE57CD697A018E6A69311BC711992D3 + F358357B433C31DDC48855BBEB701637E0840A802C647740FED397A87B27C4E7 + AE5EF93B306DEA442C72B285ABF34C6848877C50528D0F0AB7A2B39DA5FC5D50 + 8C082A204635E04F45442205705CCD80481AE0D83EF502A2922800B5CEFE23C6 + 04FC8BF80FF80EA9CF11DF1A48E3DE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Display preferences window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007A84944415478DAC557095455 + E516DEE7DC893B3104C6141743080DD78AC5E3112126E6D0C31E8812468FF482 + D5D3952F9F78D17A4DDA642990E0EA65EF65020EB584045333B39C000B0C824A + 251C4040042F2077E05EEE7CDAFF8F176F8A48AD569DB5CE3AF3FEBE7FEF6F0F + 87E1380EFECC8D21041886F9551FCD7F624514C7E71DC5AFDCAFDDD280CD3EA3 + 7C47C177BFC60EC5FE4D0494AABCD7FFF38CEADEF01070E0F7758D4DB0BE706B + 7E79497ECE1F432053F5CD87856B63ED0E8E5881018311B25FCAABAE28C99FFA + BB1088484B13DE2355FC1FEF0638C0BE7A4F7141A3F3D9BC85CB27B37C61FDAE + 0FD60B7BFBB5E07038402276832757AC35DBCC5CD4A73BF3CFDC10AA0D0872B1 + D9D8F1CCE9B232CB6D0910F070A9E293479366264D89898475851F3A7A7AFAF3 + F0EDEF3896797562E8F8F0B98909705F4438F42101E205B9440C47AA4FC2E1CA + 5AB8A2EE3B85EFBEC131102D15BB65CF4888E3359D6D81F32D6DFB9A0DED8FBA + 921891C0BC4C55715AD24CE56329B3C164B182482880FD87AAA0B5BD13B2D293 + 412A1583C96401C3A009CC161B38EC0E943200CBB2341CE75ADA61EFC163E0E5 + E90E33A7C5815024049BCD0615FBBF8296D6F622D4C9E2D1092855559BD6AD8E + BFC3CB03B47A0308057CF0904BE93B7AC32098CC16B0DBED74E504DCEE18DA9D + E7C49E8D9C5FBB262122E7A79ACEC2A1C3D5954860DAA804921766472B027DBF + 2D787315F46B06C08AEC5DB79EAB5AF8BEA9152E5E525342803AF4904B401138 + 0E42147E806EBF09DC601C84928F76DB4D86C118D754BDA508310C054F65CCFB + F7AC8458E84540B2116387BFFE1E9ACE7740E4A41008BEEB4E9061383804D00E + 18A1BBA71F3AAFF441A0AF0F04058C43E3D7BDF0C5E14A686ABE905751F2CEAA + 3165418A327BC1B4B8E85DCF3E950EEA5E0D052FFDAC1A84A88759532281C763 + 7FE1F6A1D57260B1DAE062E715E0312CF88DF31AF6C2AEF203D0AD563FB6A764 + 63E9980860A13957F4EE6BA1C4E8A0C90C87AA1A60C068823909D1D420C332C0 + A2F26CA80533825A7177757B4F9F0EC9F251C07CB4CD42D7153594561C385351 + 9C1F715B0229992B2227878735ACC95902BDFD3A34A6818FF7554266EA4CBA72 + 3E9F071A8D0E957E1C7E3ADF428DDCADB80BA6C6FD153C3DE494880D49583143 + 042860F20D0F33E483925D70B54F1FE15A278609CC5DB4329ACFB2691CC3DDCF + 32EC03AB962985111327D02C207117632A454D0EA52BD7E3BDDC77B7DA068DE6 + 172D9C6327312464D82CB144F4CAE3A94902B95C46BDC063799400B14F489CA8 + A987EADA7A335ED7301C538B24CB3EDDF64E1D25303F2B47BB76F5527745802F + C86412CC5B14966E80BAB7F893AFE06F0F46E1EA6420E4F3617BE97E68F8F1CC + 2A1454DE0DE5F985097707BF3967F634EA7681800752891B98CDD6612F907AD0 + D5DD0397BBD570E8E809CDEEA23C2F4A20352B87C30BB8AAD163DAD9E98BCE3C + DFBCF37350A63E042C8689B8FFA5759B406FD5FB1F287EAFDB954072FABF0224 + EEB2CEA58B338642C5E381B7971C749821047C88046FE888FB736BF301319961 + 02655B7369DE5B2C16B0DAAF2B7C5BC5115890184FAB1D2E0D5EDFF01EE86DB7 + 26B0ECE985149090F5C74C203ABA119C3CCF7925F73A011282E7972F76F7F7F5 + 064F77775A7C747A2358F078F0583DDC1F790F88C5229A6A24A59ACFB7DE1C02 + A56A75E884E0F5298FCCA2206EA81B5F1F4F50A3889DE0441B1D9DDDD0D9D50D + FBBE38AE2B2FCAF3B8E601552C16B434069838ACE951FF489D23FC4B64041831 + F54E9F6BA3C602FD7CA8C27BAEF643F1CEDD568BD5FABCDD6CA722E4897819F8 + CEDB4F2C4811F8787B51306F4F39884402F4AA815E1FA9AAC1665563E61C8E3A + 84FC0671CB701127474CC3207FFF06D5B24CECF38334FF9B2F74C2A4B020AA68 + B28ADEBE7EA8FCBA0EDA3A3AE937E31581F0E0941818770D5C80620D0DF6832E + B586D60A72EFED822DD0DBA31D390D6F2A4499AA0BCB976484787B79D1C67219 + 4B2C89FF1D9809AE0587A8DD1953677C89F882FC7DA84D759F96DE6BBFD405FF + DDF2D14FE5C5F993C65409B123668C5704EC58949E320CA8C1B4A48585656F09 + 4E561E14E0032281002E75F7618B66E8F3C2FF6D87B64B97C75E8AE72957E6DE + 377962CEDF1F9EFE8BAE46E667525EC9204D0449363E9FC5580BC1135BB61F8A + 6EC068A61DD3094E88ED28DB07F50D6736602B7EEEB604C818259649EA96663D + CE9061C209EE2422E00B402E13831C3BA10433830C2C048CD40FADCE408FAE9E + E1E34EC4FC5AEE66BBD63010B5775BE10FA31220034972E2F4F87B2786DD043E + 92DB472A32AEE043E73CA8A9FB018A3EDE7304753063740238928585042BE7CE + 99415D4D8689E3276A69698E7F201AE7808051C1DB7074FBECCB4AF0BBD31BD2 + 9267A3B7A4040A36179542C3A9E612EC8899A312700EA521E31549A1210A043F + C999CCE68D5823C864BC0647B5091193C22001D3CE15FC68552D34FED884DDB3 + FF1CCA630D035CAC4C2A79367D7E2253DF781A1A4F358F6D287521B105890763 + D752EDDDBEB1CEB54EF0587ECD0B2B9788DC84A2A1E10473FDE5B736991D9C3D + D675844F59941D83DD351727E4D6B386F67F8E692C1FCB467E4CB2325263C3D0 + 438440CBC50E78BFA8F4F7FB31B92D01FC354B9C355595101F437570ECC449D8 + 7FF0F81FF76B465CCBB0EC97CE9F53D4AA8EB1D9A7FFE69FD33F73FB19F804B3 + FD5068AB0A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find text - internal editor' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000062A4944415478DAED977B4C53 + 7714C7CFF501A5E555ACBCDAD2DB427B690B2D50AC607CA06CD9222CCE29C63D + D8E21E68B2CD99ECF59F4EB32566D1658F2C19CBE6DC12933D743E705B6640D1 + 6D80CACB09480BE5B6F4410B94BE6E5F30ED7EB7205B810A2E31FCB39BFC726F + DBFBFDF673CF39BF735A2C140AC1621E58B40FB838D18061B069E6FB88F7A259 + AF299F4312C31312ADE89C3FC767274CA4E699D95EA1E800C82CA45E5B0E852A + 75F82672400724D90FDAAE764066B3746969D9A971494CDBE627AA412412C2C4 + F804D88687C16434427363DDB099D4A6FD0F705F00AF1DAC0D7DB8BF0602C171 + 70BABDE07051E1F377E7AFC0470776CFD2956FD9252B59B7B1FBDDD7ABC11708 + 82D3E545F753601D75C2F7E72E856A0FEF5B322F40B4C2FBF711CB6042E5CE3D + B3DE0F067C70FEDBCF6001C77441460024F27829294CB67DF38E1AC848E50091 + CD838989BFA0BD5B076E97137C940BBC941B027E3F288A4AE0B96DE5201171A1 + 8FB484EF696EED0283AE1724E21C50AB9410C764C2C8980B46EC936BCC6E8351 + 9B053A5BEA032652CB425F792702205D2851A72473AE96553CF9C000C646AC70 + E35A23042728A155AFD74700640AC44F65F04527569755CE09E01C1B86E686B3 + F3C637961107EF1DFE202A40774713F829EA61CBA0B63E0280874B0E8A720BF6 + E715AF9B13C0EDB4838490411A2719D256B2213981090EA71B151BBD5CD3D723 + 23A3B0FDF18AA800DAEE36A05CF6DD280D9F47007085C40FF9C5EBB68B08E503 + 0520FBBAC061B37C623268F7464640485C576FA8284EE7091F680A4CFA3EB099 + C99FCD7A6DC54C0057D9E69D89896CCE3D8BD0EB410B5D0FF677871B12DD8062 + E3636DB8241F129339F316A1CD328820345A33A9212253804BDA310C2B5CC846 + 9E3ADA104031D04308277A919370A1C210847E429DB132022043285ECF8A615C + E6897281CBE501CE4F83219B03461D2ED45603301E0CD04F0C6E1FB56188ECBB + 3297315728799615C7FC1AEDA8A81E7A14397F2028B5E8B5BD335220A961C627 + D716AF7D04140A0514C84470ABDF08038343E0F77AC0EFA3A0A7B309E56FF015 + 8B41FBE95C0099B8E470329BF376414979548F1B572FD1E9D88A00CECC4C412D + 279D5FA3549781325F0E32711668064C486C0D0B0368E9FB7B80D4747E81B6D0 + 4B51225097CE1556CA8BD646F5D0DCBC0E2643DF0104706866042E6765CBD74B + 9525482C851C4106F4EB874047D3D362BF17862D06B8D9FA5B0BAAE0D2B90050 + 2FD189A40522B14C15D5834EA3A6ABF5242AC2AA198D88B04B8BD6A464130A50 + CA09C8CAE480CE608501A315917BC3628FDB01571BEB9C2802EC59DF8EE30C1E + 16EBCB2B5E8FE139B2A81EF6110B7434D5F798F45AF9340087CFCF64C624980B + 4B1FA2230185796248E7B0814442BD7918BC5E0A827E1F04D0C4A37B01E57772 + 478D464B44F87171C1F218468752BDF19E1E3E9F077EFFF5D46D14452602180F + 037005C4A658665C030DC0CDCA81A2BC1C58919C000624A417452171C01F1EB9 + ED4DF5E076D8CBCD06CDC5880244B38495907442816A683E8F964B7508C8231F + 32F4F56093F917BF9A90B4F263857A03128B402915013B9105C6A1D17FC4413F + 8C23839ECE66B41306F69AC8BE4F22F22F20DE67A7A6BF292B5C33AF4727BD13 + 6CE62A548C27B1A9FC7F99CAC39F97A102E4F27150E4E290C08A0B8BE9E5F178 + 903810161B743DA0EBE93886BAD90B910548FC92898B1F95C855F37A68BAAE03 + 2AC243465273009BDA82CD424251420FA22C010E791201C4C5C680D966079375 + 14DCEE29317A8211AB11FEBCD6780D15E2EAC81A20C81CB90A17644BE7F530A3 + 79D07BA3E50C02D83A0920243C79AA75F174EEB2B2F861F1F265CBC262CBB01D + 4D394FB88BD1CBEB7141D3C5B3147A8284E9FC676632973012BD8A556590CEC5 + E7F5A06742DB1F177A4D64AF14935755C508B0154E0613C56B8107E572B82F9C + 3E9674F7759A42C152E5968E3198F1310BF540D3D5D470F61B3EB6B57A4F2AB6 + 946553AD52433E2180C7CA2723DBD4760BC610F5989342CB13BE5E827EB1BEB3 + EF69D8B6EB0DF8F1F8D1E91E427B2C8D49B4A991874A21864DA50AB87DFB0E34 + 77F44E6AD1A27F55D3E7952B92E1E5EA0AD8F1E25BC3A7BE3A92B6F800740A08 + 66D67D8E53683B7DFC68F1DDD7FFC503999C3B75FCC8166CD1FF1D2F36C0DF20 + 51E6FDEB6377FE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Replace text' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000077E4944415478DAED567D7054 + D5153FF7BDDD64B3D9DDD02089902559426A07AD02AD03F958DA449DE10F14B2 + 6BCBB426D1B688C9AE3A2D7ED03A1DA70CD3D26AB0B5B5DD248C296608D2C2B0 + 9B508A26B680BA494034060404054A42201A10CD7EB01F6FDFBBFDBD1742361F + B4302D33FDA36F6667EFC7B9E7FCEE39BF73EE61F45FF8EC4E37C7DFA0DFEBC9 + BEDEB3ECFF00FEA701942C732D62023D0EB142484E274E414EFC30AC6DECF4D5 + 6D1C0F2016A5B9A906BE0EF2A5984B907F5361B15F747A1B7BAF1B40B1B3A68A + 91F00A041468DF0365838C5101B616AAFB00B2AAC35BF762128010562F426526 + 36F77346D938FB55755D516851678BA7E79A01D84ABF67B0661A073034C87262 + 4157EB860FAE0073B8BE2F30F647583CD6E1F5CC490240EA5A3C4A650776793E + 19BE847BB540F41C8687109EB9D70CC07EDF23B9A413D77362BD1D3ECFD393C4 + 3C020F5C8207A626034850E2EBFBBC1BBAC7C976A858644559D8D552FFCE7571 + 60FCB7C0B1F2163DE98A88310F0E1A712B360A80F7F9BD75791378E4703DCD18 + 7B9E73BEBAC35757FB2F01E43EB03DBFEFD5FB4F5D9E0AC58EEAFB1813BFCB38 + BF1D46F3D59024CB8F01C0F95EBFAFAE6C02971C35DF1198B005430FE41FBD2A + 80BCAA960D8CF84AAEB08ADECDE57F82D21D585E82AB29103A8C1B1EC4B83B91 + A0DD7A1D7B037B59C9008060374272F7550170FA9DDFE7F9E1A400722BBC0F09 + 027B056E9215A614E68576DF8A9D2668ED5124E5DEAE9DF567C7B8D5E9967150 + 180B609494633950F32444D7E31E4FF9BDF52F4C00602BF74D2133F5616C8692 + C6DE4D8E87ED0E772300FC000958ED6FA9DB30C6F8D2EA3B994E3C303E04AAA7 + 9001392319309E84931154039057E57B125AD623C608A3727FEF26A7B7C4E95A + C7883D03AD9B91059549EECC02A15EC7DEFC091C18FEFEFAF9F1F3CE2347B6C5 + 35F9F21A9720081E287E07FC583819B199ADD2F73E1384796A164B52626EFF96 + 6F1D2A5AEA2E1075F43EF64D08CBDB10DBCF184799650E889D459191D4222327 + E8CB5D3B3C272E7BE004D66E06173EC5FF5B582800D84590BF20CB54A4CA4D0A + 20AFD29B484949116548490965F199CD8E7675A3A8BC6681C8847508450994A2 + 9EB08F00724B54925F34E8C507305F0ECAFCA1D3D7D00A4EB4E3963D242B5B51 + 3F9E0780221846ADA05D71859E39D0EA394357F998ADAA851B0CA9A4A05EC662 + B1DFF4363B9F18D9CCA9D86ED509C26A292AAD3FB76D791FDD808FCD7AB085A7 + 1B8DC44491824381A108E3B77CBAC939A86EDAAA7C3E83C1501E89445E06B095 + 3704801A828C2919628A4E4FD1588C82A150270B22FF4D4ABE5E9FF2DEECFC7C + 3A76FCA373BDCD8E9C1B024025A125C3322FCD60209D5E47A15098BEF8626800 + B1FFC43A63C6FCECEC2C3AFAE1318A86A3F34FBFEAE8F98F2D4E0050E1FD89C1 + 68FC65E697A6901E0074F04402F40E048294979BABADF59F3D476707CEFDAC6F + 93736D71B97B9E20F027F0507D03A49C8E948C40CF49852B4D9DBEFADF63AC24 + 1B683099CA90358F839885984E83C9139CF1AD2C107AAE9AE812CBAEF266A531 + E1C4CDD9D966635A1A00E834A37A00D15DFE0F472ED1C1431F74E784DAD487E5 + 3528D1314E6F13E32A31F301A648AD8C48D95A3C38AB478CD79BCD3F467559A7 + 81626AF9E60164871DE31CFC770E0483655A2141185C29A9299E99D699949AAA + D7BC30EC8D6100A24EA4CEAE7D74D3D0DFFB041EB332992FF6B7D6FD6DC4907D + 99EB1E2EB236280DA170656837371ABF46A27000C6020959297B341CD6C2B706 + 0FDA74B3E90DACDB39293F1A7D8C2A7D2F198D698FCDB2D90022F5B2170042AF + D7FE8F1CFD90427D1DFB2CD2C9C3787426644489C3FD0F14539B1C8E4DED6A6B + BCD860366BE55C35521308FF3659D663492B14B9AE097BDB939EE335425EE5BC + 1D9999194B0AF2675F71BFF60F10E7CF5FA0EEEEEE1DA79B9DCB9295153B57E4 + 094A6A3109A4B66759E04236B830D860317F8C79811C9766BBA3D1537495EF0A + 8069DFDE6A4A37E84FDD3A67CE348BC5ACDD1AB145467C4E9F7D769106CF5FE0 + 929CF8554EA8BD4D20B612B7BD1D95AE406D4C9215260108626A1A0804F56BD4 + 66E9DF0140089E9D3A3573AD75460E0D0587D454C42F1086CA76D4F5D6783CB1 + 6B76624F2D48F8907680F3A3387E10CD420F5794BD78741AD5F7E10A00B32982 + 381B00405C332E33260560ABF436893ADD8378137A61F02F8A22EF3C23297B68 + DB72ED65B397D7949220ECC1B05F8ACB77EDDFD9F071B222BBD385D69BE58E7A + C0343C8F4BB35CD1E8E9F18691212B50FFFB4601946E3424ACE9D6FEE6E593BE + 5AE8117E0AB83FC7F0053CC34F25EF2D743E6CD553CA99E410D45B4CCDA81115 + 5870578742756348989E7E87280A07552F5E73536A2F773D42026B40DCDF42E7 + F3CD91F5DB4ADDA62999BC15C6EE52E712C567EEF7BEDC3FCC74516D462E7026 + D96B0231CD630D2A672CA65678E71EC05D75CD008A16AFC8148DA9C7E1859B00 + E25D90C08FC3C87976AFDA4A605D2D4A85706B99BFA57EAF66CC647A16A0D7E2 + A651006C43058C62B9186766E27CFB4020B4E4BADAF292A5AEAFA006D60280DA + 7C1A50E54E822FDBC23C529B4669A5E82BDDA0DB9F3B5A3C8D23671A2CC62528 + 92AB60F44E00310FF715D4842AF86B9033FE4F87D36F4A8E46D49D0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Find next' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000069D4944415478DAED977B6C53 + F715C7BF3709214E4886212F70625F278EED90C4260F424869697974C054542D + 0C69D368D9A6C1FE692BB55B55A91D1BDAAA6A6ACBBA5693C63F6DF7E8B62AE2 + B9760551261E2104B43C4A4C129BF899EB77FCB663C72678E7DE9634CE63015A + B47FF6938E7E5737BF737E9F9CDF39DFFB33934EA7F1BF1CCC7C2F2B58E55FC1 + 30DF9DFD9E6087ED16C35A7A4CCEFE9B44AEBCC480D938D707DD768BFEA17B02 + A0606E4D537BE9BAB67688F244309B8D309B8CD00FF662323A59E6761B3D73A0 + E5AAF4CE8E7DA8AE920B51DD6E8F60174E778233EB99FF03DC13C08197DEBAFD + C6CF0F30B939D90884630886A30886623876A61BBD3D97EACE9D7C6F68B6CF73 + 878EA4DF3AB81F89C924AD8F21108A0AF3871F5DC4EF7E7160710009ABFC9061 + 983D586474EC7B7EDEF747DF3FBC98EBBC05790720AB42AE8CEDDCF393BC55E5 + A5505757203B3B1B7D3A23FC7E1F26A261C4A221B2306A35EBF1C33DDBA09457 + 80737A31A8B7E0C2551D468707502597A3B5590BB1580C8F2F04AF9FCC1784CF + E745C0EB425FF7590427C32BC31CE7CF002867597659FE0AF3B6279F4669C9CA + 070630F8EF8B882562EB5D66C3B50C80D552E5D615A565671F7E7CF78200E7FF + F9F74553CC8FD75E7F7B418091EB571109FB9FB69B0D7FCA00A0F4EF5F2DAD39 + D2FCD0E30B0248D92A94178B5156B21C2B9717515186C8C20804C3C21C0C86A8 + F0C2D8B175D38200C69101F8C75DAFDACDFA57320164CAB76B1A5A9E51537A1F + 2480CD34028FDD7C8CB3183A3200A8033E6E6CDBBCB3B2AAF6811E8193339126 + 18FAA8139A3301E42A7DFBE65DCAE2B28A458B30160963CC38342D48BC00B14A + 0DBE212E5EB408C73D76980D83513A82C25919509D62183C7157FF22DFCF809E + 8268E83149BE97C9B7FDAE7DD3989B81928A6A45A128EFA654B106124905D8CA + 3238DD018C0742482513484E26E0B419118A84322A78E65825AF79A42037EF42 + 45957AC11824C988C5228F7196D1F3996D2857ECCA17159D6CDDF42D68341AAC + 5D5385E1D131986C4EC46311C427A23051055B4D23BF71580C2FCD07C07752FE + B2E5475A367E73C1184303DDF03AADCF72E69BEF6402B0CA83E2956587F836D4 + 36D4614D8D147A1347CE2EC13141E6B0993032D8F3116560DEA3A2423E525C5E + B95FDBFAE882312CA343308F7CF62E67D1FF687611764A648ADD0DCD8F90732D + 14B25518B53861E4E979E7387D907C1EF45E3E6BA1F393CF0B4017125975DDC6 + 5A6D1B0C2915D24C0E3655DF4634F0650C8FC34A6A78A9872E351B32758055DE + 50D4B7AC5137AC83B64E05E9EA6218AD2E98C65C441E139CE364DDE74E602A1E + 2A70381C13738E8055F96A9BDA5754AB3438CDB1A8D734C130A2837C5910B23C + 2F928928A9600057CFFF2348AD289E099043AD34D1B861DB1269B51A8DF53582 + E09869738BDD434513C5647C0289C4047ABBCE201A0E343BACA37D33372FAEAC + 5C9D9F5B686FDCB095AF057C6C9160F3D61D989ABA8591211D627E1BD4051C96 + DCF2E3CAB99388C68392F1B1318700504EA5BF7469DE8D9687B7432255A0A95E + 414A57082B6DCE5B344A008938D90474BD5DF039ED7B399BFE2F19E997A9362F + CD179DE301F818A78C6502407616832C32AFC78D1BBAEB28810DE37D1F20E2F7 + 6EB15BF5FF1200C861777E91B8B3A99D77AE82B6B60AE2A2028C39C7BF04988C + 530AE3D4099FC17A73E875CEAA7F51B6F7385D4231E7127A67CC04E0E7A95B29 + 5C1F1C84C7AA43D2FCE9E1B16B7F7B4100A0F33F242E5D7550BBEE51482A5968 + D42C0A0B4402006F914884001202002FA5C3FD574E5315EF60F71E4FAF6D7D2C + 63933BF3E7CF59F3BC63E072D1BDA0BF9F7421F56B6B32F52B1EE0B844AE7E52 + 4505289551F12865102DCD85DDED03E71A4738FC050065211CF0E1DAC54F844E + B85F007E4EA652E8EF1F00E770743124A5C3B4B99AADA987545A29002CC9C911 + 001C1E1F7DE922828AF1C6D742D7D9A34227E46EF97DECAB02D81D8EABCCF6EF + FCD8935F505472B75A4E2D99EC1DEE5E21D21E8ADEEF11F40F0C50569387192E + F832F3ED7D2FA4EB1AB468ACABC6AE6D6DB4300BBDBA51B8BD01F88351F82903 + FE2049692289577FF6147E7AF0306C63A6B2FEF4F69360D26DF75A842284B1C4 + 7D1967FEF84B4183EE1BE0F89FFF30FDDB808FD1DCD28A06B50C4F6C590FF953 + 27E6B4A18EDA50B19CAEF6AF75E07BFB5FC4B1F7DF9C06B84CF3DD7F4EE9536C + 88D934373A3B933300AED0349D8DBEA98D194214749BC0661950C044EE2CE921 + 800DD352FC750FBE437829A6CDD3A954F2B7FC595BCEFF2031DFDA070220FBFE + 892E86B95D88DBE903960F3A7AFEDBDAFF00C3FB8B4876F6FDC7000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Go to line number' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000032F4944415478DAEDD7494C13 + 511807F0FF808A21C193174F7AF1864BF0A69178500E1281B2A885162482483C + C852B6160A22880A523081164190A5416469016FC48B0BF12402D2960B85B204 + 8862116929D079CE5014179049FA0C17BF99CCBBBC97EF97EF65DE37C31042B0 + 93C1FC07089994F8A08BF8787B514DBC6073A032E502230870BDA49354A40461 + 95A557AD9B65DD50A70609041477924A59109657E9019278804C2020A1584FD4 + A9C170ACB250D4BD742B7161ACBF0B50DE0D8D2C5818E0DA7D1DD1C842B0C401 + E855A00B5569210C7350AAEB6108F683B089A3DAB0B79B02EE7510759A084B2B + F400C9659DA84A1731CC21A98E1C3DE607A36188ACAC38CA97ADB38AA9EE04DB + CF93E3EFB6134D7A28ECCB2C94F5EE6D417E8CFF3A408F4719A12EC0D980F360 + 59274CC6214C4E4E98098B788B56F4E2FBA2B8A2360E10C6019C142BA0477566 + D806C0D3830177636EEE13FA07FA61B7DB1F330B908DEA45D6B83BAD4493118E + 458A8054950ED559E17F023CB807CBB230998C309B47679C4E3621C0D7A95F03 + 389CC86F7CE55662A5F4B40B50A643CD56000FEEE5E0C7B9B9CFE87BDF076FAE + 14CF8B02B17B9727B50AC8CA3A50238FF83B801F0977190C467C9CB62043EC8B + 737E07E800541D78ACB8B83D801FF918B358306C184457478C5B89F78D4EAF03 + DA519B7D697B001F469309531366C8C54770965205D2546DA8CDB9FC7780D56A + C5BBBE3EEC2556E80A02E1B5671795E42E402BEA72C49B0308FF160C9B303262 + 9EE1BE176E9C396C6BAB928BF1C5BE8ABBCD6FDC4A9C293EF503F04419B9F939 + 30383800DBA2AD1E5F91C49F0331795AA25907D08A741E901BF9EB49386C3260 + 72627C9C25E4AAA529B4E7FBE4E8DC2652A588C43C4D40E933D4E745ADF782E3 + 27B85EF0812C3B1C152BF3B319BFF782E8DC46A296F300274A5ADCDB02D925D7 + 1664AA5A388084EB8612FD6B86617D0871268E3545F46EB648AA6C201A4514AC + 367A15E0010DB7A4C2BE072439F544932DA10B287D8AC6FC688180EC27449D2D + 5D03A85A7B852CD93292234EAE8D59A5CD68BC1D230C10A5D800D00A1ED05420 + 1010A9A8230FB3246BDD9026405B704520405EFB4FFE5EB485B1CCCEFF19FD07 + EC34E01B4481BFD0F9209B810000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open online documentation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005BD4944415478DACD577B6C53 + 6514FFDDB6F7F6B5AE2D6BD956D6752F1E610EE23082733823511245D87440DC + 988420044D34441431C40851FE3042FC47902886B85764846D44824A66344C79 + 4C05993CB357B775DDA32BEDBAB6EB7ADB5EBFDB2AD2D75AF00F3C4993D3EF7E + E79CDF77CEF9CE391FC5711C1E2451FF1B00144525DC9C5D7DE2718140B09AB0 + 4B39500514382DBF4E780BE1BB097BD1CF51A706EBCBDB13E9BA633731803D82 + 9C0D8B36920DBB18897C9E429506A95C0946228548C40477F87C5EB0D31EB89D + 764CDAAD98F6B87A88E27DC6FACEAF887CE0BE01E8D636653362E69858265FA6 + D5E542AE5025E556D7A41D16731FA6DDAE0B1CE5ADEAAF5BD777CF00B25F6A2E + A568AA355D979FA6D2EA10096FCAE520277523E0F7432814419A920A462CFDD7 + 00F9D92D668C9A7BAC540095C6FA8A9F9206A0AF3AF1848816B5CDC95D48CB52 + 94118627313AD805EFF454D4C965292AA4EB0B4033E23B6B6EE704CCC69B6CC0 + E77BE66E107101F06EA7A5F4A5ACDCC2B448E3BCB2A1DEEBC89C254179891E0B + 0D4AA8521858EC1E74DCB2E274C710DCAC00FA82228868264CCED477CD4A79F1 + 88F1EB0AE30C0048C2D52C3EA7C9CC59AA4ACB888A99F1D625BCB232073B2A17 + 821646E78CCDE9C59B877FC7E5210ADACC9CB06F76EB08C6878D178D75574AF8 + C48C09C050D3B2592C911FC9CA7F282AE67C62AD290A60D7FAC23B6BC6711F6C + AE00F2668BA0940A826BAC9F43E587E7E192E4861F80FC4C3D57E1713BB70E34 + BCF0453C005D3AC38202A93C35EA74B4CF8E93EF2C80980E193AD8E640F36FCE + 202F6504D85B9E8A2579B2E0FF339746F1D1197F940E3E7FCCFD37BAFBEBAECC + E7B8F70361000C552DA562B9AC3D2BAF10B16845A114BB57A705F93E0B8BCD47 + 46C3C29323B3E0E8F6E2E0FF61DB34AA0F5B62EA31F55EC3B4CBBDBCBFB1E2E7 + 3000392FB7EE576B743B549ACC9882A5F364F8A03204E0C0B7369CBA1C3A7D20 + 10C098A907AB96A8F0F1961000B3DD87EA43C331F5F0B960B30C1D30D696BF15 + 09A03D533FB754224B413C5A5128875C2CC037C4382FC71B1F21575223075AF7 + 9441AB0C5DBFA68B0E7CD6668BA983E4004606BA2FF4D5AD792C1C404DEB5056 + 7EA14E24A2912C59868D98931A40EDCE1264A825C1B55E129E6D5F9AE1F5C56E + 727E1FCB8761ACAFB63C3DD203FEEC824582247A5290BCA4F6CBD9611C7F6F39 + D429A13B6F24C6DFA83563C2ED9F5176A0AB1304001505409F5F9434000F693C + B5AFCFC5027DE8C65C3579B0B371044E8F3FA1EC60F79F31009010902BA8138A + 444901583487C2C12DF9417EE8B6179B0E9B30E50D2494F3FB7D18EEBF191D82 + DC9A93E7353AC332B144961480E78A9578774D50070E9D1947E32FB79392E31B + 18A9881D04C0D2C810EC4F55CFDEA150A625A568BE4E822FB61A82B7A1FAD33E + 98AC6C5272931356386C63D1D7902F448C54D2AED5E524A5882FCD52CE013E67 + 1CAC04CA59B39392B3988DC40B5365A41C9F0D0340517B05860D8BBBD2D2F579 + FCB4938858D738B63FAF874242E39393BD98A6350965F8167E7B74D0481A527E + 5429E67B417675F31662FC730222A1B2579FD662E393A1539FBD3E819D0DA684 + 32D6D141783D53F19B11DF8E0D358B7F55A834C591B34024BDB632031BCBB421 + 00371C78BBAE7FC6FDFC4CE0B45B3A8D759D0FC76DC73C656D682A10524C875A + 93A1BE7BC48A24B958886D04844222C4A1EF873136113F0979D7DBC6476C7ECE + FBA8A97E1D3F3DCF3C92196A9A9F22E3F777A9AA74325D4912BA7626E22BA6C3 + 3EC6FA59DFB3038D2FB6FDB39E7828AD6E594109A8E329A96AB554A6B82FE353 + EE49381D361B17E0D60E3454FC70F7B7A4C672FDFA967C0183269A668AF98193 + 6692F306EB0DBD117C5EEF1F7E169583C72A7A22F7DCD3C38424E626C2EC269D + 329711CB8203275FB2050261704720E0275DCE071FEB252E7793870ACBBF03F6 + 91C9E7E87F7A984401A92A2A23565751A04A8824DF08B47F7FB480A37A3870E7 + 88BAD3030D577E8C67382E8007450F1CC05FF369EEDFA56827D4000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Reload file ' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004B64944415478DACDD60950D4 + 551C07F0EF2E1830509AD2E14C4A5316658AC4588E366A12189876101E80B808 + A4A4228915722CA1E441531C722E2925082872188447C931638001D101EEA808 + C621729FBBB0F7EBB18BBB9CF35F3627FBCDECECDBFFF1FB7DF6FDDEBEFDB308 + 217898C1FADF01F62716FF5BD12F2219ECE376AF118C3F31D9979D14F0CD8E37 + A18B62F89E8CE21BA8B8D5562A9291B7C723A60550E8D89A9FAB1AD02B10A3FC + 66EB04C4B40032856E80DF6FB7A17B4084812129CAF82D6310D30248E4BA019A + DAFAD02D108D4110A1684384AF5DB756005F5E1109DFB90662A9422780502441 + 0F2DAE460C4A50CA6FA9160A04D6BCFDEB3B1901FB120A4884D75B18D2116034 + 83AD2C3C1AD13F8CB8DE544DF35A30023E89BB422277D94028D10D507BB70757 + 7EBB8321896CCCF1AE5E01685E1623C027E62712B5672D0462F9A4056E75F251 + 5477110DBD7510CA85986D3C0796735FC7CAF936986D68AABCA679A0197E655E + 70340E57DF57C96F02CDCB0CF08EBE44A2BDEDD02F1A0BF8BBA70E61C501286D + 28028BCD025B9F0D3D7DD5FBF0CBD0C0100EE6AE78F77927F85D7347A7B41559 + ABABD1D4D10F995C8173857F81E66506EC89BA40627CD6A1775003286FBA0ADF + 7C0E6D8B002CD670514DE1D188F1C72FD9DE546E4E4362298E241782E66506EC + 8EC827B1FBDE41CFA0AA878DBDF5704AB7C1B2792BB1CD6A175E7AD202C3591A + FBEB9177FB2CCED7A580A5075A7022E282355F9D37887719342F33E0E3F03C12 + EFBB015D421580936187CD4B3CB0CE7CE3A46BA2EC5E0142CBF742CA124F40E4 + AEBA3E0A7011342F33C0EBEB1F48C2A7EFA153A002D4B45561D15356982ADA87 + 5AE073D5113DF24E656125424F85C85951A30124E483E66506ECFC2A87F03EFF + 00EDFD523045C3402D82CA3DD04517DCE875707F26CE2DFD537D2D37E147D0BC + CC801D61D914E080362D006E85ABD121B937E96234D03342CAABBFAAAF0D4EC8 + 43A29F0333C0F36826493CE048011246C074821B978B13FE8ECC008FC31984E7 + BF490DD85B630F89420C858C40417FCF0A9902848EE574FC18FB71C4ACCAD70A + 101C7B1E2703373103DC43CF105EC066B4F6A95AB0F50F4B65D161805CA61819 + 2B60C29E85D0D792F1ECA3E65A01BE88CD4612770B33C0ED501A490C70A200D5 + 0CB85459AA8BDE4798B067E2CBA529986FF2C294051B7A6B61364B733E38360B + DF073B33033821A98417E8AC015458A88AD3E783FB90193082BF651C9698AE98 + B47849C3659CAC3C86A40F8B343310938953212ECC806DC1292481EBA269C1B5 + C523534F46CD8482DEA88FF79FF384ADD946CC3531A35B2EC19DEE1BC8AA4944 + 517D2E22D7E7E04553CDBF6FC8F10C241F7265066CE59E22BC2057CD0C942D1A + D77F0D443E326613BA17CB5810CB447844CF005C6B1E96CFB31DBB06A2CFE274 + 288719E012F81D9D018E0650F20A8C5933E1BB301A05CD99286ACC864C2A9B80 + 20F419F2E527ACE0BDFC0816CC593CA12D21C7D3917A783B33C0D93F89C40773 + D42DF0A9B0C5670BE3F18CF102E5E7F6C16694DCCD07BFA3923EF3F5C1886D8C + A78DCDF086993DDDB2974DB9280F46A521EDA83B33C0E9C00912C775D36A279C + 4E1C8C4A45FA314F66C016BF6F492C773BDA071E3020F234CE847DA41DE08156 + 1E155A01FEEB78E8807F00AFE9FBDF7FA0DB730000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Redo' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005854944415478DACD976D4C53 + 671480CFBDBDB7BD140A94968F52FAC18482F221A07398650B4B5C96B9645250 + 0C1F35D99F6526FBB17F665BB2B01FCB16FF6CFB63F6677159011D0885194D66 + 960C13A3388681898E8F21B78552AC85424B4B4BEFC7DE7B1D1DEA2DE21CBA93 + DC8FF7BDF79CF779DF73EE39EFC5789E87E729D8FF0A00C3B06D1B487FB4C742 + 907CD0D956EF11DAEBE36E19C0D4D25D85DE6844EFBC0A3C98000335D264301E + 26780C6EA2BE3EE7EC481FF4B7328FE8363BDE2448A28F619971A7DD5AF64400 + 265BCF4E0CB02F292AE90D5D6E1EA83334A05426038EE380CB64B01A0EC1F292 + 1FEECE7BC0EF5F98E1003E76D9ADF6757D737377354EC87FAEA8DA9B3C3438C0 + 38DB461400ADDC9600CC2D8E464C867F5B50589C94AB376CEE226426105886C9 + F1DB100C2E9F87201C8B29F82C92C2AF96955569349A4CB876F532049702A6B9 + AE06D76301CCB69EF7E40AE5A9F28A3D9830E304633EDA87EC4DDF9904B76B7A + 1C595416ED2C3564E5E8C467C343D711807F3FDD5E3FB02980B1A9FB805C415D + AAD85B8D291454FC39C3C4C07BD70381E52560D13D2997436A6A3A68B3728020 + 880740DCB34E91506F30C5FBC66E8D80CF77B7DE69AFEB49089079A43345A920 + 274A76EFD5A5A5A9E373F5B85DE0A4A7588E63CEF280FD84A63A8FBA7391CA21 + 8220DF36E617C8727479B099D07726C0ED769D4031723221005AFA4FB559B99F + BC50B86B83E238783DB3232CF02D33F6BAD1870DE7359E2B9711B2D31A6D76D5 + 8EA252481429DE7937D053E3DFD0F6DAE3D2000D5D7293423E5FB6A75A8DA25E + ECF3A1259F9E1ABB1563C23573679A7C896667B29D3B4810D485D2DD2F89AE91 + 9225FF024C8E8D5C449FE25B9200E663DD0755A99A0B965D95629B6559B879E3 + 2ACB45A3A5F499C3638906373639F6E0047E19E925A7A85213066938B402E3BF + 0F0ED36DD64A69005BEF29BD69C7F1CC1C83D85EF4CDC3CCD41F3FD26D758712 + 0D9E7BA4D34852E48DFCC2524D9A5ABB690CB02C03A343579668BB552D09907F + ACF7FA8EE2CA7DCA94FBB398B933067E9FB7D9D95EDB2165D05CEB48E7553098 + 67B2146464EA602B327AE30AAC84232A6FE791150917F4DE2B2EDBAF2548526C + 4F8CFE0AB150249F3E6BA5A5FDDE53479254B75AAB0302F91DDD23FF2BD0552E + 664929F9F3D6208482E1A2D9B3D609A915E08B2B5F89B7276F0EC06A24909930 + F86A5A09A3BEBC19A5EA0264498FC2DF8CEEF5C8629E4C4628090442CA291188 + 2015E2E1F7B9211A0EBD366DAFED9704B094BFBC01E01AF0AEC524BAFF9DC896 + D67783189BDAD51CAF30C864984100C2783CEF3E244604B9D0FB0B6DCD010980 + 3EA7C9526114C805714D8E40642DF4E28CFDF06F4F0AF038910E425BEF2F3946 + 4B4D52B24A6CDFF3D010585AF8C0D566FDFA9900986D8ECFD232B23F4AD7DE8F + E8C86A08BCB35363B47DB84428A1CF00A0A78A20A9219DB130DEE79DA3211209 + 89F97BDB01845A60B239863232F555943245EC6319067C1E678CE1D87A97BDF6 + FCB603185B7A5E479FCD254DF63F1B1026B6068BDE399EE599565784F902BA1A + D6B60D4010538BA3030562634A5A46FC19C7B1B0B2BC08D148780A25F9AF827C + E8FBC5F696C0B600887B024A3E80527249D2DFAE58AF2C31B41AD1D515884657 + 5175C606308C1B421BBCDB18E03E1EF80017656ECF7635B89F0A4090DCC60E2D + 4928FB1594B28452AA36D4783E7E66118C5060385435799E130F2166D0F5242A + 38279E0A4010A1D8800ABEC365C4212A2905507A7DD88CA4E1D0CA32F031B692 + EEB00E3F15C0BA186D0E1BCAF19FA37D9F5EC8E78F823C0883E204B92A761425 + B0CEFF04405C8D9AD3146F48478507DE452FEEC37119080786E1E23FC2BABE10 + AC6B6BAB3158034BA22AFAAF00360AFA4BD2F1187E00FD1555A36611522B400B + 40A140C946D6A6398EFB70A6BDFE87CD6C48023C0F79EE007F01F4C3DFDF6826 + D9AC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Save All' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003FF4944415478DAC5976F4C13 + 671CC7BF474B3B20ED224C988B5397F8CA57EA8B19870C3A286DF9D732D41845 + E75CB217D3A81035CA8CF1DF820A8A2EC6A8C94C2689262E8A8288228A225130 + 0E5113A3F10FF842CDCC46B0B4BD1E6DAF7BEEB9DE95AB53E833137F49FBBBE7 + CFDDEFF35CEF3E77E5C2E1303E6470D2D7E4C50D3D6463C6FB3820594EE7B3FA + D2AC31CD258BE790B359FFC5A4E90167490944318CDE07CF480E410C85680E8B + A2DC8EF485E9766C9F089B35971EB4B1A911FDF5A55CDC00C5C52538525389A1 + EE3AA6959B6655E0BBCA5A343737B101141515231814B16FBE8E0960D58910CD + 2D2D67D9000A0B8B301C08A16E9E9E09A0E28F20CDAD17CEB101380A2480206A + CBD800D69C9401DA5A5BD800EC8E42F88783D8F52D1BC0BA5332407BDB793600 + 9BBD00BC10447529DB35B0A141BE06AE5EBEC00660B515C0E70FE017171BC0CF + A76580CE2BAD6C00B95607BC04A0C2AA436A727CC5FF7203FBDB65801B1D17E3 + 07982201E439E0E187DFB9C39D3F6FC0CF7B99CED01BC581DBFD475D3355004B + AE1D43BEB70348B43D5DEDD01833624BD998230C196BD150748ECD9A478F2719 + B3EFA88B530172BEB1C3ED15DE09D07BF30A1463BA198D691E614C0D40B6C586 + 414F14E0F01233D2CD1C4452D8EBF3C3EDE191B5EE1A1463EE6534E6EA11C6D4 + 0064E5E46370C8AF4E6C5C398EE6D9557731FED3CFB1C729207F53371463EE61 + 3466E508636A00E6645B31E08E0234AF4E05EF1790B3E5213EC998886ABB07AE + EADB70386463D6301A73AD62CC8B2D5A80CCAFADF8C7CDAB131B7E3291532FC0 + B1F329D208C016CB0016D4DDC7FB34A60C80CD0993CBA70767655AB8D7BE803A + F1F80F4678C86F5FB6EF3952D327627DE64B2C3BF004F91163EE6034E6FA8831 + 3B88312300E48D6851C3B614F3C71B3F9B320D3ABDBCB2DF16025EDE8FF2437F + D3766D592296EE7F04D5984E46639E891A5305502090802AD29120B59D535F69 + 76945E1D9B9E664031E60A8B0E19A6F88A3F1F040E76448DA9011835E230E658 + A2BBB38D0D6034638E356E5DBFC406309A31C71A3D5D97D900628D79E47B3352 + 5338FA7C908C295DB85296EE202907C97360C06FC0EE4B22D2C64F50F7BB73B3 + 9D0D603463EE75092A84301C40D24746F231E0C7DFDD745C897BB7AEB201FC97 + 317DBC00CB56D998BB0A86E8EA79D2A7144F4A32D2DB591A57E27E4F071B4066 + 568C31979BE86A1D3BFB904684B5356F80B68D86445A3C390251F6EB0B3AAEC4 + 83DE6B7102448CF9E557D99C9B0FA9BDC79619C829175463561163EAF53A79E5 + 91E21244614D3F1D57E261FC004456E5A72A93534CBB271063261A8CB48F1A93 + ACB8FCB06CCCBAB9899AE2524E263977FBA3FF0FA040701C574D360D523BD698 + 6F8B338FD3B51D61AEABAFDE399BFBD07FCFFF05C4998EDF0E52D11A00000000 + 49454E44AE426082} + end> + Left = 552 + Top = 272 + Bitmap = {} + end end diff --git a/source/forms/Editor.h b/source/forms/Editor.h index 219b4736..9de8e2ca 100644 --- a/source/forms/Editor.h +++ b/source/forms/Editor.h @@ -74,6 +74,11 @@ class TEditorForm : public TForm TAction *UTF8EncodingAction; TTBXColorItem *ColorItem; TAction *ColorAction; + TAction *SaveAllAction; + TTBXItem *TBXItem1; + TPngImageList *EditorImages120; + TPngImageList *EditorImages144; + TPngImageList *EditorImages192; void __fastcall EditorActionsUpdate(TBasicAction *Action, bool &Handled); void __fastcall EditorActionsExecute(TBasicAction *Action, bool &Handled); @@ -93,6 +98,8 @@ class TEditorForm : public TForm TNotifyEvent FOnFileChanged; TNotifyEvent FOnFileReload; TFileClosedEvent FOnWindowClose; + TNotifyEvent FOnSaveAll; + TAnyModifiedEvent FOnAnyModified; TCustomForm * FParentForm; TFindDialog * FLastFindDialog; TPoint FCaretPos; @@ -123,11 +130,15 @@ class TEditorForm : public TForm void __fastcall ApplyConfiguration(); void __fastcall FileUploadComplete(); void __fastcall LoadFile(); + void __fastcall SaveFile(); + bool __fastcall IsFileModified(); __property UnicodeString FileName = { read = FFileName, write = SetFileName }; __property bool StandaloneEditor = { read = FStandaloneEditor, write = FStandaloneEditor }; __property TNotifyEvent OnFileChanged = { read = FOnFileChanged, write = FOnFileChanged }; __property TNotifyEvent OnFileReload = { read = FOnFileReload, write = FOnFileReload }; __property TFileClosedEvent OnWindowClose = { read = FOnWindowClose, write = FOnWindowClose }; + __property TNotifyEvent OnSaveAll = { read = FOnSaveAll, write = FOnSaveAll }; + __property TAnyModifiedEvent OnAnyModified = { read = FOnAnyModified, write = FOnAnyModified }; __property TCustomForm * ParentForm = { read = FParentForm, write = SetParentForm }; __property TColor BackgroundColor = { read = FBackgroundColor, write = SetBackgroundColor }; protected: @@ -148,6 +159,7 @@ class TEditorForm : public TForm void __fastcall SaveToFile(); void __fastcall BackupSave(); void __fastcall CheckFileSize(); + void __fastcall UpdateBackgroundColor(); }; //--------------------------------------------------------------------------- #endif diff --git a/source/forms/FileFind.cpp b/source/forms/FileFind.cpp index b9d1161a..95cd3ae6 100644 --- a/source/forms/FileFind.cpp +++ b/source/forms/FileFind.cpp @@ -16,6 +16,7 @@ #pragma link "HistoryComboBox" #pragma link "IEListView" #pragma link "NortonLikeListView" +#pragma link "PngImageList" #ifndef NO_RESOURCES #pragma resource "*.dfm" #endif @@ -61,6 +62,8 @@ __fastcall TFileFindDialog::TFileFindDialog(TComponent * Owner, TFindEvent OnFin UseDesktopFont(StatusBar); SetGlobalMinimizeHandler(this, GlobalMinimize); + FFrameAnimation.Init(AnimationPaintBox, L"Find"); + FixFormIcons(this); } //--------------------------------------------------------------------------- __fastcall TFileFindDialog::~TFileFindDialog() @@ -123,7 +126,7 @@ void __fastcall TFileFindDialog::UpdateControls() break; default: - FAIL; + DebugFail(); break; } } @@ -182,17 +185,18 @@ void __fastcall TFileFindDialog::Start() WinConfiguration->History[L"Mask"] = MaskEdit->Items; WinConfiguration->SelectMask = MaskEdit->Text; - assert(FState != ffFinding); + DebugAssert(FState != ffFinding); FState = ffFinding; try { + FFrameAnimation.Start(); UpdateControls(); Repaint(); TOperationVisualizer Visualizer; - assert(FOnFind != NULL); + DebugAssert(FOnFind != NULL); UnicodeString Directory = UnixExcludeTrailingBackslash(RemoteDirectoryEdit->Text); FDirectory = Directory; @@ -214,6 +218,7 @@ void __fastcall TFileFindDialog::Start() { FState = ffAborted; } + FFrameAnimation.Stop(); if (IsApplicationMinimized() && FMinimizedByMe) { ShowNotification( @@ -247,7 +252,7 @@ void __fastcall TFileFindDialog::FileFound(TTerminal * /*Terminal*/, } else { - FAIL; + DebugFail(); } Item->SubItems->Add(Directory); @@ -418,3 +423,19 @@ void __fastcall TFileFindDialog::CopyButtonClick(TObject * /*Sender*/) CopyToClipboard(); } //--------------------------------------------------------------------------- +void __fastcall TFileFindDialog::Dispatch(void * Message) +{ + TMessage * M = reinterpret_cast(Message); + if (M->Msg == WM_SYSCOMMAND) + { + if (!HandleMinimizeSysCommand(*M)) + { + TForm::Dispatch(Message); + } + } + else + { + TForm::Dispatch(Message); + } +} +//--------------------------------------------------------------------------- diff --git a/source/forms/FileFind.dfm b/source/forms/FileFind.dfm index b8659f54..ff8dd696 100644 --- a/source/forms/FileFind.dfm +++ b/source/forms/FileFind.dfm @@ -12,42 +12,1350 @@ object FileFindDialog: TFileFindDialog Constraints.MinWidth = 400 ParentFont = True Icon.Data = { - 0000010001001010000001002000680400001600000028000000100000002000 - 0000010020000000000040040000000000000000000000000000000000000000 - 000000000000000000000000000000000000736152CE736052FF736052FF7360 - 52FF736152CE00000000736152CE736052FF736052FF736052FF736152CE0000 - 000000000000000000000000000000000000736052FFD3C9C2FFFFFFFFFFA590 - 80FF736052FF00000000736052FFB9A89CFFFFFFFFFFEDE9E6FF736052FF0000 - 00000000000000000000000000000000000035302EF5292626FF292626FF2926 - 26FF35302EF50000000035302DF6292626FF292626FF292626FF35302DF60000 - 000000000000000000000000000000000000292626E751443AFF99816FFFB9AD - A5FF292626E700000000292626E7B8ACA4FF99816FFF51443AFF292626E70000 - 0000000000000000000000000000000000002A2727A54D423BFF8E7867FF8E84 - 7DFF2A2727A5000000002A2727A58E847DFF8E7867FF4D423BFF2A2727A51D84 - B1F31E84B2FF1E84B2FF1E84B2FF1E84B2FF226381FF423A35FF5D5047FF4B46 - 44FF225F7BFF1E84B2FF235D78F84B4644FF5D5047FF423A35FF2825255A1E84 - B2FF84E9FEFF84E9FEFF84E9FEFF84E9FEFF4F7780FF292626FF292626FF2926 - 26FF292626FF292626FF292626FF292626FF292626FF292626FF292525961E84 - B2FF3AC6F0FF37C5F0FF37C5F0FF37C5F0FF2E5E6DFF65564CFFBBAB9FFF9981 - 6FFFB4A396FFBBAEA4FF8A796DFF99816FFFBBAB9FFF65564CFF292626A71E84 - B2FF56E3FFFF49E1FFFF49E1FFFF48E1FFFF3EA3B8FF453C37FFBBAB9FFF9981 - 6FFF292626FF292626FF292626FF99816FFFBBAB9FFF453C37FF2B2727541E84 - B2FF65E8FFFF4EE4FFFF4EE4FFFF4EE4FFFF4BDAF5FF2E3E42FF292626FF2926 - 26FF292626FF2B3031FF292626FF292626FF292626FF292626DC2B2B2B0C1E84 - B2FF73EBFFFF54E7FFFF53E7FFFF53E7FFFF53E6FFFF52E6FFFF292626FFBAAA - 9EFF292626FF51E5FFFF292626FFBAAA9EFF292626FF00000000000000001E84 - B2FFEAFDFFFFEAFDFFFFEAFDFFFFEAFDFFFFEAFDFFFFEAFDFFFF555757FF2926 - 26FF535556FFEAFDFFFF263B46FF292626FF292626C700000000000000001E84 - B2FF1E84B2FF1E84B2FF1E84B2FF1E84B2FF1E84B2FF1E84B2FF1E84B2FF1E84 - B2FF1E84B2FF1E84B2FF1E84B2FF000000000000000000000000000000001E84 - B2FF34CCF6FF34CCF6FF34CCF6FF34CCF6FF34CCF6FF34CCF6FF34CCF6FF34CC - F6FF34CCF6FF34CCF6FF1E84B2FF000000000000000000000000000000001E85 - B2CA31B4DBFF41DDFFFF41DDFFFF41DDFFFF2EADD6FF1E84B2FF1E84B2FF1E84 - B2FF1E84B2FF1E84B2FF1E84B2C3000000000000000000000000000000001A80 - B3141E84B2C91E84B2FF1E84B2FF1E84B2FF1D84B2C71B80B61C000000000000 - 000000000000000000000000000000000000000000000000000000000000F820 - 0000F8200000F8200000F8200000F82000000000000000000000000000000000 - 0000000000000003000000030000000F0000000F0000000F000001FF0000} + 000001000700404000000100200028420000760000003030000001002000A825 + 00009E4200002828000001002000681A0000466800002020000001002000A810 + 0000AE820000181800000100200088090000569300001414000001002000B806 + 0000DE9C000010100000010020006804000096A3000028000000400000008000 + 0000010020000000000000420000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000027211C8B2B241FFF50453BFF74685EFF92867DFFAFA49CFFCDC2BAFF0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000002721 + 1C8B2B241FFF50453BFF74685EFF92867DFFAFA49CFFCDC2BAFFAC9E94FF0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000027211C8B2B24 + 1FFF50453BFF74685EFF92867DFFAFA49CFFCDC2BAFFAC9E94FF77675BFF0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000027211C8B2B241FFF5045 + 3BFF74685EFF92867DFFAFA49CFFCDC2BAFFAC9E94FF77675BFF302822FF0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000027211C8B2B241FFF50453BFF7468 + 5EFF92867DFFAFA49CFFCDC2BAFFAC9E94FF77675BFF302822FF26211B8D0000 + 00000000000000000000000000009A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF000000000000000027211C8B2B241FFF50453BFF74685EFF9286 + 7DFFAFA49CFFCDC2BAFFAC9E94FF77675BFF302822FF26211B8D000000000000 + 00000000000000000000000000009A7657FFFBF3EBFFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FF9A7657FF000000003931299D2E2621FF50453BFF74685EFF92867DFFAFA4 + 9CFFCDC2BAFFAC9E94FF77675BFF302822FF26211B8D00000000000000000000 + 00000000000000000000000000009A7657FFFBF4ECFFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFEBDBCCFFC3B4A6FFA09285FF887B6EFF796C60FF796C60FF7B6D62FF8F81 + 75FFA7998CFFCDBEB0FFF2E2D3FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FF9A7657FF5A4B3FC9746153FF6D5B4EFF74675DFF92867DFFAFA49CFFCDC2 + BAFFAC9E94FF77675BFF302822FF26211B8D0000000000000000000000000000 + 00000000000000000000000000009A7657FFFBF4EDFFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF5E5D5FFBFB0A2FF7C6F + 63FF4D4137FF514439FF594B3FFF5F5044FF635246FF645447FF625245FF5E4F + 43FF58493EFF4E4137FF54483EFF897C70FFD3C4B5FFF6E6D6FFF6E6D6FFF6E6 + D6FF6B5747FF7B695CFFD0C8C1FF98897FFF786759FFAA9F96FFCDC2BAFFAC9E + 94FF77675BFF302822FF26211B8D000000000000000000000000000000000000 + 00000000000000000000000000009A7657FFFCF4EDFFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFC1B2A4FF64574CFF4F4238FF6050 + 44FF6E5C4EFF725F51FF6E5B4EFF6A584BFF68574AFF675649FF68574AFF6B59 + 4CFF6F5C4FFF736052FF6A594CFF5C4D41FF4D4036FF796C60FFD7C8B9FFAD9B + 8CFF7B695CFFD3CBC4FFEEE9E6FFF2F0EEFF9D8F86FF837164FFA8998FFF7767 + 5BFF302822FF26211B8D00000000000000000000000000000000000000000000 + 00000000000000000000000000009B7758FFFCF5EFFFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFEDDECEFF83766AFF4E4137FF625245FF725F51FF6B5A + 4CFF635246FF5C4D41FF67594FFF82776EFF978D86FF978D86FF948B83FF7F73 + 6BFF615348FF5D4E42FF655447FF6E5C4EFF705E50FF5D4E42FF4C4036FF6454 + 49FFD2CAC3FFEEE9E6FFF5F3F1FFFDFDFDFFF5F4F2FF998A80FF746153FF322A + 24FF26211B8D0000000000000000000000000000000000000000000000000000 + 00000000000000000000000000009C7859FFFCF6F0FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFE2D4C5FF61554AFF56483DFF6F5D4FFF6C5A4DFF5F4F43FF7668 + 5DFFBBB0A6FFE5DCD5FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFAF5EFFFDFD6CEFFB2A69DFF695A4FFF625245FF6F5D4FFF6B594CFF5144 + 39FF7C726AFFEDEBE9FFFDFDFDFFF8F7F5FFF0ECE9FFD1C9C3FF746153FF382F + 289E000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000009D7959FFFCF7F1FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F + 5EFFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F + 5EFF977658FF524438FF5C4D41FF725F51FF645447FF695A4FFFB7A89BFFDACD + C0FFDCCFC2FFDCCFC2FFDCCFC2FFDCCFC2FFDCCFC2FFDCCFC2FFDCCFC2FFDCCF + C2FFDCCFC2FFDCCFC2FFDCCFC2FFF4EDE6FFB6ABA1FF605246FF69574AFF715E + 50FF55473CFF736A62FFF0EFECFFF0ECE9FFD4CCC6FF7B695CFF5A4A3FCA0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000009E7A5AFFFDF7F2FFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFE7D8 + CBFF5F5348FF5D4E42FF715E50FF605044FF83756AFFE8DFD7FFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFDCD2CAFF716357FF6554 + 47FF725F51FF55473CFF7D736BFFD3CBC5FF7B695CFF5B4C40C6000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000009F7B5AFFFDF8F3FFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF6E8DAFF7C6F + 64FF584A3EFF725F51FF605044FF988A7FFFF3EBE3FFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFECE3DAFF8678 + 6DFF655447FF715E50FF504339FF645549FF705E508D00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A07B5BFFFDF8F3FFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFA68160FFA68160FFA68160FFA68160FFA68160FFA68160FFA681 + 60FFA68160FFA68160FFA68160FFA68160FFA68160FFA68160FF82674FFF5043 + 38FF715E50FF635246FF847568FFD9C7B7FFDCCABAFFDCCABAFFDCCABAFFDCCA + BAFFDCCABAFFDCCABAFFDCCABAFFDCCABAFFDCCABAFFDCCABAFFDCCABAFFDCCA + BAFFDCCABAFFDCCABAFFDCCABAFFFBF2E9FFFBF2E9FFFBF2E9FFFBF2E9FFEBE1 + D8FF6D5E53FF68574AFF6B594CFF4A3E34FE493D312A00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A17C5CFFFDF9F4FFF7EADCFFF7EADCFFF7EA + DCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EA + DCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFEFE2D4FF574B41FF6756 + 49FF6A584BFF6D5D52FFE9DDD3FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0 + E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0 + E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0 + E6FFC9B8A8FF5F5044FF6F5D4FFF5D4D42FF4B3F34BE00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A17D5CFFFDF9F5FFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFA79A8EFF54463BFF725F + 51FF5D4E42FFCBBDB0FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEE + E4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEE + E4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEE + E4FFD8C5B2FFB1A49AFF625245FF705E50FF4D4036FF473D3436000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A27E5DFFFEFAF6FFF8EBDEFFF8EBDEFFF8EB + DEFFF8EBDEFFA88461FFA88461FFA88461FFA88461FFA88461FFA88461FFA884 + 61FFA88461FFA88461FFA88461FFA88461FFA88461FF56473AFF665549FF6857 + 4AFF847366FFDAC5B1FFDBC5B1FFDBC5B1FFDBC5B1FFDBC5B1FFDBC5B1FFDBC5 + B1FFDBC5B1FFDBC5B1FFDBC5B1FFDBC5B1FFDBC5B1FFDBC5B1FFDBC5B1FFDBC5 + B1FFDBC5B1FFDBC5B1FFDBC5B1FFF9EDE1FFF9EDE1FFF9EDE1FFF9EDE1FFF9ED + E1FFD8C3B0FFF3E7DBFF65564BFF6E5C4EFF5C4D41FF4B3E35A4000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A37F5EFFFEFAF7FFF8EBDFFFF8EBDFFFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFD5C8BDFF4D4136FF725F51FF5F4F + 43FFC5B6A7FFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFFD8C2ACFFF8EADCFFAC9D90FF645447FF6B594CFF4B3E35F1402020080000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A4805EFFFEFBF8FFF8ECDFFFF8ECDFFFF8EC + DFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8EC + DFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFA5998EFF58493EFF6F5C4FFF5C4D + 42FFEFE0D1FFF8E9DAFFF8E9DAFFF8E9DAFFF8E9DAFFF8E9DAFFF8E9DAFFF8E9 + DAFFF8E9DAFFF8E9DAFFF8E9DAFFF8E9DAFFF8E9DAFFF8E9DAFFF8E9DAFFF8E9 + DAFFF8E9DAFFF8E9DAFFF8E9DAFFF8E9DAFFF8E9DAFFF8E9DAFFF8E9DAFFF8E9 + DAFFD8C0A9FFF7E7D7FFE0D0C1FF5D4E42FF736052FF4F4237FF4B3E353A0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A5805FFFFEFBF9FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFAB8663FFAB8663FFAB8663FFAB8663FFAB8663FFAB8663FFAB86 + 63FFAB8663FFAB8663FFAB8663FFAB8663FF665342FF625245FF69584BFF8976 + 67FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0 + A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0 + A9FFD9C0A9FFD9C0A9FFD9C0A9FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7 + D8FFD7BEA7FFF5E4D3FFF5E4D2FF625348FF6F5C4FFF57493DFF4A3F34750000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A68160FFFEFCF9FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FF62564CFF68574AFF645447FFA997 + 87FFF6E5D5FFF6E5D5FFF6E5D5FFF6E5D5FFF6E5D5FFF6E5D5FFF7E6D6FFF7E7 + D7FFF7E8D8FFF7E8D9FFF7E8DAFFF7E9DBFFF8E9DBFFF8EADBFFF8E9DBFFF7E9 + DBFFF7E9DBFFF7E8DAFFF7E8D9FFF7E7D7FFF7E6D6FFF6E5D5FFF6E5D5FFF6E5 + D5FFD7BCA4FFF4E0CDFFF4E0CDFF7B6B5FFF6B594CFF5E4E43FF4A3F359F0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A78260FFFEFCFAFFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FF564A40FF6C5A4DFF625245FFBAA6 + 96FFF6E3D2FFF6E3D2FFF6E4D3FFF7E5D5FFF8E7D8FFF8E9DBFFF8EADCFFF8EA + DCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EA + DCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8E9DBFFF8E8D9FFF7E6 + D6FFD7BBA1FFF3DDC8FFF3DDC8FF8D7C6DFF69574AFF635246FF4A3E34B90000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A88361FFFEFDFBFFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F + 5EFFA37F5EFFA37F5EFFA37F5EFFA37F5EFF4B3F35FF6E5C4EFF615145FFB59E + 88FFD4B89DFFD6BDA5FFD7BFA9FFD7C0A9FFD7C0A9FFD7C0A9FFD7C0A9FFD7C0 + A9FFD7C0A9FFD7C0A9FFD7C0A9FFD7C0A9FFD7C0A9FFD7C0A9FFD7C0A9FFD7C0 + A9FFD7C0A9FFD7C0A9FFD7C0A9FFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EA + DCFFD9C1AAFFF4E0CCFFF2DAC3FF927F70FF675649FF655448FF4A3E35BD0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A98462FFFFFDFBFFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FF52463CFF6C5A4DFF615145FFBCA7 + 95FFF4E0CDFFF8E9DAFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFDAC2ABFFF5E1CDFFF1D7BEFF8F7C6CFF68574AFF635346FF4B3F35BB0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A98562FFFFFDFCFFF9EFE4FFF9EFE4FFF9EF + E4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EF + E4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FF5F5449FF6A584BFF645347FFAC96 + 84FFF4DFCAFFF7E7D8FFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFDAC2ABFFF4DEC9FFF0D4B9FF7E6C5DFF6A594BFF5F5043FF4B3F34A70000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AA8563FFFFFEFCFFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FFA68160FFA68160FFA68160FFA68160FFA68160FFA68160FFA681 + 60FFA68160FFA68160FFA68160FFA68160FF614F3FFF645347FF68574AFF8E7A + 68FFD4B597FFD7BBA2FFD9C2ADFFD9C2ADFFD9C2ADFFD9C2ADFFD9C2ADFFD9C2 + ADFFD9C2ADFFD9C2ADFFD9C2ADFFD9C2ADFFD9C2ADFFD9C2ADFFD9C2ADFFD9C2 + ADFFD9C2ADFFD9C2ADFFD9C2ADFFF9ECE0FFF9ECE0FFF9ECE0FFF9ECE0FFF9EC + E0FFDBC4AEFFF4DCC6FFF0D4B9FF655549FF6E5C4EFF594A3FFF4B3D33810000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AB8663FFFFFEFDFFF9F0E6FFF9F0E6FFF9F0 + E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0 + E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FF9A8F85FF5A4B40FF6E5B4EFF6152 + 46FFF0DAC5FFF5E2CFFFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFDCC5B1FFF2D8BFFFDEC4AAFF5C4D41FF725F51FF504339FF483E344A0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AC8764FFFFFEFEFFFAF0E7FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFC9BEB5FF504338FF736052FF5D4E + 42FFCCB8A3FFF4DFCBFFF9ECE1FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEF + E6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEF + E6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEF + E6FFDBC5B0FFF1D5BAFFB09A85FF625246FF6E5C4EFF4B3F35FB403030100000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AD8865FFFFFFFEFFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFA88461FFA88461FFA88461FFA88461FFA88461FFA88461FFA884 + 61FFA88461FFA88461FFA88461FFA88461FFA68260FF504337FF6A594CFF6555 + 48FF8E7968FFD5B698FFD7BBA0FFDBC8B5FFDBC8B5FFDBC8B5FFDBC8B5FFDBC8 + B5FFDBC8B5FFDBC8B5FFDBC8B5FFDBC8B5FFDBC8B5FFDBC8B5FFDBC8B5FFDBC8 + B5FFDBC8B5FFDBC8B5FFDBC8B5FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFD9BEA3FFEED2B7FF6D5D50FF6B5A4CFF605044FF4A3E34B9000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AE8966FFFFFFFEFFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FF968B82FF584A3EFF705E + 50FF5C4D41FFD3BEAAFFF4DFCBFFF9EDE1FFFBF3EAFFFBF3EAFFFBF3EAFFFBF3 + EAFFFBF3EAFFFBF3EAFFFBF3EAFFFBF3EAFFFBF3EAFFFBF3EAFFFBF3EAFFFBF3 + EAFFFBF3EAFFFBF3EAFFFBF3EAFFFBF3EAFFFBF3EAFFFBF3EAFFFBF3EAFFFAEE + E3FFD8B89AFFBAA38DFF5F4F43FF725F51FF4F4238FF483F3251000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AF8A66FFFFFFFFFFFAF2E9FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFE4DCD3FF4E4238FF6C5A + 4DFF665549FF7D6B5DFFEDD9C4FFF5E1CDFFFAF1E8FFFCF4EDFFFCF4EDFFFCF4 + EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4 + EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFBF2E9FFF5E2 + CEFFCEB093FF655448FF6C5A4DFF625246FF4B3E35D900000002000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B08A67FFFFFFFFFFFAF2EAFFFAF2EAFFFAF2 + EAFFFAF2EAFFAB8663FFAB8663FFAB8663FFAB8663FFAB8663FFAB8663FFAB86 + 63FFAB8663FFAB8663FFAB8663FFAB8663FFAB8663FFAB8663FF775F4AFF5446 + 3BFF725F51FF5F4F43FF97816FFFD5B698FFD7B99DFFDDC9B7FFDECDBCFFDECD + BCFFDECDBCFFDECDBCFFDECDBCFFDECDBCFFDECDBCFFDECDBCFFDECDBCFFDECD + BCFFDECDBCFFDECDBCFFDECDBCFFFCF6F0FFFCF6F0FFFBF3EBFFF6E4D2FFEDD9 + C5FF796658FF645447FF6F5D4FFF4E4137FF4A3C324C00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B08B67FFFFFFFFFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFF5ECE4FF6458 + 4EFF605044FF6F5D4FFF5D4E42FFA99583FFF3DFCAFFF5E1CEFFFAF0E6FFFDF8 + F2FFFDF8F2FFFDF8F2FFFDF8F2FFFDF8F2FFFDF8F2FFFDF8F2FFFDF8F2FFFDF8 + F2FFFDF8F2FFFDF8F2FFFDF8F2FFFDF8F2FFFBF2E8FFF5E2CFFFEFDBC7FF9784 + 73FF605044FF725F51FF56483DFF4B3F35AA0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B18C68FFFFFFFFFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFD8CF + C8FF52463CFF665548FF6E5C4EFF5D4E42FF988473FFEDD8C4FFF5E0CDFFF7E7 + D8FFFCF4EEFFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFCF5EFFFF8E8DAFFF5E0CDFFE5D1BDFF847262FF6050 + 44FF715E50FF5C4D41FF4B3E35DD4937240E0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B28D69FFFFFFFFFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFAD8865FFAD8865FFAD8865FFAD8865FFAD8865FFAD8865FFAD88 + 65FFAD8865FFAD8865FFAD8865FFAD8865FFAD8865FFAD8865FFAD8865FFAD88 + 65FF907257FF4D4035FF665548FF6F5D4FFF5F4F43FF7E6B5CFFC2A88FFFD7B7 + 99FFD7B799FFD9BCA1FFDCC4AEFFDECBB8FFDFCEBEFFE0D0C0FFDFCEBEFFDECB + B9FFDCC5B0FFD9BDA2FFD7B799FFF4E0CCFFC7B3A0FF6C5B4EFF635246FF725F + 51FF5D4E42FF4B3F35EB4B3C3522000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B38E69FFFFFFFFFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFC6BEB6FF52463CFF5F5044FF725F51FF665549FF5C4D41FF8F7C + 6BFFCCB8A4FFF1DCC8FFF5E1CDFFF5E1CDFFF5E1CDFFF5E1CDFFF5E1CDFFF5E1 + CDFFF5E1CDFFECD8C4FFC4AF9CFF847263FF5D4E42FF6A594BFF715E50FF5849 + 3EFF57483BFF483B342700000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B48F6AFFFFFFFFFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFD7D0C9FF63584EFF55473CFF6C5A4DFF705D50FF6655 + 48FF5D4E42FF615246FF927F6FFFAE9A87FFBCA794FFC0AC99FFB9A592FFAB97 + 85FF897767FF5C4D42FF5F4F43FF68574AFF725F51FF675649FF504338FF7B70 + 67FFAB8865FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B58F6BFFFFFFFFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFB08B67FFB08B67FFB08B67FFB08B67FFB08B67FFB08B67FFB08B + 67FFB08B67FFB08B67FFB08B67FFB08B67FFB08B67FFB08B67FFB08B67FFB08B + 67FFB08B67FFB08B67FFB08B67FFAC8865FF79614CFF4C4035FF584A3FFF6A59 + 4BFF736052FF6D5B4EFF68574AFF645447FF625245FF625245FF625245FF6554 + 48FF69584BFF6F5C4FFF725F51FF665548FF54463BFF574C42FFB6ADA5FFF9F1 + E9FFB58F6BFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B6906BFFFFFFFFFFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFE5DFD8FF998F87FF5549 + 3FFF504338FF5B4C40FF635346FF69584BFF6C5A4DFF6E5C4FFF6C5A4DFF6857 + 4AFF625245FF584A3EFF4D4136FF60554CFFAAA19AFFEFE7DEFFF2E6DAFFF1E5 + D9FFB6906BFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B7916CFFFFFFFFFFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFF8F2 + EDFFC8C0BAFF9C928BFF786E65FF5F544AFF50453BFF4B3F35FF554A40FF6459 + 4FFF7E736BFFA69D96FFD7D0C9FFF8F0E8FFEDDFD1FFEADACAFFEADACAFFEADA + CAFFB7916CFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B8926DFFFFFFFFFFFCF7F1FFFCF7F1FFFCF7 + F1FFFCF7F1FFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D + 69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D + 69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D + 69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D + 69FFB38D69FFB48D69FFB6906BFFE2CFBAFFE2CEBAFFE2CEBAFFE2CEBAFFE2CE + BAFFB8926DFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B8936DFFFFFFFFFFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFF0E4D8FFDDC7B0FFDAC3AAFFDAC3AAFFDAC3AAFFDAC3AAFFDAC3AAFFDAC3 + AAFFB8936DFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B9946EFFFFFFFFFFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFF5EDE4FFDDC7 + B0FFD2B79BFFD2B79BFFD2B79BFFD2B79BFFD2B79BFFD2B79BFFD2B79BFFD2B7 + 9BFFB9946EFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BA946FFFFFFFFFFFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFB5906BFFB5906BFFB5906BFFB5906BFFB5906BFFB5906BFFB590 + 6BFFB5906BFFB5906BFFB5906BFFB5906BFFB5906BFFB5906BFFB5906BFFB590 + 6BFFB5906BFFB5906BFFB5906BFFB5906BFFB5906BFFB5906BFFB5906BFFB590 + 6BFFB5906BFFB5906BFFB5906BFFB5906BFFB6906BFFBA946EFFBD9771FFBD97 + 71FFBD9771FFBD9771FFBD9771FFCBAB8BFFCBAB8BFFCBAB8BFFCBAB8BFFCBAB + 8BFFBA946FFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BB956FFFFFFFFFFFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFECDED0FFCAAA89FFC39F7AFFC39F7AFFC39F + 7AFFC39F7AFFC39F7AFFC39F7AFFC39F7AFFC39F7AFFC39F7AFFC39F7AFFC39F + 7AFFBB956FFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BC9670FFFFFFFFFFFDF9F6FFFDF9F6FFFDF9 + F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9 + F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9 + F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9 + F6FFFDF9F6FFFDF9F6FFFDF9F6FFFFFFFFFFFFFFFFFFFBF9F7FFF7F3EEFFF3EC + E5FFEFE6DCFFEBDFD3FFE7D9CAFFE3D3C2FFDFCCB9FFDBC6B0FFD7BFA7FFD9C2 + AAFFBC9670D40000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BD9770FFFFFFFFFFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB792 + 6CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB792 + 6CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB792 + 6CFFB7926CFFB7926CFFFDFAF6FFFFFFFFFFFBF9F7FFF7F3EEFFF3ECE5FFEFE6 + DCFFEBDFD3FFE7D9CAFFE3D3C2FFDFCCB9FFDBC6B0FFD7BFA7FFD9C2AAFFBD98 + 70D4B38C66140000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BE9871FFFFFFFFFFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFBF9F7FFF7F3EEFFF3ECE5FFEFE6DCFFEBDF + D3FFE7D9CAFFE3D3C2FFDFCCB9FFDBC6B0FFD7BFA7FFD9C3ABFFBE9871D4B38C + 6614000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFDFBF8FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFBF8FFFDFBF8FFF7F3EEFFF3ECE5FFEFE6DCFFEBDFD3FFE7D9 + CAFFE3D3C2FFDFCCB9FFDBC6B0FFD7BFA7FFDAC3ABFFBF9972D4BF9966140000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA94 + 6EFFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA94 + 6EFFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA94 + 6EFFBA946EFFBA946EFFFEFBF9FFF3ECE5FFEFE6DCFFEBDFD3FFE7D9CAFFE3D3 + C2FFDFCCB9FFDBC6B0FFD7BFA7FFDAC3ACFFBF9972D4BF996614000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFEFE6DCFFEBDFD3FFE7D9CAFFE3D3C2FFDFCC + B9FFDBC6B0FFD7BFA7FFDAC3ACFFBF9972D4BF99661400000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFEBDFD3FFE7D9CAFFE3D3C2FFDFCCB9FFDBC6 + B0FFD7BFA7FFD8C0A7FFBF9972D4BF9966140000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD97 + 70FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD97 + 70FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD97 + 70FFBD9770FFBD9770FFFEFDFBFFE7D9CAFFE3D3C2FFDFCCB9FFDBC6B0FFD7BF + A7FFD8C0A7FFBF9972D4BF996614000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFE3D3C2FFDFCCB9FFDBC6B0FFD7BFA7FFD8C0 + A7FFBF9972D4BF99661400000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFDFCCB9FFDBC6B0FFD7BFA7FFD8C0A8FFBF99 + 72D4BF9966140000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFDBC6B0FFD7BFA7FFD8C0A8FFBF9972D4BF99 + 6614000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD7BFA7FFD8C0A8FFBF9972D4BF9966140000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFD8C0A7FFBF9972D2BF996614000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972D2BF99661400000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FFFFFFFFFF80FFFFFFFFFFFFFF00FFFFFFFFFFFFFE00FFFFFFFFFFFFFC00FFFF + FFFFFFFFF800F000000000003001F000000000002003F000000000000007F000 + 00000000000FF00000000000001FF00000000000003FF00000000000007FF000 + 0000000000FFF0000000000001FFF0000000000003FFF0000000000003FFF000 + 0000000003FFF0000000000001FFF0000000000001FFF0000000000000FFF000 + 0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000 + 0000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF000 + 0000000000FFF0000000000000FFF0000000000001FFF0000000000001FFF000 + 0000000001FFF0000000000003FFF0000000000007FFF0000000000007FFF000 + 000000000FFFF000000000001FFFF000000000003FFFF000000000003FFFF000 + 000000003FFFF000000000003FFFF000000000003FFFF000000000003FFFF000 + 000000003FFFF000000000003FFFF000000000003FFFF000000000003FFFF000 + 000000003FFFF000000000007FFFF00000000000FFFFF00000000001FFFFF000 + 00000003FFFFF00000000007FFFFF0000000000FFFFFF0000000001FFFFFF000 + 0000003FFFFFF0000000007FFFFFF000000000FFFFFFF000000001FFFFFFF000 + 000003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2800 + 0000300000006000000001002000000000008025000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000027201A4F2D261FFB5B5047FF887C + 73FFAFA49CFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000027201A4F2D261FFB5B5047FF887C73FFAFA4 + 9CFFC8BDB4FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000027201A4F2D261FFB5B5047FF887C73FFAFA49CFFC8BD + B4FF89796DFF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000027201A4F2D261FFB5B5047FF887C73FFAFA49CFFC8BDB4FF8979 + 6DFF332B24FE00000000000000009A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF00000000000000000000 + 000027201A4F2D261FFB5B5047FF887C73FFAFA49CFFC8BDB4FF89796DFF332B + 24FE26211B5D00000000000000009A7657FFFBF3EBFFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF9A7657FF00000000000000002720 + 1A4F2D261FFB5B5047FF887C73FFAFA49CFFC8BDB4FF89796DFF332B24FE2621 + 1B5D0000000000000000000000009A7657FFFBF4ECFFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF9A7657FF0000000027201A4F2D26 + 1FFB5B5047FF887C73FFAFA49CFFC8BDB4FF89796DFF332B24FE26211B5D0000 + 00000000000000000000000000009A7657FFFCF4EDFFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFE7D7C8FFD6C7B8FFD2C3B4FFE3D3C4FFF4E4D4FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF9A7657FF5042387F4E4237FD5B50 + 47FF887C73FFAFA49CFFC8BDB4FF89796DFF332B24FE26211B5D000000000000 + 00000000000000000000000000009B7758FFFCF5EFFFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFEEDFD0FFB5A7 + 99FF817468FF53473CFF4B3F35FF4B3F35FF4B3F35FF4B3F35FF4D4137FF7568 + 5DFFAA9C8FFFE6D7C7FFF6E7D7FFF6E7D7FF765E49FF837266FFA4978DFF7B6A + 5EFFAFA49CFFC8BDB4FF89796DFF332B24FE26211B5D00000000000000000000 + 00000000000000000000000000009C7859FFFCF6F0FFF6E7D8FFF6E7D8FFF6E7 + D8FFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA37F + 5EFFA37F5EFFA37F5EFFA37F5EFFA37F5EFFA27E5DFF7C624BFF514338FF4E42 + 37FF5B4D41FF675649FF6E5C4EFF725F51FF736052FF6F5D4FFF69584BFF5E4F + 43FF52443AFF4D4137FF93867AFFC7B6A8FF847366FFDFD9D4FFF3F0EEFFB1A6 + 9FFF938376FF89796DFF332B24FE26211B5D0000000000000000000000000000 + 00000000000000000000000000009D795AFFFDF7F2FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFE4D6C7FF716459FF4E4137FF615145FF725F + 51FF766458FFA99C92FFC4B8AFFFD1C6BDFFD3C9C0FFC8BDB4FFB6AA9FFF8677 + 6AFF725F51FF675649FF514439FF51443AFFBBB4AEFFF3F0EEFFFDFDFDFFF6F3 + F2FFA5978EFF51443AFF26211B5D000000000000000000000000000000000000 + 00000000000000000000000000009F7A5AFFFDF8F3FFF7E9DAFFF7E9DAFFF7E9 + DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9 + DAFFF7E9DAFFF7E9DAFFDED0C2FF5F5348FF54463BFF6F5D4FFF806E62FFCABF + B5FFFAF4EEFFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7 + F1FFDAD1C9FF97887DFF715E50FF5A4C40FF4E4238FFC8C4C1FFF6F3F2FFE1DB + D7FF847367FF4C3E358700000000000000000000000000000000000000000000 + 0000000000000000000000000000A07B5BFFFDF8F4FFF7E9DBFFF7E9DBFFF7E9 + DBFFA68160FFA68160FFA68160FFA68160FFA68160FFA68160FFA68160FFA681 + 60FFA68160FF9E7B5CFF56473AFF584A3EFF715E50FFA09083FFD9CABCFFDDCE + C0FFDDCEC0FFDDCEC0FFDDCEC0FFDDCEC0FFDDCEC0FFDDCEC0FFDDCEC0FFDDCE + C0FFFCF5EFFFFBF5EEFFC4B8ADFF725F51FF605144FF4E4238FFBEB7B1FF8472 + 66FF51443B870000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A17D5CFFFDF9F6FFF7EADDFFF7EADDFFF7EA + DDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EA + DDFFF7EADDFF7C6F64FF53453AFF715F51FFB1A397FFFBF3EBFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFD3C7BCFF725F51FF5B4C40FF504439FF685A + 4858000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A27E5DFFFEFAF7FFF8EBDEFFF8EBDEFFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFFBFB2A6FF4C4036FF6E5C4EFF9D8D80FFF8EEE4FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFB6A699FF715E50FF514439FF4A3E + 3494000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A37F5EFFFEFBF8FFF8EBDFFFF8EBDFFFF8EB + DFFFA88461FFA88461FFA88461FFA88461FFA88461FFA88461FFA88461FFA783 + 61FF594A3CFF5C4D41FF736154FFD2BFADFFDBC7B4FFDBC7B4FFDBC7B4FFDBC7 + B4FFDBC7B4FFDBC7B4FFDBC7B4FFDBC7B4FFDBC7B4FFDBC7B4FFDBC7B4FFDBC7 + B4FFFAEFE4FFFAEFE4FFFAEFE4FFFAEFE4FFD9C5B3FF8F8074FF665549FF4B3F + 35FB4A3535180000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A5805FFFFEFBF9FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFD6CA + BFFF4B3F35FF6F5D4FFFB4A496FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFD9C3AFFFDCD0C4FF725F51FF5144 + 39FF4A3F34710000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A68160FFFEFCFAFFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFA195 + 8AFF54473CFF705E50FFE1D2C3FFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EA + DCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EA + DCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFD9C1ABFFF7E8D9FF7F6E60FF5E4F + 43FF4A3E35C10000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A78261FFFEFCFBFFF9EDE2FFF9EDE2FFF9ED + E2FFAB8663FFAB8663FFAB8663FFAB8663FFAB8663FFAB8663FFAB8663FF614F + 3FFF605044FF776659FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0 + A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0A9FFD9C0 + A9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFD8BFA8FFF5E4D3FFAD9C8DFF6A58 + 4BFF4B3F35FB4000000400000000000000000000000000000000000000000000 + 0000000000000000000000000000A88361FFFFFDFBFFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FF6155 + 4BFF665548FF887668FFF6E6D5FFF6E6D5FFF6E6D5FFF7E6D6FFF7E8D8FFF8E8 + D9FFF8E9DBFFF8EADCFFF8EADDFFF8EBDDFFF8EBDDFFF8EBDDFFF8EADDFFF8E9 + DBFFF8E9DAFFF8E8D9FFF7E7D7FFF6E6D5FFD7BDA3FFF4E0CCFFC6B3A1FF6F5C + 4FFF4B3F35FF443C331E00000000000000000000000000000000000000000000 + 0000000000000000000000000000A98562FFFFFEFCFFF9EFE4FFF9EFE4FFF9EF + E4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FF5044 + 3AFF69584BFF958272FFF6E4D2FFF7E7D7FFF8E9DAFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADCFFD9BFA7FFF4DDC8FFD0BAA6FF7360 + 52FF4B3F35FF4A3B313400000000000000000000000000000000000000000000 + 0000000000000000000000000000AB8663FFFFFEFDFFF9EFE5FFF9EFE5FFF9EF + E5FFAD8865FFAD8865FFAD8865FFAD8865FFAD8865FFAD8865FFAD8865FF5143 + 38FF68574AFF917D6DFFD8BA9EFFDBC3ACFFDBC3ACFFDBC3ACFFDBC3ACFFDBC3 + ACFFDBC3ACFFDBC3ACFFDBC3ACFFDBC3ACFFDBC3ACFFDBC3ACFFDBC3ACFFDBC3 + ACFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFDAC2ABFFF4DDC8FFCCB49EFF725F + 51FF4B3F35FF483D322E00000000000000000000000000000000000000000000 + 0000000000000000000000000000AC8764FFFFFEFEFFFAF0E7FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FF6559 + 4FFF645447FF857262FFF4DFCBFFF9EBDEFFF9EBDFFFF9EBDFFFF9EBDFFFF9EB + DFFFF9EBDFFFF9EBDFFFF9EBDFFFF9EBDFFFF9EBDFFFF9EBDFFFF9EBDFFFF9EB + DFFFF9EBDFFFF9EBDFFFF9EBDFFFF9EBDFFFDBC3ADFFF2DAC2FFBCA48EFF6E5C + 4EFF4B3F35FF463A2E1600000000000000000000000000000000000000000000 + 0000000000000000000000000000AD8865FFFFFFFFFFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FF7B70 + 66FF5D4E42FF715F51FFF2DDC8FFF8EADCFFF9EEE2FFF9EEE2FFF9EEE2FFF9EE + E2FFF9EEE2FFF9EEE2FFF9EEE2FFF9EEE2FFF9EEE2FFF9EEE2FFF9EEE2FFF9EE + E2FFF9EEE2FFF9EEE2FFF9EEE2FFF9EEE2FFDCC6B0FFF2D7BEFF9C8674FF6857 + 4AFF4B3E35F10000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AE8966FFFFFFFFFFFAF1E9FFFAF1E9FFFAF1 + E9FFB08B67FFB08B67FFB08B67FFB08B67FFB08B67FFB08B67FFB08B67FF856A + 51FF514439FF725F51FFC4A98FFFDABEA3FFDEC9B4FFDEC9B4FFDEC9B4FFDEC9 + B4FFDEC9B4FFDEC9B4FFDEC9B4FFDEC9B4FFDEC9B4FFDEC9B4FFDEC9B4FFDEC9 + B4FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFDCC5B0FFEED2B7FF736152FF5B4C + 41FF4A3F34AF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000AF8A67FFFFFFFFFFFAF2EAFFFAF2EAFFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFE4DC + D4FF4B3F35FF6C5A4DFF9D8976FFF5E0CDFFFAEFE4FFFBF2E9FFFBF2E9FFFBF2 + E9FFFBF2E9FFFBF2E9FFFBF2E9FFFBF2E9FFFBF2E9FFFBF2E9FFFBF2E9FFFBF2 + E9FFFBF2E9FFFBF2E9FFFBF2E9FFFBF2E9FFDABEA3FFC0A893FF725F51FF4E42 + 37FF493E325B0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B18B68FFFFFFFFFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFF7A6F65FF57493EFF705E50FFD6C0ACFFF7E4D3FFFBF3EBFFFCF4EDFFFCF4 + EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4 + EDFFFCF4EDFFFCF4EDFFFCF4EDFFF9EDE1FFD5B598FF7A6758FF625245FF4A3E + 35ED3333330A0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B28D68FFFFFFFFFFFBF4ECFFFBF4ECFFFBF4 + ECFFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D69FFB38D + 69FF9F7E5FFF4C3F35FF68574AFF7E6B5BFFD2B498FFDCC0A5FFE1CEBDFFE1CF + BEFFE1CFBEFFE1CFBEFFE1CFBEFFE1CFBEFFE1CFBEFFE1CFBEFFE1CFBEFFE1CF + BEFFFDF6F0FFFDF6F0FFFAF0E6FFF5E1CDFF96806CFF6F5D4FFF4E4137FF4A3E + 356F000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B38E69FFFFFFFFFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFF9B9189FF4E4137FF6E5C4EFF8D7A6AFFE8D3C0FFF7E5D5FFFBF4 + EDFFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F2FFF9EDE1FFF3DFCBFFAC9784FF715E50FF53463BFF4B3F35C64000 + 0004000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B48F6AFFFFFFFFFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFF7F1EAFF7A6F66FF52443AFF6E5C4EFF7C6B5BFFD5C1ADFFF5E2 + CEFFF8EADCFFFBF3EBFFFDFAF6FFFEFBF7FFFEFBF7FFFEFBF7FFFDF7F1FFFAEF + E4FFF6E4D2FFE6D2BEFF9B8876FF715F51FF57493EFF4B3E34E149372E1C0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B5906BFFFFFFFFFFFCF5EFFFFCF5EFFFFCF5 + EFFFB5906BFFB5906BFFB5906BFFB5906BFFB5906BFFB5906BFFB5906BFFB590 + 6BFFB5906BFFB5906BFFB08C68FF685543FF4E4137FF68574AFF705D50FF9E88 + 75FFC5AA91FFD9B99BFFDABA9BFFDBBD9FFFDBBEA1FFDBBB9DFFDABA9BFFCCAF + 95FFB5A08DFF716050FF6E5C4EFF52453AFF57483BFF483B3427000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B7916CFFFFFFFFFFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFF8F2EDFF9C928BFF4C4036FF57493EFF6C5A + 4DFF725F51FF705E50FF847161FF927D6CFF95816FFF887565FF776556FF705E + 50FF6F5D4FFF5C4D41FF4C4036FF7D7268FFAE8A67FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B8926DFFFFFFFFFFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFDAD3CDFF7C726AFF4B3F + 35FF514439FF5D4E42FF645347FF68574AFF69574AFF655448FF5F5044FF5447 + 3CFF4B3F35FF665B50FFB7A99CFFEADBCCFFB8926DFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000B9936EFFFFFFFFFFFCF8F3FFFCF8F3FFFCF8 + F3FFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB792 + 6CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFA987 + 65FF896F55FF6B5745FF5C4C3DFF514438FF4F4237FF594A3CFF655342FF8269 + 51FFC2AF9CFFDEC9B3FFDEC9B3FFDEC9B3FFB9936EFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BA946FFFFFFFFFFFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFEFE3D7FFD7BEA5FFD2B6 + 99FFD2B699FFD2B699FFD2B699FFD2B699FFBA946FFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BB966FFFFFFFFFFFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFF1E6DBFFD2B79AFFC5A37FFFC5A37FFFC5A3 + 7FFFC5A37FFFC5A37FFFC5A37FFFC5A37FFFBB966FFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BD9770FFFFFFFFFFFDFAF6FFFDFAF6FFFDFA + F6FFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA94 + 6EFFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA946EFFBA94 + 6EFFBA946EFFBA946EFFFDFAF6FFFFFFFFFFFCFBF9FFF7F2EDFFF1E9E1FFECE1 + D5FFE7D8C9FFE1CFBDFFDDC8B2FFD6BCA3FFBC9870B400000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BE9871FFFFFFFFFFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFCFBF9FFF7F2EDFFF1E9E1FFECE1D5FFE7D8 + C9FFE1CFBDFFDDC8B2FFD6BDA3FFBE9871B4AA80550600000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFEFBF8FFFEFBF8FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFF7F2EDFFF1E9E1FFECE1D5FFE7D8C9FFE1CF + BDFFDCC7B1FFD6BEA4FFBF9971B4AA8055060000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFEFCFAFFFEFCFAFFFEFC + FAFFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD97 + 70FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD97 + 70FFBD9770FFBD9770FFFEFCFAFFF1E9E1FFECE1D5FFE7D8C9FFE1CFBDFFDCC7 + B1FFD6BEA5FFBF9971B4AA805506000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFEFCFBFFFEFCFBFFFEFC + FBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFC + FBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFC + FBFFFEFCFBFFFEFCFBFFFEFCFBFFECE1D5FFE7D8C9FFE1CFBDFFDCC7B1FFD6BE + A5FFBF9971B4AA80550600000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFE7D8C9FFE1CFBDFFDCC7B1FFD6BEA5FFBF99 + 71B4AA8055060000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFE1CFBDFFDCC7B1FFD7BEA5FFBF9971B4AA80 + 5506000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFDCC7B1FFD7BEA5FFBF9971B4AA8055060000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFEFFD7BEA6FFBF9971B4AA805506000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000BF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9971B4AA80550600000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFFFFFFFFE00000FFFFFFFFFFC00000FFFFFFFFFF800000FFFF + FFFFFF000000C00000000E000000C00000000C010000C000000008030000C000 + 000000070000C0000000000F0000C0000000001F0000C0000000003F0000C000 + 0000007F0000C000000000FF0000C000000001FF0000C000000001FF0000C000 + 000000FF0000C000000000FF0000C000000000FF0000C0000000007F0000C000 + 0000007F0000C0000000007F0000C0000000007F0000C0000000007F0000C000 + 000000FF0000C000000000FF0000C000000000FF0000C000000000FF0000C000 + 000001FF0000C000000001FF0000C000000003FF0000C000000007FF0000C000 + 00000FFF0000C00000000FFF0000C00000000FFF0000C00000000FFF0000C000 + 00000FFF0000C00000000FFF0000C00000000FFF0000C00000001FFF0000C000 + 00003FFF0000C00000007FFF0000C0000000FFFF0000C0000001FFFF0000C000 + 0003FFFF0000C0000007FFFF0000C000000FFFFF0000FFFFFFFFFFFF0000FFFF + FFFFFFFF00002800000028000000500000000100200000000000401A00000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000231F1A3A27201BF43E34 + 2CFF64564CFF7D6F64FF97877BFF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000231F1A3A27201BF43E342CFF6456 + 4CFF7D6F64FF97877BFF918378FF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000231F1A3A27201BF43E342CFF64564CFF7D6F + 64FF97877BFF918378FF2C2620FE000000009B7758FF9B7758FF9B7758FF9B77 + 58FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B77 + 58FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B77 + 58FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B7758FF9B77 + 58FF9B7758FF9B7758FF231F1A3A27201BF43E342CFF64564CFF7D6F64FF9787 + 7BFF918378FF2C2620FE26211B5D000000009C7859FFFCF6F0FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FF81644BFF27201BF43E342CFF64564CFF7D6F64FF97877BFF9183 + 78FF2C2620FE26211B5D00000000000000009D795AFFFDF7F2FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFE4D5 + C7FFD4C6B8FFCDBEB1FFDCCEC0FFF1E2D3FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFB5A699FF382F27FF3E342CFF64564CFF7D6F64FF97877BFF918378FF2C26 + 20FE26211B5D0000000000000000000000009F7A5AFFFDF8F3FFF7E9DAFFF7E9 + DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9 + DAFFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFD6C8BAFF8F8276FF5D5146FF4F42 + 38FF56483DFF594B3FFF52453AFF4F4339FF786C60FFB2A598FFF5E7D8FFD1C2 + B4FF715F51FFB1A59CFF7D7167FF7D6F64FF97877BFF918378FF2C2620FE2621 + 1B5D00000000000000000000000000000000A07B5BFFFDF8F4FFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFEADCCEFF84786CFF504339FF705E51FF897363FF9981 + 6FFFA18A7AFFA58F7FFF9C8472FF937C6AFF7C6859FF5C4D41FF5D5146FF6B5A + 4DFFBAAFA6FFF0ECEAFFF2EFEEFFA29389FF918378FF2C2620FE26211B5D0000 + 000000000000000000000000000000000000A17D5CFFFDF9F6FFF7EADDFFF7EA + DDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EA + DDFFF7EADDFFD6C9BCFF5E5247FF6A594CFF947C6BFFC3B2A5FFE2D6CDFFF9F3 + EEFFFCF7F3FFFCF7F3FFFCF7F3FFEDE5DDFFD4C6BBFFA58F7EFF806C5CFF5144 + 39FF958B84FFFBFAFAFFF5F3F1FFC5BBB4FF382F28FF26211B5D000000000000 + 000000000000000000000000000000000000A27E5DFFFEFAF7FFF8EBDEFFF8EB + DEFFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD97 + 70FFAD8B68FF514438FF7A6758FFAE9886FFDBCBBBFFE6D7C7FFE6D7C7FFE6D7 + C7FFE6D7C7FFE6D7C7FFE6D7C7FFE6D7C7FFE6D7C7FFE4D5C5FFC7B4A4FF9079 + 68FF584A3FFF938A84FFCEC5BEFF776457FF53463C9600000000000000000000 + 000000000000000000000000000000000000A37F5EFFFEFBF8FFF8EBDFFFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF0E3 + D7FF65584EFF756254FFB6A293FFF5ECE3FFFCF4EDFFFCF4EDFFFCF4EDFFFCF4 + EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFFCF4EDFFD9CA + BEFF907A69FF52453AFF68574BFF625146750000000000000000000000000000 + 000000000000000000000000000000000000A5805FFFFEFBF9FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFA397 + 8CFF615145FFA89281FFF1E7DCFFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFCDBCADFF846F5FFF4D4036F0402020080000000000000000000000000000 + 000000000000000000000000000000000000A68160FFFEFCFAFFF8EDE1FFF8ED + E1FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFB6926CFF5043 + 37FF8D7766FFD2BDA9FFE3CEB9FFE3CEB9FFE3CEB9FFE3CEB9FFE3CEB9FFE3CE + B9FFE3CEB9FFE3CEB9FFE3CEB9FFE3CEB9FFE3CEB9FFE3CEB9FFE3CEB9FFF9EF + E4FFF6ECE0FFA99281FF5F5044FF493F34760000000000000000000000000000 + 000000000000000000000000000000000000A78261FFFEFCFBFFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFBCB0A5FF5E4F + 43FFAE9785FFF9ECDEFFF9ECDFFFF9ECDFFFF9ECDFFFF9ECDFFFF9ECDFFFF9EC + DFFFF9ECDFFFF9ECDFFFF9ECDFFFF9ECDFFFF9ECDFFFF9ECDFFFF9ECDFFFF9EC + DFFFF9ECDFFFD7C4B4FF826E5EFF4B3F35CF0000000000000000000000000000 + 000000000000000000000000000000000000A88361FFFFFDFCFFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FF867A70FF7664 + 55FFCDB9A7FFF8E9DBFFF8E9DBFFF8E9DBFFF8E9DBFFF8E9DBFFF8E9DBFFF8E9 + DBFFF8E9DBFFF8E9DBFFF8E9DBFFF8E9DBFFF8E9DBFFF8E9DBFFF8E9DBFFF8E9 + DBFFF8E9DBFFEFDFD0FF967E6DFF4D4137FF4A35351800000000000000000000 + 000000000000000000000000000000000000A98562FFFFFEFCFFF9EFE4FFF9EF + E4FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FF615040FF8671 + 61FFD3BAA2FFDFC5AAFFDFC5AAFFDFC5AAFFE0C6ACFFE0C7ADFFE1C8AEFFE1C8 + AFFFE1C8AFFFE1C8AFFFE1C8AFFFE1C8AFFFE1C7AEFFE0C6ACFFE0C6ABFFF6E7 + D7FFF6E7D7FFF6E7D7FFA48C7AFF584A3FFF483C333C00000000000000000000 + 000000000000000000000000000000000000AB8663FFFFFEFDFFF9EFE5FFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FF5D5147FF8D77 + 66FFE5D0BDFFF6E5D5FFF8E8D9FFF8EADCFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8E9 + DBFFF7E7D8FFF6E4D3FFAC9481FF605044FF4B3E355200000000000000000000 + 000000000000000000000000000000000000AC8764FFFFFEFEFFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FF5F544AFF8B75 + 64FFE3CDB9FFF7E8D9FFF9EBDEFFF9EBDEFFF9EBDEFFF9EBDEFFF9EBDEFFF9EB + DEFFF9EBDEFFF9EBDEFFF9EBDEFFF9EBDEFFF9EBDEFFF9EBDEFFF9EBDEFFF9EB + DEFFF9EBDEFFF6E4D2FFAA927EFF5E4F43FF493D335000000000000000000000 + 000000000000000000000000000000000000AD8865FFFFFFFFFFFAF1E8FFFAF1 + E8FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FF635141FF836E + 5EFFD0B499FFDFC5A9FFE2CAB2FFE2CAB2FFE2CAB2FFE2CAB2FFE2CAB2FFE2CA + B2FFE2CAB2FFE2CAB2FFE2CAB2FFE2CAB2FFE2CAB2FFE2CAB2FFE2CAB2FFF9EC + E0FFF9ECE0FFF5E1CEFFA08875FF56493DFF473D343600000000000000000000 + 000000000000000000000000000000000000AE8966FFFFFFFFFFFAF1E9FFFAF1 + E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FF92887EFF705E + 50FFC4AC97FFF6E3D1FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEE + E4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEEE4FFFAEE + E4FFF9ECE1FFE7D1BCFF927B6AFF4A3E34FA402B2B0C00000000000000000000 + 000000000000000000000000000000000000AF8A67FFFFFFFFFFFAF2EAFFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFCAC1B9FF584A + 3FFFA48C79FFF1DCC8FFF9EDE2FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFF7E7D7FFCEB6A0FF7C6859FF4A3E35BD0000000000000000000000000000 + 000000000000000000000000000000000000B18B68FFFFFFFFFFFBF3EBFFFBF3 + EBFFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBB966FFF594A + 3CFF826E5EFFC9AD94FFDFC1A4FFE4D0BCFFE4D0BDFFE4D0BDFFE4D0BDFFE4D0 + BDFFE4D0BDFFE4D0BDFFE4D0BDFFE4D0BDFFE4D0BDFFE4D0BDFFE4D0BDFFFAF0 + E5FFEED8C4FF9F8673FF57493EFF493D34540000000000000000000000000000 + 000000000000000000000000000000000000B28D68FFFFFFFFFFFBF4ECFFFBF4 + ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFBAB1 + A8FF584A3EFF9A8270FFE3CDB8FFF8E8D9FFFCF6F0FFFDF6F0FFFDF6F0FFFDF6 + F0FFFDF6F0FFFDF6F0FFFDF6F0FFFDF6F0FFFDF6F0FFFDF6F0FFFBF3EBFFF4E1 + CEFFBBA38DFF776456FF4B3F35CF000000020000000000000000000000000000 + 000000000000000000000000000000000000B38E69FFFFFFFFFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFAF3 + ECFF80766CFF665549FFA58D7AFFE5CFBAFFF7E7D6FFFCF4EDFFFDF9F4FFFDF9 + F4FFFDF9F4FFFDF9F4FFFDF9F4FFFDF9F4FFFDF8F4FFFAF0E6FFF3DFCCFFC4AB + 96FF877161FF514338FF493E3431000000000000000000000000000000000000 + 000000000000000000000000000000000000B48F6AFFFFFFFFFFFBF5EEFFFBF5 + EEFFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD97 + 70FFB8936DFF5E4E3FFF675649FF9B8370FFCBAF96FFDDBE9EFFE0C6ABFFE3CE + B8FFE4D2BEFFE4D3C0FFE4D0BCFFE2CBB3FFDFC1A4FFD5B89CFFB49A84FF836E + 5EFF504339FF917458FF00000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B5906BFFFFFFFFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFF3EBE5FF7E736AFF5A4C40FF857060FFA9917DFFCCB49FFFE0CA + B5FFE9D3C0FFECD7C4FFE5CFBBFFD6BFAAFFBCA38EFF947C6BFF6E5D4FFF564A + 40FFCBC3BBFFB5906BFF00000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B7916CFFFFFFFFFFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFBF5F0FFB3AAA3FF5C5147FF5C4E42FF766355FF8973 + 63FF917B69FF947D6CFF8D7766FF806C5CFF69584BFF4F4338FF877C73FFE1D8 + CFFFF6EDE5FFB7916CFF00000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B8926DFFFFFFFFFFFCF7F2FFFCF7 + F2FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD97 + 70FFBD9770FFBD9770FFBD9770FFBD9770FFBA946EFF94785BFF725D49FF5A4A + 3CFF4E4237FF4B3F35FF54463AFF665443FF856B53FFAB8967FFEADBCCFFEADB + CCFFEADBCCFFB8926DFF00000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B9936EFFFFFFFFFFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF7F2FFEDE0D2FFDECAB4FFDEC9B2FFDEC9B2FFDEC9 + B2FFDEC9B2FFB9936EFF00000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BA946FFFFFFFFFFFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFF3E8DFFFD8C0A7FFD2B699FFD2B699FFD2B699FFD2B699FFD2B6 + 99FFD2B699FFBA946FFF00000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BB966FFFFFFFFFFFFDF9F5FFFDF9 + F5FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD97 + 70FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD97 + 70FFFDF9F5FFFFFFFFFFFBF9F6FFF5EFE8FFEFE5DBFFE9DBCEFFE2D1C0FFDDC9 + B4FFD4BCA2FFBB966FB400000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BD9770FFFFFFFFFFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFBF9F6FFF5EFE8FFEFE5DBFFE9DBCEFFE2D1C0FFDDC9B4FFD6BC + A3FFBC9870B4AA80550600000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BE9871FFFFFFFFFFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFF5EFE8FFEFE5DBFFE9DBCEFFE2D1C0FFDCC8B3FFD6BDA3FFBE98 + 71B4AA8055060000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BF9972FFFFFFFFFFFEFBF8FFFEFB + F8FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD97 + 70FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD9770FFBD97 + 70FFFEFBF8FFEFE5DBFFE9DBCEFFE2D1C0FFDCC8B3FFD6BEA4FFBF9971B4AA80 + 5506000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BF9972FFFFFFFFFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFE9DBCEFFE2D1C0FFDCC8B3FFD6BEA5FFBF9971B4AA8055060000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BF9972FFFFFFFFFFFEFCFBFFFEFC + FBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFC + FBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFC + FBFFFEFCFBFFE2D1C0FFDCC8B3FFD6BEA5FFBF9971B4AA805506000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BF9972FFFFFFFFFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFDCC8B3FFD6BEA5FFBF9971B4AA80550600000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BF9972FFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFCFFD7BEA5FFBF9971B4AA8055060000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9971B4AA805506000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFC0000000FFFFFFFF80000000FFFF + FFFF000000008000000000000000800000000100000080000000030000008000 + 000007000000800000000F000000800000001F000000800000003F0000008000 + 00007F000000800000007F000000800000007F000000800000007F0000008000 + 00003F000000800000003F000000800000003F000000800000003F0000008000 + 00003F000000800000003F000000800000007F000000800000007F0000008000 + 00007F00000080000000FF00000080000001FF00000080000001FF0000008000 + 0001FF00000080000001FF00000080000001FF00000080000001FF0000008000 + 0001FF00000080000001FF00000080000003FF00000080000007FF0000008000 + 000FFF0000008000001FFF0000008000003FFF0000008000007FFF0000008000 + 00FFFF000000FFFFFFFFFF000000280000002000000040000000010020000000 + 0000801000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000026211B8D342C25FF605348FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000026211B8D342C25FF605348FF807266FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000026211B8D342C25FF605348FF807266FF9E8E82FF000000009A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF00000000000000002621 + 1B8D342C25FF605348FF807266FF9E8E82FF5B5149FF000000009A7657FFFBF3 + ECFFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFE6D6C6FFD3C4 + B5FFD2C3B4FFE2D2C3FFF6E6D6FFF6E6D6FF9A7657FF00000002463B32AE342C + 25FF605348FF807266FF9E8E82FF5B5149FF26211B8D000000009B7758FFFBF4 + EEFFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6 + D7FFF6E6D7FFF6E6D7FFF6E6D7FFEADBCCFF9E9084FF65584DFF5C4D41FF6555 + 48FF665549FF5E4F43FF5F5348FF94867AFF937154FF635447C39B8C81FFA69C + 93FF807266FF9E8E82FF5B5149FF26211B8D00000000000000009D7859FFFCF6 + F0FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7 + D8FFF7E7D8FFF7E7D8FFBFB1A3FF594C41FF766355FFA18C7CFFD1BFB0FFDDCE + C1FFE0D1C3FFD4C2B5FFA89381FF7B6758FF55473CFF74675CFFEEEAE7FFFDFD + FDFFB9AEA6FF5B5149FF26211B8D0000000000000000000000009E7A5AFFFDF7 + F2FFF7E8DAFFF7E8DAFF9D7959FF9D7959FF9D7959FF9D7959FF9D7959FF9D79 + 59FF9D7959FF785E48FF5D4E42FFA08B79FFCEBAA9FFD3C2B4FFD4C3B5FFD4C3 + B5FFD4C3B5FFD4C3B5FFFBF5EEFFEBDED3FFAE9989FF645448FF8C847DFFF0EC + EAFF9B8C81FF42382FA900000000000000000000000000000000A07C5BFFFDF8 + F4FFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9 + DCFFC2B5A8FF5B4D41FFB29E8DFFF4EAE0FFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFF7EDE4FFB09B8AFF635347FF7667 + 5DFF615045B80000000000000000000000000000000000000000A27D5DFFFDFA + F5FFF8EBDDFFF8EBDDFFA07C5CFFA07C5CFFA07C5CFFA07C5CFFA07C5CFF9D7A + 5BFF56483AFF9D8673FFD1BCA9FFD3BFACFFD3BFACFFD3BFACFFD3BFACFFD3BF + ACFFD3BFACFFD3BFACFFFAF0E6FFFAF0E6FFFAF0E6FFD3BEABFFA59080FF5346 + 3AFD4A3535180000000000000000000000000000000000000000A47F5EFFFEFA + F7FFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFADA0 + 95FF715F51FFE2D0C0FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFD3BDA8FFE3D4C7FF7A67 + 58FF4A3E35900000000000000000000000000000000000000000A5815FFFFEFB + F9FFF8ECE1FFF8ECE1FFA47F5EFFA47F5EFFA47F5EFFA47F5EFFA47F5EFF604E + 3EFF937D6CFFD2B9A2FFD2B9A3FFD2B9A3FFD2B9A3FFD2B9A3FFD2B9A3FFD2B9 + A3FFD2B9A3FFD2B9A3FFF8EADDFFF8EADDFFF8EADDFFD3BAA3FFF7E8DAFFA089 + 78FF4D4036E40000000000000000000000000000000000000000A78261FFFEFC + FAFFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FF5547 + 3CFFC2AB98FFF7E7D8FFF7E7D8FFF7E7D8FFF8E8D9FFF8E8DAFFF8E9DBFFF8E9 + DBFFF8E9DBFFF8E9DBFFF8E8DAFFF8E8D9FFF7E7D8FFD2B79EFFF5E2D0FFC2AC + 9AFF5C4D41FF49372E1C00000000000000000000000000000000A98462FFFFFD + FBFFF9EFE4FFF9EFE4FFA78361FFA78361FFA78361FFA78361FFA07E5DFF5B4C + 41FFC8AE96FFD3B79CFFD8C0A8FFDCC6B0FFDFCBB7FFDFCBB7FFDFCBB7FFDFCB + B7FFDFCBB7FFDFCBB7FFF9EDE1FFF9EDE1FFF9ECDFFFDAC1AAFFF4DFCAFFCDB7 + A2FF645447FF4A3B313400000000000000000000000000000000AB8663FFFFFE + FDFFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFF9F0E6FFEFE5DBFF5A4C + 40FFCEB8A3FFF7E8D8FFF9EFE3FFF9EFE3FFF9EFE3FFF9EFE3FFF9EFE3FFF9EF + E3FFF9EFE3FFF9EFE3FFF9EFE3FFF9EFE3FFF9EFE3FFE4D1BFFFF5E2CFFFCBB2 + 9BFF635447FF473D333200000000000000000000000000000000AD8865FFFFFE + FEFFFAF0E7FFFAF0E7FFAB8663FFAB8663FFAB8663FFAB8663FFAB8663FF5345 + 3AFFBDA28AFFD7BBA1FFE8D8C9FFE8D8C9FFE8D8C9FFE8D8C9FFE8D8C9FFE8D8 + C9FFE8D8C9FFE8D8C9FFFAF0E7FFFAF0E7FFFAF0E7FFE9D9CAFFF4E0CCFFBCA3 + 8DFF5A4C40FF4033331400000000000000000000000000000000AE8966FFFFFF + FFFFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FF7B70 + 66FF8A7564FFF2DFCCFFFBF2EAFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFEEE1D4FFF1D8C0FF9A81 + 70FF4A3F34D80000000000000000000000000000000000000000B08B67FFFFFF + FFFFFBF3EBFFFBF3EBFFAE8966FFAE8966FFAE8966FFAE8966FFAE8966FF896D + 53FF6A5A4CFFCFB299FFDFC7AFFFF2E8DFFFF2E8DFFFF2E8DFFFF2E8DFFFF2E8 + DFFFF2E8DFFFF2E8DFFFFCF7F1FFFCF7F1FFFCF7F1FFE7D5C3FFD5BAA1FF7461 + 53FF4A3E347F0000000000000000000000000000000000000000B28D68FFFFFF + FFFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFF9F2 + EAFF685B52FF927A69FFEDDAC6FFFAF0E6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFCF5EDFFD6B697FF99816FFF5043 + 39EF4937240E0000000000000000000000000000000000000000B48E6AFFFFFF + FFFFFBF5EEFFFBF5EEFFB28C68FFB28C68FFB28C68FFB28C68FFB28C68FFB28C + 68FF9E7D5EFF584A3EFFA58D78FFD4B799FFE3CCB7FFF8F1ECFFFBF8F5FFFBF8 + F5FFFBF8F5FFFBF8F5FFFEFCFAFFFAF1E7FFF1DECBFFA98F79FF5B4C40FE4A3D + 3453000000000000000000000000000000000000000000000000B5906BFFFFFF + FFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFC3BAB3FF594B40FF927A69FFDCC6B1FFF4E1CEFFF9EBDDFFFAEF + E5FFFBF0E6FFF9ECE0FFF5E3D2FFE2CCB7FF9B8572FF5A4B40FE4B3D34700000 + 0000000000000000000000000000000000000000000000000000B7926CFFFFFF + FFFFFCF7F1FFFCF7F1FFB5906BFFB5906BFFB5906BFFB5906BFFB5906BFFB590 + 6BFFB5906BFFB5906BFFA07F60FF5D4D3FFF6A594CFF897363FFBEA48DFFCCB1 + 98FFCEB298FFC2A88FFF8E7867FF6F5D50FF57493BFF493F354D000000000000 + 0000000000000000000000000000000000000000000000000000B9936EFFFFFF + FFFFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFAF6F0FFBCB5AEFF7F756DFF56493FFF5A4B + 40FF5A4C40FF54473BFF6F6051FF9C8975FFB6906CFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000BB956FFFFFFF + FFFFFDF9F4FFFDF9F4FFB9936DFFB9936DFFB9936DFFB9936DFFB9936DFFB993 + 6DFFB9936DFFB9936DFFB9936DFFB9936DFFB9936DFFFDF9F4FFECDECFFFC4A5 + 86FFBF9E7DFFC7A582FFC7A582FFC7A582FFBB956FFF00000000000000000000 + 0000000000000000000000000000000000000000000000000000BC9770FFFFFF + FFFFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFFFFFFFFF7F2 + EDFFEFE5DCFFE7D9CAFFDFCCB8FFD9C2AAFFBC9870D400000000000000000000 + 0000000000000000000000000000000000000000000000000000BE9871FFFFFF + FFFFFDFAF8FFFDFAF8FFBC9670FFBC9670FFBC9670FFBC9670FFBC9670FFBC96 + 70FFBC9670FFBC9670FFBC9670FFBC9670FFBC9670FFFDFAF8FFF7F2EDFFEFE5 + DCFFE7D9CAFFDFCCB8FFD9C2ABFFBF9871D2B38C661400000000000000000000 + 0000000000000000000000000000000000000000000000000000BF9972FFFFFF + FFFFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFC + F9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFFEFCF9FFEFE5DCFFE7D9 + CAFFDFCCB8FFDAC3ABFFC09A72C9BF9966140000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BF9972FFFFFF + FFFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFE7D9CAFFDFCC + B8FFDAC3ABFFC09972C5BF956A0C000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BF9972FFFFFF + FFFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFE + FDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFFEFEFDFFDFCCB8FFD9C1 + AAFFC09972C5BF956A0C00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BF9972FFFFFF + FFFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFF + FEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFDFFD8C0A7FFC099 + 72C5BF956A0C0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972C3BF95 + 6A0C000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000FFFFFFF8FFFFFFF0FFFF + FFE0800000C0800000008000000180000003800000078000000F8000000F8000 + 000F8000000F800000078000000780000007800000078000000F8000000F8000 + 000F8000001F8000003F8000007F800000FF800000FF800000FF800000FF8000 + 01FF800003FF800007FF80000FFF80001FFFFFFFFFFF28000000180000003000 + 0000010020000000000060090000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000626201BB540372FFF807266FF0000 + 00009A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF0000000626201BB540372FFF807266FF7D7066FF0000 + 00009A7657FFFBF3ECFFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFE4D5C5FFD7C8B9FFDECFC0FFF5E5 + D5FFF6E6D6FF967355FF3B322BC640372FFF807266FF7D7066FF27221CB50000 + 00009B7758FFFBF5EEFFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF4E5D5FFAFA194FF65584DFF605144FF67574AFF625346FF5E51 + 45FF9B8E81FF705C4CFFB5AAA2FF7D7167FF7D7066FF27221CB5000000060000 + 00009D795AFFFCF6F0FFF7E8D9FFA47F5EFFA47F5EFFA47F5EFFA47F5EFFA47F + 5EFFA07C5CFF625040FF6F5D50FFA69181FFC4B1A2FFCAB8A9FFC6B4A5FFB29F + 8FFF796657FF55483CFFD7D4D0FFB8ADA5FF3C322BC500000006000000000000 + 0000A07B5BFFFDF7F2FFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFF7E7166FF7C6859FFCFBFB2FFF9F2EBFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFDACDC1FF8F7968FF54473CFE665549D52E2E170B00000000000000000000 + 0000A27E5DFFFDF9F4FFF8EBDEFFA78361FFA78361FFA78361FFA78361FF8A6E + 53FF69584BFFC2AD9CFFDBC9B7FFDBC9B7FFDBC9B7FFDBC9B7FFDBC9B7FFFAF0 + E7FFFAF0E7FFCDBAAAFF796657FF4A3F33860000000000000000000000000000 + 0000A4805FFFFDFAF6FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FF7D71 + 67FF8F7968FFF3E5D7FFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8EC + DFFFF8ECDFFFD8C3AEFFAD9786FF4F4238EB0000000200000000000000000000 + 0000A78260FFFEFBF8FFF9EDE2FFAB8663FFAB8663FFAB8663FFAB8663FF5849 + 3DFFAF9886FFD9BFA7FFD9BFA7FFDAC0A8FFDAC0A9FFDAC0A9FFDAC0A9FFF8E7 + D8FFF7E7D7FFD8BEA6FFCCB8A5FF615145FF4838302000000000000000000000 + 0000A98462FFFEFCF9FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FF5A4C + 40FFB59D89FFF6E5D4FFF8E9DBFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EA + DCFFF8EADCFFD8BEA4FFD4BBA5FF665649FF483D322E00000000000000000000 + 0000AB8664FFFFFDFBFFFAF0E6FFAE8966FFAE8966FFAE8966FFAE8966FF594A + 3CFFA9907CFFDABDA3FFDCC5B0FFDCC5B0FFDCC5B0FFDCC5B0FFDCC5B0FFF9ED + E1FFF9EDE1FFD9BFA7FFC4AA93FF5F5044FF453B311A00000000000000000000 + 0000AE8965FFFFFDFCFFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FF8B80 + 76FF867161FFE9D3C0FFFAF0E7FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFD9BCA0FFA08774FF4D4135D80000000000000000000000000000 + 0000B08B67FFFFFEFDFFFBF3EBFFB28C68FFB28C68FFB28C68FFB28C68FF9F7D + 5EFF5D4E42FFB59C86FFDBBEA4FFE0CEBDFFE1CFBEFFE1CFBEFFE1CFBEFFFDF6 + F0FFF8E9DBFFC1A58CFF6E5C4FFF4A3E34670000000000000000000000000000 + 0000B28D69FFFFFFFEFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFF9F968DFF6B5A4DFFB9A08BFFE9D5C2FFF9ECE0FFFAF0E6FFFAEEE2FFF1DF + CDFFC5AC97FF7B6758FF4B3E35BC000000020000000000000000000000000000 + 0000B58F6AFFFFFFFFFFFBF5EFFFB5906BFFB5906BFFB5906BFFB5906BFFB590 + 6BFFB48F6AFF7D654EFF5E4F43FF857060FFA9917DFFB59B87FFAD9480FF8E78 + 67FF67574AFF6D5846FF402B2B0C000000000000000000000000000000000000 + 0000B7916CFFFFFFFFFFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFDBD4CEFF8D837BFF63574EFF594B40FF5F5147FF7A6B + 5DFFB29F8CFFB7916CFF00000000000000000000000000000000000000000000 + 0000B9946EFFFFFFFFFFFCF8F3FFB9936DFFB9936DFFB9936DFFB9936DFFB993 + 6DFFB9936DFFB9936DFFB9936DFFFCF8F3FFEDE0D2FFD0B395FFC9A987FFC9A9 + 87FFC9A987FFB9946EFF00000000000000000000000000000000000000000000 + 0000BC9670FFFFFFFFFFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDFDFCFFF4EDE7FFEADED1FFE1CF + BCFFD9C1AAFFBC9770D200000000000000000000000000000000000000000000 + 0000BE9871FFFFFFFFFFFDFAF7FFBC9670FFBC9670FFBC9670FFBC9670FFBC96 + 70FFBC9670FFBC9670FFBC9670FFFDFAF7FFF4EDE7FFEADED1FFE1CFBCFFD9C2 + ABFFBF9871D2B38C661400000000000000000000000000000000000000000000 + 0000BF9972FFFFFFFFFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFEADED1FFE1CFBCFFDAC3ABFFC099 + 72C5BF956A0C0000000000000000000000000000000000000000000000000000 + 0000BF9972FFFFFFFFFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFE1CFBCFFD9C2AAFFC09972C5BF95 + 6A0C000000000000000000000000000000000000000000000000000000000000 + 0000BF9972FFFFFFFFFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFDFFD7BFA7FFC09972C5BF956A0C0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972C3BF956A0C000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + F000800000008000000080000000800001008000030080000700800003008000 + 0300800003008000030080000700800007008000070080000F0080001F008000 + 1F0080001F0080001F0080003F0080007F008000FF008001FF00FFFFFF002800 + 0000140000002800000001002000000000009006000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000024211A4D342C24FC796B60FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF0000000024211A4D342C24FC796B + 60FF73675EFF9B7758FFFCF5EFFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFF9B77 + 58FF352F275C342C24FC796B60FF73675EFF27201C769D7859FFFCF7F1FFF7EA + DCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFEBDED1FFA19589FF6F63 + 58FF5D5146FF6F6358FFA19589FF876A52FF897769FF75685EFF73675EFF2720 + 1C76000000009E7A5AFFFDF8F3FFB69577FFB69577FFB69577FFB69577FFB695 + 77FF9F8268FF56483CFFB2A9A1FFDDD3C9FFE2D7CCFFDCD2C9FFB2ACA6FF5043 + 38FF9B8E83FFBCB3ADFF392F28870000000000000000A07C5BFFFDF9F5FFF9ED + E1FFF9EDE1FFF9EDE1FFF9EDE1FFEADED2FF5A4E44FFEEE7E0FFFCF4EDFFFCF4 + EDFFFCF4EDFFFCF4EDFFFCF4EDFFCFC2B5FF4C4036F762524692000000000000 + 000000000000A27D5DFFFEFBF7FFB69577FFB69577FFB69577FFB69577FF7A64 + 52FFBEAFA1FFDDC9B6FFDDC9B6FFDDC9B6FFDDC9B6FFDDC9B6FFF9EFE5FFD4BF + ABFFABA096FF4A3E3590000000000000000000000000A47F5EFFFEFBF9FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FF62564DFFF5E7D9FFF8EADDFFF8EADDFFF8EA + DDFFF9EBDEFFF8EADDFFF8EADDFFD3BAA2FFECDBCBFF4B3E35DD000000000000 + 000000000000A5815FFFFEFCFAFFBB9A7DFFBB9A7DFFBB9A7DFFBB9A7DFF4C3F + 35FFDDC2A9FFE2CBB6FFE5D0BEFFE6D3C1FFE7D3C2FFE6D3C1FFF9ECE0FFDAC2 + ACFFF3DBC6FF4B3F35FB000000000000000000000000A78261FFFFFDFCFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFF5D5147FFF4E1CEFFFAF1E7FFFAF1E7FFFAF1 + E7FFFAF1E7FFFAF1E7FFFAF1E7FFE8D7C8FFEBD0B6FF4B3E34E5000000000000 + 000000000000A98462FFFFFEFDFFC0A082FFC0A082FFC0A082FFC0A082FF7663 + 51FFCEB39AFFECDBCBFFF4EAE1FFF4EAE1FFF4EAE1FFF4EAE1FFFCF6F0FFE6D3 + C2FFC3AB95FF4A3E34A1000000000000000000000000AB8663FFFFFEFEFFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFE1DAD4FF685B4FFFF4E1CEFFFCF3ECFFFEFB + F9FFFEFBF9FFFEFBF9FFFCF3ECFFD6B99DFF56493EFB4A3C2F26000000000000 + 000000000000AC8764FFFFFFFEFFC5A588FFC5A588FFC5A588FFC5A588FFC5A5 + 88FF9B826CFF6A594CFFD3B89EFFE4CAB2FFE7D1BDFFE4CAB2FFD9C3AEFF5C4E + 42FF493E355700000000000000000000000000000000AE8966FFFFFFFFFFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFDCD7D2FF847A72FF5146 + 3CFF6C5D51FF504339FF73614FFF9B7B5DFF0000000000000000000000000000 + 000000000000B08B67FFFFFFFFFFCAAA8EFFCAAA8EFFCAAA8EFFCAAA8EFFCAAA + 8EFFCAAA8EFFCAAA8EFFD9C0ACFFFEFBF9FFD4C1AFFFBF9972FFBF9972FFB08B + 67FF0000000000000000000000000000000000000000B28D68FFFFFFFFFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFBF9F7FFEFE6DCFFDDCAB8FFB28D67D40000000000000000000000000000 + 000000000000B48E6AFFFFFFFFFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFE + FEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFEFE6DCFFDDCAB8FFB48E6ACBB38C + 66140000000000000000000000000000000000000000B5906BFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FEFFDCC9B6FFB5906AC5AA806A0C000000000000000000000000000000000000 + 000000000000B7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926CFFB792 + 6CFFB7926CFFB7926CFFB7926CFFB7926CFFB7926BC5AA806A0C000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFF800000010000000000000000100000003000000070000000 + 700000007000000070000000700000007000000070000000F0000001F0000001 + F0000001F0000001F0000003F0000007F000FFFFF00028000000100000002000 + 0000010020000000000040040000000000000000000000000000000000009A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF00000000231F1A3A342B24F87F7065FF9C78 + 58FFFBF4ECFFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FF9C7858FF231F1A3A342B24F87F7065FF5C5149F89F7B + 5BFFFCF6EFFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFC3B6A9FF75695EFF5447 + 3DFF54473DFF75695EFF86694FFF6D5F54FE7D6E63FF5C5149F8231F1A3AA27E + 5DFFFDF7F2FFB28C68FFB28C68FFB28C68FF7C644DFF766B62FFD7CEC7FFEEE7 + DFFFEEE7DFFFE3DFDBFF766A61FF877C73FF897E75FE231F1A3A00000000A681 + 60FFFDF9F4FFF8EDE1FFF8EDE1FFC3B8ADFF796D64FFF8F1E9FFFCF4EDFFFCF4 + EDFFFCF4EDFFFCF4EDFFE9DCD1FF70665DFF52443A7F0000000000000000A984 + 62FFFDFAF6FFB28C68FFB28C68FF645241FFD2C0B0FFEBD8C7FFEBD8C7FFEBD8 + C7FFEBD8C7FFF9EBDFFFE9D7C6FFD4C7BBFF4B3F34BF0000000000000000AC87 + 64FFFEFBF8FFFAF1E7FFFAF1E7FF53473DFFF3E1CFFFF7E5D5FFF7E7D7FFF8E7 + D9FFF8E7D9FFF7E7D7FFE9D2BCFFF1DDCAFF4B3F34F30000000000000000B08B + 67FFFEFCFAFFB5906BFFB5906BFF504337FFE6CBB0FFF1E0D0FFF1E0D0FFF1E0 + D0FFF1E0D0FFF8EBDEFFF0E0CFFFF0D8C0FF4B3F34F30000000000000000B38E + 69FFFFFDFCFFFBF4EEFFFBF4EEFF776C63FFDBC4B0FFFAEFE4FFFBF2EAFFFBF2 + EAFFFBF2EAFFFBF2EAFFF4E7DBFFD0B8A1FF4A3E35BD0000000000000000B791 + 6CFFFFFEFDFFB9936DFFB9936DFF997A5CFF726152FFE7CDB4FFF8EFE6FFFCF7 + F2FFFCF7F2FFFCF5EFFFE7CFB7FF6E5F50FF493F34490000000000000000BA94 + 6EFFFFFEFEFFFDF8F4FFFDF8F4FFFDF8F4FFA29992FF77695BFFDBC5B0FFF2DF + CBFFEFD9C4FFD3BAA0FF736353FF4A3E3583000000000000000000000000BD97 + 71FFFFFFFFFFBC9670FFBC9670FFBC9670FFBC9670FF9B7C5FFF7B7269FF5448 + 3EFF53473CFF716254FF97795DE100000000000000000000000000000000BF99 + 72FFFFFFFFFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFE7D9 + CAFFDAC2ABFFC09972CDBF99661400000000000000000000000000000000BF99 + 72FFFFFFFFFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFEFFFFFEFDFFD9C2 + AAFFC09972C5BF956A0C0000000000000000000000000000000000000000BF99 + 72FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFBF9972FFC099 + 72C5BF956A0C0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000008 + 0000000000000000000000010000000300000003000000030000000300000003 + 00000003000000070000000F0000000F0000001F0000003F0000FFFF0000} KeyPreview = True OldCreateOrder = False Position = poOwnerFormCenter @@ -86,50 +1394,11 @@ object FileFindDialog: TFileFindDialog Caption = 'Sear&ch in:' FocusControl = RemoteDirectoryEdit end - object Image: TImage + object AnimationPaintBox: TPaintBox Left = 11 Top = 23 Width = 32 Height = 32 - AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC300000EC301C76FA864 - 0000043D4944415478DAC5960F4C94651CC7BF978E9D9893E13A9DE3189C2EDB - 303131FE867021E888BBC85CEAB45432B4D6140D7514532B566BC9BCE656382B - 41AC69097ABC40811A11777821D884CC9A9AE6FDE178F1EE0838EE60C6DBC319 - EFFD7BEFBDE3DFFA6DCF9EE77D7EDFFBFD3ECFEFF9DD7B27C0FF6C82D145C3A1 - 0861DFF47F1AC8563CB794D1CC7A304D2A3D74D73E25005545E28FA3A42FE54B - E2F7730AFFD47C84EB0DDF1C96176AF74E3AC0F9F7C2E2843385CDD24D298F04 - CD08E2140ED986D070AA71D86EB527661FD0FD3CA9005545E11D31AB9E5C3C7F - 8188576CB84DA3ADAE639CA9180DA95E822F0046B63566B20EC569D48936C80B - EF093CF75980955961530A70B15AC70F30A5D9FF335E005941EB9426A73E5CEE - 07605F0DD077D8DDCB781686A3500C57F1BCF7A8634D7E00F69E250047030EF8 - 70CB8F96712EA8E3CD7E00F2CB81DE6301071CAB8EFA5CE307600F49DE5736C6 - C40CC723371CF5C5153F00794780FE331C89C77E5A2E2DF5A59FF7806C571101 - 50061C70744A90354273D5CC7A13978742AD5CC10A12643F11BFC535808A8C64 - 6F8037DF06AC753CC9190E17034158155EDD598808C942B45C56833A731C8C56 - E63CA198F2F2C3E547D009F0461E30F023475EFE7B1788ABBD01EE3DC7EA04E1 - B50102ECD806D85A7C24F55115A2CB2BCD86E2402E8CDD16E88D26949FFB018A - 2DE758495EE90B5EFE4F0E6EE700C8DD4000DAF9EFDDE5B1DFFA004B56AB7147 - 6BF352EF7AD7FDEB4C127A4ABAC8584206ED04C821F73674CB77628FE6BCA836 - E395020BD6E716202D291A97DB6EC060D0C37CDF88888551D8B77D2D8133E2DB - 5A151E0D1612CD52282F686031D1B8A43C09FD5F373792305FB300A999B118B6 - E97C97DBC38A4FEA51D91A818CECCD6E00EA9A724E7D49E96916A0B5E97BFCF6 - 8B5A41B6773B2BF0FA1E10028F13FBEE05D9A67258839661699CD40D20323212 - 4F48C2200C9A069DC1E818FACE2E6CDEB08605B875BD0DCD97CE379330492CC0 - 8A67C5608687F89BCEC575F0531D4A2ACC080E9EE9E61289E6717E84A68DECDA - 66B36170D07E822C735880ACD772790ACE78F1987B06101E7314712999484E78 - 1AEDBFDF81B5FF6F347E570143FB6E8486CC7068E6472B90942677D3A82F2831 - 30D03F6724CC28402F9966F9BD7817BB76DB0E45CD74ACCDC9C73A799AA3BCBD - 3D26549FFE0C3B570F227A819057D3DDA94D1FE965C158927A58E13CB1E4FD75 - DBF6E3F9F478D4375D45374D43555F813F3A5ADE21FE0F02D14C04A02E2AE699 - 8C95F2979191BC0C4D577E85C964C28D6B1AA8EACED613FFAA40341301E84AC9 - 5C2F4A4DCF426CF42247708BC532525A54961DA1897F6E209A710384843ED6DB - 63EEE6EC9B903973C95577CDE6D5848A888F9E3D6E80355BDE62C4918F3BDEF3 - 37EF1A4857DBA1EDBC8FACB458BCB8351F95A5C582114D6A6A0A29FF53582479 - F8B7BFE4AB5AECD898C96A2602A0265322A79381AAB2AC383910CD447A6052EC - 5FD1B9693F1BE958C60000000049454E44AE426082} end object RemoteDirectoryEdit: THistoryComboBox Left = 49 diff --git a/source/forms/FileFind.h b/source/forms/FileFind.h index ef23d829..630865f8 100644 --- a/source/forms/FileFind.h +++ b/source/forms/FileFind.h @@ -9,11 +9,14 @@ #include #include +#include #include #include #include "IEListView.hpp" #include "NortonLikeListView.hpp" #include +#include +#include "PngImageList.hpp" //--------------------------------------------------------------------------- class TFileFindDialog : public TForm { @@ -32,7 +35,7 @@ class TFileFindDialog : public TForm TButton *MinimizeButton; TStaticText *MaskHintText; TButton *MaskButton; - TImage *Image; + TPaintBox *AnimationPaintBox; TButton *CopyButton; void __fastcall ControlChange(TObject *Sender); void __fastcall StartStopButtonClick(TObject *Sender); @@ -66,6 +69,8 @@ class TFileFindDialog : public TForm void __fastcall UpdateControls(); bool __fastcall IsFinding(); + virtual void __fastcall Dispatch(void * Message); + private: enum { ffInit, ffFinding, ffAborting, ffAborted, ffDone } FState; bool FMinimizedByMe; @@ -73,6 +78,7 @@ class TFileFindDialog : public TForm UnicodeString FDirectory; TFindEvent FOnFind; TImageList * FSystemImageList; + TFrameAnimation FFrameAnimation; void __fastcall FileFound(TTerminal * Terminal, const UnicodeString FileName, const TRemoteFile * File, bool & Cancel); diff --git a/source/forms/FileSystemInfo.cpp b/source/forms/FileSystemInfo.cpp index 531f10d4..811c81dd 100644 --- a/source/forms/FileSystemInfo.cpp +++ b/source/forms/FileSystemInfo.cpp @@ -174,7 +174,7 @@ void __fastcall TFileSystemInfoDialog::ControlsAddItem(TControl * Control, else { TListView * ListView = dynamic_cast(Control); - assert(ListView != NULL); + DebugAssert(ListView != NULL); if (!Value.IsEmpty()) { @@ -240,7 +240,7 @@ void __fastcall TFileSystemInfoDialog::ClipboardAddItem(TControl * Control, if (dynamic_cast(Control) == NULL) { TGroupBox * Group = dynamic_cast(Control->Parent); - assert(Group != NULL); + DebugAssert(Group != NULL); if ((Value.Length() >= 2) && (Value.SubString(Value.Length() - 1, 2) == L"\r\n")) { Value.SetLength(Value.Length() - 2); @@ -249,7 +249,7 @@ void __fastcall TFileSystemInfoDialog::ClipboardAddItem(TControl * Control, } else { - assert(dynamic_cast(Control) != NULL); + DebugAssert(dynamic_cast(Control) != NULL); FClipboard += FORMAT(L"%s = %s\r\n", (LoadStr(Label), Value)); } } @@ -272,7 +272,7 @@ void __fastcall TFileSystemInfoDialog::CopyClick(TObject * Sender) TInstantOperationVisualizer Visualizer; TListView * ListView = dynamic_cast(GetPopupComponent(Sender)); - assert(ListView != NULL); + DebugAssert(ListView != NULL); UnicodeString Text; for (int Index = 0; Index < ListView->Items->Count; Index++) @@ -302,8 +302,8 @@ void __fastcall TFileSystemInfoDialog::SpaceAvailableButtonClick( //--------------------------------------------------------------------------- void __fastcall TFileSystemInfoDialog::CheckSpaceAvailable() { - assert(FOnGetSpaceAvailable != NULL); - assert(!SpaceAvailablePathEdit->Text.IsEmpty()); + DebugAssert(FOnGetSpaceAvailable != NULL); + DebugAssert(!SpaceAvailablePathEdit->Text.IsEmpty()); FSpaceAvailableLoaded = true; diff --git a/source/forms/FullSynchronize.cpp b/source/forms/FullSynchronize.cpp index feb80d13..25ddc045 100644 --- a/source/forms/FullSynchronize.cpp +++ b/source/forms/FullSynchronize.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include //--------------------------------------------------------------------------- #pragma package(smart_init) @@ -69,6 +70,7 @@ __fastcall TFullSynchronizeDialog::TFullSynchronizeDialog(TComponent* Owner) FSynchronizeBySizeCaption = SynchronizeBySizeCheck->Caption; HotTrackLabel(CopyParamLabel); CopyParamListButton(TransferSettingsButton); + LoadDialogImage(Image, L"Synchronize directories"); } //--------------------------------------------------------------------------- __fastcall TFullSynchronizeDialog::~TFullSynchronizeDialog() @@ -139,7 +141,7 @@ int __fastcall TFullSynchronizeDialog::ActualCopyParamAttrs() break; default: - FAIL; + DebugFail(); //fallthru case smBoth: Result = CopyParamAttrs.General; @@ -212,7 +214,7 @@ void __fastcall TFullSynchronizeDialog::SetMode(TSynchronizeMode value) break; default: - FAIL; + DebugFail(); } } //--------------------------------------------------------------------------- @@ -228,7 +230,7 @@ TSynchronizeMode __fastcall TFullSynchronizeDialog::GetMode() } else { - assert(SynchronizeBothButton->Checked); + DebugAssert(SynchronizeBothButton->Checked); return smBoth; } } @@ -332,7 +334,7 @@ void __fastcall TFullSynchronizeDialog::TransferSettingsButtonClick( //--------------------------------------------------------------------------- void __fastcall TFullSynchronizeDialog::CopyParamClick(TObject * Sender) { - assert(FLAGCLEAR(FOptions, fsoDoNotUsePresets)); + DebugAssert(FLAGCLEAR(FOptions, fsoDoNotUsePresets)); // PreserveTime is forced for some settings, but avoid hard-setting it until // user really confirms it on custom dialog TCopyParamType ACopyParams = CopyParams; diff --git a/source/forms/FullSynchronize.dfm b/source/forms/FullSynchronize.dfm index 6cb29c86..c4ece89c 100644 --- a/source/forms/FullSynchronize.dfm +++ b/source/forms/FullSynchronize.dfm @@ -52,45 +52,6 @@ object FullSynchronizeDialog: TFullSynchronizeDialog Width = 32 Height = 32 AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC300000EC301C76FA864 - 000004644944415478DAC5967B6C53551CC7BFB75D6F5BBA479D6C80B2510662 - C2D0B8D52862A26C3190986D3E1018C448DC80A8114532C42DD3346609319068 - E23F12F610354498A05234A2C669A6A38A5BC15912B375CF6ED9CAD695B66B7B - 6F7BEFF1AC2D48D7DB76D32E9EA4B9F79EF3EDEFFBE9F73C6E19FCCF8DB971D3 - 66D0A9DC69421BED5A2F2D25A68CA0BCA4C430E05F1080730D79470A4BB6D514 - AC3F2429EC33BD034BDBE9A315F5C307530EF0C5DBCB1F5469541D25CF3E2A63 - D5ACA490F7F168FBE427D13FEDDFF0E45BB65F530A70AE21BF5BBFF99E7577AC - CA4D281EB5DAD179A1FB5F5A11134DEFA17800A4FC797DAA7E946433B674A2A2 - 7E8899DD7F13E0B1B2E50B0AF0FD795B628005758FB48400E5B5BF2FA8B9F1F0 - FD49005EFF0A701F8D1E25B38391088A488517DB673CD69E04E0E06714E0FD39 - 170C7725D1927F6E8CC73B9200D47C0CB88ECDB9E07C75C64653128003D4DC7D - 629EC644E2511ACED8742909C0FE7701CF2909E3F9FF5A29ADB139C93950FE6A - 0305F872CE05A38749529DF14373128097EB80E90B732E28A5EBBAE6C6D9BE71 - 5CB2BBE0F007206318ACD12EC2A6BC6C682EDAF15A9A679D1CCC0F8410E740AD - E3EE688097F603DE1F257C936F456F208843262BBE197342BB340399D999502B - 5550C859701E1E93E353F08F4FC20D622F2E2ACEEDECEA040560A2015ED80DF8 - 7E8B631A2715AAF306053CFDED558CB004594B32403840C92A91A5CDA2106AB0 - 7225FDB09876F9C0FB7914E417E0F4E7AD12007B7750803F12CF7BD463B86FDF - 2F567C37E5093DE6100685B72D82930FA26BD28B652B9661F55DABA04C538520 - 14B230CCC933272500AACAE94BBF37BEB1C4E2EC71F9B1E96B0BD834191AF479 - D8A2BB1DB28866CC17C0BE8E018CA9B350745F5104800D25F251EB8958808D8F - 3F00D1674BB008635309D02938629D803E538DCD39E951A3562F8FEAEE51E8D6 - AEC5CA150537A76206A2F9549344022F1E0025908C395E2A240EA78BE7507AB6 - 19F96B564397BF326C1C01903372347E7A3C16E091D23C10914FBCE824876275 - D783222ACD2318E382714BC40094EDD99B30EE581F828296F7E27EE3CEF44C18 - 2B76404BB7E34C3BDFD894F02072D14B06E6D95E917BB0BB720F042280177804 - 042E741DB40DA2E77237DE0CA8A08EFCF126209E27EA87633C98F99ADEDA7487 - B349F5F66AF074EA668C790AD03FD8872B57FE9C10206E1C7AC36199A5DF4E4F - C187D3F9A91A8B017C4A009EDBBA2B641C8840982F9B313C3CF2B3203095B6FA - C99190D000998ECDDEC5C8990F88485891A070A8CE713525003BB7EC0CC72F86 - E3E7821C7A7B7A611B180D8A44686708E3A0CB47AFD4287414009C8B3FD35FEB - 78266553B0EDA9ADE81FEA8742A580869E0737A6C2CFFBE09CBA0E8E6E494649 - 77C6B81B1EBBAF5BC3C937580CD73C2903D017EBD165364FD06526E62C599CBB - 786936588D82261280CFEF83CBE18273CC8D2027B452F3AA5BCD5301F017C330 - 5A01A434C32F1F9C66C52A0A5246ABDE4B97BD825EEDF4F5D00E112D83758E8B - 5235FE13402ADADF2739523FC86AC9150000000049454E44AE426082} end object RemoteDirectoryEdit: THistoryComboBox Left = 49 diff --git a/source/forms/GenerateUrl.cpp b/source/forms/GenerateUrl.cpp index af60a0af..34a28b39 100644 --- a/source/forms/GenerateUrl.cpp +++ b/source/forms/GenerateUrl.cpp @@ -9,6 +9,7 @@ #include #include #include +#include //--------------------------------------------------------------------------- #pragma package(smart_init) #ifndef NO_RESOURCES @@ -29,7 +30,12 @@ __fastcall TGenerateUrlDialog::TGenerateUrlDialog( FData = Data; FPaths = Paths; FChanging = false; - ReadOnlyControl(UrlMemo); + ReadOnlyControl(ResultMemo); +} +//--------------------------------------------------------------------------- +bool __fastcall TGenerateUrlDialog::IsFileUrl() +{ + return (FPaths != NULL); } //--------------------------------------------------------------------------- UnicodeString __fastcall TGenerateUrlDialog::GenerateUrl(UnicodeString Path) @@ -42,7 +48,7 @@ UnicodeString __fastcall TGenerateUrlDialog::GenerateUrl(UnicodeString Path) FLAGMASK(HostKeyCheck->Enabled && HostKeyCheck->Checked, sufHostKey)); if ((RemoteDirectoryCheck->Enabled && RemoteDirectoryCheck->Checked) || - (FPaths != NULL)) + IsFileUrl()) { if (StartsStr(L"/", Path)); { @@ -64,33 +70,134 @@ void __fastcall TGenerateUrlDialog::UpdateControls() { if (!FChanging) { + Caption = LoadStr(IsFileUrl() ? GENERATE_URL_FILE_TITLE : GENERATE_URL_SESSION_TITLE); + + EnableControl(ScriptSheet, !IsFileUrl()); + EnableControl(AssemblySheet, !IsFileUrl()); + + UnicodeString ResultGroupCaption; + if (OptionsPageControl->ActivePage == UrlSheet) + { + ResultGroupCaption = LoadStr(GENERATE_URL_URL); + } + else if (OptionsPageControl->ActivePage == ScriptSheet) + { + ResultGroupCaption = ScriptFormatCombo->Items->Strings[ScriptFormatCombo->ItemIndex]; + } + else if (DebugAlwaysTrue(OptionsPageControl->ActivePage == AssemblySheet)) + { + ResultGroupCaption = LoadStr(GENERATE_URL_CODE); + } + ResultGroup->Caption = ResultGroupCaption; + EnableControl(UserNameCheck, !FData->UserNameExpanded.IsEmpty()); bool UserNameIncluded = UserNameCheck->Enabled && UserNameCheck->Checked; EnableControl(PasswordCheck, UserNameIncluded && FData->HasPassword()); EnableControl(HostKeyCheck, UserNameIncluded && !FData->HostKey.IsEmpty()); - EnableControl(RemoteDirectoryCheck, !FData->RemoteDirectory.IsEmpty() && (FPaths == NULL)); - EnableControl(SaveExtensionCheck, (FPaths == NULL)); + EnableControl(RemoteDirectoryCheck, !FData->RemoteDirectory.IsEmpty() && !IsFileUrl()); + EnableControl(SaveExtensionCheck, !IsFileUrl()); - UnicodeString Urls; + UnicodeString Result; - if (FPaths == NULL) + bool WordWrap = false; + bool FixedWidth = false; + if (OptionsPageControl->ActivePage == UrlSheet) { - UnicodeString Path = FData->RemoteDirectory; - if (!Path.IsEmpty() && !EndsStr(L"/", Path)) + if (!IsFileUrl()) { - Path += L"/"; + UnicodeString Path = FData->RemoteDirectory; + if (!Path.IsEmpty() && !EndsStr(L"/", Path)) + { + Path += L"/"; + } + Result = GenerateUrl(Path); } - Urls = GenerateUrl(Path); + else + { + for (int Index = 0; Index < FPaths->Count; Index++) + { + Result += GenerateUrl(FPaths->Strings[Index]) + L"\n"; + } + } + WordWrap = true; } - else + else if (OptionsPageControl->ActivePage == ScriptSheet) { - for (int Index = 0; Index < FPaths->Count; Index++) + UnicodeString ExeName = Application->ExeName; + UnicodeString BaseExeName = ExtractFileBaseName(ExeName); + UnicodeString OpenCommand = FData->GenerateOpenCommandArgs(); + UnicodeString CommandPlaceholder1 = FMTLOAD(GENERATE_URL_COMMAND, (1)); + UnicodeString CommandPlaceholder2 = FMTLOAD(GENERATE_URL_COMMAND, (2)); + + if (ScriptFormatCombo->ItemIndex == sfScriptFile) + { + Result = + FORMAT( + L"open %s\n" + "\n" + "; %s\n" + "; %s\n" + "\n" + "exit\n", + (OpenCommand, CommandPlaceholder1, CommandPlaceholder2)); + WordWrap = false; + FixedWidth = true; + } + else if (ScriptFormatCombo->ItemIndex == sfBatchFile) { - Urls += GenerateUrl(FPaths->Strings[Index]) + L"\n"; + UnicodeString ComExeName = ChangeFileExt(ExeName, L".com"); + + Result = + FORMAT( + L"@echo off\n" + "\n" + "\"%s\" /log=%s.log /ini=nul /command ^\n" + " \"open %s\" ^\n" + " \"%s\" ^\n" + " \"%s\" ^\n" + " \"exit\"\n" + "\n" + "set WINSCP_RESULT=%%ERRORLEVEL%%\n" + "if %%WINSCP_RESULT%% equ 0 (\n" + " echo Success\n" + ") else (\n" + " echo Error\n" + ")\n" + "\n" + "exit /b %%WINSCP_RESULT%%\n", + (ComExeName, BaseExeName, EscapeParam(ReplaceStr(OpenCommand, L"%", L"%%")), CommandPlaceholder1, CommandPlaceholder2)); + WordWrap = false; + FixedWidth = true; + } + else if (ScriptFormatCombo->ItemIndex == sfCommandLine) + { + Result = + FORMAT( + L"\"%s\" /console /log=%s.log /ini=nul /command \"open %s\" \"%s\" \"%s\" \"exit\"", + (ExeName, BaseExeName, EscapeParam(OpenCommand), CommandPlaceholder1, CommandPlaceholder2)); + WordWrap = true; + FixedWidth = false; } } + else if (DebugAlwaysTrue(OptionsPageControl->ActivePage == AssemblySheet)) + { + Result = FData->GenerateAssemblyCode(static_cast(AssemblyLanguageCombo->ItemIndex)); + WordWrap = false; + FixedWidth = true; + } + + ResultMemo->WordWrap = WordWrap; + ResultMemo->ScrollBars = WordWrap ? ssVertical : ssBoth; + ResultMemo->Lines->Text = Result; - UrlMemo->Lines->Text = Urls; + if (FixedWidth) + { + ResultMemo->Font->Name = CustomWinConfiguration->DefaultFixedWidthFontName; + } + else + { + ResultMemo->ParentFont = true; + } } } //--------------------------------------------------------------------------- @@ -101,37 +208,100 @@ void __fastcall TGenerateUrlDialog::Execute() { Components = UserNameCheck->Tag | RemoteDirectoryCheck->Tag; } + TGenerateUrlCodeTarget Target = WinConfiguration->GenerateUrlCodeTarget; { TAutoFlag ChangingFlag(FChanging); - for (int Index = 0; Index < OptionsGroup->ControlCount; Index++) + if (IsFileUrl()) + { + OptionsPageControl->ActivePage = UrlSheet; + } + else + { + switch (Target) + { + case guctUrl: + OptionsPageControl->ActivePage = UrlSheet; + break; + + case guctScript: + OptionsPageControl->ActivePage = ScriptSheet; + break; + + case guctAssembly: + OptionsPageControl->ActivePage = AssemblySheet; + break; + + default: + DebugFail(); + } + } + + for (int Index = 0; Index < UrlSheet->ControlCount; Index++) { - TCheckBox * CheckBox = dynamic_cast(OptionsGroup->Controls[Index]); + TCheckBox * CheckBox = dynamic_cast(UrlSheet->Controls[Index]); - if (ALWAYS_TRUE((CheckBox != NULL) && (CheckBox->Tag != 0))) + if (DebugAlwaysTrue((CheckBox != NULL) && (CheckBox->Tag != 0))) { CheckBox->Checked = FLAGSET(Components, CheckBox->Tag); } } + + ScriptFormatCombo->ItemIndex = WinConfiguration->GenerateUrlScriptFormat; + + AssemblyLanguageCombo->ItemIndex = WinConfiguration->GenerateUrlAssemblyLanguage; } UpdateControls(); ShowModal(); - Components = 0; - for (int Index = 0; Index < OptionsGroup->ControlCount; Index++) + // Do not save the selection for files as the "URL" was selected implicitly + if (!IsFileUrl()) { - TCheckBox * CheckBox = dynamic_cast(OptionsGroup->Controls[Index]); + if (OptionsPageControl->ActivePage == UrlSheet) + { + Target = guctUrl; + } + else if (OptionsPageControl->ActivePage == ScriptSheet) + { + Target = guctScript; + } + else if (OptionsPageControl->ActivePage == AssemblySheet) + { + Target = guctAssembly; + } + else + { + DebugFail(); + } + WinConfiguration->GenerateUrlCodeTarget = Target; + } - if (ALWAYS_TRUE((CheckBox != NULL) && (CheckBox->Tag != 0)) && - CheckBox->Checked) + if (Target == guctUrl) + { + Components = 0; + for (int Index = 0; Index < UrlSheet->ControlCount; Index++) { - Components |= CheckBox->Tag; + TCheckBox * CheckBox = dynamic_cast(UrlSheet->Controls[Index]); + + if (DebugAlwaysTrue((CheckBox != NULL) && (CheckBox->Tag != 0)) && + CheckBox->Checked) + { + Components |= CheckBox->Tag; + } } + WinConfiguration->GenerateUrlComponents = Components; + } + else if (Target == guctScript) + { + WinConfiguration->GenerateUrlScriptFormat = static_cast(ScriptFormatCombo->ItemIndex); + } + else if (Target == guctAssembly) + { + WinConfiguration->GenerateUrlAssemblyLanguage = static_cast(AssemblyLanguageCombo->ItemIndex); } - WinConfiguration->GenerateUrlComponents = Components; } //--------------------------------------------------------------------------- void __fastcall TGenerateUrlDialog::ControlChange(TObject * /*Sender*/) @@ -142,7 +312,7 @@ void __fastcall TGenerateUrlDialog::ControlChange(TObject * /*Sender*/) void __fastcall TGenerateUrlDialog::ClipboardButtonClick(TObject * /*Sender*/) { TInstantOperationVisualizer Visualizer; - CopyToClipboard(UrlMemo->Lines); + CopyToClipboard(ResultMemo->Lines); } //--------------------------------------------------------------------------- void __fastcall TGenerateUrlDialog::HelpButtonClick(TObject * /*Sender*/) @@ -150,3 +320,34 @@ void __fastcall TGenerateUrlDialog::HelpButtonClick(TObject * /*Sender*/) FormHelp(this); } //--------------------------------------------------------------------------- +void __fastcall TGenerateUrlDialog::WMNCCreate(TWMNCCreate & Message) +{ + // bypass TForm::WMNCCreate to prevent disabling "resize" + // (which is done for bsDialog, see comments in CreateParams) + DefaultHandler(&Message); +} +//--------------------------------------------------------------------------- +void __fastcall TGenerateUrlDialog::Dispatch(void * AMessage) +{ + TMessage & Message = *reinterpret_cast(AMessage); + if (Message.Msg == WM_NCCREATE) + { + WMNCCreate(*reinterpret_cast(AMessage)); + } + else + { + TForm::Dispatch(AMessage); + } +} +//--------------------------------------------------------------------------- +void __fastcall TGenerateUrlDialog::CreateParams(TCreateParams & Params) +{ + TForm::CreateParams(Params); + + // Allow resizing of the window, even if this is bsDialog. + // This makes it more close to bsSizeable, but bsSizeable cannot for some + // reason receive focus, if window is shown atop non-main window + // (like editor) + Params.Style = Params.Style | WS_THICKFRAME; +} +//--------------------------------------------------------------------------- diff --git a/source/forms/GenerateUrl.dfm b/source/forms/GenerateUrl.dfm index 8bd99e32..dc170a29 100644 --- a/source/forms/GenerateUrl.dfm +++ b/source/forms/GenerateUrl.dfm @@ -5,119 +5,174 @@ object GenerateUrlDialog: TGenerateUrlDialog HelpKeyword = 'ui_generateurl' BorderIcons = [biSystemMenu, biMinimize, biMaximize, biHelp] BorderStyle = bsDialog - Caption = 'Generate URL' - ClientHeight = 251 + Caption = 'Generate URL X' + ClientHeight = 338 ClientWidth = 484 Color = clBtnFace + Constraints.MinHeight = 300 + Constraints.MinWidth = 484 ParentFont = True OldCreateOrder = True Position = poOwnerFormCenter DesignSize = ( 484 - 251) + 338) PixelsPerInch = 96 TextHeight = 13 - object OptionsGroup: TGroupBox - Left = 8 - Top = 6 - Width = 468 - Height = 95 + object OptionsPageControl: TPageControl + Left = 5 + Top = 5 + Width = 475 + Height = 111 + ActivePage = UrlSheet Anchors = [akLeft, akTop, akRight] - Caption = 'URL options' TabOrder = 0 - object UserNameCheck: TCheckBox - Tag = 1 - Left = 11 - Top = 20 - Width = 216 - Height = 17 - Caption = '&User name' - TabOrder = 0 - OnClick = ControlChange - end - object PasswordCheck: TCheckBox - Tag = 2 - Left = 235 - Top = 20 - Width = 216 - Height = 17 - HelpType = htKeyword - HelpKeyword = 'ui_generate_url' - Caption = '&Password' - TabOrder = 1 - OnClick = ControlChange - end - object HostKeyCheck: TCheckBox - Tag = 4 - Left = 11 - Top = 43 - Width = 216 - Height = 17 - Caption = 'SSH &host Key' - TabOrder = 2 - OnClick = ControlChange - end - object RemoteDirectoryCheck: TCheckBox - Tag = 8 - Left = 235 - Top = 43 - Width = 216 - Height = 17 - Caption = 'Initial &directory' - TabOrder = 3 - OnClick = ControlChange + OnChange = ControlChange + object UrlSheet: TTabSheet + Caption = 'URL' + object UserNameCheck: TCheckBox + Tag = 1 + Left = 11 + Top = 8 + Width = 216 + Height = 17 + Caption = '&User name' + TabOrder = 0 + OnClick = ControlChange + end + object HostKeyCheck: TCheckBox + Tag = 4 + Left = 11 + Top = 31 + Width = 216 + Height = 17 + Caption = 'SSH &host Key' + TabOrder = 1 + OnClick = ControlChange + end + object WinSCPSpecificCheck: TCheckBox + Tag = 16 + Left = 11 + Top = 54 + Width = 216 + Height = 17 + Caption = '&WinSCP-specific' + TabOrder = 2 + OnClick = ControlChange + end + object SaveExtensionCheck: TCheckBox + Tag = 32 + Left = 235 + Top = 54 + Width = 216 + Height = 17 + Caption = '&Save extension' + TabOrder = 3 + OnClick = ControlChange + end + object RemoteDirectoryCheck: TCheckBox + Tag = 8 + Left = 235 + Top = 31 + Width = 216 + Height = 17 + Caption = 'Initial &directory' + TabOrder = 4 + OnClick = ControlChange + end + object PasswordCheck: TCheckBox + Tag = 2 + Left = 235 + Top = 8 + Width = 216 + Height = 17 + HelpType = htKeyword + Caption = '&Password' + TabOrder = 5 + OnClick = ControlChange + end end - object WinSCPSpecificCheck: TCheckBox - Tag = 16 - Left = 11 - Top = 66 - Width = 216 - Height = 17 - Caption = '&WinSCP-specific' - TabOrder = 4 - OnClick = ControlChange + object ScriptSheet: TTabSheet + Caption = 'Script' + ImageIndex = 1 + object Label2: TLabel + Left = 11 + Top = 8 + Width = 38 + Height = 13 + Caption = '&Format:' + FocusControl = ScriptFormatCombo + end + object ScriptFormatCombo: TComboBox + Left = 112 + Top = 5 + Width = 103 + Height = 21 + Style = csDropDownList + TabOrder = 0 + OnChange = ControlChange + Items.Strings = ( + 'Script file' + 'Batch file' + 'Command-line') + end end - object SaveExtensionCheck: TCheckBox - Tag = 32 - Left = 235 - Top = 66 - Width = 216 - Height = 17 - Caption = '&Save extension' - TabOrder = 5 - OnClick = ControlChange + object AssemblySheet: TTabSheet + Caption = '.NET assembly code' + ImageIndex = 2 + object Label1: TLabel + Left = 11 + Top = 8 + Width = 51 + Height = 13 + Caption = '&Language:' + FocusControl = AssemblyLanguageCombo + end + object AssemblyLanguageCombo: TComboBox + Left = 112 + Top = 5 + Width = 103 + Height = 21 + Style = csDropDownList + TabOrder = 0 + OnChange = ControlChange + Items.Strings = ( + 'C#' + 'VB.NET' + 'PowerShell') + end end end - object UrlGroup: TGroupBox + object ResultGroup: TGroupBox Left = 8 - Top = 107 + Top = 122 Width = 468 - Height = 105 + Height = 176 Anchors = [akLeft, akTop, akRight, akBottom] - Caption = 'URL' + Caption = 'ResultX' TabOrder = 1 DesignSize = ( 468 - 105) - object UrlMemo: TMemo + 176) + object ResultMemo: TMemo Left = 7 Top = 15 Width = 454 - Height = 81 + Height = 152 TabStop = False Anchors = [akLeft, akTop, akRight, akBottom] BevelInner = bvNone BevelOuter = bvNone BorderStyle = bsNone Lines.Strings = ( - 'UrlMemo') + 'ResultMemo') ScrollBars = ssVertical TabOrder = 0 end end object CancelBtn: TButton Left = 318 - Top = 218 + Top = 305 Width = 75 Height = 25 Anchors = [akRight, akBottom] @@ -128,7 +183,7 @@ object GenerateUrlDialog: TGenerateUrlDialog end object HelpButton: TButton Left = 401 - Top = 218 + Top = 305 Width = 75 Height = 25 Anchors = [akRight, akBottom] @@ -138,7 +193,7 @@ object GenerateUrlDialog: TGenerateUrlDialog end object ClipboardButton: TButton Left = 8 - Top = 218 + Top = 305 Width = 145 Height = 25 Anchors = [akLeft, akBottom] diff --git a/source/forms/GenerateUrl.h b/source/forms/GenerateUrl.h index 3d880e4e..7eb6d430 100644 --- a/source/forms/GenerateUrl.h +++ b/source/forms/GenerateUrl.h @@ -8,25 +8,34 @@ #include #include "SessionData.h" +#include //--------------------------------------------------------------------------- class TGenerateUrlDialog : public TForm { __published: - TGroupBox *OptionsGroup; - TGroupBox *UrlGroup; - TMemo *UrlMemo; + TGroupBox *ResultGroup; + TMemo *ResultMemo; TButton *CancelBtn; TButton *HelpButton; TButton *ClipboardButton; + TPageControl *OptionsPageControl; + TTabSheet *UrlSheet; + TTabSheet *ScriptSheet; + TTabSheet *AssemblySheet; TCheckBox *UserNameCheck; - TCheckBox *PasswordCheck; TCheckBox *HostKeyCheck; - TCheckBox *RemoteDirectoryCheck; TCheckBox *WinSCPSpecificCheck; TCheckBox *SaveExtensionCheck; + TCheckBox *RemoteDirectoryCheck; + TCheckBox *PasswordCheck; + TLabel *Label2; + TComboBox *ScriptFormatCombo; + TLabel *Label1; + TComboBox *AssemblyLanguageCombo; void __fastcall ControlChange(TObject *Sender); void __fastcall ClipboardButtonClick(TObject *Sender); void __fastcall HelpButtonClick(TObject *Sender); + void __fastcall WMNCCreate(TWMNCCreate & Message); private: TSessionData * FData; @@ -36,6 +45,9 @@ class TGenerateUrlDialog : public TForm protected: void __fastcall UpdateControls(); UnicodeString __fastcall GenerateUrl(UnicodeString Path); + bool __fastcall IsFileUrl(); + virtual void __fastcall CreateParams(TCreateParams & Params); + virtual void __fastcall Dispatch(void * AMessage); public: __fastcall TGenerateUrlDialog(TComponent * Owner, TSessionData * Data, TStrings * Paths); diff --git a/source/forms/Glyphs.cpp b/source/forms/Glyphs.cpp index 76c60011..48b99f9c 100644 --- a/source/forms/Glyphs.cpp +++ b/source/forms/Glyphs.cpp @@ -2,7 +2,12 @@ #include #pragma hdrstop +#include "Global.h" #include "Glyphs.h" +#include "Glyphs120.h" +#include "Glyphs144.h" +#include "Glyphs192.h" +#include "GUITools.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "PngImageList" @@ -15,5 +20,39 @@ TGlyphsModule * GlyphsModule; __fastcall TGlyphsModule::TGlyphsModule(TComponent* Owner) : TDataModule(Owner) { + int PixelsPerInch = Screen->PixelsPerInch; + TDataModule * ScaledModule; + if (PixelsPerInch >= 192) + { + ScaledModule = new TGlyphs192Module(Application); + } + else if (PixelsPerInch >= 144) + { + ScaledModule = new TGlyphs144Module(Application); + } + else if (PixelsPerInch >= 120) + { + ScaledModule = new TGlyphs120Module(Application); + } + else + { + // Do not have a separate 96 DPI module, as this module needs to + // have the images loaded as they are used on design time. + // Performace impact of loading 96 DPI images when they are not needed is not that big. + ScaledModule = NULL; + } + + if (ScaledModule != NULL) + { + CopyDataModule(this, ScaledModule); + + // Not all these are accessed by field name, but we copy all for consistency + ExplorerImages = DebugNotNull(dynamic_cast(FindComponent(ExplorerImages->Name))); + SessionImages = DebugNotNull(dynamic_cast(FindComponent(SessionImages->Name))); + QueueImages = DebugNotNull(dynamic_cast(FindComponent(QueueImages->Name))); + LogImages = DebugNotNull(dynamic_cast(FindComponent(LogImages->Name))); + ButtonImages = DebugNotNull(dynamic_cast(FindComponent(ButtonImages->Name))); + DialogImages = DebugNotNull(dynamic_cast(FindComponent(DialogImages->Name))); + } } //--------------------------------------------------------------------------- diff --git a/source/forms/Glyphs.dfm b/source/forms/Glyphs.dfm index 1391f565..3142621f 100644 --- a/source/forms/Glyphs.dfm +++ b/source/forms/Glyphs.dfm @@ -1,7 +1,7 @@ object GlyphsModule: TGlyphsModule OldCreateOrder = False - Height = 297 - Width = 224 + Height = 437 + Width = 215 object ExplorerImages: TPngImageList PngImages = < item @@ -7986,7 +7986,7 @@ object GlyphsModule: TGlyphsModule end item Background = clWindow - Name = 'Clone remote file to remote directory-name' + Name = 'Duplicate' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC300000EC301C76FA8640000021A4944415478DA @@ -9736,7 +9736,7 @@ object GlyphsModule: TGlyphsModule end item Background = clWindow - Name = 'Find files' + Name = 'Find' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -9822,26 +9822,27 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB000002444944415478DA63DCDC2025 - F29F85652B03038319031CFC3FC1F2E75FA857C3D3270C0400E3A656B9539AFA - C2A62A9A0270C1EB17DE32DCB9FE019BFA237E358F6C510D6891FBEFE22146C8 - 2230D8B3E31503D000460C0388D20D05580DF0AD3C835571445436C3F9F35718 - 0CF4B51856AE98CEE06E67C3F0E0353348EAC4AD5BD72D1106A4873230FC7908 - 0A3C681842087587EB0C152D13193A6AF2196EEED7605077BC01E7030D604418 - 90E20E34E025DCE66FDFFE32F8A63C6678F2E2375C8C9B8B89E1EBB77FC80EBC - CBCACA64003120DE8281E1DF67581432EC3CF48DA17E263B43467E19C3856BF7 - 18B62F9D00D7E5195DC060A0A5C430636217C387D7CF42C106D839C900F5FD85 - 2BAA9DF99DE1FE0F7386E0D030B001EA4AD20C7CDCEC0C274F9F6760E2E0071B - B076F52A865B178EAC001BE0939A8612784D7DA71996ADBF453046FEFF6798CE - B8B145F6332303230FB2C4F9FB2C0C5BAE2B3008894933FCFDF68EC15CF23A83 - B9EA1F866337597F9E79A9C1CECC25C4F0EED5539017A219B199ACAEAEB55444 - 5A394AC7CC91410C68F4AAC57396DDBC792D1A241E169B12F5EA0B03C39553FB - 19DE3CBDBB0CAB016A6A9ACF45E434244C6D3D18CC7414181A2B0B5E00A34D12 - 245ED7D62F71FAEA4386D3877730BC7974E3055603F40C4CBFFEF8F6850BC6E7 - E0E2F976E9C2696E5D03D36F3FBF7DE18489B373F17CC76A405042F1FF82CC04 - 065B331D86C689CB182E5D38C7B06E412F2348DCCBC38D2139DC8DE1F9AB770C - 39E56D0CD80D482C3E074C0E868804CF707EDDFC5E236CE2009F20EF75E7BE57 - 3F0000000049454E44AE426082} + D0A7FB93199393FF040398F3FC63332DDB0000026A4944415478DAA5936D4893 + 511886EF779B33CA394DA8B02F9A4811FDE867643FD490A4A21F7D502A6A89A8 + 2D4B5C9A1F51284809D16AEE4D33044DB494560C3F41F26369D3B66548A4E69A + 6B3A565896D92AA7D3D3EB11572F24223DFFCECDFD5CE77E0EE7610821F89F62 + 14A5EDCB1018FD949B1C283E17E65C1270332914FF0A322F3DEE1A42CFC08725 + 211EC0CC2C9FA07F6142AD468BD7FD6F41E608BC7D03BE4F4FFF4AEEAAAF7AC8 + 03A497B412654A38A666E63C6259453586463F232A260E1BD6FA50CDFE6912AC + 5A056BFFAB02E3B3A62B1EC005B685DC96474071B7950A5F1D5648842EEC098D + 44C8CEF5F05B23A6BA9748046DB7059A0A16F6F7E683265D733305A4AA9A89EA + 7C249C53B3D4A8C8CC45BC3C033B36FBC34BC8F0C6B27D9C409FD90EF65A6E1B + 97623F059C55D693A2B4C35014B75093415B82A4AC4204074A79CD419B02F06E + 640C44EC838CE418A749D728A180E41B5AA24E3F82899F6E6A3C76220AA5E595 + DCED4208B8000CB39062FEBFE87ACDD815BC05F284E83F80C4EB1AC2661CC5C5 + 3B74240C746A7126258D6B14F01284EC9641671CC4463F1172B2B33A38401805 + 2414D412F6D2717CF9B190C06830A2F3790FD2D35221120979900EC31B343DAA + 806578244FFFF4493E059CCE7F40D4592791C9367A8C8E4123B6738F181F178B + 7501BE541B1B9F8452790BFE5209040201A9BE7F6F9FC366D133B1572B099B13 + 8D71A79B77DB4B93090D757518B60ED3B36C9B0CE3D362AC727F2352A91FE318 + B5BAFA7ABBC39998CBE5449D1BCB0166965D9CBCA21AB4571584ACF6F16F0B8B + 38E46DB7595CCCA9ECB215AD634D612213B83568EF22845949F3DFB508F90D26 + 710A6F3E6F60E20000000049454E44AE426082} end item Background = clWindow @@ -10284,16 +10285,16 @@ object GlyphsModule: TGlyphsModule Background = clWindow Name = 'Site color mask' PngImage.Data = { - 89504E470D0A1A0A0000000D4948445200000010000000100802000000909168 - 360000000674524E5300FF00C9000EDD0440D5000000614944415478DA63FC7F - 928F8114C0488E8680FE9067CF5F12542A2529BEA1700D488359996DC3F24B04 - 353444EA9DEA3A3CAA81961A641535086A787CFF065443D084B027CF9E13D480 - 88693409A0857036D0483459140DC84A9101B23692532B00B07D6571207BAEF1 - 0000000049454E44AE426082} + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC300000EC301C76FA864000000604944415478DA + 6364A0103052C500537BEF7B404A9144BDF74F1FDCAA0433E0FFA9835B48D26D + 66EFC300348071D480E16580ACA20649063CBE7F03618089BDD71D4606466592 + 4C404E89D800C855C87C906DD8D43112D2880ED00DA23837020041575111C4B2 + D05E0000000049454E44AE426082} end item Background = clWindow - Name = 'Suspend once operation queue is completed' + Name = 'Hibernate Once Done' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -10399,16 +10400,10 @@ object GlyphsModule: TGlyphsModule 0968EA1B3036E680BC4C8C0AC91AFE163A7A23307D602D415FEC10912ABBB37C DB8557399F4268D281D084639C2BB771CB0D4A7541DFDC4D8FC7F8EB37B3BD39 E30478A30F0000000049454E44AE426082} - end> - Left = 32 - Top = 16 - Bitmap = {} - end - object SessionImages: TPngImageList - PngImages = < + end item Background = clWindow - Name = 'Compressed connection status bar indicator' + Name = 'Cancel All' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -10494,23 +10489,31 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB0000015F4944415478DA6364C001C2 - 53CB730584257A3938B95891C57F7CFFF6FBC3DB17C52B67774EFEFFFF3F03E3 - E6062991FF2CCC9B1918182DA06A4EB1FCF91B5CBFDFE02090AD84CD70460686 - 3BA70E6E55051BB0A955EE948A8680A9A6813058F2CEF50F0CD72FBC45D770CC - B7E691B599A38FFEFF7FFF2F80C44E1FDCCA0831A045EEBF8B8718033EB067C7 - 2B06BF9A478C20767EE3CCFFC7F66D423580810880D700DFCA3378356F6E3721 - 60407A2803C39F874069A863FE3320D82003E69DC16F8083B705C3BF9FCFB1D8 - 0D31E4D09E47045C90590254FB1345138A0B664CC56BC027A0382FBE30F8CFF0 - FF8B7FCD635E633B2F5D1B67FF4B2806E0D2945935E1371B3B270BBA3848334A - 42C26580A99D971D0323E33C2053194DEA36C3FFFF29A70F6D3B84D7000C03ED - BDC18102723ADC6B840C3075F05A01D674605B04B20130F153FBB746E037C0DE - FB2F9062C221FDEFD4812DCC44BB009B38C80500FDD1E9E10D1CFCE200000000 - 49454E44AE426082} + D0A7FB93199393FF040398F3FC63332DDB0000026A4944415478DA8D925D4853 + 6118C7FFEF468A9DA34C636093290D9490A8F43EAF8324CB2CB54D334954488D + 749AE99C612159A07435B7933624FA40C48C88AEFAA08FC1489182F2424D614D + FC1A3BE7ECB4CDB3BD9D8482B5263D77EFFBF0FCF8FF9FFF431A6E4F51FC67D9 + DA8E93BFFF48FDC024B5994B109277E6B40C4E61B8FD443CA0EEE604B5B79F44 + ABFD55C2E1BE9A225C1A7A024747693CE042FF38755C39052118D951C1E5A149 + 709D65F180DA1B8F29D7791A6D8EC40A2CA623681D9AC048D79978C0F9BE0794 + EBAA804F927754601E1CC7A8A5F20FE016C09881003977ED3EE5BACFA2838B55 + A00A07A173F62369C38BE2E72F607DF4014EAB91F42AADBD2C3B48089A284533 + A9B68E51CE62C4BA18ABC0652A43CAE21C349A34CC0B21BC3CDA08FD40637266 + 1A3BA2DD9361CCCBDD87F7AE699E982C4ECAF554E1EAC8EB1880A1BF0E855A06 + 86EC2CCC2D2CE3A35F06B3E67996A9CD3876283F176FDDB308047E341163D728 + 7558ABB1CA6FC50082DF3D709B4AA18F0491A7D7E1F3E23264398203866CBCFB + F4157E51B23488E27552D9795701D4A0C7F9266E71EA000FFD7037F66FF1C8CF + CA445431ED9AFF069F20DDA917C596ED142A3A1CD4DE5B8B157F380E10F27A30 + 5D518C9CB0044386661B30E35DC5AA288D7905A14659689494B7DBFF79C3CCE6 + 0A0A9FDA5090AC827E770A667D7EC8348AC3E91AB83736E10B86B7551024A8E1 + 54D673906174BAE4247C91242C05438A47B294BE4B5D55C030708B01F05BB225 + 31208D7DA855A9CB5395C01722F28CCC8B456B80F4EB0652D5AA66835A8D5959 + E61302147F494AE6F7082539CAB3A45E10D67FF76C2CDB4D54C44C10BDF81362 + AE02E056B3722F0000000049454E44AE426082} end item Background = clWindow - Name = 'Encrypted connection status bar indicator' + Name = 'Download in Background' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -10596,34 +10599,56 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB000002054944415478DA8D923F4C13 - 7114C7BFBF5FA15264D24949AF91C94162D854C2C4E0405B636430AE12D48198 - 6802310709866B848190C8A289233131D185D618DD4C00999A122416A5FFEE40 - 06D081E020B4BFE7BBF35A68EF065E7279BFF7EEF73EEFFB5E7E8288208440D5 - DE1B17224AA811CE47393CC7DF36FF4F4992537DA38552F59E5D679B380E4825 - C2D71589B77C6C83D7F6A5A0FEA86E7DF40524273B342A97D7DCE2377CD9387D - 6865FF34872F32D4E0DC0D1B5209C8CE9B4F8A450F603EA1BD00E19E2D243E6A - C61ADBCF1B5A925D14022FE3BA79DF0B980897F8A071E74E96F9B511C0E35D62 - 25ABACDD8C8F59112FC0D02A1CCB74D90C8C8F43F9ECC0BEE354B14251074825 - 228B1C5EC3C96D21A6977A6A806422427D8F3F701802A5AF36DC954020C42E84 - 8DB50327F37DEB2F1820EA00DDB79F41A953C0C6D051AD68E242CE09FE64109B - B93D276DED1C7A01B18773DCE90C68A5B7AE2B648BEB43F8912E424AC237F3C0 - 47C1AD6128C14FA03056EB3A34B98759BDDD8D83D8CEE520B92CFFB3ECA3E0C1 - 34103C0F5A1FAC75BDF3A884D7CFBB584DAB136F663E3B0AD2EB151F05F101A8 - C0597EF9AFDC9959C1441EB34F2FD776F03BB704C1D3650BE4A3E0EE30D0D201 - B266FECFEC763DBE87DDD53947C152065E404FB41FAAB91DF4EB13171F6DBEAA - C6F6FBF9770E2093958D00ED0B1FAF9CFC1DD1724C379D07F30F777C10F0F521 - 03AA0000000049454E44AE426082} - end> - Left = 32 - Top = 80 - Bitmap = {} - end - object QueueImages: TPngImageList - PngImages = < + D0A7FB93199393FF040398F3FC63332DDB000002504944415478DA95935D4893 + 5118C7FFC7356736FA42C9057DE15D41DD14199115246505D30C5B965A69E54D + 577D58D3598B5558D44524E65E931C46D94A86E04594A54CA4DACCB9691726BA + 1995626DE6B6F7759FA7772F94C83658E7EA1C9EF3FFFDFFCF030F419C5371B7 + 9DC6AE90DE5F6E6EAFFE5AA14778C5039CBD63A00F2FC8E10FCE712237E3801D + FA77D65E97D72F404822AE6B65CB5021DF8A64B108331E0E43F629B4BEB698C1 + 71B92411D71EAB032FBB87A0399D83E5D2644CBABC18E421CF5EF50D91445D3F + F302A3650C599B32F1E9CB84F06764741CE47F5D9FBFB140BA6429B237AE467B + A719E44C6D1B6DB8940F2E109E97E06FAF3D315C6BCFE581F3075153670029BF + F58232970B705EDBF54FAC2EDD01A94414D3F5FE5B0D58C937E84A74B851DF09 + 5276534F992B87E1E642F312F48F4CA2F96333423400F1D47AC1F59E510DFD70 + 0352164B901658858C1F27404E695A29A32CC445A62B6A9006E71148162D40BA + 271B290B53614FEAC0CA0DE9A0240CA76306E2EFEB404E5E7F4A992A05A6D960 + 1460F38315C8DAB50503269B30D84CBE052A0A63D63F8BAFB609C87EE78094AA + 9FD0C6EAA3A86CEC8E02B4390BB067DF6EB03E16817000248982F37118B68C22 + 6D7A3BD6F80E80945C6DA18CAA084E4F74826DF519D87F3017C1905F00444056 + D320380F77DBAE74550ABB50ACD251A6E638944DB113E4CBF30471041201983F + F483757BE700C7AA1F53ADAA183F6324D8A995417148C103F804211EC283BC3E + 2F4CEFFBE075B3E50EA5F311295236C5595BC0965A07B7682C4685FAC361948D + 57B95AFE006CA64F46434C9A0C0000000049454E44AE426082} + end item Background = clWindow - Name = 'Download File' + Name = 'Upload in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC300000EC301C76FA8640000023E4944415478DA + 95535D4853511CFF1DAF6E776CA81904416410D183906092F5506F113D991452 + 7E2495952F3E555A4B2D45128D7A89A0BA4B461FA4CD95AD850D131DEAEA61E5 + 1A6D44AE9A65D0686BE676BD79F771BA9B54D8EE60FD5FCE39FCCEEF0BCE2148 + 330D974C541E21B64048D865385F194E9ED2091CBF3848AF9D2C8718FDAB93D8 + 8DBFF6C230EAB4057931294232715DB77A051ACACBA0C861301F16E0F27E43FF + B0C30E41D84D32719D70CEC06875A1F3E84E146814F00579BC9144FA2C2F5D24 + 5357B74418777CC4D6E2F57835FD3579C7F3E113C8FFBADE7FE680262F1F3B36 + AD8569C40E72ACFB01BDDE540121125F96E077D70919D7EEC63D10C428DAAE0E + 82D4770D50EEF45E9CB831F687DC51B71D6A259374D50DBDC34DCB0CA84CD15C + 360E72E482817267F62124C49681531E1F9EBB67F1F6F302ECEFA328DDB20D2A + 56816C260B4C1649AEC6875282C39DFD94D356E2143706B94974BDDC3785C062 + 5E8AC8239309E450C73DCA9DDD8FB985A8AC40A26B75BB197E311F259BCBC0B2 + 4A49602981D9FC18A4AEFD2ED5B51C40B3CE2A2BA056ADC4C0A40F45C5A55029 + 15A0F11818899C48F274E809C8C1737728D75A85EFE1D4047A8B07FA91596C2C + 2A012B91E312D9EDB427DF7FA28E757418A4B6F516E5DA6AA0ED4D4D6073F310 + B357614DE106E971C430ED9E4201E3C79710DBA3566B9A783E2C92EA16BD94A0 + 167E99043FF8081AAFBCC07C3C177C680E8B02DFE3BD5DD19CC00A6B8CF51444 + 2455DADE34DF76692271024F408DE0CF1CAD44EEFA17FF0546052596D99FD20D + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Speed Limit' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -10709,30 +10734,33 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB000002554944415478DA85935F4853 - 511CC7BF671BCDB6FE10FDB14164F458E053D11FC80AA23285A5569AE29F4A2B - 0A7A5A39362D2CB17F442FA56DC3B2519495327CF0A1B0FFACD2A539B66821BA - D542B39CD9EEEEBDFB7377BAEE2191EBADF374CEEFCBF99CEFF777CE21901947 - AF74D09915E254A4713B1A8FEF63522B39C091CB0E7AC3A0472C31C5A194E295 - 3B80B6676EA742134B416401872FB653CBA93C70F1E4B4FA6F8683D73F8AD627 - FD2E2855D9B280CAF38FA8D5580083F5F9DF5A5DF926CC512BF17D3C02CFD028 - EE3FEEF512B9AC3499C4D51339880BD3CFE81B18C19B8FDF52F381C12F20FFCA - DAEB0B62249C002152A35999CBD1D1E502F95FD6D7FD7E54E4AE83366DD6349D - 8B2670BAD1015275A18D5AAAF365B37AC5AC0F9EBAA19D373FA5F9B87684123E - B494D9D1D0D40572A8E1A1D8AC3D60784192F576B71D491A87EAC72AD41FD3E3 - FADB7368FD648166811A0BF965481FAE003958DF4A6DA6BD38697B21C9E90815 - 42AD5561099305F56C0D028A4EE8562F062502C68361A8BEAE003970F61EB59A - 0B31C10A12C09A6BE958BF652DFA7B3C93ADC5CACC0C50A5003E1A45D0330CDD - C47690F2BABBD466DE0F63B3D4417BA800DB766E051B65114F8AB7A1488ACDE3 - F1F9C32016FDDA888C680E48D9993BD456538C502421016C685A8A5DB9D94808 - 31111017411CDCA21B8EE52FF98D63D5A9BF505A6BA7D6DA12986FBD9CD1419E - 7E776AF32484E559B8BAFBC046B82940494D8B0828C54F46EA60B35587A2FC22 - 11203A1044C8A40B3E829E77EFC184D9CA8029D44C8A4D3765BE2DE09C6B9093 - 62E2EBAC1A328ED9FF000C483861237E2E7B0000000049454E44AE426082} + D0A7FB93199393FF040398F3FC63332DDB000002AC4944415478DAA5536B48D3 + 511C3D7FB799D3E5634DAD689482A29B5F7C3F8A4610031FF44012A252D4E58B + 983321432BCC0F566AA6592A4C4B2C34165144120C154A343185882684418E45 + 827B64B5F7EBF66F4B4D1B1174E0722FF771F89D73CF8FC226A4648913C06495 + 5220625014DFB34988868052C2E9E89F9D52BEFBFD3EB5BA100A85FE81BC3D1D + 4141811547F2B2A9B4D4244446847BCEB45A1DA667E6F0E4D9736232997BCDBA + 45994AA5B2AF11FC7A3C92959E7AB0BAB218C1FA69B0D42F81653588D50D77C0 + 7638A24530C588D0D93B80A9E99971B35E9DFD93C443902ACAEDDE9B99565977 + E62438EF3B40E916414C4EB8CD4E107AB88D0E100B3D8746C151D08896FE0798 + 7C35D3F3FAC54815959C298E0BE186CDF7DD6EA13E8E5DC456A716F17C3EACFC + 7C38B909B47EC04FF3067EA377804F3431370A46491B24D23AF2D5F04540A588 + 72DA4F1D2FA829148781BD3404E9AD25E85DBB505C5282A4C4C475B3AC2630BA + AA40346AB8F365501818B837ACB841A5EECF51755E6F1624863C04C3A48621A8 + 08150D77313B3B87F8F83854569423233DDD4BF27602E8AA07D91983C5D2CBA8 + AEAD9FA72BC8FDAE189473F8680265B3421B7C0566AB0B92B2722C2C7C0083C1 + C0F8A8126C361BB05980E203208C2DB0C99528283C6D5C23D81DD80CB86C58A6 + 9A68D9FED01B0C90D5D4223232026D2DD7BC3AAC16B88FED039801B00F8F7B09 + 5625A4443F05D3EF33565C27607509E00B64620CAE0619A8582134975A572578 + 4D2C3AB40D1CDB63B8088FF6E12C5D056BE36BBB1DF6A379006D22F342231EB1 + 38B83FA4E8F47C63288F3B2FEFBA4AED30F5C2CE8C8529F4B0CF0ADC3DED704F + 4EC2D13380B29AF3644567106C08D2396929C060E36F20C66F68950FAE076973 + 94A55512AFE33E60B15870B3BBEFCF28FB6AA68CB4648487F3FEAD99FEA79D7F + 009E514EF25E2361B00000000049454E44AE426082} end item Background = clWindow - Name = 'Download File Remove Original' + Name = 'Bulb On n p' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -10818,31 +10846,37 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB0000026E4944415478DA85935D4853 - 6118C7FFEFB4ADE60AA22FA58BA42ECA822EB2A010FB262B24352B6D6223B312 - ECD26AF84158D127E24DF4B1B53251225A265E745110953B4A9AE972EB8B960A - 53A7CB59797676B673CEDECE76311973F95EBDEFFFCFFB7BFECF030F419C6332 - 35D0991DD2C1F3F3B2CACB8FB0E1D7FF0025253A489214D128A5703806C0309D - 11C8AC004110A2F44040C0F0F0082C16E6A3282AB3660558ADFD112D2D6D3594 - 4A25BC5E2E0C6118C64ECAEADA66EC559328E25259B69C3B18A58F8FB93132EA - 0ADF3FDBED20A76FB6D2BB15390888D39C50AF96FE21F47C7562E79A059893A0 - 8829A056ABD1DE6E013975BD85DE3B97079F105DE92FEB837DD00DA6CF81B29C - 7424CD5546F9A228C26C7E0E527AD54C0DFA7C5418DE44CC5A5D2634AA048C4D - 7A611B18C7CB0E1BB499A961CFEC68C6B7DF76D41DB88D576DAF414E5C792A03 - 0E81E5A5A80ABD3F5C78D4D588201590E85E8BFA3359A8EFBC86A62FF7A15EA8 - C2627E397215C52025979F5063E5619C35BE8DE9B3D5530055522296B25BB161 - D522BC703D43CABA25A044C2A4730AC913A920C72F3EA686AA02FCE1A418C0C6 - 5BCBB079FB2658BB6DA1D162E5FA15A0091278BF1F4EDB2832147B4074B5CDD4 - 5875147A536C82164F3E76EFDD01CECF41088A208A207C7E1EDFFB7E221D19D8 - A5C9063976A1891AABB5F078C518C0963BC9D89FBD0FA2149001820CF2E1939C - C6C7F13706F513E7C3BB505CD3480D3545A87AF86EC6047939B9E1CF2108C773 - F8D0D50BCEEB9B06145537C88062FC6263136C33A4A0F060A10C901348322494 - 82F7A2FB7D0FD829AE74A8D26322DACA0771D616E8985F11CF0A10424E0EE827 - 1AFF01BB613719427DB0B80000000049454E44AE426082} - end + D0A7FB93199393FF040398F3FC63332DDB000002614944415478DA8D925D4893 + 5118C7FFE7F57DE796E2FC9C93866ECBEDBD58994422A158DD54D045D4855DE9 + D6070B1222B07B47375D1454044A054D914803838A2EBA89125233912257ED23 + BFD0596D732BDDF7FBEEEDCCB21C2ED9FFE69CF39C737ECF9FE779882449488B + 10B2B64A36302E9DB10D9274861EEBD66212DE1186F4F066D720FEE8EFBF8D00 + C743938C8D2406E445E2F1323D0745C56EFA5240D4E740603A89E84ADE103FEB + 6E2536A4B2029CBDB5D70ACBC54EF59E3A304A2B0D16FC4E975A41EAE71D7827 + A61059E62EF31657D72680E7BEA1484A119FAE799B8C2DB5A4AF902149443270 + 0FB3AF1391C258B8A2CABA18C900B8FB8C2D72A5F84AD3A001383DB22AE9C6FC + D812E261B6D1D8EE1CCF74D06738242F119F6FAF67FF59CF2B0118BA4F450131 + 405DAC62613285D88FBCFD06B36B3803F0A5BF5625316449BF6F85210C0D70B5 + 40FE4E0A28A7801090F848399F30335A986005A1526B99096D2E629F61A8AC26 + 7EA2542B028A0320F26640C603C21CA4E808FC1F5E22B840FA693BDBB3B7D1AE + 55B30CF75E539F5429AA0E82285AA88B069ADD81F0FC232CBE9DF40A49D92ED3 + 59C77256405A9FED3B8E7072F2ACA649C730057B415835848817732F1E0B9220 + B418CC9ED1FF0ED2BA9CBDC641151F6F55566B690D8A119CF6C2EF09DDE2CDEE + 0B5B4EE2BAC6EE365E7FE03D7D716307CF6BAF76F0664F774E80A11B271BDE44 + 0F8F77B41D85F7FB32069E0EC35A7DA5CA746AF66B4E804BB61E15939FFF6D23 + E066D7B98CD1DC1260B1D9E54A9298D0692A4DB178024BBEE0080534E50C48AB + D376BBDC1FF43F6108892A8A95C7BA6D1DABD900BF00C50337F0CC6CA9A40000 + 000049454E44AE426082} + end> + Left = 32 + Top = 16 + Bitmap = {} + end + object SessionImages: TPngImageList + PngImages = < item Background = clWindow - Name = 'Upload File' + Name = 'Compressed connection status bar indicator' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -10928,29 +10962,23 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB000002354944415478DA75925D4853 - 6118C7FFEF36DBB1095D04DD044517755314584937751B5D857DD2CCA4B20FB2 - F0C6746C5A18D1DCA28B0844372AAD2457AEB669F4A162162C2FC6A2E146E070 - 5B29D88A4D6D67C77DBE9D73D262DB39CFCDF3BECFC3F3E7FF7BDF8740262EDE - 7151E90E712B186E7F67C3B184789313B870DB41BB9A0E229DFDAF4329C5475F - 04F6319F5BB13A2D8AC80A9C37BDA0DDCDD5E032F982FA6282833F1C856DF88B - 074AD50159817AE300B5E80EA3C9F2FE5FADBD6E2F2AD44AFC88B3980C45D1FF - CEEB2772AC99540A16DD1124967205F5CFC1397C0ACC8AE7E0F4371039D64BE6 - 0158F54771D53A2EE970DFF60D708D7A40E4581B3A9EC162388E85644E52804B - 6571ADD30172AEC34EBB5B0E95B05E36D960359C80D6380CEF541279B94F3D7B - EB399562BD62EA87B5558BDE9110EE3AA7B1AB6A0FCA1935544A05940A2266FB - 4BDEC1999B362AC5FA73E63B2C6D35303CFC80C93087D978598988D3E502397D - E32995626D34F5F102B5F895C8A26BF02B9C135154EEAC02C330BCC05F074343 - 832075ED7D5460D5DD2F743017098939325F8E586E2DB6EDD80D46BD0A349F85 - 921F169CBC79FD0AE4D4F52754608DB1D99207EA791B44EFE80CB66CAD5C1ECE - C1EFF388FB2FE08C8F8D80D4B63DA22BACC5E10EB0C8A8D661FDC6CDFC72E430 - 15F0824BB266A1A7D15434B36C224D6A5A7BE80A6B712CB06934DE9BC0627E0D - D8DFF358E25873F871758BD0DB74D251CFA734D1EA1FC8FCF0F24AE70982310D - E25C999E1F3616F7FF00DF9B16A04062138E0000000049454E44AE426082} + D0A7FB93199393FF040398F3FC63332DDB0000015F4944415478DA6364C001C2 + 53CB730584257A3938B95891C57F7CFFF6FBC3DB17C52B67774EFEFFFF3F03E3 + E6062991FF2CCC9B1918182DA06A4EB1FCF91B5CBFDFE02090AD84CD70460686 + 3BA70E6E55051BB0A955EE948A8680A9A6813058F2CEF50F0CD72FBC45D770CC + B7E691B599A38FFEFF7FFF2F80C44E1FDCCA0831A045EEBF8B8718033EB067C7 + 2B06BF9A478C20767EE3CCFFC7F66D423580810880D700DFCA3378356F6E3721 + 60407A2803C39F874069A863FE3320D82003E69DC16F8083B705C3BF9FCFB1D8 + 0D31E4D09E47045C90590254FB1345138A0B664CC56BC027A0382FBE30F8CFF0 + FF8B7FCD635E633B2F5D1B67FF4B2806E0D2945935E1371B3B270BBA3848334A + 42C26580A99D971D0323E33C2053194DEA36C3FFFF29A70F6D3B84D7000C03ED + BDC18102723ADC6B840C3075F05A01D674605B04B20130F153FBB746E037C0DE + FB2F9062C221FDEFD4812DCC44BB009B38C80500FDD1E9E10D1CFCE200000000 + 49454E44AE426082} end item Background = clWindow - Name = 'Upload File Remove Original' + Name = 'Encrypted connection status bar indicator' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -11036,30 +11064,34 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB0000023C4944415478DA75D26F4813 - 711807F0EFFED44EE78BA29741D18B0A290AACA437F5367A15D23F9A6E53191A - F4D64C5C0541305DF8A25E886D48456FFAE3749B46920BB360F562CC3677264C - DC0C241D95ABEECFBCDBEDBABB99E3DADDEFCDEFEE79EEF7E1797EF718A0B3AE - 0E8445ED8C216A24D83383D72E51CA9B1ED0792F280E759D0357AC38A228E243 - 721981E964D458CB29882ED0D13F2A3EEC6E02CB9754F1DF140B329BC3F3A944 - 0C26F3595DC0E519117D3DE7D1E57BB715BBE33C853A8B096BEB3452991C9EBD - 899386E1E1C79ABD46D7ACF0F55C00551054F1D9C5557C9C5F519E1797BE4201 - DADB9D1084CA8772AF9DFDA3F0F75EC475FF8C6685A78FEC41F86DAC02F03CAF - BEC4BE007CEECBF8C5089A00BB51C4EDC160054824E6B692F5F507D1D13702BF - FB0A6C9E29C4D30C4A7A3F5506DADA1CD8E03875051E09B869C3934806F7434B - 38DE781235840566931126A341D90363C10A904CA654C040E0337CB79AE17EF4 - 1EA92C8B95F56D5548281C2E03ADAD76140A05F51C785E4A801DDFA92286C617 - 10FA9443C3B14610042101E50A2626C6CB8053025273A40AF0BE8829FB72BE06 - 3F855D387CF40408CB7688A5224CD261B992C9D7AF3601670B1886A9BA20FF64 - 16FEC82A0E1C6AD83C2C804CC694F997DB99998E940187A31924F9A50AB83BF6 - 0D196A2776EFDD2F0D8780F47C1C2C437BE59CD55AD74DD314A70076BB0DB446 - 05798A87EBC12CF2C20ED07FF228B0B437FBB4E9869CDBD71274491BA73BCAFF - 16C31B105EA845FA87B9573AECF93FFF17DC5116A053479FEC0000000049454E - 44AE426082} - end + D0A7FB93199393FF040398F3FC63332DDB000002054944415478DA8D923F4C13 + 7114C7BFBF5FA15264D24949AF91C94162D854C2C4E0405B636430AE12D48198 + 6802310709866B848190C8A289233131D185D618DD4C00999A122416A5FFEE40 + 06D081E020B4BFE7BBF35A68EF065E7279BFF7EEF73EEFFB5E7E8288208440D5 + DE1B17224AA811CE47393CC7DF36FF4F4992537DA38552F59E5D679B380E4825 + C2D71589B77C6C83D7F6A5A0FEA86E7DF40524273B342A97D7DCE2377CD9387D + 6865FF34872F32D4E0DC0D1B5209C8CE9B4F8A450F603EA1BD00E19E2D243E6A + C61ADBCF1B5A925D14022FE3BA79DF0B980897F8A071E74E96F9B511C0E35D62 + 25ABACDD8C8F59112FC0D02A1CCB74D90C8C8F43F9ECC0BEE354B14251074825 + 228B1C5EC3C96D21A6977A6A806422427D8F3F701802A5AF36DC954020C42E84 + 8DB50327F37DEB2F1820EA00DDB79F41A953C0C6D051AD68E242CE09FE64109B + B93D276DED1C7A01B18773DCE90C68A5B7AE2B648BEB43F8912E424AC237F3C0 + 47C1AD6128C14FA03056EB3A34B98759BDDD8D83D8CEE520B92CFFB3ECA3E0C1 + 34103C0F5A1FAC75BDF3A884D7CFBB584DAB136F663E3B0AD2EB151F05F101A8 + C0597EF9AFDC9959C1441EB34F2FD776F03BB704C1D3650BE4A3E0EE30D0D201 + B266FECFEC763DBE87DDD53947C152065E404FB41FAAB91DF4EB13171F6DBEAA + C6F6FBF9770E2093958D00ED0B1FAF9CFC1DD1724C379D07F30F777C10F0F521 + 03AA0000000049454E44AE426082} + end> + Left = 32 + Top = 80 + Bitmap = {} + end + object QueueImages: TPngImageList + PngImages = < item Background = clWindow - Name = 'Operation needs user interaction' + Name = 'Download File' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -11145,23 +11177,30 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB0000016A4944415478DA63FCFFFF3F - 032580916203327A36516402635AD7FAFF334B03187EFEF947B2E6BCFE4D0C8C - A91D6BFFCF2C0F62F8F60BB70137EF3E64983C7725C3DD074F18E465241892A3 - 02184C0DB4180AFB37303026B7AEFA3FBB329421B2623656CDB31A9218E2F3EA - 18CC0C7518B2124219E6AFD8C4B0FBD00986E5D3DB198AFAD731302636AFF83F - BB2A8CE1E3F7BF385DB007A8C1D2449F81858599A16DC21C861F3F7E3274D615 - 3294F4AF65608C6F5CFA7F4E4D24434CE51CAC9A27D52480E9BF7FFF31D4774E - 61F8F5FB374375613A033F1F0F4359FF6A06C6B8FAC5FF67D74433BCF9F21B6F - 803D7FF99AA1B4BE8B61466F23030F371758AC72C22A06C6989A85FF67D7C530 - 24D4CC45D1D05D1E8FC2FFF3E72FC3A1E3A7189C6C2DE16255FD2B1818A3AAE6 - FD9F551FCFF0EA137E173C7AFC94A173C20C86B6FA32A0F379C16235FDCB1818 - 232AE6000D48607841C0006CA0AE7F29036378D92CCA52E2C067264A0D000000 - F996B77D01BB8E0000000049454E44AE426082} + D0A7FB93199393FF040398F3FC63332DDB000002554944415478DA85935F4853 + 511CC7BF671BCDB6FE10FDB14164F458E053D11FC80AA23285A5569AE29F4A2B + 0A7A5A39362D2CB17F442FA56DC3B2519495327CF0A1B0FFACD2A539B66821BA + D542B39CD9EEEEBDFB7377BAEE2191EBADF374CEEFCBF99CEFF777CE21901947 + AF74D09915E254A4713B1A8FEF63522B39C091CB0E7AC3A0472C31C5A194E295 + 3B80B6676EA742134B416401872FB653CBA93C70F1E4B4FA6F8683D73F8AD627 + FD2E2855D9B280CAF38FA8D5580083F5F9DF5A5DF926CC512BF17D3C02CFD028 + EE3FEEF512B9AC3499C4D51339880BD3CFE81B18C19B8FDF52F381C12F20FFCA + DAEB0B62249C002152A35999CBD1D1E502F95FD6D7FD7E54E4AE83366DD6349D + 8B2670BAD1015275A18D5AAAF365B37AC5AC0F9EBAA19D373FA5F9B87684123E + B494D9D1D0D40572A8E1A1D8AC3D60784192F576B71D491A87EAC72AD41FD3E3 + FADB7368FD648166811A0BF965481FAE003958DF4A6DA6BD38697B21C9E90815 + 42AD5561099305F56C0D028A4EE8562F062502C68361A8BEAE003970F61EB59A + 0B31C10A12C09A6BE958BF652DFA7B3C93ADC5CACC0C50A5003E1A45D0330CDD + C47690F2BABBD466DE0F63B3D4417BA800DB766E051B65114F8AB7A1488ACDE3 + F1F9C32016FDDA888C680E48D9993BD456538C502421016C685A8A5DB9D94808 + 31111017411CDCA21B8EE52FF98D63D5A9BF505A6BA7D6DA12986FBD9CD1419E + 7E776AF32484E559B8BAFBC046B82940494D8B0828C54F46EA60B35587A2FC22 + 11203A1044C8A40B3E829E77EFC184D9CA8029D44C8A4D3765BE2DE09C6B9093 + 62E2EBAC1A328ED9FF000C483861237E2E7B0000000049454E44AE426082} end item Background = clWindow - Name = 'Operation has some error' + Name = 'Download File Remove Original' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -11247,33 +11286,35 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB0000022E4944415478DA8D934F6B13 - 4118C6DF99DD8DFD93AC5A68C5DA5028C196B48818C52F50037E014FC61C3C94 - 78B25FA4EAC512C4439A9EBC7B89E25D3422628A4A2D94D4AA15FCB389B56667 - 677D667736EC861C7C61C9EC9B797E33EFB3EFCB6820D6D3E925CEE926112BE2 - 35ABD36D22BF21253DAC74BB6FE3FB59B4784494FA61DB772DF257660D834F82 - 32CAC2BF8F7C9F0EA0DEF53CE912AB9E749CDBD7887A7D80163F9EE26C79D134 - C9A4E121F0B484A0AF9E7C36D1E95C55900050B5EDFB939C559620B66666C2CD - 7B7B09B1A9F32EF20A7220FDF515C7B9C5AA99CC82C5A875D9B2F8B1E9699A7B - D90C367E2A97E9F79346B01EBF52A433B55AB0DEB958A0BFFBFBF4DC75A5EBD3 - 22ABDA9935D4BC9A45CD16003900582A457EAF476D405464218E72DB00B800B4 - 434FEE2840EB9C69E6C7B461364E9B8D0442844EA33425DE05D0D1B73A84B16F - 84D852804EC1B2D23C56AF82CCD5EB81508502ED944A7DB10A89A7E9BADD0070 - DE341380E3C522E5EA9B09C076E93AFD6A2401AF850800AD79C3C88FE8124E40 - 7CB6B631B4840FE51BF45343546FBCF7BCA084B5539CAFAAC649C1C442F355DF - B07710A8588880C8350B17A80713BFC1C42FD2BB177C46039F31679A7C14804B - 00A8D882F8BB3E6D02B7CA03A2E205007F00F8288414EA33468D946154398D5B - 8CE886391A68A478FE334EEFF8143652BC95C7192D4F01C2697828E3D44C74A5 - 9F6CE5F830710C93CD391F53EDAB8D1530EC10BF8E440C1BA6FF1CE7A7503F18 - 1CE77F711F13BA97C854740000000049454E44AE426082} - end - item - Background = clWindow - Name = 'Operation needs user interaction 2' - PngImage.Data = { - 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF - 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 - 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + D0A7FB93199393FF040398F3FC63332DDB0000026E4944415478DA85935D4853 + 6118C7FFEFB4ADE60AA22FA58BA42ECA822EB2A010FB262B24352B6D6223B312 + ECD26AF84158D127E24DF4B1B53251225A265E745110953B4A9AE972EB8B960A + 53A7CB59797676B673CEDECE76311973F95EBDEFFFCFFB7BFECF030F419C6332 + 35D0991DD2C1F3F3B2CACB8FB0E1D7FF0025253A489214D128A5703806C0309D + 11C8AC004110A2F44040C0F0F0082C16E6A3282AB3660558ADFD112D2D6D3594 + 4A25BC5E2E0C6118C64ECAEADA66EC559328E25259B69C3B18A58F8FB93132EA + 0ADF3FDBED20A76FB6D2BB15390888D39C50AF96FE21F47C7562E79A059893A0 + 8829A056ABD1DE6E013975BD85DE3B97079F105DE92FEB837DD00DA6CF81B29C + 7424CD5546F9A228C26C7E0E527AD54C0DFA7C5418DE44CC5A5D2634AA048C4D + 7A611B18C7CB0E1BB499A961CFEC68C6B7DF76D41DB88D576DAF414E5C792A03 + 0E81E5A5A80ABD3F5C78D4D588201590E85E8BFA3359A8EFBC86A62FF7A15EA8 + C2627E397215C52025979F5063E5619C35BE8DE9B3D5530055522296B25BB161 + D522BC703D43CABA25A044C2A4730AC913A920C72F3EA686AA02FCE1A418C0C6 + 5BCBB079FB2658BB6DA1D162E5FA15A0091278BF1F4EDB2832147B4074B5CDD4 + 5875147A536C82164F3E76EFDD01CECF41088A208A207C7E1EDFFB7E221D19D8 + A5C9063976A1891AABB5F078C518C0963BC9D89FBD0FA2149001820CF2E1939C + C6C7F13706F513E7C3BB505CD3480D3545A87AF86EC6047939B9E1CF2108C773 + F8D0D50BCEEB9B06145537C88062FC6263136C33A4A0F060A10C901348322494 + 82F7A2FB7D0FD829AE74A8D26322DACA0771D616E8985F11CF0A10424E0EE827 + 1AFF01BB613719427DB0B80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E @@ -11355,22 +11396,29 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB0000014D4944415478DA63FCFFFF3F - 032580916203327A36516402635AD7FAFF334B03187EFEF947B2E6BCFE4D0C8C - A91D6BFFCF2C0F62F8F60BD3008FC85C861DCB27631503D19A66CE0C8CC9ADAB - FECFAE0C6558B7EB28C38459CBC08A0AD2A2185CED2C18BC63F218B62E998461 - 304CBCA87F1D036362F38AFFB3ABC2183E7EFF0B57E01F97CFB071D144300D77 - 6E4A1483B39D398A7C49FF5A06C6F8C6A5FFE7D44432ACD9719461EADCE5700D - 6B174C60084E2800D320808D5DD6BF9A8131AE7EF1FFD935D10CCEE1390C2BE7 - F6831584271782D9301A590C995D39611503634CCDC2FFB3EB62185C23721996 - CD8628884A2D04B36134B21832BBAA7F05036354D5BCFFB3EAE3C15E98B37005 - 58414A7C0483BCAC34436D4B2FDC4B20313B2B3386B8F422864533FBC0B49C86 - 09036344C51CA001090C2F3EFD26391DD4F52F65600C2F9B45594A1CF8CC44A9 - 0100D995A5B799D3CBD30000000049454E44AE426082} + D0A7FB93199393FF040398F3FC63332DDB000002354944415478DA75925D4853 + 6118C7FFEF36DBB1095D04DD044517755314584937751B5D857DD2CCA4B20FB2 + F0C6746C5A18D1DCA28B0844372AAD2457AEB669F4A162162C2FC6A2E146E070 + 5B29D88A4D6D67C77DBE9D73D262DB39CFCDF3BECFC3F3E7FF7BDF8740262EDE + 7151E90E712B186E7F67C3B184789313B870DB41BB9A0E229DFDAF4329C5475F + 04F6319F5BB13A2D8AC80A9C37BDA0DDCDD5E032F982FA6282833F1C856DF88B + 074AD50159817AE300B5E80EA3C9F2FE5FADBD6E2F2AD44AFC88B3980C45D1FF + CEEB2772AC99540A16DD1124967205F5CFC1397C0ACC8AE7E0F4371039D64BE6 + 0158F54771D53A2EE970DFF60D708D7A40E4581B3A9EC162388E85644E52804B + 6571ADD30172AEC34EBB5B0E95B05E36D960359C80D6380CEF541279B94F3D7B + EB399562BD62EA87B5558BDE9110EE3AA7B1AB6A0FCA1935544A05940A2266FB + 4BDEC1999B362AC5FA73E63B2C6D35303CFC80C93087D978598988D3E502397D + E32995626D34F5F102B5F895C8A26BF02B9C135154EEAC02C330BCC05F074343 + 832075ED7D5460D5DD2F743017098939325F8E586E2DB6EDD80D46BD0A349F85 + 921F169CBC79FD0AE4D4F52754608DB1D99207EA791B44EFE80CB66CAD5C1ECE + C1EFF388FB2FE08C8F8D80D4B63DA22BACC5E10EB0C8A8D661FDC6CDFC72E430 + 15F0824BB266A1A7D15434B36C224D6A5A7BE80A6B712CB06934DE9BC0627E0D + D8DFF358E25873F871758BD0DB74D251CFA734D1EA1FC8FCF0F24AE70982310D + E25C999E1F3616F7FF00DF9B16A04062138E0000000049454E44AE426082} end item Background = clWindow - Name = 'Suspend background-queued operation' + Name = 'Upload File Remove Original' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -11456,23 +11504,30 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB000000AB4944415478DA63FCFFFF3F - 03258091AA0628C6AD7F02149286F0FE3F7DB0384806C452885D87227E7F51A0 - 0C0E0336FC77335304B3779DBACFF060712023C480F528E2F7170530E234C0D6 - 4805CC3E7CEE0E8A01C8E2780D30D15307B3CF5CBA896200B2385E0374B4B5C1 - EC2B57AFA218802C8ED700154D0330FBCEF50B2806208BE3354059DB1CCCBE7B - F5248A01C8E2780D5037B005B36F5E388C6200B2F8F03680C2A44C0EA0D80000 - 8A3ED3E1B6D3D73E0000000049454E44AE426082} - end> - Left = 136 - Top = 80 - Bitmap = {} - end - object LogImages: TPngImageList - PngImages = < + D0A7FB93199393FF040398F3FC63332DDB0000023C4944415478DA75D26F4813 + 711807F0EFFED44EE78BA29741D18B0A290AACA437F5367A15D23F9A6E53191A + F4D64C5C0541305DF8A25E886D48456FFAE3749B46920BB360F562CC3677264C + DC0C241D95ABEECFBCDBEDBABB99E3DADDEFCDEFEE79EEF7E1797EF718A0B3AE + 0E8445ED8C216A24D83383D72E51CA9B1ED0792F280E759D0357AC38A228E243 + 721981E964D458CB29882ED0D13F2A3EEC6E02CB9754F1DF140B329BC3F3A944 + 0C26F3595DC0E519117D3DE7D1E57BB715BBE33C853A8B096BEB3452991C9EBD + 899386E1E1C79ABD46D7ACF0F55C00551054F1D9C5557C9C5F519E1797BE4201 + DADB9D1084CA8772AF9DFDA3F0F75EC475FF8C6685A78FEC41F86DAC02F03CAF + BEC4BE007CEECBF8C5089A00BB51C4EDC160054824E6B692F5F507D1D13702BF + FB0A6C9E29C4D30C4A7A3F5506DADA1CD8E03875051E09B869C3934806F7434B + 38DE781235840566931126A341D90363C10A904CA654C040E0337CB79AE17EF4 + 1EA92C8B95F56D5548281C2E03ADAD76140A05F51C785E4A801DDFA92286C617 + 10FA9443C3B14610042101E50A2626C6CB8053025273A40AF0BE8829FB72BE06 + 3F855D387CF40408CB7688A5224CD261B992C9D7AF3601670B1886A9BA20FF64 + 16FEC82A0E1C6AD83C2C804CC694F997DB99998E940187A31924F9A50AB83BF6 + 0D196A2776EFDD2F0D8780F47C1C2C437BE59CD55AD74DD314A70076BB0DB446 + 05798A87EBC12CF2C20ED07FF228B0B437FBB4E9869CDBD71274491BA73BCAFF + 16C31B105EA845FA87B9573AECF93FFF17DC5116A053479FEC0000000049454E + 44AE426082} + end item Background = clWindow - Name = 'Clear log' + Name = 'Operation needs user interaction' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -11558,34 +11613,23 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB000002CD4944415478DAA5934B4C53 - 511086E73E7ADBC2ED69690BA10A6D782A16410DE22B246C5C10164663DCB061 - 634B3031D1850B135F892E5C6962D4B41063646334C10589D14D6322C1475254 - 108368A1143108A5ED7DD0963EEEF1DC1BAB18202E3CCB3333DFCCF9E73F14C6 - 18FEE7502A80A228F0F3BC5BA1A97E1AF0804794EF6C947CBBB4946732E90714 - 86264AC1474E4AD28406E83399DCC0D02FDC8DDBECD3A1B0924AAE767B447160 - 6D713F42D63CE021A76BEB41BBDD0AA3C1B18847905C1AC06F46F3BB9B1AB638 - 2B1D20AF24617824984BAF668FF548D2905A7C97E7CB689A0AD4563BDDEE865A - F830FE19C291F9671E41ECD0003E0B1A74D8AD475B76360049848428C348703C - 93CDE60E533A5D18F2D9973BEAAA9CB5AE0A980CCDC2D4CC5C30A737B4F72E2E - CA1AE031457131C4DFB321D4B5BFB11E58868165418257E3933289A79BEBAAEC - CEF25208CD2FC0C474640230B47B2529AAE95710F13200ED40FC0D545474FAC0 - F61AE0581616E202A87187D502DFA231783F3D1BC18CAECD1B8F47D4A7FD0528 - 1C3FE22F16EBF557F655BBC0C8E9B4BB05324D303C17259D0F792469AA90BB09 - 0075710C7DBFA5D2C15A8C06ED6E2696804F3FA29304D0A68EBE298074EFD5B3 - ECADD6F2329A27DD85D50CA836B3E8399822CFF91A1734F14E2D2DC9EB003EB3 - E97C11C35C6B253B36121157723978BD1453148C337B6C25061B817C4C881091 - 9301AB24759C00C8FC06F82DE8BA8961CEED450838B2C6B4A2C09B84A8A415DC - 4DDA8408FF79332266E038189364F89EC93C21BA1CBF84B15230D2728BD168B5 - B18C8A85B7C914AC28F88C57146FAAA3FA8A8B77520C1D701BF476874E07EF52 - 298866F33EE2D69E5F00732703787017CB725FF27990305C25C10B6BADEC339B - 6B00E703F50CEBE4C948A3B95C8C38D1F64703843A892C0F496E9F5794CE6EF4 - 99FAACC60A25CF3E259FA98A94759026C3EBD6F8AFF308808B979418899904B5 - F627CD7A6EF09E4BCDD50000000049454E44AE426082} + D0A7FB93199393FF040398F3FC63332DDB0000016A4944415478DA63FCFFFF3F + 032580916203327A36516402635AD7FAFF334B03187EFEF947B2E6BCFE4D0C8C + A91D6BFFCF2C0F62F8F60BB70137EF3E64983C7725C3DD074F18E465241892A3 + 02184C0DB4180AFB37303026B7AEFA3FBB329421B2623656CDB31A9218E2F3EA + 18CC0C7518B2124219E6AFD8C4B0FBD00986E5D3DB198AFAD731302636AFF83F + BB2A8CE1E3F7BF385DB007A8C1D2449F81858599A16DC21C861F3F7E3274D615 + 3294F4AF65608C6F5CFA7F4E4D24434CE51CAC9A27D52480E9BF7FFF31D4774E + 61F8F5FB374375613A033F1F0F4359FF6A06C6B8FAC5FF67D74433BCF9F21B6F + 803D7FF99AA1B4BE8B61466F23030F371758AC72C22A06C6989A85FF67D7C530 + 24D4CC45D1D05D1E8FC2FFF3E72FC3A1E3A7189C6C2DE16255FD2B1818A3AAE6 + FD9F551FCFF0EA137E173C7AFC94A173C20C86B6FA32A0F379C16235FDCB1818 + 232AE6000D48607841C0006CA0AE7F29036378D92CCA52E2C067264A0D000000 + F996B77D01BB8E0000000049454E44AE426082} end item Background = clWindow - Name = 'Copy log entries-console window output' + Name = 'Operation has some error' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -11671,27 +11715,29 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB000001DF4944415478DA63FCFFFF3F - 4366DFE6FF0C5801E331268EEFEED3B2C3BE609305E9650411193D1BFFCF28F1 - 67F8F5E73F8AE4E14B0F19D6EEBF748C89EB175643E006A477ADFF3FB32C90E1 - FBEF7F280A3E7DF9CE70F5C12B8695BB2F9E616066F19C55E2FB06AB01A91D6B - FFCFAA0866289975002ED9186FCBC0C3CECCF0F2FD57862BF75F31ACD875EEEA - 9CCA101DAC06A4B4AF011A10C2F0E5C75FB044F9F46DD883042D4CE00624B7AE - FA3FBB2A94A174F641B0B2AF9F3E32600B9323971F32ACD9870813B80149CD2B - FECFAA0E67F8F80DE282AA699B19F087C985730CCCACEE338B7DDE800D48685A - F67F76752443C55C880B3EBF7FC730B33C0867985C0585C9EEF357679507E980 - 0D886F58FA7F764D14C3BBAF7FC08A6BA66D64400E1318387FE705C3F16B4FC1 - EC3BF71E31000395116C405CDDE2FFB36AA319AAE71F024B7E78FD8A01394CD0 - 819D9E1CC3A6BD6718E65687410C88A95D08342096E1CD17880B1AA6AE63400E - 1374F0FDE71F86BA691B18E6D546400C88AE9E8F929459D9D91990C3041D9447 - 5A3394F5AF6658501705318091911145415CFD129430C16A48FF2A86850DD1D8 - 0D88AD5D841226E8A028CC8AA1B26F25C3A2A658EC0644D72C4009136CA0AA7F - 39C392E678EC064455CDFBCF400458DA9AC808004C6438F08368B78D00000000 - 49454E44AE426082} + D0A7FB93199393FF040398F3FC63332DDB0000022E4944415478DA8D934F6B13 + 4118C6DF99DD8DFD93AC5A68C5DA5028C196B48818C52F50037E014FC61C3C94 + 78B25FA4EAC512C4439A9EBC7B89E25D3422628A4A2D94D4AA15FCB389B56667 + 677D667736EC861C7C61C9EC9B797E33EFB3EFCB6820D6D3E925CEE926112BE2 + 35ABD36D22BF21253DAC74BB6FE3FB59B4784494FA61DB772DF257660D834F82 + 32CAC2BF8F7C9F0EA0DEF53CE912AB9E749CDBD7887A7D80163F9EE26C79D134 + C9A4E121F0B484A0AF9E7C36D1E95C55900050B5EDFB939C559620B66666C2CD + 7B7B09B1A9F32EF20A7220FDF515C7B9C5AA99CC82C5A875D9B2F8B1E9699A7B + D90C367E2A97E9F79346B01EBF52A433B55AB0DEB958A0BFFBFBF4DC75A5EBD3 + 22ABDA9935D4BC9A45CD16003900582A457EAF476D405464218E72DB00B800B4 + 434FEE2840EB9C69E6C7B461364E9B8D0442844EA33425DE05D0D1B73A84B16F + 84D852804EC1B2D23C56AF82CCD5EB81508502ED944A7DB10A89A7E9BADD0070 + DE341380E3C522E5EA9B09C076E93AFD6A2401AF850800AD79C3C88FE8124E40 + 7CB6B631B4840FE51BF45343546FBCF7BCA084B5539CAFAAC649C1C442F355DF + B07710A8588880C8350B17A80713BFC1C42FD2BB177C46039F31679A7C14804B + 00A8D882F8BB3E6D02B7CA03A2E205007F00F8288414EA33468D946154398D5B + 8CE886391A68A478FE334EEFF8143652BC95C7192D4F01C2697828E3D44C74A5 + 9F6CE5F830710C93CD391F53EDAB8D1530EC10BF8E440C1BA6FF1CE7A7503F18 + 1CE77F711F13BA97C854740000000049454E44AE426082} end item Background = clWindow - Name = 'Select all log entries' + Name = 'Operation needs user interaction 2' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -11777,26 +11823,22 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB000001C04944415478DA63FCFFFF3F - 03258011644044F96CB24C59D199CA083760616B0A499AE3ABE7A01AB0A02519 - 43D1F71FBF18FEFCFDC7C0CBCD812197503317D58079CD08032EDF7AC2B078CB - 318637EF3F83F97C3C9C0C919EE60CE67ACA703549B56806CC6D4A82D8FAF337 - 4371F70A86BF7FFF32D8996830FCFAFD87E1C8B95B0C6CAC2C0C93AB62185898 - 99C0EA92EBE6A11A30BB1162C0CF5FBF196EDC7FCEC0C8C8C8A0A726CBF0EFDF - 3F86AA896B18DE7EF8C2D0571605F74E6A3D9A01B31A92E0CEFBF2ED07C3894B - 77196E020DBAF3F825C3D76F3FC1E25DC5110C02BC5C60765A039A0133EA2106 - 7CFCFC8DA179C606866FC000D4579763D0549262D879F412D805DD2508176434 - A21930AD2E112C71E0F4758655DB4F30D818A93344F95881C5AA26AC62F8F0E9 - 2B43677124DC80ACA6F9A8064CAD851870FACA3D8605EB0F32880AF13104B998 - 325CBAF588E1F885DB60B9FAAC600631613E303BBB19CD80C935096089BFC078 - 9FBE6237D8FF20202B21CC2022C8CB70FEFA0386681F6B060B0355B0786ECB02 - 540326410D00019018280DFC03D2E2C2FC0CBFFFFC65F8F1F317382AD9D958C1 - 6AF2D00D98588D30801890DF8A66004599891200004F1B09F0A5CD4E56000000 - 0049454E44AE426082} + D0A7FB93199393FF040398F3FC63332DDB0000014D4944415478DA63FCFFFF3F + 032580916203327A36516402635AD7FAFF334B03187EFEF947B2E6BCFE4D0C8C + A91D6BFFCF2C0F62F8F60BD3008FC85C861DCB27631503D19A66CE0C8CC9ADAB + FECFAE0C6558B7EB28C38459CBC08A0AD2A2185CED2C18BC63F218B62E998461 + 304CBCA87F1D036362F38AFFB3ABC2183E7EFF0B57E01F97CFB071D144300D77 + 6E4A1483B39D398A7C49FF5A06C6F8C6A5FFE7D44432ACD9719461EADCE5700D + 6B174C60084E2800D320808D5DD6BF9A8131AE7EF1FFD935D10CCEE1390C2BE7 + F6831584271782D9301A590C995D39611503634CCDC2FFB3EB62185C23721996 + CD8628884A2D04B36134B21832BBAA7F05036354D5BCFFB3EAE3C15E98B37005 + 58414A7C0483BCAC34436D4B2FDC4B20313B2B3386B8F422864533FBC0B49C86 + 09036344C51CA001090C2F3EFD26391DD4F52F65600C2F9B45594A1CF8CC44A9 + 0100D995A5B799D3CBD30000000049454E44AE426082} end item Background = clWindow - Name = 'Display preferences window' + Name = 'Suspend background-queued operation' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -11882,55 +11924,481 @@ object GlyphsModule: TGlyphsModule 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 - D0A7FB93199393FF040398F3FC63332DDB0000034A4944415478DA75937B6813 - 5914C6BF3B9999A45393A64DD32A71D7B59B55DBDAADB8B8A0A2B8AE755DA5DA - A6A8E063FB1065B1FFA5A2A88BF6AF55B091F886FA4A9405F1D10A51D627BBAB - 527C94AAA116432D6B6BB59BD86D6293F4313399F166C44AA11E18E6C09CFBCD - 39BFEF1E82CF4459B973A70A529BCCE9BBA6D15B7770AC3AF23129DE542BF052 - BF43E4C8355FBDABD75151D371C2BD3B67785842F5B6DFFD0D1E5761E9FA2D59 - 0CAB2C16395383AFBE76604420799813A33717CEFB7ECEDDFB2D114992DF7E57 - 98F74D75D56AC40787B0D77D12DDFF85DA58869968B1649842A1DE7B26622CF2 - 786A873481D272E72F3FCC9DE5AD5A5B82017A800A80E558043A5E6348146136 - A6A2BDA30BB2AA80E7F4B871FB1F44A2EF8A1B4FEFBFF24180B626087CE0C09E - AD66514AA0D9DF8EF0BB1832334C90E48496F35450C73078130CA1A9E941EF30 - A7E626471D61E028AF693FB26F87BDD9FF0269A65498E9138E44B50E864519B1 - F8105455C5CBCE6E343F7ED2D6E871E56B0CCA2A9C4E0564C3B7B9F6BC5F2B57 - E3FA9D16CC9CFE35FEBAFB10779A1EC508015358902FD86C36A4A719299341DC - BCF537A2B1B89F10729CD03F4BC7DDBB281F06AD812EADC0C07338547F362672 - EA648348B913B5E3C7850B8409D60CF03C8B64ADAA2470E2CC795113385AB793 - A57CF0EC45174451A2BE2B3875E64224A1CA9313BC8EE525D2B96C4991601B9F - 092EC942C750FB54B88F79A940E596ED50D42A7BCE97F6B29225F8F75510A906 - 3D1EB5F8D1F63C10A663EB72A74D314DCF9B8AFC299310E98FE3DC451F7A826F - 9F139053A320AE722CB573BC018AA2201A1FD42CD5731C8C4601E3ADE9C8B298 - D1D9DD837AEFF94F103FDAA8E34860F9CF8BCCBCC100839E07C7B29065192929 - 7AD8B22D5ADB6F827D4831B0701DF68464459A7AD9E38E68026595CE75D9D6AC - B3F3E7CD4630F4BF66DD571327805E3A4D2C1903038348378D43467A1AFEB8E0 - C3D3D640E9258FEBF2A8AB9C996999D3D717EEA72384B3AD964925C53F41A01D - 5DF2FD89AE573D9D54CC3AA3609A70BFD9DF24F1C6A2E43E8C3058B979F33825 - 9EB2865195ABF939693DFE97D1F6EA8D6B73F494FAFE23DED606AFAB6045A5F3 - 0B564591C89BCE8D5AA6B1C251E1DC4D3FEFFAB0B3E4B786D3757BC6AA7B0FDB - 2F6D8C6D24794C0000000049454E44AE426082} + D0A7FB93199393FF040398F3FC63332DDB000000AB4944415478DA63FCFFFF3F + 03258091AA0628C6AD7F02149286F0FE3F7DB0384806C452885D87227E7F51A0 + 0C0E0336FC77335304B3779DBACFF060712023C480F528E2F7170530E234C0D6 + 4805CC3E7CEE0E8A01C8E2780D30D15307B3CF5CBA896200B2385E0374B4B5C1 + EC2B57AFA218802C8ED700154D0330FBCEF50B2806208BE3354059DB1CCCBE7B + F5248A01C8E2780D5037B005B36F5E388C6200B2F8F03680C2A44C0EA0D80000 + 8A3ED3E1B6D3D73E0000000049454E44AE426082} end> Left = 32 - Top = 144 + Top = 152 Bitmap = {} end - object ButtonImages: TImageList - Left = 136 - Top = 152 - Bitmap = { - 494C010102000400480010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 - 0000000000003600000028000000400000001000000001002000000000000010 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + object LogImages: TPngImageList + PngImages = < + item + Background = clWindow + Name = 'Clear log' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002CD4944415478DAA5934B4C53 + 511086E73E7ADBC2ED69690BA10A6D782A16410DE22B246C5C10164663DCB061 + 634B3031D1850B135F892E5C6962D4B41063646334C10589D14D6322C1475254 + 108368A1143108A5ED7DD0963EEEF1DC1BAB18202E3CCB3333DFCCF9E73F14C6 + 18FEE7502A80A228F0F3BC5BA1A97E1AF0804794EF6C947CBBB4946732E90714 + 86264AC1474E4AD28406E83399DCC0D02FDC8DDBECD3A1B0924AAE767B447160 + 6D713F42D63CE021A76BEB41BBDD0AA3C1B18847905C1AC06F46F3BB9B1AB638 + 2B1D20AF24617824984BAF668FF548D2905A7C97E7CB689A0AD4563BDDEE865A + F830FE19C291F9671E41ECD0003E0B1A74D8AD475B76360049848428C348703C + 93CDE60E533A5D18F2D9973BEAAA9CB5AE0A980CCDC2D4CC5C30A737B4F72E2E + CA1AE031457131C4DFB321D4B5BFB11E58868165418257E3933289A79BEBAAEC + CEF25208CD2FC0C474640230B47B2529AAE95710F13200ED40FC0D545474FAC0 + F61AE0581616E202A87187D502DFA231783F3D1BC18CAECD1B8F47D4A7FD0528 + 1C3FE22F16EBF557F655BBC0C8E9B4BB05324D303C17259D0F792469AA90BB09 + 0075710C7DBFA5D2C15A8C06ED6E2696804F3FA29304D0A68EBE298074EFD5B3 + ECADD6F2329A27DD85D50CA836B3E8399822CFF91A1734F14E2D2DC9EB003EB3 + E97C11C35C6B253B36121157723978BD1453148C337B6C25061B817C4C881091 + 9301AB24759C00C8FC06F82DE8BA8961CEED450838B2C6B4A2C09B84A8A415DC + 4DDA8408FF79332266E038189364F89EC93C21BA1CBF84B15230D2728BD168B5 + B18C8A85B7C914AC28F88C57146FAAA3FA8A8B77520C1D701BF476874E07EF52 + 298866F33EE2D69E5F00732703787017CB725FF27990305C25C10B6BADEC339B + 6B00E703F50CEBE4C948A3B95C8C38D1F64703843A892C0F496E9F5794CE6EF4 + 99FAACC60A25CF3E259FA98A94759026C3EBD6F8AFF308808B979418899904B5 + F627CD7A6EF09E4BCDD50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Copy log entries-console window output' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001DF4944415478DA63FCFFFF3F + 4366DFE6FF0C5801E331268EEFEED3B2C3BE609305E9650411193D1BFFCF28F1 + 67F8F5E73F8AE4E14B0F19D6EEBF748C89EB175643E006A477ADFF3FB32C90E1 + FBEF7F280A3E7DF9CE70F5C12B8695BB2F9E616066F19C55E2FB06AB01A91D6B + FFCFAA0866289975002ED9186FCBC0C3CECCF0F2FD57862BF75F31ACD875EEEA + 9CCA101DAC06A4B4AF011A10C2F0E5C75FB044F9F46DD883042D4CE00624B7AE + FA3FBB2A94A174F641B0B2AF9F3E32600B9323971F32ACD9870813B80149CD2B + FECFAA0E67F8F80DE282AA699B19F087C985730CCCACEE338B7DDE800D48685A + F67F76752443C55C880B3EBF7FC730B33C0867985C0585C9EEF357679507E980 + 0D886F58FA7F764D14C3BBAF7FC08A6BA66D64400E1318387FE705C3F16B4FC1 + EC3BF71E31000395116C405CDDE2FFB36AA319AAE71F024B7E78FD8A01394CD0 + 819D9E1CC3A6BD6718E65687410C88A95D08342096E1CD17880B1AA6AE63400E + 1374F0FDE71F86BA691B18E6D546400C88AE9E8F929459D9D91990C3041D9447 + 5A3394F5AF6658501705318091911145415CFD129430C16A48FF2A86850DD1D8 + 0D88AD5D841226E8A028CC8AA1B26F25C3A2A658EC0644D72C4009136CA0AA7F + 39C392E678EC064455CDFBCF400458DA9AC808004C6438F08368B78D00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Select all log entries' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001C04944415478DA63FCFFFF3F + 03258011644044F96CB24C59D199CA083760616B0A499AE3ABE7A01AB0A02519 + 43D1F71FBF18FEFCFDC7C0CBCD812197503317D58079CD08032EDF7AC2B078CB + 318637EF3F83F97C3C9C0C919EE60CE67ACA703549B56806CC6D4A82D8FAF337 + 4371F70A86BF7FFF32D8996830FCFAFD87E1C8B95B0C6CAC2C0C93AB62185898 + 99C0EA92EBE6A11A30BB1162C0CF5FBF196EDC7FCEC0C8C8C8A0A726CBF0EFDF + 3F86AA896B18DE7EF8C2D0571605F74E6A3D9A01B31A92E0CEFBF2ED07C3894B + 77196E020DBAF3F825C3D76F3FC1E25DC5110C02BC5C60765A039A0133EA2106 + 7CFCFC8DA179C606866FC000D4579763D0549262D879F412D805DD2508176434 + A21930AD2E112C71E0F4758655DB4F30D818A93344F95881C5AA26AC62F8F0E9 + 2B43677124DC80ACA6F9A8064CAD851870FACA3D8605EB0F32880AF13104B998 + 325CBAF588E1F885DB60B9FAAC600631613E303BBB19CD80C935096089BFC078 + 9FBE6237D8FF20202B21CC2022C8CB70FEFA0386681F6B060B0355B0786ECB02 + 540326410D00019018280DFC03D2E2C2FC0CBFFFFC65F8F1F317382AD9D958C1 + 6AF2D00D98588D30801890DF8A66004599891200004F1B09F0A5CD4E56000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Display preferences window' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000034A4944415478DA75937B6813 + 5914C6BF3B9999A45393A64DD32A71D7B59B55DBDAADB8B8A0A2B8AE755DA5DA + A6A8E063FB1065B1FFA5A2A88BF6AF55B091F886FA4A9405F1D10A51D627BBAB + 527C94AAA116432D6B6BB59BD86D6293F4313399F166C44AA11E18E6C09CFBCD + 39BFEF1E82CF4459B973A70A529BCCE9BBA6D15B7770AC3AF23129DE542BF052 + BF43E4C8355FBDABD75151D371C2BD3B67785842F5B6DFFD0D1E5761E9FA2D59 + 0CAB2C16395383AFBE76604420799813A33717CEFB7ECEDDFB2D114992DF7E57 + 98F74D75D56AC40787B0D77D12DDFF85DA58869968B1649842A1DE7B26622CF2 + 786A873481D272E72F3FCC9DE5AD5A5B82017A800A80E558043A5E6348146136 + A6A2BDA30BB2AA80E7F4B871FB1F44A2EF8A1B4FEFBFF24180B626087CE0C09E + AD66514AA0D9DF8EF0BB1832334C90E48496F35450C73078130CA1A9E941EF30 + A7E626471D61E028AF693FB26F87BDD9FF0269A65498E9138E44B50E864519B1 + F8105455C5CBCE6E343F7ED2D6E871E56B0CCA2A9C4E0564C3B7B9F6BC5F2B57 + E3FA9D16CC9CFE35FEBAFB10779A1EC508015358902FD86C36A4A719299341DC + BCF537A2B1B89F10729CD03F4BC7DDBB281F06AD812EADC0C07338547F362672 + EA648348B913B5E3C7850B8409D60CF03C8B64ADAA2470E2CC795113385AB793 + A57CF0EC45174451A2BE2B3875E64224A1CA9313BC8EE525D2B96C4991601B9F + 092EC942C750FB54B88F79A940E596ED50D42A7BCE97F6B29225F8F75510A906 + 3D1EB5F8D1F63C10A663EB72A74D314DCF9B8AFC299310E98FE3DC451F7A826F + 9F139053A320AE722CB573BC018AA2201A1FD42CD5731C8C4601E3ADE9C8B298 + D1D9DD837AEFF94F103FDAA8E34860F9CF8BCCBCC100839E07C7B29065192929 + 7AD8B22D5ADB6F827D4831B0701DF68464459A7AD9E38E68026595CE75D9D6AC + B3F3E7CD4630F4BF66DD571327805E3A4D2C1903038348378D43467A1AFEB8E0 + C3D3D640E9258FEBF2A8AB9C996999D3D717EEA72384B3AD964925C53F41A01D + 5DF2FD89AE573D9D54CC3AA3609A70BFD9DF24F1C6A2E43E8C3058B979F33825 + 9EB2865195ABF939693DFE97D1F6EA8D6B73F494FAFE23DED606AFAB6045A5F3 + 0B564591C89BCE8D5AA6B1C251E1DC4D3FEFFAB0B3E4B786D3757BC6AA7B0FDB + 2F6D8C6D24794C0000000049454E44AE426082} + end> + Left = 32 + Top = 296 + Bitmap = {} + end + object ButtonImages: TImageList + Left = 32 + Top = 224 + Bitmap = { + 494C010102000400480010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000001000000001002000000000000010 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -12058,4 +12526,2068 @@ object GlyphsModule: TGlyphsModule FFFFFFFF00000000FFFFFFFF0000000000000000000000000000000000000000 000000000000} end + object DialogImages: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'Keep remote directory up to date' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005264944415478DA + C5967D6C13651CC7BF77BDBEB0B673EF6C6E63606061B8CCA863E090B020AF63 + C0103441A251FE81C88BC698983930460946FF2246C0098C11200E362002465E + C68B62787548189B0319030ABAADD075B4DD6EBDEB3D3E776BBBB5D7BAB560FC + 3597E779EEAECFF7F3FB3DCFDDF718FCCFC1F83A3F7C9EF90DC3302B826F2084 + 6C9CBFD6B2F23F0538F859C694B8F4ECD393DFDE4D479A01973D3853B504F6FB + 378AE67D72EFE7272198BADE942C11C27694BBDAFB01D68D68CC9B39775C4266 + 96EA0F36CB1D5C3D7A28EC845D9070851151CF888EDB8CC7464FA5D1693B69DB + 4AAB775222F8DE52DE794DBE376B5D4221AB658E4912E9BC5366CB1C0840A6BD + 333DA24CBA45119BAF3663D7F55BD0C71B109B64428C290606BD018CC440E03D + 70743AD176BF8308BD42AD443C7B590D57555830D178F6FC39DC2EB331010091 + 88DB69D6DFB13C6C493A248D8C534439560B2D3D389653FABE314B7FF7EEFE85 + 969BB750903F1E196919A83950AB06985BF6DB90C49D6E174A762C80DD6883CE + A0056FEF85BB4704CBB2300CD323293511492949D07921382F945C15836E9832 + AEDE5FAD0628F9E8349C0FF779654850DBDF5F55B70F171C1678DC12B26312F1 + 6A761EC62624E3C2C103D8C0742F67C12C35C7990A729F7B1666A35911D76A02 + 6176D7EE5603147F7818DDF6C3F44478F14B6D162C3D520B1DA7C1DA0953513A + 3AC77FC7A96D9598B7E6AE32DF88F571AB6935364C9A54C89862CC014B23F777 + D4EC5003CCFEA01A7CD7B1B0E272DBDAD58995277EC4D2DCE7B1283B0703E3E4 + B69D7E0079B73374B74F9C50604C4B490BDA171C2AF754AA0166BD5701B7F3D7 + 90C2832D8BDC9EDCB6470118B12EFE6556CB1E199FFF82313D353DA0F472F61A + DA6EADDEA20698B9EA2B08DD97FB27256A51268CB81C272AF763B5E6D12896D3 + 5E1B9FFFA2313565B84A5CEECB111AE0DD8F21F2CD5157E044E56105804E7991 + 1EC9833D4D2A8019CB96C323DC0F29A6644EC28BCB51B7FDA87F0F44127E8049 + 73264372DB43080C6D7CEE78D3E301CC5A511E947538E1BE734DBF1CC39D86CB + EA2B11BAA70F40368FB848C8E3D246E349B867C425F302FF41DD736C34EE3940 + B97E5EF9DDFC68012276CFE0A8DB7E5CD9337E808A58F3E08E48885512C482F4 + 3529AD8FA5EE0D15C082D74BFA7404111004A555FAD4FBAD0F6CB8D4DCE272F3 + BDB932C050DD335C1CFA223F3400113D7DE25494B8FBC4DB3B1EF4894BC28C15 + 8E9EB391B867A86BF27BE5D4D68A10000B8B69C6823F6BB9B55A1FE27CD39F5D + 822414CBE2F2BDA1DCB365EF15346DB98029150B11FB4C825A3CE845E673CF00 + 80D2D2990A00BCA597FBBCAB1B671A9A092F8AEF2F7BE4FCDA0730D03D5B6A1B + F0FBA7751005095377BE8694820CFCBB8FF4BB672040C92B01EBEEAB468FAB07 + F5AD1674F1FC452291AAC425E64D2FBD5106EBE53ADCAC6984BBD10A039D435F + 341253BE9D33A465F1B96700C0FC59458AA0C0F3E008F16E466F35DC6EB43F72 + E06F870B2EB720BFF160A47F4F6619747B24B4A71B317BFF42684D3A0CD53DD5 + 00D327A3ADCD8AFAC61B18F3F4708C4A8CA7DF7252E01321F457A697825CEFA5 + DF84E31250B4691A86A5C42012F754014CC8CBC1A586669728913759862C3668 + B84599F1B14CA25EAF64CBD14C792AE8A0D5E8E0E9C1128C796B2CF256E64163 + E0108D7BF603984D16FA651BEF7BD4E4739B4DA65C5AE1C504CC543A29F57A3C + 058669D7677159E34A739056688421411722D3C1C73EF7F4036C301A87B30C23 + AD763AAD1824A271CFE06B3F6DFC3210209288C63D43849D02C44705F024E31F + 98FCF43F23A55F110000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open console window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000026C4944415478DA + 63641860C038EA0010C1635A7007C852A6ABCDFF19EE7E393D4105E200B382FF + DD1D2D74B5BFB4A286E1CBA9098C70078467D4D3D5012B6734A23AC0C4B780AE + 0E38B37902AA0354ACC2E9EA803BC756221C20A2E5F15F454397BE0EB87199E1 + CDB51D1007C828AAFF37B6F1A0AB03CE1ED9C1F0E4FE4D84030C2C5DE8EA800B + C7F7A03A40CFD481AE0EB874FA00AA03B48D6CE9EA80ABE70EA33A4043DF92AE + 0EB871F138AA0354754CE9EA80DB574EA33A4059D390AE0EB87BFD3CAA031454 + 21E5404156128389911EC3F4394B188E9E384333073CB87D19D501B24A9A6089 + BA8A7C060F1707307BF7FEC30C7D53E6307CFCF889EA0E787CEF3AAA03A4E5D5 + C0128C40A1D0401F86ECB43806767676862F5FBE32F44F99CDB075E73EAA3AE0 + E9C35BA80E9090514251202529CE50599CCB60616604E69F3E7B81A1A56B22C3 + B3E72FA9E280174FEEA13A4054520EAB425F4F5786DA8A420616161686B7EFDE + 33B8FA52A7D27AFDFC11AA038444A53014A9282B32D4579530E8E940D2C7A6AD + 3B196A9B3AA9E28077AF9FA13A4040480C2EC9CACAC2909614C790921803F6F9 + ABD76F18DABA2630ECDD7F882A9683C08777AF501DC0CB2F0496D0D6D260686B + AA6150555662F8FFFF3FC3EA751B19BAFBA7327CFDFA956A9683C0E78FEF501D + C0C5C3079658BD6C0130C8B518EE3F78C850D3D0CA70E6DC05AA5A0C03DFBE7C + 4275003B271758C2CCC4984153438D61C5AAB50C3F7FFDA289E520F0F3FB3754 + 07B0B2B2D3CC326CE0F7EF9FA80E606262A6AB03FEFDFB8B7080B4A2FA6B2043 + 849E0EF8CFC0F0E6E9FD9BA29046A988082F13132F177D43E0F3B7376FDE7C1E + 1C7DC3810400991C0D304C609BA40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download File' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D74944415478DAC5D56B4C53 + 671807F07F11863291103538E736E732B3B9E987ED8BD958001D9782C8401810 + 6460D8C08113B91890DB1893388C324569B938862124CC2C614EC5BB736AD065 + C93E8C21968BD072B117A057A0A53DE75D7B0EAD143AD3034B7C92E63D3D79CF + 797EE739EFF31E1E2104CF337816008FC7E3745176ED6F5CD5F7F426F0051901 + BAFF0D703CD51FCE14CF32E5DC1D11FE1449DBF526123C17B12800453B5788DB + 7F0F42A935E07ED7C83CC4A20046CA39409764140AF5940DA10389A84B0B185D + 3020ABE616A94C0B80DE48235770E599738FA58740A59D825C3DC920C6B57ADC + 7F38D231A1D36DABCB0D1F5D10E080E006F9FECBED989CA69D9AEFEE0A2854B3 + 101A3DDA3B073B4FA47FFCEE8200FB4F5F25273382A03350C8AFB9FACCB9DFED + 0D46BF548DBB1D83D04C1A6CE79F2854A8DA17CC5B1060DFC9CBE4D4FE1068A6 + 28A7AFB1AC57894C0D8942633E26B8FE8708A733F92C20A7EE36A7BEA6691A15 + 9FFB995F014151FD354EF8B29440E8A6A651D1FC3B0459614F015CFB5AA19AC4 + A7FEEFC0CDD58513C01A45B59721CCD9690FE0DAD783A35AF44964332CE7A234 + 258805D45C42EDC14FEC010BE96BB15C835D7E9BB0EC05574E1528AEB988FABC + 281660D95816D3D7ED9D43304E9B57B813EFB0303990194B04E771A620860564 + 096F2EBAAFBB87C6911CFA9EC3F9FD4A110EB6EDC6C6559B5116580B57173794 + 54FF8286A2581690597D8D535F8BCDED74C7DCD7EA09FBBEA64CA679F3B56418 + 0F0C87E1F9BA0BF49A696CF1F045795003CA8417D05812CF02BEAABAB2A0BE1E + 34F7F4804CC554DED2D7B9090176730694DDC8BC1805D7B5145E5CB51496C53A + F65883CD1E1FC2AD67079A4A935840C68936527D2014AA4913A7BEBE6B2882D7 + 0A1754F25BF0636B3766EF67D627F77EC39D494E139AF95911EEB20DF8CB74CF + 9D01A4575E20D5D9E1504E989C4E6E89F74FF9E0B5375F81414AE32D7D360A13 + E398F3625537B2DB7661F9AB6EF05CEDC16C5C2C806246029A41E846F5AD0C60 + EFB1F3449013817133A0F407E72B70692A11BE815B31343002698F0E1F2C2D81 + 097A3C983E8C351B57C06BB527A85989ADA3E59C4E316146A8250C20F5682B11 + E646625467E45481AD8235F00BF2656E3C281EC6C4B009065A8F95EB97C3DBC7 + 8B4D46DB27B78C2A8516CA1E03A64D93ECD7F08B233F13615E34145A23CA1BAF + 73AAC0B6103FF6C6348B58E2B6042B7DBC6DC9285B62F6BF52AEC68484C27A79 + 127E3D52CC2EC294F27344981FC300B8846FCD4B08E46FB77B3A8AD0F39E98A2 + D9714CA68454A4C6264D1A96513EF8E9682A0BD8F36D0BA939140BB9C6888AA6 + 1B9C2A10121634B3C8ACEF776EC9D96385740CFD5D923162E4F9494AC63BADF7 + 6000C9DF341361413C03E012FEF56B11B6836F97681EC28C933D91A3F761FFBC + E436C0675F37116161020338DE7C935305227686B365A7298708E988148FFEE9 + 7198DC06D85D7496088B1221336F955C22B0E1654445443A283B656B3F71BF04 + 7DA2C712F3B7EAA39152A5C42120A1A081088A93CC0023AA5A6E71AA404C64F4 + AC5673FC1A2C885E519F43040388CF3F430425C90C804BF01BD7212E2AF63F37 + 1BEB1AB08C030CA2771E8201C4E5D593EAE23D90736CC3D0B3EB90109D604BF4 + 1442CD41591162743FEAED151B946FA314263B00A7CC33D1E92984CE55CCF12A + D2317048B9C5AE02CF33FE0551172BB9810373900000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D14944415478DAC5D77B5054 + 551C07F0EFC2020D46C414218666A5BCA6FAC77F9C661B04E225298361E21002 + CB082493163A2312984D63AF41F3112C461A8E220F9D61ACA948B21C4126FB33 + E2FD5E026117D807FBBA7BF7DE137B97DD0576A37BA3C9DFCCCED9BD73EEF97D + CEEFDE73CF5D1121040F3344568048241274D2C58B3502D5A276934997505858 + A8FBCF005269161886E1D5BFBF7F10EDEDBFBA45AC0A60B15878F5D7EB0D5028 + 94686DBDE782F85F00346D81D96C5E40B4FD66B150C9F9F9F9D3AB06D0348DAE + AE9E15FB464686C3D3D31314655E8CE89847C45811AB025807E413DEDEDE6059 + 7609A2ADADAD532ACD7E61D580EEEEDE15FB464484B93D7EF56A1D7273B345AB + 02501425E8BCC5515B5BEF041CFEF28EA075ED2BA25096F32A58C682DE9E3E41 + 89C3C243B9F6DA72C0A9BC6DE0F350B47669BCDB0BA5DA807DB161F0167BFCAB + 0AD45D6B7005302CBF42DCF97D0CAA390AE3D35A48367A41ECC1FF1286866EB2 + 01EA1A5D0134C30FD02D9F865263E410634A0D3263C2E0EB23165481FAC580A2 + 0BBF90D3F9D130D12C8E5436AF7862F98144A8E78C50680C1C6276CE849E9129 + 2444FAC347FCCF95D8B4F979AE6DA8BFEE04BC2BBB4D3E7F2B160633CB4B6F9D + AC52BD08A13561607C060777BEE4B6FFE06C1F0ABEC942E4532FA23CB1025E1E + 5E6868B8E1041CAAB845CE16C643473128AEFA71C5E49F142460744A83BB1D63 + D0E89DCBF081520DA924D8A5FF986E0425F70FC13B84C0A43563CBA32FE34C72 + 359AAEDF7402DE3ED74CCE1F4C84D6C86F77B386F57E1D536A3132A5E6564FCB + FD5E7C2495B8CC3CA7E90D7806B358F3E423B0AEA199212D8790189290979B6B + 03149EF99E54BCB31D6A8305A5D5B778235AA952F83FE681D349F5F8BAA90F79 + D1EB5D66EEBB41CC256709CB7DEC887573CFA2457BCF87031C38FD2DA928DA01 + 959EDFEE668F2DE783F0CCE6F5A02659849B8A7036EFF58599F7433A3F73DF0D + DEF00BF4E5F6011B80E15A029643E8A64D4D1CA0A0FC26A93C9C82D97940D985 + 1F78039AE96C48E2B6E2CF91094CF6EBF04574158C160337F380E7D6C03FD00F + CCA2C4F6D67A4CA7D4CF2334720E90F75913911D49C5B48E165481AD956B1115 + 2FE1061E1B1D8769C202136344C0463F0404F9DB92B14B935B5BB5720EBA2133 + F494DEB61BEEFFF806911D4D83728EC6C99A16DE80EF8C9988498CB20DCCDA10 + 9E5E9E782228C0918C7124B6FD56293430CA2D48F7DD8FE2FC62DB4D987BB291 + C88A7773002121A90A465C52EC92D93184759931C3DADA99291566FAB5C87ABC + 1081E2B5CE6598F3613DA93AB6070A2D8D4FAFFC24A80289C9F10B3799FDFA2E + 2FB9EDBB727206C3DDF219428BA2E4C7673BED637080EC0F6A89AC642F071012 + DBAAD721F9B5A425895C10F3B8A9070A0C740DBB247700F6BD7F85C8DECBE000 + A76A6F0BAA40CACE1DB6B2B38C5BC4E4C4247AFEE8779BDC0178B3F432919566 + 624ACBEF1DCF1E71979EC6AE94543765671CCB6F74588EC1DE21B999C22B1327 + 5472B7808C924BA4B22C6B1E40E35CFDCF822AB03B356DD152737F19AC8881DE + 41B7080EB0B7F82B52793C9B030889A49A10A4EFDAF3B70F1BFB3D606D4738C4 + 800B8203A41FAD2615653950085C86DB2F8720232DC391C8096196A1EC8851F4 + F50C0C8C52AA089C8065094050E685E8F49341271E157816E91839A672BC3888 + 1EF6DFF3BF004F2B04B9AF11C53F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000047D4944415478DAC5D76B4C5B + 651807F07F1963D3E816266350C265462626FB60FCE43787865D8C0BCE807341 + 270B719B63306E196C5C44E7C42130B7415B6033B28548706EDC6F63938961E2 + 251A11583B270E22D01B85B6B4859EF6F5F47E0AD8F5ED3EF8246D4FDF9C739E + 5FDF9CFF7B7A788410FC9FC5B300783C1ED54159D5DFD2AABF3730D825488DD5 + 7207ADBD7D05941FDC066F26CFB24BE37762FC249E1E3030640717F1C80093D9 + BB89E8FB7D022ACD02EE8C4EBA211E1960347907181D57403EA77722B420F135 + 8762153E033245B748C5A158188C66E408BA3CEE5B76642766357AC8E67456C4 + 8CC6803B239343F35AEDCBD5D9AF297C0264087AC9D9F75F816ED1ECD5FE6BFC + 01F92C07A13660607862983DC7569F00E995DDE45CEA7668174CC813757BDCF7 + D3C33B30363D87FEA109A8750BCEF129F92CD873F07C021C3DD7492EA4EF845A + 6FF2FA18CBF53A2E9DC3B85CCD6E13DC1814833D870D905DD347956B834E87AA + 8C5731AB635050DB4385FF28250E5AFD22CED4DFB69CC305A0C9F5D1B3ADA8CA + DA0DD53C43D59C5B05D59D1064ED7607789BEBD48A1608B2E331C3028A2FD1CD + 4071CA761B40D40E514EBC3BC0DB5CA796374198B3070AADD1E7192814B5A1E6 + F81E1BC0B2B0D0E43AADEC1A84B909906B8C38FDE50DAAC6F9C971D6CF224133 + 6A4F24D80099C29B54B94EFBEC2A8479895680AF5554D5844BF96FDA00C7AA7A + A8729D56FA354427F642A636E2CC955EF48F1AD98CD3DD20D73F66C66FD56FD8 + 0069E7BBA8729D5EDA00E1C97D5680E5C2DD5FD28FC7374420326A33FCD825C5 + 8F7DB3AC2D7ED6177BCFF7E36CDBD79C6FAE3761ECF2EB3640EAE71D8426D7EA + 192584F949564079FD4DE8170906C40CC2A362BC46B8018E54B4129A5CA797D4 + 4358F00EA4EA45E7986CD680CCCA41AC0F8EF20A71ADA9D905385CD64C6872AD + 924E4350F82E0B30E27CC32DE738CD4C34357300074BAF139A5C677C52074151 + B215C0AD07522D72AB7F063FF259F0F961F6C62B235A5A5A5C80F74AAE129A5C + 2B26FF4155E101C838311C679B1F679B87466C41486818DB14D686FF85686D6B + 7501524E37129A5C6797D4B97DD733FE1851066273F4566C0AE5BB1A7B40B4B7 + 7300074E35106EAE696A6FDC8B48BB3088A0B068046F0A05CFDEE86188CE8E36 + 1720F9C37AE2C8354DFD3DADC5B1CA1FB181FF0C828243ECD3CB5B86904927C1 + 188D6E17665767BB0BB0FF832B849B6B6F4AA327F841624248640C823686D87F + 199621E4D229DC1D1D52B223F3D15B62221C889EEE0E17E0ED823AB234D70FAB + A48F6F232030124FB1CD9D17D7128442360589F80F25614C2F318C5913B036A0 + DF81E8EDE100924E7E4156CAB5A7FAE53E03FDAA8D087FFA39ACB2AF6E5CC48C + 5C8A3F25B6E6E35F250C5B8EE12736463810F724A32EC0BEBC8B64A55C7B2A86 + FDEF70EAF2AF10CBFC9621544A29FEBA37ECD6DC5156C49AD5BDE041C7029EB7 + 02DECAAD254B734D8390C85D0895528607F747566CEEAC6DC5FEE82B669C0F26 + 160055674E11C28344B50EE489703CB92E101363773D37773BD6C727A36595D8 + 1810B5767523BBF5829931EDF2A6B903F02FA84B16EEA2F48786000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Upload File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004904944415478DAC5D7FB4F53 + 671807F06F19A29BDB1C53B994C8EA32108C3F2CFB07265B147721EA02DB1C77 + C9C64467048953B984992DE2263836698B44B3B9E906DB18B78220734436A651 + 1723D2D272A719D096722985DE4E7B767A68CB398595D3FAC39E84D29E9CF7FD + 7EFAE43DEFE9E1912489FFB37876008FC7F36A504EC5EFDEAAFF3012784D7830 + 46CF3C4867FB0A28F9603BB834CF7E4AF54D39EEC8C73B8D0419CB443C32C06A + E3D688F6074A4CCD9AF0976C9485786480C5CA0D201B998066C6B08090FE734B + CF43DC85CC98099F01D9E21B6469660C8C161B7285D73C9E7B366B17A6670D50 + CFCCD388C959238518ED9AD3EB5FA938FAE6844F8023C236F2DC8157316FB671 + 3A7FB53FA0996620744674762BBBA939B6F904387CBE852C3BB8137A9315C7C5 + 2D1ECF2DFE3016C3AA19DCEC526266CEE43A3EA699063507CF27C0A1B266F2EB + C3BBA03358398FB1AF57A54647636C54E6F5DB7250732C002E5DFAD6ABEBFA9E + 6E23CA8FBC8EE97902F995AD5EE14F65EC80DE68C199EFDBED732C02F6EF4F85 + D5CAED1B7D54D684F29C384CCD115E85332BBFA219C29C38368020B84D78E84B + 09844777639202145DF4AE0345193B17006209C4B9BB7D036495364094BB1713 + 7A8BCF1D281037E2C2B1BD6C80C5628154DAE371E0D6AD51C83A5B07D1C7F1D0 + CC5AF0D937D7BD0ACE4BDB41FF2F14D6A1F2443C1B60369B394D72E08B5A888E + 27D0005FABB0BC1617F3DE5E0A90C9E41E0746476F41E6991A884FBC03B58E5A + CDDFB5A1436AA12E49EF6E90EB1EB7E17EC55B6C80C964E23438B3F867884EEE + A301F61B52CAE90E3CF16C389E136C861FB5A5F8512FF6BDC58FFEA3EEF97E8C + F78E3DE7975F6B3178790F1B60A400F21EC58A80929AFB10E525D280922BBFC1 + 6026D12927B04910C519B12CC0603472EAC0FB9F5641949F0C956E71CDA8A78D + C83E7F1BEB82049C1035B5756C407A7A0A8C1440A1E85B11F079D51D080B5229 + 80055FFD78C375DC9B4ED4D62D03E0DA818C4FAE40589846039835ACD2E398F8 + 2EC2045BC0E78739829747D4D7D7B301697680C180BEDEFE1501A7AFDE427941 + 3AD48CCB70C41E5E7117A1E19108090DA3424107FE17A2A1B1C10D90964C0338 + 75E0D455D66703E10FA936109B23B6213894BF18EC012191B801521D80FEBE01 + 4E0857AD0D465AE93DACE747202838143C47D04A88E6A64637406A12E63976C0 + 59FD6373483FF73702435FC086A010477B794B106AD528086A9B672ECC6BCD12 + 3620252591EEC0C0C010A770A5D68C93556308E44762C3C610C737C312844635 + 861E5997963A3217111915EE44B4B634B101C90E00D78ACDFF13FECF08B09E0A + 772D2E37C4847A0C0AF9432D49585F2608DB6CC09A800E27A2ADD50D9094FC1E + 0D181A1CE60428AE1F876CF2496C7A3E1A8F397637266252A3429F62217CE487 + F86EFB187E4275B813D1AB90B90192F679D501827A26C8AEECC28371FF258829 + AD0A03BDDDAC7067D188D5ABDA481EF44397F7BCE4022426BECB7923622272DC + 10535A3586FBA5CB86BB6A7B913FDA8B08D78389B73F4A99657F38FAE9E15AA8 + 1186A79E0E8472B0C77338A37C7E325A5209D5018235ABAAA9772FDA08EB1B5C + C29D807F01CBAF16EEEA4161720000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Duplicate' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000049E4944415478DAC5967B5054 + 6518C69FC3EEC2CA94525363E384E4944D2356F607FD2153132A1733626CD428 + 638448E5625A402179838094C60B22EC721947A7A48C9CD2B432C011C116A919 + A25D6105474D98B82D03ECEED91B7BF93AE7ACECECBA17CE2ECDF8CEEC7C3BE7 + 9CF7797FDF7BBEEFF90E4508C1830C8A05C8AD6DF197E2AAD182D592EC187A36 + C5D9DA0E80435B5E039F66B08F34B4F6E2CFDE6199D142E26703E10660B5F16B + 448B7C00135A13DA9583B3827003305BF90128FBC7A0521BEC103DFF5EA32924 + D66E8D190B1820A7E63239BC350646B30D79928B3E930E662560526BC0A85ACF + 418C6B8D0CC4A04247D32B6AF312FD8270007C2CBD448E64AE847ECAC62B3144 + 08A8269D203446C8BA07BACBB3562D0D0860475523399A1D07DA64C5CEEADF7C + 261DC888C7DD11355A150350EB4C8EEB43AA49546C8BA70202F8B0E22239B63D + 011A83957732BB5E07541A0EC6C6683475F4A272C7EAC000B2CB7F21551FBD8E + 49BD05BBEB1A677E057342FDA9C38647DF7000641D3E4FAA721231A1B3F0522B + ADBF8AFFC3371C001907CF11496E12C61980C2E3DE3B10A52F87104628C3B6A1 + 2473839FBEC1EC16E5900B840360CB973F1269DE5A8CD1669F427F543C83C8E8 + 455074A8109D5C8B79E1CB7901387C83667D63504674C6C4233909E30E80CDFB + CF1069FE3AA8B466949E6CF22A14AFCD445CDACB181F364071E526162DCFC7D1 + 8E277C16BFDF37D84EC8EEF9464DEE1B631C407A690391EE5CCF01F88ACECAC5 + 1C008108069D155D4DD731377C0D9E8B2B061524F29AE7CD3718EF59CA01A415 + 9F26D5056F63546346D9D7CD33768005002582C51284EED61EF40D84E2AF3919 + 98A21E76CB617DE3CEB01A6D8C6F68F4AEBEC1780FC501A416D513E967EF7000 + BE422E7DD605C03E0A71ABF336866EA911F9660D1E9AFFBCC75C76BDF6339ED1 + CF78C7B46F30DE63073851FC2A798CBACB6B41B901303FC2FC57FD3302799B1C + 5D82F730227CC96BFEE7E9B1A00D5328ABBF02C67BEC00E74B22C89A14A19330 + F3D210CC094F17E0469799BB02B0A3768286BCB10D8F2FD98485D139CC35EFC6 + B8BBE6574872129D01048C60B013002B1CEC5440E874DF33003B4E996CE86E6E + 45AF6A3EE4E25458A91097C285E9717680EA9F519D97743F002B1CEC042072EA + 84D0E9BEF74EB1F7884D803ED93568D4622C59FFBDC70EECA9BE80DA4FD77A02 + F034B3602700D18C9DB2D984E86BEFC08D3E1AEDA1052E8577A5C672E35EC939 + D415ACE30BE0690D78EE949939D2AF5F6A031147E2A9D8430812793EB8F6569D + C5F15D1B6603E0FE1C3DA9E716618F291A7D21491E17617ECAAA7B003FE0C49E + 643BC0859288DF996DCACBD8E3D2A2BC6CC35128650A2C78653FE63D9D30A3CE + BECA3338B96FA31D80A2F87D47FC54BC90B8030871BBEB0E945D23E814674023 + 88F0A991BB71A51DE05803BE2A4A991DC0B415D3860578325E0281F8515E3A6C + 14567C8753259B020730EA99C3A8B91B37342FA047FC2E6C10F0D2D89EBC821B + 8B8E7E83FA2FDE0F0C607C580F45CB4DCC5DF609C2225378CFDA398ACAEBF1ED + 810FFC07888C8EC0DFB211BCF8561D4C61510115B7039CC2E9B2CDFE02845FA6 + 40859DD5652FA36D8F045C7C3A1C000F32FE03D8731EEE9F866BF30000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Move To' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004474944415478DA + C5D67D6C13651C07F06FD717C622323546832F93F887639D9290E01F6C263219 + 05A7684814908D755D64931A8D616606C740D0E08C28439C6E8AC1BD30304A44 + 8D2684E15867598D616EA55B5F3705A25B3BE7B65EDFDB3BEFDAADBBB3D7F5DA + 627C92F669EEFAFBFD3EF7CBF33CAD08FFF310316FC78F9FA0920CD37ABD8442 + AD5613370CA0529523140A090AB2586CD06AFB6E08820308068382825C2E37EC + 7607349A9FD246A404080482F0FBFDB388DE5F8241DFC6AAAAAA89B401814000 + 4343C60503F2F27221168BE1F3F9D9083D8D284A05C1013009850C994C069224 + 3988DEDE5E834AA5CC4F0BE0A39319874D0B06E4AE7880F77A477B272A2B95A2 + F4003E5FB2F1F3808E53E903BC5E2F4C264BC2A056DD5FC996D17A8394A249BD + 3666B770001E1A2064D4B5F6E1F0CE47410938BE98AF5C365E47A7C6C68B8802 + 2A2A76843B60365BE326B35FDA0332E08246528D375F78162152D8014A389D18 + 1D77A2ADDB1A83E0003C1ECF8289BADE5B0179C172E8750E146C6DC1D27BD608 + 0204FDBEF06E19A111ED17AD3F131455D252B576820350CE02ACF4311B6F5CFD + F609ACAF781893631EE82F5AB07C4D2D1A75772E58FCDD5D1B201323BA651944 + DB8F16BD8B208A5A6A9E9C980728CB1276E0C2FB7961000529BC6E12BF9EBF82 + 25773D8EDCF50721CA90C68DCB926570CE0DDB9813AD178C86C65DEBF2A380F2 + F2D230C0661B4DD801060091943EBA3360E81982F95A16FA1757C32F5A1213F3 + 76B502BF8F4FA3477F0DD3AEF96DFEA7630A475F5488380077820E741F917300 + 91598291FE51FC619D827C53336EBAE341DE5866BD5E77CC843124BD7DCEE94C + 38F6F2C608E0AB86424AEABF2A6841C500E817457F76FC368E41CD2006C4DB31 + 26591537FE406531086F000DEDDD687AA52402F8E6E0BD544999849558425F95 + 8513CF1508CF9C27E7029899987261F09C06B7E59622A7B006B36B9C77D435FF + 808F766F6203C47442190BC02496B10A4858F7F901CCECF79130746960B2DF8E + C1CC0A84448B3885F7A98AC3F3DEE6EFD1FCEAD3FF063089652C8094D50909EB + 7EFC4E31F728520CF3251DA62725906F39C3DB81BD1F7F874F6A37F301F89E4C + C6024813768A2425306BFB306C71A32FEB354EE1D795910ED4379DC5A77B9E11 + 0AE05B03FC9D0AF842B872BE07D4E27CDC577C1819D22CDE0ED47FF8353EABDB + 920E20F67BCEBF238B70D85F08F3A2A77817616DD9BA59C0199CA8DF160568E8 + A950D8365C1D671BDA31ACD563D92387B0F4FE0D09F3EC3BF6253EDF5F2A4AEA + 0F04D3A9588004B6FE111807ECB89C598D1971CE8239766F7F2C02F8E00BB41D + D8911E60EE28263CCB70B7A209E2CC5B05E7DA7FF4343ADE52A60EF0BA43F48F + 9101C699873094F91C488805E578696B5104D078129D872A53034C8EB9E99F63 + 2B6E5E59836C79593229A2E38D231D38D5F07CF20079410E06B476ACDCDC025F + F6EA948A4700ED38FDCECEA4015DF4947DD6A55E4590B7A45C7C6E240DF82FC6 + 3FB7028D3FB5177BD70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Synchronize directories' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000046C4944415478DA + C5976B4C5B6518C7FFA7E59C52182BB04D7013C6458C93CD08CCCB30664ED45D + 645354B6C907C9369619E7E6DC2D613252CD123E4CBF1862B238C04B82D33AE6 + 50674CB83814878E010B53B38D4BA148B8AC85B6B43D97B6C7776D6D8A6D4FCB + 2CF1499AF3F63D4F9FFFEFB99C4B29FCCF46FDB3A853237A51544A2BD97A2CB0 + ABD8A1B7EBD6ED50839D1780C6132927EF5F5B7A382B7F7F40C7BE8E6AFCD95A + F7DE960ADD9188037CFDEE3D8F2A62622E3D5CBC9BA2A395011D05D686CEAF4E + 8BACC5B2E685CA915F230A40B2EFCD2ED8B072497AA6A4F32D6D3FAE35FD7087 + 526207A9DE9A2000A962C1CEA2482515D09A6BCF614BC530F5EF7D2FC0932FAE + 9A57801F1B7AA501E655DD6392009BCB3BE755FC9BAAD5D20085479B6031683C + DBBE0509B6F67C1743F9B9D7AD351F4B033C77E43B58A71AC20E1814C81B78F6 + B9969ACFA401361D3A0BDB7463D801E70AD952F379088083F5608D17EE287838 + 2D69A9D548036C3C5003CEDCE42F10A22594441B7CD7CDB50DD2001BDEAC066F + BE1876C0B9CE45736D6308807D2721587E093B60A0F5D5C95B38DFAF45D7F824 + 0C1C0B19099F95A04241EA3224B45FC701A765A58C165BC9AF8C43E55359B301 + DE780782B533A490B7423EADB1DAED78BBFD329AC646119F1C0755E24228C943 + 8D9631E02C3CF46306B0E37A9844E7645EEEEA2557BAAE405B6EA06603BC7E14 + 76DBB53997D96A1750F2FD458CD202544971107940412BA022992B192518B982 + 7C18584C36F02C8F8CD40C7C794EE30FB0FEB5BD707037C368C1ECBD436D97D1 + A29F746D2D46145624AA60E40474EBA7B0347529EEBD2F130A79B40B8296B961 + EACFD6FB033CBB67079CFC30824FB8FFBADF6846E1F936D05114D48FAC4251E6 + 32EF1BCE8495C55B3FF5604211839C87723C008CAB229F6A3EF1077862F353B0 + B3A31259FBEFDB4511EFDFD0213761019EB92B6196DF8085C59EEE9B58FE4036 + 329667785B711BA2F68B1A7F804DFB2A213AD9308443C39979164F9FA9460A29 + 7F7A6ABA5BD80320A7E4387DE6237F80FCF52B407A80E0163E84C9EEC02BBFF5 + 619C158246F303D8B8F7607819FA9CCE3A7522A8C0DD0BE2F0EDCB655029DCEF + 98173EFC40F24664228738CCD1F6CB6750B67D371CA203BC8387E0E05C47ED88 + 167D3DBD382E28A1F48CA5288A33CF1FD7F969507315F5B5B4AA4471D7B65DE0 + 49EB6E0BF304606068003D3D57F5A240AD1DAE34FCEEEB9F5295B84D268A8F0F + F15387A1061F1180578B4B5DC28207A2BBA71B3ADDC8CF0E07BB7DA4C2F697CB + 510D591A135F4AC9A953A293A29D229F3D7C6CE68F880094BC54E22EBFD35D7E + 8EC0F4DDE8C3B0768474466C03454D93FB490E13CBA4910B009C49D09001DC1A + B1166C2D2AC6A06E10B48246EC42A5B715AC60C3B4C1084EE04031E4E9336EC6 + CC84B5D7C24DE54FAA31133180BCDC3C747675EA49A64252D2E2E445C98950C4 + 32AE96D8C8BF29A3C18CE93113B9CD3B3516CEB0D3573C1200D7C97C2738056A + 9DDD69188C62E2CB64901592A80F92A9A709D41819FF7622533774CC7029508C + FF041009FB1B6A89633FF3D2CE710000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D34944415478DAC596794C14 + 7714C7BFB33B3BBB33BB2C2C8AD8864352511B6B09208B502A5A8CE921A835D4 + A407B5A94D6C9BB6F1F8078176132CA62569FA67934A454A9A5AEBC1519BB60A + 54889682B6F55853742B7BA8B41CCBBDC7ECEC741694EC3AB30B2C21BE64326F + 7EEF37BFF779C7EF3743F03C0F82203017595CA18921BDB224C8643478C24EB2 + F6AE6E039C0FCE4B38185DC8735EB7B574B0CEE7D72744B800B106CD221545BD + 27BCFA928C2496914A39081901AF8707EB64597889168E4095D535700C067813 + 2BA2F7D18CAAD2E9703ABB8B07E83901F81623E43044C4306A66A10A4AB562CA + A690519083847B8445DF6D3B4606C78C80F7479A66F6AEC9D2A3A5E91C040022 + 3C0003A8254A5D0DA5A1B62F7C2C12BEA8FD85942940C9A9098889BB708DF48F + C2FC8F0DE9ABD310A9D6A2BEA1317C802507A3AB699DF275B510F568AF032E21 + 4A9E13DE97014A0D85A8D8482C58AC8352AE0C80A0649377DFD889BA93E10124 + 5444BDA65092350A1509E788EB4FF0F8D4CD116D774A07AC8F1AC090A42E4F26 + C75E46CBE42E7B722934B4FA1E843200E2E889A3D200870D502D20E39B85A135 + 5200C5F251D641120ACEC31D32BB06DF16CAE19128912C91D295AB2398FDE999 + A9A029662A0BF73352FB7DAD3440FD81F8CA15B945FB92B33F90CCC09EDA425C + B96DBC7AC6DD9BE2EBEA500DAAA29595FAACD5D00A35F72F854FAFFEEEB018A0 + AE3C3E53C93017F4853B08858A1686278D93B7499D7539F0FBB123BC6BDC91B5 + E5435BBBB4F3A852B5465D9EA64F8596D14EA6DE2F7A5F931EFAF64B3140C3C7 + 095756E63DFF444C5232FC3C8BF4DE5B3770EDEC4F92915F2058D469E5C8C84C + 03A3528B76834FF7491080447EDDCE77433AF7D70989F17A931186B69FC17A83 + 56E7DE6CBECD5C6C7F5A026057D0C5A7D5F9E9E7345755A3A0D432B5DD4400EB + 77BE15F6E2A1F4FB0135557D1D1A60DD8EA28981AB679BD067B5619EE58FFC12 + 735A00C0DA97B78163DDE83CDD8A8DEF9F993FD7BC078D9F64B936EDEF560500 + E46C7B0E43BDFDB0F72BB1EAD93D700C354BA475A6E90F6E1BF9EF2E2ED69FEA + CC2FB164040064E7E7E2AEF0D188887B068F2C4F876BFC3266B30B660A78DB68 + C48DF3E7BFDA54627933002073A31EA62B262CCFDB0D46CBC1E3B6055F70568D + 19F87CFDD756F47499DEC82FB354070064E4AEC2D58E2E64177D267CBEBBE0E5 + 866614192172161AA6E3D4690CF70F641494583A0300D23297E2F2253336BCF3 + 05D8B173C236E1C24E73C0B35FB678E1906AA939CEF5B9CD9A1D1FF1CE0080E5 + 2B62D13FAE41FAE65D60C72F065D646659909E376A1F44FBC926A3701EAC149D + 03F1711120635390ACCF01E7BA19567DA7D37B4C365C6BB9F44D4199F5151180 + 4EAB40627601621274C28F656FD88E89108DFA77BB1156A379B79081CF450034 + 4520EDC522D09A31A109C7832E3297CC74FED081FE7FEDEBB796D95A4400BEBF + B20DBEEF0167993AA7433B086D973A2B9A6A5BE176D8755B0D838322006DB416 + 29397A781C77A6713A1330B1CDC372E868BE6911EA9F386179102029251D8FAF + DD246C15D70C1DCF0ECA7EE7167E3B79BC51A87FBE24C08AD40444C7D00FECFF + 60299D7D367A6C23305DEF2DDB5C6A3D2009F054E1766817C5217433498CF321 + 6C7EFA5FBF34C0D6657A614B99EDB414408FA0C7627EC535EC195DF4AA616058 + 04F030E5A103FC0FFEECF2DF835A4CF90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005D44944415478DAC5975B4C53 + 7718C0BFD3734E2FE706A540A91A65334E5D41AE52449D4B96B925CBE2084F1B + 4B8C33B17889718BD9D3B261F6B498EC964D41E77C5816E38371C6A9C42C9BD1 + AD040515970E048BE5A2544AC1F65C5A7A4E7BF66FB15DA1AD80BAF8BDF4F47F + CEF7FF7EE7FB7FB783A9AA0ACF53B004008661FFABA16600BD85A28C76491A8D + FD4FDACD04D0CAB21BD023470083167B40F8F6698DB71A0C4B81247E4397C5AA + 1A6968E2A5B3590162C63538D656566EA57B9C7D100C853E68E2C5E34F6AFC3B + 86B19218B49594AE5A62CA37C29F57AECA8A2237D803E2D93480B8710DD666B3 + 55D0E6A202E003025CB9DCA18664A56127CF9F5EA8F1439CA11657895F2B2AAD + A665CB96C4D7C6C6C6C1E1E89476F8797A06C0118E9B36BEB68C369BF3939B4C + 4C3C84BFDAAFCBB2127973A720FC3E5FE32D34FD3A4EE0A7ABAB4AE94596C2F8 + 9A1A8D427BC74D7830EEFBD9EEE7DF9F0990C34DD65496E45ACC05699B8D797D + D0D1F5B7882836ED92A4AEB98C1F66980692C04FD8AA4AC982FCBCE94564A7F3 + A613EE79BC174603FC3B9FA96A7806C0518EFB25DF94BBC55661051CC7D33645 + 8AD0D9DDE3935575D31E4170667D7396DDAE2389A3B6CA122C2F974BAE77A378 + 728F781C0ACFBFB11B40480BC20318A62DE2981FF338B6D1566E052D49A66D3E + 786F14BA7BEF0C811CD9680F068766DF4731F4B141AFFDA2B6BC0458864AAEF7 + DC7143BF7BD829F1C2860F011E4E3B2443163403682C0CF31552DE5BBB663518 + F4BA3488BEC111E81D18EE4397EBED3C3F9EF2E60719836E7F1D824FD5730DDF + 07A7CB3DA44454DB6E51F424D61F5B075A18E653CAA03BB0AE64253094210DC2 + 393004AE7B9E2E25C0BFEA05902C2CFB03471BB6D521682D49249F1B46C776A3 + 6FC0034AC436DB638F0588BB9363F66A71E2EB5AEB4B580E4DCD24403A37905B + 47BCBECB48DB67E298FADAD52B66C48E676212AEDD1EF0CB51757DA698991320 + 1ECD1CDD4862F8F1DA55CBC93C964983B8D67F37F603D52B8A41A3D1246F8D07 + 78E8B83D2086A3F2E6DD7CD0912958E70530ED09EA2D0CF053D5CB8B75E694A8 + 9EB1498AAE5F94C071DB25875565CBAE807401B2C8BC01E210A842A2DB6D654B + 17D34BF272B33E278442E0E8BBAB4E2991779B04E1243C4616041087A0E952E4 + E73F5E5E54687A21515C52241496C1313008C129B9C92E08AD30872C1C80A22A + 51945DB45A0A4CC519BC109211807B2406B00B011C7EA600F126858E608DA590 + 5EC4B1599F13C361681F1C51A7E4486393289E7826002D2CF5368EE1A7AA8A0A + C98259E9984937303505ED23A3720422F5F68074EEA9005A597A2B81698EAD2D + 2AC48DB3AA624CAF6B6CBA10561498004F49C309148C573D5E1165C293A7612B + 47EFD362F89735E67C8C9DDD1790CE2DD4A6EF8BD2A5582132EAB40DD5088248 + 81782005E1866F920F47D5750B2E442D1CF33985E39FD4988C4011C46C5DE8F1 + F3E016A564292E62E92308727B2DCA0E3205E23E82B835E9F74664A5666728E4 + 9E13A039D68C38E61B0627F6541B73409FA12DBB0411FA05A9175D6E9CDD8C28 + 5CB3DF863224550F8142AF20CCDD8C12EDD848908D55A8ECA6BE494286D1D93A + 45316B3B6E61E9FD7A0D7E702DC70143FC07D12F49E092824E91175EF9088548 + 4680D8409247125B2A50A4E319027214A5D82D31E893215CB7879FEA832C8220 + B66951E0563234969B727CFFA0E3189E0A671F48622359B95E9F6B26D3CFDCAB + 2870331812D15C38BF918C65EB49504F965306323F05A23B18028FA2641EC90E + 71549D16232E96EB747441CA193E8C44A03384EA9C0A9BD1507A692EE3494FD0 + F46B38AE39B346ABA5CD8F2062B6AEA33AE18D464EA0A1F4BDB420FC9E35C421 + CA08220E21A229B6231C5665C0EA9B78FECC7C8D273D6130D46808E2BC95244C + 8B1FBD940FEDD92587D3C7F2441A262056E238ED521455C6D4AD3B02E24F0B35 + 9E90F8878906CEAFC089A54664A34B96E50816ADDFE117CF6504484010801F46 + 9F66C79ED9A719415C4487F02220E3B112BDE06EF8B4D28C3E4E73693A679F28 + 3E88FD4F03785EF22F94D231EEF16B1BE90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Commander' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002DA4944415478DA63FCFFFF3F + C34002C65107801CA010B7F10A23C37F6D3ADB7DF3FEA2000DB00314E336FC0F + F775A2ABED2B37EF63003A8011EE00213119BA3AE0DDAB27A80E9859EE48B221 + 3B8F9E6770B73624CB01E99DFB079903EE2D0C4051404CDE289D7D80A13BD581 + 2C0728C76F4075C09D05FE241B5236E72043578A3D590E5049D888EA80DB4007 + BC09F6024B8AACDD469421E540077426DB3338B5DE07F3F7552B12D4030B59B5 + 443407DC9AEFCFF042471D2C2971E52698AE987B10AB211DC9F6707910DB20F7 + 00987F61B2035E7D20D00ED5AB8EEE809BF3488F82CA790719DA93EC894A2FE8 + 402309CD0137E6FA31046F86F860ADEF01ACC1860EAAE71F62684DB463F87450 + 09CCE7B3BF47B403349337A13AE01AD001163395C19227D2EF82E91AA005D840 + 0BD052983C88FD62BD1A982F11780BAF3EB0DE04885EAD1434075C9DE3477230 + D62E38C4D00C359054A08DEE802BB3FD18BE1E860425B72D714159B7F0104353 + BC1DC3E7086F309F77C556A80CEE540193D14DDD8CEA80CBB37D195E6F84E402 + 517F482EA85F7818AB218D71B610F94587C1ECF7869A60BEC0F9EB60BA61D161 + 9C0E6880EAD54B4373C0A559BE047D8CEEAF46A045F550034905FAE80EB838D3 + 97C1A7FB2158724BA93C4E4B9141D3E2C30C75B1B60CBE507D9B91F4110206E9 + 680E383FC397C1BA04927A8FF6401256F312EC41591B630B9707B111FA60E247 + 705A5C1B6303A60D33B6A03AE0DC0C1F9283B10568510DD440AC004FF01965A2 + 39E0EC741F863FC755C0922C9677887240EBD2230CD5D1360C713B21ADA945EE + FB08EA81B9C904DD0167A6F9307CDAA60196E4F3BA01A6DB96610FCAAA281BB8 + 3C88EDB44015CCDF9B701B4CB72FC31D059550BDA659680E383D8D7014A0B7A0 + 3B961F65A888B4262AB4D08159F65654079C9CEA4DB2219D40079493EA00A81F + CC73D01C10642340964FC805EB8E7CA0BC4D4809A04AA3949A0E00257B757A3A + 009814EE3E5814A03238FA8603090041D7BED09FC7C05A0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Explorer' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000029B4944415478DA63FCFFFF3F + C3400246900314E236DC63646050A4B6E140AFDD7FB8385009A73CD06EB00314 + E336FC0FF375A2BAEF566DDEC7F060712023510E101295A6BA03DEBD7E4ABC03 + 66963B52DD01E99DFB8790036ECCF3A7BA0334923612EF806B73FCC0829FE202 + E00AF8166D40D1F0F52822A3705BDF47918BDCE10A672FF7D80DA6B5523611EF + 80CBB37D210E70B1423860CF31140D1F76A9C2D9026EB751E43C5718C3D9DB23 + CE8269DDD4CDC43BE0C24C88033E6A2BC315F05FBD8BA2E1CD060D385B24E006 + 8A9CE54C0538FB78FA03306D904E8203CE4DF761A03630CADC42BC034E4F8338 + A07DD911B882CA281B06FFDA7D0CCFDE7EA3BAE340A5E48345014A70079C98E2 + 8D55A145CE56065A9592F7170530C21D706CB217568556B9DB1868554AA238E0 + F0448803E2A6BF842B5A9429CE609BBF8D815685148A030EF47B8225423AAFC1 + 15AD29D7627028DC4E1F07ECEB8338C0A3EA205CD18E367B06A7A2ED0CB42A25 + 511CB0BBC703AB42D7921D0CB052125B690703DE3D4FE1ECAD25A869065BE90A + 2A25511CB0A30BE280599B4EC015A7F959307894ED60809592D84A3B1870A8BD + 08671F68D647750096D215544AA238605BA73BD610F02ADFC9002B25B1957630 + 6096BF17CE3E35D119450E5BE90A2A25E10E20D424A355290977002323CED292 + 4121763DCE521219902A679A458203709592940050094BB40370959294005009 + 4BB40360A5246B66085CFCF7F43528EA382E20DA0A3F0C50DB0AE8A52B08804A + 58A21D002B255902ECE0E27F361C4251C77C4C13CEFE6B751D450EBD74050150 + 094BB40360A524B3993AC292533751D4FDDBAD036733B95E4191432F5D410054 + C212ED005CA524250054C212ED005CA5243220550E54C212ED005CA524250054 + C212E500F9D8F534EBB8C29B64030900CC59DCD09406F2AC0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Multiple Files' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002EC4944415478DA + C5D6DF4B935118C0F1C7B2826EBAECB2FF200ABAEBAE229BB94A4C53CB64CE74 + 6E9619A64BB7994B2A0B733A97FA4A1161E9D2CAC488A82445C44B4BAC11C5D0 + 21C27EE99CBADF3BBDDB71A9BCDB69EF8ED981DD3CEC9CF7F39EEF2E9604FF79 + 2525B2A9BC7D08F1DDC36E18F506AC8287B2AC256AC0D5B68FA8497294CFC341 + FFD900E386D9315FD09EB21E9110A04CF70169A4C778EDF9343103F34E378C4E + 9AC67CB08648087045FB1E35971E874030FE1253D356B0385C605F74C1E8D7E9 + 71B7C72B642A8456222091D6FBF6EE8142C17ED899BC7DC3DCE6580133FB8920 + 46BE1827BD5EFF11222091D62F860D30675F02B1E0C00644F236049605D71F44 + 083432619C2202685A9BCC0E28485D43D8D8B736CCD8E0D7DC02F802C1F0ECFB + CF59F26F2091D6DFD8D6E6D56B36CECD8348701076EFDAB1764BEC51CB6E1F38 + 5D1E68EC1EC680CD6E6D09F7C6881F260B14A61DDA8088ACEBAD8318F02F5A47 + 10219061DA0C65998739E7546A0730602B5AD717A770012D6F30602B5AD71709 + 38675469FB31A0B4E51DD25E3EC18AE307F06D7DAB38953397B7BCC60099E62D + 6A2D4B058F3F7E00DFD66A491A677EA3F92506481F0C225DF94970F982F1DF00 + CFD6EA126114401F06481A0750DB35212C7BE2074456BCADEB24A738F3EAE65E + 0C28BEDF8FDA2B4E83D31DE00D58BF48AD6B4BCE70E60A8D1E038A1A5EA18ECA + 7470B8E800A4D62A697A14400F0614DEE9438C3C031656FC7400426B55490667 + AED43CC700F1ED5E167016E697E900A4D64A2917A06A5A0514D4EB11539D05F6 + 251F1580D45A21CBE4CC6B9BBA3040A4EE464C4D36D82801A4D60A5916677E33 + 02C8AF7B863A6B72C04A0D88DD3AE08F9E370CB858DB8518452E589D740052EB + EEBBE2A8FF3DC2C33CE553C4282F809912406ADDD3702936E0BCE2090BC8DB04 + 40ECD6FA7B45B101B9D58F51872A1FCC8B7400526B222047FE08B58700943740 + 6A1D6B85BF9C5DD589DA54226A00A9351170AE92413A1660A104905AFF1540F5 + E4758B2FE03769453B53B9D164C80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Error' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA86400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005A74944415478DAC5575F6C53 + 65143FDFFDD776B4B77FD8E656867FF81F49F401227B9899F2602004B7092331 + F1C507D98638DE88464566301A8C894132183EF8242A81B049001F0C61668913 + D1C4070DC8082A639DD0B5EB6D59FFDCF65E7F5FD7CEB6BB5D0BC670929BF47E + 3DDFF9FDBE73CE77CEB9CC344D7A90C23801C65845C5FD445283CBB59931F339 + EC588F1D8F60F9A1DCDF7FE3187F32322F9B26FBD6178D9EDF4194AA64338B5D + 89C0671E8F2769A4773362BD22519D085D01EBFCC9EFE23E34724F06F6324477 + B0F8A9228A1FBE3C3D3D7DDF0406DCCE4E32D96199A8DE061D9BCB458EC64652 + 3C1E92162D22C166CBEA19C924A5EFDEA514B0E2810025A3514AC2AE4E1484F5 + DE6E4DFBE29E08C0DD42A3CBD52F30EA720A023900EC5CB9926C5E5F55714D86 + 43141B1BA3B8A651CC30C8306920108DEEDA3FEBA4850964C155F54B8551A70A + 7075F972B2E3D4D5E449A9F1C4E42445AF5FA748264349324F4F46A2DB0B4958 + 121850D57E85CC9E5A4521D7AA5524BBDDB36E86114114AB022FD4D523118A5D + BB46C1540A61A1235D9AB6AB2C81A3AAFAA24CE6F1464922175C2EB9D4EC7A22 + 1EA79BE337A91621F0D6D62E081E0E062988102C6D5A4A768723BB968E6A1405 + 89403A8D04652FEDD4B4CFE711E0D99E323257970842BDBBA989E41C502291A0 + 1042B169708846DF7A9392A3A3E4F559E7423814225B7333351F788FBE696F23 + 1FE26FB7DB673D016291F171BA6518B715415CCD6F47118163AA739FCA84BE46 + B0762C5B36EB4A189800F8E6AFCF907DF16232F17EB1A79B522323E4C34D2894 + 106E80D2D242CF1C394A0C7B12535374FEF9ADE4C71E4110B23AF11B37283033 + 439A4907E085B7E708F4312635AAAE5B2B44B1DE85D30B39D7098E1A5A7BEA14 + 29009F8B5B8E843E3C4C8B73F9318538CBADAD73E0794981C4AFDBB691119F99 + 3D1042198517C63299A0578B2EE934CD5496C080DBBDC9C9E8FC0AB84BF1FB8B + 4EE6DBB2851EEE7BB7C8709E44E6C285ECBBB871E33C70AEF3D73BFB2874F66C + 91BD14EAC41888C44CDAD215899CCB11707DBC5410F7F87122C1E99C77E53C5B + B75213E26A45828B15F838F265FACC9979799289C56802E1BA6998FD20F06A8E + 80FAFDE392D48C3C2426CB9609E6696BA325EF7F500C946B64858439F8AD375E + A7E9A1214B3B266E82160ED36FE9F4A55722DA862C81636E35B05E921AECAA5A + 04502AEE8E17C87FF02092A38C0E4FDABD7B293278BAAC0DAE934085FC51D783 + 3B235A5D9E80FEB42C4B624D0D5512B3AD9D561D3A342F4CDCCEEFBDBDC48606 + 2BDA307013BED37502013647E05945918432EECFCB24DCA7777450EBD1014B02 + C3DD5D240F0E52030AD982874055BC80A79040A055961B6C0BD4FB09B82EB57D + 3BB596245C9161E80C2331959327C9BF402853C0BC5818029E841B64B9D95386 + 4059F0FC34559284954844B0EF92AEFF9B84FC1AAE16A53D8F5A349BB2E0580F + BEB63BFBB3F693C345895989C41F6856573346E135746FF2A2103D559203194E + 0095ACA5FF882578ECC489ECAB73C70E4B1223BB7AC88F4A5A7A2C9C9EC28585 + 285F8A5B64B9BEA6C09D02A61EFFE59F482AEC8025E079B1229146039A58BF8E + 0C4C4B7989036F04F1F71496E27C33F20B62DFDA920C96D7ACA106744291F783 + 32E0562432E80393E888FA952B453A2840E888667133CAB7631DED1861A87797 + 246396C4E9410AA3B697032F24E145EF98EC689F07AE01EB075DBF2D5BB5632E + 7C20A96174BC19B9505A11788F3050C7AB112B5D0CA8348AD8274CB21E48F2C2 + 47322464CF3A9010AA82AB2C7C08FC19AE0F19E6C2231997FDB9A1D427B0CE27 + 910FF27D00969EFC17804F99467543E91C098CE50E81753D0112EE7B9C88F3C2 + 63CEC1E38659FD585E28FCC384E1C304C5A4FE3114A99A2A89CCC0E60D141B14 + B1A0C1CCDDDD91D857567AF7FC69E665ACAE0E57CC8D87F74D25B78FD7763E74 + 45704DEFE0417ADF417D1E9005E1A3FFF469561296FFEFE3F441CA3FC0C762EE + 7DE3E60C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Help Blue' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA86400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006394944415478DAC5577B6C53 + 5518FF6E7B7BDBBB3ED66EEB631BDDBA0742C00C23308DF18FA126BA29B20733 + CA634822223844458D0991D73F6AD40471993CB244371E66246CD308469111FF + 303C34110402BAADDD46B7F5B1B5EBEBDEF6B6BD9E73BB76ABEBD6C23F7C499B + 73CF39DFF7FDCE77BED721789E8707490406401044DA8D5555BDE4A071B29A07 + FE29822756F2045F8AA06B0521000E343780E6AE12405C281ECE3E77F1E2AA70 + 3A9982EE7400CAD79F557144A89920F8B7614A6106E4E079E2A084A75AFA4ED4 + 78EE1B40C9C6338D68B5050D75F85B2E23C1A0A1215B2E015A2A06A9442CEC0B + 721160821198F473607333E0631287B713C0379B3BEA4FDF1B807DFB44A6BE8A + 56B4B015FD404193506A5080464165747C972F040363BE1810EC633C7FC4527E + 7D3B921B4D0F002BEF7FE43B34D5281289C0A497831E9D3ABE231AE5C13EC982 + 1D9D940D452082BEB12530B882DCAC8455B06BDB5C0C586C7EC413C5384E5BCA + FE7A79268894004C4D5DADC891B651120ACA0B14A0CC9224D6B0A9876C5E7876 + B901EA9F2C8212831C5D050923E301E8BD66838E5FCC40CB28D028A5091E6F80 + 83BE111F84B81002C57F6D69AFDB3E2700D386AE5708117152425150A24F568E + 4FEEF204A0A579052C29CA4E697A6CF25DC7FE8491090E641499343F30E6052E + 844044F97596E375A7660130BDDAA58608DC9150325D615ED6ACFB9EF4B17074 + E77228CB574E9F0E090E7251C8534DEF65D0B5ACFFE477009124891FFB85D519 + 4020583B886191E59B3A7732808D67F688496ABF424E4391366BD6E9AA96AAE1 + DD86C589EF833DFD70E19A43182F5AA0807DEB160B5182E9874B5638F6F3F02C + 19C38E0078FD0C44C2E103968EDABD0900AB565D242D46B75596A5D4E5E7D240 + 53E259CC5FBEB604CA0B63A7C78ABFE81E485A7FB1520B5BAB4B85F1C838035B + 5AAECF9281AD338AD69880D75932ACCEEFEDAD0A0B004A36763D272625E7942A + 15E8D45248453DBB57A07B8D01DBD5760B6E0C7993D61F35D1F0F1E60A618C23 + A366FF959472ECEE20783D1E6405AEDADC51F7530CC0A6EE8352A97C678E5A09 + 72A93825E3876B4BE1E965B970C7EA87E6C3B792D6FC0C0BBB6A8BA101450626 + 8B2D802C7033A51C3F4A58136E2FB0417F8BE5DBDA1D31004DDD97E54A4DA55A + 4983844C9D1571A02CCC97C3A083111C2F4E01A4BCC248C1919D95209A8AA6A3 + E8FE4FFD3696520E17E6C1ED65C0EF755D31B7D73E3605A06754A5D11A70D889 + FE9715E7AB532C1B44CA49686D5E89808B84396CA1378FDC062E92BACAE270F6 + A0DCE07139C6CCED6BF2E3168868B485229A1241A684F9CA73C3D0F64E6542F9 + 983B04AFB7DE86712F372F2F138A82CB61056401220120576F1491E2F46559B0 + 0AFE0B33F0FD47CB419B2D4B287FE3F03FA81885D2F263EB8CDB866702E819CD + D12D3088C4E2B4CC717A61990CF6AE8BE5051F1B86CD2D7D6071B019F146A3C8 + 116D7793AEE0B2465B5089B260C6003E589D070D4F1408E3B6F32370F45767C6 + BC5C2888AF60DA094D9BBABF52A9F29AB394EA8C85ECAE33C0EA9579C278479B + 19AEF6FB33E60D78DDE0F138A7C3D0D4D4532395CA7ECCD517652CA4A298864F + D71B61C81982E6B6C139BD3E158DDB862018649FB7B4AF399B48C566A37B545F + 5896474A326B3A58C60793E3B158CFCE35808C5664C4174665D966ED772A58AE + F0466763684631EADE2F57AAF7205FC848D062B51B0E343D2C8CF7B4FF0DB7DD + 9A8CF85C8E119484DCC9C5686639D61B17EA28299D5650E78E02D41FC69CD6EE + 6661EDA191B43CA12003B6E17F5397634CB8212129EA647ED143201293690014 + 822E3B56F39D1E0E01B0CEBB3F1A419570E80E8E800D83C7EB4FE0B9395B3219 + ADDCA63796CFDBAE3F5E4EC37B3539C2F8F3B31370A98F99732FD6611BEE437E + E39DBF25130835A525FDCB3A657255836E411988D358221D452261B0DFED07C6 + EFE9B1945DAB4FDB94C641E0B65C22956D453E015299FCBE9407593FBE73E082 + EC3DB4E53308FB044F1087B235BABC1C5D21649A2951DF0713762B4CBAEC4EA4 + E0AD78139AEA6AD23ECD70741051FE7D9E176FA1154AAD429503A87513C0C473 + 068E6DAC940D78C1E79900C6E7751044E4182F223EC3DE3E97EC8C00C4696963 + 27E5A749F438259E41EF861588BB184DE74F2DDB901033EAFBFF404FB1F37226 + 7CEEE6E997D296C504800749FF0131F544EE1CD379A10000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Information' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA86400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004FA4944415478DAC5576D4C5B + 65143EF7ABF4B6B7B485B5E5530A742E465DD049862E5130FE70D16460821A0D + 187FCD6D38DD2F5D46901196E99F690CB2F8C3643213D1C5B1256624FED898C9 + 74CA346C99310AA3657CB6055AFA757B3FDAEB7B6FF96867DB7B613F76929BFB + 9EF7BDE79CE7BEE73D1F2F2649123C48C264001886A97ED8D878859CAA5CD98B + E0BE8049B04BC2A41A34B6294A00FC48C99404D20D5CC27EAA9A360F8F8C3489 + 6A3A15DB6A005C6F5E2A4CE0DC6164EC30AC1AD4407E04EB3410D2A79E332DC1 + 2D03A86E3BDF8A56FBD0D02EF30C4D82C34283D94881414F828EC495EF783109 + B1B8082B5101BC4116226CEAE711E845A4BBC333D0FCDDE6007477E3CE899DFD + 68613F7AC04453505D62042BA3D3F4FB81080FEE8528845941B6223F5F7A5CB7 + 0E22BD497500B2F13B758368AA15C771703A8CE0B0D2A07E4AEEF93BF478032C + 4C7963904826646B3FB86B6FBE9A0E222B0067FB503F06D8011DA50357190326 + 0395D54030C2C1E47C4851525B66060B5390F5BB704C8089B908F0828040254F + 7B065A0EE604E06CBFF01A1A0D523A1DD49498149FE7A222030EDDED8F038163 + D079E6260462B9C3593E13930B6110781EA4A4F486E79B966FFF07403EED22CE + 8D533ABDBD7C9B41D5DFFD87EAA0C4AA57C6BE601CDEE91B533D17738B31E0F9 + B80F08D8214747060067DBF92E82D41D371969A8B419547DFCD57B4F80CD9CDA + F6A5100F6F7FF6A7AACCB43F06E1280B0951ECF19C6DFE681D4053D308E9A90C + CEEA0D267B69310DB48E505556BFDD02875EAE56C65FFCE886D1F1A0AA0CCB27 + 607E890536165E64E242F9EDEF5B79054075DBD08B04490D9B0A0BC16E295055 + 743FE40B72100E85404C245EF20CECBB9402D03E74AA40CF1C29323328C11028 + E47207DDC4D46CD6795755B92600512E01CBC130C4B9689FE7EBE6775300DEBA + F8AB91B134584C345064FE88BFD25B9F75BEA9735413004194201866211A0EFC + EE1E68DEBDBA0317E70BADB61239E6F13C75415EBA7AE2A9AC6BCF1DBBA10940 + 32294108E58650C0BFE01ED857AA0040F12F14D9CA482D876F8DAE9DDC95C1EF + 39FA876659964F42C03F0B6807B07500DBEC1524B95A5CB4D0F58F9FCCE09FFE + 503D0CD7DD909060C93BBD0140764191BDA20427B4EFC0E82775197CFD07639A + 6593A8362C7B67365C201F426B71690355A0D7ACE4B7933B33F8DD476F69DF01 + 9E935D907E08874E992CB623069345B392EB271ECBE01B8EDDD62C1B0B0721B4 + B29816862811E9F486E162C7439A95FCD2FB4806FF4CE7DF9A6597BC7781E3E2 + 1B89682D15DBCB6BED24A5ADE9B8D6B32383DFD3F58F263951E0C13B7B273315 + AF1523A3A9E8B8D5569657C1CCE45FCA1BF92F63BEBAFD82F2AEA87934AF7CC0 + 3F87925030B318A597634785CB8EDC9153C1CF5D35790D3CDB3399738DE758F0 + 4E8F672FC732C90D09495083A5550F034E646F46463A9D790134F67AB2CE2713 + 22CCDFFD17449ECFDE90AC91DC92E969E680A372BBA6FB8216926D78A72720CE + 86F3B7640AAD36A5B49169B557B88020C8ADD85CA704FA73DFCC04B0D1C8394F + EDD8EBAA4DE93A08D496A3C4B45F068176644BC63936025E645CE0E29B68CBD3 + 287531C1FB50A5B4A3540DA85FD46458E0E3B0EC9B4515CFE7C320D9E13EFBCA + B95CAED174351330BE03558DF769C66C339AAC401B0B1530A88B4A6DB3282846 + D96848AEF3C04656FC48E3E712017DF775354BA78DCBA9F43C2661F5F75E4ED1 + DC249A1B45DDD4E54D5F4E1F24FD07977FB1DFEFA18BDF0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Warning' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA86400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005064944415478DAC5977B5054 + 551CC7BFF7DE7DCAC2F296D865179575D13587472A4966968DA5B14CCDA8D85F + 35539A35D35F35F980BA25E84CF64F5353935633FD93588DE34239D1843A038C + 0F024534DE2A970564058CDD659FF7D16175AC05D63605FCFD73CFEF9CDF3DE7 + F3FB9DDFFD9D73294992F03085BADF174FB1992A974CDC3CD18EE5E91FD7B1D7 + 7D730630B1B85B26D6C6A8E9D51333B83DE21F14CFAF2D62073C730250556E38 + A0D5D0BB32740964061A7DF6118C8D8B9F59F7726FCF3A80ED803E8B91E8D6C5 + 46852A7EA115A06518EB3E86CEDE000F08964D7BFA3B6715A0BAC2609B9FC458 + D3334D50CF5F13EAF339CE60B0B70DFD0EA1A6B8947B6ED6006C15C6754A394E + 662F5442637C1114A30AF54BA21FEEEBC7D171D50BBF5F2AB296713FCF38C029 + 163297CCD0B240CF2C4D36E642A15D12361E747660986BC2554EE8F6F1B1962D + EC95C08C02D8F665EC8CD5D05F2CCED2429DBE010D178771F0EB160882845D3B + 7250989302EF600DBA7BFE82D38577ADA5BD9FCC18C0AFAC3E3128A7BBB24D4C + A256F73818753A8ADFAC8563F4F6A79F9CA042F597CF40F40D61ACBF1E6D9D82 + 3318949B5E627B1C330260ABC8F83C35917ECBB83015AAE4C2505FC1B69A309B + B34736849EFE9173E0AE0D60E8A6F88DB5B4EFB5070638BEDFB05441A3C5B244 + 268B495B0B5AAEB90D50F27B3840E5FAD053E2C7313E781A97DB78312888B9C5 + 7BED971E0880149DDF0C19D4B38F188D90C759EEF617949C9E04F0D4DD36EF6A + C70DEE2AAE5D97EA8ACBB827EF1BA06A9FE105F53C542F5BA684326935293AF2 + 7F01344C0228FC47910404461A70B9D507AF079B8BCAB89FFE37C00FAC45A192 + B9AE98CD545652BA99249E2E6C7C55C9D930FD5C6541982EF806706BA01D7F76 + 48F6B8206D8A74584504A82A37BE131F2F1DCC5EAA815C9B37C5725549D32480 + FC700372CA07C79AD1D9EEC6E8283EB096721F450D708C5D94AA90077B96E750 + 1A4D8A8594FBF829362B4B2E84E9E72B73A7D888BC13E3C3AD68B92879E88060 + DEC8F6DBA30220DE7F9BAE935ECD34254016639E36422BB7B686031C7D745A3B + 61BC0BBD3D23B0F7514748717AF93F01AA2B8C793299D498F718452BB524EB69 + E5F40025ED9322903DAD1DA40002CE2B686E14110C88AB8A4AEDE7EF0950559E + 71C6B41805698654B2B60E9164C5D6AE30BDF1A829A2ADE81FC490FD06C907AA + B999E756B02CC46901C8E2DB34B1D4F739F90C9889D05391BFD24D3BED708CF0 + A1764A0283135F6544B405B9770A9E0EB43409703AF10A39B2BF9B023071CD72 + CAC5AEDC7C49AF4D4E0725D3E25E52DFECC581C3B742EDDDAF27E0893CF53DED + 25C109E7703F2E36510E6FC0BB680B7BD31D06402ADE87A969D2FBD9CB1524F4 + 06CC8648FE3EB4B7FAE118A43E2E2AE5DEBB0B7082D5E94505D3B5B25054A9E3 + 7411132F3C0201EC3FE4824076B3EC8D58120145140401F85D769CABA7C9FD4D + B414EFB6775377BCAFCCCC12B72E30CD03254F8ACA9BE777383134723B975212 + 69D41C8A8B2E0AFC287ABBC771AD8BAE2ADACB1553C7CB8DABD52AA9A160AD08 + 46399FC484890E60BB9B0048770028D41CD644B90F0204FF10CED7D1F079B19E + 22DED75A72C4A7D3F43120A91FF57ED6918CDE7F28186AEFD92EC79AFCE8C043 + 227A30D4EFC6E566BA7E02C0BB6E23AF62148964848E7E92071211627014277F + 91F194ADDC70C1BC4CCCD1678AA0E7687D91A4CE0047A3ED12D349D9F62D3083 + 123E25D9480E7CC4CE51083C90A846E2EF4EEAA1FF1D3F6C80BF0184C6FCD247 + DD545B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Bulb On n p' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000048E4944415478DAED966D4C5B + 6514C7CF735FDAD2B2C28000E1A5B096B60C942D3A5EE24B36BF982C311297E8 + 073583C5992533862CEA877D71D32F2E264A4C1675F105B6B82F2E4B9C266A8C + C964BA6CECC3501975B4A5B4851444286BE9EB7D7B3CBDB7351B1BDB5AE83E79 + 9293DB7BEFF3F4FFBBE739E73C0FA194C25A4608B9ED99EBF32D4D2CCFBF0494 + EEC6DB2DE835E87FA34FE3841F64513CDDB67F3AB07ADE5A3AE47E014227EA8C + 51BDE93D96A507CDB52267AA9440679481D551900502428285F81207D1795E90 + 65F2A9391D3F5C772094D81080A953568BA4B0DFA3707B954D04D6FC349092A7 + 007807005B012087014437D0E47990A33FC1E2149F01F99D63E45EDB5E5F705D + 009EAF5ACC8A4446ABACA9D6CDD64620E56FA268ED9A73400E01BDF1212CFB66 + 60D16798908CBA9EF617266205035C1FB67F595E27ECAB6EAB075236800F79B8 + A75111686410165C731009E9BF70F6BBF71704E01DB2B711038C37770B0C53F1 + 3A10C6746FF11C831203257C1CFCA33A85A6E0E1967D1E57DE0093A71CEF575A + D26F553ADB01F4DDF72DFE9FA52FC3D2751784670CC71C7B270FE70DE03EE918 + 6B7C24BEDD50BD138029CB1F4089406A610482574D579D7DEE470B0158B63DBE + 52CE9476E11D9B3F00C820C7AE80EFE2A6B0A3CF5D590800B5EF8C62B965FA0D + 53008002549806EF05B3840077CCDEBBE7C04947C0DA13B370063D8E5C054030 + 214929BA2E532E6AE683827D87AEA8C2AA5105C4641AA6474B83B8044D8544E0 + BBDAADC96736558BB7BE60AB3467CCF80F460D8E0AA81BD59A92BC88F7297568 + 648E877FDC25A7ED7DEE97F38FC0B0FD79D366F9EBFA6D8955E2D888387406BB + 2063D4962723A8022C0048F3E8B36A2466C64C908C90DDCE7EEF8F7903B8CE3C + A4631382A7717BDC5252266BE1E62C9813E86C1D10B63A1B050EB5621871FC7A + 29A4894B41482E4561F60FA32FD454EFDCB5EBBC943740A613BA87EC7B789372 + D6B2238682E528DEAC3AC980700D0852A301C8CB5A1B1683AA384DFB2178390C + E924E96DEDF77EBBAECDC83D6C3F57D19C7EB6C28ABD80B766013220362D1A99 + 64445110A711C087BFFDB034790DC2BEF83718FAE7D47C5C0F006E480D542113 + 962EBD5957862589E2240B025C230E3464431F40003F081117047F9B882A22D9 + DAFACA6468DD005A423A5E2B29A7C71B3A734B80E1E7EAB4A4CC6C5072047D1E + 0102307B71041237E20731F49FE4E6AF1B801E05C6DDDC325AD356BAC36CB165 + 9330578A58054A0A937011A2FE3F617EDC77C9E9F73C418EE61AC20600A84B31 + D4D2C399C8A5A6C73265587DC7320C5C18C3D391D48D8DE7CACD733704408B82 + 5DB6E361483D09A95F6FC802086A297A7E9E0767BFE7B6C3E4860068B960D7F6 + 874CE9E55AB16A92DA8A3DBFE81E10C01AE61931171760E09D136B4FC8DA4747 + 0E1417E0C8C08BA0D3F1EA2628CB0A4892AC5D15198E7D7CA6F8005DDB1C506A + 2A0106DFA70531EB1208A2087F7967FE8F40F1013A3BECD0D9E100BD9E877822 + 0531F4C84A1CBC8139989C9A2D2EC0A1773F7B52A1F2217CDB0BB71E14B1EDD2 + 730C610707DF7EF5D7A201DC6C7BFADFB88697761C357E76F8838EBB8D2D08E0 + 41D8BF4DDFAADF0710B0730000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Installer' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000007424944415478DA + AD967D5014E71DC7BFBB7BBBF7CEBD7178BC890227824182A636D34C6C353389 + 041A9AA469EB646A92A9A6B67106D3CC34AD99C6986927E93FE21863A24ED3C4 + 748C06C50E49D52A828DA4D04CA23218A2801E821C2F77DC71C01DF7BEDD670F + 8EBD3BE818ECF3CFB3BB77CF7E3FDFEFEFF7EC2E857986E999569E95AB11A6D5 + 08D12A8429AD30AB799A0D3937DDEB397F70937923CFF332F25F8AA2C258E0A0 + E6FDE5275FF1DA341D38854610D788E23236E8DAB2CAF16FEEEA7EA34AA9284D + 4F4FD7FABC5E0C8F383C3E9FCF1F0804860E1D3A54FEFF0178BA8B07AB814AA5 + 854CAEE1C374D055921D703E153D94515D5569601806369B0D5E0160668C8D8D + A1ADADCD7DE0C001E3DD033C6BE721D34280E015AAA08B6283CE72D5D78A9AA2 + 5B79C5C5C5387BE614ECB76D10CA406A2024A545F9AAFBD0DFDF8F8E8E8E86C3 + 870F57DF1DC0E6099280001118A5B8E068A965D2B4DA539FBEE39947D0D2D282 + 6CCF3B294B5AC72A704FE94A5CFCACD95BBBE7A5748A5AEA5F38C0AFF828270F + BA1E5AE6738F85FD4B4C9C5366EEFA08BBB66FC5B163C750C6D6A52CB9E2AF86 + B5A8049FB734E34FAFFDDA150C879ED41A4A2F2C08807B31E8DCB9F696AFAA60 + 38BBAEDD4B5FEDB3C13CDA85DFBDF002EAEBEBE704E8E47F8ABC25F9B870EEEF + 78AEC28892F5DB2201EFE8718DD9FCEC7C69CC0930E1EEF8C14797F567D6B0E7 + 3877E7116ADC1BC655C57AD87B46B0F9E7BF406363E39C00EDC12750682D1201 + 2A977D035699869275DB787DE672F77C692400F0BC4D31E970BC2F579B7EDCD9 + B48F19B9F179EC3AC56282BB07B68925C8CEC943381C06177142A79141CE31E8 + B73B31351580396F1532321661A0BF17DAE80DB0CE53E2FA8C8207E64D8392BA + E664EC89B1C16B86CEE67D54686A3C81F4C32F0B30E50F81A669E8743A71263B + C06AB5627272122CCBC26432A1A8A808838383708C0CA3843A1A5F3F5F1A7180 + A0F766C433748DBEF2E9AED8D64A1AEFFE2B0BA1704414D2EBF520CF0192447E + 7EBEF82C90C96422406161211C0E07EC763BD6681A12E316B6EBBD553B91B668 + 5954AE29641213B0FD83A7358B100AF9F175632DBCAEFE84C5FB2F640A31FBC1 + 711C8C46A328180C06919B9B2B5C9F1213210079797970B95D18B83D80F596A6 + F87AB531172B1EDA8E68348C5B971A505E5D4B2500787A4E0AB679505C1A14A6 + A5B07D5587BECB27E369EC6D340B517BA1542A6130184410BFDF0F8BC522CE24 + 110266CE34C31E1800354E619DAE4974BDB8FC712C59F524FADA3F85B3F71268 + 4686EFFEECAF890063DDC779F051D289C21F38D0BA1C84C534F68869BCD9A016 + 1350ABD5620948294802C4B5F00E10CF357A0D60E1E1A01CA0B534B62AA662AE + 2341DCFCE2630485BEA21916144D00DE4B02B87E948FB98D41903468A5114AF3 + 72318D17DF68165E3ACE38C04C0F908624208C9C4134238290298471B9076B73 + B3F19B0D3B60BFD280911BFF0125B826C2342D9B1BC0FDCDDFC41210715E9CA7 + D390719019ADE8BED187977FFF263C53321180441B894444203287F5614C597C + 484B0FE3B71BB6A0589F839ED60F10F079045176569C80504C2A80ABF3835809 + 662024C72415466D016B2AC69E3FFF118DADFD880A97A3D128140A85382BD50A + 7CFFB16CFCF2A91A0C5CAAC770774B8263223C034251F41C0057FF2226209621 + 2E1E9D4E23764CB30A70E652F4F60FE3E3BAD308091F29A4146A2E88C71F5B0F + B3418E6B170F0A5BDA3D2DCE4AC409082BCEE4ED990230DA7130DE84BCA40F44 + 08C93199196D363459F7A1BBF57D716DE1FD9BD0D3F62106AF37CF8A128078DD + 1341886C0A80B37D3F0F4913C621A6AF2540F064BBAA78D5D28A906BB82FD47B + 71B7CAEF7551B3756667A31741D8847290910A7079EF6C0924E2B3694C83498E + 33BEB31567F76E106B2AC6CB4844896B6656743619261540789CEA3E3BF2FC2D + 39CBEA52FB409A46ECDA0CC4A235DB6200C24DA5227472D3C5CBC18AB0E148C4 + 53FD7A5BAEF3FAF50911202B6BB5CA6A6556BFF2FC83AF952D33AFA3789EE291 + D48C497D40CE2DF7D74C03489C3212D19472307C57BFEFFCBBC77B5EB58FB82F + F7F6F6FAE325C8C9C951529C7AC5E627CA2A9F7EB4A846AB620D31A1A48694F4 + 81E57B2F090015B3FB5B9A4252397C01B84F7DE1AC3D76B6F71316A16B443CE5 + 7B809C67E5AFC85D6C5295EDDAB666FB4AAB419246F2AE8822F3819771F6AD8A + 842D9602425CDF0E34BD7DB277F7D078A0FD7657973D76A3393E4852D2F85171 + E5C6470A84346486F84E90F446E6833B70EEAD47139A4E5A0E5F80769FF972AC + B6AEC99EE03AC131E61FD369C8CB766E2DDBBEB2509F9246D6DA3F080095A9DD + CEC8F8EE8150D3BE4F86763BE7707DA70009693C575550B9F1E1C535696AD21B + B12102ECAB4A78DC4E0519F73F2F4DD69EB8E09CD7F5B702484EE3D52D2B84DE + D0ADA3840D150788753EDF33186D7AE7B453701DF99FAE170230671ACB2B5E37 + 34BEFD43F804D7E7AF846A4FB48CDD91EB050324A771F4BD57F69C3EF2C6CD03 + A7BDB54EDF9DBBBE5B80781A8CF08E16BE0B0441FFD0B7712D1DFF059D8CC24E + 66BF17C90000000049454E44AE426082} + end> + Left = 32 + Top = 368 + Bitmap = {} + end end diff --git a/source/forms/Glyphs.h b/source/forms/Glyphs.h index 0ddffb50..324037bc 100644 --- a/source/forms/Glyphs.h +++ b/source/forms/Glyphs.h @@ -15,6 +15,7 @@ class TGlyphsModule : public TDataModule TPngImageList *QueueImages; TPngImageList *LogImages; TImageList *ButtonImages; + TPngImageList *DialogImages; public: __fastcall TGlyphsModule(TComponent * Owner); diff --git a/source/forms/Glyphs120.cpp b/source/forms/Glyphs120.cpp new file mode 100644 index 00000000..00997446 --- /dev/null +++ b/source/forms/Glyphs120.cpp @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- +#pragma hdrstop + +#include "Global.h" +#include "Glyphs120.h" +//--------------------------------------------------------------------------- +#pragma package(smart_init) +#ifndef NO_RESOURCES +#pragma link "PngImageList" +#pragma resource "*.dfm" +#endif +//--------------------------------------------------------------------------- +__fastcall TGlyphs120Module::TGlyphs120Module(TComponent * Owner) + : TDataModule(Owner) +{ +} +//--------------------------------------------------------------------------- diff --git a/source/forms/Glyphs120.dfm b/source/forms/Glyphs120.dfm new file mode 100644 index 00000000..faee73b1 --- /dev/null +++ b/source/forms/Glyphs120.dfm @@ -0,0 +1,14329 @@ +object Glyphs120Module: TGlyphs120Module + OldCreateOrder = False + Height = 437 + Width = 215 + object ExplorerImages: TPngImageList + Height = 20 + Width = 20 + PngImages = < + item + Background = clWindow + Name = 'Upload-Download file (unused)' + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001400000014080200000002EB8A + 5A000000017352474200AECE1CE9000000097048597300000EC300000EC301C7 + 6FA8640000001B4944415478DA63FCFFFF3F03B9807154F3A8E651CDA39A0756 + 33004FE33BD9870B3EBF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload-Download file remove original (unused)' + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001400000014080200000002EB8A + 5A000000017352474200AECE1CE9000000097048597300000EC300000EC301C7 + 6FA8640000001B4944415478DA63FCFFFF3F03B9807154F3A8E651CDA39A0756 + 33004FE33BD9870B3EBF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete file' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A94944415478DAADD45B6C14 + 551807F0EFCC9999EECE656D3B6E5D5A6949400A6D6C6C2D5DB751BC24864462 + 4242E29B810715DAE59218E39B893E19DF8C292D7D101E8C31468D4F8A5562A2 + AD4BB05C4B4B050C852EB0DD965DE89EB9EF5C3C336B575BA8F8C0799A3967E6 + B77BFEDF3707F9BE0F0F73A00044088537EF03300D92F4DCBCAA9EA4D7E6835E + 3E248A0916A3D79C927A240DA086D61218606B64F9085FC3EDB22DFBD71C515F + A673F66AD87034DA0C1C1E8DC795E685F962C621645BBFEFAB21F8014221A628 + B5BB52A92E387F7E1AB2D9DC7739427650D459890D48523B87D02F9D9DED4A4B + 4B136432A7603E5FD8FF16210321783826EDAE8DC58E6E4D3D0D98C5E07B1E9C + 3C7D01F2F385CF28BA9BA25E759B72B49767B81FBA3BDBE5358906C8DE9C8333 + E7A66EDAAED7B34FD36E85E0A0243DC5B3786C4BC766311157C2173D8AFE767A + 028A774A9FEC51D583E13663C27616735FF674B48971A50EF2B78BF0FBB98B05 + CBF39EDFA7AA53CB321C16842EC0F8C7CE4DEB95B5897888BAAE0BA367276191 + E8EFF98C3F1361B9A3C9273771753119EE2C12C84C5CD42CDB7931ADEBE3C1F3 + CBC0600CCA35AD18713FB5B53CBE767D63229CB3CB0E8C4DFE019EEBFAC9B68D + 4816A24074034627A6CBB6E3BED2AF69C797E2B807AC568FC5DF3FD1F8587B6B + 530535EC4AB1A33C0FBA69C1D8F415DF74BC9D7D847CFBEF62DD170C51597E14 + 101C6BAEAFEDEE08D0BFD7ADE0DFFE3903BAEDBCB197904F57567F559056950D + DAA84E88BC9E6C6E02CC30E1FCA261C289EB59CBF29C97D2C4C8FC2F90623CC5 + BE6E10A3AF76D1B660E89AEB55BA26800B34BFF15C9E589E9F0A2AFB9FE02100 + 8995A5638DA2F06C076D8B603E583FB550A0A80FDD0D0AB014CD53F4CC42B1E0 + 95CBDD7DA679EDBE6025377F641D6D9FCD31A9921B5D3B7BB70473A6F995EFA3 + EB3287DF49D6D7018F19C8527472B134EBD0E2A7356D6E1938208A8D3CC63F6F + 1022AD1B04A1BA85295583AC651ECF95D4EDC1774D7FF4DD28663E4AD23E8C60 + 0C33860197347D4A23EAD6B7018A5570F811E9603DE63EEE11FFC1AED0F6B86A + D9E1471F9C244BF343B2FC66846E688B282089A2974D1366ACF2F2C36110219A + 9D3CB28EC5BD1B390EAE390E5C2E9769E0E8853D84DC5E59CD2149DAC923F8A2 + ABA686ABA5998ED33E2D3A6E1F7DF67035C34A41E4118541BD05DF9BB51D2FB5 + 5FD76FAD767C0D89E2369AE5374D0C23CEBAEE8253769EE9338CABF75419CB72 + DA769CCF0F18C60D78C0188A467B1896ED77C1FEB09F5897AA193ECCF1173677 + F3E8118EA7C80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Rename file' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002FD4944415478DAADD36B48D3 + 511806F0E73F9A97CD3493A4965161A4204A111225421AD94DBC1095955D4413 + 294B502B2B2D13934A2D754EB4348202B5E822D9D56B61924AE6252D5D6E6E93 + B9A54E37379DEEAF271D2459BBF4A1F7EB79F89D179E73284208E26ED712FCDB + D46969ECCC3BE9A33616A07E8199915B404CB0B34735AD62BC6C14D66B69B27D + 162D00585676B6CD9485055F35AA8E8ED66A45F340DD94E94515AA317C950CE3 + 79434FA39A90DD1BE2FDE3BCDC5C1316711CD1DED042F72A4743F4606C7E35B9 + 19E50BAD6EDA2468C564403EAC41A75881C755CDDD0B3B6B38075993360EEDAD + 907EE5A3797C3C460FC6F02A48D6C96D189B300DF6CA95A8EFE89BB9780A3D4D + E5F0F3F183D3B225682CBC0BCB22AE40A054BAE8C15339AF49F6A91D506BA7CC + B6323D9317B695C1915982EF029BA9016630A3B54B4EC96AAA820ADF9496E9C1 + 13B7CA0937C61FAA71DA3C486B21AA0C86DBE69560D2ADE8EB56A0A0DC839B96 + F5ECF45CCB511965243736102363E641F18774AC7515826D390C9D5A889EF611 + 1DBF6D725560B2443A07465E7F4272E383A1D098062794224C0BE3B0C2750518 + D323504A3EA3EEEDE899804449C6BC77187EF521E19DDD8B218DCE2428A908C7 + 7A2F162CAC97624C528D968F7271653FDF393919F43C302CA598F012F663506D + 1C540A5E6339FB11EC39EB41ABA5907DAB434BBD744BC0A5BE77BFE7F4E091CB + F749DE85431818350C92992246EA43E1E1ED82052C4F0CB5E5E3E97B368E27BC + A0FECCEAC1D0C47B8477F1B05170A02913EBDCBB60ED780C1AD12B08BE7C424E + 4B100A53630C8307CE17115ED251FC50FD0D6A659FC010A5C2DD771F08E50259 + 631A44B41F726A6C50722DC2301872EE0EC94D0A33B8617FD323D84E7463F132 + 3B30755F20960CC27E6B3152724A517A23D238C84D0C33588AB0BA08AE1C16D8 + 6C36A4BD1F409CFD61CDF1C695AC07A64163EDAED6D4212E620F24BD423CE900 + F82AD6DC995190A228631EBC376DA4D73839F41FD9E5E6E913962E839931BBA1 + BDBA03DF3AB399B5B530FF2F7F81FF737E022C64ACC8B5F923C8000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Show-Modify file properties' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000028C4944415478DA8DD36B4893 + 511807F0FF9B04F525480223212289FCD00289206FA58996742F978A9A4DC334 + 1DC62CF332674AA3AB3A75F39E2C4C94652B3361CC2E666E2A158112695A08AD + C8D469CBCDC5A6A7B9E94AF66EBECFA7C373FEFCCE81E71C8A10828C9A4E0266 + D56D3423BC223578C659805A028B9282405CB00B5B5D031AB4F57E561BCDE480 + 337419689A737D51ADCE80A16FD368550FBFB568E135E7832768415ED50B529C + BC1F46D3BC4B70CDEA55189BD26350338556D5A7819294909DB460BAA4838852 + 4361F8E31A1C1DFB05F5078DE5E0398C7C1D47595A18450B72CB14A4947B1033 + C6B915A7326FC94FEA662192A9204E0FA7072F943C25E5E987A19B35AF082E55 + 6E8D0295BC23F460F29D5622E61DC3B48139C8AF6A47F5E5E3F460D24D39115F + 3A01ADDE11BCDDAC627C881D4C14CA8824938D49BDC921502C53E37AC23E4658 + 76FD2B1BC8296C2292AC484CCC3882A52D3DB87676AF5344FAAE12AC8D3ED8E5 + B9077C69970D3C93DF402A726230FEDB1114CB7B50101F488B8D4C0E22E27E30 + BCDCB7E3615C27F2EFBDB681B17C2991E4C6D182958F7B2188A307135A8EE2FD + F73E34442AB0C3C307850D8B6074F65D22C98BC74F9D2358FBA40FB931010EFD + F6A1071028D370C89B8DC250B1B5276CECB68151576A89388F437BC3BAB63E64 + 45FBA3FFC71BC806EA7135A4CCF2E74D38D5E88B59931EF2D85EAC5FBBC19ABD + D1A4FA0796F339B443590033A3FC21E8488172F81102B68461D3BACD90F5D721 + 235008362BD19EBDD5FC1FE86C8A9E5EDB9071DA0FE679137294E7A01A555AFB + 5BDDBD21653F831BE566CF16599E9815A428CA99075EF54B7231C2CFBA5E400B + 9EA7E08BF623B282446079EC5E9615B53004B9277DC1A4CA2D4F8C11C8485BAC + BF86DB5F9076A067350000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Create directory' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002894944415478DA6364200384 + 8636B0312A4A9D01321FAFEA4AF346966324C7C0B0D2195EEA0A925BFFFCFDC7 + 70F7F1CBA83FFFFE1C636666517BFDEAC561A20D0C2DEC136262E169033A810B + C8354A0AB0D656901261A89FBE8941908F8B81859989E1D5BB2FAD6003373748 + 89FC6761DE0E74B009C288FF6718FFFCF5F46D78F606C40B299DE9C6CFCDB133 + DACB9C81958599C150439EE1CFDFBF6083D85899194AFBD6303C7DFDDE911162 + 18CB01597D336D253307B8718F2F9E64B877EAE055C63F7F1C2086363085954A + ADB232500E4E0FB167F8F9EB0F0323D03920030F9EB9C9B070D3F1032BBBD31C + 1937B5CA9D91D335305632B3C4F0E6E34BE719EE9E3A01E77FFBC7CBB0E57B01 + C3E4CA18061E2E36A0818C0C2078EFE96B86F639DB7E7FF9FACB9771538BDC7F + D7443BA2C271D62E75061E0147063F070386FFFFFF31F0F170325CBCF594E1C9 + CB770CAFDE7E663870E6E623B081C446CC9ACF450CE212320C2F819AF9783818 + D243EC18E6AC3BC2F0E2CDC7ED40435880E1BE136CA06FE519A20C7CF6FA0BC3 + ABF75F1914A504187A979C041ACAC770F9DA358647273FB01E38D0F0079C0E41 + 067A156F60F8F671372C7691E8FFD0C4FA1F43EEC91B1686F6E5420C6A4C4718 + 6A9A17C3931FD840CFC2A50C3F3EEF4768FA8F6E30AA05C816ED9BBB98C1AFE6 + 11AA811EF933187E7D398AE4B9FF44D0108BF7CD5B8969A07B6E37C3EF6F6730 + 5CC64884C17BE76DC06260560DC39F1F578873152C4CA196EF99BF1DD340FBE0 + 30865F9F6EA019C040800FA18FEFBE8669A0675E27C3FFBF9FD0029CB06120B0 + 7D6A27A681D69EC60CFFFE7C26A899118B05C776DFC3E2C2EC62BC06C1F9FF31 + D56C9F3609C3C0C340DA86816CF0FF905FCD637BB881FFFF139D95890200B8D8 + 399E6C933D3B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Browse back' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001394944415478DA63FCFFFF3F + 033501E3083490B0920626F918FD4086FF0CDF1E2E0DDC4E91810AD16B2D1818 + 99FBB978792DBE7DF9FCE3C1E2004EB20C948A582ECBCACADECECECE192D25AB + C4C02728C670E9F40186078B0309FA08458194EF4C2E3601D172262696722959 + 7976092979867FC020FEF3F73FE906CAC7AC8B6664646C179790925550526560 + 6661031AF40F8A2106120240BB8F30CAC7AED364FCCF344F4050C0424D5D9381 + 9B978FE12FD0008461100321F45F863FBF7E32FCFEFD139506E23F40F6CF1FDF + 188006AE5F2B2921196460640C340862004506CA45AED16664615E2028206842 + 1517C2D29A5CAC7E34E37FC60E0929292905455018B2921786C802A2A1AB78B8 + D8592A9959588AA56514D8C5A5E4C88F65642019B5569E8D99B195E274880EA8 + 96535001897979F0175FD43610005BF80C6CFEA10E8B0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Browse forward' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001474944415478DA63FCFFFF3F + 033501E30834901845F2D1EB3D812AB91E2EB9B89E81A1E11FC5062AC46EF8CE + C5C3CBF1EDF3E7130CFFFF163E581A7C824203D7FFD7337560F8F4FE15C3B3C7 + F7187EFEFCBEF4F7EF9F95CF56443EA6C8401666460626A08E97CF1E313C7DF2 + E0E7BFBF7F3A7F7D78DDF96C73FA37B881F2B1EB0F03D5D810321466200B3313 + 18FFFDF38BE1C1BDDB0C2F5E3C7FCAF0FF5FF9C325414BC106826C67E7E06260 + 61656760656347D040CCCA0AA1599899A106210C04616620FFEBE74F0CB76E5E + 67F8F0FEC389FF8CFF922836104233315C387796E1F98BE7EBA8E6C2F71FDE9F + F9FFE76F020561F89BE1C17D60183E7BF6EC3FE3FF8A478B2F2E05A5518A62F9 + EF9F3FBDDF7EFE697FBD3AEC0B45E9F0D7CF1F2B7FFEFD57FE7C59F04332D321 + 24A77CFDF2E9CCFF7FFF0A1E2D0D3E8A4B2DF5F3F2E02FBEA86D2000BB8DCC79 + 6E949AD00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Large icons view' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001384944415478DA63FCFFFF3F + 033501A342EC86E70C0CFF25A864DC0BA081EBFF87F93A51C5B8559BF731800D + 141295A68A81EF5E3F851878776100550C548EDF0031F0D67C7FAA18A896B811 + 62E0F5B97E543150337913C4C0CBB37DC102DF52C2301471CD5985C20F98F00A + 43CD86023130AD9BBA1962E085991003BF87796028E65CB50385EFDD790F43CD + D67225306D900E35F0EC741FB0C00F0F6B0CC51C3B8EA2F0DD1B2F63A8D959AF + 0BA68D33B7400C3C35D51B62A0951EA681C72EA1F09D2A8F63A8D9D76E09A6CD + B2B7420C3C361962E02F1D050CC56C571EA0F0ED8A7663A839D4E70AA6AD72A1 + 061E9EE8C5400D609BBF0D62E0817E4FAA18E850B81D62E0DE5E48EC4E5D7F02 + 435176A0050A1F9F1AE7E21D1003777663261772807B29D4C06D9DEE5431D0AB + 7C2703F5CB43AA97D8D4361000E0CC82B98CD779820000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'List view' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001584944415478DA63FCFFFF3F + 03350123D50D5488DDF09C81E1BF04958C7B013470FDFF305F27AA18B76AF33E + 06B08142A2D25431F0DDEBA71003EF2E0CA08A81CAF11B2006DE9AEF0F16782A + 210AA6A55FBCC6AA41AD5B044CDF2A7D835D3E7123C4C0EB73FDC0022FA4C4C0 + B4C4B3570CD5F30FC115B626DA8169CD5E8885D78B5F63974FDE0431F0F26C5F + AA7859377533C4C00B33A963A0413AD4C0B3D37DC002C693C5C1F4D9DC975835 + BC59A305A64542AE619537CEDC0231F0D4546FB080D95448FA3E95FD82A163F9 + 51B8C28A486B30FD7E9D3698160CBA8A55DE2C7B2BC4C06393BDA9E265AB5CA8 + 8187277A51C540DBFC6D10030FF47B82057E6ED105D3EC3E97B16A3810770B4C + 3B2C52C32AEF50B81D62E0DE5E0FB0C09F6D7A609AC5EB12C3D4F527E00AB303 + 2DC0F4E184DB10972C50C52AEF5CBC0362E0CE6E0FAA78D9BD146AE0B64E77AA + 18E855BE9381FAE521B54B6C003BD594B95F09EDF80000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Small icons view' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001D64944415478DA63FCFFFF3F + 03350123D50D5488DDF09C81E1BF04958C7B013470FDFF305F27AA18B76AF33E + 06B08142A2D25431F0DDEBA71003EF2E0CA08A81CAF11B2006DE9AEF0F0CC6FF + 0CFFDEBC6160606262601216C650FC1F08DF7D7BC3C0C8C8C420C4298CD540B5 + C48D1003AFCFF563F8F7F60DC32B5D2DA061220C6297AF81153C5AA601A6E5A2 + 6E30BCFBFE86C17A9A2683109708C3D1CCEB60F1950157C174F8066D30AD99BC + 0962E0E5D9BE0CFFDFBF6378EF68C7C02424C420B0EF1058C1B3159A605A2AE2 + 3AC3871FEF180216DA3208700A316C883B0C165F1B04B138789D1698D64DDD0C + 31F0C24C5FAA84A1413AD4C0B3D37DC002AD4B8F80E9EA681BB2F8C6995B2006 + 9E9AEA4D15179A656F8518786C32C4C077DF5F8369214E51EC3A80110706C088 + C306AC72A1061E9EE80516B09D2909A60FA73F07D37ED57B19DE7FF9C9B0A9D5 + 854190878DE18F9A14589CE5D63330FD7DA71DC3FF9FEF18B83C8091C826C460 + 9BBF0D62E0817E4FB082C0257A607A7DCC25301D50BB8FE103D0C00DCDCE0C02 + 4003FF5BEB83C5198F5E04D3BF76DB830D64773B0836D0A1703BC4C0BDBD1E54 + 0943E7E21D10037776430C9CB9F104984EF7B7208BEF5E0A35705BA73B555CE8 + 55BE9381FAE521B54B6C0070B7CDB98654E87A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Detailed view' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001364944415478DA63FCFFFF3F + 03350123D50D5488DDF09C81E1BF04958C7B013470FDFF305F27AA18B76AF33E + 06B08142A2D25431F0DDEBA71003F7B55AA248EC3C7496C1DDCE98683E0C3855 + 1F8718B8B2480B45E2DCD53B0C46DA2A44F36120BCEF1AC4C0EB73FDA8E265CD + E44D10032FCFF6657823230E161479F2926C03755337430CBC30D397E1BD1CC4 + 40C14710039B161F862BAC8BB525C807018374A88167A7FB50C5CBC6995B2006 + 9E9AEACD60361592B64F65BF20DB40B3ECAD10038F4DF666B09A0E31F05826C4 + C09E9547E10A4BC2AD09F241C02A176AE0E1895E54F1B26DFE36888107FA3D19 + 7E6ED1050BB2FB5C26DB4087C2ED1003F7F67A30FCD9A6071664F1BA04A6A7AE + 3F0157981D6841900F02CEC53B2006EEECF6A08A97DD4BA1066EEB74A78A815E + E53B19A85F1E52BBC40600550A9DB9A4A46A840000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Browse to parent folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001B24944415478DA63FCFFFF3F + 033501E3D0309091919161738394C87F16E6ED40211384F4FF338C7FFE7AFA36 + 3C7B43C82098C3C0066E6994061AC6724056DF4C5BC9CC01AEE8DEA9030C8F2F + 9EBACAF8E78F032143510CDCDC267F464ED7C058C9CC1243E1BD53C7191E5DBA + 40C881477CAB1FDA220C6C95FFEF9A684F76B8ED9E7F90016820238A81944606 + 86814E49A10C8C0C3073FF43310351F4DE799B310DF42ADEC0F0EDE36EB8A2CC + CAF30CD3DB0DE01A19F118B87FCE1C4C033D0B9732FCF8BC1FAC24A3F20AC3AD + 7B5F19D414B91866B46BA319826A20C8A27D7317631AE8913F83E1E7976340C3 + 6E30DCBAFF1D1E366A8A9C0C33DB557178F93F18ED9BB712D340F7DC6E86DFDF + CE40D5FF67708CBCCEB07FB9065EAF22C270031603B36A18FEFCB80257E41079 + 8FE1C07245ECAE828529D4F23DF3B7631A681F1CC6F0EBD30DB846AF3206866D + 5D0C6806326075E5F1DDD7B0444A5E27C3FFBF9FE00A938A0F31DCBCFB1167BA + 3BB6C10BCEDE3EB513D3406B4F63867F7F3EE375096AF241A839B6FB1E161766 + 17E33508CEFF8F6EE17F86EDD326A11AB8A555FE2850CA8A814C0034E9984FF5 + 436BB881D40400726C26E88C5778050000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Browse to root folder - remote' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001DF4944415478DA63FCFFFF3F + 033501E3D0309091919161738394C87F16E6ED40211384F4FF338C7FFE7AFA36 + 3C7B43C82098C3C0066E6994061AC6724056DF4C5BC9CC01AEE8DEA9030C8F2F + 9EBACAF8E78F032143510CDCDC267F464ED7C058C9CC1243E1BD53C7191E5DBA + 40C881477CAB1FDA220C6C95FFEF9A684F76B8ED9E7F90016820238A81944606 + 8681BE9567C8366C73BB09A6815EC51B18BE7DDC0D0B6224FA3FC38F1F7F19A2 + 72CE30C84973324C6CD4C150B37FCE1C4C033D0B9732FCF8BC1FA1F83F42D3D2 + 0DCF18E6AE78CA30A9519D41479D1BC5404620BD6FEE624C033DF26730FCFC72 + 0CAC0059C377A0EB2273AF33C849B1030D54C6703D08ED9BB712D340F7DC6E86 + DFDFCEA0B80C442FDDF08661CECA370C931B641974D539D10C84D07BE76DC062 + 60560DC39F1F57505DF7F32F4344EE63A0EB5881064A225C05F52ACCF23DF3B7 + 631A681F1CC6F0EBD30D140357EE636058B88381A13BEB3F83B60272BCA2BAF2 + F8EE6B582225AF93E1FFDF4F7085DF7FFC61084EDBCB202FCDC330A3DD0AA761 + 20B07D6A27A681D69EC60CFFFE7C862B5AB98F19E83A16A0EB7E015DF7172ECE + C8809E07FE331CDB7D0F8B0BB38BF1BA02353921ABFBCFB07DDA245403B7B4CA + 1F054A5931900980261DF3A97E680D37909A000033D02DE8BDC682F100000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Browse to root folder - local' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001DE4944415478DA63FCFFFF3F + 033501E3D0309091919161738394C87F16E6ED40211384F4FF338C7FFE7AFA36 + 3C7B43C82098C3C0066E6994061AC6724056DF4C5BC9CC01AEE8DEA9030C8F2F + 9EBACAF8E78F032143510CDCDC267F464ED7C058C9CC1243E1BD53C7191E5DBA + 40C881477CAB1FDA220C6C95FFEF9A684F76B8ED9E7F90016820238A81944606 + 8681BE9567C8366C73BB09A6815EC51B18BE7DDC0D0B628665EB1F33CC5DF180 + 6162A32E838E061F0323C37FB81C3ABD7FCE1C4C033D0B9732FCF8BC1FAEE8FB + F7BF0C51B91719E4A43880866A2019826A20C8A27D7317631AE8913F83E1E797 + 63282E59BAE125C39C152F1826352A33E8AA736171E17F30DA376F25A681EEB9 + DD0CBFBF9D81AA8768FAFEF32F4364EE5DA02BD9182637C8E2F4F2DE791BB018 + 9855C3F0E7C7150CC54B367C6098B3F23DD04009A02BD951BC0AB37CCFFCED98 + 06DA078731FCFA7403CD4006861FBF181812DA191864451918BAB3B047CCF1DD + D7B0444A5E27C3FFBF9FD0021CC25EB8E60EC3CC25371866B45B31E8690A6258 + BA7D6A27A681D69EC60CFFFE7C464B61FFA1AEFC0F742507D095FF197AB27E60 + A839B6FB1E16176617631884EC0A38FF3FBA85FF19B64F9B846AE09656F9A340 + 292B42390217009A74CCA7FAA135DC406A0200D6D22DE8F20C73720000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Browse to home folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003184944415478DAADD45B4814 + 511807F0FFD9DDBC8097D4B0D42225483032518B34211F8C9410A132897CC915 + E9A1AC080C9432CD88C4A4A49B965A594199995658890F9A16A23E840F5DCCBB + ADA6EDAEEE7A597767E6746616C7D5BC051D9839F3CD9CF9CD37DF9939042B68 + 89E7EFE75350D5E3ECA3A9CB8D254B5D8C3F9DEFE8E0E2DEAA542802A82080E3 + 856F460DDD5E5DA236FE339870AE789B1D513612429DA840D9190A81E7210874 + C22C98232B724FB4AE183C92517C8C10728B2144A554206A5710588C77F52D98 + 9E9E6628D389905A9E977A6359F070C6BD670AD0784A295C9C1C11171586003F + 6F082C6EEFD4A0FA7D03F4FA3188D74194D52FAE9D8A5B108C4F297455799036 + 02BA8952011BBD3D11B7271CBE5E6E6035042700260B8F1E8D0EAF6B1BD0D9DD + 2BA144A1EC1D377021750FD3B532B83FAD60BD1DB1FB0E088E62F1B707FA237A + 7728D6B939412C1FCF76E2C6891B0F68B446D47F6C41734B1BC4F10C9D324F9A + B6BC2FCBE926F1676F46108A0A5618CF552A25622277202CC81F6E4E0E525633 + 9815840CEB8D26B4B57F416D6D1DCCACAEECAD7494E30F9183670AF4EC31AB59 + F2389E188BCDBE5E70B457B11BC1B299C166215B78C264414B7B076A5E578133 + 8B283F490E9CCCCF62FA0695BDF3D1D21C35A6B9F9C05C4C8E79EB71EF901EE5 + 956F30DCF7B5907D5E06795212D28AE8834BC91837F17F6532FFD8361E181EC5 + F3CA1A3CCD4D21736659044B73926198E2E44C6CB3E26C30DB583332868A978B + 802517D5189DE4E51B7DD7D82FF81735778DCBE518FC3D86CAAA45C0E26C3574 + 13D60C3B06B4D813E48DE8ABBFC1F3EC1C6791FAFA737E28FFD48FB51EABA571 + 2258FDEAEDC2E0DD2C35B41316E9C93F7E6AB197815157340C9B059BB2FDF1B4 + A91F9E1EAE12F84B67C0ABC5C0A20B491819B766D8C9C098601F44E6F4583111 + E52D68BE1C88278D7DF07477953EFA11FD12E09DCC240C1B2D12D8C57EB17D21 + 3E88C8FC2E6727F66D79A178F4C10A8A6D49F0F6F9240C19CCD22B770FEA101B + EA839DE9ED727662FFF97A38CA1A7AA51A2E0B2E34A33F84E039E056E78EB9CB + 155BD6C4454206A565E83FB63F207C571915CDC2C30000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Refresh-Reload folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000037A4944415478DA95945B6C14 + 5518C7FFE7CCADCB6EA73B2D355664BBDB76518AC662A206C2033E882F90A096 + 70339AA0BE197D652D0FFB402DAF1ADF505E305A03254031A4F80009A1A00F0D + 95D2A61764B772ABECA5DDEDB2CCCE9E399E19B6BB2D2D4DF9922F67CECC97DF + F99FEF7FE610CE390821783A1A3B5735806A1F88C70DCE94803C12B5094EC8C5 + 5933D5978A22E3D4BD14AD5EAD68F219F17DF6F6C1E4FBE46960C3617FA32A91 + 4E22917D5EA38AA83E05B22AC1A9E31681992960763A9FE3CCFE8E13FB270A7A + 3AD8D4F87AEC9F49082059000C1C36765085FE5AD3B0CAAB377841686521992A + 5025D54D1429A6E20FF1E0EE7F2C180A48ADADAD38FF7BDF42606357CD475491 + 4FD4B7F8092B3098590BDCE690843AAFDF03DDA8864A352825A84A55E4732656 + 1B7550C4FBB3BDBD15E0CB5DFA3A4552067CF51E6F2E91E79CF173E0E8B74192 + 42638050BEDDE3F3B435B506E0F356BB40173C6F819ED3A72AC05057DD05B94A + 7AAF68B2516EB37DF18E9981452675195FCA8AF4FD1B6FBD46FCD54619A45067 + D4D07DAABB020C1EA9FD5928DA4C0A85CDB168EE019688929B579BC2A19670B8 + C5DDB203524ADB3F7EF2F862539E154F60CAA54070CD86F5EB5F2DA9D34AEA9E + E4B1DF8EAD1C28B63BD0BC2EB4B1B9B949C03457D17C73242AE3C7EEA32B0706 + BFADFD13046F63F9B826809BE67A78599CF42DCB9673FC15FB26F5CEB2258E38 + D7E52375FCF33D5FB82F995D44918B7446DB72C7D1F1510C0F0F0FC622E9B6E7 + 0232CE5C002B819C1C1CFA1B13B76EDDB44C6BEBBD6836B162E081DD07CA9039 + 75236323181E1999B0CCE2A667C18251EF8B5C55FB458FFB6307531F97819FEC + FAD485305E814E67D2B872E52AB72CEBAB7824FDC32258A7BF0D94762B55F22B + 56BEF8C7ED48725B19B8BF7D7F59199BA7349BCBE2C6E010323399EBDC26E738 + 30293667887B630B91E9F69A7A1F999ECAE62C66BD792792192B03F77CB8DB05 + 24D209F874DF823E3A994AA5904AA4613E36010A78740D4421B8373AC59955DC + 158FCCF42CE861FBCE7661C0758C4D8CB34060AD146A09425268452DAFB85E28 + 16F0F0DF2492776772B665EF9D3C94EE5D644A381CC6F8F8D80D1BF64EC2E967 + 5492BE36EA6ABCBAA143D6A87B10F3F9C798CDE4904966C51DC27F2930DE71FF + D0747C2997FBC45C2F98D68E39376BA3D07D5AAD73A5BF2B7EA517447915E1B8 + C30986609B3DF18E47F7973A36FF03129D19F7DB1C17F60000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Show About application window' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002294944415478DA63FCFFFF3F + 0335016368D6541E261ED60940B61F108B9269CE6B20DEF4EFCBEF02C6B0B259 + 1BED8CD5FD029C8D1978B838C832EDCBB71F0CEBF79C65387CEEE6269081BF27 + 55C5B1B0303363557CECF40586190B5733A8AB283054E625333031316155F7E7 + EF5F86BCB6457F18C3CB66FD9F509580D3F6D2866E86078F9E82D9CD95790C1A + AA4A38D516B42D60001BD853118F53D1EC45AB18F61D3ACEC0C5C5C930A9BD86 + 819B9B0BA7DA928E851003DB4BE3702A02A5821BB7EE32484A883108F0F3E10D + CBCAEE4510039B8B62B12AA86DE96678FAEC059C3F6F5A2F5E036BFB16430CAC + 2F88C1AB302DA7044CCF9AD283575DE384251003AB72A3F12ACCCE2F05D35327 + 76E355D7367929C4C0B2AC28BC0AF38BCAC0F4C4BE2EBCEABAA62D831858981E + 89576149693998EEE9EEC4ABAE7FE6728881B9A911781556945780E98ECE0EBC + EA26CF5E01313033291CAFC29AAA4A30DDD2D68E57DDF4792B19C0592F292604 + 98F330B354636D15568DF5CD6D18627FFFFE6398B7640D38EB6DD65053F63136 + D465606767632007FCFCF98BE1ECF9CBA00CB085D13377121F1F27471F503C08 + 8805911506FA7930080A20720728919F3D7F85E1CDDB77E866BE07E2759FBEFF + 2862C4656B78D9CCCB817E9E3A20035FBF79CB70FAEC2586E72F5E5F6364F8DF + B0B23B7D352E7D780DB4B7B5D4B97FFF11C3A327CFEE3330FC6B5ED9F5622103 + 43C33F7CDEC767E03C86FF8C6EFF19FF77BD7AF57CD681050D3F88094F000783 + D9B765B883F00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E74944415478DAADD45B4853 + 711C07F0EF393B3B739792D5B21A6DCB4B4B5193D216829A35487AF042E08342 + 055E5E7A087A09440703EB25821E7A2B7B3022C3E8A24BBB623D088A9B979520 + 9934775154D44C7751B79DD33AA7DC267389F483C3FFCFEFCFFF73CEEFF73FFC + 096C278C203522791501A29C65D954806042592B58F699DF1F30D3B4B08B25E0 + B6372CEA897F59AAE6C45401453E17EDA68FC914620825144808C0F880A59965 + F83C6B9EE4148D74F2BB1D930D8B445C5065942805B468245125DB4752245886 + 8590A6B037690F24B40C624A0CCF0F1FD44A0D3A4DA63068322A152C25781D2A + 252FCCB1966BA4DB474A8585FED5A08F0DB28F59300E026491582AD2679EC880 + 5C2687582809C152B4BF68E7411EA33EA972749929BAC2BF185C56336A2D6F57 + 6710F4B24126CF6EF869FBBDA234EE520845426BDAD16465C6918C0DF0E1D356 + 1EECBCA9B6A8B373735374051CC43F3C3A69B560DCDC071AE1CEDC22BDA0B56A + A46BD321114A3950244840CB93FB7FC01B6AB6B8EE4A144444CC113507AA4C6D + 189D9F8DD5F2FE1098CF8167EAEAC39BD95850341AF9C29E078F50D6E4D82881 + 076B2F738B5FDEF760DEE1DAD6AFB9458C71E0D9DA6AAC2C2CC2313A075DE5BD + 1D4941FF12BA6FEBFB79B0A612B6E151EC3E588CA4E4C3F0AFD9B728333A1739 + DA0687601B1ABCCE81FA9A0A0C747C446E452304822930C195B89BA3FBC8E7CC + 2FBBB03CBB90C381A7ABF5B0740FA3E06223FCDEA13850E4A18547BFD78BDEB6 + 57AE528353C58159455970AFC8A03D958FE0BA33E6C9C61BA7C7ED18EBFDDC12 + 3AED7A0E4CD228A04A3F0911E506E30F974B6C7C113621D1F389B129CC3917CE + 971B5C6F3830414CA3B8C60882F0856EA4AD7A160B051826800F2D77D619DFAA + BCD438EDE5C0FD871448CB56830978626E8A6E01A20EC5EB5EC7489FE35D5993 + B384CB7736ABA68E9F2B511ED066C7282706BCA90513E65E7C1B305F2D33B8EE + 726047B3BA3574895DC2CEE36B20B05674C1383BC781E19EFD9FF8053E4F61A5 + F08029D70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select files by file mask' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000D34944415478DAADD1B90E82 + 40108061794B3BB93CD1686722F76562A7F1562E3BDF122310C86C320CC932CD + 14FBCFD7AC90E7F9A0CF11FEE070FBEE45FD1EC6420D7E42950B1BE91104B340 + E10245238660CA094A2C98F838289B71B1A90680B187C78A55825403C0C895D1 + 58B59362530D005F2DF1A402A906804FA789A74ED2E923D81B003EECE671E676 + 03D91B00DE6D093D9CBB69B1A90680370B8F175E09520D00AF261E6B7E09520D + 002F2DF1B202A906806743ECF411D8AC820C82279D0F5C870C78DCF1819B3D03 + 7269D5D4609FF3031DFED1D91353D3FC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Deselect files by file mask' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000B24944415478DAADCFC90AC2 + 40104551FB2FDD99C959D19D60864E6710DC29CE9AC99D7FD9224842D52AF072 + B7C53B50426BDDEB32F103FB9B5727EA673F1435F84E1D081BB81905ABC48640 + C3CB295882A0C9C122C640CB67601E61A01D30305316043AB2A0E01304471C7C + 840D380E8B5608DF10F02E9BE344B503F986803769422F4F5549C16B8081B388 + 81171F03E73103CF20B8E0E0C93320709954143CBA18B84A1978D862E07AC740 + 48FB57835DF6054C22B9D9398A2ECD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select all files' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001F34944415478DA63FCFFFF3F + 03350123C8C088F2D954317545672A23DCC085AD291419165F3D07D5C0052DC9 + 141998503317D5C0F95003A7AFDCCF70FDDE33868A146F06295101AC9A9FBDFE + C0D031672B8386A22443568413582C11DDC079CD1003F3DA97327CF9F683C140 + 438E212FDA15AB819396EE66B870E311030F1707C3A4CA68B058522D9A81739B + 20066E39788161FDDEB3447933D0D998C1C7DE00CC4EAE4333704E631258E2E7 + AF3F0C657D2B19BE7EFF89D7306E4E7686AEA27006763616303FA57E1EAA81B3 + A00682C0D683171936EE83B8B226C39F414E5218CC7EF4FC2D43CB8C8D60B6BF + 933183B7BD3E5C4F1ABA81331B1006825C59D90F71A59EBA1C4376A40B587CEA + F23D0C976E3E02BBAEBD10E13A10486F403370467D128A97B61DBAC8B0693FC4 + 95D569FE60BA7516C4757E8EC60C5E76FA28EA331AD10C9C5E9F88A200E4CAEA + 09AB20AE5493038B5DBA05715D6B41188AEB4020B3713EAA81D3EA500D0481ED + 872F326CDE7F0E45CCD7D188C1D3561F436D56139A81536B310DFCF9FB0F43CD + C4550CDFA031CE05745D4B3ED075AC2C186AB39BD10C9C82C54010D80174E596 + 031057FA3818317860711D08E4A01B38B92601AB42902B272DDAC1F00FA8AE20 + DE13ABEB4020B76501AA8113ABB11B482CC86F4533704215650616B4A1194891 + 69500037909A0000F2F028E8790D700B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Invert selection' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001AD4944415478DA63FCFFFF3F + 03350123C8C088F2D954317545672A23DCC085ADC91419165F3D17D5C0F9CDA8 + 068242E2DCF50740FC90E1E5DB4F0C6C2CCC0C9262020CE6BACA0C6AF2E26035 + DB8F5C62F0B4D103B3136BD10C9CD3940437ECC5DB8F0C73D71E62F8F7EF1F03 + 232323C39317EF18FEFCFD0797D756916650921165D87CE002034C5F4ADD3C54 + 03673540243E7EFEC670F5EE5306136D2506365666B0D88F9FBF19761FBFC2B0 + F5D045B025C800A62FAD01CDC019F58960896F3F7E317071B0610DA773D71E30 + CC5ABD1F450CA62FA3713EAA8153EB120906FC1EA02BD7EF3E8D2206D397DD84 + 66E0E49A04BC866DD87B86612FD0407400D397DBB200D5C089D5F80D2404F25B + D10CA4C83428C030102880A168CBA14B0C4BB69EA48E812B779E6158BFEF3CF5 + 5CD8BF640FC3C9CBF7B16A06252D501223C9C07FFFFE33ACD97316E8EDCB0CBF + 7EFF018BB1B1B200B39F2230F13F6378F7F12B6103D7ED3DCFA0222BCAA0A726 + 0357F81798ED1E3C7B0BB104A87EFAAA830CCF5E7F20ECE5206743B08120A0AD + 2C0576899CA410032B3333C3F3371F19CE5C7B080E025C6528ED930DD50CA426 + 0000BE382AE84BA590090000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Unselect all files' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002BC4944415478DAADD47B4853 + 511C07F0EFF29FB0F9C8A6A4C3670FB5C7148691A06925F547395F104330B739 + CDCCB0B7E46BCE274641A1A9E97CFD6362A529052162586492216A8569DA5223 + A399AF0DEB1F5BF79E8DBBDD6BFF84FEFEB9F75CCEF9707EE77EEFE5198D466C + 64F168509A59BB216A4B59328F019B8A95EBC212B3356CB0B1288935813E89A1 + 8FD318F8A0C5F7B925F26CBBC001417BBD11E8E781C1D1298C8CCF20323C1002 + 473E6439756CB0C10A9C5B30A0BAF53926677EFC73372E4EF6D02DE841AF3D24 + F6853C2604722E585F68027F2E1AA0AEEA8061E5370338D8D992EB927E85FD02 + 783CA4498F40BCC70B8A5C0E58579044DA2CAEED84F6AB8E2CF0F37645FC8960 + 085DB692F1D317C368EB7ECB80CE4E7628CD3845C140521E07D4A815181E9B46 + 7973B71973C3C58463B0B1D944C67D43136878FC12DC989D8F8F4080AF0794AA + 7A365843819A47BD7833324926AAD363E1EAEC48EE5F5358A319A3DB8C3E2A46 + BB79A707443BA08C0B430A17BC97AF40494D27A6BECD9133BB71596AC28627D0 + 648525468722386027AEDEBC8F65C32F78BA09909522C1997C0E58AD52A0B4D6 + 02965D92A29FC63AACB0A8501CA430BAAEDDB280D79325485573C02A951CF56D + BD1878F7992C88A2DAEAEC1964B0D351210C36AB5B4441653BB90FDAEF03456C + 18CEAA1BD860659E9C04B5BAA57B4D341224166C75F50F2A9ABB30A69D25E354 + 690444BBDD9156C001EFE6CA496C54150FA92CEA195072588CE321226667ADCF + FA31FEC58479099D71457E92C4E65C2107ACA0403A369A073D6BA261CF37057B + D96009F616DBCDC85446C2C9814FC6E95CB03C4786E6277D5444C6499BF444EB + 9D5A9787AB008AB8706C73E45BF258D4C806EF64CB30BF6440D7AB11F8FB0821 + F2F5C4FB4F33181AD54237AF67BE8C407F6FECDBE54EDAB4AE8C620E783B4BF6 + 1F3FABB575A18403AE4B3317036E64FD05375A8EE8881731960000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Display session log window' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002684944415478DAA5915B4893 + 6118C7FF9F2E7716BBA8A5A5A1D9448B60299830D00915114EA7B68C12926495 + CA3016394D731773365302752625087597E634E9A22E9A89374EBC28C243861D + E686B60E6CA9733AFD729F4C183BC0D673F3FC785EDE1FFFF77D089224E12E82 + 20202CAC20C706BA8850BBFBFEAEC703E59A3E7276720429E93908B5BBABA7EE + 02E157F8AE5F87ECE2CA90BAACB9CFBFB05B594CF1DB693B7253A311AC348606 + B0F6B0502DACC58DFBFDFE855D77768423B376E4A404164E5B3F42F25484D293 + 32DC1535A1A22580509A7F2668AA09F33062B9C978F6BE0EBF1C0B50E71AC0A0 + 71F07CE88D7F61FBED228AC7E6FE427894EB255BDF74E27C6F167EAEFEC0BACB + 89E6733A8853A5D499BCF54578097F3B2CE8345E038F9D84EB19BADD79C0846D + B70A291E9F5F46661227A8BC75F41E98DB4BA9CC5242F17020BC849E32D9A7D0 + 349A0751E2555C3CD61038A1562EA178F2DB0AD20FB37D44AFE7F448DACB87DA + A080C56EC260E938D8511CD4B4EB434FB8B1E544A3E1346C6B56B8B6B94CD086 + 538724C1FF505D5540F107D32A4EC4B37CA44BCB66285E5D4142CC1168CEF6EC + CEEB3B07C3FCC3CD4D203272875D2E80460B9E5075339FE2298B0369714C2F97 + 63C104E3E542A4356AC08C4FC0445909041D4F1023C880EAD150E809B76C7FB0 + 5825C5C6D7CF20E80C4470A371A05B0F1A2F2E70C27A9998E24F4B6BE0F3183E + 52DBA411C64B6290DB4F3FDED281B8A2126AAE7EFC328C2D9BE6B1282B001145 + 07C162C365FE8EFD0F7AC1CCCC0E9CB0A63C8FE22F562712F7D1BDF7B1BA8299 + DA6A242B5588603031A39483AFD2821E7B10DA9E61FF42FC477984FF006B8997 + E8838CB7970000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open new session' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA8640000026B4944415478DA + A5945F4853511CC7BF77F76ECE25B33FC3CA8CB68294EA41E98F6464AD5EC4D1 + 2AC8C284088A12247AA8287A518A0C849E245C618F3D14D16CB2479B4D337453 + B08768461AAE657373A36D17DDDCEEEDDCEBFED6987FF6BD5CCEF79CC3F9DCEF + F99DCBA1B0063534B4C9284DA99D58E7EB8E6BBAF4396A2DC0F3770CF5E5EAAD + E6688CC377A7FB62948B0ED134B3DB33FB7B40041E3CA613BEB63F1744C248B1 + 71FB1E50121A05EBD6A3B9B10EEA52155ABB4CD8A05480A12598F5851E2580FC + CD0EA3B890E7C92B1A808BB742DFEB76E1EBB8154DF5D5903234AA2A764048C8 + D01464521AB79EBCC18CD7AF4D025B1EC7817168BA4FF43FDB2DD855C2E0FAB9 + 5A842331506435C348D06F73E0D9CB5E980CF7A924B0B9DD984AF74FD2047861 + 9EC5A8D588CE7B8D2852C8089082F04CBA3C68EF36836517EB92C0AB0F7BFE87 + C57D7081878FE5F16B6210DA8A02E88F5792710ECAA2428C4FB8303D3307AF3F + 847EBB633A09BCFCA027994610478C8F053C211E91E8D268F0CB2B94A914A4F8 + 4102938B5BEF7E3B086F4489A0730CF262D5ED24F052DB3B1122284012B903C0 + 622C815F522CFC075C2404A65085D08F3E54A9151875B851BCF702C69E9F85ED + 833955C3A656133935020A026C3813944DD1793F02DFCC9097EC83624B256C86 + 339940FD5D13D91ED92AB73C2C9B86BB4E67020FB798D6044AE8D3537D26F0C8 + 8DDEBC801F3B4F65024F6AB5AB860C1D7D21B6350357D067B1A480076A75C3C4 + 1DCA2721F95F47EC5673F5B2B74D99A63CE3947E4E3972AEC93A494A30491A8D + E0E7C8A590AE4D9BB725EC14D9E2CE9502F99A13FADCF57B6F126BB6EA8439B4 + F284F9E82F3E361DA182274D960000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Disconnect session' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA864000002A44944415478DA + A594CB4F135114C6BF96D246A1150C22A10A3158C4AA80118CD477D08D2644C1 + 4774E1426344435BA310209A428AC617311512E10F70E5C28D0B36551A5011C5 + 0746A108220826486C4B3B0C6D67CA8C3363691DC052F42477CEBDE7CCFDCD77 + EE995C09A2B45A40BE2A41F5285621CF767B489DC1EB1D9DC935C7C5152E4F4A + 7C3C49903649B4C066557C43415E8E5EA58C47DBF3AE3E9F9FDA718E207E3629 + 9587D529490F37693365CF3ADE8C4AAE986FD91572C5BA85808A813E64B5B620 + 7F8306935E1F5ABF3B416CCC81B6BB13DA8C34BC78D733E1724EE44BCC372DEC + FE6365C226960D03D8E04030C6E7C84E1B48D3596C5DA38667CA8B31971B1A75 + 0A5EF60FC3E970E6969264B7002C3C5A2686B16275EC1FB1A90FAFE0311E812E + 3D1552A9145D4323E82D3A8EAAFB16E1F804E0DE127D682B3B8FD2D047B8C758 + 9D01AB3B5A90BE4C098A61E0E09476A4A4C1D86E0B037717EBE7961A5CF0732A + C0822469B86BCE40FBA90DA94B97E0E384078EB8046C01052745F1EBFA5282A8 + 10803B79202B2E9777531440F8580E08049A2A916D7D8064792CFAB9A67C3B5D + 87983D2540F9416C768DC04107B8B8BF5A006E3F641095E7A3013707A2A7C3B5 + 33AFAD48AC39890496C1E089CB883955FD3BE125E1BB5080BCF131D8699A1680 + 3A0EC82B63B8E1E1405E6A565766A06F6D60867A212B3E2F8A0F5B2D5871BBB6 + 51C2A05D006E2B32706A7855C034333F2C927D6D6D84A9EA62B829B9070C20FC + 737F97686DF0698318985168F83752D0BE3C9905D4EC33FE17B0DF7A4F0CD466 + 652D1E92D92678CDE75DE8B1DBC3C0682F8748E6A7FC7DD74D9582AA88D7D7A5 + 8A6A519BEEDEB9B1E07537E705D3B5FA1F32992C999F4F7A5CA25CBC2A51F081 + 4060DC7CB57C655440FE4CD7AECF8DA862A0F77DE8CC16A5F06F1649E12FBF83 + 4DFC21D598700000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open saved session' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002894944415478DAAD935D4853 + 6118C7FF07A50C22088695B4851612E492D85C0436CD4142BA218558A2084EBB + E8C26EA48BDC64664184302ABC28F42AC22E0ACC9641469FA340A7F62148B532 + F621385C1F6E9EF679DE8EEF19DBCE3C2D91FEF0F0BC5FCFEF799FE7BC874116 + A92B8E391930BBB14611902F4CB603651535A47F60081C07708420CE11DE43F0 + 89B5F4BD0B9D2DF827F072FF1DFE702A389E84640201EBF92601F8C0522023B9 + 398F00469D5680A3776CBFDA64BD9B0C1020BC256E9A39BFD1DD004680E53E97 + 976AF615690E27BBF175FC154EF785D0D9772FED46A0E040886089B74088C372 + 98808D803702E7ED5360462E291C0AA54A55A429A720C104A8AEE1053AAE0C53 + E0629050FBC102D138916CD1FBC1133CF0A28254B69D118198C4B8AAE1359A7B + 6CF0FE0222316948BAECD7F402F0485B7BEA7604C971D54907B4676D6B7D3578 + 79B5360134B650C087B1A7587479D60CC8942F982700AB8C8D08F8BFC335E383 + A6FEE6BA60F1E84F0C76D78605606B3DE6A667B0654725F20B0B110D7F13F574 + 458C682EDE5BF1739353989B9A3C4781BAD63A8CDF7F06555D177272BCE0E281 + ACC1E204C2DAC4F0432C2DF84B29B0A25107C7E834CA9BBB1065A72401494F56 + 2789B22CEC43368FDEEC96536089B604C1C066141F3C8478C49D1140B227E0FD + FC271766EDEF060C26573B05E6EF9241BEB70C1B7383E0A2017159A2E74724C7 + CE592F16DCFE9A3AB3679402F3366D40A5B18707B07C457FEB991474E53F8EE1 + C98035C2FD0E6DD55BE6590ADCB653863D4A05B8D8B264D0EA32531F850D46F0 + F68DEBB1C1E4AEA6EB23BD72EF81A3D505DB8B9512100970460B9C13767C1E9F + E830983DD71340C52D3E5D13D6AF8FB158587BDCB2E0A3C054CFFE8FFE00E834 + 8792031947690000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Display preferences window' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004724944415478DA8D546B5054 + 65187ECE2EEC9E65592E0B044BE2858B601803C5188C34522225D6B848748192 + ED3A6A390538E394D93845303A013398501ACD02EAA416CB74D11F6AA3604419 + 0992AEC465613194CBB2C02E7BBFF49E3366C3E8A067E6CC7C67BEEF3CDFFB5C + DE97C13D9E5C55A99A018A68E9F1C25BAF5157BDB5D07966A14DA5EABDA000A9 + CCF875CD1EB85C6E146DDFED1A738CC9CEA9D5B6FB01146C2A2AF91C0C9343EB + DD70B9CF40282C5D9F95519ABF711D7D7A505DD7842B7F0F7CE2B633353E626F + 2E0366971738A25157EEBA0390C06AB3D6A46D2DC85B8F438735E8EAB986570B + 94484E5C0EBBD305BBC38529E3345A7FED44C7C56EB75C1E2C7C342509BF7776 + 61D23055FE1FE8FF80AA5243536D997CCE6A8754C2F23B165A5FEDD3E3C6B891 + 28BB40FC11209362C2300D815008BBDD819B631368BDD0AE6F56572D990798AB + 2A29C9599B515990978319D31C86FF19477BA7168B1F7C0041323F384943C3B4 + 0966B31521F200783C1ED808F07C5B3B8CD3D36FB43454D7CFAFB070FBA240B9 + 7CE4C0BEF7D1ADD5E1CFBF06F0447A129C4497FBD14AAFCDEE84D566C79CC50E + AFD783A91913DA5A2FB8DD2E73A4A6E98BF1DB80992A151BEC0D292FDDF67271 + 5CCC3234359FC5862757C1E170A2B77F08977AB4549117B1B42793F9939E4E04 + 127583D104AD568B419DBE6C8A317CCAB9CF90768D62916F616ACA4A81EAC567 + D1D33B0CE38C19D15111D0F6E9705C73F206DDB99332C83210543C9E91162291 + F8213C3488AA044CB3B3F8ED8F2E8C4F4E3A3D6E4F2307E83D76682F2C3C151B + 7E6EEF4694220CACD817C734A730383CF25C4B43D577B7747E2D3242519F929C + 84E0407F8404C9486F0BFCA52C99254145D5410F0F78F4CB0A98E62C983559D1 + 71E91A22E876A18F102D3F9E865E7F7D537363B5E656125E5128221A1F4B7D04 + 72020B2573383632A9044174C147E53520C0926FFDA5D2BC952BE2F0F4DAD5D0 + 8F1AE0703AE147D119D0E971E65CDB1051DB21F0C2C7CB30D5ABD35729164546 + 60595438DCA4ABC56AC1F95F2EA27F7018369BE3086F4AEEE6B7432060CBD6AD + 49DF92F8503C4646278886847777487F1DBA213D048C0031D14BC18189595FA4 + 2527A07F7814DD97AFE26C6BC7670EA7B5FCA7A375C6DBB1D950501C2DF3170F + 143EAFA4CC79A8038159B38562E2800F8558E4EBC3BF1C58EAC371189B9CE6C7 + C5BEFDF530BB4C8A93EADA9BF372A82C2AD9AA080FABCDCECAE43B402010F03A + 71DDC265514C2685C903896A04C9324E7A5B78A70F9FF801BD7DBACDCDEACAA6 + F99D52543AB1F199EC50966579AAE6391B4F9B3388EB0CB148C46BCB552CA12A + 2562319F53B148880FCBF7DFD97A341CBE22075F8F8F8F4577F715AAC08484E5 + B15891100B3F3F0958912F44E47CBF6E98372191CEBDA0CCC689EF4FD380B85C + D7DC50B5ED6EE3EB2089A7A43EDD03C6758A61443B62962EDE92939DC9E7928B + 51DFA0BEDA63F7560B58E4D3F8FA80D27D9CC0DEE106F03D07EC53F9C5F2E060 + D6B0F3DD37C910213EDE7BC033E61E97DEEF80BDEB4361E642ADE4D6D469DFD0 + DC7B69A1F3FF0258A409FFF54527050000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select folder to open in remote panel' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002084944415478DA63FCFFFF3F + 033501E3E03710446C6E9012F9CFC2BC1DC8354148FD3FC3F8E7AFA76FC3B337 + 241908318CE580ACBE99B692992DCC30867BA70E333CBE78FA2AE39F3F0EA418 + CAB8A955EE8C9CAEB1B192990DD8200886197A8CE1D1A57384CC38E257F3C816 + 61608BDC7F87942C14831891D8081ACAFE8F6AE9FEB9F319800632A218E89892 + 8AD0F41FCD002C86225BB86FEE122C0626C783252FEFDEC7F0E6D11372231864 + D165B0814EC9510C9FDFBE637874E5158359E82CB20CFBFBFB03C3B61EE71310 + 03934219EE9FBFC2C027E9C020A6A8C8F0FBE7030C2F33620B4F24FAFED9730C + F7CF9D2D031BE89C14C0706AE37E06E3806A0666E6A70CFFFE7EC6AB19D50288 + D8E90D5B193EBD7CAB0F36D03ECA99E1CCB6F30C36B1D50CBFBF9DC36A00AE58 + 0681DFDFBE311C59BEE5896FED6359B0813A763A0C5F3EF330A8995B32FCFDF5 + 187B72C1433FBBF588E1FA918B7380B19D0A36504C5E844156C394819DE50BC3 + BFDF9F51BD8592D5FF6365DFB9FE94E1E5E3B7DE01B54FB6810DE4E064637048 + 6E041AF08D015158A0871936431918FEFDFBC3B0674EFFAF7FDF7F0802B3E837 + B081E232220C2ABA720CFFFE7CC5AA09D39B8848F9F6E517C385E38F76F9D53C + 76078B6F6A967D6AE8E62E25A1A68BC5102C06A305C19DD347186E9F3A9DE757 + FB6432D440B9C540EB6218C80737FFFCF96917D4F0F215D8406A17B0004FA71F + 985D47023A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select drive to open in local panel' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000F44944415478DA63FCFFFF3F + 033501E3A88183D040533BEF2540232319191998283108E8AE7F8C0C0CCB194D + EDBDFF77B6B751C575E595550C6003EBEBEA193E7CFA4A9161027CDC0C8D4D8D + 10036B6A6A19DEBCFF449201DB2C2DE06CAFE327184404F9185A5A9A21065656 + 5633BC7CF39E22178A8B0832B4B7B7420C2C2BAF6478FAE20D45064A4B883074 + 75B6430C2C29296758B9762383B98505C3C91327C8A215A4C5197A7A3A210616 + 169532AC59BF99C1C0C884E1C2B93364D12AF2920CFD7DDD1003F30A8A19D66F + DCCAA0A9A3CF70FDCA45B2680D65198649137A21099B8191219AA2008481FF0C + 4B87405E1EF4060200C238A4AB71FD03940000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files by name' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003244944415478DAADD4494C13 + 511800E0FFBD290544289B05370AB25301259040D18470D11854A87A5021C1C4 + 28544C3C182F5C4C3C186F5E58C38D7830440A12C1A046132822A1413691CABE + 0814CAA22CA674E6F9CF20913643F0E0BBF4CDFF5EBFF9DF3FF30F618CC1F620 + 8448BFA119F91E413E9E511CC784158BCDD2DF5F630797119A57D704C0CE8A73 + 14BAC6AB739224C3154CD717DEC4E913C260080804E3EA7E072F9CFE545FF1C5 + 1934CE79AB02D59452F8B1BC00EB8C0F9AABD65B9DC0E40BB7F779BA29E618CF + CE99EACB5A3044D3730C4D085B4CB5A5775D415540B0042EDB66615D9001A523 + 676428B4F307A857946FA892705A341F006363ADC6B2ABAEA0BFFA8804DAACD3 + 083AE4419DBEF01105720FA363589C6EBC8506AB342507061ED420C8C1C2CC38 + ACC981BAEC3B3ACAB1F74CE0E3DAEA2A87C518D6F419D693CA81EAC3E16ACA71 + 609D1A9607F1CF9994D057F64D7B5C4743D5A82EA7209310DA805936B6D6965E + 71058343A2D51C8233131658E337658F4C117D4A18C965046C183233015E53C2 + 2E6186E75DC14361B1082A607A74605710FE7588E0D18878099C18EAFD3FA026 + EAA49A5328607CF033ACF27679305D6F68E605E1567B5DF9D85EE0B1D86404DD + 6064A013561DBB80A7F406263021BECD58DEB717187E3C55AD4070A8AF7D6F50 + 60B04A78C1E36343E5D79D9026CF283EF52C711E9590062238D8D30EBCC32EF6 + B45916C4C81BBC0CC31D0A0C2D6E6C3ACE981B2A17FE80E6B0C8F8246F95BF53 + C61BEBABF0ADDFFC5D16C4CEA86EAD2DCBC736A4E9FE718DB83482BD5C20EE09 + B9FEE2B297B7AA265A9BEC048E587A616579BE68CF1AA6E51464718494E00D34 + 5BBB1ED2D0BC13FD113109312ABF0029B2BEF613067A3A676172296C37300841 + AB045E34603B420B66C86DEF13B3F4F6F1ADD126A648D796816E585A9C2F1AAF + D697C8D7D0C1A7985E56748A315DB6219F50284630F2EF01B7B28CD126C62895 + EED0D3D5216537F6E1C6AF5D6A086FD73636AE79BABBF950AA6866C0AA4CB565 + 8F77D64CCCD247E557A3542AC166B34AD949860CD88DC073ECE7FB620C572B4C + C6D2629C0ACE6F2266999BF80E3FBE7E30B99C2A6627467F03BAA0D1C6782552 + 9D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files by extension' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000032F4944415478DAAD94494C93 + 4114C7DFCCD78220B480A42028655128960A2A51D922172307085225D11812B8 + 10362FC68B3126265E8C174F145C6E8DF1406C31044C301113CB1202D1B286CA + 8E6C65D75208B4DFF8BE96465A3F82072769FAE6CD9BDFFC67DE7B1F618C0121 + 04F68FD8DCD2235121812A20BC63C3B262191C6CD8019F115BD2F80180E5ED4D + CD93FAA234C120BEC0ACA2CA0A02E409AE8C3046A2F15F8631573A8CF503DE40 + E362B03C5C4129859FEBCB6067CE8845BDD6EA05BC50501E1820952C3A80CFEB + 32D4B7A38B666BAB9A19C068BB4177D717283F16E902AEAF2C809D1701EE0DAA + 56174B64F1A1F184A36ADC701F189B3419EB6EFB02C314275CC015EB2C021DE2 + C0ECA2CAA7E8A846731CDFC88CAB4A0C9A1303861F57229083E5F929D8140366 + 145665528EB5EDEEEEAABA9B5E4FB8DE545BF98630A0624045748282721C587F + 8C7903736E5477620CCF33FE1125B499E71D291D8D2FC7320A2BAE518E1AF0B8 + 16934157EC0B8C8C495270089C9FB6C0A673D70BD80E0C78935197838A9E6396 + CB30114BB8AF17D5B5E0D58B5161812F302A2E198112989D18F606FAD6E1BF0C + 0178F294C6059C1EEDFF3F4065E239052791C0D4C837B03977C48159DAAA5627 + CF977735D64F1E068C4F4E47A014C6877BC0E638008885CC30391ADFCE100326 + A45C564810383AD07538906760A30482103C245480675D59626CC2E87CC14E3C + 9B010270A4AF0B9C8E1DCCAB904411202EB4A1271AA712FCD9F080AB08B6EE01 + 7BE34E6BCE07CBC3BC146FD96DF07DB0774E148865A23719EA4A21379766859D + 798FA5338B25552EACC7DC7977F368B0BC21499DEE051CB7F4C3C6FA52CDA16F + 98515491CF11528B0728DD118F696C49DA60824AA30A090D7779EC9BBF60B8AF + 670166D6E20E024678AEE86E47F8825F1BCE1323A80C42952969175D73CB9019 + D6D6966AA6F4DA5A512096CDA5CEC6FA6E619E79BDAA143F280FB0F592FE5CD0 + AD52A54E5549FDFCA1FF6BB74BDDE4E7B26DAF5EC64D59EEA4B04FF6ADED5B01 + FE5219A592564CF18B0E83EED9FE37135406CB421AFC10B8BA6A75A913FC7FF5 + 3202CD68BF0502F7303B14ED57ED46DDC3FDA5E351A92C49FD8846289959CF14 + D409DEDF7C1AE5C663AB101F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files by timestamp' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000034F4944415478DA9D94794814 + 6118C69F59775DAF75766D8FD6FB2813B7D468BD494B0A4CA9E8A403A142EB8F + ECD0220B333B84520223ACB4840E3BCC102A820EADFC23C2CC4E5BCDCD4C2D6B + 3DD7630F35B76D664ADD750BB31706BE79669E1F0FDFFBBD1F81712593CD73B0 + 75B2DD0016B18400E14F4912EA6933C2588B1FC6DBFA6EFD0585A242E39970F3 + 2E608CFD6D7BD354B42C885E10A630F9DCB815048B3813162217458687C2CBC3 + 1D24E988DEDE3E343635E36965152A9F57AB8C066372A767D2691E2914B3582C + F4F57442673448DA8A96B78F0283A317658845E2C3BB766C859FAF0F1C1DEC60 + C3B5C6EAC43D2829CCC1C0E010FA343A28EA943891970F05375E4B8ADCEC6960 + 4F970ABA1F26C039D1F1AB242261494E56263C5CA570B0B7194DBD62E36E949E + 3F3EFADEAFD5A3E58B0A4BB3AA404A7C4003BBDA5B29E0F02F20BD677642FBC6 + DC9C23A200991FEC6DB998A8B4FA4144A69683CB77A58056E8FCD60CED08501E + 15B735322C246F7F5A2A48473B0BF39AA434149FCBB6D043B7DF07877403CBCA + 0AED5F3E8E0183A3E21E1EDABF27262A32141C0EDBC2B876F35E5C3B7BCC420F + DFF900D6022F5851C06F2D4A680DDF4712C6B7165FCC7776918A4110848571DD + 967DB85A70D4428F4829878DD09B02B2D1FAA9CE0C6828BF739DB5697B26F3E3 + 78330D342DFA3BAD3570A3413AFB33C096861AF384A5570A9D25A229D4A9B44C + F8B78A4829034F4A01D96C34D7BF86C63034B687D959193111A1F2C9F0A83D2C + 03DF751605E4A0B1AE1A9AE1A1B12E2F8C89CA3B94BE1B93E0218C6A0ADF7D36 + D814B0E15DE51870E41C5E2E3C299AEEE335212831F7191EBD56316BDF807006 + 58FFB61286E121188117A393E232555C72A9E00433BBA6357E52161FA88086E3 + 061EE964F69F5EA7C107C58BAF66B3EC2C951ECE39920EDF69DE7F059EBBF512 + B9F7D49821939B011B9535E8EDE948FEE36DB33066AE2876C17CE692701208D0 + AD56E3BDF223EE953F46D9A3279D1DAE09833EFE7217BE40C8F874DA7ED4BDAD + 56E1B3DACBA20FFF721FF6076D8B75E09137660685301E65ED1BA8D51DC9CD45 + CB4F4DA6B1267590E59910A4F09305FA71ACB9A87955C5A46BAAD838F09F40C0 + 7D7DE94A9E23FF863505ECEE6E67D2D1FA7F03E9941E098165D442407CEE89A0 + D3D1EA4F5BCF64C63B93AF390000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files by type' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003294944415478DA8DD3D94F13 + 511406F0AF1B1837046B4541163510232A21C4ED1F0044342E216E95F8E6032F + 2A2A2228466330461F4C8C4B8118D1C42D6A4C0C08445C0828822C051A0BD496 + A5D0BDD06947BA30DE191A6D3BC5789FCE3D9DF3CB373D19C19B2B090CE63802 + A085F6D259F9E5262AF4B724F9EB5A80C9F65FBBB5357BD2B91916CC3BAF8387 + EE0F196160D336A2EDE5CDB06892FC956151945426140A316537C3C5F8961B6A + F61AFDA0166E57172F61846401CC9A77687D71BD5DE0F5E5E495EBCD8160D4D2 + 580EB45B26E09A09028730EDECE081910BB6001E3541EB087AA36F57E9705A20 + 18238BE7408B718C80DE00B06400BFA8561EA8EFFF08DDF75AAEA6AC7A105010 + 084A5724125004F3B80ECE4070E73915019BC32E66727C10961115345FDFF040 + 59DC1A995024827174281454829EFAC43D78AA7ACEA5B33B6CB138E8ACE7E5F9 + 140BC626A4CA44041C1F56C3E9F3FC05738B3B09F87E16AC92E06ED16EB8BDC1 + 307BFBDCADC5F3A69E169BD39DF56D4832B432791D01C518FBA90A06779C6D03 + 3DD9E807E7E3DE993DA03D33BC7C53148D3EAD094F1BBADA1B7A9114BF768394 + 0587079521E09966B8FCE0C9CAC55014EF0335EDE3810B234530D89CE825E8F1 + 5B9DBEB83519C41343F7A30B94CFFD17CC296A826BAADE0F4AA138B71F0E9A0F + 760E1AD0DA3FCAD5D5757AAC4AC984482C8146D50ECA1B00669FAA27FFE16CC2 + 138A655094E46392F6865DCBA8C901CDB80DA7EFF52061DD56880938D8FB2518 + 0C1C7835730D8AF307607785074FDCF986CF4A0357A76CDCC6813F7ABEC0E775 + B38BEB10840E145C7ACC54961E84D5191E3C5AD18CE9790958141513D4A75D14 + 06FA3AF43CF0E8C5478CA2EC10AC5478B0A96B02979FA891BA3E33A8AF512B31 + 693715F24079D943E6FE8523B0509EB02043DEEBF0D54F9044AFC6926829D773 + 391D50F5B44F60C496CC030F973E60EE97C9619E23217B3E764FA0E2D900D2D2 + 377377757F376C3653A1AE66EF6D1E78A8A49A242C80C9E199136453E69E7D8B + C4D40C482222A1EC6CE3D2693F1CFBC5030F1657FDEB63FE732C7404C6DC2B11 + 4140ABD5C8A563FB82FF190E7FCA8589F24D0DA488168CD8B7B3E9D8EE6F11EC + CCC67C7287980000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files by size' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002FB4944415478DA8DD2EB4B53 + 711C06F06717A76432BCB02CCD0B862256861854FF40452F42334B6B8A15E50B + DF045DD4E6A50B96446F82483795C8C2645162170B092BC32415756AA2CDE5DD + CD3937DDE5E42E9ECE399B4ECF36F079317EE7CBF97DF81E9E71F21F3593F008 + A74367248ECACB334DF0911871530B401E733DF68FD7A71D606E5E79D844565D + 3B09ABDDE9D2BFEDFDE390B7293AF466AB4F3446FC5613240C1371B95C2C1B16 + 60211D3B34F5E9F39CCB956FC8EA1B69206CABEB2F2F9B080C8D6BD1D8DAD70D + 82382E2DCF5EF0060A43C319D0A053C3B2EA022FDD7F4DCA0A4FC1BCE2587F39 + D09F078DDECCA00D9F7B866A8A32F67A034344910CA89B9FA140BB13BC582127 + 65451930126EB057A9C1CFDFD3CC59A99A446DF1698E37306C673405F2B03037 + 01F31A78E15E23292BCEC41261DF74615ABB0CD59C01CD5FBA512739E3151445 + C489B83C1EE6A7C7DC60DE9D065276EB2C0C16272891B6C077DCEDD360785482 + 8847817393A3303B6C4E30F7F64BB246928545B3132CADFE888DADAF85DD7ED7 + 98DFD8AED8440AE463E6EFB01BCC297B41CA4AB2B168728265D5EFC16EDD5BFB + AD838889DCB32F8C062795036E505CF29C94959EC782C9C65C2AAF7A07BA75D3 + 86D6D7B2DDD5FE2085E63FEE7544C4A5501E1F13237D3039AC4EF09CE4D9A66F + 0BD8160876EBDEDAAFFB348BDDF1A9E0F1FDA01AEE86C9EE02D9977CB5EE6EDF + 48B5AFC7F56A05A2120F814F81CAC14EDF20BB7576AE3EED42FB808639C7EF3F + CC80238A4E38EC56BAB81E0F90DD3A3B390F7E6025200A41C2904D73C262C29F + A19E590F90DD3A3B6D7D6ADC7D358A84A4D44D73D5E800960CDA020F906E5D4A + B5AE73B5CE0E497DD7B98AEF1004C741181CCACC2C66238615DD6A4CE9633D40 + BA75698998FA1B79DF90CEB77E352AE54A24251F649E4787FBA15FD4164CD4A7 + 3FF100B38BEBA80D73A135DA7C82F496276E7E4074420A04027F287A7F31DB8D + 7FCDFBE7016615D692D842748400B3B6080A1440A79B67B6A3E79CAD5CF69E72 + 6EB438B9953A0473A60C47E8EDE8E97F7D94C7C63A1E799A0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Sort remote files by permissions' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003164944415478DA9DD47B4853 + 511C07F0DFEEAEB3145D3E5AF6DA66BE593ECA1925843DFE09EC1F25324849FB + A3BFFC4F82280A2D128404FF300A0A121691AD9C98CB3252B74CD4B6D6D439DC + 7CCC99AFCDE54C371FE96EE71C5F7B14C12E5CCE39BFCBFDDCEFBDBFCB61819F + 87B0A0BE098039B7B1D49A24396978C2F21F944D877023791445C12FFB0C3899 + B53DD3925CCB1628149EDAB19B1F740B58AC3CB48C43A71118A6D66A76DE3799 + DA96FE067223A20868B74D81D3E506AE63C19F50DE4C9F280C7458CD8EB3DE28 + 06C379070868B38C2370751B4C3F995D86EA771806CC2E70152DDB16BB032376 + 1EA3807AC662019F61985295F25D993718B957804036CC4C8E82C31D1467651B + D124D6057046AD90B76EDE949E957D9A0268610006550A799C37C8DB1FC3A3D8 + 6CB0FC18F20433B2B2193C3A674C813A9D6E65F3269148C4098A142EA3E42E95 + 52CEF606A3F8093C360227CD0670ACFD5E07730A4B54484DFF5F57D113D5B29A + 4AB13BB82F3A0981348C8FE8B7C1DCC212E6E5930AD4500624B21608A0D940A3 + A7D2F4FAA9ECEA23C0D88801EA6A2A59EEE0C1D864029A077B3DC1E78FCA5102 + 0664EF3BB6208C62BCF9B3E69FA020FE088F4DD3303AF01D16D656B6C19AEA7B + 2461B3F29B0FD8D8F2958C43867E1FF0509218810130AC57C1C2AA1BF8B4AA94 + 805F54FD04BB76351F242F5E11F4BD424D6ABD5A8D0F1873F8388F46E0605FA7 + 27F8B8F236020134BA2192E64A7E1ED4BE964100029BDB3564ECEAEA24A0A040 + F616A9E7311A9F72023038D0D3096BAB2BA47104ACAEB84940A3699CA4BA7431 + 17EA1B1A09DED2A125B5D636C526A88E8E4B3E1AC20DF7F80B169D0B60D4A927 + 0858557E83BCF2C4B4CDA3C31854A02EE39ABCE90301F997DF5C080EE14A1344 + 620F70D8D00B73766B31011FDCBD4EC0B979874743F0BC1D7F57B496D6356C7C + C3524A5890A68B4D4C49E4864510CCE998077D8F6A0AC666A3FDFAB171CA90D0 + 5D52516A06B966D06B61F6A7B5785492FBD0CFFD703D65A2283591C309841E4D + 3749676A2B5AF27B83C52943B961520E8703369B85A4C375BF419C525090FA11 + 4DC25863F64C9C0E57FF00F5AE9FC64C6DDF740000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle ascending-descending ordering' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003484944415478DAA5954B4C53 + 411486CFCCBD2DA542CB4B201A694184627928C10848223131BA00C546128D36 + C10DCAC38D7163DCB8D398B8A414E38E18178D2DF1958889B8006C08047949AC + C8CB40848AF5514B9F773CB770630B2598389B3B73E6CC37FF9973662E618C81 + D40821E1AFB6BA4191A18ACFE33826FC70AC3826262C7E88D1B4176D2F19819D + E4F3F7CAD93797BC61C64660555D5323A3709B0071E054267AA8D0E768BFCD3C + 1E09CB3276D5CA38FE09A11402016FEB5CA7A16D13B0ECD46565BC8C5F0A8270 + D26E35F7A18956199A9FA3C7549FD5743512A831DA8612D529A58472F0CBF5F5 + 0B7C76658B2A498C90A95E5FCFAB7292730847F594D2EBC0D86CAFADFD7CA43A + B94CF6242935333CFEE97282CFE709ABDC1CF299A63BD869C1E134001B614034 + E8B4F817788B6A2E968C25A565EE8F5328C39680DF072EE762586514B0B2AEA5 + 9272AC271008E8069E3E98116D470C4D0F09032A01B32E3C3E2B57282D699959 + 5109723917C0BBEA6E8D02E2E26394D0E782102CECEFBAFFA9E2F4951394A356 + 3C8817BD5653BD7476691959A50A654214D0EFF3C2F2C2F4E2C6902942EF6186 + 2FE17009678651DD0B0CBD1E15D6AE039FE20635627F577601701C0F0B339320 + 848280FE43B192F24F4D6BB42DEDC92D4A1781F35363F03B14C858EA342CFF17 + 509377309DE37998FBF00EDC217F6CE01143737748101AED5DE6D9ED80390565 + 0894C1F4E420B8835B00B19099C084A28D372316706F61793A8FC0A971FBF640 + 81819B124840F07B9C12249FC8A4E415578008FC306A8750D01F3B2922102D3D + B8683776E468FA891B1C47F0B25436D9FB8A4AF1DA45295EF5B8E1E3C4D0624C + 20964967AFB5BD01AAAB69554AC1336064BED7666A940A7B47A2DA92AF2F8B02 + 4E3BC6E0C77767EBB6675871E64A0D47481B6EA059F3BA45B5C60313B9BA629D + 3A39356CF1FCFE0593A3839BAF5E0430430A110BBD1C67FAF0B5E1243F5165A2 + 2AC9A22F39141E3B2647C0F5CDB9C5E380402C9BC36FBBCC03A2ADB2AEB9019F + BC1B78F5F2FF06B8A652A72FD1C9E571303A3CB0F5F3B59614F6DAB3EA3D171F + 275351CA77638A3BFAADA6BB916726AA54A9932D72B91C565696633FB0EBC011 + CCFF2320700DBF3CCE76F4D94C37234B4752A93196BCC24E72E42FE00F3552CB + 68ACF9C7020000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort remote files by owner' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A84944415478DAA5D44B4C1B + 471807F0FF7AFD02FCC00F9647884D801A5B0E90B450054413AAAA0989D44849 + A34A55C2216A2F8D2CE5965324106D0FBDE4D087D24AADFAE0D043D4365295A6 + 2FA9205495201B02C4716D48888160ECB58D1FEB35B177BD195B4D6408ED818E + B4FA66479ADF7C3BF3ED50D8656B1ABC7E139006FE799D7D307AEA40B143ED1E + FC21ACD59B19994C8654220A5E126BC3A3A723FF0BD49BEA4A6022B60EBEF02F + E04B9DAA637526E60A4DD30E41140A498E9B4EF2990B5377F2EEEDA091692C81 + B1C843020ACF825D4EC58B16A676B2CE6CA2741A0D12A914D65816B144229DCE + 6CB6CEDD43A41C34D75B0948231A0A22B313D8DBAEFA4553517994311AA15628 + C065B388A792489358284823B7BCB9A17290D9D3C2C8681A91D57B3B833DEDEA + 2863329A5AAD161C3AF83CD62261780301AC86D68BF05793F3B9F3E5609DA58D + 215B83D072001931FF2CD8D751B1FCCEB937F73A1D0E54EBAAC1677944D8087E + 1E1BC384DB33F4E7ECE64839D8B0CF4140391E2EF976064FF6D50C1C3B72E4A6 + A3CD06B54A8D7C3E47F63189B1BF6EB1E3D353BDD35E2C96837B5BDB4BE0F2E2 + FCCE60B18DB85EFDA8C5DAE852A9541004011C97417069B5FFDD2F27C6B79FB2 + D57690A1E57204FDB7C189B9ADE015C058A1D5BE2EA3A457E26F749FD130069A + 1C04B2778349C31F0BD7214937421CF7E330B0F9046C7674115081FB3E3738A1 + 0CFC545BF91A45D1DF6A28AAAABEFF28D60F3721C5854B0B353774237BF51BB0 + 8B7E88C0525ECA0DB8D28F0245B065FF21464EC0C53B935BC1CFB45AB6919699 + 6B489156D6EF81E1F7096C4416A05657419F57C0D3DF039E7C7EB250C0177D97 + D95593ADA638CFD6D18322E89F9B8428E420011EEAAA46438A930A3BC95E2824 + 09244BD45E1E82EEE245C8C972BE7367B1F2D30DF2AF4AC890E7C397DFCF57BD + 7042A1D51BB7EC7D96E7B0E0F5AC3D051D045C2059EC27D1A0D3A179E636B2FE + BF317DFC38A224B314C1E464A2BBB127FDEBE14BDA3667D716F07E601EC904EB + 7A0A3E470A7449146123B19264697EEB6D243C6E4467661027609A803499C853 + B2D80727BF665BED1D76BDC154C2F84C1ABE39F73A5636F651E4D4D40D7A5D48 + 2649D5DB6B482A8B4FFAA0E5E3EF9DF8FC63ADAEFA9AB3B3BB3414F0CD6223CE + BA82A3A73F2919DFDBEDA6782A65C92593E27F5D59151AA5140C6FF887312C34 + 0D1EF0DA9D9D76A55285B999A952760FC6CE6FEEFA3EB49CFDEE8C4E6FB8A654 + 2A118B454AD915C7770D02C332EB60E76FA463A05612BDC5EC8AA38F01A17FC1 + C66B59FDE00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort remote files by group' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E84944415478DA9DD35B4C5B + 751C07F0EF39A73D054A5B7ACA8E6CE3D25102D4C260A19A5A7749D4189211C3 + 656A1CA9D1C42566599C89664F6692B8652F7BD88B89D94C7483997821E88841 + 6746A65B14489B4929E1322874382E8596D3424B7B7A39FEDBAD2973E003BFA7 + FFF9E5FFFFE4FBBF1C0A9BEA705DFE1BAADC9C96A49494AF85D6AFDF75893DD8 + A6F4B61FFB00A9F1F1E7F06C674B7D6A40652658F7E75E3A60AC3ECDEB741002 + 018CCFB8E10B063E1972C5CF6F0DF62CA934853C4DD3080A2B084B8967963A5B + BD6950AF47CE1E9522C4A9D534A7D1201C89C02708888862342889EAD151885B + 811A5D511A147C8B0827378166235BA3CA53388E37BFC6D69B6A110806E1700E + E3D73FEEF8FBED41DD760939BE380DFABC0F0918CF822613D8067D85FDEDD7DB + 6AB51A2D62F118967D2BB87CFDDBBBBD77160F6D0716EE2E23208395050F429B + C1547D6CB3D654569438755A8E4A261304F48BE72FDF3CE217C2C724489A4834 + D145A6FDBE19E4F71A789A61E0FD673A0B7600749152F92645536D41B3FE55D9 + F306152409CB371CFE4BB32B5A75014745A35108C22A694BAF10EB56062C2AAD + E219022E3C984428117B047EA1CEFF260FD45BBC5C0EED57D73071BF0F3423C3 + CFBF8CE3875BFDE00A5408AC85112117C5CA99413196B064C03DFB8C0494E1E1 + CC5816BCA2564946990C4A8A42E18993D0747C063903584A7834B734A0F1702D + 0687DDE8EA1DC2847B71626D23569D014B2A6AD3E083A9912CF82501CB49EC00 + D9A6312707E50383107D3EBC7CE4457C7AF11D182BCAB0118962666E01ED67AE + 3A84B588390396551EE01912C633F137D61362162C495D3D012B095CD0D4840D + AF17EF91ED36BFFF122C0DD59091BE6BD28393E7BAED64DA7319B0DC6826A01C + EE313BD6E38FC12B9C763A198F976F7E12091AE8CB8F21AF4A07ABB9819C9D0C + BDE3AEC1FE7BD34ECE96F870BE03E11468A8B1F032024EB906B2E07FDF57D939 + CE0A06DD720553D46AB0E1D991F974DF632AC635F7D7884F7D10A7D66B65A95E + E5FE179002279C0348C4454880E329507F81FB4BB92BD7A2D4E5A0CD7002C7D5 + CDA0A5386E860771F1CFB308D9CF40BFF728541AEE89751BE175DC1F75CC6F05 + 2E1594E6F33205835CA502570FDE40819C43D34F87C85B14202ED643BEF011AA + 4CE627D6B927471010964F6D09AA8B95FC863F8A3C4E018BDE8A5DEC6EF48C7C + 87B02F02792E0B71F82C2ACA1BA1D13EFACDC3A1358C39ED8B985BDDF7F4195E + D07651A0DAF13F250907C7F383A7AB4D75E90BC7E4D83056FDCBA73C9DAD9F53 + D85175D07A5BFD2811AB595601E7BDA174BAD9DBEF46760802A5EDDDC7D41AED + F72CCBC2E7F3A6D3A5FA3B065329CB6C75BF9181969A13ACA974A9EEBFBC62C8 + C6830B17DC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files in descending order' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003134944415478DAA5D4494C53 + 411800E07FE615102965B5A0282D4BC04A412444D91289899103283492688404 + 2EC8E6C578315EBC694C3C528AF1D6180FC4B601C1C8413C0012024176A9ECC8 + 56D92D4B68FBC6BF2F10E1510A89737933FFCCFBDE3FDB238C31D82B8410E1A9 + CC2C3A1522F38EE138C6AF9997CC0303B53BE0A2280B8C9F198133647A356DE2 + 6BF1B66088C18CDCB21246E1050162C6AE501C21C331D7DB8CBAFEFD5878A129 + C757EA5BE7E9E905CBCB96CA49BDA6EA10987CFBE1696F0FC9821DF8AC7683AE + 1543344353DE8023465A0DDA47FB4145A1B14B159798E481605F77C73C4CAF44 + 38B3242EA64CE3E2F225B2C88048C2D1384AE913606CA2C5587D7F7F76521F69 + 9D3AF1AAD0360FF6C0CACA6F21CBC353CE2B7B89950A6C8E01B01E0644818366 + FF81CFA9A2E0725FB42AE1927F40B010D9B0FE811F7D9D429607C0B4DC8A34CA + B1669BCD76B1A3FEEDB83396AE297B4718D03D30FCC187BB3E52BFDA5875F281 + 0D1A33F7C2DAEA62E501105FBE41096DE079BBBACDF46634F54EE92DCA51032E + 44638B419BBFB776CA687592CC3FE800B8B561859F835DB3E22953445FE30E17 + 6373017BBA31BB469C7A3E6698B30BD6E307B29DF598845490483C60B8B71D1C + F61DC0F15DAE36E5444559685C8852A7C89DE0487F3B58ED3B210B7A8DE5BFC0 + 4855B29C43706CA8F368305D53DEE4E0F99276936EE2385011730541094C0E7F + 07ABE308100F32E3191F2FBE19AEC00BD1F1728E93C0D4481F6C386CEE419E81 + 951290223C885DBC2BF05C844A0067C687DC831869C6D50CC38A2786D6F10337 + 11B688C1D0F0580439989B32BB07F198E85B0CD5459099493302551F8191A916 + A3B6440CCAC3A2E41441CBAF51D8E0ED275BC3D4BCD26C8E902AFC80420C069F + 55C829E560716EF25830646F8A78D053B0A715FF369C180C949F4790C2926506 + 36DD81786CAE7D33E93A9CB1B4DCF2227CE7295EBD5831E817142A80AB4BF308 + 3ADC6D0AFBB2B9B57DCFDBCB4346A9A409B7B8A6CDA07D25067DFD8205707D75 + 1136D9D1600F5ECAF740E0313E25D85BD36AD43E131F1D65A1E9136E5ED66EB3 + 67429F97E8ACFC05F000D2C63D1698A00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files in ascending order' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000031C4944415478DAADD4494C13 + 511800E07FDE94226A5B0BA4A02865134ACAA6C1C896484C8C1E50A19144639A + C005D9BC182FC68B378D89474A31DE1AE381D8364130C1443C1424048265B1A1 + B2234B0B95C552086DE7F9CF40233443F0E05CE6BDFFFDF3CDFF961986520AA1 + 8B6118E19E545A752C4E1E95CEB2945B777A9CA3A3AD3B107625E9AD1F01E88D + BDAE7DDA54912718E16049795D0D25F09C01C68943F19821C79C2B3D16E3C841 + D0E2922962558410D8585B011F0DC6B94C3AF70130FFD683E35111125700B81B + BD666337864889AEBE1D33C6BBCD8687E1A022265E00D73C4BE0E344C0BD2913 + ADB652224F51A6302CD1E2038F81D2699BA5F95E3818AD3A2B801EF73C820171 + B0A4A2EE05361AB03B896B64A7C0A83169410C8C3DAD46908595C519D814038B + CA1B8A084BBBFC7EBFA6AFEDCD141F2BD6D5BD65281031509590AA222C0BEE9F + 13E2203E7C9530A49DE302593DD6D71385B76BAF13969871213A6C6643653818 + 9F98A162115C9C75C266D02F3A6582E82BDCE16AECBA706410ABEBC0A9576285 + 37C3C133C999084A607ECA712808FF7AF1E0B9B46C019C1D1FFE3FA03AFD828A + 95486066EC1B78833BE260B1AEBE33C87135BD56E3F451604A663E821130E9E8 + 076FE010100F32E528971DFE658881A959052A0982E323BD47831C052F61E024 + C2DF71880BE5A8F596365C9832BE9D9E53083C3836D40BC1C00EA034200A62A4 + 0B1F4AC08614431BF8826B08BBF7C081E4F3D917658AE803156FF9BCF0637460 + 4114C46362B2999BABA0B4949444677E00CACCDA2C861A3E27F1FEFB3B27648A + D60C6DFE0170D2390CEB6BCB8D47AE6161456D19CB304DF802F56ED63392A4CF + 1B4DD3E46814CA1821E2DBFC0D8EA1FE25985B4D3E0C8C0B4D110F7A018E74E3 + DF860DE5F155CAE4A75AB5B99784BED36187D55FCB8D33265D932888C7E6F257 + ABB18F8F1595D757E10FE5097E7A197F27B85BA5469BAB914A236168B04FA86E + FA4BF5F6219B423FFBB6B6EF464546C8099174E216B7F4980D2FF7AF195FA55C + A16C954AA5E0F1B885EA044304B4E3FEBF03061EE15D82A32DDD16C3D3FD4727 + 54A55A9FFB091B4A666EAD88AF8E8FFE01BD1DD1C6122E6E4A0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Open WinSCP webpage' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A24944415478DA7D955F4C5B + 551CC7BFF70FBB2D5CDA425B1805DAD252FEEC0F1336D48DE9B68CF93033E746 + 623042F4C9274D7C702C3E98F060B23835D198F862344B7C1871029B3359DC1F + 35C266068C6D08943F5D19B49402A5C07A696F6FEF1F6F2FD0659B7A939B9B9C + 7BCEE77ECEF99EF3BB04FEED6A3F48D79A3CC7C1F0C7498ADF4B6D116C649600 + 854A84485DF22F228BBF74ABFFEE25B4437C7A28F174C3F64F4E1F2328E16B96 + F1388AAC36B82A42C8D50B90D5B17476144BB10442B107087133D304C3BFDF7B + 78ECF27F00DBC9EA8FC9333A26BFADD8D280FA6D6BB0A212161D0B62A3578E29 + 0C9EF1234A0DC31F0B6168E1165685C8D99E5EEF47AAADFC04B0F2D4179FE6E4 + 14B5959A8FE0E4613F0AF3782CCF972125E8A1C814C4140328EB238ACBFB91A4 + E7E15D1BC5C0DC4DCCAFCD9EED69F49ECE00CBDFFBE6353D6BBCE4B4BD82A37B + C3282D1BCF782FCC6C83D9E6C3CAA21D4BA172182D41E4153EC4161D87942C60 + 2CEEC5CDE075ACF0CBC77A1BC77E2170B09D765796F81DAEC6D223FB2270578C + 68A095482924D52ABE5A00AB7D045CD486C5603598EC55143AEF83D173A0B378 + F07202638F26D03B7DE5E19FB7BC1EC2F14EC7499339BFB36EB71D070EFD9631 + F30D1E85D13A8385E95A14B9FB119EDA03C8042815A2CF5D54DB6E6BFD927103 + 047604B7C33D98E3024D84F3EDCEF325AE6DCD078F4CC0669FC80045215B33F0 + F53723C51B33ED341383C53E80BCA271080903A261178CB6BF11488CE2CE7C4F + 07E178EB82DFB36B7FD981572FA85F8E3E06A674589AD98368A05E0B454B5A0D + 251DA5A1C00B6A0B87C5C00E75CC1C3CF5171117395C9BFC798A70B674252A6B + 5FD6ED68F809895801B6BAEE808F593135F82614310714A926A7D23678501405 + 25EE3E884C087A4308BA9CE8C61BE0FAC4359E70B47426AA6A0FE82AEAAE22E0 + 6D84C53689D5F04ED02A892209ED26D37A9B862AD0605A40C59E0EAC8ACB4F1C + 8AAB6337786DCAE535FBCB0CC6140A1D23884CEF034D921A70134A928F0D6559 + 41857B1CD6B21E2C0861884A6A7D892402BF0EDF50A7DC7AF17C71597573BED9 + AA6E8F7170F3DBD7613489AC3470134AA4EDD681875EBC0D317B0C0BA939C4A5 + 350D185165FB02E9505ABB4E1A4CD64EA7475D607D52DBB4A4A207BFE2514DA9 + 0DD375CBF4744551417DCD1018CB5D3C8CC8585C32ABA9F7E1DEE422829CAF49 + DBD876DB4E7FD5AE174A593617D52F7D0FD610019BAA4670FC3062314B66FA92 + 2C2325CA901409FA9C7944962C20E865D8EBCEE1EA606FA0DFCFBBB4A3E76CE9 + 7E5DCFE676576EDF8DCABD17906B7E00139D0F735601EE0F1C03B766D282D10C + 25B5EE48EBCF349C31FA1052CE219AF49DE86BBD7C31531C1C2D5D9F99F2AD1F + 56D594ABD01F548315E4D16618682308C10ADF831ACCCE15AB960AA44DA02460 + 56FA161C79E7F3C1773B4E3D53BE9CADBBCE64B386B6BA0616550D5DAA150996 + CA052599303AF006F838ABEDC334944B8611E47F4492983C7B6FF9BB67CBD763 + D3EE264591BE7C6EBF5252EC1220F16E889C1BB2C04210E378C4CF62393E8CD5 + E4BDA05ABD3F186AFBAAF37F2BB676A5832AAD3941124A1341AF3D4F31D25682 + 4EA80124C20423F65114DF399AF57B37DAFF78E617F00FB8C404345316681500 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Save current session as stored session' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002074944415478DA6334B1F7BA + C3C8C0A8CC4024F8CFF0FFEE9983DB5470C9339ADA7BFF9F3A6739C3BF7F0C0C + FFFEFF67F8FBEF3F906680D0503164B9A6927886D307B732E235B063EA0AA062 + 84E6BF7043D00D6460E8AF8A216C604DFF1AB8068821400C75293A7F665D3861 + 034B7AD622B988016CF0E71FFF193E01F1E71FFF18BEFEFCCFF0ED170310FF67 + B8B33492B081795D1BC006BEF9F21F8CDF7F6360F8FDF73F560D97E606133630 + B6710BC3D38F0C0CBFFEFC6720048E4CF2256CA05DFE1662530DC3A1893E840D + 9455D4C069C0CD7F7A0C5FFFF3116519D07F474006DE03B21571297A2D97C2E0 + E8E2C1D013CC82D7B092B57F18F6EFD9C180D5E92057231B68E7E8CED049C0C0 + 72A08187F6EF443510D9206403ADEDDD18DA03F11B58B9FE0FC3D183BB181819 + 080085D8F5FF2D6C5D185A02F01B58B3E10FC389C37B8833D0D4DA99A1D08585 + 41900BBB1A50BAEDDFF387E1F4D1BDC4196864E1444819189C3BB18F3803F5CD + 1C8832F0E2A903C419A863620F66CF4FE267E0E7F8CFF0E5EB7730FE0CC40F5F + 7D6768D9F19741485492E1CA9983C419A8696807666FCAE3071AF483C1BDED2E + C3821441B0A15FBFFD6028DFC8C0202C2EC370FDFC21A20CFCA9A66FC3C6C8C8 + C8B0329503ECAAA0094F19A6457181D95C9CEC0CB92B7E300889C930DCBC7098 + B081F2316BBD191999D601996CFE2AAFB0AAD978470CC2F8CF780200E37B2CB3 + FD187DE30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle file name column' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001E24944415478DAAD944D481B + 5110C7675ED2A02D580C2D0A5EC452C1E4D07B92831F173F2EBA54A12D05410F + 498A0A3D79F022058F05C14D34A09E4414B29A06EB4521366B248420BD945644 + 90A222F4A0A554D36CDE38EB59293EF36099377F767ECC7F77DE432282DB1622 + 5EC7FAE6FE8A9AAACA46406965CF7FEC412A65DD5687FF03FA7A82C302C53810 + ED01422D013AA405CD9984BE7F67A0AF7DD02D1EB94E5082CF5C8DE65912819E + F016C7ADB4A18F29756843BCDE5E67554375033A8417518CB1FA8581232A40BB + A38F6C7580D30300FACA969B9020A304F46BA1566626090A9E8C317B686B012D + BCC2E1381DD7DFDD1918E80E76A2C3B1542881279788FCF469A12EB66B00E1B2 + 69E86F952CFBB5708C212F393DE557735C9162CB6D6923F24AF5A7DCB894E7B0 + BCC09616A7DFEDF97C59B45EE793B15F650106DC9E22599775DB9FE68ECB0A94 + 50F110C872EE2463DFEF0DE4ED1A3FCF81A09287FCE88FFCDBB1BB327FA6DE21 + C0D4B61119E223E8AA6E7CBAC9798EE7F0BD7A87057A66AE450F6CCDDF1DEC03 + 21C6CDB8DEA40C2C5E9C3FCEAE2FFCB635BECE5AF93A5BE4A357A30E2C95BCD9 + C4CCB76BA0161A1280830C7CA1FE0D89D6F11FBC29A27CF2C025360868C28C47 + 6754817909B02008466D4D929CCCAC4E7FE03A7953CD15BA3B12E8C9FF3A9200 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle file extension column' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002064944415478DAAD94416813 + 411486DFDB0D6DB56031A039F422165A921C3CDBAC1004295204BBC50A1641A8 + 8776A50A1E4B2FA5E05110DDC406D18388286493186AA120A476130921B6BDA4 + 55A417B552146D8BD036D9DDE7DB400525609C662E33F3E6BD6FFE37336F9088 + E0EF86887FCC8F85AFB4F80E1DE80474ACFCE6BBF790C958B5E2AAB1FF0276F7 + 0D5F97509A60B765446A2740D9B1209C4BE91FFE1B78B267C82BB7367F068714 + 33192DB24952FAB439EEE7E60D7D5C48A10BE1949B7C6DCDC765443FA234CEAB + AF19784304E82ABA0D08433C5E05A0254ED98F043921209FDF695694B6A0DC95 + 371E7C726D8AAA25B85B9B8FEBD7EA062AFDDA5B045C27DBBE8BB2FC6CD78640 + 2115F9D8AD8EF4F25606103E370DFD72DDC053FDDA2211AE671391B321558B71 + 8A2AA7FD955D0B1C9161E019065E14BD949A4DF81D3616180E7B42DEC0CB9D8A + 75A9988E7D6B0850F1062A64EDB4675F3C5C6B28D08196834096E74D3AB6B26F + 208FA6D9AB836FBB95515F7ED276CF42E2D186B842807B5923321A0C5E683ADC + 79E415CF0BFC6C6E8A2BDCA50E733ABAEA9A42E78707409226CCB8EE170656B6 + 37DBF2334FB65C935B8EFC9D3DE5D2F389036D3B984F4D95AA4075645402BCCA + C0137503F76AD9FC5E3A573D43A2192CC320C970143D304B40B7CC7874AA6EE0 + EF5AFE51EA6560915D1EB3E63177CD21E74E2E797F92E39C5AC05F87022EE8A1 + 51EBD50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle file type column' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000022A4944415478DA95D3DF4F52 + 611807F0EFBB565CD0455775D93FE07D7F825159AB39262831FB138A81875F92 + CD75E192ABB6F40899F347466B2E2F2AB45C56B01CA9D5A0AD88A1399C0341E0 + 1C5E8563A7032D373DC0393D57EFBBE7BBCF9EF39EF725A22862B6FFAC880645 + 80101568ABDE93E6A050558BFC03DB1C6BA8D0D8D10872C9792C3D1B54851E01 + 9328975665A113C7B5C8245E21FC742042847D5D9B27955109FEC41EFF4916D2 + 68CF0195EF12FA5242EF452F3BD75BD481F61FD8E5C2B2502AF6166BCB2F6A6B + 2E9B82041255E025E69B04BEAF1BCC6FC6B1FD2B86C4C7D9FF01BF8216161B1E + 786597C7A2CFAA1EBCD8B322816F6421CB434D93FF4A42DB45DA1AF0E8391978 + C1B6049A9FAF039EC403CB159485C357B5BA7BF73989C0C297508E2FD7D0C3A0 + F5034AF93939E83F8521EB55D0CA6F59AFC0514493694CCFAD4640A96EA8D790 + 3900759605940AC13AE0690CDBAE81DFDB97F5B49A63D8CAF135F47170392AE5 + 5A0EC0F3B782D219CA3FF9A6EF0C58A61D452A0757E25B08C7366AEB78621D23 + 4C3B214A6F79060360ED7AE4A950B7BF912E20B1B983E7AF23F039F47F41421A + DE0474F74D89ACA3033B25A161869605B8EFCFC0EFEA5006CDB727C411A70159 + BE31582DAB378051B75119BCDE3B2EB22E23B25C73D0E67D82479E4E65D0E41A + 13597717325CA529C80C4E63ACCFA40C763A47A5094D12D87C42C63B85F13B66 + 65D068F78BC36E33D2C5E6133ABC9398E8EF56060D3D3E112A6BF2EE0DF2079F + 777EE8AA66044C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle file size column' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000021A4944415478DA8DD35B4FD3 + 6000C6F1A7F1C2C4C337317E0D43BC30284E361893413CDC1BC64E5D1D22D118 + 76A7D2B209C806A34644A3311A42A206124340A6E885388962646E8EB9AD74B0 + E92B2D69AD94D23E174D9336BFBC69FEA50821B8D8FB8840376AFA67493CC633 + B6322C4EB228E972E1C604B97DE904366BDBAE747DB9B00C7E2A35BD266C5A46 + 55F0FCF571D2D7510FB1FA477D582C8B585CCE22F9FCCD2C44B18E651C39CBE0 + B96BF709EB390961E3B7FAF0E0FE7DC8AC09323AFA6C6E91EB3C75C432D8DE73 + 8F70DE0694C47FE0FC520633EF57E4FBA5F417447DA729CB605BF718E17C36FC + 126BFFBDB0922D22FDBD808793B38805CE5807DD5DA384F337A2B05ED3BD246E + D440DF7C803BB4DD3A78369C20FD013BF2821E0C714F8D01E055BE54A9532A50 + 411713275CD0817C590F32DC136893D260989A4B63FCC53B352D156CA1EF128E + 6E46AE5CD58161F6317626A54C4A2B95CE809F5C784D8995E37D217B4E069B83 + 83BBFC29DB3B70E8307626A54C492BF54946DFB29EFAA3324851C6DFBBED2AAF + 4B4AD9CC876F98FFB82ADF4B69F57B1B2853D07D25B96B52CA3EAF16F0F54751 + 4E2BEAB79983ADE111C3A49409952A985B1388051BCD41D7E5B86152DA754478 + 0CD00E73B025346C9894769EC81806992673D0191C324C4A3B6F6F124361A739 + D81418D83AA1730BDCFB84DEC80886BB5CE6A0C317232CED42B6B4F709FD9104 + E2DDADE6A0BD334A6071891E37F5177AE47BE8CD97A5120000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Toggle file modification timestamp column' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003554944415478DA9D947F2CD4 + 611CC7DFDF73357177DA6CADB6569A49F44B3AB28A2B4ACAF543D725945238E9 + 524AD30FA545454751B7867F322973241BAE1F0AD7A5707E179759236BD33F6D + DC9D4BB9EEDBF95AB7BEB99AF9FCF37C9EF7E7F3BCBECFE7F33CCF97C865B3BA + 41102E988E91A45AA4D5B9FE2911B91C36B98BEF372D5E79E54B88345A621270 + BB97FBB480150DAD9381F1393564C07ACBC0CDAE76D458DD3D6CD13F9D578B5B + 31BE74E0C9BB2FC8AD3E5C8B403F170E35BE546B2CFA09B935C88ADD4407C649 + 9F91811BD6FCA7EF24BADA9AD0A1AAC7E0E77EC06800184CCC9BEF809FB673F0 + 204D6C654A339A81E2EC276446AC3F3551F468C173669BFDC5767A24A7DC80BD + BD3D7C377863A9CB127CEC1F80A3C30274A93FA0A64E89FAB70D2DA3C63161E7 + ABE77D14F0D8AD2A52121B404194BD5A783B4D002B1AFB50703B155187C3B176 + CD6ACCE6D86206D30A8288043CBA978131C34F0C6946F0A6B10537B3A55F35C3 + 7A6E7BC3D37EE2686605B96B8BF7A43273249770244C00DE3A4FB06CACCDB102 + 5925C2F7F2CD739D7E148AFA265CB996D1AA52547A1022493979433C91D0F051 + 072F471694AFDF42F14A89B3A78E83C3B6A17DACB0A40AFB8581344DA3D523ED + E61DD4D6BDDE4344A79791E9E21D54A0A94F07CF452C24255FC13EC14E70572D + 0383C1A02D0E893E8BA2BC349A66341AD1DCF61EF18997E444E4F55252B87D13 + 2D41921487E27C296C6759E36F0B159DC3C3DCEB93F4916FDFB12D286C90387C + 5546A6C7055162EBA711B82FB4C581F008C8EEE7E190F822962E71C485F848F3 + C2B098F3548FC76D1C5C582A87BC5A897C690A04A1474044A414916927045442 + FB801E6E0B6C7028220A250539A6536562AA366630C08F1F3C481CBCFC80FC3B + 38D05987CCE413A67BE70C620AB0714097BA07D1C713E516F357F302857C7F5F + D9C5C49353DE614A7A16AA9E5687FC6B030C0F5E60BB342375B927D78D162828 + 36DDC3603E4D6B6A6E873821E99D4A51E5F6CF8ADCBC021CEC66B39A255793EC + 3DDC579AF5DF2FE5B7A95A3B70E642EAD7E121DDC44BF95F192B7CFC17593366 + 3EDEBA79E3CABDBBF97071764267772F56B83A41DDD30B5959259E54D7768C1A + 7F0499DFF214DAC3E0F2B6059B1243984CA60787CD9EABD16ABF180C0695E930 + 8A9A15F262FCF1B7F90501A8556E4202DCE20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle remote file permissions column' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002F74944415478DAAD946B4853 + 6118C79F739BA6F3B2D433B59C968A5D20ADB982224744A2EB4394147D910AFC + 50217EF0421042944A17CDB0884A300953415B58B9A9695B9BD3D4392FD1D4BC + D04AC3BB79419DEE727A77C8306BCD0F3E7078DEF3BC0FBFF37FCFFB7F5F8C61 + 18D8C8C05603310CFB3D8E883A164A619C34002606CDF8A13C0C0CA63033D63B + EDF5555D2B7D6B05FD13182996C493385910B495A6BC3DDD8161E70026A7E7C0 + 30346A315B2C97B52A59FEBA80A2C3B16292A294FB760763832313303C3EB5C4 + 5899CF188E85F1BD784E41FE34B4770F30CB469344AB91573B044646493AC377 + 6CDF338460933373A5D346EBC5FEE6AA59A150E88273F9791E6EDC84E0003F68 + D3F7F76AD5B2B0FF02850763425CB99BFA76850482AEABBF6771C210AED7EB97 + 57F5E322F1711DFA6044DFD7EFB0306BDCDBD220EBB00B14896325DE3C9ECCD3 + CD1506BE0DDF450A52D7EEA2284A9221D8C24F5F342EC1F8E44C5C8BAAF2A57D + 6054EC595F1FAF52270E0586E1B1149D4A9EBB1628144B92027DE93C93D90C23 + 633FE25BD495CFED024FC427759024277CBD9EB3984DBD15457961768127CF25 + CF941564BB5324018F8BE540A24C12041004CE66126502D5D4CD9FD8FEC12FBD + 202DCCC1EC024F9D4F992A797293E7ECC481C2F2DABF402BE35A4DC7FA807117 + 52479F3DCCA4B92ECE505CA164154E4D4E804AF1168E1C8D068140C0D6640A2D + 10380E86811EC7C0A7F7AFD31E6897CBE51A564D4951213435D68368FF01484C + 4A6655CBDFB70285D476EB3F3A06E6E75EA3BD786EF0AAB6895DE2405F0F64DF + CE828CCC4C0809DD898004D4A8DB80227168D3B53A063ECA4EA7696F4FA856E9 + 58350BF3F3907829015E48A580E114ABBA0EFD43DBD21B1A1A1C031FDCBA4AFB + F33783A2B1935568B19A40AD54C099D371B064B2B235E5874E1658F74EE91878 + 2FEB0A2DF0F7014DABFE976508B0D9C8F6A00B82ADA9906D6CEF6F64D58E8139 + 37D2E86D017CD076F6B23092C4FFF4220269B47A3697495F3BF4610DBA71A2D7 + 7B52503422E021BBC08D889F4EF772E8CE31A3CD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle remote file owner column' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003234944415478DAAD936B68D3 + 5014C7FF69D2B4CBFA5CD7CE8A9B9BA838A76E4EC52988A0227E1014C12F2208 + 13C4393744F48B0F44F483136520082AF845F085A21F049F200A82AE3E86EFB2 + A90873B8E9D247D2364D63124FE20365D355F0C025B9E79EFB3BFF7BCFB98C69 + 9AF89FC6FC00320CF3DBC2FC86D206AF9BDF21B84A16D13454D00A994C4E7998 + D3F29D0F5FEA577E8DFD55D488C0A6E9EE2521AFE77A341261FD5E2F0CC38494 + 95914C4B184A2691D7BEAC89BD2C9C2D0A585D0D774DC8D3172E0B9547CBC3F0 + 7B3DD00D0389740A839F87204A12D4822A9B796D5CD71B48A302E7D4724B5CBC + F356A9CB059FC70B37CF934203D9BC828CA24051553B8101B325F6423B362A70 + 6E9D738BC3E1E81C1B0E23E8F76372CD04545756E2F59B5E3C8FC76DB0246774 + CDD03717056CAAE33B4A8592AD3BDB5AB9081DB92C10B4D792A924C464026242 + C4D1536772922CADEE7AAD5F1DFDC875181309469EB437AF8B96F9831004C1F6 + E77239A4A41412043D71F6424296D3F36271F41455E5E69553DB16CC997564DC + D8285CBC0B56844A7797C966F0890A73F3DEFDDD976EF7ED2FBA6D2CDBD7BAF4 + DAC40995CB2C206D4141D36C68DFC7C1CBBB8EDC5CF54F7D68592710C86E5C1C + 0F8F29AFA0AA53AB6810073EBFF79DBE3D7BB30CB128E07141889A9C6313A197 + 736EA1415DD504C5C7FD0CF624BE80BFF61805498A9B8C79D1D4F4632D8AD23F + 22F0B84F98E760B81B650CE30D391CA8D87B1862FD78BC8B5DB41530E49BB670 + 2D4ABA7BF16A7B3BB2E45381AC6E98CB37CAF29D61C0133EEFD32A969D11A48D + 3CA97585CA11BAFB083AABA39015E10954800783EEA646C88383160C396A70C5 + 349F6D90E4FA91804A2DC7B9DD16CC1AE40BB4B6C3BF7B0F58BA03CA83FE8E03 + E839D801F59B3AFB2BD33322203B1CE8F79953390E29CA9A21DF4CFA273CAAEE + 3F80935E8A36308058E34C28F93CFA751D1C25A51C902976435A6246044E6159 + 0C11304DBED94EA7BDC1B762252A4F9EC4DB96167C387FCE56D64740277D2D68 + E66FC049044C7C07D693422BCAA05175E8307AB76F834A6B059A7FF80E640998 + FB2330E07F4CE56CC43F1AEB74BE583F244E1F06FC5FF6152BB8C4E804754B33 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle remote file group column' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003DB4944415478DA95927D681B + 651CC7BF7779B95C7A79BBA5AFC9D62D5D2BB6762BD256DB0D378B93B115A5C8 + 36F09FB58AA088B3A008FEB122FA47190365481995E1DCC00EB7A26C74CC0CBB + CE3AD6B571F485BE68679D93369D499B26697297CBBDF9246EBE0CA1CD0F8EBB + FBDDF7F9DCF7797E5F0AFFAA862A53BDA7A8B0CB489B6A544DA1E3427226128B + BF1D9856FAB1CEA21E3ED455C0E7F178A68B789E71DAED584D26110C85108E46 + 155110AA6FCFE2A79C804F3F613AC1B1D623851B36C06236434C49588E470958 + 80AA695F0C4FC96D39011BB7B1130E2EAFBA72EB566CAFAC44421030313383C5 + 3071195919BC3991DA951370670D1B38B47F5FED8EBA7AF04E17526909A1A530 + 6E0602B83CF07DEF0F63C2819C80FB76BA2B9EA9AD9DACABA931B12C0B455110 + 5B8D6364744CBC7A6BE4F9E171F1464EC04C7DF04653BBAFD4FB89D56A85AAAA + 10041177E7175B3F3CD97FE681C46B6198D3A0A867755DA75545195254F515D2 + FFF93FC02E8033D9F35A8866CF72CBF683366F0193E927E782A2F3CAE4D73474 + FF8FF1E4A5330C33CE3096528661902647228A2264393DAFEB2827F25416D865 + 631B8D305E6429B88B6A1B9078B111A1E85CF66F9E824A18CEF763F1F63046D3 + 72BC4B92EC168B05346D203B5020491288D38CF430B9CE6681DD366EBC90A6B7 + 151B0C60F338F0D747104B2EC06834C06D2BC168C393584D247096B81930D3F8 + E848337CDE7CF86F4CE1D39E41B08C09424AFE98B0DE790894CB8D46A395BC70 + 1485FCB657E13A761C061AB8FBDEBB983B750A49E2A23B9542C19E2AB4B7EE05 + 97C7928109B8371F42AF7F045FF9274F90E5ED7F01ED36BD9CA631AF69F01197 + 6E93095B6E0D23B391C053F588C83296C8B70B0458BAB71A6D2F3F0737EF402A + 95C61F4B2B38D9D31FEDFD6EEAF37F1C12A08F008364D146027410978EE66628 + 9A8EE0E53EC4483F421CF612E07D8EC1D18E43703A383268109749BCD6D13316 + 5E11AEFD0DFCCCE9F885D6B4B24733A43F729F26B9FCD586E5C75BEAC4B2C202 + 2F4DCEE44EE8FEEFC7BF1CBCA2AEE01B22F16719E777EFE6E2B3B3E5E9584CFD + BFA02E146BD64B2F59DE4CD8B19F7794B89AB56A942CC9D96FF7DC34AE52D358 + 4A04C304752E2E458E5258A33677BA2E9A39F30B796E0BCADC55E8ACE84678AC + 371B9D8D7507F1D6D0614C2F8C232DCA5015AD6F4D6069279FE437DBAC260B49 + 2B63C0EB8FBD8F039B5AB329B870E7348E0D75409154C89202595053EB70C8EB + FC163B3455834E06E52EE6716EC7B7C8E4B9A5AF091132E94C5F5775A40505EB + 02BA36D920C625A41332F22B5C68C8DF054AA331F09B1FF1C5243203A2680AB2 + B80E20D9723F1135ADA57B9089C13F01EA50AAC78952A2A80000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Swap left-right file panels' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001934944415478DA63FCFFFF3F + 033501A37CECFA3B8C0C0CCAD4300CE8B4FB8C0AB1EBFF87FB39E155B872D33E + 304D8C3AB0814262327815BE7BF5044C13A30E6CE0ED05FE7815AA266C04D3C4 + A8031B78731E7E85EA49100389510736F0DA5C3FBC0AB59237816962D4810DBC + 321BA1F0EFF7EF0CA7CA8A182C274F878BE9A4420C4456773C3793C1ACAB8F81 + 999313451DD8C08BB37CC1029F6EDF623892180BA6235EBE872BD44FDB0CA661 + EA406085B820039FAA1A83CDFCC5601AA60E6CE0F9193E0C0F562D67385B5102 + 76212900E442E38E1E0685B04806C38C2D1003CF4CF761780834F07C2579061A + B6F730C8030D34C9841A786AAA3758F2F39D5B0C2753E2C174E093B7704D66D9 + 5BC1344C1D08AC971166E0555163309FB3104CC3D4810D3C3E19A1F0EF8FEF0C + 97AA4A180CFBA6C2C52C73210622AB3B5F94CDA0D7D6C3C0CCC189A20E6CE0D1 + 495E78BD659DB70D4C13A30E6CE0A109F815DA15400C24461DD8C003FD9E7815 + 3A146E07D3C4A8031BB8B717BF42E7628881C4A8039587F780E5A122031500B8 + 3CA47A894D6D0301869EC1A36494EC6A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Keep remote directory up to date' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002C14944415478DA95935B4854 + 4118C7FF33675DB2946D352856D4B2305CD387B00B14FA522F921649BD155160 + 6511145604120B0A610A41500F61E5536F15B985946574A11692F01219129997 + ED66B56B9AB89E73669A39BB673DAEEB6A1F0CC37C67CEEFBBFD87783DAE65DC + A67801B21951E33E55637B2A3CFE61FCA7116F6DA62FBB3067D39AA2DCA8F363 + 471F3EF7F447CF2170742B3A7AA83EF2CECE3AA18011A097103CEAFB35F2101E + 30792FBFC97586B4D465F192DD8573466C19FA814B1F0631AA69208240A87541 + EE9D60EC28B52BC594D27A033817AC8D4E0908E06636A482609270D4A7A895A0 + 384B29596D8229854628B5190124B0EC5CC72CD8A7403F1C8B1C484F4E8BFABC + 178A505E33484489F6BCE52B9A8842F719506240C3594BE0F6AAF3D042037218 + E1C68A5DE70C8A4CCFF085FDEDD76F8581D23CA0EE8C8C2E015A17CE92588047 + 4E4157FDE23FB37A6E404D90097D72E36E14E8BEE6AAA60A69982EDB0AAC3C04 + A6FDB46413038E047A7CB3D5000A58838055CF1C50A46C09DC52BA154C0D5A3A + C8E3EEAFDB7AA74B9E4B8712587ABC4624A15900D3107572021D0F6E23F8EDAB + F59B4F5CAFD8E919FA320B78AF36734C4C292551D49505AB9048F8167B99307D + 43D8F308DF6ACFEE7483F4A4A7715D1C74D178633717E3979F068327D7D765E9 + 0BA299257745809A15C859634960F4B499613CE1C733297CF25602AD30C6FADA + 83A3791E841F7C3CE14315EF3A4941ACCCA4F0C99B34279F51AA847334FF0E06 + 0FEF05A66285AFFD9DC2847F0C8E5C27E2099FF82240C63913C2A196B2DFAB3A + BF48AA1CCDDB4E1CC4F8C000BEBF1846E84F0879C70AA3A058E1935702A87134 + 6A5CBDCF88EDAA80B9630724FB4B162BC839908DEC5D2E24123E79EE74361407 + 02C60044DFE886A5A9653AA765A281393AF812AC4DDA58B0BF1C193BF2617724 + 5B46301BDA7AA5110BD061E6981043CA7CF722D0F17FEB126D060F5035260000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Bookmark current folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000024F4944415478DA63FCFFFF3F + 03350123D50D04119B1BA444FEB3306F07724D1052FFCF30FEF9EBE9DBF0EC0D + 4906420C633920AB6FA6AD64E60097B877EA00C3E38BA7AE32FEF9E3806EE80C + 5EEE0E4606C6620646461688DDFF7F008D3AF797F14F31E3A656B93372BA06C6 + 4A669618B6DD3B759CE1D1A50B18E22FFADF3308F20A30884B8802CD6164F8FF + EF1FC397CF5F199E3C7EF68471538BDC7FD7447B92C2E9D991970C07F34F31B8 + BA3831B0B3B3C3C5D7AFDEC20036909CC07F39E50383BBBD03D04036B8D8860D + 3B2106FA569E21D9C0C5AA660C0EFA9A0C6C48066EDCB60F62A057F106866F1F + 774385FF23D11036238A18845E673185C141478F818D8D156EE0A63D8721067A + 162E65F8F1793F42D37F7483512D001B68398BC1415D0BD5C0832720067AE4CF + 60F8F9E5185697E0A2D75A2E60B057526560634518B8F9F8598881EEB9DD0CBF + BF9DC170193E0BD6582D63B09351021AC8023770CBD94B5003B36A18FEFCB842 + 84EB1061BADA6A0D83AD841C031B0BC2C0AD97AE430CB40F0E63F8F5E9069A01 + 0C78F95B434F32D889C8000D64461878E30E3452F23A19FEFFFD84A28111AFE1 + FF19961B353358F308327CFDFD1B2C22C8C1C1B0EDDE438881D69EC60CFFFE7C + C6A919061891D85B422F30D8700A335C7CF781E12FB0C4B2101361D8FEE419D4 + 85D9C5780D424D4E10B0DCB88B41EB2F0BC3857F9F19FE7EFA77CF5C5040E9E4 + FB0FC0D2A645EE28509D1503890094F5787F3231FCB562BDFFF9D08F562156E6 + 39EFFFFC8506151960162FEFD6FF8CFF259F7FFA0272CC1F493EDE23401FFCA5 + 7A890D0007F10F24E8DDCF3C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open console window' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001444944415478DA63FCFFFF3F + 033501A342ECFA1B405A9D4AE6DD0419F83FCCD7892AA6ADDABC0FECC2FF4262 + 325431F0DDAB270C8C328AEAFF8D6D3CA862E0D9233B2006EA993952C5C04BA7 + F6430CD434B0A28A81D72F1C8318A8A2654C1503EF5C3B0B31505E45872A063E + BC730562A0949C0A550C7CF6E80EC44051095986F9B3A6305CB8748561CEFC45 + 0C5FBF7E23CBC0D72F1E430C141012635057536528CACF611010E06798347506 + C3D163274836F0C3BB571003B979F8C102CCCCCC0C11E1A10C7131510C878F1E + 656869ED24C9C0AF5F3E420C6463E3000BB0B1B131242725800DDDBA6D074357 + 772F4906FEFAF5036220B08C6030363662A8A9AA6060646462686DEB60387DE6 + 0C19A1F81F662003C3EA95CB190E1F39CA306BF66C861F3F7E92152920003790 + 5A80515A51FD332303030F350C03BAEC0B23D54B6C6A1B0800FEF574C3AAA9FE + D80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open current local folder in Windows explorer' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001CE4944415478DA63FCFFFF3F + 033501A342EC86E70C0CFF25A864DC0BA081EBFF87F93A51C5B8559BF731800D + 141295A68A81EF5E3F851878776100550C548EDF0031F0D67C7FB8E0EFEFEF19 + CEAE4E62F8F0EC3C5C8C5F4A9FC1287026033B2FFEA0564BDC0831F0FA5C3FB8 + E0A925810C82C21F19544CD4E0620F2FDF67B87DE616860102D2C60CA6D16BE0 + 7CCDE44D10032FCFF6850BEEEF5162B00FD223CA8B07D75D62702CB907E7EBA6 + 6E8618786126C2C0437D4A24859B5D11C2408374A88167A7FBC0058F4E5066F0 + AD3C4394619BDB4D18AC0BEEC2F9C6995B20069E9AEA0D173C314985C135AB8E + E1CFCF87401E24173132C072D37F24CCC0B06FEE32068BBC3B70BD66D95B2106 + 1E9B8C30F0CC14A08119450C7F7F3F05EA4318C4886410CCD0BDF3D63398E420 + 0CB4CA851A7878A2175CF0FC345506D7B464867F7FDE60B8086E30D4A23DF3B7 + 331866DD86EBB5CDDF0631F040BF275CF0D20C35066B2F1B867FBF3F2085D67F + ACF4F1DDD719F43210C9C9A1703BC4C0BDBD1E70C1ABB3D419BC726A808EF883 + 64007643B74FED61D04EBB0957E15CBC0362E0CE6E8481B7171A015DF795A858 + 6662E562508D47E428F752A881DB3ADD89328010F02ADFC940FDF290EA2536B5 + 0D0400EAB0CDB92D6C87890000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Edit file' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003244944415478DAADD36B4893 + 511807F0FFEB74A63921A41BE684A09B520441828628456517CC48CDCAB48B95 + 19A22B34332F49165DCD749BCBF2D2C5D24ACC102924A18B5F4C4C6DA5D29CE6 + F2B26CCEF79DE6E6B6D3E607F36D4E0BFA7F3C1C7ECFC3799E431142F03F4309 + 24B5FF22BE1DD5234014E3AFB10AC6E7BD22D78FFA6374CC38AD64AE5AF1AE1D + F5ADBD755AE3C026514CC894281527AA2159D1EB31A29B1E34A7A1BD07BDAA61 + D449157546BD2E2027760B2D71B6DFCAE33A14D25A43D431867946C5E6BE20D9 + 311BA1D11A6604FB550C7A7E68C6D1B72D5D2DB34AAE5EF79537DD5EEBEFCDF9 + F2B1CDD82257ECA44E6457939CD8CDA07FCE0C723904DF4CA019FDD02445479B + 14EB5C66C3A7E609C6BA1478DDA95052C7B3AA88306E0BD423FA19C136850A6F + 9ABF62165D0FAF399518E4C561E1A265A82F28C45C4996A117BA402AFA5A2511 + 0AB663707866D09CBEF61A70876EC26DD93CC89A3EA1511D6F68F8DC47F19EDE + 0BC990363EA58E5EA920A2938150FD0538287F059B1FD9E02F77852DF90A3DD3 + 89E646A3EECACB0D3B4A0BC4D5E3538EBA544EC4A78230A0199B1653CB6B61A7 + CE81DB0A3E6C292D74AA6674CBD4F8F49ED91698D65735B136872F3C26E2C45D + F8CE5807873A6BC1558BC0F7580C8EAD3346FBDF402153A2B8291899C969D4E4 + BBD4C1F3A5447C3AD82A68C61C6889095B0A8EFD128C743F47778702864599B8 + 56358482B3A16C3032E321C94B0A8592B604E9AE5A386A6EC1DDC313368E3E60 + 3A4AD0239341EF960267777FA40ACB51941AC60623D2EF13F199300B502DAF03 + D37211DE3B7C61E31484A1D63CF4744861704B00CF84999396FB04C5E9FBD860 + 78EA5D224EDE6B01B6570BC19FCB01D7498739B3BFA3AFEBA3A9B3D8096C1CCC + 29C3BD8CFD6C706F7211119F0D473FAD9B38D48ED050BF9360E5EA3550294DFF + 575E0687550238F1FD5845D36F96E24166241BDC9374878852224CE0EF0ECBC4 + E7611C1E40B09F2746B92EA05C5CE1E8EA65F1C6E7B24B5072F1101BDC9D984F + 44A9912C303F5380F90B162260CF31D839F0ACAED3B91B0FF0E852141B0C4DB8 + 45842907A064A65FECA9C1FB28BD7CC412FC676952FE047F01BC0F7DC1ADDEB2 + B40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open file as if double-clicked' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002B34944415478DAADD25D4853 + 611807F0FF69924611046225B9CA420215096B11985942E2456A96E6AC08D432 + 22BC0A2B9DB6A82EA2444888DAAC882E2A84D045565A19281A6ECE8F5C520D3F + B6694C9D9ADBCE69DBD9396D67B279DCE6407A6EDE2FCEEF7D9EE73D0442C485 + 1A051BFC94E83499A98C0669BEC5BB130A2CBDDBC83EBC9C0D3BCD77DDABF6FE + 5134B40D74CE5AED5E342478FECE6BF651F931500EC6EF6CDE4241333A8557AD + 7D2A5054A64C5A38CD816FA4D1916C98E09DCBDFB3280715413B3315117553B2 + 2BB9B0DA9C7EE0DA70018CB3560E7DD9A2D6C8AF1E4F203C58D8979824517CAC + E880B7A0E1EE76E8FB959AA65535F1F26B2760A6FCC15EAD115DDF0DDC5C3BAC + C3E38A3C8250DC16AA8489C9C9B1A29485CEB08BD04EDC1F10435E918F3F141D + B02586A9790CFF9E83E2930A4F24275DE02D219B56729107118BE665B21D9057 + 16608E0C0CBA83B2D1A87ED088A7D5620F78A8E49C2F3B16BC4C2FC9E2502F11 + 63C61A1C7447796D039E5D3FB500169FE5806FAD9F31AD33847AF8E542C38187 + 8B0B6136CD40373809519E6C4592D33187E67BE95F3D60511E467A07B17E731A + A2B66F83C336C6EBA93B08DE9A7FE61E477AD41851F79473607A510EBA9BDA90 + 9C530981601C8CD31CF0A3C01778F6948D6F316F342571E0C1C274A89A7B9172 + A6120E52BD2C04D63F430749E2C38B7614540D7A1E2521350116F33AC4EDDB0F + A75D1FB4AC60E3C4CF310C750CC8B224BA520E8CDA1A89985D7B111E6601E3F0 + 954B787F232C41F873EDD03826F5A6CCEC2AC37B0E8C58B31A69C5375C00E9AA + 2858CF02A100C3D0F8585F6B67A8BF1B8E4A27480EDCB825123B138560686BC0 + 8FFCCBF43D0A69B1A3AF4BD79225D16770FB8A9B31E3BB8F64446F8A4B5C16F0 + AE97B440ABECC0AF6E65595695A16E01143E775D771A2B8F1F346D4BCD951A27 + 39D0D7B3FF13FF009CFE68A35D65AFC40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle synchronized browsing' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002514944415478DA63FCFFFF3F + 033501A37CECFA7B8C0C0C8AD4300CE8B4FB8C0AB1EBFF87FB3AE155B872F33E + 304D8C3AB0814262327815BE7BF5044C13A30E6CE0ED05FE7815AA266C04D3C4 + A8031B78731E7E85EA395D0C0C3C5718FCED78185899D9180CA54C195C55BD19 + F83904187EFFFBCDB0F3E626061FCD6006F524A881D7E6FA6135E8F1C7070CE5 + DBB2182E3CBA058CBE7F0C0CCC9FE1725CACDC0C8576B50C179E9E0246C67F86 + 1EEF590C5AC99B20065E998D69E0F3CF4F198E3CD8CBE0A116C0609973002CB6 + A64D8961D2D1368643F777A3A8F5540F64E8F69AC5A0930A35F0E22C5F0C03DF + 7E7BC520CC250666EBA76D06D3207520D734EE2962587F65295CAD07D0C04ECF + 9960756003CFCFF0C11B8686195BC03448DD1F6098D5EFCE67D876732D5CDE1D + E88B0E8F9960756003CF4CF76130992C8E6208232323439D733F83AF66248349 + 26C4C01353DD194AB725311CBEBF0B45AD1BD0C036F799607560034F4DF56630 + 9B2A816258BDF364062FF51030DF2C7B2B9806A9C30740EAC0061E9FECCD6039 + 1DD5C05EAFA50C9672909C61990B3110A40E043EFC78CB20C0218C6120481DD8 + C0A393BC18AC6748A248B230B1322418173004EB243278961E078B2D6D5461B8 + F0FC0483BF562C032310A203EBBC6D10030F4DF062B09F2DC5506CD309D4709C + 61EFDD0D0CB05288998999E1EF4F410606A69F0C817A210CB9968D60CBB001BB + 02A88107FA3D1976DE5EC5E0AE1A069678F8E11630AD6D0326EC7B60FEAEA340 + C33F99301CE88CC71B860E85DB2106EEEDF5C4ABD0B9783B9826461DF5CB43AA + 97D8D43610009382F0A3C68E613B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Create-Edit shortcut-symlink-hardlink' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002604944415478DA8DD2EB4B53 + 711807F0EF82417F4390254A04F527F4229334C15859A2F3329BA24EB7B935D7 + 751321E845549BBACDBCB01C2AEA96D8CEC85C939A11CE37150549180BA26668 + 5E5BBBC9DC7EEDA2D96167F33CAFCE797E5F3EBF1F3C0F871082D6BE190256C5 + 7185B64961B738CF9736B10B3E6C380D92818D1FBDF9E4816DEE6B4694068623 + 991FBAEE0D6061711394CBFDDE0752D8D798B7CA082A7A5E118DE80C42E16846 + F020F7009637FC58F06CC0EAFA32AF15E59F6404658669D2213E8BC05666F0DB + F26FB8E63DB18B2370FF584197A480C3084ABBECA4537A0EBE5064DFB14463F9 + 356F101D9659E86545CC60B3F619D1C98AE10D6EEF0BEE96AACF8E478AF3CCA0 + E80145F40A1E3603EC4175CF247AAF5D60061BEE4D10BDF222D6FDA960A950CE + FA927F60DD5D0B315C2FC59A3F9C1228AFBB8A97663D2B2CBF4C920485774689 + E16619567DA96065BD028E511D2BB0802F4D8282F621D27DBB122B7F524141A3 + 0253235D78FBF133069F4CE2BB6709D95987D0547309C7728ED0B245152D49B0 + 4A6D2206553523286C6AC5D3010D2C36075ECFBDC3CFA595449FCBE5E27EBB1C + B9470FE3F128855A3E0FC5553B20FF969118DA6AF0CB9B0AD68B95A0063B13DF + D1681463563BCCD61789FFDCEC2C9C389E036ACA99C8F004B224587EA39FE8DB + 848C2F6C90283161EAA0F54C63146C7627AD17CF945C91EF813AB59071287170 + 7C800E06435BA86D51211CDE5BB378E6B2F03F30DDE416DD1F60366A693DE3F0 + 381CCE595A2F9E298BAD5802E47038E93C9C2A692623FD7BE0B085C2F3E99994 + 5C3C5351CF121CEAD5804D55C7568C15C84ADBA9BF320557B8B5E24BA6000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Quit application' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002654944415478DA9DD5CD6B13 + 411400F0379BB454CC266DA2425B1421456D0B228808228887243D7BAF9B82C9 + D1831793BF20F1E24110DA44D3A6B9F79C8F431144101144B055494594585063 + 6352B1B49B5DDF9BCDC4E97673481E849DDD9DF79BB7C9CB2C7B0CE071A99E87 + 8CB15B001080C1A26E9AE65ABBB57B8F2DAA9ECC0863B159B71BFC8C81829F7E + C2304DD26043D761CF349EB225AF5ABFEC76FB038A3260719D120D035EEB7A83 + 40F3E6D010AF8CE1D13B3FCF27340B05300F0E1C939DE651A5EB78B4C0E1617E + 73F44E0C4EA6527CFCA75482ED85E81194B0F1E515381E89F0F31FC924349E64 + F9787D7FDF026FE0248AB1580C4EA5D2DD64426B51AD8B1236B992EF6214DF93 + 09D8C95AE03351E1F50E4809A731C12325EC22FA15518A5EF7C482CF0578AD03 + 0AF40C26AA7262A502D816A086C3DD6B2DC4BE4818C50B015E9540819E45D42B + A1723411FB6CC3285E0AF08A0D146870B5006A2874182B97E19376DBB1035E09 + 10FBB027E8931E9383953254B1659C40EC430BBC640315C4A6F279188DCC393E + 72A35484AAA6816143DF08F0A2041276CE8635F031E91FE90B850FA11F6DE85B + 01CE7640C22E203626613B98F85EB3DAA6D73D81BE13E074079C88C52198FEDF + D8BF3061534AA005A711F54BE8562201DFB2193EDE14E079978B5F988CC7612A + FD808FEBC5226CE0AF69FF9E089DC9AF4260CE42AB89FB50CB58E08776DB0283 + B8D330DABA70F244340A0CCF6BB9DC114C46EDF3A8F1B770C7E1DBD7B8A2F88F + F5B90FDAE32F82DB86D1644BAA9A7331583881AB8D50FFF50953657B78FC89D5 + B54D5866F40A70ABEA236040AF00DF8005FE0613D6F456EBEE3FA2EA3515D5AB + F74F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select active session' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001DD4944415478DA6334B5F7BE + C7C0C0A0C8403CB87FFAE056255C928C4003FF4F9DB39CE1DF3F06867FFFFF33 + FCFDF71F4833406824B1FF50B1A6927806A0818C780D6C9FB2026C084833C890 + BFFF6186013190F80BA4FF830D6660E8AF8A216C6075FF6AA80BA086400D82B1 + 41E2200341EC9975E1840D2CEE5E0B3610D980CF3FFE337CFAF10F4C7FF9F99F + E1DB2F06866F40FAEEB248C206E6756E001BF4FACB7F86B740FCFE1B03C36F90 + 3FB1804B7383091B18D3B085E1F92706865F7FFE3310028727F91236D02E7F0B + 5E43FEBF3E40D0221403651535F02A52B0F461E84D7360F8F30FBF0FCAE71C04 + 1B483061DB461633F4A63B32144EDF8B534D47AA2343D55CA081D82441AE86B1 + 41E1953F75F7FF09592E0C5F7FFDC3EBC2EA39FB500D443608199807E5304CCE + F360C89BB20BA7612DC9CE0CD5B37733E08C2D6490D9B7F9FFB4421F86775FFF + E05557336B077106A675ADFF3FB33480E181A8084E35DCF79E33D4CCD84A9C81 + 296DABFFCFAC086178F9E9375E7575D33612676062F3F2FF332BC319F226E04E + AFD549EE0C7553D71167605CFD92FF33AAA3185E7EFC85575DFD9435C419185D + B3E0FFF4EA588692491B71AA294DF0646898BC923803232AE6FC9F5613CFF0EA + 33FE306C98B88C3803C3CB66112E35A000006C440D1AD7B2AA0F000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Check for application updates' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004904944415478DA85D57D4C13 + 671C07F0EF5DAFD7575A5E0529545EB4BC0C142430B66104D4BD39B7C52C645B + E262C005357164D9FE5962329291CC652E994B36A34363B23F7C49260A9B89E2 + 700B38344C1190D789405F7887B6D2D2EBDDF56E0FD75963C6B6364F7AE93DF9 + DCF7F7EBEF4929FCCFEB423D580D935A0D19EFD21455ACD6525A9E93C91DB917 + A02E71A2748C65A46C56CD5E1305C94FFD1B94F745DD8E1CDA756097D0FB5AB6 + 85535B6D2C62120DA0192DB1B5F02E02AE511F5C23F3FE95FD052F951AEE5CE9 + C43FC0ACC387B3D42C4E5899C5ADB5AAAB2828E6C1B02C969754D0E835884B36 + 83D11A205361D8F74802E793109B928A5F4E5F7C1AB47D74B44CC58A2D09066B + F407EC11AC4B7263618606672C05F4EBA0922640CD76213D370E198569A462BD + 822A38596DA7CE3E01330F7EBB9ED6C85DF1311BA3DF4ABE879C852F216A92B0 + 5CF439047D16820113A41003A37A18A6BE43484990607B368F40BA48DA1BA7CE + 3C01336ACFB447C75ACA4AF3F351597C1DECFD16C89BB662D6BD05E60407963C + 899877DA60359F85E9D651E497E5202ED51AC1403E6F349E0883D6F7CE6F67B5 + 746B7E41295EDFD9417E563FFCDE3598B5E72B1BE253063167DF0878BC289878 + 039BB76F8239298940E17450501D7E6D3C1606D7ED693A159BB8B67AFBCB016C + C8B9A724E696A3A15289700C6E83103422C4EBA1131C289EAC022378579D0C82 + FDAE80697B9A862D19CFD876BCD90E73DC646403CF99E01A7C05016F72E43B99 + BCD3379F8373A81C02CF903E5E80CB338B9B7D63437FECBD98F338A13F3DBB48 + 5F50DE0A59522321A51F93231558187F012A9A024D16A56020A983482F68828F + A3A137BBC06A97E0F3D368ED1CF3DD79FF5C54044CCB2AD4E796746366BC04A6 + E87904DC19605434598F414A492749320A4B7E46D0D003411694D43E1F83AB1D + 765FF7811FA29E2A393ED18898354EF8E7B3A16668A8159056525214016559E9 + 6B45F965CC88767845B702CECEB068EF9A1AEA3ED49843B534586F92529E5FAD + C93C1D8B0ECB8F10345690730C898031263F4A8AAF6132E8C05C7011142DE25E + 378B3F27164EF77CF85D0DD5DC6095CBF7D5918202A4491CA89545AEBDD3D3B8 + 7BBD176D895720E83294B462484248169199D183992501532E2B324B4FA2F972 + 109CC06FEBFFE4EB3605ACD8571BC61006171C76F4B6F7C353F93686E70EC2ED + 59A3941D22FD53731348737F8F7EC37E04346AF2B04BE81B98EAE8FFB4618B32 + 3A0A58B3378251720023B7EF63787A19F3953BA137D820FAAC189FC8053F3D87 + A2E9FD305176DCD2D5A3535C0FE75CA78797B9E2D123F50F226065CD3B7F63E1 + 949097F1B07B1C0F07E6E14BB240D2C58177AAB136D485B8440963AE041CE73E + 83F3D19887A2B95D235F7DDC1119EE15705BF56E2C3A1DD01A69184D7424ADC8 + F9B130E9457039087D54082181C7DD5B5A7C3379001342CC6F94C4D73C38593B + FAD46959018B5E7D0E3DADB7FD32E991C5166FB0641A618E85024B2207F78C1F + F6111E036331C2F9E9AA9FFAB90DC7ED67AA5A573D7ECD0DA9738C5AA5E305FE + 455EA487B40C5D476ADE4D6EE5B15A0A022773645CBAC8D49CE3444763553DF8 + FFFACBF80B0579087C2621FA020000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open current session in PuTTY' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002B04944415478DA95946D4853 + 5118C7FFD739D9C664951938DFD07C5B1A112A198B8CEA43D10B82A330840AFA + 9042F5C13EF4868C28220AA4B04030413F64249AA016A5812FA899A46E694DCD + 962F394DCD96D3DADCBDA77B8F615D37BBEB81C3F3F0BFE7F99DE71CFE5C06FF + 88D4F4031FF91405DFC3CA4800C9BDE272701CC0110296237C06DC732320CA30 + 5A0B1AF99DAF9E3F0E49E08DC247B4510072EC2258D31590CF75206106B875F9 + 60F96F841E06145CCA96065E2EA8A013703FA721EBCA859A194380528569773C + 1C498514240085438BF28F4A03F36E5582B1F74261CAC5BA2005E2D3F7A3B3A2 + 184311F7311EA087C349B0E00216F83CF430CB0760DE69A8FAF210AA4B44CCF6 + DDB059CC30B599501FDA04B2A2DDFC207375A0D1083FC7480ABB2B660631FABD + 0849D842F5AE27A53033D9185E7FC6A3A7E5EE21EFC01AA35645FCFDCBE40A65 + E6A63D87B1461B4975C7CC24DE5495E26D441966D53BF80965A2BEE63B07C178 + F35A46D228B6E964D8BCCF0045A066591F6879CE5FD944EB7E7B34DAA79245C0 + 51AB85023DBC36DF7D0D2EEB63BA49A5598BD423A7F86AE9323FEC5FD1FBA20A + 6DEF086AFAC2565ECECA78788D07B38403671F04D37102B16969D0EAB6D2DDDF + C687D1575F8DEE612585BD6A7CEAF164CCDF5E63E9944BCB6FE21902072E22ED + 580EFCFCE5B0BDEFC1605B035EF66F40EBA76011A4B3A98E110105AF11F20726 + 80D5AF33101BA74164B21E1F5A1B306219407BE07534569688005E273C7BB39A + 82A61C0433FCC26C17F4135948319CC4200F1B9F70A223B808F6001DF59A2430 + DB580BDB77C0E526544C1CCBC146650FDC2E27269DE1308797605116B4EC3549 + E0CE73B52231CE760121B3E5F8A2C980457B1B84918BBC26090C8F4A108BBC65 + D5F279CC2DAA3D1A04AF4901FFFB27CA03A357057A1385A9BD59C297605603AD + 0C5FC1BF008A6D634ED5DABBE10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Show information' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002EA4944415478DAA595CB4F13 + 5114C6CF6D3BD317A540815AE8D007CFD4000B124D908871E9460A1B62A80B17 + BA9750244152A2096AE2CE8D5B35CA06A6E83F80891B8CC40011298F42698582 + 8552DAD24E9FCE4C1F61E88C2EFC36937BE6BBBFDC3BE73108F874C32169203A + AC288BAC0841171DD1E5DFEC67B3B098455972D7BB4CC2BC2375712BBA1820EE + CCDE1689D14BA5AAB25155510D0AA51A2438CEBE4B251270160D41F82400D170 + 702B93CE0E7BDFF7CF09001D22A3AD730AC3E5F64B0DCDA02853B351BF77134E + 8387ECBADE640184725BCE2221F0EF6E4032117BB1F376698CDE9FE1008D36F2 + B95C596EAF335A402C16B3B1782C020F7A10F47513B0B0168089D92028549AE2 + 11D2E934ECEDAC422C7A4A43ADA345A07188ECC3A43252DFD451843132D37B5F + DFD316D793337EF8E2E67E2506EADB5C862415B7EEBCB33A11930083BED3556F + B698E50A15C7ACAB90C09BFB3590BF258C4C1FC3770F5592C3D859187EB957DD + 1EDF522B32D866FBE54AF54C9DA19537E1372D0AE86D93B320E7620484B4E771 + D1570F0D20A3CDF9A15A671854A93525A6EDB545CEDAD4D625080C878E20B0EF + 99A681A48B4E440B864B4B4CF3E3066E793EF5080293098A49D03A320C9161A2 + A9BD4C241295983E3F3671D6BD4FB60581994C06BC9B2B1116A8375FE6051644 + 3E2440A3C2E1FAE4D65F813EF78F087BE55AA2B905C37041F3DCB08105F63836 + 043DA964020EBC1BEB6C522AAA758385CEE0D3C711130BBC36E112F4309D7312 + D89F66CB462A53CE686A0941F3A7D14616D83DFE53D07374E8052A1E1D281676 + 959630E35219C7445F817D7E7B750B34E53898EE3AD9B59668E6F812541C8E0F + BCB9C266024CEB89318CACACD1C3F9E42C4CB5F39EE6EAD80A2719C1DF3E4827 + 93F9D6CB8B190E182EB39757698BD0AFCF3A7981571E2D1561A7C707740DC6B9 + C321A7DCF8128925F632BA6BF80AFDBC98428ED0DD9149A7F8C7574185014B9F + B6512A9583049382283F8132F464492529A0A81873AA7F0DD873FA8F5FC01F98 + DF3F90003C62AA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Synchronize directories' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002574944415478DA9D94514853 + 5118C7FFC7BB46459037A207B125524F4216C9302A2644DA227D28D873414F45 + 4609C9D684C1621245500FB1C028909E22A87C9098A999258D51562A6562DB95 + 46B4D86C1BD3EDDEED7476AFCEDDDDE99AFFFBF09DFB9DF3FDCEFF1EBE730998 + FA1C55DBA98EEB07480372A23E22A5CDAD8EE01F9421A2C074C33BEB8D75B5C6 + A6DCC4AC7718739FBC9344929ACA819217D70D1F0C7BF7EDAF351ED44CCE7AC7 + 207C1E2FC5186DB30B47F281F4D85953395FA592E7E16B30205101D74D5B9206 + D86AF5AD1BD6D7DDA0059EE87886C45FCF528AE645654C5439751CEAE9D102CD + 971F633136B4B298162F2ECC65371A7CD0AB051EBFE44632FE6E4D27D96720F0 + 03AF027E08B128F45C057657F2D831E5C7956B3F65A0C1C55F95812D176F424C + F834CE9637F047E7611B7D0B3193663982E948848D332B0749F192127819B54B + 019EB7435A9C28EA2EB490C058F0179A6BAAB191E3E45C424CE1D1E434DC5FA6 + 90CEA89B44069A4E5B908A7E2D002A8A4B22B6E874C8B7B31C077E87619D98D1 + 02CDED3740D3D18203D7C20BDDDFFF38825BEF3D5AE021F30164A4D89AC5EAF6 + 01EECC04D12B845028C5E1858E55417BDC4E4DD1B9FA4674361E95D7F4DFBBAB + 699B372C1EC62A6AE7E2AAF793193D9AA93EDFC0489B7D2EF7332028A19AEE6D + AA8364CD6211ACE127C5D6F29DFCD6B281ACC1254AA97321357F3BE4806CBFCA + 81CDBA0DFC292A2607FF0BC8884E426164DFD392874E81927136574108A49424 + 9E0976C5BE9504EE72F1B6802DE2CA8EAB5D95268E100B2BAA63B04D94D0EFEC + 3E3D1792E1A77040BE3AFF00D06425500B97D0140000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation needs user interaction' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001F24944415478DA63FCFFFF3F + 033501E3E03730A37713554D644CEFDEF07F46893FC3AF3F949B9B3761130363 + 5AE7BAFF33CB0219BEFFFA4794A66FDF7F301C3E7581E1F3E7AF0C4282FC0CB6 + 66060CACAC2C60B982091B191853DAD7FC9F5D11CC10513E1BAF41739A92189E + BE78CD50DA3491E1D7AFDF0C4AF2D20C37EE3C641016E06398D852C2C0C7CBCD + 50D8BF818131B975D5FFD955A10C9FBEFF25E8BACE290B188E015D37BDAB9A41 + 4A4294E1F0C9F30C9D93E7336426843178BBD83014F7AF63604C6C5EF17F4E75 + 384354057E174EAB4B64387EE612C3878F9F193C9DADC162B316AF65D8BAFB10 + 437D69068391AE264349FF5A06C684A66540032319DE7FFB4374E08392DAA4D9 + 4B190E1C3DCD10E4E3C2101BEA0B162FED5FCDC018DFB0E4FF9CDA288698CA39 + 780D99589D00671F057AB57FC64286E4E860064F175BB87879FF2A06C6D8BAC5 + FFE7D44533BCF9FC9B6817EEDA7F9461FB9E430C7D2D150C8C8C8C70F10A9081 + 31350BFFCFA98F6588AFC6746177793C56039FBF7CCD70F5C66D06673B4B1403 + ABFA5730304655CF071A18C7F0F213F12E9CBF740DC3BE83C718BA9A2A182425 + C4E0E2D5FDCB1918232BE7FE9F5D9F0034F017D106FEFDFB97E1D5EBB7288681 + 404DFF3206466082FE3FAB2189E1C547E20DC405EAFA9730308697CDA26EE130 + F8CB436A1B0800E261D14684B5C5890000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation has some error' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003474944415478DA8D95CF4F13 + 4114C7DFEC6E6D29BBA560D4D6A45A81A098103458E01F00046210B97029152F + A23713C178E36604138FC245440E7269100D20F00F00D5A021112188D5261635 + 02B24BF9D1DD1DDF2CFD498AF29269363B9DCF7CBFF3DEBC2590213A018413A2 + D84038682494940101A73141218CBF019DD2E11F8A328CFF53F7AF25FB5FF448 + D62B84F08F8F1252E0E038B0E330C7E67670ACEB3AACE0F84DE9674AB53B6D72 + E4754620EEC63925E9819540C77941803C04FD2B5611FA51552142A12B2CCBF7 + 71BD9E06EC95A487768E7494224C20040E132AA5F001A1EB3AEDBA29CBF71240 + 845DCD223074C964326082D30926970BB60301A0B828CD12CE5B3C1E888642A0 + 86C306F46D340A0AD51A6ECB91578425C06993162EF07C7E0EDA141C0EC89F9E + 01929D0DCAD8187CBFD10A14171830DCF0E4D33E106B6B816E6EC2724539A82B + 2BF007EDBFD7B4E5F0867C96F488E2353BCFF94BD02A0B6B4525B84746128A94 + F171085DF719CFAE67FD20D6D424E682F5F510999E329EE798754D6F22BD36F1 + 45212F341F8F2581593AF57C00245491804E4E1AD6A5EAEAC43B19D57F6BF126 + 8EE427AA5CD2D44182E7B7506A128A2C298960D6DCA8C696A226353650751055 + C78F82C5364B50545D4485925C260822B72FB30C5AC0945655A5C3262660D9D7 + 92066381C50EEF545531801779FE40604E8A4D033839014B5E6F46E0ACA62986 + E562812F32A700398415F6F783BDE67246CBEBE36F60C9E7033D05BA83C07955 + 5B3492E2E2F8E6DC94A4140D0C406E6D5D128036D97E395549B56B63A3B0E84D + 26650D9312D2B541A36C442C1B37CF1B13B6CA4A2819194D2E44359F7C7B6573 + 0E55E7A6A89EABAF838DA9BDB2096A1A28AC6CE2858DC0FC2C9471040BDB3313 + 000E0B7B1555CCB7B626ACB1A328EEEB833C54AF636107CA3DB08B85BD852A83 + F1C2667F642ACD1CF19F46DB2C3966BC7A16B7DBD83DD3D5632EB68341D8C1AB + C792F115EDEE5268C4FBFC3291891E49EAC64E73D719831E26182C8C30EC388F + DA64B9DDD8303ED9196B5F266C5FC7106AF90F9415F22F84450F6A5FF178228A + 4D1C47BAB300CE58596761DD2736A7C640111C5B005F749DB6DF52147FDA9164 + DA9D25CA8160F609004A2EA67D02089D452DFEB0A20C7566F804FC052EC1804A + B724AE3B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation needs user interaction 2' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002BD4944415478DACD945B4893 + 611CC69FF74A2B2B91489D5333BA11C24090D0CE072B2B4FA9D8A6DB348F4979 + C8B35B53527326DBB759E174539BCA3C2D4F8CC2BA3028096281256682175266 + 1A416A913A9D5FFB3EC18BC240D885CFCDFFE57D9EF7C77B26344DC396225B1F + 982AEFB32991A454F5D0EA9C50985736E6CA1E36219117823D4E8EFF85A52BFB + 40922BBBE8DABC702C9857370C9EE3DD445D5511F6715DFFE97FD67A7FBD662A + 7B41122B0CB4A62002BF962C58322F636C7C02B3F33FE1CE71819707871D18C4 + 4F87FA5E21ECEDEDB06CCD7039CEEB50C67BAAAF66DB59540F48427907AD298A + C2D0C74F90C81EE0809707B6D9D9E1EDF0282E9C0A40624C382EC7A6C3D7C71B + 935333B0582C7072DC8DD2823438ECD8CE7AC696356036D505125FDA466BC5D1 + A8AC69C5AE9D0EE05D09624DD3BB0F9055D7C3502F47A83003470FFB22274D08 + CBEA2A4AE5B5E0B8EC458A3092F57A9B54EC981CEA3148DC1DBD15C8C38FDF2B + 305B9733F179CA3A93690C8F8EE3C5E01B74EB540817654059960F4FF7B52D30 + 0D8DA0B6A9131A4509EB311946B9542788A8A485D6DEE6C3386082FA513BDC5C + 9DB1DF930B27EB89EA0D46181A95888CCF44437519BB0246CC3E4BEEAAD0D940 + B11E9361944F758008A4CDB4561A8388A44244869C47E0C923ACF97E640CE50A + 35DAEB2944276441569C6D3D242EEBBD7C6D82A1AF1FAA0A31EB311946050C30 + 56A2A3B5C502F0D2A4F0F3F541D8A540CC7CFB8E5A5D1B26BF7C85AEA60AA2EB + B93874D01B37920458585C4485A206C7FCFDD82C3F290B7ACD1AB0886A03E18B + 1BAD40210687C661E87982D9B979B859AF4C70D059741BFB11157691059C3EEE + 8FE703AFB0BCBC82332702C08B0C06210482E45B68AE53B04031D50AC22BACA7 + 35C5719899376FFA998952B3A153CBD7AB84D2835CCDD7D07525D7303DB779E0 + DF92522D20D17975B6FD1CB6FE7F686BE01F135C2E55ACBF7E4D000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Run-resume operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000023D4944415478DAA5D44B6B13 + 511806E0771A8AD028B549D3DA9045AB48052D5D04221614C15FE16F70A1D46B + 6CD5E9AA75A56E742508BAD085BFA00BB745C485B8AA98BB4D32692673C9DCCE + 9C8B938042CCA489ED99C59C81C3C339EFF79D918410E80C69431AEB4E64701C + 62FC75FE4CE6B7E25F24886906E97E39AB7E3832B8B01517E3131150978333FE + 8909DCAAACB5BE1D093C1E8F223A1E856AA8208ECF20F04AF2C4A382AC698702 + A74E4D223D9BC1BEA3A0A0E5609936884D5B2288A144D4D707E51B0AC6522771 + 3EBED4FD6682A36E5751D3AB70750FD4635F25CE6E14D68D9D91C1C4FC144E4F + 9EED59481881E2D4A0E91AEC962B3813EF5CCFBF5397DBCA5070E64C0CC9682A + F4480EB3D17255984D0BB6EE59C1E1E522519F0731D081E0EC620CB163F1C1C1 + 77606AC3740CB41507C4A23F781043694DDF0E05E72EC4311189F62A92149217 + 07E11E2CC38651B541097F5678D05CED0393CBD388489191FA2EE856F8AE0FAD + 628198E47D3EAB5EEF0353E999D130C6BB3B6B2B96CEB9785C22DA4BF144D03E + 70FE62F24048048FB5EFA059D20527E28D4FFC7B7BB2B93FB0288B2B0B0331D7 + F250CF35E19ADE0E65F46665DDF83CB46D962E9FEB83687003EB05056A4D6B70 + 21EE06C77B1B766342C1F4D5E59E058DBD267EE5AB8CF9F48549B40D55863130 + 8E3070E55AA63BD75B06F2BB45D8A6B3CD84582DAFB5BE0F2B542878E94A063F + 7773506A8DA200BF5DCCEA1F472A3BC27FB0E548642CC1297F0AA26E1664B8A3 + 62A1E0DCE68944E75D7BD86EFC0FF42FF81BE498BDE8C3B1BED0000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Cancel operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001EA4944415478DAADD45B4BDC + 401407F0996C06925DE32D482BABA22208C50BF8A060E943BF4C15DB27FD1CFA + 228A7E9A7D1005A52FDA2208E265455444DB6EBABB81CC26FE67CD2CE324F102 + CE4B3693737EC9D99939348A22F29E830A9052DA9A58779C2F11E767DFEBF58B + E712D76CBB9F9AE6E082E76DC9B9A6A5821B4E61D1A2C6721091BB300CBFCE55 + ABBFD2B0CD4261DC308C12A3C4F5A37069DEABAE244081D9C0A619231EE6F603 + 9E8A4A6C9299AE83BCBD2020F5186D81EBEDF9D90235B7678059F1D7DE866102 + 55B11EC368C6F9C8DF055A8DF8E7854A6DA7096ED8F6A0C9D84F355047C5BD8E + 3D89E17CEA5BAD566E952CDF3E9192708004F13BEB99AC22B128121D43A2AB24 + 22A379D5E77E6B7F490254D14F66CEED560075DC033BE48DC4A2A5822A3A0AB4 + 4B43FF003B4AC15E058E00ECD4C0BF008FDF024A6C3867B81D1925FF037AD208 + 5F2E5960D81BA52160ED0A568917459F3B054AB216456203C01C25D143625924 + 62643ED3B78DD8D806367611096D4AF9FFF1EC324E208F3BBB9419A36E6C71F4 + 2C1CBD22DE6EC6C135CC5F6925C92A7A81E6E3382E407CA9AF1E3DD91C189AC3 + 47A001026F344C5D34817E00CA707F0D2CD09B83DABE4CA00DB42FF242FB1268 + 0EED8B67B52F3944830D83A0FCC3F7CFC93363D5B286728CF5A536D8F71C0F95 + 71C8E88800DD1A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Move operation up' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001E04944415478DA63FCFFFF3F + 030C30323232A00385C8351AFF9999DAFEFFFF53F36869D835747964FD603308 + 1A18BBFEA4949494D9B367CF4E3D587CD19281A1E11FD906CAC7AC8B1610145C + 626965C370FCD81186F71F3EC43D5A1CB8982C03A57C6772B1F28BDD36B7B496 + E2E7E767F8F8F123C3C9E3479F7FFBF95BEDF5EAB02F241BA810BBAE514C42AA + 4E5B471F2E76EDEA658697CF9F343D581C544F9281D2D16B65D85958EF985AD8 + B203015CFED7CF9F0CA74E1EFEF9F3F76F95A74B839F106DA07CCCFA65720ACA + 91B2F24A1891F4F8E13D86470FEE2E7FB824308A280365A2D69B7171729CD433 + B664606262C230F0DFBF7F0C97CE1E67F8F6FD87F9936581A70818D8C8A410AB + 7F5C4145DB4C48448C011778F7E615C3833B57C1C9E8FFFFFA7F380D548CDD10 + C0C9C3B75E55CB888110B87DED1CC3972F1FFC1F2D0EDA84D340F9E8752E4CCC + CC9B8121C30113D332B243C4F2B943C85A7FFCFBFBD7F7E1D2A03D0423050680 + B9E4BF9ABE359C7FEBE25186078B03511491945340062A699AC0F9F7AE9FA1DC + 4059155D38FFF19DCB941B2829A706E73F7F748B72034524E4E1FC372F1E526E + A080B0049CFFE1ED0BCA0DE4E61584F3BF7E7E4FB981EC1C5C70FECF1FDF2833 + 503E76FD61A0880D5C3303C391878B036DF1190800087C33E8BD060CE1000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Move operation down' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001E44944415478DA63FCFFFF3F + 030C303232322003F9D8F587812236303E50E591878B036D91D520EB079B81CF + 4085D8F5FFD939B8E0FC9F3FBE313C581CC8489181DCBC8270FED7CFEF293750 + 405802CEFFF0F605E5068A48C8C3F96F5E3CA4DC4049393538FFF9A35B941B28 + ABA20BE73FBE7399720395344DE0FC7BD7CF506EA09ABE359C7FEBE251D20C94 + 8F5EE7C2C4CCBC19A88C0326A665640797BF76EE10B2D61FFFFEFEF57DB83468 + 0F4E031563370470F2F0AD57D5326220046E5F3BC7F0FDCBA7C0FB8B0336E0F1 + 72239342ACFE7105156D332111319C86BD7BF38AE1FE9DABE71E2EBE68FAFF7F + FD3FBC612813B5DE8C8B93E3A49EB125031313138661FFFEFD63B874F638C3AF + 1FDF2C1F2C0D3E4154A4C8C7AC5F26A7A01C292BAF8461E0E387F7181E3DB8B3 + E6E192A050A263593A7AAD0C3B0BEB1D530B5B762080CBFFFAF993E1D4C9C33F + 7F7CFDA1F66C75D823A20D040185D8758D62125275DA3AFA8858BE7A99E1C5D3 + A72D0F9706D6C2C4883650CA7726172BBFD86D734B6B297E7E7E868F1F3F329C + 3A7EECE5D79FBF545EAF0EFB42B281202017BB3E5650406091A5950DC3F16347 + 18DEBF7B9FF06869D0426435241908F1FAFA93525252664F9F3D032713068686 + 7F941918B946E33F3353DBFFFF7F6A1E2D0DBB862E8F6E2000302F33E880825F + B30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle queued operation list' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002094944415478DA6364200032 + 7A37FDC72DCB78ECEDE7EFEEAB1BC2BE8078FFFFFF67602464607AF786FF334A + FC197EFD413517C43B7CF101C3EAFD978EBDFFFA0B6C285106A675AEFB3FB32C + 90E1FBEF7F18729FBE7C67B8FAE035C3CADD17CE307CFFEE39B33EF20D8681F8 + BCC8C4CCCCC0CEC905764563BC2D030F3B33C3CBF75F19AE000D5DB1F3ECD5D9 + 15C13A180612F2E2E9EB4F1852FDCC19D8589919CEDF79C970FCDA13B0FC9D7B + 8F18E65486306218488C1757EFBBCCC0C9C3C3C008D56EA727C7B069EF1986B9 + D5618C8CE47A71FFE9DB0C85518E6075DF7FFD61A89BBA81615E6D042323255E + E4171601B3CB23AD19CAFA57332CA88B6264A4C48BAD398170B5E5FDAB181636 + 443332A6B4AFF90F8C1D86E25907500C6B027A911BEA4590A1FBB07851505C02 + CC2F0AB362A8EC5BC9B0A829969131B96DF5FFD995210C9FBFFFC57021212F36 + E584C0D556F52F6758D21CCFC898D4B2F2FFECAA3086D2D9071870015C5E6C44 + 32B0BA7F19C3D2D64446C6C4A6E5FF675747307CF8F607A781B8BCF8E7F76F14 + 75CBDA931819E31B97FE9F5313C9503EE7204E03717971694B024A3A06E7E5B8 + FA25FF67D74631BCFB82DB85B8BCB8AC2D09D3C0D8DA45FF67D5C53054CFC3ED + 425C5E5CDE918C696074CD02A00B6319DE10706125162FA203B0815155F3802E + 8C6778FDF9375E03B17911AB81911573FF331009D0BD88D54010414D00009141 + 56E8F99BD6680000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Paste' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002644944415478DA8DD4DD4F52 + 711807F0EF4F2F5C736DDDB63636FD03BC6E1ABDADE64C414423411D4B2F327B + 5D96882892ADD54D71D156F122B3A654D274D4BACB65A5B93527219936024C25 + 45F0A58460A29D880D497F1E0FCFCDEFB7F37C9FCF9E9DB31DC2300C0821D85A + 42A1B8352D8D5C8EF5EF5BAD3D2AA450716B3B50242ABD173BCE00EB450C93F6 + 2A76D7C7D0732983BA8AECF720389068E435BEA4C283B705FF4D62A0D6ECE1B3 + 8395D98CA0A60691E072BC516FF250E09DEAACF83931F209D34E176ABB3C6447 + F0F8A9522C789D9CEF69DAE5857F7621353030C30DCEB853048F9D14C33FF595 + 13F44ECE22E05BE4068F969560DE334E019DCC59F6AF0A0C2CAE440A2C1A4990 + 028F888B31E7FA420D99491D1E5E2DC6EA1AB315C39B11377ADF7DFEB0145ACD + FF876E020F8B84F8E11CA3C0A7E975D03594201CFD43F57E05C31875FB60E9B3 + 7F24E148A1AE551AD8000F09059899705043DD19E7A1578851AFEFDFF4BC4DCE + 4766463A7C4B218CBAE2A843AF28C9D900F982224C8FD929D0B2EB020CCA32AC + 84D7A9DED0B81736E75CFCFECD3D05A3B28C24C1C2427C77D8A8A1E799176168 + 92E09AA11F6C75308787177DC368574992605EC1094CDA47A870CFEE18A82AC7 + F2EF355630148942F3C00A534B7912CCCD2F80DB364C857BF75C82B1590A85F1 + 2D2BA890E6A1416B41875A9604F7F278F8E99FA7C2AFF7A96068916131C8BE61 + 1CD576E391A62201660D0164FF76C1C1ECEB30A82BD16462DFF08A2417CABBCF + F0B8AD8A10B61F6CA22A9A3B18434B15021C1B2AB54FD07943CE0DCA9A4C8C5E + 2D877F25BA23A8D29AD175F33437286D6C679062996F5593BF925B6CE84CF607 + B50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle showing directory tree panel' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001204944415478DA63DCDC2025 + F29F8579330303A3050318FC3FF5FBCFBFE0E086A74F18C8008C9B9A654F29E8 + 499BAA1ACB83051E5C79CA70FBCC2354450C0CC77C6B1E591367608BDC7FC740 + 65BC8AF6AFBFCBE057F3889168038951489281BE9567F02ADADC6E429A81AEE9 + F90C7F7F3F0772FF43C30CE6E8FF60BC77DE3AD20CB4F67367F8FBE3259AD47F + 88C140747CF725D20CF4CC6D66F8FFEF2786813017EF98DA46BC811B9B653F33 + 3232F2E057F6FF8B5FCD635EA20C24461129009B81FF29B188688DD02CBA15A8 + C50C6AEF0960160D45CFA244BB7053ABDC1955633963051D6930FFF6D9870C0F + 2E3F435776846817129B458977219159942417129345F1B9108526368B92E442 + 62B2284906129345493050F633D09304B228C367004A7FA16482373F5C000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Create new file and open it in editor' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004004944415478DA95D27F4CD4 + 651C07F0F7F7EE008FF1C380C02EB9DB3429D0395B2EA2260BD95A8A8CA88408 + 4D4C8D0823F9314D901F51E0284009EF1765400A828A6B4C90369556613F47FC + 8CA2DD711774C00177C71DDCAF2FDF7BFA7A2EF2C26BF5FEEF799EEDF57C9EE7 + F3A1E026F1B9F2203F4FDEEF8C833130263AEC92247301FF21548EBC9BDCEB60 + D16844588837BC3C79E855CC80E7E109DA66D5D82C96B8E6F2FD7D6EC16CD94D + 529D1E032BEDC0F49C11950D5DB0D14BB0DA681C498D854810889AA61B783078 + 3526A6F5D0E8ED13AB02102EC94CBA67C5D45B92EBE474462CCC7607549A5954 + 357621FFC00E04F9FB80CBE3B238033E5BA5CD4E23AFFA32B6456D419F72E696 + C56C49A8CB8B9F95FB79C5F97AF2EBE7176D1919164B1B9575E6735293F90C16 + 6C8CF3869BDF8DE08B1F46507E381134C3804351E07239E8EA19C2B7832AC46D + DF8A49DD22BE1E540FAE6AAEAC8E1E1BF8F8F19828EEE8F02886C6947BA8C335 + D7486DD6B3305AEE80AA3F66216DBD818AEC17E0CBF702EB815E6230A35F703E + 7DBD2804E11B44E8EB1F86F2D7614487F823AAAB05B46A025FAA27B4D41BA73A + 88F8C84E18CC4B4EB0B2BE138F8587624DA03F1C8460E37A01AEB3558FAAA7B1 + 68B1433DA5C313EBAC88BCAF1D3A9F37211046E0FBB3F508969F6226614FA032 + AADA8938271EFAC53BE0C9BA764CCD19B026683566F5261C4CDC8686F61EEC8C + 7ED4D9712FEB28441C19421F0E86A27F08BD865CA677648AF26D3B97543AFC53 + 1B95FEC16744929B80B9057AB9530E07018743A1A5F31BF60BB4EC1AC84F4F80 + 61AC1B1C5D0D848F08C023E35832A930D4E7A0ABBA629F6FAA975D7576F950C5 + 1522CD4BC4EC5DE05F315BED68EDBC85C8CD0F41C0FD0D1E865A84860BC1A36C + B0EB0630AE30E0E71F4DBB128AA73A96C7E660F925223DF622664C34DC655ED5 + 0D4F8304C28875EC28F9C13AFD1526145A34F6EF46594131E53287AFBED74AA4 + 6FEF760BDEC6F846398B8581EBB501E6F1AB18578E83595B86AA8E797C7222D9 + 154C2BBD4064C793A135AE048DEA6E782FD44114B1111CEFA760523643A35060 + 29B4107EA2181489AFA0A128C515DC57729E48F353568086B11E98062AF06462 + 34383ECF61FE171934CA6130A147E1CB62B7537CE6321A4BF6B8827B8B3E25D2 + 82D415E0E8353184F773E1C13723C04F8F29F5105B59D632E6046B2FE25CE92B + AE606A4103919ED88B69A37D79D3663662BE47864D5BB642A7D56072EC22F89B + 73E0237CDAE5D2920F5BD15496E60AA61C3F4BA485FB58F0EF0A5BC4A5804587 + A4ED9B60E105820A10C07B6DE48A3F2EA969C68593075CC1978E7D442445692E + A0FCDD6C3C201060C7CBAFB34FF6753B4EEF9C6E424BC5215730F9681D1117EE + 87F65FE6D03D781EADEFBFB612FCDFD25DF927F827296DD7CB20E8053C000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Duplicate' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002F24944415478DA8DD37F2C94 + 711C07F0F7D34D145AAD197F8435B55959FD533395AD1FCC4CAB48264427F9B1 + B5664D38724486D69C7E6C7E1DA538BF5A867ED7CD26B1A1E3CE8F26426825C4 + DCF1E09C6FF7633DB9EE7AF2DDBECFF37D9E7D3EAFEF67DFCFF35084104465D7 + 13B00EAA794A4E7B54A7F829D8A23416A5B944DEAA25793127B1B46CE86ADEBC + 930EA3BA41D63C3DB7C48A3260C4CD1A921FEB0D5AB96234705641A367780295 + 6F3ADB41D39E05290193AC6078D6135210E7834BB79F1B0465457AC0DC9483F1 + E9392D5AF15AD253187FDA89150CCB784C0A79BE90D32AA315760C8CA3A5774C + BB1E181C4151C2198A15BC905E450A13FC70F98E7E852A95F10D569D6FD34FF9 + 82E7EF7365C0D0B40A22BCE68FE9B965BD84C4BC67606B56836410358DDD4CB3 + 18F07CAA480D0620FAAE7E85CAC545FCAF59B2C171548BA5AD14BDE0959F7C76 + 520B86A49411615200A614FA15F2F3EAB19666C93E6BD1AE8238EF3D5A3098FF + 8808938370E5DE0B26613F9D038E4A8E13E125808583D10A5B3E7E4547FF77A6 + 59429E2FA50583924A88901F8C09B99209EECCDD89DDAEBBD0DF368C0EE28D31 + 9343FF6C8EBBB323EAC4ED284AF4D3818189F7D51586E06AEE4B26C843110537 + EE51CCCB29743548B07E8B3376B86582636A6900CE2F28919C5B8BE2247F1D58 + 9CEA4AAC382306811A90501658211BD1DFDA8581DE6F909A856186B35DFFAC43 + DD112BA8C6037E800EAC4FB7275E41A658512713ED34D741ABD69A3939FA037D + 8D6F61B32F1AD67BB97A689CA00A2529817F837F920D41DD7D62680852F12B88 + CD050CC60B71032FBB120F53CFB181ABABD43D8F767FC217A90C766E39B0DC76 + 50AF429EA01CA569213AF069BAFD7BF5977FC0A07BDC23DA4D96974DD1DBF801 + 03A3EAEE9B456081DAAC171713780C890211CAD2B93A90A20CFFF5BA1B764403 + CECEA820134BB0C1F614AC5DE241AD3331FAE924658B20CA0865079D5C1DD1D7 + 36062B97EBD8E4701C6C832F28457966181B68DB30ADB239DC44FB6076652BD6 + 322AB22E52BF00E40FBDE8AE396A740000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open online documentation' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003AF4944415478DA7D945D4C5B + 6518C7FFE79C9E8F7EB30EA8742DEDB0B089012EE6E2ADD12B8D6616B28919BD + D0686262B22542D8B859B833738BE88D26BA4C0D6CF36B14D40BAFCC8C9746B3 + 39B78963D0D2524A0BF48B7E9DF6F4F89E3784D10F7CAE4E9EF7FFFCDEE7799F + E73C0C9AD973933AB773E004189C60C01C87AA76503FC3ACA9507F878AF950E4 + CE3C6E4D56EA43997A47A77FEE1506EA94D1DCF2A4B9A50D7AA3053A5EA46795 + 7209855C06D95402B96CEA51555147C3D707E7F7014EB21EFFC0FBBCA01FB7BB + BC2040EA954B052D186AB50A5E1061B4D8C0B22CF5AD871751960B1F04A7EF4C + 90F86A0DD0E30F5C24D98C3B3C4F81E374A42A20115D467A730D5D4F986035F2 + 5849E490CCA970788E426F3043512A88061F685913A8EFDC2EB0F3F4ECCBA2A4 + FFD1E9EDA330CD521B6B78C629E3C2E97E74D824EA53C92DBFDC8EE1FC177FC3 + EAEC234F0A0A8D2CDE45B954F405677C730C6D806BE0C1214FAF576F34EF3E80 + 5B8AE2CA9963F4FBD63F45C4330A9EEF95D066E6F0E7621267AF6D41940CF4BC + 90CF6275E9FE1269D411C6ED9F1DD41B2C37B532F6DAD4B005FD1E337EBA9DC3 + D4CF29EA6B37C8B871E630FDF67FBA8A68FAB13E1A5C20E0F410E3F1CFDD68ED + 700F9BAD076B809FBC6187D72EE0CDCF62886C95512AE6C1E623F8EDF20BF4FC + AD2BEB588ACBBBFA6C7A131B6BA1AF0930B0E0F0F4F6681DDC6B069185496211 + 4F5768A74BC920AEBEF72C06BA0EE05EA48477BF8CD5E8CB7209ABC1FB8B8C7B + 24907579FB4CDA28EC67A56408D3A3C7D07DC88C60A28CB1EB312432B5335D25 + 63157E74374F81CEAEA7FF1738F1921E2F1E77D012CF7E15453AAF3468346064 + F95E9E96DCEEEAEEE179615FE0AF17BAC191FB4E7D1C4434596EAAA99465C456 + 1E2ED1A6B4B4760C1B4CD67D8157DFE924F356C5DB9F47F6D5E4B7D3482656BF + A763234AC69B07DB5D4D858AA2A0BA1D86C47328E8DA20085253DD663C8C627E + FB24B3B359166C76579720368A8DA4DBF3E33D107916AF4DFD4B4A6E5830640A + 8A48C6C3C160B17C84FE7A9E91C0AB1CCF070EB43951DF1C93C4E187F34721EA + 18BCFED143AC6C941A9A914C4450A9C843A1E9C1D9DDE5E01E99BD2488FA318B + CDDE00B599780804184BC90DB0CCD6BA96E187A119DFA8E6AB595FEE91FE8B9C + 8E1F335B5B513FE8F5A60DF2766653EBEEE5D0CC5FE71AD6D7E34C0343C47B89 + 3CFE6192317404CCB2DC4E460A2A04A4FD39B25C5C26194E84AF0D7DB3379E69 + 7AFDC96F0597C0F93896F5918DA5AD1CC7CE499404FCA154AB81B0AC04F0DD29 + B93EF43F3EE490D8FC9504780000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Check for updates - display results' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004AC4944415478DA85957B6C14 + 5514C6BFB933B38F6EF7C1D22DB429EDB65D4A29506AC18282E28A2680454104 + 8D11A33146508389A821C490FE8326924024414B02A28D44116229204D00010D + 02424B155AA8D80765DBDD6D976D61D9D99DD979793BDB168D442739736EEEE3 + 77CF37F7DC330CFEE7D901641247E67AA26325CB30D34C8440858E94A605E8F0 + 91544AD96232913296E1EA555D1798FB526A406664BCB3A2F8CFCEB7FC47CE3F + 5A24A94CBED50C97D50A86E7A8F148D069BD7101DDD1217978C943D3A7F067AE + B4E35FC0A91B6B2A8959D95D100A573CBBEF00A6B32C348E854467F21C0F4FA6 + 0D191916033A0C4FEA345A1D18E776E2D04FE7FF09F4BDB77529CFC9DF4C600B + 6CCFEF79171393026EE90CB8798B41261583C4BA209E3C86028B15657939604C + 7C1A4C3DDD0D874E9CB907F4BD515B46ACCA054F56956D69F824C6D76D06F115 + C2F2D1A7C0442F44C1054536C1C6F740D9F0227282B731C35760006140393434 + 9EBE072C5AF3E545F778EFEC87CB4B30AFF438E46F1B617DE11144D5F970B883 + 10EE7810E99D8209C15AE81B3FC61CBA99DBED024CFCD8773D78F8441A98FFF2 + FE6AB385395C5E5985A54F9D02C7A77077301791C0343A4AE0C96B43A4A702EA + 8D01E46FF26356613E9C4E7B5A32C719C061C98D474FA58105ABEBEBC667E7AE + 7EA23A86E29256236259A40B8882BE763F959B054D36831FEC8377FB3270D21D + 80D1A16B847A15B2AA0029553427949369E04BF59D79C5D38B9E5C7E9ACA0B8D + 1D5232EE41F0EA624814383C51374C4761E53EDCBCFA38344D43C99CFDE81B8A + E2972B5D1D4DAF7C3F793442A1B07456C6CC053F424DD9909D7F19A1EB7E0C05 + AA400863D8289070128ACA0F43D404643843206C0A7181E0F8B9AE44F3EBFB6C + A311DEF54E7920B374F615447B2B60B5C521C7F3C0B104EC18308D54351D9573 + 7E8064BB4C6F4BCA50128B7138713610BBB4B6CEC9D4D04D0F3CF7C51FD9DEA9 + 3E7796036E4F1F12433E03C6643A41CC56B0B44D99A0394CFB53F0FB1B104A05 + 7047193280FD6113CE5C0CB5B7ACDB3595D969CFBC6CB698671823FAC86BC44B + E0D0F6E1CF50737C4694F493619C3D8EAAAA63084A01F427EE82E59368B9C4A3 + E34674C7EFEB3F7F9BD9E9B0EBCB962FA2C72A434F5193156A32062251FCDA13 + 46DBA673D0B30B685610288A464F5485D7DB8681988A81FE5C14CFAD45C34111 + B226CE6BDDB0FD6C1A58BD700C04EA43E1089A2221709FBD861ECB9B88467347 + 22D4C1F5B422BB711BBA177F0031C78904DB806B1DC1C6AB9B362F19D665009F + 59F4581A361261FB8D5E5C73A850B6AD80A3A814484C425757399267DBE1DDB3 + 16D6DB415C5BB905CDA525080F5E08CBAAF860C72735BD63C0A717CE4F4B3664 + 2B46BBAB3F82EB54B654914BEFB20752AB0277A00D2E5A0FBB5D79F86ED566DC + 1203618D9596746C5DDF329ABB69E082B9E8EFBF059E9EA4CB641A03AB520A83 + 820089B62DBA0681F6FFC698F1B5FF7D0CB8DDF54489ADEBD8B5AEF7EF15CB00 + 5695FAD0D4DE19D5A0935C877D5C9EDD0617AD83ACA24294240C2645DC142574 + 5A3DC9A3335FDDDB336172EDCDAF5635DFAF360FA74D8030C4AAA9AA5F11846E + D66E5B4393B81A0C5341C79D34F9E85D649A745DDF1B8EC7F7D3BCD5FEEB97F1 + 1724631071018B48E50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Check for updates - automatic disabled' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004C04944415478DA8595096C14 + 6514C7FF736CF7EEB6DDEE420FB6D7F6A0A565A95050E2D17A440A28A00851AE + C418F1C2632110890231C403AD91C4400C466D442435540204440512A1484BA9 + B4B4D0BAACD0DDEEB6856DD9B3BB33B3337E3B4B0123D1C97CC9CC7CDFFBE5FF + 7FEFE50D85FFB91E5AFCB22E4DABB2D3C06296555468D42AF0BC804834EAA224 + E9202F72DB14345B9EA25436739C10A6EE4AD90CBA52F3FA53BA88F88AD9AD78 + A0A2D04A4D9B5A8E9C896630340D9AA1110804D1D9DD8B33EDE7F944C8F3CF3D + ADD8F1D5F7F81770F2DB9BAB69A5F0A55EA06DF9C302EAEE9F05491211898C41 + A552C25A9007638601340133348540308CB1681479B95958BFA5E19F40EBDA86 + F90A96DF93AE29D5E6785A61996086CB33882C4B09F4694670FC30AEF63A505D + 5981C7EA66238565C110B549388D759B3EBE0DB4BEB8B39C560BADA6CC1A6D95 + 6E08D7BB7E83DEA8C3BDF3E742A3CF40349C06814F8152EDC1EF87BE437E661E + 9EAC7F5806310C2543EDEF6CBB0D2C5CFD755B86317FFA7D552598613B89CB6D + FD289E69423868436A860761BF09D7DCA5A0A4C3387FB0032B972E40812527A9 + EEA6CA37377E98045A5634CD53AAA80355D535983FF738580587E04836AEB92A + C82E0D536E37AE5DB521E88BC17DEA0B2C59F03826E54C4C1688A66FE573E3D6 + ED4960DEF2E646A3397BF923F302282AB9202BE6A37A50B480814BB5C46E2644 + 5E0921EAC7F573BB003102221592489A898A838F0B20779411A86349E0B2E6CB + B945530A1F5D7882D8F3DE2AD258C8044FCF1CC40830715092978482EABDE8EF + A983288A2899D98481511F4E75391D6757ED2B1E57182E28BB4733F5C15F11E7 + B4305B3AE1EDABC5A8AB86D8A1E4350EA4D9180AAB0E202A86A13178494F7208 + 8569FC7CDA19697F61AF765C6130BF749AAE6C7A177C6E1BD4DA10F8502E5826 + 999B2430898C8B12AA671E424CDB094EE4642781008B5F5A5C81732F351A12A7 + E8E2657B7B27E4955AD3330D309ADC088F5AA16069B0296A281429C92A929312 + 91C81245B5B5FBE1E55CF00BA3327068300527DBBC973AD6EC9A4C2D5C65EF4C + D5692BC7F396C891EC2D91434E80A1E63528F52659254919D2F521D4D41C8527 + E6C25024084631868E730A38AEF83E3F6FDFF12AB568955DFAECFD0D10E3A26C + 274EA212CF3D7D4EEC69FE0986596F40A5CB90150B82482A1A477E7E37860371 + 0C0F65A368D64EECFF310A5E8CCEBEB0617B8B0CFC74EB7AB96271192AE2C2C5 + 3FF1C3912398F16C16FCE145F0F9B26F2A943076C38B9093F4AAA50E742A1061 + F6E3A2C373B8E7DDADF5095732F093F7D6C930194AD6D1E3A7D1EA68C394A5A9 + 9868CE225193E0745661A02F80607713185261C93207C3CA3806475A07F97874 + 86E3A3CDEE5BC06D5BD6CAA03BA12DAD7FE0C4C93350658950A5AA3172550755 + 3C802C32C21C037EB88DD5180D3907452656EF68B0778CD740067EB0E92D5CEC + BD4CC6938A0498646B0938C771B8E2F2903E8B40A7D5C0377203C74E75A08F2A + 468445332D04D63876AD71DF39B164E08A254FE0DBA6433E4914E9F2326BBAAD + B20C13CC9960C9780A86C2E87779D1D1D503A7C73FD62F15EF0E509A9DFDDF3C + D37EB7D94C2D5A6977D10CA3E645BED61F8EFD95AE51AD263D3C8F34B28DEC1B + 480B79C9FB5988D2EE7D8D0D4DE49BF85FBF8CBF0183661CF8ACFEE124000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle remote file link destination column' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003854944415478DA95D36B4C53 + 671807F0FF31A8A1183430B32F23615F34199BA2DCC6E25641C75699A8591402 + C3A14CA095815C02954A01318A2160811653861046861B0263D1816250B9B593 + 52D0996A517488975828964BA1C55E5E4F511A9A51D0E7DB79CF9BDF792EE7A1 + 92C5D709968E4EBD11ACD2C301DAA52E5216B020662B881DD6725CD7D18F9BCA + 1712BD917CB3146A050D26FB89DE7AA8C263D524A4F79EF5D01AAB2C36406D17 + 4C3ADB4A0AE302A13798ED82BA995718783E8641D504A48AA777CEB0B76D987B + E7E1E1B182E1EA5E41A7B346373A154625085B88E0F0D7105C902D88C58478D1 + D038248AA7F4474D18783282E2F8206A0E7374756FF0F3F10A7658BE025D1249 + 0B155FD44C8A7EFE165ABD69D1669BE9268F4EE820A8ED82309145CD61DB03BE + 0C3EB03F02427105A4FF743751ECC28BA424F13B14D7CB1605C75F8E60467517 + 9DDD7DD04F6A7A41514E4181CCF5C779A9C83A59882BAD373A75EA2916159BDF + 4884C9BB30366DB48BC96472E4179CC1EE9D2C6CDAF029CA2AAAB176ED074849 + 8883F85C159AAF5E9FC5148A1B5AEA505E3D11A6EE81A8A16741ECF9E307905D + 6B4456460A563B3B839F7B1A6E6E6E888E8AC4EFB57568EB900CD1C3F0B060B3 + 533E78E20F224ADB8BD129C3FF30798F1C02810099DC6430180C1CCB3905AD76 + 0A1C0E07524917D4EA11FC373874A7A7BDC93A752A2AA78688B8A110FF25B7C1 + 26346AB4FE59891C5ECA5B2C0F716C36AAEA5A30FCE8369C9D5721EB682A92D2 + 8F0DCADA9A3EB68291FC5F4969460446266D332C292A82FB471F628BBF2FD233 + 731113C781B78F0F52B205D03C921BF34F6639C8FB6EE35C55CD0559DBDFFBAC + 6004AF92887891A8B8D46B035EFA4D88ECF404E4159440333686CFFC02B16DCB + 66FC72B614B97CEEEC9DD48C6C834EAFF3EEEDB8FCAF150CE3961351E68F189E + B0CD907F341D2B972F83AB8B0B984C263D6501184E8E3891F906E3659F324C6A + C7BF97B5355FB459BDD0B4321A3C80E179259B8C4664A42563E327EB10FB5314 + 0A8AC5B8A754E2388D99CD66BB98159C7F408819AAFBDDF8DC731DF8DC2374C9 + 4228FB0710CF8E86E2AE12E76B1BA19F990E59089B05E73FCCADD317FEBEC189 + 9C4328AFACC6D56BED4384100DB58C72B2FCE366B3296F7ECF16057D98C1B59E + 9E1BF7EEFF211C75F50DE892DEB46E00DE316C40EFAF765CF1F5F30B321A5EA1 + B7EFD67B630B94BC7595A32BA39EA23033AD9E0E7F5FCC12AF01CCF8BE4F1D03 + 89780000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Suspend background-queued operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000CD4944415478DA63FCFFFF3F + 033501E3D033503176E371A0A80598F39FF1C483250196C8F20A311B50E4EF2F + F6B7C46F60DC86FFEA06B660F6CD0B87191E2C0E64443130763D8AFCFD45018C + A3066233D006AAE1080E0311F24419A8AC650666DFBD760AAB81C8F2441928AF + AA0F663FBC7D11AB81C8F2441928A5A009663F7B701DAB81C8F244192826AD04 + 66BF7A7A0FAB81C8F244192824260366BF7BF504AB81C8F24419C827280A667F + 7AFF1AAB81C8F24419C8C5CD0F667FFBFA11AB81C8F2840DA476E1402918FC06 + 0200BC88FFD9BFE700480000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Suspend all background-queued operations' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA864000001AE4944415478DA + 632C9AB9FF3F0389A02FDD9111971C23C8C0DE340786BFFF8833B76CCE41E20C + 2C9CBE97A0619DA94E0C95F3081858307DCFFFFE0C6786EFBFFF11E5C2AAB9FB + 192664BAE036306FF2CEFF1373DC88726173920343F5ECBD0C9372DD711B983D + 61DBFF29F99E0C1FBFFF25CA85D5B376314C2DF0C26D6066EFA6FFD38A7C8972 + 616D9C3D43CDCCED0CD38BFD701B98D6B5FEFFCCD20086D79F7F13E5C29A195B + 19669505E23630A57DCDFF99E5C10C7993B6E13568EFA5DF0C3F7E4392D67F06 + C6A70F1707C880D8F2B11B9E3032FC9786893326B5ACFC3FB33294E1E547FC2E + B4C9DFC6E066A60466EF3A758FE1C162882B1562D7FF4716678C6F5CFA7F6655 + 2443C1C42D780DDC71F12F83AD910A987DF8DC1D140391C51963EB16FD9F511D + CDF0E2137E173A176D6730D15307B3CF5CBA896220B2386354D5FCFFD36B6319 + 4A276DC26BE0AE2B8C0CDADADA60F6D5AB57510C4416678C289FFD7F6A6D02C3 + 2B02B1EC59B6934145D300CCBE73FD028A81C8E28CE165B3882A154E3E176550 + D63607B3EF5E3D896220B238233186C134AA1BD882D9372F1C463110597CD440 + DC003D8BE1CA7A00B27E02F23CEB90250000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Resume all background-queued operations' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000029B4944415478DA95D47D4813 + 611C07F0EFB92D754694EFC1082985882444FAA320B01792222190C80A29AC34 + 31DF51D3CDB00CA4C252D3D6D48C04A1281234845ECCFA3728FAD788AC39DD9B + 6EEE6EBBDB762F4FCB4AB0EEF47AFEBBE7F9F2E17BF77B38AAC63241F09FEB56 + C95E4AE98CFA09B617E74094D4B9F5FDEFD481D5E6F155B1EBE7F7A1716015B0 + CAFC9ADCBEB01F1C2FA96AD8747F021DA50794C18A3B2F48E7C583AA1AB616E5 + C0D8378EAEF25C65B0AC638C74571E828F1365034C88062F8610AF4F5A7C36F6 + BE444FD56165B0B47D94DCAD39A2D870DC5F8B8068477A741E1E9EEDC4D5FE09 + 986BF394C1E21BC3C45277146E86970DE40E6C4740E3831012911A6B40AA3F1F + CF1A9A95C1736D4F89A5211F155D63B28157C132246E8C43525C0ABECC7D064B + 7320227922885CB5CDC4CDFC03165D7B4C2C8DC7E0F4C937CC1BCC444C9216E9 + 1B32201001338C0D8E3907C27E9E9124C9640D2F74A3054B57843A7D6588589A + 4EA0AAF3B92CF8862F477C5A0C0CEB362DED71020BA7DF81055764609CF05194 + C4529B897EBF08165E1E24F78CA7E0A0E51BE60F451A1AA290A04F5CB64F0801 + 2B0430EF9907E36649E433F43021AF913AD9F480989B0B51D735220BBE95AA91 + B0750DF4D16B65CF0991228D392CD819709EE03455D0D0477A9ACFC0A530E582 + 473B109B4EA0D146290D1652E43F40CF06E07707EDD4F1FADE15FF0A1FD6B722 + 255BAF0806E683F05A692285A55E84C9250AABACB4B678E7E69D8664AD4EB36C + 9F0FF2707EF580F5719F04412C591A8A1A70DBAE8C08A8FDFD7A12DC360F9CD6 + B90044D1F4EDD7B511FEE45581597B3293753A1D682F83A9492B826C68981751 + 396BF24CFF9D570566EFCE4A9E9EB2C165777D9744945B4DDE51A5BC1A7092D2 + 505B8820DD0C87BDADB32D6057CAFF00F2AE4EBA9565099D0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Restore previous file selection' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000024B4944415478DA63FCFFFF3F + 03350123C8C088F2D954317545672A23DCC085AD291419165F3D07D5C0052DC9 + 60891F3F7F33EC3B759DC1CB560FCCFFFBF71FC3CB779F187EFDFAC320C8C7CD + C0CFCB89D5C0849AB9A806CE871A78F6DA4386A9CBF732E4C7B8325CBFF79CE1 + D0999B0CDF7FFE826B5490166108743262D0539745313011DDC079CD100367AE + DACF70F2F23D825EF4071AEAEF6808E727D5A21938B72999E1DFBFFF0CF91D4B + 18BEFD40B8C850439EC1C6488D81878B9DE1DE93D70C3B8E5C62F8F8E53B582E + 33DC89C1445B11CC4EAE4333704E5312C3AD872F19BAE66E4571899B950E4398 + 87199CFFF9EB0F8696999B18DE7EF8C2202CC0C3D05118C6C0C8C8C09052370F + D5C0598D490CE7AF3F046374E065A7CF2021C20FE79FBE729F61F6EAFD60764D + 863F839CA430435A3D9A81331B92884E221F3F7F6328EB5D0166A7853A321803 + BD9DDE8066E08C7AE20D7CF3FE3343CDA4D550039D188CB41418321AD10C9C5E + 9F48B481BB8F5D6158B7FB3498DD941BC2202AC4CB90D9381FD5C06975A8065E + BAF988E1DCB5070CD13ED60CACACCC70F1DB0F5F304C5DB69BE1D7EF3F0C4AB2 + 620C2589DE60F1AC263403A7D6220C3C7BF53EC3BC7507C06C50EE30D15162E0 + E26067B8FFF415C3E55B8F19407A9899998086F980230404B29BD10C9C826420 + 28BB2DD87088E1FCB5FB58BDCCC1CECA9018E4C0A0AD220317CB413770724D02 + 864690B78F9EBFC5F00098A041D90F14563AAAB20C2E963A0CBCDCA8793AB765 + 01AA8113AB13182801F9AD68064EA8A2CCC08236340329320D0AE00652130000 + 5E9449E804E9DAC20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Disconnect once operation queue is completed' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003444944415478DA9D94674C53 + 511886DF63A9452C2E90BA8D4622C6A83FFCA171A2C6A0710554A48012350E22 + 8938AB15598E689C3F4C500A28B8ADE0488C711615172A2058500B15074AA540 + EDEDB86D698FED8D356A2D357EBFCE3DEFB94FBE275FCE21F051AB0F5CA5DE32 + 6750D2C2B033E5E9D106F71EF1055CB5EF323DBA711EAC6DF44F1814656A5CBA + FFEA51ABD11AE186FA04AEDC5B448F6D8E84D9E6F0C8F406332AD51AC8EFBC2C + 25667656767AACD603D89E62071E0F824E015C17990913D159C083A6D588CA3A + 0E5A25DB1235D203E84BB1FCED67AC983B061DF93C3CAE6940B9AA91CB6BD51F + 902B5D483C80FFA25854AC4427A110E4C7EF93460EC0D53BCF9197B28890FF55 + 7C50A1C6DA9870EE9C89B5212DEB0A8EA78A09694FF1C1CB7A3CABF9E455B16B + 5030B79688C763F32139F2D3E208F1A5A8AC6F82FC6ED55F15772545FE3C2B39 + 74010519F184ACD85348B32551D8905DFC1BEC57451754F15C8564F194DF14BB + 8B7A71DFEBA3C761EBC1F338B9630921CB77CBA96CEB023066BB4787E5B51A3C + AEFEC4ADD5AF55187EF3044CA281589E9FC529EE485AC0654D8A5B28DBB416F6 + AF8DB164D9CEF354268DC6265931BC954BF15D623C66F4F64773B30EF6D9D1C8 + B5F7478613F8E5CA45B41ECC4458E82028EE3FB94996669EA5B26D31D099DABC + 02CD96369C898840448005A2E01E50AAD4B8316432A8CD8A69750F316CF000DC + AEAE875DF3792049C8384D7352C490E4DCF30A744D51B2FF1CE6BFB90191AA12 + FD42825051FB1E023F1E42FBF54649D56B5D8B493F2689B1BC254BD24E51D9F6 + 58B418BC77E89E62C69AF9A8D9B6015D4A6E6150CF20D8ED0E3C55BF376BBF31 + E3134DA672D739B2787B0195A5C6439AE7BD43F714ED2C8BB0E27398AEAB47DF + 2E422E2B6D6864354666DA1AC6FC8803C6A59C7076B8185A1F1D4AF79F42F891 + E46BA382BBCD12F9FBA3A2B9950A9C3729B46B2029D5B618B4AC756C92C1A024 + B1D23C9A9D9A8026C6D62EB070F2044CD5372088CF47B5C1483F5AD8044AD1A1 + 8F40707C68E700F2E21BA3D55BACA389784B2EC53FD488EB7998DE50039DC301 + 759B6DDD2ABDF1B06BFF6860C09C109E5FD1103EDFEF096B51F87C60DD950E74 + EC131898E3BCA0CAD50CB3F7D72C4B280CE7131CB31247F27729B9B29A414624 + 3C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload file' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002F34944415478DA85D4694814 + 611C06F06776CD35D42C3AA0482C30BBA84F51F43D91E8435922DE9A5A2A8874 + 98B699BA18B9D9A17490C76E968AA26EE699192592859186A105625E95A8ABAE + 6EE96EB3ADAE6F73642BF6323D30CC0C2FFCF8BFCF0C2F430801C330A025F656 + 1D8144B8C537D3B396C33A95BF4978E72D2930E6460DC94B3C0AEB3CA16168E9 + 1C4475EBA736A3D9EAC3A3FF054F673D21F949BE60E716A8EB332616DD83E3D0 + 3577B533ACE5487E7AA041123C75AD8A14241F47FCEDC67FD6B2627DE0AC9063 + DC6846F780807E2C48F6DD2B094665EA8846E98759D6465D7FDB33820F7D7AE1 + B97FF01BB44A3F4600E3B2EBA9E55B59169A4BFE48B8D308A9781FD881BAE6F7 + 7890E22F82B1376BA9E5C7AA2BA0BD1C00A3795E12345BE6A0CAAD45616A8008 + C65CAFA6961FA72EE7C0209CB92B3D615AA4379272747894162482FCD7A4953F + 6B34429B1A842993F4847C92732A51A40A16C168F5636AF9F1EA3268D34370EE + DE33494C197E08CAEC0A1467848A60D4D54A422BFFBB6112DAB4304CCECEE165 + E718324BBB306FA3FF93AB143674694E8860E49572422B3F415DC24D188E0BB9 + 4D18362C60C0E0847DFB0FC249E108B98C815C2E83037797715755750D868A8F + 8960444619A1953FADD743A38A807EC62ABC6B1A3EA3A17D828A56D7D6DAC170 + 5529A1957F565D84025524F43F44D062B5E164D66BB8AEDD0CCF6D5E22F807AD + AFAFB3836169258456BE6174E4EFB38D30E89D76C3CA351ED8BE6B8F30150F2D + A28D8D0D763024B5882C964F0BCB4D9698D7815193029E5EBBE120E77B9361F8 + CB003CB66C15B6FFBCE9A91D0C4E794816CBA7E55DDF3C6C8E1BE0E1B9939B4C + 9C6AA8BF07E36323A32E2E2E9BF84E5FB5BCB08341CA42B2B4FCE509CD6C05E3 + EA8E75EB3742C64D373CD80BC3C468DB4FCB9C8FB3D38A5467679724B3D964E5 + 408500065ED492A5E52FCFB891C5F9FB1D7058ED0ED6348369C398804DEAC493 + DA23A42A9A3BB3AC5F4B7C8B053020592379D4F3F96593A367CA0D8EF2056E27 + 705DC49686B77E031E9FBCE8D916B67A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download file' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000030C4944415478DA85D46B4853 + 611807F0FFB09230838CA2B4208AC84F52F4C14F19413632BA68226B5EDBBA18 + 49645473EAE6486A6AA5DDA8742B3353D475D3C8828840C2D0CACA32A1DCD279 + 9BCC366B97E3AE6F3B3B65856FA7E7CB7BCE79CEFBE3E17F38AF801002814000 + 5A659F6D21E0A940F3B9C536B959A74AB107EF598B0FDC7FFA3EB97A743BDC5E + 42C3F0ACCB807B6D1FDAAD0EB79045FF0BEE2BBD4B2A8F2782F1F8A9FDEF7606 + DD8631E89EBEEB1430935B2A8B768DF3827B4BEE902A591272CEB74EEB95660B + 11161A8231AB03DDFA20FABE4A9618C30B4A4FE988469E0C1BE3A3F65FF40EE3 + CD6753F0BACF6084569E2C088207CA1F50C377330C34F9293874A1157C151F1B + 8D96A7AF70AD208503B3CF3453C3CF5637425B2882D5E1E5051D931EA8AE34E3 + BA42C481FBCBEE51C33FA06E0880621CBEC83FA152128FE3153ADC508A3990FD + 9AB4F06D562BB40A31BEDAF927644B56D1841A552A07EE51DFA6869FA3AE87B6 + 280D472E3DE2C5E4991B212F6FC4CD13E91C283DD94468E14F8C9BA15566C06C + F34C4318AF138A27528CDA06519ED088739A36DC2ACEE440497103A1857F485D + 1B983013E24BCAC09FE1C3929075C1E75EB8D0E92A833BC288D0F05998610EC7 + D2B1DDB85D9CCB815927EA092D7C8BC9048D2A0BABCF4762E6EC106C5B2141DA + 9A5CC81FA762C0DF83F9CBE7C24FFCB09B1938F533D19BFF890333557584167E + AEBA06552A0962CE2D40ECFAB5E87ED58330CC836F8E138B572E84CFEF85C7EF + C698DE8290D148BC2BECE4C00C652DA1853F3E321C5C3BE6E56183300E8C8BC1 + D0C030162DFB857930F86904BEE10844DBA5D0951CE4C034450DF957F86CC555 + 2D8630211EDE00E00D40ECCA62FA8F5F306EB2B43B5D56A15985DFA74D6A4135 + 61C33F76E531157CC8A463EBD62D5318BBF67D36C068181A71BA2CAB588C7D6F + 0A14CBAF13367CD3773715DC782D0A3B7724FD9C8C43199713AF3BDEC2697394 + F5E75B657F81BBF2B4840DDFF48D0E6EAA8E822849F4C784DC942CFAB2A32B80 + DA25FDF913D553A048A6E13DEA7BC22FC33EC3F88F2E7107364B06E4D63AD6FA + 012F69FEE846AA6CAF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Enter and execute command of remote server' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001C04944415478DA8DD35F2843 + 511C07F0EF7DD83C491EEC41FE8D169142943FE5CF93073C7990B23CF2C23CEC + 4952949264210F2B1E459AB632C5E3B09508B1219B29FFB622C262B6DD7BDCDD + 31A3BB7BEEAF4EE7DC737FE773CE3DE71E061291ABB538199012C80C02C6C548 + 25E469CD44535A2BD783FBC40149304B5D482AEA9A658307F64D3A585EDD044D + 811AAEB30B104224C1D3433B1DACAC69845ED78B14A512E6B50D3876F7C1719C + 68BEF7FC880E66E668A0502830D0D783BAEA2A18668DB06D3B44F3EFAFDD74B0 + B8B40C531363F05C7AB16232C3E93A4B9AFFF4E0A383A969E950A932E0F3F9A9 + 87F21E780553D5D072C1B735D4ECEF6023613CFA6F45DF711C2B80646E7E09D1 + 7DE6F8536439C2D788D5DF7D89EF46F5DDF05D7B924E2880E373CB7CF2EF6036 + 8E44678D4D100301C3609704488202386430C507C40627427F9F8DC31DD8B3AD + 33922BD44FAEFEAE48F85CE02D48F0CA97B72087C027C14788DFF4108167B193 + 0EF64F5804F0314084F2FC0E8459F15B71BCD04E07B52356DCBD00A188F4D58A + C6CE4C1B1DACD759E5FE35D89A6EA583D9EA22D9E0CDD53915F4F2B55AB6085C + F1607E5250AC33BAEA9FB6D46AA86022F43FE4C25FB28B0BC13DD7B4CD000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Clone current session' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001414944415478DA6364C0034C + ECBDEE3032302A331009FE33FCBFCB884F81A9BDF7FFA9739633FCFBC7C0F0EF + FF7F86BFFFFE036906080D1543966B2A8967206860C7D41540C508CD7FE18600 + 31D40288810C0CFD5531840DACE95F03D700D18C6C102A7F665D3861034B7AD6 + 225C04F62E03C3E71FFF193E01F1E71FFF18BEFCFCCFF0FD1703C3B75FFF19EE + 2C8D246C605ED706B0816FBEFC07E3F7DF18187EFFFD8F55FDA5B9C1840D8C69 + DCC2F0EC2303C3AF3FFF19088123937C091B6897BF85A041307068A20F032350 + D32D205B95584D2C2CAC0C92B2D893E6E3FB37C006929CD6F080FB8CE4A43518 + 387D702B4690319293D6D001B2C18CE4A4356C2E433190D4B446D0C058605A7B + 4A425A236820A9698DA081B28A1A441B084A6B840CBC07A41589361198D68006 + 2AE134109B20C8D530363ED7103410D9207440ACC100E7C2564AC540A24E0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Filter files in file panel' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002294944415478DA63FCFFFF3F + 033501A342EC86E70C0CFF25A864DC0BA081EBFF87FB3A51C5B8959BF731800D + 141293A18A81EF5E3D811878776100550C548EDF0031F0D67C7FB8606D750DC3 + CD9B378932405F5F9FA1BAB606CE574BDC0831F0FA5C3FB860645818836F440A + 839EA60283918E1AC39B771F19F61C39CF70E7E10B867FC004A1282BCEA0242B + C120232EC850515ECAB070F162B85ECDE44D10032FCFF6850BB63535325CBA7C + 9581835F9441444408980018183E7FFDCEF0F9CB3760243232880AF23170B2B3 + 303CBD7F8BC1C8D884A1B0B414AE57377533C4C00B337D51BC72F3C67586DEAE + 4E86ECBC220613432D8653176E321C3F7783415E5A8CC1D65895A1B2A28AA1B4 + AA9641415111459F413AD4C0B3D37D30C267E7B62D0C7B77EF66E8EA6A67B875 + FF19C3B60367183C6C0D1996CE9FC1E0E6EDC7606BEF88A1C738730BC4C05353 + BD3124413968EA841E0656560E86A090108659CB7730C8F37E67F8F597812129 + 3D0B6B2499656F8518786CB2375605DFBF7D63E868A862080CF467387EE61AC3 + 9BE7F719CA1BDA18D8D8D8B0AAB7CA851A7878A217CEA4B177C716865F5F3F30 + 9C3C7F83C1D1C196C1DEC51DA75ADBFC6D10030FF47BE2547460D736A081EFC1 + 06DADBDB30D839E336D0A1703BC4C0BDBD1E38151DDCBD9DE1CF378881B676D6 + 0CB64EB80D742EDE01317067376E03EFDCB8CA306F72370323132343726E1983 + 929A264EB5EEA55003B775E2B69514E055BE9381FAE521D54B6C6A1B08009F85 + DCB9AC78749D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Shut down once operation queue is completed' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000034C4944415478DA9D947D4CCC + 711CC7DFDFAEE79823B392A26162E471D84ED830CCD6E908251ACDF3D3A65C75 + 3D91E799C530D511C2C80D15566C11C21071577A94745DCADDCAD43D74BFBBFB + FA75F310E7D799CF5FDFFDDE9FDF6BEFF7E7FB4060A7361ECDA75C1A2B94B475 + 1816CA762FEBFCF18DD8036E38924BD36384309AE89F303C785D8F9B8FCA9FB6 + 6B8DF37F40ED02D71FBE4133C421D033161BED6BA71EF2FA56C88ADEBE207AC3 + A2CCDDE11A1B606F111D783CB8B8B95B5DA44606C1C38587D6762DE4EFAD5085 + 344E146803B417B1ACA619EB82A7C1D9898767952A94D5B658F5BAFA469C9584 + 121BE0BF44BC515C01B73E7D40BEFF3E33D00FF945A5C84A5C4EC8FF467CFCA6 + 1E3B56CCB6F6E90C0C524EE7E15C721821BD457CFCB6012F2B9B3823F6F31C68 + 5DC78609204E93E142CA4A42EC45AC685043765FF1D788FBB786FCEC8D4DBB86 + EC3D1184AC3B749D66C68A109D59FC1BAC67C46EE883D25AAC0F1A81EA53C7F1 + A9E81E74CDCD30F13DA10D9802D1D18348CD79828B7B571312754046A5F14BD1 + A137DB382CAB6BC5B3774DD6B5BAA800A36E9EC27033036F0707F4F5F141874A + 854F160B94CE2E78357F0D4E661F2264EDBE1C2A952CC32E6931B84AE0E50CF5 + 5A21A651337C8285D03F2C86AFA21CCA7163E1366B3654F979784E1C4074BAA1 + 644DEA152A4D58812F3A1327B054BC138E572F2250B8187CB1182DA210F85656 + A169C2787817DE455B7C3CE479B9786F326590C83D97E999C430C49E79C8099C + 98B61993D4AD1859F204EAA828186BAAE1F7AE128D6346C37DDE3CF44F4E41ED + 0C014A186323599D72894A93C2D1D6C9EDF096FF20CC65E7364CD9848F7EBEBF + 698E5E5E18F2BA0C0D83BD71AFABCB42562565536972042459DC0E27A46DC264 + F567AB43CD96CDE892CB7F6A1E4221F831BB7E395C99789E75B80A9A5E1C5624 + 44C339E712024343C1972440B3633B8C0A055C05020C3C761C9A6D5B515E5080 + BAEE19864BB268667224D41D0C27D0A052E2D19CE9984A2DF01189C08F8E8153 + 400098AA2AB41FD88FE63B77F0CA64D23246662C098B3BCB79977BD680C62A4C + BC9DAEF5E7F13CBCD879BAB3B7464FA9F51C7E309BB58CD9B26493567BD7EE03 + DBB34EB8BAFA3B3939C6B3AC05ECDBCCEE0E55B2CC4286311DDC66307CE8EEF9 + 06EEF4AF1F6B9CCC460000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Stay idle once operation queue is completed' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E24944415478DA9D946B4853 + 611CC69FD7397553896C90246659A4450D8220C8B43E041542A1E4FD4685D587 + B00FE5FD7EC9EE48F4C1DCD4CC8AB091951065A0CE3B6869DE9AE55C9B371C0E + 67ED72969B3BCD9162ADB3457F38F09EF33CE7C7F39CF79C43E0602EDC69A099 + 348BD031AF311C1715446A57AE1147C0F3B75ED2F7AF9CC4A289FE1386963E19 + 5EB40D77A9758B4757A00E81E76ED4D3156961A08C661BEDBB96C2A04C0951D3 + 400FA10CA1828258950DD05E4527160BAE1CAE3545515230DC5D5950AA75181C + B742878419E17C1BA0A38AFD5F66907C623F5CD82C744BA6D13F366BD5A5B209 + 546545101BE0BF54AC178F80E3E101F2EBF610FE663434BD47754E1421FF5BB1 + FDA30C97A20F5B7D3A831105E5AFF0202F86107B15DB07E4E8954C31565CB781 + 675DA7C70421AD4C8487F9718438AA38229F83A879E8AF15AF5E0C5BF5A6973D + 436D613C21C9D79FD382F4705C16887F83ADADB80C157F90222A743B6AFAEEA1 + 53DE8459CD34384E3C78B3F7E2664409EE0A3AF1A8389190B3A5225A98790A1A + 6AC92661BF5489EE4F53D6758FEC1D46D815D815B003FE7EDBE0E1EE01AD4E0B + 99621C63E3526C5988C7EBC25242CE94D4D1C2AC48A40AC5609A3D012E28ED89 + C4A1E020F0BC7836BA6A5E05715B07F414E5474E173DA585D9D158D09B188125 + CDA91835F760674020A347F279141289A49C24153EA12B7362905ED9CA68EE34 + A620709F3FB85C2EA347AFD7A3B5A56D8224E63FA685B9B198D732273C58E183 + E02307567799699A1B5BCD2421B79616E6C523ABDA4EC2C5146CE27BC18DE3C6 + E8315006F4770D4E90B89C1A4BC204A8EC24BCDD9E865EAA11DE7E1B193DB30A + 2566E4B3952436AB9A16E425614E6364366B27115F17025F3E0F5C4F8EEDF3D3 + 50900FCFE8B0B4B49BC46454317ECB6B47ED3C8A51CF6ADD7A1FCB1BC8E382ED + EA0CE30F13B42A3DD4D35A1D6D324728B2D56F1CFE60D78E5FF1BAAD6039655A + 36E798E5D4D7724CD234FD164BE66B8ADC6F5F973D3F01823A7747BF2AA5FE00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Find' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA8640000032F4944415478DA + ADD46B4C92511807F0FFDBAB4517D2287558B3B92E336D6BF5B5B6BED45A31B3 + DB0A2D23BB985D566666968A9AA565372DCB8044B3ABB3D9658AD8565B687481 + 2433EF52BAC859269380D2044EE48A7A43966B3DE7DB39CFF3DB73CED93914FE + 73503BCF9493A126DB1395446F5C743E65B5C925B823AB8CE4EC5E32140CF267 + 5A943E6E52A2C7EC12A5B69F2A25E7F6F04086D0E7EBCE1EB4EAF4B85BD5A0B6 + D8C862716CF0472730EAE45D921B130C7BC25F418BC58A77DDA601F456655D9D + 68EFD2994EE0D6E3B7C985D8109C2E56B984FCBC3D103C771A64CA7A5436760D + CC993F1920DAB78C7202238F951051DC727CE9B70D8AB56ADFA0E0F20D3C533F + 8797CF447476E8E0ED3705637D0370F9C816677073C64D228E5F89CC6B4A274C + A7AD475B83062B04DB3081330EA347D030F75961E93323E7781A8C3DDD7C95A2 + BC88016E4A2F2692F85530F65A19D85BDD3B24A4662039FD04FC382CB059C31C + 6BC65E1BEE289B71292BC562309A826AAA64CD0E70E3E1222239B81A470A1F32 + 404DA50C8B97F1313BC00FDE1E2CC69AC718165E6A3FA0B6518BFCB319856A85 + 4CE000230E5D2792043E7A3E5B18456BD76F4446562EB89EC3073DDBF60E3DF4 + 7D3484BB3674A81565131DA020F5AA1D0C459AF43EA3407E351BB169D9608F74 + 07CB9D064D53F83E887D4CE68E87BABE1DBE5C2E766FE65B540FCBDC1DE0FAE4 + 2B44921806BD99D9616464144E649F851B4DFF3A70CA0EFE78018F5EB460863F + 17DB37095EAB1465531C39E14985442C5C8714B19C01B668AA10C25B002FDFC9 + 4EDB9D357D129476B0ABBD01F9D2FC6C954216ED00D72616107152383E9A981D + 1A0C06C44447E3A228076CF65827F449752D528549BD9E1C6FC9BD12E92E0718 + 76504A4442010EE755381519BADFE395B21C5B22D621203008B49B3BACFD5FA1 + 6DAEC7995C29783C1E02A7F9232131E96863CDE3030360687C1EB9902C4097B1 + 7FD0DB349B4C9097CBA0A9AE865EAF0787C3C1EC3973F0B4AE033EEC61301BEC + FF03B1E14145E97E5D5B5326C5DF2F21B9C20897A0AB109EBE028D5C1C6EB592 + 8279F317D236CBD701945A13271EF207FB6714654652BEFE5383478DF6BCF513 + A5FE15FB3D7E47BF0114466977984244AC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Enable-toggle queue processing' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003374944415478DA8594594C13 + 511486FF6B294B41089B26286EA889A0685C63708B4B8C9A68348A82022EC125 + D1F880B256284A5CE2167D515B41458951E21E135F88B84413634450A322562D + 585A2C6D9DB6D3613A33D7DA4823B4A5E7F19CFF7EF9FF39F70E4190DA79F23E + 0D34730F9E9B6DDCB27A55A6BDB7478201771CBF4BCFEF5B055EA0FD6178FC46 + 8B3B4FDFBFB038F8A5BDD0A0C0EDC76ED30B85ABE174493E33C6EE448BD688FA + 86E657C4C9AD50ABB24D3EC081220E92C91016A1F0B838983717916132182D0E + B47CF540DF698AD7A4FB0083456C6AD5237FE52C84CA6578F9F1279ABE183CF3 + 36AD0ED5A5EB880FB07F445B0F035EEC41BC22D11BF176E30744444581FC3B3E + 2F7D04EE37BC468D723D21C1223EE7CB6017F5D83673370AE617C2CA089E88CF + DE6AB177C3028FCEC1B9A03A770F97CAB3081928E2B3E6EFD8D3B008928285D0 + 23225E9E8419D13B911C31CD1331263EC1A32DCACA40E1E97A5CA9D84848B02D + 2EB934198313C2911839146DA656B08C1393E31622D2B01827766FF16A8B4EDF + 446DE52642F28FDEA2EAA235285037F681F56E71EA99F1084F94636CEC380854 + 80DED6814E9301A25D86B4886CA4842F474166064A4EDDC0D543B9846C3B5C4F + 35256B61738A3E0E9BDA8CD8F5680E629243313C7A84B7EF145818EC06FCEE62 + 30262A1505738FA1F6DA27D4556D26646BD50DAA29CDC47E4D23FCD543EB56C4 + A684BAB79CD0F71B530A5670C064EE066BE230849D8D56FA20866C39789D6ACA + 36C0CA0A7E814BAAD3103E92421116E5774EA9E476CCC1DAC9C069E6DA495E65 + 1DBDA8CC42D1C527811DA6CA200B1914E87641922818BD03F65F5C27C9ADB846 + 3507B261B6FB77B8FCF24428269080404737078B8EA1122FA9C1D3629273A096 + 6ACA37A1B426B0C361D30623C4FDD4FE2F97FB321BB566B056678B208AF91D4A + E6D5DF3ED9A8BCEC7698035300872BAF4E42D294583730C4BB8CAEF66E187526 + 071569F90FDE7C162A780F93ECD21AAA2ECFC32F9BCB2F7075DD248C9E9E04B9 + 5C0EC662C3B7CF3A706CCF1D9788BD7AA5B9BDBF9E641557077CCB7FEB757425 + D233C6A1FD5B07BA3ABB7E4822F6E894960781F4417FB0A38EC47D2632924205 + E938CF5B0EE9556007D2FF01FA1FA0BA554A2C6E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003144944415478DA8DD46B4853 + 611807F0FFB0A960862095E287CCBCE187080C2402A3C8469A5926626A2A53A6 + 611795D4B4BC54442811DDC0D299455EA68961D1F44B08E55D332F98E874DEA6 + 289A4BDD76DC76B6B79D2D5DE6497DBEBCE79CE739BFF3F0F09E9743080187C3 + 015B1417BF26D83C1A575694A713131315CC8DD1DA0AE4F3A3A1D3E958F38383 + 12B4B6B637AFAC28780CBA6D90A669D6BC5AADC1E4A40CCDCD2DED34AD0E1008 + 04F3DB027B7AFA36E4BCBC3CC1E572A154AA2093C9D0D4D4D267A83DB82D50A3 + D160AB282DAD80A19663042F3FFAB8E9F01DECAC1170682FB816EC1FF6F07447 + 7999C80C263CAC252F6E0441436F7499270D5D52F4486448387B18965C0B56B4 + A2BCD20CC6E7BF272FD3CE83D2EA598B9714147AA5B3F8D2398833DE8EB0FE07 + 75737785A8A2CA0C0AF26A48617A30AE3C116FC0F21278B0B1B2C0AC5C89DE91 + 5934768F202DFCE886BA4AD13B3318F7A09A146584609962DF6F2D0353F82E99 + 315E0F4B2770D5DF635DFE80AB0BAA2AABCD60ECFD2A5294198A6B4FC5D82CFC + 7C3CF1E173271E5FF7378C4785E4BA784C2FCB50185486AFE21633C8BF2722C2 + DB61902BD93770FD500D68BD16279C839153508BF80017DCE948C384850456B6 + 96B09CDF8950AB5824C72599C098BBE506301C49CFD83B145331B0B6E122C423 + 16A3ADFBA1DC27C2303D007B975DD0133D147314C88425BA52074D60746E1911 + 6685E3A782BDC323050EF039E68DDECE7EE814D6B071207074DB039D9E8656AF + C1ECC802762F3AA121A5CD044665BF25C29C48A43CAF63053F5197709CE70B4A + 4D41363E0507E7554C8BC9A169D82ED823C22E1E09B102131899F58608B3A330 + B7AC65057D0B1DC1F3F733CE913640CCCA60233F46313FB3D0AC52CB7973B930 + 9F3611B74A0C1D4623B5A0FEBF1D060606AC61CC3A2C9162422A9B56A9173C18 + CCF857AD82E119AF48516E0C6696D80F8193C54EB8702EF84F67269452ABF0AD + AD1BAA6565FE58A63C7D1D78F1A69014E6F231B3C80E9E2A71425870D85F1D9A + BA64D08EB62E03AAE08F65FE2A5903C3D28B363D6DFA6D0BA0D831FE9F2CD118 + 5EE68F67C8CB18EB37A0FFEBE801B2F1540000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002EF4944415478DA85D47D4813 + 611C07F0EF6E99CA7C21AA3F8ACA227BA7FE8AA2FF138988B444CCB7E9D4F28F + 88885256A9CBC212497B114CB724C52C5DE66BCB2891DE4C2CB46D9A58BA7C41 + E7CB9AA5DBEE9C3BAFDB96E9E175FDE0B8E778EE3E7CEF77CF3D228661201289 + C057C937EB1808143BF9CE3C4D1D522BC22DAE6BA725049ECAA961EE9D3F0ABB + 83E1C3D0DC6E40F59BCE9649AB3DD889FE173C99FD94294C0905393BC73B3F65 + 21A1338C41DDA46D1391D4E1C28C13264130E9461553947A0CA76F6B96CC6527 + 0743E229C6D8A415BA3E17AA2F4A0DDD23082664A919A53C0CD324CD3BFFA17B + 181DDF465DE35EC32054F230910B2C2E2EE16DFE7BA3379417C371E68E064215 + B47F3BEA9A3EE1FEA5F00550269382A6B94992B2D4505D8EC0A4D52108DAA859 + 6414D4A2382D820B3A1CDC0713B32A59301267EF0A274C970521254F8D07E991 + 5C50ABD5736ECCADD6419516891F16E184CE4ACDAB4489228A0BDAED766EC26B + 15506544E35CFE73414C2E3D08796E054A33638413E63C69872A3D1613D3B378 + D56E44D6432D1C34FF9AF4F3A4A1551E5F00E3E36341CDCC70135E7DC42694E2 + 424123864C73E8337961EFBE03F0F25C0E312182584C60197B26D8A3AABA06DF + 4B43B8A04ED7C901B31F7F84521187D129772B940D5FD1D036CE8B56D7D672C1 + B8B8189014C54D98598E22850CA3BFDC2065A7119FFD16BE2BD72170CB5637F8 + 07ADAFAF5B0AEAF55D1CF07A79EBDF31CD88D063F687F78A006CDBB9DB95CA09 + CDA31A4D0317944AA3612349DE8693333492F33B3038ED8DCD5B77C143ECEC1B + 81A1FE3E046CDCE47AFD178DCFB8606C6C14BABABA794145951103163F0404EE + 609311AE8FD0DFDB8D31E3F0888F8FCF5A674F5F37BFE482312C68B3D978C123 + 575A414BD663D5EA3520D87443861E98C6475AD85F2E58E2E5912691F8A458AD + 163B0B7A2E803191B0FE031C315348B8F51984FF06909629984D461736A176EF + D401D155890C43500365216582BBCDE2FA491128D34AD8053C872FA38CEF3CB6 + B89CD66F4985BFE8FB33C8E80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete All Completed' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001CE4944415478DA639CBE64EB + 7F061241668C37232E3946908119D15E441B3663E9B60132F0CEC3E7040D5391 + 971C75E1B077A1929408C3AC55BBB11A38998B4B2AF7DBB76744BBF0CB93270C + BB03FC18DEB1F3323C397688BD8181E1174C6E262F6F95A8B870EBEB176F1A88 + 76E1D9206F060B3971864F9FBF309C3A7371ED938F9FC340E212BCBC9D3A1ACA + 2582027C0C474F5E584AB40B4F353430FCD8B09A414D4196E1C9CBD70CE7AEDE + 9AC3C8C0C8A6A7A11C27C0CBCD70F4FC95938FDF7F742029522E4D9AC4F072EA + 44061D796986072FDF30B0B3B232F070B2331CBF76E7FAD777EFCDB28121C348 + 6A69C378702783C2EEF50C3A32920CBFFFFC653872FBDEEB6FBFFE68A57FFEFC + 062C4F8A61C0C017616761DA6D242166C0C3C6CAC0C2C4C470FDCD3B86FB1F3E + 26657CFE3A9F2403677272CA71B0B3EE35151656E164666638F9E6ED07662646 + 76632141CE6B1F3EFD7FFCFD4770E6E7CFEB8936703E1FDF2D4B7E1E55764646 + 86335FBE7E7FFDE7A713E36F867FFCECEC3B8D79B904AE7EFDF6E7E5AF3FEEC4 + BB9097BB5D9585B5E2E3BF7F7F9EFFF9EB99F5F5EB1E90F8141E1E6D0126C6DD + DAACAC92677EFD3A4C5A18F2F1E4FDFFFBFF7AC6D7AFBBD183838185A5E5F7FF + FF9D0036FF0374CB4C5E720000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Move To' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA864000002CC4944415478DA + 9DD36B4853611807F0FFC9A6E226148115A121F44114EC4B601783CA89898588 + 5D286D37AB09F6C1C04CADD4C8C20C5C46945DECA6692644491482B744373171 + 6D739A6D8ACC454D6C96EE7236CF769A9ACBD3E6945E38F0BE87FFF3E3E17DCE + 21E05A55554F68F85E9D24694ECCCACA322D9303B1008A447C381C0EAFA1A121 + 0DBABB7BA424694A580E65801445790DD96C768C8DE92195CA7A28CA9624168B + 2756042A142A8F40646404582C16CC660BF47A3DBABA64AA8C0C41F48A40BBDD + BEDC15A1A6A60E2E90F8AF0E2B5B467DE2AE49761AA7C9C486E223260F5028E4 + 81B4D91805676F37A1322719768AF686A1B56F04AF3BFAA593667BC202CA0095 + CA7E46D19D262DEEE5A6C03AE3F4DAE194C90AE588010D2D8A6EC24A1EBC5F7C + 7CC20D0A04276025494641F6ADF77890978A3315EF3CB0D2CC047002FC609834 + 4331EC429BE5AA87F987A219A04AA576178CCBF260F86144726635E8A070AF1D + CA06BF42AEF93EB7D78EE85055709870837C7E3A2C56AB3BDC5E1185A8DD91D0 + 7C1C859C4E819E15BBE470E26322D0D8D28B47178FFE0579BC34A8D583EE90EE + ED01708571B04C03AAB63EF8AF8DC1166E29FC02823D400B3983A2BB6FF0B8F0 + D83CF8AA6C27BDDAAEF7087285FB40131C38E920687A54D00E7C8322F0247EFA + 31AFA050148F5C49039E16A5CD838D256174527A009CAE62DAFDB0FF9CD9EE77 + 1363E318EA68C6866DD958BF55C840CF4B5EE2D9E5F47F41F62290E301CEEE0D + 5A2D94EDED6865DF7063F97C2EF2CBEB517D85E70B642F42E7CF3AE567E8FA07 + 10C6BD09CEA61D8C0E0B2475785E2258004365AE6F7CBBC7F4847BE7408AF287 + FA432F86F5043E058A41126B18B99CB4385C90D4A2F69A8858F2279FED7A16FC + 65A45C53962368732A4262CE8158C5F29ABF545E8BBAD20CDF60546C04BEF4EA + 11B2EB2A82C3F7C3D72A94D4E0C5F553BEC0D036A363E39E2E6B0AA69CEBB092 + 555F769AF80DC7F16B24D6BB00C40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open Workspace' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002624944415478DA6364C00214 + 62D6DF62606450652005FC67B8FD6049A01A23560363D7FF57D13127C9BC3B57 + 4E323C581CC888D3C099E58E60F6BC45AB1892E2C230D8E8FCF4CEFD08033737 + 4889FC6761DECEC0C06802E2E7DD9CC870739E3F492E544FDA0831106218CB01 + 597D336D25335BB0A47E891CC3D5397E0CEB8EDC6408B25147A1B101909C76CA + 2688819B5AE5CEC8E91A1B2B99D980431684F54A55182ECEF225C985FA699BA1 + 06B6C8FD7748C9821AC600355093E1EC741F86CDC76F33F85AAAA2D0D80048CE + 38730BC240C79454B8EB4048B74C8FE1D4546F925C6896BD15C9C0E478B06197 + 77EF6378F3E8094906A181EB60039D92A3183EBF7DC7F0E8CA2B06B3D0596499 + F4F7F77B866D3D2E272006268532DC3F7F85815FCA894154418EE1F7CF872861 + 0A028CB020411243A6EF9F3DC770FFDCD932B081CE49010CA736EE67300EA866 + 60667ECAF0EFEF67BC9A111630C0C54E6FD8CAF0F1E54B6DB081F651CE0CA7B7 + 9E67B08DAB66F8FDED1C1E83FE43B9A872BFBF7D6338B27CCB13DFDAC7B26003 + 75EC7418BE7CE6615033B764F8FBEB3142331E1722D3CF6E3D64B87EE4D22CBF + 9A47E96003C5E4451864354C19D859BE30FCFB8DF02E23DC450C6886A0B2EF5C + 7FCAF0EAF15B4FFFDA273BC0067270B2313824353230327E63F8FF1F57986133 + 9481E1DFBF3F0C7B66F7FFFAF7E387A06FC3B36F6003C56544185474E518FEFD + F98A55136A1030A044CAB72FBF182E1C7FB4CBAFE6B13B587C53B3EC53433777 + 2909355D2CDEC162305A10DC397584E1F6E9D3797EB54F26830DDCD82CB71058 + 88C531900F6EFEF9F3D32EA8E1E52BB0818830A30E00005E95309C57790F4500 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Save Workspace' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001EF4944415478DA6354885D7F + 838181419D811CF09FE1F68325816AC8428C4003FFABE8989365DE9D2B27191E + 2C0E64C4307066B923C3BC45AB1892E2C2E0340CE0E3A777EEC76EE0CD79FE64 + B9503D69237603AFCEF1635877E42643908D3A0A8D0F80D468A76CC26EE0C559 + BE64B9503F6D337603CF4EF761D87CFC3683AFA52A0A8D0F80D418676EC16EE0 + A9A9DE64B9D02C7B2B76038F4DF662D87EEA0E83A7990A0A0D02B3B73E6278F1 + EE075116FC6760380F36F0D0042F9C8AEC0AB63138BA7830F404B3E035AC64ED + 1F86FD7B76405C1864238053E1BA231F18EC1CDD193A83F01B58BEEE0FC3A1FD + 3B2106EEEAF1C0A9D0AD640783B5BD1B435B207E03ABD6FF61387A7017D84082 + 79D9C2D685A12500BF81351BFE309C38BC878191810000F9C0D4CA9921D79985 + 418407BB9A579F1918A6EEFBC370FAD85EE20C34B27022A40C0CCE9DD8479C81 + FA660E441978F1D401E20CD431B107B397A609307032FF65F8FCED07C397AFDF + C1F8C9DBEF0C0D5BFE30088B49315C3973903803350DEDC0EC4DB9FC0C9F8186 + 78B4DF6358902208667FFBFE93A17CC37F0661711986EBE70F1136503E66FD67 + 651D331E464626863519BC6057054E78CA302D9A0BCCE6E26467C859FE1D68A0 + 2CC3CD0B87091B2817B9CE8689857119305FB1F9ABBE12C7A666E36DB1976006 + 23E37900FFB4E8A0B858AE050000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Site' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA864000001724944415478DA + 6364A03260A48981A6F6DE6780943185669D3D7D70AB09CCC0FFF95DEBC1A2FF + FF033198C1C0F00F4AFF47A2D1D960F5403CA7369001682023DCC0EC76A88150 + 450C681AB0C9FD03DAF8EDD77F864F3FFE336CEF0D463530A36D3DC275682EFD + 8FC4FFF283016C00087FF9091287E8B8322F04D5C094E60D988641D99F819ADF + 7DFDCFF0E13B03C3DF7F30195470692E9A0B139A3620C20BE41D20E3DD570686 + D75FFE33FCFA83DD106470617610AA81710D1B19609683BCF3F21303C3EFBF84 + 0D828173B3D02225BA7E13C31FA0012F3F33307CFD49BC4130707A4600AA817E + E59B80DE03C51CE98681C0C9E9FEA8065A666F22CB2018383ED50FD540EBDCCD + 14197874B22FAA81CE8E8E241B72CC762E98B63A9CCCB077FF7E84812676DE27 + 812C334A5C084CAFA7CE1CDA6A4EB0B49151544789A527F76FE2D58355121804 + F780942288FDF6E553143961716918F33ED08B4AC41AF8DFCAC90F7FF8EDDB04 + 0E33925D880710EF424A00003300E5157B57B75F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Site color mask' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA8640000009A4944415478DA + 6364A03260A48981A6F6DE6780943185669D3D7D70AB09CCC0FFA70E6EA1C834 + 337B1F06A0818CA3068E1A38BC0D74767424D99063B673C1B4D5E16486BDFBF7 + 230C34B1F33E09649951E2C2FFFF194E9D39B4D59C606923A3A8FE1F99FFE4FE + 4DBC7AB04A0283E01E905204B1DFBE7C8A22272C2E0D63DE077A51895803FF5B + 39F9E10FBF7D9BC06146B20BF100E25D48090000D9537415156A030000000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Hibernate Once Done' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA864000002E74944415478DA + A594594854511CC6BFE354EE1B05856254F4D2432644B4616114620F8564E6B8 + B6A8052D542EE3BE6B99851412E9A8A5A5A223A646AB6433EE386ACBA0A24E66 + 62EAA8A8389B8DE3DC666E2A4EC33892FF97FB5FCEFDDDEFBBF79C4B6020AE3C + A8A6F4CDD4838649F1AC1B27C153B2D823868097332AA927A1A7A15052FFC250 + FF75009C4FDF9AA6A40AD745A84160707A05951DEE0EF99C4A67362391A37360 + 1CA5355FDA2097BBE524784FE80057B268C460C0D8D48C569118E00C0B630644 + 5352087E8CA1F443872037D2C3510768C822BF7B0841A7F663C37A063E0B4568 + EE1AA2E7C2FE41E4459D253AC0D558E4D40A606A6101B270FB11C7ADA8FED886 + FC987384FCAF455EBB1037992EF43AF96F25E21E57E2691C9390B558B4DEB889 + CE59CCC308CFE4A020DE8790B5584CBDE6BEB496955986C2445F4202EF9453EC + 883308C9E16AC192D416CD172C6AA0B5FC3EDCF276414B4B2B6AB9756817F4C0 + C4DC12D69B1D901C1A8494EC57789EEC4FC8A5340EC58EF480583EAFA370B9C5 + 9E5E217E753682CC8E222D622F766EB7C6B0480A6EE308AA6AC66066EF849759 + E1845C4C29A5D8519E086373A12F9C773BE051C65D482647E8DAC1CE1C0F930F + C0CA72035D77F54E212CA503F219E92E7221A98462477B615AA6D40BE4D63721 + 3DFD9E56EFC4517BB0AE3A2ED5859C3E1494F5559180C4222A378609562E4F2F + 1083CDA86F68D46A318C08DE14BBD2574D0C8FCAE07F83A724FEF12F2876AC37 + 2625FA15DE0E09835028D4E973728EC1D6C698CEE755145CBDDE81F8C5165239 + 71BE88CED7AF705AF01E028160350A417C629EA915FA61620585E59C72949414 + 6BF58E3BDB21E2FA1EAD77585826EC27DE51F96A85011817CFE9058AC5620405 + 064235FFF7A1765BCC90957A50EB2B8726B64231A70C26CC883CBD677979C8A6 + 4518EE6E98B5B53131D1ECC31DDBAC303A26A3F76151C5772814AA027EDDEBF3 + 067FB0CB63DFA1934E5847EEAB15B8A84FA191A6A7CE7F12A852F9BCB76C4DFD + 077D51875DC9B4D1980000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Cancel All' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002A14944415478DA63CCE8DDF4 + 9F814430A3D88F11971C637AF786FF930AFC88362C6FC2268699A501B80D4CEB + 5CF77F42A13FD10616F46F6498551E84DBC0D48EB5FFFB0BFC19EA161E266858 + 53BC2D43E1848D0CB32B82711B98DCB6FA7F5F4120D12E2C9AB09E616E55286E + 03935A56FEEF290C6268597284A0613531360C25FDEB18E6D584E33630B169F9 + FFEEC210A25D58DABF86617E5D246E03E31B97FEEF2A0C65E85C7E94A061E591 + D60C65FDAB1916D647E33630AE7EC9FFCEC230A25D58DEBF8A6151630C6E0363 + 6B17FD6F2F0A67E85B758CA06185C1E60C5513D7302C6E8EC330703A0F8F58E6 + 972FAF18A36B16FC6F2F8C2468D88F674F192EC60531DCFDCFC9F0E3C271F606 + 06865F30B999BCBC15A2E2C2EDAF5FBC69608CAA9AF7BFB5308A61F2BAE3780D + 54EFCD6170D79265F8F4F90BC3A93397563FF9F8290268E8BF19BCBCDD3A1ACA + 258282FC0C474F9C5FCA185931F77F7351144117DEED6E61E0DCBD8141554186 + E1C98BD70CE7AEDE9AC5C8C0C8A1A7A91C27C0CBCD70F4DC95937FDE7F74628C + 289FFDBFA93086A80879347B0A03C392190C5A72D20C0F5EBE6660676565E0E5 + E264387AF5D6CDCFEFDE9BE531307C620C2F9B4552692373F90883EB8DFD0C3A + D2920CBFFFFC65387CEBDEDBEFBFFF68A47FFEFC061CCBA418060C7C113666A6 + DDC69262063C6CAC0C2C4C4C0CD75FBFFBFFE0E3C7C4F4CF5F179264E04C4E4E + 393636D63DE622C2AA9CCCCC0CA7DEBCFBC0CCC4C86E2424C079EDC3A7FF8FBF + FF08CEFCFC793DD106CEE7E3BB65C9CFA3CACEC8C870E6CBD7EFAF7EFF740132 + FF0931B16F37E4E512B8FAF5DB9F97BFFEB812EF425EEE763516D68A0FFFFEFD + 79F1E7AF4FE6D7AF3B41E2537878B4059818F76AB3B28A9FF9F5EB206961C8C7 + 5DF0FF2FC3D58CAF5F77A30707030B4BCBEFFFFF3B01EEDC028BFC205F430000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002F64944415478DA9D94594C13 + 511486FF6B058440086EA01189C6441F8C2F3EE00A21D1D40D6593B445AC0B2E + 89BE28B2951D54E24A3471A10544824128218437352246024136058B112A9445 + C2525A42DB19A1CB38D31222A92DC4F330774ECEBD5FFE2F93B9048BD4E507B5 + 8CE329699CD4D17C7956B49EEB188601590C78E95E0DF3FCC609CC9A1672B9AE + A1730095755F1BB586592B7449C08B77AA9982C470D0468BDD6C5A4F43A19A40 + C5BB8E76D0BFF9059942B51DD099E2321E0F6EEE1ED614D9E2FDF074E3614C6B + C03716FAFA4D9B42961CB9DD0EB898E2E7EE215C381E0857171E3A946368EA1E + B6CE957D83284C892276C0A528CAEBBAE0EEE90932773C68C746D4BE6F45516A + 3421FFABF8A1A517D74421D67DF4AC09194F6A509C2E20C4A96217ABA870ACE8 + BD6AB5F53D49B81789F97294648808594CB19B4D5359D7C92A7AD929DEBA1A3E + BF3729BF122FB3620889CBAB62D8AF837869FD02D852147D7CFDACFDF5E83D48 + 795881D29C5842CEDF9633B29428E868B35D42678AF1F965A036D560543784FC + 63723C9635A02C574CC8B99B158C4C128D04593D1C9587AF02AD8A1EBCB872DF + 96D048214C7A0066DF11B879B962F9B817FCC7C4A8CA8D27E46C4E39234B1560 + 8A323904EE7ABA012EEE3CF89B0F619BFB49A8563C82CAACC0CACDDEB058CCD0 + AB69504A177C97F41022CE7EC514A6099154F8D121B05A1389C0E09DE86C55C0 + 133E307BD1F0DBB206668B09468B1163CA4918D4F4DBFEE4493E399D59C6C8D2 + 45D0E81D27DCFDCC0F21FC20D0333486077FC12F60ED3C6CE8C708A6C6A71BA8 + 19EDE1F14C464F62D34B1969C629A4163B4FC83F72102616606241DCCAC17E76 + F7433DAAB1C226B260BB6D62D24A18697A2CD44E12064BD72134F4E83C8C5B95 + BD7D18EC1B1EA166345B3998F567E0802249319B508C099DD12130A4703D22C3 + 22E692D9A0F40C85B6E62FA07486BB2A8936691E284C2E727223DBAAC93B0182 + 08C15F096D2939684B733B0C3A2A6E40A2295AD205CB55409ECF2702B2EFDF53 + 66967D9C51A568CB39E01FF923DAE875D88D8C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E94944415478DA9D946B4893 + 5118C7FF67AF3A2F9325491733B532B3903E455251D027E94B29DA705EB2AB5D + E84B65DEE78DB224CC4F813A1513A3DCCA6B4962792931C8D2F2B202CD3BA66E + 69E9E66C534FEFB626DA9C931E7879DFC339E7C7FF770EEF4360A12E655652F3 + B3A4F9C7B4DA4F9A2250EA469452104BC08BF7CA6976D40968E6967375A3A6F6 + 0148EA3E374FAA347AE89A809119A534273A006AED82C9DC94528DAE7E394A6A + DB5AA19EF5CB49162A4C80AB297218065C3B7B7D8AD488C3E071198C4DAAD0C9 + 429FD47CEC12C706FA98002D29BE970DE1C2715FD8583368EB19C33BD9B07EBE + A77710797141C404B81645695D07EC783C90BFDB8FEC7543E5EB0FC84F1010F2 + BF8AF52DDDB8167254BF4EAD9943D28372148882095955B18355EC32AFC85FEF + ACFF8E111E4274961485492184585294B1692475EDACA2A389E2EDAB018B6B63 + B2247898124AC8F93B4F297B3BB891DBB00CB61645A78D9BF4E3EB828388BB5F + 82A2B47042CEA54BA9382E08D3EA7993844B159B3E0DE3CB088305BAF2913B72 + E7D12E0E24E4ECAD122A8E17E0A6B801E64AA79853DA8AC1E975D8B7FF006CB9 + 366038040CC331BCD9E7595939FA8AFC093993F6988A1382F17366CE2CD0A828 + D73AA14FCEAC082DAFA8300023521FD1BC442162F21ACD028DB718171980D377 + DFC296EF02CF9D5E8BE974D0AAAA4A03F0547231158B4230A1349F5057519952 + 4C912D1853DB63D76E1F58FDA35C5DFDDC000C1715D1DCA4302414984F78D9DF + 178109D5B0E66FC50EAF3DB06274100E86FABFC1DD639B5EBFE6E50B033034B1 + 90E68AC2A158256154760B7A145670F7F4669371C06113F575CB303E3AD2CBE3 + F1B6EBCEB4B1BED6000C892F601346403EAD350B0C4B7F03EAE00AE70D9BD9DF + 9160A8F72B14E3DF9B6666B5C7EC6CADAF383AF032542AA58605728930367F95 + 8E6CA8DFF31C74CAF97076F5865AF50B138A513D4C2E35746A8FB032E1020533 + 50EC5F6CB1C11ACBE5A4C4CD866BFD8AED14BDAA596D9011B6B4741DFB0F6993 + 87E8E4125E890000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Speed Limit' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000042B4944415478DA8D940D5054 + 5514C7FF77717719BE3F4661011DFC08DADD8030688C80A5069B021BC656CA6C + 5231AC81190103F9C855986151F003262C1CC2B2C4198B061C02AC99728CA592 + 5AC088AF5003C711569315307759D8E5DDEE7B280A11E39979EFBE3977CEEF9E + FF79E71E82052D66495894430244480048380195F15E0A62606F3D38D4B7B598 + EB811F6DF323C97C47B8EA9557596059B052B13A3AF239C80303E0E9E12EEC19 + EF8CA2AFFF32743F5DC41F3DBD7FB18376EB9BBF6DF83FA0282C2AEEA04CE695 + 9DB2733B42572D85E8DA6F20437DA06323C0A40D54E202F8C8411591E8BC398E + 8F2B3F83C170EB505BCBB93C16CFCD01325889521198ADD9930E17838EC15A41 + 2D5660CA36B3F2C0FB0FACD3A0412A989E57437BA41C3DBDFD3C346716B83632 + 6E839FAF77C3D1A2FD70BBD10072FB2A2803818128EC411DBD19984186074047 + EFCCF879F00A394C9B3290B9AF10C3865B096DBAA66F88F003548E7D070A3E58 + F3B4CB75347FD788203F57783ABB627A4D1C382FF923425875AF7480367ECA0A + 6A14A0E4D9F5E856C6606FFE8101BDCE1448C2A3E35F63526B8B35A9105FFD1C + 63461392CB7E46705824DEDEB6033E3EB2FF36C138837D940B8CDC06B5721069 + 2AB0B7B21ADDDD7D6A12A68A3FB3EBBD7736C7ADB5839DB19D499DC60D7104B6 + 66683136368EF5B1B148DABE0D2B57FACF8576FF0AEEB856A831793101E7BD15 + 283F7EE24B3EC3FE8A0F4B02568B75209611D069292CFEC918181C44D28E644C + 4C4C8010821762542828C887BD547A5F3D05CD7A0B1CCB92782D8721A308A9E9 + 3997F90CFFF9EA8B4A270F4B0DFB7B93E0EC7C31E9192FC4B4775CC2AEB474D8 + 6C33FD5B527C50003F30EE501E687B2B2096C27AA21EAF6FDD794F00D69CAA72 + F2A0B5808D012183C5F9E5D9A0EF7F388FFDF905707672C2E9EA5358B66CE943 + A0760F38FD45101E78FADC0CF081E427641D20D3A3A09C146649E29C72DD3399 + 20118B2191481E3A9964DB960DA0BCE4E5FEF8BBA81C2969D982E4336929C99B + E3A21C20E6FA5887104C2E89818DF86131A32D1760CDDBCD7712EC12B7E042C8 + 3A1CABA8AA11DA263848515BA44981FDDDDA9962137B585C37B155BA30CD6CC6 + 54FC4BACC98DECC28A20A96B447E750D7EEFEC4A141A3B3CDAB1BFB850B32A44 + 76137677BB60730A85D53D62D10CB99355B01D2B8348FD06AEA8DF44EE3EED80 + D9784D2E5C013E4B36146A4B8BF3E13235089B5B101EC7B8863A4CA86291A929 + E487845AAF6BAA9B1D0E0C7A58210FC8D2E4BE0F470787C7029A98746D71293F + 1C4AD970C89C336D988918B4C4D7579695FA6E129E523CB928ACBBF74F547C72 + 12434386232C337ED270F38182B131A62622723834246865C4BA7001ECEEEE26 + EC8D8E8E09A05F5AF5B8D4D935C80839EDCD4D5F3F1A4F163A5DA9544A1C3C57 + 6C64DB1B2921CF100A1FA155088609A5EDECEBACD978FD6C4F4FCFD4FCD87F01 + 8D17C9684656C3C10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Bulb On n p' + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001400000014080200000002EB8A + 5A000000097048597300000EC300000EC301C76FA8640000024B4944415478DA + 63FCFFFF3F031AF8FFF7E3ED559FEEACFFF5F1EEFFFFFFD8F895F9940304D423 + 191899D11432A269FEFBF3FDB37D198CBF4F0BCAFEE41492606460F8FEE1C587 + C76CBFFF694BBBCC61E192C0ADF9FFDFC73B6338D88E896A9B32F02633B04882 + CD7BCBF079DEBB1B87BF7C3492F55EC5C8C4865D33D0B59FAF55C8986B33F0C6 + A2FBE5CBAA6767CE7229370968C462D7FC686B88A8CC494ED97806467674CD0C + BF7F3E5BF8FCB6A642C00EEC9A6F2F5257756060E03063C00A7E9EBB73E89752 + D87926561E74CD7F7FBC7BB0CE5CD9FA17D4AB5079666040C002F3E5BD63CCF2 + FEC79839C5B0D87C6789AEA2E56B26488C30F133B0C83030F130FCFF09D4C6F0 + E739C37F86BBC70494232E30327360D1FC744F321FFF4E1ED13F0C8C9C0CEC3A + 0CACCA0C4C820CFFBF33FC7EC8F0EBEAB7D7EFDEBDB295F5588EDDCFDF9E1D7E + 752C41DEF82B03AB2C038709239B1EC8F27F1FFEFFBA02F4F0E3E3F7848CA6F0 + 2878E24C24CF0FE4B2FEDF24AC26CFC061CEC8610E0ABCDFB7187E9C7C777DDB + F72FEAD2AEF3F0A6B01FEF1E6EF290D2FBC72E62C1C86EC8C02A0F4C243FDF1E + 7972ECA8BCDF36BC290C0C3EDFDFF2EE6CA19C8D0E039B1A2393F0FFFF5F1F1F + DC24A05DCDA71A42206D43C0FDB58ED23AAF59F9E4189878FF7CFBFCF8CC27A5 + D02398CAB06B2E689A852632A12E8D04CD19D19EEC6CACEF3F7E01A2CD7B4F91 + A61959351A9780E6E2D6B9AE3606EA4AD2406B6FDD7F76FAD2EDDEEA6462353F + 7AF67ADEAA5D1F3E7D05B279B83913435D95E52488D50C01B9959D5FBF7D9F37 + B101970200C13223E8056E30BD0000000049454E44AE426082} + end> + Left = 32 + Top = 16 + Bitmap = {} + end + object SessionImages: TPngImageList + Height = 20 + Width = 20 + PngImages = < + item + Background = clWindow + Name = 'Compressed connection status bar indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001B64944415478DA63FCFFFF3F + 03350123C840464646BC8A4292CA7385C5247A3938B958D1E57E7CFFF6FBEDAB + 17C56BE6754E069B0522B6344A8BFC6761DE0C34DF02A1F4FF89DF7FFE850637 + 3C7D626AE77D97819141099785403FDE397370AB2ADCC0CD2D72A714F4A44D55 + 8DE5E18A6E9F7DC8F0E0F2336CFA8FF8D53CB205310C6DDCF55998592E80D8A7 + 0F6E654418D82AFFDF315099A830DABFFE2E03D0407818E537CEFC7F6CDF264C + 03490978A20CF4AD3C4394619BDB4D8833D0353D9FE1EFEFE7902006453F03CC + D1FFE162207AEFBCF5441A9896C0F0EFCF3B0C03C006FF4718BC67FE0E220D4C + 0E60F8FFEF2B9261A8AE6384B277CF3F409C81566E9A0CFFFFFFC36220038AD8 + F1DD778833D033BB18AB010C702F43D8DBA74D24C640B9CF404FF11013CB40F5 + 5FFC6B1FF382D8C6765EBA36CEFE97300C24949733AB26FC6663E764C1260732 + 0C23EB1132D0C4C6C3819199791E90A98845FAF69FFFFF53CE1FDA76886803D1 + 81A9BD37385441DE440B0EE20C0496364BFE33323001BD1585CD4098FCE9035B + A28833D0DEEB3B50193B231E854073FE032D60222E0CEDBDD683E83307B705E2 + 933F7D606B2023B5AB000052DA6BE8460F71D10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Encrypted connection status bar indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003054944415478DAAD936B4853 + 6118C7FFEF39D3B38B2D5B171BB941902ED33458901F8A6E30B2DAA20B9510F9 + C190C828BA423473E1FCD4953E44447DE8F2A1A428134482C8EA4356749B315D + E66A172FCD5A36CCA63BE7BCBD4D92186DF3430F3CF09EE779CEEFFC9FF7790E + A194E27F1AF91B4808193FDF75CC9CC72B320EB3EC0AF6A867DE47415A62543E + B1A926D8F5A72E51D03F81F7EA8D558A0CF97C5EA1CC4F9D41214B2C2E03A13E + 0E9FBA484C14E54A9BBDE7DA84808D75B9AB546A349B9748C4DBC1A33FC88DB0 + 1A0FCB99F4B364413F0B70BD2234364297DB8E051FA50536390D9E858BA5FC2E + 378FC130B914157FEEDBEC1818BAEED069B50ACD85EC2928D7EB093ADCD465B3 + 074A5202EF1ECF5DA0CDE65ECF31C970BDE4DFBC14FD6687E377B363D6E040A6 + 4A61683799B87CEF478A916139CF561BF8901478CF69D8302387DC56AA00BF0F + CE75F6404DE2149BEA0C27F57AEEC0D00F603022AD6135CDC98175866D3933C9 + 355E41D0DF2BEFB5DA83E712818D4EC3FEE93AFE546C9432A05C6EABF1DF480E + AC377A0848FE84978ED2B756BB7F4152E0FD3325D4B2E70EC019407D8684B739 + 56AD44549A86C09341C4A08137108E58EDBEC92980C5D46C3B02F0B9A09F37FF + 55A5602EB0838051691242AE2F90A044EF40E49BF5A85F971268A9BE0C649430 + 85C678ACF3931257EE2851B555C06C6316A2A20E81560F444E836E7F38643DEA + CB49019C4FCD6B773360015358CEB299387846C08367806D8516C77765C6157E + 6D7F0F895322D033940E58442D3B4F01CAA5A081629655A1F5398FED8786D170 + 71194A8B424C6136426D8F21F26AB8DDDFD3010BA9797505BBAA45A05FAAE343 + 0847145859398827B76CC8E23B312A6A1079DF0689DDA9B7FB673AE03C6AA9B2 + 03EAF5A0BD96B8C2684CC0D5C62C546C3143E0BC4CA116DF5D3711236ABC7991 + AEE5D305D45CB61150AD040DD78E4D9639E1D46C6B04B6763C53C83EE26B86C8 + D47BDE45D301E752CB0ED66A56256888B5CEA9E22AC79DFBAD984DBAEB2C036A + D0F6703835B0A9DEF894854A27FCA780B6B03D2C4B0AFC1FF60B77A88DE85AD0 + 46230000000049454E44AE426082} + end> + Left = 32 + Top = 80 + Bitmap = {} + end + object QueueImages: TPngImageList + Height = 20 + Width = 20 + PngImages = < + item + Background = clWindow + Name = 'Download File' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000030C4944415478DA85D46B4853 + 611807F0FFB09230838CA2B4208AC84F52F4C14F19413632BA68226B5EDBBA18 + 49645473EAE6486A6AA5DDA8742B3353D475D3C8828840C2D0CACA32A1DCD279 + 9BCC366B97E3AE6F3B3B65856FA7E7CB7BCE79CEFBE3E17F38AF801002814000 + 5A659F6D21E0A940F3B9C536B959A74AB107EF598B0FDC7FFA3EB97A743BDC5E + 42C3F0ACCB807B6D1FDAAD0EB79045FF0BEE2BBD4B2A8F2782F1F8A9FDEF7606 + DD8631E89EBEEB1430935B2A8B768DF3827B4BEE902A591272CEB74EEB95660B + 11161A8231AB03DDFA20FABE4A9618C30B4A4FE988469E0C1BE3A3F65FF40EE3 + CD6753F0BACF6084569E2C088207CA1F50C377330C34F9293874A1157C151F1B + 8D96A7AF70AD208503B3CF3453C3CF5637425B2882D5E1E5051D931EA8AE34E3 + BA42C481FBCBEE51C33FA06E0880621CBEC83FA152128FE3153ADC508A3990FD + 9AB4F06D562BB40A31BEDAF927644B56D1841A552A07EE51DFA6869FA3AE87B6 + 280D472E3DE2C5E4991B212F6FC4CD13E91C283DD94468E14F8C9BA15566C06C + F34C4318AF138A27528CDA06519ED088739A36DC2ACEE440497103A1857F485D + 1B983013E24BCAC09FE1C3929075C1E75EB8D0E92A833BC288D0F05998610EC7 + D2B1DDB85D9CCB815927EA092D7C8BC9048D2A0BABCF4762E6EC106C5B2141DA + 9A5CC81FA762C0DF83F9CBE7C24FFCB09B1938F533D19BFF890333557584167E + AEBA06552A0962CE2D40ECFAB5E87ED58330CC836F8E138B572E84CFEF85C7EF + C698DE8290D148BC2BECE4C00C652DA1853F3E321C5C3BE6E56183300E8C8BC1 + D0C030162DFB857930F86904BEE10844DBA5D0951CE4C034450DF957F86CC555 + 2D8630211EDE00E00D40ECCA62FA8F5F306EB2B43B5D56A15985DFA74D6A4135 + 61C33F76E531157CC8A463EBD62D5318BBF67D36C068181A71BA2CAB588C7D6F + 0A14CBAF13367CD3773715DC782D0A3B7724FD9C8C43199713AF3BDEC2697394 + F5E75B657F81BBF2B4840DDFF48D0E6EAA8E822849F4C784DC942CFAB2A32B80 + DA25FDF913D553A048A6E13DEA7BC22FC33EC3F88F2E7107364B06E4D63AD6FA + 012F69FEE846AA6CAF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003144944415478DA8DD46B4853 + 611807F0FFB0A960862095E287CCBCE187080C2402A3C8469A5926626A2A53A6 + 611795D4B4BC54442811DDC0D299455EA68961D1F44B08E55D332F98E874DEA6 + 289A4BDD76DC76B6B79D2D5DE6497DBEBCE79CE739BFF3F0F09E9743080187C3 + 015B1417BF26D83C1A575694A713131315CC8DD1DA0AE4F3A3A1D3E958F38383 + 12B4B6B637AFAC28780CBA6D90A669D6BC5AADC1E4A40CCDCD2DED34AD0E1008 + 04F3DB027B7AFA36E4BCBC3CC1E572A154AA2093C9D0D4D4D267A83DB82D50A3 + D160AB282DAD80A19663042F3FFAB8E9F01DECAC1170682FB816EC1FF6F07447 + 7999C80C263CAC252F6E0441436F7499270D5D52F4486448387B18965C0B56B4 + A2BCD20CC6E7BF272FD3CE83D2EA598B9714147AA5B3F8D2398833DE8EB0FE07 + 75737785A8A2CA0C0AF26A48617A30AE3C116FC0F21278B0B1B2C0AC5C89DE91 + 5934768F202DFCE886BA4AD13B3318F7A09A146584609962DF6F2D0353F82E99 + 315E0F4B2770D5DF635DFE80AB0BAA2AABCD60ECFD2A5294198A6B4FC5D82CFC + 7C3CF1E173271E5FF7378C4785E4BA784C2FCB50185486AFE21633C8BF2722C2 + DB61902BD93770FD500D68BD16279C839153508BF80017DCE948C384850456B6 + 96B09CDF8950AB5824C72599C098BBE506301C49CFD83B145331B0B6E122C423 + 16A3ADFBA1DC27C2303D007B975DD0133D147314C88425BA52074D60746E1911 + 6685E3A782BDC323050EF039E68DDECE7EE814D6B071207074DB039D9E8656AF + C1ECC802762F3AA121A5CD044665BF25C29C48A43CAF63053F5197709CE70B4A + 4D41363E0507E7554C8BC9A169D82ED823C22E1E09B102131899F58608B3A330 + B7AC65057D0B1DC1F3F733CE913640CCCA60233F46313FB3D0AC52CB7973B930 + 9F3611B74A0C1D4623B5A0FEBF1D060606AC61CC3A2C9162422A9B56A9173C18 + CCF857AD82E119AF48516E0C6696D80F8193C54EB8702EF84F67269452ABF0AD + AD1BAA6565FE58A63C7D1D78F1A69014E6F231B3C80E9E2A71425870D85F1D9A + BA64D08EB62E03AAE08F65FE2A5903C3D28B363D6DFA6D0BA0D831FE9F2CD118 + 5EE68F67C8CB18EB37A0FFEBE801B2F1540000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002F34944415478DA85D4694814 + 611C06F06776CD35D42C3AA0482C30BBA84F51F43D91E8435922DE9A5A2A8874 + 98B699BA18B9D9A17490C76E968AA26EE699192592859186A105625E95A8ABAE + 6EE96EB3ADAE6F73642BF6323D30CC0C2FFCF8BFCF0C2F430801C330A025F656 + 1D8144B8C537D3B396C33A95BF4978E72D2930E6460DC94B3C0AEB3CA16168E9 + 1C4475EBA736A3D9EAC3A3FF054F673D21F949BE60E716A8EB332616DD83E3D0 + 3577B533ACE5487E7AA041123C75AD8A14241F47FCEDC67FD6B2627DE0AC9063 + DC6846F780807E2C48F6DD2B094665EA8846E98759D6465D7FDB33820F7D7AE1 + B97FF01BB44A3F4600E3B2EBA9E55B59169A4BFE48B8D308A9781FD881BAE6F7 + 7890E22F82B1376BA9E5C7AA2BA0BD1C00A3795E12345BE6A0CAAD45616A8008 + C65CAFA6961FA72EE7C0209CB92B3D615AA4379272747894162482FCD7A4953F + 6B34429B1A842993F4847C92732A51A40A16C168F5636AF9F1EA3268D34370EE + DE33494C197E08CAEC0A1467848A60D4D54A422BFFBB6112DAB4304CCECEE165 + E718324BBB306FA3FF93AB143674694E8860E49572422B3F415DC24D188E0BB9 + 4D18362C60C0E0847DFB0FC249E108B98C815C2E83037797715755750D868A8F + 8960444619A1953FADD743A38A807EC62ABC6B1A3EA3A17D828A56D7D6DAC170 + 5529A1957F565D84025524F43F44D062B5E164D66BB8AEDD0CCF6D5E22F807AD + AFAFB3836169258456BE6174E4EFB38D30E89D76C3CA351ED8BE6B8F30150F2D + A28D8D0D763024B5882C964F0BCB4D9698D7815193029E5EBBE120E77B9361F8 + CB003CB66C15B6FFBCE9A91D0C4E794816CBA7E55DDF3C6C8E1BE0E1B9939B4C + 9C6AA8BF07E36323A32E2E2E9BF84E5FB5BCB08341CA42B2B4FCE509CD6C05E3 + EA8E75EB3742C64D373CD80BC3C468DB4FCB9C8FB3D38A5467679724B3D964E5 + 408500065ED492A5E52FCFB891C5F9FB1D7058ED0ED6348369C398804DEAC493 + DA23A42A9A3BB3AC5F4B7C8B053020592379D4F3F96593A367CA0D8EF2056E27 + 705DC49686B77E031E9FBCE8D916B67A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002EF4944415478DA85D47D4813 + 611C07F0EF6E99CA7C21AA3F8ACA227BA7FE8AA2FF138988B444CCB7E9D4F28F + 88885256A9CBC212497B114CB724C52C5DE66BCB2891DE4C2CB46D9A58BA7C41 + E7CB9AA5DBEE9C3BAFDB96E9E175FDE0B8E778EE3E7CEF77CF3D228661201289 + C057C937EB1808143BF9CE3C4D1D522BC22DAE6BA725049ECAA961EE9D3F0ABB + 83E1C3D0DC6E40F59BCE9649AB3DD889FE173C99FD94294C0905393BC73B3F65 + 21A1338C41DDA46D1391D4E1C28C13264130E9461553947A0CA76F6B96CC6527 + 0743E229C6D8A415BA3E17AA2F4A0DDD23082664A919A53C0CD324CD3BFFA17B + 181DDF465DE35EC32054F230910B2C2E2EE16DFE7BA3379417C371E68E064215 + B47F3BEA9A3EE1FEA5F00550269382A6B94992B2D4505D8EC0A4D52108DAA859 + 6414D4A2382D820B3A1CDC0713B32A59301267EF0A274C970521254F8D07E991 + 5C50ABD5736ECCADD6419516891F16E184CE4ACDAB4489228A0BDAED766EC26B + 15506544E35CFE73414C2E3D08796E054A33638413E63C69872A3D1613D3B378 + D56E44D6432D1C34FF9AF4F3A4A1551E5F00E3E36341CDCC70135E7DC42694E2 + 424123864C73E8337961EFBE03F0F25C0E312182584C60197B26D8A3AABA06DF + 4B43B8A04ED7C901B31F7F84521187D129772B940D5FD1D036CE8B56D7D672C1 + B8B8189014C54D98598E22850CA3BFDC2065A7119FFD16BE2BD72170CB5637F8 + 07ADAFAF5B0AEAF55D1CF07A79EBDF31CD88D063F687F78A006CDBB9DB95CA09 + CDA31A4D0317944AA3612349DE8693333492F33B3038ED8DCD5B77C143ECEC1B + 81A1FE3E046CDCE47AFD178DCFB8606C6C14BABABA794145951103163F0404EE + 609311AE8FD0DFDB8D31E3F0888F8FCF5A674F5F37BFE482312C68B3D978C123 + 575A414BD663D5EA3520D87443861E98C6475AD85F2E58E2E5912691F8A458AD + 163B0B7A2E803191B0FE031C315348B8F51984FF06909629984D461736A176EF + D401D155890C43500365216582BBCDE2FA491128D34AD8053C872FA38CEF3CB6 + B89CD66F4985BFE8FB33C8E80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation needs user interaction' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001F24944415478DA63FCFFFF3F + 033501E3E03730A37713554D644CEFDEF07F46893FC3AF3F949B9B3761130363 + 5AE7BAFF33CB0219BEFFFA4794A66FDF7F301C3E7581E1F3E7AF0C4282FC0CB6 + 66060CACAC2C60B982091B191853DAD7FC9F5D11CC10513E1BAF41739A92189E + BE78CD50DA3491E1D7AFDF0C4AF2D20C37EE3C641016E06398D852C2C0C7CBCD + 50D8BF818131B975D5FFD955A10C9FBEFF25E8BACE290B188E015D37BDAB9A41 + 4A4294E1F0C9F30C9D93E7336426843178BBD83014F7AF63604C6C5EF17F4E75 + 384354057E174EAB4B64387EE612C3878F9F193C9DADC162B316AF65D8BAFB10 + 437D69068391AE264349FF5A06C684A66540032319DE7FFB4374E08392DAA4D9 + 4B190E1C3DCD10E4E3C2101BEA0B162FED5FCDC018DFB0E4FF9CDA288698CA39 + 780D99589D00671F057AB57FC64286E4E860064F175BB87879FF2A06C6D8BAC5 + FFE7D44533BCF9FC9B6817EEDA7F9461FB9E430C7D2D150C8C8C8C70F10A9081 + 31350BFFCFA98F6588AFC6746177793C56039FBF7CCD70F5C66D06673B4B1403 + ABFA5730304655CF071A18C7F0F213F12E9CBF740DC3BE83C718BA9A2A182425 + C4E0E2D5FDCB1918232BE7FE9F5D9F0034F017D106FEFDFB97E1D5EBB7288681 + 404DFF3206466082FE3FAB2189E1C547E20DC405EAFA9730308697CDA26EE130 + F8CB436A1B0800E261D14684B5C5890000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation has some error' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003474944415478DA8D95CF4F13 + 4114C7DFEC6E6D29BBA560D4D6A45A81A098103458E01F00046210B97029152F + A23713C178E36604138FC245440E7269100D20F00F00D5A021112188D5261635 + 02B24BF9D1DD1DDF2CFD498AF29269363B9DCF7CBFF3DEBC2590213A018413A2 + D84038682494940101A73141218CBF019DD2E11F8A328CFF53F7AF25FB5FF448 + D62B84F08F8F1252E0E038B0E330C7E67670ACEB3AACE0F84DE9674AB53B6D72 + E4754620EEC63925E9819540C77941803C04FD2B5611FA51552142A12B2CCBF7 + 71BD9E06EC95A487768E7494224C20040E132AA5F001A1EB3AEDBA29CBF71240 + 845DCD223074C964326082D30926970BB60301A0B828CD12CE5B3C1E888642A0 + 86C306F46D340A0AD51A6ECB91578425C06993162EF07C7E0EDA141C0EC89F9E + 01929D0DCAD8187CBFD10A14171830DCF0E4D33E106B6B816E6EC2724539A82B + 2BF007EDBFD7B4E5F0867C96F488E2353BCFF94BD02A0B6B4525B84746128A94 + F171085DF719CFAE67FD20D6D424E682F5F510999E329EE798754D6F22BD36F1 + 45212F341F8F2581593AF57C00245491804E4E1AD6A5EAEAC43B19D57F6BF126 + 8EE427AA5CD2D44182E7B7506A128A2C298960D6DCA8C696A226353650751055 + C78F82C5364B50545D4485925C260822B72FB30C5AC0945655A5C3262660D9D7 + 92066381C50EEF545531801779FE40604E8A4D033839014B5E6F46E0ACA62986 + E562812F32A700398415F6F783BDE67246CBEBE36F60C9E7033D05BA83C07955 + 5B3492E2E2F8E6DC94A4140D0C406E6D5D128036D97E395549B56B63A3B0E84D + 26650D9312D2B541A36C442C1B37CF1B13B6CA4A2819194D2E44359F7C7B6573 + 0E55E7A6A89EABAF838DA9BDB2096A1A28AC6CE2858DC0FC2C9471040BDB3313 + 000E0B7B1555CCB7B626ACB1A328EEEB833C54AF636107CA3DB08B85BD852A83 + F1C2667F642ACD1CF19F46DB2C3966BC7A16B7DBD83DD3D5632EB68341D8C1AB + C792F115EDEE5268C4FBFC3291891E49EAC64E73D719831E26182C8C30EC388F + DA64B9DDD8303ED9196B5F266C5FC7106AF90F9415F22F84450F6A5FF178228A + 4D1C47BAB300CE58596761DD2736A7C640111C5B005F749DB6DF52147FDA9164 + DA9D25CA8160F609004A2EA67D02089D452DFEB0A20C7566F804FC052EC1804A + B724AE3B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation needs user interaction 2' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002BD4944415478DACD945B4893 + 611CC69FF74A2B2B91489D5333BA11C24090D0CE072B2B4FA9D8A6DB348F4979 + C8B35B53527326DBB759E174539BCA3C2D4F8CC2BA3028096281256682175266 + 1A416A913A9D5FFB3EC18BC240D885CFCDFFE57D9EF7C77B26344DC396225B1F + 982AEFB32991A454F5D0EA9C50985736E6CA1E36219117823D4E8EFF85A52BFB + 40922BBBE8DABC702C9857370C9EE3DD445D5511F6715DFFE97FD67A7FBD662A + 7B41122B0CB4A62002BF962C58322F636C7C02B3F33FE1CE71819707871D18C4 + 4F87FA5E21ECEDEDB06CCD7039CEEB50C67BAAAF66DB59540F48427907AD298A + C2D0C74F90C81EE0809707B6D9D9E1EDF0282E9C0A40624C382EC7A6C3D7C71B + 935333B0582C7072DC8DD2823438ECD8CE7AC696356036D505125FDA466BC5D1 + A8AC69C5AE9D0EE05D09624DD3BB0F9055D7C3502F47A83003470FFB22274D08 + CBEA2A4AE5B5E0B8EC458A3092F57A9B54EC981CEA3148DC1DBD15C8C38FDF2B + 305B9733F179CA3A93690C8F8EE3C5E01B74EB540817654059960F4FF7B52D30 + 0D8DA0B6A9131A4509EB311946B9542788A8A485D6DEE6C3386082FA513BDC5C + 9DB1DF930B27EB89EA0D46181A95888CCF44437519BB0246CC3E4BEEAAD0D940 + B11E9361944F758008A4CDB4561A8388A44244869C47E0C923ACF97E640CE50A + 35DAEB2944276441569C6D3D242EEBBD7C6D82A1AF1FAA0A31EB311946050C30 + 56A2A3B5C502F0D2A4F0F3F541D8A540CC7CFB8E5A5D1B26BF7C85AEA60AA2EB + B93874D01B37920458585C4485A206C7FCFDD82C3F290B7ACD1AB0886A03E18B + 1BAD40210687C661E87982D9B979B859AF4C70D059741BFB11157691059C3EEE + 8FE703AFB0BCBC82332702C08B0C06210482E45B68AE53B04031D50AC22BACA7 + 35C5719899376FFA998952B3A153CBD7AB84D2835CCDD7D07525D7303DB779E0 + DF92522D20D17975B6FD1CB6FE7F686BE01F135C2E55ACBF7E4D000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Suspend background-queued operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000CD4944415478DA63FCFFFF3F + 033501E3D033503176E371A0A80598F39FF1C483250196C8F20A311B50E4EF2F + F6B7C46F60DC86FFEA06B660F6CD0B87191E2C0E64443130763D8AFCFD45018C + A3066233D006AAE1080E0311F24419A8AC650666DFBD760AAB81C8F2441928AF + AA0F663FBC7D11AB81C8F2441928A5A009663F7B701DAB81C8F244192826AD04 + 66BF7A7A0FAB81C8F244192824260366BF7BF504AB81C8F24419C827280A667F + 7AFF1AAB81C8F24419C8C5CD0F667FFBFA11AB81C8F2840DA476E1402918FC06 + 0200BC88FFD9BFE700480000000049454E44AE426082} + end> + Left = 32 + Top = 152 + Bitmap = {} + end + object ButtonImages: TImageList + Height = 20 + Width = 20 + Left = 32 + Top = 224 + Bitmap = { + 494C0101020060006C0014001400FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000500000001400000001002000000000000019 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A0A0A000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000A0A0A000A0A0A000A0A0A0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0 + A000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000050000000140000000100010000000000F00000000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFFFF00000000000000FFFFFFFF + FF00000000000000FFFFFFFFFF00000000000000FFFFFFFFFF00000000000000 + FFFFFFFFFF00000000000000FFFFFFFFFF00000000000000FFFFFFFFFF000000 + 00000000FFDFFFFDFF00000000000000FF8FFFF8FF00000000000000FF07FFF0 + 7F00000000000000FE03FFE03F00000000000000FC01FFC01F00000000000000 + F800FF800F00000000000000FFFFFFFFFF00000000000000FFFFFFFFFF000000 + 00000000FFFFFFFFFF00000000000000FFFFFFFFFF00000000000000FFFFFFFF + FF00000000000000FFFFFFFFFF00000000000000FFFFFFFFFF00000000000000 + 00000000000000000000000000000000000000000000} + end + object LogImages: TPngImageList + Height = 20 + Width = 20 + PngImages = < + item + Background = clWindow + Name = 'Clear log' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A44944415478DAAD944D6C1B + 4514C7DFECECDAD98FB1E21A5B4ED224951AB569222292501B477C238444C585 + 4ADCAA5602516AA77041DC90E084B8429AA620DA03420881D453814085846A8C + 4AFA199AA61F28A131ADE3A4761BCFAED7BBDE0F66378D216D4239744EBBEFCD + FC66DEFFFF6690EBBAF02007F2800821FFE73D002EA6284F2CA8EA49F65DBBDF + E203B21CE7317AC5AAA8873300AACF5A017AB016420E0782C26ED330B305AA3E + C762E67AB043A2D801023E118D463A1617CA398BD217D2AEABFAC0F711F26191 + 48F3EE546A00CE9F9F867CBE70AC40E9CB6B414714A55740E8E7FEFEDE486767 + 1BE472A760A158DAFF3AA5233E702CA4EC690E858E3C991A04CC63701D074E9E + FE1D8A0BA5CF19740F833A8D32893814E084EF1FEDEF252DF118E4AFCFC39973 + 53D74DDB490C6BDA0D1F38AA288F04789CDDDEB74D8E4723FE4287417F393D09 + E55B958FF6AAEA5B7E992169078F85AF127D3D72341286E2CD32FC76EE62C970 + 9CA78655756A95868724690030FEA1BF7B73A43D1EF5A1B66D43F6EC14DCA6DA + BB2EE7CE36F1C291E4C3DD423844E0D61285DCE445CD30AD6732D5EA84377F15 + D01BA324B81523E1C79ECE8DED9B5BE37ECCAC5B90BD70091CDB76933D5B1091 + 44A0551D4E4C4ED74DCB7E31AD69C757E4B807D8708FC7DF76B5C47ABB37B6F8 + 31DD5CF6450C04A05A33203B7DD5AD59CECE7D941EFDB7596B027D28210FB1D0 + B1F60DCD89BE3676D23B79C33BED1FB35035ADD7DEA0F4B3BBDD5F17C85CE5BD + 360A4B4DBB921D6D8039CE8F2FE935F8F55ADE301CEBD90CD573FF0BC8600106 + FB26268B2F0DB0B6E058CE7696BBC60397987E138522351C37E539FB9FC00300 + 0A4F94EF5A65E9F13ED6165EDCCB9F5A2C31A80B83B108080C5A64D0338BE592 + 5DAF27D2B5DACC9A404F37F637BE89B5CFB690B2AC1BCB9DBD5D81F95AED6BD7 + 45D78880DF4E6E084300739067D00B4B95398B999FD1B4F955C011596E0D60FC + 5397D4B4B54B921A254CA91AE48DDAF14245DDE15D41B6E93B22E63E4CB23E6C + C21866751D2E6B5556367A7A2FA5371BC04F08190E0BFCC709F91FD855D61E33 + 86E95F7AEF2559898F11F26A10C1A7DB6509290C7A85CD9BBD33AFF1388C22C4 + B423E39B783CB44510E04FCB822BF57A63E7BBDD3CA8283B05045F0E06834233 + D37482F569D9B2336CEE6843C36543C87884434325D799332D27B5BF5ABDB1DE + F33526CBCF0B983BDAC671F29C6D2F5A75EBB17DBA3E738FCB98908C69595FBC + A9EB7FC17DC641514C703C9FB6C1FC204D8DCB0D0D1FE4F81B8DF1F2E875364C + 650000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Copy log entries-console window output' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002434944415478DA8D94DD4F52 + 611CC7BF676DD9D6FFD09FC07DB5BA6DAE8B263382838991BD5D74D30B7078F3 + 0C72666B70091E0E84A588529AB96E6ACEB2965B7391D8CB45C69CAB0D26460A + 0403EB090F1BEBE0B3C7BE1767673BBFDFE7F9EE7C760E4708C115DF0C0123F5 + 87AF7F142AED09515764CED559DCCEE5F2DD6912BC710AD56D4283E1D5D22A12 + 73A937F952F5040BDA045EBA3345862C1D28D7FE5007B78A657C5C5DC7F8F3F7 + 8B2897DB2591CF31811707278964D5E2BAF462D790C7740C07DBF6219B2F29D0 + F8B3E472C8A6D53081BD030F4948E844A1FC9BDA30B992C5C2A76FCAFD4A7A0D + 61FB698E093CDF3F4142761D6E86D40D7F150B2C07BB643581666F9CC84E3DF2 + A56DD58223F8142C5973EFD2989AFFD094D504F6786275200FABAC6E58FC99C7 + 5EB252E92C12B34B6FB972E5E4509F21A7004DE228915D3C368AEA86EEE00CFE + 4756EAAB025D96AC1D1A05D8ED7E40E4BE2E08E197AAA5CD8D1C58B2163E7F47 + F24BA6294B163A3905D8E51A26B2BB1BEB859A6A410C3C064D566B8E6B0EE1C9 + EC22C20E5D036874DCAB3734C1199D570DE6B319D064B5A654A9D50F9F46C4A5 + 6F0079214242620F325B55D5A03730099AACD6580D4761F1271075F30DA0C126 + 13493423B3A906DE0A3C024D1615EA9FC0B0686C00F5D610F56FB3BFED0068B2 + 5A734D7704826F1CF73D671B408EA37E49303AA35459B408FE318C784D6C206F + 8F5065B5E6AAF6301CFE1846FBCFB181065B982A8B16972F86D880990DDC79B7 + 3459B4B8FD2318BBDDCB069EB148644FD23F890F5EE0FE02E4668BE8D3E7006D + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select all log entries' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002434944415478DA63FCFFFF3F + 03350123C8C088F2D954317545672A23DCC085AD291419165F3D07D5C0052DC9 + 141998503317D5C0F968067EFDFE9361DD9EB30C976E3D6178FBE10B584C889F + 9B4157558621C4CD84819B931D457D22BA81F39A1106FEFAFD97A16DF6668647 + CFDF62758DA4A80043537620033333135C2CA916CDC0B94D08030F9CBEC1B078 + F351305B5F5D8EC1DA5015ECE2CD072E30BCFB08716D458A0F83AA9C385C4F72 + 1D9A81731A93E0928F5EBC63B87EEF19C3B3571F18627D2C19585898C1E2FB4F + 5D6758BAF538989D16EAC860A6A308D793523F0FD5C05948062283BF7FFF313C + 7DF59EE1E683E70C272FDE85074372B03D83B99E325C5D1ABA81331B500DBC71 + FF39C39EE357186E005DFAFBCF5F0C8B9282500D4C6F403370463DC2C05397EF + 32CC5B7710CC66057A5743518A415D5192E1FB8F5F0C5B0F5D807831D891C104 + C9CB198D68064EAF4F844B364FDF000CBFF760C3EAB38318840578C0E2C7CEDF + 6658BCE908D4CB0E28066636CE4735705A1DC2C0ECE6050C20717E5E2E86B682 + 7006464688F8FCF507194E5FBE074977402F9BEA28C1F56435A11938B5166160 + D3F4750C2FDF7C04B3AD0CD518B45564182EDE7CC470EAD21DB89A082F2B065B + 63752447A0193805C9C0D357EE312C5C7F102322F435E4192EDE7808669BEBAB + 30C4FAD9C2E572D00D9C5C9380A219940E0F9DB9CEF00E98ED440479194C7595 + 190C8006EE3C7289E1FBCF5F0C1C6CAC0C1EB6FA70F5B92D0B500D9C589DC040 + 09C86F4533704215650616B4A119489169500037909A00004AD749E85EF3442B + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Display preferences window' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004724944415478DA8D546B5054 + 65187ECE2EEC9E65592E0B044BE2858B601803C5188C34522225D6B848748192 + ED3A6A390538E394D93845303A013398501ACD02EAA416CB74D11F6AA3604419 + 0992AEC465613194CBB2C02E7BBFF49E3366C3E8A067E6CC7C67BEEF3CDFFB5C + DE97C13D9E5C55A99A018A68E9F1C25BAF5157BDB5D07966A14DA5EABDA000A9 + CCF875CD1EB85C6E146DDFED1A738CC9CEA9D5B6FB01146C2A2AF91C0C9343EB + DD70B9CF40282C5D9F95519ABF711D7D7A505DD7842B7F0F7CE2B633353E626F + 2E0366971738A25157EEBA0390C06AB3D6A46D2DC85B8F438735E8EAB986570B + 94484E5C0EBBD305BBC38529E3345A7FED44C7C56EB75C1E2C7C342509BF7776 + 61D23055FE1FE8FF80AA5243536D997CCE6A8754C2F23B165A5FEDD3E3C6B891 + 28BB40FC11209362C2300D815008BBDD819B631368BDD0AE6F56572D990798AB + 2A29C9599B515990978319D31C86FF19477BA7168B1F7C0041323F384943C3B4 + 0966B31521F200783C1ED808F07C5B3B8CD3D36FB43454D7CFAFB070FBA240B9 + 7CE4C0BEF7D1ADD5E1CFBF06F0447A129C4497FBD14AAFCDEE84D566C79CC50E + AFD783A91913DA5A2FB8DD2E73A4A6E98BF1DB80992A151BEC0D292FDDF67271 + 5CCC3234359FC5862757C1E170A2B77F08977AB4549117B1B42793F9939E4E04 + 127583D104AD568B419DBE6C8A317CCAB9CF90768D62916F616ACA4A81EAC567 + D1D33B0CE38C19D15111D0F6E9705C73F206DDB99332C83210543C9E91162291 + F8213C3488AA044CB3B3F8ED8F2E8C4F4E3A3D6E4F2307E83D76682F2C3C151B + 7E6EEF4694220CACD817C734A730383CF25C4B43D577B7747E2D3242519F929C + 84E0407F8404C9486F0BFCA52C99254145D5410F0F78F4CB0A98E62C983559D1 + 71E91A22E876A18F102D3F9E865E7F7D537363B5E656125E5128221A1F4B7D04 + 72020B2573383632A9044174C147E53520C0926FFDA5D2BC952BE2F0F4DAD5D0 + 8F1AE0703AE147D119D0E971E65CDB1051DB21F0C2C7CB30D5ABD35729164546 + 60595438DCA4ABC56AC1F95F2EA27F7018369BE3086F4AEEE6B7432060CBD6AD + 49DF92F8503C4646278886847777487F1DBA213D048C0031D14BC18189595FA4 + 2527A07F7814DD97AFE26C6BC7670EA7B5FCA7A375C6DBB1D950501C2DF3170F + 143EAFA4CC79A8038159B38562E2800F8558E4EBC3BF1C58EAC371189B9CE6C7 + C5BEFDF530BB4C8A93EADA9BF372A82C2AD9AA080FABCDCECAE43B402010F03A + 71DDC265514C2685C903896A04C9324E7A5B78A70F9FF801BD7DBACDCDEACAA6 + F99D52543AB1F199EC50966579AAE6391B4F9B3388EB0CB148C46BCB552CA12A + 2562319F53B148880FCBF7DFD97A341CBE22075F8F8F8F4577F715AAC08484E5 + B15891100B3F3F0958912F44E47CBF6E98372191CEBDA0CCC689EF4FD380B85C + D7DC50B5ED6EE3EB2089A7A43EDD03C6758A61443B62962EDE92939DC9E7928B + 51DFA0BEDA63F7560B58E4D3F8FA80D27D9CC0DEE106F03D07EC53F9C5F2E060 + D6B0F3DD37C910213EDE7BC033E61E97DEEF80BDEB4361E642ADE4D6D469DFD0 + DC7B69A1F3FF0258A409FFF54527050000000049454E44AE426082} + end> + Left = 32 + Top = 296 + Bitmap = {} + end + object DialogImages: TPngImageList + Height = 40 + Width = 40 + PngImages = < + item + Background = clWindow + Name = 'Keep remote directory up to date' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000069D4944415478DA + CD977B4C53571CC7BFA7BD6D295028589D0A56141015954D9D0605C538DDF081 + 2271C63FB66559A2C9742E9B31C6C52C6C6171738BD94CF6701B6CC6B9E1DBE8 + 145FE06BCAA26C71CC8A2808541EE203A1A5B4B4F7F6EEB4406DB9F7D256C9F4 + 9734E7774FCF39F7737FBFDF39F77B099E71234F1B2028C0C3B943753C232FA2 + DD937D87F16584E53217E636DE7F6A805D70CC19FD8494E4F82953BCE1602C2F + 47F5A54B06C2B219FF37A407F0D027FA32FDF80993E25FF40E1EEFF1DC9097FF + F2BBA093CEA9221C2A08672C86BD882764105DA71D3C7F8F07B9C1813DDDF081 + F946EF794373A3F44A1539415D53ED86164F841E01E6E9F9596FBD210A47BCFC + DEFFF5F8F7AD1DD8F6CFDF385A53059B824758A41AAA101594214A80A3E0AC13 + 1D662BDA1E9AC13A1C57E0E4B7D6DA5BB72317CEB8DCB0C150294BC7258F8BBB + 6A3080021251C0F4A5F3456F2E34DECB73A2A0B212F937AF43A953433B380221 + 6A15E484012393BB5BB9A765202332985BCCA8ABA9476BCBC3720ECE7532C8B7 + 8C4F4E4E1E9D381A7B0FEE93060CB63E3A29DE2F321B2A23E5D0C56BDD116388 + DC0DE20B2617056E6E6A86C15081A451A3E08293D3B9BB0FEC91065CB8A12C60 + 3887D381E5BFBD8E4AFB7544E923606BB5A3D36487C3C6827782A65681504D28 + 7483A2A1D16824613996835A15EAE92FDC5F280DB860FD1958EE6FEF23CD8FFC + 0F2F94E0F8831A28C39468BF63C14BB12330337638864744228491E3D881DFF1 + 3DB16E0621CBA3076A87258C4940983AD41D5DB128F700EFDCB7531A70FEBA23 + B0B614FA05746D840DA5672057CA3129621072A7A521265CE333A6247F17B236 + 1A09DD04CA3865D4FB8C92F93865E204856E80CE9D4A37A8A046E5D8B1678734 + E0BCB5BB69AAF60BE1785FD0D97B0A71CF6E45F688447C342D952E42040F535C + B0AF0BB0DBF47951698C8A39969A3A252C4A1BED1545DF76FBEE9FFB007CAF00 + 9D6D47FB4CADCBDF78E1223A58169FA54F874226131D535C70C8077068AE46A7 + 5031A5C9C9631312E31304BBBB07B86057BE3460E6BB5FC16E3E1D500D4AF93D + 67E6A982A31EC0AE431867C78C1D1397189F28BEABBBA3F863E10FD280AFACCE + 83A3A3D4F766FCE3819EFAE9841B306E93368EAE748EC20D4BA09113ABBB9ED6 + 552A7D03BEBD0EACB53C08A0BE004BB08635AA795574554ACAB818BD7EB868DD + 31DD2D215DA5D227E0CC9C1CD84D15109AFF374AEF31A5272BDD8050455FA197 + 4908DCFEA480A9A280F3D66C02CF9910ECEB4EACBFE8EBCF7D36C9E39A0FE0F4 + CC89F4A56EF60B410280BE78F256FF0366AE5A1B40B4C4E11CB60E5C3E7C106D + 779B7BCF7D22B1EB0538EC2CBD9CF1244F4BC52EFA5BECF6CB37497F895D2FFB + 8396477AFF013EA1D8EDED97E4FFEAA9DF7E037C1CB12BF0BB2FCFEF3D210E98 + 0BC8B461610303056BB5581ED039ECE3885D7F260AB84D135E4E55F178F187F6 + 56365D8EDDEEA8E7CDED4943F2F49660C4AE3F3BBC69B204608486CF7E7541D7 + 8593A787364BE3C381A73F70DD2D55313CF5AB6F37E29AB1B1B6C9644E9A98A7 + EF0C46ECFAABCB92FC9D7E0079DE0D210967A470750D95F47AEE4AABD5188CD8 + 0DC4F7885D49400F102788A2A1BA0ED50D770C746AC64AB3D97DAE052376A523 + 292E76858039F3BAA3C70AA278B3B61E15C6862ABA566A0F9C075042EC3A1D1C + 4EAF380E55940A695B660514456FB12B005C9CFDB2646A2DED169CFFB7D241BF + E8B2579A3A8E78038A895D17DCC5F5E7D174B4168AD8702C3EB524A0DAF416BB + 42C0AC39A2705DE9E6D0DA66C6E5EA3ABE9363F35853FBE65540BB98D86DAB6C + C1A5BC32B065F760A1353D756B3AF4738605548B3D62571C70FEEC3E77AFABBF + B3B313154D7751DF46D34C50A85D18BE7AEAB26554EC56C3546346C3B9463CB8 + 700723E50CEED339BAD7123079C30B0846EC4A022ECACCF0C075D094AA150A41 + 143DFFDB6C68A663DA6C76D89D9CFB680A951144138201F47E063A8F1B1F8EE9 + 9F8E858C910504E73297D895069C3BC37DF36B376EA1A6B119C9FA18E8076869 + 249D8F368F4F64BDA159777FBBDD81AB0E07748B5290FEC552C814F23EE084FD + DE62570098353BCD0D57656C30384156D2E7DE1C191A322D61E0003C17A67683 + 4A1D43160A564BD37F8F0E1BF3662C46660D1220042B760580A368C46ED4D5FB + 9C73DF8687E7D0CCBDC3C86433A3D521D02A9560E8820ABAA68D46CD4A7F0F68 + C4C89048242C791EE356A4411911E2379582FEEEA6E89B2FC501BFD384171342 + 22E8C04CEF73AEC7BE55AB63E8977A06FD3C1C4D276AC19348DADDA4991192A3 + 8A53C42B8630E81FE3CF656DBC3D5300F82CDA330FF81FBF9424653660AE2A00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open console window' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000002CE4944415478DA + EDD86B48536118C0F1E7E0966DC3122B2F25BAE634DB9A5A96A18D842008FA64 + 90204E30B2601042445FBA6AB54C17E24029228870ABCCBC454692ADCC425057 + 9A6826665356EABCB4DAC5ACE474B6F0E483A33E9DBD23FCC3D87979DE033F78 + B7C10E057E1E451AB004F409303AA7564F01954D1AB3301A68C370E53E950728 + CEA9A3D789379236A13E9ADF82B93283628102E10AD226D48CEB2B069206798B + 0546AEDF406FDBB997B407D5F1BC112C1FDEFD0126EFD843DA8432BD7C84819B + 53779336A15EB73DC6C0C4945DA44DA8EE7623062AB6A69336A17A3A5B3050BE + 4549DA84EA7DF50203E31353499B50FDDD6D1818A748216D420DF4B463A05496 + 4CDA841AEC3361A0243E89B40935D4DF8581E238056913CA3CD08381513132D2 + 26D4C8FB3E0C645EA44D280687816BA3A4ECF07A851604020168CBAE40D79B5E + 22C04F238318181E29618737AFE940161F0B344D434DC34328BF7A039C2E974F + 816396210C0C8D8866877C1E0FF20E6443AE2A1378CCF5B875028A4B2BA0A5B5 + CD6740EBE83006AE0E8B5CB4492A11C39913C74021FFFD77E0C9D356B8A8D5C1 + F4671BE7C0C9710B0686AC89F0BA9162B664656640BE3ACFF3B9B43B1C50525A + 0EF71B9B38054E4F8C62E0CA90D0BFDE101E160A05278F83326DBB675D75AF1E + CE5F2AE50CF865DA8A8141C1ABFE093CCB00D395699EF59DEA3A3857749933A0 + DD368581A2A060AF1BDD47ACCADA0F47F3D520741FB1DD0145DA32A86D78C019 + CE9DD36EC340812868D1A658690C680A4F4152C226CFBAA9D908859A12989C9C + E214E76EC669C7C0C0E54276C8E7F3E188FA101C3E98CB5CF360746C1C0A2F14 + 43B3F119E7B0F966BFB93090BF2C901DD657DF820485DCF3436DB87D97F9D6EA + C0E170FA0CE7EEC7F7590C0C08E0B1C39A2A3D884442385DA0818E4E934F61F3 + CDCDFDC4408AF2AF075DEED34340D2206F2D04EA9937BF7AFCC66460802AFF3A + 572F2D01FF7BE02F4CCA3E38A26A700F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download File' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000064C4944415478DA + CDD6795013571C07F06F146BA5B5E2285ED82A33566DD53F3AD3EA68AB15050C + 9728622952EA2D54C05B514A385AEB5990430241A1EA68C5D2320E03A3568A3D + 6D67ACF5408210A42020C8158E909090E47537094B365C9B40677C0C1336C9DB + FDCCF7BDDFFBC1C30B3E788399BC47748B0CF2F9BF77A8E1220C7290FD6FC098 + 6D4B6189929EF3DD2FC5B8535C7BBB434D56F4851C12A096581664DE3F156895 + ABF067514D9FC82101AAB59601EF953E87B4AD83427652C867BD228704A8D258 + 06ACAC6B411305EC46563FA0748EA9010E0D4302DC9D924F62031CA0ECD4EAAE + F70AAF739E1BB39D0FB952A503762355B82D7E56D02E932D4BDDE7D13068E0AE + E43C722A70391406A0B963D4886190CA3A58C8161DB2B2302ED071EEA0813B93 + 6E92B8ED8E6857E981A1C9DC133CFE191F926A29F2EEFE0B854ACDFAACB15986 + F82027DEA0813B126F90F86067C8941A8BEFA1526B70BFB40ED58D6DCC7B7F8B + 2B9110B262F0C0E0846B2431848F56851E18967AC3E27B85FA2D45657D2BD41A + 2D326F3DC4E91D2E6CA0255D41A990E3F44E5734CB2D4FD078D00085B213472E + E42369975B4FA0B95D21F8542E9276BB412AD7EF21C1991F2DC67DB9D599F93B + 5C7403C23DEEBD03CDE90A41A77290BCC7038DED6ACE73B88C70D135A4EC5DD9 + 3BD09CAE101C9B8D947D9E6890E9815169962718B5D928C1945C88F6AFEA1D68 + 4E570889B90AD181D5A86BED1CD204052939480DF562032DE90A4A8582BAD11A + 3C37000F9FBBC909A0851AF75442346B4B317F642846F3EC10BEC1A91B989C8D + B387BCD9404BBA42C8D759483DE84D01559CE7A8B59D38787D13EEB5FE8657C6 + BF8CCEAAE1107A66C17EECAC6EA0301B69616BD9404BBA82422683E8D0470CF0 + E8F9BC0193BBAB4A40DB6B628C9F31063C1E0F8A66255A4AD5485B9BC3202392 + AE223DDC870DB4A42BEC38910951980F6A5B06DE837472E137B7E07EEBAF18FF + A60D6074A0C9A54A2AC9614874CFC2740A199994856F227CD9404BBAC29DF678 + CC9B698BFD8B1331CACA1A272EFED46F72ED631E63E2CC713A9C966841A8238D + 18A05DC804B72CA47F5B80F3917E6C60505C2E31B72BBC933001B653C66182C6 + 1E275D3274C8DE928BCCDB8287B23F3065D604101E45A270F479AB7B851E6A8C + 9CD11C801FA2F6B381DB637388B95D2157E18F458EF321119751C8E998DA1A08 + 2B8CEC919CC24682D7674FD2654568922E3D3D520FD4BFA7433651FF174A084A + C2CAD9C0C0986C626E5778377122163B2D848668504A216DD5D3718C7F599724 + 9D5C74FE5688E57FE18DB7EC0CE06E0C9D9A9649D080D56A505FDA0CEBFA59B8 + 2BF8990D0C38799598DB15E8043F74FEC0F0200D248565E8ACB5C17B2FEDC5FD + 4E1154639FC07ECEB4EE3D0703A42B411841295C6D4923E6BDFA3E786267641C + D9CA066E3B9E45CCED0A0B8493E0B06289E1E14497A4A4F00964F50A8CB4B1C2 + 8CB9F60C4EB7E74C96B7EB9AC65517D7618EF522442C4BC3578999B87C6C331B + B8E5E8F7C4DCAE4027B89CEF6094069523F55BFDB40613A7DAEA705D093118A3 + E5A5DFD350B8CAA21ABC6DBD100287B3B01A3602D1F1979071DC24C1CD473289 + B95D6151F26438BB2C6712EC06E8B8CC7E33FE9C185DD3B8727115668F5AC0E0 + E8111D7711574E6C6303371DBE42CCE90A5D09F25D9DD8CBD59590694198562F + B51DCA0A2BC0ABB1C34C993F0519CEBA770FE0C62F2E13AE5DA16B2C499D0C57 + 373E6BB31393C48C8B8349944A4EF2A80CD28696DC0AA5D40B51E873D918E0FA + E84B2435CC9702EABFDB5757304DD0DDDD95B59C032DAF9AC2951494A2A95E3A + 208E05FC34F222117DBE8E0172190E67A760A5878751759A16046115108D2B7A + 508CC6FA264E3816D05F7081A408FC98258EBDC42DC1D59E9EECB3AD8F82A05F + 2B9F564352F444A651AAA75545B53671098101FA859F23A2707FB312744CB7C3 + 9A555E7DB62ED3F38E3E271F3F2A414D75ED6DB952BAA23E0AB2819EC100D785 + A55309AE6780F119F99C125CBBDABBBB1BF456102605A4A17E8A0A8A392319A0 + EFC134921CB1DEAC2AE69FB3838F974FBFE75D6F05441F31E282C79C900CF0E3 + D0334428D8C074122EC3E5FC54F8AEF1ED511C3D13ED594074C729A290CFAA6B + FA4532409F03A92449B011756DDC81AE14D0CFFB13A362E80DD37701D17B52FC + 884AB2AA26BBFC90D4734020679961148E4E86CCAAC2DC693D072119E56152DF + 7E812FEAF80FDF1B787445E91E920000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000067D4944415478DA + CDD6095054751C07F0EF1A68A686E68167648A803993566A6A9A24EA8A078A1A + A219578A79A6952889A1598E1578052B18860E28283AE6A87990D648E8549EC0 + 022E22082BC8B5082B7BEFBFF7DEEEBEBD58782CDB8CBF9D9D9DB7BBFFF73EF3 + FDFF7FFFF77878CE8BD79EC14949C9A49DD7CF92CB9FCD58B56A95F47F038686 + 0641A3D1D8355E247A80ECEC1BD972B974BA2DA443806A3B81D24629AAAB6B70 + EDDA5F36918E01AAD5768D57289450A9542D221D0254D9090421502A55A6C8BB + 6AB5DC273C3CBCC6B140EA02740985059CC70E1FEE0967676766AC39322B47AD + 567C60403A04A8D403DB5A1D29205D96C8ACACACBCD0D0E0118E032A95CC717E + 7E21E7B15E5E1E367F4B493986B0B0609EC3800A3DD05195EA70A042C11C1714 + DCB7FB5C9E9EC38CC0D4346BE08684ABEDBA2BB8B9BE8C601F2F7474EAD0EE04 + 8FDA02C62C9F0C7B94F498E37F16A2E4710DA67A76835387B64F8C8787BB1178 + 34DD36504BEC0B32F356291A9A9410D736B63BC9632D01D55AFB80B78B9E40D2 + 28A7902A149557B539C961C3861A81C78EDB062A35F601CBAA9EA28E021A900F + 2B250899EA85973A39B5F95C69CD01D71FB84262C3BDA1506999E3CFE32F703E + 61CC4A3E9AA8FB2A0D342295C82F7982E9C35DD0C9C93C49355123E6CE7614D6 + 0BB16DF48F18D4F535B8BB0F3102D34E58033F136492DD2BA640A607B6B53A3B + 7780442A37433EA59045E25AAC9DF326FB3F95568575E796E19FFA2C74E9F522 + D4E20E38EC9F8121AF18B799F4E680EBE22E933D2B7DF04CA9034608B827B8EB + 533E446209326F3E844C69FEE0505B2F45C8045736B95DB7B622577513BD86BA + 80C7E34156AF80BC942065C14916999E9E610D5CBBFF22D9BB7A1AA40AFB9EED + E852AA35B85354C574B2A1FE1596E1DB90094C721BCE87E36F2AB95EEEDD0193 + 0DAD49A2A092E42179DE090679BC39E0EA7DBF91FD6BF86890E9809189175B05 + DD560AA0811C233BAE84133AB1DF472C998CB2EA06EA41568B1357EF2178A22B + 939C507D1BAEC37A32382DD1524F5B04440F35207F997B1CB73273AC81ABF69C + 233FADF3457D13F70447EDEB83DEFD7BA23F791D02EAC49D9DBBB0BFD1979529 + 54D871E4129A5C5370B3E13AFA7BF401E151240A47EFB7CC2774501659CEC3A2 + CECBB0297C93397065EC5912B77E26244DBA351475F052ABC073B2A518EF3306 + 226131D4953D30A6530493E437CBA6E9D61C35ADB3E26743D64384419E7D1934 + A1494C7A3AA40EA8FB8E41D6C9212F26C88D283107AE883943041B66A3F619F7 + A7E377F6BB62E2D471D0100D8A28645F3218717EE94C9234EECBF3A1B8D7781D + AF7A0D60FE6F8AA153D3B209EAB15A0DAA8BEAE1D6E4810B1BFE300786FF709A + 1CF8C20F35521D303A895B82EF4F7B4F7F210D4479C55055764746D8594467AE + 414EE30D0C7EC3CDB8E6A0871812840994C255DEAFC5DB2F8FC344992F968785 + 990397EF3A451236CE435503F7A7E3B1F17DE13D7D92FEE284495294F700CF6A + 64E8E8E284A12306B33866CD594CAFE198C6890BABF056B777B17B46027E3D75 + D6BA493ED999411223E6E3891EB823F932A704A7F0BD4DD2A072A4DEE2471570 + 1DD89BC11912623126D34B7FA7A17065F91518D56D2C62F907A8FBB7334E9D3C + 6D0D0CFBEE0449DCB48002727F3A1E2FE8876933A6B0091A010C975D6FA6BF13 + 93631A57222CC7C8AEA3591C5DCD024377A49384CD1FB2C09D87333925C8F79D + 6A3E5D86842C1BC2B27BA9E5509C578A3E8D03B1D025142F502FD3B202866C3F + 4612220350F994FB1A9C94D80FBE33F9668B9D582466DA1C6CA25472A2DC6248 + 6A9E9E2B5548FC110D9BD3C60283B6A592C4C8400AA8FBEFF729BF734A70D62C + 5FB3E96C6D7AD514EE7E4E11EAAA25ADE2CC801F7F9D4212BE5ACC02B994F7CF + FD3167F66C93EEB46C0862D640342EFF6E216AABEB38E1CC804BA38E9003514B + D8298E4DE596E03C3F3FF3BDCD4643D09F658FC410E53F906A146AB7F2E8863A + 2E21B0C0255B9249C296A56D4AD0E7D000CC9FEB6FF3D665B9DFD1FB6441EE7D + 54882BB39B1492E9D5D190B6760D16B838F2109560100BDC9B768553820BE72D + 30DE0D9A6B088B06D250AFFC9C42CE481618B8298908B606B5A98BF9C90310E0 + 1FD0E27ED75C03D15B8C30A7801392052E8A3848E2A382D93B09979A71782002 + E7075A358775A2D60D44DF71F229E46371458B481618B03191C44585A0AA913B + D097022E59F09149333487B1DD40F49A14E6524996579C29D92CF16B15C859A6 + AFBC6E02489D4ADB3ACCBA08492B899404B6087C5EEB3F7CFC8B74CCFD8C8000 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000005964944415478DA + CDD87D5014651C07F0EF9DDD44EA2839A646A933BEE420A8F56F7F69992F9995 + F8969AA9992F0988F88611A4A66962E02B70778E29A2A5528AC08908E834D3D8 + E42BBE2001921271C8792F709CDCDDDEC2D3EE1D1CBBEC9EDCEED18C3F6096BD + 639FFDCCEF79F6F9DEA0C0735E8A402E5EABB94C02BCFFEF0E1A53D32227D8FE + 3760F2F2F190A364AF39FD5B39AE953FBEE2A0C9645FC86E01B612798D2CBA59 + 0D6B33853FCAEA7C22BB0548B7CA03DE7A500F4B938341BA18A45E14D92D40AA + 451EB0C6D0083303EC40D6DE667413B52B2618BB0518ABBE4452564C80D3D5EA + 3E5F9776C1EF6B93574D41B39372033B9014AEDCD7DF7D6AB3BDA35D3FDD1830 + 704D7A11D9B3F25DD8DB8052EB259512169B83876C74236B4AF7AE9C181E3030 + 26B590EC5D35114F290F302EDDFF0EEEFA720A2A6B2D28BAF110768AE6BD676A + B0615FE47B8A8081AB0F14907D51936073B6C81E83A25B50F2C0805A5393F7B5 + EBF76BB03F7A72E0C0A8FDF9E440F41458ED1E60BCB640F658710BC6A3E68915 + 744B2BB22EDFC1C1D553F94039A9E0B437E360CCFB686896DF416EB100BBD385 + 1DC72E2175CD3421506A2A44EDD12135761A2CCD9E359478E8A26CDCB66593BC + BF27680A90B6F60371A0945488DC9387F4B5D3617A4AFB7D8D3F95A0C9877ADD + 87E24029A910959203F5FA8F60B479805B0ECBEFE096A59C0EAA75D06CF8581C + 282515A293B3A1D9380306ABAB5B3B98A8CE83362E820F94930A4EBB9D196826 + EADB803337E7436F96B769732BB8274189A613504E2A44FF7006DA4DB31820E5 + 3EDFA8BD812A930AA3C3C640A95080F9667E3C47FE79DB6BE0FF4D7BFD7A361B + 8F3267F0817252C16EB341F3D51C2F70DB91225CADA411D4272420A428504E2A + AC4ECA82267E2E1E3776AC413BD58275E9576172F6928D1405CA49055B6303B4 + F1F318A0A78349C78BDD479A9984403A79265B0418B95747A4A6424CD24968BE + 9EEF05F2A69FE9E406F5359829E99D3C7BEE9C10B82A258F484D05ABC90475E2 + 02EF14A79C28E6BDEF62862ABE4B61F81B611832788817D215323B4704B83239 + 87484D8598EF4F4093B050B48334B39F6ECDB8850A03103EEE2DF4502A999BC3 + 2F644E4E8E10B8627736919A0A16433DD3C1455EE0BE9397DC47368C6E54D1A0 + 55FD1136E64D37AE1DE10F32375704B87CD719223515D6ECCC44FA378B784F31 + DBB96D99B750594F101ACEC7F98BCCCBCB1502BFD8F90BE1A6C2F6A3855D024D + 757AA4252EF65EC3E2B66796A082C18D0A1BE799568510D31552A7CB130297EE + C822DC54F0A7627764203571090C4D2E37EE3B0657CEE2468F656EC6995689C8 + F3E745809F6F3F45B8A9B033A3A84BA0515FEB3E12A24085A50F48CF108C0C1D + DB31AD9CBDAD3392305F75B535183C78A8600BBA90AF1302977CFB33E99C0AFE + 14DBB9842337515ADB82E1A398FDAE0DE7BDA90892C595DDBB0DE31383F5D590 + D7FA74DE270B2E8800176D3D41C452E159D5FEB43A94FD306C64B8172758F81C + 24FBC1FEAFD2DB30190DB9B4C3B5B847902A3724E4F5B7B9C88B05E785C0CF36 + 1F27BE52C1576DCD28C1CD6A17868E0873E3C4D61A17C976AEE2FE1D984D86DC + 470ED72C64CDA15E997DBA77CF2055011759785104B830F11879562A8855D11D + 17060C094570BF01EE817C3D10CAB6CE5594DD85D9F84457EDA422585CFB389D + 91C585F942E08284A3C4572AF8AAEA7A1B62D3AF2378D008F47DB9BF4F248BAB + 2A677146014E0C59A7FF57089C1FFF23114B85AEAAC94EF067652B060E0D1545 + B2B8BF2BEEC162F28DE3227B05A97E629682B53A33E2531E70DEA6C3A4732A48 + E9E4068DB093ECAA7B58598A0673D7385FE5057E1277887053410E92FDC8DF8E + 6436475457954269D7A3A441F1A21C1C0F3877A396B4A782DCFAA70DD977E030 + 349A0C183588E96243194EEF5E26FB5F2C3CA06C19A7ECF40B2833F7456F950B + 23839B98A9263895B43C70E0F35AFF011F047856C0BB6CC50000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Upload File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000005A84944415478DA + CDD8795013571C07F06F6098A254AA1D2D2D569DA9D728A8EDBF9DE98CB6D6A3 + D6B61EB5554010BC6FF16AA9B45A6BAD4E3D4081241DA607555BAC07845340A7 + 331D6BBD00912309E198942B244120E766C37677134262AE4D4267FC01B3BC84 + F7DE87EFBE7D2CCBC3335EBC403A270B6E5101CEFF9781C4E2CC6DF334FF1BF0 + D4C6B9F047C9F4C9FD538C7BE2CEDB06925AE80E392CC001CABF20CB1FB6A24F + 47E0EFFA0EB7C861019203FE012B1BBBD0D36FA091261AD9EE12392C40C2EC1F + 50AEE8859A060E21DBAA69DD7CE1A679CA6101EEE1DFA44E6F9A07A369806DEF + CD2CE1DCF7D4D645D019091638842470BBAEBD46ABD1BC2DDCB7541930707756 + 397566F33BD05B81BED6889020F4680C0EC85E1629AF3DBB797E74C0C05D1965 + D4D9ADF3A1252CC08359DC133CB16511A46D3D287FD00C3D413ABCA77AA241DA + B677790103779E2BA5D2B62F80C668F67B0C8234A3AA51813655BFEDB5FB7572 + A4EF581838707B7A31756EC722F4E92DC01461A9DF631D8C990B79771F48F300 + 2EDF7A84F33B173B02B3B37FF2F9527CD83F0EE777BD87273AFF13B42F06A037 + 9AF0ED2F3791B17B89333031311E6633F7C976A6972063CF12F4E82C6B28F587 + 1B7EE38E6E5860FBFE90A01499C9EFBB06923E0077A415212B7929545A92731F + 2E7548500CFEDE0FDC0049EE936D3F5B08FEBE0FA1D458FA1CCEF63FC1C34976 + 09F20B21D8FF916BA0C917E0691104079641D1671AD60453F905101E5CEE0668 + B24C5657D7E075A0F3C5127AA015E8B202577C558C76B57F9BB67D8D1E49A14A + E0064898B8A7B1F5FB3C083F5B490309B67D40F8003255086646CD42108F07FA + 93FEB21C1DDBD6D7E0F8338375E5DA75B4E42C7303242C93D5D78BBD02D30BEA + 21F87C950D78F4C772DC9592080D8F0C08E91168B402B9D49613572148F9049D + BD43A9EB0933F666DD85CA18E637D233D06864DB0D0D12AFC033793510A6ACA6 + 81965FEAE4AF15EC91A4976120495EBDEE0168B002B9D4A6E37F40F0C51A1BD0 + BE9824F7F3EF414DF89EE4B5BC3C0F4083816D8BC552AFC05357AAC04F8DB19D + E2D3172A1CDE37D13B56450D81C9D3A23071C2441BC41BF27ABE07A0DE0AE452 + 1B8EFD0EC1A138970992F45DF6919F2B215100D173DE407050103D393821F3F3 + F33D00F57AB62D91347A059ECCBD4F27186F03A6FD76933D32FFA23C90912043 + C6226AD6EB2C6E10C10529127900EAAC402EB5FEEB4BC8FA32DEE12A66923B9A + 530969178519D18E38AEC882029107A04EC7B6A5529957E07797FE41666A82ED + 2F0983FB26A70A121A373D6A8EE5B4F29C31DE90858505AE81EBD6ADF529C1A4 + 23179091BA0E8A7E138B3B46E3C40C6EE66C7A32BBD3EA23B2A8C813D09A6063 + 639357E0F18B77D82345F120E909073532125367CC1E3AAD767BDBD3488AFEE8 + 689363C284494E5B504971A16B6042429C4F093265A2934B1656A3524E61F274 + 7ABFB3E26C93BA4032B8FAC7D550762BFA5E891C1FFEF43E595AE201A8B526D8 + 246BF68A639E289CC8EF82583D02AF4D8DB6E19C16BE1D92B9B16FA8AD864AA9 + 10910653427068882832F2D537ED91374A8B5C03E3E3636DA7984BEDCB7E8C3B + 4D664C9A12C5E25CAD357B24939CA4EE11D42A85A8C5605A89CBAB88711FE73E + 3F3234A4D41E5976C30D70AD1DB0B9A9C52B3051D08AB0886918FDE24BEC40EE + 2E88206B7292FA1AA895DD85AD466239831B1CE769644559B11BE0DA189F1294 + 756891985E85F088A97861CC58B7480627133338A513CE15B2A3FD5FD7C0B8B8 + 35B68BA4A5B9951352AE229092DB893191D35D22195C93E4317A54EE71F6C8B0 + D0908BF452E86BCD591EEB048CA5817A1FAFE2C124935C24C9ACBA66692D9EA8 + BDE3DC9503302676B55F4016D9A9C5FAB46A84BF6C41D29B235A65B58808EA44 + 591BF59C3F386760CCA73EDDCDB8438E8A988C5E950273C653786B6C1336AE4F + F0FB114B408F3E5C55B73618171E852172148915513A04D33324250D03F059AD + FF00EB5B7A567DAA27650000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Duplicate' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000005684944415478DA + CDD70D4C13671807F07F298D60B24C9D339999BA6134FBD084B9683263165104 + 1CD3CDCDCD0F4440A628E217A80803914170B8E8F81068BBE9A603BFE70CD338 + 06D880C2CCE607502D2AC46563A0281D505A0A6DE9BBBBB65C5B4BE9F5AE2E3E + 09E9DDF5FADEEF9E7BDFE7390478C64330B8112F91119E635DE9336061E1C600 + F55303EE5F37175C94F46F4E55DDC51F771FD6F61948B027910E4023E196C88A + 1B7F41D5ABC36F8D0F3C8A74001A8CDC80379BDBD1D9D34721F514B2CD634807 + A06E801BB0E55137FEA58056646B3DA50B94C604747804B84D7C891C880940BF + DE68DA4F28FC85F520FB6343D0DBAF3301AD481D6A156D728D5A3D4FBA7D1167 + 2403DC5A5441BE5E3F1F5A0BD0DDF01579A153DD6787EC36215B6EE7AC0F9CC6 + 1BB8A5A09CE4C40642A33303138BD867307B43089A5A3B5171FD4F687506BBEF + 945D6AE46E5C20603D9833E0E6FC32921B170475FF00D7B1A0330CA0AEF9115A + 953DCCB16B8A16E46D0AE60F8CCBBB48F2378540A5350393A5659CA1896173D1 + F25805C38011A7650D38B879217FE0C69C0BE4E096F7D0D5CB3E8319C59739DF + 84255C761F06187BE03C29D8168ACE5EF31C4AFDE65797A38FF01D89A7DD7D18 + E0FAFDA5A4287E11941A03EB8B64955C019FEE534E771F8D0E57EF38EF3E0C30 + E6AB7344BCFD0374A8CDC03D87D867904FF7A14B528F962AEC8AA1BB0F035C97 + 7D9648762EC123959EF505B24FD48057F769A7BA8FA5769A908D6DBFAB0909B5 + ED3E0CF0B3BD678834F163B45B8099DF973B1D78666F0E444403C5A83864C6AE + E0DC7D347D3A5341679043741F06189D759A48772DA5803A97835FCB9F826973 + 26417EB51DB396E4E179BF059C3248779FC1AE3388543DD17D18E09ACC934492 + F42903DC7BA4C2E9C0C13D1B1014F536BA95FD68903561DC1B91F07B77077689 + CB5D999860DB7D1860D417C7892479191E76BB9E837585534C40C01B7A9D00F2 + AA7B18F09A8A3717E54334F205B7B2E8AAFB30C088F412224D5E4101CD19DC57 + 5CE93283349040448D22C4FDBA1634D675E0A64F0CBA847E6E3F6E67DD8701AE + 4E2B2692CF5732C0E1422E9EFA0490FEF486B2B50B8ACB0ABC3C2B01E36744B9 + 8DA46B81B65F8FACA39750B035D41E189E7A948853C398477CA0C49D0C9A81F4 + BE962AF4F2CA6BB8D73519B77CC2312018C10A97B13688D94E9194A130FE7D7B + E0E1F43964ACD7DFACEFD60AA4600211032434D62844634D3DBA3B84786DB104 + 3EA35F752B9329928B10272CB60796664C24A1E1422623435F5C6477DC191030 + EF3F686A81A2B61EF5A2D568F7F61F16B527DA2683E20B90ECF87018A0E9A2AE + 80568833207D4E4F47376E555663F4D49598303BC1B4A05C45AAF83CA4891F0D + 0D749857026F06ED1C687B8EFD7173292250C8AAD0D4E68B3ADF18E805231D1F + 6BA4B5D8A71695E2DBA4A54F13E8ED30550884B8FED3398C991E8717A7870D9F + C1C2521C4AFE840BD0313BD6739D03F5D4FF390A59F5B0194C8A0864B677179C + C3E19465C3016DE6955B40A14D96457673F0B9C9CB31FE9DEDACE6605AC1597C + B77B853B400BCC021C0AF2E442A2FFDA4CABB881D52ADEB96ABE4D067FC491B4 + 307BE0CF19136BA84A3EDBE5ED5922286A865320317AE14E4D03948F8598145C + 8811A3DCAB836907CFE068FA2A7BA03B4167DB0AB42F335A8D9EEA2437DCEE24 + F161D60CEEC93B851F32567B1E48F7E2DBD58D18E3BF955AAD115C86366730FF + 244A3223F902DF82ED82B95FF70FAFB7992DCBE7D964F0388E65ADF10C504FBD + FCC8AB9AD16B9C8297E6E540E8338673E606233DF7188E7F19CD1FA852EA502F + 6B86CF2B61183B935D1B63072CC189ECB5FC80D3E64C84BCF6215E0FCD85615C + 8047600C30A71827F7ADE3039C20134030AA54B3C15F6574EF159F6DF002FE9F + F11F3C9A58569796A2B50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Move To' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000005554944415478DA + CDD77D6C13651C07F0EFD1756C98280E2591641021C05E80801A430289308141 + 00638846616FDD16B6C082CA1017743008848809C210C64B04656C0C50D04C8D + 1271E36D2D2030B66EDDD676204C601DEB5EDBF57AD717EF8EAEBDEEDAF57AAD + C6DF3FBDE776FDDDA7DFBB7BEE1981FF7911831B478F7EEB0CB1D75592342FC9 + CBCB33FD6BC0ACAC0CD8ED76498D74BA562895D79424694A0E275200B449049A + FA4D6837744059A30A2B5208B4D92435B25A29D0348DF6764358931400698940 + 389DA0289A8754DDB0D9AC4B7373733BC30B644EC09646D32CBA4942421CE472 + 39F7DD41A4C160404D8D4ACD209342410A80940B186C453240B6F8C87606A952 + AA1AB3B214D3C207A4286EDCD4D422BA497CFC54BF7F2B2BAB4076B68210DD2C + 10D0EA0286ABCAC30EB45AB97173B356322A2E6E8A07587E2ABC40D20514539F + 1D5749FE11AEBA4ADAB0A4246FBEDFE9480824496EDCD2A20BD8BDF4BA11BB73 + E641CA3B92FDCE998BCDF8536B50923667B23FA400687101C55461E9350EE870 + 4A7B8DFF7EFB3E7A4C56DC6869F78B14022D166EACD5EA452768734803D6EA0D + E8EA27D16FA1A1D23CF2891400075C4031B5F9C4750E48D9A501DB0CBDE83291 + 5E48A7995CBE277F71977FE0C00037665727FEAA43B9090EDB00AEC85663C7DA + 95B0D20E6EFF8692DF44E376AF5D0C3349A19BC1B9910314949A476AB3C99474 + E4E3E59D02606666BAA804ABBE8C47E2DC09685075E0F515C5786EE242490946 + CB4770303EB28F4536B6A9F7AE5930C337D095A05E7FD76FE3073F2DC3A2CC57 + D16BB4A2BE4A87B1890A4C7AA3000507CF8BC6ED5AB318BA87DDB870EB1E2C94 + F702C5D8634271DE4242005428D2442558BD2781030211A02902F517B57044C4 + 21715931E4A3C604952265B3E38EBE030F8DFDEE7D37356DD8B72ED937D0EC4A + F06EEBBD8009B2402798450221436BED0334D775A1362A173DB29783BEDC0529 + F3D0F6A48F59303BF05D753DF67FB04408CCC848755FE2E1EA62F1B42140F633 + 02C6BFBBD1784583D8D91B316E962268243B1758AC34769656E1C0474B85C074 + 1EF0DEDDBF8248F029901D5BCC34D47FDC424BEF643446A5C28E4851B8EDAB17 + B9B70B0F9F4749FE326FE0D95D739C72AA4DF4AFF50019182177039DCCB6C34E + A05959CF3C4472C42D3F88A8E783BBE485877FC5A10D6F79032BB78F772E4D93 + B913119E9CF91CB2DF37D0752CB3FD58FB008D4A35EA23D3608898392C6A6B36 + 2FC143BFE0F0C6B787017227F59D8E07E581F803B2C7F477F6427DE13262A6AE + 42EC9C8DFC53FAADCD877EC6918215BE8182FB2A44203715591D68ACBE04DDE3 + 6750179D039A1825BCAC0ACF64BFF96025BEDEF48E5860843B55FF40FE31115E + 3D06B79D18819BE77EC09819EBF0E2F494E1132CA9C4D14FDF95021C9A8E3820 + 6DB533095E86FEF128DC89CEF599E0A68C05EEED2D077EC4B1C2F7C201E41FCB + 1E23E3A52CE7DD8397F0ECE45518377B0337A907AAA203E7F0CD9695C30179F7 + 957B8E9307000EBD4FE5CC537C1F1AE629AE8B4C0FF8147F92FA262FC1B3385E + 94321418CBFC8341CC0EF8F35CB528F315BF40761E6C6160C627324C482EC1C8 + D1C1CD8345FBBF47E9B6546F6030C5A6ED017A3FC54FDF24B7A1ED998486A834 + D88991A27AE6A77812DCBAEF0C4E6C4F0F3F907D17375C6EC29859EB11333D43 + 4AEBA7097E751AE53B14A10267817F3FB6D6B631AB19A36B353331E89E1FBE9F + C44BB0022777668507485360D6833A589C53F052D25EC8A26224273758DB8A4F + A2E2F3ECD0817D460A75557A444D4CC30BAFAD173585880396E3D4AED5A10113 + E78E87BAA61D09CC2ADA36767E58606EE0DE329CFE222714606C35016274A579 + CDCC3E47704B7CB11512F0BFAC7F00F6304956F72331060000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Synchronize directories' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006374944415478DA + CD980B4C535718C7FFB74F5A010171BE36C50D86D91645063E304C9791E85054 + B691A9896C13DD7C41368DDB70246B32A7D9DC239989D34D18C3F896808C4D8D + 027146032215DC94CD47A4A06C2A2B9496DBF6DEDB7B776E5B5EE5168156B743 + C86DBFF69CEFD7FFFF3BF77CB914FEE783FAAF010605F8936EAC160AC5290148 + E87F9A5049718E975274CDF423052CD932BEE0B9A415CB27C6AFED77D2ADEA9D + F8FD74DEDE85398DE98F0CB064CBB8E5DA901105F18B5F814C219752ADEB15CF + 71A82E2E02DD664C5F987367EF430724D64EA202D4FAF8D4548D7678486F20A1 + E7D7BBDFD02613812CB60A367B2CB1FA8F870A48ACAD7966F60BB1A322232561 + BCC5EEDEB889AB67CEFA1BE87C4A4EE32C4F40E1C58C371F08E42D46497E6FF0 + EB88B1F2DCFD20B5DD557A3D00DF1842F281271E580C04F080346062DAFC212F + EA1748F12525C3D92327A4010798F9910C49C094EC0B101C161F97F6F5770A28 + FD3C491A70FEA693A05B0B0790B09F98E0C35CF7A8C8CDF706584A008BD1A72E + 7C48369858E7662CCFDD2B0D98BCB108D6B612BF27941EDED728CFDDE70DF030 + 01FC7908C9FCABA6D7DB4CF2867DB0994EF83599F7588FB847DD96E71D96067C + F9BD1F606F3FE51BC4103689A73B657947BD00BEBB1B76730506BE49069670B0 + 3FB42CAF481A705ED60E30965FFD9AACE760791E37DBDAD0DC6181831710A452 + 213A2C04A16AB58782C79029376792EC3643B6714F3760E697603BCEFB042115 + AB371A917FA51E154D77C0280528D4725094D8530A60AD1CA283876349741416 + 473E09398967E617A22A58058BD9C219B25B953D00B711C02ABF408983E6586C + ADAA4149A301C16386413B22007285CCED0C05855C0925A5044B3BD0D26444A0 + 9D47DCA8709CBED78269D3E35071FA0C1AB28D5417E0DCF53A70B4DE6730B12C + EE5BAD5853761606991DA113829C75C43B04D2A91334925229534129023AAF2A + A8644A584C56DC696846CCD4291816300CA5A5BF7800AECB0667BDDC27595F96 + FE41C55A5B76BC1C4D2A0672A51C96162B28A24E904A89763B0B995681D0D1C1 + 081F1D46E0D450C97BC0BAC1C558D1B1631E806B36C061ABF759415DA51EC5CD + B79D8ACD19F918563C1B852923439DB68AF0D5775BF0DD6FD77085A6113D2512 + 1AB5C6ADA28AD8EE52537C7FA4E8A807E0EA7570D8AF0FB1065DE3BED5863985 + 27485B47E1E3F8C9488B8A909C2390BFAFF557B19F581A3B3D061A95A6CB6EA5 + 1BF040E1010FC07732E0600C43AEBB4E7BB3CFD53A155B3E29A2DFB9DB6BEA71 + D0F037E2673C0FAD5AEB0414AD55C85C16171C29E80D98306F26E9074D0F54C9 + 1785BBD4BB7E1BA5ED34A6C6C5900DA125502EB89E9B27EF506E6FC0E4AC4F25 + 1A567FB7FDC04EFD19E45EBB80D8F818042803DCB676DB2B82CA2839F61CFCBE + 376062CA2C70B6169F2056E9AFA1B6ADA3DF1994FB10131E9CA29200CEEC5670 + 7D0E99C4F8A460D42E1D562E59055E70807130A42659B0CE2BE3BCDA581BF4D5 + B5C8783A1E6B6313FBAE29B038BE7387F4599C307712049E730787A6605CF965 + AC783DC30DC43AAF222847AE1D361A972ED6613E39C636468D917CAC26EEFE73 + 276F79E966D66D1C10447F2A46EDFA04E969E96E28D6AD2203DA4EA3BAB206CB + 9E9A8C0F6624F5BBDE87DF6E47A18CF9B1C16E7C1B3A30AE67335BC68B8FDC92 + E0E3C8925BB0F4D5A56E5BBBEDB5B2565CAAAAC38C76160B79B5D78792E72916 + 87940C789E17789BFDF1261DDDECD7079811DBC284B4D4D79C600C01E49C5757 + FD59ED56FC5977839CB9749920383E6B644D1544218EFCCB2214C1D304B9E27D + A5469E2A232D0D636677376C6E5DDD65B13F0153172D7259EBAEC1CE7A74C5EC + 68B96B44EB5FEDB05BC8C10CCA48EC0D516A95EAC0700D1C1C0F5373478DC16E + 4C10ED7D28800B1624930DD1815A7D1DC64D1C8BC0E11AA79ADDBBD9052E90FB + 8CD8138A8A8915D86A30C3728FD6F38C3D45B4B6734DBF03BE98341B17AA2EA2 + C36C29200C8921E1C113C39F209D8B560E56106D679DA7893844C5E87F6C4435 + 8BE060847C9A3166DDD7A1D769E157C009DB42D9A0A04085B9DDF2856173EB26 + 629362BC2AEC2DA2D16AD27AC5AA48AB25F684E24D9AB33B48B3CA99096C09D9 + 155F193E32E9A5D6F43360D84A41E0B58D9BDBBEF1FC6CF4D6C0912A411E433C + 0D111C3C439C3534B06D573B6BCDDBF817A333975615C48A330000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Open folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006694944415478DA + CD987B4C536714C0CFBD7DD1D25ACA43C5511EE521A061990C1F53660638C332 + 0A6C6A64191A61318B7F6C995BCCD8D0341B1A13B37F962CFB639B73C826089B + 3CD431F08DF8404450F181208F1628AF964729A5EDBD775F5B29175A68A1B0F9 + 254DEF3DE77C3DBFEF9CF39DEFDE62B008C3EFB0280AC7600306E00F18889168 + 08286C9002B2C948E257BAB255F2E97356C804DE6C36EB1C8581A63D4B153F21 + C7160ACA47067C2EC7E3731CF00F986E8C3037011B181C0630D9389004054002 + E8478D3036A40382206F90807D2F1F5715820C48131C8BC3BA229104AC6A7DDE + 0E6D592A2BD78200FA1FF1D88D0376CCDD87EB2358CE03368F35458F63383071 + 96E5833141A3D282B2BD0F74A3BA5B04451DC031ECC7200417191101E7CF952F + 20A00CF0408EE8071697F9B157B0D006CCEC00C1B170E62420BA66A16F06FA1E + E856C3F3A7AD200E108309CEA42F2D2B5B20400417C0F12CE20AD9A9DE2142D0 + 0DEB617CD800069D11288A029C890307010BBCF8C0E373CDCE592F0027604DF7 + 848100772EDF7AFF57C99985010C3822FACA6D09FBB0BB371786141A20F46425 + AAB4728A221E608019291CF7C628723D8AE0768197BBD82F6405F0B83C4B3419 + 2C1AE4D4E8169E29721D507C4414CB646157397C3636A61EAFC3282AB3EDEBC1 + 7A7BB681327023D9A24F586C464ED8EA1096A7978816CDC988B21896EB537FE6 + CF0C58265BC1A3988C8B48BC7E36C0A3B856D3C306BED140FC6D18576FEB9281 + D661C4733CDFC0D978C56B3151EE220F0FBB29375DE715E5CD0C589AE39FBB3A + 21233D2866DFACCE3EFB7D3BDC5234F635E9FB435432187626EAE63EC761554B + 4203C34243436C36CDC4FD89D3BFDA072CCD79259DE7E1991B93928A0A9C8924 + 944541D1DD586E48C208778A4B403BA8DA25CDEE3CE90C9CA9CF0504FAAD0A8F + 08B740D1EAD09A66F4F939FF275B4094DA70CC8D53179392C2E509856087CC46 + A61D1A32418E513AFD9A2459D79399E144FE6C0E5621090B5A19122CB10BC57C + B171D0E6B20F88527B377273EC9A6521C13302D993F5343F874757AFCF183912 + D9E630B4205C19081249D094F632BDF64CCDDC346602A4DECADC6D1708B30BE9 + DC024C23B5A4109EA9558EAA80369BBAD19EA5DE68031897993E67E70B29BBF4 + 4B0148B33B6CDA9E1530767BA2D36B9C938C726467A2C0A0AAB06276C0B8CC34 + ABD0B44BEBCE5E84E17EE753B318039D98B934C09DD615AA144A3012E110F4FA + 6EA0489DE3082CC218EEAD876BBFEEFF631230638715A0A5F601F84812C1D36F + 193AFC9BC1F9742D9CECD9AD1AE86C7CF4A915303E639BD5F05E791544257E09 + 0C6627904695CBCE4C037318FDA9FA3BC5E741D3D31B4D037CCF6A782DAF0CE2 + F71D07BDE632AA03C265677395910401D7728BC6B5FAB62534C014B37A747004 + 9A6EB7C2DA6D071060B5CBCEE62C4397C3FD03505B5A5923CD96AFA3014ACD7A + 658B02C6C7BC4012F32618758F1DFCB00387F3A85953763A1E3641F3ED86EF92 + 0ECABFA001BE6B36785C550F7E51C920F461A2A7DD1E979DCD27AA0FAFD480B2 + 599E967C489E6F054CC878C7ACBC5D5C05D129FBD13B432B6A31632E3B9B8FAC + BAE01F18191A15BF2FEB544C02EE493437E8EB0557216EEF376018BDE3A2B3F9 + C1EAC7C6A1EA5485129D2ABE96C05801B782BA7B00BA9E69206A6B0AAABF272E + 3B9BABCC94A57E792FD457D69E458049D300B740FBC33660B0C5205E1D0AA4A1 + DB6567B66AC7739B6B9F42EBFD9603C90715C7A6012640C3857A90AC7D1B049E + 045084C66567F3896A5DF95D5075F5C54B0F765EA2018A89843D7178557E356C + 4AFB0870E878D1A0FF8B8D41D75170F9E46574FC1BF8E8295D4B0734C4EED8C0 + BC5BDE08B1693BD13B6EBB8BCE9C9F43CF8E46AD819BC535F751837E75526F01 + EC8BDC18E63D8C8EDDC84DD1E8FCED77D9D97CA2DBD5AC84C6AAA72710E09E69 + 80FE3DE270DFA5028108842236B2D53B112157A26BDFAEA3650014CD7DE9C987 + 147936804BBCDC974627ED05373E0FCD23170D6236BB9BA78F83AABB7B558A4C + F9681AA0B897C962F8ACDBB216B517F502003837975E12A6FF106F5E6AD1DC33 + CA8532199093361640958F7FA02846FA21DABD86FF257A237D9D507DBAE04252 + 76C796A98BB0008E04452CE7FB8A850890B459DD6245906ED7DFAB85A606E551 + 69B622CB06B02447DCB55E9AEAEB290E9EF547E60DE0D09C8286CA32E86E6AD9 + 8A1EB12A6C01BFF5FF0DBDF9ED72D2EB220DAA1633129B271AF414C09779BCF4 + 80FF02D5AB18B0F4F8118F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete file' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000072D4944415478DA + DD98796C1CE515C0DFECCECCCEEE1CB6D776BC666327710E93C40E31767CA685 + 8652FE8810A2E19F8A435CAA4D128210108450E9A6AA2A45415C4A1B07481120 + 5AD1564508420A0444391C88E3901036716D1CC7DEF888EF9D63CF999DBE71EC + 65ED3DBCBB1835EAFB6B35F37DDFFBCDBBBF25E00A17E27F0DF0FF0FD82AB077 + 447453DF7649FAECC700F8230067E6B9D7080206874479970B209236E0419EDF + 9B67CFD9ADC84A381452B7344BD2E78B0987E71700E847AF5EB7FA1A9FE287FE + BE81D78724E9EE584822C5E6BDF6FCDCDD4D4D35208A327CF1793B52869B5A14 + E5F4A2C059ADA504457E54B961EDAAB295CB9053878E8E33E0E91F7C1D0D7157 + 4AC0285C43359849F3F4B3D1D17138D676723C140CD6EF0806BFFB2170FB396E + 3D6D26DEBFB6AAC259527255F4792010840F3FF85493BC62C1C300530901A7E1 + D0AD4D755551B859191C1A81E31DDF788261AD7197DF7F311BB83F09D67A9AA0 + DFDD545391EF282A8C3E47EFC0676D1D302529BF7E40925E4A68C1033C7B777E + 6ECE2B4DB5F170B3D2EF1984AFCF74BA71EBF5E88AB14CE05A59F6068AA6DE6E + D8B481B5E7E5469F6BAA066DEDA76062527C12CFFC43EC9E398068BDCD34457E + DC547B0D25F05C5245DFF57AC0DD75BE5D15A52D3B00E474E00E70DC3686A6FE + 3AFF6C3D12812F4F7E0B97C6269F6991A447E6EF8B73317EE58D144DBED55055 + C1DA7373922A3CDBDD0BDD7D9EA3581AB6BA0042292DC7F3F7B10CFD5263F506 + 82B559BF7F818971E2DB4E18181E7B15B3F75ED7BC129310D090CB7142BD5B53 + 599E5F54604FAAF874670F5C18187E6B58926F4B74F86538F6518163F7356C5C + 078CC592F1FEA4656636D3AACA573A97C604F31C312C70B61B0646C70EB548CA + FD092CB7CF2E708FD65596034D5173DE75F6F6A307063E1994E49B52792075A1 + 9EA9551565A5AB56381D89198D187277C1C8A4F834C6D063C63354682AE6F997 + 0BF3847B6AD7AD06B3796EC2F55C1C06776F7F07C6F0F50BC5F082AD6EA6DA7F + BCA6E4AACAF25267C2359AA6C131849C94942730969E29E6B9BF1417D8B755AF + 2E03C234578567640C4E755FE8C49F3F49A70AA4352C18FD92E4B9232B1C4B36 + 572C4348227E5B28AC42DBB96E907C7E77C992FCF51B5794C6AD1B9E9882F6EE + F31E086B9B9BFDFEFE7474A73DCDB8001874DB3F9C05B95B0DE54402C820165B + CFF804AC2A2E8A7B378EEDF2ABFF9C1F0FEAC1C69D52B02B5DBD198D5B08493B + 04EECF0E41B8BDBAAC144C26535AFBBC3E3F1CEB3AAFE0075CB7DDE7EBC84467 + C6F3A0CB48008E7B368FB7EDAA2F5B8E09901A520E04E08BAEDE7048D57EDE22 + CB9F66AA2FEB81B595E39E126CCC9E7A74379DA42D06D0E56D3D17745F38744B + 8BE47B271B3D59031A6D118D77B46E5989252FB63BC4C8A8ACC089FE8BA391B0 + 56936E522C0A602B6FBB9936937FAF2D715A72AD4CCAB5035E094E0D5DEA011D + EA331D2EB2027C5160EFB498C943B5CE628AB3D069EDE99B12C13D32765A95E4 + CDE90E1759011E14B85D2C493E57E774100C49C62FC0D637150C412E63897BD5 + 8D35B07BC2DB8685FC061786E7A203B60ADC9E1C8A7EAACE51089439415220DC + E9B1091892157DE39202C2C1DAE2969C1D9F840BA27C18217FE95A60024A1BD0 + 659415817B3ECF62D9B9A9301FCC496ADFB9C92954AE1C0EEBFAE394098E54DA + F34A96726CFC4720E4A0E28FBB1C6505E89A29CC450C737B953D174C44E2E53D + D825BA44B94D95A49B8C187BC16A5D6A21CDFF2ACFE1D797CD1B7C75843C89EE + 1E0904F6378BF28359031E04B001CFFFCD6965B656E6F0095B9B21FDD825DC5E + D1EDC30498BDE84CEFC721430778A78CB3D55F3D0F328290C711722218FA2D16 + EFDF650C787938E0DF5F66631AD71A6E4A02378CB7B053A2E85135BD7687A20C + 273A8712B87F3A19E6C60A0332E61C0D21BF444829AC3ED82CCBFBD3069C19AF + 3E596DB3AD5F99A4001B321A0AC1D7A27429A26AB5A98AB00BC3C418BF8A2CF4 + B68D1C37C713619C258F4D797559D7EE7C4054DE5810703A7628F2DF6BAD4C59 + A9C5924C274CA92A9C90156F20A237ED9465372C20086972F0EC8B05147D5F15 + 66B7390632600CBCA2140E82766BB3E83B9C12B055601F2A24A9E7AA6DB6A4CA + 641C4E8F2B3EC5AFABBFD821F9DB16829BE79DBD39A469B7713E150339736610 + CFDC32FFCC3980B3B1B782A61AD7D0F15DC26F7CADDF1FF68376CB76D1772413 + B8A811F012C59BCCFBAA1906989892E545C8138180A26A918666453993103016 + 7239656E5C1373D10919411D08EAFE88FE2BCCBC37B3818B81BCC74A980ED558 + 68C216033981902783A1D188242F6F06F025049C03693635AEC19686C517DA31 + EE642DD2821977F087C0CDCA019EBFD502FA9B351445F133908308E8D6B4DE41 + 515AE79A698749EB60B4D420A4170127B5C86FD072BF5F0CB8A8258DBF42CCA6 + B7AB4892F5A30E84EBD3C3EA4F63AB42CA4E320D29702F63433A8796DBB39870 + 514B5AADB52449BE1721C00B61F567F34BD615F117B061885100D59560CAB922 + 0053C9150FF85F7C572D56D5F75F250000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Commander' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000035E4944415478DA + 636418E48071A01D30EA40BA38503E76DD124606C6E881760C32F8CFF07FE9C3 + C5413160072AC4AEFF2FADA839D06E42014FEF5F6778B0389011EE404E6EBE81 + 76130AF8FEF513AA0307DA41D8008A0367963B52C5D09D47CF33B85B1B526C4E + 7AE7FE21E6C05BF3FDA9E2C08AB907193A92ED2936472D7123AA036FCEA38E03 + 2BE71D64684FA2DC81EA49680EBC31D70F2CF1213600AE4860F106920DAE9A7F + 88A12DD10ECCF6EC7E0A17DF5E2A4D92391AC99B501D780DEAC0F74E96704582 + FB8E83E91AA0A5F8400BD44130B530BE5DF545B8F8A1567D92CCD24277E0D539 + 1007BED150822B16B9718FE410AC5D7088A13901628961CE1EB8F8F9292E2499 + A39D82E6C02BB37D49760C3650B7F0304353BC2DC5E6E8A46E4675E0A5591007 + C6EE72832B5AECB68B64831B161D6668888338F0E771446CB05B92161B7A6968 + 0EBC3813E2409F55C670455BC2CE82E9C6C587F11A561F8B0831905A18FFF31E + 55B838AFCB6D92CCD24F4773E005A8032D672AC0151F4F7F40720836011D5007 + B5E4CD060DB8B848C00D92CC314077E0B9193E243B061B68597284A126C68662 + 738C32B6A03AF0EC748803FF9D52862B6232BB4BB2C1AD4B8F305447431CF83B + 39082ECE3A771D49E61867A239F0CC3488037FEC57832BE270BC05A6DB961DC1 + 6B58551422C4406A61FC9F9ED67071F6ED474932CB240BCD81A7A67A83253E6D + D1822BE6F3B9467208762C3FCA50110971D8777D4426E1BC789B2473CCB2B7A2 + 3AF024D48194824EA003CB23AD2936C71CDD8127A6401C1839E5055CD1F21C09 + 920DEE5A7194A12CC29A62B32C72D01C786C32C4817EAD57E08A3655EB80E99E + 9547F11A56128E0831905A189F12B3AC72D11C7874921758C2B1EC005CF1FE2E + 079243B077D53186E2302B8ACDB2CEDB86EAC02313BD48760C36D0B7FA184351 + A815C5E6D8E4A339F010D4819C171039EFBB0169390F0426001D58007560EE61 + 4FB8F864DBED24996387EEC083132086311F45F48FFF5A5F07D313D71CC76B58 + 7E08A20D09520BE3C76C36878B2FF13D499259F605DB511D78A01FE2C03FBB74 + E08A59DCAE30900A26AD3DCE90170CB1C473B10A5C7C7BEC1D92CC71284473E0 + BE3E4F920CC005A6AC3BCE90136449B1394E45680E0CB211A08A03A905D61DF9 + 409B7E31B500CD3AEE3471E0A01F7E1BCC60D481C3DE81000B729D382F72D68A + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Explorer' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000002D44944415478DA + 636418E48071A01D409403E563D7DF033214696DD97F0686FB0F17072A91EC40 + 85D8F5FFC37C9D681E1AAB36EF6378B03890A458833B5048549AE60E7CF7FA29 + F90EBCB73080E60E548ADF40BE036F2FF0A7B90355133692EFC01BF368EF408D + 240A1C786D8E1F58E0531C22AAF9166D80B3BF1E4564726EEBFB7076E40E5738 + 7BB9C76E38FB58E14738DBAA9F1F4C6BA56C22DF819767FB82053EBA58C125F9 + F71C83B33FEE524588BBDD86B3BD5618C3D9DB22CEC2D9FB529FC1D94EB3A5C0 + B46EEA66F21D786126D481DACA08875CBD0B67BFD9A001678B04DC80B32D672A + C0D9C7D31F201C1B85E4896510CF19A453E0C073D37D48D1471630CADC42BE03 + 4F4F8338B07DD911B86465940D9C4D0D71D32C0A1C78628A37CD43D022672BF9 + 0E3C36D98BE60EB4CADD46BE030F4F24CE81614D07189EBFFD4673CFC01A1670 + 071EE8F7044BE41F453874A2F536383B71E62B307DFFC659067A362CE00EDCD7 + 077160FC5673B8A285DE27E1ECD0AEAB60FAED8B470CF46C58C01DB8BBC7032C + E1B70C51206F422ACBBC6B0E81E95F3FBE31D0B3610177E08E2E0FA2347A94ED + 60A067C302EEC06D9DEE6089399B11D19AE28B886E98F8BA231F18E8D9B0C070 + 2021E055BE9301D6B0C0D550F0EE790A676F2D41A4575C0D116CE6C01A166439 + 10D6B0C0D55070A8BD08671F68D687B3713544B099036B5890E54058C3025743 + C12C7F2F9C7D6AA233C281381A22D8CC81352CC8EAD5D1B3614172BF98DE0D0B + B21C48CF8605590EA467C3822C0712DBB0A004D8E653E04058C382233B142EFE + 63EA6A389BFB921A9CFD55EF169C0D6B7080C0FC7431BCEA1D0AB793EF4058C3 + 822DD00E2EFE6BFD21389BEDB82642DCF23A9C0D6B7080C0EA326DBCEA9D8A28 + 7020AC61C16681E848FD3A81E84831EED585B3FF3B5F86B3610D0E10D8DA6287 + 57BD6BC90EF21D486CC38212006A9490ED40621B169488836A2C8A1D484B30EA + C0017320BD878B87C620FA600600E51FBF3886D24FA30000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Multiple Files' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000038F4944415478DA + CDD6494F136118C0F10744140F1EBDFA05085EFC009455561151642D1468D937 + 1168694194A068C0B2B474AAA0228B201242504224182F782071091143C018C3 + 227BA174A1A5F0DA92C0589932C3F4B5E1B9BEB3FCF24CFE699DE0988F933D37 + E713EF919DAF1FD934217F790647F3DF80D57C4F60A3B4DCD3F561024627E60F + 456201EE20768B1CFAF40BD4BA2DF8F87DCE26120BD0B4C30EF8796A01541B9B + FBC81D1D0A92E671D6B0038DDBEC80D38BEBB06A0692C8D931F30ABD9402CE32 + 63A0BD219C3F771612FD3DC0D5C5F9C099CE60DC059248238C8CCF8D69351A2F + 6541C83263A0BD212CA8B4904081743BE90C2ACDA615727D1739FD4D9AEAE37E + 24A0BD21CCAE6C40BC9F35727256653EFF097A83C9EA9E95350DD466F83A1D09 + 882384193332D6DB1D4EBB9ED83F379AB6E1CBD422CC99CFF666747C1AEAB2FC + 8F06C415C28FF935E0FA7AC099532E56D7AD6B0D30B3A4DE5D44D7F05768C80E + 20818E0E61EAB7057901DCFE415A107AC31654B60C832C37C81AE8E810266757 + 212DF422E533C5C420C8F3830F021D1D8284EB690338008A9BA107818E0E41CC + E5503E4F42BC05E256D841A0A3439070BDA9818A7E50168593C03CC530AA1170 + C0B0B5C30AC8360471822F35B0B10F9E082348606EE3107A94EA0D7A9640B621 + 88793680F23E68125D238139B277489AEE035A233B20DB10C43C7FCAB352592F + 348B23496076FD20AACDF4038D619B15D0326C4228E105509E95C97AE0696914 + 09CCAC1B40F5599740AD670FDC9BA384509214686383AFE179590C09CC90BE41 + 0D3981B0A6B31F6819A621942407536FB0A11B5ACA6349607A4D3F92E505814A + 67029C431782282584F2EC765D17BCB81B4F0253ABFB50637E08AC6871030F0F + 4194124ABDC1FA4E68AB4820818287BD485170199636B6B002E94210F2C36C6C + B003DA2B7924905FD58388C22BB0A8C60CA40941C80FA73C2BAF6D878EFB4924 + 30F95E3752165D8505DC409A1084025BC0367859954202932A5F216571841968 + C40BA409419816410D94B642E7033E09E455742242781D3B902E0493D1F6FBAC + 8089773A10218A84F975BC9F98690887CDEE05DCF236A414459981B837C82C04 + 5A607C592B224AA2B1039986400B8C93B420852406FB27661A022D3046FC0C11 + E238FC1B6418022D305AD46CDE20173B906908B4C0A8E226D458CAC5FE899986 + 400BBC51F418C92509D87F499886400B8C2C54229924111631FF59601A022320 + 56D95F8305789CE70F5BFA1956F3BE52320000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Error' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000007724944415478DA + CD987B6C14D715C6BF79EDD8BBB3C3628C651B6C086BF34A036A4A02416A85D4 + 48116A28695528FDA34A6C5ABC31AF540442AB5475A4A8A404A240802C48B61B + 550A042A91945428522A45AD44A090549006F06309D8605BB631666776EDD9D9 + DDE9B90BEBEE7ADF3654FDA4AB7DCCDC3BBF39F79EEF9E190EFFE7E226DAD1AB + 280B391E4FD3D7E5D46A61A18A3E5DF70F0FD3C8DDF4D941ED8C15C5A71E5DBF + FCD0010F028AA8282F502F8FC0718FF2F49F404D144508763B78C9163B2F6A86 + 100906110E871161BFA9452CEB6BEA7724ECD75B3602FA03056C02F80A55D9C4 + 817B8D105C32CFA3B8BC1CC56565B0959440908BD2F68B18A3080D0D61A4BF1F + 237D7D30A2518428BA56D4FA6DAFAE1F6ABAC73E39C0C3B2EC866C3B2A034F38 + 2852CA238FC05E55059EBE17A2284533D8DD0DFD9B6F10A0EF06701E46E8670D + 86E19B30E021D5BE528270DCC9718A5A5909C5ED06370636B1E56B119CEEEB84 + BFA7079A65E926226B1BFDC1D305031E511D3F172CAEB94414A529F3E7C3366D + DA84803229343888BB6D6D180A87CD0867ADDFE00FFC296FC0C3AAFD07A2C59F + 2CB3D92475E142880EC703858B2B1C08C07FF932FA4321D3E0A2ABD3453205F0 + A02CD7C8B2ED5FE582A04C59B020969D89320D03B7AE5F47154DB790E73A8CD0 + B476FB7C98317B3624594E3E46D97EF7CA15F44522BA6184BEBDD1303A330236 + 51B696ABCE73153CBFA4840024554D860B8570EDDA35D43EFF3C3A5B5BE19E3B + 37272483F3B5B7A3A6AE0E1DEFBD873973E640B2D992C7F5FB314437D01B8D5E + E8F36B4B9B12B23B09D0AB2A9B5D1CBFBFA2B414453366A4C0F96EDCC08AE616 + 54AF5C898E63C770F6A5AD70D38D881920990FFAE8C2CBDEDE87DA75EBD075FA + 343E5B5F0FF7AC592990A3B76EA197D62579D0168F5F7F27059099B0AC3ABBE7 + 48924BA9A9210716C63A874C133EB288152DAD31B8B862905BB7A086A66E3C24 + 83EBA4A5B06CDFFE185C5C31C8FA3AB8C9AA6C929410EA08F4CE4E5C33CD61C3 + AF55C5CD7C0CD0AB3AB64EE7C5B72B297A12996FA286474650FB87DD49708990 + E7B66C466D7535C4FB3715A68B75747561E9FE7792E012213B5ED901D7F8F54D + A6DE3330808168F8258F3FB02F09F0B0D379758124CE7350F8C125E74E195D64 + E6F61D19D7591C722E7925533B795C26B8B86EBEB91BFDD42F499685002DA3AB + A6796583A62F1C037C5751BEA50AFC57739D4E8825A97EC71170F5EBAF63EAB3 + CF66853CBB69230DC861E9810359E1EE7CFC31BA5E7D9578AC9463E1A1DB68D7 + 34F823D1C75ED4F57F73F7A2E7D8365310F754D2D4F2C5C56907659055BFDF05 + D7AA5599218F1E05C773A8F96966B8E153A7D0FD9B5FA785638AD272EAA1A9BE + 1909BFDCA005F6C600BD4EE5C4A392F49329B4FE389ECF3838839CF1C61B70FD + 703526A2E1BF7C845B3B77668463B2A8A0B84BD9FCB569FED9A3E96BEE4750B9 + B8D4665B244D9D9AF3220CB272F79B98F2DC7305C1DDFDF043F4ECD89E152E2E + F3CE1D9C0B852E3568FAE21860B3531978AAA8A894CF734B6390E57BF742FDD1 + 8FF33ADF7FF224FA5EDE96171C5354D7F1F9E8E8E07A4D9F1E036C752AD1E545 + 451C376E1BCAA630B5E2BD6F61F6DAB559CFBBFEC1071821B8428A338BB6D333 + A3A3569DA6F36380DF2540E4B9B79A14892F4747F1A4D79B35219858E29C6F7C + 118F171541E2F22CD1C8E4FF9108D84253BC42964BB93C06607017688025EF7A + B35A49A2DADF7F1F5F6C6CC4120A403E906C297C661883F5F1296649F27D4A12 + 2147E7181CED1285C0A540D26E930B929E5FF0B7C4246136F314D98C9AC56226 + 035728A49FACE6F3649B716C9B274A7B6625140813810B9C381EDB49EC6BD64C + 0AF2065DAB2D6CFED7A8D956379DB6BAEF24561709A23A0DA5070F65873B7E1C + 83B4D531951E38084796EC6690B7376F42458619FB82AAA781C4ADEE5E149D57 + 57D8A479B63477A5FEE29728D9B52B275CDCE758B2E5821CDAF90AFCCDCD29FF + 87588284CCB6064D9B1F1B6B0C5075FCCA2D486FB9D34C3347912D6BFD238A9F + 792627DC589F2C90239F7C82FEBA176051A4C6CB47D3DB1936B77BB4C09E2440 + 56B01653C1FA3D2A58D365733AC84C70D920B3C1B1ECFD3B15AC23E90A562656 + B4CEA2A2757E06C34E84CC05970E321B1CD355F2D71B09C56A0A601320563895 + 2F9F90A4C7A66658C00CD259BF1EDA91C379EFAD0CD2B9A1015A4B7346B83B94 + 88E74DF3AB5E4D7FBCE9DE4E9A0A189B6A7AECB4CBD2C5E592CD6ECB776B9AA4 + 58629C3143C1A0612ECEFAD819177B7057207CF4A42409E243860C13DC3F4D33 + A223B2BAC11FFCEBF8E3595F7D38C0B72E21C887154916B90B041740B4AEA057 + 1F71799DF65532C71F5B244AF6922CDBE04434446BEE52D80C1A56749D470B9E + CA745ECED07855B996B3A413D582B0B8963C325741914BCC4A3AC8EBBA22918B + 1667AEF1F88D8E6CE7E7FB0253AC50954609DC6B04EA9A49D1940B043508EC26 + 458DC0864D58BFEBF5C75E608673F52BF815B0E074787870F5D3787E0135B808 + 54A1363EB22C523AB5616AB7098CDA9528AC968816F03EF057C0E974C8E15844 + 7C4F93C72D838579546654D02A2D65C7A2C020B95D2F8DDE465E7996F83E6D0C + 042E4DE43AFF1BA39B84FE03B1E282569AD3BD2D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Help Blue' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000007CC4944415478DA + CD586B6C53E7197E8ECFF1F13DB6633B77E75202216C2402F6830D55EB266D48 + AD809286327549A5316052D7ABDA4D9BA6AE64FB31694B5187065A694BB725AA + 162821B445AD8A862A6D4C0C6D43090C12922E4E1C121B3BBE24BE1EFBF8ECFB + 4E1A276E1CC776E9B6E78793EF3BE7BCE739EFF7DE19FC9F8329F6417B67FF17 + 1512BEC9308AED40AA09122A2530D605A19297FCCC008A11494A5D4931F8D0D9 + D376E3732768DB775AAF557187C963071906CD8BFB1CAB809A67C1730A792D24 + 5388274424C8DF4548126E91DFD723F1E449CF994743F796E00347B85A7BCB13 + 8CC47411622685824199510DAB5105B3814F13FB3428D14048802718C7DD400C + A99444890624467A69D23974021F1D497E6682358FBDBD9E65D93E72E3162521 + 62B769516DD1825514661D2221373D1BC5A4272C6B5602AE89A2B87FEAADF6D1 + A209D6759C7D88D8D16946C1682B4B35A82BD391E3CC4D8C61725F4F8A294CB8 + C398F64521A5A488C430DF9AEC79F8DD8209D6769EEB2417DFE4941CBBBECA00 + B39ECF7A1FB535B73F8AB970023161E1C4A84DEA344A62026A98C873D95EE227 + 473F3A3D8F642229126D7E67B2676F4FDE0465CD31EC79958A673754EBA15371 + 59C9B97C1138C9916D5B6FC6979B6DA82FD7C9FB41427668DC8F3F5D73118D2A + B0AEAA04CA2C761A8E2771FB4E08F1B8204212F74CF43E72614D82351DA71B59 + 861FE479959692D310EFCC06876B0E95A56A741FDA8A0D3586ACF744E2228E0D + 0CE37717C7D15C5B9AD53CA2841B252908F1882809AD53BD8F8EAD4E90786B9D + BDF5AA52A9DAD250A18741ABCCFAE2D96014AD0D06741FDE0625BBB6B35CFCA7 + 0B3F7C6310F75519B35E9F8F2430EE0A2129C4AE3BA686B62EF7EE0CE9B51DE7 + 9E5172CA57AC663D2ACCAAACC24898000B017D3FB97F05B9A890929DC0A05969 + 12C7DFBD8DF7AE7AA05AE5445CFE38BCFE10F1F0C4B393BD7B7FBD82A01C84D5 + BC53A7D39BEACBB5A0B12E9B6E82A1385E7B3AF358E7224974F78F62707C8E7C + 8044BC5D8BA776ADC3866A5DFA9E1839CA3D3FBB4C086677B614796EDC154138 + 1C0A4462827D3198A739D477F63FC729D547CB4A0D30E9B23B05458589C31BCF + 7E2963AFEBAD115CBDEDCFD8A35EFFEA93ADD0A99734F6D39E1BF8C7C7AB2791 + 20F950F7EC3C1242EC0713BD6DDD99043B0686B525C6A61A8B06B942D943DB2C + 786A77637A4D0DFCE993FFCA7AEF8FDBEFC35737DBD2EB531F3A70FAB27B55D9 + D47CA648308FCC05471CBD0F6F4C13A4899FE7F8EB6693897CB912B97078A71D + ED3B2AD3EBE3172670FE6F2B5F4A6DF1C907ABD1B6C39EDE3BFBD769BCFAC154 + 4EF9FE5002FE4080A44961332D306482759DE79E57AB75DD56B3414EFAB9D06C + D7E3D8A16659CBF351119D4787108A65A654AA09AFDF8F4BBF78009692259BFB + CD85490C5C71E7941F4FA4E0F1CD21160BBF30D1B3F7E505821DFD67F4259676 + AB490305B376D8D854AB474B9D1E7FBE19C09DD9D80A726EAF172FB4ADC7819D + EBD2FB44A178ECE52152380839655367F19230160ACEBE4DEC709FCC8638C8A0 + B1B4A2C5A8CB7DBC6B8192F310720777D6E1F9479A33AEF5FDC58D13EF3BF392 + 433351D0E71A72F4B4B5CA041B1E3FEF315B2BAC1A95222F01ABC1EFF3A1F36B + D5F8D1FE2F64EC0F4D84F0CCEBB72167DD3C403390DFEBF28EFF618F6D41838F + BF93B2D82A199E2BBAC0263613C3AE6D067475B664EC8FBB63F8DE6F47108AAE + 59FAA5212425F8BC3318FFFD6E264DD05A5ECD7005D678CB61534770F6C5AF64 + 6417A7374EC88DCA9E590892A476F4DDBD837F2F12A4476C29B75BD7AAE572E1 + C5BD36ECDA5E9D5EDF0D2670F0C4285C01A16059341BCDBAA7C811EFB6A59DC4 + 5AD9D0522CC1544AC4A5239B51B2ACB8F8EE89315C9F0C17258F12F4CC386E90 + 30B3391D664ACB6ADA95BCAA2881349D5D7A69C931C666C2F8F6B18F8B924591 + 4808F0B99D4B6186066A83D1DAAD33988A12A8562AF051D7A6F4FAEC9559FCEA + 9D99A20986E703980F7A9702354D751AB5EE3AD162D1427FD9518BFB37EAE558 + 78F8A403379C91A265510789C6424BA98EA2BE7360B8BCA6B1897470450995C4 + 04369114ED0E901633CC8353F245C9219D1EDC5363238E9E65C5C202C1FEE70C + A6B2A325665BC142934992E0DDE3D8B1491E2CE0F24D2FCCE50DE0B8C233D35C + C08B399F7B65B9450B5652B13A2B6B9B48635E584649447D38F5FD2692A3174A + FA9B93411C383E02A5A6B42039A9540A339323815024B6B260A5A0257F89C9F2 + 8AD9565590E0AF37B138B2BF3E63EFE7672670F156FED983C2EF99261A9CCD5E + F2CB204D537D4DEBDFCBEC8DAD6A8D2E6FC1FBB71BF1C43732B575E2A20F7D57 + 8279CB8845C3B8EB1C234DD3E0EA4D13056D3B794E3B5855BF51CB725C5EC269 + 1B70EA5015B4FC82B88820E1C06BD3248BE4A7413199C4B463382224236BB49D + 9F8036EE4A95F67C55DD465691A757DB2D4AECDEAA97FF7FEF5A0813DEFCF22F + B5BB69C72D31118FE4D7B82F828E3E54BCE6CDAA3A12798AF0C6BC3537312CC6 + 856861A38F259203BB3896FB6385BD51ABD195DC5372D1F03C5C53631112A28A + 1B1E2D6261FCC6F5992CE55B48C543FAE5E202F922686131EB7622E8750D2653 + E2BECF347E4BE3930126CB2ABBCCD64A93D152517010A6C19C0460F83CD30151 + 4CDCBB01E672A447C00C7350673037D3E242A33382576B5668966A4A8845C951 + 06E5E41F9EF7DF2289FA731A0167C1A787E82CCBCB4374B9A49424AF280AFFFD + 21FAFF02FF01DB31735688B7A0BD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Information' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA8640000069B4944415478DA + CD980B6C535518C7BF7B7BDBAEAFADDDDAADDBDAAE830D26C22691B7888F10A3 + 210AC33154B6458321C6F87E44441E4310D0A0A226C4108CBA0D950D57D0108D + 4123A83C048501CAC606EBDABDD7ADDDFAEEEDBDD7735BF6B86EA3B77760FC92 + 26F7DC73CE777FFDCEFDBEF33F1783FFB96142279A56554F039C588C03B68001 + C8C518C60818A68E74328C8BC1303B72DE4803731CE8F011DBBEE2BF6F3AA06E + 45B5522E153F0E18F31406D8AD83F709110E0912118889A83B32CC4020444198 + A287E632C0FC050CF6B12F487ED65353ECB9C180E5B8A934FF198CC1366318A8 + 711C035D5202FA4941AD9480548C8F392B48D2E0F284A0A73F887E01A06984C9 + 604E84BBB1A5AA6E37F24BC77A724C40E34ACB649198F9122DDF6C3652469D1C + 32B57220F0F8DE8E30826B73F8C0DEE38B4696614E5324F6A87D7FE115C18059 + AB2C0FA011D5188E29F51A1998D3146839A353304CD8EBCBC2593BBDD0E1F403 + 43331EB4F6C52DFB0ABF8B1BD0546A294541FA444410E2DC74256854D2980F67 + 986B4E79B0F7B983D0D4E1012A1C26517057DB2A0B2B790366957CBD04C34516 + 8944229E92A904859488F9405BB7077A5CFEC8B54E2D0353AA32E61C6F300C97 + DB3C100A85488662968E15C951808692EA1C1126398BE094B9992A90A3EC8C65 + 4E4F10562E3240D9E2499176C591ABB0FF582B6894B1A3EE43D9DED8E666213D + 14139AD95A55DC741DC0723CABA4E09458229D95AD57824A2E8EBD56C826EB65 + F0CEEA02CEBD57F79E83AB5D015EF3DD3E129A3B3D408682675076CF1D99DD1C + 40D32ACBB362B1F843AD46097A4DEC7F3F6825F718A068A18173CF72BC1D3EFF + D1C6DB47A733000EA71748927CCEB6AFF0A3518091229C20B12B140A75B65E01 + 781C593A2F2F19D6154FE1DCDB5E73194E5CEAE3ED834619D68CB2DBEBF5BA7C + 819071B0980F51984A2CCF4B24D25DA9C94A502BF82DED485B73BF1996CC4E8B + 5C1F3EDD057BBEB78E3F789C3FEFF290D0DDC7BE8FC1176C55851F7000CD2596 + 7A79A27AAA2145C6AB4C8C656C21676DE416178FB165AAB5D70FDE01E7A596AA + E5D386008DA5B5D3C522C985648D1A651EFFE8355ADBC7EDCB3567088274A228 + F6395D4052A119F6CAE517238059A596971312143BB51A5564D3E76B47B6CC1E + B76FF186D382005991E170BA2110F0BED25259F86E14B0A4B646999852A44505 + 369EE4F869EBAC71FBEE5D7F4610209B2C0E54F03D03BD07D032AF88D0984B6B + EB9292F5F949029263D08EBEC585BDEB0D6180ACF57B49E8EFED3A67AD2A9C19 + 01CC2E3BD4A3D1EAB532292EC821D286F0CBB6DB39F7EE5CF78760405F9002A7 + A3D3D15CB154178D60D937748A2E1D93108205361CDFC1055CB05638600809DE + DE9E0EC65AF1103E04A84DCBC4E2D57823EDC48E999CF6FCB56705FB62B5A3A3 + AB6D18905DE29434A356A8C663EDF7B76FE3B4E7BC764EB02F06254A6F977DC4 + 12A324D1A667E74F087007572CCC595B3721404747F3796BE5F282A132939C6A + 28422A46B0D353DBF339EDB9AF9F17EC0BA91AE8EB6E1D2E336CA1562569772A + 546AC14E4F6E9BCE69CF5B7751B02FAFDB05EE7EC770A166B73A5982E2028AA2 + 60A727B64EE3B4E7AF17740C8E188A1EF803DEE1AD8E3573E9C1FA3443CE5491 + 88FF5637D27EDB92C769DFB1A15E901F8AA2A0ABB5A9C15AB92CE2700460ED8B + 2A75EA7B891A9D20C7BF6EE6EAC1859B2E0BF233E0EC01B7ABFB259420EF7300 + 59C18A14AB3DDD34151DCCF9ED28AD5787DFB3E68A659CBEECB28343D78649D3 + 79F9A3691A3A6C0D2E8F2F305AB0B2C68AD64475CA2E8D8E9F543AB67132AF71 + 8BDEBCC26B9CB3A71D065CBD4362751420DC5D4E980D057FA61A736624C81431 + 1D1EDD90CDEBC1776D698E3926E0F742B7BDA9CEDA5A370B7E2E0F8F0D08D163 + A78490D76598F3E4E8D0CE0B60A2860EEFD06EADF785C2BE8218C7CEA8B10777 + B1547E28232B4F840BCC6ABE46A3AC6D6FA9A7C8A06F694BD5C387FFDD7FDD4F + 1F5289ECD38C2C547908E13AF1FA9123115C03150CF99F88EBD3C730E4C10709 + 11F195DE98239729126F289CDF3B009DF6265F980A3F62AB5CF6ED78E362AA03 + C3630772095C5493A4D51720C503383EB125A7698A552AD0EFE8AC0BD3D48AD6 + 2F8A1AAF379E9F7C41D96D32E63F2D1289376B52F4EA246D3A10712E7B182D67 + BFA3039CBD9D2E8A2237D9ECE7778FCCD689015EB3E82760620D3A383FA95069 + 6E61C5854C91049204D9A8C8B2910A05FC6829FB239BBFD7EDBC8474D45E5F30 + BCE7267C021E6DACC0C019B80FC3F07908076592249D014C1B75CA38282AD401 + 8037300C7D92C6E00776E317F21CE10AF53FB27F00173EAE47E50D98D1000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Warning' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA864000006F84944415478DA + E5987F6C53D715C7BFF7BD673BB1139CA48ED3603B06C721C1210552684B099B + 98D601154B60D58654C14655556A0B5D2556F5879A342F8DAB822AAD5B9B326D + 6A3751A40AB1B292A42AA59346570A41A4024AF303826D88EDFCFE65F2033B7E + EFF9F5DA69D33D42420C09A9B4F38FFDCE3BF7F8E373EF39E7DE4BF0231732D7 + 00770CF09033D3CAC9ECF631A7C2FBC5655D977F348035AF5A561216C70C7A4E + 177DEEBD2A8E48B2F48B4DA5ED27E71CF0209F9E94C82634CFCFE0CC864C1B08 + 61D0D7E186AF4BEC94C4C1C59BF940604E016B9D597B745AF2FC424B12926D5B + 62BA21CF415CF10D616824F26671996FD79C011EE2B36C6A159A72AC9C466F2E + 825ABF28A617065D08F8BE404BAB20C9829C57C2FB5D7302585369F9C890C66E + 329B0DD05936526FDFB993658CF88FA0CDDF85EE7EE96849A96FFD1D07ACAE30 + ADE5D4EC7FF26C2C922DEBC0261815EF23A3BD18F21EC1058F8470585EBFA9DC + 77F48E01F23CB842CE72D69CC92EC9305991682CBAA15DA8A70E5D6D1EF8DA25 + D719D1B7988E13EF086075A5E5A9C404B237CFAE86D6F43008AD2E1F7FDE8A0F + 6AC796DAD6E21C3CFCD32CC85210D7DA3EC1455708C1A0BC8B26CC9BB30EF811 + 9F92C271C96EBB8D4B4BCD7440A577A0FE9B5EFCFEB5530ABBB75E7E002B0B0C + 34612E20D0D18016B734288AA339BFE2BBBA67159046AF2A3585D9615BA84562 + E63A9A172CCADF3E87A327DA1576DB8A6DD8F1681ECD1709A1CECFE0B93C8281 + 81C85F69149F9C35C0C3FCDD0E56AD3A9F9FCBB2C919F7824D34C7F48FBD7C0A + CD9E4185AD235B8FBF3BEF8F7D97421D18EE3C8DC68BB4BF84E565B4EC9C9F15 + C01AA7E5B3CC0CE621B3350D1AC30F8951FE76038D60A7C276DDEABB51F1CC92 + F1E770DF49F85B7BD1D611395E52E6FBC98C03D6549A36AAD46CED120743B376 + 3518D5BCF1777C55333EFDB24B61BFBE2803FCCEC5E3CFB2308C60CF71343445 + 101A957EBDA9ACEDC319033CC8439DC0591A172E60EC469309AA79058AF7FC3B + 1728A072EDAF2F3282DF91A7D089438DE869F7C1ED8E78FB245FEE633C423302 + 48A7F6399D8EBC91EF50417DD76A1046AD785F5ED542017BAE034C47C5CE450A + 9D1C1110EE3F81E6A6300687E532DA619CB70DF82F3EC3C8711A57BE03C97AA3 + 1DACD63AC1A6BCCA45017BAF03345040FB045B29E8C550CF253434C82311118B + 4A785F3BA6909B02D2E8BD9B9E4E1ECFCED14295B222B69D9A08E8C191E37D0A + DD8635775140DB4487B44F8703F5F0B8AEA1BB1BFB8B4BBDBFBD65C05A7E7E21 + A361BF5ABA8C21DA3407882AED8676E555576804FBAF8B601A055C70437B5908 + 20D8DF8073E728AC14B97F73A9FFF4AD013AB34E58AC78D06C9D072E297F52BB + F22A2F8E7CA9DC976E284AA18059938E11872FA0CD3B80D62BF269DAA757D13E + 1D890BF0B0D3B2459B400E2C5B0EDACE0A4058ED14807E3AC5D701AE89029A27 + FFF7911084AB5FE3EC192018C2F69252EFBE6903FE83478281B55CCA7510BA8D + 37D28E317924A2F2F4ABADA86FBCA6D0ADCCD762EF2BD629C749211FFA3BBBD0 + D488CE9018CCF90DDF333C2DC01AA7F9157D0A5351B094051B9D5ADA6FA79267 + 5FF7E3E45925A0235B837DAF4F0D48B73B90869BD0785E8CF6E9DDC5A5FE976E + 0A78883799D52AD6B57C85AC494A33D1C430E066F2E1D1ABD8F39EB2CCBCF884 + 018F3CA4BFE95859E8C3C8801F67EAC9685880E311DEEB99129096950399266C + B1E76A68CDB3633AB55C1465BCF4A71E1C3B3D16C5B5F769B17B573A58667A9D + 54BAE682A72584361F0ED3DDCEE649010F3BE73FA851712756AC92A149A2EB8E + D54DEB07BE176F8710FBCCCA54C5358E12223C42D7711D413828FDACA4BCEDD8 + 04409AE64C2197556FCF8D149AAC3A301A737C3F729B12196D47073DAAB63493 + 065A76967F7F3C1807ACA9343FAE4B22EFDE4BA317CD5A42E28BC2A9F3617CF0 + F1D8143FBA518B07EE51C7355E9645C8A35E7C5547CFD583789A6EC9FE320E18 + BD1D48E012DDCB56448CA9463D3D63A4C5E5BCC92D62DB8B8168178B49F4F4B9 + 7F770ACD642E3E487100819E00CED5937E511CCA8EDE4AC4006962BC6130E2B9 + 8242EA5C6D42BC27813FEF0F625FF5A842F7BB120D9EDD9618971F8A0839DC8E + 86B332BA3BF10E8DE24E52CD9BEDAC9A69BAAF485269E7A54ED9312693FD3561 + FC719F12F00FDB35D8FACBF8A63986481326343C80BA2F184908471CA4DA99F5 + B705B6C813F6C5DCB46ADE8D64242863EB0B415CF68FCD71B685C1FBBB13A04B + BCB57B0159E885FBA288D64BE400A97DCDD2BDE6E752BA5A9B4A6736CEF2F03F + 121664D47D3D06B86A29815A751BB72AB200213880FFFE9B1B229FEC310FAEDD + 4092C1A6DCBAC3D9102980CF3F85406A2B2D7B17E4CA4F59B365A8D4CCED3B9E + 011185085ADD049E8BE43D123D106958CB0BB4346CA3731CEDEEF1AFEC191539 + 5AA0A3D7C7FF0C89BE8AFF9F4BF4D9926F0166D4B36EE8BD0EE4000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Bulb On n p' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000028000000280802000000039C2F + 3A000000097048597300000EC300000EC301C76FA864000004EF4944415478DA + E5967B6C53551CC77FF7D1C76DD7AEEDC64A59D76E735B880C74BAF098D98690 + E0C63411746094844445FF042584843F20E10FC5108CFE45C0474282C6B0091A + C386980D36E2183AC145D0652FD8D6ADEB1E6DD7B5BD7DDC87BF7B0B0B84646B + EF564DF497939B9373CF3D9FFB3DBFC73984288AF06F18911258E4C2A1D1F6D9 + A14B516F0FCF4EE208C52CD358561A9C35FADC2A82D6A5032C06FABE9DFEFD63 + 35339E911D678C3CA51170948F926C800A4EA962EC72CBD3FB328BEB71CD2503 + A350F7B503FC4CF3B2A288D6C880B602B4EB81CC92DE09D310E984484724C04E + F66BA9CC5A5BE5F164A4270116E2233FEE525337724AA244463D64BC0664C663 + 738210FC460C364CF46A62FCBABC17CE02A95A2CD8F3F3412170CEF6A400A6FD + A05E3DDFD4D81FE03FE1FE93248D3BACCF7DB4287064E2B7F1B69D8EF210697A + 17D4A50B6E20C46E0BFE53C35D7A6BD5D78C75AD72F0F0C5ED66EB2F067B19E8 + EA16A6262C7C71D675CBE759EBA83BAF101C0F0CBA9AB714AC0F83E12D209964 + C1020BB35FDCEDD4D96B2FAB8C854AC0BE3B5FC6DD4773569A80D99C2C35616C + CB448F5F653B6C5EF5A612F078FB7B3A6DA3D19E0FF413A981B98180EB5E88DD + 6EABFE5409D875E90D8BEDAA2EDB0154766A607E2A3C35EC756FB4D77CA5048C + 9195E3E8D49A2C401A53030B8188DF3B315CE1A86B54021E6DD9633237EBB328 + 20B58FBE2181D00181831442408C8318C1D47B081C094DF37E5F6DEEE6CF9480 + A7BA8E11A1931667F451A80E489354BC088C735A06C7400CA14AE07D585EEF7F + 3BA821CD7BB3CADE5702C6EAE1B9B6C3F16CE821AA1EC86CA0E4CDC73F00950C + 8E482553F0013F8DDE4D4C1CFA556FDBF4BD26AB5409187F7FB0A13277D5A05A + 27C87329A096036595628D320381A2653026AE30038217B809E03DD88F85C8B1 + BF8A0B5E6D9B270C16A85CBEDBA7D9A10F6DAB5859AE09E815404B6C02D96426 + 101A10517150E4BDC023751C38377063EE3B1AC679C85CBA4739581462F7BEAB + B516F630261E681BD0B940E5229E48E8C6DD163910FC4815652470A3ECF4A8A7 + 3F3FFFE56682542B07A3855C5726AFBFED2C8F80CA2E35DA4ED076196F939C2D + 44A4EDE5C644CE05D8E223431D23CB369CD2DB9F9F7FD9A42E0298573ACD4FA6 + 02548CE03C82CE4B74A4277A971B41A4283D47FCFD77C2E135F364516AE0F8EC + F0F00F35CE0D3A8A71CA8A73A53D47C5E875312A795756CC87EF0DB5773B5E6A + 52191C4B03469BBA79829BFADCBABA308124A4F0B64865043859F484C88F7B6E + 76D059F5D9CFEC4F66C164C178EDBA7B618BAD54D05A50740E81D98CA98C512D + A55350147C51EFC0D8ADB1826D9793BC6BA670BD9DE93B17EA3B622B73CAF16C + 968A09E6B1944E98C70177D72D7DD1C1CCE21D49AE96025888CDDC6D2C2FAC32 + 49D5434A62E641018982383BD8DA9BFF4A27A5312F3D18ADF74C49F1C6984425 + 0DD221413CA8D542B8AFC55FB2BB37F9A552075707A49EB4CF1AF97412E54382 + EDBBCAFC23E0C7ACAFCD9846F0BEA3A7E779FBC9E177D2083EB2F775958AA629 + 92E7056C9C20C81DFED8C986F48277BE586931193274DA301BC5168A44139DD6 + 8EEEF482CBD714EB19AD464DC7E2DCFD16C367BC67C0F51F55FC3FF3F1A1E367 + 188DBA287F45A64137E7E360981DF378398EFFE0C0EE748111D376E3F695EBDD + 28716E10436D53C553D5EB4AD52A3A5DE0393BDBD074A1A9153BDBB66EDA55BF + 55C10A0AC18BB7BF019A87E5CF155205F10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Installer' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8 + 6D000000097048597300000EC300000EC301C76FA86400000B6B4944415478DA + B5980B7453F51DC7BFF7919B67F36A9AA4491F297D50CA43191437184374C84B + 610E15867AB629283E8E7ADCF478C67C9F9DA33BE86488084C5014F50C713819 + 73500456A1F2105A1E8552FAA02D699B364D9AA4CD3B77FF7B934043D302CA7E + C93DF77FFF49FEFFCFFDFE1EFFFF0D85616CF18AAE09E79DCE8F1CDE60718492 + 533C254394160E3962A40D96F18FB4F08EA77EE25C3973A47339C3B059E063E0 + 014794666F572A0B0FE3071A35DC87372F6F5E7FA8C1BE44A1CC00CF08500A44 + 848300D21236909B15F53E39D1DE357794A7ACAFF3041AAA3612BE288A7FFA00 + 8CB67284FDAE356B7EF7E6532F6DD912FABF004E7EAE71FB8106F75C4EA68252 + A9229002A09C9CD940717624F0FB49AD3263B856D6E3B083E779048341F47A3C + 08F8FD64640AC66C2B7E34B6A023C6CA678F1F3FBDFABA034E7DA16D7B657DDF + 5C304A48644AC8E5022013D4A84291596561E59DFA0318535A02BF3F0097CB05 + 9FCF47DA7E44A351F1F7FDFDFD68BFD088D9B3A7F1991992D72D1F562CA75E7A + 2976DD00A7BFE2D8BEA73E240282958391B241B336C01AB51126277A1C7FB845 + 099984C677470EA1BDB51E9148F8E26FA50A0D6C234A110A85E068FE168B7FF3 + 20342AEEAC4A699A45C9CD4DD70570C66BBDDB77D5C5082081E39888411D66F5 + 2A1FE4914694F0B578F5BEA9A8AEAEC6F1037F87367606728E029D18D1139481 + B2CC279025387E78274A35E770EBC26791953B36EAF7F53CABCA1CF7E60F069C + B3A26FFB8E3A662EC731BC25334271E804173E0FB5C48512FA3C9E5B3413FBF7 + EF47DDB92A8CCD38070DE3059D20F4F869742AEE405E41196A0E7F8DEC5825F2 + 8C52144E988FE229BF45A8AFE7844C62BA8D52193BBE37E0928DFDC7361FE36E + 2C3406B0D8B20BE7BC32D4BB8250514EE4C61C78F29E7938505585D3B55F614C + 761F2CAC8B28180F316F8042AF7E317459793876B002A6C87F4540294743A9B3 + 62F4CF9F86CA901F0EF6B91F57EAC7ADBB2640DED5A4F5F39EEDEF55174E59FB + 4D04F7EA3F425ECF26D02A2B8E4A67E342AF07FA90074BEF5C8043870EA1E9E4 + 568C31BAA097F344C1F818BE000D976E11F4C6FC4180E2C424CB0B262E44C1A4 + 45087ABBABE4AC611EA5B6745F11B0DF7962A144A1DA18F475CB77EFDD871697 + 04598E8F219744485DA610E2CCA8A56F84A7278C05B316A0A6A6061D273FC628 + 930F2A054314A42E023AD50B60B41412C0DD3045BF81D5C092A44A9D2FC360C3 + D899CF40AA32F8C3FEBE0715FA319FA405E49DF5EA7EAAFF1385DA3CA7A5E60B + D41F781FE1701491284FEE3606098113EE1A722B1A7C36446479301A2CE8EBEB + 43D87B1E0A3608AD26836472040E870312A902FADC49C8C92B40477B0BC2EE06 + 68D82E841C55A0F9600A24CDB01831693151F46EF4BBDBFFA380F21E2AB3D893 + 0218F2D6BB698954F3DDB6E5E8EDA84B1B0F04151E7634566F6980ADA040AC73 + 19191990C96422684E4E0E140A85D82F954A91999989929212B8DD6E343636C2 + 669683EBFE0252F482A1074797C63C1213E6BF8A5834ECE554C5EA14406FDB6E + 5E612C85DB7E0A2777BE8160BF2B2D600F5586BF6C3E85FCFC7CA270186AB55A + 0414A0CC66B30828AC281289047ABD1E454545F090D5A5B5B5153A150F8DAF02 + 19120F38964E195BAAD061D42D8F21336F025A6ABE4441F9322A05B0B77E2B4F + 730AB06A2B585906CEEC5B8BF6335FA70C12E3293809E09B1F1E87D56A159737 + 01502E978B8006834184158A731250B811AFD78B8E8E0EC8183FACD44168392F + 38C9254053D11494DDFA04FC9E4E341DFE0C019F13372DDA381850583F850E4A + 9109655609BA9A0EE2F49EB711F27B2E01A20C2B3655C36834928CA545C0A45B + B55A6D0AA04EA783C56A414FA0073EA7173A2905335F45003D22A044AA24604F + 22AB6012DA4EFC1BF6337B45248A6609E086CB00CF6EE1792109882A823319A2 + A6446723012C45EDD7ABE068FC5604B4878AF00601CCCACA02CBB2D068341715 + 1460398E13134500546BD5509955E82235338020CAF54550DA778A8039232763 + E4F447100DFAC92EE843F4B9DB45308A62C899190CE8AEFB948F5FF2A2EBE211 + 4781C93043651A85F6BA3DA8DDBB0ECD1E33567C704C54474884640C0A9B0495 + 4A258289805209B94109A82CC045BBD0CBF6A2383F173F767931AD9CAC306367 + 89AAB51EFF577CA604581C924E03786633CF2700932A0A67E1C548094456A908 + BE7BDB063CF3FA0E114A38040505D5028180E86A41D528D913F22421627A52A6 + 74117849CCF573FD1891A5C46B335E86596AC0D9CAF5F076B724A09814F5D202 + BA6A3789319884E393A0493549BCB11A1B71591956AF7815EF7DB217AC442E96 + 19014AC8684151A11D23AF6866043E830F417590C079F0EBD13FC3D3B35F4127 + 49BCE6235B11233711876107400A859E15F79283014FBD9F88C1588A8AFC0035 + 85332BD7439E7D035A5A5AB1FCB917D1E604188611DD2A2829B40593A9650896 + 06C0E8BBF1E75FBE82918662D455AE83CB7E3A0196506D0058B22D600D02EC39 + F9DEA0188C83C552DC2D9C2952F939FD4828496C7EB4FE2D6CAFA805CD4AC5F8 + 13325B5871645216B7DD3C02BF58B8141D75FB70AEEA034423A15430D2A607B4 + 93FD820D063CB16EC818448A8AB18B7D1292404ACB24B89DEDD8F5D92A747777 + 8B89A5CBD4E3B6BB9F80566FC2E97DABD1DD7C74509CA5034B5EA70574D6BC1B + E74BE3D6F4A0493525909A6E10EB6675C51AD215C5F8198F93B254853A52ECC3 + A1BE2B83A5B4E92100ABDF213188A1637098B814CE8CAE38A6B24E123EE36BF7 + ACE2BB1BF6B183C0069692B490C300761F5B95F0F040B562575431D9C7A92DD0 + 14CEC0BE0DF79395C79B36F8534A493A970BEE4D6CD706031E7D4B9C32459914 + B562C3824A32ACD095CEC3CEBFCE1227A12F2B1F29E56440FB7265939602A8D7 + 17A90F6DBDAF42A3CE281FCA85696107F4716A01F04E11507053FA0460AFA8AC + 607DFEC0770B9FDD7573575797EF2220D9C0142D7F68EA63F3A617DF2B95D0D2 + 41057BD8188C81D3E440376AC10040F68AF5EE729747A25468EF31C7E6359F9F + 5B19F4F63492AAE015014D26935222515AC05045634BCD135F7878CA0323AC64 + D918A056BA6419E86EA92617BAB2BBE2806912801E42C9E4F72E3843E7DFF9AC + 7EFDE916CF9148846FA0C3BEF6CECECEBE81DB5AD6909B6B9432D23C922D057F + 5C7AD3A2F9D30AE7308CB0F6A4AA954E558E00EA472F4C000E5F88075E47792A + 5259E3DAF1EEB6C64FC9D08D8168A0B5BBB5B58B0C1A4E4992A4916D948AE332 + 2C31095D70D31873F9F34BCA9759B394561E43C5655C61A9260FFA31BF2280B3 + AF588893D7DDEEE8850D3BDAD61E39EB3A4887634D8180A74370EB409EA19E8B + D92C9BCDC044E95C09C716BEB874C27DB326E7CD26CF4DF450EEE634F9C81CBB + 18BB56CD49AD6B69EA1FCFD3B1C375BE5D2BB7366D8C84F88668906F75389AC8 + AA8EC8E520C33EB80BB11993A8B225345D306BB275CAE30BCB1E3267CAB3D3C6 + A096008EBBFF12E0E56089B6DBC73B365738D6EC3FEEA90CF3B1662AE4ED1062 + 6D2886610113C6984C85998C8CCA91B374F1AB8F4D583275BCE1565AD811242A + A76052AD2D0138377DF9A018BEBA21B07BCD3FEC7FF30563676341B475749CEB + 213F8D0E37F9D500C62D27476EA215D92C15B5CDFF59EE2D8FDE55F2B04E4D76 + 9E9703BE3D775021F6FAE1FCBCB2776DC551F7AE301F3ECF84C39D76BBBDFF6A + A6BD7AC0B8D1168B454F71CA1C8D4A5AF2A747C63D5A3E4A3F4D10F312E0ED03 + 369E34EADA22952BBFE85CE5F3D367F9A0EF02011354BBEAFF08AF15306E369B + CC0C90379BFFE09CC239F7CEB13D64B4966805C08AB7EF1001FD21F4EE38EC7F + 77DB41DF0E2A186DB673E4C9A9B93970AD537D3FC084A97372F47270D6BC6C45 + D93B2FDFF3FCC499CB4657ACBE034D1DB16FD77FD5FB564B57F4949F0FDA3D6D + 6DEE6B51EDBA01C6AD486AB1C44C3CC3E66F5AF5E8B2DDFFDCD8BAA9C2F72529 + 182D767B4327F9C2F7FE03FD3A01C64D6BB369E514A5A18214DFCFC53CEEE666 + F7F518F77FA874827403FF88650000000049454E44AE426082} + end> + Left = 32 + Top = 368 + Bitmap = {} + end +end diff --git a/source/forms/Glyphs120.h b/source/forms/Glyphs120.h new file mode 100644 index 00000000..fd4ff150 --- /dev/null +++ b/source/forms/Glyphs120.h @@ -0,0 +1,24 @@ +//--------------------------------------------------------------------------- +#ifndef Glyphs120H +#define Glyphs120H +//--------------------------------------------------------------------------- +#include +#include "PngImageList.hpp" +#include +#include +//--------------------------------------------------------------------------- +class TGlyphs120Module : public TDataModule +{ +__published: + TPngImageList *ExplorerImages; + TPngImageList *SessionImages; + TPngImageList *QueueImages; + TImageList *ButtonImages; + TPngImageList *LogImages; + TPngImageList *DialogImages; + +public: + __fastcall TGlyphs120Module(TComponent * Owner); +}; +//--------------------------------------------------------------------------- +#endif diff --git a/source/forms/Glyphs144.cpp b/source/forms/Glyphs144.cpp new file mode 100644 index 00000000..2116021e --- /dev/null +++ b/source/forms/Glyphs144.cpp @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- +#pragma hdrstop + +#include "Global.h" +#include "Glyphs144.h" +//--------------------------------------------------------------------------- +#pragma package(smart_init) +#ifndef NO_RESOURCES +#pragma link "PngImageList" +#pragma resource "*.dfm" +#endif +//--------------------------------------------------------------------------- +__fastcall TGlyphs144Module::TGlyphs144Module(TComponent * Owner) + : TDataModule(Owner) +{ +} +//--------------------------------------------------------------------------- diff --git a/source/forms/Glyphs144.dfm b/source/forms/Glyphs144.dfm new file mode 100644 index 00000000..232c732e --- /dev/null +++ b/source/forms/Glyphs144.dfm @@ -0,0 +1,15823 @@ +object Glyphs144Module: TGlyphs144Module + OldCreateOrder = False + Height = 437 + Width = 215 + object ExplorerImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + Background = clWindow + Name = 'Upload-Download file (unused)' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000180000001808020000006F15AA + AF000000017352474200AECE1CE9000000097048597300000EC300000EC301C7 + 6FA864000000204944415478DA63FCFFFF3F033500E3A841A3068D1A346AD0A8 + 41A3060DBC41007F4147D1A1B250B20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload-Download file remove original (unused)' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000180000001808020000006F15AA + AF000000017352474200AECE1CE9000000097048597300000EC300000EC301C7 + 6FA864000000204944415478DA63FCFFFF3F033500E3A841A3068D1A346AD0A8 + 41A3060DBC41007F4147D1A1B250B20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000044F4944415478DAB5956D4C5B + 6514C7CFD3FBD2F6BE415B0A8C212E01C310060ECA068C2D31D12CC6A8593431 + 6ACC927DA0C5D7B8C50FC6C4D7C49868B6C56C0A2C6431BE2C6659962C4E374D + 50D9205870636C04C312824602227DA1CFBD6D6FEFBDBD3E17A15B6991F161E7 + 5B4FCFF9FF9EE79CF39C8B4CD384BB6968058010CA383F02E05F0750362A76DC + E9BCC7A4D3CE97B03A69FDB6B473003D12FFBC69A25EE2F97A16E303EF00A4EF + 44BC5B14DB6D14BA407458C3D0F6F963F1F339004B9C61D8CF77B5EF40636313 + 10FA27FC895F965F5D4FBC4BE41EA329E6744B5B939DB2D96070604453539AAF + 5396C732806E4178C6EE60BFDABDCB874451004337A07F6018A251FC764096DF + 5B4B7CF950BDAD3BB7332E5701602CC32F978204A067037A246962FBB6EAAD15 + E59B32C9A99406FD43574091E32F939B1CCB298B24BCC2D9ED475B9A1B9028F0 + 104F24A17F70C45455ED69127F3AAB445D82B09765E933BE6D357C71912B2392 + 48AA7039386AC613EA7301453995298B24BC2B72DC5BAD8D75E074D8415553D0 + 3F7C0D9484DAD189F189BC4D3E2E3ADB181BF36D534D95ABCCEBC940B0128781 + D1712DA5A7F6CDC6E2DF6F12842305E4F4ADF55B816518D0341D2E8F8E93B8C4 + 1B7E8C3F5CC9CB3B45C704A19645F0537DD5166F45A937038990DA0EDD984CE8 + 46BACF2D098FB6D4DE07144581611830343E09A198723880F1A1DB4B9817B054 + 5BA7B30218EA524D795945555949C6BFB088617A7E019A2AB700B22130D32604 + 6F4EC17C149F24273FB0BA476B0296E7BA8884FC5C59E2ADADD95C6205ACCE86 + 2BD37FC14C387A760ECB4FE57B2FFF0BB0EC084021278AE7CB5D056D0DE5A559 + 901B3373301D8AF411F14788782ADF08AF0BF8AF54745FB5D75D5955E4CEFA6F + 2A148189BF17C6152CEF390810DE30C06A3683E0626DB167F3BD055276D272EC + EF0B61988AC406758CF7BE0820DF31C01A5716E873F55E8FA74CE032FE195981 + 3F62323497149119A0967CD709E44F59BE3817931F5F5DAABC802E9E7F98A1A9 + B30FB80B79AFC391099E27AFF4B750246422F3B4483381668F1B1C34B5D4ECAB + E128CC2513DFCCC6E4676F6F760EE033417892B5A1533E572153C83219F1702A + 0523914545D78DDD9DF1F8D52E913FC8D9A88F7DEE42C4D3F492D048741116D4 + D48900963BF2027A24613F8B6C277714484858BEBE65315D875F17639A6EC243 + 64E9F5DF1A63DE8AEFF549222511884174863186A8A67FE0C7F29B7900E27803 + E7BCBF94B97572C5484350518C14184F58FB7D751397D634D8CE34F21CE32610 + 8D6805C95AC1867E288095C3AB00523B8DE04223CBF285E406492B3899345548 + EFEF88295FC01A4696E41ECA86BE6B20795E92A792BCA16412129ABE33108F07 + B37A607D952C481D4DF33749691448BFE68F2947611DEBE6B846B2987EA8A329 + 0F4374AE697A48D7345F209198CE99220B0208BE84B4D94B76FAFBEB89AFD8A7 + A2BD9A42CC8F60220ED2E907FD8A727DDD97BC512323EA280670BE40966F4E93 + EF96FD0B13694CEF65581A8D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Rename file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003F64944415478DAB5D57F4CD4 + 651C07F0F7011DB7FBD26E9464C36A32A72BD762E92C576BFC52A473C16C2512 + 543A130522F347830CEB288D69A889C2A9319D6B3A68B82285B18880A008327E + 78EE8438B99F9E77C77170DFFBDEEF1F4F5FAE798B90EF5D7FF4FCF93C9FE7F3 + 7A9EE7F3D9F7CB238460DFB92E82C846AFCB8797EB4AD298FB2D4A80A847292A + 8D67B7F7ED041CB373BC7BC0B1C254100E6676A963488DB6EBAA5F5D3EB2E17E + C89907A9FD8922D117CE28182C16FADD2286B93207F007B82FA231D1501A69B4 + F44FCC434E098589F102FE787ACA5A217B6EFC3922C79879AA610EE0F57303B4 + DD05DAE181DA64C3D5DF6ECF41DED998D79212E313678A087C1A3DEC4A2DBA2D + D3A34160EFD94E727C671A5CDE002710130558EDEE20A2626FC222323BC3A4CF + C8DA562E5E92D45DB0F9154CEB74883F2281417603777CFED420B047DA414E14 + 65C0E1E10684FC28F8FC8110A234B048DFAD9BEB9DA5D136D1FA65AB33CAF8E3 + 6A23140A15319CAE6EFE7CB87F5310D85DFB0339599209C6EDE70494062B7A64 + 5A36B93B34C7D735227F9D1E02FE0CC66F9A20B7E5BA3B079D7E8BD9BCFCFB86 + D3FA20505AD3464EBD9705DAC90DCC8ED93ED018ADD04CD208B8CC889F28C69A + ACE7111B90C1EF9C8441C5E05A47427151D51FD2509B967CD94A6ADF1763C6E1 + 0B0B84205692B7EC46F25A3F28811DBC80054ED3287A7FF42BFA18CD5312097C + 21A0F8F85552BB972D903D7280BE3300AFF610963EBD942DBE07EE291934E334 + C68699D4EC8F75DDF7E282C0AEEA6652B72F07964801E2C7ADA66CACD9F03862 + 0509EC539960D3F5A3A79D6ECCAED06EF9676810283CFA2D91EEDF0433E38D28 + BF61A81E4B1EEA457C6212A2A3E3605534413EE2704DEA98653912AD7E1EB0A3 + AA8948CB5EC3A42D3CE0B59B70F7A73CAC5AB7020F502FC235F93BA634C318FC + 45F7017BFAEA7FC70781ED87BF21D2F2D7230254ED7BB0EA392B040F67B2958E + C6D4C8490C0E4CB38555840A3B0FD8F6590339F3612E4C3437C0E807C0371D43 + 52F24A44C589611DAD875EA98442767B4E61E7015B2B2F11E9813C6E20E081A2 + 498C94EC04C43C22819756C33C7C02DFF551283E788DB7D0B620F0D6275F13E9 + 47F99CC0D458176CF2663CB13C80C7569762FA7A392654342EAA7371AEB2841B + 28A8B848A4156FC2487B16040C37DA11CBF6FA93C9CFC2A81982C3D205D7A21C + D474C5E1D2E1ADDC40FE81F3A4EEE0DB2CB0F00D263A2F60C5E2585014058BE9 + 2EA6AD6A2CCA3884CA9A465CAEDACE0DE495D787FD65529A56EC7A430C2118FC + ACF0A0C718CF7E97FECEDB70640737C0E3F1C2E547FA4B2FF89C6E0FB6653D93 + 5BF8E9F92B6137FC57A0E0D58D2A9180A4D45E6E55479A3C046C29FB2AEC1335 + 1E2D0C7F8A8580FF73FC057EC15206A043535C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Show-Modify file properties' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003324944415478DA95D56D4853 + 511807F0FFCC5E082A8928E88B14455416F8ADCC524BD25E4C124DCD6559A4A5 + E94AC57CAB2C93A5D8F2FD360BC56A6265E68CDE2CC97CB9731F53FC60549216 + A58ECA79D539DD4E775337C5EDB83D97C1E5D939CF6FE73EE7EE08082148286D + 24B02D5A3413385012E3C5D932D8505B300DDC8EF4E41394C1FCA7B1BD172F95 + DF58CD04F1B1059903E8F4F485F4F4ABD13B3004B9E2AB4DC81C605C4707D4C3 + 1AA847B4E8557190B35F580EC4BF34CA4B352F102FFD4024515ED08CEBA980A3 + 0330383C3689F02BA965BF740C73DCDED2443F1515B8C434903BE7F761444B07 + 962E72C0844E6F427AFA79A4B5AB332FDADB850A888AEB497ECC7E70633A2AD0 + FD7B10CD1DBD7CF13153EED7C03F145CF0115081D88237A430CE17EA513A6008 + C33EE8E91B44CF809ABF2778A7EC4291E8001D88C97B458A2F1EC4BF91897901 + 13C44BDCA816D9B28F28B974880E444B5E90E2783FFC1DB61D988E74E96B3009 + 47E8C0B95C392949F0C71F2B80B8B2C56ED810FCD6171881C89CE784493C0A15 + 376E71604E552BC4A73DEC2A9E52F6D10C9C155713E6722006862C03B98F5B71 + 33620FB5A05637865F433FE1ECB47EF2D19537998133594F08931C6415903C61 + 71E3241D902A25B8ABCC45B2671682B747E06AC50C2022B38ADC4D0946BFDA32 + 9057CD22237CB7D5E2BFF95F7EB86207FF57A3852CE40D5CD6B822E341B31938 + 755D4698D450AB40C13305AE08AD03A217423475D7C37F4B2832BCF38DB9CC47 + 3380F06B0F099316661528AA51202DCCDDE277ADDF1B1057771CCB162F476DB8 + 124E4B561AF359B21633204CAF204CFA09F4A9B5168B30B56D4839EECE9F0904 + B71A93B07B9D0FDC9DBD8D8D0DAEF4C08FC16E24798811B4EDB4698E616B9B80 + B0D4325272E5240F585E8154DE86A4905D68F85A87B4B791705CB010D9BEE5F8 + ACEAE09B9B8D8DABB6E2C1B1F710C0FCBE19B6B609084DBE4F3D08D6AEDF80C4 + 60B7C97EB019A8FA2435220EFC35AED7E25EC04B6C59ED3A6B4EEE63D60C0804 + 025A7DE379111FE466EE898247DAA5C6FB839B4290EA7967CE1CC9533B0151E0 + CE59B99ACE32FEFCE0E0B7598815538D9D19F9D50AFB80D8809DB0270A6BEC04 + ECAA3E1506E03FAA81FEE06D68C3A50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Create directory' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000032D4944415478DAB593794854 + 5114C6BF374EB85793A6E192A464599428ED5A5A0A6AA6685222FD1304999586 + 88DA464D419B468665A4A4869495562A5A46338E4BAB4B4A890B44199A56923A + 8ED338FBEDCD8463CE9B74B4BA3CB8EBF97EDF3DE73E8A10028AA230D3169594 + BD946D423D042127EFA5C716EBEF537F0BD8999C7D3560ADC781EAC6CE21A9EC + 876BE9E544E13F047059D1298EBD594762169454B780FFBA3D470DEA3905E24D + 1196A31AF2846903A2537276D15D8A664C87B2172FB45B7622761B46E50A6414 + F06033D7128B1C6DF1E8592B0687C5A13A4039D7C196B04D2AE94BAD9A28499A + 28A52A248CDBF7FD17203BCDDD6541F29E481F6DDC7C8E35A47215341E2D4C67 + C184C54253FB2764DCE2BFBB97D6E7A505549C72A4C5D935AE6BFC963B7BAE9D + 20DFF3B61E1F1B6ADB28A5D25F03F1DFCD35B3B773A88ADCE2B5212AD01B2312 + B9C68416A611B7306523FEC25D0C0845BE45E9712FB480F2332ECDB4B897BEB8 + 1E44379711735488F7E1685C0C5C1C6C34A9028B06686E312A55807BBD1CBDFD + C2E4A2F4BD17C70064CB9E68A3EBD0F5D50C572B96E06C7C0438B32D31564299 + 5C49A74B81CFFD4264160AC890481CA303F86F5F6194386D16A7CB3623706330 + 56BA3BA37F5084F9F3ACC1B1364773670F5A3ABAA1A63587472468FBF0A55D07 + 30D6BD9458A2549204277B0EFA68A794EA0736ADF1C27A4F37143EAE07BEF130 + C7E43BDE4802B86A4A25D001C28E34199DA28EAE01A8D46AB839712012CB907A + A506D141AB71A7B201D9C782C1BFB40EE1C7BBB589D301B6A5D6423C70FFB744 + 18EA996BF44F854281151ADF73E06A2F427C8410D537729880D0E427900C954C + 29A8EBC9F858A60078CD5658EF2181CD6C25AA736F32015B931E6054F8C828F7 + 14F44B36F1AC20F736131092580099E8E9D4CEF5D708734F9057CC04041FCA82 + 7CA4CEA020358D9A68FAAABC32038083E7A090344CBBC80C23F4C7CF7FCC0404 + ED3F0CA5B495717826307E3E9F09F08BDA01B9A8C340B0B1F3F1B557BC4E03AF + 28E13C886AF88F419309EAAF5566A533013E21DE502BC5930A529342C6F75EF2 + BA0C3CD30349C6BB2693432AAF653200CFE8B12FFE592375E1C77BFC7480FFD9 + 7E020EF8EA5A9F9886D50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Browse back' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000015B4944415478DA63FCFFFF3F + 032D01E3A80583C302464646820AE5A2D73B3331FDEF63F8CFF8EEC1924047AA + 592013BA4A9A8583B5978D9D335C4A4E95E1C1ED4B0C0F1607127611410B1C1A + 58E464F58B981899EBA464E4B945256419802A192E9D3E40B905A0E0000A4D12 + 1611D39253506560616367F8FBEF3F185364012C383838B9C295553418F80585 + 19FEFEFD07371C6601B100987C8E402C706C040707333038149594B96564E5C1 + C1013614CD0218FFCF9F3F0C7FFFFC02D2BFC1F4DFDFBF816C200DE4FFF90D11 + FBFEED33C4070A711B0E8B8B4BD8A8AB6B32B0B173A01A4A2D0BC444C56CD435 + B418D83938A96F017210C92B2A72CBC92952378830229983335C0918C9024222 + 548A641CC9544858544B4E519581958D833AC9145746939496E5169394A75E46 + 43065211CB65595938FA81911F2C29A7C2F0F0F665EA5A000FB69875AE40757D + 8CFF19DE905CD8D1128C5A30F0160000028B95927BC437F40000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Browse forward' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001184944415478DA63FCFFFF3F + 032D01E3A805036F01298A1562D6EF073A49E8DF3FC6A2474B03F712520F723C + 6916C4AEFF2FAFAACBF0FCD11D865F3FBFAFFCF3E377F193D5614FA96A819EA9 + 0350D37F8657CF1F323C7FFAF8EBBFFF7F9B1E3DBED8C770A0E10FD52C606662 + 04E3DFBF7E303CBA7F9BE1DDDBD7D78066E5A1071BD802F9D8F58781B6D8106B + 09B20560CCCCC4F0E1DD1B867B776E30FCF8811A6C600B40AEE2E4E265606661 + 6360616505D2AC0C2C403633980D146381D12C7003D12D00D1A0607BF4E83EC3 + C3FBF7BFFE8506DBFFFDF57FA866018CFDF3C777869B37AE31BC7EF5F2D0FDC5 + 81F643C7029C41048CE4A3C048B6A25924D33C990EBA8C46DBA22266DD41A00E + 01920ABBA15F1F8C5A4008000070D418E0670E54840000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Large icons view' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000016A4944415478DA63FCFFFF3F + 032D0123CD2D908F5D7F8F918141911686039D7E9F512176FDFF305F279AB87E + D5E67D0C600B8444A56962C1BBD74F2116DC5B1840130B94E237402CB8BDC09F + 2616A8266C845870631E6D2CD048825A706D8E1F4D2CD04AD904B1E0F26C5FB8 + E0B7D470AC8AB966AF44E1074E7C8D55DDFA7C51385B377533C4820B3311167C + 8FF2C1AA9173D91614BE6FF743ACEA3697CAC3D906E9500BCE4D4718FADDDF11 + BB051BF7A3F03D5B6F6055B7BD5A03CE36CADC02B1E0F43484053F9D4CB16A64 + DF771A85EF5A7716ABBADD4DC670B66916D4821353BCE182BFCCB5B16A643B79 + 1585EF547104ABBA7D1D3670B645CE568805C7267B212CD056C06EC1D507287C + DBC2DD58D51DEE7785B3AD72B7412C383CD18B8116C0361F6AC1817E4F9A58E0 + 50B81D62C1BE3E840553D61DC7AA3827C812854F8C3AA722A805BB7B3C68E203 + D7921D100B7674D1C6028F32A805DB3ADD69628157F94E3A549943BE55010025 + 629B258265E8190000000049454E44AE426082} + end + item + Background = clWindow + Name = 'List view' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000018E4944415478DA63FCFFFF3F + 032D0123CD2D908F5D7F8F918141911686039D7E9F512176FDFF305F279AB87E + D5E67D0C600B8444A56962C1BBD74F2116DC5B1840130B94E237402CB8BDC09F + 2616A8266C845870631EC482E792A2605AF2F96BBC1A357A44C0F48D9237F8D5 + 25412DB836C70F2CF0525A0C4C8B3F7D05A66B161C42D1D0926007A6B5FA200E + B956F41ABFBA944D100B2ECFF6A54910E9A66E8658706126C4028389101F5CC8 + 7F8557E3CB559A109F865DC7ABCE201D6AC1B9E93E6001A3C9E260FA5CEE4B88 + 57971E41D150136D03A65FAFD102D3A221D7F0AA33CADC02B1E0F4341F9A0491 + 6916D4821353BCC1021FD76B8369FEC0AB7835EE88BC01A63D966BE0556791B3 + 1562C1B1C95E6081CF1B74C0346FC01530DDB3F2188A8692702B30BD2BEA2698 + 765BA68E579D55EE36880587277AD124886CF3A1161CE8F7040B38146E07D330 + 3E2E408A3AB005FBFA200A9D8A201A61FC29EB8EA368C809B224591DD882DD3D + 1E340922D7921D100B7674D1C6028F32A805DB3ADD69628157F94E3A549943BE + 5501003CAEB925E271BC950000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Small icons view' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001CC4944415478DA63FCFFFF3F + 032D0123CD2D908F5D7F8F918141911686039D7E9F512176FDFF305F279AB87E + D5E67D0C600B8444A56962C1BBD74F2116DC5B1840130B94E237402CB8BDC09F + 2616A8266C845870631EC482E792A27049C9E7AFC1F4C3A5EA7031F9E89B605A + A347042E76A3E40D985EE17F052E16B15107A22E096AC1B5397E608197D26270 + 45E24F5F81E9C7CB35E062B29137C0B4561FC221D78A200E591578152E16B65E + 1BA22E6513C482CBB37DC1026F64C4E18A449EBC04D3CF5668C2C5A422AE8369 + DD7E84432E17421CB236E81A5C2C789D16445DEA6688051766FAD2240E0CD2A1 + 169C9BEE031668597A042E59136D43B19851E6168805A7A7F9D0C407A659500B + 4E4CF1A6890516395B21161C9BEC0516B09A2E09973C96F91C2296BB0D210655 + F753450A2EC67EE71998FEBC41072EC61B7005AE176CC1E189108DB63311161C + 4E8758609B8FB000A6EE8F1AC202965B100BBE6D4258C0E57705AE176CC1817E + 4FB080C36C84C603A9108D0E85DB11625075FF35106517E38DA7105F6DD145F8 + CAE7325C2FD8827D7D9E348903A722A805BB7B3CC002D3379C804B660658502C + E65AB20362C18E2E0F9AF8C0A30C6AC1B64E779A58E055BE930E55E6906F5500 + 008014D125A62302A50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Detailed view' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001724944415478DA63FCFFFF3F + 032D0123CD2D908F5D7F8F918141911686039D7E9F512176FDFF305F279AB87E + D5E67D0C600B8444A56962C1BBD74F2116EC6BB5C490DC79E82C83BB9D315962 + 30E0547D1C62C1CA222D0CC97357EF301869AB90250603E17DD72016DC98E74F + 9320D248DA08B1E0DA1C3FB0C04B6931302DFEF415552CD04AD904B1E0F26C5F + B0C01B1971302DF2E42598AE5F7818454363BC2DD16220A09BBA1962C18599BE + 3409228374A805E7A6FB80058C26437C702EF725552C30CADC02B1E0F4348805 + A65320169CCE8158D0BEEC088A86CA281BA2C5C0E665412D3831C59B26416491 + B31562C1B1C95E6081CF1B74C0346FC015AA586095BB0D62C1E189100BBE6D82 + 58C0E507B1A07FF531140D85A156448B81806D3ED48203FD9E34092287C2ED10 + 0BF6F5412C702ADA0EA6617C4A01C83CB005BB7B3CC002AE253BC0348C3F7DC3 + 09140D990116448BC1CC035BB0A3CB832641E45106B5605BA73B4D2CF02ADF49 + 872A73C8B72A002174BF25DA047E200000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Browse to parent folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002024944415478DA63FCFFFF3F + 032D01E3A8054459C0C8C8C8B0B9414AE43F0BF376A09009AA92FF6718FFFCF5 + F46D78F6861483610E075BB0A5511A6838CB01597D336D2533071485F74E1D60 + 787CF1D455C63F7F1C48B104C582CD6DF26764F5CC8CD10D47B384140F1CF1AD + 7E688BB0A055FEBF537204D5C27DDFDC150C400B18512C7008D2A59A0507D65D + C6B4806AA643018605BE9567A866F8E676134C0B7CCA0F327C79BB06AAE43FC3 + D1936FC0B4B5B908984680FF28342316B9FD7366615AE05DBA83E1DBFBF56005 + CF5FFC60A869BB0166B754A931484A7060180CA1FE63B574FFDC0598167815AF + 65F8FE612BC3AF5F7F196ADAEF022DF909562C29C1CED052A9C8C0C6C684C3D5 + 9816EC9BBB14D302CFC2450C3F3FED6298B1E039C391939F50B4DB98F3326424 + 88633710C52710F6BE79AB312DF0C89FCAF0EBF321B8E298ACFB607AC9340524 + 17A3D3D88369EFBC8D582CC86967F8FDED145C5174D653306BE934299C06A15B + C208F5D19EF9DB302D70CFAA60F8F3E3325C4B74D62B30BD6CAA0851AE4696DB + 337F0FA605F6C1A10CBF3E5D872B4B6DE7642005CCAEFC02B7E8F8EE1B585251 + 5E07C3FFBF9FE08A4213F79064C1EAF98E701F6C9FDA8D6981B5A711C3BF3F08 + 57607A1D5BF2C41E4CC776DFC7924CB38BF16A4291FB8FDF92EDD326A15AB0A5 + 55FE2850CA8AA430C10380261FF3A97E680DB780960000069B59E01301ECC000 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Browse to root folder - remote' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000023B4944415478DA63FCFFFF3F + 032D01E3A8054459C0C8C8C8B0B9414AE43F0BF376A09009AA92FF6718FFFCF5 + F46D78F6861483610E075BB0A5511A6838CB01597D336D2533071485F74E1D60 + 787CF1D455C63F7F1C48B104C582CD6DF26764F5CC8CD10D47B384140F1CF1AD + 7E688BB0A055FEBF537204D5C27DDFDC150C400B18512C7008D2A59A0507D65D + C6B4806AA643018605BE9567A866F8E676134C0B7CCA0F327C79BB06AAE43F0E + 9A8161EBDEE70C7DB3EE30E868F0314C6CD465606440F63C84BD7FCE2C4C0BBC + 4B77307C7BBF1E433132FDF7DF7F86D8BC8B0C2F5EFF6498D4A8C9A0A3CE8355 + EDFEB90B302DF02A5ECBF0FDC356ACAE86B1B7EE7BCDD03BEB3183AE3A37D002 + 559C8ED9377729A6059E858B187E7EDA8553D3DF7FFF1862F26F015DFF1B68B8 + 22D0122E88DC7F4CC7EC9BB71AD3028FFCA90CBF3E1FC2EA0350386FD9F781A1 + 67F64BA0C19C0C931B64F006E5DE791BB15890D3CEF0FBDB291CAEFFCF105DF0 + 18E8FA3F40C325809670600D4246A88FF6CCDF8669817B5605C39F1F97515C0D + F3FE967D5F19BAE7BC071ACCC630A55E146F2A03B1F7CCDF8369817D7028C3AF + 4FD7315C050C7A86E44E268697EF1918BAB3FE32682B3060311455ECF8EE1B58 + 52515E07C3FFBF9F30346EDAF590A163DA65063D4D418619ED96580D4417DB3E + B51BD3026B4F23867F7FBEA068FA070CFBE44E0EA0EB1981AEFFC9A0A3F017A7 + AB91F51DDB7D1F4B32CD2EC6AB0945EE3F7E4BB64F9B846AC19656F9A340292B + 062A01A0C9C77CAA1F5AC32DA0250000C5DB7BE0A17896910000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Browse to root folder - local' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002474944415478DA63FCFFFF3F + 032D01E3A8054459C0C8C8C8B0B9414AE43F0BF376A09009AA92FF6718FFFCF5 + F46D78F6861483610E075BB0A5511A6838CB01597D336D2533071485F74E1D60 + 787CF1D455C63F7F1C48B104C582CD6DF26764F5CC8CD10D47B384140F1CF1AD + 7E688BB0A055FEBF537204D5C27DDFDC150C400B18512C7008D2A59A0507D65D + C6B4806AA643018605BE9567A866F8E676134C0B7CCA0F327C79BB06AA04E2A1 + 5FBFFF3244E79C6278F7E117C3C4467D061D0D3EB81C8C666440F63C84BD7FCE + 2C4C0BBC4B77307C7BBF1E43F1869DCF1926CD7BC0A0ABC10BB4440B61C17F06 + 0CCBE016CC5D80698157F15A86EF1FB66228FEF5FB1F4354EE15A02F7E334C6A + 5465D051E7417335A605FBE62EC5B4C0B37011C3CF4FBBB06ADAB0EB2DC3C479 + CF1874D5B9809628A11A88E213087BDFBCD5981678E44F65F8F5F910166F3330 + FC06FA2222EF2ED0177F192637C8022DE2C0E97A10BD77DE462C16E4B433FCFE + 760A8726605CECFAC83061FE5BA0E1EC404B24315C0D8F7020DA337F1BA605EE + 59150C7F7E5C866B6144F33E282EC2F35E30BCFBF88F614ABD08D02236AC0E01 + B1F7CCDF8369817D7028C3AF4FD7B1781DC1DF728C9161DA0626066D85FF0CDD + 597F19300144CFF1DD37B0A4A2BC0E86FF7F3F61351846837C1194BA1F18173F + 1966B45B32E8690A60B564FBD46E4C0BAC3D8D18FEFDF982356C91836DF33116 + A02FD880BEF8CBD093F5136B301DDB7D1F4B32CD2EC69332D07CF41F8B1812BD + 7DDA24540BB6B4CA1F054A59315009004D3EE653FDD01A6E012D010020AE80E0 + FA58E6090000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Browse to home folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003CF4944415478DAB5967B4C14 + 5714C6BF995DA4E5B1028AA56C8CD01834B1AD4A01A324A2D1F888419A185B5B + 954421264DD5B4093531C6645168227F98765113145FA0411E5B8A0922F14980 + F868C596FE61A32E1656BA28EE835D20B03B73AFF70ECBB01B9087D1C94EEEEC + 99D9EF77BE73CECCAC4029C5FBDC84A95CBCCD50BA4C0615CB0C994DEF1C9069 + 28318AA2B007CCB12CCB85A58776EC7D278074435148240DBE2508420A2F2725 + 047C25B2FCC0DBE35D5179E2FBDEB70664EE3F994083A635037426A5041161A1 + E0ABA3C73D0421D42EF54BA9A6637BFE9D32E09B03A73769445C624A5A2EF6C9 + EC18AC5B9E04C28EAFDCBA07737B27E3323784B28AD1ADBFFDFA43F9A401DF1E + 282E1440770F4D18C5D245F3919AF42962A3C220B390A5DB85C6FBADB8D7F20F + 2F157C9378BCDA98B37B5C40FAAEA290F019C26D269ACC4B11A4D5627D5A3216 + CE8F43746428CF163201DB29ACF63EFCF5C88C6B371B31E8F128A5A3105BDCDD + 0369B72B0DBDA3009B730AE3359AA03F0112C5338AD485E1CB35A9981717035D + 48B0223A2CCE5DF0D5D93B80C7ED5DA8ADBB0687D3A90C009374128F27A9EE7C + 9E59056CD9776C152056B02C14F1B971B1D8B86A29E67C1C85695A8D9F306FAC + EFD807EA1F9460E972E0EAF51B6833B729E562BB93C8D296EBA547EA85AF728C + AB19A79E05456E336DC9E7484B59087DB44E71C6C57963C772301CF348042FEC + 6EDC686842EBC307F08D336109AD1536FFF84B16FB5ACC822E51FB81AEE0A7ED + 880CFF908FE028217F71321CF3833FEE78892A530D7A5E3D77B17EE92891BE63 + 253288197B4333BCF2604B78E8ACFF4A7ECE46DFA03C22384E7902CEF3C6DB5C + B854550BCBD3BFE382349AC4864A634DC0147DBDEF242DC9CF867B4086447C82 + A3CA4303E0C42FC60115A65A9417EC12C61C530E3897970DD7801490D948297C + 82639487AF5D3637AAAA27009CCDCB82B35F0E108A8F0E1EF36EBFFFAC571567 + 1FD668174CD557C6079C399C05479FA466F8E4B90D6B16C562DD511B64C9CB9E + A492B2361C8C87E98E0531D1112A84037EAFA91B1F70FA50166C0A60C881B9D3 + 8EB58B63B1FA88953D16585C66104942536E022A38604684DAF46E06A8B93C01 + A098015EB9BDEA8FCC9D36AC4FD463657E872ACE5DDCCD5F80F2660B3E9A395D + 756073BA27069CCADD8997EE11076DFFDBB1E10B3D96E79A4700AC447F142C46 + 59730766450D39E0DBA40045869D78E1F2AA37529BD58EF4243D961D7CE4CB9E + 9D636BCBD1145C6CE480E9187EAB4F1A60757AD41BE999D5818C643D96EC6FF5 + 6BB28456632A2E34B62B0E301500DEB03D21890A80F85C7C16FEF44D970602DE + F7DF96D783351F00DC26FB170000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Refresh-Reload folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004744944415478DA9D955B6C14 + 5518C7BF336766F6D6E9EE6CED0DDAEDD6223C20284A811891F860F0C203A834 + 4D9A3469441F7C213180BD845843DA45AD0FBCF8A018C5A44921824830482421 + BD581EF0A1B1245E9076B7AD0D2DEDCCEEB6DBCEFD7866B6DD76DB4D5B3CC9EE + 993373CEFF77BECB391F2284004208D66CADC056607FB9895188218467003DB2 + 18121B694AC8B9A68722C1F718B0B4E146F95BB416A0A22DF03230A801013ACC + BAB0806D6906816558A029060103EE5A402ECF6BF2178F5A61D65E136E173FF1 + 0979A752B3B31420B97202369D11B6F1983BC77AF141A1D80B5ED10598C399EF + 2CC3018B58D0520624276761FAA12C539D568ADFEC137CA7F6ECAB86DBB7BA61 + B8711AAD0284DAFCAF208C7F0886045F5E9167159C655807C0D93FCC3B6353B5 + 60E88F1818BA017BF6ED06AFDB073F5DBFB11A108E045FA51BBB5EF494884DEA + 0625AE81AE1A404C02D445E0C97743A0281F5CBCDB0138209C8661BA1011063C + 2EAF33FEF1DAB56C4059247F0B8BF06F8132C13F3B390F866A7413804B168141 + 62992A8B71151DBF8631AA2D091773A5E5C56908B522035B00DACF97AF5EC906 + 8423620FE7E5F66B73FAB465A1BAD116E966AEC0979FF157312CF35D61E9132F + 6CDDBE05F82C40DA65B6EB2E5EB9B80428F818E50B2E51A6A094A6EBD5E3A767 + FE5A276DF9B02B3858B5AD726BE5939554D88E4B1A94B68A83CEEF3B57B8A83D + 70000892C75AE4DF619D465331E2157C8DBBF73E075EDBE778C9458B71B970E9 + 42EE2C5AAF55B48B9FE509BE13CFEFDD9509E81280CF58F075D7F9C70754B407 + 3FF08BC2E7BBAA9F0137E75E125D6101831838DFF5D5E303426D81E3F42477D0 + 93CDAE379700E98B364AFB1D40F86CB0972E7A71038B0C629113232DF1731BD9 + 90B379FBAFF26C013956FBEEC24B0B0C62826919602EEB155D81FE3B77409A96 + 4FC69AA58EFF05B09F4D42052D9342D2BD3D9E57E6A1AFBF0F12896447AC593E + B9D184C802BC537B2C23E8F40B3B9F53E6A0F7D75E48266736245ED626EEA4AA + E25873BC3B0BD050D390D335F787FE817B83F7FE8EAAD20E7AC0B4B5C49D5B98 + E3EE524D1F5249C1F047723C03A83F5ABFCA358BFDC0C0008C8D8DF7D33A503F + 7A3AF1209778795BF020C3904E978F2FD0525A6FB4497E29CB82BAB7EBB2840D + C782254874380643F78774C3B4BA6852DF304CF30162B08BD69F1D745CC3B9B9 + 03FEE23C981A9513609167A34DF16816A0F6CD5A4748511540B4B658349BECB1 + B10CAA6A0A4C4E4C417C3A0E8AA202C330C0B959F00568DDE000C6FE9C30894E + 0E459BA49F5705B9E6C85148D180F6F4F500CB62787AE776F078DD4E1C8C1571 + 59ECEDF7866980F45086896129454CF3C8484BE2979C5974E8F537A0BBB70766 + 92C94F699DFD979EEED6D24DC562C9E612F0F93DD42292E532DB82F8541CA4F1 + 04D02BFEA666EAC757DEC2CB00415510F2795B3CDA2C7F687F2C6C853C0F2FBE + 4FEBEC5B8845D51E8F1BB13C06CBB24055745AE9F419BAF62A257F136B89DF5E + F31CD01BB29E3AD43DD2247D996B6228E217190B5550CB0A2D84346C92919899 + 18A5696BAC77D0FE037927CDEFDE20F35F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Show About application window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003214944415478DAB5D56B4853 + 511C00F0FF750F65961A128606D997080ACA7C867DC810A28895144B4A56A2B3 + A99599BA59A9D3A636673AA2E8E1329781358DFAE007A10743299D2E5D485A04 + 52593E329D2D1F6D6EF7DEEEDD22DAE35C93F0C0C63D8773FEBF7BCEFFDEFBC7 + 489284E56C180D0804655C2C3CB4180348050CC2FE2B220923D42D37901F47E5 + CDCDB20507902CA9BBC44FD85A98BC3B1A7C7C30E4DACF631380E30484AF5D83 + 9C63B5E1D0D8DA05CFF483955A65C605077058AA9EBEAF480F22080C08C4910D + BCFF003925B58EEB0AA918622336799DE783611462833499C6F4A04A14ECDC81 + 544D521DB0D808E49D3D7F6100C5B546C7B558980407F7EE42CEE5B07CE0E839 + 3550313117607E010D90040E1A6D2B58AC36101DDD0F6C0E173997CDC24078FE + B6273063C1918B306AEBBE6C677EAC7612989E3E1A482DAAF704CC3FBD03FB52 + 4EBBF4F3328590101F850458D483925EE205989EB77B5DB08AC786271D06905F + D138FA926C21EC888B440274A24F94DEF104A6E6ECC8452FF5BD507DDD99E482 + 2C21C4330074CBBED8E0097C9BB1211774F5F4B900DB63B63102A7CA35AE4093 + 8219D01BFAE0F26F209F02E2A299819C0A37E05E653A4CCEA2816E83116A6E34 + FE49726C740423905B79D71568284F03D32C3A073DAF8C507BD3099C150B2126 + 8A19C853B801EAB234F88E788A8E8872BD8E37A95548A0A0EA2F80FA16CDA9A4 + 293C0263014E78BE40EB827DBD06F93465F53A6E32CF82E2D6A3096D9528C409 + 48D4D5919BD7E72725C682BFBF1F1014423BF46FA9F5629A0AFEB0AD138686C7 + CBB54A51F1A2F5804FA1315B36B804B12ED8A0A367003A7BDF82CDEE76AC543D + A0FEEBBF1A46E53A9DCCEE00E8EF8C7BE34BAE860672560C4BC487585C0EDB31 + 66A76A41B7F11DB477BFC12D56AB86B0E1B21655E6086A378ED828405050278F + 8BD858B427210AE8437A3D3004BAAE7E30FF987B4C1244514B8D7870B1E34202 + 3B8F97FA8584840D9F3CC65F3D693253B5C0081326733B06F642AD324BFFAFF9 + 400282FCBAC4C000DED380953CF83236D90F38146A6B32DA96946D26E0C01955 + 1097EBAFA4AA8CAEB97A5C0B504A2C35B80BB09CED17F6DDC6E0173220850000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003904944415478DAB5945B4C13 + 6914C7FF5F674A3B804A2BDE6A7A4110355E4A94D4A871BD6BD658964DDC8D11 + 8D46D1F8A02F262692145313D4174D7CF0CDCB6A14A389645751EC2646011341 + 618D12DD46AA28AD170C966B29B474FAF9312D976A6B8BD1F330DF993933FFDF + F9FE6766084619FA23C95340940504580D42598E20A5B0B3D2AD665FFB550D54 + 1AB982D858DDF3A6A8CD4446236E38A62A828C14A74E1004619C025C928C9D72 + A03EA6F6A9175DEEEED78480CB9E95AD6BB43BC000246180E198FA7C52AA7C9B + DA3006C1000591018A140504B900252F40C12BD1D7E587DFEBC7F4CC6C9497DF + 4C1CA03FAADE2F17B81349293C7ADA7CBDA0F4312804C211E344ED784E97A165 + A0640652321003724A5CFBA76C18506ED5A4539EBB0D90DC48695ADF27EB5F7F + 80F89B389EA48A81E029AFAFBDA8D50ACF405553A2D6CA65F4C28429E92B7272 + E649BB504A0001A565A52140489CAFD41A4DB3A799960E0A4BC7B74FEBF0EAD1 + FDE707398FCD8360B7B3A8E3F048BCC6AAD2252950953523CB909D353D241EDE + C55F57CF8500378EE8EA757373174C332D19D9F9D0EA6AF88F411E7C659BC86A + 25BC17AA1919CCF390B8820BED8097F13873E5741850A2A3CB0BF78E108D0444 + AECCC4702E52117F5CBF0447FBA758A3AB65804561C09EA1071302D1D8B57B67 + CF23CFE21C7A7924C08AC242E98627B72AD0FEE143A26F6E02416D21C0CEEDF0 + 7676C051FB024BB65EFC21D2627F1B2A8EAF6D92002B776E41CBCB26F6CD1B60 + 98FF2BFA3C0F13B02BFA6C06AFB5381A61AFBC77390CD884FFAB6A90B9701792 + D30802BEE6A82289CD2294DBABAA19E465A10458B563236ACA6C58BCF938A868 + 4750EC8ADB3D89A87F0DA8BD76033DEE4EA3045856B01EB57F5763E5EE93F075 + 57C6B421A64D34B21EF0F9505D7ABDEB71C0A9920039EB4C686DF663CEAA8DE8 + EF6D88D3EDB7673190BBDF7DC4D37F6BEE982DCE3512403FC780B1938D989C39 + 15C1FEF7A3EBFE8B7CA019C7233BDE3C6B2AFECDE22A91006993D230EB173352 + C6F941839EE18EE9F741EA2BEAD0D6D2B126BFD8794702F07219166DC887D8E3 + 607FE26822D1CE635C63CF3FBCFB025EBF77CC9FD6568F0448D7EA61CADF2D75 + FF6D91F8106FA71B5597CE34E4595C46C9B2018061A6061ABD9A01FC316C180E + 1207E26EED41E3939653668B6B5F18A0A50BF37E875A9B19C7EB2F046974C8F3 + 4A1B5CCFEC05E6436F2F0FEEA08EADB9F841C166E891896286D9FA5EFA8F93E1 + A1FE9CF80C29F6B8884ACF7F000000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select files by file mask' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000E24944415478DAD5CD390F82 + 40140460F897768280673C3A13B9514CEC3CE2C969E7BFC4C6EC1AE2EC62164C + 9CEA1533EF938BA2909A8CFC33A0358F6A931E1B43FE08DC435DF879DB8C3190 + AF346140B1120C6435002A0B489718E8D809B9793D0824011E6A0E05783D08C4 + 41070E75272537AF0781C8C743C3A500AF07819B47875D2F95AAA6BC83C0F5AD + D8FB0228EF2070715552ECFB5965A0BC83C0D951E1934140415E0F0227C670F8 + 06F07A1038DA78385A5280D783C0C152E070BCCAC9CDEB4160CF1856CD8405EC + 4C71601A3280ED421C98AD1980F0F7573E024DE5FF81270F54E7D1C5DD11FB00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Deselect files by file mask' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000C64944415478DAD5CDC70AC2 + 50140450DF5FBA33D58A652798FE9208EE2C5853DDF99771232A21F792705F04 + 673D33871545D16933EC6740771909931E1B9D5502F750239FF78C1806F24025 + 039299C0402600903120F5E980622140C2E9806A2340CC1532A0D9290C441E1D + D01D04B8B91FA0EFA6B54FCB3B10B87E15070D80F20E042E8EFC2E0EBDAC3650 + DE81C0D9966B9F42197104380900C61870B4E8C0C44780832991816990C3C05E + 0030C3809D4107E621026C577460B14600F2FB2B95405BF97FE0094E72CFD128 + 7DC76A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select all files' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002674944415478DA63FCFFFF3F + 032D0123DD2C88289F4D359B5674A63262B560616B0AC586C757CFC16DC18296 + 648A2D48A8998BDB82F9500BE6AD3BCC70F6DA0386EC4867062D65299C865DBB + FB8C61EAF2BD0CC65A0A0C4941B660B1447C16CC6B865890DDB298E1FBCF5F0C + D2E2820CCD3941382DA89DB28EE1E9CBF70C9CEC6C0C536B62C16249B5782C98 + DB04B160C996630CFB4F5D07B34B13BD18341425310CBF71FF3943F7FC6D60B6 + A39926438C8F15989D5C87C782394D4960F6AB779F19AA27AE61202609333232 + 32B4E687308809F182F92975F3705B30BB3109AE71DA8ABD0CE7AF3F246881A1 + A63C435684339C9F5A8FC782590D080BEE3D79CDD0316733986DAAA3C4901AE2 + 00979BBDE600C3E92BF7C0EC8A145F06251951B85C5A031E0B6622590002DDF3 + B632DC79F49281898989A1BD208C41808F8BE1C3A76F0C95135631FCFBF78F41 + 59568CA12CD907454F3A3E0B66D427A228BE74EB31C3B4E57BA011A9C510EE69 + CEB06AC749867D27AF81C5328141A3AF2E87A227A3713E6E0BA6D7A15A00926A + 9ABE8EE1C59B8F0CEC6CAC0CB599010CCDD33730FCFCF59B4142849FA12E3308 + 18C9A87192D984C78269681680C0D173B718966E390A668B0BF333BC7CFB11CC + 8EF6B166B03652C3509F85CF82A9B59816FCF9FB97A176D26A864F5FBEC3C5F8 + 7838199AF3421958989931D46737E3B160724D020336B0EBE82586CDFBCFC1F9 + 3E0E460CEE367A58D5E6B62CC06DC1241C16808A8DBA89ABC1610F8A8B46A0EB + B938D8B0AACDC367C1C46AEC1680C091B33718B61C38C7E06D6FC4606BA28153 + 5D7E2B1E0B2654E1B6805850D086C7028A4D8702AC16D00A0C7D0B005E1C55E0 + 92EFF4550000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Invert selection' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002074944415478DA63FCFFFF3F + 032D0123DD2C88289F4D359B5674A63262B560616B32C586C757CFC56DC1FC16 + 4C0B7EFEFAC370F6DA03866B779F31BCFFF49581919191414A54804147459A41 + 574D16C887A8DB7EF81283A7AD1E43620D1E0BE636A15A70FCE21D86953B4E31 + 7CFEFA1DAB6B4116C5F9D930DC7DFC9261F5AED30C20FDC975782C98DD9804D7 + BCFBF85586DF7FFE30E8A9C931F0F17032FCFAFD87E1C6BD670CBB8E5D6178FE + FA035C1D131313C3BF7FFFC06C90FED4FA79B82D98D900B1E0E5DB8F0C5C1CEC + 0CBCDC1C18AEFEFBF71FC3B2ADC7198E9CBB892107D29FDE80C782E9F5897043 + 989999704624484BEBCC8D0C4F5FBE431107E9CF6C9C8FDB82A9B58944A5949D + 472E316CDA7F16431CA43FBB198F05936B12081ABE61EF1986BDC7AF609503E9 + CF6D5980DB8289D5842D2004F25BF15840B1E95080D702A024564D5B0E5D6258 + B2F5246D2C58B5EB0CC3BABDE769E383472FDE31944F58C780AFD4650126E93F + 7FFF91EF83BD276F30CCDF7814C5101800E5722E0E3686176F3E9266C1BF7FFF + 81C5005C1DC3D3571F18361FBCC470E5EE53865FC002909F978BC148530E9C29 + 41F14352102DDB7E8AE1CEA3570CC981360CD262025883E5F3B79F0C8B361F67 + 387CEE36697110E46C088F5050D16CA421C7A0AF2EC32029C2CFC00C2CD8DE7E + FCCA70E9F61386D3571E30FCF8F59BF448A606C06A01ADC0D0B70000C96C5BE0 + 428445FF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Unselect all files' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003004944415478DAD594694854 + 511886DF494DCC8554503335B29948CA25D1725A70A1942C5742CC92745C4BB2 + 88AC705FA3525A6C517337527F54B860531658EE65652611694AA9B9950BA689 + 5B76EE1DB98D3973FF98412F5C3897619EE73BDF77CEE5CCCECE6229C3F96702 + F733E97FCD5478C18F2351909BE0BB68F8E1B00CE9829C789F057FF8DC3D80AA + D72D68EDE8C7D0C818545514C1D3D3C04ED3F558A3AD8EBAA6367C1B1E852D7F + 23E497CBC22B3C53BA205B4C30353D83DB25B5A86E6C85A43971381CACD65045 + 57DF20FDEE64630A679BCDF0661364C5F930F0C46C213E76F4CD8352154E4C4E + 4B6C8DDF7E4BF08DB91044B00832634582ECA22A5493B65091955906476B5358 + 996F80A2823CC6C62770BDE0095A3EF532701D4D35C404B9D06B9F48164146AC + 001D3D03884B2DA1DB42C14304F658A7ABC1C0EE96BFC4C3EAB70BDA1511E808 + BD55EAF08DCC922E488F1120BFAC0E152FDE8BFA4A2ADF6765C280EE3D9E0FE7 + E96992E18BDA68BDC5001E7BF9F08B6211DC8A162036A58819DCA5D307A1B442 + 9E813FAAF90DB7DB6E441E439CBC78877EA7AA0F0F70827F348B208D084E2516 + E0FBD83819A81C92433DE9DFEE4B80BBEE36A3D7C712F23039350D6545052485 + 1C40009B2035CA9BF4BF185FE6769014E281F2DA6694D73433705B52B5EB2E11 + 7CF4C70429289F5EEB6AA9218CEC2030265BBA2025D21B85C27A3C6B10CD804B + 7A2C7E546DB719C2650E4EE541E51B943E6DA4D796E60670DF638123B12C829B + 44D0D93B80F3E9A50B2E1705771683B777F5E372AE1033333FE95374D6CF81EC + 421D47D9043722BCE975425A11BAFB871818574F0BFE6E36CC3DA87EF5016595 + 8D349C0ADF8487430E3BE875501C8BE05AB8171A9ADB90575C0549592E274B0F + 543C6B753410EC6947EE8C8C68E8F139D205C94420247DA51E2ADAE45BD3F375 + 58EAB768AB11176EF6160C9C4A309BE06A98175D61C5F377505FA90CB34DFAE8 + EA1D447D532BDA3BFB30323A0E152505E8EB6AC2C298071D7272FECCF10416C1 + 95502F2C3627CEB108164D9F8B44C152E5FF17FC028816ADE06020182E000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Display session log window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002BD4944415478DAAD95594C13 + 511885CFA465698B4403482012246A802884808A1A1525B128042BC8FEE08662 + 09110C71015C80A08821202EC8A289898F1645C2830BC4B0088216138D4A8A41 + 04692B9B80A554D9C6728BB522D351EC7999FFFC93B967BE3B7FE652344DE3A7 + 288A225749554BFD07791F4EEEDBBE693EFEB735E70AA896B6D37D832A446FF3 + A2E6E319030E664B88890EF0C1F403D5CFDB301F7F332D9C620CB891168ECABA + 37E8520E2021D28FF4F53E62C6D733FB431724C6034A53C351239541D13B8498 + 405FD2D7FB1D6B75BEA58DD1C7E594190F284E09C39CA2C1286977132ADE4990 + 25CC83F8224B408448887FD1143D89ACDA2078390821724DC69D8AC7C6030A4F + EC2675AD4C053FD7058C04CFBAEAE066B70A95AD65B8D5721D8F0E34C39C6381 + 84DCBBA62128928AD13BD2812F1A2562BD0BE069EF4FFAAC04578EE9089EBE57 + 61E38A5F04F42C82F1A971A43C10C382CB4376C0357D3F29CF440486528D0D40 + FE550637DB0DEC04F9C9A1A46E6A1FC1BA655673EEFF6C9DAD4A42CF88022521 + 12245FBA671A82EF93A3B0E0F0F171E815721BA290B1E521EC04CEEC04B94743 + 48FDA2438D352E024682B8F250ED147968A7A9069B5D8438B2FE14E91FBF5C6E + 1A02B94A86FCC61870B5A399B5F58976442D499F9520275147F0B2530D6F67C1 + 1FD363A83EF5672D1C8DC502077D2FF5AA890826E49DE0D83B82E29A61A24701 + 8EF542503C3E3BC1B9845DA47EDD3D0ACF257CC68086886070F956F0C8388F86 + A810B8EC8DC5F2F8449C2EBC6F1A82A9E14128E344E4ED05FE41B03D53307D62 + B11364C68B48FD56A1C14A471E6380A6FB131AC3023139AAC6221F5FAC2EBD0D + CACC0CE94515C603D2C5BA8056A506EE0ECC01CD91C1E03939C33D2D134D513B + E114BD074BF71F4666314B80F6E65F6DD1B7FE7E58DAD8906D191B1E86B9B535 + A9B56B98FE5F6428D66FF05FABCFC830E007BC9CF5E033E205DC000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Open new session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA864000003634944415478DA + AD956D4813711CC7BFB7DBD6DC9A3AE703DA54B6694D0515D10CED89B4088D0A + 042B0AC2827A11BE88E855611154842F2AF28515113D62044D92155156E643C8 + 2A03B1B40795A4683ECCE9B6DBEDF670DD363D3D33D4F4C7DDFDEFC7EF7FDFCF + EFBEFF7B20B0C8283B76D52026894760D9530FAA0F3F9C5927160B283F7EB5A6 + 283FED48D3BB9E518A76E8EA2F1DB5FD05C8DB50F296144BD6FC0F4093598CDA + AA0A185F75C0D8F00C6E8715524524C452B95516A1CA980094B2FA5599804431 + A7202B9671F3E47C9E929C80AAC3DBE0623CB878FB39D4910AE8343130357762 + C4662FE501DAD40C90ABAB2093FCDB3596DB3D831DD02BAD38B0B30004412046 + A504CDF8B87340BE4C02918880B9AB1FD5D78D30D638481E90A43320ACF00CCA + 72A4F007A4421BB776A13170F00776BF0FCD4DCFB0216B05CA8A7360A7986031 + 002345220E2246E5853A74B63D458BE92EC10334C929506E3C8FD24C092F36D9 + 35CB51A64318C68DA617469C3CB805C909EA6013224E2AA0E6A23D385DDB80CE + F7AD785177790A10AFD1226A733536A789B93BC0EC773031DA4687D1D3D18873 + 953BA10A57809870D5CD78E1727BF073C8862BF71B611D77EEE60171F149882B + B98875A9E45FE2336D7AFBBA1EE59BD290B53211969131C4AAC3A15286E143F7 + 003A3EFFE0E6B0B08E39D1DDF7FB130F888E4D8066470DF2B5E48CAE4309E501 + 861D2C46C65DB07F7A084D9C0ABF066DF0B2248A72F55893A5C7FD27ED18A054 + B07F6B04E574204293BA9E074445C7415B568BEC4451108089CEC7E890B0D3CD + F24F93D7690916C93035FC5E1AF4F706ECD99A8B3B2633C2D3CBD15F5F09EBB0 + 05E626D3D41A44A8D458B9FB06D2E343008A6161B103B487C55CE11C688784EA + 855B1C03A5BE185FEA0E626C7444085086472263DF2DE8A2090C39003B3DB730 + FF7EF8BDA02C5D90A9F520A5CBD175773FECE3362140AE5022BBE21EC4DC8BE2 + F5CF5F7CB6F878732FB706762140269323EFD08345094F86F9DA2ED034250448 + 2552AC5B5BB82480E69656301E4608204972D1C2D2135F83237336153E9F6F1A + 607D692BF7E12E5892F62783459BF98DA970DE3F1C9D215BB0F2BDDD1FE775ED + 3F2771B6F572837632676897D00E59D8F4B48FB343B750009BA835F0F9405FB7 + A03EB316F07BC180824DDBE7655FDBCBC7FF05105834472CDCA2A58A3F6D1E8E + 5D9AC6B17F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Disconnect session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003B34944415478DAAD955D4C53 + 7718C69F73DAD316FA716A29A5D03246071491050C1B5EB86477BA4C67A226CB + 1C312112232CD9A2C638B621846A3667B8D876A16CC6CD2C7137CB76334D94B0 + 6C982D11C3961A45F09B215A4A5D03947E9CAF9EFD7B565A8E5D62EB7C2E7ACE + F9BFEDFB7BDFE77D734AE129F4A5A578134D69069392BC7FCFD2D2F7B971D37B + 3A8639CA0B42375568F21346E346D66AFE695D6B33337AD92F2CCC47DEE88A46 + 2F2CC7072DA6C3E54E474FCBDA465C181A11A81EDFB1EB3A9D6E75BE00CBD91F + D1CA2FC253E506C7F11819BB8A07DB76407055C23C740EF5812934ADA9C365FF + 3882C1BFDFA57C473F931DE595F9B7C071A08F0FA0911650ED72229EE07071F2 + 2EB8AA1ABC107E8806CF73F0DFB883E960C8D7B9B8D4A700EC652ED09E2DF943 + 4401D427EDA87B70055E773922B138420B1178CA1DB836358371B707FB7E1956 + EC570025A54E686BB7E2E5E7B590654086F2A1287D499F67EF2149983ED405EB + E830D6904E52BA3DF7081315D598DBB819BD1FECCB0256D9CB60F06E4773A546 + 9D641920CB39E7E27C18531D9BE08D855161312967A1A518C69234826DBB70A8 + EFFD2CC06A2B85B1E14D34BAE86CE21515A794CC10007E7606F73B5E43A31447 + 69910181680C0F894D6B4B6C08C6E3183398A09DB86EDC03C414006B2D81F9C5 + B750EFA43355AF046520A919DF9944A06B0B9A931CAC0C8310D924BFD5056C68 + 83E5743F5A580B025C02E38BD1738148649B02B0B0ABC036B5A1C641ABBC9757 + 0C4122A428476CE86987F7D279B8740CE645097FB00ED09FFF4CF6D786E4AF3F + C030D08956D2D57D9EC74D8E3BA3004C6616B6969DA82EA173EC2139B09820C9 + F9944D6416C16924F7BF8EFAF02C6EB076505F0C8372B8335D2E9CE906FBDD37 + 689293F85314230AA0D86486E3A57654DAA88C2549E2C7428298C8CB2A9B9402 + 0844F8DA07E6ED03A0AAEA55B1B9B1D31026C761FBF6AB215196FA154051B111 + CE751DA860FFAD3C46AA8D24560CB600CD8E9E423C16456FF7DEEC16E90D4570 + AFDF0DBB9152AA16A4A7C89CD6CCEF27C125E26A804EAF47D52B9DA028E4D851 + A8FEFA6D103C799DA8000C59B7EA57DFF97F99D3BA37721C8220A8015A8D0675 + B5B5CF0470F3D62DB279921A40D305FF2DE448B339A85CA5B3656403E52CE023 + DFA7937A9DDEFB4CCA4F8BE7F98923BD071B14403E3F38F8619F6AF4C73EEECF + BBE5FFFC62EF9181A056AB752C3F0B02AF8A338C2E732F8AE29CAFE740594180 + D45C6CA5CECC733834AB8A3F1E5BF6BB2040CDEAE6BC2CB83DE12F1C402C0A11 + 8BECF9009E64D13FF9B6B388A2C3632F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open saved session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003004944415478DAB5956B4853 + 6118C7FFA7EC4B522C1112633ADD1723C5309B7453532C346783242B95224D22 + A2BEF829A658194408562011D8A7D2FAA024266624A623F192598A976C4373CB + 1B3A75BA4D777D3B3B7317E799F3803DF09EF7F2F0FE7FCFFB3C2FEFA1C0C162 + 13D214142821872D728A0BE068C2395251F916562B602504162BA17BD8FBB535 + 77DF83C2ABE00C785CF18EDEEC12B338453D0140F9BD1CEE0069798D53C02E4A + B7B59378CE5F1667D9011F4A820389DFCE8F0015BB5E92F450664BAAB86472CE + 01282CAB758B180C68799560896ECBAB56E80C047A23E846A0A8BA0CCA2EEED7 + CA8F161D0A179D720833DFB16E19947D3D8394D99C6883D800779ED43180392D + 61DA821E305908EB89FB5F5D0055FF28A427242AF648B8E8A453D8BD1FED6E87 + B2BF97993DFC1C85DCFB0D98D0004633BBA8BB7D7D2EA601A5212431FFB69B28 + 5841364BCE6A47FCDD862DD74CF62CDD01B84917C3372029AB0BFCB0882D0354 + 63BFEC80D3F9F98CC8CFC6462C4C4E71B9589BDAD8BCFF8A1D90770D7ACD22E4 + 9D233891FB7A5BC42DA67934969D19650049793998568CD2D74E00414C2A56B5 + 5D1E29624BDBFA31E5E19F51C831F4A5A57A0D7009436D1D10C6DDC06E1E05B3 + 619C5564038478F70FB7C9302557143080E4EB99E8A86DC2F12B65209661582D + 4B3EA35F7F2936823A6BEAA1536BA2194042761A3ADFCB9054F01486E5D62DA5 + 64B3D3980D46C8AAEA967ACDCA7D0CE0F0591166C78D884CCE8469A5DF47B4BE + C1EA8919F47DEA68164B95290C20345280BD41D108121E80D534C53D7A8FB1A2 + 7B087F06468BCE4B55A50C80B79F8783F119F0E719E81A685D11136EC28E714F + E337CC4F2FA6488A94CD0CC06FD70E1C4B97C0A29383103611B6B997357A7F57 + CB08FD9AEAF75C2C99D53280407E2844920210ABD687886F885EA346DB9BCAFE + 0CA92A9AA99F0D208808467068000D307A4983CB281F10F5AC0EBF7F4CBF1017 + A96E390171191204F0852C1BBC3DC984C5655F186C6D826A60385B5CFCB7DA01 + F84EF731D836235AFA2F18E6F80B52AEA2FE1FFB075665DE2A6B91663F000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Display preferences window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005734944415478DAB595094C14 + 6714C7FF337BC0AE5BAC802837AB726BAA08D5AD8220126C940A34686B03AE69 + 5A2D6AAB402349AB46DBA2A980C6BB6DD4C5A6A64239146B1005F13682D483AD + 4055649143D80576B9965D66A6DF8C959A28B126759249769379EFF7BEFFFBBF + F7511CC7E1753E140FA028EAA51FC62F4B3D030AF3F8DF24A6B430273BFA6531 + 42EEFF0258B074DD043F6FF7FBDB37AD05C3B048D99885A6D656659166E7C357 + 06C4AAD77AD1106DE3C095156AB20F868787D3633C825213172FDC36376C0618 + 96C56FC74B51527639BD4B579D555151C1C6A9533EA64045B260D29F853E07E0 + 938B68F1C54D692BDCCE5DAAC2F92B9597898A5E73DE09765DBC280A94480466 + 884187BE0B79274A71B7FE413309D7B9BB8E574D547A90EFAF37B11C13F614F2 + 1C205E9D5AF84D7A72ACA7870B44348DC71D06388C194D183406CC83E8ECEAC1 + 109148662B25C12C1A1FB5E161530B26FBFB8265195CADBC894B57AB8A0A3459 + 712301D64447A876252D894197B1173652094C3DFD387FBD062D8F0D508C9281 + 379DC56A85F3587B787B3913364DFAC2C06A65905B740A8F5ADA928B72B2F78F + D4033A4E9D7A63F7D6F5536D6D6CD0D8DC81D28BD598353D00AEE31D48F58C90 + 6C6888457BA711CD6D7A78B838412CA2A1ADBD87D2F20BD5059AEC1092877D21 + 20302141EAA7F06CD2ECDEECD4D1D98363272F202E5A0589582C24B75A8784E4 + 2C9187978A3F89BED3043BC528180C9D389A5FDC52DFA7536AF3F22CCF016212 + 572B25B4F4837973666610C720BFE40A26793AC3D9C91EFD03669C2839873F6E + DF2502719812E04B4584CE14E22C441AFE04128918C70A4E42D7D49A3EC45972 + 8B7FDED3300C785F9D7646E9E132EFEDE02998A39A4E7415E1506E29162F0815 + 2ACF3B7E1A376E6A8F74F59B57C9A422DA562C3D3025C0E7C3883015680291CB + 6CC0EF03BDDE80EA5B5A34E89AD1D5653A9BAFC98C7A02589EC6E51DDC8EDEBE + 01982D16C12D65576F236AF65441962DDFEF6506DA8D76C5C53FF6F3477FF7A3 + 357672A9B47BF52749949418C14E2117E6434C6C6C6323C128025CBD3E03F987 + 33A961C0AF3F6D434F9F1966DE8EDDBDB876B39634D71FE6412B32B20E30837A + D330203C2159E1A890757FF1D972110F701C6347BEB30C03E4325BAC4CDDF20C + 409D767E82D22D2CC0670242A64D864C2E43F9E55B9839CD4F90E8F8A932DCF9 + B34E6335F4AEE2011207C5DE403F1FF5C2F911C40022B88C7380B1A70FDD4623 + AAAAB5A8FDAB018FDADA2B0A0E6746FCDB6475AA9F045CC2647FEF2D894BDEC3 + 9DDA468CB5B723154985539D2EBF88BAFAFB0C0FF0F7F5164547860ADA2B4831 + F66F2AD06FB6E0D02F85B8ADADDD68059557ACC9AA7DA14D7D151EBACF3F4D1C + 2797C9D0D2DE092787D1C282E36DC9F13A8B450294AF9C1F444FB771D01B8C64 + D2CDF82A63D7E3BA5E9DC70B6DFA74D0E2D5299531F3238302FDBD3168B112DF + 33A0C9B4F223CC27E75F3E39DF5817327C0662088EE5C804B722738FA6AA2027 + 7BC68883169F94B2C2DDDDF9C0D28445C26EE19333245821B7155E3119385BD2 + 447E65F0C0EEDE3E7245D0C4AAC01B0A19F61FCE45E58D9A950547B27F1871D9 + 91018A0D268DE6778BB6EE1E9C1CEDE1EAEC2424974A48F5223144629A80A4E8 + EBEB87C9D403DF495EA0C9B0D5DCBD87CCBD39232FBB278DA62E85AA821D1A1A + 9BF86357930A5D944AB7F1D111B3885B0888408C46137F1FE0564D5D1B07B665 + F68CA02055C85BC8DA97A31F64B950BEC1235E3831CBD6058A29EA3BA2EBD9A2 + 233BF691C68B7DE4EE5FAA42A67E1B1F1325E85F5C5281B20BD7BEAEEF6FDA4E + 1A3A149BB42E994CF45C2BB80DC5393BB4AF7C65C625A5F88C75B4AFDB9C9E2C + 2CBE0D5BF740D7DC31F1F7A33B1EFC2F77B20051A79E235F85FFF3B79CE81CF9 + B29861C0EB7CFE064EF3ECEFD45AB8FA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select folder to open in remote panel' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002674944415478DA63FCFFFF3F + 032D01E3A805042D00119B1BA444FEB3306F07724D50A5FF9F61FCF3D7D3B7E1 + D91BB22D8018CE724056DF4C5BC9CC16663098BC7FEA10C3A38B67AE32FEF9E3 + 40AE258C9B5AE5CEC8E99A182B99D9C00D46A6EF9D3ACAF0E8D23952CC3CE257 + F3C81661418BDC7F87941C2443512D40A541618A5B0EC4DE3F670E03D0024634 + 0B329034E2B700CCFE8FC782B90B302D704C49014B5ED8B68DE1FDB3E7E40435 + 2EB00D62417202C3B78F1F186E9FB8C9601DBB982A26FFFDFD8E615B8FDB3DB0 + 054EC9310C2FEEDC63F8F75F8141C1C893E1C79793D88306A71866DCBCBC739B + E1DAFE7DCBA01644305C3B789C41D93C95814B8091E1CFCF87580DC1B0E43F6E + F9EB070F313CBF7D270D6C81735208C3F1B53B18ACA27A18FEFFBDCEF0EFEF27 + 82AE474D1498169D58B389E1EBDB8FFA600BECA3BD184EAC3FC4E0943681E1E7 + E7034405093EDFFCF9F98BE1D0D20D9FCEFD792408B6C0C0DD8CE1F5C35F0C3A + CE210CBFBF5F22E05AC216BF7DFA92E1E2CEE37B7C6B1EB9822D90D75160E093 + D06790509666F8F7FB39E9AE4763DF39758DE1C1957BB5FE358F5BC01608880B + 3068DAF931700BFC04C6C117848BFF9366308C7D66DB6986772F3EB806D43EDA + 03B680859589C1D22780E1EFD7DB0C88E21B5F24E21103EA3FB9EF26C3B75FDF + 78C31A5E7F015B20222BCF601690C6F0FFDF17028610B6E4DBC7B70C0797CCB9 + E457F3581F1C7F200B1434A418A4E4858016FCC2110C08C048C092B7AFBF32DC + 3AFF62BA6FEDE32CB805E67E010C42B2CA04C21ACDC0FFD82DB97A6007C3E32B + D7A37DEB9E2C83597016481B31500DFCFF02AC0515611514CDEB6400E51E5F7C + B1EC74C40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select drive to open in local panel' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001394944415478DA63FCFFFF3F + 032D01E3A80523C002137BAF2E86FF8CF98C8C0C6CD43418E8EE5F40E74F6434 + B1F3FED9D5D14655C341E0C7AFDF0C7575F5BF184DEDBDFFD7D7D7337CFAFC8D + AA16F0F1723134363632802DA8ADAD6378FFE13345066E323783B3FD4E9E6210 + 14E065686E6E8258505D5DC3F0FADD47AAFA4054889FA1B5B5056241456515C3 + 8BD7EFA96A8184A82043477B1BC482B2F24A86A72FDE52D50269096186AECE76 + 880525A5150C2BD76C60B0B4B462387EFC185568396931869EEE0E880545C565 + 0CABD76D62303135633873FA14556845590986BEDE2E88050585250C6B376C61 + D0333062B874E11C55685505298609FD3D0CE08C965750CCB661D356060D6D3D + 861B572F5185D65096659834A11798D1ECBC81D630E403E38585AAB1CCC0F0E7 + 3FC3FFFE61509A8E5A30E01600002EADEEDF0E609EF30000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Sort files by name' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A64944415478DAB5956B4C13 + 5914C7CF9D4E6507595D5C4104699100B25522200F81FAA87E22C6259DC4D72E + 7CF08B0A6A7CC468E2174D8C8F6862E2AE1683BBAB114C8C84A9F1153FADAB52 + 0AA88041BB111BAC3CE461152551B14CE77A7A4DB56A3B45136F32B9FF7BEE99 + F39B33F7CC19422985C0410861F39CA56B22C7F19A5C42A88E7889EB85D3DD74 + FF7EAD07BE7290608042B17C09624E0325C3B81CA640D30925036FDF42DEAD2B + 96FECF83E8CBAC36F42F640B4A6FB86AC405A10126136F8C36F45102676D9265 + A3CF965B529118A101075038506FB5ECFD1C905466A513A363997E393408AE6A + 3351CB809B2BAEC91C513C9D6DE74FBDF0D9B28A57C78C178446045C42C0A660 + 80E89878A6879E3E090B8042F3BA5802DC1620908FA634CC3B8600511050150A + 30394EC7B4BBBF4B1D90655EFD531427DCC52D3755E0A497535A474795D61FB4 + 7C13A1F06F28406C4232D383BD9DEA00A3B85EC424EABC32A4DA2F589CFE8A12 + B4FC0066F04F28409C2E8DE9FEAE0E754091583E8B235C3B3EFD9E114EAE8C50 + F829848383F89A16600652BDB572553040C27403D3BD8F1CE1CFA0C85CBE0EE7 + EDB89C8E65E7408F3F71472040172160693040624A06D3DDCEF6F080AF1D3E40 + D28C2CA65D0F5ABF0F20D990CB74A7E35678407EC95A83ACD0C13B17ABDC6305 + A4661430FDB0DD1E1E60142B0614AAEC6DB01EFF63AC801999F3987ED076F3FB + 000CD9F39976B4DC183B4086D767B420648F82F2B8D97AA2430D9091F3BEBFB5 + DFBE3E3600CA16BC8CB8EDC696A143C7BAA10E77A9BF65EB4BEBB201B8EBE81E + E55B67E699D8FD6DCDD7FC918629F59AD400E3649017374A552D45BFAECD21BC + E61AB6EDFD36A9721F7BEADFEBE6464446D96766E67F5179BE98F75A1BC1F3E6 + 5541480006FB1B83EDF4DB8BC48ABF7C13B6F05FFC367DA9F58A3E39AD382E3E + F193187DBD5DD0FDA8E302FE174A42032894DBAC16E90300BF6EDC3C86008DDF + 96B0424A8B10B48E3979460DCFF3CC26CB32DC69BAE9F57847D27B6A963BD50E + 791356D1D98F808A6DB8B5AB5EB2FC18E8AF2F938E4E8DD7AD4F497D9F98F3E1 + FFD0DFDB7DC45563DEAC7AC8683E83196C0D784597D139127B9129D07FDAB273 + 93B482B633277FDE445FACDB4DB62179C493D253BBFC79B82A9A00A0FCE6F540 + 33A7E556A1F910B6EB626CD757BF2C5369CBA49F630FE3F1C2B3674F373CAE16 + 8F852BD37B8AA2D4128E5B89F5918E37F6E1EF6C478374BC3AE887B070379F34 + 6D76834FBA7AEE16C27FBB655540E028285826D8EDB56FE01BC73B8E2B01F126 + 9F4E270000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files by extension' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C14944415478DAB5955D4C53 + 4914C7CFDC5E60CBA22B88443E2C5D52C4AD611711142808EA1371155AA3D1DD + 92E88B483521511F8C2FB20F1B7DD0688C5443D49880DFA16DFCDC273F5B0AA2 + 5017E90A365A502856941A1510CA9D3D77B4CA475BD0C4496EE67FCF9C3BBF33 + 3D674E09A514C4410881D163E1CA4DE1A112924D38124705DAEDF27CB0386F9E + 1C84AF1CC41F204753B682037216A51B1F0F7ACCC3B96F6810321AAFEA7BC66F + 22D79AACB85396A8D1D7DC51ADCE0B0C2828E07323952E54A7CD467DB968CA2C + D2CD0993801DE57EB3415F31015062A43F45C630FDA6CF0DCE6A35090C00E072 + 8A75BFF643BFD3663AE9110D0B0A37CEFA512AADC7F02EFBA0E30191B3E298EE + 7BD93D290072D49B6338C26DC7B56C342BD06326012220A02A10207AB68CE9DE + 9ECEE080B4E20D332238E903B4F40A82700C93DCDCF57AC0161F15DE48285C0F + 0488894F62DADDF5243840A5D66950D68E7821D97A51EFF0559434847F812738 + 1108305B3697E99ECE76FF80BCD55BAC380902154A09E11E60B47B0688B73204 + 205602FC5EAC8F7CB419CCC623EBFD01E27F5632DDF5D41E1060C108058C302F + B7B86C13706427AE24E2921D28AD44572901BA0C012BFD01E62852997EE66899 + 3CC95F3B44803C6501D3CEB6E6EF0348526632FDC4DE3839607151A9D22B50F7 + FD4B55BD530524A76633FDB8C53A392057A37B81C9FEBBCE78F4D0540129691F + BB439BEDCEF70128D397306D6FBA3D758017FA4F8580349D027121EC6130406A + 463ED32DF76E4D0D80539328F171A3871CEF81D1D3D6FB476BEB8521D127515B + 9B8E6DEB167E1621BEA72D5ACABEB5DDBDC166DCF61D5EABFC80000A94A70259 + 5E67D2DB54AB4A33082FB981AD635F9DE9E85F2CEA3F6BB3C2C223ACF3D3164F + A840F483565B030C0DBCCF0E06386E311CD9F5D9A6D65501817C6CD7293E5B62 + 89F1924C9EFC7B6CBC6C0CC0D5D509CF9EB65F74D6688A02032894598C7A83CF + A652976D46A74A8B412FF1D912B4E715A1BCF4D1C245B9129EE7996D7878189A + EE9A47864606E73DAF59EB0896E4724CECD92F00DD0E74D98D2798363ADAC412 + C3E1D838D91645F22FECDDD1FE1FB8BA3B0F74D468B6054D329A4FE109B67D06 + 687457D0391C7BD1D2D1808435E7A3F81F421D9959AA4871AB7B0D963E784B93 + 9C26B5670CC0D74D3142D5A72A9A8EC9D2522FD44B42B812FCFDF760332CC466 + F8CFF83295698DE5D1D1D107C53FE457AF5F6EEDA8D6544E28D331DD54A37B88 + D673B8B80E8F867D98BA4020DBCD26FD19BF17A1A0829727FC56877E03CEE7FF + 2E879B15DEA0F760F45014168639AE5DFB00DF38FE07459D13F1745EAEF80000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files by timestamp' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003FB4944415478DA6364C0018C + 6C3DF4981999421918195C181818658142E240FC9281E1FF6386FF0C7BFEFEFF + B7FADCE11D97180800467401632B4F652656A66E2121C1406B4B7306437D5D06 + 511111067E7E3E868F1F3F31BC7EF386E1FCC5CB0C478E9D6078FFFEC3FA7FBF + FF95BE554A5FC2C0F8DF02A4FF3F03C391878B036DB15A0074B53B3B2BFBEAF0 + D0405E4F37170621415E066E4E0E0636561686B09432865573BA187EFDFEC3F0 + F5FB0F8677EF3F336CDFB58761E5EAF59F9F4B27F0F20B8A81CDF8F8FE15C383 + C5818C181618DB79BAF1F1F2EEA82C2D64D4D7D1641011E463606242D81F9C58 + C2B0767E0F9CFFEFDF7F8637EF3F315CBC729D216DEE0B06415129B0F8FBD7CF + 302D30B5F156626163B9D0D258C56BACAFCDC0C7C34D2868E1E0D397AF0C06D9 + BB194424E4C0FC372F1E61B1C0CE7B6D7C6C785044883F83001F0F5683C29281 + 4134B70BAB9C4AC2260631692530FBD5D37BA8169858B9E988888B5F9E3DA587 + 414C548881899111AB21E1A9E50C2B67776295534DDACC2021A70666BF78740B + D502533BAFE6A0009F9A8C9438062E0E769C41119956C1B07C56075639F5E42D + 0CD28A5A60F6D3FBD7D02CB0F73ADDDBDE64626CA0C3C0CCCC8CD382A8F40A86 + 6533B15BA091B28541564517CC7E7CE7325A10D9793F5DB168A694B48418038E + D0815A5009B4A01D87055B1914D40DC1EC0737CFA3FBC0FBF7EECD2B5992F2EA + C102B80C0159800EF878791866F454832D50D232058BDDBB761AD3076B97CE96 + 12171361C0E301BC401D6881AAAE25987DFBF271CC3898DAD76EA207CC5C8C8C + E459018A64750348E970F3C261CC541419165893959A80338912026AC99B19B4 + 8CECC0EC6BE70E61E603314989CBAB97CC049639AC6459A09AB89941D7C41ECC + BE7CE620F69C9C9B9918141D1E44B4A1571F7E6488683DC2F0EDE71F30DFC0CC + 114C5F38B51F4CFFFFCFF0055862D9C3CB22566059347B6A37AF96862A51169C + BFFB9E21B2F33483B6813946DCFDFBF78FE1EA85930CBFBE7FB544294D05F9F9 + 774CEC6A64D4D250C33010BD340581E4BE130CB73FF032484ACBA1883F7FFA88 + E1F1FD5B9B1E2C09F2C7A80F3880F541665A1C6F58A02F031B1B2B4E0B7EFDFA + CD3063E966864987D8188CCC6C18585858C0E2BF7FFF663877EAC8DF5F7F7F68 + 3C59127607678D06CC17811E2E8E0C3696A60C5292E20C22C2420C6FDEBE6378 + F6FC25C391E3A71976ECD9CFF0F2D59BF56FA4A2BF8ACBA9C5A8A86A82F5DFB9 + 759DE1F9B347FD0F970415C123191B30B5F23260606108265427CB84AE1262E1 + 60BB636A612D088C588633278FBE67F8FC5FE9C186C00F782D2005C8C5ACCF17 + 11119900AA90DFBE7B9DF37071D054981C552C607068605190D13F06F4DDF707 + 4F2E39331C68F803B7E03FC85F3404003A937CDFC37E8E390000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Sort files by type' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003824944415478DA95D5774C13 + 511C07F0EF298E1813C588A244A2444551222E048D3B8ADB40E248941813351A + 340AC89061F8C318E336584DD468141C3811D1448D93D13204B4A148ADD0D616 + 140AADD0C9B53DAF0FADD41ED7FAFBE77EF77BE37397F7EE1D55702490811741 + 01A526AB296A6356ABDE9BFECE710E606DBA1CB4F9334F37063AF92B943D38C9 + 898CDD9A2F04C54474F744B122277AFE3F4003BA4CB5BC4FD2DF6720340D2F20 + BC7FA28AB25AA3D66635699C40EC236688EF0892FFD4B6409E134DB902693258 + 4C9F788101836602B4149AC6E710DE3B59BB2E4339B527E0EB379AE4DAD6262E + 400A8BA19A17D0AAEBA0A82E84D56244BB4A0216A07A02C3FD0349AEF9AE7407 + D61CAA63810F1E178CB1DB60D435A33437D50D18111044F2167503172086595F + E99C28E34E1F6F36886378A9D9CA443D13E93AFD032792CA77A5D41D589D5A03 + 8BBEFC2F903700A7762D02C3B3811D4D4562150A445F4B1F166BE7068C0B2175 + 75A3840348A964DFA0CC3938F3EE6002D036FE4FA4BDC3887AB50EDB8E5760CC + F85052FB2613BB03AB92452C20FC0BE40DC5E9DD4B60A6EDBCC0C07E7DF0436B + 40C4FE97181B3C9DD4E4F5D51C4052910B90767B18CEC62D83D1C20F287EFC44 + 89448DA3B764080A994D6A0D920A7760E5C1D72EC0A19BC3716EDF0AE8CD368F + CB6C67176AFAEE424C088D24F75FC442776045E273172025C70FD9FBD7A0C364 + F5083862C69E420487759F0EF535451C40C21316103907245D1F89ECF875D019 + BD03C2E39E2264C602924BAADEBB0351F10F5C7651E2557F089262D06EF00E88 + DCFB14A1B316925C5CF9CE1D587E20CFE54B8EBFEC0741F206B419E85E2795AA + 3A10774E0493A5FB21C2C217936B4DF91B726597863D71ED0B29AEFFC143DB31 + 08523741A3EF1D9028743870F123A684CD0145512E6D76BB1DB53565EC096D88 + A4B806C71EBEC15C48DB82D6CEDE0147A45DF900B57108460504BAD49BD54A7C + 6B9416C87363D673025BD2AF3182F4588F40539B113B4F09316DE63CF8F8F890 + 1A4DD3A82A2FB675D9CC9354B91B659CC0E6D42B8C20731B5A3AF801475CC8AF + 43859CC1F80993C9BD4C5A87E626E519456E4C025964AE419B922F31E733B77B + 7C0347749A68EC38518C49A1E1E470AC2C2BD1A2930992E747EB7881EC8CEDBC + 8BDC331E972870AF44438ED8B6F6D6BD8A9C18C19FB65E01AF66FE1D8ECEB51A + 5F18BAFABE97AB3E2DC5DB2CE7074431CC7FCDF5DFF10B25E9E7DF5CEC3EA000 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files by size' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A84944415478DA9D947F4C53 + 5714C7BF9D9899EC8F49E208D16894E85416147F4E34FE98C638932504A6A040 + 45D439365D5C8C122CE0D0188D32B619ADDB28A81104090611D912630C8A2DA0 + A0A20D3560872DB628B4B4A53F78A5A5BD7BEFA2C01BEFB5D3EF3FEFDC73DF39 + 9F77DE3DF748D2F3AB0944C46E282D0EF7C68ADC0427DE53926FF3AAC81F0762 + E119E473B8D5BD273A54D43EADB7BA3C1B0241A6A75435404296BDFD287D71DC + CA61C0EE9395E4CF8C38305EFF9840BB9341ABCE84F25B2DCD60988D05B94966 + 4180F41AF938348CDA7DD61EE88AE324C3805D27AE1245E6D7700DF8C6047EF4 + E138745B5D145276F3A1BAF0D0A6796280D04F2653DB6AEAE203761EAF208A43 + 9BE060C6021E6BBBD1A031505BDBD18922D96689186052F8346A9B5F77F2013B + 8E9513852C017DCCA0E0FF3598ECE8786543F5ED669CCF4E1405844D89A0768F + B1830F483B5A4614595B60EB1F011C2F55066F8FA1F07AF720D9F077A3CD113E + ED53EA79DDD9CE07A41EB94C0AB3B7C2E21A019C2C53217FF71A10229E9ADBAA + 531B70A3F19FFA4AA575F9941991D46F7CA1E103B6FD5442143949B038470079 + E54300AF2F008195C5DE8F36A30DA9A79A30756614F5BDD4AAF90069CE255270 + 3805BD4EEF7060FE15257E495F0BB740EB8ED684F11FD02E5BB6EF16A6CF5E40 + 7DBAB6C77C4072F645B60229CCA32AF8B9EC2E7EDBB31EFD038101FAEE3EA834 + 46F6CCB488885C427D1D9A263E2049769EAD201526C7A80A4A6B71FA872FE174 + FB104C7EF6A016A4D76056540C5D3F5737F0015B338BC6FCE889616138B3EF2B + D8455AF7BF5AF85D0D66470F4D87B6967B7C805000379FCEEE8FE5B56E202DF9 + BE06910B57515BF3A82E38801B1FF283F1BCD60DA498BD7F216AF16A6AAB9BEF + 060770B75B9EB119BD2EAF68D276831D7B4E37821918FA88E8A55FD067CB835A + FA648F869DBEFED58280ED474A893C3391ED2C7180466FC38FBF3FC167D19F43 + 22E1A7F1FBFD686DB90F0FE38A1104480F5F22E764C9BCCE1292ACF021BA9889 + 089F3C95E77F65ECC4CB17EDD5BA92F858414072D60522CF92060574F5F6E39B + FC06CC5FB402212121D4E7F57AF1E881D2E7F1B9E7184A12B482802D9985449E + 938A1E7B6000A77355CFD0A42398396B2E5D6B9F3FE32AF8555F12BF9F5B0B02 + 12330AC8D99CB4A0157072305EECCA53624ED4523A1C9BEFABAC7090085D559C + 2D20E04C765AC0431EADEB2A3D2A54663A627B2DA6BDFAE278F9DB3D51C0FFCA + FC46DCCBADE650B83CE3EA7486A7EB702777F802490879A75CEFAC7F01C4CED9 + DF5E91DBEE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort remote files by permissions' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004654944415478DAB5957B4C53 + 571CC77FF7F6B63C44A45A2EAC405B180FC7C2282B45D141DD2B91BAC400D1EC + 0F9A6D897FEC4158029A258BC9DCC4ECC1D4E966B699A85B404D703CD4B4B0E1 + A8850262A114597916290882BC91218F3EEECE3D2829B42626CC93DC9CEF3D39 + F97E7EBF737EE71C826118789E8D60010441ACCB449255DE809CB6B31A85ABEF + 2F4C4F792A409AFA761497E01D425377330C114210CC103044B59D717ED7525B + D1EE11A02A6336F169AC67A646C15A984E7804242A942A8AA4CE494269AE20C0 + 1F9E2CDED4CC2CF40D3E70D81D8E8F0D3AF5594F007EA07079EED87DCF00794A + 9A82CBE36A13625F24EE8D8CC3F0D8E422E364BA48828CA205013E12210D2D1D + BDCCD2824D69D06B2AD70204C122ACC747063C03125395ADF15B235E1944E613 + 33B397A7179C1F5A1A2B1ECA64325FD22FE894BFDF860391222118CD966E438D + 3A662D800E89C07A74E8AE3B409AB227DADF87D7151B2946063DED8F26FA13CC + 66F3928B072957EC694601482DFDF761EEE17C82A15E637205048BA2B11E19E8 + 7607C815694A019FAF0ED8B8017A07868FA3080FAE5D6779AAF2A82824E8F0C2 + E2128C8E4F67A239A5AE8090F058AC87FADA3D0052D3DE0D0EDC72D98BC705EB + F0685EB34E73622D40A650E68883E95336BB1D4646A754865A75912B202C320E + EB7B963677C05E558E89A278F1CF5AF70EBBADFB6AD1E91857802426016B6B57 + 8B3B20FDBDDC99E27305FE5C8A03BF5CD400857A8AC3010E87C43D857A0E1AAB + 69FC6739CABE6E28FDED38E10A888895637DB7DDE00EC8783F6FF2D2AF5FF3BD + BD7870E14A959BF1135DA5373D151015978C754F5B833B20F383830F7E3F934F + FBF97AC3C5722DCE6072621C74D57FC1AE37DE02B15882C7D4D506E09024587B + 3BDD0031D2E5DBA1CB54EB1970FEF497F426544557347A1CEDA5C20B70ABBE16 + E449DB203B271767A5B9D9045C944D87F98E1B20F6D554ACDB8D359E01674F7C + 416FE16F84AB55B7F092F4F67442C1B7C7E0687E3E4446BD84001CF8B3C6085C + 8A046373931B202E5181755B93CE33E0E782C334BA12A052D78CA37D343707D9 + 1F1D803F4A4A8020B938AB1B680FD8A5AAABAB8366FB0E193A7F3A7409F8B146 + D2A4D7B1A1E9B616F7C8F65F00A76205F0E3379FD3C2A0CD505DDF8A3370386D + 50A3AD86FDFB3261D1E6C463DA86560CB8F1B7168CB61DC95EBE7E0D2F4BB7B9 + 5DF74EA713CCA646589A9F4B5E019C3CF6192D120682BEC9FCB84439C0962DFB + 112481C774A84CD9FFEBEA4ABC446255D9757178F43BC1C2B05580E1A101B6D2 + AE598B32F6AE00BEFFEA101D1E160486D66E6C4E51E4EAB3808CF50633EE8B4B + AE6140685671248FF2E99425BDC6A1280A9BDB6C3630DED63B961C0B5B078BF6 + 5B1E03F22AD076EC7ED6938C5A3D02EC64855855FAD30B42D1276C21B0CDD2D3 + C16670B2BF2823776593D7F36486EE2BDE4C79F32CF2ED3BF9ECF3DED4583705 + B34C84B53C7DFA7F01B04D9455F6A94020F8817D022726C7B2FB0B33CEAC2AD3 + F50260D7114A121A5F8F8A73DE3A78E74DB879C4BE0AF03CDB7FEE552DEBEB65 + 476D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle ascending-descending ordering' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004074944415478DAB5966F6C53 + 5514C0CF7DEFB55B6BE7645A126CA1656119360ED91C6C65C539F84400475F82 + 51D93EF00568A759443F18BF383F18FCA0D110D7E1A28684810A595B418D9FF8 + 23DD3A9CB0E2A461D248A7FB234BB39550BBADBCBEEB7917DF2C5B5BEA074ED2 + DCF3CE3DEFFECEB9EFDC734B28A590298410363EBB739FBE9808755490CD54A6 + 1393F1F9BEE8F9A373904D9EEF10ACE667FA01E86C74EC97AD70BE435A582F1B + 6093E8DA4E2839816A0C4D71F4588BE34C6A0E6A07BFF7FCB578FD557B7CAF19 + 8DC6C314284CC762EE688FB32B37A0A949702CB34DA27A22E0F3B42BB60DCDEE + 95453C8451FD30E0F57464FA9B779F2C138AB5913ABB6399F27C291898813BB4 + 3CEA77C67365C06DDAE55E97846434E43FCA9CAAB7ED353EA2D30D6080DFAA50 + 552CADDE4F4C264B5B45E553ECF9B791304C8CFDF1D1688F7830F716390F2C27 + C0BD8E7BDA8086721C8D04888C80EE4C80B9E5E41AADA0BBBEB17E332F081A66 + BB7B3705830317D3A9F4DCDAB19E17234B00D5CEBD8F1938DD5544C56459FE8C + 7064687C7A36642AD30F120A6733019656DF19EBEA8A1D4F9A2DF7AD3131360A + A3376FF8A3C79CCE250087D8266212BD69092A82A73D11B5A2741AE11666F085 + 0AB0EEE9AD2FD21B82EB6AEA172A4F150C0C868706603EF9B77D09A041743D8D + 9FE12A467B6896489D98F80A1E84F7719B1AD1E60DF8BA5E66D1B7F4D6007017 + 706D030BC2BE85BD7F3978968DB86C02518D59BF8163976B1F70E42D9C51720F + A37727CEE808D02D08D8B9B84CADAD3EBA7E6313D3433F9D03DC9A859448AE83 + F67F440154D536327DF8E70B0F0760AB798EE9E12B3F3E1850D7BCDF26C974EA + F299EE58A180CAF59B993E12BAF860804374DF92A9FC5EBFEFC8E14201155576 + A6DF180E3E1C40B96D03D37F0F0F160E9020795C03BA1A4986F14BDF7C1ACE07 + B05656333D3A32541800D52BF873E06F0A3DAC58D9BEF848EC956BD74EA5B201 + 56AEA962FA9F91E1C200D87A052A93ADFD7E4FA8E185FDB544E0CFE109FDA0DF + 7FE45DC56FF14133ADB6B1F7C76FDE4B34FF41BB07F8BCCFDBF5B66A7738DDDD + 40A011DB75258B1A5B05AF2D0E3EB1C2B2A4B4953563935148A7E6EDB901145C + 7D3E8F57B537385D0770B2B3CFEBE1559BD2EC4A4A1FDFA13794DEB74632711B + 12F1D8E9688FD89CEF23B763157DF51FC0FD264EBD831994A836A55D0B447BBD + 6CB989E7388ED99446373D359E96682A7BBBCEC8E0386670700120BABF43673D + F6A2A64C7FE5C229D619DAD42C94E8E79289FC17CEBF55F42846D3422518E035 + 5C2BEEFF216CD7DBB05DFF90E9AF5C997C913652525AC6AECC3BB7A7674822FF + 95A9007E45EBD738F9121AB03CE824C8E48D80DFF365B673B0AAC5D7AED1683E + 5674494ABD3A7A4CECCC5BA69962B7EFD60583A766219FE4F9DBF20F789C2AAB + 43EFA1B80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort remote files by owner' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000048E4944415478DAB5956B4C9B + 5518C7FF6FEF177A1B2D2B2D940EC6B8C9061B30082AA2984DCD3221715F1C73 + A266719B332E265E8913BE2CD987CDE8424662B608B864896E61F183C1CB74C0 + 2C2043B16C5C46B9834029A52DEDFBF6E6795FE66440318BEE494ECEFFBCE79C + E7772ECF735E2A1C0EE3611AC502288A8A38A030058A965EB8D67362DE7FE506 + F194CF6AB2DCE6E1BAD2C7D605146E95E62BE5D28FA5124931690A19C60F97D7 + 7BD34B33A7DAACCCC55580F2CB61952686D34EC73486EA4AA98880FC0CF19E68 + 95B2D1A8DF0895428150288405B71BF6F979CC3A1CA003FE03963FFC752B011A + 9D81D38E9989C800B31912F386A851AD5AA38D8DD1414D008160088E85794CCD + CC927A013E3FE37187FD7AAB15EEE500ADDEC4E9D9A991C880DC34418958246C + 928AC550CA6490903A180AC2EBA5E1F1F9E06568D20E91830EBFFC8BD57F6139 + 20C698C8E9E9F1C1C880FC4784C7288AF749426C2C366A75D892940893D1885B + FDFDE8BE7D1B1EEF22FE9CB50782C1E06B2B017AD3164E4F8DF4AD03C810BC13 + 2593577DF0C611912E5A0B8D5AC3F5399CF3B0CFD96177CCE16C5D83DBE5763F + 63B1069A97038C9BD2393D6EEB890CC832436D3068BB8F551C8CD3A8D5904B65 + DC7776E5CE052781CCA1F6E2A559B7CBB5B3BD0F83CB01F19B33393D3AD0BD7E + 14BDF27C5A79C1F6EC2F4C71468844622EB2699A86DBE3C1D4F434BE6FB6BCFA + F5B5B1CF57469139259BD343BD37D707B0567DB8A43E7153FC8BEC25B379EE27 + 79C0F8198C4C4CD6547EFADDE1B5F220313D97D3833DEDFF0EA8914A8D33E5F9 + 1D3ABD562F120A89733FECE3D3367583A5F8A8CF37BC162039B380D3FDDD37D6 + 067C269124080582E3E0517BA5D1BA84C5E7B2B128FFC789D2C583B8E9372C4E + 4D4C82C257A0FD670ED1F49DBF0129594BAF436FD7F5D5801A85A248C8A3BE89 + E6F1E45A028B7EFB23389FCCC540EB970893B8E7F185D85652015ED375F4557D + 081799E30B87E95018CFBEEE76FFC002D2B73FCE39ECE9FC7935A056A56C8FE3 + F1720800220210C9E4D0357722AC9423E85B804CA106CFE3C5AF7959F09090A5 + C9C44502F622DC7968C1BD830564E614710EBB3B7E5A13E04CE5F39552E25CCC + 16D2A13A5801CDC953204CF0C970DB7BEFC2567B0E34BB7AD26F539A505BF83E + FC02C95288E715737557DB8F5C4D8691A72454B404502A02E94221DF4156E524 + 25875C2CB90FC4B7B442949404DA66437B5E2E7CC12046491192458C6B9270FE + E993C8C8DAB92A48D807D2DA6501E3F514DC03A40A047C3BE998276D16C04E89 + DABD1BE6FA06F4BD74009357AF724733420022B0BBA27021EF2D3005FBA037C4 + DF07981C1FC1A8ADAF71A8BE6CEF3D403201CCB13B20EDAD64F514976280A1B2 + 1277AAABC190EF0CFB14B03BB80B1897C5A076D7E9E08EBC47F9023287353F09 + E9CEB6E62013F4A58ED5EF1BB87B07AA46E26E0F1ED00412C9B755BBCE0DC41A + 4C473627A771DF06FA6FB13B383D5C5F763C62A23D88C5BD70698340221AC8CD + 2FD4B0BFF70E4B8B83C471E2D095D2F9FF05C09A69FFE537B55AED19F64CED73 + 334787EBCACEAECAE4FF644F9C1098E3B6B59263F60E8DFDFE14AE9D08DC0778 + 98F6172F5250EB6CEDDADB0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort remote files by group' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E64944415478DAB5967B6C53 + 7514C7BFF7B6B41D6BD7C77ABB07AC7B481D4C37B6E1C606832118313AC02DC2 + 1244118D89894410FF30C68843D41934A2090824A824431095F008A220CBC6D8 + 1863C8067B09CCB57B14F6EABA47CB6D6FEFEDF5D78B9A6DDD2621F12437F79B + FC7EBFF3F99D73CF39B91446D992F4D0752643F82E9542A9F5F13E0CB9DC5EC7 + D0E0969A26DF577840A3FE11F3E74CCB9A1915511D6134421FA6C1B0CB0D7B4F + 377A9D83F0F2DCC2DA46FEE2644EE2D61DAF06256605B40854B697E42F0A022C + 7854F13DB97961B84E8710A512ACD7432270C1C5B2F08BE2B14B8D5CC1A48017 + 8E895ABD49D243CE5ED84AF2A920C0C214554BB489999D959E8E7929A9181A19 + 466D7D1DAC9D9DB0D9ED6555D73C4BA702E89968493BFB6E4F0C589C36FDE49A + BC675664A5A5431BA605E7E3D0E7E8C7C5DA5A9C2EAF28A9BCC6BE3815C01869 + 96747F77C7C48045696A6679CE82B68CD41475882A04BCC063786404BF5F6F74 + 9CAA289F57D782F6A900A6190992EEB5B74D0C08D8D6577257C498A34E6AD46A + 087E01EEBB2C3A3B7A72B67F5D563555A5040091E68725DDDD713318B057AD4E + 02456DA0203E39F074728A229691161DF5369CA8B8E9B2420C15FC8020F0D5BC + 20BC4C966E8C07CC884F92B4DDDA3C16B04FAD5E4D5138ACA3695954762E46D6 + E7E1B6B5067EBF1F1FED3D0BE7B00B4AA50A1CE7C55D1211CF735DA2080B39EB + 190D8899952CE9CED686718030CD9F33693A81A16984C8E560CA6AE0D329515D + 5585C2C242A8542A1076E0F6F07ABD108977626BC9737834202E314DD2B61B75 + 41003151269372A523A198F256C274E000B67F50849D9F7D826D1BF3603133F8 + B9A2117B8E5442A59483F5F09F93ED6F8D0624246548BAADB936186021B7EF22 + 2989272003D1F1677FC3A6E28FC1B26DD8BCE129A8A78790CEBE0B5B572F8E9E + B98C23671ABF2467378F065892B3257DABA13A1860264EFB09208ABCD5248AD0 + CC4C1437B7409BC660FDDA27C018B4A4B339F4F439B1E750E9E04FE79ABE191F + 4162EABDE970A3FEC258C07E63F83981E3968D2FBD1F3D1E38354ABCFB7E2174 + 1A3568021E24F3E9D5F70ED5F539DD65E30149E98B25DD7CB562F23E1867CBE5 + D174EADB2B17BD1917698A90C968DCEAEEEED871E8FC69C1891364FDD7D180E4 + C77225DD70E5FCD400A688A45CA1DB4651F4F37AB529E259612E2207F87B1562 + 04CEA00903EEDE1E71646E293ADF58451C8406D652331F97F6D45F2E93DEA4D8 + 5C803F37081057AC3FA1089DB632D418020B938CED96DD705C3B4A4A558E988C + 35D87469031ABAEAC0F5C74061FF108FA4CE273D3AD64DA0879AEA6BC0B1EEEC + 20406CB1C16D88D34C9FA69243AE94E1B5C477B0DAFC126464E70FADDF6247F5 + 56F05E013E2F0FEE8F8DFE58E6393A323A668C8F3BF60E745A6F9EB41D2C5835 + 410406D1101F067F6036909E62A2C2F1DD82D3249734F24F2D457F9F03A25F84 + 2888E0060DA0AD9F0AF332736472D2A401F3F97CB87AB952E004CFECAE836B5A + 2704E8CD1AB0C35EF0AC80F087B4C866722113E528B5FE82E13B6ED0E4835334 + 051FCB436CDEBF3B2ADAFCFA2CCB1CE97CEBAD9640043BDB0F166C99F023C716 + EB2F50A072701F46E2A814AEEE5B2557295A33B216EA0353E44A4D9513236282 + ED78FEE07F95E97D9B79DDB14D46A3F18B404A1D037D1BDB4B0A764F5AA60F64 + 4B8AE47133E7929F0291B5755D5F86F222FE5FC0DFD3F17FB3BF0079A024EE97 + 5812050000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files in descending order' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A04944415478DAB595694C13 + 4114C7DF6C97A37882820757211C5A8F008A058B22FAC118A3A64D341EE5835F + 546A8CD1184DFCA289F1887E30F12806CF082646C216CFF8C59B52040514A98A + 0DB6207258058D41A0CB8EAF638AB8116C8DBEA499FFCCBCF77E7DB3B36F09A5 + 14E4460861E3AC651B420279453A213486F4134797DDF5B8BEBEB80FFC303214 + 60AE3E6F29622E02255F70FA85029D422869EFED853955B74C6DBF042CD8CBAB + A266DEA18488CEE6678BE1FE5E7178404E0E9F15AA6EA5042E5B04D316CF5AFA + 0A637490026C40E15099D9B47FB07F6CAEB079DCB8F013B8079F3EBA8C8E225D + FE9F2AE032F41B527AA4BEC6DAD20B5D9EB5D425EBC34728951598E40602B67A + 7DA3565E09E38303EDE919DA504FAAAA0A4B27F94AE31DA5BAAEE18F48B72982 + 00B70D08687029098086132012020A06036273CDC7264D8EDE92903895CDED0D + 2FA1F57DD35167917EFB908054DDFAB12339E533DC765109CEF773528DDB2DD5 + 0407F08F0985BB5E4094E14A42A022F8D52CCD3C05CFF32CD6ED76434D95C5DD + 2B7E53BF2B5A65FF2D204BBF598F4594F48B9068BD66B27B6F9432806FC70ACE + 79012A8370353A2E69F9A4C8985FE25B5B9CD0ECB0973A0A75BADF02B4FABCE9 + 1CE1EAF0DFEFEBE1C4FC20899F4038388CC7948D150865E6FC35AA7525194121 + 23ADD3523403D7DA6B9224417D6D057477F768867C065A5DDE261C77E2340E28 + B5A1D771DC5112A00B11B02CD6509206847B84A9433C31297372586C6DE53D36 + 62DAAF88CA26C3BD68BE9A2AD74C67CCCE66BAEEC903C0A31948F0CF00EAB4F9 + 4CDBAA1FFA06D0ACD8A81625DAF1F47A81CB174072CA3CA65FD73EF20D90A537 + B64B54DA5F6E3E75CC1740E28C4CA6DFD459FF0F205E9DCE74A3ADCA3F8008DD + 97024099E606C959693EDD301440959CCAB4E3758DEF0094D5F8CB421717B68C + 18742EE96C7019E42DDB03884E98C974B3FDB95F804011C445154241B576F9C6 + D98457DCC3B67DD022E41F900322E3D44CB7BCB5F90EC0646731D96EEFBA566F + 3CE319B0854F950326C62431DDD6D4E00780429EC56C120600F876E3E6490428 + E48088C878A63B5A1AFD7AC85BF1165DFE0930EEC0AD3D658269941C307EE28F + 86E76A6BF2AB824B58C1F6414774130342B017E5C801A1E19399EEFCF0DEAF87 + 3C1A1BD6DAFE3EA8E402B835B87C04DBF5126CD7B7E5803161114C7FFED4E133 + E005B6DD62C271ABD17B0AF6C756FC9CED2A174E15CAFD5586522B66CAF068CC + 56EE2CD469FF08186C99992B95566BF137F80BFB0EFE9501EC36196476000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files in ascending order' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A64944415478DAB5956B4C14 + 5714C7CF9D9D950EA545AC2005D94502485749017908ACDAD54FC428D9497C55 + F8E01715D4584DD3267ED1C4F8489B34A9D6C5D0874D818448986DAC1A3FF964 + 5940E511708DB8C195873C5C0A25B1E2323BD733D76C45047668C24D36F77FCF + 3DE7FEF6CC3D7386504A61EA2084B079D5A6DDA10B785D1621D440FCC433EAF6 + 363E7850E383390C3213204F2CD988983F8092315C8E51A0298492C157AF20FB + EE55DBC0647F63B1DD81BE796C41E96D4FA5B86E7680C5C29B234CFD9440B543 + B21D506D5985A571213A700185D37576DB89C9FEF1C5761A1E11C5F43F2343E0 + A9B092601970ABC5DD69E38AAFABF5CFDF47555B7AC1AEC80F05A10101971170 + 702A20223286E991E7CF340120CFBA378A00770808E4A02919738F2440140494 + 4F07581C6D60DA3BD01D1C906EDDB5308C13DA70DB4B15B8E0E794968909A5E5 + 033DDF48285C9F0E10159BC0F4505F57708059DC276212B57E19929C976CEE40 + 45097A7E1033F86D3A40B42199E981EECEE0807CB1642547B876FCF7C7C739B9 + 2C44E197100EBEC3C7B40E3390EAEC653BA60262979998EE7BE2D27607F9D692 + BD387F83CB65587A2EF43A8B3B0201BA1E019BA602E2125399EE71B76B03CC65 + A880F8E5E94C7B1EB5CC0F20C194C57497EBAE36404EE11E93ACD0A1FB7F957B + B500925273997EDCEED406308BA5830A554ED4DBCF9FD102589EB686E947AD77 + E60760CA58CBB4ABF9F6DC0032FC5BA50721630294A74DF69F3B6702A466BEE9 + 6FEDF76E6907A06CC69F195DBCD8320CE85C3BD2E92D525BB6B1A8360380BB85 + AE616A4C5AB685C5B636DD089C3246A9DF120CB0400679438354DE9CBF794F26 + E17537B06D9F72486527E377D6AE0E090D73AE48CB79AFEAD4333B5A1AC0F7F2 + 45EEAC003CEC573CEC48C09E2F96FEA24ED8C23F53D7C622FB5563427241744C + DC3BF1FD7DDDD0F3A4F3127E170A6707502871D86DD27F007CBB71F31C0274EA + 3A769B941C22E85DABB2CD3A9EE7998F2CCB70BFF18EDFE71F4FE9ADDCEA0E76 + C907B18AAADF024ABFC6ADA37592EDA380CD582CFDF4698C615F62124B0ADC8F + 1FC2405FCF8F9E4AEB57412F19B7AA3083C3931ED1150C08C55E6409D8966EB9 + B8482FE8BB3273D684AB67DD6B748CC8E3BEC4DE9AAD7F6BA9A28F01942FFD3E + 68E2F4DC0E347F8FEDBA00DBF5B577CB543AB4E893A81FF07A6178F8F9FEA715 + E2392D65DAA1284A0DE1B8ED58232918DC8F9FB36FEBA5F315EF057C718C8F5F + FA79BD2A3DBD6D7970F3981C143079E4E66E119CCE9A97F03FC66B90CF01F1BD + 5321740000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open WinSCP webpage' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005B14944415478DAB5966B4C53 + 6718C7FFE7D25A282D6DB9B4508416CA550505910C8D33CEB90B6348B6645B0C + 0EBE9ACC4F5BB2652E2199D99665C9967D5A629639976D668B03E654A2718272 + 998A804601A1409116CAA594D29EF6B4A797BDE71451329D9F3CCDC969FABEE7 + FF7BFFCFFB3CCF5B2A168BE1595E9408A028EAB1835BBF6ED440C6D4D16CB08E + 66829B287930836242A064C1595A26DCA5E5A1364E986F1BACB72D3FEE7D49FB + 71005373A342A94839C2D0C2D10479BECA989E0A4BD13412923C10C2E28C08DC + 7E0FE63907E67C0E2F25E38F4D3BB86F6D4D36FEA900D307CD86C4C4F0D94445 + 76B9415B09536A122C7A166AA443B981165F4342EA28820A2B16A29370F81630 + BC3888057EBA9F0F066A6ED4D89C4F04980E7F6950A8C37D5A75853153B31DEF + D47581F595C0E3CA24B3D7BBA4E828F4D977C0CB6D180B8C60647104F7160767 + 79812F7F0059073035362B645A6D4F8AB66C9B39BD1435BBC791AA774862E190 + 025E7706640A0E5E9711DC4A0A585908EA543B74FA09846361580964C87507C3 + 0B8303D376BE5A0CD73A80E5F0F10F95AA94CFCD59CF635FD5348CA6A187B104 + 85D1FE979157FA37782E19F6D12AE22082BCB24B6058B2E96446847C260263B8 + 31DB85396EE6A32B2F8C7CB10630379DD0D072DC37E5EE55EDDB6D8329774C12 + F6AFA4616A64271295CB10424A98365F82E35E35386F9A349E55D08310AF44AA + 7104C1800A51F92226382BAEDE6FE756BC81AC810393CB1220B7E9F78624ADE6 + 64717111F6D7FC491C4525019ED3C2B76C10238EB9892A24E9ECE0DC59104B87 + 618360E51C322CD7A04C76C23D674672DA7DB82373B84E5C38B9D94357F70EFD + 24014CEFB69CC9CC29786DFB736E1496F6AC85261A6540935088CFD19E264423 + 1BD6C618360085DA899C2DE7C12DEBE1F7A6C0B3684476D9194C7AAC189CBFFE + D795BDC3B57140C31F63B9259596F25DFFC09073775DB67817CD708EEF81C0A5 + E2D172115DB00A0F328BDA31DE5F4FE040CED673D0EA47B112F4A1D376DE7AE5 + C5A1FC55400B975FBA3331B7B417325620D9E1906CDB87F7C33D5D495C50A089 + BA08A0A44D8F0392344EA4E77620CAAC4096E0219915883B27831746DBFD575F + BAA57C04509D6829EBC5D24C31999108A56A097E771E18222EDE2244CCB68780 + 18095D0C15BB7F4140664324165E731721BF5FB877D1DFF54ABF722D44E6E24A + 4B924A81A2AA564CF4BD459C808832604500434B106AD585481057299305B16B + CF6F7009F3F04656D6007E3E8A8EB14E6B77EDB5D5101D6A3D9B915DF86A4A9A + 01C9BA05494CF06710715A126799F52E1EACDE647422BFA4138B04E01216D600 + B32E1E0333D7CE75D7F6D648809C43AD0D2AB5EEA4B9600B5896426AC63801E8 + 110DA548E2AC0891600F0191480C05A669E4587AB120CCC1E11140934ECBCA7D + E8B3DAE0F4DA1B7BEBBB7E8C175A7DAB26A682BD70F30EA5324989A464170AAA + BF873C5000E7D87E703E026269D2B9E3A112631C8E905AA1C2C8CD1DC45280C7 + 94751B74E60EA8F5B77071B03B100C8632071A2F2FAFB58A9C8696A3AA64DDA7 + F945653016F6C060E94422A3848ED5C3EBACC0C868291167A430455701F13BFE + 5D20B736BB1BB3FC65D87DB73FB971F0DCB1F5CD6ECF0F8A5896BA276363DEB6 + 9C3C238A761E875CB102AD2C051A5607E7D40E7848552F79340410CF9448643D + 28AA3B05EB72FB808B5924CDAE83FF4FBBDEF8F6AF99342BBF69CCB6182C251A + E4577F073959B59AD540C9A8A0A015989A2C85757C93E4428244E3E273C18B58 + 428B33160D560CBC776AE689078EF1E0E92CB2CF6D1A5D7AF9EED79DD0E7F591 + 22A391806444793D466EBE49AA5626A5A908F10B2E38B833E062B7FB63ACB7EE + F6919FED4F3F32C5706DD4BC4F51918F37EF8042972647986C38153648E3A1B0 + 0F3E7E0ECB81617885A1408C0D7EC6855C5FD99A4F3CFDC85C073AD02266D71B + 1413AEA5197E132513B2C8810FF2276086960B77299A6F0B6C709DB6357FF3FF + 87FEB3BCFE05A951FEEFA0CB72B10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Save current session as stored session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003234944415478DAA5946B4853 + 6118C7FFA7ACBCA666CE0BDA548AEA4B146494B7D5346FF342187DD2CA8A3E4C + 8B2E524260F525322AEA431064051129E525C3C532CB9C9724C388940A53B4BC + CE4BEAE636B79D737ACF99DACA79E6F00F2FCF799FF3BEFFDFF35ECEA1B64B64 + F5141085A58845538B4A1169EB15152E91B1E2B04D4BF2EFE9FA86963A05B520 + 2028640332E4D7C0B25C317C457CB4EE33D6F9D977A429EF9F436F7787302030 + 380CFBE4372DABB532E7C4CC3C58E7CD84A631B0A401ED6579E8FFD5250CF00F + 14233DE7F682D5737192184EE8411A0BBD919D3318569EC1607F8F3040E41F84 + D49C3BBC9B75A5461A18D1B2189B024C346B6B3E06AA4E423DD82B0CF0F10D40 + 4AEEDD990B41B680180F4EB218D7B3735BB5907E56C8313A3C200CF0F6111140 + 117F90E33A16C39ABF7B6F4F9DA5C7F17B542D0CF0F4F24142EE43A889B1CEB8 + 38E3597D2F3E8289F1516180BB8727B61E7E4C6E8763E69CDA1E6541AB991006 + B8BAB9635B76B1A091AAA11E6363630EC149B90D3CC0D9D90551911182838B3B + 42919A9A068661D0DAD601863683A6693E320CFD4F5FBA3B869FA350545956B0 + 72C54ABBD5F4051C844C964A4C18DC3AB05C70ECA9A7341F954A0507487E4F76 + 6AA73DC0F0BA63484A4A215798C18DFDC280B3A516C0EBEA97A0840606856E9C + 3B75A7A8AB884F94C1443E92EB194E8280BC32331F6B6B94F30164CBBA4808E5 + 9E4787FAE6F24CF845C4C527C368A2516807707E06A0AA7D6513C04648D3E64D + AAFC2182342E09D304909FE8044F17DBE6E3E47F55A8B4001AEBAA8557F0FF19 + 486213316D3463B16AAEAF113E036B856455B0D17B12607000D0D2F8C63140A4 + 241EFA690BE0DE210FAC71A360349AA0993240ABD3A37B4887824A03D6FA05F2 + 635A9BDF3A06D815B3173A8389EF3FCFF542C4852FFC7389DC1F1A02D04EE971 + FA9911A280603EFFF9C33BC7003B2263A19B5941B97C35A20BDAE1EB1F8CC224 + 0D313710F834F25FB07C8E53DBC7BAC503C499E50F3CBD7DB303433683A2283C + 39BA0A09573AE1E31784CBD2114CE90C707571C68912039FE3F4F5936AF100E0 + D23271E69622629ECDF5D2D7AB6D8EE2AEF3ACC857DAF4075769970AF1F993F6 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle file name column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002484944415478DAD5954D6813 + 4114C7DF4CD6D83652AA10A144D1EA4151082D7E9B08CDA558C48FC443F5606D + 5184DD9B11B4E2490441E949CDA6429082940A9A4DCD4145901CF2510385166D + 2B48A1A2566C905A424B693733CF1721E2A915767B702E33F39F79FB63DECCFF + 2D434458AE31C67EF7BB9BB57575B5B00F15B98909F66976E2477E6CECE9D28A + F1FF02F085B436C2C4685AA0ED458ADAC5804D89F9C5BDB957B1194B80864067 + 95677DCD34038C6612D1AEB2B6FFF8C506E71AE7B844792D6B44EF593B4120A0 + F86A773496CCB98FF9977DC5B2D6D4DAE97655570D01C2B3B4A15FB19CA2C3A1 + 0B5B38ACD568EF2112B601A09B52240151B70CF085D48D1CF83032F886523E62 + 9C0D4FCD2C8C7836D4BCA7E0A41D80339CF17E139636E78DD8D7B2D678AAA3CE + C5ABA719C203CB00FF69ED20A56390D2D1650AB39729DCE300A59B5ED5110A8D + 658C886AFD0E826A98FA304DEBE9C3A312643747EEA1C82602B459062CD76C31 + DAAA030E9C50BD8B7CE1F3C840EFECAA00FC210DC9B56773899E27FF37408852 + 4A7138BC5238260793FA84AD00DA660083A3547F0A246DA5BE3FF373BC1D53A9 + 922D001A164A08CD6F13FA077277D97C292A4657B371FDBE3D00723295EB3B15 + 9D207D04D9998E47F6D89322218E659F3F7CF117E03A43164E1B11B73D00C093 + F47349FE0104D59BB476894E506F0F00F1763611BD51D1FD412D4D973E478056 + 9B00504410ED68B221EE64E769E59694A285BCF1C632C017D4BE538AEED250A3 + 8BDD4E4FF40BF9E2726EA0276E7BB1F3B69C73BD7BFD78BE325F29FE1703C371 + E0DC5F5AFC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle file extension column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002654944415478DAD5954D6813 + 5110C76736B15F91D20AF5128B15054521B4F89DB4925335881F490FD583B562 + 0F664FD282563CF522583CA9492A062948A9A0D9D41C5404C921D948446AFC68 + C1E2C14A0BA6482DA1A5B49B7DE3444CA8E017C9F6E0BBBC9D9937EFC79BF7E6 + BF4844F0AB81883FD93B9CF2DA9A6AD84D66B10175FC38F7E14B726CECFEF2EF + F20BFBFC0BC0E191DBD90AF2E70C2FCF70D676049CD6179676259E04674B0234 + 383B2BACB55569040AC4C381DE9C6FCF91AE4D656BCAC605898BAA12B85EDA09 + 9C4EB3A37A6B63569B9F483E1ECAE45C4DAE337596CA8A9740F020A6F87B4A2E + 91DD7376A304E532AFDDCFEE2D1CADFD1E20F2970CB0BBCFAD97407AC5BB4D11 + D21D8EBC9E9E5D4C59D755BDE5E488118013124AC31A2CD72795E054CED778BC + B3C62255A691E066D180E63679945F4A9A80FA787ECEE5E8D5746D10CD92D504 + E66B8C6FE1D4605CF1798B02B4B4C929224CAB61FF41BBDBDB2D019E27042B6F + FC8E48F42348F59CD9C480F6922FF94FC390465B75C0DEA35EDB92B4F8293532 + 38B72A80668F4CDCB52713E1817BFF3740D7B351B3C964D3404CBE08DF9E3014 + C0CB144038C4FA33C3A1069E87E35FC73B281ACD1A02809C5467E9801A09BC77 + 78BCFBB8F9A202E8821AF2DF3006C09DCC727D35EF63C81043B6C542BE9DC694 + 48D70FAB0F6F3D5A01B88484DD31C557670C00E818FF5C220580DB9BD3A82E06 + 588D01105D51C381CB059F5B8EF1A5CF73895C4501F26A1A57FCAE1FAF2843A0 + 7768C2345A6EA2D304D82784DECABDF1AC28C04A3575B8E5CF5CA27E3E94CCD0 + CD9C314942F424460642868B9DADF594E5CDD3BB0B79FB6F806F4FF689E0CEA3 + 60110000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle file type column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000027D4944415478DA95D3ED4B53 + 711407F0EF8D4A89DEF422C208FA07A237FD0316D8666A529016327244128C1E + B435D79EDAA088D042DB43368AC1186BCE0C6115193DBCA83637CC1E642ECC74 + A915E69C6BEDD1DD79BB2B7456EEEE770FDC77E79CCFEF70EEA1188681EBD276 + 06044101EE249D14D469676324F9B9DED41250A30C2293FAC0958E48F029BCBD + EDC4C83FC03816927ECE82F56B4B111A7F0CCFDDB6218AA60535DAAF21724031 + 8674F23D2750B2611790194568A21F9E9E76FF7ED5E40E1EC028D2F1379CC0FC + 97003E0FDD07BD9040787A042C401103D5E7032CF0BAF8E216B34844BEC16D93 + F30586918A0D160596E2895ECC0FA892BF453AE65B3551D55D42EABE4CD1A834 + 4976C7FE075A07D909BCAB56A99D1B71B5A99C2DE0782DFB3D7F378987BE0977 + 8A660439E42F609F6C800506562DD6F46CFA0D64B2DCF7188E2610989A87CBFB + C9C776AFBAD9541ECA03E75EB080A7C0049B71EDC41EA4328B9C40E9BA359899 + 8F6364320C97E7E3305BB37319A8943E2B08281D5BD021A94022CD0D04677EC0 + ED9F661F92C5D8D42C3A2515D432203CDB5F1050D8CBD0795288582A5B74CB8B + 6CBFB968121DCE57D09F12AE005A5C0577D06ADB0AFDE96A4493745160796AF3 + 23989AABF380A0B9B7E05F24B36E83A1A516910439A0EA7A802E696D1ED87BA6 + BBE0254B2D6530480F201C270734375C30B71ECC035CC97D688351760873F10C + 3960ECC36D65DD1F80A2382F1E8D3A3B6394D7231423072E18EEC1A239420688 + 3456C6A468C0EC4F1E80DE09AB4E440634282D8C5129E20568AF3B60BBD84806 + 1C96DF628CEAA3F81E2507749D76DCB97C8C0CA8979919835ACC6B025D870D8E + 2BC7C901BD4ACC6BC9BC01E2CE2B2207FC02C7AFC5E0B9B0BD5A000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Toggle file size column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002A14944415478DA95D4FB4B53 + 611807F0EF29A2A01FFBA9FE06FF0813440541ACBCBBBCE525A4A210D35D4E5B + 1966D6D47649372F64A6DB2C9B4A10450499A77E10BBB1C05A22B508DBBCEDE2 + 51B7F9767622D13C9BEFF9C20E67F09EE7731ECEFBBC0C210467F5E30471C370 + 0B013E6D589B1B84CCC46A33B14BCDAD51D25997858DC84E27F66FE2C31C865F + 7EE496421BB2912DA0FAE663D2559F0D3EBCB96B913FC8C335E785FDF9FB29F0 + 7C86455BE8930D54B58C10CBE51308AD47772D3A7C703FE6974222627B36EDB2 + 369C4C920D9C697E48AC8DA710E07703EFDCF378F3D923DEBB67BFA34799C3C8 + 062AAE3B8855998B153E22B9D0E3F563F6D732C65E4CA1579D271F28BF662356 + 553E9657237117F3EB11B06627FAD802F940E9D541D2AD2EC062481A68199AA4 + 2CC9706B119266AE3D1EDC0194681F10ABA6108B4169A0D53E89DB55C9C20309 + DE56F84D7CF260ECEDB72D640B38CDDE2756B618BE6058F261BD831381703481 + 2064D1BF8A999FCB18E5BE4E092D64745525FB44A058734FE8402100D21DB439 + 5E435F9382358939D99E4307F6895B7AC6B30427F7C5A5AF4E49128122551FB1 + B025F006A43B68B3BF427B6D2A56D7130373F32BE05C1EE145A270FFF0A2A336 + 951181C2C6DE84BD1F397A0C1DE7D2115C8B62AF6C0AF516FC3CDA1D93309C4F + FF0B304CE29D173B0C0D1732E1E7237B02FFA2B23C85F962261D50DDEA24C64B + 5909E7E4FFA83B9F403840E980CA1B8F88B12E3BEE9C4885BD3B0EE17CA303CA + 9BECC4549F83855098B2BC00989CE851E5D201A5BA41626AC88B3B2752B9621C + 118F152A40C1F613B3B228EE3696040C0EF4EB1474406C4E4C2A852C407BC786 + 81A6523A20BFA19B983425F8EDA707741D83186AAEA003F2EA2DC4A82993D581 + AE7D00B6964A7AC0A02E93F5916503D495B72506FC0112D4B8E04F6634960000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle file modification timestamp column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E84944415478DAA5957B5054 + 551CC7BFD7C98C85DD9D481B285FA05049D3A8419434BB8CBC844C4A4792A64C + 4670A15D1E2103863CE415EDC6C0A2E8B0E8F42689B41C0D760C975C6C555C40 + 6C5AC62040D4DCC5259A5DF6016A9E766FE38E721717E2F7CFF99EDFB9E7F7B9 + BFDF39F7772919C7E32240ADC4AC8D740B8CA65593BD948CC3266FAC0F9B75F8 + 633F2A20308E514E01AFBFBC7AD68013E7BB9C033EA86D25EB5E750E8808E0D2 + 638BC6E052EF94FD8CAAE4B54C40C68153249A17E81410BE82438FA77A8C2EF5 + 4E592BA429E14C40FAFE1612C30F9A75899A956A540B239880D47D2749457204 + 3D39FDBB11A1CF70FE97CEAA6DC1BED4282640542D27152991F444D93B06BE3F + 7B4A6D1D1FC7DEAF9A30DC7F098343D7303AFA373C3D1F87CF9245D0DFE1A047 + 21676B34A74D0F0084D226B2213CC4650934DD6A34357E81E7FC7D11F24A307C + 972E0197CB81C160C4C09521A8CEB5A3BDA35347FE21A28E33CD471D8094CA13 + E413610C3D51F58D21C48FCDD01FD5D4E3D239053244C958F1AC3FB86C161E9B + F728E212B3D1784882F1895B308C59D073B917D29A5ADCD4EB73D5CAE6721A90 + 5C71DC0138DB6FC29A651E0F68E519150ED47D0A496921162FF402DBDDCD91D5 + A6842C1CFDACC2311F335B71F5BA0ED9794518D68FC4752A9BBEA30492636463 + 4CA8D3B2DC9A98405551260A766560F50B0170779BE7B29466EB04BA7ED5203B + B768D8AC372DA77688BF2762D1067AF1C2A0092FF97838B44ED386AECE2EE4E5 + 6482CB6131826D49CA41C34131C36F305A502AAE84EAFC051195587E84485263 + E905F515338296BA3BF4913A31DE5C1F055E4830E6CE7D8411287EC72E1CAEFB + 98E1BF7DFB0EDA54ED282C95B452DBCB1A495C6CA4D374C5B922C8AACAB0F069 + 2F5014E38AE36DC187F84656CEF0134270FD4F1DE213DEBF412594361071DA46 + 7AE1E2550B562D66397461DA56C87FA8C7F6F43DB46F72303BE07EB3AFDFF31D + 9416625D6C3CA86DC58789387D13EDECBE66C1CA452C87AECC4F85AC5A0CAF27 + E7DBEE1B338329CD9681EEE60836BF9BA4A3DEDB534FA67A6EA85B8182CC24AC + 090E9C697C9C6DEF404E5E49EB43B705F26284116B793545BBB3660CC82B96A0 + 55F98BE8A1DB0202423D58F3DD07BE3EB47781DF329F6903FAFA07F14E629ADE + 3262F675F95E41BCE8B7BCBDBD1ABE9449E9DE73BF4DFE92ED66EF4D5B0519D0 + 6A755BD46DF26FA79578103F3AFF296FEF6249C96EF82FF79D12D0FBC700B2F3 + CB7043AB2D502BE52576DFB42BFB22FFB5CD7380FD9161FC0551617C5BD3F3C3 + 13B656FD97AD65F75CEEC34985123F2994FABB80D0DE83EEED9BC1D1FD77266E + 9E6EDB3087B2F796E72950DE04446BD3BFE12E396E1DB57E3EF97FF02FB58DBA + B4CB89EAD20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle remote file permissions column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003804944415478DAB595F94F13 + 4114C7DFEEB694A32BB52287A020DE41A1081849443C7ED0406202E8EFF20F68 + 4CF002A386004A44E512251A91448C17A04811D4422F39DA02A5521104BCC520 + A258100AD875672805C5C0427492CDBE79F3FAFDCCBEF7664A300C03FF73107F + 020882F86DEE17BA436CCFE3ED2749D805C02C652348D6DD61B140C9D0E86886 + B1A6A27772FC14BDE900C16111312449E679BA2FA03D168AC1D14180FD3F06CD + D0F5B9173E7CFA62B2582CB13A5559E1AC01485C20E0DF91AC5946988747E06D + 573798FA07F11A2D7480251EAE20B0E383BEA583319B47F68C433801505A9CEC + F8AF43FC57D2DDBDDFE0F5FB4FAD3FC17294E81FADC42242DE360AC8533E5EEE + AB5CC522D01ADA4C03C3233E285D9C00C16191C95E1E2EF12EF3E781FE4567FB + 68DF40885E2FFF36394E22D922E2393B6925AB7D97F77CFD0EEFBB7A52742A69 + 0237C0E688A60DFEABFCDBDF7C849EEF7DD10D8AF2E2BF75C8FAF09D510BE639 + 17ADF05E041A43AB41A72C0BE006088F346DDDE02F54E99AC1D46DA28D4679FF + DF007E7E5B84B42B6D0A0B5E0B551A43BF4E21A5390142C22399EDA11290D5E8 + 41AB901230CDF833764640F4DE3815CBD8047318AC94BAE85A5AD8B48098D838 + E6D6E554405E3E8F824B0565C09E05E0512450F8A1F09B478ED94A4DB3EDB7EF + 5EB541615E1A3123E046EE296CA33EBF72AB02280CA0AC0012CF913882CAAA9B + 660FB87E31197D2E3EB9F9854F6C8278E793BE02F92B940DB307E46727B12962 + 8076728082FBF2315156ACC5F88C1526202030C8EAA3A0B452C3A690C0EB9D2F + 5BB801AE6626A2928133ED04B7A52ABC5B249E7B211DC7EC3B7010828282B15F + 5AA9C53542F60BA3811BE04AFA497CA7884534145754E394189FE92127EB3C8E + 39723401D6050462D17279BD0DD0D458CF0D907BF6384ED142B13394CA34B6E2 + 9E48380C7C3E1F32B3B26170C88CC1A806144A11BBAEA9ABE306C839730CDB6E + 2E222857D45B8B4BC1E99444B017D84152720A0C9947701D1EAB1BAD4D40824A + A5E606C84E8DC75DB4C84D0CB2A77A5BFF3F28B90722DA11A2A27703BAC2C7DB + 14A7887D649555DC00192947F0415BECE102CABAE689FE672142477B602C0C4E + 219ACB6B0DB61A943D7CC40D702EE910B6BD3D5DA1BABE656AFFE3933C662BC6 + 37C0428A4BA4DC006989713845BE4BDCD19F09EEF789ABC20AB2EE5AAD7D6E03 + DCBC7B8F13A0867D6D84B98D5A16103A2DE05F8F5F4A9DD6E0FD4EE3A5000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle remote file owner column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004434944415478DAB5945B681C + 6514C7FF33BB33B3B799BDE45E6B88C184DA046992266955223ED8548A0A9207 + 410AA695048516C5072B485BF0CD080AC14BEA8379507CE88320ED43A1D2569B + 266928C626211B6D9B8BADA14DC2EECCECCCECCECECE78669A804D9336A9F8C1 + E19B6FE69CF3FBCE6D18C771F07F2EE6DF008661EE53687B3AF084DFEF3FCC71 + 7CBB8F61AA6CDB16F2567E3E6B15864C33DF3B92B42EACB6B9C7E783006D8D91 + D76211F1FB842406C2A1305896412E9F87A66990D50C143D03D3343F189AB03E + D934A0659B502B46F8B1A2689C2F294A202E49F0F97C30B239A414054BE91452 + AA02DDC89203A76D78C2BAB829C033F5FC0FC160F0F5B82822118D418A44BC08 + 345D879CC9202D2B90750D79CB725D9E1D1ACFBFB829C0EE7A5E0EF0BC24F002 + 42828080C0836558724829CA1A3072394A9705AB50701D3A74A81CBE869B1B02 + 34D5A19263F859CEE7478C220885022889C5D1DCD8084555313135853FA6A791 + 334DB09436378A6CC68C8FCE20BD21C0CEA7F87ABF0F639515E5387CA0130972 + 1E23090582482B326492C5A545AF0EE70606319A4C1A83636668C3296A7D1292 + 2F189879B6A921FE6AFB1E48A204B78BFC74DB2CA546CDA8D4458A073AFBEB00 + 7E4F4E4D0F5CCD566FAA067B9AE32F575755FED4B16FAFE73C2004A8C854036A + 53DDD091D1A84D0974E6FC452B79FDC6A78313E6879B9E83F7DED87972575363 + 473C1603CF71DE77AB60214751B8DDE446327CE5EA777D3F8EEF7FA4417BF7CD + 1DB1B268F9584D75D5569A66EF9D6D17BCE25A54D85BF3772693E9C9C6FEFE99 + EC2301BC280EEE4E9489B1B9F2D2A2B03B68EE2A506BDE5E589A9FBD69D47E79 + F27C66B5CD8600C78140A9147A81B5D9E65447F3FBB62448DC72146E9AFCB7E4 + BFA367C6FA1DD8438CAAFFDC0DE81B027C2D09350CB88FE1E01591E3825B3A0F + E1AF12198AB170CF2DCB62D5A84805F1676F0FB2966590E92938CCD16E554DAE + 0BF84A149FE758E67429CB868BC94220113FFB06B9D6064CFDF22D725ACAD30B + 454BD1D0DE8DC2E0654CBEB51F39F2A1B9C30C6896EDEC7B5B552FAC09E893A4 + C1C77DECAE04B52347673F01F82D5B5174EE327C010EA69E868FBE0523513054 + E8DF9E6B8132378B3CE99AE4C7F020CE6897AC36AC09381115B5ED7E2EC4D333 + E73A772124B18F8E437CE710CD01E87F7457E6BFE8C5D4B1A39EE3158049BB66 + DBD92E450DAE03909C3AB790F44E258912A4983A878F88786C6404FEE2E2BB5D + 944E63B86107745946C6B661D03B96F40BA49FA1BD4B56987501DB09E0E6F43A + B562055DB98600AE76B4F300CA7B7A3CBD9923473077A2CFBBF102E9A9B48BEE + 8C10407B18601B39740D6F90611901AA97010EEDB59706E1E6E94A6B0B4C1A34 + 576F91F4DC41882C03F487016A9601B364584206952B001269EF4BB00970FBF4 + 292FEFAE2C919E467B7819603C18101DF7C1A9BB7F9E574DEA1ACF2B3B2B08D7 + 0EDE59A85977D03E0F87CBF01F565AD3168E398EBD72FE07A5FE5AEF7247571C + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle remote file group column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005554944415478DA9D946B6C14 + 5514C7FFF3DADDEEFB41B70FA05BFA0AA5A83CB4E525222A3128D426100D09A8 + 09348614F8022225111A110992484422207C200113941AFC0052C492200F1B5A + 01A5156829A50F0A6D77DBDD9D7DCDEECC78665B1B126AD272923B7367EEB9E7 + 77EE39E71E064F0BFFEA747329CF733319C02625645F3C1EBF78F956EC375A53 + 3046619EFC289EAC2F70394C35E31CAE6C9DC0239190118946E10F8918088A35 + 22A4A58D8D909E15C0BF5E6CBF93E94ECD49738E83CD6A41341643AFD787477D + BDF0FAFD8827E45D758DD29667029414728B757AFD69ABD18454870329060328 + 34F08BE4BD1844281281A22A61351ACFA86B4160CC80E222DD2E816337EB0501 + 7A5E405E76362C6633FEB9D7021F791F239826AA2A15D535A269CC805945C271 + 93D1B86263F96AB853DDC81A3F914E20A1CFD787DB2D2DF0FA7C38FAD329C47D + 92A9E121C26306BC54C42DF1A4679EACF86095CE6EB38360906519410A916FA0 + 1F9D5D5D38FC6375E4EADF3123A9DB5996AD12047E99AA225351E40159566A55 + 55ADA4B53BFF5B451F2E2D3CB574D16BA50E9B0D3A9D9EC2A1204CB10F8A01B4 + B4B6E1ECA52B9B6AAFF90F0882D06030A414E8F5BAA409498A214AD54639EB23 + 4821FDEC1B11B071E51C77469AEBF624CF04074F79D000B19844A51A415B7BD7 + BE6DDFD6AE27B52A9EE73F355011684E68F21F209148689FDFD1281F11A0C9C7 + AB174C48B75BDB5C2E1B4761404C92D0D3E3BD50B9EFDC426D9D65983686653D + 740A701C074551C9703C699CBCD754B4FCA40EBD0701DB014386D9BC446551C6 + 8099135C35DFA3E8B9E4A2B6C574BD43E1EB9B6F0464F5D2A65068BDD396824F + D62CC294DC0C3CEAF5E3C0894BA86FEC78D2CFE768DC4A020E5A2C93C9D2691B + C3E4381906E38F9C448B741BDE0737939A2CC76356D966F876ECC0CDEA13581B + 14B1675329664FCF878E4E21C513E8F70771EE72131C6601DB0F681D05F9345A + 8600E6DFB3386E9E83C2A12380714631ECD5A721F6B6428E8560777BC0F578D1 + 30BF04ED14AEF24010C777AF44615E161C360BDDEE04555910DEFE003ABB7B51 + 5E7552B33B9EC6C324E090C51C9D22087A2D5D7A02686FD791A330BDF5363846 + 8B39D0F4DE72749F3F8F1E2ADBB554B65F6E2DC3B4A23CD82C26CA038B80184E + 42AE37B662F3576734BB69347A9280C3568B3A99E7D1AF0C36CA7C4A9C212B0B + 5957FF0043D8C0C58BB8FE4E294294C07BE4ED7A3184B219D95853FE26DD9514 + F0A4AF9D420C45B0FF586DF32F579AF39F021410A09BBCD3105369AE25D7BD6D + 1B522BD6E1C6CBF330D0D404910077A9BB7E1D0E234F2760F1470BE58913D338 + 6AEBC9EAE97AEC1537ECFAB989A65A789EA7E11B06E490173D74020D50C00D56 + 0F63B1C05D51817B3B7726FB7388D61FD3EEB00B68CF60A04ECD1D4837B8EDBC + C0D18D57D0CA7B1B6A9CCDFB1524EADA2BC5E15EC51C72D86B19867941890F75 + B31144A1DABD56CCA5D4BFC89A42A91C3B377709E6863391D2767F5827969B8F + 6B866EFC7AA71AAAAC7628AAFA4DBBD4BF87C128C4B3D3F1B9CEC8579A528D10 + 0C1C4AD2166163FE6E3CAA3F86A8BF132657363CC52BB0FBC6569CB9FB031231 + 19F108855C56F68F0A90FD85E381DD63CD12E8F271024B778345D5B4432871BD + 3258692CF0575F1DD6D42C832C2990E314284946229AF08F12E07CECCAB1BA39 + 8A37A7639310B7291DDFCF3E0B3D6B80A448587EE60DB479EF93717918128F24 + 306A807392D5AD558BBF5384CE24C035C986773DEF635DE1161C6CDC8B8337F7 + 42EC8B685E43300A5A1EC60670782C6E951ADB408706E0E1CCB682A5E6F5D9CC + BDA8BCB281BA6E6C082043A0750DA0CD479B830BD441170C6A6BED6F846DEAE0 + 63B0A10EFD52D43FFF0593436756CA040AE90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Swap left-right file panels' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002434944415478DA63FCFFFF3F + 032D01A37CECFA3B8C0C0CCAB4301CE8F4FB8C0AB1EBFF87FB3911A561E5A67D + 609A14F5600B84C46488D2F0EED513304D8A7AB005F7160610A541297E039826 + 453DD882DB0BFC89D2A09AB0114C93A21E6CC1CD79C469504F8258408A7AB005 + D7E6FA11A5412B79139826453DD8822BB3D13400F3C6F9E60606C3BA4614619D + 548805E8EACF37D53318D63600133D23867AB0051767F9C205FFFDFECD70AA30 + 97E1C1EA950C112FDFA368D04FDB0CA691D583C00A71410685E05006B3895319 + 98585951D4832D383FC3072CF0E7DB578663C9F10C2F0E40D27BD8F377280619 + 666C81B818AA1E0656490A816909072706ABB90B1958B8B8E1EAC1169C99EEC3 + F0EBDD3B8623D1210CEF2F5E202A7C7101417D03069BA56B18D88484184C32A1 + 169C9AEACD70242290E1F5914314190E03A256360C36AB363298656F8558707C + B237C3AFF7EF188E4707337CBC728922C3F975F4182C97AE6560131462B0CC85 + 5A7074921758F22F300E4EA7C432BC390AF189CFC337289AADF3B68169987A18 + D8222F02A645ACED184CE72C666086C601483DD8824313101AFE0353D1A5926C + 86679BD63178DE47B5C0AE006201B27A10D8AE28C220E913C0A0DF379D811129 + 1581D4832D38D0EF89EA4F603EB8D152CBA051DB8222EC50B81D4CA3ABBFD15C + C3A051D38C910F40EAC116ECED45B30007702E8658408A7AB005BB7B3C88D2E0 + 5AB2034C93A21E6CC18E2E77A2347894ED04D3A4A8075BB0AD93380D5EE5100B + 48510FAA93EF01A34691281D2402709D4CF35605AD2D00000B5BFB53D66F49C1 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Keep remote directory up to date' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003BA4944415478DAA5966D6853 + 5718C7FFE7E4265DDBA8695AA48B35D33A5C311337D615B41FEA7CC1373A071D + 83B19539618309730C996CA38C7E70886CB07D704C712A0AA208EA6C41D14EAB + 58DB4DE3D2B7403E6CB3C61A146BDAA6594C9A7BEFD9B9F724CDCDCB6D9D3E70 + 799E7393F3FF3DE779CE1342C0ADBDD555C124CB7980D462CA9897C8CA86C6D6 + D0080CE6DE3DA74CA2D645CC4A8AA9228FFEFDEF6800AD909163353F572E087C + 727F880871E9CAFC65759EEABA95535FF8E7C615DCEDBBE127B2BCB211A1C8C2 + E2F28F41D04C2DB48E509E0A2120943F0451505CE2EB1F02DBEE5FD5F67AF6BB + DCB0E29A7F6BE805D2F6ADDBEB5EFACA6BD575CB7393E0901E5C1BB885A35202 + 8F34512128BC31D602F1F959BE6A85C4CE5250F7C0D66142DA76B9D9DA0F1B50 + C83A871FA0EDF63D6CAEAE42ED5C27EC56093159C640781CFB3A7DF015A92A17 + A76908A119A0E6FBB7DC158042E2A350F190302C661698D9CEB2783DB1D0539C + 519955B654DCF7410AD0F895376FF3A35818E5254E53F1F6DDB578B3254896EC + ADF49022DAC5051D6971A4407DCD4101D8B8E357C4C63BD2B7C7E0454CB2DE09 + DFF9CB011DA0359458C8752E58A5B50286FEF4BE9F026CF8FC18E2139D191196 + 0BCA06EA808347F185335623D96C1729A56E1063FD45897CEFDD1180F59FED43 + 22DA5D3053337FFCC871FC58A18CF0FA57643737D38B3FDF1D1280759F7E8764 + CC9B97F974C04B87CEE825C20C2600DB5A20C707A7CD3A9948A0F7C21F888C8C + 1BB6179EF63C4043D33B988C047284A744202765F8BDB751BE68194CA7DD0422 + 9ABC7D0F9812C9021043DC7DF230E63C5F09B3690FF6F79A1DA08BB4EF725FE7 + 322B66AAA5D9B44F671D87AF62C626696636ED4F623A60B0DCC954EE15ED610C + E95815EB91C896D28A4DDFFBFEB7B836ED3AA09F0374412EAE18C581617932B9 + 3EFAA573F069A75D07F8B413A4C40DD90FC759BC7EEDE8E3E0B34CBB0EB8E52C + CB94280D51D958425196AF9B9808CC34ED93E1C7B0399FCB7B7FF9E00901B8C9 + 0159D9674E139A54D42679A7A3C76CDAC337432876D95132CF9E07D0A65D07FC + 9E3A41AAA9C881C9B2C72ABDFECD47287D29026AB340892711F63EC09DD37FC1 + B571015C6BE617ECC96F87CE0940B70660082655B589FF52B528049B0DB728EB + 56A9442F1F6C738BB0F4EB1A3896CC46A1E9D7ACA7C32F005DCEB27B4995D5BF + 313636A4AD2F3AEC0D0AA41D2AD86A2E5C62BCC2B35F9E87AAB75EC58BCD2B60 + 29924CC5357FFEA73D0270D96EF7AC8A46FDB9F7F8246093ECF6C596B7679D40 + 29F1C041C1FFAC3CF11C70F1EEFF007814EF97455762870000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Bookmark current folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002DA4944415478DADD955F4853 + 511CC7BFC76D778EBC15C3C85259483D457F509BFBA36D06FD59254121F41E18 + 59142151BD1961493D0516462F51840FFE99E5FC4B987F2AC514CA080BC22843 + 300D7577BAB95D773B9BD33CBB77DA1E7CE9C785CBF9FECEF97ECEEF9CC33944 + 9224AC6590FF0340084143E9D66449AD6AA65236DB45EA27E2BCA3A0747462B9 + 5AC9AF2B27202574B0FA6F5749A4ED11490AB60721DE3DE7F67D09035C3752A9 + B9BA237D8F716786D1CED80FF77560E443DF27228AF6E59087EB7941AFDF98B4 + 3965139D135904C0EF0F40103CF83536FEA3685A3084010DB70CFDE9BB8D59D1 + E65110469BFB16C064BD070EC74168B55AD91867B50B45D36EB20028334807CE + 9C8E7B7D6BCD8F919F63A2004E96ABAF6F6501F693BBE206381D3DC8CFCC01A7 + 0078DED4CE02E276A73156318543D914C06964B9172FBB5940C1F5FEB8014F77 + 1861DBB14D19D0D9CB028E5FED84E7774D242DC5F8B39AD3740FB68CEDE03472 + 4043CF000B3876A505B3934E45234508FDEACC0FB03F8D56A051CB00AE814116 + 70B4A416DEA9C655671D0A12F9D79A1F212F250D9C5A0E681C1C62018ECB4F30 + E76EFBF70AB0704CF3F42914A092033E7F6501472EDD875FE852342231603596 + 67C8E593C1A9E480A6E1EF51800BB71198ED53348A55518DA51A56ED064540F3 + CF511670B8F81A44DFC7A50E24B2912BC1AAAD4E585449E01212648096B17116 + 603B5508BF7B4861C6B1DB8D85EF60917461C044201056932347B675722AEA14 + 5D2C8734EF5EC598CD5565DE84C92B2164F9DAEB0D6B569D0E09F4766D9D9961 + 0156472682A267454312D57615BE87798660341884B02F092A0D41E25B011974 + 4FDAFCFEA8637ABE64850D8DAA28225765DDC1DEE9390CD03D3ED1560C955685 + 3A7B054CF340175DB22580ABCCF0868EB120CE085D767ABA323E93167C9E2EAC + 797A7D48ECF6619CFA2E01C8E28B146754F27C03754885DB937B16980D69A500 + B785E75FD132C522B7605BF347FF0F2FA0AAE0B8E4009E0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Open console window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001524944415478DA63FCFFFF3F + 032D0123CD2D50885DFF0048CBD3C8FCC7200BFE87FB3AD1C4F4959BF7817DF0 + 5F484C862616BC7BF50462018D82070C186514D5FF9BD87AD2C4F03387B7432C + 30B070A18905174EEC8158A06B624F130B2E9F3908B140D3C08A26165CBF700C + 6281AAB6094D2CB87DF50CC40245757D9A5870FFE645880572CA5A34B1E0D1DD + 6B100BA4E4546862C1B3477720168849D1A6287AF5EC21C402215129B0C09AA5 + 7318366EDDC9B064F91A066A94B2EF5E3F8358C02F280A169096926468AA2D67 + E0E1E561A86FEA64B871EB3645167C7CFF1A6201372F3F8AC4D409DD0C9616A6 + 0C560E1E0C3F7EFC20DB82AF9F3F422C60E7E0020BC8484B31B436D6320808F0 + 3354D535315CBD7683221FFCFCF10D62010B0B2B5860F7B68D0CABD6AE6798B7 + 6031C3DFBF7F298E833F7F7E432CA0D8243C80514641FD29032383148DCC7F41 + FB4A9FD6160000873480B4360E3ACC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open current local folder in Windows explorer' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002284944415478DA63FCFFFF3F + 032D0123CD2D908F5D7F8F918141911686039D7E9F512176FDFF305F279AB87E + D5E67D0C600B84C4646862C1BB574F2016DC5B1840130B94E237402CB8BDC09F + 2616A8266C845870631EBA05FF194E2F0B6778FFF8148AA8A0AC198369D44A20 + 8B91280B3492A0165C9BE38722F1EAD676864727EA188CBC1D51C4CF6DDDCF20 + 6FD5C620AAE24A94055A299B20165C9EED8B22716A810783A699008380B8208A + F88797EF19CE6C3B85D5307E292306A3A8352862BAA99B21165C98896AC1A13E + 2506FB203D92C2FBE0BA4B0C7645F750C40CD2A1169C9BEE8322716482324986 + C3804DC15D14BE51E6168805A7A7A15A707CA232836FE519920CDFDC6EC26099 + 8F6A816916D4821353BC51244E4D566170CDAA63F8F3F32154E43F30DD209759 + FFA198014EEF9BBB8CC12CF70E8A3916395B21161C9BEC852271668A2A836B46 + 11C3DFDF4FA1FA110632A2188C60EF9DB79EC124E7368A3956B9DB20161C9E88 + 6AC1F969400BD29219FEFD7983E652041B6C1192E57BE6EF6030CC42B5C0361F + 6AC1817E4F14894B33D4185C538219FEFFFD8CC5706C3EFACFB07BFE0106BD8C + 5B28E638146E8758B0AF0FD5822B33D518ACDC7519FEFFFB8566283A1B21767C + F71D069D74540B9C8AA016ECEEF14091B83E5B9DC133BB18AF810CF02082B0B7 + 4F9BC8A0997A13C51CD7921D100B7674A15A70679111C3BFDF5F1948014CAC5C + 0C2A71E751C43CCAA0166CEB7427C930628157F94E3A549943BE550100FA26F4 + 2565CFF8A40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Edit file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000040B4944415478DAB5D27F4CD4 + 751CC7F1D71DDC0F0A6C09CE04F110B359CDB935251DCDC970F1C3ACB49C81C8 + 8F91A8B14AA505219E9023974B03EDEE329C0508022A4124648B8585B28992C0 + 80905F715EF75BEEF87E8FFB72BFF874771683FC52DFDA7CFFF9DDFBFB7C7CDF + DB974708C1C31C9E07C8FAA2E5BF2AAD934EC4C933A32C9C81E3191BC0E518CF + 4ACD4FFD68EFD75E9F74929899C8693FBF253C816FB3BBD9A9A12D89F9807D16 + E09AE276484BD75D98E849B4F569A6114FDC47E87B6DED8A27174F053E8E1BAD + 379B5414F5EA2CC0E1E206F4298D308C3330596C68EB555FD7F4B6EF0DF8ADBB + 3159D717F2D4B3CBE0D219A1191C45FBEF9A3A2F70E0F48FE4C4EE284C3AA638 + 01669A817EDCEA45CC46256AEB9B6DEB9F7F4EB472F9123C715C0AE1C828EEA9 + B4B861B58E7881FD8A66F2E9DE6858EDDC00912F603033D0688661BC9A01BF60 + 091E0DCF83AFC81FBFB477214CBA0F034683CAE574457A817765DF93E2CC1761 + B1B9380123DA71B4757420447910EBB74680671B42673B036D402E0C26061DB5 + 9754ABAF5C88DCCD304A2FF0F6C9EFC8A977624131DC001BAD464F5D2256C7AD + 845860868FEB2E18B3019DDD0153C5CD51BD56BB7D534359B172FA37CD2C6A24 + B27DF1305B9D9CE27DF5495813B7022221810F31C16955C14EE971ED0797DA3E + E15CB7395FADFC6BDF0BBC75A281C80E6C8669C2F9AFF13B0DEE78EC7288C4FE + E0F31C705283604CA368B9EA073E6D90CC8C4F037B3EA927F2AC5730F60F80DD + 1D1FF876A73BBE14E24742C0E30BE030F5C07AAF17B76F05A09EDE83A2F7D378 + 7F7FCF0B641CFB9A28DEDB02A3C5C11EB7A8317C39191131A110053C0DBECF7C + D88C3731A1BB85AE4E3F2C7BB90A47CE75A0247B2B3BB0EBE845A2C87E1D06DA + C11A1F694CC1DA984510CE8B005F20C1A4A11516D5CFE8EE1120FCA5F310FA07 + 432AAFC799DC6DEC407A610D51E46C7B00B05B34186D4AC6BAD885103EB6113C + E13360B4CDA047AFA0E7571EC23655BAE38BBCBB52591DCEE66D6707D28E5491 + CF3FD80E3D351320B85D9A82D0503D56C5A683275E03ABEA32A8A13AF40DB820 + 89AF80E0CFF87DA0165F4913D881D4820AA2C84D980550EA7EE8DACA21593ADF + FDF5FE080C12637CA81A77066D088D2F9F15F7CCE1CF2EA2343F891D483E5C4E + 140777CC02FA9B64902C102324340C94490FDDD09718B7122C8E2B7B20EE054E + D5A0FCC364762029AF9428F2764247D9BD0F699311DFC873B03F2311637A3568 + F31828CB300223B3E1CB12F74CFEC96A5414A6B2033B72CF12F9A1143770FF82 + 0B8A42949DBF8437B7BC808DD11B200C5E054150B8671D734D4171252A8FA6B3 + 03093967885C9A3A0D947C9485A0A005887E2D0DF3021782CB141455A0EAE35D + ECC01BD9254476280D7ADAC129C60E9C43F5B18CB981FF5D9E3173020F73FE00 + 754A41742C82EACB0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open file as if double-clicked' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003264944415478DAB5D57B4853 + 711407F0EF2D2B280A0D21519C4BFF29B48C9249492FA5C24A5D625A6A106926 + 94FF85564C5D6050585410583E8A5EFE9199CBC80C327554BE86A96943672BB7 + 1E339BF3B1F7EB76BD56D3EBD69D61E79FFBBBF7B0F339F79CC125E046645EAA + 26FF96A792AF86C78DD115C2442D3347B8031C2B1491D74FC6C16C259D15477D + BB1C55E2EE371A9D791713710BC8B8F088BC91BD0F068BDD697E4C6B40977C10 + 15759DAD84C1B8A75898FC6356C0D1F39564714E3C74269BD3FC9245F331A8D1 + A1EB038DBC2B3915BF761AF044E8EB4D7ACC7F46DD8631062021ACB668D1C2AB + 4325A713306E700E3449BFE0AD4C459FFBE50A949DD9FFA77162B2B847837F28 + 2F3890B779CA64818FAD62283A253D221406979C49C4A8C1EAF22D3FAA46A0FC + 3E86EA3A096E0A921C40F5398E84B3266C43202F82B1BAC9ABBCF535AE7624A1 + 5470001A9D6B6022F4460BF28B1EE356DEC129400187DC967E624AD1E9C04464 + DDE0504032867516D67D655FAEC0EDFC142690492DC33570BC68254A7393A1D6 + 5A59819CCB0F70E76CEA74607B7A3A5DACE3690D34DFBEB1169945D44C026987 + A11F1D81ACB9171187EECE49659B6518351777CA6920322D15AA7E39EC2417DC + F5D1306A5B18A39A3936E69960E455B23E481BEACB7F0107F0BEB10941E147B1 + D89380D534E0B4C80C84749D97368A29A43F9D06A28E24A0A9B2169B922F82B4 + 4961B78DB1763FFD4F31136A7E580D9D7A349406B6A6EC46739518911957601A + 6F706B247F7B1BABC90CF17DD158BB55E14503EB76F1303460464854022C862E + 966ED961F59741743E6F7A112350ECA08180102E96F984C227C80F76CB57F73A + 76719E6846D62AC5A76E796E9C405940039E2B3CB17A4B2C96789AA81D681D1D + 93FF86486ADA30AC1AD9C1CF55BCA0018F05F3B0712F1F369D0C24E9AC88B37B + 17CFA8DFB7BCEC85DEAC5F9A281CD2D280B77F0078FC0C90762D4B1176443FFA + 038DF7CABA6205CA507A64130077951F7C03BC28C0EC620C8E205810F5900E7D + 1DAA6B310265D61F203C968FE5FE412CB36614249D233D0DB550764B5362F23E + 97FF06DAA86B18E62C482DF5155C1923FC4A7F9709C752FF4FFC041EB8B1873B + 0442900000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle synchronized browsing' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003034944415478DABD966B4853 + 6118C7FF73CB4C0B2F0DB5BCDFCB8430523141C40B5E52132D84681486A695E2 + 7054201841170A252964327164572C7099699A9421885682AC4C1C132F6B666A + 5EA6958997B5F39E6DB5CED0F961FDCF8787F39CDFF3FE0EE71DE78CA556AB61 + CEB03C78924116E0658EC535B73EC4F2E449D49929D1260DD436BC2675233C11 + 3838BA9A34303DA12475233C110CD6A49934E09D751FB09CC0DD0BFBC0B57184 + 1F37006C16DB8019557D868BAD1BCD1F7F4A0BE4770EADB970ABBC11E2F74274 + 2BDFD24F561B6B4B1BC4FA26222F9C0FDFED01189B1F45E68324B4E74AC975BF + 13F5B44026362EF8B9F40382C65CC8BFF5C3CDCE031DBD53809502E0A80C38B6 + 051BA7C2F8907C7A84B1B951C804DF483F204B2BE8AB4E652CBEB4BA84CAAE32 + C4FBA7C29F1B487A81279F912ABE68876B6DC5446C2C7D45937A9E087AAB9882 + A119393CED7DC1D21CBA0465D3028AFFB5BC80B3F5C7D0A56867CCF6F227F53C + 114845290C48AD39FE5E9CCADE9C065275FCC0543F32EE453266A585137A9E08 + 7A2A93614A82739F934AF14AD530B2EBD2F155B3B1FFA6A7605CCF1341B7D034 + C1FE3C5AF0F88A1F72EAD230BB306D94EBCE1FD7F344F0AEE2A04982D0338DA4 + 6E842782CEDBF440B8D0D928686BE500619A04474B06C8B98E5F2FE1F95A41C7 + AD24D288A8DCC1809CB6BAA03CB916EE763E882868223D1DBF5E289E08DACBE9 + 814811535073A40D5EF6BBE8EB85B440C7AF178A27823737134923AA6A27030A + 718DC2E5B86A6CE66C4114FF05E9E9782AD4CF7968BA1FDE0EBB19B3144F04AF + CAE881986AA6800A357C3AEC120465F3E45CC70FCFC8D036580F5E301F1C8B4D + 8CB99822ADA0B5348134E2C42E70D43CF3589F0CD47EACC0CAEA8AE1C4B21DB0 + E081B0402EBECC8DC0799B1B4AA245B0E2581BBDB13841332D68BE114F1ABC27 + A1284DACD36CAC2B142A391E4ACBD1A9788945CD6BE14F5808720A41FA9E1C1C + 704F58730F12CEB5D082A6EBB460FCBB922C6E70D39A97DEC8AC0C738B332816 + 7D00169DD074F5B0499B9C74BEE53F7C93CDFEAFC2DC82DF611A3B62EFF32D88 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Create-Edit shortcut-symlink-hardlink' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003034944415478DA95D5FB4B53 + 611807F0EF242CFA278208A21BF543FDD60F99A1A69818E66D5E52D3E5756E13 + 3433C33244B139A7DB728961A69818268699215AA1A181A262258A95934A37BC + 9C9DCD6D6EBE9D337353368FDB0307CEFB9CEF793EE785170E8F1002897A80C0 + A3E20D99AC245099E9477B926667F3B681C7699798064798B93E4C68F06678CE + 63C405B06D726F647E89824647A37368D623C405D8B0710394C104CA68D9423E + CF8ED08484A8057EBA7D01715D3F910AFC60DAD8E4040EF8006B06F316A2D5E3 + F5D0ECA481A62FABF342759C8048D547AAD2FD61B47003877D7D60B56D3A90F9 + 2506199C9E92655C39CD090815BDA43A3300B4D9C609FC5A5CC3C7498D1DD8AE + 3FDA55C8B302799C40B6BC87D4E404815AE706D862CF81464BD9B14DE6DDF7C3 + D3A8155EE5063265DD44911B8C55A3755FC00131126DDA40F98B01284521DC40 + 86B48B28C4A15831780E6C5751DD5BA824D7B881DB959D442909C3F21E4078A2 + D06B98AD4FAF143C3B9056D1415479E1D0D11B6E831149B9E87B59EBD570FFA8 + 2C27905AD64E54F911D0EADD0391C9B9E86DADF10A0888CE7602298FDA88AAE0 + C69E40748A083D2D5B80DE60C4C8D81456D6281C3F7A04674E1C73FB4E50EC0E + 20E9612B7972270A4B947B20365584EE663906BF8C43A66E81C1B8EE7876FEEC + 49140A9371E8A0AF7D6D325BECF7C1FC1C2770B3A499A80A63F604E2D2C4E86A + 92E3DBCC0F8C4F4DA3B3670034B393EDBA70EE148A2502FBF0E272052A8A4508 + 8DDF0124DC6F22AABBFC3D810481189DCFAB1D6B7607D5EA660C8F4E3A7AC234 + 3EDEF50FE13BF3116C362C41E804E28A1A89AA281E8B94C52D90942E414763F5 + AE9ED5664399AC1EA3135F5DF26C963DDA0E805FD84094F71219C0FD0E523224 + 687F2673E9AFAC52C8CA2F85D9B2FBC3D82C7BB41D404C413DE78F6061660C6D + 0D552E7D3D6D40C10329B4BAE55D7D361B992C72023C1E8F6B3E2E5ECF20ADF5 + 552EC34B2A6AB1F0FBAF4B9ECD46DFF212687E2A75ACCDCC6929AD5462EEE7BC + DB3C9BE5A78ABD039AEAA4F0A6E2055E025E4DFF5F2CF00F30DB16EF4202D136 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Quit application' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002DE4944415478DAB5D54D4F13 + 4118C0F167BA6D1729AD012362D408D242A5455089C1180FE04145EA41BF0347 + E391A88931F1ED683CFA1D342460D568ECC11891402C524B6B8B60D408C69408 + B4D2B71D9F59769BD9E9960395491A1276FBFFCD6CDB19422985ED1C8401B708 + B1EC753A8701E81520644F55454A9730FBF0E7EAEAFD9B942A2AF0C8E51AB613 + B8D72E49506FB180658B6D055FCB8A02F162117214AE0FADACDCD500E7D211AB + B5B10981FF311611F85828FE4660F706B0D3454FDB6C2013B2F1DC10B2B5BA21 + 3F97048A376FFA8C4DEECD62F34D3E0F437F568801B021C0DEB0FFF90B90BBBB + 211789C08FCB97A0984A99C6A58606D8F7F809D8FD7EC886C3F0FDDC5915C99B + 01A7AC5615B07B3CD0FC6EBC14C9C563F02D10284358FCC0E828D8DBBDA5FF2D + 9CEC855C22A1026F0B0523D0AB016C052DAF4320FB7C06E42B22050DB162FCA0 + 10CFCECEC27C7F1F509C3903C645E08406E881660CC87C00910544D8A8744D9F + 00032644A0870374E49010CA2513EA5FBBDB63887FE1E23A302902C711B07280 + 8EB805841F2C9E14E26C14B0392502474D001D690B0641E666ADC671359F0706 + CAE23AF04104BAF0C3AD047883CF40F608007E5B6203E72B02D3F87535009D26 + 008B1F1E1D831AAFF9235A8FC560363068FA886644A043006C18EFC0F80E2EBE + 9ED8F8906BB8D5FC45248A489E43181015012F07B0B85F88B35004436C54BAA6 + 230C888900DB4925ED87D61D0A81C3E72F05321898E1026C029D88D47248FA53 + 04C27D7DEA5651C4665C043CB84D33A01697DFF37EC2109F1EBC6078043AD235 + F6D4804CE2569189C7552081DBB60168D500B682632F5F811337BB74340AE18B + 81B2B8011919813A7F27A471639C3AD30F0A6E150C981381160D6083218EB636 + C82493EA1B361B66F73260DE00E081D328498D0E93DFC156461A9BBF142585C0 + 2EFDC8BC2611B8D380AB90AB8C67F195C2D917F923931DFA4D75753788855CC5 + EBF5551ACB54A10F16D7D66E970EFDED1CFF0063AD08EFA1FDD8330000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Select active session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002864944415478DA6334B5F73A + CEC0C068C14011F87FE2F4C16D96D864184DEDBDFFCB2B695064FCC37B37184E + 1FDCCA88D30219055586E0AC2E86FFFF816E013B084223F3FF218BC3E48078C7 + DC3286270F6EE3B7404A56892130AB0F2CF0EF3FD4D350FA1F94F11FC9D2DF7F + 1918BEFCFCCFF0E93B03C3B575250CCF1EDFC36F8184943C837FF6449CAE07D1 + 9F7EFC67F8F00D427FFFF51F6EC0EB1D450C2F9E3DC46F8198840C836FF654B0 + 69C82EFD0574E9EBCFFF19DE010DFEF3F73F36FD0CCFB7E431BC7AF104BF05C2 + A2920C3E393318A00E66F8FD8781E125D0E00FDFFFC3830A1778B43E8BE1EDEB + E7F82D101416035A30071C91EFBFFE6778F30511F684C0DD35690CEFDFBEC26F + 01BF8030837BCE7C86579F1918BEFD22CE6018B8B93C89E1E387B7F82DE0E1E5 + 67D04F58C2F0F71F7EC359DF1F22C972B8055CDC3C0C8689CB092A667A7790A1 + 37CD81A04360A06CCE4188051C1C9C0C36D6560435FC1437045B50387D2F41B5 + 9DA94E0C95F3A016B0B1B211E522D3E06C86FE0C6786EFBFFF11A5BE6AEE7E90 + 05C417769621790C1373DC88F24173920343F5ECBD0C8CF814C928AAA304B67F + 7E3FC3947C4F868FDFFF12E583EA59BB302D0006D93D20A50862BF7DF91445CE + 3DB599615A910FC30351118286F33D78C150337307560BFE5B39F961D5F49D53 + 8C61666900B0F8F84D940F6A666CC5EF0374A0EF91C830B33C98216FD236C286 + 27B832D44EDF843F0ED04152CBCAFF332B43195E7E24CE0775D3369066417CE3 + D2FF33AB22190A266E21A8B622C18DA17EEA5AD22C88AD5BF47F467534C38B4F + C4F9A061F22AD22C88AA9AFF7F7A6D2C43E9A44D04D596247832344C5C419A05 + 11E5B3FF4FAD4D0096BAC4F9A071C252D22C082F9B455A590E0400AAD1345901 + 60397F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Check for application updates' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005DD4944415478DA95966B4C93 + 571CC69FF7D2167A81B640CB9D02020371DE2688A29265D3982C53993AEF1BD9 + 255BB2257E984EF7C1F4838BCE64C91213E3B22D268B53A60ED0CD6D1A963915 + C109032C8ADCCAADE55228B7D27BFB9E9DBE48A7F3123DC9C9E979DF73FEBFF3 + 3CE77FCE5B06CF592AF627C57072A6140CBB8A213080212E02C64608F9C317F4 + 9CDD6C1C99AE34C61B385E7299BE6F659E35F01923A4117CF23E8661F66AF5AC + 222E510AB94A8AA02081DB098C0E78303EE41C1308739401294B9B9791DADBD2 + 8DA7038C25FC3C79FE8628DEF1E6566FE3DAF99A71797E210F9526128491D11A + 4107CDB4A1FEE46800ADB5DD8849D621656E0EAE9EFAEDC980BC0307D6B152EF + 973CCF64BE4DEA5014DF8998780EC31606D39304BC84855A1789D4BC38A8B4D1 + 33305A05AA089C1C3E0F70EDD4F9C7018C6CEEFE88430C1FD8AB92E7638DB215 + CBDCC72091319822D9F0A6BD0569AA000FDAE1353740D3790F798B53E88A0D20 + B36A68EBF752C00F671F0564ED3EFA0527257BF5DA12AC5AC4A270600FC8C01D + 78F4A570BEF0391D313345227341975E8FE18EDFA1AAAE40E1EB8550C6EAC296 + F9BC02AE9F3CF53020F3C36FD7B37CB03221A118C573B5285A5A0FCE390862ED + C484662314EA098CDB0C98B227224A3B088DF406B84B879191AB8761612E8D10 + 1156E0F312D49C3CF100A0C4C8676667B6A96352330AE61BB06259034D1B27BC + 6E15F55341832643A3EF867B5A8B91BEB9506AAD30D46D427A6634D25ECCA241 + 6702035211E2A70AFE3EF7FD7F80B49D15A59C4CF829277739D6AFAF46847C5A + 7CDE6D7A99FE9EC2C4703692B26F60A0A30844E0C0CB9CC8EF2D837CE2CED3F2 + F0D730C0B0B3EAB452ADDD5250ACC692E597C3237C1E1555E24047FD66F85CDA + F08A648A11C4A634235AD709C77822B5448E485D13AE99BA611DB397DFDAF9CB + 5684774C0454B6E993E7642F7DA51BA9598D618040573B3198075BD74A088108 + 30740621A14A109B71036E472CA64693A0496C4162CE55745AED686C1B6CBF55 + 5691F310206D47A52329234F99BDB01F4AF508B4F15DE26B73FD7604DC316059 + 062C8D1E9A40300348CFAF862BE08242D30F997C4C8C63B30750D3689D6E78AF + 5CF5048005DE693DA4523FDC1306708C041CC780BB0F98250814A04F302329EF + 3C1CC1A9B0E2611B709D021A3F38A97AC4221DB528569F00436E2D86CD2B2061 + E966F22C789615212115B30A048160F1827A48631A30ECA3A92C3E057AFA04D4 + 9BC6DA9B3EFA2EE77F80AAD38A28CD1643D63C446B47C1D2740B7A6321E1D819 + 48A80D01A88A903D410A585B720593AC9902ACF0093E314E6D9D1F96615779F3 + EEE3339B7CE160CA25DAAC7E529ED92317A346577E1F14B28A1583070202962C + F807ACBA192D1D8934FDED50C674E1C2CF4E0489EF8DE64F8E56DC07A492828D + BBE8D167E9D5EE09252695E5A5D583DEDB1D309BED682DF811164B6ED8AA6090 + C01F14440838375C2E0914BA66B8483D9A4C03E696405D0E8C570261C0F21D65 + 90CA9899C022C4839EC656B4DFB5C2BAE635A8E27260EF2B8275600EBC3E1918 + 6A877EB20A36E94B986492E1A7204EFD271A4CCD20AC6743ABF160D5AC0322A0 + 78C7360A9855E0C5F4A80D372FDC8429F75D90454EA8B82844F16AC839053AEE + 1542DBF40D529DE730285D85AB9AE3B04F59D03D440F27EB3CD27A68DFA70F5A + 2C02566CDF442D425841A8EDBFD383965B83189B938DE9D43830120DF8211ED1 + 779B91206B83DF47502BFD0CD563F9B08DB7D2E0DE231D5FD9F7D3EB5E7814B0 + 6D1DBD0E682FE8A2A9E8A779E811418EB149F4DD1DC184CD8D805F80329A813E + 99C03E14444DCF421CB3EE0A59D205D6B7A7EBF83B958F4B1211B072DB5AF499 + EE616C6004B945E9888EE529C01BB64C5445FB8E71375A6E06D0D09FE1FADAF2 + FE45A71079B6AFFF7625AE18034FCA421190969F8E5E93B98FFE3B38C132E463 + 4DBC421B9B188148054D12AAC8E5F0D18F3AADC3829B1E82C39E80E5F066237C + 788612025CA49E640503FED51B8C433D678C714A2917B1899EA957E96B5DE8A2 + 270C7AE81DFD57D0452A4A0FD1DBEC39CABF50E89889EED1D1C0000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Open current session in PuTTY' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003204944415478DA9D946B4853 + 6118C7FFC7396F914357799D3A734D73792945D340CA0BA6416A36A12044A4C4 + 0F7D0A22BA5074F9D4A78A9090B04022F33643C49CA3A5A5A289CBEBA6B8F232 + D162E696E936F5B41D75B8DCF29C9EF3E139EFFB5C7EEF7BCEFB7F09D0B4B894 + EC210288A09B6F3112E827E826C7A7649361E75F33E98FB1CA023002082F5421 + 37960D92A456B7EE37DED748DB71F3A009CA9762668088C23738295A0738CD77 + C2BDFF0A8C3E5958125CB3022CB6BA067C185DC170C55966005151358E0B9DE1 + A2A982E7F87D78070462521F8AB9038FA05B26F1CB00E8373C69A60D3CCF6706 + 8829AE41FADA0378EB1B20CAC8C3B0EC2D642E0F31C34EB45BA328CFA30F3896 + 9A4916657941E03D8DC8F41C2CE9E6D1DE20858CF7DE1CB5DFA6F7592E3D80E4 + AEBF50FB7BD74854820861474F500D556DCD90CFA561DCABD4615D7759CECE80 + BA3B01A96C17768D203983E32B8C5AFF892B467CAA2C832CB00D4616D7616DD7 + D3D3FF0648EEF14AD86EEE4F4469392C8E5F90757E664401699302F29938BB75 + AE851ACA2B6F9B403852686C8016E2A4651CCACC87DB6E8EEDB7AD7B01FD8F59 + EA58764DEC418BCACF2EC81C1E261C2934C8D08444DD75B0C8656A2CCAC80537 + 58608DAF180D1892D6A3AE650A551D2ED4DC945AB9ED8B103B299498EF055779 + 09F1E2626C9E96A5052D06DED5A255E1845695AF39CFA6AFBA5BDE186A03D8AA + 50D2F26C0178284A112924E11F114B15FCD47CC3976609DA35228CEAF8DB763E + A91ED90ED854A8C5B6DE2926FD5704F59F42E2B9123839B33133DC87C1CE1EBC + EAE4A0BA5E4EEB885380E8E25A24ED67514D170D2466F524E61781F0EFB79012 + A646F091648C7D944235A647E7BE7274545C867995F401872FD62186E784092D + 09EDE2FA8DC55E5B40FA740A12F20A306A69AE0DC1679FC758253C28853202C4 + 97D4C3954DC06022AD01FECF72C4B32AA8D33288335072AF5A7FB245A18C0009 + A5926D013FBD04117337A1DC7B03D39E629B9845A18C002121C174726D14CA04 + D067F6D1B4081B6651688FBCF1202D80BDC940BE90DC3AB6A750BA665368DECD + B8D9F11DE4DA08E8BF013C7EB85DC0DF0AA56B7F00C86E77FA2A9D79AE000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Show information' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C94944415478DAAD965D6CDB + 5414C7CFB5E3A48D9B266DDAA48D9B8F6D59A56D94F1046FC086342124B40FB4 + 09D614A46963D556DE9900A13D2078E3A542030602BA6CD2A635AB90A6B1877D + 893D8C07A45118F46B4B9B8F366DD3354BECC671AECDB5D3544D63BB3CF07FB1 + AFEFD1FDD9E7DEF33F4660A2AEC39739DAC61C24B76F2004DBC8B573756A5651 + 608A5CAF63518A25AF1C4919AD81F41E0623573B01D167298A3AE670B5D10EA7 + 1BAC0D76B030566DBE2C95402C0A50C86521BFBC886559FE1E14FCE9F485B766 + 3705F88F0EEFA72D74B4B59D63DD5E3F50346DF69120630CD94C029616523C2E + E3DEC4C54323868060EFB553162B33C86DD9891AEC4D350BA96F9B494E01A228 + E8F06F077B93B366BE281420F5E491522E4903D3D1035FD501027DD7DE642CCC + 4860FBF3A89A8AF50A3726E16C641794CA329CF9E111CC29FEBA18357533137F + 285259DA3F3374E0E73540E8F0E50E68B04DFAC3CFB1B646563715D1132EF0B8 + 6CDAFD3FC9027C7089D78D135778484CFEC943510CC7AF1C99AB0022C3E75CED + DC4935E7468AF6B783D769D1EEC7D2229C1E5A328C55F7647921F575FCC2A17E + C4F55EEDB25A9878B07B374D51C61BFA42D006A75E73828401BEBCB10C939992 + F1C6CB18A6C71FE2B2C80750B06FF8B4C3D936D8EEDB02FFA716D24F209F5B1C + 40A148EC178F3FBCCFCE361B06C7C77EAF1937B778A1D5C3990284420EE69353 + 3751A82F36E60BEDE866AC36C3E03B1F876AC643B7D3F0DDFD9229402A89908E + FF3D8E829158DE1FEE6922556B187CF793DAF4FDA4027E154D01A4BAC9691A2D + 6880AEADBB4C01AA8EBFDC08EFEEF1AD01CEDF5BD914907CFC57414B11A9CC6E + BDE25AAF13AFD809805B05A4E0DBBB8269BC5A74738989716D93DD1D817D1BAD + 61A3DE7F95AD017C7387378D57AD233B3773533BA676D635D8D2D6690ED8E380 + F7F656003FDE2280DB79D3F8A78BB320F0CB03C8FFF6251F6DB5CF78B8ADB4D9 + 3EF4EF6D2680AE554012CEDD7A669AFFF9D4638C4B4260CD2AEC4EF749D5F7F5 + 94494CC047477BE0F8EBDBB4F1F91B53F0D9C551F01257D5539E38AF90CB56AC + 420310B35388D9B57A7C2CC3D4D7C383CF7B74177AE9CC68DD33491261693ECD + A3F566A74AB56B1A51232D1E0ED11B9ACC6F5FECD605BCF8E1C39A3126CDE7E9 + 7C4AC18A5C6BD755A90D87A2A941A7DB8B363BB61BA51ECB5C36A3C858D66F38 + 55A92D9340A28DAC8355FD096D52800AD950817F062B7C9E5700DEA9BEB92140 + FB92D5A64F268F91664F5B6D0D40D3CC5A7F56FB30C61294C422948A02260BFF + F7A65F0752E88324AAF2DBA228956241A8F2DBA2C0754038A6B77055FF02F8EA + 99CAF71D52F90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Synchronize directories' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C24944415478DAB5957D4C1B + 651CC7BFD7D22B0DB2F21621286BD7AD8E65EA2CC3E1FBE6FE71D5E1CB266E21 + 668B4CFF996646D1E8CC8C18B3748989FF1197B8395DE232848988CB0C2AC2F0 + 2536C020841865BC14166005FADE5EEFAE778F4FAFA5A569AB73C15F72797A77 + DFFB7E9EE7FBFC9E942184E0FF2C260A6018069D4DE52524477D893EAA4E9590 + 7E2622596B9B66176F1AF0EDFBB751F39C1ED3B6ED9B2BB6D4A40826EC3D9819 + B68F3291C88E9B812880CEE38641D3B6472C155BEECB288A43FE8BEFCF4F1E9B + 7E782580EC3CB46FD572EF3EDD020A6052003BF6DCB56A809EAF46D201ABE61E + AF3440EDD1FE5533EFB455A70376BFD58BC0525B5C42B28CB1DFC30BB3F87A6C + 04C3CE59B8C321A5CDCD0525D869588F3DE63BD1F6D929D854C1056AEF4E009E + 78F33B84DCED190D97C75044C4BB7D5DF8716E1C0565F9D017AD812E57078D8A + 051F14B034EF82EC0B81E338545AAA303038905CC1E38D17C0792E669D75D4FC + F98B6D98D370D097E683088056A385BE500F1DAB03ABD6D28B45D0C741E445AC + AB58872FDB5B9300EB6B67C1FBBA32CE3C5A6FF4FE809F166794DB6268B1A9B8 + 185E9EC7D0A213E56BCBB1E18EF5D0AA7315884615839DBB702E09D8F56A3304 + FFE58C2B18F7B8F054470734392ABC57733F9EDE600203650FE10C05D1D8DB07 + A75603CB3D963880555674B6F5F31580576C1043F68CB317650927EC03A82EBB + 1556E3DA9477573D1E1CECEA866163254C065322AA28E4D396D349C06387DF46 + 243C929835133520D93B295A7E41C0AE8E2E183655C278BB31661C07A819354E + 9DFF2409D8BEB70E82EF8F0C7B90FDDE1789A0DE3E8AEB6121EB994876D19113 + 2092378384C07CF2585683F27C3DBE79F630F45A5D427FA9F9C3F483F6A0B50A + 72249031927BBB87F0E2FE972011098224409478659CBA3605C7E828DA6B36E2 + 16DA00CBF5EBF793E900EBCB8D595BD47CF20334EC3B44375B508C050A98704C + 60FACF317C517B00E6C29214FDF18F3FC219866B7608EED797017DF4F943D962 + 38A20EE040DD41C578197265E80AD8E939BC20E7420F55C2FE7746448B9AA7AB + 0564226C4EFC65FE53196D45A47E6F7D2C1E39160F2F8571F5AF714C4F5DA3C9 + 91CBD4C4433BCFC2E6B14686F278BFD03275D4BDFF8601CF3D5387C9994968E8 + 81CA5BA34B44C5091CBC6E2F789107C302DEEB7E049CA19120EF7E60A109811B + 066CADDA8AFEC1FE252A164B4B4BCA8ACB8AA0CD6395C8B83085B87CF0CCFB21 + F1726B90773544CD139BFC6F0083AD708C2AF4B2C83CCAC92E878E2D685041B5 + 9B9EC6BBE9F71A6A300F427EA176671CEFB87E5BF9EDDF438D1F2E8550496200 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation needs user interaction' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002524944415478DAED955D4853 + 7118C69FFF6EF2362A34D38AEAAE9BBAE803A29082F0A2502C31BFA6AE7442A2 + 59A779F6A5AB595AD6CE2E926D21AE5936B7968E5DB89B8ABC08211222A2208A + 102A4B1B6BDFC966FFCE4E288D81D3B1DD44CFDD79DE97F7779EF7F07208A514 + D914F90F480968BEE9CA2A8148FB9CD4C094201ACB3CA755EF0269BA3E468D17 + 4B311FFD9571405B1CD0D8FB901A656588AC12E0F505601E71E1C5CB37F0F983 + C8CFDB80A345FB71F2D8111042849E76CE0972A6C7418D1D27109E5F58F1F060 + 288CB3F26B98F3787170DF6E6CDE9487A79353F83C338B92E222486BCB84BEF3 + 7A1E70FA8A9D9AD87204798054339872B8492381FBF133F49B6DD8B36B27BA18 + A9E07FF93A8726468B9C9C35700CF409DE056E1444D26D1300819F2B4FF061FA + 13ACA36E482A4B85D5C415871A2C7614F269FA7BE482C7E87940C3652B352A2A + E08F2CA0456B4E39FC96BA21C973BA9F60C8E612DE5ECBB660FBD642C197710E + 90BA4BC3D4A4A8842F125BD5475ED4A3894918F875AD5FB7166AA619051B7397 + 6A32EE0188B8EB1E3529ABF0231CC3B9AB77520ED42BEA139EE55A0EEF3F4E83 + EB96A3203F37A1D6C1D9416A3B87A849550D6F28BD04B6B171F80321348ACB93 + 6A2C6703A95159A8515D2300985E4B52D30DB66E59C0F3A95798F9368BE3C587 + 21128912D3E94640AA95661E208627184D2B81B45D85107F171AB60D3BB66D49 + A829392B48957C901A3AE380F456F4FAED3B78F8833B7460EFD2052F4AA5BB0F + 728A1DE001F56927584E2ADD304885EC360F90E07B16006ADDDD3F808C4FFE4B + FFC02F33DB80DFFEF002E2BD4596B30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation has some error' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003944944415478DAB5965B4F13 + 4114C7CFEC2EB494EE8254244800A3949B803110F1C12F60B1103F80464C8007 + A3017D51E48144455F14A32F5E1231FA010CB7FA057C1003310242B168B80491 + 6011762997B217CF6CBB755BDA601F38C96467673BFFDFCC3933E794689A06FB + 6984020821713F760364DAF8F406FC450301721C08E4EA1F3458D440FB4A40EB + DD9002BD6D00ABF1E6EBDAF1009D00D65C9EBF86C31D390CC36763278361C012 + FEBE8D6D4D556119E72EA9AA848FBB8B92F404E76DED09786AB31D4EE5D8DE43 + 84D494701CA425D89D619B38DF2BCB14362C2BAAFB4A20F02B21401767994F4E + 8ECB2B64D9A47C3DAB28E093E585A0A29EBABAB1F1731740778BC07F2862D9EA + 8224C50D9B43C8B4A28C2C8AD219EAAE28C0739EBF799021F72BD02DD4AC9595 + 907DAF0B14BF1F966E5C076565254A8CCDCA829C878F80753860F9763B6C8D8D + E9E3E3E8AEDFAA76AB45921E44008F09C94C17F8B91A8EE3AD61771D19F4405A + 6DADDE0F4E7961D6ED06390CE150BCB0BF1F524B4A4371181A82993A97DEC765 + C3B02C4B01512A68D5B4551DF032C37E218BB06F4AC3ABA796FFAA0784FAFAC8 + FB36426610A2C351DC1216A726F6F5C1FCE5C6C83B0DFA8AA65C6C5A5B7F1B02 + 08C2A093635D0E3C8A86D1551E8D110A4EFBF4676A91330AFCC3B43B6A7E3CC2 + 53B232D0228A6E1DF04210A64EA470C5D698234921453110B351F1E91871C34D + 5F76E46FCDA258120264085235C7D99938679E428A3D1EB09856AD8BE36EBEB9 + 5CBBC4A9A9A83922CBEBCD6B221F019C64D9848052CF7BB03863003E1F785D67 + 13023E2B8A09802E2AE7D8624B1C1795F50F80B534BE8BB6BC5E98749FDB05D9 + 46CD0959F9E7221AE47C9671659A829C82E2E5289E6612DFF285826C35ED6613 + 211308D931415631C8F38AEA6912C5BAC831E5F1989A6F7049CF6B70988E2915 + 1A47216A1531603F1ED3A9C64B91777AA325F331352E1AA6093E25ECA62A0CAC + 507B5AEF6FA0F898699574779508B18521E2D0471875852EDA0EEA61BA88BE68 + 34553CB3DB3B0486DCC90BEFC25E5905C7BABA50D40FBEB6B628171810677737 + 3E1DF0BDBD1DD6C746F5F1057DF5109D2ACCC90E737FF501532C92B13FA11A11 + 3FD951A3E93A05D37536C3E4652609A1815D56D5859D44E9DA30A3E0A463C171 + E038B747C19171BE1F5B000B4E50561A0CF184006A9DA192D98AC3ED3642786C + 908AE3462A94B10569F0712EB6E44AA6D98CA24F80398FFF3DCACC451F674C6A + A0BEFBAFA2BF9FF6177FCE23EF1AA61DD50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation needs user interaction 2' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003894944415478DAEDD57F4CD4 + 751CC7F1E777EA4C89257A220511D67032D282654D9D75B42E8D44BB330607D7 + 01C72F6B1E1C6077C01D9848D948EE4E5BE3CE2926F22314D2A1968D3972B86C + ABB5D656999821BFCA0525CA7470D4B7EFF77BED567F14FC21FFB43EFF7C3E9F + 7D5EDFF7E3FBF9ECF3DD57104591996CC2FFC094C0D6DA8E191584FCB74E8875 + DB37E39B9CDAB9D237C412550841F3E74DAB7881BB0321AFE6B8E879F505C67D + BF4FF98026D58CBD200BF59AF86901853290FB66BBE8B1EAB83D0D6083DE4C99 + 043CB53AFE1FD7CFB4BC1DE88B5C27107276B7891EDB166E8DFFA684C6277C7C + 77B997E15FAEA35AB88098E8A5CC99335B594B4C2FC0B62D93650F46D2F3431F + E161A13C1415F13744CE7CD0B44F1917BB2520FBF5A3A2B734993109F8ECCBAF + A9AD3BC2DD41F3A4739ECFC0D03565ECAEB612724F301B0D053C12BB8C8B3DBD + 84DF1B4ADFE08FAC7A34169B398BD9B3662945E5CCA9463F50E27A1FC154DDAA + 00A3B77C18CD0E69FB8F916BD029017917AFD8DE409B98805EFB1C9B8C852C5E + 14424DA58545210BF8FEEA00D62A17C6E424366F502BCFC8998E86BDCA78BB5B + 02B2AA5A444F798A044CD2DB3F44A86A61E096DCB8398675A79355710F939DAE + 439B5188294D4BD27A75E0485C9E06FA077FC2B9CBAACCE5CCF1C37EC0EA6A43 + C8D8D9247ACBF58CDE9E64542A78F2CCC7D2115CE1DACF230A200802CFAAD760 + 92802D99161C255B895BB13C00B49FECE474E739EAF7552B7339D3FEAEFB4FE0 + 18827147A3E8B5A731347C9392CA1A82838378E6C9D52C7D2082A8FBC3B155D5 + B222269AAC341DC9260BE5967CE256C60480E6F6D3745FF89CBA3D3B94B99C39 + 56EF076CAEA3082F5536885E473A1F757F41ED3B87D8BBDB4E58A84A094C4837 + 2AD75241C2BA27C8D46B49C92E42FBBC86545D620028955E60C96215452F6728 + 7339D37AD0E55F73B522181C87454F8581AF2E0D607BAD06ED460D1AF55AAE8F + DEA0B9ED14DF5EBACCE3F12B31E719D1E71471D7DCB9E41893898C08A7EBFCA7 + 74769D6757B985A848FF7595332D07FC4099F33D8474FB2109303232E6A3ABFB + 021D1F9E6578E457E91A86A14958CB84CFC737177B28D9964359D51ED63FBD8E + B3E73EE16AFFA084DC87FEC524629747077664C82BA671BF5319DB5D2D086965 + F5625DA50C4C4EEBF3FFB766CC2FA6C1EB0CF40E6733426AE90109C8547670A7 + 9BC3D9849062DD2F0126866700A8701EF10377BCF25FDA7FE09739D3C01FD0F8 + 71E2CAC29EC20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Run-resume operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002C54944415478DAB5D5CB4F13 + 411800F06FDB2E0FA942A10EF288D00322108351821A63E29FE0C1B307AF180D + 1A4D2AD554A306A3464FFE07C4939AE8C183F1C4C593315C3C10B4DDBE68FAD8 + ED7677BBBBF37200318DD207AFEFB2C964F7FBED7CF3CD8CC43987FD0C691318 + 7A12B8E291A431E2D267C9A85EDC4DD2EA9FFE0B0CCFF724BC3E699062A68204 + F7E38EFA1AA2C0F60C08CDF7645B0FC9888B94C426C0085BA21CAE25EEAA8B7B + 06B4075AD168701C94520C0CCB006C61608CBFA1D4BE9D8C5452BB063A826DE8 + 74DF19F0797C90315390D415B04D175C8B5424C61F82ABBE8A45C1DE31E0EF3D + 804EA04901C8EB639861C81849289879B075177085AC8812CE2A11F5E38E8043 + 031DE858F7F1F5195487852DC85A19304C032A9A03A2113E51426F24EFE9CBDB + 02BA8EFAD1506708BCFF007F3E03DDD541750A606936D89A8D398517A6AB3ECE + 45C1680AE80E1D4447FCFDE091BCB5A72F3AB72C20C3298399175019A7C5E89D + 78585D680804473A51A0BD47009E869D4239018B9850316D2867ADB5D65E04C6 + AFC7E6B4EF350134DA853ADAFC629F490D81CD2002C2CC01B3B80E7142D82525 + AC7ED812E89DE8462DB2DC74F28D9289A289C5B054074A698333CC2EC7C2EABB + 2D81BEC920F2FA1A97A73A5C138396288B27F9CA199D89CF95BED52CD1C0A9C3 + 4D039430D014B1D0B94A8E01BFA5B8DAC2E6D95513084DF523AFECAD9B78EDFD + 52D68082A25146F84BCB551F34DDA623D3C3C85707304B62C3FD2A8063B89F09 + 2533DBDE68E3E74604F0FF26C30E86F44A164A793D2E1675361ED6DE379AE596 + C0E4F9092457018C31584DE42013CF3A8CD24792AB3DDFD5613775E124925B36 + DAB4985321B62C4ED38AFB1653984D478A89A656BF1E70F6E234A284C0F28F9F + A015D42531839BCA5CE94BB389EB02E2CA4C0D0CF6F56752AB65CA6844B4DDDA + 9549B69BBC0E10B80A5C1AC32E799A8E96F33B495C17D8AFF80D6F2F18EF1FC7 + 6A570000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Cancel operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001E94944415478DABD95CF2FC4 + 4014C7675A87C5B6EBD74142C44688A422117177E3AF70C499FB0A77CED6D15F + C1CD5D44222442840889C362B7F5EBA01DDFA95666A733AD8DD4BBECF6F5BDCF + 67B6D37D43196324CFA0FF26A094869F55CBEA2394EC32C20E97DD97B5DF40B6 + EDE23A25748630B2B0E479359EFBE18A82104ED8C1B0693A75E49F03B6B5EC79 + ABA970CBDAEC36E84A17FA6F7CFF0CA4592E4908766C3B8497011F6D6B233EF2 + 479F9FA992183E8D7A13824BD45F479245D7AD3509AA256BAF6C987363288E23 + 4D22C3E3B8E092C0DF5F6A78F3B260BD9B1A15B94125D1C17F6A59B001C15A62 + 0F321B21E1D759357C21CA4D8E57D705C09402700C000FDDBDBAF02BB5025132 + 699A09100F3977E2FB4DF04C412C2941322149C4E0F053C01B8A972053104B6C + 481C480CE97E80BE33C05DCD6BDC92605C2338FF8B80C32D4A56461570517209 + 89C7486B8F88C38B808F48F020AA95735790BC4892D4D7B413F0B2028E31107E + D7DD7B15244A410C1F52006E2300BFCEAA51FED1F8A8E820B432681889C6BB20 + 206FC2EAF8423A20D1D612961C157CD8F55263AE074DE273BC47C3BB6213B9A4 + 1D9201D48BFBF784FA471624875D3CAE21704A68E2F9070D5C96F4479206EA21 + 508F6BF1C081C0F940FE23052E4A0A9014BE05FA0327F72333AFC85DF0052305 + FDE0031CA4D30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Move operation up' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002014944415478DAB5935D2F23 + 5118C79F29597DB12206B59874AA2515ADD78B122DDDF802EA06C98E4F61EFDD + 773F854A70A3BE81D28AEDC562DB8A865647A6ACA2E2AD2F2B74CC34BB8D4331 + E5F85FCDF9E539E79733FF1C82E779F8C810850404413C9DB44D956AA88E2561 + 43968DF987C03D75FB78A4E05952059A6F0B93B5B56A87F87D7C1CFFBE3F33F2 + 039B801A9BAD2FFDA4DAE9B75855E27AD5EB49DEDE245BB8B9F1432C029A71CD + D14DFA519DAE39B78E447681DD0BCFB34EFBD8BB058DCCC2A04AAE749B7B2D20 + 93C9722C9BCD82EFA7179299942DE61C597EBB402896A63A036DA62E4315598D + CC9C254E612BB01162B94DD3FFC28B1688C55691358E56631714CA767043109D + E40B2F4A20165B2214DBD16D56C9E58A82824C260DBFD77DC9BB7F851725108B + FDD2488F36504DF0520EB83DF8136373854B165013AE416599C2DDDA6ECE17FB + 5CC4C2B7FD3E48FD4DDBB869FBB224013DB118D0369B8C15952448C9E5C51944 + 77FC41767AD82449A06516978000DB43D6D63D80CC6CADAFA09B7870479DC35F + 257780DC8871F1864E2BC2429B1E10FE3B32F89E97CCEB8D7D080B07D7F00AB4 + 861E844543BFF00A287D3BC2B8B01FAFA09E3620EC900DE115A81B74088B1F44 + F00A483585B0449CC32BA824EB10769E38C22B28AF405FF5F56502AF40A1FC8C + B074EA0A9F40C3B83C02B120870178F79D76EB6B827B8DB35BE0CAEFB5830000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Move operation down' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000020F4944415478DA63FCFFFF3F + 033A60646444E1CBC7AE3F0C14B1411603EA3AF27071A02D8A1836B388B14021 + 76FD7F4E2E5E14B1EFDF3E333C581CC848350B78F88451C4BE7C7A4B5D0B0484 + 2550C43EBC7D415D0B84C56551C4DEBE7C4C5D0BC4A59551C45E3EBD4B5D0BA4 + 143450C49E3DB8415D0B6455F450C41EDFB9445D0B14358C51C4EEDF384B5D0B + 54742C51C4EE5C394E5D0B340C50322DC38D0B87C9B7403176C37E0646060764 + 316D233B143557CF1D42D5F49FE1C0FDC5018E4459A010BBE1AAA2BA9E161FBF + 100331E0D3C7770CF76F5EBAF6607180365116000B37574E4EAE5D1ABA660C4C + 4C4C780DFFF7EF1FC38DCBA78065D37797874B02F6121D07F231EB564BCB2987 + 48C928E0B5E0D993070C4F1FDD5DF37049502849912C1DBD56869599F58681B1 + 25373B3B3B56C37FFEFCC970E1ECF1AFBFFFFED678BA34F809C9A948217A5D85 + A08858BBA68E01560BAE5FB9C0F0FECDABCA074B833A407CD29369E82A36790E + D6AB3ABA462A42C222286ADEBD7DC370E5F2B93B0F7FFCD666581DF68B3C0B80 + 402E7ABD333737D71E53736B78848322F6F4C9A30C9FBF7F7578B238E8204C2D + D9190D14E1CA2AEA218A4A9012F5FEBDBB0CF7EEDE5A09CC6811C8EAC8B60014 + E16CC008B7B1B5E306F18F1C3EF4F5CFAFAF6A8F57443EA38A0520008A705109 + 897610FBD5CB17A5C064D983AE86220BA011BE1F14050F1F5F746438D0F0876C + 0BA80900729B59E036A874420000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle queued operation list' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000028D4944415478DAB594DF4B53 + 6118C7BF47D78F79D16597FD05D67F10E8746D81201495366D2ED324D1B999A6 + 6D6A0B238B32753B732A5294E4928CB22429FA01E9D65574910A65A0B48C6982 + 4DCBCD9DB3B7B3611E8EEEFCA8F0BD7B5FDEF37C9EEFE73CBC1421045BB9A83F + 008AA2242F5ABB5E29E884F28519A27397672EC777F1DA7F05B85E9A01B1C0F1 + E3C1D18F783BF96D1DF24F80282B1EE4FDE72066824BF04FCEBE5B06D1759566 + 7C17052851B267F72E9874FBB05D9592D8AF44563135BB88E96008FE89C078EB + 694DBA24408912FFC42C488C45F3C94CAEFB1F189BF88AC82A834F5FE6D15EAE + A564014A944C73850BB2F7226D870A31AEDE4268056D03637056EA794075F7EB + FF52E2FB1000CB3289738749035BF708DC961C21404EC9FD37F129E195C43BF7 + 8D07108EB298E294341833D7EFDB3DC3F09CCDDD0C50A264662E044356FA2625 + 4C348254D536D84D5A34B887D053779807583D2F496B9986EB26260A905362C9 + DB8F34B53A71D6483F44AFED280F30D3CF495BB916D6CE17498B279B928D4A62 + 6C8C4BA042BDE9009A5C0F70B3319F0754748C90F60A3D96C3ACE48F1653D2D8 + F918E6E3595C829D897B4DCE01DC7614F28033379E10A7390716F733B9611255 + 42A550484D55A1A6E8202E7478D1D75CC403CAAE3D222E6B2E167F31B2003125 + 95857AA8D71238DAEFA2FF72310F2869192474CD21585D4FE58BAF4D4995215B + A0A4CA98C303DAFAE0BD52C2038A2F0D10BAF608167E46152548A684890ABF15 + 004C17FB095D770CD5CE61D9E2624ABC2DA704EF8DE0B93ED17487B8CF1B30BF + A42C413225F7AE968A030AECB7086D2B44AD7348B6B8981249407E7D2FA11B8C + 980B294B904CC9C62500E49DEBE10026CC2954944C892C40516509259280AD5A + BF01CE77FBE052D65AC10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Paste' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000030B4944415478DACDD65B4853 + 711C07F0EF91EAA1904A0BEAA122DF132B821E346F89B7CD4D978A9864492288 + 5DCCB4DCE605A5E8A152E7960A19849959C96C19D653A029A19978C97B6AF33E + 07DE77DC74A7FF19E9169E5DA4977E7B3887FFFFF7FB7DFEBF1D76A118860145 + 51E00AA150240298C7EC3D49BB5D5B5BF30ADB08536F6B009FCFDFEDE4B44B4B + B65AFE00678C46BDAB4AA55AF9674028147A308CD315B29E42B625EC1A49C927 + B9328A32962B95CAF66D01A5B16E0DA0E0B9B151BF7CCA74A5C09017B5E53E68 + 4F9B45173426550E7BD9062EBA31FC8404D04B73A68D5BE5C3C8CBCBE53C9554 + 9A6D0202A245E86D6B877A6008492F8629BB005BA01D1F306DDCFBB8C3E6E899 + 816BA6AB7A681C9A49EDF60147E3FF02CE47456056DD6FB559F5CE5447CC467A + 0DC18A64DFA52D807F640434BFFA38AB74CB3AD4B948F030D187FD3C7006BBFC + A6A10F5F7BA79AE835269045FE062E846366A4971B58A1F1E180D40418D6AD08 + 24DA87A6313ABD88E69EF15632427069A2CFEC26E0271262FA670F6721CD0207 + A57894E407DA60B40AE856F5189C98C3C8F4029ABBC73A49BEFB26E01B21C0D4 + D00F6E4047A3CE558282E40014BC6EE1CC490C3B4D1ACFA3A97B8C1C621D836A + 0D0A9303A84DC0275C80C9816E2BC02A01EEA23025084BF4BACDA76C24FDB4F3 + 3A72902F905D0B3203DE82304CF4777116ADD2AB50B96440769D87A2B72DB017 + F12127212EAB87E226CF12E063ACB7D33AB03F1DC5A902CCADACD905D89094D4 + A1244D6006CEF17918EBE9E006C8C37BB72F0DC569E190D7B4DA6D1E13E881AC + 272A94654498012F1E0FEA6EEE6F613D01947B53214F8F8476D9E0D004597225 + 9E8AA32C80D0508C765901F40470BE01F99D6894D67EB3DB5CE4EF8EECE21A3C + CB8A31039E212118E9F8CE5960D01B50E39C0245662C348B8E4D902DABC6F3DC + 383370F8D8512C68349CC946A3119F0E65402E8E43F9FB36BBCDF9DE27905354 + 858AFCF80DE07833F9CD3A6BABE8F3113114D24B9859706C829CC24ABCBC9F40 + 51B6FE555846747A1923975EC68C836F516E4105AA1E5CDD1EE050678B6081DF + 1D9DEDE0B445EA800000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle showing directory tree panel' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001354944415478DA63DCDC2025 + F29F85792B0303A319031CFC3FF1FBCFBFD0E086A74F1828048C9B9A654FA99A + AA9BCAEB2AC205EF9CB9C5F0E0F27D6CEA8FF8D53CB225CD8216B9FFF6417A44 + 293EB8EE1203D00246922D2045035916F8569E214AF1E67613F22C70CDAA63F8 + F3F321900BF10C2303CC53FF913003C3BEB9CBC8B420A388E1EFEFA740731006 + 3322190CB364EFBCF5645A9096CCF0EFCF1B0C17C32D825ABC67FE76F22CB0F6 + B261F8F7FB03926B916904FBF8EEEBE459E095530374E41FAC8622D3DBA7F690 + 6381EC6720C5438CE2FFFFFF7FF1AF7DCC4B9205A428260760B3E03F352D26D9 + 20520B47927DB0A955EE8CAAB19A31B18523C93E20B57024DD0724168E64F980 + 94C2912C1F90523892E503520A477C3EC04A935A3892E503520A47B22C20A570 + 24C302E20B4720F80C000FEDEC0E532124830000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Create new file and open it in editor' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000050B4944415478DAB5D4094C53 + 771C07F06F5F2F2B2268C7F0E052E66274CEB885A9936D38C9AC38DD30730CA6 + 281EE024DB149D3086881A478617A8A53A9D0A881C430E0DA28B4C51D08C4B90 + A09C3A582D942285B6B6F4FCEFF5B13088C5E892FD92262FCDFF7D3FFFDFFF78 + 2C4208582C169E579F7F77DC8FCBE1141A4D96C3D9FB4323F012C5B202DB7EBE + 419E37A8A7B30301BE6F22E75A35EC84CEE070F9B7FB4D647172F842CD0B0307 + 437D40863032451F785C36D3DD8EC339104707A1A4AA0925954D30120A1D5D3D + FD66939180C03B6B7F58B5F59D1302811BB89CEB74504D875A13180718860166 + CB809079A50265352DE0B029E80D2678BDE181A02573E9772914DEAA83D0610C + 5C268CC3FEB357D1ABD1FB64C4AF2BB186B3799CB279D3A7B958848E282FAD2C + 92AA549F0E038CE601A0B4BA990EBA873D9B97D35D701858A333C0BA537CBA2B + 3E8F83DCE26A543C780CCB68C7F2C70D55A10EADB585C1F286C9AFCFF48459AE + 40474B1B2A1E77E43340C489EBE450D842F41B2D834B74FEF21F6897752366E3 + 5268F5C681F5A4058AA218286C6F1AFC45EFC2A2EF465E41B1FEFDB96FF1674D + 73C38483B1E03D6AC3136927CAB5DA470CB045524C12BF5A04ADE15FC042CF3A + 2221035B57FBC2D3C58909B7EE87F5A7ED37E04C7E19143D4ABC471DC0E849EE + B09BBA131CBE1DEE56DC8347EC1634772BA466937901037C2BFE8D24857F048D + DE3C08945637E166652322434418C5E7824DB1983D51AA75CCBE6874FD4829B8 + 038FF1F508F0BA85DA0A1D3AEDA3A150EA703737F7AFB7AF667B87E974ED0CF0 + F5912BE4E83722A8740380C96446E4E16C042F9B473F5BE813D58B39D3E9F65F + 198BDFCB1B7193C6AD47CE488F7314C8F163401E74BD0AD4D68DB52415FBDCD7 + 1A0C4B2FA526B50F1ED3F0C4CB44BCC50FBD5A130368E90DDD25BEC0CCD46DA2 + 106C7AE67C0E1B22EF5948B9588699EC227CB0C8813E0080B3BD1C5CD39F30A8 + BA5076CD2C333C35CD5F16276B1F760F361FBA44C411CBA07C6A1A5C22B3D9C2 + AC37452F8D15DA752C070BE6BC86EBB72B716C530D04023B502C234CAA16E894 + 6DB8512200A556B80F0D1F04361D2820C9DB3EC1138D71C41B79F34E05F26E34 + C067A614EB447AB0282E8CCA7A689FDC474D953D0AD49B90B823E4996F0E0384 + 26E411C9767F748F001834323C2C0C86D39C19F0F470A5EFC138E8BB2BF1545E + 857BB502782ECFC4DE73D53819B9C236B0313E8748223F83426DB419FEE8F21A + CC5B3C11BCB1EF80E2BAA35F510A8DF416EAEAB998FA71067863262136B900A7 + A257DA06D6EFCB2692A895CF00064D07DA8A82315FE40C9E832F58BC19D07516 + 43DD7615F50D2C782C3D4F874F64C6C68AF3713A26C03610B237931CFF3E005D + AAA100C1DD943570739563B6680358A3BCA0951642D59A8F07CD66B8FBA583FB + 4FF800908BB3B181B681B5BBD389243A7018A09235427E270DEE53C6836DC7C7 + AB13ECD1D79A85A6163D5CFDD286855BCB7ACA52E256D9068277A511C90F5F0E + 031A8BC470771A85C9AE1E5029BB206F3D833E2D81CB92D467C219E06836D2F6 + 04DB0656C5A41049CC6AC85506E64FB5B21B1793A3B03534083D5D32A87B7BA0 + D23C847041243836C2AD1577240BE9FBD6DA0682A24F13C9CE353430D0C1AF92 + 7D48CDB8800DFEDEF0F55D08FEA4D9E008A7588763A48A4B3A8F8CF8F5B681C0 + A853243976ED20F04BFC7638393BE3C315EB30C6518817A9DD89E9C8FC69A36D + E08BC89344BC33045D6AE30B85D906CE212B217464E03F270FA91181FFB3FE06 + EA249877710495EC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Duplicate' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003324944415478DAB5957B4853 + 6118C69FE36D5EA102A98494828A248CFE084244BCE48D24C9B0D054324B2D33 + D344236D4BD342A8BC6DDEA00B292912A279C9904ACA4D8B20C1E62567149A29 + 5E98BAE96A9E7D9D6D4C7674D3ED8F5E387C9CC3FB3EBFF37CEFFB9D431142F0 + 3F835203AE57779940A1448A1512549EEC2B33555CADBD0A7890E0036366D48F + 5F7C18C6C7A149B320EB004ADAB891BED129FC9C5A44CFE0AFCF8C7A4875A2EF + 8CC980F4CAB7E461921F144A95D1E4E53F7F219990E2C7D4027A06C6C54549FE + 074D06A40A3A49717200524ADA0D2616260533C2F31089C79997A021199B46E9 + 9540CA64404A6907294909864C416F58A0627267179651DC20043F35C474C0E5 + A25652961A8AD4B276A3C91C3BFBCDF4D4D1AD5841886E08560149F79B093F3D + 0CD2A515835573F33254B5F5C1DC495B05241436127EC649A4F35F192CA6691A + F68E4E3077D2AA127C663480F8820622C88CC0AC5CC92A18698E05AD90629BE7 + 5DD408A5306BD2C4E3FD4CBE8706109757470437CE20B3A283551024BB0477EF + C318100D426C1385AC349E599356921C406900B1BC1A527EF32CA617D90EBE56 + ED83FFF91390CFD3E87F23C456D763D8ED93070B2B5BA32EF427ADEC6AB01610 + 9DF39408B263905DFD7A9D033580508E4C1F6C312CEAC5A8640E5F6C1321B7D8 + 611472E74220A3D581F2B4502DE0719E1771B61C3398AC0310CA41B34E8E0C63 + B4F73DDCBC79703E106E149253D986CA8C302DA0A5C08D1C8FE640A511725C15 + 5C7BAF59618D25E92CC49D4D90C8F7628013091A366CF1B800702B5A509D156E + 0CA01553E90BEB2E06A0D9EB152546849D585CB0C6FE530DEB1C70054D78947D + 7A2D802DC606E81CD8B000C3A332F4DA65B1C43363FCC1E337E20937722380BE + 0B3640B7459CEDDE70F1CA056560AA78650D78961BA305B416B80999F3E969B8 + C9A17ADBC33459F20D43DD5DE8B78AC084D551830DBE16E987DBA5F5A8CD3FA7 + 055094E10FE3CB7C57A20368C654F80973D30AECF4E7C366CB1E6C14B925CF51 + 772FDE34807C5EC51C34111C5CFCE074840BCAD2169B456E712DEA0B2F6E0E70 + F73E842151FFB27031D4EEBBD2635361FD3001B0EB1D056A8B9228A3C26FFD1E + 344B1DDAFFC13F02C02DEFE582937D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open online documentation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000045B4944415478DAB5965B6C53 + 751CC7BFE7ACD7D3EB365AB65EB632B69969260F2C315E1279311A74B1956030 + B821F2C00BF101BC30756A82E25ED4C4C407F041D9600CE66849A72131311831 + D16486C44508B7D1AE57DAADF776BD9C8BE79C6E856667E5895FD2E4F4FFBB7C + 4E7FBFFFEFF72BC1711C1EA5100280200849A5C3E936B21AEE555ECD7FC83E70 + 5C7BD58B88701C7B9D77BD48E6898B3E8F2B25E52FC696023876FCA062EDC677 + 48021F6A0D9B0C5A7D2BD4940E4D7285A8672A65AC14B2C86596914B2FA5590E + C7C940EA5BDFE5FDC587021CBBCFB7712AB9970F3A60B67641A154D58C2BA522 + 1886865CA1846C1556E6CF62A105013647142B83BEE9D7A31B02AAC11573A676 + 87B5C56CAD41934B6124EE05C1D0E5DA995AA387D9D60DA58A12BF276221C423 + BE10512C0FAC41EA00425A38BBF18AA9AD737BB3E97EF0E55800CACA12F6BFB8 + 154FF599A151C910592E60F6EF2066AE8461EFD906994C5E7D91380F89FAFF21 + 02A9E78474D503F65E38AA31B67ED9DED15B0B2EA443575AC0C4FB4F434FC9D7 + 15F1F7F918DE1D5F84D164AB9D85FD37504827467C675E1BAB01B6B83C46E889 + C58EEE2775427ED7A45CCC63EA900D96563582091AC7BD29C4B30C5EEAA770E0 + 799D68F3E9E42DFC19D0D47C2AE512166FFF9B4586EBB8EB76A64440E7B06748 + AB6B1EDF6CDB5AF7867D1605BEDB67169F8F4C2EE1AABF7A49F2D914660E77C1 + B68982772E816F7E2DD4F9DD0BDE412E9B1CF68F3B27448063D8E3355BB6BCA2 + D137D7199A74329C3CD0865092C6A153D5CB91CF248142147F7CF50294721253 + 7F6571E2B7649D5F2E93403CEC9BF58D3B07AB291AF6DCB0381EEF7D303D5252 + C867C06643383BF22C7AAC3AE44A2CDE3E19412C4DD7D909690AFBAEDDBC3BEE + 7CACFA0B863C597B77BF9624C986804A72013F7DF48C5893950A87F726A3985F + 2CAEB363591681DBF339DF84535703D8BA9E6808106ED417BB8CD8B16D33D205 + 06474E4770335292B41500C185FFEE038414B5D97B7AD7BA534A344A129746AA + 9760F47C1497AF6537B4A5F951120DDC7A2045C39E9F5B4CD69D42773602CC7E + D00D861F3C3BC7EEA04CB31BDAAEF0B54AC443BFF0457EB97A4DDF74EFA3B4FA + 1F9B4D96862932704BE0C022C9B4D466949424E361147299B7FCA75DA76A8DC6 + 6989A0D9EAD034C9E4924E0457C1272E130C9402A3E782C833D2E964E80A3FFC + 7C7922C7D96A8D268C8ACE21F7C72AB5F698B1B54DD2B1BF93C2F707BBC4E7CF + A683B87455720520B51C45712537EA9F707D2E39EC7486D6ED94D6B0CE512123 + 716C4F87588BD1738B48E6E87536F96C5A18DBD2C34E10FB9EB31652A69AE33B + BA5D0AD2480AB9B4D0E511962E0E04A6DE080B67920BC7BA77C6262349373FE7 + 07289D114D4DB2868185E217F8D9542A16E668967585CEEC0AAEE9365C9996C1 + 1394DC683E0C8E38AA54A9350AA59A5F9772906493A8675946BCEBC2862B1557 + F27C94B14A2AF675D87BB06EEA6D085893D5A5BF9B248941FEBF479FC05E5585 + 798FEB2CCB79F9A53FFDD0A5FF28E57F9C6255EF1859D5DF0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Check for updates - display results' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005F64944415478DA95950B6C53 + 5518C7FFE7DEDE76DDDA52CABA758F0ED60DC636C0F0182F0D0C31221A250101 + 35CC8842068A8918352644321583C6188D0105236A44C5476020461E0A193814 + 99DBC0C20436D68DB11765DDBAB5B7EDEDEDBD7EBD65E3A118BC372727F7E49E + FFEF7CFFEF3BE730FCCF67B3D1E8E475DC52066E16A08E4C8CB256154A158BA9 + 3BCA45B17393C9542C301C888FB3DB15DE0A242B16D3465EC59A3441E0EC063D + 8C7A014CA783A828F08623E80E04232AC336A6B225F9D9E9A94DEDDDF84F4071 + C5D3262E857FD422F62FBE7FC7E139055DFDBA626312920D0640D0815D6D1012 + A0602C06777B171C2386C3999186FDC7EB6E0D285ABF7E39D34B6F08BC90B1E8 + CBBD187FC9030B8974CA3282B4621D63B011CC65B3C266316980048807A3C824 + 55C5FEEA9A7F012CAED017BA8C1F30417E6AB87912E634FC8CBCCA8FC093A034 + 7E3AF40B5722B9C400513C8DBE4347A0DB5E83B129C350E0CCB81A9100102CAA + 2AD85775FC9F80D1CFBDBF4567E0CB1DB6B9B8BB44C6A8F7D62054550BEEA115 + D0AD7E1DAACA69FF0906118EDC5AB41DFC11D2AA4F307B5C012C564B02420049 + 51B1EF50F58D80FC551F973141F93C2BB314B3C7A760CAD43F805E1F2235E711 + 99B808C9562FFA2E8F82DFEB8425B51DA68E03F03FB31185660B5CCE4C6DF589 + 9C102046111C38720D30EA894F937841D7684B7365CF9C948E6953EB21E84308 + 05AD088BC320FAD361CB6842D09F0A6F5B314CC33B615A76375C544DD9E9766D + D54CE0357BE27988529E7E397AE23A40D9AE473883B263ECB83BB160C1412425 + 89DAB8E7742992CD3E5C699B800C570DBA3D53C826069D2108C7A6E530349E4C + D8C61428E4BB14952184643F1F8D8549FDE810606459E54E8BD5BE70DA2C1326 + CDF869C8B668C4447E0770A17631A460EAD0B8C17C19A9CE7AB2CA83819E6C88 + 012B2CCEDF71EC8C076D3D3DBB6A96ED5DA46DC121C0B2CA0B8E9CD1AE69735A + 9053F0C790504C4E426FFB04785B66D2872E31430514EAECB9C710EC7360C0E7 + 406A4E1D1CF9BFA1A9BD07F5E7BA9A6B96EFCCBB11505619CCCE2D4E1E33B905 + 49C60046643642550478EA964091ACE03906AAD4417DB20570151F46083E986C + ADD0E9839A8EB72786EAFA36B176E5372937004695EDF667E6165AF2EFE88212 + A172633A44069CE0A103CF330DC0C521F4AAF4520E9199D5848CC2BDE897FD43 + 11775F06AAEB3A02F5ABB79B6F02549E4BCBCA1B939A9E859CB127C892191078 + 92E739ADC50189280840CB8F519D4F995803C1568F6EA9338E4C14458B8ADA33 + 3DE74FAED9563004782F2525FDB379EF6C12AC8E879DAE2298ADBD24C62116B6 + 43B5A651E57104E3FE01985F5A053FD74C8076DA58920638F69B848EEED0F653 + 6BB73CAE01B65ACC27A82FB9D59914CECC877BDD710D1007C5210A89476923DD + 51E4867E443DDCE7468219BC30DBCF62CFF7015A40F8C1532F6DFE6110A0CE7F + 602E0C3451A5834C956420DE47A36868BE880BFA18FAB7ED82A779C29055B1AB + 00595610431491088329ED24FA22B53873AEE3EC69F9F8785454C9D700F36643 + 4F968044D5A8ACB586E65634528D843E7F0CB69C3CF47795A0B363340682265A + 8004DB4F1FC257742F06EC79881288590EA3CE7D129C4E9A7FA662C3FE410712 + 80B9776A8041F1BE5E3FAA1BCEA3F5C5B5302E8BC0C49BE9A81E06239782E686 + C9E05F7B1BB6BA3DE81D5B0A77F9D7B8D2E7414BF7CF949FF02B7FBDF5F286EB + 2D4E004AA74388278FC4711572E9F2159CEAE846F09E22C8F3B200BD0D70D30E + DE790CF6DE4B08519DBA17BD895F330BD1D3DF481784B4AEE9DD67DFBC39871A + E0BEBB4AA027402C2281D1AD340811C5103CBE3EF4D17518A373C648FFD829D2 + 2E298A133933F15DC993607C847C89BCD0BC75C5A17F2B920460FA4434B6B6A3 + 8BC48A33D361A79BEAFA68E2098F27DE178AA0211C867B4451EFEE29CF7C2BEA + 53765EFCE24F12AE506E55851AC069B7A1CDEB6B5155653355FAF326833E232D + 7EF7324A3C452412C42B491850141F1D12AF76F607365500B714BD01B0C562FA + 0A2ACB65B2BCB43C14BA481393D2CDE6F99CAA96D23624F3991E4C6D25CBABB8 + 40605F3920DE8EF0E0F337F18F9BF1BFF1EC650000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Check for updates - automatic disabled' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006034944415478DA9595695053 + 571886DFBB6441920021B243088B0A082E2C16AD16AB3FEA0FEBD4D6AD232EA3 + 6DD5EA58B57BD5A1566B3B9D6E565B75EA58B7327646698BD6565B4B19AD1684 + B8210A4802886C2624401292DCA5871B88E2D2B1F7FE3873CE9CFB3EE77BBFEF + 7C97C2FF7C66CC5D1B4B2B3087A2A84910A1EF5B1329D14486528A130A8F1EFC + A265FAC23569328AFE8DAC35508F2B3C7DFACB4358AD6A2B43D32B130C7ADAA0 + 8F4170901A344DC36EEFC24D73136AEBCD6E02DD238A989D37214BF7D7DF17F0 + 9F80B482152A3A90992717F859110DF2C9492131ECD4BC090809D648C20C4393 + 9102814A73ABD58663274B903A3C11991969F8E0D36F1E0D48DDB8713125F76C + 615945645C938811E13A84E9B4A8A933C1DA6987422E476C4C2472B347233E2E + DA0F22D6812560A7AB179B3E79186056813C2521E06B4AC62D09518F859EB700 + 8DD72093C9A050EB909CF1042286F5C0E6AD43ED35339ACFB930312B0753F372 + 0980F24546FB00051FEF781090FCDAB69DAC827925423B054F6773B0941DC7AD + 9A3BD0A7E4207DFC3488222DED93299C883054A0F24A15CEEF6BC6AB4B5F444C + 6438688696407D808D5BB70F06242DFB369F9209FBA3A3F2F0547A20B2722EC0 + E374A1D5D485A0B04C0406B7C3D61E0F7B472C34BA6670BD175172C888C9B9B9 + 98949B29D934901BA7CB85F55BBEBA0B885FB457C9C8D85A6D5842CCF8B1E118 + 9763844CEE82CB118C5E67109CF6706823EBE0B0EBD0D1940655480BCA0AF722 + 3B7D243247A782A188FF521E2892071ABD6E37B6ED3E740F20FFE85C5A21148E + 18390133669C8452E994D64D57F330446DC59DA60C442694A3CD94456C228954 + 38D052510897A545B28DA244F0220F8F9703C5D17608542FB921A57E803EBFE8 + 882678E8CC719354189B7BCA6F9BD7AD227EF7E066C52C781C3AFFBA42DD0E5D + AC91586542B72506CE9E606862FFC1D92A139A2C96A3E5F38B9FEFDB771730BF + E866445C72C2B8C966C40DBFE017E239253A9B33D0611E4F26ACEF0B1110C830 + D470160E5B04BAAD11D0C5552222E91CEA9A2D30DE68AD2F5F7C24713020BFC8 + 1163481B322CD30C65400F42A36A210A32982A6743F004F77BEBD727B6000969 + A7E182152A6D0358B943D2E9B0F038636C7256BC74387010203EFF477B942145 + 9334AA15825B43C458B8BB63C180255541F5D73881905724AF4042888AAE4364 + 4A31BA38BB3FE2B676E04CE5ED1EE3F203EAFB004537C2A21387E9C2A31137A2 + 8C58920B19C348B792EDAF6D5F1404408ECF0B22B2C69443A635A2CDD3D287F4 + 158559444595A5E6E2CA3DC3FD8067E7AD0EAF66C66D0F5087BE109B980A7550 + 27589A01E7D641AE5483656902A31F004CCB2B819DAE27806678048F04387BCE + 83DB6DAE0397D6EC5C2001662E5A5746C6EC47F52496B4074DCE5A09D007EA83 + 0844DCCB0B18957A05F25023AEDCD0835274403DF43A7EFAB9871CA077FAA537 + 771C1B00881FAE5F8D21014A722A41FAD8370AF8E554292A6B2E63D49CD930D5 + 67F8ADE2FB011C278087176E370555D845D8DC15A8BA71FBFA55EE7C3A0A4A38 + 3F60F3BBABFA01A224DC07387EB214E5D78DC8581288285D38BA5AB3D1723B19 + DD0E15049E43B7E90C18ED7088CA50780988D29C267DE92268D633ADAA60F3AF + 030E48804DEFACF401785F040DB75AB0EBBBC308993812F193ABA162D4D0B041 + 08A00351773D1BD74E54C0DB51053A3801F2B405B86333C1DCF63BC94FEF86EA + 8FDFDE7CAFC512A0E0AD15080808F09D9EF7D963BC42FC3C711AEA612C42D339 + 628D0ADD8D5AB41B6D080DA4D0D5ED00173D158D6EC0D2552B80F5BC57F7F9AA + 8FEECFA104D8F8C6720250C2E3F19286454B0081802C9D5D28ABBC845BCDADE0 + 781E6A950A86F818D4D49A50DD46A1568805C5B8892FEED7EB772DFDE3614522 + 0136AC5B863FCF96A1BAA61ECF4C79128906FDA0680672D3D4DC82D3A5E760B6 + A0B39E1FF18317CC91C68397897081F0A82A9400633252507999FC9E44EC2095 + BE56A70B894C4AD02348A3965A82CD66477DC32DDCB158ADE40EBC5FB4EFB3ED + 001E293A08F0DCC275DF93BB63F00ADC9CE2FD5F36E62D5AA4D40A21D3448ACA + 23EBD1648B9C501A885A096FED39515CBCDBF938C203CFBF7E49A5EAC4B59B6F + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle remote file link destination column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000047D4944415478DA9D95795053 + 5714877FCF166847A9324071EC4CEB4CAB8C22B41569A7C8402C5AA5612B962D + CA5AA014EAD8763AA2C812A860A5EAD041D9C2268BB2C8D2D08004121216A515 + 3028A21D50C001377692104C02AF8FB430B6211A3D7FBE77EEF79D73EFB9EF11 + E1C91C122F14640B3939E390CAF49068934D849DFE9D3CFB3D1DA4169A8594A2 + 866EB4750F5EC6F4CC6E6D2444E8293699F6831394F3DA35C2BB3688F129299A + 44FD97C7C4B2DD65CF91105FFF5245A6FFE802B9523BC1AD7BA3783821554984 + 9D77BA48A97467269331AA511072A282CC38F405648A79A457753C131EEA6A89 + 69898C12CCA824639312083B7A6F6446B859681404FF5C4E5209903E99D3AA03 + D19DC7A86EEB8342F94FBE78621CACC37B89C5F79696342362D5CA3282C4F0CC + D84020F1556219C93AF225C4B239A455FEA195648E9A08438337302196A1EFEE + 3D6447BA134FC1F9F63B68E6A363E3B8DED55542041E2B2159911E989229B582 + 2FC63C25E91D9A00EBA20039519EC422DCCD996EEEE24447FEF952F0F98D4222 + 20FE029915E58509A912A9E5AD5A0B76BD6F829E9EDBF84D20C2D05F57EC5710 + 3AC93E9E6EE641FEFBF06B5A0E2AD99C9BF312298DF08B2BA2040C8C4B155A81 + 6767677122E92406FA07F1B1D556C8E50AF0044D70A6EF4158B02FCE1596A0B0 + A44205EFE8108C12BEB185645634036312AA8352E1B3F75EA9C0557E05ACB76E + 4670800FC462098EC61DC7E64D9BE0CB70C7C54AF652E50B70D514F944E79359 + 31FB3122513CB7F238663C4CDF5B8F405F066AEB78C8CC2DC0766B6BB8B93AE3 + 521D170DFC46EA3ECDDA773671F98BEB887D517994C017236205CE16F334562E + 12B241FBE40315BCAABA060D8256EAF34262C3465328E54F3030D00FD30DEFA2 + A1B129FCAA9093BA246044E690AC583F3C9ED6DCC1F1C404AC7BD31021813E2A + 783D0567C6C5A9DE85851F845C26465E460A4A2BAAC0A9AD3FD0DE5C7B6649E0 + 7D389BCC64FAE3D1B41CA9455C35B8646A0CC3DD4264A49C445D7D23F24BD9B0 + B071C4C14017EA0CC4F89612F8793983BE6717C2BE8BC0D0F0906547735DE792 + C02B8245663003F0686AF90E78F55CDC1FEC03C3C30DFE2107606C6282A3D14C + E8EAE9E1183306F676D419B8D0C1CA2D44750DB7A6BD89437F7A3DE17928934C + 8F0DC443AA035671BD9AE0417F0FDE3620D0DB7717A6A61BF1CAAB3A10B6B451 + 37793576FE0BCF2B28464575CD0DE594D45624124CAA095263A80E349CC1ED5B + 379194F0135C9D1CE0EAEC88734525E0F18508F267C0D1E1B3253829917EBA38 + 9A6A8233D101AA2952DB7F6A8F13E36341B3DE86D0205F24A766E3CFF66B4888 + 3D027DFD55C82DB8804BFC2B981D7960BC1C7C4990420946FF2758845B7D688E + 6F28783E557971391BF6345BE8EAEAA053741DC66BD7616AC55A949D0E27A021 + 5402F5B997E37E4F0B766CFF08FBBDDD5151C506A7A11946EF585023398D859F + E76BFA86D05BB946955F9214A259B0DC432BDBCF0536363676AE2E4EE072EBC1 + 6DE0FDE7FABF482C2BD866473FBFC56C8BB7C19AD568696D7D69B84681999999 + EEEB46EBF308927C6B5E3AB3F765E10BF137345A505AA71CC77E000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Suspend background-queued operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000FD4944415478DAEDD4C10A01 + 5114C6F1B95B226A16220DCA280B61618377E001CCC38D079879076C2C90C514 + 0A93C8628A88EDB81B07674E992B166AEEEEAB7FFDEEEA30D775A55F3E16001F + 0119CDEC31496ADC372FFA76B7DD7C6E948EE169D67AABE90BC86AA65B283FDA + D9A427ADBB6DF6F2898EE169567A8B05C01F016AA90E7B3E1D90006E84805CB1 + 067B690D4900374280A29661DBF30909E0460848658BB0B72B8B0470230424D2 + 79D8FBCD8204702304C80905B6B3B749003742405C4EC23E383B12C08D101089 + C9B0CF47870470230484C251D8D7CB890470E31BE0E77AC4CBCA7DF362CCCF75 + F5B9E1E7DAD3F0735DF5057CF305C0DB7703827723E0586AC7B2000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Suspend all background-queued operations' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA864000002484944415478DA + 632C9AB9FF3F0305A02FDD91119F3C23C882DE3407867F6458533AFB00F116FC + F94BBA0DE5730F126FC1CF3FFF192A66EF23CAE08E5427305D358F080B0AA6ED + F9DF9FE9CCF0FDD73F927D5035773FC3842C17FC16E44DD9F57F62B62BC3979F + 7F19AA66EF25CAE0B65467305D3D671FC3A41C37FC16E44CDCFE7F729E07C3A7 + EF7F49F641F5ECDD0C53F23DF15B90D5BFE5FFD4026F860FDFFE30D4CCDE4594 + C12DA96E100B66ED649856E883DF828CDE4DFFA717F932BCFDF287641FD4CCDA + CE30A3D80FBF05695DEBFFCF2C0D6078FDF93743E3BCDD44195C9FE40AB160C6 + 5686596581F82D48ED58FB7F665910C3CB4FBF89767962D711861B8F3F82D9C0 + DC73F6E1E24013989C7CECFA33401B8DA192A719935B57FD9F59110AB4E01743 + E3ACAD4459B0EB0A2383BA812D987DF3C26186078B11BE50885DFF1F598E31B1 + 79F9FF9995E10C2F48F0815DFE36E22D886F58FA7F667524C38B8FBF189A676D + 26CA82BDD75988B720B66ED1FF19D5D124C58153D176E22D88AE5EF07F7A6D2C + C34BA00FDA666D20CA82FDB73818D4F56D20865C3C826901921C6364E55CA005 + F124F9C0BD740783B29619987DF7DA290C0B90E518C3CB66FD9F5A97C8F08A04 + 0BBCCA7732C8A9EA83D98F6E5FC4B000590E6C01D12643C1C9E7A20C520A9A60 + F6B307D7312C40966324D570982162D24A60F6ABA7F7302C409623DB02213119 + 30FBDDAB27181620CB916D019FA02898FDE9FD6B0C0B90E5C8B6808B9B1FCCFE + F6F5238605C8726459002CD00E033582133B30851C011676B648724781725630 + 39000B944A0FE38148E60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Resume all background-queued operations' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003524944415478DAA5D6794814 + 511C07F0EFB8BBB241C76AB146D80D199A1D4411446127DD8450221511B11D26 + 665AE6BA66865D44F7A5BBAB22814445141D4859D9F547FF44D1DF85AE9AED51 + 3B7BCEEECCCE9BD7B89514ADE358EF9F61DEFBBDF9FC7EEFCD1B8629B1B651FC + 473BBB7311A334CEF4026776E440FA07E680FDB97A402483170E36BC500FF022 + 45B9FD99AA079F342D8E5F2B1A5500C5579FD073BB9720224883AEA0A2A10DE7 + 0B962A0345971FD30B7B9621C41354D89FAA7AF071D392F8D552FF0C170B972B + 0385175AE8A5A2150844C8A02BB0D85B7179EF4A65A0E0DC037AA578357C9C88 + 4AFBE38441EF845A70D4890CDD068C4A9A86A3A6E53F00DB235CDDB74619D875 + E61EAD2D598B6F61B1DFA065F5590852164420C899B80AA50B6A307A583A2AAD + 2DA82B5DA70CEC3875875A0FAC872718C391C6D68441ADD13D18924AA1D7E9E1 + F57BC1C4B4D83CB3009DEF32505FB65119309DBC4DAD65B9700562FD06AD6A9A + 068D41C28CB4D9F81A71C3E16B47C81F86263A1C11B01B3BCDDE5BFD02DB8FDD + A4D6F20D3220E088ED61C2A0E7D23E8C48D7212335337E2F81C0CDB9E0F47F01 + E7E37B97AE4D3EA7C5DD16F6C35FC0B69AEBD46ACE8353A18275D7B2A133128C + 374CFAA33F4662F81A75836559702C4FA8446B094F0E775707BC7DC0D6EA666A + B5E4CBD908A8B1DD4F08BC64F62365B2166943C7241CE749146C9445D01342C4 + CFB394C2DC29B076544362B6545DA375964D8A7B90DB9C8DE4B11406BDA19F85 + EEDD671A8782E110826E0E312EF69E889289D96469A2B587B6C0255770DC7637 + E1FCD7DA831899990C7DB21E03352AA72F4802FC3D6170DFA26F987C73830C6C + 55AC20EFFA740C990268B44903022446E0EB9297CAC73B2449DACEE495D9E895 + AA6D702B00F937666068669222D09B7940CE3AF025C44B841E6504DFE98E6A44 + E3C04059BD35D460DCDC1468749A84E3212F074FBB17224F6EC987BDB4A7D2DB + D5B73D03D62CB70927525D53E74D366A75DA3FFAA3611ECE7637426CF883BC1C + 259D16FF5F9F63D5C0F4F95946DD4F8088043D1D4EB8BA3DAC7C5BE5E0D93AF9 + 954CF831530DCC5938CBA84DD6C2FDD9838E8F5D9408A24D1448C5EF87EABF80 + EC5959C6F64F0E8402C157F21F425187C5F75ECD5C95404A8B1C9A4541CD0E33 + DBAC66CEAFF61D87B0B1815915F5FD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Restore previous file selection' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002844944415478DA63FCFFFF3F + 032D0123DD2C88289F4D359B5674A63262B560616B0AC586C757CFC16DC18296 + 6430FBDADD670CCCCC4C0CEA0A12708D1F3F7F67F8F4ED078388000F03273B2B + 4E0B126AE6E2B6603ED482459B8E319CBBF680A12ED39FE1F0D95B0C87CFDD62 + 78FBE10BDC1039496106574B6D066B4355064646540B12F15930AF19624151D7 + 72860F9FBF817DF1F7EF3F9CAED5569166C88D7265606365868B25D5E2B1606E + 5332C3A3E76F191AA76F403188878B83C15C57894118183C8F5FBE63387BF501 + C3AFDF7FC072C65A0A0C5911CE70B5C975782C98D394C4B061EF39862D072FA0 + 580032C0484B1ECE7FFBF12B43FFC29D0C2FDE7C00F30B62DD18745465C0EC94 + BA79B82D98DD98C4D0386D03C313A02B91013B1B2B43559A2F8394A8005CECC5 + 9B8F0C7553D63180F4EBAAC932E445BB82C553EBF15830AB2189E1D3D71F58C3 + 9B95851923F5B4CFDECC70FFE96B065E6E4E86DED248B0585A031E0B66022D20 + 05CC597380E1F4957BC094C4C830A33E112C968ECF02982262411330313C7BF5 + 9E41889F87A1AD20142C96D1381FB705D3EB302DF8F9EB0F300E5830C4AFDF7B + C63069C94E30DB5C4F852121C016CCCE6CC263C134240B7EFCFACDB078E31170 + 64A6853931880BF3C1E56E000D9FB7EE20C31760CE06054F798A2F38F3814016 + 3E0BA6D6222C58BAE528C3B1F3B7208A808628CB8A310802830214244F915299 + 8BA50E43A08B299C9FDD8CC782C9350988A00166A4451B0E315CBAF9086BF883 + 2C75B1D261F0753046292E725B16E0B6601292053070F9D66386E3176E313C7C + FA86E1F3D7EFE008559613677030D3629085060B32C8C367C1C46A4C0B4805F9 + AD782C985045B905056D782CA0D87428C06A01ADC0D0B700007B6865E02B6260 + A20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Disconnect once operation queue is completed' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003F24944415478DAB5957F4C1B + 6518C7BF578ECE160A2373D3110432262A38823118054D640B3F9A0CE7621636 + F68BCE04BA8D1F5971B8011B4A94C5A8DB5C5B0A4CC9B2FD612066E22693CD28 + C6454006092E96E1021B834A7F4009942BF4C7B5E7DB53A8BAC1558DCF7FF7BE + 4F9ECFFB7CDEE7EE288EE3F07F06E5035014B56C92AAA1238053509D0E96CBAA + 3B98CEFC2BC087052F63A9667DCB9F5DBF8D1F078DF741FE11C0ED59BA91FE61 + 33EE9967D175EBD75E525DDE58983EB924201025D16BC2A0C84A829816F1CFF3 + 4E1786C6A73162B6A16BC0A03FA5DCF4F4B280409474DF1A07E7F5E09D7DE9A4 + F00C3AF50638DC1E0C8D4DE04C512625080844C93D8B0D3BC961A52B6878492D + AB6D1EA75B7E80A654EE0794357E27A824E69170E4676E78A092CE9F0DF07858 + 7EFD6DC5465436B643A7CAF92B4058C92F4489714925C7F6A62FE657D5B7A1E1 + F0ABF703FE8B12D6ED44101D8C2A45068EEB2EE3EC91D7FC0055FDB7DC49E546 + 721AEF9200212587B6BF04A944C2AF1DD7B6A2A92AD70F28D57ECD9D3E980195 + EE9B07160F4489D7E3251DD038AAC844B5E622CE55E7F901C567DAB98F8AB3C1 + 383CCB5EF482928F6B7590E9BB60CADE8D8AC21C5E4969DE26D2C1437C9EA6A8 + 1CF1579A3EA74015F08003A7BEE4D4A59B71A8EE9AD0304119CDE2A7E202C43E + 1609936C3552CEB7A0BAB10D94884250108D5CF62E669AD4888E8E446FDFCDAB + 3C40F9C1179C46B505D373AC20E0EA7349485D1F05A95482E1BB63988889476B + E22B28D9238749F33E3C979BF16C72027AFBF5301A278A7940C17B1739CD1B5B + A1D27C2508C85F3983DB15657831F92988838331786714D743A290181F036977 + 07929F8C43FFE030468DE6DAC259A69207BCFE6E0BA72DDF06ABDD2D08F0C549 + 550D92DB9B90F6442C242BC4B84920749008093151181831E0FB8838D4745FF3 + 5FB2A2E6534E7B241765EA36C1E20B53B22F6935464B144859FB3042FFB8DC21 + F30406C7CDCD461B93F716998945C09EEA0B5C5DC54E4CCC06D641B5BA05455B + D270A7241F71562322C365F07D066E8C196199B51F286418DD422E0FD855758E + D356EE46B9FA9260F1C3F9729CA8AD4752AB1669348B4743A430D9E7408B4488 + 20BA7A4C166ECAE1DAA16498E645C08EA39F70DA637B61B10977E0181D41E7D6 + 2CA40603AB48C149A713BD53D303BEBD6722C2135689C5E8B24EB96D2E3667BF + DDFEFB986E7FF32C0128487BC280BEACE7B1C16AC14AF2D64EB32C7A671983D3 + CBA5900E7C337E29512A79614D308D2E8699633CEE8C454040F249ACEBB982D4 + FE0EC412409FD33939EF6653F63B1C23BE3D2D104A87C95A1EA76979045176C3 + E5EA09E89FFCF76890859C209F815D2E0ED9450CA3FFF31E991EF1DAB0D0F334 + A8CD4E78B6FD063D6D5ADCCB311DB60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003544944415478DAB5956B4853 + 7118C69F79F910B88B7D09EA83526114B14A86419F2AB01482B4888A56218548 + D3CC255A69178C2843CBCBE6AD82EC4A61ADD99C736106D90D2A5773A6B450CB + 24B72EDB71D3E52EFFCE716C73B5792CE8FD726E0FCFEFFFBEFFE79CC32184E0 + 7F16870170381C56A1B4BE63262BE974B8905A235963632E26BDFF06509EB91A + E11A666E373DEEC38BDE2F4F1D2EB29E81FC13C0E90EDF88EEC308064746F1EC + DDE797740BA9F599ABBFCE189057DB4ECE65AD85C3E909AB19FF3901E3B00503 + 23149E1986F4B45E3863C07E99965448929153A90EF9BC342B8536B6E2A96188 + 5E841BC64F66544A923933066457B692CA9C14D81CEE69751EDAEF1B358E8ADB + 4F50BD3FC50B38D8F0883521E3761BAA733720B75ACD26C5C9BDEB50D4A0414D + DE8600802D21FBCA95904937C232E6620530555CD782BAFC8DC180E912222953 + 40969F0EA9AC95DD3C2319C76AEFA3A170931720AD7BC89A10C9D926AC128970 + FAA61E6E0FFB3BC79F45A0AB4FF70272E50F5813925D7A0B498922D4B70D2351 + 9484E8A8484444701041078439464E3967EA8EE21EFAAFA4790139551AD68464 + 9FB9819A233B50725D0F6D9785151204D8775E45D81262319B202FDA49A7A30D + 3D436E7C77F0A6852894CA0020AB4C49D8129273AA11F2A3BB61A29CE8EEFF81 + A28B5D5896B8127C3E0FCC547E87289B9B0380CCD2BB842D215F873FD3800C3C + 7C6BC289C6374858BC1C82D858BFE9EF1095EA7E00B0E7D46D222FD8826F7667 + 58C0C1D38DA026A2F1DE3A1B8B978AC01708A698FF0951AB55014046C94D223F + B41505B59AB00093D503DD00C1C2252BC0E309BCB39E626EB78D222626C6BF27 + 9AD6960060D7F1AB84498879347407CF7BCC9363894F1082CBE3FB8D7D101B65 + C55BDD2BC2E57239BE8DD7B6A9030071F165E24B48A8D2EA9C98B740488F6536 + 6D88A0D18CD92818F4AF9D6ED7443AFD64AD40102B65201DED6D01C0F6C39788 + 2F21A1AAFA6E0F3ABA29CC5F24445464941F3266A7D067D04D9A0F5EDBDCC268 + E3C48A720662B1FC700D5C4D8B9E046C2BBC40988498C28C88F908563475A3B3 + D7E6878CD3E6C6DE2EDADCE537F755FC4EC5010F8867F04A7A951F00966204FD + 162E6C917330676E3C3E1AF54EB7FB4FF3E085FDC53FD95B2722E2C4CB64B47C + 3B211EF174E63EC02F538902EF19AB4BE40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003924944415478DAB595794CD3 + 6018C69F254A2062BC635462BC2326FA9F091E89784C40D1651A5110307810E2 + 440218145088570C46D0C906881251FFF088A24441BC4D3C5014C10341C5E814 + 0D4C655BD9D858D77EB6AB08956D4513DFA469FB7D6F9FDFF7BE7DFA554608C1 + FF0C190F90C96492894947EEF46625F76D0E84E4A9E69AF91BA7F6DF00B26303 + E1AE607EF8FCBD3778DCD0FCD0E620413CE49F0034E3BE90DAF72DD0B5B4A1B2 + FECB53AE849023B181DF7B0D48CCBF4572E2E6C146B36E73AC1D76347E35E263 + 0B85CABAA6975CFEB45E03366BAE93432A39E2D5E52EE7B3E2823961131ED635 + 718B60D0F8F91BD42AB9ACD7804DEAAB441D1F0CB38DF198C7727A3F282B0E9D + 7B80DCCDC10220B9F0AEA443AC163372134291905B2E958ADDEB1722BDB00279 + 89A15D0029876CCC2E8526490163BB4312C0C7F68232146C5188019E1CA23A70 + 119A2D4A2469AE4A8BC7C891917F19855B970980A482DB920E51ED3F0F6DCA0A + FCB0D03DE62A3FDDC4EE5BF158EC1F0E554086732C437B0945E9610220417B43 + D2219BB2CE42BB6D2552F22B44737AA616D58C1A4326F8C2F4C58251B605285E + 5B844C4D098E67840B80F8C3151E1D72F6C5719CB9FE08A52985F8D6D65541F5 + D77B48BB11852193FAC3AB5F1FB02C81BEC100C5D8B568AEF2C7C99D510260E3 + C12BC49343CAAD6BD06F800F94E3A3D15A3FD339D6CA36E089231B23A70C8297 + 6F5F3084E1000C18967542861966E1FE8E0B0220EE4029F1E490E99AE108983B + 1D75CFEA21F78BC08CD141C8BC138D119387C2DBD7CB29CEF0E23C843B2C462B + 0C0D1D7897DA240062B34A8827879459A33067E16CD81D76BCAA7E0D6B7B0726 + 4C1D039FFEDE4EC12E800316AA1DFA37468C3344A0624FB60058B7F71C71E710 + 3E66178CC0FCE040A7104DDB61B658E0E3EBED14ED0E68A3CCF8F4AA19134D91 + 18484FC699AC0D022066D769E2CA21DD2B085A24FF25E4F863D5028432B6A1F1 + C5079AA159A52EDD50C63FF77BBB8ECE3C45F2D2568B1CD23DE61D1B89C5A121 + 22C1CE6BFE30198CA8AF7D2B12170122B717136D7A14B77F5C735B8162E91291 + 28FBEBDA4451A8A97A4E589A5DD25D5C04084F2D22DA1D6BA0A75C571052EC87 + 650AA5CBD6D8B97752F3F4395785294797664C760958B5F528078881DE4D8B16 + 9DF0439832AC87633A5BC5BBEBD993DA1E1011001EE2F1A06D88581EE1B2FF9D + ADE221D555351C844AD6A5B5E68800523F9C31FB065772A700480401E1BFD444 + 5DAA41D309F8090EEBBAEF14F7302B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Enter and execute command of remote server' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000022F4944415478DAA5D5ED4B53 + 511C07F0EF4DC55719F4A217A1B9D58D9B3272B95C2082250485F46054BEB007 + 1109D33FA1379260FAC69721F68811B4AC5688506F0AC3A2B285863947B3A11B + 3A67BBD9DCF4EEC19DCEBD4B289A9C736F3F2EFCCEB99CF3FBDC73EE93004698 + CE3BA7689258E336088FC00190FA633586AA3B065F820BD8BAADD0102087026C + A0D02C115BD51143806BE4391FB0D77EC810F0F9C32B3EE0E0E1E3B8DC7C0EF7 + 1E3831ED9BE106DC636FF900B1D406BBCD8A8B0DA731EA1A87E3F12056158509 + 78275D7C40B168D1DA5B0A36A3ABE30AE683215CBDD6C30466BC137CC0F61D22 + A4DD22DA5A9A105C08A1EF563FBE8765263037EBE503ACE5767477B6A3F7C61D + 8CBC79C77D0F16837E08FBAB6B27A952C23D8B463ABD86F84A8C396E490E41A8 + A8AE256283434F7D78EFD723222F32C7C5A23F338074E121EAF6E58110801E99 + FCBB9D267FF75F7C49C2D37F16E160800924124A0628691CC051CB3A40B2026A + ACA581D75F5370DF3D83F9D96926402B4535C0D2F4083552EE3F57ACA40822AB + 04CB7160592188C6D5F30413B7E9FB303CC47C40D4D080B2E627A8DC95A3158D + 25081622043F56E8125324EBA4F19BA7F401E5979CB0166D825F2608C70873D2 + A7BE3A7D4045CB53E4E7098827D9C5D518ED3DA90F38D0FA8CABF07ABCBF7E42 + 1F6032157315CE6F9CD3B2A73DA90B18A3B94CCF0AE846BA3F0E0F957201D94E + AADF9F3FFB011FFBDFCD05D0D57CA3C9BCC1581FDD969DFF0D1499F76405FCBE + 2943C02FED8B0CB64832D3D30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Clone current session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001804944415478DA9D934D4B02 + 511486DF5B897F22492B3043B02209DA08EDC245197D2C829088887E45BF2222 + 222268D1077D2C5CB4B45D1891509914B93082161568965F79BA63B6989CF29E + FB3270678673CF33F70C8F8062FA03C16B017854EB6B890BD54A7F20489DD3DB + ACEE775B536001DC333B08F5DA4004C8EB7BADDD57C8FC7C7C554272739207F0 + 847731ECFD019025C0C8670538B92D23B131C1037867F730E46EA9FBE27C9990 + F920640B40364F782B18EF0997EBE33C806F6E1F831DCDD5A6B922E12943787D + 078A65B2DC135F1BE301FAE60FD0E36842FA85F09CA3867BCE57433C807FE110 + 769B40A1D4B8B991D8CA280F30B078A45A5ECDE9F2080FE074B629D5DAC38FD5 + 35B95482D0345429729009A16B682C1A11AD2EB7E9673CA492751311BA86FE93 + 9484B79B003A863A5C5D96DDD3A99B7A808EA1C68854C629740D6501740C6501 + 740C6501740C6501740CE5002EE4EAE39CC030F42C1AE9560258BD54315435A6 + 8DF234F77271FD516B12481B200DB504FC3654355FDF3033F96ED17813000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Filter files in file panel' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002CD4944415478DAD5966B4853 + 6118C7FF9B7ECACAB4124B974E29CAACCCB22449D6425CA6D587D44A3489A559 + 8A7433BAA91166BA359D1B4519CED026D1C5D45A9A628678C91B9BA6CDD26535 + 0CC55412E765D43ADBD997A5EE50B0A03FBC9CC3F33EFFE7F7BE87F739E7D074 + 3A1D2C299AC5012E91C52A1AC0B4447162E91F69AE91C5BAF010B64556FFA0AC + 1A0680BD83B34500C3836A12A0BAB7CF2200B7C34F49C087FCBD261317AF5CC7 + ABD7757F54CC69B9231E16E69AC45646979000659E29208A1B0F5F3F1656B933 + B09BED6B88D535B7E373FF90610C8D8CC1C971099C9711C371B1E13EE9420AF2 + 73C52675561F3102BAEEEE31DD41EA35D435BC811B9309DB85F3616D6D8589C9 + 296826A68DD729226E03DB05F3606D4587A2A313768BECF0B8486252C7835B4A + 023A7243666CB9A5558EB40C01D2AFA662A3A73B3EA907D1AD5243D9ABC6B7D1 + 31F8FBAC85DF660F9C3E4FCC7B7B21E240E88C1AEB8E969100F9ED9900BD04D9 + 620C8F7EC7A5B309D0376487B20FF2772AD0E97470FC37A1F3AD0225B22A8884 + 7C5811B1DFE5156B04B4DD0A9E15A0D14C801B1B8FE8A84308E1B0D024EF4643 + 9B122E4E0E606D5D83486E2204FC74AC603066F57BC73D2301CD376707E8D5D4 + DC02419608D23C31545F0620AB6941307B0B2412093CD76F4078D8FE39BD3EC7 + 8D8046F16EB34750902584765A0B6E7404EE149563A70F13D2476510DCE0191E + D75CF28D7F4E02EA45416601E3E31AC4C41C430E3F0D15B50A943E9182C7CB04 + 8361FE0DB02D4146026A85E6017A255F4E465060001ADB5568ADAF42416101A5 + 677BA2115093B58B32592414128DE70AC5FBAFE8EFEB42764E0EA58775F20509 + A81650038AA4F741FFA1458F7A043A2D71749353283DEC534640259F43995C55 + F912BDCA2E0C8C4E62A9BD0DE24E24507A02CE949380F24C6A80AAB70742010F + 3F89860B0D3B087FD60E4A0F27C9089065045226FF8D82CE55FC834FE67FFF57 + F10B7FBF2D34228792110000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Shut down once operation queue is completed' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000040D4944415478DAB5956F4C53 + 5718C69F4B4B05272BD9E214B701336EC329C67D7141E636D0022E0E5C964536 + 070233CA405628FE414551A34B663695D252C14024FB3006EAA6835051274129 + E870BA2020130D844A2D85DA7F50687B7B76A803B2406FBB2D3BC9FD70CF79EF + F33BEFF3BEE75C861082FF7330E30086613883242557BDD805A31A7590D8E2CC + 28CBBF027CBBE53DB84B767CFACCB53F70E39E661AE41F01ECACFB44EE3CD0A2 + 576B4673E7A356AABEB6746BD4A05B80379604BFF02C52639741C0F771BD5BC7 + 6CE8EE37A0476B427387BAFD78FAEAA59C006F2C69E9EC0771B2389C1645858D + 50B5AB316A67D1DDA783745B0CE311E08D25BD03266CA49B9D3D8B0F27D51A32 + 5971A2AA0932F1DA29406E6983474B42E6099112133EA325AABB6AB0ACC3357F + 30351A7B4B9550483EF83BC0B3255DD4128D5B4BF66D8A9A8CCF3F598B921DEB + A703FE8B250EFB18787C5FE4A78AB05FF1334EE57D3405909CFC851C4B8FA6BB + 71BA0578B22427711566FBFBBBE6F6CB7F4279FE862980587E899CC81441A2B8 + 32A3F84C96648607E0415909065B541819D0C2F18C10969030BC7FA800C79A7A + 71BAE0D329409654490AB3E2601965390BEDB2C43882AAE434BC74B31EA13C1E + E6FAF860165D1BA38FCEE9440FCBE2E1B27780EBB5BC03F4131720E3780D2912 + AF434E71BDA766C2FAFB4A3CA928C39BD48E392211AC972F23A8A6069AF878F8 + 45AC84F5562B6EE9F518224EF95693659B0B90FECD79229324C030E2E014D7B7 + DE444B421CDEF6F3C382EA6AF08282F0980ABFDC790F7D8BC330B758017E6828 + D4A23568D4E960218E481760CBD7E7886CFB8790C8EA3801C1D5524474DCC092 + CD9B2194E4A2FF5D6A05B56802006AD182860658EB2FE14E4E363A5847A50BF0 + F9912A22DFF9318686ED9C802B2B9662857E08AFD42931A2AC83512A052F3010 + F3CF5FC0E38478B0060384E95F20302F0F5D21C168B4D9FA5D80D443DF1379DE + 06E416D57202961F4E420C2D6C705B1BF4BBF760B8B6665A8C7F7434E6FD5085 + BE5717A14EAB7D5AE4E482EF48F19E8DD099B933688C08C75B4F9E66606DB80A + C3D1A3D36202B3B321148BD1456B3199C167F9A7897C6F1276165DE0042C3C2B + 43E4FDDFB0382505CF1DF90A9AD818D83A3B27D705AF8721E8E245582A2BF1FB + 8EED687738CEB8009FEC2E23F27D9B3060E2CEC074FB577425AE43A44080F915 + 15F05FBD06E6F272D8EEB641F0C61204A4A5C1D1D303755C2CAED37A9827BA28 + 71D7290A48C580078BC647F7C15DB0575660B9AF2F02A9E09CA464F069BB3A8D + 460C9F3B0B7D61216E9BCD18244E053D071993008FCA7F0D869ED4D79A7EC4A2 + 8E662CA4057F9EB6A91FFD9F8C8E9F72DAA60FE9BA9590128DD9F2E501C0E6D5 + 3F79A6511C10B08AC7902C7A97AFA4022FD2BBFE1118A858C2146598CDD726E2 + FE04EFCF779145BF91170000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Stay idle once operation queue is completed' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003794944415478DAB595694C13 + 5110C7FF4B572868EA118F281EC807355EF1F860D41804B56AE21943BC8F6A54 + A222B1DE58F1889A9878C35281684C341E688CA278A0228A168C78E181183545 + 8ED202524B5B9676B7CFED122186761735CE7E78D9B733F39BF9CFBE5D8A1082 + FF699417405194A49336E5612BAAA00C2C472627AF8DB4FF15E0F0AAF1F0D7AC + 77FB4AEE273CFB686A01F923809BF7DFC8EB2F669498EB9057545E20649F9ABA + 3AB2DA2FA03592F4EEAA8266F25004D201E27D7D830B9F2BAC309A6DC8FB50F6 + FE68CC84C1920079498A915F6402F1F0D8B73C5248FC0386F76560DD3C3E9756 + E1C43A35250B688D2425161B160AC58604D1F008B96A6CF53896FE144971539B + 011B53736425E9D3AD3D96A987F894C4F0AE0C3CCF89FB7B3451D8917A077AED + F4DF01FF2AC9CEA5914DFEBA939948D93CAB254056124B1DBE09922C886A2909 + E76E80826E039D661212F43790B66D4E33407B329B1C898912AAF1F805385917 + BE98AC82EE363CF521C98679E310121C2CEE2530D7705A37B71910C7DC23C7D6 + 4E8256FFC067725F92CC9EA2C2C53769785991876ABB058150A153C00024CCD0 + E152BA1167762D6806C49EB8438EC74E819DE52507ED95A4DAE6C4CA73AB5115 + 64C0D0014310DABD27DA86B485C3E940B9A90C851FDF42F56318F2F80C0576C3 + 2302D61CBD4912E3A661437296DCCB84E0F07B785C790B11A32340D3748BE71C + C7E151FE23982A4D4C497CED3A111073E83A49D2CE84D5C949262FAC7C8ED8CC + 68A827AA412B68BF7E9C309FACFB5970D8EBC78A805507AF92A44DB3A14DBA2D + 0978E562D079A01D616161B29D1A8D461416BEBD280256EC4F27CC9668D438DC + 9241B3CE0EC3A051FDA0542A65012CCB22273BB7420468F65E20CCB6B9D89898 + 291974D7BD1C11EAB1B25F5FAF11E17A78F771E39097EC3A4B92E317A2AA4EBA + 83E8F3C3D177447704298364010D6C039E3F79DDD8C122DD19C2EC588C2D8919 + 92416F881ECA7E6674E9D159165065AA81B1A8F48A0898BFFD1461762E85C526 + DD4191A5005BB3A3D17F64380214017EFD3CBC07C52FBEC2E57037BE45F3B6A6 + 09000D2C3212798DC98F478EE53242FB77F309F1262F2F36C3FEDDA917CEC19A + 26806CE6A6E1F1308664E0BBAA001D7AB443700725E8400538178F7A2B0B6B85 + 1D1CCBA5185DB5EB8593EC6AD53FD997F53AD0719C82A26285CAC608D1A1C25A + 2EAC069E90C4D2F8DADC5F7E3F016C7B2BC090B59CF80000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Find' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000043A4944415478DAB5D50B4C53 + 671407F0FF556889190B339B441126CB628DC9866C6ECC6C2E301D8A461CD91C + 1274CA54A6C38D4D4D540673CE218B535426D48A5998D33D908680B3301079D3 + 6A15B44F6A94B774B495475B4A4B4BBFDD5E63A5B640B76427696E72EF77CEEF + 9C7E5F7B294208FECFA01CC0EE3335FF566930DB1093971265F41A38961C096F + 86712C29AC6D85F84E5F93D946564C85B8006376EF06A99174A3DF608648A99E + 127101AC63DE01CA2E1DB4432318305A2054F44E8A30C02E5E35C9FE240A66AB + 1DFBCF564F5A3C6B6B14060D23D00C991E22F4244D8A5EE9B0D1F8CE993D6B74 + 1E812FB955E4F88E65308DDABD9A80ED0368071F23FD7A07D22D3DB163F9CB1E + 81D4DC0A7232251A46CB18D2F2AB262D7E78DB32B4FF3D847A6937F4268BF3BE + 5A3B889C9D2B288FC06739E5E4C7CF57423F323669F17B6DEDE01797422A5340 + 6F3481CD6261D69C20842D7E031D7A5F9C4A8DF10CA49C1090DC2F5661D06443 + 7A7E855B61C79A1EC5350C6B3A111CCAA13F2F62C68CA760B198A1EEE94477BB + 0A368A85FB52A9BF5C5E6374033ECDBE447277ADC1C0B0CD63E705E7CEA3A6E1 + 06DE8E8E45C46B8B10121800960F051BBD658E3DB87E5386DA4A01EE296F5589 + EB2E47D329761760FBD11292B77B2DFA69208357E652DC34F4003DB7AF6279EC + 7A84BC301FB3037C41518FBF89573873A135585172E51AEACBF8B8DF7577FB8D + 3A01CF05483E524CB87BE2A0335ADDBACF3E7E92EED28A4D1F6F0127F8195014 + 3C46B9B81D32B110B5157C95B8FAD20217605B5611E1EEFD80E9E41BDE9F2E89 + 8ADA8B888C7E0F9C97C2E1EF37CDAD70F88260E6DA24E9804EAB45C9AFF978A0 + ED0D6A69ACEC75025B320B0977DF3A067832366C4C424C5C2256AF8CA2CFFFB4 + 092710C93A408DD9703E3F077DEAAEB0E6FA728913483AF43B39BD3F1E1ABD15 + 0779A52E8977EAF988591B8F50CEC28723D3C278238C1342FF0112B4283B4146 + 8D28E0E542AB5687DE1295773881CD072F106E5A02033C19599999A0FC662275 + E756F8B17D3151B4283BD02A93A3F4E2399DE86A49E0A393C4001F1DF88570BF + 4A648043A78B5D12F5DA6E9835ED885B9780A0B9B3DD0A2FE23CCF5CEBAF4BC1 + 2F2AC25DD5EDAC9BB58234974DDE90FE33E1A66F449F7ED463773F7C9F05C388 + 1D09F1EF63C9AB0BE1337DBACB73496B1B7E2BBA0C597323F17F7AA6B259257A + BD4F2219760289693F91BC8C4D3460452697EF06D8E9CDEB91D521C0DF1FE18B + 23103A2F046C360B369B0D1AAD0E22A1D071FE71EAE8B790AB3A7138F3BB2679 + 7343149D3ACA0009FBCE92BCAF3733C04461B7DB517DA5127F95093062B182C5 + 62D38015C46EC35B4B9742DC2CC787B1EFA2512862DE8C82D242414F9B2A8E01 + D6EFCD27B91949D0182606C6C7C0403F8C06033D051BCFCD0A644ED681630550 + 545F10FAF8FA2E897833D23136833801AF2A4F117F1C496607CD9B5FFC6CE09C + 558F1006A026FAF5FCB7608D47FE0109D862FDFD40A7140000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Enable-toggle queue processing' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E54944415478DAB5956B6C14 + 5514C7FFD39DADDB4671ADA11013A16922A53C6CB206A2311A17A1406283684C + 8B68EBDA080DB5A9DD0A52BAD0523184A4CAA3BB7D6C83410901D1101F101142 + 6D34168C9AF041C407D8AEDD6EBB8FEEFB31B33377AEB313EDDA74BA5B4DBCDF + EEBDE79CDF39FF7B4E2E4329C5FFB998148061988C46E6BE2FE7900533C48974 + 7D77BD31FA9F006F6F7B02B3159B3AFEE8EB5FF1EDCFE33320FF0A2090D90BB9 + 7EDB0D873B82AB37C7BE97A36FB46F37FA6605CC45924585F3605AFF2072D91C + 659FE093B8E50A62C41DC6D59F9C370ED73DB9222320BB24BFE0DACD715089E0 + C0CB4639700843379CE004825BA35E1C7BB59CC90A988B240E4F185BE564F3EF + 6021C9B126C3091C39FB0DAC8D1BD38066FB604649BE8B1E85A0F160FF860E3C + 5E6C9C21C9D08F4E10222AE7FB4D6BD06ABF881E73C574402649567595202405 + 4092040B35ABF17E4D1FF8F85DD324D95B639CB2B7F45E40DFCEA767026693E4 + 11DB5288793C745A1DFC213F1881C54B867AD4AE7A0D9198A448220A3C34AC16 + 16D33AECEBF90CFDBB9F4D03CCBD03F49DBA357236922AE0D19E52E4DC2DA16C + 8101BE841723C161C44231B0BC5E96ED100607B468AA7A0CF979798AFD3EDBC7 + 78D752990634DA2ED323F5EB60EEB9A20AF84AD8014D8184928265CA5E028127 + EEC644681CF1200FBD588225A8849E2D428BA91C6DD67338D1F67C1AD070EC22 + 3DDAB001518EA8028CFDCBA0994FB0585F3CED5C20027C9C078140007C5044C5 + D26A980C3BD169BF84931DD569C08EC3E76957E35368EABEA40AF822B61DFA62 + 0D16DC799FEA3D4F3804383F22DE18B47C3E0A436B7105760DDA212980BACE4F + A8D5BC09C1B8A81AA0FCF87268EF97A0D7E9D5DB4C9923AA8022B12822EE3884 + 84709D88D22B0A60DBA173D4FAFA6698AD9FABFA5FE6EA5150CA4297AB43B695 + 8A97949208B962884F72D71440ED5B67A96DD773988C09AA4E15EFAD84EE012A + B7614E560091E722381A4522C83B2449AA5500A68ED3D4B6BB12CD5D17549D06 + 8406CC37E832025271C272D6E1F1282F117A8049063B47DAC12980EAB693B47B + CF567823EA153C736A250A56E441A3D5A8DE47FD717887FD1079F2A13CECCD2E + 8B7F74EA795280172C27A8ADF545ECEAFA5435C0A0D484E2870BC16AD969E75C + 9CC7C4EF1E48BE798832636BFF680DCD182405B0A5E538B5EDAD8127AC5E41D5 + 99322C7E6821B47F018848E01A998067CC1B92DD2D0E3ED02BB7A46A0B2A80AA + 37FA6580099E5924DAF2411996AC5E04369785C7E583E33727C464B24F4C923D + CEF6B03FD3A34F013219FDA07F13A586220CDF7600FE7B5114DF84F307DB33FF + B3FF0464FB938B0EDE230F08B39C82B6385A02A7E612F8EFF527BD78418D083D + 0FCC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C14944415478DAB5957F4C13 + 6718C7BF9DD0C1A81B1A978D856CD94C0798A97F18E3E2D8C6182A8888B04D37 + E4876052D908638385F1CB2C59DC4C930D75B66ADCC858547E29264BA6624CC8 + A282883FA0324010A31D755B41697BEDD172D7BB7777C55A6FDCADB264EFE54D + DEF7DEE7BE9FF779DEE7794F4508C1FFD9542240A5520535ACABAB7F949D9CF7 + 78E894A2A2229738F169CF06505090078EE3146D86866EA0ABABBBD3E371AD11 + 21FF09E0F57A156DA6A6188C8E5AD0D979A1DBEB9D4AD5E97477670D605956D1 + 26343414343D098BC5828E8E0B7D82FD9259034CA63ED9F5B8B818C9FCF0E146 + 08F6AA5901F2F373C1304C505BB11D39D21400941DFC3568863CA19A42CD9624 + 5C1F18082A1E13A3454343B314F0AD2E014A2521BE3E766E18569B0BB9893150 + 873C1614D2D8D83213C072CA8EF4DEB4C26C7562F8772B92629FC4E321CA61D5 + 6A17A2A9E96800507AA09DD41626C2C3F28A1FB985141CF9C38EDB560A37EF4C + A0386DF183B5B3B7DB5179E613246BD35093B0032AE1696E3E16009418CF90DD + 45AB50BCE7A4ACB8BE30591076A0B3DF226C82C3C8E8380AE29FF5AD5D1EEF82 + BEB706910B3570DCA1F17A6412766DD88FA32DC70380E2EFDAC89EE264B83CF2 + 55DA7CED47B03C83ACA53ADCA3DCD8DDD281AF0BE271D6DC8ED2D3DB305F3B17 + EA8810F03CC1D8751B529FCFC42B775704001FEDFA85EC2D598792BDF21E9C74 + E721E2A9703C4DBF81D60FEB517DB00DCB16FF09BD693BA2621740AD09054738 + 01C081E3791F6419FF1A1A3E6E9D06147EF3333194A6C33E297F0D2C373C8357 + DF5A8EFEAB8358FF623606FBC2D03F671FA21745214CA3F68973A2B808113A6D + 77C37983C160F9E83440A73F4E0C9F65A0D4704A1670C29D833757C783F132F8 + EDCA0068971B2F2F7D09E173C37C82018017343589F1213B322372B1B3503F0D + D8FA550B3196BF877BB4FC3D137F200A6F2727F8845896818BA611AE09F3893E + 0C70522E58FAFFC2BB9A2DD0AA1705CE20FFCB4662ACD884F2FD6D8A1EAC59BB + EABE90F71FBB9E8650762746AEDD623996CF3057DB4EF80AD47F5DE77E7188EC + ABDA8C71A7BC07893F3C87D475291241FF58EC0E9B1D83BDC312710920BBA69E + 18AB7384EC38ADE841FAFA3489287F7FECA028F4749B08CFF2690F8B4B001F54 + D611E3F63C8C51F21EA4D44723333D4336348C70263D974D82178E5A7395BD4C + 16F0FEE7DF0B807C8C298468ED4FD1D898B17146C6F8432566D7D54BBD332012 + 00FEA55D9C5781AC77B264E3EF0F9508B9D2DD2340A83273D544AD0410EC87F3 + C2CE791DC205B612411A01112BF55373A5CDE007FC0DEF14B7EF09AE575F0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000034C4944415478DAB5D5794893 + 611C07F0EF3B2D10DC6107417F6414148659D930E8AF122C03A1567F74EC6A76 + 499695094117DD966165CE3310B2B2E86035B799820445B7E5744E67ACD232C9 + ECD8D69CBBDEBDBDAFE5EC4D5FB7821E183BDEDFFBFD3CBFE77DDEBD044551F8 + 9F836000822042166697DD0B6326C423B79F5A5A9CB9D8C97C1BC8FE1B207FF3 + 227035CCFC7CF3413B9E5A3E06917F027C247723C6D73DE8ECF98EC76D1F1AE8 + 1696956D5EF4396C6057493D752623196E5F80B3A6DFE385B5DB868E1E071EB7 + 7699CF6C498E0F1BC852D751E73253B0BDC030E2F15319A974B01D8FCC5DF424 + 4858DFF7A2203385081BD8565043156C4F85D34D8E5A17A0F3BE38FA71EEFA43 + 1466A5FE042A2A2E86DC210DF6F128DC91861D858650A538BA7109F695DF45F1 + AEB421203D5D0992E49E5DE6591DD4D9CB6173F94302CCD85FAA4769CE7236E0 + F7739FBC355F0B758E04D9EA9AD0E1AA141C2CA946F99E956CC0E7F3719E9491 + A7C142B118B9574D2003A1EF396114056399840D343599462C8E8B9B892D276F + 2129518CB2DA6E248A93302632023C1E011EBD4106DEE957C4AFCFCCB8A5B98D + B7952B8600954A01AFD7CB39A34D27AEA378AF1447AE9850D7680B898C083437 + B77002A76FBC40D13E39BD3B6AD1DA45E2AB5B302AA2B973870DAC5F2F87C7E3 + E104D28F54A1E880129F1C3E3CB3F4E268A509F3E62F80502800B32A7F225AAD + 76386032993981DCAA2734A082FE79378ED3CB342B3E11A29898A1D03F109DAE + 9A0D289532B8DD6E4E6003DD81CD331656FB38CC9A3D1F4291E8B7F0E188C1A0 + 63030A851466731B27D0F0C6853C5D2FA6C7CD85402042048F1DDEE7FC8EE8E8 + E8E035B95BA31F0EF4737470BFE533765F3023764602F80261307810713AEC68 + 36BEA0F87C3E3178E1EB6A0D6C402E5F87D656CB8880ACA80313A6C4D3CB328E + 0E046B695C4E07CCA6973ED2EF95D0479245A2986C06B9575FCB0664B2B59C1D + 1CBBD60EBDD18969331310191119445C7D0EB49B8D03E19D9757E999DA589926 + 9F416CB66FFE8E4B2BC60401A9740D27C03C260F575950D7E20A22FD74B8D5D2 + 4887FB83E18363AA5CB333002AD05929391FF6DF3553506D89C22BE7444C9A3C + 15EFAC261F490E0F674FEC2F9EC93FC7215EAC6C8E1A0456D313548C163E08FC + 0083BE02EF38440C260000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete All Completed' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002444944415478DAED954B6813 + 511486FF99318F661E69B0E6612C6D24B45814C582A82882B810830A162D250A + 829826167421B8E946100A6E0405FB5041B156AB1B57DAA550C5D6A209926A6A + B46A6B4CD298B4C93C9AD8248E13F181086246041739CB7B2EFF77FFF31FB844 + CFB53B32FEA27CFB5DC4EFFA4409E075EF5025DE3B70F73F03BC9A8AFD91B0B3 + CE567150715071F0AF1D8C7777237C7D00897D1EF88E1DFC097012206D1C7396 + 22C93D1F8BF9BD653B7877F53284FE4B703AEB31FA620AB999195B8724C5BF8A + 6BAD1C73A5C1E968B3D9CC181E7EF4A06C0783AB5662AD7D098C1C83447216A3 + 4F82CF455ED8AC031616B1EC605383C3555F6BC3FDB1403E93917696ED400C4F + 60E2C861ACB19B51AD40A21F5278FCECE548A9B7BA71F98665E6C518791A9253 + 19A1CD2B8A375565C04F4E6268F72E34D13AD418594C2752D05024ACA66A8C85 + 5F239EE63D3E41B8A83AE45249D1286E6CDD86661D018B02812CC33FFD1ED139 + BEB35D10BABEDD2354FF68B108F4E74EA1D9C8C054A5FF72144A24F16636DDD7 + 2E88DEEF0035DAE7D9AA8D34A51D5A67A9E1188D06E1340F0D49C0C1B108A6E6 + 1011A52E05D2A90AD0C7195C7A52736BBDC968D05314DECE671112C4DB8AD027 + 076D6869A40D08F002E2B9DC71AF209D291FC032914D0C63A79550A30B7904B3 + D97B3141DCAEB40A5696BE50ABD51D5AA1D7C12FCDCBC97CC15D36A087A3DD46 + 90FD7514458C170BFE022F6EE950B6F7C703D8D3168A3CB1942411C8171EAACA + A097615A95E1B612203CCAC6247F1D237314325A50281EF80C792442BEB66FDB + 5D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Move To' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA864000003304944415478DA + B5946D48536114C7FFB79C2F68601FA232320A221431FA108494A42B4DD28A5E + 08CD9739C51916BD4046642ED3A0844ACDB424434ACB44C4B42290C872776A08 + A5733A730A95AFA4E1D4DBEE76EF5CD78973577775069D0FF7F23CFCCFFFC779 + CE791E02FF3988E94F717189D901A992A6274353525226FF092095C6C1643209 + 0AB5DA5E9064E3B2213C00CBB2824283C1888181413434285A58D6102693C946 + 960D6018465028128940517F2C108542A1964A257ECB06B4B6AAEC8A7C7CB6F1 + D6A5A52F909020219605888F8F85D16874E85CCBCACAFF0DD0D6D62E287CDA3C + EA889F826611569012641D022B402289E11A69B09B35324621A7B61D7792F6C2 + 2C30D0D3DB950D5D68D60C2969D61C3A0BE101542AB5DD641D65C0ABF6490B80 + 31095F99AF3DC3F83E3C81C6CEFE16CE3DAC4816346205C4C54583A6695EC297 + 4A0958C33836ECC944E1C749DC4D0E06CD4C0902F4DC286B07C638C83894EA3E + D5BDD3627F2B2036F614D4EA4E5EC28FD7E1F00DDC816FCD1AB4AE8CC4E50B72 + 9CCD7D6BD7FC76F201CE5807B2A31F06238BEE9FBF90772684E001F47A3D2FA9 + 3ECF0F62E961503A16AAF724567BEFC3E6BD37B0C2C955B08A29AE49A3E37AE4 + 5490C83F17360788898942478766410562E92198090FEE19714597B2093DDADF + F8E22A03B5629D2024333104578BDEA1F062C40CA02A3BC0EC64ECB32B9E0598 + 0977CB7FA8BB0B3D4D9FB029508E353E470521690FDFE0D1A52333809A2C6FF3 + C168174C598C3CAC86F3D7963F44F833360A755D35B4D45674B844C20467BE79 + FC7E5C2BA8C1E32BC71D01B8DBECCD002C67CD32E826EB30312EC2B663150B2A + 487F508D276927E703F8667CC06C05CE3C80A68742B35B2ACF3C35460C797E15 + 4AE4518B01DC6D207CC0EC11B9AC0D84D7EE0C1076A64A7EBF02CF6EC4CE006A + B3BC49EE7E06D86F72848D39D764ED376814F550399DC080D32EBB0D3E1F198C + EB79E528BB194F2CFA224E57269686CF8D29F919BF7FD1582FCE87B3E796C552 + 9191FB1CE5B7121D0350BA29EEA229E1EE158C553BD341AC74C5529191538A97 + D9494B037C03B743A354E9C98970B75EC67F4963DB7000B0F10301C293313351 + 47AF0D763A6A6C1B7F01F1BEC428080D72180000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open Workspace' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002DA4944415478DA63FCFFFF3F + 032D01233E4985D8F53780943A5926FF67B8FD6049A01A210BFEABE8589065FE + 9D2B27181E2C0E642468C1CC7247307BDEA2550C497161701A590C0690F9E99D + FB11166C6E9012F9CFC2BC1D186226C816E4DD9CC870739E3F593E504FDA08B1 + 006238CB01597D336D25335B780082807E893CC3D5397E60F6BA233719826CD4 + E1F4D69377197EFEFE83D57090BC76CA2688059B5AE5CEC8E99A182B9959A3C4 + 1008E8952A335C9CE54B960FF4D336432D6891FBEF9092033714D5027586B3D3 + 7DC0ECCDC76F33F85AAAC2E95D67EE017DF017ABE12079E3CC2DC8166400D3EB + 7F14C34140B7549BE1D4546FB27C6096BD156181634A0AD8E00B5BB731BC7FFE + 9C2C03B183FF3B20162427307CFBF881E1F6899B0CD6B18BA962F4DFDFEF18B6 + F5B8DD035BE0941CC3F0E2CE3D867FFF1518148C3C197E7C3989115C0C588210 + 998D1EC42F6EDF62B87E60FF32A805110CD70E1E6750364F63E0126060F8F3F3 + 215643502CF98FDFE2EB070F012DB99302B6C0392984E1F8DA1D0C56513D0CFF + FF5E67F8F7F71341D73332A01792A8EA4FACD9C4F0F5ED477DB00576D15E0C27 + D71F62704A9BC0F0F3F3019CC1803398D07CF3FBE70F86C34B377D3AF7E79120 + D80203773386D70F7F31E8388730FCFE7E89806BF1C70588FDF6E94B868B3B8F + EFF1AD79E40AB6405E4781814F429F4142599AE1DFEF67A4B91E8D0D72CCED53 + D7191E5CB957EB5FF3B8056C8180B80083A69D1F0337FF0F86FFFFBE225CFC9F + 3C4BCE6C3BCDF0EEC507D780DA477BC016B0B0323158FA0430FCFD7A9B0151C3 + E18B443C6240FD27F7DD64F8F6EB1B6F58C3EB2F600B4464E519CC02D280AEFF + 42C010C2967CFBF886E1E092B997FC6A1EEB83830C648192960C8384AC00D082 + 5F38820101180958F2F6F557865B175E4CF1AD799C0BB7C0DC2F804148569940 + 58A3C9FDC72E7EE5C0768627576E44FBD63D5906B3E034903661A01200C6E117 + A6BF7F157D1B9EBD015B40EB660B005F207F859C888DD00000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Save Workspace' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002974944415478DAC5D56B4853 + 611807F0FF2921312AB5D412654116E5872222B1CCDBB45DDC6669B16F1634A8 + 180649178340EA8BB04A8A8828BB10092256DE67DB52D76C83A1A554A6E0050C + FB924405EA767639C776DE2342797639EC43CF97E779DEF73DEF6FCFD8859254 + B48E52C02E44198BC0D8D786B2CC7FD7A9AD15AD8B5A8D34DAFBD1DCD987E986 + 324A10484C4E8B1AF839FB2D38F0B0BA90344F9F37E3D409EDF2A698FE8CC1FA + 1F81D127A551BF4599BA8EE0C0A77A0D69DA1CE3241FCDD921580B05B7CFC5EE + D39DC181E107EAA827D87BB62B3830789F07BA9C1324ABB3B70BD642C1ED73B1 + 5F1F0270DE53453D4176A5313860BF5B421AF3C024C9F2AC8C15F533CB0C6666 + DDA2D0C0B7DB4E00DB6D65D8C3F955AFA1D1948265590C8D4C8065FC60188664 + 9665FEEAA50579E419A3B18B9FA0B78E077A3F4C915CB46FDB8ABAB6711C2A95 + 2670098B3BDAD5215FCCF966866493C9C803969B8AB013C82E99A054AAE10F00 + 75C74303175EF2C01B4B370F941F8A0F0BB4D87F43A650C1E76770EB584CC8B3 + 175FF949B6F69878A0DB200F0B94549B512C2B81D7C7C0501E1AA86EE1817EAB + 199498FF0369B1129E0070591E838438E133BF5CC00D330F386C1650915CCC05 + 3769419102B4D71FE92370BEEB1107E416CA4501838E5E71404EBE0C6E0F0F3C + 3AB90E896B2978BC3ECC2FD09877B931FDDD859A761A9B5252C99921679F38E0 + 40DE61B8681FE9DB2AE371F0EA675237E95330B78454BDF022794B3A59FF38F0 + 561C90955304D7D2042DFAF5C8ADF982A4CDE93028E7C8142EDA832B1D8B648D + 8B91F7B6C881C0A7EDF18684245DAA6427288A42A36E0DE4B553D8989286EBD2 + 1F5870D3888B8DC5B9269AAC713136DC1F39005C5B25A9D8531F7840C7754732 + 66054FB54F262FD7DC8FDD1F825E5B083C7E65FC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Site' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA864000002524944415478DA + BD954F68D3501CC7BF599AD26DD43FB3582ADD24D56A75308A30FFAC4E45D865 + 053DECA0A0202288072F1E3C88B0C3403C78F0E241041141410F1E14B6CB40AC + DA29F6328449DDB4C5591C9D75EBDA35CD92A6CFA469435FD769DB55BF84FC78 + FFBE9FF7BE0F1206FF58CC7F01F41E1D7CC79AB883CD345672F2FB5060EC5011 + E0273B76F7005C7B73DCE50CBE7EFE885060943100BCBB1BECFE6158B8B55323 + 3574AEE408940F2388CE4CD1802E9707ADBE110CED3323AFADD21F9062D55EF9 + A259A91AE36573C73FC9C80687311B09D300E7F69DB01EBB097F0F4799E90BC9 + 2A4835734D81E91CD2AFAE21F6ED0B0D703879740CDCC2C01E937A02543F41A9 + BFD0A7434509486609522290160944996061FC2AE662511A607774C13E781BFD + 6E769579654C29D5685120480A7AE6958A8F5D417C6E9606D8B66E83F3E41D1C + E0D98A5DEB0D410612CB9A319053AA5EB7A1D8F3CB48CCFFA0011D363BF8A1BB + F076B618796A7549D48D332B7F362D57F4D9252C24E23460E3E62DD875FA3EF6 + 3A74802011C4D328645AAFA69F5CC0D2E22F1A60DDB009DD671FC26563F07359 + BFB04635F5E81CD2A9240D686BB7C27BFE314C2D0C72F9C6CD354D3E38032193 + A601164B1B7A2F3E5D977149A17BA7208A020D307366F41FF63505F0E66D1092 + 2CD1009665D76D6CBE3E53A8D20D37144529031CF107D50F775F53B65F12C144 + E8F5A8AFE61F8ECBE3A56E3E129EAC69ED9A93D4D8226AE14B6D49CCD271585A + CB9B51350E57BD00D2C97B8CF6F768981AAF1CD3F2AE1BD077FC444DF14DBC7C + D110808AE82FAA3FA266E9372EA14D285B1635270000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Site color mask' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA864000001A24944415478DA + 6364A03160A48B05A6F65EC79959582DA869F0DF3FBF4F9C3EB8CD126A81F77F + 65753D06FEEF3C5431FC23E71786BB372F319C3EB895116E81A2AA36C3CA399D + 54B1203CA59CE1FEEDABA816C8296930AC99DF43150B42124B181EDDBB816A81 + 8CBC0AC3BA4513A86241505C01C3938777502D90945164D8B87432552CF08FCE + 6578FEE43EAA05E292720C9B574CA38A05BE11590C2F9F3F42B540444C8A61DB + EA5954B1C02B348DE1CDAB67A81608898833EC583B972A1678042733BC7BF312 + D5027E416186DD1B1652C502D78078868FEFDFA25AC0CB27C0B077F312AA58E0 + EC1BC3F0F9D307540BB8B879190E6C5B4E150B1CBC2219BE7DFD8C6A01070717 + C3A19DABA862819D7B18C38F1FDF502D60636563B0B5B1A68A05878F1C65F8F5 + FB17AA05CCCCCC141BCC567D1B4CFF6A5565F8FBF72F920576DE478105B71555 + 9C0F03FF198E9D3EB4D59AE80A4749C3E03F32FFDE8D0B44E9C5A908186CF780 + 94228CFFEBC777D4E0E0E044E6DE07068712A916FC9755D480F31FDFBF81228F + 2E070A6F922DB072F2232AF88EEDDB44960528414400901E44D402001D69BC19 + 62FAB43A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Hibernate Once Done' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA8640000033A4944415478DA + B5956948545114C7FF53966611243161459F2A0AD23E14F4C12C35260B2ADAD5 + 346D264D454D1C172C979282A048AD59646C310A4A2542CC2DD30A73895C906C + C634B74ACD719C7152D3D1596ECF078DC8CCBC79151D7870CFB9E79DDF3DFF7B + EF7B1CFC67E3B04912CA5E1316A5EA7506E22B8DF29EF82BC0CD735E203630B3 + E167B59D6868FF6E01F92380DE68BB91D66E25BE28C729C8401B55DD2737DC7B + C426808D24EBB8CBC1F775C7628705B43F353D83AE412DFA94636850F4CBB322 + F66C6104B091A45E31086232E2AAC09B5AFD0FD42906303D63C0E76F2ADC8EDE + CBB10B602349F79016213C77383B3AC044AD483D3685ECC23A8863F7CF01FE55 + 92FA8FFD301A0D743C83EF8394DC0AE4080FCE07FCAB24A9C15EE6FC34591964 + 89872D016C24E919FA81609E9B852406FD34163A2C422A9F87346931EE5E383E + 0788CBA92699113ED0E94D3601F62489F3F784F39225742C5D5284FBA97E7380 + F3E24A921DC58330A7DA6A716B921CD9C645496939E40A05D46A0D1639396399 + 8B2BE2A3057852A5C0834BA7E600D1B7CAC9AD987D98D01919377A5612A5661C + 09E9D7A1EC69036FD71A08023662A58B1346343ABC6B1E4641710F740E6B30F8 + A1CA512E97CFD080C8CCE744147B0071D24A7B87095C5D178A4BCAE831877A3B + E4E406041D5B6F9ED7518BBC7CB3058DAD2A49534D59340D08BF5144447187A0 + 9D3430166FFFD48184C4648B784AEC56787BAC9E0711086B30ACD279D080D06B + 4F8924F12884E2724640D7FB17D00C745BC4D7BA2E455EF62EBAA3DF56F2F22B + B2733F16D221C1D50222493A01F54F3D23E0AC20141A8DC6EADC23F16EB8729D + CDFEF0C8140222DF0CD28033198F8924D90FF1A2524640F37399CDB9AC8C1D70 + DBEC62F68D26025FFF0A030D389DFE90482F064235CEDC41445828464747FFBC + 83C0943C2249398D24513123A0B7E515B443BDACF720EB8E3C9F0EF927DF2592 + B4100C8F3177F0B9B30357D2532DE2764F915F522E11A7F1ED4A444B91770F55 + 9515F498F53D9805D8AD6C368291BE368C297BE1E3E18AB0A04D7059E108CDE8 + 347D93F38B7AA0544D4A1B6BCA62A86413AB7FB235DBEEB9DF83C3E1C4506DEC + A4DC55D4A3A4BEF7B5841051D3DBF2BADF79BF0039DEF2E14802FF7500000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Cancel All' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003554944415478DAA5956B504C + 6118C7FFE76CAD6DF79C4D34BAA0915C860FCC30E312F2CD3086946E6B452EA3 + C50C9D8D42B3922E24D9F5015B538934480AF966CC90DC59E3960F8DEBD8B0B4 + 6AF754D436AFE30C668C99D3EEF17C79E6799FF3FE7FCFFF7D3E1CCA507A89E0 + 3FC29AB99492EA5386928BE470C61259E25B2D4DB06E8F95066C38D0280096CA + 045C427956DC2080E20662CE88150B5375B357C2F9693162E62C17519E1D2F0D + 58BFAF9E98B965B21C70E60BA8D899200D5857748E1CE2E2C422EFE40DAF8473 + 57CD13B3D1DC88CA5D89D280B58575A434235E96834C4B03AA7292A4016BF2CF + 9083DC72B128AC6DF14A38473F57CCDBCCE771DC94220D48DB7B9A947009B21C + 6C37D7A37AB74E1AB03AAF961CE012C5A2F8F44DAF84B37573C49C653E8713B9 + 7A69C0AADC53A4984B92E520DB5C8793792BA501A9BB6BC8FE5F80D2BA5B5E09 + 6726458B798700A8D99B2A0D58693A41F671293E4DFEA6CA0A7B431DAECC4844 + A525E32FC01E800E639852859F22E1FB405F32A5CFA92645469DD83C5C3FB883 + A096264CB9D38871E3C6E0DAF337A09D9F4336F2BCE397B83254CB548D8F1AA3 + 0F0F0F4173F3DD166AC5AE2A52685CE1F5F42D31D330336204B42C03C76727EE + D89EB676BBDC739480C78F65CF4C9A10B9387274386EDCB3F577F27C2CA5DB59 + 490A8C7AF1F29186DB830254F697987CAA08D32342305480B43B3AF0A0B54DBC + 3875E2D8D9A3460CC7EDC72F4847975B67E0F9B354CA8E0A92CFE97DDA41CFEB + 97789A9688295A15820359BC737C819F4281B0A0A1B8DFF60A9F9C5D86749E2F + 13979C9C554EF28DA93E017EC6F70F765C5DB61031814A8408101002DB3B3BEC + CE2E933079C1EFEF4480CFEA42689C1F31E37219A283590405A8C4B3178293D7 + 5F3B8FA5BBF84D7F0072C48FB001D16A5AD93433347818E3EF8FB64E17FC680A + 91C24E9E38BFE27D774F81C1C59B64018E6AD58B34B47FFDACA040B54A78F7B7 + 3DBD6875F38D3F7B511A75DC048D1AB62E371C7DDFB87457B7C5674019CBBC8F + 61999101348DF6BE7E3CEBEDBDDEEEE617082D4F18CB568C52FAAF99A41A8287 + DD3DA4A3DFA3F719704CABD10F035D13A150504F063C368F8B9FBF19E07FF7AD + 2C5B12AAA0B7850B033CEAF7DC92B5032BC3240B8F9B4C09BFF474B7FBCB3F2E + B5CC16102C876720F50759213CC1676A26710000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003AA4944415478DAB5D57B4C13 + 770007F0EFA13250D41012E32B9B2EBAF8C79C89C98C7F60A4ED10712082CF01 + 82D5A98D8F10DAF868A1211A8D5BE2D0D916019568966862D44423CA743E1215 + A39B5A05C1F8A42A28A8A5BDB6147B8F9F7727A53BB9969A65D7FCD2F6EEF2FD + FC7EDFDF35A50821F83F0F4A04288A8A7893BEEA5214B3A0EABB599256B156E5 + 0D9E91B2A3057E5B9582708B154F9FB8FA10D79B5FC990CF06182EFC42EC4FDA + E168F708486B8390AEAE5EAD7A1B1688A6922F470C8336ED3BC40E8C91BEFBDF + 07F0B8CD8596761AD79B5EDEDFA5D37C1B1188A692FAA636109EC3B6E52A61F6 + 6E5C6B6AC5FB008B472FDE60CFBA5954BF4034953C7DED4641EA640CFE622078 + 21EB1DEDC7EEA3D7602D4A0F0186EACBFFA992FAC697E038563ABF45AB464975 + 1DF6EA33E5407F951C179F9208959416A4F4DE6FAE3A83AA0DF3FA02D154D222 + 04E7FFD0B7124278E9BE526D2ACC15A7B0DFB82004E82B2F92729D1ADD0C1F16 + 8854C9CACA5FF128A6069A0959D0CFD88132DB49D4942E0E0145B6F364F7DA54 + E8F75E500C57AAC45CA892AE5D75FC05C39942244D4880BBD507CD981C743524 + E350595E0858BFA78EFCBE7E36BCDD9C2270D8BE0FBCF0CA9DB24A5649076787 + 1D16244D1C86D82103C0F3041D0F3A91E89E8A1BECD901A48CF012B066D76962 + 29CA4071C53945E0B4370F4386C76344570A8EE96AA4A744AD8981E9FC0A8C9A + 9484D88441C27E70E07871F01212F004AA9E199D3A09D0ED3C492CC573E1EA62 + 158169B69198AEFA1EF76F3723737C3E1E34C4E12EAC1837790CE21262C189E1 + C2E0F98FEF3E975F449C2D46679204ACFCE538B16DC881DE7A5611A8F52FC5CC + 59C908B00134DE6A82CFEBC73753BE46FCD0B88F33EF993D4F58F8E82EB4353B + C1314C468BC9592B012BB61F25B68D0BF1CEC72802C995A3A0999D2205314C00 + 5E9F0FF109713DA121C0437BF1BCF13526BAF3F1E7F6F2D0266BB71E21B6CD8B + 61B0D42A0275CC32A4CD49ED096265A15235C2A05D1E3CBEF78CE1183EDB51D2 + 2905F50205657F900A531EDE789457A0DE3F1A3F66A4CB02839FC5E1EE74A1D9 + FE50162E03F24B0F125BC9526CB49C5204CEF13F236B6EA62C34B8A16E9A86FD + 6683D0399BF1EF7019F093F100B1990BD1412BAF20FDE058E464652B561310F6 + E4CE3F778555B8CB1D2697411158B2691FB19AB5612B9A73682C16652FFA0460 + 7BAB129FAEDB7FDBFB203200118E1B899B913B3F57B1FF60552272EBE61D01A1 + 0D0E93B35C06F4F79FFCD58EC42B14A864F4731010F1975AEC30765A83C00782 + E327FE39CAD0880000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003584944415478DAB5956B4853 + 6118C7FF679B05E12EF6A1A220A5C020CA2842EA9BAECC822E66454566CCA8A4 + 0BE642CB54BA50107433B7595E22CB2808D45C73A951F6A1D40F593353B33435 + D3B255EA9C79D9D9DECE39B59D4DDD25A2E7CBD9DEF3EEF77BDEFF7938A30821 + F89F45B1028AA23C6E526657FAD00555354C93C8AC03E166FB0AC7F65570716F + 18DC1D965D2E7AF60ED54D9F5D247F2DB058DD1FC4D0DA838E9E0146D255CFD0 + E539FBC2BFB915F812C9EC6912282243304924E0BE0F8D8CA2A5BB0FED3D2654 + 377E6AB81CBF628147812F9154357683D8AC381317CE74DF8FE78D5D1819A5F1 + BED388CC83AB28AF025F22F9F0A51FB1110B3165B2083686F5DD34848C7BCFA1 + 4E58C30B8EE43CFDA748AADE7C82D54A73EBA71472A4E694E1AA729DABC05B24 + 85EC947888242D36CCB13F3D5B8FECA4A8F1025F226967C0312BC74742888DDB + 97A688407A961679299B7981F2DA1372295E8E618BCDAD808D44AD6D467E793B + 07F65A84AA692BD8B09C1324681E918C0311505E7D3CE15E7B24978A1AF0A2D5 + 8A254B43E127124220A020600684BBFEF92C14FC1E98C2E2FB68BB1545718243 + 9965E4CAA1D5300F5B3D36C5767EF6CE6B3CAA1BF02A7111ECBFAC23AA84B548 + CCAAF07A72764AA24FE8D13B22F528B95F52C20BE22F941055E27AF4FDA4BD67 + CB54FC793DEA3A858C6019A45209D854C64AB45A2D2FD873AE906892A2A1543F + F40A97872E4272EE4B2C0C590A5940000F1D23D1E91EF082DD67EF114DF2167C + 1FB47884573718917AC380E0F98B2193C99CE0E3257ABD8E17284EDF259A635B + 714455EA166E3411183A290E2E91C83890D0093E681E80BFBFBFE399943D2CE5 + 05B1270A48D6F11D300E4C7C829A46234EDEAC43507008C412A94BD7ACC46CEA + C76B432D118BC594FDC15794EB79414C5A3ED1A4EE44B24A3BA1A0B289C2ACB9 + 8B20954D65A0708966D06C42537D2D68DAB296B92397C90294ACA4F271392FD8 + 9E729D68D277E1AB69E213E495BE83BEF607E6CC0B81482872487E0E9AD0DC60 + B058E9D18D1DB73771F906C6145F64257D7DBD747B41941F27D8763497A8D315 + 6E23622B57D78CB257BD0EC910036F79FB8A81D30EB8BD8276161F66B0AC40ED + 10F832FF1D267FF45333307D66103EB6D45B9857F438B873F9FC9FEC5C813145 + E7991FC431EFED584F70BBE0176C843AEF991070580000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Speed Limit' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000056E4944415478DA95957B5054 + 551CC7BF67EFEEF2585C601105C451414BFF30424028057AFAD805D141C132B5 + F191A64E31DA90844822866110992FF20913060A3284A0965A486AF2102DCB71 + 3435D0954681E5B1C03EEE9ECEBD202BF1183A3377CFDD73CFFD7EEEEF777E0F + 8241865FF04C7789443A8F52A841E04D40DD292576ECFE1140FF2420272D1673 + 6175F99947036990818409E1121D1C142BA6FAF9724153FD31DAD303CE4E4EE2 + F3269D0E750FB4F8B5A20A15D5357C5B9BFE00A5FC96FE407D0001A1B3C3A59C + 3C674ED8CC619111616010EB66DE24CE9493F5ACE9DBDB915F588CA292D37ADE + 6C7AABB2EC54F180808050CD1A2747E5AE84B80D64BCD738410A12ED6F20B5D7 + 40EA6F83B6B6024633A8C40618E10DEAED0FFAFC54A64270E7EE3D6C4D49A3BA + E696759565257BFA00FC82351A95B3B2F88B942DC475B80B246D5A70374E008D + 5A5013DF256C3003ECA2EC1E46BE6B7674070D5B097878E1F193067C1497C820 + BA88A79688808000B51BA794DED9919CA8F0F61A0B89EE36A4370B403B3BADC2 + C26C265D007DBB754D80582440540C30C90F7FDDBD8FD88424BDB9D934BEB2B2 + B45E04F887A8F745CE0D5BB57451348CCD75A83C918169139C20B750500B078B + E734583C7C40ED9DBBCC6E6D046E5E06CA8B405B98DB988514529035C980A717 + B28F1E13CE25B3EA42E96AE23BED4D0F4747A7DAFDBBD33985BD3DE4F772F0FB + B51B883F5485E8D089085F1E0F5B67B7FE6350F718389C0CAA7D2042E03E0E24 + 361DFA8E0EAC5CBB9E6F6C681B4BD8D7AF7D2D74FAAE9875ABC075DC87EC4191 + E8F3F29A7FF0E19E8B50281C10B5603E16464741A954F68534D483EE886101A0 + 172192B589804F20327665E27CD92FEB04C099F8D8981981017E90379D83A4F9 + 2660E66156FAA1B0A2195B93B7893A767676981B31074B16BF031717975E0C5A + 94057A32B7CB8AA0D72159FD312AAF5E13A2EA071210A2B9B57767EA731EEE6E + B06DC80531EA44806164342CF2E13874F808F6657ED3232697CBB1F3AB2F31C5 + D7D74AA8BB0B7ED32AF69E0544351292AF8F42FBA81EAB3F88AD25FEA19AD6BC + AC4C07E10BED5BB259A418C58D9DAECB4089547C7F475A3A8E1FCFEFD153AB67 + E3D3CD095680D1007EF12C509E01A43270B967D1D96940F492951001C7B2F73B + D8DADAC0DEC0CCE40DECB2A0C3611103C8BB5CC08A51DC27F138FFD3CFE2FFCF + B7A7E0D55742AD808E769817CE10DF233676E00ACE5901CFBAC81EA52016E622 + 0BB3809B019E8CE8D1E0791E172F5E82ABAB2B264D9AD8FB0CFEB80E730C4B36 + 16D664F418488FE45B5DC4CAC38F9B36AE7F2360CA8B909B2B20E56F09990F33 + 3701062E0843197C6A12F8A21382A9E0221782DB1087EA9AEB484A493BDB3B4C + F9C7B0692B163732FFC0304C0D5EEA36A838ADAE82F1BD7745AB850F93657D07 + 32D9C71AA62F04CEF67456296A0FEDCD20C241DB349D8284E583E04F935308CC + C3260F0AB0E4E7C2FC59123B605618A78740B63B131D2CD196BD1F43DB5A7563 + BB4B85E6C0FC7961CB97BC1DC54A723B6CEA72C43C30ABA60CC94596BC6FC167 + 1F842CFB38E0321C397905C8CB2F3A5875A164454FB1933ACAEEA46EDD2C163B + C277B29A6F3B24F19ED1D20C281DFB2F76A215C1EA0895CAA9306D7B12715139 + FF3FF1EED1D0D8840D1B37D327BAC6C8AB65A70B85B55E0DC73F5813A35239A6 + B3A8EA6E38431F42C3D9969A411B9E34ADAF2A2FC978BADEA765324B226536B2 + AC08CD2CC58279E1620D1A6C080925B4CCC293A57A93C1B4B4AABCB4E0D9E7FD + 367D9F975E1B2593D96D5128EC960505F891A040D6F447B1A6EFDCDDF49B58D3 + 7FA8C595CAABB87CA592F59FF623266367C2F5CBE71FFE57AB5FC0D3E1FBB27A + 0CC7D17048C81CB6751CA1F010D6598A68D9EF3D96B9DFF33C29AEB954FAF740 + 1AFF020DA279C72075AE730000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Bulb On n p' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003824944415478DAAD945D6C53 + 6518C7FFEFE939FDC0AEDB64D02A736BB79EB6B0860425236E6816136F9640A2 + C8623499CC0B3510021744C30D0CAEE4C2442F34A817EB881FF1038D51C38D09 + 1F5340C7DC34D9BAF6741BC50D0A0CE87ACABA9D9E0F9EB6CCC086761D7B9227 + 7DCFD3E7FC7FE77D9EE77D996118986F8CB1FB9EA321711B65BD4ACB8DE44EF2 + AB30D89F06F4CFFDF1D871D6097D2E77BE1EFB3F80F499B75AD7B8AFAC76B5A9 + 628D025B8506935987A670C84C99909C30632665FA83E7B4EDF5EDA3974A020C + 76B95D3C27F4567966AA2B3D5580FD15304B23605A05E83780D90B30E42F908C + 27707DC43AC933EDA91C64D18048C8FB6B55DD6C73A53708E6D8494133169A02 + 23F5299223FDB82E597FF7C5A5261C34F4A28068C8DF6AB1AB3FD76CB28295EF + A68809FF6D1A8CA9A3F8A757C64C9A7FD1D71EF9BE38A0DBF7A5D39F79D9E169 + 06847A14B5EC18E4780F1261DB4FBED7A25B160390DC8D69AF50D94419D6E200 + 64A1267B3076DE7E99006B1603B851D72C3F6AB279E8895B048034B223904E3B + 7402988A0222DDBEB86753BA46B0CDABBD89A689B317A0FA347992B4670A9D98 + 55317AAE6C9200AB8A02A46EDF0FCE40666B99337B374282829B002E5A3AE82D + 9EC4D3A47A0D50C7699D827C4D28A107C7FC2F58CBD4EF9ED870BB10E01F2780 + 370F611CED82713048342FAEC4A83C318C0FD8309DE4DAFC3BA46F8A02708871 + 925BFC6B752013743835C0BC8E3C4047C147B01A7ACB42E2576090309461C8E3 + 83480CEAD1CBB5D50D2D2D27D5A280DC411B3A561F1438D657BB5135F3E50D79 + 083307E9B7A1502665907C0859B91F97CEFCAD68596CF677447B4BBA8B8643E2 + DB2BCAF523D58D541E4B0E403B11C4C2E8AA633066C39838FB23A627E5FDFE8E + D8BBF9792A056074828BBAC55355E223CF548A1BA8B7D468DE956B0A35F6266E + 46CE60321CFECD7731F6ECDC8D5A122067E1AE809BE735C9D352C37316AA3F57 + 919F225DB985B15F7A545565E2DA8EE18BFF9E885201398B84C4706D230266C7 + EABB63CA41494D217EEEEA304DCDDA7B739704D873E8E3078C5AC13E38F8E67D + C94B06BC7FE08D05797B0F7FB27C80D7DB9EC7CA8A324CC9D3794FA56FE3C4A9 + BEE503BCF3D64B0BF28E1CFD76D900579E0CD6BB9E7B7A3D7D7926BF8381A111 + 444627120478ECA1013B3B3F74098CCFDD319BEF095FC81AEA968F3A77251E1A + 3067DB76ECFBDA80B19DFE3E71BCEBBDD607E5CCD7BB03D222CEE0951CA9E900 + 00000049454E44AE426082} + end> + Left = 31 + Top = 16 + Bitmap = {} + end + object SessionImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + Background = clWindow + Name = 'Compressed connection status bar indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001EC4944415478DA63FCFFFF3F + 032D0123C882C64646262316D9FD40AE1DAAF4FF43E7FE3C766C6860F8179254 + 9E2B2C26D1CBC1C9C58ACDA01FDFBFFD7EFBEA45F19A799D93911D0DB660638B + 4C889084F86A236F47144DE7B6EE67F8F0F275805FCDE38DA676DE7719181994 + F0B91668EC9D3307B7AA6258B0B955EEB28997B98E80B8208A860F2FDF339CD9 + 760ABBD719188EF9D63CB206B10D6DDCF55998592E80D8A70F6E65C46281FC7F + FB203D92C2F6E0BA4B0C7E358F1861FCFCC699FF8FEDDB84DB02722290240B7C + 2BCF9064F8E67613D22C70CDAA67F8F3F3013CBA1819903DF51F8A19E0F4BEB9 + CB48B420A388E1EFEFA750FD080319510C46B0F7CE5B4FA20569C90CFFFEBC41 + 7329820DB6E83FC2077BE66F27D182946086FF7F3F63311C9B8FFE33EC9E7F80 + 340BACDC7519FEFFFB8566283A1B21767CF71DD22CF0CC2EC66B20033C8820EC + EDD3269264C127209B978124F0FF0BB00801EB31B6F3D2B571F6BF84D3024646 + 4682C665564DF8CDC6CEC9824B1E6438CEB288180B0CEDBCEC5818191700998A + 3894DCFEF3FF7FCAF943DB0E9165013A30B5F7069B020A128CC01B791618DB7A + 65303231B6FFFFF7BFF2ECE16D33B05980ACE6CCA1AD3348B20068D86B202502 + C47F809885013F7873EAC016D1C16501D4FBDD40EF97C282089F1A8C20A22500 + 00FFACB8E0F96602540000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Encrypted connection status bar indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003CA4944415478DAB5945D6C14 + 5514C7FF77F66B66BA6B5B42FAB1B21DE802694C9528AC681AC044A0DB402BC6 + 8021064D5542343CA82131B1544768F409F5058DFA223E1913543E1295806930 + 56A229A185B82B2D4DBBEB6A674B696B573BDB999DEB99D9A6A9D8DA81849BB9 + C9CD9973CFEFFECF3DF730CE39EEE46073018CB1FF381C7F6D69B54F96F6D3B2 + 853C14F2B068C735801F2F9893EF3FAE8E8FCFF5BFF9C0FF0B38D1B1EC29AF07 + 1F2AABAD92B0622118E2B00A0C13630C99410F4D365630B17BC71BE96F6F1970 + B2E3EE3D5289F0E9838F18C84D0818480A981CA7FFF49596014AD482E0017A7E + 663C9F17B6EE684F9D750D38A146C25E11030D5B8CC0509F0743FD9E8405AB8D + FDA99FCD09B23714E471F27E7B45942BA5E504E9C6D894A1D7EC524772AE0027 + 0F47DEA9ADB35E0EDD659F50B8A29BFAC3F6E6B91B4FA9E1A5DCE7EDA9BF17E1 + EC30A069FCC063EDE923EE001D91BEF51BAC95BFF4DA69B11E6D69CF7C375F85 + 7C75A8E6E925E5385655C9F0EB55DED57C30D5E01650D8B4990BE7CF09E83652 + 3E5585391FC04EA55F6499BA55022E27ACE19683A9EA45015FA89515921CD0EE + 5F0BFCF423B2B4A9120B0CDB571403DA2AC58BC435D3F15D1440A7BF4CAB7ADC + D6E0DF34B7A59A16047CF9665585541ED562DB5F71CA114205F8F0AE7902517D + 0A7E4C1742C8F6FEE5580A10F1FBC864B6B96DA8725140FC858F8A06DF6AF0C1 + C8BF63332F4D916600BAB904E9F39A6336508281DF6EB801D46AB16DFBE048F0 + 2E27054FDE14DC4F0B9ACC5754D0A3DDAA82155A7CDF113B3F40E001525033E3 + E9C7D7DF8B90253F36AD971C15BA598E74671276F199828CFEA131778058D39E + 22C07F4F5101053F73218057DF131CBF8F5519EBEA6547C1F59EAB60642E0822 + D2999C1BC0722DFEFCEBC574881BC15375CE694F77FAF0A26A387E9F7F701F1E + 5A932705A518FEA10B8CEEDC643212C9093700458B353E0167977F1DF8C85E47 + 01A7BC6FDFAFA3BABA0A9FBCA5C0CC6BA440C678E2E24C8A02181CF8DB05A04C + D1E2CFBDE45C22E46DE0998699AA11D1D43A8A68B416470FAF042F5C876E8430 + 7AF13404C1AE2219BD97DC5C72598D16DB4ACD5220406003F8E881D9CA39FA59 + 1E61652D766E6630F52C299090EBEF74DAB64155D49F9C72038868F1D6679D87 + 8492DDE07FB4CC2A6082E4942EA053DFB748411093578E919DC360417477B9B9 + 6402C4B66C2CA6486A04BF71A8A8C006C2E73C30E71FD9A64D11F9D4293B0A75 + 4309C95EDD0D6099167F662705A440A1BDE0D9D6D9970B26CD59537043C654DF + BB94228E690471E1DC22973CD3EC2ED16A0D6E6BF033D4EC1A1704DC89F10F0B + 4FF4E0EC75B2BE0000000049454E44AE426082} + end> + Left = 31 + Top = 80 + Bitmap = {} + end + object QueueImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + Background = clWindow + Name = 'Download File' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003924944415478DAB595794CD3 + 6018C69F254A2062BC635462BC2326FA9F091E89784C40D1651A5110307810E2 + 440218145088570C46D0C906881251FFF088A24441BC4D3C5014C10341C5E814 + 0D4C655BD9D858D77EB6AB08956D4513DFA469FB7D6F9FDFF7BE7DFA554608C1 + FF0C190F90C96492894947EEF46625F76D0E84E4A9E69AF91BA7F6DF00B26303 + E1AE607EF8FCBD3778DCD0FCD0E620413CE49F0034E3BE90DAF72DD0B5B4A1B2 + FECB53AE849023B181DF7B0D48CCBF4572E2E6C146B36E73AC1D76347E35E263 + 0B85CABAA6975CFEB45E03366BAE93432A39E2D5E52EE7B3E2823961131ED635 + 718B60D0F8F91BD42AB9ACD7804DEAAB441D1F0CB38DF198C7727A3F282B0E9D + 7B80DCCDC10220B9F0AEA443AC163372134291905B2E958ADDEB1722BDB00279 + 89A15D0029876CCC2E8526490163BB4312C0C7F68232146C5188019E1CA23A70 + 119A2D4A2469AE4A8BC7C891917F19855B970980A482DB920E51ED3F0F6DCA0A + FCB0D03DE62A3FDDC4EE5BF158EC1F0E554086732C437B0945E9610220417B43 + D2219BB2CE42BB6D2552F22B44737AA616D58C1A4326F8C2F4C58251B605285E + 5B844C4D098E67840B80F8C3151E1D72F6C5719CB9FE08A52985F8D6D65541F5 + D77B48BB11852193FAC3AB5F1FB02C81BEC100C5D8B568AEF2C7C99D510260E3 + C12BC49343CAAD6BD06F800F94E3A3D15A3FD339D6CA36E089231B23A70C8297 + 6F5F3084E1000C18967542861966E1FE8E0B0220EE4029F1E490E99AE108983B + 1D75CFEA21F78BC08CD141C8BC138D119387C2DBD7CB29CEF0E23C843B2C462B + 0C0D1D7897DA240062B34A8827879459A33067E16CD81D76BCAA7E0D6B7B0726 + 4C1D039FFEDE4EC12E800316AA1DFA37468C3344A0624FB60058B7F71C71E710 + 3E66178CC0FCE040A7104DDB61B658E0E3EBED14ED0E68A3CCF8F4AA19134D91 + 18484FC699AC0D022066D769E2CA21DD2B085A24FF25E4F863D5028432B6A1F1 + C5079AA159A52EDD50C63FF77BBB8ECE3C45F2D2568B1CD23DE61D1B89C5A121 + 22C1CE6BFE30198CA8AF7D2B12170122B717136D7A14B77F5C735B8162E91291 + 28FBEBDA4451A8A97A4E589A5DD25D5C04084F2D22DA1D6BA0A75C571052EC87 + 650AA5CBD6D8B97752F3F4395785294797664C760958B5F528078881DE4D8B16 + 9DF0439832AC87633A5BC5BBEBD993DA1E1011001EE2F1A06D88581EE1B2FF9D + ADE221D555351C844AD6A5B5E68800523F9C31FB065772A700480401E1BFD444 + 5DAA41D309F8090EEBBAEF14F7302B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C14944415478DAB5957F4C13 + 6718C7BF9DD0C1A81B1A978D856CD94C0798A97F18E3E2D8C6182A8888B04D37 + E4876052D908638385F1CB2C59DC4C930D75B66ADCC858547E29264BA6624CC8 + A282883FA0324010A31D755B41697BEDD172D7BB7777C55A6FDCADB264EFE54D + DEF7DEE7BE9FF779DEE7794F4508C1FFD9542240A5520535ACABAB7F949D9CF7 + 78E894A2A2229738F169CF06505090078EE3146D86866EA0ABABBBD3E371AD11 + 21FF09E0F57A156DA6A6188C8E5AD0D979A1DBEB9D4AD5E97477670D605956D1 + 26343414343D098BC5828E8E0B7D82FD9259034CA63ED9F5B8B818C9FCF0E146 + 08F6AA5901F2F373C1304C505BB11D39D21400941DFC3568863CA19A42CD9624 + 5C1F18082A1E13A3454343B314F0AD2E014A2521BE3E766E18569B0BB9893150 + 873C1614D2D8D83213C072CA8EF4DEB4C26C7562F8772B92629FC4E321CA61D5 + 6A17A2A9E96800507AA09DD41626C2C3F28A1FB985141CF9C38EDB560A37EF4C + A0386DF183B5B3B7DB5179E613246BD35093B0032AE1696E3E16009418CF90DD + 45AB50BCE7A4ACB8BE30591076A0B3DF226C82C3C8E8380AE29FF5AD5D1EEF82 + BEB706910B3570DCA1F17A6412766DD88FA32DC70380E2EFDAC89EE264B83CF2 + 55DA7CED47B03C83ACA53ADCA3DCD8DDD281AF0BE271D6DC8ED2D3DB305F3B17 + EA8810F03CC1D8751B529FCFC42B775704001FEDFA85EC2D598792BDF21E9C74 + E721E2A9703C4DBF81D60FEB517DB00DCB16FF09BD693BA2621740AD09054738 + 01C081E3791F6419FF1A1A3E6E9D06147EF3333194A6C33E297F0D2C373C8357 + DF5A8EFEAB8358FF623606FBC2D03F671FA21745214CA3F68973A2B808113A6D + 77C37983C160F9E83440A73F4E0C9F65A0D4704A1670C29D833757C783F132F8 + EDCA0068971B2F2F7D09E173C37C82018017343589F1213B322372B1B3503F0D + D8FA550B3196BF877BB4FC3D137F200A6F2727F8845896818BA611AE09F3893E + 0C70522E58FAFFC2BB9A2DD0AA1705CE20FFCB4662ACD884F2FD6D8A1EAC59BB + EABE90F71FBB9E8650762746AEDD623996CF3057DB4EF80AD47F5DE77E7188EC + ABDA8C71A7BC07893F3C87D475291241FF58EC0E9B1D83BDC312710920BBA69E + 18AB7384EC38ADE841FAFA3489287F7FECA028F4749B08CFF2690F8B4B001F54 + D611E3F63C8C51F21EA4D44723333D4336348C70263D974D82178E5A7395BD4C + 16F0FEE7DF0B807C8C298468ED4FD1D898B17146C6F8432566D7D54BBD332012 + 00FEA55D9C5781AC77B264E3EF0F9508B9D2DD2340A83273D544AD0410EC87F3 + C2CE791DC205B612411A01112BF55373A5CDE007FC0DEF14B7EF09AE575F0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003544944415478DAB5956B4853 + 7118C69F79F910B88B7D09EA83526114B14A86419F2AB01482B4888A56218548 + D3CC255A69178C2843CBCBE6AD82EC4A61ADD99C736106D90D2A5773A6B450CB + 24B72EDB71D3E52EFFCE716C73B5792CE8FD726E0FCFEFFFBEFFE79CC32184E0 + 7F16870170381C56A1B4BE63262BE974B8905A235963632E26BDFF06509EB91A + E11A666E373DEEC38BDE2F4F1D2EB29E81FC13C0E90EDF88EEC308064746F1EC + DDE797740BA9F599ABBFCE189057DB4ECE65AD85C3E909AB19FF3901E3B00503 + 23149E1986F4B45E3863C07E99965448929153A90EF9BC342B8536B6E2A96188 + 5E841BC64F66544A923933066457B692CA9C14D81CEE69751EDAEF1B358E8ADB + 4F50BD3FC50B38D8F0883521E3761BAA733720B75ACD26C5C9BDEB50D4A0414D + DE8600802D21FBCA95904937C232E6620530555CD782BAFC8DC180E912222953 + 40969F0EA9AC95DD3C2319C76AEFA3A170931720AD7BC89A10C9D926AC128970 + FAA61E6E0FFB3BC79F45A0AB4FF70272E50F5813925D7A0B498922D4B70D2351 + 9484E8A8484444701041078439464E3967EA8EE21EFAAFA4790139551AD68464 + 9FB9819A233B50725D0F6D9785151204D8775E45D81262319B202FDA49A7A30D + 3D436E7C77F0A6852894CA0020AB4C49D8129273AA11F2A3BB61A29CE8EEFF81 + A28B5D5896B8127C3E0FCC547E87289B9B0380CCD2BB842D215F873FD3800C3C + 7C6BC289C6374858BC1C82D858BFE9EF1095EA7E00B0E7D46D222FD8826F7667 + 58C0C1D38DA026A2F1DE3A1B8B978AC01708A698FF0951AB55014046C94D223F + B41505B59AB00093D503DD00C1C2252BC0E309BCB39E626EB78D222626C6BF27 + 9AD6960060D7F1AB84498879347407CF7BCC9363894F1082CBE3FB8D7D101B65 + C55BDD2BC2E57239BE8DD7B6A9030071F165E24B48A8D2EA9C98B740488F6536 + 6D88A0D18CD92818F4AF9D6ED7443AFD64AD40102B65201DED6D01C0F6C39788 + 2F21A1AAFA6E0F3ABA29CC5F24445464941F3266A7D067D04D9A0F5EDBDCC268 + E3C48A720662B1FC700D5C4D8B9E046C2BBC40988498C28C88F908563475A3B3 + D7E6878CD3E6C6DE2EDADCE537F755FC4EC5010F8867F04A7A951F00966204FD + 162E6C917330676E3C3E1AF54EB7FB4FF3E085FDC53FD95B2722E2C4CB64B47C + 3B211EF174E63EC02F538902EF19AB4BE40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000034C4944415478DAB5D5794893 + 611C07F0EF3B2D10DC6107417F6414148659D930E8AF122C03A1567F74EC6A76 + 499695094117DD966165CE3310B2B2E86035B799820445B7E5744E67ACD232C9 + ECD8D69CBBDEBDBDAFE5EC4D5FB7821E183BDEDFFBFD3CBFE77DDEBD044551F8 + 9F836000822042166697DD0B6326C423B79F5A5A9CB9D8C97C1BC8FE1B207FF3 + 227035CCFC7CF3413B9E5A3E06917F027C247723C6D73DE8ECF98EC76D1F1AE8 + 1696956D5EF4396C6057493D752623196E5F80B3A6DFE385B5DB868E1E071EB7 + 7699CF6C498E0F1BC852D751E73253B0BDC030E2F15319A974B01D8FCC5DF424 + 4858DFF7A2203385081BD8565043156C4F85D34D8E5A17A0F3BE38FA71EEFA43 + 1466A5FE042A2A2E86DC210DF6F128DC91861D858650A538BA7109F695DF45F1 + AEB421203D5D0992E49E5DE6591DD4D9CB6173F94302CCD85FAA4769CE7236E0 + F7739FBC355F0B758E04D9EA9AD0E1AA141C2CA946F99E956CC0E7F3719E9491 + A7C142B118B9574D2003A1EF396114056399840D343599462C8E8B9B892D276F + 2129518CB2DA6E248A93302632023C1E011EBD4106DEE957C4AFCFCCB8A5B98D + B7952B8600954A01AFD7CB39A34D27AEA378AF1447AE9850D7680B898C083437 + B77002A76FBC40D13E39BD3B6AD1DA45E2AB5B302AA2B973870DAC5F2F87C7E3 + E104D28F54A1E880129F1C3E3CB3F4E268A509F3E62F80502800B32A7F225AAD + 76386032993981DCAA2734A082FE79378ED3CB342B3E11A29898A1D03F109DAE + 9A0D289532B8DD6E4E6003DD81CD331656FB38CC9A3D1F4291E8B7F0E188C1A0 + 63030A851466731B27D0F0C6853C5D2FA6C7CD85402042048F1DDEE7FC8EE8E8 + E8E035B95BA31F0EF4737470BFE533765F3023764602F80261307810713AEC68 + 36BEA0F87C3E3178E1EB6A0D6C402E5F87D656CB8880ACA80313A6C4D3CB328E + 0E046B695C4E07CCA6973ED2EF95D0479245A2986C06B9575FCB0664B2B59C1D + 1CBBD60EBDD18969331310191119445C7D0EB49B8D03E19D9757E999DA589926 + 9F416CB66FFE8E4B2BC60401A9740D27C03C260F575950D7E20A22FD74B8D5D2 + 4887FB83E18363AA5CB333002AD05929391FF6DF3553506D89C22BE7444C9A3C + 15EFAC261F490E0F674FEC2F9EC93FC7215EAC6C8E1A0456D313548C163E08FC + 0083BE02EF38440C260000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation needs user interaction' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002524944415478DAED955D4853 + 7118C69FFF6EF2362A34D38AEAAE9BBAE803A29082F0A2502C31BFA6AE7442A2 + 59A779F6A5AB595AD6CE2E926D21AE5936B7968E5DB89B8ABC08211222A2208A + 102A4B1B6BDFC966FFCE4E288D81D3B1DD44CFDD79DE97F7779EF7F07208A514 + D914F90F480968BEE9CA2A8148FB9CD4C094201ACB3CA755EF0269BA3E468D17 + 4B311FFD9571405B1CD0D8FB901A656588AC12E0F505601E71E1C5CB37F0F983 + C8CFDB80A345FB71F2D8111042849E76CE0972A6C7418D1D27109E5F58F1F060 + 288CB3F26B98F3787170DF6E6CDE9487A79353F83C338B92E222486BCB84BEF3 + 7A1E70FA8A9D9AD87204798054339872B8492381FBF133F49B6DD8B36B27BA18 + A9E07FF93A8726468B9C9C35700CF409DE056E1444D26D1300819F2B4FF061FA + 13ACA36E482A4B85D5C415871A2C7614F269FA7BE482C7E87940C3652B352A2A + E08F2CA0456B4E39FC96BA21C973BA9F60C8E612DE5ECBB660FBD642C197710E + 90BA4BC3D4A4A8842F125BD5475ED4A3894918F875AD5FB7166AA619051B7397 + 6A32EE0188B8EB1E3529ABF0231CC3B9AB77520ED42BEA139EE55A0EEF3F4E83 + EB96A3203F37A1D6C1D9416A3B87A849550D6F28BD04B6B171F80321348ACB93 + 6A2C6703A95159A8515D2300985E4B52D30DB66E59C0F3A95798F9368BE3C587 + 21128912D3E94640AA95661E208627184D2B81B45D85107F171AB60D3BB66D49 + A829392B48957C901A3AE380F456F4FAED3B78F8833B7460EFD2052F4AA5BB0F + 728A1DE001F56927584E2ADD304885EC360F90E07B16006ADDDD3F808C4FFE4B + FFC02F33DB80DFFEF002E2BD4596B30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation has some error' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003944944415478DAB5965B4F13 + 4114C7CFEC2EB494EE8254244800A3949B803110F1C12F60B1103F80464C8007 + A3017D51E48144455F14A32F5E1231FA010CB7FA057C1003310242B168B80491 + 6011762997B217CF6CBB755BDA601F38C96467673BFFDFCC3933E794689A06FB + 6984020821713F760364DAF8F406FC450301721C08E4EA1F3458D440FB4A40EB + DD9002BD6D00ABF1E6EBDAF1009D00D65C9EBF86C31D390CC36763278361C012 + FEBE8D6D4D556119E72EA9AA848FBB8B92F404E76DED09786AB31D4EE5D8DE43 + 84D494701CA425D89D619B38DF2BCB14362C2BAAFB4A20F02B21401767994F4E + 8ECB2B64D9A47C3DAB28E093E585A0A29EBABAB1F1731740778BC07F2862D9EA + 8224C50D9B43C8B4A28C2C8AD219EAAE28C0739EBF799021F72BD02DD4AC9595 + 907DAF0B14BF1F966E5C076565254A8CCDCA829C878F80753860F9763B6C8D8D + E9E3E3E8AEDFAA76AB45921E44008F09C94C17F8B91A8EE3AD61771D19F4405A + 6DADDE0F4E7961D6ED06390CE150BCB0BF1F524B4A4371181A82993A97DEC765 + C3B02C4B01512A68D5B4551DF032C37E218BB06F4AC3ABA796FFAA0784FAFAC8 + FB36426610A2C351DC1216A726F6F5C1FCE5C6C83B0DFA8AA65C6C5A5B7F1B02 + 08C2A093635D0E3C8A86D1551E8D110A4EFBF4676A91330AFCC3B43B6A7E3CC2 + 53B232D0228A6E1DF04210A64EA470C5D698234921453110B351F1E91871C34D + 5F76E46FCDA258120264085235C7D99938679E428A3D1EB09856AD8BE36EBEB9 + 5CBBC4A9A9A83922CBEBCD6B221F019C64D9848052CF7BB03863003E1F785D67 + 13023E2B8A09802E2AE7D8624B1C1795F50F80B534BE8BB6BC5E98749FDB05D9 + 46CD0959F9E7221AE47C9671659A829C82E2E5289E6612DFF285826C35ED6613 + 211308D931415631C8F38AEA6912C5BAC831E5F1989A6F7049CF6B70988E2915 + 1A47216A1531603F1ED3A9C64B91777AA325F331352E1AA6093E25ECA62A0CAC + 507B5AEF6FA0F898699574779508B18521E2D0471875852EDA0EEA61BA88BE68 + 34553CB3DB3B0486DCC90BEFC25E5905C7BABA50D40FBEB6B628171810677737 + 3E1DF0BDBD1DD6C746F5F1057DF5109D2ACCC90E737FF501532C92B13FA11A11 + 3FD951A3E93A05D37536C3E4652609A1815D56D5859D44E9DA30A3E0A463C171 + E038B747C19171BE1F5B000B4E50561A0CF184006A9DA192D98AC3ED3642786C + 908AE3462A94B10569F0712EB6E44AA6D98CA24F80398FFF3DCACC451F674C6A + A0BEFBAFA2BF9FF6177FCE23EF1AA61DD50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation needs user interaction 2' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003894944415478DAEDD57F4CD4 + 751CC7F1E777EA4C89257A220511D67032D282654D9D75B42E8D44BB330607D7 + 01C72F6B1E1C6077C01D9848D948EE4E5BE3CE2926F22314D2A1968D3972B86C + ABB5D656999821BFCA0525CA7470D4B7EFF77BED567F14FC21FFB43EFF7C3E9F + 7D5EDFF7E3FBF9ECF3DD57104591996CC2FFC094C0D6DA8E191584FCB74E8875 + DB37E39B9CDAB9D237C412550841F3E74DAB7881BB0321AFE6B8E879F505C67D + BF4FF98026D58CBD200BF59AF86901853290FB66BBE8B1EAB83D0D6083DE4C99 + 043CB53AFE1FD7CFB4BC1DE88B5C27107276B7891EDB166E8DFFA684C6277C7C + 77B997E15FAEA35AB88098E8A5CC99335B594B4C2FC0B62D93650F46D2F3431F + E161A13C1415F13744CE7CD0B44F1917BB2520FBF5A3A2B734993109F8ECCBAF + A9AD3BC2DD41F3A4739ECFC0D03565ECAEB612724F301B0D053C12BB8C8B3DBD + 84DF1B4ADFE08FAC7A34169B398BD9B3662945E5CCA9463F50E27A1FC154DDAA + 00A3B77C18CD0E69FB8F916BD029017917AFD8DE409B98805EFB1C9B8C852C5E + 14424DA58545210BF8FEEA00D62A17C6E424366F502BCFC8998E86BDCA78BB5B + 02B2AA5A444F798A044CD2DB3F44A86A61E096DCB8398675A79355710F939DAE + 439B5188294D4BD27A75E0485C9E06FA077FC2B9CBAACCE5CCF1C37EC0EA6A43 + C8D8D9247ACBF58CDE9E64542A78F2CCC7D2115CE1DACF230A200802CFAAD760 + 92802D99161C255B895BB13C00B49FECE474E739EAF7552B7339D3FEAEFB4FE0 + 18827147A3E8B5A731347C9392CA1A82838378E6C9D52C7D2082A8FBC3B155D5 + B222269AAC341DC9260BE5967CE256C60480E6F6D3745FF89CBA3D3B94B99C39 + 56EF076CAEA3082F5536885E473A1F757F41ED3B87D8BBDB4E58A84A094C4837 + 2AD75241C2BA27C8D46B49C92E42FBBC86545D620028955E60C96215452F6728 + 7339D37AD0E55F73B522181C87454F8581AF2E0D607BAD06ED460D1AF55AAE8F + DEA0B9ED14DF5EBACCE3F12B31E719D1E71471D7DCB9E41893898C08A7EBFCA7 + 74769D6757B985A848FF7595332D07FC4099F33D8474FB2109303232E6A3ABFB + 021D1F9E6578E457E91A86A14958CB84CFC737177B28D9964359D51ED63FBD8E + B3E73EE16AFFA084DC87FEC524629747077664C82BA671BF5319DB5D2D086965 + F5625DA50C4C4EEBF3FFB766CC2FA6C1EB0CF40E6733426AE90109C8547670A7 + 9BC3D9849062DD2F0126866700A8701EF10377BCF25FDA7FE09739D3C01FD0F8 + 71E2CAC29EC20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Suspend background-queued operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000FD4944415478DAEDD4C10A01 + 5114C6F1B95B226A16220DCA280B61618377E001CCC38D079879076C2C90C514 + 0A93C8628A88EDB81B07674E992B166AEEEEAB7FFDEEEA30D775A55F3E16001F + 0119CDEC31496ADC372FFA76B7DD7C6E948EE169D67AABE90BC86AA65B283FDA + D9A427ADBB6DF6F2898EE169567A8B05C01F016AA90E7B3E1D90006E84805CB1 + 067B690D4900374280A29661DBF30909E0460848658BB0B72B8B0470230424D2 + 79D8FBCD8204702304C80905B6B3B749003742405C4EC23E383B12C08D101089 + C9B0CF47870470230484C251D8D7CB890470E31BE0E77AC4CBCA7DF362CCCF75 + F5B9E1E7DAD3F0735DF5057CF305C0DB7703827723E0586AC7B2000000004945 + 4E44AE426082} + end> + Left = 31 + Top = 152 + Bitmap = {} + end + object ButtonImages: TImageList + Height = 24 + Width = 24 + Left = 31 + Top = 224 + Bitmap = { + 494C0101020074008C0018001800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000600000001800000001002000000000000024 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A0A0A0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A0A0 + A000A0A0A000A0A0A00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A0A0A000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A0A0A000A0A0A000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0 + A000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000060000000180000000100010000000000200100000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFFFFFF000000000000FFFFFFFF + FFFF000000000000FFFFFFFFFFFF000000000000FFFFFFFFFFFF000000000000 + FFFFFFFFFFFF000000000000FFFFFFFFFFFF000000000000FFFFFFFFFFFF0000 + 00000000FFFFFFFFFFFF000000000000FFF7FFFFF7FF000000000000FFE3FFFF + E3FF000000000000FFC1FFFFC1FF000000000000FF80FFFF80FF000000000000 + FF007FFF007F000000000000FE003FFE003F000000000000FC001FFC001F0000 + 00000000F8000FF8000F000000000000FFFFFFFFFFFF000000000000FFFFFFFF + FFFF000000000000FFFFFFFFFFFF000000000000FFFFFFFFFFFF000000000000 + FFFFFFFFFFFF000000000000FFFFFFFFFFFF000000000000FFFFFFFFFFFF0000 + 00000000FFFFFFFFFFFF00000000000000000000000000000000000000000000 + 000000000000} + end + object LogImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + Background = clWindow + Name = 'Clear log' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000044B4944415478DAB5955B4C1C + 6514C7CFC75CF6321760976529456C020D542858D852A034D144D318A3C6D444 + 7D686A7C60976A8DA6F1A12F5E5F9A986063A8151AD2186DD490A6494DD35623 + D12D6DB8D9D25282A109412301C92EBBCC37B3BB73D91DBF59610BEC22E5A1E7 + 6D4ECEF9FFBEEF9CF39D41A669C2A334B4024008659C9F0170EF03285B153BED + 703C66D229C7DB589DB2BE2DED2C408FC81D364DD44B3CDFCF61FCC64700A987 + 11EF1684B63C0A5DA5288AD534F55000C77ECC0258E20CC37EBDBFAD098DDF9D + 845078B1CB2FC9C73613FF4A70BE40534C5F736BA3CD6663612038A4C7139AAF + 4396EF6600DD3CFFBACDCE9E3FB0DF87048187A49184E08D118846F1870159FE + 6423F1E543F5B6ECDBC31416E603C632FC767D585735632DA0471427F7ECAEAA + 2E2FDB9649D6341D8283B7409163C7FCB2DC955516917FC769B39D6ADE5B8F04 + 9E83583C01C19BA3A6AAEAAF92F8BE35252237789661E98B8DBBAB396F912B23 + 124FA830303C662A9A7AB84352CE67CA22F21F0B4EE7072D0DB5E0B0DB405535 + 088EDC0125AEB677607C3667934F0B8E561631971A7655BA4B8BDD1908566270 + 636C42D70CEDE5392976651BCF7F9E4F4EDF52570D2CC380AE1B30303641E2E2 + 27FC189F5CC9CB39455D3C5FC322F8A5AE7287B7BCC4938144486D07EF4DC58D + 64AADF25F2CF37D7EC043231904C266170620AC292D219C0F8F8EA12E604A4CB + E5709403435DAF2E2B2DDF59EACDF8434B18661642D058B103501E023365C2F0 + FD695888E273E4E46FAEEFD18680E5B92E2221BF56783D35BBB67BAD80F5D970 + 6BE66F985D8C5E9CC7F22BB9DECBFF022CFB0240B409C295B2C2FCD6FAB29235 + 907BB3F330138EF413F1E788B8966B843705FC572ABABFCAE3AAA85C3559964D + 872330F94F6882643E45CA13DA32C06A3683E05A4DB17BFBE3F9E2DAA4E5D83F + 428B301D916E1A181F7C0B407E68407A5C81BE54E771BB4B7967C63F2B2BF0A7 + 24C35E6F1199012AED1B2790BF64F9DABC24BFB8BE5439016738EE204B53179E + 7415701EBB3D13BC405EE9EFE148D844E60F3C4D1F6D72BBC14E53E966DF5E8C + C27C22DE3727C9AFAD6E7616E00CCF1F62F3D077BEC202A6806532E28B9A06A3 + 9125C53092073A62B1DBDD22F7AE03519D3E5701E2683A2D341A5D8290AA9D0D + 60B93D27A047E48FB028EF5C53BE88F8E5EB5B2619060C2D49BA61C23364E905 + 1F8C3167C5F7FA44811209244974463086A8AE9FF463E5440E803051EF743C51 + C23C38792C95822159496A907CC92FC52EAF6F627A4D43DE8506CEC9B8084427 + 5AC364ADE0A4713C8095CE7500B18D4670B58165B902728384159C48982AA48E + B44BCA37B081A57F3424AF9EE479489E4AF206130988EBC6BE402C36BCA60756 + B005A9A569EE3E298D02A9F7FC92720A36B16EA7B3812CA69F6A69CACD109D3B + BA113674DD1788C767B2A6C88200826F2165F6929DFEE966E22BF6A560ABA210 + F33398C809A9D4D37E4519DFF4256FD5C888DA8B011C47C9F2CD6AF2A3B27F01 + C1324BEF565135130000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Copy log entries-console window output' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002724944415478DAB594ED4B53 + 6118C6AF7D0EEA2F498AFE80B430B52CA9281DB652A4652D1B99A835DB348A10 + 2AE7B6B3B6954E4C54660DAD49421051A9E44B09221528F4B2B44DCD6D6E73EE + C5A7671BADB576CE1E3F787D3CDCF7F53B37FCCE111142B095114501574CAF58 + 286F036114E865395ED6F268770270579A0DBE63A28F1FBFF98C779F7E8E04C2 + 248F15F21F2014E13F646ACE81AF8E558C7EFC3141DB0B4CE772969801D58697 + E45EE53E04421BBCC36BEB41CCCEBBF0C5E1C1E88C7DBAE5FCFE2C66809C7B41 + D4B25CA8FBC6D30E4A8FECA1C56E8CCCD8E94B4430FB7D119A8B0744CC802ACD + 1069ADCA873710115CD8A0B3CB9E35A82DC3D0C90BD801175A6C442B2F84E6C9 + 38EFB07DC597A92F9A7F4C4B002AEF0C105D75115CFE70DAAD5F6E2F8C8353D8 + AC690980B4D94A743547C15927D22EAF078358F485C0649A336ADAFC186D3F64 + 94662FC50015B72C84AB3D81655A922E2B6E1FDA9F7F4026D3FC8120E6165C54 + 674F5488693A9F150394DFE8215C7D318C0393BC172CB8FCD8AC69ADB25C510C + 705AF588E8AF95627195E7028F0F66DB18984D7353D3FA86A1BD941F079C6AE8 + 209C428276DB7BDE0BBE395790C9B43F293BB81B0AD310F4970BE300F1D536C2 + 5D3F03A727FD052E7A41C753EABE8069A969300CC25053140794D43DA0807238 + 57F901E6FED710322D39E2BC5D50DE7F0653DDB1BF804C4BDBB6EF809069A951 + 72FD68539C8C0344A28C5F3DCA9ABA054D4BCE71FA1F54E9AC302BC5EC0089B2 + 53D0B4D4A8B416743649D801A50AB3A069C939BC77271A35BDE8BA59C60E28A9 + 7F48F402A6A5A6B1B51B3DB72BD801C5B52641D352D3A4EE426FF3D9CD01989A + 9392006C657E03188BD5E0187690680000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select all log entries' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002864944415478DA63FCFFFF3F + 032D0123DD2C88289F4D359B5674A63262B560616B0AC586C757CFC16DC18296 + 648A2D48A8998BDB82F9681680A4F69EB8C670FCE21D86E76F3E327CFFF18B81 + 839D954142849FC1DA4095C1D9428B819111D582447C16CC6B46B560C6AAFD0C + A72EDFC3E95A6B435586E4203B14B1A45A3C16CC6D425870E5CE1386FE453BC1 + 6C16662606535D25061E4E0E867B4F5E31DC7DFC0AAEAEA7249241908F0BCE4F + AEC363C19CA624B8C2E317EF321C3C7D83E1D1F3B70CA1EEA60C8E669AF0602B + EF5BC5F0EEE31730BF24D19341435112AE2FA56E1E6E0B6637222C408E07901A + 2626889E771FBF324C5AB28BE1E9ABF7607E76A40B8381861C5C7D6A3D1E0B66 + 35605AF0E1F3377070DD7EF892E11E30685EBEFD88229F16EAC860A2AD88E037 + E0B160269205FFFEFD6758B6F518C3D1F3B781EC7F7071365616B06F7EFCFC0D + E6E7C7BA3368294BC3E5D3F15930A33E11AE70CBC10B0C5B0E9C07B379B83818 + EC4CD4C106294A8B324C5ABA8BE1E6FDE7100B62DC193495A5E0FA321AE7E3B6 + 607A1DC2829A49AB19DE7E80446451BC2783AABC045CAE7BFE56707081401EC8 + 02258405994D782C988664414ECB4278D094A7F832C84B894023F90B43E3D475 + 0CBFFFFC85B838C285414F4D16AE2F0B9F05536B1116B4CFDEC8F0E4C53B305B + 5C989FC1DD468FE1F3D71FC09C7D85E1D397EF7075B17EB60C16FA2A707E7633 + 1E0B26D724C0155EB8F19061EE9AFD18A98A898989414D4192E1C6BDA760BEA3 + B9364390AB295C3EB765016E0B2621590002976E3E62D875E412C3E3176FC1A9 + 47554102E8137D70A4AFD8760CAC869F878B21C6CF06AE270F9F0513AB131828 + 05F9AD782C985045B905056D782CA0D87428C06A01ADC0D0B70000AA1B6EE0F1 + BE05C00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Display preferences window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005734944415478DAB595094C14 + 6714C7FF337BC0AE5BAC802837AB726BAA08D5AD8220126C940A34686B03AE69 + 5A2D6AAB402349AB46DBA2A980C6BB6DD4C5A6A64239146B1005F13682D483AD + 4055649143D80576B9965D66A6DF8C959A28B126759249769379EFF7BEFFFBBF + F7511CC7E1753E140FA028EAA51FC62F4B3D030AF3F8DF24A6B430273BFA6531 + 42EEFF0258B074DD043F6FF7FBDB37AD05C3B048D99885A6D656659166E7C357 + 06C4AAD77AD1106DE3C095156AB20F868787D3633C825213172FDC36376C0618 + 96C56FC74B51527639BD4B579D555151C1C6A9533EA64045B260D29F853E07E0 + 938B68F1C54D692BDCCE5DAAC2F92B9597898A5E73DE09765DBC280A94480466 + 884187BE0B79274A71B7FE413309D7B9BB8E574D547A90EFAF37B11C13F614F2 + 1C205E9D5AF84D7A72ACA7870B44348DC71D06388C194D183406CC83E8ECEAC1 + 109148662B25C12C1A1FB5E161530B26FBFB8265195CADBC894B57AB8A0A3459 + 712301D64447A876252D894197B1173652094C3DFD387FBD062D8F0D508C9281 + 379DC56A85F3587B787B3913364DFAC2C06A65905B740A8F5ADA928B72B2F78F + D4033A4E9D7A63F7D6F5536D6D6CD0D8DC81D28BD598353D00AEE31D48F58C90 + 6C6888457BA711CD6D7A78B838412CA2A1ADBD87D2F20BD5059AEC1092877D21 + 20302141EAA7F06CD2ECDEECD4D1D98363272F202E5A0589582C24B75A8784E4 + 2C9187978A3F89BED3043BC528180C9D389A5FDC52DFA7536AF3F22CCF016212 + 572B25B4F4837973666610C720BFE40A26793AC3D9C91EFD03669C2839873F6E + DF2502719812E04B4584CE14E22C441AFE04128918C70A4E42D7D49A3EC45972 + 8B7FDED3300C785F9D7646E9E132EFEDE02998A39A4E7415E1506E29162F0815 + 2ACF3B7E1A376E6A8F74F59B57C9A422DA562C3D3025C0E7C3883015680291CB + 6CC0EF03BDDE80EA5B5A34E89AD1D5653A9BAFC98C7A02589EC6E51DDC8EDEBE + 01982D16C12D65576F236AF65441962DDFEF6506DA8D76C5C53FF6F3477FF7A3 + 357672A9B47BF52749949418C14E2117E6434C6C6C6323C128025CBD3E03F987 + 33A961C0AF3F6D434F9F1966DE8EDDBDB876B39634D71FE6412B32B20E30837A + D330203C2159E1A890757FF1D972110F701C6347BEB30C03E4325BAC4CDDF20C + 409D767E82D22D2CC0670242A64D864C2E43F9E55B9839CD4F90E8F8A932DCF9 + B34E6335F4AEE2011207C5DE403F1FF5C2F911C40022B88C7380B1A70FDD4623 + AAAAB5A8FDAB018FDADA2B0A0E6746FCDB6475AA9F045CC2647FEF2D894BDEC3 + 9DDA468CB5B723154985539D2EBF88BAFAFB0C0FF0F7F5164547860ADA2B4831 + F66F2AD06FB6E0D02F85B8ADADDD68059557ACC9AA7DA14D7D151EBACF3F4D1C + 2797C9D0D2DE092787D1C282E36DC9F13A8B450294AF9C1F444FB771D01B8C64 + D2CDF82A63D7E3BA5E9DC70B6DFA74D0E2D5299531F3238302FDBD3168B112DF + 33A0C9B4F223CC27E75F3E39DF5817327C0662088EE5C804B722738FA6AA2027 + 7BC68883169F94B2C2DDDDF9C0D28445C26EE19333245821B7155E3119385BD2 + 447E65F0C0EEDE3E7245D0C4AAC01B0A19F61FCE45E58D9A950547B27F1871D9 + 91018A0D268DE6778BB6EE1E9C1CEDE1EAEC2424974A48F5223144629A80A4E8 + EBEB87C9D403DF495EA0C9B0D5DCBD87CCBD39232FBB278DA62E85AA821D1A1A + 9BF86357930A5D944AB7F1D111B3885B0888408C46137F1FE0564D5D1B07B665 + F68CA02055C85BC8DA97A31F64B950BEC1235E3831CBD6058A29EA3BA2EBD9A2 + 233BF691C68B7DE4EE5FAA42A67E1B1F1325E85F5C5281B20BD7BEAEEF6FDA4E + 1A3A149BB42E994CF45C2BB80DC5393BB4AF7C65C625A5F88C75B4AFDB9C9E2C + 2CBE0D5BF740D7DC31F1F7A33B1EFC2F77B20051A79E235F85FFF3B79CE81CF9 + B29861C0EB7CFE064EF3ECEFD45AB8FA0000000049454E44AE426082} + end> + Left = 31 + Top = 296 + Bitmap = {} + end + object DialogImages: TPngImageList + Height = 48 + Width = 48 + PngImages = < + item + Background = clWindow + Name = 'Keep remote directory up to date' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008B74944415478DA + ED98097013D719C7FFBBD2EAB024E413C261D953DB605B06122084E2524C6C06 + 731618DACC3493B6944E61521A5A9AD061A01D37014A27991E69D2A44D6DA04D + 4AC0C149E8240C83B90A3509710B144401E3E0130306DBB2244BD6AE76FB74D9 + BBD26A251B53A633FD3C9EDD77EC7BFFDFFBBEF7763F51F81F37EA610B185180 + 5D15D0A5A9338F93EA59313AD7DDE55A4A5757C0F3B085CB021CDC96F972C1BC + D5CFE7CE5A2FDBB9A1EE555C39B9E795655B5B5F4874826CB228BC26653AB92D + 0284311428537062A1DDC7E3064D79CF366FE9EB501A635C85299DD1A80F9387 + 6E356FEE5E2C0BF0C18B139ED0190C6766ACFA0EC5E8F4B203B11E373EAB7E4B + E8EFEBFBE2F29FB67D1A73C60AA82DDAD41544E437290A653A834EAB3368C168 + 19A8D52A32290DCECBC1EBF1C269778163B97F0902F6B9056FE59D2DAEDB51E2 + B5CC8922ABD56AB3D9D0B4B94BB2E80305B2FA178BCACA8BD2B3731457B4F346 + 236C470FC76CAFA7587C447BE13231303F628229D50046CD80A65450D174F04A + FE83650243D1701188CE8EBBB8DDD1D9EFE3B8D7292F5E6AAAE8E919145F68CD + CFCBC7810F6A94002C42E9B757241A1951D6E5F160D3A9D3F887BD1369596624 + 9993424269896071390C152EF31C8FC6861B686B69BFED0336D0C04F8A0A0BAD + 93F226059EAD7EFF3D65809295938725BEA1B70FDFADBB0C2E5D83E40926A829 + B5A2608917483B4D07CBE1BA9E6E3BCE9FBF802C8B05D67CEBC073FB6AF62B03 + 0C477C2BE5C36F556E1873C9AAA7EAC1F67270DBFBD1EF64C1935DEA5F557FEC + EBF45A98D3CC48CD480E84D42000B98ABC10F69AFF59AD4627F21E8DBD07DE55 + 0658BAB97E48E2EF38EF60C99E9510C6B1000FF4B43B614D29C4FCBC324C1BF7 + 28C68D1A1BE8D7E3EEC1BE3DCF602FEDF99056D18BC65AC63296ECF1D030DA10 + 40C81392FD410F7A2DF4FFCE81779401966CAA85ABAB3A54237648F4BD40FED6 + 1C3A80AB7437BC2E16B94C0A363F311753321E917DE678E56E2CDBDA42656D4F + 1A0B4AB75D9FA45D5DF4682192CDC9B28203A1474BCB6FBFF7B632C0E2173E42 + 5F778D68EED810D5572F61C7B95381D2D77326E3F9C76793C128493F4A747FAC + F2CF018070D9B22D65A98A51ED9D3E63AA213D3D43D10BE1F29FAAF728032CFA + D101B87B0E46048ABCA0927DBBD1C57AB0A6F0316C9836332EF0B1CABD1200BF + 656D4B9DADD6AA6A8BBF345B3FCA342A2EC0EEFDBBE2006CFC0B3CF68F154327 + 7CBFF3EC19B8582F5E2C9E135A79513F190F1EABDA1F05103CE7D5670A0AF273 + 27E64E9439A1A41BBC6A5FA532C0C21F54A2DF511B2D3C4E4851314107CB47AB + 6A2400E197545E5E8EB520BF4036EE2301FEF8EE5BCA00E51B5E83D771324290 + B227E2DF07CB47AB0E0E008CAB48B168B438995F58909D9793A31836E1F784DF + CBF101BEFF3258575D42828672EF5F90DAAA8F030021F1A70B0A0B327388F878 + 71EF6FF77F6EF82D3EC0FA9F81EDAB4F4890B42A3E44EDAEC358C3B59892B4A9 + 57A64E2D1A6FC9B4C4102C0D1B3A243E3180673781735F1A9190892CD7EE3A8A + 755C778646CB5CD16835699474FAE01D25CDAFA8887CCBED717F4A006649FB88 + 0016ACFB1E7CFD0D09084CC03B11F547769D08EE01F2A93D9A31A4611816F9A9 + 1D05F0E5154BC13A1BE3AC66A2AB2EAD3F73E45AD4313A12267D0F3CB70382CF + 2123285188586D020EBDFECA8307285EF43878D61E439C106300F97A81E771A9 + FE261CE4CB3406E027F7B8D679F79B5F4B3DB0FEC710045F5CD1D16DD1FDAED6 + FD0DDAE4C918C9FC5A11E0C397321D144519EF6730B169F44998B16A0DEE3BBF + 4E1460246DA4F26B05D1754BB7B6143F4080FBCBAFE3D9D1AAF7070E84070630 + DCFC3A113B51733136C0EF47198F90EAB2618EDDDCDFEB9892BDCD621FE6F309 + 9B02804958F1B5258315E4381448820D1F399DC855E043D750D95FEF6F6FBFD3 + 89F3D75BEE397B7B7373B659BA879A5F0FC5FEFAF3190902084294D081AB08A4 + ED5627CE5D6FBEC70AC2DCF54EA76DA8F9B5A49CC0076238BF560620E2C5AB3F + E805110869BFD1D6814B4DADAD02D8D275BDC10FA9A1E6D78A40218B955FC706 + 088709CFC7F0820F8DAD3771B9B9AD05AC6FCE5AB7BB253CC650F3EBA18149F3 + 6B7980558BE2C6FD8DB65BB8F879CBB57E8E2B7DCEED6E138F91707E4DBCFCCF + 9D7F873A89C1940D33130E29717E2D0BB07C6579DCB8B7F73A5167BBE6E058AE + 78ADCB7531122091FCDAF68773B8F4CBB350A5E8B0EACC37643C133FBF960758 + BE60204CA240F841CFDCEEEA413DD9BC3CCF7F75ADD3795C0C102FBFBEF09B7A + 5C7FE33CC9B82858B7CEC2C4A70B12089F60599C5FCB032C9B1F33EE0375A27D + D1DDEB407D53ABE0E1F85FF5391CDB37025D4AF9B5BDA10B9FED380BCF27B790 + 4AC4F716A562C1DE85A0543412D903E2FC3A36C0E2D298E7BD3F8C044E1A4EDE + 7E160D9D77D16A77B87CBC5093B2DCF0CC931B7F084A7D3530665F471F3A2FDC + 41FBF176DC3B7D13396A35FC9F78978D2A945797C398691C727EAD08F09585F3 + 2482799603E53F562561148613817859DC72BAD0D9E7868B3CC30A7C605E0D59 + 69B34A850C9A423A99F21EE96B6380799525C8782C3D6EC84496FDF9B532C082 + B903008D4D6D68EAB88D6979D948D6EB65F78210F17E089E5C91EDC1D3AC9940 + 361B542879B338245E395CE4EA07F2EB9800F3E704CFF9E676D81A9B9BC00B3B + 498CFEE20B63D2CD13476740E5FF6D3A1C4E3E19A1037B65B0DD413CF26FAF17 + 54BE0133B74C42D218ED10565D5A2FCEAF65019695160756DED6D834F0927AC3 + 681C4D4E8C9D8C8AFA962535851A6F32C2C8A8A3848A5F80FED0BBCBB26823C2 + 5D69064CDD5086FCA76746FD7CA22C3ADA43E2FC5A16C09A9B05DBF5A6A837AC + DF5ED3E9B2188679963CF9945EADCA4AD16A9144E25B43E29B21F3787C1CFAC9 + 2677701CECE43ED96A4256793A32E7A581D6D03282068D8AB3F261AB3BF2B902 + 80C9788AACD018B05C59A4F8487BD3682CA469613A0F2A9714D329813291A93A + CD25FA8DB3563F85D1D3264063D6CB8A505A61C53EE472E877BF7EB009CD48E7 + D732D64B00CC0F0CE0BF69FF0778D8F61FED46877C1D45F6690000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Open console window' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000003A54944415478DA + ED997D4CCC711CC7DFC71577D7495169A10E11E941F2948756893046C6E66919 + 6D9E36C6A889B4F24C64A2CD6CA6299B87C958CDF2905A1EA2A7C9911E9474CE + 292AD7038A73CEEED75A9FE6FB8FFBEEB65EFFDCEF7EFB7C7F7BBDF6BBEFDD76 + 3F11CC1C116F81DE00DE02BD01C603E73537524410ADE22DC4820EBAD4779742 + 577709705993A6DB1916CCDB8D89F8E4BBA8BEB444D42D60DA747FDE6E4C3C79 + 944D0738B98CE5EDC684AAFA351D20910EE0EDC6445BEBD7EE01431563749366 + 2DE0EDC6C4F39C74D456BDE91E307146086F37260A72EFD0013E7E7378BB3151 + F838930EF09E1AC4DB8D89E2A7F7E900CFC901BCDD9878F12C8B0E18EF3B8BB7 + 1B132FF373E800779F19BCDD985016E6D20163BDFD78BB31F1BAF8311D30C663 + 0A6F3726DE94E4D101AEEEBEBCDD982857E6D301A3C6F9F07663A2E255211D30 + C2CD9BB71B136F4B8BE90017570FDE6E4C549797D001C347BAF37663A2A65249 + 070C53B8094311DB37615E700052AFA6E162CA35747474F0F616785F554A0738 + 398F1686B232AE4222E96F38AEAEA9C5C163A751A22CE5ED6E40F5AE8C0E701C + 3652180AF49F8EBD11DB60652533BCD7E974B89E968EA4F3C968696DE51AA07E + 5F4907383829BA0CDAD80C44E4F6CD981D305338A7F9548F630949C8CE7DC22D + 40A3AAA203EC1D87930BFC67FA2172C71638D8DB09E7EE65E5E0C88933686868 + 3479C027750D1D30D861688F8B643229B66E0AC7B2D0851089FE2ED336B7E078 + C259DCCEC8346940BDA6960EB0B573FCE7622F4F77C4EE8980C2A5F36EE53D2F + 44ECA178A83EA84D12F0A54E4D070C1CE4C074010BB1181BC2C3B03E6C25C4FA + E33FD4D57F46D0FCA586CDFEBF69FCACA103AC6DEC982E606121C6C6F0B558B7 + 769521C6181018B2C424014D0D757480DCDAF69F8B277879607F4C1446289C85 + 734F9FE5233AEE30542AD37C84B44D5FE80099DCBAC745563219766CDB8215CB + 433B37B1B659FF037712376FA59B44DC488BB6890E90C8E4E482A0007FC444ED + C290219D7BE44EE67DC4EC3F828646D37F8DB6B568E9807E126997C141B6B688 + DBB71B73833BFF6E517FD420F6E051DC7BF0D0E4E246BEB7B5D20196FDFA0B43 + F3438271286E1FE4F2BF77E5CFE64CB97C05F1A712D1ACFFFEE7C98FEFDFE800 + B185A530A42CCA83542A311C979557202A3A0E0545C55CC58D74B4FFA003FAF4 + ED2B0C1D888DC6D2C58B70FE42321293CEA1BDBD9DB7B7C0AF9F3FE900F37964 + A6EB29C07CA00252F42F66F1904F4FAA3EA0EB433E73A5378037BD01BCF90D80 + B399404272DDB40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download File' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000007284944415478DA + D5997950535714C6BF542B75A94B750495D6EA387619C73F3AD3B1556B5DC0A0 + 08EE8AB8015A17DC575020A075037736D9A4EE5B292EA3835B75EA4CB55AAB33 + 62C5053510C8C26220404842C8EDCB429297BC60F25EA8EDFD87F76E5EEE3BBF + F39D73EF378187FFF9E0BDEB00FE5300ABD36F123785755BA525FCD425236AFF + 7580DD0B86830B85FEBB276F16E0C18B32A7205A0440C75187F3775E40DDA0C3 + 9FCFA46F856811002D4782DF1E89A050AAA1A120EEBD05A245001A1AB9013C2C + 94A1A65E4383A805199FB17044458B02AC4ABB41F62C1C01B556C7699DD7922A + 2A780D0DE2EE53497E5D6DEDC88CB5013408B702AC3C709DEC5D340AF50D4680 + 75A9975D5E6367B81FDE2894A8516A68106A4D2305519AAFACABA741B8156045 + CA35B22FDC074A0D37051AB55A28A8C09920FE7852FAF7FE253E035A046079D2 + 15B27FE968D4AA1B0DF79169575C5E63C7223E0AC572E4DD7B858A6AA5DDE75A + 8D0689CBF8E6B8DD0AB034318F242DF38342D5C8792D42ED030F5E4871EB5131 + EA355AF37C5D5D1D92978F69198025FB2E91E41563515D6F0488CA705D01A631 + 69F840BC28955350048F0B4B90B2D2BF6500C2F75C2429ABFC21576AB92F6633 + F42A08A5D5389E771FA9ABC7310370F532CADA1A1C581D803775460041D655B7 + 04BF79FE68F375547A1ED2D6043A06E0E26516EF3A8FB4B5E35151EB7E059A46 + 74DA25A4AF9BD03C005B27B078E759A4AF9F88B29A0663E6B2AFB925684198AF + F93AE6C04564444C6A1E80AD97599C908BCCC8C990291ADC1238D3884EBD80AC + 0D539A0760EB651627FC82CC0D5320AD36026C3DE41E05A242AC14483D8F831B + A7320370F532E1F139C8DC388D02D0B82570A61193720ED9D1D39901B87A19A5 + 4281CCA820484C003B8E5C77E9FB5AA8715FBD1B2A5285411E1168CBEB6A988F + 9CE3637E46909C8B9F04339801B87A99F01DA790151D0C4995EB0AD46B955873 + 693A8A784FD0AACD7BF078D309C981E7E1D9A1175D81E41C1C8E9DC90CC0D5CB + D4C8E5C88A0986D804B0F3D8AF4E67FE9E3A1EDAEEA5E8F2C987863985B40E2A + 9107067BC440307B9A4581A41C1CD9348B1980AB9759BAED043205B3CC00CE66 + 7E7D5E1044EF15A0F3C71D689FE921DA504A24069C43F7F646256213CFE0E88F + 739801B878191D1A505551896C41881960CF891B4E655EE729C147BD3B515E47 + 67F03BC4EA286D82D83FEEAC014290781AC7B784300370F132938F0D85B8B212 + 177FA01A57E7F9D6E75554E6232ECF80A4F57374EDDDD914B88E3A448D7FF5F7 + B6107BFDCF2225EB164E6C0B630658B4FB0261EB652ED5CF46BF2FFBA04EA441 + 825F2ED57CDED87F8A5981A6CCF37A94A1FBA75DA9A08D01EB4C811B94D06310 + CB666280A8EC046F690872B7AD610658B8F31C61EB65BE4EF6C4109F419089CB + 505DACC62E130453E6375E0D86ECFD97F0EAD38D96712600EB923234B6B02D9E + 463D630658109F4BD87A19BD02437DBF35BC5C262EA7205418A05D8776BC6E76 + 996FDDB3123DFA7A1A9E75046040302B63BC9617D700255EC88FB9CF0C307F7B + 0E61EB65BE49F5C2B0D143CC0148259412452A24F08D4AE8331F752D18951E42 + F4EAEB659361138819C602A63329505954855E8D5FA0FDF340E4C42F650698B7 + ED67C2D6CBE81518CEFF8E96419958862A0A62F3A8A348BC1301B94731BCFBF5 + B4CBBC05A0A974E865542E94A367E367D8EA7B02F1D4497C3A61013340D896D3 + 84AD971992D60323F9DF5B326B925D4AF54461C12B78797747EF7EDEE672A003 + 109B46B6CCCB5E57C04BDBDF10FC07ADDB61D3BE638E0142379F246CBD8C5E01 + 1FBF118CA5A1A856A043C7F656604D903AAB6B6273AD83E475393C1BFA9983D7 + 8F6601E66E3A4ED87A9961193D307ACC289BE673D494960CD3EBDD322F7E2985 + AAA8233EAF9D8756A40DED5D0E01E6C41E236CBC4C9302FCB1BEE6A0AC03B5CE + 300D86B19175287929415949C56DA55ACE2F8F83F33FAFCF8E39425CF5324D63 + 64564F8CF1E75BED24C4AADE9901687D609A171596402A2A772A783B8099D187 + 489660B6D35EC65601FF716318B745DB5D85380010168A202996391DBC1D40F0 + C66C92193B979502BED9BD101030CEA6DE9BAE9B291913C0ABE742888BA52E05 + 6F073023F220C98CB3B849475EC69102E30303CC078FD38D4CDDBF7CFE1A2545 + 629783B703088AC8241971A1AC14F03BE48D89E327D0326CDDC0D6A5630D504D + 6DB17FDD7D48748D18288A923F76F5BD3480E9EB33487A5C981920E5CC4D9714 + 983C6112E3AE625B3AB60D2E114BF134FF990820C3841BAA849C000EC486B13A + 89C71EF6C6D489539C02606A703D4441FE539721EC005205A1ACCC9C1E60DAC4 + 690CA7AB8ED617CD35B8B854E232841D40724C28CA6BD801044D0A62709616DB + E04C83BB0A610790440154B004089E1C6C573A768DEC448397968A9D86B00370 + 3972D3B8DB2512B3A6CC62C8ACBDE374A6C1C525623CC92F2812AAE5FD110787 + 4DE9B67F70F4DEDEE5771E7883DDB59E7E50D92CE0A9DF7C258C83AAC501DED5 + F80762CA0A9AC27989E10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA8640000076F4944415478DA + D5997B50547514C7BF200F25352D47C5F0190A5A5333CD5496666420F82044D4 + 0C35612131AD4C2BD35424A7D2C6D1325F08E8A883F25019B507BD1D93E85D33 + 592EC9631758F6C1AE2C2CB0EC2EBBFBEBEEDDF5EEDEBD77D7BD2C989D7FF8DD + 07E7773EE77BCEEFFE7E1080FFB905FCD701DC5600478E1C23BDE4AAC260E89C + BD66CD9A8E5B0E2012AD80C562F1CB4F75752D2A2B7FAC34183AE26F06715B02 + E874ED50AB35A8A8A8BC29449F0098CD66BFFC180C4674777743A3B98ECB97BF + F70A715B0298CD16DA872B0421DD899999992DB704C036B13F16181848F930BB + 41545C319B8D33B3B2B234B70CE0EAD52AC13EA64C8946707030DD47BE40F409 + 80C94F054228009BF141545454FC2D12A5DDDFB70026137D2D16FF23D8C7E4C9 + 515E9F1716162123238D89BB4F008C0E80BEB093B704C068A4AFABAAAEF58ADF + E8E8494E8093C57D0F607000F4859DF206B0FEF0C55ED9CB8C193E08E9B19321 + A9ADED95A0A3A2263A014E957807D8BD3206FE50D87EB7E8A2189A363D0D1112 + 14D82B108200AC7EEA70FE876A6A29B54222D7202E7A108202FDABD449932299 + 715151E9CD01CC7E125CFAB3113ABD918650B674202D36BAD794F009A0DBE21F + C01F352AB47799180849931A33A3062334A8674A4C7451A0D81BC0BADC6FC99E + ACA760345BFD0290285AA9E04D2C08A9AA1519719311161AE497EFE2E2D39E01 + 5E3DF435F960D5D3E8EAB603BC71F073C113EC5A9D80169D1EED7A130BC268B2 + E05A830A09F70DF5A884C1D285777EDD04ADF13ADE7E643786F51F4EDF8F9C78 + 2FF34E893780B507BE221FAE8E85DEE49F02166AEFA2A302E783A893B7606DD2 + 839CDFD177EBB1F2FC52D41231FA8504628076304E2C2C43F8C051ACF74A4ACE + 78067865DF1764EF4BB3D061B49FA836E67E2138F89DABE25123D7A2FCE73A7A + 29753733B5CD103D11CEC97CCE2FAFA3295482A16306D1F774CA4E04A9C3B073 + EA7E3C7AFF54E6DD526F002F7D544EF6BD9C009DC1BF23A1CD08B50EFC5EADC4 + 777F36A0CBE43CE07476766247FA7456E6B32E2C431DAA3064F440960F1B04AD + 44CA598C7428515A7AD633C09A0F3F25FBD7CE415B971D60739EEF0A58D14DBB + 0B04B74917C43C80EA262D0545F0578D0C2FC48C66655ED1BF1E778DBD937A6E + A5DF212E9F521B447F1788D3DE0056EFF9841C5837175ABDF023614AE1746AF5 + 32222FA50CA3068DE63CB7A92055B6E164F9AFD89939835A286C995F8EFAC06A + DC3D768823702BF511B5FFB45D7320169CC1E5F21F3D03ACDA7D811C5A9F8896 + 4E3B4076C1973E037CDAB51C9153C64356A5C363215B1016308C79B63D731633 + DE7CB81C693123E8CC3787C9307CDCDD54D0F680AD8EC069256C18C4B998DC80 + 581C9A81F52FACE307C8DA758EE4BE9E044D8770051EDE3F02D3621F854ADE8C + 0E990979C9E711CEA3C4A6DC32A8871540D6AF0E23C70F63659C0FC0B5A46C10 + FD9AC2F0DB862A7E8095EF9791C31B92D1DC6E3F126E3FFA952005A6C73D464F + AE92AB2925DA1825B24571F632A2CA667E5E1C8223B4089F30827ED713008DC0 + 28631F6B1BDA71574B382EBDF60B3F40E68E33247F630A543AE167DAA9074762 + C6AC694C004A4533DA1B8DC84D3A472B610BFE958F9F852A58827B268C74CBB0 + 0384817182591D0A5CAF6FC578128504CB22BC9899C50F90F1DE6992BF692194 + 6D7680778F09532026FE0956065572151AC56D28587416EF5F7A03EAE07A4444 + 8EE264DE0970A374D865A4966A318E4C44EEBC13F8ECC2979E9B58F44E09C97F + 6B310520FC4C3B2D371C33E39F7466D621BB92EA891A3155EF11C33136328229 + 073600716B64E77D95448331D6481CA2821F101C86B2B3E73C03A46F2F22F99B + 9740E100D879E26B410AC4263CC55B1ABA361D060EBEC305EC06A4D5654CDCC6 + 5628246A8CB64CA0823F8E014161F43C6565E73D03AC78FB2429D8920A45AB70 + 0566E48563D6ECA7DD9ACF53533A33CCAE77E77D79AD12FD9BEFC4D221590809 + 0865CDE511E0F96D85A4606B2AE40E805D85DF0852207E4E1C13946BA0AE1966 + C1F036B215B25A059A659A4ABD511BAFCE81EF7F5E5FBEF504C9CF5EC60008B1 + 9905A3307B6EBCCB4A425CEA9D1F80D5078EFB8DD45643D9A8F629780EC0D22D + C74841F6720660CFA96F05293077DE6CDE65D17D55211E00A4358D5034A87C0E + 9E0390FAD65192BF6D458F14883B7A0F1213E7B9D5FB8DB197927100D45D9342 + DEA014143C07E0B98D47487E4E1A03B0B758980249CF24321F1E9F1B99BAAEBD + 2681AC5E2E38780EC09237F3495E4E7A8F1448381681E4A4F9AC0CBB36B06BE9 + B802B4514BEC6F3FFD41AC163CD0B859FB97D0795900CF6EC8238773440CC081 + D28B82144899BF807755712F1DF70657C895A8BAF24F23750C9A21DDD42AF50B + E0D036518FBEC4738E476051F2429F00F81ADC0621BE522518820370303BBD47 + 9B391BC0E2E4C53C5F572BAB2FBC35B8BC4921188203B07F6B3AD4ED3D0358B2 + 6009CFCED2B96DF0A5C185427000F651009A1E02A4A6A4724A87D3C83E347853 + 93DC67080E80E0C81DF6D3D08D58B670194F66B93B4E5F1A5C2E93E3EA1571BD + D4A89D841C786CCA5EFB07C7D81D43BF0F40C0E3BDE5CF665436C501C69687A4 + 3930F439C07F65FF02637A219ADE9FD1780000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000006214944415478DA + D5DA695013671807F07F74A0D30E0AC36847C10311ACF5E8A74E67FA4D5B2BB6 + D65AEB595AAB501541BCA83787C78817DE7226C8E06DBD38042248B5753A6AD1 + B153AD560C62004382508E90FBE0ED46484C607793B01BDB3E7CC8263B6C9EDF + FB6C76FF1910E07F5E827FBB81FF14202EEB3AE1A9AD9B3A13094B5F3651F5DA + 01FB964C001785E577CF5CFF0BF7242F5C427804D0C1710E05B724D01B3B70A7 + 52E114E1118089A3E097FB75506AF43050880A27088F008C666E80DFAB1AD0AE + 3538205420D38551139B3C0A589D798DEC8F9A08BDA983D3719EC95BA9E60D0E + 88DF1ECB1FA855AA8F846BA639207805ACCA282707967E0CADB113B036FD8ADB + C74889998266A506ED1A8303426F305308D9038D5AEB80E015B032ED2A391833 + 091A03B709984D2628A9C6E910B71FC91E1E5A36699C47002B8E949243B193A1 + D29B5F3EDF9059EAF631762D0D43557D0BC415D5686AD3F4D86F321870787998 + AD6F5E01B187C5E4C8F22950EACC9C8F45A8EBC03D890237EED7426B30D95E57 + ABD5485DF1A96700CB0E1693D4959FA14DDB098817BA3F01BAFA6AC27B90C85A + 2814C19F55CF91B66AAA670031FB8B48DAEAA968D198B81FAC5B59A62055B4E1 + 94F82ED2E33EA70770CD321A553B32E2A6A159DD0948CA2EE3A5F96D8B26DBB6 + E3B3C4C8FCE10B6600972C13BDB700996BA6A349C5FF04AC9590598CACB55FB2 + 037A9B04A253F290B56E065EB41B3B572EE72A2F4D27457E62DB4ECC288270FD + 57EC80DE6699E83D9720DA30130D4A232F8DD355427A21B237CE6207F436CB44 + EFB908D1C65950B475029273F99940FC42BB09A417E0E8A6D9F400AE592666F7 + 058836CDA100065E1AA7ABC4B47CE424CCA50770CD321AA512A2F87990530003 + B508D3E34BA1D2F1F425ADAB7CDFECC01FC299F400AE592666D75964278443DE + 6A80893A0DC3936FC07FF048040406526F44FD50EF2610743DDA9E77BD06BB7D + B6E79DDBF675312F1FD21333E8015CB34C7B4B0BB213C351DFDA790A6DCD29C7 + AD4A338243C7F186600570CD32B13B4E4394F4AD0D6029458B16AB522B302020 + 8417042B806B96696D6A4476D27C1B60FFE96B2F1F3506C2DB2458015CB34C6C + F20988362F709880B51AA849C4A5DDC180406E93B8945FC00C58BAAF9070C932 + CD0A05445B16DA0087CE5E73D8CFC724F20A58005129F9844B9659BE3D17C22D + 11B413B09654A142F4815B78FF830FE1EBDBDF6D443E1B60C9EE4B844B9669AA + 97216B4BA40D9076EEBAC37ECBFDB14262828FFF30848E7AF755A36E200A0A0B + 99018B765E205CB2CCCAE45C646C8EA4BD13EBA8EFB3F1D977D1DEE1879051A3 + BBADACEB88C2CB2C80EF779C275CB28C6502E949113D16C0DABC926A7E64C83B + 0CA7876B88CB4597990191DB7F245CB24CDCCE63484D8C4063FB2B80B5F936B3 + 2F822DCD83EEEAE23AA2880D10B1ED0CB166194BED3A5EEEF6048E5080A62E80 + B5F956932F468C1CE5E412E91AA2B8B88819B060EB2962CD32BDA9B5BB8FD9B6 + CD4480C7CDBEF0191882A0E05017AFF3CE1125252C80EF369F24F65926E5E44F + BD8258AF36DEFD8760F88850376F560228956DF0F3F3A54588C52C80F989C749 + F72CE36E69A9D3665DE61D34E9FB61A8A579C0E907D31EF154F218B5353564EC + B8F102BA9BDD15713133E09B845C429765DC5D79AF7E8118323C9436CBB021AA + AB2A515727BDD90112D5177D4AC68C1D3FB43BA2F40A0B207C530E61CA32CECA + F2815D2FBC8B469D0F0287853836EC02E2D9D327784E35AFD119C31ACFCF5105 + CDCB0B8297E046774459690933E0EB0D47095B9661ABDB4F4C10BC1580006BF3 + DDCF5F1684B4FA0964CF6B6CCD5B8F4987B85AC60298B75E449C6519A65ABCF7 + 5718BD0761E0A02134ABCC8CA8A996A05ED6B37926447999981930779D90B065 + 19B6D25249F366A5097E6F07BB8CA8955641CED23C1DE2D1C3FBEC00A62CE34A + 35B6EAB026A3027D7D029C22EAA41228EA6B9D366F8F205EB0ACA8B6E6C48C31 + 8C00BA2CC3374256530585DCF5E66D35FB9C7750A3BA8FF4E7081D23A07B96E1 + 1B515F578506799DFBCD33540F807D96E11B21AF7B0A6D73353561F4E3A3795A + 001F07B596DEDC178FFEF683FFE050988C7AE85A9E61B47F1B2EA42CE6EDEF12 + 1EFF678F80D9E78679BFE16589B532B5DE388DAF957F6D004FD73F1B7A136DEE + 26BDBF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000006384944415478DA + D5DA695013671807F07F6CD1B65A71AC742C78A0826D3DDA2F9DCEF49BB6566C + ADF53ECA2184B682E049B5553944A78E6DAD28721F3ACE588FA22D874004196D + FDA0162C4CB122900009181294E108393709DB0D212B8190EC261BDB3E7CC86E + 76F2E6FF7B9F65F7DD011EFEE7C5FBB703FCA700315937498E62DDD61AC880F4 + E8C5CA670E38BE65115C51983E7BF1E643540B1F3342B805D0EF621F0AEF08A1 + D3F7A3AA41EE10E11680C145C1EFB56D50A875202844A503845B007AA36B801A + 5107FA3484154209726576C4E24EB7027667DE209322164367E877699C16590F + 159EB042FC512FBBAF522ADFCFDEB3C20AC129605746057922F20368F466C0DE + F46BACC73816B50C5D0A35FAD484154247182984F4BE5AA5B142700AD899769D + 3C19B5046AC2B50E180D0628A8E0B61077EBA40F92A3972C700B60474A1999BC + 6D29943AE3C0FEBECC32D6637C171900517B370495CDE8EC558F386E20089CDA + 1E40E7E614B0ED94804CD9BE0C0AADD1E5B148EA3A502D94E3566D2B3484817E + 5FA5522175C747EE01449F2C2153777E8C5E8D19109BCDBE03B66ACDA2B72094 + 765328127F8B1E216DD772F700A2928AC9B4DDCBD1AD36B83ED8B03275412CEF + C579C13DA4C77C621B70FAF459972EE0553D939111B3025D2A332021B79C93F0 + 87BF584A6FC7660990F9D5A7A303C2C34361343A770E479F2846E69E95E85472 + DF014BC56596206BEF2AF700A28E1721EBEBD578DCA737CFDC99EB9C844E08FF + 90DE8ECF2846F6376BEC030C06E76670EB8F85C8D9B7161D0A3D27C16D555C7A + 1172F7AF730F20F2580172F6AF83BCD70C3872969B0EC4860DE9407A214E1F58 + 6F1FA0D73B3783913FE423E7C0060A407012DC56C5A715E04CDC466680BABA7A + 568327173D404EEC26C82800412DE856C69641A9E5E8216DB03C5FECC75FD96B + ED0308273BB0E5E865E4C60542D643C0402DA9038FDCC2E4D7E6C0DBC787FA22 + EA87FA361E6FF095DE1F7C0F438ED1FBE6EDA1F54B7E01C4E7563B0010E653E0 + E1C3065680A4FC5AE4C607A2BDC7FCF943672A70A7C188D9FE0B38433002E808 + E7CEE12FBFFD193909C134C054F26E0D76A556628AB71F270866009D6E60BFBE + BE9115E0D8956AE42684D080A40B37065ED504C959271801B48300B6F5F9E10B + C839186AD5014B75509D8849ABC2141FD73AF16B41210380563BB0DFD0206405 + F8FE52157212C36840F2A51B56C7B9E8447E210B00DBE227FE84EC44BECD0E58 + 4A2C5762EB893B78E7DDF7E0E9399135A2800940A3D10CEC37368A58018E5EB8 + 8BACC4701A909677D3EAB8E959BF5268C084C933E03FF7CDA74159200A8B8A98 + 039CE940C6C1709B77622DF53C1B9B7B0F7DFD93E037F78D6133CB1C51749501 + 403D08103AD181F404FE88C59C25BC820A3FC7EFF5514E0F6688ABC5571900D4 + 6A46818757F8A1F3488DE7E349DF5380257CAFD113B34DE161EBEAC21C51EC08 + C0E76FA63B201236B1EE400A05E81C0458C2F7183C316BCE5C07974866889292 + 620600273B60BA0F58CA48F250DFE589095E7EF09DEDCFF03AEF18515AEA0010 + 16164277A049D4EC1444AB279178A51DDD78153367F9B3BC59F1A050F462D224 + 4F9B08818009C0C90E984AAD332222A50632CD444C3785071CFE620E453409EB + D12A9190F3172CE4D9BAD95D1394D807848606D31D686E6A716AE6BB482F4C9B + E96F732D630FD12C6A405B9BF8763FC888E730A674DEFC85D38723CAAE310138 + D1018D69E6536B20554F84CF0C3FEBC00C102D4D8D784485576BF5014F2E6F50 + FA6ECAF78507EFD670447959A97DC0E6CD4174075A9AC58C017179ED9013AFC0 + DB127EF8F96B07216E6E84F491840E6F19D316E27A390B009B5A75F82E341E53 + E135759A8D591E1D216916A25D3A32FC68888A72817D40484820BD9468699130 + 0674F619B0EFA214CF7BCE648C68158B20B313DE16A2EE41AD7D40F01000DB92 + 77EB1096F42730DEC721A24D2C84BCBDD561F8A108D203A6D5A146726EF5BCD1 + 01C19F390DA01127AAED22A41211E432E6E1E95A9F37D6F7896A8CF8373EBDDE + 1F01080ADA048D93CF034311FC5110ED6D2274C8DAD8871FA546000203373AFD + 40330271B2C60A216B6BC238B5180D8FFB5FE622BC4D0017835AAA57370667AB + C7E3252F7F18F43ABCA09120E86D15B66E09E5ECEF126EFF670FEFF57933C68E + F3A8A036A52A9D7E055733FFCC00EEAE7F00C7D11B6D6CDB2159000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Duplicate' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000006404944415478DA + EDD87B5054551C07F0EFC2A2ABA365A14E9AE83826FE119633D9D41899A082A6 + A4A9A9892FC0373E490CE515A266920AC81B52339034C751D221433045F1950A + 2C28C2A651C022128F7DC1BE38DD65D965EFB2C2BDEC2EE64C6786E12CBBF79C + DFE7FECEB9E7B770F08237CEF30EE07F80E10BBFC44BC442C3E635AB887B9CAF + 8BA4C701FB574D82390ACDB5E9971EE06E594D8F204C025ACCCCC3D9EB65902B + 5B70FB61B5D51126012A3305970BFF864826878242DCB232C22440A9360F704F + F004E226050D21019995B4DAA5D6AA802D0939E4C06A17C8552D660DFA58D840 + 05AFA0216E9608F95289C43569AB87451134C0E6F88BE4E09AC968526A01FE71 + BFB01E3062DD34D4896410CB1434845CA1A610957C99B4C9A2081A60536C1689 + 5C37053285791950AB541051819B42DCB85F591CE53BC5C92A808D872E90A8F5 + 6E90C8D5ADAF03122EB01E70EF1A7708AAEA9179EB116A1B651DDE57291488DE + E06EB1039436D0FAE84C7268C334889AD5660F4CA8E7C0DDB26A5C29FC0B4D0A + 95FEEF52A914311BA75B07E01B799EC46CFA188D4D5A406012FB0C986A7326BD + 85B2CA7A0A455024A840ECE619D601AC3B708EC46E99817A99AA5B83ED4ABD6A + A9B0189F1D34C09AFD1924DECF0375522D2024E557C653AAD56AF4EDD71F3D5D + 8AD000AB23CE9084ADB3502B619F81BA460912CFE7C352A508D3539C0658F5CD + 6992B8ED53D48895ADAF771ECE623CA961067AB214A101567C7D8A2407CCC513 + 9192D58425A73D2197352097E38DF0B50B2D5F8A94086F4838F030558AD0003E + 7B7E22C9DBE7A1BA510BD87D945906DCC56BE1E43C12FC1B428CF78880FD9899 + 6601D894223480F7AE132479C77C0AA06035E19D98D170F37A17E27A390AB24B + 61EF381F8EAE41D89690CD3A78B6A5080DE0B5339D24072E84B00DB0F7D845C6 + 19D000086CA1567250945B8666F9108C9D1D0FDE4BAFB346B029456880656169 + 24256811840DEC32901F375A0F00B8D4A8B6282FAA42C99D4AE4F7F2C2532EF3 + D2876D2942032C0D4D2529C18B50D506884865B604B419184F01B87A80A6DFF8 + 540C7E4E21063B2DC7C80FFDC1E67F084C4B11DA884B828F91E490C57A00D356 + 94E06812002A234AAA30E4FF560841F52B28E8B3020A4E7F56636B5A67A5080D + E0197494A4842CD1030E1CCFE94606A865C4E1B6F7A91F42811EDF13A0B2B416 + 8ED3A3F0B2C3FBAC119A2CFC59DD88B4CCDF11E737D334E048D804626F53C17A + 704DEB1CA0EDD755FE4365E336EE93E978DC6B2A982EA99D2BDCF4FDC0C44C24 + 7CF189694046F870326389762392B6405A0368DB9CBA40B4FDB60D8BB6E562B0 + 6CB40083F70DAE93534F147E761E6CFB8DC31B6EDFC2B637BB251594701E89FE + B3BB02E8823206E882320618DD753DC0349CB4D84070BB00A5C54F90CF5B0991 + ED884E830EF19EAAEF07C79F43D297739E2F4097E1DAF24A94E45EC7B00F0231 + E8CD05CC3210978194EDF398020C969371D01C6E0780219C0EE808D7BDDF2496 + A128EB22CAC4A350CCF3841ABD3A041DB8DC20037167F1DD8ECFFE3B00CD67D5 + 6A0ECAAEE542DCC8C39879273BCD4070EC191C0E5A602980A90D6FB4A19F01A7 + 034001AEE281A01937FB6EEB1074C0D229EDFB21E6348E847CDE19C0A66D0263 + 80D15DE7183C2669FBA50B805186B44B280B76039DE13069376CB8BCCE331073 + 0ADF877A3201E8EEAA31C078637607A0FD5D5B5E81FB97F3506833171576CECF + 0CDA7FF1E4F60C1C3A8563618BAD01D065CB1860BC5FA8CF100EFEA01EA3D5E5 + 62384C8D469F41CC8BBDD0E893F8217C291B407B305D1D6486D7993A895B0F32 + 99923AC8AEA1AC6E18F8BC655071FA7419B4DF22D7F60C449F40DAAEE5A6013F + 870FBF4615811318DF0E83E6E6F50EE81BDE7429517CE50E068C5D0FFBB77DC0 + A63AD567202A1DC7F7789B0674B76932670C305C469A6C3DBA2BC0C302210A78 + 3EA8B3756435FEA685ED19088D3C8EF4BD3E3D05D094D32DADE57433198521AE + 0761CB7BD5ACB9BE8A4CC38FDFACEC1940438D1885394528514D4469EFD9DD9E + CE77BE8BBE1F16998A13FB56590BA05B365C941757E151610D064F8C405F878F + 2C314DCF0054AD5FEA05104987E0B5C9D1E0F61B6AB1E0AD0E90D4CB919F2D80 + 9DC35C0C7C2F001C1B3B8B066F558093F308F0F3847074DF0732749AC503B732 + C0E112079C0119D2B5E3442DF6560B5ED72C0E789EED8507FC0B07D1116D82A5 + AA2B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Move To' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA8640000060B4944415478DA + EDD87B6C53551C07F06FBB6E6C44080167C46D1212186F2411A2D10561C2C632 + 44030888B0478720CE2708A20326CE1840908263021115650C08213235FCA163 + C25E3C1CB2B57B74B7DB00F7622B6CEBFAB8ED6E77BDEDFABCEDDA5EFA1824FC + 92A5F7EEB6E7FC3EF777CEE9B9E5E1210FDE6027F008607B72F4E84FB48FDA2D + 264955427A7ABA32E000A130197ABDDEAB4609A21EA5A5974B495219EF6F845F + 000A450FDADB3B505252E67784530045515E354A925AF4F6F6422EBF8BA2A212 + BF22FC02A028BDB18D40209C020C1D7B137C3E9F698362218AC514A58D5DB76E + 9D3C6080EAEA5ACE0D4E9E3C11C1C1C1C6791408845380CECB0A84300043B011 + 1D1D726662975409852953FD0BD0E98CE7353552CE0D4E9A34C1E5F5E3C7F390 + 9696E2B32F50A700AD09E08FC80D0840AB359ED7D6D6F9A4938913A3AD80DC93 + FE07902600D7C83856E6ABBC8A490A0939E973DD2EBBCE0124693C974A098F7B + EC5669714EA2C4DEB573E0CD86CAF0D9BCC21A5C27DA4B498A8E77877009E012 + F22E15F6E58B8D803E2FB784E7CA0868B47A941377DC229C02341A8DF1BCAE4E + E671A7B615A0BC145CACB80D8546C72CE77DB82A6D73897009F034CA4F278154 + 77E122D290B57E057AF5DE01FE95DD418F5A6B87E853D389A28FE6767904509B + 00848715B8FDDB424C8D190BF1E556CC5CB407A3A213BD0234B67641A1D6D921 + AED4B68A554A65EC918F5FB1FB16770E50AB397558F0CD24C4A5CE424FA71615 + 05750C6019A263B762F3A102CEC97FFDCE02DC53A899E4757608AD4ECF209AC5 + 6A95C60EE100484D4DB25440C63C98785A0103804610F4BD3C488A0890BA084C + 7BF5204287477046E899AD87216936823420AA9BABF6A7CFB36C459C033856E0 + C2BEC9160020605A0DC22D490B6ACA5B7023241572C1148FDBDAF9763C642D9D + 387FB501F26EC73C28669770E0BD784BDE0E809494D5960AD4CB1A3857C00CA0 + 99D7EEF61E880B2BF1C43421C6C66C0497DF1068661DB84EB4E152E56D6874D6 + E713954A85ECF713DC003856A050348501CC34266D0B0003EA65D673F1DF9520 + DA46A2322C0D3ADE304E6D1B62F19CE9209A3B19140D89AC09073F4C1C18909C + BCCA528186FA460E159869491A3C81F598F9A31950C375022DC45D4C48CCC6F0 + 88599C11862ADC6CEB46EEF97F90B361A173C0D95D2FD0025D13E7C60DE11AD0 + 7F7CAFF92E33A4AEA11A09680C89F3B8ED2FD658DF9B71F83C0E6D5CE41C909F + F5349DB8BA7F1CD3A6448C0998C6B63991FE63D3788769B8D80C9B7E80CD759B + CF91CC8A22292843D0B0191817B7074143B80DA9AD87FEC0E14DAFB903989362 + 03CC49B101ACBB6E013887D37D7CC8AE55405AD58E8AD03550048D7199F476E1 + 7CCBF1B6EF7EC7914F160F2EC05CE18E9B4D90165F46E48B19089FB2DCB30AE4 + E4E3FB4F977A0AB0194EECA4790207802DDC1EE008375FD7F4A820F9B300753D + E3501DBA127A8438249D916253819C7338FAD9EB0F0EC0F05EBD9E87BAE24B50 + 2AC23061E9699715D876F057FCB075B9AF00CE263C6B420F00B707305BF7E222 + D4D66B7165E86687A4B724CDB3CE87ECB3F871FB1BAE007C53076C00EBAEF36C + 9649BBF9E206C0AA50FF10FA0B21E1B311F95216F88250D715C83E8363996F0E + 36A0FFB5E3E67FA8B954864AFE123405C70C98F4A6552F5B2BF0ED19FCBC6395 + 2700F3B06003D82B0B7BB8B101ECF9C2BC87E6A19E5946DB6EA910355F84B070 + CF7FE7CA3C701ABF642571015893F1058054E920B9500AE25E24C4A1C9A07861 + 6E93DEB032D65A8103A790FB65CA4080A832E65FCF7B7C3B6C222EF5593BF840 + 5B89AA8BE51831FD5D8C7A66CDFD7483CCFD7938F195D039E07EC350393B00AB + 0AFD9B3919A415ADB8C17CF376068DE7D4FE072BAC15C8149D40DECEB440010C + DBE93EE3769AA4C76374EC5E04858EF4AAAFCF45B938B9EBADC000BA98079ACA + 0B12D45073400C5974DFDDA52F9B6B39DE213A8E53BBD7FA0B601E3602DCAA6A + 41A3588EF0D9BB313472B62FBA090C80323ED4CB9887F1083C192B82E0B1A77C + 96BCDF01CA4E2D6E14C8101CB5048F3FB7053C7EB04F93F72B606ACC18884B5B + 11BD600FE8D19E3F6D3D2080A8421E7823F255EB6728FA46F92D7973F81C3098 + F1D003FE078EF1F85E5B9D45980000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Synchronize directories' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000007454944415478DA + ED997B5054551CC7BFF7B52CCB1B35274058051C7B975199353DB554D0ACD49C + 297A610F2BED612F8A3FB6B271EA9FFE68D49A5CF3590E834F524B719149C9C4 + 9A9A10449D604130E2B1B0EFDDBBF7DECEEEE2B20B17F62E0FA9990E7339D7DF + BDF79CEFE7FC7EBFF3400AFFF1428DB580FF01C65AC0FF00632D60C4014A7529 + 1A89658E9047339435219DA03CC2FDF3752DF67F05C0BED5E95BAE9D55903FF9 + 96E58A1AA8AF5A8FEA32FDD605458D4F8E39C0BED5A9F99AC4715B72162E01CD + B2C422C97C126A133D1E9CDA53027B57C7930B8A9AB78E1900099D69943AEAD7 + 9C8717476B12127B1E8607F0167B7717AA76EF74484ED774124A67C6048084CE + 2F57DF73EFF48959D96105CBD95ACF9F43CDD18AD1125939BFA8F18E7000D2BD + CB9E1B5CB024631B02AC52DBA50830E8B782E498EC8C190A5050304C11918B53 + D28641BF4D29C03323366A4AC529B119F4DF2803B873F1FC111BB5816D4ABFED + B153347E2C3EA80C40616F63521401CC2FAC822458C650A6BC17BFFB74963280 + BC77CA61ED281EB441A56BC3906C92FC7BE5FA8DCA0072DF3E0C7B67C9C8081A + C129B75CBF5921C05B076037ED8A687446C346F59B4615AE03F3DEDC0B8769EF + A80B8AB40D837EBB428055257074950E43CCF04007B219F43B1402BCF12D9CDD + 074655CCA0D003E48D6163B13280B9AF6F86CB7C6864440E2189079AE18E6CDC + 190AA0034D2EB13FC06B1BE0B294C977127112879F7225F2F37B5B1B2A5B5AF0 + 97CD861672C5B01CE2541CAE9F301E77A4A42035369600EC0E00A4E892D25551 + 5419F9D66A2C344D0F0198F3EA3AB82D47231A9DA1D87851C43767CEE0EBEA1A + 74513CA213A3C04631E4A2210AA42F72B9AC1E724872E2C6E464DCDE62C1AAF7 + 9B29BF78544CBD2A5B7BB6F63C1A0A3BA95080959F81B71E0B3BB2C309B1D31D + ED5855711CED2C8FC4B45870D16CC8738622200C078EE6C0D02CACED76FC65FC + 1B769B633F117B4DF6B46C6D5666260EEEFF410660C527E06D2786257030DB61 + 6313DE397E0271DA586892D464B44548A26FBF069AA141931B8E568125E23986 + F5D5BE8B6271A1BE05515C1432B3327D70A5A5FB65005EF908BCBD6AC4845341 + 097DAAB50D05E51548CE4C80D3E286ADC309E204C4AB54709273B54D12103B4E + 83F169C9D0446B7A20FC001CED8551F5D47EFBEEBD7BFB033CF872113C8EDF10 + 3607224CE836871D8F7E7704AE78064E93130F6B33B0385B8BABC7259276FD12 + 9AAD3694D637623389ED989464A466A4F846FA5238F941B880574AF694C8002C + 7F0B82B37AC443E7ED63A7F03D9969E2C162FD7D3370DDF824C81709ED4E2756 + 949F44AB9AC3D469597EC132103B76ED90017871250457DD3045F77FBE787F05 + EABB2DF876DE5DC84E8C1BDCBBA43498ADC8DB7714D367DC84A484A43EE1E4AF + B7956C930178E17908EE3F071513CE2637DD3A050F2C6E1E13A2D561DBBB6873 + E0F1EF7F8226ED4A4C993225286C5802A10AE4C4A6E24DFD011E78FE29887C53 + 5841A3B52A3713F1F9877E464C5A0A264FD606E23D103E415ED8B0E3ABFE0033 + E7DC464E64E6080486F79477B535B93D61DFF5BE975F75167119A9484B4BF5C5 + BD77FABC34FAC1B537F1B7EF9109A1B92B3E04445BC422077B2FB7782D9AEC96 + A0AF7A7E4B52E09D4B765A94C85622AA5F2B6E328B5920B5F619985FC8562237 + F4AF12B939240786EB81D0B0CB31FC8E654B9F238245B285F0C023BA49CD93DA + E3AF05EF3D8FBABA73D0B4B7634B4E16598D43379E9587EB156EA75F79977434 + 90BB87E681EC2F3E44C1D2653EA17EE1BDB5FFDE83BADA3A449B796C5B908F24 + B526B40F89C7C1756B9501CC9C9D194660E4799063A8C6534B9EF60BEE81E805 + 71A3A6BA16E3CDDD587B8316D1643BD1B70F8AA671FC50430020634DE24D82E0 + FAFB4291A3B91FC0DC975F8F58E0E04CC4035F7E8CC7173DD13BE242AF173A4D + 9DF8F5E46F302C5D8E49718903F67160DDE73E80F43509B3288A3E0489AA3516 + 765E130250BA3AFD30F964964202C5652563C5D2471E0B1A759207426F1E3419 + 2FC07EB609CF8A6AA4488C6C1B4464D94B8C7503C3507A96A56378A7E773E37B + A6952100A355B46B92A5450B1F0D8D7B213417DA5ADBD178B6591078690BD99E + 6EE5F9AE9F5B74B05FF171CCC4689A9B4949F4724EC3CE56C7AB606EB59DB7B8 + 4C3777EA60BE6C000B173CE413EA26312F04CD3EC1502EDE858E8B26583BED70 + DB3D643D22D32A4B4115CB21669C9ADCD3683BD76D1305D7AD8DEF596B82BC33 + FA007979F37C22FFF8E334DCBC1B995769215262C013C1DE1025B14F0B122CAD + 0E7436983B2851C86B28329F087E7A5900E6E43E809AD3B53036345652147592 + 61E91513274D6092AE4C202773310020923341403659E89CDD6E745DB092330A + FFA3DB85275A74A6C6BEED5F1680F4C99360AC6FACB4BB4C0FB6E9604DFB283E + 9B61990FC80CB9481DABE6BC6142760DBE5399E0164092148E6E175992A46364 + C5FDCC58D8B57BA0F6471D20634DF22E329E6A227E89577C089C0E6A814BBE9B + A6A49BC93FC921814A92207A47B99E92DC65C6F7ED17C3B5FF9FFF9FFA7F00E9 + 80466DF1D53E900000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000007B34944415478DA + ED997B4C5BD71DC77FF7DAD7C636C118C7060C86BC97041702340D4DD62EA14D + DB343594B1B64BB34C53A5B57F4C9A54ADAD94165AAB904DDA4B512B4D9AD676 + 8B940442124A1E1D84A46B1242D68CD1401EB4894CC0D804CCCB0FFCE2FA7176 + 6C82838D2FB9860BCBA41DE9CAF6797E3FE7F738F7C8042C6259A68304A092D7 + 2212AD44881007EB08021C10400683D7760D74E0631CAC0341B620E54F4004AC + 86BDD6B7A6AA89C5108D84B27202117B80445BA9044AC817F1802427970EF811 + F827FC40BBBC13F867337E6A7A272C472360B0F86542D93145AA523B641E0A18 + F65A780B0FA003122FFA3A02E27D9154909EA81441429200481E19D18D47F281 + 4FF0311B092EAB07AC663BD82DCE7E84027BFB68EB21DC851F12AF54680B1ECD + 87337F3F0BBD7BC7C2BA1704204327CAA484A2A3C22554912C6B09082454CC7E + 3C82077C0C1082087E12939F1E070D86DB4618B739BF040279944AC5CEA0788A + 2780D3A7BE58580075B5F451BCCB4D58B83C294D32AD05010AE005EFB90E4990 + 582C15213C0C13B408C983FEDE0170D81D905FB80104A420D476E2E4C98503C8 + FA30258710C015E5EA648940CC07C7881B3C361A68A73728DE86BB48498A0461 + 22058929629029A440F1A9B00582C2C3DFC97BF5D84AD3EB8E37D42F0CC0325D + 7232129237E42B9232BC6E1FD8075D4E02C1A728106870DAACFF1EF92D8C07FB + 65EF13A703496D2680DCC313F04A542BD288A5A9F2480BCC80B96FA5BACF8F2E + 0C40F66F6407252909BB83E269B7EF10CE2CBF34E9EC63B38ED9272D2048F2AF + 4BD3E5B92BD72DC73E4E45BA13C1BFEF66E464BCD41CAFE51E20BB3A65332920 + 5A491E01BE89C0AF0CEF8EFD91BDE54269F658AA4AB9739DE67B11BB1DCB0207 + 8F1D9C1D4087D35F013FAB017FD5B2114000EAFE80E7D83F06C4C708A1DF1BDE + B5BC1DEF06A87420A68432832677FDD28C0C550CE15371C28303750766073851 + ADAE5AF55849C5FAA73E60B5F8704F23B4D6545C789BB2FC42EF717C8BF37F20 + 2EF5F70E29B942AEDD509807029E209C8962C5C467473E65063855A57E869288 + 9A3696BD440844E2A895508CD551E8E96C6A845193A9BAB4C25819AFF86CA1AC + 5E91BA74675EFE23A13CCF14BCC187C419E993DABFC406A8D329D212285147FE + F32FA426A7AB66113CB3D06E17B47D5E8FBC4EF773DA4A63331BED0A1D244A84 + B22F5255A94F6AF272808A4EA15116081E7AC1C20870B24A7D645961C1CBCB0B + 0A638B4631EAA615EBC000743436028ACD38A3FC9974C368A61C721E591FCE34 + 3103F81ED8546106D897D5BFE5C7BB5402B188F5CEC7571F59F7CE856668ECD1 + B3A38D98055DC22F734F3000BC8201C4E1AEF30521E041E660375F6B4D3D78EC + AE8C529DF1EECC3522005E9A06301F615C6CC0FDBAD69A061600D55937379597 + AC97244B39D9B5F8FB32CFD15A73920D80FAFAA61F6A35125972B8B1FDF419B0 + 9987E1A12C08D597541ACBA3005EC000931670DBC7A1A7630836FEE823407E27 + 172B72A69D769BA1F9E357BB4A2AFA72A200768601867BFBC06597C2EA2D2FC3 + 84E3F20344CC260E31749BFB5CE6EE6EE8FAEAE2616C81DD51003B260170BFEE + B64E50AED6824CA504AFE7BB59E6E7C2CFE31BA3BFD2067DD7BBDE2AAD34FE21 + 12A0EC390C9014FADDD174017277BC077CEA2EF8BD431C0864161E6F560BC6E6 + D8A0795B59A5E97C044051D93361176A397C0A8ADFF80C68D7797C9BA21F2884 + 9D086EC02F1C3802168F4DFA13DD983D0A607BC802B4CB03ED8D57E007AFED87 + 097B731C8B712370B6B66072F967DDE93EECFFD9931B1701F034065802A3FD66 + FC00E414BF82EFB36D8B239065800FDDE9831B5F7DDD8001CA620014872CD0DB + 791BC4B23C485FB30ADFB0BAD90B642582B98D60B186BEED3A18AEDF7AAFA4C2 + F8EB1800DB4216E83CFB2F58B3650F88935C10F08DC4BDB36C84B09D2BBAED6A + D325B0F40F3D3BF5DA1E05B0150324426BDD97B0E5D54A200237A30278AE42B8 + 8B998B871B81764C845F2B22001E2F7B52231427C0E5E32D50FCF30FC1EBFCFA + A1111EAC0F269796DA7383F8044E9FAA8D02F8BE8676D360BA65830D3BCAC1E7 + F9765105329529971C350DC1D5E6B666ECFFCF32028C9A8681A032203B771DF8 + 692367C2090E82BDA7430FFA6FF4BF2BADEC7B870160B3A6A7B30732354F802C + 550001BF950321DC59A9E3EC37306C1C2A2FAD34D533003CAEB9F68F6B50A8DD + 0542E108AB1378F10E35804B752DE0B48D2F2FD30DF6C604D854B251D3DED801 + C5AFBD01015AFF8049E7227CEEE37DB417CE1F6AB1E3008EB8714500E46ECDD1 + 18BF1B818D253B20E0ED6721227E40628E161BBB6B81F6339DE771006F630458 + B1215BE3F389606D91669AFFCFFDD49C132C435C196E9AE076DB9DFD18E04D46 + 00855AAE49CB488725493C7C63F3722870FEFD0DFA1118E81ED9AD7DDF749811 + 4022156B1E2B7B1D12122510FA3B655EE2B81DD35AFB0958CDE69C1775835DB1 + 01AAD43778142FA7E8E97CEC3EE3F31418BFF0D96203210497CFDDF15EF5F589 + 75517FC586014E54A9F572956A6551F9CFF0003FE702E7E35E8EB141B85873E8 + 5A6985316F26F87D0063E68A94CCAC55F2386E576C04CE7F2ECBA807BADA076A + F11D781723008E8191FCEDDBE5696BF2584DCA994016C36FB59E833B9D37DEC4 + 67C07E46805355EABF21027E1AFAF3FF612B08B902847FED8B157767BC9C3D7C + 62E32CFF07F86F97FF7980FF00189D9D5EAF9D43350000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Delete file' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000008994944415478DA + ED595B4C1CE715FE67676697DD9D596017B00DC65C020E080CE6660326695437 + F18395A4A9D587D48ADC97167C91A5347DA8D436226AD53E544A9CA8B1A197F4 + 2152DA344A5C2B759C8B5BA5265C828DB10DD8DC0C043BDCC1CB5C7667776E3D + B3F6227677767617B0AD48394F68FF7FCEFF7DFFE59CEF1C30F40D37EC6103F8 + 9640AC09A728AA545514CB118FA7E74102FB234595984DE8351529AF37329EB3 + 6B22D0EAB0EDC771F2346EC2915F149E3372B491F6266DAD37E3E4A7A53B8AED + 83D747449F5FFC6113CB9E49884000BC893CBDE7B15D248661A8BDADDB2B48BE + EF1D65BD1DF713BCB62E819BDFDB5D57654DCF7021966151DBFFBA8084A44B02 + 8BE62400BEA186743A5302BFCDCF2DA2CECE1ED6272B75C7386EE07E803FE5B0 + 1F4C22CD7FABABAF26535393577E67190EB5B57D290A3EB1F230C7F51B125801 + 5F5FB5023E685353B3A8FBE2B5455914771D1184B10DDD798A3A66B55ADEA8AF + AFC2689A0A195B5A72A38ECECBBCCF2B9485AF1B4260057C6D25804FD65DE8AB + C9AF51EFB51B9392ACEE3ECAF3331B01BE85A25EA669FB2B7B6A2B90D59A1432 + C6B2B0FB1D3DA25FF4E9BEC1150227EDF63233495CAADFBD9374A6261B2E387A + 73120D0C8E0EF02CF7F8CF6083D60ABC1921D3168A7A2D39993E0EEB22B3990C + 19F77A0574A1FD92EA15FCCF3771DCBB7A3E5608B4D86CD596244B575D4D199E + 924CC75CFCFAD0181A19BBD521B1ECBEA308716B006FDE42D37F71391D2FD455 + 95219CC043C6FD7E115DE8BC8C78DE7BA491E34E45F31372855A68DBD3044EBC + 5F5B514AA685DD7F3DBB32308C26A6663E9961B86700903F01F04900FE9F9BD3 + 9D4FEF2A2F4698C914322E4912BAD07D15312CFF6BD8F9DF1AF98A78C4701F1F + C771D3473565C5F64D694E6324AA8A2EF60DA2E9F98577A719EE47004C8905FE + 4D842882A6CE65676E6AD8595410015E9665D4D9DB8F96EE302760E75F8CE54F + 3F8CDA6C9508C73FAD282E70656FC930E6A028A8EBDA0D34BFE46E6D64B926A3 + B9AD349D065F9CCFCFCE2C2F2DC885D5B1085FDDFD436876E1CEDBD32CFBE378 + 36246A223B495B1EC531F2B392FC9CEC47B2330D9D68BBD67EF53A7233DCEF80 + C42F75C15BADDB10499C2FCADD5AB83D67ABCE4EA8E8F2E04D747B76E14300FF + FD78C01B12585994C03FDABE2DB3A42837DBD0915F94503B9C04C3F32F35B1FC + ABABC7345D4362E8931D05B95979999B74BFEF1BFD0A8D4FCD5C9866B9279B13 + 784F31C55CE0D831742E67535A75D9233911C7BEDA049F1F7D71ED862AF87D87 + 7ECAF06F6BBF9D74586B4944FE7BE7F65C5756BA4BF7BB21C82DC3B7A67B2486 + 7D22D18816979C0E3C3C07F5AF4C97736F25DC5DCC14FD335EF00189415590E4 + 0398A23004499CA9DE9E67CF88925BC6A7E750FFF8ED61F8734F23CB2E24023E + 6E029A3543DCCE84D09791EA78B60A48E0381E752EC37BD01703C3A27658B545 + 85642A6DD79D777B6109F5DE9CB88544B9A1D1EB9D4C147C4204EE913041FC7E + 2B95B21DDA5D988F08223A892596476618A7C2A441D0E6DC0CBA343AB1A8A86A + 03ECFCE05AC0274C20682D34FD0787D5F2F33A2001F223E1EF97381E758D8CF3 + A2287D67BD85D29A4B4A78DCBFB09AC9DFD717E6216B9886313206F44DFBF098 + 28CACA53208D3F5F0FF87511D0EC144DFF240937B5D617E462549225E67C8F16 + A546C65541560E1C66D9D3EB05BF6E029AB5D8EDCFC3357AA72E7F1BA20D4888 + 90ECDA462790D7271A8AB3074A20185EE161EFADD8BA196198B1BB7E0899934B + EECFA7586E5F7302C9EABE10D0129C8AD087392974ED8ECDE986096EC5402EF4 + 0289E965EECC14CBFEA0394EB9B0E104DEB05AB75A08FCE37C674A49512CC51A + C141453D509ACEF1DEB805DB86126871580A31449E2F7639B7E5A518546E0034 + DAA9C89AEA9C9E454B5EDFAB4D2CFBD20323000FB61CF4FB7FCAD39DAEACB0C2 + 3BDCFAE61711899B50516A8A2E11094874C249303E7FCCA2654308C09D6F0009 + F47145BACB9E61B31ACE1DBCE346E3CB5CA07F9445D9EACB5CA9BA24B4C8D40E + 6FC22B4A4D10995AEF1B8140A989E1EF55A5BB2CAE18F17E8C61D1909B0914FC + 30D34FD0F43F32AC96FD95F056F4A214883ED43133A7E586A885FBBA08FCC961 + 7F01C0FFB526CD4926C7C8B8B740C4F5BB97435A2ECD2002373BA8B75C66F3C1 + 6A9713E13A4A96835AA26B7E411454F9D9238CE7DC8611687550C7AD26D3896A + 672A46C5D03C3320117AEF308B8A28561F168489D563CD9A087450AF2793E4B1 + 1A670A22C3EA60CDDC7E115D5C72F382223E9548FB322A811607F50A85132FD7 + 808E4F3290CE9A2D8244E8712FB33E45356C3B82CFDF80CF5F45F3B970D7CFB2 + 5F51F7C4DBBE8C2010DC2D074E1CAB4976E8EE56C8CE8922BAC430B073525C3B + 173855CC74A22AD9815144E4A9CEF87CE82AC3CEAA92BC2B9E1A21844073F0BE + 12E4C12A0893788CECCA4114F97299010A7242ADF756DA7E88C44C7FAE71D0A4 + 4387C46DA8EAFA3DFC2444DA1A50AC73711168BEDB29FB208324F6EFB4DB62EA + 1A416BA730AC163D0E36F1FCDFE3051FB4406443A6F72B298A74EABCAF314140 + 235E61C0C3720D2FC241C7247092B63D439988338F51F698E045C8B25D509478 + 64655DCA32985BCAAD49F60C3232C20D0189099F68D8BE5C7D02495B68EAB32C + 926C283588F51280EFF67A112329EBCAA02B27712FBBEF4832BB327548F4C375 + FA5A94CE4EDF157F110A3664AB836DBF2C826828B598239C295A2B1122855B92 + E36AFBC54DE29EBE7A9424B7E5EA90B8020F7B569675DB9711772548225323B1 + CA99A622AFC0739D97950D5191E11654B8790451521846425BBB0D487814752F + 3CEAFF1A12082181E30DA5F7A2449F24A16959397BAFED276D24F8A0056B8CAD + B8A9B66455741A86B52764B9CF070FFA3894D531098493D05C4DCA72C26DBFB5 + 98B62EE9A03EC830E14F9641B21B8150AD8107A8DFD56B7C61B19C69620C61AA + 4562B8E7D6F28F8CB5587320A453EFD830EC804755A3828F49E0611A90306538 + 6CFB24C6D31E7E6DBE1104E2B56F093C6CFB3F8877D95EDBB5F3450000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Commander' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000003D24944415478DA + 636418E28071A01D30EA818176C0A807600CF9D8754B181918A307DA41C480FF + 0CFF973E5C1C1483E20185D8F5FF4BE25D07DA6D44819E85BB191E2C0E64C4F0 + 80A5B5FD40BB8D2870FCE841EC1E9056D01C68B711059E3EB88EDD039C5C7C03 + ED36A2C0F76F9FB07B6066B923552DDA79F43C83BBB521D53D90DEB97FD40383 + D303B7E6FB53D5A28AB907193A92A95FB2A9256EC4EE819BF3A8EB81CA790719 + DA93A8EF01F5241C1EB831D78FAA1655CD3FC4D0966847750F68246FC2EE816B + 481EF8141B0067F32DDE40964535400FB4403DE0DDFD142EBEB5549A220F68E1 + F2C0D539080FBC77B684B305F71E07D3B50B0E11654173821D5C3D8C6D577301 + 2E7FA8C5802CF360403B058707AECCF6852B7AABA90C670B5FBF4B5648D52D3C + CCD0146F0B661BE5EE858B9F9BEC4C967930A093BA19BB072ECDF225DF542CA0 + 61D1618686385BAA9A09027A69383C707126C20371BBDDE0EC45AEBBC8B2A871 + F16186FA5888077E9D50828BB359DCA3C803FAE9383C7001C903BEAB8CE1ECCD + 6167C17413D041C4803AA8A341EA61EC2F7B54E1F23C2EB7C9320F060C7079E0 + DC0C1FB822EB598A70F6D1B4FB648554CB92230C35313660F6BB8D8896AE90FF + 75B2CC8301A38C2DD83D7076BA0FF9A66201AD4B8F305447DB50D54C1030CEC4 + E18133D3101EF87F1A510A319A92570AB52D3BC2501505F1C09F9420B838CB9C + 751479C0240B87074E4DF5862BFA75401DCE6673B809A63B961F25CA828A486B + B87A18FB97172226D8B61D21CB3C1830CBDE8ADD0327913CF0798B169CCDEB73 + 8DAC90EA043AB01C6AF90F7D4426E6B8789B2CF360C01C97074E4CF126DF542C + A06BC55186B2086BCA0D42031639383C706C32C203D1535FC0D94BB325C8B2A8 + 67E5518692706BAA99070356B9383C707492175C917FDB55387B63953698EE5D + 758C280B8AC3ACE0EA616C6A980703D679DBB07BE0C84484079CCA0FC0D9FB3A + 1DC80AA9BED5C7188A42ADA8661E0CD8E4E3F0C021240F50034C007AA020D48A + 7283D0801D2E0F1C9CE00957C475510DCEFEA67F8B2C8B26AE39CE901F026996 + E71D4104CE249B6D1479C0BE603B760F1CE8477880E518A2EAFF6305A9FA27AD + 3D4E940579C19670F53076EC1673B8FC629F93649907030E85383CB0AF0FE181 + 7FBB75E06C26D72B6485D49475C719728220967B2F51818B6F8DB943967930E0 + 5484C3037B7B3DC937150B98BAFE384376A025E506A101E7621C1ED8D3EB4155 + 8BA6AD3FC190156841750FB814EFC0EE815D3DD4F5C08C0D27183202A8EF01B7 + 121C1E08B211A0BA65B400EB8E7CA0CFD022AD00DDC646473D408A0786FC24DF + 5005A31E186830EA818106000F5ED640CE5514E30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Explorer' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000003B14944415478DA + ED985B48145118C7CF2ABD9595D1E525B25A2F9988A9956D5A6AA9EB654D5921 + 134B8B6E6E4656962FE183F4625919DADA8DD2923268D33475566B8DDC4C4B4D + 446CBD54862F616466BD85DACE1906E64B0EB6BB736610FC5EFE873F67CFCE6F + 04777EA340B37C14725FC01C00BF70DB5B69B186A724DF3A850686CA133DC406 + 98D2EDD929C9F5EB1F3E4743F71345F9EB0300A5CF664900067BDAE800CC7771 + 9504E0F7F8281D804F65099200AC49ABA2033058BA4B120065FA533A00FD77A5 + 01F0D84F09C072271EAF7FA669C1A68565069CBFCCAB41BF20F833CE14260AF4 + 0FD4469C2D59E3A05715BAE0F43A504D07A0F7360730A609079B16D598B8FEC5 + 5AD8EFF88833DEB005F4D5DA37389B3246401F56B20CA7F7414A003DB738801F + 2A3FB069714B17CEEFB5EEA05F123BC05DD83D6FD037EDEBC5694CFF02FAA8D2 + 55387D0E5102E8BEA9C1EB514F37B0C9B56F08E788C10BF4CBB4169C1BF52B41 + FF4E378CB33AB91FF4F115DC8FAFEFE11A3A005D3734629C39E3F81DA104D079 + 3D0EAFCF979BC1A673A9C1A2F6FE479FD10168D7C78971E68C13A8A304F0F65A + AC24009B8ED5D201682D960620289312404B510C5E67364390E2905A9CA925DF + 405F9EB114A7B36E374A724A44C30A17496E8075FAAC37C06B1A80F92A0790CE + 8480DDA5EA669C49970641FFF8B412A7537224522DCF4272F804007855C80168 + 0DBEE003066D374E4D5E07E86B7203702A220251C8FA3C24874F0080A62BD178 + AD2E83CF3C4C1AF7CC139963027D433EF7C8A1F057A2D0ED45480E9F0000A6CB + D1761F1A7EAA1EC9E11300A0B1408DD72555ADE00319094133F64FCC63480E9F + 00000D17D5761F1A79864172F80400A8BF1065F7A1D1678D88F709921FC4147C + 057D5DF60A9C24FF4861D4FF9CC3E014FA0400A8CBB71F2026C788789F20F941 + 789E05F4A65CEEE996E41FA473843E21EA8B2DDE27487EB035A70DF4AFF3B97F + BB24FF209D23F409D15E2D0A7D82E40701998DA0EF288EC049F20FD239429F10 + 15400E9F1015400E9F1015400E9F1015400E9F1015400E9F101580F709D60F84 + 33A17F8473DE7BF85AE6CF06EEB50CC93348FB55C7EBE800F03EC1FA8170262B + 1AB8BE15FECC4C06F5E1247A06617FF0094A00BC4FB07E209CA9C6762E5FAE03 + BD22F4034E926790F66FCBA204C0FB04EB0700A093BBC3138C0FE89DD53D3849 + 9E41DA1F76B29E0E80233E61CBB0EE4105C0119FB0A58FC866E80038E213B60C + EB1E54001CF1095B86750F2A008EF8842DC3BA87F800A995FDD6D3DC1D3FE9BF + 66FA8BADD93A730072CF5FF16C124FE42C65D60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Multiple Files' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA864000004404944415478DA + D5D9DB4F13591CC0F11F9AF8E0EB3EFBBCC91AFF07401156F10288402B489102 + 5EF10E9461408DB2BB44E5DEA937C40B5E587157AD806677E3CBC6A8F8648C51 + A3C6C80A54B9F4DE9996B3673A5C24D29933CE9949FD2513A06967FAE14CBF9C + 8404F8CE2781E6C9F63AFE41B4CE854FE4FCF0D195D95DB7913714D0604DA4F1 + E6E1FA8317F0F8E59022823AE07849224426B52F44DF93B7E0F6F38A085D00E1 + 8876C0BFCF07C113E061C2C7C39357B111BA00040A8067EF5CE0C12BE09E3A62 + 21740184C2DA011F4626C08D57601A31818F817910C4009A85F971C90F604EFE + 09162E887D79B72F38F3E6C55B49FC3AEE0BC1531131F46906A10A40B3309E80 + 002639049A9C054C21C463CC138281D7FF39078746A3085500DA85F1F805C88B + 8158BC680104F8F02C208A09813728C0A82700032F3F3A9BB6A5A4AB06D02E8C + B81279495F235CE37E78F862300A986F9EBF1982A61D2B135403F4288C88C99D + 0781F0A5DE0D4FC0FB1137FE7EEE75EF3F7A05CD3B53D503F42A8C17FF9C9338 + FFEDC48723303CE68340283CF35867EF5368D9952601E2A5305E7C3BC5428823 + 4426811722D1D5A8BFF4005ACB7F9E05C44B61DCD195582AFB0B108739DD0F6D + BB57CF02E2A930E2E3A6E5CBE401A7FAA17D4FFA5C403C15862D4C5200F4817D + EF9AB980782A0C6B499607387A81DBB7762E209E0AC35A96CB5EA786BB0BDC81 + 7512600FF7373A519A044161523380566194014E701CCC9000BBED7FA19365C9 + 10A000A05518D692A200B803A72A32254079FB7DD4B87505F879ED005A85618B + 56CA03ECB7E17465D614A0F51E6ADC9E02BE907600ADC2B045A90A805B70A66A + 8304D8D5D28FF0C608BCA188668038340A53A3006031E0AC2D5B02EC6CEE4378 + 63049E201DC0F468290C539C260F68FF03CE55E748801D4DBD086F8CF0878C2E + 607ABEA5304CF12A7940DB4DE8A8C99500DB1B9DA8B57C158CFBF5017C39A485 + 618A57CB3EA7B6AD073AD83C09B0EDE41D84374630E60F83DE435A18C6AA0068 + ED81F3B52609B0F5C46D84374630EA3302405618C69AAE00B8019D7566095076 + FC16C21B23F86C0480B0308C758D02A01B2E1CCA9F0234FC89ECFBD7C227AFFE + 00D2C23025EBE4012DD7E1E2E1020950FADB4DC41D580F2E8F600080AC304CA9 + 32E0D291CD12A0E4D71EC41DCC0097DB080059616CA5EB659F53D77C0D2E1F2D + 9400D65F6E6040A6312B4058185B59863CA0E92A741DB34880E2FADF11579165 + CC0A101646080515CFD555BF45026C39D68D1C151B60D8CD2BBE48EBA8290CC9 + F9A24F2A3A7A0D392AB33140FF155053186280E5C855E4A8DA680C404561C801 + 87AF20AE2AC710809AC210030A0F7521CE966BC867404D6188019BEB2E233B06 + 8C18B1022A0A430C28A8BD8801268300E4852106E4B31730C00C2306FC215353 + 1862C0A69A4E64AF361BB3022A0A430C30579F47EDCC2643006A0A430C30D93A + 501B936FC85E484D61C8015567A9FD838364480B430CF89EE77F35CC2A6D7F3A + 7D340000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Error' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA86400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008724944415478DADD9A6B6C14 + D715C7CF9D9D7DD83B3BB3C6C680EBF2F07A5D680915346D53415A22852015A8 + 4B2243A47E68D3042FCF7E2A694512DA52482242BF3460B34ED2B452A5242020 + 08548950A9B4143569DAB821B414DB6B1EB51D636CBC33BBB6F73133B7E72E5E + 97F5CECECEAED748F448576B7667E6FE7FF79E73EEB973219452B89F8DFCDF00 + 10428A7E48B0A6A69C44A30FE3B356E26316E11317E1D712B699E397DCC22663 + 0F97B1BBCBD8D7392A08E7037D7DA3C5F639A17B2A006DA2B81AEF7E0A1FD7C8 + 01B86CF80CF6142E3D3AE9CEC63FF5F1BF35EC13FF8EE11527F19A379B15E5CC + 3D0568F378D653429FE7802CB3E37D3C36A72481B3B2121CF8C9BBDDC0391CC0 + D91D77842713A02712A08E8C404296213E340471FC54B1EF640A86FC0385EC69 + 8E444E4C2BC06B92B480522D88C257B9F07A87D309C2BC795036670ED85CAE82 + 46508BC560ECD34F217AFD3A24E27188A540E859426C814DB27CB5E400872561 + 2347495B192162398EAE50E783B29A39E82F5CBEBECC4DD761AC0F41BA43308A + B33446A9A213DABC598EBE533280A0C7B3CF4660978862DDD5D5E0A9AF0762B7 + 4F4DF8B8A5FBD59349887476C2C8C0002808A551783110893C376580A0281EB4 + 03DDE6B5D940F4F9C0357B764984E7B2587F3F28A11084350D92400E0514657B + D10098657ECE037D7E26CF83C7DF00F60AEFB48A4F5B72380C91AE4EB885B3A2 + 02D98B59EA85820150FC776C407F5BCD46BEDE0F766FB678555541C34E9C6565 + C58DF6D818F0E88A3C0E501644380C0A420CE04CA8846E08C8D1A396015A24A9 + 8EA77AFB6C8E1325CC328ECA2A43F1DD57FE0D2A02D47D6E21B80A8460E2D9FD + 0C80DD6F0491181A0419B354BFAE2B2AE1966E95E56E4B006DA2F0DE0CCEB6AA + AAA2025C73E71A8A0F61C0353CF30C543EB004FEBC633BD4B1F848A7D23C192D + 251EFD7CC5AB0761E8938BD0F1FAEBE06B6830848821C0E0F030DCD6B5B3CD4A + F4B1BC0087BDC2E34ECA1D9B8B23E3F6FB81A00B4D16DFD5DD9D12FFD0BE1753 + DF75BEFD760AC2377FFEFF207289C7FC1FBA762D25DEFFE493A9EFDE7F6E570A + A2BEAE2E0B82A20B8DE060DDC0998E13FD89CDE1E8715380A0E4F9A496708B2B + 30DBF0067EDF71F52AF89E7E7A427CDA5210DBB7413DCE980B1738231BC3052B + 74E306AC387868427CDA1844E88D37A061C182EC19C77818C6ECD443F54B0139 + F2404E80A0243DE6027AC687025CE8FB46AEE06D6A02DF0F771A0A4C43F86B6B + A16C120413DFD9D363283E6DA103AF40F8E8D1EC1F502373A5105BB181AC0EC8 + F27BC600A278A486234DD55555C04B926127F3F7EC8119DF5C93D345D2100D35 + 3550E6704C88EFC0B2C14C3CB3A1D3A7E1FA4F7F62F89B8AB5D3C0E020F4E9F4 + 28AE0D1BB2005AAAAB057B3C76EB0B3CEF2AC3CE337CFFEE99C0D5782E8358B3 + 362FC4C259B352D5E7959B37F38ABF7DEA14DC60E275DDF077160B63BDBDF04F + 558D51C153D9DCDB3B9A01F09A5778D40DB6B30D980EED5555606A0C62EF3EA8 + 58B7CE14E2FCB6ADA9927AC5A11673F1274FC27F76BF90537CDA9238031D98C1 + 46405BB5291CFD7D06409B57DC5F43B89DB58200366C790D213EFBD24BE0FD56 + 636E8877583D46C1BF31B7F8E177DF851E0CE07CE29969D128F460EBA3FA2BCD + 61E5D90C80A0249E5AC8F36B2B451188C399F7616988CFBCFC32781B1BAD5D3F + C9C2274E40EF2E6BE299D1441C8614053A54F5779B64654DE60C4862E7529EAF + 77338049B93F1F44CDFEFD207D7B7D41E2E5E3C7A1EFC73FB22C3E05C0D60404 + 6857D5AE6659F14F06B8F990DD5EED64EE53E8F61221E61C3800E2FAC7AD893F + 760CFA9FDD5990F83B0414E2E842EF27930308306B3280F60DBB9DE38A2CCC46 + B0790EFC027C1B379A5ED7F5D65B1045F1EEA27A41660CE23F26933A02D8B200 + 1E7138386E3C771762511CC976CCF5CB5B5B4D0396190BEC0B5B36C352B61D2D + 6237C7F6D67F48240C016E7E1D5DC8615050E513FF11D647CB5B5A4D53650604 + A6D80B5BB7C032ECAB508804F6F5A71C2E7465B9DDDEE02EC0FFA378EFDF30B0 + 96B71EB62C3E030267E2414C1842017D8E609F1792C9EC206669144764ED4C8B + 233215F15381B87567C64F0764655DE60CE042E6E36C3B7D1652A855F151B690 + E180085800960A2284FD86742D7B2163A58484A5C457F2BC6DB02CFEC81118DC + 71673F5E85B5BFB061434920FE8AFB02D9A894F835212E551486563A9CE56661 + FC018A5F96276027C4A7F33CCE8215888F31B01F34F10015DBB9447C9457A295 + DFA3349601902EA73FCFDB9A6A4DE2A0020B33C9444896F8B4598050F0DEDB58 + 00E6B21E7CE6BF54CDB89C66006D92FB512CE5CE7ECDC48DC42D5B610696D305 + 89B708717BF76E505A5B72F6FD17F6F2CB6C43C32CE8F17CBCD4CE2F31CB4646 + 1079C5E781C8279E659FF6A47A3110897C91FDDB7453EFC14D3D9B05B370BA1B + C2B2F81C10F9C4D3F4E85BD9D43363AF55FC367ED5FC3C29954138162F2E4CFC + 2488C4A54BA6E2995DC3C4D1A9A9D65EAB30632FB61C546FFFB2DD2E8A5338B9 + 298529A8EFC364524914F2628B5950129ACA813BF25574A5D2BC872EDC92D83E + 40D71905BDB0578B693B2C8A3F9308ECC6998002B63825310DDB876CD1A2B067 + B3A264BDAAB0FC7A1DE3E1971EC2EDF8D23D9C0936F27F67414BF557D1EF7F60 + 744D41071C6C26DC38134BB0FC9DEE98603E7F114BE6911C235F1400B3364978 + 82A3E45758EC89F3303B951A83A9B8CE0A354D63474CDF6F96A3C74CAF2FF690 + 4FA35AAB48B8D5F50861B5F4CE676C91EA42F10AD5CFD8886DCBB41CF2DD6DE9 + 63568C8D65B508321B410A8D0FE6E7FD28BC0785A3AF7F4428D93BEDC7AC5920 + A2B81A57B0EFE29D8D12E1CA2B1084C548393B82C5DFF9F167B2F3E0047E8EE2 + 27F3F161142E537D147B3E892BDA6FEEF941F7647B13C01597A48789AEAFA41C + 2C2234F55F0D2AC61BB361D62881CB4487CB94E3CE3965F9FC53A9D3FAE22C0B + E07EB5FB1EE0BF1D3AF1DD5E01B90F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Help Blue' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA86400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000095D4944415478DADD5A0B7054 + 5719FEEEDEDDBBEF6CDE9B9877228447A86DB5A853794C2530162D4918B016C2 + 4B1CA9809D765A540A5A9132B4CC58675A296A05C932A51243825211C2501CC5 + A90E020D509EC9EE266CD8CD26D9F7FB713D6721B49BEC665FA133F8CDDCECBD + E7DEFBFFFF77EEFF9FFF3FE784E1791E0F3298FF1B020CC3A42DA472D53E0913 + 54CDE219C113003F9534D1434524E745640343E4AF85DCBB467EAF307CF8142F + B4FD43F787D5DE7475DEB33B130295CD1D0B888495E09946225292E2EB6EC2EC + 087977BF4ED370FC332550B1A2A391BCB8859C3E7AE75D204B2642B682834ACE + 412E6621120A22074520188E1C2E5F0836971F56A71F76770023DE4B7ECE1221 + 3BF42D0DEDF7954045F39FAB18847E434EEBE935470C2C2B90A3285702B1884D + A907BDFE104C162FFACC2EF809B9BB4C8EF10CBB5EAF794A3BE1042A96B72F26 + 8FEC25A759425680AA2239D4395208D20F9D08C244BDC9E281D6E84230142162 + 2726ADD11F686C9B3002552B0EBFCAF3CC664620407E9618D5C50A08D9F12DA7 + 62EF1A040161C97E8A692C5DF4D99BFD4E0CD97DE0C3F43D661B898D9F654CA0 + AAB9E32D9EC17A21CBA2422D436176FC580D135966E21683762F9CEE60E47A04 + D4C5688C14E54A219308E3CAA06EA51F7021440811DBDED46B1A7F9836818AE6 + F65F0818668B48248AB84C3609D078B0BBFDE8EEB74704CF9E518887AB735092 + 2F8BDCF3107FFF586FC3E92E130C836EE27A32D2198AB89D662581DE739BB854 + 3012E831BF44420295CBDBBFC30898778511E315509151261E86488FEB8D0EAC + FD460DD67D73D2B8444F5D30E2D583973068F3637259765C1236324A698D4E04 + 0301626D78A956D3D49A3481F267DAAA052C7B5E28E2B24A0B64C855C437C8E5 + 0DC06C75E1ED8D3331B3360FC9807E91E7769F4597D6869202E5381DE38361C8 + 4D48F8EDE150F891DE7717F72445A0B2B9FD042BE2EA73945294E68F9F9F74FD + 56B46CFA2A6654662765FC08685E7866E719788202321CC71F82FB063DB0D8DD + 0805037FD5691A17262450D17CB8492060DBA45259C4EF59417C231CC4EF9BE7 + 9662F5829A31F7AEDE72E0B2DE0E6F208C1A22E7CBB5B918ED2D7A930BCB767D + 883C952CAE8E508887D6E486C7E346381C5AACD7341D4E40A0FDA2582CAD53E7 + CA49768D3F5A4484077C38FAF3D960470DA97B3BF538FCAFDB516D53CB94D8B6 + 7C0AA45C746F3FB7E71CBA4DFE71F5D8C988661A2609CFEBB9A03BD0F8485C02 + 552BDBE79311FBB84CAE2419568A44396ADE43D978BEA936AAED7C8F0D5B5AAE + C67C7EE16385F8C1C2AAA8B6BF7C68C09EBFDD1A570FB5B0CFEC81DBE5A0015D + DFD3D270322601529C1DE224D225F9D97228A5E3F73EC5E625D5985D5710D5B6 + 69DF1574E9EC319FCF96B3786FD397A2DACEDDB460B3E67A425D0E4F10835627 + F90ADE5632AC2E1D43A06E69ABC225119B654A95A498D4366C1235C22FBF3B15 + D3CB3F19454C561F56FEEA23C49B62F87D1E7CB0734E54DB856E2B7ED4929840 + 90C482912439B7C3EA066BC9D3EE5BE58D2250B3F2C83C8615766665A990ABE4 + 120AA4583BBF0C4FCF2ABE77ADF9C080FDA70C319FF5F9039851CA61F7C6C7A2 + DA4F5F1CC2F643DD49E91B76902AD666255E14AAEFDEBFE8641481CAE623AF4B + A4B29754594AC825C955966291002F2CAAC4A33559B8A47760679B16BE40786C + CF93643434348CB69FCEC2B47255D4BD5DED5A1CFBEFE0B87A467CC1E90DC16A + B7C3E7F1ECD269166D8A2250B5A2E37DE23E4FAA94B248993C510810E3070686 + F0FADA87D1F878D9A81E0D60D91B5D24B185939245CB6E1BC9092EA7EDA8AEA5 + E15BA309742BB3F3AB95727152FE9F9CF124F0CCE698C653FC44731367AE5A93 + 961722B5B7C3E583C33A785DDBD2503B9A8049955B54A8908A9070FC4C02B424 + 369B07F0DA9A87621AFFFB93FDD877EA768A42891B7902B00D1B070801F56802 + A19C821281849B18F7B1DB2C78B1A10AABE68FCDD21DFF265FA5A3372DB95EE2 + 6EC3664390B8906834013E575D06119B79F75399D3D501EC7DE12B63EE1D3B37 + 8CED7FD2456662E9C01FE43164EA8B49C0945358522814264E600995F8BC687D + B10E934AA22BCDCE2E0BB61E4CDF788A603008CB8021A60B751317AA6685A2F4 + A5DF855A11C4D1ADD119F75ABF1BABDFBA814028B385345295C26236C40CE2F7 + 55B9EA2739892C230514736AC5D8B57A4A54DB86777AF09F9B8E8C65FBBD6E58 + 874D6387519AC814D9392FC99539192B79EA8B59787971C5BD6B9ADCBEBEEDE3 + 8C7B9FC2651F86D3661D9BC8682921E4249D3985A5192B99334D89D79695DFBB + 3EAF75E1D9777419CBA5181EB88590DF3BB694A0C59C5BCA0D1596D47074F924 + 13704206FBD757A3B2401C09D8575A0D24806D191B1FA6B9C5D0EDE605318AB9 + 91725A95A75E2253A4363D8C0596F7634A11432A481F8C4E21445CAA4BA76341 + 2A5192C44CB1CBE991098D5028395E505295891E526CB9E8588DFCAC3B55EDA0 + DD8F3C9263C452794672CD062D1946BD0BB4FB1B4FC49D529209FDE5FCA28A69 + 1299226D455E4B2FDEF8DE0C7CADAE3072FDCF4B0378FE771721C9294F5FA6DB + 8141A3BE4BA769FA02BD1E7752CF71D23675690D90E69EC186B91CBE3D27DAD8 + 83A77BB1FBEFFEB4E4D11992E95637FC7E4FE249FDDDAF702227FF73F5A43A4D + 4BDF7B1B4B509C238E6ABB4D62E1E9370D69C923D5272C83FD9D3A4DE3FC4F38 + 2558D86285C28F8ACA272BD209BE3D6B8A31B5249AC015830FEBF6A6587D1204 + C834D4D877C31E0A06935FD8A2A86A6E6F1672E21642022C9B5A7D34B3468A1D + 4B0BEFAD29D145EA1FFF7100677B3C29C909858230F65E47D0EF4D6D69710474 + 715722956F292A9B0C418AB9A1B698C3BCE977CA929397DDB8763B35FFA7633E + 35DEEB756DD76B1AB78EBE9FF4F27AE58AF6DD6289FC5975D9A494BF44BAA03D + 6FEABB01BFC7FD6BADA66143AC6752DEE01072D2CD45A59FC744147BE381166B + C6BE9B08063C3BB42D4D2FC77B2EE52DA6C8723B2BF82D49488AAC5C7546DBB2 + F10CB20F9B6802B4F3A1F03ADD81C683899E4F890045D9CAF61A368CB7894BD5 + E7159561222A570A97C38221632F7C5E77270FF6FBF76593EFD3A01B7E64E2FF + 8A44AAA8CBCE2B8252950F019BDA2E65381422E3BB99D6F6F0B99D177801B3ED + BE6FB38E4664A31BFC6A86611749E50A092D02C52446689C0848C00BEFCEEEE8 + 5651980426F56FD2CB703BADF0B89C5E9E0F1D219AF77DE61BDDA3317DC92185 + 4BC23D4E4EE7D27F352012A7136974423CB2F26B2607ADA7AFD07F3520BFA7E5 + 5EFF99CBAD4B9DE9EA1C43E041C5034FE07F3329E6DD95AAF426000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Information' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA86400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000079B4944415478DADD597D7014 + 67197F76F73E76EF3B975CEE0A492E0950C416156A6BA5A2B403C54EA9F94018 + AD5C80CED88E63ED7F55E473F814F52F5B1DC5D152B8EA8C65C887ED744AA31D + 2A8AB5ADA515152984CB2584E672C97DE676F7F66E777DF64A682FD934BBB701 + 077F333BBBFBDCBBCFF3FCDE7BDEE77DDEF7256459869B19C4FF0D0182202A56 + 32E7D1176C164E5C8E8F2B00E44578572E375EBEAB4DE278A5F13A8796F08293 + 02439DBAF2CB87D84A6D5EF3DB0881C650F76A54B519BF6EC13BADB3EF78FCA6 + 07EF87FBC3AD276E28816047771B7EB81D1F977EF02D80CB66862AA7B574B75B + 29309BC8D2A5A050944A572E2F42862D40329B2FDDAF45AF0CEFC824B1277AB4 + B5EBBA1208867EDF448078081F5729EF1674B0DE6787809706AB99D2D583F982 + 08C3091E06E3391090DC55F4CA403D160D7F2532EB041A37747D1D08F8053EBA + 4C14094D013BF8AB18202B1F3A2548683E96E420329C83A258229241671EED3F + DAFABB5923D0D4D1B95F9689AD0449428DCB0ACDB738C04419F4FC2A26EC2ACE + F75D1987D14C1E644942B97C2072B47D9B61024DA1EE9FCA047C9BA22868F4DB + A1D6A373ACEAC4488A87FE580E445144E7E0679170EBE315130886BAF69204B1 + DD643263AFDBC163B7687242D1A9C4F6589A2BBD57BB99D258D19A285239A114 + 52854201434CDE170DB7EDD04D20B8A1F31B24493E67329B31DE1DE0C6ECA215 + B1040B0FDFDB002DCBEA4BEF3DA707E137AF4621506DD7AC238D592A323C0E45 + 24811E7E6DF298F858020D0F1F6F2629EA8CC96C71D5F96CE07568EBF9097CF9 + 0E1F7CF381F965B25FBFDC072FBD35A24B4F625C80CB71164908194914970CFC + 76ED254D041A435DAF5066CBAA2A27037535FA63FED0E34BA68C95783A0F8F3D + 7D46B7AEC1510E92190EC4A2D0DB1F6EBB7F4602C150673B4952C719C6564A95 + 14A9DB26FCEA89A5E0735BCB6463985D1EF9C9DBBA75299955190F1CC7822489 + 6BA3E1F6CE1908749DB55A99DBFD5E3BCEAA26FDDE2336AD6C80AFDE33A74CD6 + 79FA0A3CD33B5091BE0C5BC47195837C9EFB270EE8C5D31268DAD8753F01D409 + 9BDD895983814A33BD324784EEAB877B175797F49E3C3B0A47FE3888B9BEB2CA + 57F96A30CE019BCBE2B3B83A72A4ED155502589C3D6FA19975351E3B3899CA7A + FF7A21CB156134856507CF1DC3E26FFD1402B7AF3FE6C8D1D6B8CDE9A6035534 + C6FE87FD6FA0D29E35885873BC8FB5139B4DF30243560F1D5AC3961198B7B167 + 254151BD2E9707BC4E7D6953415FF4CA8C6DE605E768D0343D125901329914C8 + A2B8AAEF48CB1FCA0834867A7E4433B627DD2E27D8697D95A58257F7DD39639B + FBB6BF6988408E17219DC902CFB13FEE0FB77CB79C4047F70B76A77B8DDB692B + 95C97A715203811506092865773ACB2A61F452E468EB8393095C70796AE63BED + D6B2F8D78A3FEDFFEC8C6DBEB8ED2D4304947190CDE16228357A114B8B056504 + 9A3ABA636E6FA0D6C160CD6370D0FEF9C01DAAF22F6CFDBB31C5E8EA38578074 + 627804FF01FF640262956F2E495B2A987A27E1F40FD4092CFBBE4102085E9020 + 191F929000358580D75F4F9A6761A1F2FAC1A5AAF2BBB74C5F4A684DD5425186 + 446C509540ACAA766EADC9647C027BE3E01255F95D5BF4177393512C16213932 + A41A42E731846EA54CDAEBFEE9F0E60F3FA32ABFF37BEF18D62D160B4A08BD87 + 0416961150D2A8C7EB5F63A16D868DBC71F0D3AAF2BBB6BC6B58B7C0B3904AC4 + 5EC42CF45039019CC81C6ECF937697D7B091BF1D58AC2AFFDCD6B38675E73209 + 184FA7A64E644A294159ACBDDEDA7AC3465EDF7F9BAAFCEE6DFF32AC3B313208 + A2909F5A4A346D7E9626A4AA31DFDC79365C0B1B32F2D77D9F54957F7EFBBF0D + E9952409E2437DAC4C26AB238737F1650426CA69B7D7BFCEE6F41832747AEF27 + 54E5CB76FCC7905E369BC2492CA65E4E2B049A3BBA57E25AB8D737B7D990A1BF + EC5EA82ABF67D779437AE343114CA3FCF40B1A058DA1CE776B02C14FD136A72E + E5972F7D18DF98E254DB60AABEF65CD77CDB8C3A3F0A9ECDC2E870F41FFDE1F6 + 528AFBD845BDC5C21CF7D7CDD3B59239B56BBEE6B60A96EFBEA8BD31FA18BBDC + 0782C0CDBCA857A06CAB786A6E59E5F2F834DB786DA7BEB0FBD29E4B9ADB6652 + 71488DBEAF6D5B4581B2B14599A833FEFA052E8B55DBC4F6DA8E467D04F6F66B + 6A27E459880D5EC888451D1B5B0A9A429DEB4C16FAF940C3AD4051FF9B05BE28 + 166178E03D280AFCFA48B8FDD8477FD3B4B98B6975B7956676061A1682D1B941 + 2F949C3F3C701EF23CB707D3E6AEC9BF6BDE5E0F86BA9EA269FB77FC0D0B6ED8 + 3FA1F47C6CE002F07CEEE968B8ED09B536BA0E38947FC26CB1ECF4D7CD072BA3 + 7D87B912E4B91C669C8B501004D59EAF888082E086AEB51846CF78FD752E7775 + C0D0B1EC740EA5C78671B1723983E1F348F4B9B6E333B5D745A044E28343BE9F + 5B69DBEA6A7F03D85D55B3E27C2E9384B1D800C63B7B4206EA5BD7E590AF8CC8 + D563560CA7A5583B8113E70BBDE34389F32CE677AC6D94B0795B26887DD7FD98 + 75324A07DD84BC9100B285B6396C36871B68C601162B0324AEEC264829CE4AB8 + 9212F21CF0DC38B0E3692C0DC65919A41E90892337FCA07B0A914D8769A2E85E + 0E24AC9025580404B9084D28F135116349B49004593A4790700E2438299BD2A7 + FA9FDDCC576A730A819B15373D81FF0232ABEACE526FA4DA0000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Warning' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA86400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008184944415478DAED987B5054 + D71DC7BFE7DEBBCBB22C08C88202BB8BF250C1C06882A2561B4D4DDA9487491B + 832633994C6DA78D76FC278F49C4B816B44D93493BA91DA7E9A4D332B54A9DE9 + 04963A46A7F15523D6FA8A3C5404DC5D50DE8FDD0596DD7BEFE9D9C59A6C5864 + 5940C84C7E333BB3F777CF39BFF339E7FC7EBFF3BB84528AAFB3906F00660200 + 2164D2073695E89E97415E6623736C890E141459FE32D936BC739F0A808A12DD + BB3C4F5ED546F2DEB1DB7B448832FD7DC10EEBB6190F5051ACCF251C4CF31214 + D04425B2B17938BACD686C717B0C6ECE2FB21E9CB100278C492A9B42AE8F8DE4 + 12E3B41A44243FC7B41CEC8D87D1D661477BB7D4EA140753371A3B1C3312A0A2 + 44FFB62090DD697A0161F1ABA19C95E2D5BB6D4DE8BF731237CDEC2889F4D779 + 459637661CC0116342A228F0F5BA39BC6A768C1661FA5CA6FD62DC7EEB3FD1DD + D906CB5DC9C9F1C8C87DD3D238A3002A4A0C7F53ABB029D9C0563FF17BE05531 + 3EEFA5A16E0671048D1637FA9DF8387F87F99919035051929403C8E752927844 + C4CC4368EC2ABFED9C1D55B077DEC2CD2609949075053BCC27A61DC06804B754 + D05F889E4596EA12946CF573418450FF06A5210C349B60BDE342578F5C1D2E5A + 96AC35429C560053B1EE65C2933F2D4A11A08E590C656406DCA28CFD076BF1C9 + BFADDE364F7D4B879F6D4A8742E0E0EABB8E81CEABB87ECBEBD0AF14ECB4EE9F + 3680BF1BB51A9510DA101FC7C5C6C569A08E7F8AF92D8F7D076A71A0B2C1A7ED + 8B7929D8BA7911FB2763F0CE31B4B5D9D0D22A774B2297FC8CF176EFB400984A + F4EF2895787D611A8FD098E5E0D5095E7DEE4FFF85AEDE219FB631512A98F6AF + F3FE9706EF327F3887BA7A094E57F0197A4200E5BF4C4C211257333F89534669 + 63A0D2AEBEFF6E45E1D111ED43943C4E96AEBFFF3CD471163D9DED6868924599 + 43D686B72CB50F1580252D53B886E4A626F350C57E1B4411FE2580E37EFB9C3B + F4050075DBE16C3FC50024F4D9E8F1FC22CB930F0DA07C8F7E3D071C4B5FC021 + 2C5AC7326EA6CFFB9C4D9FFAED5775709DCFB3DB568D7E764FAAB92E83CAC8CB + DF69A99C728013460876417F35564BD2F53A0542B46B40B890AF009C1C05E071 + 5F85ECC250E76958AD2EB4B6D35B4E313C63A3B1C635A500A662C3565E41F72D + 4EE7A08A4A83A09E37A24DCEA6D3A300AC19A193062C70F6D6E15A8DCCC22A79 + 2DBFC8FCDE94011C352646BB04AEDEA027D17173C3A08C5EC1C2E6C8BE398567 + FD031CF293A1997D574F15DA5B1DB87D9BDA445191FAACB1A17D4A00CAF7E8F6 + A95564EBE20CC212561638E56CBFED961756F9D59F3F94E3572FBBBAE1EEBB82 + EA1A8A8101FA11AB19B64C3AC0C77BF5E99C8CAB0B171221727634848847466D + 9BB3E982FF1D38983D6A1FD15E8DBEAE2ED4D55199CD273B6F87F9D2A402B0A4 + F5696414D6A6A57150443EC612AE6AD4B6CB0B2F8EB2038F8E3E19C9C976E122 + EA6F4AE8E9C667AC66588531246080F2625D3EAB71CB33B308D491732184CE7F + 60FB658597FDEAFF7368C903FB4983B731686BC195CB9485555A9857642D9B30 + 80A74CB40BF2B5F804A418920428229678EF3B0F06B8360AC02378B0C82C375C + 86D5EC86B519CD116E2E75ADF1B6734200E525FAD7950ABCB384EDBE5293042E + 240E63C9B2E7ABFD03942D1EB3AFECEA80DBD188CBEC14BA5CD8C532F42F8206 + F88731395610DC0D2969D0C4CD09051F9E31E6048601EA46015814507FC95187 + 8ED67EDCBC01A7204AA94F1B5B9A8302608EFBE7300D5ECA62A78657A7B24245 + 13D004566CAE8728F97EF1235E80B480FA53690052FF0D7C7E05B0DB51C676A1 + 70DC00A63D86A5ECDD85ACA5940B8F9AC56ADCA4808C7BE4D9ED16585BDD3EBA + A404050EBFAF0F780CC96986BDB717572F12E61964D58622F367E30260B7CDF3 + B1715896B688B0D5672BC72902367EF48C033B7FD7E1A32BFEB916DF5D1DD80E + 0ECF4EF4EE42FD0D8AB6BBB87449B464B3F2550E08C054627881F0F4AFD9CB29 + 4234312CE38EEDB85F95F39F3B5179CAE1BD697C7F8D06CB3355E31E83BADA31 + D4DF810B55049248B6E4EF347F342680C918AFA60AA1DE308FC6EBE7F1E0BD31 + 9F1BB7F1C911CA7243039ACD129A6E9176A73898FCE5AF7A7E01D8D1D91DA2C2 + DBD92B6508AA392CE4474CD3E4EF4D5272307FB883FF5671181CA0EFB17BD26B + A302987E355F4F45F1467A265569E72AD9D1D10565D42D5256D83B70E4CC700E + 7A7AB50ADB5ED0402104577B53570B3ADB9CA8BE425C9497330ADE6CBEE51780 + 555A872323F1C325D9CCEF95F1230A9540E5B7A5FD28AD18F4D1BDB42114DB5F + 0C0B6E1B58E12333084F44EAE922952CACE68D00A8DCAB5B4D2939FD183B3A9A + 0835AB716707678CC9FA2D3674F5FA040C68A3397CF261F0C7918ADDE8B73970 + E12CEF09454F16ECB01CBF0FB07B37E1960A86CBF13A3973014BB644C9CE3EF8 + A08D7DC70BE09BC83C00C73E0C0F7244AF3BB3A3D48A9BB5408B85D4868B96AC + C77751D10B60DA6BD82808285BB14682329419E18337E491DF940EA1B4DC3791 + FDE8074A6CDBAC9CD0B8EC8E01B7D38673A778882EFC24B7C8FCC761803DFA73 + F317D09CA4548E5D173C4767621F7BDD22F08732374C2724EF73C1133C7EFC9C + 8239F1C4E6EF112A76C1DA28A1BE96BBC48A9E47EF01180657AE9354EA709629 + C9F813CE4315EAC4D0801D678E0B2203500C0394E8CD2B9F90F56111CCC9C824 + 2CD39402880CA00FA78F09BD0C20EADE0E24BD3A2B5A7E372DC3138128F8E0FD + 774A4566E1C761239EE383DE2E62CC7DCBBCFB7E18AD28D1BD42C16D27A081DD + 79A74F9AD8EF0376B9FB60D72E2AFBBD0BC98A908985A1A912413950F0C60DFB + FF1FEFE781AFB37C0330DDF23F216718DDF1FD1D830000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Bulb On n p' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006FF4944415478DAE599696C54 + 451CC0FFF3AE7D7B525BA02DD4B696EE6E917A711F51C1231A13C5235E186925 + 5E5FF088864412037C5149D444FC00C4C416128F18631035315E20D65AD00F6A + AD747769CB36525ABAB4D06EF778A7FF99F7966E419B826CBBC449A6336FDFCC + ECFF37F3BF664B4CD3844BB990FF1D002164DCF79177ABE7EB1CB98700590160 + 56E347C5F6AB3EACED38FB2B9DF07BE7D6B587C75B67A2725D3480F6C6E00A02 + C6AB826C5CEF29D2C055A881281B2048D6FA9A42404D72303220C0484CA4CF5F + 9B1CB7B1666DE8972905E86AA894151077884EA3AEA8320DDE6235EB2D07C0CF + C0D600D0FBB3840318EE13E164970CBA42B6AB2EE9B9790FB429930ED0D65059 + 2210E133EF4C6D6171300904E505A114C0B51A888C1A24CE193B590D8199FA11 + 60E4530664E804FA4232C4FBC52690C83DC135E1D8A401F4EC9CE58A3B3C072E + AB482DA03B0FC401E05D07C47D07BEE5C75FC454C14CECC563D8CDFAB14E1906 + FF72346B4E7155E624720E10DE15F8C85BACDC4F771EF82220052FE2EE579CD7 + 5AA046C03CF53A6AD8301CFFD309C3FD62434D7D645DCE010EEFAEBE4D96CD2F + CB17C6516D64147E030A5F7C5EEB8C42748379FA4D30750D8E1E728392841573 + D77534E70C00B6102E5CE96F9D559BB8D28DDE063C0F03916A2F4C78BB98E99F + D12EF6C0F009117A0F3B0F05EB234B7206D0DEE85FE9F418FBCA178EE0AECF02 + E259F39F846700F4CF70231A760CBA5A3CA0AAC2A2E0A3EDBF4C64EE79038476 + 05B64FAF4C3F5D588186EBBC093D4DD57F0660456907483541AC831AB4F846A0 + 2EF2624E0022BB02AD65F3476A652FCE73DF892B881707C04801243E87C4A000 + C75ADDCD81B5A115390140EF93AC5A3E2CF312BA4D7942DF31F1923A005A5A83 + AE9F7CBD81BA5069AE004CFF8D4318643DA83EC18B0BA0FC89069184C8F73E08 + D485C944A65C380091D0882FBFB8005A37189A061D4DDE210498962B80FEAA65 + C3D3790937882F1867A46C456722801599311F021D7758A17E934A7BEE147D10 + D41481AE839EEE605D784251F14200BE9E7D55E2169A6DB264ED9C15254BBD08 + ADB265E4C41E676A96F04602DB38B6F1B3261B2CC93B1E72BE1F5C1B7E244700 + FEE77D25DA9B2C853867351498C353E17C1604E7B28040B04E8001A42CC12980 + 7E0AFBA7C62CD1D3EA82C480B0C65F17FE20270047DEF3976113AD5A16E70897 + 3597AA0A5788DA5238168242654E8AA94FC202306CE1F5016C87D86B5D45F569 + F1263CC99119A54F1E4BE40480E642A186C09E19FEE4EA82D959293C159A9F6E + D70C8407C7BB2C3893DA80824DDC1298093EC0A22FAB0837107540ACCBB1B3E6 + B1C8D3394DE610A086178DD68AC57181174D4B407EA65D2D08C24EA3C0B6055B + 8568B042E14DB6F3B1AC7A02B4E410447F76A74C959B175817EECC7D3ADDE8DF + EA99A96E28999BB454E50C805549E634B869B61A192C6DCEECBA690BCEAA7602 + 7A7E1D829193FC4BC1C78EBCC6B46D322E34430EF7E1B2AB13E5AE2204104A6C + E14B70C3B361665880D480A9DAD0AB250A6DEABDB6F0BD10EFED81E3BF27DA35 + 9774CDA45D68684155BA4374E95F542C91D05BDA000842F84CBF9401B13E355E + 2AB476DC02D07AD9B3A1F440F4874E434DC30D35F5A11F336B4FDAA53ED450FD + 61E115DC8345FE5161C999D328B65AEA91D080AD13E863BB6E32F5E985FEB636 + 188C0E9EB9894D3A00BDD88BBC182A5F5AE493BC0821646C60A6ED562FCBB281 + D396EF672A1483F460177437B7C634550ACE7BBC6D604A00680937F8D7CB85FC + B6B245578C7A2166C005762C902C37CA62007A21761227A1BBA919D2C3A97A4C + 1B769DBDE6A402989B01AF99D5074BAF2E5CE8299D7D260E1016CC300EB0480C + 2C0A67E2C0E9683BF4B51EFD1E7DFECA7FFA9E49FF65EE7043F54AA78FDF57BE + B4CCF2FF54781A033819465389D1481CFDE1375012CAF598F334E50500FD854E + E5C564F52A5F561AE1B213BAEC54C2CA858E7CD309AA2C39CEFE456ECA006809 + 35FA4DFF4ACD4EE432D9A894954A685634C653887C3B04C1FAC8BF2E367500F4 + B2439337CE350A0059E93475A7984E47F64BF90C905DB8B1F701BBD06B63DE01 + 3CBB65E7792DF6D6A6A7F20FE0E5F50F812008208A3CD091BA6182A11BD85A35 + D3DFBAE3E3FC04983F6F0EC8B2042ED9C1C6AA784957550D144D070DFB8AAAB3 + CFC29DC7F213E0BEDB9783CFEB86029F1B381C9B4C2B904A29568B3599B2DAFD + 2DADF90970C9ABD0926B83E04415A295A990AD320AAA91A6E9B64AE9F047389A + 9F0077DFBA94A9D0349F0B1D28AA90A2403AA58EAA10D634D60387DAF213E092 + 57A16BAFAC0297D331AE1752141522477BF20FE0992D3BF77A9CF29DD7D5CE81 + 05B5D520F0DC182F944CA5A123DACB84C7E7CFB66D7AEAAEBC02A065FDE67796 + 72C47805BBABFE65C83EC3E436BEBDF98996F1D6993280EC726FFD0B07B1596C + 3F7EF749E31B374F746EEEFEC99767E59207F81B7C6565DD3B067F5E00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Installer' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000300000003008060000005702F9 + 87000000097048597300000EC300000EC301C76FA86400000B164944415478DA + D598097054F51DC7BFFB8E3D7367936CB2C42426109044EE43271E15AA454971 + 002FA8050469673C4A696D673AD076C47174BC6A8B4ED504B1452C2A4A457022 + CA114E110821864288312101B2C96EF6C866B3FBF678FDFFDF6697DDEC6EB28B + 01DBFFE63FEFEDFBBFFDBFEFE777FDFF2F32FC9F37D90F2DE09A01CC7BB6ADB9 + AECD502CF87878654A7848F732E40815F9AE8287E5052FE3333F51E1331433DF + AD58B5A0F4EBFF2900CDA2C33E5E2E9729956A225E7519828A6738372B775B96 + 4DF61874D67DEBCEEC7FF7AB1D3B76D802BFB55AADE61F1C00F71D15C1A99092 + 9404B94215269EFC591F99EE328C326C7FCFD9F3ED13E9A4B12C4172BB61B7DB + A5EEF57A45A7D3D947FAA543870EDDDDD8D8D87C6D011E6A10C1AA4121346A35 + 78DE2FDECB786CB969DEBE55E5AD2DA9D6AF2BE6CE9DCB118BA3BBBB1B068301 + 1E8F276C1A9BCD86C3870FF71F3870E0660271F2DA01FCEC5BC90360695743A5 + E2DC1CEFB17918C19AACF6F4FE82DF30EEB78FAF9077747480F6B6B636C9F281 + 2697CB919B9B0B8661D0DBDB8BDADADAB6AAAAAAC26B07B0F4A218100F8E7383 + 755B154AB78D613D569E17EC2F177C5A71D75D77CA1A1A1A70A0760F606F82CC + E7844CE67F04A3D2C2D49F823BEE98255DDBBD7BB773FDFAF5D3C8D037D70660 + B9590C150FD64BBA60E1E56EDB4DCAFA514F8EB78E2E2E2EA6C260B79C854E38 + 84A25C75D814C72FEAA1D6DF8EFCFC7C1C397244DCB061C32CA3D1B8E7DA00AC + 748901F11346796DF55D8299977BEC15F9D6F1256293764EAE13797979D8B973 + 276C9E4B9896D9892CD61036C5996E2D9405F742ABD5E2E8D1A3281B93D6B878 + D9A337CB6499B6B8755C31C0633E1748BC2F9AD8DF5E28D46DEA4C1DBBC4E2F1 + 95293D1D2CD7B6173F2D2F9162BCA6A606FDCE3328CDB4422FB781957983539C + 356AA11DFF30140A8504507E3D83850F2D71F6593A9767E4DFB6F9AA02287FE3 + 362C287376E45CD8F2DC9F97DFF0F825BBA262CBB14BCCE9D626A4F41B31BB6C + 2252535371F0E041C0710CE3D28DC8D484CF410132C62D2605402501A4DB3FC3 + EC1FCDC4F81FAFF2097DE603C9BAD2CA44BD1137C0F3BB5CC70BED3B6BEE9D7D + C3AFBB5BBF5636EDAF825550E18CB202972E756366E97449585D5D1D94BDFB30 + B5A03F620E0A905C723F5252522480340230B944014EAEC6985B5620AB705AC2 + DE880B40144D296D4DA76A74B9BAE98DBBFEC298DAEBFC03AC067D8AB1E87015 + 202D4D8FE4E46498CD66283C1DC8D078A154F06019C0D2EB84C9DC07993C0DD9 + 85D3A0D168A452CB3ACE21953783311F92A6CBCC9F94B0378605E869DFB74893 + A6AB0E58DD2338C2C6B79E9E083759AC68FC777575213333136415465F5F1FB2 + B2B208589AB4A8919518191919D0E974282A2AA2DB0B69A1E33816DAAE5783F3 + 25EA8D9800D4EABD9D67B7CB35E91561561FD49EF94829599E02F4F4F4481586 + E33809809ED34ECF69532A95C8CECE46494989E4A9CECE4E90AD05CAD92D11F3 + C6EB8DA800A6EFBE7820499BBF3196D543DBBAAD0A491805A0DB04EA010AD0DF + DF2F599F7E77381CD2E2455763EA95C2C242582C16984C2669B59E9EF449D4B9 + 43BD6137B62FCD2C9A1D411A15C0D2B1C7C3AB33D813DBD6A0DF66C050EDE90F + E592601A1A54340D9300004D56B2AF0B02F03C2F01E8F57A693B118098951B7B + 2D53A5E460F2BCA7D167EEF0669754727101589B3F167DAC129AEC3168F9EA3D + B49FDA4E424A8C0EB0552E89A3A142376E5430154AC38686162DAD1480EE81A8 + 072820F596A9DF04A7C309BBD18ED9B97B234383CC39EAC67B503C6311DA1B6A + 606C3D8E190F6E88D01B13403A6158301A1D04672F1A6A5E41BFB533E2DE3F7D + C048E268A850481A3614808A56935D2B8570B95C9220BA80D17175961A464F37 + 6C321BF2583D66BA7684CDA94CCD45E95D8F43455E985A8E7D0077BF0D32A265 + C6836FC70BF09108C9E2A224CA47367149BA71683AB0096D273E09F3C6DA0F44 + A9EA50CBD24605D2100A00D02E08820440734591A1808CDCDA433E36C606659A + 1295FAA9483BF12FE99EEB26556274C56274D4EF44D7775F916B0CE9EC00409C + 1EB09CFB300810042193B029F910FAEDA8FBE445382C7E6F3CF3290FFAE24285 + 53101AF7F448AB0BB53805A0E3541C934C168574119E540F7AB95E3838077C1A + 1F09BF24DC2364A272DACFC1F1727C7B7433798E25285CEAB24400CE6E1103E2 + E9E73208E06593909C5786337BFF8996A3DBF05C8D52AA2454380D1D1A3234A4 + A8D52900ED1440548870A70AF0A5FB202409B0F3767894E46547EDC5BC8CB178 + EACE75683FB91D5D2D0789A870E1FE23133F80F9CC6631D4FA412F04CE19B2C2 + A616C3E5E8C3E2E57FC0F94E2B92C8AB26154B8F34C4684253207A8D2E623246 + 065F81173DC93D70695C9207F2E432BC34FB8FB83E351FCD47DE81E0308708BE + 0CC1C8389AD50900FC6753B80706830C78C3C7A543AE1D8BB5BFFB3DF69FEC20 + 82E5529C4B79E3F349B9402102E79A540D84892E3489A7719FBE1C6B16BC88B6 + 631FC3D0B28F086182C219868B80A052E306E839FD4E440E5C161E0E2432641D + 481F87866FCEE1AD8D1FC3E6F4BF3ED28D1D3DD270A2BF0BC06491F89FB7F076 + E8923270EEE09B7EAB0F121B7ECE0D00200180C60D62B8B5870321B9C16721F5 + BAA938F5D9DB385BFB1119F241F4F93D45C387C670E9ADF371E39CA52449B7A0 + EBDC977420AAD868400901981AAA440493D7E7BF18359C7C03D7E0BFC690AD71 + C68D70DAFBB0A76A1D6C860BD24F5372F4B87DC55AB23560D0B4FF35923BA670 + C151ADCF8525706200A7DE88518506E74134CF106F703AA417CDC4B16DD5D2F7 + 29F73E82E6439B6168AE09B77A84F04140570A60AC7F5D1C52F4E03C88722F14 + E95E3EEF5657AFD5EC69DEF3ACC6E3E866C3857143C63E13E21D0CFC67237E80 + 93EBC5A821325834190FCD8350108653403BE1617CFEB7BBA5C744D6F5286263 + 8C0764C60B2033D6BDEA8B2F79637B46C629913569193EFFEB4F240B06043143 + 246A64ECB3C10A142F00A3D78F4D3FB97DA571B8101187016128C0E41512802C + A2DAC4161BAB02D1B6784D6D6A7373B36D4880C2C2F1D99FBE71FFFBD999EA5B + 860A117F750A4FDED03119AF42F694959701E289FDA8A1E44F6073AFB077E5BA + FAF9E7CF3758061E1C1D20A7B858CB79E5D73FB574CAC3F367952E552A5875B4 + 1089BAA885DCC35080A9BF1C00187A918A15FBF45C70C3B1FB84E1ADB7B6356F + 647DCAB6E1006863752525198C9BBC4F8CC99EB0E6D199AB475F97569E6815A2 + 1EC899F6981F202EEB476E21CE77BBEA5FDFDAF242CBC5BE9310D88B44BCD55F + 3986A942B4E5E54D51F3BC3DC7C3A168F5E2890B17CC1ABD44C933EA40888883 + 123C50A9C481EAC5700460C6930460CEB06572F0B8E021563FDE53BD7167EBFB + 1E99B74DEEF576B7B6B63AA3E91CEEDF2A416F8C27DE58BB7CF2EAD1F929E5F1 + 542186532367E6AF48199D336C990C0DA5F66E77FDDFFFDD46ACEE8C69F54400 + 22BDF140D9C2F977142C5190DC80183B9C185E0DDD4DABB18BAC033105875C13 + 3C32C79E9396EA7F7C766158AB270C10E18D62ED84358F94136F249587272F82 + F9C5F09A10006EC844ED307AEBDFDCD119B7D5AF1420C21BABEE2F5D38FFB6FC + 254A05A31E7C5F1060FD3D88B58510BC8C63EFA9DEEA4D358684ACFEBD00A27A + 63D9D8D525A392CBA303CC8D6AFD0E93B7BE7A47CF0B2D062161AB8F04400C6F + 8C5A42D78D68008144A656DF77CA51FDEE973D576CF5110318CA1B01802FD657 + 06E3FD8249ACAFAAB1BED06AF07E2FAB8F3440546FDC7767E9D2825B9F527DF1 + 5AA564F5DA4677F57BBB6D2362F5AB0230D082DE985A9637E99DAAE75FD9FEC6 + 93CD55BB9C2F8FA4D5AF2680D402DEC8D167EA3A2E985DE084EE91B4FA550718 + 686C6161214F4F8870012368F5D0F65FC2AB488B7BC2B4570000000049454E44 + AE426082} + end> + Left = 31 + Top = 368 + Bitmap = {} + end +end diff --git a/source/forms/Glyphs144.h b/source/forms/Glyphs144.h new file mode 100644 index 00000000..919f2403 --- /dev/null +++ b/source/forms/Glyphs144.h @@ -0,0 +1,24 @@ +//--------------------------------------------------------------------------- +#ifndef Glyphs144H +#define Glyphs144H +//--------------------------------------------------------------------------- +#include +#include "PngImageList.hpp" +#include +#include +//--------------------------------------------------------------------------- +class TGlyphs144Module : public TDataModule +{ +__published: + TPngImageList *ExplorerImages; + TPngImageList *SessionImages; + TPngImageList *QueueImages; + TImageList *ButtonImages; + TPngImageList *LogImages; + TPngImageList *DialogImages; + +public: + __fastcall TGlyphs144Module(TComponent * Owner); +}; +//--------------------------------------------------------------------------- +#endif diff --git a/source/forms/Glyphs192.cpp b/source/forms/Glyphs192.cpp new file mode 100644 index 00000000..b4fa2bbf --- /dev/null +++ b/source/forms/Glyphs192.cpp @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- +#pragma hdrstop + +#include "Global.h" +#include "Glyphs192.h" +//--------------------------------------------------------------------------- +#pragma package(smart_init) +#ifndef NO_RESOURCES +#pragma link "PngImageList" +#pragma resource "*.dfm" +#endif +//--------------------------------------------------------------------------- +__fastcall TGlyphs192Module::TGlyphs192Module(TComponent * Owner) + : TDataModule(Owner) +{ +} +//--------------------------------------------------------------------------- diff --git a/source/forms/Glyphs192.dfm b/source/forms/Glyphs192.dfm new file mode 100644 index 00000000..88aa7bfd --- /dev/null +++ b/source/forms/Glyphs192.dfm @@ -0,0 +1,17484 @@ +object Glyphs192Module: TGlyphs192Module + OldCreateOrder = False + Height = 437 + Width = 215 + object ExplorerImages: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'Upload-Download file (unused)' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200802000000FC18ED + A3000000097048597300000EC300000EC301C76FA864000000284944415478DA + EDCD310D0000080330E65FF450C141D21A68DACEA5080402814020100804822F + C1020FCA5FC1C10107C40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload-Download file remove original (unused)' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200802000000FC18ED + A3000000097048597300000EC300000EC301C76FA864000000284944415478DA + EDCD310D0000080330E65FF450C141D21A68DACEA5080402814020100804822F + C1020FCA5FC1C10107C40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005D44944415478DAC5975B4C53 + 7718C0BFD3734E2FE706A540A91A65334E5D41AE52449D4B96B925CBE2084F1B + 4B8C33B17889718BD9D3B261F6B498EC964D41E77C5816E38371C6A9C42C9BD1 + AD040515970E048BE5A2544AC1F65C5A7A4E7BF66FB15DA1AD80BAF8BDF4F47F + CEF7FF7EE7FB7FB783A9AA0ACF53B004008661FFABA16600BD85A28C76491A8D + FD4FDACD04D0CAB21BD023470083167B40F8F6698DB71A0C4B81247E4397C5AA + 1A6968E2A5B3590162C63538D656566EA57B9C7D100C853E68E2C5E34F6AFC3B + 86B19218B49594AE5A62CA37C29F57AECA8A2237D803E2D93480B8710DD666B3 + 55D0E6A202E003025CB9DCA18664A56127CF9F5EA8F1439CA11657895F2B2AAD + A665CB96C4D7C6C6C6C1E1E89476F8797A06C0118E9B36BEB68C369BF3939B4C + 4C3C84BFDAAFCBB2127973A720FC3E5FE32D34FD3A4EE0A7ABAB4AE94596C2F8 + 9A1A8D427BC74D7830EEFBD9EEE7DF9F0990C34DD65496E45ACC05699B8D797D + D0D1F5B7882836ED92A4AEB98C1F66980692C04FD8AA4AC982FCBCE94564A7F3 + A613EE79BC174603FC3B9FA96A7806C0518EFB25DF94BBC55661051CC7D33645 + 8AD0D9DDE3935575D31E4170667D7396DDAE2389A3B6CA122C2F974BAE77A378 + 728F781C0ACFBFB11B40480BC20318A62DE2981FF338B6D1566E052D49A66D3E + 786F14BA7BEF0C811CD9680F068766DF4731F4B141AFFDA2B6BC0458864AAEF7 + DC7143BF7BD829F1C2860F011E4E3B2443163403682C0CF31552DE5BBB663518 + F4BA3488BEC111E81D18EE4397EBED3C3F9EF2E60719836E7F1D824FD5730DDF + 07A7CB3DA44454DB6E51F424D61F5B075A18E653CAA03BB0AE64253094210DC2 + 393004AE7B9E2E25C0BFEA05902C2CFB03471BB6D521682D49249F1B46C776A3 + 6FC0034AC436DB638F0588BB9363F66A71E2EB5AEB4B580E4DCD24403A37905B + 47BCBECB48DB67E298FADAD52B66C48E676212AEDD1EF0CB51757DA698991320 + 1ECD1CDD4862F8F1DA55CBC93C964983B8D67F37F603D52B8A41A3D1246F8D07 + 78E8B83D2086A3F2E6DD7CD0912958E70530ED09EA2D0CF053D5CB8B75E694A8 + 9EB1498AAE5F94C071DB25875565CBAE807401B2C8BC01E210A842A2DB6D654B + 17D34BF272B33E278442E0E8BBAB4E2991779B04E1243C4616041087A0E952E4 + E73F5E5E54687A21515C52241496C1313008C129B9C92E08AD30872C1C80A22A + 51945DB45A0A4CC519BC109211807B2406B00B011C7EA600F126858E608DA590 + 5EC4B1599F13C361681F1C51A7E4486393289E7826002D2CF5368EE1A7AA8A0A + C98259E9984937303505ED23A3720422F5F68074EEA9005A597A2B81698EAD2D + 2AC48DB3AA624CAF6B6CBA10561498004F49C309148C573D5E1165C293A7612B + 47EFD362F89735E67C8C9DDD1790CE2DD4A6EF8BD2A5582132EAB40DD5088248 + 81782005E1866F920F47D5750B2E442D1CF33985E39FD4988C4011C46C5DE8F1 + F3E016A564292E62E92308727B2DCA0E3205E23E82B835E9F74664A5666728E4 + 9E13A039D68C38E61B0627F6541B73409FA12DBB0411FA05A9175D6E9CDD8C28 + 5CB3DF863224550F8142AF20CCDD8C12EDD848908D55A8ECA6BE494286D1D93A + 45316B3B6E61E9FD7A0D7E702DC70143FC07D12F49E092824E91175EF9088548 + 4680D8409247125B2A50A4E319027214A5D82D31E893215CB7879FEA832C8220 + B66951E0563234969B727CFFA0E3189E0A671F48622359B95E9F6B26D3CFDCAB + 2870331812D15C38BF918C65EB49504F965306323F05A23B18028FA2641EC90E + 71549D16232E96EB747441CA193E8C44A03384EA9C0A9BD1507A692EE3494FD0 + F46B38AE39B346ABA5CD8F2062B6AEA33AE18D464EA0A1F4BDB420FC9E35C421 + CA08220E21A229B6231C5665C0EA9B78FECC7C8D273D6130D46808E2BC95244C + 8B1FBD940FEDD92587D3C7F2441A262056E238ED521455C6D4AD3B02E24F0B35 + 9E90F8878906CEAFC089A54664A34B96E50816ADDFE117CF6504484010801F46 + 9F66C79ED9A719415C4487F02220E3B112BDE06EF8B4D28C3E4E73693A679F28 + 3E88FD4F03785EF22F94D231EEF16B1BE90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Rename file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000055C4944415478DAC5D67B5054 + 751407F0EFDD0504116408D34D48815149074B4D477432A5D4547C604D3E1342 + 05F3116A4E89F25832532C4104E551C998038AC34844A1190A4E49A2260682E0 + AEC82EBB08EC8365EF5D765976F975A1619384D6DDFDC3F3DFBDF79C399F39E7 + DEDF2E4508C12799A504B6C5EF3A03169DDC368FB1A4A8A737D507381A3E17D6 + 287A6ACE97D6E2D68396329D812CB404F114A09B5837885FEF88D0AEE944796D + F3A0887467E7F9148713C9763D1AC1302503020CDDD6012A842D50D23AD0DA2E + FC51D3F41422097073757511BC3AC1D74324574026577EA7A5357B7612A2EA07 + D01BAD0334B6B443C9E8FE45544B6F3014966646CC93F73CCF70713935D98BF7 + A1CFCC293036B5A2BE56886AA54A18DEAE1ED70BD89D51421223E6A1B3ABDB2A + 8046A7471BDBDC84E8D0A3ACA6A94AC330818EF9A98113A5C2DC15D326001405 + 83E431640D12946BB43722D4EA805EC0AEF42B2469CB5BD05A0970B2E7F4367E + 12A16611D7AB1AEE37DD2E765AB43070ACF7906E789F480044125C6F9119E96E + 323982A66B7A013B4F1693635BDF86466F1D40206D43F19F8FA0D51BFADD973F + BC0137C761085E12080E874265651D3A13E26114541D8EA03551A6973032F532 + 49DEBE004CA7D12A404FE80D46DC15B642AAA07BAFB95A31BCE55160B83E84F7 + 5A2CD528D7A3A555815F0A8BE4BCD20B2F2749245A136047CA2592B2E31DA875 + D603FAA2E7736C94B5435D128AD9417EE866EE407CBF857DE916EB4B6B47DAB5 + B6CA02F3CF245DEBC93501B6271791D4C8C55075D80EE809694516865185E0F9 + 78C0DE580B835681669116C5256EC7C30E5646F6E59900DB927E2627762D415B + 87C196BEFFAC826986A03018531707C0891201061A5A653DCAAE762B9976DA37 + 98AF523D05F828B190A4ED5E0A85C67640ED8F9BE13F930BE7A1041C68A05354 + 4352AF47CD5FDAD52BA21B739FCC3501B67C5D40D2F72C879CB10DA0105C0447 + 918631FE6361CF25303012686442FC76B9A36859B478C97FF34D808823F924E3 + D360B4AABBAC6E6ED4D3A8BB108480A0897070F4606F68418B2EA3E256974ED1 + AA1BF72E5F2A1914109E708105AC448B0D8086AB51F09B24838B3B0F5C3B5768 + A4D720932A507953B673798C3879A01A1360D3A13C92B9F73D16A0B7AA39DD74 + 13BA3A3E5E096047EFF43A3BFA06B4375CC2A5526708BBCAB87C3E063CE14C80 + 8D07CF938CA8F7AD0210A31E82BC65EC373F0AF6AE81A0C085B22A0D0FEAF4C8 + 6D0AC3B1E8486AD0DA3E40D881732463DF2A34B75BBE82C7E589F01E5D0577CF + F1E03A4E83465C04A5F43E1EEBE723FDB60FB262D79807847E9E4332F7AD6101 + 964DA0B34D88B6F2AD981A380A76EE3B60EC90427E3711D5754EF05D5988B8F4 + 429C8E5B671E10C2CF2619FBD75A08207854B00AB3163860C80B21809D176437 + F7A1514C6388FF4138F366202E350FDFC7AF370FD8107B86A4C7ACB36805922B + 7B41B1E7FCAC15B3C175DBCA8EBE00CA871721528DC74B730FF5E6F08F9FC799 + 031BCC03D6C79C2619D11F583481BAFC78F03C9C40D93561F8081FD8AB0A2110 + 19E1B9B4001C0797DE9CB8945C647F116A1EB06E7F163B8190670610A301F53F + C4629CDF248C18C9834A2E8654900387891FC3D537C894C73F7E16395F869907 + AC8D3A45D262439E79051D7211341539F09F321D5A86865AA58042DD08F739F1 + FDF2E2937370F6F046F380357BBF252763429FF9242CFFE91426BF6880979727 + 94B266E886FBC1614C00FBA47FAFF8E46C9C4BD86C1EB0FAB36F2CFA3BDC792F + 0FF2363536AD7C13F73A46A351E338686EEE9170F3008A1A3467C0983563BAD1 + 7DF85095B7E7D03752B22ED658546C2B2025E52BEFEA5BE5D9B5E2BC39A5A5B0 + E9F7DBEA15FCDF58AD023CCF78EE80BF013E216DEECF0AF26E0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Show-Modify file properties' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004214944415478DAADD67B4C53 + 571C07F06FB74CB7CC38B364C66CFFED914D93A9FF6DE21EB0BAA12283C14468 + 41403651A18088DA02AD13E6638EA7406DAB418588507CA3531C636C4AC13D74 + 1145DCD4C5118D1529A5B4F441CBD9BD77A38F74F3F6DEF26B9ADCFBEBFDF57C + FA3BE79E5E0121041B341D04C1C5459B134B941961662E45F4D8820940E9EA50 + F051D035DA8E3EFCFCBB5E677392702E083FC038E1D7886F2FDFC5B0C58E4B7D + 0F3821FC00CE717E802BB7F4308CD830621D4357EFFD80117E00878B1FA05F3F + 0C83D9E68330834469D2C31E0504C8557F4FCAD2C3601F1BE705B0D81C18A206 + 7723461DD0F5DEEFB198CD1F68F222FF17E106AC577D47CAD70861E50978E6A9 + 279881BD11261A71BDBFA762EDA2B9AC801C651BA958B70816073FC01FF786D0 + F6EB9FB03A9C3EF941A31995191F0A5801D9D5E74965E64730DB5DBC0074389C + 2EFC76EB21EE0D8EB873BFF4F663B7249C1D20A93A47AA248B61B2F1074C047D + 3BF60F98E0748DA3B9FD2AAAB396B003322BBF21D5D94B611C0D1EC07C31F5B6 + DAC7B0BDAE1D353911EC808CF233A4667D0486469D1C86618F42752B94B9CBD8 + 016BCB5AC89EDC480C5A261B7016AA0D1FB303D6949C24AABC283C324F324075 + 06EA8DD1EC80F45DC7897AD32778681A9B54805C751A9ACD31EC80D55F1DA300 + 31D073007CDDD4193490DAFE050CE0B31D478846FA290570045C5CD2A4C38E55 + EFF31E5C56FB830790B64D4BD4B2384E8032AD0EDB52DFE30D28D8FFA307B0AA + B891A8F357E0C170E05350714487E294C00046AB0165178A901922C5CC69B398 + 9CFC801720A5A88168F2132840E01DA83CDA85ADC9EF0674ADFC7C364E5C3F8C + 67A74C436BDA653CF7F40C6C3978C10348FEE2105117883801AA8E7561CB4A76 + C035FD1524362E66567CEC9B4950084B99FCD63A2FC04A453D51C9C59CA6A086 + 0228921E0F20D42BBE41889B03D7309DFAD5A7537EC2F4A93398CF8AEABD0089 + F283445D98C4A903CA13DD2814BFF3D86BB43DB5D8D921638E15C27244CF11B9 + 3FFBF2D0450F405CB09FEA40322780EA6437F2451EC01DC34DBCFCFCEBEE73A3 + CD80E8FAB7A8BF781366CF9C87BAB85608E0D993B637780144B25AB24791CC69 + 0A34A7BA214D58C81C77DE6DC3C6B3A9889FFB39B242144CAEB83D072D371A21 + 10087060F939CC7E619E4FFDCEC39D1E4082741F51CA5338ED847B5B2E6153FC + 42669E539BC3D1377095C98BE7AF83F0D548A41D5DCA2CBCA83989908596F8D5 + EF6AF402C46FDECBF971F8A5575E43DE8A7F3A304CB53BF3542C6E0FDE60CEE9 + DBCDE230330B4E2BEE762F3CEF2869F202D06DE21AF493746E5C88FB9C464828 + C41D439F3B270D2DC5B23744FF594FEFA44103729687F8E46844764B2CFE32DE + C6FC17DF46694493CFC2F38E8AE6490064C52EF0CB3B5C764C79722A6BFD6E6A + 270D1A208959C0B96E22E89D346800EFD1FF0D1AF037D562B0DF3BEC81EB0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Create directory' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004224944415478DAC5947D4C5B + 5518C69F5BFAC9360820D94429CEA9B171CEC464824CC362D58D194A9D29982C + C630B57C085387B09030D7C9F8C375CCC8740BC887C445AD8866E8EA062B7533 + 6333B03043D8161A050A43C04129D0AEB4F45EEFADA2EB76B9BD2BC5BD374DCE + 39F79CE7FDBDCF797B098AA2C00441100875641455BF240C13547966A71E6AFC + 70E704DB1E6229013277551BF3341B530F1BCC470CFAECBCFF1520B5A032E209 + C57DE3BADC3461798D91ECBE7C556138A8ED65DE69343A3129BFFBFEA68A3F7A + 970C20B3B87ADB76F586A3CA440546AED95158F1CD590AE4058948982C5F15B3 + 6E72DA291E999C5A1F3200DAEEC9B56BEE899CD7914A84C8D5A4C0E1F2203A22 + 1C43A3369074AE8455D1B04D39F1CE0143E7E7E583892103C828AA2A566D7CEC + 836D5B12C14852F4E3F67831E59805DD88908885CC2296C944D8FF590BD57969 + E0F146BDF6A21F40BD0ED21861BC999E25B125A111DBAFCD5995593AB816B0FD + 5056FA86FCE792149872CE82D1269887F85B5F46BBD23B308AB2AAE35506BD36 + C7A7792340F3BE78FDC329AFBEFB60F20ED62A2DED95B872BAE180AA74B088DD + 079D20B338AEA93C5FAD4E888BF139309F9CF197C9D475D98A8FBE30D51AF66B + 5FF7033856169F28090F3FB75EF3062192CA58E53DAEEBE868FC949A753A9F54 + BF37F40BDB9E9777551B74B9AA8CD57177218CB69EF8A7380684E9019BDD89E6 + D3BFE2C4D99E7D5FEBB5BBFF05F8BE5CDEFD8872F3DAD8D56B38EFFACFBEDFD0 + 633AC9FA6ECC2B87E381BD78252D89B65B0C922421158B20101018A713BBDC1E + 78E7BC98A3D7BF3575A1A3BB5F7B034002A5DCFE62D04D485204CA0D0A646D55 + 4342DFF5D5D1495FE27B57462172B90C968131BAF28BBE6B61BAD44BFFFA87C7 + 87FC0052B6AE0B1AE0D2702C1ACE2B11111E062961853C7A0296B195503D9B8E + C808197EEAE885F0CAFBC8D1B5F9FDDDFC0082CE0EA6C1049826A3B04260A3EF + 9DF4AD8D7BE3D0175B82D4A71EC5973F9CC133E45EA84BFB1606482BE95C0C03 + 6B7C6CB8009178193C6E07127ECF86AAD4BA30C00BC52638269AFDEA5AECD836 + 23C09E8628E4A9EC18397928004091110EDB71DE49089E206E0F01B18882B9A6 + 861B604BE177B86E3F717BD552FC1D31D7367003A4EEFC0A2E7B4BD0B6FB3B72 + EBFBB6DAA30100DEAE876BDACC21B8B89E68AB3570036C7EEB08DC333F87C47E + B6FE30D5350500283808B7E3FC2D07F9365BA0B1A9EE580080FC32789C5D4188 + F3EB8F5375466E804D79259873F5F016FC6FCA0FF6547D4B00809C1DF0CE5A42 + 62373B401B37C0F3D9AF81745B17100BE0068F6B69AD3FC30DF0749A92BE8261 + B00757A5FCD6CFB55A027C090BF680225DB72DCC77CF8F9F547003246F52D000 + 1EBFE344889233D1DEDA1FE04BF866E14D070308530BACDF349ECF683C5CC905 + 209FA6A7CBB18441E79A49DF3DB88215E04EC51D07F80B8CCA82E42EA50F1200 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Browse back' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001C54944415478DA63FCFFFF3F + C34002C651078C3A60D401200730323292AC51366A8D3B3333531750F79B878B + 039DC9B11C6C37A90E50885CA3C1C0C23C819D83CB5D524E85E1C1AD4B0C0F16 + 0792EE03521D2013BA4A88999DB591998525535A568959485492E11F30F62E9F + 394863073834B0C8CBE86700D534894BCA084AC92A3130323133FCFBF78FE12F + D005347500249E59260808096B2828A933B07370022DFE0FB698A60E80C53317 + 178FBBB2AA0603BFA010D4D2FFB475002C9E5959593395545499A5A464C1F1FC + EFFF7FBC0E20CB720686230F1605D8421CE0D8088D67A6263979394165655506 + 2666168465781C0097FB0BE4FFFDC3F0F7CF6F201B48FFFD0D64FF411503D210 + FE1F869F3FBE32DC5F14C008768062ECFA83A26262769A9A5A0C5CDC3C4896D0 + CD011B4E011D60AAA5A5CDC0C9C5457F0740A2402F8F8989A94E564E9E9FEE51 + 8096089B8189309DD68990E13FE389FB8BFD2DB1664399C8357A2C2CCC3DC06C + E84AD76C880EE46237F832FDFFDF2B202CA24AD7820805808B6250FA60AC1393 + 90E5A76B518C122DD0F401AC8CD2E95B19A13B049A3E80D5B12B5DAB6374004A + 1F8C0CFF3B81A9F9DDC325013614396020C1A803461D30EA00006F10A0DF5A9A + CDC80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Browse forward' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001CB4944415478DAED953B4BC3 + 5014C7CF4D2A0A6EE26E1D74D3491C44F02B281427DBCF505074D28A1FC1459D + 0B7670B0E05444141F9393825A69D347125BDB6A1F20A925B9B99EC6B650ADC5 + 576F975CB89C9BC039F747FEFF9C431863D0CD456C001BC006A80210427E953C + E4DE3F22C006293597955D57E8A7F9D6DD7F0170BAF79973640CD28A0495572D + 0406F52602AE305780B1891910303D9F4BC38312A3D430B66845F7A97BF3796E + 002212088200CCA49052629049AB05ACBB9654AFB6E164DDE006F01E09CA5186 + 84740FC5C273183F89F72B7F740CA0BA45AC592AE6418A8441D35E5AFAA301E0 + F404CF1061FA3710ED00AC33164EA51488452354D7F5267F3400863D41D6DBD7 + 0FA2C301A288DBD103422D5ACFB885FAB91605B176215ED40EA0FECEA4064852 + 04E4A48CFE302D7FB0639FC10DA01E354D83BBDB1BC86533A771FFDC0C778072 + B90A700BD94CE632EE9F9DE42A414C8A822C274AA6696E24D5EBCD860468C20B + F4CA140713EEA009573F9990C36F78681874490DB8AEB9F4814623CA3F454C42 + 1665FFEC41ABFC8EB5E2ECA3823A334B672EADF8C3306AD2B9DDFA9F713C3A0E + 69395A1DC72D75EE28C0D042F01C2B0C608595AF74FE164037970D6003D8006F + CBFFB9D0A230925D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Large icons view' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001E04944415478DA63FCFFFF3F + C34002C65107C01CA018BBE1160323832A9DECBD797F518006AA03E236FCCF8A + 74A18BEDD396EF61003A8011C3012A3AE67471C09D2B27B13B80874F882E0EF8 + F2E91D7607DC5B1840170728C56FC0EE803B0BFCE9E20095848DD81D706B3E7D + 1CA09688C30137E6F9D1C5011A499BB03BE0DA1C84033EA745E0358477D60A14 + BEFFC4D778D56FCC1785B3B5527038E0CA6C8403BEC4E28F0E9EC51B51F83E3D + 4FF0AADF52220367EBA4E270C0A559BE70455F43DCF11AC8BD66270ADFB3FD2E + 5EF5DB2B95E16CBDB4CDD81D7061269203BCEDF13B60EB4114BE5BD355BCEA77 + D569C3D906E9381C706E860F5CD13727FCA522D7BE93287CE7DAF378D5EF6D36 + 84B38D32B66077C09969480EB0D2C3EF80639750F80E95C7F1AA3FD06E09679B + 64E170C0A9A9DE7045DF0DD5F01AC879FE160ADFB6E4005EF5877B1CE06CB3EC + ADD81D70620AC2013F3464F11AC871E3310ADF2A7F275EF5C7262212B5450E0E + 071C9BECC5400F6095BB0DBB038E4CA48F036CF27138E0D004FA38C0AE008703 + F6F77BD2C5018E85DBB13B605F1FC20153D6E1CF56394196287C52D43B15E170 + C0EE1E0FBA84806BC90EEC0ED8D54D1F07B895E270C0F62E778A0C26167896ED + C4EE806D9DF47180573936070C74C764A0C0A80300907447D0677FE96B000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'List view' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001DE4944415478DA63FCFFFF3F + C34002C65107C01CA018BBE1160323832A9DECBD797F518006AA03E236FCCF8A + 74A18BEDD396EF61003A8011C3012A3AE67471C09D2B27B13B80874F882E0EF8 + F2E91D7607DC5B1840170728C56FC0EE803B0BFCE9E20095848DD81D706B3E7D + 1CA09688C30137E6F981D9CF25C5C0B4E4F3574419A8D1230AA66F94BC264E7D + D226EC0EB83607E28097D21007883F8538A066C121AC06B524D88169AD3E8803 + AE15BD264E7D0A0E075C99ED479728D049C5E1804BB37CE9E200BDB4CDD81D70 + 6126C4010613215170219FB834F072952698160FBB4E947A83741C0E3837C307 + CC369A240EA6CFE5BD04D32D4B8E6035A826C6064CBF5EAD05A64543AF11A5DE + 28630B76079C99E643972830C9C2E1805353BDE9E200B3ECADD81D70620AC401 + 1FD76B8369FEC0AB4419B823F20698F658AE41947A8B1C1C0E3836D90BCCFEBC + 41074CF3065C01D33D2B8F6135A824DC0A4CEF8ABA09A6DD96A913A5DE2A771B + 76071C99E8459728B0C9C7E1804313E8E300BB021C0ED8DFEF09663B166E07D3 + 303E21408E7AAC0ED8D70731C0A90862208C3F65DD71AC06E5045992AD1EAB03 + 76F778D0250A5C4B766077C0AE6EFA38C0AD148703B677B9D3C5019E653BB13B + 605B277D1CE0558ECD0103DD31192830EA00001BEC59D0FEFBBBB30000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Small icons view' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002804944415478DA63FCFFFF3F + C34002C65107C01CA018BBE1160323832A9DECBD797F518006AA03E236FCCF8A + 74A18BEDD396EF61003A8011C3012A3AE67471C09D2B27B13B80874F882E0EF8 + F2E91D7607DC5B1840170728C56FC0EE803B0BFCE9E20095848DD81D706B3E7D + 1CA09688C30137E6F981D91FE3835134F02F5C0BA6BF1C554411E7B1BE0FA6A3 + 7678A0882FF3D801A68F157C4211B79AC007A63592366177C0B53910077CF075 + 42D128B0791F447CAF32AAB8F35D30EDB7D612457C53F07130BD3FF3158AB8E3 + 743130AD9582C3015766431CF0DECA0045A3E0B10B60FAED56D4724AD8FB36C4 + E0455A28E2FBE3AE81E99D090F51C4DD17C883699D541C0EB834CB17CC7EA7AE + 80A251E8E60330FD6AAD068AB858F00D306D3A4D1645FC74D663484844DC4211 + F75BA106A6F5D2366377C08599BE0CF40006E9381C706E860F98DDB2E4088A86 + 9A181BAA8A1B656CC1EE8033D37CE812022659381C706AAA375D1C6096BD15BB + 034E4CA18F032C727038E0D8642F303BE7306A544CB1DD02A663A6BF41115F92 + 2902A699B3C251C4FF4E5B09A6D92EA066DB5F06906C6B95BB0DBB038E4C8438 + 2061872D8AC6051E87C17448EF1D14F135C52A609A29C20D45FCDF8A5D10F113 + EAA8E21637C1B44D3E0E071C9A007140F05A3D148D6B832F8169DFA6B328E29B + EB8CC134A3AB098AF8FFDD6720F4014D14714687EB60DAAE008703F6F77B82D9 + 1E0B51CBFC1DF19032DFAD7C3F8AF8AE4E4788C1462AA80E380709A9BF3B7450 + C4993DAE8069C7C2EDD81DB0AFCF93811EC0A908870376F7406AB5E91B4EA068 + C80CB0A0AAB86BC90EEC0ED8D58D5AADD20AB895E270C0F62E77BA38C0B36C27 + 76076CEBA48F03BCCAB13960A03B260305461D0000367A89D03D777D0D000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Detailed view' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001EF4944415478DA63FCFFFF3F + C34002C65107C01CA018BBE1160323832A9DECBD797F518006AA03E236FCCF8A + 74A18BEDD396EF61003A8011C3012A3AE67471C09D2B27B13B80874F882E0EF8 + F2E91D7607EC6FB3C450BCE3E059060F7B63AC06912BE758751CBB0356166961 + 283E77F50E8391B60A5683C8950BEFBB86DD01B7E6FBD321021818D412376277 + C08D797E74718046D226EC0EB83607E28097D262605AFCE92B9A38402B058703 + AECC8638E0B50CC401A24F200EA85B7808C390A6783B92E560E23AA9381C7069 + 962F8D031F02F4D2366377C085991007184C8484C0857CDA4481413A0E079C9B + E103661B4D1207D3E7F25E82E9962547300CA989B121590E266E94B105BB03CE + 4CF3A171E0438049160E079C9AEA0D66BF5FA70DA60583AED2C40166D95BB13B + E0C41488033EAE8738803F10E280AE1547310C298BB026590E266E9183C301C7 + 267BD138F021C02A771B76071C990871804DFE36300DE3531B80CCC7EA804313 + 2016DA15401C00E34F58730CC39082102B92E560E220F3B157C7FD9E340E7C08 + 702CDC8EDD01FBFA200E38147F0BE2D2856A34718053110E07ECEEF100B38F26 + DE06D3D6F3216DD4E91B4E601892196041B21C4CDCB564077607ECEAF6A071E0 + 43805B290E076CEF72A78B033CCB766277C0B64EFA38C0AB1C9B0306BA633250 + 60D4010032EA6ED011462F3B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Browse to parent folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000029E4944415478DA63FCFFFF3F + C34002C651078C3A60D03880919191617E030387088BDC5EA088150EF5477EFC + 79E41CD6C0F08B5C0BD13D8CE2804D2DB2DD1AF6F125AA56795835DF3E3A81E1 + C6A1C56D7E358FABA9EE808DCDB2E6EC5C5CC74D435319593938B16AFEFDE31B + C3A9D573FEFEFDF2C5CCB7E1D939AA3A6073ABDC656D670F1D514565BC06BCBE + 7787E1EABE5DE406C011DFEA87B6381C20FFDF3929905C8389027BE7AD67003A + 8011A703EC83F468EA8083EB2EE177004D6D8702BC0EF0AD3C4353CB37B79BE0 + 778077D95E86AFEF362149FF673878F41598656F2D8A224E0EFBC09C19041C50 + BA8DE1EBFBAD704D77EF7F6568EDB90EE655976830282B72A318CC48A243F6CF + 9983DF015EC5EB19BE7FDC01D6F4F1D36F86EA961B40FA0F589E9F8F85A1B546 + 1D4CA318FC9FF850D83F77217E077816AD60F8F17137C3DFBFFF189A7BEF0143 + E01B4A1C2A2B7232D4162B3230333360B504354430E5F7CD5D42C00105F3197E + 7CDECF306FE97386FD473E3060038E36FC0CC9D11264A5837D7357E2778047FE + 74865F5F0EA3688AC9BC03662D99AE8C69309EE0C7963EF6CE5B4BC001B97D0C + BFBE9E407540D603306BE93479927C8B8DBD77DE46020EC86966F8FDED3C8AC6 + E8AC27500748136911EE10D9336F1B7E07B8675532FCF97115456374D60BA803 + C43183F83F035E4BD1D97BE6EF22E0808C3C86BF3F6FA3688ACA7E0B662D9B2A + 4462D06373C03EFC0E704B4F66F8F7EB118AE6A8EC8F0CE482E553B950CCDA3D + FF107E07D8FA3A03A3E0198A21A9ED3C643B607625CCF1103B8EEFBE4DA024CC + AD67F8FFEF0716A3705594FF4952B37D6A2F7E0758B96B021DF01B453B23952C + 078163BB1F102809B38B8934FC3F0E295C591002B64D9B84CF01729F815CF223 + 9C0800B4EB8B5FCD235EAC0E182830E00E000013CACED0DEBEFD0C0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Browse to root folder - remote' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E64944415478DA63FCFFFF3F + C34002C651078C3A60D03880919191617E030387088BDC5EA088150EF5477EFC + 79E41CD6C0F08B5C0BD13D8CE2804D2DB2DD1AF6F125AA56795835DF3E3A81E1 + C6A1C56D7E358FABA9EE808DCDB2E6EC5C5CC74D435319593938B16AFEFDE31B + C3A9D573FEFEFDF2C5CCB7E1D939AA3A6073ABDC656D670F1D514565BC06BCBE + 7787E1EABE5DE406C011DFEA87B6381C20FFDF3929905C8389027BE7AD67003A + 8011A703EC83F468EA8083EB2EE177004D6D8702BC0EF0AD3C4353CB37B79BE0 + 778077D95E86AFEF362149FF27C8BE72E303437EFD45305B47838F6162A33E4E + F507E6CC20E080D26D0C5FDF6F25DA7246203BBFFE32C3E51B9FC1FC498D3A40 + 47F0E254BF7FCE1CFC0EF02A5ECFF0FDE30EA22C07B1AF002DCEABBF0EE6E9AA + F3007DAF8957FDFEB90BF13BC0B36805C38F8FBB71188229965F7F8BE1F2CD2F + 50DFAB021DC18D25E611FAF6CD5D42C00105F3197E7CDE8F12C4B80C03599C57 + 7F17EA7B2EA0039431D4A0B3F7CD5D89DF011EF9D3197E7D394C54F0E7D53F00 + 3AE21BC4F70DF26047A0A70F74BD7BE7AD25E080DC3E865F5F4F60B59411292A + 2EDFFCCE90DBF018EA7B4E86C90D320CC4A49BBDF3361270404E33C3EF6FE709 + FA3EB7E119D0113FC0BCC90D9240477030E04B2B300FEC99B70DBF03DCB32A19 + FEFCB88AD7F2CB377F021DF012EA7B768629F56244F91EC4DE337F17010764E4 + 31FCFD791BAF61398D6F808E80B447A6D40B031DC18A433D3607ECC3EF00B7F4 + 64867FBF1EE1308C016C714EE37BA8EF59810E1080072FFE1080D0BBE71FC2EF + 005B5F6760143C63C00EFE33944E6361B8FA00A2BF3BEB3783B6023E1F638A1F + DF7D9B4049985BCFF0FFDF0FAC065CBAFE9E21A3129243F434051966B45B30E0 + 8E6FEC8EDA3EB517BF03ACDC35810EF88DA21D16BC25D3D881BE6706B37BB27E + 007DFF9724CB41E0D8EE07044AC2EC623CF188C5E0FF38C4D1D8301BB74D9B84 + CF0172C02A8D918781860068D717BF9A47BC581D305060C01D000042F7EED068 + FDE7F10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Browse to root folder - local' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E84944415478DA63FCFFFF3F + C34002C651078C3A60D03880919191617E030387088BDC5EA088150EF5477EFC + 79E41CD6C0F08B5C0BD13D8CE2804D2DB2DD1AF6F125AA56795835DF3E3A81E1 + C6A1C56D7E358FABA9EE808DCDB2E6EC5C5CC74D435319593938B16AFEFDE31B + C3A9D573FEFEFDF2C5CCB7E1D939AA3A6073ABDC656D670F1D514565BC06BCBE + 7787E1EABE5DE406C011DFEA87B6381C20FFDF3929905C8389027BE7AD67003A + 8011A703EC83F468EA8083EB2EE177004D6D8702BC0EF0AD3C4353CB37B79BE0 + 778077D95E86AFEF362149230225BBFA0CC38D3B9FC1EC898D060C3A1AFC186A + 08B10FCC9941C001A5DB18BEBEDF8AD5805317DE3354B65F05F37434F8808ED0 + 656024C17210D83F670E7E077815AF67F8FE71074E03B2AA2F0343E12B983DA9 + 5113E8105EA834710ED93F77217E077816AD60F8F171370E4340A1F091A1A2E3 + 0E98A7ABCE030C053514B5A82182E9887D7397107040C17C861F9FF7E331F03F + 4366F56D861B77BF41434119E8106EA24360DFDC95F81DE0913F9DE1D797C378 + 0D3B75E10B4379C743682870314C6A90C7AA1E5BFAD83B6F2D0107E4F631FCFA + 7A828081C050A879C470FDEE0F306F72830CD0219C4485C2DE791B093820A799 + E1F7B7F30483F2E4856F0CE59D2FA0A1C00174842403725AC1E5813DF3B6E177 + 807B5625C39F1F5789F24D66CD0B6028409A0553EA45810E6127E8F03DF37711 + 7040461EC3DF9FB7095A0E0E858B3F19CA3ADF41438115E808613435D81CB00F + BF03DCD29319FEFD7A8445337603336ADF0343E10F9837B59E1FEC105C591804 + 76CF3F84DF01B6BECEC02878C6801D601A7CE6262343DD5C56305B5BE11F4377 + D66FBC7A8FEFBE4DA024CCAD67F8FFEF0701CB51C5534A8F335CBBFD11CC9BD1 + 6EC6A0A7298853EFF6A9BDF81D60E5AE097400AA2F18F1580E09056686DAB91C + D050F8CBD093F51DA7C38FED7E40A024CC2EC619DC587DF51F87381A1B66E3B6 + 6993F039400E58D732F230D01000EDFAE257F38817AB03060A0CB803005B2FEF + D0AFD4C3970000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Browse to home folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005604944415478DAC5977B5054 + 551CC7BF770357411696A702CE88D3C31A3311C1261A9D52461B22AA91619C46 + CD47F68735365A24A644689A38DA54C60816A259232AF840106452D44C3447CB + E945F15056DEBBEEC22EB0AF7B4FE7DE7DDDE52EB25BA667E7CEB977EFDDFBFD + 9CEFEFF73BE72C4308C1836CCC7FF9F1D2ECE208BEDFBB7559CF7D0758BAF940 + 1608D9CA1B483892BD2F7771FE7D0148CB2D0C0863024BA86C862D7C847270E0 + 38EEA849635C7CB86095E17F0358B4617F9CCC0F27A8E8145E5C0010F7200D56 + 33975ABAFDCDA67B0EB024A7640EC7A09C2144416C6290FBFBF10660D0647282 + D08F81B358171CDAF176CD3D0358B4B1388BEA7CC280308E91472815983F3B91 + D747D5D97AF468744E27388E3FE3D61DD9B17AC4BCB82B40DACAC280E028FF12 + FAD20CBBC582C82313A33137793A4283C6F05FA3A7B71FB517AEA2B1A5154342 + 53AE31F72DA92BC835F80C90B1614F9C9C3027883DDEB0CF17C9094F20E1C947 + 11191C0045E068D0C142AB37A153DB8FAB37FEC0A5ABBF5007585748086980C9 + 947AAC686393D700AFADDF3D878029A7035638325D3ECA1FA9CFCDC4C4D82844 + 870509F1E7C5397A9BE3800193056D1A3D5A5A3B50FDFD79188D26C1311B0867 + 6039B2A072F7073523022CCC2ECCA2A2CE78F32F88080D46DADC671049FBE8F0 + B190C96482A800E0E8E9A3669643875A8F4EB516A76AEBA0566B6C61E3042768 + B19275A78A72F23D02F0F10E0C25C5F4C94C71BC274F9A8079B31211462D8F54 + 060A916045A234E16CBDE8BA4BD70F4DEF00CED49DC7DF8DCDE20AE1CFCB06FB + D4AFD71D2E30380132DEFD224E267BA89CDE9DE6AC6BDA66254D45D2B4C98852 + 8E852240EE1461C5A21E60587AE8078CE8D60EE0DAF59F517FF90A3F5189F282 + FBCD0A6BFA997DDB9B988CB59F2550F1D3F446A823DEA3E5A3909E928CB809E3 + 1013A180DCCFCFE388DD9C18EA06BD3768B6A24BABC7CD5B2A5457D7C06C323A + AB841E3A9AAC7379800AAAFAA22BD319AC5A9C8E706530622382846B978874C4 + AC2771D1B58552766B0DF8ABE5366A2A2B60311B5DB327474E32AFBEF3E9870C + 835CFB97A5FEF2A0CC6D6B1742A918638F37B1F51271D7393B4C281CC03CE49F + 373B50557D16DDAD0DA59420D396635C1ECD815CD9CB6F05BC4253BEEFE897EF + D7666615916FB6ACC08099F3C96E56E292BB63AA2E2DCA8ED7E0E0B63798D919 + AB5340D8907347769549CA9007D84F01FA4DACFB28851CB25B3E8CDD2E5069B8 + 54DD5A1CB503DC751EE001F67DBC020623EBF145C3DBEDC10D11D8ED2E1D8E55 + 7809504201F483ECB031E51C4E0C63B7A45469DFD6ADC371AF0136AF40EFA055 + 226EA1AA0F478EBEDBFA852BCD06E1AD6EA0F4BCAD478B8A93A7BD03D8BB6939 + 0560257637B6DD41CA53E3317FA7C6A378F59A30945F56213A42390480A0BD47 + 8793955E02145300DD80CB0147AD37B669306F5AB41340B41312FAD3EF45A1AC + 5E85F1E14AC9DCD14ED787CACA5AEF00BEA600DA7EAB24DE4DD481F9F1D148D9 + DE255E6E01FBBA71263B16872FF1002192BCE850EB5055E525C05779CB714700 + 701F4553BB062F4C8FC1F35B6F0B1B51DBC01D101CCE6D9C84433FAA304E0070 + 4FE02E8D8F006ABD4552EB4D1D77904A01666F6A1EBAF3118E8B798FA1F4A20A + 51E1C16EE27CF30960CF47CBD0A3B74A46D1C20324C42039A701E225DB0151BF + 650A0E5E6C4554588833F91CCD2780A2DC65E8163B60AF751E206D460C9E5EFF + AB5BEC1D103FE5C7E3BB1F6C00BCB8F84F9F4F00853C409F4532EDDEECD0E2A5 + C418CCC8BAE63109AFEF9C896F2FB422322CD8B185FCF7009DBD16C922748B3A + 909E148BF83597DDE36F2FC31B9F3F8B03176ED1AD5B88648EF0090023B4DF07 + 1FF7988453158D23FD14A5F92BDD011EF4DFF37F00082969EF37DD5B78000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Refresh-Reload folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005F34944415478DABD975B6C14 + 6514C7CF5C7666D9EDB29D6D81765BD8ED96ED25201A4200038D2F6AF4C144A4 + 48BD40089717E38B2F8602C631026D7CF1C59818C4A8240AA4A42828047DC1AA + 201209A5F7D232BD500A74777ADDEECED533DBEDEE2CBB6DB7B5F1DB6CE69BEB + FFF79D73BEF39D8FD0751D088280FFB5F140E25F8B6ACF17C0C5C3528785AB00 + 029EC6B756E904D88CEB840E0FF04B1DAAAEFFDD7F586C9CE97D37CFAD6258E2 + 571DF471E160707D660048EC619DDB00C87D04092F5A1D2CC5D869A0190A0872 + EA5D4DD64109AB101E93400ECB3DBA4E9C023DFC79CFE1D0836471B85A52EEF7 + 76B4DE857B0703C49C002B8F731514019F3176CB3A479E1D6C2E36E579E39C26 + 68A048FCE3519954407C380AC14131A229DAA720891F01D8B38165AEF9CBFCDE + 629F0F2EFF7C650E001E682FC31DA358EA7DCEE3001B674D0B48E02F2A4C5271 + 083A06A2CA2AF4770DC0E3C160AB61A492B2D56B7CBEA2E8FD9F2E5E9A058007 + C6CB72755627FB4A6EB113489A04E339C3C49AA6038966A7D929F34F8B4D0953 + D17EF45AECBA716DE86110144905433CFA1C41C18F172ECE0010F5B7ABCE9E63 + DDE6C2914F04C23031340952488EA05FBB08D0033A00876FF8D92C8675E4DAC1 + 95970D160B93B0000A50E4743F669D24501AEA7F389F1EC07B9CABC1911FB4E7 + 5A41EC1BD335593BAB69DA895E79A401E124B38B3C96EC0A2089039485AA2A28 + CE2396E5E5982C60B2C61310C6B1EEFCB9548095479D1B682B7DC3E6648989A1 + 70BBA22ABBFB8F8CDE986B6A161EE3D65124717A45416E79519907476D8943C4 + 83D36C0D3C9EA93F9B0AE0AD715D43DF6E5622EA7588682F0BFCF070A6F96119 + 0F593696BB54E8716F2D2EF59902924A32FD745C7C77EEFB54004F0DD7893D06 + 22D226819F18CC543CEEBE9A6C2F7EAD6BC3E6F5A48BE3D2BB2366895375A7D2 + C48031F500688187F07CC58D24636189CBC57E6FB96FB52F1188260873207E73 + F6EBCC1251A6E298E11AD0F4AB8A8ABC73CC80296B7C75E6E4E200B83F769432 + 34FD4BC91AFF4A6C33FA3C0144E3C421E1CBD327FE3B809B071BC3BABA4BD7FA + 57141616CC3C6AD335125D63B4C504F807BBA5F37D1757C33F7135DC1205F0D6 + BA1A30A76F5D0043A714093E33C04368210388D70345B539FAFEAA03A61B1AA8 + F8D774CCFDD1FED4D13857B5A97E4F9F00B76EDD7E8800BE450530CEA3427100 + 35190601BA857BD0D878BB4F529417063E186B5F88785A00F4CBD448353579D4 + A67E7B6727B4B434F74A11A818E0C5DE858AA700ECABDA1F17379B5D8D59C1E8 + B775B4414B6B5B2BAE8B2F2D44DCCB8355005030E12929007B77EE4D985A4B16 + 36FA017108AEFED6A0E1725C2C540F0BF317B7E76145F4172EE5524FB5E84F01 + D8F3FA9EC4A8B584C9CD56686E6981AEAEEEDF4311F1E5C73C8C672E9E8DE518 + 798966695CE894EB4275F0D914805D3B76C7832E6181276680AE4073532BF4F6 + F4B7AA9A5E355BF53BDD0A8F2EDD4853F4B78E65F6D289E1902E87958D7D4746 + 6EA600BC55F97622EAB5196640EC38707F003ADAEEEAB2249FC632FC8B7E69F8 + 8F69BF461B967458AC6C89162B0C55B5DCE322461E8DC1E470B856382456A70D + C237B7BF11174BEF02535C20A0AC4870BFFF010C0D06607C6C1CCB3530967211 + 3F9983F9B5D86AB7B2CEE50EC8CA5D028FBA03303A14AAEF89042B8D0D495A80 + 9DAFED8C0B76DC6D07DA6281820277920BE2105AB2651455865068125455051D + 7728E86B2C97115246C88EC738F2C90B4244AC4C2AE99E04D8B16D476C9EB7C3 + 9DE6E666BC4FBADD79E5256525C0E00793E2419B2951C5FA787F64680C1E0901 + ACA4954F04493C9CE4A2740095AF6E87B6CE36686A6E12B022C2289D180686FB + 90A4A9F7DC85F96C7E411E2CC9B29A724542588D5B4241E15108DC17213C1E69 + 547578B7EF90D89051227A6AED5AB8D37447C00CF79C39C9788ED9F281B0BE83 + 7EDD65B52DF1389C5960B5B3E8223A9A39154586485882C9F149181F0921937E + 05F720277B2223F5667FCF0AE0ADCDB98901B4548AE8CFCF96E18CEA9724884D + B84D598D9BD27CE31ABA3C84C9A517596E8FC962439087D14CF343F2EE38B665 + CEF4E5C56886F6BFCB533CFD20731F710000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Show About application window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003AA4944415478DACDD67B4814 + 411800F06FCF330B51D324CBA282A0A80844ACFCC3487B40511695E603A52B3D + 13CB7CD4A9A995A466A7650F28ECEECC3235AF8BC2080ACCD04A928CBC12ED01 + A2A299969E8A9ADE6BB7D98D8AADBDB9B90A6CB863676776E7FBEDCC3E3E8A61 + 1898CC42FD37008AA22058A6588336F91480176A9AF28F631950242D0A97A229 + 88A9FB11F77B65974CB5D673A6734DA67433B84F77FCE757CA86F9F06908E425 + 0FA04F37E27F335F5AC70384A6AA1A2FA687F9B83A3B02CDB027E097A6E1650B + 9C555672F5246928F87A2FC34F359A5AF483AE8F3A483B7FFB45A53C7A050F10 + 92AA34AAE552B1C1CC580DCE1D1F9B090383C35C7D86AB0BA88B72AC9EC321D0 + D89119C5864AB9D4E197195032A811C68D34D19486C76542BFEE1BC0DDCD052A + 2E5907B0C5DE8E8288232A40B12841C017031940DBDC0A0545374024A2E0504C + 28782D5F4A0C884CC70046F566A281C4682007B188ABEB4D3498CC648F337B9E + 24A3D8326064820CF0A7458C666CCF510C60781C0FD8127150B0FD5ED9052280 + 1D02441FC30006BF98B0036C8D4C106CBF7BFD3C1140849E847D59572C037463 + 78809BA398DBAEDEB99FD75E554A06604BDC8912CB80FE5113D120DB77F367E2 + CE3572C0816C0CE0F3889168901D9244DEFEEDABE78801F13957850115A7C801 + 417BF8805B25E480845C0B80B23CB4048480E0BD7C80E60A3920F1A40540696E + 34BA07C800215149BC7D75F159624072DE356140494E140C10DE8461D17CC00D + 1539E0F0290B00D5892818B4F218864B93B0FD154AEB10995C00C07E8E2F1D95 + 88C70CF8CF71444C3276F0324521B6DF6832436661B9D0E758D598B87BA3CF7C + 4F0FC0E5040BDC1DB0013AFAF5D8FEE6F79D505EF55820219129D73B3B4DAB0E + 0BF48385F366A377B68843B0D911498664ADB057FEA6AD0BAAAA9F3363E31301 + BFA5646CB6129452B44E04A2939692D2C0752B6195D762C10006A3099E34B640 + FD8B56AE2E74083629650196CA8E940B731DED9D3A526383ECA6D88B797D2633 + 0D8DAFDEC1A367CDCC845E5F46D3D471CD6969BBB519B1091022BB9CE7EBBD24 + 6D93BFCFCF01D05FDBD206B50DAF616878AC8AA6E974CD99D856D2252106F84B + B2A6CEF2F0EC89976C73757371E2DADEA2B5ACA9D7C227DD701D05A634757E5C + 0369609B01BB0E2BA48B16CE51846F0B808EEE3E78F8B409BA7BFBB59419D2D5 + 6762EEDB1AD876408AA269839FB7577B572FB475F6B4D10C9DA129E8D5006491 + 65AF7F0D90296A501F4A7999ECBEE73D8ADADA2CB277B5AD80C92A930EF80AEF + FC36DF39639EC10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D34944415478DAC596794C14 + 7714C7BFB33B3BBB33BB2C2C8AD8864352511B6B09208B502A5A8CE921A835D4 + A407B5A94D6C9BB6F1F8078176132CA62569FA67934A454A9A5AEBC1519BB60A + 54889682B6F55853742B7BA8B41CCBBDC7ECEC741694EC3AB30B2C21BE64326F + 7EEF37BFF779C7EF3743F03C0F82203017595CA18921BDB224C8643478C24EB2 + F6AE6E039C0FCE4B38185DC8735EB7B574B0CEE7D72744B800B106CD221545BD + 27BCFA928C2496914A39081901AF8707EB64597889168E4095D535700C067813 + 2BA2F7D18CAAD2E9703ABB8B07E83901F81623E43044C4306A66A10A4AB562CA + A690519083847B8445DF6D3B4606C78C80F7479A66F6AEC9D2A3A5E91C040022 + 3C0003A8254A5D0DA5A1B62F7C2C12BEA8FD85942940C9A9098889BB708DF48F + C2FC8F0DE9ABD310A9D6A2BEA1317C802507A3AB699DF275B510F568AF032E21 + 4A9E13DE97014A0D85A8D8482C58AC8352AE0C80A0649377DFD889BA93E10124 + 5444BDA65092350A1509E788EB4FF0F8D4CD116D774A07AC8F1AC090A42E4F26 + C75E46CBE42E7B722934B4FA1E843200E2E889A3D200870D502D20E39B85A135 + 5200C5F251D641120ACEC31D32BB06DF16CAE19128912C91D295AB2398FDE999 + A9A029662A0BF73352FB7DAD3440FD81F8CA15B945FB92B33F90CCC09EDA425C + B96DBC7AC6DD9BE2EBEA500DAAA29595FAACD5D00A35F72F854FAFFEEEB018A0 + AE3C3E53C93017F4853B08858A1686278D93B7499D7539F0FBB123BC6BDC91B5 + E5435BBBB4F3A852B5465D9EA64F8596D14EA6DE2F7A5F931EFAF64B3140C3C7 + 095756E63DFF444C5232FC3C8BF4DE5B3770EDEC4F92915F2058D469E5C8C84C + 03A3528B76834FF7491080447EDDCE77433AF7D70989F17A931186B69FC17A83 + 56E7DE6CBECD5C6C7F5A026057D0C5A7D5F9E9E7345755A3A0D432B5DD4400EB + 77BE15F6E2A1F4FB0135557D1D1A60DD8EA28981AB679BD067B5619EE58FFC12 + 735A00C0DA97B78163DDE83CDD8A8DEF9F993FD7BC078D9F64B936EDEF560500 + E46C7B0E43BDFDB0F72BB1EAD93D700C354BA475A6E90F6E1BF9EF2E2ED69FEA + CC2FB164040064E7E7E2AEF0D188887B068F2C4F876BFC3266B30B660A78DB68 + C48DF3E7BFDA54627933002073A31EA62B262CCFDB0D46CBC1E3B6055F70568D + 19F87CFDD756F47499DEC82FB354070064E4AEC2D58E2E64177D267CBEBBE0E5 + 866614192172161AA6E3D4690CF70F641494583A0300D23297E2F2253336BCF3 + 05D8B173C236E1C24E73C0B35FB678E1906AA939CEF5B9CD9A1D1FF1CE0080E5 + 2B62D13FAE41FAE65D60C72F065D646659909E376A1F44FBC926A3701EAC149D + 03F1711120635390ACCF01E7BA19567DA7D37B4C365C6BB9F44D4199F5151180 + 4EAB40627601621274C28F656FD88E89108DFA77BB1156A379B79081CF450034 + 4520EDC522D09A31A109C7832E3297CC74FED081FE7FEDEBB796D95A4400BEBF + B20DBEEF0167993AA7433B086D973A2B9A6A5BE176D8755B0D838322006DB416 + 29397A781C77A6713A1330B1CDC372E868BE6911EA9F386179102029251D8FAF + DD246C15D70C1DCF0ECA7EE7167E3B79BC51A87FBE24C08AD40444C7D00FECFF + 60299D7D367A6C23305DEF2DDB5C6A3D2009F054E1766817C5217433498CF321 + 6C7EFA5FBF34C0D6657A614B99EDB414408FA0C7627EC535EC195DF4AA616058 + 04F030E5A103FC0FFEECF2DF835A4CF90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select files by file mask' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000011A4944415478DAEDCE4913C1 + 40108661F9974E08897DBBA992084254B9D9B76C38F99771713023E9E9961A1C + F46D0EDF3B8F124551E69BA7FC01CF806CCFFD88E636D79544C0D5D1A47E9E33 + 3C1870714A520179C38701E7A95C40C1140042C900550898E000EAC067DE941D + 080890A12207A0EC40806FE342258B05507620C0B38BA8906605CC9BB20301EE + 1817D2872C80B2FB6DC069C486CAA300154EBAB81E083872834A4A405C0F041C + 86ECA03A4E0788EB09002A370853025E7B2060CF0D92AEC6C1283B10B0B370A1 + BACD02283B10B045861A1C80B28301036468C201083B10B041869A1C80B20301 + 6BB3800AB5A667E64DD981801532F4EEB585004332C011009692011D1160D197 + 0BE8CE0400A9BF3F2E11F08DFB03EEAC943FD08B994E6A0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Deselect files by file mask' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000EA4944415478DAEDCEB71282 + 50140450F94B2B95644E9D3312243A63674E04D1CABFC4C64210DE2D70D582ED + 77F770711C577E19AE04BC02AA13EF2B9AFB42E672013757829ED7149F0DB8BA + 2214505702362072B080864A002E60004F026C304023002118205080C0C20244 + 9D00F8960005487AC80678261620CFFE1D70369280A611163ACCDA63024EA942 + AB20206B8F0938CE9285B6590C90B54700F854E15210F0BEC7041C52854FA743 + 01F63A16D0B508C00E0CE891000D0CB009C0160CE853808DDA8002064EC406AC + C180210950C0009700ACC0801105584EB180F19C0040DF9FC905FC2225E0018D + 461BD0B49C22730000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select all files' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003374944415478DA63FCFFFF3F + C34002C65107203B20A27C365D5CB3A2339511A70316B5A6D0D4F2B8EA39F81D + B0B03599A60E88AF9E8BDF010B5A68EB80841A020E988FE480C3E76E31ACDA71 + 9A415C988FA120D68D81878B9D284B2EDC78C4B060E351063E6E0E869C286706 + 31213EB85C22410734231C90D5B298E1FBCF5F60B6BD893A4382BF0D41CB7FFF + F9CB50D2B392E1D3D7EF60BE83A90643BC9F35C201B5041C300FC9010DD33630 + 3C7AFE16CC66656166E82E0E67E0E3E1C4EB807D27AF332CD9720CCE0FF33063 + F0B0D685F3930839606E13C20167AF3E6098B6722FA9D10C07EC6CAC0C7DA591 + 0C1CECAC70B1E43A020E98D39404E7FFFBF79FA166D25A8657EF3E91E5001F7B + 038600672314B194BA79F81D30BB310945C3E1B3B718166D3A4296EF3B8BC219 + B839D950C453EB49740028142A27AC6678F7F10B5E834F5CBACB3077ED4138DF + C95C8B21D2CB02C361041D30AB210943D381D3D719966D3D0EE7FB391A818317 + 064046D44F5DC7F0E2CD07301F9460DB0BC2B026D8B406020E9889C5017F8059 + AB72C22A864F5F20598B9B939DA1BD301C181A2C60FEB96B0F1866AEDA07576F + 6FAAC910E56D89356AD2093960467D12568D7B4F5C6558BDF3245228183378D9 + E983D94DD3D7333C7BF51ECC6662626268CE0D611016E0C16A4E462341072462 + D5F8F3D71F862A60287CFDFE13CCE7059672A060BE76EF19C3B4E57BE0EA6C8C + D419627CAD1870818CC6F9F81D301D87034060FBA18B0C9BF69F43A8F7B26438 + 71F10EC383A7AF218631323234E60433880AF1E23423939003A6D5E176C08F5F + BF192AFB560243E33798CFC6CAC2F0EBF71FB8BCA19602436A8823033E90D544 + C00153F1380004B6004360FBE18B18E220DFD76605022B2E7EBCFAB3093AA016 + BF03BEFDF8C5503371153C1460404F5D8E213DCC998110C86E26E08029041C00 + 02AB769C6038042C1B904179AA1F83AC843041BD39841C30B92681A0219F8155 + 6DDDE435E0F20104B454641832235C08EA0381DC9605F81D3089080780C09E63 + 97193603D30327071B437E9C2783A4A80051FAF2083AA09A380780C077607A60 + 656566606166265A4F5E2B01074C24C101E4807C420E9850455B0714B4117000 + 4D6D87029C0E180830EA0000CEB5D1D0198E8C410000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Invert selection' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002A54944415478DA63FCFFFF3F + C34002C65107203B20A27C365D5CB3A2339511A70316B6A6D0D4F2F8EA39F81D + B0A02599A0211F3F7F67387FE311C39397EF18DE7CF8C2C0C5C1C6C0C3C5C1A0 + A524C9A0A924C5C0CEC682A27EDBE14B0C5EB67A607642CD5CFC0E98D78CDB01 + 6FDE7F6158B9F324C3B96B0F1970A51D9063DC6D7419DC2C75C00ED97EE412C3 + EA9DA71960E626D51270C0DCA624AC069FB9FA8061DEFAC30C12227C40CCCFF0 + E7CF3F86D7EF3F333C7AFE16AB7A11415E06234D79865DC7AE80F9307393EBE6 + E177C0EC464C079CBC7497E1D9EB0F0CCE16DA0C7CDC1C2872EF3F7D65D871E4 + 32C3FE53D719F0E52898B9A9F5041C30AB01D501EF3E7E65F8FEE31783B4B820 + DE7471FDDE3386692BF632FCFCF51BAB3CCCDCB406020E98518FEA805FBFFF30 + B0B1B2301003AEDE79C23065D96EAC21013337A3918003A6D52512651936B0E7 + F8158675BB4F639583999BD5341FBF03A6D692E780AD07CF336C3B7401A73CCC + DCEC66020E98428603D6EF39CDB0F7F815BC6A60E6E61072C0A49A04B2428058 + 90D7B200BF032656D3D601F9AD041C4053DBA160683800A808AF215B0E5D6258 + B2F5E4C03860DDBEF30CAB769E19981058BAED24C3E68397C8B69C22078094B6 + CFDBCE70E9D613A22C0255C73F7FFDA16E08800CEC5EB88BE1CA9DA7782D9793 + 1462F8F1F337C3AB779FA9EB005848EC3A7E8D61E3810BE0DA1219F0F37032B8 + 5B6B333C7FFD91E1F0B9DB9447C1B6235718CC741418440478B01AF610D82079 + FEE613B081F2175C654B011B2BD3571F643871E91E4E0F10ED8065DB4F316C3A + 70918113D8CCF2B5D763F00636B5D0DB7BC8A172FAEA7D60223DC5F0F2ED27BC + D1439403829C0D19D6ED3D8FA211E4101D1529066D60C313D43202F141CDB227 + 2FDF339CBAF280E1C3E76F0CC480A151120E880306028C3A00003CD7CCD04321 + DD1A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Unselect all files' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003CC4944415478DAED96574C54 + 411486FF5DAC04040326825120C6805D11043516506362546C58A222A88B6259 + F4C5B23441D8A82FBA28A252351A106CB1C486255620888500622C8B0D8D1041 + 891A157066EEF5B21776770C66F5C5FFE9CC999BFB7F3367E6DCAB686A6AC2BF + 94E23F8021C0BC0D297F85267B9B4A6112E060C2328B9A0745A49A073890B0D4 + A2008B23D2CC0364C69B06686C6CC2DD323D8A4AF5D0BFA9C6878F9F59BE6B17 + 6BB83A3BC2ABBF2B3CFBBAC0CA4AC99E397C369FCD07078CC260F79E421CC901 + C83001505C5689AC7305A8FEF0C9EC0A1DBBDA62A8472FE4E597E1D7BBED6DAD + B163C37C16877001B6C801E874CEC5429CBF59D2E66D6700EB4580280E407A0B + 8023E70B71E156DBCD150A05C2E6FA91F2B8B1F1121E405A5C3300DDF6A4EC3C + D90B954A25C67AB963E4903E70EA66CF7255EF6B713CAF08E5CFDEB40298E0DB + 1FF327FB4AE3A5D11C80D4B8252C6E68688446771435B5F5D2BC9D4D67A8174E + 840B397086BAF3E029D28F5F87B1A6E6606F036DF86C7630A99645A79B074889 + 15008ACB2B919C7D59B6724DE854B83839C80CF2A9F909E3E6BF14366F3CBB1D + 54AA98DF04D89B7315774B9F4B73E3BCFB62C194115C735A730F372759398691 + FAAF98E3F77B00FB370B001A5DAEECCA6954D3E0DAA379EBF31F3E458611F390 + 1963D0DDC10EDA9453529E5E4D6D78208B43377300F689006B120EE2DBF71FD2 + 9C6ED32274EAD85E32CF34621E4CCC7D07F5C697AFDFB076EB2169AE43FB76D8 + 1511C4E2E53C80BD3102805A2B07D8B9510028A0E6278D984F1F031F624E4501 + D66D9303246A048015B15C80101647261E9595601329C1DBEA5A627EC388F968 + C99C4AFFBA1A5B534FCB4A10AF9E2D026498074816015272AF923EA097E6DCDD + 9CF1585FD5CA7C710B73AAACB37770BDE89134F6ECE70A55A07008C378007BA2 + 0580FB8F2AB13FE70A4C8999078CC6F016E62FAA6AB03DED0CF970354AB9D039 + FE18E2215CC395711C8024118036A2D8A463B24664681E64C23C39EB123ED67F + 9172B411C5AC9A2535A2555C80A810699C7BA100D70ACB5A01D0724CF3F34477 + 47A115BFABA9233DE1096E1657C8564EA50A6C5E3D03D8C201D82D02DC2BD723 + FDD835FCC93FA3BFEF00CC9CE82DCBADE601EC8A0C6671A42E07759F3EB7D97C + FC880108F0F722E592E7D7C4679A07481401A20C0068CDC792565CF2F8253913 + E67F481CEC6D317D8217061B6CBBA1D45C800801A0F4C92B729D6EB33870920F + 7B6103A96F49C50B76435E920357572F00DAD958A327F948D15A0F74EF052BA5 + D224A03A8103A013012CA5701EC04E8D6501D66A39001675176512E05FE83FC0 + 4FC33449DFFA774A4D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Display session log window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003BA4944415478DABD9679508C + 7118C7BFAF86929491C99909C9348E351A51A3C1200C337224E3CC38C6B976DC + 85524C2BE5D81C4BEB1A39CB158614A96968319A508355ACA2D2B6A5DA8EB5B5 + 6BDF77EB65A3DEDFEE2CDFFD67BFCFF3EC3E9F7D9EFDFD76299D4E87DF455114 + FB3CF25C52C6C742054EEE5AE463094FEB8F7E6D011CB992A62B28A940946026 + 65096F32C0E5946C9DA25C057EC018CA129E08607944021B98E8E906FA0D5EE5 + 1559C4D33A15EC4F7102E88B40478F5D4D073DC2C80D7E4CAE55CF6FF2F16DFB + 15C2047200AD3E7CE9DE3314292AB179892F93A3FDD7D2EFD81238D9D837E7EF + 3F6FD3AFDC778D1CA0416B1CFFAB384AE415F9E8EDD017EDDBB567FCAA484280 + B9337CB99B7348A355232C6D0A7ADAB962ADA78489C52726934F40DDA0657CFA + FB6A8C1DD4D9E40988A507217A22445C402246F6F166626BA3AE9303D4690C00 + 19B26AF8B891011456CAE1ECE082E2EAAF987A7614260C988A03D3246C7E7D34 + 2180392B7857960991743116F184C82A4E824C29C59EF1A970B071626B4C5A81 + 4ADDC8F8A7792A78BBDA717E7A8D5603C19D4064C81F3297CD269FDD08F45863 + 54233878831CA0AADE0020CD5761F4006E80668890143E1AB58D104E11C38AB2 + 32CA6F3C440860895340EB73650E7AD8F587B595ADE92BA8A86D60FC8B4F3518 + D9AF13D1047E579DA6067E715E7077E2E1F0F438A67CABE8263980B2C600F052 + 5E030F971600047794E849182E648B71DEFF0103416B5B0C2180B92B907F7F05 + 972E3C94A8F2994BC8CB793616F3F6B179E2154882FCA15069189F5D508BE17D + 6D39279059900AC1DDF9E07B87EA4F4232F2CBDFE2FA0229ECADBBB02FD971F4 + 161940AC1EA0B4CA00F0FA4B2D86F5B1059774FA47F8233E9264098CDF3E2E1A + 33DC171AD5EC3C460860EE0A6888F8DCBDFA7B408B802121A060D48B7C05E26D + 73D809E416D56170AF8E6601B554A838910CE0F8D639F8D604F0B6B80EEE3DC9 + 00944F33E0E8EDD3AA0F3B410860CE0AEAB33251B26E2EECE7AD40577E08CA63 + C2517545821E47E36133C2CBB415C46C9ECDAE40F6AD1E6EDD6D882064112190 + 9F16C37E080F5539FA23B96C35DC82C3D9FCDED8DB6400A24DBF003E94D663A0 + D32F00AE3BE8B9DF44A6390DE179EBA1512E42420860EE29681E7B874143F1E3 + FD1B761DCD225E41B4601614D586097C2A53A35F376BCEE6CAB414BC5EB900CE + 4B57C335280C79C250149E156358EC45388E9BC4D4449EBE4306B07FC32C9435 + 01C8956AB8385A138D5FF938198EE37D5BF551670801E81FA37F21FD7BFFDFFF + 032D45FC1DF827DD9BC409F0BFF5131674F8DF931101680000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Open new session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004A04944415478DA + BD967B4C5B7514C7BFB7B485B20EC6FB551E45DE0FC165086E6C4CCC9630C666 + B274CB32896646DC1634D3B8688CC6696031E2665CD439D48D39928591195DA4 + C63FD431988BB60AC826A39A8CD7B060CBA39452FAB8D7DFBDD0DA3BEE8614EA + B9B9B9BFFE7EA7E7FBF99D73F2BB97820F6DF791FA5D623FD169FBAC29ADF9BD + 17C7847C285F02EC79B95E7D48B5B9ECA3A61F4E35D53D7BE87F05287BEE64D0 + C39949C6A3072BC4B59FAAE9EE9E3B994D27AA74EC9A4A75544A27C4245F3AFE + 97CE0D50B0A9BC91E0EC5B2900799802AFBCF43C1E2BCC84DE3089EA374FC36A + 9E803C2402A90F281993D94AE9274C056E80759BCA9DA99979226F0599E04464 + A7284051732103FCC538A82AC1B4D58ED0A0400C8D8C83661824468762DC64C1 + 0BEF3669CFD70E16FE9B81927226392D1754C16BDE018CF7A03CCB81CAED4520 + 3A60C865B33B619A9E056944F84BC49CDF2A9904EF347C0BEDEF030F35D75575 + F2009252B220297A03AA75522E0817980B769FB1C75C57C74FD89C138A2D4599 + 305966890F43AA4A2EA2C2664646B2A2EB1FC1919A0FF14DC3314E9B0790909C + 0159F15BD8992F718BDC0FC225EE09F2CBCF5750FD783E1263C3B80CB8C4A979 + BF8E9E01D4BC7F06EAB3B50B01E293D2202FA94579AE642E30E3D6E17683BBC4 + F8EB73E34EED551CD89103656C38FC48EA59010E800CD81E189FB4E0EBB6DFA0 + 6EBB5173B1AEEA751E405C420A824BDFC6D62C315F681151D7FA98510FA95987 + CA8A22926E29689A4680540291888291085B6D76381D4E38C8FC17DF7540D3DD + 57C50388512811B6B50E8FA68B17A937B3609DDD5DD775350EEF590F7F52EB21 + FD04C9000545540882E532FCD13F8ACBAD9D5C59D83F38C9DD376C1CE20144C5 + 2622AAEC0436A4F8F19AEB5E4DC7CED948BCB169067AFD1D30FA6B90C9643058 + 4813FB87809A1925E5C84370900C57343A688CF130B61FC7C8703F34AD2D0B7B + 20325A81D8ED2751A8F4131463E67FD1E431390318CC0CA6ACF3FD416EDA3605 + 917435307F1638678C887368B1AD38078D2D5AD8E22A30DC7218A3FA216180F0 + C858C4EFFC006B1344820DE7A40123D9ADC10CD89D9EF9B9B75906DA509C2645 + BBCE86C0848D18FCAA1A86D1616180D0F02828777D8C07E344BC2663B58C64B7 + 8669B27BFABF09BB8CB65B30D5FB2502934A219147E3F6A50318338C08038484 + 462065F727C88A11B96B3E39C360748ADDFDD2843D8DA11DA0447327E19F179F + C1F8D8DFC200C16BC290BEF70C522329AEB9464C80D5EEBDB090F55ED88FC909 + A330C0EAA035C8AE3C870839C5A5DB75F8ACA4DD3CFF24A64C13C200ABE441C8 + 7BAA71C5453DADABE1094C9B4DC200818172AC7DFA824F017EFD6C2F2C16B330 + 4040800C0555CD3E05D0D4AB60B5CE080348A5FED858BCC1A7006DEDD760B3CD + 0A0348C4129F888A5FED758F1DC7D26177D81702B09F64E4CBC5EB4FB2A598C3 + 49D3DAAB2D7E7C80926D9F83A1F69163DCA710EC2B0314734EDBAADECF03588A + 25A5E50A1E107DBAEE25C7F30A2023FF1141805B9DD7571E8034E70DF2C8F69C + 73D86D82BE6289F4EEA99BA4D972960BC0C42B33787383B76F09FA0AF9B9BA7D + 5900EB4B772CE626683F7E7F79450016946009B6FC12F8DAFE016AA249EA13B2 + 08A00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Disconnect session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005444944415478DABD967B6C53 + 551CC7BFF7D176DB6DBB75EB63ABDB6030067363C0786C93884F8C46A2C14720 + 2284C4278E18A721083251D9F015A3310804B3A8A8312626929845308444441E + 0374537948973D816EAC8CD1DBF77D797A674BBB5D03DB8ABF3FDAD3737EBDDF + CFF93DCE3D145264BBCCDC4A45A19A40516DA297BFAB16F069F96D331ACB7414 + F6320C932F49F27A2A55E20CCD7E51B3702ED5DEDE0DF7C5FE836EDEB7F80D20 + 92E8B7DD9C5ECD28EC0F65E5D3ACB9B9761C3870181306D86134DA190A176FAB + AE64AC391628B28CC32DADF05C1E6A76F3FC2331889D1CB79866E8EF6795CFE0 + 26153A71EA8C0BED9DBD1D13062002FA3C93F184D3619D39AF7C3A289A862449 + 3874E24F0C797D5F1288D50EA371294353DFCC9B394347FCE0EAEAC56957571F + 44A98A7AA16E63AFC36ECBA7A8F1B350A1102CDFEE86D37F150BCA4A40F28B88 + 20E050EB690CE6E623A3A713F34B8B61CBCE42B7FB12DACE757A0445B973ADCF + 778A7AEB9D8F147B5EC144030184C3A03EDB0E4BB70B0BA64F855EC722188EE0 + F8B90ECC9C5C008B8983FBF2159C7475F90545BCAF960F1E56E1A30036424915 + 2D9938842880FA702D4C2DCDA82A9E8C34BD2EBEE4F1FAD0D2791E622472FF1A + BF7F5F3C7A5100ABDD0966EAC3985FC44051861762DFEA3841233AAF8CD08DFB + 46D748FECF3E5409E3D0006A8A0AD5699914E6015707AE5456A16EFFBEA45CAB + 0039B65CE84A96624E01336A5323059504A2D838AE4FF2DEB3E16928BFFC88EA + FC3CE8482DA80F20F5351808A2C53D4060224B9EF3069A9300B2AD0E18A63F8A + 8A7C2659E85F02250126713D11460EF8D1F3F20AE8DB8E609EDD0A9674434814 + 71ACDF830AD29E963403FA09C46F973C4111D2BD493560C9B123BDF431943BE9 + 51BB8A8B258A8FC881383488DE171F87A9FD2FCCCECA04693908D1F3C0338850 + E53DC089FDA8CC32C346202E0642F8E3AA978FC84A4DBC0B322D5618CB96A134 + 8FBE8E98326A5D2685D7F5C42258CF936AE732106D6791381CF57A11B87B39E8 + BA6D508EED85D2B012E504C06930A08BB4ED597FD0230942950A60CECA81B962 + 394AEC745258B5421D1B4A3239ECC30AFC973CE097DD8A4A96868D652113F1E3 + C110BCD50F80A9DFADE63F6ABE3D0D30346D4329F95948BAC3455AB44388F40C + 03645A90396B05A6D8E8A402888BC73EC95720322C1C12AE45423EBA1772C32A + 5410BF0BA40B2E57DC0EB6F13B80BDD68657DBBE46F0EF53C86EDAE199CA32D6 + 5C52234748D1AA00467316B2E73C89493954D236633B97A33B0829E0C3C33BD7 + B22884B06515E8E259D0BDBB0748E392D6077FFF0A3EEF10AC8DEB673094EE27 + 1A54A1A4C8EB5400CE440A64EE2AE45BE8A4BCC7847DE1E89C82EB9ADF3B2CCC + 8C6EE78193BBE1E7BD78FDD597A88F0133C371536AFDFE5615208333C1B16035 + 9C99543CD5D150F321A8394D85F5B77C8E809F570112E75580F40C0EB9554FC1 + 611E0EB13748DEA1524A74E3D677AC094172566802A4A5A7E3969A676032905D + 4730FAAC4D815D38F22942C1A03680212D0D050B9F4DBD6A82F5FEBA0B61D2FF + 9A007ABD0193163D7F5301BA0FEE442412D606D0E9F428BA63CD4D05E8FC7907 + 0421A20DC09213AC64DAB49B0A70CEE582485E4E9A008C46DFA6C2E807DDF1B1 + DC9CA7DE153501E809DC07C7621279436EDE50970C50FBCA6B6E878DDC48FE07 + EB1F18E8FBE483C6BC2480B13C60DD867ACD13E2FDB7B78C3B8463FAE3C6CD0D + 9A005BDFDC947A80759B1A0593916313E72449D4F465982437F03E5E7CBFA15E + 871BB0FF0450EF8A234A6370A04FD357CB6F64B58F0BA0B874F6188279CDDACF + B44E1C607DFD5691E332C67540F87C01E9BD868DEC8DF8FE032E5578ADF01DF0 + 0B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open saved session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004644944415478DAC5966B4C53 + 6718C7FF27CA7505860CBC04E83463B038C7940011194C30EE02853162703702 + 1B33068C8BC62C512492C86636935D3E2CF1C3361642E617094E183171032697 + C98A2EF382582CB3A5A395527BA537DABE7B5B017B38A7D096189FE4F43C7D6F + FFDFF33CEF39EF610821601806FE5A665ED10018E4F83D81C708D02FEEED7CC5 + ED330103E41711E1A6B495E843363E8ABF7A3B99A001129F4D4179ED97A053DD + D1787EDC77EFFF2EEFF6F93E7A5DFCE15328EE8DAD0C6043D22694D57EF5309D + 5EE26E73CD39DEEDB34EC06423305A815B6D47303931BE3280751B8428ADFBD6 + 67F4EEBBC14AA0B7805E04163B5998AFBE7818AA49D9CA0012D6254254F79D47 + CD3B523B8D546D24D09ADD5113DEF9CACE83985229B800CD8D087F6675F2EF74 + 9AAF1DDE6F75C80B4FF714D9E2E2D7A3F8C019CC050C07155619087416B2500A + 5F266FAF8546ADE4025C684A3A9D965F792425E713DE8963035F63F472EBE727 + 2FBD742C362E81027CEFD9683A33A1513FAAFD72263DB70F5ACD141BE0979349 + D96191917F66EDA96242C223E6E2C2A3A2529BB59A3174AEC579A2E3F955314F + C7E1B503CD98A2C266BB7FC2F376E7EC87D0EB346C808ECF926F6C2E7CF3C5F8 + 8D29F052E6F8EA7109F61E554210158397AB5AE1700526EEB69B2D1FC064D42F + 061092576BEA7844B920851503887C4A80ADD567031677DBDFCDEFC03C63E203 + D8EF19C0F8887EDE2FA8B882705AA6DC1DC1BD8DFB070661B55AB8003B6B3EE6 + 172560B517EC152334243460E15547473D77E7A934D867ED3C19A8AA7C58A3EE + 1E4CCB27828ACE5F9B3685CD549F9208580079EF96C349C986BBFAB0FBE06F8F + 4F9D38D0F9C5765BF1B17BE12C80DCF237A0576BE8331A862DAF1F8645DFC32E + 4540BEEF3EE39412572F9C1F16D5CB33590039A27C28C715884A2CC0FAD40CD8 + CCD77D2EC2F829C6E7FF373282B1C1C11F8BEBE51FB100B27767417A438AD4C2 + 43888C76C26157F85E900422CCFE7FFB8F3EA824D26A5183FC27164066FE16DC + 144B9053498F5997042EA7DEAF28B9D9581A467CBE0B06CD83CC927AF9300B60 + 5BF673B87E4D865DB567303B73991E2ACE80EBCB3BCE2B5BC4E5426F4B9B73DA + 2E13549D205616406ADA5A68CC026494EEC7ACF9AACF45FCCB02FF38935687A1 + F6EE9192E3F2CD64EEF05A00484A8CC2EAB5E948C9CA85D37637A8FA2E374E25 + 55E056EFB59F4B1A26DEE300C4C68440B8BD04F1C9B17039D4418B314B6CD43B + 43239818911DA219F886031011CA60DBDB958810CCD04D68F6B9C84AB231FCAB + 189AFBDA9D650D8A5E0E80FBAB6C57CD3EFAB296812C7C5C2C25B6743FDFA1D6 + DDDA07BB451B5BD6A8D37100A2D744233D370B0ECBE432A2CB45CEDFEEA09FC6 + E29EBB725A7FA1A76731C0C6F40CBC90574C1F155B00C2FE65C36DDAC97F71A5 + BDAD93D65FC40B90B635196BE223163DFFBE52EABFF0BCA91446486FAB1B4A8F + 4F34F102ECD85381E884C4C0D34B96E8F3F2FFB9D40185445AF45683A28B0BD0 + 24BC4F434CC0E3359BC1614A78BFF1818103F024ED8903FC0F7E04EDDFF4EA4A + 7E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Display preferences window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007A84944415478DAC557095455 + E516DEE7DC893B3104C6141743080DD78AC5E3112126E6D0C31E8812468FF482 + D5D3952F9F78D17A4DDA642990E0EA65EF65020EB584045333B39C000B0C824A + 251C4040042F2077E05EEE7CDAFF8F176F8A48AD569DB5CE3AF3FEBE7FEF6F0F + 87E1380EFECC8D21041886F9551FCD7F624514C7E71DC5AFDCAFDDD280CD3EA3 + 7C47C177BFC60EC5FE4D0494AABCD7FFF38CEADEF01070E0F7758D4DB0BE706B + 7E79497ECE1F432053F5CD87856B63ED0E8E5881018311B25FCAABAE28C99FFA + BB1088484B13DE2355FC1FEF0638C0BE7A4F7141A3F3D9BC85CB27B37C61FDAE + 0FD60B7BFBB5E07038402276832757AC35DBCC5CD4A73BF3CFDC10AA0D0872B1 + D9D8F1CCE9B232CB6D0910F070A9E293479366264D89898475851F3A7A7AFAF3 + F0EDEF3896797562E8F8F0B98909705F4438F42101E205B9440C47AA4FC2E1CA + 5AB8A2EE3B85EFBEC131102D15BB65CF4888E3359D6D81F32D6DFB9A0DED8FBA + 921891C0BC4C55715AD24CE56329B3C164B182482880FD87AAA0B5BD13B2D293 + 412A1583C96401C3A009CC161B38EC0E943200CBB2341CE75ADA61EFC163E0E5 + E90E33A7C5815024049BCD0615FBBF8296D6F622D4C9E2D1092855559BD6AD8E + BFC3CB03B47A0308057CF0904BE93B7AC32098CC16B0DBED74E504DCEE18DA9D + E7C49E8D9C5FBB262122E7A79ACEC2A1C3D5954860DAA804921766472B027DBF + 2D787315F46B06C08AEC5DB79EAB5AF8BEA9152E5E525342803AF4904B401138 + 0E42147E806EBF09DC601C84928F76DB4D86C118D754BDA508310C054F65CCFB + F7AC8458E84540B2116387BFFE1E9ACE7740E4A41008BEEB4E9061383804D00E + 18A1BBA71F3AAFF441A0AF0F04058C43E3D7BDF0C5E14A686ABE905751F2CEAA + 3165418A327BC1B4B8E85DCF3E950EEA5E0D052FFDAC1A84A88759532281C763 + 7FE1F6A1D57260B1DAE062E715E0312CF88DF31AF6C2AEF203D0AD563FB6A764 + 63E9980860A13957F4EE6BA1C4E8A0C90C87AA1A60C068823909D1D420C332C0 + A2F26CA80533825A7177757B4F9F0EC9F251C07CB4CD42D7153594561C385351 + 9C1F715B0229992B2227878735ACC95902BDFD3A34A6818FF7554266EA4CBA72 + 3E9F071A8D0E957E1C7E3ADF428DDCADB80BA6C6FD153C3DE494880D49583143 + 042860F20D0F33E483925D70B54F1FE15A278609CC5DB4329ACFB2691CC3DDCF + 32EC03AB962985111327D02C207117632A454D0EA52BD7E3BDDC77B7DA068DE6 + 172D9C6327312464D82CB144F4CAE3A94902B95C46BDC063799400B14F489CA8 + A987EADA7A335ED7301C538B24CB3EDDF64E1D25303F2B47BB76F5527745802F + C86412CC5B14966E80BAB7F893AFE06F0F46E1EA6420E4F3617BE97E68F8F1CC + 2A1454DE0DE5F985097707BF3967F634EA7681800752891B98CDD6612F907AD0 + D5DD0397BBD570E8E809CDEEA23C2F4A20352B87C30BB8AAD163DAD9E98BCE3C + DFBCF37350A63E042C8689B8FFA5759B406FD5FB1F287EAFDB954072FABF0224 + EEB2CEA58B338642C5E381B7971C749821047C88046FE888FB736BF301319961 + 02655B7369DE5B2C16B0DAAF2B7C5BC5115890184FAB1D2E0D5EDFF01EE86DB7 + 26B0ECE985149090F5C74C203ABA119C3CCF7925F73A011282E7972F76F7F7F5 + 064F77775A7C747A2358F078F0583DDC1F790F88C5229A6A24A59ACFB7DE1C02 + A56A75E884E0F5298FCCA2206EA81B5F1F4F50A3889DE0441B1D9DDDD0D9D50D + FBBE38AE2B2FCAF3B8E601552C16B434069838ACE951FF489D23FC4B64041831 + F54E9F6BA3C602FD7CA8C27BAEF643F1CEDD568BD5FABCDD6CA722E4897819F8 + CEDB4F2C4811F8787B51306F4F39884402F4AA815E1FA9AAC1665563E61C8E3A + 84FC0671CB701127474CC3207FFF06D5B24CECF38334FF9B2F74C2A4B020AA68 + B28ADEBE7EA8FCBA0EDA3A3AE937E31581F0E0941818770D5C80620D0DF6832E + B586D60A72EFED822DD0DBA31D390D6F2A4499AA0BCB976484787B79D1C67219 + 4B2C89FF1D9809AE0587A8DD1953677C89F882FC7DA84D759F96DE6BBFD405FF + DDF2D14FE5C5F993C65409B123668C5704EC58949E320CA8C1B4A48585656F09 + 4E561E14E0032281002E75F7618B66E8F3C2FF6D87B64B97C75E8AE72957E6DE + 377962CEDF1F9EFE8BAE46E667525EC9204D0449363E9FC5580BC1135BB61F8A + 6EC068A61DD3094E88ED28DB07F50D6736602B7EEEB604C818259649EA96663D + CE9061C209EE2422E00B402E13831C3BA10433830C2C048CD40FADCE408FAE9E + E1E34EC4FC5AEE66BBD63010B5775BE10FA31220034972E2F4F87B2786DD043E + 92DB472A32AEE043E73CA8A9FB018A3EDE7304753063740238928585042BE7CE + 99415D4D8689E3276A69698E7F201AE7808051C1DB7074FBECCB4AF0BBD31BD2 + 9267A3B7A4040A36179542C3A9E612EC8899A312700EA521E31549A1210A043F + C999CCE68D5823C864BC0647B5091193C22001D3CE15FC68552D34FED884DDB3 + FF1CCA630D035CAC4C2A79367D7E2253DF781A1A4F358F6D287521B105890763 + D752EDDDBEB1CEB54EF0587ECD0B2B9788DC84A2A1E10473FDE5B736991D9C3D + D675844F59941D83DD351727E4D6B386F67F8E692C1FCB467E4CB2325263C3D0 + 438440CBC50E78BFA8F4F7FB31B92D01FC354B9C355595101F437570ECC449D8 + 7FF0F81FF76B465CCBB0EC97CE9F53D4AA8EB1D9A7FFE69FD33F73FB19F804B3 + FD5068AB0A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select folder to open in remote panel' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003354944415478DAED96594854 + 6114C7FF17341D51C34825704148344C24CD11CD3453A4C51933B1A06230B290 + 82C2E8491D1AC88208AAC71EB2C4A4A74453F3A165C6D42C71815CC61A1D6B96 + 5CD2715C4767B9335D259771EEDC5952ECC1F370F9EE77CE3DE777FEDFF7DD7B + 0993C984AD34621B601BE0BF00200802CF0570DFED12F481C249B012DBBC6090 + A79E1140B71185971B5F01A829097C109ECCBB159A7083F681FE4F8FF0ADB1E2 + 1EB75851B4E100AFEF04C6B979787C66E7E412AEEEAC45F7DFA8950BF40B1AB4 + BE2A27C9D939364730D4B9A100B57783BA23524FECF70D095D76AF0D5D198D0D + 4AD02B7CEB6CCD666EB1FCB0158060D391BC6B3445E941082BF34C63D1D35250 + 00040340BED3C9576F19004ACB980152F22E3B9DDCD678B12961E90B1B0AE4F2 + 96267A84228CCB15D85423D0C129941D3403483A970D52AF437B7D13D2AFBFDF + BCE22603EAEEC76B330A7FBA9B0124661FC7D4980A6A951B228FDDC4FC94C869 + C9997C33BF87D15153DDCE2992C79A01247092313CA88457C051EC098B8156D3 + 05FB4E816380BFC462F4B7B43CCB28925F3203884B6743DA2D45586A013CBC49 + 18744AEB091DDA98E6F77D1F9B3022915EE4F0E5656600B1C991E869932081F7 + 10304A6024A7ECEAD2520D6698B6EA7A4CAB2662B945F2763380E8B8BDE8EA94 + 21EDEA13E8E71AA963423ABCBEB4716BD432198D6828AF24C77532CFDCDBA605 + 3380B0707FA8349E88C9CC875ED36135897D2AD0C7CDAA27D15A251453EF8308 + 8BF7406080175CFCA310CA4E04A91D706A7D6DC58D4895E86DE87CC9E52BCE5B + 00F8EC7445703C17BE413E301AC69C2E46306CD4EFAD6228C4B2024A81C71600 + AC1D04A24FF3C0F29CA336A1C66A927F51A3FD4D1B54A3EA942CBEB2C10280FA + 27415ADE15809461F5378DA918B39FEEA326AC68826E5EED9325989CB400F0DE + E58DA844360CF343368ADAEA9C7EDEA027D1261A9053EB1FBCE4590F10121583 + 7D4919D451D13A50D83E35164D3DF4035FAA2AEBA8F5E7D002841F08C22E5FD6 + BAF36F4D52FB0B2FDB887206D2BE317E66B1A28416E050CE5978FB05382EAF89 + C1B766FCF55D2D9412E9C9537C65BD254049F028D5A21F36D7B4D38659BF0B82 + 89690B80ADB42D07F803A03A4BDF0C925DC30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select drive to open in local panel' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000016C4944415478DA63FCFFFF3F + C34002C651078C3A60D401A30E30B5F7BE02A4B507C8FEAB2007FCEF6C6FA3BB + CD3F7FFD66A8ABAF0787C0FF86FA06864F5FBED1D5017C3C5C0C0D8D0D1007D4 + D7D5337CF8F4856696AD373141E1079E39C320C0C7C3D0D8D40871406D4D2DC3 + BB0F9F69E680CD16E6287CDF132719840478199A5B9A210EA8AEAE6178FDEE23 + CD1C800D880AF133B4B6B6401C505959CDF0F2CD7BBA3A405C4490A1BDBD15E2 + 808A8A2A8667AFDED1D5015262420C1D1D6D1007949555303C79F186AE0E9091 + 1061E8EAEA8038A0A4B482E1D1D3577475809CB418434F37D40145C5650CABD7 + 6D62303135633873FA145D6845590986BEDE2E88030A8B4A19D6ACDFCC606064 + C270E1DC19BAD02AF2920CFD7DDD1007E4179430ACDBB8854147CF90E1CAA5F3 + 74A1D514A519264EE881382037BF9861C3A6AD0C1A5A7A0C37AE5DA20BADA122 + CB3079622FC8015E378095A23A5D532002DC1EF8F6C0A803461D30EA80817600 + 0098993ECFD4044B1D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files by name' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E04944415478DAC5977B4C5B + 551CC77FE7B66AC7431EB2F1864279334827823CCA06EA12133368AB6874C540 + 62D8E8FE9BF115A346FF30D144FF31167CECC988D18D96478C46270357DA0841 + EB0AE53568616C809B3C641BB4D01E7FC5F5CAA36B6F678227B9B9E77B7EBF9E + DFE79EDFEF9C7B4B28A5F07F36B2198010B276CF97D73CCCA3FCA34040024023 + 099025A074081D4E69D52A95B789E32B35177126894B6314ED7883AC98D577E2 + BA052890D5EE6308FC80416D686EC1E1299C2C1A6164D81738005ED3A9551F7A + 0210566AA87F6008AB6F2DCE81A54146380148E4CA5E1C15E3958F817A5CB642 + B9329701E8C65F9BB49ABA4C6F00814161AC5E5CB8C11DA050565B8D81FC30C8 + A79B272E922917D06519D310EE0D2028F45F9785D919EE00AE969959717F4052 + 68128F816420BC5402340FD3528EA6592E00216151AC9EBB71CD971538BC8B10 + E67DF43EE8CCF91DD32AFAEAD19E8BFDBFB8003C141ECBEA3F67AE7004282DE5 + 17856618D133ED9F02A41A3BB11BA7676D264BC7C965AC8F3974B37101D81929 + 64F5F5290B378062A9F209E0911FB17B1E83EC5F6F134BAB8203183F27C01F5C + 00C26344AC9E991CE50620911F9163169AB07B0E83546CB4293FC0DBAB78CDA3 + 2D043C342740645C2AABA72686B8013C5276284CC0E78FE29E0FC0D303F7BABD + 9D52F220C3300729D0A7B008E7D16DD7DCD0F507FAFBCFDA3C01442764B0FAAA + D9C4BD088BCA94A5840FC75026AC3903E0D9033FD961F5759E832F45B81A9CA9 + 4AAB517DEF09205694C5EA2BA346DFB761419932C901D48F0F567357EBF145F0 + A13901E253C4AC1E1F36F80EF05F9A1320212D87D5E6C1DEED071065E6B17AB4 + BF7BFB0192B30A583D62D4FB508472A5F320DA8D5BED9E699C00A962F66D0C43 + 06EDF603A4EFD9CBEA81DF7EDE7E80DD39FB58DDD7DB79EF0079075E4AE0DF47 + 1D3AF5B1715F00B2734B587DA9A7C377006AA77B810727F0F45B3BD4D1731CA8 + E3CD2E4D7D231700F1A3A5AC36FC72C177009437F1EA7480E36BA0642743C82B + A82350BFA853D7376C09AAD05CC053927DEC9C82C7585BAFBE9DED63C476CB69 + E9E3DE578042639746A570D9F2A587857C863162F7B676D6140D1D1DAB1B9FBA + 792025439C16141C7AD79559989F85619361D07CBA3CDDFB0A58A948FB6DDDD8 + 7A3B7E9235A08B02EC74BFB6A5EEFC7A5BACA2A92CC03FB0256B4FBEDBF3C419 + C9F8AB1E6EDE5A2C9F6890B77A038871F7CA95486B6B80219F61F788BBCFF3F8 + 4A75BB2839A3342232660BC0F4D4248C8D0C74622D9470A981300C10B905405E + FB027A353A287D59A7A9FB78B33DE6F973D902C10E436E4131E1F178ECB8DD6E + 871EFD45BABCBC249EFCEA994B5E0170BDE230FF419B03E017F3512CC68F1C0E + A8D635AB4EBACB73BC427D3C4E98589D284A61C7CC632330611E3B653923AB5A + 4B07975D605F85647DABEAF2C615507E87B7271DD491A5D3D4F7B90310567C13 + 4176082EE71716FB0B0402B05AADA0EFEA5CA24BD644CBD967A73903A06CC36A + 97BBAA5D52AE3C4079D08C3603A627073CB4B84AF5DB11E151EF66658BA1CFF8 + 3B4C4D5F7D070BEF3D979D0B8010D3B08CD6491C767EF9C4A2E9391C9BB7C14A + 51B7E68B614F00C29213021A133C9A9E9119356832CDD8166612AFB51DBACD09 + 4022537E8E2EC1D40E6F019F7C8230C5187889E2FFC59515DB1BDD6D5F9A8143 + 8B57689EC69BB34EAAC6CFC89AD6DBEE0AB0DDED6F6A2CE0DF7F2DC0F1000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files by extension' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000050C4944415478DAC5967B4CDB + 5514C7CF6D71301EF210856E40415E03062912268FE218718971C9A065D34C41 + A7334C6AFC4BB7451335FA8789C4E83FA64599CED811A39316468CD31186D216 + 64C1218F32C00ECA788EC923BCBA427FD7D384DE95F2E80F4CD84D6E7EF77BCF + F9DDFBF9DD737EF75E4229850759881D8010B2C690212F79C2837ABC8D4D2910 + 1001D0454A89095D2B741A6539F6739B0D1C5954DD84A36738347EA6CEAC96E5 + 30BDF2E1EB0264CA4A0F0A08FC468058D15E856E13E8B117416468F6C299CF19 + 34CAB24D018AB5D4C72F90E9F9D9291850CB082F00A95CD18A6609E1E8015DB5 + AAD5D19F2557A40B005AF06DA34EAB4A7207E01710CCF4ECF45DFE00D9B2D297 + B1DFDB505DAE721D385BA69841770B8621C41D807FD07D9799C971FE008E9294 + 747C976F4C508C5000B14084F1844216BA1E41D3241F80C0E03D4C4FDD1DE10F + 90FEAC22D4D38B7E8C2E2F621EEC5AE95EC64CD25302E9E83DC707E0919070A6 + FF1DBFCD132037D7431A94D885AD380AB40A6B0D70828E99BE096357D7252BE6 + C714DAAC7C001E1545323D313AC00F409A5FFA3408C9556CD6E124879D079514 + 9C0CF01578DB01EEF00108098B667A7CC8B431007E55194294621B938E34234F + 15766BF45A65A1F3A0E8F7093ECE629D4680407700A28878A647077B3606C829 + 7C6316DBBE58E76CF3F7C4026FCF7EFCE77DD1FB539B8DAB170AC8C3B84C2730 + 1C473027A6D1EFB1A99E094F7B483603D81B95C8F470BF91DF0AE8B5AAB32B1B + D1D73899630D97B1FEBAB44CDFF5109063085782239DD46995573603088F4E66 + FAB6A963EBBF6196FC9418E8437EC46635EB2F7F330B5B287600719C8469736F + DBD601FE4FB10344ED4B63BAFF66EBCE0344271D60DAD4D5B2F300B1C9994CF7 + 75346DE12C902B3AB0673FFE6ADB26B303C44BD8E90B3D6D8D3B0F9090FA14D3 + DD37FED87980FD690799EE6CFD7DFB0099471531366AB5B5D49E37839B9B9033 + 404A7A2ED3EDD71BB60E4097210F3C68856343C257868172E7F4DAF24A3E0092 + 270F31DDF6E7B56D00002CE0AC57F11EF00347A84840C819348772C0BD64D094 + AB5D2715176B0DF81E4BFDB4CC3C666B6DAA87FB9313FD803A5FEA1E8042251E + 48458EFE8C82D7233D04820E6C2EE05910EE7A1644165777C7254AF6F907046D + B83233D393D06B6CBBD9FF5D7E825B00B847A3753FAB6EADB2C9146A742F021B + 3DACAB51D539DBC28BAA8EFAFAF8D5A4A466ACBBB7D8E76ABFD10C73F3B3F983 + 6AF965770061EB1DB9D282D21210902F29076FEAAB955FAC0D83A63E3A26F150 + E89EB0350063A34360EA335E33ABE5797C72201801446B00E4A52FE06B951CA5 + 6F19B4AACF5CED61277E4AF1F2DADD969E9943844221EBB7D96C70BDA9915A2C + 8B92A1EF8FB5BB05C0E48BC0F8FBBB4E8037E633E85FC671F08AA15AF9ED7A71 + C6643C1F218E3AF578741CEBBB65EA83C101D305F345F9AB8E70B8CD012B5D8A + 6FD156F4AE5E01C52FF87886A35CB2415BDEB91E40E4F11F43C96EAF7F32B2A4 + 3EB81A60B158A0D9D0384F172D3103979E1B5B03E07A2161490850AB9B34CAA1 + A1C17E21812CD9E97C42841A6CFEA5D728D361931251AC793F3444F461724A2A + 7476FC0DA363C31F60E27DE49C900CC0F94A8671F75B0188C43058D06D08FBAF + A016E395FC79DC1326ADB094EDBA326B5621F782170D0FE84B48480AEB36768D + 2CCDDC891DA93DBDB02E80EB0A48658AAFD02580DAE03D10C2E71823FBA6BE88 + B56E69C9FA0E6EC9FDC0A3888BB48518DDF338C56BE68BB22A67DB2A800759FE + 0320FA1BEEC38C8A270000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files by timestamp' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005314944415478DAC5977B4C53 + 571CC77FB7ADB4054A69A93C1C8F2AE325D015CBAB1BD08A9329C210D87018C8 + C653219B7BB080CC644C973935CB962C598693AD09389D6C4C055DE24C86F818 + 2832102CA0C8E4A1220F0BB5020585EE5C94131CDCDB32657EFF69BFE79CFECE + E7FCCEB9F7FC4A180C06789622480082202807787B7B9B7184E2D50C06C4202B + 073038A19FF1D1A7167D76A3B6EAC94938AAD7749C54ABD5E3D3BF13271DA946 + D183A73D5AE6D9CE92D850EC1F2D9C0640C90A50705350EF76730ED741FA822F + 2CF7F20481351F783C1EE8743A181CD242734B2B345C6A8211FD680F018682DA + AA5115C0A907E2E4C3060B9E00471BD60D4247492C6112802468ADA3199B7114 + 4DB6227E7D34AC548400DBCC0CCCB96C60B198C06432606262121E3C988091D1 + 31181B1F87CAAAB35076A40286B44317C7F486D8BBEE99DD3C6B118EA91B1A30 + 0DC03FF495408260560405FADB6E4E4F01A1C00A047C1E70D88BF098F8940FA1 + 4CF505F6FAB1FB30A8D58166F02E1416A9E0FC858B7DFD2E19B67CA11D1EA3D5 + F41A072057CE661375D1516B6C931313408426B7B4E0CEDA9C7F034CEBDEF028 + 0C2088E21F0F814AED0C02D112DC373870CB1800B9E71635F2A00059CEBBD9B0 + 58C87F6CD5A68ACC46BF460B8AADE7C0C6CE09B7DFE9EDA607F00F8BDC241058 + 177EF3D56E70B0B5012EDA6F2A25A4E542E9F77B28FBC97321C93A018B1DC4B8 + ADBFA7831AC0C7C7C7CC5C24EECCCA48B18F5ABB1A045616B4ABDC90910787F6 + EDA61DE3965A01768EAED8F7DE68A706F0574446F02C2D4F1CF8E15BB0E65B02 + 8BC9A40DFE46E656F8E9BB5DB463DCD38E8183B307F63D5D57A8010214517B15 + A1F2CCFC9C2DC0B3E482312522808346003C10C0734B97637FF37A333540A062 + 9DFA832D59CB2323C2816DC2C1DBB8291F0EECFD9C768C67FA717072F5C5BEBB + BD890E204AFBD927F956F220192C62D1A77F3E002EEE52EC3BAF36D00028A30C + 855FEF014F375748CEDE36D5919DBA014282A473062701A8340D46022CF594E1 + F6EBAD75F419D8F5E936ABE0C015C044B7CED31009E0EA1D887DBBFA02FD19C8 + CB791B9D8155088098FF6C73C80301B8F9CAB16F6BAAA6DB8275FB562942D30B + 3ECA01C6D302404F818714DFBE70A5E10CFD7BC0CA9277E25859F1A343F8E410 + EEE845E4E517867D4BFD69E36FC2DCF7B2EDD747AF792A19704B29071F9902FB + CB7555C6EF02918DB0B0B4B810DD80E64F0CB0ECCDA320095062DF587BCAB4DB + 70953244B6B3208FB64C3326322609200D5A89DB1ACE579A580F7018F5491BE2 + 44EF6C4EA184A0AA07E2779C86BFAE69B097C9C3F1F7BAEA3F660012E73A4A62 + 426601909AAA8818ACE3E1612F890AF2DF47D732C76480F0DC93B048E80E7C6B + 216576B4431AB8DADCD07ABD38C66B4E801999A84067429AF1D64678353262AA + 0EA412591F96FFF63B7C59520977842F83C42F78CEEC917335D6D7A0CA4917D3 + 5512574E09F0504A967F98791A7A220BAC783C0779A00CFCFD24B058244475A2 + 00D57F83D03FA0818BF58D70AEBA16EE8D0C4F55C57D4E991B5DDDBC94F64B1C + 6745BCDD7303DADB9A2B3B4BE2C24D28CB1F6ABEFF0B1C137F917038DC860079 + 28C19C51574C4C4C406DF519835E3F2ABD71F0B5469301FE8B5C920F1739BB2C + 4D5BE6EA8EDBFE6E6F83AE8E7655E7FEB8D4E9ED583000F1EBA5F60497732DF8 + C5100B940DD0EBF550F3E79961C3A8FEF98E9F136E2F380029E7E45F3FB6B773 + D8EE2BF183CB4D97A0E7F6CD0274F0764CF72F388058A9E2189CACDBBCBCBC1D + 5B9AD5B7EE6BFBDC6E556C1AF9DF0048B9241D8E47A18BD014E99DFB63CB66F6 + 3D06F02CF50FCA71A5DF1E11805F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files by type' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004AC4944415478DAC5D77B5054 + 551800F06FC101A24C018B247949609630303B29CC5809CDA468C4406631CAD0 + 389A194D356ABC3572AC190769E8815B538E8D500C42622A0E6605F2D807C8B0 + B03C85855D1EBB2CACEC7BF702BB7B3B17E340B3BBF75EEA0FBFBFF6BBDFD9EF + FCEED973CF9DE59024090F333814E0FAE7C16C15CD84D592B8AF70DAC83430E4 + C05501EA1EBB98A3099AE565292FE2FC9F1BC780A47C39CC13FD342D49D00CD7 + 416B4D09DF62B5EC644284A4D7908FAEF6C1B9C9A00159590A87163067E9A6BD + 2B0F3733A865AD20AC2E62445080D56BD7E1DCA055B300983BE8011EBE003615 + 428810E21C1FACD6E4A44285DA15608DAF3FCE75332A66C0ACA98D16E0E91D85 + 0093CB104512B0DA129C212880CFBA009C6BD40A66006114D002BC1E8B43DF9C + 5D861082A0BAB8E7F582D12DCE007EFE8138BFAF1A63013034D2023413FD20BB + 7B0D8D9BC1D78C331380001C678027D687E07C5A29630658F47F015390A41D74 + CA21D02A06C06EB7C3B0E8AA4B80FF86309CABC6A54C801104F88311801BD86D + 68D3EAA1E962964BC0FAA04D38578E0E3000F286C0ACBFED30D1C94A6FB62674 + 4841E2F9CC78E322E0E9D0E7707162A4971EF05ADE005874BF3B022E3F0EC5EF + EE00BA139B2A35748D41AD68984F58C99D148202048645E2316352090320B707 + CCBA5B0ECD4F55F92D006C76FAD37A744A0F636A23FCC61F5A40DC146A0DC111 + D1B82EBF27A607ECC9E9442BE00450EDBF0098B7D103F42602F4E6B907889641 + E195166D6CE8B35C5C1FE96F670064B73B5F81EA00F8F2483C10F3765AC02A37 + 74DA99661F20A60D90517417C29EDF8AEBD29E567AC0EE2C1102D439EE81AA40 + 2839FA0A98E7E801DE1E6EE850B4634442563D8447C6E1FAA044C000F8A4D9E9 + 0A145C0E82AF325F05E3AC8D162057E9A05132B600A0E2FB1B0AD8148DDFBE30 + 206EA207249EA8478FA1E353905F1102DF7CB80BF4167A0015D43E1D9FD62F60 + 3EF8560C9B635EC2B5BE8E467AC0AEE3B7D041F4A743D3DC5F42A1F4E3DDA035 + 5B1901188224DCF76B610BF7657CADBBFD0E03E0D84DB0181A1C9AE5940741E9 + B124D098D803A8E01EBD01512FECC079575B033DC055A35ACFAFE1FCF164B86F + 9C5F11606B662D446F8BC7B95854EF1AC0E1705C363A7CF60AC93B91026A1680 + C3C57C908C689656212E017F6E172CBDE84892D3222B4BDECE0A70E88B2A9297 + BD17A60DCC80B43377C0D32F1CD6ACF5753946A79D817BBDE2FE914BC99B5901 + 0E9EA92479396FB20234774FC167E57D101513EBB42735575787108C2643F268 + 59EA355680774E5790DFE5BE05537A767BE0A35211E8C827E1A9800D0EB549E5 + 3848077BEBE565A909ACF740466139C9CB4B630D18561AE0BD9236E06EDB0EEE + EEEEF8BACD6683364113491096E8F18ABD5DAC01E9A72E91BCFCFDAC01549CAB + EC06C9E42AD81816B104930EC2A84C7A515E9E7A70F1E76005D89FFF13C92B48 + 07957E8E35406398838CB3CD10CD8D032FAF4780200810F29B4CA485784656B5 + 6F724580B4DC0B24EF640602ACEC1CF8F9B614EA3A0D10191503DD924E504E4E + 7C8A36DEE9C53A6BC0DBD93FFCA77FAF769203E2291FD81811097DBD3D8A79DD + 54B8E2FA11F38A01FF27820FD4BC815AFF88A638242F4FF97579ED5F8087197F + 0387B660EE0E53B4F50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort files by size' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004A44944415478DAC5D57D5014 + 751807F0E7208B6A1C452DA4341002B38439E6260DC75270F2A5C9A123CC18BC + 30CB78551ACC1704B31C6B329317E538A497318FC6C2E42D281A6704E1E020C2 + 8E77818EB73B388EB7837B6379397EED9EF1A3BADBBDE5FAC367E666EED967E7 + B79FFDDDDE77390821B89FC5A10047B2CA58283855C40CDA911113A067B3B09B + 20AF9203B069AE272F20E911F35FC4FDDF378E0117DEDB0A749B411DAE685242 + A154CE1AE12EC8438F2E76C6BD41A7816E319FC3089836D16FC4A8D6086D7D63 + 5050F5E71D3DA01D591101C3B6008B97AEC0BD6E6C981E109F790B2547060231 + 3D4BBBA0D32207506B0CD0A6D4407E557B734AE4B6F5B6004B96B9E07E7C544D + 0F8813DE44A9312F8371921ED0A31E87CA963E989C9A810EC5105C8CDDCE61B8 + BE19E0BCE209DC6B86FBE901872E96A0B4433B414F98187FD759F2DC11ED04A4 + E654427ADC2E9B80E52EAB713FA256D003A2538AD0A5B857413B31036C2A31AB + 0444F1BB6D021E7375C7FD90AA9B1E10F945014A8F0F8231233B405266315C3E + FA9A4D80CB2A4FDCAB95727AC0C1CF6E20E1D1601835B0039CCA2884AF12426C + 025C9F5A8B7B556F1B3DE09D4F7290F0D81E18314C5B2C949C53C50A45968498 + 815D731941019E5CF32C1EF675B5D003DE3E730D094FEC8561BD2520ED472930 + 85947931F253D6A080E29A4E1C541460B5A70F3E47216FA407BC755A8C324E86 + C190CE12909E7B0F609A654EEBDE412D2886F5545099113F578FE9DCBCB978DE + D32EA307EC4BBA82848902AB00517E35D84A49AAB40602B4C6298CC8956836AD + 798687E75D77EBE801A1095F23E1A97018D45A02B20AAA213922803125A97AC0 + 814C3BC3E43DC4900EC2CFFF0E9ECF6DC07379F36FF480378F7F497B7B2BDD3D + 20356A1B18A798018F3CE80033A6598C083C560A5E3EFE78DED128A5077038F4 + FFA8C3E9BFA2B498EDA09F644E492AAACB1B15660055978BFA612D77339EB7C9 + 24F60162D37E41970EEF245392194015F59C2A87B4664C6CBA0CD6F9BD8467AD + 7F94DB07884E2946C2F75F619D92660829E14517C37ADE167CACA9EEB67D80A8 + 0B854818BF1B342C5372AE785145E0FBFC56DC37D496D90788389F8F328E04C1 + 88959062AA0D31C5C0DD18807B594DA97D8083E77291E803BED594B4C0A648A1 + 5E3E3ABF0BFE81F87B9DF4D6FC8908957789F95B5801DEFDF43A121D0FB11A52 + FFADD0B3B7E1A1E55EB064E932DA73C6C746A1BD4576B7EB6AD03A568003677F + 40A2137B5801244D83F071762BF8FABD60754D6AD31BEE48416FD005F58A830B + 5901F6932FAACC84BD5653D25AC5096B601C1E8795AEAB2C66032A25C83B5A4A + 7BC4C181AC9F81F08FB291E864286B40A74A0791A9B5C0DBB8191C1D1DF17193 + C904B5D20A4410135CE5B59006D600C187579128318C3580AACFBF6F8466F522 + F0F0F49E87C93B40D1DDF96D77367FBFF9E7600B084BBC82444902506BA75803 + 34BA29083F27012ECF1F9C9C1E068220A0BAAAC2802688A7BBAFBF31B02000F5 + A614916F4AF5027680AAEF6ECAA1A45E073EBE7ED0D4580FAA81BED3E4837766 + 6ECE1AC0F4A664AA59C401D9A0337878FB406B4B73FFF4F8A057FF4F11C60503 + FE4FB9EDCB7B9D5CFB1BF21A077AB2F937FE39FB17E07ED65FFA1C25EE4F62E7 + 9E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort remote files by permissions' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005744944415478DAC5977B4C53 + 571CC77F7D41A15C29B50845A008022252CB0A284604DD922D92CC1575C91249 + E6FED95F4BB6CC6C3E16DD88E2CCE6DCD4B8B9191F43B7E9141085C926502852 + 692996D287C078295050DE052932B8BBF700473BE9852CA2BFE4E69EEFEF9C7B + 7E9F7BCEEF9C7B2E8B24497899C6A201582CD673EF589A9E738BEA75CDB4A65E + B3BC354B9984F5D48BCF1B40487A0E29207CB01EB6F7414B9612077A21008450 + 8CB5BDBFFBC503788BFCB01EE8ED9A3B4074E2EB224F1EE723AAE22D4A4AA7DC + ADD453B98FC6C68F983585BD7301F0110760DDD7DD313780B8A48D9BD96CF699 + C5FE0B0989AF08041E7CE41F1E7180ED612FB477F6D8272626B657A90BAECC06 + B0D02F08EB9EAEFBB303289253B7F279DC8BF2A830D6E8E3C770CFF61006871E + A1BA05024F080EF00577373730581BC9D1D1B1AD4C103480AF2404EB87B61666 + 00852245CCF1F26A8A9745100F7AFBA1A5ADB36E1C26760DFF63BF4937147089 + D738C03E1812E81FB94824049DB1DE3E3E3414AAD7ABBA5D01F8058661DDD5D6 + C80C1097947A205022DE2DF6590035D6A6FAB1C1E1550683AAFFE94EE5F21421 + D75BA0932F0B5DDADD37086DB6EECC2A75FE1E570092E048AC6DF7EA660158B7 + B1264116296B68ED809EC181B4EAD21B393375FC4AF21BCA850BBCB3C3A501A0 + 35D619ABCA0A56BA0258BC6439D6EDCD9659009253EDEB13645EEA2A13D81FD8 + 09B359353453C7D1D1295EC422C29E14B7024AB4C6A1AAD27CC2154050580CD6 + F71B6B9901E29353C95713E550A43180AE349F7163984B5B1A401A21C7BAB5DE + E01A60F3F61D1AAABC1AFE9FDDCE3E7B3871268025CB145837DFD5330290177F + 3A447F3080C7E5C00F170A80C3660387337D71D09DCB9E2C97694D4F86B6B91E + 2800D64C0061D10958379AB5CC00BF9C3C881CEE6E3C3875B1100170A7026308 + E463435145CD9C00C2639E0C4C43AD8619E0FCF70780F6797AB8C3B92B377140 + F4E64F8D02ED2B2CAB9E1340A47C2DD6758672668073C7F75353400221F0800B + 57559341A960169391BAB32056113705C081EBC55A60533EBABEA9C1EA12202A + 761DD6D63B65CC00A78F66D06EF0260470295F8D82594C35F0E389A3A8E1071F + 7E0C717109C89F5FACA3002647E7AED9E812608522196B93BE9419E0D4B79F23 + A74848404E61051A7273AD014E1C3B821AEEDCB5076256C6A2A037547A0C5073 + 47EF1240169F82B551A762063879782F9A025F91375C2FD2E2E4DBB7E753E0F1 + 7870F4D87118718C22303A07E869A1EBB595952E01E4ABD6636DA82C610638F1 + D567C8E12716C28D52FD54F271E0CBCC0CE0BBBBC1FE0399E0181D43B9F157F9 + 1D9CA06A753906A0CE816AAA80334F91B80103E835C54FE848B2AC394B99EC04 + 70FCD06EB40A02FC445074CB8097DEB5BC5C10129EA04CDB02A38FC7F0324453 + 405D45C5251820243DD71AB15CBECC5B28025736D0DF0BF516C3DDE69F374539 + 017C97B9136D4441123194559A9CD6BF97271FC809124D11AD55B78D38070AFE + F81303046DBBF2A69780B82A8B5D3DE3318FEEDF58AD81A161FBA67B5969794E + 00DFECFF0435922E5E0415D556BCE9709EDA8CB8ECC972E93420D526272FDF29 + 07A4E9D9C561E1CBD7FB4B029F01E8B4B5416383A5A4352B6DC33339F075C60E + 3405A1C1FEF46103AD77EE7FB6E2E9792FD759B0FEED72AE1340E03B97657CBE + 87213E3189453F376DE3E3E3A0D3A849876344DEF6EB16E3BC7E8CA4DBB24F07 + 87846E0F0D8BC0BEA6C606B8DFD274AEE5BCF2DD6756C1F33E96876CBDE4CFF2 + E0FFBD7ACD5A01351AE07038E076857A981C712C6DF9FDEDCE7907A02D383D7B + AFBF9FE48B18592C986A6BC0D6D9BE8F4ABC8CE9FAF9FF314939C32783840D51 + 51D181568BB9636CE04178C7B5F71FBD3000DAA4DB7236537D9FA662BCD77A5E + E9748477027899F62F924024EE4557D92C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle ascending-descending ordering' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005694944415478DABD977D4C53 + 5714C0CF7D2DA5858E013A05058BE3533E5C1D61F2513F60333133115A758B0B + 6CA2464797FDB539B73FB6C565FFCC2CDB3F4B61D3E8B6424CE66841B3CC4C27 + 8CB5D541D81AA0887C0C70804626A0035BFAF1EECE9BF4596B1FB4CE709397DE + 73CFE93DBF77EEB9EF9E4B28A5E0DB0821F0B89AA2DCB803A73B8E2EF60FD7AA + EB7D755EBF4408205F73E0593115BF8D5D151088C7BFD8292503A83E6632E86A + 709C9DCF79D2E693529A18DD9799999DD06DEB1A232353C943CD958EA0000AD4 + 559B18023F11204ED423391947AC9508A24613297A3E6C31E88ECE07B0AAC2F0 + 41FCF215479E51AE838E0E2B8C5D1FFDF09A5EF35150002A8DB61D4795F8E4A3 + A336AFAE50A3CD63005AF1DFDD26637596E0DBEFFA2E8EC8A4FD05451B226532 + 19381C0EB0985A66A8DD913274FAA51B0B0214A9AB5EC3F1084B434DB5FFE445 + 6AED6D3471E0322C175CFB0AE37185E2E97DC92969FCD8407F2F0C0F0D9C1CAE + D5EC0D2A07B89695B54B224F894D1131900A44944E2814A27A1BAA2684001276 + 7FBF562A9359D7176C2462B1881FF7783C70D9D2421D76BB72E4D4CE8E7901F2 + 5ED4C649A4F0317256601E48E6546EA060A6A846C46921004585E1626A5A5671 + DC8A84877437C646A0AFD7D634ACD794080314178B55B19936ECA651A0F5F834 + 02CB74DEEE1BEFB6D94E3B313F2651E70C0490585EBF5D1E19D5A8CCCD0FB89D + 395FD6F6CB303D73A71413F24C40800D65DA174044CE63F7023AD9E2AB5396ED + 899633111CC0CD400049150D5732B29419D1314B84D203A6266F418FCDDA33F8 + 6DE99A80002ACD1B1A84AFC76183D9A8DBF1A04EFB09FEBCC3CD8300310192CF + 82EF5DE095F30A9FE7756D969F7D2241CC43FA52554080C2ADFB639988F041DC + F3729CEC538F87BD28624814C674372EC736CC8929345B3679753C9C5B12A137 + 4DAA30D2DC82125E6EBF741186F46A721F62BE6DB85D5B0C627A0C9D25CF0DBB + D1EEBCDB03EF8A19B213E10EE04C7B4C46DDB9F90094EB8B79D9FA5B53F0007C + 3434FB1440C39E201EE7B0F9CC897F2084C601ACCDDBCCCB1D6DCDA103FC9FC6 + 0164E76EE2E5AEF65F161F60CDBA8DBC7CE58F96C5074857AA78F9AAD5144212 + 6AB49D68998D5BED91693880D41C7E47425FE7A5C50748CE7A8E97076CAD8B0F + B03A239797077BDA1F1DA060BB36C5439D9ED6B3C707430150A4297979B8D71A + 3A00754389EF07092D4781B287CDC69ABA600012937378F9AF81CED001509CC6 + A709ABBF532CA1F10C2187508E63817DD562A8D12F04B07275262F8F0E763F42 + 0428D4E18154EED5E597BD9E2466984EECDEC5B320D1FF2CC0C3E857C215B173 + 2D7E553AAFBB7EEDEA7D434A5B06F5EA4D0B476096269B7EA8FED3578F25991E + 4DCAC143B7981AAB2F3CF8D60D57A297C667844B6582919975D861EAEFEBC2C7 + B10F4042A023575556750018F22565E14D7383EE0B5F1D579048C2C21B639EE2 + 0AE8C06D627C149CAE59E182C407602902C43F04A0A97A05ADEA584ADFB218AB + 3FF3D77325993C6A49B15416F99073877D06A6EFDC5AA0249B03C0945F85EBFF + A4FF2458311F429BA32C0B959606DDD7FE7AAE28158749ACD1B1CB88EF679DF3 + 33357193BA5DCE858B526F0E38A92BBDD578ACF7C108687FC49FAD2C65732CC6 + 9AAE406156941B4E4865F24A6984FCFEDBDF9D8659FBCC3743B5EA3D5EA00501 + 503C6B9AE8D64073B39BD315AA0F9612223260F777B3419727B0CCFF5D4CA854 + D22F8F8A89641806580CD7F49DC919E270067931B9079084CBE040ED080E9F43 + 598125F9CB7837987082ABC83F32FE8DBB9A8589C38F70B9C0ADBDCB3D1BC2D5 + 4CADFD0A4DA2A907DE07117C8E83DC9EB5E373C1E572BE17CC27D97B399548A4 + 09CE59C798EBF6CDD4B1B307EF0605F0B8DABDEB3939813EF60A5DCFFF051124 + 2AEE9A29EC3C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort remote files by owner' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006924944415478DAC597796C54 + 551487CFCC7B339DCE3ED396AEB4534A2985AE9652CA229B0B912A29A8914081 + 124C258A3112B788825B8C897F204AD812168B21D128442CC428B6B2B5500A85 + 765A4A29DDA753BBCCF2667D6F16CF9D4C1F60071C4C1A6F72F2DE6FE6DE73BE + 7BCFB9F7E609FC7E3FFC9F4D30518E53CA8E5F40E773C7344EF37C7765E9025E + 07273E6100BAB2E37E9942C36B3B6382AECA523EDE23032CC88718C720D81B0C + E0081740A18EE635631E7E34009D0E2453A264AF51427A0D2D14E6088494D0E3 + F302CB7123ACC7738A75BB3EBBD2066D0F03506963796D191D0C1FA07026C469 + E5DA1A8D5299A154C821422C02AFD7072ED60D8CDD01569B0D1887DDC971DEE7 + EA5B3DBF3F0840139DC06BD3B0217C80C7F3A517D40AE5DC188D06A2355A9046 + 4AC0EBF30163B383C96A81119319CC3606380F37CAF8B974BD1E46430144C54E + E6F5C8606F78004559F4531251C4AF4A991CA2342AD02A55208988005CF60080 + 05039BAD56B0399DE0F17AD193EF833ABDE7D3500031F13A5E0F0D74850B203A + 18418BCA23312831A94402621A5380F977B22C385CAE80612D808F38F183A14E + CF268602884D4AE3F5605F47D8005744145D8006229A021145415A8A0EA2B51A + E81D1880AEBE5E70739EC08A045D99EA9A396D2880F8E40C5E0FF4B485073027 + 4B64140AA9D8D5CF96C0DC59B3B0F058C89C3A8DE41B2CB8F403834668BBD301 + 6EB70B7E3B7711864CA3376A9BD8DC500089A93378DDDFD9121E4071B6B8395A + AD99B9B5621328154A50CA95588491B80BBCB803B0FA19062C8C2500F3DD8993 + 3038325255DBE42E090530392D9BD7BD1D4D61A660BAA8204AAB3EBBA5BC4CAA + 56A931B814C46231F87017B830F736871D8B91012B4300AA5CC366D337979AD9 + B74201A44CCBE375F7ADC6F0B7E1FAE5E9871616176D484E4A0AEC001AEB8114 + 1CCBB1E0C4EAB723C488C904BF9CA9A9B9333AF8346E43361440EAF4025E77DE + 6C081F60CB9A22658C4AD19A3D23232102674F612112000F56BECBED4673414F + FFE0F090D598BEF370A339940F0290367336AF3BF4971FED287E7BE3BC8C495A + 4D43627CAC4C2814060678B0F2C9D364B63AFB87FF2AFCE2C005FD83C61380F4 + EC625EB737D53E1AC04E992CD6314FF72E6426BDA151A9402CA20300662B03DE + EB3D7B94F5B777BEC6B86F3D0C20236F3EAFDB1ACFFF3BC03EA9F4313F45AD16 + 086015CA542E6D123897668D732EAB6E01AADD48BC0CA19B13023F1CABB0D9AA + FF099099FF38AF5BAF9D7D30C00E0071BC42BE0B04828A08D46A5CF2F8F59B81 + 5AB716AE9EFE721CC0BCD27781AB3E07FAF7B7828BA426E011AA3C0CF3D2AB00 + B63180AC8285FC98E6863F1F0CB04F21DF2BC4E08918588B46E36FA284C9A039 + 7319460CCD6068AD01B7DD0412990692B31641C2D402D02F5F0AA66B0D81F277 + E116750418FC672AACB627C600720A17F10037EA6B1E0AE08C130A253158ED22 + 121C7340E153F9DE76906F7E1D84D8EB5E339F3E09CDE5EB8045271CF6234F37 + 9A8BBC7BBC895B1C0E0301C82B5ACC03345EAA0E0DB04FA188468CA1540CAEC0 + C0E220000111E34938E9F235A0356AA082C1057829D5171582A5B31338723660 + 3F2E08B07FFE36E88B9AC6072D285EC2BF37D4FE7137877EFFD9CECAD2407E04 + 5F4BA509629AEA9F120418C2E524B3279A802836BD0C319F7FCE8F351ED80F37 + DF792730F351EC4B82937EE4B973C9171055F40CA8D4E3EE26BE59CCA370ABA5 + F166E7B72B32EF07C0DCCBD15A83B7DC1C910884E4054152EB2E813835157C78 + 0FD4E7E582134F4132F37EBC1F08888A2C3DC9735C3E542DDE0639F973B09EC7 + EF70B2E837AED682CDCEACE8A95CF9F37D00BA20C04D0420430B82006490A2A4 + 0474878F40CF473BA07BD7AEC06C496043104019042035F0D5B2DDD7E3B266E7 + C6C5278D03300EF441477B4B7577E5CA257C0D8C012463703CF2A03DB802B934 + CD1F123E92924387A1ED950A70E385E409E6DD485280EF72A2D1DC6897A62EAF + 389B5BB6B7B07881801CE1638DDCA6F5B5E7FC2E9733AFEFD8F3377880DD389E + 562A86B16B04BF2D4234B2A464D0D877D4BDDF53F7FCE6A722A5399F3CB9E7CD + 64DD94F22969770BF24E473BF476DD39D275B474C3B86DB85B2A2D94C6442DE3 + 6C36D6C7B25EF80F8DA6C5424A266B2EEFEB3BA57BE1FB3841A4E4F69CB9F365 + 124964E01AAFBB78CEEE77BAA676FDF0A2711CC044B4E4B29F3E8C8B8DFF283B + 271F9A9BAEC380B17F3B16DEC7FCAA4DF8A7D9A24312FF64757B66E6CCA4D616 + BD81B3FC956E3859C17F554D380069296B8FAFC2DA3988C136761F2DFDF1DEFF + 7880FFFBF3FC6FA5B669EE9CDB808B0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Sort remote files by group' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000075B4944415478DAC5977B50D4 + D715C7BFBFFDED937DEFB2C82AF210792E102C45D049111F4D256362B1B11D9D + 3CAAEDA44EFFE838D3A4EDB493C4244CFCA7B6334DA66D6C122792B7898CB689 + 66A846F101880222208A2C0BF24661977D3F7F3DBF157FC128BB4C3BD39C993B + ECB98F733FBF73CF39F7C2701C876F53181E8061987B3ACB9643A3D5EB9E57C8 + A55BC5624966281C117BFDDE61AFD777CC15F4D5B45DC5403CC3694FD59D23AB + ABEFEAF49967076AABBF27E8B31F7E1F40493612934D891713F5C634BD560356 + C4C217F0C3E17461DA6187DDE99AF286BD65AD5DB8110B20FDA93A4EA9D60BBA + DB390D5B6D3513176075A1EC9041A379C2A8D3C3A0D5422291C0EDF5D0E63398 + 9AB163C6ED41241C3ED1D415DC100F40AD4B1474A7FD567C008B85F614C96F69 + 554A46AB5643A550900744F0FA7D9871B9697337BC81407431C7052CCD5DE88E + 05A0352C1274C7D4787C80B202F1232286FD522696402A11439DA0842527071E + F240F78D1B70793C088442D1B9612E52D5D2153A1E0B409FB858D0A76F8DC407 + 5869916E1731787FF3F7D763636525E4320516279BA3673F797B12BD562BEC0E + 070ED61D412414C8B9D083EBB1008C8B960AFAEDF19B0B00C845B64CA16CD9BD + E3194DEA921468E818A412297C74040EE70C6D6EC7D0E828DEFAF8538CB9020A + 9B0DBE58002673BAA04F8EDA1616848F5798FFFCE8DA8ADD3999994850248065 + 59044341B8C9FD4ED70CACB6411C3D71EAE8E936D7E67841B8282553D0C787FA + 1606409E1757E6AEBBFC50415EBE5C26838882301C0EC3EBF3E15CEB351CAE6F + B30F4F38FD914844148970DDB4FE5D5A76E04100E6D41C411F1DBCB630005E7E + BDAD32D1BC44758DEA8141C4DE01A8ABBF8CE3E7AF432693CF4285E0F3F9110C + 06F8F13FF1CBBE09B024235FD087FBBB1706F01795CA24234738CA329E0D5996 + 6C502AE4181E77605F6D036D2E835CAE80584CC712E401BC0804A200BCB5626A + 1D73019666160A766FF65D890DF077A5723D23625E60810A636E0123AA5A8341 + 6E303AE9837F5D40F3E57E48A5522A4CD2E8FC10A523BF7988E26356FE46ED97 + 7301D2B28B058081EBEDF303BCA956FF44C2E04333CB3246322ECBA0CBE0F306 + F436BD8FE99B5D78EEB583181A9BC277F252B076651640B97AB6B58FA0EEB912 + F8A264990B90915B220CF6F75C9A1F60BF56DD962E628BB574B6520290D080AE + E68F48787A0755422063B11EA92639F6FD6E2BA5A5045C24028F2F80B73F3B87 + 1B0393884442E8EC9BECA5A0CC9E0B9069592900F4755D8801A0518FE788C549 + 09B4390F403100B95E8FE4E656B03A0D9564197EB5AD1C5BABCAA1522580B7E2 + F2F8609FA10BCAEEC4A1E32D387CF2EA7D005985AB0480DE2B8DB13CA099C861 + 5993877E8FD1D79588C550903774BB76C1F46A0D8C4603766C2AC0D64757C1A0 + A33B42A9A0EAE8C2949D2E280278E7D333E123A77A7AC85EC15C809CE2870580 + 6BED67E707F807012C17894C6EEA18990590F39941EECE3ADF8894D25254E51A + F0F4CE8DD09007E4322942949A4EB797409CA879F358C7C5CE613A2C14CE05C8 + 5B5121005C6D6B880D9041001EEAE03D5044D58F3F0A7E8A76D326947D72080C + E5FB4BCF3D86CC743364524974B13F10444B5B2FF6EC3FC12FB57E13A0A0648D + 00D079E9748C23D0699B588E2B8B76E07EA9F70790484762CE4F86F60745D06B + D594084CD4FD431F35DBF65A473FA16943D45E9F0B50545A29D8E86839353FC0 + CB0C23D22995A607EC8D931BB9C5FD59D24A9F1CAB5360287DDC939F262C2688 + B7752D9D2E26788952E3B4870B7E31F107F7F85D80E2B2B5829DF6E6AF165E8A + 7931ED812A41A6FF2B15A727650912A6347D03B6A53E0BD7BF0FF0ABA3735889 + 1CC64DBBF07ACB0B681F6A42B8F737603C59828D9255EB84DF971A4F7E6D9CE3 + 1AFA6BABD7C404487BCDF0964C2DF9992A895E456211E45205DE28AB87D23E85 + 9981268858314CD9959894F8F0CCE78F20E00FC2DBFA22B2975541AB33603E71 + D0FAEBDDED3DFD0737E7C50448DFAB1FD02D55A74AE4628824A228C44AD31ABC + FAD07EBE1082A5C68838FCBC7E0BDA472E221C0C23385E00F1F0F3285A51FE40 + 9BBCDF3A5A1BE1723B370FD66E391A07C030AE4F552589156272354B4D146D2F + E6EFC3FAE4AAE89C3AEB4778E5FC6F69F388D0FC5DBBB1CCFC43249B53EEB339 + 363A84BEDEEEAF066AB7AC8B1B033C808E00780FDCB63AA27DE6C244E825467C + 5CF125FC613FAABF5887697A6E3BC7DC7C44424AB0418719ACB506DF2DAF883E + 66EE0A7FA5B7349EE1E8062D1EFAF0898E050168539449621901F4DD0148B618 + A2F1B7256D3B1C3E3B8E598F20E80FC335E689E6AF34418270208C906DA73755 + B75DB12C53A8CCB0F6F5E2A6CDFAAEEDBDEA9F2E280BD2F6EA5BE9E1B1E24E61 + 989D8C3BC5899F1F35C07D3D26FC87477F237E63036BDD5752BEFA6125FF7EF0 + D16BAAE9FC1937E7F52DB71DFAF1D88200B007D22489528FFF422682EEDBA97D + 877F9FBCC8FC7261D10A745EB98CD1B1E19728F05E1102322EC0FF28E99507E4 + DC525D6F5E9E25E56A77D748D0319135F2CF5F78FE6F00BCA43D59F723B2FD0E + EDB173E0BDEACFE68EDD03F06DCA7F002F2AE3EE57D914070000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Sort files in descending order' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004DD4944415478DAC5976D4C9B + 5514C7CF6D2B63BC084314EA8082E565C020458296B67383B8647109D0679B66 + 86EAE616941A3FE99C7E50A3F18B8BD12FA6A01067ECC812272D6C312E8E00BA + B64C080E29940196B7C10099BC04905AE8733D35F6A194B6B498E04D6E9EFBBF + E7DCE7FCEEBDE7F6B9259452F83F0BF1042084FCF39432158F0BA8E00D6C2A80 + 801080AE504AAC68AE31E834D5D8CF6EF57251B9FE18FAD76288B3A39794F5EE + 36575CAF0085CACA833C023F102076B4E3403283587B1144892EA118F9BC49A7 + B9E02F78F2A18BA134317A3033333BA1CFD27B8F8CCF8B475A4FDB02025030EA + 4EEC95609562A00E974DC6A80B7800ED38DA62D05765FB034852E9DE8D8F13BE + 9F939B073DE65F61726AE2BD312DF34140007265E58BD81F666AA8AEF27CB15C + A95E40171B6E439CCFD99FF8269EEC0EFD4D2A53848786EE069BCD06B74C3797 + E98A2D75E4CAB3535B02B84A76F6899088D498543E0FD280F0330805199A8FA2 + 69D61F8048A5AF4D12A59C794C9CCEF50D5907606C64E8E2E825E6A52D010A9E + 51C78784C287E8A6C23C08F9D7B406148C14CD88B8E40B20E1E4B7B938EBAE82 + C20384CFE773FD0E87033ADA6E529B6D45327EF978B76F80A222812226AB179B + E914683DD6466079E685C1194B6FEF153BE6C71CDAECBE00442A5DB3382DAB28 + 5E98B0C93635390ED6414BCBA89629F60970A04CFD34F0C90D6C366190C3EE36 + 49D9A9E8085E9813E0776F0089E5F52511E1918DB979D20D5BE99E78DDB76FC1 + D2F2622926E455AF000AE65506C7D663B7CEA8D71CDB68537F848F37B1CE23C0 + 9E4DC9A76AE84BCF92EC8B8A8EF1951EB0303F0B0396AE3BC35F97667A05901D + 391BC30BDB358C673E02E7F0B1C3C136F379E4419CD249DC8EA39813F3E8F6C8 + 5CFFCC2EE79678249F09C714BA747E613167EB6C6B765B09621CD1962A7C26A1 + BC445D04025A83C1C4AE0444BF1B6B0E784BC023C711AE02039D32E835D77DCD + 3459A5A792278B38DDF5730B8C6895641D2280632863CE88803E10491CF651E3 + D52F172188E204C82D38C4E9EE8ED6E001FE4B7102ECCF3FC8E99ECE1F771E20 + 33EF294EF7DDFE69E70132240A4EF77719020790336A337AEEC7A3B66D1A2740 + 5A0E772060D0DCB6F300E2EC27386DED6DDF7980947DF99C1EBED3B97D80C212 + 75AA83DA1DEDD76A87830110A54B383D3AD0153C005D8362F71F24F49C00CA9E + 37EAABEB02014814E770FAAED51C3C00CA25AC2D78FBBBCC122AE411720E753C + 0BEC0B265DB5762B80BD29599C9E18B66C630528D4E107A9DC659396BD922CE0 + F1CCD8FC13BF05899EDF024F00615206A727C7FAB7B1027F51B1E1BBAA21773B + 5EC9B4E8520E0E7AD8D058D5E40F202E41CCE9E9716BD00009DE3EB98AB2CA0A + E091CF290BAF191B349FF903785898CCE999C991A001621140B80980A97C1EBD + EA584A5F37E9AB3EF107F0505C22A7FF98BE1B1C00A67C12EE7F94E78BF1C67C + 0E7D2EB02C9C363568BEF207B027F6514ECFDDBF177C0ED8E96A46BBBE6660E3 + 0AA8BFC7C71196B239267D758F3F80A898F55BDBC2ECF4B68EE135C3AC8581D6 + D635A74DA67CB99410BE0E9BBF18759A02F0539C0091D1B19C5E9CBF1F344032 + 6E830DADE3D87D1DB508AFE4CFE17F83593BACCA3D57C61B4078E47A0E2F2FCE + 050EA050AABF409768EA8077800F9F62A7F366B182B56975D5FE76203FC9C9E5 + 0D6DF876291710C034AA55CAB704D8E9F2371817F1DF61A8D86C000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Sort files in ascending order' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004DF4944415478DAC5977B4C5B + 551CC7CFB9ADACE3210F51A803DAAD3C060C522428942283B864710970EF36CD + 0C2853C3A4C6BF744EFF50A3F11F17A3FF988262F0D11113272D8C181747181B + 6D51081329940196C2788FC923B0510BF71E7F25F48E15D6DECE044F7272CFF7 + 7C7F3DBF4FCEE3DE534C0841FF67C19E0018E3F5673653F1849888DF82A61A61 + 244588AC10826D60D718F5DA6AE8E7BC0D2C2B33986024955B4316E3A88ECEE3 + F546DE6D0172E8CA7C0AA35F31C24EF0EBA1771606DB032034844820F319B35E + 7BD61B80BCCC408242C2797D7B691E8DE8682C0840CD68BAA05709351B1275BA + 3D15A3C9A210EA805F5B8D86AA545F00216191BC5E5AB8251C2097AE7C09FA03 + CD0DD5559E03E7D29A450871C03244F902088DB81BB23837231CC05D52538F07 + 04C747C48B289480B0280913A402FB0858734200C2231FE7F5FCAD49E10059CF + 6AA20324E863082B837D10B061ADC14E3211B061946521008F44C5F2FAEF9931 + 810005056275444A1F34130922F5501B114759168766AD7D7DE79DB03FE6C173 + 0A0178542AE7F5ECD4883080BC12CD3348842F41B319921CDAEC294BCAC382A9 + 4017C04D210051310A5ECF8CDB8401A899D71958857AE8D69B0CDAA3F77A9A4F + E0F136D4050008F7927F1D401A97C4EBA91B03C20054875F8DA00277D9E1CC07 + 43F4A72CCBB58828FC306C8E13B01C47604F2C40D863F303B3BB5C4BE20D60CF + DE145E4FD8AD7E1CC3224D0112931A48E69EC33588BBB4C6A277C4143E067015 + 3052B9D1A0BDE80D205691C6EB319BC5FF63A8625E9121F25008669DA3A60BB5 + 4BC88FE20290252A793D3AD8ED3FC07F292E80BDFB33796DBFDEB5F3008AD427 + 796DEBEBD8798084B41C5E0F59DAFDD8848CC6029107E0A83D308D0B2049A9E6 + F540B771E70192339EE675FF1F57771EE040663EAF7BBBAE3C38404E91269E25 + 4EB6A3E96BBB3F00E9590779DDD3D9EA3F005943859B5F481039810877C664A8 + AE1302A07CAA80D7DDBF5FF61F00E432D42B70FBABE3309152189F061DCD21EE + 45B3BE5AE79914EE816DD87587DC28993985BCD7D5DE72379090AB761D9DEF7B + 0608AA830F52A9DBCB2E794D2EA6280B34EFC0B720D6F35B202F6BE84F4C51EE + 0F0D8BB8EFCC2C2ECCA1416BF775FBF7C5C9BE67E01FA230FE5C35BCD9872B99 + 0E424A114B0E191BAB9A377BB1A5F545C141218DE919D9DBBE4F5C997AAEB5A3 + E5DB4BC53774CC055F0031DB7D72D525951588C25F120EBD616AD07EB17519F4 + 2D8A8494826869CC1680E9A971641BB25E1ED5318542F640240048B70030952F + 40541D47C89B6643D5679E7ECC899FD22592DDDD593979582412F1FD2CCBA2CE + F636E270AC28C77F38D6E31300E62B0ED63FD43301DC984F43CC598E4327CD0D + DA6FB75B6759A9BE364EBEEFE43E4522DF376C1B426323C3DF8D9CA3CBD79743 + C8297092D5A40E43CDE0BD33A0F9051E8739C2A5990DD5BDDB01C88FFF188D77 + 4BFECA56A983603690C3E140BF99DB6E931547FCC8F9E7A60503806C32CE5919 + D4DABAE6F254F4A9628C457A685E33E9B559C84B892BD3BF1F1D25FD302D3D03 + F55AFE4453D3131FC0C6FBC8ED0B0190C33238C01D87EE8BA06570257F1EFE1B + CC39D16AAEE7CC6C998583DF48486CD85072726A4CBFB56F7275F166C264D3A9 + 3B8200D4B4E62B0809232C7A0F89D0E7D0E97A69AC406D5E5D75BE2BF4952C2B + 351C85F16A21C7CBA3E7E8FACDDE7D0176BAFC0B215AF0DFC561E9A000000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Open WinSCP webpage' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007FE4944415478DACD97796C14 + D71DC7BF73EDBDF6FA5E9FBBF6EE7ACD61BB606CB06B43CA11D396566A2AB549 + 9093462DED3F555489566AD548A5AAAA481551A5FE51554DD226EA9D1402118A + 621A28F8842ED8060CF6828F05E373BD87D77BCFEC4CDFCC1AC3DA1068FB079D + DDB73BF3DECCFB7DDEEFFB7BBFF7869224094FF3A0FE6F00288A7AECCD75BFFA + 461BCDA50ED02CBF9D61793B18BE806279906B2FC524C72856B84831F153BD07 + 06BA1FD7D7AADDC7021C015DAB7FF5658A4EFD9863B36D5AAA1A0D8D7E184D41 + A8544988E4F9242F229A8C6231EC8337E24558088C531CFFF39EDE6BEF92E7C5 + FF1AC0F9DA6B959C56F8B39A2DD861645BA065AAB0B1DE855CCA028D98038306 + 48091C8C25570083070BC959C45232C812C6036E0412DE0B40F4EB3DFB26EEFC + C700353FFCD933B45A3A66D236E51698EC68DA360CBBC10A849CEB75A44468F4 + 4BD0197D107413988CDDC222EFC59DA00737FDC3FE9498FA6ACFBED1734F0CE0 + 387C7427A7C29942533B9BA529C1FEE6596C70DC85F7AE13F1683684A4FA91DA + 1694B961302D20C0FB70333A026FCC8BCBB3BD8228A5F674ED19E97A2C80F57B + BFB4AA19FAB2B9606F6E9EA118BB3F1386CD79052406561EA4110F9B904AA9E4 + 2B448285580E16296D2A4D046ADD328A2AAE2B6D0931815B0462363A03D7748F + 5F94E25BEEC9F1088023B4E355735F6EEEA6ED05A68D68DD9844756D3F48C467 + 8C7276B29E74C0A0A46A00C9841E93D77629F55A4300A58E4BA08924F7809352 + 0263D1518C07DD70FB6E5CECEE1E699103F3A10095DF79E79B3ABDE1ADB2D267 + D0E00C6153DD003875446917782D42BE52B05C02A248C33BB5098EAD1F21B69C + 0FCFF59DE93E8851FB964E04172CC82F75AF0247C430A6E3777061BA0BA1B8FF + 5B5D7BDD6F3F04E0A7B4ED90CD5D5CBED55E519A8DF6FDA74133C26A2753A33B + 88BB8BA1D185908C67416B5C84D93A08CFF05E12135AD9E3F21785D62B48C60C + 28AA1C543C1798B7222B6F063EF13666225370CDF48E915870AC03B0BCFC7EAB + 56AFEAB6DA5BD1D23C8032EB6886DB17679CE05471A8B5214C0C1E80AC98366B + 91409957EF516997142FE4168F907253A9F3DEAD5102939792584C2EA067EA0C + C289505BF75E774F0680F5A5E347F3CC2587CD25D5D8F7A5BF91800A67008882 + 9A64BC84723E3DBA1BC139271E9CB972376ABD0F1A838F78E19202138FE412E9 + 54F0CD3A60B65C455CE52171701D93C19B6F9CDF3DF2FD3500277A2BEC9B5BCC + 251C5ADAFFF0C869B6E4B5C3EBD98E44B8705D5BBA2B1115F51F2AB1E1278613 + 440E868DA0A6F918247609F39139B8E67A7BBA3E77A32D13A0E3C474D5866D25 + 39053C9A9E7D7B5DE7D1503131BC03B16039D15CAF04ED5A0FC83F1AE33CAC0D + 7F8267E839A444392E24946D380BBD7181A0498809519CF39C9EE9DA73BD74AD + 07528EDA665AA3E3B1EDD93771D3F51C4A6C2E988AC688CE6598B8FC02C9BB44 + 06D9300DD020D6D35FDC5B4FE5758153C55059473CC0A760CC1F5F37105112F1 + 8FB14EA16BDF15EE21002DB4213B84EA864E8CF41D04CB90FADA8F71F7C617C1 + 10C3349D2EF2E869C5F87D0279A4A2944E308ECDFF84CEEC228928BE5E26F2F9 + D8DD29F6B40F311900952F9D9CADDAD86856AB35A8AC3D47744B61FA463BC96C + 6188C92C302BC669EAFEFF5A09640FC8654BE36970D96E2C0941192B0320C627 + 717EAC6BA6FBF3973225A8EC38D95F66DFBC232B3B071C477473F661EED62EC5 + 3043D3AB000F822800F20FE9E31E804E1B41EBCE5308090105202EC632A77338 + 089767A8A7E7C085B6B5121CCD2B2A3F5C5C56A518C9314F924615093A4B1A82 + A157605640286A351095F813D3A32F2F9EC3A6DA5E623CA094706A39036064FA + 36C67D9E37FABFDC9F390D2D2F7ED0AAD1EBBA1D9B9B88310A1C0B14DBFA1198 + 6E24C1A753EAD8156F3CE8897B4128CA00A20C308FCDB57D080A7E047952E2BC + D2CE72694F9C1DBE8A08BFDC76E12BDD9989484EC5968E7AB7D55E6B37E5E629 + 865822454DEB6FC00A79589E69868FE400965A91844943C85E90FB4811E3A994 + 44EA93D8D640FAD68DC333938FB16BBBA1CF73A3BCF643F8036AF4DDEA1BBB30 + F28953FA8924AE01A05071F0F821AD4EFF5B675D13192D8DBCD25158EA8F4345 + AB616273C0073762E25623A231A3629C5D91256D5C84B0F22F5FB35C1891A836 + 0DA5F1A3A6EDD7E81A9C23BBA4D96FBB5EE87CF391CB31F182ABA4DCB6B5B8D4 + 8202923ECB379D226EA691CD9A90458A9131616868177CFEFC9529795F02D958 + 4ACC0491EBF405236072CF63E076F725D7C4C9ED8F5C8EE5A3E2C56355144D5F + B66FA8274AE4C1B6EDAF30E44D404BEB6064B361608CE023E5989BAE2623CC82 + 7F294B9901AB32886988344CFA5C537806D717DE0FF05C64EBD02B273CE969FB + 295B324BC7F1DD0CCD74DA9C756C7E61366CDBDF218BCCBC625CCF18088C1E1A + 5A038E56C1EF33E3E240F3FD3C203E0042BCB0240C634EFC9D20A996DB070EFD + E5ECFDBCF1984D69C5C10FF650B4F45E85D591EBA8A351D9F047720F99E78C4E + F1869AC40503358607F7231828CA00908B4046BE18EFC53C7FC22F71D1AF5DFD + EEBB673217AE27D8965B3ADEAB04B8BFEB7486ADFB9E9F22CB6C7A97C3485AC4 + 7CB5882D95C33753B79A8A1508623C14F7907DE027888963FF02157DFEEA0FDE + 9A5C97929FF8C5241D98AF90931F1595D2B602B311862C03D9EC55816539250F + 0864F3194B04B01C9F4230E646429A1BA7E8C4EBC3A95FFCFE7F7A31590B52D6 + 51D7C642FA02CDF19F25AF6555E4B5AC48793563F859B0FC04C5F0FD141DFF68 + F47591BC9A1D113FADB775004FEB78EA00FF06FD313DFD38B489970000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Save current session as stored session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004934944415478DAAD96694C5C + 5514C7FF6F66584BA140A1400686250DA84DA8B18B162A5098B253A9C444C59A + AAE14313AB10D344DCAA588DB46943352625B11FEA07925A4B039DB048D98A68 + 97D4D65603216569110AED00B3EFF3BC73DFCC3008C8BC07277939EF9EF3DEFB + FFCEB977EE1D665B46E1550648C75A1A8BFE1BBD8A346F1E65B66714B24929A9 + 6BAA7F7FE00E6EF42818AF0112366F8178C7276B226EBB5E8391A17BFC006489 + 29F04BFB0265CFF982651D1D64A97798DDE9699CE69C173BEFE1BC6FFBCB02D3 + AF9F626C78801F80347E338232BE4249AACFD2822C0B6798CBB38B211CBE7BD0 + 0A6D4F35C64787F801C4C4262234BB16B9CF48167D74C94E78C4AD24A136002A + 038BF1593B66AF1CC1C4C3617E0051313244E49D4466B278D9EA3CE3661BA0D4 + B2983370E276170DB1C7AD55783431C60F20324A8AE8A2D3D895245EA2FDF395 + CEE888B08E85C6C82EFBC1C9CB8731FD689C1F40784434E24ABFC7369968519B + 1DD54EAB5928F5A4523BBBE2071F341E82F2F1243F80D0F0482495D523552A72 + CFB5D50E4C11E1593DB708BDB5FB172A30AB9CE60710B2211CC9AF9EC553510C + AD7C8E884E6B16CEADB736D8F01654734A7E0041EB43B0E5C08F480867304584 + F566FEC22EBB77EE0D68352A7E0081EB82F0ECC10648440C5D6CFF675D3DDD50 + A95482013D8D28F551007FFF006CAFF869E517C8945C6A6AC2BE9212BA206F0F + 8C116F83DD66A39EB5DBB9B133C6D2FBF9181DDBECC89567D3EF353537711DF0 + F5F1C5EEF4950F2F9665707E2409C5C525387BBC0A9A6BA70455BE7E6725DEAC + 3A0185A29903108BC55EB68CC1B4F4208A8A8A61253F93BA57BC7BEFBFF6DE79 + 1BF52D2D971D0005BF91A5F0BCB7004AD93B282C2C86D96AC3A9326100951738 + 80F65605BC5AA98929A9CE952902BBE333E41714C16CB1E2C4CB1241001FFC6C + A5BEA3BD656900322DC3C425B8C626A3C1DD016DF2BBC8CB2F84D16C45ED7E61 + 00472E72005D1DADCB02B0B10929EEF1C391810553909B570083C98AAF4B854D + C1878DDC14F474B62D0FB06B4FC9A2B863636C1EDE04796E01F4460B8EBD240C + E0A34B1C405F77FBD200E48FEA2849C81601383B9023CF878E0054CAC5080DE4 + 27EED8E2BFEBE400FA7B7FF16E11BA2DF3A8243E6EAB253B271F5A835950F59E + 76ADAF43184056761E34FAD503DCECBF220C20734F1ED43AD3AA016EFDDE290C + 20232B1773DA7980FA03C1880C66E859A1D51BA1735D06CE5B2C364CE97CF06D + 2F10B631CAFDDE9DEB5DC2007667EEC59CC6E80E371D0EA5FE85EA3F1111158B + BA521301315171A3C98C407F5F04F8FBA1E29C9AE65D76F7668F3080F40C3966 + D4F3008AF7C360309A90F9F920366E92A2B640EBAEDE211C400002892FAF7F42 + F32EFBFB56AF3080B417E550AA0DEE70E3A1602A96FFCD30C289404DF60C9D0A + 3F5F1F2AEE82283B3D41F32E1BF8E32A4F001C15C9CAB75A77A665312ABDC51D + 6D78DB8F02ECAFFB0761915254A74F42424E584F71872F3A3E4AF32E1BBCCD1B + 80EC4EAF37D6AC0B0EF93826FE698825DC59F0C36BA02D2F3FF3848E4F96F9B8 + DBEE0991F3E5D0EA012844F9C56362B1A49A11715BF1DEB8C9659FF514687B10 + BD2067B398EFFE0B2DCF70302131F0DA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle file name column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002FA4944415478DAED974F4854 + 411CC77FF3DE7313A9100F95992CA815A5DE2C59773B9810E461D75D5D023B18 + 5989AFE8502075092208BA0411BE5DAD8C0E0565BE358DA20E49EC5B25A14388 + 9265461016194287CC3FFB66FAAEB9607BE81FCE76712EF37BF39D79F399DF6F + 66DEEF312104FDCFC2FE168031B650BBBD4D654C554FC0F410A35CD45F498851 + 4E14EE8F84AE27FAFCC9BBFF09C0ED6BAA265589906033982682D64946C209D1 + 8F2E1AE75CEFEF0E87A4017802FA28CC027B3E5E3AD0DBFE32A9B9BD7A25D3E8 + 09963E684542E572002A2B3577F6F60652B81633C36DA9BA3BA0DBA85EC54C63 + 9B340F244B7171D0B1BA28A74855683331752B135401D9478226AC8891270DA0 + 3C70685306659CC7C87D8C9863518A63E2A7D890555201CABC4D599919DA0BF8 + A108B1EEE44CF4125786BEBC9E1C191EEE9CC3FE1052013CB5BA17ABBE07B3DB + 320DFF526D47B5BE6155267D80F9115AAE14805DB57A3D86DDC4326FC5CCD0FE + 9FE0FCFA2584E038CC4F00582FC703BEC68D4CCB7C83510E84E19CCDEDA8CA94 + 1C6C8E06C855009B8687B2ACA99135A2AF2FBEEC000B17514DF35ED46D586DFE + 627362A2475CF05368AFC7057510707551B3D59202902C3BFD87B768A43A66E3 + 7CFC796FFB746A5FE9F7C0EFCA0A80BCAF61401F0246098EDA2F695600D205A0 + B8BC7A01D366E7FBCD6BEFD20A2084BD079FE12BB09D8BF25B227ED232C391F4 + 009098C3ADF7109376C211B978DB69F4C866C4EB121069F080B8118B840E2435 + 97EF48A9AA6A83303F233C4EE85C2E407C262FD6D331B154473E006F509DCD79 + 39B2E3419900D958657EAA5E11D05B14A20B247863D40C75480348D8483C4B53 + 75778D7E8C297419E6D16857AB21D10362AD65869CA9BADBDF7C067DCE22F8C1 + 5857EB5D890054324F73F9CFCCABEF97EAC88AA2C8133C342B0AA3F78D71A900 + 18791B61408A46FCC7E4CD4174B883F63EB4EF967D0CD7E1D181D163B8711E43 + 28C47310FF0653B64DAE811E634CDEAF995F6F4FD85C90810D7711302EA4E2DF + F0A60764CFB4248FA61480E52EDF01CF50DAD0BFB1075C0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Toggle file extension column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003214944415478DAED974D4854 + 5114C7CF7DEF8D0C42612D0A3531D48DA58B28B06926D0DA14E4C74C4A148466 + 59CD9B5681429B2022A156423A335A192D82CAE68D68D0C722899951925A4818 + 1A7E10944498AB92D179EFDEFE636A935249CCB38D7773EF3BF7DC7B7FF79C7B + 0EE7312104FDCFC65602C0185B26B3979DD9C564F93C860E62948EFE1B0931CC + 89FCBD41DFEDB8CE8AF6FE17009BF3EC2189B1000916654C0484605F18896CC1 + A89C114BE19CABBD9D7E9F69000E973A8C2EC788E9857DDD6D433FADA2963085 + 9EE3EAFDE1A0AFC81C80E262C59EB6AD9A24AE44347FEB32D7B85403DDBB88E6 + CD37CD020B6D6B718D356383350FDECE9548CEC74EBBA15A4E8226C2416FA669 + 0045AE535B2C6469C4CA23719FCF8B751CFC020F72BFA9003B4B4FA75A2DCA00 + 2479F0750767A2DBD0D9C0D7D1C9A1C1C18E59BC0F612A80ADC25D214B2C8861 + 6758F33A13F5EC65B5194CB17EC4F013E6D29306B0D7E56982D609605CC38A71 + 2CBB8BDBDFC34B3FFA0B80D3DD0C580F869F01B0397900873D31744A7C63A147 + 77E096A3589502A0CB42181162F2460055E3F012D87F1AEF22353CF5769DE8E9 + D193670146754C50237C7BC55EE13E88C35AF1E0B2E655E2073DD505D5CB4C1C + 4782AA055C65486B092705E07761682B53F398CCAD333A1F7BDDDD36BD74DEF4 + 3CF0B7B606601A00F2FD1B480A106A7F245B03582D0009E198C3949958AF76EB + FDAA0218063F204BD28D8484348E6AA81ED55060550090766791F51E13F10E18 + 221DBB5D80761A235E19D6FC41F30184B81309FA6A16E5A575DB99C5F20AC349 + B8271BF3DC5C003D9A19E96A9F489C433D006B50A5C17911AAE37E3301D270CB + ACA5BA7B5C6A83447495043F19D27CEDA601C47B149E854B75ED15EA3926D175 + 0C3DA1408BD7440B88F561CD97BD0CC0E9BE08FD4B707E5524D0F2D044002A88 + D16CD64BEDE687C43987530D212C1D342372438FBC634901482CC9E60A92C530 + A4FB70C331A8F01F87BBAB40FB00F21EC8F7995292C56BBD79804DF84EC1EA11 + 649C67383817DF55A89AA60C836C7D5DDE91E416A5092519CCDC1697C70CD1AC + 28AC09303631F7734A4FC888362C8466D200CC6CDF01419D07DFFA44033E0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle file type column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000033F4944415478DAC5D75F4853 + 511C07F0EF24AC247AA8871E7A10EB357AEF2D0DF24F2E11CC2C11432C112142 + 4D9D73FE0993C4CC4CDD3491444C5397299A7F32B33FA2CE8A103332CCE9CCFC + 8BBAEBDD5FB7DDCE0487C37677B73BF03C1DEE3DBFDFF9DCC339BFC315300C83 + FD6C821D40C77D5FAE9241BD49171C99BB42BB3BE9EE8FB60308C5B3D8D2FF64 + 0BC5FA740F465F3D1ED2997481EE22580146DD77D6606F2F2D56674631222F72 + 1BC10ED07E6307781F03CC4B04A1208887433099C284B97F573D0630683EB306 + 1FF4394B008BBB1045E33099035C41B002F4F4306BF0A123E74806C32EC40886 + E5C51397B354673C03D8FCC81ABCFEE707945F3A60A0D76DCFE8B5791080C023 + 001DF58E43020B36E627B1B13045FA664C2BDA3D055012C05BAE79C058CC64CF + A831589BEE2140E614B4541F67C04EEB2F4FF40C203473123AF51BA70924CD47 + B9CE45AA2682A549FE76B5C231403401ADBAD769D6EC96E328BE751E6CD788F5 + D5C0D81CBA46A787F426267037C221E052C61859010E00F9896D80D9C27E7DA8 + 9629CC2C51E854D8231C03D2BF725A819C9727B7015B667600A5D183D21A31BB + BC898E91DF438C462F2C490E5A730808495310400F07802F1E25F843BF65611D + 77C00B506B0CDB08EB4A10C4B886A603AA52426D55D31E707790DB1E90FBA124 + F102B44676808FB717A9D2161B42B94810C3BF2648ACAD6ADA01825307C831E4 + 720A4EA134E922688399759C72518D4FE373647283EDD9C2CA8635D67664ED00 + 4129BDA410F53B05885F9C46D9ED20503AB3D3B1D67DAA5A5243B542913E833E + C5A435D60120B90BBACDF74E938A1AFC507127041B5A93D3B1360891D07A230A + EB3F5863FF0FE09AACFB70392A928558D77007ECB4ACAA6E4893857B010201E7 + 4A8A84A236469A128635770095AF51991AC60F70B3B09591A5866395DE721920 + A9ECC4D3B4707E80F8821646961E81954DD701D9D276548B22F801E2F29B1859 + C615F700156DA81147F203DCB8D7C8548AAE62997207D08A6792287E80D8DC7A + 469679CD2D404EB91CB539D1FC0031D9758C4C1CED1EA0AC19757931FC00D1E2 + 5A4696158325CAE83220F74913EAF363F901AE8B6A18A92496005C5F81BCD206 + 3C2F88E307884AAFE6F54BDDF8207E2F60BFDA3FFF477BDF94F3FB7F00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle file size column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003274944415478DAC5D5ED4B53 + 511C07F0DFA422FA077A57FF407F442A99866292A6B69669E6B319D37CDAE643 + 9824A5736E77776E586296682273290A4248E59CD0ABC4174B8B7246CCF978BD + 9BD33D9CCE1487B6EDDEBBDD81BFB79773CE87C33DDFAF002104A73982E3804A + ED34478DC0E874A3EBEAD2583A92438F9F1900682FB80A4C97E2FBF4797E050C + A61F112358012E0FF3456C500E30FFD98251E3E2577C7A92B630762D2A00B1E6 + 23EA288A03A7CBCBB8C1F9B33160DDB483796513F4C6EF0BF2A2F82B51015410 + 53A8B3F41A38F69801BFACDB605C58C1500F2C596CD0559620880AA0BC6B1229 + CA1381767A5837F1E275EBD42E740ECD80AA22293A8012F91852562403B5EBE6 + BC99443B09A438253A80A297A348254E852D07778054330EDD4F6E460750D036 + 82545569B061E70E68203F80AEF65674000F9E0D21A23A03D6ED2EEE00420FAF + A499D101E43E1D40446D26ACD1CC00C5F02CD7B3BE38DD90F47F588504DC6B7C + 83D4F542B0ED30035423B3C02531A7BF59607CEE6740628604DC95F622422262 + 05907AD301C0E3654ECCE5550A2C6B344ECCA513889080ECBA1E44C872609562 + 06E80C73C025B229BB1328C7FE216266D1440B20C517DB210159353AA492E5B2 + DE80CE60828EC258D6C83E1303B06DDF3B44D876706C2FCDDB693AAEBB32D9DF + 1D0100A53497F527D4EA8D202F8E07C73E33E0C2B918707BBC7EC4F22A46CC98 + 17F05A7F77040080C35CBC741914A50940EF3147F66FDC199FE62D0780A3F96B + DBF2ADF53FDB13008180DB732E534C20E5A3441CD95C3A03F0F55307185F7F4C + CD9901AFE50728918F23E2F18DB022DB8B25B4D3056DFDD380D7F20314B71B10 + 214E81CD3022FB68A4DD13A03E565E11010A5FE891BA3235ACCEF003707969AA + 52F9011EE2D2227169B1BD966023D38C81B63A8D1F20BFF53D226BD259F322D8 + 34A847415797CE0F90D73288C8DA8CC800B83D7B24B7F901EEE3D6D4D465B246 + 7670C008BC9665F103E434F523B23E3B2240A36A187A1B85FC00A2863E444A84 + 91019443D0D72CE207104A7A1129158195DA0F1BD0D43508FD2D39FC0077706D + AB716D5B23B88166C53B78DB9AC70FC0B5B442CDC0F3FCE080D3987F393C4BDF + F3AFFEAE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle file modification timestamp column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004C24944415478DAC5970B4C53 + 5718C7FF6DA143B11610011D7B31DD1C418602B2A142DCA38C56070C1FC3980D + 02581083E014D0481801864347200C9587809BCA401E3A05061A675199082841 + E218389D1BCABB3CCA43DBC2D9ED5D804D5BED05929DE4E6FEEFF77DE77CBF7C + E79E73CF651142F07F36960A209D3FB799D28B6778EC16F180EC0D6D01C8BA77 + 96CF68F6B3D76E800260690D205CF4EA8C0294DEF98319808B017F4601CAFBFA + B507F822FD127159B94C6DC09A2573E9FBCF4D038C74C4510912C56BA60FE0FC + 268FBE4B7E9331D27BB32A670660CA5370F5263380186F27DA70A54586558B79 + D3D691390C2A107AE42289F171A60D557706E1B868CEB47564B6044981EF6B07 + 1072E83C113AAF98D12928955C477290403B80E0947212E3F7016DA8BE3B0807 + 8B398CB429478A4B92CBA8A4369F91815EF4F6F581C3D5837C64F01A082E10A5 + 32AFB6AAA25123C0F6E45212EB2FA00DD7EF0D61C56BFA5AE9B6B67624A464E1 + E1FD66AC7CD701CB6DAC31DFD8187CFE5CF4F70FA0ABBB1B37EA1B70F5976A48 + A5BD854449C2EBAACA7E7F0A605BE239E2EEB29A5189EF3435E254560ADCD6BA + 40E8228091210FFAB3F4C0D5D5C146BF30E4672640AE506268E411A4BD329C2B + 2B4741D18F32C5A8C2B356527AFE3F000107CF90B800116DA8BB3F04DB57F49F + A9F3CBAB5178EC5B848506C3C6DA12F3A8E41C367B02CED367170AB30F4E3C8F + 8E8DA18782A86FB88DFDDF2491C1FE2141CD95920B1300E28462121BB8960EBE + F9E73096BD3C5BA36E6FEF4070C82EEC0B0F85AD8D15F83C7DADAB36201B426D + 7D2322A3E3654AB9D28682B84B03F8C717900D1F7FA8D520273392606F65814F + 3DDD60C09FA33666A32F35054713D4FAFAFA07F143E1191CFB3EAFA8A6B2C493 + 06F08DCB2771DB3DE88086D661589BCF56AB0D8914919191C84C4D8489B111D8 + 6CF5AB6C937F38F232BE56EB1BA3F2757649E117B4133D9D5D4B69009F985CF2 + 55B0271D70AB75044BCD67A9D50D92D3503E1E4680DF6798ADF782C62A796D8D + 406EFA7E8DFEE1478F7124F33B149D3E174B037CFEE509ADCE65F7EA2A10B737 + 989E7B0E87A3316EB3380227D334038C8E8EA28E7A177646445DA70158ACE76E + 5874B373123DC8CD39BCD07CA1199ED565B3780F0510AFD1AF3A86B63E6C8797 + 77E0434600F6CE22C54F677275FC43A2E9674D4954004FB6F1D8715F4652143E + 72F302E30A141C4F5F68663A1FDAF5D05001EA6AEFE8C2FA2D5B99564058939A + 186F676DF596D67DD40250391B1A7F45D0CE3DB5CC009C84315E1B3DF66DF3F7 + 067B1A00AAA578282307B9F9C5B1CCA6C0516065B2C0ECD6A9E369D49EAF3B65 + 00B942810D5BC468EFEC7C9B11C03F551015EE08F2FDC46B83FB94014EE41521 + E570F6E44EC8086095C84297AB539F917A8067B984F9CFD4EDA616F807ED9629 + FEFD2D60FA42D9AE16890C0D78679313A259964B9EFEFB7AF26B3899BC193BC2 + A2486F9F6C5DDDE59212956D4A00AA66E7ECEACAE570F382C4DEBCF5EE2270B9 + 93EFC4930072B90205A74B909A9623938FCA37D54ACACAC67D5306A02BE1E8FA + 3A5B977DC0D4C4D84328780F8E0E76307F7101E61919A247DA8BD6076DA8AAAE + 4569C545747476178F29C676AB3D114D674DAB9ABDA3D0063AF0A446125023BE + C4026B0101690361FDC502A98012853555A5F5EAFAFE0D67D6B092B2067C7000 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle remote file permissions column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000053E4944415478DAC5966D4C53 + 5718C79F732FA5052AF2520A13DC3AB7C1144111D8C2E4C5651FB6C1974D932D + 18F94096B87DDA17898BE0886C23B0C99CC41818E8C4A0B21719486911649496 + 178152284207141736370622EF16904ADB9D7BDBDE7A1B467AC16C079243739E + 9EFFEF3CE77F9E0764B158C079208460BD21911C1088B6F323CD040A26CC0461 + 365BC656E6960774BA66C37ADF5B538B0B40EC6BC97B818732C1022980C093BD + 391811B2D49B009DEE51CA5A9E2A407878B8BBA7487216877E28F41210DB02FC + C0CFC71B047C1EE640F0C868849979034C3C988105C312E6838AE5A9C5A3CE19 + D9100025EE2192D493043A102A09816D81FEB0B26284E9B905585C5E014ACD43 + E00EFE18C8D3830F93D373F0EB6FF7C064326B1FCF2FBEAED536CF6D0A202629 + E59A1B41A4EE0B7F11BC3C0430F2C718FC3D3903F8DE71CA418F435631442875 + 2581225F089304C3E35513740F8CE079B551AD94BD8963CC1B02884E48492108 + A88D0895E0946F010DDED4B0F868018B9D301B26CA341ACD923D4B027F492A81 + 205FC0770F8AD9FD122CE32C51F158FBA85A5957BA2180D8C4649D9FAFF7AEA8 + 9D2F40DFD0284CCDCE4F992C90D8A3920DAE65B2C857DF0EE10B508BB7D04B12 + 13110A8377EFC1F8839909B572713B40F32A27803DF1C9A1EE241AA6C44992A0 + 536A369BDFD5B4D455C33A232AE9AD383720DB23C39EA7BDD1D9370C5839A957 + 25577102884E48FEC8CD8D2C4A7A2502F4A37FC1D8C4B45EAD9285810B03FBA6 + 25C0D73B7ECFCB3BA055A38365A3314FA394677202884D4C29C0AE3E1617B513 + D4FD7A987FB8F45DB74AF6812B00D83B399E025EF6FEE870DA07730F17AF6033 + A67103484A29F7F1161E89C6EEEFE81B028361F94C778BFC984B0049C91F0B78 + BCC28498DDD0AFFF1D26A7669BD42AF91B9C017CB70A8FECDBB53980010C709F + 2BC0C1F48C4AFC0E0EBA22E6EAC032AD3F971524B80470283DE3FE0F17BE1453 + 558E5AE5B991507C554EAF11B830E0AA48CF04335BFF2691E3B3AA6B80B5E79F + A37AA8BC54805C06A828C9175BC92DC077E741C9B53A20F0732490439C5C0382 + 40D65971FBCEE600AE16E789ADE707DC74DCE1E28F0DB438E904C116B7AF1370 + ABB5777300E545B9629B3EDD642E57365A856CE2FF760DF6F59B4ACDE6002E9F + FFC2066001A197075CA95638449FB86BAA6AD3A7A6A11CD750DBD465F38C3576 + 7464901BC0A5739FD93C00B0758B277C2F553AC4B1E0F0A00ECACB4AC1B8B202 + 87D3D2617F7C22EB1AA48D5DAC0CE907FBB9015C2CCC614C88EB015C97B73AD2 + 8D45B23333607A7A8A8EE7F3F9505C5A8685490642A6E866C5EBFAB5DC004ACF + 9E1253C7A756FD712BAEAA6F679DE8D4C9E330313E4EC70B854228B95046C7DA + 63EA680047BCB6A79B1BC0B767B219138AFCBC714A3B5986BB3B320CF9B939F4 + FAC9AC2C88DC1B63037098F0C90CA8BB3AB90114157C6A7D86F8572CF201B942 + EDE47A04E969A9548B869A9A1B605C059BE9AC6B0DAA1EE6B5203CB7B7B57103 + 38FF5596D8FE3928C017EAE90DD9C527EDF07B34406D8D14F77C44BF187B86A8 + 3AC0C4E30C342B55DC00CEE5675A4D887F82F13FA2BFB4695919A0364E7DFF10 + 0D20AF958209DC6C00D6F5A6B63E7C72C440DC6A6CE2065098778231E1F66744 + D0DCD1BF66F109C4D7433DBBD93983ED0AAC6B8ADB7D743D403600F9CD066E00 + DFE47EC23CC3E782C5D0DAAD63EA3CE9E405A61222C789154EC037A475DC00BE + FEFC38D30B242181D0D13BC46A36CE86249D20549D03AC98EB55526E00A77332 + 1813EE783608D477F45671926ABB6BF4001B9CBD59B5A875ACFE50F153352780 + 2A3CBD034F77746080389700FECBF1BF03FC03A5D6C4DFC61ACF9C0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle remote file owner column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006384944415478DAC5975B6C14 + 5518C7FFB33BBB337B9976BB8B2DE5A6526A2DA56940A05C0D286A9A1810A22F + 444031D262D0A089F2628C8981F84013E14569248A111B35463040BC412A685B + 8116C4D2560AB49086DE29EDDE66E7EA7766B76581BA408BE12427333B3BE77C + BFEF7E86334D13F773703703701C977241F10C4F96CB89654E9E2F324C6E8269 + 00A6A1451543BFA01B6A4DCDDFDA317ACD48B547B2CC3B06985380F17E296387 + 47109F1704C14683A4983075138AA642515444951822B1588BA6691B4F346A87 + EF19C0FC4267A1CF2B55495E8F5F727BE01245381C0ED2DC80AA6990630A2272 + 14613623514465D93474734D6DA3B277CC00F30BE07789D219AFDB3351F2B8E1 + F578E071B9E02400F66A4C551189CA0885C30846C208D33D0140D775D9D0D5A2 + E3CD383726800585E207A2E07CD74B42BD6E373C6CBA440270C2304CC41405D1 + 981C171E895830517A96D8F7FBDA0665D55800F885856297D3E9F0BB9C02DC64 + 7A8FDB05972082A718D00C9D0054C8E47BA6758440983B14724B4290C1E96A4E + 6D33DA4605302FDF31CBC6DBEA783B0FC1C1C3C1F396E60299DF66E360500A68 + BA0E45D5682AD655A5DFECD9D0A040DD78BC41FD645400730B1C6BED1CB787B7 + DBC1A64B10D81BB093F6B30A0B3165623669AEA0F9C2799CBB78D18A07265C37 + AE67A1A1EB2B8F37E9FB46678102FE2D70B67226F0A9C58B50B274090432BFA1 + 1B7870D264CB02CCEF61F27F7F7F3F5A2EB522180C816206FB7EFA1557070709 + 0885279B9486D1026C21800FC70702D8FCEA2B148494015616B829155D164024 + 1A8943501684AC40A46B3884CAFD07D14350415391CE9E45685400C5D3906677 + 8B4D997EFF844DEBD6C0EBF5C24DC24581D5011E6C698C02506601188D5B62C8 + 22953F1C44DFB581206541DA58B280C5415176207062F5732B1CD959999670A7 + D3093BC5045BAB52158C51E4CB548458316220D70606F1EDA19FE5C17070CF9F + 0D6AD99800D858BF7CFAAE198FE66E28C87B04020977585960B3366241A752DE + CB9625AC2A88CEAE1E1CA93DB1FFD01FDDAB30425FB86B80D75E28F0FAA4C0A9 + A21979D35825E4291D6D9C8D750256F1AC72AC3008AA032AA5624BEBE59AEAF3 + 471FAFAA828611C6A89AD196B58BA678D3DCD5B90F4F99C8FCCF11002C00560B + 345003A2CA68A0BDA3FB9FAB3DBD8BCA2BEB7AF11F6354006C6C7E69892FE071 + 5CCACE1A972650AA250F56923B3BFBDA2EAB7D0515157511A418A306781FE4FA + B265CD54897205276F3524AA4B56058CC55470B2F2A3BEBB6A05BDA7DC130026 + 30539216DA8167E9E942933367C65E5CEAD624E7881BBB3AC3B0EDAF215FE867 + 28F47EA747FB3A42A163B48F765700B440CC96A43748BB774420904E119F59B2 + 12195B77A0A9E60BF4B6D68D0830755609F2E7AC40DB7B6FA3F5AB3D88B12C01 + FA4CC3DCC98542DB4B81C86D013EE2389F3B4DFA45E2B8D9D924D845406401D8 + A91BA61FA983E993D052BD17FDED8DD737A1F7C6E73C8682C5AB615EEB47FDBC + 22C4A81831B5150ACC289809CCD374FBCCC650A83B25C0AE7469A78FB3BD3E89 + 3520FACD263524B098174B9623FDE3CF98DBA1450720877A291CEC70A78F8320 + 7AAD03CAC53737E14AE59796706BC6AD80282B5A263E2F0B065F4E0950919ED6 + 9A63B73FE4A6DD2C80C49559814104BE3B08A1789E258C3AF2F52BFD17F9EB34 + EA9F7E820499C382D9542DE12664D36C2F0D8626A7064893BAF2783E53B80960 + E8DE913F1D59877FB3CE03C300885F4F2D7B1257EBEBA126699E6C85085D4B07 + 83DCED2CD09D67B73FC00028C970892A1D010D03304D03DBCB91BE6EDD0DEB7A + BEF91A8D65653708ED23A7BBD9C9290960C3C0A0034959710BC0A719BEDE5C8E + 0B0C59A09E2ADC02CA777B2216AC24CDC840CEC93AD8D2E28DCEA0565C37770E + 221D1D71932700AE1080FF56002FDD8653024C23259DB490019C2680E204806D + 288F19436929266CDD66FD6EDFB60D6DE5DB6F313B03C820E8A167D13800A30E + A604984A00F4E961093D4300B3C905C3DA27004CCA92FCEA1A70D41DEB8BE742 + A12E78B3CF3B09C0970420DF09404502C0C9F29FE6590298C9BA1F700300EBB1 + D29225E0E890D27DE000F424ED87EE7B08404A0288DD09C0EECCCCA37A4C5E8C + FF61F0A258BFBEAB9BED3DDCACB811BE8E99E5FDCC6254968377B17FCA4172D8 + 91DA91103E7C48E1EEF7E7F9BF2078BAEED0A98A550000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Toggle remote file group column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007674944415478DAAD960D6C55 + 6719C7FFF77CDD73CFFDBE9796D24A2FAB405A56B4ACAC50B66C8E641FC2CC02 + C4A0DBC41923266B265D169716353353569D1B249B33147121736E4BA6157083 + 02A280851548875D6957EB68299451EC07F7FB7CDD738ECF395D238C1281DEB7 + 79724FEF79DEF7F9BDCFF37F9FF7BA2CCB82CBE5C2E7C75D8BA4C51E8E6F1478 + FE7E9E65FD866542553453CDE91D8A9EDB72A25B7B1BD31C4EECA900EEABF63D + 19F2075E8B0443F07925D86F554D473A9B453C9544329D81A2ABAF1C3FAD6FC8 + 3BC0D20AFE0EAF24764442211446A308FAFD601916B2AA20914A61347E992052 + 901515308D15ED3DC6DEBC02D4560A2D92C7B32AECF7211C98C80043EF33B24C + 3B4F13441AA96C065A2E672F71ACFDB47E573E0198DA85424AE07849E479886E + 111E4100C330D0741DB2A65226547ACE21671ACE04DDD2621DDD38971780A5E5 + 98034E1820D1A1B478164441445141016A17573BBBEFECEEC1C7FD9F38D9B04C + 0B594541CAD2FCDDDD48E70560718550C9B1E89A5B5A8ABA27D62118082244E6 + 113D94FA24E2C9381289047D26D07AE8304E7DDC9B6DEFD2BC792B4175312471 + 86D857BBA8AAE491071F448004E895BC6029232A893045594812880D73E0481B + 3AFFD5D77BEC23A5229F1AC00377469695C54AFEB166E50AC62B4970BBDD2442 + 067A8E3440A94F6708229DC2BEBFB729BD836737B677A95BF20A608FA71F5FD2 + 7CE7972BD7472361F0244617FDE50C83B2A0222B67290B299CECECD9DCFCA7CE + 67AE982690AD275B47EB2DA075DDF46C8B7337D926B2D11B0658FFB56AA93416 + 6D9FF7C5D8429EE39DF7060168BA861C1DBFA10BFF39BABFABF52B870E213719 + 9CCAD42A08C27D3C2F50C918F237A1D3C9D127E69C279F1AB2E11B027020D657 + 4B317774A8A8301AA6859DEF34EA869746C6FB4F5D3C5FF1EEBBDDDA15EE4D94 + A9068F4782446563A87119460E8A223B65B341284E0BF9ADF9BF00CD9234CB62 + D915D4E66A936B6A1E354292876126DE9B74F4F873A309FF819E9D34AF9DB2F2 + 7E9D2C5FA65797388E93445124CD88B0FD7339C311AE5D363B7B763CB252B2A1 + 2901B6FA3DB52E702FB12E2C0B721C663736A19F3F8778FCEA1E535CBC10B3CD + 99E869AC874C0B77687A4FB3A22CB09B956DD1B08F766C22955108D8980C3E39 + 7E48F6D23500CD41EF0ACE627617532123B408472FFDCFBF0CF3E1AFE293A37F + 406A740222523C1F95F73E8ACCCE5DE87BB61E760D7651337A83EE8582B0170D + DFBB1FF363854EFDBBFA2E60CBEF0F633C91BD12E015B20DD7006C0BFA4FC518 + B62A48C1797AC15346F8E80C44DB3E04EBF5C265EA7421B9485C842667D05153 + 85F4C80874F2DD9E95B18784B6F5B9B5282F2B06479DCC240045D5D03B308C5D + 073B31AF348A37DFEB505359BD796A80805F5EC0F3A22D35C10E6E4390059EAA + 4770E34F604BC031860AF8CB26FCFBC517E90EB09C0C3413C03F3D2CDED8FC5D + 44827E481ED15938232B745CB3D4B4328ED537B56413196DFB753210B06EA7BA + 9BF41C270B13C44CEA7E1C35A1D9C74F802B297126E8C3C338BEA88A76A72269 + 9A90C9F74D2AC1476E16CDBFF8364A8AA208057D7489098827D2D4B23364698C + 8CC5F1E4CFFE98CC28FA8EEB0254108046CF674834B368AB730980360CDFEA35 + 28D9B6CD9970A6AE0E436FBFE5A47E84FC529F69A09794FBA38647503EB7D4B9 + BEDD02E7DC98E98C4CBBCFE2ECD030EA36FD394EA7E8759AF2CC9400E514D04E + 693F2D3C93006EA3FFEDC3675136E61EF82B5C028F53F7DC038D766EFB8D925F + FA33803DD41FBE71F77C7CEBB1E5540237E8679CB3B8FD2B2A9355B0A3A56DB0 + E56F3DF611DC725D80320A6AEFEC22058850503B0B9387D75B53038B161D6B6B + 737C6C4B909FADEF7D548EF7497015A4A0753F78489E5D3CC3C39310EDA36DB7 + EF0BC363D9A75ED899A1750AC87DF39400BF8D84F6312C5763689AE67C7B1383 + C4E8A23EEC62BCDEBED3AB4A4F1671A1FA804F720052992CCE6BE39B5FDD7BE2 + 79F43B00F679D6AE0198AA15DFC898B329544525FA3AE07AC0E5B2BEB4C4B84D + B8578E5DE573581A443B3390A310A761A295A2ED1EDC38FEC1B4000A7E4A5A73 + 87B7D3C4B582C441F0F2685CBA03F39410060FFFE62ADFCA950D186046B061EF + 6A18AA01336727D8FA4B52BDFCF8D87356F29600E6BC10DECA8AECF7033325B0 + 6E0E0C9D82DBC34BF0F345D435CF1E456AE8435A9341A4AC1691D81D6838F21D + 1C19DC0F935AB4A11BD0090486F5CE40E3F8376F0920D6143E1328F296B97D3C + 188E9930EA54CF56BE8CE5331FFE5FE3223B76F120EA0F3E0123671280E57CDA + 1039CD183DDB305E706B19688A5C0A96780B0589007806AC03E142C81DC55BCB + F6C3C77B9D23AC180A56BDB71C9FC68728F57660730240A34B4A3331D030E69A + 3680AEE4C80CB8BD1CA4A807ABBFF0189EAEF8B1E3F7EBAE5FE1775DAF414D6A + F68E1D283B2D7902900A790F8FCC9802F9B20A4F4840B834E0348ED7EF6E81C8 + 78B0B6F5216A462A32A3F4A34436C0DAD91258A704D306F0157A0A39918542BB + 53533A6C3DF84994F67AE5A14A882E0F4E7EFA01DD8C16E4B88A1C6569B25493 + 7A980640F81D3AFB6B6F6AD2E786056B0F8970A5EB261B5FDEC77F0171D51CFD + CC33B39A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Swap left-right file panels' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000027A4944415478DA63FCFFFF3F + C34002C651070C0A0728C66DB80164ABD3D9EE9BF7170568C01CF03F2BD28564 + 13A62DDF03A6C9D50B740023DC012A3A16241B72E7CA09304DAE5E1407F0F009 + 916CC8974FEFC034B97A511C706F6100C98628C56F00D3E4EA4571C09D05FE24 + 1BA292B011129C64EA4571C0ADF9A41BA296087100B97A511C707DAE1FC98668 + 266F02D3E4EA4571C0D539A41BA29D027100B97A511C7079B62F86A2BFDFBF33 + 9C2E2B66B0983C0DAB21BAA99BC13436BD2772B3184CBB7A1998393971EA4571 + C0C559A8867CBA7D8BE148622C988E78F91EAB21FA691007A0EB058115E2820C + 7CAA6A0C36F31783696C7A511C707E06C29007AB96339CAD2806870008843DC7 + EE00C30C880390F5C2C02A4941300D0A01E38E5E0685B0480CBD280E383BDD07 + 6CE1F9CA12B003A80D400E306CEF81478971E61654079C9EE6C37032258EE1E9 + F62D54B71C06A43D7D18CCE72C02B34DB3D01C70728A37C3DF1FDF192E0243E0 + D19A1554B75C2E2482411F14021C901030CFD98AEA80E393BDE18A1F031D70A9 + AA04EC2010F07BF416ABA196B95BC134B25E18D824270CA64116EAB5F530C802 + 1D80AE17C501472679A128F872E716C3D9F40430EDFDF00D5607D8E46D03D3E8 + 7A4160ABBC08038F8A1A83F1CC05601A9B5E14071C9A8069C83F60085CA92965 + D0EB9982D5017605100760D37BA9248741A7A59B81898313A75E14071CE8F724 + 395E1D0AB7836972F5A238605F1FE9863815411C40AE5E1407ECE9F520D91097 + E21D609A5CBD280ED8D54DBA216EA5100790AB17C5013BBADC4936C4A36C2798 + 26572F8A03B675926E885739C401E4EA853B40216EC31D46060665924DA10000 + BB43771F2C0A50191C3DA311ED00009066A1D0D305A3EB0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Keep remote directory up to date' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000005264944415478DA + C5967D6C13651CC7BF77BDBEB0B673EF6C6E63606061B8CCA863E090B020AF63 + C0103441A251FE81C88BC698983930460946FF2246C0098C11200E362002465E + C68B62787548189B0319030ABAADD075B4DD6EBDEB3D3E776BBBB5D7BAB560FC + 3597E779EEAECFF7F3FB3DCFDDF718FCCFC1F83A3F7C9EF90DC3302B826F2084 + 6C9CBFD6B2F23F0538F859C694B8F4ECD393DFDE4D479A01973D3853B504F6FB + 378AE67D72EFE7272198BADE942C11C27694BBDAFB01D68D68CC9B39775C4266 + 96EA0F36CB1D5C3D7A28EC845D9070851151CF888EDB8CC7464FA5D1693B69DB + 4AAB775222F8DE52DE794DBE376B5D4221AB658E4912E9BC5366CB1C0840A6BD + 333DA24CBA45119BAF3663D7F55BD0C71B109B64428C290606BD018CC440E03D + 70743AD176BF8308BD42AD443C7B590D57555830D178F6FC39DC2EB331010091 + 88DB69D6DFB13C6C493A248D8C534439560B2D3D389653FABE314B7FF7EEFE85 + 969BB750903F1E196919A83950AB06985BF6DB90C49D6E174A762C80DD6883CE + A0056FEF85BB4704CBB2300CD323293511492949D07921382F945C15836E9832 + AEDE5FAD0628F9E8349C0FF779654850DBDF5F55B70F171C1678DC12B26312F1 + 6A761EC62624E3C2C103D8C0742F67C12C35C7990A729F7B1666A35911D76A02 + 6176D7EE5603147F7818DDF6C3F44478F14B6D162C3D520B1DA7C1DA0953513A + 3AC77FC7A96D9598B7E6AE32DF88F571AB6935364C9A54C89862CC014B23F777 + D4EC5003CCFEA01A7CD7B1B0E272DBDAD58995277EC4D2DCE7B1283B0703E3E4 + B69D7E0079B73374B74F9C50604C4B490BDA171C2AF754AA0166BD5701B7F3D7 + 90C2832D8BDC9EDCB6470118B12EFE6556CB1E199FFF82313D353DA0F472F61A + DA6EADDEA20698B9EA2B08DD97FB27256A51268CB81C272AF763B5E6D12896D3 + 5E1B9FFFA2313565B84A5CEECB111AE0DD8F21F2CD5157E044E56105804E7991 + 1EC9833D4D2A8019CB96C323DC0F29A6644EC28BCB51B7FDA87F0F44127E8049 + 73264372DB43080C6D7CEE78D3E301CC5A511E947538E1BE734DBF1CC39D86CB + EA2B11BAA70F40368FB848C8E3D246E349B867C425F302FF41DD736C34EE3940 + B97E5EF9DDFC68012276CFE0A8DB7E5CD9337E808A58F3E08E48885512C482F4 + 3529AD8FA5EE0D15C082D74BFA7404111004A555FAD4FBAD0F6CB8D4DCE272F3 + BDB932C050DD335C1CFA223F3400113D7DE25494B8FBC4DB3B1EF4894BC28C15 + 8E9EB391B867A86BF27BE5D4D68A10000B8B69C6823F6BB9B55A1FE27CD39F5D + 822414CBE2F2BDA1DCB365EF15346DB98029150B11FB4C825A3CE845E673CF00 + 80D2D2990A00BCA597FBBCAB1B671A9A092F8AEF2F7BE4FCDA0730D03D5B6A1B + F0FBA7751005095377BE8694820CFCBB8FF4BB672040C92B01EBEEAB468FAB07 + F5AD1674F1FC452291AAC425E64D2FBD5106EBE53ADCAC6984BBD10A039D435F + 341253BE9D33A465F1B96700C0FC59458AA0C0F3E008F16E466F35DC6EB43F72 + E06F870B2EB720BFF160A47F4F6619747B24B4A71B317BFF42684D3A0CD53DD5 + 00D327A3ADCD8AFAC61B18F3F4708C4A8CA7DF7252E01321F457A697825CEFA5 + DF84E31250B4691A86A5C42012F754014CC8CBC1A586669728913759862C3668 + B84599F1B14CA25EAF64CBD14C792AE8A0D5E8E0E9C1128C796B2CF256E64163 + E0108D7BF603984D16FA651BEF7BD4E4739B4DA65C5AE1C504CC543A29F57A3C + 058669D7677159E34A739056688421411722D3C1C73EF7F4036C301A87B30C23 + AD763AAD1824A271CFE06B3F6DFC3210209288C63D43849D02C44705F024E31F + 98FCF43F23A55F110000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Bookmark current folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000037C4944415478DAEDD66B4853 + 611807F0FFD9E5CCB259589285D9552AAC3E54A6DBB21152B9CAA8C0BE064576 + BF5A411748A82412AA0F4557108A329AE99AB76E1A5D95C8024B520A2B0BCB84 + D49DADCECE2EA7D7A56B79DE63D3067EE9F974F69E67CFF37B9FB37376185114 + D19FC1FC07FC0774001886416E16C286A962CB09472F93FB887737A6ACC88210 + 8AC65D1BF703AC8746E54C32AEDC19A7DF42FDC29BC72750F7E052F692FD1FF7 + F554F88C36FC08032693145575EBE8266B1F45D15BE1853B67BD8DAFF7036E1C + 1C95A81938B032217D0DA30E1B402DECE2BFE3A9F982C763B7CF4ACB6A7A2E07 + 381BA1E52223870C1A1E1D45AA33810008820B1C67C7D7E696C68C766EB41F50 + 7438F6657C4AEA94A8B1E37B1C5B4BC35BD456DCEE31C7F9CE85568B1D26D33C + 68341A6A4EA1B91819ED362600305A4C59B52C1497D617F9FA2B989BA8230096 + 7ADE62B9250518974F0B19C0627A82B9D313C1CA006E9456480121EB4EA2F964 + 1BE6CF2400564D3D6FBDFB500A48DBF32C64804B71B3608C1B230FB85F25052C + DA5D0EC7376B409AD8E7E3C2A4E3308E9B00564D071455565300BBCAE0682D0E + BA09D3434E41D249CC89211350AB408BE2EA1A29606166217EB4DFECDD6E45FA + 7A81EE3492A363C0AAE880929AD7528069C755F0ED77649AF66E22D775E7911C + 194D004A3AA0EE2D05B02D173C774F66C4C121BA8EAFEB72315B3B14AC920E28 + 6DF82005A46E3D0DC1FEF09FC7EF03E82FC2A0192C0B28FBD444016C3E06C151 + F597F10637857C7D1EF4CA70B00A051570B3B98502D87410AEEF2F7A3D6E3AC0 + 0C9D879505DC6A6D9302166CD803375F1B5413DF4444F91CB3A1003A5E0936F0 + DF3010E0705000EBB6C0E37CF34F3BEF0AB3C18A24CE2B0BB82D0852C0FCB5AB + E1151A2985839846B7F56B86D2DE0392D352C82568023DE4764DCF2949AF86CE + C1F801AFDC6E4C267784B2F33315B070F301885EFE2FCD8343E54DCF46A24DF0 + 01DE7B3C68601518EEF420BEF3C94805E8174C2600D71F85983E34EF88E2F41A + DF049CA4F673B517C6531351BEBD1ED31C0A44913B830A306DCC0C72DCA2CCA9 + DF0B79337290402650ED7221E1C4728C5F3A1596BDC760BF6C130D2CCB5490F5 + 6E80588E1C0E4288A2E385248A67609BA4C290C5E1BF78A268FF7CB4EDCC08A5 + 62E717AFF74F0023F36BED6B9CD36A4B4488314ECE9E4C5EF26D5DEB5940D8C8 + 08ED7DD293CFB071463FA03FA3DF013F01826F39DFEA63D26B0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Open console window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000026C4944415478DA + 63641860C038EA0010C1635A7007C852A6ABCDFF19EE7E393D4105E200B382FF + DD1D2D74B5BFB4A286E1CBA9098C70078467D4D3D5012B6734A23AC0C4B780AE + 0E38B37902AA0354ACC2E9EA803BC756221C20A2E5F15F454397BE0EB87199E1 + CDB51D1007C828AAFF37B6F1A0AB03CE1ED9C1F0E4FE4D84030C2C5DE8EA800B + C7F7A03A40CFD481AE0EB874FA00AA03B48D6CE9EA80ABE70EA33A4043DF92AE + 0EB871F138AA0354754CE9EA80DB574EA33A4059D390AE0EB87BFD3CAA031454 + 21E5404156128389911EC3F4394B188E9E384333073CB87D19D501B24A9A6089 + BA8A7C060F1707307BF7FEC30C7D53E6307CFCF889EA0E787CEF3AAA03A4E5D5 + C0128C40A1D0401F86ECB43806767676862F5FBE32F44F99CDB075E73EAA3AE0 + E9C35BA80E9090514251202529CE50599CCB60616604E69F3E7B81A1A56B22C3 + B3E72FA9E280174FEEA13A4054520EAB425F4F5786DA8A420616161686B7EFDE + 33B8FA52A7D27AFDFC11AA038444A53014A9282B32D4579530E8E940D2C7A6AD + 3B196A9B3AA9E28077AF9FA13A4040480C2EC9CACAC2909614C790921803F6F9 + ABD76F18DABA2630ECDD7F882A9683C08777AF501DC0CB2F0496D0D6D260686B + AA6150555662F8FFFF3FC3EA751B19BAFBA7327CFDFA956A9683C0E78FEF501D + C0C5C3079658BD6C0130C8B518EE3F78C850D3D0CA70E6DC05AA5A0C03DFBE7C + 4275003B271758C2CCC4984153438D61C5AAB50C3F7FFDA289E520F0F3FB3754 + 07B0B2B2D3CC326CE0F7EF9FA80E606262A6AB03FEFDFB8B7080B4A2FA6B2043 + 849E0EF8CFC0F0E6E9FD9BA29046A988082F13132F177D43E0F3B7376FDE7C1E + 1C7DC3810400991C0D304C609BA40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open current local folder in Windows explorer' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002D84944415478DAEDD05B4853 + 711C07F0EF2088C28A82C05EA4DC25350B531133D38CBCCCD40C41E8214DC9B4 + 794BED42D053106196E6354DD34A2C7A106696CB66AE44D6902166C3BCFB10D4 + 8360346D68CE4E33BCF4DBFE475783D38B3F0E9C737E7CF9FD3EFFBF88E338FC + CF12AD011601BB4E2907218254A0BD03638F62DD282041C9294E1E15647BC593 + 365800221B80C4D35F10C0B041C706386DDE260860CA38C1068C3E8C1504E09A + A86403861F1C17042039DDC4060CD609039025F100FA6B636CC273B326F43665 + 607C44B3D45BB7DE091EE1D7E1EC1E63E74A5A6EC9CFD880BE1A3AD03C63444F + 6332366C324376286C3EFEBB3F39FE0586D6464843AE61C79EB8BF06789CE101 + 18AA2940DF70025BB60362BF0336434C5F27F05ED58C199369C5655B5D02B03F + BE81F43C537800BDF7A249F0CD6D57842605FFD3352F96BAEE2D0EE78D92DEBE + B3CD6C404F15057414BA3AB47CB1827229C02B9507D05D1945829D4562445FD1 + 3BB4BCF9862F02734648CF3BED391BA0AFA0006DB11891794A98BEA9173A1CF3 + 2DE2E9CFBF35353508C8A6005F050FA0ABFC1809EA4A2490E734607A52B33C98 + E387B060EDF7EBE19F354CE6FAA5BF6003746514D0552A4144762566A6B47F9C + D27AD10A08CBD35EFB147E9914E09FC103D0964692A0BE4C8AF0CC02CC9AF4CC + 938BECB889D7B54AF8660C91B901992D6C40673105745758008AAB304F1BECBA + 72025B00B7D5A9E0ADA080C06C1E40C71D0AE8B92B45705C3C7E18FB19D7CFFA + B7FD7EA7EE83D7390A083ACF03D014C949F043A50CF2AC7C707346AB13AE8659 + EEABCAF3B1376D90A44272546C407B210518AA643828F7C14FF3E4AA8B96AEDE + 2AA7558FC23395028EE4F200D4B72248F063F56EC8D3F3EC58CE59599633AA8A + 12B8A70C9009A1175EB201AF0A28E0534B22BE7FD6C191DAE8EC0397A8C7A417 + 769107A0BA19EED0327B4B7EA9950D68C9170610799901D899A01CB674C48208 + 380C8DD5C7CA08E07FD51AE0175FCDD0D0201B7FB40000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Edit file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005324944415478DACDD5795094 + 751CC7F1CFB22868A4820626418A68634C4E33CE58486352A479A592691EA179 + 80888E698E07CA0A99A6A622CAB99A8A86576A12E65128DA289AE4918BC0B208 + 722CCBAE0BCB3E7B3D3C3CBBBF9EDD125D59E659B766ECFBD7EECCF37BDEAFF9 + FD9EDD474008C1F31CC1FF06F0A5F8D2BF955CA1598C4E8F0BD73BBBC0DAB603 + 6C8B1E015714D635C72E4B51246D28A45932CA59844380C5C523C9BF550DAD91 + C1F55285D3088700D6E21AE07685121A1D0DCAD88A6BA5F5ED10A95E5E219DDC + 7096FB58A8A0F4518900E310C0985D03D4AAB468E2008F11F23FB8FA68714CB8 + DA1A7F41E8F6DBD0D707F8680402DC9348F3143ADDE47584306D80655905647B + 4C385A5A2D2E018C2D8C0DF018C1A0B0A45EC2E68AD70CBE76367B78C8006FEF + 41C130373C84B44406E9C3C613D1946E721B6069E60592BCE07D985C0474E1F6 + 57A3A7ED1035F54A149CCE256FF70F144456164228578055AAA19137E09A4E5F + CF01FCDB005FA4E7931D0B2360605C03C8E41AE4DFAC8289616DDF3D5BEB202B + 2E47E8D021183624047595D5084A580263AD1C4594A189B1584644EBF59236C0 + 92D45F48CAA291D0B7985D02588761CDB853A142435D317AD726A157DF81A07D + 16A04BF797515DA7C2FD1B37E0B579ADC6CCB2EFC6180C12BB8770F1AE7364D7 + E20F41D1AE036CCF42A30CE567E66158642458AA1CF78ACA502E88339B2C2F0A + F32F5CD2FBFD593461C78D8B17ADD7DA0116A59C21A94BC6A0D9E83AC01ABF7F + 7E3E42277D04A1B9096855C3A455A1BCA411C9056177B4C6D6A8DCFDC99247D7 + DB01E2927F26694BC74263645D8E579E8F46E8C4311082E1E214CCB41A8C4E81 + EB97AA9A755A7AF844519DE4C9357680D8ED792463D978341A9E1D60E2E255BF + C62074C2280805EE80D904B351015AF30057AF284137370E7E3ADE0EB0606B2E + C95C3E016AFDB3014C4D323CB0C6C74740E8DECD7A57B0BA6A98D4A5B873B309 + 79D41C6C5DB150E068AD1D2066CB8F246BC524A8A8D6678AD75C88E5E2E170EF + ECC7DDB13318AA0246E52DDCBDADC1AB23F762E30F32885746F203A2379FE400 + 91503A09B0C66B2FC6226CDC70083DFB732FF6AE609AA530C8AFE2AEA4198111 + 7BD0A5E76B1065E661F7AA8FF901F3BE394EC4AB26730086374EDBE271081B1B + 0661D73700B71E609A8AA1ABC947F13D2D023ED8CDC507DAAE4D48FF09DFC57F + C20F98BBE118C95A3D8517608DCB6DF15008BDDE02DC7DD1A2BE05AAF2344A4A + B578858B7BFE13B78E28ED14F6AE9DCA0F98B3FE08C98A9F8A066DC747406B64 + 501458E34321EC160E740A00ADFA1D5AD9719449B5E8132186A7CF40BB35EBD2 + 4E629F681A3F60F6578788387E1A0770BC036C8B01152717C3D74F8337C72DE7 + E2C1A09557A1293D00A98CE2E299EDE27FEFC00964AF9BC10F98959843B2D64C + EF1020BF791A9DB987CCCB8B82878F2F7CFBF481B62C1BB22A1D7ABF97E1306E + DB81D4E3389034931F10253A48321366383C0262665173EE5B04F5EB07EF9E2F + 414FA9212F13C3D002F871718F0EE2D649DC790C07D747F10366266493ACB59F + 39DC81AAA2B3F0172AE01FD01754B31A461D8587F557E01D160F0FEF8EE3B61D + D87514395FCFE607CC58B38FDB8159ED008458103B652496CD9D8890C01ED0EB + 8D20BD06C1236008049DBA826F12771EC6A18D73F801D357EF2519A259ED8EE0 + F2A9FDD896BC13FEBEDED8B42109DD8343B9DFBD9037FC6892520EE1F0A6B9FC + 8069ABF690F484D9EDFE09735244080C0AC63BE366422070733AFC189083239B + E7F3033E5DB99BA4257C0E95CEF9778153801DDFE3E89668E700FF69F989710A + F0BCE6B903FE0248F95DEE4317A6DE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open file as if double-clicked' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000043F4944415478DAC5977B4C53 + 7714C7BF37CA04C2BAE0826489404C86B0384794091B23320263821444C7C81E + 212C639B1B1B08B2B8215592B9C5C5446726051F61CE98FD35B7A228D974C004 + BA111E892055AADDEC8352EC8B47297DDFDDD29071B9F7F6650C2769EEE939BF + 9EF339E7FC7EB7F712244962258570031004E1F70F6A4E770642DC6371205758 + 91695AEE582C3C6080EAE60EF2F84799B0D85D5ED7B9C38B7AA5E8BF3B21B6BA + 74AF0B2BDEA441040DB04F78833CF17116CC3697CFB503636A4C1AE7D03BAA12 + DB49030D226880CA53BF91272B7260B23A7DAE9DD4CF625C6F82C60D3122BF65 + B1D8B2CFD4F2758F04F0E9C976F2FBCA1D9899F70D10B28A845A675A8098A03E + 3DC30F464E55E5BEC00AF04303429F5E1DD349995EE288476D284556D75357AD + 8DFBF2306576F804185319D03DAC80C3E9199772420761F54E8215E0F2919863 + 8919A5B5F16955ACC1EEF59EC0DD9B17BF690F6BAC6BACE1C338E71BC02D66AB + 0312B996BADAF1BB78144DFB0B9800AD5FC5A4AE090FFF2BA5B88C08090D8367 + 0F2F5E3CBADD6246DFCF179CADE4B155C2FD8530F809B028A6791B8EFE781DA7 + 3FDFC504B8F275ECC8A6ACBCE7A336C463496686AEFD478AA3DD7968AA2D82CE + 640F08C02D82E6369C3DB09B0D208E7CB5BC82252913A4A6251E4D07DE807636 + 708043C2569CAB2BE602D8EB317054BFA8579DDB88A62F8A83036814A1A5BE84 + 1D20B3FC03F6A42468F6CFCE26A0F9CB123C9C0906E0179C3FF4164707CA4A17 + 0CB7FFE8804EA90A3878404260905F277F9106B0FDED3D70D8AC186CEF414EE5 + 8DC7979C74A0EDDB97ADF9750F426900E97B7231ADD5C3A85F83CD3B6A303FDD + 496BFD92087EE8DCBED9871318BC2C1AE01F546CA301A4F133A09629C18B7D0D + CF6CDC02AB79983308111494471F9748704F2C6EC93FA8789F06909A9302D988 + 0C0959D508E739A971A8B803928124A67FBFF367373452D97B7C81E23C0D605B + C666DCEE9722ADF438E092C2E59CF6AB4A6637BCC3F48BAEC134A94DCE3F3C3E + 4403D89AFA2C8687E4C8FEA419F6B99BD43171720609A8F225DD225D2E745DB8 + E4D4D9E4116587490B0D2021311A7A7304920BF7C26E1EE40CE25F17D8D7990C + 53E81375480AEA159B18F78198F54F62757412E253D2E1B4DE0F6ABEBE748D4C + 85D1AEA19F0A04CA77180091BC10C4A515202A36122E8736E8C484978D3AD627 + 815222AFA63AF01D0320EC09025B7797222C628EDA8466CE208FD28D81ABFDD0 + 4F1A338B04AA2E0680FBA92CBBFC43C029C7FFEF0ADE9279F7B3FDA9755CEC86 + 6DDE1859D43035C500E0ADE521293D058E79B58FA4BE2A67B73BEC4EF477DE57 + 50F38F5BF02C07D890948CE7B6E75347C51A4062FFBAE116A3FA5FFCFDEBA536 + 6AFE7C5680C42DB1581B15B6ECFC73B5D4FFC48BA251CD4276472B28AC571E61 + 0578A5B804BC75EB036F2FE9C5B744BF75FD0A5452D9CE5D02D53536000DA547 + E3F18A75C6615AF76E83618601B092B2E200FF01FD4CE1DF9F92EC7400000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle synchronized browsing' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003F64944415478DAED976D4C53 + 5718C7FF152B14B020F882BC840D914D4584102418A38D126002AE8B3A33E6EB + F0058910D0C0A21FFC66A210452B8213199B89D12D867428084C16A706256890 + A84384219B36B04A0A16041AD0EEDC73736F38B52FBB5DE24CE6733F3CBDCFB9 + BFE7FC7AEFC93DADCC6C36E3BF0CD97B817742E0C34DDA47E4F3476F79EEF627 + 67D51F0B02E6CC2FE2257728397F956667592220130542C3632537E97CD044B3 + B32C23E0A9F491DC64C868A0D9599611E8FA5E2DB949C8662DCDCEB28C40E777 + 9F4A6E12BAE52760D2286A0A16C1343E0AA59B17FC9581904F925BBD5E677C8A + 006590C832028F2BFEB940FF8801E75ACAA1693807B83D63C6DCA7786071D012 + AC094F4362582A3379DAF914FCBAB3959E876DB510682B5FED706233392AEE94 + E064632186C75E3ABC3EDC2F1207561660BAC74C7C7921193D461DDAF63EA763 + F3D2AB58818767EC0B8CBD1E435EF50E1886FBA09A9380B9D3E723A3A81990F7 + 634D8209F51D97306832BEC1C95DE4F0729B86BE977A7AFE700F2FB0609B85C0 + FDB254BB02DF341D415CB00A117ED1626DE1F64B3473EC8BD10194DE2E248FA6 + CC6E9FFBB97A9165045A4FDB16E8E8FB0D815EC150C83D98FAA21DBCC044B6AA + ED071CA8CF86AD577C6B8E5E6419819653B6055E995FC145E6F2463D2A8317B0 + 644F341EC4B7778E5BEDD592AD175946E06E690AA446F4AECB344F647B877448 + BF988ADE419D55E66ED65F22CB083497F04D628A67D99DD45BE183527525427D + E72126931710D82E433BB2AAD6433FD463936FDECD0B702C23D0549C4C07624B + FC6CC2BEEE3350BCFA22427CF88D33767735CD1CCB4D9EA1FD8C2C4683DD2FD0 + 94D92BB28CC0AD13BC405CA97581599E01E49B6B317B6A90588BCBE20504564A + 702C237053B38A0E2C3D35DB2AB0253A17DB62F299DAD2EC1A9A0576628C93F7 + C6641BAF64816504AE1FE39B2C3B6D5D40269361BF4A83C4B96BC5DAB21C5E40 + 608518191F86EEC513B24E16D814E05846E05AD127744055E66FF7D6AD5DB81D + 5F45E7C15DEE0955EE155A13582E1E3DBF87E667D7B0312AC76E1F8E65047E39 + CA3759718617F051CC80D134406FA565784E516279482AAA1B14E45E7BE1D0CE + 2874F7B7E3F6D306285DA761DF720D5C272BEC0AACD8632170F548121D882F0F + C04CB2E08A922B6118D1A3E8663E59E16D70140AB93B3644E6E2F3885D9091C3 + 51C4EFAD6505EA0B7981F51722A149B94C567D203DE776C01BDDD5F8B9F347DC + EB6924FBFE08DBC9E48FB4C5EBA09E9F0E6F375F87130B91906721505B904807 + FE18788C60EF30AB10F7387A06FF245BF120FDD19159D001BC564060A544527E + 1D2B5073587A93555FD7D1EC2C2B0A7CB049DB499EDA1CC95DFE4590BDF2F7EE + B3EAD077E39FD1FF5AE06F1B2917DFABFB83490000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Create-Edit shortcut-symlink-hardlink' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E24944415478DAADD66D4C13 + 771C07F06F177DB1774B96992CDB8B254BF6662E33D98BEDC596C8C421F23047 + 14A1A0ED2A025210DAC2C4079C734F7199A585527B3795290FAB0C9D28882888 + 46A22CE03433EACC1A8D32183018B4F48196C27F77B75D1FD692EB5DF9254DAE + BFEBB7FF4F7EFFCB3F27238440475F2588AFFA66FD4836AB139C6242ECDA321E + 70387F35A428D84CCBB5871878387A63D64F92C42022000B44DA20BA7F7902BB + DB87FE077F8A424400FC0BD200B76D63989A9985C33D879B0F46624644007CF3 + D20043E376FCCD008288E14166F564BA206122268096EA25FA820478E7162401 + DC5E1F0708227CB8717FE4AECBE97C9F2E4F5B141100682C3DA4BA700D3C1201 + CF2E7F0653CED930849D430CDD331426AE14049499BB89A128112E9F34C0EFC3 + 53E8BEF5181E9F3FAC3F39ED8451BD56260828355D22C6E20FE0F4CE4B02B0E5 + F3CFE38E6D1CC3933381DEE0FD21D4942409034A6A2F92DA92757078A403F8B2 + BBBC18FACB01FFFC027EECFD15A69DC9C28062E305622A5D8F6977FC00EE8F99 + 8FC73B87AF4E5E415D598A30405DDD41EA34299872FB452C235CFBA82E98B5A9 + C2801DFAF3E488360D93AEA50674C2A24B1706147EDB462CE51F62C2B9C4004B + 07A88A0DC280826F7E22D4271F61DC31B7A4802A4B3BE85D19C280FC43671840 + 06C6440036A9CAE2065E3F5D27E300795FB712BA722303F0C51CCE5469D073CA + 2479F1359B8B83806D5FB6106A77A62840D6360D2E5B6B2503D666950401AACF + AD84DAB319A3F6D8B740BE5D83AE1FC20123631358BE6C195E78FE39C17C5276 + 084079B099D07BB21940EC13C8C9D7A2B3B9867B90DA2E5E83B5ED12EC8E7F5F + 015E7A71051499A978EFED558BE693E53B8300C5812642ED958B026C29D0A2A3 + A9068DAD17603DDBC541FE5FCAAC746C4A4B0C7CEFBF7517EFBCF506779D9213 + 02D8BABF8158AA72446D818201B437D670D7334E373AAFF4E1747B0F5C6E4FE0 + 3732990C5F54AAF1E6EBAFA1B76F007AAA11E71B8CDCBDD4DC10406ED50942ED + DB226A02CA1D3A9C3B690CEB4DDB6770504FC3F6F869A0F7EA2B2F233D69350C + 741337253E93BEB53408C8D95BCF4C40210AA02AD2E1EC0963449F9D40C5677A + 8C8C8E47CDF1990D8A10807CF7717264BF42D416E4A97538F3BD21EABD474FFE + 40C581C3519F0B3E93A12C0B02B22B8F12739552D449B8BDB81CADF58645EF7F + 7AC8847BBFD922FA7C66E3C72180AC5DDF897E1D1EB6DD41CBF1E880DEBE9F61 + A9B7469D009FC9548500D8A7556CBD9B5144ACC7AA23FAD76F0EC27CAC39EAE2 + 6CF119F6248D1BD07C341CD03F701BB574C3A28BB3C567E4794B0068A4F5A273 + 7CE5322769DC80064A3A803D49E306485EFDBF6201FF00F42CB7DF5728707500 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Quit application' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003BB4944415478DACDD7494C13 + 511807F06F2845413A94026D4156D9979B3146AF7A331AAFE059C212202E0448 + 40A39020C12540588267E1EC72D4ABC6186FB2EF6B692B8596820894F17BB533 + CE4CDF9B4A2CC1AF693A9DEDFF9B99376FDE708220C04916F7DF00388E833EC3 + A9FC08D0B7E3F4559C650873D61666BD3F84FDA6AAAD9F1352AE38D1CB9FCED3 + 73515FA3016253743AD08539FD00736C8787F003C0BB2FEC9DAFF6EC4E2A0083 + 3CFF269A83EB97F57AD0E1D9388EF261D6C7FD7DD815E0F56D8FE7A6121067D8 + CED545C664E9C27DECCA9AF5F960DAE7F396BB3D061580174A30DCAA02E89292 + 7EEB9DCE2305B1B65B42C0047E11C005018A5400D3BDFB606A68F04F6F0E0CC0 + FAC30710EAAE218D39E1D163305654F8FFBB3A3AC0F5ECA9B47C19C327B50096 + 0020D26C86AC6F23648FD2C69EE12170D4D5311124DCDCD5057C69D99F99B8EE + 5C49311C381C12608A0528C47073448404C81E195500FC88A12158ABAB0D4290 + 706B5737F065654A15AE37535C240156481BC0BB810AC897014859DADAC05451 + 1974A46E44D86408129E8CE171EA70720906FAC1DEDC2CFD5F45C08C16204906 + 10776CA4EC78338020156A1DF9D9228059162057051011671901EEE16110F063 + 2CA587AF502E950D01732C400E0212550011918A88780A82561B18BE4C0927B5 + 86807916201B01091480884843842904C285E14B8C705276042CB000E7340022 + 225D03E1C2DB74B1B656B3AF20804516200BC34D1A0052697867982BABA8CB9C + 2F0761B1B151737B07862FB10099181EAF01486F6D034B55956680BDAF0F165B + 9A99CB9D18BECC02A46B003230DC1A225CAC35442C3010DF317C450B60A40048 + 783225DC890D8EB48BC4D2D2A06536068200565980540A2013C35328E10E0C9F + A9ADF14F6777F78099D230571131AF42AC63B84D0B1027036460179A7AE72E35 + 7C1AC3E55D710E03B1FCE2392C60C315CBA505489101A2F0617471742CE86164 + C7F02959B85804918B080BE561F4B9A810F6020F2302B0B300C9B8135E06B834 + 36AE00AC0DBD82C99A1ACDC7715E4F0F58CB6E29009F0A0B24C006863B701E15 + 60C51D18649720B3BE1EB21A9BFCD34BFD7D30D3D2F2570392ECD656480BF415 + 734FDA61BEB3535ABE8900270B605101FC672230B4DA3BE2908CB59D9B0D306C + 9BB8881863889EF05F8B9C019770B853EEDE3AA304F0FC3B3D07D74843E48E69 + 584EB248277420C0DB728FE7861A50001C7C89C417935804847B70EEC3AF17B3 + 0EF0078710171030AE0090A3EE8D8D2D8CE4B80E9C7B05E7C484F9F87740E03E + E01B5243B5D73B16F46A765275E2805FC2507DDF585377F60000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Select active session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A64944415478DAAD957B48D3 + 5114C7BF73692FA3429219964D898C220BB387BD2D7A59D1FB5D688F21F62E4A + 9B6E993DA8A0A84CDDA6155154F492DE19152E90A2FE29283022AD149BDA5A53 + 73BAD7EDEEB75FA6B5D5EED533D8F9DDC7B9DFCF3DE7FEEE4F12333EBE1812C4 + A25D8D3C7FA9BF37DA9799929809F1242232AA5DE53F94BCC64BFD5D89CF00F2 + FE83211DA16A1771C78B7D287BFF860D202C3C121DC7646261740008A10974FD + 887B8253F442BF30D6C28BCF10DB856F6D682A56E35369091B4068BFFE089C70 + 1073A2FC9B059D2D16268440ECFEA3BFB52F7A6747BD5E898A8FEFD9007AF709 + 47CFC947306D5087BF77E929132DFAED74A0D602982D041526274C8F77A1B2BC + 940D40D63B0CBDA61FC3C40152AFBB73FD39456F7500C67A82EF54D46C7167E8 + 97D53CD80E43E527368060592842669D446C84B479679E76FAED07F0950AD737 + 11AF0B7EB9B319D5860A3680A05E21E83B2F07C3C3FCFE12B7DA81EA3A026303 + CD8093FC77C1CF05C930D67C6103E819148C88853A4485FA35D7DA4ED35C4585 + 4D0DBFDF085FECC335054CC66A3680EE3D823060D9190C9449849D9BE86E6BEA + 5C078F4159B47797D6C0FCDDC80610D8AD3B06AF3E0F799004062A6CB1FE5FD8 + DFF49419CE2B4097AE8118967809523F091C3ED4D9657EDFF438AA98081FA77B + B49D79456E804E9D3A234671952DFA6B9100606F03414ABEDE0D10E01F807163 + C730055B43A20500AB9D2025EF0953ECE1F57182DF7D4604904AA5CCF4A3176D + C1B1A43834DA9CDC19509E164A30F3193D0AA3588363176FC5F1E42968B03A91 + AA7BC4147B4831C50D90FF043EBD2AE191435B15BAB4E4956453562139B9712A + EA1A1DDC1948CB7FEC198096A5943AF9AF7653A3A5D578477A6847CEDF80ACCD + 33E8B7C081345D2193F001C534C1A7E73DF40A40FAC8239BDBE56525ADC65D63 + B2219390BD2D9E5E5A76EE0CA46B0BBD03C4C6CDF9677053D710E4EE984DBF8A + 76D4C9654CC2DDCA0C22C07DDF4AE0C986C5AF8376E75C7A65DBF833A0B9EBDB + 21F464EB0F5D27DA94F9A8AEB541ADB9C3149B99344BF0AADCDBFC006B0F5E21 + DAD445A8325BB933A0CEBDC90F90B8EF32D12917C360B62143738B293623C97D + BED4D905FC00097B2F12AD72290CB5FC19D873EA063FC0EA3DE789366D05CD80 + 15999A02A65875D23C11E02A3FC04AD539A2495F2900F05A46D6157E80E5CAB3 + 44A35A454B60C3FE9CEB4CB1E9C90BDC00272EF3032C4BCD2739AA0454B5E10C + EC3D71911F60C92E1DC956270AF70037C0F10B6D03E0566E613F0133A5D70C3B + 56A17E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Check for application updates' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000008634944415478DAC597796C14 + D71DC7BF73EC7DDA6B63637BF1856DB0C1B131765A8C1BB04B2ACAD19206F247 + 49252049ABD2A4495BA20291B2AA8048251155A34811055A35510524C5A201DC + 94C3A660A7B1313660880F7CB1BED7BB6BEF61EF3147DF0C0BF66263D143CAAC + 667EAB99F7DEF7F37EC77B3394288AF83A0F4A02A028EAFF32D8C9DD89F10A1D + 9BCE08D08802DC2EF4B56FB321F068BBD3FB166CA6208636ECBD77FA7F06F8CC + 961427B0CCCF69608B4245656BF40C1896463828C2EFE1C28220D608C0D166CE + FE89CD06E16FFBACBFD2E8B50703BEC9C0FABDBD9AFF0820EFB73F2D6059F107 + 141B2AA5183EBB34D49D5411ECA1162E0492D29530C569204201915292D62A70 + 3C0BE75008BDB79D700D79EF10B12AB541F3CBA275A5B87AE22236ECEDA59E08 + 60C9BE379783160F2815C6351A7A3174CAF958177E0FCBB40D285C4943AD5791 + 60AA22E2E43F941188FB5624D661F7A0B3E91E9E5A530C95CE848BC72A9F0060 + 958DCD2DC32156A9DF6956ADA0344C16941A3F36A85F4501D384E4741AF64E1A + 6E87807008C4F5144C161592B3CD48CAB0C830923822100FAC48BC73E9D889B9 + 01D25EB799552AEDA7065D46458CB6146A6D1069D611E4079A90D6B70F3A0305 + C7C4620819AF40959607C6EC870777E0B65F81EE4633AC94074F95E710607DC4 + 2B8A28A04B473F9E0360B34D9993125B6534E594C71A8AC03214D6AF6A454E4A + 00DE63BBA0A246E1B56CC144F6DB6430E66137ADC981F8E4568C8406E1AB3B81 + B4FE6E2C5F570C56A999E18DEAA37F7C3C40D6CF0EFFDE604C7935DE52028D92 + 4279A107D98B5A4867017CED5FC14D008182D789360F9F3B1193BE58B99FDE34 + 4212D14E72C28D60D3DFA1B97501C5EBBF09A5CE18950F1244F591C3B303646C + FFF372855651BF207535A56015285D1C446E411D68867BD8C6EF89C3704F3E32 + F22F11F118F47EB542BE6FCDAE2709E681E2E639E83AAEA0F0599270FA99E292 + AD39F2C1630076FCE552A275E96A83613E0A1639905FD004960DC9CF4607B210 + 20B335C6F561B0B308594567E11ECE84A3379F0C2AC292D406B3E30C92BB8EA3 + E8BB2560D5FA59C455B2ADF9C3A19900D6174F2D51AB15B7D273BE019D96C7BA + 75555028A716B2F6868D88B7DEC150E7D360144192EDB5B877A71C44417EAED0 + 7890E0ADC482AEF700819FB3B4498F3AB210954601A46E3DB53F36C1BA675E52 + 3A72723A9157581BD5C9E3B4C268B1939A2EC048773168D24D8C884B1E3027B6 + 91ACF710C866F9DEA43716BCA0006BE841FF28507DAB9EE40D77A0FE8767F7CA + 7D24EDE900695B2BAB53162E5DA533985152760171F33B67908B228DB1C15C0C + B655C8D3987A2039424442E63F618AEFC2605709C2010D267C262C29FB083EDE + 87AABA6E04F940CDB51F9D5E3D2B40EAD6CAFECCBC9224A54A8DE2F2E3D0C70C + 4589FBDD29700FE4637C68A9AC4D49572A222EFF80C4ECF3084E9848BBC5001D + 44665125A90A1738318C2B0DE370F81C038DDB3E4D9E1DE0C54A3E3BBF942607 + F25654C2EB5C20979539A1036343B9B0B77C9F746064D74B7DA8297DF92290B1 + 52175D01AF1C863EEE2E79CE93537838816B4D02EC4EBBD0F8F271E6B1003905 + 65B42490B7E214BA9B374014D448CEAA83A3EB5B901ED0A4ED7D8BA8EA91C611 + 08444C6C3F32979D8497F7CC085FC3353501E814AEFFE46366CE10A8D46A6874 + 5E2C2AA9445BDD7628141C69A8024347C42320D33D20BDD74863A5A5B762FEC2 + CB18E39C0809A12880CB5794707AED03D777FE69F6103C4842A329862CBF3462 + 12BB119A98073168024396638684E651880787E47EB2F7A3BCAC1A9CBA17EEF0 + 28493C6F54E19D3DA7C0243F58D3FCDA91C725E1A9FD31F1C97B9253B3E4F59F + ECFD9897D68C317BC914806CEF9F0FBC2046E22F8DB5F1D9CF31C68FC04500C6 + 39F74379AF2B059FD790AAA202079A7FF16174199ED99F5A4BC65831D7C22152 + 2CAEC71E40BF7ED37D00094406A0E4FC9766CFF322CA4ABE0065E8C048C083F6 + DB4FC398D002BDA50B9D37CBD0D8764102587A73D7872D51009FED4F1557BDFC + 06B913228E0A462C394529862170011F1ACFD5A36FD11ADC0EECC638D90BA410 + 3DF08440129D23170940000783A91F4E671C822116A6A446C4A5D5E172552E5C + C1ABD52D7B0E964F4FDC29809776CAA28F8A077D1E34FDA301DDA9D9E00A9F81 + 998D257BC232B4B6E7C95E90C220B99F271EE07841B63CB11C8191A0E2D26B30 + EE4CC0F5B68BA2C03B97DDB61D6C9E1560F54BAFCC100FF93D6838F3055A939F + 81A7D8021DA387893543833838FA97C0E7B76064349E8801B9C3BB11A24C6831 + BF791F2002A23177E3AB8E2E8C059ADFBFF39BB75F8B5E55A703ECD836C3035C + 688200D4A381DF0AFFB7D564AB1D85813142CF18A061B45092978CE1A10C525F + A791193C0E2F1787AAE43A39147C242476C79718F5365E68FDD7C45AD4D8B8C7 + 0294EFD83A4D9CE401C2B20D4DFA70E3521B3AFD99F096C4C297380F2A85115A + 9E81EA9E1BAA869B4833B791355F44ADFA5DF46836CA6108F31C7AEC7570F9DA + 2F8604D7F33DBFB38DCDDC57A6036C7F414EC0E95E980E34D0E9445F879BEC88 + C4333C05A542404C3C8D940C01033D02BE743D8FC69877E46A703807D0DBD724 + 8678F707775B06DE7874E6B302546CDF84A07F1C37CE3720B37001D9528D51F9 + 306525C830E91D242F2741345D1570C3BB1617E83D708D79E018ED4320347E5E + 60267FDD7B78FBF5394B7B3AC0CA172AD078B696ECE1938748717F2736D1909B + 9A67215BB292949A3481A00C21898F8F4E925987D0D1CAE2ECC85AE1A2ABA29F + AC05772150B5022D9EB07FF45C0B9EE098BE104DAAF51AF5A46F62D7C6B7ECEF + 924F28BA80B56E6640FD98A2B1526764154A35059E1330E1E5A5CFAE7652FA27 + 792EF4FE73B6E19127119B13E0F47EEB2652D1ECF7DEBAF7C9A38DC8B79F5600 + BD90B4B4080CE50FFBB9EE2DEF0C39FE5BD15901BECEE3DFFE9780FDF8FDFAF5 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open current session in PuTTY' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004594944415478DAB5977B4C53 + 571CC7BF9752E8905249E5616979D40818EAC42C9BF20A634C51D9F081DBB299 + 251B59B68492FDB12C5BFCC38465664B16B3B864642E9931332A988888718B3A + E204015948101F40A55206D442A9056A9F96B667B7175A292DA5ED75BFA43DE7 + 9EDFFD9DF339BFFBEBF9DE5288D05E2DDD731BA0B6471AEF3602745291035492 + 0C692E9BF531A652801580387323AA6B7F0021CC6E982F77BBF4DAB574DCE3A3 + 3F574F7E05F5BF4A7600228914FB6B7F64AE5D6431AD8BAD6BB1439640CD3B01 + D33302A30D1868FE129A09153B80545106F6CA7F5A71F7EEF6A98DC060010C74 + 6BB5136FBCEEEA1798D28CB103484E15E36D7903B3DAD29DDAE99DEA8C0433F4 + C20E2709183F79E5734C4FA9D9010893D6E3ADBA1358DC30605663DDD067B051 + 09B89D7A3668FC784B2DF4BA49760089C2641AE037A6D01CDA1E48C7E5906C90 + 40F5E8096EA677048D1FB9F02966F5D3EC00046B85A8A83B85A8F1266C9AFD0E + 79E57B303DA240876E075489B541E31F36D6C030A76707C0E727E0E0EE6C6493 + 566CAE38086E5C1CBACF9EC0DF924ED839C2A0F10F4E7F0893D110394049F92E + F2EED6C7C8CF4B44DE8E7DE0706330A9B88BAEFE28DC17FDB26AFC9D53EFC362 + 364506D0FAAD2867C6B246915FB005D26DA5F4C8C2347D2DBFE31F5D310C44B2 + EA1C9D5DDDB0D9ACE103B47C9356CE8DE1366F2CDA2948CD79D93B6ED26B71E3 + 5C237EED91D1BF8895A7E51C5630ADF3FB5CD8E7EDE101B41E15D7717971C765 + 6FEEE308D6A7FBF8866F5DC3B92B53E81C4D0E6346D24385A26A1C8A60D7260D + 4A367320DB79003CBEC0C7EF74D8D17DE667A7DD6A161DA8D74E8BB3727C4E1F + F5E8C315374A85A26ADB92FAF05AB60DB9A59574B17199B1E8581EA8280ED377 + 179F3B031E534E45A3A12DC17B2D4C49F374477BDBFF90FA01ACA66A71AAE388 + D5342D04B8EC88A6AC283824672ADF27A1C485475D6D500C6AD1EBAAF1DB48F7 + 8DCBA001283F8070548D3F7A0CB9825E6C2828F799DC617F86C1B64BE8BD3B83 + E67BE9B41E44054A66E00C84AA6A469305AF288B51F4CE07888D7F9E62AB6106 + 0FAE5F84654E7FACCF31F1757DFDC26B40284685A36A59C6D3284B68A20F9EFD + DE09E66849BD77AD1564DEF249D511F5C95017F60158AE6AF30E404B2F3C6725 + DE47E1F6944FBC8EA2CA32F093450BC537D48FFB1D3771BE2F0D172EB54774A8 + 51CB556DD64CF0C4F4FCD97B2CC57C1D65388AFCAA43DE621B1E31E2625F0AC6 + 268D7EC515168047D5A68D80C51EF80562BBBA1A852519584BD78BBBD894B399 + E84F6DC0E0F93A46D55801C4D307CB968FCEC0E90ABCB8C07607A57335905554 + 63E0AF160C51D5184E3AEC0EF7AA1A2B80B835F1D8FA71E38A37C93472E4AD53 + 6246A3C140E2116804EF797D1E556305C0E3BD84E2A2C2156FCAA4DA21A486A1 + 24BBF194887D7C1E55630510B3EC440BC596AB1A0B00F67FB1DCAAD6DBFE6741 + 4400C19CE1A85AA4E63721FD48547493E5EEEBB58F7D7CC154ED450290C237AA + 82060552B5FF250341EC8565E03F34C2422D497EFF330000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Show information' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004864944415478DAC5575B6C93 + 65187EFFBF677AAEF4B0430F6B370181493486453CA0F1625CB9912C4159B933 + 64A8C0AD3A463750AF4C8C8119BD5C173021B1E3C67961029ED144836381015B + D7C3D68D16BA756DEDE9EFFFFB7D2D5DF76BD77E6D883C377FBEAFDFFBBE4FDF + F7FBDE03C5711C3C4E5098004551B54FEE77092DE63D0768605FE338FA592469 + 070EF4452D10018EF25214FB070BF47781E0F549B8EA626AA92CD8AE45407778 + 5CA5A4E5C7D189E332855AAF50E9402A5781582C058150543893677290CDA621 + 9D5C83C45A1452895804F9F5332A0EE77C13BDAB0D13B038BFEEA3813AAFD619 + F53AA305C41229915BB3993444EF052016BD1761817B3BE03E78A94E022EDAD6 + DF392A92C88E3659B7834CAE6C28BEA9641C96FC3390CBA4BEF08D4F1D437A59 + 0202C8B873CF573285AAAFD9BA03B959D890F112F20C0321FF2D1496B54B3EF7 + F5431B49542460EDF78C6E51A8065AEC3BABDE8DE4DA0A8417BD580D185A1C20 + 5769373D8B6D2C7A6FC2DF89D8E7FEF1DE639B12B0F57BDE104A2417CC8ECE9A + FFDC260EC2887327D04876706C1A7C59734D4F04E7A680C964DEF48DF75EFC0F + 017CDB55B47CB6D5B14B2F95296ABAD6FD96064CDAE2A50CAF66E0F0972B3565 + D2A9042CCC4D47200E4FE2D7C123806EFC905A6B183634B711C5F6E28001F4AA + A297EEC71938341A26920B87E621BE121EF1B90F9E2E1378655868333FBD686E + EF3488C41222455D0E299CECD68080A6E0936F56E0DA5C9A482E97CD406076EA + 813FF89789BB729A291068737ABA2572E564337A72FF0742E8696692F103F3EE + DE6F1F1298F8546B6C3DA1D6196A0AFB66FEACB86FDBFE0C318158348C12D5C2 + 399FBBE7DD87042EFF6AB476744965F29AC2573FB056DCDFFFA19F9840269584 + E5C09DDFE7C77AF616091CB9BCD46A7FCA54CAED55090CDA2A1338EB2326806B + C782F7E6F2FCD8EB4D050236E744CED2D12924298A257C7FCACE5BBF7CC64B2E + 8CE0BF3BC5FAC67A04EB04CCEDBBEB22F0C39083B77E6964AE2E0281D91B6502 + 38044DD66D2681803CEFFFE86AE7AD5F74CD12CBE6F30C2A52B7CB21C097706B + 8BAD4B22DD42ACE42757076FFD82EB2EB16C369D8248C8BBE112A267A8D2194F + 28D43A62253F8F6CE3ADF70DDD26964DC4A2B857D8F80C3DDD62A97C72ABC942 + 4EE00C3F69ED3B35432C7B7F3980BC902C27A2522AD637DB0D4282A788F1CBD9 + 1DBCF5F383B788E418F404C3212F3F15978A915CAE19AE950D9783C558A3F8F1 + F6DB8E4C14BE26734755799C0553C9D57F152344C0D6E3D18012EEE80C667DB5 + 8274EDA35D550D74BD3FBDE96FB81045C3C1CAE518033724B45074416768059A + A62B2AF9EDE3DD5509EC7DEF46C57D966591F10560995CE586A404DC92A1EE77 + 40FD4413D49398AA01CF3EB1074BB85BAEDE9215516C4A5118FA945AC3A69E20 + 05FEE7A801C1EE276B4AD749A0B61C85E3A852A3079148DC90F15C2E0BF1D508 + 767B3D6D7919C5C104CE4B640ABD0C4D43A4A91AA7DA149A9232A9041A4CA091 + C1A48CC2684629DEA128EEA45024D18BD07484BE888C00285A5054C4E691D13C + 30B90C1A42D2F8FB6846331ED68753EE558EA39E7BA4C3E9E3C43FB0D083DF33 + D88A2C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Synchronize directories' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000050C4944415478DACD970D6C53 + 5514C7FFEFB5AF6FDFEBD88640641B8C469848D44C89A82C860410DD32C99019 + 10E28068548671423258B409203112138951120684106146376093092EE343A0 + 20933018646C13583BB639B6D2F5FBE3F5BDEB6D296DC7D66E6BB6E8496EDECB + EDB9E7FF3BE79E77DF2B4308C17F69CCFF02806118EC57232A459E564F71E60D + ED4A2EE9DD1DAFBDA786635C00AAB74DFD7A66CEEACF54F38A87746CD3ECC2AD + B30776E695756C1C7380635BA7CEE563622EBEB06C1DC345450FE92838EC68F8 + 790F71DA6C2FE57F7EEFCF3105A8D99ED6F4F482C5B353A7658675EEBD7B1B37 + EB4F4626046872CB742F870048270B8ADE1ACBCA0EB2FA7D479057A6634202E4 + 2C9D33AE0067ABAE87071857759F8505C82DFD6B5CC56B766487077863533DAC + 0FAA837E22637A7FA67CF730001B6B61351C1F7160669420A7CBCBC3032C2939 + 02BBF1C4E8322423AFC2E9BD07C203BCFE69051CC6DF232EB5A7227D761B4EE9 + EEA2D5A04797C58268B90C4A7AB0CD9D3405EE7A0DDE2EEBF0024C51C7A770BC + FC1803C61200F8643F1CE6D3214A1C1EA2DB6AC1B7572EA356771BD14A1E8A38 + 0E72850C9ED84460E034BAE036DA6117A52F0923ED65C11ECD989EFE4CFB1D5D + A0028B37FC0097E5DCA8CB7FE69E0E9BCE9F0197C22361722C1836506539CB41 + 21537807DC2C7AB4BDF8A7F3BE98312D4D96959585DF8E9F0C0258FF0D5CD64B + 8384C2355B9D568B12CD39246726427489709A0510894046B38F55462321291E + 0A9607E78350B00AD8AD4EA4242583A3F3D5353541001F6F8560BB3AE23DD79A + 8C28A83D0156C9C1A67760FEE429786E6232943C8F6E8B8D56A6135AC181E959 + 69888B8DF702784182802A8F560500167D580AB7E3E6881B6E6DDD595CD6F7E1 + 493E063BE7CF45D684A4013E04120EDDBA83AF1A9B30277B3694F14ABF30C77A + AE3C2AAA2A82003E2886E86C1B710F6C3ADF80ABF7F538BC24072951518FF93C + F4EB77BA5058FB07649352A152CDF06E814798F36DC7C15F0E060016BEBF0692 + 4B3784E0F0D5183CFF50FCDD9317E1542662D6AC99BEEC795FF60FC7BE9FF605 + 005ECD5D40B7A00B435BA86A20E4FCCA866608939F4066E6742ACE7B330E6E46 + 192B4779C59EA09370FD17B4831DC306F658E1B1725CE9D6219C45731CEC8210 + D6879E121A3FC0BC45B328C0C0054C886CB34F5DC3DAC275DE7B5172C34DE8F0 + 5CE97ACFB5A5AD05023D110FBF38C3BF4653D73ECC51FC51C9A07D0CC5ADDABD + CD0B2012D12B28FA843DE3DA8DEB601F18F163DE4A2445C5E09162EDF7BB4203 + 546F4B33D32FE3388CD08A6516142D2FF28B3ECABEB9B519BDCD2D281163108B + C7B588857E51C767A86327118542437F3EAF2D35ACF27F968FC632764C20AB96 + ADF68A8A2400D16F32E0C2858B441084621AFCBB41EBB62B9F05CB567051F2A7 + 04BBBBAE7DF383851103AC2858E1CF5C0CAA84C96A4253E34D984DA6462231BF + D28DA4DD4A92E82BE21546CEBE99981AC7F4F798AD82283CDFB9D9DC1A3140E1 + D2E55EC13E431FE212E206F48167E8F57A18F4FD703A9C004B9F8A041E0CC7A0 + ABA58788827B99B6D458E9EF8148000AF20B68C335A2F5EF36313D3D4D969199 + 0E19C706AA41024F85CBED426F871EFA4EA35512A4777465869A014D1809804A + A5425B5B6B9304299F21EC1A5626DB90949C189B382181BE0D594FD3C141B337 + 1B2D30E9CD4412C9219748B67497F56B8363450AE0F97B94E0720AB95D6A739F + 774EAD548A3CBB88252487069C48016218021D61700392B352BBC5D63D54AC7F + 0144BA16F6B16194420000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation needs user interaction' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003084944415478DAEDD65B4893 + 611807F0FF8B6299278232CBBA0B0AC40CA3C34D37451711186A999A67CD4386 + 9936E774D369E629DD8C3CD4BE794AE739F3702304898582645D74402A1002C3 + 539AA77998736FDFBE62694E5436F4229F9BBD3CEFB33D3F9EF77BB7114A29B6 + 32C836601B1091DBB2A502129ED34C8B625DA0526FBEE3F6C35690B0EC26FA98 + 7719730B9A4D0744E7B180D0AC46FA24CE15B3AAAD003483DCC87C46657C3728 + E70D0768341AB4BE788DF6CE1EF40F0C6361410DDB3DBB71E684233C5C2EC0CA + 62D7B2FA3B794D2021190D948977C7D4DCA241CDE7E655106515E2D3E73EBDFB + D65616C815C7C0DE6EAF2E17A30504A7D75346700553B38B0815976CB8B14C1C + C4BD3E2AAE415B7B17B776BF741EDE6E17616A6A82B6975D282AAFE7F2278F3B + 407C376C09E03948D0FD3A2A175CC5C4AC6113F00CE34339338B83FBF7A1302B + 018410DDDE2D4106BEF50F608799191A8A7374F9D8BC461690564B99040F8CCF + A80D0264E797A2FBDD07F02203D8333FA6CB8F8D4F228297C61ED13C0ED8D9A2 + 283B51B7C7D3020253ABA95CE8899F4A3522EF956EB871812870D5BDEF83C348 + 93C8303034C24D4410158C53CE8E7F01D2069080942A16E08531E5824113F837 + 7ABFF6215DCA70C7A27D16C2FD3D70EEECE96535715A80BF5841E5226F8C4E1B + 0F30AD9C41746226C62726616EBE13F1512170387A78451D5F5A0FE2975CF907 + A046747AD9869BE52504ACC87574BD41BE5CC1AD85B111707238A2F7BD7C691D + 886FD2532A4FF2C18F29E34DE055570F0A8A15ECDDB7844C9ABAEC462C8D7869 + 2D888FA89C05F862C48800ED4F7CF7DBF7B067AFE4217BBB55EB04D21A90EBC2 + 3216E0C7017859E56B7EF803BEFF9A3523A36350D4B5C0DADA127E9EAE303531 + 5905500DE29D584AE5C97E189E34DE0498F25A74747673EB98C860383B39E8AD + 4BE0008212CA88FD316444C0C7DE2F28642A6063630541CC4DEE59D017424915 + 8857BC9C0504B20095D100EB0DA14401E2C96728931284C189CD0788249520D7 + E26454C6018CFB4DB89E489254FC066C7AE725B1F57FCBB701FF3DE017BD2357 + 7AE39004FA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation has some error' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D44944415478DACD976B4C1C + 5514C7CF9DC7B2C23E90A53C5B0A2DA8314D93624D91871A5F35E5A3240A468C + 89F2680405FD62FC20A6317EA95469228231464C202A7EA4B13536B5400BB6B5 + C63446535A08CF05CB023B0B2E3B3B733D17777176676677850F7892C966CFDC + B9FFDF3DF7DE73CF259452D84923FF1B004248DCC61FDB6C8FF0841CA3401FC2 + D6FBD095197A358FBDDC26402E2B949E39EEF3FD18AFAF4DDD78006D005C963D + E54542B8B7ED84ECCFE43848C5B6C9F82485DAACE3B386FD2CE333AFAA20517A + 8B52F53DB7B4FA057EAF6E19E0B4D55A208A62AF932325453C0F2E144FC41611 + E2A6A2C08A4A476459AE69F2FBC7FF3340A7CDF6284748FF7D02EFDA83E25BB1 + 2984F83DA82CAA945635FA7C17120660E21602E70EE2F0D3121CB59979301ABF + 6218640A4F34F87C17E302745AADF99C285E3D240AAEBBB7291EB62584B82E07 + 1755593EDCE8F74F9802B4E182CB76D84771BE0FE76AC2CEA7A581EDC9A7409E + 9A84B54B97628A25979682B8270F7CDF9F03C5E3D9F4CFE074E0BA189DF34AA5 + A8A31A0274DAEDAFE082EB2E168408F1FC8B832064656DFC5FF9B207E65B5B21 + 3A7FB0EF33DBDBC1F942EDC6FFA0DB0D130F5744405C0B064152E9CB0D92F499 + 0EE05DDC6738FA3F0EF27CA153137AE7335590D3D51521B6D2DB0B73AF358316 + 3EFBA30E70D6D444B49BADAF87956FFBFFFD8EAD074519ABF74A453A806E87A3 + 3C99C0E021518C0CE99112281818D0857A1921661182590E8AA74689331BAFAC + 84B5D19108DF7559C69C0115755EEF5034C0C93C9E7B63B7C196CB3E71025C8D + C775FE95BE3EC0AC08A9D57AF1259CAA9996169D7F1AD7C2A4A27E80006F4603 + 0CDF2FF0A50E93959F8310E9061046B684D199D64C91D6BC380DBF058343755E + A9220AC03E83E1CF11639C09B908B12B0E8407C5A74CC49905D0FF8B2CCF2240 + 6E3480F2A0C51277E3EFEDE880B49AE78DC5FB7A61B2D95C3C6C570201150178 + 1DC003A2181380ADF6BD1DA7C165B0E0FE01E88389A657E3025C936543809903 + 82603A054C3C1FC5D34DC4C37607A760A2B9C9144246FF8D60503F055D0EC7E5 + 22812FB1190030F18204C4B510E326103EF48D192F42C7C92CDC861906BB60DF + A90F21A3B656E7FF1385185C7A75B5EEDD424F0FDC6E795DEFC75DE036D986E5 + 564C44859A34CCCC5152020706CEE83B42F15B384A66FB313A1906D1B951790C + BC23918908470F7EA344144EC505988A9335D3B0ABAA0AEEE9EAD6898F6942CC + A250680071B3A10116BEF97AF3FF2AB69FC0548C07D2BDEF60C91401103E8C30 + 1D771768A220E261543C380496D061E4C6D08EB5B6181E4685EDA7202B345501 + 3C8C7EAE28075973188DE3E8310DD7354AD2A7318E63DB954CC2156B6B010691 + 76F428AC4F4EC2F2F030C4B2D4B23248CACB03CFD9B311E2AC2698A7F42A8EFE + 489BD971CC2C5C90ECE639577202957222C60AD669458D5F90840D4BB2C70402 + DF65F3BC78D73621FEC2FEE714450E52781AEBC2F3617FDCA2F4939494C709C7 + 7D95CE1197738BA5193BFFEFA87491AAEAB30DABAB3F68DF255C965B2C427F12 + 9062569C5A138C861FFB64C56800E0A7F580FCDC96CAF2B0B56D5C4CEC2FE1EB + B72CB8E5372E24F8B0B2850F7D83B72190F1771D7FD97CA3305E4CE07DB7247D + DEB69D8B49344886CD56C1AE66D8B20C0B917C7467875ECF69AF660B3EDFA099 + B029C04ED98E03FC0DC31AC2DFB4F6CBDC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation needs user interaction 2' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004F54944415478DAED96794C54 + 5714C6BF07828022D225D15636051411ABA9315DD2AAB1B4165A05150564C705 + A5B2381118CA2E8AB80C20556066947D1006294B444B6DD454AB15E21625B61A + 6A098A084501D966065EEF7D531F8C341A9BA07F94EF9F977BDE77CFF9CD9973 + EF0CC3B22C5EA79831803180CDFB2B5F2B0113B0AF82CD102C8742F5EA3982D3 + AAC06CDA53CE666E5F813EE5E04B6DB677DD0A7393A990EC8DFCCF0021A90460 + 6372199B15E68C5EC5CB017CEEA60610EF897CA18FAAA6287DC43A24B502CC86 + DDC75871F84A74F7BF1CC0327735406672E40B7D542765E923D6A1A9E560D627 + 95B2928855E8EA1BD0D8A854AAD0D6FE180AA5126FBF690C037D3D8DF70EEB82 + 60366D2A329285181C1C444B6B3B0C0CF4606438F15F41A89FAABAF0001FDB46 + 01FC77C959897035BA7AD500F79A1FE2C8D10AD45DAB874A350435CBD21C01DE + 2EB0B230E1D68E1E6A80558E4B7158568E8EAE275CDCCAC2145B7C5D603DDD4C + 0380FAA98E170C07F81E8CDFCE12562A74410701E8E87C822D113BD1D3DB07C7 + CF3E812549D6AF50E0D2E51BB874E5068C261922E74002C6696BE36BCF208C1B + A78D818141D82FFA00736659A2F1DE03549C3C036D6D2D88E2043079770A5F8C + FAA9AAF2870004A9650420B1989544AEC1E31E158ACB7F80ACAC1AFEEECE58BE + 6CB1C6271026A6A1FEF706EC2389ADA69B6285573017F7757382D3974B785FED + D59B4814893177B635764404F2F1A7FE8ABC343EB69D02F82614B1D228573CEA + 56E15147271A9B9A31D3D2027AE3753500B2F2E438F1D33992F41BD8D958C1C9 + 3B1893264E404E7A22B4B4B434BC5B8549686A6E41C1A1244C30D0E762D44F55 + 9E3B0C20A5148C4FBC8C00B8A1BD5BC9BFE8E8ECC2ED8646DC6F69C583876D68 + B8DB843B7F3472C3161F1EC801ACF409E1DA9E40809E9528230FE77EBD8CDDD1 + A1B09EA19E05EAA72ACB49E57D6114C03BAE909546BBE3AF274AF4F52B70B8F0 + 18CE9EAFE58A51BD616C445A6EC6CDC7ADDB0D880B0BC41C02B0DA37041F2E98 + 0741A0CF0880ACDC12FC78E617DE4B45FD54A5D94300E12972305EB105FF00A8 + C8C6629C3A7B01736D67C2C96129A69B99F02D94E4CB5173FA3C62B7AB93BAF8 + 85C09674202E6C6407F61FCAC1C5BAAB10ED88E00791FAA9E44786039480F18C + C963A5311E68EB52C2275008A54A89ECF424E8EAEA68248DDF7310F5BFDD4194 + 6033ECC880ADF50F85219901714A82C60CD05FD700412C3949FDC8FE6E177762 + A8A89FAAF8700AEF8D482906E3119D4B003CD14A00FC8322D1D3D38B837BE3B8 + D63FD5C5BA6B48CBCC511F9D403F2C986F07B7F5EA846B9C1CE0FC953DEF2DAB + AA81BCE204EC177F0C3F8FD57CFCA9BF483A04204C390A665D540E01F0E2000A + E595385E731A6F919B6FD1470BA1A3A34386F12EAE5CAF878DF50CDCBC751B5E + AECE58B6F453B86F0885F164236E60E7D9D9C0C2741AF1FE89EB376F61DA3B53 + 102F0C81BEDE78BE18F553C924C3018AC0B87F9BCD4A63BDF0B05309D5C0002A + AB4FE1E70BB5686D6B8721B9566793C28E5F2C211D998CCC6C19990B53AC7176 + 8030611F997073CC9F6B0B79793539BEF73189F817BEFF1E5C48579EBDBA3D36 + 6EE39E0562111F8BE400844758499C375A3A95180D796D5217CECB128D584789 + 6460DC22A404C09700284605C03B40C03D7333F78F5847890AC1B8864B5849BC + 1F1E748C0EC0F3142D2A00B3364CCC8A3980D1F90A9EA71851BE1AE095571EA6 + D7FFB77C0CE07F0FF037E7232F89F0ABF7F90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Run-resume operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003854944415478DAC596CB6F1B + 451CC7BF9BE0C47112E7E1BC4A0825405B95025529A2082A4008F1D754945E28 + 2189E23E907A017A411C3822D43F20871E7B405C385570410D696CAF63123BF6 + AEF739B33B0F668D824AA364D78E9BFC562BED6366BE9F99DF6F7EBFD1A49438 + 4ED39E06D06E683DAD873CC4B3127D52730FC0FC9DDC6FEACBAC6AF64571C1F8 + F93800646AA0178C0A48217E81909F1516CD87470A901EE96B3DB38023244C42 + E27B4EF94A396F358E042033D68FA9C11934A90912FA08FD1688A15A2E9402E3 + C7C3C6472CC0E0441AA7C7CF22373009DD2AA0E294C14206EA3208C61F0A812B + A5AF8C5F9F19C0F074062F8F9E6A0144463941C9DA80498C6825409D10828B9F + 38270BE5257FB3EB00D9138378313B8FB1F4F8FFFED941139BB60EC2480B82BA + A1AB0979BB1018DF2AB7045D03187D6108B3437318E91FDBDB595D75BF861DBF + 8A50B985346914236B52C8ABC545E37E5700C64E0E633A7302C37DD97D076182 + A14E6A6A552C05C0E019042214AB9C896BFA7273FD5000B9F92C72E9490CA686 + 626713C54783D611300A6205F04D4225C7774160DCAAE4E1750430F1EA0846D5 + F2A77B33897CAA698017BAB043ABB55BDCBA8A113BD495D4F5C28271AF6D80C9 + 33A3184A6515407F22805D53B9131E735590FA2DB738DB7EB46B1E7089CFCB8B + C6EF8901A6CF8E63E0B90C523DA9B600768D2B1F10EE83AB38F14C0ABBEAA94F + F2078DCAE542DE346301665ECF29F13EF46ABD1D013C09C26408CE389CAA0F6F + C7D71118A73756243910E0F9F313E851555953D7BF3ED63A021052B4EEA8A658 + 9BCA3516FDA3408DB7E48A640702CC5E983CD4CC774DE506585B2E9C9AEF0A2E + 6FAA3A72374A58B12E987B7BEAD0E25E83C02C3BD1ECF7A4EC588093EFCC742C + 1C78218C920D62D37D8B562CC02BEFCEB52DAC8A131A7A13E6966DA8210F2CDB + B10067DE9B4F2C1CD586E6B6835AA92E7928121D5C6201CE5D3E9548DCB309FE + 5EAF8238A4ADA35B2CC0F90F5E3B708028DD561E6FA3516D56D4686D1F5E6301 + 2E7EF4E6BE1DABE51D548A5BA1AA7CDFB881F1752D0FA71DF14400973EBEB8A7 + 53B361A1F04887EFF9F75566BB5A5EB6D6DA154E0CF0FE2797FE7BA784E2F1A3 + 22EADB8D7595D4AE95968CD54E8513037CF8E96508B5894B1BBABACBBEE4E2A6 + CAE1770B799076C53A0278E3C239ACFDF9177C9FDC0BB976BDB2D4D0BB219C08 + E0A53BE3AB9AD4A6A4145F1617CD07DD144E0470D476EC00FF009C70E4DF76E0 + 0FDD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Cancel operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002C74944415478DAEDD6416B13 + 411880E199D90DDA64B3A9874A95AAA1E841A1622BDEC48327513CF42408A5C5 + 43EABFB0FE0AAD0751845E738A782EDEC4564450504AD5A2620F9A4D3655B233 + E3F76D76C2B2DDD99D04B11E3A97866677DE27ED4C76A89492ECE5A0FB80FF0E + 40290D7F2E11C28E94CB0F0925B352C8EBB7DBEDD541265E2E972FC2BD0D2249 + FD6BAB750BE613F8FB5DBD3440147F34C6E85CD5B2C87A10F85D21AF9A22306E + 53F26CDAB64B9B9C936D219F00620111B980BB94F6E3E76C3B04FD1482AC1922 + 547C06E2A38C859FF85510F41177A414998007AE8BF1791557C30471DF712E15 + 187DAAE26AC4108F6B9EB7900DA8B8CD0BB6ED1E8A4D6082D0C5D5F801F7BE08 + 02AFD6F42A3980D2354BB2FAF942A1309A810824B9B2D86A3D3789E33D2FBBDD + 2EA762B6D6F41B9900FCB32FBB456304DCCF4CE38B5EA761B40BC2C504080688 + 19405452266EC2C4F07FF5F135AC9792EE9A35888B28AED68311208E9806849B + 12F0446F41EBDE5B4FC40706C411676D3B15913630FE3A0876C58702C4115380 + 28E7205A107FC3B9CF09BF918C0F0D8823CE642030FE16E241C677C5D0807B8E + 7319BFE14E03C0D100DA0078879F3EB645FF0A00F7B90D5BED9465951C0DB08F + 80F9DE67200606A8F849889772E26AF830E7070D6220808A4F42BC9812EF44F7 + EADEDB4841180354BC9A11DF80AD86AF27615DE8AED94C208C0018B7207E02E2 + 232913EFE0C41097B0CF7B93B07A1510BA6B3F024244885C003CCFC3F831C6B4 + F14F9C8771B5CF718B22E2B86569119F85F0396C4F40AC6602F0713CC1989B36 + D12FB8762B11EFC323C404200E6A105B42183C8EE14052A4647E1CF67A7C4162 + FC8B269E441C4D20B0F10DBE233A92E41F48D4910C10736311E2374E90134F22 + C6017100EEC5F9B77B71B32359FC503A02087C007D378C27118701810FA69D28 + BE6472284D3B9613C26F9AC6E30842AC95818FE5FF7AEC03F61CF007B5A8A2DF + 467EC58F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Move operation up' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002A64944415478DA63FCFFFF3F + C34002467C0E606464C4ADD3A1814541466F2F88F9E0C9256786030D7F7029C5 + 6B07B90E50885D57282A2ADE0762BF7AFD32E7E1E2A0A97473804CE82A21564E + B67BF6F60EFC20ED070F1E7CFFE7C74F9527ABC3DED1C501F231EBA7C92B2864 + 6A696983F9D7AE5D6578F8F0FE546028E4D0DC0172D1ABB4D8D8B82ED9DA3930 + B3B2B282C57EFFFECD70F8D081BFDFBFFDD27ABA32E8164D1DA010BB7E97BA86 + B6AB8CAC1C8AF893C78F186EDEB8BAF3C1E2400F9A39402E7A9D0F0F0FEF6633 + 0B6B0C399039274F1C61F8F2F993C7E365213BA9EF0060B69397D5BFAEA76FA2 + 2228248C55FDFB776F192E5F3C73EBC1E38BDAC8D9922A0E00653B0121D13E1D + 3D23067CE0CAA5734087BC46C996143B0092ED58EFE99B58F3737272E175C0F7 + 6FDF182E9C3906CC96BFE0D992620780B29D84946CA682B23A0331E0C1DD9B0C + 2F9E3F82674B8A1C00CA762CAC9C97F48DAD995958588872C09F3F7F182E9E3D + FAF7E7F7DFE06C49910340D94E5641DD5554429A28CB61E0F58BA70C8F1FDC04 + 674BB21D000C7A1F4E2EEECD1ABAA6F82B262C0064EE8DCBA719BE7DFDECF168 + 69F04E5CEAF03A40316EE37505355D0D5E3E41922C8781CF9FDE33DCBF75E9CA + 834501BA643940216EC331A0BF2DB1C9691BDBA1F0AF9E3D842328180EDC5F1C + E048960370053B305DFCD730B44511BB71FE300330BEB16AA07A6D0872809A9E + 358AD8AD4B47E9EB00656D7314B1BB574FD2D7010AEAA845F2839BE7E8EB0039 + 153D14B147772ED1D701D28A9A28624FEF5FA7AF0324645551C45E3CBE4D5F07 + 884A29A288BD7E769FBE0E10129341117BF7EA097D1D20202C8122F6E1ED0BFA + 3A80971FB559F6F9E35BFA3A808B871F45ECDB978FF475003B07378AD8CF1F5F + E9E880980DC7813A2D502C616038F67071A03536F5643B801E00000D3FD1D021 + 5E15D90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Move operation down' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002B34944415478DA63FCFFFF3F + C34002467C0E606464C42A2E1FBBFE2850C60A590C68CA91878B036DB1A9C76B + 07390E50885DFF9F9D831B45ECE78FAF0C0F160762D540130770F1F0A3887DFB + F291BE0EE0E5174611FBFCF12D7D1D20202C8122F6E1ED0BFA3A40484C0645EC + DDAB27F47580A894228AD8EB67F7E9EB0009595514B1178F6FD3D701D28A9A28 + 624FEF5FA7AF03E454F450C41EDDB9445F0728A81BA1883DB8798EBE0E50D636 + 4711BB7BF5247D1DA0A6678D2276EBD251FA3A40C310B5DEB971FE30F51DA010 + B7E130D0441B6C72DAC67628FCAB670F61350368FABE078B029CC9728062DCC6 + EB0A6ABA1ABC7C820CE480CF9FDE33DCBF75E90AD001BA6439403E66BD0F2717 + F7660D5D539CD1810B80CCBD71F934C3B7AF9F3D1E2D0DDE499603409602E37B + 97AC82BAABA88434490E78FDE229C3E307377702D385074589502E7A95160B2B + E7257D636B66161616A22CFFF3E70FC3C5B347FFFEFCFE5BEBE9CAA05B14E702 + 60544C939092CD54505627CA010FEEDE6478F1FCD1D4878B837260D141910364 + 425709B172B2DED337B1E6E7E4E4C26BF9F76FDF182E9C39F6FECF8F5F2A4F56 + 87BDA38A03404021765DA18090689F8E9E11033E70E5D23986F7EF5EE7007D3F + 1526469D82C8A181455E56FFBA9EBE898AA0903056F5EFDFBD65B87CF1CCAD07 + 8F2F6A331C68F8435D0700815CF43A1F6E1E9ECDE61636187220734E9E38C2F0 + E5F3278FC7CB4276A2CB51C50190A858BF4B5D43DB5546560E45FCC9E3470C37 + 6F5C05673B743D547500285BB2B1715DB2B57360666565058BFDFEFD9BE1F0A1 + 037FFFFCF8A1F36079C80D9A3A000440D9525E4121534B4B1BCCBF76ED2AC3C3 + 87F7E1D98EE60E80644BB67BF6F60EFC20ED070F1E0466BB9FF06C4773078000 + 285B8A8A8AF781D8AF5EBF44C976747100285B2AC8E81F031AFFFDC1934BCEC8 + D98E6A0EA00700000427D2D08F4872580000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle queued operation list' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003604944415478DAC5966B4853 + 6118C79FE5B43633958AEA4BD1E7FC64F629282842D4858836BCCCE6352D15F1 + EE5C9B4331CD6AAB9CE99C5996CE7B6665970F2A8209518A606A049A8929919A + 3A6FE9B6B7E3CC35F51CCE7B36C1E7CBCB796FCF8FFFF971382C8410EC64B1CC + 01582C16D6A1D8FB6FB0A9898D1D684AEBF140C69F33CD99F7B40420E66E3352 + C67BE23487EAD67EE8E81DEE84E979F77508AB01AEC95FA1C2042FC0797B1D7D + A3303E3907EDDD839D33B3D31E9532C1ACD500D1775EA0A2C48BA033D0137CFF + 39036304C0F8A4165ABB067B8976E75449BC09AB00A26E3D47C5C9DEB0AC4350 + D8F889725F8C8F1B180C7AF84100182126B4D0D2F5B54F95E4ED820DC044B8E3 + 479C21DCCB15ECD836A6B981914968EB19019DDE607C1E1A1E0555AA8FA9112D + 0013E1AA08E1BABE8CC241C7BDB0F9AA532E47616169059A5ABB419DEE8B0F60 + 8970C3635310C673DB90C46A6917972153D50CA5223F7C004B85EBE8F906FB1D + B9B0EBDF9DB1974E1BC764C5337828E6E3035823DCE7A17188E79FD9B02F4551 + 0F65127F7280B882B7D8C21D3BEC0491BC93B4C21D7276584BC0FFAC714C55D4 + C16369203940ECBDD7D8C2D5B4F5C3C7010AE14E10C2FD59134E24BC005C2EC7 + B496A6A88572591039408CA2D922E1841EAEC0D96DBB617D5D38277B3B60B36D + 212EF0BC715E24AF812759C1E40057E52FB75DB8941077E072FE2790A1A8828A + 6C213940F4EDA66D176E1FC70E6CD86C8813B81BE7C40A0D54E684920344E537 + 22E22B058B2B06DA0470854B0AF12412D8633A27916B40931B460E1099D7804A + D27D0981F4A06CF8402F02D00B9718E2B50140AAA880AABC08728088DC7AA44E + F703ED921EABF97AAD0B77C0D1DEF86C2E5C42280F3866003202A0FA66243940 + 784E2D5267F061665107CABAF758CDCD854BDD249C88104EB7BCBCE50C254058 + 7635528BFD617A41C72881D55A15CED981BB968099709A1B615B3EAF943F2421 + 591A0220007E1300CAEA76BC046884ABCA0BC70710CA2A91FA7A204CCD334F80 + 4A38F3B869012E4B9FA212A90026E756A040D382D5984EB89AFC2BF800024939 + 2A91041300CC13A0128E114090F81152498530A12512A8788797008D70644509 + 10282A43C59942F84500302D2AE1180104A497A22269A8450054C23102F04F53 + A3420B01A884630CC0B8B359590DB013B5E3007F01FBF68EDFB1EB93BD000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Paste' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003EF4944415478DAD5D76D4C13 + 771C07F0EF69F1CDE20BE3ABCDC4C565F1CD125F6C6FE614DDE6D4288F2D5011 + 51C008329C9BC309A90E285B167589D444454AD108018456C1C4642FDCCC1E44 + 1DC9145C612805C102F2D04285F65ADA2BBDFD39AD51B9FFF5A8B8C55FD25C7A + FD3D7CF2BBBBA665789E473018868154BC9794B460F91B4B8B49D6F6E9F7A4B2 + B293B516B79B4C3ECC32827399D9005469FB8F8241DEF39DF06343E5B1FCFF04 + A04CDF3F4032DEE2038814F2E7E11AA97ED878EED892570A50EEC85D4E3E5393 + CC2292A220E52B9F54DC24E57E52554CFA181BAB4A3A5F0A5096BAEC3A03E6A3 + 1793AF44A86435DDC035884C4253766D4FA42C803EF51D7EFD9684193D0E34F0 + A838AE951CBE6B9F56003C5B7FF7762BFA2CDDC8AEE999B15A49C0E880E5B9E4 + 23CDEF4293BB5B1270B8442F00DE5FBDE2E9B9BEEE01D80647E70620F712BC12 + 40B8F1FA02ECFDD24F53954FFA7E98197C13FFC8BDA954AB7685047CA656C1DE + 470778580F4C11FB70EAEB283C534A1F4D5ED5BF98D1DC66BD8109F7C620820E + 4852C166BD2709302EF80AA77363E00FC81090B8DAF200F671164DAD3D37469D + 9E8D2682A002D6252961EB0D05F81265DFC4C1E79707E8B0DA31E460617FC4E2 + 5A4BD75F3CEBDEA42FDA6A17057C9AA8C4486F071DE09E8449B117FA3C253C5C + 0065976E490ECF8EFF00E32E0F861DEE270817FEB8653193FA15E28084780CF7 + D0019304608CD88BF27C1558EF94AC0DB4768FE0F29F5DE0FC8FF39D8EB1E97A + 461CA08AC7D0FD7F2401F5115FC0A04984D33385D38DCDB2105364CEE2450B31 + E69C44F77D2B2A3489E2804F547118EC920078C806147B6038A8C6B8C72F6B78 + 30026496A5DF01C385DF70E6905A1CF0B13216839676098097007250F16D321C + AC1FA517AFCB06E424AC128E07741770B6209902888FC5C3CE366A13EFA41775 + 8ACF092005632C37AB0D04234F67C2B9C21471C0DAB8580CDC334B02EAA70105 + 291875910D187F97BF01F55AE198AF33A252BB8D02888D41FFDD50806C5414A6 + C2E60A6F039A927A547DB75D1CB026261AFD1D7FD3015E1FB904BB0960076C4E + 0EA7EAAECA1EBC2779DD6380EE3CAABF4F13074412405FFB1D6A139F00C882A1 + 280D2313E16DE090AE16353F645000D1D1B0B6B5D2013E02989F85726D3A8627 + 7C28ADB9227B70CEB60DC2B1A0A416B587775200515178600E01506442AFCDC0 + F078781B28D455E3FC915DE280D59B37A3D7DC422DE67C9C00282BDA8921B201 + 43DDCFB2076726AF178E5A02A83B9A290E58350DB8739B0EE038F2559C85D242 + B28130EF81E2E3128037DF5E8A099B8D5A1C0804F0D3E25C9C2CC8109E823906 + 2CBB494E7D18AAC1AF4B34384100F6B90684FA6F188C2D79E5F27E89488428E0 + FF887F016566AFDF6F043A120000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle showing directory tree panel' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001D24944415478DA63FCFFFF3F + C340024690031A1B19998C58E40E02F936A8D2FFFFFDFFCF38D9BFF651012D2C + 07D90D76C0C61699102109A9D5863E3E280AFEFEF9CD7072CD9AFF5F3F7FB60E + AA7B7A9C660ED8DC2A7FD5D8DB518B5F5C0443D19B47CF182EED398ACB8C237E + 358F6CA9E180FF76C156241B7068ED3106A00318A9E200720DA19A037C2BCF90 + 6CC0E67613EA39C035A787E1F78F3B600946065880FC876224F67F06B8D8FEB9 + F3A8E880AC06863F3F1FA05888700836C73030EC9BBB8C8A0EC82866F8FBFB29 + 9A2FFFE30D91BDF3D653D10169290CFFFEBCC6E95B788820396ECFFC1D547440 + 4A28C3FFBF9F1818B0FA165B88FC67D83DFF00F51C60E5AE072C787F61B1149D + 8D103BBEFB0EF51CE0995D42D04244FA80B0B74F9B482D07C87D06062C0F1906 + 7CF1AF7DCC4BB1031819C9F60445801807C0029C262EA48A031A1A18806D09D9 + FD402576685A09B625A812051B9AA5C96E4B50250436B5C891DD96F0AD7E684B + 0D0790DD96003A8091E2280039805CBDC43880A81020B72D41350740DA127719 + 50AB70C26D09AA4501B96D095243002B1BEC0032DB12D47300465B02D3426C6D + 09EA4501996D09AA3980DCB604D51C406E5B824A0E9025AB2D0174C417DFEA47 + BC8C03DD3D07004700FCD0330A66320000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Create new file and open it in editor' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006A34944415478DAC596795053 + 5714877F212402B2AB58055141AC561D75985A95D69622DA7117ADD6A5D5BAA0 + 88D6A51DAD4B106DEB820BA2A00657DC457129B6EE8A56A515B741A3C6882005 + 622090ED65E191E4F6BECC14B504439CCE78F247266FEE7DDF9773CE3DEFF108 + 21E082C7E3C1D9183D5F9C35A26F784CD6F93B4B0FAF895DEEEC7E8ECD7B5B81 + C1B1628F8E1F34A95CF5DD08B7C59B8E1B9F96C8438EAC897FF1D602DFA7E710 + 67369B0C7A44770DC4D0C86E903D57E097DD172A4D26E34A9E9574F5F274EF41 + EFDB5EAD37F4C84A9A7EABC102EB623F437D168B534F804FB364AAAE8150E80A + BE8B0BE68C8B82153CF87BBBE396A40866B3156D839AC2BBB11BE6AEC92C945D + 7ED63E2727D1EC948095D857D87DF2065ABDE78FE89E1D6BAFD5506095D600A1 + 800FF7460258AD041E6E026CCBFA03E76F3EEC772469FA79A74AC00998ADA49E + C540CAFE0BF8343C0CDD3B0443ABAFB65DE75A87C77DE8B71B9550546A20129F + 5679360B0CDE1C1FC9FCBB3FD5D3B3938087B374E90DB996199F08B07605584B + FDADC0D658B02EE32CA60C8F4080BF37FD6DB635AF4D82FBA66B72F39FE1CABD + 2268ADC2FB94FE79FAB44825076FCC77B9FAD10761FE55749DE4BE345BAED38D + 5C4A085B2B304F7C99AC9F1689EA1AEB1B9B6FEFA95CF4E8DC061DDA34870BED + 839719E0D1F259A1D219B137FB4F9879AE9033E4BEE5F8565197BFCEEEEAD329 + CCCFAF433B581415903E94415A519915ABD58DAC1598BBF522499E1E05E31B04 + 4ACB55C83C9387F8D19FD25A0B6DFD2214B8DAFEB9566FA2F266B0AC054696A5 + 3D930B2F2F0FE45FBF447A8606F3620A6E805F268759A184AAE4057219A68C0A + 04D60ACCD97C816C98D1177AB67E81B5BB4E2326AA3BFC7D3C6030B1B0D072F9 + 7A7BC087767D418912E77225E08E119FEF826AD68C7B8F8B101DDE1ABDC33BA3 + E459114244B361282E459E4E5FA527A44FBC4E27A915989D7A8EA4CCEC07A6DA + 6217FE849EF59DC7AEA065335F6818137C3CDDA15433183BA007BC3CDC70F5F6 + 13F8F97A51BA104AC553347DB1052D5A0742D06222DC7D02F1BCA41C4F6FDE84 + E7EA25AA6A8BE593990C2379AD09676D3A4336CDFA025AA37D01EEFC179656A0 + 79131F9A81C6B66B9282525CC97B84C80FDFC7215A9A855306C3CA14E1C9E929 + E83D2206668D14923C2964BC1966BDD5DBF5E2C51C26E05EDEC094BC4B57EB1C + C39929BF93D4D903A036D817A82F36EE3B8790A026282AABC2A4FE6D5070762A + 7A0D1F02BEA58A0E0A258C9A0A3C79A844F2A588BB2A43CDD7D919C912BB7320 + 3EF937923677205406B35302F20A3592769CC2A8C85078152C42AF6103C1079D + 11355A584C4AB03A39FECC2954EB35ECC743128A25AFEE7D4D206E7D36D9326F + 302AF5CE0970F1BC201F4CDE1CF41EDA9F8E6B5750322C8632985445B87E4D01 + 56ADEAFC5F781D81E96B4F92AD3F0C8592714EC0582543D1F969E835B82FF8AE + 3EF4AE569875CF61543EC2BDDB55C8D64EC6DAF971761FB5AF094C4B3A4EC4F3 + 87A35C5BE314BCF8621C8547C255F81EBDA300ACF6290C8A3BC8BFAB42EBFEBB + B122538AF405318E05A6AECA22E90B4640D140010EFEF7A538440CEA03BE5B28 + 1D871E34D552E84BAF23FFBE1AC1D13BE1EE1F06D1965FB17DE148C70253561E + 25E93F8EA402AC43B8C9068F47C4C008F01B77A1705FB0550FA02BBE8007120D + 82FB6D871B857321DAFC2B762CFAD2B1C0E45F328978E12887021CBCD406EF09 + BE574F3A780250ADBC03EDB35378F84883A057E05C24A49DC0CE25A31D0B4CFA + E910112F1A8D179AFA4B6052C920BFCCC13F04DF3B0A1004C154FE1734B2A378 + 2CD5A065F436B8F985BDB66769DA31EC4A18E35860E2F203247DD1182A603F03 + 35260605C76721A0B91ADD06CDA7F0109814D7A17AB407529996C2D329BC5D9D + 7D096959C8583ACEB1C084C4FD44BC786CBD02A5B74F41489BCCD3538746FECD + 10D0B225348F33202BD4A14594188DECC06D19483D8A3DCBC63B16F826612FD9 + 2A1A67B704C46246F199350869DB167E4D9A81D12A51FA381DDC4B51F337C0B9 + 48DC9889BD3F7DE35860BC288388977C6D37038579A711C89723B0551B68D54A + 18745A54945D835FC49237C26D19D87418FB7F9EE85860DCE25D340313EA0810 + 3AD9E246F5C3BCC9C3D029D8170C630069DA118D5A858327F080A348DC781007 + 564C722C3076E14EB22561429D125C39B11BEB92372288BE11AFFC79397C423F + 025CF80EC1FFC6B2940338B86AB26381313F6E279B4513EB4CC243A9CBD0AA6D + 287A0F184BDFFB5C1A0C7E29B01F87564F752CF0D5826D244DF42DCA750D7F16 + 344860C33E1C4E8A6D98C0FF4A7E251A24F0AEE29D0BFC03F653C4EED90539C0 + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Duplicate' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000049E4944415478DAC5967B5054 + 6518C69FC3EEC2CA94525363E384E4944D2356F607FD2153132A1733626CD428 + 638448E5625A402179838094C60B22EC721947A7A48C9CD2B432C011C116A919 + A25D6105474D98B82D03ECEED91B7BF93AE7ACECECBA17CE2ECDF8CEEC7C3BE7 + 9CF7797FDF7BBEEFF90E4508C1830C8A05C8AD6DF197E2AAD182D592EC187A36 + C5D9DA0E80435B5E039F66B08F34B4F6E2CFDE6199D142E26703E10660B5F16B + 448B7C00135A13DA9583B3827003305BF90128FBC7A0521BEC103DFF5EA32924 + D66E8D190B1820A7E63239BC350646B30D79928B3E930E662560526BC0A85ACF + 418C6B8D0CC4A04247D32B6AF312FD8270007C2CBD448E64AE847ECAC62B3144 + 08A8269D203446C8BA07BACBB3562D0D0860475523399A1D07DA64C5CEEADF7C + 261DC888C7DD11355A150350EB4C8EEB43AA49546C8BA70202F8B0E22239B63D + 011A83957732BB5E07541A0EC6C6683475F4A272C7EAC000B2CB7F21551FBD8E + 49BD05BBEB1A677E057342FDA9C38647DF7000641D3E4FAA721231A1B3F0522B + ADBF8AFFC3371C001907CF11496E12C61980C2E3DE3B10A52F87104628C3B6A1 + 2473839FBEC1EC16E5900B840360CB973F1269DE5A8CD1669F427F543C83C8E8 + 455074A8109D5C8B79E1CB7901387C83667D63504674C6C4233909E30E80CDFB + CF1069FE3AA8B466949E6CF22A14AFCD445CDACB181F364071E526162DCFC7D1 + 8E277C16BFDF37D84EC8EEF9464DEE1B631C407A690391EE5CCF01F88ACECAC5 + 1C008108069D155D4DD731377C0D9E8B2B061524F29AE7CD3718EF59CA01A415 + 9F26D5056F63546346D9D7CD33768005002582C51284EED61EF40D84E2AF3919 + 98A21E76CB617DE3CEB01A6D8C6F68F4AEBEC1780FC501A416D513E967EF7000 + BE422E7DD605C03E0A71ABF336866EA911F9660D1E9AFFBCC75C76BDF6339ED1 + CF78C7B46F30DE63073851FC2A798CBACB6B41B901303FC2FC57FD3302799B1C + 5D82F730227CC96BFEE7E9B1A00D5328ABBF02C67BEC00E74B22C89A14A19330 + F3D210CC094F17E0469799BB02B0A3768286BCB10D8F2FD98485D139CC35EFC6 + B8BBE6574872129D01048C60B013002B1CEC5440E874DF33003B4E996CE86E6E + 45AF6A3EE4E25458A91097C285E9717680EA9F519D97743F002B1CEC042072EA + 84D0E9BEF74EB1F7884D803ED93568D4622C59FFBDC70EECA9BE80DA4FD77A02 + F034B3602700D18C9DB2D984E86BEFC08D3E1AEDA1052E8577A5C672E35EC939 + D415ACE30BE0690D78EE949939D2AF5F6A031147E2A9D8430812793EB8F6569D + C5F15D1B6603E0FE1C3DA9E716618F291A7D21491E17617ECAAA7B003FE0C49E + 643BC0859288DF996DCACBD8E3D2A2BC6CC35128650A2C78653FE63D9D30A3CE + BECA3338B96FA31D80A2F87D47FC54BC90B8030871BBEB0E945D23E814674023 + 88F0A991BB71A51DE05803BE2A4A991DC0B415D3860578325E0281F8515E3A6C + 14567C8753259B020730EA99C3A8B91B37342FA047FC2E6C10F0D2D89EBC821B + 8B8E7E83FA2FDE0F0C607C580F45CB4DCC5DF609C2225378CFDA398ACAEBF1ED + 810FFC07888C8EC0DFB211BCF8561D4C61510115B7039CC2E9B2CDFE02845FA6 + 40859DD5652FA36D8F045C7C3A1C000F32FE03D8731EEE9F866BF30000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Open online documentation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005BD4944415478DACD577B6C53 + 6514FFDDB6F7F6B5AE2D6BD956D6752F1E610EE23082733823511245D87440DC + 988420044D34441431C40851FE3042FC47902886B85764846D44824A66344C79 + 4C05993CB357B775DDA32BEDBAB6EB7ADB5EBFDB2AD2D75AF00F3C4993D3EF7E + E79CDF77CEF9CE391FC5711C1E2451FF1B00144525DC9C5D7DE2718140B09AB0 + 4B39500514382DBF4E780BE1BB097BD1CF51A706EBCBDB13E9BA633731803D82 + 9C0D8B36920DBB18897C9E429506A95C0946228548C40477F87C5EB0D31EB89D + 764CDAAD98F6B87A88E27DC6FACEAF887CE0BE01E8D636653362E69858265FA6 + D5E542AE5025E556D7A41D16731FA6DDAE0B1CE5ADEAAF5BD777CF00B25F6A2E + A568AA355D979FA6D2EA10096FCAE520277523E0F7432814419A920A462CFDD7 + 00F9D92D668C9A7BAC540095C6FA8A9F9206A0AF3AF1848816B5CDC95D48CB52 + 94118627313AD805EFF454D4C965292AA4EB0B4033E23B6B6EE704CCC69B6CC0 + E77BE66E107101F06EA7A5F4A5ACDCC2B448E3BCB2A1DEEBC89C254179891E0B + 0D4AA8521858EC1E74DCB2E274C710DCAC00FA82228868264CCED477CD4A79F1 + 88F1EB0AE30C0048C2D52C3EA7C9CC59AA4ACB888A99F1D625BCB232073B2A17 + 821646E78CCDE9C59B877FC7E5210ADACC9CB06F76EB08C6878D178D75574AF8 + C48C09C050D3B2592C911FC9CA7F282AE67C62AD290A60D7FAC23B6BC6711F6C + AE00F2668BA0940A826BAC9F43E587E7E192E4861F80FC4C3D57E1713BB70E34 + BCF0453C005D3AC38202A93C35EA74B4CF8E93EF2C80980E193AD8E640F36FCE + 202F6504D85B9E8A2579B2E0FF339746F1D1197F940E3E7FCCFD37BAFBEBAECC + E7B8F70361000C552DA562B9AC3D2BAF10B16845A114BB57A705F93E0B8BCD47 + 46C3C29323B3E0E8F6E2E0FF61DB34AA0F5B62EA31F55EC3B4CBBDBCBFB1E2E7 + 3000392FB7EE576B743B549ACC9882A5F364F8A03204E0C0B7369CBA1C3A7D20 + 10C098A907AB96A8F0F1961000B3DD87EA43C331F5F0B960B30C1D30D696BF15 + 09A03D533FB754224B413C5A5128875C2CC037C4382FC71B1F21575223075AF7 + 9441AB0C5DBFA68B0E7CD6668BA983E4004606BA2FF4D5AD792C1C404DEB5056 + 7EA14E24A2912C59868D98931A40EDCE1264A825C1B55E129E6D5F9AE1F5C56E + 727E1FCB8761ACAFB63C3DD203FEEC824582247A5290BCA4F6CBD9611C7F6F39 + D429A13B6F24C6DFA83563C2ED9F5176A0AB1304001505409F5F9434000F693C + B5AFCFC5027DE8C65C3579B0B371044E8F3FA1EC60F79F31009010902BA8138A + 444901583487C2C12DF9417EE8B6179B0E9B30E50D2494F3FB7D18EEBF191D82 + DC9A93E7353AC332B144961480E78A9578774D50070E9D1947E32FB79392E31B + 18A9881D04C0D2C810EC4F55CFDEA150A625A568BE4E822FB61A82B7A1FAD33E + 98AC6C5272931356386C63D1D7902F448C54D2AED5E524A5882FCD52CE013E67 + 1CAC04CA59B39392B3988DC40B5365A41C9F0D0340517B05860D8BBBD2D2F579 + FCB4938858D738B63FAF874242E39393BD98A6350965F8167E7B74D0481A527E + 5429E67B417675F31662FC730222A1B2579FD662E393A1539FBD3E819D0DA684 + 32D6D141783D53F19B11DF8E0D358B7F55A834C591B34024BDB632031BCBB421 + 00371C78BBAE7FC6FDFC4CE0B45B3A8D759D0FC76DC73C656D682A10524C875A + 93A1BE7BC48A24B958886D04844222C4A1EF873136113F0979D7DBC6476C7ECE + FBA8A97E1D3F3DCF3C92196A9A9F22E3F777A9AA74325D4912BA7626E22BA6C3 + 3EC6FA59DFB3038D2FB6FDB39E7828AD6E594109A8E329A96AB554A6B82FE353 + EE49381D361B17E0D60E3454FC70F7B7A4C672FDFA967C0183269A668AF98193 + 6692F306EB0DBD117C5EEF1F7E169583C72A7A22F7DCD3C38424E626C2EC269D + 329711CB8203275FB2050261704720E0275DCE071FEB252E7793870ACBBF03F6 + 91C9E7E87F7A984401A92A2A23565751A04A8824DF08B47F7FB480A37A3870E7 + 88BAD3030D577E8C67382E8007450F1CC05FF369EEDFA56827D4000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Check for updates - display results' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000089F4944415478DAC596697053 + D715C7FFEF3DEDD666D9C6D878DF8DF15276630C2140264C083069930E1D1248 + 09094D19D2E902D3F221CE302564F994D034D0348176689849094B590A94D536 + AB1D0126C6186C6C6C59B1852C6BB5F4F496DEF7E4450243E9E4439EA4B97AEF + DE77CFEFFECFB9E75C4A1445FC901725015014F5BD27AA01E844833A8F1114D9 + 142DAA0430039C28B6ACF7F91C0F8EDD6E30BC265202FB86DBF7B7EF053065FB + F3BA651F37648EEBF0AE058517750C93A2651828680A61D2EF09B12207D10A01 + 5FD87DBECF086490187FCFA0D36CF00606D9D73D5EF59303D4802ED7BE39174A + E1058AE166D374B878FAC926F5E4736DC8A51548D5A8A153A94029198040500A + 054486C6409843BB6B00BD1E9F8D087E9A185F31ABB418C72E5BF1BADB433D11 + C0C47736CCA795E256B52279AA96298299B2A0F2EB3FA0F08615E55A0D18628C + 27C6144A2518A542362E43C830D23D03E760106DBD0EFCA830176AF2CEC1B317 + FF3740D6AA1A8D3683DAA956587E6AD6CC869A4987CED08FAA436B5070EE2A12 + 88B16E8E879BBCCE9BC8EABD2C8C228D74931E99F1F1A0554330048022405044 + 60A4F6E0A9FAC70314FCE6C3444A211C35E98BA69A7533A1D3BB5190D38BAC13 + 75D07FFA47A8691AFEB24A6897AF8761762954A6010454B760BB7206DC8E3A8C + BBD88569D919D0EA34A3105130074ED43E06E0C51A5541BAE5BCC55C3EC51457 + 02B582C2E279B7909B3A88B6F25560BC03107FFC2614ABDF8E794D6B702239A3 + 19CEB0035D9FEC8665DB65CC2DC98752A3195979A4250047CF3C1A207FDD5F76 + 1A4D992B132D9311A7A6B170AA13D9F9CDA447847BDB01849D1C54EBD6835684 + E1ED4F81DF9D24BF674CE88121DE0EADDE85FBEFFD03F4AED398555220FB7C38 + 30234A30D87FE8E4D800996B3E9FA5D31AEAD332E640455EA89EE44761E92550 + 343F3226E04980BDBD02B9152711F49BD1D95C253F9F90DF488CF763F083DD60 + 769F43E5C402A8B4EA18C3C301BAFFC0F1B101B2577F792135A36CA65E9F8CA9 + 93EC2829BD0A9AE1E4BEBECE120403F164A536F47696A160CA61386D85B86F2B + 96FB2D29AD501FDF03C3475F605A512ED915AA11C92341380441FE1F397CEA61 + 80CC157B27AB75EAC6ACC29930EAC258B4F808711B3B02D7DAB004E3B3ADB0B5 + 5681268AA4E45D82AD658EDC276574A5D60B83F500CCBBB680E239F03CD9964C + 98E421011C59032784A1F673FD342F8429508D6B3C9EE71E00D8FFBE2579C2EF + C6A566A3A8B815C5E5176262C3EF1E8F38D377707697A1B7BDF2A19D63496D22 + 01E745425A937C1FF4C78363B5509ADAD1E31471EA5A03593DF7C1E515873644 + A0C5D85A90F9F2BEFAF4DCD25971063366CC3D8E84E4BB0F1911459254BACBD1 + 7BA79A2436F90BB99C89913639B71686C4BBB0DFA94438A801CBAA5052F5257C + BC1747EB3B10E243750D2BF7578F0DB0629F2DB7647AAA4AADC1D479C497167B + 8C71B7230FEE9E52781C85A064E34304432E90E69A507218839E240CF4E592F2 + C422A7E22034712E70A42AD45E71C3E175F434FEFC9F13C604C87A799F58505E + 45EE694CAADA0B97BD10C6C46E22ED4DB86C65E86959049A7CA4E1344D217AF3 + 4AAB17C85C69791741EBEF429FD016D513B91AAC22BA9CF7D0B8660FF52805C2 + 8515B315D2E42595FBD0D1F42C84B001A9F9E771FF6EB56C94216329D2D2D2E2 + A3768F348FA4423C01CEA9F80A5EDEF390FB2E5FD1C1D6DFCA35AEDDAD7C8402 + FB3B73264ECB5093CCA5D5065038732F5ACFBF4A768240D62D45B464989241A4 + 5676033524BF34A1202237AF19C9D9B57071FD6085500CC0D95A259C9EEE7BDF + ACDB99F9A8203C919E33698131DE426A3A8DF8E40E70410B78F2938C33E41943 + 0F010C41442BC0138005734E835577C215BE2F07DE683F8D234714080AF6FF58 + D77FB63006E01DE274735C5CD2DFE76F7D4B9992FBFBD4F43C923328A9922231 + FD3A3CB6298094CF75A621905815240504D90522963E730C2EBE0FFD04C0CDB9 + 46003CCE0C1C3B739BB82FB4E9EAAFFFBC25066087D1705DAD5197C644D470F0 + 0CFDE779016D2F6D415FF56B328004380C21480082202B3073F21528CD37D1EB + 1FC4ADA62A9852AD3026B5E2F6D56A585B4F92434AB8B8E9B7DB5A62014C4671 + D90B8B20A52B91D477628DB452EA8AB48364B2FAE6560C6E5E8E7BD91BD0EF4A + 197187D40AC4302701F091D660EA81D399883047C138DE8AC4AC0B38F3EF020C + 84EA0EDFD8F4E1E268B78D022C7D26CA281F81212083FE806CDCF9AB4A6856CE + 43BCC2827E7B05BEBD551651415620E27F8E1746DB2198C4ECD370395271B5F5 + B818123C135B6BDE6D191B60F17CD970F4CA03BE006A6FB4A0EBAD5740BFA285 + 8E8983893143472590445304AF2F11BD8E64B0410A693B568357C5A17DC547B2 + BB3821E23695B11B2D77BEC540B0694BCBE69A4DB159350A60E9B34F450CF3A3 + 001C1BC6F9E6DB68AE7809C2FBF9D018EDD03306F9A7657450516AF4DECB807F + E3E718D7B00F3E732AAC9BAF1115869510D1D97B0E2EFF8D7FB56C0D2C23275B + E1D1000BAB47A58F72011B6461EDEC4647420684B5696067A441956481F63B52 + 25CF39206CBF8809FDDD24F1F0685AFD57DC2F7F5E36CE8659B477D56120D0B6 + 7720E85AE5F8A4C6F7705D890258F2F4ACC8CAC3E4444FA48B8691D4E8F378D1 + E5F6C21D62498211E433A1999C845368069D2C8B1B4FFF021D4B6A64BFF7F675 + A2DBDEC473BCFBDDDB7FEA79FBC1958F0D306786ECF34B376F23675C2239D91A + 64058683323A3622AEE2E12330D78241DC9AFE3334CCDF8801773F1C0E9BC88B + 81AFC34C7063D78E556D78CC1503B0604A29EAAFDF14032CB789ECAE657AB56A + 7A4EBC09492401A9A4C1C36A10859CC42DF6500877480C9C2DFA89E79BECF9DD + 64C84DB221EAD870706FCF9EE55D78822B0AC0E0D72A95DA41967DF50DAF7F97 + D4B9DDA87B8EA4CFD5244D3FA561E87825A990BC282028B987D4154114BEE2BD + FE4F7F09F89EC4D86301B6EBF5526E16D6FAFD271F1C54434E72293A5D124F51 + 494485802314BA479EB1FFB7B5C701FC90D77F01F978A2FD1F46C5B600000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Check for updates - automatic disabled' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000089E4944415478DAC5970950D4 + D71DC7BFFFBDEF85DDC5E5BEE510040609A27865AA3636C6A6384C6B6B3CAA4E + 331D27B6626852A60DA9193506D369DADAC4DA8ACE3471824427AD57AAC57A5F + 141445581141D85D97650F167759F6F8FFFBF6BFB0B21CD6693B9337BC79FFFF + BEF7FFFD3EEF77BD07C5300CBECE460500288AFA7FC8E27C67CDD6749AA152C0 + A505E4DDEE71FADA4ED6FDD63C7E61D99A8A8D0CC578BEA8DD73E87F0298F5C9 + 2B92E85B094902A7E8750A54B952298F211D023E1FC31E0F4CA67EC6E3F534D1 + 3473C0CEB1ED3F575BEB2E5B5BF1FEB469EACA3EB3C5537FA046F8FC00D5E0E4 + 8B7FBC107CBA8CE2FAE6919E1D69140935FD0A14E5E521276B3A2288720E8722 + 9D034E4026E97AC3635CBDD90C5D47979EE86AD04ED3ACFED1DA726CAFF91804 + 807A2E8019EF567E83C367760979DA2231370B32BE16D2DEB38817F0F1AD250B + 211408E0F579211609C1E7F147209E82049EBB7B0CB870A511DF2B5B06A95482 + B7DEFDF03F0324AFAB168913A95A214FF5DD08D13C08B90990C8AD90F51D461C + 54488C8FC5DD7B3AF4592DE00868F88681A80835F2F3B2302B3F97B8821704A1 + 3813A02AABF73C1B20A3A24643F1E8934A59565184A40412D90032524DA03A6D + 78DC7283DD05C3976346E1022465AA21925BE014E8D0DA790FF7CF3920B645E0 + FBE5AF209275CB080045859EB7FDB2E61900E5D5828C04D5655544FE2CA53407 + 421E85E52FB6232D7608FBAA1A48EAF89190558C9CE26F867D262610DAC45658 + BC669C3F73078E6B226CDEF80348C522562935C62515BFF8606A80E99BFF58AB + 5026ADD5A80A211572B0A4C88294E9AD648641D3991E381D1CE42D2C0687E7C5 + A03506CE8128F63B85DA0079A41162990D578E77C0D4E2C1A635E59049C5135C + F1D3AADD9303246DFAF35C89587E293E7101043C1EE6E73A9139F31AA1F787D6 + B81C6A183B0B905670166E6704BA5B4BD9DFE3A63712E556349F7A80FE562F36 + 8E2A1F63FAD1E72D3FDF353940CA86CFAEC426E695C8645A14E51A9133B3191C + AE8F9DEBEBCE81DB154976AA87A93B0F19B38EC3A2CF44BF3E9B9D57C59080BC + 7F1BFDCD46AC2E5F4EB24214DA314505CD4F8DBC57BDF7D14480A4D5F5854289 + B03139B3040A8917CB969F008FE709C1E96EAE40744A13F4BA5222C48F98F46B + D0B72D60E702159D2F1E84CBD402637303F98106ED2729C9F5823CC147F6E0A3 + BDE078B95630949702D3587F60CFCBE3008EED5669E3DE9C169B82AC6C1DB2F3 + AF84C58673201A52E563587AF360EA9C33217354B12DE08B06A18E6F61DFDDCE + 48F83C62F0959D305818FCE3D64D9002F6C1F5D57FAB0C4233E16741D26B472F + 25A4CD9C2B954760F6C2AFA0D63E9CA08461B804201FA68EF9A4D2B17F608F33 + 26386AD32E40AE790863C71C78DD22783C02E4947E8627FE419CBCD48561FFF0 + C59B6B8FCD9F1C60F5517D5A4E71AC402842D18B87215719C3940F98D3316098 + 098739136CA51D2518714140565CCE710C39A260EF4B23C79307A9055F4224B5 + C1C7F870E1C600CC836643E30F8FC44D0A90FCDA512623BF940D98DCD27AD88C + 9950687A8969EFC1A6CF83A16D194828B1CAD9C01A6B19D269222B3EFD2A38B2 + 8790A91F8C9909B69B4D0C7A2C8FD0B8E930359505BC9905F37801E139738EA2 + ABE525D05E3962A75F46FFC3F9AC52EE6824B3670D35C6350C6B8548029C5A50 + 8741BF6382FBAEDF90406FD5F91A5FFF0B7F0A0B1CEB4E9DF142A290A48F58EC + 4266493D7497D7934CA0C9BEF9E072A9502563532A78E005CD1F104833484B6F + 8536E5026C3E2B3CF47018C03F2FF06171F43EFAD7E6DAA4A982F0EF09A9B98B + 15912A10332052DB059F5B053FE901E55CF21B3774A80421C65AC04F00162F68 + 8047D80D9BB79F0DBCA7F31C9C38C1839B369E697A63FF92F1009C15ABB644E9 + 38B3B748D4B16FC724A611008AEC1CD024B490C02B04975C32F87CF10848B815 + 0216A0591730F8F6D2D3B0F9FB602500033E5B08C06149C4E973F789FB86AB9A + B7FE61471840D9FA6DB71532E9CCB0741BCDAB91E6F5FAC04B5D0A61DC5C1680 + C77D0A410700689AB54049E10DF023EEC1E41C427B4B2994B14D5044E970BF79 + 3E9A7467C170BDD92DDB7ED71606B072FD36E6A39D6F1341A46611216C1F790E + F8D56A1FC0BE8375485AAA8097B712565B4CC81D8131B0CE1700F00747B9D200 + 8B45432E291414D14DD0245FC1B95319B00F5F3C7EA7AA66F958B785007EB3E3 + 2D76170153B2E30888D56EC7BE4347A09C3B84CCD22844F254B01A0B70B73D2F + 6805D60241FFFBFCF4D371044693D2009B3916CDBAAF9861DA314357BDB36D52 + 805FBF5739A29C098158AC76ECFDD361488BA391B0A80712AE144A6E0424949A + 149A2C0C3ED1C064D6627898036BF3A7A4380820C95E499493DA4FE4044681A2 + 176D1D776177B7EC68DB5E5D155E55C700ECD9FEE688E99F5A2070B3DD4F76FF + 1889C85AD50791C2001957CE76315702012584519F8AAB9F7782B2B763981142 + 31B7925861D4120CBA4DE76173DEF96BDB2ED7ABE4664B4F0950F3AB6DEC474C + C80D4110A7CB8D235F9E4697C58584C536C85328C8E56212D60258DA05E86870 + 23214A4A7C6E039DBC025C4D0E2B875CC7D1D9731176D7837ABBDBB6CEBCB7FA + C9C473650CC0EEEA0A56A99FF607D36A1C487B47176EDD6983E1711F865C43EC + 9D30267A1A32D353D074BB157DDC3408535E62FD6EEAEB46AFB1C5EFF30FECBC + FF7BC33BE3773E29C0AE77B6C262B3E3E0A7C7503ABB1079B959EC02361342D9 + 110ED567B6E2D4D9F3B0F29231A49E07BBDD02B359CFF819D7175EAEFB673DFB + D63DC0335A1840E51B1BF049EDE7CCC080A38A18E0556D94BAB8E40572ED4A49 + 8448280CC54620C21F3D32A055D7813BED5DD0D3490E331DD34BE4DD230971D1 + E375D71B0EAFEAC173B43100154EA54221B6DB07D71F3DB4E76060B26CED4F5E + 2661BD812C5924974B2303FF74048A9163F009896EFF75B2A4CEE6727F7CAE6E + EF93E751F64C0052099790913E76F0C3B3E3172D5AB488A78A2F88F2719828D0 + 1CD783E1DE4777EBEA3CFF8DC22901BECEF66F6989B7FD54FD2E680000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Toggle remote file link destination column' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006184944415478DAC5D6775054 + 471C07F0EF39A2A8443064C43819F347D099086A0C254A2278424044838518B1 + C412832045DAD08F8E14A5C3C161AFA368488C0358089D73041129821403486F + D2EEE01ABCBC7BE08D8408C7E94C76E6666EDEDB7DDFCFFE76DFDED10882C0FF + D96862805352F6FB2AF279221833ADE91C9901E1161B218B423C2639FB058A6A + 3AD83C11613453C404C0A88CCBF1F06923FA387C1456B7CF183101201A950D50 + 52D781D7833C0C0E0BF1A8B27546880900C1886C80A68E7EBCE6F02620468708 + 9328077A9F540047561611718C0EBE7094BAE876364BEAF090A374707902F492 + E112C49000ECCAD6722E87B329C9795BF7B40087C4BF88484B7D0C8F0366DAE6 + C9CDA282DF460C8811CF9BCAA3AC0C564F0BB067661051C70DC0158C01DC9332 + A40E0FB630406D4B2F328AEB312C104DB8D7D3C741B4F5F7B4690127E21E10D1 + 3686E0F04764AA80B80944237856D789969E41C9B527954D88B1359A00D0D435 + 5E4BC65E0441BBF0242F358A02D8C6DE23626D3763803706F060DD9719E2BA7F + 239ABA06201A19C5ADCC32C4D9194B001ABA5B56C9CD9E9DB56BE70EE5ACEC1C + 7476743950009BE83422EEC416F40DC95E81B79BF85D1AE60B71F27226E2ED4D + 686FC2E7C8C965D91DB750565DBE1CD9B90548BE75BB82025847A612F10E26E8 + 1D1A5B438F847499C34F5A194BBE7B9195643A6EA589C3E792E13E9ECECAEA2B + 5722EF5121226399DC51D1A82105B08AB84B24386E430F572473303573F259C5 + C52528AF780E0E8783B2C67EBC2A651BCD9937E77A00C345595F4F0719D90560 + 0486714784238645B9A96C0A6079FA0E91E86C8A6ECE18C0937977C6E1021E17 + 0D259958A2341FEBB435A0B870212A2A5F805D580817073BE87EAB8D67A515F0 + F20FE18AC6C3C5E328C0B1B0DF0996CB0E740E08659A795757375CDD3D606A62 + 84ADC686D4B557CD2DF0F60FC5817D7B285065651582C3A325337F3396025884 + A690809DE818077831EFCC68E67F17A6C3F29039F4E91BD0DCD20AD6B9CBA8AA + AEC5FEBDE6D0FCFA2BD4D6D6222E3109BC619159093BEDB7B7C75380A3C1B789 + 243733122098D9CCBBBBE1E1EE893DBBB653E12F6A6A11101201159525E44705 + C69B8DD0D0508F1B3793B176CD6AE416B09D8B73D3C327017E094A2658EEBB25 + 00465CCAB4E14272E6F5C50F25331787FB069D86939323149514E1EBE3074D4D + 2D1414E423C8D71D2DADED8861265D2CCA493B3C097024E006C1F2F809EDFDD2 + ED01F118171717E8EBAEA7D6BCBAF62535735B3B3B686868507DEAC8B2FB0486 + E2536505448505E2CFD4FB387BF16AFC93DC349B498043FED789240F7312305E + 81D8DB530206BA9AA038D289607F2FB4B6B5C38D1188859FAF8582F25204D89A + 517DAAABABE1E7E78F201F57AC50FD02AE8C00545655EF28CE4BFF6312E0A0EF + 3582E5B9570298AEC5C7C662CDCAE554E91DDDBCB1586529ACACAD212F2F4FDD + AF21C3438283E06063496EC235C8C96723223AB1A62897AB06648B26017EF6BE + 422432F64996C027FAC69480A6F21CB8DB1D8112B9D6764E1E5055554573C76B + 7CA6AE8B03265A087B2BBC883C9842C2637B86F8429DD2FCB49A7F3F8B02EC67 + 5C22585E07A4AE40526202167FFC11EE3DC884D94E53A8A9A9E3FCA52B505CB4 + 08A5254F27850B84427A716E5AF97F3D8B02ECF3BC4056E0A004E0137D7D4A40 + 7FDB4BF4BEAAC0096B0B68696AA0A4AC0291314C282C980F473B2BAC52FB920A + 3F159D88E1E1A1D5EF0A9700F6BA9F2712BC0F4AF516B434372138C00FF65687 + A93D50585C8680D008B8D85B439D0C16B7478F8BC03A7F050ACB349112E330FD + 1F1273B7B3049371487212BE3BBC1921817E384ABEFB26869B50F7B21EF6AE3E + D8461EC1EBB535D1DDD3833CF663F237A0064EAEEE389792871BA1BF4E0FD8E3 + 7A8688671C46E7E0BB01DD5D5D08F0F1C46E72CD0DF5F5D0D0D8481D3CDFE9D1 + A97B9D1DED5022F7809AFA6AD00D0C3077AE3CFCA2AEE26698857480A93A89F8 + 4368AB2A20C37F80DE061D3493953815190BC5656B305F4965CAAA4905A0D1A6 + EC032D5D936AD3EDA62B74D669A3ADBD0DCC8433421E8F4F1E2AA9A978CF261D + 40CF245D5D7DD5666D2D4D5CB97A4DC8E70B3E48B8D40035B58D0AF33E597077 + 1668DF8C8C123F7EA87071FB0701AD81018383A0AE0000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Suspend background-queued operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000017D4944415478DAEDD63B4BC3 + 5018C6F17392082AF55A3C917A696B515474103AF8215C14746BD1AF56371D5A + F003E8E8E020B4A0784B35549AA8A5A5E9C5DE8E674A939AF70C67B16032BEFC + 79CE6F0CA694A2BFFCB00FF0013C40249949618412AE2345D9FC773B8ECE8F5A + 837D3891067B7A76D8F27A830B882633466C6B9728CA887D7BCA5D23ABD3528D + D303F317389106FB626ADFF47AC307F8001F30FC80E87A9CC88E41EDFE860B80 + 7A61407875870D2AF6EDF5E116595D1800F5C280C5D83691E5FEA0FE9C45B56E + 1B0440BD302014D9700D16F2775C00D40B03D4A5353628DBB7A2FEC80540BD30 + 80845688E418340B2FA8D6EB8000A8170604E7978924F5073F8B6FA8CE0140BD + 3060666E810D4AF6ADF4F1CE0540BD30607256750D564A061BEC8200A8170604 + A682AEC16AF90BD5290C807A61C0F8C434C118DBB77AB5C20540BD3060742CE0 + 1A6C342CD4A03D1000F54200F6537AC1A6F69C37566B582F6FE6AF4E9A833DFB + 29057BEDF2B8E9F5C670FF96FB807F01F801B7C13CDF2E52D619000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Suspend all background-queued operations' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E74944415478DAC5D75B4814 + 511807F06FDE22290A0CA4082BC8C087301F7A29C1CCD44C4CBB97294AB29B97 + B455DB756F586888859997759D59974809224CC5325BD3B42CA81E4A7C1032F0 + 42546A96ED6E66BAAEA7B3638D3A4CE49C19F2BC1C3EF8CFF97E7CCC85A11042 + B09C8BF200B2994E5915D7947BA8A5E43CBD3940B12218E418468EA5931CE09E + 952E50573F2107B8DC08D4CC63A2C6571421EC9E6B250064D11D085F045333B3 + 9227A0C58092B321E2002A733B2A49D90B93D3B3A061DA881A172942D95D67ED + 80EBA9A1E20099A647A8346D1F4C4C499F80AEBA1DCAD2C3C40132CA6DA8EC5C + 38387FBA414BDB881A172AC3D95D6F6983F28C087180F4D2165491B91FEC936E + C913D033AD603A1F290E9056D28C4CAA03303E3103C6EA56A2C6F9C961EC6E60 + 6C509915250E9052DC84CCD9D1F0E5FB8CE40918E807509573501C4079B511D1 + 1762E0B3D30506F37DA2C60529517380AA6660D4B1E2008AA27A446B0EC1A8C3 + 25790246F33DB0E41E1607482EAC434CEE1118714C83B1B289A8717E6AF41C00 + 5F6FD51D15073873F90EA2B5C760C43E4DD43CB5F405F4F47F9D3F18E0D9506D + 6CD0C28C6F7C431756ED5E9819AC8909620149F9B711A33B0EC37617E455D68B + 0674F4AD806D01F3FDDE7677C160EDE2FB60537C03E267066A6228169078E916 + A2F5A730806C02C1AA16698084BC5A441BE2D8095CACA8130D78DAEF250D70DA + 781303E28927109AF3501A204E7F03998D09F826744181F9EEFF9FC049AD1503 + 12D9C7906445A86DE0B77D1757F7F53C1704F0331CE084C6824CC624187592BD + 88223536D8E2BF93ABFB7B5F0902F8994500A2CEBFD7CB4FEBC0D72F80AB87FA + BA0501FC0C07A0A825BDB8FEBA3C876FD8ECCFD51F067A0501FC8CAC009F8D5B + B97AF8FD3B41003F232BC0DBC797ABC786870401FC8CAC80B5DEEBB97A7CECA3 + 20809F9115B06A8D37573BBF8D0902F81959012BBD5673F58F098720809F910D + 803FB5AFF1093BFED4F8997E833FC781FFCAE0CF7120B5DCBFE7BF00BB9937DF + E8B34A660000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Resume all background-queued operations' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000044A4944415478DAC5967F4CD4 + 651CC7DFA764345104224470395AC3E56873C6C6A615298A59B39F2BCB623215 + 4214021538EE6E9E9362D090FC017877503A676DCDAC5CD6202FAC3FFAB5FE72 + 6DFEC1148E83E3E490FB7EEFE7F7F7D37357BB55207CBF776E7DFEF96CCFF379 + 3E9FD7F7FD7C9EE7F9EA0821F83F4D17013868BD764F298E573EA3531317A91D + 03E8A828C6BD10E390ED5AFC00B292384143EF0FF10388324183F5FBB80AB757 + 6C8CFAA6BE3800EA2D83842E022F29092BA0A7009DEF6CD40650D763279D559B + 101614345AAFC655B8ADA224EA9BFB06F1E1BE126D00B55DDF9113D59B11E413 + 57A0B9D78E93FBB76803A839D54F4E1E28859F93A1B7F4C755B8B5B234EA0DB6 + AB3855B3551BC0FE13DF92D3B5CF820DCB092B60B00EA0EBDD6DDA00AA3BAF90 + AEBAE7E00D4A30F50EC455F8D89E2D516FB4F6A3BBFE796D00551D9749CFC1ED + B813905417ECFAF97D488A88DD85754859B434366EB47C8333875ED00650F9C1 + 97C472F84578FC228C3D5FAB021850F662C17D3A24898B91AF7B1D7DFB5AFE02 + 387305D68697B40154B45D2296C69731E913552B50D4BD1CC9A98BA0C80A44DA + 3BEBB237A0F1E976583FF903B6A657B401EC69BD48AC4DAFE2B64F80A9FBB22A + 00BBAE12A90F2DC1EAF43518F2DE803F10848E5F885CA914B7F8B30F8C98C1A9 + 06D8FDDE67C4A27F0DB75941B5021B2CD948CB4EC5DAAC429A48C178C009976F + 0C1CFD088997871445AE1A35B0765500E5C73E25D6E61D70B3228E745F520530 + 98548D8CDC543C9651101BE3242E0AC2F81984E9C7D0ED392FF252BDCBEC9F9A + 1360D7D10BC462789302A857A0D8B6020FAE5A86BCA58FCE98F3092C26436E84 + 180E9C9F67157AC38F0A5E1BCC506605283B729E588C3BA30A984F5F5405F063 + 720D321F59869CC52BE96FCDCC9E53E8B630FC34D8208BE0140791937EA2FD5A + 3566F05E9F01F096E91C05785B9302251FE5202B3F1D19C99973C6898A00BFE8 + 43C01B42608A1E1789740882F7A8CB8C500C60A7E163D2632AA34D28A2A5E773 + D50A2C5F938194A4255480F94F1D2FF3F4B50DC1EF0E816305276DD272473363 + 8F02BCA1EFA300BBA2C750AD6D3D9B8BEC820C2C5A78BFEA350AA10228127C13 + 41043CDCEF23FA3B8551801D8D36D2652AC7A45FFD45B4ED5C2E72D666AA8E8F + 982CCA60C602E0186108B254366C607F890168CA44EDD7B426AC2CCC52151BA9 + 11980C831D0FF08A24B73804A69D9E0821D6036AF6F0BFB6AA359DE415E5CC1B + C70704788619EA45BB22CB954E137BF39F600901E4AFCFBBEB7CE48DF038A6C1 + 4CB01E2A6F9D43EFBD309B320901143CB97AD639C6E383EB969BC8BC6CA54237 + 8D9819E66E5B9310C0BAE2C7FF2D7798C7E8D0387CD3FEEB922CEF1D33FA7E9B + 2B47C200459B9E88257239DC700EBBC2547A33BD768FD3269BF7EF266180A736 + AF07E3653174E326C2C1D05782AC3BE0324E3BD5E64808E0E1D63479454EF682 + 8971B79340A975E8992FB4E64814E0B08EE8520461BA2D72AF6B4EF037C09FAA + D9DCDF78ABC9D30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Restore previous file selection' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003544944415478DAEDD65F4853 + 511C07F0EFCCBFF9DFE12435D196444A25650FA2523D18A5FD958270A04E9D66 + A5451451BA95F34F143E585696CB342D082A310DA47A900883B030AC1ECA86D5 + 4AA7A939FB5FBA75EED5CD8D5DEF3174F5E2EFE99C7BEECEEF737FF79C732730 + 180CF89F2198059803761C52FD13CDB51332C1A480DAE20C9B264FCEBBC80FB8 + 5C9C6E53404A5E153FA0A6C81270ABA51DEBA297C0C9D17E4600A9F91440B519 + 40AF3720F7F8552C5B341FB26DABD86BBD03C3686DEF845AD3C7B61998BBAB0B + 4283FC10152186BFAF172F404A05144E003ADFF5A244759B6D4B12A2F0A6BB1F + 0F9FBE06DFCE5911168C944DD104E5CC0D90530097CC00D79A1FE1EEC3E77F5D + 664F37171C94C6C35F645D8D341AA04A3901385C761D7D83C39C493C4812A6DC + 028100DD1F87A0FBFCCD0AA1C8DE022FF7B916D7D31514C045651ADBD6F6EB90 + 7FFAA6556207FB39906E8D45647808ECECC6E661A6E878A5415D632B86CC20CC + DAC991C459FC3E4371891FA02A1803DC697D861B77DB389F3E312E12EB63965A + 5D1FFEF21DC5954D18D47D99A8A26C231604FA9AFAB2A35304949089BA3E7CE4 + 043065CFDABE062BC283ADC65E76F5A0B4A6D9D45FBD7231241BA2A60EA83C36 + 06E8EE1BE25DEDA37A3D82E60939C7E4E537C916D5B1ED403F1F762D1823F318 + 0570611C309D505D6FC1E3175D6CDBD1C11EE579C9A6B12C1AE0FCD11900DC68 + C1937180DB5C67941E4C328DED2CA002A4D306282B1AC82BFCC4B6FD849E28D8 + 936806A8E607544C13A0E919200BB8D1D48F8A0845F2E618533F9B0638A7E006 + 8C8EEA718F9C8AB1918BE0EAE2C479CFCF5F233859D5841E723019637F6A3C16 + 92EF843176292980B31C80FE4F9F515D7F1F6FC8B614F97840B229C6625226DE + 92EF446DC30372804D240F0914E1405A82C57DBBA900B92580797265453D8B30 + 0F7F913702C816634E468D76802DBD7938393AE070E666F87ABB5B020A298033 + 72EB0ABCD70EE2545D33BEFFF835A575C024DF95B416E2F922ABB13D3440797E + 2AE7A483BAAFB8D2F8009D6FB5BCC9C5E4D52425444324F4E01CCF29AAE1079C + 9E04600CB5A6176D1D6AA8C97F051D39FB7F8F8C40E8E586E0001196930F5498 + 3880F7F7B954401E3F60BA915B4C019CB231602F0D5076C4B6807D2514804DB3 + 8FC7A480FF11B3803F3F4EE9D03F4F74260000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Disconnect once operation queue is completed' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000060F4944415478DAC597795013 + 571CC7BF9B4D022421884AD5996A8BD6630AC3500545ECA86D616C45A7D5D603 + 4544A9A2A07821E085566DEB09B6A272541D2FC403AC07A2331E63056A15142B + B14815A945C00AE1D84020D7EBCB0A546C281B75A6EF9FCDBEFDED7B9FFDBDCF + FBED862184E0FF6C8C1980611841C1F3BECF144C4B03B3889AFB64E79A899AD7 + 0610B62D83C42F182D64721CBE7417D9774A7250533FEABF20AC02088D3D4376 + 2CF2839055BB5A508A0AB506576E3EC8415D43BB105601CCD97A8AEC5A3C1606 + 53C7047F54D4E27195864270B89C77FFB689303E4911632B5F092064F38F2421 + E253E80C043B4EE4B61B1736CE0346931165959A6710551C2EE615A992223E73 + 150C608D70CE3D1C11EC37105231DBDAF7DBA32A5CCE7F0483D1C49F17979422 + 296AFCBF266A17C03AE154C82B7C0C2707055E1CCAD3A5171A9AF43875F91692 + A33F170E60AD704FA8700FCBD49839C6A34D26CC8DD3EAB03A3103BB974F100E + F0B2C265DD7E882E4A1944CD63CE9B308C3F46C4A563CFCA49C2015E45385571 + 39C2270E6F13B734EE38F6C6F85B0698BFFDDC6B17AE9BA3FDB30C4C1EC11F23 + E38E61DFEAA99601E67D7756B070A9B4C2E5169676285C74A00F6432BBD66B51 + 7147B1FFAB00CB006171198285CB5295A29CA6BA840A37C3CF033612CBC27592 + 4B21164B307FCA477CFFB2D82338B02ED032C0DCD8D3C2857B528B320A504ED7 + 3A2B9F0AE76059B8C8A05190D9FD938165718771687D906580395B4E0A16CE44 + 8533CBC643547228A0C22DB0209CD24E0A562CC6FC80517CDF8AB814A47C33D3 + 3240C8A6132431721CB47A5387196857383ACEA49E22741EE489650967B02468 + 34CD806DEB7DAB6253707843300F902097FB422492CDE1B8933CC0EC8DE92431 + 6A3C15C888F8B45F3A16016D858BF21F01D592503CBD781E4AB781C81C168005 + B3C6B70188893B88D48DB39844A5225CCCB2DB44AC98696A6A5CCA037CF9ED71 + 921CFD05B846A3A0C9DB08479FD6F5F42E742F2D84F7D041C8CF57A150DA053E + E9199029ED5B63D750800F1216AFB7914A57BEEFED81269D0ED9D9B9261E20F8 + EBA32479F944D46A0D883F962D68F216E1D685AF856BFA76F88EF482542A85D1 + 6044CE8D7CDCEBFC36EEF80682DFAB748EFE59E978E7411EBC07BB8342E0EAB5 + 9BE0384D220F30735D2A495E3119350D06AB32606ED11BF6C32D75339CD18841 + AEFDC1884430180CB89AFB2BEA349ADD155C7D6877A5628F522E9F3AD4DD0512 + 89183FDF2A80BAA62EAD9CD34CE40182D6A650007F545380F8D42BC232F05C85 + 5B30CE1B45E1C19016DFC3E077FB826559E8F47AFC744B453DD13D70B497F719 + E2D21F125684EB777FC793EA9A0BE5751ABF35808E0798BEE610495E3905EA7A + EB3360AE708B83FC60438C502D9C0D929B03CF7EBD21A54FAA6DD2A1F0CF32B8 + 39F7044B339377BF846EE19A6B468EF30D03F84F341E2030E600498A09409546 + 8FED2917054DFC7C855B34630CECA8F1843E756164181A2F9DC390DE6FC1562A + 698D2FA02025956A159D726408C7B57E9AF10001ABF691A455D32880F5193057 + 380335BAA5D9726A78A56E44DF4EF618D0CD89EFD3EAE8721497406724B3E772 + 5CF2F3F7F3005357EC258931D351C9D10C1C3C2F2C03162A5CBC42E1226170A1 + B7A343F7015D3BF3D7F546235D7B16950D5ADC785CA1A7E57E74687DFD853600 + 5396ED2109ABA7E32905B0B6B554B81DF676DE62884F0E705476756EDEFF65F5 + 0D50A96BE0F9461774B2B141393DBF5D554D4D33F884D669AFB502F847FF4076 + C5CC78290073851B11BFF0639615A5B92815F2379B5FC17F3536E166756D13FD + B9554457EABDCE0E8C138528A59928A8D554EA0919394FA351F10093A392C98E + 9704D8BC6A0BBC8E6CD2BB2BE4926EB4C0989B5A6FC00D8ED313C6342EA4AE21 + 23C15E365604519A1B8DE941638AB58D28D26A4BE90B65582B80D53337374555 + 39BC8E6E26EEB6B68C13FD4AAAA32FA9EB5A2DD13364DADCBAFA432D71090AC5 + 709188393B402A91F79248708F6ED112BDA1C8AA3F26EDB524A57C1A43987DFD + C462A6984AA73391F9211A4DFC8B7109329907C3B2997DC46C57F3674C91C150 + F15A00F8C1E5727F46C46CA55A6DA3FB7C537B713BED6DFAB38C3493BE1FE47A + 820FFF068D5E73AF5EED19090000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000047D4944415478DAC5D76B4C5B + 651807F07F1963D3E816266350C265462626FB60FCE43787865D8C0BCE807341 + 270B719B63306E196C5C44E7C42130B7415B6033B28548706EDC6F63938961E2 + 251A11583B270E22D01B85B6B4859EF6F5F47E0AD8F5ED3EF8246D4FDF9C739E + 5FDF9CFF7B7A788410FC9FC5B300783C1ED54159D5DFD2AABF3730D825488DD5 + 7207ADBD7D05941FDC066F26CFB24BE37762FC249E1E3030640717F1C80093D9 + BB89E8FB7D022ACD02EE8C4EBA211E1960347907181D57403EA77722B420F135 + 8762153E033245B748C5A158188C66E408BA3CEE5B76642766357AC8E67456C4 + 8CC6803B239343F35AEDCBD5D9AF297C0264087AC9D9F75F816ED1ECD5FE6BFC + 01F92C07A13660607862983DC7569F00E995DDE45CEA7668174CC813757BDCF7 + D3C33B30363D87FEA109A8750BCEF129F92CD873F07C021C3DD7492EA4EF845A + 6FF2FA18CBF53A2E9DC3B85CCD6E13DC1814833D870D905DD347956B834E87AA + 8C5731AB635050DB4385FF28250E5AFD22CED4DFB69CC305A0C9F5D1B3ADA8CA + DA0DD53C43D59C5B05D59D1064ED7607789BEBD48A1608B2E331C3028A2FD1CD + 4071CA761B40D40E514EBC3BC0DB5CA796374198B3070AADD1E7192814B5A1E6 + F81E1BC0B2B0D0E43AADEC1A84B909906B8C38FDE50DAAC6F9C971D6CF224133 + 6A4F24D80099C29B54B94EFBEC2A8479895680AF5554D5844BF96FDA00C7AA7A + A8729D56FA354427F642A636E2CC955EF48F1AD98CD3DD20D73F66C66FD56FD8 + 0069E7BBA8729D5EDA00E1C97D5680E5C2DD5FD28FC7374420326A33FCD825C5 + 8F7DB3AC2D7ED6177BCFF7E36CDBD79C6FAE3761ECF2EB3640EAE71D8426D7EA + 192584F949564079FD4DE8170906C40CC2A362BC46B8018E54B4129A5CA797D4 + 4358F00EA4EA45E7986CD680CCCA41AC0F8EF20A71ADA9D905385CD64C6872AD + 924E4350F82E0B30E27CC32DE738CD4C34357300074BAF139A5C677C52074151 + B215C0AD07522D72AB7F063FF259F0F961F6C62B235A5A5A5C80F74AAE129A5C + 2B26FF4155E101C838311C679B1F679B87466C41486818DB14D686FF85686D6B + 7501524E37129A5C6797D4B97DD733FE1851066273F4566C0AE5BB1A7B40B4B7 + 7300074E35106EAE696A6FDC8B48BB3088A0B068046F0A05CFDEE86188CE8E36 + 1720F9C37AE2C8354DFD3DADC5B1CA1FB181FF0C828243ECD3CB5B86904927C1 + 188D6E17665767BB0BB0FF832B849B6B6F4AA327F841624248640C823686D87F + 199621E4D229DC1D1D52B223F3D15B62221C889EEE0E17E0ED823AB234D70FAB + A48F6F232030124FB1CD9D17D7128442360589F80F25614C2F318C5913B036A0 + DF81E8EDE100924E7E4156CAB5A7FAE53E03FDAA8D087FFA39ACB2AF6E5CC48C + 5C8A3F25B6E6E35F250C5B8EE12736463810F724A32EC0BEBC8B64A55C7B2A86 + FDEF70EAF2AF10CBFC9621544A29FEBA37ECD6DC5156C49AD5BDE041C7029EB7 + 02DECAAD254B734D8390C85D0895528607F747566CEEAC6DC5FEE82B669C0F26 + 160055674E11C28344B50EE489703CB92E101363773D37773BD6C727A36595D8 + 1810B5767523BBF5829931EDF2A6B903F02FA84B16EEA2F48786000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Download file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D74944415478DAC5D56B4C53 + 671807F07F11863291103538E736E732B3B9E987ED8BD958001D9782C8401810 + 6460D8C08113B91890DB1893388C324569B938862124CC2C614EC5BB736AD065 + C93E8C21968BD072B117A057A0A53DE75D7B0EAD143AD3034B7C92E63D3D79CF + 797EE739EFF31E1E2104CF337816008FC7E3745176ED6F5CD5F7F426F0051901 + BAFF0D703CD51FCE14CF32E5DC1D11FE1449DBF526123C17B12800453B5788DB + 7F0F42A935E07ED7C83CC4A20046CA39409764140AF5940DA10389A84B0B185D + 3020ABE616A94C0B80DE48235770E599738FA58740A59D825C3DC920C6B57ADC + 7F38D231A1D36DABCB0D1F5D10E080E006F9FECBED989CA69D9AEFEE0A2854B3 + 101A3DDA3B073B4FA47FFCEE8200FB4F5F25273382A03350C8AFB9FACCB9DFED + 0D46BF548DBB1D83D04C1A6CE79F2854A8DA17CC5B1060DFC9CBE4D4FE1068A6 + 28A7AFB1AC57894C0D8942633E26B8FE8708A733F92C20A7EE36A7BEA6691A15 + 9FFB995F014151FD354EF8B29440E8A6A651D1FC3B0459614F015CFB5AA19AC4 + A7FEEFC0CDD58513C01A45B59721CCD9690FE0DAD783A35AF44964332CE7A234 + 258805D45C42EDC14FEC010BE96BB15C835D7E9BB0EC05574E1528AEB988FABC + 281660D95816D3D7ED9D43304E9B57B813EFB0303990194B04E771A620860564 + 096F2EBAAFBB87C6911CFA9EC3F9FD4A110EB6EDC6C6559B5116580B57173794 + 54FF8286A2581690597D8D535F8BCDED74C7DCD7EA09FBBEA64CA679F3B56418 + 0F0C87E1F9BA0BF49A696CF1F045795003CA8417D05812CF02BEAABAB2A0BE1E + 34F7F4804CC554DED2D7B9090176730694DDC8BC1805D7B5145E5CB51496C53A + F65883CD1E1FC2AD67079A4A935840C68936527D2014AA4913A7BEBE6B2882D7 + 0A1754F25BF0636B3766EF67D627F77EC39D494E139AF95911EEB20DF8CB74CF + 9D01A4575E20D5D9E1504E989C4E6E89F74FF9E0B5375F81414AE32D7D360A13 + E398F3625537B2DB7661F9AB6EF05CEDC16C5C2C806246029A41E846F5AD0C60 + EFB1F3449013817133A0F407E72B70692A11BE815B31343002698F0E1F2C2D81 + 097A3C983E8C351B57C06BB527A85989ADA3E59C4E316146A8250C20F5682B11 + E646625467E45481AD8235F00BF2656E3C281EC6C4B009065A8F95EB97C3DBC7 + 8B4D46DB27B78C2A8516CA1E03A64D93ECD7F08B233F13615E34145A23CA1BAF + 73AAC0B6103FF6C6348B58E2B6042B7DBC6DC9285B62F6BF52AEC68484C27A79 + 127E3D52CC2EC294F27344981FC300B8846FCD4B08E46FB77B3A8AD0F39E98A2 + D9714CA68454A4C6264D1A96513EF8E9682A0BD8F36D0BA939140BB9C6888AA6 + 1B9C2A10121634B3C8ACEF776EC9D96385740CFD5D923162E4F9494AC63BADF7 + 6000C9DF341361413C03E012FEF56B11B6836F97681EC28C933D91A3F761FFBC + E436C0675F37116161020338DE7C935305227686B365A7298708E988148FFEE9 + 7198DC06D85D7496088B1221336F955C22B0E1654445443A283B656B3F71BF04 + 7DA2C712F3B7EAA39152A5C42120A1A081088A93CC0023AA5A6E71AA404C64F4 + AC5673FC1A2C885E519F43040388CF3F430425C90C804BF01BD7212E2AF63F37 + 1BEB1AB08C030CA2771E8201C4E5D593EAE23D90736CC3D0B3EB90109D604BF4 + 1442CD41591162743FEAED151B946FA314263B00A7CC33D1E92984CE55CCF12A + D2317048B9C5AE02CF33FE0551172BB9810373900000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Enter and execute command of remote server' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002F04944415478DAB597FD4B53 + 6114C7BF9B382CCD99C3653653C7448B32C38A3241F2972233290331307A8108 + 95A028A1BF4010B48C0A7F5094B0A42884CA100443D235D46194A59269D3A573 + 63BAE9DCCBF5E5E9D9B5E98256DDE7AE2F5CCEB9CFC339E7739E73F7722510A8 + C4E296216A5284C605D0B084018014E6E504A5FA93971D60028856AA82023063 + 360A075025A5908CAC634101D077B5B101A41D381214800F3D6FD80076A46706 + 0560F0BD960D40B333232800239FF56C00099A5D7870A7021F0706D1F8E8295C + 2E3713806164800D206EBB06C91A35CAAE5C823C3212B5758DD0F5E805034C8E + 8FB001C4C4C6F37E88548A33A7F351545800ADAE0795557705E5B29826D800A2 + A295BC2F0B0DC5B9E2B328A010EDED1DA8AEB92728976DC6CC06101E21C79EB4 + DD28BF790D52891455B76BD0A7EF179A0A0B0E3B1B804C1686C74D8DE8D6EA50 + 57DF008FC723B8B8571CE7660380F0B0002290ECCBCE7D4BD3658949C379DCB0 + 4E1B996225FBB37349823A55541F86D1214CD18F1433802A311905259520C47B + 28FCC9F0D6FF7EC57FDDB747AFB6FA7218BF7D6102A0E10E1E202E5E8D5325D5 + AB8B7EC5BD5AF9E9F8AF2F2ED3480FC13CFD02FCF4FC06262746D1DBD9CAF460 + F000B17109C82FAD09D8BDD7CEB909EC2ED08BC0C591B50496B6EB304D1AC401 + 286355C82BBDCF57F3EF94A39D5AE609669DDEAEC96F134CBDBA0AB3C9280E40 + 11B31527CA6A7D73C1122D6C9A23B0B9C8DA280269BCA50456CB943880CD0A25 + 05A8E31F349B93D0AED767FF377D7D7619B356B3380079940247CB1A60A6859D + DCBF15F669B8F922EC36AB3880884D72A49F6FC2D28AB0E25E0D3C2C8663DE2E + 0E60637804F65E686689477F43119C0B0E710061611B907598ED7F5E57B7166E + B74B1C802C54263830E4D6106F972B52C12D7262008EBFA3E62053FB6B22BADE + CED7879800FEB4B9FAD3BB2EE398F05739C1007424A3D424797DEBF4F75FF614 + 5BB6F9DC317AE4EAFF054032734EFE3148DBF18279E6824E2090E85C0C7D9DAD + 89C100F801345F67E710FCBA8A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Clone current session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000026A4944415478DAB595CD6B13 + 4118C69F452C555BAA2CB6B546D206C41E1514EC0716BC08A62AE2C983A01E3C + A4C58388E05F2078103C081E948208BD580A62A42721DAC6420A5E145AC4C468 + 6C63626CD2A4D998341967D3266EBAF9DA79C7076667768677DEDFECBBCCA340 + 50274E39E7A06050345E1703661561801127B33BFA29F911F42F820460EB3D8C + 4BAEFB60AC789AE243EF6BBD97C7BCCD3CBD83D0D7CF34809E430E5C743DD8FC + 9C8664BA0A5B03E3FC46014866186FC0A7A9DB58FEEEA70174F7D87161EC61DD + D3AFF184098DF71A433ACBCAF1D1995B082F0769009DDD369C1B7B54CC663C69 + 360FFC4A31FC5E07727956357EE5D54D44C2211A80BAFF0046C71F63EBC0D8E0 + 89C36B0C718D954B514BDFA65D8845576800FBD44E0EF004BCB488A719A2C97F + B56FA42F2F6E603516A10174EC5571667C02119ED858DF66B434791D89788C06 + D0D6DE81A3579FF3BFDB5A725D1F9F5D412A99A001ECDED38663D72685E23F4C + 5C467A3D4503686DDD85E121B1DB7876CE8B4C46A301B4EC6CB11CB7E3EE62B1 + CFDFEB473697A5009C7D0F282745E337C5E695E323CE779C6298B60FBCBEB7EE + A1D2ABADEF48C55F190A2CD53CA822CBD5B802BCF5E983D8CF50C5BADA652B0D + 033E8FDB610268C6D50AC679985D4DD7E0E9F37541BD6F5E8203282600ABAE96 + E3576EEA4FA5ABF1E920DFD95EBF52082E78DCBD26002BAE96E0F7BC56C5D5B6 + 9FAC59298D5C2D9A64584D37763512800C572301C8703512800C572301C87035 + 12800C572301C8703512800C572300C871359FE7F5801040BD452BAE262AD386 + BC247E945DED47C59ADA75B03434B99A4C0026E26AFFE50BD452355713D55FC6 + BBD41ED0BC1A670000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Filter files in file panel' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004104944415478DAEDD47F50D3 + 651C07F0F708327E6DE462FCD82583262E993F4EBD32E5B8A33205B356679125 + 609E100CA7622017E4F5F3908D80905F933C323DAFB0EE5A426A263F0A05F390 + 28C74C58B218DB80D1F03CF93157AEEF779DDDEDF87EE1A9EEE63FBEEF9E7B6E + CF7D3F9FE7B5E7FB6C1CA7D3893B19CE5DC06D4064B2A6171CCCF7D0BE57FA0F + CB24EE80148D53BEE9498FEC5EFDE9195000CE348058BAD22300BDF63C332080 + 3BD723801BD76DCC80AB9FC83C02884AD53003F4879E757B3063671E7EBAA4FB + 5F9B2D59B410EA72A5DB9A78CB57CC80DE8FDD01AB9FD800D90BC9080B0E4228 + 3512E21F75AD1B8C66F419CC18B25E83C53AE69AF9415C08F83C081E08420835 + 5C333F08F1891B71AEA9C1AD6FF4AB2C805FEA9E713F01452E7A2E5F4154A488 + 1A11B86F8E0FE8C727A7EC9898B4637C929EA7A8CF0E787BDF037FDF3908F4F7 + 0337C01776FB14DADA7F40CCC30BA0AE2876EB2BD97A9C19A03BE80EA063191A + C6367936DE2AC8C35269347C7CBC31327A8DFAD663B08C8CFD3D5B6DD45F0807 + 0BA284108BC211E8EB0D454E016A2B4B11161A32ADE7C26D2C00ED47D30174EA + BFF812CDAD6751F46E0184A17C6A631B4CC33698877FC7E0D028CC43367003FD + 10337F1E24E20751565E89E5CB972169E3738CFDA4692C809F6B373016D0CF64 + 2A5E475CEC63D8FCA20C93F69B309AAD18A087690446CB282284022C9288306C + 3642D3780A351525E070388CFD16A7373003BA0F3003E8F4F71B909D9B8FC277 + DE4478683006A94D072CD67F204B2491889A274091AA14C545EF2192BA376C59 + FA1A0BA04BFD34664ADDA123D0EBAF429E96EA7AF7B737BF7E63028B2980EE52 + 1742C2C2B0754BF28C7D96653432033AAB6706381C0E64C877607DC25A0804C1 + AEA3A701F45187F303D0D2DA0A75F57EEAA2FACCD867859C0570A16A3D668B56 + DB837DAA12A4BEB2C975118DD46BE005F8E1C78B1DC8D9BD0B5269CCAC3D1EC9 + FA9A1970BE7276009DFD1555F4CDC4FD7305E8FBCD8C7B71135CAE3F7628B288 + EA576E6701B45724123530994C501629A90D15686CBA005D773BF2DFD8039128 + 82A87E95E20433E06C3919607C7C02E9E9695016BE8FFAC6365C3C771A353555 + E0F17844F5B13B5900DF7F4806A0F35252124A54FB5C808E9606D41F3B062F2F + 2FA2DAB85D2C8096B204624056662672B3B7E3F8994E74522770F8E851E2DAF8 + EC93CC80E65272C0DE827C6C4E7A1E4DED5AF47477A04A7D80B8F6F1DD2C806F + 3F5847DCA4ACA418EBE257A3ADB317865F752854AA886BD7E49C62069C2E2607 + D41DACC50AA9185D9707601E34207FEFDBC4B54FE5B2004EAAD61237F9AEA519 + 9ACF3F83E38F3FB12A360E2FA7A412D726ECF986197042490EA063360DE2D62D + 27C28542E25F009DC43C06802845A3A7561EFA5782FF1A27FAFA8FC8A2DD0077 + 2A77017F017BB73ADF01FBC2BE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Shut down once operation queue is completed' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000060C4944415478DAC597094C54 + 571486FF197690A2025240286AAD346D9AAA0836541137AC08754541D482C651 + C1922A0AB8A0561BD2AA201564AB181428822258B1B8804150316571A380C822 + B2C8CEF8067066DECCEB9D27A228CB434D7A9297F7E6DE73DFF9E6DCFF9C3BC3 + 631806FFA7F114003C1E8F93B3E7EF7F73A6258E394C2BF5DDB1BD4EA20F06E0 + 71248D09F19ACF2538FECCFC1737EE57DD447B87DD40104302D814788109FDC9 + 1E5C762DFB410D9EB68A9055507E13CF3AFB851812C086C3E799B02D0EA0E583 + 133C7E2A446D8B884050B896FFE8AE9CE1CD8EF476687E2F00C1C11426DCFB7B + 486806A1E7F2FAF5F3586401995C86BA66D10B88160A19F90F8B22BD177EC919 + 6028821B6338026BED27415559A967ACB8BA05D7EE548396C9D9CF15553588F4 + 59FC56A07E018626B822E497D4425F6718DE7CD5942F4CD12996E2FCB54244F9 + 2EE10E3054C13510C155D6B5C27D8145AF4C288CEA92604F441A8EEF58C61DE0 + 5D059773B712BA1F6982DFFD4ECF65D6ECDD3B2819D1BB967307781FC11555D4 + E347A7E9BDFCB6059DC1097FE7BE01361F4DFFE0823318A1FD22032B6CD8FBF6 + A024C4EC59D9378067F045CE824B201D2EAFA46650C1F9AE9E0D4D4D8D9E399F + A0449CDCE7DA378047501A67C1E514D5A09EA4BA8A08CECDDE026A2A7D0B6EB8 + 962A949555B0D965163BEE17781AA7F6AFEE1B6063E05FDC05D720441D01A827 + 7B9D7387084EE795E09C0C657892928CA2F42BD01693CE4B86D50D8C30C2C212 + 69621D84C604F40DB0E1502A67C1C989E0146263219A293C20825B67658AFC6D + 5EE8BA9903633E1FBAE4D2505161D77449A56891CB514B2E1123CF80582A1088 + C5E5BD0004BF9D6322B62F22CEF24133F0A6E01AB3333121E908CC25CFF189A6 + 267824B8BCAB0B46573300F25C37D396F553D2D5456563234A65B23612D25140 + 51393D00EB7F4D66227C161301C91072F6F6E042E8161C5559817A81132C6909 + 0C274D82FEF16808830241C5C6C2ACE9C5B953A5AF079571E36094918916EFAD + A84E4C443E4DB749C5124B0FB1F8110BB02EE00C13E5BB14D47319A7E02FEDF2 + 8279185598877163C7C2F0F215F0478E8430F808DA0E1CE805306CE952E88585 + 43A1F226777714A7A6A084A6B3049468060BB0F69744266A8713845D3442926E + 700ABEDC18F8678903BE555383D1F56CA8989BA33D2000ED8187D9F9D7011436 + 7CCB560CF7F30343B6A7D6720AB2AAAB41C9195B16C07D7F0213B57305DA3B69 + CEDF3E7FEB66A82525C07CCE1C189C4E84F8D62DD43B3AF4CCBF09A0B08F5352 + A16E6D8D67E1E128DCE187525A16CD02FCF0733C0170461B010849C8E204F079 + 980FBEAAAE82E9C143D0767343E32A5774A6A70F08A039772E46C5C5435A5686 + 87DF4CC50D89B4840558B3378E89DAE582D60EEE19B8686E0A1BA904C6C9C950 + 9F6E835A8BC9903E7E3CE01A6513138C2E28042316A3C2D8081952A9880558ED + 7F8A89F477458B488AA3F1199C003EDBEFCE0218C5C64163DE3CD44EB582B4BC + 7CC0358A6A30CEBD0D4644A1C2CCEC1580EBEE182672F72A02C03D03D7675AE1 + EB9A6A98ECDD878F3C3DD1E2E5052A3E6EC035DA2E2BA11B1C0CC9BD7B2823FD + 816CC1431660E5CE134C84FF1A34532403B1973801CC7C7011DAC9A7317EF264 + 185EB90ABAB2127536D3D926D497F135346094751DCA63C69032DD8FFB8181A4 + 14BB45E8E217CD84EF59832602C0D5DA6EE5A074D56258ABAA6254CC4968CE9F + 8FAE4B97D024580F794747EFE05A5AD08F8884869D1D64A41B2ACA30BBAD4D51 + 86B3580067DF3F98307FB7210128ACC0D9014677F260A6AF0F43D27A15229335 + 34808A8E86B8B090F5519B3811DAA4F9281918B0E26B58B41065B9B928A6E91C + D288A6B1002B7CA298D07700785E5D895CFB19B092D3D0D3D3837E7804D46D6D + FBF455945EF3A68D785A50803C9A1692566CD1D38A1500438AFC9AE9D457C222 + 354468AEA4A463A2A404754B4B683A3A42E5D3F1E0912E4993D2ECCACC4467DA + 053C9148502C930949C805BD0E23AE7F4CFAB363DA6A13F85089D2E6F3A79990 + 1370A4E238EE9E5348B2951CC54F14C7B15C9E258354B0891297BE5CFB41005E + 5A9896961D8FCF233FFE7936E4CDA3D9418657C380C962E4CCD98D1D1D6F95D8 + 7F3915882F311A04AD0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Stay idle once operation queue is completed' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004DA4944415478DAC5977B5054 + 551CC7BF2B48C3F24A09441D2D29D3B1A16612A964341566AC7C949A86CAA3B4 + C4122B8D7888808F9C462BA8C410D674CC324551B3B0A878A8AB8C91B2262B20 + EBB2C0022BB2BB2C7BD94576EF3DDDBD08892E70169DE9BB7FDCB967CFEF773E + E777BEE7DC7B458410FC9F12D90044221155E798AF7FA5A6E53B4A89CEF8F237 + 9B96300F0C60CD977924E383576806C78F85729CBB527B1EADEDB3FB837008E0 + BDB45FC8AE757340B36A67CBD5B8A163507CE9FA79B499FA84700860F5172749 + E6FA79B0720313D46A0C68D032D0E88C28BAA8B8CC11516876ECBC96FB0288FE + EC04D91DFB2A3AAD04BB8EFFDD67BF350B02C1722C1A5B982E08AD1185A5D7AE + 64C5BDF634358023861B37721856CE79162ECE4E3D6D15755A14C9EA606539E1 + 5EA952233B7EE13D03F509E088E10EF286BB54D9001F2F77DC9D6ACA536361BA + 65C1C9A232481216D103386A385B99554D7AAC981BD8AB123619CD9D48CDCAC3 + B71B16D3030CD670D2CB35F0F61463C8ED9C318B83856B6CFA31ECDDF8063DC0 + FD184EAE6CC2FB4BA6F7EAF771FA51EC4B596A1F60EDCEDF1EB8E1460CF3E8AA + 40D88BC2352EFD08F6A72EB70F10F3D529074EB8ABB858A91ED0700991A1108B + 5D7BFE8B4FCFC1779BC3ED03AC49CFA3369C54AE46135F6A55A3AE5FC33DECE6 + 0267E7A158BB2C44684F4C3B8C035B23ED03BC9BF633BDE16E18D0C80334F16B + 2D95F186F3FACF7041CF73F8BDFA04F2CB0B405C18D85A7DDC4622C06F0A9465 + 9EC8DBBCCD3EC0EACF7FA2361CC71BCE663601A2C58872DE708B5E1A8B4F0A3E + 82C2588E27FD2760B4DF68B889DD849876533B1A340DB8A6AC82DED05AC0B16C + 747DB2E17A2F80E81DC74956DC02982DDC8015B8DB70175545B822CA4440C004 + 4C1C3F919FB5FD639DF0BF2A45154A65A57AD6CACDAFDBA897F600ACDA7E8C64 + C52FE40DC42223F7C2C046B86DB8DA5625B65F88C0D4E029F0F3F5A38AD3346B + 502C2DD65B8825489DD8A61000DEFEF4289124BC0E63074B95A45B5139F301DF + 0E8CF77FC2A1B86AA502B2CB65A75589FA1902C0CA6D3944B261090C662B328E + 9CA34AF2C25411D6E547203464569F65EF4BB6E5F8B3A0100CD336530058B1F5 + 10912485A1D564A54EB2A5F043284432F88F1BE7D0E0DD52D6D4402EAFD82B00 + BCB9E5200FB0147A1E20E3D069AA0467B8248C09F081BBBBFBA000188681F44C + 49A50010B5E90722D9B80CBA76FA0ACCDAF3389E9B31194E4E4ED431778A6559 + 14FD7186110022530E90EC947068190B761E2CA04A70D2BC0A93A73F735F0067 + 0B4ABA00C293F793ECE4081E80BE02CB0F07E39149EE10BBB952C7DC2953BB19 + 6525FF5C13009627ED235929516831F215F83E9F2A81F9D17CC83929FCC6F80E + 0A4053DF8CDA6A7597099725EE25BB53A3709307A095ACE91C928A23302968FC + A0B6E1D5BFAAD161328508004B13F690CC94B71C02B069FDA905D079D4C29B7F + 4770445AFED5AD41A191D626EAA7090061F112B26B10008D4615A27343313A60 + 38C49E745E30B59951276F30583836B0E728B6013834F21D323AAB50E19569F0 + 79CCDBCB73845BBF0FA3B61BEDB8A9D21A580BE6F67A18D17E98F4A5515B3D26 + B8383B4B868A874EF3F015C3D5EB2138B9746D4FB69385D9700BC666132C26CB + D94EABF59DC664635577EC0301E8D6986DC3670F1191457C1166F2A947DD9E7B + 233FF922FED32CB73E4977CF16FB17D984EC4C70B7ED8D0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Find' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005FC4944415478DAC5D6795053 + 571407E05F08C8260222A0208B4BC5AD82202ED4B6A256AD4B5BDB5A15B55A45 + 4091C16D5A4571A9D3B1B55561402068B56A5DB048554A00D917014940446575 + A32CB2854048082431B78FE0446220043AB5E79F77E7E5E69C2FF79EFB5E6884 + 10FC9F41EB04EC0A4FFDB78ACC76093E0EF176E50F1870DC630E06A2E8FCCEB5 + B452B04A6BB3DA2564617F110A00E900B72321BF023C810839252FFA8D500048 + A40303DC7B5C87A6D676B40AC5C82EAAE9174201207A393040655D0B9AF8EDAF + 11C535B97C4296847BBA36AA05D8C94821273C5DD12196CA6EEE3993A276F11F + DD5D216817814B159723DA44C82AAA7920E0F3E786EF5EA6122103EC084B2227 + BDE641F80AD0DFD0D5D29015EE8EE0C910958F02BCE64FEE13B03D2491046C9D + 0F81A80BB0373C51EDE2473DE6A3BC9A8BD8EC12083BC4D0D2D6917FC669E623 + D0FB235A9F00DFE0DB2470DB02F03B5EAA5DF8A5548AE49474A4A466A0F06131 + 681A9A5436402C16C16C8425C64E7817426D0B046F5FDC37C027288E04F92C02 + AFBD0BE0C78857595CC06DC0B3FC24180C3680B9850D264E7586BEC1102A9B06 + 846D7C9414B051575D8186C65A88DA789FB0D262A35502B6053249B0EF6234B7 + F5BD029977B2713C300413EC6761D1D2C5B0B21C0E433D2DE868D240A3D12092 + 48C1134A505DC741427C3CF2B352089FD7B2939D1113D02BC0FB640C39B56309 + B86D92AE15088DEDB1785B4B239EE7DD86CBBC651835D11ED6A686707EC714BA + DA7485795A9A7470041254718488BA1987ECA45B84DFC25DC1CE605EEF11B0E5 + 443409DDB94CF6A5DE424AEDB9D7165F98DB4CC4BA0D6B606B6600233D3A5485 + 504CA8C774194A5819C84D8F6D6EE077D83CBE1BCB530278FD729384EDFE148D + FC2EC0BE10E52DE35495A383538165AB36C3CCD4080EA34C7A2D3CD4504F3E2E + 7CDA80A7D54DB875E51C2A9E141D62A7330F2B013C8FFD4918DF2E473D4FDC6B + 52FF838721D53284D7562F589BE84243656FBF8EDAA656340AE9B8111181CCE4 + 1BA5EC34E6782580C74F5114E073D4BD02EC0FB9A994A838E52A3E5BB715E623 + 2C30DECA586551EBE143E5E3CA3A2E34B4F591969183E888B3687D51639A9797 + DAA800703F1A49C2F77C4901443D261408DAB0D9D31B9BB6ED86B3C304E86B6B + A8F7F3A978FC77038C8C8DC12E2842E4853034D65539E565C4E72B0036FD708D + 30F67E2507F80747292491883B50959F80151B7D3048571F8375A963374813DA + 5A3D37E1C4D116B26BE7CB95F5A802B6D616282929C5A55F4351FFA2C6F9DE1D + 265B01B0F1C855C2F05B89DA96DE7BC0CD6D2DD6BAFB60CE6CE7D7FB479D7B9A + ECAA38B7F36F05915D09B20ACAE138690C7273F370E57C3838F51CABC2BBB155 + 0A800DDF5F26E17EAB29C0AB15088A54023CBF978829F64E983EFB43F4D57F2E + 53C7C9C79D801953C6E2ECF90824C75EAFCE4D8D1ED97DAE0CB0FED025C2D8E7 + 2607F414CC981824A664C277C70E8CB63257BB07B20ACA60636E84C0A0503C29 + 2E0864A533B72B01BE3E709184F9AF916FC1C1C0AB4A8988F425F5FC8FC7AC0F + 1662FAF469A0D37B6F4497A976F2F19DFC523C2A2CC46D669454CC155AB258CC + 5A25C05AFFF384B17F9DCA15E80C369B054618034B97AFC4174BE7425F575BE5 + FC0E910497A3E29114170DB36126A8AD6B884FB8716E911260CDBE73D40AAC97 + 030E065EEE3529B7BA1CA2E66ACC787F1E1CECA7405F474BD68CDD6396A31DF5 + 326A0633210329094CEAE88E878F973B427FFB03519157AEDDCF495EA90070DB + 7B96841E58AFF214740F566E0ECE9E0EC730732BD84D9884694E0E30361C0C0D + 3A1DBC163ED8F71FA2F8E103543D2F83ADAD0D7E3EE20733134344DC4CC4C58B + 175058C03A51FDAC6C971CB07ACF1912E2BF41FE24542704023EE262FEC2DD9C + 6CF0054268EBE8A2F3508A44EDD4DB9006472767943510B4561664BACC9C397B + A8913E1E149561E4486B646724C91132C0AAEF4E9353FEDFA0BE557D40F7686E + 6E06B789233BF78686463019364C76FF70C0EF8838E641777C6F41646B4BD3F2 + 317693616D63AB8090030654598DA000B206B11C35EEB89EFE909D6F22648037 + 9BE8BF8A9E106F15D013E2AD03DE44FC032EA94B2C35DE3E980000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Enable-toggle queue processing' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000053F4944415478DAC597697013 + 6518C7FFE94529F4B694D28A02C3C0C854066D15AD2233AD30808C52E52AA51C + 45EECAC0004DE941101401DB88144B5B011129A745907A7C00742CD70828728E + 05DAB46912489BEC269B6B93DDD7CD82914A4A77E583CF977792E7799FE797FF + FBCFBB89821082FF33145E00854221A978F1A7DF4BA6150AEB89C93AE633D524 + A6D31AEF6C39008B3EA923E54BC64A198EBD27AEE2D465CD6950B6D19D41C806 + 5858768C6C5D3A0E524EED972B5ADC3131F8E9E2ADD3B0D8FD42C806985F7A94 + 542C1B0F0FDF3581C640A3B59D81C164C5C90B372FF1449151B57C7CDB6301CC + DBF40DD9B6FC4DB01E82AD87CF775AB768420A389E83AE8DB907D16EC5895FFF + BC5CB9F2AD672503C8315CBF8468E48E7B0E214181BEF7AE37B7E3E4EFCDF070 + BCF8FA76931655F9991D063D12408EE16A04C35DBCD18AB8C89EF877ABD4217D + 6177B971F4E46FA856BE2D1D40AEE1BC3237E9CD98FD464A0725BC6175B0585D + 5987EDAB264A07F8AF86ABBFD488D8883004DCEFB978629AB82E57D76247D164 + E9008F63B8ABB7F5786FD2880E752BD487B0B364AA7F80BC2D3FC8365CC5B90D + 603916F35F5C06ED1DF743868B8F0EBFA7C094D7C475A5FA2076AD9EE61F60F1 + E6EF64DC70D770E18616B5962C04042BD08D0FC7CB517330B0C7C80E8653E664 + 202CACBB6F6FBEFA00BE5C93ED1F6091BA4EB2E1EAAF6AA117A4CE3F9386D0C8 + 10F0C2A7763B38BCD0E71594A4972232A48F68B8A81E21080A0A465E56BAB8AF + A06C3F76AFCDF10FB0A0EC5BE986BB43432700E41C1B8AC85EE1181C33040DE6 + EBB03236285C819893BA14D7EA93A09C391661DDFF51A040BD177BD6CDF40F30 + FFE323920DC70B86F39A2D63D70044274462587CAAD088472BD3029D450BA785 + 45B03306C382A6A3777032F2B2478B7B0BD535A8F970B67F80791B0F93CA9513 + E070F35D2AF0F70D57DE300AB14991782636D997737A9C220865A5E0A059A4F7 + CBC4C2E12A44748B4171590DF67E94EB1F60EE865A52999F29188843F9D7E7BA + 368210DB9AC7E389A7A3D03F62E043390B4BE3AEDD003BE544A03314EFA616E1 + 4C1D8FFD1BE6FA0798B3FE10A956BE03AB939334DC1B4337F742DC802824F6EC + EB37CF0BC742B94CA06D346C6D4E843249A0039A925B0ACD571E02C8FDE000A9 + 5E3509B4C383F283A72401ECD067227E500C6243E31E59E7E65958DD1630663B + 9836E1EBE221A52C6B5EA353C1EE0398BD761FA92E9C02CAEE91AC404A793C7A + 0F8945787084A47A17E78283B5C36AB0C349BB343CCFE76A5651C7458099EFD7 + 080053611600CAF7FD2CA9E1EEF6C948488E45486037C9D03C1104E03DB0E86D + 608CCEF34D05EDA922C00CD51E525D9405934DBA022F55F446E2B038C9F5DEE0 + DC1C282D0327C53680F3E43416D26745809C92DDA4AA241BED8C1B5B6A8E4B6A + B6DF928D2753E325D57A6730771DA05B1917EFE1D669586A2354607D1EC82EDE + 45AA8AA70B00D21518519580FEC313BBAC73312C8C8D94B0BA8F739C6781B6D8 + D2F020980830AD7027A92C998136ABA0C0573F4A02A875CEC2A0B4FE9DE6BDCF + 08A3C6044A4F1B850B7EA9A6C0BCC79F32224056C10EB26DF50C180500A991B1 + 3D11C9AF0EF69BA38C16E86E1B08E7E2AA04A1954D2A8AEAEC684480A9CACF49 + 45C92C5900A37626E2F9911D7EE4C2E570A1B9A1151693F50F70DCBCA622CBD9 + 47F5F0014CC9AF265B65028CF92209C3D3537C8D741A035A1A750E417A55336B + 2E134CD6A5A13A00489E7C3FCE452B31E2F53450661A37AFDF82DD663FC2728A + 3C5D91A9456A0FD97F4C1E8CA7D647737D121302F4AD8616027E89A6803A2CB7 + C7E302AC5010454F1B6BDA64548191DDE03EC05F86557FEE3A27E25300000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Download File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D14944415478DAC5D77B5054 + 551C07F0EFC2020D46C414218666A5BCA6FAC77F9C661B04E225298361E21002 + CB082493163A2312984D63AF41F3112C461A8E220F9D61ACA948B21C4126FB33 + E2FD5E026117D807FBBA7BF7DE137B97DD0576A37BA3C9DFCCCED9BD73EEF97D + CEEFDE73CF5D1121040F3344568048241274D2C58B3502D5A276934997505858 + A8FBCF005269161886E1D5BFBF7F10EDEDBFBA45AC0A60B15878F5D7EB0D5028 + 94686DBDE782F85F00346D81D96C5E40B4FD66B150C9F9F9F9D3AB06D0348DAE + AE9E15FB464686C3D3D31314655E8CE89847C45811AB025807E413DEDEDE6059 + 7609A2ADADAD532ACD7E61D580EEEEDE15FB464484B93D7EF56A1D7273B345AB + 02501425E8BCC5515B5BEF041CFEF28EA075ED2BA25096F32A58C682DE9E3E41 + 89C3C243B9F6DA72C0A9BC6DE0F350B47669BCDB0BA5DA807DB161F0167BFCAB + 0AD45D6B7005302CBF42DCF97D0CAA390AE3D35A48367A41ECC1FF1286866EB2 + 01EA1A5D0134C30FD02D9F865263E410634A0D3263C2E0EB23165481FAC580A2 + 0BBF90D3F9D130D12C8E5436AF7862F98144A8E78C50680C1C6276CE849E9129 + 2444FAC347FCCF95D8B4F979AE6DA8BFEE04BC2BBB4D3E7F2B160633CB4B6F9D + AC52BD08A13561607C060777BEE4B6FFE06C1F0ABEC942E4532FA23CB1025E1E + 5E6868B8E1041CAAB845CE16C643473128AEFA71C5E49F142460744A83BB1D63 + D0E89DCBF081520DA924D8A5FF986E0425F70FC13B84C0A43563CBA32FE34C72 + 359AAEDF7402DE3ED74CCE1F4C84D6C86F77B386F57E1D536A3132A5E6564FCB + FD5E7C2495B8CC3CA7E90D7806B358F3E423B0AEA199212D8790189290979B6B + 03149EF99E54BCB31D6A8305A5D5B778235AA952F83FE681D349F5F8BAA90F79 + D1EB5D66EEBB41CC256709CB7DEC887573CFA2457BCF87031C38FD2DA928DA01 + 959EDFEE668F2DE783F0CCE6F5A02659849B8A7036EFF58599F7433A3F73DF0D + DEF00BF4E5F6011B80E15A029643E8A64D4D1CA0A0FC26A93C9C82D97940D985 + 1F78039AE96C48E2B6E2CF91094CF6EBF04574158C160337F380E7D6C03FD00F + CCA2C4F6D67A4CA7D4CF2334720E90F75913911D49C5B48E165481AD956B1115 + 2FE1061E1B1D8769C202136344C0463F0404F9DB92B14B935B5BB5720EBA2133 + F494DEB61BEEFFF806911D4D83728EC6C99A16DE80EF8C9988498CB20DCCDA10 + 9E5E9E782228C0918C7124B6FD56293430CA2D48F7DD8FE2FC62DB4D987BB291 + C88A7773002121A90A465C52EC92D93184759931C3DADA99291566FAB5C87ABC + 1081E2B5CE6598F3613DA93AB6070A2D8D4FAFFC24A80289C9F10B3799FDFA2E + 2FB9EDBB727206C3DDF219428BA2E4C7673BED637080EC0F6A89AC642F071012 + DBAAD721F9B5A425895C10F3B8A9070A0C740DBB247700F6BD7F85C8DECBE000 + A76A6F0BAA40CACE1DB6B2B38C5BC4E4C4247AFEE8779BDC0178B3F432919566 + 624ACBEF1DCF1E71979EC6AE94543765671CCB6F74588EC1DE21B999C22B1327 + 5472B7808C924BA4B22C6B1E40E35CFDCF822AB03B356DD152737F19AC8881DE + 41B7080EB0B7F82B52793C9B030889A49A10A4EFDAF3B70F1BFB3D606D4738C4 + 800B8203A41FAD2615653950085C86DB2F8720232DC391C8096196A1EC8851F4 + F50C0C8C52AA089C8065094050E685E8F49341271E157816E91839A672BC3888 + 1EF6DFF3BF004F2B04B9AF11C53F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004904944415478DAC5D7FB4F53 + 671807F06F19A29BDB1C53B994C8EA32108C3F2CFB07265B147721EA02DB1C77 + C9C64467048953B984992DE2263836698B44B3B9E906DB18B78220734436A651 + 1723D2D272A719D096722985DE4E7B767A68CB398595D3FAC39E84D29E9CF7FD + 7EFAE43DEFE9E1912489FFB37876008FC7F36A504EC5EFDEAAFF3012784D7830 + 46CF3C4867FB0A28F9603BB834CF7E4AF54D39EEC8C73B8D0419CB443C32C06A + E3D688F6074A4CCD9AF0976C9485786480C5CA0D201B998066C6B08090FE734B + CF43DC85CC98099F01D9E21B6469660C8C161B7285D73C9E7B366B17A6670D50 + CFCCD388C959238518ED9AD3EB5FA938FAE6844F8023C236F2DC8157316FB671 + 3A7FB53FA0996620744674762BBBA939B6F904387CBE852C3BB8137A9315C7C5 + 2D1ECF2DFE3016C3AA19DCEC526266CEE43A3EA699063507CF27C0A1B266F2EB + C3BBA03358398FB1AF57A54647636C54E6F5DB7250732C002E5DFAD6ABEBFA9E + 6E23CA8FBC8EE97902F995AD5EE14F65EC80DE68C199EFDBED732C02F6EF4F85 + D5CAED1B7D54D684F29C384CCD115E85332BBFA219C29C38368020B84D78E84B + 09844777639202145DF4AE0345193B17006209C4B9BB7D036495364094BB1713 + 7A8BCF1D281037E2C2B1BD6C80C5628154DAE371E0D6AD51C83A5B07D1C7F1D0 + CC5AF0D937D7BD0ACE4BDB41FF2F14D6A1F2443C1B60369B394D72E08B5A888E + 27D0005FABB0BC1617F3DE5E0A90C9E41E0746476F41E6991A884FBC03B58E5A + CDDFB5A1436AA12E49EF6E90EB1EB7E17EC55B6C80C964E23438B3F867884EEE + A301F61B52CAE90E3CF16C389E136C861FB5A5F8512FF6BDC58FFEA3EEF97E8C + F78E3DE7975F6B3178790F1B60A400F21EC58A80929AFB10E525D280922BBFC1 + 6026D12927B04910C519B12CC0603472EAC0FB9F5641949F0C956E71CDA8A78D + C83E7F1BEB82049C1035B5756C407A7A0A8C1440A1E85B11F079D51D080B5229 + 80055FFD78C375DC9B4ED4D62D03E0DA818C4FAE40589846039835ACD2E398F8 + 2EC2045BC0E78739829747D4D7D7B301697680C180BEDEFE1501A7AFDE427941 + 3AD48CCB70C41E5E7117A1E19108090DA3424107FE17A2A1B1C10D90964C0338 + 75E0D455D66703E10FA936109B23B6213894BF18EC012191B801521D80FEBE01 + 4E0857AD0D465AE93DACE747202838143C47D04A88E6A64637406A12E63976C0 + 59FD6373483FF73702435FC086A010477B794B106AD528086A9B672ECC6BCD12 + 3620252591EEC0C0C010A770A5D68C93556308E44762C3C610C737C312844635 + 861E5997963A3217111915EE44B4B634B101C90E00D78ACDFF13FECF08B09E0A + 772D2E37C4847A0C0AF9432D49585F2608DB6CC09A800E27A2ADD50D9094FC1E + 0D181A1CE60428AE1F876CF2496C7A3E1A8F397637266252A3429F62217CE487 + F86EFB187E4275B813D1AB90B90192F679D501827A26C8AEECC28371FF258829 + AD0A03BDDDAC7067D188D5ABDA481EF44397F7BCE4022426BECB7923622272DC + 10535A3586FBA5CB86BB6A7B913FDA8B08D78389B73F4A99657F38FAE9E15AA8 + 1186A79E0E8472B0C77338A37C7E325A5209D5018235ABAAA9772FDA08EB1B5C + C29D807F01CBAF16EEEA4161720000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete All Completed' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000035C4944415478DAED975B6814 + 6714C7FFDFECCC5EB233215B47122F4DBCB41A8CA926458D5A6C1FF2502CA26F + 3EA818115C138A55117CA8375084621F2446C8A2E8838A625FDA824A4505A9D1 + 84566335373452D74836E86E6733F3EDECCECECE8CDF2E0A4AF54177C097FD9E + 86C399F3FFF13FE73BC310C771F0310FC903749EB9E82A45EBDAEFC87B036C5E + B3DC157156AB04501CC07034F641C29FD54C2A395072A0E440C98192031FD701 + 43513078F204BA4908ADDB37BE13601FC05549D24EA65C36A6D2FDAE38602615 + F46DDA00676C14499B0512899A703AFDE42DE2DE4992745C2A17D71142A0AAEA + 2F453B606A1A7E6D6E864893F8B2A10EFD83C37838FCF8311C2C086B5AFC3571 + 3F133F5F112A5FB1A4A9018AA2E256F79D5CD10E24FEBC8EC1AD6D685EB60882 + 20146277FB86101D89F51B1A5DB205508F02222F8997E409A1AF9A1AEBA16732 + B8D173175923DB56B4038E65E14A4B0BE2572F6369C35C78BD0C82D5FCBBEF01 + 469F256EDAA6B98613F8DFAB264EA85F307716325913376EDF879E36766FA6F4 + 803BB780D518FDF920A2E7CF61E917B508F87C706C073D030FF05C194F7F5A29 + 07E67F3E1DD99C85AE7B03A0A9CCE130A5DBF2AFBABA077AF6EEC150470716D7 + CE8414F0C3B26C8CC4FFC3B44AB9F0DC35348CF154FA544CD35AD84CD8AE03E4 + 4F64432BBCBF9DC5C2E9D50805CB5E1AE4A0FB511409AA5F60E2AB9878EE55BE + FB00BB7E02693F60CC9B5CE99B5A515E8819B91CBAFE7D8AB4691E0C6BF4C7D7 + F35DFD2F20BD3DF09C3882F97205AAC4606136948C81106B876E9AB8F9740C59 + DBFA21ACD2F63700F24BA1D8D329491B0582630DF22744F6FB0AB1C1E438A254 + C71CE6443503D2D80DE87E16772CD8EB37A9A953AE01744AC11D3ECE73A89109 + 55BCDC058F523A1EA6524F1C1BDB58FDC82CB14C9EC1664261107F2949CB26F6 + CAB0AA5F281AA0531497F11CB9DE2489103D9E426CC43030A067E2A6E37CF33D + A5FD1DA2582770B838CDE7AB9EEDF7E3399B895E9A32D94D6D2E1AA03D1098EA + E3F9DE5AAF20D7083C62ACF8FDAC99CAE5ACAFDB74FDF6ABBC4820500D9EBF3C + 85F7CCAE63CB2AC61618CB4BBAD2824830580F8EBB36C5C3C9A396655A0EBE6D + A5F4DAFFF22449664DFF6322E11A05A6C972FF716D08F31084E3F6E788156953 + F54BEFCACB7F1704493A6DC39108C8EA178D635EC0BD1547410000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Move To' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004474944415478DA + C5D67D6C13651C07F06FD717C622323546832F93F887639D9290E01F6C263219 + 05A7684814908D755D64931A8D616606C740D0E08C28439C6E8AC1BD30304A44 + 8D2684E15867598D616EA55B5F3705A25B3BE7B65EDFDB3BEFDAADBBB3D7F5DA + 627C92F669EEFAFBFD3EF7CBF33CAD08FFF310316FC78F9FA0920CD37ABD8442 + AD5613370CA0529523140A090AB2586CD06AFB6E08820308068382825C2E37EC + 7607349A9FD246A404080482F0FBFDB388DE5F8241DFC6AAAAAA89B401814000 + 4343C60503F2F27221168BE1F3F9D9083D8D284A05C1013009850C994C069224 + 3988DEDE5E834AA5CC4F0BE0A39319874D0B06E4AE7880F77A477B272A2B95A2 + F4003E5FB2F1F3808E53E903BC5E2F4C264BC2A056DD5FC996D17A8394A249BD + 3666B770001E1A2064D4B5F6E1F0CE47410938BE98AF5C365E47A7C6C68B8802 + 2A2A76843B60365BE326B35FDA0332E08246528D375F78162152D8014A389D18 + 1D77A2ADDB1A83E0003C1ECF8289BADE5B0179C172E8750E146C6DC1D27BD608 + 0204FDBEF06E19A111ED17AD3F131455D252B576820350CE02ACF4311B6F5CFD + F609ACAF781893631EE82F5AB07C4D2D1A75772E58FCDD5D1B201323BA651944 + DB8F16BD8B208A5A6A9E9C980728CB1276E0C2FB7961000529BC6E12BF9EBF82 + 25773D8EDCF50721CA90C68DCB926570CE0DDB9813AD178C86C65DEBF2A380F2 + F2D230C0661B4DD801060091943EBA3360E81982F95A16FA1757C32F5A1213F3 + 76B502BF8F4FA3477F0DD3AEF96DFEA7630A475F5488380077820E741F917300 + 91598291FE51FC619D827C53336EBAE341DE5866BD5E77CC843124BD7DCEE94C + 38F6F2C608E0AB86424AEABF2A6841C500E817457F76FC368E41CD2006C4DB31 + 26591537FE406531086F000DEDDD687AA52402F8E6E0BD544999849558425F95 + 8513CF1508CF9C27E7029899987261F09C06B7E59622A7B006B36B9C77D435FF + 808F766F6203C47442190BC02496B10A4858F7F901CCECF79130746960B2DF8E + C1CC0A84448B3885F7A98AC3F3DEE6EFD1FCEAD3FF063089652C8094D50909EB + 7EFC4E31F728520CF3251DA62725906F39C3DB81BD1F7F874F6A37F301F89E4C + C6024813768A2425306BFB306C71A32FEB354EE1D795910ED4379DC5A77B9E11 + 0AE05B03FC9D0AF842B872BE07D4E27CDC577C1819D22CDE0ED47FF8353EABDB + 920E20F67BCEBF238B70D85F08F3A2A77817616DD9BA59C0199CA8DF160568E8 + A950D8365C1D671BDA31ACD563D92387B0F4FE0D09F3EC3BF6253EDF5F2A4AEA + 0F04D3A9588004B6FE111807ECB89C598D1971CE8239766F7F2C02F8E00BB41D + D8911E60EE28263CCB70B7A209E2CC5B05E7DA7FF4343ADE52A60EF0BA43F48F + 9101C699873094F91C488805E578696B5104D078129D872A53034C8EB9E99F63 + 2B6E5E59836C79593229A2E38D231D38D5F07CF20079410E06B476ACDCDC025F + F6EA948A4700ED38FDCECEA4015DF4947DD6A55E4590B7A45C7C6E240DF82FC6 + 3FB7028D3FB5177BD70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open Workspace' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003AB4944415478DACD97794814 + 511CC7BF035D8A2D68A804A919AD1AA692D62A9B687648A5BB655241C7626137 + 9D644126091D104114111D4445457F0491B969D0B1DA69E5111D5A6E6EB54766 + 994766DAEAEE4E336356E3BCD95D7708FBFDB1EF37EF37F3BE9FF9BEF7666728 + 9AA6319041B1001445B93C71F4D22BAF99265CB2228D37EF2F6484F5DE787F00 + E805AAA992F52F6975787F3E83F208C02F60946480E6CF16CF014E6C4FE1F2D3 + E72E61B966C1EF5A7F8E57ED2FF94F01CEE463D8884141254C5702096043ED61 + 549F524B9E82C8EC423240E19EA00311C99AAD72E546E285A1590FF0ECA48ACB + 0B1EE8B976EEE430624E0AB6CE46CC4AAD10E0EAEEA0F8A1DEDE658AF959D4E0 + 615E60F70A17F4EF1F44E78C41E5B174C90EC4ADB92604D0EE0D7E11396DF678 + FF5039FE52E6E5D139723C399AC6E5458FDE706D5A829C989382ADB3A1585744 + 0208A1A764AF1315EF0188C0C323B3253BA05C5F2C06B0BAA74304202A271277 + 0FF500DCA8A8E3DAD48963893929D83A1B499B440052B257901DF87518B52D1A + BA83B3243B3075CB751107B2345CC7CBDB3A7C315B240BB988A7AA5C632C0F20 + 6951266C5D56545EBF8FD40DB7FE9D346D83767F42A76A87D19B079098390B5F + 1B9BD0D234145133B7A0F36B49EF157D47702317AF7DFBFC1195850515AA5CD3 + 241E8052958C7A8319B2E01918193601D68EE7A283501E08F7E61FAA6BA02F2B + 3BC94CC12A1E407CAA02861706844FDB0C6F999D990E8BF880B47B62A4E35777 + EEA1416F58A6CA339DE5014C4A8EC2CB723D949A8380A3160E7B9B5B774681F4 + 46250E535E508CF64F8D71E9BB3E54F10062E3C7E2799511D3D71E47F7F7BBA0 + 69BBC7368BB9453B1C283D77D9FEA5CBE893B58BFEC103088F084453870FE2E6 + AC467747257F201796536E02B637B7E27181AE46BDD31429780E048D1A8E4181 + 31902B1261B7D67934BFAEF2068305D5A55517D579E6C502005FD9608428D5F0 + 0FF685C3D6E8B130E564A1D63EAE81B9C6B89971E09000C06B0885D8791A78F9 + 7C67166187E820529CA9282A47D3A796948C3C4BA900807D2B9BCEFE1FD84DF8 + F3ADE04CC0799DF4ACD05DB887AECE16DF8CFCD6560180CC4F869844056C9DF5 + 2E44DD0113D66CDD769497D49998F90FE12A7D014263E2302E299DD92A563785 + FB07D552FF0E8FAE5CBEC6CCBF8A08103121187EFE5E7DF6BF98A5FD77A3C1F2 + 0D6F5F35E6AA779AF7110126CF5F0819F7E1E16C3111FA6927B5BFF26737B5B0 + E80D6973F32CC5248006260FC4BF0D6B9BAD3D60497E739B00602063C0017E02 + D75199DF2F7C28AC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Save Workspace' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003794944415478DAD597594854 + 6114C7CF8C5B1A4A6A6A82919505F91045588A86CBE838BB5BF9E21224649458 + DA22E55384948E269A440AF9A00F81914E6EB9E4DA989A89A2E59226092D2069 + 328ECE38CECC6DEE77BBA39638B7CF86E8C0C7B9E7FF2DE777CEBD5CEE651104 + 01FFD258248067A26C840570C81C090CE58D4E9747796F0AB0375146C48A43CC + 5261454D2B7C2C8F6299047072F5300BC0DCCC276600C519C148282DAB80B389 + B1EB1631D5369A4BCE6EFB4F00461E49CC720BBC93AA99010C95889120EB7A8F + 7CA4FFC14D635346AF3F7CAE8619C0C04391593A70F47C2D3380BE0714406DCF + 04F222DF039BC6A68C5EEF738121404F91D02C1DF04DA96306202F1420A1F1F5 + 24F2E1C7BD368D4D19BD3E20B59E1940473E9FD1C129F77B6078EAFB5FE98EE1 + 353D600468C9A3005AFA3F20CF39B67FC39873E539444644805E4FC0E0D8B4C1 + EB40AFD301A1D753D7F4D8402390AE87F0300E3AABA1A971B5034D521E236AEE + B506904822A0549A0E0BBDF95895DB9F488333E9B9D0DCDCB40A509F1D8E263B + 06A7900F3CB26FC35890D10862B104B45A3D14C45A60015CAAD051DD6D69FE1D + C0949100229118342B3AC83F6D890590F6448B7C7B5B0B5E07044212400BB931 + 7800579F52009DEDAD781DE00B44A0D66821271A0FE07A250520EF5C03101DB0 + 83D1E64AF93CF0F842502D6BE14E14DE3370A38A7A065EC9DBF03AC0E5096149 + BD025991780099320AA0B7AB1DEF9B30942B804503404AB005B839FC59F2B925 + 80FC660AE04D770705C062B1181FE099504570C204A05469B0AA5F6BFDBD9D78 + 00C1A17C5858DA3AC060DF4B3C80200E1F148BCB5B0618EA97E3010486F0605E + B90A5014670F1E8E6C20CF5A5C52A3A1542D1BAFC97786426305392F08707671 + 37EE7B37D085077032381CE617D446AD3AD51179BF9B43E0B26B37144469A8E4 + 2A35A8D41AB0DD666D1836905CA640F3B48D0E76E301040471614EB10A5077D9 + 09250ABA35063BDD3C402A5482F267F57472D22794CCA279DAC6877AF000FC03 + B930AB501935D94507948C77770A9C0D096E73E650F5D65696C6E4A43F55F805 + CDD336318C07B0ECE31764AD50E98CDAE3241B04105DF019C83FACCC80AFC066 + B3C1D6D606ECD67440249D86B57F60936F3100F6C457A6DB6DB7CF73F7F4062B + 6B1BA495C6016A797CF13714DF8B595F390D119A35B175001AC2B0496AD8C526 + E308AF1946FB9E4DBAFE2A8DFF005CF2485CA1051F7B0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Site' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003204944415478DA + ED966B48536118C7FF67B7D4969AD7BCE6645ED24C11A58BA6E407A116F9210C + C46E18451FA20F411015455111047D883E4451641942D187228B0205D32EA044 + 62D6BCA0A666CDE66573BAB9B3ED748EB9E3E6DEA9733BF6A5FF97F39CE77D77 + FEBFE7791FC64BE11F8BFA0F600F720B5455EC5BB9D0860C031B28E65173FDCB + FD4E0039052A6BD2BA4CD17254DDF9ADC5D6FCB646ECDC81421593989C012AF7 + ACB01D68BA84EE8E5634D5D7502E0009CA3448379D47698E8C6B95BD6560304F + EC9263F89CE33AB7F6BA8D06FDF1027ABBBE9201E21353E19F7F11255952FE83 + F341108D1CA1E6E46AD5348C8DE7D0D7AD2603C42524435E7819AA0C294F3DF3 + 5B3666F8D8B1AAD975384313E2864E0B0CF567D0DFDB410688895722A8E82A8A + D3246EAB726730BB3E0B6A9802F446067A1383711360B630D0D59DC28FBE2E32 + 4054AC02A1C5D7B02D45B2C07933C4758B15189D6430C69AEA8CDC3B7F58BC86 + DF9CC4CF811E324064F45A446EBF8E3CA5D869B8E61B3A336B3A32C14C1B7315 + DB3BE04E9A5727A019FC4E068858138BE89D37B05121763FE1AC6CEC83AB506B + F8DBDA854C1D35F8E238867E0D9001C222A211577213D9F122E2C0596D6C0BD9 + 6AB50680B62EDED451FDCF8E413B34480608098B8462F72D6C8811390D19E735 + CC56AB9D60ABB72DCDD8AE9EA74731A2D5900156878443B9E70ED2A244FC99EB + D8811A1AE7AAF7CED8AEAEC787313AF29B0C10141C8A94B27B488AA0A6874BA3 + 074CB46F8CED6AAFAE806E6C980CB02A3018E9FB2A112EA7A6DBEDC9702D566D + 0F0F605C3F460658290F44E6C12A9F9B3AAAE5FE5E4C18F46480800039B20F55 + 0B0AF0E96E1926270D64003F3F7FE41E79222840D3ED52984C4632804CB6025B + F3F3040568687C07B3798A0C2095480531959C6EE763CB9514D016DA1580BB92 + 49C4A265B99259AC36D72B594EE18E0760A8728A82A0103397D24AF6525AE104 + E089129233887F10BD1DAD1E7F6F4900A9599B8900EACF1F7C0FC00EE717F691 + EE98B3D066E25E89543637D5C60EDB7A6F01983845AA53AEBF474DDC4BDA679F + 76AF00B614ED5A681B51EFEB9EFB04C0E5083C90F74720B4FE007DF2E030183F + CFA10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Site color mask' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002374944415478DA + 63641860C038EA0018C3D4CE7B0990174D6B0BFFFF67F8C7C0F87FE99983DBE2 + 501C6062E7FD5755539F891EBEBE7DFDE2BF3387B632A38680BDF77F25355D86 + 15B3DB696A79446A25C3BD5B97194E1FDCCA88E10005152D865573BB68EA80B0 + E432860777AE6177809C9206C39AF93D347540486209C3A37B37B03B4056418D + 61EDC23E9A3A2038BE88E1F1835BD81D202DA7C2B07EF1049A3A2030B680E1E9 + A33BD81D2029A3C8B071E9649A3AC03F3A97E1F993FBD81D202E25CFB079F954 + 9A3AC037329BE1E5B387D81D202621C3B065E50C9A3AC0273C83E1D58B27D81D + 202226C5B06DF52C9A3AC02B348DE1CDAB67D81D202422CEB063ED5C9A3AC023 + 3899E1DD9B97D81D202824CAB073FD7C9A3AC03D3091E1FDBBD7D81DC02F20CC + B07BE3429A3AC0D53F9EE1E387B7D81DC0CB27C0B077F3129A3AC0D93786E1F3 + A70FD81DC0CDC3C7B07FEB329A3AC0D13B8AE1EB974FD81DC0C5C5C37060FB0A + 9A3AC0C13382E1DBB72FD81DC0C1C1C97068E76A9A3AC0CE3D94E1C78FEFD81D + C0C6C6CE606B634D53071C3E7294E1D7AF9FD81DC0CAC24A134B59AA6EC2D97F + DAD4197EFFF98DE90050938C8599892E4DB23F7FFF6136C94CECBD1631FC678C + 666464A0A923A08DD285C04669128A0348010A6ABAFFB1893FB8759964F3C872 + 808681255607DCB8709CFA0E0026CE2B404A1B59ECCFEF5F58D5B2B0B2A10B5D + 0526361D4A1DF05F56510345ECF1FD1B58D56253074BED1439C0CAC98F9032AC + E0D8BE4D54710046149000288F025A0300B035FD21AB80C6790000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Hibernate Once Done' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000046D4944415478DA + C5957B5054551CC7BFBBF2480481C1A2A6E9DDF80F5413AC3691C98C0E538A8E + 59F21461905E23304E0CB2803CCD891A4796E2258B20989688AF4824212060A5 + 9A76C9E4B1DB035DD65D366A97805D60D9D7E972536AD995BD0BCCF4FBE7DE73 + 7EBF737F9FF3FB7DEF392CFCCFC6722438E99326C234960AEC26A39A57CAF2C2 + B5CB069058D4484AF66F65921C75ED03E8BA21EDC6D8E482100E01EC2BBC4C4A + DF0B0561500741BF1C4AB5161D3D83DDE313635B4EE7C54C2C19E0DDA30DA43C + 653B8C66FB044323E318A600946A0DDA4483BD14F4267EEA76D59200DE397289 + 1C4BDD01BD91A0F4A2F09E71893B39309B4D50500034844A8356D12FFDFCD4D7 + FC19033822B8271EF2464268005C9C56CCCD89656AB45F97C16832D3E39B5239 + F8DCD7ADF2DD13C011C19D691B805022C7FD9EEE60CDFBE23AFF4731A533E08B + B61E1CCFD8C51C603182930E8F223E940357E715167ECDB41EB9158DA8CA0C63 + 0EB058C109AEDF828FA71BD8774A9114F612FD4CE55D407556047380A508AEEF + A612FBC3375AC41DE09DC3899C28DB008E08EEB107BDF0D6B640BB82F3F5F6F8 + A70291C1F4338D578FDADCDDB6011C3DE17E10DB175C465C08DCDC56CEF9B8BC + B338991F631B60B1828B7D35006EF7395BF8EF0ACE6B950B9C9C9C911CBD999E + CF28ACC3A7EFC7DA06582EC1053DED8ECEAE6B68EDFC0E6CB39EAA100B5EDEDE + F0F3F3834439838BA55CDB004B155CF8C6B5E01515E3B6EC5744EC781281CFAD + 81EF9A9560B3813F543A887E52E14ADB6D48659A0EB3912488BA9B062D00DEFE + E802A948DB896983D96E05E60BEEC68F22DC12B6C06898A1C71BD6FBE2C0BE67 + B0CACDB235B3ED6D681E4259AD64DC3063D826127C25980378B3E01CE1A7BF81 + C919134ACF7F6F5F087704275728517EB40026A3DEC2F7F823EE28CC7B01AB3D + 5CACD6F5F4AA9151201CD74FE9393DDF5EFD8D0648F8A09E54A6EF8246676294 + FCAE25A77021164B6CFA38541B3E3CB8CEA6EF52D3108A4F0C08841D8D2FD300 + 7B0FD791CACC708C4F1B51527F8D51F20D6B57839B91BD60CCA1B40004717CAD + E667DBB137A51352B966330D107FE87352793012635346C6BBE77D5C82E696AF + 178C79DEDF074772D6DBF49D6F94A2AC465C4D03C4E59FA600A2F017055072A6 + 831140EF3767A1500C2F18E3E2CC46436D08751EB0AD7C43722D55852E090D10 + 9B7B8A5466456374927905C223A2A0D3E9ECC6D5556C828FB7ABD5BC8ED25B68 + 6CB39606D8937D92F07362A0D61A50FC592B2380EE86AAE503D89D5543F8D97B + A0D232AF4072521294C3CBD482E8CC6A529113079586AAC0A9AB8C009C2606D1 + DEB670B5188B302ABD8A1CCB8DC39F140053EBEFEBC3E1FCBC056318FF8691DC + 4A529E13EF10009D20370B3F4B1C3F88BE6C96A1E878FFBF0751441A9F942E02 + 6064E477705352603659AE73F8289E057028F37F4CA75143312018A33EE4353B + 7E31F001A4253E0B0F77EBCBE8728B0C253562EBCB68A91618B4E529B613ABCA + CBD3357851D7F1721927786B080BAC306AB3B3BD7D98DE39A0A0DEBB0848BDB0 + E34ACBFC357F037DEEA9751D0AC7540000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Cancel All' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004BB4944415478DAC5D5794C14 + 771407F0377B71EC8E0584AA556AB1F168A01C25262096D4A67F99784041E4C6 + 6A856A2DB720CA7D0BBA4068B89543BC3854A86D93D2262D028AA5A6A01423C4 + 805628A0ACBB330B7BFEFADB616B352D49677793BE7F2679F9ED7C3FFBE6ED2C + 811082FFB3081DE0D0E94E932A2AE27712AC009F9DEA40A5D13B4C121E5DDA09 + 9509BBD801A28AAFA1D21813014A3AA12A71373B4064D1555412B3D324809892 + 0EA83EEAC31270F20A12C7EC621AA9F53F19149C1DE1CD5C634BAE4175922F3B + C0C1C276745A0F30B6E230A026F96376804F0BDA306037D3C868EC36283823EC + 7D3DE02AD41EF363073890DF8A013E269AC015A84BF16707D89FD7824EC5F832 + 8DEC73864D2035647102F125ED70E6F81E9680DCCBA8580F30B61274801301EC + 009FE45C4445B17E4C23AFF98641C129C15B996BA2B815CEA606B203ECCBBE80 + 01FE269940A2B805EAD382D80122B2CEA3937A40E1851E83829302BD98EB510C + 68480F6609C86C4685B17B4C328124F16568C808610708CF38870A62039846F1 + 25C3269010B0388164F12568CC0C6507084B6F7A0130B45412098C37D743F334 + 17AACB129604640070569264224EB69C9252990C2034AD11E5C7EE650E885B7A + 5987736929B8356703776612A6550408244FD746CECF4FFC4B386F1549D692A4 + 309CE07040FA5CD6C00042521B3020D0A06FAEA66470D36F3B58D11270777384 + BBC30F60746C7C14107846CA64B32F850B7078AB95F5B21D5B3CDC402291416F + DF807A1170A21EE5EA01656D7DAC00C2919F615D631E7CE4ED017C3E8FE9DD19 + 1A8189C793436A19B5E53000F5258088478ABE596E63B5D5D3DD19E61714D07D + EB0E2815CA230C20F8F8590C0832680248A381C12F0E80BCFB7BF07ACF09047C + 3E6E22B87DF73E4C4E3FEB55A8D501663CEE572BED6C5C363B6D8405A50A6E0C + 0C817C5E911E4551590C2028E50CCA8D0B666E58DECE6E028B0A04DBFA2FC25C + 671B78396F020B3333405A0437EFDD87598974DE7E85AD85EB7A0750AA35D033 + 380C14BD50164951D1BA8F3280C0637528470F30A6460B3260AAA11A3C37BE0D + A4853968345A7834FB0CDE7A7D396830A877641424F47CD3A44C16817742FB37 + 20B91665C785180DD0554DD87E78A7FF6BD8EC600FD6424BFD80F034C6C6E129 + 25BF8EC37D71B8F2AFF30C606F520DCA8A0B3509401C9F066E1D150A97375698 + ADB15AC6F4F01E40CFC3C72057AB72A2A454EACBE75F004C116EF770089CBF6B + 02573B6B58251232BB318737DE1A3F0E1A2F5FDFEF53BA3D38829F7FF92B0082 + F8CF6FCE25AB9214EEE3139C3A575B1BC20E07EAEAB7B9E7304ED1E068FD1AD8 + 639014236EFD318334A00D3F28A59B4C06C0E109020EB7C81D8FDC4AF733C435 + 46CBE1014D4F202DC4E3FB576C1059DAAEC33B318711FD73121522B43E9152F9 + 75A301952291378F43FCE8418A40C4E532BD470A050CCB176655087DF03945DD + 2B17891CF9047CEB606EB66683B939CCE09DF885A2156AD07C6834A0CAC2E24D + E0F1063609F8B66BF19B700ADF7C50A9A2556ACDB6C372F9ED57CEF1795DABB9 + DCF54E66027882CF0D295512933C822AA1F05DE0707E58CDE5D83ED168546A2D + DA7E88A6BBFE718E246DF16676D971382E7C9C89CFFE6AB225D423F281D054E8 + 9EED52E716FF17C8F304201227FBFF09EE2C59AC322F53060000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Download in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004C84944415478DAC5977F4CD4 + 651CC7DF173F92533A2F23102D6CAD569B5B1BDAAA45B1247E830402F12BA0CC + B4C09185F24B0FCA355B3F4414040E90CC720A1A5191F68732C3D85CC95C890A + 717077E0211C7707DE717070F77DFADEF7B893E3BEC6F790CD67BB3D7B9EEFF3 + FDBC5FCFFBFB7E9EED788410DCCFC63303F0783C4E8BB30F9EE14C4B2F6C276A + 6DE8E19244DDA201641D6821E539115CC471B2F51ADAFE96B66374FC7F219C02 + F860FF2FA4624724B87CB58B9D031854E970A143D26EA4488C38377AE49E01B6 + 7DFD13A9FC281A74C179D7CA86C6A0A00106555A9CBF2CF98796D9C006E114C0 + D62F7F2455B9319832125434FD75D77559B1EB415126DCA4011888112DCE5DEE + EE14E7BEB19633803381F3F3598E2D51EBE0EEEA629BBB2E57A1F58A1C4613C5 + 8C7BA50310E7C53908DD15C0D9C0FD797D005E8265985BEAF9B58F433F398DE6 + F31DA82D88E70EB090C049156A6484FBC3E34137BBE7DA89291457B7A0AE3081 + 3BC0420377F14A1F5608F87860A66676C2CB4C9F5BFA038EEC7E933BC0BD04EE + 6AEF2072125FB55BB7B3F414EA45C9EC00DB0F9D5DF4C0790B3D2D0E240532FD + AED2461C2D4E6507C82EFB75D1035790110C3EDFC3F62CAFB401DF7E92C60E90 + 55DAB2A0C0A587F983BF843D70CB97BAC3D5D50DDB538298F982FD27716C6F3A + 3BC0FBFB7F5EF4C0EDCC0C05DFC3E28054D385F71A6231C9539FD11B3489CA12 + E8EC00B67DD5BCE8817BC8C31D2EAEAE888E7C021FB6C4C1D5D788C9DB53181F + 99F87DDCA089B44230005BBF6822D5BB6231314DCDEBC0DCC049A472F8080516 + 076605EEE3CC08280D72EC68D904375F13963EB2844991AAF7B61D0403B0E5F3 + D3449CBF09E306132A4E5F9A3F0833812B6E4B845AAB415D7C13D6783D6917B8 + 84D8A751D49A028FD53C5ADC031431D13FCA0182017877DF2952931F0FEDA489 + 93B8B53D57F628FC9E7A0C4A891E417C11F2D21299F99C0365E81654C3D3CF1D + 9E5E7CFAB3518CB8158280B2429C6500367FD6406A0A133136614479E31F9CC4 + CD81F33FE88D80E017312055403F48BBB7B119FA691D363746C2F71901045E9E + 30CD12B6F6E6399D729C8618933300EFEC3D416A8A9230AA373AE5C0FA726F04 + 86043045FB6503D02B4C309826F0F09A65107A0B2C6294BDB8B91F556A31FCAF + 5A458CBC400620F3D3E3344032343440F9890BDC1CA003F742850F3684055A0A + D342FDB29B707173C10A6FE19C1DDF11D70CD3C7B87B5845A679817291BA9301 + C828F99ED4EC4E817ADC39075EAAF441707890DDEE2C96DBEFD844597AD59006 + FD5D0A9BB8B90603902E3A46C4A234A874D33874FC1C2771F30D1750B5126191 + 21332173DC2D350B46794B853EFA0CCF16B701A4ED394AC47BDEC288CE390702 + C52B111515E1206A37A6E1860687D173ADCF41DC06905A544FAA451918D1D20E + 7CF71B3707D242F15AAD2F6236465B6CA7D8216E298670E36A37ABB80D20A5E0 + 08A92ACE80920670A6BD5EB70A7131B12CB69B6CC74FD62787A4AB573E65C02B + 8A128D9C152039BF96548ADE761A20A47E157DE3C5CF3A6AEC9FC10CD1D32561 + 85600092F26A48C50200C2BF598DA4B8A41931C7CBC69A01732F65207A1C206C + 004E29CFB44BC27CA4C6A7DA84D86FBD3B63699F0CDD377A7A6406CDB32881D1 + 06C0F58FC9DCE6B74FD8C6032FC0997768BD0E59A1669D9D03F7B3FD079EF527 + DD34B097B00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004924944415478DAC5D77B5054 + 551C07F0EF2EB0C82AAF91B7F22847ACC9BFA8FE689CD1E93516C48005044840 + 91A3050E5A282F050C9BCA8A2D65131693015211E4CD823A3E86344C4DB404D1 + 55602562E3B1ACBACB43D9DDD365D9272C702F32D399D9D7DDB3E7F7B9BFFBDD + B3B32C4208FECFC19A00B0582C5A9313F637D2D652139BC9907CFD4F59618A19 + E74CD4660288FF41487213FDE914C7F1F3B770E12F71331E0CCF88600CF834A7 + 9EF0B70780CE55BBD8D603895481A6968E66A59A04099202079F1AB0E5FB5A72 + F0B340500BCE39F77EDF43F4520089548E73D73A6E52655E9B8A600CD8FC6D35 + C94B0AC2132501BFEA8F19E7C56F78096AB50AFF50000D62508EB3D7446D82A4 + E0D5B4014C02E7EDE6804DEFBC088EA585FE587BB714E76F7443A9526B5E778A + 7B20487ED7A4D0AC00A681BBDADE0367FB2598BAD4CBABBD3032368E9A732D38 + 941A421F309FC0897B8710F3B61F6CACAD4CDE978F3E4166BE103FA785D207CC + 3770176F7461A93D176CED9A09A16B348F49BC4A1CDEF53E7DC0D304AEB55382 + C4B0B526F376F04EA03023C23C60EB81930B1E385747DBC90E84AFD33CEEE495 + A32873A37940C28F0D0B1EB8D49837C1E5DAE8DF4BE695A1784F9479403C4F38 + AFC045BFE507EE22F3817358CC81A5A515B646BEAE399E9A731C25D9D1E6019F + E4D42D78E076C4AE07D7C6D08134DE311CD91B6B1EB0E5BB9AA70ADC251170AF + F711BD10E9ABB37EEF2A097A4503D8BCAF8AE4EFDC80D171F59C9F9B1AB88EAE + 1E5CEEB480ABE72A78FB3C43750360537713DF2CB6E646FDE6B38D9E6BBB5551 + 558DAEE2609606B0E9EB0A2248790FC38F55E0575CA67502C6818B0B5A8B6D79 + 2DB073F6A18D30017CFCD50952901202F9988A5117758173B25F8C91C70457C4 + 16B41195D5350640DC9765A4202D0C0F4795C82DFF8D56717381EB978D217EFF + 25D8D34054D718013ECA2E2505E9E17830A26416244CEE708EB65CCDF3C037D6 + 601BFF0A3C7C56C1C36399B6B079446D6DAD0110FBC5510A10011905C82D6DA2 + D701A31DEEF3587F0C3C52623BFF2ADCBD7CE1E6BE8C2A0A4DC1991075F57506 + 404CD61152B02B1243C3CC3B30B1C385FABF8AF4C23FE1BA7C255CDD3D0C8567 + 4108854680E88C1222C8888254318E0347CFD22AACDBE112BF298748E60897E5 + BE707175D76CCF6CED759E0DD1D8506F0044ED2E2282DD1F6050C1AC03E27F15 + 88DBF72B3C57BC002717376D7B59D310FD7DBD508E8F9B04F364A3D000D8985E + 48F233623028A73AF0CB295AC57581B3775B01276737ED99611A62A04F82DBED + 37A5D491E195BECF79E910A74F35180091A987495E660C062800DD11B9B7091C + 076F2CA58AEBC3350531D82F81E84EAB942855EB944AB59CB3887341873873DA + 08109172881CCCF89011604FD175B44A00CF679F8785767733460C0DF4E19E68 + B278F7B190B689CF78849679E9107745ED0640787201E13304285504D9C5D771 + A79F3D0D2193F6A1F36E9B4971DDD020ACADCE101614E2E2603F3D8051FAB483 + 50AB886476204B3CF50899B41FF73B6E992D6E1859D477234BCDF88F89D9115A + C6F1B6E6543A38B904D8DA39E2EFAEDB7314373E818500E81196A5D43A7E6AA5 + 2A804E711DE03FC39723EE05E751780000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Speed Limit' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000076D4944415478DAC5570B5094 + D715FEFE7F1F2CA0B0B25D164C67F2D06099C537683269598D340AA8305A3368 + AC0D5005157CA4A1B40E48C58CC510634408D054196CE23B8906101B48657126 + 954709E2AE147CC06A131E8BE1A1EB02FBF87BFFBBB04A7711309DC999FDE7DF + DDB9E79CEF9EF39D73CF65388EC38F290C0F806198712C5D240C54B9FE121CFB + 1AC005119DE788AA9C1A61A027765AC1A10A2C575EAB36960115E6B12C52DF63 + 0198BE30D4432A6113C8D71D4AFF19F2A07973E0F7E2344CF551C0C3C383AEE9 + EBEBC377ED1D68BE710B3575F5D03636E9C9DF1F18BB0C595A6DC583A706305F + 15BE860572962C0E96BFBE6A257C14DEE30A6B7B47274E7FF605BEBA54A9B7C0 + 1257A7BEF8F94401B081C1611F128771BFDBBE0533C88E69A80DDD60EE34002D + 5701FDB740EF3D70260BE026053C15E0A6CF03FCC823FD095DDF44229279301B + 9DFAAEFCDACA0B5BC85FD6F100608354E1270394FE6B92DF4A84C7E449608C7D + 60AF5D006E5C0106CDE0CCC40EEFD86CB10120BFE99B7F2C84D47354C0D22860 + F214F4DD7F80FDEF1F8646DB78A6465D12F53808A70088F30F49AE37A7A7FE01 + 42A1006C9B066CCD09A0BF7FC899CDD1B0C3FF7DDBC1B02230EB77023317C24C + 7476EFCDE0B9914B406C191540A02A6CAD422E3F7E20239DEE5CA0FB1AACA698 + 18348FDCE5B0433E1AF4ED0C8885468A5D150B2C89A491782B39157ABD3EAAA6 + B2F494038039731649459EEECD99FBD2E47ED3A781EBB80E7C731C62ABF551C8 + 7907EEDEE0A6BD0CCED70FDC6419B16205C373E19606A82A03F79F56B2CE6C5B + CBEB590888AD69242D2FA1F9E62D24EDDAA3EFEEB74EBF5955DA3702C0FC5F84 + EF591AA2DA9D101F0BC66480A82A0B672EDF44FF8019AB672B2011086055AE80 + 953827741CADAE802B7F0777E62370FD03F6944020067BA09010D50BD9794750 + F60F751A4945FA6300160B172C9AD49E7BE85D992FA96FE1ED1292FB3AAA9C7E + 5683724D07D6442CC7DA98787BED3F519A1B603D98020C0CD8A240D2C1AAC2C0 + C4BD8D36D22FE213DFEEACA97CF80CC75D32530041AAD030A5BF7FC99FD353C8 + EEFB206EC8258A8F58BEE3D336A86BAEC1D5D51591112BB1E1D7EB2193C99E0C + A2A21896A3876CA4E5F9636520CC3F0DC8E4F8E3EE77705DDB145A7DB9E4E210 + 80E5876336AC4D885C110AC1BD7A08EF7E4973C7A3E74453705F198D8484ED68 + B8768DDA168BC558B66C2962DE7C1353A7FA8E9A0E6B5234B83BAD762E0836ED + 0413BE1AE78A4A5170ECF8A16A75C98E610055847C0BF88623BE7316CC7D9D2D + 7744C9FCCCABB02882D0D3DB8B8D9BE2A1D3E9EC3E78EE842C7915DBB76D83B7 + B7DC1143F119588E64D96D31B3E64390918DC67F372339F59DEA1A75F1420A60 + C1A2E56D05F9593E5E53A470D1158219E8B6A31EF48B01E7E2450D767474203A + 7623BABABA4638F2F7FF190A0B8E3A46E16E2BCC9BD7D96D31326F084F16E3FB + EE1E44C76D6BAFAE28F61D06C09D3B55487724B99B47109BA802FF0CF8258263 + 84769BB75B5A10FBDB4D30180C237C555FF9DA1140BF11A6952A5B04AC1C7D44 + 9575B4FE235EFF8D954440600770FEF431AAE3DAFE57A2304848C3D9003CB779 + 04005EBEA9AFC7D6846DA4C3D94EDC7973E7222F37C71180910058F68ADD1639 + AE21FEE755270054E11D851F657B4BA59E90749F2695D063AB69A238208F8255 + 2875B05D5F7F15E7BF28C2A449EE888D8D81D4D3D39103ADB7618A8AB4EF9E51 + F8405452EE9882C74928315C046BFA96A2E5410CBABD04B32460ECDA7722D64F + 0A61CACCB0DB625F7E05A2FC23F494241DF13112AAC273A237ACDBC297A1C8D2 + 04D1E095A12D900FEB09A32472E2DE79F01161E05A6ED3918917E1AE5408A2DE + A06578F4D8896C02209102206D78F94CE58C22BE11B1780857CB399BF721C541 + 360826BC38B1DD7F7A0AE68CBDF68D80B4727111E92FDE0ADA88B48D8DE135EA + D20B1440404080D85DFEFC77F987DF9329483DBB7055105A6ED822C0E78F7C8C + 2EAB0919DDC6E7BDB31DA6751104B989128E8F8620E2571024A5D056BC79FBEF + EF19F42D53351ACDA0FD300A0A0EDBFB5AC8E294AD7131E4A831C2F5E16784B9 + 83943C2697409824B32616819305B014E4D9EADF4502E1DF4854BD64C8C93F8A + 8B6515E9FFBA5C92E6F4383EB87FAFFC85E79F85D0A483A8B70C6637127EB7D9 + 4F47C2C25C58CF7E0C41CA7E300B7F4E7A880E3B9353F5A65E835F7D7D458FC3 + 40322F38F48D9FFAFA7EFCDEBE3FD1F2624D9DB08AC637888ECAC5260D981901 + 78F0C0C03B475B67E7FABACAD24F6C3C7532929161346FF64C655CDAAE243A92 + FD3F841FC9F6ECCB4483E6FA9347B221214369D8B95933035624EF4CA091F821 + C28F62991FE4E06A83E63C998C5761ACA1F41188F03C32966FE427639E134F23 + 7CCE330E64F1F784098DE58FD241865496610F872C0E96AD211713859323D799 + F01793B39F17A1FC52E53D2B674DAC555F38E16CDDB8AE667C750827BB27B12C + E2C95DC12B68FE5C7A35F351C831456A3B23BA7B7A88533DBD9A55D7D641D3D8 + D4C559B8BF98EF1B3279B68F667B5C008645A9548A5DBD9E0D258B4318860B24 + 5AD388160D0969357A86CCC51CC7D412ABE5C6EF75A55AAD76702C9B76003FA6 + FC176B4D49FD831B1BCA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Bulb On n p' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000048E4944415478DAED966D4C5B + 6514C7CF735FDAD2B2C28000E1A5B096B60C942D3A5EE24B36BF982C311297E8 + 073583C5992533862CEA877D71D32F2E264A4C1675F105B6B82F2E4B9C266A8C + C964BA6CECC3501975B4A5B4851444286BE9EB7D7B3CBDB7351B1BDB5AE83E79 + 9293DB7BEFF3F4FFBBE739E73C0FA194C25A4608B9ED99EBF32D4D2CCFBF0494 + EEC6DB2DE835E87FA34FE3841F64513CDDB67F3AB07ADE5A3AE47E014227EA8C + 51BDE93D96A507CDB52267AA9440679481D551900502428285F81207D1795E90 + 65F2A9391D3F5C772094D81080A953568BA4B0DFA3707B954D04D6FC349092A7 + 007807005B012087014437D0E47990A33FC1E2149F01F99D63E45EDB5E5F705D + 009EAF5ACC8A4446ABACA9D6CDD64620E56FA268ED9A73400E01BDF1212CFB66 + 60D16798908CBA9EF617266205035C1FB67F595E27ECAB6EAB075236800F79B8 + A75111686410165C731009E9BF70F6BBF71704E01DB2B711038C37770B0C53F1 + 3A10C6746FF11C831203257C1CFCA33A85A6E0E1967D1E57DE0093A71CEF575A + D26F553ADB01F4DDF72DFE9FA52FC3D2751784670CC71C7B270FE70DE03EE918 + 6B7C24BEDD50BD138029CB1F4089406A610482574D579D7DEE470B0158B63DBE + 52CE9476E11D9B3F00C820C7AE80EFE2A6B0A3CF5D590800B5EF8C62B965FA0D + 53008002549806EF05B3840077CCDEBBE7C04947C0DA13B370063D8E5C054030 + 214929BA2E532E6AE683827D87AEA8C2AA5105C4641AA6474B83B8044D8544E0 + BBDAADC96736558BB7BE60AB3467CCF80F460D8E0AA81BD59A92BC88F7297568 + 648E877FDC25A7ED7DEE97F38FC0B0FD79D366F9EBFA6D8955E2D888387406BB + 2063D4962723A8022C0048F3E8B36A2466C64C908C90DDCE7EEF8F7903B8CE3C + A4631382A7717BDC5252266BE1E62C9813E86C1D10B63A1B050EB5621871FC7A + 29A4894B41482E4561F60FA32FD454EFDCB5EBBC943740A613BA87EC7B789372 + D6B2238682E528DEAC3AC980700D0852A301C8CB5A1B1683AA384DFB2178390C + E924E96DEDF77EBBAECDC83D6C3F57D19C7EB6C28ABD80B766013220362D1A99 + 64445110A711C087BFFDB034790DC2BEF83718FAE7D47C5C0F006E480D542113 + 962EBD5957862589E2240B025C230E3464431F40003F081117047F9B882A22D9 + DAFACA6468DD005A423A5E2B29A7C71B3A734B80E1E7EAB4A4CC6C5072047D1E + 0102307B71041237E20731F49FE4E6AF1B801E05C6DDDC325AD356BAC36CB165 + 9330578A58054A0A937011A2FE3F617EDC77C9E9F73C418EE61AC20600A84B31 + D4D2C399C8A5A6C73265587DC7320C5C18C3D391D48D8DE7CACD733704408B82 + 5DB6E361483D09A95F6FC802086A297A7E9E0767BFE7B6C3E4860068B960D7F6 + 874CE9E55AB16A92DA8A3DBFE81E10C01AE61931171760E09D136B4FC8DA4747 + 0E1417E0C8C08BA0D3F1EA2628CB0A4892AC5D15198E7D7CA6F8005DDB1C506A + 2A0106DFA70531EB1208A2087F7967FE8F40F1013A3BECD0D9E100BD9E877822 + 0531F4C84A1CBC8139989C9A2D2EC0A1773F7B52A1F2217CDB0BB71E14B1EDD2 + 730C610707DF7EF5D7A201DC6C7BFADFB88697761C357E76F8838EBB8D2D08E0 + 41D8BF4DDFAADF0710B0730000000049454E44AE426082} + end> + Left = 32 + Top = 16 + Bitmap = {} + end + object SessionImages: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'Compressed connection status bar indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003C94944415478DA63FCFFFF3F + C34002469803181919C932C0D8D841844358700E3F1F9F3B3B3B1B0723037673 + FE03E1EF5FBF7F7EFEF479F7FBCF9F932F1DDBF58A6207685BBA0B498B89DC37 + D0D7E593979365E0E4E464C0650CC89A6FDFBF333C7CF888E1D2E5AB5F9FBF7A + A50472048A0336374889FC6761DE0EE49920693DC3F8E7AFA76FC3B337E8865A + BB04AC3537370D52949763E0E1E1C6E950666666067E7E7E0621410186B76FDF + 331C3D7E82E1C4A9331B0FEF5C1B0077C0964669A0E52C0764F5CDB495CC1CE0 + 9AEF9D3AC0F0F8E2A9AB8C7FFE38A03BC2DE33E493B090102FA1900239404C4C + 94414F479B414B531D14020CDB77EEFEB565F50276B80336B7C99F91D3353056 + 32B3C430E0DEA9E30C8F2E5D2064CF11BF9A47B6D82414141C382495F97B0C0D + F4B2DD5D9C19DEBE7BC7B079EB0E86F5CB6631221CD02AFFDF35D19EE4740003 + BBE71F64003A0067420239C2C456E3BBB79707303DFC63D80274C0BAA5680E20 + DB7628C0E70010088A4EFBEFE3ED01666375806FE519B22DDFDC6E42B903BC8A + 37307CFBB81BAAFC3F120DCD292862A8F4FE397328778067E152861F9FF7230C + FF8FDD32743190C3F6CD5D4CB9033CF26730FCFC720CAF4FB13A0688F6CD5B49 + B903DC73BB197E7F3B83E173621CB477DE062A3820AB86E1CF8F2BC4F91A9626 + A08EDD337F3BE50EB00F0E63F8F5E9069A850C04F810FAF8EE6B544884799D0C + FFFF7E4231989108CB4160FBD44ECA1D60ED69CCF0EFCF678296316271D0B1DD + F7A81002D9C5782D86F3FFA3F18178FBB4499415C55B5AE58F0259560C6402A0 + CDC77C6B1E596393D3D6D666E39350EE32D0D3CB7777756278F7FE036665444E + 8304541D03EB7982D5310B0B0B8338B43AD6D6D264B87C054B754C8E036CDC82 + D699991A072AC8C930707172E154C7046C0F080A0830080B0B31BC7B0769909C + 3C7D76D3A11D6BFC2972809E959B988498E85D037D3D1E0560938C8383036F93 + EC3BB049F600DC24BBF6EDDDD3B7CAA74F6F7B4171A314E4083E6E9E3902027C + 6EAC6C6CECB84C01D9F2E7F7AF5F1F3F7ED9FBE1F3A704AA344AF181F8ACCAFF + 7C7C7C0C278E1F61387D702B4EC3471D4091030C2C3C14347534370A098930BC + 7DF5DA7FC582090F083900A44743476B3348CFBB57AF7C292C0742D7E9E81906 + EAE8EA335CB97C61FDD4CEEA20420E40D74391034CECBDDFABAAAA0B080B8B30 + BC7EFD92C1C1C98DA09E79B3A731A8A8AA330801F5BC79FDFA17C50E00EA12E0 + E2E666F8F6F52B497AC17ABE7CF94D91034CEDBDD701A94028773D30A88348D5 + 437122646563DA0AE6FC63F43D7D64EB3DA2F4B0336F06B17FFFFCEB0B00CFAF + 7CB0F7A8A2550000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Encrypted connection status bar indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000057E4944415478DAC5966D6C14 + 4518C7FFB3B7D7BB96D6162894B73BC4604B01811E285A8948C241255EA902B5 + C40F4A54501463248081564F5B8D42A4266AA246F88A10D4947E006D21C1100B + 2DD037E10AA5BCF4AEAF5B4FA0E5AE5CF7769CD9DDDE354DC55B203AC9DCEE66 + 66EEF93DFFE76597504A317C104270A751EE9E94404532470199C89F05D00E22 + D30697BB3D70A77323DA3202F073C994C74C20DBD9AD93ED4A18F6F7DC784518 + F493E70A7DD5F715E0801B7156D1F60D5B59973C5A816DBA82B1690AE2E329F8 + F1609F809E6E02DF650137AF0BDCD49E7ED9BB31DF8DD03D031C708F4BB48AD6 + 0A51C4E3B31F9531F94105815B045D3E01815E6D5F3CD362DC0405162B417B2B + 4153A380B08C93FD72BF33DF2DF5DD3580DB0DC121DA0F98E3E8AA854B646688 + E2FC599119615E52F4B32D4DFA911920B0A64DA248CF64800182BA6A01B28C1F + 730B5B57DF35C0A18FECF92CC3F62F5824232999A2FAB888401FFCECCC561256 + F60D269D9A9426612D3BB793A93166AE03E8ED05FEA8275068784D5E51DBC1BB + 0328B1358F9F44A7CF99AFE06C9509FE1ED2097A3B3BB7A8EBCA484976A8386D + 1A88E5F794144CC89C055CF0007E3FBD945BE87DD8304059896D0101A959901D + C6004BA5FAD32640519ECE7DDF771C7718651F4E5E424CA66319E980C94470DE + 434164793E53EBAC218043C5F66D2CF69F662FA6683A47D0DD41EA5C85AD5988 + 619497D86BC78C21F3A64E11D0708E39202B5B5716F976190328B17F9B9844D7 + F378D6D6100403F42B57A177536C00B62F2D16F256C643229AAFC808F4E33B96 + 8C1B0C019417DBF63D90420A782CCFD400A101BA7965A177772C0065C553B698 + 456167C63433AEB6318080F283ABC8BBD63040523229C848175057A720241B00 + 28B1BD6B3691CFA74FB6C0DB1D42206810A0FC63FB61B694138BB1D8073DE2DA + D1FA4C4C00155F64498EDCA25496F67C077BDB4C04ED5CF32F065895103E45D6 + A3CC68AB95232B6158D12EF576BB765C4B8B11609EE47C737F2A3FAA0288E9A0 + 576DFF6C9B98D98FC8AE71EA3D451C2E1D8B74600C60142EFBFCC6001CAE2DA9 + BCDFAA2A88D39802F92359D6BD366B0A30CFF933A55C819BF7A2C05CC9B9716F + 2A280F019B71594C01FBB05D8266987B3DC47B7EE500978E76DC8B027325C7B3 + 9BA20A983399022F0C3965D28D8ADA75F05E9DBA02673AB5AD4CA430B1A0ADAB + CF08C02392F3F5AFB51CE010D62799025387C4DB8C2327CCD8B64B7B677CB62D + 01394F2544D4A0B0A0A5F20288C0DA30136A40484073CB7563008E151BA255C0 + 43D05910F5921959BA41C09FD7B5FD6353082ABF1F1DC903CAD63BEB5AD4B31C + 80BDC8E1F5195260B6E45CBF530760D3BA0CB475861E670E108785AB6FA343D2 + CE4E4C4BC4A99FC647D4E10A5CFBED942A3F5761808C82C773C3188063C54BA9 + EAF7969A844F804AAF6A1EEA0A9C6C04DE28EE57F7EFDD9D87ACA9359172E40A + 488D0D5A917005580E5CBD1C3002304B72BEF6815E056C3D210FD4B730E2FD60 + B6DB17B5A9FBBDF5EFB14FD2C3D0CA304EED036D55155A0E105E050968AC3754 + 86B324474E8116023EAC8B417BDE8ED6BBAE42D6EA6E75B9E9C46604A572BD22 + 4C6A27F47BAA58A56A0032B5A2A539680460A6E47C658B5E056C24BE08DABE34 + 12E3C15CB0675FD014687083062B23EA7005BA4E1F548D0B0C22C4FA406DB591 + 242C9DC914C88B2A10BF1CD4BF5DCFF2C17AD7D4881FBF0ABC29057B0EEBEA70 + 00136E5CAC54E3AF85201E17CF1951A0349329B0319A0349EB59193E3F24FEFA + 1CFA1C51C6AC85A07E4F04204447A1E6C42D63008EE5393A00B424FCAB24E261 + A4130EED8088BE133840DF9532665C6F442C073C75B78D00CC909CEB5E8EE640 + F23BA0DDEB742F47F07EF8336BC5373CA5914E1852125175D44019B20F925FD8 + D232DCD7417F651F24CB6302F82FC7FF0EF03757FBE5DF12144AE30000000049 + 454E44AE426082} + end> + Left = 32 + Top = 80 + Bitmap = {} + end + object QueueImages: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'Download File' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D74944415478DAC5D56B4C53 + 671807F07F11863291103538E736E732B3B9E987ED8BD958001D9782C8401810 + 6460D8C08113B91890DB1893388C324569B938862124CC2C614EC5BB736AD065 + C93E8C21968BD072B117A057A0A53DE75D7B0EAD143AD3034B7C92E63D3D79CF + 797EE739EFF31E1E2104CF337816008FC7E3745176ED6F5CD5F7F426F0051901 + BAFF0D703CD51FCE14CF32E5DC1D11FE1449DBF526123C17B12800453B5788DB + 7F0F42A935E07ED7C83CC4A20046CA39409764140AF5940DA10389A84B0B185D + 3020ABE616A94C0B80DE48235770E599738FA58740A59D825C3DC920C6B57ADC + 7F38D231A1D36DABCB0D1F5D10E080E006F9FECBED989CA69D9AEFEE0A2854B3 + 101A3DDA3B073B4FA47FFCEE8200FB4F5F25273382A03350C8AFB9FACCB9DFED + 0D46BF548DBB1D83D04C1A6CE79F2854A8DA17CC5B1060DFC9CBE4D4FE1068A6 + 28A7AFB1AC57894C0D8942633E26B8FE8708A733F92C20A7EE36A7BEA6691A15 + 9FFB995F014151FD354EF8B29440E8A6A651D1FC3B0459614F015CFB5AA19AC4 + A7FEEFC0CDD58513C01A45B59721CCD9690FE0DAD783A35AF44964332CE7A234 + 258805D45C42EDC14FEC010BE96BB15C835D7E9BB0EC05574E1528AEB988FABC + 281660D95816D3D7ED9D43304E9B57B813EFB0303990194B04E771A620860564 + 096F2EBAAFBB87C6911CFA9EC3F9FD4A110EB6EDC6C6559B5116580B57173794 + 54FF8286A2581690597D8D535F8BCDED74C7DCD7EA09FBBEA64CA679F3B56418 + 0F0C87E1F9BA0BF49A696CF1F045795003CA8417D05812CF02BEAABAB2A0BE1E + 34F7F4804CC554DED2D7B9090176730694DDC8BC1805D7B5145E5CB51496C53A + F65883CD1E1FC2AD67079A4A935840C68936527D2014AA4913A7BEBE6B2882D7 + 0A1754F25BF0636B3766EF67D627F77EC39D494E139AF95911EEB20DF8CB74CF + 9D01A4575E20D5D9E1504E989C4E6E89F74FF9E0B5375F81414AE32D7D360A13 + E398F3625537B2DB7661F9AB6EF05CEDC16C5C2C806246029A41E846F5AD0C60 + EFB1F3449013817133A0F407E72B70692A11BE815B31343002698F0E1F2C2D81 + 097A3C983E8C351B57C06BB527A85989ADA3E59C4E316146A8250C20F5682B11 + E646625467E45481AD8235F00BF2656E3C281EC6C4B009065A8F95EB97C3DBC7 + 8B4D46DB27B78C2A8516CA1E03A64D93ECD7F08B233F13615E34145A23CA1BAF + 73AAC0B6103FF6C6348B58E2B6042B7DBC6DC9285B62F6BF52AEC68484C27A79 + 127E3D52CC2EC294F27344981FC300B8846FCD4B08E46FB77B3A8AD0F39E98A2 + D9714CA68454A4C6264D1A96513EF8E9682A0BD8F36D0BA939140BB9C6888AA6 + 1B9C2A10121634B3C8ACEF776EC9D96385740CFD5D923162E4F9494AC63BADF7 + 6000C9DF341361413C03E012FEF56B11B6836F97681EC28C933D91A3F761FFBC + E436C0675F37116161020338DE7C935305227686B365A7298708E988148FFEE9 + 7198DC06D85D7496088B1221336F955C22B0E1654445443A283B656B3F71BF04 + 7DA2C712F3B7EAA39152A5C42120A1A081088A93CC0023AA5A6E71AA404C64F4 + AC5673FC1A2C885E519F43040388CF3F430425C90C804BF01BD7212E2AF63F37 + 1BEB1AB08C030CA2771E8201C4E5D593EAE23D90736CC3D0B3EB90109D604BF4 + 1442CD41591162743FEAED151B946FA314263B00A7CC33D1E92984CE55CCF12A + D2317048B9C5AE02CF33FE0551172BB9810373900000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D14944415478DAC5D77B5054 + 551C07F0EFC2020D46C414218666A5BCA6FAC77F9C661B04E225298361E21002 + CB082493163A2312984D63AF41F3112C461A8E220F9D61ACA948B21C4126FB33 + E2FD5E026117D807FBBA7BF7DE137B97DD0576A37BA3C9DFCCCED9BD73EEF97D + CEEFDE73CF5D1121040F3344568048241274D2C58B3502D5A276934997505858 + A8FBCF005269161886E1D5BFBF7F10EDEDBFBA45AC0A60B15878F5D7EB0D5028 + 94686DBDE782F85F00346D81D96C5E40B4FD66B150C9F9F9F9D3AB06D0348DAE + AE9E15FB464686C3D3D31314655E8CE89847C45811AB025807E413DEDEDE6059 + 7609A2ADADAD532ACD7E61D580EEEEDE15FB464484B93D7EF56A1D7273B345AB + 02501425E8BCC5515B5BEF041CFEF28EA075ED2BA25096F32A58C682DE9E3E41 + 89C3C243B9F6DA72C0A9BC6DE0F350B47669BCDB0BA5DA807DB161F0167BFCAB + 0AD45D6B7005302CBF42DCF97D0CAA390AE3D35A48367A41ECC1FF1286866EB2 + 01EA1A5D0134C30FD02D9F865263E410634A0D3263C2E0EB23165481FAC580A2 + 0BBF90D3F9D130D12C8E5436AF7862F98144A8E78C50680C1C6276CE849E9129 + 2444FAC347FCCF95D8B4F979AE6DA8BFEE04BC2BBB4D3E7F2B160633CB4B6F9D + AC52BD08A13561607C060777BEE4B6FFE06C1F0ABEC942E4532FA23CB1025E1E + 5E6868B8E1041CAAB845CE16C643473128AEFA71C5E49F142460744A83BB1D63 + D0E89DCBF081520DA924D8A5FF986E0425F70FC13B84C0A43563CBA32FE34C72 + 359AAEDF7402DE3ED74CCE1F4C84D6C86F77B386F57E1D536A3132A5E6564FCB + FD5E7C2495B8CC3CA7E90D7806B358F3E423B0AEA199212D8790189290979B6B + 03149EF99E54BCB31D6A8305A5D5B778235AA952F83FE681D349F5F8BAA90F79 + D1EB5D66EEBB41CC256709CB7DEC887573CFA2457BCF87031C38FD2DA928DA01 + 959EDFEE668F2DE783F0CCE6F5A02659849B8A7036EFF58599F7433A3F73DF0D + DEF00BF4E5F6011B80E15A029643E8A64D4D1CA0A0FC26A93C9C82D97940D985 + 1F78039AE96C48E2B6E2CF91094CF6EBF04574158C160337F380E7D6C03FD00F + CCA2C4F6D67A4CA7D4CF2334720E90F75913911D49C5B48E165481AD956B1115 + 2FE1061E1B1D8769C202136344C0463F0404F9DB92B14B935B5BB5720EBA2133 + F494DEB61BEEFFF806911D4D83728EC6C99A16DE80EF8C9988498CB20DCCDA10 + 9E5E9E782228C0918C7124B6FD56293430CA2D48F7DD8FE2FC62DB4D987BB291 + C88A7773002121A90A465C52EC92D93184759931C3DADA99291566FAB5C87ABC + 1081E2B5CE6598F3613DA93AB6070A2D8D4FAFFC24A80289C9F10B3799FDFA2E + 2FB9EDBB727206C3DDF219428BA2E4C7673BED637080EC0F6A89AC642F071012 + DBAAD721F9B5A425895C10F3B8A9070A0C740DBB247700F6BD7F85C8DECBE000 + A76A6F0BAA40CACE1DB6B2B38C5BC4E4C4247AFEE8779BDC0178B3F432919566 + 624ACBEF1DCF1E71979EC6AE94543765671CCB6F74588EC1DE21B999C22B1327 + 5472B7808C924BA4B22C6B1E40E35CFDCF822AB03B356DD152737F19AC8881DE + 41B7080EB0B7F82B52793C9B030889A49A10A4EFDAF3B70F1BFB3D606D4738C4 + 800B8203A41FAD2615653950085C86DB2F8720232DC391C8096196A1EC8851F4 + F50C0C8C52AA089C8065094050E685E8F49341271E157816E91839A672BC3888 + 1EF6DFF3BF004F2B04B9AF11C53F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000047D4944415478DAC5D76B4C5B + 651807F07F1963D3E816266350C265462626FB60FCE43787865D8C0BCE807341 + 270B719B63306E196C5C44E7C42130B7415B6033B28548706EDC6F63938961E2 + 251A11583B270E22D01B85B6B4859EF6F5F47E0AD8F5ED3EF8246D4FDF9C739E + 5FDF9CFF7B7A788410FC9FC5B300783C1ED54159D5DFD2AABF3730D825488DD5 + 7207ADBD7D05941FDC066F26CFB24BE37762FC249E1E3030640717F1C80093D9 + BB89E8FB7D022ACD02EE8C4EBA211E1960347907181D57403EA77722B420F135 + 8762153E033245B748C5A158188C66E408BA3CEE5B76642766357AC8E67456C4 + 8CC6803B239343F35AEDCBD5D9AF297C0264087AC9D9F75F816ED1ECD5FE6BFC + 01F92C07A13660607862983DC7569F00E995DDE45CEA7668174CC813757BDCF7 + D3C33B30363D87FEA109A8750BCEF129F92CD873F07C021C3DD7492EA4EF845A + 6FF2FA18CBF53A2E9DC3B85CCD6E13DC1814833D870D905DD347956B834E87AA + 8C5731AB635050DB4385FF28250E5AFD22CED4DFB69CC305A0C9F5D1B3ADA8CA + DA0DD53C43D59C5B05D59D1064ED7607789BEBD48A1608B2E331C3028A2FD1CD + 4071CA761B40D40E514EBC3BC0DB5CA796374198B3070AADD1E7192814B5A1E6 + F81E1BC0B2B0D0E43AADEC1A84B909906B8C38FDE50DAAC6F9C971D6CF224133 + 6A4F24D80099C29B54B94EFBEC2A8479895680AF5554D5844BF96FDA00C7AA7A + A8729D56FA354427F642A636E2CC955EF48F1AD98CD3DD20D73F66C66FD56FD8 + 0069E7BBA8729D5EDA00E1C97D5680E5C2DD5FD28FC7374420326A33FCD825C5 + 8F7DB3AC2D7ED6177BCFF7E36CDBD79C6FAE3761ECF2EB3640EAE71D8426D7EA + 192584F949564079FD4DE8170906C40CC2A362BC46B8018E54B4129A5CA797D4 + 4358F00EA4EA45E7986CD680CCCA41AC0F8EF20A71ADA9D905385CD64C6872AD + 924E4350F82E0B30E27CC32DE738CD4C34357300074BAF139A5C677C52074151 + B215C0AD07522D72AB7F063FF259F0F961F6C62B235A5A5A5C80F74AAE129A5C + 2B26FF4155E101C838311C679B1F679B87466C41486818DB14D686FF85686D6B + 7501524E37129A5C6797D4B97DD733FE1851066273F4566C0AE5BB1A7B40B4B7 + 7300074E35106EAE696A6FDC8B48BB3088A0B068046F0A05CFDEE86188CE8E36 + 1720F9C37AE2C8354DFD3DADC5B1CA1FB181FF0C828243ECD3CB5B86904927C1 + 188D6E17665767BB0BB0FF832B849B6B6F4AA327F841624248640C823686D87F + 199621E4D229DC1D1D52B223F3D15B62221C889EEE0E17E0ED823AB234D70FAB + A48F6F232030124FB1CD9D17D7128442360589F80F25614C2F318C5913B036A0 + DF81E8EDE100924E7E4156CAB5A7FAE53E03FDAA8D087FFA39ACB2AF6E5CC48C + 5C8A3F25B6E6E35F250C5B8EE12736463810F724A32EC0BEBC8B64A55C7B2A86 + FDEF70EAF2AF10CBFC9621544A29FEBA37ECD6DC5156C49AD5BDE041C7029EB7 + 02DECAAD254B734D8390C85D0895528607F747566CEEAC6DC5FEE82B669C0F26 + 160055674E11C28344B50EE489703CB92E101363773D37773BD6C727A36595D8 + 1810B5767523BBF5829931EDF2A6B903F02FA84B16EEA2F48786000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Upload File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004904944415478DAC5D7FB4F53 + 671807F06F19A29BDB1C53B994C8EA32108C3F2CFB07265B147721EA02DB1C77 + C9C64467048953B984992DE2263836698B44B3B9E906DB18B78220734436A651 + 1723D2D272A719D096722985DE4E7B767A68CB398595D3FAC39E84D29E9CF7FD + 7EFAE43DEFE9E1912489FFB37876008FC7F36A504EC5EFDEAAFF3012784D7830 + 46CF3C4867FB0A28F9603BB834CF7E4AF54D39EEC8C73B8D0419CB443C32C06A + E3D688F6074A4CCD9AF0976C9485786480C5CA0D201B998066C6B08090FE734B + CF43DC85CC98099F01D9E21B6469660C8C161B7285D73C9E7B366B17A6670D50 + CFCCD388C959238518ED9AD3EB5FA938FAE6844F8023C236F2DC8157316FB671 + 3A7FB53FA0996620744674762BBBA939B6F904387CBE852C3BB8137A9315C7C5 + 2D1ECF2DFE3016C3AA19DCEC526266CEE43A3EA699063507CF27C0A1B266F2EB + C3BBA03358398FB1AF57A54647636C54E6F5DB7250732C002E5DFAD6ABEBFA9E + 6E23CA8FBC8EE97902F995AD5EE14F65EC80DE68C199EFDBED732C02F6EF4F85 + D5CAED1B7D54D684F29C384CCD115E85332BBFA219C29C38368020B84D78E84B + 09844777639202145DF4AE0345193B17006209C4B9BB7D036495364094BB1713 + 7A8BCF1D281037E2C2B1BD6C80C5628154DAE371E0D6AD51C83A5B07D1C7F1D0 + CC5AF0D937D7BD0ACE4BDB41FF2F14D6A1F2443C1B60369B394D72E08B5A888E + 27D0005FABB0BC1617F3DE5E0A90C9E41E0746476F41E6991A884FBC03B58E5A + CDDFB5A1436AA12E49EF6E90EB1EB7E17EC55B6C80C964E23438B3F867884EEE + A301F61B52CAE90E3CF16C389E136C861FB5A5F8512FF6BDC58FFEA3EEF97E8C + F78E3DE7975F6B3178790F1B60A400F21EC58A80929AFB10E525D280922BBFC1 + 6026D12927B04910C519B12CC0603472EAC0FB9F5641949F0C956E71CDA8A78D + C83E7F1BEB82049C1035B5756C407A7A0A8C1440A1E85B11F079D51D080B5229 + 80055FFD78C375DC9B4ED4D62D03E0DA818C4FAE40589846039835ACD2E398F8 + 2EC2045BC0E78739829747D4D7D7B301697680C180BEDEFE1501A7AFDE427941 + 3AD48CCB70C41E5E7117A1E19108090DA3424107FE17A2A1B1C10D90964C0338 + 75E0D455D66703E10FA936109B23B6213894BF18EC012191B801521D80FEBE01 + 4E0857AD0D465AE93DACE747202838143C47D04A88E6A64637406A12E63976C0 + 59FD6373483FF73702435FC086A010477B794B106AD528086A9B672ECC6BCD12 + 3620252591EEC0C0C010A770A5D68C93556308E44762C3C610C737C312844635 + 861E5997963A3217111915EE44B4B634B101C90E00D78ACDFF13FECF08B09E0A + 772D2E37C4847A0C0AF9432D49585F2608DB6CC09A800E27A2ADD50D9094FC1E + 0D181A1CE60428AE1F876CF2496C7A3E1A8F397637266252A3429F62217CE487 + F86EFB187E4275B813D1AB90B90192F679D501827A26C8AEECC28371FF258829 + AD0A03BDDDAC7067D188D5ABDA481EF44397F7BCE4022426BECB7923622272DC + 10535A3586FBA5CB86BB6A7B913FDA8B08D78389B73F4A99657F38FAE9E15AA8 + 1186A79E0E8472B0C77338A37C7E325A5209D5018235ABAAA9772FDA08EB1B5C + C29D807F01CBAF16EEEA4161720000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation needs user interaction' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003084944415478DAEDD65B4893 + 611807F0FF8B6299278232CBBA0B0AC40CA3C34D37451711186A999A67CD4386 + 9936E774D369E629DD8C3CD4BE794AE739F3702304898582645D74402A1002C3 + 539AA77998736FDFBE62694E5436F4229F9BBD3CEFB33D3F9EF77BB7114A29B6 + 32C836601B1091DBB2A502129ED34C8B625DA0526FBEE3F6C35690B0EC26FA98 + 7719730B9A4D0744E7B180D0AC46FA24CE15B3AAAD003483DCC87C46657C3728 + E70D0768341AB4BE788DF6CE1EF40F0C6361410DDB3DBB71E684233C5C2EC0CA + 62D7B2FA3B794D2021190D948977C7D4DCA241CDE7E655106515E2D3E73EBDFB + D65616C815C7C0DE6EAF2E17A30504A7D75346700553B38B0815976CB8B14C1C + C4BD3E2AAE415B7B17B776BF741EDE6E17616A6A82B6975D282AAFE7F2278F3B + 407C376C09E03948D0FD3A2A175CC5C4AC6113F00CE34339338B83FBF7A1302B + 018410DDDE2D4106BEF50F608799191A8A7374F9D8BC461690564B99040F8CCF + A80D0264E797A2FBDD07F02203D8333FA6CB8F8D4F228297C61ED13C0ED8D9A2 + 283B51B7C7D3020253ABA95CE8899F4A3522EF956EB871812870D5BDEF83C348 + 93C8303034C24D4410158C53CE8E7F01D2069080942A16E08531E5824113F837 + 7ABFF6215DCA70C7A27D16C2FD3D70EEECE96535715A80BF5841E5226F8C4E1B + 0F30AD9C41746226C62726616EBE13F1512170387A78451D5F5A0FE2975CF907 + A046747AD9869BE52504ACC87574BD41BE5CC1AD85B111707238A2F7BD7C691D + 886FD2532A4FF2C18F29E34DE055570F0A8A15ECDDB7844C9ABAEC462C8D7869 + 2D888FA89C05F862C48800ED4F7CF7DBF7B067AFE4217BBB55EB04D21A90EBC2 + 3216E0C7017859E56B7EF803BEFF9A3523A36350D4B5C0DADA127E9EAE303531 + 5905500DE29D584AE5C97E189E34DE0498F25A74747673EB98C860383B39E8AD + 4BE0008212CA88FD316444C0C7DE2F28642A6063630541CC4DEE59D017424915 + 8857BC9C0504B20095D100EB0DA14401E2C96728931284C189CD0788249520D7 + E26454C6018CFB4DB89E489254FC066C7AE725B1F57FCBB701FF3DE017BD2357 + 7AE39004FA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation has some error' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004D44944415478DACD976B4C1C + 5514C7CF9DC7B2C23E90A53C5B0A2DA8314D93624D91871A5F35E5A3240A468C + 89F2680405FD62FC20A6317EA95469228231464C202A7EA4B13536B5400BB6B5 + C63446535A08CF05CB023B0B2E3B3B733D17777176676677850F7892C966CFDC + B9FFDF3DF7DE73CF259452D84923FF1B004248DCC61FDB6C8FF0841CA3401FC2 + D6FBD095197A358FBDDC26402E2B949E39EEF3FD18AFAF4DDD78006D005C963D + E54542B8B7ED84ECCFE43848C5B6C9F82485DAACE3B386FD2CE333AFAA20517A + 8B52F53DB7B4FA057EAF6E19E0B4D55A208A62AF932325453C0F2E144FC41611 + E2A6A2C08A4A476459AE69F2FBC7FF3340A7CDF6284748FF7D02EFDA83E25BB1 + 2984F83DA82CAA945635FA7C17120660E21602E70EE2F0D3121CB59979301ABF + 6218640A4F34F87C17E302745AADF99C285E3D240AAEBBB7291EB62584B82E07 + 1755593EDCE8F74F9802B4E182CB76D84771BE0FE76AC2CEA7A581EDC9A7409E + 9A84B54B97628A25979682B8270F7CDF9F03C5E3D9F4CFE074E0BA189DF34AA5 + A8A31A0274DAEDAFE082EB2E168408F1FC8B832064656DFC5FF9B207E65B5B21 + 3A7FB0EF33DBDBC1F942EDC6FFA0DB0D130F5744405C0B064152E9CB0D92F499 + 0EE05DDC6738FA3F0EF27CA153137AE7335590D3D51521B6D2DB0B73AF358316 + 3EFBA30E70D6D444B49BADAF87956FFBFFFD8EAD074519ABF74A453A806E87A3 + 3C99C0E021518C0CE99112281818D0857A1921661182590E8AA74689331BAFAC + 84B5D19108DF7559C69C0115755EEF5034C0C93C9E7B63B7C196CB3E71025C8D + C775FE95BE3EC0AC08A9D57AF1259CAA9996169D7F1AD7C2A4A27E80006F4603 + 0CDF2FF0A50E93959F8310E9061046B684D199D64C91D6BC380DBF058343755E + A9220AC03E83E1CF11639C09B908B12B0E8407C5A74CC49905D0FF8B2CCF2240 + 6E3480F2A0C51277E3EFEDE880B49AE78DC5FB7A61B2D95C3C6C570201150178 + 1DC003A2181380ADF6BD1DA7C165B0E0FE01E88389A657E3025C936543809903 + 82603A054C3C1FC5D34DC4C37607A760A2B9C9144246FF8D60503F055D0EC7E5 + 22812FB1190030F18204C4B510E326103EF48D192F42C7C92CDC861906BB60DF + A90F21A3B656E7FF1385185C7A75B5EEDD424F0FDC6E795DEFC75DE036D986E5 + 564C44859A34CCCC5152020706CEE83B42F15B384A66FB313A1906D1B951790C + BC23918908470F7EA344144EC505988A9335D3B0ABAA0AEEE9EAD6898F6942CC + A250680071B3A10116BEF97AF3FF2AB69FC0548C07D2BDEF60C91401103E8C30 + 1D771768A220E261543C380496D061E4C6D08EB5B6181E4685EDA7202B345501 + 3C8C7EAE28075973188DE3E8310DD7354AD2A7318E63DB954CC2156B6B010691 + 76F428AC4F4EC2F2F030C4B2D4B23248CACB03CFD9B311E2AC2698A7F42A8EFE + 489BD971CC2C5C90ECE639577202957222C60AD669458D5F90840D4BB2C70402 + DF65F3BC78D73621FEC2FEE714450E52781AEBC2F3617FDCA2F4939494C709C7 + 7D95CE1197738BA5193BFFEFA87491AAEAB30DABAB3F68DF255C965B2C427F12 + 9062569C5A138C861FFB64C56800E0A7F580FCDC96CAF2B0B56D5C4CEC2FE1EB + B72CB8E5372E24F8B0B2850F7D83B72190F1771D7FD97CA3305E4CE07DB7247D + DEB69D8B49344886CD56C1AE66D8B20C0B917C7467875ECF69AF660B3EDFA099 + B029C04ED98E03FC0DC31AC2DFB4F6CBDC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Operation needs user interaction 2' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004F54944415478DAED96794C54 + 5714C6BF07828022D225D15636051411ABA9315DD2AAB1B4165A05150564C705 + A5B2381118CA2E8AB80C20556066947D1006294B444B6DD454AB15E21625B61A + 6A098A084501D966065EEF7D531F8C341A9BA07F94EF9F977BDE77CFF9CD9973 + EF0CC3B22C5EA79831803180CDFB2B5F2B0113B0AF82CD102C8742F5EA3982D3 + AAC06CDA53CE666E5F813EE5E04B6DB677DD0A7393A990EC8DFCCF0021A90460 + 6372199B15E68C5EC5CB017CEEA60610EF897CA18FAAA6287DC43A24B502CC86 + DDC75871F84A74F7BF1CC0327735406672E40B7D542765E923D6A1A9E560D627 + 95B2928855E8EA1BD0D8A854AAD0D6FE180AA5126FBF690C037D3D8DF70EEB82 + 60366D2A329285181C1C444B6B3B0C0CF4606438F15F41A89FAABAF0001FDB46 + 01FC77C959897035BA7AD500F79A1FE2C8D10AD45DAB874A350435CBD21C01DE + 2EB0B230E1D68E1E6A80558E4B7158568E8EAE275CDCCAC2145B7C5D603DDD4C + 0380FAA98E170C07F81E8CDFCE12562A74410701E8E87C822D113BD1D3DB07C7 + CF3E812549D6AF50E0D2E51BB874E5068C261922E74002C6696BE36BCF208C1B + A78D818141D82FFA00736659A2F1DE03549C3C036D6D2D88E2043079770A5F8C + FAA9AAF2870004A9650420B1989544AEC1E31E158ACB7F80ACAC1AFEEECE58BE + 6CB1C6271026A6A1FEF706EC2389ADA69B6285573017F7757382D3974B785FED + D59B4814893177B635764404F2F1A7FE8ABC343EB69D02F82614B1D228573CEA + 56E15147271A9B9A31D3D2027AE3753500B2F2E438F1D33992F41BD8D958C1C9 + 3B1893264E404E7A22B4B4B434BC5B8549686A6E41C1A1244C30D0E762D44F55 + 9E3B0C20A5148C4FBC8C00B8A1BD5BC9BFE8E8ECC2ED8646DC6F69C583876D68 + B8DB843B7F3472C3161F1EC801ACF409E1DA9E40809E9528230FE77EBD8CDDD1 + A1B09EA19E05EAA72ACB49E57D6114C03BAE909546BBE3AF274AF4F52B70B8F0 + 18CE9EAFE58A51BD616C445A6EC6CDC7ADDB0D880B0BC41C02B0DA37041F2E98 + 0741A0CF0880ACDC12FC78E617DE4B45FD54A5D94300E12972305EB105FF00A8 + C8C6629C3A7B01736D67C2C96129A69B99F02D94E4CB5173FA3C62B7AB93BAF8 + 85C09674202E6C6407F61FCAC1C5BAAB10ED88E00791FAA9E44786039480F18C + C963A5311E68EB52C2275008A54A89ECF424E8EAEA68248DDF7310F5BFDD4194 + 6033ECC880ADF50F85219901714A82C60CD05FD700412C3949FDC8FE6E177762 + A8A89FAAF8700AEF8D482906E3119D4B003CD14A00FC8322D1D3D38B837BE3B8 + D63FD5C5BA6B48CBCC511F9D403F2C986F07B7F5EA846B9C1CE0FC953DEF2DAB + AA81BCE204EC177F0C3F8FD57CFCA9BF483A04204C390A665D540E01F0E2000A + E595385E731A6F919B6FD1470BA1A3A34386F12EAE5CAF878DF50CDCBC751B5E + AECE58B6F453B86F0885F164236E60E7D9D9C0C2741AF1FE89EB376F61DA3B53 + 102F0C81BEDE78BE18F553C924C3018AC0B87F9BCD4A63BDF0B05309D5C0002A + AB4FE1E70BB5686D6B8721B9566793C28E5F2C211D998CCC6C19990B53AC7176 + 8030611F997073CC9F6B0B79793539BEF73189F817BEFF1E5C48579EBDBA3D36 + 6EE39E0562111F8BE400844758499C375A3A95180D796D5217CECB128D584789 + 6460DC22A404C09700284605C03B40C03D7333F78F5847890AC1B8864B5849BC + 1F1E748C0EC0F3142D2A00B3364CCC8A3980D1F90A9EA71851BE1AE095571EA6 + D7FFB77C0CE07F0FF037E7232F89F0ABF7F90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Suspend background-queued operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000017D4944415478DAEDD63B4BC3 + 5018C6F17392082AF55A3C917A696B515474103AF8215C14746BD1AF56371D5A + F003E8E8E020B4A0784B35549AA8A5A5E9C5DE8E674A939AF70C67B16032BEFC + 79CE6F0CA694A2BFFCB00FF0013C40249949618412AE2345D9FC773B8ECE8F5A + 837D3891067B7A76D8F27A830B882633466C6B9728CA887D7BCA5D23ABD3528D + D303F317389106FB626ADFF47AC307F8001F30FC80E87A9CC88E41EDFE860B80 + 7A61407875870D2AF6EDF5E116595D1800F5C280C5D83691E5FEA0FE9C45B56E + 1B0440BD302014D9700D16F2775C00D40B03D4A5353628DBB7A2FEC80540BD30 + 80845688E418340B2FA8D6EB8000A8170604E7978924F5073F8B6FA8CE0140BD + 3060666E810D4AF6ADF4F1CE0540BD30607256750D564A061BEC8200A8170604 + A682AEC16AF90BD5290C807A61C0F8C434C118DBB77AB5C20540BD3060742CE0 + 1A6C342CD4A03D1000F54200F6537AC1A6F69C37566B582F6FE6AF4E9A833DFB + 29057BEDF2B8E9F5C670FF96FB807F01F801B7C13CDF2E52D619000000004945 + 4E44AE426082} + end> + Left = 32 + Top = 152 + Bitmap = {} + end + object ButtonImages: TImageList + Height = 32 + Width = 32 + Left = 32 + Top = 224 + Bitmap = { + 494C0101020084009C0020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000800000002000000001002000000000000040 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A0A0A00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A0A0A000A0A0A000A0A0A000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A0000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0 + A000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0 + A000A0A0A0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A0000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A0A0A000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A00000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000A0A0A000A0A0A000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0 + A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000A0A0A000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000080000000200000000100010000000000000200000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFFFFFFFFFF0000000000000000 + FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000 + FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000 + FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000 + FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000 + FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000 + FFFF7FFFFFFF7FFF0000000000000000FFFE3FFFFFFE3FFF0000000000000000 + FFFC1FFFFFFC1FFF0000000000000000FFF80FFFFFF80FFF0000000000000000 + FFF007FFFFF007FF0000000000000000FFE003FFFFE003FF0000000000000000 + FFC001FFFFC001FF0000000000000000FF8000FFFF8000FF0000000000000000 + FF00007FFF00007F0000000000000000FE00003FFE00003F0000000000000000 + FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000 + FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000 + FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000 + FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000 + FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000 + FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000 + 000000000000} + end + object LogImages: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'Clear log' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005F04944415478DAC5976B6C14 + 5514C7CFECCCEC76761E74BBDD6E0B042A0601B7A54FBA4B79698C6862149B7E + 526208C1B0A525040DE193D1123F1112252AD016910F7E20C40812E421314A40 + DB145AA0246BA1A565FB802D7D41771EFB98D91DEF6CD975DBDD655BC070BEEC + EC9D39F7FF9B73CF3DE70EA6AA2ABC48C3A2001886FDAF42F500197946A3C929 + 491EED7F4C37194023CBAE468F34A1BB4D4EAFB8FF59C51B296A0190C4EFE832 + 5F5543D535BC743A258026AEC3B1F345C536BAD3D5053E7FF0E31A9E3FF2B4E2 + DF318C8DC4E07C41E1D2F9E66C13FC75F98AAC2872357AB1D3090011711D76DE + 6E2FA1ADB916E0BD025CBED4AAFA65A57A1BCF9F9CADF8418E72E02AF16B49A9 + CDBC70E1FCC8D8F0F0283437B7495B27787A0A4013C74D8AAF28A2ADD6ECD824 + E3E38FE0EF966BB2AC84DEDE26087FCC54BC81A6DFC409FC647959213D372F27 + 32A686C3D0D27A031E8C8E1D734EF01F4E0598C33DAC282DC8CCB35A12261B1E + 1987D6F69B6250565EAF93A4ABE9C40F314C3549E0C7EC6585A4253B6B7210E9 + B4DD70C1BDA191731E2FFFFE17AA1A9C02D0C8B12772CCA62A7B890D701C4F98 + 1439425B47E798ACAAEBB60B822BE59BB3EC1603491CB697166059995C6CBC03 + E5937B70A859E1F9B7EA00848424DC8361FA3C96FD3E93633E7220083D49264C + DE77CF031DB7EEF4831C5AE3F4F9FAA7DF4739B49BCAD0EF75141700CB1863E3 + 9D77DCD0ED1E7049BCB0FA138047930149B20BEA0174790CF33572DEE158BE0C + A80C43024477DF2074F60E74A1CB554E9E1F8D7BF37D0C65D855596C9BE2D733 + 701F5C3DEE7E25A4DAEB4471283AFEC43AD0C0309F1B29C39E95054B80315209 + 10AEDE7EE8B9E7B9AE7885B523009216398EA6365722683D49C49E1B40CB76BD + AB770894907D7AC49E08309913CC0E3D4EEC77D85EC1E6D0C6A904C8E73A0AEB + E0C8D825E43D66E6982AC7B2C553726768FC215CBDDD3B2187D555C972262D40 + 249B397A2389E1471D4B5F26B3582601E26AF75DED07CA17E7834EA78BDD1AF5 + F2D07ABB570C86E5F575BCAF3959B2CE08603212C677300CFFA97C513E658DCB + EA2993C4F94E881234DFEE9183AAB2A1D62B9D8314366300CD0EB05425891117 + 8A16CCA3E76765A67C4EF0FBA1B9EBAE1A50421FD408C2717882CD0A2012099A + 2E4471FEF3D5B939E697A2C525CEFC41199A7BFBC017906B9C82D008696CF600 + 466329CAB20BB63C8B393F4914FC3202700F6A00B508E0D07305883429D4D196 + E7E5D0733936E5736230082D7D836A400E6DAC11C563CF05A08135BE8B63F8CF + 65B939A465DA764CE6EB0D04A065D023872054E5F44A679E09A091A5371198EE + C88ADC1CDC34AD2A6A7EEDC39385B0C462063C6E1B8EA364BC323422A29DF0F4 + DBB091A377EA31FCAB0A6B36C64EEF0BC8E7266AD3F745E9A256884C067D7539 + 8220E220867D7EB8363ACE07C3EACA5917A2068EF9D288E39F55984D602488E9 + BED039C1835B94DA152FFF9A568A7359BA09416E71A0DD41C641DC977CD0F1D0 + 3B1696E5F26D7EBF3B2D403D6A46B91CF32D8B13B5E5A6399091A42DF7082274 + 0BD22D74B926BE19A144DD4BE1BADD76B443E2FD1028DC1284F4CD486BC748FC + 0713416E2C436537FE4DA23680D6D6258A29DB71034BEF32E8F07D151C070CF1 + 1F44B724418FE47389BCB0F653942249010E73DC2F5924B1A104653A9E24213D + 688BDD147D6332042BB7F3812E48610862B31E256E2943639971CBF70F5A8E81 + 4030F581443B92156764645AC9C4351F5114B8E1F38BE85CB8AE5692DA218D1D + 62D92A12D4E345468AB4C44174A0C4F428F26F435EE1BD8423D941CE58A947F5 + BED860A02D716BF8281482363FAA732AAC4787D28BE9C46391A0E937705C77AA + 50AFA7731F43685AD7509D180987120FA55A126A4D47832822880884884EB1AD + C1A02A035685BE0D4ECD543C16098AAAD011C4591B4998E73D7EA9313467BB1C + 4C3C9647B7611462098ED33D8AA2CA98BA69AB57FC71B6E2518B7C98E8E0EC62 + 9C5860421AEDB22C87B070D5D609F14C5280280481E107D0E551A757F8E669C5 + A316F93423880B6811160112D74AF4ACBBE1B35A3D803E93A64D3B45F181F63F + 01E045D9BF948F32EEDE0751EE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Copy log entries-console window output' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000030C4944415478DAC595CB4F13 + 511C854F37EACAC4F87FB071E9C28551428CF101963E9097A0086E340A1468A9 + 108218433542E98B020AA594221AA2890851145112092498B8003512173C0AA5 + 6FA42DD7A10821E9EDCC7446C2D9DCCDDCDFFDE64CEF57092104FB19C936C08D + 47AF922421A3643598A6D74AFDC91EBAFBA577004A742F49F3CD33E053C8E623 + 9D43D318FF3A37066F303559082AC0F5C601D272EB2C221BFC8A189EFC059727 + 80D1A99F63CBBE506A6F12105480A2072F88E1F639AC47F8017C9B7361DE1D80 + 6B35800F93B35F48209866D22A5C8201AEDDEF27C6D20B08853760783EC13AA0 + E8FC3178FC212CB883FF20FC783F31336D2ABB982218E06AC333C20C40E04F94 + 570353DF1731F07916E1C8D6F33EF70ACCE5E912C10005F54E625665C0178AA2 + A57F9C174494D97BF4C861B87D21CCFE98436BC525E10057EA1CC45C21852714 + E175F8763698FD33BFDD303BDFC15A95291C20BFD64E2C5532B80311E8FB3EF2 + 06284E3F1E5BEFE89C68D3C88503E4D6D81800055602E1841B573C7E34F57D4A + AA219AB0A80039DA2E62512BB0EC671A708C504785231178D7A2102B2C2A40B6 + E629B168B2B0E44FDC809B114F73DF28C40A8B0A90A5EE6000B2B1E40BA3D93E + 4C1D1661AE9C7F3D0AB1C23256CB5D7100CACA3662AECEC1A297A5016F0006E7 + 08C40A8BD99F1207A0505989499B8B05EF3AF45D83D481D1681441E6CDC50A8B + D9BF735B7600E4E51662D4E661C193B88155A601A3F32DC40ACBA2CA88079095 + 9989A13A1FF34C0366FB9B840DF8D6C2102BACD64A291D40AF611AF0B2376076 + 0C41ACB0AC6A191DA0499D17BB05AC9FA067105CC2624BA9AE17ED1A051DE031 + 03E0E2003074BF0697B0A80D484FC4D6329D031D5A251D80CFA003070F814B58 + 6C5135F6E049CDE578008984D7FF089455ED9CC2A2A54476720B40D78DCEDA1C + E1008A0A2BA7B0D852A9B3A1AB2E4F3880BCBC955358B4142B4FC75675A30DB6 + FA7CE1009BBF152E61B145A3EB44F7BD02E10099A5264E61D152283B155BB50C + 80BDA1501C0097B0D872F7E17F00E012D69E0370096BCF01049DBC2B5480FDCA + 5F361ABADF2F11DE2E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Select all log entries' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003724944415478DAEDD57B504C + 511C07F06F8D5E5B44A2642A3D10BDC623D36886C86398D18C84664CE9A9844A + FF30A212D5F8CBAB48A8D050DECD9841F460480F9A495B0AD9F4D864253D94AD + B6ECEEE8CEDE3DDB3D18CB3F7EFFEC9CDFFECE399F7BCEBDE7688C8C8CE05F86 + C67F8022C067CFD9BFA2C93912A23126E06262B05A27F78B39C70DB89018A456 + C0D698F3DC80ACC3EA05F8EFA700323900BD7D621495BF02FF6D2BDA3BBAD1DD + DB0F59FFF1FABA30996C083BAB6958B5D85EDE1E2B02A88043AA01350D42A45E + 2940BF7880F30979BADA08F7F180BD8D996AC0010A20430540D4D983D8945B10 + 0F0CFED432EBE9682339CA1B130CF488FF026980F3092420ED6A112AF8EF98B6 + A6A626E6CFB184A9B121BE890751DBD00AA1E80BAB8FEF3A37B8BBD8116305C5 + 5200E71202591D060625884CCEC6E09084C9856E5A0617072BA62D910CCB57A8 + BDA38BC92D59381B7E9E6E04203836831B70F66020D169483A79737B27DE0B3F + A1B3EB2BD6AF5840D464DF29C1A38A3AA6BDC8D11A21DEEE445D48DC6F00B842 + F6F4758236E4155642D02A62F28EB3CC11B165E5AF03D2E3B9017DDF0650DFD8 + 8686A68F68148A206811B1B66734E6DA4C4794EF6A22BF2D9E02383306A055BA + 05B70A9EA3467A060C0F0F535766DE9C1908DBBC9CC887D200697124A0AABE09 + E9D70AE5CBAD1C86063CD8599BE14B4F1FEA054226BFD0C11AC11BDC89FAB083 + 544000AB83EC33DB7B3457FE3B1A53268D8787AB3D9C665BC0C8505F9EBB9E5F + 8187CFF84A80A52A0099DC80D34A80B2AA0664DD7ECCB40D78BA88DFE1057D9E + 0EAB2EF76E298AA5C7B422204805603B0D702A960DB876BF0C4565B54CDBD6D2 + 14D15BD710031FBF744FBA056D2C40A01709084FA00052950037F2CB51585AC3 + B4797A3A4888F0961FB7A3C17FD382B49C87501C4BB63DA19B3D08C00E2AE000 + 1BF0A246808C9BC5AC9C85993156BB39415B6B1CAA5F37E349653DF165D8989B + 20DA7F2D09384401A42801862412C49DBC8E2EE95BCE153ADA5AACCB4A761125 + EDF621EA76D20027F7FB139D1AA5275CEAE57CD697A018E6A69311BC711992D3 + F358357B433C31DDC48855BBEB701637E0840A802C647740FED397A87B27C4E7 + AE5EF93B306DEA442C72B285ABF34C6848877C50528D0F0AB7A2B39DA5FC5D50 + 8C082A204635E04F45442205705CCD80481AE0D83EF502A2922800B5CEFE23C6 + 04FC8BF80FF80EA9CF11DF1A48E3DE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Display preferences window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007A84944415478DAC557095455 + E516DEE7DC893B3104C6141743080DD78AC5E3112126E6D0C31E8812468FF482 + D5D3952F9F78D17A4DDA642990E0EA65EF65020EB584045333B39C000B0C824A + 251C4040042F2077E05EEE7CDAFF8F176F8A48AD569DB5CE3AF3FEBE7FEF6F0F + 87E1380EFECC8D21041886F9551FCD7F624514C7E71DC5AFDCAFDDD280CD3EA3 + 7C47C177BFC60EC5FE4D0494AABCD7FFF38CEADEF01070E0F7758D4DB0BE706B + 7E79497ECE1F432053F5CD87856B63ED0E8E5881018311B25FCAABAE28C99FFA + BB1088484B13DE2355FC1FEF0638C0BE7A4F7141A3F3D9BC85CB27B37C61FDAE + 0FD60B7BFBB5E07038402276832757AC35DBCC5CD4A73BF3CFDC10AA0D0872B1 + D9D8F1CCE9B232CB6D0910F070A9E293479366264D89898475851F3A7A7AFAF3 + F0EDEF3896797562E8F8F0B98909705F4438F42101E205B9440C47AA4FC2E1CA + 5AB8A2EE3B85EFBEC131102D15BB65CF4888E3359D6D81F32D6DFB9A0DED8FBA + 921891C0BC4C55715AD24CE56329B3C164B182482880FD87AAA0B5BD13B2D293 + 412A1583C96401C3A009CC161B38EC0E943200CBB2341CE75ADA61EFC163E0E5 + E90E33A7C5815024049BCD0615FBBF8296D6F622D4C9E2D1092855559BD6AD8E + BFC3CB03B47A0308057CF0904BE93B7AC32098CC16B0DBED74E504DCEE18DA9D + E7C49E8D9C5FBB262122E7A79ACEC2A1C3D5954860DAA804921766472B027DBF + 2D787315F46B06C08AEC5DB79EAB5AF8BEA9152E5E525342803AF4904B401138 + 0E42147E806EBF09DC601C84928F76DB4D86C118D754BDA508310C054F65CCFB + F7AC8458E84540B2116387BFFE1E9ACE7740E4A41008BEEB4E9061383804D00E + 18A1BBA71F3AAFF441A0AF0F04058C43E3D7BDF0C5E14A686ABE905751F2CEAA + 3165418A327BC1B4B8E85DCF3E950EEA5E0D052FFDAC1A84A88759532281C763 + 7FE1F6A1D57260B1DAE062E715E0312CF88DF31AF6C2AEF203D0AD563FB6A764 + 63E9980860A13957F4EE6BA1C4E8A0C90C87AA1A60C068823909D1D420C332C0 + A2F26CA80533825A7177757B4F9F0EC9F251C07CB4CD42D7153594561C385351 + 9C1F715B0229992B2227878735ACC95902BDFD3A34A6818FF7554266EA4CBA72 + 3E9F071A8D0E957E1C7E3ADF428DDCADB80BA6C6FD153C3DE494880D49583143 + 042860F20D0F33E483925D70B54F1FE15A278609CC5DB4329ACFB2691CC3DDCF + 32EC03AB962985111327D02C207117632A454D0EA52BD7E3BDDC77B7DA068DE6 + 172D9C6327312464D82CB144F4CAE3A94902B95C46BDC063799400B14F489CA8 + A987EADA7A335ED7301C538B24CB3EDDF64E1D25303F2B47BB76F5527745802F + C86412CC5B14966E80BAB7F893AFE06F0F46E1EA6420E4F3617BE97E68F8F1CC + 2A1454DE0DE5F985097707BF3967F634EA7681800752891B98CDD6612F907AD0 + D5DD0397BBD570E8E809CDEEA23C2F4A20352B87C30BB8AAD163DAD9E98BCE3C + DFBCF37350A63E042C8689B8FFA5759B406FD5FB1F287EAFDB954072FABF0224 + EEB2CEA58B338642C5E381B7971C749821047C88046FE888FB736BF301319961 + 02655B7369DE5B2C16B0DAAF2B7C5BC5115890184FAB1D2E0D5EDFF01EE86DB7 + 26B0ECE985149090F5C74C203ABA119C3CCF7925F73A011282E7972F76F7F7F5 + 064F77775A7C747A2358F078F0583DDC1F790F88C5229A6A24A59ACFB7DE1C02 + A56A75E884E0F5298FCCA2206EA81B5F1F4F50A3889DE0441B1D9DDDD0D9D50D + FBBE38AE2B2FCAF3B8E601552C16B434069838ACE951FF489D23FC4B64041831 + F54E9F6BA3C602FD7CA8C27BAEF643F1CEDD568BD5FABCDD6CA722E4897819F8 + CEDB4F2C4811F8787B51306F4F39884402F4AA815E1FA9AAC1665563E61C8E3A + 84FC0671CB701127474CC3207FFF06D5B24CECF38334FF9B2F74C2A4B020AA68 + B28ADEBE7EA8FCBA0EDA3A3AE937E31581F0E0941818770D5C80620D0DF6832E + B586D60A72EFED822DD0DBA31D390D6F2A4499AA0BCB976484787B79D1C67219 + 4B2C89FF1D9809AE0587A8DD1953677C89F882FC7DA84D759F96DE6BBFD405FF + DDF2D14FE5C5F993C65409B123668C5704EC58949E320CA8C1B4A48585656F09 + 4E561E14E0032281002E75F7618B66E8F3C2FF6D87B64B97C75E8AE72957E6DE + 377962CEDF1F9EFE8BAE46E667525EC9204D0449363E9FC5580BC1135BB61F8A + 6EC068A61DD3094E88ED28DB07F50D6736602B7EEEB604C818259649EA96663D + CE9061C209EE2422E00B402E13831C3BA10433830C2C048CD40FADCE408FAE9E + E1E34EC4FC5AEE66BBD63010B5775BE10FA31220034972E2F4F87B2786DD043E + 92DB472A32AEE043E73CA8A9FB018A3EDE7304753063740238928585042BE7CE + 99415D4D8689E3276A69698E7F201AE7808051C1DB7074FBECCB4AF0BBD31BD2 + 9267A3B7A4040A36179542C3A9E612EC8899A312700EA521E31549A1210A043F + C999CCE68D5823C864BC0647B5091193C22001D3CE15FC68552D34FED884DDB3 + FF1CCA630D035CAC4C2A79367D7E2253DF781A1A4F358F6D287521B105890763 + D752EDDDBEB1CEB54EF0587ECD0B2B9788DC84A2A1E10473FDE5B736991D9C3D + D675844F59941D83DD351727E4D6B386F67F8E692C1FCB467E4CB2325263C3D0 + 438440CBC50E78BFA8F4F7FB31B92D01FC354B9C355595101F437570ECC449D8 + 7FF0F81FF76B465CCBB0EC97CE9F53D4AA8EB1D9A7FFE69FD33F73FB19F804B3 + FD5068AB0A0000000049454E44AE426082} + end> + Left = 32 + Top = 296 + Bitmap = {} + end + object DialogImages: TPngImageList + Height = 64 + Width = 64 + PngImages = < + item + Background = clWindow + Name = 'Keep remote directory up to date' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000B5D4944415478DA + ED9A7B7054D51DC7BFF7EE23D96776490261F300F38018209487ADF226A2101E + 016C6D3BED609DDA99A02853B1B58DF047668A7506C7995694916A1294A23CE4 + A5A0601230A8A9D6A8C82309E49D9090909064DFC9BE6ECF6EB26137FB3ABB59 + B2CED45FE6CEDEF3DB3DE7DEEFE79CF33BE7DE5F18FC9F1B13E91B88B4FD08C0 + 9BF3C3429598E3F3CAC9D7F7FBAFCE7DC958AC0FAE2BEC30445A4858017CB033 + E59D992B7EBFE99EFB9EF25BB9E9EB3DB85256BC3F6F47EB6391161236001FEC + 4CDC2456C4BE73DF8647C0F2795EAA702367368B055F9F380E437FEF63793BDA + F7475ACC980190A19FC944477D7BDFC68D22718CC25D30E7FACB3B05835A4D20 + 9C3072038373C954A81DD3DD14829F22944E834D90C6B25C1C0736965C49CD31 + D0301C77C304F3F5CE1774DDC134A92A94C50984828F89524D4B41EF837E0190 + A1FF4DD6D2257327A5A77B15EBCBD755DF80EA8ACF42D2DC0B1BAA180B6A192B + 9AC8C11309201409C117F02010F061B372E4B0C13460C6806110168BA59E5CFE + 3CC7D98EB49AD5E709348B5FF151824FA76764CCB85E5787E6825E8F113F1A00 + B7FC89C7030AF6E563BCFECE7B9DAAAE0EBC71F11B7CDD7313D25831A44A3124 + 0A31F83C3E58861D3E78A44D163C969C63C8673498A0BEADC6ED5BBDD0AA756D + 368E7BCD68EADBD35D089D37F1D388F8EC19B370F4C4315A00BF0B411C1D20BB + AF55A3C6DFBEFC1C557D5D50A8A490C54B8940DE9060F05CC4DF81E0E91B3AF4 + 5A23DA9ADBD0D9D9DDC9D86C2F34BFD05FE2263E3D7DC62C22DEFEDBF74F1CA5 + 03B0F8D135218A0B0CE6407D1D76D75C815825464C0211CEF0A904337E61F0A0 + D3E85073B516EA3ECD592BC7FD8965998319E969A4E7B347EA1F397E840E00A5 + B2A0CC4A40BCCD0EA25A0AC46728218C128C12E8BB973D44C3D36717C890BFC6 + 86265CBF5E87F4B434387BDED9C6A16387E800AC2BF82F38AB8E5E5D809E3798 + 8DD87CF2797CABFD1EB169318EE10E1B8341AD19833A132C262B594E6D8E2AC2 + 681200A3A320934B2057CAC808E1050D48ABD142A998E006CC0EE8E0B1837400 + D6FCF92C0C7D47FD0EE580BE910F0E4F959DC477035D884D95C3A4B34277CB00 + 53BF09F326AA302F21112A890C712231590B38741BF46852F7E1E2AD4E5CBADD + 05E5442592EE51412C120598223C97D1E11DD0BB47DFA505708A0038E12E90A3 + 10EDC5F7D25717708C6C0D264C95A3BF4D8B384B343665CD465E7A26C47C01FC + 05DB13456F633BABDF4E1680E7139226C7A44E9F0A014F70471428A7CC30A003 + EFFF9B0EC0EAE78EC3D8FFC1D84600B12FDA5BB1A5E22328A7C8A069D6E1C959 + F3F1F8CCD910B03CAA36CE151D00D962334985F2093C217F97442A7A227BCE4C + 48A5D25181D17770742DEF3FB29F16C06102E034C6B2CE1B2C66AC39F61E8C12 + 0E7C1D875797AFC4DC890941013D57F49E0380B39CFCD2845F09F9ECFEF93F9B + 2750905DAA5FC1F004F4CE91B729016C3B8001F599907ADD69AF5FACC29BB5DF + 43C491A1B77A3D521DDB6A5FF0BC6FB5CF151F760360B7292F2AD79040797CC1 + C2FB0512123B02CD7BD763DFE17D7400729F2DC1A0A63424E14E5F7EE9195476 + B4E3F59C87B1242989AAEEE8D1555EFCBE0700BBA5FC5D992F934ADE58BA7489 + CBAED14F601C3E4A0E155302F8E35EB2449DC75882A0D664C24DBD16D3951342 + 06595E7CDC03C0D44285828B624E4F9992B2203B3B7B6499F4BF67183A8A0E15 + D10158B5753759AE2EF8ED9D60C584E22B2F3EE906C0BEBD1546F1CFA5A6A5CE + 9A91954535EF5D61BC75F04D4A00CFBC02B3BE1201E7EC5DF695179F1A01E0DC + DBA767A4CDB83733937ADE3B7D760B02C04B04C057E32E9A1935E5CA4A3E7200 + 50152A538451A8C8BC3773AA7D8B4BB52172F50D4BA406B0F269F2806DF8367C + 82B8E0EBDA7D652567B195A7B987B47421332B33392D35956ABD771D1DCC70EF + 0707604B012CC64B7E7B67AC70687C674A3EC1B33C7DFBECD93313939393A9D6 + 7B7B50742DBB1A3D8027B7C13A50332E22FD0328C3369EFE1A399D8E3018792E + F9BCA5A06F7160009BB7C03A58374631F4757CAD30A5259F7ADD0784DB3C01E4 + 3F01ABA925AC6282F691D3D27D17220360C1AA07C059D57E6ED49B85EFAD91E3 + A658069567AF4506C0EAAD2F7A7921121E8136F290F4D5C943E8EFECF05B4331 + 2901FD5D9D9101B078DD4258067A4216E9CF577FA50B93663C0ACA8C538446C0 + D33BC071A69004FA03D471AD1A7555FFC10F2DE3E41903566682B35986BF0CCF + 0830EACDB8F24D17E6E6AD4744324EC100C8DDF25C4822FD59E5E10348CCCAC4 + 78669C7C1BF765DE8EB607BC02F870674A29B9851561BEA2C3C62BE314C877AE + E85DB7D8322EFF20311E19273A9FE7ABB671037037334E543EFB29793EF8ECC8 + 99C800188FEBD05A4400843BE3146AFD53BB560406B05726FB827CB3202CEA39 + 5C4B784E317D6DC12761CB38855477D8CE17EDA3002097711B7FB9D6DD69B391 + FD818D7C9206ADD6E17367D9E6521E3E27BE1B5DDDF8AEB1A52D619B32796DC1 + E9B0659C42F13983EDB9A2FD210020225D053A445A47091E16ED3C6F6CEFC4D5 + 961B6D305B174DDE1EDF12AE8CD36841DE2D70C6891E00C7B9F5EAD039E71584 + B3DC70E326AA5BDB9B61B62CCD371A5BC395710A878F6A197403E063788FEE79 + 67B9B6F906EA6EDCBC4A9A5E96AFD53A9EAAC295710A6EE9A4CB38F907E04BB0 + 8F795FDDD88A86F6CECBA4D91CA778278070649C42098281324EBE01FC620DFD + BC2741F1527D335A3A7B2A07B5DADCAD80C6B5BDB1669CFA6A7A204D92432013 + 8EF9ADD3E88C936F003FCFA59EF756B3051517AF426718D89CAFD3ED1DDDDE58 + 324EED15ADA8D8FC0912162622E7AD552189761F0127E9006CD8B82A60CFBB96 + 8DC641545CAE319BADE68DF91AC3690F0021649CD4F57D28FDF569F07426A46D + F909B29F9913B2F03B23E0142580F50F53CD7B57106A9D1E95B50D668BD5B669 + B34E77C81D407019A75B555DF8ECE9F388D598D1171785756736802F16042DDA + 57C6293080BC87A8D6FB3BE5A129A2370EA0AAA9159A8181228356FFFC36A037 + 988C93CD4C8269F15554BF7609591C8B5A8B050BDECC816AB1CA5DD018324E74 + 00D63E1870BDF705C64A6EFA5A67379AFAD46A72CD5D93B6C4BC98FB97ED7E33 + 4E16BD058D271B515D520371BB01D3783CD49076E21F9B8EF97F9D432D3090AF + ACA4940EC0FAD53901E7BD638768F53E25EC876170100DB7FB7153AFC7847929 + 88CB1623263506A289D18E57DFC61E23F4ED7A745575A3A7EA16E2AC0C928970 + FB4BB32B443CB3701272F62E2677C90425D23F80724A00B9CB3CE6BD5AAD855C + 22F2BB11721F214323C84696C95E8311FD83261889302329B3E42B3EB9BA8888 + 8B615928C9278FEC3A398B1597C9F7CCFDF158B67B0199F7FC907A9E36E3E41B + C0CAA56EA2AAEB9A1D5BDC8CA4C9989638098CE3F980F31910BD41F19C3A9CDB + D41920C22F9ACD503EACC2A2977F0A56C0FA1513B4CF4BC6C9378087168FDC60 + 755D13EADB3A2E93E26F5896D9A590887267A524224614EDB932B8C50ACE270C + 3710E4BC95086F64ACC8FCC314A43FA20A71B80718155E324E3E01E4AD5834D2 + F3F5ADED6E7BFB7FC9259B388ED9A552C624A4C5C7422E14065C29BC8D10FB0E + B2836CA29A8878C5A2743CB07303E45363431618E8B71C67C6993DFFA00490B3 + 70A8E7478977DAEB809427936C661866AB223A3A79B24C8A78713471F21D4F90 + 4322ADEE8FD2D6A178D06332A18708EFB410E173E4C8FC6D220990724A9174C2 + 7D3D61569636D001484F56F914EF6A852496254824CBC1328F1218CBF92C932E + E50B20E2B124C8318EC344449BED7B0412E006780C26CE9F82C42519485B3F1B + 9244C5A81683EF59EADF9111F0F19EDD8101BC219396B30C23251DB9C69F786F + F6AA541A2F6098690CC725710C2367608B51AE96BE9CB5301992040179A88906 + CBA36D2DFC31E08BB34D9179297A37324EDE1F93FD5FE3E33DFF1C7F007733E3 + 14AC11C165EB76B43E34AE007EC8F6238048DF40A4ED7F5CBC19B989D7BF3C00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open console window' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000004CA4944415478DA + ED9A6B4C935718C71F462F141090C94518520401A1820C894E06318BD3E14C26 + 89C4CB30926DECC6A60BD14C9C44BC12DD088AFB30B6E8CC88991F98CE2DCE0B + C8108189808202D20E042CE57E995CDB6AED5AB635BCD23E02E6EC51ECEF53DF + D3BE27FFFFAF7DDF9E93D6029E732CA803506316401D801AB300EA00D498058C + 3EF0DC70BA4837B0983A144BB400C54D59D1E1460588379CD626BDFB3A7546A6 + A41ECD81C6AC6843EF3102562C5B429D9129BF5DCCC70578072EA4CEC894FAEA + 125C80939B177546A674B634E002845636D41999A2520E9A16F092979F362CF2 + 4DEA8C4C292D380BCD0D52D3021644445167644AD99573B880D0F0E5D4199952 + 5E74011710B2786AAF036E14E7E002E62F5A4A9D91291557737101C10B5FA3CE + C894CA923C5C4050D812EA8C4CB9599A8F0B9084465267644A5579012E20F0E5 + 57A93332A5FA7A212E2060FE94DE0D434D45312EC03FF815EA8C4CA9ADFC0317 + E0376F6AEF06A5B74A7001BE9230EA8C4C915595E2027C0242A93332A5AEA61C + 17E03D37843A2353EA6FDFC005CCF60BA6CEC8943BD24A5C80D837883A23531A + 653771019E3E12EA8C4C69AAABC205CCF20EA0CEC894BBF535B8000F2F7FEA8C + 4C9137D4E202DCC5BE9C13E2E3D6C3C6F5ABA1A4AC02D23232A1A5AD9DBAC313 + A16894E102DC66F9188E05023E145C38051616FFBC4CA55241E6B1137032FB0C + 68341AEA2E93A2E56E1D2E60A68737E784E3998720C07F0E67ECB6F44FD87730 + 03647577A8FB4C9856793D2EC0C59DFBC3888DB535247C100731D12B0D9F043D + 1ACD43C8FA311BBEFDFE04A8D56AEA5EE3A65DD1800B7076F3347A62B0240092 + 9312C1CBD38333DEAC68853D07D2A1EC7A2575B771D1D1D2840B7072F5307932 + 9FC783F87762212E760DF0748F47F3F3AFE721FD4826F40F0C507744E96C93E3 + 025E74717FEC243EB3C5B073FB169817389733DEDDD30BA95F6540EEEF05D43D + 4DD2DDAEC005383ACD1CD744FAFBC1DAD5AB6073423C884422CE7379F9853A11 + 87A1A3B38BBAEF187A3A5B7101D367B84E6842571767D8B12D1122C31771C607 + 078760776A1A9CBB7889BA3387DEAE365C80BDA3F3A4265EB17C296CDFBA191C + 1CEC0D635AAD16A256ADD3DD285BA87B1BB8D7D3810BB09B3E635213AF8C5A06 + 495BC60A78E3AD354F9580BEDE2E5CC0347BC7094DA8BF0476256F8308239740 + CADE0370F67C0E75670EFDF77A7001B6760EE39A487F138C5D1703899B12C0CA + 4AC8792E37EF32ECDA7710BABABBA9FB8E61A0EF2F5C80B5ADDD632799E3E30D + FB7727439084BB75D617D6BFEB3997F2A97B9A6468A00F1720B29E66F2643E9F + 07091FBEA75B0C6D1C793C9AEC536720F5CB43D0DFFF742F848687FA71015622 + E3FF115A101A32F2AE7B89B94BE5A62639EC48D90B57AF9551771B17CAE1415C + 8040C85DD4D8DADAC0D6C44DF0F6DA984736431AF8EED80F90F1F537A07A8636 + 436AD5302E802FE0DED07EF9E924481E59F2DEAAAA81CFBFD809B55219759F09 + 735FADC205F0787CC3B1502880EA8A6B6069693972AC542A212DFD081C3D9E35 + F21DFF2CF2E0C17D5CC00BFF96FD8FCF3EFD183EF9E87DB87CA50852F6EC0779 + B382BAC313F15077E9A202465FE75311FD271715401DF0FFC02CC0940077B15F + 91EE0A98D27F11D182B650D1208B302AE079C42C803A00356601D401A8310BA0 + 0E40CDDF582E175FFC997F750000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download File' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000009014944415478DA + ED99795454E719C61F94E002261A1740258B276DD29ED6D3F4A4699B26C6855D + 4140A2E2AE49A94AE2860101010D890B391A018101D488C1054D8D62241AB5C9 + 69A3A916C4A58288180A0ACC0C8BC00C307796DBEFCE303030973BDBBD4CCE49 + DEF9632E3373BFFB3DBFEF7DDFFBDD0707FCC4C3C1DE13B077FC0C60A02FB821 + EB1B5AA8B1C9C0671ED649434F6C994BFDA801EC0A9F0ABE29A83534F22E95E2 + D60F528B20D80D8046803C3875B902ED0A25AE574ACE120821E640B01B00B500 + 042E95FC0FB20E25DA29254A2A25173A9508C9889826FB510250AAF90770ADBC + 1672024007418592FBE2EF3A55F0E382603700948A7F0065D50D9075527D2048 + AE74AA689FFE20D80D8042A5D1FE1D997E8E97717745F8E2A1B4552BDC108242 + A546D13D71BF10061CC0FACC4BF4EE95D3D1A9D4F03E768BAC8388571A41A008 + 846B77EB8AE472B95FF6C68006BB0258977191FE64D50C929EFC03D068D44434 + D52F84AB771FDDDEB3CA73B25D01AC4DBF40EF59ED09B94207205AC44F09EC5C + E98B5B0F2428F8770528A59AF5376A950A29115EBD340F38803569E7E99477BD + 2153A86D1F8C251A5B3B90FF6D19C4CD72A3EF541485D4F77CEC0BE0BDD47334 + 99045A3B8501C004B3C7B858FC03D9154A7A7DDED22243DA1A5FFB027837A590 + 4E5DE387D60E1D80B8ECF3825D6BD0A0C1F8D52477A8D4BA72BB575587BD6BFD + ED0B20E293B374DA5A7FB474A806E47A72D210C986086DED0A5CBE5189F4F533 + ED0B60F5EE3374DABA5968691F18004CD064CF552D6941CEE9EF91B121C0BE00 + 56EE2AA0D3D707A0B90B40E2BEAF05BDDED677BCBB8F37677D055164A09D017C + 7C9A4E8F0C44937CE032401FF1A24288DE9F6D5F00E1C95FD0199141048072C0 + 016C169D457654303700A11D1BD9E3E6808C8DC16894E900247D7A4150D1F1CB + BD7A8E455F22273AC43400211D9BCBC577911935070D6D039F01F19905D81713 + 6A1E00A11C9BC27FDDD40190D901404601F6C7BE651E00A11C9BFCF3FF81283A + 14D2AE0CD8967B5150D1B14B3D0D009CC681B8B9E60110CAB1D97FF23B8836CD + 85C40E259090FE053E8D9F6F1E00A11C9B3D872F4114330F92567E0054359723 + FADC12788C9C8424AFFD18E6389C03C0491C4C08330F80508E4D520EB917C786 + 11003AC336F9B34B568FD94E37E08A620B9C9FA7A120E339353D83578744C111 + 43BA7F13B578460F80BD7F476EE2426E00423B365129A7208A0B83D8C60CA897 + D560ED9910A8C7B5C179CC303037D9C607AD98E438193BFD8EB0664262DAE738 + B475113700A11D9BD5DB8F11000B6D02C0885FF7A5A1787DF440D8E16B0C2131 + ED383EFB60093700211D9B1B9562888E5D40D6E645A86FD101D87DC4B21260D2 + FE7BC5877099A482F3E8614472DF5EA583A02F87A805FE0600F29197B4941B80 + D08ECDCAA43C64C52F2600CCFEF75D7788650FB1BE3004B46B3B5CC6E8C46B5F + 343B84E7074FC6769FC3DD9990989A8FC31F2DE306208463F375450199A4063E + BF0CC2AAA44310252CB51800233E9288875B07468C75D68AD68BD7BDF72DD91E + 08DB0884A104C29694A338B26D053700211C9BC28E6518EAFC049EA5666354E3 + 2B04C0B26E00A9C7FE61F27C7DDA8F7CC1014F8E75E912AD618140F729091D84 + E71808DE87B123FD148E6E7F9B1B80108ECDCBA9AE7865CACBB8535C86B10DD3 + 50B029D7EC0C60567EE35721701CAFC253E35C8C45F7C902E392D043F82D86DF + 0BC4891D11DC0084706C7E9FE68ABF78FE1114A5C47F0984F0DFBD0F9F17C2CD + 121F752E044E133418396E048B5868DFB5475D9F6BB4E2FB66830E82639D076E + 265CE50620846373B663315EF7FA937652949240282A43D84B1B10FA9B55483F + FE0DEB39DAB4A73EC4D85F3811F14F19AD30F7BBC6A841CA1A3A20BFEF88F2B8 + FB260008E0D8FC61AF2BA678BDA65D2966424A2585DB0610FA5BF9611E0E18D5 + 2D9EEE234AB7DA4C2F60565FC3014426956390D805136A17E3D48E686E004238 + 36AFA6BBE14DEFD77BAD0C45B143D08B77F6188CA7DD46F6234A63220B7ABE6F + 25E21DEA8723D9F72444FBBE457E72383780BFEE3C49F3EDD8302530D5E70DA3 + C9529402B7494F087B5107412BFE7C085C3C1C31DAED69D6E6C62E16AC505AA5 + 32D07543B5E25D5D2662EB9E3CD300DED9FE39CDB763F3E74C374CF779937585 + B499505C0ABFE796E19F55A7F1E4334E18E336DAA88EBB9B9B36F5350047CA33 + E7B610F1EA5AA76EF14C9805E0ED6D2768BE1D9BD732DD31C3776A3FB72EA631 + 924C282AC5F867DD3196116FC12AB365C963492B54B54FF4126F3680151F1DA7 + F9766C9812F0F49B6ED0BC7AA734A34EDDBD93636F6E3D9F73F401F26A16B7A0 + A15C815FB7FE0D4334A38CE66212C0F2A46334DF8ECD1B59EEF0F69B61D1ADCB + D44687EDBDA9FE311EDEABAD21B0A654C53CAE32676E4600967D7094E6D3B161 + 624AB63B7CFCBD2CECE63D1B1D73C035D637A3A6FC9145E259012CDD7A98E6CB + B1D10753027E33BDCDD8C05808A5EB3B697D13AAEFD6582C9E15C092C43C9A0F + C7C630A6E58C87FF4C5F76B17A41FD344853F77C697D03AACAAAAD12CF0A6071 + C221DA56C7A66F4CDF371EB366F9773534DD2D4C63D0007B373AE30669DC0875 + 0D5242C43F28ADB25A3C2B8045F1B9B42D8E0D5B3025101030D3E63A376C9092 + 3A29EE973EB0493C2B80857107696B1D9BFEC2F3C0040406041888E04A79D3A9 + 2FAE15A3E24EA5CDE259012C883D405BE3D8708537011014186865E3EBFDBBFA + 476294DFA9E0453C2B80B098FDB4A58E8DA9604A20787690E50F34E8DD2099FE + 5074E53AE432F9CEAA98E64D7C2C8E1180F9D139B4287139AF19E07B70224266 + 076B8F19611ABAF7CEAEA7D1996E901479942EB9760BB2367974756C7332EF00 + E6456513002B50C72300FFDC89080D9AC3DB46888170FDDA4D5E20B002C82400 + F419D09F6363493025F05670A8E9071A0B1A24F314C907049300F8082603E605 + CFE51065EA799FFD3C1D841B68B301022B808C84E5BC6E841800F343E69BF540 + 636983B415022B80740280CF872106C08239619CCD0DB0BE41321E63F1D512AB + 20B003885FCEEBE330036061E842AB7D3D731A2465250456007B090029CF0016 + 852E3221D6F606C99443F155ED3E6101D9271CB51A006FCABBA27484086D8E55 + 7C0FDB4FD0941A0E4B6A629AF2AD02F0538B9F01D87B02F68EFF03A84721D7BF + B4A7EC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000009414944415478DA + EDDA095453571A07F03F10AC6B6BDD00656A8F0A2E9D76C6CE74165B97110545 + 41505C50514047AD586BABA3C5BDEDD48ECE51AB16095A1D6D5D502B75191D6B + B59D735A45395AAD8E20E012418510161312485E92F7E6BE17480879642117C2 + B1BD1C4FF697F7FFDDEF7E792FD10B3FF3E1E5E91DF0F4F805A0B9DF70D7AE3D + 5C9385F1C2C9820259CCDAB56B99160D9098381346A391EA765996455EDE1D64 + 6565B984F0D400F043A954A1B8588E4B972E9F2A2C948D7706C16300862600A8 + D254C16030402E2F4166E6A5535AAD664A525292BA6502901DA53DF47A3DF967 + A88BF00341186D0FE1A902E0384ED8AE35C2E58B5AAD3AAC21048F01F0B3C58F + ECECDB54B63B60403F48241221785D0485A214172E643688E071009AC3D7D7D7 + 5C057511CACACAF1FDF7172E1A0CDA7173E7CE2D7DAA01F8D130C20F3767CD8A + 7FA54500308CE9132A272797CA76FBF7EFEBF039FBF61D0401B0CAEC7180E61C + 2D0A40E70180FD2D0A40A7136EDFBE9DD7A4EFD7AF5FB005607F7ACB0368CED1 + A200B41E0038D05200121266982B203737BF49DFAF6FDF200BC081432D0FA039 + 478B02F0C41238E80CC0BB69DF35D9373664C3275F9214442426C441ABD50AF7 + F15F6234E5080EEE63013878D839808D738681B68291E5B0EF7C3664B202AC4C + 0C839EF14005B802C036411D1CBB908F2A9D1E5ABD119307F7868F77F3AEC074 + 57008C4D2070FEDA03A8ABF5A862F4A8D4E8103B34080FEEDF6FD2D04141BD2D + 00E9479C07D01BE90364E53E86860098100C285755216E785FB49278372942ED + 38E40A0063A00F9053500AB596B142285356614648E311EE96E761FE8978BCF8 + 7C2F6C0EDF81B6BE6DE900E80CAC707B71CA192AE137268DC243854A085E1741 + 6730E241511946F6EB00898B3DA1A4BA184B33E7C3BB87013A1583178C4158F3 + DA06B4F669637E4E9F3EBD2C0087BE740CF04EEA796ED3BCE1A451B15482D71D + 4A753509AFB7416008C22385127121FDD0F6198953DB7A5CF910F14763C07455 + A35D173E3087B27B2A04B77A19D2C82F442BE1B033008BB69FE336BF1942CA93 + 3E00CB1A4968A641045971051644BCE2703BB6E16B877D04A700DE4EF986FB64 + FE086874268065523A4B60FDBC51B871AF04272EE583D18BFF2660341890F0BA + 9FDDEDF065BFFCF242A0BB0EED3AB72191EBF72A1342ED727829788005E0F051 + C7000BB77DCD6D59100AB58EFE0F17FC285355E3D07F7320AFD0D83C666018FC + 3D7E5083AF15663E63228CDDAAD1BE8B29BCF0C78923089510F139DAD454C211 + 6700DEDA7A86DBFA5618545A7A0067F34F909D6411161C25DCE68F31CE5DBD8F + 1BF74BAC9EA754AAF151030042F8AF2681F5D3A243D77642E8DAF0A6CBFA4BB6 + 06C1F7D766842347321C032CD8729ADBBA703454D52680153BBE761BE074753C + 5AB7F3454F661C7A4BC69AEFF7F6F641FF5E0130184D3B9F272BC2ECA18136AF + AF2D7B49208B67BBB6AF09CD8A2070F5968435C2BF8F9D710C90B4F914B7EDED + 7028ABE9FD723370AB1F7E3F64206E5DCDC19CDFFE0DF1BF5B607E4C431AE2B5 + 3B725456E970E1FA5DAC9B35D866E613C8CC7BF91BF05CB7F6B6A1EB5581ED92 + B020841A26E0CDD973ED03CCDF7492DBB6682C9455F4005EDDE687D747FC110C + 3904FE9F80B004335FB520F0FB5B50A2C4CEE399F878D610EBF0C726C3278045 + C76E1D44C242B814AED5DCCF0AE1EB578309C14FD513DF2ECEB40F306FE3092E + E59D0854D400ACF9ECACDB00A7AAE3F0C6C83F093BC5E809C2951CB21C2285E5 + F0FEEC50F3F356A6FD07F3425E14AED7967D9B177C48F8E76C66D8FE256BD320 + D5A5D5601FF8E2FAD27C0700FF3CCEA52C8E44B9865E05BCF6A91F868C1C24CC + 14BF437A3D839B0461F66F9660469D4A58253D8D7F90A3507EE613C9CCB7EAE1 + 85E7CDE1B97AA14CB3CDF7027EF6593B206A8506BE8AF698D82A118BE7BC6B1F + 60CE86AFB8ED8BA30800BD9FAEFE90E28FA1A16F58CD0CFFC3482D42DCC02453 + 05484F61516C10093F05AD037DD0C9BF6303A158075560795C45C24BE46DB13B + 2A1D9967AF386E827F5D9FC16D5F128D32B509E0C37F7DE33600BF0486850DB6 + D95986D1E126E909892F9B109648F7E24EDB2D68F32B093AFB77126D6EE26121 + 8AA252A8E15DDC1ABB48F8EE1D029171F4986380D91F7FC9A52E9D80D24A7A15 + F0E7547F0C0F1B2A3A4342255CCD46749F041CFD291D3DFA3F8B2EFE9D6DD6B1 + B9B909A5CF02764A9E7FAD928447512B73787E3805306BDD1113809A1EC0A0D4 + 00848C1AD6C04717DF1849255CC946F79E01E8CA87776196C5AAE449890A5C91 + 2F768DE3C3F730EF4746C671C700891F1DE6A4CB62A0A8A980757BCFB90DC02F + 8111A387D7695ED625CDA7339A8FE4C49B9BE57E3B7D80FC55C89550DFD56166 + C705E8E8D3C9665F1C02247C98CE49DF9B84128A4B60705A00424787B8F4D1E5 + E84047ECB2BCF8091EE63D2E24584364C94F64CEEC9B0D40FC07073969F26494 + A8E8010CD91180B0F0912E7673CB818E337065E454BA30F7914BE1450166BEBF + 9F932E8F2500A69FAF377C71DE6D007E098C1E13EAC4018C8B28358F298ACB51 + 70BBD0E5F0A20033D6ECE3A42B6221A758017FD9D91DE163468987AD0DD44083 + 74F499AF282E852CA7A051E14501E2567F4E00A6510518FE59778C1D1B5ED3D0 + 4C1F616C9D0668DDE86C1BA46D233435C81212FE5EB6ACD1E14501A6AFDACBA5 + AD9C8E62A50960D3013A4B2022628CDBEBBC6E832C2952E04EF63DB7C28B024C + 5BB1874B5B154700E8FD179611BB7B203222A24E087B25EFB8F4E58FE5C8BF75 + D7EDF0A2005397EFE6A4AB6752050825005191918D6C7CD6CF2B7E2447EEAD7C + 2AE1450162937711807833C0D6F46FDD06E09740F4B828D74F6860DD20F9FE70 + E5E28FD0A835EB65C915EFD1981C1B8029CB7672D23509542B60D49E408C1F17 + 2D5CE783B19CF5919DA5D1396E900C3995BE967503EA4ACDB282E5151BA8034C + 5EBA830024A2882240F8DE40C4444DA07620C423FC98F513150451805402505B + 012987BF731B805F0213A3631C9FD0B8D020F9B3481A080E01680CBE0226474F + B213CAD1F9BEF8EB4C08D751E9068228C0F6D509540F84788029E3A7387542E3 + 6A8374174114208500D03C19E201A64E88B5DBDC80C63748FE3BC6AB97AF350A + 411C605502D5D3611E605ACCB4467FAFE74C83641A89200AF02901505006981E + 33DD4158F71B24BF1CAE5E168E13A692E384838D06A096BC66647790A25222A3 + BDD90606C718E135A330B9FC50A3007E6EE317004FEF80A7C7FF01AD0442D7B2 + 2AA3E90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload File' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000007774944415478DA + EDD9695013671C06F02758AB55ACF5008D8E5AAD53DB0FED17DBB1339DE9F4F0 + 6EB5F5D6AA55AC75C41B51AC2858A5D5D18E0760308A07DE78710A828068ABB5 + DE56AD72884110737009261C3978FB8610E4C8B10979779DB1FFF143849DDD3C + BF7D97EC3E11E1151F91D06F40E8F91F80EF032EDD994E58ED9BEE38FE89BC70 + FC895F266A5F6A80CD733E87AB150C350487D2EEE38EACD02104C1006A18AC83 + 984BD9A8A8D6E1668E2A81228CE582201880818140DAADC75057EA50A1D5E156 + 8E2AA54A87B161F3BF50BF94003A83EB01AE663E8586029810F4B8F55079B14A + 8F11B6100403D0EA5D0FF020AF08EA2A6D1304D55F557A32CC1A826000D5FA9A + DAFFFB4A925CB2DFCDF387E34961796DF08608D57A03AE6729AD22F00EE0B323 + 8D6C99FB25AA74352EDF7799BA9286D73543D05284AB19F2EB1A8D66C4AE65A3 + 8A04055812964AB67A7F4597A7EB016A6A0C34B4D62AC2958C82BBDBBC077F28 + 28C062490AD9366F3034D526801552D75C021BE70EC79D472AC4FD9D0DADCE60 + 711B835E8FE0F9431A65E61D60516832095E3014EA6A43CB7766618ACB2B71EC + FC03284B35CD7EA7D76A11B27098B0000B4392087D1328AF6203601CE33D46EA + 0D19BD2B5435FA7959991AA18B860B0BB0203891842C1A81F24A13C0AA5DC9CC + 8EE5E6D60AEFF713436F305D6E59B9726C5F3C525880F95B1348E8E29128ABD4 + F3723C0DFD83486F88F0BCA21A976EE740E2F3B5B000F3B6C493D025DFA0AC82 + 1F00E3107ACF95A72A4378EC65842D1D252CC0DCCD7144E2330AA575006B769F + 657ABCB5B387D6BF5EBDF30CA4BEA30506F83D96487C47A344C3DF0A304F8034 + 11D2E5DF0A0B3067533409F3FD8E02E87807582D4DC02EBF31B601583736EA67 + A5A3C2968D41B1DA0410B42F8569E800AF212F5E4B4F237CC558FB002C1B9B4B + 3732B0C36F1C8A9EF3BF020276C461F7CAF1DC00583536897FFE6302500B0010 + 16873DFE13B801B06A6C8E255F8374C57814D6AD80F5FB539986F69F31B80140 + 2CF6AE9AC80D805563B327EA22A43F4F844A804B2050128D7D0193B901B06A6C + B61D4E8374E524A8CA8500884244E0146E00AC1A9BA070FA59EC3F85026871EE + 961CEB0EDCAEBD53E363DE6C5B833BE1E36C03B06E6CFC8263205D35054ABA02 + D26ECAB1352A07033F1E84D75F6F4DDF8C0875FF2012894C6F4EF4E2B5A8EE07 + A206DB58DCBE6E9BA6732A3A06B907EDDC07B06E6CE66D88A400536B018C1379 + 4E86C3E905BC20700260D9D8DCCE51421A99829DABA741516602D872240D390A + 03F29FB5638EC0098075633337E81076064CA7008DBFB439962EC391F34F9922 + 700260DDD878071D803470463300E31CA708471922700260DDD8942815146066 + 3D4048E4B946BF67793944C5700060DDD878AF8B80748D97C515609E13E76588 + BC20773942744CAC7D00D68D8DF7BA7D146016E465B6BFB83D794186632E4688 + 8EE500C0BAB1297A5A801D14C0BC0224C7D3AD6E9B51608042DD0E833EF9146E + 6EA21623C4700260DCD82C08DAD708C0DA284BABE027BD86AE3DFB432CEE690A + 55772D3B8B101B17671F807563B3F0D70884057AD5DF08D90ADFA587317C8FC6 + A15A8010C705E0A78D5184656363BC042414C0DAC390397C67F13BE85E1BDE42 + 282711E2E23900CCDE7092B06C6C96AC8F8024C0CBE2E3B0397CA7EEFD68F89E + CD02B61421FE74BC7D801FD79F202C1B1B9FF5FBB19D0214360130877F8B86EF + D6BD87D5BFE42D4138CD0560D66FC709CBC6C67809349D6A432BDC2FEE84DEFD + 3FA0E1C5006C7F9C398B9090C001C02B2892F0D9D8284A2AB120E40ADC3DFAC1 + 9386E7FA99EE0C4242C269FB0033D71D257C3536C6F00B43AFA0BD475F78766B + 7AE69B876A294262220780196B0F137363639C4D07D39884AFD0125CCE3440DC + E73D7878F6A80FE12C82F15B077B374B67B800FCB0E6103137362CCFFCE2ED57 + D1AECBDB34BCB8D1139B33080AC553E43D9661E047B66F9B93CE24D807981E78 + 80346C6C5C1EBEB4124B68F83768F8AE1EDD2D3EB63A82A054C89171FF6E3E21 + 887477775F6EEBD921298903C0B480FDA46963E3AA312F7BCF5E036878B1E5A5 + EA0082929EF9CC07F7F2A1239FE5468EC9ED3D3DDAAF43FB0E1BAD2124730198 + BA2A82586A6C5A3A4A7AE67D24D7D0A6731F74319E79585ECE5C1154347C56C6 + BFF5E1CDC7B185703639D13EC0F7FE7B89B5C6A625E17D8DE13BF546671A9ECB + B3BB2D0495528E6C0BE1ED21A4700198B2720FB1D5D83833E9F774E8247E9786 + E7FE396F0DA190867F98693DBC2D8494B31C0026AF0827F61A1B47C77FF70D3C + 2A7E0D3DFB0E809B937D9E29BC023959F6C35B43483D7BC63EC024BF5D844B63 + E3C854690D08D8730305CFDB388D505428C7A3ACFB9CC35B42F8E37C2A3700AE + 8D8D2363FCA6ED6AB61EA48DA7C308C6F0B2EC070E876F8AA0D13CD75280360E + 01B8729C5909C5850AE43E743EBC797A4D3D3549E426AAC93B38F6845D007B8D + 0D5F08C5450A3C7641785B6311C05663C31742090D9F9793C134BC75002B8D0D + 5F0825454AE43F621FDE2A80A5C6862F8467F4CCE7CB3279096F158079F20663 + 202264967444AB0EBDD0BE434714E466F116DE228010E331E1B87BFBB6AD4F52 + F9FE221D06F315FEA50110725E7980FF001486438C3E4D2CBA0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Upload File Remove Original' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000007964944415478DA + EDDA7D5014651C07F0EF2198AFE57B20D39BD998CED43FD5D84C334D2F565A59 + 69BE8608478DA9A46616960A6A359535F87EC7E14B2F5A8AAFC02188026A4DA6 + A9A951C171701C42726FA01EDE71EFB73D7BC75DBCDC1DBBC7EEAD33F51B66B8 + BDDBD9DDEF677FCFEEB30722FCC74B24F401085DFF03447A87EF659FA4F8DA36 + D970C1DF1AC3B4036B66D86F6980CC794F816B05979BC2F7651528571B582108 + 06E0E6A10FF24E57A3D5E6C04595BE90204C65822018808B0781B24B5760B238 + D06A77E0924A5F627560AA34F569D32D09E070710F70AEAA116602E04570E252 + 8DEE67AB1393422108066077720F5059DF0493D5DE0941FF8BD549BD100C4130 + 009BD3ED595E2629E664BB99A913F1B7A1C513BC3D82CDE9C205A52E2842C401 + 96669551EBE73F03ABC3CDF9B68D260B09EFE882602708E7149A0B66B379D2B6 + F72737090AF0AEB494DAB0E059D29EDC03B8DD2E12DA1E14E157C5D53F362E98 + F0B0A0004B2425D4C6851360B6790196CBB81902EBE64F4479AD1EF2B3D5B03B + 5C01D771399DD894FA5C87CC110758BCE518B5E99DE761B2B97ABEB100D5DC62 + C1BE5395D05D3777F9CC69B763F3A217840558B4B998220781162B3F0074D173 + 8CD2DFD46456A8EFF0BED168C296C513850578675311B579F124B458BC002BB7 + 1DE36D5F5151BD3076541C9C2EEF7053D669B075C98BC202A46E28A4B62C7911 + 468B3322FB33930B229910E166AB0DA72FAB2059FA92B0000BD717505BDE7D19 + C6D6C800D045913957BDDE88EDF967207D6FB2B000F333E59464E9645C6F0358 + BDE338AFFB5BFBD6F3FED7ABB28F42B6EC158101BECAA724CB5EC13573E43AC0 + 57E9B222C83E78555880795FE652D265AF110047C40156C90AB12D6D4A68809D + 3BBFE5ED1B1B910805670CB74F96BE3F05CD262FC027DF94F01A3A5DFCDCBFAF + 6547B07DF9D4EE01525292E072717B9F76BBDD502A6BB0B1A0025969AFA3E966 + E43B203D4B8E1D1F4D1306802EA3B10569D9655E00930000523976AE98CE0CC0 + C90340ABB9154BB71643B67C1A0C6D1DF0D977A5BC865E9134A11D403EBE5E39 + 83218093FBABB4C3E1406AA61CB20F67402FC010C890E4E29BF459C201506446 + 32EF8B43907D3413FA1621000EE3DB8CD9CC00E8B34557458582939D8F1BF720 + A2A3A321FE642F642B6613003B4E5CD2E0E35D973D33B548D4ED7DDC28DFFE3A + 3B002E2B262606496B7E806CE56CE84807945DD460C361151E796C3C7AF78E21 + 072342DB0FB9658ABC0727FAF7B5A8ED0D51BB7502AEDFB64EE73A949B87BADD + 0CE6017C02CC5DBD9B00247800E8CA39A1C60F27AF4604811580DDEEFD9B4265 + 651527E1C78E1DE3F9FDE6A739C85E35075AA31760FD9E32A8B42E34DCE8C73B + 4258005C57CAC77B919D9E48003A6E7FDF4935F69C6AE4158115808D2F80B5E4 + 1A9091D40580AEFD04612F8F08EC006C36CFB242A1E41460DDBEF30420D90FB0 + 39E74487CFF91C0E87F3C200E0BA92E98BE06A71C00EF0D581536AE4FCA8E11C + 21372F9F3980952F808C5D0420051A63E82176F04735F6718C909BCF10402C9E + EBEF80AAAA6A4E013EDF73165904C0D70192FD2783AEABB8EA82D6D40FE31F7F + 025151A21E23E48503C075D143A03D40B0D25DB7224D761EC3E247232E2EDE1B + AA6D2C878B902F973307E06B088809803443EC9F08850A3F74241D7E64C7503D + 4090B302B05A3DCBF497185C163D04240420D8C3902FFC90B8FB11EB091F2054 + 9808F2823000B82EF19AEF214917077C1CF6851F1C3B8A848FEF12B0A7080547 + 0A980124F308904200B612004327005FF84124FC9DB123835EC97B8270843140 + 72A21FA0BA5AC529003D043A97CDD50B15CD8371F7E88748F83800A16F67E122 + 1416B200B0F0D4019DABB1D98AA4CCF3E837EC7E8C20E199DED3C341282C3C72 + 6B01F8C2F71D360A23EEEC7CE6BB86EA294251114380A4A439FE21505353CB4B + 787D8B132B721A3130F6010C1F31D21F225C04FAFF44BB9B2C1D6503C06707D0 + 673E79FD05DC36E43E123EAEC3135B38085A6D23EAAFA8F1C8A3A1A7CDC5470B + 8507F085EF4DC20F1B1E1BF0B1950D824EAB81A2E28F068A42CE8001033E08F5 + EC505CCC06C062F12CAB546ACEC2FBDABEDF88D1247C5CE0566581A02367BEAA + F2CF0638A827EB72A6D4DD9D989B36B0FFC075C1108E3105983B3781F30E68BC + 469FF9DF1033E85E0CA5CF3C02B73353043D09AF54FCE50FEFDB4F2884E3C78A + 5800B4750077E12F92F0F7600809CFE4D93D14825EA7417580F0DD2194840350 + 5BDB65FBACEBED1DF5881E3C8A84677E9F0F866020E16BAA82870F8550729C21 + 4062E21B9C0E81F95B2FA3521F83F8FBC6202ACCEFF3BCE1B55029BB0F1F0CA1 + F4F85116001C0E018BCD8505D2DFA1BED1276C84268306B5CA0AC6E10321FC74 + AA943D805A7D851304AB83C2DA438DD05807B146A0C3ABAB2B5987EF8C6036DF + B41380DBBA05983367362FF300BA1316B2EC846683167535E187F7D55D098766 + 8AA244EEFADD530F3003E070087441C82A6784D0DCA4C5150EC287AA8000093C + 02F81052BB41B846C2D7AB14BC860F0E90308BF7A7C15008D79A7468A8E53F7C + 68001E3BC08F602708528260ECEB47B841CE7C83BA2A22E18302F09EBC5DD95D + 22EC29EF8F9BD1F1E83FF00E5CAD53462C7C4000216AF8F4FD03FAF7893948E4 + 478B1C9810A9F0B70C8090F59F07F80746EB3B8C110B34E20000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Duplicate' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000007DA4944415478DA + EDDA095453571A07F07FC2A943AC767AAC561D8FEDB4B5B6B6769DF19C1EA7ED + 99D605AC631DADC5952268118B4B95162B1A917A6A8FB6228B4044B1EEA2B58B + B4B65A16EBD6C5BAB0A3902828154940262101B2DEB98FC792C00B24E4252FCE + F43B87C3CB4B5EEEBDBF7CF7BDFBBE4484FFF31009DD01A1E30F00AE9DCBB79E + 20EE6A90BEF1379555AA699FAF0D30083DF82E013685FE137C2B982D047BB38B + 917F4DE535085D0258DC90075F9F2D4383DE888B0AE5518A305568842E01CC6E + 10C8BE54016DA3110D06232E2994994D464C4D0E7F45EB95004633FF00E7AEDC + 848E02B008265C92579F6932618250085D02184CFC03945CAF81B6C9D00141F9 + 539389F80981D02580DE64697E1C91748C97C63685FBA352A5691EB83582DE64 + C6F9D26A4110380196A56493D8B057D164B4F0DEA05ADB48076FEC8460A008E7 + 2E579DD7E9741352DF9B542328C0BBC95964F3C231343DF907B058CC74D006BB + 08BF5EFEBD206EE1D8A70505589A9449E2DE190B9D9E055821E3670A6C08F347 + FE5525327E2983C168E67C8DD964427CF8388FAD50391B5A92789CC42F1A0FAD + DEECECFB3914B59A461CFCB104D575BA4ECF990C06242CF613166071C231423B + 014D937B009860D6185917AED155A1D266BF5AAD45E2127F610116C57F471296 + 4C80A6910558957ADC6D1D108B7D30E2E1C13099D9E9565A5E852D4B5F131620 + 7CF35192B8F435A81B4D1EE9848E9E10E98208F50D7A9CCD552069D9446101DE + 89FD8624BEFB2FA81B3C03C004A16BAEEB4A35B61DF919C9CB27090B10B62983 + 242D9B84BA1680E8ED3FB8B51331F3C7B76DAFDEFA3D6411AF0B0CF0C9119214 + F13A6EEB3C9701AD21957D07D9FB93850508DDF815498EF83705307A1C60B5EC + 285223A7080BF0F6862F49F27B5350AB6501D67D96C94B637F92F476DB407A5A + 69E20498FFF1619212F9066AEAF9CB80DBF4FA9E762C0FDE5669E20498B7FE73 + 1640CB27800E3B5A00BCA9D2C40910F2D121225B310DAA960C58BF2BCBE50E9A + CD66F4EED317DE5669E204085E974E641F0440C9E314A8A319B0F3073603BCA9 + D2C40930F7C30344B6723A941A7E017665B200DE5469E204088AD94764513329 + 003B8D36EEC976BA43A31A36E32ED2803CC93CE8C4836CA68037559A3801DE8A + DE4B64AB66A2DA850C2848198E912FFD1557CEAB30E81F312003C760CFF15C78 + 5BA589132070CD6E0A30DB258042D9708C0FFE3BB4757AE49D90030326E0DB3A + 7FC42EF4F3AA4A1327C01CE92EB275F51CDC52B300B1FB9D9F027EF50B9B0100 + 1F98E88ABAE8B40265957D3065C16E90DE439B5FE30D95264E80D9AB7692ADD2 + 400AD0F32F6D8A531F6B0320F48FF97FE3F22D5CCB5362B8DF46F41F368E97C1 + 5B474F2A4D9C00B3A27610D99A2097002E7300402486BA4687FC9C420C181188 + 875E8E8448E4C32B82B395264E80992BD328C0DC368084F41CA73B623D055800 + 316D8DDD3619080A4F16427EB32F7225A1D08BFECC2B02138E569A380166ACD8 + 4664D1C12E6540E9F6C7AD00C46033C02A1BE8BE8A820A5414ABF0987F2CEE7D + F045DE111CA93471024C8F4CA50021A87201409ED60A20B69A02B600CCE3DB55 + 7528FAF112063D1386A12F2C02DFBFD9E8AED26417208502B46640D2A1134E37 + CC4E81BFC1F61CD01980796CA46BD6829CF390ABFA23DF370406511F5E06EF48 + A58913206DED6832C0A7D2E50ED807E09E128A0B25A892D7E2D18949E83BF879 + 5E105AC35EA589132063DD036462A00F3ACEDF8E67F4F6CED3FDA2F6EDB6B4EF + 744C5700EC76EDEFD52839790E83472DC3E0E7427803B05769EA06C076FE7A02 + 80D9A7D7E95190750AF2BA2128F09D0B93C8B7679F7A70FB5A432AFB16DB564C + 750640DCA9F35C9734770030DB167AF5529CBB08E50D2D86F9C7A3F7FD4FB994 + 01D2940C6C5F398D0F80EE3BEF30400738C2D18EAAFC3AAE9CF919434647A1FF + 93D37B0E909C81B4A837EF1400DBA9D7A8D1A230331365F58FA0C87736CCE8E5 + D0A0A382C65A011CC18E550177020077BB667A8F5376F61434FFE985E1D30E3B + 9D016B92BEC267D219C203D87CBA9D00C4768E6100084ACF9C42BD468247A71E + EA01C097D8B966A6D0001DDED306C03E5A835A83A2AC6C94D60F43B1EF2C87A7 + 4064E09876802D5F6057F46C4F0088D111A47B00FBC7A8CA2BE849F017DCFF42 + 14FA8D0870FA936F8DE8C4C3D81D33C7DD0062706584F5A5B33300F731168B08 + F25F2FD0CBA00E43C7C5413260648F07CF021CC29E0FDF7215C0DE8D4DCB73DD + 5CD23A03701FD3A46D4261F669BA101A4A1742413D5E082D9FD53E05A2130F62 + EFBA207701B4BCD6814B9A4D46701C535B4997C2A72EA0DFB38BD1EFA960973E + 759B0C4838887D1FCD7518E034FDE7F20DFAF8E0E7C13D8DB800C490FF568C9B + 8A3AFC656C0224039FE36DF04CAC8D3F80FDEB431C03E023982C7214C0D06844 + E1898BBCDF0E2F99F1AA15C07E1CF8789EC0001C8BA1DBB79882482EFA3EB180 + A67D98DBBAB4366E1FD237BCED4D002294E757A0BCB806035FFE149221A3DDD5 + 95E68889DB8B831B43BD03C0A8B7A0F06411E455F72057B2007AD13D6EE94378 + C02BDE07A0A9D5212FA708928766E1BE51112DE705F7875700DC28BE85ABF935 + B8EFC5F5B8FB8131AE3671E700B05F8D5D4589A217C685A6438D811E1DBCA000 + CC97A3B9390AE8D48DB2746D5458A2743EAF3FBCF06A80912F3D88929F2A7426 + A365C1E4E8CA7D4CB97D8B34B8EDA737FFEB00D9F4CDFB59609A31597AF30AB3 + 8F01F0F8C8ADC2A300774AFC01207407848EFF0211D17D8C1BB2B0BC00000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Move To' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000007BD4944415478DA + EDDB7F5093751C07F0F7061675FDB0B4B44CF38F4844E98775577975A5996266 + 5CE4AF2C40B0D2E4B22B4B4F12C1BCEAECCE041523D37EA2A895A96475674404 + A2222AC9183F3660FC481CDBA0E1C6B667CF9EF53CCF603C0F6CC0DCF36C4FD6 + E78E63CFB33D7CBF9FD73E9FE7D7860CFFF190057B02C18EFF01FAAED8BDFB4B + A76883C990D7D4A499979E9E4E043BF10101929212E07038041D88A228D4D6AA + 515A5A2A298480013061347642AB6DC38913278F36376B62A580E015801401A0 + CBDC0592245984929293C76C36736C7272B2499A00F444850EBBDD4EFF906E04 + BA128AAD56F3EC60220414C0E974B27F978F70AAC46A35CD0A16825700E6DD62 + 42A9AC1664A0C8C808848686B2897311F47A038A8B4B828630288090316CD830 + 771570110C86761415159791A46DF6B265CBF4573400130320542C5DBAE41E49 + 001084EB0855555523C84013274E18F4353939B9A001027A763A284020435200 + B62000EC911480CDC62E5757D78A3A818888BB7B01F6EC931E4020435200D620 + 00EC950A406262BCBB026A6A54A24E60C284F05E80BDFBA50710C8901440305A + 20575200562BBBCCDCC41032BE3E65102D192790D7D2AA9BF76DFA82211FC307 + 051032F47F9B9191A7C0E6579F80D0F7DD1C941339F94A9C6FD0F984E0116089 + 4800060E0025C29DC743C7553059ED28AF6F3B4A23C40E05C133C0923837804A + 5527D8048D661B0E2B4C2C80430481FC738D3059ECE822EC38AB6E3B6A23B168 + 47F2B4012FB1BD025844AA80CC1F2B5900BB437880D29A0B30D3002E0412E7D4 + DA622B89D90321040D80208507A86AD2D32D40F441682BB192CE59DE103C0224 + 24BCE46E01B5BADEE789B495AC05459A3172CA1A845E37C6BD9EDB02369262D7 + ADCAFA4590E4372747A345D7C926CE45B0DA1D38A3D27A45F00AE04F05146C89 + C4E4C7C6A3E6B40EE1D3D2302AE21976BDC14857C011053E5E3E9D9E182548E2 + DC309A2CEC4EB02F02413A505A7DA1C46CEE8AD9F9F65CDE1D27D10066263E08 + 53870DE5BFA970D3F8181A2205ED9708641CAEC096D79EA4CB5378008A72D049 + 135E114E55FF5591F1DA0CDE1D27EF00160BBB5C57D7E0F3449AF29E61018010 + 3037972B8BEAD0F1F7705C1DB90A87AAAF42C68A1930DB5C006BB28569814DCB + A3515EA745DE4935ECA4E7CF341CF46432939FE2E5EC11203EFE45BF2AE0F78C + 496E0027FDC3FC6EAE6A455DB9166521F158F7E66A986CC27FF0C284DE68C1BE + 022574C6AE7ECF910481ADAFCF1A224077055C1640E6E47E0090C961D49B71FE + 3705C644C563CCD4772093858882403A281C3BD3008546C75B6F349AB06D65B4 + 6F00F5F51A9F27C06D0117809C1EC9F598A44B5F51A800418DC3A4986CA4E79C + 1105810979480822C68F769F74D56A5AB1FD8DA70707888B5BEC570B14F22A40 + 0E570570AA815EA7A9D0A049A9C784E88F31FCCE47454330D33BC4B3AA8BF48E + 90C0F1F23A64BD396788007EB440E1D6A86E0039A705B800AE96686FED40E5EF + E730FABE1518FBD00A88F57D0DCAE944535B27761D3E811D6FCDF50DA0A1A1D1 + E7015D2DF000F8FB007E05F42C13F4214A5170066ADD489C0F4B0221BB4ED0E4 + 37BC3CD3FD78DDA73F237BD5B303031CDC34D5194AB4F83DB07700CF2DA13EAD + C4C5FA7684CFC9C2F5B74D1114A12752B37F42F63B3103031CD938CE39272E04 + 7DFBB77F32DDCF31EB659CD2EE297B8FDB7803703D36FCA545F51F6518FDE01B + B8EDFE24C101D6651FC5CED5CF0D1580DFBF7D0F69BCC90B04C0ACB39AAC50E4 + 1741DD71072AC21240CAC2FC7BD7139FE254C08FF86C4DEC5000E4FD26EFE990 + 260600F398A24F12D5A7CE42D762C25DD199B8F6D628412A20F59323D8B5769E + 3F00834F5E08809E71749A26D4149FA44F9AD662E4A485FE03EC3882DD29F325 + 02D0A7727AB7E1B79EA5D304C5B163A8BD741794618BE1C0553E259D92308303 + 70189FBFBB40CA009EC765BEAF555B5C884B9DD7E0EEE70F5C7605ACCFFA015F + A42E922A80DCE3362C0049A1F678110B101EEB0FC0417CB9FE85E001F0CA9B07 + E07D9B2E63272A7FCDA75B209C6E81177C6E81D5714FF6026CFF1E5FA5BD2826 + 801C7D41B8874EDEB21BC0FB363A4D23BB131CF5F0BBB869E2FCCB7EE77B226D + DB77F87AC34B6201C8E1A922B887CEFE009EB7A128197D182C435B7317C6CDDA + 86B01113FD4EDE057000DFBC172F3C005BC232CF2DE1F56CD2CB36BD27426305 + 39117A6B716F0BA46DDB8F9C8D09970BE0EDCAAEFBB54338A4F12AC2C3368616 + 2D9485651871FF4ADC1C9528C8BBCEAB80ADFBB1E7FD250303E46D1C77DC094C + F577B0998953E0B98A3C01B82E865AEB8DB87DC65684DD7AAFE0C933919E998B + BD1F240D0C20443055345400D7E5F059A874B7D097C34B61975D2BE85C562E9A + CE01D88BDC0F974A07A0FD62079DFC39DC3069396EBE6FB958D3E905C8D8837D + 9B5E0912006FDF2183E6CF4668AAF418F5F8665C73FB23A226DE131B3272B0FF + A357830B60676F8A56C24C8EC7E8E919C8CEAB1035E9E405D3A403D06930A33C + BF12B74426202C6A65775B042E820AD0A4BC08D5E97A638179FE8D29291F42DB + 29FC97B1250940D2795616D743ABD197D9ADE4BC03F60D9AACF58968FB2F00B8 + 3E1CAD83C568D96EA19A572D4807B170F54E67562A0D70E90A0798FCE89DA83A + D16876D89DAF3C9BD69CDBF31C03B09D06D05DD900630B64900DA7402E8A49BD + C0FB87030620E09973222000FFA6F81F20D8130876FC038E3B7D8C88B0666000 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Synchronize directories' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000009D84944415478DA + ED9B0B5053571AC7FF7941020105114408028ABAEA58D7A14F3BDB5557EBDB6A + 75CBA875EAF89EBA766B7D0C5DEBB0D66EA7D3DD716CA76EB7CA6A7D5476D14A + C58AA204AB56ADADD355A48822869788402084BCEE4DEEDD93408490DC907003 + C94CFD18E624E775CFFF77BE73CE77EF05017EE526F0F700FC6D4F00F87B00FE + B62700FC3D007FDB1300FE1E80BFED0900AE827D19904689130A58E005EFBA64 + AF369AAB262ECB80D1DFE2780138B143F1F1C8DF2DDE98326183571D965DD985 + 92F307FE3E676BD5267F8BEB31809CEDF1CF0687C8AE3CB36091402295713465 + 5DE6D226037E3C9AC51A75FAE75FD956FD83BF057A0DA0CDF51537464D9A3A7C + 60F2308F44B775D45156AF2A47F1B9FC3B0DE6AAA7027D293801B0BAFEC0A4A1 + 1B474F9EEA529CA7408A95E7F0A8FC5EC02F05070076D77F76C16BEDAEEFBD70 + 7B196D32E2DAD16CB2140C01BD141C0090D9BF317AD2E4B1D1C943BD14CEBAFC + 58AF52E15641411F4B62AF12AF7BBE870012D8892B56782C908F87F0CF77BD34 + 95990731676BA5C7F18D3380E5CBFB54045799C06D1BEEF6CACC437C012CF399 + 085F8BF3642CCACCC37C01BCC17B109E09F4A587759429338FF003F0E2C2D96E + 2FD69BB3E78BBE2E669FE107A007A30B38E3056076FA4FFE1E3F2FCBFD30951F + 80595BBE436BE37FBA54F3E526D74B4767FBC7C2CC4C9E003617A0559DED85A8 + DE15E46D5F8599FBF80198B9391F7AF5D15E16D413709E5DBF30F34B9E0036E5 + 41DF742C600479DA46F0F818E41909CEDC984B00E4048C20F7E62A14E61909CE + D8781C86A6133D1CB8FF832365E6573C01BC930D43F3C98011E46D5FCACCAC6E + 012466406A4D5519303A03D8700446CDA93E10E47D9B9AD616FCF4F021EE6B9A + 51A7D7436D3420522A43A8448278B91C63A206A2E9DBEF306F6B15278084ED91 + A305129C2515B4AA74F5082700D3DF3E0853CB993E11E494EFE2E8D3502664DF + 29C537657751A9D722383C08129918E22021841221189A01CB00161303939602 + 5A2918C01E642CCC27555B350E515DE287FD1359082F8D193B2AAEF8E62F2000 + 042E00EC2300CEF69A204FFBA21906FB8B8BB0E7D64D08FA89211F188260B9C4 + A99E80481009C4E4570491500CD6C2425BAF43438D1A2623952760CD1B54EF6A + 6F5BC593DA17468F1DA550C42B70FA543E07803FEF21240B5C0F90E7C3104F83 + A9728D066F1516A2566844444218C4C1228EFE8878A1A80D40D75420447D4D23 + AAEFD79ACCB4793B51BA66944D7C3CC404D4B727F35C0398F6D66E50DAF33E15 + E459595BFE85EA6ABC73E922647121088D92C19D5967DC3AF362618707744EAD + F9B4914649D15D2812E2A050281E97E7E69EE4F080F5BB40B55EF499206FE07C + FFA006EBCE5F40444A38242112E81B8D30684CA074B46D8D5B4D2816402C1523 + B4BF14615172C842A48E205C7A841D52477ECE896F383C60FD3F40B77EEF1341 + DEB4B947DC3E2DEF0CE4C961640268B4D6EA3145118F49E4775C741462426464 + E002B450146EAB9B88A7D4E264B90A26B918B189316D20DA058AED425D7884FD + FBB19CAF3900FCE923D0BA2B3E9B554FDA5837BC57734FA3416E21F72126BC14 + 15832DCFFC168343431D5A08BAEC4794C5822F4BEEE09FB74A10373C0E03A207 + 700AEE9A661FCFE600B06E0768FD359FCC6A776576415F1495E0B3925FC0901D + 7CCBB8A7B064E430AFFABAD3A4C15AE5258426C662D0E068075717736C92595F + 67B906F0F29BDB6036FCCC4B907315F77D3D7D24077AC682BFA48EC3A21143BB + 69C31124E9F4483B751E71A387226A409493E0AEFBC3E1A387B900A413003779 + 09F22E1FF8AAB40C3ADA8C956346F4B8AF5A0260C9E98B90270CC690C421641F + B0BBBCA370FBFE7020FB000780B51B613116F312E4DB38BFFB7AE59A16AC2CB8 + 8AF021F1E4B85378B40FECFFEF3E0E006BD69323A7D4AF82BC893DCA9AB5589A + 7F19835292101737D8EDCEDFD91332B3F67201584300DCEBA1285FBE01EABEAF + 5B8D1AAC565EC3A0E1C9888D8D753C02395CDFFADD1A3EEFCDDAC30160F50A58 + 28955F04B9CDEFB20769281A938F9F473C99F9E89881366142A1B0E3BEC036EB + A2C7A26D6520290991AD7638E7906B0053572D257758D57D2A88253F6AA3C9AB + BE680B83B585D7F1C860B2DD13D88D22A1AF166C1DBA3172CDEB15E94D339D3D + 60551A01F090E70C79D8A6DDE6E65E4295D1E200A4737587EF9DBFB12CE42201 + F2E74E40A8446CCB3ABBFF0ABF27422FAF9C0FC6DCE062ACBDF78CF03707F3B1 + 226DA5ED33436EEE2D8C1916D602737B6AE1482B549530D43C40EEACE710226E + BB63CCDFFF033F002F4C1D47C0EA3D6DCF0342873DADFC9F0D804DBC0BA10E20 + 48C06461CD5095574057598DBDE3876190B4E339C1E5B3E5FC004C5FF71E19B7 + 77EBD11BB1AEDAA47CFE572C7F6D854D9855A099ED10DA39B5E797DDBD87A026 + 03F6CF5A82E8903087BEF23EDBC9D303A68D016B31BA69E0FBB7BBA9CA22BCF1 + C7651D82DD2C81D2DB7721A9AFC717E393D0BF7DDD77B6CB67553C9F0AAFDB44 + 96807DC0DE8AED9987A47CFE3E5E5FB8D4BDEB93B4BCAC1CE2461D0ECD7E1D11 + D21097D7C8DBBDCB3D800C08138323FF4D46A3AE48576F70F68029C95E88F216 + 82EB6AA985B7B0F8D5C51CAEDF0143DBAA45C98F45F8744C3CC6F60B71D9EDE5 + 73956E0124FE2DE2236190683343330F491C10EBBC07BCF976CFC47ACCC9B962 + CABF3E40DAFC3407E1AE363E6BDAD8A84665B10A9FFC611E5E52243BF5756AF7 + A7AE01B4CDFC4EB14CB4DEF62CC1605955F9AE7A4F57002D2409431FDB7A512B + 16CE5BE076E3EBBC3FB4B468515E5C8154038B194C10C221EC0CB875CED62A07 + 0D093B225E2401E02E5944F0F8A0500934353A6585493D85406102E2CFE5133F + 8C64E7CF9DD7FD11D829A528131E5537A2F141134DB89C14B04CAE99618A45AC + A0DE2266452246A8203BDC044038572215A5F653C8618D7B1BEE68EA2C94717C + 5586FE81F5DA0103E09539731C049B28230424CAB32F01AEA3913253D0AA7530 + 341B419368D2425B2014096D0F4FADB32DEB170C697810F44D463494356BC806 + 3FB122BDF967FBB50306C0ECD9331F0BBB5D528A87B5751839760442C3658E4B + 82C323B88D4573B50E2D35BA3A527572E53675E7871D810360C6CC69362156F1 + 15F72B8A1896FD98DCB6EE1C141F3D20362906D69BB8AEC2CDED299719B5149A + 2AB4A075E633068A5A5A97D1FAA86B9D8001306DC61494DC2E25216E65316DA2 + 7FFF2043DB109F111E290A16BD4F5C7A75644C7F51BFE830E2D662078F60BB9C + 2A0CC3C2D06442EB233D8C2DD47DA2F03D72D77798EBDA010320695822097454 + 8FC5772E1FF241482C2B0C5A4556F6229144383C581E04B1B4EDE5A8D5ACEF03 + 2D14438E36DAFA12C544E2B8730C0407AB4CEA6364A737BBBB76800088286459 + 819CA6E8E95DC577B5F81DB2389128E839B0A224223DA64D8440CF0AD83A22FC + 86906ABAAEF2E29F340202803FED570FE0FFF1C6589B604A2152000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Open folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000A3B4944415478DA + ED9A095014E915C75FCFC9A530C3B90CCC700E2BC27A2E9EE8AEC6C4D5002B18 + D72B29DDCAB1A9DD4A2A292B55AEB035BBBA5AA98D954D62C54DD69465564551 + 3904653DD60B5110044501056161660439E78081999EA3F3CD70CD3057CF0C38 + 93725F55174D7FDDAFDFFFF7BDEF7B5F770F06AFB861EE0EC0DDF66A00100003 + 6DF8FF0580887DDE1C0CF34EC2305D0205288104103EA3A1761118B40381D70B + 3F1E6C20EB2F5CC0E23298D8550042D9B65BF2864702E07DEE3F1FA3527F0E04 + ACA3D0303EC3870E346F2A506914C0A823216A719D61C3156A50AB341274E822 + A185D3428DA414F5AEC6BA78284B9895C07DDAD8046DBBFBCDF4BA1500EF73D6 + 7A8C8265D398D4C5BE415EE0CD62825EBC25A3600808056DE82FA12640215582 + AC5B0E0AD9B04847E8FE22C4A55F19A7F984783E372626064A2F5CF21C00BCBD + FED1A8C70FD37D683FF1E7F8820F9B6933140A4641C269060023FBD4D17D2AA8 + 504674B67581A447DA4210BADF0AF7C8AE8C8ABFC99FC58F8A45E2F5E797945C + F40C005107585B50E45F0744F8F9CE08F5010CB31D825EB0A1F78D32C0381B0C + FFA3FD01C9203437B4102A257E18795CC77F3D3E2A363666F45A1A9C2F2E763F + 00DE7EF65EBA37353B28CEDF2CD50982009D86002A1D1B0F0B1BEB6DA31EB7B4 + 3F0685D011F0E45113B0D92C88898D998085B6C2F345EE05C0DB1F7090E9C7F8 + 637002CB30B929E5380C4994800FAA011FD2E801E827361DCA8840342700C397 + 0E7E6C6FF063F9029D46B7D1FBB4D1E3148BC7C7209D2BCC771F00DE01D6470C + 6FDA3F4213D9302C5181AC4301EA616D352A716728047119574B9B3A04306438 + 59009428C60CBE0EA88B28189685AAC0BAA0083635981368006129FDA9763243 + BF7FA6E0AC7B00A0B45F42A14379483C0B938A074135A0AE00ADE60F6DD9F20A + 52D7A3091368944F690CDAF6D8D93C6C66C00CC398B605C21294D3F9A75F3E80 + 7001F83098AC7A7F8E5F94BC7B88D0E1C4AE76BCFF4BD4CB3A477D713FF75F43 + A5D24E70F911C1E11161247A7F0CD2C83C72F25CAE6300042815E7D3B8796837 + CB914031205A40A35D9C26E8E88DDACFFE94E147FB44ADD4AA34B8F63D51B6B4 + C835A023B59D9F14CF0D0B0FB5DCFB5632E3F8D9E38E0128DC1BF9213779C5A1 + 79697F7528C8CEC63CA82EFCF3E9F46CD166DE01F600EA003FAD56F70BE1C7D2 + 6F5C116F02C10BAB99B330393028307052EFD3CCC6FE5856FCF7CC31F2000A04 + 615134A657434AE6266F6FFF80B19EB511D6449B4EAB85AAFCB33024936CFC08 + 5378A3C939A07DB7E4D054881F01302388C1A497C7C447F3E3E262C67BD8DE5A + E168DE5172000CA94F8DBC16B778C9CAC8E43926E26C093736794F37D49C2FEC + 01B536513F14A64EFCC8834D5C02921F1365B1DC590481B6FF9C3E420E803EF5 + 0342430F2D484F07EB23C43E94967BF740585767180A53271ECAE212E2B8D131 + 3C9B3D3EB9F7F50BAA23A7BEB60F602CF5176566A1D4F7B72F9EB0DE66180A05 + 0568284837A6678BCFB9229EFB197B3646874B8949091C4E24C7A135807E81A4 + 3752008AF7714B6217A5AC8F4C4EB629CE26142393F7F4404D71095AE5392FBE + 13D3C1DFA9C3C04DE20387136EB7DC514C8E53C6FD9002707E1FB76BF9B6AD21 + 742F2F9784BBD63631E1CA7015FCB4301738FC68080B0B2555EE8CB3C1D81C00 + B0651480F3026CB56376AF9DF0A107905594072F140A92D7D8F246DC46D52895 + 0480CD0800739AC5D9F6E34A5B796E217AD01AE26408441D64A2B00060D3A421 + E039E2C8B495E716B9062075DBCF2C02F0047176DBD0BFE5A7CEBB0A60A31500 + 042A6D1AA82A2C0585544EC6B7C71ACAE66369D9A21D56006459AD027DE20ED0 + EA12217AE1FBEED6E0B4E14342B8FCB7CC3B69D9C2655600641A01304DB16795 + 35103E7B0BCC0C0900F5B0BD57F3CE570AABE738B436B1DCDE5A5D0DED0FEBF6 + A315EA1E2B003658AD02F7F24B61E9F6C3A0533F04ADA6DFB9200812E74C23CC + EAA21218ECED4B451970DB0A808C890C30F28B0F0F4375F12D58FDC137302C2B + 32BC807436889721D49269701CCA8EE70E2BD5A2804DA3DF10CC016CCD989401 + 230EBB5A85A01C0A84F8A599A01A2877BB50C7CAF288CF5EA1181E5DB97115F5 + FE9A093F6600D2C70118DFA4FE662544BFB903FCD874D0A85AA74488E3225CBB + 67D39D2A10353CDD9591233A6815C08AAD690800C3ECE2DBA72EC0CAF7FF095A + BC0A9543D3A5E9CB1642AEDDFC9C8A33C5A0E897CFC91088EB6C00586F36090E + C9075106D4C3B2ED074025BFE252105321C499769562082D928ABBD3B385A1C6 + 2D1600AC3303206E6C05028B84E8056F817AA8D673843A50165FB4B441E38DCA + 536939A22D7600BC630460C4E1C32B15C05FBE037CFD35A055DB5B61BAA7BE4F + B6C9C3523F8775B6887664640B8FD901B0D6640ED07FB3BB75E25B58F5EB2F41 + ABAA44E56FEC0BF4F4D77772730BB97B949DBC00EA41052F4DD021B403E0C726 + 4360A0570A2DB51DF0E6BB1F02AEA8B07913E7854CEF3C3028914165C177CFD0 + EA2FDE3C3633006B4C00B43D6C06A6DFEB1091988832A079DA829C4E1FC2C7CF + A0F95EFD113401FE8A04801F99AC03EE5FAC80A4D53BC1CB57063AC32F533C57 + A8B5F607972AA057DC95959123CEB70B60E596D5E373804EAB83B2DC6B68FC7F + 065AE57D341F683D5AA8C5163487DD3C5E4AE0C352F60681544A02C0AA7100FD + 1D7DF0BC490673DFD9081A65BD470B1D1163DE2EEB9240D585BB3528FD1758BE + C60CC0DBE3009AAB9EC2CCD024782D2E1295BFE72F4D28E672999C38A7B5B619 + BEAF7D7610D5FF5D2401BC350EA0B2E80ECC5DB71D985E1254FE14166F30BD42 + 5C8759555201926ED99A777384574902588900D041AD52C3DDFC0A787BE7EF40 + 873718C692F5FBB9F731D75ABB56A3851B27AEAB7AF1F6809D02509204B0C290 + 015D6D5DD0275641F2AA55E801A8DDA3855AB3BEE77DF0E072ADC9E32F0900A9 + 860C68B8DD0841918910161B6C54FE5EA650D77D36DD6B86F6C7ED7F42E5EF0B + 07002C0B61A00C28CBBB03291999C0F4961B2D7F5F8690A9781932D27EB7B00A + 143DB20568F95BE30080A5213A8D0EAA4BEB2075EB7BA0538BDC2EC499767C18 + 879BA7EE4A6B34C240818DDF245900B024A457D40FB23E2D242E9F87D2BFCF45 + 1153018B2071C8F4C08BD66E7874F349617A8E6883EDF82703D8BC38A4F16E33 + 7012664170E40C94FE4A8B379812212ED4777BED8F6F3541E7F73DBF49DF23FC + B783005242EE14D4C0F24D6B814E57A0F2A7B37A13E7854C7FD6DCCAAB06A55C + 199F21103F7308C0C2B54921CD556D307B412C12AF04DBE6C22F1FA61496A969 + D45AA8BADE2A44E9CFB377AE1980D87991A80CF2207AFE0A7464ECE1C733855A + F3D1D5D200B5DF5E1CFFFEE7100056D8CC105E5C28F8F8502CA4BFEB413AF706 + D93158AD4F7AA1AB5DBA2DED13F14907014476536994E035BFFC3D6054DAB406 + 39353E2C550702AE1DFD0A1403B2D04C4157B7A30024AC60DF8059735F9B62A1 + AEC2207FBD4AA981FBB7C48DE939C24432E74F06A0989D9AEAC37D6391E70875 + D0E5F3270FA0EEBBEBFF4213E007CE00A84487525C54E166D33FB76A5232B23B + AB1D06F02ADA0F00DC1D80BBED0700EE0EC0DDF63FB2DB028C071BFE36000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000A344944415478DA + ED5B794C1CD719FFF6985D9699D993D3C0AE09C1DC186C8C31A5975AD76DAD48 + 555CB795A2345573E0A3712527AA1329C726A9E43496D228B15B9CC4F11F3DA4 + 2871A3AAAAE25456521B0C186C888D8D3136D806C3B22CC7B2337B1FD36F3660 + 119B1D66975D9634FEFE4182F7E67DBFDF7BEF3B1F12F89A8B24D90A245BEE11 + 906C05922DF7088875E29B2A55AE92903D1870B0EFED0660930D64BE34D1E45E + 0948F623BCE71B19E6B5B8137058A53202216B494BD3E7D96C539F8E31EC8FCC + 00BE64030FEB4693FBD51AF53335B55570B6E37370CCB0FB8448889A8039F0EB + D657E6994C39D0D9711E8687473F42127E8A248492051CD79666D154935EAF7D + BCFE1B35A0502AC0E7F541F3A93382244445C02CF8E68A8A6263C1FDABC3BFE3 + 4221686FEF06EBD8C4515CE4D74902AFC856537F4D4F376CAFABAB06995C7EFB + 6F3C092DCD9DE0702C4C8268026E832F2BBA0D7E4E8281209C6E3B079393F6D7 + 7730CC53CB09FE10002553531FE664676ED950530912A9F4AE313376077CF6DF + 365F23C32A6322E04BE00B4C0B8EF1FBFDD0DCC233ED7C16997E7539C01FA6E9 + 34FCF14F9371557D755529A2B91B8ECFE78393CD1DE0645C4F36B2ECC1A809B8 + 0DBE748DB1E03EA3E058AFD70B279104D6E57D6227C3BC9348F08748324B2E95 + 9C282C30959595162E38863F99A75ACF82DDCEBCB883655F5E688C20016FA5A6 + AE52C8A56DE52585C6827C61F073E272BBE1544B27E7F5FA7F8E8C7F9008F073 + 9B52565C68BC3FC2A6F0B6E9F4996E989CB61F6C74B04F46FA962001E84F9F36 + E8B407BE898665A1E3154918C609A7DABAFC5E9FFFC7BB9CCE13F1047F90A2CA + 0889E464754591C198971D11FC99AE8B601D9FFA8B85617E6516F04E82A87803 + 23A7E94F8C3999F555E545C8817812A6EC33D076B6C7E909787FB09B71B7C603 + FC215A55AF9012C76BD696D0D999E90B0FE238E8BA78058647ACFF46F00F9A17 + 894F1645841F48C9A6E90FB3D2F55B6BD7962C68652389D536051D9FF74E7A43 + A16FFF86652F2D05FC6175EA56B98C78BF766D29996ED0451CD7D337008343A3 + AD08FE7BA8BB67B1EF8ADA52FC90224B4DBD97A6D13C54575D0632994CB4E223 + 63363877B1CF0281605DA3DB3D140BF83FABC98752E4C4D18D55E5844E43471C + D77F7D08FA066E9E0F306C83D8F05CF4994612A4D914F5478D86DAB3095D8E82 + 204403B831320617AE0C5E030E36A18B9C88067C1345ED4A4D511C44E2253499 + 1A71DCF55B16E8E9BF1EF51A5187C24D6AEA255AA57A61D3DA5250A52845CFEB + BF790BFA06877A7077EAC5EE0E827F8E2255AFD42FB2D62DAB0DBA7AAF8EE029 + AB8FF694C5960CA9A93D2A42F1465D65B1E0AEDC2917AFDD80C111EBA2F7D31C + 8EEBE9031A4AB5B7BEB244F0B45927EDD079A93F663B13733AFCB69A7C989011 + 47EA2A8A082D4D899B8416BABB7F1086AD93112D34FE4E8E46F75DBD9A7A6453 + 4591A0BD997630D0DA73C5E90BF9BEBFCBE16E8F05C7920A22BC659649E4C76A + 4B0B95695AB5480E38E8BC7C0DAC533377F968339FD4A0C7C9D46B1EA8292E00 + A980C7615C6E6839DFEBF7FA834B8A35965C11C278BC412A951C5FBF269FCCD2 + EB44CDE1421CB4F5F6C324C3DC8ED2BE8839A88F73D30D0D5505ABD1DD4656CD + E5F142F385CB9CC71FD8BE93658F2D45FFB894C40E9364056ED767550526435E + 8641D49C601033C84BFD60675D2F6280F52790709FE46765AC2B37E50A469D18 + 5D42F3C53E7079FD8F61E67964A9BAC7AD26D8A456164A8038519A97632CC8CE + 1035C71708400B92E0F4782D6B72B2B28B72B3171DDF8AD7877179F62D56EA5A + 76027809D709E5B2E348405949EE2A5173DC98AEDA661830A60B9F9C603004ED + FD0330CDBA5E43F0FBE2A573DCABC27C8ECE01FCCB94A6ABAB34E54495444512 + DE7076A00B1D9F61DED9C1B04FC453DF8494C5798346A8A97F6469359BD7ADCE + 8B2A895A003D74DD1886D1E999631686FD9939CE75C784F505CC619746FD3D9D + A6B6D5E4E7812C8A246ABE5C181E85A1A9E9131607BBD59C80CA73421B23E670 + 4447BEAD27C9476B56E782625EB1528C5CB18CC3D5F1C9F620C36C4E54EF6159 + 3A434D18D6AA53144FD72209292293A8EB1353D06B19C7D056F29D6813A81547 + 001AC63FD0298ADFD51A7902C49D824124E0B2D5F6D526C03C770552531FAD41 + 1FAF908BAF23F0D2373E010313F6D600C36CF9CA5D01F3AC114C2353B7D5E464 + C56C047BC6C66168C6F1D53282736E309322375767652CDD0D220963ACF30324 + E117E695EE06E70221A386AAABE0A3BB3805429DA356B0B9DC2B3B109A0B85EF + D36ACA8A0DE232430FC6F7080CF2D4B4E0B8205FEAB658C1EEF1BCDAC8389F5D + 7104CC2543253AAD315F23AE36E0C78CB0157DBDD3EFB7146A35D9853ACDA2E3 + DBF13A387CBEA77630CED7570C0173E970659ACE904391A2E6F03BDA6EB5C18C + CFF7B28493BCC5A7C3269A5A57AAD30AA7C38120B42109AE407065A4C3E16685 + 44FE9F2A838ECC4C55899A134E6E6C9330E5F5DE55105945A63654EAB58286D3 + 85D7A66DCCC67942DCB69D0CF351D2080897C440766C7D9A5E69105921E6C177 + 4D4E83D5E3F9DB9883FDA579819258864AF94035DA10A900098CDF0F6DD609BF + 3FC4FD7027CB7EBAEC04F0CD0AA5447A7483414F6814227B0408FE82DD01232E + CFA245519D82786403922013288DD97D3EE8989876E2B5F8EE6E97AB73D908E0 + CBE22912E91BA8A0848A22C1B9EC60E086D3DD0A98DC34E2498E34CE3C5B16A7 + 09D9DE3ABD0E088120CAE6F542D7D4CCA497E396A72CDE44512F5084FCA50D68 + B153A268910DB04EB8CA3A7BBC0CDBB007C02172ADE74842F64A2D1A46A1B52C + 6E0F9C773886D14D3424AC31629E6D8DA915F23D1BD0CD115184B6C3A8E025D6 + 39081C6C8CA535A692490FD668D582A76D08D7E8659D89698D99BF304EEFEA08 + F9C33518B0C8A288EE2C7844CF33EC929BA34A901E5DAF56135A816C720003AA + AB6E5777C0C17E2B6ECD51F36C7B3C4321DF5A8D3E3E9AB8DEE6F34337E38CF9 + 7ECE97707B1C64EF57D3246910A8295C76BAE0A6C77BCAC2B09BCD229227110F + 24A88F73948A8632952A2AF076F4D5E758A7D3C305E2FB4042223F5E999A4A67 + 46F23CE8697AF0248CFAFCBCA7F9099210889900FE898C4E4E1CD8C807385180 + 67F9909575FA7D212E614F64CA5529869C0824F0B146B7DB0D367F70694F6466 + DF039F2E562A8D26854294826E3EC475BA38049FF047526B50AFFC087A85F80C + 1249B0FB836FA21EBF8D8980F98B152B1446D322F53C1F2EDA86D6D815E296ED + 995CBE82285B13818420EA73C6E3014720F4FC0E96FD7D4C047C890442613446 + 70457E9E71B4F86C885BF687923972597D59041278BDCEA05EAE6028B6879277 + 90D0524E1079ABEE084A78A6CFA1C59F0E71497B2A9B29956D598B2E722143CD + E0B56CF3FA627F2A7B170932F96D12C206872F6A84824730477F6C39C1CF8979 + F6B1B44122DD5E8527747E9C123E99A81F9ECCA53D968E44C205FCB825185C31 + CFE5B552E9E3EB9004F4148B828F8980F924E824D2BC692E94B08A6D4CBAD1E4 + 7E4A2A7BA60237A707DDB110F89809E0E56BFD2F33FF4F728F80642B906CB947 + 40B21548B6DC2320D90A245BFE07F938DC7D8CA8BFAE0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Commander' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000004EA4944415478DA + EDDB7B5054551C07F023C314634DD91FF547CD446681091262052C2C028952A4 + 02615442A5542B2F45D190876F1E92A2282F37452BE84112A066A96BBCF60595 + 4808269491CDD41FF547D694430D835DDA5DBCBF1BDC33D73D0F66BCDFBFF6C7 + D973CFF77EFE5AEEC2147493670AEF02BCA302F02EC03B2A00EF02BCA3028807 + F7C446A3F08360DEA568E61A42A6CB3531DA71011E486CBC969D14C1BB23D514 + 551BD00F353163F7FD3F80A805A1BC3B52CD89D3ADF2000F79F9F3EE4835DFF5 + 75CA03DC7DEF74DE1DA9E6D79F07E5016E75BB8D7747AAF97BE82F79007D5618 + B332A7CCE7D0C2A0394C0174C52D2A800AA002C8000C1C5EC2ACCC86EA36B423 + 691E53008FE54755005980FE43EC00B20FB5A1A2156C013C5760002E562F6656 + 26E7703B2A5C1EC2146066D23179800B12803F5312C07C7B652DB132790240BE + 1D409BDB0DD68C05BE54006661010E4A0052250015D701F2DE6E575C20FF9510 + B0DF31FBA69D01EFEB2E9F4FEC1C00F02A06A04F02F07B34FCF5F8CE2683E232 + 1365A37063DBED45BD8462E2487B908A170EA0F7C022B0E1377F1F30DFD5D943 + ACCCA6778C68DBCBB66713DEAF1D076BD21EA4327A8E2CC0F9B7E81C3C5E36BF + 6B445B5FD23A7F210599FD3A06A08721C01601600B63001F1CC0D77A0890DB9B + 04E602EF6A6265B6D618D1E6441B80EBC0FD606DD8E3472A008FEA3000DD1280 + 64633498ABB44D63AFB70937A0349B12B560BF631EE9820F625CFC06899D238E + 2F0EE0DCFE67C086F8E3F042758B94979928DB6B4D686382ED21F490F161B0E6 + A6FD96D839E2CC59F9893C4057150488A89D056643C2056265F2DF33A1BC6536 + 803F4E7A82B53B22FBA900F8256300CE4A0068A64000C85DC6F66B88B93880AF + 2AD90114BE6F42392FB205782C0503F0A50460EA2577305F9D71995899220120 + DB0E30A25B0AD65CF447A8003C8E03F8A2220A6C70ED9901E6619F4B63AF777C + 60565C60C30B4160BF631E8E831FB95DEB0DE07DCE9C23CE13A927E4013ACB21 + C088D503CC2E81038ACB4C94E20FCD28EB795BD17FC2E682B55B5ACE123B471C + FF340C40870460C83013CC6E1117899579530078C30E3034FB4178CEF9EFA900 + 04E000AC6551CAAF7A83D9596746EBE3839CBF908204A663002C654F332BB3AB + CE82D6C56B980268D23F950730EF83008B0B7BC17C2CC79B5899928F2C28F339 + 0DF573C4095A850130ED8500E159AD606E2E0E1D7BBDFB88457181B54B3560BF + 63A6798E38C1AB310046098056D8208E74DD99EC116E6C8DBD28CD73A4F7230B + D05E0A0F0EC980C5A4EBCEA4B4DE8232E234D4CF91DE8F2C405BE953540E1E2F + 7BEBAD68755C20B3F346332FE3337980D63DEC00F67D6C45AB9E650B10BA0603 + D0B21B02DCF313FC80F2CB7DE43EA0943558517AAC0DA0645007D632A7EBA900 + 84ADC500344B00A6F5C30715573CAF3FA828176E4069D26203C17EC79CDB1507 + DE57E0574FEC1C71C271009F9744820D53BB1E01F355BF6F14979928158D1D28 + 3526E0BFD7C9CDF06BF9AAF01662E788F364E6497980331200D7762F300F87F4 + 112B532900A4D801E21BE0F70F75B1E4BE7F10673E0EC0B02B52F9556F30554D + 1D28393A80D979A38958870138BD931DC0FEA31D68E512B6000BD663004E3104 + D00B003AC6000B7100B1C1D39816629D06D395C9F347523C32A9FE4A4C05986C + 00EE898D66E1076C1FD1308EEC3F4CDC8C51017817E01D15807701DE51017817 + E09D7F01E9E8675F9A2F5BA20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Explorer' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000006814944415478DA + ED9B7D50147518C7172739D0D1C9C1CA97347C4911090D89170F1144E0043B84 + 146544A440C4979404B36C26B1994C120C4D14104B11064513393DEE7813EEE4 + E4252434045F915E342B1D1B1D15B024F69FDD7D6E9FB1BDF37E6D3BF1FCB5DF + 99EFFEDCFDCCEAFDEE73AB15F53F1F2BB12F40ECE903C00DAF2C39966745592D + 16FBA2844C0FD593FFC3C1B0488B02B05F52D493B8D45FEC7B13346907CAA98E + 83A1CFFC04F30078CABDC5BE3741536BD0930130D27E92D8F726686E74B49101 + 603B6090D8F726681E3DBC4F06407BEE3CB1EF4DD08C8D3A4E06C0B503D20030 + 6E29210057F78730F94EF402F424BBFD4740FEA3C61EED3DEFD5017284760EDA + 2B5068403E9D700FEDCD481FCC1C8F8F2E2603E0F2D71C00F3F10BB63B0A2FF8 + 6ED518B437C4F73AC8A1C533D15E51880EE4AA9577D09EEF6E3BE678C2DB8400 + 5CFA8A05705B817F240ED5EA41BE5D3616EF05B483AC38EC86F6B40B1B402E5F + F60BDAF3DF3B9C399EF80E210017F729D91B934FC36FCC7016E4DFD4AFA2BD17 + 83AF80EC93FB1ADAAB8EFA1EE492E89FD05ED0FE51CCB1438C8A0C80562E00E7 + 893880F39740BE553401ED0D0BBD0CB247D638B457B7FC1AC8AA886B684F59C0 + 9EEF480AC0851C16C0EF6346A227BD70FD06C8370B715023C221A8293B87A3BD + 736BE0237F6CFE45B41776D481399E1C4B0840CBDE379F75CD7F659C969D2003 + E07C360B2039F7347A5272D40C9845E839C71102702E4B1A4FC094E58400344B + 04C05452009A32E7327979F55CF4A42C9F932087EFBA8DF60A570F05F971FC22 + B4D73FF310C84F1AF14F8B7EAEECA7834BFC493200CEEE616F3AAA74167A526E + E02990E7A5FD88F68E278E06B93B127FBAACF34E80FC67ED78B4F79CE755E678 + DA0A42001A77B30016147BA2271D09A905D92B494775F67E3D95C218AB341E80 + 868C60262B0BA7A28BA8C29B41765BA5A69224A2D2528D541A0F403D0780FF01 + 7C8757BE14EEF0DC7B0178CAF12F3AFFB5A935E89E0EA06E170BC02BFB657491 + 9AB89F41F658ADA6A4AAD27800CE7C196CF2A2D3DF5553B603069B7C9E18F3E8 + E1BDA70330EC0C62725AE1197491C4F0E920CBD794505255693C00353B824C5E + D46B6D09255595C603A0370380772F00AE4A13AABE14A9BFA23D6DD24B205B52 + B919AB341E005D3ABBC8C016FC53E08113FC149899A0A1B82A4DA8FAF2FBF43A + DAABFC082A364B2A376395C60350FD050BC0F63BFC7BFEA3D7E1F77C9FF73414 + 57A509555FDE1F5F407BFA4F26836C49E566ACD278004E6D6701C81A1CD005BB + DCA0B098B54E4371559A50F5E5B1E15BB45797F206C896546EC62A8D07A0328D + 05D0DFE0882EF858DE0AB25FA286E2AA34A1EACB75AD0EED35EE808FB225959B + E33F01A8485530B95FB513BAE0139F169067276929AE4A9BBA73047A5EF39A9B + 203BC76BD0DEF94CF88F9950E526E4CF3556693C00651C005665F823D513001F + E5805E005255693C00A5DB14262F1AB85E4B4955A5F100683F0F6472B6AA1E5D + 304EE90EB2E2FD524AAA2A8D07A02425D0E4458336945252556946EF0815FDA5 + 4909EC670E00AE4AB3A4FAA247A8723347A559EC2529AE4AEB8EC45DA2751E74 + 8942D4173D42959B392ACD22AFC919ABB4AE79BE684F76BC0AE42E3DBEC19179 + C30D4EF016FC9722F5460793D7735D49080057A575FBE15B52EB4AB815EEACC4 + 779A367EF086033635A1BDB2CD2E26AF47EB3B2200B82AADCB0DDF41CA1AE00E + F28106B74803E7B481ECBBA106ED55A57899BC9E3B29005C95D6396934DAB369 + 837F97EFAB7050839410943CA10CED19D2034C5E8FD677440098A3D2C4185ADF + 1101608E4A13A347EB3B2200CC5169620CADEF88003047A58931DEA40070555A + 4CCE5DB4B72F7608C83609F89EAB333D1FE4F6E44EB43736D906E4A4BA10B497 + EA51CC1CD3FA8E0800AE4A5B927103ED1D5C055FB991C5E217DC95530CF2A58D + F8EF8E13B7C0D77A57E9F09FE732669633C7B4BE230280ABD222B65F417B05EB + E04E4DB668360EE05005C8ADEBF1F7061DB7D9811C53EA85F6F605B2FB085ADF + 1101C055696F7DD68CF6BEF910FED82A0BF6C001A8EB403E97700BED4D491F06 + F262950BDACB57B23B495ADF11015091C68A14E5A65AB4A7DA0C7F6EB7F6C68D + 53B71E1AA7C615F87B83AE7B46811C7618DF091E5BC8EE0467276AC900E0AAB4 + 391F54A23DCD563F08C005D7DDDD4D5077D7C7B6A33DF71C787E70AE3DDA5347 + 7530C7B4BE2302C01C9526C6D0FA8E080073549A183D5ADF1101608E4A136368 + 7BD507C0D200A4FCFF0DFBFEE7A8D81720F6F40110FB02C49EBF010436546E39 + 38B0A20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Multiple Files' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000005284944415478DA + EDDAEB4F53671CC0F11F6C4BF67EAFF77ED1FF61E322EA1451AEE522A5C85D50 + D40DB03D2D178DA22E4A0B8516AA431410C6C44D64C298D3646F76D16DC996CC + CCB8B94B364761530AE5D2CBB3E774D4144E0BCF73DA73CE53D92F21A449E9E9 + F9F4E9F9F2146260834F8CD24F40E9F91F408E831CE9BC8DE4380E3EC8E8EF7F + DAD3861AB3969803385B1A27F5C9C3E09DFBF0E58F8FA9109E1B007E463E7F08 + 730B2E2A84E70AE0D6B7BFFA009C1408B2022089AF045FDCFF03E616DD3E04FE + EB2B02045901BC12037CFFC8EE7BF57D00CB10EB21C80AE09158E0D1E3A7F8C4 + 5D2B1066F1F7BB6B208806902B6DAFBDFA0AA8B76C861762D77FAA534F9DCB27 + EE7A762D98F561B8E1EE83E0086101C89536C7BC0BF20910E6034EDC0FB11E02 + D300FCF8D3C623E425AE8DF0622CF29DE86A04DF6DFC7670CC2FC1BD077FAD40 + 601E20306D333C42C2A690082FBF148BAF33DEE50A04400420CC3897E06BBC12 + 5ACA139223022077DAF895901B0261DAB100DFFD3409BFD91D6B3EE60FBFD8C1 + 58911813110025D2E670BA20678D95C02FF59F7111A6F14531D84CDC7B08A6FD + 499101502A6D3E84F84D6B5E13165D9E6765089C9EB16FC054B55508106D69E3 + 5FE9EC7510F8F1E21769D1ED018FC7EBBBDDDCFB19B41ED8161C20DAD2C623A8 + E2D647081CCEF609B41DDCAE0C003F914E1BFF38AA37C81138DB0498ABDF540E + 408AB4F10839F19B898EAFB78D43FBA19DA101A2356DF5EAD7C900BAC6A1E370 + 726880684D5BBD3A8E10600C2C4776850688D6B41934F164009D37C1FA564A68 + 00B7475A00A9D266D024101DDF60FD08AC35BB4303B82406902A6DE400A3D059 + 9B1A1A60D12D2D80546933681209016E40575D9A10E0B0F55374AE2C1E165C5E + 4901A44A9BA130890CC03202B6A3E9428043965B086F13615E6200A9D26628DC + 4A08701DCE6B338400D51D13C858B1059C4BD202F827D269D31302D463800BBA + CC2000E68F91B132092F457900FC13A9B4E9F76D2303E8F800DEE5544280836D + E3086F136176D1232B807FC24D1B57B49D0CA0FD1A741BB28500075AC710DE26 + 8263411980D5439B36AE6807D17D1BDA87A1BB3E47085065BA89F036116F5058 + 01A04B1B574C08601E868B0DB942804AE3283257EF80274E360068D3C615EF24 + 04B80A3D8D794280FD2D3710DE26C23F4EB7D2E7FE1F0065DAB8E264428021B8 + D4942F04A8383782F03611FE9E6305802E6D5CC92E3280B6F7E0F231B510A0FC + EC7584B78930CD0A0065DAB892146280DEE3054100DEF91059DE4E81A9593600 + 68D3A62BDD4D74DFC6D641E83BA11102949DB9862C357B60CAE1227A20E901E8 + D2A62DDB4306601A80FE93854280D2D3C3C85A930A766600E8D2A62D4B25BA6F + 93A91FFA9B8B840025A7AE226B6D1A3B009469A301B872AA580850DCFC3E0648 + 6708802E6DDAF2743200631F0C9C2E1102149D1C42D6BA0C989C21FE373B4987 + 366DDAF20C42805E183C532A04D87762100364C224232B80366DBA8ACCF0000A + 8F0F20AB360BAF00460028D3C65566850970EC0AB26855CC00D0A64D5FA50A0F + 40D3D48F2CBA6C66AE01B469F378C8377141010A1AFB960118590122D346332B + 7E40DD701903E43204202E6DA201F2EB2F61803C662A20366DA201F61A7A5007 + 0660E51721B169130D90C75D441DDC5E665680D8B48906C8D575A3767D3E332B + 406CDAC403682F20B3BE801900B169130D9073F43C6AC300AC7C1E20366DA201 + B2EB6C18400353B38C00884C9B6800556D176AD517C2343300E2DED761019838 + 0D339F0A2B0260D46998F9BB8022002D18E0C9460650FAA4578FAC001B71363C + C0BF98B87C8C57DBFDAE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Error' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000B474944415478DAED9B7B6C53 + F715C7CFFDDD6B3B767C6D27853C80BC9C07A49DC69B761D63A2FB63D5107BB4 + 838106A3A34DC256A6D10A6DE2AF66AAA64DA35AFF586949D27613508D412736 + 2A366DD2AA75681D94772984249040A04008107CFD48ECFBDA39173B24C176AE + 1F7954F448577662FBDEDFF773CFEF9CF37B5C4ED77578908DFB1CC0E700EE01 + E0382EEB17680410A6BB5C0B545D7F1CCF5EA373F030BE16E347221EEEE8D77C + 78F8B125D7381DCEE26B3B1E877BFCFEC3F87B25DB6D1AA6792C00344D9BE6D0 + 03816F71A0AFC63F973200278B9EDF788D5D2FD6A021AF5AB481DADDF7017C39 + C801F78EEE74EE6BB87A3534A901B4B8DD15AAA66DC1D3ACE651B4806FF82142 + 536E281E2A1E0AB6115F03F8F2479EB15FD5F97C5D930AC0B67C7B89A0082FE3 + AFBF6FE538C13242B4909B0BB6FC7CB0B85C20389D20381CC0F13C308BD5F85C + 9323A0AB2A28A110288100C89204E1DBB741090687C190F188E8BAA281FE2755 + 50B73C7FBBFFF2840268446DC5A2F822C7E92FD938E6B00D114E421DD3A783BD + A80878BB3D2DB0EAC000F45FBF0EFD9F7E0AB2DF3F08224C87AE85748E7B39CF + E7FFED4AE432EE00DEF478CA344DDD23002C7244FB36996DCA14C82D2F076B5E + 5E5AA213997CE70E04BABA207CF3A6F137C58810B61DBDE228706C5583CF7761 + DC0034B95CCB30C0ED42E19E9CE86FE88EBB66CD32DC7C2C8DBA87BFAD6DD023 + 06B0FD084242D778A6DEEFDF37E600B68BE2B33C07CD6EC69840BF610C72BD5E + B0A3BB8F451A4D2480BA45B0B313744D33F2A44FD3344CB11BEA7DFE963103D0 + 2C8A9B19075BF3503445773E2707C4DA5AE3EE4F845190F49F3D6BC40ACA1677 + 08860E3F6FF0FB7F937500CD6EB18ED7A1790A8AA7FE2E882288B36A81B30813 + 227E508CA282BFF52C28D825282EDC24089CBEA1C11768CA1A00EAF33CE8FBA7 + A2DBD39DB7783C905B556DA4B24961283AD0D16E044AF2845E8DFA037C37514C + 480940535E5E29A72AA70A18F358A9B0C19CEEAC99099C105F7C08EF441F46EA + E9151559D5D8D7DB0B2266164148E071A838D076CEA823B056801B9A2631E0E6 + 3F2749E7D306D04879DE257E98CFD84291529DCD064E8CF41C1FBF1121BC7857 + 470788DE0AE06EDD86120C8ED9B05EAA05EC3910C6C05781F01341D0550502E7 + CE81160E1B65E32D4D3B9627F91F1F592798064041CFCEB8AD85D8EFF143C8AD + AE061EABB8781624F1172EC0926DAF43F9F2E5F0B7EF7C1B22E7CF4329D60419 + 89EFE9011533CC37F6FD052EBEF71E1C7AF105F056552584A0F6F743086F0265 + 871E3C42A06F69F0F97F9D3280967CFB0C5D115ACB78DE4997B2151783058B9C + B8E2311A77629142E2AB57AD32FE27E3FF08828C8D292D2D4D4F3CBABD326386 + 21DE825D8FAC63F76E38F4C226A844EF4A0441C62E18BE76CD488FDDAA12D278 + 4B6D435F5F774A009A5CE2CE87185B931F757D7B65657CF158BF775EBA344CFC + 60436210DADBA1ACA42425F137483C821B2A3E66310855E85D892084D01B354C + 8F7DD41554ED5D0C882B4C0378C3E329B7686A8797E7054A79397821CAF9232D + 1C89C0B91177FEBEBB118380D55B39BAB229F1B76E815C561657FC30089B7E0A + D5F83D214E36A2DA60E0E245233576AA2ABE703363017154004DA2B87D2ACF1A + 28E7539FB7256A387E3E75F366287DEAE9A4826210140C50E5D3A625FD6E0F8E + 0265049E4C7CCC3AF7EE81DE575E012141FA0E5FBD0A2A5E9B6A831BAAD6B2C1 + EFAF1F15004D6670017F4F8D20187DDF8A0DE673E28FE66CE8A2B53B77024B10 + 18E342686D858AA2E2F8E2FBFA208219C48C783215BBDFB9B56B21DCDD1DF773 + 2D3C60640EAA0DDA143924DBEC85CFF7F6069202D8EE767ECF056C7705BA1567 + B51A009259EEECD950F5DAB6D42060F9EA2D2C1CF6D9752C62221867CC8AD750 + FC858D1B21F8F1A9A4DF8BA017505ABCA8AAE0D361DD0649DA91DC035CE2DFCB + 79FE4937BE17B0F0E04571D4C61084CAD7DF4809827AE60C780B0AEE8AF7F920 + 8CA92D25F13FFE11044F9D1AF5BB2A16660A7A96843ABB54E59F0D52E0EB0901 + FC82E3A8F0E9FB22BABF51F21615992E7773E7CC01EFF6A6D4207CF20938D0CB + C235352989EFDCD000C193274DB58B669A642CA428187EAC28031EC9EF5EA1EB + 8385D13000DBDDEE454E0E0ED792FB637A1112E4FD44E6983317BC2D2D294120 + 4B497C5D1D844E9E48A95D0AD605BAA2402BC2E8D7F42FD749D287710134BBDD + 9B0A19F76A29CDD761EE67694C6E38E6CE858A37DF320541C154852119041353 + 6624BEEBB9672174E29E78B3F30FD40D34AC102F2380EBAAF6B37A49DA1A1F80 + C7F59697F1EB0B68C88B637C66CB31758178104ADF7EDB14043346E2BBD7AF1F + 263EA5DF6336D0B054C75122D5043BEA7CD2BAF800DCAE835F1084C5C6C00701 + 70164BDA8D76CC9B07A5BFFF43C6100CF13F7C0642C78FA77D0E727F0DBDC08F + 5A4F2BCAA1069FF4A54400DA1608428D2D0680B1B42E1833FBBCF950B26347DA + 10B450102EFF601DF41F3F96513B6860441E4091EF881CE9AEF7F9CB1201E879 + CC6229A0FB6E343A0B737CF6F9F361C6CE5DC04C04B961E231485E59BB06FA8F + 65267EE8F96870F43F59BE51EF93068B901100C4E0128BD541B2599A73F9F14C + C23A61F6BB7F0621C75C4C5130601D7AFA2928387D3AED55A5FB00E039C93E90 + 650D010CE6F6FB002CB5DA0C00540566C3BA651924AC1196FD75BFA9686F00C0 + EC70E09BCB81C3BBFF3042CB06043D7237F5BF1F892403E0EAF90A76019AFAE2 + 84CC273BBB31F8F8302398CDF3432D56273082803723530814086969ED3F9148 + B22EE06A430035C6624786FDFF12D5DED8FFD3117F1F84A347E111BC2119B508 + 75D25CE107A304C1838B2C96C59E2C88BFB3604146E24742E08F1CC918820FB5 + 1E92E52469100BA1477861FDF40CD25F36C5671BC2554C876714255921E4DE54 + C6B35767A639DF9FAA781D23B34E358789EC900D08EDD8BE8B8A9AB814A6C190 + 0707438FA55101A62A9EF272CF8ABBD374857BF79AAA13328580EE0FFE648321 + 1A0E4FC3E1F052ABD5994A0E48577CF8C847C6DFB6858BC61C02CD0A610A4C3E + 1C8E4D88CC1684270B4DC6814CC5C76CAC21D040E88422279F10894D894DE5F8 + DDF34CD401C62C0B0E7A32159F2E847F20042F0E921C26B2D649AC037A34DDC4 + 94587452F4AB168BD33ACA892D959550F4AFF78DF5C24CC5A70381CE79ED6B4F + 807C21F9E6101A03FC3B120E45CC4C8A92D1B478A5C037548E960DB09B4CF9DD + 6BE05CB9322BE2538510D8B3076EFE64A3B13A9CCC3AB19B7628AAB96971325A + 18B1696AC712AB551835218E022155F1662198154FC1EF20D6FF6A2A0B2364B4 + 3456C5F36BBC666A820410D2153F1A04B3E2C9BAF0EE9F57D4D496C6C8687114 + 14A17531C6821C33A5F10808998A4F042115F1B481EABF7224A4A6B3384A46CB + E30FF16CAB998C30148263D9B2AC881F092174E08069F1642730F2F7EA5A7ACB + E3648DD10D12B53CBFB0C46C798C10283BD0B27836CD525D7D37DA9B147F05BF + 77565132DB2041465B6498AA9CC251A2C7354EDBE032359AFCFC489625C8748B + CC2004976B998D83FD8F0A0233150F26D0A8DF1F56142DA2E9D9D9241533DA26 + 6707AEF9511C28A53F593EB646333E8771C013022DBBDBE4062144F70C2DC0A0 + 38D93C81EEFC310C7A414D1F9B8D9231A3ADB236C635636660932526509FC788 + AF85411FDBADB231A398C040DF55C3F39ED209DE2C7919A37DBBA248DA786D96 + 8E596CBBFC14C616CD4208F671F60672795AEDC561EEF86F978F5963F48109C6 + E92F55F082A31C418CB53F506DDF8DC23B5525A44EE40313432DFAC8CC2F313B + AC2EE379610682C8CEB2CA3DA3087F85E6F45455894C964766465AECA129C6C1 + EAA98C398BB12ACCA7CA3003D1B7B18F5FC3E3A6A686549D7B67523E3435D286 + 3E3687675C8AD9C2E9A1072B68BB2D1E34076C6CC1895E4F8E3E2647AB77417C + 4F07EDFD97743DA07F961E9B8B678D9FA507271F44FB1CC0830EE0FFE55B3CEA + D2542A7E0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Help Blue' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000CD44944415478DAED5B097054 + E51DFFBFB76F77DFEE6637D9846C2E72720978152C8C623D7AE8A06321908083 + 24E058151DAD9D968228C828D38AA8385EAD882310822057500729763A167550 + 5A506A8B1C49C84D3677F67EBBFBF6BDFEFF2F8D9264EFECA253FDCDECEC3BF7 + FBFF7FDFF7FDAFEF5B469665F83E83F981801F08F88600866112DEC0D4F2DD1A + B75633130F674A0C4C6465982233F2583CE7B1E50CA55D801EFC12189969C567 + BEC267CEE1F931BDD777ECD49E05BE44CB3444E76410907BDF7B7A8DE02F0789 + 5988DADD8897F471090AE06464F818C5DAE9D571FB2EBC7E87FB3B4D4061C5BB + C500D22A06E4BBE2553A0CDC32303B00D8A79BB6FFB2E13B4540F1A27D85B28A + 7D060FCBF1C30EBFAFE73930A768C0A8E3C080C73A2D072A96013537D09E5F94 + 2120C9E0F18AE01244707844E873FAC08DC7238407105960DE66395855BF656E + CBB74A00CD6F978EFB2DC8CC1A18D6E329A86C4EBA0E2C693C68D5AAB888F5FA + 03D0D127407BAF47216618DC28FD3A8347DC18AB9D480801F94B6AC6B112ECC2 + 37AEB9F87ABA510B85590648D5ABE3523A146C6E3F3475B8A0D7E11DAA0CC071 + 89853B5BB695D65F32020A2B0F94E28B5BF179D3E0351ADA13F28C38CC13ABF8 + 70383C7EA86D730C1911A8835D6698A54D55736B924E4051C5FE65F8E4AB2C82 + CE597C877A3C279D4F8A1B0DA5407BAFA08C08E97FF24B0834BECB1AB6CFDB9C + 34028A2A6A56E1537F645503739AD7A860426E0A1870BE47038F37003D76011C + 389CC9C0890149317E6A8E553E348AD252B4906ED22A4632125C682C6B2F3841 + F005064808D0B7BCB2717BE986841350B4B8E601ECEE3FA95403CA92919B906B + 044E1559508F4F84960E27A41AD470DB8C5CB8666286F26E1A7A06529AE675B7 + CD0B5F35DBE0C8979DF0B7935630E93590976950465838880119497080D33330 + 250201E57B5963D5DC4D0923A07071CD7C866576732AEC267C860C5C71B621AA + 5EEAE87303BE05CBCBA7C0ADD373223E4F2065B67E500F6FFCA50EA79749719B + E140A3A8C1EA520C256A87A4887805CA42D984980818B7F89DF101463AC1A935 + 26BA4F3D361E877D14BA434BA7037E312D1B1EBB736A5CAEB0A9D305CB5E3C06 + 2A8EE287F0C69548A86F7729C6917412FD3EBB4A66A7D757CFA98B9B00258EE7 + D547594E3D9DE6BD56CDC2F89C14504531ECAD3D2E58F2B322B8F7B6F1312B7E + 31C8562CDE7014A36A154E3736ECB3019C0E75ED4E8C1F24C51E48A2FF845EF0 + 5F373C4E889A80A2CAFD8FB20CF734A7D1D2C887121CF664F8220BED879F5F95 + 01CBCBA68C4AF94174D90458F8F4514833468EAEC9209EC7E9406A893E2F7A09 + 715563D5BCF531135052F95E81244B67355A9EA7EB5969689D8D9AA80456B322 + EC7A6C565803D68546AFB1C3AD089C65E6615C4E789BF2EEA7ADF0DAA1A6A8A6 + 52AFC3071DFD5E45519FD7E3E6A4C0A4BA1DF35B6322A070F1FE3D6A8DB68CE3 + 34C0E3D02FB04497DB50EF3FF7ABCBE1AA1273D0FB3D28DC8BEFD4C3970DB621 + D7C7983470FFEC62F8F1C4E0EF91BF5FF0874F4194C34F83413411B9381544D1 + 077E9F776F53F5BCF2A80928A9DC3F5106F6B4566760295BCF1FA303AD26BA86 + 330C0C6CFDDDCCA0F7A8B77FB3F9DFD0D62304BD4FCDAF5E3809668420E1B583 + 7570F044775472787D12B4747B485DF07A5C122B3193060D6244020A2B0EBCAE + D168EEE5D45AD06B55906DD646D528A1F2E65C58704341D07BD51FB6C0AE8FDA + C2BE6F4E51C39B8FFC48098C86E3F3BA5E7862C7B9A86569EFF32AC197E8F782 + DF2B6C6AAC9EB72C2201E3EF7ADF24B2DE769D21554FE7A43C59FF68B1F19EC9 + 7059BE69C475370A52B9F10BE53B129E5A340183A5F411D77BEC5EA8D878326A + 59C81B58FB066C81C765731B047F167A0467580230DC5DAAE2D45B785D8A92AF + 93F18B05358F5F03BA209EE2D0F10E78F1BDC690EF31F08DFD79F8F67C8C1883 + 074DB3D7FE232679ACFD82526F103C4E90FCE29286EAB955E109585C7358AB4F + B905031F8CF83825E48D057B1F9DA6143E8663E5D63370B2C11EF17D92E7B1B2 + 22B8E9CAAC11F7A84872E7B3D18F0002459536B748811178DDCE0F1AAB4B6F0D + 49C0E50BF6685CBCC666309915D76749D5001B4DC8771156958D839F5E9931E4 + 1AB9A48A17FE05D114A005C103879E9C1594F8B3AD0E78E8F5D331C9236184D8 + 69F329C4BAEC7D8241F0A5FE6777F9D781D11002C62DA9B99E61D51FEB8D698A + 4F4E37C69EDBA7A3117BF5FEA960491B8819FC189DAD41C3F5CF5A5BC4777D7E + 116EBDD204AB175D1EF43E19D0CD7F6D8BF83BC3D1EBF02BA1B2DBD18F6E3130 + AB71FB9CA3410928AE7867A586D7ADE7F5298AE14BE1E32B6591E7B8F98A74C5 + 861CAFB5436B08B73754793F18392FEC5F7B43501B42B8EFD553506F8DBD30EC + F004148328B89D1813B8569CDF56FA6C70022A6BB6A1F5AFD468756040253431 + 58FFD1C0AF282FC05B8FCE02738868F3A353BDB076E7F9B87EDF87CABBD0FB60 + 5448DEA0AAA1AA744908020E1C4B49CD98815E00B32F4C3E629CFFF12A6F520B + B0338CF276346277BF7C0ABAEDFEB8DAA09A0111405121DA81CF1AB6CDB93628 + 014595075A52D32D635956A58C806457B80298B199387758E5C986ACD8560BC7 + EB227B905020158900490A80BDB7B3B9A16A6E615002700474A465645B1896C5 + 79C826B5C6274912A8037638F0C44F422A4F58B7A7110E7FD113571B83D29386 + 1480C9D8667F8FB51309F8DAC70E27403667E629C77C94B17FBC08786DB07BE5 + 4CA5A01A0A2F1F6C859D9F7424A43D017303425F579B84047C6D654710803340 + 39D670C9EB7DCCCE6075593ECCBD2E3FE433DB3EB4C26B87637779A1E01307F4 + ECED6C0D4B40078E000BD98068EA7DF1A224DD0F3B57CE08797FC7479DF0D2C1 + C4294FA038806C008E80D053808C6046E6D8B154FE4AA6015CB7203B648174DF + 67DDF04C4D5C4B7E61416A4A01117ABBDAC21AC163A9193933D49AD812A09820 + 897064DDD5CA82E9709C6C70C0FD9BEA414AD29E0DBF4F005B6F476837488190 + 31CD52499160B290978A19E3AAAB82DE5BF24A2D9C6E4DC81680A010DC0E70F4 + 778509843014D61B4DEB31184A9A1057E773B0E9C191C552AADE943D5F9BB476 + 094E5B0F4682FDA143E192A5EFDEC071EA23E996FCB81A880633C6F1F0D23D23 + 4BE5EF9FE886A7F659934A406F670B86C3BED0C990920EEBB4B6ACBC624C8793 + 13074CCED3C19B0F968CB8BE6E6F0BBCFF45FCD15E2450E0D5D9763E7C3A3C58 + 1049B3E4DE4215A16480BCEBCE47C641C1986F0C2D556FCB9EAF831EA7388A5F + 0E0FCA04FBBB2E842F880C96C450F92D664B5ED284C935AB61E59C1CB8A24007 + ED7D7E78E950071CAB7325AD3D426F671BF8DCAEC825312A8A0654BEF6ACFCF1 + 7A0A88FE1F40CB64D6D63AB7C1E38B5C14251457D4BC61345BEE31A68D498A40 + 549FB3F77680200CF43ACF1BC0949E0554874C061CFDDD60EBEBDADCB47DEE7D + 741E9180A2A57B2F6365CDA9EC82892CC326D61892F2C640272C2FBF0CAE9F9A + A95CFBE454173CB7E70C38549684934019A0B5F99CC404E4E8174608B43486A9 + 7199D19C9950818C7237EC5A311D4CC33651D9DD7E58B0FE38B854896DCFDED7 + 05B61E6B6C4B63045A1C9519F96C4EC1049E2A4489C2E3B7EB43E601874FB4C3 + 1F0E262E120C887E686FAEA52DB893CE57DDD11C130104B405AB7983695D666E + 51C2843AF4FB82A0790081F602CC7EB639C65F0C8DAE0B0DE071DBE35B1E270C + 6E90305BF2A7272A3C3EB4225FA91A0725C01B80D91B12930992E1EBEF6A1DDD + 0609026D919158388106D144D5E2D1E2C9F91970E3E4E041D691D34E58BB2FBE + F2D7C5F0096EB0B69CB3B31233BA2D328328AA3CB050A5E2DECA2998C48ED64A + 8F4DE7E0CF7767430A3FD4BB3805091ED86285D6DED14583E465DA9BCF4AA2DF + BFA0A9BA745FB067E2DA2657BCB8E6214ECBBF9C53380906B7CAC58BFC0C0EEE + BD290DA615F3CAF9E70D026CFE7B3FB4F48C4E79DA22D7DE740644AFF7E186EA + D257423D17F746C9E2CA9A359C9A7F0AA743D2829678413D8FFE1EBF852730DF + 5F17EED9D16E95FD35A7D6BE909D3F81D5F089FE4B407CF07A5C38E76B25C9EF + 7F245CCF2784004271C5FE7260546F8EC9294C31992DDFAAF2360CA97BACCD76 + 09E44BB3597A10258BF64E9054AA5D0693795A664EF1259F1234E4C9CF3B1D7D + 977EBBFC20284E706A35CB5915BB263D338F4F1D930DC9CE20A9B46DEBB65275 + 579065F1C96FED0F131783FE2BC440E069F40EE56999B96C6A46F6A83DC57090 + 85C7989E8A1A98DD8A7B9880B4B2E1ADF94DF1FC56D2FE345570D78129AC4A5A + CE806A214E0DBD091329DA6C11EFA8A0DEA64D0D94D0B8EC7D6E4CED76328CBC + E17CD5BCE8B78A5D4A0206A1EC34637CF3F1D717320C7BA35667E0F529A94091 + 24790EB58657562E6913268196AD690593EAF614C579F1E371D9C9BAE330978E + 80CCBC6DF0FAF650312311F2259D808BA1FCB18AE7AE458569316222003B197B + 321F5BA33932B844D58162898CCC36CAAC740E153E83E7C70C82F8E925FDE3E4 + F7113F10F07D27E0BFBF3DCADBEA8717160000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Information' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000A724944415478DAED5B697014 + C7157E333B3B7B6B7775AF90B49290B00DAE242E2E733840528553952248041C + 0E0948AA6CA8E41F8EB90CB6630EA1B848FE25C48ECB4612710C08C9F68F5452 + 490CE1323E429C02C2A91B9D68B5F7313B3B93D7239608A15D6977678452F055 + A95633DD33AFDFD7FD5EBF7EDD4389A2088F32A8C7043C26E07F04501425BB80 + 19AB8EB27E0D3B17FF9D2B50308D1661BA4889F978AD45C919925C8001FC0952 + 22D58975AE609DEB787D411FE22E5C3EF60227779BEED3590902F25EFA44AF09 + F03FC457AF1129780EDF6A4CF2557E10E114D0E2878600DF806478273501F6AA + 8F8B01841D1488EBF0522F476387932102750480AE6EABFB41CBA42260EA8F9B + 0A041EAA05107F846F604696EBB50C588D2C98740C18F07F9D8601154D819A19 + 9217E64588082204423CF8823C78023C0C7A39F0E3FFA340C0BF632A867AE5D6 + 7BE51D0F950062DF3E1DB305446A378CE871232A6B4BD741B6450B1AB52A2962 + 43E108F43983D0ED088037F000197E6CFD1E348D5F25EA276421A06043E3545A + 803FE213B386DF4F3769C09E6300B35E9D94D2B1E0F287A1ADD7070E4FE87E65 + 00BE146858DD71B8E2D68411605FDF54810FBE8FF5D3A2F7C8D02E9B62C2612E + AFE223E10984E1C66D8F642AC314728B14B5B1ADB6BC5171028AAB4EBC88CEE8 + 108D20D7343E437ADC96AE55641A8DA540B723288D08E16EFB050496FCACB56E + C521C50828AA6ADC8AB56A68D5904D6B591594E519C1A063E061C0877EE14697 + 17825C64888408F91577B6D65554CB4E40D1FAA64DF87348A51A529638B9B23C + 1330AA89E9F558E0232292E0B9E7242311FC15C49FB6D657FC563602249B0738 + CEA8181A2B490EAE38D7204D65C920C8F1D0DEE705B76FC879A7195828CC36E2 + 884A6E24E10C0ACDDD5EC951A276480A2F8882F8425B7D4543CA0414AE6D28A1 + 55F44546CDA69172E2EC4A50F9647B9E0CD74030042FAF9C0E0B676449F7CE5C + EE8783C7AE804EA791CC2A59126EA23910E74874E2C39C5B25D2336FD52FBF99 + 34018B177FCAB41638CFA918F56C62F71A350DA53623A85218F61CC741FDD6F9 + 9036629A2443B8B2E61C306CF2B34804CDE1268E84505890FC81C087BFD207C3 + F347C609E326A068FD89ED34C55433AC868C7CA9E793EDA128367FCF0E4B67DA + 462DFBEB3F7BE0377F6A4DE9FD648435F7F8882500CF857064F03B5A6B571C48 + 9880D2750DF93CADBAC66A747A723FC7A2C120874DA97104475E992585C6A321 + 808D5F5BF345CA321C1E0E7A9D2149512E14F0D394EAA9E6DA65ED09115054D5 + F401A356AF661816B438F40BB3935FDB0C1F587FD83A1BF49AD14711E9BDD532 + 1040D0D6EB87209A02CF7310E642C7DBEA57AC1A3701C4F1A918D5358DCEC090 + D57A41A60E342C2D4BC3B6AF2C8305D333462D3B7B65000E1CBF218B9C102740 + C79D00511742019F400BD41351873826014595270E31AC76931A6D9FF456AE55 + 234BA30848C4F8EB179F06E30833F0A2F77EF9F797E0F6405036593D8321F087 + 2238238488F37DA7ADAEFCA5310920C90C7580EFD51BCC46724D9427DE5F4EE4 + 676A61E3770BE19992A1A5C4C56637BCFFB776E8BC239FF20464362024101D03 + 3EB7DF10E4724852252E01F6CA13EB70CEAFD7EA8CD27A9D38BF890405F24696 + 3DB89C26F98660C00B4298DFD0525F5E1B9780A2CAC63F6BF4C6A54802467C8C + 14F2FE3F83C4172E3F4F022308F9BD7FC110F9F998042C5972926929700E1AD3 + D2A5E19F6D66814E32DC9D2C103044EC73719219F8DC83413403F3A5A3ABEE05 + 46F7115054F5D17CF4FE670D268B14E7A79B525FDB37B7752554BFC49E273B09 + 0E4F584AB9F93D4E9C16230B5AEB969F1B9D800D8D5B34ACE1A0566F941C9F51 + 9B5AD447F0F7BDB313AAFF9D5DE38F03C69B7EF0042292430CFABD1813F8B636 + 1FAE786B54028AD737BDA733A46DC4E80F0C38FDB13278FF4FF7CE4AA8FE925D + 5FA62C73243854DE87D3214685381BB86A5B6A2B368C4A00AEF94FA3FD2F240E + D080BDCFC860FFA7F62546C0A257E5270017C7B84A8C40840F83D7EDF8ACE5F0 + F279B108B861B6669792951F19017264B84EEF4F8C80E776CA4F0051918C0041 + 8880DBD1D7DE525B6E1F950034815E4B466E3645D3A0636945727C67F6CF8C5B + BE70E757B2CB242011A12808E01CE8E94302726210F051C09269D312C5B532C5 + FE2371AE3A3E01F3772843409013A4DFC1FEDB021270CFBB3F4080352B4F2280 + 659499FFCF1F884FC0BCEDCA10C0F1437A3AFA3AE311D0D46BCD9A924DD3AAA4 + F37D63E142CD3371CBE76EBBA8885C1207101F802320B6091027989E35A59464 + 7E954AF17F3E060173142280A849D2648EFECED84E904C83E80417AA59AD32DA + 23BEA8F956DCF2D9DBFEA598EC30170297A327F6348826F0AEC992F913ADDEA4 + 58233E3FF0CDB8E573B67FAD986C12097A9C7D7102210C850D06CB41A3392329 + 01E3C185EA6FC42D9FBBE3DF8AC9F6BA06301274C609852B4F3CCB6874E73372 + 0A146BC467FB9F8E5BFEECCE4B8AC976F4756038CCC55E0C4597C33953A61AEF + EE7DCA8EF3FB66C42D9FF7EA6545E49220A8B7AB25680884622F87A309114B56 + DE52B222548480BDD3E313B0EB8A227289FD3BFBBBE22744A2293154BE3E3D3B + 5F91869CDBF354DCF2F9BBFFA388DCC1BEDB10F2FBC64E894949D160A4D7965F + 6A8C6E83CB89B36F3E19B77CC16B5765974902A0DE8E9B7E7D601C4951029216 + 3759B337A559B3646FCC995F4C8B5BBEF0F5EBB2CBF438EF806BB07F7C697102 + B231C2A8D5D7720BA73194CCCEF0CC1B65F10978439E8D912888F3EB69BF2E50 + 1171FC1B230445558D47D2D2B3D7A659B3536A40E7ADFBA7350C43E3D6C760EC + BEEBFCA9F1A7CDB1E01EEC07D7404F625B6304647334A262AED9ECD3F42A26F9 + E4E83F5E9B9A9202DF7E73DC87BF1E00C90075B75FF753229DF8E628013913A4 + 33986AB2F28A936EC4A9DD252911B0684F73D2CFF677B540C0EF4E6E7B9C207A + 40C29A953F1BD708491250942201AD493D471C9FB3BF33B503120425EB3F2914 + 21F2756EC1340BAB4D7C8BFCE42E7BC2CF0CC7E2BD6D093FC305FDD0D371DD4D + 0B546A4764A2B057367C9F516B3EB6153E41938CF16406D902EB6EBF26F0117E + 65AC8393491D932307241956FBB6CDFE24448FCA4D36902372DD6D57211CE636 + B7D696FF2E56BDA40F4A165736FD9CD168DEC2F80026DB48203D8FF33D84B9E0 + B6D6BA8A5FC6AB9BF251599A610FE51694D11A9DE161EB2D2114F0A1CDDF1004 + 9EDBDC52B7E29DB1EAA77C58BAB8AA691956AECDC82DB498D373C6F58C527039 + 7A61A0A7DD2D80383187A5EF91B0B6C12EAAE8A30693754EA6AD08C8719A8904 + 39F6D2DFD50A5ECFE0C41F978FE26E9CB005D70BAF5BB3A6E82D993620297525 + 415676AE3B3D24BBEB17C5C8C3FB606238C827333C2FEE6318668D25C3C69833 + 722195F0793490B0960C77E79D2E1EE7B80F6906763CF44F664622FAD1144DC1 + 1A439AD54816523AA339E969934C6B01AF0B17347DE474875F1061727E343512 + 24A9C2FAF9E5144DADC3462FD2E90D469DC10CAC56071A8C2619B516B00C8951 + DF55348CCB5672C03908218CE2B820D9C777631CEFF562034F63B33E08E99886 + AEB797F9E5689FE2040C07F113CD76C75C5544354F04A114854C478936946442 + 89E6BB4D72E13D0FDEEB1681BA1AFD70D2DE693E7FF2E4123EA5062442C0A388 + C7043CEA04FC1717ACB1CC70E3AFED0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Warning' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB00000B694944415478DAED9B0B5054 + D719C7BF73EFDD3720084B14D85D08202A2289113035261A939A49045AA749C8 + AB4DA7ED7492493293E6612B38D909A0796726696CA7D37646DB54F26A0A984C + 9E12B53E408321024AE4E1EEF25290E7B2CF7BEFE977EFA64CA9CB2E6F01FD1C + D0DD73CFB9E7FCEE39DFFFFBCE3D124A295CC946AE02B80AE02A002084CCE84D + DF35A72A359CFD590AF401BC3B83777FDFC53B76DE63EEB2CF643FE4B1CF3480 + 0A73BC7A9013F785E9988DFA70161F0140779F000376F18893776E9A49089705 + 406991E9D5053AF29BB86BB811DF7774F1D03728EECE2EB03E3C6F0194161956 + 2B58A632C9A0605806401D9D810B4005CECE7F8388AEA8D1E6058F00B7E6E65B + 2AE62580B22263656C349B191ECA8022C400BAB83BE4EF1DED15E01968848121 + 116C9D426D356F4D379B419C570070F00F6954644FA281C3FBB11012BF051865 + A85C26F24EB0B7BC0754E4A1A58D07BB437C3477BBED0FF30640B939464B15DC + D9C4382E46A326A05A9806AAA8D523AEF1F4D480ABBB1A5C1E0A8D16BE47E099 + C41F9BCFF5CD0B00B8F60B23C2D802C3221608AB919F3E61463A414A0518B2FC + 0B44AF1DDA2F0870B15F7C3327DFFAC49C0750FEC2B54622F20D4B1238B58223 + A0895E0B8AB06BFD5EEBB55BD1211E0041006868F1F24085D4BBB6B57D37A701 + 94161BDF5B1CC5FC243A9201561509DA58747C01EEE768FB1C04D779E8EE15A1 + EDBCF8696E81F58E390B60DF0EC33A962507972672F298B5319B6408814CF0F6 + 83A3F563B973DF350BE076D3EC9CEDD67D730E00CA18B38A339D8C8F63562E08 + 23C0E94CA0D6DF38A6BAEE8B27C03BD8088343149A2D42A38B0F4DBDC75CE799 + 5300CA0B8DBFD2EAC89F92E2A5709745CDBF4B76809259DBEDB06B6F1D1CAFED + 923F67ACD0C3A3F7A5823126C4D731D183B3601FFEED85161B86C983F04C4E81 + E5953903E063735218CF79CEA624B2D192EC29C35341B160B95CD6DA39043FCF + 3F08F621EF883A3A0D077FDD71331817FB204833C0D37312DC288B671A8501AF + 5791BCC5DC74614E00282B36BD1619014F1A62187CEA5A79ED4BB340B2DFBE7A + 020E1CEFF45BEFE6D58BE0C5A7BF8F0FA808CE8ECF30484259EC14E142B7F897 + 9C02DB2F673D80D29D71491C30A7972F61390EA55E159905AC3676B8FCD6873F + 05A74BF05B57AD62A162F7A6E1CF921AB8BB0E838041717D83207A05F1FADCFC + D66F6735000C793F8A8D61EE8C8E22C0A0C757EBD78D28BF31EF9380F58F968C + 543D77F73104D109177B28586CE2A1DCEDD69B672D807DC5864D0A25F964790A + 2BB7A98EBE051845D8886BD6E47D16B08D63253F1CF159E487C075A1425E12A7 + 1B447039E9DDD9DBADEFCF3A001566E00638535DF2B564892C7B5A2328C2D32F + B96E4DDEE74100DC7EC977DE817AE0ED4DE838258728B6867999E40DE673AE59 + 05A0ACD0F064D802E6B5E44482ED71A08ADE80F1BED20F80FD4100DCEAA7A33C + B8711648F2D8DC42A1B78F3E9753607D7ED600C06C2F0A30DB4B5DC684AB5580 + B1FE32747CF17EAF5D73DF578101EC5DEFF77BC1D90ADEFE53E041F5ACAD171D + 8C4748B9D3DCD63A2B0094151BFF788D9EFCDA104764D95345498ECF7F9B6BEE + 3B1004C02DA3751723C42340F94168EFA0F8037B3138BAFFB20340C7B7826149 + CDCA150CC3A2D42BC25761BC1F35EAF559798702B65759B26ED432D1D30B9EDE + E320A22C9EAA13C1EB11B3B20B5AAB2E2B80D242E3C18478B24EAF47D9534622 + 80EB035EBF26EF70C0F263256B03964BCB40749F871E94C5A6665A5DCD5B3326 + BA7D366900A585A62D5A2DFD206D85541F43DE856BE42510C8B2F28E062CAF2C + 099C3051D18D21F2115916EBEA292A033C8C29F3EE190720EFEFB342C3B2E58C + 31341480D51830E34B0A5A2F2BAF320880ACA06DF08E7320385A60680823C4D3 + F482D3E34C9CC8FB844901282F3215442CA485C9C95817654F1991351CEF0706 + 70220880D541DB909EBEB7EFB83C1B9A9B297477C14BD905D6AD3306A0D46C88 + 6195A4213D9D842851F6385D3286BD8BC654372BEFEB20006E18533BA2A70B83 + A333E04559ACF9867A781053737FD7DA38230030DEDF131B0B0F190C92ECE930 + D5BD0E4693BDFFB7CCBCEA80E55525ABC6DC0FEFC037288B982DB603D86CB42C + 3BDF9A3BED00CA8BE232154AE668FA7520CB1E179A8A2B206CCCF5B3F2022773 + 95252BC73E00CC13F8C153F2406ABEC1C4C90DB721842FA70D806F9BCB783429 + 1932F57AC0446721B0BA2563EEB0649979A702965795A48DAB3DC1D188CBA11B + 7A7B00CE9C81FA50DE9ABEC10CFCB40090DEEE8484C09E3429C7210C3EFD74BF + F17E4000F7D60606F0CE8A71B5276D9BF18335F80F01EAEB00067AC963D9DB2D + 6F4D398077CDFA108D5273362D0D1685A0EC31AA1860D431E3EAAC0FC0E92000 + 968DBB4DD1DD09A2AB151C0E748827A147E11593EF30B7F64C2980B22253B13E + 9A6E4B4EC10F44015C48AA3C0BC60FA02108809471B729E50982BDDE278B4D00 + 1D1DF4ADDC7CDB635306E0C39DF1F14A104FAFCA00B512673CA336C9EB7F2296 + 716FE0173DC7DF199F4F191E0CDF8F196333F0B8FABF3E0EBC4780F41F6DB3D6 + 4F0980B262C307A678D812670439D46535C913EAA40F4053100089136E5B7036 + A12BB04307CA62F359F2654E81F5B64903282D366DD0A8E8FE55991418460A79 + B18341E2FD4076CB4F2DE070F9CF5DB46A060EEC314DB86D7406A80A67E5819D + 3C4160C84E7373B7DBCA260CE07BD9AB59964A5744EAA588371C9D5F2C4CC69E + 79B50BBEAA72F82D5B9FA985979FD24FAA7DD1D309D47B11FA7A016A6B48C0B7 + 4A410194161A1E89584876A55D271DA563F0C127C971FF64CCDAC1C3CFB675C2 + E0D0C85910AA6360F78E45605C3CB9F62539149C8D3E593C45A0BB1BB662B6F8 + D2B8017C688E0FE71462D3F59974A14E2739FE28747C5141EF3F16B3B4F3F0FB + 7FF443E529DFBE66569A1A1EBB7F0198622639F8FF0E8CEFC599701E9C4E80EA + 4A62F7781489FEDE2A050450566C7C2326963E9E9442E5A7CEA81330DA9FD9F3 + 841306807F44B7455A0FD0D248A0D542FC9E3E1B15C0473B62971086ADCB5C2B + 729C0227BF72313A3EDDE51ED7F84C70E2F8DBE4C31655871991F7928CEC7CCB + 884C6C540018F27E96B494DE1E6B90CE716A8028C71FF105324BBB006FBE6DC7 + 25E0F34D59694A78FC81105C02C1F713C663D48B0E511882F3ED04CED4912A94 + C511BB2D7E0194151A376B74509EB156940F3530CA3829EB99B24ED93A057868 + 6B9FFCEEFF7F4DA721F0B717C3A71602F5E2526893460A5F5732601FA0F7E714 + D8F68E0A403AC3ABE606EBD26FA0491191F83D1B82CB3F72C2F7F7674FBD6C87 + 8A2AFF671DD66728E1B56743A6F47E9243A4C2000CF4638458C5B4325E3E25DB + DCEEF00B00E3FDA723F5E2CB2B574912C5C8539F4C20DE0F646B1FECC740C8FF + 0975B58AC0D1B7174C2D002AE244E8F0C9E2B70C9CEF20CFE35278EE1200FF34 + 27462B95DEB3993709611AAD2FE801666A9F8664373D381810C091B743A7FC9E + 200EC933C18DAA5B79887511B7902CBD551A01A0ACC8F0676302FC2269A928CB + 1E51444F7D47D09E7AC905FB2BFDEF57ACCFE4E0F5ADEA69B92FF576C93E4192 + C5E646E6FDDC7CEBDDC300F6ED4C58CA7162DD8DEB05463AD440B808FCA59A96 + 8ED83A293CF0ACEB122718AA4327F8821A9DE034C51A3878CA5F94DF2A1D3BC0 + E26C20376CDE76AEDA076047FCAE8425C223094952D0A3F44DFF69B4736D14DE + F83B0F95DFFA4E8A64AD64E1890739888F9DDE408B0AFD72C28481117C57CBBC + B739DF728F0CA0BCC86859BB5134AAB592E70F97373CE6A7F1B22FF0B8010E7D + CEF5606014E903506CEADDB8990F97C480B061DF273C7323EC1D9751DE370BD0 + BE28E7000110DF1228361D4E5B2DFC207AF195F11FA87ABA08541F63EB1140AA + 6F06141A3338253998902CAAF50841A3F56D7ECC27939C9FDB89E9F105024D67 + 188FDB0377E51658BE1896C10F0B0D890C215B71E24BDB48D7E0CFC4B77D66A7 + 49B9373E7BD88FF3FE95CDF9B6DA6119BC92ED2A80AB00AE02B8B201FC0784B2 + DECCF3E050080000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Bulb On n p' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA86400000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000009FD4944415478DAED9A7B6C53 + D719C0BF73AF7DE3479C87090990D4714A6C2764306085B08D095837B4EEA149 + D534B46E90D015BAB2162A75D5DA6DD282AAA9D556B4B6D218595B92747F6CAA + C41ED2A6B5DD26560AF4018C7534103BEF8434210979D88E63DFD7D939F7E59B + 902C018A63877ED2D1B9AFDC73BFDFF9BEEF7CDF7110C6186E67411F03B84100 + 08A1EB7AFE5253859F01793B60FC19725A49DA72D2966AB787C857F4913706C9 + 8B4FCBC0BC5159D312BA9EF7DFB01EB712406783D79640966F93A7F759B3F07A + A75B007B9E049C43060B2703CBA9634B3C0221C180106320366681D88805441E + CE92BB47FA4B4B9AB66DFB97987100824DFE1DE4AB7EE15C22DE9157CC83237F + 4E1DA6088530DAC7D1BE938CF4B8BFB6F5584600687EA9CA6D6185A3592EF1EB + 85BE38D872A4697FC801580300966200C6A55E932300622F8040AC1E0B531E9F + 241631D86683C404732C0B0B0F94EDEE1A4B5B002D2F0702C0CA6FB84B78CF92 + 3BE3603C4295B66F07E4D80E90B5965CB0CCF256622589F38063AF13CDFF41B4 + E235E500863B6C30D6C7053162EEA9D815EC4C3B00C1067F0562F05B85FEC982 + 9C65FA2C3200CEAF00CADE09C0E65FDF00D255C09126E20B0406C8CAA5F17E0E + 065B6DC34842D5FEFB431D6903A0B9C1BB8C65ACEF2E0F4C7A5C459AF2C4BC51 + DE0F00B83537F47E43A8458C1F220C2694D3F080150682F61E49E4D6553DD03C + B2E000701D30A1B2F2BFBB3DFCE7977813EA4DE2DF8AF24CC1CD29AF8B744585 + 20F62BA7D41D467BB35E0BD486EE5970002D8DE50F3972E5C3256BD519022617 + 50FE13A4CFFB689437208C001E7B9A58425439EDFDB7131211F67EB23A342C18 + 80E657ABB2AD937CB7E7AEA89BAEED80AC0039FB00594A3E5AE535C174A5081F + A607645560A1E79C7344B473A555DF6C8E2E088050A3EF27AE65C253458149F5 + A2FD6E40F6CDB7447903C2E471B2429C508EFB2FDA213264FD61456DEBCF530E + 000E2226E8F5757A37443DCAEC334E32FB7B01017B6B01D03C21FC2239884122 + AA584147A0B67565CA01B435FA36595DF2DB9E4F69BE6FAB26117FFD2D55DE90 + C419D2CE2A87DDEF65432261D910D8D97236A50088F9FF2CDF23FCA880243C8A + 38EF55AD201522870126FEAC1C0EB7D315C1FA240986CFA41400C9F55F2F591D + DBEE7093EC8DC926FEFFC5D428AF4BEC351A10203A6C85FE66FB5FFC35A1AFA5 + 1440A8C9DFE9AD8E7AAD36E2FF6C2149713F995A002441026918785241769F71 + 86FC35AD815403185DF9D9481E63217FCF92D2DEEA4D2D00A1434990240141C7 + 69D720B180A25403C0BE2D61F5842D5021A452A47EC502B08CA0ED2D57940070 + A51A4064E5E64836C36225FB0376498A010C2BC170012DC0172CDD38E1E7ECB2 + 5AEECE3BF5251522A2B902298991B92C26EFC1B4EA13AFD9139851E431A55CE6 + 27480C389B7D9100A84A3180C0DF56AC9EF89293AE0224FD2129E03C14B7912E + CBA43CED194D71D09417D57D004C0A2B1C9FFD7598669F182283A43ABCE478D5 + 5F13DC915A008DBE27F24A84A79796C7E77E982AAE378634E054ABA1CA53308A + C89AF2A2AAB80221A6B5D9B7D3062ED17498DBE3DF157C29A500DA1A7CAB183B + 6E2EDB149D630407D1D161EA6D9AF29CA6FC3400C0ABCACBF124005A016ABB43 + 66A19F4EFC5FE605B178556DE7404A0168C5D085E2B5139FB0E74AB33C645393 + 24DA50B609802D090069000CFFE7350B88AB8ACB144274460813572DF0E1078E + 13A416D8B230D56083EF91EC22E185659593333C40FC9BC9511BD220E896708D + 150024FD5F57DE34FB34F5D57B908D21FA2E38203662AD09D4865E498FFD00B3 + E8CA1B4DB70415029A0100C67CD2F7657DD64993C21A84B07A8F8812FDCFB906 + 38992F2BDBDD155FB81DA126DF01679EF85CF19A98E9A6B62C5E032147B102A4 + 58841E0C7517100DE5B1D9EC75C5E9B2477B694CB182CBEF3B213ECE7E8FA4C0 + F5CA9F2F1480E3C7B75A5674F79D236EB0C655A86F88666B0034086C12069AE2 + 0E148205922B40DC987D2C8767569E1C87FB25B812B49DF577B555A33AD52716 + 7457B8F568F97A9405674A37461996D6065471362F09413B46D35D82E60ED45A + 9400C8AB3BBF86D98F691054A575E5A5F81874BF8B445EC6EB56ED6AFF40FF86 + 05FF5D8004C4E75CCB85034515C2358A03E3568E5500FAB55C9315C8A6A83FAE + 291B260074E5470C1003174649F203CF046A424F9AC75F700034205A62FCA592 + B57C89DD9D6302E0365900BD46CE99FCA45B5097A0000C731FD5008C00D6665D + 87101B1A84BEF3E10E0E0B5534F0A515002AC106FF97AD0EF9AFA5D5764056F7 + 144B4026102A00D37DBA041A667ED530776C9A7D2C8C42D7C97610E3F80B64D9 + FBE7F4B1D302800AA1FCF7F95EEB8E025F4152614D5934C52DF2350BB0691A68 + 115F1A35663D690123307CA90D46BBC77F4B4C7FD74CE3A60D00FA339995B506 + 3DD5EE1C2EA7C0E4F35A0C3056845C2D27E0340DF4181031A2BE1E0312A3FDD0 + FB76CB08B64220705F6838AD015021AEB0C796C7FEE68E8D25A619274BA0D9EF + 8D55402B8969F567647FE1E43248ACA0E7D4394844E2B564F69B661B33AD00D0 + DF0B835EDFC9A2CADC4FE77A8AA72442684A4648675FDF13D08B203509C25AFA + 3BD61182C18B3D6F56EC6EDDFAFFBE27AD005021B9C12AC431EF976EF658585B + BE96FCE4A869B0B92A345783B25A07602D19922649E03B712E8EB0B8BA7C677B + 5B4601A0D2D2E03BE22E733E5810283699BD434D830900A46F88281AC85A2D90 + AC04875B5A61AC73E8D7FEDAD67D738D959E005E09DC6573A2339E4D45530AA1 + 641D40CD7F7A35C81B2971EFE920C4237C35F1FDF73212004D8EB8041F59B955 + 4F7D6D49DF476600F2B4FD00B528EA7CB307841814577C37F8614602A0126CF4 + 61DF36E6DACD902901105408D3F6043A4E909C40948ACA77B50F6636802DD119 + 768374FF9FBE259674838E93E45894170300ED0714C3F4F5D99F694B4C034096 + C58E53244F90F022026008332D00EA224ED901EE38ED5AAC00E627190F806684 + 8FA27A691EAF9B5536E4BF53F59DFD0D17331200DD2EFBD3896F093F7E780758 + 58165896517A864120CB983419648C673E26FD2F5FFE23AC759DCA5C00540E1C + ACC75FBD7B23643B6CE0248DF6599C1512BC08BC20004FFA84D6D373F3F577CE + B74029D772E7238F3FDB39D738690D604D8557519A23CD469AC5C282284A6489 + A74D567A49547BFDBA44AE775DBE02200845CFD63D9499314007703316B02800 + DC4C0C5814006E7B0BF83806DCEE1670DBC780AD9B56C3B2A5F9D76501E3E118 + 9C6F6E074612331BC0FE83F535168639E2292EB4AD2872CF2B068C8C47E1CAD0 + 282FC9F2FEE77FFA60FD7CC6495B00541E7DEAC54A2CCBC77CDE1595DB3FB74E + B184992C60329180FF3477426FFF502B60E61BCFD7EDF9EF7CC7486B0054F6D6 + D53B1C080E93D16AE678F3EF042CEC3D5CF7FDE8FCDE9C2100CC726FED6357F6 + EEBEAF70706818BABA2F4357CF65181B0F0FFCA1F1D00DFFBB696601A879EC28 + 20D83DE57D00BF3AD678E8E18C01B058E47FFFB546EA1B2C27A4000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Installer' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000000097048597300000EC300000EC301C76FA864000013834944415478DA + CD9B09781455B6C74F55757775A7F774F61012085BD8371118419628880F1545 + E4B93C8679CAA8E3A8E3BC797EF0CD1BD1E732A3A38EE8A8F3C005455904FC82 + 06928040D88C64270924907DEFA4B7F4BE5475BD7BABD349A7D34D36B6CB77BF + DEAAABFBFF3BFF73EEB9D58180618E87B75688D4F16A81C3DC49E0C7B1C10774 + 3F21534773A07379A161A77BEBD6ADDEE17EDEF51AC450DFF0D836BD422612BD + D869B2FCBBDDC36A8020090E4D921470400AD143128014F09320D0A480954AC0 + 32359ECB8F8FE87AF3C9A59115E834DCCD163E2C004B969C10243D30F39D0BF5 + 0DCF775A1C240B22C0932344E04593C5B740F3B72C41839714B01C45D88542CE + BA76267896C4E8973FB932A6FA668B1E3680673ED68E2DACEB3A5F5ADFA651CA + 65001416EC13EF9B3EF1F8962329AF5044DA69116BBF7B92D7355F59BFF6F935 + 13CFDF6CC12302F0BB8F3A166757687FAAD65A05225A02729904591D3B80EE76 + 00DD0D82F2D234E18890B08E15695EEB7CE9E5FB8E7DF3BF17131212C699CD66 + 95CBE5A23D6878BD5E0F4110229665493485E8B1D36AB55E3A79F2A4E99604F0 + E2F6F665874A4C39B55A3B05941884221A6428C109B2573C83C40B0584432665 + 1DABD2BCA6A5AADA746DDD7119E1F17C161717375BA9540A916870BBDD60B3D9 + C0643281C3E100241EDF7A753A9DBEA3A3E3ED3D7BF6FC037D24734B0178E9D3 + E6E5872EBAB3ABB50E048046D1A7412012835422E69DC022F15E927008851E7B + 92C6EB7EFE76C7CF82C61FF7A7A6A4EC9C346912CD300C74757581DD6EE72706 + E0743A79F178701C07C818D0DCDCCC9595951D3A75EAD4FAFAFA7AE72D03E0BF + 77342FFFBE82CBBEA27551583C76810F020D629A42CE271C5EC26D178A389B54 + E2712E50354A1E1D5D3BEAAEF465545B5B1BB4B4B400B2382F1A59BE4734FF45 + 902B280A9D16AD221848434303E4E5E56DDBBF7FFF0BB70C802D5F362F3F502E + C8AE6AF7507EF13E27505EB4023A243463F3925E1B25606C72B1CBB5D29B31E6 + 95DFA4476241353535505D5D0DB5B5B5661479177AAECF52880090919191CA89 + 13270AA55229EF0404C072ECD8B1F1E5E5E5DA5B02C0ABBBDA97EF2E136657B6 + 7BA940F1408103488F8D14786D229AB511246355907AEF33AAECD92F6E7A5C7C + F1E245A8AAAA82D3A74FEF397EFCF8C66E5B13D9FBDEDC478A950B9D5D9DAB57 + 3FB1B578F1E2C58B162E5C983367CE1C1A3BE2CA952B70F4E8D115E83D39B704 + 80B7F6E996ED2A11E554B401152C1E28AF1548D64A083C3611C5D8954C33BC9C + 7C7EF1AF1F5B272C2C2C84A2A222A868D46DFAFAE3BF6FCFCF7A6F9E223EF5B0 + 549DAC715A0D20A4A5606E2BFD74DA1D9B9ED9B46953E992254BA6D3348D6B01 + 646666AECFC9C9D97B4B0078E7A06ED9CE62694E791B49F9C51394C7866A9FCD + 4BB016A03C3C040C249A69106C4E295DF9F8230F09F3F3F321BFA0803BD14EED + 7AE5A114C5E4B4A9F753E8F04B273E04ABBE0952E73F0AA3A6AF86B6DA0BDA8F + 3E3BD679C7A2C553B1035A5B5B212B2BEB090461D72D01E0FD43BA655F14A972 + 2EB4A2F7A10E8FA43CF695695E8746EED17F7791753B59C68C0058009CB62877 + AD68F398AA071F5BF7A0A8A0A000F064D41AC7AFEE5C2C89329D0363E9D7A802 + F6AE72F298099074FB93B0E7FB3C9839732EBF5A6000478E1CD978F8F0E12F6F + 0900FF3A665CFA499E32ABA485739342D6B67212639B4116AC361BEAB45DC9F7 + EDF8AE92655D8CD3CC03B05F916C1E5BF3F8FAB56BE8E2E2621E80244E034A57 + 21A898465051287380ED737E0723804BAE65B070D1DDD0D9D9E907F01402B0E3 + D60070B4E38E2F4AA27E3CDF843ABC491EDB1C61FEEAD79FBAF3127E6DEBB6C3 + 8A2BD1F3FEB6BFCAE576B9ACD66847A5F4E594FA67D63DB846545A5A0AB80ED8 + 0DBFC0187517C446301021447B27B2EFC7DB5D1C9498E6C292158F805EAFE701 + 18B455E75F79FDA3850187B143F9CED714C007FB0A469778666577583CD46D74 + D17D5B372EAC0C7CFDBFBECA96B68866FEF140A5C9FDB8A678FD34D0CD587DCF + 4AC0AB002E829ECEE3901A69018D8C045A48F60180FB01871BA0503F1B0158C7 + 77881880DD6E843993A37515A545F7BFF0E7ED782F714DBBC3A16E8789ED27F4 + EB2C9DED852FAD9B12725777EAF8EEE55A595A4687C921755FFA05EE5A9ECEF7 + 00D805D0910329917650CA84408B48BEF9F17F012F0F808012C30C5894FE1058 + 2C161E40CBE593B0EAFE3530267522D83ACB3E9930F7D7CFDE4C00571DCDE57B + 770A35D3FFA3F2723DD435378144A080B8B878BEE5453D3E10F63A90895C483C + 051231EA200502BE33C405CFEDF68044AA008F64024C9A329B87839FD7B75541 + 04D90509C9E32175CA6D0842657B5BFD85F499CB5EAAB86500D4177C3E5B9D38 + 314BA41C13BDF3B32FE187ACB380767E909C9CCC475F2E97834C260391480406 + 8381171E1313036AB51AD0EE90178A5B63B45102854201494949FCEB180E9E4D + 4D4D68D32586C9490049E3D240A18E065373D1878953D63F7FD301B456ECDE11 + 3D76C17F3ACC5AB878F63B3870CA0C99396760ECD8B1FCC4ED2F168621E0E606 + 03C03D3F1618151505686BCCB7BD38E218103E0603888F8FE7C1E054C0FB020C + 6D66AA18ACF5999076FBBD3071C123D0D556D9A66FA94C1F3FFFE98B371C803F + EAF2E8D4E8BAFCBD50737E0F10D214C82A934166F669484949E127FEF238AA18 + 80582C06A3D1C86F78B078D4FBF3DB623F00A150C81F939898885227AEC70178 + 1385C78444129C4D592825CC109F3219A6DDFD07A0A51AAEA336EFA3E1BA6158 + 00FC5177593BA1FCE87B60EEA80116ED6D28F9381EC08F59B9307AF4687EE242 + 8601E014C0D1C596C762B178954AC503C0DBE44000587C6C6C2C2F1ED70FAD56 + CB1F3336167D61DD4988A0CC680B2E40C78B60DC82272079D61A30B65E1A961B + 86042038EA75057BC1CBFA56251F80F170E442040F60D4A8517C247143E3AF01 + 1800B6341E583C4E0D1C7D2C0E0F0C402291F0E9111D1DCD8BF71750BC85C600 + 684B1EC8043E0054F732AA8C9B0853D25F1C961B060D2054D403070F40810094 + 46C00F474EF2398C27B67C3000BCE6FB0B9E1F40A003707A68341AB03AAC6077 + D8C06CB0F04E199F4081C87C0EA4545F0078909470586E1810C0D5A21E0C8044 + 0E38942F8023C7CEF036C691C4823100BCC7C700B0AD31003F142CDE7F71C4EF + 009C1E0AB5028C6E0398D1D682B4A3AD87430069A3C5C0B6FF840074F50380AA + 246A919821BB614000AD655F1962272C553B2D9D5072F80DB0199A421EE707B0 + 3BD705B9678B780BE3892F7D61A1C100FCCFF901043A008B17A80460648C6041 + FFDC841BC6458C83697219986B0EF503E0458EB1CEB90DA479674160B141EAED + 8FC298B98F80B1E50254E7ED7E71DEBACF3E183680F6D21D4E212DA705CA4490 + 69C6404DDED7D050FC7DCFA5AC60005F6475415E61056F613C71EEFAC5E2650E + E7347E6F4444043F31007CC5C8BF0C0AC54210AA8540280830735D60236C80D6 + 02506A94F06FA3E7027BFE0848BC0690610014012C125F3B6726947A3A60B543 + 0D8B921E0059E428A8CBDF07FAE60A70DB0C5B163F79E8AD110190483534FA7E + A855F540D4D80560D1D54379CEFB600D70030620504E846F739D70F24C01DFE4 + E089731C8BC762030160ABE389A3EF0720A0918DA5E84BA908E0645EB0125670 + 900E7E4204C0E8A45858E09183A6AA022D850C907131507BDB74C8D495C0022A + 1136CF7B152CAD55284D0F00E3B2A17352E0B0E8B72CD93412002508804C43FB + 1E71C0785C205024812C7A0C5C39B3137DD8415E10062054A7C1A122922F82B8 + C8E14A8F056200582C6E66F025703CB0D5714A60F1FC55610A9D3D8203AF8C05 + 4E8ECE2765C14EDAC12D748393720227E140A420412D95C39A8809A041CB6BE3 + DC4990AB2D8617921F873B129740CD2F7B51D44B917092178F7FA673984708A0 + AD78BB33421649FBE47378DB864E8E362E2E2F448FFF155A0DEAA024F35DE8EA + 6C04916632645788E14046365FE47095F7DB1D03C01D204E09FC1C06801DC103 + E0D0A4BDE0917B9070941228FA8C84011B69038666801132C089518A21773809 + 178C8B190B0B936783ABAD0D36CF7F15DDD642EDF9DDC0B8ED4851AF78DE01A6 + 8E2D4B9EFE71F8005A8BFED50300BA01F87EDBF45DC317AA52401E930A178F7F + 014DD517E187520A32327FE2A38E731F5B1B03C0827107885B5F3CB0783F000C + 841252C0C6B2D02533A10D91879F76CA0E0E81030831DA3A4B505AE0CB906817 + 192B8C8037A6BE047726A7C39573BBC0D0548C04533D91E721743FB6193AB62C + 7B7624000A3FE906E013EDAB7D5C0F0CBE36B808889EB4180C2DB5F0DA5B9FC0 + C1CC533D450E03C0D1C776C7F731343C70C5C729E12FA6F8BE448E6AC20406EA + A83A70881CBC78A7C0C9A7012DA5818E10C36AC50CF87BFA87E06CADE50BB2C7 + 6DED231EDF02D97BDF6268DF92FEECE1E10368C9FFA7532A8FA4B91ED17D01F8 + 5383F130A8068C03A122119E7DF2293857D2C403C051C7D1C702F1C000B068FC + D80FC0FFA30886A28C5100339B81424F2158080B38854E702100D122317CB6F0 + 1D5831F65EA842B5C7D054D01BF100C17E18BE5440007408C0732300D07CFE23 + A754A1A67BAD0FBC702E0882BF36D8DD02884D5B06B9C78EC1B7FB8E808BF589 + 64180FB23CDD9D0E74F7AF40541F001445F2B7AA04155C49BA0CFB9BBF07236B + 84FB23E7C0E70F7C03EED63AA8FEF973F0B8AC7D0A5DB0ED7B53810093B67DCB + 8A174602E0976D7D0070DD62835DE04B8FEEDAE06651414C03295A29B2F6EE80 + CB15E5C0A15C2791381C7592ECBE1A44103D5F23F0317F1B29828A5413A48F5A + 0CF74EB80F2A4F7E8E2A7C5EAFD800F1C1B6F7BF86CF6B6A4300FE301200E7FE + E18C50053AA06F1A7041CEF03F8F4A16D8DC12889F9A0E0D95A590B9E34D30E9 + 5A07FA387E9048C09CF48760F963BF076363055C3EF37F28C5CC7D04FA04FBC5 + 06DA3EC015688C1840D3D9779D5255641F005C40D483C104A786C7E30551D474 + 50C6A7C2B9FD1F43D989FD7DBB487C9FE8FD1AEAB86458FE9B3F8326610C5A59 + B683BEF16C90BD836CDFF3B87F3DC0C3D0D2BEE59E3F8E0040E3E9779C32B56F + 15E88976D87AD0EB8CC09421D07DBB470609335680A1F90A9CFA0AB9A1ADBE27 + 7BB07E8A12C0B4954FC0AC551BA1B3B61415BA7FA26ECEDC53D842DAFEAA60BA + 0134B56EB9E74F59C307D070EA6F08809A0EB6B84F78900B06480DD449031D3D + 1B54A3C64351C676283FB69B3F4E9D3016166FFC1F50448F828AA39F82AE29B7 + 5F55EF2D747D2B3E106498637DD2740DAD5BEE7D79240072FF8A00A8E87016EF + 1BED00086152837703AB82C499AB901BAAA1FD7231DABEAE878E9A12A8CCDD86 + BA396388AA1EA2D085697C020B201E1D0DCD5B56BF9C337C00F527DE74CA227B + 0184B2F840AB02840063F5881C82F845CEE8D804F9CF59DB0D9EC6CC1822A892 + 875DDF83C0844A11FFE8A84300368F0040DD89D79D72757F00E1AA7FC8D40878 + 2F1700095FC5292C2ED113D62A0DF0CBE0206C1F064CB013AE1D80E3AFF50018 + 8CC52104182E8C7B3080FC825F8C94B349DD7F190B21366CE3D33F45AE150061 + EDB1AD5679A44A34548B0F2635308082C2F30840B33AF4FA1E6AB91B448A0400 + 68BADCF0CADABFFCF4DA7000081313131579FB7E5F24168B460FC7E27D808470 + 860F408191727503E045F42E637DEC3D2827F45D01F0B85CD3F9D413DBCB7641 + 98BF360B0B20212121C24D51AABCAF7F7B402913CF1F8EC543ED1E03DF47E01A + 50548400B4A8FBD87E508D4FB0EDFD4EE85D01F016E4D485F6356F6F3F9FABD3 + E96CE829EF90012446468E7AFB4FCB5F9A3921E66104961C76F5EF714F2F0452 + 8001142300ADEAB0EB7B48DB0FDC029B6DEEDA43A79AFFF25D6EFD59C66AD50F + 19001A0294024A4E288C26382AE1E1BB262F787AFDACE7D40A3A6EB0160F9F32 + 7E0022BC0A1805EE367548DB0FA30546BE624BAF9832DEFDBAFC0B3B4334B939 + B7B6136D09869C02DD834A4898A006DAA301968C92CB05F17F7D61E98605D3E2 + 57F16E18C0E2E1EA81EF101F80A2E252A3C0D3AE1EECFA7EB516D864651ABFC9 + A9DF76A2A0A3D0C3723A9664F43A8230C255FEDA7450BF0CE174009068404844 + 014744ADBD7BDCBCA7D74E7F2E5289DD10DEE2E10B24D7ED001A8A4ACA780003 + AFEFE15B608E20D9D26A4BC67BBBAA765A59AEDDCB78F56E8AD19BEAEBCDA16C + 3F640061DDF0DCA20DF3A7C5ACF2852574810CED92EECB69084071693902D0A1 + BEDAFADE2BB83F18938D6DFCF668D3B6DC22FDA0A33E5C00A1DDB07CCCBCDF3E + 3CF5B94885282ED8E21066E5F0AF282485005CB86814301DEAA1B6C038D72FD4 + D833DEDF5D33E4A88F08403837BCF5BBF91B6E9F1ABD0A9D908410B9DF3F3580 + 4F81E20B9710804EF5505A6093956DDC73A20D45DD38ACA85F0B0061DC903CEF + B70F4E442B85CF0D21AB7FC0F001A8EC75C0002D30F20C1FF5F7F635ED748C20 + EAD70C403837BCF1F49C0DF3A7685611FEDA1066F801089103066A81BB6C5CE3 + DE131DDB724BBA461CF56B0D801FFDDCB03471DEA687901BE4C80D0301603BD5 + E15A602F41B0E575CE8CF7BF6BBF6651BF2E00BA470837CCDA307F72D42AFC3F + EB420228F33920D40AD06547513F69D876FA82E59A46FD7A02E0C760DDD00B40 + A70E5CEE38A0D8F27A57C60707B528EAE4358FFA7507D03D0674830F4095CF01 + DD9137DBA071DF19338ABAEDBA45FD4601E0C7D5DC80019494551A04AC3E1257 + F88A7A26635B86FEBA47FD8602E81EFDDDB069D686053313EEBD5459AD351ADB + DD074FDBB79DAE70DE90A8DF0C00FC087403019C7AE3EAC9334647BBD3DEFCAA + FAA0D34B196E54D46F1A80EEC1BB81A1BC4A9200FEF7068AF5322E016BB95151 + BFD9007C232545AC02107B198694783C2EAD568BFF76E686FFF7FAFF074B8A96 + E6C8C624F80000000049454E44AE426082} + end> + Left = 32 + Top = 368 + Bitmap = {} + end +end diff --git a/source/forms/Glyphs192.h b/source/forms/Glyphs192.h new file mode 100644 index 00000000..88ca5697 --- /dev/null +++ b/source/forms/Glyphs192.h @@ -0,0 +1,24 @@ +//--------------------------------------------------------------------------- +#ifndef Glyphs192H +#define Glyphs192H +//--------------------------------------------------------------------------- +#include +#include "PngImageList.hpp" +#include +#include +//--------------------------------------------------------------------------- +class TGlyphs192Module : public TDataModule +{ +__published: + TPngImageList *ExplorerImages; + TPngImageList *SessionImages; + TPngImageList *QueueImages; + TImageList *ButtonImages; + TPngImageList *LogImages; + TPngImageList *DialogImages; + +public: + __fastcall TGlyphs192Module(TComponent * Owner); +}; +//--------------------------------------------------------------------------- +#endif diff --git a/source/forms/ImportSessions.cpp b/source/forms/ImportSessions.cpp index 4eb96033..da1b2cd8 100644 --- a/source/forms/ImportSessions.cpp +++ b/source/forms/ImportSessions.cpp @@ -27,7 +27,7 @@ bool __fastcall DoImportSessionsDialog(TList * Imported) GUIConfiguration->SelectPuttySessionsForImport(StoredSessions, Error)); Errors->Add(Error); std::unique_ptr FilezillaImportSessionList( - GUIConfiguration->SelectFilezillaSessionsForImport(StoredSessions, Error)); + Configuration->SelectFilezillaSessionsForImport(StoredSessions, Error)); Errors->Add(Error); std::unique_ptr SessionListsList(new TList()); diff --git a/source/forms/ImportSessions.dfm b/source/forms/ImportSessions.dfm index 358c952f..cf1072bd 100644 --- a/source/forms/ImportSessions.dfm +++ b/source/forms/ImportSessions.dfm @@ -112,7 +112,7 @@ object ImportSessionsDialog: TImportSessionsDialog OnSelect = SourceComboBoxSelect Items.Strings = ( 'PuTTY' - 'Filezilla') + 'FileZilla') end object ErrorPanel: TPanel Left = 48 diff --git a/source/forms/InputDlg.cpp b/source/forms/InputDlg.cpp index 43f3b716..cefbb3f6 100644 --- a/source/forms/InputDlg.cpp +++ b/source/forms/InputDlg.cpp @@ -8,6 +8,7 @@ #include #include #include +#include //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- @@ -42,7 +43,7 @@ void __fastcall InputDialogShow(void * Data, TObject * Sender) //--------------------------------------------------------------------------- bool __fastcall InputDialog(const UnicodeString ACaption, const UnicodeString APrompt, UnicodeString & Value, UnicodeString HelpKeyword, - TStrings * History, bool PathInput, TInputDialogInitialize OnInitialize) + TStrings * History, bool PathInput, TInputDialogInitialize OnInitialize, bool Echo) { bool Result = False; TInputDialogToken Token; @@ -88,20 +89,28 @@ bool __fastcall InputDialog(const UnicodeString ACaption, Prompt->Top = ScaleByTextHeightRunTime(Form, 13); Prompt->Caption = APrompt; - TEdit * Edit; + TCustomEdit * Edit; THistoryComboBox * HistoryCombo; if (History == NULL) { - Edit = new TEdit(Form); + if (Echo) + { + Edit = new TEdit(Form); + } + else + { + Edit = new TPasswordEdit(Form); + } Edit->Parent = Form; Edit->Text = Value; Edit->SelectAll(); - Edit->MaxLength = 255; + reinterpret_cast(Edit)->MaxLength = 255; Token.Data.Edit = Edit; Token.EditControl = Edit; } else { + DebugAssert(Echo); HistoryCombo = new THistoryComboBox(Form); HistoryCombo->Parent = Form; HistoryCombo->Text = Value; diff --git a/source/forms/License.cpp b/source/forms/License.cpp index 97ca2925..524ca7d2 100644 --- a/source/forms/License.cpp +++ b/source/forms/License.cpp @@ -41,7 +41,7 @@ __fastcall TLicenseDialog::TLicenseDialog(TComponent * Owner, TLicense License) try { LicenseList->Text = ReadResource(LicenseStr[License]); - assert(LicenseList->Count > 0); + DebugAssert(LicenseList->Count > 0); Caption = FMTLOAD(LICENSE_CAPTION, (LicenseList->Strings[0])); LicenseList->Delete(0); LicenseMemo->Lines->Text = LicenseList->Text; diff --git a/source/forms/LocationProfiles.cpp b/source/forms/LocationProfiles.cpp index 97ba29ab..eed794af 100644 --- a/source/forms/LocationProfiles.cpp +++ b/source/forms/LocationProfiles.cpp @@ -14,6 +14,7 @@ #include "WinConfiguration.h" #include "Custom.h" #include +#include //--------------------------------------------------------------------- #pragma link "IEComboBox" #pragma link "PngImageList" @@ -198,6 +199,8 @@ __fastcall TLocationProfilesDialog::TLocationProfilesDialog(TComponent * AOwner) FSharedScrollOnDragOver = new TTreeViewScrollOnDragOver(SharedProfilesView, true); UseSystemSettings(this); + SelectScaledImageList(BookmarkImageList); + LoadDialogImage(Image, L"Open folder"); } //--------------------------------------------------------------------- __fastcall TLocationProfilesDialog::~TLocationProfilesDialog() @@ -365,7 +368,7 @@ void __fastcall TLocationProfilesDialog::LoadBookmarks( Configuration->Usage->SetMax(L"MaxBookmarks", BookmarkList->Count); - assert(BookmarkList != NULL); + DebugAssert(BookmarkList != NULL); Folders->Clear(); for (int Index = 0; Index < BookmarkList->Count; Index++) @@ -394,7 +397,7 @@ void __fastcall TLocationProfilesDialog::LoadBookmarks( TTreeNode * Parent = NULL; if (!Bookmark->Node.IsEmpty()) { - assert(Folders->IndexOf(Bookmark->Node) >= 0); + DebugAssert(Folders->IndexOf(Bookmark->Node) >= 0); Parent = dynamic_cast(Folders->Objects[Folders->IndexOf(Bookmark->Node)]); } ProfilesView->Items->AddChildObject(Parent, BookmarkText(Bookmark), Bookmark); @@ -441,12 +444,12 @@ template typename T * GetProfilesObject(TObject * Sender, T * SessionObject, T * SharedObject) { TControl * Control = dynamic_cast(Sender); - assert(Control != NULL); + DebugAssert(Control != NULL); switch (abs(Control->Tag)) { case 1: return SessionObject; case 2: return SharedObject; - default: FAIL; return NULL; + default: DebugFail(); return NULL; } } //--------------------------------------------------------------------------- @@ -458,8 +461,8 @@ TBookmarkList * TLocationProfilesDialog::GetBookmarkList(TObject * Sender) TStringList * TLocationProfilesDialog::GetFolders(TObject * Sender) { #ifdef _DEBUG - assert(FSessionProfilesViewHandle == SessionProfilesView->Handle); - assert(FSharedProfilesViewHandle == SharedProfilesView->Handle); + DebugAssert(FSessionProfilesViewHandle == SessionProfilesView->Handle); + DebugAssert(FSharedProfilesViewHandle == SharedProfilesView->Handle); #endif return GetProfilesObject(Sender, FSessionFolders, FSharedFolders); } @@ -479,7 +482,7 @@ bool __fastcall TLocationProfilesDialog::AddAsBookmark(TObject * Sender, bool In TBookmarkList * BookmarkList = GetBookmarkList(Sender); TTreeView * ProfilesView = GetProfilesView(Sender); - assert(!LocalDirectory.IsEmpty() || !RemoteDirectory.IsEmpty()); + DebugAssert(!LocalDirectory.IsEmpty() || !RemoteDirectory.IsEmpty()); bool Result; UnicodeString BookmarkName; @@ -498,7 +501,7 @@ bool __fastcall TLocationProfilesDialog::AddAsBookmark(TObject * Sender, bool In UnicodeString SelectedNode; if (Selected != NULL) { - assert(!Initial); + DebugAssert(!Initial); SelectedBookmark = (TBookmark *)Selected->Data; if (SelectedBookmark != NULL) { @@ -567,7 +570,7 @@ bool __fastcall TLocationProfilesDialog::AddAsBookmark(TObject * Sender, bool In else if ((Selected != NULL) && (SelectedBookmark == NULL)) { // must be a folder - assert(!Selected->Parent); // more than one level of folders is not supported + DebugAssert(!Selected->Parent); // more than one level of folders is not supported Bookmark->Node = Selected->Text; BookmarkList->Add(Bookmark); Selected = ProfilesView->Items->AddChildObject(Selected, BookmarkText(Bookmark), Bookmark); @@ -606,7 +609,7 @@ void __fastcall TLocationProfilesDialog::RemoveBookmark(TObject * Sender) TTreeView * ProfilesView = GetProfilesView(Sender); TStringList * Folders = GetFolders(Sender); - assert(ProfilesView->Selected); + DebugAssert(ProfilesView->Selected); TTreeNode * Node = ProfilesView->Selected; if (Node->Data) { @@ -615,7 +618,7 @@ void __fastcall TLocationProfilesDialog::RemoveBookmark(TObject * Sender) Node->Delete(); if (ParentNode && !ParentNode->Count) { - assert(Folders->IndexOfObject(ParentNode) >= 0); + DebugAssert(Folders->IndexOfObject(ParentNode) >= 0); Folders->Delete(Folders->IndexOfObject(ParentNode)); ParentNode->Delete(); } @@ -626,12 +629,12 @@ void __fastcall TLocationProfilesDialog::RemoveBookmark(TObject * Sender) if (MessageDialog(Message, qtConfirmation, qaYes | qaNo, HELP_LOCATION_PROFILE_DELETE) == qaYes) { - assert(Node->Count); + DebugAssert(Node->Count); for (int i = 0; i < Node->Count; i++) { BookmarkList->Delete((TBookmark *)Node->Item[i]->Data); } - assert(Folders->IndexOfObject(Node) >= 0); + DebugAssert(Folders->IndexOfObject(Node) >= 0); Folders->Delete(Folders->IndexOfObject(Node)); Node->Delete(); } @@ -651,7 +654,7 @@ void __fastcall TLocationProfilesDialog::BookmarkMove(TObject * Sender, TTreeView * ProfilesView = GetProfilesView(Sender); TStringList * Folders = GetFolders(Sender); - assert(Source && Source->Data); + DebugAssert(Source && Source->Data); TBookmark * Bookmark = (TBookmark *)Source->Data; TTreeNode * PrevFolderNode = Source->Parent; @@ -686,7 +689,7 @@ void __fastcall TLocationProfilesDialog::BookmarkMove(TObject * Sender, if (PrevFolderNode && !PrevFolderNode->Count) { - assert(Folders->IndexOfObject(PrevFolderNode) >= 0); + DebugAssert(Folders->IndexOfObject(PrevFolderNode) >= 0); Folders->Delete(Folders->IndexOfObject(PrevFolderNode)); PrevFolderNode->Delete(); } @@ -699,14 +702,14 @@ void __fastcall TLocationProfilesDialog::BookmarkButtonClick(TObject * Sender) { TControl * Control = dynamic_cast(Sender); TTreeNode * Node = GetProfilesView(Sender)->Selected; - assert(Node); - assert(Node->Data); + DebugAssert(Node); + DebugAssert(Node->Data); TTreeNode * TargetNode; if (Control->Tag < 0) { TargetNode = Node->getPrevSibling(); - assert(TargetNode); + DebugAssert(TargetNode); } else { @@ -751,7 +754,7 @@ void __fastcall TLocationProfilesDialog::ProfilesViewDragDrop( if ((Source == ProfilesView) && (ProfilesView->DropTarget != NULL) && (FBookmarkDragSource != ProfilesView->DropTarget)) { - assert(FBookmarkDragSource); + DebugAssert(FBookmarkDragSource); TTreeNode * Target = ProfilesView->DropTarget; BookmarkMove(Sender, FBookmarkDragSource, Target); @@ -772,7 +775,7 @@ void __fastcall TLocationProfilesDialog::ProfilesViewDblClick(TObject * Sender) //--------------------------------------------------------------------------- void __fastcall TLocationProfilesDialog::FormShow(TObject * /*Sender*/) { - if (Terminal) + if (DebugAlwaysTrue(Terminal != NULL)) { // cache session key, in case terminal is closed while the window is open FSessionKey = Terminal->SessionData->SessionKey; @@ -842,7 +845,7 @@ void __fastcall TLocationProfilesDialog::ProfilesViewChange( { if (Node && Node->Data) { - assert(!FChanging); + DebugAssert(!FChanging); FChanging = true; try { @@ -865,7 +868,7 @@ void __fastcall TLocationProfilesDialog::BookmarkMoveToButtonClick(TObject * Sen TTreeView * ProfilesView = GetProfilesView(Sender); TStringList * Folders = GetFolders(Sender); - assert(ProfilesView->Selected->Data); + DebugAssert(ProfilesView->Selected->Data); TBookmark * Bookmark = (TBookmark *)ProfilesView->Selected->Data; TBookmarkFolderDialog * Dialog = new TBookmarkFolderDialog(Folders); @@ -884,7 +887,7 @@ void __fastcall TLocationProfilesDialog::BookmarkMoveToButtonClick(TObject * Sen else if (I >= 0) { FolderNode = dynamic_cast(Folders->Objects[I]); - assert(FolderNode); + DebugAssert(FolderNode); } else { @@ -894,7 +897,7 @@ void __fastcall TLocationProfilesDialog::BookmarkMoveToButtonClick(TObject * Sen if (I < Folders->Count-1) { NextNode = dynamic_cast(Folders->Objects[I+1]); - assert(NextNode); + DebugAssert(NextNode); } else if (Folders->Count > 1) { @@ -902,11 +905,11 @@ void __fastcall TLocationProfilesDialog::BookmarkMoveToButtonClick(TObject * Sen } else { - assert(ProfilesView->Items->Count); + DebugAssert(ProfilesView->Items->Count); NextNode = ProfilesView->Items->Item[0]; } FolderNode = ProfilesView->Items->Insert(NextNode, NodeName); - assert(FolderNode); + DebugAssert(FolderNode); Folders->Objects[I] = FolderNode; } @@ -923,7 +926,7 @@ void __fastcall TLocationProfilesDialog::RenameBookmark(TObject * Sender) { TTreeView * ProfilesView = GetProfilesView(Sender); - assert(ProfilesView->Selected != NULL); + DebugAssert(ProfilesView->Selected != NULL); if (ProfilesView->Selected != NULL) { ProfilesView->SetFocus(); @@ -972,16 +975,16 @@ void __fastcall TLocationProfilesDialog::HelpButtonClick(TObject * /*Sender*/) void __fastcall TLocationProfilesDialog::ProfilesViewCollapsed( TObject * Sender, TTreeNode * Node) { - assert(Node != NULL); - assert(Node->Data == NULL); + DebugAssert(Node != NULL); + DebugAssert(Node->Data == NULL); GetBookmarkList(Sender)->NodeOpened[Node->Text] = false; } //--------------------------------------------------------------------------- void __fastcall TLocationProfilesDialog::ProfilesViewExpanded( TObject * Sender, TTreeNode * Node) { - assert(Node != NULL); - assert(Node->Data == NULL); + DebugAssert(Node != NULL); + DebugAssert(Node->Data == NULL); GetBookmarkList(Sender)->NodeOpened[Node->Text] = true; } //--------------------------------------------------------------------------- @@ -1008,7 +1011,7 @@ void __fastcall TLocationProfilesDialog::ProfilesViewEdited( { throw Exception(FMTLOAD(DUPLICATE_BOOKMARK_FOLDER, (S))); } - assert(Node->Count); + DebugAssert(Node->Count); Folders->Delete(Folders->IndexOf(Node->Text)); int I = Folders->AddObject(S, Node); @@ -1017,7 +1020,7 @@ void __fastcall TLocationProfilesDialog::ProfilesViewEdited( if (I < Folders->Count-1) { NextNode = dynamic_cast(Folders->Objects[I+1]); - assert(NextNode); + DebugAssert(NextNode); } else if (Folders->Count > 1) { @@ -1025,7 +1028,7 @@ void __fastcall TLocationProfilesDialog::ProfilesViewEdited( } else { - assert(ProfilesView->Items->Count); + DebugAssert(ProfilesView->Items->Count); NextNode = ProfilesView->Items->Item[0]; } @@ -1073,9 +1076,9 @@ void __fastcall TLocationProfilesDialog::ShortCutBookmarkButtonClick( TBookmarkList * BookmarkList = GetBookmarkList(Sender); TTreeView * ProfilesView = GetProfilesView(Sender); - assert(ProfilesView->Selected != NULL); + DebugAssert(ProfilesView->Selected != NULL); TTreeNode * Node = ProfilesView->Selected; - assert(Node->Data != NULL); + DebugAssert(Node->Data != NULL); TBookmark * Bookmark = static_cast(Node->Data); diff --git a/source/forms/LocationProfiles.dfm b/source/forms/LocationProfiles.dfm index 6314963c..9f422439 100644 --- a/source/forms/LocationProfiles.dfm +++ b/source/forms/LocationProfiles.dfm @@ -40,49 +40,6 @@ object LocationProfilesDialog: TLocationProfilesDialog Width = 32 Height = 32 AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC300000EC301C76FA864 - 000004D24944415478DAED967B4C5B551CC7BFF7DEF6B60865942E83CD1658A7 - 8950960D90F0C8D0E1A66CEB06E21F46E33460E27FBE6296CC6C23D685A828FE - 6DE25FFBC368F40F37610F35C68263D83D904DC0C9BB0F86E3614BC756E8E3DE - E301CACAA5B7B031C8FEF1A4CD39F79EDF39DFCFFDFE7EF7C1E061340B5823BF - FEB18123E33DCC6AECB7D302855DAD3383904A02E4D14DD3E9E90001F1D0FE77 - 164C63BADF7DB2C98290C902DEA74AFE9E6159B32008E6070648FF446B660853 - AFD6F04F68D62720519B80B8B838B050000270C7EBC3BF236E4C78BC8384901A - 0AF3B25E6FA0C20C5C371CAFAE1C80DA98CE277FA85473C7749BD7CD0A2B5865 - F8AF98ED95F3634E89C989DBB8DED90D6D5212F2F3F2D1D6FE079C2EFBCA0132 - 3ED27DACD228DE4F3268E0F706E19F0C8288044A951249DA44A43E9A02B52A4E - 02439D02AF5041C9F1B8DC761976D78014C06AC9504F2A042BC014CACB129B26 - C49556F1DE67143CD7A84AE4599F7BDACD10F285C8E002C7706382480C74D3E7 - 388EAD7A3C6B8B5AAFD7537185C49D1918DB958B1874F64B011A6A0D9F994A5F - 3C642C3C2C2B3F60AB4397F5BBFAB7B93B2F703C6B1402C20F2195F0FAD07BB7 - DC51B551A7CB6444723A2B3BD368CCD82C05A02969BDD48A01675F04E0D4717D - 813A5EDD5A7AF069968FE3650102530158BF6A160F073CBF4C80B0097EB7B9CB - 82805CEC4CB5DFE1931B5237A59615E4E7DF0598AF8B964B2DE877F446001A6A - D33AF2CAB6666FDAB261C9DC0FF78FA2EDA78E2563FC20F8929D864F9F82DC9C - DCD92B5E5C94CDB6A6280072A03A6FA53529696F583B719DA890B37DFB6CC1CD - 8947EA80655834D9ACD100FB5F32AE0AC0BB179D68704E2C17E623225B220578 - 5EBB2A00B1DAE9531E941F734A0A5F02B0EFD9B9C3B6AB0423636BCA32D3DA29 - 4CAE04A0ECA92042F4F179BE5D8BB2779AD64E9A0470E6D31DD3FB8FD8E32400 - BB8B43F078198CB1C5D8B6F72D60FA1BB9D5F44722FDC271D49C181ECFAC13EF - CE794626D1D2D079853A902F01D8592060E8268384CCD760306503C1F3F729B4 - 54CCFC5884FDEF3174B43A4E50806A0940491E41F72083CC0347E9CBC50B847A - 1F4828D65CFB6F0E0C0DBAABCB8FBA4E48008AB601D7BA8192EA3AF0DC65FA3A - 753F9050743F9786E633FDF0BAA7F22B8EB9AE48009E3431B8DAA3C09E37EBC1 - F84E62F685BE287FCB0A2DE392288838F76D6F283EC0684A2DF669094066068B - 31C180A2CA83C09435C6D5227C2CDE436D44BB746BC28FE673437FD1FC9B66B6 - 9200185258A8F4B9C82CA0B9F0FF791FD51E3B1D6451FC0DFB6DB4DBC6BF2EAF - 71BD120590AC61612CDE858D692A7A07DC90CDDF9C03B1F34EE4F2BE20A6EB9A - 17037DBE4315471D9F4701A879068515E5D0C48F528727EF21EF629849BC67B7 - 5A9B3D708F877695D7387E8D0260E9D19EAA4A70C11E1A2CC8DA4A96145A5023 - 318AF1C7D31360A705DD1ECB903B0A609DF611E41499204EB9C20FB0F9C590F6 - 8BCFCBC620221E7E820683226C977C4E9AFFF4795D09C0669309A61DBBA9A353 - 0B72BD686312D9502A42225A58E84424D673D3850B3FB79CA577805916206BAB - 0EBA64FA3D4F428B84620048C672805297FE1915D037287E40018ECB029454EC - C53A5D6A4C0BE52D8F01B4707D38B6BDA505C3F651F3811AC7D92880C6DAB461 - 1AB7116BDBFC8A10BF619FA5EF5614C0C36AFF03FC07D24654E8F935DA1B0000 - 000049454E44AE426082} end object OKBtn: TButton Left = 303 @@ -710,8 +667,939 @@ object LocationProfilesDialog: TLocationProfilesDialog 4EC56A0884B165CE1C14033E01695E52A2F13FC3FF2F7ED58FC07A1829CE8D94 1A000054D89AE168C695320000000049454E44AE426082} end> - Left = 232 - Top = 400 + Left = 352 + Top = 152 + Bitmap = {} + end + object BookmarkImageList120: TPngImageList + Height = 20 + Width = 20 + PngImages = < + item + Background = clWindow + Name = 'Bookmark' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000024B4944415478DA63FCFFFF3F + 03350123D50D04119B1BA444FEB3306F07724D1052FFCF30FEF9EBE9DBF0EC0D + 4906420C633920AB6FA6AD64E60097B877EA00C3E38BA7AE32FEF9E3806EE80C + 5EEE364606C6520646461688DDFF7F008D3AF797F14F31E3A656B93372BA06C6 + 4A669618B6DD3B759CE1D1A50B18E22FFADF3308F20A30884B8802CD6164F8FF + EF1FC397CF5F199E3C7EF68471538BDC7FD7447B92C2E9D991970C07F34F31B8 + BA3831B0B3B3C3C5D7AFDEC20036909CC07F39E50383BBBD03D04036B8D8860D + 3B2106FA569E21D9C0C5AA660C0EFA9A0C6C48066EDCB60F62A057F106866F1F + 774385FF63D08C58C4D6594C6170D0D163606363851BB869CF6188819E854B19 + 7E7CDE8FD0F41FBBC128065ACE627050D74235F0E00988811EF933187E7E3986 + D525B8E8B5960B18EC955419D85811066E3E7E1662A07B6E37C3EF6F67305C86 + CF823556CB18EC64948006B2C00DDC72F612D4C0AC1A863F3FAE10E13A081B64 + D16AAB350CB612720C6C2C0803B75EBA0E31D03E388CE1D7A71B680630E0E56F + 0D3DC96027220334901961E08D3BD048C9EB64F8FFF7138A0646BC86FF67586E + D4CC60CD23C8F0F5F76FB088200707C3B67B0F21065A7B1A33FCFBF319A76618 + 6044626F09BDC060C329CC70F1DD0786BFC012CB424C8461FB936750176617E3 + 3508353941C072E32E06ADBF2C0C17FE7E66F8FBF9DF3D734101A593EF3F004B + 9B16B9A34075560C240250D6E3FDC9C4F0D78AF5FEE7433F5A855899E7BCFFF3 + 171A54648059BCBC5BFF33FE977CFEE90BC8317F24F9788F007DF097EA253600 + 03E90F242C612D290000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Opened bookmark folder-stored session folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000022F4944415478DA63FCFFFF3F + 03350123D50D04119B9AE4B41998183603998A48726B7FFC791415D6C0F08B24 + 034186313233EE57B7F7101557D5820AFF63B8796007C3CBDBD7B77EFFF32888 + 14431937B5CABFD0B473151757D50472FF4331C4D01B07F730BCB87D938011FF + E7FAD53C4E811BB877AAC17FD3E0082483FE03C301C1664061832884D8D7F7EF + 184EAD5B7F0568A02E9281FAFFCD8243109AFF6333089B652003DF339C5CB719 + DD40BDFF6641FE0C7FFFFC66B8B06D17C3A7D76F2888E3FFDB19F74CD6FE6F11 + E2CBF0EADE43865FBF6519D46D4BC832EAFBA73B0C7BA6462C66DCD9A7F6DF3A + C297E1EA81130CCA16290C9CFCFF19FEFE7E8511768CD8C21389BEB66F3FC3AB + BB7703C106DA44B8331C59BE83C13E7922C39F1FE781E1FE1BAF668405103E28 + 731C5EB2F2EFBB6F1F848006AAFED77336667870F92D83914F3CC3EFEF57F118 + 841C6908FAE38B570C67B71D38008C1C47B081922A920C3C227A0C92AAD20CFF + 7EBFC69E5CF0D0774E5F637870E94E897FEDE35EA0812AFFD938D818746CDC18 + 187E3F65F8FFF727AAB7E0A9043DCF23F8574EDF63F8F2E693A66FC3B31B8C3B + 7B958106F232D8C456000DFB844503CC70EC06FFFAFE9961EFBC290FFC6A1E81 + CB01C6ED5D8AFFA555A418A4E58419FEFDFD8EC735A862B04879FBFA1BC38DF3 + CFA602BD9B0316DFD822FBCD26349C934F4C16A7EB50C4FFA3F22FECDA04CCEF + F7DC7D6B1FEF021BB8A959F6140323A32903F9E0C8B93F8F1C1B1A18FE800D1C + F4253600BA4C23FEC4936E5C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Closed bookmark folder-stored session folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000015B4944415478DA63FCFFFF3F + 03350123D50D04119B1BA444FEB3306F07724D1052FFCF30FEF9EBE9DBF0EC0D + 2143901DC508318CE580ACBE99B69299035CE2DEA9030C8F2F9EBACAF8E78F03 + 2143510CDCD42A77464ED7C058C9CC1243E1BD53C7191E5DBA40C881477CAB1F + DA220C6C91FBEF9A684F7698ED9E7F90016820238A81E44701046018E85B7986 + 6CC336B79B601AE855BC81E1DBC7DDB020C6A019B188C1E8FD73E6601AE859B8 + 94E1C7E7FD08C5FFB16B46170359B46FEE624C033DF26730FCFC720CAF4BB0D2 + C0E4B26FDE4A4C03DD73BB197E7F3B83E132622CD83B6F031603B36A18FEFCB8 + 4284AB105E8559BE67FE764C03ED83C3187E7DBA8166000311FCFF0CC7775FC3 + 1229799D0CFFFF7E420B707C8621C4B74FEDC434D0DAD398E1DF9FCF04353362 + B1E0D8EE7B585C985D8CD72038FF3F1A1F88B74F9B846AE0E616B9A340292B06 + 3201D0A4633ED50FADE1FC415F620300B524DDD96C89D4C10000000049454E44 + AE426082} + end> + Left = 352 + Top = 208 + Bitmap = {} + end + object BookmarkImageList144: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + Background = clWindow + Name = 'Bookmark' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002D94944415478DADDD55F4853 + 511C07F0EF71DB9D23AFC530B25216924FD11FD4E6FEA4CEA03FAB242884DE03 + 238B2244AA3723B4A8A7C0C2E8258AF061E9ACCDBF8499568A29941116845186 + 6026BADDE9E636773B9BD33CF76EDA1E7CE970E1727EE79CDFE7FCE35E228A22 + D6B290FF032084C051B5254D542A5A69288FED220E90E0BCB5A46AECF7F2681D + BFAE868054D2C1CABF5DC520AD8F8A62A83384E0EDB36EDF9708E0BCB6952657 + 7665EED6EFC8D25B98F423FD5D18FDD0FF89048396E5C8FD54DEA5D56E48DD94 + BE91CE892C02F0FB0310040F7E8D4FFC287309BA08E0A8D10D64EED2E74A934B + 102636F72D80A9260FACD60350ABD5B231769B13652E375900AA75E2FED3A712 + DEDF06E34314E71B28C0C9DA9A9ADA59C0726267C280DDDA8BE29C7C70318067 + 2D9D2C9070765AC66BA771308F029C4AD6F6FC450F0B945C1D4818789CAD4751 + F6B6D8C0AB3E163876B91B9E495BB4598CF3666376C31D14656D07A792038EDE + 4116385AD986D9297BCC443111FA341AEFA13083AE40A59401CEC121163852D1 + 00EF74F3AAB30E17127D37181FA0203D039C520E340F0DB380F5D223CCB93BFE + 7D0558B8A605DA740A28E4C0E7AF2C70F8E25DF885EE9889481CE4A9E909F6F1 + 69E01472A065E4BB04387F0381D97E49A2F8DBB400D86056AF8F09B4FE1C6381 + 43E55710F47D5CEA40A207B9126633DB6152A4804B4A92016DE3132C5074B214 + 7EF7708C19C7AF3797BE8349D44480C94020D2232D7A65DBA7A625B7E8C24D88 + F3EE5512B36DF539D761F08A08A77CEDF54662668D0649F4EBDA3E33C302666B + 0E4241CF8A0989A4EE2C7D0FE30CC1582804616F0A142A82E4B702B2E89974F8 + FD926B7AAE62850395AC281AAECFBD853DAE390CD2333EDE510E855A81464B2D + 0CF34037DDB225C059AD7B43C7989060097FECB474677CF96AF0859A48CCD3E7 + 43728F0F1334EF124016FF4809963A9E77D06DCB84E0319D0166C3B12A80DBCC + F32FE93243656EA160CD7FFA7F0085C2ABE0AED53F7A0000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Opened bookmark folder-stored session folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002934944415478DA63FCFFFF3F + 032D01E3D0B700446C6A92D3666062D80C642AA2C9AFFDF1E751545803C32FB2 + 2D0019CEC8CCB85FDDDE43545C550B2AFC1F8C6F1ED8C1F0F2F6F5ADDFFF3C0A + 22D712C64DADF22F34ED5CC5C55535918461C1F68FE1C6C13D0C2F6EDF20C1C8 + FF73FD6A1EA7C02DD83551FBBF45783C92A1C816A0D3A030C52DF7F5FD3B8653 + 6BD75C015AA00B57BFB34FE3BF65541C168D782CFA8F5DEEEBFBF70CA7D66DC0 + B4C02A2A8AE1EF9F5F0C67D66D60F8F6E91339418D3DB0FEFF9F0AB440FDBF55 + 6438C3BB274F183EBDE560D0716DA08AE1DF3FDD66D83B35720FD802EBC86086 + 3BA7CE324868843208488831FCFA0E8B547CC1853F6EEE9E3CC1F0F0F2C55AA8 + 05FE0CE7B6EC6130F26F6660627ECAF0F7F72BC206FFC72F7F7ECB3686772F5E + B9022D50FB6F1DE6C57068E92606979CC50CBF3EEF0586DD5F82AE6764402F01 + 10FCFFFFFE321C5CB4F2FFB79F5FF9C016E8BB5830DCBBF08CC124208FE1D7D7 + 1338838158DF7C7EF38EE1F4A6DD9780A9491F6881EA7F391D65062636050679 + 5D03863F3FEF10702DFEB800B11F5DB9038CD3CB537C6B1EE7822DE017E56750 + 30F262E0176566F8F7E72D69AE4763831C7369EF5986D7F79F47FBD63D5906B6 + 0018E80CD691190C4C8C0F81CC3F0817FF27CF92C32B0E02E3F29BBC6FC3B347 + 8C3B7A95FFB3B0B03198B8B831FCFE721B87466C7CEC627F7EFF65387DE0D60B + BF9A4792601F6DEF56FA2FADA1CFA06517008CFD6F040C216CC9DBC777184E6D + 5CBBC1AFF67120D882AD1D0AFFD5F415180445388116FCC6110C08C048C09227 + 0F3E303CBCF5B6C4BFF6712F58FDE656B9FFF6D1F10C9CFC22A4B9F83F76F193 + EB9733BC7FFCCC1818FEE7C0166C6A967DCAC0C828C5402DF0FFFFD31F7F1F2B + C12AA8A15FE90300252963BC5E1E63A70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Closed bookmark folder-stored session folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001904944415478DA63FCFFFF3F + 032D01E3F0B08091919161738394C87F16E6ED4021135425FFCF30FEF9EBE9DB + F0EC0D2906C31C0EB6604BA334D0709603B2FA66DA4A660E280AEF9D3AC0F0F8 + E2A9AB8C7FFE389062098A059BDBE4CFC8EA9919A31B8E6609291E38E25BFDD0 + 166141ABFC7FA7E408AA85FBBEB92B18801630A258E010A44B350B0EACBB8C69 + 01D54C87020C0B7C2BCF50CDF0CDED269816F8941F62F8F2763554C97F1C34A6 + 182316B9FD7366615AE05DBA83E1DBFBF5380DC2B0E43F6EB9FD7317605AE055 + BC96E1FB87AD64B81A537EDFDCA5981678162E62F8F96917F13EC0EA13087BDF + BCD5981678E44F65F8F5F91056831889F01532BD77DE462C16E4B433FCFE760A + 8726E27CC408F5D19EF9DB302D70CFAA60F8F3E3325C0B238188C467D99EF97B + 302DB00F0E65F8F5E93A164388E523C48EEFBE812515E57530FCFFFB898041C4 + 59B27D6A37A605D69E460CFFFE7CC16B20231E5723AB3DB6FB3E96649A5D8C57 + 138ADC7FFC966C9F3609D5822DADF2478152560C540240938FF9543FB4865B40 + 4B40730B00099F45E0023335AB0000000049454E44AE426082} + end> + Left = 352 + Top = 264 + Bitmap = {} + end + object BookmarkImageList192: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'Bookmark' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003774944415478DAEDD66B4853 + 611807F0FFD9E54CB4995892855A5492D1E54365BAAD292569AB8C0AEC5B5F2A + EC7EBF401748B08410AC0F4557108A325AE9D4A9DD34EC4E6481151585958564 + 42BA5B9D9D5D4EAFC3ADE9798F4D1DF8A5E7D3D97B9E3DCFEF7DCE65630441C0 + 7006F31FF01FD00D601806A5058818AD48AA271CAD44EE43CEDD9AB5AA007C38 + 1AFB371E00541D492C4EC958BD2759B783FA850F8F4EE0DDFD4B45CB0E7D3DD8 + 5FE133EAA82206CC5E5254D1A7A39BAC7D15046F8317EEE28D56EE7D00505998 + 98A68A8C7C929AB78E514644520BBBB85F7866BCE0F1D8ED73730BDA5E4801CE + 46AB2DB1B131D163E2E348752618009E77C166B3E3477B476BBEC5363E00A83E + 9AF46ADA829CE9711327F73BB68E968F78D370BBDF1CE727173A4D76180C0BA1 + 52A9A839154633F22D562608305EC85AB3221C97D617D7B557303F4D43002CF5 + BCC9744B0CC85C39336C0093E131E6CF4A032B01A8AC6D1003C2D69D44FBC92E + 64CF210056493D5F75F7811890BBFF79D8009792E72233798234A0F1A918B064 + 5F3D1C3FAB82D284411F57A41F4726B9A159251D50FDA48902D85B0747A739E4 + 264C3F39E5E92791914026A0548016E6A6663160F1EE0AFCB6DC1CD86E05FA7A + B9E634F4F109601574404DF35B31C0B0EB2A38CB1D89A6039BC80DCD79E863E3 + 09404E07BCFB4801EC280567BB2731E2D010FEE31B9A52CC538F022BA7036A5B + BE88018BB69F066F7F30E4F1FB00DA8BD0A9464A02EABEB551005B4BC03B9EFE + 63BCA14DE1BAB60C5A791458998C0AB8D9DE41016C2984EBD7CB018F9B0E3042 + E3612501B73ABBC4809C4DFBE1E6DE84D4C43711413AC7A82B878693830DFE35 + 0C06381C14C0866DF0383F0C69E7FE30EAAA906EF34A026EF3BC1890BD7E2DBC + 7C2BA57008D3E8B37E4D573B70803E378B5C8236D0436AD7F49C9ABC26681C4C + 00F0DAEDC654F244C87B3E53018BB71E86E0E5FED13C3454D9AC22A459791FE0 + B3C783165686314E0FA6F5BC19A9006DCE540270F52AC40CA2797798F39A7D13 + 7092DA2F945E649E9A82FA9DEF31D321431C7932A800C3E6DD218E5B9038F577 + A16C763152C9049A5C2EA49E588949CB67C074A004F6CB5641C7B24C0359EF03 + 48B291C311085374FF2189E31858531488591AE507DADB8E759D192B97EDF9EE + F5F606301277EB60E39C5A5D23404870DAECFA6D80D5BF5E00448C8B5637929E + 7CBED5A60F008633861DF0074D2A37DFA02AA90F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Opened bookmark folder-stored session folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000036F4944415478DA + ED95594C13511486FF5159EA9A50312A5A344A4471894B6509C6082E4442010D + 3EB82BF1414D3431FA64ABC4F842D4371F4C346A34D11713AD3146491153C3A6 + 084444402042A780554B432D50CAB4E32DAD38B7735B97D0F8C24D2673E6CCBD + F77CFF39E7CE70F8CF831B071807903EDC2A42B472D2FC32E24E614F17ABAC02 + BFE950119C6101787C71FEA5C48D074E27A49D604E6EABBA8AA6B25B97355AFE + CC98033CBA302F396AF2E44A75C1112E225AC19C3CEC1C44CD831BA2B3BF3F35 + EF9CB97A4C0188FA86A4CCACE5B10B17855CF0ADA31DEF0DCFFF319C5845B297 + 1A044025661ECE1F0B514147E9CD87D0684D54D92980AD0793C30A5072BB3A34 + 40D67E5558019EDD318506D8BE3B62C47E6B1460318B618521A38EC0ACA133B0 + D305611878655062EBC9B2F08516053C294E75E59CED8CA20036E708B0593958 + FA32B022EB1406ECE5ACD5FECB43D2E721A6CFF65D12BFD71603FDBEBBFDEB17 + D43C2EA92127424D016CDAE686B9934374FC31CC494CC6D040D3E862EF9D0BD8 + 70D4FFD316597E894FF4F9BA9ADBD05251773347CB1752001B323C6869E490B0 + A5188A1913200C75075127574807FBF58EA3607DEF1A8DB5F8FCD17C48738EBF + 4D01A4A503F5B540CAFE6B64DE2778DC7DF40612859C34D8C8BB806C04664902 + 5BADAF80BDF7BB3A57CBD750006A5291BAFA49D87CFC3A5C8E72124F90D54FAA + 9063040ADD1B225926A0F4EE2BF7379769AAF7A746012C5DC2E1CBE062ACCB3D + 8AE1815A66FD7EA7EE77CDE8B03950A97FF7811CC1246F5C0A4015C761E2EC74 + 24ACDF40EADFCAACDFC8C6224B39BB1903B3D4D36E4583B1E39E46C7EF9101C4 + 90C653A5E421365E098F6009A93074E707EF8DE6373DE868B49ECED5F1576400 + 8A480E6B77EC83624A3F59E7609E6104A867F506B349FDB0AF9FF1B059FA3335 + BAAE17328009E429A3B0109CA773E46BC5FE98C83795FB8397CA709F8763D0AD + DC5564EE95014C8F998655E9EB200C76495440A24E62535F457F0F88A2CCE74B + BFEF2E086E54BDEC3391FAC7FF8C4B012C58B90ACB366613D14E7F407A833F0D + 180CC2D6CDA35CFFF2293901D94C80C4D57150CE8C949C7FC9254A41E84C7054 + 56026D8C96E973B780B666D7798DD67C8109905E908FE9B173FF529DC7BF110D + CB9A5B6F30C2D4DA939DA7333F9501E82FAABAC9C31C84770CD905C7ACBD45BD + 7619C0FF1AE3003F002B4C7E3FD11A0AFA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Closed bookmark folder-stored session folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001FF4944415478DA63FCFFFF3F + C34002C651078C3A00E40046464686F90D0C1C222C727B81CEB1C2A1F6C88F3F + 8F9CC31A187E916B1936CFC21DB0A945B65BC33EBE44D52A0FABE6DB472730DC + 38B4B8CDAFE67135D51DB0B159D69C9D8BEBB869682A232B072756CDBF7F7C63 + 38B57ACEDFBF5FBE98F9363C3B4755076C6E95BBACEDECA123AAA88CD780D7F7 + EE305CDDB78BDC0038E25BFDD0168703E4FF3B2705926B305160EFBCF50C4007 + 30E274807D901E4D1D7070DD25FC0EA0A9ED5080D701BE9567686AF9E67613FC + 0EF02EDBCBF0F5DD2624A9FF54651F98338380034AB7337C7DBF856883194974 + C8FE3973F03BC0AB783DC3F78F3B48F3E17FE24361FFDC85F81DE059B482E1C7 + C7DD380C21354430E5F7CD5D42C00105F3197E7CDE8FC740CAD2C1BEB92BF13B + C0237F3AC3AF2F87A912FCD8D2C7DE796B093820B78FE1D7D713040C243F14F6 + CEDB48C00139CD0CBFBF9DA74A7063F3C09E79DBF03BC03DAB92E1CF8FAB4459 + 020E91FFF8D5A0B3F7CCDF45C00119790C7F7FDEA682CF7139601F7E07B8A527 + 33FCFBF508876104428388A8D83DFF107E07D8FA3A03A3E019037680CFA7C489 + 1FDF7D9B4049985BCFF0FFDF0F920D2656CDF6A9BDF81D60E5AE0974C06F5449 + 2A590E02C7763F20501266171369F87F1C52B8D208046C9B36099F03E43E0399 + 3C0C3404407BBEF8D53CE2C5EA808104A30E000049D3AFD07620F80900000000 + 49454E44AE426082} + end> + Left = 352 + Top = 320 Bitmap = {} end end diff --git a/source/forms/LocationProfiles.h b/source/forms/LocationProfiles.h index 9c41214f..bc749649 100644 --- a/source/forms/LocationProfiles.h +++ b/source/forms/LocationProfiles.h @@ -53,6 +53,9 @@ class TLocationProfilesDialog : public TForm TButton *DownSharedBookmarkButton; TButton *ShortCutSharedBookmarkButton; TImage *Image; + TPngImageList *BookmarkImageList120; + TPngImageList *BookmarkImageList144; + TPngImageList *BookmarkImageList192; void __fastcall ControlChange(TObject *Sender); void __fastcall AddBookmarkButtonClick(TObject *Sender); void __fastcall RemoveBookmarkButtonClick(TObject *Sender); diff --git a/source/forms/Log.cpp b/source/forms/Log.cpp index 8d0d1735..6ddc1a06 100644 --- a/source/forms/Log.cpp +++ b/source/forms/Log.cpp @@ -29,7 +29,7 @@ TLogForm *LogForm = NULL; //--------------------------------------------------------------------------- TLogForm * __fastcall CreateLogForm(TLogMemo *ALogMemo) { - assert(!LogForm); + DebugAssert(!LogForm); Configuration->Usage->Inc(L"LogWindowDisplays"); TLogForm * aLogForm = new TLogForm(Application); try @@ -84,7 +84,7 @@ __fastcall TLogForm::TLogForm(TComponent* Owner) ShowWindow(Handle, SW_SHOWNA); UseSystemSettings(this); UseDesktopFont(StatusBar); - SetFormIcons(this, L"Z_ICON_LOG_BIG", L"Z_ICON_LOG_SMALL"); + FixFormIcons(this); } //--------------------------------------------------------------------------- __fastcall TLogForm::~TLogForm() @@ -105,7 +105,7 @@ void __fastcall TLogForm::SetLogMemo(TLogMemo * value) if (OldLogMemo) { - assert((OldLogMemo->Parent == this) && (OldLogMemo->OnChange == LogMemoChange)); + DebugAssert((OldLogMemo->Parent == this) && (OldLogMemo->OnChange == LogMemoChange)); OldLogMemo->OnChange = NULL; if (SessionLog == OldLogMemo->SessionLog) SessionLog = NULL; OldLogMemo->Parent = NULL; @@ -126,7 +126,7 @@ void __fastcall TLogForm::SetLogMemo(TLogMemo * value) //--------------------------------------------------------------------------- void __fastcall TLogForm::LogMemoChange(TObject * /*Sender*/) { - assert(LogMemo); + DebugAssert(LogMemo); Application->ProcessMessages(); if (!ComponentState.Contains(csDestroying)) { @@ -136,7 +136,7 @@ void __fastcall TLogForm::LogMemoChange(TObject * /*Sender*/) //--------------------------------------------------------------------------- void __fastcall TLogForm::FormClose(TObject * /*Sender*/, TCloseAction & Action) { - assert(Configuration); + DebugAssert(Configuration); // If log window feature is turned off (log window is being closed // by turning off this feature e.g. in Preferences Window), really close it // If log window feature is turned on (log window is being closed by @@ -162,13 +162,13 @@ void __fastcall TLogForm::SetSessionLog(TSessionLog * value) { if (SessionLog) { - assert(SessionLog->OnStateChange == SessionLogStateChange); + DebugAssert(SessionLog->OnStateChange == SessionLogStateChange); SessionLog->OnStateChange = NULL; } FSessionLog = value; if (SessionLog) { - assert(SessionLog->OnStateChange == NULL); + DebugAssert(SessionLog->OnStateChange == NULL); SessionLog->OnStateChange = SessionLogStateChange; } UpdateControls(); @@ -210,7 +210,7 @@ void __fastcall TLogForm::CreateParams(TCreateParams & Params) if (!FFormRestored) { FFormRestored = True; - assert(Configuration); + DebugAssert(Configuration); RestoreForm(WinConfiguration->LogWindowParams, this); } TForm::CreateParams(Params); diff --git a/source/forms/Log.dfm b/source/forms/Log.dfm index 7cf65567..6da0456c 100644 --- a/source/forms/Log.dfm +++ b/source/forms/Log.dfm @@ -11,6 +11,1351 @@ object LogForm: TLogForm Constraints.MinHeight = 170 Constraints.MinWidth = 250 ParentFont = True + Icon.Data = { + 000001000700404000000100200028420000760000003030000001002000A825 + 00009E4200002828000001002000681A0000466800002020000001002000A810 + 0000AE820000181800000100200088090000569300001414000001002000B806 + 0000DE9C000010100000010020006804000096A3000028000000400000008000 + 0000010020000000000000420000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFCF4ECFFF7E7D7FFF7E7D7FFF7E7D7FFF7E7D7FFF7E7D7FFF0D4 + B9FFF7E7D7FFF7E7D7FFF7E7D7FFF7E7D7FFF7E7D7FFF7E7D7FFF7E7D7FFF7E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFCF4EDFFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF0D4 + B9FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7 + D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7 + D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFDCCED1FF5C57 + AEFFECDDD5FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF6E6D8FF6B66B3FFC0B4 + C9FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFCF5EEFFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF0D4 + B9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFDCCFD2FF2827A1FF0D0E + 99FF423FA8FFECDED6FFF7E8D9FFF7E8D9FFF6E7D9FF625DB1FF0D0E99FF1818 + 9CFFC2B7CBFFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFCF6EFFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF0D4 + B9FFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFD0C3CFFF1F1F9EFF0D0E + 99FF0D0E99FF423FA8FFECDED7FFF6E7DAFF625DB1FF0D0E99FF0D0E99FF1213 + 9BFFB1A6C7FFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF9EEE3FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFCAB3B4FF1E1D + 9CFF0D0E99FF0D0E99FF3F3AA0FF5C53A4FF0D0E99FF0D0E99FF12129AFFAC98 + B0FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFCF7F2FFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF0D4 + B9FFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9 + DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9 + DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DCFFF7E9DBFFD0C4 + D0FF1F1F9EFF0D0E99FF0D0E99FF0D0E99FF0D0E99FF12139BFFB1A7C7FFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFDF8F3FFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF0D4 + B9FFF8EADDFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EA + DCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EA + DCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EA + DCFFD0C4D1FF13149BFF0D0E99FF0D0E99FF0E0F99FFAAA1C6FFF8EADCFFF8EA + DCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFDF8F4FFF8EADEFFF8EADEFFF8EADEFFF8EADEFFF8EADEFFF0D4 + B9FFF8EADEFFF8EADEFFF8EADEFFF8EADEFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF7E9 + DDFF635EB2FF0D0E99FF0D0E99FF0D0E99FF0D0E99FF4240A9FFEDE0DAFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009B7758FFFBF1E8FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFEFD3B9FF6056 + A5FF0D0E99FF0D0E99FF11119AFF18189BFF0D0E99FF0D0E99FF403BA0FFE6CB + B8FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF9B7758FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009C7858FFFDF9F6FFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF0D4 + B9FFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF7EADFFF635EB3FF0D0E + 99FF0D0E99FF12139BFFB1A8CAFFD1C6D4FF1F1F9FFF0D0E99FF0D0E99FF4240 + A9FFEDE1DCFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFF9C7858FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009D7959FFFDFAF6FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF0D4 + B9FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFB5ADCCFF0D0E99FF0D0E + 99FF12139BFFB1A9CBFFF8ECE0FFF8ECE0FFD1C7D4FF1F1F9FFF0D0E99FF0D0E + 99FF8984BFFFF8ECE0FFF8ECE0FFF8ECE0FFF8ECDFFF9D7959FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009E795AFFFEFAF7FFF9ECE1FFF9ECE1FFF9ECE1FFF9ECE1FFF9ECE1FFF0D4 + B9FFF9ECE1FFF9ECE1FFF9ECE1FFF9ECE1FFF9ECE1FFF9ECE1FFF9ECE1FFF9EC + E1FFF9ECE1FFF9ECE1FFF9ECE1FFF9ECE1FFF9ECE1FFF9ECE1FFF9ECE1FFF8EC + E1FFF8ECE1FFF8ECE1FFF8ECE1FFF8ECE1FFF8ECE1FFF8ECE1FF8F89C1FF1213 + 9BFFB1A9CCFFF8ECE1FFF8ECE1FFF8ECE1FFF8ECE1FFD1C7D5FF1F1F9FFF6461 + B4FFF7EBE1FFF8ECE1FFF8ECE1FFF8ECE1FFF8ECE1FF9E795AFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009E7A5AFFFCF5EEFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFD1B9 + B5FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFD5BCB5FFEFD3 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF9E7A5AFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009F7B5BFFFEFCF9FFF9EEE3FFF9EEE3FFF9EEE3FFF9EDE2FFF9EDE2FFF0D4 + B9FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FF9F7B5BFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A07C5BFFFEFCFAFFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF0D4 + B9FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFA07C5BFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A17C5CFFFEFCFAFFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EFE4FFF0D4 + B9FFF9EFE4FFF9EFE4FFF9EFE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFB2CEA7FFB9D2AEFFE0E3CFFFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFA17C5CFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A27D5DFFFDF8F4FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FF79AB67FF128720FF128720FF258E2DFFE4D0B1FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFA27D5DFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A27E5DFFFFFDFCFFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFF0D4 + B9FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0 + E6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEF + E6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FF7DB7 + 7CFF128720FF128720FF128720FF128720FF77B476FFFAEFE6FFFAEFE6FFFAEF + E6FFFAEFE5FFFAEFE5FFFAEFE5FFFAEFE5FFFAEFE5FFA27E5DFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A37F5EFFFFFEFCFFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFF0D4 + B9FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FF7DB87CFF1287 + 20FF128720FF128720FF158923FF128720FF158923FFD2DEC5FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E6FFFAF0E6FFA37F5EFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A47F5EFFFFFEFDFFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFF0D4 + B9FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFB6D1ADFF128720FF1287 + 20FF128720FF92C18EFF89BD86FF128720FF128720FF49A04FFFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFA47F5EFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5805FFFFEFCF9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF75AA64FF1287 + 20FF8DB275FFF0D4B9FFE9D2B4FF319235FF128720FF128720FF9FB881FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFA5805FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A6815FFFFFFFFEFFFAF2EAFFFAF2EAFFFAF2E9FFFAF2E9FFFAF2E9FFF0D4 + B9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFC0D7 + B7FFFAF2E9FFFAF2E9FFFAF2E9FFB7D3AFFF128720FF128720FF269031FFEEED + DEFFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFA6815FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A68260FFFFFFFEFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFF0D4 + B9FFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2 + EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2 + EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFF57A75CFF128720FF128720FF77B6 + 78FFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFA68260FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A78261FFFFFFFFFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFF0D4 + B9FFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFE0E7D3FF198A26FF128720FF1589 + 23FFD3E1C8FFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFA78261FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A88361FFFFFFFFFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF84AF6FFF128720FF1287 + 20FF479A44FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFA88361FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A98462FFFFFFFFFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFF0D4 + B9FFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFF4F1E7FF33963DFF1287 + 20FF128720FFC1D9B9FFFBF4ECFFFBF4ECFFFBF4ECFFA98462FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AA8562FFFFFFFFFFFBF4EEFFFBF4EEFFFBF4EEFFFBF4EEFFFBF4EEFFF0D4 + B9FFFBF4EEFFFBF4EEFFFBF4EEFFFBF4EEFFFBF4EEFFFBF4EEFFFBF4EEFFFBF4 + EEFFFBF4EEFFFBF4EEFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFB8D5B2FF3497 + 3DFFBCD7B6FFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFAA8562FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AB8663FFFFFFFFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFF0D4 + B9FFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5 + EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFF8F4 + EBFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFAB8663FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AB8664FFFFFFFFFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFEFD4B8FF8FB376FF98B67CFFC6C59CFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFAB8664FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AC8764FFFFFFFFFFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFF0D4 + B9FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFBF6 + EFFF69B16DFF128720FF128720FF1E8D2BFFE8EDDEFFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFAC8764FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AD8865FFFFFFFFFFFCF7F1FFFCF7F1FFFCF7F1FFFCF6F1FFFCF6F1FFF0D4 + B9FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFBF6F0FF67B0 + 6CFF128720FF128720FF128720FF128720FF67B06CFFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFAD8865FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AE8965FFFFFFFFFFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFF0D4 + B9FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFBF7F1FF67B06DFF1287 + 20FF128720FF178A25FF1E8D2BFF128720FF128720FFC6DDC2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFAE8965FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AE8966FFFFFFFFFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFB1BE8DFF128720FF1287 + 20FF178923FFABBC8AFF93B479FF128720FF128720FF38943AFFEDD3B7FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFAE8966FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AF8A67FFFFFFFFFFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFF0D4 + B9FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F3FFFDF8 + F3FFFDF8F3FFFDF8F3FFFDF8F3FFFDF8F3FFFDF8F3FFFDF8F3FFFDF8F3FFFDF8 + F3FFFDF8F3FFFDF8F3FFFDF8F3FFFDF8F3FFFDF8F3FFFDF8F3FF94C695FF178A + 25FFB4D5B2FFFDF8F3FFFCF8F2FF3C9B46FF128720FF128720FF98C899FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFAF8A67FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B08B67FFFFFFFFFFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFF0D4 + B9FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFDDE9 + D7FFFDF8F4FFFDF8F4FFFDF8F4FFCCE0C7FF138821FF128720FF1F8D2BFFE9EF + E2FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFB08B67FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B18C68FFFFFFFFFFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFF0D4 + B9FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FF6BB371FF128720FF128720FF68B1 + 6EFFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFB18C68FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B28D68FFFFFFFFFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFDDCEACFF208C29FF128720FF1287 + 20FFBDC296FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFB28D68FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B38D69FFFFFFFFFFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFF0D4 + B9FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FF9ACA9DFF128720FF1287 + 20FF3A9B45FFFAF9F4FFFDFAF7FFFDFAF7FFFDFAF7FFB38D69FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B38E6AFFFFFFFFFFFEFBF8FFFEFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFF0D4 + B9FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFA + F8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFCFAF7FF3C9C47FF1287 + 20FF158923FFC8E0C7FFFDFAF8FFFDFAF8FFFDFAF8FFB38E6AFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B48F6AFFFFFFFFFFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFF0D4 + B9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFCCE3CBFF52A7 + 5AFFD6E7D3FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFB48F6AFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B5906BFFFFFFFFFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFB5906BFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B6906BFFFFFFFFFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFC + FBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFB6906BFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B7916CFFFFFFFFFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFB7916CFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B7926CFFFFFFFFFFFEFDFCFFFAF1E9FFF2D9C1FFF2D9C1FFFAF1E9FFFEFD + FCFFFEFDFCFFFAF1E9FFF2D9C1FFF2D9C1FFFAF1E9FFFEFDFCFFFEFDFCFFFAF1 + E9FFF2D9C1FFF2D9C1FFFAF1E9FFFEFDFCFFFEFDFCFFFAF1E9FFF2D9C1FFF2D9 + C1FFFAF1E9FFFEFDFCFFFEFDFCFFFAF1E9FFF2D9C1FFF2D9C1FFFAF1E9FFFEFD + FCFFFEFDFCFFFAF1E9FFF2D9C1FFF2D9C1FFFAF1E9FFFEFDFCFFFEFDFCFFFAF1 + E9FFF2D9C1FFF2D9C1FFFAF1E9FFFEFDFCFFFEFDFCFFB7926CFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B8936DFFFFFFFFFFFFFEFDFFF2D9C0FFC5AB94FFA17E5FFFF2D9C1FFFFFE + FDFFFFFEFDFFF2D9C0FFC5AB94FFA17E5FFFF2D9C1FFFFFEFDFFFFFEFDFFF2D9 + C0FFC5AB94FFA17E5FFFF2D9C1FFFFFEFDFFFFFEFDFFF2D9C0FFC5AB94FFA17E + 5FFFF2D9C1FFFFFEFDFFFFFEFDFFF2D9C0FFC5AB94FFA17E5FFFF2D9C1FFFFFE + FDFFFFFEFDFFF2D9C0FFC5AB94FFA17E5FFFF2D9C1FFFFFEFDFFFFFEFDFFF2D9 + C0FFC5AB94FFA17E5FFFF2D9C1FFFFFEFDFFFFFEFDFFB8936DFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B9936EFFFFFFFFFFFFFEFEFFF2D9C0FFBFA691FF9A7657FFF2D9C1FFFFFE + FEFFFFFEFEFFF2D9C0FFBFA691FF9A7657FFF2D9C1FFFFFEFEFFFFFEFEFFF2D9 + C0FFBFA691FF9A7657FFF2D9C1FFFFFEFEFFFFFEFEFFF2D9C0FFBFA691FF9A76 + 57FFF2D9C1FFFFFEFEFFFFFEFEFFF2D9C0FFBFA691FF9A7657FFF2D9C1FFFFFE + FEFFFFFEFEFFF2D9C0FFBFA691FF9A7657FFF2D9C1FFFFFEFEFFFFFEFEFFF2D9 + C0FFBFA691FF9A7657FFF2D9C1FFFFFEFEFFFFFEFEFFB9936EFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BA946EFFFFFFFFFFFFFFFFFFFBF3EBFFCBB5A1FF9A7657FFFBF3EBFFFFFF + FFFFFFFFFFFFFBF3EBFFCBB5A1FF9A7657FFFBF3EBFFFFFFFFFFFFFFFFFFFBF3 + EBFFCBB5A1FF9A7657FFFBF3EBFFFFFFFFFFFFFFFFFFFBF3EBFFCBB5A1FF9A76 + 57FFFBF3EBFFFFFFFFFFFFFFFFFFFBF3EAFFCBB5A1FF9A7657FFFBF3EAFFFFFF + FEFFFFFFFEFFFBF3EAFFCBB5A1FF9A7657FFFBF3EAFFFFFFFEFFFFFFFEFFFBF3 + EAFFCBB5A1FF9A7657FFFBF3EAFFFFFFFEFFFFFFFEFFBA946EFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BB956FFFFFFFFFFFFFFFFFFFFFFFFFFFD8C3B0FF9A7657FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD8C3B0FF9A7657FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD8C3B0FF9A7657FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8C3B0FF9A76 + 57FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8C3B0FF9A7657FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFD8C3B0FF9A7657FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFD8C3B0FF9A7657FFFFFFFFFFFFFFFFFFFFFFFFFFBB956FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BB966FFFBB966FFFBB966FFFBB966FFFCCB5A1FF9A7657FFBB966FFFBB96 + 6FFFBB966FFFBB966FFFCCB5A1FF9A7657FFBB966FFFBB966FFFBB966FFFBB96 + 6FFFCCB5A1FF9A7657FFBB966FFFBB966FFFBB966FFFBB966FFFCCB5A1FF9A76 + 57FFBB966FFFBB966FFFBB966FFFBB966FFFCCB5A1FF9A7657FFBB966FFFBB96 + 6FFFBB966FFFBB966FFFCCB5A1FF9A7657FFBB966FFFBB966FFFBB966FFFBB96 + 6FFFCCB5A1FF9A7657FFBB966FFFBB966FFFBB966FFFBB966FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BFA791FF9A7657FF000000000000 + 00000000000000000000BFA791FF9A7657FF0000000000000000000000000000 + 0000BFA791FF9A7657FF00000000000000000000000000000000BFA791FF9A76 + 57FF00000000000000000000000000000000BFA791FF9A7657FF000000000000 + 00000000000000000000BFA791FF9A7657FF0000000000000000000000000000 + 0000BFA791FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BFA691FF9A7657FF000000000000 + 00000000000000000000BFA691FF9A7657FF0000000000000000000000000000 + 0000BFA691FF9A7657FF00000000000000000000000000000000BFA691FF9A76 + 57FF00000000000000000000000000000000BFA691FF9A7657FF000000000000 + 00000000000000000000BFA691FF9A7657FF0000000000000000000000000000 + 0000BFA691FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CAB29FD5A17E61F4000000000000 + 00000000000000000000CAB29FD5A17E61F40000000000000000000000000000 + 0000CAB29FD5A17E61F400000000000000000000000000000000CAB29FD5A17E + 61F400000000000000000000000000000000CAB29FD5A17E61F4000000000000 + 00000000000000000000CAB29FD5A17E61F40000000000000000000000000000 + 0000CAB29FD5A17E61F400000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 + 0000000001FFFF800000000001FFFF800000000001FFFF800000000001FFFF80 + 0000000001FFFF800000000001FFFF800000000001FFFF800000000001FFFF80 + 0000000001FFFF800000000001FFFF800000000001FFFF800000000001FFFF80 + 0000000001FFFF800000000001FFFF800000000001FFFF800000000001FFFF80 + 0000000001FFFF800000000001FFFF800000000001FFFF800000000001FFFF80 + 0000000001FFFF800000000001FFFF800000000001FFFF800000000001FFFF80 + 0000000001FFFF800000000001FFFF800000000001FFFF800000000001FFFF80 + 0000000001FFFF800000000001FFFF800000000001FFFF800000000001FFFF80 + 0000000001FFFF800000000001FFFF800000000001FFFF800000000001FFFF80 + 0000000001FFFF800000000001FFFF800000000001FFFF800000000001FFFF80 + 0000000001FFFF800000000001FFFF800000000001FFFF800000000001FFFF80 + 0000000001FFFF800000000001FFFF800000000001FFFF800000000001FFFF80 + 0000000001FFFF800000000001FFFF800000000001FFFF800000000001FFFF80 + 0000000001FFFF800000000001FFFFF9E79E79E79FFFFFF9E79E79E79FFFFFF9 + E79E79E79FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2800 + 0000300000006000000001002000000000008025000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFAEFE5FFF6E5D5FFF6E5D5FFF6E5D5FFF6E5D5FFF0D4B9FFF6E5 + D5FFF6E5D5FFF6E5D5FFF6E5D5FFF6E5D4FFF6E5D4FFF6E5D4FFF6E5D4FFF6E5 + D4FFF6E5D4FFF6E5D4FFF6E5D4FFF6E5D4FFF6E5D4FFF6E5D4FF8C83B9FF7971 + B5FFF6E5D4FFF6E5D4FFF6E5D4FFF5E4D4FF645EAFFFA197BFFFF6E5D4FFF6E5 + D4FFF6E5D4FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFAF0E6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF0D4B9FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFB5AAC5FF0D0E99FF0D0E + 99FF7972B5FFF6E6D6FFF5E5D6FF625DAFFF0D0E99FF0E0F9AFFD0C3CCFFF6E5 + D5FFF6E5D5FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFBF1E8FFF7E7D7FFF7E7D7FFF7E7D7FFF7E7D7FFF0D4B9FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E6D7FFF6E6D7FFF6E6D7FFF6E6D7FFF5E5D7FF645EB0FF0D0E + 99FF0D0E99FF7871B6FF625DB0FF0D0E99FF0D0E99FF8A82BBFFF6E6D7FFF6E6 + D7FFF6E6D7FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF7E6D7FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFEFD3B9FF6158 + A5FF0D0E99FF0D0E99FF0D0E99FF0D0E99FF8778AAFFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFBF2EBFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF0D4B9FFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF5E6 + D9FF2C2BA2FF0D0E99FF0D0E99FF4744A9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFBF3ECFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF0D4B9FFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF6E8DBFF625E + B1FF0D0E99FF0D0E99FF0D0E99FF0D0E99FF7973B8FFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DAFF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF8E9DAFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFEFD3B9FF6056A5FF0D0E + 99FF0D0E99FF8678AAFF6158A5FF0D0E99FF0D0E99FF766AA8FFF0D4B9FFF0D4 + B9FFF0D4B9FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFCF5EEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF0D4B9FFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EA + DEFFF8EADEFFF8EADEFFF8EADEFFF8EADEFFF8EADEFFB5ABCBFF0D0E99FF0D0E + 99FF8B84BEFFF8EADEFFF7E9DDFF6460B3FF0D0E99FF12139BFFD2C6D2FFF8EA + DDFFF8EADDFF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFCF6EFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF0D4B9FFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFF8F88C0FF8B85 + BFFFF8EBDFFFF8EBDFFFF8EBDFFFF7EADFFF6A65B5FFAFA7CAFFF8EBDFFFF8EB + DFFFF8EBDFFF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF8EBDEFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFDF7F2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF0D4B9FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE1FFF9EDE1FFF9EDE1FFF9EDE1FFF9ED + E1FFF9EDE1FFF9EDE1FFF9EDE1FFF9EDE1FFF9EDE1FFF9EDE1FFF9EDE1FFF9ED + E1FFF9EDE1FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFDF8F3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF0D4B9FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFB5D0AAFFAACBA1FFE2E4CFFFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF9EDE1FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF9DB8 + 80FF138821FF128720FF459943FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009C7858FFFDF9F5FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE6FFF0D4B9FFFAEF + E6FFFAEFE6FFFAEFE6FFFAEFE6FFFAEFE5FFFAEFE5FFFAEFE5FFFAEFE5FFFAEF + E5FFFAEFE5FFFAEFE5FFFAEFE5FFFAEFE5FFFAEFE5FFFAEFE5FFA3C99CFF1388 + 21FF128720FF128720FF128720FFA5C99DFFF9EFE5FFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FF9C7858FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009D7959FFFEFAF6FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFF0D4B9FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFBED5B4FF138821FF1287 + 20FF56A65AFF67AD68FF128720FF269031FFEEEBDCFFFAF0E7FFFAF0E7FFFAF0 + E6FFFAF0E6FF9D7959FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009E7A5AFFFAEFE5FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFEBD3B6FF559E4EFF539E + 4DFFEBD3B6FFDDCEACFF208C29FF128720FF71A861FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FF9E7A5AFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A07C5BFFFEFBF8FFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFF0D4B9FFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2 + E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFF5F0E5FFF5F0 + E5FFFAF2E9FFFAF2E9FF99C595FF128720FF158923FFD2E0C7FFFAF2E9FFFAF2 + E9FFFAF2E9FFA07C5BFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A17D5CFFFEFBF9FFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFF0D4B9FFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF2 + EAFFFBF2EAFFFBF2EAFFFAF2E9FF3C9A44FF128720FF48A04FFFFBF2EAFFFBF2 + EAFFFBF2EAFFA17D5CFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A37E5DFFFBF1E8FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFC1C499FF138821FF128720FF9FB881FFF0D4 + B9FFF0D4B9FFA37E5DFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A47F5EFFFEFCFAFFFBF4EEFFFBF4EEFFFBF4EEFFFBF4EEFFF0D4B9FFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFF6BB16EFF128720FF4EA355FFFBF4 + EDFFFBF4EDFFA47F5EFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5815FFFFFFDFBFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFF0D4B9FFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5 + EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EEFFE7ECDDFF93C492FFF8F4EBFFFBF5 + EEFFFBF5EEFFA5815FFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A78260FFFBF3ECFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFD6CBA7FFD5CBA7FFEFD4B8FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFA78260FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A88361FFFFFDFCFFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFF0D4B9FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7 + F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF6F1FFC7DD + C2FF1D8C29FF128720FF67B06CFFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFA88361FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A98562FFFFFEFDFFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFF0D4B9FFFCF8 + F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7 + F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F2FFFCF7F2FFFCF7F2FFC7DEC2FF1D8C + 2AFF128720FF128720FF128720FFC6DDC2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFA98562FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AB8663FFFCF6F0FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFC2C499FF1C8B27FF1287 + 20FF2C9032FF409740FF128720FF38943AFFEDD3B7FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFAB8663FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AC8764FFFFFEFEFFFDF9F6FFFDF9F5FFFDF9F5FFFDF9F5FFF0D4B9FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFEBF0E5FF399A44FF2D94 + 39FFE2ECDCFFD5E6D1FF158923FF128720FF99C99AFFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFAC8764FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AE8965FFFFFFFEFFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFF0D4B9FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFEBF1E6FFE2ED + DDFFFDFAF6FFFDFAF6FF78B97DFF128720FF1F8D2BFFE9F1E4FFFDFAF6FFFDFA + F6FFFDFAF6FFAE8965FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AF8A66FFFDF8F3FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFE4D0B1FF258E2DFF128720FF63A358FFF0D4B9FFF0D4 + B9FFF0D4B9FFAF8A66FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B08B67FFFFFFFFFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFF0D4B9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFA8D1AAFF128720FF128720FFC8E1C7FFFEFB + F9FFFEFBF9FFB08B67FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B28C68FFFFFFFFFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFF0D4B9FFFEFC + FBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFF4AA354FF128720FF429F4CFFFEFC + FAFFFEFCFAFFB28C68FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B38E69FFFEFAF7FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFCAC79FFF5AA052FFD5CBA7FFF0D4 + B9FFF0D4B9FFB38E69FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B48F6AFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFE + FDFFFEFDFDFFB48F6AFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B6906BFFFFFFFFFFFFFFFFFFFBF3EBFFF2D9C1FFF2D9C1FFFBF3EBFFFFFF + FFFFFBF3EAFFF2D9C1FFF2D9C1FFFBF3EBFFFFFFFEFFFBF3EAFFF2D9C1FFF2D9 + C1FFFBF3EBFFFFFFFEFFFBF3EAFFF2D9C1FFF2D9C1FFFBF2EBFFFFFEFEFFFBF2 + EAFFF2D9C1FFF2D9C1FFFBF2EBFFFFFEFEFFFBF2EAFFF2D9C1FFF2D9C1FFFBF2 + EBFFFFFEFEFFB6906BFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B7916CFFFFFFFFFFFFFFFFFFF2D9C0FFC5AB94FFA17E5FFFF2D9C1FFFFFF + FFFFF2D9C0FFC5AB94FFA17E5FFFF2D9C1FFFFFFFFFFF2D9C0FFC5AB94FFA17E + 5FFFF2D9C1FFFFFFFFFFF2D9C0FFC5AB94FFA17E5FFFF2D9C1FFFFFFFFFFF2D9 + C0FFC5AB94FFA17E5FFFF2D9C1FFFFFFFFFFF2D9C0FFC5AB94FFA17E5FFFF2D9 + C1FFFFFFFFFFB7916CFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B8936DFFFFFFFFFFFFFFFFFFF2D9C0FFBFA691FF9A7657FFF2D9C1FFFFFF + FFFFF2D9C0FFBFA691FF9A7657FFF2D9C1FFFFFFFFFFF2D9C0FFBFA691FF9A76 + 57FFF2D9C1FFFFFFFFFFF2D9C0FFBFA691FF9A7657FFF2D9C1FFFFFFFFFFF2D9 + C0FFBFA691FF9A7657FFF2D9C1FFFFFFFFFFF2D9C0FFBFA691FF9A7657FFF2D9 + C1FFFFFFFFFFB8936DFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BA946EFFFFFFFFFFFFFFFFFFFBF3EBFFCBB5A1FF9A7657FFFBF3EBFFFFFF + FFFFFBF3EBFFCBB5A1FF9A7657FFFBF3EBFFFFFFFFFFFBF3EBFFCBB5A1FF9A76 + 57FFFBF3EBFFFFFFFFFFFBF3EBFFCBB5A1FF9A7657FFFBF3EBFFFFFFFFFFFBF3 + EBFFCBB5A1FF9A7657FFFBF3EBFFFFFFFFFFFBF3EBFFCBB5A1FF9A7657FFFBF3 + EBFFFFFFFFFFBA946EFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BB956FFFBB956FFFBB956FFFBB956FFFD8C3B0FF9A7657FFBB956FFFBB95 + 6FFFBB956FFFD8C3B0FF9A7657FFBB956FFFBB956FFFBB956FFFD8C3B0FF9A76 + 57FFBB956FFFBB956FFFBB956FFFD8C3B0FF9A7657FFBB956FFFBB956FFFBB95 + 6FFFD8C3B0FF9A7657FFBB956FFFBB956FFFBB956FFFD8C3B0FF9A7657FFBB95 + 6FFFBB956FFFBB956FFF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CCB5A1FF9A7657FF000000000000 + 000000000000CCB5A1FF9A7657FF000000000000000000000000CCB5A1FF9A76 + 57FF000000000000000000000000CCB5A1FF9A7657FF00000000000000000000 + 0000CCB5A1FF9A7657FF000000000000000000000000CCB5A1FF9A7657FF0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BFA791FF9A7657FF000000000000 + 000000000000BFA791FF9A7657FF000000000000000000000000BFA791FF9A76 + 57FF000000000000000000000000BFA791FF9A7657FF00000000000000000000 + 0000BFA791FF9A7657FF000000000000000000000000BFA791FF9A7657FF0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B99F89C79C795AF1000000000000 + 000000000000B99F89C79C795AF1000000000000000000000000B99F89C79C79 + 5AF1000000000000000000000000B99F89C79C795AF100000000000000000000 + 0000B99F89C79C795AF1000000000000000000000000B99F89C79C795AF10000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FE000000007F0000FE00 + 0000007F0000FE000000007F0000FE000000007F0000FE000000007F0000FE00 + 0000007F0000FE000000007F0000FE000000007F0000FE000000007F0000FE00 + 0000007F0000FE000000007F0000FE000000007F0000FE000000007F0000FE00 + 0000007F0000FE000000007F0000FE000000007F0000FE000000007F0000FE00 + 0000007F0000FE000000007F0000FE000000007F0000FE000000007F0000FE00 + 0000007F0000FE000000007F0000FE000000007F0000FE000000007F0000FE00 + 0000007F0000FE000000007F0000FE000000007F0000FE000000007F0000FE00 + 0000007F0000FE000000007F0000FE000000007F0000FE000000007F0000FE00 + 0000007F0000FE000000007F0000FE000000007F0000FE000000007F0000FE00 + 0000007F0000FE000000007F0000FE000000007F0000FE000000007F0000FFE7 + 39CE73FF0000FFE739CE73FF0000FFE739CE73FF0000FFFFFFFFFFFF0000FFFF + FFFFFFFF00002800000028000000500000000100200000000000401A00000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A76 + 57FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFBF1E9FFF7E7D9FFF7E7D9FFF0D4B9FFF7E7D9FFF7E7D9FFF7E7 + D9FFF7E7D9FFF7E7D9FFF7E7D9FFF7E7D9FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7 + D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7 + D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFBF2EAFFF7E8DAFFF7E8DAFFF0D4B9FFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFCEC2CFFF625DB1FFF2E3D8FFF7E8D9FFF7E8D9FFB2A8 + C6FF6A64B3FFF6E7D9FFF7E8D9FFF7E8D9FFF7E8D9FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF7E7D8FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FF4740A1FF0D0E99FF5048A3FFEBD0B8FFAD9AB0FF1212 + 9AFF0E0F99FFBBA6B2FFF0D4B9FFF0D4B9FFF0D4B9FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFCF4EDFFF8EADDFFF8EADDFFF0D4B9FFF8EADCFFF8EADCFFF8EA + DCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EADCFFF8EA + DCFFF8EADCFFF8EADCFFE6D9D7FF3635A5FF0D0E99FF3D3CA7FF12139BFF0E0F + 9AFF9F96C3FFF8EADCFFF7E9DCFFF7E9DCFFF7E9DCFF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFCF5EEFFF8EBDEFFF8EBDEFFF0D4B9FFF8EBDEFFF8EBDEFFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EADEFFF8EADEFFF8EADEFFF8EA + DEFFF8EADEFFF8EADEFFF8EADEFFE6D9D9FF2A29A2FF0D0E99FF0D0E99FF9C93 + C3FFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF8E9DCFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFB5A1B1FF12129AFF0D0E99FF0D0E99FF5048 + A3FFEBD0B8FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFCF6F1FFF8ECE1FFF8ECE1FFF0D4B9FFF8ECE1FFF8ECE1FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFBFB6CFFF18189CFF0E0F9AFF948DC2FF3635A6FF0D0E + 99FF524FAEFFF3E7DFFFF8ECE0FFF8ECE0FFF8ECE0FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFDF7F2FFF9EDE2FFF9EDE2FFF0D4B9FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE1FFF9EDE1FF5D5AB2FF0E0F9AFF9F98C6FFF9EDE1FFE7DCDCFF3635 + A6FF12139BFFC5BCD2FFF9EDE1FFF9EDE1FFF9EDE1FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFF9ECDFFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFEBD0B8FFB19DB0FFF0D4B9FFF0D4B9FFF0D4B9FFDFC5 + B7FFB39FB1FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009A7657FFFDF8F3FFF9EFE4FFF9EFE4FFF0D4B9FFF9EFE4FFF9EFE4FFF9EF + E4FFF9EFE4FFF9EFE4FFF9EFE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FF9A7657FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009C7858FFFDF9F5FFFAEFE6FFFAEFE6FFF0D4B9FFFAEFE6FFFAEFE6FFFAEF + E6FFFAEFE5FFFAEFE5FFFAEFE5FFFAEFE5FFFAEFE5FFFAEFE5FFFAEFE5FFFAEF + E5FFFAEFE5FFFAEFE5FFFAEFE5FFFAEFE5FFD9E1C9FFD7E0C8FFF8EFE4FFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FF9C7858FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009D7959FFF9EEE3FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFBEC396FF1E8B28FF128720FF93B479FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF9D7959FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00009E7A5AFFFEFAF6FFFAF1E8FFFAF1E8FFF0D4B9FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFC5D9BBFF1E8D2BFF128720FF138821FF208E2CFFE6E8 + D7FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FF9E7A5AFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A07C5BFFFEFBF8FFFAF2EAFFFAF2EAFFF0D4B9FFFAF2EAFFFAF2EAFFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2E9FFFAF2E9FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FF53A559FF128720FF8FC18CFF7CB87BFF128720FF6AB0 + 6CFFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFA07C5BFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A17D5CFFFAF0E6FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFE6D1B2FFA0B882FFF0D4B9FFE6D1B2FF288F2FFF1388 + 21FFC1C499FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFA17D5CFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A37E5DFFFEFCF9FFFBF4ECFFFBF4ECFFF0D4B9FFFBF4ECFFFBF4ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFACCEA7FF1287 + 20FF3C9B45FFFAF3EBFFFBF3ECFFFBF3ECFFFBF3ECFFA37E5DFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A47F5EFFFEFCFAFFFBF4EEFFFBF4EEFFF0D4B9FFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFF4BA2 + 52FF128720FF99C797FFFBF4EDFFFBF4EDFFFBF4EDFFA47F5EFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A5815FFFFBF2EAFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFCDC8 + A1FF158822FF559E4EFFF0D4B9FFF0D4B9FFF0D4B9FFA5815FFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A78260FFFFFDFBFFFCF6F0FFFCF6F0FFF0D4B9FFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6 + F0FFCCDFC5FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFA78260FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000A88361FFFFFDFCFFFCF7F2FFFCF7F2FFF0D4B9FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7 + F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF6F1FF8FC290FF75B678FFE3EADAFFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFA88361FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AA8562FFFCF4EDFFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FF75AA64FF128720FF128720FF5BA052FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFAA8562FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AB8663FFFFFEFDFFFDF8F4FFFDF8F4FFF0D4B9FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FF7BBA7FFF128720FF249030FF2F953AFF128720FFBEDA + BBFFFDF8F4FFFDF8F3FFFDF8F3FFFDF8F3FFFDF8F3FFAB8663FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AC8764FFFFFEFDFFFDF9F5FFFDF9F5FFF0D4B9FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FF94C696FF249030FFD6E6D1FFB9D8B7FF128720FF3397 + 3EFFF8F7F0FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFAC8764FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AE8965FFFCF7F1FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFE0CFAEFFF0D4B9FFF0D4B9FF549E4DFF1287 + 20FF88B071FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFAE8965FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000AF8A66FFFFFFFEFFFEFBF8FFFEFBF8FFF0D4B9FFFEFBF8FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFE2EDDFFF198B + 26FF1B8C28FFE4EEE1FFFDFAF8FFFDFAF8FFFDFAF8FFAF8A66FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B08B67FFFFFFFFFFFEFCFAFFFEFCFAFFF0D4B9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FF8BC3 + 90FF128720FF60AD67FFFEFBF9FFFEFBF9FFFEFBF9FFB08B67FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B28C68FFFDF9F4FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFE9D2 + B4FF499A46FFA3B984FFF0D4B9FFF0D4B9FFF0D4B9FFB28C68FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B38E69FFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFB38E69FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B48F6AFFFFFEFDFFFFFEFDFFFBF2E9FFF2D9C1FFF2D9C1FFFBF2E9FFFFFE + FDFFFBF2E9FFF2D9C1FFF2D9C1FFFBF2E9FFFFFEFDFFFBF2E9FFF2D9C1FFF2D9 + C1FFFBF2E9FFFFFEFDFFFBF2E9FFF2D9C1FFF2D9C1FFFBF2E9FFFFFEFDFFFBF2 + E9FFF2D9C1FFF2D9C1FFFBF2E9FFFFFEFDFFFFFEFDFFB48F6AFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B6906BFFFFFFFFFFFFFFFFFFF2D9C1FFD5C1AEFFA48264FFF2D9C1FFFFFF + FEFFF2D9C1FFD5C1AEFFA48264FFF2D9C1FFFFFFFEFFF2D9C1FFD5C1AEFFA482 + 64FFF2D9C1FFFFFEFEFFF2D9C1FFD5C1AEFFA48264FFF2D9C1FFFFFEFEFFF2D9 + C1FFD5C1AEFFA48264FFF2D9C1FFFFFEFEFFFFFEFEFFB6906BFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B7916CFFFFFFFFFFFFFFFFFFF2D9C1FFD2C0B0FF9A7657FFF2D9C1FFFFFF + FFFFF2D9C1FFD2C0B0FF9A7657FFF2D9C1FFFFFFFFFFF2D9C1FFD2C0B0FF9A76 + 57FFF2D9C1FFFFFFFFFFF2D9C1FFD2C0B0FF9A7657FFF2D9C1FFFFFFFFFFF2D9 + C1FFD2C0B0FF9A7657FFF2D9C1FFFFFFFFFFFFFFFFFFB7916CFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000B8936DFFFFFFFFFFFFFFFFFFFBF3EBFFD2C0B0FF9A7657FFFBF3EBFFFFFF + FFFFFBF3EBFFD2C0B0FF9A7657FFFBF3EBFFFFFFFFFFFBF3EBFFD2C0B0FF9A76 + 57FFFBF3EBFFFFFFFFFFFBF3EBFFD2C0B0FF9A7657FFFBF3EBFFFFFFFFFFFBF3 + EBFFD2C0B0FF9A7657FFFBF3EBFFFFFFFFFFFFFFFFFFB8936DFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000BA946EFFBA946EFFBA946EFFBA946EFFDAC8B8FF9A7657FFBA946EFFBA94 + 6EFFBA946EFFDAC8B8FF9A7657FFBA946EFFBA946EFFBA946EFFDAC8B8FF9A76 + 57FFBA946EFFBA946EFFBA946EFFDAC8B8FF9A7657FFBA946EFFBA946EFFBA94 + 6EFFDAC8B8FF9A7657FFBA946EFFBA946EFFBA946EFFBA946EFF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000E2D1C1FF9A7657FF000000000000 + 000000000000E2D1C1FF9A7657FF000000000000000000000000E2D1C1FF9A76 + 57FF000000000000000000000000E2D1C1FF9A7657FF00000000000000000000 + 0000E2D1C1FF9A7657FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CDBCABC5A07E61F0000000000000 + 000000000000CDBCABC5A07E61F0000000000000000000000000CDBCABC5A07E + 61F0000000000000000000000000CDBCABC5A07E61F000000000000000000000 + 0000CDBCABC5A07E61F000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFFF000000F80000001F000000F800 + 00001F000000F80000001F000000F80000001F000000F80000001F000000F800 + 00001F000000F80000001F000000F80000001F000000F80000001F000000F800 + 00001F000000F80000001F000000F80000001F000000F80000001F000000F800 + 00001F000000F80000001F000000F80000001F000000F80000001F000000F800 + 00001F000000F80000001F000000F80000001F000000F80000001F000000F800 + 00001F000000F80000001F000000F80000001F000000F80000001F000000F800 + 00001F000000F80000001F000000F80000001F000000F80000001F000000F800 + 00001F000000F80000001F000000F80000001F000000F80000001F000000F800 + 00001F000000F80000001F000000F80000001F000000FF9CE739FF000000FF9C + E739FF000000FFFFFFFFFF000000280000002000000040000000010020000000 + 0000801000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA85 + 63FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA85 + 63FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA85 + 63FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFCF4EDFFF7E7D9FFF7E7D9FFF0D4B9FFF7E7D9FFF7E7 + D9FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7 + D8FFB1A6C5FFF7E7D8FFF7E7D8FFF7E7D8FFB1A6C5FFF7E7D8FFF7E7D8FFF7E7 + D8FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFCF5EFFFF7E8DAFFF7E8DAFFF0D4B9FFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFB2A8 + C7FF0D0E99FF766FB6FFF7E8DAFF766FB6FF0D0E99FFB2A8C7FFF7E8DAFFF7E8 + DAFFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FF7266A7FF0D0E99FF3A359FFF0D0E99FF7266A7FFF0D4B9FFF0D4B9FFF0D4 + B9FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFDF8F4FFF8EADEFFF8EADEFFF0D4B9FFF8EADEFFF8EA + DEFFF8EADEFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFF3C3AA7FF0D0E99FF3C3AA7FFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFDF9F5FFF8EBDFFFF8EBDFFFF0D4B9FFF8EBDFFFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFF7671B9FF0D0E99FF3C3AA7FF0D0E99FF7671B9FFF8EBDFFFF8EBDFFFF8EB + DFFFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFB7A2 + B1FF0D0E99FF7266A7FFF0D4B9FF7266A7FF0D0E99FFB7A2B1FFF0D4B9FFF0D4 + B9FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFEFBF9FFF9EDE2FFF9EDE2FFF0D4B9FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFBCB3CFFFF9EDE2FFF9EDE2FFF9EDE2FFBCB3CFFFF9EDE2FFF9EDE2FFF9ED + E2FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFEFCFAFFF9EEE4FFF9EEE4FFF0D4B9FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFEFD4B8FF73A962FF71A861FFEFD4B8FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFFFEFDFFFAF0E7FFFAF0E7FFF0D4B9FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFF9F0 + E6FF67AD68FF128720FF128720FF9EC798FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0 + E7FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFFFEFEFFFAF2E9FFFAF2E9FFF0D4B9FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFB8D3 + B0FF128720FF91C18EFF4BA151FF228F2EFFEAEADBFFFAF1E9FFFAF1E9FFFAF1 + E8FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFC1C499FFF0D4B9FFCDC8A1FF158822FF68A55BFFF0D4B9FFF0D4B9FFF0D4 + B9FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFFFFFFFFFBF4ECFFFBF4ECFFF0D4B9FFFBF4ECFFFBF4 + ECFFFBF4ECFFFBF4ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFF7CB87DFF138821FFCCDDC3FFFBF3ECFFFBF3 + ECFFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFFFFFFFFFBF5EEFFFBF5EEFFF0D4B9FFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF4EEFFFBF4EEFFFBF4EEFFFBF4EEFFFBF4 + EEFFFBF4EEFFFBF4EEFFFBF4EEFFF0EFE5FF299235FF58A85EFFFBF4EEFFFBF4 + EDFFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFC4C59AFFE6D1B2FFF0D4B9FFF0D4 + B9FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFFFFFFFFFCF7F1FFFCF7F1FFF0D4B9FFFCF7F1FFFCF7 + F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFF7F4ECFF65AF6AFF62AD67FFF9F5EEFFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFFFFFFFFFCF8F3FFFCF8F3FFF0D4B9FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7F3FFF7F5 + EEFF57A85EFF138821FF128720FF92C493FFFCF7F3FFFCF7F3FFFCF7F3FFFCF7 + F3FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFB7C0 + 91FF158822FF9CB77FFF549E4DFF1C8B27FFDACCAAFFF0D4B9FFF0D4B9FFF0D4 + B9FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFFFFFFFFFDFAF6FFFDFAF6FFF0D4B9FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9 + F6FFDDEAD9FFFDF9F6FFE2ECDDFF198B26FF62AE69FFFDF9F6FFFDF9F6FFFDF9 + F6FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFFFFFFFFFDFBF8FFFDFBF8FFF0D4B9FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFA + F8FFFDFAF8FFFDFAF8FFFDFAF8FF8BC28FFF128720FFC3DEC3FFFDFAF8FFFDFA + F8FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFE9D2B4FF319235FF559E4EFFF0D4B9FFF0D4 + B9FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFFFFFFFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFC + FBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFDBEBDBFFF9FAF6FFFEFCFBFFFEFC + FBFFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFFFFFFFFFFFEFDFFC8B4A3FFB99F89FFFFFEFDFFFFFE + FDFFC8B4A3FFB89E88FFFFFEFDFFFFFEFDFFC8B4A3FFB89E88FFFEFDFDFFFEFD + FDFFC8B4A3FFB89E88FFFEFDFDFFFEFDFDFFC8B4A3FFB89E88FFFEFDFDFFFEFD + FDFFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFFFFFFFFFFFFFFEFFC0A893FFAF9075FFFFFFFEFFFFFF + FEFFC0A893FFAF9075FFFFFFFEFFFFFFFEFFC0A893FFAF9075FFFFFEFEFFFFFE + FEFFC0A893FFAF9075FFFFFEFEFFFFFEFEFFC0A893FFAF9075FFFFFEFEFFFFFE + FEFFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000AA8563FFAA8563FFAA8563FFD0BBA7FFC4A992FFAA8563FFAA85 + 63FFD0BBA7FFC4A992FFAA8563FFAA8563FFD0BBA7FFC4A992FFAA8563FFAA85 + 63FFD0BBA7FFC4A992FFAA8563FFAA8563FFD0BBA7FFC4A992FFAA8563FFAA85 + 63FFAA8563FF0000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D0BBA7FFC4A992FF000000000000 + 0000D0BBA7FFC4A992FF0000000000000000D0BBA7FFC4A992FF000000000000 + 0000D0BBA7FFC4A992FF0000000000000000D0BBA7FFC4A992FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C0A893FFAF9075FF000000000000 + 0000C0A893FFAF9075FF0000000000000000C0A893FFAF9075FF000000000000 + 0000C0A893FFAF9075FF0000000000000000C0A893FFAF9075FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000B8A089C3A38367C3000000000000 + 0000B8A089C3A38367C30000000000000000B8A089C3A38367C3000000000000 + 0000B8A089C3A38367C30000000000000000B8A089C3A38367C3000000000000 + 00000000000000000000000000000000000000000000FFFFFFFFF000000FF000 + 000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000 + 000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000 + 000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000 + 000FF000000FF000000FFE66667FFE66667FFE66667F28000000180000003000 + 0000010020000000000060090000000000000000000000000000000000000000 + 00000000000000000000AA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA85 + 63FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA85 + 63FFAA8563FFAA8563FFAA8563FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBEBF7FFFEFEFFFFFFFF + FFFFF0F0F9FFFEFEFFFFFFFFFFFFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFF9EDE2FFF9EDE2FFF0D4B9FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FF4644ABFF6561B4FFE6DB + DDFF3433A5FF928CC2FFF9EDE2FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFF9EEE4FFF9EEE4FFF0D4B9FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFDCD2DBFF2626A1FF1B1C + 9EFF524FAFFFF4E9E3FFF9EEE4FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFDFC5B7FF2E2B9EFF1414 + 9AFF5F56A5FFEFD3B9FFF0D4B9FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFFAF0E7FFFAF0E7FFF0D4B9FFFAF0E7FFFAF0 + E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FF4746ACFF5350B0FFD8D0 + DDFF2928A2FF8C87C3FFFAF0E7FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFD1B9B5FFEBD0B8FFF0D4 + B9FFD6BDB5FFE6CBB8FFF0D4B9FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFFBF3EBFFFBF3EBFFF0D4B9FFFBF3EBFFFBF2 + EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFFBF2EAFFE3E7D5FFE2E7 + D4FFFBF2EAFFFBF2EAFFFBF2EAFFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFC9C79EFF238D2CFF2A90 + 30FFE8D1B3FFF0D4B9FFF0D4B9FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFFBF5EEFFFBF5EEFFF0D4B9FFFBF5EEFFFBF5 + EEFFFBF4EEFFFBF4EEFFFBF4EEFFFBF4EEFFFBF4EEFF4DA354FF7AB87CFF3A9A + 43FF80BB81FFFBF4EEFFFBF4EEFFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFE6D1B2FFF0D4B9FFC1C4 + 99FF198924FFD1C9A4FFF0D4B9FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFFCF7F1FFFCF7F1FFF0D4B9FFFCF7F1FFFCF7 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FF6BB16FFF51A558FFFCF6F1FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFDDCEACFFB6C091FFF0D4B9FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFFDF9F5FFFDF9F5FFF0D4B9FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFF8F6EFFF60AD67FF69B1 + 6EFFFDF8F4FFFDF8F4FFFDF8F4FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF58A050FF37943AFF1E8B + 28FFAEBD8BFFF0D4B9FFF0D4B9FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFFDFBF8FFFDFBF8FFF0D4B9FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFBFDCBFFFEBF1E7FF97C8 + 9AFF2D9539FFF6F7F2FFFDFAF8FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFEDD3 + B7FF38943AFF7EAD6AFFF0D4B9FFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFCFBFFFEFC + FBFFC6E0C7FF71B678FFFEFCFBFFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFFFFEFDFFD8CABDFFC8B4A3FFFFFEFDFFFFFE + FDFFD8CABDFFC8B4A3FFFEFDFDFFFEFDFDFFD8CABDFFC8B4A3FFFEFDFDFFFEFD + FDFFD8CABDFFC8B4A3FFFEFDFDFFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFFFFFFEFFD3C1B1FFC0A893FFFFFFFEFFFFFF + FEFFD3C1B1FFC0A893FFFFFEFEFFFFFEFEFFD3C1B1FFC0A893FFFFFEFEFFFFFE + FEFFD3C1B1FFC0A893FFFFFEFEFFAA8563FF0000000000000000000000000000 + 00000000000000000000AA8563FFAA8563FFDDCCBCFFD0BBA7FFAA8563FFAA85 + 63FFDDCCBCFFD0BBA7FFAA8563FFAA8563FFDDCCBCFFD0BBA7FFAA8563FFAA85 + 63FFDDCCBCFFD0BBA7FFAA8563FFAA8563FF0000000000000000000000000000 + 000000000000000000000000000000000000DDCCBCFFD0BBA7FF000000000000 + 0000DDCCBCFFD0BBA7FF0000000000000000DDCCBCFFD0BBA7FF000000000000 + 0000DDCCBCFFD0BBA7FF00000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CDBBABC3B8A089C3000000000000 + 0000CDBBABC3B8A089C30000000000000000CDBBABC3B8A089C3000000000000 + 0000CDBBABC3B8A089C30000000000000000000000000000000000000000E000 + 0700E0000700E0000700E0000700E0000700E0000700E0000700E0000700E000 + 0700E0000700E0000700E0000700E0000700E0000700E0000700E0000700E000 + 0700E0000700E0000700E0000700E0000700E0000700F9999F00F9999F002800 + 0000140000002800000001002000000000009006000000000000000000000000 + 0000000000000000000000000000AA8563FFAA8563FFAA8563FFAA8563FFAA85 + 63FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA85 + 63FFAA8563FFAA8563FFAA8563FF00000000000000000000000000000000AA85 + 63FFF7E9DAFFF7E9DAFFF0D4B9FFF7E9DAFFF7E9DAFFF7E9DAFFF7E9DAFFECDF + D7FF5C58AFFFDCD0D3FFE5D8D5FF5350ADFFDCD0D3FFF7E9DAFFAA8563FF0000 + 0000000000000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFCEB7B4FF1E1D9CFF25239DFF302D9EFF1212 + 9AFFB19DB0FFF0D4B9FFAA8563FF00000000000000000000000000000000AA85 + 63FFF8EBDFFFF8EBDFFFF0D4B9FFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFFC2B8D0FF10119AFF0D0E99FFA098C5FFF8EBDFFFF8EBDFFFAA8563FF0000 + 0000000000000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFDFC5B7FF35319FFF11119AFF19189BFF2725 + 9DFFD6BDB5FFF0D4B9FFAA8563FF00000000000000000000000000000000AA85 + 63FFF9EEE3FFF9EEE3FFF0D4B9FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFDCD2 + DAFF2E2DA4FFB4ACCEFFD2C9D7FF2A2AA2FFC5BDD3FFF9EEE3FFAA8563FF0000 + 0000000000000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFEDD1B9FFF0D4B9FFF0D4B9FFECD0 + B9FFF0D4B9FFF0D4B9FFAA8563FF00000000000000000000000000000000AA85 + 63FFFAF1E7FFFAF1E7FFF0D4B9FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1 + E7FFDFE5D0FF3B9A43FF5EAA61FFFAF1E7FFFAF1E7FFFAF1E7FFAA8563FF0000 + 0000000000000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFE9D2B4FF2E9133FF198924FF128720FF9FB8 + 81FFF0D4B9FFF0D4B9FFAA8563FF00000000000000000000000000000000AA85 + 63FFFBF3ECFFFBF3ECFFF0D4B9FFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFAACEA5FFD0DFC7FF439E4BFF269031FFEFEDE1FFFBF3ECFFAA8563FF0000 + 0000000000000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFC6C69CFF1388 + 21FF73A962FFF0D4B9FFAA8563FF00000000000000000000000000000000AA85 + 63FFFCF6F0FFFCF6F0FFF0D4B9FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FF7AB87CFF84BD85FFFCF6F0FFAA8563FF0000 + 0000000000000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFD6CBA7FF39953BFF5BA052FFF0D4 + B9FFF0D4B9FFF0D4B9FFAA8563FF00000000000000000000000000000000AA85 + 63FFFDF9F5FFFDF9F5FFF0D4B9FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFF6F6 + EFFF2F953AFF198B26FF128720FFA7D0A7FFFDF9F5FFFDF9F5FFAA8563FF0000 + 0000000000000000000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFA3B984FFC7C69DFF419740FF258E + 2DFFE4D0B1FFF0D4B9FFAA8563FF00000000000000000000000000000000AA85 + 63FFFEFBF9FFFEFBF9FFF0D4B9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFD2E6D0FF138821FF79BA7EFFFEFBF9FFAA8563FF0000 + 0000000000000000000000000000AA8563FFFEFDFBFFFEFDFBFFF0D4B9FFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFF7BBC + 81FF85C18BFFFEFDFBFFAA8563FF00000000000000000000000000000000AA85 + 63FF6A523CFFFFFEFDFF6A523CFFFFFEFDFF6A523CFFFFFEFDFF6A523CFFFFFE + FDFF6A523CFFFFFEFDFF6A523CFFFFFEFDFF6A523CFFFFFEFDFFAA8563FF0000 + 0000000000000000000000000000AA8563FF6A523CFFAA8563FF6A523CFFAA85 + 63FF6A523CFFAA8563FF6A523CFFAA8563FF6A523CFFAA8563FF6A523CFFAA85 + 63FF6A523CFFAA8563FFAA8563FF000000000000000000000000000000000000 + 00006A523CFF000000006A523CFF000000006A523CFF000000006A523CFF0000 + 00006A523CFF000000006A523CFF000000006A523CFF00000000000000000000 + 000000000000C0003000C0003000C0003000C0003000C0003000C0003000C000 + 3000C0003000C0003000C0003000C0003000C0003000C0003000C0003000C000 + 3000C0003000C0003000C0003000C0003000EAAAF00028000000100000002000 + 0000010020000000000040040000000000000000000000000000000000000000 + 000000000000AA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA85 + 63FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FFAA8563FF000000000000 + 000000000000AA8563FFF8EBDFFFF0D4B9FFF8EBDFFFF8EBDFFFF8EBDFFFEDE1 + DCFFBCB3CDFFF8EBDFFFEDE1DCFFC8BED1FFF8EBDFFFAA8563FF000000000000 + 000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FF6F63 + A7FF12129AFFA592AFFF403BA0FF1D1C9BFFE6CBB8FFAA8563FF000000000000 + 000000000000AA8563FFF9EEE3FFF0D4B9FFF9EEE3FFF9EEE3FFF9EEE3FFEEE4 + E0FF3F3EA9FF0E0F9AFF10119AFFB2ABCDFFF9EEE3FFAA8563FF000000000000 + 000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFE6CB + B8FF3E39A0FF0E0F99FF10109AFFAC98B0FFF0D4B9FFAA8563FF000000000000 + 000000000000AA8563FFFAF1E7FFF0D4B9FFFAF1E7FFFAF1E7FFFAF1E7FF7370 + BBFF12139BFFABA6CEFF4341ABFF1D1E9FFFEFE7E4FFAA8563FF000000000000 + 000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFE6CB + B8FFB6A2B1FFF0D4B9FFE6CBB8FFC2ACB3FFF0D4B9FFAA8563FF000000000000 + 000000000000AA8563FFFBF3ECFFF0D4B9FFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFE0E7D4FF8ABF89FFDCE5D1FFFBF3ECFFFBF3ECFFAA8563FF000000000000 + 000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFD6CB + A7FF2E9133FF128720FF419740FFEFD4B8FFF0D4B9FFAA8563FF000000000000 + 000000000000AA8563FFFCF6F0FFF0D4B9FFFCF6F0FFFCF6F0FFFCF6F0FFD5E4 + CDFF2F953AFF79B87BFF128720FFA3CCA1FFFCF6F0FFAA8563FF000000000000 + 000000000000AA8563FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4B9FFF0D4 + B9FFECD3B6FFEFD4B8FF419740FF258E2DFFE2CFB0FFAA8563FF000000000000 + 000000000000AA8563FFFDF9F5FFF0D4B9FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFD3E5CFFF138821FF9ECB9FFFAA8563FF000000000000 + 000000000000AA8563FFFDFAF7FFF0D4B9FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFD6E7D3FFFDFAF7FFAA8563FF000000000000 + 000000000000AA8563FFFEFBF9FF6A523CFFFEFBF9FF6A523CFFFEFBF9FF6A52 + 3CFFFEFBF9FF6A523CFFFEFBF9FF6A523CFFFEFBF9FFAA8563FF000000000000 + 000000000000AA8563FFAA8563FF6A523CFFAA8563FF6A523CFFAA8563FF6A52 + 3CFFAA8563FF6A523CFFAA8563FF6A523CFFAA8563FFAA8563FF000000000000 + 00000000000000000000000000006A523CFF000000006A523CFF000000006A52 + 3CFF000000006A523CFF000000006A523CFF000000000000000000000000C001 + 0000C0010000C0010000C0010000C0010000C0010000C0010000C0010000C001 + 0000C0010000C0010000C0010000C0010000C0010000C0010000F5570000} OldCreateOrder = False OnClose = FormClose PixelsPerInch = 96 diff --git a/source/forms/Login.cpp b/source/forms/Login.cpp index b5f86c1e..4690d97f 100644 --- a/source/forms/Login.cpp +++ b/source/forms/Login.cpp @@ -18,6 +18,7 @@ #include "Setup.h" #include "WinConfiguration.h" #include "ProgParams.h" +#include "WinApi.h" //--------------------------------------------------------------------- #pragma link "ComboEdit" #pragma link "PasswordEdit" @@ -36,7 +37,7 @@ const int SiteColorMaskImageIndex = 8; bool __fastcall DoLoginDialog(TStoredSessionList *SessionList, TList * DataList, int Options) { - assert(DataList != NULL); + DebugAssert(DataList != NULL); TLoginDialog * LoginDialog = SafeFormCreate(); bool Result; try @@ -59,7 +60,6 @@ __fastcall TLoginDialog::TLoginDialog(TComponent* AOwner) FNewSiteData = new TSessionData(L""); FInitialized = false; FOptions = loStartup; - FLocaleChanging = false; FHintNode = NULL; FScrollOnDragOver = new TTreeViewScrollOnDragOver(SessionTree, true); FDataList = NULL; @@ -72,23 +72,20 @@ __fastcall TLoginDialog::TLoginDialog(TComponent* AOwner) FForceNewSite = false; FLoading = false; FSortEnablePending = false; + FSiteSearch = ssSiteName; // we need to make sure that window procedure is set asap // (so that CM_SHOWINGCHANGED handling is applied) - UseSystemSettingsPre(this, &FSystemSettings); + UseSystemSettingsPre(this); - FOriginalSize = BoundsRect.GetSize(); FBasicGroupBaseHeight = BasicGroup->Height - BasicSshPanel->Height - BasicFtpPanel->Height; FNoteGroupOffset = NoteGroup->Top - (BasicGroup->Top + BasicGroup->Height); - InitControls(); + HideComponentsPanel(this); } //--------------------------------------------------------------------- __fastcall TLoginDialog::~TLoginDialog() { delete FScrollOnDragOver; - assert(FSystemSettings); - DeleteSystemSettings(this, FSystemSettings); - FSystemSettings = NULL; delete FNewSiteData; InvalidateSessionData(); } @@ -146,13 +143,19 @@ void __fastcall TLoginDialog::InitControls() FixButtonImage(LoginButton); CenterButtonImage(LoginButton); - // generate disabled button image - std::unique_ptr Bitmap(new TBitmap()); - Bitmap->SetSize(ActionImageList->Width, ActionImageList->Height); - ActionImageList->Draw(Bitmap->Canvas, 0, 0, LoginAction->ImageIndex, false); - // The Color 0 is a HACK - int DisabledImageIndex = ActionImageList->AddMasked(Bitmap.get(), TColor(0)); - LoginButton->DisabledImageIndex = DisabledImageIndex; + + SelectScaledImageList(SessionImageList); + SelectScaledImageList(ActionImageList); + + // Generate button images. + // The button does not support alpha channel, + // so we have to copy the PNG's to BMP's and use plain transparent color + FButtonImageList.reset(new TImageList(this)); + FButtonImageList->SetSize(ActionImageList->Width, ActionImageList->Height); + LoginButton->Images = FButtonImageList.get(); + + LoginButton->ImageIndex = AddLoginButtonImage(true); + LoginButton->DisabledImageIndex = AddLoginButtonImage(false); if (SessionTree->Items->Count > 0) { @@ -160,33 +163,49 @@ void __fastcall TLoginDialog::InitControls() } } //--------------------------------------------------------------------- -void __fastcall TLoginDialog::Init() +int __fastcall TLoginDialog::AddLoginButtonImage(bool Enabled) { - if (!FInitialized) - { - UseSystemSettingsPost(this, FSystemSettings); - } - else + std::unique_ptr Bitmap(new TBitmap()); + Bitmap->SetSize(ActionImageList->Width, ActionImageList->Height); + + ActionImageList->Draw(Bitmap->Canvas, 0, 0, LoginAction->ImageIndex, Enabled); + + const TColor TransparentColor = clFuchsia; + + // 16x16 version does not have any background + if (Bitmap->Canvas->Pixels[0][0] == clWhite) { - UseSystemSettings(this, &FSystemSettings); + // A background is white, but there's also white used on the image itself. + // So we first replace the background white with a unique color, + // setting it as a transparent later. + // This is obviously a hack specific to this particular image. + Bitmap->Canvas->Brush->Color = TransparentColor; + Bitmap->Canvas->FloodFill(0, 0, Bitmap->Canvas->Pixels[0][0], fsSurface); } + + return FButtonImageList->AddMasked(Bitmap.get(), TransparentColor); +} +//--------------------------------------------------------------------- +void __fastcall TLoginDialog::Init() +{ FInitialized = true; + UseSystemSettingsPost(this); Caption = FormatFormCaption(this, Caption); InitControls(); #ifdef NO_FILEZILLA - assert(TransferProtocolCombo->Items->Count == FSPROTOCOL_COUNT - 2 - 1); + DebugAssert(TransferProtocolCombo->Items->Count == FSPROTOCOL_COUNT - 2 - 1); TransferProtocolCombo->Items->Delete(TransferProtocolCombo->Items->Count - 1); #endif ReadOnlyControl(ContentsNameEdit); ReadOnlyControl(ContentsMemo); - if (ALWAYS_FALSE(SessionTree->Items->Count == 0) || + if (DebugAlwaysFalse(SessionTree->Items->Count == 0) || ((SessionTree->Items->Count == 1) && - ALWAYS_TRUE(IsNewSiteNode(SessionTree->Items->GetFirstNode()))) || + DebugAlwaysTrue(IsNewSiteNode(SessionTree->Items->GetFirstNode()))) || FForceNewSite) { ActiveControl = HostNameEdit; @@ -205,7 +224,7 @@ TTreeNode * __fastcall TLoginDialog::AddSessionPath(UnicodeString Path, TTreeNode * Parent = NULL; while (!Path.IsEmpty()) { - UnicodeString Folder = ::CutToChar(Path, L'/', false); + UnicodeString Folder = CutToChar(Path, L'/', false); TTreeNode * Node = ((Parent == NULL) ? SessionTree->Items->GetFirstNode() : Parent->getFirstChild()); // note that we allow folder with the same name as existing session @@ -292,7 +311,7 @@ bool __fastcall TLoginDialog::IsSessionNode(TTreeNode * Node) //--------------------------------------------------------------------- TSessionData * __fastcall TLoginDialog::GetNodeSession(TTreeNode * Node) { - return NOT_NULL(static_cast(Node->Data)); + return DebugNotNull(static_cast(Node->Data)); } //--------------------------------------------------------------------- TTreeNode * __fastcall TLoginDialog::AddSession(TSessionData * Data) @@ -339,7 +358,7 @@ void __fastcall TLoginDialog::DestroySession(TSessionData * Data) TTreeNode * __fastcall TLoginDialog::GetNewSiteNode() { TTreeNode * Result = SessionTree->Items->GetFirstNode(); - assert(IsNewSiteNode(Result)); + DebugAssert(IsNewSiteNode(Result)); return Result; } //--------------------------------------------------------------------- @@ -364,7 +383,7 @@ void __fastcall TLoginDialog::LoadSessions() SetNewSiteNodeLabel(); SetNodeImage(Node, NewSiteImageIndex); - assert(StoredSessions != NULL); + DebugAssert(StoredSessions != NULL); for (int Index = 0; Index < StoredSessions->Count; Index++) { AddSession(StoredSessions->Sessions[Index]); @@ -384,7 +403,7 @@ void __fastcall TLoginDialog::LoadSessions() //--------------------------------------------------------------------------- void __fastcall TLoginDialog::UpdateFolderNode(TTreeNode * Node) { - assert((Node->ImageIndex == 0) || + DebugAssert((Node->ImageIndex == 0) || (Node->ImageIndex == OpenFolderImageIndex) || (Node->ImageIndex == ClosedFolderImageIndex)); SetNodeImage(Node, (Node->Expanded ? OpenFolderImageIndex : ClosedFolderImageIndex)); } @@ -392,7 +411,7 @@ void __fastcall TLoginDialog::UpdateFolderNode(TTreeNode * Node) void __fastcall TLoginDialog::NewSite() { TTreeNode * NewSiteNode = GetNewSiteNode(); - if (ALWAYS_TRUE(IsNewSiteNode(NewSiteNode))) + if (DebugAlwaysTrue(IsNewSiteNode(NewSiteNode))) { SessionTree->Selected = NewSiteNode; } @@ -402,7 +421,7 @@ void __fastcall TLoginDialog::NewSite() //--------------------------------------------------------------------------- void __fastcall TLoginDialog::ResetNewSiteData() { - if (ALWAYS_TRUE(StoredSessions != NULL)) + if (DebugAlwaysTrue(StoredSessions != NULL)) { FNewSiteData->CopyData(StoredSessions->DefaultSettings); } @@ -424,7 +443,7 @@ void __fastcall TLoginDialog::LoadContents() LoadSession(SelectedSession); UseContentsPanel = false; } - else if (ALWAYS_TRUE(IsFolderOrWorkspaceNode(Node))) + else if (DebugAlwaysTrue(IsFolderOrWorkspaceNode(Node))) { UnicodeString NodePath = SessionNodePath(Node); ContentsNameEdit->Text = NodePath; @@ -436,7 +455,7 @@ void __fastcall TLoginDialog::LoadContents() { ContentsGroupBox->Caption = LoadStr(LOGIN_SITE_FOLDER_CAPTION); } - else if (ALWAYS_TRUE(IsWorkspaceNode(Node))) + else if (DebugAlwaysTrue(IsWorkspaceNode(Node))) { ContentsGroupBox->Caption = LoadStr(LOGIN_WORKSPACE_CAPTION); } @@ -471,7 +490,7 @@ void __fastcall TLoginDialog::LoadSession(TSessionData * SessionData) FtpsCombo->ItemIndex = FtpsIndex; WebDavsCombo->ItemIndex = FtpsIndex; EncryptionView->Text = - ALWAYS_TRUE(FtpsCombo->ItemIndex >= WebDavsCombo->ItemIndex) ? FtpsCombo->Text : WebDavsCombo->Text; + DebugAlwaysTrue(FtpsCombo->ItemIndex >= WebDavsCombo->ItemIndex) ? FtpsCombo->Text : WebDavsCombo->Text; bool AllowScpFallback; TransferProtocolCombo->ItemIndex = FSProtocolToIndex(SessionData->FSProtocol, AllowScpFallback); @@ -499,7 +518,7 @@ void __fastcall TLoginDialog::LoadSession(TSessionData * SessionData) else { // we should get here only when called from SessionAdvancedActionExecute - assert(Editable); + DebugAssert(Editable); } } __finally @@ -513,7 +532,7 @@ void __fastcall TLoginDialog::LoadSession(TSessionData * SessionData) void __fastcall TLoginDialog::SaveSession(TSessionData * SessionData) { // advanced - if (ALWAYS_TRUE(FSessionData != NULL)) + if (DebugAlwaysTrue(FSessionData != NULL)) { SessionData->Assign(FSessionData); } @@ -543,8 +562,7 @@ bool __fastcall TLoginDialog::IsEditable() //--------------------------------------------------------------------- void __fastcall TLoginDialog::UpdateControls() { - // without FLocaleChanging test, some button controls get lost, when changing language - if (Visible && FInitialized && !FLocaleChanging) + if (Visible && FInitialized) { bool Editable = IsEditable(); @@ -563,7 +581,7 @@ void __fastcall TLoginDialog::UpdateControls() BasicSshPanel->Visible = SshProtocol; BasicFtpPanel->Visible = FtpProtocol && Editable; // we do not support both at the same time - assert(!BasicSshPanel->Visible || !BasicFtpPanel->Visible); + DebugAssert(!BasicSshPanel->Visible || !BasicFtpPanel->Visible); BasicGroup->Height = FBasicGroupBaseHeight + (BasicSshPanel->Visible ? BasicSshPanel->Height : 0) + @@ -626,7 +644,7 @@ void __fastcall TLoginDialog::UpdateControls() //--------------------------------------------------------------------------- void __fastcall TLoginDialog::UpdateButtonVisibility(TButton * Button) { - TAction * Action = NOT_NULL(dynamic_cast(Button->Action)); + TAction * Action = DebugNotNull(dynamic_cast(Button->Action)); // when all action targets are hidden, action does not get updated, // so we need to do it manually Action->Update(); @@ -646,7 +664,7 @@ void __fastcall TLoginDialog::FormShow(TObject * /*Sender*/) // this is called twice on startup, first with ControlState = [csRecreating] // we should probably filter this out, it would avoid need for explicit // LoadContents call below - bool NeedInitialize = !FInitialized || FLocaleChanging; + bool NeedInitialize = !FInitialized; if (NeedInitialize) { Init(); @@ -666,19 +684,6 @@ void __fastcall TLoginDialog::FormShow(TObject * /*Sender*/) // Explicit call is needed, as we get here during csRecreating phase, // when SessionTreeChange is not triggered, see initial method comment LoadContents(); - - if (FLocaleChanging) - { - TTreeNode * Node = SessionTree->Items->GetFirstNode(); - while (Node != NULL) - { - if (IsSiteNode(Node)) - { - UpdateNodeImage(Node); - } - Node = Node->GetNext(); - } - } } UpdateControls(); } @@ -828,7 +833,7 @@ void __fastcall TLoginDialog::EditSession() //--------------------------------------------------------------------------- void __fastcall TLoginDialog::EditSessionActionExecute(TObject * /*Sender*/) { - if (ALWAYS_TRUE(SelectedSession != NULL)) + if (DebugAlwaysTrue(SelectedSession != NULL)) { FEditing = true; EditSession(); @@ -853,7 +858,7 @@ TTreeNode * __fastcall TLoginDialog::FindSessionNode(TSessionData * SessionData, //--------------------------------------------------------------------------- TSessionData * __fastcall TLoginDialog::GetEditingSessionData() { - return FEditing ? NOT_NULL(SelectedSession) : NULL; + return FEditing ? DebugNotNull(SelectedSession) : NULL; } //--------------------------------------------------------------------------- void __fastcall TLoginDialog::SaveAsSession(bool ForceDialog) @@ -950,15 +955,17 @@ UnicodeString __fastcall TLoginDialog::SessionNodePath(TTreeNode * Node) //--------------------------------------------------------------------------- void __fastcall TLoginDialog::DeleteSessionActionExecute(TObject * /*Sender*/) { - assert(SessionTree->Selected != NULL); + DebugAssert(SessionTree->Selected != NULL); + TMessageParams Params; + Params.ImageName = L"Delete file"; TTreeNode * Node = SessionTree->Selected; if (IsSiteNode(Node)) { TSessionData * Session = SelectedSession; UnicodeString Message = MainInstructions(FMTLOAD(CONFIRM_DELETE_SESSION, (Session->SessionName))); if (MessageDialog(Message, - qtConfirmation, qaOK | qaCancel, HELP_DELETE_SESSION) == qaOK) + qtConfirmation, qaOK | qaCancel, HELP_DELETE_SESSION, &Params) == qaOK) { WinConfiguration->DeleteSessionFromJumpList(Session->SessionName); Session->Remove(); @@ -1003,7 +1010,7 @@ void __fastcall TLoginDialog::DeleteSessionActionExecute(TObject * /*Sender*/) if ((Sessions == 0) || (MessageDialog(MainInstructions(FMTLOAD(Prompt, (Path, Sessions))), - qtConfirmation, qaOK | qaCancel, HelpKeyword) == qaOK)) + qtConfirmation, qaOK | qaCancel, HelpKeyword, &Params) == qaOK)) { if (IsWorkspaceNode(Node)) { @@ -1045,7 +1052,7 @@ void __fastcall TLoginDialog::ImportSessionsActionExecute(TObject * /*Sender*/) if (DoImportSessionsDialog(Imported.get())) { UnicodeString SelectSite; - if (ALWAYS_TRUE(Imported->Count > 0)) + if (DebugAlwaysTrue(Imported->Count > 0)) { // Focus the first imported session. // We should also consider expanding all newly created folders @@ -1081,7 +1088,7 @@ void __fastcall TLoginDialog::ActionListUpdate(TBasicAction * BasicAction, bool SiteSelected = IsSiteNode(SessionTree->Selected); bool FolderOrWorkspaceSelected = IsFolderOrWorkspaceNode(SessionTree->Selected); - TAction * Action = NOT_NULL(dynamic_cast(BasicAction)); + TAction * Action = DebugNotNull(dynamic_cast(BasicAction)); bool PrevEnabled = Action->Enabled; bool Editable = IsEditable(); @@ -1151,11 +1158,10 @@ void __fastcall TLoginDialog::ActionListUpdate(TBasicAction * BasicAction, { UnicodeString ClipboardUrl; Action->Enabled = - TextFromClipboard(ClipboardUrl, true) && - !ClipboardUrl.IsEmpty() && + NonEmptyTextFromClipboard(ClipboardUrl) && StoredSessions->IsUrl(ClipboardUrl); } - else if (Action == GenerateUrlAction) + else if (Action == GenerateUrlAction2) { TSessionData * Data = GetSessionData(); // URL without hostname is pointless @@ -1167,6 +1173,18 @@ void __fastcall TLoginDialog::ActionListUpdate(TBasicAction * BasicAction, // without hostname it's pointless Action->Enabled = (Data != NULL) && !Data->HostName.IsEmpty(); } + else if (Action == SearchSiteNameStartOnlyAction) + { + Action->Checked = (FSiteSearch == ssSiteNameStartOnly); + } + else if (Action == SearchSiteNameAction) + { + Action->Checked = (FSiteSearch == ssSiteName); + } + else if (Action == SearchSiteAction) + { + Action->Checked = (FSiteSearch == ssSite); + } Handled = true; // to update buttons visibility @@ -1242,7 +1260,9 @@ bool __fastcall TLoginDialog::Execute(TList * DataList) FSortEnablePending = true; // Not calling LoadState here. // It's redundant and does not work anyway, see comment in the method. - bool Result = (ShowModal() == DefaultResult()); + int AResult = ShowModal(); + // When CanLogin is false, the DefaultResult() will fail finding a default button. + bool Result = CanLogin() && (AResult == DefaultResult()); SaveState(); if (Result) { @@ -1290,7 +1310,7 @@ TSessionData * __fastcall TLoginDialog::CloneSelectedSession() { Data2->Assign(GetNodeSession(Node)); } - else if (ALWAYS_TRUE(IsNewSiteNode(Node))) + else if (DebugAlwaysTrue(IsNewSiteNode(Node))) { TSessionData * Data = GetSessionData(); Data2->Assign(Data); @@ -1302,53 +1322,39 @@ TSessionData * __fastcall TLoginDialog::CloneSelectedSession() return Data2.release(); } //--------------------------------------------------------------------------- -void __fastcall TLoginDialog::SaveOpenedStoredSessionFolders( - TTreeNode * Node, TStrings * OpenedStoredSessionFolders) -{ - if (IsFolderNode(Node)) - { - if (Node->Expanded) - { - OpenedStoredSessionFolders->Add(SessionNodePath(Node)); - } - - for (int Index = 0; Index < Node->Count; Index++) - { - SaveOpenedStoredSessionFolders(Node->Item[Index], OpenedStoredSessionFolders); - } - } -} -//--------------------------------------------------------------------------- void __fastcall TLoginDialog::SaveState() { - assert(WinConfiguration != NULL); + DebugAssert(WinConfiguration != NULL); - TStringList * OpenedStoredSessionFolders = CreateSortedStringList(); WinConfiguration->BeginUpdate(); try { + std::unique_ptr OpenedStoredSessionFolders(CreateSortedStringList()); for (int Index = 0; Index < SessionTree->Items->Count; Index++) { - SaveOpenedStoredSessionFolders( - SessionTree->Items->Item[Index], OpenedStoredSessionFolders); + TTreeNode * Node = SessionTree->Items->Item[Index]; + if (IsFolderNode(Node)) + { + if (Node->Expanded) + { + OpenedStoredSessionFolders->Add(SessionNodePath(Node)); + } + } } WinConfiguration->OpenedStoredSessionFolders = OpenedStoredSessionFolders->CommaText; + + WinConfiguration->LastStoredSession = SessionNodePath(SessionTree->Selected); + + TLoginDialogConfiguration DialogConfiguration = CustomWinConfiguration->LoginDialog; + DialogConfiguration.WindowSize = StoreFormSize(this); + DialogConfiguration.SiteSearch = FSiteSearch; + CustomWinConfiguration->LoginDialog = DialogConfiguration; } __finally { WinConfiguration->EndUpdate(); - delete OpenedStoredSessionFolders; } - - WinConfiguration->LastStoredSession = SessionNodePath(SessionTree->Selected); - - // used only when changing locale - FSavedBounds = BoundsRect; - - TLoginDialogConfiguration DialogConfiguration = CustomWinConfiguration->LoginDialog; - DialogConfiguration.WindowSize = StoreFormSize(this); - CustomWinConfiguration->LoginDialog = DialogConfiguration; } //--------------------------------------------------------------------------- void __fastcall TLoginDialog::LoadOpenedStoredSessionFolders( @@ -1367,22 +1373,15 @@ void __fastcall TLoginDialog::LoadOpenedStoredSessionFolders( //--------------------------------------------------------------------------- void __fastcall TLoginDialog::LoadState() { - // have to set the size before trying to make selected node visible below, - // as shrinking the form may move node out of view again - if (FLocaleChanging) + // it does not make any sense to call this before + // DoFormWindowProc(CM_SHOWINGCHANGED), we would end up on wrong monitor + if (DebugAlwaysTrue(Visible)) { - BoundsRect = FSavedBounds; - } - else - { - // it does not make any sense to call this before - // DoFormWindowProc(CM_SHOWINGCHANGED), we would end up on wrong monitor - if (ALWAYS_TRUE(Visible)) - { - RestoreFormSize(CustomWinConfiguration->LoginDialog.WindowSize, this); - } + RestoreFormSize(CustomWinConfiguration->LoginDialog.WindowSize, this); } + FSiteSearch = CustomWinConfiguration->LoginDialog.SiteSearch; + TStringList * OpenedStoredSessionFolders = CreateSortedStringList(); try { @@ -1400,7 +1399,7 @@ void __fastcall TLoginDialog::LoadState() if (SessionTree->Selected != NULL) { // see comment for LastStoredSession branch below - assert(Visible); + DebugAssert(Visible); SessionTree->Selected->MakeVisible(); } } @@ -1415,7 +1414,7 @@ void __fastcall TLoginDialog::LoadState() // as site folders, e.g. for the very last root-level site, at long as // there are any folders) if (!FForceNewSite && - !WinConfiguration->LastStoredSession.IsEmpty() && ALWAYS_TRUE(Visible)) + !WinConfiguration->LastStoredSession.IsEmpty() && DebugAlwaysTrue(Visible)) { UnicodeString Path = WinConfiguration->LastStoredSession; @@ -1453,7 +1452,7 @@ void __fastcall TLoginDialog::LoadState() //--------------------------------------------------------------------------- void __fastcall TLoginDialog::SaveConfiguration() { - assert(CustomWinConfiguration); + DebugAssert(CustomWinConfiguration); TTreeNode * Node = SessionTree->Selected; if (IsWorkspaceNode(Node)) { @@ -1478,7 +1477,7 @@ void __fastcall TLoginDialog::MasterPasswordRecrypt(TObject * /*Sender*/) //--------------------------------------------------------------------------- void __fastcall TLoginDialog::ShowPreferencesDialog(TPreferencesMode PreferencesMode) { - assert(CustomWinConfiguration->OnMasterPasswordRecrypt == NULL); + DebugAssert(CustomWinConfiguration->OnMasterPasswordRecrypt == NULL); CustomWinConfiguration->OnMasterPasswordRecrypt = MasterPasswordRecrypt; try { @@ -1486,7 +1485,7 @@ void __fastcall TLoginDialog::ShowPreferencesDialog(TPreferencesMode Preferences } __finally { - assert(CustomWinConfiguration->OnMasterPasswordRecrypt == MasterPasswordRecrypt); + DebugAssert(CustomWinConfiguration->OnMasterPasswordRecrypt == MasterPasswordRecrypt); CustomWinConfiguration->OnMasterPasswordRecrypt = NULL; } UpdateControls(); @@ -1530,46 +1529,11 @@ void __fastcall TLoginDialog::CMDialogKey(TWMKeyDown & Message) void __fastcall TLoginDialog::Dispatch(void * Message) { TMessage * M = reinterpret_cast(Message); - assert(M); + DebugAssert(M); if (M->Msg == CM_DIALOGKEY) { CMDialogKey(*((TWMKeyDown *)Message)); } - else if (M->Msg == WM_LOCALE_CHANGE) - { - if (M->WParam == 0) - { - SaveConfiguration(); - SaveState(); - PersistNewSiteIfNeeded(); - - // restore sizes to design-time state, - // otherwise layout is lost while reloading the form - BasicGroup->Height = FBasicGroupBaseHeight + BasicSshPanel->Height + BasicFtpPanel->Height; - SetBounds(Left, Top, FOriginalSize.cx, FOriginalSize.cy); - - assert(FSystemSettings); - RevokeSystemSettings(this, FSystemSettings); - FSystemSettings = NULL; - // have to undo the caption padding, otherwise the button does not - // get localized - UncenterButtonImage(LoginButton); - - Hide(); - } - else - { - FLocaleChanging = true; - try - { - Show(); - } - __finally - { - FLocaleChanging = false; - } - } - } else if (M->Msg == WM_MANAGES_CAPTION) { // caption managed in TLoginDialog::Init() @@ -1589,6 +1553,13 @@ void __fastcall TLoginDialog::Dispatch(void * Message) } TForm::Dispatch(Message); } + else if (M->Msg == WM_SYSCOMMAND) + { + if (!HandleMinimizeSysCommand(*M)) + { + TForm::Dispatch(Message); + } + } else { TForm::Dispatch(Message); @@ -1645,7 +1616,7 @@ void __fastcall TLoginDialog::DesktopIconActionExecute(TObject * /*Sender*/) } else { - FAIL; + DebugFail(); } Message = MainInstructions(Message); @@ -1658,8 +1629,8 @@ void __fastcall TLoginDialog::DesktopIconActionExecute(TObject * /*Sender*/) //--------------------------------------------------------------------------- void __fastcall TLoginDialog::SendToHookActionExecute(TObject * /*Sender*/) { - assert(IsSiteNode(SessionTree->Selected)); - assert(SelectedSession != NULL); + DebugAssert(IsSiteNode(SessionTree->Selected)); + DebugAssert(SelectedSession != NULL); UnicodeString Message = MainInstructions(FMTLOAD(CONFIRM_CREATE_SENDTO, (SelectedSession->Name))); if (MessageDialog(Message, qtConfirmation, qaYes | qaNo, HELP_CREATE_SENDTO) == qaYes) @@ -1669,7 +1640,7 @@ void __fastcall TLoginDialog::SendToHookActionExecute(TObject * /*Sender*/) TProgramParams::FormatSwitch(SEND_TO_HOOK_SWITCH) + L" " + TProgramParams::FormatSwitch(UPLOAD_SWITCH); CreateDesktopSessionShortCut(SelectedSession->Name, - FMTLOAD(SESSION_SENDTO_HOOK_NAME, (SelectedSession->LocalName)), + FMTLOAD(SESSION_SENDTO_HOOK_NAME2, (SelectedSession->LocalName, AppName)), AdditionalParams, CSIDL_SENDTO, SITE_ICON); } @@ -1739,7 +1710,8 @@ void __fastcall TLoginDialog::FormCloseQuery(TObject * /*Sender*/, // CanClose test is now probably redundant, // once we have a fallback to LoginButton in DefaultResult CanClose = EnsureNotEditing(); - if (CanClose && (ModalResult == DefaultResult())) + // When CanLogin is false, the DefaultResult() will fail finding a default button + if (CanClose && CanLogin() && (ModalResult == DefaultResult())) { SaveDataList(FDataList); } @@ -1748,10 +1720,10 @@ void __fastcall TLoginDialog::FormCloseQuery(TObject * /*Sender*/, void __fastcall TLoginDialog::SessionTreeEditing(TObject * /*Sender*/, TTreeNode * Node, bool & AllowEdit) { - assert(!FRenaming); + DebugAssert(!FRenaming); AllowEdit = IsFolderOrWorkspaceNode(Node) || - (ALWAYS_TRUE(IsSiteNode(Node)) && !GetNodeSession(Node)->Special); + (DebugAlwaysTrue(IsSiteNode(Node)) && !GetNodeSession(Node)->Special); FRenaming = AllowEdit; UpdateControls(); } @@ -1870,7 +1842,7 @@ void __fastcall TLoginDialog::SessionTreeEdited(TObject * /*Sender*/, Session->Remove(); UnicodeString Path = Session->Name; - assert(Path.SubString(1, OldRoot.Length()) == OldRoot); + DebugAssert(Path.SubString(1, OldRoot.Length()) == OldRoot); Path.Delete(1, OldRoot.Length()); Path.Insert(NewRoot, 1); @@ -1929,7 +1901,7 @@ TFSProtocol __fastcall TLoginDialog::IndexToFSProtocol(int Index, bool AllowScpF { bool InBounds = (Index >= 0) && (Index < static_cast(LENOF(FSOrder))); // can be temporary "unselected" while new language is being loaded - assert(InBounds || (Index == -1)); + DebugAssert(InBounds || (Index == -1)); TFSProtocol Result = fsSFTP; if (InBounds) { @@ -1947,7 +1919,7 @@ int __fastcall TLoginDialog::FtpsToIndex(TFtps Ftps) switch (Ftps) { default: - FAIL; + DebugFail(); case ftpsNone: return 0; @@ -1967,7 +1939,7 @@ TFtps __fastcall TLoginDialog::GetFtps() switch (Index) { default: - FAIL; + DebugFail(); case 0: Ftps = ftpsNone; break; @@ -1986,7 +1958,7 @@ TFtps __fastcall TLoginDialog::GetFtps() TFSProtocol __fastcall TLoginDialog::GetFSProtocol(bool RequireScpFallbackDistinction) { bool AllowScpFallback = false; - if (RequireScpFallbackDistinction && ALWAYS_TRUE(FSessionData != NULL)) + if (RequireScpFallbackDistinction && DebugAlwaysTrue(FSessionData != NULL)) { FSProtocolToIndex(FSessionData->FSProtocol, AllowScpFallback); } @@ -2079,7 +2051,7 @@ void __fastcall TLoginDialog::SessionTreeCompare(TObject * /*Sender*/, void __fastcall TLoginDialog::NewSessionFolderInputDialogInitialize( TObject * /*Sender*/, TInputDialogData * Data) { - TEdit * Edit = Data->Edit; + TCustomEdit * Edit = Data->Edit; int P = Edit->Text.LastDelimiter(L"/"); if (P > 0) { @@ -2106,7 +2078,7 @@ TTreeNode * __fastcall TLoginDialog::SessionFolderNode(TTreeNode * Node) } else { - assert(Node == NULL); + DebugAssert(Node == NULL); Parent = NULL; } return Parent; @@ -2216,7 +2188,7 @@ void __fastcall TLoginDialog::SessionTreeProc(TMessage & AMessage) void __fastcall TLoginDialog::SessionTreeStartDrag(TObject * /*Sender*/, TDragObject *& /*DragObject*/) { - assert(SessionTree->Selected != NULL); + DebugAssert(SessionTree->Selected != NULL); // neither session folders/workspaces, nor special sessions can be dragged if ((SessionTree->Selected == NULL) || IsFolderOrWorkspaceNode(SessionTree->Selected) || @@ -2233,7 +2205,7 @@ void __fastcall TLoginDialog::SessionTreeDragDrop(TObject * Sender, TObject * Source, int /*X*/, int /*Y*/) { TTreeNode * DropTarget = SessionTree->DropTarget; - if (ALWAYS_TRUE((Sender == Source) && SessionAllowDrop(DropTarget)) && + if (DebugAlwaysTrue((Sender == Source) && SessionAllowDrop(DropTarget)) && // calling EnsureNotEditing only on drop, not on drag start, // to avoid getting popup during unintended micro-dragging EnsureNotEditing()) @@ -2252,7 +2224,7 @@ void __fastcall TLoginDialog::SessionTreeDragDrop(TObject * Sender, // modified only, explicit StoredSessions->Save(false, true); // this should aways be the case - if (ALWAYS_TRUE(Session != NewSession)) + if (DebugAlwaysTrue(Session != NewSession)) { TTreeNode * Node = SessionTree->Selected; @@ -2647,9 +2619,35 @@ TTreeNode * __fastcall TLoginDialog::SearchSite(const UnicodeString & Text, (Parent->Expanded || AllowExpanding); Parent = Parent->Parent; } - if (Eligible && ContainsTextSemiCaseSensitive(Node->Text, Text)) + if (Eligible) { - return Node; + bool Matches = false; + + switch (FSiteSearch) + { + case ssSiteNameStartOnly: + Matches = ContainsTextSemiCaseSensitive(Node->Text.SubString(1, Text.Length()), Text); + break; + case ssSiteName: + Matches = ContainsTextSemiCaseSensitive(Node->Text, Text); + break; + case ssSite: + Matches = ContainsTextSemiCaseSensitive(Node->Text, Text); + if (!Matches && IsSiteNode(Node)) + { + TSessionData * Data = GetNodeSession(Node); + Matches = + ContainsTextSemiCaseSensitive(Data->HostName, Text) || + ContainsTextSemiCaseSensitive(Data->UserName, Text) || + ContainsTextSemiCaseSensitive(Data->Note, Text); + } + break; + } + + if (Matches) + { + return Node; + } } Node = GetNextNode(Node, Reverse); @@ -2727,7 +2725,7 @@ void __fastcall TLoginDialog::SessionAdvancedActionExecute(TObject * /*Sender*/) // while cloning the session data in LoadSession. // To implement this, we may delegate the cloning to TWinConfiguration and // make use of FDontDecryptPasswords - if (ALWAYS_TRUE(FSessionData != NULL)) + if (DebugAlwaysTrue(FSessionData != NULL)) { // parse hostname (it may change protocol particularly) before opening advanced settings // (HostNameEditExit is not triggered when child dialog pops up when it is invoked by accelerator) @@ -2741,7 +2739,7 @@ void __fastcall TLoginDialog::SessionAdvancedActionExecute(TObject * /*Sender*/) // can change is protocol (between fsSFTP and fsSFTPonly), // difference of the two not being visible on Login dialog anyway. LoadSession(FSessionData); - if (ALWAYS_TRUE(SessionTree->Selected != NULL) && + if (DebugAlwaysTrue(SessionTree->Selected != NULL) && IsSiteNode(SessionTree->Selected)) { SetNodeImage(SessionTree->Selected, GetSessionImageIndex(FSessionData)); @@ -2771,7 +2769,7 @@ TPopupMenu * __fastcall TLoginDialog::GetSelectedNodePopupMenu() PopupMenu = ManageWorkspacePopupMenu; } - return NOT_NULL(PopupMenu); + return DebugNotNull(PopupMenu); } //--------------------------------------------------------------------------- void __fastcall TLoginDialog::ManageButtonClick(TObject * /*Sender*/) @@ -2806,7 +2804,7 @@ void __fastcall TLoginDialog::SessionTreeContextPopup(TObject * /*Sender*/, if (SessionTree->Selected != NULL) { SessionTree->PopupMenu = GetSelectedNodePopupMenu(); - if (NOT_NULL(SessionTree->PopupMenu)) + if (DebugNotNull(SessionTree->PopupMenu)) { MenuPopup(SessionTree, MousePos, Handled); } @@ -2855,7 +2853,7 @@ void __fastcall TLoginDialog::Login() if (OpenInNewWindow() && !IsNewSiteNode(SessionTree->Selected)) { UnicodeString Path = SessionNodePath(SessionTree->Selected); - ExecuteNewInstance(EncodeUrlChars(Path)); + ExecuteNewInstance(EncodeUrlString(Path)); // prevent closing the window, see below ModalResult = mrNone; } @@ -2912,7 +2910,7 @@ void __fastcall TLoginDialog::ParseUrl(const UnicodeString & Url) void __fastcall TLoginDialog::PasteUrlActionExecute(TObject * /*Sender*/) { UnicodeString ClipboardUrl; - if (ALWAYS_TRUE(TextFromClipboard(ClipboardUrl, true) && !ClipboardUrl.IsEmpty())) + if (NonEmptyTextFromClipboard(ClipboardUrl)) { if (!IsEditable()) { @@ -2921,7 +2919,7 @@ void __fastcall TLoginDialog::PasteUrlActionExecute(TObject * /*Sender*/) } // sanity check - if (ALWAYS_TRUE(IsEditable())) + if (DebugAlwaysTrue(IsEditable())) { ParseUrl(ClipboardUrl); } @@ -2947,12 +2945,16 @@ void __fastcall TLoginDialog::HostNameEditExit(TObject * /*Sender*/) ParseHostName(); } //--------------------------------------------------------------------------- -void __fastcall TLoginDialog::GenerateUrlActionExecute(TObject * /*Sender*/) +void __fastcall TLoginDialog::GenerateUrlAction2Execute(TObject * /*Sender*/) { - if (ALWAYS_TRUE(SelectedSession != NULL)) + if (DebugAlwaysTrue(SelectedSession != NULL)) { PersistNewSiteIfNeeded(); - DoGenerateUrlDialog(SelectedSession, NULL); + + std::unique_ptr Data(SelectedSession->Clone()); + Data->LookupLastFingerprint(); + + DoGenerateUrlDialog(Data.get(), NULL); } } //--------------------------------------------------------------------------- @@ -2995,3 +2997,18 @@ void __fastcall TLoginDialog::CopyParamRuleActionExecute(TObject * /*Sender*/) } } //--------------------------------------------------------------------------- +void __fastcall TLoginDialog::SearchSiteNameStartOnlyActionExecute(TObject * /*Sender*/) +{ + FSiteSearch = ssSiteNameStartOnly; +} +//--------------------------------------------------------------------------- +void __fastcall TLoginDialog::SearchSiteNameActionExecute(TObject * /*Sender*/) +{ + FSiteSearch = ssSiteName; +} +//--------------------------------------------------------------------------- +void __fastcall TLoginDialog::SearchSiteActionExecute(TObject * /*Sender*/) +{ + FSiteSearch = ssSite; +} +//--------------------------------------------------------------------------- diff --git a/source/forms/Login.dfm b/source/forms/Login.dfm index b010eeb7..e88420a2 100644 --- a/source/forms/Login.dfm +++ b/source/forms/Login.dfm @@ -5,7 +5,7 @@ object LoginDialog: TLoginDialog HelpKeyword = 'ui_login' BorderIcons = [biSystemMenu, biMinimize, biHelp] Caption = 'Login' - ClientHeight = 432 + ClientHeight = 609 ClientWidth = 630 Color = clBtnFace Constraints.MinHeight = 375 @@ -22,33 +22,33 @@ object LoginDialog: TLoginDialog Left = 269 Top = 0 Width = 361 - Height = 432 - Align = alClient + Height = 368 + Align = alRight BevelOuter = bvNone TabOrder = 0 object ContentsPanel: TPanel Left = 0 Top = 0 Width = 361 - Height = 391 + Height = 327 Align = alClient BevelOuter = bvNone TabOrder = 0 Visible = False DesignSize = ( 361 - 391) + 327) object ContentsGroupBox: TGroupBox Left = 2 Top = 12 Width = 347 - Height = 376 + Height = 312 Anchors = [akLeft, akTop, akBottom] Caption = 'ContentsGroupBox' TabOrder = 0 DesignSize = ( 347 - 376) + 312) object ContentsLabel: TLabel Left = 12 Top = 20 @@ -69,7 +69,7 @@ object LoginDialog: TLoginDialog Left = 12 Top = 42 Width = 324 - Height = 322 + Height = 258 Anchors = [akLeft, akTop, akRight, akBottom] Lines.Strings = ( 'ContentsMemo') @@ -81,14 +81,14 @@ object LoginDialog: TLoginDialog Left = 0 Top = 0 Width = 361 - Height = 391 + Height = 327 Align = alClient Anchors = [akTop, akRight, akBottom] BevelOuter = bvNone TabOrder = 1 DesignSize = ( 361 - 391) + 327) object BasicGroup: TGroupBox Left = 2 Top = 12 @@ -332,18 +332,18 @@ object LoginDialog: TLoginDialog Left = 2 Top = 247 Width = 347 - Height = 141 + Height = 77 Anchors = [akLeft, akTop, akRight, akBottom] Caption = 'Note' TabOrder = 1 DesignSize = ( 347 - 141) + 77) object NoteMemo: TMemo Left = 7 Top = 15 Width = 333 - Height = 117 + Height = 53 TabStop = False Anchors = [akLeft, akTop, akRight, akBottom] BevelInner = bvNone @@ -358,7 +358,7 @@ object LoginDialog: TLoginDialog end object ButtonPanel: TPanel Left = 0 - Top = 391 + Top = 327 Width = 361 Height = 41 Align = alBottom @@ -408,19 +408,18 @@ object LoginDialog: TLoginDialog Left = 0 Top = 0 Width = 269 - Height = 432 - Align = alLeft - Anchors = [akLeft, akTop, akRight, akBottom] + Height = 368 + Align = alClient BevelOuter = bvNone TabOrder = 1 DesignSize = ( 269 - 432) + 368) object SessionTree: TTreeView Left = 11 Top = 12 Width = 247 - Height = 383 + Height = 319 Anchors = [akLeft, akTop, akRight, akBottom] DoubleBuffered = True DragMode = dmAutomatic @@ -456,7 +455,7 @@ object LoginDialog: TLoginDialog end object SitesIncrementalSearchLabel: TStaticText Left = 14 - Top = 375 + Top = 311 Width = 142 Height = 17 Anchors = [akLeft, akRight, akBottom] @@ -468,7 +467,7 @@ object LoginDialog: TLoginDialog end object ManageButton: TButton Left = 160 - Top = 401 + Top = 337 Width = 98 Height = 25 Anchors = [akRight, akBottom] @@ -478,7 +477,7 @@ object LoginDialog: TLoginDialog end object ToolsMenuButton: TButton Left = 11 - Top = 401 + Top = 337 Width = 98 Height = 25 Anchors = [akLeft, akBottom] @@ -487,11 +486,22 @@ object LoginDialog: TLoginDialog OnClick = ToolsMenuButtonClick end end + object ComponentsPanel: TPanel + Left = 0 + Top = 368 + Width = 630 + Height = 241 + Align = alBottom + BevelOuter = bvNone + Color = clWindow + ParentBackground = False + TabOrder = 2 + end object ActionList: TActionList Images = ActionImageList OnUpdate = ActionListUpdate - Left = 68 - Top = 81 + Left = 36 + Top = 373 object EditSessionAction: TAction Category = 'Sessions' Caption = '&Edit' @@ -634,20 +644,35 @@ object LoginDialog: TLoginDialog ShortCut = 16470 OnExecute = PasteUrlActionExecute end - object GenerateUrlAction: TAction + object GenerateUrlAction2: TAction Category = 'Sessions' - Caption = '&Generate Session URL...' - OnExecute = GenerateUrlActionExecute + Caption = '&Generate Session URL/Code...' + OnExecute = GenerateUrlAction2Execute end object CopyParamRuleAction: TAction Category = 'Sessions' Caption = 'Transfer Settings &Rule...' OnExecute = CopyParamRuleActionExecute end + object SearchSiteNameStartOnlyAction: TAction + Category = 'Other' + Caption = '&Beginning of Site Name Only' + OnExecute = SearchSiteNameStartOnlyActionExecute + end + object SearchSiteNameAction: TAction + Category = 'Other' + Caption = '&Any Part of Site Name' + OnExecute = SearchSiteNameActionExecute + end + object SearchSiteAction: TAction + Category = 'Other' + Caption = 'All &Major Site Fields' + OnExecute = SearchSiteActionExecute + end end object ToolsPopupMenu: TPopupMenu - Left = 176 - Top = 161 + Left = 144 + Top = 429 object Import1: TMenuItem Action = ImportSessionsAction end @@ -942,7 +967,7 @@ object LoginDialog: TLoginDialog end item Background = clWindow - Name = 'New Site opened' + Name = 'Open new session' PngImage.Data = { 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 @@ -1048,7 +1073,7 @@ object LoginDialog: TLoginDialog end item Background = clWindow - Name = 'New Site closed' + Name = 'Open new session closed' PngImage.Data = { 89504E470D0A1A0A0000000D4948445200000010000000100802000000909168 36000000017352474200AECE1CE9000000097048597300000EC300000EC301C7 @@ -1066,13 +1091,13 @@ object LoginDialog: TLoginDialog C4345A5A322BB385B32146A201840664A5C8004D1BC9A91500C1524F7165D321 E40000000049454E44AE426082} end> - Left = 68 - Top = 25 + Left = 36 + Top = 493 Bitmap = {} end object SaveDropDownMenu: TPopupMenu - Left = 68 - Top = 145 + Left = 268 + Top = 373 object SaveSessionMenuItem: TMenuItem Action = SaveSessionAction Default = True @@ -1089,8 +1114,8 @@ object LoginDialog: TLoginDialog end object ManageSitePopupMenu: TPopupMenu Images = ActionImageList - Left = 68 - Top = 209 + Left = 396 + Top = 373 object Shellicon1: TMenuItem Caption = 'Site' Enabled = False @@ -1119,7 +1144,7 @@ object LoginDialog: TLoginDialog Action = CloneToNewSiteAction end object GenerateSessionURL1: TMenuItem - Action = GenerateUrlAction + Action = GenerateUrlAction2 end object N5: TMenuItem Caption = '-' @@ -1144,11 +1169,31 @@ object LoginDialog: TLoginDialog object ExplorersSendToShortcut2: TMenuItem Action = SendToHookAction end + object Options1: TMenuItem + Caption = 'Options' + Enabled = False + Visible = False + end + object IncrementalSearch1: TMenuItem + Caption = 'Incremental Search' + object SearchSiteNameStartOnly1: TMenuItem + Action = SearchSiteNameStartOnlyAction + RadioItem = True + end + object SearchSiteName1: TMenuItem + Action = SearchSiteNameAction + RadioItem = True + end + object SearchSite1: TMenuItem + Action = SearchSiteAction + RadioItem = True + end + end end object ManageFolderPopupMenu: TPopupMenu Images = ActionImageList - Left = 70 - Top = 265 + Left = 398 + Top = 429 object MenuItem1: TMenuItem Caption = 'Site Folder' Enabled = False @@ -1181,11 +1226,31 @@ object LoginDialog: TLoginDialog object MenuItem8: TMenuItem Action = DesktopIconAction end + object Options3: TMenuItem + Caption = 'Options' + Enabled = False + Visible = False + end + object IncrementalSearch3: TMenuItem + Caption = 'Incremental Search' + object BeginningofSiteNameOnly2: TMenuItem + Action = SearchSiteNameStartOnlyAction + RadioItem = True + end + object AnyPartofSiteName2: TMenuItem + Action = SearchSiteNameAction + RadioItem = True + end + object AllMajorSiteFields2: TMenuItem + Action = SearchSiteAction + RadioItem = True + end + end end object ManageNewSitePopupMenu: TPopupMenu Images = ActionImageList - Left = 175 - Top = 225 + Left = 543 + Top = 373 object MenuItem12: TMenuItem Caption = 'New Site' Enabled = False @@ -1211,7 +1276,7 @@ object LoginDialog: TLoginDialog Action = PasteUrlAction end object GenerateSessionURL2: TMenuItem - Action = GenerateUrlAction + Action = GenerateUrlAction2 end object MenuItem21: TMenuItem Caption = '-' @@ -1225,11 +1290,31 @@ object LoginDialog: TLoginDialog object MenuItem17: TMenuItem Action = NewSessionFolderAction end + object Options2: TMenuItem + Caption = 'Options' + Enabled = False + Visible = False + end + object IncrementalSearch2: TMenuItem + Caption = 'Incremental Search' + object BeginningofSiteNameOnly1: TMenuItem + Action = SearchSiteNameStartOnlyAction + RadioItem = True + end + object AnyPartofSiteName1: TMenuItem + Action = SearchSiteNameAction + RadioItem = True + end + object AllMajorSiteFields1: TMenuItem + Action = SearchSiteAction + RadioItem = True + end + end end object ManageWorkspacePopupMenu: TPopupMenu Images = ActionImageList - Left = 174 - Top = 281 + Left = 542 + Top = 429 object MenuItem2: TMenuItem Caption = 'Workspace' Enabled = False @@ -1256,10 +1341,30 @@ object LoginDialog: TLoginDialog object MenuItem19: TMenuItem Action = DesktopIconAction end + object Options4: TMenuItem + Caption = 'Options' + Enabled = False + Visible = False + end + object IncrementalSearch4: TMenuItem + Caption = 'Incremental Search' + object BeginningofSiteNameOnly3: TMenuItem + Action = SearchSiteNameStartOnlyAction + RadioItem = True + end + object AnyPartofSiteName3: TMenuItem + Action = SearchSiteNameAction + RadioItem = True + end + object AllMajorSiteFields3: TMenuItem + Action = SearchSiteAction + RadioItem = True + end + end end object SessionAdvancedPopupMenu: TPopupMenu - Left = 176 - Top = 89 + Left = 144 + Top = 373 object Session1: TMenuItem Caption = 'Session' Enabled = False @@ -1737,14 +1842,14 @@ object LoginDialog: TLoginDialog BFF8D73C06EB61FCFFFF3F297A310000D54FEADB815A8A100000000049454E44 AE426082} end> - Left = 177 - Top = 25 + Left = 33 + Top = 557 Bitmap = {} end object LoginDropDownMenu: TPopupMenu Images = ActionImageList - Left = 70 - Top = 321 + Left = 270 + Top = 429 object Login1: TMenuItem Action = LoginAction Default = True @@ -1753,4 +1858,2441 @@ object LoginDialog: TLoginDialog Action = PuttyAction end end + object SessionImageList120: TPngImageList + Height = 20 + Width = 20 + PngImages = < + item + Background = clWindow + Name = 'Unused' + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001400000014080200000002EB8A + 5A000000017352474200AECE1CE9000000097048597300000EC300000EC301C7 + 6FA8640000001B4944415478DA63FCFFFF3F03B9807154F3A8E651CDA39A0756 + 33004FE33BD9870B3EBF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Site' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA864000001724944415478DA + 6364A03260A48981A6F6DE6780943185669D3D7D70AB09CCC0FFF95DEBC1A2FF + FF033198C1C0F00F4AFF47A2D1D960F5403CA7369001682023DCC0EC76A88150 + 450C681AB0C9FD03DAF8EDD77F864F3FFE336CEF0D463530A36D3DC275682EFD + 8FC4FFF283016C00087FF9091287E8B8322F04D5C094E60D988641D99F819ADF + 7DFDCFF0E13B03C3DF7F30195470692E9A0B139A3620C20BE41D20E3DD570686 + D75FFE33FCFA83DD106470617610AA81710D1B19609683BCF3F21303C3EFBF84 + 0D828173B3D02225BA7E13C31FA0012F3F33307CFD49BC4130707A4600AA817E + E59B80DE03C51CE98681C0C9E9FEA8065A666F22CB2018383ED50FD540EBDCCD + 14197874B22FAA81CE8E8E241B72CC762E98B63A9CCCB077FF7E84812676DE27 + 812C334A5C084CAFA7CE1CDA6A4EB0B49151544789A527F76FE2D58355121804 + F780942288FDF6E553143961716918F33ED08B4AC41AF8DFCAC90F7FF8EDDB04 + 0E33925D880710EF424A00003300E5157B57B75F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Opened bookmark folder-stored session folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000022F4944415478DA63FCFFFF3F + 03350123D50D04119B9AE4B41998183603998A48726B7FFC791415D6C0F08B24 + 034186313233EE57B7F7101557D5820AFF63B8796007C3CBDBD7B77EFFF32888 + 14431937B5CABFD0B473151757D50472FF4331C4D01B07F730BCB87D938011FF + E7FAD53C4E811BB877AAC17FD3E0082483FE03C301C1664061832884D8D7F7EF + 184EAD5B7F0568A02E9281FAFFCD8243109AFF6333089B652003DF339C5CB719 + DD40BDFF6641FE0C7FFFFC66B8B06D17C3A7D76F2888E3FFDB19F74CD6FE6F11 + E2CBF0EADE43865FBF6519D46D4BC832EAFBA73B0C7BA6462C66DCD9A7F6DF3A + C297E1EA81130CCA16290C9CFCFF19FEFE7E8511768CD8C21389BEB66F3FC3AB + BB7703C106DA44B8331C59BE83C13E7922C39F1FE781E1FE1BAF668405103E28 + 731C5EB2F2EFBB6F1F848006AAFED77336667870F92D83914F3CC3EFEF57F118 + 841C6908FAE38B570C67B71D38008C1C47B081922A920C3C227A0C92AAD20CFF + 7EBFC69E5CF0D0774E5F637870E94E897FEDE35EA0812AFFD938D818746CDC18 + 187E3F65F8FFF727AAB7E0A9043DCF23F8574EDF63F8F2E693A66FC3B31B8C3B + 7B958106F232D8C456000DFB844503CC70EC06FFFAFE9961EFBC290FFC6A1E81 + CB01C6ED5D8AFFA555A418A4E58419FEFDFD8EC735A862B04879FBFA1BC38DF3 + CFA602BD9B0316DFD822FBCD26349C934F4C16A7EB50C4FFA3F22FECDA04CCEF + F7DC7D6B1FEF021BB8A959F6140323A32903F9E0C8B93F8F1C1B1A18FE800D1C + F4253600BA4C23FEC4936E5C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Closed bookmark folder-stored session folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000015B4944415478DA63FCFFFF3F + 03350123D50D04119B1BA444FEB3306F07724D1052FFCF30FEF9EBE9DBF0EC0D + 2143901DC508318CE580ACBE99B69299035CE2DEA9030C8F2F9EBACAF8E78F03 + 2143510CDCD42A77464ED7C058C9CC1243E1BD53C7191E5DBA40C881477CAB1F + DA220C6C91FBEF9A684F7698ED9E7F90016820238A81E44701046018E85B7986 + 6CC336B79B601AE855BC81E1DBC7DDB020C6A019B188C1E8FD73E6601AE859B8 + 94E1C7E7FD08C5FFB16B46170359B46FEE624C033DF26730FCFC720CAF4BB0D2 + C0E4B26FDE4A4C03DD73BB197E7F3B83E132622CD83B6F031603B36A18FEFCB8 + 4284AB105E8559BE67FE764C03ED83C3187E7DBA8166000311FCFF0CC7775FC3 + 1229799D0CFFFF7E420B707C8621C4B74FEDC434D0DAD398E1DF9FCF04353362 + B1E0D8EE7B585C985D8CD72038FF3F1A1F88B74F9B846AE0E616B9A340292B06 + 3201D0A4633ED50FADE1FC415F620300B524DDD96C89D4C10000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Workspace' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA864000001054944415478DA + 6364A03260A4BA81F2B11BAE3032FCD7A68A69FF192E332AC4AEFF1FE6EB4415 + F3566DDEC7003650484C862A06BE7BF50462E0CC7247B0C0BC45AB1892E2C2E0 + 0A48E5A777EEA79181D7E6FA51C5CB5AC99B20065E9AE50B16D870F416980EB0 + 56C3CAC605406A40402F6D33C4C0F3337CA8E242C38C2D10034F4F8318B8E5C4 + 6D30ED63A18A958D0B80D480806916D4C01353BCA9E2428B9CAD10038F4CF202 + 0BEC3C75074CBB9BA96065E3022035206093B70D62E0C17E4FAAB8D0BE703BC4 + C0BDBD1003F79EBD0BA69D8D95B1B27101901A305D0C357057B707555CE856BA + 036260908D00550C5C77E403C4C06D9DEE5431D0AB7C270DCA43AA1884040084 + 9D9394BDB809CE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Workspace closed' + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001400000014080200000002EB8A + 5A000000017352474200AECE1CE9000000097048597300000EC300000EC301C7 + 6FA8640000001B4944415478DA63FCFFFF3F03B9807154F3A8E651CDA39A0756 + 33004FE33BD9870B3EBF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open new session' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA8640000026B4944415478DA + A5945F4853511CC7BF77F76ECE25B33FC3CA8CB68294EA41E98F6464AD5EC4D1 + 2AC8C284088A12247AA8287A518A0C849E245C618F3D14D16CB2479B4D337453 + B08768461AAE657373A36D17DDDCEEEDDCEBFED6987FF6BD5CCEF79CC3F9DCEF + F99DCBA1B0063534B4C9284DA99D58E7EB8E6BBAF4396A2DC0F3770CF5E5EAAD + E6688CC377A7FB62948B0ED134B3DB33FB7B40041E3CA613BEB63F1744C248B1 + 71FB1E50121A05EBD6A3B9B10EEA52155ABB4CD8A05480A12598F5851E2580FC + CD0EA3B890E7C92B1A808BB742DFEB76E1EBB8154DF5D5903234AA2A764048C8 + D01464521AB79EBCC18CD7AF4D025B1EC7817168BA4FF43FDB2DD855C2E0FAB9 + 5A842331506435C348D06F73E0D9CB5E980CF7A924B0B9DD984AF74FD2047861 + 9EC5A8D588CE7B8D2852C8089082F04CBA3C68EF36836517EB92C0AB0F7BFE87 + C57D7081878FE5F16B6210DA8A02E88F5792710ECAA2428C4FB8303D3307AF3F + 847EBB633A09BCFCA027994610478C8F053C211E91E8D268F0CB2B94A914A4F8 + 4102938B5BEF7E3B086F4489A0730CF262D5ED24F052DB3B1122284012B903C0 + 622C815F522CFC075C2404A65085D08F3E54A9151875B851BCF702C69E9F85ED + 833955C3A656133935020A026C3813944DD1793F02DFCC9097EC83624B256C86 + 339940FD5D13D91ED92AB73C2C9B86BB4E67020FB798D6044AE8D3537D26F0C8 + 8DDEBC801F3B4F65024F6AB5AB860C1D7D21B6350357D067B1A480076A75C3C4 + 1DCA2721F95F47EC5673F5B2B74D99A63CE3947E4E3972AEC93A494A30491A8D + E0E7C8A590AE4D9BB725EC14D9E2CE9502F99A13FADCF57B6F126BB6EA8439B4 + F284F9E82F3E361DA182274D960000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open new session closed' + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001400000014080200000002EB8A + 5A000000017352474200AECE1CE9000000097048597300000EC300000EC301C7 + 6FA8640000001B4944415478DA63FCFFFF3F03B9807154F3A8E651CDA39A0756 + 33004FE33BD9870B3EBF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Site color mask' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA8640000009A4944415478DA + 6364A03260A48981A6F6DE6780943185669D3D7D70AB09CCC0FFA70E6EA1C834 + 337B1F06A0818CA3068E1A38BC0D74767424D99063B673C1B4D5E16486BDFBF7 + 230C34B1F33E09649951E2C2FFFF194E9D39B4D59C606923A3A8FE1F99FFE4FE + 4DBC7AB04A0283E01E905204B1DFBE7C8A22272C2E0D63DE077A51895803FF5B + 39F9E10FBF7D9BC06146B20BF100E25D48090000D9537415156A030000000000 + 49454E44AE426082} + end> + Left = 143 + Top = 493 + Bitmap = {} + end + object ActionImageList120: TPngImageList + Height = 20 + Width = 20 + PngImages = < + item + Background = clWindow + Name = 'Login' + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001400000014080200000002EB8A + 5A0000000674524E5300ED001C002497DDBA3A000001E44944415478DA637C2B + A3C2402E60046A5EB12A6BD2D1EE9F7F7E12A9879D853DCFBA34226C1A48B355 + FE577E552E362E562235FFFAF6FBE3ED6FC7267283341B67BF93361081CBADB6 + DF2BC9298355DBF3EF4F420F3A03194F2FBC393B5508AA59525718AEE298F72D + ABAD6A5835C3A59E5F7E8BD02CA125045771DCEFB6E52655AC9AE1522FAEBD43 + 6816D31084AB381970C77C834A87D9D48E0B351F7EBD47D60C9102325EDD788F + D02CA22A0057713AF8AEE95A6520F9F1D7FBB67335FB9EEE40930232DEDCFE80 + D02CACC487E6C23361F7218C7D4F76B49DADFAF0F33D44D064952290F1F6DE27 + 84664179DE73910F70C50D5067EBE9AABD8FB703D5182D57008ABC7FF819A159 + 4086E77CCC433C9A5B4E56EE7DB41DA8C670893C48E4C91784663E496E340D17 + E31F41187B1E6E6F3E51F1E1C77B88A0FE423920E3D3F3AF08CD3C625C706D97 + 931EEBCE930592400B9B8E56EC7EB00D4D0AC8F8F2EA1B4233B708075CC59594 + A73A73A4FB5D66371E29FFF0E31DB273205240C6D7373F109A3905D9E12AAEA5 + 3FD39A2985D5F370A9EFEF7F223473F0B1C1555CCF7AAE394D12AB66B8D48F4F + BF109AD9B811596A6FFC29193E39AC9A9F7C7AE4BCD00CC8F8F5F5375433304B + FE65FAC3C8C4C8401CF8FFEF3FF33F166896A4A83020520F260000954319A8E8 + 4E89CF0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open current session in PuTTY' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002B04944415478DA95946D4853 + 5118C7FFD739D9C664951938DFD07C5B1A112A198B8CEA43D10B82A330840AFA + 9042F5C13EF4868C28220AA4B04030413F64249AA016A5812FA899A46E694DCD + 962F394DCD96D3DADCBDA77B8F615D37BBEB81C3F3F0BFE7F99DE71CFE5C06FF + 88D4F4031FF91405DFC3CA4800C9BDE272701CC0110296237C06DC732320CA30 + 5A0B1AF99DAF9E3F0E49E08DC247B4510072EC2258D31590CF75206106B875F9 + 60F96F841E06145CCA96065E2EA8A013703FA721EBCA859A194380528569773C + 1C498514240085438BF28F4A03F36E5582B1F74261CAC5BA2005E2D3F7A3B3A2 + 184311F7311EA087C349B0E00216F83CF430CB0760DE69A8FAF210AA4B44CCF6 + DDB059CC30B599501FDA04B2A2DDFC207375A0D1083FC7480ABB2B660631FABD + 0849D842F5AE27A53033D9185E7FC6A3A7E5EE21EFC01AA35645FCFDCBE40A65 + E6A63D87B1461B4975C7CC24DE5495E26D441966D53BF80965A2BEE63B07C178 + F35A46D228B6E964D8BCCF0045A066591F6879CE5FD944EB7E7B34DAA79245C0 + 51AB85023DBC36DF7D0D2EEB63BA49A5598BD423A7F86AE9323FEC5FD1FBA20A + 6DEF086AFAC2565ECECA78788D07B38403671F04D37102B16969D0EAB6D2DDDF + C687D1575F8DEE612585BD6A7CEAF164CCDF5E63E9944BCB6FE21902072E22ED + 580EFCFCE5B0BDEFC1605B035EF66F40EBA76011A4B3A98E110105AF11F20726 + 80D5AF33101BA74164B21E1F5A1B306219407BE07534569688005E273C7BB39A + 82A61C0433FCC26C17F4135948319CC4200F1B9F70A223B808F6001DF59A2430 + DB580BDB77C0E526544C1CCBC146650FDC2E27269DE1308797605116B4EC3549 + E0CE73B52231CE760121B3E5F8A2C980457B1B84918BBC26090C8F4A108BBC65 + D5F279CC2DAA3D1A04AF4901FFFB27CA03A357057A1385A9BD59C297605603AD + 0C5FC1BF008A6D634ED5DABBE10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Rename' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA864000002984944415478DA + 9DD25D4893511807F0FF860B732D4D2DD4962E25C5FC58491A8A9664A424CB8C + CA8B283F0669589844260DE5451B5A54E4A0B0D8B409117413D98514052A19DA + 62B9B5983A12F3CD694B63EEC3CCA1B6F3CA206A36B7FFCD7BCE739EE77771CE + CB828FA10076388F2B777E8626ADD63BCEFD02A9B37C055B793C718A802F0F8A + DA0AAD4A434FDBE6441576BBC62730F7447570BA7974E46C1827045326CCE80D + E89BB5345558ED577D028BCA2ECA8E884417620511A09BA5707475CE1A2D1641 + 3560F61A7C766DDB9E98D444D58425DDB1BC258FA3D119607CA4AC6A79FB52E6 + F51D5214D8D9613BB569A2AC04F6DC00745A16DA7AB29EDE93C98E3B8F97BC06 + 3B1BF9E2CC9339F2C08D362CFDA461FC3C0D75DFAFDD85D4C4A0AB67CDE0138A + 1F1C278CA6E3331202FC96ADB019DFA3A7CBDE2A92D0E7FEEC5B33F8BC39BA2D + E7D48152FF80CD9837BD835E6DB48F1B26F98594D9EC35481E22E5E05E55C48E + 24C0E1C077C30BF4774F951DADA3DBFFEEF508AE3CC42E6D46417A0267C33E98 + 8714F8D04FEB7A678685CEB3A57FC0A29A07CBFF03633883A82DB181177E0CF3 + 339FF055F70AB7DF64E3C762B8DB7E06544AC56E0F176CDF30DA2D46D2FE4CB0 + D61F8269A00E93B664C4E736B9ED2F96285640458318E27A0552E20550EBC740 + F624C3BD1D589C56819F9C86750BC3F8A2572326FF31FCFC03DD82C460C0FB54 + 195328A7DAE05A9368BAE4E06FE280CBE5821EE9042F2E1F618945AB5E0F9967 + C0BB75A54CA1B2B11DAE35C96BA51479D9A9308E19C00A8A42A8F0B0B3CA5E15 + 24F30CD82229610A55D28770AD494E17E440181789F335F5F00FDDEEE98760E6 + 19F0566D312E352B91141B898F23E3207B929B924A945F6E002F28C42346420C + 06BC5E73664D039E72E54687E7FFD0DBFC0631E503BA9989C9D2000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Delete file' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A94944415478DAADD45B6C14 + 551807F0EFCC9999EECE656D3B6E5D5A6949400A6D6C6C2D5DB751BC24864462 + 4242E29B810715DAE59218E39B893E19DF8C292D7D101E8C31468D4F8A5562A2 + AD4BB05C4B4B050C852EB0DD965DE89EB9EF5C3C336B575BA8F8C0799A3967E6 + B77BFEDF3707F9BE0F0F73A00044088537EF03300D92F4DCBCAA9EA4D7E6835E + 3E248A0916A3D79C927A240DA086D61218606B64F9085FC3EDB22DFBD71C515F + A673F66AD87034DA0C1C1E8DC795E685F962C621645BBFEFAB21F8014221A628 + B5BB52A92E387F7E1AB2D9DC7739427650D459890D48523B87D02F9D9DED4A4B + 4B136432A7603E5FD8FF16210321783826EDAE8DC58E6E4D3D0D98C5E07B1E9C + 3C7D01F2F385CF28BA9BA25E759B72B49767B81FBA3BDBE5358906C8DE9C8333 + E7A66EDAAED7B34FD36E85E0A0243DC5B3786C4BC766311157C2173D8AFE767A + 028A774A9FEC51D583E13663C27616735FF674B48971A50EF2B78BF0FBB98B05 + CBF39EDFA7AA53CB321C16842EC0F8C7CE4DEB95B5897888BAAE0BA367276191 + E8EFF98C3F1361B9A3C9273771753119EE2C12C84C5CD42CDB7931ADEBE3C1F3 + CBC0600CCA35AD18713FB5B53CBE767D63229CB3CB0E8C4DFE019EEBFAC9B68D + 4816A24074034627A6CBB6E3BED2AF69C797E2B807AC568FC5DF3FD1F8587B6B + 530535EC4AB1A33C0FBA69C1D8F415DF74BC9D7D847CFBEF62DD170C51597E14 + 101C6BAEAFEDEE08D0BFD7ADE0DFFE3903BAEDBCB197904F57567F559056950D + DAA84E88BC9E6C6E02CC30E1FCA261C289EB59CBF29C97D2C4C8FC2F90623CC5 + BE6E10A3AF76D1B660E89AEB55BA26800B34BFF15C9E589E9F0A2AFB9FE02100 + 8995A5638DA2F06C076D8B603E583FB550A0A80FDD0D0AB014CD53F4CC42B1E0 + 95CBDD7DA679EDBE6025377F641D6D9FCD31A9921B5D3B7BB70473A6F995EFA3 + EB3287DF49D6D7018F19C8527472B134EBD0E2A7356D6E1938208A8D3CC63F6F + 1022AD1B04A1BA85295583AC651ECF95D4EDC1774D7FF4DD28663E4AD23E8C60 + 0C33860197347D4A23EAD6B7018A5570F811E9603DE63EEE11FFC1AED0F6B86A + D9E1471F9C244BF343B2FC66846E688B282089A2974D1366ACF2F2C36110219A + 9D3CB28EC5BD1B390EAE390E5C2E9769E0E8853D84DC5E59CD2149DAC923F8A2 + ABA686ABA5998ED33E2D3A6E1F7DF67035C34A41E4118541BD05DF9BB51D2FB5 + 5FD76FAD767C0D89E2369AE5374D0C23CEBAEE8253769EE9338CABF75419CB72 + DA769CCF0F18C60D78C0188A467B1896ED77C1FEB09F5897AA193ECCF1173677 + F3E8118EA7C80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Create directory' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002894944415478DA6364200384 + 8636B0312A4A9D01321FAFEA4AF346966324C7C0B0D2195EEA0A925BFFFCFDC7 + 70F7F1CBA83FFFFE1C636666517BFDEAC561A20D0C2DEC136262E169033A810B + C8354A0AB0D656901261A89FBE8941908F8B81859989E1D5BB2FAD6003373748 + 89FC6761DE0E74B009C288FF6718FFFCF5F46D78F606C40B299DE9C6CFCDB133 + DACB9C81958599C150439EE1CFDFBF6083D85899194AFBD6303C7DFDDE911162 + 18CB01597D336D253307B8718F2F9E64B877EAE055C63F7F1C2086363085954A + ADB232500E4E0FB167F8F9EB0F0323D03920030F9EB9C9B070D3F1032BBBD31C + 1937B5CA9D91D335305632B3C4F0E6E34BE719EE9E3A01E77FFBC7CBB0E57B01 + C3E4CA18061E2E36A0818C0C2078EFE96B86F639DB7E7FF9FACB9771538BDC7F + D7443BA2C271D62E75061E0147063F070386FFFFFF31F0F170325CBCF594E1C9 + CB770CAFDE7E663870E6E623B081C446CC9ACF450CE212320C2F819AF9783818 + D243EC18E6AC3BC2F0E2CDC7ED40435880E1BE136CA06FE519A20C7CF6FA0BC3 + ABF75F1914A504187A979C041ACAC770F9DA358647273FB01E38D0F0079C0E41 + 067A156F60F8F671372C7691E8FFD0C4FA1F43EEC91B1686F6E5420C6A4C4718 + 6A9A17C3931FD840CFC2A50C3F3EEF4768FA8F6E30AA05C816ED9BBB98C1AFE6 + 11AA811EF933187E7D398AE4B9FF44D0108BF7CD5B8969A07B6E37C3EF6F6730 + 5CC64884C17BE76DC06260560DC39F1F578873152C4CA196EF99BF1DD340FBE0 + 30865F9F6EA019C040800FA18FEFBE8669A0675E27C3FFBF9FD0029CB06120B0 + 7D6A27A681D69EC60CFFFE7C26A899118B05C776DFC3E2C2EC62BC06C1F9FF31 + D56C9F3609C3C0C340DA86816CF0FF905FCD637BB881FFFF139D95890200B8D8 + 399E6C933D3B0000000049454E44AE426082} + end> + Left = 145 + Top = 557 + Bitmap = {} + end + object SessionImageList144: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + Background = clWindow + Name = 'Unused' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000180000001808020000006F15AA + AF000000017352474200AECE1CE9000000097048597300000EC300000EC301C7 + 6FA864000000204944415478DA63FCFFFF3F033500E3A841A3068D1A346AD0A8 + 41A3060DBC41007F4147D1A1B250B20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Site' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA864000002524944415478DA + BD954F68D3501CC7BF599AD26DD43FB3582ADD24D56A75308A30FFAC4E45D865 + 053DECA0A0202288072F1E3C88B0C3403C78F0E241041141410F1E14B6CB40AC + DA29F6328449DDB4C5591C9D75EBDA35CD92A6CFA469435FD769DB55BF84FC78 + FFBE9FF7BE0F1206FF58CC7F01F41E1D7CC79AB883CD345672F2FB5060EC5011 + E0273B76F7005C7B73DCE50CBE7EFE885060943100BCBB1BECFE6158B8B55323 + 3574AEE408940F2388CE4CD1802E9707ADBE110CED3323AFADD21F9062D55EF9 + A259A91AE36573C73FC9C80687311B09D300E7F69DB01EBB097F0F4799E90BC9 + 2A4835734D81E91CD2AFAE21F6ED0B0D703879740CDCC2C01E937A02543F41A9 + BFD0A7434509486609522290160944996061FC2AE662511A607774C13E781BFD + 6E769579654C29D5685120480A7AE6958A8F5D417C6E9606D8B66E83F3E41D1C + E0D98A5DEB0D410612CB9A319053AA5EB7A1D8F3CB48CCFFA0011D363BF8A1BB + F076B618796A7549D48D332B7F362D57F4D9252C24E23460E3E62DD875FA3EF6 + 3A74802011C4D328645AAFA69F5CC0D2E22F1A60DDB009DD671FC26563F07359 + BFB04635F5E81CD2A9240D686BB7C27BFE314C2D0C72F9C6CD354D3E38032193 + A601164B1B7A2F3E5D977149A17BA7208A020D307366F41FF63505F0E66D1092 + 2CD1009665D76D6CBE3E53A8D20D37144529031CF107D50F775F53B65F12C144 + E8F5A8AFE61F8ECBE3A56E3E129EAC69ED9A93D4D8226AE14B6D49CCD271585A + CB9B51350E57BD00D2C97B8CF6F768981AAF1CD3F2AE1BD077FC444DF14DBC7C + D110808AE82FAA3FA266E9372EA14D285B1635270000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Opened bookmark folder-stored session folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002934944415478DA63FCFFFF3F + 032D01E3D0B700446C6A92D3666062D80C642AA2C9AFFDF1E751545803C32FB2 + 2D0019CEC8CCB85FDDDE43545C550B2AFC1F8C6F1ED8C1F0F2F6F5ADDFFF3C0A + 22D712C64DADF22F34ED5CC5C55535918461C1F68FE1C6C13D0C2F6EDF20C1C8 + FF73FD6A1EA7C02DD83551FBBF45783C92A1C816A0D3A030C52DF7F5FD3B8653 + 6BD75C015AA00B57BFB34FE3BF65541C168D782CFA8F5DEEEBFBF70CA7D66DC0 + B4C02A2A8AE1EF9F5F0C67D66D60F8F6E91339418D3DB0FEFF9F0AB440FDBF55 + 6438C3BB274F183EBDE560D0716DA08AE1DF3FDD66D83B35720FD802EBC86086 + 3BA7CE324868843208488831FCFA0E8B547CC1853F6EEE9E3CC1F0F0F2C55AA8 + 05FE0CE7B6EC6130F26F6660627ECAF0F7F72BC206FFC72F7F7ECB3686772F5E + B9022D50FB6F1DE6C57068E92606979CC50CBF3EEF0586DD5F82AE6764402F01 + 10FCFFFFFE321C5CB4F2FFB79F5FF9C016E8BB5830DCBBF08CC124208FE1D7D7 + 1338838158DF7C7EF38EE1F4A6DD9780A9491F6881EA7F391D65062636050679 + 5D03863F3FEF10702DFEB800B11F5DB9038CD3CB537C6B1EE7822DE017E56750 + 30F262E0176566F8F7E72D69AE4763831C7369EF5986D7F79F47FBD63D5906B6 + 0018E80CD691190C4C8C0F81CC3F0817FF27CF92C32B0E02E3F29BBC6FC3B347 + 8C3B7A95FFB3B0B03198B8B831FCFE721B87466C7CEC627F7EFF65387DE0D60B + BF9A4792601F6DEF56FA2FADA1CFA06517008CFD6F040C216CC9DBC777184E6D + 5CBBC1AFF67120D882AD1D0AFFD5F415180445388116FCC6110C08C048C09227 + 0F3E303CBCF5B6C4BFF6712F58FDE656B9FFF6D1F10C9CFC22A4B9F83F76F193 + EB9733BC7FFCCC1818FEE7C0166C6A967DCAC0C828C5402DF0FFFFD31F7F1F2B + C12AA8A15FE90300252963BC5E1E63A70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Closed bookmark folder-stored session folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001904944415478DA63FCFFFF3F + 032D01E3F0B08091919161738394C87F16E6ED4021135425FFCF30FEF9EBE9DB + F0EC0D2906C31C0EB6604BA334D0709603B2FA66DA4A660E280AEF9D3AC0F0F8 + E2A9AB8C7FFE389062098A059BDBE4CFC8EA9919A31B8E6609291E38E25BFDD0 + 166141ABFC7FA7E408AA85FBBEB92B18801630A258E010A44B350B0EACBB8C69 + 01D54C87020C0B7C2BCF50CDF0CDED269816F8941F62F8F2763554C97F1C34A6 + 182316B9FD7366615AE05DBA83E1DBFBF5380DC2B0E43F6EB9FD7317605AE055 + BC96E1FB87AD64B81A537EDFDCA5981678162E62F8F96917F13EC0EA13087BDF + BCD5981678E44F65F8F5F91056831889F01532BD77DE462C16E4B433FCFE760A + 8726E27CC408F5D19EF9DB302D70CFAA60F8F3E3325C0B238188C467D99EF97B + 302DB00F0E65F8F5E93A164388E523C48EEFBE812515E57530FCFFFB898041C4 + 59B27D6A37A605D69E460CFFFE7CC16B20231E5723AB3DB6FB3E96649A5D8C57 + 138ADC7FFC966C9F3609D5822DADF2478152560C540240938FF9543FB4865B40 + 4B40730B00099F45E0023335AB0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Workspace' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA864000001214944415478DA + 6364A03160A4B9050A31EB6F01AD51A589E9FF196E332AC4AEFF1FE6EB4413F3 + 576DDEC700B64048549A2616BC7BFD1462C1CC7247B0C0BC45AB1892E2C25014 + 112B864D2EBD733F9D2CB836C78F2641A495B20962C1A559BE60810D476F81E9 + 006B35BC7C4200A65E2F6D33C48273337C68E203A38C2D100B4E4DF5060B6C3D + 711B4C7B5BA8E2E5130230F566D95B21161C9BEC4D131F58E5422D383CD10B2C + B0F3F41D30ED6EAA82974F08C0D4DBE66F8358B0BFCF93263E702CDA0EB16077 + 8F075860DFB9BB60DAC948192F9F1080A9772DD901B1607B973B4D7CE059B613 + 62C1B64E8805072FDC03D3F6064A78F984004CBD57399A05D406700B826C0468 + 62C1BA231FE8E4035A5B7003C856A7890D0C0C37695FE9D3DA0200F05CA9285F + C197110000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Workspace closed' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000180000001808020000006F15AA + AF000000017352474200AECE1CE9000000097048597300000EC300000EC301C7 + 6FA864000000204944415478DA63FCFFFF3F033500E3A841A3068D1A346AD0A8 + 41A3060DBC41007F4147D1A1B250B20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open new session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA864000003634944415478DA + AD956D4813711CC7BFB7DBD6DC9A3AE703DA54B6694D0515D10CED89B4088D0A + 042B0AC2827A11BE88E855611154842F2AF28515113D62044D92155156E643C8 + 2A03B1B40795A4683ECCE9B6DBEDF670DD363D3D33D4F4C7DDFDEFC7EF7FDFCF + EFBEFF7B20B0C8283B76D52026894760D9530FAA0F3F9C5927160B283F7EB5A6 + 283FED48D3BB9E518A76E8EA2F1DB5FD05C8DB50F296144BD6FC0F4093598CDA + AA0A185F75C0D8F00C6E8715524524C452B95516A1CA980094B2FA5599804431 + A7202B9671F3E47C9E929C80AAC3DBE0623CB878FB39D4910AE8343130357762 + C4662FE501DAD40C90ABAB2093FCDB3596DB3D831DD02BAD38B0B30004412046 + A504CDF8B87340BE4C02918880B9AB1FD5D78D30D638481E90A43320ACF00CCA + 72A4F007A4421BB776A13170F00776BF0FCD4DCFB0216B05CA8A7360A7986031 + 002345220E2246E5853A74B63D458BE92EC10334C929506E3C8FD24C092F36D9 + 35CB51A64318C68DA617469C3CB805C909EA6013224E2AA0E6A23D385DDB80CE + F7AD785177790A10AFD1226A733536A789B93BC0EC773031DA4687D1D3D18873 + 953BA10A57809870D5CD78E1727BF073C8862BF71B611D77EEE60171F149882B + B98875A9E45FE2336D7AFBBA1EE59BD290B53211969131C4AAC3A15286E143F7 + 003A3EFFE0E6B0B08E39D1DDF7FB130F888E4D8066470DF2B5E48CAE4309E501 + 861D2C46C65DB07F7A084D9C0ABF066DF0B2248A72F55893A5C7FD27ED18A054 + B07F6B04E574204293BA9E074445C7415B568BEC4451108089CEC7E890B0D3CD + F24F93D7690916C93035FC5E1AF4F706ECD99A8B3B2633C2D3CBD15F5F09EBB0 + 05E626D3D41A44A8D458B9FB06D2E343008A6161B103B487C55CE11C688784EA + 855B1C03A5BE185FEA0E626C7444085086472263DF2DE8A2090C39003B3DB730 + FF7EF8BDA02C5D90A9F520A5CBD175773FECE3362140AE5022BBE21EC4DC8BE2 + F5CF5F7CB6F878732FB706762140269323EFD08345094F86F9DA2ED034250448 + 2552AC5B5BB82480E69656301E4608204972D1C2D2135F83237336153E9F6F1A + 607D692BF7E12E5892F62783459BF98DA970DE3F1C9D215BB0F2BDDD1FE775ED + 3F2771B6F572837632676897D00E59D8F4B48FB343B750009BA835F0F9405FB7 + A03EB316F07BC180824DDBE7655FDBCBC7FF05105834472CDCA2A58A3F6D1E8E + 5D9AC6B17F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open new session closed' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000180000001808020000006F15AA + AF000000017352474200AECE1CE9000000097048597300000EC300000EC301C7 + 6FA864000000204944415478DA63FCFFFF3F033500E3A841A3068D1A346AD0A8 + 41A3060DBC41007F4147D1A1B250B20000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Site color mask' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA864000001A24944415478DA + 6364A03160A48B05A6F65EC79959582DA869F0DF3FBF4F9C3EB8CD126A81F77F + 65753D06FEEF3C5431FC23E71786BB372F319C3EB895116E81A2AA36C3CA399D + 54B1203CA59CE1FEEDABA816C8296930AC99DF43150B42124B181EDDBB816A81 + 8CBC0AC3BA4513A86241505C01C3938777502D90945164D8B87432552CF08FCE + 6578FEE43EAA05E292720C9B574CA38A05BE11590C2F9F3F42B540444C8A61DB + EA5954B1C02B348DE1CDAB67A81608898833EC583B972A1678042733BC7BF312 + D5027E416186DD1B1652C502D78078868FEFDFA25AC0CB27C0B077F312AA58E0 + EC1BC3F0F9D307540BB8B879190E6C5B4E150B1CBC2219BE7DFD8C6A01070717 + C3A19DABA862819D7B18C38F1FDF502D60636563B0B5B1A68A05878F1C65F8F5 + FB17AA05CCCCCC141BCC567D1B4CFF6A5565F8FBF72F920576DE478105B71555 + 9C0F03FF198E9D3EB4D59AE80A4749C3E03F32FFDE8D0B44E9C5A908186CF780 + 94228CFFEBC777D4E0E0E044E6DE07068712A916FC9755D480F31FDFBF81228F + 2E070A6F922DB072F2232AF88EEDDB44960528414400901E44D402001D69BC19 + 62FAB43A0000000049454E44AE426082} + end> + Left = 271 + Top = 493 + Bitmap = {} + end + object SessionImageList192: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'Unused' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200802000000FC18ED + A3000000097048597300000EC300000EC301C76FA864000000284944415478DA + EDCD310D0000080330E65FF450C141D21A68DACEA5080402814020100804822F + C1020FCA5FC1C10107C40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Site' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000003204944415478DA + ED966B48536118C7FF67B7D4969AD7BCE6645ED24C11A58BA6E407A116F9210C + C46E18451FA20F411015455111047D883E4451641942D187228B0205D32EA044 + 62D6BCA0A666CDE66573BAB9B3ED748EB9E3E6DEA9733BF6A5FF97F39CE77D77 + FEBFE7791FC64BE11F8BFA0F600F720B5455EC5BB9D0860C031B28E65173FDCB + FD4E0039052A6BD2BA4CD17254DDF9ADC5D6FCB646ECDC81421593989C012AF7 + ACB01D68BA84EE8E5634D5D7502E0009CA3448379D47698E8C6B95BD6560304F + EC9263F89CE33AB7F6BA8D06FDF1027ABBBE9201E21353E19F7F11255952FE83 + F341108D1CA1E6E46AD5348C8DE7D0D7AD2603C42524435E7819AA0C294F3DF3 + 5B3666F8D8B1AAD975384313E2864E0B0CF567D0DFDB410688895722A8E82A8A + D3246EAB726730BB3E0B6A9802F446067A1383711360B630D0D59DC28FBE2E32 + 4054AC02A1C5D7B02D45B2C07933C4758B15189D6430C69AEA8CDC3B7F58BC86 + DF9CC4CF811E324064F45A446EBF8E3CA5D869B8E61B3A336B3A32C14C1B7315 + DB3BE04E9A5727A019FC4E068858138BE89D37B05121763FE1AC6CEC83AB506B + F8DBDA854C1D35F8E238867E0D9001C222A211577213D9F122E2C0596D6C0BD9 + 6AB50680B62EDED451FDCF8E413B34480608098B8462F72D6C8811390D19E735 + CC56AB9D60ABB72DCDD8AE9EA74731A2D5900156878443B9E70ED2A244FC99EB + D8811A1AE7AAF7CED8AEAEC787313AF29B0C10141C8A94B27B488AA0A6874BA3 + 074CB46F8CED6AAFAE806E6C980CB02A3018E9FB2A112EA7A6DBEDC9702D566D + 0F0F605C3F460658290F44E6C12A9F9B3AAAE5FE5E4C18F46480800039B20F55 + 0B0AF0E96E1926270D64003F3F7FE41E79222840D3ED52984C4632804CB6025B + F3F3040568687C07B3798A0C2095480531959C6EE763CB9514D016DA1580BB92 + 49C4A265B99259AC36D72B594EE18E0760A8728A82A0103397D24AF6525AE104 + E089129233887F10BD1DAD1E7F6F4900A9599B8900EACF1F7C0FC00EE717F691 + EE98B3D066E25E89543637D5C60EDB7A6F01983845AA53AEBF474DDC4BDA679F + 76AF00B614ED5A681B51EFEB9EFB04C0E5083C90F74720B4FE007DF2E030183F + CFA10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Opened bookmark folder-stored session folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000036F4944415478DA + ED95594C13511486FF5159EA9A50312A5A344A4471894B6509C6082E4442010D + 3EB82BF1414D3431FA64ABC4F842D4371F4C346A34D11713AD3146491153C3A6 + 084444402042A780554B432D50CAB4E32DAD38B7735B97D0F8C24D2673E6CCBD + F77CFF39E7CE70F8CF831B071807903EDC2A42B472D2FC32E24E614F17ABAC02 + BFE950119C6101787C71FEA5C48D074E27A49D604E6EABBA8AA6B25B97355AFE + CC98033CBA302F396AF2E44A75C1112E225AC19C3CEC1C44CD831BA2B3BF3F35 + EF9CB97A4C0188FA86A4CCACE5B10B17855CF0ADA31DEF0DCFFF319C5845B297 + 1A044025661ECE1F0B514147E9CD87D0684D54D92980AD0793C30A5072BB3A34 + 40D67E5558019EDD318506D8BE3B62C47E6B1460318B618521A38EC0ACA133B0 + D305611878655062EBC9B2F08516053C294E75E59CED8CA20036E708B0593958 + FA32B022EB1406ECE5ACD5FECB43D2E721A6CFF65D12BFD71603FDBEBBFDEB17 + D43C2EA92127424D016CDAE686B9934374FC31CC494CC6D040D3E862EF9D0BD8 + 70D4FFD316597E894FF4F9BA9ADBD05251773347CB1752001B323C6869E490B0 + A5188A1913200C75075127574807FBF58EA3607DEF1A8DB5F8FCD17C48738EBF + 4D01A4A503F5B540CAFE6B64DE2778DC7DF40612859C34D8C8BB806C04664902 + 5BADAF80BDF7BB3A57CBD750006A5291BAFA49D87CFC3A5C8E72124F90D54FAA + 9063040ADD1B225926A0F4EE2BF7379769AAF7A746012C5DC2E1CBE062ACCB3D + 8AE1815A66FD7EA7EE77CDE8B03950A97FF7811CC1246F5C0A4015C761E2EC74 + 24ACDF40EADFCAACDFC8C6224B39BB1903B3D4D36E4583B1E39E46C7EF9101C4 + 90C653A5E421365E098F6009A93074E707EF8DE6373DE868B49ECED5F1576400 + 8A480E6B77EC83624A3F59E7609E6104A867F506B349FDB0AF9FF1B059FA3335 + BAAE17328009E429A3B0109CA773E46BC5FE98C83795FB8397CA709F8763D0AD + DC5564EE95014C8F998655E9EB200C76495440A24E62535F457F0F88A2CCE74B + BFEF2E086E54BDEC3391FAC7FF8C4B012C58B90ACB366613D14E7F407A833F0D + 180CC2D6CDA35CFFF2293901D94C80C4D57150CE8C949C7FC9254A41E84C7054 + 56026D8C96E973B780B666D7798DD67C8109905E908FE9B173FF529DC7BF110D + CB9A5B6F30C2D4DA939DA7333F9501E82FAABAC9C31C84770CD905C7ACBD45BD + 7619C0FF1AE3003F002B4C7E3FD11A0AFA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Closed bookmark folder-stored session folder' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001FF4944415478DA63FCFFFF3F + C34002C651078C3A00E40046464686F90D0C1C222C727B81CEB1C2A1F6C88F3F + 8F9CC31A187E916B1936CFC21DB0A945B65BC33EBE44D52A0FABE6DB472730DC + 38B4B8CDAFE67135D51DB0B159D69C9D8BEBB869682A232B072756CDBF7F7C63 + 38B57ACEDFBF5FBE98F9363C3B4755076C6E95BBACEDECA123AAA88CD780D7F7 + EE305CDDB78BDC0038E25BFDD0168703E4FF3B2705926B305160EFBCF50C4007 + 30E274807D901E4D1D7070DD25FC0EA0A9ED5080D701BE9567686AF9E67613FC + 0EF02EDBCBF0F5DD2624A9FF54651F98338380034AB7337C7DBF856883194974 + C8FE3973F03BC0AB783DC3F78F3B48F3E17FE24361FFDC85F81DE059B482E1C7 + C7DD380C21354430E5F7CD5D42C00105F3197E7CDE8FC740CAD2C1BEB92BF13B + C0237F3AC3AF2F87A912FCD8D2C7DE796B093820B78FE1D7D713040C243F14F6 + CEDB48C00139CD0CBFBF9DA74A7063F3C09E79DBF03BC03DAB92E1CF8FAB4459 + 020E91FFF8D5A0B3F7CCDF45C00119790C7F7FDEA682CF7139601F7E07B8A527 + 33FCFBF508876104428388A8D83DFF107E07D8FA3A03A3E019037680CFA7C489 + 1FDF7D9B4049985BCFF0FFDF0F920D2656CDF6A9BDF81D60E5AE0974C06F5449 + 2A590E02C7763F20501266171369F87F1C52B8D208046C9B36099F03E43E0399 + 3C0C3404407BBEF8D53CE2C5EA808104A30E000049D3AFD07620F80900000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Workspace' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000001994944415478DA + 63641860C038EA0018432166FD2D204F954EF6DE7CB0385003D501B1EBFF6745 + BAD0C5F669CBF730001DC088E100151D73BA38E0CE9593D81DC0C3274417077C + F9F40EBB0366963B82D9F316AD62488A0BC3D048AA382EB9F4CEFD83D401B7E6 + FBD3250AD412376277C08D797E74718046D226EC0EB83607E280B5476EA26808 + B65127491C1780A9D74AC1E1802BB3E913023AA9381C7069962F98BDE1E82D14 + 0D01D66A2489E30230F57A699BB13BE0C24C5FBA8480413A0E079C9BE103666F + 3A7E1B45839FA52A49E2B8004CBD51C616EC0E3833CD872E21609285C301A7A6 + 7A83D95B4FA0FAC8DB429524715C00A6DE2C7B2B76079C98E24D9710B0C8C1E1 + 806393BDC0ECEDA7EEA068F0345321491C1780A9B7CADD86DD0147267AD12504 + 6CF27138E0D0048803769D41F5919B890A49E2B8004CBD5D010E07ECEFF7A44B + 0838166EC7EE807D7D1007EC397B1745838BB13249E2B8004CBD53110E07ECEE + F1A04B08B896ECC0EE80CA28FA348ADB97DDC6EE80ED5DEE74718067D94EEC0E + D8D6491F0778956373C040774C060A8C3A0000D2EA0930F42CE2AB0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Workspace closed' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200802000000FC18ED + A3000000097048597300000EC300000EC301C76FA864000000284944415478DA + EDCD310D0000080330E65FF450C141D21A68DACEA5080402814020100804822F + C1020FCA5FC1C10107C40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open new session' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004A04944415478DA + BD967B4C5B7514C7BFB7B485B20EC6FB551E45DE0FC165086E6C4CCC9630C666 + B274CB32896646DC1634D3B8688CC6696031E2665CD439D48D39928591195DA4 + C63FD431988BB60AC826A39A8CD7B060CBA39452FAB8D7DFBDD0DA3BEE8614EA + B9B9B9BFFE7EA7E7FBF99D73F2BB97820F6DF791FA5D623FD169FBAC29ADF9BD + 17C7847C285F02EC79B95E7D48B5B9ECA3A61F4E35D53D7BE87F05287BEE64D0 + C39949C6A3072BC4B59FAAE9EE9E3B994D27AA74EC9A4A75544A27C4245F3AFE + 97CE0D50B0A9BC91E0EC5B2900799802AFBCF43C1E2BCC84DE3089EA374FC36A + 9E803C2402A90F281993D94AE9274C056E80759BCA9DA99979226F0599E04464 + A7284051732103FCC538A82AC1B4D58ED0A0400C8D8C83661824468762DC64C1 + 0BEF3669CFD70E16FE9B81927226392D1754C16BDE018CF7A03CCB81CAED4520 + 3A60C865B33B619A9E056944F84BC49CDF2A9904EF347C0BEDEF030F35D75575 + F2009252B220297A03AA75522E0817980B769FB1C75C57C74FD89C138A2D4599 + 305966890F43AA4A2EA2C2664646B2A2EB1FC1919A0FF14DC3314E9B0790909C + 0159F15BD8992F718BDC0FC225EE09F2CBCF5750FD783E1263C3B80CB8C4A979 + BF8E9E01D4BC7F06EAB3B50B01E293D2202FA94579AE642E30E3D6E17683BBC4 + F8EB73E34EED551CD89103656C38FC48EA59010E800CD81E189FB4E0EBB6DFA0 + 6EBB5173B1AEEA751E405C420A824BDFC6D62C315F681151D7FA98510FA95987 + CA8A22926E29689A4680540291888291085B6D76381D4E38C8FC17DF7540D3DD + 57C50388512811B6B50E8FA68B17A937B3609DDD5DD775350EEF590F7F52EB21 + FD04C9000545540882E532FCD13F8ACBAD9D5C59D83F38C9DD376C1CE20144C5 + 2622AAEC0436A4F8F19AEB5E4DC7CED948BCB169067AFD1D30FA6B90C9643058 + 4813FB87809A1925E5C84370900C57343A688CF130B61FC7C8703F34AD2D0B7B + 20325A81D8ED2751A8F4131463E67FD1E431390318CC0CA6ACF3FD416EDA3605 + 917435307F1638678C887368B1AD38078D2D5AD8E22A30DC7218A3FA216180F0 + C858C4EFFC006B1344820DE7A40123D9ADC10CD89D9EF9B9B75906DA509C2645 + BBCE86C0848D18FCAA1A86D1616180D0F02828777D8C07E344BC2663B58C64B7 + 8669B27BFABF09BB8CB65B30D5FB2502934A219147E3F6A50318338C08038484 + 462065F727C88A11B96B3E39C360748ADDFDD2843D8DA11DA0447327E19F179F + C1F8D8DFC200C16BC290BEF70C522329AEB9464C80D5EEBDB090F55ED88FC909 + A330C0EAA035C8AE3C870839C5A5DB75F8ACA4DD3CFF24A64C13C200ABE441C8 + 7BAA71C5453DADABE1094C9B4DC200818172AC7DFA824F017EFD6C2F2C16B330 + 4040800C0555CD3E05D0D4AB60B5CE080348A5FED858BCC1A7006DEDD760B3CD + 0A0348C4129F888A5FED758F1DC7D26177D81702B09F64E4CBC5EB4FB2A598C3 + 49D3DAAB2D7E7C80926D9F83A1F69163DCA710EC2B0314734EDBAADECF03588A + 25A5E50A1E107DBAEE25C7F30A2023FF1141805B9DD7571E8034E70DF2C8F69C + 73D86D82BE6289F4EEA99BA4D972960BC0C42B33787383B76F09FA0AF9B9BA7D + 5900EB4B772CE626683F7E7F79450016946009B6FC12F8DAFE016AA249EA13B2 + 08A00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open new session closed' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200802000000FC18ED + A3000000097048597300000EC300000EC301C76FA864000000284944415478DA + EDCD310D0000080330E65FF450C141D21A68DACEA5080402814020100804822F + C1020FCA5FC1C10107C40000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Site color mask' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000002374944415478DA + 63641860C038EA0018C3D4CE7B0990174D6B0BFFFF67F8C7C0F87FE99983DBE2 + 501C6062E7FD5755539F891EBEBE7DFDE2BF3387B632A38680BDF77F25355D86 + 15B3DB696A79446A25C3BD5B97194E1FDCCA88E10005152D865573BB68EA80B0 + E432860777AE6177809C9206C39AF93D347540486209C3A37B37B03B4056418D + 61EDC23E9A3A2038BE88E1F1835BD81D202DA7C2B07EF1049A3A2030B680E1E9 + A33BD81D2029A3C8B071E9649A3AC03F3A97E1F993FBD81D202E25CFB079F954 + 9A3AC037329BE1E5B387D81D202621C3B065E50C9A3AC0273C83E1D58B27D81D + 202226C5B06DF52C9A3AC02B348DE1CDAB67D81D202422CEB063ED5C9A3AC023 + 3899E1DD9B97D81D202824CAB073FD7C9A3AC03D3091E1FDBBD7D81DC02F20CC + B07BE3429A3AC0D53F9EE1E387B7D81DC0CB27C0B077F3129A3AC0D93786E1F3 + A70FD81DC0CDC3C7B07FEB329A3AC0D13B8AE1EB974FD81DC0C5C5C37060FB0A + 9A3AC0C13382E1DBB72FD81DC0C1C1C97068E76A9A3AC0CE3D94E1C78FEFD81D + C0C6C6CE606B634D53071C3E7294E1D7AF9FD81DC0CAC24A134B59AA6EC2D97F + DAD4197EFFF98DE90050938C8599892E4DB23F7FFF6136C94CECBD1631FC678C + 666464A0A923A08DD285C04669128A0348010A6ABAFFB1893FB8759964F3C872 + 808681255607DCB8709CFA0E0026CE2B404A1B59ECCFEF5F58D5B2B0B2A10B5D + 0526361D4A1DF05F56510345ECF1FD1B58D56253074BED1439C0CAC98F9032AC + E0D8BE4D54710046149000288F025A0300B035FD21AB80C6790000000049454E + 44AE426082} + end> + Left = 399 + Top = 493 + Bitmap = {} + end + object ActionImageList144: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + Background = clWindow + Name = 'Login' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000029C4944415478DA63FCFFFF3F + 032D0123C802F956215F4666C6998C0C0C92D43014E8E4E7FFFEFECB7C54FD7E + 23D802850EE1A722CAFC529C02EC5471F5F70F3F19DEDCFDF8EC41C55B69B005 + 8A1DC2FFA50D45E10A4AB51B197CA443189819998936F4EFFFBF0C5B9EAE61E8 + BE5A0FE63F3DFF9AE17EC55B46B80552FA2270C5473C6F30300221E941F39FC1 + 66BB0698FDECE21B540B247584E10A8FF9DC02D3565BD488361C5DCFF32B6F51 + 2D10D712822B3EE1771B4C5B6C5225DA02743D2FAFBD43B5404C4310AEF864C0 + 1D306DBE41054C379AF431745DAC63F8FAFB0B4E0BD0F5BCBAF11ED502515501 + B8E253C177C1B4D95A6538FFC5B7670C35A7F2192EBD3D87D502743DAF6F7F40 + B500984C71BAEE74E83D7824CEBD3699610E1083520D3635A6AB95C0343099A2 + 5A20A4C8C77036FC3E51E17DF9ED7986AAE3F90CCFBE3E868BC1F41AAF5404D3 + EFEE7F42B540509E97E15CE403A223F5EB9F2F0C1D67EA18B6DE5F07E6C3F41A + 2D5700D3EF1F7E46B540409687E17CF443E22D004678FBE95AB80530BD864BE5 + C1F487C75F502DE097E266B810F788B8207A739EA1E2500EC3D32F882082E935 + 582407A63F3EFB8A6A01AF04174E032F253C8647F2CC8B13817802C3DF7F7FB1 + AAD15B200BA63FBFF8866A018F18276E17273D6178FEF52943D9FE6C860BAFCE + E0540302BAF364C0F49757DF512DE016E6802BBE92FA144CEBCC9606D39D8E93 + 199A8E56327CFD853BA3A1EBF9FAF607AA055C8288A2FA6AFA3330AD3D538AE8 + 4847D7F3EDFD4F540B38F8D9E08AAF673E07D39AD389AF7FD0F5FCF8F80BD502 + 761E5684E29CE76417D79A532016FCFCF21BD502362E16B8C266E75E8650ED68 + 922C0119BEFAEA5286DABDC560FEAF6F7F101680AA4C663626292626D25D8D0D + FCFBF79FE1EFAF7F882A93E6953E2D01008A32A1E056C0D8740000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'Open current session in PuTTY' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003204944415478DA9D946B4853 + 6118C7FFC7396F914357799D3A734D73792945D340CA0BA6416A36A12044A4C4 + 0F7D0A22BA5074F9D4A78A9090B04022F33643C49CA3A5A5A289CBEBA6B8F232 + D162E696E936F5B41D75B8DCF29C9EF3E139EFFB5C7EEF7BCEFB7F09D0B4B894 + EC210288A09B6F3112E827E826C7A7649361E75F33E98FB1CA023002082F5421 + 37960D92A456B7EE37DED748DB71F3A009CA9762668088C23738295A0738CD77 + C2BDFF0A8C3E5958125CB3022CB6BA067C185DC170C55966005151358E0B9DE1 + A2A982E7F87D78070462521F8AB9038FA05B26F1CB00E8373C69A60D3CCF6706 + 8829AE41FADA0378EB1B20CAC8C3B0EC2D642E0F31C34EB45BA328CFA30F3896 + 9A4916657941E03D8DC8F41C2CE9E6D1DE20858CF7DE1CB5DFA6F7592E3D80E4 + AEBF50FB7BD74854820861474F500D556DCD90CFA561DCABD4615D7759CECE80 + BA3B01A96C17768D203983E32B8C5AFF892B467CAA2C832CB00D4616D7616DD7 + D3D3FF0648EEF14AD86EEE4F4469392C8E5F90757E664401699302F29938BB75 + AE851ACA2B6F9B403852686C8016E2A4651CCACC87DB6E8EEDB7AD7B01FD8F59 + EA58764DEC418BCACF2EC81C1E261C2934C8D08444DD75B0C8656A2CCAC80537 + 58608DAF180D1892D6A3AE650A551D2ED4DC945AB9ED8B103B299498EF055779 + 09F1E2626C9E96A5052D06DED5A255E1845695AF39CFA6AFBA5BDE186A03D8AA + 50D2F26C0178284A112924E11F114B15FCD47CC3976609DA35228CEAF8DB763E + A91ED90ED854A8C5B6DE2926FD5704F59F42E2B9123839B33133DC87C1CE1EBC + EAE4A0BA5E4EEB885380E8E25A24ED67514D170D2466F524E61781F0EFB79012 + A646F091648C7D944235A647E7BE7274545C867995F401872FD62186E784092D + 09EDE2FA8DC55E5B40FA740A12F20A306A69AE0DC1679FC758253C28853202C4 + 97D4C3954DC06022AD01FECF72C4B32AA8D33288335072AF5A7FB245A18C0009 + A5926D013FBD04117337A1DC7B03D39E629B9845A18C002121C174726D14CA04 + D067F6D1B4081B6651688FBCF1202D80BDC940BE90DC3AB6A750BA665368DECD + B8D9F11DE4DA08E8BF013C7EB85DC0DF0AA56B7F00C86E77FA2A9D79AE000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'Rename' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA8640000033D4944415478DA + AD936B48537118C69F6D5E869B590B579AAB651AADAC54A4AB9AA576D3960466 + 1165292A2915818AA8D9302DCB42D2B0082CED538211FA25A3922423B2B2999A + D6BCCEA939DD6CF34CE765B39D2327BA796B3E9FDEFF7BDEF7F9FDF93F1C06E6 + 411280B984C30964EA74AF6280A15FBF31E60370C79613EF6867973DCC44AF5A + AD8D3B4D108FE60D906763E3C8635BCB76FA6DB1C1C4049A6B1BD1D4A72A891E + 2442E705101974F4C90E2BE3DE3DB6068CCBBBA06B53A0523DD014354888CC06 + 1C0E8FF35DEAE45C792C34189A9E1ED8665D84B2568AAE71835F2C41549A0590 + 4860B1C9D6A581B00B147AEC4AB292C99590C9DAD09B9F537AF9E39B10B33328 + CB10C46F16FB64B3ADD490D5F7A241133A52F171C430D0AF722D7B78ABDB2C40 + A944E0C877E6B7B8076E635B1B3FC1A0EF434F3B81F20AFBB8E8CC0FF9BFCEFE + 17C074FB873B8FEF0BB3B1D68161546358D984AAE786E637845C647ABA71B300 + 65E94E3BD66C5BFF52E8268405731423AA3AC8655A7C91127EE23445E59FF373 + 0290C16E5DB0BAD137CCC7C59A6D0FA35E09ADE22DAA9E698BC5A99D47FEB533 + 270019ECD6833ED98B1C5682C5E242D35C820629A1EFEF1A5A7550D2D96D1680 + 0CD65EE8D8E2B5671DDB92E30D7DDF3BA8E452D4BC5624986E7F7DAABD5903C8 + 60038EFB86B179BB01230BAADA9BA8A91E3005DBFC57B0BF01C212EF4ECC64CE + 6775E05C4003566E5C0B26773F344D05E86E6BC5ED6A6F280D2BA6DDA5004599 + 91530E188DA3A82EDC8BED418B61C1BF88316D07FAA539506844D820CE9BD63C + 3CA5601270EF5224222E14C073AD10359FDB419E6929EA5FA0ABE63104AE0608 + 3CCF62E04332DADABF43242E8615973F2D80F4A40077251154235A720F744DAB + F5FD538C754B2172F7C4B70E2974EA0A582E3B0427AFA8197323FD28407EDA29 + AA119B7E1F744DABAEBC00029E25381C0ED4CA1E6807E5703970050C066B4600 + E94701F2524F528D331985A06B5A5713227124D8171C860E4C9E0B78EBFC4DC9 + CD6C4EFB51809CE449D3F3970B41D73F830AF1C7907E14B979B97070F5989531 + 2DD28F025C4F0A477C5611DC562F47FD5739C833AD1B29718849480777E1E239 + 9993223D294056E289392FCF4649D71ECCEE4733473F0010855824F040DECC00 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000044F4944415478DAB5956D4C5B + 6514C7CFD3FBD2F6BE415B0A8C212E01C310060ECA068C2D31D12CC6A8593431 + 6ACC927DA0C5D7B8C50FC6C4D7C49868B6C56C0A2C6431BE2C6659962C4E374D + 50D9205870636C04C312824602227DA1CFBD6D6FEFBDBD3E17A15B6991F161E7 + 5B4FCFF9FF9EE79CF39C8B4CD384BB6968058010CA383F02E05F0750362A76DC + E9BCC7A4D3CE97B03A69FDB6B473003D12FFBC69A25EE2F97A16E303EF00A4EF + 44BC5B14DB6D14BA407458C3D0F6F963F1F339004B9C61D8CF77B5EF40636313 + 10FA27FC895F965F5D4FBC4BE41EA329E6744B5B939DB2D96070604453539AAF + 5396C732806E4178C6EE60BFDABDCB874451004337A07F6018A251FC764096DF + 5B4B7CF950BDAD3BB7332E5701602CC32F978204A067037A246962FBB6EAAD15 + E59B32C9A99406FD43574091E32F939B1CCB298B24BCC2D9ED475B9A1B9028F0 + 104F24A17F70C45455ED69127F3AAB445D82B09765E933BE6D357C71912B2392 + 48AA7039386AC613EA7301453995298B24BC2B72DC5BAD8D75E074D8415553D0 + 3F7C0D9484DAD189F189BC4D3E2E3ADB181BF36D534D95ABCCEBC940B0128781 + D1712DA5A7F6CDC6E2DF6F12842305E4F4ADF55B816518D0341D2E8F8E93B8C4 + 1B7E8C3F5CC9CB3B45C704A19645F0537DD5166F45A937038990DA0EDD984CE8 + 46BACF2D098FB6D4DE07144581611830343E09A198723880F1A1DB4B9817B054 + 5BA7B30218EA524D795945555949C6BFB088617A7E019A2AB700B22130D32604 + 6F4EC17C149F24273FB0BA476B0296E7BA8884FC5C59E2ADADD95C6205ACCE86 + 2BD37FC14C387A760ECB4FE57B2FFF0BB0EC084021278AE7CB5D056D0DE5A559 + 901B3373301D8AF411F14788782ADF08AF0BF8AF54745FB5D75D5955E4CEFA6F + 2A148189BF17C6152CEF390810DE30C06A3683E0626DB167F3BD055276D272EC + EF0B61988AC406758CF7BE0820DF31C01A5716E873F55E8FA74CE032FE195981 + 3F62323497149119A0967CD709E44F59BE3817931F5F5DAABC802E9E7F98A1A9 + B30FB80B79AFC391099E27AFF4B750246422F3B4483381668F1B1C34B5D4ECAB + E128CC2513DFCCC6E4676F6F760EE033417892B5A1533E572153C83219F1702A + 0523914545D78DDD9DF1F8D52E913FC8D9A88F7DEE42C4D3F492D048741116D4 + D48900963BF2027A24613F8B6C277714484858BEBE65315D875F17639A6EC243 + 64E9F5DF1A63DE8AEFF549222511884174863186A8A67FE0C7F29B7900E27803 + E7BCBF94B97572C5484350518C14184F58FB7D751397D634D8CE34F21CE32610 + 8D6805C95AC1867E288095C3AB00523B8DE04223CBF285E406492B3899345548 + EFEF88295FC01A4696E41ECA86BE6B20795E92A792BCA16412129ABE33108F07 + B37A607D952C481D4DF33749691448BFE68F2947611DEBE6B846B2987EA8A329 + 0F4374AE697A48D7345F209198CE99220B0208BE84B4D94B76FAFBEB89AFD8A7 + A2BD9A42CC8F60220ED2E907FD8A727DDD97BC512323EA280670BE40966F4E93 + EF96FD0B13694CEF65581A8D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Create directory' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000032D4944415478DAB593794854 + 5114C6BF374EB85793A6E192A464599428ED5A5A0A6AA6685222FD1304999586 + 88DA464D419B468665A4A4869495562A5A46338E4BAB4B4A890B44199A56923A + 8ED338FBEDCD8463CE9B74B4BA3CB8EBF97EDF3DE73E8A10028AA230D3169594 + BD946D423D042127EFA5C716EBEF537F0BD8999C7D3560ADC781EAC6CE21A9EC + 876BE9E544E13F047059D1298EBD594762169454B780FFBA3D470DEA3905E24D + 1196A31AF2846903A2537276D15D8A664C87B2172FB45B7622761B46E50A6414 + F06033D7128B1C6DF1E8592B0687C5A13A4039D7C196B04D2AE94BAD9A28499A + 28A52A248CDBF7FD17203BCDDD6541F29E481F6DDC7C8E35A47215341E2D4C67 + C184C54253FB2764DCE2BFBB97D6E7A505549C72A4C5D935AE6BFC963B7BAE9D + 20DFF3B61E1F1B6ADB28A5D25F03F1DFCD35B3B773A88ADCE2B5212AD01B2312 + B9C68416A611B7306523FEC25D0C0845BE45E9712FB480F2332ECDB4B897BEB8 + 1E44379711735488F7E1685C0C5C1C6C34A9028B06686E312A55807BBD1CBDFD + C2E4A2F4BD17C70064CB9E68A3EBD0F5D50C572B96E06C7C0438B32D31564299 + 5C49A74B81CFFD4264160AC890481CA303F86F5F6194386D16A7CB3623706330 + 56BA3BA37F5084F9F3ACC1B1364773670F5A3ABAA1A63587472468FBF0A55D07 + 30D6BD9458A2549204277B0EFA68A794EA0736ADF1C27A4F37143EAE07BEF130 + C7E43BDE4802B86A4A25D001C28E34199DA28EAE01A8D46AB839712012CB907A + A506D141AB71A7B201D9C782C1BFB40EE1C7BBB589D301B6A5D6423C70FFB744 + 18EA996BF44F854281151ADF73E06A2F427C8410D537729880D0E427900C954C + 29A8EBC9F858A60078CD5658EF2181CD6C25AA736F32015B931E6054F8C828F7 + 14F44B36F1AC20F736131092580099E8E9D4CEF5D708734F9057CC04041FCA82 + 7CA4CEA020358D9A68FAAABC32038083E7A090344CBBC80C23F4C7CF7FCC0404 + ED3F0CA5B495717826307E3E9F09F08BDA01B9A8C340B0B1F3F1B557BC4E03AF + 28E13C886AF88F419309EAAF5566A533013E21DE502BC5930A529342C6F75EF2 + BA0C3CD30349C6BB2693432AAF653200CFE8B12FFE592375E1C77BFC7480FFD9 + 7E020EF8EA5A9F9886D50000000049454E44AE426082} + end> + Left = 270 + Top = 557 + Bitmap = {} + end + object ActionImageList192: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'Login' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003284944415478DA63FCFFFF3F + C34002C641E300E94621395676C6F98C0CFF6D80C26CB4B1EEFFAFFF0C8C477E + FFFC9FF8B4FEDD23140728B40BED1390E575E415E364606464A48DF540BB3EBF + FACEF0E1F1E7FD0F2ADF39A13840B143E8A7B4A1281BAD2C4776C4D3F3AF7FDD + AF78C78EE600E1FFD2062234B51C069E5E78C370BFE22D238603A4F4B03BA04C + A791C14F2E9C819181F4D0F90F849B1EAD64E8BA520F177B76098703247584B1 + 1A72D4E7265996233BC27A8B3A9CFFFCCA5BEC0E90D016C26AC071DFDB60DA72 + B32AC99663D3FBE2EA3BEC0E10D714C46AC809FF3B60DA62A30AC90EC0A6F7E5 + F5F7D81D20A68EDD012703218698AF8718D2613E95A1E3420DC3879FEF093A00 + 5D2F08BCBA89C301A2AA02580D39157C174C9BAD5586F33FFE7ACFD07EAE8661 + DFD31D781D80AE17045EDFFE80DD01222AFC4405EBE9907B7036C801EDE7AA71 + 86064CADE91A25B8D89B3B1FB13B40588938079C09BB87C2FF000C8DB633D50C + FB9EECC0A9D66415C2016FEFE1708090021F5CD1D988FB44390619801CD07ABA + 0A253460E618AF50848BBD7BF009BB0304E578E18ACE453D20D901E0D0005A0E + 72C4DE47DB51CC315AA60057F3FED167EC0E1090E5812B3A1FFD906C07B49CAA + 843B00668EE15279849AC75FB03B805F9A1BAEE842EC23922D0759DA7CA20225 + 0A60E6182C96838B7D7CFA15BB03F824B989B2E8623CAAE34016361FAF60D8F3 + 703B4EB5FA0B110EF8F41C87037825B88872C0A584C770F69E87DB189A80967F + F8F11EAF5ABD05B270B1CF2FBE6177000FB031820D5C4E7A02A675E7C9C0F920 + 5F371D2D67D8FD601B5EC7A2EB05812FC046095607708B706035E44ACA5330AD + 33471A4CF7BBCC66683C520EF4F53B82A185AE1704BEBEF981DD015C42D81D70 + 350D6288F62C6906520136BDDFDEE17000A7203B5643AEA53F03D35A33A54876 + 0036BDDFDFFFC4EE000E7EEC8DE16B99CF286E90684D4738E0C7C75FD81DC0CE + 8BDD018D0E5D0C61DA316437C9565D5DC2507FA00C2EF6F3330E07B071B392ED + 4B52C0AFAFBFB13940E8272B170B300868DB2C0785C9EF6F7F309BE5A08E0933 + 2B9323130B134DADFFF7E71FC3DFDFFF303B2603DE351B2830E00E0000F44308 + DF7A6C2FDC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Open current session in PuTTY' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004594944415478DAB5977B4C53 + 571CC7BF9752E8905249E5616979D40818EAC42C9BF20A634C51D9F081DBB299 + 251B59B68492FDB12C5BFCC38465664B16B3B864642E9931332A988888718B3A + E204015948101F40A55206D442A9056A9F96B667B7175A292DA5ED75BFA43DE7 + 9EDFFD9DF339BFFBEBF9DE5288D05E2DDD731BA0B6471AEF3602745291035492 + 0C692E9BF531A652801580387323AA6B7F0021CC6E982F77BBF4DAB574DCE3A3 + 3F574F7E05F5BF4A7600228914FB6B7F64AE5D6431AD8BAD6BB1439640CD3B01 + D33302A30D1868FE129A09153B80545106F6CA7F5A71F7EEF6A98DC060010C74 + 6BB5136FBCEEEA1798D28CB103484E15E36D7903B3DAD29DDAE99DEA8C0433F4 + C20E2709183F79E5734C4FA9D9010893D6E3ADBA1358DC30605663DDD067B051 + 09B89D7A3668FC784B2DF4BA49760089C2641AE037A6D01CDA1E48C7E5906C90 + 40F5E8096EA677048D1FB9F02966F5D3EC00046B85A8A83B85A8F1266C9AFD0E + 79E57B303DA240876E075489B541E31F36D6C030A76707C0E727E0E0EE6C6493 + 566CAE38086E5C1CBACF9EC0DF924ED839C2A0F10F4E7F0893D110394049F92E + F2EED6C7C8CF4B44DE8E7DE0706330A9B88BAEFE28DC17FDB26AFC9D53EFC362 + 364506D0FAAD2867C6B246915FB005D26DA5F4C8C2347D2DBFE31F5D310C44B2 + EA1C9D5DDDB0D9ACE103B47C9356CE8DE1366F2CDA2948CD79D93B6ED26B71E3 + 5C237EED91D1BF8895A7E51C5630ADF3FB5CD8E7EDE101B41E15D7717971C765 + 6FEEE308D6A7FBF8866F5DC3B92B53E81C4D0E6346D24385A26A1C8A60D7260D + 4A367320DB79003CBEC0C7EF74D8D17DE667A7DD6A161DA8D74E8BB3727C4E1F + F5E8C315374A85A26ADB92FAF05AB60DB9A59574B17199B1E8581EA8280ED377 + 179F3B031E534E45A3A12DC17B2D4C49F374477BDBFF90FA01ACA66A71AAE388 + D5342D04B8EC88A6AC283824672ADF27A1C485475D6D500C6AD1EBAAF1DB48F7 + 8DCBA001283F8070548D3F7A0CB9825E6C2828F799DC617F86C1B64BE8BD3B83 + E67BE9B41E44054A66E00C84AA6A469305AF288B51F4CE07888D7F9E62AB6106 + 0FAE5F84654E7FACCF31F1757DFDC26B40284685A36A59C6D3284B68A20F9EFD + DE09E66849BD77AD1564DEF249D511F5C95017F60158AE6AF30E404B2F3C6725 + DE47E1F6944FBC8EA2CA32F093450BC537D48FFB1D3771BE2F0D172EB54774A8 + 51CB556DD64CF0C4F4FCD97B2CC57C1D65388AFCAA43DE621B1E31E2625F0AC6 + 268D7EC515168047D5A68D80C51EF80562BBBA1A852519584BD78BBBD894B399 + E84F6DC0E0F93A46D55801C4D307CB968FCEC0E90ABCB8C07607A57335905554 + 63E0AF160C51D5184E3AEC0EF7AA1A2B80B835F1D8FA71E38A37C93472E4AD53 + 6246A3C140E2116804EF797D1E556305C0E3BD84E2A2C2156FCAA4DA21A486A1 + 24BBF194887D7C1E55630510B3EC440BC596AB1A0B00F67FB1DCAAD6DBFE6741 + 4400C19CE1A85AA4E63721FD48547493E5EEEBB58F7D7CC154ED450290C237AA + 82060552B5FF250341EC8565E03F34C2422D497EFF330000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Rename' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000004524944415478DA + DD947B4C935718877F5F292D50CA00857229A576C2364683C286248866615361 + 0E656EE2064199447689D310D92465EC0BA222646457C7162E82098931E28697 + 6DA9669B92650351EB00B55C570AA540A137A05468D7E23E43976D52A098ECF7 + D7FBE53DE77D9E9CEFE41078C421FEB7029FB399A1CE60941284E9D41EEDD8C9 + 251520019ABF87FBB58815BCD52353D390F7F689278D53597B0D86EE25112863 + B3B205DE5E1F45AC8D8649A787E26E179A15CA319319FC2C9D6ED8A102E98929 + A16152494BDA1381CE74B63BA6E40318EFEDC39511B5725AA7176401E30E1578 + 7957F6F771B1311B57F138F03F7E0C6E1D9D68962BA09C366D7B53AFAFFBFBFA + 451510BDBB3959C77EEE744A7282D3322F367E6FEBC448D9A7C01571BDE5E8B7 + FCD39E4513384B7A7AB2BC96773139E15E2CC17EF3E8E463846A548B73E7BE33 + 72240DC2D2C606A94305EA0B832A635F8DCF60D006D12F95A2A53FFADEAF7DCF + 98DBBBE5FBBFA92EFDF2DFF62D8A407D01777DB090FF5368CC2A30A76FC07C4F + 0BA54C8D1F2FB3C4A90577365996981C265045C2C5CF7D456BDC8E1705AE4E0A + 10660D0CC31D903412534AF944C45672A0EDBFF62F58A0BE907B744DD2DA835E + BE1EA0430BA3A613A3035A345D1D3F9294D72B7AD8FE0509D49141E1818FFB4B + 22E223690C671A4C4615C6FBAFA3E1F26487D22013669030384C8024418B72E6 + 35C5A73F1FC9745D6E1964825E2646FB6D237A3BF5EBB6E6F75E9DCB9C790B7C + 7B88B72F6A43F4C71C7E20E80C3F185437A151B4A3F1E7A10ACBD167CE75CEBC + 04CE90815C9F00DFF6359BC35D18AC18CBADD760F44E2D9A7E9B189ED0A94292 + 49B5DAA102F585BC0BF1A9EB125D3C2341A3FB40233D09798F069DB715DBB7E4 + C94EDB33CB6E01CB83F35A586C546DF0D341A0B3366152751DEAAE1FD0D8203B + 9F94277BC9DE79330229EF7D6D9ECB620661C08E806ABCB08D0767EFB760364D + 63A8F143DC6A35A2569E8671B3875DF053C57B88070235871F7E6F5A2EE62024 + 4C0977CE7A10CC68A8DBBEC090BC0734DFD71114996E173C5D546E2B50756837 + 323EA84054181FCD6D3DB07ECFCE1FD76AA090542026910B576E318C23120CDD + 2C45B79C8DA8D43AD8FB37AD2C1B81F28237661A99F995A0EAD9B975B10CAEE6 + 31C0DC0A0FCE5360EA2F41D667C0CA840AB82D5B69179CE2D8087C45DE876691 + 95A0EAD9B971A60841017EF0E1F843373A04D9DD2AB80527801F7BC06E38C5B1 + 11389E9F31D378BBA00A544D65CA6880F47C0984AB9FC5845E07AD5A059D5E01 + FE06110827C6BC04AC1C1B81CFF276CD34F6169E00555391FC22868BBA154F86 + 083032A88089CD8577F8461034FABCE014C746E013D17DE8BEC32740D554CA8A + 7271F6C2256426C721717B06585CE1BCC154AC1C1B81D2DC9D338DECA3D5A06A + 2A0776BF8241951AE4916208C222170CA738360225EFEF44CEB16A8487F2D022 + 95C1FA4DA5BC241769EF88E0E2E6BE28706BAC2C1B81A21CFB1E9285E660498D + ADC092D2FFCA038147993F01C665D330F24A9E510000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Delete file' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005D44944415478DAC5975B4C53 + 7718C0BFD3734E2FE706A540A91A65334E5D41AE52449D4B96B925CBE2084F1B + 4B8C33B17889718BD9D3B261F6B498EC964D41E77C5816E38371C6A9C42C9BD1 + AD040515970E048BE5A2544AC1F65C5A7A4E7BF66FB15DA1AD80BAF8BDF4F47F + CEF7FF7EE7FB7FB783A9AA0ACF53B004008661FFABA16600BD85A28C76491A8D + FD4FDACD04D0CAB21BD023470083167B40F8F6698DB71A0C4B81247E4397C5AA + 1A6968E2A5B3590162C63538D656566EA57B9C7D100C853E68E2C5E34F6AFC3B + 86B19218B49594AE5A62CA37C29F57AECA8A2237D803E2D93480B8710DD666B3 + 55D0E6A202E003025CB9DCA18664A56127CF9F5EA8F1439CA11657895F2B2AAD + A665CB96C4D7C6C6C6C1E1E89476F8797A06C0118E9B36BEB68C369BF3939B4C + 4C3C84BFDAAFCBB2127973A720FC3E5FE32D34FD3A4EE0A7ABAB4AE94596C2F8 + 9A1A8D427BC74D7830EEFBD9EEE7DF9F0990C34DD65496E45ACC05699B8D797D + D0D1F5B7882836ED92A4AEB98C1F66980692C04FD8AA4AC982FCBCE94564A7F3 + A613EE79BC174603FC3B9FA96A7806C0518EFB25DF94BBC55661051CC7D33645 + 8AD0D9DDE3935575D31E4170667D7396DDAE2389A3B6CA122C2F974BAE77A378 + 728F781C0ACFBFB11B40480BC20318A62DE2981FF338B6D1566E052D49A66D3E + 786F14BA7BEF0C811CD9680F068766DF4731F4B141AFFDA2B6BC0458864AAEF7 + DC7143BF7BD829F1C2860F011E4E3B2443163403682C0CF31552DE5BBB663518 + F4BA3488BEC111E81D18EE4397EBED3C3F9EF2E60719836E7F1D824FD5730DDF + 07A7CB3DA44454DB6E51F424D61F5B075A18E653CAA03BB0AE64253094210DC2 + 393004AE7B9E2E25C0BFEA05902C2CFB03471BB6D521682D49249F1B46C776A3 + 6FC0034AC436DB638F0588BB9363F66A71E2EB5AEB4B580E4DCD24403A37905B + 47BCBECB48DB67E298FADAD52B66C48E676212AEDD1EF0CB51757DA698991320 + 1ECD1CDD4862F8F1DA55CBC93C964983B8D67F37F603D52B8A41A3D1246F8D07 + 78E8B83D2086A3F2E6DD7CD0912958E70530ED09EA2D0CF053D5CB8B75E694A8 + 9EB1498AAE5F94C071DB25875565CBAE807401B2C8BC01E210A842A2DB6D654B + 17D34BF272B33E278442E0E8BBAB4E2991779B04E1243C4616041087A0E952E4 + E73F5E5E54687A21515C52241496C1313008C129B9C92E08AD30872C1C80A22A + 51945DB45A0A4CC519BC109211807B2406B00B011C7EA600F126858E608DA590 + 5EC4B1599F13C361681F1C51A7E4486393289E7826002D2CF5368EE1A7AA8A0A + C98259E9984937303505ED23A3720422F5F68074EEA9005A597A2B81698EAD2D + 2AC48DB3AA624CAF6B6CBA10561498004F49C309148C573D5E1165C293A7612B + 47EFD362F89735E67C8C9DDD1790CE2DD4A6EF8BD2A5582132EAB40DD5088248 + 81782005E1866F920F47D5750B2E442D1CF33985E39FD4988C4011C46C5DE8F1 + F3E016A564292E62E92308727B2DCA0E3205E23E82B835E9F74664A5666728E4 + 9E13A039D68C38E61B0627F6541B73409FA12DBB0411FA05A9175D6E9CDD8C28 + 5CB3DF863224550F8142AF20CCDD8C12EDD848908D55A8ECA6BE494286D1D93A + 45316B3B6E61E9FD7A0D7E702DC70143FC07D12F49E092824E91175EF9088548 + 4680D8409247125B2A50A4E319027214A5D82D31E893215CB7879FEA832C8220 + B66951E0563234969B727CFFA0E3189E0A671F48622359B95E9F6B26D3CFDCAB + 2870331812D15C38BF918C65EB49504F965306323F05A23B18028FA2641EC90E + 71549D16232E96EB747441CA193E8C44A03384EA9C0A9BD1507A692EE3494FD0 + F46B38AE39B346ABA5CD8F2062B6AEA33AE18D464EA0A1F4BDB420FC9E35C421 + CA08220E21A229B6231C5665C0EA9B78FECC7C8D273D6130D46808E2BC95244C + 8B1FBD940FEDD92587D3C7F2441A262056E238ED521455C6D4AD3B02E24F0B35 + 9E90F8878906CEAFC089A54664A34B96E50816ADDFE117CF6504484010801F46 + 9F66C79ED9A719415C4487F02220E3B112BDE06EF8B4D28C3E4E73693A679F28 + 3E88FD4F03785EF22F94D231EEF16B1BE90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Create directory' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004224944415478DAC5947D4C5B + 5518C69F5BFAC9360820D94429CEA9B171CEC464824CC362D58D194A9D29982C + C630B57C085387B09030D7C9F8C375CCC8740BC887C445AD8866E8EA062B7533 + 6333B03043D8161A050A43C04129D0AEB4F45EEFADA2EB76B9BD2BC5BD374DCE + 39F79CE7FDBDCF797B098AA2C00441100875641455BF240C13547966A71E6AFC + 70E704DB1E6229013277551BF3341B530F1BCC470CFAECBCFF1520B5A032E209 + C57DE3BADC3461798D91ECBE7C556138A8ED65DE69343A3129BFFBFEA68A3F7A + 970C20B3B87ADB76F586A3CA440546AED95158F1CD590AE4058948982C5F15B3 + 6E72DA291E999C5A1F3200DAEEC9B56BEE899CD7914A84C8D5A4C0E1F2203A22 + 1C43A3369074AE8455D1B04D39F1CE0143E7E7E583892103C828AA2A566D7CEC + 836D5B12C14852F4E3F67831E59805DD88908885CC2296C944D8FF590BD57969 + E0F146BDF6A21F40BD0ED21861BC999E25B125A111DBAFCD5995593AB816B0FD + 5056FA86FCE792149872CE82D1269887F85B5F46BBD23B308AB2AAE35506BD36 + C7A7792340F3BE78FDC329AFBEFB60F20ED62A2DED95B872BAE180AA74B088DD + 079D20B338AEA93C5FAD4E888BF139309F9CF197C9D475D98A8FBE30D51AF66B + 5FF7033856169F28090F3FB75EF3062192CA58E53DAEEBE868FC949A753A9F54 + BF37F40BDB9E9777551B74B9AA8CD57177218CB69EF8A7380684E9019BDD89E6 + D3BFE2C4D99E7D5FEBB5BBFF05F8BE5CDEFD8872F3DAD8D56B38EFFACFBEDFD0 + 633AC9FA6ECC2B87E381BD78252D89B65B0C922421158B20101018A713BBDC1E + 78E7BC98A3D7BF3575A1A3BB5F7B034002A5DCFE62D04D485204CA0D0A646D55 + 4342DFF5D5D1495FE27B57462172B90C968131BAF28BBE6B61BAD44BFFFA87C7 + 87FC0052B6AE0B1AE0D2702C1ACE2B11111E062961853C7A0296B195503D9B8E + C808197EEAE885F0CAFBC8D1B5F9FDDDFC0082CE0EA6C1049826A3B04260A3EF + 9DF4AD8D7BE3D0175B82D4A71EC5973F9CC133E45EA84BFB1606482BE95C0C03 + 6B7C6CB8009178193C6E07127ECF86AAD4BA30C00BC52638269AFDEA5AECD836 + 23C09E8628E4A9EC18397928004091110EDB71DE49089E206E0F01B18882B9A6 + 861B604BE177B86E3F717BD552FC1D31D7367003A4EEFC0A2E7B4BD0B6FB3B72 + EBFBB6DAA30100DEAE876BDACC21B8B89E68AB3570036C7EEB08DC333F87C47E + B6FE30D5350500283808B7E3FC2D07F9365BA0B1A9EE580080FC32789C5D4188 + F3EB8F5375466E804D79259873F5F016FC6FCA0FF6547D4B00809C1DF0CE5A42 + 62373B401B37C0F3D9AF81745B17100BE0068F6B69AD3FC30DF0749A92BE8261 + B00757A5FCD6CFB55A027C090BF680225DB72DCC77CF8F9F547003246F52D000 + 1EBFE344889233D1DEDA1FE04BF866E14D070308530BACDF349ECF683C5CC905 + 209FA6A7CBB18441E79A49DF3DB88215E04EC51D07F80B8CCA82E42EA50F1200 + 00000049454E44AE426082} + end> + Left = 398 + Top = 557 + Bitmap = {} + end end diff --git a/source/forms/Login.h b/source/forms/Login.h index 7d2589e9..92673795 100644 --- a/source/forms/Login.h +++ b/source/forms/Login.h @@ -18,6 +18,7 @@ #include //---------------------------------------------------------------------------- #include +#include #include #include #include @@ -167,13 +168,43 @@ class TLoginDialog : public TForm TMenuItem *OpeninPuTTY3; TAction *PasteUrlAction; TMenuItem *Paste1; - TAction *GenerateUrlAction; + TAction *GenerateUrlAction2; TMenuItem *GenerateSessionURL1; TMenuItem *GenerateSessionURL2; TAction *CopyParamRuleAction; TMenuItem *TransferSettingsRule1; TGroupBox *NoteGroup; TMemo *NoteMemo; + TPanel *ComponentsPanel; + TPngImageList *SessionImageList120; + TPngImageList *ActionImageList120; + TAction *SearchSiteNameStartOnlyAction; + TAction *SearchSiteNameAction; + TAction *SearchSiteAction; + TMenuItem *Options1; + TMenuItem *IncrementalSearch1; + TMenuItem *SearchSiteNameStartOnly1; + TMenuItem *SearchSiteName1; + TMenuItem *SearchSite1; + TMenuItem *Options2; + TMenuItem *IncrementalSearch2; + TMenuItem *AllMajorSiteFields1; + TMenuItem *AnyPartofSiteName1; + TMenuItem *BeginningofSiteNameOnly1; + TMenuItem *Options3; + TMenuItem *IncrementalSearch3; + TMenuItem *AllMajorSiteFields2; + TMenuItem *AnyPartofSiteName2; + TMenuItem *BeginningofSiteNameOnly2; + TMenuItem *Options4; + TMenuItem *IncrementalSearch4; + TMenuItem *AllMajorSiteFields3; + TMenuItem *AnyPartofSiteName3; + TMenuItem *BeginningofSiteNameOnly3; + TPngImageList *SessionImageList144; + TPngImageList *SessionImageList192; + TPngImageList *ActionImageList144; + TPngImageList *ActionImageList192; void __fastcall DataChange(TObject *Sender); void __fastcall FormShow(TObject *Sender); void __fastcall SessionTreeDblClick(TObject *Sender); @@ -245,8 +276,11 @@ class TLoginDialog : public TForm void __fastcall LoginButtonDropDownClick(TObject *Sender); void __fastcall PasteUrlActionExecute(TObject *Sender); void __fastcall HostNameEditExit(TObject *Sender); - void __fastcall GenerateUrlActionExecute(TObject *Sender); + void __fastcall GenerateUrlAction2Execute(TObject *Sender); void __fastcall CopyParamRuleActionExecute(TObject *Sender); + void __fastcall SearchSiteNameStartOnlyActionExecute(TObject *Sender); + void __fastcall SearchSiteNameActionExecute(TObject *Sender); + void __fastcall SearchSiteActionExecute(TObject *Sender); private: int NoUpdate; @@ -256,8 +290,6 @@ class TLoginDialog : public TForm TStoredSessionList * FStoredSessions; int FOptions; bool FInitialized; - bool FLocaleChanging; - void * FSystemSettings; TWndMethod FOldSessionTreeProc; TTreeNode * FHintNode; TTreeViewScrollOnDragOver * FScrollOnDragOver; @@ -269,13 +301,13 @@ class TLoginDialog : public TForm bool FSitesIncrementalSearchHaveNext; int FBasicGroupBaseHeight; int FNoteGroupOffset; - TRect FSavedBounds; bool FEditing; bool FRenaming; - TSize FOriginalSize; bool FForceNewSite; bool FLoading; bool FSortEnablePending; + std::unique_ptr FButtonImageList; + TSiteSearch FSiteSearch; void __fastcall LoadSession(TSessionData * SessionData); void __fastcall LoadContents(); @@ -309,8 +341,6 @@ class TLoginDialog : public TForm bool __fastcall SessionAllowDrop(TTreeNode * DropTarget); int __fastcall DefaultPort(); void __fastcall MasterPasswordRecrypt(TObject * Sender); - void __fastcall SaveOpenedStoredSessionFolders( - TTreeNode * Node, TStrings * OpenedStoredSessionFolders); void __fastcall LoadOpenedStoredSessionFolders( TTreeNode * Node, TStrings * OpenedStoredSessionFolders); bool __fastcall HasNodeAnySession(TTreeNode * Node, bool NeedCanLogin = false); @@ -358,6 +388,7 @@ class TLoginDialog : public TForm void __fastcall ParseHostName(); void __fastcall ResetNewSiteData(); TModalResult __fastcall DefaultResult(); + int __fastcall AddLoginButtonImage(bool Enabled); protected: void __fastcall Default(); diff --git a/source/forms/MessageDlg.cpp b/source/forms/MessageDlg.cpp index 92f53824..a7a2dd96 100644 --- a/source/forms/MessageDlg.cpp +++ b/source/forms/MessageDlg.cpp @@ -69,9 +69,11 @@ class TMessageForm : public TForm const TQueryButtonAlias * Aliases, unsigned int AliasesCount, unsigned int TimeoutAnswer, TButton ** TimeoutButton, const UnicodeString & ImageName, const UnicodeString & NeverAskAgainCaption, const UnicodeString & MoreMessagesUrl, - TSize MoreMessagesSize); + TSize MoreMessagesSize, const UnicodeString & CustomCaption); virtual int __fastcall ShowModal(); + void __fastcall InsertPanel(TPanel * Panel); + void __fastcall NavigateToUrl(const UnicodeString & Url); protected: __fastcall TMessageForm(TComponent * AOwner); @@ -94,6 +96,7 @@ class TMessageForm : public TForm typedef std::map TAnswerButtons; UnicodeString MessageText; + TPanel * ContentsPanel; TMemo * MessageMemo; TPanel * MessageBrowserPanel; TWebBrowserEx * MessageBrowser; @@ -111,9 +114,8 @@ class TMessageForm : public TForm TButton * __fastcall CreateButton( UnicodeString Name, UnicodeString Caption, unsigned int Answer, TNotifyEvent OnClick, bool IsTimeoutButton, - int GroupWith, TShiftState GrouppedShiftState, + int GroupWith, TShiftState GrouppedShiftState, bool ElevationRequired, TAnswerButtons & AnswerButtons, bool HasMoreMessages, int & ButtonWidths); - bool __fastcall ApplicationHook(TMessage & Message); }; //--------------------------------------------------------------------------- __fastcall TMessageForm::TMessageForm(TComponent * AOwner) : TForm(AOwner, 0) @@ -161,8 +163,7 @@ void __fastcall TMessageForm::UpdateForShiftState() { TShiftState ShiftState = - KeyboardStateToShiftState() * - (TShiftState() << ssShift << ssCtrl << ssAlt); + KeyboardStateToShiftState() * AllKeyShiftStates(); if (FShiftState != ShiftState) { @@ -184,8 +185,8 @@ void __fastcall TMessageForm::UpdateForShiftState() { Button->Caption = CopyToChar(Item->Caption, L'\t', false); Button->ModalResult = Item->Tag & 0xFFFF; - assert(Button->OnClick == NULL); - assert(Item->OnClick == MenuItemClick); + DebugAssert(Button->OnClick == NULL); + DebugAssert(Item->OnClick == MenuItemClick); break; } } @@ -274,7 +275,7 @@ UnicodeString __fastcall TMessageForm::GetFormText() { MessageBrowser->SelectAll(); MessageBrowser->CopyToClipBoard(); - if (TextFromClipboard(MoreMessages, true)) + if (NonEmptyTextFromClipboard(MoreMessages)) { if (!EndsStr(sLineBreak, MoreMessages)) { @@ -302,7 +303,7 @@ UnicodeString __fastcall TMessageForm::GetReportText() } // Currently we use browser for updates box only and it has help context, // and does not have Report button, so we cannot get here. - assert(MessageBrowser == NULL); + DebugAssert(MessageBrowser == NULL); Text = NormalizeNewLines(Text); UnicodeString ReportErrorText = NormalizeNewLines(FMTLOAD(REPORT_ERROR, (L""))); Text = ReplaceStr(Text, ReportErrorText, L""); @@ -366,7 +367,7 @@ int __fastcall TMessageForm::ShowModal() int Result = TForm::ShowModal(); - Application->UnhookMainWindow(ApplicationHook); + UnhookFormActivation(this); return Result; } @@ -385,26 +386,6 @@ void __fastcall TMessageForm::SetZOrder(bool TopMost) } } //--------------------------------------------------------------------------- -bool __fastcall TMessageForm::ApplicationHook(TMessage & Message) -{ - bool Result = false; - // If application is restored, message box is not activated, do it manually. - // We cannot do this from TApplication::OnActivate because - // TApplication.WndProc resets focus to the last active window afterwards. - // So we override CM_ACTIVATE implementation here completelly. - if ((Message.Msg == CM_ACTIVATE) && FShowNoActivate) - { - ::SetFocus(Handle); - // VCLCOPY - if (Application->OnActivate != NULL) - { - Application->OnActivate(Application); - } - Result = true; - } - return Result; -} -//--------------------------------------------------------------------------- void __fastcall TMessageForm::CMShowingChanged(TMessage & Message) { if (Showing && FShowNoActivate) @@ -422,7 +403,7 @@ void __fastcall TMessageForm::CMShowingChanged(TMessage & Message) DoShow(); // - also we skip applying TForm::Position (VCLCOPY) - if (ALWAYS_TRUE(Position == poOwnerFormCenter)) + if (DebugAlwaysTrue(Position == poOwnerFormCenter)) { TCustomForm * CenterForm = Application->MainForm; TCustomForm * OwnerForm = dynamic_cast(Owner); @@ -452,12 +433,13 @@ void __fastcall TMessageForm::CMShowingChanged(TMessage & Message) } SetBounds(X, Y, Width, Height); // We cannot call SetWindowToMonitor(). - // We cannot set FPosition = poDesigned, so worlarea-checking code + // We cannot set FPosition = poDesigned, so workarea-checking code // in DoFormWindowProc is not triggered } - // wait for application to be activate to activate ourself - Application->HookMainWindow(ApplicationHook); + // If application is restored, message box is not activated, do it manually. + // Wait for application to be activate to activate ourself. + HookFormActivation(this); } else { @@ -496,8 +478,6 @@ void __fastcall TMessageForm::DoShow() { UseSystemSettingsPost(this); - TForm::DoShow(); - if (!MessageBrowserUrl.IsEmpty() && // Guard against repeated calls to DoOpen() (MessageBrowser == NULL)) @@ -511,11 +491,16 @@ void __fastcall TMessageForm::DoShow() MessageBrowser->Navigate(MessageBrowserUrl.c_str()); } + + // Need OnShow to be called only after MessageBrowser is created, + // so that the implementation (InsertDonateLink) can call InsertPanelToMessageDialog + TForm::DoShow(); + } //--------------------------------------------------------------------------- void __fastcall TMessageForm::MenuItemClick(TObject * Sender) { - TMenuItem * Item = NOT_NULL(dynamic_cast(Sender)); + TMenuItem * Item = DebugNotNull(dynamic_cast(Sender)); ModalResult = (Item->Tag & 0xFFFF); } //--------------------------------------------------------------------------- @@ -541,8 +526,8 @@ void __fastcall TMessageForm::ButtonDropDownClick(TObject * /*Sender*/) //--------------------------------------------------------------------------- const ResourceString * Captions[] = { &_SMsgDlgWarning, &_SMsgDlgError, &_SMsgDlgInformation, &_SMsgDlgConfirm, NULL }; -const wchar_t * IconIDs[] = { IDI_EXCLAMATION, IDI_HAND, IDI_ASTERISK, - IDI_QUESTION, NULL }; +const wchar_t * ImageNames[] = { L"Warning", L"Error", L"Information", + L"Help Blue", NULL }; const int mcHorzMargin = 10; const int mcVertMargin = 13; const int mcHorzSpacing = 12; @@ -575,7 +560,7 @@ static UnicodeString __fastcall GetKeyNameStr(int Key) TButton * __fastcall TMessageForm::CreateButton( UnicodeString Name, UnicodeString Caption, unsigned int Answer, TNotifyEvent OnClick, bool IsTimeoutButton, - int GroupWith, TShiftState GrouppedShiftState, + int GroupWith, TShiftState GrouppedShiftState, bool ElevationRequired, TAnswerButtons & AnswerButtons, bool HasMoreMessages, int & ButtonWidths) { UnicodeString MeasureCaption = Caption; @@ -590,12 +575,17 @@ TButton * __fastcall TMessageForm::CreateButton( &TextRect, DT_CALCRECT | DT_LEFT | DT_SINGLELINE | DrawTextBiDiModeFlagsReadingOnly()); int CurButtonWidth = TextRect.Right - TextRect.Left + ScaleByTextHeightRunTime(this, 16); + if (ElevationRequired && IsVista()) + { + // Elevation icon + CurButtonWidth += ScaleByTextHeightRunTime(this, 16); + } TButton * Button = NULL; if (SupportsSplitButton() && (GroupWith >= 0) && - ALWAYS_TRUE(AnswerButtons.find(GroupWith) != AnswerButtons.end())) + DebugAlwaysTrue(AnswerButtons.find(GroupWith) != AnswerButtons.end())) { TButton * GroupWithButton = AnswerButtons[GroupWith]; @@ -606,7 +596,7 @@ TButton * __fastcall TMessageForm::CreateButton( // cannot handle subitems with shift state, // if the button has its own handler // (though it may not be the case still here) - assert(GroupWithButton->OnClick == NULL); + DebugAssert(GroupWithButton->OnClick == NULL); TMenuItem * Item = new TMenuItem(GroupWithButton->DropDownMenu); GroupWithButton->DropDownMenu->Items->Add(Item); @@ -614,7 +604,7 @@ TButton * __fastcall TMessageForm::CreateButton( Item->Caption = GroupWithButton->Caption; Item->OnClick = MenuItemClick; - assert(GroupWithButton->ModalResult <= 0xFFFF); + DebugAssert(GroupWithButton->ModalResult <= 0xFFFF); Item->Tag = GroupWithButton->ModalResult; Item->Default = true; } @@ -638,7 +628,7 @@ TButton * __fastcall TMessageForm::CreateButton( else { // do not support combined shift states yet - assert(GrouppedShiftState == TShiftState()); + DebugAssert(GrouppedShiftState == TShiftState()); } Item->Caption = Caption; @@ -649,7 +639,7 @@ TButton * __fastcall TMessageForm::CreateButton( else { Item->OnClick = MenuItemClick; - assert((Answer <= 0xFFFF) && (GrouppedShiftState.ToInt() <= 0xFFFF)); + DebugAssert((Answer <= 0xFFFF) && (GrouppedShiftState.ToInt() <= 0xFFFF)); Item->Tag = Answer + (GrouppedShiftState.ToInt() << 16); } @@ -665,6 +655,8 @@ TButton * __fastcall TMessageForm::CreateButton( ButtonWidths += CurButtonWidth - GroupWithButton->Width; GroupWithButton->Width = CurButtonWidth; } + + DebugAssert(!ElevationRequired); } else { @@ -698,12 +690,43 @@ TButton * __fastcall TMessageForm::CreateButton( { Button->Width = CurButtonWidth; } + + Button->ElevationRequired = ElevationRequired; ButtonWidths += Button->Width; } return Button; } //--------------------------------------------------------------------------- +void __fastcall TMessageForm::InsertPanel(TPanel * Panel) +{ + if (DebugAlwaysTrue(MessageBrowser != NULL)) + { + // we currently use this for updates message box only + TControl * ContentsControl = static_cast(DebugNotNull(MessageBrowser))->Parent; + + Panel->Width = ContentsControl->Width; + Panel->Left = ContentsControl->Left; + int ContentsBottom = ContentsControl->Top + ContentsControl->Height; + Panel->Top = ContentsBottom + ((ContentsPanel->Height - ContentsBottom) / 2); + Height = Height + Panel->Height; + ContentsPanel->Height = ContentsPanel->Height + Panel->Height; + Panel->Parent = ContentsPanel; + // The panel itself does not need this, as the ParentBackground (true by default) + // has the same effect, but an eventual TStaticText on the panel + // uses a wrong background color, if panel's ParentColor is not set. + Panel->ParentColor = true; + } +} +//--------------------------------------------------------------------------- +void __fastcall TMessageForm::NavigateToUrl(const UnicodeString & Url) +{ + if (DebugAlwaysTrue(MessageBrowser != NULL)) + { + NavigateBrowserToUrl(MessageBrowser, Url); + } +} +//--------------------------------------------------------------------------- void __fastcall AnswerNameAndCaption( unsigned int Answer, UnicodeString & Name, UnicodeString & Caption) { @@ -779,7 +802,7 @@ void __fastcall AnswerNameAndCaption( break; default: - FAIL; + DebugFail(); throw Exception(L"Undefined answer"); } } @@ -793,9 +816,9 @@ static int __fastcall CalculateWidthOnCanvas(UnicodeString Text, void * Arg) TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, TStrings * MoreMessages, TMsgDlgType DlgType, unsigned int Answers, const TQueryButtonAlias * Aliases, unsigned int AliasesCount, - unsigned int TimeoutAnswer, TButton ** TimeoutButton, const UnicodeString & ImageName, + unsigned int TimeoutAnswer, TButton ** TimeoutButton, const UnicodeString & AImageName, const UnicodeString & NeverAskAgainCaption, const UnicodeString & MoreMessagesUrl, - TSize MoreMessagesSize) + TSize MoreMessagesSize, const UnicodeString & CustomCaption) { unsigned int DefaultAnswer; if (FLAGSET(Answers, qaOK)) @@ -884,7 +907,7 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, { if (FLAGSET(Answers, Answer)) { - assert(Answer != mrCancel); + DebugAssert(Answer != mrCancel); UnicodeString Caption; UnicodeString Name; @@ -893,6 +916,7 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, TNotifyEvent OnClick = NULL; int GroupWith = -1; TShiftState GrouppedShiftState; + bool ElevationRequired = false; if (Aliases != NULL) { for (unsigned int i = 0; i < AliasesCount; i++) @@ -906,7 +930,8 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, OnClick = Aliases[i].OnClick; GroupWith = Aliases[i].GroupWith; GrouppedShiftState = Aliases[i].GrouppedShiftState; - assert((OnClick == NULL) || (GrouppedShiftState == TShiftState())); + ElevationRequired = Aliases[i].ElevationRequired; + DebugAssert((OnClick == NULL) || (GrouppedShiftState == TShiftState())); break; } } @@ -916,10 +941,10 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, // value that the answer to be grouped with if (GroupWith >= 0) { - if (ALWAYS_FALSE(GroupWith >= static_cast(Answer)) || - ALWAYS_FALSE(Answer == TimeoutAnswer) && - ALWAYS_FALSE(Answer == DefaultAnswer) && - ALWAYS_FALSE(Answer == CancelAnswer)) + if (DebugAlwaysFalse(GroupWith >= static_cast(Answer)) || + DebugAlwaysFalse(Answer == TimeoutAnswer) && + DebugAlwaysFalse(Answer == DefaultAnswer) && + DebugAlwaysFalse(Answer == CancelAnswer)) { GroupWith = -1; } @@ -929,19 +954,19 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, if (Answer == qaHelp) { - assert(OnClick == NULL); + DebugAssert(OnClick == NULL); OnClick = Result->HelpButtonClick; } if (Answer == qaReport) { - assert(OnClick == NULL); + DebugAssert(OnClick == NULL); OnClick = Result->ReportButtonClick; } TButton * Button = Result->CreateButton( Name, Caption, Answer, - OnClick, IsTimeoutButton, GroupWith, GrouppedShiftState, + OnClick, IsTimeoutButton, GroupWith, GrouppedShiftState, ElevationRequired, AnswerButtons, HasMoreMessages, ButtonWidths); if (Button != NULL) @@ -954,7 +979,7 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, { ButtonHeight = Button->Height; } - assert(ButtonHeight == Button->Height); + DebugAssert(ButtonHeight == Button->Height); AnswerButtons.insert(TAnswerButtons::value_type(Answer, Button)); @@ -983,38 +1008,33 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, ButtonSpacing * (ButtonControls.size() - 1); } - assert((ButtonHeight > 0) && (ButtonWidths > 0)); + DebugAssert((ButtonHeight > 0) && (ButtonWidths > 0)); - TPanel * Panel = new TPanel(Result); + TPanel * Panel = CreateBlankPanel(Result); + Result->ContentsPanel = Panel; Panel->Name = L"Panel"; Panel->Parent = Result; Panel->Color = clWindow; Panel->ParentBackground = false; Panel->Anchors = TAnchors() << akLeft << akRight << akTop; - Panel->BevelOuter = bvNone; - Panel->BevelKind = bkNone; Panel->Caption = L""; int IconWidth = 0; int IconHeight = 0; - const wchar_t * IconID = IconIDs[DlgType]; - if ((IconID != NULL) || !ImageName.IsEmpty()) + UnicodeString ImageName = AImageName; + if (ImageName.IsEmpty() && + DebugAlwaysTrue(ImageNames[DlgType] != NULL)) + { + ImageName = ImageNames[DlgType]; + } + + if (DebugAlwaysTrue(!ImageName.IsEmpty())) { TImage * Image = new TImage(Panel); Image->Name = L"Image"; Image->Parent = Panel; - if (!ImageName.IsEmpty()) - { - LoadResourceImage(Image, ImageName); - } - else - { - // Until Windows 8, LoadIcon for IDI_XXX always returns 32x32 image. - // Since Windows 8.1, it returns image adjusted for DPI. - // For 125%, it's scaled version. For 150%, there's native larger version. - Image->Picture->Icon->Handle = LoadIcon(0, IconID); - } + LoadDialogImage(Image, ImageName); Image->SetBounds(HorzMargin, VertMargin, Image->Picture->Width, Image->Picture->Height); IconWidth = Image->Width + HorzSpacing; IconHeight = Image->Height; @@ -1056,7 +1076,7 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, ApplyTabs(BodyMsg, HairSpace, CalculateWidthOnCanvas, Result->Canvas); } - assert(MainMsg.Pos(L"\t") == 0); + DebugAssert(MainMsg.Pos(L"\t") == 0); int IconTextWidth = -1; int IconTextHeight = 0; @@ -1083,7 +1103,7 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, break; default: - FAIL; + DebugFail(); break; } @@ -1101,7 +1121,7 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, if (LabelFont != 0) { Message->Font->Handle = LabelFont; - if (ALWAYS_TRUE(LabelFont == MainInstructionFont)) + if (DebugAlwaysTrue(LabelFont == MainInstructionFont)) { Configuration->Usage->Set(L"ThemeMainInstructionFontSize", Message->Font->Size); } @@ -1134,7 +1154,7 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, } } - assert((IconTextWidth > 0) && (IconTextHeight > 0)); + DebugAssert((IconTextWidth > 0) && (IconTextHeight > 0)); IconTextHeight = Max(IconTextHeight, IconHeight); @@ -1149,7 +1169,7 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, { if (MoreMessages != NULL) { - assert(MoreMessagesUrl.IsEmpty()); + DebugAssert(MoreMessagesUrl.IsEmpty()); TMemo * MessageMemo = new TMemo(Panel); MoreMessagesControl = MessageMemo; @@ -1163,14 +1183,12 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, Result->MessageMemo = MessageMemo; } - else if (ALWAYS_TRUE(!MoreMessagesUrl.IsEmpty())) + else if (DebugAlwaysTrue(!MoreMessagesUrl.IsEmpty())) { - TPanel * MessageBrowserPanel = new TPanel(Panel); + TPanel * MessageBrowserPanel = CreateBlankPanel(Panel); MessageBrowserPanel->Parent = Panel; MessageBrowserPanel->Anchors = TAnchors() << akLeft << akRight << akTop; - MessageBrowserPanel->BevelOuter = bvNone; - MessageBrowserPanel->BevelInner = bvNone; // default - MessageBrowserPanel->BevelKind = bkTile; + MessageBrowserPanel->BevelKind = bkTile; // flat border Result->MessageBrowserPanel = MessageBrowserPanel; MoreMessagesControl = Result->MessageBrowserPanel; @@ -1195,7 +1213,11 @@ TForm * __fastcall TMessageForm::Create(const UnicodeString & Msg, Panel->Height + ButtonVertMargin + ButtonHeight + ButtonVertMargin; Result->Left = (Monitor->Width / 2) - (Result->Width / 2); Result->Top = (Monitor->Height / 2) - (Result->Height / 2); - if (DlgType != mtCustom) + if (!CustomCaption.IsEmpty()) + { + Result->Caption = CustomCaption; + } + else if (DebugAlwaysTrue(DlgType != mtCustom)) { Result->Caption = LoadResourceString(Captions[DlgType]); } @@ -1248,9 +1270,21 @@ TForm * __fastcall CreateMoreMessageDialog(const UnicodeString & Msg, const TQueryButtonAlias * Aliases, unsigned int AliasesCount, unsigned int TimeoutAnswer, TButton ** TimeoutButton, const UnicodeString & ImageName, const UnicodeString & NeverAskAgainCaption, const UnicodeString & MoreMessagesUrl, - TSize MoreMessagesSize) + TSize MoreMessagesSize, const UnicodeString & CustomCaption) { return TMessageForm::Create(Msg, MoreMessages, DlgType, Answers, Aliases, AliasesCount, TimeoutAnswer, TimeoutButton, ImageName, - NeverAskAgainCaption, MoreMessagesUrl, MoreMessagesSize); + NeverAskAgainCaption, MoreMessagesUrl, MoreMessagesSize, CustomCaption); +} +//--------------------------------------------------------------------------- +void __fastcall InsertPanelToMessageDialog(TCustomForm * Form, TPanel * Panel) +{ + TMessageForm * MessageForm = DebugNotNull(dynamic_cast(Form)); + MessageForm->InsertPanel(Panel); +} +//--------------------------------------------------------------------------- +void __fastcall NavigateMessageDialogToUrl(TCustomForm * Form, const UnicodeString & Url) +{ + TMessageForm * MessageForm = DebugNotNull(dynamic_cast(Form)); + MessageForm->NavigateToUrl(Url); } diff --git a/source/forms/NonVisual.cpp b/source/forms/NonVisual.cpp index b86bf2cc..4c6f8c56 100644 --- a/source/forms/NonVisual.cpp +++ b/source/forms/NonVisual.cpp @@ -118,7 +118,7 @@ void __fastcall TNonVisualDataModule::LogActionsExecute( TAutoNestingCounter Counter(FBusy); TLogMemo * LogMemo = TTerminalManager::Instance()->LogMemo; - assert(LogMemo && LogMemo->Parent); + DebugAssert(LogMemo && LogMemo->Parent); EXE(LogClearAction, LogMemo->SessionLog->Clear()) EXE(LogSelectAllAction, LogMemo->SelectAll()) EXE(LogCopyAction, LogMemo->CopyToClipboard()) @@ -140,6 +140,7 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( return; } void * Param; + #define HasTerminal (ScpExplorer->Terminal != NULL) // CURRENT DIRVIEW #define EnabledSelectedOperation (ScpExplorer->EnableSelectedOperation[osCurrent]) #define EnabledFocusedOperation (ScpExplorer->EnableFocusedOperation[osCurrent]) @@ -159,8 +160,6 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( UPD(CurrentSystemMenuFocusedAction, EnabledFocusedOperation) UPD(CurrentEditWithFocusedAction, EnabledFocusedFileOperation && !WinConfiguration->DisableOpenEdit) - UPD(CurrentEditAlternativeFocusedAction, EnabledFocusedFileOperation && - !WinConfiguration->DisableOpenEdit) UPD(CurrentEditInternalFocusedAction, EnabledFocusedFileOperation && !WinConfiguration->DisableOpenEdit) // file operation @@ -169,8 +168,6 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( ScpExplorer->Terminal->IsCapable[fcRename])) UPD(CurrentEditAction, EnabledSelectedFileOperation && !WinConfiguration->DisableOpenEdit) - UPD(CurrentEditAlternative2Action, EnabledSelectedFileOperation && - !WinConfiguration->DisableOpenEdit) UPD(CurrentEditInternalAction, EnabledSelectedFileOperation && !WinConfiguration->DisableOpenEdit) UPD(CurrentEditWithAction, EnabledSelectedFileOperation && @@ -192,33 +189,47 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( UPD(FileListToCommandLineAction, EnabledSelectedOperation) UPD(FileListToClipboardAction, EnabledSelectedOperation) UPD(FullFileListToClipboardAction, EnabledSelectedOperation) - UPD(FileGenerateUrlAction, EnabledSelectedOperation && (DirView(osRemote) == DirView(osCurrent))) - UPD(FileListFromClipboardAction, IsFormatInClipboard(CF_TEXT)); + UPD(FileGenerateUrlAction2, EnabledSelectedOperation && (DirView(osRemote) == DirView(osCurrent))) + UPD(FileListFromClipboardAction, IsFormatInClipboard(CF_TEXT)) UPD(CurrentAddEditLinkAction, ScpExplorer->CanAddEditLink(osCurrent)) + UPD(LockAction, + EnabledSelectedOperation && (DirView(osRemote) == DirView(osCurrent)) && + ScpExplorer->Terminal->IsCapable[fcLocking]) + UPD(UnlockAction, + EnabledSelectedOperation && (DirView(osRemote) == DirView(osCurrent)) && + ScpExplorer->Terminal->IsCapable[fcLocking]) // local selected operation - UPD(LocalCopyAction, EnabledLocalSelectedOperation) + UPD(LocalCopyAction, HasTerminal && EnabledLocalSelectedOperation) + UPD(LocalCopyQueueAction, HasTerminal && EnabledLocalSelectedOperation) + UPD(LocalCopyNonQueueAction, HasTerminal && EnabledLocalSelectedOperation) UPD(LocalRenameAction, EnabledLocalSelectedOperation) UPD(LocalEditAction, EnabledLocalSelectedFileOperation && !WinConfiguration->DisableOpenEdit) - UPD(LocalMoveAction, EnabledLocalSelectedOperation) + UPD(LocalMoveAction, HasTerminal && EnabledLocalSelectedOperation) UPD(LocalCreateDirAction, true) UPD(LocalDeleteAction, EnabledLocalSelectedOperation) UPD(LocalPropertiesAction, EnabledLocalSelectedOperation) UPD(LocalAddEditLinkAction, ScpExplorer->CanAddEditLink(osLocal)) // local focused operation - UPD(LocalCopyFocusedAction, EnabledLocalFocusedOperation) - UPD(LocalMoveFocusedAction, EnabledLocalFocusedOperation) + UPD(LocalCopyFocusedAction, HasTerminal && EnabledLocalFocusedOperation) + UPD(LocalCopyFocusedQueueAction, HasTerminal && EnabledLocalFocusedOperation) + UPD(LocalCopyFocusedNonQueueAction, HasTerminal && EnabledLocalFocusedOperation) + UPD(LocalMoveFocusedAction, HasTerminal && EnabledLocalFocusedOperation) // remote selected operation UPD(RemoteCopyAction, EnabledRemoteSelectedOperation) + UPD(RemoteCopyQueueAction, EnabledRemoteSelectedOperation) + UPD(RemoteCopyNonQueueAction, EnabledRemoteSelectedOperation) UPD(RemoteRenameAction, EnabledRemoteSelectedOperation && ScpExplorer->Terminal->IsCapable[fcRename]) UPD(RemoteEditAction, EnabledRemoteSelectedFileOperation && !WinConfiguration->DisableOpenEdit) UPD(RemoteMoveAction, EnabledRemoteSelectedOperation) - UPD(RemoteCreateDirAction, true) + UPD(RemoteCreateDirAction, DirViewEnabled(osRemote)) UPD(RemoteDeleteAction, EnabledRemoteSelectedOperation) UPD(RemotePropertiesAction, EnabledRemoteSelectedOperation) UPD(RemoteAddEditLinkAction, ScpExplorer->CanAddEditLink(osRemote)) // remote focused operation UPD(RemoteCopyFocusedAction, EnabledRemoteFocusedOperation) + UPD(RemoteCopyFocusedQueueAction, EnabledRemoteFocusedOperation) + UPD(RemoteCopyFocusedNonQueueAction, EnabledRemoteFocusedOperation) UPD(RemoteMoveFocusedAction, EnabledRemoteFocusedOperation) UPD(RemoteMoveToFocusedAction, EnabledFocusedOperation && (DirView(osRemote) == DirView(osCurrent)) && @@ -226,9 +237,9 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( UPD(RemoteCopyToFocusedAction, EnabledFocusedOperation && DirView(osRemote) == DirView(osCurrent)) // directory - UPD(CurrentCreateDirAction, true) - UPD(NewDirAction, true) - UPD(RemoteFindFilesAction, true) + UPD(CurrentCreateDirAction, DirViewEnabled(osCurrent)) + UPD(NewDirAction, DirViewEnabled(osCurrent)) + UPD(RemoteFindFilesAction, DirViewEnabled(osRemote)) // selection UPD(SelectOneAction, DirView(osCurrent)->FilesCount) UPD(SelectAction, DirView(osCurrent)->FilesCount) @@ -237,6 +248,8 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( UPD(InvertSelectionAction, DirView(osCurrent)->FilesCount) UPD(ClearSelectionAction, DirView(osCurrent)->SelCount) UPD(RestoreSelectionAction, DirView(osCurrent)->SelectedNamesSaved) + UPD(SelectSameExtAction, EnabledFocusedFileOperation) + UPD(UnselectSameExtAction, EnabledFocusedFileOperation) UPD(PasteAction2, ScpExplorer->CanPasteFromClipBoard()) UPD(LocalSelectAction, ScpExplorer->HasDirView[osLocal] && DirView(osLocal)->FilesCount) UPD(LocalUnselectAction, ScpExplorer->HasDirView[osLocal] && DirView(osLocal)->SelCount) @@ -259,7 +272,7 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( // REMOTE+LOCAL // back/forward #define HISTORYACTION(SIDE, DIRECTION, HINTFMT, DELTA) \ - UPDEX(SIDE ## DIRECTION ## Action, (DirView(os ## SIDE)->DIRECTION ## Count > 0), \ + UPDEX(SIDE ## DIRECTION ## Action, DirViewEnabled(os ## SIDE) && (DirView(os ## SIDE)->DIRECTION ## Count > 0), \ SIDE ## DIRECTION ## Action->Hint = FMTLOAD(HINTFMT, (DirView(os ## SIDE)->HistoryPath[DELTA])), \ SIDE ## DIRECTION ## Action->Hint = L"") HISTORYACTION(Local, Back, EXPLORER_BACK_HINT, -1) @@ -268,15 +281,15 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( HISTORYACTION(Remote, Forward, EXPLORER_FORWARD_HINT, 1) #undef HISTORYACTION #define PANEL_ACTIONS(SIDE) \ - UPD(SIDE ## ParentDirAction, !DirView(os ## SIDE)->IsRoot) \ - UPD(SIDE ## RootDirAction, !DirView(os ## SIDE)->IsRoot) \ - UPD(SIDE ## HomeDirAction, true) \ - UPD(SIDE ## RefreshAction, DirView(os ## SIDE)->DirOK) \ - UPD(SIDE ## OpenDirAction, true) \ - UPD(SIDE ## ChangePathAction, true) \ - UPD(SIDE ## AddBookmarkAction, true) \ - UPD(SIDE ## PathToClipboardAction, true) \ - UPDEX1(SIDE ## FilterAction, true, ((TAction *)Action)->Checked = !DirView(os ## SIDE)->Mask.IsEmpty()) + UPD(SIDE ## ParentDirAction, DirViewEnabled(os ## SIDE) && !DirView(os ## SIDE)->IsRoot) \ + UPD(SIDE ## RootDirAction, DirViewEnabled(os ## SIDE) &&!DirView(os ## SIDE)->IsRoot) \ + UPD(SIDE ## HomeDirAction, DirViewEnabled(os ## SIDE)) \ + UPD(SIDE ## RefreshAction, DirViewEnabled(os ## SIDE) && DirView(os ## SIDE)->DirOK) \ + UPD(SIDE ## OpenDirAction, DirViewEnabled(os ## SIDE)) \ + UPD(SIDE ## ChangePathAction, DirViewEnabled(os ## SIDE)) \ + UPD(SIDE ## AddBookmarkAction, DirViewEnabled(os ## SIDE)) \ + UPD(SIDE ## PathToClipboardAction, DirViewEnabled(os ## SIDE)) \ + UPDEX1(SIDE ## FilterAction, DirViewEnabled(os ## SIDE), ((TAction *)Action)->Checked = !DirView(os ## SIDE)->Mask.IsEmpty()) PANEL_ACTIONS(Local) PANEL_ACTIONS(Remote) #undef PANEL_ACTIONS @@ -292,6 +305,7 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( UPD(UpdatesPreferencesAction, true) UPD(DonatePageAction, true) UPD(DownloadPageAction, true) + UPD(TipsAction, true) // VIEW UPDCOMP(SessionsTabs) @@ -331,7 +345,7 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( UPD(GoToCommandLineAction, true) UPD(GoToTreeAction, true) - UPDEX(ViewLogAction, Configuration->Logging, + UPDEX(ViewLogAction, Configuration->Logging && HasTerminal, ViewLogAction->Checked = (WinConfiguration->LogView == lvWindow), ViewLogAction->Checked = false ) UPDEX(ShowHiddenFilesAction, true, @@ -351,7 +365,8 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( UPDEX(SelectiveToolbarTextAction, true, SelectiveToolbarTextAction->Checked = WinConfiguration->SelectiveToolbarText, ) UPDCOMP(CustomCommandsBand) - UPD(ColorMenuAction, true) + UPD(ColorMenuAction, HasTerminal) + UPD(GoToAddressAction, true) // SORT UPDSORTA(Local) @@ -381,9 +396,9 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( UPDSORTC(dv, Name, uv, Group) #define COLVIEWPROPS ((TCustomDirViewColProperties*)(((TCustomDirView*)(((TListColumns*)(ListColumn->Collection))->Owner()))->ColProperties)) UPDEX(SortColumnAscendingAction, (ListColumn != NULL), SortColumnAscendingAction->Checked = - (COLVIEWPROPS->SortColumn == ListColumn->Index) && COLVIEWPROPS->SortAscending, /*assert(false)*/ ) + (COLVIEWPROPS->SortColumn == ListColumn->Index) && COLVIEWPROPS->SortAscending, /*DebugFail()*/ ) UPDEX(SortColumnDescendingAction, (ListColumn != NULL), SortColumnDescendingAction->Checked = - (COLVIEWPROPS->SortColumn == ListColumn->Index) && !COLVIEWPROPS->SortAscending, /*assert(false)*/ ) + (COLVIEWPROPS->SortColumn == ListColumn->Index) && !COLVIEWPROPS->SortAscending, /*DebugFail()*/ ) #undef COLVIEWPROPS // SHOW/HIDE COLUMN @@ -408,26 +423,26 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( // SESSION UPD(NewSessionAction, true) UPD(SiteManagerAction, true) - UPD(DuplicateSessionAction, true) - UPD(CloseSessionAction, true) + UPD(DuplicateSessionAction, HasTerminal) + UPD(CloseSessionAction, HasTerminal) UPD(SavedSessionsAction2, true) UPD(WorkspacesAction, StoredSessions->HasAnyWorkspace()) - UPD(OpenedSessionsAction, true) - UPD(SaveCurrentSessionAction2, true) - UPD(SaveWorkspaceAction, true) + UPD(OpenedSessionsAction, HasTerminal) + UPD(SaveCurrentSessionAction2, HasTerminal) + UPD(SaveWorkspaceAction, HasTerminal) // COMMAND - UPD(CompareDirectoriesAction, true) - UPD(SynchronizeAction, true) - UPD(FullSynchronizeAction, true) - UPD(ConsoleAction, ScpExplorer->Terminal->IsCapable[fcAnyCommand] || ScpExplorer->Terminal->IsCapable[fcSecondaryShell]) - UPD(PuttyAction, TTerminalManager::Instance()->CanOpenInPutty()) - UPD(SynchronizeBrowsingAction, true) + UPD(CompareDirectoriesAction, HasTerminal) + UPD(SynchronizeAction, HasTerminal) + UPD(FullSynchronizeAction, HasTerminal) + UPD(ConsoleAction, HasTerminal && (ScpExplorer->Terminal->IsCapable[fcAnyCommand] || ScpExplorer->Terminal->IsCapable[fcSecondaryShell])) + UPD(PuttyAction, HasTerminal && TTerminalManager::Instance()->CanOpenInPutty()) + UPD(SynchronizeBrowsingAction, HasTerminal) UPD(CloseApplicationAction, true) - UPD(FileSystemInfoAction, true) - UPD(SessionGenerateUrlAction, true) - UPD(ClearCachesAction, (ScpExplorer->Terminal != NULL) && !ScpExplorer->Terminal->AreCachesEmpty) - UPD(NewFileAction, !WinConfiguration->DisableOpenEdit) + UPD(FileSystemInfoAction, HasTerminal) + UPD(SessionGenerateUrlAction2, HasTerminal) + UPD(ClearCachesAction, HasTerminal && !ScpExplorer->Terminal->AreCachesEmpty) + UPD(NewFileAction, DirViewEnabled(osCurrent) && !WinConfiguration->DisableOpenEdit) UPD(EditorListCustomizeAction, true) // CUSTOM COMMANDS @@ -439,7 +454,7 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( UPD(CustomCommandsCustomizeAction, true) // QUEUE - UPDEX(QueueEnableAction, true, ((TAction *)Action)->Checked = ScpExplorer->GetQueueEnabled(), ) + UPDEX(QueueEnableAction, HasTerminal, ((TAction *)Action)->Checked = ScpExplorer->GetQueueEnabled(), ) #define UPDQUEUE(OPERATION) UPD(Queue ## OPERATION ## Action, \ ScpExplorer->AllowQueueOperation(qo ## OPERATION)) UPDQUEUE(GoTo) @@ -481,9 +496,9 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( QueueCycleOnceEmptyAction->ImageIndex = CurrentQueueOnceEmptyAction()->ImageIndex; QueueCycleOnceEmptyAction->Checked = !QueueIdleOnceEmptyAction->Checked) UPD(QueueIdleOnceEmptyAction, ScpExplorer->AllowQueueOperation(qoOnceEmpty)) - UPD(QueueDisconnectOnceEmptyAction, ScpExplorer->AllowQueueOperation(qoOnceEmpty)) - UPD(QueueSuspendOnceEmptyAction, ScpExplorer->AllowQueueOperation(qoOnceEmpty)) - UPD(QueueShutDownOnceEmptyAction, ScpExplorer->AllowQueueOperation(qoOnceEmpty)) + UPD(QueueDisconnectOnceEmptyAction2, ScpExplorer->AllowQueueOperation(qoOnceEmpty)) + UPD(QueueSuspendOnceEmptyAction2, ScpExplorer->AllowQueueOperation(qoOnceEmpty)) + UPD(QueueShutDownOnceEmptyAction2, ScpExplorer->AllowQueueOperation(qoOnceEmpty)) UPDCOMP(CommanderPreferencesBand) UPDACT(QueueToolbarAction, ((TAction *)Action)->Enabled = ScpExplorer->ComponentVisible[fcQueueView]; @@ -494,7 +509,7 @@ void __fastcall TNonVisualDataModule::ExplorerActionsUpdate( void __fastcall TNonVisualDataModule::ExplorerActionsExecute( TBasicAction *Action, bool &Handled) { - assert(ScpExplorer); + DebugAssert(ScpExplorer); if (!ScpExplorer->AllowedAction((TAction *)Action, aaExecute)) { Handled = true; @@ -502,7 +517,7 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( } ScpExplorer->BeforeAction(); - bool ShortCutAction = (Action->ActionComponent == NULL); + unsigned int ShortCutFlag = FLAGMASK((Action->ActionComponent == NULL), cocShortCutHint); { TAutoNestingCounter Counter(FBusy); @@ -512,11 +527,9 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( EXE(CurrentEditFocusedAction, ScpExplorer->ExecuteFile(osCurrent, efDefaultEditor, NULL, true, true)) EXE(CurrentSystemMenuFocusedAction, ScpExplorer->DisplaySystemContextMenu()) EXE(CurrentEditWithFocusedAction, ScpExplorer->ExecuteCurrentFileWith(true)) - EXE(CurrentEditAlternativeFocusedAction, CreateEditorListMenu(CurrentEditAlternativeFocusedAction, true)) EXE(CurrentEditInternalFocusedAction, ScpExplorer->ExecuteFile(osCurrent, efInternalEditor, NULL, true, true)) // operation EXE(CurrentEditAction, ScpExplorer->ExecuteFile(osCurrent, efDefaultEditor, NULL, true, false)) - EXE(CurrentEditAlternative2Action, CreateEditorListMenu(CurrentEditAlternative2Action, false)) EXE(CurrentEditInternalAction, ScpExplorer->ExecuteFile(osCurrent, efInternalEditor, NULL, true, false)) EXE(CurrentEditWithAction, ScpExplorer->ExecuteCurrentFileWith(false)) EXE(CurrentOpenAction, ScpExplorer->ExecuteCurrentFile()) @@ -530,10 +543,14 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( EXE(FileListToCommandLineAction, ScpExplorer->PanelExport(osCurrent, peFileList, pedCommandLine)) EXE(FileListToClipboardAction, ScpExplorer->PanelExport(osCurrent, peFileList, pedClipboard)) EXE(FullFileListToClipboardAction, ScpExplorer->PanelExport(osCurrent, peFullFileList, pedClipboard)) - EXE(FileGenerateUrlAction, ScpExplorer->FileGenerateUrl()) + EXE(FileGenerateUrlAction2, ScpExplorer->FileGenerateUrl()) EXE(FileListFromClipboardAction, ScpExplorer->FileListFromClipboard()) + EXE(LockAction, ScpExplorer->ExecuteFileOperationCommand(foLock, osCurrent, false)) + EXE(UnlockAction, ScpExplorer->ExecuteFileOperationCommand(foUnlock, osCurrent, false)) // local selected operation - EXE(LocalCopyAction, ScpExplorer->ExecuteCopyOperationCommand(osLocal, false, ShortCutAction)) + EXE(LocalCopyAction, ScpExplorer->ExecuteCopyOperationCommand(osLocal, false, ShortCutFlag)) + EXE(LocalCopyQueueAction, ScpExplorer->ExecuteCopyOperationCommand(osLocal, false, cocQueue)) + EXE(LocalCopyNonQueueAction, ScpExplorer->ExecuteCopyOperationCommand(osLocal, false, cocNonQueue)) EXE(LocalRenameAction, ScpExplorer->ExecuteFileOperationCommand(foRename, osLocal, false)) EXE(LocalEditAction, ScpExplorer->ExecuteFile(osLocal, efDefaultEditor, NULL, true, false)) EXE(LocalMoveAction, ScpExplorer->ExecuteFileOperationCommand(foMove, osLocal, false)) @@ -542,10 +559,14 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( EXE(LocalPropertiesAction, ScpExplorer->ExecuteFileOperationCommand(foSetProperties, osLocal, false)) EXE(LocalAddEditLinkAction, ScpExplorer->AddEditLink(osLocal, false)) // local focused operation - EXE(LocalCopyFocusedAction, ScpExplorer->ExecuteCopyOperationCommand(osLocal, true, ShortCutAction)) + EXE(LocalCopyFocusedAction, ScpExplorer->ExecuteCopyOperationCommand(osLocal, true, ShortCutFlag)) + EXE(LocalCopyFocusedQueueAction, ScpExplorer->ExecuteCopyOperationCommand(osLocal, true, cocQueue)) + EXE(LocalCopyFocusedNonQueueAction, ScpExplorer->ExecuteCopyOperationCommand(osLocal, true, cocNonQueue)) EXE(LocalMoveFocusedAction, ScpExplorer->ExecuteFileOperationCommand(foMove, osLocal, true)) // remote selected operation - EXE(RemoteCopyAction, ScpExplorer->ExecuteCopyOperationCommand(osRemote, false, ShortCutAction)) + EXE(RemoteCopyAction, ScpExplorer->ExecuteCopyOperationCommand(osRemote, false, ShortCutFlag)) + EXE(RemoteCopyQueueAction, ScpExplorer->ExecuteCopyOperationCommand(osRemote, false, cocQueue)) + EXE(RemoteCopyNonQueueAction, ScpExplorer->ExecuteCopyOperationCommand(osRemote, false, cocNonQueue)) EXE(RemoteRenameAction, ScpExplorer->ExecuteFileOperationCommand(foRename, osRemote, false)) EXE(RemoteEditAction, ScpExplorer->ExecuteFile(osRemote, efDefaultEditor, NULL, true, false)) EXE(RemoteMoveAction, ScpExplorer->ExecuteFileOperationCommand(foMove, osRemote, false)) @@ -556,7 +577,9 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( EXE(RemoteCopyToAction, ScpExplorer->ExecuteFileOperationCommand(foRemoteCopy, osCurrent, false)) EXE(RemoteAddEditLinkAction, ScpExplorer->AddEditLink(osRemote, false)) // remote focused operation - EXE(RemoteCopyFocusedAction, ScpExplorer->ExecuteCopyOperationCommand(osRemote, true, ShortCutAction)) + EXE(RemoteCopyFocusedAction, ScpExplorer->ExecuteCopyOperationCommand(osRemote, true, ShortCutFlag)) + EXE(RemoteCopyFocusedQueueAction, ScpExplorer->ExecuteCopyOperationCommand(osRemote, true, cocQueue)) + EXE(RemoteCopyFocusedNonQueueAction, ScpExplorer->ExecuteCopyOperationCommand(osRemote, true, cocNonQueue)) EXE(RemoteMoveFocusedAction, ScpExplorer->ExecuteFileOperationCommand(foMove, osRemote, true)) EXE(RemoteMoveToFocusedAction, ScpExplorer->ExecuteFileOperationCommand(foRemoteMove, osCurrent, true)) EXE(RemoteCopyToFocusedAction, ScpExplorer->ExecuteFileOperationCommand(foRemoteCopy, osCurrent, true)) @@ -572,6 +595,8 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( EXE(InvertSelectionAction, DirView(osCurrent)->SelectAll(smInvert)) EXE(ClearSelectionAction, DirView(osCurrent)->SelectAll(smNone)) EXE(RestoreSelectionAction, DirView(osCurrent)->RestoreSelectedNames()) + EXE(SelectSameExtAction, ScpExplorer->SelectSameExt(true)) + EXE(UnselectSameExtAction, ScpExplorer->SelectSameExt(false)) EXE(LocalSelectAction, DirView(osLocal)->DoSelectByMask(true)) EXE(LocalUnselectAction, DirView(osLocal)->DoSelectByMask(false)) EXE(LocalSelectAllAction, DirView(osLocal)->SelectAll(smAll)) @@ -620,6 +645,7 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( EXE(UpdatesPreferencesAction, PreferencesDialog(pmUpdates)) EXE(DonatePageAction, OpenBrowser(LoadStr(DONATE_URL))) EXE(DownloadPageAction, OpenBrowser(LoadStr(DOWNLOAD_URL))) + EXE(TipsAction, ShowTips()) // VIEW EXECOMP(SessionsTabs) @@ -671,7 +697,8 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( EXE(LockToolbarsAction, WinConfiguration->LockToolbars = !WinConfiguration->LockToolbars) EXE(SelectiveToolbarTextAction, WinConfiguration->SelectiveToolbarText = !WinConfiguration->SelectiveToolbarText) EXECOMP(CustomCommandsBand) - EXE(ColorMenuAction, CreateSessionColorMenu(ColorMenuAction)); + EXE(ColorMenuAction, CreateSessionColorMenu(ColorMenuAction)) + EXE(GoToAddressAction, ScpExplorer->GoToAddress()) #define COLVIEWPROPS ((TCustomDirViewColProperties*)(((TCustomDirView*)(((TListColumns*)(ListColumn->Collection))->Owner()))->ColProperties)) // SORT @@ -700,9 +727,9 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( EXESORTC(Rights, dvAttr, uvRights) EXESORTC(Owner, dvName, uvOwner) EXESORTC(Group, dvName, uvGroup) - EXE(SortColumnAscendingAction, assert(ListColumn); + EXE(SortColumnAscendingAction, DebugAssert(ListColumn); COLVIEWPROPS->SortColumn = ListColumn->Index; COLVIEWPROPS->SortAscending = true; ListColumn = NULL ) - EXE(SortColumnDescendingAction, assert(ListColumn); + EXE(SortColumnDescendingAction, DebugAssert(ListColumn); COLVIEWPROPS->SortColumn = ListColumn->Index; COLVIEWPROPS->SortAscending = false; ListColumn = NULL ) // SHOW/HIDE COLUMN @@ -721,9 +748,9 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( EXESHCOL(Remote, uv, Group) EXESHCOL(Remote, uv, LinkTarget) EXESHCOL(Remote, uv, Type) - EXE(HideColumnAction, assert(ListColumn); + EXE(HideColumnAction, DebugAssert(ListColumn); COLVIEWPROPS->Visible[ListColumn->Index] = false; ListColumn = NULL ) - EXE(BestFitColumnAction, assert(ListColumn); ListColumn = NULL ) // TODO + EXE(BestFitColumnAction, DebugAssert(ListColumn); ListColumn = NULL ) // TODO #undef COLVIEWPROPS // SESSION @@ -746,7 +773,7 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( EXE(SynchronizeBrowsingAction, ScpExplorer->SynchronizeBrowsingChanged()) EXE(CloseApplicationAction, ScpExplorer->Close()) EXE(FileSystemInfoAction, ScpExplorer->FileSystemInfo()) - EXE(SessionGenerateUrlAction, ScpExplorer->SessionGenerateUrl()) + EXE(SessionGenerateUrlAction2, ScpExplorer->SessionGenerateUrl()) EXE(ClearCachesAction, ScpExplorer->Terminal->ClearCaches()) EXE(NewFileAction, ScpExplorer->EditNew(osCurrent)) EXE(EditorListCustomizeAction, PreferencesDialog(pmEditor)) @@ -789,12 +816,12 @@ void __fastcall TNonVisualDataModule::ExplorerActionsExecute( QUEUEACTION(HideWhenEmpty) QUEUEACTION(Hide) #undef QUEUEACTION - EXE(QueueCycleOnceEmptyAction, CycleQueueOnceEmptyAction()); + EXE(QueueCycleOnceEmptyAction, CycleQueueOnceEmptyAction()) EXE(QueueIdleOnceEmptyAction, SetQueueOnceEmptyAction(QueueIdleOnceEmptyAction)) - EXE(QueueDisconnectOnceEmptyAction, SetQueueOnceEmptyAction(QueueDisconnectOnceEmptyAction)) - EXE(QueueSuspendOnceEmptyAction, SetQueueOnceEmptyAction(QueueSuspendOnceEmptyAction)) - EXE(QueueShutDownOnceEmptyAction, SetQueueOnceEmptyAction(QueueShutDownOnceEmptyAction)) - EXECOMP(QueueToolbar); + EXE(QueueDisconnectOnceEmptyAction2, SetQueueOnceEmptyAction(QueueDisconnectOnceEmptyAction2)) + EXE(QueueSuspendOnceEmptyAction2, SetQueueOnceEmptyAction(QueueSuspendOnceEmptyAction2)) + EXE(QueueShutDownOnceEmptyAction2, SetQueueOnceEmptyAction(QueueShutDownOnceEmptyAction2)) + EXECOMP(QueueToolbar) EXE(QueueItemSpeedAction, ) ; } @@ -846,7 +873,7 @@ void __fastcall TNonVisualDataModule::ExplorerShortcuts() UnselectAction->ShortCut = ShortCut(VK_SUBTRACT, NONE); SelectAllAction->ShortCut = ShortCut(L'A', CTRL); InvertSelectionAction->ShortCut = ShortCut(VK_MULTIPLY, NONE); - ClearSelectionAction->ShortCut = ShortCut(L'L', CTRL); + ClearSelectionAction->ShortCut = ShortCut(L'L', CTRLSHIFT); RestoreSelectionAction->ShortCut = ShortCut(L'R', CTRLSHIFT); // commands NewFileAction->ShortCut = ShortCut(L'E', CTRLSHIFT); @@ -898,7 +925,7 @@ void __fastcall TNonVisualDataModule::CommanderShortcuts() UnselectAction->ShortCut = ShortCut(VK_SUBTRACT, NONE); SelectAllAction->ShortCut = ShortCut(L'A', CTRL); InvertSelectionAction->ShortCut = ShortCut(VK_MULTIPLY, NONE); - ClearSelectionAction->ShortCut = ShortCut(L'L', CTRL); + ClearSelectionAction->ShortCut = ShortCut(L'L', CTRLSHIFT); RestoreSelectionAction->ShortCut = ShortCut(L'R', CTRLSHIFT); // commands NewFileAction->ShortCut = ShortCut(VK_F4, SHIFT); @@ -978,7 +1005,7 @@ void __fastcall TNonVisualDataModule::DoIdle() FSessionIdleTimerExecuting = true; try { - assert(ScpExplorer); + DebugAssert(ScpExplorer); ScpExplorer->Idle(); } __finally @@ -988,6 +1015,25 @@ void __fastcall TNonVisualDataModule::DoIdle() } } //--------------------------------------------------------------------------- +UnicodeString __fastcall TNonVisualDataModule::CustomCommandCaption(const TCustomCommandType * Command, bool Toolbar) +{ + UnicodeString Result = Command->Name; + if (Toolbar) + { + Result = EscapeHotkey(StripHotkey(Result)); + } + return Result; +} +//--------------------------------------------------------------------------- +UnicodeString __fastcall TNonVisualDataModule::CustomCommandHint(const TCustomCommandType * Command) +{ + UnicodeString Name = StripHotkey(Command->Name); + UnicodeString ShortHint = FMTLOAD(CUSTOM_COMMAND_HINT, (Name)); + UnicodeString LongHint = FMTLOAD(CUSTOM_COMMAND_HINT_LONG, (Name, Command->Command)); + UnicodeString Result = FORMAT(L"%s|%s", (ShortHint, LongHint)); + return Result; +} +//--------------------------------------------------------------------------- void __fastcall TNonVisualDataModule::CreateCustomCommandsMenu( TTBCustomItem * Menu, bool OnFocused, bool Toolbar, bool Both) { @@ -1008,11 +1054,7 @@ void __fastcall TNonVisualDataModule::CreateCustomCommandsMenu( if (State >= 0) { TTBCustomItem * Item = new TTBXItem(Owner); - Item->Caption = Command->Name; - if (Toolbar) - { - Item->Caption = EscapeHotkey(StripHotkey(Item->Caption)); - } + Item->Caption = CustomCommandCaption(Command, Toolbar); Item->Tag = Index; Item->Enabled = (State > 0); if (OnFocused) @@ -1023,7 +1065,10 @@ void __fastcall TNonVisualDataModule::CreateCustomCommandsMenu( { Item->Tag = Item->Tag | 0x0200; } - Item->Hint = FMTLOAD(CUSTOM_COMMAND_HINT, (StripHotkey(Command->Name))); + UnicodeString Name = StripHotkey(Command->Name); + UnicodeString ShortHint = FMTLOAD(CUSTOM_COMMAND_HINT, (Name)); + UnicodeString LongHint = FMTLOAD(CUSTOM_COMMAND_HINT_LONG, (Name, Command->Command)); + Item->Hint = FORMAT(L"%s|%s", (ShortHint, LongHint)); if (!Both) { Item->ShortCut = Command->ShortCut; @@ -1068,7 +1113,7 @@ void __fastcall TNonVisualDataModule::CreateCustomCommandsMenu( void __fastcall TNonVisualDataModule::CreateCustomCommandsMenu( TAction * Action, bool OnFocused, bool Both) { - assert(Action); + DebugAssert(Action); TTBCustomItem * Menu = dynamic_cast(Action->ActionComponent); if (Menu) { @@ -1086,7 +1131,7 @@ void __fastcall TNonVisualDataModule::CreateCustomCommandsMenu( void __fastcall TNonVisualDataModule::CreateCustomCommandsMenu(TAction * Action) { TTBCustomItem * Menu = dynamic_cast(Action->ActionComponent); - if (ALWAYS_TRUE(Menu != NULL)) + if (DebugAlwaysTrue(Menu != NULL)) { bool OnFocused = (Menu == RemoteDirViewCustomCommandsMenu); CreateCustomCommandsMenu(Action, OnFocused, false); @@ -1109,9 +1154,13 @@ void __fastcall TNonVisualDataModule::UpdateCustomCommandsToolbar(TTBXToolbar * int Index = 0; while (!Changed && (Index < CustomCommandList->Count)) { + TTBCustomItem * Item = Toolbar->Items->Items[Index]; + const TCustomCommandType * Command = CustomCommandList->Commands[Index]; + Changed = - (Toolbar->Items->Items[Index]->Caption != - EscapeHotkey(StripHotkey(CustomCommandList->Commands[Index]->Name))); + (Item->Caption != CustomCommandCaption(Command, true)) || + (Item->Hint != CustomCommandHint(Command)); + Index++; } } @@ -1123,7 +1172,7 @@ void __fastcall TNonVisualDataModule::UpdateCustomCommandsToolbar(TTBXToolbar * { Toolbar->Items->Clear(); CreateCustomCommandsMenu(Toolbar->Items, false, true, false); - assert(CustomCommandList->Count == (Toolbar->Items->Count - AdditionalCommands)); + DebugAssert(CustomCommandList->Count == (Toolbar->Items->Count - AdditionalCommands)); } __finally { @@ -1136,10 +1185,10 @@ void __fastcall TNonVisualDataModule::UpdateCustomCommandsToolbar(TTBXToolbar * { TTBCustomItem * Item = Toolbar->Items->Items[Index]; int CommandIndex = (Item->Tag & 0x00FF); - assert(CommandIndex == Index); + DebugAssert(CommandIndex == Index); int State = ScpExplorer->CustomCommandState( *CustomCommandList->Commands[CommandIndex], false); - assert(State >= 0); + DebugAssert(State >= 0); Item->Enabled = (State > 0); } } @@ -1148,7 +1197,7 @@ void __fastcall TNonVisualDataModule::UpdateCustomCommandsToolbar(TTBXToolbar * void __fastcall TNonVisualDataModule::CustomCommandClick(TObject * Sender) { TTBCustomItem * Item = dynamic_cast(Sender); - assert(Item); + DebugAssert(Item); const TCustomCommandType * Command = WinConfiguration->CustomCommandList->Commands[Item->Tag & 0x00FF]; if (FLAGCLEAR(Item->Tag, 0x0200)) { @@ -1163,7 +1212,7 @@ void __fastcall TNonVisualDataModule::CustomCommandClick(TObject * Sender) //--------------------------------------------------------------------------- void __fastcall TNonVisualDataModule::CreateSessionColorMenu(TAction * Action) { - if (ALWAYS_TRUE(Action->ActionComponent != NULL)) + if (DebugAlwaysTrue(Action->ActionComponent != NULL)) { ::CreateSessionColorMenu(Action->ActionComponent, ScpExplorer->SessionColor, SessionColorChange); @@ -1189,7 +1238,7 @@ UnicodeString __fastcall TNonVisualDataModule::GetSessionFolderRoot( UnicodeString Root; for (int ALevel = 0; ALevel < Level; ALevel++) { - Root.Insert(::CutToChar(Path, L'/', false) + L'/', Root.Length() + 1); + Root.Insert(CutToChar(Path, L'/', false) + L'/', Root.Length() + 1); } return Root; } @@ -1209,7 +1258,7 @@ void __fastcall TNonVisualDataModule::CreateSessionListMenuLevel( } else { - assert(Index < StoredSessions->Count); + DebugAssert(Index < StoredSessions->Count); TSessionData * Data = StoredSessions->Sessions[Index]; Root = GetSessionFolderRoot(Data, Level); @@ -1217,7 +1266,7 @@ void __fastcall TNonVisualDataModule::CreateSessionListMenuLevel( Item->Caption = LoadStr(SAVEDSESSIONFOLDER_THIS_OPEN); Item->Tag = MAKELONG(Index, Level); UnicodeString FolderName = Root; - if (ALWAYS_TRUE(!FolderName.IsEmpty() && FolderName[FolderName.Length()] == L'/')) + if (DebugAlwaysTrue(!FolderName.IsEmpty() && FolderName[FolderName.Length()] == L'/')) { FolderName.Delete(FolderName.Length(), 1); } @@ -1282,13 +1331,13 @@ void __fastcall TNonVisualDataModule::CreateSessionListMenuLevel( void __fastcall TNonVisualDataModule::SessionFolderItemClick(TObject * Sender) { TTBCustomItem * Item = dynamic_cast(Sender); - assert(Item != NULL); + DebugAssert(Item != NULL); CreateSessionListMenuLevel(Item, LOWORD(Item->Tag), HIWORD(Item->Tag)); } //--------------------------------------------------------------------------- void __fastcall TNonVisualDataModule::SessionFolderThisItemClick(TObject * Sender) { - TTBCustomItem * Item = NOT_NULL(dynamic_cast(Sender)); + TTBCustomItem * Item = DebugNotNull(dynamic_cast(Sender)); int Index = LOWORD(Item->Tag); int Level = HIWORD(Item->Tag); UnicodeString Folder = GetSessionFolderRoot(StoredSessions->Sessions[Index], Level); @@ -1297,7 +1346,7 @@ void __fastcall TNonVisualDataModule::SessionFolderThisItemClick(TObject * Sende //--------------------------------------------------------------------------- void __fastcall TNonVisualDataModule::SessionItemClick(TObject * Sender) { - assert(StoredSessions && (((TTBCustomItem *)Sender)->Tag < StoredSessions->Count)); + DebugAssert(StoredSessions && (((TTBCustomItem *)Sender)->Tag < StoredSessions->Count)); ScpExplorer->OpenStoredSession(StoredSessions->Sessions[((TTBCustomItem *)Sender)->Tag]); } //--------------------------------------------------------------------------- @@ -1311,7 +1360,7 @@ void __fastcall TNonVisualDataModule::CreateWorkspacesMenu(TAction * Action) else { TTBCustomItem * Menu = - NOT_NULL(dynamic_cast(Action->ActionComponent)); + DebugNotNull(dynamic_cast(Action->ActionComponent)); Menu->Clear(); @@ -1332,7 +1381,7 @@ void __fastcall TNonVisualDataModule::WorkspaceItemClick(TObject * Sender) { std::unique_ptr Workspaces(StoredSessions->GetWorkspaces()); ScpExplorer->OpenFolderOrWorkspace( - Workspaces->Strings[NOT_NULL(dynamic_cast(Sender))->Tag]); + Workspaces->Strings[DebugNotNull(dynamic_cast(Sender))->Tag]); } //--------------------------------------------------------------------------- TShortCut __fastcall TNonVisualDataModule::OpenSessionShortCut(int Index) @@ -1351,14 +1400,14 @@ TShortCut __fastcall TNonVisualDataModule::OpenSessionShortCut(int Index) void __fastcall TNonVisualDataModule::CreateOpenedSessionListMenu(TAction * Action) { TTBCustomItem * OpenedSessionsMenu = dynamic_cast(Action->ActionComponent); - assert(OpenedSessionsMenu != NULL); + DebugAssert(OpenedSessionsMenu != NULL); TTerminalManager * Manager = TTerminalManager::Instance(); TStrings * TerminalList = Manager->TerminalList; int PrevCount = OpenedSessionsMenu->Count; for (int Index = 0; Index < TerminalList->Count; Index++) { TTerminal * Terminal = dynamic_cast(TerminalList->Objects[Index]); - assert(Terminal); + DebugAssert(Terminal); TTBCustomItem * Item = new TTBXItem(OpenedSessionsMenu); Item->Caption = TerminalList->Strings[Index]; Item->Tag = int(Terminal); @@ -1380,69 +1429,73 @@ void __fastcall TNonVisualDataModule::OpenedSessionItemClick(TObject * Sender) TTerminalManager::Instance()->ActiveTerminal = (TTerminal*)(((TMenuItem *)Sender)->Tag); } //--------------------------------------------------------------------------- -void __fastcall TNonVisualDataModule::CreateEditorListMenu(TAction * Action, bool OnFocused) +void __fastcall TNonVisualDataModule::CreateEditorListMenu(TTBCustomItem * Menu, bool OnFocused) { - assert(Action != NULL); - TTBCustomItem * Menu = dynamic_cast(Action->ActionComponent); - if (Menu != NULL) - { - int PrevCount = Menu->Count; + DebugAssert(Menu != NULL); + int PrevCount = Menu->Count; - TTBCustomItem * Item = new TTBXItem(Menu); - Item->Action = OnFocused ? CurrentEditInternalFocusedAction : CurrentEditInternalAction; - Menu->Add(Item); + TTBCustomItem * Item; - AddMenuSeparator(Menu); + Item = new TTBXItem(Menu); + Item->Action = OnFocused ? CurrentEditFocusedAction : CurrentEditAction; + Menu->Add(Item); - TStringList * UsedEditors = CreateSortedStringList(); - try + AddMenuSeparator(Menu); + + Item = new TTBXItem(Menu); + Item->Action = OnFocused ? CurrentEditInternalFocusedAction : CurrentEditInternalAction; + Menu->Add(Item); + + AddMenuSeparator(Menu); + + TStringList * UsedEditors = CreateSortedStringList(); + try + { + const TEditorList * EditorList = WinConfiguration->EditorList; + for (int Index = 0; Index < EditorList->Count; Index++) { - const TEditorList * EditorList = WinConfiguration->EditorList; - for (int Index = 0; Index < EditorList->Count; Index++) + const TEditorPreferences * Editor = EditorList->Editors[Index]; + + if ((Editor->Data->Editor == edExternal) && + (UsedEditors->IndexOf(Editor->Data->ExternalEditor) < 0)) { - const TEditorPreferences * Editor = EditorList->Editors[Index]; + UsedEditors->Add(Editor->Data->ExternalEditor); - if ((Editor->Data->Editor == edExternal) && - (UsedEditors->IndexOf(Editor->Data->ExternalEditor) < 0)) + TTBCustomItem * Item = new TTBXItem(Menu); + Item->Caption = Editor->Name; + Item->Tag = Index; + Item->Hint = FMTLOAD(EXTERNAL_EDITOR_HINT, (Editor->Name)); + if (OnFocused) { - UsedEditors->Add(Editor->Data->ExternalEditor); - - TTBCustomItem * Item = new TTBXItem(Menu); - Item->Caption = Editor->Name; - Item->Tag = Index; - Item->Hint = FMTLOAD(EXTERNAL_EDITOR_HINT, (Editor->Name)); - if (OnFocused) - { - Item->OnClick = EditorItemClickFocused; - } - else - { - Item->OnClick = EditorItemClick; - } - Menu->Add(Item); + Item->OnClick = EditorItemClickFocused; } + else + { + Item->OnClick = EditorItemClick; + } + Menu->Add(Item); } + } - Item = new TTBXItem(Menu); - Item->Action = OnFocused ? CurrentEditWithFocusedAction : CurrentEditWithAction; - Menu->Add(Item); + Item = new TTBXItem(Menu); + Item->Action = OnFocused ? CurrentEditWithFocusedAction : CurrentEditWithAction; + Menu->Add(Item); - AddMenuSeparator(Menu); + AddMenuSeparator(Menu); - Item = new TTBXItem(Menu); - Item->Action = EditorListCustomizeAction; - Menu->Add(Item); + Item = new TTBXItem(Menu); + Item->Action = EditorListCustomizeAction; + Menu->Add(Item); - for (int Index = 0; Index < PrevCount; Index++) - { - Menu->Delete(0); - } - } - __finally + for (int Index = 0; Index < PrevCount; Index++) { - delete UsedEditors; + Menu->Delete(0); } } + __finally + { + delete UsedEditors; + } } //--------------------------------------------------------------------------- void __fastcall TNonVisualDataModule::DoEditorItemClick(TObject * Sender, bool OnFocused) @@ -1569,6 +1622,7 @@ void __fastcall TNonVisualDataModule::CustomCommandsLastUpdate(TAction * Action) UnicodeString __fastcall TNonVisualDataModule::QueueItemSpeed(const UnicodeString & Text, TTBXComboBoxItem * Item) { + // Keep in sync with TProgressForm::ItemSpeed unsigned long Speed = GetSpeedLimit(Text); ScpExplorer->ExecuteQueueOperation(qoItemSpeed, reinterpret_cast(Speed)); @@ -1603,7 +1657,7 @@ void __fastcall TNonVisualDataModule::QueueSpeedComboBoxItem(TTBXComboBoxItem * //--------------------------------------------------------------------------- void __fastcall TNonVisualDataModule::QueueSpeedComboBoxItemUpdate(TTBXComboBoxItem * Item) { - Item->Strings = CustomWinConfiguration->History[L"SpeedLimit"]; + CopySpeedLimits(CustomWinConfiguration->History[L"SpeedLimit"], Item->Strings); } //--------------------------------------------------------------------------- void __fastcall TNonVisualDataModule::SetQueueOnceEmptyAction(TAction * Action) @@ -1622,23 +1676,23 @@ void __fastcall TNonVisualDataModule::CycleQueueOnceEmptyAction() Current->Checked = false; if (Current == QueueIdleOnceEmptyAction) { - QueueDisconnectOnceEmptyAction->Checked = true; + QueueDisconnectOnceEmptyAction2->Checked = true; } - else if (Current == QueueDisconnectOnceEmptyAction) + else if (Current == QueueDisconnectOnceEmptyAction2) { - QueueSuspendOnceEmptyAction->Checked = true; + QueueSuspendOnceEmptyAction2->Checked = true; } - else if (Current == QueueSuspendOnceEmptyAction) + else if (Current == QueueSuspendOnceEmptyAction2) { - QueueShutDownOnceEmptyAction->Checked = true; + QueueShutDownOnceEmptyAction2->Checked = true; } - else if (Current == QueueShutDownOnceEmptyAction) + else if (Current == QueueShutDownOnceEmptyAction2) { QueueIdleOnceEmptyAction->Checked = true; } else { - FAIL; + DebugFail(); } } //--------------------------------------------------------------------------- @@ -1649,21 +1703,21 @@ TAction * __fastcall TNonVisualDataModule::CurrentQueueOnceEmptyAction() { Result = QueueIdleOnceEmptyAction; } - else if (QueueDisconnectOnceEmptyAction->Checked) + else if (QueueDisconnectOnceEmptyAction2->Checked) { - Result = QueueDisconnectOnceEmptyAction; + Result = QueueDisconnectOnceEmptyAction2; } - else if (QueueSuspendOnceEmptyAction->Checked) + else if (QueueSuspendOnceEmptyAction2->Checked) { - Result = QueueSuspendOnceEmptyAction; + Result = QueueSuspendOnceEmptyAction2; } - else if (QueueShutDownOnceEmptyAction->Checked) + else if (QueueShutDownOnceEmptyAction2->Checked) { - Result = QueueShutDownOnceEmptyAction; + Result = QueueShutDownOnceEmptyAction2; } else { - FAIL; + DebugFail(); } return Result; } @@ -1676,21 +1730,21 @@ TOnceDoneOperation __fastcall TNonVisualDataModule::CurrentQueueOnceEmptyOperati { Result = odoIdle; } - else if (Current == QueueDisconnectOnceEmptyAction) + else if (Current == QueueDisconnectOnceEmptyAction2) { Result = odoDisconnect; } - else if (Current == QueueSuspendOnceEmptyAction) + else if (Current == QueueSuspendOnceEmptyAction2) { Result = odoSuspend; } - else if (Current == QueueShutDownOnceEmptyAction) + else if (Current == QueueShutDownOnceEmptyAction2) { Result = odoShutDown; } else { - FAIL; + DebugFail(); } return Result; } @@ -1716,3 +1770,23 @@ bool __fastcall TNonVisualDataModule::GetBusy() (FBusy > 0) || ((ScpExplorer != NULL) && ScpExplorer->IsBusy()); } +//--------------------------------------------------------------------------- +void __fastcall TNonVisualDataModule::FocusedEditMenuItemPopup(TTBCustomItem * Sender, + bool /*FromLink*/) +{ + CreateEditorListMenu(Sender, true); +} +//--------------------------------------------------------------------------- +void __fastcall TNonVisualDataModule::EditMenuItemPopup(TTBCustomItem * Sender, + bool /*FromLink*/) +{ + CreateEditorListMenu(Sender, false); +} +//--------------------------------------------------------------------------- +void __fastcall TNonVisualDataModule::QueuePopupSpeedComboBoxItemAdjustImageIndex( + TTBXComboBoxItem * Sender, const UnicodeString /*AText*/, int /*AIndex*/, int & ImageIndex) +{ + // Use fixed image (do not change image by item index) + ImageIndex = Sender->ImageIndex; +} +//--------------------------------------------------------------------------- diff --git a/source/forms/NonVisual.dfm b/source/forms/NonVisual.dfm index fef8367d..3283fc50 100644 --- a/source/forms/NonVisual.dfm +++ b/source/forms/NonVisual.dfm @@ -60,17 +60,25 @@ object NonVisualDataModule: TNonVisualDataModule object RemoteOpenMenuItem: TTBXItem Action = CurrentOpenAction end - object RemoteEditMenuItem: TTBXItem + object RemoteEditMenuItem: TTBXSubmenuItem Action = CurrentEditFocusedAction + DropdownCombo = True + OnPopup = FocusedEditMenuItemPopup end - object TBXItem69: TTBXSubmenuItem - Action = CurrentEditAlternativeFocusedAction - end - object RemoteCopyMenuItem: TTBXItem + object RemoteCopyMenuItem: TTBXSubmenuItem Action = RemoteCopyFocusedAction - end - object Moveto1: TTBXItem - Action = RemoteMoveFocusedAction + DropdownCombo = True + object TBXItem72: TTBXItem + Action = RemoteCopyFocusedNonQueueAction + end + object TBXItem69: TTBXItem + Action = RemoteCopyFocusedQueueAction + end + object TBXSeparatorItem9: TTBXSeparatorItem + end + object Moveto1: TTBXItem + Action = RemoteMoveFocusedAction + end end object Duplicate3: TTBXItem Action = RemoteCopyToAction @@ -105,7 +113,7 @@ object NonVisualDataModule: TNonVisualDataModule Action = FullFileListToClipboardAction end object CopyURLtoClipboard3: TTBXItem - Action = FileGenerateUrlAction + Action = FileGenerateUrlAction2 end end object N1: TTBXSeparatorItem @@ -120,6 +128,78 @@ object NonVisualDataModule: TNonVisualDataModule OnUpdate = ExplorerActionsUpdate Left = 440 Top = 24 + object RemoteCopyQueueAction: TAction + Tag = 14 + Category = 'Remote Selected Operation' + Caption = 'Download in &Background...' + HelpKeyword = 'task_download' + Hint = + 'Download|Download selected remote file(s) to local directory in ' + + 'background' + ImageIndex = 107 + end + object RemoteCopyFocusedQueueAction: TAction + Tag = 12 + Category = 'Remote Focused Operation' + Caption = 'Download in &Background...' + HelpKeyword = 'task_download' + Hint = + 'Download|Download selected remote file(s) to local directory in ' + + 'background' + ImageIndex = 107 + end + object LocalCopyQueueAction: TAction + Tag = 9 + Category = 'Local Selected Operation' + Caption = 'Upload in &Background...' + HelpKeyword = 'task_upload' + Hint = + 'Upload|Upload selected local file(s) to remote directory in back' + + 'ground' + ImageIndex = 108 + end + object LocalCopyFocusedQueueAction: TAction + Tag = 8 + Category = 'Local Focused Operation' + Caption = 'Upload in &Background...' + HelpKeyword = 'task_upload' + Hint = + 'Upload|Upload selected local file(s) to remote directory in back' + + 'ground' + ImageIndex = 108 + end + object RemoteCopyNonQueueAction: TAction + Tag = 14 + Category = 'Remote Selected Operation' + Caption = 'Down&load...' + HelpKeyword = 'task_download' + Hint = 'Download|Download selected remote file(s) to local directory' + ImageIndex = 89 + end + object RemoteCopyFocusedNonQueueAction: TAction + Tag = 12 + Category = 'Remote Focused Operation' + Caption = 'Down&load...' + HelpKeyword = 'task_download' + Hint = 'Download|Download selected remote file(s) to local directory' + ImageIndex = 89 + end + object LocalCopyNonQueueAction: TAction + Tag = 9 + Category = 'Local Selected Operation' + Caption = 'Up&load...' + HelpKeyword = 'task_upload' + Hint = 'Upload|Upload selected local file(s) to remote directory' + ImageIndex = 88 + end + object LocalCopyFocusedNonQueueAction: TAction + Tag = 8 + Category = 'Local Focused Operation' + Caption = 'Up&load...' + HelpKeyword = 'task_upload' + Hint = 'Upload|Upload selected local file(s) to remote directory' + ImageIndex = 88 + end object LocalCopyFocusedAction: TAction Tag = 8 Category = 'Local Focused Operation' @@ -596,7 +676,7 @@ object NonVisualDataModule: TNonVisualDataModule Tag = 15 Category = 'Session' Caption = 'Site &Manager...' - HelpKeyword = 'ui_login_stored_sessions' + HelpKeyword = 'ui_login' Hint = 'Site Manager|Opens site manager (hold down Shift to open site ma' + 'nager in new window)' @@ -1630,10 +1710,10 @@ object NonVisualDataModule: TNonVisualDataModule 'rectory or another name' ImageIndex = 78 end - object FileGenerateUrlAction: TAction + object FileGenerateUrlAction2: TAction Tag = 15 Category = 'Selected Operation' - Caption = 'Generate &URL...' + Caption = 'Generate File &URL...' HelpKeyword = 'ui_generateurl' Hint = 'Generate URL'#39's of selected file(s)' end @@ -1669,13 +1749,6 @@ object NonVisualDataModule: TNonVisualDataModule Hint = 'Delete|Delete selected file(s)' ImageIndex = 2 end - object CurrentEditAlternative2Action: TAction - Tag = 15 - Category = 'Selected Operation' - Caption = 'Ed&it With' - HelpKeyword = 'task_edit' - Hint = 'Edit With|Edit selected file(s) using alternative editor' - end object CurrentEditWithAction: TAction Tag = 15 Category = 'Selected Operation' @@ -1805,10 +1878,10 @@ object NonVisualDataModule: TNonVisualDataModule ImageIndex = 96 ShortCut = 24657 end - object QueueDisconnectOnceEmptyAction: TAction + object QueueDisconnectOnceEmptyAction2: TAction Tag = 12 Category = 'Queue' - Caption = '&Disconnect' + Caption = '&Disconnect Session' HelpKeyword = 'ui_queue' Hint = 'Disconnect the session once the queue is empty' ImageIndex = 87 @@ -1860,13 +1933,6 @@ object NonVisualDataModule: TNonVisualDataModule HelpKeyword = 'task_edit' Hint = 'Edit With|Edit selected file(s) using editor of your choice' end - object CurrentEditAlternativeFocusedAction: TAction - Tag = 15 - Category = 'Focused Operation' - Caption = 'Ed&it With' - HelpKeyword = 'task_edit' - Hint = 'Edit With|Edit selected file(s) using alternative editor' - end object NewDirAction: TAction Tag = 12 Category = 'Command' @@ -1875,18 +1941,18 @@ object NonVisualDataModule: TNonVisualDataModule Hint = 'Create directory|Create new directory' ImageIndex = 5 end - object QueueShutDownOnceEmptyAction: TAction + object QueueShutDownOnceEmptyAction2: TAction Tag = 12 Category = 'Queue' - Caption = '&Shut Down' + Caption = '&Shut Down Computer' HelpKeyword = 'ui_queue' Hint = 'Shut down the computer once the queue is empty' ImageIndex = 93 end - object QueueSuspendOnceEmptyAction: TAction + object QueueSuspendOnceEmptyAction2: TAction Tag = 12 Category = 'Queue' - Caption = 'Slee&p' + Caption = 'Slee&p Computer' HelpKeyword = 'ui_queue' Hint = 'Put the computer into sleep mode once the queue is empty' ImageIndex = 105 @@ -1913,6 +1979,7 @@ object NonVisualDataModule: TNonVisualDataModule Category = 'Queue' HelpKeyword = 'ui_queue#managing_the_queue' Hint = 'Change speed limit of selected queue item' + ImageIndex = 109 EditCaption = '&Speed' end object QueueDeleteAllAction: TAction @@ -1921,6 +1988,7 @@ object NonVisualDataModule: TNonVisualDataModule Caption = '&Cancel All' HelpKeyword = 'ui_queue#managing_the_queue' Hint = 'Remove all queue items' + ImageIndex = 106 end object LocalFilterAction: TAction Tag = 9 @@ -2132,12 +2200,58 @@ object NonVisualDataModule: TNonVisualDataModule 'Display system file context menu (in Properties you can opt to d' + 'isplay it by default instead of built-in menu)' end - object SessionGenerateUrlAction: TAction + object SessionGenerateUrlAction2: TAction Tag = 15 Category = 'Session' - Caption = 'Generate &URL...' + Caption = 'Generate Session &URL/Code...' HelpKeyword = 'ui_generateurl' - Hint = 'Generate URL for current session' + Hint = 'Generate URL or code for current session' + end + object SelectSameExtAction: TAction + Tag = 15 + Category = 'Selection' + Caption = 'Select Files with Same &Extension' + Hint = + 'Select all files with the same extension as currently focused fi' + + 'le' + ShortCut = 32875 + end + object UnselectSameExtAction: TAction + Tag = 15 + Category = 'Selection' + Caption = 'Unselect Files with Same E&xtension' + Hint = + 'Unselect all files with the same extension as currently focused ' + + 'file' + ShortCut = 32877 + end + object GoToAddressAction: TAction + Tag = 15 + Category = 'Command' + Caption = 'GoToAddressAction' + SecondaryShortCuts.Strings = ( + 'Alt+D') + ShortCut = 16460 + end + object LockAction: TAction + Tag = 15 + Category = 'Selected Operation' + Caption = '&Lock' + Hint = 'Lock|Lock selected file(s)' + end + object UnlockAction: TAction + Tag = 15 + Category = 'Selected Operation' + Caption = '&Unlock' + Hint = 'Unlock|Unlock selected file(s)' + end + object TipsAction: TAction + Tag = 15 + Category = 'Help' + Caption = 'Show &Tips' + HelpKeyword = 'ui_tips' + Hint = 'Displays tips on using WinSCP' + ImageIndex = 110 end end object ExplorerBarPopup: TTBXPopupMenu @@ -2605,6 +2719,8 @@ object NonVisualDataModule: TNonVisualDataModule end object QueuePopupSpeedComboBoxItem: TTBXComboBoxItem Action = QueueItemSpeedAction + ShowImage = True + OnAdjustImageIndex = QueuePopupSpeedComboBoxItemAdjustImageIndex end object N54: TTBXSeparatorItem end @@ -2646,14 +2762,15 @@ object NonVisualDataModule: TNonVisualDataModule RadioItem = True end object TBXItem13: TTBXItem - Action = QueueDisconnectOnceEmptyAction + Action = QueueDisconnectOnceEmptyAction2 RadioItem = True end object TBXItem68: TTBXItem - Action = QueueSuspendOnceEmptyAction + Action = QueueSuspendOnceEmptyAction2 + RadioItem = True end object TBXItem29: TTBXItem - Action = QueueShutDownOnceEmptyAction + Action = QueueShutDownOnceEmptyAction2 RadioItem = True end end @@ -2867,7 +2984,7 @@ object NonVisualDataModule: TNonVisualDataModule Action = FileSystemInfoAction end object TBXItem52: TTBXItem - Action = SessionGenerateUrlAction + Action = SessionGenerateUrlAction2 end object TBXSeparatorItem34: TTBXSeparatorItem end @@ -2901,17 +3018,25 @@ object NonVisualDataModule: TNonVisualDataModule object LocalOpenMenuItem: TTBXItem Action = CurrentOpenAction end - object LocalEditMenuItem: TTBXItem + object LocalEditMenuItem: TTBXSubmenuItem Action = CurrentEditFocusedAction + DropdownCombo = True + OnPopup = FocusedEditMenuItemPopup end - object TBXSubmenuItem6: TTBXSubmenuItem - Action = CurrentEditAlternativeFocusedAction - end - object LocalCopyMenuItem: TTBXItem + object LocalCopyMenuItem: TTBXSubmenuItem Action = LocalCopyFocusedAction - end - object TBXItem54: TTBXItem - Action = LocalMoveFocusedAction + DropdownCombo = True + object TBXItem73: TTBXItem + Action = LocalCopyFocusedNonQueueAction + end + object TBXItem74: TTBXItem + Action = LocalCopyFocusedQueueAction + end + object TBXSeparatorItem10: TTBXSeparatorItem + end + object TBXItem54: TTBXItem + Action = LocalMoveFocusedAction + end end object TBXItem57: TTBXItem Action = CurrentDeleteFocusedAction @@ -2940,7 +3065,7 @@ object NonVisualDataModule: TNonVisualDataModule Action = FullFileListToClipboardAction end object TBXItem62: TTBXItem - Action = FileGenerateUrlAction + Action = FileGenerateUrlAction2 end end object TBXSeparatorItem4: TTBXSeparatorItem diff --git a/source/forms/NonVisual.h b/source/forms/NonVisual.h index ab999249..fdda2cb9 100644 --- a/source/forms/NonVisual.h +++ b/source/forms/NonVisual.h @@ -39,6 +39,7 @@ #define fcTransferLabel 0x24 #define fcSessionsTabs 0x25 #define fcLocalPopup 0x26 +#define fcRemotePathComboBox 0x27 #define fcExplorerMenuBand 0x31 #define fcExplorerAddressBand 0x32 @@ -195,7 +196,6 @@ class TNonVisualDataModule : public TDataModule TAction *ConsoleAction; TAction *LocalExploreDirectoryAction; TAction *CurrentEditAction; - TAction *CurrentEditAlternative2Action; TAction *CurrentOpenAction; TAction *SynchronizeBrowsingAction; TAction *CurrentAddEditLinkAction; @@ -242,7 +242,7 @@ class TNonVisualDataModule : public TDataModule TAction *NewFileAction; TAction *RemoteCopyToFocusedAction; TAction *RemoteCopyToAction; - TAction *FileGenerateUrlAction; + TAction *FileGenerateUrlAction2; TAction *TableOfContentsAction; TTBXPopupMenu *CommanderBarPopup; TTBXItem *SessionButtons5; @@ -298,8 +298,8 @@ class TNonVisualDataModule : public TDataModule TTBXItem *StatusBar10; TTBXPopupMenu *RemoteFilePopup; TTBXItem *RemoteOpenMenuItem; - TTBXItem *RemoteEditMenuItem; - TTBXItem *RemoteCopyMenuItem; + TTBXSubmenuItem *RemoteEditMenuItem; + TTBXSubmenuItem *RemoteCopyMenuItem; TTBXItem *Duplicate3; TTBXItem *Moveto1; TTBXItem *Moveto6; @@ -451,7 +451,7 @@ class TNonVisualDataModule : public TDataModule TTBXItem *TBXItem135; TTBXItem *TBXItem136; TTBXItem *TBXItem209; - TAction *QueueDisconnectOnceEmptyAction; + TAction *QueueDisconnectOnceEmptyAction2; TTBXItem *TBXItem13; TAction *LocalCopyAction; TAction *RemoteCopyAction; @@ -488,7 +488,7 @@ class TNonVisualDataModule : public TDataModule TAction *RemoteFilterAction; TTBXItem *TBXItem26; TTBXItem *TBXItem27; - TAction *QueueShutDownOnceEmptyAction; + TAction *QueueShutDownOnceEmptyAction2; TAction *QueueIdleOnceEmptyAction; TTBXSubmenuItem *TBXSubmenuItem3; TTBXItem *TBXItem28; @@ -549,8 +549,8 @@ class TNonVisualDataModule : public TDataModule TTBXItem *TBXItem49; TTBXPopupMenu *LocalFilePopup; TTBXItem *LocalOpenMenuItem; - TTBXItem *LocalEditMenuItem; - TTBXItem *LocalCopyMenuItem; + TTBXSubmenuItem *LocalEditMenuItem; + TTBXSubmenuItem *LocalCopyMenuItem; TTBXItem *TBXItem54; TTBXItem *TBXItem57; TTBXItem *TBXItem58; @@ -571,7 +571,7 @@ class TNonVisualDataModule : public TDataModule TTBXSeparatorItem *TBXSeparatorItem5; TTBXSeparatorItem *TBXSeparatorItem6; TTBXItem *TBXItem56; - TAction *SessionGenerateUrlAction; + TAction *SessionGenerateUrlAction2; TTBXItem *TBXItem52; TAction *FormatSizeBytesKilobytesAction; TAction *FormatSizeBytesShortAction; @@ -584,18 +584,35 @@ class TNonVisualDataModule : public TDataModule TTBXItem *TBXItem64; TTBXItem *TBXItem65; TTBXItem *TBXItem66; - TAction *QueueSuspendOnceEmptyAction; + TAction *QueueSuspendOnceEmptyAction2; TTBXItem *TBXItem68; - TTBXSubmenuItem *TBXItem69; TAction *CurrentEditWithFocusedAction; - TAction *CurrentEditAlternativeFocusedAction; TAction *CurrentEditInternalFocusedAction; - TTBXSubmenuItem *TBXSubmenuItem6; TTBXSubmenuItem *TBXSubmenuItem7; TTBXItem *TBXItem70; TTBXItem *TBXItem71; TAction *QueueDeleteAllAction; TTBXItem *TBXItem142; + TTBXItem *TBXItem72; + TTBXItem *TBXItem73; + TAction *LocalCopyFocusedQueueAction; + TAction *LocalCopyQueueAction; + TAction *RemoteCopyFocusedQueueAction; + TAction *RemoteCopyQueueAction; + TAction *LocalCopyFocusedNonQueueAction; + TAction *LocalCopyNonQueueAction; + TAction *RemoteCopyFocusedNonQueueAction; + TAction *RemoteCopyNonQueueAction; + TTBXItem *TBXItem69; + TTBXSeparatorItem *TBXSeparatorItem9; + TTBXItem *TBXItem74; + TTBXSeparatorItem *TBXSeparatorItem10; + TAction *SelectSameExtAction; + TAction *UnselectSameExtAction; + TAction *GoToAddressAction; + TAction *LockAction; + TAction *UnlockAction; + TAction *TipsAction; void __fastcall LogActionsUpdate(TBasicAction *Action, bool &Handled); void __fastcall LogActionsExecute(TBasicAction *Action, bool &Handled); void __fastcall ExplorerActionsUpdate(TBasicAction *Action, bool &Handled); @@ -605,6 +622,13 @@ class TNonVisualDataModule : public TDataModule void __fastcall QueuePopupSpeedComboBoxItemItemClick(TObject *Sender); void __fastcall QueueSpeedComboBoxItemAcceptText(TObject *Sender, UnicodeString &NewText, bool &Accept); + void __fastcall FocusedEditMenuItemPopup(TTBCustomItem *Sender, bool FromLink); + void __fastcall EditMenuItemPopup(TTBCustomItem *Sender, bool FromLink); + void __fastcall QueuePopupSpeedComboBoxItemAdjustImageIndex(TTBXComboBoxItem *Sender, + const UnicodeString AText, int AIndex, int &ImageIndex); + UnicodeString __fastcall CustomCommandCaption(const TCustomCommandType * Command, bool Toolbar); + UnicodeString __fastcall CustomCommandHint(const TCustomCommandType * Command); + private: TListColumn * FListColumn; TCustomScpExplorerForm * FScpExplorer; @@ -625,12 +649,13 @@ class TNonVisualDataModule : public TDataModule void __fastcall SessionColorChange(TColor Color); void __fastcall CreateOpenedSessionListMenu(TAction * Action); TCustomDirView * __fastcall DirView(TOperationSide Side) { return ScpExplorer->DirView(Side); } + bool __fastcall DirViewEnabled(TOperationSide Side) { return ScpExplorer->DirViewEnabled(Side); } void __fastcall SessionItemClick(TObject * Sender); void __fastcall SessionFolderItemClick(TObject * Sender); void __fastcall SessionFolderThisItemClick(TObject * Sender); void __fastcall OpenedSessionItemClick(TObject * Sender); void __fastcall CustomCommandClick(TObject * Sender); - void __fastcall CreateEditorListMenu(TAction * Action, bool OnFocused); + void __fastcall CreateEditorListMenu(TTBCustomItem * Menu, bool OnFocused); void __fastcall EditorItemClick(TObject * Sender); void __fastcall EditorItemClickFocused(TObject * Sender); void __fastcall DoEditorItemClick(TObject * Sender, bool OnFocused); diff --git a/source/forms/OpenDirectory.cpp b/source/forms/OpenDirectory.cpp index d288f1db..e5981f93 100644 --- a/source/forms/OpenDirectory.cpp +++ b/source/forms/OpenDirectory.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include "OpenDirectory.h" #include "WinConfiguration.h" @@ -61,6 +62,7 @@ __fastcall TOpenDirectoryDialog::TOpenDirectoryDialog(TComponent * AOwner): FixComboBoxResizeBug(LocalDirectoryEdit); FixComboBoxResizeBug(RemoteDirectoryEdit); + LoadDialogImage(Image, L"Open folder"); } //--------------------------------------------------------------------- __fastcall TOpenDirectoryDialog::~TOpenDirectoryDialog() @@ -165,6 +167,7 @@ void __fastcall TOpenDirectoryDialog::UpdateControls(bool ListBoxUpdate) EnableControl(OKBtn, !Directory.IsEmpty()); LocalDirectoryBrowseButton->Visible = (OperationSide == osLocal); SwitchButton->Visible = AllowSwitch; + SessionBookmarksSheet->TabVisible = (Terminal != NULL); UpdateBookmarkControls(AddSessionBookmarkButton, RemoveSessionBookmarkButton, NULL, UpSessionBookmarkButton, DownSessionBookmarkButton, @@ -240,22 +243,29 @@ bool __fastcall TOpenDirectoryDialog::Execute() // cache session key, in case terminal is closed while the window is open SessionKey = Terminal->SessionData->SessionKey; LoadBookmarks(SessionBookmarksList, FSessionBookmarkList, WinConfiguration->Bookmarks[SessionKey]); - LoadBookmarks(SharedBookmarksList, FSharedBookmarkList, WinConfiguration->SharedBookmarks); - PageControl->ActivePage = - WinConfiguration->UseSharedBookmarks ? SharedBookmarksSheet : SessionBookmarksSheet; - DirectoryEditChange(NULL); - if (Mode == odAddBookmark) - { - AddAsBookmark(PageControl->ActivePage); - } } + + LoadBookmarks(SharedBookmarksList, FSharedBookmarkList, WinConfiguration->SharedBookmarks); + PageControl->ActivePage = + (Terminal == NULL) || WinConfiguration->UseSharedBookmarks ? SharedBookmarksSheet : SessionBookmarksSheet; + DirectoryEditChange(NULL); + if (Mode == odAddBookmark) + { + AddAsBookmark(PageControl->ActivePage); + } + FBookmarkSelected = false; Result = (ShowModal() == DefaultResult(this)); if (Terminal) { - WinConfiguration->Bookmarks[SessionKey] = FSessionBookmarkList; WinConfiguration->SharedBookmarks = FSharedBookmarkList; - WinConfiguration->UseSharedBookmarks = (PageControl->ActivePage == SharedBookmarksSheet); + if (Terminal != NULL) + { + WinConfiguration->Bookmarks[SessionKey] = FSessionBookmarkList; + // Do not remember that shared page was selected, + // if it was selected implicitly because there's no site page. + WinConfiguration->UseSharedBookmarks = (PageControl->ActivePage == SharedBookmarksSheet); + } } if (Result) { @@ -275,12 +285,12 @@ template typename T * GetBookmarkObject(TObject * Sender, T * SessionObject, T * SharedObject) { TControl * Control = dynamic_cast(Sender); - assert(Control != NULL); + DebugAssert(Control != NULL); switch (abs(Control->Tag)) { case 1: return SessionObject; case 2: return SharedObject; - default: FAIL; return NULL; + default: DebugFail(); return NULL; } } //--------------------------------------------------------------------------- @@ -357,7 +367,7 @@ void __fastcall TOpenDirectoryDialog::RemoveBookmark(TObject * Sender) int PrevItemIndex = BookmarksList->ItemIndex; TBookmark * Bookmark = GetBookmark(BookmarksList, PrevItemIndex); - assert(Bookmark != NULL); + DebugAssert(Bookmark != NULL); BookmarkList->Delete(Bookmark); BookmarksList->Items->Delete(PrevItemIndex); if (PrevItemIndex < BookmarksList->Items->Count) @@ -578,7 +588,7 @@ void __fastcall TOpenDirectoryDialog::ShortCutBookmarkButtonClick( int Index = BookmarksList->ItemIndex; TBookmark * Bookmark = GetBookmark(BookmarksList, Index); - assert(Bookmark != NULL); + DebugAssert(Bookmark != NULL); TShortCuts ShortCuts; WinConfiguration->CustomCommandList->ShortCuts(ShortCuts); diff --git a/source/forms/OpenDirectory.dfm b/source/forms/OpenDirectory.dfm index 66d480f2..dae39669 100644 --- a/source/forms/OpenDirectory.dfm +++ b/source/forms/OpenDirectory.dfm @@ -31,49 +31,6 @@ object OpenDirectoryDialog: TOpenDirectoryDialog Width = 32 Height = 32 AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC300000EC301C76FA864 - 000004D24944415478DAED967B4C5B551CC7BFF7DEF6B60865942E83CD1658A7 - 8950960D90F0C8D0E1A66CEB06E21F46E33460E27FBE6296CC6C23D685A828FE - 6DE25FFBC368F40F37610F35C68263D83D904DC0C9BB0F86E3614BC756E8E3DE - E301CACAA5B7B031C8FEF1A4CD39F79EDF39DFCFFDFE7EF7C1E061340B5823BF - FEB18123E33DCC6AECB7D302855DAD3383904A02E4D14DD3E9E90001F1D0FE77 - 164C63BADF7DB2C98290C902DEA74AFE9E6159B32008E6070648FF446B660853 - AFD6F04F68D62720519B80B8B838B050000270C7EBC3BF236E4C78BC8384901A - 0AF3B25E6FA0C20C5C371CAFAE1C80DA98CE277FA85473C7749BD7CD0A2B5865 - F8AF98ED95F3634E89C989DBB8DED90D6D5212F2F3F2D1D6FE079C2EFBCA0132 - 3ED27DACD228DE4F3268E0F706E19F0C8288044A951249DA44A43E9A02B52A4E - 02439D02AF5041C9F1B8DC761976D78014C06AC9504F2A042BC014CACB129B26 - C49556F1DE67143CD7A84AE4599F7BDACD10F285C8E002C7706382480C74D3E7 - 388EAD7A3C6B8B5AAFD7537185C49D1918DB958B1874F64B011A6A0D9F994A5F - 3C642C3C2C2B3F60AB4397F5BBFAB7B93B2F703C6B1402C20F2195F0FAD07BB7 - DC51B551A7CB6444723A2B3BD368CCD82C05A02969BDD48A01675F04E0D4717D - 813A5EDD5A7AF069968FE3650102530158BF6A160F073CBF4C80B0097EB7B9CB - 82805CEC4CB5DFE1931B5237A59615E4E7DF0598AF8B964B2DE877F446001A6A - D33AF2CAB6666FDAB261C9DC0FF78FA2EDA78E2563FC20F8929D864F9F82DC9C - DCD92B5E5C94CDB6A6280072A03A6FA53529696F583B719DA890B37DFB6CC1CD - 8947EA80655834D9ACD100FB5F32AE0AC0BB179D68704E2C17E623225B220578 - 5EBB2A00B1DAE9531E941F734A0A5F02B0EFD9B9C3B6AB0423636BCA32D3DA29 - 4CAE04A0ECA92042F4F179BE5D8BB2779AD64E9A0470E6D31DD3FB8FD8E32400 - BB8B43F078198CB1C5D8B6F72D60FA1BB9D5F44722FDC271D49C181ECFAC13EF - CE794626D1D2D079853A902F01D8592060E8268384CCD760306503C1F3F729B4 - 54CCFC5884FDEF3174B43A4E50806A0940491E41F72083CC0347E9CBC50B847A - 1F4828D65CFB6F0E0C0DBAABCB8FBA4E48008AB601D7BA8192EA3AF0DC65FA3A - 753F9050743F9786E633FDF0BAA7F22B8EB9AE48009E3431B8DAA3C09E37EBC1 - F84E62F685BE287FCB0A2DE392288838F76D6F283EC0684A2DF669094066068B - 31C180A2CA83C09435C6D5227C2CDE436D44BB746BC28FE673437FD1FC9B66B6 - 9200185258A8F4B9C82CA0B9F0FF791FD51E3B1D6451FC0DFB6DB4DBC6BF2EAF - 71BD120590AC61612CDE858D692A7A07DC90CDDF9C03B1F34EE4F2BE20A6EB9A - 17037DBE4315471D9F4701A879068515E5D0C48F528727EF21EF629849BC67B7 - 5A9B3D708F877695D7387E8D0260E9D19EAA4A70C11E1A2CC8DA4A96145A5023 - 318AF1C7D31360A705DD1ECB903B0A609DF611E41499204EB9C20FB0F9C590F6 - 8BCFCBC620221E7E820683226C977C4E9AFFF4795D09C0669309A61DBBA9A353 - 0B72BD686312D9502A42225A58E84424D673D3850B3FB79CA577805916206BAB - 0EBA64FA3D4F428B84620048C672805297FE1915D037287E40018ECB029454EC - C53A5D6A4C0BE52D8F01B4707D38B6BDA505C3F651F3811AC7D92880C6DAB461 - 1AB7116BDBFC8A10BF619FA5EF5614C0C36AFF03FC07D24654E8F935DA1B0000 - 000049454E44AE426082} end object LocalDirectoryEdit: TIEComboBox Left = 46 diff --git a/source/forms/Preferences.cpp b/source/forms/Preferences.cpp index 752b7229..6c562341 100644 --- a/source/forms/Preferences.cpp +++ b/source/forms/Preferences.cpp @@ -70,6 +70,7 @@ __fastcall TPreferencesDialog::TPreferencesDialog( FListViewDragDest = -1; FCopyParamList = new TCopyParamList(); FEditorList = new TEditorList(); + FAutomaticUpdatesPossible = IsInstalled(); UseSystemSettings(this); FCustomCommandsScrollOnDragOver = new TListViewScrollOnDragOver(CustomCommandsView, true); @@ -89,7 +90,7 @@ __fastcall TPreferencesDialog::TPreferencesDialog( HintLabel(ShellIconsText2); HotTrackLabel(CopyParamLabel); - HintLabel(PuttyPathHintText, LoadStr(PUTTY_PATTERNS_HINT)); + HintLabel(PuttyPathHintText, LoadStr(PUTTY_PATTERNS_HINT2)); EditorEncodingCombo->Items->Add(DefaultEncodingName()); EditorEncodingCombo->Items->Add(LoadStr(UTF8_NAME)); @@ -102,6 +103,13 @@ __fastcall TPreferencesDialog::TPreferencesDialog( PuttyRegistryStorageKeyEdit->Items->Add(KittyRegistryStorageKey); MenuButton(RegisterAsUrlHandlersButton); + MenuButton(EditorFontColorButton); + MenuButton(EditorBackgroundColorButton); + + LoadDialogImage(CommanderInterfacePicture, L"Commander"); + LoadDialogImage(ExplorerInterfacePicture, L"Explorer"); + + LinkLabel(UpdatesLink); } //--------------------------------------------------------------------------- __fastcall TPreferencesDialog::~TPreferencesDialog() @@ -121,7 +129,6 @@ bool __fastcall TPreferencesDialog::Execute(TPreferencesDialogData * DialogData) { PuttyPathEdit->Items = CustomWinConfiguration->History[L"PuttyPath"]; FDialogData = DialogData; - LoadConfiguration(); bool Result = (ShowModal() == DefaultResult(this)); if (Result) { @@ -162,7 +169,7 @@ TTabSheet * __fastcall TPreferencesDialog::FindPageForTreeNode(TTreeNode * Node) return Sheet; } } - FAIL; + DebugFail(); return NULL; } //--------------------------------------------------------------------------- @@ -174,7 +181,7 @@ void __fastcall TPreferencesDialog::PrepareNavigationTree(TTreeView * Tree) { TTreeNode * Node = Tree->Items->Item[i]; TTabSheet * Sheet = FindPageForTreeNode(Node); - if (NOT_NULL(Sheet)) + if (DebugNotNull(Sheet)) { if (Sheet->Enabled) { @@ -216,7 +223,6 @@ void __fastcall TPreferencesDialog::LoadConfiguration() BOOLPROP(ConfirmResume); BOOLPROP(ConfirmDeleting); BOOLPROP(ConfirmRecycling); - BOOLPROP(ConfirmClosingSession); BOOLPROP(ConfirmExitOnCompletion); BOOLPROP(ConfirmCommandSession); BOOLPROP(ContinueOnError); @@ -229,6 +235,8 @@ void __fastcall TPreferencesDialog::LoadConfiguration() BOOLPROP(ConfirmTemporaryDirectoryCleanup); BOOLPROP(FullRowSelect); + ConfirmClosingSessionCheck2->Checked = WinConfiguration->ConfirmClosingSession; + if (WinConfiguration->DDTransferConfirmation == asAuto) { // allow grayed state only initially, @@ -310,6 +318,8 @@ void __fastcall TPreferencesDialog::LoadConfiguration() EditorEncodingCombo->ItemIndex = 0; } TWinConfiguration::RestoreFont(WinConfiguration->Editor.Font, FEditorFont.get()); + FEditorFont->Color = WinConfiguration->Editor.FontColor; + FEditorBackgroundColor = WinConfiguration->Editor.BackgroundColor; (*FEditorList) = *WinConfiguration->EditorList; UpdateEditorListView(); @@ -414,6 +424,8 @@ void __fastcall TPreferencesDialog::LoadConfiguration() } BOOLPROP(MinimizeToTray); BOOLPROP(ExternalSessionInExistingInstance); + BOOLPROP(KeepOpenWhenNoSession); + BOOLPROP(ShowTips); // panels DoubleClickActionCombo->ItemIndex = WinConfiguration->DoubleClickAction; @@ -434,7 +446,7 @@ void __fastcall TPreferencesDialog::LoadConfiguration() FormatSizeBytesCombo->ItemIndex = 2; break; default: - FAIL; + DebugFail(); } bool CustomPanelFont = !WinConfiguration->PanelFont.FontName.IsEmpty(); @@ -468,6 +480,8 @@ void __fastcall TPreferencesDialog::LoadConfiguration() } UpdatesShowOnStartup->Checked = Updates.ShowOnStartup; + UpdatesAuthenticationEmailEdit->Text = Updates.AuthenticationEmail; + FVerifiedUpdatesAuthenticationEmail = UpdatesAuthenticationEmailEdit->Text; CollectUsageCheck->Checked = Configuration->CollectUsage; @@ -510,23 +524,10 @@ void __fastcall TPreferencesDialog::LoadConfiguration() break; default: - FAIL; + DebugFail(); break; } - if (WinConfiguration->Theme == THEME_OFFICEXP) - { - ThemeCombo->ItemIndex = 1; - } - else if (WinConfiguration->Theme == THEME_OFFICE2003) - { - ThemeCombo->ItemIndex = 2; - } - else - { - ThemeCombo->ItemIndex = 0; - } - // security UseMasterPasswordCheck->Checked = WinConfiguration->UseMasterPassword; SessionRememberPasswordCheck->Checked = GUIConfiguration->SessionRememberPassword; @@ -605,7 +606,6 @@ void __fastcall TPreferencesDialog::SaveConfiguration() BOOLPROP(ConfirmResume); BOOLPROP(ConfirmDeleting); BOOLPROP(ConfirmRecycling); - BOOLPROP(ConfirmClosingSession); BOOLPROP(ConfirmExitOnCompletion); BOOLPROP(ConfirmCommandSession); BOOLPROP(ContinueOnError); @@ -618,6 +618,8 @@ void __fastcall TPreferencesDialog::SaveConfiguration() BOOLPROP(ConfirmTemporaryDirectoryCleanup); BOOLPROP(FullRowSelect); + WinConfiguration->ConfirmClosingSession = ConfirmClosingSessionCheck2->Checked; + WinConfiguration->DDTransferConfirmation = CheckBoxAutoSwitchSave(DDTransferConfirmationCheck); @@ -688,6 +690,8 @@ void __fastcall TPreferencesDialog::SaveConfiguration() break; } TWinConfiguration::StoreFont(FEditorFont.get(), WinConfiguration->Editor.Font); + WinConfiguration->Editor.FontColor = FEditorFont->Color; + WinConfiguration->Editor.BackgroundColor = FEditorBackgroundColor; WinConfiguration->EditorList = FEditorList; // overwrites only TCopyParamType fields @@ -784,6 +788,8 @@ void __fastcall TPreferencesDialog::SaveConfiguration() } BOOLPROP(MinimizeToTray); BOOLPROP(ExternalSessionInExistingInstance); + BOOLPROP(KeepOpenWhenNoSession); + BOOLPROP(ShowTips); // panels WinConfiguration->DoubleClickAction = (TDoubleClickAction)DoubleClickActionCombo->ItemIndex; @@ -804,7 +810,7 @@ void __fastcall TPreferencesDialog::SaveConfiguration() WinConfiguration->FormatSizeBytes = fbShort; break; default: - FAIL; + DebugFail(); } TFontConfiguration PanelFontConfiguration; @@ -815,54 +821,10 @@ void __fastcall TPreferencesDialog::SaveConfiguration() WinConfiguration->PanelFont = PanelFontConfiguration; // updates - TUpdatesConfiguration Updates = WinConfiguration->Updates; - if (UpdatesPeriodCombo->ItemIndex == 0) - { - Updates.Period = 0; - } - else if (UpdatesPeriodCombo->ItemIndex == 1) - { - Updates.Period = 1; - } - else if (UpdatesPeriodCombo->ItemIndex == 2) - { - Updates.Period = 7; - } - else - { - Updates.Period = 30; - } - - Updates.ShowOnStartup = UpdatesShowOnStartup->Checked; + WinConfiguration->Updates = SaveUpdates(); Configuration->CollectUsage = CollectUsageCheck->Checked; - Updates.BetaVersions = ComboAutoSwitchSave(UpdatesBetaVersionsCombo); - - if (UpdatesDirectCheck->Checked) - { - Updates.ConnectionType = ctDirect; - } - else if (UpdatesAutoCheck->Checked) - { - Updates.ConnectionType = ctAuto; - } - else if (UpdatesProxyCheck->Checked) - { - if (!UpdatesProxyHostEdit->Text.IsEmpty()) - { - Updates.ConnectionType = ctProxy; - } - else - { - Updates.ConnectionType = ctDirect; - } - } - Updates.ProxyHost = UpdatesProxyHostEdit->Text; - Updates.ProxyPort = UpdatesProxyPortEdit->AsInteger; - - WinConfiguration->Updates = Updates; - // presets WinConfiguration->CopyParamList = FCopyParamList; BOOLPROP(CopyParamAutoSelectNotice); @@ -874,19 +836,6 @@ void __fastcall TPreferencesDialog::SaveConfiguration() } CustomWinConfiguration->Interface = GetInterface(); - if (ThemeCombo->ItemIndex == 1) - { - WinConfiguration->Theme = THEME_OFFICEXP; - } - else if (ThemeCombo->ItemIndex == 2) - { - WinConfiguration->Theme = THEME_OFFICE2003; - } - else - { - WinConfiguration->Theme = THEME_DEFAULT; - } - // network Configuration->ExternalIpAddress = (CustomExternalIpAddressButton->Checked ? CustomExternalIpAddressEdit->Text : UnicodeString()); @@ -940,6 +889,56 @@ void __fastcall TPreferencesDialog::SaveConfiguration() } } //--------------------------------------------------------------------------- +TUpdatesConfiguration __fastcall TPreferencesDialog::SaveUpdates() +{ + TUpdatesConfiguration Updates = WinConfiguration->Updates; + if (UpdatesPeriodCombo->ItemIndex == 0) + { + Updates.Period = 0; + } + else if (UpdatesPeriodCombo->ItemIndex == 1) + { + Updates.Period = 1; + } + else if (UpdatesPeriodCombo->ItemIndex == 2) + { + Updates.Period = 7; + } + else + { + Updates.Period = 30; + } + + Updates.ShowOnStartup = UpdatesShowOnStartup->Checked; + Updates.AuthenticationEmail = UpdatesAuthenticationEmailEdit->Text; + + Updates.BetaVersions = ComboAutoSwitchSave(UpdatesBetaVersionsCombo); + + if (UpdatesDirectCheck->Checked) + { + Updates.ConnectionType = ctDirect; + } + else if (UpdatesAutoCheck->Checked) + { + Updates.ConnectionType = ctAuto; + } + else if (UpdatesProxyCheck->Checked) + { + if (!UpdatesProxyHostEdit->Text.IsEmpty()) + { + Updates.ConnectionType = ctProxy; + } + else + { + Updates.ConnectionType = ctDirect; + } + } + Updates.ProxyHost = UpdatesProxyHostEdit->Text; + Updates.ProxyPort = UpdatesProxyPortEdit->AsInteger; + + return Updates; +} +//--------------------------------------------------------------------------- TInterface __fastcall TPreferencesDialog::GetInterface() { return CommanderInterfaceButton2->Checked ? ifCommander : ifExplorer; @@ -947,6 +946,11 @@ TInterface __fastcall TPreferencesDialog::GetInterface() //--------------------------------------------------------------------------- void __fastcall TPreferencesDialog::FormShow(TObject * /*Sender*/) { + // Load only now, particularly so that we have handles allocated already. + // If called before ShowModal, we end up recreating the handles, + // what causes flicker of the currently focused window + LoadConfiguration(); + InstallPathWordBreakProc(RandomSeedFileEdit); InstallPathWordBreakProc(DDTemporaryDirectoryEdit); InstallPathWordBreakProc(PuttyPathEdit); @@ -964,9 +968,11 @@ void __fastcall TPreferencesDialog::FormShow(TObject * /*Sender*/) case pmPresets: PageControl->ActivePage = CopyParamListSheet; break; case pmEditors: PageControl->ActivePage = EditorSheet; break; case pmCommander: PageControl->ActivePage = CommanderSheet; break; + case pmEditorInternal: PageControl->ActivePage = EditorInternalSheet; break; default: PageControl->ActivePage = PreferencesSheet; break; } PageControlChange(NULL); + ActiveControl = NavigationTree; } //--------------------------------------------------------------------------- void __fastcall TPreferencesDialog::ControlChange(TObject * /*Sender*/) @@ -1038,10 +1044,16 @@ void __fastcall TPreferencesDialog::UpdateControls() EditorFontLabelText += TabSample(L"ABCD") + L"\n"; EditorFontLabelText += TabSample(L"1234"); EditorFontLabel->Caption = EditorFontLabelText; - if (!SameFont(EditorFontLabel->Font, FEditorFont.get())) + TColor EditorFontColor = GetWindowTextColor(FEditorFont->Color); + if (!SameFont(EditorFontLabel->Font, FEditorFont.get()) || + (EditorFontLabel->Font->Color != EditorFontColor)) { - EditorFontLabel->Font = FEditorFont.get(); + std::unique_ptr Font(new TFont); + Font->Assign(FEditorFont.get()); + Font->Color = EditorFontColor; + EditorFontLabel->Font = Font.get(); } + EditorFontLabel->Color = GetWindowColor(FEditorBackgroundColor); bool CommandSelected = (CustomCommandsView->Selected != NULL); EnableControl(EditCommandButton, CommandSelected); @@ -1109,6 +1121,9 @@ void __fastcall TPreferencesDialog::UpdateControls() EnableControl(DownEditorButton, EditorSelected && (EditorListView3->ItemIndex < EditorListView3->Items->Count - 1)); + // updates + EnableControl(UpdatesAuthenticationEmailEdit, FAutomaticUpdatesPossible); + EnableControl(UpdatesAuthenticationEmailLabel, UpdatesAuthenticationEmailEdit->Enabled); EnableControl(UsageViewButton, CollectUsageCheck->Checked); EnableControl(UpdatesProxyHostEdit, UpdatesProxyCheck->Checked); EnableControl(UpdatesProxyHostLabel, UpdatesProxyHostEdit->Enabled); @@ -1150,12 +1165,12 @@ void __fastcall TPreferencesDialog::UpdateControls() // integration // There's no quick launch in Windows 7 - EnableControl(QuickLaunchIconButton, !::IsWin7()); + EnableControl(QuickLaunchIconButton, !IsWin7()); MakeDefaultHandlerItem->Visible = IsWinVista(); // languages LanguageChangeLabel->Visible = - !GUIConfiguration->CanApplyLocaleImmediately && + DebugAlwaysTrue(!GUIConfiguration->CanApplyLocaleImmediately) && (LanguagesView->ItemFocused != NULL) && (reinterpret_cast(LanguagesView->ItemFocused->Data) != GUIConfiguration->AppliedLocale); @@ -1193,6 +1208,41 @@ void __fastcall TPreferencesDialog::EditorFontButtonClick(TObject * /*Sender*/) } } //--------------------------------------------------------------------------- +void __fastcall TPreferencesDialog::EditorFontColorChange(TColor Color) +{ + FEditorFont->Color = Color; + UpdateControls(); +} +//--------------------------------------------------------------------------- +void __fastcall TPreferencesDialog::EditorFontColorButtonClick(TObject * /*Sender*/) +{ + // WORKAROUND: Compiler keeps crashing randomly (but frequently) with + // "internal error" when passing menu directly to unique_ptr. + // Splitting it to two statements seems to help. + // The same hack exists in TSiteAdvancedDialog::ColorButtonClick + TPopupMenu * Menu = CreateColorPopupMenu(FEditorFont->Color, EditorFontColorChange); + // Popup menu has to survive the popup as TBX calls click handler asynchronously (post). + FColorPopupMenu.reset(Menu); + MenuPopup(Menu, EditorFontColorButton); +} +//--------------------------------------------------------------------------- +void __fastcall TPreferencesDialog::EditorBackgroundColorChange(TColor Color) +{ + FEditorBackgroundColor = Color; + UpdateControls(); +} +//--------------------------------------------------------------------------- +void __fastcall TPreferencesDialog::EditorBackgroundColorButtonClick(TObject * /*Sender*/) +{ + // See comment in EditorFontColorButtonClick. + // We are using session color (contrary to editor text color) for background + // for a consistency with color selection menu on editor toolbar. + TTBXPopupMenu * PopupMenu = new TTBXPopupMenu(Application); + FColorPopupMenu.reset(PopupMenu); + CreateEditorBackgroundColorMenu(PopupMenu->Items, FEditorBackgroundColor, EditorBackgroundColorChange); + MenuPopup(FColorPopupMenu.get(), EditorBackgroundColorButton); +} +//--------------------------------------------------------------------------- void __fastcall TPreferencesDialog::PanelFontButtonClick(TObject * /*Sender*/) { if (FontDialog(FPanelFont.get())) @@ -1244,7 +1294,7 @@ void __fastcall TPreferencesDialog::IconButtonClick(TObject *Sender) { if (Sender == SendToHookButton) { - IconName = FMTLOAD(SENDTO_HOOK_NAME, (AppName)); + IconName = FMTLOAD(SENDTO_HOOK_NAME2, (AppName)); SpecialFolder = CSIDL_SENDTO; Params = TProgramParams::FormatSwitch(UPLOAD_SWITCH); } @@ -1274,7 +1324,7 @@ void __fastcall TPreferencesDialog::CustomCommandsViewData(TObject * /*Sender*/, if (FCustomCommandList != NULL) { int Index = Item->Index; - assert(Index >= 0 && Index <= FCustomCommandList->Count); + DebugAssert(Index >= 0 && Index <= FCustomCommandList->Count); const TCustomCommandType * Command = FCustomCommandList->Commands[Index]; UnicodeString Caption = StripHotkey(Command->Name); if (Command->ShortCut != 0) @@ -1282,7 +1332,7 @@ void __fastcall TPreferencesDialog::CustomCommandsViewData(TObject * /*Sender*/, Caption = FORMAT(L"%s (%s)", (Caption, ShortCutToText(Command->ShortCut))); } Item->Caption = Caption; - assert(!Item->SubItems->Count); + DebugAssert(!Item->SubItems->Count); Item->SubItems->Add(Command->Command); int Params = Command->Params; Item->SubItems->Add(LoadStr( @@ -1342,7 +1392,7 @@ void __fastcall TPreferencesDialog::AddEditCommandButtonClick(TObject * Sender) if (Edit) { int Index = CustomCommandsView->ItemIndex; - assert(Index >= 0 && Index <= FCustomCommandList->Count); + DebugAssert(Index >= 0 && Index <= FCustomCommandList->Count); Command = *FCustomCommandList->Commands[Index]; } @@ -1385,7 +1435,7 @@ void __fastcall TPreferencesDialog::AddEditCommandButtonClick(TObject * Sender) void __fastcall TPreferencesDialog::RemoveCommandButtonClick( TObject * /*Sender*/) { - assert(CustomCommandsView->ItemIndex >= 0 && + DebugAssert(CustomCommandsView->ItemIndex >= 0 && CustomCommandsView->ItemIndex < FCustomCommandList->Count); FCustomCommandList->Delete(CustomCommandsView->ItemIndex); UpdateCustomCommandsView(); @@ -1429,7 +1479,7 @@ TListViewScrollOnDragOver * __fastcall TPreferencesDialog::ScrollOnDragOver(TObj } else { - FAIL; + DebugFail(); return NULL; } } @@ -1528,7 +1578,7 @@ void __fastcall TPreferencesDialog::UpDownCopyParamButtonClick(TObject * Sender) void __fastcall TPreferencesDialog::RemoveCopyParamButtonClick( TObject * /*Sender*/) { - assert(CopyParamListView->ItemIndex >= 1 && + DebugAssert(CopyParamListView->ItemIndex >= 1 && CopyParamListView->ItemIndex < (1 + FCopyParamList->Count)); FCopyParamList->Delete(CopyParamListView->ItemIndex - 1); UpdateCopyParamListView(); @@ -1639,7 +1689,7 @@ void __fastcall TPreferencesDialog::UpDownEditorButtonClick(TObject *Sender) void __fastcall TPreferencesDialog::RemoveEditorButtonClick( TObject * /*Sender*/) { - assert(EditorListView3->ItemIndex >= 0 && + DebugAssert(EditorListView3->ItemIndex >= 0 && EditorListView3->ItemIndex < FEditorList->Count); FEditorList->Delete(EditorListView3->ItemIndex); UpdateEditorListView(); @@ -1731,7 +1781,7 @@ void __fastcall TPreferencesDialog::EditorListView3Data(TObject * /*Sender*/, if (FEditorList != NULL) { int Index = Item->Index; - assert(Index >= 0 && Index <= FEditorList->Count); + DebugAssert(Index >= 0 && Index <= FEditorList->Count); const TEditorPreferences * Editor = FEditorList->Editors[Index]; Item->Caption = Editor->Name; Item->SubItems->Add(Editor->Data->FileMask.Masks); @@ -1745,9 +1795,9 @@ void __fastcall TPreferencesDialog::EditorListView3Data(TObject * /*Sender*/, void __fastcall TPreferencesDialog::NavigationTreeChange(TObject * /*Sender*/, TTreeNode * Node) { - if (ALWAYS_TRUE(Node->SelectedIndex > 0)) + if (DebugAlwaysTrue(Node->SelectedIndex > 0)) { - PageControl->ActivePage = NOT_NULL(FindPageForTreeNode(Node)); + PageControl->ActivePage = DebugNotNull(FindPageForTreeNode(Node)); // reshow the accelerators, etc ResetSystemSettings(this); // This is particularly here to enable EditCopyParamButton, @@ -1761,7 +1811,7 @@ void __fastcall TPreferencesDialog::PageControlChange(TObject * /*Sender*/) { // this is probably only ever called from FormShow (explicitly) bool Found = false; - if (ALWAYS_TRUE(PageControl->ActivePage->Tag > 0)) + if (DebugAlwaysTrue(PageControl->ActivePage->Tag > 0)) { for (int Index = 0; Index < NavigationTree->Items->Count; Index++) { @@ -1774,7 +1824,7 @@ void __fastcall TPreferencesDialog::PageControlChange(TObject * /*Sender*/) } } - if (ALWAYS_TRUE(Found)) + if (DebugAlwaysTrue(Found)) { UpdateControls(); } @@ -1809,7 +1859,7 @@ void __fastcall TPreferencesDialog::CMDialogKey(TWMKeyDown & Message) //--------------------------------------------------------------------------- void __fastcall TPreferencesDialog::WMHelp(TWMHelp & Message) { - assert(Message.HelpInfo != NULL); + DebugAssert(Message.HelpInfo != NULL); if (Message.HelpInfo->iContextType == HELPINFO_WINDOW) { @@ -1823,7 +1873,7 @@ void __fastcall TPreferencesDialog::WMHelp(TWMHelp & Message) void __fastcall TPreferencesDialog::Dispatch(void *Message) { TMessage * M = reinterpret_cast(Message); - assert(M); + DebugAssert(M); if (M->Msg == CM_DIALOGKEY) { CMDialogKey(*((TWMKeyDown *)Message)); @@ -1924,7 +1974,7 @@ void __fastcall TPreferencesDialog::CopyParamListViewData(TObject * /*Sender*/, } else { - assert(Index >= 1 && Index <= 1 + FCopyParamList->Count); + DebugAssert(Index >= 1 && Index <= 1 + FCopyParamList->Count); Name = StripHotkey(FCopyParamList->Names[Index - 1]); Rule = BooleanToStr(FCopyParamList->Rules[Index - 1] != NULL); } @@ -1975,14 +2025,6 @@ void __fastcall TPreferencesDialog::ListViewEndDrag( ScrollOnDragOver(Sender)->EndDrag(); } //--------------------------------------------------------------------------- -void __fastcall TPreferencesDialog::PathEditCreateEditDialog( - TObject * Sender, TFileDialogKind DialogKind, TOpenDialog *& Dialog) -{ - USEDPARAM(DialogKind); - assert(DialogKind == dkOpen); - Dialog = new TOpenDialog(dynamic_cast(Sender)); -} -//--------------------------------------------------------------------------- void __fastcall TPreferencesDialog::SessionReopenTimeoutEditSetValue( TObject * /*Sender*/, Extended Value, UnicodeString & Text, bool & Handled) { @@ -2190,3 +2232,48 @@ void __fastcall TPreferencesDialog::PanelFontLabelDblClick(TObject * Sender) PanelFontButtonClick(Sender); } //--------------------------------------------------------------------------- +void __fastcall TPreferencesDialog::UpdatesAuthenticationEmailEditExit(TObject * /*Sender*/) +{ + if (FVerifiedUpdatesAuthenticationEmail != UpdatesAuthenticationEmailEdit->Text) + { + FVerifiedUpdatesAuthenticationEmail = UpdatesAuthenticationEmailEdit->Text; + + if (!FVerifiedUpdatesAuthenticationEmail.IsEmpty()) + { + TUpdatesConfiguration Updates = SaveUpdates(); + + { + TInstantOperationVisualizer Visualizer; + QueryUpdates(Updates); + } + + UnicodeString AuthenticationError = Updates.Results.AuthenticationError; + if (!AuthenticationError.IsEmpty()) + { + AuthenticationError = FormatUpdatesMessage(AuthenticationError); + if (HasParagraphs(AuthenticationError)) + { + AuthenticationError = MainInstructionsFirstParagraph(AuthenticationError); + } + else + { + AuthenticationError = MainInstructions(AuthenticationError); + } + + UnicodeString HelpUrl = GetEnableAutomaticUpdatesUrl(); + unsigned int Result = + MoreMessageDialog(AuthenticationError, NULL, qtError, qaIgnore | qaAbort, HelpUrl); + if (Result == qaAbort) + { + Abort(); + } + } + } + } +} +//--------------------------------------------------------------------------- +void __fastcall TPreferencesDialog::UpdatesLinkClick(TObject * /*Sender*/) +{ + EnableAutomaticUpdates(); +} +//--------------------------------------------------------------------------- diff --git a/source/forms/Preferences.dfm b/source/forms/Preferences.dfm index ae4206b6..43ce08b4 100644 --- a/source/forms/Preferences.dfm +++ b/source/forms/Preferences.dfm @@ -103,13 +103,13 @@ object PreferencesDialog: TPreferencesDialog TabOrder = 2 OnClick = ControlChange end - object ConfirmClosingSessionCheck: TCheckBox + object ConfirmClosingSessionCheck2: TCheckBox Left = 16 Top = 136 Width = 357 Height = 17 Anchors = [akLeft, akTop, akRight] - Caption = 'Exiting appli&cation' + Caption = 'Closing sessions when exiting appli&cation' TabOrder = 5 OnClick = ControlChange end @@ -285,11 +285,11 @@ object PreferencesDialog: TPreferencesDialog AcceptFiles = True OnBeforeDialog = PathEditBeforeDialog OnAfterDialog = PathEditAfterDialog + DialogKind = dkSave DefaultExt = 'log' Filter = 'Session log files (*.log)|*.log|All files (*.*)|*.*' DialogOptions = [ofHideReadOnly, ofPathMustExist] DialogTitle = 'Select file for session log.' - OnCreateEditDialog = PathEditCreateEditDialog ClickKey = 16397 Anchors = [akLeft, akTop, akRight] TabOrder = 3 @@ -431,11 +431,11 @@ object PreferencesDialog: TPreferencesDialog AcceptFiles = True OnBeforeDialog = PathEditBeforeDialog OnAfterDialog = PathEditAfterDialog + DialogKind = dkSave DefaultExt = 'xml' Filter = 'XML log files (*.xml)|*.xml|All files (*.*)|*.*' DialogOptions = [ofHideReadOnly, ofPathMustExist] DialogTitle = 'Select file for XML log.' - OnCreateEditDialog = PathEditCreateEditDialog ClickKey = 16397 Anchors = [akLeft, akTop, akRight] TabOrder = 1 @@ -478,44 +478,11 @@ object PreferencesDialog: TPreferencesDialog 392) object InterfaceChangeLabel: TLabel Left = 8 - Top = 274 + Top = 216 Width = 177 Height = 13 Caption = 'Changes will apply on the next start.' end - object ThemeGroup: TGroupBox - Left = 8 - Top = 216 - Width = 389 - Height = 52 - Anchors = [akLeft, akTop, akRight] - Caption = 'Theme' - TabOrder = 0 - DesignSize = ( - 389 - 52) - object Label7: TLabel - Left = 16 - Top = 23 - Width = 82 - Height = 13 - Caption = 'Interface &theme:' - FocusControl = ThemeCombo - end - object ThemeCombo: TComboBox - Left = 132 - Top = 18 - Width = 141 - Height = 21 - Style = csDropDownList - Anchors = [akLeft, akTop, akRight] - TabOrder = 0 - Items.Strings = ( - 'System' - 'Office XP' - 'Office 2003') - end - end object InterfaceGroup: TGroupBox Left = 8 Top = 8 @@ -523,7 +490,7 @@ object PreferencesDialog: TPreferencesDialog Height = 202 Anchors = [akLeft, akTop, akRight, akBottom] Caption = 'User Interface' - TabOrder = 1 + TabOrder = 0 DesignSize = ( 389 202) @@ -561,114 +528,6 @@ object PreferencesDialog: TPreferencesDialog Width = 32 Height = 32 AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC400000EC401952B0E1B - 00000A4F6943435050686F746F73686F70204943432070726F66696C65000078 - DA9D53675453E9163DF7DEF4424B8880944B6F5215082052428B801491262A21 - 09104A8821A1D91551C1114545041BC8A088038E8E808C15512C0C8A0AD807E4 - 21A28E83A3888ACAFBE17BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C - 9648335135800CA9421E11E083C7C4C6E1E42E40810A2470001008B3642173FD - 230100F87E3C3C2B22C007BE000178D30B0800C04D9BC0301C87FF0FEA42995C - 01808401C07491384B08801400407A8E42A600404601809D98265300A0040060 - CB6362E300502D0060277FE6D300809DF8997B01005B94211501A09100201365 - 884400683B00ACCF568A450058300014664BC43900D82D00304957664800B0B7 - 00C0CE100BB200080C00305188852900047B0060C8232378008499001446F257 - 3CF12BAE10E72A00007899B23CB9243945815B082D710757572E1E28CE49172B - 14366102619A402EC27999193281340FE0F3CC0000A0911511E083F3FD78CE0E - AECECE368EB60E5F2DEABF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2F - B31A803B06806DFEA225EE04685E0BA075F78B66B20F40B500A0E9DA57F370F8 - 7E3C3C45A190B9D9D9E5E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3C - FCF7F5E0BEE22481325D814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB7 - 0BFFFC1DD322C44962B9582A14E35112718E449A8CF332A52289429229C525D2 - FF64E2DF2CFB033EDF3500B06A3E017B912DA85D6303F64B27105874C0E2F700 - 00F2BB6FC1D4280803806883E1CF77FFEF3FFD47A02500806649927100005E44 - 242E54CAB33FC708000044A0812AB0411BF4C1182CC0061CC105DCC10BFC6036 - 844224C4C24210420A64801C726029AC82422886CDB01D2A602FD4401D34C051 - 688693700E2EC255B80E3D700FFA61089EC128BC81090441C808136121DA8801 - 628A58238E08179985F821C14804128B2420C9881451224B91354831528A5420 - 55481DF23D720239875C46BA913BC8003282FC86BC47319481B2513DD40CB543 - B9A8371A8446A20BD06474319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F - 3E43C730C0E8180733C46C302EC6C342B1382C099363CBB122AC0CABC61AB056 - AC03BB89F563CFB17704128145C0093604774220611E4148584C584ED848A820 - 1C243411DA093709038451C2272293A84BB426BA11F9C4186232318758482C23 - D6128F132F107B8843C437241289433227B9900249B1A454D212D246D26E5223 - E92CA99B34481A2393C9DA646BB20739942C202BC885E49DE4C3E433E41BE421 - F25B0A9D624071A4F853E22852CA6A4A19E510E534E5066598324155A39A52DD - A8A15411358F5A42ADA1B652AF5187A81334759A39CD8316494BA5ADA295D31A - 681768F769AFE874BA11DD951E4E97D057D2CBE947E897E803F4770C0D861583 - C7886728199B18071867197718AF984CA619D38B19C754303731EB98E7990F99 - 6F55582AB62A7C1591CA0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB54 - 8FA95E537DAE46553353E3A909D496AB55AA9D50EB531B5367A93BA887AA67A8 - 6F543FA47E59FD890659C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B - 0DAB86758135C426B1CDD97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352 - F394663F07E39871F89C744E09E728A797F37E8ADE14EF29E2291BA6344CB931 - 655C6BAA96979658AB48AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A - 275C2747678FCE059DE753D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477 - BF6EA7EE989EBE5E809E4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806 - B30C2406DB0CCE183CC535716F3C1D2FC7DBF151435DC34043A561956197E184 - 91B9D13CA3D5468D460F8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE - 9A524DB9A629A63B4C3B4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDF - B7605A785A2CB6A8B6B86549B2E45AA659EEB6BC6E855A3959A558555A5DB346 - AD9DAD25D6BBADBBA711A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806 - DBAEB66DB67D6167621767B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D - 5A1D7E73B472143A563ADE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613 - CB29C4699D539BD347671767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BD - E44A74F5715DE17AD2F59D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E - 593373D0C3C843E051E5D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F91 - 57ADD7B0B7A577AAF761EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8 - B7CB4FC36F9E5F85DF437F23FF64FF7AFFD100A78025016703898141815B02FB - F87A7C21BF8E3F3ADB65F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC - 90AD21F7E798CE91CE690E85507EE8D6D00761E6618BC37E0C2785878557863F - 8E7088581AD131973577D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3E - AA2E6A3CDA37BA34BA3FC62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDF - FCEDF387E29DE20BE37B17982FC85D7079A1CEC2F485A716A92E122C3A96404C - 884E3894F041102AA8168C25F21377258E0A79C21DC267222FD136D188D8435C - 2A1E4EF2482A4D7A92EC91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A - 9E169A76206D323D3ABD31839291907142AA214D93B667EA67E66676CBAC6585 - B2FEC56E8BB72F1E9507C96BB390AC05592D0AB642A6E8545A28D72A07B26765 - 5766BFCD89CA3996AB9E2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A586 - 4B572D1D58E6BDAC6A39B23C7179DB0AE315052B865606AC3CB88AB62A6DD54F - ABED5797AE7EBD267A4D6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D - 4F582F59DFB561FA869D1B3E15898AAE14DB1797157FD828DC78E51B876FCABF - 99DC94B4A9ABC4B964CF66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40D - DF56B4EDF5F645DB2F97CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A4 - 54F454FA5436EED2DDB561D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB - 5501554DD566D565FB49FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203 - FD07230EB6D7B9D4D51DD23D54528FD62BEB470EC71FBEFE9DEF772D0D360D55 - 8D9CC6E223704479E4E9F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A - 429AF29A469B539AFB5B625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794A - F354C969DAE982D39367F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F - 6FEFBA1074E1D245FF8BE73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6D - EA74EA3CFE93D34FC7BB9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4 - BD79F116FFD6D59E393DDDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727 - EEADBC4FBC5FF440ED41D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7 - 068583CFFE91F58F0F43058F998FCB860D86EB9E383E3939E23F72FDE9FCA743 - CF64CF269E17FEA2FECBAE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5 - FDEAC0EB19AFDBC6C2C61EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE4 - 7C207F28FF68F9B1F553D0A7FB93199393FF040398F3FC63332DDB000002AD49 - 44415478DA63FCFFFF3FC34002C65107801CC06B5E7803C856A7B3DD373F9FEC - D78039E07F5649235D6D9FD653CF00740023DC016A36517475C0AD23CB501DB0 - 765E03C986EC3C7A9EC1DDDA902C070427350C32077C3AD18FA28098BC513AFB - 004377AA03590EE0B7284475C087E37D241B5236E72043578A3D590E10B02C42 - 75C07BA0033E3636405C57DF409421E540077426DB3374AEBC0AE1876B13D403 - 0B59212B3407BC3B06744013D4017510BA62EE41AC867424DBC3E53BB0380097 - 3E106887EA154677C0DBA3A44741E5BC830CED49F644A5177420628DE6803747 - 7A19BA0E427C5E668F88027C8657CF3FC4D09A68C7F0E17C17982F605846B403 - 446D8A511DF00AE8806EA8034AA10EA8015A800DB4002D85C9B76071002E7D60 - BD0910BD62B6680E7879B897E460AC5D7088A1196A20A9401CDD012F0EF5327C - BC00F109BF01714159B7F0104353BC1DC3D716488871D7344065B0471CB2A8A4 - 5D09AA039E1FEA61F874A11B2CC967500AA6EB171EC66A50639C2D447ED16130 - FB6B0BA422E3AAA907D30D8BB0EB03CB41F54AD9A339E0D9C11EBCBEC5E6A746 - A045F550034905D2E80E787AA087A16FED35B06451B0165E8B61A069F16186BA - 585B867EA8BE42247D84808C039A031EEFEFC130A87909F6A0AC8DB185CB83D8 - 087D9A50F123382DAE8DB101D3B28EA5A80E78B4BF9BE4606C015A540335102B - C0137C724E680E78B8AF9BE1EB258823B8F54A897240EBD2230CD5D1360C138E - 42126181753D5EF5C8EE514077C083BDDD0CDF2E431CC0A50B7140DB32EC4159 - 1565039707B127421D90077540FB32DC515009D5ABE88CE680FB7BF14701B6D6 - 73C7F2A30C1591D64485163A5072294375C0DD3D5D241BD209744039290E40F2 - 83B22B9A03D292FDC9F209B960D6DC8D94B709290154699452D30157806284DB - 53D405889ED140820177000047FBBCD0A8A483CB0000000049454E44AE426082} OnClick = CommanderClick end object ExplorerInterfacePicture: TImage @@ -677,115 +536,6 @@ object PreferencesDialog: TPreferencesDialog Width = 32 Height = 32 AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC400000EC401952B0E1B - 00000A4F6943435050686F746F73686F70204943432070726F66696C65000078 - DA9D53675453E9163DF7DEF4424B8880944B6F5215082052428B801491262A21 - 09104A8821A1D91551C1114545041BC8A088038E8E808C15512C0C8A0AD807E4 - 21A28E83A3888ACAFBE17BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C - 9648335135800CA9421E11E083C7C4C6E1E42E40810A2470001008B3642173FD - 230100F87E3C3C2B22C007BE000178D30B0800C04D9BC0301C87FF0FEA42995C - 01808401C07491384B08801400407A8E42A600404601809D98265300A0040060 - CB6362E300502D0060277FE6D300809DF8997B01005B94211501A09100201365 - 884400683B00ACCF568A450058300014664BC43900D82D00304957664800B0B7 - 00C0CE100BB200080C00305188852900047B0060C8232378008499001446F257 - 3CF12BAE10E72A00007899B23CB9243945815B082D710757572E1E28CE49172B - 14366102619A402EC27999193281340FE0F3CC0000A0911511E083F3FD78CE0E - AECECE368EB60E5F2DEABF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2F - B31A803B06806DFEA225EE04685E0BA075F78B66B20F40B500A0E9DA57F370F8 - 7E3C3C45A190B9D9D9E5E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3C - FCF7F5E0BEE22481325D814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB7 - 0BFFFC1DD322C44962B9582A14E35112718E449A8CF332A52289429229C525D2 - FF64E2DF2CFB033EDF3500B06A3E017B912DA85D6303F64B27105874C0E2F700 - 00F2BB6FC1D4280803806883E1CF77FFEF3FFD47A02500806649927100005E44 - 242E54CAB33FC708000044A0812AB0411BF4C1182CC0061CC105DCC10BFC6036 - 844224C4C24210420A64801C726029AC82422886CDB01D2A602FD4401D34C051 - 688693700E2EC255B80E3D700FFA61089EC128BC81090441C808136121DA8801 - 628A58238E08179985F821C14804128B2420C9881451224B91354831528A5420 - 55481DF23D720239875C46BA913BC8003282FC86BC47319481B2513DD40CB543 - B9A8371A8446A20BD06474319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F - 3E43C730C0E8180733C46C302EC6C342B1382C099363CBB122AC0CABC61AB056 - AC03BB89F563CFB17704128145C0093604774220611E4148584C584ED848A820 - 1C243411DA093709038451C2272293A84BB426BA11F9C4186232318758482C23 - D6128F132F107B8843C437241289433227B9900249B1A454D212D246D26E5223 - E92CA99B34481A2393C9DA646BB20739942C202BC885E49DE4C3E433E41BE421 - F25B0A9D624071A4F853E22852CA6A4A19E510E534E5066598324155A39A52DD - A8A15411358F5A42ADA1B652AF5187A81334759A39CD8316494BA5ADA295D31A - 681768F769AFE874BA11DD951E4E97D057D2CBE947E897E803F4770C0D861583 - C7886728199B18071867197718AF984CA619D38B19C754303731EB98E7990F99 - 6F55582AB62A7C1591CA0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB54 - 8FA95E537DAE46553353E3A909D496AB55AA9D50EB531B5367A93BA887AA67A8 - 6F543FA47E59FD890659C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B - 0DAB86758135C426B1CDD97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352 - F394663F07E39871F89C744E09E728A797F37E8ADE14EF29E2291BA6344CB931 - 655C6BAA96979658AB48AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A - 275C2747678FCE059DE753D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477 - BF6EA7EE989EBE5E809E4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806 - B30C2406DB0CCE183CC535716F3C1D2FC7DBF151435DC34043A561956197E184 - 91B9D13CA3D5468D460F8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE - 9A524DB9A629A63B4C3B4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDF - B7605A785A2CB6A8B6B86549B2E45AA659EEB6BC6E855A3959A558555A5DB346 - AD9DAD25D6BBADBBA711A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806 - DBAEB66DB67D6167621767B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D - 5A1D7E73B472143A563ADE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613 - CB29C4699D539BD347671767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BD - E44A74F5715DE17AD2F59D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E - 593373D0C3C843E051E5D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F91 - 57ADD7B0B7A577AAF761EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8 - B7CB4FC36F9E5F85DF437F23FF64FF7AFFD100A78025016703898141815B02FB - F87A7C21BF8E3F3ADB65F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC - 90AD21F7E798CE91CE690E85507EE8D6D00761E6618BC37E0C2785878557863F - 8E7088581AD131973577D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3E - AA2E6A3CDA37BA34BA3FC62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDF - FCEDF387E29DE20BE37B17982FC85D7079A1CEC2F485A716A92E122C3A96404C - 884E3894F041102AA8168C25F21377258E0A79C21DC267222FD136D188D8435C - 2A1E4EF2482A4D7A92EC91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A - 9E169A76206D323D3ABD31839291907142AA214D93B667EA67E66676CBAC6585 - B2FEC56E8BB72F1E9507C96BB390AC05592D0AB642A6E8545A28D72A07B26765 - 5766BFCD89CA3996AB9E2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A586 - 4B572D1D58E6BDAC6A39B23C7179DB0AE315052B865606AC3CB88AB62A6DD54F - ABED5797AE7EBD267A4D6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D - 4F582F59DFB561FA869D1B3E15898AAE14DB1797157FD828DC78E51B876FCABF - 99DC94B4A9ABC4B964CF66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40D - DF56B4EDF5F645DB2F97CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A4 - 54F454FA5436EED2DDB561D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB - 5501554DD566D565FB49FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203 - FD07230EB6D7B9D4D51DD23D54528FD62BEB470EC71FBEFE9DEF772D0D360D55 - 8D9CC6E223704479E4E9F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A - 429AF29A469B539AFB5B625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794A - F354C969DAE982D39367F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F - 6FEFBA1074E1D245FF8BE73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6D - EA74EA3CFE93D34FC7BB9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4 - BD79F116FFD6D59E393DDDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727 - EEADBC4FBC5FF440ED41D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7 - 068583CFFE91F58F0F43058F998FCB860D86EB9E383E3939E23F72FDE9FCA743 - CF64CF269E17FEA2FECBAE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5 - FDEAC0EB19AFDBC6C2C61EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE4 - 7C207F28FF68F9B1F553D0A7FB93199393FF040398F3FC63332DDB0000029949 - 44415478DA63FCFFFF3FC3400246900378CC8BEE3132FC57A4B6E1FF1918EF7F - 3DD5AF84531E6837D801BCE685FFB34A1AA9EEBB693DF50C5F4E4D6024CA016A - 36515477C0AD23CB8877C0DA790D5477407052C31072C09BA37D547780887511 - F10E7875B8172CF863FE34B8028EC42C140D3FAF55C1D9EC5A6D287273AE4E80 - B353B40BC0B4986D31F10E787EA8072CF8BDBF13AE80B3B01C45C3B74BB57036 - 975E338ADCA4D3AD70769E69359896B42B21DE014F0E401DD0508D7040432B8A - 862FE7EBE06C1EC32614B9CE4388D029B783848E8C03090E78B4AF9B81DA40CE - A9947807DCDF0B7140FBB22370059551360C76D1ED0C8F5FBCA3BAE340A5E497 - 937D4A7007DCD9DD8555A18A6B1903AD4AC9CF27FB19E10EB8B5AB13AB4235B7 - 72065A9592280EB8BE03E280F9073FC11525DAF331687A9433D0AA904271C095 - 6D1D6089193B9FC11565B84B31E87855D0C70197B6421C3069C32DB8A2BC0035 - 063DEF0A065A9592280E38BFB91DAB4243DF4A06582989ADB48381C9BB3EC0D9 - B96E022872D84A57502989E280331B210E98B5E9045C719A9F0583897F2503AC - 94C456DAC140EFC6277076B1BF0C8A1CB6D215544AA238E0D406D4B21D06CC02 - AA1860A524B6D20E06DA57DE80B32BC335501D80A5740595927007106A92D1AA - 94843B8091116769C9C0635680B39444090112E5149D497000AE529212002A61 - 897600AE529212002A61897600AC94645E3A132EFE373A1D451DEB5D445BE1B7 - 326A5B01BD74050150094BB40360A524D3B41EB8F8BFAC1214754C37EB1172EA - A895177AE90A02A012966807C04A49A6764483E45F256A83E4FF5584A58CDAF5 - 2872E8A52B08804A58A21D80AB94A404804A58A21D80AB944406A4CA814A58A2 - 1D80AB94A404804A58A21CC06D5648B38E2BBC493690000005DADFD0D42C4D64 - 0000000049454E44AE426082} - Transparent = True OnClick = ExplorerClick end object CommanderInterfaceButton2: TRadioButton @@ -1198,108 +948,22 @@ object PreferencesDialog: TPreferencesDialog DesignSize = ( 405 392) - object InternalEditorGroup: TGroupBox - Left = 8 - Top = 244 - Width = 389 - Height = 146 - Anchors = [akLeft, akRight, akBottom] - Caption = 'Internal editor options' - TabOrder = 1 - DesignSize = ( - 389 - 146) - object EditorFontLabel: TLabel - Left = 180 - Top = 49 - Width = 199 - Height = 88 - Anchors = [akTop, akRight] - AutoSize = False - Caption = 'EditorFontLabel' - Color = clWhite - ParentColor = False - Transparent = False - OnDblClick = EditorFontLabelDblClick - end - object Label9: TLabel - Left = 16 - Top = 47 - Width = 71 - Height = 13 - Caption = '&Tabulator size:' - FocusControl = EditorTabSizeEdit - end - object Label11: TLabel - Left = 16 - Top = 95 - Width = 85 - Height = 13 - Caption = 'Default en&coding:' - FocusControl = EditorEncodingCombo - end - object EditorFontButton: TButton - Left = 180 - Top = 18 - Width = 105 - Height = 25 - Anchors = [akTop, akRight] - Caption = '&Select font...' - TabOrder = 3 - OnClick = EditorFontButtonClick - end - object EditorWordWrapCheck: TCheckBox - Left = 16 - Top = 20 - Width = 158 - Height = 17 - Anchors = [akLeft, akTop, akRight] - Caption = '&Wrap long lines' - TabOrder = 0 - OnClick = ControlChange - end - object EditorTabSizeEdit: TUpDownEdit - Left = 16 - Top = 64 - Width = 145 - Height = 21 - Alignment = taRightJustify - MaxValue = 99.000000000000000000 - MinValue = 1.000000000000000000 - Value = 1.000000000000000000 - Anchors = [akLeft, akTop, akRight] - MaxLength = 2 - TabOrder = 1 - OnChange = ControlChange - end - object EditorEncodingCombo: TComboBox - Left = 16 - Top = 112 - Width = 145 - Height = 21 - Style = csDropDownList - Anchors = [akLeft, akTop, akRight] - MaxLength = 2 - TabOrder = 2 - OnChange = ControlChange - end - end object EditorPreferenceGroup: TGroupBox Left = 8 Top = 8 Width = 389 - Height = 231 + Height = 382 Anchors = [akLeft, akTop, akRight, akBottom] Caption = 'Editor preference' TabOrder = 0 DesignSize = ( 389 - 231) + 382) object EditorListView3: TListView Left = 16 Top = 24 Width = 356 - Height = 133 + Height = 284 Anchors = [akLeft, akTop, akRight, akBottom] Columns = < item @@ -1335,7 +999,7 @@ object PreferencesDialog: TPreferencesDialog end object AddEditorButton: TButton Left = 16 - Top = 164 + Top = 315 Width = 83 Height = 25 Anchors = [akLeft, akBottom] @@ -1345,7 +1009,7 @@ object PreferencesDialog: TPreferencesDialog end object EditEditorButton: TButton Left = 112 - Top = 164 + Top = 315 Width = 83 Height = 25 Anchors = [akLeft, akBottom] @@ -1355,7 +1019,7 @@ object PreferencesDialog: TPreferencesDialog end object UpEditorButton: TButton Left = 290 - Top = 164 + Top = 315 Width = 83 Height = 25 Anchors = [akRight, akBottom] @@ -1365,7 +1029,7 @@ object PreferencesDialog: TPreferencesDialog end object DownEditorButton: TButton Left = 290 - Top = 195 + Top = 346 Width = 83 Height = 25 Anchors = [akRight, akBottom] @@ -1375,7 +1039,7 @@ object PreferencesDialog: TPreferencesDialog end object RemoveEditorButton: TButton Left = 16 - Top = 195 + Top = 346 Width = 83 Height = 25 Anchors = [akLeft, akBottom] @@ -2030,11 +1694,11 @@ object PreferencesDialog: TPreferencesDialog AcceptFiles = True OnBeforeDialog = PathEditBeforeDialog OnAfterDialog = PathEditAfterDialog + DialogKind = dkSave DefaultExt = 'log' Filter = 'Random seed files (*.rnd)|*.rnd|All files (*.*)|*.*' DialogOptions = [ofHideReadOnly, ofPathMustExist] DialogTitle = 'Select file for random seed' - OnCreateEditDialog = PathEditCreateEditDialog ClickKey = 16397 Anchors = [akLeft, akTop, akRight] TabOrder = 0 @@ -2275,29 +1939,37 @@ object PreferencesDialog: TPreferencesDialog Left = 8 Top = 8 Width = 389 - Height = 81 + Height = 125 Anchors = [akLeft, akTop, akRight] Caption = 'Automatic check for application updates' TabOrder = 0 DesignSize = ( 389 - 81) + 125) object Label12: TLabel Left = 16 - Top = 23 + Top = 70 Width = 115 Height = 13 Caption = 'Automatic check &period:' FocusControl = UpdatesPeriodCombo end + object UpdatesAuthenticationEmailLabel: TLabel + Left = 16 + Top = 21 + Width = 228 + Height = 13 + Caption = '&Email address authorized to automatic updates:' + FocusControl = UpdatesAuthenticationEmailEdit + end object UpdatesPeriodCombo: TComboBox Left = 278 - Top = 18 + Top = 67 Width = 98 Height = 21 Style = csDropDownList Anchors = [akTop, akRight] - TabOrder = 0 + TabOrder = 2 Items.Strings = ( 'Never' 'Daily' @@ -2306,18 +1978,38 @@ object PreferencesDialog: TPreferencesDialog end object UpdatesShowOnStartup: TCheckBox Left = 16 - Top = 49 + Top = 98 Width = 262 Height = 17 Anchors = [akLeft, akTop, akRight] Caption = '&Display information about update on startup' - TabOrder = 1 + TabOrder = 3 OnClick = ControlChange end + object UpdatesAuthenticationEmailEdit: TEdit + Left = 16 + Top = 38 + Width = 256 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + OnChange = ControlChange + OnExit = UpdatesAuthenticationEmailEditExit + end + object UpdatesLink: TStaticText + Left = 280 + Top = 42 + Width = 58 + Height = 17 + Caption = 'Learn more' + TabOrder = 1 + TabStop = True + OnClick = UpdatesLinkClick + end end object UpdatesProxyGroup: TGroupBox Left = 8 - Top = 182 + Top = 226 Width = 389 Height = 142 Anchors = [akLeft, akTop, akRight] @@ -2398,7 +2090,7 @@ object PreferencesDialog: TPreferencesDialog end object UpdatesOptionsGroup: TGroupBox Left = 8 - Top = 95 + Top = 139 Width = 389 Height = 81 Anchors = [akLeft, akTop, akRight] @@ -2638,13 +2330,13 @@ object PreferencesDialog: TPreferencesDialog Left = 8 Top = 231 Width = 389 - Height = 77 + Height = 126 Anchors = [akLeft, akTop, akRight] Caption = 'Miscellaneous' TabOrder = 2 DesignSize = ( 389 - 77) + 126) object MinimizeToTrayCheck: TCheckBox Left = 16 Top = 21 @@ -2665,6 +2357,26 @@ object PreferencesDialog: TPreferencesDialog TabOrder = 1 OnClick = ControlChange end + object KeepOpenWhenNoSessionCheck: TCheckBox + Left = 16 + Top = 69 + Width = 361 + Height = 17 + Anchors = [akLeft, akTop, akRight] + Caption = '&Keep main window open when the last session is closed' + TabOrder = 2 + OnClick = ControlChange + end + object ShowTipsCheck: TCheckBox + Left = 16 + Top = 93 + Width = 361 + Height = 17 + Anchors = [akLeft, akTop, akRight] + Caption = '&Display tips on startup' + TabOrder = 3 + OnClick = ControlChange + end end object WorkspacesGroup: TGroupBox Left = 8 @@ -3145,6 +2857,132 @@ object PreferencesDialog: TPreferencesDialog end end end + object EditorInternalSheet: TTabSheet + Tag = 24 + Caption = 'Internal editor' + TabVisible = False + DesignSize = ( + 405 + 392) + object InternalEditorGroup: TGroupBox + Left = 8 + Top = 8 + Width = 389 + Height = 146 + Anchors = [akLeft, akRight, akBottom] + Caption = 'Display' + TabOrder = 0 + DesignSize = ( + 389 + 146) + object Label9: TLabel + Left = 16 + Top = 47 + Width = 71 + Height = 13 + Caption = '&Tabulator size:' + FocusControl = EditorTabSizeEdit + end + object Label11: TLabel + Left = 16 + Top = 95 + Width = 85 + Height = 13 + Caption = 'Default en&coding:' + FocusControl = EditorEncodingCombo + end + object EditorWordWrapCheck: TCheckBox + Left = 16 + Top = 20 + Width = 158 + Height = 17 + Anchors = [akLeft, akTop, akRight] + Caption = '&Wrap long lines' + TabOrder = 0 + OnClick = ControlChange + end + object EditorTabSizeEdit: TUpDownEdit + Left = 16 + Top = 64 + Width = 145 + Height = 21 + Alignment = taRightJustify + MaxValue = 99.000000000000000000 + MinValue = 1.000000000000000000 + Value = 1.000000000000000000 + Anchors = [akLeft, akTop, akRight] + MaxLength = 2 + TabOrder = 1 + OnChange = ControlChange + end + object EditorEncodingCombo: TComboBox + Left = 16 + Top = 112 + Width = 145 + Height = 21 + Style = csDropDownList + Anchors = [akLeft, akTop, akRight] + MaxLength = 2 + TabOrder = 2 + OnChange = ControlChange + end + end + object FontGroup: TGroupBox + Left = 8 + Top = 160 + Width = 389 + Height = 118 + Anchors = [akLeft, akRight, akBottom] + Caption = 'Font' + TabOrder = 1 + DesignSize = ( + 389 + 118) + object EditorFontLabel: TLabel + Left = 172 + Top = 18 + Width = 204 + Height = 87 + Anchors = [akTop, akRight] + AutoSize = False + Caption = 'EditorFontLabel' + Color = clWhite + ParentColor = False + Transparent = False + OnDblClick = EditorFontLabelDblClick + end + object EditorFontButton: TButton + Left = 16 + Top = 18 + Width = 145 + Height = 25 + Anchors = [akTop, akRight] + Caption = '&Select font...' + TabOrder = 0 + OnClick = EditorFontButtonClick + end + object EditorFontColorButton: TButton + Left = 16 + Top = 49 + Width = 145 + Height = 25 + Anchors = [akTop, akRight] + Caption = '&Text color' + TabOrder = 1 + OnClick = EditorFontColorButtonClick + end + object EditorBackgroundColorButton: TButton + Left = 16 + Top = 80 + Width = 145 + Height = 25 + Anchors = [akTop, akRight] + Caption = 'Default &background' + TabOrder = 2 + OnClick = EditorBackgroundColorButtonClick + end + end + end end object LeftPanel: TPanel Left = 0 @@ -3191,27 +3029,29 @@ object PreferencesDialog: TPreferencesDialog 00FFFFFFFFFFFFFFFF0000000000000000000000000107520065006D006F0074 00650058002A0000000000000016000000FFFFFFFFFFFFFFFF00000000000000 000000000001064C006F00630061006C0058002C0000000000000008000000FF - FFFFFFFFFFFFFF000000000000000000000000010745006400690074006F0072 - 005800300000000000000010000000FFFFFFFFFFFFFFFF000000000000000003 - 00000001095400720061006E007300660065007200580030000000000000000B - 000000FFFFFFFFFFFFFFFF000000000000000000000000010944007200610067 - 00440072006F007000580034000000000000000C000000FFFFFFFFFFFFFFFF00 - 0000000000000000000000010B4200610063006B00670072006F0075006E0064 - 0058002C000000000000000E000000FFFFFFFFFFFFFFFF000000000000000000 - 000000010752006500730075006D00650058002E0000000000000014000000FF - FFFFFFFFFFFFFF00000000000000000000000001084E006500740077006F0072 - 006B005800300000000000000013000000FFFFFFFFFFFFFFFF00000000000000 - 000000000001095300650063007500720069007400790058002E000000000000 - 0002000000FFFFFFFFFFFFFFFF00000000000000000000000001084C006F0067 - 00670069006E0067005800360000000000000009000000FFFFFFFFFFFFFFFF00 - 0000000000000001000000010C49006E0074006500670072006100740069006F - 006E005800380000000000000012000000FFFFFFFFFFFFFFFF00000000000000 - 0000000000010D4100700070006C00690063006100740069006F006E00730058 - 0030000000000000000A000000FFFFFFFFFFFFFFFF0000000000000000000000 - 00010943006F006D006D0061006E006400730058002E000000000000000D0000 - 00FFFFFFFFFFFFFFFF0000000000000000000000000108530074006F00720061 - 006700650058002E000000000000000F000000FFFFFFFFFFFFFFFF0000000000 - 00000000000000010855007000640061007400650073005800} + FFFFFFFFFFFFFF000000000000000001000000010745006400690074006F0072 + 0058003E0000000000000018000000FFFFFFFFFFFFFFFF000000000000000000 + 000000011049006E007400650072006E0061006C00200065006400690074006F + 0072005800300000000000000010000000FFFFFFFFFFFFFFFF00000000000000 + 000300000001095400720061006E007300660065007200580030000000000000 + 000B000000FFFFFFFFFFFFFFFF00000000000000000000000001094400720061 + 006700440072006F007000580034000000000000000C000000FFFFFFFFFFFFFF + FF000000000000000000000000010B4200610063006B00670072006F0075006E + 00640058002C000000000000000E000000FFFFFFFFFFFFFFFF00000000000000 + 0000000000010752006500730075006D00650058002E00000000000000140000 + 00FFFFFFFFFFFFFFFF00000000000000000000000001084E006500740077006F + 0072006B005800300000000000000013000000FFFFFFFFFFFFFFFF0000000000 + 0000000000000001095300650063007500720069007400790058002E00000000 + 00000002000000FFFFFFFFFFFFFFFF00000000000000000000000001084C006F + 006700670069006E0067005800360000000000000009000000FFFFFFFFFFFFFF + FF000000000000000001000000010C49006E0074006500670072006100740069 + 006F006E005800380000000000000012000000FFFFFFFFFFFFFFFF0000000000 + 00000000000000010D4100700070006C00690063006100740069006F006E0073 + 00580030000000000000000A000000FFFFFFFFFFFFFFFF000000000000000000 + 000000010943006F006D006D0061006E006400730058002E000000000000000D + 000000FFFFFFFFFFFFFFFF0000000000000000000000000108530074006F0072 + 0061006700650058002E000000000000000F000000FFFFFFFFFFFFFFFF000000 + 000000000000000000010855007000640061007400650073005800} end end end diff --git a/source/forms/Preferences.h b/source/forms/Preferences.h index 47d93e20..92a5801b 100644 --- a/source/forms/Preferences.h +++ b/source/forms/Preferences.h @@ -19,6 +19,7 @@ #include #include #include +#include //---------------------------------------------------------------------------- class TCustomCommandList; class TEditorList; @@ -34,7 +35,7 @@ class TPreferencesDialog : public TForm TGroupBox *CommonPreferencesGroup; TCheckBox *ConfirmOverwritingCheck; TCheckBox *ConfirmDeletingCheck; - TCheckBox *ConfirmClosingSessionCheck; + TCheckBox *ConfirmClosingSessionCheck2; TCheckBox *DDTransferConfirmationCheck; TCheckBox *ContinueOnErrorCheck; TTabSheet *LogSheet; @@ -61,9 +62,6 @@ class TPreferencesDialog : public TForm TCheckBox *ShowFullAddressCheck; TTabSheet *EditorSheet; TGroupBox *EditorPreferenceGroup; - TGroupBox *InternalEditorGroup; - TLabel *EditorFontLabel; - TButton *EditorFontButton; TTabSheet *IntegrationSheet; TGroupBox *ShellIconsGroup; TButton *DesktopIconButton; @@ -133,7 +131,6 @@ class TPreferencesDialog : public TForm TCheckBox *PreservePanelStateCheck; TButton *AddSearchPathButton; TCheckBox *QueueNoConfirmationCheck; - TCheckBox *EditorWordWrapCheck; TGroupBox *PathInCaptionGroup; TRadioButton *PathInCaptionFullButton; TRadioButton *PathInCaptionShortButton; @@ -157,9 +154,6 @@ class TPreferencesDialog : public TForm TButton *DuplicateCopyParamButton; TCheckBox *CopyParamAutoSelectNoticeCheck; TButton *HelpButton; - TGroupBox *ThemeGroup; - TLabel *Label7; - TComboBox *ThemeCombo; TListView *EditorListView3; TButton *AddEditorButton; TButton *EditEditorButton; @@ -195,8 +189,6 @@ class TPreferencesDialog : public TForm TCheckBox *TelnetForFtpInPuttyCheck; TRadioButton *UpdatesDirectCheck; TRadioButton *UpdatesAutoCheck; - TLabel *Label9; - TUpDownEdit *EditorTabSizeEdit; TCheckBox *ConfirmTransferringCheck; TGroupBox *UpdatesOptionsGroup; TCheckBox *QueueIndividuallyCheck; @@ -222,8 +214,6 @@ class TPreferencesDialog : public TForm TUpDownEdit *SessionReopenAutoStallEdit; TLabel *SessionReopenAutoStallSecLabel; TCheckBox *EnableQueueByDefaultCheck; - TLabel *Label11; - TComboBox *EditorEncodingCombo; TCheckBox *RefreshRemotePanelCheck; TUpDownEdit *RefreshRemotePanelIntervalEdit; TLabel *RefreshRemoteDirectoryUnitLabel; @@ -301,6 +291,23 @@ class TPreferencesDialog : public TForm TButton *PanelFontButton; TCheckBox *PanelFontCheck; TCheckBox *LogSensitiveCheck; + TTabSheet *EditorInternalSheet; + TGroupBox *InternalEditorGroup; + TLabel *Label9; + TLabel *Label11; + TCheckBox *EditorWordWrapCheck; + TUpDownEdit *EditorTabSizeEdit; + TComboBox *EditorEncodingCombo; + TGroupBox *FontGroup; + TLabel *EditorFontLabel; + TButton *EditorFontButton; + TButton *EditorFontColorButton; + TButton *EditorBackgroundColorButton; + TCheckBox *KeepOpenWhenNoSessionCheck; + TLabel *UpdatesAuthenticationEmailLabel; + TEdit *UpdatesAuthenticationEmailEdit; + TStaticText *UpdatesLink; + TCheckBox *ShowTipsCheck; void __fastcall FormShow(TObject *Sender); void __fastcall ControlChange(TObject *Sender); void __fastcall EditorFontButtonClick(TObject *Sender); @@ -355,8 +362,6 @@ class TPreferencesDialog : public TForm TTreeNode *Node, bool &AllowCollapse); void __fastcall ListViewEndDrag(TObject *Sender, TObject *Target, int X, int Y); - void __fastcall PathEditCreateEditDialog(TObject *Sender, - TFileDialogKind DialogKind, TOpenDialog *&Dialog); void __fastcall SessionReopenTimeoutEditSetValue(TObject *Sender, Extended Value, UnicodeString &Text, bool &Handed); void __fastcall SessionReopenTimeoutEditGetValue(TObject *Sender, @@ -379,10 +384,15 @@ class TPreferencesDialog : public TForm void __fastcall MakeDefaultHandlerItemClick(TObject *Sender); void __fastcall PanelFontLabelDblClick(TObject *Sender); void __fastcall PanelFontButtonClick(TObject *Sender); + void __fastcall EditorFontColorButtonClick(TObject *Sender); + void __fastcall EditorBackgroundColorButtonClick(TObject *Sender); + void __fastcall UpdatesAuthenticationEmailEditExit(TObject *Sender); + void __fastcall UpdatesLinkClick(TObject *Sender); private: TPreferencesMode FPreferencesMode; std::unique_ptr FEditorFont; + TColor FEditorBackgroundColor; std::unique_ptr FPanelFont; TCustomCommandList * FCustomCommandList; TCopyParamList * FCopyParamList; @@ -399,6 +409,9 @@ class TPreferencesDialog : public TForm TListViewScrollOnDragOver * FEditorScrollOnDragOver; bool FNoUpdate; bool FLanguagesLoaded; + std::unique_ptr FColorPopupMenu; + UnicodeString FVerifiedUpdatesAuthenticationEmail; + bool FAutomaticUpdatesPossible; void __fastcall CMDialogKey(TWMKeyDown & Message); void __fastcall WMHelp(TWMHelp & Message); UnicodeString __fastcall TabSample(UnicodeString Values); @@ -406,6 +419,7 @@ class TPreferencesDialog : public TForm const TCopyParamType * GetCopyParam(int Index); void __fastcall SelectPuttyRegistryStorageKey(const UnicodeString & Key); TInterface __fastcall GetInterface(); + TUpdatesConfiguration __fastcall SaveUpdates(); public: virtual __fastcall ~TPreferencesDialog(); bool __fastcall Execute(TPreferencesDialogData * DialogData); @@ -430,6 +444,8 @@ class TPreferencesDialog : public TForm void __fastcall ChangeMasterPassword(UnicodeString Message); void __fastcall MasterPasswordChanged( UnicodeString Message, TStrings * RecryptPasswordErrors); + void __fastcall EditorFontColorChange(TColor Color); + void __fastcall EditorBackgroundColorChange(TColor Color); }; //---------------------------------------------------------------------------- #endif diff --git a/source/forms/Progress.cpp b/source/forms/Progress.cpp index 93f1c3b2..13840aef 100644 --- a/source/forms/Progress.cpp +++ b/source/forms/Progress.cpp @@ -13,33 +13,50 @@ #include #include #include +#include #include "Progress.h" //--------------------------------------------------------------------- -#pragma link "HistoryComboBox" #pragma link "PathLabel" +#pragma link "PngImageList" +#pragma link "TB2Dock" +#pragma link "TB2Item" +#pragma link "TB2Toolbar" +#pragma link "TBX" +#pragma link "TB2ExtItems" +#pragma link "TBXExtItems" #ifndef NO_RESOURCES #pragma resource "*.dfm" #endif //--------------------------------------------------------------------- -UnicodeString __fastcall TProgressForm::OperationName(TFileOperation Operation, TOperationSide Side) +bool __fastcall TProgressForm::IsIndetermiateOperation(TFileOperation Operation) +{ + return (Operation == foCalculateSize); +} +//--------------------------------------------------------------------- +UnicodeString __fastcall TProgressForm::ProgressStr(TFileOperationProgressType * ProgressData) { static const int Captions[] = { 0, 0, PROGRESS_DELETE, PROGRESS_SETPROPERTIES, 0, PROGRESS_CUSTOM_COMAND, PROGRESS_CALCULATE_SIZE, PROGRESS_REMOTE_MOVE, PROGRESS_REMOTE_COPY, PROGRESS_GETPROPERTIES, - PROGRESS_CALCULATE_CHECKSUM }; - assert((unsigned int)Operation >= 1 && ((unsigned int)Operation - 1) < LENOF(Captions)); + PROGRESS_CALCULATE_CHECKSUM, PROGRESS_LOCK, PROGRESS_UNLOCK }; + DebugAssert((unsigned int)ProgressData->Operation >= 1 && ((unsigned int)ProgressData->Operation - 1) < LENOF(Captions)); int Id; - if ((Operation == foCopy) || (Operation == foMove)) + if ((ProgressData->Operation == foCopy) || (ProgressData->Operation == foMove)) { - Id = (Side == osLocal) ? PROGRESS_UPLOAD : PROGRESS_DOWNLOAD; + Id = (ProgressData->Side == osLocal) ? PROGRESS_UPLOAD : PROGRESS_DOWNLOAD; } else { - Id = Captions[(int)Operation - 1]; - assert(Id != 0); + Id = Captions[(int)ProgressData->Operation - 1]; + DebugAssert(Id != 0); + } + UnicodeString Result = LoadStr(Id); + if (!IsIndetermiateOperation(ProgressData->Operation)) + { + Result = FORMAT(L"%d%% %s", (ProgressData->OverallProgress(), Result)); } - return LoadStr(Id); + return Result; } //--------------------------------------------------------------------- __fastcall TProgressForm::TProgressForm(TComponent * AOwner, bool AllowMoveToQueue) @@ -60,9 +77,7 @@ __fastcall TProgressForm::TProgressForm(TComponent * AOwner, bool AllowMoveToQue FModalBeginHooked = false; FPrevApplicationModalBegin = NULL; FModalLevel = -1; - FAllowMoveToQueue = AllowMoveToQueue; UseSystemSettings(this); - ResetOnceDoneOperation(); if (CustomWinConfiguration->OperationProgressOnTop) { @@ -75,11 +90,16 @@ __fastcall TProgressForm::TProgressForm(TComponent * AOwner, bool AllowMoveToQue FFileProgress = TopProgress; } + FOnceDoneItems.Add(odoIdle, IdleOnceDoneItem); + FOnceDoneItems.Add(odoDisconnect, DisconnectOnceDoneItem); + FOnceDoneItems.Add(odoSuspend, SuspendOnceDoneItem); + FOnceDoneItems.Add(odoShutDown, ShutDownOnceDoneItem); + ResetOnceDoneOperation(); + HideComponentsPanel(this); + SelectScaledImageList(ImageList); + SetGlobalMinimizeHandler(this, GlobalMinimize); - if (FAllowMoveToQueue) - { - MenuButton(MinimizeButton); - } + MoveToQueueItem->Visible = AllowMoveToQueue; } //--------------------------------------------------------------------------- __fastcall TProgressForm::~TProgressForm() @@ -98,7 +118,7 @@ __fastcall TProgressForm::~TProgressForm() if (FModalBeginHooked) { - assert(Application->OnModalBegin == ApplicationModalBegin); + DebugAssert(Application->OnModalBegin == ApplicationModalBegin); Application->OnModalBegin = FPrevApplicationModalBegin; FModalBeginHooked = false; } @@ -108,106 +128,102 @@ __fastcall TProgressForm::~TProgressForm() //--------------------------------------------------------------------- void __fastcall TProgressForm::UpdateControls() { - assert((FData.Operation >= foCopy) && (FData.Operation <= foCalculateChecksum) && - FData.Operation != foRename ); - - CancelButton->Enabled = !FReadOnly && (FCancel == csContinue); - OnceDoneOperationCombo2->Enabled = - !FReadOnly && (FData.Operation != foCalculateSize) && - (FData.Operation != foGetProperties) && - (FData.Operation != foCalculateChecksum); - OnceDoneOperationLabel->Enabled = OnceDoneOperationCombo2->Enabled; + DebugAssert((FData.Operation >= foCopy) && (FData.Operation <= foUnlock) && + (FData.Operation != foRename)); bool TransferOperation = ((FData.Operation == foCopy) || (FData.Operation == foMove)); + CancelItem->Enabled = !FReadOnly && (FCancel == csContinue); + MoveToQueueItem->Enabled = !FMoveToQueue && (FCancel == csContinue); + CycleOnceDoneItem->Visible = + !FReadOnly && + (FData.Operation != foCalculateSize) && + (FData.Operation != foGetProperties) && + (FData.Operation != foCalculateChecksum); + CycleOnceDoneItem->ImageIndex = CurrentOnceDoneItem()->ImageIndex; + SpeedComboBoxItem->Visible = TransferOperation; + if (FData.Operation != FLastOperation) { - bool AVisible; + UnicodeString Animation; + UnicodeString CancelCaption = Vcl_Consts_SMsgDlgCancel; + int MoveToQueueImageIndex = -1; - // Wine does have static text "Searching" instead of actual animations - if (!IsWine()) + int MoveTransferToQueueImageIndex; + if (FData.Side == osRemote) { - try - { - THandle ShellModule; - AVisible = true; - TProgressBarStyle Style = pbstNormal; - UnicodeString CancelCaption = Vcl_Consts_SMsgDlgCancel; - switch (FData.Operation) { - case foCopy: - case foMove: - case foRemoteMove: - case foRemoteCopy: - if (FData.Count == 1) Animate->CommonAVI = aviCopyFile; - else Animate->CommonAVI = aviCopyFiles; - break; - - case foDelete: - Animate->CommonAVI = (DeleteToRecycleBin ? aviRecycleFile : aviDeleteFile); - break; - - case foSetProperties: - case foGetProperties: - ShellModule = SafeLoadLibrary(L"shell32.dll"); - if (!ShellModule) - { - Abort(); - } - // workaround, VCL is not able to set both ResId and ResHandle otherwise - Animate->Active = false; - Animate->ResHandle = 0; - Animate->ComponentState << csLoading; - Animate->ResId = 165; - Animate->ResHandle = ShellModule; - Animate->ComponentState >> csLoading; - Animate->Active = true; - break; - - case foCalculateSize: - Animate->CommonAVI = aviNone; - AVisible = false; - Style = pbstMarquee; - CancelCaption = LoadStr(SKIP_BUTTON); - break; - - default: - assert(FData.Operation == foCustomCommand || - FData.Operation == foCalculateChecksum); - Animate->CommonAVI = aviNone; - AVisible = false; - } - TopProgress->Style = Style; - CancelButton->Caption = CancelCaption; - } - catch (...) - { - AVisible = false; - }; + MoveTransferToQueueImageIndex = 7; } else { - Animate->CommonAVI = aviNone; - AVisible = false; + MoveTransferToQueueImageIndex = 8; } - int Delta = 0; - if (AVisible && !Animate->Visible) Delta = Animate->Height; - else - if (!AVisible && Animate->Visible) Delta = -Animate->Height; + switch (FData.Operation) + { + case foCopy: + if (FData.Side == osRemote) + { + Animation = L"CopyRemote"; + } + else + { + Animation = L"CopyLocal"; + } + MoveToQueueImageIndex = MoveTransferToQueueImageIndex; + break; - MainPanel->Top = MainPanel->Top + Delta; - TransferPanel->Top = TransferPanel->Top + Delta; - Animate->Visible = AVisible; - Animate->Active = AVisible; + case foMove: + if (FData.Side == osRemote) + { + Animation = L"MoveRemote"; + } + else + { + Animation = L"MoveLocal"; + } + MoveToQueueImageIndex = MoveTransferToQueueImageIndex; + break; + + case foDelete: + Animation = DeleteToRecycleBin ? L"Recycle" : L"Delete"; + break; + + case foCalculateSize: + Animation = L"CalculateSize"; + CancelCaption = LoadStr(SKIP_BUTTON); + MoveToQueueImageIndex = MoveTransferToQueueImageIndex; + break; + + case foSetProperties: + Animation = "SetProperties"; + break; + + default: + DebugAssert( + (FData.Operation == foCustomCommand) || + (FData.Operation == foGetProperties) || + (FData.Operation == foCalculateChecksum) || + (FData.Operation == foLock) || + (FData.Operation == foUnlock) || + (FData.Operation == foRemoteCopy) || + (FData.Operation == foRemoteMove)); + break; + } + + CancelItem->Caption = CancelCaption; + + TopProgress->Style = IsIndetermiateOperation(FData.Operation) ? pbstMarquee : pbstNormal; + + FFrameAnimation.Init(AnimationPaintBox, Animation); + FFrameAnimation.Start(); + int Delta = 0; if (TransferOperation && !TransferPanel->Visible) Delta += TransferPanel->Height; else if (!TransferOperation && TransferPanel->Visible) Delta += -TransferPanel->Height; TransferPanel->Visible = TransferOperation; - // when animation is hidden for transfers (on wine) speed panel does not fit, - // so we hide it (temporary solution before window redesign) - SpeedPanel->Visible = TransferOperation && AVisible; ClientHeight = ClientHeight + Delta; @@ -216,10 +232,14 @@ void __fastcall TProgressForm::UpdateControls() TargetPathLabel->UnixPath = (FData.Side == osLocal); FileLabel->UnixPath = (FData.Side == osRemote); + PathLabel->Caption = + LoadStr((FData.Operation == foCalculateSize) ? PROGRESS_PATH_LABEL : PROGRESS_FILE_LABEL); + + MoveToQueueItem->ImageIndex = MoveToQueueImageIndex; FLastOperation = FData.Operation; FLastTotalSizeSet = !FData.TotalSizeSet; - }; + } if (FLastTotalSizeSet != FData.TotalSizeSet) { @@ -230,7 +250,18 @@ void __fastcall TProgressForm::UpdateControls() FLastTotalSizeSet = FData.TotalSizeSet; } - if ((FData.Side == osRemote) || !FData.Temp) + if ((FData.Operation == foCalculateSize) && DebugAlwaysTrue(!FData.Temp)) + { + if (FData.Side == osRemote) + { + FileLabel->Caption = UnixExtractFileDir(FData.FullFileName); + } + else + { + FileLabel->Caption = ExtractFileDir(FData.FullFileName); + } + } + else if ((FData.Side == osRemote) || !FData.Temp) { FileLabel->Caption = FData.FileName; } @@ -241,7 +272,7 @@ void __fastcall TProgressForm::UpdateControls() int OverallProgress = FData.OverallProgress(); FOperationProgress->Position = OverallProgress; FOperationProgress->Hint = FORMAT(L"%d%%", (OverallProgress)); - Caption = FormatFormCaption(this, FORMAT(L"%d%% %s", (OverallProgress, OperationName(FData.Operation, FData.Side)))); + Caption = FormatFormCaption(this, ProgressStr(&FData)); if (TransferOperation) { @@ -268,8 +299,8 @@ void __fastcall TProgressForm::UpdateControls() } } //--------------------------------------------------------------------- -static TDateTime DelayStartInterval(static_cast(OneSecond/5)); -static TDateTime UpdateInterval(static_cast(OneSecond)); +static __int64 DelayStartInterval = MSecsPerSec / 2; +static __int64 UpdateInterval = 1 * MSecsPerSec; //--------------------------------------------------------------------- bool __fastcall TProgressForm::ReceiveData(bool Force, int ModalLevelOffset) { @@ -289,19 +320,20 @@ bool __fastcall TProgressForm::ReceiveData(bool Force, int ModalLevelOffset) // (for extreme cases like restoring while reconnecting [as-modal TAuthenticateForm]). if ((FModalLevel < 0) || (Application->ModalLevel + ModalLevelOffset <= FModalLevel)) { - // delay showing the progress until the application is restored, + // Delay showing the progress until the application is restored, // otherwise the form popups up unminimized. + // See solution in TMessageForm::CMShowingChanged. if (!IsApplicationMinimized() && - (Force || ((Now() - FStarted) > DelayStartInterval))) + (Force || (MilliSecondsBetween(Now(), FStarted) > DelayStartInterval))) { FDataReceived = true; - SpeedCombo->Text = SetSpeedLimit(FCPSLimit); + SpeedComboBoxItem->Text = SetSpeedLimit(FCPSLimit); ShowAsModal(this, FShowAsModalStorage); // particularly needed for the case, when we are showing the form delayed // because application was minimized when operation started Result = true; } - else if (!FModalBeginHooked && ALWAYS_TRUE(FModalLevel < 0)) + else if (!FModalBeginHooked && DebugAlwaysTrue(FModalLevel < 0)) { // record state as of time, the window should be shown, // had not we implemented delayed show @@ -319,8 +351,8 @@ bool __fastcall TProgressForm::ReceiveData(bool Force, int ModalLevelOffset) void __fastcall TProgressForm::ApplicationModalBegin(TObject * Sender) { // Popup before any modal dialog shows (typically overwrite confirmation, - // as that popups nerly instantly, i.e. less than DelayStartInterval). - // The Application->ModalLevel is already incremented, but we should treat is as + // as that popups nearly instantly, i.e. less than DelayStartInterval). + // The Application->ModalLevel is already incremented, but we should treat it as // if it were not as the dialog is not created yet (so we can popup if we are not yet). ReceiveData(true, -1); @@ -347,9 +379,9 @@ void __fastcall TProgressForm::SetProgressData(TFileOperationProgressType & ADat FDataGot = true; if (!UpdateTimer->Enabled) { - UpdateTimer->Interval = static_cast(MilliSecondsBetween(TDateTime(), DelayStartInterval)); + UpdateTimer->Interval = static_cast(DelayStartInterval); UpdateTimer->Enabled = true; - FSinceLastUpdate = TDateTime(); + FSinceLastUpdate = 0; } if (ReceiveData(false, 0)) @@ -378,67 +410,62 @@ void __fastcall TProgressForm::UpdateTimerTimer(TObject * /*Sender*/) // that launches long-lasting external process, such as visual diff) ReceiveData(false, 0); + if (UpdateTimer->Interval == DelayStartInterval) + { + UpdateTimer->Interval = static_cast(GUIUpdateInterval); + } + if (FDataReceived) { - FSinceLastUpdate = IncMilliSecond(FSinceLastUpdate, UpdateTimer->Interval); + FSinceLastUpdate += UpdateTimer->Interval; if (FSinceLastUpdate >= UpdateInterval) { UpdateControls(); - FSinceLastUpdate = TDateTime(); + FSinceLastUpdate = 0; } } } //--------------------------------------------------------------------------- void __fastcall TProgressForm::FormShow(TObject * /*Sender*/) { - SpeedCombo->Items = CustomWinConfiguration->History[L"SpeedLimit"]; + CopySpeedLimits(CustomWinConfiguration->History[L"SpeedLimit"], SpeedComboBoxItem->Strings); ReceiveData(false, 0); if (FDataReceived) { UpdateControls(); } + HookFormActivation(this); } //--------------------------------------------------------------------------- void __fastcall TProgressForm::FormHide(TObject * /*Sender*/) { + UnhookFormActivation(this); // This is to counter the "infinite" timestamp in // TTerminalManager::ApplicationShowHint. // Because if form disappears on its own, hint is not hidden. Application->CancelHint(); - CustomWinConfiguration->History[L"SpeedLimit"] = SpeedCombo->Items; + CustomWinConfiguration->History[L"SpeedLimit"] = SpeedComboBoxItem->Strings; UpdateTimer->Enabled = false; } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::CancelButtonClick(TObject * /*Sender*/) +void __fastcall TProgressForm::CancelItemClick(TObject * /*Sender*/) { CancelOperation(); } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::MinimizeButtonClick(TObject * Sender) -{ - if (FAllowMoveToQueue) - { - MenuPopup(MinimizeMenu, MinimizeButton); - } - else - { - Minimize(Sender); - } -} -//--------------------------------------------------------------------------- void __fastcall TProgressForm::Minimize(TObject * Sender) { CallGlobalMinimizeHandler(Sender); } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::MinimizeMenuItemClick(TObject * Sender) +void __fastcall TProgressForm::MinimizeItemClick(TObject * Sender) { Minimize(Sender); } //--------------------------------------------------------------------------- void __fastcall TProgressForm::CancelOperation() { - assert(FDataReceived); + DebugAssert(FDataReceived); if (!FData.Suspended) { // mostly useless, as suspend is called over copy of actual progress data @@ -486,42 +513,51 @@ void __fastcall TProgressForm::GlobalMinimize(TObject * /*Sender*/) FMinimizedByMe = true; } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::SetOnceDoneOperation(TOnceDoneOperation value) +TTBCustomItem * __fastcall TProgressForm::CurrentOnceDoneItem() { - int Index = 0; - switch (value) + TOnceDoneItems::const_iterator Iterator = FOnceDoneItems.begin(); + while (Iterator != FOnceDoneItems.end()) { - case odoIdle: - Index = 0; - break; - - case odoDisconnect: - Index = 1; - break; - - case odoSuspend: - Index = 2; - break; - - case odoShutDown: - Index = 3; - break; + if (Iterator->second->Checked) + { + return Iterator->second; + } + Iterator++; + } - default: - FAIL; + DebugFail(); + return NULL; +} +//--------------------------------------------------------------------------- +TOnceDoneOperation __fastcall TProgressForm::GetOnceDoneOperation() +{ + return FOnceDoneItems.LookupFirst(CurrentOnceDoneItem()); +} +//--------------------------------------------------------------------------- +void __fastcall TProgressForm::SetOnceDoneItem(TTBCustomItem * Item) +{ + TTBCustomItem * Current = CurrentOnceDoneItem(); + if (Current != Item) + { + Current->Checked = false; + Item->Checked = true; + UpdateControls(); } - OnceDoneOperationCombo2->ItemIndex = Index; - OnceDoneOperationCombo2Select(NULL); +} +//--------------------------------------------------------------------------- +void __fastcall TProgressForm::SetOnceDoneOperation(TOnceDoneOperation value) +{ + SetOnceDoneItem(FOnceDoneItems.LookupSecond(value)); } //--------------------------------------------------------------------------- bool __fastcall TProgressForm::GetAllowMinimize() { - return MinimizeButton->Visible; + return MinimizeItem->Visible; } //--------------------------------------------------------------------------- void __fastcall TProgressForm::SetAllowMinimize(bool value) { - MinimizeButton->Visible = value; + MinimizeItem->Visible = value; } //--------------------------------------------------------------------------- void __fastcall TProgressForm::SetReadOnly(bool value) @@ -537,105 +573,92 @@ void __fastcall TProgressForm::SetReadOnly(bool value) } } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::ApplyCPSLimit() +void __fastcall TProgressForm::ResetOnceDoneOperation() { - try - { - FCPSLimit = GetSpeedLimit(SpeedCombo->Text); - } - catch(...) - { - SpeedCombo->SetFocus(); - throw; - } - - SpeedCombo->Text = SetSpeedLimit(FCPSLimit); - // visualize application - SpeedCombo->SelectAll(); - ResetFocus(); + SetOnceDoneOperation(odoIdle); } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::ResetFocus() +void __fastcall TProgressForm::Dispatch(void * AMessage) { - if (CancelButton->Enabled) + TMessage & Message = *reinterpret_cast(AMessage); + if (Message.Msg == WM_CLOSE) + { + CancelOperation(); + } + else { - CancelButton->SetFocus(); + TForm::Dispatch(AMessage); } } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::SpeedComboExit(TObject * /*Sender*/) +void __fastcall TProgressForm::MoveToQueueItemClick(TObject * /*Sender*/) { - SpeedCombo->Text = SetSpeedLimit(FCPSLimit); + FMoveToQueue = true; + UpdateControls(); } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::SpeedComboSelect(TObject * /*Sender*/) +void __fastcall TProgressForm::OnceDoneItemClick(TObject * Sender) { - ApplyCPSLimit(); + SetOnceDoneItem(dynamic_cast(Sender)); } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::SpeedComboKeyPress(TObject * /*Sender*/, - wchar_t & Key) +void __fastcall TProgressForm::CycleOnceDoneItemClick(TObject * /*Sender*/) { - // using OnKeyPress instead of OnKeyDown to catch "enter" prevents - // system beep for unhandled key - if (Key == L'\r') + TTBCustomItem * Item = CurrentOnceDoneItem(); + int Index = Item->Parent->IndexOf(Item); + DebugAssert(Index >= 0); + if (Index < Item->Parent->Count - 1) + { + Index++; + } + else { - Key = L'\0'; - ApplyCPSLimit(); + Index = 0; } + SetOnceDoneItem(Item->Parent->Items[Index]); } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::ResetOnceDoneOperation() +UnicodeString __fastcall TProgressForm::ItemSpeed(const UnicodeString & Text, + TTBXComboBoxItem * Item) { - OnceDoneOperationCombo2->ItemIndex = 0; - OnceDoneOperationCombo2Select(NULL); + // Keep in sync with TNonVisualDataModule::QueueItemSpeed + FCPSLimit = GetSpeedLimit(Text); + + UnicodeString Result = SetSpeedLimit(FCPSLimit); + SaveToHistory(Item->Strings, Result); + CustomWinConfiguration->History[L"SpeedLimit"] = Item->Strings; + + return Result; } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::OnceDoneOperationCombo2Select(TObject * /*Sender*/) +void __fastcall TProgressForm::SpeedComboBoxItemAcceptText(TObject * Sender, + UnicodeString & NewText, bool & /*Accept*/) { - switch (OnceDoneOperationCombo2->ItemIndex) - { - case 0: - FOnceDoneOperation = odoIdle; - break; - - case 1: - FOnceDoneOperation = odoDisconnect; - break; - - case 2: - FOnceDoneOperation = odoSuspend; - break; - - case 3: - FOnceDoneOperation = odoShutDown; - break; - - default: - FAIL; - } + TTBXComboBoxItem * Item = dynamic_cast(Sender); + NewText = ItemSpeed(NewText, Item); } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::OnceDoneOperationCombo2CloseUp(TObject * /*Sender*/) +void __fastcall TProgressForm::SpeedComboBoxItemItemClick(TObject * Sender) { - ResetFocus(); + TTBXComboBoxItem * Item = dynamic_cast(Sender); + Item->Text = ItemSpeed(Item->Text, Item); } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::Dispatch(void * AMessage) +void __fastcall TProgressForm::SpeedComboBoxItemAdjustImageIndex( + TTBXComboBoxItem * Sender, const UnicodeString /*AText*/, int /*AIndex*/, int & ImageIndex) { - TMessage & Message = *reinterpret_cast(AMessage); - if (Message.Msg == WM_CLOSE) - { - CancelOperation(); - } - else - { - TForm::Dispatch(AMessage); - } + // Use fixed image (do not change image by item index) + ImageIndex = Sender->ImageIndex; } //--------------------------------------------------------------------------- -void __fastcall TProgressForm::MoveToQueueMenuItemClick(TObject * /*Sender*/) +void __fastcall TProgressForm::FormKeyDown( + TObject * /*Sender*/, WORD & Key, TShiftState /*Shift*/) { - FMoveToQueue = true; + // We do not have Cancel button, so we have to handle Esc key explicitly + if (Key == VK_ESCAPE) + { + CancelOperation(); + Key = 0; + } } //--------------------------------------------------------------------------- diff --git a/source/forms/Progress.dfm b/source/forms/Progress.dfm index fceb8df1..1ae9d49e 100644 --- a/source/forms/Progress.dfm +++ b/source/forms/Progress.dfm @@ -6,80 +6,48 @@ object ProgressForm: TProgressForm BorderIcons = [biSystemMenu, biMinimize, biMaximize, biHelp] BorderStyle = bsDialog Caption = 'Operation' - ClientHeight = 196 - ClientWidth = 425 - Color = clBtnFace + ClientHeight = 291 + ClientWidth = 360 + Color = clWindow ParentFont = True OldCreateOrder = False Position = poOwnerFormCenter OnHide = FormHide + OnKeyDown = FormKeyDown OnShow = FormShow DesignSize = ( - 425 - 196) + 360 + 291) PixelsPerInch = 96 TextHeight = 13 - object OnceDoneOperationLabel: TLabel - Left = 322 - Top = 88 - Width = 69 - Height = 13 - Anchors = [akTop, akRight] - Caption = 'Once &finished:' - FocusControl = OnceDoneOperationCombo2 - end - object Animate: TAnimate - Left = 10 - Top = 5 - Width = 301 - Height = 60 - Anchors = [akLeft, akTop, akRight] - AutoSize = False - StopFrame = 23 - end - object CancelButton: TButton - Left = 320 - Top = 8 - Width = 100 - Height = 25 - Anchors = [akTop, akRight] - Cancel = True - Caption = 'CancelX' - TabOrder = 0 - OnClick = CancelButtonClick - end - object MinimizeButton: TButton - Left = 320 - Top = 40 - Width = 100 - Height = 25 - Anchors = [akTop, akRight] - Caption = '&Minimize' - TabOrder = 1 - OnClick = MinimizeButtonClick + object AnimationPaintBox: TPaintBox + Left = 8 + Top = 11 + Width = 32 + Height = 32 end object MainPanel: TPanel - Left = 10 - Top = 65 - Width = 301 + Left = 50 + Top = 7 + Width = 302 Height = 68 Anchors = [akLeft, akTop, akRight] BevelOuter = bvNone - TabOrder = 3 + TabOrder = 0 DesignSize = ( - 301 + 302 68) - object Label1: TLabel + object PathLabel: TLabel Left = 0 Top = 7 - Width = 20 + Width = 26 Height = 13 - Caption = 'File:' + Caption = 'FileX:' end object FileLabel: TPathLabel Left = 56 Top = 7 - Width = 245 + Width = 246 Height = 13 IndentHorizontal = 0 IndentVertical = 0 @@ -97,7 +65,7 @@ object ProgressForm: TProgressForm object TargetPathLabel: TPathLabel Left = 56 Top = 23 - Width = 245 + Width = 246 Height = 13 IndentHorizontal = 0 IndentVertical = 0 @@ -108,7 +76,7 @@ object ProgressForm: TProgressForm object TopProgress: TProgressBar Left = 0 Top = 42 - Width = 301 + Width = 302 Height = 16 Anchors = [akLeft, akTop, akRight] ParentShowHint = False @@ -117,15 +85,15 @@ object ProgressForm: TProgressForm end end object TransferPanel: TPanel - Left = 10 - Top = 133 - Width = 321 + Left = 50 + Top = 75 + Width = 322 Height = 63 Anchors = [akLeft, akTop, akRight] BevelOuter = bvNone - TabOrder = 4 + TabOrder = 1 DesignSize = ( - 321 + 322 63) object StartTimeLabel: TLabel Left = 88 @@ -153,7 +121,7 @@ object ProgressForm: TProgressForm Caption = 'Time left:' end object CPSLabel: TLabel - Left = 236 + Left = 237 Top = 18 Width = 65 Height = 13 @@ -163,7 +131,7 @@ object ProgressForm: TProgressForm Caption = '0 KB/s' end object TimeElapsedLabel: TLabel - Left = 236 + Left = 237 Top = 2 Width = 65 Height = 13 @@ -182,7 +150,7 @@ object ProgressForm: TProgressForm Caption = '0 KB' end object Label3: TLabel - Left = 164 + Left = 165 Top = 2 Width = 66 Height = 13 @@ -204,7 +172,7 @@ object ProgressForm: TProgressForm Caption = 'Bytes transferred:' end object Label12: TLabel - Left = 164 + Left = 165 Top = 18 Width = 34 Height = 13 @@ -214,7 +182,7 @@ object ProgressForm: TProgressForm object BottomProgress: TProgressBar Left = 0 Top = 37 - Width = 301 + Width = 302 Height = 16 Anchors = [akLeft, akTop, akRight] ParentShowHint = False @@ -222,82 +190,4408 @@ object ProgressForm: TProgressForm TabOrder = 0 end end - object SpeedPanel: TPanel - Left = 314 - Top = 151 - Width = 112 - Height = 41 - Anchors = [akTop, akRight] + object ToolbarPanel: TPanel + Left = 50 + Top = 142 + Width = 302 + Height = 28 + Anchors = [akLeft, akBottom] BevelOuter = bvNone - TabOrder = 6 - DesignSize = ( - 112 - 41) - object SpeedLabel3: TLabel - Left = 8 + TabOrder = 2 + object Dock: TTBXDock + Left = 0 Top = 0 - Width = 66 - Height = 13 - Caption = '&Speed (KB/s):' - FocusControl = SpeedCombo - end - object SpeedCombo: THistoryComboBox - Left = 6 - Top = 16 - Width = 100 - Height = 21 - AutoComplete = False - Anchors = [akLeft, akTop, akRight] - TabOrder = 0 - Text = 'SpeedCombo' - OnExit = SpeedComboExit - OnKeyPress = SpeedComboKeyPress - OnSelect = SpeedComboSelect - Items.Strings = ( - 'Unlimited' - '1024' - '512' - '256' - '128' - '64' - '32' - '16' - '8') + Width = 302 + Height = 27 + Color = clWindow + object Toolbar: TTBXToolbar + Left = 0 + Top = 0 + DockMode = dmCannotFloatOrChangeDocks + DragHandleStyle = dhNone + Images = ImageList + ParentShowHint = False + ShowHint = True + TabOrder = 0 + Color = clWindow + object CancelItem: TTBXItem + Caption = '&CancelX' + ImageIndex = 0 + OnClick = CancelItemClick + end + object MinimizeItem: TTBXItem + Caption = '&Minimize' + ImageIndex = 1 + OnClick = MinimizeItemClick + end + object MoveToQueueItem: TTBXItem + Caption = 'Proceed in &Background' + ImageIndex = 7 + OnClick = MoveToQueueItemClick + end + object CycleOnceDoneItem: TTBXSubmenuItem + Caption = 'Once FinishedX' + DropdownCombo = True + Hint = 'Action to perform once the operation finishes' + ImageIndex = 2 + OnClick = CycleOnceDoneItemClick + object IdleOnceDoneItem: TTBXItem + Caption = '&Stay Idle' + Checked = True + ImageIndex = 2 + RadioItem = True + OnClick = OnceDoneItemClick + end + object DisconnectOnceDoneItem: TTBXItem + Caption = '&Disconnect Session' + ImageIndex = 3 + RadioItem = True + OnClick = OnceDoneItemClick + end + object SuspendOnceDoneItem: TTBXItem + Caption = 'Slee&p Computer' + ImageIndex = 5 + RadioItem = True + OnClick = OnceDoneItemClick + end + object ShutDownOnceDoneItem: TTBXItem + Caption = '&Shut Down Computer' + ImageIndex = 4 + RadioItem = True + OnClick = OnceDoneItemClick + end + end + object SpeedComboBoxItem: TTBXComboBoxItem + EditWidth = 110 + Hint = 'Speed limit (KB/s)' + ImageIndex = 6 + OnAcceptText = SpeedComboBoxItemAcceptText + ShowImage = True + OnAdjustImageIndex = SpeedComboBoxItemAdjustImageIndex + OnItemClick = SpeedComboBoxItemItemClick + end + end end end - object OnceDoneOperationCombo2: TComboBox - Left = 320 - Top = 104 - Width = 100 - Height = 21 - AutoComplete = False - Style = csDropDownList - Anchors = [akTop, akRight] - TabOrder = 5 - OnCloseUp = OnceDoneOperationCombo2CloseUp - OnSelect = OnceDoneOperationCombo2Select - Items.Strings = ( - 'Stay idle' - 'Disconnect' - 'Sleep' - 'Shut down') + object ComponentsPanel: TPanel + Left = 0 + Top = 181 + Width = 360 + Height = 110 + Align = alBottom + BevelEdges = [beTop] + BevelKind = bkFlat + BevelOuter = bvNone + TabOrder = 3 end object UpdateTimer: TTimer Enabled = False OnTimer = UpdateTimerTimer - Left = 336 - Top = 168 + Left = 40 + Top = 192 end - object MinimizeMenu: TPopupMenu - Left = 384 - Top = 48 - object MoveToQueueMenuItem: TMenuItem - Caption = 'Proceed in &Background' - OnClick = MoveToQueueMenuItemClick - end - object MinimizeMenuItem: TMenuItem - Caption = '&Minimize' - OnClick = MinimizeMenuItemClick - end + object ImageList: TPngImageList + PngImages = < + item + Background = clWindow + Name = 'Cancel operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001CC4944415478DAA593DF4A02 + 4114C6CFCC2EFD8176B552E80F84054521D42B642FE0950A81105D6875D12B54 + AFD0455937055D6975D10B54AF5020056241100659EA6E51983BD3997567594D + BAF15C2C3B33DFF7DB9DEFCC10CE3974534400082170A069014465F1FDAE6418 + 9BDB00CC2BC4311DD5F55DD4CF118044DA34CBB6573C0E753D0004AE438A12FE + C4F12B632725C35C9190A6593B0E529AF4E3C70A9695070E8B29C3284BC06548 + 5522338A623B6E1A0D172200D2BCA0AA40715CB42C2836AC2B042C494026A8D0 + B414782102E035BB6B9C1DA5AAC6AA0DD821441DD3B5B3614AA3F31EE12D0A45 + B5CFBD3176E137CC788CF3BA1B620EA0A7AA6BB92142A26134605020FB23DFF3 + B6999F0F9AE6721CA0EE862800A22404838ACE3A1070CCF768AE70DE12EE1F80 + 4C1B01C9E936400101D5FF00D2ACA3790ABBD1690B0F98BEE181B8000CD1366B + 689EF0989FD020AA7DCE74205B9CB3661B7DBEBD0102EBE394BAC267C6E08343 + 5600702DD1616D3F55AB6DB807C94F4904DB680B5E50F0C5B9DD2A0110C1F663 + B0230E04C384778BB51C24FB28E3FEC33F28F876CCA255DEEEF421A417F3AA32 + D67A94E56542FA29A7F0385833D7A4599680547C5A863098C4BF8CB55CA66EEA + 176D0342F00799C52C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Minimize' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000254944415478DA63FCFFFF3F + 03258071D480510386A9018C8C8C784D04AA67A4AD01740F0300C63437E1204F + 574C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Once Finished - Stay Idle' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002974944415478DA85936B4853 + 6118C7FFE7D4DCD9D9CE6E6E53B776A9ECA630148CAC448405D2873E1864B78D + 82C22EE2A73E05212BCAF04B04458904412A5D6911D8874148569628068BAE8A + 398753E765EEE2A6677AD69965743A620FBC2FBCEFFFE1F73E0FCFFF25B01C07 + 1E6559A5921A82808B3F6DFB7DFB259D468B7F3ED58CC7D52C560822B3990FDD + 37AE594BB5CB55D9451ABD113239B324266763084F04118F4EF571A9B97D8107 + 87836240E6654AF25E976B2BD61A4C02313F4702B9944047EF2026C7FC1FFC73 + A9D27F2B216C4ECF195AA9B99567D92C24F3BDB49D366091EFC1D514C2E8F077 + 24A2E1B343AD55B705795697A7C768D95242D10A01C06E91E2BAD3004F6F1C37 + BC612413711EF2ADD7DF52B55D08707A62E67CBB82244901A07EBF1E8E42398E + 35053134C182E33804067C717F6B15230298361428AC7A0AD5A56ADCE998426A + 318DE7E7D6C33FC9E24473602931031819FCBC02806F41976B2D711419D078C4 + 841F21165E5F04A7F6E871AD7D1C4FBAC71197DCC32CE90547F24320D2FD1CB8 + 36727EA671C88D391EF0B496923137D5BA3CB8CA75A8ADCC59222FF05554367C + 4480AC83C91687BDC00E9552854834823E5F1F02A3812E623EEC206C1577A9B4 + 59DDA5506A8B69850ACE7203EAF6E6E159CF342EBCB80C95CD8BB29DBB45067A + F3EE2D46C646DC0223492859918C6640CB28B00B1C66D4C751E6D80886614480 + 682C86CE57AF0788E58B4C259C5955438238FAC7CA0527998ACA32DE6D840890 + E6FDD1E1ED5C102B7F85F5AAA6DFBEA3309F96CB445A6236095FF7A7815501B6 + 06ED459541596FD96A1469C35F838884A2975607B841A5A59A974CB67C97669D + 12593209D8640AD3C311C4C3895F53C07FC2E8062DC9D29EE7BFC641FEB8895F + FD7CFB0F0976FA4AC6073F01A2F8FAA4B95EF9C60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Once Finished - Disconnect' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002BE4944415478DA8D925B48D3 + 7114C7BF7F75EEBFEDFFDFA66EF3D62E8AE5AD6C8A95BE48B0A07A903248CA36 + 8204B5AC977AEFADA29708BAB824E841BB60E4A430482283A434A79978379773 + A8397573EEBEB9FFFA6FE4C354B0F3F083DF395F3EE77C0F87C0669C6D4B5472 + 397504011DFBCBFF971D0F87D162F6079BF1BA3A801D82883CF2732F33E213C8 + 4E8128459D24CD004F40478B5EB713F6E505B8D6570799A0AFD2F2EAFCC27640 + A433C9E995A4A98A93659931C59C540E045C02DD461356FE987F987DC1B2AD93 + 102AADE1325F98F4385DB12F96CC7A79DE204388F5A0D35BB1383705CFBAFDCA + 6C6B55538C4EA933F46728724B493E1503285270715F2B83C1E8C2832E3BBC1E + 170B99349A5BAA0EC502B406A73CA7888A8B8B8B01DC3C2385A650808BFA05CC + 2E07C0300C2CBF865DE6D62A7A1B2033BB80524A49549789F1B47B15C150186F + 6F64C1BC12406DB3252A8C00E64D633B00580B923465A9462DC3DD9A4CFCB606 + D035EC40FD3129EE752EE14D9F3D2AF4FB3CEC22E776B0A06B6F2479F443B124 + 1DBA0A091A8FA7460B1BEC14276E4F82333F85D33DB7D0B6B706264A195DE213 + 9A9688C4C24F3EAFE71BA13AFA8C0CCBC55F296172319F12415B21C3B593E9E8 + E8B7E14EBB05B51D9770EA60268C23D3E131ABE3B0D8BD664D91A57C29C8CD56 + F40F8DB6C71C1287E4A9797C1A7C1E89C006838D600092D95E5C9FD0874B72E4 + C4C0C48C738309F9F66729A4DF47A77AA6AD2B1A62D34B6412462EAA8B037161 + EB295F7D5F3F904B713EA8157B681680BE19F3886D69B9BC117011F88FD00B04 + 1A6592A8334F9ACC0D31610C2E2E99EC5EFF917AA7736557809EE657660B2843 + AE908A37DA1CD610C3780E2409554376C788CDB656BE2BE08548385EC6E7E50D + FBFCCE798FB7242131714D184F7CCEE7720B87BDFE8FBB029A48524525725ADD + 21A6B1C1EDFE19C93D02285A44BF0B304CDF5F599B27D104A31BFB0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Once Finished - Shut Down' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002C64944415478DA85936D4853 + 5118C7FF7773EEEEE56EBE6CD3CD7453A4486928F832FD2081911A54D88B5A6D + F521B44CAA0F7D924056D087BE446F944914A2E54B902FE08716E1274D9D1528 + 1AE65297E674D3449D3AB7EBBDDD494237C5FE700E9CE739E7779EE73CCF21B0 + A5D3CDA17AB1A88C2060E156FBFF58BFB22CEA9CEB811ABC29F2630711C129B6 + A441270C213B64CAC89470B50E1219B5E95C5B59C682671ADEA5F9CF4CC07774 + B2F1CCF47640F06652D4A38A36A446686278CEC428116462029DFD63989B717E + 71FA02A67F23210CE69672A922FC89366E2F9FCCE5F2EAB2061B5C0E966A375C + 3FBE617569E1CA447DE153DE3EBDA5C5AE8BDB97464AE53C80314E8CFB660D5A + FABD78645BC0DAAA97838CF43BEB0AD3F90073CB726CA2512E10087880AA136A + E426CB70A17A1A131E3F1886C1A463C0EBAC2FA4B601621292E47A3589225318 + 9E77CE23B0C1A2FD463C9C737E5CAC99DCDC1804FC1C1BDE01C0A5A08AD6A7E5 + A66870F76C0CC6DD7ED8061671E9901AF73A66D1DA350BA3FD05F423362817A7 + 82674659B04D334BDE3B56C0C701DE569012EA71984A0B4B8E0A1579519B649A + 8BE2C8ED41E43496C3E81E42825088C4B676388E1F8383A6E166D86ED7F2722E + 6138F8926463C3BAE58A8854A95C09738E06570BB468B5FFC2BB4A2BF23ED522 + CB6482ECE42950A5A5F0D6D6C2DBF01A1F7B7AE0D960ACBC4612919214899482 + 5442C24F33286934A3C0E741F2F8047C5D5D90E4E763CD660399958521831EDD + 34ED20B61E23180913AB2C138038B7D5CA956DE7A9C3A1A13078E630653C00DA + E54288568B3D0383185745E2BDDF4F13D845CF14D468B6489498F47D0CEB7D7D + 98BF7E0D910F1E429C9181E184787E043BA95A21BFA51308ABD23333A1696A86 + 40A904B3B808777111ECBDBD70D11BD65D015C99482D457D88160AB283559071 + B6156EF0AA80FF28088956C86F12208AC1B2F1DC2719FFBB0F7E03A0E01D5B1C + 77F5680000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Once Finished - Suspend' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002894944415478DA8D936D4853 + 6114C7FF7735BDBBDB9CDA369DB2174B8A0A44C9C0844C32909008837C6B23E8 + C55EC42FF5290AB1282A82E845524428D0B0177211F841A94C0A931C09424539 + 74772B33A7ADDC9CEB6EBBB767AB493787F5877B39CF3DE7F9DD73CE731E0A31 + EDBE97604C94D652142C64B5F6F7D777828076F647B015F72B38C4111579E9AB + 3A33962DA7BBE5AA15B9299A0CC8E4CAA8737ECE0B8F7B02BED999D77C30B0C3 + 75A77A623120F2675A3AA84E37E5A56A3345CEEC3429E48914FA6C63989E6487 + D940B0E0EF4C2893D97A84494AB9A133AC1693492DB70F6B112635585AA6F0D9 + F901FE59CF51474779B328CE68B10E6518D6E4D38C4204C83124E28A590BABCD + 87EBBD1ECCFB7D04F2DEC6B6976F1403CC56AF3E3B472191484480865D1A94AC + 97636FCB041C6E0E3CCFC3651FF1B11DE5CA4580CC95EB14460D8D8A8264B4F5 + CD201816F0E87816D8690EFB5B5DD1C008E0D3D8DB380052823ADD985F92ABC5 + C59A4C8C4F71E81DF98E43DB34B8DCFD050F5EBA11763E46786A18546026B267 + 148270D7EDF49F73389E0508A0AB8E96299B92D53A588AD4A82B4D8B9243248B + D2B36FE0B5919E79591CAC51E140950AE3CE209ADBBFA17F707EC0ED9C2BA14C + C53769419F3CA0484ACD63142A988BB4A8DFAEC3C3A1AF387FED16F0F1E942BA + 174EA8B1B59089DAC7CEB8F1FC95BF513448525A962B6394606434B8100FC9C8 + 55509C6701B0CA284567932E6ADB1D1CAAEB27ED54CC19C984D7AB6A25A0F6C4 + 4659E36C13352C414AE145973E6A8779019B76BA42149650FE96B2511290FD5F + 19C4D386CD65A7C97834C4EBC1A94BD3E8E99F6B5C12603215D31A83FC09B931 + 859153D8579904D615129F02FEA15F10E624B91C956499459EF13FE7E027E898 + 06928792E3D30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Speed Limit' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002AC4944415478DAA5536B48D3 + 511C3D7FB799D3E5634DAD689482A29B5F7C3F8A4610031FF44012A252D4E58B + 983321432BCC0F566AA6592A4C4B2C34165144120C154A343185882684418E45 + 827B64B5F7EBF66F4B4D1B1174E0722FF771F89D73CF8FC226A4648913C06495 + 5220625014DFB34988868052C2E9E89F9D52BEFBFD3EB5BA100A85FE81BC3D1D + 4141811547F2B2A9B4D4244446847BCEB45A1DA667E6F0E4D9736232997BCDBA + 45994AA5B2AF11FC7A3C92959E7AB0BAB218C1FA69B0D42F81653588D50D77C0 + 7638A24530C588D0D93B80A9E99971B35E9DFD93C443902ACAEDDE9B99565977 + E62438EF3B40E916414C4EB8CD4E107AB88D0E100B3D8746C151D08896FE0798 + 7C35D3F3FAC54815959C298E0BE186CDF7DD6EA13E8E5DC456A716F17C3EACFC + 7C38B909B47EC04FF3067EA377804F3431370A46491B24D23AF2D5F04540A588 + 72DA4F1D2FA829148781BD3404E9AD25E85DBB505C5282A4C4C475B3AC2630BA + AA40346AB8F365501818B837ACB841A5EECF51755E6F1624863C04C3A48621A8 + 08150D77313B3B87F8F83854569423233DDD4BF27602E8AA07D91983C5D2CBA8 + AEAD9FA72BC8FDAE189473F8680265B3421B7C0566AB0B92B2722C2C7C0083C1 + C0F8A8126C361BB05980E203208C2DB0C99528283C6D5C23D81DD80CB86C58A6 + 9A68D9FED01B0C90D5D4223232026D2DD7BC3AAC16B88FED039801B00F8F7B09 + 5625A4443F05D3EF33565C27607509E00B64620CAE0619A8582134975A572578 + 4D2C3AB40D1CDB63B8088FF6E12C5D056BE36BBB1DF6A379006D22F342231EB1 + 38B83FA4E8F47C63288F3B2FEFBA4AED30F5C2CE8C8529F4B0CF0ADC3DED704F + 4EC2D13380B29AF3644567106C08D2396929C060E36F20C66F68950FAE076973 + 94A55512AFE33E60B15870B3BBEFCF28FB6AA68CB4648487F3FEAD99FEA79D7F + 009E514EF25E2361B00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002504944415478DA95935D4893 + 5118C7FFC7356736FA42C9057DE15D41DD14199115246505D30C5B965A69E54D + 577D58D3598B5558D44524E65E931C46D94A86E04594A54CA4DACCB9691726BA + 1995626DE6B6F7759FA7772F94C83658E7EA1C9EF3FFFDFFCF030F419C5371B7 + 9DC6AE90DE5F6E6EAFFE5AA14778C5039CBD63A00F2FC8E10FCE712237E3801D + FA77D65E97D72F404822AE6B65CB5021DF8A64B108331E0E43F629B4BEB698C1 + 71B92411D71EAB032FBB87A0399D83E5D2644CBABC18E421CF5EF50D91445D3F + F302A3650C599B32F1E9CB84F06764741CE47F5D9FBFB140BA6429B237AE467B + A719E44C6D1B6DB8940F2E109E97E06FAF3D315C6BCFE581F3075153670029BF + F58232970B705EDBF54FAC2EDD01A94414D3F5FE5B0D58C937E84A74B851DF09 + 5276534F992B87E1E642F312F48F4CA2F96333423400F1D47AC1F59E510DFD70 + 0352164B901658858C1F27404E695A29A32CC445A62B6A9006E71148162D40BA + 271B290B53614FEAC0CA0DE9A0240CA76306E2EFEB404E5E7F4A992A05A6D960 + 1460F38315C8DAB50503269B30D84CBE052A0A63D63F8BAFB609C87EE78094AA + 9FD0C6EAA3A86CEC8E02B4390BB067DF6EB03E16817000248982F37118B68C22 + 6D7A3BD6F80E80945C6DA18CAA084E4F74826DF519D87F3017C1905F00444056 + D320380F77DBAE74550ABB50ACD251A6E638944DB113E4CBF30471041201983F + F483757BE700C7AA1F53ADAA183F6324D8A995417148C103F804211EC283BC3E + 2F4CEFFBE075B3E50EA5F311295236C5595BC0965A07B7682C4685FAC361948D + 57B95AFE006CA64F46434C9A0C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002444944415478DA95925B4893 + 6118C7FFEFCE47CCA028A21283AE721535D6457517E1952521A5999D2C6FBCAA + 1CCE4326A56907BA096CDF1A16855BA3651695686A691A68A60B65D0AA2116C9 + 64B3E6F68D6DEEEDFB3E28B2CDD007DE8BF739FCFEFF071E8205A2E45A1B4D95 + E7927DFE6024DB519337CBFFC94280D3575A69D3D91C44E3F4EF61F48E7AE1E8 + 76F50742D1BD3C842C463563753A4A720C9049C5F839CB62CCEB83BD6364082C + 9B4D16ABEA7C3D8E4BC57B90AE91612A1012202DEDEF3E90A5A8BE19FD02836E + 03863F7E177A3C9F274096AA6AEF1C81266D1976EBD6A1EDE510C8A90627BD55 + B61F6C2C31CFC1FF541B4AF7818DC6517DB315A4F8F2436A36E6E28CB9E7CF70 + 6DD12EA8E56241D5327007B75D359CABB9A435D36826C8893A0765CA0F20C8CE + 6F78EF99C2C0F824DCC1760C46CCD0EFD8C641D59088A4908AB92792C1E6B481 + 1CBF68A78C290FE7981EA40A7ED7EBDD1598D6F661BB612B5472152462190790 + E2D1636E8563B52D94A9388899703C2580DFB5A0E9287CDA5EE8F49B04003FCC + 439E3D7D0E5274E13EB5541E82D1F22A25409DD185076E061BB7644229578226 + 8800E0419D2FBA418E9CBF4799AA7CF867931D340FDF80D575156BB356412153 + 80CC89F0C93521DCFF667D16DEF60C821456DDA54CF56198ACC90EFA837508AF + 74237D8D16848AF06DCC8715333BF155DAD5A8D428CBD8101B250595CD9C8342 + 4CA770F023E247E9935CF8559360FD11C4C2F146AF2960E46BEBEB979FA48944 + 94E49BAC294FF977C448081E850D01C9B8C95B1EA8FFB7FE0BBE1B23158EBA00 + EF0000000049454E44AE426082} + end> + Left = 40 + Top = 240 + Bitmap = {} + end + object ImageList120: TPngImageList + Height = 20 + Width = 20 + PngImages = < + item + Background = clWindow + Name = 'Cancel operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001EA4944415478DAADD45B4BDC + 401407F0996C06925DE32D482BABA22208C50BF8A060E943BF4C15DB27FD1CFA + 228A7E9A7D1005A52FDA2208E265455444DB6EBABB81CC26FE67CD2CE324F102 + CE4B3693737EC9D99939348A22F29E830A9052DA9A58779C2F11E767DFEBF58B + E712D76CBB9F9AE6E082E76DC9B9A6A5821B4E61D1A2C6721091BB300CBFCE55 + ABBFD2B0CD4261DC308C12A3C4F5A37069DEABAE244081D9C0A619231EE6F603 + 9E8A4A6C9299AE83BCBD2020F5186D81EBEDF9D90235B7678059F1D7DE866102 + 55B11EC368C6F9C8DF055A8DF8E7854A6DA7096ED8F6A0C9D84F355047C5BD8E + 3D89E17CEA5BAD566E952CDF3E9192708004F13BEB99AC22B128121D43A2AB24 + 22A379D5E77E6B7F490254D14F66CEED560075DC033BE48DC4A2A5822A3A0AB4 + 4B43FF003B4AC15E058E00ECD4C0BF008FDF024A6C3867B81D1925FF037AD208 + 5F2E5960D81BA52160ED0A568917459F3B054AB216456203C01C25D143625924 + 62643ED3B78DD8D806367611096D4AF9FFF1EC324E208F3BBB9419A36E6C71F4 + 2C1CBD22DE6EC6C135CC5F6925C92A7A81E6E3382E407CA9AF1E3DD91C189AC3 + 47A001026F344C5D34817E00CA707F0D2CD09B83DABE4CA00DB42FF242FB1268 + 0EED8B67B52F3944830D83A0FCC3F7CFC93363D5B286728CF5A536D8F71C0F95 + 71C8E88800DD1A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Minimize' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000002D4944415478DA63FCFFFF3F + 033501E3A881A3068E1A386AE0C018C8C8C848920D40FD8CF43590EA5E1E7406 + 02001CD843D9E9F4EAFC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Once Finished - Stay Idle' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000037E4944415478DA8D935D6C53 + 6518C7FF6F4F4BDBD39EAD5DC7D69E4A7BEA42C696A5C338495C086189218289 + B18E4DC9D61B05E54E6FCD4642346321512EBCC10BBCB1249A8D31A2518646C8 + 34C184804059521C8CF574597B3636DBAD5FEBD739BE3DF2116DBBEC494ECEF3 + BEEF737EE7F9F8BF04FFB1931A97DFDB4B141C01D1EC81A23483902528F20D85 + E0DB4820384163646C62E4A9C3F78DB97406DD8491ADEBB26EE7C19AEBC16875 + 2816F3C8A6D6117F1C4536B37EB3B051E88D8EF74736053E81FDD9EC6CB1591A + 1D35FF9E58896169716E9514D015FECE17AE013CA971FB3B6F34F19E972D367B + 55D0B1FD1C1CF50C467E58C3EAE31896A3F3B7C4C0DD3DD5CA27EEC1C95EA389 + BBE0F4B45585F1562DBEF9A049F57BBF94B09695B1381F42369D3C2C9EF74D54 + 02FD933FD2520F99384B55E0FBFB2D18E8E6105CC8E1E3C0B2BA975A8FD32C1F + FD24067C6F54CB7071474B075F1E40C52121B8F09113363383D1EF5771259852 + F74BC50216E666A23443673560C1B5D3AB7DBAA165088A2545F55F6961F1C580 + 1DD98282373F17912B3C6FD9C2C320C2011FA99A212FB4F20CA3C590CF8E9E76 + 334E8CC7F0C76C1A9FF63BD4F5E53B499CBA243DFBA8542A2226CE4AE1C05B8E + 4A20ED614393F39091E530FC368F83BBEB6886C0C8A5188668BC96018E9F1371 + 2F9245894848EACE63835C47895956A8E0CBD299CACBCAE9D8704254812EFFC5 + 3EBD9E1DB335BDA0967B7AC085EE56F3F3D256F3E83FF30039E61692E66174B4 + EDC48BEE16984D66A4D2293C12E710BC7F2F5D2CE47D91A1B55F541D0A7EEF6D + CEB2DD6B34D5FD0B1D14B07717A702CFFE2CE1EBE91924EADF43CFBE57D1D8D0 + 5831BC95BF57F0EBEF57D3B94CA95D6DAAF0EEA4A06CC34DAECE6633D0D2CBD0 + E3071C9012794CDD894322672074CEA2AD75176A59E8AFFB088542679F4DC9ED + 1FF310457751ABD7EF361839E8B6E9A1D16820CB32120D83D8F75A1B5896AD09 + CC643298BEF65BE47F63A7E50F76BE432FE4112A9C2E7AE8A0EF18DA8FDA7B0E + EC25655D6E6657AF4CCB9B473C3161D42ABED4ED75198C869A311BD90DDCBE1E + 8C6C0D78CAFA95C3D3FCA1DDDD5C33461297100D4BE7B698A14500C3CC081DBC + 89E58C95FD4B66119E89A6A9E23BB6042C9B7BC47A906835E356275560230B9D + 5E8B42AE88D44A06F1C5545A29CA7DE250FCF296812AF4B37A0F18CD277438AF + D3E50EFA2C288A3285923C2A9E589B2FC7FC03D5F852479B4AA72C0000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Once Finished - Disconnect' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E34944415478DA95936D6C53 + 5518C7FFF7AD5DDB7BBB76DDBAB5C5AE4B3319B0940963C6C50F68D444346AA9 + 4C97AD24C6285B48900F7E204193C5880B11FD404C64C6C49782CCC118D10822 + 1A3164712C738CC92456817673EBDBBAADBD2D77EBBDEDF5AEBC0556C8385FCE + 739F73EEEF3CFFFF730E813B460769F7BA3C848C6610640364B91C0411819C1B + 94091C1EF78DF62A7B72B8CF206E06D62D3D76A688E9D568F5F5C6322BB46C31 + 289A81246520A492988D4D41B8961C12E745CFD491A6F1FB026FC086CB6D4E93 + A1D472CFD3E7A643884C5E8E1322EA03DDEEC03D801D64A577EDA0D95AB5DE60 + AA28087A6323074B31853DDF27108F85109DBAFA47D077A1A1907CA2B2B5CFA3 + D171476D55AB0AC2AC461A5FBF69CEC79EFD6124841C26AF5E8290E65F0E1E74 + F72E057AFB7E50A46ED2718682C0D7371AD0D2C8617462013B7DD17C2E959C55 + AABC7222E8733F57A8C2C9879CB5D6C5062C5924081C7DCB06134BA1F3BB384E + 8DA6F2F9AC2462E2F2C529A5425B21A068AF76D13713344540CACAF97883538B + 8F5A2A2088325ED817C48278DBB2897F4711F0B98982155A1D2BAD144563B7BB + 024FAC66F1EE91107EF7A7F15E9325FF7D7284C707C7C3B77ECA66258482FE70 + C0F792652950F1B0C46CDBA4D1727867B315CFD6E9950A813DC743D8ADECA729 + A0EDF320FE1C1740E4B290496AB12198894DDEE1E1A72C6B6E4FA5A284DD7B6C + 8B5AADED319957E4E5EE6DB1A371257B5B5A3C83A68FFF818E8FC073620722AC + 1DDDEBB66341CA34077C9BBB17F77471DCAEB27253672C3CDD91BF870EAFEB3C + 6728736974FAEBD056071EAFE1AE9FFC53185FFE1A454B4F2B5E74D990E453F8 + 6602C9013F6D3A8333D2018EFBB0B6C6F9B6D1588CFE81F387F2A63A5EED73C8 + 2A0C717A93A94891BE086D7BC682F05C063F8ECC222564B1E15C179A136751ED + 5881FFC2310C8FF93F234014B95639B71A381DFA872F9E9366134FDEEA52A5B7 + A78A909963B45A5D57A4E1C0A8D4204912B95C0E626601F3028FC69143A1ADA9 + 01CB6ABB0D81480C6A8601A7D5A07FCCFF373F33DBB00348DED576457EEBDA57 + 9407D9AC5C9C7A65D1A2CC21651E828CC3818317BE3DA0DFB7DD6132EEAFB559 + 202ADD3BEBBF121744A9661BCF4FDF78CBCB1F8AF9A52A8A3CBDDE62AE63550C + 6845C1A5D88C1C48245EDBC6A7BF7A206097466357A9989F1F2D35556B280A83 + D333731449A8D79518347FCD25E50961DED3CEF37DCB067EA1D7FB1F2B66ABD5 + CA731C4AA585A8B8F09412E64A48F5C94738AD612C7D4D8A64A4A7975F21A7EB + 7C986676CDE5725258CA3EDF9E4E9F5ACC7FC2B26B0C24F1CB1A86291FCA647E + 7B300FF5BA9D7216636DE9F4E9BBED004DBF2FCAF2DEFF01BB228C8B905CF1DB + 0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Once Finished - Shut Down' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003E44944415478DA8D936B4C53 + 6718C7FFA73D875E0F9655B117296D181109161299C98464EC836C6A26965AA6 + 81661F1636B2E85C323571EC6296A031BB64970FCEC42F5B976840E46200C7BE + ECA25962AAB2962943192DB5B4080C2CD4C239A73D7B7B36318E6278BE9CF7BC + 97DFFBFC9FE7FF5278228ECB2C6EBB9312B11F946C2B44713D286A0262EA9A48 + E1DC98C7D74EF6A4F094A01E0D4CAE560BA364DA55EAECF29C7526A8B56B20A7 + 19080287C47C0C3393E3483C8C79F905DE39DE5637F654E07FB01BEBCD057ADD + 5AE38AB7CF4E4530111E99A6789407CE3B022B008FCBF2DDA5D7724DB62D3ABD + 2123A8B18A85718D1C2D971E607A3282FBE3A3D7839EDFB766924FE537743855 + 1AF682D9B62923CC9443E3BB3772A5B1F3AB281E2452088FDE46223EB737F8BD + A37D39D0DDD143A4EED4B0BA8CC0D7AB74A8DFC6C2175AC43B9EFBD2DC7C6C86 + 64F9576FD0E3D89529C3705E418929DD80658B14850B87CCD06BE538D93D8D1F + 7CF3D27C52E0111A191C27199A3301794BA19D7E3441CB290849511A3F57A0C6 + 67F506247811BB3F0D62917F5CB2D05D1F021E079531439375A3492EA7D1EC30 + E0C5622D3E688BE0B7E1383EAE334AFF7D037338D1195D3A944C0A880487A301 + CF1EE37220A9E133B9E69D2A358BF76B4DD851964D32045A3A236826FB6939D0 + 743608FF58029A58149BBDDFC214B80AEDDC04F1BA48FC28F6F29C70EAC0C242 + 50025ADC175D0A85BA559FBB41927BAADE826D1BB58FA54D73A8FBFC0E8C212F + AA7B8FA030C5C3289381359B31170E23924A6134998C27932947533CFEA3E443 + ABDB7E93D5ADB3AB34D9FF421BACA82C6225E0E9FE28DABAFD709DAFC7F3A200 + F3EE1A247EFE0979FE4184369740F54215C2DD5DF00A423CC50BC55251ADFB3A + AC6216BC6CB65EAF24D2D3D0A66A23A2B31C2E0FCCA0B4FF13BC327409F69A3D + D01D3D8AE85E27F2FEB8857B65A530F6F5E1EFF79AE1EBEAC488209C59EA52BE + BBD54689CC455AA12853AA5830590AC888B41491547F6E1F7670B328FCE5574C + 3636821BFE13965BB73156BC09EAEDDB91F3E147B85359812B3C37F6BFB613F9 + 0DA5AF9207B99F18A79C2C1AC93772ACEB3543354353D6D03D042D794F9CA00D + 066CB87113019311FD1C87653ECA1467B2B5C14A26CB5278E52AA60E1EC0E2C0 + C0D29AA6A606BAC34756CA700520ABFDE6599A7ED3EE724147EA3575E86D707E + 3F94151558FBC597D22583A4967705E1ECAA80A7954A2B93C50C6EA1698DB9B6 + 16BA770F83292A023F348499132D18EFE9C175D2659EE34B560594A01ACD4B8C + 5CD66E93CB35691FAAC83B4F88E2920F39245D6FC51EF6AD1A988EAF954A1BC3 + D0C708EB65F2264877C410615EE679E1E4C18585D1F49E7F00065C8D261FBC99 + 170000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Once Finished - Suspend' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003994944415478DA9D936D4C5B + 6514C7FF4F6F4B69E92D659597DE8ED28E2CD3651692D56521CB9C98CCC19265 + 95C15CA09F16952FBE246AA2A2C974D95BE2FB178C99895BCD5C0A0CA219E08C + 5BD8168D041D76064D0742DBD016B6A6D0B5B4F4B6F7FAF4EA3AB165219EE4E6 + 3CE7DC737FF7BC3D042BE488CCE4B0B61011874064DB208A9520640EA2302A12 + 7CE573BAFB688C800708B977E05A5D2645B1A24FA5D6DACACA39A835A560E40A + A4D329246251446E0790588A8EF149BE25D0D3E67B20F01FD82F95C65ABDEE21 + C3AA7F5FB813C4DCEC5498F0B0CD9CB7CFAC023C22AB71D48D567096AD3A7D55 + 41D0B3BB58184A191CFB6611E1DB41CC07A67FF63A7FDD56A87C52D3D1DFA22A + 617B8D96470AC2B83239CE3E57219D5B3E096131216076FA7724E2770F78BFB4 + F7E5031DFD1769A9CD25ACAE20F0F02E1DDA1B58B8FDCB78D9392FF962D108CD + F2CF41AFD3BEB75086B3D5B55BB8EC00F25E1282DE978CD06B189CF83A8C6FDD + 31C99F49F3F04FFD16A0191A0B0179D346ABFC9E43CE10A433A2747EAC568DF7 + DBAB90E045EC7BCF8B65FE7ECBFC936ECC38EDA460869C7913C7307274D9ABF0 + C4660DDEEE09E2474F1CEFB619247B68FC2E8E0F84721F65326904BD9ED08C73 + BF211F487BB8AEC2D8AC52B378EB690E4DF55A9A21706C20882E1A2F6780CED3 + 5EDCF42520262310FC5790094F00A945BAEB62767586D3BC78EAC60F835E0968 + 725C68552AD52E7DC57AA9DC53ED26346CD2DC2F2D9C42DB07B7202E4C42F8E3 + 0CCA5882E3AF6F85C5C462EE4E02DF5F0BE0FCC0549CB6C33E3632F89DB48766 + 87F506AB2BB7AA4AB47F433BCCD8F1302B01BB2F85F0C5B007E2F8478090927C + D55C093E3EBA1D5AB648B2273C11BCFACE4FF16432B9596AAAF9997EB3588431 + 56ABD717D3D2B3D0CEDD06841652181E8F2036D10F323FBAA2574D8DEBF14AE7 + A339FB6CCF2DFA4C76E7A654E3705988A8B820572AEB8B552C14454AC8643208 + 8200C6FD21081F5D0164640483E79E92745602A125385E18F1FD67ECB4FC8EBA + 83F4421EA28B63A32F0D5407CB7D9F57D101E4AD48CF678D28D32973F693AD43 + 425E5021B1EDDCEBA53B6EFA1F19AE066CFE94DE9AE7FFED6BDCC1E1CD17EB72 + B6B37712675C9ED36B02D66FDF63962B999B3458DAA7CA7215BA4F36AC98F26B + 4747E3B128BF654D4029CBC79B9A00994BC716694E76D9B071432982734BB87C + 3D8073740F93CBE9D6B191A1A13503B362DDB9DBA2248A3700710FBD13D554FB + A91E5E16F913EEAB97A6B3317F01E53E6069D52DD0500000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Speed Limit' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000042B4944415478DA8D940D5054 + 5514C7FF77717719BE3F4661011DFC08DADD8030688C80A5069B021BC656CA6C + 5231AC81190103F9C855986151F003262C1CC2B2C4198B061C02AC99728CA592 + 5AC088AF5003C711569315307759D8E5DDEE7B280A11E39979EFBE3977CEEF9E + FF79E71E82052D66495894430244480048380195F15E0A62606F3D38D4B7B598 + EB811F6DF323C97C47B8EA9557596059B052B13A3AF239C80303E0E9E12EEC19 + EF8CA2AFFF32743F5DC41F3DBD7FB18376EB9BBF6DF83FA0282C2AEEA04CE695 + 9DB2733B42572D85E8DA6F20437DA06323C0A40D54E202F8C8411591E8BC398E + 8F2B3F83C170EB505BCBB93C16CFCD01325889521198ADD9930E17838EC15A41 + 2D5660CA36B3F2C0FB0FACD3A0412A989E57437BA41C3DBDFD3C346716B83632 + 6E839FAF77C3D1A2FD70BBD10072FB2A2803818128EC411DBD19984186074047 + EFCCF879F00A394C9B3290B9AF10C3865B096DBAA66F88F003548E7D070A3E58 + F3B4CB75347FD788203F57783ABB627A4D1C382FF923425875AF7480367ECA0A + 6A14A0E4D9F5E856C6606FFE8101BDCE1448C2A3E35F63526B8B35A9105FFD1C + 63461392CB7E46705824DEDEB6033E3EB2FF36C138837D940B8CDC06B5721069 + 2AB0B7B21ADDDD7D6A12A68A3FB3EBBD7736C7ADB5839DB19D499DC60D7104B6 + 66683136368EF5B1B148DABE0D2B57FACF8576FF0AEEB856A831793101E7BD15 + 283F7EE24B3EC3FE8A0F4B02568B75209611D069292CFEC918181C44D28E644C + 4C4C8010821762542828C887BD547A5F3D05CD7A0B1CCB92782D8721A308A9E9 + 3997F90CFFF9EA8B4A270F4B0DFB7B93E0EC7C31E9192FC4B4775CC2AEB474D8 + 6C33FD5B527C50003F30EE501E687B2B2096C27AA21EAF6FDD794F00D69CAA72 + F2A0B5808D012183C5F9E5D9A0EF7F388FFDF905707672C2E9EA5358B66CE943 + A0760F38FD45101E78FADC0CF081E427641D20D3A3A09C146649E29C72DD3399 + 20118B2191481E3A9964DB960DA0BCE4E5FEF8BBA81C2969D982E4336929C99B + E3A21C20E6FA5887104C2E89818DF86131A32D1760CDDBCD7712EC12B7E042C8 + 3A1CABA8AA11DA263848515BA44981FDDDDA9962137B585C37B155BA30CD6CC6 + 54FC4BACC98DECC28A20A96B447E750D7EEFEC4A141A3B3CDAB1BFB850B32A44 + 76137677BB60730A85D53D62D10CB99355B01D2B8348FD06AEA8DF44EE3EED80 + D9784D2E5C013E4B36146A4B8BF3E13235089B5B101EC7B8863A4CA86291A929 + E487845AAF6BAA9B1D0E0C7A58210FC8D2E4BE0F470787C7029A98746D71293F + 1C4AD970C89C336D988918B4C4D7579695FA6E129E523CB928ACBBF74F547C72 + 12434386232C337ED270F38182B131A62622723834246865C4BA7001ECEEEE26 + EC8D8E8E09A05F5AF5B8D4D935C80839EDCD4D5F3F1A4F163A5DA9544A1C3C57 + 6C64DB1B2921CF100A1FA155088609A5EDECEBACD978FD6C4F4FCFD4FCD87F01 + 8D17C9684656C3C10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002F64944415478DA9D94594C13 + 511486FF6B058440086EA01189C6441F8C2F3EE00A21D1D40D6593B445AC0B2E + 89BE28B2951D54E24A3471A10544824128218437352246024136058B112A9445 + C2525A42DB19A1CB38D31222A92DC4F330774ECEBD5FFE2F93B9048BD4E507B5 + 8CE329699CD4D17C7956B49EEB188601590C78E95E0DF3FCC609CC9A1672B9AE + A1730095755F1BB586592B7449C08B77AA9982C470D0468BDD6C5A4F43A19A40 + C5BB8E76D0BFF9059942B51DD099E2321E0F6EEE1ED614D9E2FDF074E3614C6B + C03716FAFA4D9B42961CB9DD0EB898E2E7EE215C381E0857171E3A946368EA1E + B6CE957D83284C892276C0A528CAEBBAE0EEE90932773C68C746D4BE6F45516A + 3421FFABF8A1A517D74421D67DF4AC09194F6A509C2E20C4A96217ABA870ACE8 + BD6AB5F53D49B81789F97294648808594CB19B4D5359D7C92A7AD929DEBA1A3E + BF3729BF122FB3620889CBAB62D8AF837869FD02D852147D7CFDACFDF5E83D48 + 795881D29C5842CEDF9633B29428E868B35D42678AF1F965A036D560543784FC + 63723C9635A02C574CC8B99B158C4C128D04593D1C9587AF02AD8A1EBCB872DF + 96D048214C7A0066DF11B879B962F9B817FCC7C4A8CA8D27E46C4E39234B1560 + 8A323904EE7ABA012EEE3CF89B0F619BFB49A8563C82CAACC0CACDDEB058CCD0 + AB69504A177C97F41022CE7EC514A6099154F8D121B05A1389C0E09DE86C55C0 + 133E307BD1F0DBB206668B09468B1163CA4918D4F4DBFEE4493E399D59C6C8D2 + 45D0E81D27DCFDCC0F21FC20D0333486077FC12F60ED3C6CE8C708A6C6A71BA8 + 19EDE1F14C464F62D34B1969C629A4163B4FC83F72102616606241DCCAC17E76 + F7433DAAB1C226B260BB6D62D24A18697A2CD44E12064BD72134F4E83C8C5B95 + BD7D18EC1B1EA166345B3998F567E0802249319B508C099DD12130A4703D22C3 + 22E692D9A0F40C85B6E62FA07486BB2A8936691E284C2E727223DBAAC93B0182 + 08C15F096D2939684B733B0C3A2A6E40A2295AD205CB55409ECF2702B2EFDF53 + 66967D9C51A568CB39E01FF923DAE875D88D8C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002E94944415478DA9D946B4893 + 5118C7FF67AF3A2F9325491733B532B3903E455251D027E94B29DA705EB2AB5D + E84B65DEE78DB224CC4F813A1513A3DCCA6B4962792931C8D2F2B202CD3BA66E + 69E9E66C534FEFB626DA9C931E7879DFC339E7C7FF770EEF4360A12E655652F3 + B3A4F9C7B4DA4F9A2250EA469452104BC08BF7CA6976D40968E6967375A3A6F6 + 0148EA3E374FAA347AE89A809119A534273A006AED82C9DC94528DAE7E394A6A + DB5AA19EF5CB49162A4C80AB297218065C3B7B7D8AD488C3E071198C4DAAD0C9 + 429FD47CEC12C706FA98002D29BE970DE1C2715FD8583368EB19C33BD9B07EBE + A77710797141C404B81645695D07EC783C90BFDB8FEC7543E5EB0FC84F1010F2 + BF8AF52DDDB8167254BF4EAD9943D28372148882095955B18355EC32AFC85FEF + ACFF8E111E4274961485492184585294B1692475EDACA2A389E2EDAB018B6B63 + B2247898124AC8F93B4F297B3BB891DBB00CB61645A78D9BF4E3EB828388BB5F + 82A2B47042CEA54BA9382E08D3EA7993844B159B3E0DE3CB088305BAF2913B72 + E7D12E0E24E4ECAD122A8E17E0A6B801E64AA79853DA8AC1E975D8B7FF006CB9 + 366038040CC331BCD9E7595939FA8AFC093993F6988A1382F17366CE2CD0A828 + D73AA14FCEAC082DAFA8300023521FD1BC442162F21ACD028DB718171980D377 + DFC296EF02CF9D5E8BE974D0AAAA4A03F0547231158B4230A1349F5057519952 + 4C912D1853DB63D76E1F58FDA35C5DFDDC000C1715D1DCA4302414984F78D9DF + 178109D5B0E66FC50EAF3DB06274100E86FABFC1DD639B5EBFE6E50B033034B1 + 90E68AC2A158256154760B7A145670F7F4669371C06113F575CB303E3AD2CBE3 + F1B6EBCEB4B1BED6000C892F601346403EAD350B0C4B7F03EAE00AE70D9BD9DF + 9160A8F72B14E3DF9B6666B5C7EC6CADAF383AF032542AA58605728930367F95 + 8E6CA8DFF31C74CAF97076F5865AF50B138A513D4C2E35746A8FB032E1020533 + 50EC5F6CB1C11ACBE5A4C4CD866BFD8AED14BDAA596D9011B6B4741DFB0F6993 + 87E8E4125E890000000049454E44AE426082} + end> + Left = 128 + Top = 240 + Bitmap = {} + end + object ImageList144: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + Background = clWindow + Name = 'Cancel operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001E94944415478DABD95CF2FC4 + 4014C7675A87C5B6EBD74142C44688A422117177E3AF70C499FB0A77CED6D15F + C1CD5D44222442840889C362B7F5EBA01DDFA95666A733AD8DD4BBECF6F5BDCF + 67B6D37D43196324CFA0FF26A094869F55CBEA2394EC32C20E97DD97B5DF40B6 + EDE23A25748630B2B0E479359EFBE18A82104ED8C1B0693A75E49F03B6B5EC79 + ABA970CBDAEC36E84A17FA6F7CFF0CA4592E4908766C3B8497011F6D6B233EF2 + 479F9FA992183E8D7A13824BD45F479245D7AD3509AA256BAF6C987363288E23 + 4D22C3E3B8E092C0DF5F6A78F3B260BD9B1A15B94125D1C17F6A59B001C15A62 + 0F321B21E1D759357C21CA4D8E57D705C09402700C000FDDBDBAF02BB5025132 + 699A09100F3977E2FB4DF04C412C2941322149C4E0F053C01B8A972053104B6C + 481C480CE97E80BE33C05DCD6BDC92605C2338FF8B80C32D4A56461570517209 + 89C7486B8F88C38B808F48F020AA95735790BC4892D4D7B413F0B2028E31107E + D7DD7B15244A410C1F52006E2300BFCEAA51FED1F8A8E820B432681889C6BB20 + 206FC2EAF8423A20D1D612961C157CD8F55263AE074DE273BC47C3BB6213B9A4 + 1D9201D48BFBF784FA471624875D3CAE21704A68E2F9070D5C96F4479206EA21 + 508F6BF1C081C0F940FE23052E4A0A9014BE05FA0327F72333AFC85DF0052305 + FDE0031CA4D30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Minimize' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000002F4944415478DAEDCD010D00 + 200CC440EA5FF4830758C89656408F24AB32040404040404BE00C095787E0C07 + 5ED71FD84ED953D17B83BCD30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Once Finished - Stay Idle' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000045A4944415478DA95966B4C5B + 6518C7FFE7D63BB4E5B2425B462938988A312ECE0C981B4EF183C962D5B9B841 + 4C10DD34E0124D34997EF08362F4831A8873CC7805756C0B5D8CC66C8E6D8CCD + E044B300CB601BA35068B98CB6EB057A3DC7F71444C8DA753C27273DE77D9F3E + BFF7B9E65048206B775BB75134B51382504E0106714D0026405117045E681FFB + C1D289BB146AF94BDE4E6B21CDA1452A576C5367E64099A605CB49E37BD14808 + 01AF1BB75C9308CDCF75F211ECB1B75B86EF1AB0F6858E0A9A657E5E6328D06A + B272C961A9847F1004019E9B4E4C4F8CB8F9686CFBD84FCF9C4F0930561F2962 + 29E9458379BD56A15227555648684839C01DE011F079E01819744785D0C6F1B6 + E7AFDF11905F63EDCECE3555684858921A97D2F8B62E0B69721AF5DFCF62783A + 12F7E4E6E46897ADD5B23529C0546DDDCA49E5678C45A5A0905CB63FA4C4BEAA + 05EFDE6E77A1772448C2058C0FF723129AAFB4B559CE260490D37F95A9CBAB55 + 67E8EE98AC965A1DEED171F0CCF1D8D1EC448C17E2EBB75C53989DB27F3DDA6A + 7929B10735C7AFE80B4A4A24125952E36B33397CB7571F7FB6F6FAD074C2B5B4 + 170E07C55C0CDA5A9F5E9FD8836AAB2FAFA85445D37452407D5526763C921E7F + 7EF1E0046C33E1A53D9EE761BFDEEF1F6DB3A4250518CDF72D0136162AA05630 + 3835E08F97244353B0BE910F8D92C15567187587EC2B0C8880F11B9793034C35 + D6A135C6C2751C69A8AC3416D637CD105BE0B74B5E341E9FC2A6754A7CBC6B21 + 3C9FFC3A8D8E8B9E150622A401A7C787AF924A2A4E9A6492E05A55BA96D4388D + 1F1B0A90A3E1E29B2244F4A68C40A231E0A98FAEC11F8C2DC49EBE8C00771441 + FC039E71918C0B0E729FA362B126DBBBDE9E65808EC7C838E8247D105FD011E3 + 2D2F1740A766579CE4F48017EF1C1E873895BCD24F41697EC70325A530E41AA1 + 542811980B60C2398EBEC17EF803BE03A3217703DE03BFD4686A6D76855C99BE + 0891E0E02B66E42E7A22CABE6F6CF8F39A0F5ED967501B7BB065D316B02C7B5B + 48A2D128BA7ABAE09C747E3EBADF5DFFFFA8A0B95E4D66AE9A5B2CD71C0269AE + 33C3A095A07F6C0E7B0F0D23CC0C209CFD16AA1EAF02CBDC6E7C09128BE2E4A9 + 9308F8E7CB570E3B8EFA459596A9962954F135B98489375438CAC7DF7DAA0F50 + BC6106269309A9C466B3A1AFAFFFF08AE9A0AF3E522CA1B82F1996DB2C95AB20 + 7A4333CC4239C662F066EDC6A34FDC0F994C9612100C0671F674B723E1F8C9DB + 75EC499A619F2509AD14B98BCB0EDC5B5758595541251BE5CB4520D79913E7F8 + D49ACB24FFC38C89872B1ED44B65D294BAA160087F9DBFE4581DA031E3A8A9C4 + F85CB63E2BA5EE8C7316B62BF663AB03BC9F51265172178A3798496E92CF2E3E + C663E8EF1B080722E5AB022C78A13DA0CA50BC6A28D6258488C62786A6E077CD + 7D41FAE0B5550348774A4C126D132B63F768F42AC83532B0A49CA3E118E63D41 + 781C7E4483D1165BD8FD3AD10DAF1EB028798DDACD0C4535902154267EDA889F + 35E4F78F982034DBF7BBBBFFD3FB17D964A7B438D2056A0000000049454E44AE + 426082} + end + item + Background = clWindow + Name = 'Once Finished - Disconnect' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004E14944415478DAA5566B6C53 + 65187ECE393DEDDA9ED30B2DEB7ADBDAAD6C0C242662B8890292600C11298813 + B6C538275B14255EA22686C4186222266AC4CB868A970D6488947809621C7724 + E098C826C35DD8AD1BAC6C6DD79EAD5BAF7E3D9BD3C51501BF5F5FDFF7EBFB7C + CFF7BCEF9343618A9559E85A4ED154011289BB28C09C8C25801E50D4A9443C51 + D3B5CB598B1B5CD43F7F580B5C39348B4A995CB15CADCB8092D742C2CAC45C34 + 328AA1800F83DEAB180D0DD7C62328EBAE71B6DD3040E6FAFD8B6909F34DBAD9 + AED5E88DE4B2D4947F482412F0F75F81A7A7DD178FC656757DB9E6E47F02588A + F63A2494ECAC393B5FABE0D4290F2BA434642CE01B8A6328E8476FFB255F3431 + 3ACF5DFD70EB75016CC5AEA37AA36D89863C4BCAE2321A9F95EAC1CB696CFA62 + 006D9E88C8A4FF6AE7B18E2AE7D29400B622D75256263F6271CC0185D46BD51D + 4A6C5E31C6EEA51A2FEADA47C87301EEB606444643CB3AAA9D47A704C82A767D + A233584BD4D30CD715ABB2C480190616FEE138D66DBF82583C21C607BD7D18E8 + EBDED959E57C7C6A06C5079A4CF69933A5D2B494C533752C3E2F37897B575D10 + EF1EF24EE4C2E191A416973AAA56E74FCDA0C815B43AE670344DA704D8B44287 + 75F355E2FED18A1E745C0B4FE4E2F138BA5B1B84CE6A279F12C0923D7B02605E + 8E026A05839F1A05B125199A82EBB92C68940C9AAF8451BAA37B52812480FBF2 + EFA9014807FD916EC9C965C940E979095CCF6723390207CF07F0FA813E2CCC55 + 62DB86B1E779EB7B0FF69FF54F2A102103E871B735934ECA4B293211B8845369 + 498FD3D8FDB41D191A564C2641926C161190680C58F9460B8491D8A4028238DD + 7DA945CE2ADE7F2FB183DAE9469B183090E2954FD861504B261D3CDC18C02B7B + DCE27ED6F93D705C3A88DA95DBD021849236B2BCB36ACDE164EE55803672DCDB + 8C8459331A0B1788AD4F589C506BA72F962B55E32052546CCC86719C49726DFE + B403675A829875E12BAC6EAE86C361C38F8D3DD839FFE5330DFB4A168C179766 + A8B89D33726C85269301C78F9F39F9B755D06C9D466754B3E3ED9A4140B69766 + C3AC95A2A16B18E53BDA44D11FD9B50E0FDC66868AE7E0B9E6C5A9F34DAD11BF + 6F2E43F496F0FC9EFC5CFB4ABBD5841367EB237E417870B2D9B1D4771CAF53A7 + 293831269732E24085A3F10926FAFE66ACFEE1452CC9334343407A3D03A8BBD8 + 723A99BB3D2F7BA1255D87D3BF3525060683EBCB05A166923B988AF6E64929F6 + 2346C2DE2D937348B2A11966AC1D633144C8508D8604E8065ACF959E7CCDB2C0 + 9165D0AB797479FA2121E78C5A0D7E69B98C3EEF60799920548A224FA5BC75C3 + BEFB6846B29698F3B224EE78B8971C3F128F45BFEEDEFDD0A14AB93C93622507 + EFB45967190848D298EABB7AD0E31DDC426EBE75A28B708BEB3D8E9BAD64E8C3 + 73ADA674AD7C4CB726C2A4DDE7FFB02C203CF9BF00DEE7E58B14B4F4DBF919FA + 691CCBA2C51F80844CBC9D6872C1EB837B68786B7940D8724B001FA814F72B69 + 76DF02AD5A9146DEBD7338848B41C195CCE52815CE5CA502F5834178C223CF96 + 0586DEB969804A9E73DFC3736639F1AEDE70048DA1D0B1DEA0B082A4A2469EFF + D822651FCB4F93E1DCD0706220122DBC69800F55CAC269A0AB321986BA108BD6 + 4703C292A78863FC95AFE0F9373318FA0513B9C0AF91E8CFB7A44105C71590C7 + 2536406D2C0B06FBFFC552C53D43BE73D612032BFE13F758E0C1FFD6AAFA0000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Once Finished - Shut Down' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004F94944415478DA95567D4C13 + 77187EEE7A77A5D0A3C582A5E5C3020E21C664F30F373EDC041DC6CDB9B14DC9 + 1C4CC3D84482C3E996E9F68FFB6326F30F1331A268E6E67453C050353A749381 + A8CB66301AC1E01752A040F92A85160AA5BDDBEF4E6412A9C337B9E4EE7D7FF7 + 3EF7BCEFF3BE390AD358F487E6A5144D65411453282042F289400728EAAA2888 + 656DBF64566386463DF91095658EA359942A55814B35BA7004F1216058A51CF3 + 8E8F6178680083761BC6DC23D5C23836B4976536CF1820FA83CA549A519C991D + 1113A20D35908FA5A67D41144538FABAD0D3D13220787DABDA8EBF7BE57F0122 + B3CBE73294F25A446C6248A05AE3F770204743C90203C302869D0E74B6DC19F0 + 8A638BACC7D63C78268029C75C1B6A30BDA62565F19B5C49E3A7BC50F02A1A85 + 3FF7A3B9675C66D2676BBD64399AB9C42F8029DBBC8455AA6A22E72E0005FFB6 + 6A61108A321EB1FBAACC8EFA9651522EC0DADC80F131779AE55866EDB4007372 + CC3FE8F451B99A59FA6736AB34578F17F42C1C230256EFED824F1065FFA0BD1B + FDDDED875B8F667E3C3D839C534DC69884048E0BF09B3C5AC7E248BE51BE37D7 + 3B517CC13E19F37846A55EDCB11C7D27717A06D96667D4DC056A9AA6FD021466 + E8B0FAE560F97EDD810E587A3D93314110D0FEA0C1D57A2C93F70B10193B7F12 + 60515C2034810A5C6C74C99254D014CC5BE6401BA4C0BD2E0FF20EB64F492001 + 581FDEF60F4014747776645C3C4B062A946760DE1A0B6904AA6E0E61E7A96E24 + C50761D7DA47E5D97DAE0795D71C53128C9301ECB136DF234A9AE7B7C9A4C1B9 + EAE010A2711ABF6E8A41B89695831288C4269980787DC09BDFDF876BD427C7C2 + 6C8D48BC7102611D371034DC2752A2D02952A813E02B2E1872FFFD0440653A59 + 07D5610693ECD093E4A59FC440AF61A67CC99F8D43F8E684551A65BC52B71B0B + 6F55C0A4502094945692C718B97A49B92C3E1F462096D8865C9B76900ACAD227 + 2C2E6B42C2525541C113201C0E7C1A0BC30413C98A7EB4E09FFB4E2491E4A98D + 957849A5823A3D1DEE9A1A18CEFD86AEB75622202919EEEBF5B86EB7A35F14F6 + 6D187215FEB72A68B65EAB3368D809B9861390BD79B18808E1D0D03682FC83CD + 7259D654E623352000C68A0A30C608397154D31DB4272620AC643F189309D6D7 + 97A1AEB7172ED19B3275D9B1D45935AFD30404AA659F8A53C803E5F10AF273FA + C56FB1D27209F3F3F2A0D9B2159D694B64FF63002229186B6BE1FEFD0FDCFC7C + 336EFBBCE553B68331BB7C1E47B187140CBB58A952436243933ACB7224B55D77 + 3C0B2BBC4EC4549DC7C8F92A0C161743A1D522FCF419D8DE5E059FC3014DFE46 + 68B76DC3DD39D1A8F3783AA75D3F516B4F2EA715CC7BA4A36912EE84BB73FBE9 + 7571192C43453734C0BEFD6B0C9F3BFBD4BB2AD2177D5939DAE7C5A3CA667BE6 + 7E7BCA4A7975C7AB1C679418B86B6BE0D8B5EBA933DACD9BA1292AC25DD20BBF + 0CFCD9015E5D319F61DE4F5CBF1EB3BEDB89AEE519F034354DC6B9F878182E5C + 808B30B8F5E51768F47A4F3E17C03E5E95CC53CCD5148E43F89123502D5D06E7 + E1C3F03436804B48044F9AEFB558607D6305AE10A93A9F54D18CCB14AC2E09A5 + E88D2FB22CB4B9B950E77C04C66080303888E15366D8F7ECC10D72DF270AFBC9 + 1C143C37C00E520903AF2E5651D48658A2309D34C964798D9209EF27327D48D4 + E616C5D22EA7EB3372D6F3DC008FAD84E7172B287113F99F4926DB3182AC10F2 + 5B83BF7C22B5B7C0E9BCFCF8DCBF2F2AF48A8697B5210000000049454E44AE42 + 6082} + end + item + Background = clWindow + Name = 'Once Finished - Suspend' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004774944415478DA95967B4C5B + 551CC7BFF7B6B7A5E5515879B5C0788F1142962CBA455E1D62F08F268BB80119 + 82240CDD66D848B63F8C59FC43FF3051A34CD039E6744E70022E14A74034A23C + C65440B608C4B951DEE5519EE34D1FF77AEE2D433A5A1C27697ACEEF9CF3FB9C + DFB3A5E060EC7E499742D15426382E9E0202781907184051AD1CCB550E7D9DD6 + 80271CD4E64550A62E9C66502A95C953144A7FB8BA7B41CC48853D8B790D4BF3 + B37838338EB595E506D68C13C39569FA2706EC3E569D408B45377D0342BD3CBD + 55E4B194C30B1CC7616E6A0C4643FF2C6BB11E1EFAE6C55BFF0B08CCAE8A1053 + D2B680B0682FB99BC2E961B9848694016697582C2DCC61B4FFDEAC855B3B3052 + 9ED1BB2D202447D7E8AD0AD17812B738552EA5F165BE37DC65340ABE9A86DE68 + 162C991A1F6C1A284B3BE4141092AD3BC44865BF0646C48282F37178BF2B0A53 + 6DD6BD5E39838EFE55E22E6044DF05F3DA4AF240795AA34340708EEE73A55F50 + 9E6297DFB6C12ACDF343A41F83B96516E92563B0B29C207F383381E989E12F06 + CBD28E3BB620A7E66F75E8DEBD12898B53E5BB950CAE9D540B735DC7028A7F9C + D9D8339956F958DC1B287B21DAB105D9BA85A08858379AA69D020A5295483FE8 + 21CC732F19303069DAD8635916C3BD5D8B83E569EE4E018161311B8003E17228 + E422FCDCBD28A4A488A6A03B1B0C4F5711EE8F99907F79D84E010F18E9EB710E + 2019F48F6F60F81E861494B7BB18BA7361E04BA0FEEE3CDEA999C0337B5CF15E + 96CD3D1FD61A51DD3667A7C04C0AD038A2BF4F3229CA69904980F3DC3CBC488E + D3B87E3A14FE9E8CB0C943786BE208C46205B4EF3EC0E2AA55D8E3E6076135DC + 023B474AC0BCC091378D92B037B316B6B8B3B5FEF74D80EA67493B68F0518508 + 023FA2BCF49550F829C4762FF9A57B1EE72B4678D560F5DF811BBB8D544D0072 + 3323A1F494626A660DED77275151D38789C9E58BEDCD75A7790F0AA94FAC6851 + 78F924C85C3DD621125C7A350CAA754BF8517875007F3C5800D77713DCF86FB6 + D791DBB91991C83E12B1716E9558F8E6FB7FA2F3AFA94F3A9AEB0AFE6B1534D3 + E1A9542998F574F5279092FC30047849D035B48C9397F5825BD053BAC5CFE70B + F721395E6D07C93BDB0CE3E46ABC7DB363A81FDCDC950A17B99B209349444241 + 992CACED506F15A899AE2D8040952BAE5E48C2E6FEF8FD4F43B870A5A7C2AE3B + A8B3ABA22414F39948CC244A656EE0ADA145225B3A5AAD60BA8A4059161DD64A + D9C71AA87CE51B6BE3D40A8E9D6A1C75D87E82B26E3C4F8BC44748409379EEBA + 78D467E84A3805C72DABE8AD83888DDEB5B1E6FBD47319F5EC76FD6DCB782A49 + 6B206E503BDADB91054E011AEDB7E4C2D1C7E56A7F39AE7DA4B18B415DC3303E + 28EDBEB123C0D349DA38E2A0D6C7E56F9CD9879404FB2C3A7EAE0513C695F81D + 010488467B917C9DE2E7FC8B738E46E2E574FB3A78BBE80EDAEE4C7EDADE54FB + DA8E01313131129932B898FC669F484954233F2B0A3E4A174C4EAF0A957C5DA7 + C7D8C472E9CAF4E0999E9E1ED38E018FC67E8D36912430DF0EE260FB6B63209F + DBA453957436D5B63C3AF72FA3B0B2E4B430B48D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Speed Limit' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000056E4944415478DA95957B5054 + 551CC7BF67EFEEF2585C601105C451414BFF30424028057AFAD805D141C132B5 + F191A64E31DA90844822866110992FF20913060A3284A0965A486AF2102DCB71 + 3435D0954681E5B1C03EEE9ECEBD202BF1183A3377CFDD73CFFD7EEEEF777E0F + 8241865FF04C7789443A8F52A841E04D40DD292576ECFE1140FF2420272D1673 + 6175F99947036990818409E1121D1C142BA6FAF9724153FD31DAD303CE4E4EE2 + F3269D0E750FB4F8B5A20A15D5357C5B9BFE00A5FC96FE407D0001A1B3C3A59C + 3C674ED8CC619111616010EB66DE24CE9493F5ACE9DBDB915F588CA292D37ADE + 6C7AABB2EC54F180808050CD1A2747E5AE84B80D64BCD738410A12ED6F20B5D7 + 40EA6F83B6B6024633A8C40618E10DEAED0FFAFC54A64270E7EE3D6C4D49A3BA + E696759565257BFA00FC82351A95B3B2F88B942DC475B80B246D5A70374E008D + 5A5013DF256C3003ECA2EC1E46BE6B7674070D5B097878E1F193067C1497C820 + BA88A79688808000B51BA794DED9919CA8F0F61A0B89EE36A4370B403B3BADC2 + C26C265D007DBB754D80582440540C30C90F7FDDBD8FD88424BDB9D934BEB2B2 + B45E04F887A8F745CE0D5BB57451348CCD75A83C918169139C20B750500B078B + E734583C7C40ED9DBBCC6E6D046E5E06CA8B405B98DB988514529035C980A717 + B28F1E13CE25B3EA42E96AE23BED4D0F4747A7DAFDBBD33985BD3DE4F772F0FB + B51B883F5485E8D089085F1E0F5B67B7FE6350F718389C0CAA7D2042E03E0E24 + 361DFA8E0EAC5CBB9E6F6C681B4BD8D7AF7D2D74FAAE9875ABC075DC87EC4191 + E8F3F29A7FF0E19E8B50281C10B5603E16464741A954F68534D483EE886101A0 + 172192B589804F20327665E27CD92FEB04C099F8D8981981017E90379D83A4F9 + 2660E66156FAA1B0A2195B93B7893A767676981B31074B16BF031717975E0C5A + 94057A32B7CB8AA0D72159FD312AAF5E13A2EA071210A2B9B57767EA731EEE6E + B06DC80531EA44806164342CF2E13874F808F6657ED3232697CBB1F3AB2F31C5 + D7D74AA8BB0B7ED32AF69E0544351292AF8F42FBA81EAB3F88AD25FEA19AD6BC + AC4C07E10BED5BB259A418C58D9DAECB4089547C7F475A3A8E1FCFEFD153AB67 + E3D3CD095680D1007EF12C509E01A43270B967D1D96940F492951001C7B2F73B + D8DADAC0DEC0CCE40DECB2A0C3611103C8BB5CC08A51DC27F138FFD3CFE2FFCF + B7A7E0D55742AD808E769817CE10DF233676E00ACE5901CFBAC81EA52016E622 + 0BB3809B019E8CE8D1E0791E172F5E82ABAB2B264D9AD8FB0CFEB80E730C4B36 + 16D664F418488FE45B5DC4CAC38F9B36AE7F2360CA8B909B2B20E56F09990F33 + 3701062E0843197C6A12F8A21382A9E0221782DB1087EA9AEB484A493BDB3B4C + F9C7B0692B163732FFC0304C0D5EEA36A838ADAE82F1BD7745AB850F93657D07 + 32D9C71AA62F04CEF67456296A0FEDCD20C241DB349D8284E583E04F935308CC + C3260F0AB0E4E7C2FC59123B605618A78740B63B131D2CD196BD1F43DB5A7563 + BB4B85E6C0FC7961CB97BC1DC54A723B6CEA72C43C30ABA60CC94596BC6FC167 + 1F842CFB38E0321C397905C8CB2F3A5875A164454FB1933ACAEEA46EDD2C163B + C277B29A6F3B24F19ED1D20C281DFB2F76A215C1EA0895CAA9306D7B12715139 + FF3FF1EED1D0D8840D1B37D327BAC6C8AB65A70B85B55E0DC73F5813A35239A6 + B3A8EA6E38431F42C3D9969A411B9E34ADAF2A2FC978BADEA765324B226536B2 + AC08CD2CC58279E1620D1A6C080925B4CCC293A57A93C1B4B4AABCB4E0D9E7FD + 367D9F975E1B2593D96D5128EC960505F891A040D6F447B1A6EFDCDDF49B58D3 + 7FA8C595CAABB87CA592F59FF623266367C2F5CBE71FFE57AB5FC0D3E1FBB27A + 0CC7D17048C81CB6751CA1F010D6598A68D9EF3D96B9DFF33C29AEB954FAF740 + 1AFF020DA279C72075AE730000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003AA4944415478DAB5D57B4C13 + 770007F0EFA13250D41012E32B9B2EBAF8C79C89C98C7F60A4ED10712082CF01 + 82D5A98D8F10DAF868A1211A8D5BE2D0D916019568966862D44423CA743E1215 + A39B5A05C1F8A42A28A8A5BDB6147B8F9F7727A53BB9969A65D7FCD2F6EEF2FD + FC7EDFDF35A50821F83F0F4A04288A8A7893BEEA5214B3A0EABB599256B156E5 + 0D9E91B2A3057E5B9582708B154F9FB8FA10D79B5FC990CF06182EFC42EC4FDA + E168F708486B8390AEAE5EAD7A1B1688A6922F470C8336ED3BC40E8C91BEFBDF + 07F0B8CD8596761AD79B5EDEDFA5D37C1B1188A692FAA636109EC3B6E52A61F6 + 6E5C6B6AC5FB008B472FDE60CFBA5954BF4034953C7DED4641EA640CFE622078 + 21EB1DEDC7EEA3D7602D4A0F0186EACBFFA992FAC697E038563ABF45AB464975 + 1DF6EA33E5407F951C179F9208959416A4F4DE6FAE3A83AA0DF3FA02D154D222 + 04E7FFD0B7124278E9BE526D2ACC15A7B0DFB82004E82B2F92729D1ADD0C1F16 + 8854C9CACA5FF128A6069A0959D0CFD88132DB49D4942E0E0145B6F364F7DA54 + E8F75E500C57AAC45CA892AE5D75FC05C39942244D4880BBD507CD981C743524 + E350595E0858BFA78EFCBE7E36BCDD9C2270D8BE0FBCF0CA9DB24A5649076787 + 1D16244D1C86D82103C0F3041D0F3A91E89E8A1BECD901A48CF012B066D76962 + 29CA4071C53945E0B4370F4386C76344570A8EE96AA4A744AD8981E9FC0A8C9A + 9484D88441C27E70E07871F01212F004AA9E199D3A09D0ED3C492CC573E1EA62 + 158169B69198AEFA1EF76F3723737C3E1E34C4E12EAC1837790CE21262C189E1 + C2E0F98FEF3E975F449C2D46679204ACFCE538B16DC881DE7A5611A8F52FC5CC + 59C908B00134DE6A82CFEBC73753BE46FCD0B88F33EF993D4F58F8E82EB4353B + C1314C468BC9592B012BB61F25B68D0BF1CEC72802C995A3A0999D2205314C00 + 5E9F0FF109713DA121C0437BF1BCF13526BAF3F1E7F6F2D0266BB71E21B6CD8B + 61B0D42A0275CC32A4CD49ED096265A15235C2A05D1E3CBEF78CE1183EDB51D2 + 2905F50205657F900A531EDE789457A0DE3F1A3F66A4CB02839FC5E1EE74A1D9 + FE50162E03F24B0F125BC9526CB49C5204CEF13F236B6EA62C34B8A16E9A86FD + 6683D0399BF1EF7019F093F100B1990BD1412BAF20FDE058E464652B561310F6 + E4CE3F778555B8CB1D2697411158B2691FB19AB5612B9A73682C16652FFA0460 + 7BAB129FAEDB7FDBFB203200118E1B899B913B3F57B1FF60552272EBE61D01A1 + 0D0E93B35C06F4F79FFCD58EC42B14A864F4731010F1975AEC30765A83C00782 + E327FE39CAD0880000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003584944415478DAB5956B4853 + 6118C7FF679B05E12EF6A1A220A5C020CA2842EA9BAECC822E66454566CCA8A4 + 0BE642CB54BA50107433B7595E22CB2808D45C73A951F6A1D40F593353B33435 + D3B255EA9C79D9D9DECE39B59D4DDD25A2E7CBD9DEF3EEF77BDEFF7938A30821 + F89F45B1028AA23C6E526657FAD00555354C93C8AC03E166FB0AC7F65570716F + 18DC1D965D2E7AF60ED54D9F5D247F2DB058DD1FC4D0DA838E9E0146D255CFD0 + E539FBC2BFB915F812C9EC6912282243304924E0BE0F8D8CA2A5BB0FED3D2654 + 377E6AB81CBF628147812F9154357683D8AC381317CE74DF8FE78D5D1819A5F1 + BED388CC83AB28AF025F22F9F0A51FB1110B3165B2083686F5DD34848C7BCFA1 + 4E58C30B8EE43CFDA748AADE7C82D54A73EBA71472A4E694E1AA729DABC05B24 + 85EC947888242D36CCB13F3D5B8FECA4A8F1025F226967C0312BC74742888DDB + 97A688407A961679299B7981F2DA1372295E8E618BCDAD808D44AD6D467E793B + 07F65A84AA692BD8B09C1324681E918C0311505E7D3CE15E7B24978A1AF0A2D5 + 8A254B43E127124220A020600684BBFEF92C14FC1E98C2E2FB68BB1545718243 + 9965E4CAA1D5300F5B3D36C5767EF6CE6B3CAA1BF02A7111ECBFAC23AA84B548 + CCAAF07A72764AA24FE8D13B22F528B95F52C20BE22F941055E27AF4FDA4BD67 + CB54FC793DEA3A858C6019A45209D854C64AB45A2D2FD873AE906892A2A1543F + F40A97872E4272EE4B2C0C590A5940000F1D23D1E91EF082DD67EF114DF2167C + 1FB47884573718917AC380E0F98B2193C99CE0E3257ABD8E17284EDF259A635B + 714455EA166E3411183A290E2E91C83890D0093E681E80BFBFBFE399943D2CE5 + 05B1270A48D6F11D300E4C7C829A46234EDEAC43507008C412A94BD7ACC46CEA + C76B432D118BC594FDC15794EB79414C5A3ED1A4EE44B24A3BA1A0B289C2ACB9 + 8B20954D65A0708966D06C42537D2D68DAB296B92397C90294ACA4F271392FD8 + 9E729D68D277E1AB69E213E495BE83BEF607E6CC0B81482872487E0E9AD0DC60 + B058E9D18D1DB73771F906C6145F64257D7DBD747B41941F27D8763497A8D315 + 6E23622B57D78CB257BD0EC910036F79FB8A81D30EB8BD8276161F66B0AC40ED + 10F832FF1D267FF45333307D66103EB6D45B9857F438B873F9FC9FEC5C813145 + E7991FC431EFED584F70BBE0176C843AEF991070580000000049454E44AE4260 + 82} + end> + Left = 208 + Top = 240 + Bitmap = {} + end + object ImageList192: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'Cancel operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002C74944415478DAEDD6416B13 + 411880E199D90DDA64B3A9874A95AAA1E841A1622BDEC48327513CF42408A5C5 + 43EABFB0FE0AAD0751845E738A782EDEC4564450504AD5A2620F9A4D3655B233 + E3F76D76C2B2DDD99D04B11E3A97866677DE27ED4C76A89492ECE5A0FB80FF0E + 40290D7F2E11C28E94CB0F0925B352C8EBB7DBEDD541265E2E972FC2BD0D2249 + FD6BAB750BE613F8FB5DBD3440147F34C6E85CD5B2C87A10F85D21AF9A22306E + 53F26CDAB64B9B9C936D219F00620111B980BB94F6E3E76C3B04FD1482AC1922 + 547C06E2A38C859FF85510F41177A414998007AE8BF1791557C30471DF712E15 + 187DAAE26AC4108F6B9EB7900DA8B8CD0BB6ED1E8A4D6082D0C5D5F801F7BE08 + 02AFD6F42A3980D2354BB2FAF942A1309A810824B9B2D86A3D3789E33D2FBBDD + 2EA762B6D6F41B9900FCB32FBB456304DCCF4CE38B5EA761B40BC2C504080688 + 19405452266EC2C4F07FF5F135AC9792EE9A35888B28AED68311208E9806849B + 12F0446F41EBDE5B4FC40706C411676D3B15913630FE3A0876C58702C4115380 + 28E7205A107FC3B9CF09BF918C0F0D8823CE642030FE16E241C677C5D0807B8E + 7319BFE14E03C0D100DA0078879F3EB645FF0A00F7B90D5BED9465951C0DB08F + 80F9DE67200606A8F849889772E26AF830E7070D6220808A4F42BC9812EF44F7 + EADEDB4841180354BC9A11DF80AD86AF27615DE8AED94C208C0018B7207E02E2 + 232913EFE0C41097B0CF7B93B07A1510BA6B3F024244885C003CCFC3F831C6B4 + F14F9C8771B5CF718B22E2B86569119F85F0396C4F40AC6602F0713CC1989B36 + D12FB8762B11EFC323C404200E6A105B42183C8EE14052A4647E1CF67A7C4162 + FC8B269E441C4D20B0F10DBE233A92E41F48D4910C10736311E2374E90134F22 + C6017100EEC5F9B77B71B32359FC503A02087C007D378C27118701810FA69D28 + BE6472284D3B9613C26F9AC6E30842AC95818FE5FF7AEC03F61CF007B5A8A2DF + 467EC58F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Minimize' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000384944415478DAEDCE010D00 + 200C0431DEBFE88109D8487A06AEA9AAD5590000000000000000000000460292 + 5C519D5700FE00BC0CA01DB00180D66FC1F6701C660000000049454E44AE4260 + 82} + end + item + Background = clWindow + Name = 'Once Finished - Stay Idle' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000005E64944415478DAC5960B4C53 + 5718C7BFDBF6B6E5F645813E6881F24621DB7C05E306C6575C7C4CAD28C30964 + 2E3AB62C218B66598C73EA7431593663B2651931738B74663E50982ED14C262A + 8BC9D0292C0E91876DA14029580A7DDF7B7B776E910E046C0193FD9B26DFB9F7 + 7CF7FCCE77CE77BE83310C03FFA7301600C3B0495F2AB79D560939C20D18C6D9 + 88614C067A148F702960A00779DE43760DA7D371C958B7C3FB4201346F5410FC + 68C5C70C83EDE60B8462B12C0E848418B83C1C00F5A7483FB85D0E70399E0045 + 933DC865BFA9B2F1078083815903E84ACEA600F02FA18173149A1490C862A774 + 667D07FB7BA0BFD704019AAA7179C962DBB942E78C01928B2E26333834486471 + 71EAA44CE07038117D84F4FBA0DBD80C3EB7B3C1EFE85BD67DA9CC3D6D0036EC + B84CD920898ECD56EBB2000BE328C031589C2A80E66E126CC334040234985B9B + 80F479CE182BF545D306482EB97008E7139F26A6BF14D1CC3FDB2C8725E90270 + F91828FECE064E5F0045C21B840804A8F52643C1AF1103A84B2F2A850CD61E9F + 94211649E5619D54321EFCF49E32D42EFAD60AFD280AAC06AC5DECBE7868ACDC + 3437620034FB9D383FEA043BFB48F476BE0C4AF32441BBD54A42D9496BE81D4D + 51280A8DC860E61B4FEBEF47049052527D551AAB5A1DA3D4862746CBF5F3071A + 504AB9C1F6F12B76A8F96B785C9F1ED323F0B89D07CD06FDA1082350DD8E522E + 5524890E0B304F2784E325AAA04DA1ACDF74AC139CDEF1E93F60ED84E141DB79 + 9361F3D6C8004AAB5DEA84744210250A0B70A040092BB247FAD535BBE0C0F9BE + 097D86EC36B0F777D79B2AF5F9912D4169B55DA1498D168E01C84D23401DCD83 + 2B8DC3E0A746EA0521E040CD9EE4600AB2DA63E8818676F7A4008E81DE3AA341 + BF3C528016B9429B493C5D829C8428A8D89910B49BCC5E3490053CFE006C5C24 + 838FD68FEC7E76D7EB8F3D86C98A199A3D3AA6ED0693415F12194049F5193478 + 61745C7CF0E1FC1402BED99118EAD464F6C0EE535DF0357A36572B0C3E3B75F3 + 09545CB38DFB988F7B073CDC6BE00EDC05E059BDC0A1D029011644F907C304CE + 98F7396A2705D0155FD8C2C3F9E794DA34182D0BE56B5450F46A4CA863BBD507 + 692A41A85D78BC1DBA06FC419BC22CE0107C0184BC1D3253B340ABD682881859 + 4E97DB05965E0B3CEA6801BB63B03640D3659DFB1DEDE3009485E7C42221BF55 + 2A57A809B12C3448F95A356C7B6D6231FA1B45E4DD8A8EA0EDE7368143B40F16 + BC92097332E6A0237CF2439C41BF96B61668B8DF60A7A9C006F327F6FA10009B + DB49C555653C2EFE9D5C95085C2EF73F8835F1B03D3F6EDCC70E5775C1E5BB76 + A039161894BC0F4BF316825AA90EB7DC41F5F6F5425D7D9D9D64C8DCAEBD436D + 63AAE1418EAE78DE2F389FBF8EDD0B634B74F95A0D142F55046DDB10095BBE6C + 419B9286417139E42CE441466A7A44838FAAB5A30DEE37DEBB61DC6B5F36AE1C + C76C3748A598E80617C7E74963942812BC90D3E20C29186D5EB00E8EAC3BC96B + 043AFE00AC5AB962CAB04F257639AED5FE0E4EE7D0F2091712C5D6B3624280FF + 8871B0822842826E429249ABA353FC15A42D30436A4ACAB4061F55C7E3C7F0E0 + 41F3C929EF84BAED557AC03847D0BB6C9421C0FE311604E5155BFB7DDA0F216F + 553288C5E21901389D4EA8BF79FBE1732FA5AC12DEBA98CBE332EBD07ECD424D + 0D0A1F85EC2E6CEEAE3797ADCEE38FDDB0D3114DD370FDB79BCEB00053497734 + 66387FE512F16C006ED5DE9E3940F2D19896F94B5ECE244451330270BB3C70EF + 76D3A3D944E07B5D46C23BEA44E5B47D59F576F681A9B5EBE42C00642B840451 + 9B9D9B31A334FCE7CF56F0BADD2B670C300221BFA54D57E7C5C687BF478ED540 + 8F1D2C6DBDF5A6BDF6FC5901241C95A6E31CEE9DA41CAD8C9046B617DC431E30 + 3FB038C800BDE899A378664A3A22CFE3E27059911C2B93AA44CF2D46435617D8 + 8C030E9A84F5138AD16CA4392CC9E2F378277002CF97280988920980CB1F494F + 1AD50C8FC307C37D6E20DDE42D3F45EDEADE3FDC32EAFB42004695F879CCEB1C + 8C2940414057314CF374EEDD68F2D7030C56D5B9EFC9D5677DFE051C78A54CF6 + F022CB0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Once Finished - Disconnect' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006DF4944415478DAC5970B6C53 + D719C7FFF7DAD7EFEB47E2575E240692B4844118A3E55150CBA64AD042EB5032 + 3A125AA4AA81B151095A55D3D4015DA54963EA50D78E447B746B3C540A34E1A5 + 51956D74A5942EA294A4BC16D2DA89C90327D8B1EFF5EB5EFBEE5C877A899228 + 6644DA912C9D73EE77CEF73BDFF79DEF3BA62449C2FFB35132004551137EB43F + 7DC0A1A1356B298A7E82A2A472325540704548E8232B2F92FE51BA67F8B8F7CC + E6F8B40214AE69D2A9CCB6972589DAA1526B0C0693151A9D010A250310795148 + 22CA0F831FBE0D3125F49125AFF89A2FBD0DEC4EDF334069FD7B2E40759C28AE + B215BAC09AF2275D2CAF0D0DF661B0DF87744A3CCAC785BAC0A15AEE7F0628DB + D052263168634D56AB734605689ACE6913219940AFF72A1251AE2D397CEBE1DE + E30DD1BB0690CDCE98EC6DAC397F8EB3B412D4140BD50C850767AA71B5574020 + 92423A9D4277673B8444ECA0B7D9BDE1AE01CAEADFDFC3A8743F2B99FDAD9C4E + FE6A8D054B66ABC12724D43506C025D2C412F10C443A2D3EEEF3AC3B99338073 + 538B5D23515D0533CA0D7AA365CA450E93127FD962CF8E37FC760083C40A721B + 1AF0CB7171CDDBFCE4FD390390D33FC7A8B4BF934F9F4B7B76B9099B1E6233FD + CE01010D7F1CC87E4B8922B1C225D29116780FB8BFC809C055DFFA8131DFF168 + 9EBD686A62E2AE77B715C26E5464C6FB4E0571F4F3C818993EDFBF118B72BBBB + 3DEE3D395AA0B58B5CB9997AD63C254075A906FBEA1D99BE486EFD93AFF7808B + 8FBDFE43033D888402877D9E9AF5B9016C6AE59DC5B3756AAD7E4A805DEBEC58 + 396744EECC551EBB0EDF1A27130E06101CEC3DEB6B762FCFCD059B5A83B6C299 + 66CD28800766E9E0342B71EA52044971A45EE8D4348EEE2CCB5C41B9EDF4F4A1 + AD2B3A21C0F050FF19AFC7FD48AE00D72DB6A20ADD1D1754156BD1F45C71A6DF + DE1D278A6E22964CE389EF98F0D2E323D12F47BDFBF5AF31513123A727693AE8 + F179DCF5B901D4B71E24CA6BCDD682CCE402970E6F6E2EC90AB577C7B0E31D3F + 7E43E6EE2FD264E6DEF9E76D349D0E4CB8E9AD9B5F917A11DFE16DAEF9754E00 + A575EF3FA5645487EC45B3F04D59D8BECA810D4BF3B2825D0309CC72A8B3E3DA + 7D5DF00F25C76D288A24331200087079DF757B7302B0D71E32E835AA4EA3C5E6 + D4194CD98FDB573BF1F4B2F1C5A88358E4F9A6AFC6CCA9E361545E6E457BFE3C + F42974FFF035D7AC9C48E16E8076B2EC4B44B3AE3FCCEDC9A6E21975471A940A + A6D1E2288142A1F82FC4AA026C5C6E1DB3C9CF8FF871E242303BD6C487B1BA65 + 1B5CE921F8E334CE54AC5D73FCEC5B272650AE2C60D9DFB3ACFE198AA4FBF070 + E4CFA3AAE16EBAB4AEFA18A3523D26C7C2E812BD7D7521EA56D832FD4058C053 + BFBA4E827224F532C928D6B46CC57C5D0C0B1754E1CB2B9DB8D1E5BB411E2D4B + 1A2291C151CA5544F961B3C5B866E9E20508852238F7E905714C39CEDBE8311A + 29FD470A86A936E6D9892594598807CB8DF006E218088DF57B49F779ACFDF0A7 + F8DE8AC5609811F98B1DD7D0EDEFEB1023DCD26D00F7166050B286BFE6E7991F + 5AB2701E62F1043EFEEC229289E48FC73D486CEBDF33E8D4CC9F289A5AA7D5B1 + E425C44E5A1D532911F14810AB3EFE2516852F63D9B7E742C58CBC9ADABEBC8E + BE5BB7CF2544F1FB6AA5E284D396377FD1DC4AC49302CE5EE8403496D8B585E3 + 5E9DF44D58BAF1881B14FD1AF93687DC10C83FD96FC4B499DA2F0A0952780459 + D7DF1412FF93978F6DDDAAD5A8362F9B771FB46A35A4B484F397AF6330148E95 + 38ACDAEA72174968297CD27E051C1F7FA381E35EC8DE82C91EA5722BFE41CB03 + 4A85F41811AD24C342099248FA7EA2F90B8271CCEFA9BDF18D6C23CBEED5A894 + 2F2EA99C0556AB21164AA367F036CAECF94811A073D76E20C4C79AFB22916749 + 4CA47302B8DBD6C8EA5F542B99BD8B5C25B0E875993959C7F92E1F86B8E849A2 + BC8628CF06D2F403E8F5DF25F173727EA1435D6C3666E6481CE093AFFD888AC2 + 6B5BC2DC2BA3E5A715603FCBBA15900E563B6D4C81419F09C62089780B71074F + 82EFD39BFD48A6532F3484B937A61D80987E3343D17FA8B6E65136ED48BDB81A + 1C868FE3516531A184008509C4670301893C619F793ECC374F1B80EC7715ADD8 + BB9098DC2C5F43D2BAF8283A79BE5B4A6327D97F7F8541679D4962224820FE15 + 0C091295763784A327EF19A0D16058A1A4A98F16B30618EEA4F09E440257A2F1 + 4141921EFE11C75D7ED360A8224F88532E8DBAB842A34180C4C4E71C9F10915A + 79CF004D5AED0C289517EE5331D6529209FBC9E6ED498117C4D423DBA2D1B631 + 728CF2749142513E57AD422F91EB480AA1697141935E2FFF99F87B9182B6F6A6 + 5282989656FF90E74F8F93635952D5A4D3369A9ECF109D44F6D2B405E11D885F + 804AED977D3B99DC485D600F509058A279FD7F00EB392ABB0325A41200000000 + 49454E44AE426082} + end + item + Background = clWindow + Name = 'Once Finished - Shut Down' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000007224944415478DAC5977B4C54 + 571EC7BFF3B833C3302F1EF3046400C595A60946176A11AD6ED0D60795FA585B + C1B4D6963E5C4D749B5D37D9ADD6669B6D7659DBDDADD0A6B6ABA359B12AF848 + D44A2BD5A63654A9F80722A532C00C0E030EE3CC30DCB977EEDD732FCA8A224C + A5C9FE929339F79EF3BBBFCF39E7F73823E1791EFF4F910800128964D441D3B3 + FBCD2AA9AA5822913E2D91F053C82B2BC165C1A39B6836927EADB4D37FACFDEC + 0B833F2B806D69955A6130FE8EE7259B154A9546A34F864AAD814C4E01643ECB + 443010F223E4BF0936CA7413953F3AF75EFE04D8C64D1820BDAC3A03501C2386 + 1F31DA32A0D5273D5059D0EDEFED46EF0D27B8285B1B1A644ABD0757051F1AC0 + BEFA889DA7D0A0D527275B2665432A95C6F4112642C3DDDE0C7A20D810F1F73C + E13E563EF09301846DA7F4A606AD2129C7923E15927114959404F9994A34BB19 + 780351705C141DAD4D60E8F081F6BD25AB7F3280BDECF0764AA1FE53DAE44763 + 5AF95BCF2460D6642542348FD24A2F82344776625084E0387689D3B1FC44CC00 + 96B5474C2A5ED2669D344513AF4B1857C9AC9763DF2BA6E1E7D51F78D04B7641 + 903E4F97E01757DBF72E9B16330059FD7A4A11F791B0FA58E4F9423DD6CED68A + FD560F83F2DD9EE1B128CB925DB84C3AFCF4F6FD25DFC704905156734A97645E + 90684A199F981CD77F5EB7C1A49389CF3B4FFA507B2930624EB7F31AC203C16D + 1D8E92ED31EE404D1B09B9CC78AD615C80DC7415769699C53E4BA27E59452782 + 8323C3BFCFD38940BFF733A7E39995B101ACAD09595227AB9571F1E302BCB9DC + 84F93943F3CE3687F0E6673DF7CDB9E5F3C2D7EB3EEFDC5B5218DB11ACADF119 + 6D9906D55D0079596A580C729CBC1C40841DAA176AA514B55BEC62080AB2C5D1 + 8D86B6815101FC7D37CEB63B4AE6C50AD092604CC956DF3E824752E350B53E55 + EC37750C12432E84231C9E9EA9C71B4B86BC5FF0FA928AEB18AD9891D59334ED + 73381D2565B10194D51C20C6571992ADE2CBE9196AFCF385B4E1494D1D616CDE + D3857F9077D35254E2BB3D5FDD44D519EF888F593B1B60BF761A49CE0618829E + 4119CFD284D04510BF06C71F782514AA1B1520BDF4F00A39A538684AC9C29DB2 + B0F12933563F9E383CB1CD4323CBAC1C7E5EB5B30D5D7D11B1AFF5BBF078DD9F + 31C575112924892591164751E2589861D0C771709116E4B93AD04C79394DB78D + 0030AD3AA88957295A7509468B5AA31F36B2719105CF16DC5F8CAE901D79B9EA + 47B16F765F46D18937F0283B8074B51A12629C0B87613B43164BFAEEF9436E20 + 4B4AC2F59E1EB444A33E62B2B83C10383F0C20C4F6A4D243E572195599604E83 + 4C26FB1FC45356AC294C1E01B0E350178E5FF441E7EFC2B283EB312B1A863537 + 17C64F3E85FFEF1508381CB07B7BC5B9EDC664505959B0D57D81BEDF6E414775 + 352EB2AC8FA12379AFD3F40F7755C36DD2F4D2DCA39442B158F085BB4BF4C645 + 3694CE318A7DEF2D062BFEDA429C328AC5B5BFC13CCF15646566C27AFA734813 + 13E17FFF7DF876BC350240B362059277558A7709EFBA7568AEADC15596AD2F0F + 049F18518E13D738743A497CBD8CA272758926B213F26188FC293AB47B07E1E9 + 1F3A77ABFB7BFCFAE826CC562A613B5B0F2A2707FDEFBC83FE8ABF89E3770308 + 62D8BC0586AD5BC193E371E5E7A3DED98E00C7CFBBEF42625C59AD512BA94F25 + 52C9F238B596DC84B4A356C7B9F5EFA2F887D3F8455111CC07AA417FF30DBA8B + 970E8FDF0B2088A5A616AA8202DCAAAC44E31FB6A2858DEE7EE09D307DCDA112 + E2516F93B11C1221109AE060E43E28D6FEE74F6CC0D2412F26FDE55D685F7C11 + 3D65A5183879724C00F5820530EDDB0FA6B515D7663D86AF23CCD5312FA582A4 + 3E77244F2EE317137F9D4A1E6D3C7896FCBA7F7F74DDCA22B9549172F8305473 + E6C235730618A71363893C2D0DA9971AC9158A419BD5823A86098E0BF020A9D2 + 6903BFA2288DCDB10F714F3E09D763F960DADAC6D411A221E5C2B7E08301FC68 + B74F1040AB6D295050D969DBB643B76103FA366D4260FFBE3175B4CFAD41D27B + EF21D2D48456921FC8115C9B08C0C753E5B275D93366C0FAF919B0D7AFC33D77 + 8E98844613695C1C6CF55F419E9101DFDB3B70A5A28284E2184E389EECD268E6 + 6BA592BA028502A67FEF817AD122844F9D82B7FC6570A1D048E3F1F130567D88 + B8850B1125D9D095F74B9CF3F9702BCA153D34C0D02E68CE4D93CB67DB8D4658 + 49EA159C2CEAF120B07B37E8C646718E72FA746849F29199CDE0691A9E926568 + BD7001CD2C7B9E24A2C20901FC4BA99C4C2915DFCD94CBC93F8964182BABA09A + 37FA154008BDDED75EC58D4B97F01DCBFA492A9E794F2A7E3821BE309BA81F9F + 2693E953490D51E5E5415D5C0C4536895A5211D9CE0E84C9EE0C9C388ECE4804 + CDD1A89F985C725F319A887CA0554E9582FA482B9516A69164952894E3DB6382 + 4BDE24A5B893B400C79D23FF1E5E7A2D40B7DCD1FD5900EEC8AEF8F885420A27 + DF23E7C0DB6E9B70131B5FF21C7FE8D550E8D4BD3AFF0542AD3F2ECF6CE4C500 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'Once Finished - Suspend' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000006174944415478DAC5967B4C93 + 5714C0CFD737A50F1E7DF19287A8F1B189881014F0B16C3E706A45094E20D3B9 + B1C4C464E85C6232455DB63FB619121F91E980496744454086A0D34D05B73FAA + 28185791A16D41105A2885027D7EDFEE5746676D692B98EC244DEFE39CEFFEEE + B9E7DC73318220E0FF148C04C030CCEDA468CB59318BC25A876194F51846CC40 + 432108D70A047423CBFBA85D4DE9D0D7286F6E33BE5180D0F78BD88C00E11704 + 81E533982C0E872F00169B03541A1D00E95B2D661819D6C3B0BE1FAC364B3732 + F95255D65C0250804F192032E77C3400A3062D3C57181A0D5C7EF084C6A4ED80 + B61BB42F5480DBACD5C3464BB6E642A661D20051599551041DE45CBE40209936 + 1328148A4F1FB1984DD0A5548069C42037EB7B9775D5E48DBC3600E9763A5F24 + E70604CF9144CE02CC8B21938E41520C13145D16D00CD900C76DA06E6B018B69 + B45C5926CD7A6D80A89C4B07E90CF6FE88D8B77CDAF9A18D81901CCB84611301 + D927356030E1C813463B048E5BD7AA6419B53E0348722B452C026B0F993683E3 + CF0BF46A24E6D3E0E74F458E7ED6891ED0222F90D2D7D349C6C56365D986D93E + 03A0DDEFA033FC4E91BBF7453E4CE5436E0AD7DE6EEBB1405E718F63CE66B522 + 2F34A306B1407956FAC02780E89CAAABBC60F17B41A230EFC4E8B8CEED0C0511 + 8F6AEF17D6EBA0BA69C849A75BF50446470C056A99F4A08F1EA86A472917E3CF + 0DF00A1017C982C21CB1BD6D4559BFE14807188CCEE9DFD7D30143039A8B2AD9 + C6CDBE01E4560D4BC263D94C3F7FAF00073244B062CE98DE4DC5301CB8D8EBA2 + 33A8D3804EDBD5A82A93A6FA7604B9553A61684C00EB2580C4E96C9004D0A0BE + 7908CCD6B17AC16652A07A77943D0549D92DEB0679FB885B007DDF8B9B4A9974 + B9AF00AD81C2B099EC7F8F606EB81F14ED08B7B75BD446B4D0731835E3B03E81 + 0F9FAF1D8B7E32EAA5479E81BB6286768FAE699D4C2593E6F8069053558E16CF + 0C1084D8071744B3E1D8B60887528B7A14F2CF74C25134363B8C651F3B73BB1F + 8AAE6B9C3E860FB401D1FB002CFDAD4031EB8D18D84CA8703D47917BC78ADBCA + EF37D4DF700B10997D69138DCEB8200A9B0EE36561D76A31642D0E7228B6F798 + 60BA98E9E86716B643679FD9DE268C7D80B75D049E4D0D591B6260E17C018805 + 7EF6394DDF28DC6DD642DD6F9DA0EA30DCC0AD78DEBD3FEADA9D0044991738FE + 2C461B2F50286173F88E4576AD91C09625AEC5E821F2C827454FC7161F5402AE + 284529316AEF2F4D96407EDE3CF067D39D6CC893AAAC53C20F658F7566B375DD + BDC6FA46070099DBD3B22BF26854FAC940710450A9D4FF205687C0D65481D3C7 + 0E5774C22FF7740068E744CB71C7E2E31215C181230549C0E3325CE09B1EF6C1 + BEAFE53AD3A825B1E9CFAB7FBF540D0B2891D97197E90C463A190B2F97E85D6B + 42213B4D38E6D2410B6CFAAE150525BA7AFF3A8D42FE99DBE05A1427806FF62D + 723B5755A78263C58F6EC96F5F59E6548E83B6CA783CCCFF16954E8FE3058990 + 27680EA3A4193C506A8CD0333076EEE4C298A2D863841FDA1B0F8B13C42EE3E4 + 716CCFBF0D6AF5E07297078970F3790E9B492FC52858861F9B8B5E425CB7D511 + 7B560D98B6C923C08279C1F0EDFE44B77315B54A3851AA289EF04D18B9B5420A + 18E52B3437076508903F8C0441F464EDF77F5A0A54CB804700069D02977F7A17 + 6834D70DA83A0DC80B0D8F3D3E4A4909FFA032914625D2D19E67A16E28018415 + FD7709D5259B31C019E045CA8B56407020D365DC68B4417AEE35835780892461 + 69FA10B2E278D33B7772390882586F1E60515A7A2B7AB7CD9CCA117CF459C393 + C97B202DFD4764B6DD93CEFCB941F0FD8124B77397AE28E178898720F426F169 + AB575031CA0D4F3A057BE2212571E23454760EBD336900BB1796A63720CB1477 + 739E52B0E69A1A0A4F3F6ABC7BAB36754A00F1C92B63290C9A1C593B3DA53C5D + C50F15FDB0E7B05C6F1E3127BC72154F4E16A6AC4AC1A8D49A7188E48522D8BB + F36DE0725C8B51ED75351C2D51E82D26CB5A976234154958B26A1646A39EE273 + 19A95BA431A80E08412460A11B14835EAD119A5AB450F3AB1A941D8606C26AFB + F8EE9DFAD671DB3702E03892D4552BA9146A06DA2CBAE321D4BE730CBAD0D77F + B7E1B68AA686FAABAFDAFC03B0F7B9714160EDAE0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Speed Limit' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000076D4944415478DAC5570B5094 + D715FEFE7F1F2CA0B0B25D164C67F2D06099C537683269598D340AA8305A3368 + AC0D5005157CA4A1B40E48C58CC510634408D054196CE23B8906101B48657126 + 954709E2AE147CC06A131E8BE1A1EB02FBF87BFFBBB04A7711309DC999FDE7DF + DDB9E79CEF9EF39D73CF65388EC38F290C0F806198712C5D240C54B9FE121CFB + 1AC005119DE788AA9C1A61A027765AC1A10A2C575EAB36960115E6B12C52DF63 + 0198BE30D4432A6113C8D71D4AFF19F2A07973E0F7E2344CF551C0C3C383AEE9 + EBEBC377ED1D68BE710B3575F5D03636E9C9DF1F18BB0C595A6DC583A706305F + 15BE860572962C0E96BFBE6A257C14DEE30A6B7B47274E7FF605BEBA54A9B7C0 + 1257A7BEF8F94401B081C1611F128771BFDBBE0533C88E69A80DDD60EE34002D + 5701FDB740EF3D70260BE026053C15E0A6CF03FCC823FD095DDF44229279301B + 9DFAAEFCDACA0B5BC85FD6F100608354E1270394FE6B92DF4A84C7E449608C7D + 60AF5D006E5C0106CDE0CCC40EEFD86CB10120BFE99B7F2C84D47354C0D22860 + F214F4DD7F80FDEF1F8646DB78A6465D12F53808A70088F30F49AE37A7A7FE01 + 42A1006C9B066CCD09A0BF7FC899CDD1B0C3FF7DDBC1B02230EB77023317C24C + 7476EFCDE0B9914B406C191540A02A6CAD422E3F7E20239DEE5CA0FB1AACA698 + 18348FDCE5B0433E1AF4ED0C8885468A5D150B2C89A491782B39157ABD3EAAA6 + B2F494038039731649459EEECD99FBD2E47ED3A781EBB80E7C731C62ABF551C8 + 7907EEDEE0A6BD0CCED70FDC6419B16205C373E19606A82A03F79F56B2CE6C5B + CBEB590888AD69242D2FA1F9E62D24EDDAA3EFEEB74EBF5955DA3702C0FC5F84 + EF591AA2DA9D101F0BC66480A82A0B672EDF44FF8019AB672B2011086055AE80 + 953827741CADAE802B7F0777E62370FD03F6944020067BA09010D50BD9794750 + F60F751A4945FA6300160B172C9AD49E7BE85D992FA96FE1ED1292FB3AAA9C7E + 5683724D07D6442CC7DA98787BED3F519A1B603D98020C0CD8A240D2C1AAC2C0 + C4BD8D36D22FE213DFEEACA97CF80CC75D32530041AAD030A5BF7FC99FD353C8 + EEFB206EC8258A8F58BEE3D336A86BAEC1D5D51591112BB1E1D7EB2193C99E0C + A2A21896A3876CA4E5F9636520CC3F0DC8E4F8E3EE77705DDB145A7DB9E4E210 + 80E5876336AC4D885C110AC1BD7A08EF7E4973C7A3E74453705F198D8484ED68 + B8768DDA168BC558B66C2962DE7C1353A7FA8E9A0E6B5234B83BAD762E0836ED + 0413BE1AE78A4A5170ECF8A16A75C98E610055847C0BF88623BE7316CC7D9D2D + 7744C9FCCCABB02882D0D3DB8B8D9BE2A1D3E9EC3E78EE842C7915DBB76D83B7 + B7DC1143F119588E64D96D31B3E64390918DC67F372339F59DEA1A75F1420A60 + C1A2E56D05F9593E5E53A470D1158219E8B6A31EF48B01E7E2450D767474203A + 7623BABABA4638F2F7FF190A0B8E3A46E16E2BCC9BD7D96D31326F084F16E3FB + EE1E44C76D6BAFAE28F61D06C09D3B55487724B99B47109BA802FF0CF8258263 + 84769BB75B5A10FBDB4D30180C237C555FF9DA1140BF11A6952A5B04AC1C7D44 + 9575B4FE235EFF8D954440600770FEF431AAE3DAFE57A2304848C3D9003CB779 + 04005EBEA9AFC7D6846DA4C3D94EDC7973E7222F37C71180910058F68ADD1639 + AE21FEE755270054E11D851F657B4BA59E90749F2695D063AB69A238208F8255 + 2875B05D5F7F15E7BF28C2A449EE888D8D81D4D3D39103ADB7618A8AB4EF9E51 + F8405452EE9882C74928315C046BFA96A2E5410CBABD04B32460ECDA7722D64F + 0A61CACCB0DB625F7E05A2FC23F494241DF13112AAC273A237ACDBC297A1C8D2 + 04D1E095A12D900FEB09A32472E2DE79F01161E05A6ED3918917E1AE5408A2DE + A06578F4D8896C02209102206D78F94CE58C22BE11B1780857CB399BF721C541 + 360826BC38B1DD7F7A0AE68CBDF68D80B4727111E92FDE0ADA88B48D8DE135EA + D20B1440404080D85DFEFC77F987DF9329483DBB7055105A6ED822C0E78F7C8C + 2EAB0919DDC6E7BDB31DA6751104B989128E8F8620E2571024A5D056BC79FBEF + EF19F42D53351ACDA0FD300A0A0EDBFB5AC8E294AD7131E4A831C2F5E16784B9 + 83943C2697409824B32616819305B014E4D9EADF4502E1DF4854BD64C8C93F8A + 8B6515E9FFBA5C92E6F4383EB87FAFFC85E79F85D0A483A8B70C6637127EB7D9 + 4F47C2C25C58CF7E0C41CA7E300B7F4E7A880E3B9353F5A65E835F7D7D458FC3 + 40322F38F48D9FFAFA7EFCDEBE3FD1F2624D9DB08AC637888ECAC5260D981901 + 78F0C0C03B475B67E7FABACAD24F6C3C7532929161346FF64C655CDAAE243A92 + FD3F841FC9F6ECCB4483E6FA9347B221214369D8B95933035624EF4CA091F821 + C28F62991FE4E06A83E63C998C5761ACA1F41188F03C32966FE427639E134F23 + 7CCE330E64F1F784098DE58FD241865496610F872C0E96AD211713859323D799 + F01793B39F17A1FC52E53D2B674DAC555F38E16CDDB8AE667C750827BB27B12C + E2C95DC12B68FE5C7A35F351C831456A3B23BA7B7A88533DBD9A55D7D641D3D8 + D4C559B8BF98EF1B3279B68F667B5C008645A9548A5DBD9E0D258B4318860B24 + 5AD388160D0969357A86CCC51CC7D412ABE5C6EF75A55AAD76702C9B76003FA6 + FC176B4D49FD831B1BCA0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Download in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004C84944415478DAC5977F4CD4 + 651CC7DF173F92533A2F23102D6CAD569B5B1BDAAA45B1247E830402F12BA0CC + B4C09185F24B0FCA355B3F4414040E90CC720A1A5191F68732C3D85CC95C890A + 717077E0211C7707DE717070F77DFADEF7B893E3BEC6F790CD67BB3D7B9EEFF3 + FDBC5FCFFBFB7E9EED788410DCCFC63303F0783C4E8BB30F9EE14C4B2F6C276A + 6DE8E19244DDA201641D6821E539115CC471B2F51ADAFE96B66374FC7F219C02 + F860FF2FA4624724B87CB58B9D031854E970A143D26EA4488C38377AE49E01B6 + 7DFD13A9FC281A74C179D7CA86C6A0A00106555A9CBF2CF98796D9C006E114C0 + D62F7F2455B9319832125434FD75D77559B1EB415126DCA4011888112DCE5DEE + EE14E7BEB19633803381F3F3598E2D51EBE0EEEA629BBB2E57A1F58A1C4613C5 + 8C7BA50310E7C53908DD15C0D9C0FD797D005E8265985BEAF9B58F433F398DE6 + F31DA82D88E70EB090C049156A6484FBC3E34137BBE7DA89291457B7A0AE3081 + 3BC0420377F14A1F5608F87860A66676C2CB4C9F5BFA038EEC7E933BC0BD04EE + 6AEF2072125FB55BB7B3F414EA45C9EC00DB0F9D5DF4C0790B3D2D0E240532FD + AED2461C2D4E6507C82EFB75D1035790110C3EDFC3F62CAFB401DF7E92C60E90 + 55DAB2A0C0A587F983BF843D70CB97BAC3D5D50DDB538298F982FD27716C6F3A + 3BC0FBFB7F5EF4C0EDCC0C05DFC3E28054D385F71A6231C9539FD11B3489CA12 + E8EC00B67DD5BCE8817BC8C31D2EAEAE888E7C021FB6C4C1D5D788C9DB53181F + 99F87DDCA089B44230005BBF6822D5BB6231314DCDEBC0DCC049A472F8080516 + 076605EEE3CC08280D72EC68D904375F13963EB2844991AAF7B61D0403B0E5F3 + D3449CBF09E306132A4E5F9A3F0833812B6E4B845AAB415D7C13D6783D6917B8 + 84D8A751D49A028FD53C5ADC031431D13FCA0182017877DF2952931F0FEDA489 + 93B8B53D57F628FC9E7A0C4A891E417C11F2D21299F99C0365E81654C3D3CF1D + 9E5E7CFAB3518CB8158280B2429C6500367FD6406A0A133136614479E31F9CC4 + CD81F33FE88D80E017312055403F48BBB7B119FA691D363746C2F71901045E9E + 30CD12B6F6E6399D729C8618933300EFEC3D416A8A9230AA373AE5C0FA726F04 + 86043045FB6503D02B4C309826F0F09A65107A0B2C6294BDB8B91F556A31FCAF + 5A458CBC400620F3D3E3344032343440F9890BDC1CA003F742850F3684055A0A + D342FDB29B707173C10A6FE19C1DDF11D70CD3C7B87B5845A679817291BA9301 + C828F99ED4EC4E817ADC39075EAAF441707890DDEE2C96DBEFD844597AD59006 + FD5D0A9BB8B90603902E3A46C4A234A874D33874FC1C2771F30D1750B5126191 + 21332173DC2D350B46794B853EFA0CCF16B701A4ED394AC47BDEC288CE390702 + C52B111515E1206A37A6E1860687D173ADCF41DC06905A544FAA451918D1D20E + 7CF71B3707D242F15AAD2F6236465B6CA7D8216E298670E36A37ABB80D20A5E0 + 08A92ACE80920670A6BD5EB70A7131B12CB69B6CC74FD62787A4AB573E65C02B + 8A128D9C152039BF96548ADE761A20A47E157DE3C5CF3A6AEC9FC10CD1D32561 + 85600092F26A48C50200C2BF598DA4B8A41931C7CBC69A01732F65207A1C206C + 004E29CFB44BC27CA4C6A7DA84D86FBD3B63699F0CDD377A7A6406CDB32881D1 + 06C0F58FC9DCE6B74FD8C6032FC0997768BD0E59A1669D9D03F7B3FD079EF527 + DD34B097B00000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Upload in Background' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004924944415478DAC5D77B5054 + 551C07F0EF2EB0C82AAF91B7F22847ACC9BFA8FE689CD1E93516C48005044840 + 91A3050E5A282F050C9BCA8A2D65131693015211E4CD823A3E86344C4DB404D1 + 55602562E3B1ACBACB43D9DDD365D9272C702F32D399D9D7DDB3E7F7B9BFFBDD + B3B32C4208FECFC19A00B0582C5A9313F637D2D652139BC9907CFD4F59618A19 + E74CD4660288FF41487213FDE914C7F1F3B770E12F71331E0CCF88600CF834A7 + 9EF0B70780CE55BBD8D603895481A6968E66A59A04099202079F1AB0E5FB5A72 + F0B340500BCE39F77EDF43F4520089548E73D73A6E52655E9B8A600CD8FC6D35 + C94B0AC2132501BFEA8F19E7C56F78096AB50AFF50000D62508EB3D7446D82A4 + E0D5B4014C02E7EDE6804DEFBC088EA585FE587BB714E76F7443A9526B5E778A + 7B20487ED7A4D0AC00A681BBDADE0367FB2598BAD4CBABBD3032368E9A732D38 + 941A421F309FC0897B8710F3B61F6CACAD4CDE978F3E4166BE103FA785D207CC + 3770176F7461A93D176CED9A09A16B348F49BC4A1CDEF53E7DC0D304AEB55382 + C4B0B526F376F04EA03023C23C60EB81930B1E385747DBC90E84AFD33CEEE495 + A32873A37940C28F0D0B1EB8D49837C1E5DAE8DF4BE695A1784F9479403C4F38 + AFC045BFE507EE22F3817358CC81A5A515B646BEAE399E9A731C25D9D1E6019F + E4D42D78E076C4AE07D7C6D08134DE311CD91B6B1EB0E5BB9AA70ADC251170AF + F711BD10E9ABB37EEF2A097A4503D8BCAF8AE4EFDC80D171F59C9F9B1AB88EAE + 1E5CEEB480ABE72A78FB3C43750360537713DF2CB6E646FDE6B38D9E6BBB5551 + 558DAEE2609606B0E9EB0A2248790FC38F55E0575CA67502C6818B0B5A8B6D79 + 2DB073F6A18D30017CFCD50952901202F9988A5117758173B25F8C91C70457C4 + 16B41195D5350640DC9765A4202D0C0F4795C82DFF8D56717381EB978D217EFF + 25D8D34054D718013ECA2E2505E9E17830A26416244CEE708EB65CCDF3C037D6 + 601BFF0A3C7C56C1C36399B6B079446D6DAD0110FBC5510A10011905C82D6DA2 + D701A31DEEF3587F0C3C52623BFF2ADCBD7CE1E6BE8C2A0A4DC1991075F57506 + 404CD61152B02B1243C3CC3B30B1C385FABF8AF4C23FE1BA7C255CDD3D0C8567 + 4108854680E88C1222C8888254318E0347CFD22AACDBE112BF298748E60897E5 + BE707175D76CCF6CED759E0DD1D8506F0044ED2E2282DD1F6050C1AC03E27F15 + 88DBF72B3C57BC002717376D7B59D310FD7DBD508E8F9B04F364A3D000D8985E + 48F233623028A73AF0CB295AC57581B3775B01276737ED99611A62A04F82DBED + 37A5D491E195BECF79E910A74F35180091A987495E660C062800DD11B9B7091C + 076F2CA58AEBC3350531D82F81E84EAB942855EB944AB59CB3887341873873DA + 08109172881CCCF89011604FD175B44A00CF679F8785767733460C0DF4E19E68 + B278F7B190B689CF78849679E9107745ED0640787201E13304285504D9C5D771 + A79F3D0D2193F6A1F36E9B4971DDD020ACADCE101614E2E2603F3D8051FAB483 + 50AB886476204B3CF50899B41FF73B6E992D6E1859D477234BCDF88F89D9115A + C6F1B6E6543A38B904D8DA39E2EFAEDB7314373E818500E81196A5D43A7E6AA5 + 2A804E711DE03FC39723EE05E751780000000049454E44AE426082} + end> + Left = 288 + Top = 240 + Bitmap = {} end end diff --git a/source/forms/Progress.h b/source/forms/Progress.h index 7c924383..e33d2695 100644 --- a/source/forms/Progress.h +++ b/source/forms/Progress.h @@ -2,7 +2,6 @@ #ifndef ProgressH #define ProgressH //---------------------------------------------------------------------------- -#include "HistoryComboBox.hpp" #include "PathLabel.hpp" #include #include @@ -12,15 +11,24 @@ //---------------------------------------------------------------------------- #include #include +#include "PngImageList.hpp" +#include +#include +//---------------------------------------------------------------------------- +#include +#include "TB2Dock.hpp" +#include "TB2Item.hpp" +#include "TB2Toolbar.hpp" +#include "TBX.hpp" +#include "TB2ExtItems.hpp" +#include "TBXExtItems.hpp" +#include //---------------------------------------------------------------------------- class TProgressForm : public TForm { __published: - TAnimate *Animate; - TButton *CancelButton; - TButton *MinimizeButton; TPanel *MainPanel; - TLabel *Label1; + TLabel *PathLabel; TPathLabel *FileLabel; TLabel *TargetLabel; TPathLabel *TargetPathLabel; @@ -36,28 +44,40 @@ class TProgressForm : public TForm TLabel *CPSLabel; TProgressBar *BottomProgress; TTimer *UpdateTimer; - TPanel *SpeedPanel; - TLabel *SpeedLabel3; TLabel *TimeLeftLabelLabel; TLabel *TimeLeftLabel; - THistoryComboBox *SpeedCombo; - TLabel *OnceDoneOperationLabel; - TComboBox *OnceDoneOperationCombo2; - TPopupMenu *MinimizeMenu; - TMenuItem *MoveToQueueMenuItem; - TMenuItem *MinimizeMenuItem; + TPaintBox *AnimationPaintBox; + TPngImageList *ImageList; + TPanel *ToolbarPanel; + TTBXDock *Dock; + TTBXToolbar *Toolbar; + TTBXItem *CancelItem; + TTBXItem *MinimizeItem; + TTBXItem *MoveToQueueItem; + TTBXSubmenuItem *CycleOnceDoneItem; + TTBXItem *IdleOnceDoneItem; + TTBXItem *DisconnectOnceDoneItem; + TTBXItem *SuspendOnceDoneItem; + TTBXItem *ShutDownOnceDoneItem; + TTBXComboBoxItem *SpeedComboBoxItem; + TPanel *ComponentsPanel; + TPngImageList *ImageList120; + TPngImageList *ImageList144; + TPngImageList *ImageList192; void __fastcall UpdateTimerTimer(TObject *Sender); void __fastcall FormShow(TObject *Sender); void __fastcall FormHide(TObject *Sender); - void __fastcall CancelButtonClick(TObject *Sender); - void __fastcall MinimizeButtonClick(TObject *Sender); - void __fastcall SpeedComboExit(TObject *Sender); - void __fastcall SpeedComboSelect(TObject *Sender); - void __fastcall SpeedComboKeyPress(TObject *Sender, wchar_t &Key); - void __fastcall OnceDoneOperationCombo2Select(TObject *Sender); - void __fastcall OnceDoneOperationCombo2CloseUp(TObject *Sender); - void __fastcall MinimizeMenuItemClick(TObject *Sender); - void __fastcall MoveToQueueMenuItemClick(TObject *Sender); + void __fastcall CancelItemClick(TObject *Sender); + void __fastcall MinimizeItemClick(TObject *Sender); + void __fastcall MoveToQueueItemClick(TObject *Sender); + void __fastcall OnceDoneItemClick(TObject *Sender); + void __fastcall CycleOnceDoneItemClick(TObject *Sender); + void __fastcall SpeedComboBoxItemAcceptText(TObject *Sender, UnicodeString &NewText, + bool &Accept); + void __fastcall SpeedComboBoxItemItemClick(TObject *Sender); + void __fastcall SpeedComboBoxItemAdjustImageIndex(TTBXComboBoxItem *Sender, const UnicodeString AText, + int AIndex, int &ImageIndex); + void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift); private: TCancelStatus FCancel; @@ -75,42 +95,48 @@ class TProgressForm : public TForm bool FDeleteToRecycleBin; bool FReadOnly; unsigned long FCPSLimit; - TOnceDoneOperation FOnceDoneOperation; TProgressBar * FOperationProgress; TProgressBar * FFileProgress; TDateTime FStarted; - TDateTime FSinceLastUpdate; + int FSinceLastUpdate; bool FModalBeginHooked; TNotifyEvent FPrevApplicationModalBegin; int FModalLevel; - bool FAllowMoveToQueue; + TFrameAnimation FFrameAnimation; + typedef BiDiMap TOnceDoneItems; + TOnceDoneItems FOnceDoneItems; void __fastcall SetOnceDoneOperation(TOnceDoneOperation value); + TTBCustomItem * __fastcall CurrentOnceDoneItem(); + TOnceDoneOperation __fastcall GetOnceDoneOperation(); + void __fastcall SetOnceDoneItem(TTBCustomItem * Item); void __fastcall SetAllowMinimize(bool value); bool __fastcall GetAllowMinimize(); void __fastcall SetReadOnly(bool value); void __fastcall GlobalMinimize(TObject * Sender); void __fastcall ApplicationModalBegin(TObject * Sender); - void __fastcall ResetFocus(); + UnicodeString __fastcall ItemSpeed(const UnicodeString & Text, TTBXComboBoxItem * Item); + bool __fastcall ApplicationHook(TMessage & Message); protected: void __fastcall CancelOperation(); void __fastcall UpdateControls(); - void __fastcall ApplyCPSLimit(); void __fastcall ResetOnceDoneOperation(); bool __fastcall ReceiveData(bool Force, int ModalLevelOffset); void __fastcall Minimize(TObject * Sender); virtual void __fastcall Dispatch(void * Message); + static bool __fastcall IsIndetermiateOperation(TFileOperation Operation); + public: - static UnicodeString __fastcall OperationName(TFileOperation Operation, TOperationSide Side); + static UnicodeString __fastcall ProgressStr(TFileOperationProgressType * ProgressData); virtual __fastcall TProgressForm(TComponent * AOwner, bool AllowMoveToQueue); virtual __fastcall ~TProgressForm(); void __fastcall SetProgressData(TFileOperationProgressType & AData); __property TCancelStatus Cancel = { read = FCancel }; __property bool MoveToQueue = { read = FMoveToQueue }; - __property TOnceDoneOperation OnceDoneOperation = { read=FOnceDoneOperation, write=SetOnceDoneOperation }; + __property TOnceDoneOperation OnceDoneOperation = { read=GetOnceDoneOperation, write=SetOnceDoneOperation }; __property bool AllowMinimize = { read=GetAllowMinimize, write=SetAllowMinimize }; __property bool DeleteToRecycleBin = { read=FDeleteToRecycleBin, write=FDeleteToRecycleBin }; __property bool ReadOnly = { read=FReadOnly, write=SetReadOnly }; diff --git a/source/forms/Properties.cpp b/source/forms/Properties.cpp index 1ec61f4d..c5a0f110 100644 --- a/source/forms/Properties.cpp +++ b/source/forms/Properties.cpp @@ -99,7 +99,7 @@ bool __fastcall TPropertiesDialog::Execute(TRemoteProperties & Properties) if (FAllowedChanges & cpMode) ActiveControl = RightsFrame; else ActiveControl = CancelButton; - if (ALWAYS_TRUE(FChecksumAlgs != NULL)) + if (DebugAlwaysTrue(FChecksumAlgs != NULL)) { ChecksumAlgEdit->Items->Assign(FChecksumAlgs); int ChecksumIndex = FChecksumAlgs->IndexOf(GUIConfiguration->ChecksumAlg); @@ -198,7 +198,7 @@ void __fastcall TPropertiesDialog::LoadRemoteTokens(TComboBox * ComboBox, //--------------------------------------------------------------------------- void __fastcall TPropertiesDialog::LoadInfo() { - assert(FFileList->Count > 0); + DebugAssert(FFileList->Count > 0); FMultiple = FFileList->Count > 1; FMultipleChecksum = FMultiple; @@ -242,14 +242,14 @@ void __fastcall TPropertiesDialog::LoadInfo() LoadStats(FilesSize, Stats); - FileIconImage->Picture->Bitmap = NULL; - RightsFrame->AllowUndef = FMultiple; if (!FMultiple) { TRemoteFile * File = (TRemoteFile *)(FFileList->Objects[0]); - assert(File && FShellImageList); + DebugAssert(File && FShellImageList); + + FileIconImage->Picture->Bitmap = NULL; // shell image list does not have fixed large icon size // (it is probably 32x32 min, but can be larger, on xp it is 48x48 if @@ -259,10 +259,16 @@ void __fastcall TPropertiesDialog::LoadInfo() try { FShellImageList->GetBitmap(File->IconIndex, Bitmap); - FileIconImage->Picture->Bitmap->Width = FileIconImage->Width; - FileIconImage->Picture->Bitmap->Height = FileIconImage->Height; + int Size = DialogImageSize(); + // Use exact DPI-scaled size, not approximate scaling by font size. + // Otherwise we stretch icons unnecessarily because the canvas + // is one or two pixels off the icon size + FileIconImage->Width = Size; + FileIconImage->Height = Size; + FileIconImage->Picture->Bitmap->Width = Size; + FileIconImage->Picture->Bitmap->Height = Size; FileIconImage->Picture->Bitmap->Canvas->StretchDraw( - TRect(0, 0, FileIconImage->Width, FileIconImage->Height), + TRect(0, 0, Size, Size), Bitmap); } __finally @@ -287,10 +293,9 @@ void __fastcall TPropertiesDialog::LoadInfo() Caption = FMTLOAD(PROPERTIES_FILES_CAPTION, (FFileList->Strings[0])); LinksToLabelLabel->Hide(); LinksToLabel->Hide(); + LoadDialogImage(FileIconImage, L"Multiple Files"); } - FilesIconImage->Visible = FMultiple; - FileIconImage->Visible = !FMultiple; ChecksumGroup->Visible = !FMultipleChecksum; ChecksumView->Visible = FMultipleChecksum; } @@ -317,7 +322,7 @@ void __fastcall TPropertiesDialog::LoadStats(__int64 FilesSize, if (((Stats.Files + Stats.Directories) == 0) && !FMultiple) { TRemoteFile * File = (TRemoteFile *)(FFileList->Objects[0]); - assert(File != NULL); + DebugAssert(File != NULL); FilesStr = File->FileName; } else @@ -378,7 +383,7 @@ void __fastcall TPropertiesDialog::SetFileProperties(const TRemoteProperties & v void __fastcall TPropertiesDialog::StoreRemoteToken(unsigned int ID, const UnicodeString & Text, const TRemoteTokenList * List, TRemoteToken & Result) { - assert(List != NULL); + DebugAssert(List != NULL); const TRemoteToken * Token = List->Find(ID); if (Token == NULL) { @@ -400,7 +405,7 @@ TRemoteToken __fastcall TPropertiesDialog::StoreRemoteToken(const TRemoteToken & { if (FUserGroupByID) { - assert(List != NULL); + DebugAssert(List != NULL); int IDStart = Text.LastDelimiter(L"["); if (!Text.IsEmpty() && (IDStart >= 0) && (Text[Text.Length()] == L']')) { @@ -563,7 +568,7 @@ void __fastcall TPropertiesDialog::FormCloseQuery(TObject * /*Sender*/, void __fastcall TPropertiesDialog::CalculateSizeButtonClick( TObject * /*Sender*/) { - assert(FOnCalculateSize != NULL); + DebugAssert(FOnCalculateSize != NULL); bool DoClose = false; try @@ -597,7 +602,7 @@ void __fastcall TPropertiesDialog::ResetChecksum() //--------------------------------------------------------------------------- void __fastcall TPropertiesDialog::CalculateChecksum() { - assert(FOnCalculateChecksum != NULL); + DebugAssert(FOnCalculateChecksum != NULL); ResetChecksum(); FChecksumLoaded = true; @@ -688,7 +693,7 @@ void __fastcall TPropertiesDialog::CopyClick(TObject * Sender) TInstantOperationVisualizer Visualizer; TListView * ListView = dynamic_cast(GetPopupComponent(Sender)); - assert(ListView != NULL); + DebugAssert(ListView != NULL); int Count = 0; UnicodeString SingleText; @@ -696,7 +701,7 @@ void __fastcall TPropertiesDialog::CopyClick(TObject * Sender) TListItem * Item = ListView->GetNextItem(NULL, sdAll, TItemStates() << isSelected); while (Item != NULL) { - assert(Item->Selected); + DebugAssert(Item->Selected); SingleText = Item->SubItems->Strings[0]; Text += FORMAT(L"%s = %s\r\n", (Item->Caption, Item->SubItems->Strings[0])); diff --git a/source/forms/Properties.dfm b/source/forms/Properties.dfm index 66d4d8f9..63a77093 100644 --- a/source/forms/Properties.dfm +++ b/source/forms/Properties.dfm @@ -55,35 +55,6 @@ object PropertiesDialog: TPropertiesDialog DesignSize = ( 338 346) - object FilesIconImage: TImage - Left = 11 - Top = 8 - Width = 32 - Height = 32 - Picture.Data = { - 07544269746D617076020000424D760200000000000076000000280000002000 - 000020000000010004000000000000020000C40E0000C40E0000100000000000 - 00000402040084828400C4C2C400FC02FC00FCFEFC0000C681000012E7000000 - 770000175400004EC50000F61200007700000000000000000000001300000000 - 0000330000000000000000000000033333333312222222222222222222220333 - 3333331444444444444444444442000333333314444444444444444444420203 - 3333331444444444444444444442020003333314444444444444444444420202 - 0333331444444444444444444442020203333314444444444444444444420202 - 0333331444444444444444444442020203333314444444444444444444420202 - 0333331444444444444444444442020203333314444444444444444444420202 - 0333331444444444444444444442020203333314444444444444444444420202 - 0333331444444444444444444442020203333314444444444444444444420202 - 0333331444444444444444444442020203333314444444444444444444420202 - 0333331444444444444444444442020203333314444444444444444444420202 - 0333331444444444444444444442020203333314444444444444441000000202 - 0333331444444444444444144210420203333314444444444444441421000002 - 0333331444444444444444121042104203333314444444444444441104210000 - 0333331444444444444444101210421033333311111111111111111411042103 - 3333333314444444444444441012103333333333111111111111111114110333 - 3333333333144444444444444410333333333333331111111111111111133333 - 3333} - Transparent = True - end object Bevel1: TBevel Left = 8 Top = 47 @@ -199,6 +170,7 @@ object PropertiesDialog: TPropertiesDialog Top = 8 Width = 32 Height = 32 + AutoSize = True end object RecursiveBevel: TBevel Left = 8 diff --git a/source/forms/Properties.h b/source/forms/Properties.h index 7310b75b..4ec43a35 100644 --- a/source/forms/Properties.h +++ b/source/forms/Properties.h @@ -27,7 +27,6 @@ class TPropertiesDialog : public TForm TButton *CancelButton; TPageControl *PageControl; TTabSheet *CommonSheet; - TImage *FilesIconImage; TBevel *Bevel1; TLabel *FileLabel; TLabel *Label1; diff --git a/source/forms/RemoteTransfer.cpp b/source/forms/RemoteTransfer.cpp index acea3041..6b02a418 100644 --- a/source/forms/RemoteTransfer.cpp +++ b/source/forms/RemoteTransfer.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include "RemoteTransfer.h" //--------------------------------------------------------------------------- @@ -18,14 +19,14 @@ #endif //--------------------------------------------------------------------------- bool __fastcall DoRemoteCopyDialog(TStrings * Sessions, TStrings * Directories, - TDirectRemoteCopy AllowDirectCopy, void *& Session, UnicodeString & Target, UnicodeString & FileMask, + TDirectRemoteCopy AllowDirectCopy, bool Multi, void *& Session, UnicodeString & Target, UnicodeString & FileMask, bool & DirectCopy) { bool Result; TRemoteTransferDialog * Dialog = SafeFormCreate(); try { - Dialog->Init(Sessions, Directories, AllowDirectCopy); + Dialog->Init(Multi, Sessions, Directories, AllowDirectCopy); Result = Dialog->Execute(Session, Target, FileMask, DirectCopy); } __finally @@ -43,14 +44,16 @@ __fastcall TRemoteTransferDialog::TRemoteTransferDialog(TComponent * Owner) Caption = LoadStr(REMOTE_COPY_TITLE); } //--------------------------------------------------------------------------- -void __fastcall TRemoteTransferDialog::Init(TStrings * Sessions, +void __fastcall TRemoteTransferDialog::Init(bool Multi, TStrings * Sessions, TStrings * Directories, TDirectRemoteCopy AllowDirectCopy) { + FMulti = Multi; SessionCombo->Items = Sessions; FDirectories = Directories; - assert(SessionCombo->Items->Count > 0); - assert(SessionCombo->Items->Count == FDirectories->Count); + DebugAssert(SessionCombo->Items->Count > 0); + DebugAssert(SessionCombo->Items->Count == FDirectories->Count); FAllowDirectCopy = AllowDirectCopy; + LoadDialogImage(Image, L"Duplicate"); } //--------------------------------------------------------------------------- bool __fastcall TRemoteTransferDialog::Execute(void *& Session, UnicodeString & Target, @@ -66,7 +69,7 @@ bool __fastcall TRemoteTransferDialog::Execute(void *& Session, UnicodeString & break; } } - assert(FCurrentSession >= 0); + DebugAssert(FCurrentSession >= 0); DirectoryEdit->Items = CustomWinConfiguration->History[L"RemoteTarget"]; DirectoryEdit->Text = UnixIncludeTrailingBackslash(Target) + FileMask; FDirectCopy = DirectCopy; @@ -77,12 +80,17 @@ bool __fastcall TRemoteTransferDialog::Execute(void *& Session, UnicodeString & Session = SessionCombo->Items->Objects[SessionCombo->ItemIndex]; CustomWinConfiguration->History[L"RemoteTarget"] = DirectoryEdit->Items; Target = UnixExtractFilePath(DirectoryEdit->Text); - FileMask = UnixExtractFileName(DirectoryEdit->Text); + FileMask = GetFileMask(); DirectCopy = !NotDirectCopyCheck->Checked; } return Result; } //--------------------------------------------------------------------------- +UnicodeString __fastcall TRemoteTransferDialog::GetFileMask() +{ + return UnixExtractFileName(DirectoryEdit->Text); +} +//--------------------------------------------------------------------------- void __fastcall TRemoteTransferDialog::UpdateControls() { EnableControl(NotDirectCopyCheck, @@ -130,6 +138,16 @@ void __fastcall TRemoteTransferDialog::FormCloseQuery(TObject * /*Sender*/, { if (ModalResult == DefaultResult(this)) { + if (!IsFileNameMask(GetFileMask()) && FMulti) + { + UnicodeString Message = + FormatMultiFilesToOneConfirmation(DirectoryEdit->Text, true); + if (MessageDialog(Message, qtConfirmation, qaOK | qaCancel, HELP_NONE) == qaCancel) + { + Abort(); + } + } + if ((SessionCombo->ItemIndex == FCurrentSession) && (FAllowDirectCopy == drcConfirmCommandSession) && !NotDirectCopyCheck->Checked && diff --git a/source/forms/RemoteTransfer.dfm b/source/forms/RemoteTransfer.dfm index aa74c8eb..e966333e 100644 --- a/source/forms/RemoteTransfer.dfm +++ b/source/forms/RemoteTransfer.dfm @@ -19,7 +19,7 @@ object RemoteTransferDialog: TRemoteTransferDialog 179) PixelsPerInch = 96 TextHeight = 13 - object SymlinkGroup: TGroupBox + object Group: TGroupBox Left = 8 Top = 6 Width = 404 @@ -51,46 +51,6 @@ object RemoteTransferDialog: TRemoteTransferDialog Width = 32 Height = 32 AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC300000EC301C76FA864 - 0000046D4944415478DAC5D70B4C53571807F0FF6D8BC68DF8082E668988EE99 - A823DB32B285CD644CE5E1109C060DC9C6CC00BB8A7320733E06584031BA301E - 96968A315B266EE8629468CCD4CD17E202F228886C5DE6C6433B68D79652DBD2 - D7D9EDBD5A297D785B597692F6DED3F47CE777BF7BEE775A0AFF73A35C6F5BE4 - 174990E39A2C76244973E28C930628DFF036080706A1BF74ECCA6F68550E355B - EC24E171111E0087935B222E750D40376AC1F55ED563233C00360737406FBF06 - EA11B31B4181A4960BE3342103F26A7F265F09E360B139B1E3D0C58003F666C5 - 413F6AC6F0888941685D885B83DD3C8AF74E280806902BBD402A444B61B23A39 - 0D9A2A00D4FA71088319CD3D833D951B972D0E09B059F223A9CA898771CC819D - 753F051C5096BD147F0D8DE00ABD0E0CA631F7E72AB51ED59B12A890009BAACE - 92039B1361303B380F74D24F431F0D19501BE0A417EFF91625249F268506D858 - 718648725760C4644741DDB947DF82694F043B8FDFBAC10044E58DA4266F2574 - 34804BDB53DF84C9AA1B0C40F8E54922CD4F85F69E1D85F2B37E83BD3E560D01 - 2CF875D627D82D5A3B2975830164EF3B41649FAD82C61838032DD5CFE1A598D9 - E8ECB0E0AD750731635E2C27C0C4BA41F896951559895A3720ABEC38917EBE86 - 0188E5A7FD064AB6E622397D01FE19B6A2BD5983F96F6E87AC232AE0E413EB86 - 0BD13CAE6E30808F763710D9B634A88DB680C1DA25CF33008AC787C944D07AE9 - 0EC22353F1E2F252F0F8617EC779D70D1762A0BB52B42C9A01AC2FF98EC8B6AF - 857AD48E6279A3DF40A98E7C37009400762785CE6B77D17BE729743E99031B15 - EE35C65537FE54E971F5E6A0CFBAC1003E141F21B21DE9181E0D9C812ED90B1E - 00FAB241283E940A35FA6F132C4A3988F039BE8BA1BFBAC1000E972C21B3A93E - 4E0B6A22807D09A0EA33A0EDEA203AF8191812BCE2777C71E67218CD56ECAFBF - 0C69DEBB2CA0B1741E494EA44F2836983BB0579F3DF706B07D83CE8296734A44 - 2CCC44546C1EFD19CF2FA4807EDC65F9290100D4C3AB9B88A17CE2D8BE95DED0 - 6E9C57A267280A8A29197060AAC7C4A5C22416507B06F2ADAB8205B0FD4000D7 - B993F0D0DDF407B4BA39589876DC67060A6B4FA36EDB6A5F80FB8128BEC73D0E - 1670F3DA6D286EF1D114B6C56362B130993916494FE1D0CE347F00EF45E60108 - 901DD72D68BBA0846DCA6B58105F0E5E98EF8DABA8E6240E17AC1B0748203E17 - 5C300083DE8A567A112A8CB1E8E5AD0081F7EEBC4B98721F70025F17A53F0044 - 5EA7A3BCC1F931F4717B54FD067435FF8DA7979461C6B3498F8CB34BF203BE11 - BF4F05F50382C954FA7C1AF0303B047CFCDEAD81A2D3845F480674981B3046E1 - C7EFB18003C7F06D4946A800F6CAD952AC82DEF20CE6C6D740302D82732C7175 - 03EAF7AC0F1D603613B45CBE0B8566313A9CA970D299E0D2BE10AD618EC55547 - 71746F6668002DBD1DB7D1DBF1F497B762E6A20F8209E16EC595F5F87E5F76F0 - 80E89808B4DF30237AB51CD69931214DCE028EA061FF86600191F4BF166AFAA9 - 7B39AF1A9DB3429EFC410B1AF05FB47F019CF95B3FF06E46AF0000000049454E - 44AE426082} end object SessionCombo: TComboBox Left = 49 diff --git a/source/forms/RemoteTransfer.h b/source/forms/RemoteTransfer.h index 3b923a2e..2f3a9625 100644 --- a/source/forms/RemoteTransfer.h +++ b/source/forms/RemoteTransfer.h @@ -13,7 +13,7 @@ class TRemoteTransferDialog : public TForm { __published: - TGroupBox *SymlinkGroup; + TGroupBox *Group; TLabel *SessionLabel; TLabel *Label3; TComboBox *SessionCombo; @@ -33,18 +33,20 @@ class TRemoteTransferDialog : public TForm public: __fastcall TRemoteTransferDialog(TComponent * Owner); - void __fastcall Init(TStrings * Sessions, TStrings * Directories, + void __fastcall Init(bool Multi, TStrings * Sessions, TStrings * Directories, TDirectRemoteCopy AllowDirectCopy); bool __fastcall Execute(void *& Session, UnicodeString & Target, UnicodeString & FileMask, bool & DirectCopy); protected: void __fastcall UpdateControls(); + UnicodeString __fastcall GetFileMask(); private: TStrings * FDirectories; int FCurrentSession; bool FDirectCopy; + bool FMulti; TDirectRemoteCopy FAllowDirectCopy; }; //--------------------------------------------------------------------------- diff --git a/source/forms/Rights.cpp b/source/forms/Rights.cpp index b509a4f6..1453b68c 100644 --- a/source/forms/Rights.cpp +++ b/source/forms/Rights.cpp @@ -43,6 +43,8 @@ __fastcall TRightsFrame::TRightsFrame(TComponent* Owner) UpgradeSpeedButton(OwnerButton); UpgradeSpeedButton(GroupButton); UpgradeSpeedButton(OthersButton); + + SelectScaledImageList(RightsImages); } //--------------------------------------------------------------------------- __fastcall TRightsFrame::~TRightsFrame() @@ -51,7 +53,7 @@ __fastcall TRightsFrame::~TRightsFrame() //--------------------------------------------------------------------------- void __fastcall TRightsFrame::SetStates(TRights::TRight Right, TRights::TState value) { - assert(((value == TRights::rsNo) || (value == TRights::rsYes) || (value == TRights::rsUndef))); + DebugAssert(((value == TRights::rsNo) || (value == TRights::rsYes) || (value == TRights::rsUndef))); TCheckBox * CheckBox = Checks[Right]; if (CheckBox != NULL) { @@ -140,7 +142,7 @@ bool __fastcall TRightsFrame::GetAllowUndef() } else if (Result != Check->AllowGrayed) { - FAIL; + DebugFail(); } } } @@ -309,7 +311,7 @@ void __fastcall TRightsFrame::RightsActionsExecute(TBasicAction * Action, else if (Action == CopyOctalAction) { TRights R = Rights; - assert(!R.IsUndef); + DebugAssert(!R.IsUndef); if (!R.IsUndef) { TInstantOperationVisualizer Visualizer; @@ -537,14 +539,14 @@ void __fastcall TRightsFrame::DropDown() { if (Button->Default) { - assert(FDefaultButton == NULL); + DebugAssert(FDefaultButton == NULL); FDefaultButton = Button; Button->Default = false; } if (Button->Cancel) { - assert(FCancelButton == NULL); + DebugAssert(FCancelButton == NULL); FCancelButton = Button; Button->Cancel = false; } @@ -565,8 +567,8 @@ void __fastcall TRightsFrame::DropDown() //--------------------------------------------------------------------------- void __fastcall TRightsFrame::CloseUp() { - assert(FPopup); - assert(Visible); + DebugAssert(FPopup); + DebugAssert(Visible); if (!Focused()) { // this can happen only if called from on-click handler of drop down button diff --git a/source/forms/Rights.dfm b/source/forms/Rights.dfm index 354bc390..ec1e8bfc 100644 --- a/source/forms/Rights.dfm +++ b/source/forms/Rights.dfm @@ -895,6 +895,1487 @@ object RightsFrame: TRightsFrame 6A2E0AB362A8EC5B899A1790C161C57AA001B10C6FBEE0764155FF7206465C92 5155F3FE331001000A2BD9456419F3CA0000000049454E44AE426082} end> + Left = 104 + Bitmap = {} + end + object RightsImages120: TPngImageList + Height = 20 + Width = 20 + PngImages = < + item + Background = clWindow + Name = 'No rights-preset on permissions control' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA864000003FC4944415478DA + AD937B4C5B6518C69F7369694B2F50EE178101DE8AB28D4B300803FC87013133 + 43FF58E2658997096E210EA3710488BAB061100CCC88DB349B3341C7049D0E2A + 22D20221382EC331245060D481B40CDAF59C16D61E7A3C94B80C27BA25BEC9C9 + FBE5FDDEEFF7BD799EEF10F89F83F8A76242FACE789224DF103633799E082308 + 7E56C86D1C9C9597F43F4EDC13303923AF504453B551E1C194AF52BEDE24745D + B7D870F59AD9C5B9B917FB752D67EE0A989C96BB532C11B56CD7C4105767CD30 + 2D5AECBC9B9F2448E2C19000B5D77DC1FE181A9DE45D4E57D6C5AE56DD7F0293 + 32F2261235B1B106E31C6CACFDA49B35150D0C0C38625372943E12B2DE4FA5D8 + 132E4087C7A67EEDD7B76CFD5760726AEE366FA57428363274EDC0A58BBA0B89 + 42D9FDD77E5C5C9C58EA1F352C5CF8D0A861067676F9FEC1DE1F0C9B0293D273 + 9E0E0A50374ABCC430CE99CB05E0BB77E8BB23AF2A2622A4D8CAD8054D2D79FD + 7A6DCBE613A6E73D1B1CE87B4644D3989937170DE85A6AFFDE9C98917B302A24 + F0839B4E17E61716F7F47769BFDC14B8EBB9220345D131B8CBE038E7F0F92FEA + B66D0ADC7BA09C3F5153068A2470BC410B8A22415394F091A068CAB3E68DD3E8 + 9D63400AB24C8D8FDABEF9BC46B576F623404E2865E9853647EB06607D550944 + 221AA7CFB57B001E28BD0E75EADBA1FAAE0106528E99FC973135356E693E5DAD + FE44A1F01774EF0C8B0889334C4C17DF062CE38F551E82542246C3B79D1E9069 + 7E0E3DFA9F919DB603AA236F232D653B4CE64574B004BA34C90BD967EB93BC95 + 725D4A627CD4E4B4919FBE369FBF01587BE42D784BA568D2F608D351F8F4F831 + 0C0F0D2023330B4F492550EB5AA1898EC0ACF93AB4569733FA86C9F2D8A30F07 + 4DCFCE4378BB85FB58F6E35BC017F697F13587DF844A21C3F73FF579741BBB32 + 820FAB2B71F4E8FB888C8EC152F33988BF3A85AD51E1985DB22240A580519878 + D43857FA2ACB1EDE60CA1AB0EA9D62A87DE468EB1AF2E8E7B0DBB1BFE0259C6D + 6C142EF002CFF3F8A5A404F1E383880DF483D5B18C9EC999EE7D0C9B7E87CB6B + C0CAB2D7E1EFA784AEEFB2C714F72A077D6707F2F377835B7563B1A31D4C4539 + 1202D4585AB9091FC1ED71CB0D4C5A99570A18E6C406E0F3AF95F215A545080E + F045EFE098C759CFB31151100979E17C331C55157844A9C092F0B0DB4809B7C5 + B6E84AF05549C76C0CFFBB63E5990296FD7A03F0BD43071016E487C11183C714 + 9A5E87F27606579E781C293219ACC2A443E191B8A0495DC86C3A99E54B51DD09 + DE529FDF965738938BCBBE05DCBDB7B84748A99BFD190F8CF421D37019E3721F + 7465EEC22A4D6B9B4E55E7D449245B9422BA3B9CA643275C5C39817B887A85EC + 4907E3E839082CDD5EAF93C942C51495FB07C37CF627B136A2E9663C8DF50000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Default rights-preset' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA864000002E64944415478DA + 6364A03260C426686CE9A6C1C8C652069474F9FF9F519A91F1FFD3FF0C0C0718 + 7EFFE93A736CD715920C34B1F78A65616299AB2023C62A2CC007177FFFF133C3 + FD272FFFFEF9FB37EBF4C1ADB38832D0D4D6D39E958D75BFA19632E3E3E76F18 + 9EBF79F7F3FFBFFF3799189954C544043815A4C418CE5FBFFBFFD78FDF5EA78F + 6CDB41D8407BEFCBFA1A4A3A8F9FBF6678FBF1F3F20F3FFE65DC39B9FD93B1B1 + 3117138FF8443E1EEE14153929867357EFDC3A7D68AB3A5E03F56DBCD4F838D9 + 6E6AA9C80335DCBE76FAD0377D60B0FD4152CB04B4F02CD04283DB0F9F327CFB + F4C3F0F4B16D17701A6862E7E1252228B85580979BE1EEA3E7BD401794A02B36 + B5F36A969716AFF9F6E327C3EBB71F83816AD6E136D0D62342425478393B1B2B + C383E7AF8ACF1EDCD68711FBF65E79F21262137FFFF9C3F0E2D5FBD8D387B72E + C169A05F4CEE051616367D0622C19F3F7F6E6F5A32510DA7810171851F57CDED + E66365616698B1741B030B906661666660666602D32C409A192876E82424193E + BE7F8B61DD825E469C0606C617BD5B36B35D90839D8D61FEEADD08C358A08631 + 432CD87DE43C7106062514BF5C38B5458C878B8361E986FD6083DEBE79CD7070 + DF2E0647675706797905B0D8D67DA719989998181EDCBD41D8C079931AC5F881 + B1BC7ADB11B0AB962D9ECF70E2D86106533373869CBC22B08BB71D38C3C00A74 + E9F5AB97081B38ABAF5E4C58909761E3EE1360EFDDBD7D83A1BBB395A1B9A585 + 41455513ECED5D87CF81E5CE9D3D4DD8C0E9DD3562C02CC6B0E3E059B06BBE7D + FDCA909399C2B066ED5A06462656B0ABF71CB900F6FAD1A347091B38B9A34A4C + 4A5C8861DFB18B6057FCFDF79BE1D0FE7D0C61A1C10C3F7FFF038BED3F7E116C + E09EBDFB091BD8DF5A2E262725CA70E4CC55682C33338092110833323182C50E + 02930D88BF79EB0EC206F634958A29CA8A339CBE780B924C589850D322D0A023 + A7AF82E9556B371132B0683B90EB416C4EF9FF9FE1C8FA85BDB6380DA4160000 + 75082A24CF66D5930000000049454E44AE426082} + end + item + Background = clWindow + Name = 'All rights-preset' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC300000EC301C76FA864000003E14944415478DA + AD936B4C5B6518C7FFE7D2DBB89672291D63C4563721EA1CE065837664C904AA + 311A17B3C4CDE9F6C1CB083AD42533B038CD0613C1E03E905D3E00C65DD8DCA6 + B5C23627A561AC422945280C5A844A0914B02B7018B485E3D9999A21AB62E293 + 9CBCEF79DEE7FCCE93FFF37F09FCCF41DC2FB93E33FB519224DFE30E37B12CB1 + 92205817B75E0EC057D2DE78A5EF3F01D335DAB7043455919420A7A4E1A1778B + B8AA71CF240686DCFEC0426057AB415FB32C607A466EB6502CD03F9EAC24065C + 6E8C4E78187681751024B1263E264AB44A1E0D8BCDC1FA7DFEAC16E3F7867F05 + A669B47DA9C92A95DD398CC969E6C4C2F468BED96C9E513D99131E29262B6511 + 61DB1238A8B5A7BFA3B551FFD83F02D337E4AE0B09975854AB15773E686F317C + 97CAA517FE3C4F4949114AA293ACDC0FD7DAEC8360A66F3FD8D65C6F0F0A4CCB + CC79292E26AA562C12C239EC3EC0010F2ED157AD2D5526C617DC9A62384D3DDA + D6C63A7DF00E33B5AFC863A535029AC6E0883BDF6CD057FCBD385593BB37293E + F6B3399F1F236313DB5A8D75A783029FDF9E6FA7285A89654620E0B37EF3E517 + EB820277E61D608F97178122091C3B55078A22415314F790A0688ADF939C7F8C + 2D5DFC597FAF6DF2627579847C7BA88622681D08B696F1127B17012B4B3F8440 + 40A3EADC551EC043E93FA0DC3BC101AF5DB7F2F95FFABA3D1706CB62131223BA + 335ED8A81A734DE0E64F3DF67B8045ECD192FD9088853875A981078D8E0CA3A9 + F1473C93AD45BC42C103EB0C6608399D1D7D36B7893D59AC50CACBD45B3330D8 + E944B3CE746311B0E2F03E844824F8BAAE89EFE8E4B1A3B05ACCD06CCAC2EBBB + DFE015BA6C6C835048A3DD7A7DDC429E166DD9B5394C1C2242FDF1AB2C67A5A7 + FE02BEBAA7882DFFE4034484AD80EE0713AF5B4F57273E2F2B4171F111886562 + 8C4D8E60D449E38E13CEB67C3A1B99362F4ED6AC45B7B1177D26478DABFAD68E + 45C0D28F0A101519CA7561E1759A6118EC7973374A2B4B70F0D23BF053B3582F + 7D1649D214D4F61E82FAB58DF0DDF6C358D5CCCC4ECDA9C66A999145C092A277 + 112D0B87C1F4333F9485F9001A1BAEE1BCAB120AB50CE1B161309FEF003D2746 + A23A0E8A6439ACBA2E8CF78FEF1BAAF21E59649B1D6F17B2870AF3218F91A2B9 + AD879F2C6F1B0185C317DF871D1D7868F303F0317E388C0348CE5903AF6B121D + 17BAEC434EEF2368C0EC12E0C7FBF3B0324E86B64E3B3F149ABE0B65318FC233 + 7918A0BAA1CC5ACD4D9B045816ED676C98F98D79CE553DA55B62EC1777163471 + CB866037631E7EDC64EB217ED887554FC763CCE6C1AF3786AFB8AABC5BEE7B53 + 9613315B112A5A11F92DB77D82EBD0E60FE0E5D1AFBCFDF7D6FC0E7511941296 + 0D29EC0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Copy rights-permissions as text' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000026C4944415478DA8D945B4F13 + 410085CFC6444C305EFE088FFA033431C4448520D2026D29787B1668B7ED960D + B50104E9634BBB45CAA55CAA544463A2128C1A0C84885CD407B9C54B521441A0 + CD568A8EDB6DDC509D0C9E879DD99D335F26FB65972384E06AEB300123CAE28B + B5AD647E442C8E337B0A8B4B5FAEB40C115FF5596CEF101A0CCFA79711199D19 + 5B4F6C9F624135E0E51B51D2565B0039F58B5ADC8CCB78B3FC15FD8F5F4F4296 + F3FDA27E9509BCD43448FC9642247EFCA4027373F661653D81B9A534746A3660 + 2DCC6302AB1A6E93005F842D990E9C9A5FC1D8DB4FEA7C61F10382B6F31C1358 + E91E20015B3136E49DAC82CDF790E5E01F591AD0ECEA2392A304EB896CA0DDF7 + 002C59A3AF16117D36A7C9D280A6FAB002D4632D91CADA2478EF632F59338B2B + 888C4C4F7072F2745B9D6E55051AC51E22097A7C8B679FD0E91BC6FFC89A5950 + A1B37E4B419E0A3438BB88545786E8D359441F8DE3266FC4B586100E1E390A96 + AC97EF3E63EA7D4C9DCF2BB224BE885381654288484E034C0E09CD16A35AA869 + 0A21F7D061D064EDCE52EC3B3E7ED9C4BD914904EDC51960A9FD967242232A84 + 201A6B0C5AB9DE1B054DD6DF49245310BD4368174A32403DDF4E02A20995CE20 + DCD5E55AD1E51D044D162DB59E083A9CFA0C506795885F3423B6B19D55BAEEBD + 039A2C5A2C9E0184C4D20CB0C412A0FE6DF6E71C004D166DE45BFBD1595F9E01 + 721CF54B42A9A3832AEBDCC9E3B8FB645C1BD36BBCA717DD2E231BA8B7B55365 + 599B3B71E6C431C5EC84F6DCEE09A3C75DC106EAAC41AA2C7B4B977AFF674C47 + 680D23DC606603D3EF96268B16A7A71BBD8D556CE0855A3FD993B42B7D4D17B9 + DF1B72B5E8CE7419E70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Copy rights-permissions as octal' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002524944415478DA95D4EF4B13 + 711C07F0F71164A4FDFA2BA2274210450F7A141442109AADEDA6DB5CF6EB71BA + EDF6CBA18DB9B4ED59CEEDB69C3FE674995646A04945D10F19580D7B34444228 + 515CFE189773F56DBBA3E1F4CBC53E0FEE3E70EF7B71DC9B3B8610825B9EA704 + 3293BBF87665FD5755CCA1D890CDE52C267FB8D9F998F89A2E229325340C6F3E + CF23F6F2CBBB543A735E0E2D8037EE8E926E433584AD3FD4E0DA8680D9F9250C + 4D7E8A4310AAFC0E765916BCEE7E44FCC61AA4377F53C1F2B23D584CA545343A + 319308986A2A65C146D74312E06AB12ED0C199E422DE7F5D10F7E4DC3704CD97 + 1959F0AA739804CC0AAC0AD9A280D9F75CAE835D6515407D5B94F0562552E962 + D0E27B8652CA2A80BAD6480E64B192DE2ABAC9D6358E52CAEA6E512D8BA0D631 + 40781B8BB157098C4C7C14C397CE9DC2643C8952CAF21BAB2B455063EF237C4B + 1D34661EF738AD18BEED0AA3E2F011945216CFD5322258670B13DEAE81CECAA3 + C32881CDEE30CA0F1E02ADACEDB3B0B486B9EF3FF1642A8EA04521816ACB83DC + 136AD1600BA2BD5923064D1DBDD85F7100B4B2768EB09985FDFE184236A504B2 + 5C88041C3A8CBE4E607C6A5A0C5D387B122F3ECC8256166D0CDE187AECAC04AA + 4C3CF13BF4F8B19A290ADDE91A01ADAC33278EED028DDE61841D6A09541A03D4 + BFCDDEB27DA095F56FDF3E9C6708BDADF512C830D42F096A6B0FB5ACFCBEF3CC + 7907D1DFA695075973885A166DB77823187036C8832A53905AD6E9E34761E9EC + 83B3A9BE70B6792288B8F4F260FEDDD2CAA28DDDDB8FC1F64679F08AC14FFE2B + 6D9BA8FB1AF317ACF1B5E8636157E70000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Paste rights' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002654944415478DA8DD4DF4F52 + 611807F0EF9B17AEB9B66E5B1B9BFC015E378D7EADE6C8902023111D4B3767CE + 6ACB120121B3B9BA296EAAC50FC99A524A59D4BAAA964DCD1B27126936544820 + 53102D314CCD13B229E9EBF1F0DCBC67E7F93E9F3D3B677B09C3302084607389 + C5D246805401CC1D87A3438B142A616D05C6B1BBF1A39C90953C86D9F13A0E3F + 70389E95A70C1A15FC2E10EC5F6BE4D4BEA2C23D3745FF4DA2BBC2E615B083C5 + 7C4654568685E86CA2516DF552E0ADD2CCC439DC3F00BF671415AD5EB22D78EC + CC294C073D9CDFC93F1A4468623A35301CE00603632982474F4B111AFFCA0906 + 7D13084F46B8C12305124C79BF50400B738EFDAF02DD91B905A1BD5E16A5C0C3 + 52317E8C0E5143365289FB97C5585C663663E872F9607FFFE9E3CCFC62EE2ABA + 013C74321FDF3D8314F824AD12C61A09624B2B54EF573486415F086D6F06FA10 + 8B098D57E5E175F060BE0881613735D49E5E05934A8A6A53E786F70D4A0132D2 + D33039338FCFDE55D4E936A92459EBA0407402FE411705DA779E87595D80B9D8 + 5FAAE71C9944EF5020F13C32360E8BBA8024C1BC3C7C733BA9A1A7191760D6C8 + 70C5DC09B63A90C5C3CB777D68D2CA92608EF0387CAE7E2ADCB12B0E6A0B31FB + 7B99158CFD5986FEDE0B58758549303B578831671F157EBEFB222C7572A82C1F + 5841953C0735063B9AF54549700F8F879FA1292AFC76AF16665D112251F60D13 + A8A11D0FEB156B60666FFC8ADAB755B0877F0D667D313456F60D2FC9B2A1BEDD + 86470D2584B05DB06BA5A86B66CCBA12843936541B1EA3E5BA921B2CD2581993 + 5E89D0DCD2B6A0D660436BE3596E505EDBC420C5B2DD2825FF002D8F6AE8A7ED + ACE10000000049454E44AE426082} + end> + Left = 112 + Bitmap = {} + end + object RightsImages144: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + Background = clWindow + Name = 'No rights-preset on permissions control' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA864000005004944415478DA + B5957B4C53571CC7BFF7F671696FA9D096CA4B991337D45564F842A6D3189D1B + C91297EC9F6DCE2D314216C304DFE274135F8BAF65730BC4C590982C6633EAE2 + 14C5A9A5E0702B080255986054845A2855E94BFABAFBF5B2A1280634D94D6ECE + B9F79CDFEF73CEF77CCF390CFEE787795643FAACB7E25846924BD577A9DB4BD4 + 3348F55641108E7BFDC1EF2C55671C2F0C98F2E63B8B250C5B9C18AB53C4C668 + A054708000B83C5E58BB1CE8B075DF0B21F461757969E97303D267672D5172B2 + 92B409C962C2366B177ADC5E30D473848AC7E8783D6452096AAFB60ABE807F61 + 8DA9B46CD880B4CCF9F11CC7DD986648E1DAEE76E1CE5D7B2310DA1072759E03 + A26550710B2860D7D851B1499A2835AAEB9BEF79BA3DA32D16A36B58009266EF + 9884D83C5E1981C6BF6FD67BBB3D994F06A7A7CFD1313C5F33E5B5E4D161B9EE + D8ECAB68167B8609C8BA9E313925D972FD167A7A5C73AB2B4F1B070B9A3A2BEB + 23AD467D2889E4BA6C69F9C36C3A99393CC0ECACE0BC9993D9F355753097BB65 + 8031305850584AA542D93E3DF55598CC968E6AD3C984210193662ED0472A15B6 + E9A929A83037749A4DA7463E2BE879FAF603162DC96F641866225EE8114E1F2D + D9FBF633018B16E7E863F489B6EF77AE43D88F129641F14FA554B29048C2AF04 + 522A597AA5F48F615854565BC404E1F69B2D4D9D474BF68C1C12F0EDF63514CC + 404A3E3FF87399089052F23EC823102304515E790541A954ECFB24A01850F6AA + 547CAECBD5F508109368FB66DB2A91C971321C3A7A4E4C28F977D4FFD5597F2F + 1C5FAD85AFBD034DEFE7003AFD0040919A1B27932ACECB64328DD3E99ED30FD0 + 1160EF967C71068A080E874F94F725A4EF86FA5A4470724C36A4C2BE311F1315 + 0C542A258C0D2DB8BD78059ADAEF8880629E37C8233863C68C344DB7E33E1A2D + CDFB0700767D99071A2C788502474A2B4539AED4D6E0E0811FC4A9AFC95F8D11 + BB0B91913206EA481E5DDDF750D1D60DD3D479F6B9BF1D5AA488909FC9483728 + 3DDE8730D759EA7B1F38330700BEDEF4B93803358DEED7B397C419D45D36E340 + D17E11B0A5701B12E572DCDD908729F13A44AB2361B53B70A1AD2B141BF00632 + 0CE3E50F7D3E5CACBFD61A0A0A33B29D4EFB638004DBF6825C30E4A068358F53 + 17AAFB24A2EF75AB56203E3E0E855BB7A3D7E787CF6643F3F2A5981ECD434F67 + 9295E4D0AA55625BC5B5EB1DC15E7F46B6D77B7B808BB404D8BA7EB9A8B9363A + 126515B57D0B4C8BFB45C15A248F7D19F92491CFEF47481060FCFD22A2F66DC6 + 346D2462482E7F300863536BD0E70FA465BBDD0D4FD954AB4BB06D59F7190158 + E8B46A18ABEAFB6D79E497C31893340AF3172C24400074E9A0AAB01009A6D378 + 3D4E2F02C3966E22B95A1DF70FE4385DCB06056C5E9D236EA691BA285C345FED + F7BF94FCCED3A5131242E2C57363F70EB0278EC1A089422024E052A71DB17402 + 8F1BA14623C9D5E672EDCC76BAD73F05D8B8729998304EAFC19F75CDE2E825EC + 631B8DD6A3657301B8F36518CF2BC53BD4FCC0898AD4CC1E83D9782C4919B124 + 85FE5FE971C1DAFB70758ED3BDBB1FA0214041DE525A54167455868F6131B9F4 + B15D2C78DCF86BEE4C64D29E90525C0DD9D1F3E9721C77783B2795EC898B53A9 + F6C5CB65B913681FD5529BDDE7FFA0FFB07BEF93957554A40E75ACC5586FE18D + 4B67A122AD2A264EC3CD5752071C76452AD546BD842D5490596E07829B98A112 + 0EF614F1FC7C866593C8E73F0EDAAEE63F6642CC28ABCBB5E31F4F3510B36665 + FA4F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Default rights-preset' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA8640000037C4944415478DA + B595E94F135110C0A7BB6DE9C10A96A35A824D306A0C5A1B5B51310846638C7C + 51D4F855FF00A389C603891A22A051BC200881A824624445F028825A6C692DD2 + 03DB42E5F02044BC5194825090AEAFAF658306654BC24B366FDECCECFCDECE9B + 79CB81691E9C7F1954AA9448422CDA0D1CCE26B49407D45D40D3553F4746CFBA + 1A6ABF4D19A04EDAB8852489CB31D2486A56D44C100B05583F3038041FBFF442 + F7C71EB7D7EBDD69355457040D5025A76E13F0B8E5CA8573399EE161E87AFF05 + DC033FB18D128B402E8B82103E1FECADAFE9A1915FDB6D7ACD4DD60045E2FA68 + 219FFF4ABD783EF5E96B2F74BDFBD43E0ADE4303BFDC8F7D7631975A47029123 + 8F912E9046CC048BB3C33DDADF1F67B3E97A5801D449A959B1B2C874491805CE + B6CE8E91BE81E576BBEEFB781FA532259C3743DCB86461DCFC9EDE3EE8FED093 + 6D35680EB303ACDEE848502C50BCEC7A0F5FFB7EA435E96B2A277A6969F286CD + 1133C26ECF93CBC0EC6C775AEBAB97B00324A7BAD72428420DD616707F76532E + 97AE7FA297E2E35342A968CA9DA45E044FCCCE7EAB5E43B1022C4B4EA5D7AE54 + 82B6C10E16BDE69F251C8C2F6348DBB1B7014D2B606AC374FB4AEEAAC9007479 + F149A091CCE3925058560D244100EA87C043E2994BF8E57A730B13E46D670720 + 006752C0B5A21C2C87F07950525E8B01DC406006827504684D8EE001572F66A1 + 9B0040240C81D28AC74C40BCF3715FE1D3D5D637050F28CD3F8E5244A38E1542 + D91D9D3F280AE66A7600417040A55E16009070BFCE8C753EFB9B97ADEC00972E + 64228986304A0C3734060C6871DAA1B8300FFBECDAB317D4EA040CD1D45910C0 + FF756D2E273B40C9B96328453448C229A8AC35E194B89AED50907716FBA4A767 + 40BC428983D6E86C0CC0F1DCC60E50947B04A7284A1206F7B566E6708F661C00 + 3E8F07E72FE4C3E09007837D6740FA5284ECE6C6467680825319E03B6529BAA2 + 6BF4B6C0E19270223B1304217CC8CACA8141CF304EDD23E373A6000C06233B40 + FEC9745C4532A904B44FED4C69DEBB5B05E1940836A76D05CFF00853A63845E8 + D1D63D6107389F7D10375AECEC48A86F6CF9A3FE434502A0BD344EA16FAD7BE6 + 64CEA0FAC143768033C7F763591E130DA6A656A6A9C871CDC625FCB27E6C03C8 + A7F2AE861DE074E63E9CA2B839B37C3F135CEFDCBFAE8AB1BC1B2D2F98F5F55B + 55AC004FD1940853186853C6CAD2DCA4FF02A66BFC06D55078288D6DC2830000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'All rights-preset' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC300000EC301C76FA864000004E04944415478DA + B5950B4C935714C7FF5F5BEC8B774B29EF8975E05079940D27031F8B4E47B6C4 + 3D92258A6CCB628CF33194391D6E6EA8648BD12C9B6E333A07B22C641AA2D910 + 9501E5B1816981522888AF8194478152A8A5451EEDEE775D00052298EC265FEE + FDBE7BCEF99D7BBE73CE65F03F0F66A60D65C22B7E1C86BB932C5F2762CF10C9 + 31B2BEE3743A2FDA47C6BED3575EED7B6A40EC8A5793B90CE754A05C2A94FB78 + 4324E4034EC06AB3A3B3A70F1D4693D901C7464D6941C19C01CAC4A41411DF25 + 2BFA390535D8D6D903CBA01D0C91F4701523D85F06171E17B58D779CC3A323EB + AACB0AAECD1A101DBFC69FCFE7DF7D614938BFADAB0786AEDE06C0F1A9C3DA5D + 0478B9C095BF96281C5D10240FF1F6748746D76CB6996CC17ABDCA3A2B0009CD + F1F901F254B14880869B2D3ABBC916FFB8B252B952CA88C5D5B18B15C16CB80C + C6DE34728A63B30424DD7A312A5CA1BFD50A8BC5BA4A537145359DD2F309499B + 24DEEE3921245C35FADB7FABCBF2E36707484C1A7B797914A7B8520B75E9A00B + A01A9D4E890DA548286A8F8B0C43995ADFA129CB0F782260E9F2B5323791D018 + 17198E72757DB7BAECB2EF4C4A73911D076C48D9DDC0304C049E6A38AFE4651D + 5F3F236043F256998F2CD078F2AB7D60F391CB6170EAD7023273C0E5B20F173C + 3273C8C323DF1886830A8D9E1A60F75B6EDFE8CECB3AE6FB44C0B7997B893203 + 1EC9F3B3BF5DA3001E31FE103201626BA2A4B27E5A40608AE7974E275280B183 + EDE7EEE74C007C028DDF1C49A34C3EDF05397945D420F73FAFB99340ECF8B342 + 3B05E09BECBA5824126A57BE95C8AD29D6A2B7C3943F0E9012C0F18CDDF40442 + 011FB9BF9752650E79AFD7D542C09F87A8682505B1A340A5018784D285C7C3ED + 663D05046EF654C5AE8B59B13046811E432F0A738AEF3D0238FA452A5102C442 + 212E1454D070D4D556E3ECE9EFA9D1BDFB0F20226209DB9670B5B49A3AC0B60D + 7D7D5DF775C7990F3D7C3CCEAF796F3575B2F0E722F4770FBCFD08E0EBCF77D1 + 4D7757112E15565103DA1A354EFF788202320E1DC1828561745D585E4B9CE1D0 + FF555353D5A37666DB13DF591E2C0992A055D78ADAABBA7243767FE224408031 + 337D2718726C2F77312E97681E8688BCEF4BFB08FEFE7E38743813F76D56D4B7 + 55C3D42EA4E16193E042E589413CDB2956BE168DD10723283A53EAB4D986961A + 73AC0DE30009011CDEBF9DC65CE2E5866BC443FA838981CFD23F81624128B6ED + D88EF4DCAD68B5DE44D0BCA5581FB605F6510B7ED2EC45C2FBCB207015A0A9A4 + 192DDA7B3FB4670F6C7B244D25D20063C6BE6D04C08154E20E55A56E3C2D2F9C + CFC5FC902094982EA2437817E1AB14D0FDD104F9D0228C3A863112DA83D0B810 + 0CF6D950F58BDA3C30E85058CE5BFAA6000E7EBC951693AFD4137FA91BC7D392 + 4742212697CEE613EBE1A11440BE480687C301DDA5260C598610971C43F4B8A8 + BBD800539B797B47B6E5E49442630107F66CA106FD64DEB8AE6DA6DE733913F9 + 6FB4B46357D626F82EF3822C4C0AC7C818F1DA0E77B91B4CFF98D174F956A3A1 + B53F122A8C4E017813407AEA073433C855C9B6616A9C37A98AD9D960BA8B1D67 + 93217BC90B92504F6AC431E6445D6E2386068657B79FEB2F99B6D9BDF1EE1EB6 + 342367D3DAEC30E306938F90B572887D84303698D055D39D673837F0E68CDD74 + AEC32FC543496A329F2C492233FAA107C31B7B736D1D8FCBFD0BE73AF5AFE06B + ABB10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Copy rights-permissions as text' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002B44944415478DAB5935B4893 + 6118C7FF238B20A8CBA08B28BAF7A68BE86E169A96600AA5A2F38064D632F190 + 8736371786582D4FDBD2A52CE7110BD3CA928212F38051608554A06060D66CC9 + 9C9B9B3BF8F67D1B7DADE5BEEFDD85FF9B87F7FD9EE7F9F1C2EF131142B09511 + B18062FD080D65CCE9419C4E1A65A35DCEEEE600EA5C31423D86BD7EF0FA0BA6 + 3EFF98707AC8095AC87F00B737F443A6E74CF86A5AC5E4A76F6F99ED71FAF351 + 666A4051F34B723BEF189CEE8D90CD8E751766172D9837593139B3F0B1EEC2F1 + 486A4081F605A99746636D3D3460DEB482F19905ACBB3C985D30A3F1528C881A + 90DF384C1AF26361737A79073698DE5F2B0ED4DF1F87A6208E1E70B1EE09692A + 8887D5E109D95CDD3526B48FCD3FA67180BC5B8344539400CBDAE680E5151B5A + 86A611AE691C20B7B69F684A12B16C0F0D687BF61E54A62DB1A62DBE61B69F6A + C9159B7D809CEB7D445B7A0659F25624C61CC1C3E7535C555764A2B8A61DFB0E + 1E8290696B4E17E6BE5B189DAD98604C63FA237D80EC6B3D445B9E0CB3CD8DD2 + 5A236E9465F82A9BCCA428B4F7BFC2DEFD0710AE690DD268910F90A1EC20BAAB + 69F8B9EA46C54D236AAE64F8069E8EBC83C7E3C5AADD01937D03E19AD67439D6 + 0F4897DF235A99C40790AB3B505D2CE106D8F3E998A318FD300F21D30223D30F + 435718EF07A456B4115D652696AC6E28EB3AA12A4CE71AD973614E220C8F18F7 + 794C0B8EBC7908CD25097E404AD95DA2ADCCC612F382CD62B1DA611818059F69 + C151DC790C7D59D25F80D0C0AEDD7B20645A60556807D0263BEB078844827F3D + B254DD82A6FDA9EC37A5A61F06452A3D40A230F29AE674B9B173C77644446CC3 + 49F161289BFA605449E801693203AF69690962740D8E70F7558DBDE8ACCEA207 + A494B7F29AC69E03EFAB1ABAD15393430F482ED5F39A161C557D277A6BCF8507 + A0DA1C100EB095F90D3BD920EFB73EBA010000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Copy rights-permissions as octal' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000029E4944415478DAB593C94F13 + 6118C69F399B68E249FF023D703031868B07C080604848350A048A204A8988C8 + 62010B5D0C8654656DA742B594940A040D822C259AA8A902C1256214B7608211 + 972A222D9482053EA7531C6BA1D3E981E7F2BD993CF3FEE64B7E431142B091A1 + 3C8042FD0301146A686189ECD7E544CE095DEED9CD01AAB22210E8329EC7371F + BEC7C8DBAF2141D600DCCB812F32FAC1868FB6590CBFF9FC94D91EA797444E09 + 061434DC23D5D9515870AF042CBB167F63FCCB0C266C0E0CBF9E1CABC9DE1726 + 189047DF25B539D1985F0C0C98B0D9313436C97CC432C63FFD40FDA9184A3020 + B77E80D4E5C6626E6199F78515A6FBD3E1426DC720B47971C201276B7A89262F + 1E0ED752C072C5F547C1F6C1DF340E907DB99B680B123033BF3E60DA3E87C6BE + 510437ED1D63DA370EC201B2D49D445B24C2B43330C0607981504D6BCC8A9862 + 0199173A082D3D8C6EEB4BDCBA33C2964531E1D8BB7B273BFFB23BD164798E50 + 4DAB964485B1808CF36D842E49C4B172032E16A7B165A9DAC4CD2CA0FF194235 + AD2E279A6201698A16A23B9782E372032ACF7A97965E32B1B3E7944A0EC1D8FB + 18824DB333A6DD1884E674AC17905AD64C6899181265132A0AC56CB1ACAAE5BF + 79EBB6ED08669A6F64FA01E8F2E3BD80E45203A1CB8FA2C7FA0A96FB4FD8425C + E41E84EFDA01658D1967324568BECDB8CF639A7FCA1AFAD05094E00524155F65 + 0019F83EEB5EB73CE370C2D865059F69FE915FE981BEF8E03F40B017366DDE02 + 3ED3D600E82E186447BC008A0AFAD7235DD5CA6B9A7F14DA4E18E5C9C20162B9 + 89D734DF9305683A60528985035264C6A0A6FD9D3D51D6B7C35C912E1C905472 + 8DE8564DEB5F35EDC0AA690AC634557E2A77B280BA56B455660A07244AF5BCA6 + F947556B46BBFA446800419B7DC20136327F00187DFFE0F756EC010000000049 + 454E44AE426082} + end + item + Background = clWindow + Name = 'Paste rights' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000030C4944415478DACDD65B4853 + 711C07F0EF91EAA1904A0BEAA1229F2BAC087AD0BC259A6E6ECE748845966482 + D8C54CCB394D94222299CE990A598499590D6D19D6536029A19998F74B6A9BD7 + 39B079D9DC74A7FF19B92D3CBB482FFDF6700EFFDFFFF7FB9CDF0E3B67144DD3 + A0280A6CC1E3098424759F3927DB6ED4D5C95F601D61EE6D0FE072B99BDDDC36 + 6948AAE50F70CC6432782A148AC57F06F87CBE374DBB5D20EB29249DC5AC912D + F964AFD464C2138542DEB62EA02CCEAB11147C56130D0B47CC470A34F9506BCE + 43B7D8F4A7F129A96AD8D73170C68BE62624403F3F6B4E5CAF18465E5E2EEB55 + 89C5396620581885DEB67628078690F46C98720A30059AB10173E2CEFB0D0E47 + CF0C59361F954363504F68D60FB81AFF17703246801965BFDD66351B535D20A9 + 26FD321D52921C30BF06088A1640FDB38FB54CB7A043BD47161E24FA33BF07D6 + 60965F35F6E14BEFA405F91B381D89E9915E7660518F773BC466C0B8624720D1 + 3E3485D1A93934F78CB592114E9525FACF5880C0283EA67EF4B016EA1960A718 + 054981D01B4D7601DD920183E3B31899D2A2B95BD5557029F080050810F03039 + D4CD0EE8F4A8F7CC8224391892972DAC7B12238E92C6BFD0D4A52217B18241A5 + 1A85C9C19405F08FE46162A0CB0EB044805B284C09C5BC7EC5E16D36917E1AAD + 0E929ACF905E0EB5027EBC088CF777B2162DE997A0F0C880F40A0745AF5BE02C + E2C30E4354DE80926B1C5B800B55EF77FBC0F67414A7F230BBB8EC146022ABB4 + 1EA5693C2B7082CB81AAA7831D2037EFCDB63414A74542266F75DA3C36C41BD9 + 0F1528CF1058015F0E07CAAE76D60203016AB7A642961E0DCD82D1A509B265B5 + 78248AB101C2C331DA69073010C0FD2A64378528ABFBEAB47954D021E414CBF1 + 383BD60AF8848561A4E31B6B81D16084DC3D0525997150CFB936418EB4064F73 + CF5A81DDFBF642AB56B36E3691D7D8875D199089CEA2E2ADF39719D7EF206E17 + 55A3323F7E15D8DF4C1E54C71D157DDC23824C7C0ED35AD726C82DACC2F3BB09 + 14E5E85F856D08D3CB6999F83CA65DFC8A722595A8BE77717D804B9D6D82017E + 030BD4EEE0974A24130000000049454E44AE426082} + end> + Left = 120 + Bitmap = {} + end + object RightsImages192: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'No rights-preset on permissions control' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000075F4944415478DA + BD977B5054D71DC7BF77F7EE837D00EE2E2F35181482014AC59547E2B83063E3 + 4498FC61A631669CA9356D13523436408C8989B136B5D644A6AD8F04DB461B13 + 0DCDC48426821AADBC05D9454076818520C444792FFB64977DDC9E7B11040306 + 24D333B37BEFEEFD9DF3FB9CDFEBFC2E85590EB55A2D61C4C1F13C1EB580FDED + F331DF51CEDE469D4EE798ED5AECA0662AB87CE5DA143E4DBD466E1F23D3C493 + 9F324EF2F595D7C3ECADAB2CAEFE51011E7C304DAC5A24394281DA2C97FA212C + 580945800C62A1907BEE1C19C1A0D9865BBD03B0DA87C1803936DCDF95A9D7EB + 47E60C101B9B26F3534A2FD27C5E52F4E285080D52C0E51A41DFA019C3CED1F5 + FDC442042902201209D1DD3788D68E6FE1F1FAAE0C0FD857EBF525B6B900F012 + 53D33FA7F9F413EAB8486EC7AD9DDF122526CEE40C4319B805282686754968D0 + 3C44472C849300EA9ADAE1F6780AB565454F1211DF7D012CD7A4AFE7535441C2 + C34BC09A5EDBD40687D3D54F946FEFEB729CEAEC2C718EBB285CBA91A2B04F22 + 16A956C44571AEB8DAFC35BC0CF3745D59D1BFEF0B205193F175903260717C74 + 04EA0CED181CB2DD647CAE47741517BE994A3E5EB3264208418532503E3F2166 + 091A5BAFA377D0DCAE2D3D13356B808495E92B689AAA6577E3F678D1D0D2C1E6 + 5B5A6D7971E9BD164B5CB536153C5EC9B2871783E6F339ABF97C1EB5AEFC5CDD + AC00D49A8C578402FE3E4DE24FA06FEB62FD5EA72D3BA3C60C46626AC655120F + CB622217A1ACF61A1B0BDBB5A5456FCF0A60852623DF5F26792E29FE2154D7B7 + C0E6701E22005B670240E61E9449C45B52962DC59546232C36C75132F7F9D901 + A4669C22B9BE61794C24CAB54D70BADD39BAD2A2BC1901A4A6BF2C1208F6AF5A + 11371A3B66DBC7240E9EF9BF01A853D3B3C502C181FB0678F297D9C5E4EFC767 + A26CE683397BFA78DEDA19013CBB6D775FFE81D755A4A6B255067C3E0FF91F15 + 71CFF83C1E09728A7C265E47EF49CDE0EED951A1358CAFC7CEEF6C6FE93D7DFC + 40C88C01DE7D7BA76AECB780A6F1F78F8B4715B1401394DE0DC1A3580006A535 + 4D730178B3EFF09F5900CE0410090578FF93F377764FDDA574CC02B7AF0C99F6 + DFAA86B9011CDCF72AE7028A28138B04F8E0F4C529CD3D11C25D5F0BC7F933F0 + DFF82C2E7599A605C8F7F30B6768BA80286EBB65B5FEFA7B009B5F7CB3EF6F7F + DAA162B7C20248FC443859587267B7AC723E8F33F7981BDCBA1A98F6FF1E0F2C + 08C18D21075A9EFA2DDCFE819CBC80E6A3BD55CF011C92C96205142E44464584 + 9A4C4318E81F3A3625C05FFEB89D8B0116801415147C593669C78DF53A9C3A71 + 8C33E0AF56FF0CCA8FFE81A484588484A860686E87BE67083736E58091FB8326 + 002DFAC6DED59F1E594753F4177131518AC8258B70ADA9151DD76F5C991220EF + 0F2FDF0600E432094E17574E0AB81D395B61B55A38F95478913E6CC1AAE40408 + 49BCB0A3416F449B8B41CFE65CF0A452749FFDCCACBE7C9E5E16172D0D5F108A + B68E6F6030767493C621794A8077F6E48EBA80280B904B5078FEF2247FBF9ABB + 0D26D320271F121484DC07E6C35771098FFC3486342822B073B58636748A03E0 + 4AD440FEF9092492633D2C4889AE9B3D6830760CBA7D8C668BCDA69F1260FFEE + ECD120240AE791F6EBCCC52B932CD06C68C281FD7B39F9BCBC3C84CD0F47CFBB + 7F85E3CBCF90121345DCE607C6C7A0A6D90893D58EC4A5915005FAE356FF2074 + C60EBB9BF1ACC9B20E574D99052CC0BE5D2F7169C8069A22508EB3A5DA491660 + 53EE171BD773F2E565A5A41F3471CF7A4FBC8F81E347911C158100A9045EAF0F + 36970B0104A8DF62458DF1BA9BFCF7C40B76FBB969D370130BF0FA362E065865 + AA79FEF8AAE2EA842A380AB171C3CF39F9CAF272F4F49BC601BB0B4EE2D6C177 + 9014118E7904821D66C730AA3BBAC8D1ECDB9069B315DCB30E6CDABAAB6FEFCE + 31000AC1CA405CBADC7057C1E1E1E9A7D671F297AB2AD0DB6FBE5DA480F63D6F + C079E12C92495C88053427E3F27850D9F91D1C1EF75B9916DB1B3F08F0D66B2F + 7241C8E67BA82A10E5B5FA0915F04E2C84052BB84C1930594079BD687D251B9E + 9A4A24870643403A2227516C72BA102693C2E1F6A0EA66375C5E4F4EA6D59E77 + 4F803D3BB68C5B603E515255D7CCC5037F9A33002E270CBFCB02EF5A3D12950A + 22478A93CF872AF2AEE0202A9692A636422E85D5ED4675EF00E3856FD37316FB + 896901766FCF1A0D42A26041A812B50DC6F1C3E6EE8388B159D194F51BF8B51B + 91E02FE78A97876440F59019CE47D320485F07CBAE1C269AE6510F919A324420 + 6A4D66C6036A5DA6D55A3825C0AEDC175463757C61980A75A4CFBF730E4C76C3 + 8D7FBE8781F70E2185141C56B98FB8AED6EE803D2109D2977672D5EC3FFFFA70 + 4073EEA47DA150181E2B16A38FB8E6AADDE1F6325833E78644623323A5A410B1 + 3E0F1691B25B3FE246AB3214DA95E9606EF7076C43B2FA93FCCDC4081742F8FC + D87852313B49B7DDE6761B66FC727AAF317AC85025FE3C4A6561189DC7624DCB + 02BEF75A46224F2195CBBF50F0A8476DC4522EC697F3A300B0E3885C14CD6704 + EBED36DBE16C60703AB9C3808C96CBF790DB96E7ADD6A3FF0386DD3204D50DCF + A60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Default rights-preset' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA8640000054E4944415478DA + C5967B4C537714C7CFBDB74FA89542AD0FE6A8BA8982BA417189D15A966573B3 + 7F2C9A2D8EC8A2C932B3BFF60FC66DE08C6C12D97C6CCE189D4F980FF6D0A914 + 5A1F481F5004DA6A113AA0B0699C9BE0605428A0A5EDDDAFF7DEDE5266B65EBB + C7AF4D6EDB737EBFF339E7F7FDFD4E31E038542A550229522CC2712C95C4311C + 0B067FF5F8A0B5BBC930C875ADD0C0620EAC5E918DE3BCF781042D9A9530DE46 + 92E0C330F26200B01DD7CCD575FF28406666A6409C92F605727D5B9228C26728 + 522079F2241009F96832060F7C3E18B8EF85BBBFFD0E83DE11C40715A37DC31B + 5C2E93376E00A53257244F4B341038969B3E6B264C5724C3C3873EE8F70CC2F0 + C843148C04B14808F2242924888570AFDF033FFC781B0281A073ECFEF0F34EA7 + C91317408E467B8A87E379D9994F41A25804EE5BBF50999264F0019ADA814A1F + 442BCC458B48A6CA6590AE4C85317F00EC6D5DE8E9AFB199AB57A065828F05A0 + 526BB5380E558BD267814C2A0187AB0B86461E78D084A2A0B7A7CCE1708C84B7 + 4894A2CCC33128150905D372163C0DA3A84A0E0481626FB0990D871E0B60F1F2 + 95AE649934236BFE1C68E9F809FA0606FB487F6099DD7AA1F351FE594B5F9CC1 + E3F1AD5249A23267E15C68EFBE1DAA568FCD3C3C13C0E4E704A05AF2D23C5CC0 + 6FCFCA9803042A43A8A4A8DCAFDA2DD5957F954D96E6E5253C201A4255138B04 + D0D4D2097E92D45CB7E82DDC00D42BDFE1F188FD9AE71682FBE61DB8D3DBDF61 + 3757CF871806D24DDD149974D933F36643BDC305A33EDF7687595FC80960F172 + ED4EA4EA822559F3C1D6EA86FB43234751F66FC504B0FC956D6291A868697606 + A503CFD0F00924C637B90168B4C793A4927C15527F634B0778BDA3BBED75FA82 + 5800549A95EF8AF8FC3DEA9C05D0EABE05F7FA066A6D16FD0B9C01649325F9D9 + 19F101B421805EAE00ABD6179C413FAE8E2558AC0309B8FE6CF92E754C00ABD7 + 17F47E73F81345E84E456FE0F3083870524FD9707422D0AD483D71F6497F26B0 + C8774B735BD49A3FDF74C3F765BBB098012A0E962A68721284023E1CAC30D08B + 33410816201A023547EA69BC7A233E809307B62BE8FC01351D011CF9F612159C + 2022107F0E1EB6E370B9FE7A7C00C7F7972898F85493293F5313A9000A42FC0D + 84C1E4880FA07CDF3606800449A2184E9C3346F67EDC5EA38F74D6E3B70555A0 + AAB699D10CED7BB3AB9D1BC0B1BD1F311A00983C2901BED699A3326DBBE18453 + 5F1D05BF7F0CF2F2D7C132752E2D44C6AEBBD2CCEA2134C7DDDECA0DE0C89E62 + 5684E83E80D3FAFA48B951DA5B0A37427F7F1FE52F140AE1C0A132540982DD86 + 6AA37DDCF660E042C09C000E7DBE55114A3FB40B294993E0ECC586A83DDFBA79 + 13F4DCBD4BF94B24123878B88CF20DFB18288088BFF39A9D1BC097BBB7B02294 + 274B4157D31425B8EEAE4E282D29A6EC9B8B8A60D1B3390C00ED73C1ECA03483 + 3115B335377103D8BFF343FA18A2B7429E047AA36D82EA3158B7760DE55F5979 + 1E7C4CB70FDB2E59AEB1975608A2C16AE506B0EFD32245F8FBB42932B8482D88 + 8DBB807058FBC66B94BDAA52877A3E469D98708542F700EB8F2A60325BB801EC + 2D2DA445885EA95353E08AD5195581D0C26B5E5F45F9EBAB7410001E0340DB6B + AD2D28738C85B85C53CB0D60CFF60F5811CE9C2E075363EB237BC074850CDD05 + 180C78BCCC16D036E3D516EA18620C80FEC2256E009F95BCC71EC3B45405D4DB + 5DECB926266881BD1FB048C6C609C0E775066E00BB3EDEC4F602E51353A1F17A + 4754B3992848620284A5A92DCAE7F4591D37801DC51B5911CE7E721AD86EB8E9 + E044A8ED3EA2073070E16655677345F5878AEFCEC50EF06FFC2141A301012C8D + 09E0BF1EFF3BC01F2920363F437877A10000000049454E44AE426082} + end + item + Background = clWindow + Name = 'All rights-preset' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC300000EC301C76FA864000006E74944415478DA + BD970B54D3551CC7BFFF3D608C2108834066BE505289C0419A25707A9D84E3E9 + 9D1665D9E9F4142D33B2C7514F0F330BB24CCB3A2562BE7A509E127C06639224 + DB84B5F1920C1008190C36E6D8D8D8BFFBBF8B013A6DA8A77B0EECBFFFFDDDDF + EF737FAF7BC76094432E978B5951443C8FC74473DF5D2EB695B17568D56AB575 + B4BAB8C1F82A38EBE6F973F802E675F2780759261A39CBDAC8BFC3034E769DA6 + ACA8FCAA024C9C9826924E106F61C02C090A0C4054441842832510F9F9D1795B + 7F3F8C260BFEEEE842EFB93EB060B7F575363DABD7EBFBAF1860E6CC34494058 + E051019F7763EC641922C34361B7F7C36034A1CFE6D61F20F243786830FCFDFD + D06E30A2EE740B9C03AE137D5DE76ED3EB4B2C5702C04B4E4DFF49C0172C90C7 + C5D01DD735B61023DDD4E52CCB5453050C3B830B4964F858C44E92C14600D5BA + 06389CCE7DAAD2C2FB8888EBB20066A5A43FC46798BD89D3A78073BD4A770A56 + 9BBD9318CF36345977373696D83C21BA36309361B05E2CF29726C54DA5A13859 + F327065876A1A6B4F0DBCB02484EC9F8333C2C78727CEC2468AA1B60ECB1B4B1 + 2EFB4DEA63479ABDC9C7A7DC39C90FC263612141E312674C81B6EE2F74184D0D + 2AC5FEA9A30648BC393D4920602AB8DD389C03A8AA3DCDD55B5A85B248712965 + C9F3E6A782C72B49983E19023E9F7ACDE572CAD5CA839A5101C853325EF513F2 + D7A7245F0FFDA9262EEE1A55E97E397C18C9A91927493E24CC889980D28A3FB8 + 5CC856290A3F181540524AC6D63112F1D337C64F4379652D2C56DBA70420CB17 + 00B27693442C5A3A27E13A9CD0D6C36CB17E41D63E333A80D48CDDA4D617CD9A + 1103A54A079BC3F1B25A5198EB13406AFA2BFE42E186794971EEDC3159F6903C + 78F87F0390A7A6AF10098539970D70DF132B8AC8EBBB7C31E6FB600F14E4E5CE + F709E0C9E56B0D5B73DE94929ECA7519F0F93C6CDD5948E7F83C1E497286FC0D + FF743F939E419FB9714C55EDD1C7AD6F6CA8ED28C8CBB9C66780CF3E78433AF8 + 5D2810E0CB3D456E431CD030A3E743F0180E8085E277DD9500AC316C7E9F03A0 + 2E80BF9F105F7F776868F7CC7946073DF0EF274B96FDFA5BD595016C5AFF1A0D + 01438C89FC85C82F38EAD5DDDE205842704879D22B407466808C11F89713211D + 9C6C56CB2EF3A90B00962C5B63F8E4BD55526E2B1C8038C01FBBF6950C19E28C + F379D4DD8361181E16961C3D450A15D5C5BD130AF868A8D3BB011607EF89BF25 + 6EA12850844A4595A3DFEE58E31560E3BBD934073800D254B0F797D2113BD656 + AAB17BC736EAC0C54B9E4252F26C0F888B801795A83C80020250ABD7761C777E + F180244452BAE0B90CDAA63BDBBA7030EF88C52B40EEDBAFFC0B000449C42828 + 2A1B9170AB5ECE426FAF99CA070707E3E34FB77AE03880830A8D479EDC25A0AD + 521B2AD86D7FCFBD6776BC2C56463756F6D37134D79EF1EE810FDF5AE90E0151 + 101C24C6BE43C747C4FBB595CBD1DD6DA4F2111111C8D9B8D933E772B97098E4 + C0A03CB7DB22F5F6DE73D1F541A98FCCA36BBA5ABA50BC4BD9DCDAD413EB1560 + C3DA15EE24240AC692EBD7FEA3274678A0A65A879C0DEBA87C6E6E2EA2A2270C + 79C0C5E248592509074337E024D7C5AF2BB291FAC41C8C9106D1DA2ACE53C064 + 303FD89A6FFADE2BC0FAD52FD132E4E2181A12840324A9867B808BF5E2CC87A8 + BCB25441EE83DD9EB901E2816252868365A968DC8DEEF07AC4DF1E47E59BB4CD + D01ED22B5AF27BD2BC96E1E31CC09BCBA583592C1D3B06878F9D1CD605DD8632 + 173D40E5CB944A349C69C4470756635AD44C3C3CF75994946BA95C8FAD1DDFFC + B116694BE6422812C26177A2F82BE5405F9F2DE1EC0E8BCE3B40D66AC3BA3706 + 0118448485A0F878D5790D8787850FDE4BE50F1CF9194F6F5904618C0B9D8D46 + DC7AEDDD8809B89D86EFDBAAF721BAA11F136E184F656B8AEBD054D5F259EB76 + D3F3176D441CC03BAF2FA349C8D57BA43404CA0AFDB00E38940B5111A1786ACB + FDB0447461CA4D13E90E353F6871BDE4568C0F9986C2339F6376A69C66BDD568 + 45F94E55B7E99C2BC6FC9DD9784980B7562DF578601C31F29BA686E603DFCB19 + 90B56D1198A9768C4F1C47D73B6C4E5416E83040AAF4BA059331561642DF57FE + A883B1A57B69DB76F3E64BB6620E606DF60BEE242406A223C3505155EF396CCE + 3F887AAC5D7831EF3188670A109D10E98168AB6CC7C4396ED7779EEE464D61BD + AEA5B927112570FE27C0EA95CF510F707D5C16258586DCF387CE810B8FE2CEDE + 762CFBEA3104260A71CDF4F021C5C4F5AE0117343B75B09AAD69ED3B2C175C6A + AFDA85C40E0B6AF00B6469A190C6867914B76ACEC27C0267ABB7D7447A5BE7F3 + 8F535F46F8A36362FCF84CF9A434595850B404F69E7E341CFCCBEE74D8A7B5E5 + F779FD3D715501B811F9B8846403FF47D2C845447923391B36B7E59BF65E4CFE + 1FAF88F30A81D0CD8A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Copy rights-permissions as text' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000045D4944415478DAC5D47F50D3 + 751CC7F1D7B80A24EFE44AC5132BC84B2CEF84BC8BF3F2E20F318D923C15078C + DF609452DDD525306063E97946710C4D08B6F14B7128B00AC51F7162663B1619 + 071E04C5CF63E4093819B09FB2C5B7CF7708E7DAC0EDBB3ADFFFC1779FCFF7F1 + FDECBB278BA2283CCE61CD013E3C7EC9490925A726F4A14502B6D6D99B3EFCD0 + F38054E145AAF09377E0C881D01FA9BADA81964E6533A6F43B9C45D8051CC8BF + 407DF36918CC338E1D4453DB1054933AC8DB079BEF690C3B6A9D40D8057C9057 + 4F157FB60BD366C700DD4A1546D43AA82674F8B9ADEF374AA70F1509382AC680 + F7BFFC8E2A49DB0D8369C621C0A4D68051B5FE01428B1BADBD1DA2F43D1B1903 + 5272BFA5C806D0DDFFDB21407BFF182EFCD2079379F6F31AF538C4197B598C01 + FB8FD551626E383406C700F4A8B5465CB9D98F718D11FD034A9466EE630E483E + 5A438933D99834981D06D03343D6F7FEA586B8EE3ACAB2239803928E9CA524D9 + 9150EB9C03CCCD21611DCAF951CC010987A504C0C1B8CEB4E0C2F1492D4ECA14 + 4ED26C836517102F384349781CDCD32E7C0234A050D60C5783651710C73F4D49 + F831B8AB3521AFF43C02D7FBE2A79B5DD81CB80E7F0EDC46F2BE10CC904815CA + E4703558760131BC4A0288C35D8D0987722BF182CF0A6C7B3D00CB967AE2C796 + 4EBCBC760D7C7D56A2487603AE06AB24274A650388CE2AA7C439F1189B3221E3 + AB5348D8B315EBC94DE969EF1EC48072046FBCB60192EFE570355864FD461B00 + 875B46890409189D9A4656DE697C141F86552BBC2CD7A6B47A54CAAE21386803 + AE28BAE16AB0C87A960D202A4342950812313A69022F7F16B0F259AFF98D0ACA + EBF192EF6A740E8EC2D56049B8E1B680C87431559C93841172020261150EC6D1 + 8065F39BD4372AD0D5ABC4131E9E703558A5596CFB80223E3901F20E7C5E5085 + 03B1D680DF7B86D0D0D402B727DDE16AB0CA7891F601277989965F814E6FC492 + 25EE706359876D624A8792738D7854B0169B34612D2AF81CFB80AF0940A55978 + 631A505CFD03FE1D2CBA0F6E6E0E5518E9C21A540AA2ED031CD9E029770FCC05 + 4B70A206AFBEE20779EB1FD8B2C91F1D3D4AA446BF8567BC96A2F6B202F7A74D + 88D9150C2D395161790378A9E1E0E69FC3A9C3B1B60016CBB12788CEAEB00AD6 + DAE757213478139EF67447537307D6F9ADB6A00A2A1A2C80F494DDE824B0AEBE + 61B0DFDE02AEB01A5547E2990338996556C14ADC1B02FF177D2CD7E860F50DDD + C1BB214128215F15FDDB4F89D88E26C52DF8AEF14600C97B96508A3347139903 + A2324AAD82F5714218BC97CFF642AB33A2B4A6113BB706A1BB7F1806E33402C9 + 695CBEDE8A64F69BE4943C4863A4901E4B620EA0DF95C58275BCE2BCE56BF0F1 + 5E4E5ECE190C0C8FE0CED8385263775AAEF34963AABFD8CF1C1091265A345817 + AFFD8A5B5D0396FF4F9BCC10492F2128C01FDBC97B420FBDE66CEE7BAE01160B + 56CFE06D5C95B7E1E083273E41121EB66D33FC9EF3B6FC4DAF711930172C26F3 + 9F001E15ACFF1DC0E8CE0F8D5DC0E39A7F0077D632EEAD989ABC000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Copy rights-permissions as octal' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004114944415478DAC5D57B4C5B + 651806F0A70A653166BAA8388321CB261AE386C9D88C2ECBA2894AC8A8049DA5 + 2D03D6CAE665D3C5B941B9B45490319CA19B4EA0F4C6686164AB2CD851271B4E + 064CA6084D60B2086313356958A1D00B55613D9E9E6564498B7E3D47B3F7BF7E + FD2EBFBEA7DF73781445E14E16EF1660D7615B8412AA9B9A9E4DA95609BD911E + 7AFB8F5E00EC54B7519FBFBF19240D094E319F1DC4C5A1F10B70CF26478A080B + 78BBCA4AD5EC11603E40D6888E815F3039E34397FDEA85498F3FF9440488B080 + B73E69A56AF7A6E1AF7932C0F0B8130E970F5334A2B37FB48FF2CDA6D4A9244E + D680373F3E4969F2D2E19F0B1001DC5E3F0D98651093D35E74FE38325897FF6A + 226BC08ECA168ADE00BE3F6F1001EC572660ED1DC5DCFCCDF91ED714B4F2D778 + AC01B915164A5BB0051E3F1920582EEF1F38FDC3185C1E3F46C7C6A12F7C9D3D + E08DF2E394B6508819FF3C312058017AFDC86F2E682DDFC2509CC11E202B6BA6 + 74C522B87C91016ED53EB50546A5983D605B69130D9060CA3787333D8338DF37 + CC3CDF2757C6419CBA01FCE828665EA9E14C84B4D0C00A0BC85135523A85046D + 3DC338D73B8477B352B024261AA6D6F388E1474392BA919957666807D7C00A0B + C8569A289D722B14D5AD58B77A1536AC7D8219775C9F4695D18AFD1F48F0CD77 + 43F8FE6707B8065658C056C5511A908D773E32213BFD05AC8A7F9819BF110840 + 7ED0847DDBD3F1D0B2A5D86FFC0A5C034B5322768600328B8C94B6240732851E + BB7304782476D9C226F2830D0B6315061BB80616BD3E31042029305075AA6DD8 + 556E4216DD81158FC62E744059D588DDD25710FBC07DA8A4015C038B5ECF0B01 + 88E53A4AA392A2B4E64BAC4B4C40D2EAC798F189C969D434DA50B45384A8BBEF + A201A7C035B074055B4201A27C2D555B22C3A99E4BE8EDBF0CA9F025FA16F0F1 + 85AD9BB905692F3F07D78C173ACB39700D2C7D91303CA05A2985C33D878EEE01 + 0C5CBAC28CAF8C5F0EC18BCF3239603D7B1197AF39C035B00C0A5178C0118514 + D73D73FFB841A5F62448026BB1CA539F40BD52121EF0190D70FE0BE080A60524 + 81B558E5AB8FE3A82A333C80A485FC98252009AC5EFB08F277A431A8AFBBECB0 + 0F5FC31E9900CA4F2D6828CD0A05F07844EF116416D71305D611B30DCB1FBC1F + CF3C9D004D733BDECBDECC7C2E501F83B92C873D405268200A2C97DB87C3F556 + E6EA266F5A8BF56B6E5EEB2275131ACBA5EC0162B99E28B08265B474E0EAAF0E + ECA5BBB2F4DE7B98314555139A2A64EC01C1FF0A49600DFC3486F6AE7E3CBE22 + 0E4E971BB9A264044F50AACD387620973D2023AF8E28B06ACD6D10A66E427C5C + 2CAA1BAC485A93808DEB9F828A0634576EE70620092C3E3F8A7EF649CC77E3BF + 4FE074671F3204CFE390BE853B8024B016AB0F0FFD071D2009ACFF15C0EAE4DB + 2A2CE04ED5DF094223EEA24C1FA60000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Paste rights' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003F74944415478DAD5D75D4C53 + 671807F0FFC1E2C52E962CDE6C31717159B68B255E6C37DBF06B736A94CF16A8 + 0C9888116438378713D239689D59D42552934DA4942DCA00A175B06489176E66 + 238A1BC9445C612805C102F2D1964ABF0EED697BF6724C171DE73D3D74B8654F + D3BCE9E9FB3CCF2FCFF948CBF03C8F68300C03A978293B7BF98B4FAC3A0A0679 + F39F49E637033E9BB6CF6C0E629111EDCB2C06A02A387882342F7FB4123E6F3B + 77B2E2DF01EC3A384196A7C3213E292181212F5C21D9F7DACF9E5CF95801CA9D + 652F90EFD464A7966C5190F4D7C221242C53309D243D44B28E903AA6F686EA81 + 7F04A8CD5FDDC98079FDEF9B2F25AA6415DDC2B58974C2D592E6E175B20086FC + E7F8CD3B3217D438D4C6A3FE944EB2F99E033A01F070FEADEE1E8C5A8750D234 + BC60B49200E7B8F591CDC7BB9E87A66CAF24E058B54100BCBC76CD5FC74687C6 + 619F702E0D40EE29782C8078E3FF0B708C49DF4D0D41E9EB6161F057F9FBFE6D + 353AB53726E02DB50A8E513A80F5B130271EC0E90F93F1502ABD357937FE6841 + 57AFED1ADCFEAD51041D90AD82DD765B12605AFE01CE94A5221491212071F9C6 + 5D38677DB8D2337CCDE961B79A09820AD894AD847D2416E07DD47E948E60481E + A0DFE6C0A4CB871982E8E81EFC8DF7F9B719B46F3B44016F6629313DD24F07F8 + E76056EC87A15C09968BA0F6BBEB92CD4B325E81DBCB12805F4038EF7BD171DD + 6A21F96BC4019919981AA603E608C094B81F75152AF802615913E8199AC6F7BF + 0E820B3DD8EF71CDCCE733E200550626EFFC2109684D7C0F464D163C6C1867DA + BB6421C2A4CF8AA79E84CBC362F08E0DF59A2C71C01BAA744C0C4A00583201C5 + 3E183F5663960DC96A1E8D08E9651D73C178E1677C75582D0ED8A84CC384B54F + 0210208052D47F9203972F849A6F3B65034A339384F590FE02BEAECCA10032D2 + 706FA0975A243017408BE25D02C8C58C8F5BD404A251AE37E36C55AE3860437A + 1AC66F5B2401ADF380CA5C38BD6402A60EF913506F10D60ABD09E7747914405A + 2AC66EC50294A0BE2A1F766F7C13D054B7A2E1D377C401EB535330D6FF3B1D10 + 089253B0970076C2EEE170BAE5B2ECC6FB72363D00E8CFA3F1688138601D018C + F6DDA416090A806218B5059876C73781C3FA66347D564801A4A4C0D6DB430704 + 09605931EA74BB30E50EA2A6E992ECC6A5795B84B5B2BA19CDC7765300C9C9B8 + 6B89015014C1A02BC4D46C7C13A8D237E2FCF13DE280B5DBB763C472839ACC05 + 390150ABDD8D49320163CB0FB21B17E56C16561D01B49C28120724CD036E76D3 + 011C471EC5C5A8A9221388F31A38724A02F0CCB3ABE0B6DBA9C9914804175794 + E1CBCA42E12E5862C0EA5FC8A1576315F869A5065F108063A901B1FE1B466347 + 799DBC5F2212210AF82FE24F1606B2DFEA22E08E0000000049454E44AE426082} + end> Left = 128 Bitmap = {} end diff --git a/source/forms/Rights.h b/source/forms/Rights.h index 44880e76..a2f62bdf 100644 --- a/source/forms/Rights.h +++ b/source/forms/Rights.h @@ -53,6 +53,9 @@ class TRightsFrame : public TFrame TMenuItem *CopyAsText1; TMenuItem *CopyAsOctal1; TMenuItem *Paste1; + TPngImageList *RightsImages120; + TPngImageList *RightsImages144; + TPngImageList *RightsImages192; void __fastcall ControlChange(TObject *Sender); void __fastcall RightsButtonsClick(TObject *Sender); void __fastcall RightsActionsExecute(TBasicAction *Action, diff --git a/source/forms/RightsExt.cpp b/source/forms/RightsExt.cpp index 3ea9a3a0..42546b84 100644 --- a/source/forms/RightsExt.cpp +++ b/source/forms/RightsExt.cpp @@ -73,7 +73,7 @@ void __fastcall TRightsExtFrame::OctalEditExit(TObject * /*Sender*/) if (!Visible) { // should happen only if popup is closed by esc key - assert(Popup); + DebugAssert(Popup); // cancel changes ForceUpdate(); diff --git a/source/forms/ScpCommander.cpp b/source/forms/ScpCommander.cpp index bac00445..a52b4918 100644 --- a/source/forms/ScpCommander.cpp +++ b/source/forms/ScpCommander.cpp @@ -130,6 +130,8 @@ __fastcall TScpCommanderForm::TScpCommanderForm(TComponent* Owner) UseDesktopFont(StatusBar); NonVisualDataModule->QueueSpeedComboBoxItem(QueueSpeedComboBoxItem); + // particularly to reorder panels on right-to-left bidi mode + ConfigurationChanged(); } //--------------------------------------------------------------------------- __fastcall TScpCommanderForm::~TScpCommanderForm() @@ -147,14 +149,14 @@ void __fastcall TScpCommanderForm::UpdateToolbar2ItemCaption(TTBCustomItem * Ite //--------------------------------------------------------------------------- void __fastcall TScpCommanderForm::RestoreFormParams() { - assert(WinConfiguration); + DebugAssert(WinConfiguration); TCustomScpExplorerForm::RestoreFormParams(); RestoreForm(WinConfiguration->ScpCommander.WindowParams, this); } //--------------------------------------------------------------------------- void __fastcall TScpCommanderForm::RestoreParams() { - assert(Configuration); + DebugAssert(Configuration); TCustomScpExplorerForm::RestoreParams(); LeftPanelWidth = WinConfiguration->ScpCommander.LocalPanelWidth; @@ -182,7 +184,7 @@ void __fastcall TScpCommanderForm::RestoreParams() //--------------------------------------------------------------------------- void __fastcall TScpCommanderForm::StoreParams() { - assert(WinConfiguration); + DebugAssert(WinConfiguration); WinConfiguration->BeginUpdate(); try @@ -233,8 +235,8 @@ void __fastcall TScpCommanderForm::UpdateTerminal(TTerminal * Terminal) TCustomScpExplorerForm::UpdateTerminal(Terminal); TManagedTerminal * ManagedTerminal = dynamic_cast(Terminal); - assert(ManagedTerminal != NULL); - assert(LocalDirView != NULL); + DebugAssert(ManagedTerminal != NULL); + DebugAssert(LocalDirView != NULL); SAFE_DESTROY(ManagedTerminal->LocalExplorerState); @@ -249,14 +251,14 @@ void __fastcall TScpCommanderForm::UpdateSessionData(TSessionData * Data) // Keep in sync with TSessionData::CopyStateData TCustomScpExplorerForm::UpdateSessionData(Data); - assert(LocalDirView); + DebugAssert(LocalDirView); Data->LocalDirectory = LocalDirView->PathName; Data->SynchronizeBrowsing = NonVisualDataModule->SynchronizeBrowsingAction->Checked; } //--------------------------------------------------------------------------- bool __fastcall TScpCommanderForm::InternalDDDownload(UnicodeString & TargetDirectory) { - assert(IsFileControl(FDDTargetControl, osLocal)); + DebugAssert(IsFileControl(FDDTargetControl, osLocal)); bool Result = false; if (FDDTargetControl == LocalDirView) @@ -276,25 +278,30 @@ bool __fastcall TScpCommanderForm::InternalDDDownload(UnicodeString & TargetDire } else { - TargetDirectory = IncludeTrailingBackslash(LocalDirView->Path); + TargetDirectory = DefaultDownloadTargetDirectory(); Result = true; } } else if (FDDTargetControl == LocalDriveView) { - assert(LocalDriveView->DropTarget != NULL); + DebugAssert(LocalDriveView->DropTarget != NULL); TargetDirectory = LocalDriveView->NodePathName(LocalDriveView->DropTarget); Result = true; } else { - FAIL; + DebugFail(); Abort(); } return Result; } //--------------------------------------------------------------------------- +UnicodeString __fastcall TScpCommanderForm::DefaultDownloadTargetDirectory() +{ + return IncludeTrailingBackslash(LocalDirView->Path); +} +//--------------------------------------------------------------------------- bool __fastcall TScpCommanderForm::CopyParamDialog(TTransferDirection Direction, TTransferType Type, bool Temp, TStrings * FileList, UnicodeString & TargetDirectory, TGUICopyParamType & CopyParam, bool Confirm, bool DragDrop, int Options) @@ -307,7 +314,7 @@ bool __fastcall TScpCommanderForm::CopyParamDialog(TTransferDirection Direction, Result = InternalDDDownload(TargetDirectory); if (Result) { - assert(FileList->Count > 0); + DebugAssert(FileList->Count > 0); FInternalDDDownloadList->Assign(FileList); } } @@ -315,7 +322,7 @@ bool __fastcall TScpCommanderForm::CopyParamDialog(TTransferDirection Direction, { if (Direction == tdToLocal) { - TargetDirectory = IncludeTrailingBackslash(LocalDirView->Path); + TargetDirectory = DefaultDownloadTargetDirectory(); } else { @@ -333,12 +340,37 @@ bool __fastcall TScpCommanderForm::CopyParamDialog(TTransferDirection Direction, //--------------------------------------------------------------------------- void __fastcall TScpCommanderForm::DoShow() { - ActiveControl = (WinConfiguration->ScpCommander.CurrentPanel == osLocal ? - (TCustomDirView *)LocalDirView : (TCustomDirView *)RemoteDirView); + // Make sure the RemoteDirView is disabled (if not connected yet) + // before the focusing below, + // otherwise we disable the view while setting it focused + // (UpdateControls gets calling within the SetFocus), + // leading to VCL focus inconsistency wih Windows, + // and the view [anothing actually] not getting focused after the session + // is finally connected + UpdateControls(); - TCustomScpExplorerForm::DoShow(); + // If we do not call SetFocus on any control before DoShow, + // no control will get focused on Login dialog + // (HACK seems like a bug in VCL) + if (WinConfiguration->ScpCommander.CurrentPanel == osLocal) + { + LocalDirView->SetFocus(); + FRemoteDirViewWasFocused = false; + } + else + { + if (RemoteDirView->Enabled) + { + RemoteDirView->SetFocus(); + } + else + { + LocalDirView->SetFocus(); + } + FRemoteDirViewWasFocused = true; + } - UpdateControls(); + TCustomScpExplorerForm::DoShow(); } //--------------------------------------------------------------------------- Boolean __fastcall TScpCommanderForm::AllowedAction(TAction * Action, TActionAllowed Allowed) @@ -370,6 +402,19 @@ TCustomDirView * __fastcall TScpCommanderForm::DirView(TOperationSide Side) } } //--------------------------------------------------------------------------- +bool __fastcall TScpCommanderForm::DirViewEnabled(TOperationSide Side) +{ + Side = GetSide(Side); + if (Side == osLocal) + { + return true; + } + else + { + return TCustomScpExplorerForm::DirViewEnabled(Side); + } +} +//--------------------------------------------------------------------------- bool __fastcall TScpCommanderForm::IsFileControl(TObject * Control, TOperationSide Side) { @@ -403,7 +448,7 @@ void __fastcall TScpCommanderForm::BatchEnd(void * Storage) { TCustomScpExplorerForm::BatchEnd(Storage); - assert(Storage != NULL); + DebugAssert(Storage != NULL); LocalDirView->WatchForChanges = *static_cast(Storage); LocalDriveView->WatchDirectory = LocalDirView->WatchForChanges; @@ -411,20 +456,27 @@ void __fastcall TScpCommanderForm::BatchEnd(void * Storage) delete Storage; } //--------------------------------------------------------------------------- +void __fastcall TScpCommanderForm::StartingDisconnected() +{ + TCustomScpExplorerForm::StartingDisconnected(); + + LocalDefaultDirectory(); +} +//--------------------------------------------------------------------------- void __fastcall TScpCommanderForm::TerminalChanged() { - if (Terminal) - { - NonVisualDataModule->SynchronizeBrowsingAction->Checked = false; + NonVisualDataModule->SynchronizeBrowsingAction->Checked = false; - TCustomScpExplorerForm::TerminalChanged(); + TCustomScpExplorerForm::TerminalChanged(); + if (Terminal) + { // we will load completelly different directory, so particularly // do not attempt to select previously selected directory LocalDirView->ContinueSession(false); TManagedTerminal * ManagedTerminal = dynamic_cast(Terminal); - assert(ManagedTerminal != NULL); + DebugAssert(ManagedTerminal != NULL); // reset home directory LocalDirView->HomeDirectory = L""; @@ -449,16 +501,7 @@ void __fastcall TScpCommanderForm::TerminalChanged() if (DocumentsDir) { - try - { - LocalDirView->HomeDirectory = L""; - LocalDirView->ExecuteHomeDirectory(); - } - catch(Exception & E) - { - Terminal->ShowExtendedException(&E); - LocalDirView->Path = ExtractFilePath(Application->ExeName); - } + LocalDefaultDirectory(); } } FFirstTerminal = false; @@ -484,9 +527,19 @@ void __fastcall TScpCommanderForm::TerminalChanged() NonVisualDataModule->SynchronizeBrowsingAction->Checked = ManagedTerminal->StateData->SynchronizeBrowsing; } } - else +} +//--------------------------------------------------------------------------- +void __fastcall TScpCommanderForm::LocalDefaultDirectory() +{ + try { - TCustomScpExplorerForm::TerminalChanged(); + LocalDirView->HomeDirectory = L""; + LocalDirView->ExecuteHomeDirectory(); + } + catch(Exception & E) + { + Terminal->ShowExtendedException(&E); + LocalDirView->Path = ExtractFilePath(Application->ExeName); } } //--------------------------------------------------------------------------- @@ -526,18 +579,28 @@ void __fastcall TScpCommanderForm::ConfigurationChanged() LocalDriveView->DragDropFilesEx->ShellExtensions->DropHandler = !WinConfiguration->DDExtEnabled; - if ((LocalPanel->Left > RemotePanel->Left) != WinConfiguration->ScpCommander.SwappedPanels) + if (Panel(true)->Left > Panel(false)->Left) { - int AWidth = ClientWidth; - Panel(false)->Align = alClient; - Panel(true)->Align = alLeft; - TControl * ControlsOrder[] = - { Panel(true), Splitter, Panel(false) }; - SetHorizontalControlsOrder(ControlsOrder, LENOF(ControlsOrder)); - Panel(true)->TabOrder = 0; - Panel(false)->TabOrder = 1; - ClientWidth = AWidth; - LeftPanelWidth = FLastLeftPanelWidth; + DisableAlign(); + try + { + int AWidth = ClientWidth; + Panel(false)->Align = alClient; + // In bidi mode it gets swapped to alRight, what does not work with the rest of this logic + Splitter->Align = alLeft; + Panel(true)->Align = alLeft; + TControl * ControlsOrder[] = + { Panel(true), Splitter, Panel(false) }; + SetHorizontalControlsOrder(ControlsOrder, LENOF(ControlsOrder)); + Panel(true)->TabOrder = 0; + Panel(false)->TabOrder = 1; + ClientWidth = AWidth; + LeftPanelWidth = FLastLeftPanelWidth; + } + __finally + { + EnableAlign(); + } int LocalIndex = MenuToolbar->Items->IndexOf(LocalMenuButton); int RemoteIndex = MenuToolbar->Items->IndexOf(RemoteMenuButton); @@ -615,8 +678,12 @@ void __fastcall TScpCommanderForm::SetShortcuts() //--------------------------------------------------------------------------- TPanel * __fastcall TScpCommanderForm::Panel(bool Left) { - return (WinConfiguration->ScpCommander.SwappedPanels == Left ? - RemotePanel : LocalPanel); + bool SwappedPanels = WinConfiguration->ScpCommander.SwappedPanels; + if (IsRightToLeft()) + { + SwappedPanels = !SwappedPanels; + } + return (SwappedPanels == Left ? RemotePanel : LocalPanel); } //--------------------------------------------------------------------------- TPanel * __fastcall TScpCommanderForm::CurrentPanel() @@ -667,7 +734,7 @@ void __fastcall TScpCommanderForm::SplitterDblClick(TObject * /*Sender*/) void __fastcall TScpCommanderForm::PanelSplitterDblClick(TObject * Sender) { TSplitter * Splitter = dynamic_cast(Sender); - assert(Splitter != NULL); + DebugAssert(Splitter != NULL); TCustomDriveView * DriveView; TCustomDriveView * OtherDriveView; if (Splitter == LocalPanelSplitter) @@ -682,7 +749,7 @@ void __fastcall TScpCommanderForm::PanelSplitterDblClick(TObject * Sender) } bool TreeOnLeft = WinConfiguration->ScpCommander.TreeOnLeft; - assert(DriveView->Visible); + DebugAssert(DriveView->Visible); if (OtherDriveView->Visible) { if (TreeOnLeft) @@ -728,25 +795,30 @@ void __fastcall TScpCommanderForm::UpdateControls() LocalDirView->Color = (SessionColor != 0 ? SessionColor : clWindow); LocalDriveView->Color = LocalDirView->Color; - TAction * CurrentCopyAction = (FCurrentSide == osLocal) ? NonVisualDataModule->LocalCopyAction : NonVisualDataModule->RemoteCopyAction; + bool LocalSide = (FCurrentSide == osLocal); + TAction * CurrentCopyAction = LocalSide ? NonVisualDataModule->LocalCopyAction : NonVisualDataModule->RemoteCopyAction; if (CurrentCopyItem->Action != CurrentCopyAction) { CurrentCopyItem->Action = CurrentCopyAction; CurrentCopyToolbar2Item->Action = CurrentCopyAction; UpdateToolbar2ItemCaption(CurrentCopyToolbar2Item); - } - TAction * CurrentMoveAction = (FCurrentSide == osLocal) ? NonVisualDataModule->LocalMoveAction : NonVisualDataModule->RemoteMoveAction; - if (CurrentMoveItem->Action != CurrentMoveAction) - { + + CurrentCopyNonQueueItem->Action = LocalSide ? NonVisualDataModule->LocalCopyNonQueueAction : NonVisualDataModule->RemoteCopyNonQueueAction; + CurrentCopyQueueItem->Action = LocalSide ? NonVisualDataModule->LocalCopyQueueAction : NonVisualDataModule->RemoteCopyQueueAction; + + TAction * CurrentMoveAction = LocalSide ? NonVisualDataModule->LocalMoveAction : NonVisualDataModule->RemoteMoveAction; CurrentMoveItem->Action = CurrentMoveAction; CurrentMoveToolbar2Item->Action = CurrentMoveAction; UpdateToolbar2ItemCaption(CurrentMoveToolbar2Item); } + + CommandLineCombo->Enabled = (Terminal != NULL); + CommandLinePromptLabel->Enabled = CommandLineCombo->Enabled; } //--------------------------------------------------------------------------- void __fastcall TScpCommanderForm::ChangePath(TOperationSide Side) { - assert((Side == osLocal) || (Side == osRemote)); + DebugAssert((Side == osLocal) || (Side == osRemote)); TTBXComboBoxItem * PathComboBox; if (Side == osLocal) { @@ -775,6 +847,7 @@ TControl * __fastcall TScpCommanderForm::GetComponent(Byte Component) case fcTransferList: return reinterpret_cast(TransferList); case fcTransferLabel: return reinterpret_cast(TransferLabel); case fcLocalPopup: return reinterpret_cast(NonVisualDataModule->LocalFilePopup); + case fcRemotePathComboBox: return reinterpret_cast(RemotePathComboBox); case fcCommanderMenuBand: return MenuToolbar; case fcCommanderSessionBand: return SessionToolbar; @@ -881,9 +954,9 @@ void __fastcall TScpCommanderForm::ExploreLocalDirectory() void __fastcall TScpCommanderForm::LocalDirViewExecFile(TObject *Sender, TListItem *Item, bool &AllowExec) { - assert(Item); + DebugAssert(Item); if ((UpperCase(PFileRec(Item->Data)->FileExt) == L"LNK") && - DirectoryExists(::ApiPath(ResolveFileShortCut(LocalDirView->ItemFullFileName(Item), true)))) + DirectoryExists(ApiPath(ResolveFileShortCut(LocalDirView->ItemFullFileName(Item), true)))) { AllowExec = true; } @@ -934,13 +1007,13 @@ UnicodeString __fastcall TScpCommanderForm::ChangeFilePath(UnicodeString Path, T int P = Path.Pos(Side == osLocal ? L'\\' : L'/'); if (P > 0) { - Result += CopyParams.ChangeFileName(Path.SubString(1, P - 1), Side, false) + + Result += Terminal->ChangeFileName(&CopyParams, Path.SubString(1, P - 1), Side, false) + (Side == osLocal ? L'/' : L'\\'); Path.Delete(1, P); } else { - Result += CopyParams.ChangeFileName(Path, osLocal, false); + Result += Terminal->ChangeFileName(&CopyParams, Path, osLocal, false); Path = L""; } } @@ -1183,7 +1256,7 @@ void __fastcall TScpCommanderForm::AddEditLink(TOperationSide Side, bool Add) if (LocalDirView->ItemFocused) { - assert(LocalDirView->ItemFocused->Data); + DebugAssert(LocalDirView->ItemFocused->Data); PFileRec FileRec = (PFileRec)LocalDirView->ItemFocused->Data; Edit = !Add && (UpperCase(FileRec->FileExt) == L"LNK"); @@ -1207,9 +1280,9 @@ void __fastcall TScpCommanderForm::AddEditLink(TOperationSide Side, bool Add) { Configuration->Usage->Inc(L"LocalShortcutsCreated"); - assert(SymbolicLink); - assert(!FileName.IsEmpty()); - assert(!PointTo.IsEmpty()); + DebugAssert(SymbolicLink); + DebugAssert(!FileName.IsEmpty()); + DebugAssert(!PointTo.IsEmpty()); if (ExtractFileDrive(FileName) == L"" && FileName[1] != L'\\') { @@ -1247,7 +1320,8 @@ void __fastcall TScpCommanderForm::DoOpenDirectoryDialog(TOpenDirectoryMode Mode do { UseLocationProfiles = WinConfiguration->UseLocationProfiles; - if (UseLocationProfiles) + // Location profiles dialog is not ready to be run without terminal + if (UseLocationProfiles && (Terminal != NULL)) { TStrings * LocalDirectories = NULL; TStrings * RemoteDirectories = NULL; @@ -1299,6 +1373,8 @@ void __fastcall TScpCommanderForm::DoOpenBookmark(UnicodeString Local, UnicodeSt { if (!Remote.IsEmpty()) { + // While we might get here when the session is closed (from location profiles), + // it's not a problem as the Path setter is noop then RemoteDirView->Path = Remote; } } @@ -1348,7 +1424,8 @@ void __fastcall TScpCommanderForm::LocalFileControlDDDragOver(TObject * /*Sender } } //--------------------------------------------------------------------------- -bool __fastcall TScpCommanderForm::DDGetTarget(UnicodeString & Directory, bool & Internal) +bool __fastcall TScpCommanderForm::DDGetTarget( + UnicodeString & Directory, bool & ForceQueue, bool & Internal) { bool Result; if (!FDDExtTarget.IsEmpty()) @@ -1360,7 +1437,7 @@ bool __fastcall TScpCommanderForm::DDGetTarget(UnicodeString & Directory, bool & } else { - Result = TCustomScpExplorerForm::DDGetTarget(Directory, Internal); + Result = TCustomScpExplorerForm::DDGetTarget(Directory, ForceQueue, Internal); } return Result; } @@ -1381,14 +1458,15 @@ void __fastcall TScpCommanderForm::LocalFileControlDDFileOperation( UnicodeString TargetDirectory; if (InternalDDDownload(TargetDirectory)) { + // See TCustomScpExplorerForm::QueueDDProcessDropped if (FDDExtMapFile != NULL) { FDDExtTarget = TargetDirectory; } else { - assert(FInternalDDDownloadList->Count > 0); - assert(dwEffect == DROPEFFECT_Copy || dwEffect == DROPEFFECT_Move); + DebugAssert(FInternalDDDownloadList->Count > 0); + DebugAssert(dwEffect == DROPEFFECT_Copy || dwEffect == DROPEFFECT_Move); TGUICopyParamType CopyParams = GUIConfiguration->CurrentCopyParam; TTransferType TransferType = dwEffect == DROPEFFECT_Copy ? ttCopy : ttMove; if (FDDMoveSlipped) @@ -1618,7 +1696,7 @@ void __fastcall TScpCommanderForm::LocalFileControlDDMenuPopup(TObject * /*Sende { // index of copy item int Index = GetMenuDefaultItem(AMenu, TRUE, 0); - assert(Index >= 0); + DebugAssert(Index >= 0); UnicodeString Caption = Dragdrop_MIMoveStr; @@ -1650,14 +1728,14 @@ void __fastcall TScpCommanderForm::PathLabelDblClick(TObject * Sender) void __fastcall TScpCommanderForm::LocalPathLabelGetStatus( TCustomPathLabel * /*Sender*/, bool & Active) { - // this strange form is here to make borland compiler work :-) + // WORKAROUND this strange form is here to make borland compiler work :-) Active = Active || LocalDriveView->Focused(); } //--------------------------------------------------------------------------- void __fastcall TScpCommanderForm::RemotePathLabelGetStatus( TCustomPathLabel * /*Sender*/, bool & Active) { - // this strange form is here to make borland compiler work :-) + // WORKAROUND this strange form is here to make borland compiler work :-) Active = Active || RemoteDriveView->Focused(); } //--------------------------------------------------------------------------- @@ -1704,13 +1782,13 @@ void __fastcall TScpCommanderForm::LocalDirViewFileIconForName( void __fastcall TScpCommanderForm::LocalDirViewUpdateStatusBar( TObject * /*Sender*/, const TStatusFileInfo & FileInfo) { - UpdateFileStatusBar(LocalStatusBar, FileInfo); + UpdateFileStatusBar(LocalStatusBar, FileInfo, osLocal); } //--------------------------------------------------------------------------- void __fastcall TScpCommanderForm::RemoteDirViewUpdateStatusBar( TObject * /*Sender*/, const TStatusFileInfo & FileInfo) { - UpdateFileStatusBar(RemoteStatusBar, FileInfo); + UpdateFileStatusBar(RemoteStatusBar, FileInfo, osRemote); } //--------------------------------------------------------------------------- void __fastcall TScpCommanderForm::LocalStatusBarClick(TObject * /*Sender*/) @@ -1770,7 +1848,7 @@ void __fastcall TScpCommanderForm::BeforeAction() //--------------------------------------------------------------------------- void __fastcall TScpCommanderForm::RemoteDirViewPathChange(TCustomDirView * /*Sender*/) { - UpdateRemotePathComboBox(RemotePathComboBox, false); + UpdateRemotePathComboBox(false); } //--------------------------------------------------------------------------- void __fastcall TScpCommanderForm::LocalPathComboUpdateDrives() @@ -1810,7 +1888,7 @@ void __fastcall TScpCommanderForm::LocalPathComboUpdate() // (e.g. from SetDockAllowDrag invoked [indirectly] from StoreParams) if (FLocalPathComboBoxPaths != NULL) { - assert(FLocalPathComboBoxPaths->Count == LocalPathComboBox->Strings->Count); + DebugAssert(FLocalPathComboBoxPaths->Count == LocalPathComboBox->Strings->Count); int Index = 0; while ((Index < FLocalPathComboBoxPaths->Count) && @@ -1846,8 +1924,8 @@ void __fastcall TScpCommanderForm::LocalPathComboBoxAdjustImageIndex( // (e.g. from FixControlsPlacement) if (FLocalPathComboBoxPaths != NULL) { - assert(FLocalPathComboBoxPaths->Count == LocalPathComboBox->Strings->Count); - assert(AIndex < FLocalPathComboBoxPaths->Count); + DebugAssert(FLocalPathComboBoxPaths->Count == LocalPathComboBox->Strings->Count); + DebugAssert(AIndex < FLocalPathComboBoxPaths->Count); if (AIndex < 0) { @@ -1863,8 +1941,8 @@ void __fastcall TScpCommanderForm::LocalPathComboBoxAdjustImageIndex( //--------------------------------------------------------------------------- void __fastcall TScpCommanderForm::LocalPathComboBoxItemClick(TObject * /*Sender*/) { - assert(FLocalPathComboBoxPaths->Count == LocalPathComboBox->Strings->Count); - assert((LocalPathComboBox->ItemIndex >= 0) && (LocalPathComboBox->ItemIndex < FLocalPathComboBoxPaths->Count)); + DebugAssert(FLocalPathComboBoxPaths->Count == LocalPathComboBox->Strings->Count); + DebugAssert((LocalPathComboBox->ItemIndex >= 0) && (LocalPathComboBox->ItemIndex < FLocalPathComboBoxPaths->Count)); UnicodeString Path = FLocalPathComboBoxPaths->Strings[LocalPathComboBox->ItemIndex]; if (Path.Length() == 3) @@ -2060,3 +2138,8 @@ void __fastcall TScpCommanderForm::RemoteStatusBarPanelClick(TTBXCustomStatusBar FileStatusBarPanelClick(Panel, osRemote); } //--------------------------------------------------------------------------- +void __fastcall TScpCommanderForm::GoToAddress() +{ + OpenDirectory(osCurrent); +} +//--------------------------------------------------------------------------- diff --git a/source/forms/ScpCommander.dfm b/source/forms/ScpCommander.dfm index 2682fec9..94b453cb 100644 --- a/source/forms/ScpCommander.dfm +++ b/source/forms/ScpCommander.dfm @@ -169,6 +169,8 @@ inherited ScpCommanderForm: TScpCommanderForm object TBXItem110: TTBXItem Action = NonVisualDataModule.SelectAllAction end + object TBXSeparatorItem60: TTBXSeparatorItem + end object TBXItem111: TTBXItem Action = NonVisualDataModule.InvertSelectionAction end @@ -178,6 +180,14 @@ inherited ScpCommanderForm: TScpCommanderForm object TBXItem27: TTBXItem Action = NonVisualDataModule.RestoreSelectionAction end + object TBXSeparatorItem61: TTBXSeparatorItem + end + object TBXItem212: TTBXItem + Action = NonVisualDataModule.SelectSameExtAction + end + object TBXItem213: TTBXItem + Action = NonVisualDataModule.UnselectSameExtAction + end end object TBXSubmenuItem5: TTBXSubmenuItem Caption = '&Files' @@ -202,22 +212,30 @@ inherited ScpCommanderForm: TScpCommanderForm object TBXItem25: TTBXItem Action = NonVisualDataModule.CurrentOpenAction end - object TBXItem26: TTBXItem + object TBXItem26: TTBXSubmenuItem Action = NonVisualDataModule.CurrentEditAction - end - object TBXSubmenuItem25: TTBXSubmenuItem - Action = NonVisualDataModule.CurrentEditAlternative2Action + DropdownCombo = True + OnPopup = EditMenuItemPopup end object TBXItem29: TTBXItem Action = NonVisualDataModule.CurrentAddEditLinkAction end object TBXSeparatorItem7: TTBXSeparatorItem end - object CurrentCopyItem: TTBXItem + object CurrentCopyItem: TTBXSubmenuItem Action = NonVisualDataModule.RemoteCopyAction - end - object CurrentMoveItem: TTBXItem - Action = NonVisualDataModule.RemoteMoveAction + DropdownCombo = True + object CurrentCopyNonQueueItem: TTBXItem + Action = NonVisualDataModule.RemoteCopyNonQueueAction + end + object CurrentCopyQueueItem: TTBXItem + Action = NonVisualDataModule.RemoteCopyQueueAction + end + object TBXSeparatorItem51: TTBXSeparatorItem + end + object CurrentMoveItem: TTBXItem + Action = NonVisualDataModule.RemoteMoveAction + end end object TBXItem31: TTBXItem Action = NonVisualDataModule.RemoteCopyToAction @@ -253,7 +271,17 @@ inherited ScpCommanderForm: TScpCommanderForm Action = NonVisualDataModule.FullFileListToClipboardAction end object TBXItem40: TTBXItem - Action = NonVisualDataModule.FileGenerateUrlAction + Action = NonVisualDataModule.FileGenerateUrlAction2 + end + end + object TBXSubmenuItem25: TTBXSubmenuItem + Caption = '&Locking' + Hint = 'Manage file locks' + object TBXItem214: TTBXItem + Action = NonVisualDataModule.LockAction + end + object TBXItem216: TTBXItem + Action = NonVisualDataModule.UnlockAction end end object TBXSeparatorItem9: TTBXSeparatorItem @@ -391,7 +419,7 @@ inherited ScpCommanderForm: TScpCommanderForm Action = NonVisualDataModule.FileSystemInfoAction end object TBXItem135: TTBXItem - Action = NonVisualDataModule.SessionGenerateUrlAction + Action = NonVisualDataModule.SessionGenerateUrlAction2 end object TBXSeparatorItem29: TTBXSeparatorItem end @@ -552,14 +580,14 @@ inherited ScpCommanderForm: TScpCommanderForm RadioItem = True end object TBXItem223: TTBXItem - Action = NonVisualDataModule.QueueDisconnectOnceEmptyAction + Action = NonVisualDataModule.QueueDisconnectOnceEmptyAction2 RadioItem = True end object TBXItem141: TTBXItem - Action = NonVisualDataModule.QueueSuspendOnceEmptyAction + Action = NonVisualDataModule.QueueSuspendOnceEmptyAction2 end object TBXItem224: TTBXItem - Action = NonVisualDataModule.QueueShutDownOnceEmptyAction + Action = NonVisualDataModule.QueueShutDownOnceEmptyAction2 RadioItem = True end end @@ -715,6 +743,9 @@ inherited ScpCommanderForm: TScpCommanderForm object TBXItem116: TTBXItem Action = NonVisualDataModule.TableOfContentsAction end + object TBXItem217: TTBXItem + Action = NonVisualDataModule.TipsAction + end object TBXSeparatorItem30: TTBXSeparatorItem end object TBXItem117: TTBXItem @@ -926,7 +957,7 @@ inherited ScpCommanderForm: TScpCommanderForm end end object TransferToolbar: TTBXToolbar - Left = 44 + Left = 45 Top = 129 Caption = 'Transfer Settings' DockPos = 44 @@ -961,7 +992,7 @@ inherited ScpCommanderForm: TScpCommanderForm end end object CustomCommandsToolbar: TTBXToolbar - Left = 299 + Left = 300 Top = 129 Caption = 'Custom Commands' DockPos = 168 @@ -1089,10 +1120,10 @@ inherited ScpCommanderForm: TScpCommanderForm end end object RemoteNavigationToolbar: TTBXToolbar - Left = 70 + Left = 80 Top = 27 Caption = 'Remote Navigation' - DockPos = 68 + DockPos = 72 DockRow = 1 Images = GlyphsModule.ExplorerImages ParentShowHint = False @@ -1165,18 +1196,29 @@ inherited ScpCommanderForm: TScpCommanderForm ParentShowHint = False ShowHint = True TabOrder = 3 - object TBXItem238: TTBXItem + object TBXItem238: TTBXSubmenuItem Action = NonVisualDataModule.RemoteCopyAction DisplayMode = nbdmImageAndText - end - object TBXItem239: TTBXItem - Action = NonVisualDataModule.RemoteMoveAction + DropdownCombo = True + object TBXItem143: TTBXItem + Action = NonVisualDataModule.RemoteCopyNonQueueAction + end + object TBXItem200: TTBXItem + Action = NonVisualDataModule.RemoteCopyQueueAction + end + object TBXSeparatorItem59: TTBXSeparatorItem + end + object TBXItem239: TTBXItem + Action = NonVisualDataModule.RemoteMoveAction + end end object TBXSeparatorItem55: TTBXSeparatorItem end - object TBXItem242: TTBXItem + object TBXItem242: TTBXSubmenuItem Action = NonVisualDataModule.RemoteEditAction DisplayMode = nbdmImageAndText + DropdownCombo = True + OnPopup = EditMenuItemPopup end object TBXItem241: TTBXItem Action = NonVisualDataModule.RemoteDeleteAction @@ -1371,6 +1413,7 @@ inherited ScpCommanderForm: TScpCommanderForm OnHistoryChange = DirViewHistoryChange OnHistoryGo = DirViewHistoryGo OnPathChange = LocalDirViewPathChange + OnBusy = DirViewBusy end object LocalTopDock: TTBXDock Left = 0 @@ -1399,7 +1442,7 @@ inherited ScpCommanderForm: TScpCommanderForm end end object LocalNavigationToolbar: TTBXToolbar - Left = 70 + Left = 80 Top = 27 Caption = 'Local Navigation' DockPos = 68 @@ -1467,18 +1510,29 @@ inherited ScpCommanderForm: TScpCommanderForm ParentShowHint = False ShowHint = True TabOrder = 3 - object TBXItem231: TTBXItem + object TBXItem231: TTBXSubmenuItem Action = NonVisualDataModule.LocalCopyAction DisplayMode = nbdmImageAndText - end - object TBXItem232: TTBXItem - Action = NonVisualDataModule.LocalMoveAction + DropdownCombo = True + object TBXItem144: TTBXItem + Action = NonVisualDataModule.LocalCopyNonQueueAction + end + object TBXItem174: TTBXItem + Action = NonVisualDataModule.LocalCopyQueueAction + end + object TBXSeparatorItem58: TTBXSeparatorItem + end + object TBXItem232: TTBXItem + Action = NonVisualDataModule.LocalMoveAction + end end object TBXSeparatorItem54: TTBXSeparatorItem end - object TBXItem235: TTBXItem + object TBXItem235: TTBXSubmenuItem Action = NonVisualDataModule.LocalEditAction DisplayMode = nbdmImageAndText + DropdownCombo = True + OnPopup = EditMenuItemPopup end object TBXItem234: TTBXItem Action = NonVisualDataModule.LocalDeleteAction diff --git a/source/forms/ScpCommander.h b/source/forms/ScpCommander.h index 2e10fb37..9f288375 100644 --- a/source/forms/ScpCommander.h +++ b/source/forms/ScpCommander.h @@ -125,10 +125,10 @@ class TScpCommanderForm : public TCustomScpExplorerForm TTBXSubmenuItem *TBXSubmenuItem5; TTBXSeparatorItem *TBXSeparatorItem6; TTBXItem *TBXItem25; - TTBXItem *TBXItem26; + TTBXSubmenuItem *TBXItem26; TTBXItem *TBXItem29; TTBXSeparatorItem *TBXSeparatorItem7; - TTBXItem *CurrentCopyItem; + TTBXSubmenuItem *CurrentCopyItem; TTBXItem *TBXItem31; TTBXItem *CurrentMoveItem; TTBXItem *TBXItem33; @@ -318,7 +318,6 @@ class TScpCommanderForm : public TCustomScpExplorerForm TTBXSubmenuItem *TBXSubmenuItem13; TTBXItem *TBXItem198; TTBXItem *TBXItem199; - TTBXSubmenuItem *TBXSubmenuItem25; TTBXItem *TBXItem27; TTBXSubmenuItem *TBXSubmenuItem26; TTBXItem *TBXItem24; @@ -356,22 +355,22 @@ class TScpCommanderForm : public TCustomScpExplorerForm TTBXItem *TBXItem230; TTBXSubmenuItem *TBXSubmenuItem231; TTBXToolbar *LocalFileToolbar; - TTBXItem *TBXItem231; + TTBXSubmenuItem *TBXItem231; TTBXItem *TBXItem232; TTBXItem *TBXItem233; TTBXItem *TBXItem234; - TTBXItem *TBXItem235; + TTBXSubmenuItem *TBXItem235; TTBXSeparatorItem *TBXSeparatorItem35; TTBXItem *TBXItem236; TTBXSeparatorItem *TBXSeparatorItem54; TTBXItem *TBXItem237; TTBXToolbar *RemoteFileToolbar; - TTBXItem *TBXItem238; + TTBXSubmenuItem *TBXItem238; TTBXItem *TBXItem239; TTBXSeparatorItem *TBXSeparatorItem55; TTBXItem *TBXItem240; TTBXItem *TBXItem241; - TTBXItem *TBXItem242; + TTBXSubmenuItem *TBXItem242; TTBXItem *TBXItem243; TTBXSeparatorItem *TBXSeparatorItem56; TTBXItem *TBXItem244; @@ -402,6 +401,23 @@ class TScpCommanderForm : public TCustomScpExplorerForm TTBXItem *TBXItem135; TTBXItem *TBXItem141; TTBXItem *TBXItem142; + TTBXItem *TBXItem143; + TTBXItem *TBXItem144; + TTBXItem *CurrentCopyNonQueueItem; + TTBXItem *CurrentCopyQueueItem; + TTBXSeparatorItem *TBXSeparatorItem51; + TTBXItem *TBXItem174; + TTBXSeparatorItem *TBXSeparatorItem58; + TTBXItem *TBXItem200; + TTBXSeparatorItem *TBXSeparatorItem59; + TTBXSeparatorItem *TBXSeparatorItem60; + TTBXSeparatorItem *TBXSeparatorItem61; + TTBXItem *TBXItem212; + TTBXItem *TBXItem213; + TTBXSubmenuItem *TBXSubmenuItem25; + TTBXItem *TBXItem214; + TTBXItem *TBXItem216; + TTBXItem *TBXItem217; void __fastcall SplitterMoved(TObject *Sender); void __fastcall SplitterCanResize(TObject *Sender, int &NewSize, bool &Accept); @@ -489,6 +505,7 @@ class TScpCommanderForm : public TCustomScpExplorerForm void __fastcall UpdateToolbar2ItemCaption(TTBCustomItem * Item); void __fastcall SetShortcuts(); void __fastcall UpdatePanelsPathLabelsStatus(); + void __fastcall LocalDefaultDirectory(); protected: virtual bool __fastcall CopyParamDialog(TTransferDirection Direction, @@ -496,6 +513,7 @@ class TScpCommanderForm : public TCustomScpExplorerForm UnicodeString & TargetDirectory, TGUICopyParamType & CopyParam, bool Confirm, bool DragDrop, int Options); virtual TCustomDirView * __fastcall DirView(TOperationSide Side); + virtual bool __fastcall DirViewEnabled(TOperationSide Side); TControl * __fastcall GetComponent(Byte Component); virtual void __fastcall RestoreFormParams(); virtual void __fastcall RestoreParams(); @@ -509,7 +527,8 @@ class TScpCommanderForm : public TCustomScpExplorerForm virtual void __fastcall DoOpenDirectoryDialog(TOpenDirectoryMode Mode, TOperationSide Side); bool __fastcall InternalDDDownload(UnicodeString & TargetDirectory); - virtual bool __fastcall DDGetTarget(UnicodeString & Directory, bool & Internal); + virtual bool __fastcall DDGetTarget( + UnicodeString & Directory, bool & ForceQueue, bool & Internal); virtual void __fastcall DDExtInitDrag(TFileList * FileList, bool & Created); virtual void __fastcall SideEnter(TOperationSide Side); void __fastcall SaveCommandLine(); @@ -545,6 +564,8 @@ class TScpCommanderForm : public TCustomScpExplorerForm virtual bool __fastcall EligibleForImageDisplayMode(TTBCustomItem * Item); virtual bool __fastcall UpdateToolbarDisplayMode(); virtual void __fastcall QueueLabelUpdateStatus(); + virtual UnicodeString __fastcall DefaultDownloadTargetDirectory(); + virtual void __fastcall StartingDisconnected(); public: __fastcall TScpCommanderForm(TComponent* Owner); @@ -567,6 +588,7 @@ class TScpCommanderForm : public TCustomScpExplorerForm virtual void __fastcall HomeDirectory(TOperationSide Side); virtual void __fastcall HistoryGo(TOperationSide Side, int Index); virtual void __fastcall DisplaySystemContextMenu(); + virtual void __fastcall GoToAddress(); __property double LeftPanelWidth = { read = GetLeftPanelWidth, write = SetLeftPanelWidth }; }; diff --git a/source/forms/ScpExplorer.cpp b/source/forms/ScpExplorer.cpp index 149ddf2e..898185e6 100644 --- a/source/forms/ScpExplorer.cpp +++ b/source/forms/ScpExplorer.cpp @@ -69,7 +69,7 @@ __fastcall TScpExplorerForm::TScpExplorerForm(TComponent* Owner) //--------------------------------------------------------------------------- void __fastcall TScpExplorerForm::RestoreFormParams() { - assert(Configuration); + DebugAssert(Configuration); TCustomScpExplorerForm::RestoreFormParams(); RestoreForm(WinConfiguration->ScpExplorer.WindowParams, this); @@ -78,12 +78,12 @@ void __fastcall TScpExplorerForm::RestoreFormParams() void __fastcall TScpExplorerForm::ConfigurationChanged() { TCustomScpExplorerForm::ConfigurationChanged(); - UpdateRemotePathComboBox(UnixPathComboBox, true); + UpdateRemotePathComboBox(true); } //--------------------------------------------------------------------------- void __fastcall TScpExplorerForm::RestoreParams() { - assert(Configuration); + DebugAssert(Configuration); TCustomScpExplorerForm::RestoreParams(); @@ -108,7 +108,7 @@ void __fastcall TScpExplorerForm::RestoreParams() //--------------------------------------------------------------------------- void __fastcall TScpExplorerForm::StoreParams() { - assert(Configuration); + DebugAssert(Configuration); Configuration->BeginUpdate(); try @@ -131,6 +131,11 @@ void __fastcall TScpExplorerForm::StoreParams() } } //--------------------------------------------------------------------------- +UnicodeString __fastcall TScpExplorerForm::DefaultDownloadTargetDirectory() +{ + return WinConfiguration->ScpExplorer.LastLocalTargetDirectory; +} +//--------------------------------------------------------------------------- bool __fastcall TScpExplorerForm::CopyParamDialog(TTransferDirection Direction, TTransferType Type, Boolean Temp, TStrings * FileList, UnicodeString & TargetDirectory, TGUICopyParamType & CopyParam, bool Confirm, @@ -139,7 +144,7 @@ bool __fastcall TScpExplorerForm::CopyParamDialog(TTransferDirection Direction, // Temp means d&d here so far, may change in future! if ((Direction == tdToLocal) && !Temp && TargetDirectory.IsEmpty()) { - TargetDirectory = WinConfiguration->ScpExplorer.LastLocalTargetDirectory; + TargetDirectory = DefaultDownloadTargetDirectory(); } bool Result = TCustomScpExplorerForm::CopyParamDialog( Direction, Type, Temp, FileList, TargetDirectory, CopyParam, Confirm, @@ -153,9 +158,16 @@ bool __fastcall TScpExplorerForm::CopyParamDialog(TTransferDirection Direction, //--------------------------------------------------------------------------- void __fastcall TScpExplorerForm::DoShow() { - TCustomScpExplorerForm::DoShow(); + // See comment in TScpCommanderForm::DoShow() + UpdateControls(); - ActiveControl = RemoteDirView; + if (RemoteDirView->Enabled) + { + RemoteDirView->SetFocus(); + } + FRemoteDirViewWasFocused = true; + + TCustomScpExplorerForm::DoShow(); } //--------------------------------------------------------------------------- bool __fastcall TScpExplorerForm::AllowedAction(TAction * Action, TActionAllowed Allowed) @@ -187,6 +199,7 @@ TControl * __fastcall TScpExplorerForm::GetComponent(Byte Component) case fcTransferDropDown: return reinterpret_cast(TransferDropDown); case fcTransferList: return reinterpret_cast(TransferList); case fcTransferLabel: return reinterpret_cast(TransferLabel); + case fcRemotePathComboBox: return reinterpret_cast(UnixPathComboBox); case fcExplorerMenuBand: return MenuToolbar; case fcExplorerAddressBand: return AddressToolbar; @@ -245,7 +258,7 @@ void __fastcall TScpExplorerForm::FixControlsPlacement() void __fastcall TScpExplorerForm::RemoteDirViewUpdateStatusBar( TObject * /*Sender*/, const TStatusFileInfo & FileInfo) { - FStatusBarFileText = FileStatusBarText(FileInfo); + FStatusBarFileText = FileStatusBarText(FileInfo, osRemote); if (!CancelNote(false)) { // if there's no note to cancel, we need to update status bar explicitly @@ -275,16 +288,19 @@ UnicodeString __fastcall TScpExplorerForm::RemotePathComboBoxText() { UnicodeString Result; - if (WinConfiguration->ScpExplorer.ShowFullAddress) + if (Terminal != NULL) { - Result = UnixExcludeTrailingBackslash(RemoteDirView->Path); - } - else - { - // this is called couple of times before the combo box is populated - if (UnixPathComboBox->Strings->Count > 0) + if (WinConfiguration->ScpExplorer.ShowFullAddress) + { + Result = UnixExcludeTrailingBackslash(RemoteDirView->Path); + } + else { - Result = UnixPathComboBox->Strings->Strings[UnixPathComboBox->Strings->Count - 1]; + // this is called couple of times before the combo box is populated + if (UnixPathComboBox->Strings->Count > 0) + { + Result = UnixPathComboBox->Strings->Strings[UnixPathComboBox->Strings->Count - 1]; + } } } @@ -301,10 +317,9 @@ void __fastcall TScpExplorerForm::UnixPathComboBoxAcceptText( } } //--------------------------------------------------------------------------- -void __fastcall TScpExplorerForm::UpdateRemotePathComboBox( - TTBXComboBoxItem * RemotePathComboBox, bool TextOnly) +void __fastcall TScpExplorerForm::UpdateRemotePathComboBox(bool TextOnly) { - TCustomScpExplorerForm::UpdateRemotePathComboBox(RemotePathComboBox, TextOnly); + TCustomScpExplorerForm::UpdateRemotePathComboBox(TextOnly); UnixPathComboBox->Text = RemotePathComboBoxText(); } @@ -312,7 +327,7 @@ void __fastcall TScpExplorerForm::UpdateRemotePathComboBox( void __fastcall TScpExplorerForm::RemoteDirViewPathChange( TCustomDirView * /*Sender*/) { - UpdateRemotePathComboBox(UnixPathComboBox, false); + UpdateRemotePathComboBox(false); } //--------------------------------------------------------------------------- void __fastcall TScpExplorerForm::ToolbarItemResize(TTBXCustomDropDownItem * Item, int Width) @@ -332,7 +347,7 @@ void __fastcall TScpExplorerForm::QueueSubmenuItemPopup( //--------------------------------------------------------------------------- void __fastcall TScpExplorerForm::ChangePath(TOperationSide /*Side*/) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- bool __fastcall TScpExplorerForm::UpdateToolbarDisplayMode() @@ -352,3 +367,9 @@ void __fastcall TScpExplorerForm::RemoteStatusBarPanelClick(TTBXCustomStatusBar FileStatusBarPanelClick(Panel, osRemote); } //--------------------------------------------------------------------------- +void __fastcall TScpExplorerForm::GoToAddress() +{ + AddressToolbar->View->Selected = AddressToolbar->View->Find(UnixPathComboBox); + AddressToolbar->View->EnterToolbarLoop(TTBEnterToolbarLoopOptions() << tbetExecuteSelected); +} +//--------------------------------------------------------------------------- diff --git a/source/forms/ScpExplorer.dfm b/source/forms/ScpExplorer.dfm index 8e4bee26..dd5116a4 100644 --- a/source/forms/ScpExplorer.dfm +++ b/source/forms/ScpExplorer.dfm @@ -50,11 +50,10 @@ inherited ScpExplorerForm: TScpExplorerForm object TBXItem25: TTBXItem Action = NonVisualDataModule.CurrentOpenAction end - object TBXItem26: TTBXItem + object TBXItem26: TTBXSubmenuItem Action = NonVisualDataModule.RemoteEditAction - end - object TBXSubmenuItem9: TTBXSubmenuItem - Action = NonVisualDataModule.CurrentEditAlternative2Action + DropdownCombo = True + OnPopup = EditMenuItemPopup end object TBXItem4: TTBXItem Action = NonVisualDataModule.RemoteAddEditLinkAction @@ -72,11 +71,20 @@ inherited ScpExplorerForm: TScpExplorerForm end object TBXSeparatorItem8: TTBXSeparatorItem end - object TBXItem30: TTBXItem + object TBXItem30: TTBXSubmenuItem Action = NonVisualDataModule.RemoteCopyAction - end - object TBXItem32: TTBXItem - Action = NonVisualDataModule.RemoteMoveAction + DropdownCombo = True + object TBXItem156: TTBXItem + Action = NonVisualDataModule.RemoteCopyNonQueueAction + end + object TBXItem158: TTBXItem + Action = NonVisualDataModule.RemoteCopyQueueAction + end + object TBXSeparatorItem39: TTBXSeparatorItem + end + object TBXItem32: TTBXItem + Action = NonVisualDataModule.RemoteMoveAction + end end object TBXItem31: TTBXItem Action = NonVisualDataModule.RemoteCopyToAction @@ -103,7 +111,17 @@ inherited ScpExplorerForm: TScpExplorerForm Action = NonVisualDataModule.FullFileListToClipboardAction end object TBXItem40: TTBXItem - Action = NonVisualDataModule.FileGenerateUrlAction + Action = NonVisualDataModule.FileGenerateUrlAction2 + end + end + object TBXSubmenuItem25: TTBXSubmenuItem + Caption = '&Locking' + Hint = 'Manage file locks' + object TBXItem214: TTBXItem + Action = NonVisualDataModule.LockAction + end + object TBXItem216: TTBXItem + Action = NonVisualDataModule.UnlockAction end end object TBXSeparatorItem1: TTBXSeparatorItem @@ -235,6 +253,8 @@ inherited ScpExplorerForm: TScpExplorerForm object TBXItem110: TTBXItem Action = NonVisualDataModule.SelectAllAction end + object TBXSeparatorItem41: TTBXSeparatorItem + end object TBXItem111: TTBXItem Action = NonVisualDataModule.InvertSelectionAction end @@ -244,6 +264,14 @@ inherited ScpExplorerForm: TScpExplorerForm object TBXItem27: TTBXItem Action = NonVisualDataModule.RestoreSelectionAction end + object TBXSeparatorItem61: TTBXSeparatorItem + end + object TBXItem212: TTBXItem + Action = NonVisualDataModule.SelectSameExtAction + end + object TBXItem213: TTBXItem + Action = NonVisualDataModule.UnselectSameExtAction + end end object TBXSubmenuItem19: TTBXSubmenuItem Caption = '&Session' @@ -267,7 +295,7 @@ inherited ScpExplorerForm: TScpExplorerForm Action = NonVisualDataModule.FileSystemInfoAction end object TBXItem144: TTBXItem - Action = NonVisualDataModule.SessionGenerateUrlAction + Action = NonVisualDataModule.SessionGenerateUrlAction2 end object TBXSeparatorItem29: TTBXSeparatorItem end @@ -370,14 +398,14 @@ inherited ScpExplorerForm: TScpExplorerForm RadioItem = True end object TBXItem223: TTBXItem - Action = NonVisualDataModule.QueueDisconnectOnceEmptyAction + Action = NonVisualDataModule.QueueDisconnectOnceEmptyAction2 RadioItem = True end object TBXItem148: TTBXItem - Action = NonVisualDataModule.QueueSuspendOnceEmptyAction + Action = NonVisualDataModule.QueueSuspendOnceEmptyAction2 end object TBXItem224: TTBXItem - Action = NonVisualDataModule.QueueShutDownOnceEmptyAction + Action = NonVisualDataModule.QueueShutDownOnceEmptyAction2 RadioItem = True end end @@ -527,6 +555,9 @@ inherited ScpExplorerForm: TScpExplorerForm object TBXItem116: TTBXItem Action = NonVisualDataModule.TableOfContentsAction end + object TBXItem159: TTBXItem + Action = NonVisualDataModule.TipsAction + end object TBXSeparatorItem30: TTBXSeparatorItem end object TBXItem117: TTBXItem @@ -595,18 +626,29 @@ inherited ScpExplorerForm: TScpExplorerForm end object TBXSeparatorItem15: TTBXSeparatorItem end - object TBXItem141: TTBXItem + object TBXItem141: TTBXSubmenuItem Action = NonVisualDataModule.RemoteCopyAction DisplayMode = nbdmImageAndText - end - object TBXItem142: TTBXItem - Action = NonVisualDataModule.RemoteMoveAction + DropdownCombo = True + object TBXItem155: TTBXItem + Action = NonVisualDataModule.RemoteCopyNonQueueAction + end + object TBXItem157: TTBXItem + Action = NonVisualDataModule.RemoteCopyQueueAction + end + object TBXSeparatorItem38: TTBXSeparatorItem + end + object TBXItem142: TTBXItem + Action = NonVisualDataModule.RemoteMoveAction + end end object TBXSeparatorItem27: TTBXSeparatorItem end - object TBXItem42: TTBXItem + object TBXItem42: TTBXSubmenuItem Action = NonVisualDataModule.RemoteEditAction DisplayMode = nbdmImageAndText + DropdownCombo = True + OnPopup = EditMenuItemPopup end object TBXItem45: TTBXItem Action = NonVisualDataModule.CurrentOpenAction @@ -886,7 +928,7 @@ inherited ScpExplorerForm: TScpExplorerForm end end object TransferToolbar: TTBXToolbar - Left = 44 + Left = 45 Top = 182 Caption = 'Transfer Settings' DockPos = 44 @@ -921,7 +963,7 @@ inherited ScpExplorerForm: TScpExplorerForm end end object CustomCommandsToolbar: TTBXToolbar - Left = 299 + Left = 300 Top = 182 Caption = 'Custom Commands' DockPos = 193 diff --git a/source/forms/ScpExplorer.h b/source/forms/ScpExplorer.h index 954e9508..06569e80 100644 --- a/source/forms/ScpExplorer.h +++ b/source/forms/ScpExplorer.h @@ -44,9 +44,9 @@ class TScpExplorerForm : public TCustomScpExplorerForm TTBXItem *TBXItem112; TTBXSubmenuItem *TBXSubmenuItem5; TTBXItem *TBXItem25; - TTBXItem *TBXItem26; + TTBXSubmenuItem *TBXItem26; TTBXSeparatorItem *TBXSeparatorItem7; - TTBXItem *TBXItem30; + TTBXSubmenuItem *TBXItem30; TTBXItem *TBXItem31; TTBXItem *TBXItem32; TTBXItem *TBXItem33; @@ -173,7 +173,7 @@ class TScpExplorerForm : public TCustomScpExplorerForm TTBXItem *TBXItem29; TTBXItem *TBXItem37; TTBXSeparatorItem *TBXSeparatorItem15; - TTBXItem *TBXItem42; + TTBXSubmenuItem *TBXItem42; TTBXItem *TBXItem45; TTBXItem *TBXItem58; TTBXItem *TBXItem59; @@ -252,7 +252,6 @@ class TScpExplorerForm : public TCustomScpExplorerForm TTBXSubmenuItem *TBXSubmenuItem13; TTBXItem *TBXItem198; TTBXItem *TBXItem199; - TTBXSubmenuItem *TBXSubmenuItem9; TTBXItem *TBXItem27; TTBXItem *TBXItem134; TTBXSubmenuItem *TBXSubmenuItem26; @@ -287,7 +286,7 @@ class TScpExplorerForm : public TCustomScpExplorerForm TTBXSeparatorItem *TBXSeparatorItem24; TTBXLabelItem *TransferSettingsLabelItem; TTBXItem *TBXItem140; - TTBXItem *TBXItem141; + TTBXSubmenuItem *TBXItem141; TTBXItem *TBXItem142; TTBXSeparatorItem *TBXSeparatorItem27; TTBXItem *TBXItem143; @@ -297,6 +296,20 @@ class TScpExplorerForm : public TCustomScpExplorerForm TTBXItem *TBXItem144; TTBXItem *TBXItem148; TTBXItem *TBXItem154; + TTBXItem *TBXItem155; + TTBXItem *TBXItem156; + TTBXItem *TBXItem157; + TTBXSeparatorItem *TBXSeparatorItem38; + TTBXItem *TBXItem158; + TTBXSeparatorItem *TBXSeparatorItem39; + TTBXSeparatorItem *TBXSeparatorItem41; + TTBXSeparatorItem *TBXSeparatorItem61; + TTBXItem *TBXItem212; + TTBXItem *TBXItem213; + TTBXSubmenuItem *TBXSubmenuItem25; + TTBXItem *TBXItem214; + TTBXItem *TBXItem216; + TTBXItem *TBXItem159; void __fastcall RemoteDirViewUpdateStatusBar(TObject *Sender, const TStatusFileInfo &FileInfo); void __fastcall UnixPathComboBoxBeginEdit(TTBEditItem *Sender, @@ -325,11 +338,11 @@ class TScpExplorerForm : public TCustomScpExplorerForm virtual void __fastcall FixControlsPlacement(); DYNAMIC void __fastcall DoShow(); virtual void __fastcall UpdateStatusPanelText(TTBXStatusPanel * Panel); - virtual void __fastcall UpdateRemotePathComboBox( - TTBXComboBoxItem * RemotePathComboBox, bool TextOnly); + virtual void __fastcall UpdateRemotePathComboBox(bool TextOnly); UnicodeString __fastcall RemotePathComboBoxText(); virtual void __fastcall ToolbarItemResize(TTBXCustomDropDownItem * Item, int Width); virtual bool __fastcall UpdateToolbarDisplayMode(); + virtual UnicodeString __fastcall DefaultDownloadTargetDirectory(); public: __fastcall TScpExplorerForm(TComponent* Owner); @@ -338,6 +351,7 @@ class TScpExplorerForm : public TCustomScpExplorerForm virtual void __fastcall FullSynchronizeDirectories(); virtual void __fastcall SynchronizeDirectories(); virtual void __fastcall ChangePath(TOperationSide Side); + virtual void __fastcall GoToAddress(); }; //--------------------------------------------------------------------------- #endif diff --git a/source/forms/SelectMask.cpp b/source/forms/SelectMask.cpp index 7f30f838..8e0323fe 100644 --- a/source/forms/SelectMask.cpp +++ b/source/forms/SelectMask.cpp @@ -28,7 +28,7 @@ bool __fastcall DoSelectMaskDialog(TCustomDirView * Parent, bool Select, CenterFormOn(Dialog, Parent); Dialog->Init(Select ? TSelectMaskDialog::smSelect : TSelectMaskDialog::smDeselect); DefaultFileFilter(*Filter); - TWinConfiguration * WinConfiguration = NOT_NULL(dynamic_cast(Configuration)); + TWinConfiguration * WinConfiguration = DebugNotNull(dynamic_cast(Configuration)); Filter->Masks = WinConfiguration->SelectMask; Filter->Directories = WinConfiguration->SelectDirectories; Dialog->FileFilter = *Filter; diff --git a/source/forms/SiteAdvanced.cpp b/source/forms/SiteAdvanced.cpp index 19900e07..27b3b982 100644 --- a/source/forms/SiteAdvanced.cpp +++ b/source/forms/SiteAdvanced.cpp @@ -180,6 +180,8 @@ void __fastcall TSiteAdvancedDialog::LoadSession() TimeDifferenceMinutesEdit->AsInteger = TimeDifferenceMin % MinsPerHour; TimeDifferenceAutoCheck->Checked = FSessionData->TimeDifferenceAuto; + TrimVMSVersionsCheck->Checked = FSessionData->TrimVMSVersions; + // Environment/Recycle bin page DeleteToRecycleBinCheck->Checked = FSessionData->DeleteToRecycleBin; OverwrittenToRecycleBinCheck->Checked = FSessionData->OverwrittenToRecycleBin; @@ -240,7 +242,7 @@ void __fastcall TSiteAdvancedDialog::LoadSession() } CipherListBox->Items->Clear(); - assert(CIPHER_NAME_WARN+CIPHER_COUNT-1 == CIPHER_NAME_ARCFOUR); + DebugAssert(CIPHER_NAME_WARN+CIPHER_COUNT-1 == CIPHER_NAME_ARCFOUR); for (int Index = 0; Index < CIPHER_COUNT; Index++) { CipherListBox->Items->AddObject( @@ -251,7 +253,7 @@ void __fastcall TSiteAdvancedDialog::LoadSession() // KEX page KexListBox->Items->Clear(); - assert(KEX_NAME_WARN+KEX_COUNT-1 == KEX_NAME_RSA); + DebugAssert(KEX_NAME_WARN+KEX_COUNT-1 == KEX_NAME_RSA); for (int Index = 0; Index < KEX_COUNT; Index++) { KexListBox->Items->AddObject( @@ -397,6 +399,7 @@ void __fastcall TSiteAdvancedDialog::LoadSession() MinTlsVersionCombo->ItemIndex = TlsVersionToIndex(FSessionData->MinTlsVersion); MaxTlsVersionCombo->ItemIndex = TlsVersionToIndex(FSessionData->MaxTlsVersion); SslSessionReuseCheck->Checked = FSessionData->SslSessionReuse; + TlsCertificateFileEdit->Text = FSessionData->TlsCertificateFile; // Note page NoteMemo->Lines->Text = FSessionData->Note; @@ -549,6 +552,8 @@ void __fastcall TSiteAdvancedDialog::SaveSession() (double(TimeDifferenceMinutesEdit->AsInteger) / MinsPerDay); FSessionData->TimeDifferenceAuto = TimeDifferenceAutoCheck->Checked; + FSessionData->TrimVMSVersions = TrimVMSVersionsCheck->Checked; + // Environment/Recycle bin page FSessionData->DeleteToRecycleBin = DeleteToRecycleBinCheck->Checked; FSessionData->OverwrittenToRecycleBin = OverwrittenToRecycleBinCheck->Checked; @@ -579,12 +584,12 @@ void __fastcall TSiteAdvancedDialog::SaveSession() { if (AllowScpFallbackCheck->Checked) { - assert(FSessionData->FSProtocol == fsSFTPonly); + DebugAssert(FSessionData->FSProtocol == fsSFTPonly); FSessionData->FSProtocol = fsSFTP; } else { - assert(FSessionData->FSProtocol == fsSFTP); + DebugAssert(FSessionData->FSProtocol == fsSFTP); FSessionData->FSProtocol = fsSFTPonly; } } @@ -649,6 +654,7 @@ void __fastcall TSiteAdvancedDialog::SaveSession() FSessionData->MinTlsVersion = IndexToTlsVersion(MinTlsVersionCombo->ItemIndex); FSessionData->MaxTlsVersion = IndexToTlsVersion(MaxTlsVersionCombo->ItemIndex); FSessionData->SslSessionReuse = SslSessionReuseCheck->Checked; + FSessionData->TlsCertificateFile = TlsCertificateFileEdit->Text; // Note page FSessionData->Note = NoteMemo->Lines->Text; @@ -676,7 +682,7 @@ void __fastcall TSiteAdvancedDialog::UpdateNavigationTree() TTreeNode * Node; if (PrevNode == NULL) { - assert(!Indented); + DebugAssert(!Indented); Node = NavigationTree->Items->GetFirstNode(); } else @@ -1034,6 +1040,7 @@ void __fastcall TSiteAdvancedDialog::FormShow(TObject * /*Sender*/) InstallPathWordBreakProc(RemoteDirectoryEdit); InstallPathWordBreakProc(LocalDirectoryEdit); InstallPathWordBreakProc(RecycleBinPathEdit); + InstallPathWordBreakProc(TlsCertificateFileEdit); ChangePage(EnvironmentSheet); @@ -1098,7 +1105,7 @@ void __fastcall TSiteAdvancedDialog::PageControlChange(TObject *Sender) } } - if (ALWAYS_TRUE(Found)) + if (DebugAlwaysTrue(Found)) { DataChange(Sender); } @@ -1145,7 +1152,7 @@ void __fastcall TSiteAdvancedDialog::CMDialogKey(TWMKeyDown & Message) //--------------------------------------------------------------------------- void __fastcall TSiteAdvancedDialog::WMHelp(TWMHelp & Message) { - assert(Message.HelpInfo != NULL); + DebugAssert(Message.HelpInfo != NULL); if (Message.HelpInfo->iContextType == HELPINFO_WINDOW) { @@ -1159,7 +1166,7 @@ void __fastcall TSiteAdvancedDialog::WMHelp(TWMHelp & Message) void __fastcall TSiteAdvancedDialog::Dispatch(void * Message) { TMessage * M = reinterpret_cast(Message); - assert(M); + DebugAssert(M); if (M->Msg == CM_DIALOGKEY) { CMDialogKey(*((TWMKeyDown *)Message)); @@ -1255,17 +1262,14 @@ void __fastcall TSiteAdvancedDialog::HelpButtonClick(TObject * /*Sender*/) } //--------------------------------------------------------------------------- void __fastcall TSiteAdvancedDialog::PrivateKeyEdit2AfterDialog(TObject * Sender, - UnicodeString & Name, bool & /*Action*/) + UnicodeString & Name, bool & Action) { - if (CompareFileName(Name, ExpandEnvironmentVariables(FBeforeDialogPath))) - { - Name = FBeforeDialogPath; - } + PathEditAfterDialog(Sender, Name, Action); TFilenameEdit * Edit = dynamic_cast(Sender); if (Name != Edit->Text) { - VerifyKey(Name); + VerifyAndConvertKey(Name); } } //--------------------------------------------------------------------------- @@ -1274,9 +1278,11 @@ void __fastcall TSiteAdvancedDialog::FormCloseQuery(TObject * /*Sender*/, { if (ModalResult == DefaultResult(this)) { + // StripPathQuotes should not be needed as we do not feed quotes anymore VerifyKeyIncludingVersion(StripPathQuotes(PrivateKeyEdit2->Text), GetSshProt()); // for tunnel key do not check SSH version as it is not configurable VerifyKey(StripPathQuotes(TunnelPrivateKeyEdit2->Text)); + VerifyCertificate(StripPathQuotes(TlsCertificateFileEdit->Text)); } } //--------------------------------------------------------------------------- @@ -1287,6 +1293,15 @@ void __fastcall TSiteAdvancedDialog::PathEditBeforeDialog(TObject * /*Sender*/, Name = ExpandEnvironmentVariables(Name); } //--------------------------------------------------------------------------- +void __fastcall TSiteAdvancedDialog::PathEditAfterDialog(TObject * /*Sender*/, + UnicodeString & Name, bool & /*Action*/) +{ + if (CompareFileName(Name, ExpandEnvironmentVariables(FBeforeDialogPath))) + { + Name = FBeforeDialogPath; + } +} +//--------------------------------------------------------------------------- int __fastcall TSiteAdvancedDialog::LastSupportedFtpProxyMethod() { return pmHTTP; @@ -1346,7 +1361,7 @@ TProxyMethod __fastcall TSiteAdvancedDialog::GetProxyMethod() } else { - FAIL; + DebugFail(); Result = ::pmNone; } return Result; @@ -1389,9 +1404,14 @@ void __fastcall TSiteAdvancedDialog::ProxyLocalCommandBrowseButtonClick( //--------------------------------------------------------------------------- void __fastcall TSiteAdvancedDialog::ColorButtonClick(TObject * /*Sender*/) { + // WORKAROUND: Compiler keeps crashing randomly (but frequently) with + // "internal error" when passing menu directly to unique_ptr. + // Splitting it to two statements seems to help. + // The same hack exists in TPreferencesDialog::EditorFontColorButtonClick + TPopupMenu * Menu = CreateSessionColorPopupMenu(FColor, SessionColorChange); // Popup menu has to survive the popup as TBX calls click handler asynchronously (post). - FColorPopupMenu.reset(CreateSessionColorPopupMenu(FColor, SessionColorChange)); - MenuPopup(FColorPopupMenu.get(), ColorButton); + FColorPopupMenu.reset(Menu); + MenuPopup(Menu, ColorButton); } //--------------------------------------------------------------------------- void __fastcall TSiteAdvancedDialog::SessionColorChange(TColor Color) @@ -1420,7 +1440,7 @@ TTlsVersion __fastcall TSiteAdvancedDialog::IndexToTlsVersion(int Index) switch (Index) { default: - FAIL; + DebugFail(); case 0: return ssl3; case 1: @@ -1437,7 +1457,7 @@ int __fastcall TSiteAdvancedDialog::TlsVersionToIndex(TTlsVersion TlsVersion) switch (TlsVersion) { default: - FAIL; + DebugFail(); case ssl2: case ssl3: return 0; @@ -1473,11 +1493,12 @@ void __fastcall TSiteAdvancedDialog::MaxTlsVersionComboChange(TObject * /*Sender void __fastcall TSiteAdvancedDialog::ProxyAutodetectButtonClick(TObject * /*Sender*/) { TInstantOperationVisualizer Visualizer; - UnicodeString Proxy; - if (AutodetectProxyUrl(Proxy) && !Proxy.IsEmpty()) + UnicodeString ProxyHost; + int ProxyPort; + if (AutodetectProxy(ProxyHost, ProxyPort)) { - ProxyHostEdit->Text = ::CutToChar(Proxy, L':', true); - ProxyPortEdit->AsInteger = StrToIntDef(Proxy, ProxyPortNumber); + ProxyHostEdit->Text = ProxyHost; + ProxyPortEdit->AsInteger = ProxyPort; SshProxyMethodCombo->ItemIndex = pmHTTP; FtpProxyMethodCombo->ItemIndex = pmHTTP; @@ -1493,3 +1514,15 @@ void __fastcall TSiteAdvancedDialog::NoteMemoKeyDown( MemoKeyDown(Sender, Key, Shift); } //--------------------------------------------------------------------------- +void __fastcall TSiteAdvancedDialog::TlsCertificateFileEditAfterDialog(TObject *Sender, + UnicodeString &Name, bool &Action) +{ + PathEditAfterDialog(Sender, Name, Action); + + TFilenameEdit * Edit = dynamic_cast(Sender); + if (Name != Edit->Text) + { + VerifyCertificate(Name); + } +} +//--------------------------------------------------------------------------- diff --git a/source/forms/SiteAdvanced.dfm b/source/forms/SiteAdvanced.dfm index 98928729..82eff467 100644 --- a/source/forms/SiteAdvanced.dfm +++ b/source/forms/SiteAdvanced.dfm @@ -56,13 +56,13 @@ object SiteAdvancedDialog: TSiteAdvancedDialog Left = 0 Top = 6 Width = 393 - Height = 117 + Height = 140 Anchors = [akLeft, akTop, akRight] Caption = 'Server environment' TabOrder = 0 DesignSize = ( 393 - 117) + 140) object EOLTypeLabel: TLabel Left = 12 Top = 20 @@ -162,10 +162,19 @@ object SiteAdvancedDialog: TSiteAdvancedDialog TabOrder = 4 OnClick = DataChange end + object TrimVMSVersionsCheck: TCheckBox + Left = 12 + Top = 113 + Width = 369 + Height = 17 + Caption = '&Trim VMS version numbers' + TabOrder = 5 + OnClick = DataChange + end end object DSTModeGroup: TGroupBox Left = 0 - Top = 131 + Top = 153 Width = 393 Height = 93 Anchors = [akLeft, akTop, akRight] @@ -1636,6 +1645,45 @@ object SiteAdvancedDialog: TSiteAdvancedDialog OnClick = DataChange end end + object TlsAuthenticationGroup: TGroupBox + Left = 0 + Top = 113 + Width = 393 + Height = 72 + Anchors = [akLeft, akTop, akRight] + Caption = 'Authentication parameters' + TabOrder = 1 + DesignSize = ( + 393 + 72) + object Label4: TLabel + Left = 12 + Top = 20 + Width = 99 + Height = 13 + Caption = '&Client certificate file:' + FocusControl = TlsCertificateFileEdit + end + object TlsCertificateFileEdit: TFilenameEdit + Left = 12 + Top = 37 + Width = 372 + Height = 21 + AcceptFiles = True + OnBeforeDialog = PathEditBeforeDialog + OnAfterDialog = TlsCertificateFileEditAfterDialog + Filter = + 'Certificates and private key files (*.pfx;*.p12;*.key;*.pem)|*.p' + + 'fx;*.p12;*.key;*.pem|All Files (*.*)|*.*' + DialogOptions = [ofReadOnly, ofPathMustExist, ofFileMustExist] + DialogTitle = 'Select client certificate file' + ClickKey = 16397 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + Text = 'TlsCertificateFileEdit' + OnChange = DataChange + end + end end object AdvancedSheet: TTabSheet Tag = 1 @@ -2300,7 +2348,7 @@ object SiteAdvancedDialog: TSiteAdvancedDialog Width = 371 Height = 332 Anchors = [akLeft, akTop, akRight, akBottom] - MaxLength = 1000 + MaxLength = 4000 TabOrder = 0 OnChange = DataChange OnKeyDown = NoteMemoKeyDown diff --git a/source/forms/SiteAdvanced.h b/source/forms/SiteAdvanced.h index 9eba4654..79a84e33 100644 --- a/source/forms/SiteAdvanced.h +++ b/source/forms/SiteAdvanced.h @@ -252,6 +252,10 @@ class TSiteAdvancedDialog : public TForm TCheckBox *TimeDifferenceAutoCheck; TLabel *Label3; TComboBox *FtpHostCombo; + TGroupBox *TlsAuthenticationGroup; + TLabel *Label4; + TFilenameEdit *TlsCertificateFileEdit; + TCheckBox *TrimVMSVersionsCheck; void __fastcall DataChange(TObject *Sender); void __fastcall FormShow(TObject *Sender); void __fastcall PageControlChange(TObject *Sender); @@ -270,6 +274,8 @@ class TSiteAdvancedDialog : public TForm void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose); void __fastcall PathEditBeforeDialog(TObject *Sender, UnicodeString &Name, bool &Action); + void __fastcall PathEditAfterDialog(TObject * Sender, + UnicodeString & Name, bool & Action); void __fastcall NavigationTreeCollapsing(TObject *Sender, TTreeNode *Node, bool &AllowCollapse); void __fastcall ProxyLocalCommandBrowseButtonClick(TObject *Sender); @@ -280,6 +286,8 @@ class TSiteAdvancedDialog : public TForm void __fastcall MaxTlsVersionComboChange(TObject *Sender); void __fastcall ProxyAutodetectButtonClick(TObject *Sender); void __fastcall NoteMemoKeyDown(TObject *Sender, WORD &Key, TShiftState Shift); + void __fastcall TlsCertificateFileEditAfterDialog(TObject *Sender, UnicodeString &Name, + bool &Action); public: diff --git a/source/forms/Symlink.cpp b/source/forms/Symlink.cpp index 1a003bbf..149c4894 100644 --- a/source/forms/Symlink.cpp +++ b/source/forms/Symlink.cpp @@ -51,7 +51,7 @@ __fastcall TSymlinkDialog::TSymlinkDialog(TComponent* Owner) //--------------------------------------------------------------------------- void __fastcall TSymlinkDialog::UpdateControls() { - assert(Side == osLocal || Side == osRemote); + DebugAssert(Side == osLocal || Side == osRemote); FileNameEdit->Color = !Edit ? clWindow : clBtnFace; FileNameEdit->ReadOnly = Edit; FileNameEdit->TabStop = !Edit; diff --git a/source/forms/Synchronize.cpp b/source/forms/Synchronize.cpp index 46b8bb7d..b5b48c56 100644 --- a/source/forms/Synchronize.cpp +++ b/source/forms/Synchronize.cpp @@ -84,6 +84,7 @@ __fastcall TSynchronizeDialog::TSynchronizeDialog(TComponent * Owner) HotTrackLabel(CopyParamLabel); CopyParamListButton(TransferSettingsButton); + LoadDialogImage(Image, L"Keep remote directory up to date"); SetGlobalMinimizeHandler(this, GlobalMinimize); } @@ -284,7 +285,7 @@ void __fastcall TSynchronizeDialog::DoStartStop(bool Start, bool Synchronize) FLAGMASK(Synchronize, soSynchronize); if (Start) { - assert(*FOnFeedSynchronizeError == NULL); + DebugAssert(*FOnFeedSynchronizeError == NULL); *FOnFeedSynchronizeError = (FLAGSET(SParams.Options, soContinueOnError) ? &FeedSynchronizeError : TFeedSynchronizeError(NULL)); delete FSynchronizeOptions; @@ -302,7 +303,7 @@ void __fastcall TSynchronizeDialog::DoStartStop(bool Start, bool Synchronize) //--------------------------------------------------------------------------- void __fastcall TSynchronizeDialog::Dispatch(void * AMessage) { - assert(AMessage != NULL); + DebugAssert(AMessage != NULL); TMessage & Message = *reinterpret_cast(AMessage); if ((Message.Msg == WM_USER_STOP) && FAbort) { @@ -423,7 +424,7 @@ void __fastcall TSynchronizeDialog::StartButtonClick(TObject * /*Sender*/) if (Continue) { - assert(!FSynchronizing); + DebugAssert(!FSynchronizing); LocalDirectoryEdit->SaveToHistory(); CustomWinConfiguration->History[L"LocalDirectory"] = LocalDirectoryEdit->Items; @@ -549,7 +550,7 @@ int __fastcall TSynchronizeDialog::ActualCopyParamAttrs() //--------------------------------------------------------------------------- void __fastcall TSynchronizeDialog::CopyParamClick(TObject * Sender) { - assert(FLAGCLEAR(FOptions, soDoNotUsePresets)); + DebugAssert(FLAGCLEAR(FOptions, soDoNotUsePresets)); // PreserveTime is forced for some settings, but avoid hard-setting it until // user really confirms it on custom dialog TCopyParamType ACopyParams = CopyParams; diff --git a/source/forms/Synchronize.dfm b/source/forms/Synchronize.dfm index 62f5d38e..3e860768 100644 --- a/source/forms/Synchronize.dfm +++ b/source/forms/Synchronize.dfm @@ -35,7 +35,7 @@ object SynchronizeDialog: TSynchronizeDialog object LocalDirectoryLabel: TLabel Left = 49 Top = 19 - Width = 227 + Width = 195 Height = 13 Anchors = [akLeft, akTop, akRight] Caption = '&Watch for changes in the local directory:' @@ -44,7 +44,7 @@ object SynchronizeDialog: TSynchronizeDialog object RemoteDirectoryLabel: TLabel Left = 49 Top = 68 - Width = 313 + Width = 281 Height = 13 Anchors = [akLeft, akTop, akRight] Caption = '... &and automatically reflect them on the remote directory:' @@ -56,50 +56,6 @@ object SynchronizeDialog: TSynchronizeDialog Width = 32 Height = 32 AutoSize = True - Picture.Data = { - 0954506E67496D61676589504E470D0A1A0A0000000D49484452000000200000 - 00200806000000737A7AF4000000097048597300000EC300000EC301C76FA864 - 000005024944415478DAC5976B4C1C5514C7FF7766DF0FBA0B4B79B680B6D55A - 62B5BC9A16D2C646692B85B6980A4DD4DA686B7C3469D40F881F34A9C8071322 - D198DA8606B5A1EF8AC5A05F4CB10D228FF8A2481F140A6D0ABBB82CECC2B2AF - 19EF4CD9856597B2BBD47836937B66E6CE3DBF7BEE99FB9F25F89F8D789DFA8F - 967C4678F2C6EC0E3CE13F2F2A1F78F33F05F8AE2279836E71EAC5BC3D27E915 - E98CE82E5CFEAA142383373716BE77BBE941045C56A189F5F02AA6B7DC38340D - 7068E9959C82271F5B9C620878C0786B18BF36FC36E78063E0F13B71A39DB8AD - 7DC463A697E2E8314A8F5EC2F33F313CEA7ACA473A85BE2995D1EB58C2FCE8E1 - 38CBAD32F3929900FCB6175685359309B707D59D77507BDD08995E812883064A - B50A4A8512842370D9DDB05AC63174C7C8391DCEB384C729C232C7D666E7689A - 5B7E415F9999F8018413DC42677D84B1C36C90C190AA835CAE808491424A0F09 - 23117DEF39437F77FAEFA2E7C64D64656622392119A7CF9F0904D856D61E5270 - 9BD38682DA9D18559B2155483169718AB3250C8142A980213E06B1B10648D969 - 10014AC88A42A614CF4F9C3B1104E0DD4660F0ED79015E69BA86669B1D1E1787 - 471432942C8BC54A9D0A177FE845353BF13A38B247ABD364A7AF5E05AD5A2B06 - 97B2523F98E3678E070138F80D05F8E0BEC15B8C36EC6EEA814C42F0E1134978 - 3E2DC677EF42DD0D14BEDF2F8E975A117340AE9455AD5BBF96D1A8B47E4B23F8 - B5A76B8300BC55057EA8EABE003D56075E6D1EC0BE15312849D3FBDD6B38D5EF - 0310AB9D61BECFCECAD225C425CCAA0B096A4ED6040178AD0CBCA926AC37C10F - E0EC9008F050A53E17846DCCC85CA3498A4FF44BBD307B96B6474F1C090428D8 - BB17309F8F1CE0DB111C60C7D21889B4332B33431DBF382E20B8E00B161C60F7 - 16BAABFC1C3940C3B80800B0AD740B8D9DAF7F2040F16ABABB74450ED0E8F2D5 - 4038E603D8901B07CE618A18E0521BB7308082D2A2B01EEC6CFF137DD77B03AE - 87AB9E5E8011DAE8C201D027A622F7C5BA05AB67D8299B02FE9BAAE7A391A8E7 - 8CC81D85E5FD99910284AD9EB3EDC2D757C49AF1011C8ED286A288268E61B393 - DE89EA0DA1EFBC1600B0635781E8F32E37E07289ADE8BBDD300D9BD1D6DD33EE - 044917004255CF3933F0716670009E7E6888C16950DE792FF8A07118EDDD3D36 - 8EE3B7ECB75A2F87A39E732F41571080E2AD74C62EDFAC85D668FA07AD5DD72D - 3CC73FBBCF6A6D16FA0653CFEE7326FC513B88FC4F974397AA981F604A3DFD00 - B66FCF170130957AC19F1CB7E352E7556ED2E53EB87F6CACDA0730433DAFD69B - D152791B6E178FAD871F464286665E00AF7AFA03146CF25B776F36EC14A2A36F - 00A3F6C956FAFA1C8D2ED17E99F7DC4B186E3B43835B30D9ED80820EA55CAF42 - FE27C9212D81573DFD008A366F1403BA1D0EB01C37558CF780380A33343A86BB - D6714C08603C0F3561104B87B07B3C184A60B0E35812646A263400AA9E81004F - E76170D0848EAE6B589E188FB4683DFD96F3F8BF11AEE9CC389C2E5CA5B0EE15 - 123C53110395810DB90805F50C00C8797C25DAFEEAB679C0BD4C7866975CCA16 - 2F5914C518E432A86857A987C3A4C309ABD309230D6C241EACDCA9C49A3D6A48 - E4E1ED695EF59C06D06A071886E868B5E77BABFD0B8D269D21A49427788A76A4 - 5A0FE13BECAE3C459292BE390649194E28F4A1A57CB679D5D3077044AD8E6309 - E1F6DA6CF36A7224EA199081BA7A7F8070ACFED0520B7D70D18208E8FF1B0AA0 - 8F08E041DABFD644903F11991EFB0000000049454E44AE426082} end object RemoteDirectoryEdit: THistoryComboBox Left = 49 diff --git a/source/forms/SynchronizeChecklist.cpp b/source/forms/SynchronizeChecklist.cpp index 80bd3429..d9bd46b0 100644 --- a/source/forms/SynchronizeChecklist.cpp +++ b/source/forms/SynchronizeChecklist.cpp @@ -16,6 +16,7 @@ #include #include #include +#include //--------------------------------------------------------------------- #pragma link "IEListView" #pragma link "NortonLikeListView" @@ -65,6 +66,8 @@ __fastcall TSynchronizeChecklistDialog::TSynchronizeChecklistDialog( FChangingItemMass = false; FGeneralHint = StatusBar->Hint; + SelectScaledImageList(ActionImages); + FOrigListViewWindowProc = ListView->WindowProc; ListView->WindowProc = ListViewWindowProc; @@ -104,7 +107,7 @@ bool __fastcall TSynchronizeChecklistDialog::Execute(TSynchronizeChecklist * Che UnicodeString WindowParams = FormConfiguration.WindowParams; // if there is no main window, keep previous "custom pos" indication, - bool CustomPos = (StrToIntDef(::CutToChar(WindowParams, L';', true), 0) != 0); + bool CustomPos = (StrToIntDef(CutToChar(WindowParams, L';', true), 0) != 0); if (Application->MainForm != NULL) { CustomPos = (Application->MainForm->BoundsRect != BoundsRect); @@ -168,7 +171,7 @@ void __fastcall TSynchronizeChecklistDialog::CreateParams(TCreateParams & Params { FFormRestored = True; UnicodeString WindowParams = CustomWinConfiguration->SynchronizeChecklist.WindowParams; - bool CustomPos = (StrToIntDef(::CutToChar(WindowParams, L';', true), 0) != 0); + bool CustomPos = (StrToIntDef(CutToChar(WindowParams, L';', true), 0) != 0); if (!CustomPos && (Application->MainForm != NULL)) { @@ -195,7 +198,7 @@ void __fastcall TSynchronizeChecklistDialog::AddSubItem(TListItem * Item, int & } else { - assert(Index == Item->SubItems->Count); + DebugAssert(Index == Item->SubItems->Count); Item->SubItems->Add(S); } Index++; @@ -242,7 +245,7 @@ void __fastcall TSynchronizeChecklistDialog::LoadItem(TListItem * Item) } else { - FAIL; + DebugFail(); } AddSubItem(Item, Index, S); if (Action == TSynchronizeChecklist::saDownloadNew) @@ -268,7 +271,7 @@ void __fastcall TSynchronizeChecklistDialog::LoadItem(TListItem * Item) } AddSubItem(Item, Index, L""); - assert(Index == ImageColumnIndex); + DebugAssert(Index == ImageColumnIndex); if (Action == TSynchronizeChecklist::saDeleteLocal) { @@ -286,7 +289,7 @@ void __fastcall TSynchronizeChecklistDialog::LoadItem(TListItem * Item) } else { - FAIL; + DebugFail(); } AddSubItem(Item, Index, S); if (Action == TSynchronizeChecklist::saUploadNew) @@ -396,7 +399,7 @@ __int64 __fastcall TSynchronizeChecklistDialog::GetItemSize(const TSynchronizeCh return Item->Remote.Size; default: - FAIL; + DebugFail(); return 0; } } @@ -527,7 +530,7 @@ void __fastcall TSynchronizeChecklistDialog::StatusBarDrawPanel( break; default: - FAIL; + DebugFail(); Possible = false; break; } @@ -609,7 +612,7 @@ void __fastcall TSynchronizeChecklistDialog::ListViewChange( { if (!FChangingItemIgnore) { - assert(Item->Data != NULL); + DebugAssert(Item->Data != NULL); if ((FChangingItemChecked != Item->Checked) && (Item->Data != NULL)) { const TSynchronizeChecklist::TItem * ChecklistItem = GetChecklistItem(Item); @@ -648,7 +651,7 @@ void __fastcall TSynchronizeChecklistDialog::ListViewChanging( } else { - assert(FChangingItem == NULL); + DebugAssert(FChangingItem == NULL); FChangingItem = NULL; } } @@ -854,7 +857,7 @@ void __fastcall TSynchronizeChecklistDialog::ListViewCompare( } else { - assert(!ChecklistItem1->Remote.Directory.IsEmpty()); + DebugAssert(!ChecklistItem1->Remote.Directory.IsEmpty()); Compare = AnsiCompareText(ChecklistItem1->Remote.Directory, ChecklistItem2->Remote.Directory); } @@ -900,15 +903,15 @@ void __fastcall TSynchronizeChecklistDialog::CustomCommandsActionExecute( try { TListItem * Item = ListView->Selected; - assert(Item != NULL); + DebugAssert(Item != NULL); while (Item != NULL) { const TSynchronizeChecklist::TItem * ChecklistItem = GetChecklistItem(Item); - assert((GetChecklistItemAction(ChecklistItem) == TSynchronizeChecklist::saUploadUpdate) || + DebugAssert((GetChecklistItemAction(ChecklistItem) == TSynchronizeChecklist::saUploadUpdate) || (GetChecklistItemAction(ChecklistItem) == TSynchronizeChecklist::saDownloadUpdate)); - assert(ChecklistItem->RemoteFile != NULL); + DebugAssert(ChecklistItem->RemoteFile != NULL); UnicodeString LocalPath = IncludeTrailingBackslash(ChecklistItem->Local.Directory) + @@ -932,7 +935,7 @@ void __fastcall TSynchronizeChecklistDialog::CustomCommandsActionExecute( throw; } - assert(FOnCustomCommandMenu != NULL); + DebugAssert(FOnCustomCommandMenu != NULL); FOnCustomCommandMenu(CustomCommandsAction, LocalFileList, RemoteFileList); } //--------------------------------------------------------------------------- @@ -978,7 +981,7 @@ void __fastcall TSynchronizeChecklistDialog::ReverseActionExecute(TObject * /*Se TSynchronizeChecklist::TAction & Action = GetChecklistItemAction(ChecklistItem); TSynchronizeChecklist::TAction NewAction = TSynchronizeChecklist::Reverse(Action); - if (ALWAYS_TRUE(Action != NewAction)) + if (DebugAlwaysTrue(Action != NewAction)) { int ActionIndex = int(Action); @@ -1037,3 +1040,19 @@ void __fastcall TSynchronizeChecklistDialog::ListViewClick(TObject * /*Sender*/) } } //--------------------------------------------------------------------------- +void __fastcall TSynchronizeChecklistDialog::Dispatch(void * Message) +{ + TMessage * M = reinterpret_cast(Message); + if (M->Msg == WM_SYSCOMMAND) + { + if (!HandleMinimizeSysCommand(*M)) + { + TForm::Dispatch(Message); + } + } + else + { + TForm::Dispatch(Message); + } +} +//--------------------------------------------------------------------------- diff --git a/source/forms/SynchronizeChecklist.dfm b/source/forms/SynchronizeChecklist.dfm index c5997298..624ebdb2 100644 --- a/source/forms/SynchronizeChecklist.dfm +++ b/source/forms/SynchronizeChecklist.dfm @@ -3,47 +3,1355 @@ object SynchronizeChecklistDialog: TSynchronizeChecklistDialog Top = 169 HelpType = htKeyword HelpKeyword = 'ui_synchronize_checklist' - BorderIcons = [biSystemMenu, biMaximize, biHelp] + BorderIcons = [biSystemMenu, biMinimize, biMaximize, biHelp] Caption = 'Synchronization checklist' ClientHeight = 521 ClientWidth = 695 Color = clBtnFace ParentFont = True Icon.Data = { - 0000010001001010000001002000680400001600000028000000100000002000 + 000001000700404000000100200028420000760000003030000001002000A825 + 00009E4200002828000001002000681A0000466800002020000001002000A810 + 0000AE820000181800000100200088090000569300001414000001002000B806 + 0000DE9C000010100000010020006804000096A3000028000000400000008000 + 0000010020000000000000420000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000205B97C5215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215A98C30000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF3F79B1FF2A65A3FF2A65A3FF2A65A3FF2A65 + A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65 + A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65 + A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65 + A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65 + A3FF2A65A3FF3773B2FF2A65A3FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6AA4D3FF3874B2FF3874B2FF3874B2FF3874 + B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874 + B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874 + B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874 + B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874 + B2FF3874B2FF3874B2FF2A65A3FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6BA4D3FF3975B3FF3975B3FF3975B3FF3975 + B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975 + B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975 + B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975 + B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975B3FF3975 + B3FF3975B3FF3975B3FF2B66A3FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6BA5D4FF3976B4FF3976B4FF3976B4FF3976 + B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976 + B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976 + B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976 + B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976B4FF3976 + B4FF3976B4FF3976B4FF2B66A4FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6BA5D4FF3A77B4FF3A77B4FF3A77B4FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF3A77 + B4FF3A77B4FF3A77B4FF2B67A4FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6CA5D4FF3B78B5FF3B78B5FF3B78B5FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF3B78 + B5FF3B78B5FF3B78B5FF2C67A4FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6CA6D5FF3B79B6FF3B79B6FF3B79B6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF3B79 + B6FF3B79B6FF3B79B6FF2C67A5FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6CA6D5FF3C7AB6FF3C7AB6FF3C7AB6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF3C7A + B6FF3C7AB6FF3C7AB6FF2C68A5FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6DA7D5FF3D7BB7FF3D7BB7FF3D7BB7FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFEADAD3FF534FACFF1A1A9DFF5C58AEFFF1E1D5FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF3D7B + B7FF3D7BB7FF3D7BB7FF2C68A5FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6DA7D5FF3D7CB7FF3D7CB7FF3D7CB7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFEBDDD4FF423FA7FF0D0E99FF0D0E99FF0D0E99FF7E77B7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FF3D7C + B7FF3D7CB7FF3D7CB7FF2C69A5FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6DA8D5FF3E7DB8FF3E7DB8FF3E7DB8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFEBDDD5FF423FA7FF0D0E99FF0D0E99FF0D0E99FF0D0E99FF18189CFFE6D8 + D4FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7 + D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FFF6E7D8FF3E7D + B8FF3E7DB8FF3E7DB8FF2D69A6FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6DA8D6FF3E7EB9FF3E7EB9FF3E7EB9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFECDE + D6FF423FA8FF0D0E99FF0D0E99FF0D0E99FF0D0E99FF0D0E99FF0D0E99FF7F78 + B8FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FF3E7E + B9FF3E7EB9FF3E7EB9FF2D6AA6FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6DA8D6FF3F7FB9FF3F7FB9FF3F7FB9FFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFECDFD8FF4240 + A8FF0D0E99FF0D0E99FF0D0E99FF0D0E99FF0D0E99FF0D0E99FF0D0E99FF1818 + 9CFFE7DAD7FFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFF3F7F + B9FF3F7FB9FF3F7FB9FF2D6AA6FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6EA9D6FF4080BAFF4080BAFF4080BAFFF7EA + DCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFECE0D9FF4240A8FF0D0E + 99FF0D0E99FF0D0E99FF0D0E99FF2626A0FF10119AFF0D0E99FF0D0E99FF0D0E + 99FF7F79BAFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EA + DCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFF4080 + BAFF4080BAFF4080BAFF2E6AA6FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6EA9D7FF4081BBFF4081BBFF4081BBFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFEDE0DAFF4240A9FF0D0E99FF0D0E + 99FF0D0E99FF0D0E99FF2828A1FFDDD0D5FF6A65B4FF0D0E99FF0D0E99FF0D0E + 99FF18189CFFE8DBD9FFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EA + DDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFFF8EADDFF4081 + BBFF4081BBFF4081BBFF2E6BA7FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6EAAD7FF4182BBFF4182BBFF4182BBFFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFFEDE1DBFF4240A9FF0D0E99FF0D0E99FF0D0E + 99FF0D0E99FF2828A1FFDDD1D6FFF8EBDEFFDBD0D6FF10119AFF0D0E99FF0D0E + 99FF0D0E99FF7F79BBFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFF4182 + BBFF4182BBFF4182BBFF2E6BA7FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6FAAD7FF4283BCFF4283BCFF4283BCFFF8EC + DFFFF8ECDFFFF8ECDFFFEDE2DCFF4240A9FF0D0E99FF0D0E99FF0D0E99FF0D0E + 99FF2828A1FFDDD2D7FFF8ECDFFFF8ECDFFFF8ECDFFF6A66B5FF0D0E99FF0D0E + 99FF0D0E99FF18189CFFE8DDDAFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8EC + DFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFF4283 + BCFF4283BCFF4283BCFF2F6CA7FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6FAAD7FF4283BDFF4283BDFF4283BDFFF8EC + E0FFF8ECE0FFF8ECE0FF6A66B5FF0D0E99FF0D0E99FF0D0E99FF0D0E99FF2828 + A1FFDDD2D8FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFDBD0D7FF10119AFF0D0E + 99FF0D0E99FF0D0E99FF7F7ABCFFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FF4283 + BDFF4283BDFF4283BDFF2F6CA8FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6FABD7FF4385BDFF4385BDFF4385BDFFF9ED + E2FFF9EDE2FFF9EDE2FF3B39A7FF0D0E99FF0D0E99FF0D0E99FF2828A2FFDED3 + DAFFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FF6A66B6FF0D0E + 99FF0D0E99FF0D0E99FF18189DFFE9DEDDFFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FF4385 + BDFF4385BDFF4385BDFF2F6DA8FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6FABD8FF4385BEFF4385BEFF4385BEFFF9EE + E3FFF9EEE3FFF9EEE3FF908AC2FF0D0E99FF0D0E99FF2B2BA3FFDED4DBFFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFDCD2DAFF1011 + 9AFF0D0E99FF0D0E99FF0D0E99FF807BBDFFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FF4385 + BEFF4385BEFF4385BEFF2F6DA8FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6FABD8FF4486BFFF4486BFFF4486BFFFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFBFB7D2FFA19BC8FFECE2E0FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FF6A67 + B7FF0D0E99FF0D0E99FF0D0E99FF18189DFFE9DFDFFFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FF4486 + BFFF4486BFFF4486BFFF2F6DA9FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF70ACD8FF4587BFFF4587BFFF4587BFFFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFDCD3 + DCFF10119AFF0D0E99FF0D0E99FF0D0E99FF807BBEFFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FF4587 + BFFF4587BFFF4587BFFF306DA9FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF70ACD9FF4588C0FF4588C0FF4588C0FFFAF0 + E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0 + E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0 + E6FF6B67B8FF0D0E99FF0D0E99FF0D0E99FF18189DFFEAE0E1FFFAF0E6FFFAF0 + E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FF4588 + C0FF4588C0FF4588C0FF306EA9FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF70ADD9FF4689C1FF4689C1FF4689C1FFFAF1 + E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1 + E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1 + E7FFDDD5DEFF10119AFF0D0E99FF0D0E99FF0D0E99FF807CBFFFFAF1E7FFFAF1 + E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FF4689 + C1FF4689C1FF4689C1FF306EA9FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF71ADD9FF478AC1FF478AC1FF478AC1FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FF6B68B9FF0D0E99FF0D0E99FF0D0E99FF18189DFFEAE1E3FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FF478A + C1FF478AC1FF478AC1FF316FA9FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF71ADDAFF478BC2FF478BC2FF478BC2FFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2 + EAFFFAF2EAFFDDD6E0FF10119AFF0D0E99FF0D0E99FF0D0E99FF807DC1FFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFF478B + C2FF478BC2FF478BC2FF316FAAFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF71AEDAFF488CC3FF488CC3FF488CC3FFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFF6B69BAFF0D0E99FF0D0E99FF0D0E99FF18189DFFEBE3 + E6FFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFF488C + C3FF488CC3FF488CC3FF3170AAFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF71AEDAFF488DC3FF488DC3FF488DC3FFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFDDD7E2FF10119AFF0D0E99FF0D0E99FF0D0E99FF817D + C2FFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFF488D + C3FF488DC3FF488DC3FF3170AAFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF72AFDAFF498EC4FF498EC4FF498EC4FFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFF6B69BAFF0D0E99FF0D0E99FF0D0E99FF1818 + 9DFFEBE4E7FFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFF498E + C4FF498EC4FF498EC4FF3170ABFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF72AFDAFF4A8FC4FF4A8FC4FF4A8FC4FFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFDDD8E4FF10119AFF0D0E99FF0D0E99FF0D0E + 99FF817EC3FFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFF4A8F + C4FF4A8FC4FF4A8FC4FF3271ABFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF72B0DBFF4A90C5FF4A90C5FF4A90C5FFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFF6C69BBFF0D0E99FF0D0E99FF0D0E + 99FF18189DFFECE5E9FFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFF4A90 + C5FF4A90C5FF4A90C5FF3271ABFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF72B0DBFF4B91C6FF4B91C6FF4B91C6FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFDED9E6FF10119AFF0D0E99FF0D0E + 99FF0D0E99FF817FC4FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FF4B91 + C6FF4B91C6FF4B91C6FF3272ABFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF73B0DBFF4C92C6FF4C92C6FF4C92C6FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FF6C6ABCFF0D0E99FF0D0E + 99FF0D0E99FF18199DFFECE7ECFFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FF4C92 + C6FF4C92C6FF4C92C6FF3372ABFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF73B1DCFF4C93C7FF4C93C7FF4C93C7FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFDEDBE8FF10119BFF0D0E + 99FF0D0E99FF0D0E99FF8180C5FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FF4C93 + C7FF4C93C7FF4C93C7FF3372ACFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF73B1DCFF4D94C8FF4D94C8FF4D94C8FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FF6C6BBDFF0D0E + 99FF0D0E99FF0D0E99FF2122A1FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FF4D94 + C8FF4D94C8FF4D94C8FF3373ACFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF73B2DCFF4D95C8FF4D95C8FF4D95C8FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFDFDCEAFF1213 + 9BFF0D0E99FF0D0E99FF2B2BA5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FF4D95 + C8FF4D95C8FF4D95C8FF3373ACFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4E96C9FF4E96C9FF4E96C9FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA + F6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFA6A4 + D4FF2223A2FF2A2AA4FFC0BEDFFFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FF4E96 + C9FF4E96C9FF4E96C9FF3474ADFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFFFDFA + F8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFA + F8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFA + F8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFA + F8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FFFDFAF8FF4F97 + CAFF4F97CAFF4F97CAFF3474ADFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FF4F97 + CAFF4F97CAFF4F97CAFF3474ADFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFF4F97 + CAFF4F97CAFF4F97CAFF3474ADFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFF4F97 + CAFF4F97CAFF4F97CAFF3474ADFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFD + FCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFFFEFDFCFF4F97 + CAFF4F97CAFF4F97CAFF3474ADFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFFFFFE + FDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFF736052FF736052FF7360 + 52FF736052FF736052FF736052FF736052FF736052FF736052FF736052FF7360 + 52FF736052FF736052FF736052FF736052FF736052FF736052FF736052FF7360 + 52FF736052FFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFF4F97 + CAFF4F97CAFF4F97CAFF3474ADFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF736052FFD3C8C1FFD3C8 + C1FFD3C8C1FFD3C8C1FFD3C8C1FFD3C8C1FFD3C8C1FFD3C8C1FFD3C8C1FFD3C8 + C1FFD3C8C1FFD3C8C1FFD3C8C1FFD3C8C1FFD3C8C1FFD3C8C1FFD3C8C1FFD3C8 + C1FF736052FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F97 + CAFF4F97CAFF4F97CAFF3474ADFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFF4F97 + CAFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF736052FFDCD5CEFFDCD5 + CEFFDCD5CEFFDCD5CEFFDCD5CEFFDCD5CEFFDCD5CEFFDCD5CEFFDCD5CEFFDCD5 + CEFFDCD5CEFFDCD5CEFFDCD5CEFFDCD5CEFFDCD5CEFFDCD5CEFFDCD5CEFFDCD5 + CEFF736052FF215B98FF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97 + CAFF4F97CAFF4F97CAFF3474ADFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFF4F97 + CAFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF736052FFE6E1DCFFE6E1 + DCFFE6E1DCFFE6E1DCFFE6E1DCFFE6E1DCFFE6E1DCFFE6E1DCFFE6E1DCFFE6E1 + DCFFE6E1DCFFE6E1DCFFE6E1DCFFE6E1DCFFE6E1DCFFE6E1DCFFE6E1DCFFE6E1 + DCFF736052FF215B98FF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97 + CAFF4F97CAFF4F97CAFF3474ADFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFF4F97 + CAFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF736052FFF0EDEAFFF0ED + EAFFF0EDEAFFF0EDEAFFF0EDEAFFF0EDEAFFF0EDEAFFF0EDEAFFF0EDEAFFF0ED + EAFFF0EDEAFFF0EDEAFFF0EDEAFFF0EDEAFFF0EDEAFFF0EDEAFFF0EDEAFFF0ED + EAFF736052FF215B98FF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97 + CAFF4F97CAFF4F97CAFF3474ADFF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF74B2DDFF74B2DDFF74B2DDFF74B2 + DDFF74B2DDFF74B2DDFF74B2DDFF74B2DDFF74B2DDFF736052FFFAF9F8FFFAF9 + F8FFFAF9F8FFFAF9F8FFFAF9F8FFFAF9F8FFFAF9F8FFFAF9F8FFFAF9F8FFFAF9 + F8FFFAF9F8FFFAF9F8FFFAF9F8FFFAF9F8FFFAF9F8FFFAF9F8FFFAF9F8FFFAF9 + F8FF736052FF215B98FF74B2DDFF74B2DDFF74B2DDFF74B2DDFF74B2DDFF74B2 + DDFF74B2DDFF74B2DDFF4480B5FF215B98FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000205B98C7215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF736052FFE3DCD7FFE3DC + D7FFE3DCD7FFE3DCD7FFE3DCD7FFE4DDD9FFE5DEDAFFE5DEDAFFE5DEDAFFE5DE + DAFFE5DEDAFFE5DEDAFFE4DDD9FFE3DCD7FFE3DCD7FFE3DCD7FFE3DCD7FFE3DC + D7FF736052FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF205B98C70000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000736052FFA6988FFFCCC2 + BBFFE3DCD7FFE3DCD7FFE5DFDAFFE8E3DFFFE8E3DFFFC4BAB4FF8A796DFF8A79 + 6DFFC5BBB5FFE8E3DFFFE8E3DFFFE5DEDAFFE3DCD7FFE3DCD7FFCCC2BBFFA698 + 8FFF736052FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006F5E4E2E735F52837360 + 52D9816F62FFB1A59CFFEAE5E1FFECE7E4FFC6BCB6FF736052B472584F1D7258 + 4F1D736052B4C7BDB7FFECE7E4FFEAE5E1FFB1A59CFF816F62FF736052D9735F + 52836F5E4E2E0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00006F5E4E2E756254FFEFEBE9FFEFEBE9FF89786BFF6C584E1A000000000000 + 00006D5B521C8A7A6DFFEFEBE9FFEFEBE9FF746153FF6F5E4E2E000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000735F52F3F2EFEDFFF3F0EEFF89786BFF6C584E1A000000000000 + 00006D5B521C8A7A6EFFF3F0EEFFF2EFEDFF735F52F300000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000725F52CBEBE7E5FFF6F4F3FFCCC3BEFF736052B4705C5219715E + 4C1B736052B4CCC3BEFFF6F4F3FFEBE7E5FF725F52CB00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000725F516BB4A9A1FFFAF9F8FFFAF9F8FFCDC4BFFF88786CFF8A7A + 6EFFCEC6C0FFFAF9F8FFFAF9F8FFB3A8A0FF725F506900000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000060604008736052D0D8D2CEFFFDFDFDFFFDFDFDFFFDFDFDFFFDFD + FDFFFDFDFDFFFDFDFDFFD6D0CBFF735F52CE55552B0600000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000006C584E1A736051CFB5AAA2FFF1EFEDFFFEFDFDFFFEFD + FDFFF1EFEDFFB5AAA2FF726052CD6C584E1A0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000055552B06725F516E725F51C9736052F27360 + 52F2725F51C9715E506C55552B06000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 + 0000000007FFFFE00000000007FFFFE00000000007FFFFE00000000007FFFFE0 + 0000000007FFFFE00000000007FFFFE00000000007FFFFE00000000007FFFFE0 + 0000000007FFFFE00000000007FFFFE00000000007FFFFE00000000007FFFFE0 + 0000000007FFFFE00000000007FFFFE00000000007FFFFE00000000007FFFFE0 + 0000000007FFFFE00000000007FFFFE00000000007FFFFE00000000007FFFFE0 + 0000000007FFFFE00000000007FFFFE00000000007FFFFE00000000007FFFFE0 + 0000000007FFFFE00000000007FFFFE00000000007FFFFE00000000007FFFFE0 + 0000000007FFFFE00000000007FFFFE00000000007FFFFE00000000007FFFFE0 + 0000000007FFFFE00000000007FFFFE00000000007FFFFE00000000007FFFFE0 + 0000000007FFFFE00000000007FFFFE00000000007FFFFE00000000007FFFFE0 + 0000000007FFFFE00000000007FFFFE00000000007FFFFE00000000007FFFFE0 + 0000000007FFFFE00000000007FFFFE00000000007FFFFE00000000007FFFFE0 + 0000000007FFFFE00000000007FFFFFFFC00003FFFFFFFFFFC00003FFFFFFFFF + FF8181FFFFFFFFFFFFC183FFFFFFFFFFFFC003FFFFFFFFFFFFC003FFFFFFFFFF + FFC003FFFFFFFFFFFFE007FFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFF2800 + 0000300000006000000001002000000000008025000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000205B97C5215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF205B97C50000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF407AB1FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66 + A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66 + A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66 + A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF255F + 9DFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6BA5D4FF3A77B4FF3A77B4FF3A77B4FF3A77B4FF3A77 + B4FF3A77B4FF3A77B4FF3A77B4FF3A77B4FF3A77B4FF3A77B4FF3A77B4FF3A77 + B4FF3A77B4FF3A77B4FF3A77B4FF3A77B4FF3A77B4FF3A77B4FF3A77B4FF3A77 + B4FF3A77B4FF3A77B4FF3A77B4FF3A77B4FF3A77B4FF3A77B4FF3A77B4FF2B67 + A4FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6CA5D4FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78 + B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78 + B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78 + B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF2C67 + A4FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6CA6D5FF3C79B6FF3C79B6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF3C79B6FF3C79B6FF2C67 + A5FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6CA7D5FF3C7BB7FF3C7BB7FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF3C7BB7FF3C7BB7FF2C68 + A5FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6DA7D5FF3D7CB7FF3D7CB7FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF3D7CB7FF3D7CB7FF2C69 + A5FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6DA8D5FF3E7DB8FF3E7DB8FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FF3E7DB8FF3E7DB8FF2D69 + A6FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6DA8D6FF3F7EB9FF3F7EB9FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFB2A7C5FF2323 + 9FFF3C3AA6FFE6D8D3FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FF3F7EB9FF3F7EB9FF2D6A + A6FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6DA8D6FF3F7FBAFF3F7FBAFFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFB1A6C6FF12139BFF0D0E + 99FF0D0E99FF6F69B4FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8 + D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FFF7E8D9FF3F7FBAFF3F7FBAFF2D6A + A6FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6EA9D7FF4080BBFF4080BBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFB1A7C7FF12139BFF0D0E99FF0D0E + 99FF0D0E99FF14149BFFE1D5D5FFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFF4080BBFF4080BBFF2E6A + A7FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6EAAD7FF4182BBFF4182BBFFF7EADCFFF7EADCFFF7EA + DCFFF7EADCFFF7EADCFFF7EADCFFB1A8C8FF12139BFF0D0E99FF0D0E99FF0D0E + 99FF0D0E99FF0D0E99FF6F6AB5FFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EA + DCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFFF7EADCFF4182BBFF4182BBFF2E6B + A7FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6FAAD7FF4283BCFF4283BCFFF8EBDDFFF8EBDDFFF8EB + DDFFF8EBDDFFF8EBDDFFB1A8C9FF12139BFF0D0E99FF0D0E99FF18189CFF6B66 + B4FF0D0E99FF0D0E99FF14159BFFE2D7D7FFF8EBDDFFF8EBDDFFF8EBDDFFF8EB + DDFFF8EBDDFFF8EBDDFFF8EBDDFFF8EBDDFFF8EBDDFF4283BCFF4283BCFF2F6C + A7FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6FAAD7FF4284BDFF4284BDFFF8EBDFFFF8EBDFFFF8EB + DFFFF8EBDFFFB1A8CAFF12139BFF0D0E99FF0D0E99FF18189CFFC3B9CFFFF1E4 + DDFF2322A0FF0D0E99FF0D0E99FF706BB7FFF8EBDFFFF8EBDFFFF8EBDFFFF8EB + DFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFFF8EBDFFF4284BDFF4284BDFF2F6C + A8FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6FABD8FF4385BEFF4385BEFFF8ECE0FFF8ECE0FFF8EC + E0FFB3ABCBFF12139BFF0D0E99FF0D0E99FF18189CFFC3BAD0FFF8ECE0FFF8EC + E0FF958FC2FF0D0E99FF0D0E99FF14159BFFE2D7DAFFF8ECE0FFF8ECE0FFF8EC + E0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FFF8ECE0FF4385BEFF4385BEFF2F6D + A8FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6FABD8FF4486BEFF4486BEFFF9EDE2FFF9EDE2FFF9ED + E2FF21219FFF0D0E99FF0D0E99FF18189DFFC4BBD2FFF9EDE2FFF9EDE2FFF9ED + E2FFF2E6E0FF2323A0FF0D0E99FF0D0E99FF706BB8FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FF4486BEFF4486BEFF2F6D + A8FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF70ACD8FF4587BFFF4587BFFFF9EEE4FFF9EEE4FFF9EE + E4FF3938A7FF0D0E99FF18189DFFC4BBD3FFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FF9690C5FF0D0E99FF0D0E99FF14159BFFE3D9DDFFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FF4587BFFF4587BFFF306D + A9FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF70ACD9FF4588C0FF4588C0FFF9EFE5FFF9EFE5FFF9EF + E5FFE7DEDFFF9E99C8FFDBD2DCFFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FFF2E8E3FF2323A0FF0D0E99FF0D0E99FF706CB9FFF9EFE5FFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FF4588C0FF4588C0FF306E + A9FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF70ADD9FF468AC1FF468AC1FFFAF0E6FFFAF0E6FFFAF0 + E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0 + E6FFFAF0E6FFFAF0E6FF9791C6FF0D0E99FF0D0E99FF14159CFFE4DBDFFFFAF0 + E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FF468AC1FF468AC1FF306F + A9FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF71ADDAFF478BC2FF478BC2FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFF3EAE6FF2323A1FF0D0E99FF0D0E99FF706DBAFFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FF478BC2FF478BC2FF316F + AAFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF71AEDAFF488CC2FF488CC2FFFAF2E9FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FFFAF2E9FF9792C8FF0D0E99FF0D0E99FF14159CFFE4DD + E2FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FF488CC2FF488CC2FF3170 + AAFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF71AEDAFF488DC3FF488DC3FFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3 + EBFFFBF3EBFFFBF3EBFFFBF3EBFFF4ECE9FF2323A1FF0D0E99FF0D0E99FF716E + BCFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFF488DC3FF488DC3FF3170 + AAFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF72AFDAFF498EC4FF498EC4FFFBF4ECFFFBF4ECFFFBF4 + ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4 + ECFFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFF9794C9FF0D0E99FF0D0E99FF1415 + 9CFFE5DFE5FFFBF4ECFFFBF4ECFFFBF4ECFFFBF4ECFF498EC4FF498EC4FF3170 + ABFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF72AFDBFF4A8FC5FF4A8FC5FFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFF4EEECFF2323A1FF0D0E99FF0D0E + 99FF716FBDFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFF4A8FC5FF4A8FC5FF3271 + ABFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF72B0DBFF4B90C6FF4B90C6FFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFF9894CBFF0D0E99FF0D0E + 99FF14159CFFE6E0E7FFFCF5EFFFFCF5EFFFFCF5EFFF4B90C6FF4B90C6FF3271 + ABFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF72B0DBFF4B92C6FF4B92C6FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFF5EFEFFF2323A1FF0D0E + 99FF0D0E99FF716FBEFFFCF6F1FFFCF6F1FFFCF6F1FF4B92C6FF4B92C6FF3272 + ABFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF73B1DCFF4C93C7FF4C93C7FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FF9895CDFF0D0E + 99FF0D0E99FF14159CFFE6E1EAFFFCF7F2FFFCF7F2FF4C93C7FF4C93C7FF3372 + ACFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF73B1DCFF4D94C8FF4D94C8FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFF6F1F2FF2324 + A2FF0D0E99FF0D0E99FF7472C0FFFDF8F4FFFDF8F4FF4D94C8FF4D94C8FF3373 + ACFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF74B2DDFF4E95C9FF4E95C9FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FF9896 + CFFF0D0E99FF0D0E99FF3838AAFFFDF9F5FFFDF9F5FF4E95C9FF4E95C9FF3473 + ADFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF74B2DDFF4E96C9FF4E96C9FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFF6F3 + F4FF5251B4FF1A1B9EFFA3A1D4FFFDFAF7FFFDFAF7FF4E96C9FF4E96C9FF3474 + ADFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF74B2DDFF4F97CAFF4F97CAFFFEFBF8FFFEFBF8FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB + F8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FF4F97CAFF4F97CAFF3474 + ADFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF74B2DDFF4F97CAFF4F97CAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFC + FAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFFFEFCFAFF4F97CAFF4F97CAFF3474 + ADFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF74B2DDFF4F97CAFF4F97CAFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFD + FBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFFFEFDFBFF4F97CAFF4F97CAFF3474 + ADFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF74B2DDFF4F97CAFF4F97CAFFFFFEFDFFFFFEFDFFFFFE + FDFFFFFEFDFFFFFEFDFF736052FF736052FF736052FF736052FF736052FF7360 + 52FF736052FF736052FF736052FF736052FF736052FF736052FF736052FF7360 + 52FFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFFFFFEFDFF4F97CAFF4F97CAFF3474 + ADFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF74B2DDFF4F97CAFF4F97CAFFFFFFFEFFFFFFFEFFFFFF + FEFFFFFFFEFFFFFFFEFF736052FFC1B3A8FFC1B3A8FFC1B3A8FFC1B3A8FFC1B3 + A8FFC1B3A8FFC1B3A8FFC1B3A8FFC1B3A8FFC1B3A8FFC1B3A8FFC1B3A8FF7360 + 52FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFF4F97CAFF4F97CAFF3474 + ADFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97 + CAFF4F97CAFF4F97CAFF736052FFDAD1CBFFDAD1CBFFDAD1CBFFDAD1CBFFDAD1 + CBFFDAD1CBFFDAD1CBFFDAD1CBFFDAD1CBFFDAD1CBFFDAD1CBFFDAD1CBFF7360 + 52FF3C7FB6FF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF3474 + ADFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97 + CAFF4F97CAFF4F97CAFF736052FFF3F0EEFFF3F0EEFFF3F0EEFFF3F0EEFFF3F0 + EEFFF3F0EEFFF3F0EEFFF3F0EEFFF3F0EEFFF3F0EEFFF3F0EEFFF3F0EEFF7360 + 52FF3C7FB6FF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF3474 + ADFF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF84BEE5FF74B2DDFF74B2DDFF74B2DDFF74B2DDFF74B2 + DDFF74B2DDFF74B2DDFF736052FFA28C7CFFA28C7CFFA28C7CFFA28C7CFFA28C + 7CFFA28C7CFFA28C7CFFA28C7CFFA28C7CFFA28C7CFFA28C7CFFA28C7CFF7360 + 52FF528FC1FF74B2DDFF74B2DDFF74B2DDFF74B2DDFF74B2DDFF74B2DDFF4480 + B5FF215B98FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215A98C3215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF736052FF948274FFA89588FFB5A396FFB4A294FF806D + 60FF746152FF746152FF806D60FFB4A294FFB5A396FFA89588FF948274FF7360 + 52FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215A98C30000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000725E4E417260518D736052D77B685AFF7C695CFF7360 + 52FF735F52B1735F52B1736052FF7C695CFF7B685AFF736052D77260518D725E + 4E41000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000715C4E24725F51F1725F + 51B10000000000000000735F52B2725F51F1715C4E2400000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000736051E5735F + 51A90000000000000000735F51A9736051E50000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000735F52897360 + 52FD735F51A6735F51A6736052FD735F52890000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000055552B06735F + 5289736052E4736052E4735F528955552B060000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FF00 + 000000FF0000FF00000000FF0000FF00000000FF0000FF00000000FF0000FF00 + 000000FF0000FF00000000FF0000FF00000000FF0000FF00000000FF0000FF00 + 000000FF0000FF00000000FF0000FF00000000FF0000FF00000000FF0000FF00 + 000000FF0000FF00000000FF0000FF00000000FF0000FF00000000FF0000FF00 + 000000FF0000FF00000000FF0000FF00000000FF0000FF00000000FF0000FF00 + 000000FF0000FF00000000FF0000FF00000000FF0000FF00000000FF0000FF00 + 000000FF0000FF00000000FF0000FF00000000FF0000FF00000000FF0000FF00 + 000000FF0000FF00000000FF0000FF00000000FF0000FF00000000FF0000FF00 + 000000FF0000FF00000000FF0000FF00000000FF0000FF00000000FF0000FF00 + 000000FF0000FF00000000FF0000FF00000000FF0000FFFF8001FFFF0000FFFF + F18FFFFF0000FFFFF99FFFFF0000FFFFF81FFFFF0000FFFFF81FFFFF0000FFFF + FFFFFFFF00002800000028000000500000000100200000000000401A00000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000205B97C5215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF205B98C700000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF407AB1FF2B67A4FF2B67A4FF2B67A4FF2B67A4FF2B67 + A4FF2B67A4FF2B67A4FF2B67A4FF2B67A4FF2B67A4FF2B67A4FF2B67A4FF2B67 + A4FF2B67A4FF2B67A4FF2B67A4FF2B67A4FF2B67A4FF2B67A4FF2B67A4FF2B67 + A4FF2B67A4FF2B67A4FF2B67A4FF25609DFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6CA5D4FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78 + B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78 + B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78B5FF3B78 + B5FF3B78B5FF3B78B5FF3B78B5FF2C67A4FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6CA6D5FF3C79B6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FF3C79B6FF2C67A5FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6CA7D5FF3C7BB7FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FF3C7BB7FF2C68A5FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6DA7D5FF3D7CB7FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6D6FFF6E6 + D6FFF6E6D6FFF6E6D6FF3D7CB7FF2C69A5FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6DA8D5FF3E7DB8FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFDBCED0FF3A38A5FF2726A0FFD4C7 + CEFFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7D7FFF6E7 + D7FFF6E7D7FFF6E7D7FF3E7DB8FF2D69A6FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6DA8D6FF3F7EB9FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7 + D8FFF7E7D8FFF7E7D8FFF7E7D8FFDCCED1FF2827A1FF0D0E99FF0D0E99FF524E + ACFFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7D8FFF7E7 + D8FFF7E7D8FFF7E7D8FF3F7EB9FF2D6AA6FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6DA8D6FF3F7FBAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFFDCCFD3FF2827A1FF0D0E99FF0D0E99FF0D0E99FF0D0E + 99FFC8BCCDFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8DAFFF7E8 + DAFFF7E8DAFFF7E8DAFF3F7FBAFF2D6AA6FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6EA9D7FF4080BBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFDCD0D4FF2827A1FF0D0E99FF0D0E99FF12139BFF0D0E99FF0D0E + 99FF524EADFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9DBFFF7E9 + DBFFF7E9DBFFF7E9DBFF4080BBFF2E6AA7FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6EAAD7FF4182BBFFF7EADDFFF7EADDFFF7EADDFFF7EA + DDFFDCD0D5FF2828A1FF0D0E99FF0D0E99FF2828A1FFD1C6D2FF1F1F9EFF0D0E + 99FF0D0E99FFC8BDCFFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EADDFFF7EA + DDFFF7EADDFFF7EADDFF4182BBFF2E6BA7FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6FAAD7FF4283BCFFF8EBDEFFF8EBDEFFF8EBDEFFDDD1 + D6FF2828A1FF0D0E99FF0D0E99FF2828A1FFDDD1D6FFF8EBDEFF8881BDFF0D0E + 99FF0D0E99FF524FADFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EBDEFFF8EB + DEFFF8EBDEFFF8EBDEFF4283BCFF2F6CA7FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6FAAD7FF4284BDFFF8ECDFFFF8ECDFFFF8ECDFFF3736 + A6FF0D0E99FF0D0E99FF2828A1FFDDD2D7FFF8ECDFFFF8ECDFFFEDE2DCFF1F1F + 9FFF0D0E99FF0D0E99FFC8BFD1FFF8ECDFFFF8ECDFFFF8ECDFFFF8ECDFFFF8EC + DFFFF8ECDFFFF8ECDFFF4284BDFF2F6CA8FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6FABD8FF4385BEFFF8EDE1FFF8EDE1FFF8EDE1FF2828 + A2FF0D0E99FF2828A2FFDDD3D9FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FF8882 + BFFF0D0E99FF0D0E99FF524FAEFFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFF8EDE1FF4385BEFF2F6DA8FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF6FABD8FF4486BEFFF9EDE2FFF9EDE2FFF9EDE2FFD1C7 + D6FF9089C2FFE3D8DBFFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFEEE3 + DFFF1F1F9FFF0D0E99FF0D0E99FFC9C0D3FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FF4486BEFF2F6DA8FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF70ACD8FF4587BFFFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FF8883C0FF0D0E99FF0D0E99FF5250AFFFF9EEE4FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FF4587BFFF306DA9FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF70ACD9FF4588C0FFF9EFE5FFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EF + E5FFEEE5E2FF1F1F9FFF0D0E99FF0D0E99FFC9C1D6FFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FFF9EFE5FF4588C0FF306EA9FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF70ADD9FF468AC1FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0 + E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0 + E6FFFAF0E6FF8984C1FF0D0E99FF0D0E99FF5350B0FFFAF0E6FFFAF0E6FFFAF0 + E6FFFAF0E6FFFAF0E6FF468AC1FF306FA9FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF71ADDAFF478BC2FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FFEFE7E5FF1F1F9FFF0D0E99FF0D0E99FFCAC3D8FFFAF1E8FFFAF1 + E8FFFAF1E8FFFAF1E8FF478BC2FF316FAAFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF71AEDAFF488CC2FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FF8985C3FF0D0E99FF0D0E99FF5351B1FFFAF2E9FFFAF2 + E9FFFAF2E9FFFAF2E9FF488CC2FF3170AAFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF71AEDAFF488DC3FFFAF2EAFFFAF2EAFFFAF2EAFFFAF2 + EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2 + EAFFFAF2EAFFFAF2EAFFEFE8E7FF1F209FFF0D0E99FF0D0E99FFCAC4DAFFFAF2 + EAFFFAF2EAFFFAF2EAFF488DC3FF3170AAFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF72AFDAFF498EC4FFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3ECFFFBF3 + ECFFFBF3ECFFFBF3ECFFFBF3ECFF8985C5FF0D0E99FF0D0E99FF5351B2FFFBF3 + ECFFFBF3ECFFFBF3ECFF498EC4FF3170ABFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF72AFDBFF4A8FC5FFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFF0EAE9FF1F20A0FF0D0E99FF0D0E99FFCBC5 + DCFFFBF4EDFFFBF4EDFF4A8FC5FF3271ABFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF72B0DBFF4B90C6FFFBF5EFFFFBF5EFFFFBF5EFFFFBF5 + EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5 + EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFF8987C6FF0D0E99FF0D0E99FF5352 + B2FFFBF5EFFFFBF5EFFF4B90C6FF3271ABFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF72B0DBFF4B92C6FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFF1EBECFF1F20A0FF0D0E99FF1819 + 9DFFFCF6F0FFFCF6F0FF4B92C6FF3272ABFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF73B1DCFF4C93C7FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7 + F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7 + F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFFCF7F1FFB4B1D7FF3D3DABFF9794 + CCFFFCF7F1FFFCF7F1FF4C93C7FF3372ACFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF73B1DCFF4D94C8FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FF4D94C8FF3373ACFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF74B2DDFF4E95C9FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FF4E95C9FF3473ADFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF74B2DDFF4E96C9FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9 + F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9 + F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9 + F6FFFDF9F6FFFDF9F6FF4E96C9FF3474ADFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF74B2DDFF4F97CAFFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FF736052FF736052FF736052FF736052FF736052FF736052FF7360 + 52FF736052FF736052FF736052FF736052FF736052FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FF4F97CAFF3474ADFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFF4F97CAFF4F97 + CAFF4F97CAFF736052FFC8BBB1FFC8BBB1FFC8BBB1FFC8BBB1FFC8BBB1FFC8BB + B1FFC8BBB1FFC8BBB1FFC8BBB1FFC8BBB1FF736052FF3C7FB6FF4F97CAFF4F97 + CAFF4F97CAFF4F97CAFF4F97CAFF3474ADFF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215B98FF84BEE5FF74B2DDFF74B2DDFF74B2DDFF74B2DDFF74B2 + DDFF74B2DDFF736052FFEDE8E5FFEDE8E5FFEDE8E5FFEDE8E5FFEDE8E5FFEDE8 + E5FFEDE8E5FFEDE8E5FFEDE8E5FFEDE8E5FF736052FF528FC1FF74B2DDFF74B2 + DDFF74B2DDFF74B2DDFF74B2DDFF4480B5FF215B98FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000215A98C3215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF736052FFAC998AFFAC988AFFAB9788FFAA9687FFAA9687FFA995 + 86FFA99485FFA89484FFA89383FFA79283FF736052FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215A98C300000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000736052FF978477FFAF9C8FFFB19F91FF7F6C5EFF746052FF7360 + 52FF7F6C5EFFAE9B8DFFAA9789FF948172FF736052FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000735E5049735F51A6746253F87A6759FF736052FF735F52B1735F + 52B1736052FF796658FF746253F8735F51A6735E504900000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000006D5B490E736052EF725F51B1000000000000 + 0000725F51B1736052EF6D5B490E000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000736051E5735F51A9000000000000 + 0000735F51A9736051E500000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000735F5289736052FD735F51A6735F + 51A6736052FD735F528900000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000055552B06735F5289736052E47360 + 52E4735F528955552B0600000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFFF000000FC0000003F000000FC00 + 00003F000000FC0000003F000000FC0000003F000000FC0000003F000000FC00 + 00003F000000FC0000003F000000FC0000003F000000FC0000003F000000FC00 + 00003F000000FC0000003F000000FC0000003F000000FC0000003F000000FC00 + 00003F000000FC0000003F000000FC0000003F000000FC0000003F000000FC00 + 00003F000000FC0000003F000000FC0000003F000000FC0000003F000000FC00 + 00003F000000FC0000003F000000FC0000003F000000FC0000003F000000FC00 + 00003F000000FC0000003F000000FC0000003F000000FC0000003F000000FC00 + 00003F000000FC0000003F000000FC0000003F000000FC0000003F000000FFFC + 003FFF000000FFFC003FFF000000FFFF18FFFF000000FFFF99FFFF000000FFFF + 81FFFF000000FFFF81FFFF000000280000002000000040000000010020000000 + 0000801000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000205B98C7215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF205B + 98C7000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF3F7AB1FF2A65A3FF2A65A3FF2A65A3FF2A65 + A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65 + A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF2A65A3FF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6BA5D3FF3976B3FF3976B3FF3976B3FF3976 + B3FF3976B3FF3976B3FF3976B3FF3976B3FF3976B3FF3976B3FF3976B3FF3976 + B3FF3976B3FF3976B3FF3976B3FF3976B3FF3976B3FF3976B3FF2B66A3FF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6BA5D4FF3A78B4FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FF3A78B4FF2B67A4FF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6CA6D5FF3C79B6FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FF3C79B6FF2C67A5FF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6DA7D5FF3D7BB7FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFEDE3E1FFF9EEE4FFF9EEE4FFF9EE + E4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FFF9EEE4FF3D7BB7FF2C68A5FF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6DA8D5FF3E7DB8FFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FF7C78BDFF0E0F9AFFA7A1CBFFF9EFE5FFF9EF + E5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FFF9EFE5FF3E7DB8FF2D69A6FF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6DA8D6FF3F7FBAFFFAF0E6FFFAF0E6FFFAF0 + E6FFFAF0E6FFFAF0E6FF7975BCFF0D0E99FF0D0E99FF2A2AA3FFF7EDE5FFFAF0 + E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FFFAF0E6FF3F7FBAFF2D6AA6FF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6EA9D7FF4181BBFFFAF1E7FFFAF1E7FFFAF1 + E7FFFAF1E7FF7975BDFF0D0E99FF12139BFF2525A1FF0D0E99FF9C97C8FFFAF1 + E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FFFAF1E7FF4181BBFF2E6BA7FF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6FAAD7FF4283BCFFFAF1E9FFFAF1E9FFFAF1 + E9FF7975BEFF0D0E99FF12139BFFB3ADD1FFACA6CFFF0D0E99FF2A2AA3FFF7EE + E8FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FFFAF1E9FF4283BCFF2F6CA7FF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6FABD8FF4385BEFFFAF2EAFFFAF2EAFF9E9A + CBFF0D0E99FF12139BFFB3ADD2FFFAF2EAFFF9F1EAFF3231A6FF0D0E99FF9C98 + CAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFFFAF2EAFF4385BEFF2F6DA8FF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF6FACD8FF4487BFFFFBF3EBFFFBF3EBFFBDB7 + D6FF2D2DA4FFB3AED3FFFBF3EBFFFBF3EBFFFBF3EBFFADA8D0FF0D0E99FF2B2A + A3FFF8F0EAFFFBF3EBFFFBF3EBFFFBF3EBFFFBF3EBFF4487BFFF2F6DA9FF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF70ADD9FF4689C0FFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFFFAF3EDFF3232A6FF0D0E + 99FF9D99CCFFFBF4EDFFFBF4EDFFFBF4EDFFFBF4EDFF4689C0FF306EA9FF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF71ADDAFF478BC2FFFBF5EEFFFBF5EEFFFBF5 + EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFADA9D2FF0D0E + 99FF2B2BA4FFF8F2EDFFFBF5EEFFFBF5EEFFFBF5EEFF478BC2FF316FAAFF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF71AEDAFF488DC3FFFCF5EFFFFCF5EFFFFCF5 + EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFCF5EFFFFBF4EFFF3232 + A7FF0D0E99FF9D9ACDFFFCF5EFFFFCF5EFFFFCF5EFFF488DC3FF3170AAFF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF72AFDAFF498FC4FFFCF6F0FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFADAA + D4FF0D0E99FF2B2BA4FFF9F3EFFFFCF6F0FFFCF6F0FF498FC4FF3171ABFF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF72B0DBFF4B90C6FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFBF6 + F2FF3232A7FF0D0E99FF9D9BCFFFFCF7F2FFFCF7F2FF4B90C6FF3271ABFF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF73B0DCFF4C92C7FFFCF8F3FFFCF8F3FFFCF8 + F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8F3FFFCF8 + F3FFADABD6FF0D0E99FF2B2BA4FFF9F5F2FFFCF8F3FF4C92C7FF3372ACFF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF73B1DCFF4D94C8FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8 + F4FFFCF7F4FF3232A7FF0D0E99FFACA9D6FFFDF8F4FF4D94C8FF3373ACFF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4E96C9FFFDF9F6FFFDF9F6FFFDF9 + F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9 + F6FFFDF9F6FFBBB9DDFF2C2CA5FFC7C4E1FFFDF9F6FF4E96C9FF3474ADFF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FF4F97CAFF3474ADFF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFFFDFBF8FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFB + F8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FFFDFBF8FF4F97CAFF3474ADFF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFFFEFCF9FFFEFCF9FFFEFC + F9FF736052FF736052FF736052FF736052FF736052FF736052FF736052FF7360 + 52FF736052FF736052FFFEFCF9FFFEFCF9FFFEFCF9FF4F97CAFF3474ADFF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFF4F97CAFF4F97CAFF4F97 + CAFF736052FFDAD2CBFFDAD2CBFFDAD2CBFFDAD2CBFFDAD2CBFFDAD2CBFFDAD2 + CBFFDAD2CBFF736052FF215B98FF4F97CAFF4F97CAFF4F97CAFF3474ADFF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF74B2DDFF74B2DDFF74B2DDFF74B2 + DDFF736052FFF3F0EEFFF3F0EEFFF3F0EEFFF3F0EEFFF3F0EEFFF3F0EEFFF3F0 + EEFFF3F0EEFF736052FF215B98FF74B2DDFF74B2DDFF74B2DDFF4480B5FF215B + 98FF000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000205B97C5215B98FF215B98FF215B98FF215B98FF215B + 98FF736052FF736052FF736052FF736052FF736052FF736052FF736052FF7360 + 52FF736052FF736052FF215B98FF215B98FF215B98FF215B98FF215B98FF215A + 98C3000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000725E5126735F527C735F51FB736052FF7260523872605238736052FF735F + 51FB735F527C725E512600000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000736051E5736052FF735E513C735E513C736052FF7360 + 51E5000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000735F5289736052FF736052FF736052FF736052FF735F + 5289000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000055552B06735F5289736052E4736052E4736051875555 + 2B06000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000FFFFFFFFF800001FF800 + 001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800 + 001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800 + 001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800 + 001FFFE007FFFFF81FFFFFF81FFFFFF81FFFFFFFFFFF28000000180000003000 + 0000010020000000000060090000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000205B98C7215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF205B98C70000000000000000000000000000 + 00000000000000000000215B98FF3F79B1FF2964A2FF2964A2FF2964A2FF2964 + A2FF2964A2FF2964A2FF2964A2FF2964A2FF2964A2FF2964A2FF2964A2FF2964 + A2FF2964A2FF2964A2FF245F9CFF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF6AA4D3FF3874B2FF3874B2FF3874B2FF3874 + B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874B2FF3874 + B2FF3874B2FF3874B2FF2A65A3FF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF6BA5D4FF3A77B4FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FF3A77B4FF2B67A4FF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF6CA6D5FF3C7AB6FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FF3C7AB6FF2C68A5FF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF6DA7D5FF3D7CB8FFF9EFE4FFF9EFE4FFF9EF + E4FFF9EFE4FFDED5DCFF4A48ADFFCDC5D6FFF9EFE4FFF9EFE4FFF9EFE4FFF9EF + E4FFF9EFE4FF3D7CB8FF2C69A6FF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF6DA8D6FF3F7FBAFFFAF0E6FFFAF0E6FFFAF0 + E6FFDED6DDFF2928A2FF0D0E99FF4543ABFFFAF0E6FFFAF0E6FFFAF0E6FFFAF0 + E6FFFAF0E6FF3F7FBAFF2D6AA6FF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF6EAAD7FF4182BBFFFAF1E8FFFAF1E8FFDED7 + DFFF2928A2FF1F1F9FFF7572BCFF0D0E99FFC2BCD6FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FF4182BBFF2E6BA7FF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF6FAAD7FF4384BDFFFAF2EAFFF5EDE8FF2928 + A3FF1F209FFFD2CCDDFFF3EBE8FF2323A1FF4543ACFFFAF2EAFFFAF2EAFFFAF2 + EAFFFAF2EAFF4384BDFF2F6CA8FF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF70ACD8FF4587BFFFFBF3EBFFF8F0EAFF7572 + BDFFD5CEDEFFFBF3EBFFFBF3EBFF9793C9FF0D0E99FFC3BDD8FFFBF3EBFFFBF3 + EBFFFBF3EBFF4587BFFF306DA9FF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF70ADD9FF468AC1FFFBF4EDFFFBF4EDFFFBF4 + EDFFFBF4EDFFFBF4EDFFFBF4EDFFF4EDEBFF2323A1FF4544ADFFFBF4EDFFFBF4 + EDFFFBF4EDFF468AC1FF306FA9FF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF71AEDAFF488CC3FFFBF5EFFFFBF5EFFFFBF5 + EFFFFBF5EFFFFBF5EFFFFBF5EFFFFBF5EFFF9794CBFF0D0E99FFC3BFDBFFFBF5 + EFFFFBF5EFFF488CC3FF3170AAFF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF72AFDBFF4A8FC5FFFCF6F1FFFCF6F1FFFCF6 + F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFF5EFEFFF2323A1FF4544AEFFFCF6 + F1FFFCF6F1FF4A8FC5FF3271ABFF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF73B0DBFF4C92C6FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FF9895CDFF0D0E99FFC4C0 + DDFFFCF7F2FF4C92C6FF3372ABFF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF73B1DCFF4D94C8FFFDF8F4FFFDF8F4FFFDF8 + F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFFDF8F4FFF6F1F2FF2324A2FF4F4E + B2FFFDF8F4FF4D94C8FF3373ACFF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFFFDF9F6FFFDF9F6FFFDF9 + F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFFDF9F6FFB9B6DCFF9695 + CFFFFDF9F6FF4F97CAFF3474ADFF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FF4F97CAFF3474ADFF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF74B2DDFF4F97CAFFFEFBF9FFFEFBF9FF5350 + 50FF535050FF535050FF535050FF535050FF535050FF535050FF535050FFFEFB + F9FFFEFBF9FF4F97CAFF3474ADFF215B98FF0000000000000000000000000000 + 00000000000000000000215B98FF84BEE5FF74B2DDFF74B2DDFF74B2DDFF5350 + 50FFD4D3D3FFD4D3D3FFD4D3D3FFD4D3D3FFD4D3D3FFD4D3D3FF535050FF215B + 98FF74B2DDFF74B2DDFF4480B5FF215B98FF0000000000000000000000000000 + 00000000000000000000215A98C3215B98FF215B98FF215B98FF215B98FF5350 + 50FF535050FF525051FF535050FF535050FF525051FF535050FF535050FF215B + 98FF215B98FF215B98FF215B98FF205B97C50000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000005050 + 5030524F4F92535050FF534F4F7B534F4F7B535050FF524F4F92505050300000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00004D4D4D0A534F4FF7535050C2535050C2534F4FF74D4D4D0A000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000524F4F57525050E2525050E2524F4F5700000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00E0000700E0000700E0000700E0000700E0000700E0000700E0000700E000 + 0700E0000700E0000700E0000700E0000700E0000700E0000700E0000700E000 + 0700E0000700E0000700E0000700E0000700FF00FF00FF81FF00FFC3FF002800 + 0000140000002800000001002000000000009006000000000000000000000000 + 000000000000000000000000000000000000205B98C7215B98FF215B98FF215B + 98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B98FF215B + 98FF215B98FF215B98FF205B98C7000000000000000000000000000000000000 + 0000215B98FF3F79B1FF2964A2FF2964A2FF2964A2FF2964A2FF2964A2FF2964 + A2FF2964A2FF2964A2FF2964A2FF2964A2FF2964A2FF2964A2FF215B98FF0000 + 000000000000000000000000000000000000215B98FF6AA2D2FFF8EDE1FFF8ED + E1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8EDE1FFF8ED + E1FFF8EDE1FF2964A2FF215B98FF000000000000000000000000000000000000 + 0000215B98FF6AA2D2FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EE + E3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FFF9EEE3FF2964A2FF215B98FF0000 + 000000000000000000000000000000000000215B98FF6AA2D2FFF9EFE5FFF9EF + E5FFF9EFE5FFF9EFE5FFA39DCAFF7D79BDFFF9EFE5FFF9EFE5FFF9EFE5FFF9EF + E5FFF9EFE5FF2964A2FF215B98FF000000000000000000000000000000000000 + 0000215B98FF6BA4D3FFFAF0E7FFFAF0E7FFFAF0E7FFA09ACAFF0E0F9AFF0D0E + 99FFCCC4D8FFFAF0E7FFFAF0E7FFFAF0E7FFFAF0E7FF2B66A3FF215B98FF0000 + 000000000000000000000000000000000000215B98FF6CA6D5FFFAF1E8FFFAF1 + E8FFA09BCAFF0E0F9AFF7975BDFF3231A6FF5452B1FFFAF1E8FFFAF1E8FFFAF1 + E8FFFAF1E8FF2C67A5FF215B98FF000000000000000000000000000000000000 + 0000215B98FF6DA8D5FFFAF2EAFFD3CDDDFF0E0F9AFF7976BEFFFAF2EAFFACA7 + D0FF0D0E99FFCCC6DAFFFAF2EAFFFAF2EAFFFAF2EAFF2D69A6FF215B98FF0000 + 000000000000000000000000000000000000215B98FF6EA9D7FFFBF4ECFFF6EF + EAFFBDB8D7FFFBF4ECFFFBF4ECFFFAF3ECFF3232A6FF5553B2FFFBF4ECFFFBF4 + ECFFFBF4ECFF2E6BA7FF215B98FF000000000000000000000000000000000000 + 0000215B98FF6FABD8FFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5 + EEFFADA9D2FF0D0E99FFCDC8DEFFFBF5EEFFFBF5EEFF2F6DA8FF215B98FF0000 + 000000000000000000000000000000000000215B98FF70ADD9FFFCF6F0FFFCF6 + F0FFFCF6F0FFFCF6F0FFFCF6F0FFFCF6F0FFFBF5F0FF3232A7FF5554B3FFFCF6 + F0FFFCF6F0FF306FA9FF215B98FF000000000000000000000000000000000000 + 0000215B98FF72AFDAFFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7F2FFFCF7 + F2FFFCF7F2FFADAAD5FF0D0E99FFCDCAE1FFFCF7F2FF3170ABFF215B98FF0000 + 000000000000000000000000000000000000215B98FF73B0DCFFFCF8F4FFFCF8 + F4FFFCF8F4FFFCF8F4FFFCF8F4FFFCF8F4FFFCF8F4FFFBF7F4FF3232A7FF5554 + B5FFFCF8F4FF3372ACFF215B98FF000000000000000000000000000000000000 + 0000215B98FF74B2DDFFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9F5FFFDF9 + F5FFFDF9F5FFFDF9F5FFB9B7DBFF5A59B7FFFDF9F5FF3474ADFF215B98FF0000 + 000000000000000000000000000000000000215B98FF74B2DDFFFDFAF7FFFDFA + F7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFAF7FFFDFA + F7FFFDFAF7FF3474ADFF215B98FF000000000000000000000000000000000000 + 0000215B98FF74B2DDFFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB + F9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FF3474ADFF215B98FF0000 + 000000000000000000000000000000000000215B98FF84BEE5FF74B2DDFF74B2 + DDFF74B2DDFF535050FF535050FF535050FF535050FF535050FF74B2DDFF74B2 + DDFF74B2DDFF4480B5FF215B98FF000000000000000000000000000000000000 + 0000215A98C3215B98FF215B98FF215B98FF215B98FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFF215B98FF215B98FF215B98FF215B98FF205B97C50000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000534F4F9A535050FA50505046524F4FFB534F4F9A000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000534F4F885350 + 50F3534F4F880000000000000000000000000000000000000000000000000000 + 000000000000E0003000E0003000E0003000E0003000E0003000E0003000E000 + 3000E0003000E0003000E0003000E0003000E0003000E0003000E0003000E000 + 3000E0003000E0003000E0003000FF07F000FF8FF00028000000100000002000 0000010020000000000040040000000000000000000000000000000000000000 000000000000205B97C5215B98FF215B98FF215B98FF215B98FF215B98FF215B - 98FF215B98FF215B98FF215B98FF215B98FF205B97C500000000000000000000 - 000000000000215B98FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF2B66 - A3FF2B66A3FF2B66A3FF2B66A3FF2B66A3FF215B98FF00000000000000000000 - 000000000000215B98FF6CA6D4FFF9EDE1FFF9EDE1FFF9EDE1FFF9EDE1FFF9ED - E1FFF9EDE1FFF9EDE1FFF9EDE1FF2C68A4FF215B98FF00000000000000000000 - 000000000000215B98FF6DA7D5FFF9EFE4FFF9EFE4FFF9EFE4FFA09AC8FFE8DF - DFFFF9EFE4FFF9EFE4FFF9EFE4FF2D69A5FF215B98FF00000000000000000000 - 000000000000215B98FF6EA9D6FFFAF0E7FFFAF0E7FF7B77BDFF14149BFF706D - BAFFFAF0E7FFFAF0E7FFFAF0E7FF2E6BA6FF215B98FF00000000000000000000 - 000000000000215B98FF6FAAD7FFFAF2E9FF8682C2FF3534A6FFD1CBDBFF1C1C - 9EFFE4DDE1FFFAF2E9FFFAF2E9FF2F6CA8FF215B98FF00000000000000000000 - 000000000000215B98FF70ACD8FFFBF3ECFFBCB7D6FFE8E1E5FFFBF3ECFF716E - BCFF716EBCFFFBF3ECFFFBF3ECFF306EA9FF215B98FF00000000000000000000 - 000000000000215B98FF71AED9FFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFE5DF - E6FF1C1C9EFFE5DFE6FFFBF5EEFF3170AAFF215B98FF00000000000000000000 - 000000000000215B98FF72AFDAFFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 - F1FF716FBEFF716FBEFFFCF6F1FF3271ABFF215B98FF00000000000000000000 - 000000000000215B98FF73B1DBFFFCF8F4FFFCF8F4FFFCF8F4FFFCF8F4FFFCF8 - F4FFE6E2EBFF1C1D9FFFE9E6EDFF3372ACFF215B98FF00000000000000000000 + 98FF215B98FF215B98FF215B98FF215B98FF205B98C700000000000000000000 + 000000000000215B98FF2A66A3FF2A66A3FF2A66A3FF2A66A3FF2A66A3FF2A66 + A3FF2A66A3FF2A66A3FF2A66A3FF2A66A3FF215B98FF00000000000000000000 + 000000000000215B98FF6CA6D4FFF9EDE2FFF9EDE2FFF9EDE2FFF9EDE2FFF9ED + E2FFF9EDE2FFF9EDE2FFF9EDE2FF2C67A4FF215B98FF00000000000000000000 + 000000000000215B98FF6DA7D5FFF9EFE4FFF9EFE4FFF9EFE4FF9E99C7FFE9DF + DFFFF9EFE4FFF9EFE4FFF9EFE4FF2C69A6FF215B98FF00000000000000000000 + 000000000000215B98FF6EA9D6FFFAF0E7FFFAF0E7FF7B77BDFF13149BFF706D + BAFFFAF0E7FFFAF0E7FFFAF0E7FF2E6AA6FF215B98FF00000000000000000000 + 000000000000215B98FF6FAAD7FFFAF2E9FF8682C2FF3534A7FFD1CBDCFF1D1E + 9FFFE4DDE2FFFAF2E9FFFAF2E9FF2F6CA8FF215B98FF00000000000000000000 + 000000000000215B98FF70ACD9FFFBF3ECFFBDB7D7FFE9E1E6FFFBF3ECFF7370 + BDFF716EBCFFFBF3ECFFFBF3ECFF306EA9FF215B98FF00000000000000000000 + 000000000000215B98FF71AEDAFFFBF5EEFFFBF5EEFFFBF5EEFFFBF5EEFFE5E0 + E6FF1D1E9FFFE5E0E6FFFBF5EEFF3170AAFF215B98FF00000000000000000000 + 000000000000215B98FF72AFDBFFFCF6F1FFFCF6F1FFFCF6F1FFFCF6F1FFFCF6 + F1FF7371BFFF716FBEFFFCF6F1FF3271ABFF215B98FF00000000000000000000 + 000000000000215B98FF73B1DCFFFCF8F4FFFCF8F4FFFCF8F4FFFCF8F4FFFCF8 + F4FFE8E4EDFF1F20A0FFEAE6EDFF3372ACFF215B98FF00000000000000000000 000000000000215B98FF74B2DDFFFDFAF6FFFDFAF6FFFDFAF6FFFDFAF6FFFDFA - F6FFFDFAF6FFB8B6DBFFF4F1F2FF3474ADFF215B98FF00000000000000000000 + F6FFFDFAF6FFBCBADDFFF4F1F3FF3474ADFF215B98FF00000000000000000000 000000000000215B98FF74B2DDFFFEFBF9FFFEFBF9FFFEFBF9FFFEFBF9FFFEFB F9FFFEFBF9FFFEFBF9FFFEFBF9FF3474ADFF215B98FF00000000000000000000 000000000000215B98FF84BEE5FF74B2DDFF535050FF535050FF535050FF5350 50FF535050FF535050FF74B2DDFF3474ADFF215B98FF00000000000000000000 - 000000000000215C98C3215B98FF215B98FFD3D2D2FFD3D2D2FFD3D2D2FFD3D2 - D2FFD3D2D2FFD3D2D2FF215B98FF215B98FF215C98C300000000000000000000 - 00000000000000000000000000000000000053505093535050FC535151885351 - 5188535050FC5350509300000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000544F4F6A535050EA5350 - 50EA544F4F6A000000000000000000000000000000000000000000000000C003 + 000000000000215A98C3215B98FF215B98FFD4D3D3FFD4D3D3FFD4D3D3FFD4D3 + D3FFD4D3D3FFD4D3D3FF215B98FF215B98FF215A98C300000000000000000000 + 00000000000000000000000000000000000053505093535050FD514F4F8A514F + 4F8A535050FD5350509300000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000514E4E68535050EA5350 + 50EA514E4E68000000000000000000000000000000000000000000000000C003 0000C0030000C0030000C0030000C0030000C0030000C0030000C0030000C003 0000C0030000C0030000C0030000C0030000C0030000F81F0000FC3F0000} KeyPreview = True @@ -174,18 +1482,26 @@ object SynchronizeChecklistDialog: TSynchronizeChecklistDialog Columns = < item Caption = 'Name' + MaxWidth = 1000 + MinWidth = 20 end item Caption = 'Local directory' + MaxWidth = 1000 + MinWidth = 20 Width = 100 end item Alignment = taRightJustify Caption = 'Size' + MaxWidth = 1000 + MinWidth = 20 Width = 70 end item Caption = 'Changed' + MaxWidth = 1000 + MinWidth = 20 Width = 80 end item @@ -195,15 +1511,21 @@ object SynchronizeChecklistDialog: TSynchronizeChecklistDialog end item Caption = 'Remote directory' + MaxWidth = 1000 + MinWidth = 20 Width = 100 end item Alignment = taRightJustify Caption = 'Size' + MaxWidth = 1000 + MinWidth = 20 Width = 70 end item Caption = 'Changed' + MaxWidth = 1000 + MinWidth = 20 Width = 80 end> OnAdvancedCustomDrawSubItem = ListViewAdvancedCustomDrawSubItem @@ -981,8 +2303,8 @@ object SynchronizeChecklistDialog: TSynchronizeChecklistDialog 99FAACC60A25CF3E259FA98A94759026C3EBD6F8AFF308808B979418899904B5 F627CD7A6EF09E4BCDD50000000049454E44AE426082} end> - Left = 592 - Top = 448 + Left = 48 + Top = 416 Bitmap = {} end object ListViewPopupMenu: TPopupMenu @@ -1052,4 +2374,2359 @@ object SynchronizeChecklistDialog: TSynchronizeChecklistDialog OnExecute = ReverseActionExecute end end + object ActionImages120: TPngImageList + Height = 20 + Width = 20 + PngImages = < + item + Background = clWindow + Name = 'Total actions counter on sync checklist' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002424944415478DA95D34B4C13 + 511406E07FDC4A0482553486A453172E0045D122A5548804FAA20A1A17B2A8A2 + D4A4091BA55065E34E8DB52B17B810C1A624249A94976D6D2D4463656358AAA0 + 4D4431588A7D2209D1F17622234D3BD3F15FDD3973EE774FEE64288661B0198A + A2902B0643FB2DF2CA4C5AEFBB5C4FFA72F56C3A543E90600F48D908FCD231CC + B649D23548D02E51E0C079FA2528D46D6D34393E651D32D0416762605E5F7184 + 14D96007CDE83B3BB19E8C72B5AB0F4359A0EDA2945BBF7B3B87C5F98FE983A9 + 9C60D3B976EC53DF81D84C588F21FC2D220CEE6DB92D1A9CBA2ECF0F96360B83 + 4B2F7C58181E42FDA3C770DFC8039E3CDB8652A10949FFB8428E1DB40C2AC708 + DC64C295E5557EB0F1CC6902F2DFE1E2B80BAF2E19D1E29B4671C54178AC4711 + 0947F9C186360376ABEFF24EF74C294701994E393CC2963CD66AFC5889F18327 + 4EB562972637F865620CC1CB463479A7515451C9D6BC7DD588AEC6F94155AB1E + 12AD0DBF373610990D425257CF4DE755D5A0402A43ED9093DBF3BCF70862D104 + 3FA8D4EB20D1D890987F0F7FA302FB4D6694F7DFC4D2E418664D17D0E00EA0A8 + BC92DBE323603C9E1400B55A9468EFB1CF9F479D98BBD60D599719CB3E0FB64B + 69C8079D19D7E0B71C462299E207156A0D76EAECFFBE6A1AEDE9667F7ED55400 + 855BA66327B45421955AE3076B9BD528D1DB33367D7D3A8AC4C2071CB0F4677D + 287FCF21ACFD5C17068B7576884DC022022CFC7B876232D35B250CEE292B432C + FC5D34988E00280D9252CD7F696C98372647E8787AF507FA2952E8D4EC8CA300 + 00000049454E44AE426082} + end + item + Background = clWindow + Name = 'New local files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000EA4944415478DA63FCFFFF3F + 033501E3A881941B48AA06F976A1BD8C8CFF85FEFFFE1DF5B0F6CB758A0D5468 + 17FAAFA5ABC970E3DACDEF7FFEFCC97C54F56121C5063A7B3832FCFCF68BE1C2 + B98B0C5FBE7C59F8EBE7BBAC670D0CDFC006CAB70B1E666460B48169F8CFF0FF + C8C3CAF7B6B8C46106B232B1323001E1952B57191E3E7A7C9DE1CFAF60501030 + 8214C89989C35DF0E8D44B860795EFF08AC30C646566656001D24F9F3C653873 + E1DCF77F7FFF2453C54010FBC58B970C878E1FFA447D1702C3EA2830ACAC90C2 + FD0450A3252E71826148F5581E04E950703F509700CE9C32F80B87416F2000E2 + 3FE4C6BBCE31C80000000049454E44AE426082} + end + item + Background = clWindow + Name = 'New remote files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001274944415478DA63FCFFFF3F + 033501E3A881941B884D50AE49489B89EDFF1286FF0C2F1E54BEF7A4C840B936 + 8178161696E91ADAEA9CD72E5D677850F98E912C03A51A18B8D8D885A6F1F0F0 + C41B18E933B073B131ECDDB19F3C03E59B79341958D8D6CACBC96AEAE86833FC + 03C2DFFF7EC30D5468133A09546906D3040CF53D0F2BDFB96213675468178C64 + 6266996B6260C4292D23CDF00768D0EFBFBF510D6C17FA2F67260E77C5A3532F + 718A83043FDA59DAF1494888830DA182815476212C0C1959D8D6CBC9C9AAEBE8 + 02C3F03F6A18CAB70B9E63646034440AAB7DC03074C6260E8F41D106061E2E76 + C119FC7C7CD1FA867A0C6C9C14C43232906F134A6661659E0A4C87EC572F5EA3 + DC4010906915D4636162580C9406E69477EE241938F80B87416F2000BD53C50A + 47856A7D0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Modified local files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000EF4944415478DA63FCFFFF3F + 033501E3A881941B48AA8619BC3C7B19191984FEFC6388CAFEF2E53AC506CEE4 + E3FD6F2027CD70E9C9D3EFFFFEFECB4CFFFC7521C506FA186A337CFDF397E1CC + 9D070C9FBFFD58C8F0F973563A03C337B0813379790E333032DAC075FCFF7F24 + FDF3175B9CE2500319595919FE3231335C7EF088E1F1F357D7FFFC6708060501 + 2348811B1B1B5CDFAE5FBF18D23F7DC62B0E3390018819D958189EBC7EC770E1 + FAEDEF7F7FFD49A68A8120F68BB7EF194E9EBDFC89062EE4E53D0A8C1A2B4450 + 319CC8F8FCD912A738A130A47A2C0F783A9CC5CBB3FF3F238300CE9C32F80B87 + 416F2000725EE4ADB12289420000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Modified remote files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000EE4944415478DA63FCFFFF3F + 033501E3A881941B884D702A0F8F260B13C332A05DEF323E7F71A6C8C099BCDC + F14CCC4CD3F564A4392F3C7ACA90FEE933235906CE6460E062E0E59DC6CBC511 + 6FA2A2C0C0CDC2CCB0E5FC55F20C047B919161ADACA498A6AE821C03F3BFBF0C + FF7FFF861B389397E7300323A30D5CD77F8663E99F3F5B6313679CC1CD1DC9CC + C632D740539553465488E1FFAF3F0C0C40C3500CE4E3FDEFC6C606D7B7EBD72F + 9CE220C1F7E6C6BA0212C2826043283690EA2E242E0C798F02555AC183EA3FC3 + 898CCF9F2DB189D3269669920E91012CA70093C197F4CF5F6C493270F0170E83 + DE4000DA8EC404662BA0B90000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Obsolete local files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A74944415478DAADD45B6C14 + 551800E0FFCC99D9766E5B364B97D2DA4B0429B02A2EF46E4063242412135FF0 + CDC0838ABD60A2F1C117137D30BE9A584A35F116C383897D322A8DC444595640 + 489642DB1402962E74DB6E7771F7CCECDC673C332B2BA5547CE03CCDFCE7CC77 + 72FEFFCC8F3CCF838739900F22848297F701989824ED5E5294B3F4597FD0C7C7 + 2429C600BC6C2BCA5783004A60DD017D6CA32C7F11AAE10E9A86F95B96287B69 + CC5C0BFB94E75B80C3A7EAEBA32DB9A542CA2664DF80E72901F8014201168DAE + 3BD8DBBB0B2E5E9C824C26FB7D96909728EADE8B0D4B529C43E8D744221E6D6D + 7B0452A7CFC3D2E2F291D709190EC0D1B074285217FE7277CF2EC02C06CF75E1 + EC854BB0B894FF86A287EE468FCA7C1FC7703F7626E2751B1B6270F3D6025C48 + 4FDE321DB76B4855E7037044929E0AB138D9B9639BD8501F0D3E741C0752142D + DC2E7D7C5851DE0A8E1916F6B398FBB673C77631168DC062AE00E7D25379C375 + 9F195294C915391C15840E84F189C4D64DD1E686FA00B56D0792E9CB5024E5F7 + C0F3AED5D4705F773FBE958BD4C970BB48203531AD9AAEF9FC40493BE3AF5F01 + FA6344AE69C788FB39DED6DCFC68E38620665A369C9A9806D775BD9EF816240B + 3C90B206C98969CBB09C170654F5E49D74AC02ABD563F189C71A376C6B6F6A08 + 629A5929361F0A41D930213975C5D32DE740BFA28CDD5DACFB82012ACBEB01C1 + 4FADD148C7133EFACFBC615990BC3A0B65D37AF50D423EBFB7FA6B82B4AAAC7F + 8D2242ED2BDD2D4D8019268817351D7EBF91310CD77E6E9068A9FF05522C44B1 + EF6222FF628216C7C71CB7726BFCE73CCDDFB9F9C5A2E97A4FFB95FD4FF02880 + C4CAD20F8DA2B0E7497A2DFCB83F7F3E97A7A8071DB128B0145DA0683A97CF39 + 96DDD5AFEBB3F7052B79F3C65B0561E7F6B054C91B9D4BFF5582ACA68FD1557F + CA1C7EA7876EC4513443D1CBC5D29CED78DD83AABAB0021C16C5C610C6BF6C16 + 6ADB370B42F508938A0A19433F992D29FBFDFF9A6EFA2E8F998FBAC332D4620C + D7350DAEA8E54995287BDE062854C1CF647928C2B19F7489FF62577503AE19E6 + 198790BD7E27A97618597EAD961EA853149044D1195D8759C35AD91C4610A2B9 + 93C7DB58DCB785E3E0866DC38C65D184A3670F13B2BCAAD348D20116C1F19DF4 + D759478FFF876140C171FBE9DAD16A0E2B0591C7D733A86FD973E74CDBED3D52 + 2ECFAFD90B45715F0833634D0C23CE394ECEB6EC9E7E4DBBBEAACA5896074DDB + 3EFEA6A6DD84078C633CDFC5B0EC9003E68703C498A9E6F0618EBF0128B9F2E8 + E7A582650000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Obsolete remote files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003A74944415478DAADD45B6C14 + 551800E0FFCC99D9766E5B364B97D2DA4B0429B02A2EF46E4063242412135FF0 + CDC0838ABD60A2F1C117137D30BE9A584A35F116C383897D322A8DC444595640 + 489642DB1402962E74DB6E7771F7CCECDC673C332B2BA5547CE03CCDFCE7CC77 + 72FEFFCC8F3CCF838739900F22848297F701989824ED5E5294B3F4597FD0C7C7 + 2429C600BC6C2BCA5783004A60DD017D6CA32C7F11AAE10E9A86F95B96287B69 + CC5C0BFB94E75B80C3A7EAEBA32DB9A542CA2664DF80E72901F8014201168DAE + 3BD8DBBB0B2E5E9C824C26FB7D96909728EADE8B0D4B529C43E8D744221E6D6D + 7B0452A7CFC3D2E2F291D709190EC0D1B074285217FE7277CF2EC02C06CF75E1 + EC854BB0B894FF86A287EE468FCA7C1FC7703F7626E2751B1B6270F3D6025C48 + 4FDE321DB76B4855E7037044929E0AB138D9B9639BD8501F0D3E741C0752142D + DC2E7D7C5851DE0A8E1916F6B398FBB673C77631168DC062AE00E7D25379C375 + 9F195294C915391C15840E84F189C4D64DD1E686FA00B56D0792E9CB5024E5F7 + C0F3AED5D4705F773FBE958BD4C970BB48203531AD9AAEF9FC40493BE3AF5F01 + FA6344AE69C788FB39DED6DCFC68E38620665A369C9A9806D775BD9EF816240B + 3C90B206C98969CBB09C170654F5E49D74AC02ABD563F189C71A376C6B6F6A08 + 629A5929361F0A41D930213975C5D32DE740BFA28CDD5DACFB82012ACBEB01C1 + 4FADD148C7133EFACFBC615990BC3A0B65D37AF50D423EBFB7FA6B82B4AAAC7F + 8D2242ED2BDD2D4D8019268817351D7EBF91310CD77E6E9068A9FF05522C44B1 + EF6222FF628216C7C71CB7726BFCE73CCDDFB9F9C5A2E97A4FFB95FD4FF02880 + C4CAD20F8DA2B0E7497A2DFCB83F7F3E97A7A8071DB128B0145DA0683A97CF39 + 96DDD5AFEBB3F7052B79F3C65B0561E7F6B054C91B9D4BFF5582ACA68FD1557F + CA1C7EA7876EC4513443D1CBC5D29CED78DD83AABAB0021C16C5C610C6BF6C16 + 6ADB370B42F508938A0A19433F992D29FBFDFF9A6EFA2E8F998FBAC332D4620C + D7350DAEA8E54995287BDE062854C1CF647928C2B19F7489FF62577503AE19E6 + 198790BD7E27A97618597EAD961EA853149044D1195D8759C35AD91C4610A2B9 + 93C7DB58DCB785E3E0866DC38C65D184A3670F13B2BCAAD348D20116C1F19DF4 + D759478FFF876140C171FBE9DAD16A0E2B0591C7D733A86FD973E74CDBED3D52 + 2ECFAFD90B45715F0833634D0C23CE394ECEB6EC9E7E4DBBBEAACA5896074DDB + 3EFEA6A6DD84078C633CDFC5B0EC9003E68703C498A9E6F0618EBF0128B9F2E8 + E7A582650000000049454E44AE426082} + end> + Left = 136 + Top = 416 + Bitmap = {} + end + object ActionImages144: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + Background = clWindow + Name = 'Total actions counter on sync checklist' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000003204944415478DAB5D3494C13 + 611806E0773878103146F4E0411412359AA91005AC6195250AA5B61481831C0C + 6050831A8390B810A378728971894AACE8810BA250682812C00B714934586811 + 044B11DA52BAB740D93B4ECB121BE894627C7B98E9F77FF33D7F67A604455158 + 0C4110F0141E4F904D2FDF759ED39714D7D5D55479EA759BB91A80CBE5AEF7F3 + 5B67A497BF2E00110EC774A0582CB6FF33C0E7F3C328CA2F975E3B4FB75E9FEF + C36DFABAC704E1A8108944D25503E52743DA4020FAEFE6F7E307E61B41D11F62 + D9F931FF76F7E1A03E9DA95446AD0CE48450DCBC3C4C8E59966A45154A9495DD + 5CF1D69596DE7001C9D919AEEF3DED520CF5295050D94F78049CCD46751F42F3 + 6B5DB5ECCC4C30A5AABADA75EC10A66348A1867ED8B83A809557035F227B29F0 + 0D2073BD039AD6168C2A15D8935F0079C52A81A42C010C43BD20F3458CC31D53 + 53101D6461D33E12096F6A2017F2A1526A60D09A9881C44C01F4833F419E6606 + FA2A84F876A51849F58DD87A880DF90B3ED403C3308E78034EA44337D003B2A0 + 9E71F7F5E1FB11101C82441A70465E7E1C9A412D8C3A33339090C1C7487F37C8 + B3628FC0AF5742B45F2D41429D045B22D9F3C0332E86552330E92DCCC011010F + 5AC50F90E71A3CEE5E12198A0DF4EEE34592A5BAFC29075AB50E66839519884F + E761B8AF0B64A104D4DC1C64B74A119C730A01BB76BB7AFA5F0B21BD5682B85A + 09021776EF029EA442A7D1C36CF202C4F1E87BD92B07EB42231C3333688E0AC7 + ECA41DB16FC5F0DF118C267618FC778620B6D6FD17CA1EA540AF35C062B67903 + B850F5C8C0BAD8E4AA4D6854684BE7606EC28EED195950089F23A6A6019B23D8 + EEC0C3A3308C1861B58C3203B1DC34A8BA3B415E6A5EAA3B918F028EEBE81C1C + F56EF9F3913F4886416F82CD3AC60CC4A4A561A84B0AB2A8C56DC0A4468D8EA2 + 42EC2D2DC346FACFB50CB89F0493D10C9B6DDC0BC0E1E0B75C0AD6E556F812D9 + BD44FA015B303AEA05884E4DC540E777B04A3EF806DC4980C562C5D8989D1988 + 4A498152DAEED3F0C558AD368CDB2798816D4141B0EA756B02A6E9D77A76768E + 0908FE4C97D86B9ABE14EA4B41A5F2F08AC0FFC81F7D1AFDE0F64FDC18000000 + 0049454E44AE426082} + end + item + Background = clWindow + Name = 'New local files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001844944415478DAED95CF4B02 + 5110C7E7E91E4285C84B37EDAF088A8A428AFE8D08EC1ADD643BEC253C467F40 + 7F4174E8149D3A54F46335CBD20E51EEAE76588DE7AABBAE2BED4EAB85A88842 + AE44D0C0E33D9899F77930DF994710114669E41FF0FB809F260676C643086E26 + CBD29391008251BFE6F5793C55B57A00861516384571143015F5E3D2CA02BC3C + 0B206524192D5C13D9E2B1A380D0EA22B85D0C9468091E928FA069FA7EB54E37 + 0B1CA82D40303A714680CCB52723E0B91829CEF7F3B50318C2005A00E9F41308 + 829001C47591554E9B804660607AB2E375D28D0C42840EF4B5039ABBBD64390F + F1BB38D6747D97D415D67180DB3E5BA605FC2D0FD25BF6726480582206524EBA + 761C50C8BF039FE0D1308C3DA8D148A3C817762167BB4472655F32D3CFD70D00 + 24904AA5411405F14BB2DF457642A6E5620592F7C9A64C2B75BA453928B7643A + 0CA0D168AF76A38976A399A6B591DD568EBAE38601E85E9F774C55B543D3F808 + E7B832ED1537CCB05B26E0627A8D870EC0DFFF0FFE0183EC1375E9225969919C + 2F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'New remote files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000016C4944415478DA63FCFFFF3F + 032D01E3A805036F01210572ADFCAE20FA51F5C7DD54B540A14140E03F3BE324 + 6E6EAED86F5FBFFD7A50F99E9D6A16805CCDC8CC3C4F5E5E5646495581E1C0EE + C30C0F2ADF11F42D410BA41A18B858D9053B39393973F4F475190484F819FEFE + FBC3B077C701CA2D5068E1B3F8CFC4BC445E5E4E595B5B9B81918981E1CFFF3F + 2816C8B70BED066A704133E30450CE12971C234303039B029B60231B077BB989 + 8109A3B88418C39F7F1083D12D506817FA2F67268E62C2A3532FF1CA012504F7 + CB4ACB3998189A3030B33033FC051A4A6D0B0ECA4ACBDB99181AD3C88206068E + FF6C02AD1C9C9C85C6FAC6D40F221847B64DD01618AF0B15E4E515B5B4B57045 + F25EA006276443FE33FC3FFFB0F2BD112E39CC64CA2634898B8B33594F5F8781 + 9F9AC91419C8B60AB93333312C9453901557565364D8BFEB10752D0001685131 + 8D9B873BF2DB97AFD42D2A90817CABA0E77F867F7FC82EEC867E7D306A012100 + 00825C0CEF3F2728040000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Modified local files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000017D4944415478DAED95CF4B02 + 4114C7DFD0A296BBFD1F1144D7A24E5187E89F9040FB0151DEA23F22BAE5A1BF + 203A748ABA74A8A84E5A68BFA4D412DD6D417367C65D57DD6932125744C15622 + F05DDEE1BD379F99F9BE37831863D04B437DC0DF03BA2DDCF57A67F8D684654A + 8F7B02080D8B5474BB8748A9B45FD4887F03E0C36180C4E6C746E0415621A1A8 + 4A0559BE15AD78E42860617C945FD200E4A80E91971450C3D8AB62BABE0A40EA + 8090249E014253B66AC6CE03984CB78D3500902040858762C934BCCAEF09B0D8 + 628090D36F004F9C73B96C6B9C98260434DC31D608F8F14ABE00377771A69BE5 + 6D19E32DC70188FB326FAF48EC113259F5B26780DBFB38A433CAB5E300B5A041 + 38FAC48C92B9932564938B2C5DF05E9AB4EB08574B184FB48D3501AA084134F1 + F625728A8BECAB8BEC449BE68B06849F93B53635310DAE01688ECC416DD0143E + 68B2AA588002FC6487CD79DD03245197063D1EAC1B0714137F1020D72AEF378F + DDAC35C08456CF830DF0FFFF833EA0937D0217CC1E0F667E4E22000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Modified remote files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001614944415478DA63FCFFFF3F + 032D01E3A805036F01210533B8B95D4174C6D7AFBBA96A413F038300172FEF24 + 1E0EB6D82F3F7EFE4AFFFC859D6A16805CCDC4C4384F415C444653428C61DBA5 + EB0CE99F3E13F42D410B6632307031F0F17472B2B1E71828CB330873733230FC + F9CBB0E5C255CA2D98C6C769C1CCC0B2444E4254595B4196810528F6FFCF1F14 + 0B66F2F100E381D105D900601A3991F1F9B3252E39C606060636495EEE467636 + B672032D5546714101B8C19816F0FE7763634371E1AE5FBFF0CA31CEE2E5D92F + 2929E6A0AFA5C6C0C6C40834F42F752D98C9CB73504A52CC8E66160083884382 + 97B795938DB5505F4B85FA41048F645E5E5B66468685C04856C415C9A0E0FCCF + C8E8809A4EFE9F4FFFF4C508971C4632FDCFCB3D898B8323D950499E41889AC9 + 14194CE7E6766766625C08CC68E254CD68C800545470F2F14CE365678FA47A51 + 810CA6F1717932FD65FC43766137F4EB83510B08010028CB00D03FBD59B40000 + 000049454E44AE426082} + end + item + Background = clWindow + Name = 'Obsolete local files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000043B4944415478DABD947B6C53 + 7514C7CFEFBED6DBFBE8D651E6582238508695B94756BB11A37F8C3FD410FF50 + 628C312426760FCDFE40FD434CD4C5607CC45732C6867F2C46135F2184444D20 + FCC3A27303C64295B00983AD6C949515BBDE7BDBDE7B7B7B3D9D6BDDE8C61612 + 3C49D39B5FCE399F73CEEFFB3BC4B66DB89B46FE37002164FEBF5BE6FD34D09D + 6093F75A14E5D7B5263A20F14D0CA1BF031B7E092B6AFB3BB69D2900649D389A + 3DBE75EB66616C6C5CB34C6B47ABA69D5B2D79AFEC7C8AA6D9C30DBE9AA28B7F + 5D81E8ECCDDE405C695D02E8969D4D1CC51E7FC4F7B05056E68170380243A7CE + 45D386E17F45D72FAD94FCA02CBCE060B9BE467F1D5B52E28248240A03BF9F9D + 0DC4E39E2580432E39DA50EB756F285F9F0F0E4D8561247821A463271DC9E454 + 61E562075F54F479A3AF864892008AA241FFC0B06918E6AE56553DB614204B3D + EE62B9A5B1EE216018269F647C720AFE1CBB7C1E5D1FC73B99CD9DF788E2DB92 + E8EC6CAADF0EBCA30812C914F40F8DD8BA6E3ED7A2AA3FE6479FFBE82484BA47 + 923E96057EEF8E5A2F702C9B878C5E0EC1D8E4F4A0A5283B6F0024CA45F13397 + 247434D63C38EFA71B06F40FFF015ACA08B429CA97D99802404E45BD92B4CFE9 + E0F637555701B69F87042F4EC0E44CE404AA2BEC76892FFABD0F004DD360A6D3 + F05B7014142DF92676F841CE7F45C042FBED3CC776F9B76D219293CF45C0F0A5 + 09B0321968B8BF120845C0B22C181C1D87A8A27DDAAA28AF2DBE9FDB02E62182 + F03CC7315FF9B66C624B44616910FA66BF4F233032A7F661E52FDD2A80550139 + 7D3314FB7DFDC60AC123898BA3E16CE81A4CC7E68E5C57D467DF05C8DC1980E7 + EF05963959E529DDB4799D3B7F9EC6D10C4C4C81A21B6F61F5EF2FF73E560574 + 89A2972570CCBB7E5DC5C662B920819E46C8D569D04C2BAF9C3503B2FB88B599 + 9FAA3DEED20D0BF3CFDA953905578D0D95AE7F81C9AC82A6AFDB292BB3BB4D55 + 0FAF098097BB9361E823B5EE62C1C33BF201D35A02827FC742985FB94F12BD55 + 0B5DA9A6090333B3A661659E6CD7B413B7051C14C567588A7CDB5052CC1673FF + 3DB499940E23B1F8FC5E62382E8647472BF8A2A6EDB2940D849861C299D89CA6 + DB66737B3C39B82CE0902CEEE108D5E773C94464E87CF29B58E199B8AAA5D3D6 + A36D89C448F6EC0080C8C8D20F651CFB440D8E305BDC0D848CC4D5A86EDB8FBD + AAAAE70B012E59F13979B164D11E8AA35A4EA99A99B6A1199757FFE219A334B9 + 7259FCA6946676D7E263A41112C6628289641865E60F2412A15B00528783505F + F8703D38D059C3177B3A95B20C9279BA259EF87939292204F797D8E3A2A897EB + 318EC5B8AB78F1170C7314D7F5B6823BE89184BD3CA13EA9C62E82A669EBC4DE + 13886B5FC32AD62B89FB458ADA57877121EC7A2293190ACCC5FDCBAA28BBE351 + 291FE2EF0D5CBB5DAB25CF1916F73A03E4230BF722666BC60E66577C07776ADD + 0E47652495BA86A34B155CF2DDB27F009E0431EFB7272D260000000049454E44 + AE426082} + end + item + Background = clWindow + Name = 'Obsolete remote files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000043B4944415478DABD947B6C53 + 7514C7CFEFBED6DBFBE8D651E6582238508695B94756BB11A37F8C3FD410FF50 + 628C312426760FCDFE40FD434CD4C5607CC45732C6867F2C46135F2184444D20 + FCC3A27303C64295B00983AD6C949515BBDE7BDBDE7B7B7B3D9D6BDDE8C61612 + 3C49D39B5FCE399F73CEEFFB3BC4B66DB89B46FE37002164FEBF5BE6FD34D09D + 6093F75A14E5D7B5263A20F14D0CA1BF031B7E092B6AFB3BB69D2900649D389A + 3DBE75EB66616C6C5CB34C6B47ABA69D5B2D79AFEC7C8AA6D9C30DBE9AA28B7F + 5D81E8ECCDDE405C695D02E8969D4D1CC51E7FC4F7B05056E68170380243A7CE + 45D386E17F45D72FAD94FCA02CBCE060B9BE467F1D5B52E28248240A03BF9F9D + 0DC4E39E2580432E39DA50EB756F285F9F0F0E4D8561247821A463271DC9E454 + 61E562075F54F479A3AF864892008AA241FFC0B06918E6AE56553DB614204B3D + EE62B9A5B1EE216018269F647C720AFE1CBB7C1E5D1FC73B99CD9DF788E2DB92 + E8EC6CAADF0EBCA30812C914F40F8DD8BA6E3ED7A2AA3FE6479FFBE82484BA47 + 923E96057EEF8E5A2F702C9B878C5E0EC1D8E4F4A0A5283B6F0024CA45F13397 + 247434D63C38EFA71B06F40FFF015ACA08B429CA97D99802404E45BD92B4CFE9 + E0F637555701B69F87042F4EC0E44CE404AA2BEC76892FFABD0F004DD360A6D3 + F05B7014142DF92676F841CE7F45C042FBED3CC776F9B76D219293CF45C0F0A5 + 09B0321968B8BF120845C0B22C181C1D87A8A27DDAAA28AF2DBE9FDB02E62182 + F03CC7315FF9B66C624B44616910FA66BF4F233032A7F661E52FDD2A80550139 + 7D3314FB7DFDC60AC123898BA3E16CE81A4CC7E68E5C57D467DF05C8DC1980E7 + EF05963959E529DDB4799D3B7F9EC6D10C4C4C81A21B6F61F5EF2FF73E560574 + 89A2972570CCBB7E5DC5C662B920819E46C8D569D04C2BAF9C3503B2FB88B599 + 9FAA3DEED20D0BF3CFDA953905578D0D95AE7F81C9AC82A6AFDB292BB3BB4D55 + 0FAF098097BB9361E823B5EE62C1C33BF201D35A02827FC742985FB94F12BD55 + 0B5DA9A6090333B3A661659E6CD7B413B7051C14C567588A7CDB5052CC1673FF + 3DB499940E23B1F8FC5E62382E8647472BF8A2A6EDB2940D849861C299D89CA6 + DB66737B3C39B82CE0902CEEE108D5E773C94464E87CF29B58E199B8AAA5D3D6 + A36D89C448F6EC0080C8C8D20F651CFB440D8E305BDC0D848CC4D5A86EDB8FBD + AAAAE70B012E59F13979B164D11E8AA35A4EA99A99B6A1199757FFE219A334B9 + 7259FCA6946676D7E263A41112C6628289641865E60F2412A15B00528783505F + F8703D38D059C3177B3A95B20C9279BA259EF87939292204F797D8E3A2A897EB + 318EC5B8AB78F1170C7314D7F5B6823BE89184BD3CA13EA9C62E82A669EBC4DE + 13886B5FC32AD62B89FB458ADA57877121EC7A2293190ACCC5FDCBAA28BBE351 + 291FE2EF0D5CBB5DAB25CF1916F73A03E4230BF722666BC60E66577C07776ADD + 0E47652495BA86A34B155CF2DDB27F009E0431EFB7272D260000000049454E44 + AE426082} + end> + Left = 224 + Top = 416 + Bitmap = {} + end + object ActionImages192: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'Total actions counter on sync checklist' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000004134944415478DAC5D66B6C53 + 651807F07F99E303F84963A228C5A1D10FB62C78194C36C0411DB0AE6B8BC3E8 + 966D864289D7B1318C9F06C1DB18DB9A89BAB111456734926C8E6D11048971C3 + 0D12EB46BB31DA75B7DE7B7A5B2F285EA86F4FA1B1B694F352C4E753FB5E9EE7 + F73F274DCA0B8542F83F8B9708C0E3F1925E7AACB878FEA30BF8FBC04349F83B + E9F0B92E385B3B7AF4E8EFC9EE259C7533007979751D19BE3BB63BF6771E6978 + F3B6006415D566726251E80A72D9F3F3D04FBA58BA3E6DB8FF3F05C8CAAA1E21 + 7B5BC88D5A72E40ED232FBEA8D41D2E64F726B2FE9F775D7678DBA94002DA519 + 6778E03DFDEFF5EFD2E5E052CFFED199603A06945F4CE67202B4962E0D899EDF + 1CB75ED31942BB6A4FD2E18ACA3D2CE09FF7C7D5C330EA0D50764CC63DDAA400 + 97591FB3FEFED987F156953229E0BDC65616F078CEB2E89AD160066375DD1C20 + 735B5774FD05450DA757F0657B7DF4F3489B2C35C032452752A9F3EDF2D400C2 + ADA90134875300384D3A02E8E234E85A597F388DA1EA9DC86969C33D4F651180 + 0CA6490B3D60FD16399C461D048A6FB84F27BD7A5665C137A1476EDB27E017C9 + A06D97C2346581D3E6A60414CBC1CC5E84603B7780B1A71BFD5B2BB070311F92 + 736AF0D2D2A03D248579DA0AA79D12B0AE5806669A0094DD9CD3F7E5AC60D367 + 35A8F0506939BBAC6D2D8279C60A97C34307C87B4E06C7F40502E8E134DFD4DB + 8D338A48FA82A148FA08A010D6591B017829019BA5B04F11C08E5E4EE98FAF8E + A47FF2800A4B4BCAA35BDA1631AC463BDC0C2D402E856D720C82976F0C30F51E + C3E0B648FA8D833F47D3B3808FC4B0991C703B2901CFC88B609D1883F095BE1B + A63FB16625FC24FD13F52A649494C56C6B3E2C80DDEC80C7354707582B93C0AA + 1F85E0D56FD93566E047A877572273EFBBB857B4217AD6DC770C67B75760C103 + 7CE4FF149B9E7D020737C26161E071FB280152092C3A2D04AF4500335F7540BD + EB0DCC4B4FC78A434708229F4D7F6A6D36FC063D96EF6FC2832F96C5F5D27E40 + 003627BCB480354512982F6A207CFD78747DF4ED5AE85B0FB2882C82B872F932 + CEED7889A45F0CD1407C7AF615346F00637761CE430B9014C234AE81A0F244CC + DE18414C5C45CCBFEB6EFC66B721B3AE094B12A4679F802A1F4E070178FD7480 + D58562982E9C8760E7C9B8FDB1776A6120887085D3E7F5274ECF029A4470326E + F8E60274805C02308E8E4058753261E3F1BA7D307CDC8CE5CDAD5824B9FE5F35 + 4DA388FC043DF0F96801623166B5C310569FBA6EF3BF8201A42DBC13C94AD3B0 + 1E6E97077E7F901250508019CD3004BBBE472AA53DB08EFC04BDF0072801399B + 36615AF30B8435A7530268EAF3E0F5CC2110B844075815068CA8531A7EADBC5E + 1F82414AC07D4BF8F031CC2D01842B78E9571A40C620D95A79CBA6B3151A5276 + 4C657302DCCEFA1BF04B98DF46BF319F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'New local files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001BC4944415478DAEDD64D4B02 + 411800E077F40FA4976ED5B50FA8535014045DFA114504758C8E515678333AD6 + 0F887E40748E8888BECD340A754DC35D0D427075D552769D8F660223CAC843CD + 5E76609861F79D97679979771731C6C0CE861C80037000B603FE3A6167C07B88 + 10F3026133AACFB8950EE80A78596F7F3724620F756CE135D52A6E801FA854C0 + F8C41858661D62F771D0F3FAB149D8F4F38AA14905B8909B771764B52750E24A + 0513329F593676BE013A039E130468A4593206EC545B2A8E8A79AB719F016ED1 + 5D6E787DA942381C8652B9B28B4C3AABFA0DE3032016740CB6377D9A4C3007EA + 52013512B71AF71520468E87682C0EA9C7548E523295F1950EA402C428AEE5F3 + 790886AF59AD5ADB02B3B0281D20E68450084542A066B50B5B009432B889DC40 + 3A93BE920ED0751D82A16BA8D6AA9B52B7401CC2B8A2C0433299E33B309DF515 + F6DF0F212FAF337E73189AB74B9E78484C5A8DFBB90C23BC0CCB7BC4C4B34FFE + 72A1B150CE8B48495428C60BEAB2B1FD35FEDF00750B43F42EC6CB4E3F074C27 + B5D552BA59FCBF00FA067A408926EA1CE1D7ACE2BAE48F91E788676D2398CE65 + 574AA1DFE2EDFF2171000EC001D80D7803D1C17C4F33DA5ACF0000000049454E + 44AE426082} + end + item + Background = clWindow + Name = 'New remote files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001B74944415478DA63FCFFFF3F + C34002C651078C3A60D40103EE006214C9B60AEA3033332C06BAF5CBC3CAF7B6 + F47340030393029B401E332B4B97BAA61AEBB5CB37181E54BE23CAD1143B40AA + 454896958961BE90B0A0B3B69E16033B072BC3DE1D07E8E3008576C1482626C6 + E9AA6A6AFC0A4AF20CFFFEFF03E2BFB47780428380C07F76C6697CBCBC914646 + 460C3CBCDC0C7FFFFD65F80BB41CDD01F2ED42BB810C176C86FE67F87F0C9856 + AC89510777805C2BBF332333F302552565192D2D4DB018C8625C0E506817FA2F + 67268ED5578F4EBD245A1D2330A1B129700875B2B3B3E75B189B338A888A802D + 83594C730700E3FBA09CB4BC9DA9B12903333313DC32FA3A4006E800A3817240 + 0303070387503B070747BEB9B119A388089DA300251132312F56555691D4D2D2 + A063224402A06CC8C0CE348B8F8F37D4C8D090811B4F360446DD7E602E76C066 + 30B07639FBB0F29D0931EAB0162A726D02B12CCCCC53D535D479E51464E95710 + 2103C91601793626C6F9C222428E5ABA742E8AE1005819C9B30915B1B032B569 + 68ABB35EBD789DCE0E80029956413D166686850CFF197F031D604655070C7883 + 64D401A30E1875C0403B000039857F505B9B11B50000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Modified local files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001C54944415478DAED96BD4B23 + 4118C69FC98A5556C45AD0DE46B43AD1D6CA3F411141494445EE9AEB24A5586A + A336E21F20D62A22727E1D9C9FF8717A684CE2A2C10F4C6667B3C9EECEB81B91 + 3B34628A73B6D96966189E79F831EF3BEF3B4408013F070900028000C07780FF + 6D38A9869709418DED889E01C6F6A4034C55A9A2A9AE160729CD722146AE291D + 8B015C2A404763034CC7C15EE20A7719BA6A5976F7A06926A4024009818442B8 + B8BDC74942A39C3B4311CA66DF004CA9E11F20A4B5A49B106B11AAB7158DCBD5 + FD0BA028EEAC40CFE7B17D7A8EAC6ECC1954EFFD0A3CFE05700FB4575696F45D + 2C1410C952F2625CAEEE3500A95020DCCC3C8AA7104F6A69CE455794B125A900 + 28AE43B87FCC62E7F054E472F9896B5DFF2E1DC0DBB3B8C0FEF119342DBDE90B + 80ED16BF83E33F4869373FE5872043BD10206798E35243E025E1C9650AE7092D + ED70D1DDCFD8C27312AAEABA5B0D5A4A19BB37B515A5F44BD1B85CDDBBCFF002 + 199DCD7BCFF01BF0F072564A21FA9DD4A8ED38C351CA665EEB3F0D20CF1DEC5E + 7AA558DF285856E79069C64BE93F05A0B9BE16FBC962338AB9CD683426B3194D + ABE11541502D6CDE17358C5F1FE9FDFF900400014000E037C013469484053332 + 2E050000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Modified remote files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001BD4944415478DAED96414B02 + 5110C7DFEC5B77D57D4F53485DB3CC22A534328B0E5DEA5279E8127D80E81844 + D7E8945D3D8560255454F40D3A4474E92B44173F4162C7140A535F4F232934F4 + 90CFCBCE6D6176E7C77F66FEB3C01843BD0C30000C0003A0E7009D24A5091997 + 014E79B69A7B2DCC2510AA0A03C8D8C88E04909CF479D5EC731EBD7D94DD5BC5 + E24BD701D29AE6C1182E9C9AB6321D1844565946F74F593100C794AE49123A0B + 0DE88E31DDC505E77352A9741F2085904DA5F450B39A37674223C86EB1D40BB3 + 4AB509E084D21B00B4DAF2AB8C3DE60AC55882A3B7CB6B00A4A9655E06F9DAEF + 750722A3C308238658B9F227408692FCA2A2B8146816F1A15442EF55D6511E70 + 4A45A7645F554C7BD14808DC4E47BD58BDB008808C8DDEEA9EFE78341C440AC6 + 8D620201C89DD7E35A9E0A873880241EE0AB05DA81595577B90AE012DD82EF87 + 234216B00497019FEE9F080C891BC2166B982256F346ACCD1AD66687BF126FB7 + 86EDF25A1B1121EB12869A11D983DC88982823FA19352B3661B8EAD3B4A5186F + 8945C662016AC12594741BD9C62025233E5DEC31FAA5063FC718E01C80F1735C + 9C4DFCE739EEF90F890160001800BD06F80475D3BB5AD716C468000000004945 + 4E44AE426082} + end + item + Background = clWindow + Name = 'Obsolete local files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000058D4944415478DAED965B6C53 + 751CC77FFF9E737A3BE774EDBAAEBBB03A57ED80462E5B57B3A951328C0FBC80 + 89C64B1449881D8319E3833C10C334C6047C2041744C839A18120C81E803A840 + 40038C3160D91C05C515B61156C6BA5BCFE9EDF49C1EFFA7AC65DDDADD8CC107 + 7F2F4DFFB7DFE7FFFBFE7EBFFF41B22CC3C334F49F024008FD6B8E7601B0DB01 + B8D4FF94DF9C00CD00AA6203B31764541EE3B8D7DE01082ED6792BCBEE422A78 + 3F21C91F34F0FCC77302249DB3ECD7E602D346A3D100BEDEFE363FC7D5E3F1E8 + 421C3F38C7B8B1DAB502DA2F74427082FBC4C3F13B7202A437998D1BEB6AAB81 + 205470A5F32ADCBEED3F86215EC4F3C23C9DAB8B58E650719165438D6B251024 + 01E170044E9E3A07A189A0E95D591ECF0AD09A749EB7A9CEBD3AB92915AE8B97 + BAC17F2F70F06E907F131F9E98CDF9E7000C69607E282DB1D6BB563901A95420 + 271270A1A30B868647BF6AE0F8B7B346600F42F90CCB04D63CE3462C43671CAA + 1C701E438C8C8DEFF304F9A659F42EC0F738F6C89262F74AA743B9957203B8D4 + E585C1A1E1C3FE20FF8A72819C12B432CC369D56BDB7B6FA8919109224C1590C + 31CEF11F3504F99D339CEB74362089E38E0A9B73D963E5E9F1EE6B7F41DF1DFF + 29EC7C5D4AC25993B0C540BFAE25A96F9E5CB19C32E5B1194E84781CCE5EE981 + 5028D2E4E1F97DA9F12F584D2581A8934E7B7999DD569A5E7FCDD707BDFD836D + 22C7BDB015804F4774AE326C35E8D7910475B866B9436731E5654044A23138D7 + E5954342EC8D2DC1D0C156BDBE0A67EB89D54B2BCC65564B7A9DEFB61FBC37FB + BDF8E4E73C1C17C890742E806432B1BA3AB58A3A51E5A8A08BCDA68C390E67F4 + F99E3FE28228ED24546887ABD24E5BF38DE9F981A161E8F6F50D0862A2B6291C + 1E9C2ED7BC0014DBC7304E0AA1DF56D96DE6328B39636E9C0F43C70D1F5463BD + CD860752DD1D1D874B376E8D48F1B8BB311ABD992D59E70D909443A3B183863A + BDBCB4D8565164C99893707510B8CC521608F2D0D1DBC72544E9294F28D40339 + 6C41008AEDD5E9966848E2677B618173598935EB9A092CCB055F7F242A096BB7 + 72913698C5160C908C04AE71BCB5C761B5143D5E9829872825E0CC8D9B1013A5 + CD0D1C7700E6B0050334E3165D64603E336AB58DEEB2125013C48C35B7B0F6D7 + 8686B366FD3F026856FABA81F9B640A77BD585C33F55F3E9F66760147A4727DA + 258E7B7E6ADD2F1A20D9D759F69095D6ADAB2A2CC858A324A077640C96E1F2A3 + A644E46A600406383EA3F32D0A600F8051CFB2C74A197DDD0AA5C6A7CCE3660E + 1D4301181384CB0C45BA6A2C05A09D7CBC94DEDF85C1FCA1F0113FC7BFDC9CE5 + F19ABB13DE4FB85F1FC57D60A981C970AEECE9C47ADF8BC6BEC34FF45B452CFD + 9E9E243F759BF301FFA6D75C1E1D83E168F4400317DABC2080E4A34211671D0C + 63ABA0F5D377C2EF410E062331E5FB603DBE9DA80CEF67E94D1AA43A50936F42 + 2C751F425220C6C67194C4DD3829B7CF0B40E97C6A04679C0C6D59A2D5CED0EE + 7A2804B8D2CFE1D0D64FD7B785653750207FEFCA3350268A4A8EC5719E5CC4C0 + BC286DC710BB6705F812213DB0ECC02A5A67B64E1E30D57CF811EA8D46BB458E + 7F3A5786EFA7E97A9250FDB852AFA32D936708CAC7081F8248424EF788AC001F + 22A42E6699CE4A8DC659AECE041810E2705D107A4186DAB96ABC45A773932479 + DCA9D5984B26E5886088F670588E26E0A52D3C7F24A7042D0C53A84270DA4151 + CEF2C9CD7E51821E41B883DB5D9D271219807958F21153C14F4B29AACC369998 + 3C86688BC662318E2F6C92E560CE244C4390A493C1635D71712426CBCF6EE379 + EF7C9CA7ECFE171279C24E129576DC27BCA208772449C99F353B6559CC093015 + 428550791CC4B58DC148FB429CA721947246F22F0C5255F10939FD6534AF46D4 + 8C5B702100DD0830B618E72953BA2961A0D7A360E8A80720AC8C65057818F63F + C0DFD833F5DFE7B0EB480000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Obsolete remote files indicator' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000058D4944415478DAED965B6C53 + 751CC77FFF9E737A3BE774EDBAAEBBB03A57ED80462E5B57B3A951328C0FBC80 + 89C64B1449881D8319E3833C10C334C6047C2041744C839A18120C81E803A840 + 40038C3160D91C05C515B61156C6BA5BCFE9EDF49C1EFFA7AC65DDDADD8CC107 + 7F2F4DFFB7DFE7FFFBFE7EBFFF41B22CC3C334F49F024008FD6B8E7601B0DB01 + B8D4FF94DF9C00CD00AA6203B31764541EE3B8D7DE01082ED6792BCBEE422A78 + 3F21C91F34F0FCC77302249DB3ECD7E602D346A3D100BEDEFE363FC7D5E3F1E8 + 421C3F38C7B8B1DAB502DA2F74427082FBC4C3F13B7202A437998D1BEB6AAB81 + 205470A5F32ADCBEED3F86215EC4F3C23C9DAB8B58E650719165438D6B251024 + 01E170044E9E3A07A189A0E95D591ECF0AD09A749EB7A9CEBD3AB92915AE8B97 + BAC17F2F70F06E907F131F9E98CDF9E7000C69607E282DB1D6BB563901A95420 + 271270A1A30B868647BF6AE0F8B7B346600F42F90CCB04D63CE3462C43671CAA + 1C701E438C8C8DEFF304F9A659F42EC0F738F6C89262F74AA743B9957203B8D4 + E585C1A1E1C3FE20FF8A72819C12B432CC369D56BDB7B6FA8919109224C1590C + 31CEF11F3504F99D339CEB74362089E38E0A9B73D963E5E9F1EE6B7F41DF1DFF + 29EC7C5D4AC25993B0C540BFAE25A96F9E5CB19C32E5B1194E84781CCE5EE981 + 5028D2E4E1F97DA9F12F584D2581A8934E7B7999DD569A5E7FCDD707BDFD836D + 22C7BDB015804F4774AE326C35E8D7910475B866B9436731E5654044A23138D7 + E5954342EC8D2DC1D0C156BDBE0A67EB89D54B2BCC65564B7A9DEFB61FBC37FB + BDF8E4E73C1C17C890742E806432B1BA3AB58A3A51E5A8A08BCDA68C390E67F4 + F99E3FE28228ED24546887ABD24E5BF38DE9F981A161E8F6F50D0862A2B6291C + 1E9C2ED7BC0014DBC7304E0AA1DF56D96DE6328B39636E9C0F43C70D1F5463BD + CD860752DD1D1D874B376E8D48F1B8BB311ABD992D59E70D909443A3B183863A + BDBCB4D8565164C99893707510B8CC521608F2D0D1DBC72544E9294F28D40339 + 6C41008AEDD5E9966848E2677B618173598935EB9A092CCB055F7F242A096BB7 + 72913698C5160C908C04AE71BCB5C761B5143D5E9829872825E0CC8D9B1013A5 + CD0D1C7700E6B0050334E3165D64603E336AB58DEEB2125013C48C35B7B0F6D7 + 8686B366FD3F026856FABA81F9B640A77BD585C33F55F3E9F66760147A4727DA + 258E7B7E6ADD2F1A20D9D759F69095D6ADAB2A2CC858A324A077640C96E1F2A3 + A644E46A600406383EA3F32D0A600F8051CFB2C74A197DDD0AA5C6A7CCE3660E + 1D4301181384CB0C45BA6A2C05A09D7CBC94DEDF85C1FCA1F0113FC7BFDC9CE5 + F19ABB13DE4FB85F1FC57D60A981C970AEECE9C47ADF8BC6BEC34FF45B452CFD + 9E9E243F759BF301FFA6D75C1E1D83E168F4400317DABC2080E4A34211671D0C + 63ABA0F5D377C2EF410E062331E5FB603DBE9DA80CEF67E94D1AA43A50936F42 + 2C751F425220C6C67194C4DD3829B7CF0B40E97C6A04679C0C6D59A2D5CED0EE + 7A2804B8D2CFE1D0D64FD7B785653750207FEFCA3350268A4A8EC5719E5CC4C0 + BC286DC710BB6705F812213DB0ECC02A5A67B64E1E30D57CF811EA8D46BB458E + 7F3A5786EFA7E97A9250FDB852AFA32D936708CAC7081F8248424EF788AC001F + 22A42E6699CE4A8DC659AECE041810E2705D107A4186DAB96ABC45A773932479 + DCA9D5984B26E5886088F670588E26E0A52D3C7F24A7042D0C53A84270DA4151 + CEF2C9CD7E51821E41B883DB5D9D271219807958F21153C14F4B29AACC369998 + 3C86688BC662318E2F6C92E560CE244C4390A493C1635D71712426CBCF6EE379 + EF7C9CA7ECFE171279C24E129576DC27BCA208772449C99F353B6559CC093015 + 428550791CC4B58DC148FB429CA721947246F22F0C5255F10939FD6534AF46D4 + 8C5B702100DD0830B618E72953BA2961A0D7A360E8A80720AC8C65057818F63F + C0DFD833F5DFE7B0EB480000000049454E44AE426082} + end> + Left = 312 + Top = 416 + Bitmap = {} + end end diff --git a/source/forms/SynchronizeChecklist.h b/source/forms/SynchronizeChecklist.h index eff024d7..0e24453c 100644 --- a/source/forms/SynchronizeChecklist.h +++ b/source/forms/SynchronizeChecklist.h @@ -49,6 +49,9 @@ class TSynchronizeChecklistDialog : public TForm TButton *ReverseButton; TAction *ReverseAction; TMenuItem *ReverseItem; + TPngImageList *ActionImages120; + TPngImageList *ActionImages144; + TPngImageList *ActionImages192; void __fastcall HelpButtonClick(TObject * Sender); void __fastcall FormShow(TObject * Sender); void __fastcall StatusBarDrawPanel(TStatusBar *StatusBar, @@ -131,6 +134,7 @@ class TSynchronizeChecklistDialog : public TForm const TSynchronizeChecklist::TItem * ChecklistItem); void __fastcall AddSubItem(TListItem * Item, int & Index, const UnicodeString & S); TRect __fastcall GetColumnHeaderRect(int Index); + virtual void __fastcall Dispatch(void * Message); static int __fastcall CompareNumber(__int64 Value1, __int64 Value2); }; //---------------------------------------------------------------------------- diff --git a/source/forms/SynchronizeProgress.cpp b/source/forms/SynchronizeProgress.cpp index 7bb2afe1..23e21af0 100644 --- a/source/forms/SynchronizeProgress.cpp +++ b/source/forms/SynchronizeProgress.cpp @@ -14,6 +14,11 @@ #pragma package(smart_init) #pragma link "PathLabel" #ifndef NO_RESOURCES +#pragma link "PngImageList" +#pragma link "TB2Dock" +#pragma link "TB2Item" +#pragma link "TB2Toolbar" +#pragma link "TBX" #pragma resource "*.dfm" #endif //--------------------------------------------------------------------------- @@ -28,16 +33,17 @@ __fastcall TSynchronizeProgressForm::TSynchronizeProgressForm(TComponent * Owner FMinimizedByMe = false; FCompareOnly = CompareOnly; UseSystemSettings(this); + HideComponentsPanel(this); + SelectScaledImageList(ImageList); if (!AllowMinimize) { - CancelButton->Left = CancelButton->Left + - (MinimizeButton->Left - CancelButton->Left) / 2; - MinimizeButton->Visible = false; + MinimizeItem->Visible = false; } else { SetGlobalMinimizeHandler(this, GlobalMinimize); } + FFrameAnimation.Init(AnimationPaintBox, L"SynchronizeDirectories"); } //--------------------------------------------------------------------------- __fastcall TSynchronizeProgressForm::~TSynchronizeProgressForm() @@ -45,6 +51,7 @@ __fastcall TSynchronizeProgressForm::~TSynchronizeProgressForm() ClearGlobalMinimizeHandler(GlobalMinimize); ReleaseAsModal(this, FShowAsModalStorage); + UnhookFormActivation(this); if (IsApplicationMinimized() && FMinimizedByMe) { @@ -63,20 +70,23 @@ void __fastcall TSynchronizeProgressForm::Start() Caption = FormatFormCaption(this, LoadStr(FCompareOnly ? SYNCHRONIZE_PROGRESS_COMPARE : SYNCHRONIZE_PROGRESS_SYNCHRONIZE2)); if (!IsApplicationMinimized()) { - // Do not showing the progress when the application is minimized, + // Do not show the progress when the application is minimized, // otherwise the form popups up unminimized. // Quick and dirty hack: with this form, we do not support showing it // once the application restores, // otherwise we would have to synchronize it somehow with the TProgressForm, // not to show it over the TProgressForm + // See solution in TMessageForm::CMShowingChanged. ShowAsModal(this, FShowAsModalStorage); + HookFormActivation(this); } + FFrameAnimation.Start(); } //--------------------------------------------------------------------------- void __fastcall TSynchronizeProgressForm::SetData(const UnicodeString LocalDirectory, const UnicodeString RemoteDirectory, bool & Continue) { - assert(FStarted); + DebugAssert(FStarted); LocalDirectoryLabel->Caption = LocalDirectory; RemoteDirectoryLabel->Caption = RemoteDirectory; Continue = !FCanceled; @@ -92,7 +102,7 @@ void __fastcall TSynchronizeProgressForm::UpdateControls() FElapsed = Now() - FStartTime; } TimeElapsedLabel->Caption = FormatDateTimeSpan(Configuration->TimeFormat, FElapsed); - CancelButton->Enabled = !FCanceled; + CancelItem->Enabled = !FCanceled; } //--------------------------------------------------------------------------- void __fastcall TSynchronizeProgressForm::CancelOperation() @@ -101,22 +111,11 @@ void __fastcall TSynchronizeProgressForm::CancelOperation() UpdateControls(); } //--------------------------------------------------------------------------- -void __fastcall TSynchronizeProgressForm::CancelButtonClick(TObject * /*Sender*/) -{ - CancelOperation(); -} -//--------------------------------------------------------------------------- void __fastcall TSynchronizeProgressForm::UpdateTimerTimer(TObject * /*Sender*/) { UpdateControls(); } //--------------------------------------------------------------------------- -void __fastcall TSynchronizeProgressForm::MinimizeButtonClick( - TObject * Sender) -{ - CallGlobalMinimizeHandler(Sender); -} -//--------------------------------------------------------------------------- void __fastcall TSynchronizeProgressForm::GlobalMinimize(TObject * /*Sender*/) { ApplicationMinimize(); @@ -136,3 +135,24 @@ void __fastcall TSynchronizeProgressForm::Dispatch(void * AMessage) } } //--------------------------------------------------------------------------- +void __fastcall TSynchronizeProgressForm::CancelItemClick(TObject * /*Sender*/) +{ + CancelOperation(); +} +//--------------------------------------------------------------------------- +void __fastcall TSynchronizeProgressForm::MinimizeItemClick(TObject * Sender) +{ + CallGlobalMinimizeHandler(Sender); +} +//--------------------------------------------------------------------------- +void __fastcall TSynchronizeProgressForm::FormKeyDown( + TObject * /*Sender*/, WORD & Key, TShiftState /*Shift*/) +{ + // We do not have Cancel button, so we have to handle Esc key explicitly + if (Key == VK_ESCAPE) + { + CancelOperation(); + Key = 0; + } +} +//--------------------------------------------------------------------------- diff --git a/source/forms/SynchronizeProgress.dfm b/source/forms/SynchronizeProgress.dfm index 1af1b445..89ffa7ef 100644 --- a/source/forms/SynchronizeProgress.dfm +++ b/source/forms/SynchronizeProgress.dfm @@ -4,33 +4,34 @@ object SynchronizeProgressForm: TSynchronizeProgressForm BorderIcons = [biSystemMenu, biMinimize, biMaximize, biHelp] BorderStyle = bsDialog Caption = 'Synchronization X' - ClientHeight = 127 - ClientWidth = 382 - Color = clBtnFace + ClientHeight = 193 + ClientWidth = 424 + Color = clWindow ParentFont = True OldCreateOrder = False Position = poOwnerFormCenter + OnKeyDown = FormKeyDown DesignSize = ( - 382 - 127) + 424 + 193) PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel - Left = 8 + Left = 49 Top = 9 Width = 28 Height = 13 Caption = 'Local:' end object Label2: TLabel - Left = 8 + Left = 49 Top = 29 Width = 41 Height = 13 Caption = 'Remote:' end object RemoteDirectoryLabel: TPathLabel - Left = 101 + Left = 141 Top = 30 Width = 273 Height = 13 @@ -42,7 +43,7 @@ object SynchronizeProgressForm: TSynchronizeProgressForm AutoSize = False end object LocalDirectoryLabel: TPathLabel - Left = 100 + Left = 141 Top = 9 Width = 273 Height = 13 @@ -53,7 +54,7 @@ object SynchronizeProgressForm: TSynchronizeProgressForm AutoSize = False end object StartTimeLabel: TLabel - Left = 100 + Left = 141 Top = 49 Width = 81 Height = 13 @@ -61,51 +62,915 @@ object SynchronizeProgressForm: TSynchronizeProgressForm Caption = '00:00:00' end object Label4: TLabel - Left = 8 + Left = 49 Top = 49 Width = 51 Height = 13 Caption = 'Start time:' end object Label3: TLabel - Left = 8 + Left = 49 Top = 69 Width = 66 Height = 13 Caption = 'Time elapsed:' end object TimeElapsedLabel: TLabel - Left = 100 + Left = 141 Top = 69 Width = 79 Height = 13 AutoSize = False Caption = '00:00:00' end - object CancelButton: TButton - Left = 222 - Top = 94 - Width = 73 - Height = 25 - Anchors = [akRight, akBottom] - Caption = 'Cancel' + object AnimationPaintBox: TPaintBox + Left = 8 + Top = 11 + Width = 32 + Height = 32 + end + object ToolbarPanel: TPanel + Left = 49 + Top = 92 + Width = 185 + Height = 28 + Anchors = [akLeft, akBottom] + BevelOuter = bvNone TabOrder = 0 - OnClick = CancelButtonClick - end - object MinimizeButton: TButton - Left = 301 - Top = 94 - Width = 73 - Height = 25 - Anchors = [akRight, akBottom] - Caption = '&Minimize' + object Dock: TTBXDock + Left = 0 + Top = 0 + Width = 185 + Height = 26 + Color = clWindow + object Toolbar: TTBXToolbar + Left = 0 + Top = 0 + DockMode = dmCannotFloatOrChangeDocks + DockPos = -42 + DragHandleStyle = dhNone + Images = ImageList + ParentShowHint = False + ShowHint = True + TabOrder = 0 + Color = clWindow + object CancelItem: TTBXItem + Caption = 'Cancel' + ImageIndex = 0 + OnClick = CancelItemClick + end + object MinimizeItem: TTBXItem + Caption = '&Minimize' + ImageIndex = 1 + OnClick = MinimizeItemClick + end + end + end + end + object ComponentsPanel: TPanel + Left = 0 + Top = 127 + Width = 424 + Height = 66 + Align = alBottom + BevelEdges = [beTop] + BevelKind = bkFlat + BevelOuter = bvNone TabOrder = 1 - OnClick = MinimizeButtonClick end object UpdateTimer: TTimer Enabled = False OnTimer = UpdateTimerTimer - Left = 41 - Top = 89 + Left = 393 + Top = 140 + end + object ImageList: TPngImageList + PngImages = < + item + Background = clWindow + Name = 'Cancel operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001CC4944415478DAA593DF4A02 + 4114C6CFCC2EFD8176B552E80F84054521D42B642FE0950A81105D6875D12B54 + AFD0455937055D6975D10B54AF5020056241100659EA6E51983BD3997567594D + BAF15C2C3B33DFF7DB9DEFCC10CE3974534400082170A069014465F1FDAE6418 + 9BDB00CC2BC4311DD5F55DD4CF118044DA34CBB6573C0E753D0004AE438A12FE + C4F12B632725C35C9190A6593B0E529AF4E3C70A9695070E8B29C3284BC06548 + 5522338A623B6E1A0D172200D2BCA0AA40715CB42C2836AC2B042C494026A8D0 + B414782102E035BB6B9C1DA5AAC6AA0DD821441DD3B5B3614AA3F31EE12D0A45 + B5CFBD3176E137CC788CF3BA1B620EA0A7AA6BB92142A26134605020FB23DFF3 + B6999F0F9AE6721CA0EE862800A22404838ACE3A1070CCF768AE70DE12EE1F80 + 4C1B01C9E936400101D5FF00D2ACA3790ABBD1690B0F98BEE181B8000CD1366B + 689EF0989FD020AA7DCE74205B9CB3661B7DBEBD0102EBE394BAC267C6E08343 + 5600702DD1616D3F55AB6DB807C94F4904DB680B5E50F0C5B9DD2A0110C1F663 + B0230E04C384778BB51C24FB28E3FEC33F28F876CCA255DEEEF421A417F3AA32 + D67A94E56542FA29A7F0385833D7A4599680547C5A863098C4BF8CB55CA66EEA + 176D0342F00799C52C0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Minimize' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000254944415478DA63FCFFFF3F + 03258071D480510386A9018C8C8C784D04AA67A4AD01740F0300C63437E1204F + 574C0000000049454E44AE426082} + end> + Left = 40 + Top = 140 + Bitmap = {} + end + object ImageList120: TPngImageList + Height = 20 + Width = 20 + PngImages = < + item + Background = clWindow + Name = 'Cancel operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001EA4944415478DAADD45B4BDC + 401407F0996C06925DE32D482BABA22208C50BF8A060E943BF4C15DB27FD1CFA + 228A7E9A7D1005A52FDA2208E265455444DB6EBABB81CC26FE67CD2CE324F102 + CE4B3693737EC9D99939348A22F29E830A9052DA9A58779C2F11E767DFEBF58B + E712D76CBB9F9AE6E082E76DC9B9A6A5821B4E61D1A2C6721091BB300CBFCE55 + ABBFD2B0CD4261DC308C12A3C4F5A37069DEABAE244081D9C0A619231EE6F603 + 9E8A4A6C9299AE83BCBD2020F5186D81EBEDF9D90235B7678059F1D7DE866102 + 55B11EC368C6F9C8DF055A8DF8E7854A6DA7096ED8F6A0C9D84F355047C5BD8E + 3D89E17CEA5BAD566E952CDF3E9192708004F13BEB99AC22B128121D43A2AB24 + 22A379D5E77E6B7F490254D14F66CEED560075DC033BE48DC4A2A5822A3A0AB4 + 4B43FF003B4AC15E058E00ECD4C0BF008FDF024A6C3867B81D1925FF037AD208 + 5F2E5960D81BA52160ED0A568917459F3B054AB216456203C01C25D143625924 + 62643ED3B78DD8D806367611096D4AF9FFF1EC324E208F3BBB9419A36E6C71F4 + 2C1CBD22DE6EC6C135CC5F6925C92A7A81E6E3382E407CA9AF1E3DD91C189AC3 + 47A001026F344C5D34817E00CA707F0D2CD09B83DABE4CA00DB42FF242FB1268 + 0EED8B67B52F3944830D83A0FCC3F7CFC93363D5B286728CF5A536D8F71C0F95 + 71C8E88800DD1A0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Minimize' + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D + 0D000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000002D4944415478DA63FCFFFF3F + 033501E3A881A3068E1A386AE0C018C8C8C848920D40FD8CF43590EA5E1E7406 + 02001CD843D9E9F4EAFC0000000049454E44AE426082} + end> + Left = 136 + Top = 140 + Bitmap = {} + end + object ImageList144: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + Background = clWindow + Name = 'Cancel operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000001E94944415478DABD95CF2FC4 + 4014C7675A87C5B6EBD74142C44688A422117177E3AF70C499FB0A77CED6D15F + C1CD5D44222442840889C362B7F5EBA01DDFA95666A733AD8DD4BBECF6F5BDCF + 67B6D37D43196324CFA0FF26A094869F55CBEA2394EC32C20E97DD97B5DF40B6 + EDE23A25748630B2B0E479359EFBE18A82104ED8C1B0693A75E49F03B6B5EC79 + ABA970CBDAEC36E84A17FA6F7CFF0CA4592E4908766C3B8497011F6D6B233EF2 + 479F9FA992183E8D7A13824BD45F479245D7AD3509AA256BAF6C987363288E23 + 4D22C3E3B8E092C0DF5F6A78F3B260BD9B1A15B94125D1C17F6A59B001C15A62 + 0F321B21E1D759357C21CA4D8E57D705C09402700C000FDDBDBAF02BB5025132 + 699A09100F3977E2FB4DF04C412C2941322149C4E0F053C01B8A972053104B6C + 481C480CE97E80BE33C05DCD6BDC92605C2338FF8B80C32D4A56461570517209 + 89C7486B8F88C38B808F48F020AA95735790BC4892D4D7B413F0B2028E31107E + D7DD7B15244A410C1F52006E2300BFCEAA51FED1F8A8E820B432681889C6BB20 + 206FC2EAF8423A20D1D612961C157CD8F55263AE074DE273BC47C3BB6213B9A4 + 1D9201D48BFBF784FA471624875D3CAE21704A68E2F9070D5C96F4479206EA21 + 508F6BF1C081C0F940FE23052E4A0A9014BE05FA0327F72333AFC85DF0052305 + FDE0031CA4D30000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Minimize' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB0000002F4944415478DAEDCD010D00 + 200CC440EA5FF4830758C89656408F24AB32040404040404BE00C095787E0C07 + 5ED71FD84ED953D17B83BCD30000000049454E44AE426082} + end> + Left = 224 + Top = 140 + Bitmap = {} + end + object ImageList192: TPngImageList + Height = 32 + Width = 32 + PngImages = < + item + Background = clWindow + Name = 'Cancel operation' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000002C74944415478DAEDD6416B13 + 411880E199D90DDA64B3A9874A95AAA1E841A1622BDEC48327513CF42408A5C5 + 43EABFB0FE0AAD0751845E738A782EDEC4564450504AD5A2620F9A4D3655B233 + E3F76D76C2B2DDD99D04B11E3A97866677DE27ED4C76A89492ECE5A0FB80FF0E + 40290D7F2E11C28E94CB0F0925B352C8EBB7DBEDD541265E2E972FC2BD0D2249 + FD6BAB750BE613F8FB5DBD3440147F34C6E85CD5B2C87A10F85D21AF9A22306E + 53F26CDAB64B9B9C936D219F00620111B980BB94F6E3E76C3B04FD1482AC1922 + 547C06E2A38C859FF85510F41177A414998007AE8BF1791557C30471DF712E15 + 187DAAE26AC4108F6B9EB7900DA8B8CD0BB6ED1E8A4D6082D0C5D5F801F7BE08 + 02AFD6F42A3980D2354BB2FAF942A1309A810824B9B2D86A3D3789E33D2FBBDD + 2EA762B6D6F41B9900FCB32FBB456304DCCF4CE38B5EA761B40BC2C504080688 + 19405452266EC2C4F07FF5F135AC9792EE9A35888B28AED68311208E9806849B + 12F0446F41EBDE5B4FC40706C411676D3B15913630FE3A0876C58702C4115380 + 28E7205A107FC3B9CF09BF918C0F0D8823CE642030FE16E241C677C5D0807B8E + 7319BFE14E03C0D100DA0078879F3EB645FF0A00F7B90D5BED9465951C0DB08F + 80F9DE67200606A8F849889772E26AF830E7070D6220808A4F42BC9812EF44F7 + EADEDB4841180354BC9A11DF80AD86AF27615DE8AED94C208C0018B7207E02E2 + 232913EFE0C41097B0CF7B93B07A1510BA6B3F024244885C003CCFC3F831C6B4 + F14F9C8771B5CF718B22E2B86569119F85F0396C4F40AC6602F0713CC1989B36 + D12FB8762B11EFC323C404200E6A105B42183C8EE14052A4647E1CF67A7C4162 + FC8B269E441C4D20B0F10DBE233A92E41F48D4910C10736311E2374E90134F22 + C6017100EEC5F9B77B71B32359FC503A02087C007D378C27118701810FA69D28 + BE6472284D3B9613C26F9AC6E30842AC95818FE5FF7AEC03F61CF007B5A8A2DF + 467EC58F0000000049454E44AE426082} + end + item + Background = clWindow + Name = 'Minimize' + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A + F4000000097048597300000EC400000EC401952B0E1B00000A4F694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53675453E9163DF7 + DEF4424B8880944B6F5215082052428B801491262A2109104A8821A1D91551C1 + 114545041BC8A088038E8E808C15512C0C8A0AD807E421A28E83A3888ACAFBE1 + 7BA36BD6BCF7E6CDFEB5D73EE7ACF39DB3CF07C0080C9648335135800CA9421E + 11E083C7C4C6E1E42E40810A2470001008B3642173FD230100F87E3C3C2B22C0 + 07BE000178D30B0800C04D9BC0301C87FF0FEA42995C01808401C07491384B08 + 801400407A8E42A600404601809D98265300A0040060CB6362E300502D006027 + 7FE6D300809DF8997B01005B94211501A09100201365884400683B00ACCF568A + 450058300014664BC43900D82D00304957664800B0B700C0CE100BB200080C00 + 305188852900047B0060C8232378008499001446F2573CF12BAE10E72A000078 + 99B23CB9243945815B082D710757572E1E28CE49172B14366102619A402EC279 + 99193281340FE0F3CC0000A0911511E083F3FD78CE0EAECECE368EB60E5F2DEA + BF06FF226262E3FEE5CFAB70400000E1747ED1FE2C2FB31A803B06806DFEA225 + EE04685E0BA075F78B66B20F40B500A0E9DA57F370F87E3C3C45A190B9D9D9E5 + E4E4D84AC4425B61CA577DFE67C25FC057FD6CF97E3CFCF7F5E0BEE22481325D + 814704F8E0C2CCF44CA51CCF92098462DCE68F47FCB70BFFFC1DD322C44962B9 + 582A14E35112718E449A8CF332A52289429229C525D2FF64E2DF2CFB033EDF35 + 00B06A3E017B912DA85D6303F64B27105874C0E2F70000F2BB6FC1D428080380 + 6883E1CF77FFEF3FFD47A02500806649927100005E44242E54CAB33FC7080000 + 44A0812AB0411BF4C1182CC0061CC105DCC10BFC6036844224C4C24210420A64 + 801C726029AC82422886CDB01D2A602FD4401D34C051688693700E2EC255B80E + 3D700FFA61089EC128BC81090441C808136121DA8801628A58238E08179985F8 + 21C14804128B2420C9881451224B91354831528A542055481DF23D720239875C + 46BA913BC8003282FC86BC47319481B2513DD40CB543B9A8371A8446A20BD064 + 74319A8F16A09BD072B41A3D8C36A1E7D0AB680FDA8F3E43C730C0E8180733C4 + 6C302EC6C342B1382C099363CBB122AC0CABC61AB056AC03BB89F563CFB17704 + 128145C0093604774220611E4148584C584ED848A8201C243411DA0937090384 + 51C2272293A84BB426BA11F9C4186232318758482C23D6128F132F107B8843C4 + 37241289433227B9900249B1A454D212D246D26E5223E92CA99B34481A2393C9 + DA646BB20739942C202BC885E49DE4C3E433E41BE421F25B0A9D624071A4F853 + E22852CA6A4A19E510E534E5066598324155A39A52DDA8A15411358F5A42ADA1 + B652AF5187A81334759A39CD8316494BA5ADA295D31A681768F769AFE874BA11 + DD951E4E97D057D2CBE947E897E803F4770C0D861583C7886728199B18071867 + 197718AF984CA619D38B19C754303731EB98E7990F996F55582AB62A7C1591CA + 0A954A9526951B2A2F54A9AAA6AADEAA0B55F355CB548FA95E537DAE46553353 + E3A909D496AB55AA9D50EB531B5367A93BA887AA67A86F543FA47E59FD890659 + C34CC34F43A451A0B15FE3BCC6200B6319B3782C216B0DAB86758135C426B1CD + D97C762ABB98FD1DBB8B3DAAA9A13943334A3357B352F394663F07E39871F89C + 744E09E728A797F37E8ADE14EF29E2291BA6344CB931655C6BAA96979658AB48 + AB51AB47EBBD36AEEDA79DA6BD45BB59FB810E41C74A275C2747678FCE059DE7 + 53D953DDA70AA7164D3D3AF5AE2EAA6BA51BA1BB4477BF6EA7EE989EBE5E809E + 4C6FA7DE79BDE7FA1C7D2FFD54FD6DFAA7F5470C5806B30C2406DB0CCE183CC5 + 35716F3C1D2FC7DBF151435DC34043A561956197E18491B9D13CA3D5468D460F + 8C69C65CE324E36DC66DC6A326062621264B4DEA4DEE9A524DB9A629A63B4C3B + 4CC7CDCCCDA2CDD699359B3D31D732E79BE79BD79BDFB7605A785A2CB6A8B6B8 + 6549B2E45AA659EEB6BC6E855A3959A558555A5DB346AD9DAD25D6BBADBBA711 + A7B94E934EAB9ED667C3B0F1B6C9B6A9B719B0E5D806DBAEB66DB67D61676217 + 67B7C5AEC3EE93BD937DBA7D8DFD3D070D87D90EAB1D5A1D7E73B472143A563A + DE9ACE9CEE3F7DC5F496E92F6758CF10CFD833E3B613CB29C4699D539BD34767 + 1767B97383F3888B894B82CB2E973E2E9B1BC6DDC8BDE44A74F5715DE17AD2F5 + 9D9BB39BC2EDA8DBAFEE36EE69EE87DC9FCC349F299E593373D0C3C843E051E5 + D13F0B9F95306BDFAC7E4F434F8167B5E7232F632F9157ADD7B0B7A577AAF761 + EF173EF63E729FE33EE33C37DE32DE595FCC37C0B7C8B7CB4FC36F9E5F85DF43 + 7F23FF64FF7AFFD100A78025016703898141815B02FBF87A7C21BF8E3F3ADB65 + F6B2D9ED418CA0B94115418F82AD82E5C1AD2168C8EC90AD21F7E798CE91CE69 + 0E85507EE8D6D00761E6618BC37E0C2785878557863F8E7088581AD131973577 + D1DC4373DF44FA449644DE9B67314F39AF2D4A352A3EAA2E6A3CDA37BA34BA3F + C62E6659CCD5589D58496C4B1C392E2AAE366E6CBEDFFCEDF387E29DE20BE37B + 17982FC85D7079A1CEC2F485A716A92E122C3A96404C884E3894F041102AA816 + 8C25F21377258E0A79C21DC267222FD136D188D8435C2A1E4EF2482A4D7A92EC + 91BC357924C533A52CE5B98427A990BC4C0D4CDD9B3A9E169A76206D323D3ABD + 31839291907142AA214D93B667EA67E66676CBAC6585B2FEC56E8BB72F1E9507 + C96BB390AC05592D0AB642A6E8545A28D72A07B267655766BFCD89CA3996AB9E + 2BCDEDCCB3CADB90379CEF9FFFED12C212E192B6A5864B572D1D58E6BDAC6A39 + B23C7179DB0AE315052B865606AC3CB88AB62A6DD54FABED5797AE7EBD267A4D + 6B815EC1CA82C1B5016BEB0B550AE5857DEBDCD7ED5D4F582F59DFB561FA869D + 1B3E15898AAE14DB1797157FD828DC78E51B876FCABF99DC94B4A9ABC4B964CF + 66D266E9E6DE2D9E5B0E96AA97E6970E6E0DD9DAB40DDF56B4EDF5F645DB2F97 + CD28DBBB83B643B9A3BF3CB8BC65A7C9CECD3B3F54A454F454FA5436EED2DDB5 + 61D7F86ED1EE1B7BBCF634ECD5DB5BBCF7FD3EC9BEDB5501554DD566D565FB49 + FBB3F73FAE89AAE9F896FB6D5DAD4E6D71EDC703D203FD07230EB6D7B9D4D51D + D23D54528FD62BEB470EC71FBEFE9DEF772D0D360D558D9CC6E223704479E4E9 + F709DFF71E0D3ADA768C7BACE107D31F761D671D2F6A429AF29A469B539AFB5B + 625BBA4FCC3ED1D6EADE7AFC47DB1F0F9C343C59794AF354C969DAE982D39367 + F2CF8C9D959D7D7E2EF9DC60DBA2B67BE763CEDF6A0F6FEFBA1074E1D245FF8B + E73BBC3BCE5CF2B874F2B2DBE51357B8579AAF3A5F6DEA74EA3CFE93D34FC7BB + 9CBB9AAEB95C6BB9EE7ABDB57B66F7E91B9E37CEDDF4BD79F116FFD6D59E393D + DDBDF37A6FF7C5F7F5DF16DD7E7227FDCECBBBD97727EEADBC4FBC5FF440ED41 + D943DD87D53F5BFEDCD8EFDC7F6AC077A0F3D1DC47F7068583CFFE91F58F0F43 + 058F998FCB860D86EB9E383E3939E23F72FDE9FCA743CF64CF269E17FEA2FECB + AE17162F7EF8D5EBD7CED198D1A197F29793BF6D7CA5FDEAC0EB19AFDBC6C2C6 + 1EBEC97833315EF456FBEDC177DC771DEFA3DF0F4FE47C207F28FF68F9B1F553 + D0A7FB93199393FF040398F3FC63332DDB000000384944415478DAEDCE010D00 + 200C0431DEBFE88109D8487A06AEA9AAD5590000000000000000000000460292 + 5C519D5700FE00BC0CA01DB00180D66FC1F6701C660000000049454E44AE4260 + 82} + end> + Left = 312 + Top = 140 + Bitmap = {} end end diff --git a/source/forms/SynchronizeProgress.h b/source/forms/SynchronizeProgress.h index 5691f668..a2218a3f 100644 --- a/source/forms/SynchronizeProgress.h +++ b/source/forms/SynchronizeProgress.h @@ -8,6 +8,13 @@ #include #include "PathLabel.hpp" #include +#include "PngImageList.hpp" +#include "TB2Dock.hpp" +#include "TB2Item.hpp" +#include "TB2Toolbar.hpp" +#include "TBX.hpp" +#include +#include //--------------------------------------------------------------------------- class TSynchronizeProgressForm : public TForm { @@ -20,12 +27,22 @@ class TSynchronizeProgressForm : public TForm TLabel *Label4; TLabel *Label3; TLabel *TimeElapsedLabel; - TButton *CancelButton; TTimer *UpdateTimer; - TButton *MinimizeButton; - void __fastcall CancelButtonClick(TObject *Sender); + TPngImageList *ImageList; + TPanel *ToolbarPanel; + TTBXDock *Dock; + TTBXToolbar *Toolbar; + TTBXItem *CancelItem; + TTBXItem *MinimizeItem; + TPaintBox *AnimationPaintBox; + TPanel *ComponentsPanel; + TPngImageList *ImageList120; + TPngImageList *ImageList144; + TPngImageList *ImageList192; void __fastcall UpdateTimerTimer(TObject *Sender); - void __fastcall MinimizeButtonClick(TObject *Sender); + void __fastcall MinimizeItemClick(TObject *Sender); + void __fastcall CancelItemClick(TObject *Sender); + void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift); public: __fastcall TSynchronizeProgressForm(TComponent * Owner, bool AllowMinimize, @@ -49,6 +66,7 @@ class TSynchronizeProgressForm : public TForm void * FShowAsModalStorage; bool FMinimizedByMe; bool FCompareOnly; + TFrameAnimation FFrameAnimation; void __fastcall UpdateControls(); void __fastcall GlobalMinimize(TObject * Sender); diff --git a/source/makefile.dragext64 b/source/makefile.dragext64 deleted file mode 100644 index bb3ba60f..00000000 --- a/source/makefile.dragext64 +++ /dev/null @@ -1,29 +0,0 @@ -#------------------------------------------------------------------------------ -!ifndef ROOT -ROOT = $(MAKEDIR)\.. -!endif -#------------------------------------------------------------------------------ -!ifndef DRAGEXT64CL -DRAGEXT64CL = cl.exe -!endif -#------------------------------------------------------------------------------ -INCLUDE = /I$(DRAGEXT64INCL) -LIBPATH = /LIBPATH:$(DRAGEXT64LIB) -OUTPUT = DragExt64 - -ALLLIB = version.lib AdvAPI32.Lib Shell32.Lib Ole32.Lib bufferoverflowu.lib - -CFLAGS1 = /EHsc /GS- /Zi /LD /DWIN32 /DNDEBUG /D_WINDOWS /D_USRDLL /DUNICODE /D_UNICODE /wd4068 -CFLAGS2 = /Fe$(DRAGEXT64OUTPUTPATH)\$(OUTPUT).dll /Fo$(DRAGEXT64OUTPUTPATH)\$(OUTPUT).obj -CFLAGS = $(CFLAGS1) $(CFLAGS2) $(INCLUDE) -LFLAGS = $(LIBPATH) /MACHINE:AMD64 /DEF:dragext\$(OUTPUT).def - -SOURCES = dragext\DragExt.cpp - -$(DRAGEXT64OUTPUTPATH)\$(OUTPUT).dll: $(DRAGEXT64OUTPUTPATH)\$(OUTPUT).res - $(DRAGEXT64CL) /nologo $(CFLAGS) $(SOURCES) /link $(LFLAGS) $(ALLLIB) $** - -$(DRAGEXT64OUTPUTPATH)\$(OUTPUT).res: $(OUTPUT).rc - $(ROOT)\bin\brcc32 -fo$< $** - -default: DragExt64.dll diff --git a/source/packages/filemng/CustomDirView.pas b/source/packages/filemng/CustomDirView.pas index 160419bd..5ec81f68 100644 --- a/source/packages/filemng/CustomDirView.pas +++ b/source/packages/filemng/CustomDirView.pas @@ -93,6 +93,8 @@ TStatusFileInfo = record TMatchMaskEvent = procedure(Sender: TObject; FileName: string; Directory: Boolean; Size: Int64; Modification: TDateTime; Masks: string; var Matches: Boolean; AllowImplicitMatches: Boolean) of object; TDirViewGetOverlayEvent = procedure(Sender: TObject; Item: TListItem; var Indexes: Word) of object; TDirViewUpdateStatusBarEvent = procedure(Sender: TObject; const FileInfo: TStatusFileInfo) of object; + TDirViewBusy = procedure(Sender: TObject; Busy: Integer; var State: Boolean) of object; + TBusyOperation = reference to procedure; type TCustomDirView = class; @@ -197,6 +199,7 @@ TCustomDirView = class(TCustomIEListView) FScrollOnDragOver: TListViewScrollOnDragOver; FStatusFileInfo: TStatusFileInfo; FDoubleBufferedScrollingWorkaround: Boolean; + FOnBusy: TDirViewBusy; procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY; procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN; @@ -304,7 +307,6 @@ TCustomDirView = class(TCustomIEListView) Criterias: TCompareCriterias); procedure ReloadForce(CacheIcons : Boolean); procedure RetryRename(NewName: string); - procedure SelectFiles(Filter: TFileFilter; Select: Boolean); procedure SetAddParentDir(Value: Boolean); virtual; procedure SetDimmHiddenFiles(Value: Boolean); virtual; procedure SetItemImageIndex(Item: TListItem; Index: Integer); virtual; abstract; @@ -327,8 +329,8 @@ TCustomDirView = class(TCustomIEListView) procedure SetWatchForChanges(Value: Boolean); virtual; function TargetHasDropHandler(Item: TListItem; Effect: Integer): Boolean; virtual; procedure UpdatePathLabel; dynamic; + procedure UpdatePathLabelCaption; dynamic; procedure UpdateStatusBar; dynamic; - procedure WndProc(var Message: TMessage); override; function FileNameMatchesMasks(FileName: string; Directory: Boolean; Size: Int64; Modification: TDateTime; Masks: string; AllowImplicitMatches: Boolean): Boolean; function EnableDragOnClick: Boolean; override; procedure SetMask(Value: string); virtual; @@ -340,6 +342,14 @@ TCustomDirView = class(TCustomIEListView) procedure EnsureSelectionRedrawn; function HiddenCount: Integer; virtual; abstract; function FilteredCount: Integer; virtual; abstract; + function DoBusy(Busy: Integer): Boolean; + function StartBusy: Boolean; + procedure EndBusy; + function IsBusy: Boolean; + procedure BusyOperation(Operation: TBusyOperation); + procedure DoDisplayPropertiesMenu; + procedure DoExecute(Item: TListItem); + procedure DoExecuteParentDirectory; property ImageList16: TImageList read FImageList16; property ImageList32: TImageList read FImageList32; public @@ -352,6 +362,7 @@ TCustomDirView = class(TCustomIEListView) function AnyFileSelected(OnlyFocused: Boolean; FilesOnly: Boolean; FocusedFileOnlyWhenFocused: Boolean): Boolean; function DoSelectByMask(Select: Boolean): Boolean; override; + procedure SelectFiles(Filter: TFileFilter; Select: Boolean); procedure ExecuteHomeDirectory; virtual; abstract; procedure ExecuteParentDirectory; virtual; abstract; procedure ExecuteRootDirectory; virtual; abstract; @@ -489,6 +500,7 @@ TCustomDirView = class(TCustomIEListView) property PathLabel: TCustomPathLabel read FPathLabel write SetPathLabel; property ShowHiddenFiles: Boolean read FShowHiddenFiles write SetShowHiddenFiles default True; property OnUpdateStatusBar: TDirViewUpdateStatusBarEvent read FOnUpdateStatusBar write FOnUpdateStatusBar; + property OnBusy: TDirViewBusy read FOnBusy write FOnBusy; {Watch current directory for filename changes (create, rename, delete files)} property WatchForChanges: Boolean read FWatchForChanges write SetWatchForChanges default False; end; @@ -772,7 +784,20 @@ function OverlayImageList(Size: Integer): TImageList; end; end; {GetOverlayBitmap} +var + PixelsPerInch: Integer; + Factor: Integer; begin + // Hardcoded according to sizes of overlays we have in resources + PixelsPerInch := Screen.PixelsPerInch; + if PixelsPerInch >= 192 then Factor := 200 + else + if PixelsPerInch >= 144 then Factor := 150 + else + if PixelsPerInch >= 120 then Factor := 124 + else Factor := 100; + + Size := MulDiv(Size, Factor, 100); Result := TImageList.CreateSize(Size, Size); Result.DrawingStyle := dsTransparent; Result.BkColor := clNone; @@ -1400,6 +1425,22 @@ procedure TCustomDirView.WMKeyDown(var Message: TWMKeyDown); end; end; +procedure TCustomDirView.DoDisplayPropertiesMenu; +begin + if not IsBusy then + DisplayPropertiesMenu; +end; + +procedure TCustomDirView.DoExecute(Item: TListItem); +begin + BusyOperation(procedure begin Execute(Item); end); +end; + +procedure TCustomDirView.DoExecuteParentDirectory; +begin + BusyOperation(ExecuteParentDirectory); +end; + procedure TCustomDirView.KeyDown(var Key: Word; Shift: TShiftState); begin if Valid and (not IsEditing) and (not Loading) then @@ -1410,9 +1451,9 @@ procedure TCustomDirView.KeyDown(var Key: Word; Shift: TShiftState); if Assigned(ItemFocused) then begin Key := 0; - if (Key = VK_RETURN) and (Shift = [ssAlt]) then DisplayPropertiesMenu + if (Key = VK_RETURN) and (Shift = [ssAlt]) then DoDisplayPropertiesMenu else - if (Key <> VK_RETURN) or (Shift = []) then Execute(ItemFocused); + if (Key <> VK_RETURN) or (Shift = []) then DoExecute(ItemFocused); end; end else @@ -1420,7 +1461,7 @@ procedure TCustomDirView.KeyDown(var Key: Word; Shift: TShiftState); (not IsRoot) then begin Key := 0; - ExecuteParentDirectory; + DoExecuteParentDirectory; end else if ((Key = VK_UP) and (ssAlt in Shift)) and @@ -1432,13 +1473,13 @@ procedure TCustomDirView.KeyDown(var Key: Word; Shift: TShiftState); // We could obtain the value programatically using // MultiByteToWideChar(CP_OEMCP, MB_USEGLYPHCHARS, "\x8", 1, ...) FNextCharToIgnore := $25D8; - ExecuteParentDirectory; + DoExecuteParentDirectory; end else if (Key = 220 { backslash }) and (ssCtrl in Shift) and (not IsRoot) then begin Key := 0; - ExecuteRootDirectory; + BusyOperation(ExecuteRootDirectory); end else if (Key = VK_LEFT) and (ssAlt in Shift) then @@ -1497,7 +1538,7 @@ procedure TCustomDirView.KeyUp(var Key: Word; Shift: TShiftState); begin if Key = VK_APPS then begin - if not Loading then + if (not Loading) and (not IsBusy) then begin if MarkedCount > 0 then begin @@ -1535,15 +1576,25 @@ function TCustomDirView.TargetHasDropHandler(Item: TListItem; Effect: Integer): end; end; +procedure TCustomDirView.UpdatePathLabelCaption; +begin + PathLabel.Caption := PathName; + PathLabel.Mask := Mask; +end; + procedure TCustomDirView.UpdatePathLabel; begin if Assigned(PathLabel) then begin if csDesigning in ComponentState then - PathLabel.Caption := PathLabel.Name - else - PathLabel.Caption := PathName; - PathLabel.Mask := Mask; + begin + PathLabel.Caption := PathLabel.Name; + PathLabel.Mask := ''; + end + else + begin + UpdatePathLabelCaption; + end; PathLabel.UpdateStatus; end; end; { UpdatePathLabel } @@ -1635,8 +1686,8 @@ procedure TCustomDirView.WMLButtonDblClk(var Message: TWMLButtonDblClk); if Assigned(ItemFocused) and (not Loading) and (GetItemAt(Message.XPos, Message.YPos) = ItemFocused) then begin - if GetKeyState(VK_MENU) < 0 then DisplayPropertiesMenu - else Execute(ItemFocused); + if GetKeyState(VK_MENU) < 0 then DoDisplayPropertiesMenu + else DoExecute(ItemFocused); end; end; @@ -2694,13 +2745,13 @@ procedure TCustomDirView.WMAppCommand(var Message: TMessage); if Command = _APPCOMMAND_BROWSER_REFRESH then begin Message.Result := 1; - ReloadDirectory; + BusyOperation(ReloadDirectory); end else if Command = _APPCOMMAND_BROWSER_HOME then begin Message.Result := 1; - ExecuteHomeDirectory; + BusyOperation(ExecuteHomeDirectory); end else inherited; end @@ -2713,17 +2764,6 @@ procedure TCustomDirView.CMColorChanged(var Message: TMessage); ForceColorChange(Self); end; -procedure TCustomDirView.WndProc(var Message: TMessage); -begin - case Message.Msg of - WM_SETFOCUS, WM_KILLFOCUS: - begin - UpdatePathLabel; - end; - end; - inherited; -end; { WndProc } - function TCustomDirView.FindFileItem(FileName: string): TListItem; type TFileNameCompare = function(const S1, S2: string): Integer; @@ -2818,11 +2858,16 @@ procedure TCustomDirView.DoHistoryGo(Index: Integer); var Cancel: Boolean; begin - Cancel := False; - if Assigned(OnHistoryGo) then - OnHistoryGo(Self, Index, Cancel); + if StartBusy then + try + Cancel := False; + if Assigned(OnHistoryGo) then + OnHistoryGo(Self, Index, Cancel); - if not Cancel then HistoryGo(Index); + if not Cancel then HistoryGo(Index); + finally + EndBusy; + end; end; procedure TCustomDirView.HistoryGo(Index: Integer); @@ -3176,12 +3221,14 @@ procedure TCustomDirView.WMSetFocus(var Message: TWMSetFocus); begin inherited; EnsureSelectionRedrawn; + UpdatePathLabel; end; procedure TCustomDirView.WMKillFocus(var Message: TWMKillFocus); begin inherited; EnsureSelectionRedrawn; + UpdatePathLabel; end; procedure TCustomDirView.EnsureSelectionRedrawn; @@ -3206,6 +3253,40 @@ procedure TCustomDirView.EnsureSelectionRedrawn; end; end; +function TCustomDirView.DoBusy(Busy: Integer): Boolean; +begin + Result := True; + if Assigned(OnBusy) then + begin + OnBusy(Self, Busy, Result); + end; +end; + +function TCustomDirView.StartBusy: Boolean; +begin + Result := DoBusy(1); +end; + +function TCustomDirView.IsBusy: Boolean; +begin + Result := DoBusy(0); +end; + +procedure TCustomDirView.EndBusy; +begin + DoBusy(-1); +end; + +procedure TCustomDirView.BusyOperation(Operation: TBusyOperation); +begin + if StartBusy then + try + Operation; + finally + EndBusy; + end; +end; + initialization DropSourceControl := nil; diff --git a/source/packages/filemng/DirImg.res b/source/packages/filemng/DirImg.res index e05b626d..8632243f 100644 Binary files a/source/packages/filemng/DirImg.res and b/source/packages/filemng/DirImg.res differ diff --git a/source/packages/filemng/DirView.pas b/source/packages/filemng/DirView.pas index e83431ae..bbddb105 100644 --- a/source/packages/filemng/DirView.pas +++ b/source/packages/filemng/DirView.pas @@ -385,6 +385,7 @@ TDirView = class(TCustomDirView) property OnHistoryChange; property OnHistoryGo; property OnPathChange; + property OnBusy; property ColumnClick; property MultiSelect; diff --git a/source/packages/filemng/DirViewColProperties.pas b/source/packages/filemng/DirViewColProperties.pas index 8ba77e7a..f1f8c1b1 100644 --- a/source/packages/filemng/DirViewColProperties.pas +++ b/source/packages/filemng/DirViewColProperties.pas @@ -42,8 +42,6 @@ TDirViewColProperties = class(TCustomDirViewColProperties) public constructor Create(DirView: TCustomListView); published - property MaxWidth; - property MinWidth; property SortAscending; property SortDirColumn: TDirViewCol read GetSortDirColumn write SetSortDirColumn default dvName; diff --git a/source/packages/filemng/DriveView.pas b/source/packages/filemng/DriveView.pas index 125e925e..1ba07615 100644 --- a/source/packages/filemng/DriveView.pas +++ b/source/packages/filemng/DriveView.pas @@ -1346,7 +1346,7 @@ procedure TDriveView.RefreshRootNodes(dsFlags: Integer); if WasValid then {Drive has been removed => delete rootnode:} begin - if Directory[1] = Drive then + if (Directory <> '') and (Directory[1] = Drive) then begin Directory := NodePathName(DriveStatus[Drive].RootNode.GetPrevSibling); if not Assigned(Selected) then diff --git a/source/packages/filemng/UnixDirViewColProperties.pas b/source/packages/filemng/UnixDirViewColProperties.pas index 4a707e52..94946300 100644 --- a/source/packages/filemng/UnixDirViewColProperties.pas +++ b/source/packages/filemng/UnixDirViewColProperties.pas @@ -41,8 +41,6 @@ TUnixDirViewColProperties = class(TCustomDirViewColProperties) public constructor Create(DirView: TCustomListView); published - property MaxWidth; - property MinWidth; property SortAscending; property SortDirColumn: TUnixDirViewCol read GetSortDirColumn write SetSortDirColumn default uvName; @@ -91,7 +89,7 @@ TUnixDirViewColProperties = class(TCustomDirViewColProperties) property TypeWidth: Integer index uvType read GetWidths write SetWidths stored StoreWidth; property TypeVisible: Boolean index uvType read GetVisible write SetVisible default True; property TypeAlignment: TAlignment index uvType read GetAlignments write SetAlignments stored StoreAlignment; - end; { TDirViewColProperties } + end; { TUnixDirViewColProperties } implementation diff --git a/source/packages/jcl/JclBase.pas b/source/packages/jcl/JclBase.pas index 9326883b..fc8099db 100644 --- a/source/packages/jcl/JclBase.pas +++ b/source/packages/jcl/JclBase.pas @@ -61,9 +61,9 @@ interface // Version const JclVersionMajor = 2; // 0=pre-release|beta/1, 2, ...=final - JclVersionMinor = 6; // Fifth minor release since JCL 1.90 + JclVersionMinor = 7; // Fifth minor release since JCL 1.90 JclVersionRelease = 0; // 0: pre-release|beta/ 1: release - JclVersionBuild = 5178; // build number, days since march 1, 2000 + JclVersionBuild = 5676; // build number, days since march 1, 2000 JclVersion = (JclVersionMajor shl 24) or (JclVersionMinor shl 16) or (JclVersionRelease shl 15) or (JclVersionBuild shl 0); diff --git a/source/packages/jcl/JclDebug.pas b/source/packages/jcl/JclDebug.pas index b440deef..c1d023ee 100644 --- a/source/packages/jcl/JclDebug.pas +++ b/source/packages/jcl/JclDebug.pas @@ -77,7 +77,9 @@ procedure AssertKindOf(const ClassType: TClass; const Obj: TObject); overload; // use TraceMsg // procedure Trace(const Msg: string); procedure TraceMsg(const Msg: string); +{$IFNDEF WINSCP} procedure TraceFmt(const Fmt: string; const Args: array of const); +{$ENDIF} procedure TraceLoc(const Msg: string); procedure TraceLocFmt(const Fmt: string; const Args: array of const); @@ -2335,15 +2337,15 @@ function InsertDebugDataIntoExecutableFile(const ExecutableFileName: TFileName; MapFileSize, JclDebugDataSize, Dummy); end; -// TODO 64 bit version function InsertDebugDataIntoExecutableFile(const ExecutableFileName: TFileName; BinDebug: TJclBinDebugGenerator; out LinkerBugUnit: string; out MapFileSize, JclDebugDataSize, LineNumberErrors: Integer): Boolean; var ImageStream: TStream; NtHeaders32: TImageNtHeaders32; + NtHeaders64: TImageNtHeaders64; ImageSectionHeaders: TImageSectionHeaderArray; - NtHeaders32Position, ImageSectionHeadersPosition, JclDebugSectionPosition: Int64; + NtHeadersPosition, ImageSectionHeadersPosition, JclDebugSectionPosition: Int64; JclDebugSection: TImageSectionHeader; LastSection: PImageSectionHeader; VirtualAlignedSize: DWORD; @@ -2377,75 +2379,126 @@ function InsertDebugDataIntoExecutableFile(const ExecutableFileName: TFileName; ImageStream := TFileStream.Create(ExecutableFileName, fmOpenReadWrite or fmShareExclusive); try try - if PeMapImgTarget(ImageStream, 0) = taWin32 then - begin - MapFileSize := BinDebug.Stream.Size; - JclDebugDataSize := BinDebug.DataStream.Size; - NtHeaders32Position := PeMapImgNtHeaders32(ImageStream, 0, NtHeaders32); - Assert(NtHeaders32Position <> -1); - ImageSectionHeadersPosition := PeMapImgSections32(ImageStream, NtHeaders32Position, NtHeaders32, ImageSectionHeaders); - Assert(ImageSectionHeadersPosition <> -1); - // Check whether there is not a section with the name already. If so, return True (#0000069) - if PeMapImgFindSection(ImageSectionHeaders, JclDbgDataResName) <> -1 then - begin - Result := True; - Exit; - end; + MapFileSize := BinDebug.Stream.Size; + JclDebugDataSize := BinDebug.DataStream.Size; + VirtualAlignedSize := JclDebugDataSize; + + // JCLDEBUG + ResetMemory(JclDebugSection, SizeOf(JclDebugSection)); + // JCLDEBUG Virtual Size + JclDebugSection.Misc.VirtualSize := JclDebugDataSize; + // JCLDEBUG Raw data size + JclDebugSection.SizeOfRawData := JclDebugDataSize; + // JCLDEBUG Section name + Move(JclDbgDataResName, JclDebugSection.Name, IMAGE_SIZEOF_SHORT_NAME); + // JCLDEBUG Characteristics flags + JclDebugSection.Characteristics := IMAGE_SCN_MEM_READ or IMAGE_SCN_CNT_INITIALIZED_DATA; + + case PeMapImgTarget(ImageStream, 0) of + taWin32: + begin + NtHeadersPosition := PeMapImgNtHeaders32(ImageStream, 0, NtHeaders32); + Assert(NtHeadersPosition <> -1); + ImageSectionHeadersPosition := PeMapImgSections32(ImageStream, NtHeadersPosition, NtHeaders32, ImageSectionHeaders); + Assert(ImageSectionHeadersPosition <> -1); + // Check whether there is not a section with the name already. If so, return True (0000069) + if PeMapImgFindSection(ImageSectionHeaders, JclDbgDataResName) <> -1 then + begin + Result := True; + Exit; + end; + + JclDebugSectionPosition := ImageSectionHeadersPosition + (SizeOf(ImageSectionHeaders[0]) * Length(ImageSectionHeaders)); + LastSection := @ImageSectionHeaders[High(ImageSectionHeaders)]; + + // Increase the number of sections + Inc(NtHeaders32.FileHeader.NumberOfSections); + + // JCLDEBUG Virtual Address + JclDebugSection.VirtualAddress := LastSection^.VirtualAddress + LastSection^.Misc.VirtualSize; + // JCLDEBUG Physical Offset + JclDebugSection.PointerToRawData := LastSection^.PointerToRawData + LastSection^.SizeOfRawData; + + // JCLDEBUG section rounding : + RoundUpToAlignment(JclDebugSection.VirtualAddress, NtHeaders32.OptionalHeader.SectionAlignment); + RoundUpToAlignment(JclDebugSection.PointerToRawData, NtHeaders32.OptionalHeader.FileAlignment); + RoundUpToAlignment(JclDebugSection.SizeOfRawData, NtHeaders32.OptionalHeader.FileAlignment); + + // Size of virtual data area + RoundUpToAlignment(VirtualAlignedSize, NtHeaders32.OptionalHeader.SectionAlignment); + // Update Size of Image + Inc(NtHeaders32.OptionalHeader.SizeOfImage, VirtualAlignedSize); + // Update Initialized data size + Inc(NtHeaders32.OptionalHeader.SizeOfInitializedData, JclDebugSection.SizeOfRawData); + + // write NT Headers 32 + if (ImageStream.Seek(NtHeadersPosition, soBeginning) <> NtHeadersPosition) or + (ImageStream.Write(NtHeaders32, SizeOf(NtHeaders32)) <> SizeOf(NtHeaders32)) then + raise EJclPeImageError.CreateRes(@SWriteError); + end; - JclDebugSectionPosition := ImageSectionHeadersPosition + (SizeOf(ImageSectionHeaders[0]) * Length(ImageSectionHeaders)); - LastSection := @ImageSectionHeaders[High(ImageSectionHeaders)]; - - // Increase the number of sections - Inc(NtHeaders32.FileHeader.NumberOfSections); - - ResetMemory(JclDebugSection, SizeOf(JclDebugSection)); - // JCLDEBUG Virtual Address - JclDebugSection.VirtualAddress := LastSection^.VirtualAddress + LastSection^.Misc.VirtualSize; - RoundUpToAlignment(JclDebugSection.VirtualAddress, NtHeaders32.OptionalHeader.SectionAlignment); - // JCLDEBUG Physical Offset - JclDebugSection.PointerToRawData := LastSection^.PointerToRawData + LastSection^.SizeOfRawData; - RoundUpToAlignment(JclDebugSection.PointerToRawData, NtHeaders32.OptionalHeader.FileAlignment); - // JCLDEBUG Section name - StrPLCopyA(PAnsiChar(@JclDebugSection.Name), JclDbgDataResName, IMAGE_SIZEOF_SHORT_NAME); - // JCLDEBUG Characteristics flags - JclDebugSection.Characteristics := IMAGE_SCN_MEM_READ or IMAGE_SCN_CNT_INITIALIZED_DATA; - - // Size of virtual data area - JclDebugSection.Misc.VirtualSize := JclDebugDataSize; - VirtualAlignedSize := JclDebugDataSize; - RoundUpToAlignment(VirtualAlignedSize, NtHeaders32.OptionalHeader.SectionAlignment); - // Update Size of Image - Inc(NtHeaders32.OptionalHeader.SizeOfImage, VirtualAlignedSize); - // Raw data size - JclDebugSection.SizeOfRawData := JclDebugDataSize; - RoundUpToAlignment(JclDebugSection.SizeOfRawData, NtHeaders32.OptionalHeader.FileAlignment); - // Update Initialized data size - Inc(NtHeaders32.OptionalHeader.SizeOfInitializedData, JclDebugSection.SizeOfRawData); - - // write NT Headers 32 - if (ImageStream.Seek(NtHeaders32Position, soBeginning) <> NtHeaders32Position) or - (ImageStream.Write(NtHeaders32, SizeOf(NtHeaders32)) <> SizeOf(NtHeaders32)) then - raise EJclPeImageError.CreateRes(@SWriteError); - - // write section header - if (ImageStream.Seek(JclDebugSectionPosition, soBeginning) <> JclDebugSectionPosition) or - (ImageStream.Write(JclDebugSection, SizeOf(JclDebugSection)) <> SizeOf(JclDebugSection)) then - raise EJclPeImageError.CreateRes(@SWriteError); - - // Fill data to alignment - NeedFill := INT_PTR(JclDebugSection.SizeOfRawData) - JclDebugDataSize; - - // Note: Delphi linker seems to generate incorrect (unaligned) size of - // the executable when adding TD32 debug data so the position could be - // behind the size of the file then. - ImageStream.Seek({0 +} JclDebugSection.PointerToRawData, soBeginning); - ImageStream.CopyFrom(BinDebug.DataStream, 0); - X := 0; - for I := 1 to NeedFill do - ImageStream.WriteBuffer(X, 1); - end + taWin64: + begin + NtHeadersPosition := PeMapImgNtHeaders64(ImageStream, 0, NtHeaders64); + Assert(NtHeadersPosition <> -1); + ImageSectionHeadersPosition := PeMapImgSections64(ImageStream, NtHeadersPosition, NtHeaders64, ImageSectionHeaders); + Assert(ImageSectionHeadersPosition <> -1); + // Check whether there is not a section with the name already. If so, return True (0000069) + if PeMapImgFindSection(ImageSectionHeaders, JclDbgDataResName) <> -1 then + begin + Result := True; + Exit; + end; + + JclDebugSectionPosition := ImageSectionHeadersPosition + (SizeOf(ImageSectionHeaders[0]) * Length(ImageSectionHeaders)); + LastSection := @ImageSectionHeaders[High(ImageSectionHeaders)]; + + // Increase the number of sections + Inc(NtHeaders64.FileHeader.NumberOfSections); + + // JCLDEBUG Virtual Address + JclDebugSection.VirtualAddress := LastSection^.VirtualAddress + LastSection^.Misc.VirtualSize; + // JCLDEBUG Physical Offset + JclDebugSection.PointerToRawData := LastSection^.PointerToRawData + LastSection^.SizeOfRawData; + + // JCLDEBUG section rounding : + RoundUpToAlignment(JclDebugSection.VirtualAddress, NtHeaders64.OptionalHeader.SectionAlignment); + RoundUpToAlignment(JclDebugSection.PointerToRawData, NtHeaders64.OptionalHeader.FileAlignment); + RoundUpToAlignment(JclDebugSection.SizeOfRawData, NtHeaders64.OptionalHeader.FileAlignment); + + // Size of virtual data area + RoundUpToAlignment(VirtualAlignedSize, NtHeaders64.OptionalHeader.SectionAlignment); + // Update Size of Image + Inc(NtHeaders64.OptionalHeader.SizeOfImage, VirtualAlignedSize); + // Update Initialized data size + Inc(NtHeaders64.OptionalHeader.SizeOfInitializedData, JclDebugSection.SizeOfRawData); + + // write NT Headers 64 + if (ImageStream.Seek(NtHeadersPosition, soBeginning) <> NtHeadersPosition) or + (ImageStream.Write(NtHeaders64, SizeOf(NtHeaders64)) <> SizeOf(NtHeaders64)) then + raise EJclPeImageError.CreateRes(@SWriteError); + end; else Result := False; + Exit; + end; + + // write section header + if (ImageStream.Seek(JclDebugSectionPosition, soBeginning) <> JclDebugSectionPosition) or + (ImageStream.Write(JclDebugSection, SizeOf(JclDebugSection)) <> SizeOf(JclDebugSection)) then + raise EJclPeImageError.CreateRes(@SWriteError); + + // Fill data to alignment + NeedFill := INT_PTR(JclDebugSection.SizeOfRawData) - JclDebugDataSize; + + // Note: Delphi linker seems to generate incorrect (unaligned) size of + // the executable when adding TD32 debug data so the position could be + // behind the size of the file then. + ImageStream.Seek({0 +} JclDebugSection.PointerToRawData, soBeginning); + ImageStream.CopyFrom(BinDebug.DataStream, 0); + X := 0; + for I := 1 to NeedFill do + ImageStream.WriteBuffer(X, 1); except Result := False; end; @@ -2709,7 +2762,7 @@ procedure TJclBinDebugGenerator.CreateData; FDataStream.Size := FDataStream.Position; // Update the file header - FDataStream.Seek(0, soFromBeginning); + FDataStream.Seek(0, soBeginning); FDataStream.WriteBuffer(FileHeader, SizeOf(FileHeader)); finally WordStream.Free; @@ -3232,7 +3285,7 @@ procedure TJclLocationInfoEx.Fill(AOptions: TJclLocationInfoListOptions); FUnitVersionRevision := UnitVersion.Revision; FValues := FValues + [lievUnitVersionInfo]; Break; - end; +end; end; if lievUnitVersionInfo in FValues then Break; @@ -4023,7 +4076,7 @@ function TJclDebugInfoSymbols.GetLocationInfo(const Addr: Pointer; Info.Address := Addr; Info.BinaryFileName := FileName; Info.OffsetFromProcName := Displacement; - JclPeImage.UnDecorateSymbolName(string(WideString(SymbolW^.Name)), Info.ProcedureName, UNDNAME_NAME_ONLY or UNDNAME_NO_ARGUMENTS); + JclPeImage.UnDecorateSymbolName(string(PWideChar(@SymbolW^.Name[0])), Info.ProcedureName, UNDNAME_NAME_ONLY or UNDNAME_NO_ARGUMENTS); end; finally FreeMem(SymbolW); @@ -4046,7 +4099,7 @@ function TJclDebugInfoSymbols.GetLocationInfo(const Addr: Pointer; Info.Address := Addr; Info.BinaryFileName := FileName; Info.OffsetFromProcName := Displacement; - JclPeImage.UnDecorateSymbolName(string(AnsiString(SymbolA^.Name)), Info.ProcedureName, UNDNAME_NAME_ONLY or UNDNAME_NO_ARGUMENTS); + JclPeImage.UnDecorateSymbolName(string(PAnsiChar(@SymbolA^.Name[0])), Info.ProcedureName, UNDNAME_NAME_ONLY or UNDNAME_NO_ARGUMENTS); end; finally FreeMem(SymbolA); @@ -5118,23 +5171,33 @@ destructor TJclStackInfoList.Destroy; {$IFDEF CPU64} procedure TJclStackInfoList.CaptureBackTrace; +const + InternalSkipFrames = 1; // skip this method var - CapturedFramesCount: Word; - BackTrace: array [0..62] of Pointer; + BackTrace: array [0..127] of Pointer; + MaxFrames: Integer; Hash: DWORD; I: Integer; StackInfo: TStackInfo; + CapturedFramesCount: Word; begin + if JclCheckWinVersion(6, 0) then + MaxFrames := Length(BackTrace) + else + begin + // For XP and 2003 sum of FramesToSkip and FramesToCapture must be lower than 63 + MaxFrames := 62 - InternalSkipFrames; + end; + ResetMemory(BackTrace, SizeOf(BackTrace)); - //TODO: For XP and 2003 sum of FramesToSkip and FramesToCapture must be lower - // than 63, but we could use higher values for newer OS versions - CapturedFramesCount := CaptureStackBackTrace(10, 52, @BackTrace, Hash); + CapturedFramesCount := CaptureStackBackTrace(InternalSkipFrames, MaxFrames, @BackTrace, Hash); + + ResetMemory(StackInfo, SizeOf(StackInfo)); for I := 0 to CapturedFramesCount - 1 do begin - ResetMemory(StackInfo, SizeOf(StackInfo)); StackInfo.CallerAddr := TJclAddr(BackTrace[I]); StackInfo.Level := I; - StoreToList(StackInfo); + StoreToList(StackInfo); // skips all frames with a level less than "IgnoreLevels" end; end; {$ENDIF CPU64} @@ -5932,7 +5995,7 @@ function JclStopExceptionTracking: Boolean; tracking count is set back to 0. If the current tracking count is > 1 it is simply decremented.} if TrackingActiveCount = 1 then begin - Result := JclRemoveExceptNotifier(DoExceptNotify); + Result := JclRemoveExceptNotifier(DoExceptNotify) and JclUnhookExceptions; if Result then Dec(TrackingActiveCount); end @@ -6807,6 +6870,73 @@ function IsHandleValid(Handle: THandle): Boolean; {$ENDIF MSWINDOWS} +{$IFDEF HAS_EXCEPTION_STACKTRACE} +function GetExceptionStackInfo(P: PExceptionRecord): Pointer; +const + cDelphiException = $0EEDFADE; +var + Stack: TJclStackInfoList; + Str: TStringList; + Trace: String; + Sz: Integer; +begin + if P^.ExceptionCode = cDelphiException then + Stack := JclCreateStackList(False, 3, P^.ExceptAddr) + else + Stack := JclCreateStackList(False, 3, P^.ExceptionAddress); + try + Str := TStringList.Create; + try + Stack.AddToStrings(Str, True, True, True, True); + Trace := Str.Text; + finally + FreeAndNil(Str); + end; + finally + FreeAndNil(Stack); + end; + + if Trace <> '' then + begin + Sz := (Length(Trace) + 1) * SizeOf(Char); + GetMem(Result, Sz); + Move(Pointer(Trace)^, Result^, Sz); + end + else + Result := nil; +end; + +function GetStackInfoString(Info: Pointer): string; +begin + Result := PChar(Info); +end; + +procedure CleanUpStackInfo(Info: Pointer); +begin + FreeMem(Info); +end; + +procedure SetupExceptionProcs; +begin + if not Assigned(Exception.GetExceptionStackInfoProc) then + begin + Exception.GetExceptionStackInfoProc := GetExceptionStackInfo; + Exception.GetStackInfoStringProc := GetStackInfoString; + Exception.CleanUpStackInfoProc := CleanUpStackInfo; + end; +end; + +procedure ResetExceptionProcs; +begin + if @Exception.GetExceptionStackInfoProc = @GetExceptionStackInfo then + begin + Exception.GetExceptionStackInfoProc := nil; + Exception.GetStackInfoStringProc := nil; + Exception.CleanUpStackInfoProc := nil; + end; +end; +{$ENDIF HAS_EXCEPTION_STACKTRACE} + initialization DebugInfoCritSect := TJclCriticalSection.Create; GlobalModulesList := TJclGlobalModulesList.Create; @@ -6815,8 +6945,14 @@ initialization {$IFDEF UNITVERSIONING} RegisterUnitVersion(HInstance, UnitVersioning); {$ENDIF UNITVERSIONING} + {$IFDEF HAS_EXCEPTION_STACKTRACE} + SetupExceptionProcs; + {$ENDIF HAS_EXCEPTION_STACKTRACE} finalization + {$IFDEF HAS_EXCEPTION_STACKTRACE} + ResetExceptionProcs; + {$ENDIF HAS_EXCEPTION_STACKTRACE} {$IFDEF UNITVERSIONING} UnregisterUnitVersion(HInstance); {$ENDIF UNITVERSIONING} diff --git a/source/packages/jcl/JclFileUtils.pas b/source/packages/jcl/JclFileUtils.pas index 6d7a3609..f5184776 100644 --- a/source/packages/jcl/JclFileUtils.pas +++ b/source/packages/jcl/JclFileUtils.pas @@ -2681,8 +2681,8 @@ function PathGetRelativePath(Origin, Destination: string): string; try // NOTE: DO NOT USE DELIMITER AND DELIMITEDTEXT FROM // TSTRINGS, THEY WILL SPLIT PATHS WITH SPACES !!!! - StrToStrings(Origin, DirDelimiter, OrigList); - StrToStrings(Destination, DirDelimiter, DestList); + StrToStrings(Origin, DirDelimiter, OrigList, False); + StrToStrings(Destination, DirDelimiter, DestList, False); begin // find the first directory that is not the same DiffIndex := OrigList.Count; diff --git a/source/packages/jcl/JclHookExcept.pas b/source/packages/jcl/JclHookExcept.pas index b4e7112e..5721bf09 100644 --- a/source/packages/jcl/JclHookExcept.pas +++ b/source/packages/jcl/JclHookExcept.pas @@ -366,7 +366,7 @@ procedure HookedRaiseException(ExceptionCode, ExceptionFlags, NumberOfArguments: begin if ((ExceptionFlags = cNonContinuable) or (ExceptionFlags = cNonContinuableException)) and (ExceptionCode = cDelphiException) and - (NumberOfArguments in [DelphiNumberOfArguments,CBuilderNumberOfArguments]) + (NumberOfArguments in [DelphiNumberOfArguments, CBuilderNumberOfArguments]) //TODO: The difference for Win64 is bigger than 100 Byte and the comment of JVCS revision 0.3 of // JclDebug.pas, where HookedRaiseException has been added by Petr, isn't very informative {$IFDEF CPU32} diff --git a/source/packages/jcl/JclPeImage.pas b/source/packages/jcl/JclPeImage.pas index dd500472..bdb20c91 100644 --- a/source/packages/jcl/JclPeImage.pas +++ b/source/packages/jcl/JclPeImage.pas @@ -6527,17 +6527,16 @@ class function TJclPeMapImgHooks.ReplaceImport(Base: Pointer; const ModuleName: {$IFDEF CPU32} FromProcDebugThunk32, ImportThunk32: PWin9xDebugThunk32; IsThunked: Boolean; + NtHeader: PImageNtHeaders32; + ImportEntry: PImageThunkData32; {$ENDIF CPU32} - NtHeader32: PImageNtHeaders32; + {$IFDEF CPU64} + NtHeader: PImageNtHeaders64; + ImportEntry: PImageThunkData64; + {$ENDIF CPU64} ImportDir: TImageDataDirectory; ImportDesc: PImageImportDescriptor; CurrName, RefName: PAnsiChar; - {$IFDEF CPU32} - ImportEntry32: PImageThunkData32; - {$ENDIF CPU32} - {$IFDEF CPU64} - ImportEntry64: PImageThunkData64; - {$ENDIF CPU64} FoundProc: Boolean; WrittenBytes: Cardinal; UTF8Name: TUTF8String; @@ -6546,11 +6545,14 @@ class function TJclPeMapImgHooks.ReplaceImport(Base: Pointer; const ModuleName: {$IFDEF CPU32} FromProcDebugThunk32 := PWin9xDebugThunk32(FromProc); IsThunked := (Win32Platform <> VER_PLATFORM_WIN32_NT) and IsWin9xDebugThunk(FromProcDebugThunk32); + NtHeader := PeMapImgNtHeaders32(Base); {$ENDIF CPU32} - NtHeader32 := PeMapImgNtHeaders32(Base); - if NtHeader32 = nil then + {$IFDEF CPU64} + NtHeader := PeMapImgNtHeaders64(Base); + {$ENDIF CPU64} + if NtHeader = nil then Exit; - ImportDir := NtHeader32.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT]; + ImportDir := NtHeader.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT]; if ImportDir.VirtualAddress = 0 then Exit; ImportDesc := PImageImportDescriptor(TJclAddr(Base) + ImportDir.VirtualAddress); @@ -6563,31 +6565,26 @@ class function TJclPeMapImgHooks.ReplaceImport(Base: Pointer; const ModuleName: if StrICompA(CurrName, RefName) = 0 then begin {$IFDEF CPU32} - ImportEntry32 := PImageThunkData32(TJclAddr(Base) + ImportDesc^.FirstThunk); - while ImportEntry32^.Function_ <> 0 do + ImportEntry := PImageThunkData32(TJclAddr(Base) + ImportDesc^.FirstThunk); + {$ENDIF CPU32} + {$IFDEF CPU64} + ImportEntry := PImageThunkData64(TJclAddr(Base) + ImportDesc^.FirstThunk); + {$ENDIF CPU64} + while ImportEntry^.Function_ <> 0 do begin + {$IFDEF CPU32} if IsThunked then begin - ImportThunk32 := PWin9xDebugThunk32(ImportEntry32^.Function_); + ImportThunk32 := PWin9xDebugThunk32(ImportEntry^.Function_); FoundProc := IsWin9xDebugThunk(ImportThunk32) and (ImportThunk32^.Addr = FromProcDebugThunk32^.Addr); end else - FoundProc := Pointer(ImportEntry32^.Function_) = FromProc; + {$ENDIF CPU32} + FoundProc := Pointer(ImportEntry^.Function_) = FromProc; if FoundProc then - Result := WriteProtectedMemory(@ImportEntry32^.Function_, @ToProc, SizeOf(ToProc), WrittenBytes); - Inc(ImportEntry32); + Result := WriteProtectedMemory(@ImportEntry^.Function_, @ToProc, SizeOf(ToProc), WrittenBytes); + Inc(ImportEntry); end; - {$ENDIF CPU32} - {$IFDEF CPU64} - ImportEntry64 := PImageThunkData64(TJclAddr(Base) + ImportDesc^.FirstThunk); - while ImportEntry64^.Function_ <> 0 do - begin - FoundProc := Pointer(ImportEntry64^.Function_) = FromProc; - if FoundProc then - Result := WriteProtectedMemory(@ImportEntry64^.Function_, @ToProc, SizeOf(ToProc), WrittenBytes); - Inc(ImportEntry64); - end; - {$ENDIF CPU64} end; Inc(ImportDesc); end; @@ -6939,7 +6936,7 @@ function UndecorateSymbolName(const DecoratedName: string; out UnMangled: string if Assigned(UndecorateSymbolNameW) then begin SetLength(WideBuffer, BufferSize); - Res := UnDecorateSymbolNameW(PWideChar(WideString(DecoratedName)), PWideChar(WideBuffer), BufferSize, Flags); + Res := UnDecorateSymbolNameW(PWideChar({$IFNDEF UNICODE}WideString{$ENDIF}(DecoratedName)), PWideChar(WideBuffer), BufferSize, Flags); if Res > 0 then begin StrResetLength(WideBuffer); @@ -6959,6 +6956,10 @@ function UndecorateSymbolName(const DecoratedName: string; out UnMangled: string Result := True; end; end; + + // For some functions UnDecorateSymbolName returns 'long' + if Result and (UnMangled = 'long') then + UnMangled := DecoratedName; end; function PeUnmangleName(const Name: string; out Unmangled: string): TJclPeUmResult; diff --git a/source/packages/jcl/JclResources.pas b/source/packages/jcl/JclResources.pas index b1a1399c..e084e180 100644 --- a/source/packages/jcl/JclResources.pas +++ b/source/packages/jcl/JclResources.pas @@ -967,6 +967,7 @@ interface RsCompressionWriteNotSupported = 'write is not an supported operation.'; RsCompressionResetNotSupported = 'reset is not an supported operation.'; RsCompressionSeekNotSupported = 'seek is not an supported operation.'; + RsCompressionUserAbort = 'User abort'; RsCompressionZLibZErrNo = 'zlib returned: ERRNO'; RsCompressionZLibZStreamError = 'zlib returned: Stream error'; RsCompressionZLibZDataError = 'zlib returned: data error'; @@ -1005,6 +1006,7 @@ interface RsCompressionUnknownError = 'Unknown error'; RsCompression7zLoadError = 'Sevenzip: Failed to load 7z.dll'; RsCompression7zReturnError = 'Sevenzip: Error result (%.8x) "%s"'; + RsCompression7zUnassignedStream = 'Sevenzip: Stream object is not assigned'; RsCompression7zOutArchiveError = 'Sevenzip: Failed to get out archive interface for class %s'; RsCompression7zInArchiveError = 'Sevenzip: Failed to get in archive interface for class %s'; RsCompression7zUnknownValueType = 'Sevenzip: Unknown value type (%d) for property ID %d'; @@ -1938,6 +1940,8 @@ interface RsOSVersionWin81 = 'Windows 8.1'; RsOSVersionWin81RT = 'Windows RT 8.1'; RsOSVersionWinServer2012R2 = 'Windows Server 2012 R2'; + RsOSVersionWin10 = 'Windows 10'; + RsOSVersionWinServer2016 = 'Windows Server 2016'; RsEditionWinXPHome = 'Home Edition'; RsEditionWinXPPro = 'Professional'; @@ -1970,6 +1974,10 @@ interface RsEditionWin81Pro = 'Pro'; RsEditionWin81Enterprise = 'Enterprise'; RsEditionWin81RT = 'RT'; + RsEditionWin10Home = 'Home'; + RsEditionWin10Pro = 'Pro'; + RsEditionWin10Enterprise = 'Enterprise'; + RsEditionWin10Education = 'Education'; RsProductTypeWorkStation = 'Workstation'; RsProductTypeServer = 'Server'; diff --git a/source/packages/jcl/JclStreams.pas b/source/packages/jcl/JclStreams.pas index b086cb69..90a60a7c 100644 --- a/source/packages/jcl/JclStreams.pas +++ b/source/packages/jcl/JclStreams.pas @@ -2082,7 +2082,6 @@ function TJclSplitStream.GetSize: Int64; function TJclSplitStream.InternalLoadVolume(Index: Integer): Boolean; var OldVolumeIndex: Integer; - OldVolumeMaxSize: Int64; OldVolumePosition: Int64; OldVolume: TStream; begin @@ -2092,22 +2091,21 @@ function TJclSplitStream.InternalLoadVolume(Index: Integer): Boolean; begin // save current pointers OldVolumeIndex := FVolumeIndex; - OldVolumeMaxSize := FVolumeMaxSize; OldVolumePosition := FVolumePosition; OldVolume := FVolume; FVolumeIndex := Index; FVolumePosition := 0; FVolume := GetVolume(Index); - FVolumeMaxSize := GetVolumeMaxSize(Index); Result := Assigned(FVolume); - if Result then + if Result then begin + FVolumeMaxSize := GetVolumeMaxSize(Index); FVolume.Seek(0, soBeginning) + end else begin // restore old pointers if volume load failed FVolumeIndex := OldVolumeIndex; - FVolumeMaxSize := OldVolumeMaxSize; FVolumePosition := OldVolumePosition; FVolume := OldVolume; end; @@ -2143,8 +2141,8 @@ function TJclSplitStream.Read(var Buffer; Count: Longint): Longint; Break; // with next volume - Dec(Count, Result); - Inc(Data, Result); + Dec(Count, LoopRead); + Inc(Data, LoopRead); if not InternalLoadVolume(FVolumeIndex + 1) then Break; until False; @@ -2217,8 +2215,10 @@ function TJclSplitStream.Seek(const Offset: Int64; RemainingOffset := RemainingOffset - FVolumeMaxSize + FVolumePosition; Result := Result + FVolumeMaxSize - FVolumePosition; FPosition := Result; - if not InternalLoadVolume(FVolumeIndex + 1) then + if not InternalLoadVolume(FVolumeIndex + 1) then begin + FVolumePosition := FVolumeMaxSize; Break; + end; end; end; until RemainingOffset = 0; diff --git a/source/packages/jcl/JclStrings.pas b/source/packages/jcl/JclStrings.pas index b1515b77..db60ef3d 100644 --- a/source/packages/jcl/JclStrings.pas +++ b/source/packages/jcl/JclStrings.pas @@ -435,7 +435,7 @@ ArgumentOutOfRangeException = class(EJclError); // The TStringBuilder class is a Delphi implementation of the .NET // System.Text.StringBuilder. - // It is zero based and the method that allow an TObject (Append, Insert, + // It is zero based and the methods that have a TObject argument (Append, Insert, // AppendFormat) are limited to IToString implementors or Delphi 2009+ RTL. // This class is not threadsafe. Any instance of TStringBuilder should not // be used in different threads at the same time. diff --git a/source/packages/jcl/JclSysInfo.pas b/source/packages/jcl/JclSysInfo.pas index 667a7bdf..05993c68 100644 --- a/source/packages/jcl/JclSysInfo.pas +++ b/source/packages/jcl/JclSysInfo.pas @@ -263,7 +263,8 @@ function GetShellProcessHandle: THandle; (wvUnknown, wvWin95, wvWin95OSR2, wvWin98, wvWin98SE, wvWinME, wvWinNT31, wvWinNT35, wvWinNT351, wvWinNT4, wvWin2000, wvWinXP, wvWin2003, wvWinXP64, wvWin2003R2, wvWinVista, wvWinServer2008, - wvWin7, wvWinServer2008R2, wvWin8, wvWin8RT, wvWinServer2012, wvWin81, wvWin81RT, wvWinServer2012R2); + wvWin7, wvWinServer2008R2, wvWin8, wvWin8RT, wvWinServer2012, + wvWin81, wvWin81RT, wvWinServer2012R2, wvWin10, wvWinServer2016); TWindowsEdition = (weUnknown, weWinXPHome, weWinXPPro, weWinXPHomeN, weWinXPProN, weWinXPHomeK, weWinXPProK, weWinXPHomeKN, weWinXPProKN, weWinXPStarter, weWinXPMediaCenter, @@ -271,7 +272,9 @@ function GetShellProcessHandle: THandle; weWinVistaHomePremium, weWinVistaBusiness, weWinVistaBusinessN, weWinVistaEnterprise, weWinVistaUltimate, weWin7Starter, weWin7HomeBasic, weWin7HomePremium, weWin7Professional, weWin7Enterprise, weWin7Ultimate, - weWin8, weWin8Pro, weWin8Enterprise, weWin8RT, weWin81, weWin81Pro, weWin81Enterprise, weWin81RT); + weWin8, weWin8Pro, weWin8Enterprise, weWin8RT, weWin81, weWin81Pro, + weWin81Enterprise, weWin81RT, weWin10, weWin10Home, weWin10Pro, + weWin10Enterprise, weWin10Education); TNtProductType = (ptUnknown, ptWorkStation, ptServer, ptAdvancedServer, ptPersonal, ptProfessional, ptDatacenterServer, ptEnterprise, ptWebEdition); @@ -309,6 +312,8 @@ function GetShellProcessHandle: THandle; IsWin81: Boolean = False; IsWin81RT: Boolean = False; IsWinServer2012R2: Boolean = False; + IsWin10: Boolean = False; + IsWinServer2016: Boolean = False; const PROCESSOR_ARCHITECTURE_INTEL = 0; @@ -328,6 +333,9 @@ function GetWindowsEditionString: string; function GetWindowsProductString: string; function NtProductTypeString: string; function GetWindowsBuildNumber: Integer; +function GetWindowsMajorVersionNumber: Integer; +function GetWindowsMinorVersionNumber: Integer; +function GetWindowsVersionNumber: string; function GetWindowsServicePackVersion: Integer; function GetWindowsServicePackVersionString: string; {$IFNDEF WINSCP} @@ -348,6 +356,9 @@ function GetMacAddresses(const Machine: string; const Addresses: TStrings): Inte {$ENDIF ~WINSCP} {$ENDIF MSWINDOWS} function ReadTimeStampCounter: Int64; +{$IFDEF WIN64} +{$EXTERNALSYM ReadTimeStampCounter} +{$ENDIF WIN64} type TTLBInformation = (tiEntries, tiAssociativity); @@ -3318,11 +3329,12 @@ function GetWindowsVersion: TWindowsVersion; TrimmedWin32CSDVersion: string; SystemInfo: TSystemInfo; OSVersionInfoEx: TOSVersionInfoEx; - Win32MinorVersionEx: integer; + Win32MajorVersionEx, Win32MinorVersionEx: integer; ProductName: string; const SM_SERVERR2 = 89; begin + Win32MajorVersionEx := -1; Result := wvUnknown; TrimmedWin32CSDVersion := Trim(Win32CSDVersion); case Win32Platform of @@ -3383,15 +3395,32 @@ function GetWindowsVersion: TWindowsVersion; end; 6: begin - Win32MinorVersionEx := Win32MinorVersion; + // Starting with Windows 8.1, the GetVersion(Ex) API is deprecated and will detect the + // application as Windows 8 (kernel version 6.2) until an application manifest is included + // See https://msdn.microsoft.com/en-us/library/windows/desktop/dn302074.aspx - // Workaround to differentiate Windows 8.1 and Windows Server 2012 R2 from Windows 8 and Windows Server 2012 - if Win32MinorVersionEx = 2 then + if Win32MinorVersion = 2 then begin ProductName := RegReadStringDef(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'ProductName', ''); if (pos(RsOSVersionWin81, ProductName) = 1) or (pos(RsOSVersionWinServer2012R2, ProductName) = 1) then - Win32MinorVersionEx := 3; - end; + Win32MinorVersionEx := 3 // Windows 8.1 and Windows Server 2012R2 + else + if (pos(RsOSVersionWin8, ProductName) = 1) or (pos(RsOSVersionWinServer2012, ProductName) = 1) then + Win32MinorVersionEx := 2 // Windows 8 and Windows Server 2012 + else + begin + Win32MajorVersionEx := GetWindowsMajorVersionNumber; + if Win32MajorVersionEx = 6 then + Win32MinorVersionEx := 4 // Windows 10 (builds < 9926) and Windows Server 2016 (builds < 10074) + else + if Win32MajorVersionEx = 10 then + Win32MinorVersionEx := -1 // Windows 10 (builds >= 9926) and Windows Server 2016 (builds >= 10074), set to -1 to escape case block + else + Win32MinorVersionEx := Win32MinorVersion; + end; + end + else + Win32MinorVersionEx := Win32MinorVersion; case Win32MinorVersionEx of 0: @@ -3430,10 +3459,44 @@ function GetWindowsVersion: TWindowsVersion; else Result := wvWinServer2012R2; end; + 4: + begin + // Windows 10 (builds < 9926) and Windows Server 2016 (builds < 10074) + OSVersionInfoEx.dwOSVersionInfoSize := SizeOf(OSVersionInfoEx); + if GetVersionEx(OSVersionInfoEx) and (OSVersionInfoEx.wProductType = VER_NT_WORKSTATION) then + Result := wvWin10 + else + Result := wvWinServer2016; + end; + end; end; + 10: + Win32MajorVersionEx := Win32MajorVersion; + end; + end; + + // This part will only be hit with Windows 10 and Windows Server 2016 (and newer) where an application manifest is not included + if (Win32MajorVersionEx >= 10) then + begin + case Win32MajorVersionEx of + 10: + begin + Win32MinorVersionEx := GetWindowsMinorVersionNumber; + case Win32MinorVersionEx of + 0: + begin + // Windows 10 (builds >= 9926) and Windows Server 2016 (builds >= 10074) + OSVersionInfoEx.dwOSVersionInfoSize := SizeOf(OSVersionInfoEx); + if GetVersionEx(OSVersionInfoEx) and (OSVersionInfoEx.wProductType = VER_NT_WORKSTATION) then + Result := wvWin10 + else + Result := wvWinServer2016; + end; end; end; + end; end; + end; function GetWindowsEdition: TWindowsEdition; @@ -3538,7 +3601,7 @@ function GetWindowsEdition: TWindowsEdition; if Pos('Windows 8.1', Edition) = 1 then begin // Windows 8.1 Editions - if pos('Pro', Edition) > 0 then + if Pos('Pro', Edition) > 0 then Result := weWin81Pro else if Pos('Enterprise', Edition) > 0 then @@ -3563,7 +3626,26 @@ function GetWindowsEdition: TWindowsEdition; Result := weWin81RT else if Pos('Windows RT', Edition) = 1 then - Result := weWin8RT; + Result := weWin8RT + else + if Pos('Windows 10', Edition) = 1 then + begin + // Windows 10 Editions + if Pos('Home', Edition) > 0 then + Result := weWin10Home + else + if Pos('Pro', Edition) > 0 then + Result := weWin10Pro + else + if Pos('Enterprise', Edition) > 0 then + Result := weWin10Enterprise + else + if Pos('Education', Edition) > 0 then + Result := weWin10Education + else + Result := weWin10; + end + end; function NtProductType: TNtProductType; @@ -3637,11 +3719,11 @@ function NtProductType: TNtProductType; end; end else - if JclCheckWinVersion(5, 1) then // WinXP or newer + if JclCheckWinVersion(5, 1) then // Windows XP or newer begin if GetVersionEx(OSVersionInfo) then begin - //if IsWinXP or IsWinVista or IsWin7 or IsWin8 or IsWin81 then + //if IsWinXP or IsWinVista or IsWin7 or IsWin8 or IsWin81 or IsWin10 then if OSVersionInfo.wProductType = VER_NT_WORKSTATION then // workstation begin if (OSVersionInfo.wSuiteMask and VER_SUITE_PERSONAL) = VER_SUITE_PERSONAL then @@ -3728,6 +3810,10 @@ function GetWindowsVersionString: string; Result := LoadResString(@RsOSVersionWin81RT); wvWinServer2012R2: Result := LoadResString(@RsOSVersionWinServer2012R2); + wvWin10: + Result := LoadResString(@RsOSVersionWin10); + wvWinServer2016: + Result := LoadResString(@RsOSVersionWinServer2016); else Result := ''; end; @@ -3798,6 +3884,14 @@ function GetWindowsEditionString: string; Result := LoadResString(@RsEditionWin81Enterprise); weWin81RT: Result := LoadResString(@RsEditionWin81RT); + weWin10Home: + Result := LoadResString(@RsEditionWin10Home); + weWin10Pro: + Result := LoadResString(@RsEditionWin10Pro); + weWin10Enterprise: + Result := LoadResString(@RsEditionWin10Enterprise); + weWin10Education: + Result := LoadResString(@RsEditionWin10Education); else Result := ''; end; @@ -3836,13 +3930,61 @@ function NtProductTypeString: string; function GetWindowsBuildNumber: Integer; begin - // Workaround to differentiate Windows 8.1 and Windows Server 2012 R2 from Windows 8 and Windows Server 2012 + // Starting with Windows 8.1, the GetVersion(Ex) API is deprecated and will detect the + // application as Windows 8 (kernel version 6.2) until an application manifest is included + // See https://msdn.microsoft.com/en-us/library/windows/desktop/dn302074.aspx if (Win32MajorVersion = 6) and (Win32MinorVersion = 2) then Result := strToInt(RegReadStringDef(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'CurrentBuildNumber', intToStr(Win32BuildNumber))) else Result := Win32BuildNumber; end; +function GetWindowsMajorVersionNumber: Integer; +begin +{$IFNDEF WINSCP} + // WINSCP: We have the manifest + // Starting with Windows 8.1, the GetVersion(Ex) API is deprecated and will detect the + // application as Windows 8 (kernel version 6.2) until an application manifest is included + // See https://msdn.microsoft.com/en-us/library/windows/desktop/dn302074.aspx + if (Win32MajorVersion = 6) and (Win32MinorVersion = 2) then + begin + // CurrentMajorVersionNumber present in registry starting with Windows 10 + // If CurrentMajorVersionNumber not present in registry then use CurrentVersion + Result := RegReadIntegerDef(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'CurrentMajorVersionNumber', -1); + if Result = -1 then + Result := strToInt(StrBefore('.', RegReadStringDef(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'CurrentVersion', intToStr(Win32MajorVersion) + '.' + intToStr(Win32MinorVersion)))); + end + else +{$ENDIF} + Result := Win32MajorVersion; +end; + +function GetWindowsMinorVersionNumber: Integer; +begin +{$IFNDEF WINSCP} + // WINSCP: We have the manifest + // Starting with Windows 8.1, the GetVersion(Ex) API is deprecated and will detect the + // application as Windows 8 (kernel version 6.2) until an application manifest is included + // See https://msdn.microsoft.com/en-us/library/windows/desktop/dn302074.aspx + if (Win32MajorVersion = 6) and (Win32MinorVersion = 2) then + begin + // CurrentMinorVersionNumber present in registry starting with Windows 10 + // If CurrentMinorVersionNumber not present then use CurrentVersion + Result := RegReadIntegerDef(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'CurrentMinorVersionNumber', -1); + if Result = -1 then + Result := strToInt(StrAfter('.', RegReadStringDef(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'CurrentVersion', intToStr(Win32MajorVersion) + '.' + intToStr(Win32MinorVersion)))); + end + else +{$ENDIF} + Result := Win32MajorVersion; +end; + +function GetWindowsVersionNumber: string; +begin + // Returns version number as MajorVersionNumber.MinorVersionNumber (string type) + Result := intToStr(GetWindowsMajorVersionNumber) + '.' + intToStr(GetWindowsMinorVersionNumber); +end; + function GetWindowsServicePackVersion: Integer; const RegWindowsControl = 'SYSTEM\CurrentControlSet\Control\Windows'; @@ -4095,7 +4237,7 @@ function GetNativeSystemInfo(var SystemInfo: TSystemInfo): Boolean; if LibraryHandle <> 0 then begin - _GetNativeSystemInfo := GetProcAddress(LibraryHandle,'GetNativeSystemInfo'); + _GetNativeSystemInfo := GetProcAddress(LibraryHandle, PAnsiChar('GetNativeSystemInfo')); if Assigned(_GetNativeSystemInfo) then begin _GetNativeSystemInfo(SystemInfo); @@ -4213,7 +4355,7 @@ function GetMacAddresses(const Machine: string; const Addresses: TStrings): Inte Result := NetBiosLib <> 0; if Result then begin - @_NetBios := GetProcAddress(NetBiosLib, PChar('Netbios')); + @_NetBios := GetProcAddress(NetBiosLib, PAnsiChar('Netbios')); Result := @_NetBios <> nil; if not Result then ExitNetbios; @@ -4579,7 +4721,8 @@ function GetOSEnabledFeatures: TOSEnabledFeatures; var EnabledFeatures: Int64; begin - if IsWin7 or IsWinServer2008 or IsWinServer2008R2 or IsWin8 or IsWinServer2012 or IsWin81 or IsWinServer2012R2 then + // Windows 7 or newer + if JclCheckWinVersion(6, 1) then begin EnabledFeatures := $FFFFFFFF; EnabledFeatures := EnabledFeatures shl 32; @@ -5806,7 +5949,7 @@ function IsSystemResourcesMeterPresent: Boolean; ResmeterLibHandle := SafeLoadLibrary('rsrc32.dll', SEM_FAILCRITICALERRORS); if ResmeterLibHandle <> 0 then begin - @MyGetFreeSystemResources := GetProcAddress(ResmeterLibHandle, '_MyGetFreeSystemResources32@4'); + @MyGetFreeSystemResources := GetProcAddress(ResmeterLibHandle, PAnsiChar('_MyGetFreeSystemResources32@4')); if not Assigned(MyGetFreeSystemResources) then UnloadSystemResourcesMeterLib; end; @@ -6001,6 +6144,10 @@ procedure InitSysInfo; IsWin81RT := True; wvWinServer2012R2: IsWinServer2012R2 := True; + wvWin10: + IsWin10 := True; + wvWinServer2016: + IsWinServer2016 := True; end; end; diff --git a/source/packages/jcl/JclSysUtils.pas b/source/packages/jcl/JclSysUtils.pas index b9d438f5..63876737 100644 --- a/source/packages/jcl/JclSysUtils.pas +++ b/source/packages/jcl/JclSysUtils.pas @@ -2965,7 +2965,7 @@ function InternalExecute(CommandLine: string; AbortPtr: PBoolean; AbortEvent: TJ else StartupInfo.hStdError := ErrorPipeInfo.PipeWrite; UniqueString(CommandLine); // CommandLine must be in a writable memory block - ProcessInfo.dwProcessId := 0; + ResetMemory(ProcessInfo, SizeOf(ProcessInfo)); ProcessEvent := nil; try if CreateProcess(nil, PChar(CommandLine), nil, nil, True, ProcessPriorities[ProcessPriority], @@ -3049,7 +3049,7 @@ function InternalExecute(CommandLine: string; AbortPtr: PBoolean; AbortEvent: TJ end; if {$IFDEF FPC}Boolean({$ENDIF}AbortPtr^{$IFDEF FPC}){$ENDIF} then TerminateProcess(ProcessEvent.Handle, Cardinal(ABORT_EXIT_CODE)); - if (ProcessEvent.WaitForever = wrSignaled) and not GetExitCodeProcess(ProcessEvent.Handle, Result) then + if (ProcessEvent.WaitForever = {$IFDEF RTL280_UP}TJclWaitResult.{$ENDIF RTL280_UP}wrSignaled) and not GetExitCodeProcess(ProcessEvent.Handle, Result) then Result := $FFFFFFFF; CloseHandle(ProcessInfo.hThread); ProcessInfo.hThread := 0; diff --git a/source/packages/jcl/JclWin32.pas b/source/packages/jcl/JclWin32.pas index 23448d58..ffb984b2 100644 --- a/source/packages/jcl/JclWin32.pas +++ b/source/packages/jcl/JclWin32.pas @@ -1290,7 +1290,11 @@ _IMAGE_FILE_HEADER = record PIMAGE_OPTIONAL_HEADER32 = ^IMAGE_OPTIONAL_HEADER32; {$EXTERNALSYM PIMAGE_OPTIONAL_HEADER32} + {$IF declared(_IMAGE_OPTIONAL_HEADER32)} // XE2+ + IMAGE_OPTIONAL_HEADER32 = _IMAGE_OPTIONAL_HEADER32; + {$ELSE} IMAGE_OPTIONAL_HEADER32 = _IMAGE_OPTIONAL_HEADER; + {$IFEND} {$EXTERNALSYM IMAGE_OPTIONAL_HEADER32} TImageOptionalHeader32 = IMAGE_OPTIONAL_HEADER32; PImageOptionalHeader32 = PIMAGE_OPTIONAL_HEADER32; diff --git a/source/packages/jcl/LICENSE.txt b/source/packages/jcl/LICENSE.txt index 7714141d..06f96514 100644 --- a/source/packages/jcl/LICENSE.txt +++ b/source/packages/jcl/LICENSE.txt @@ -467,4 +467,3 @@ EXHIBIT A -Mozilla Public License. the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] - diff --git a/source/packages/jcl/crossplatform.inc b/source/packages/jcl/crossplatform.inc index c47d1def..ca48024d 100644 --- a/source/packages/jcl/crossplatform.inc +++ b/source/packages/jcl/crossplatform.inc @@ -32,4 +32,4 @@ {$IFDEF SUPPORTS_PLATFORM_WARNINGS} {$WARN UNIT_PLATFORM OFF} {$WARN SYMBOL_PLATFORM OFF} -{$ENDIF SUPPORTS_PLATFORM_WARNINGS} \ No newline at end of file +{$ENDIF SUPPORTS_PLATFORM_WARNINGS} diff --git a/source/packages/jcl/jcl.inc b/source/packages/jcl/jcl.inc index a1bdf08b..2624e277 100644 --- a/source/packages/jcl/jcl.inc +++ b/source/packages/jcl/jcl.inc @@ -285,6 +285,60 @@ ALERT_jedi_inc_incompatible {$ENDIF MSWINDOWS} {$ENDIF BDS14} {----------------------------} + {$IFDEF BDS15} + {$IFDEF MSWINDOWS} + {$IFDEF CPUX86} + // This file should be located in directory jcl/source/include + // It is automatically created by the JCL installer + // For manual installations, copy and adjust jcl/source/include/jcl.template.inc + {$I jcld21win32.inc} + {$ENDIF CPUX86} + {$IFDEF CPUX64} + // This file should be located in directory jcl/source/include + // It is automatically created by the JCL installer + // For manual installations, copy and adjust jcl/source/include/jcl.template.inc + {$I jcld21win64.inc} + {$ENDIF CPUX64} + {$DEFINE JCL_CONFIGURED} + {$ENDIF MSWINDOWS} + {$ENDIF BDS15} + {----------------------------} + {$IFDEF BDS16} + {$IFDEF MSWINDOWS} + {$IFDEF CPUX86} + // This file should be located in directory jcl/source/include + // It is automatically created by the JCL installer + // For manual installations, copy and adjust jcl/source/include/jcl.template.inc + {$I jcld22win32.inc} + {$ENDIF CPUX86} + {$IFDEF CPUX64} + // This file should be located in directory jcl/source/include + // It is automatically created by the JCL installer + // For manual installations, copy and adjust jcl/source/include/jcl.template.inc + {$I jcld22win64.inc} + {$ENDIF CPUX64} + {$DEFINE JCL_CONFIGURED} + {$ENDIF MSWINDOWS} + {$ENDIF BDS16} + {----------------------------} + {$IFDEF BDS17} + {$IFDEF MSWINDOWS} + {$IFDEF CPUX86} + // This file should be located in directory jcl/source/include + // It is automatically created by the JCL installer + // For manual installations, copy and adjust jcl/source/include/jcl.template.inc + {$I jcld23win32.inc} + {$ENDIF CPUX86} + {$IFDEF CPUX64} + // This file should be located in directory jcl/source/include + // It is automatically created by the JCL installer + // For manual installations, copy and adjust jcl/source/include/jcl.template.inc + {$I jcld23win64.inc} + {$ENDIF CPUX64} + {$DEFINE JCL_CONFIGURED} + {$ENDIF MSWINDOWS} + {$ENDIF BDS17} + {----------------------------} {$IFDEF FPC} // This file should be located in directory jcl/source/include // It is automatically created by the JCL installer @@ -571,4 +625,3 @@ ALERT_jedi_inc_incompatible {$IFDEF FPC} {$DEFINE DEBUG_NO_TD32} {$ENDIF FPC} - diff --git a/source/packages/jcl/jcld20win32.inc b/source/packages/jcl/jcld20win32.inc index 053ad96c..3a7693ad 100644 --- a/source/packages/jcl/jcld20win32.inc +++ b/source/packages/jcl/jcld20win32.inc @@ -138,4 +138,3 @@ {.$DEFINE 7ZIP_STATICLINK} // not supported yet {.$DEFINE 7ZIP_LINKDLL} {.$DEFINE 7ZIP_LINKONREQUEST} // default - diff --git a/source/packages/jcl/jedi.inc b/source/packages/jcl/jedi.inc index b6d36b6a..d9a8808e 100644 --- a/source/packages/jcl/jedi.inc +++ b/source/packages/jcl/jedi.inc @@ -86,7 +86,7 @@ CPU386 Defined when target platform is native x86 (win32) CPUx86_64 Defined when target platform is native x86_64 (win64) CPU32 Defined when target is 32-bit - CPU64 Defined when target is 64-bit + CPU64 Defined when target is 64-bit CPUASM Defined when target assembler is available - Visual library Directives @@ -1331,7 +1331,7 @@ {$DEFINE SUPPORTS_SINGLE} {$DEFINE SUPPORTS_DOUBLE} {$DEFINE SUPPORTS_EXTENDED} - {$DEFINE SUPPORTS_PACKAGES} + {$DEFINE SUPPORTS_PACKAGES} {$ENDIF COMPILER1_UP} {$IFDEF COMPILER2_UP} diff --git a/source/packages/jcl/windowsonly.inc b/source/packages/jcl/windowsonly.inc index d77d9bba..cce9191e 100644 --- a/source/packages/jcl/windowsonly.inc +++ b/source/packages/jcl/windowsonly.inc @@ -51,4 +51,3 @@ ALERT_jedi_inc_missing {$ENDIF ~MSWINDOWS} {$ENDIF ~WINDOWSONLY_INC} - diff --git a/source/packages/my/ComboEdit.pas b/source/packages/my/ComboEdit.pas index c9b73ac1..d2caf67a 100644 --- a/source/packages/my/ComboEdit.pas +++ b/source/packages/my/ComboEdit.pas @@ -166,8 +166,6 @@ TFileDirEdit = class(TCustomComboEdit) FMultipleDirs: Boolean; procedure CreateHandle; override; procedure DestroyWindowHandle; override; - function GetLongName: string; virtual; abstract; - function GetShortName: string; virtual; abstract; procedure DoAfterDialog(var FileName: string; var Action: Boolean); dynamic; procedure DoBeforeDialog(var FileName: string; var Action: Boolean); dynamic; procedure ReceptFileDir(const AFileName: string); virtual; abstract; @@ -175,9 +173,6 @@ TFileDirEdit = class(TCustomComboEdit) procedure DisableSysErrors; procedure EnableSysErrors; property MaxLength; - public - property LongName: string read GetLongName; - property ShortName: string read GetShortName; published property AcceptFiles: Boolean read FAcceptFiles write SetAcceptFiles default False; property OnBeforeDialog: TExecOpenDialogEvent read FOnBeforeDialog @@ -193,14 +188,10 @@ TFileDirEdit = class(TCustomComboEdit) TFileDialogKind = (dkOpen, dkSave , dkOpenPicture, dkSavePicture); - TCreateEditDialogEvent = procedure(Sender: TObject; DialogKind: TFileDialogKind; - var Dialog: TOpenDialog) of object; - TFilenameEdit = class(TFileDirEdit) private FDialog: TOpenDialog; FDialogKind: TFileDialogKind; - FOnCreateEditDialog: TCreateEditDialogEvent; procedure CreateEditDialog; function GetFileName: string; function GetDefaultExt: TFileExt; @@ -222,15 +213,12 @@ TFilenameEdit = class(TFileDirEdit) procedure SetHistoryList(Value: TStrings); procedure SetOptions(Value: TOpenOptions); procedure SetDialogTitle(const Value: string); - procedure SetOnCreateEditDialog(Value: TCreateEditDialogEvent); function IsCustomTitle: Boolean; function IsCustomFilter: Boolean; protected procedure ButtonClick; override; procedure ReceptFileDir(const AFileName: string); override; procedure ClearFileList; override; - function GetLongName: string; override; - function GetShortName: string; override; public constructor Create(AOwner: TComponent); override; property Dialog: TOpenDialog read FDialog; @@ -250,8 +238,6 @@ TFilenameEdit = class(TFileDirEdit) default [ofHideReadOnly]; property DialogTitle: string read GetDialogTitle write SetDialogTitle stored IsCustomTitle; - property OnCreateEditDialog: TCreateEditDialogEvent read FOnCreateEditDialog - write SetOnCreateEditDialog; property AutoSelect; property ButtonHint; property BorderStyle; @@ -314,8 +300,6 @@ TDirectoryEdit = class(TFileDirEdit) protected procedure ButtonClick; override; procedure ReceptFileDir(const AFileName: string); override; - function GetLongName: string; override; - function GetShortName: string; override; public constructor Create(AOwner: TComponent); override; published @@ -432,70 +416,6 @@ function DirExists(Name: string): Boolean; Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0); end; -function ShortToLongFileName(const ShortName: string): string; -var - Temp: TWin32FindData; - SearchHandle: THandle; -begin - SearchHandle := FindFirstFile(PChar(ShortName), Temp); - if SearchHandle <> INVALID_HANDLE_VALUE then begin - Result := string(Temp.cFileName); - if Result = '' then Result := string(Temp.cAlternateFileName); - end - else Result := ''; - Windows.FindClose(SearchHandle); -end; - -function LongToShortFileName(const LongName: string): string; -var - Temp: TWin32FindData; - SearchHandle: THandle; -begin - SearchHandle := FindFirstFile(PChar(LongName), Temp); - if SearchHandle <> INVALID_HANDLE_VALUE then begin - Result := string(Temp.cAlternateFileName); - if Result = '' then Result := string(Temp.cFileName); - end - else Result := ''; - Windows.FindClose(SearchHandle); -end; - -function ShortToLongPath(const ShortName: string): string; -var - LastSlash: PChar; - TempPathPtr: PChar; -begin - Result := ''; - TempPathPtr := PChar(ShortName); - LastSlash := StrRScan(TempPathPtr, '\'); - while LastSlash <> nil do begin - Result := '\' + ShortToLongFileName(TempPathPtr) + Result; - if LastSlash <> nil then begin - LastSlash^ := char(0); - LastSlash := StrRScan(TempPathPtr, '\'); - end; - end; - Result := TempPathPtr + Result; -end; - -function LongToShortPath(const LongName: string): string; -var - LastSlash: PChar; - TempPathPtr: PChar; -begin - Result := ''; - TempPathPtr := PChar(LongName); - LastSlash := StrRScan(TempPathPtr, '\'); - while LastSlash <> nil do begin - Result := '\' + LongToShortFileName(TempPathPtr) + Result; - if LastSlash <> nil then begin - LastSlash^ := char(0); - LastSlash := StrRScan(TempPathPtr, '\'); - end; - end; - Result := TempPathPtr + Result; -end; - { TCustomComboEdit } constructor TCustomComboEdit.Create(AOwner: TComponent); @@ -985,21 +905,6 @@ procedure SplitCommandLine(const CmdLine: string; var ExeName, end; end; -function ClipFilename(const FileName: string): string; -var - Params: string; -begin - if FileExists(ApiPath(FileName)) then Result := FileName - else SplitCommandLine(FileName, Result, Params); -end; - -function ExtFilename(const FileName: string): string; -begin - if (Pos(' ', FileName) > 0) and (FileName[1] <> '"') then - Result := Format('"%s"', [FileName]) - else Result := FileName; -end; - constructor TFilenameEdit.Create(AOwner: TComponent); begin inherited Create(AOwner); @@ -1010,17 +915,12 @@ procedure TFilenameEdit.CreateEditDialog; var NewDialog: TOpenDialog; begin - NewDialog := nil; - if Assigned(FOnCreateEditDialog) then - FOnCreateEditDialog(Self, FDialogKind, NewDialog); - - if not Assigned(NewDialog) then - case FDialogKind of - dkOpen: NewDialog := TOpenDialog.Create(Self); - dkOpenPicture: NewDialog := TOpenPictureDialog.Create(Self); - dkSavePicture: NewDialog := TSavePictureDialog.Create(Self); - else {dkSave} NewDialog := TSaveDialog.Create(Self); - end; + case FDialogKind of + dkOpen: NewDialog := TOpenDialog.Create(Self); + dkOpenPicture: NewDialog := TOpenPictureDialog.Create(Self); + dkSavePicture: NewDialog := TSavePictureDialog.Create(Self); + else {dkSave} NewDialog := TSaveDialog.Create(Self); + end; try if FDialog <> nil then begin @@ -1066,7 +966,6 @@ procedure TFilenameEdit.ButtonClick; inherited ButtonClick; Temp := inherited Text; Action := True; - Temp := ClipFilename(Temp); DoBeforeDialog(Temp, Action); if not Action then Exit; if ValidFileName(Temp) then @@ -1090,36 +989,25 @@ procedure TFilenameEdit.ButtonClick; if CanFocus then SetFocus; DoAfterDialog(Temp, Action); if Action then begin - inherited Text := ExtFilename(Temp); + inherited Text := Temp; SetInitialDir(ExtractFilePath(FDialog.FileName)); end; end; function TFilenameEdit.GetFileName: string; begin - Result := ClipFilename(inherited Text); + Result := inherited Text; end; procedure TFilenameEdit.SetFileName(const Value: string); begin - if (Value = '') or ValidFileName(ClipFilename(Value)) then begin - inherited Text := ExtFilename(Value); + if (Value = '') or ValidFileName(Value) then begin + inherited Text := Value; ClearFileList; end else raise EComboEditError.CreateFmt(SInvalidFilename, [Value]); end; -function TFilenameEdit.GetLongName: string; -begin - Result := ShortToLongFileName(FileName); -end; - -function TFilenameEdit.GetShortName: string; -begin - Result := LongToShortFileName(FileName); -end; - - procedure TFilenameEdit.ClearFileList; begin FDialog.Files.Clear; @@ -1187,17 +1075,6 @@ procedure TFilenameEdit.SetDialogKind(Value: TFileDialogKind); end; end; -procedure TFilenameEdit.SetOnCreateEditDialog(Value: TCreateEditDialogEvent); -begin - if @FOnCreateEditDialog <> @Value then - begin - FOnCreateEditDialog := Value; - // to recreate a dialog with every change is stupid way, - // but its done only once, so it is acceptable - CreateEditDialog; - end; -end; - procedure TFilenameEdit.SetDefaultExt(Value: TFileExt); begin FDialog.DefaultExt := Value; @@ -1290,39 +1167,5 @@ procedure TDirectoryEdit.ReceptFileDir(const AFileName: string); else Text := Text + ';' + Temp; end; -function TDirectoryEdit.GetLongName: string; -var - Temp: string; - Pos: Integer; -begin - if not MultipleDirs then Result := ShortToLongPath(Text) - else begin - Result := ''; - Pos := 1; - while Pos <= Length(Text) do begin - Temp := ShortToLongPath(ExtractSubstr(Text, Pos, [';'])); - if (Result <> '') and (Temp <> '') then Result := Result + ';'; - Result := Result + Temp; - end; - end; -end; - -function TDirectoryEdit.GetShortName: string; -var - Temp: string; - Pos: Integer; -begin - if not MultipleDirs then Result := LongToShortPath(Text) - else begin - Result := ''; - Pos := 1; - while Pos <= Length(Text) do begin - Temp := LongToShortPath(ExtractSubstr(Text, Pos, [';'])); - if (Result <> '') and (Temp <> '') then Result := Result + ';'; - Result := Result + Temp; - end; - end; -end; - initialization end. diff --git a/source/packages/my/CompThread.pas b/source/packages/my/CompThread.pas index cfec9e7b..84a54d8c 100644 --- a/source/packages/my/CompThread.pas +++ b/source/packages/my/CompThread.pas @@ -92,11 +92,7 @@ function ThreadWndProc(Window: HWND; Message, wParam, lParam: Longint): Longint; FSynchronizeException := nil; FMethod; except - if RaiseList <> nil then - begin - FSynchronizeException := PRaiseFrame(RaiseList)^.ExceptObject; - PRaiseFrame(RaiseList)^.ExceptObject := nil; - end; + FSynchronizeException := AcquireExceptionObject; end; end; CM_DESTROYWINDOW: diff --git a/source/packages/my/IEListView.pas b/source/packages/my/IEListView.pas index 3336ea87..7bc19eaf 100644 --- a/source/packages/my/IEListView.pas +++ b/source/packages/my/IEListView.pas @@ -91,7 +91,6 @@ TCustomIEListView = class(TCustomNortonLikeListView) procedure CreateWnd; override; procedure ColClick(Column: TListColumn); override; procedure WMNotify(var Msg: TWMNotify); message WM_NOTIFY; - public constructor Create(AOwner: TComponent); override; destructor Destroy; override; diff --git a/source/packages/my/ListViewColProperties.pas b/source/packages/my/ListViewColProperties.pas index 599b7aab..689a5fd4 100644 --- a/source/packages/my/ListViewColProperties.pas +++ b/source/packages/my/ListViewColProperties.pas @@ -5,15 +5,13 @@ interface uses Classes, ComCtrls, Contnrs; -const - DefaultListViewMaxWidth = 1000; - DefaultListViewMinWidth = 20; - type TCustomListViewColProperty = class(TObject) Alignment: TAlignment; Caption: string; Width: Integer; + MaxWidth: Integer; + MinWidth: Integer; Visible: Boolean; Order: Integer; @@ -24,8 +22,6 @@ TCustomListViewColProperty = class(TObject) TCustomListViewColProperties = class(TPersistent) private FChanged: Boolean; - FMaxWidth: Integer; - FMinWidth: Integer; FOnChange: TNotifyEvent; FUpdating: Integer; FProperties: TObjectList; @@ -34,8 +30,6 @@ TCustomListViewColProperties = class(TPersistent) function GetCount: Integer; function GetOrderStr: string; procedure CheckBounds(Index: Integer); - procedure SetMaxWidth(Value: Integer); - procedure SetMinWidth(Value: Integer); procedure SetWidthsStr(Value: string; PixelsPerInch: Integer); function GetWidthsStr: string; procedure SetOrderStr(Value: string); @@ -57,6 +51,7 @@ TCustomListViewColProperties = class(TPersistent) procedure UpdateFromListView; procedure UpdateOrderFromListView; procedure UpdateListViewOrder; + procedure UpdateListViewMaxMinWidth; function GetProperties(Index: Integer): TCustomListViewColProperty; function GetIndexByOrder(Order: Integer): Integer; function ColumnsExists: Boolean; @@ -76,20 +71,16 @@ TCustomListViewColProperties = class(TPersistent) procedure ListViewWndDestroyed; property Alignments[Index: Integer]: TAlignment read GetAlignments write SetAlignments; property Captions[Index: Integer]: string read GetCaptions write SetCaptions; - property MaxWidth: Integer read FMaxWidth write SetMaxWidth default DefaultListViewMaxWidth; - property MinWidth: Integer read FMinWidth write SetMinWidth default DefaultListViewMinWidth; property Widths[Index: Integer]: Integer read GetWidths write SetWidths; property Visible[Index: Integer]: Boolean read GetVisible write SetVisible; procedure RecreateColumns; property OnChange: TNotifyEvent read FOnChange write FOnChange; property ParamsStr: string read GetParamsStr write SetParamsStr stored False; - end; { TListViewColProperties } + end; { TCustomListViewColProperties } type TListViewColProperties = class(TCustomListViewColProperties) published - property MaxWidth; - property MinWidth; end; { TListViewColProperties } implementation @@ -97,6 +88,10 @@ implementation uses SysUtils, CommCtrl, Windows, PasTools, Controls; +const + DefaultListViewMaxWidth = 1000; + DefaultListViewMinWidth = 20; + { TODO : V ListView zamezit zmenu velikosti neviditelnych sloupecku } constructor TCustomListViewColProperty.Create(AOrder: Integer); @@ -115,11 +110,16 @@ constructor TCustomListViewColProperties.Create( var ACount: Integer; begin + // This contructor (and constructors of descendants) + // is only even called from implementations of + // TCustomNortonLikeListView.NewColProperties inherited Create; FCreated := False; FUpdating := 0; FChanged := False; + // ColCount is not 0 for file panels (TDirView and TCustomUnixDirView). + // It is 0 otherwise. FListViewManaged := (ColCount = 0); FListView := ListView; @@ -131,9 +131,6 @@ constructor TCustomListViewColProperties.Create( if not Assigned(FListView) then raise Exception.Create('NIL ListView pointer.'); - - MaxWidth := DefaultListViewMaxWidth; - MinWidth := DefaultListViewMinWidth; end; destructor TCustomListViewColProperties.Destroy; @@ -405,19 +402,26 @@ procedure TCustomListViewColProperties.SetVisible(Index: Integer; Value: Boolean procedure TCustomListViewColProperties.SetRuntimeVisible( Index: Integer; Value: Boolean; SaveWidth: Boolean); +var + Properties: TCustomListViewColProperty; begin + // This is probably only ever called from file panels (DirViews) + // as other uses ("sychronization checklist" and "file find") + // have FListViewManaged = False and never change Visible property + // (though user can hide some columns manually in configuration storage) with GetColumn(Index) do begin + Properties := GetProperties(Index); if Value then begin - MaxWidth := FMaxWidth; - MinWidth := FMinWidth; - Width := GetProperties(Index).Width; + MaxWidth := Properties.MaxWidth; + MinWidth := Properties.MinWidth; + Width := Properties.Width; end else begin if SaveWidth then - GetProperties(Index).Width := Width; + Properties.Width := Width; MaxWidth := 1; MinWidth := 0; Width := 0 @@ -426,16 +430,20 @@ procedure TCustomListViewColProperties.SetRuntimeVisible( end; procedure TCustomListViewColProperties.SetWidths(Index: Integer; Value: Integer); +var + Properties: TCustomListViewColProperty; begin CheckBounds(Index); - if Value < FMinWidth then Value := FMinWidth + Properties := GetProperties(Index); + + if Value < Properties.MinWidth then Value := Properties.MinWidth else - if Value > FMaxWidth then Value := FMaxWidth; + if Value > Properties.MaxWidth then Value := Properties.MaxWidth; if Widths[Index] <> Value then begin - GetProperties(Index).Width := Value; + Properties.Width := Value; if ColumnsExists and Visible[Index] then GetColumn(Index).Width := Value; Changed; end; @@ -495,38 +503,6 @@ function TCustomListViewColProperties.GetWidths(Index: Integer): Integer; else Result := GetProperties(Index).Width; end; -procedure TCustomListViewColProperties.SetMaxWidth(Value: Integer); -var - Index: Integer; -begin - if FMaxWidth <> Value then - begin - FMaxWidth := Value; - for Index := 0 to Count - 1 do - begin - if ColumnsExists and Visible[Index] then GetColumn(Index).MaxWidth := Value - else - if GetProperties(Index).Width > Value then GetProperties(Index).Width := Value; - end; - end; -end; - -procedure TCustomListViewColProperties.SetMinWidth(Value: Integer); -var - Index: Integer; -begin - if FMinWidth <> Value then - begin - FMinWidth := Value; - for Index := 0 to Count - 1 do - begin - if ColumnsExists and Visible[Index] then GetColumn(Index).MinWidth := Value - else - if GetProperties(Index).Width < Value then GetProperties(Index).Width := Value; - end; - end; -end; - procedure TCustomListViewColProperties.RecreateColumns; var Copy: TListColumns; @@ -543,9 +519,17 @@ procedure TCustomListViewColProperties.RecreateColumns; procedure TCustomListViewColProperties.CreateProperties(ACount: Integer); var Index: Integer; + Properties: TCustomListViewColProperty; begin for Index := 0 to ACount - 1 do - FProperties.Add(TCustomListViewColProperty.Create(Index)); + begin + Properties := TCustomListViewColProperty.Create(Index); + + // We do not have list view handle yet to use ScaleByTextHeight + Properties.MaxWidth := ScaleByPixelsPerInch(DefaultListViewMaxWidth); + Properties.MinWidth := ScaleByPixelsPerInch(DefaultListViewMinWidth); + FProperties.Add(Properties); + end; end; procedure TCustomListViewColProperties.ListViewWndCreated; @@ -556,6 +540,9 @@ procedure TCustomListViewColProperties.ListViewWndCreated; CreateProperties(Columns.Count); UpdateFromListView; + + // To apply the default constraints to columns that do not have their own + UpdateListViewMaxMinWidth; end else begin @@ -593,12 +580,34 @@ procedure TCustomListViewColProperties.UpdateListViewOrder; ListView_SetColumnOrderArray(FListView.Handle, Count, PInteger(Temp)); end; +procedure TCustomListViewColProperties.UpdateListViewMaxMinWidth; +var + Index: Integer; + Column: TListColumn; + Properties: TCustomListViewColProperty; +begin + Assert(ColumnsExists); + + for Index := 0 to Count-1 do + begin + Column := GetColumn(Index); + Properties := GetProperties(Index); + + if Properties.Visible then + begin + Column.MaxWidth := Properties.MaxWidth; + Column.MinWidth := Properties.MinWidth; + end; + end; +end; + procedure TCustomListViewColProperties.UpdateListView; var Index: Integer; Column: TListColumn; Properties: TCustomListViewColProperty; begin + // Only called when FListViewManaged = False BeginUpdate; try for Index := 0 to Count-1 do @@ -651,7 +660,13 @@ procedure TCustomListViewColProperties.UpdateFromListView; Properties.Alignment := Column.Alignment; Properties.Caption := Column.Caption; if Properties.Visible then + begin Properties.Width := Column.Width; + if Column.MaxWidth > 0 then + Properties.MaxWidth := Column.MaxWidth; + if Column.MinWidth > 0 then + Properties.MinWidth := Column.MinWidth; + end; end; UpdateOrderFromListView; diff --git a/source/packages/my/NortonLikeListView.pas b/source/packages/my/NortonLikeListView.pas index aebf1a6c..28eb5f01 100644 --- a/source/packages/my/NortonLikeListView.pas +++ b/source/packages/my/NortonLikeListView.pas @@ -40,6 +40,7 @@ TCustomNortonLikeListView = class(TCustomListView) procedure WMRButtonDown(var Message: TWMRButtonDown); message WM_RBUTTONDOWN; procedure WMLButtonUp(var Message: TWMLButtonUp); message WM_LBUTTONUP; procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN; + procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND; procedure WMChar(var Message: TWMChar); message WM_CHAR; procedure WMNotify(var Message: TWMNotify); message WM_NOTIFY; procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY; @@ -70,7 +71,7 @@ TCustomNortonLikeListView = class(TCustomListView) function ExCanChange(Item: TListItem; Change: Integer; NewState, OldState: Word): Boolean; dynamic; procedure InsertItem(Item: TListItem); override; - function NewColProperties: TCustomListViewColProperties; virtual; + function NewColProperties: TCustomListViewColProperties; virtual; abstract; procedure FocusSomething; virtual; function EnableDragOnClick: Boolean; virtual; procedure FocusItem(Item: TListItem); @@ -101,98 +102,11 @@ TCustomNortonLikeListView = class(TCustomListView) property LastSelectMethod: TSelectMethod read FLastSelectMethod; end; -type - TNortonLikeListView = class(TCustomNortonLikeListView) - published - { Published declarations } - property Align; - property AllocBy; - property Anchors; - property BiDiMode; - property BorderStyle; - property BorderWidth; - property Checkboxes; - property Color; - property ColumnClick; - property Constraints; - property Ctl3D; - property Enabled; - property Font; - property FlatScrollBars; - property FullDrag; - property GridLines; - property HideSelection; - property HotTrack; - property HotTrackStyles; - property IconOptions; - property Items; - property LargeImages; - property ReadOnly; - property RowSelect; - property ParentBiDiMode; - property ParentColor; - property ParentFont; - property ParentShowHint; - property PopupMenu; - property ShowColumnHeaders; - property ShowHint; - property SmallImages; - property StateImages; - property TabOrder; - property TabStop; - property ViewStyle; - property Visible; - property OnChange; - property OnChanging; - property OnClick; - property OnColumnClick; - property OnCustomDraw; - property OwnerDraw; - property OnCustomDrawItem; - property OnCustomDrawSubItem; - property OwnerData; - property OnGetImageIndex; - property OnCompare; - property OnData; - property OnDataFind; - property OnDataHint; - property OnDataStateChange; - property OnDblClick; - property OnDeletion; - property OnDrawItem; - property OnEdited; - property OnEditing; - property OnEndDock; - property OnEnter; - property OnExit; - property OnInsert; - property OnKeyDown; - property OnKeyPress; - property OnKeyUp; - property OnMouseDown; - property OnMouseMove; - property OnMouseUp; - property OnResize; - property OnStartDock; - property OnSelectItem; - - property NortonLike; - property OnSelectByMask; - property ColProperties; - end; - -procedure Register; - implementation uses PasTools, Types; -procedure Register; -begin - RegisterComponents('Martin', [TNortonLikeListView]); -end; - { TCustomNortonLikeListView } constructor TCustomNortonLikeListView.Create(AOwner: TComponent); @@ -617,6 +531,18 @@ procedure TCustomNortonLikeListView.WMKeyDown(var Message: TWMKeyDown); else inherited; end; +procedure TCustomNortonLikeListView.WMSysCommand(var Message: TWMSysCommand); +begin + // Ugly workaround to avoid Windows beeping when Alt+Grey +/- are pressed + // (for (Us)Select File with Same Ext commands) + if (Message.CmdType = SC_KEYMENU) and + ((Message.Key = Word('+')) or (Message.Key = Word('-'))) then + begin + Message.Result := 1; + end + else inherited; +end; + procedure TCustomNortonLikeListView.WMChar(var Message: TWMChar); var PLastSelectMethod: TSelectMethod; @@ -983,11 +909,6 @@ procedure TCustomNortonLikeListView.InsertItem(Item: TListItem); ItemSelected(Item, -1); end; -function TCustomNortonLikeListView.NewColProperties: TCustomListViewColProperties; -begin - Result := TListViewColProperties.Create(Self, 5); -end; - function TCustomNortonLikeListView.GetItemFromHItem(const Item: TLVItem): TListItem; begin with Item do diff --git a/source/packages/my/PasTools.pas b/source/packages/my/PasTools.pas index d309546e..33bdf205 100644 --- a/source/packages/my/PasTools.pas +++ b/source/packages/my/PasTools.pas @@ -11,10 +11,19 @@ function IsVistaHard: Boolean; function IsVista: Boolean; +// Prevent name conflict with C++ IsWin8. +{$HPPEMIT '#define IsWin7 IsWin7Pas'} +{$HPPEMIT END '#undef IsWin7'} function IsWin7: Boolean; +// Prevent name conflict with C++ IsWin8. +{$HPPEMIT '#define IsWin8 IsWin8Pas'} +{$HPPEMIT END '#undef IsWin8'} function IsWin8: Boolean; +// Prevent name conflict with C++ CutToChar. +{$HPPEMIT '#define CutToChar CutToCharPas'} +{$HPPEMIT END '#undef CutToChar'} function CutToChar(var Str: string; Ch: Char; Trim: Boolean): string; procedure FilterToFileTypes(Filter: string; FileTypes: TFileTypeItems); @@ -25,6 +34,7 @@ function LoadDimension(Dimension: Integer; PixelsPerInch: Integer): Integer; function StrToDimensionDef(Str: string; PixelsPerInch: Integer; Default: Integer): Integer; function SaveDimension(Dimension: Integer): Integer; function DimensionToDefaultPixelsPerInch(Dimension: Integer): Integer; +function ScaleByPixelsPerInch(Dimension: Integer): Integer; function LoadPixelsPerInch(S: string): Integer; function SavePixelsPerInch: string; @@ -47,6 +57,10 @@ procedure ForceColorChange(Control: TWinControl); var OnApiPath: TApiPathEvent = nil; +// Prevent name conflict with C++ ApiPath. +// We would not want to call this implementation in any case anyway. +{$HPPEMIT '#define ApiPath ApiPathPas'} +{$HPPEMIT END '#undef ApiPath'} function ApiPath(Path: string): string; type @@ -194,6 +208,11 @@ function DimensionToDefaultPixelsPerInch(Dimension: Integer): Integer; Result := MulDiv(Dimension, USER_DEFAULT_SCREEN_DPI, Screen.PixelsPerInch); end; +function ScaleByPixelsPerInch(Dimension: Integer): Integer; +begin + Result := MulDiv(Dimension, Screen.PixelsPerInch, USER_DEFAULT_SCREEN_DPI); +end; + function LoadPixelsPerInch(S: string): Integer; begin // for backward compatibility with version that did not save the DPI, diff --git a/source/packages/my/PathLabel.pas b/source/packages/my/PathLabel.pas index eff97649..b6fa5b5f 100644 --- a/source/packages/my/PathLabel.pas +++ b/source/packages/my/PathLabel.pas @@ -27,9 +27,9 @@ TCustomPathLabel = class(TCustomLabel) FHotTrack: Boolean; FMouseInView: Boolean; FIsActive: Boolean; + FIsEnabled: Boolean; FMask: string; FAutoSizeVertical: Boolean; - FAutoHotTrackColors: Boolean; procedure CMHintShow(var Message: TMessage); message CM_HINTSHOW; procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER; procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; @@ -42,11 +42,10 @@ TCustomPathLabel = class(TCustomLabel) procedure SetAutoSizeVertical(Value: Boolean); procedure SetFocusControl(Value: TWinControl); function GetFocusControl: TWinControl; - function HotTrackColorsStored(Index: Integer): Boolean; - procedure SetAutoHotTrackColors(Value: Boolean); function CalculateAutoHotTrackColor(C: TColor): TColor; procedure CalculateAutoHotTrackColors; function CalculateAutoHotTrackColorComponent(C: Byte; Bright: Boolean): Byte; + function UseHotTrack: Boolean; protected procedure AdjustBounds; override; procedure Click; override; @@ -60,17 +59,18 @@ TCustomPathLabel = class(TCustomLabel) function HotTrackPath(Path: string): string; procedure MouseMove(Shift: TShiftState; X: Integer; Y: Integer); override; procedure DoPathClick(Path: string); virtual; + procedure DblClick; override; + procedure DoContextPopup(MousePos: TPoint; var Handled: Boolean); override; public constructor Create(AnOwner: TComponent); override; procedure UpdateStatus; + function UseRightToLeftAlignment: Boolean; override; property ActiveColor: TColor index 1 read GetColors write SetColors default clActiveCaption; property ActiveTextColor: TColor index 3 read GetColors write SetColors default clCaptionText; - property ActiveHotTrackColor: TColor index 5 read GetColors write SetColors - stored HotTrackColorsStored; property UnixPath: Boolean read FUnixPath write SetUnixPath default False; property IndentHorizontal: Integer read FIndentHorizontal write SetIndentHorizontal default 5; @@ -80,14 +80,11 @@ TCustomPathLabel = class(TCustomLabel) default clInactiveCaption; property InactiveTextColor: TColor index 2 read GetColors write SetColors default clInactiveCaptionText; - property InactiveHotTrackColor: TColor index 4 read GetColors write SetColors - stored HotTrackColorsStored; property OnGetStatus: TPathLabelGetStatusEvent read FOnGetStatus write FOnGetStatus; property OnPathClick: TPathLabelPathClickEvent read FOnPathClick write FOnPathClick; property HotTrack: Boolean read FHotTrack write FHotTrack default False; property Mask: string read FMask write SetMask; property AutoSizeVertical: Boolean read FAutoSizeVertical write SetAutoSizeVertical default False; - property AutoHotTrackColors: Boolean read FAutoHotTrackColors write SetAutoHotTrackColors default True; property FocusControl: TWinControl read GetFocusControl write SetFocusControl; property Caption; @@ -100,18 +97,15 @@ TPathLabel = class(TCustomPathLabel) published property ActiveColor; property ActiveTextColor; - property ActiveHotTrackColor; property UnixPath; property IndentHorizontal; property IndentVertical; property InactiveColor; property InactiveTextColor; - property InactiveHotTrackColor; property AutoSizeVertical; property HotTrack; property OnGetStatus; property OnPathClick; - property AutoHotTrackColors; property Align; property Alignment; @@ -167,11 +161,11 @@ constructor TCustomPathLabel.Create(AnOwner: TComponent); FIndentVertical := 1; FUnixPath := False; FHotTrack := False; - FAutoHotTrackColors := True; FColors[0] := clInactiveCaption; FColors[1] := clActiveCaption; FColors[2] := clInactiveCaptionText; FColors[3] := clCaptionText; + FIsEnabled := True; CalculateAutoHotTrackColors; end; @@ -181,7 +175,7 @@ procedure TCustomPathLabel.CMHintShow(var Message: TMessage); begin HintPos.X := ClientOrigin.X + IndentHorizontal - 3; HintPos.Y := ClientOrigin.Y + IndentVertical - 3; - if HotTrack then Inc(HintPos.Y, Height); + if UseHotTrack then Inc(HintPos.Y, Height); end; end; { CMHintShow } @@ -190,33 +184,37 @@ procedure TCustomPathLabel.Click; HotPath: string; RemainingPath: string; begin - HotPath := HotTrackPath(FDisplayPath); - if HotPath <> '' then + if FIsEnabled then begin - if FDisplayPath = Caption then DoPathClick(HotPath) - else + HotPath := HotTrackPath(FDisplayPath); + if HotPath <> '' then begin - // Displayed path is shortened. - // The below is based on knowledge in MinimizeName algorithm - RemainingPath := Copy(FDisplayPath, Length(HotPath) + 1, - Length(FDisplayPath) - Length(HotPath)); - - if RemainingPath = Copy(Caption, Length(Caption) - Length(RemainingPath) + 1, - Length(RemainingPath)) then - begin - DoPathClick(Copy(Caption, 1, Length(Caption) - Length(RemainingPath))); - end + if FDisplayPath = Caption then DoPathClick(HotPath) else - if HotPath = Copy(Caption, 1, Length(HotPath)) then begin - DoPathClick(HotPath); - end - else Assert(False); + // Displayed path is shortened. + // The below is based on knowledge in MinimizeName algorithm + RemainingPath := Copy(FDisplayPath, Length(HotPath) + 1, + Length(FDisplayPath) - Length(HotPath)); + + if RemainingPath = Copy(Caption, Length(Caption) - Length(RemainingPath) + 1, + Length(RemainingPath)) then + begin + DoPathClick(Copy(Caption, 1, Length(Caption) - Length(RemainingPath))); + end + else + if HotPath = Copy(Caption, 1, Length(HotPath)) then + begin + DoPathClick(HotPath); + end + else Assert(False); + end; end; - end; - if Assigned(FocusControl) then FocusControl.SetFocus; - inherited; + if Assigned(FocusControl) then FocusControl.SetFocus; + + inherited; + end; end; { Click } procedure TCustomPathLabel.SetUnixPath(AUnixPath: Boolean); @@ -241,35 +239,17 @@ procedure TCustomPathLabel.SetMask(Value: string); procedure TCustomPathLabel.SetColors(Index: integer; Value: TColor); begin - Assert(Index in [0..5]); + Assert(Index in [0..3]); if FColors[Index] <> Value then begin FColors[Index] := Value; - if (Index = 4) or (Index = 5) then - FAutoHotTrackColors := False - else - CalculateAutoHotTrackColors; + CalculateAutoHotTrackColors; UpdateStatus; end; end; { SetColors } -function TCustomPathLabel.HotTrackColorsStored(Index: Integer): Boolean; -begin - Result := not AutoHotTrackColors; -end; - -procedure TCustomPathLabel.SetAutoHotTrackColors(Value: Boolean); -begin - if AutoHotTrackColors <> Value then - begin - FAutoHotTrackColors := Value; - CalculateAutoHotTrackColors; - UpdateStatus; - end; -end; - // taken from PngImageListEditor const @@ -441,13 +421,10 @@ function TCustomPathLabel.CalculateAutoHotTrackColor(C: TColor): TColor; procedure TCustomPathLabel.CalculateAutoHotTrackColors; begin - if AutoHotTrackColors then - begin - FColors[4] := CalculateAutoHotTrackColor(FColors[2]); - SetContrast(FColors[4], FColors[0], 50); - FColors[5] := CalculateAutoHotTrackColor(FColors[3]); - SetContrast(FColors[5], FColors[1], 50); - end; + FColors[4] := CalculateAutoHotTrackColor(FColors[2]); + SetContrast(FColors[4], FColors[0], 50); + FColors[5] := CalculateAutoHotTrackColor(FColors[3]); + SetContrast(FColors[5], FColors[1], 50); end; procedure TCustomPathLabel.SetIndentHorizontal(AIndent: Integer); @@ -508,7 +485,7 @@ procedure TCustomPathLabel.DoDrawTextIntern(var Rect: TRect; Flags: Longint; S: if (Flags and DT_CALCRECT <> 0) and ((S = '') or ShowAccelChar and (S[1] = '&') and (S[2] = #0)) then S := S + ' '; if not ShowAccelChar then Flags := Flags or DT_NOPREFIX; - Flags := DrawTextBiDiModeFlags(Flags); + // have to apply DrawTextBiDiModeFlags if we ever deal with dibi Canvas.Font := Font; Width := (Rect.Right - Rect.Left); @@ -586,12 +563,8 @@ procedure TCustomPathLabel.DoDrawTextIntern(var Rect: TRect; Flags: Longint; S: else Hint := S + Mask; Str := FDisplayPath + FDisplayMask; - if not Enabled then + if not FIsEnabled then begin - OffsetRect(Rect, 1, 1); - Canvas.Font.Color := clBtnHighlight; - DrawText(Canvas.Handle, PChar(Str), Length(Str), Rect, Flags); - OffsetRect(Rect, -1, -1); Canvas.Font.Color := clBtnShadow; DrawText(Canvas.Handle, PChar(Str), Length(Str), Rect, Flags); end @@ -648,7 +621,7 @@ function TCustomPathLabel.HotTrackPath(Path: string): string; Len: Integer; begin Result := ''; - if FHotTrack and FMouseInView and (Path <> '') then + if UseHotTrack and FMouseInView and (Path <> '') then begin P := ScreenToClient(Mouse.CursorPos); Len := P.X - FIndentHorizontal; @@ -684,6 +657,13 @@ function TCustomPathLabel.GetColors(Index: Integer): TColor; Result := FColors[Index]; end; { GetColors } +function TCustomPathLabel.UseRightToLeftAlignment: Boolean; +begin + // Not sure how to properly deal with RTL atm. + // See also a comment on DrawTextBiDiModeFlags in DoDrawTextIntern + Result := False; +end; + procedure TCustomPathLabel.Paint; const Alignments: array[TAlignment] of Word = (DT_LEFT, DT_RIGHT, DT_CENTER); @@ -777,15 +757,22 @@ function TCustomPathLabel.TrackingActive: Boolean; procedure TCustomPathLabel.UpdateStatus; var NewIsActive: Boolean; + NewIsEnabled: Boolean; NewColor: TColor; begin if TrackingActive then begin NewIsActive := IsActive; + NewIsEnabled := + Enabled and + ((not Assigned(FocusControl)) or FocusControl.Enabled); NewColor := FColors[Integer(NewIsActive)]; - if (NewIsActive <> FIsActive) or (NewColor <> Color) then + if (NewIsActive <> FIsActive) or + (NewIsEnabled <> FIsEnabled) or + (NewColor <> Color) then begin FIsActive := NewIsActive; + FIsEnabled := NewIsEnabled; Color := NewColor; Invalidate; end; @@ -807,10 +794,15 @@ procedure TCustomPathLabel.Notification(AComponent: TComponent; if NeedUpdate then UpdateStatus; end; { Notification } +function TCustomPathLabel.UseHotTrack: Boolean; +begin + Result := HotTrack and FIsEnabled; +end; + procedure TCustomPathLabel.MouseMove(Shift: TShiftState; X: Integer; Y: Integer); begin inherited; - if FMouseInView and HotTrack and (FDisplayHotTrack <> HotTrackPath(FDisplayPath)) then + if FMouseInView and UseHotTrack and (FDisplayHotTrack <> HotTrackPath(FDisplayPath)) then begin Invalidate; end; @@ -822,6 +814,26 @@ procedure TCustomPathLabel.DoPathClick(Path: string); OnPathClick(Self, Path); end; +procedure TCustomPathLabel.DblClick; +begin + if FIsEnabled then + begin + inherited; + end; +end; + +procedure TCustomPathLabel.DoContextPopup(MousePos: TPoint; var Handled: Boolean); +begin + if FIsEnabled then + begin + inherited; + end + else + begin + Handled := True; + end; +end; + procedure TCustomPathLabel.CMMouseEnter(var Message: TMessage); begin inherited; diff --git a/source/packages/my/TcpIp.pas b/source/packages/my/TcpIp.pas deleted file mode 100644 index 265e97c5..00000000 --- a/source/packages/my/TcpIp.pas +++ /dev/null @@ -1,901 +0,0 @@ -unit TcpIp; - -interface - -{$WARN SYMBOL_DEPRECATED OFF} - -{ Based on TCP/IP component V0.2 } -{ Copyright 1997 Andreas Hörstemeier Version 0.22 2001-07-09 } -{ http://www.hoerstemeier.com/tcpip.htm } - -{$x+} - -uses - Sysutils, - Classes, - Winsock, - Windows; - -type - TSocketState = (invalid, valid, connected, state_unknown); - TTraceLevel = (tt_proto_sent, tt_proto_get, tt_socket); - - ETcpIpError = class(Exception); - - ESocketError = class(ETcpIpError) - ErrorNumber: Integer; - constructor Create(Number: Integer); - end; - - EProtocolError = class(ETcpIpError) - ErrorNumber: Word; - Protocol: string; - constructor Create(const Proto, Msg: string; number: Word); - end; - - TTraceProc = procedure(const S: string; Level: TTraceLevel) of object; - - TTcpIp = class(TComponent) - protected - FSocket: TSocket; - FHostname: string; - FTracer: TTraceProc; - FSocketNumber: SmallInt; - IpAddress: LongInt; // Network order! - FEof: Boolean; - FStream: TStream; - FBuffer: Pointer; - FLoggedIn: Boolean; - function CreateSocket: TSocket; - procedure ConnectSocket(var Socket: TSocket; SocketNumber: SmallInt; - IpAddress: LongInt); - procedure BindSocket(var Socket: TSocket; OutPortMin, OutPortMax: Word); - procedure OpenSocketOut(var Socket: TSocket; SocketNumber: SmallInt; - IpAddress: LongInt); virtual; - procedure OpenSocketIn(var Socket: TSocket; var SocketNumber: SmallInt; - IpAddress: LongInt); - procedure CloseSocket(var Socket: TSocket); - function AcceptSocketIn(Socket: TSocket; var SockInfo: TSockAddr): TSocket; - function SocketState(Socket: TSocket): TSocketState; - function SocketByName(const Service: string): SmallInt; - function ReadLine(Socket: TSocket): string; - procedure ReadVar(Socket: TSocket; var Buf; Size: Integer; var Ok: Integer); - procedure WriteBuf(Socket: TSocket; const Buf; var Size: Integer); - procedure WriteStr(Socket: TSocket; const S: string); - procedure SetStream(Value: TStream); - procedure Action; virtual; - procedure SendCommand(const S: string); virtual; - - public - procedure Login; virtual; - procedure Logout; virtual; - property OnTrace: TTraceProc read FTracer write FTracer; - constructor Create(AOwner: TComponent); override; - destructor Destroy; override; - function Eof(Socket: TSocket): Boolean; virtual; - end; - - THttp = class(TTcpIp) - protected - FUrl: string; - FPath: string; - FProxy: string; - FSender: string; - FReference: string; - FAgent: string; - FNoCache: boolean; - FStatusNr: Integer; - FStatusTxt: string; - FSize: Integer; - FType: string; - FDoAuthor: TStringList; - FContentPost: string; - FRedirect: Boolean; - - procedure GetBody(Post: Boolean); - procedure SendRequest(const Method, Version: string); - procedure GetAnswer; - procedure ReportStatusError; - - public - property Stream: TStream read FStream write SetStream; - property ContentSize: Integer read FSize; - property ContentType: string read FType; - property StatusNumber: Integer read FStatusNr; - property StatusText: string read FStatusTxt; - procedure Action; override; - procedure Post; - constructor Create(AOwner: TComponent); override; - destructor Destroy; override; - property AuthorizationRequest: TStringList read FDoAuthor; - - published - property URL: string read FUrl write FUrl; - property Proxy: string read FProxy write FProxy; - property Sender: string read FSender write FSender; - property Agent: string read FAgent write FAgent; - property Reference: string read FReference write FReference; - property NoCache: Boolean read FNoCache write FNoCache; - property ContentTypePost: string read FContentPost write FContentPost; - property OnTrace; - end; - -procedure Register; - -resourcestring - SSocketError2 = 'Socket error (%s)'; - STimeout = 'Timeout'; - SUnknownSockError = 'Unknown error'; - SHttpError = 'Received response %d %s from %s'; - SRedirectLimitError = 'Exceeded maximal redirect limie %d'; - -implementation - -const - BackLog = 2; // possible values 1..5 - BufSize = $7F00; // size of the internal standard buffer - MaxRedirects = 4; - INVALID_IP_ADDRESS= -1; // only invalid as a host ip, maybe OK for broadcast ($FFFFFFFF as longint) - -function LookupHostname(const Hostname: string): LongInt; -var - RemoteHost: PHostEnt; // no, don't free it! - IpAddress: LongInt; -begin - IpAddress:=INVALID_IP_ADDRESS; - try - if Hostname='' then - begin - Result := IpAddress; - Exit; - end - else - begin - // try a xxx.xxx.xxx.xx first - IpAddress := Winsock.Inet_Addr(PAnsiChar(AnsiString(Hostname))); - if IpAddress = SOCKET_ERROR then - begin - RemoteHost := Winsock.GetHostByName(PAnsiChar(AnsiString(Hostname))); - if (RemoteHost = nil) or (RemoteHost^.h_length <= 0) then - begin - Result := IpAddress; - Exit; // host not found - end - else - begin - IpAddress := LongInt(Pointer(RemoteHost^.h_addr_list^)^); - end; - // use the first address given - end; - end; - except - IpAddress := INVALID_IP_ADDRESS; - end; - Result := IpAddress; -end; - -function Ip2String(IpAddress: LongInt): string; -begin - IpAddress := winsock.ntohl(IpAddress); - Result := - IntToStr(IpAddress shr 24)+'.'+ - IntToStr((IpAddress shr 16) and $FF)+'.'+ - IntToStr((IpAddress shr 8) and $FF)+'.'+ - IntToStr(IpAddress and $FF); -end; - -// find the count'th occurence of the substring, -// if count<0 then look from the back -function PosN(const s, t: string; Count: Integer): Integer; -var - i, h, last: Integer; - u: string; -begin - u := t; - if Count > 0 then - begin - Result := length(t); - for i := 1 to Count do - begin - h := Pos(s, u); - if h > 0 then - u := Copy(u, Pos(s, u) + 1, length(u)) - else - begin - u := ''; - Inc(Result); - end; - end; - Result := Result - Length(u); - end - else - if Count < 0 then - begin - last := 0; - for i := Length(t) downto 1 do - begin - u := Copy(t, i, Length(t)); - h := Pos(s, u); - if (h <> 0) and (h + i <> last) then - begin - last := h + i - 1; - Inc(Count); - if Count = 0 then Break; - end; - end; - - if Count = 0 then Result := last - else Result := 0; - end - else - Result := 0; -end; - -constructor EProtocolError.Create(const Proto, Msg: string; Number: Word); -begin - inherited Create(Msg); - Protocol := Proto; - ErrorNumber := Number; -end; - -constructor ESocketError.Create(Number: Integer); -const - UnknownSuccessError = $1BD0000; -var - SysError: string; -begin - if Number = UnknownSuccessError then SysError := SUnknownSockError - else SysError := SysErrorMessage(Number); - inherited Create(Format(SSocketError2, [SysError])); - ErrorNumber := Number; -end; - -// standard syntax of an URL: -// protocol://[user[:password]@]server[:port]/path -procedure ParseUrl(const Url: string; var Proto, User, Pass, Host, Port, Path: string); -var - p, q: Integer; - s: string; -begin - Proto := ''; - User := ''; - Pass := ''; - Host := ''; - Port := ''; - Path := ''; - - p := Pos('://', Url); - if p = 0 then - begin - if LowerCase(Copy(Url, 1, 7)) = 'mailto:' then - begin - // mailto:// not common - Proto := 'mailto'; - p := Pos(':', Url); - end; - end - else - begin - Proto := Copy(Url, 1, p-1); - Inc(p,2); - end; - s := Copy(Url, p + 1, Length(Url)); - - p := Pos('/',s); - if p = 0 then p := Length(s) + 1; - Path := Copy(s, p, Length(s)); - s := Copy(s, 1, p-1); - - p := PosN(':', s, -1); - if p > Length(s) then p:=0; - q := PosN('@', s, -1); - if q > Length(s) then q := 0; - if (p = 0) and (q = 0) then - begin - // no user, password or port - Host := s; - Exit; - end - else - if q < p then - begin - // a port given - Port := Copy(s, p + 1, Length(s)); - Host := Copy(s, q + 1, p - q - 1); - if q = 0 then exit; // no user, password - s := Copy(s, 1, q - 1); - end - else - begin - Host := Copy(s, q + 1, Length(s)); - s := Copy(s, 1, q - 1); - end; - p := Pos(':', s); - if p = 0 then User := s - else - begin - User := Copy(s, 1, p - 1); - Pass := Copy(s, p + 1, Length(s)); - end; -end; - - { TTcpIp } - -constructor TTcpIp.Create(AOwner: TComponent); -begin - inherited; - - GetMem(FBuffer, BufSize); - FStream := TMemorystream.Create; - FSocket := INVALID_SOCKET; - IpAddress := INVALID_IP_ADDRESS; - FLoggedIn := False; -end; - -destructor TTcpIp.Destroy; -begin - FTracer := nil; - if FBuffer <> nil then - FreeMem(FBuffer, BufSize); - FStream.Free; - if FSocket <> INVALID_SOCKET then - Logout; - inherited; -end; - -function TTcpIp.CreateSocket: TSocket; -begin - Result := Winsock.Socket(PF_INET, SOCK_STREAM, IPPROTO_IP); - if Result = INVALID_SOCKET then - begin - raise ESocketError.Create(WSAGetLastError); - end; -end; - -procedure TTcpIp.BindSocket(var Socket: TSocket; OutPortMin, OutPortMax: Word); -var - LocalAddress: TSockAddr; - i: Word; -begin - with LocalAddress do - begin - Sin_Family := PF_INET; - Sin_addr.S_addr := INADDR_ANY; - end; - i := OutPortMin; - while i <= OutPortMax do - begin - LocalAddress.Sin_Port := Winsock.htons(i); - if Winsock.bind(Socket, LocalAddress, SizeOf(LocalAddress)) <> - SOCKET_ERROR then Break; - Inc(i); - end; -end; - -procedure TTcpIp.ConnectSocket(var Socket: TSocket; SocketNumber: SmallInt; - IpAddress: LongInt); -var - RemoteAddress: TSockAddr; - Error: Integer; -begin - with RemoteAddress do - begin - Sin_Family := PF_INET; - Sin_Port := Winsock.htons(SocketNumber); - Sin_addr := TInAddr(IpAddress); - end; - - if Winsock.Connect(Socket,RemoteAddress, - SizeOf(RemoteAddress)) = SOCKET_ERROR then - begin - Error := Winsock.WSAGetLastError; - if Error <> WSAEWouldBlock then - begin - CloseSocket(Socket); - if Assigned(FTracer) then - begin - FTracer('Failed to open output socket '+IntToStr(SocketNumber)+' to host '+ - Ip2String(IpAddress), tt_socket); - end; - raise ESocketError.Create(Error); - end - end - else - if Assigned(FTracer) then - begin - FTracer('Opened output socket '+IntToStr(SocketNumber)+' to host '+ - Ip2String(IpAddress)+' successfully; ID '+IntToStr(Socket), tt_socket); - end; -end; - -procedure TTcpIp.OpenSocketOut(var Socket: TSocket; SocketNumber:SmallInt; - IpAddress: LongInt); -begin - CloseSocket(Socket); - Socket := CreateSocket; - ConnectSocket(Socket, SocketNumber, IpAddress); -end; - -procedure TTcpIp.OpenSocketIn(var Socket: TSocket; var SocketNumber: SmallInt; - IpAddress: LongInt); -var - LocalAddress: TSockAddr; - l: Integer; -begin - CloseSocket(Socket); - Socket := CreateSocket; - // open the socket and let it listen - with LocalAddress do - begin - Sin_Family := PF_INET; - Sin_Port := Winsock.htons(SocketNumber); - Sin_addr := TInAddr(IpAddress); - end; - - if Winsock.Bind(Socket, LocalAddress, SizeOf(LocalAddress)) = SOCKET_ERROR then - begin - if Assigned(FTracer) then - begin - FTracer('Failed to bind socket '+IntToStr(SocketNumber)+' for local ip '+ - Ip2String(IpAddress), tt_socket); - end; - CloseSocket(Socket); - Exit; - end - else - if Assigned(FTracer) then - begin - FTracer('Bound to socket '+IntToStr(SocketNumber)+' for local ip '+ - Ip2String(IpAddress), tt_socket); - end; - - l := SizeOf(LocalAddress); - if Winsock.GetSockName(Socket, LocalAddress, l) <> SOCKET_ERROR then - SocketNumber := Winsock.ntohs(LocalAddress.Sin_Port); - - if Winsock.Listen(Socket, BackLog) = SOCKET_ERROR then - begin - CloseSocket(Socket); - if Assigned(FTracer) then - begin - FTracer('Failed to set input socket ' + IntToStr(SocketNumber) + - ' to listening mode', tt_socket); - end - end - else - if Assigned(FTracer) then - begin - FTracer('Set input socket ' + IntToStr(SocketNumber) + - ' to listening mode sucessfully; ID ' + IntToStr(Socket), tt_socket); - end; -end; - -function TTcpIp.AcceptSocketIn(Socket: TSocket; var SockInfo: TSockAddr): TSocket; -var - x: u_int; - LocalAddress: TSockAddr; - TempSocket: TSocket; -begin - x := SizeOf(LocalAddress); -{$ifdef ver80} - TempSocket := Winsock.Accept(Socket, LocalAddress, x); -{$else} -{$ifdef ver90} - TempSocket := Winsock.Accept(Socket, LocalAddress, x); -{$else} { Delphi 3 and higher } - TempSocket := Winsock.Accept(Socket, @LocalAddress, @x); -{$endif} -{$endif} - if TempSocket = SOCKET_ERROR then - begin - // no incoming call available - TempSocket := INVALID_SOCKET; - if Assigned(FTracer) then - begin - FTracer('No incoming connection found on socket ID '+IntToStr(Socket), - tt_socket); - end; - end - else - if Assigned(FTracer) then - begin - FTracer('Incoming connection found on socket ID '+IntToStr(Socket)+ - '; generated socket ID '+IntToStr(TempSocket), tt_socket); - end; - AcceptSocketIn := TempSocket; - SockInfo := LocalAddress; -end; - -function TTcpIp.SocketState(Socket: TSocket): TSocketState; -var - PeerAdr: TSockAddr; - x: u_int; -begin - if Socket = INVALID_SOCKET then Result := invalid - else - begin - x := SizeOf(TSockAddr); - if Winsock.GetPeerName(Socket, PeerAdr, x) = 0 then - Result := connected - else - begin - if Winsock.WSAGetLastError <> WSAENOTCONN then - Result := state_unknown - else - Result := valid - end; - end; -end; - -procedure TTcpIp.CloseSocket(var Socket: TSocket); -begin - if Socket <> INVALID_SOCKET then - begin - Winsock.CloseSocket(Socket); - if Assigned(FTracer) then - FTracer('Closed socket ID '+IntToStr(socket), tt_socket); - Socket := INVALID_SOCKET; - end; -end; - -function TTcpIp.SocketByName(const Service: string): SmallInt; -var - ServiceEntry: PServEnt; - s: string; -begin - s := service + #0; - ServiceEntry := Winsock.GetServByName(pansichar(AnsiString(s)), 'tcp'); - if ServiceEntry = nil then - Result := 0 - else - Result := Winsock.htons(ServiceEntry^.s_port); -end; - -procedure TTcpIp.Login; -begin - if FLoggedIn then Logout; - IpAddress := LookupHostname(FHostname); - if IpAddress = INVALID_IP_ADDRESS then - raise ETcpIpError.Create('Couldn''t resolve hostname ' + FHostname); - OpenSocketOut(FSocket, FSocketNumber, IpAddress); - FEof := False; - FLoggedIn := True; -end; - -procedure TTcpIp.LogOut; -begin - CloseSocket(FSocket); - FSocket := invalid_socket; - FLoggedIn := False; -end; - -procedure TTcpIp.SendCommand(const S: string); -begin - WriteStr(FSocket, S + #13#10); - if Assigned(FTracer) then - FTracer(S, tt_proto_sent); -end; - -function TTcpIp.Eof(Socket: TSocket): Boolean; -begin - Result := FEof or (SocketState(Socket) <> connected); -end; - -procedure TTcpIp.ReadVar(Socket: TSocket; var Buf; Size: Integer; - var Ok: Integer); -var - TempBuf: Pointer; - Error: Integer; - ReadSet: TFDSet; - Timeout: TTimeVal; -begin - TempBuf := nil; - try - if @Buf = nil then - GetMem(TempBuf, Size) // alloc for the -> /dev/null - else - TempBuf := @Buf; - - repeat - FD_ZERO(ReadSet); - FD_SET(Socket, ReadSet); - Timeout.tv_sec := 5; - Timeout.tv_usec := 0; - Ok := Winsock.Select(1, @ReadSet, nil, nil, @Timeout); - if Ok = 0 then - raise ETcpIpError.Create(Format(SSocketError2, [STimeout])) - else if Ok = SOCKET_ERROR then - raise ESocketError.Create(WSAGetLastError); - Ok := Winsock.Recv(Socket, TempBuf^, Size, 0); - if Ok <= 0 then - begin - Error := Winsock.WSAGetLastError; - FEof := (Error <> WSAEWouldBlock); - end - else - begin - if Assigned(FTracer) then - FTracer('Received ' + IntToStr(Ok) + ' bytes on socket ID ' + - IntToStr(FSocket), tt_socket); - end; - until FEof or (Ok > 0); - finally - if @Buf = nil then - FreeMem(TempBuf, Size) - end; -end; - -function TTcpIp.ReadLine(Socket: TSocket): string; -var - x: AnsiChar; - Ok: Integer; - s: UTF8String; -begin - s := ''; - repeat - ReadVar(Socket, x, 1, Ok); - if Ok <> 1 then - begin - Break; - end - else - if x = #13 then // at least NCSA 1.3 does send a #10 only - else - if x = #10 then - begin - Break; - end - else - begin - s := s + UTF8String(x); - end; - until Eof(Socket); - Result := string(s); -end; - -procedure TTcpIp.WriteBuf(Socket: TSocket; const Buf; var Size: Integer); -begin - Size := Winsock.Send(Socket, Pointer(@Buf)^, Size, 0); - if Assigned(FTracer) then - FTracer('Sent ' + IntToStr(Size) + ' bytes on socket ID ' + - IntToStr(FSocket), tt_socket); -end; - -procedure TTcpIp.WriteStr(Socket: TSocket; const s: string); -var - u: UTF8String; - l: Integer; -begin - u := UTF8String(s); - l := Length(u); -{$ifdef ver80} - WriteBuf(Socket, PAnsiChar(@u[1])^, l); -{$else} -{$ifopt h-} - WriteBuf(Socket, PAnsiChar(@u[1])^, l); -{$else} - WriteBuf(Socket, PAnsiChar(u)^, l); -{$endif} -{$endif} -end; - -procedure TTcpIp.SetStream(Value: TStream); -begin - TMemoryStream(FStream).LoadFromStream(value); -end; - -procedure TTcpIp.Action; -var - p: Pointer; - ok, ok2: Integer; -begin - Login; - TMemoryStream(FStream).Clear; - while not Eof(FSocket) do - begin - ReadVar(FSocket, FBuffer^, BufSize, ok); - p := FBuffer; - while ok > 0 do - begin - // just to be sure everything goes into the stream - ok2 := FStream.write(p^, ok); - Dec(ok,ok2); - p := Pointer(LongInt(p) + ok2); - end; - end; - FStream.Seek(0, 0); -end; - - { THttp } - -constructor THttp.Create(AOwner: TComponent); -begin - inherited; - - FContentPost := 'application/x-www-form-urlencoded'; - FDoAuthor := TStringlist.Create; - FRedirect := False; -end; - -destructor THttp.Destroy; -begin - FDoAuthor.Free; - inherited; -end; - -procedure THttp.SendRequest(const Method, Version: string); -begin - SendCommand(Method + ' ' + FPath + ' HTTP/' + Version); - SendCommand('Host: ' + FHostname); - SendCommand('Connection: close'); - if FSender <> '' then - SendCommand('From: ' + FSender); - if FReference <> '' then - SendCommand('Referer: ' + FReference); - if FAgent <> '' then - SendCommand('User-Agent: ' + FAgent); - if FNoCache then - SendCommand('Pragma: no-cache'); - if Method = 'POST' then - begin - SendCommand('Content-Length: ' + IntToStr(Stream.Size)); - if FContentPost <> '' then - SendCommand('Content-Type: ' + FContentPost); - end; - WriteStr(FSocket, #13#10); // finalize the request -end; - -procedure THttp.ReportStatusError; -begin - raise EProtocolError.Create('HTTP', - Format(SHttpError, [FStatusNr, FStatusTxt, FHostName]), FStatusNr); -end; - -procedure THttp.GetAnswer; -var - s: string; - Proto, User, Pass, Port: string; - Field, Data: string; -begin - FDoAuthor.Clear; - FType := ''; - FSize := 0; - FRedirect := False; - - repeat - s := ReadLine(FSocket); - if s <> '' then - if Assigned(FTracer) then - FTracer(s, tt_proto_get); - - // many servers (including ours) obviously return 1.1 response to 1.0 request - if (Copy(s, 1, 8) = 'HTTP/1.0') or - (Copy(s, 1, 8) = 'HTTP/1.1') then - begin - FStatusNr := StrToInt(Copy(s, 10, 3)); - FStatusTxt := Copy(s, 14, Length(s)); - if FStatusNr >= 400 then ReportStatusError; - end - else - if Pos(':', s) > 0 then - begin - Field := LowerCase(Copy(s, 1, Pos(':', s) - 1)); - Data := Copy(s, Pos(':', s) + 2, Length(s)); - if Field = 'location' then - begin - if Proxy <> '' then - FPath := Data // it goes via a proxy, so just change the uri - else - begin - ParseUrl(Data, Proto, User, Pass, FHostname, Port, FPath); - if Port <> '' then FSocketNumber := StrToInt(Port); - end; - FRedirect := True; - end - else - if Field = 'content-length' then - FSize := StrToInt(Data) - else - if Field = 'content-type' then - FType := Data - else - if Field = 'www-authenticate' then - FDoAuthor.Add(Data); - end - until s = ''; -end; - -procedure THttp.Action; -begin - GetBody(False); -end; - -procedure THttp.GetBody(Post: Boolean); -var - Proto, User, Pass, Host, Port, Path: string; - Method: string; - Redirects: Integer; - p: Pointer; - ok, ok2: Integer; -begin - // parse url and proxy to FHostname, FPath and FSocketNumber - if FProxy <> '' then - begin - ParseUrl(FUrl, Proto, User, Pass, Host, Port, Path); - FPath := FUrl; - if Proto = '' then - FPath := 'http://' + FPath; - ParseUrl(FProxy, Proto, User, Pass, Host, Port, Path); - if Port = '' then Port := '8080'; - end - else - begin - ParseUrl(FUrl, Proto, User, Pass, Host, Port, FPath); - if Port = '' then Port := '80'; - end; - if Proto = '' then Proto := 'http'; - if FPath = '' then FPath := '/'; - - FHostname := Host; - FSocketNumber := StrToInt(Port); - Redirects := 0; - // loop until we get answer without Location header - repeat - Inc(Redirects); - if Redirects > MaxRedirects then - raise ETcpIpError.Create(Format(SRedirectLimitError, [MaxRedirects])); - // do directly GET/POST, instead of HEAD first. - // currently we use this for updates only and the potentional overhead - // of GET/POST on redirect answer is smaller then two requests per each check - // (especially for the server itself) - Login; - if Post then Method := 'POST' - else Method := 'GET'; - SendRequest(Method, '1.1'); - if Post then - begin - // Send the data - TMemoryStream(FStream).Seek(0, 0); - ok := 1; - while ok > 0 do - begin - ok := FStream.Read(FBuffer^, BufSize); - WriteBuf(FSocket, FBuffer^, ok); - end; - end; - GetAnswer; - // read the data - if not FRedirect then - begin - TMemoryStream(FStream).Clear; - while not Eof(FSocket) do - begin - ReadVar(FSocket, FBuffer^, BufSize, Ok); - p := FBuffer; - while ok > 0 do - begin - // just to be sure everything goes into the stream - ok2 := FStream.Write(p^, ok); - Dec(ok, ok2); - p := Pointer(LongInt(p) + ok2); - end; - end; - FStream.Seek(0,0); // set the stream back to start - end; - Logout; - until not FRedirect; - if FStatusNr <> 200 then ReportStatusError; -end; - -procedure THttp.Post; -begin - GetBody(True); -end; - -procedure Register; -begin - RegisterComponents('Martin', [THttp]); -end; - -initialization -end. diff --git a/source/packages/my/UpDownEdit.pas b/source/packages/my/UpDownEdit.pas index bc1c2b96..ddab4b35 100644 --- a/source/packages/my/UpDownEdit.pas +++ b/source/packages/my/UpDownEdit.pas @@ -147,7 +147,7 @@ procedure Register; implementation uses - CommCtrl; + CommCtrl, PasTools, Math; procedure Register; begin @@ -156,8 +156,7 @@ procedure Register; function DefBtnWidth: Integer; begin - Result := GetSystemMetrics(SM_CXVSCROLL); - if Result > 15 then Result := 15; + Result := Min(GetSystemMetrics(SM_CXVSCROLL), ScaleByPixelsPerInch(15)); end; type diff --git a/source/packages/png/License.txt b/source/packages/png/License.txt index 1ea13b10..607f20ce 100644 --- a/source/packages/png/License.txt +++ b/source/packages/png/License.txt @@ -71,4 +71,4 @@ system(s). Martijn Saly martijn@thany.org -http://www.thany.org/ \ No newline at end of file +http://www.thany.org/ diff --git a/source/packages/png/PngImageListEditor.dfm b/source/packages/png/PngImageListEditor.dfm index a4ef0c51..863c2c10 100644 --- a/source/packages/png/PngImageListEditor.dfm +++ b/source/packages/png/PngImageListEditor.dfm @@ -3,8 +3,8 @@ object PngImageListEditorDlg: TPngImageListEditorDlg Top = 128 BorderIcons = [biSystemMenu] Caption = 'Editing PngImageList' - ClientHeight = 288 - ClientWidth = 461 + ClientHeight = 565 + ClientWidth = 618 Color = clBtnFace Font.Charset = ANSI_CHARSET Font.Color = clWindowText @@ -22,18 +22,18 @@ object PngImageListEditorDlg: TPngImageListEditorDlg object pnlMain: TPanel Left = 0 Top = 0 - Width = 461 - Height = 249 + Width = 618 + Height = 526 BevelOuter = bvNone TabOrder = 0 DesignSize = ( - 461 - 249) + 618 + 526) object gbxProperties: TGroupBox Left = 8 Top = 4 Width = 177 - Height = 128 + Height = 405 Anchors = [akLeft, akTop, akBottom] Caption = 'Image properties' TabOrder = 0 @@ -86,8 +86,8 @@ object PngImageListEditorDlg: TPngImageListEditorDlg object lbxImages: TListBox Left = 276 Top = 8 - Width = 177 - Height = 209 + Width = 334 + Height = 486 Style = lbOwnerDrawVariable Anchors = [akLeft, akTop, akRight, akBottom] DragCursor = crDefault @@ -108,8 +108,8 @@ object PngImageListEditorDlg: TPngImageListEditorDlg end object cmbPreviewBackground: TComboBox Left = 276 - Top = 220 - Width = 177 + Top = 497 + Width = 334 Height = 21 Style = csOwnerDrawFixed Anchors = [akLeft, akRight, akBottom] @@ -126,7 +126,7 @@ object PngImageListEditorDlg: TPngImageListEditorDlg end object gbxImageInfo: TGroupBox Left = 8 - Top = 136 + Top = 413 Width = 177 Height = 105 Anchors = [akLeft, akBottom] @@ -220,7 +220,7 @@ object PngImageListEditorDlg: TPngImageListEditorDlg end object pnlActionButtons: TPanel Left = 193 - Top = 35 + Top = 173 Width = 75 Height = 178 Anchors = [akLeft] @@ -458,16 +458,16 @@ object PngImageListEditorDlg: TPngImageListEditorDlg end object pnlButtons: TPanel Left = 0 - Top = 249 - Width = 461 + Top = 526 + Width = 618 Height = 37 BevelOuter = bvNone TabOrder = 1 DesignSize = ( - 461 + 618 37) object pnlModalButtons: TPanel - Left = 152 + Left = 231 Top = 4 Width = 158 Height = 25 @@ -542,7 +542,7 @@ object PngImageListEditorDlg: TPngImageListEditorDlg end end object chkUseFilenames: TCheckBox - Left = 341 + Left = 498 Top = 7 Width = 112 Height = 17 diff --git a/source/packages/tb2k/GPL-LICENSE.txt b/source/packages/tb2k/GPL-LICENSE.txt index 5b6e7c66..576248a7 100644 --- a/source/packages/tb2k/GPL-LICENSE.txt +++ b/source/packages/tb2k/GPL-LICENSE.txt @@ -1,12 +1,12 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Preamble + Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public @@ -56,7 +56,7 @@ patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. - GNU GENERAL PUBLIC LICENSE + GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains @@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - NO WARRANTY + NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN @@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - END OF TERMS AND CONDITIONS + END OF TERMS AND CONDITIONS - How to Apply These Terms to Your New Programs + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it diff --git a/source/packages/tb2k/TB2Dock.pas b/source/packages/tb2k/TB2Dock.pas index ec29e3a3..48c1df07 100644 --- a/source/packages/tb2k/TB2Dock.pas +++ b/source/packages/tb2k/TB2Dock.pas @@ -585,16 +585,18 @@ TControlAccess = class(TControl); const DockedBorderSize = 2; DockedBorderSize2 = DockedBorderSize*2; + +var DragHandleSizes: array[Boolean, TTBDragHandleStyle] of Integer = ((9, 0, 6), (14, 14, 14)); DragHandleXOffsets: array[Boolean, TTBDragHandleStyle] of Integer = ((2, 0, 1), (3, 0, 5)); + +const HT_TB2k_Border = 2000; HT_TB2k_Close = 2001; HT_TB2k_Caption = 2002; - DefaultBarWidthHeight = 8; - ForceDockAtTopRow = 0; ForceDockAtLeftPos = -8; @@ -1023,7 +1025,9 @@ function TTBDock.GetHighestRow(const HighestEffective: Boolean): Integer; else J := FDockRow; if J > Result then + begin Result := J; + end; end; end; @@ -5590,4 +5594,17 @@ procedure TBRegSavePositions(const OwnerComponent: TComponent; end; end; +var + B: Boolean; + Style: TTBDragHandleStyle; +initialization + for B := False to True do + begin + for Style := Low(TTBDragHandleStyle) to High(TTBDragHandleStyle) do + begin + // DPI-scaling for a lack of better choice here + DragHandleSizes[B][Style] := MulDiv(DragHandleSizes[B][Style], Screen.PixelsPerInch, USER_DEFAULT_SCREEN_DPI); + DragHandleXOffsets[B][Style] := MulDiv(DragHandleXOffsets[B][Style], Screen.PixelsPerInch, USER_DEFAULT_SCREEN_DPI); + end; + end; end. diff --git a/source/packages/tb2k/TB2ExtItems.pas b/source/packages/tb2k/TB2ExtItems.pas index 9e89f7e7..bdf2e8e6 100644 --- a/source/packages/tb2k/TB2ExtItems.pas +++ b/source/packages/tb2k/TB2ExtItems.pas @@ -847,7 +847,7 @@ function TTBEditItemViewer.EditLoop(const CapHandle: HWND): Boolean; FocusWnd := GetFocus; { Create the edit control } - InflateRect(R, -3, -3); + InflateRect(R, -3, -4); //View.FreeNotification (Self); FEditControl := GetEditControlClass.Create(nil); try diff --git a/source/packages/tb2k/TB2Ver.inc b/source/packages/tb2k/TB2Ver.inc index 13a623ea..7bcc2375 100644 --- a/source/packages/tb2k/TB2Ver.inc +++ b/source/packages/tb2k/TB2Ver.inc @@ -14,7 +14,7 @@ {$IFNDEF VER110} { and it's not C++Builder 3.0 } {$DEFINE JR_D4} { then it must be at least Delphi 4 or C++Builder 4 } {$IFNDEF VER120} {$IFNDEF VER125} { if it's not Delphi 4 or C++Builder 4 } - {$DEFINE JR_D5} { then it must be at least Delphi 5 or C++Builder 5 } + {$DEFINE JR_D5} { then it must be at least Delphi 5 or C++Builder 5 } {$IFNDEF VER130} { if it's not Delphi 5 or C++Builder 5 } {$DEFINE JR_D6} { then it must be at least Delphi 6 or C++Builder 6 } {$IFNDEF VER140} { if it's not Delphi 6 or C++Builder 6 } diff --git a/source/packages/tbx/TB2Ver.inc b/source/packages/tbx/TB2Ver.inc index 13a623ea..7bcc2375 100644 --- a/source/packages/tbx/TB2Ver.inc +++ b/source/packages/tbx/TB2Ver.inc @@ -14,7 +14,7 @@ {$IFNDEF VER110} { and it's not C++Builder 3.0 } {$DEFINE JR_D4} { then it must be at least Delphi 4 or C++Builder 4 } {$IFNDEF VER120} {$IFNDEF VER125} { if it's not Delphi 4 or C++Builder 4 } - {$DEFINE JR_D5} { then it must be at least Delphi 5 or C++Builder 5 } + {$DEFINE JR_D5} { then it must be at least Delphi 5 or C++Builder 5 } {$IFNDEF VER130} { if it's not Delphi 5 or C++Builder 5 } {$DEFINE JR_D6} { then it must be at least Delphi 6 or C++Builder 6 } {$IFNDEF VER140} { if it's not Delphi 6 or C++Builder 6 } diff --git a/source/packages/tbx/TBX.inc b/source/packages/tbx/TBX.inc index 6a989c36..c237f633 100644 --- a/source/packages/tbx/TBX.inc +++ b/source/packages/tbx/TBX.inc @@ -13,4 +13,3 @@ {$DEFINE NEWCOLORPROPERTY} // register alternative color property editor {$DEFINE NARROWCOMBOBUTTON} - diff --git a/source/packages/tbx/TBX.pas b/source/packages/tbx/TBX.pas index 5bd563c5..af7c8799 100644 --- a/source/packages/tbx/TBX.pas +++ b/source/packages/tbx/TBX.pas @@ -637,7 +637,7 @@ implementation {$R tbx_glyphs.res} uses - TBXExtItems, TBXLists, TB2Common, UxTheme, MultiMon, TBXDefaultTheme, + TBXExtItems, TBXLists, TB2Common, UxTheme, MultiMon, TBXOfficeXPTheme, {ComCtrls, Menus;} {vb-} ComCtrls, Menus, MMSystem, Types, UITypes; {vb+} @@ -1301,6 +1301,7 @@ procedure TTBXItemViewer.CalcSize(const Canvas: TCanvas; var AWidth, AHeight: In TextMetric: TTextMetric; TextSize: TSize; Margins: TTBXMargins; + Two, Three: Integer; begin Item := TTBCustomItem(Self.Item); ToolbarStyle := IsToolbarStyle; @@ -1346,28 +1347,37 @@ procedure TTBXItemViewer.CalcSize(const Canvas: TCanvas; var AWidth, AHeight: In { Measure size } if ToolbarStyle then begin - AWidth := 6; - AHeight := 6; + if not IsTextRotated then + begin + AWidth := 3; + AHeight := 6; + end + else + begin + AWidth := 6; + AHeight := 3; + end; if CaptionShown then begin + Three := ScaleByTextHeightRunTime(Canvas, 3); Inc(AWidth, TextSize.CX); Inc(AHeight, TextSize.CY); - if not IsTextRotated then Inc(AWidth, 4) - else Inc(AHeight, 4); + if not IsTextRotated then Inc(AWidth, 2 * Three) + else Inc(AHeight, 2 * Three); end; if GetImageShown and (ImgSize.CX > 0) and (ImgSize.CY > 0) then begin if ItemLayout = tbxlGlyphLeft then begin - Inc(AWidth, ImgSize.CX); + Inc(AWidth, ImgSize.CX + 3); if Wide then Inc(AWidth); if AHeight < ImgSize.CY + 6 then AHeight := ImgSize.CY + 6; end else begin - Inc(AHeight, ImgSize.CY); + Inc(AHeight, ImgSize.CY + 3); if AWidth < ImgSize.CX + 7 then AWidth := ImgSize.CX + 7; end; end; @@ -1379,8 +1389,9 @@ procedure TTBXItemViewer.CalcSize(const Canvas: TCanvas; var AWidth, AHeight: In begin if (ItemLayout <> tbxlGlyphTop) or (ImgSize.CX = 0) or IsTextRotated then begin - if View.Orientation <> tbvoVertical then Inc(AWidth, DropdownArrowWidth) - else Inc(AHeight, DropdownArrowWidth); + Two := ScaleByTextHeightRunTime(Canvas, 2); + if View.Orientation <> tbvoVertical then Inc(AWidth, Two + DropdownArrowWidth) + else Inc(AHeight, DropdownArrowWidth + Two + DropdownArrowMargin); end else begin @@ -1644,6 +1655,7 @@ procedure TTBXItemViewer.Paint(const Canvas: TCanvas; TextMetrics: TTextMetric; TextSize: TSize; Margins: TTBXMargins; + Three: Integer; begin Item := TTBXCustomItem(Self.Item); View := TTBViewAccess(Self.View); @@ -1835,11 +1847,12 @@ procedure TTBXItemViewer.Paint(const Canvas: TCanvas; begin CaptionRect := R; TextFlags := TextFlags or DT_CENTER or DT_VCENTER; + Three := ScaleByTextHeightRunTime(Canvas, 3); if ImageIsShown then with CaptionRect do case ItemLayout of tbxlGlyphLeft: begin - Inc(Left, ImgSize.CX + 3); + Inc(Left, ImgSize.CX + Three + 1); Top := (Top + Bottom - TextSize.CY) div 2; Bottom := Top + TextSize.CY; Left := (Left + Right - TextSize.CX) div 2; @@ -3873,8 +3886,8 @@ function CreateTBXPopupMenu(Owner: TComponent): TTBXPopupMenu; initialization FixPlaySoundDelay; {vb+} {CurrentTheme := nil;} {vb-} - RegisterTBXTheme('Default', TTBXDefaultTheme); - TBXNexus := TTBXNexus.Create('Default'); + RegisterTBXTheme('OfficeXP', TTBXOfficeXPTheme); + TBXNexus := TTBXNexus.Create('OfficeXP'); TBXMenuAnimation := TTBXMenuAnimation.Create; {vb+} {$IFNDEF JR_D7} {vb+} InitAdditionalSysColors; diff --git a/source/packages/tbx/TBXDefaultTheme.pas b/source/packages/tbx/TBXDefaultTheme.pas deleted file mode 100644 index 41433049..00000000 --- a/source/packages/tbx/TBXDefaultTheme.pas +++ /dev/null @@ -1,1790 +0,0 @@ -unit TBXDefaultTheme; - -// TBX Package -// Copyright 2001-2004 Alex A. Denisov. All Rights Reserved -// See TBX.chm for license and installation instructions -// -// Id: TBXDefaultTheme.pas 16 2004-05-26 02:02:55Z Alex@ZEISS - -interface - -{$I TB2Ver.inc} -{$I TBX.inc} - -uses - Windows, Messages, Graphics, TBXThemes, ImgList; - -type - TTBXDefaultTheme = class(TTBXTheme) - private - procedure TBXSysCommand(var Message: TMessage); message TBX_SYSCOMMAND; - protected - ToolbarColor: TColor; - ToolbarText: TColor; - DockPanelColor: TColor; - StatusBarColor: TColor; - procedure SetupColorCache; virtual; - public - constructor Create(const AName: string); override; - destructor Destroy; override; - - { Metrics Access, etc. } - function GetBooleanMetrics(Index: Integer): Boolean; override; - function GetImageOffset(Canvas: TCanvas; const ItemInfo: TTBXItemInfo; ImageList: TCustomImageList): TPoint; override; - function GetIntegerMetrics(Index: Integer): Integer; override; - procedure GetMargins(MarginID: Integer; out Margins: TTBXMargins); override; - - function GetItemColor(const ItemInfo: TTBXItemInfo): TColor; override; - function GetItemTextColor(const ItemInfo: TTBXItemInfo): TColor; override; - function GetItemImageBackground(const ItemInfo: TTBXItemInfo): TColor; override; - function GetPopupShadowType: Integer; override; - procedure GetViewBorder(ViewType: Integer; out Border: TPoint); override; - function GetViewColor(ViewType: Integer): TColor; override; - procedure GetViewMargins(ViewType: Integer; out Margins: TTBXMargins); override; - - { Painting routines } - procedure PaintBackgnd(Canvas: TCanvas; const ADockRect, ARect, AClipRect: TRect; AColor: TColor; Transparent: Boolean; AViewType: Integer); override; - procedure PaintButton(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo); override; - procedure PaintCaption(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo; const ACaption: string; AFormat: Cardinal; Rotated: Boolean); override; - procedure PaintCheckMark(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo); override; - procedure PaintChevron(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo); override; - procedure PaintDock(Canvas: TCanvas; const ClientRect, DockRect: TRect; DockPosition: Integer); override; - procedure PaintDockPanelNCArea(Canvas: TCanvas; R: TRect; const DockPanelInfo: TTBXDockPanelInfo); override; - procedure PaintDropDownArrow(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo); override; - procedure PaintEditButton(Canvas: TCanvas; const ARect: TRect; var ItemInfo: TTBXItemInfo; ButtonInfo: TTBXEditBtnInfo); override; - procedure PaintEditFrame(Canvas: TCanvas; const ARect: TRect; var ItemInfo: TTBXItemInfo; const EditInfo: TTBXEditInfo); override; - procedure PaintFloatingBorder(Canvas: TCanvas; const ARect: TRect; const WindowInfo: TTBXWindowInfo); override; - procedure PaintFrame(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo); override; - procedure PaintImage(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo; ImageList: TCustomImageList; ImageIndex: Integer); override; - procedure PaintMDIButton(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo; ButtonKind: Cardinal); override; - procedure PaintMenuItem(Canvas: TCanvas; const ARect: TRect; var ItemInfo: TTBXItemInfo); override; - procedure PaintMenuItemFrame(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo); override; - procedure PaintPageScrollButton(Canvas: TCanvas; const ARect: TRect; ButtonType: Integer; Hot: Boolean); override; - procedure PaintPopupNCArea(Canvas: TCanvas; R: TRect; const PopupInfo: TTBXPopupInfo); override; - procedure PaintSeparator(Canvas: TCanvas; ARect: TRect; ItemInfo: TTBXItemInfo; Horizontal, LineSeparator: Boolean); override; - procedure PaintToolbarNCArea(Canvas: TCanvas; R: TRect; const ToolbarInfo: TTBXToolbarInfo); override; - procedure PaintFrameControl(Canvas: TCanvas; R: TRect; Kind, State: Integer; Params: Pointer); override; - procedure PaintStatusBar(Canvas: TCanvas; R: TRect; Part: Integer); override; - end; - -implementation - -uses - Classes, Controls, CommCtrl, TBXUtils, UxTheme, TB2Common, TB2Item, TBX, Forms, - Types, UITypes; - -var - SmCaptionFont: TFont; - -procedure InitializeStock; -var - NonClientMetrics: TNonClientMetrics; -begin - SmCaptionFont := TFont.Create; - NonClientMetrics.cbSize := SizeOf(NonClientMetrics); - if SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, @NonClientMetrics, 0) then - SmCaptionFont.Handle := CreateFontIndirect(NonClientMetrics.lfSmCaptionFont); -end; - -procedure FinalizeStock; -begin - SmCaptionFont.Free; - SmCaptionFont := nil; -end; - -procedure DrawButtonBitmap(Canvas: TCanvas; R: TRect); -const - Pattern: array [0..15] of Byte = ($C6, 0, $6C, 0, $38, 0, $38, 0, $6C, 0, $C6, 0, 0, 0, 0, 0); -begin - DrawGlyph(Canvas.Handle, R, 7, 6, Pattern[0], clBtnText); -end; - -{ TTBXDefaultTheme } - -constructor TTBXDefaultTheme.Create; -begin - inherited; - AddTBXSysChangeNotification(Self); - SetupColorCache; -end; - -destructor TTBXDefaultTheme.Destroy; -begin - RemoveTBXSysChangeNotification(Self); - inherited; -end; - -function TTBXDefaultTheme.GetBooleanMetrics(Index: Integer): Boolean; -begin - case Index of - TMB_OFFICEXPPOPUPALIGNMENT: Result := False; - TMB_EDITMENUFULLSELECT: Result := False; - TMB_EDITHEIGHTEVEN: Result := False; - TMB_PAINTDOCKBACKGROUND: Result := USE_THEMES; - TMB_SOLIDTOOLBARNCAREA: Result := False; - TMB_SOLIDTOOLBARCLIENTAREA: Result := False; - else - Result := False; - end; -end; - -function TTBXDefaultTheme.GetIntegerMetrics(Index: Integer): Integer; -const - DEFAULT = -1; -var - Sz: TSize; -begin - case Index of - TMI_SPLITBTN_ARROWWIDTH: - if USE_THEMES then - begin - if GetThemePartSize(TOOLBAR_THEME, StockCompatibleBitmap.Canvas.Handle, - TP_SPLITBUTTONDROPDOWN, TS_NORMAL, nil, TS_TRUE, Sz) = S_OK then - begin - Result := Sz.cx + 2; - end - else Result := 11; - end - else Result := 11; - - TMI_DROPDOWN_ARROWWIDTH: Result := 8; - TMI_DROPDOWN_ARROWMARGIN: Result := 3; - - TMI_MENU_IMGTEXTSPACE: Result := 1; - TMI_MENU_LCAPTIONMARGIN: Result := 2; - TMI_MENU_RCAPTIONMARGIN: Result := 2; - TMI_MENU_SEPARATORSIZE: Result := DEFAULT; - TMI_MENU_MDI_DW: Result := 2; - TMI_MENU_MDI_DH: Result := 4; - - TMI_TLBR_SEPARATORSIZE: Result := 6; - - TMI_EDIT_FRAMEWIDTH: Result := 2; - TMI_EDIT_TEXTMARGINHORZ: Result := 2; - TMI_EDIT_TEXTMARGINVERT: Result := 1; - TMI_EDIT_BTNWIDTH: Result := 13; - TMI_EDIT_MENURIGHTINDENT: Result := 0; - else - Result := DEFAULT; - end; -end; - -function TTBXDefaultTheme.GetViewColor(ViewType: Integer): TColor; -begin - Result := ToolbarColor; - if (ViewType and VT_TOOLBAR) = VT_TOOLBAR then Result := ToolbarColor - else if (ViewType and VT_POPUP) = VT_POPUP then - begin - if (ViewType and PVT_POPUPMENU) = PVT_POPUPMENU then Result := clPopup - else if (ViewType and PVT_LISTBOX) = PVT_LISTBOX then Result := clWindow - else if (ViewType and PVT_TOOLBOX) = PVT_TOOLBOX then Result := ToolbarColor - else if (ViewType and PVT_CHEVRONMENU) = PVT_CHEVRONMENU then Result := clPopup; - end - else if (ViewType and VT_DOCKPANEL) = VT_DOCKPANEL then Result := DockPanelColor - else if (ViewType and VT_STATUSBAR) = VT_STATUSBAR then Result := StatusBarColor - else if (ViewType and VT_SECTIONHEADER) = VT_SECTIONHEADER then Result := ToolbarColor - else Result := clBtnFace; -end; - -function TTBXDefaultTheme.GetItemColor(const ItemInfo: TTBXItemInfo): TColor; -var - IsMenuItem: Boolean; -begin - with ItemInfo do - begin - IsMenuItem := ((ViewType and PVT_POPUPMENU) = PVT_POPUPMENU) and ((ItemOptions and IO_TOOLBARSTYLE) = 0); - if not USE_THEMES then - begin - if IsMenuItem and (ItemInfo.HoverKind <> hkNone) then Result := clHighlight - else Result := GetViewColor(ItemInfo.ViewType); - end - else - Result := GetViewColor(ItemInfo.ViewType); - end; -end; - -function TTBXDefaultTheme.GetItemTextColor(const ItemInfo: TTBXItemInfo): TColor; -var - InMenuBar, ToolbarStyle, ShowInactive: Boolean; -begin - Result := clBtnText; - with ItemInfo do - begin - InMenuBar := (ViewType and TVT_MENUBAR) = TVT_MENUBAR; - ToolbarStyle := Boolean(ItemOptions and IO_TOOLBARSTYLE); - ShowInactive := InMenubar and not Boolean(ItemOptions and IO_APPACTIVE); - - if not ToolbarStyle and not Enabled and (HoverKind = hkKeyboardHover) then Result := clGrayText - else if Enabled then - begin - if not ToolbarStyle or (InMenuBar and USE_FLATMENUS) then - begin - if HoverKind <> hkNone then Result := clHighlightText - else if ShowInactive then Result := clGrayText - else Result := clPopupText - end - else if ShowInactive then Result := clGrayText; - end - else Result := clGrayText; - end; -end; - -function TTBXDefaultTheme.GetItemImageBackground(const ItemInfo: TTBXItemInfo): TColor; -var - IsFlatMenuItem, InFlatMenuBar, InFlatChevronBar: Boolean; -begin - with ItemInfo do - begin - InFlatMenuBar := ((ViewType and TVT_MENUBAR) = TVT_MENUBAR) and USE_FLATMENUS; - InFlatChevronBar := ((ViewType and PVT_CHEVRONMENU) = PVT_CHEVRONMENU) and USE_FLATMENUS; - IsFlatMenuItem := ((ViewType and PVT_POPUPMENU) = PVT_POPUPMENU) and ((ItemOptions and IO_TOOLBARSTYLE) = 0) and USE_FLATMENUS; - - if InFlatMenuBar and (HoverKind <> hkNone) then Result := clHighlight - else if InFlatChevronBar or IsFlatMenuItem and (HoverKind <> hkNone) then Result := ToolbarColor - else Result := GetViewColor(ViewType); - end; -end; - -procedure TTBXDefaultTheme.GetViewBorder(ViewType: Integer; out Border: TPoint); -const - XMetrics: array [Boolean] of Integer = (SM_CXDLGFRAME, SM_CXFRAME); - YMetrics: array [Boolean] of Integer = (SM_CYDLGFRAME, SM_CYFRAME); -var - Resizable: Boolean; - Sz: Integer; -begin - Sz := 0; - if (ViewType and VT_TOOLBAR) = VT_TOOLBAR then - begin - if (ViewType and TVT_FLOATING) = TVT_FLOATING then - begin - Resizable := (ViewType and TVT_RESIZABLE) = TVT_RESIZABLE; - Border.X := GetSystemMetrics(XMetrics[Resizable]); - Border.Y := GetSystemMetrics(YMetrics[Resizable]); - Exit; - end - else Sz := 2; - end - else if (ViewType and VT_POPUP) = VT_POPUP then - begin -{$IFNDEF OFFICE2K_COMBOS} - if (ViewType and PVT_LISTBOX) = PVT_LISTBOX then Sz := 1 - else Sz := 3; -{$ELSE} - Sz := 3; -{$ENDIF} - end - else if (ViewType and VT_DOCKPANEL) = VT_DOCKPANEL then - begin - if (ViewType and DPVT_FLOATING) = DPVT_FLOATING then - begin - Resizable := (ViewType and DPVT_RESIZABLE) = DPVT_RESIZABLE; - Border.X := GetSystemMetrics(XMetrics[Resizable]); - Border.Y := GetSystemMetrics(YMetrics[Resizable]); - Exit; - end - else Sz := 2; - end; - Border.X := Sz; - Border.Y := Sz; -end; - -procedure TTBXDefaultTheme.GetMargins(MarginID: Integer; out Margins: TTBXMargins); -var - R, R2: TRect; -begin - with Margins do - case MarginID of - MID_TOOLBARITEM: - begin - LeftWidth := 2; RightWidth := 2; - TopHeight := 2; BottomHeight := 2; - if USE_THEMES then - GetThemeMargins(TOOLBAR_THEME, StockBitmap1.Canvas.Handle, TP_BUTTON, TS_HOT, TMT_CAPTIONMARGINS, - nil, TMargins(Margins)); - end; - - MID_MENUITEM: - begin - LeftWidth := 0; RightWidth := 0; - TopHeight := 2; BottomHeight := 2; - end; - - MID_STATUSPANE: - begin - if USE_THEMES then - begin - R := Rect(0, 0, 100, 100); - GetThemeBackgroundContentRect(STATUSBAR_THEME, StockBitmap1.Canvas.Handle, SP_PANE, 0, R, @R2); - LeftWidth := R2.Left - R.Left; - RightWidth := R.Right - R2.Right; - TopHeight := R2.Top - R.Top; - BottomHeight := R.Bottom - R2.Bottom; - end - else - begin - LeftWidth := 1; RightWidth := 3; - TopHeight := 1; BottomHeight := 1; - end; - end; - else - LeftWidth := 0; RightWidth := 0; - TopHeight := 0; BottomHeight := 0; - end; -end; - -procedure TTBXDefaultTheme.PaintBackgnd(Canvas: TCanvas; const ADockRect, ARect, AClipRect: TRect; - AColor: TColor; Transparent: Boolean; AViewType: Integer); -var - DC: HDC; - R: TRect; -begin - DC := Canvas.Handle; - if not Transparent then - begin - IntersectRect(R, ARect, AClipRect); - FillRectEx(DC, R, AColor); - end; -end; - -procedure TTBXDefaultTheme.PaintCaption(Canvas: TCanvas; - const ARect: TRect; const ItemInfo: TTBXItemInfo; const ACaption: string; - AFormat: Cardinal; Rotated: Boolean); -var - R: TRect; - C: TColor; - InMenuBar, ToolbarStyle: Boolean; - - procedure _Draw(Color: TColor); - begin - Canvas.Font.Color := Color; - if not Rotated then Windows.DrawText(Canvas.Handle, PChar(ACaption), Length(ACaption), R, AFormat) - else DrawRotatedText(Canvas.Handle, ACaption, R, AFormat); - end; - -begin - with ItemInfo, Canvas do - begin - R := ARect; - C := Font.Color; - { Apply theme-dependent color only when Font.Color = clNone } - if C = clNone then C := GetItemTextColor(ItemInfo); - Brush.Style := bsClear; - InMenuBar := (ViewType and TVT_MENUBAR) = TVT_MENUBAR; - ToolbarStyle := Boolean(ItemOptions and IO_TOOLBARSTYLE); - if not ToolbarStyle and not Enabled and (HoverKind = hkKeyboardHover) then _Draw(C) - else if Enabled then - begin - if ToolbarStyle and (Pushed or Selected) and not (InMenuBar and USE_FLATMENUS) then - OffsetRect(R, 1, 1); - _Draw(C); - end - else if USE_THEMES then _Draw(C) - else - begin - OffsetRect(R, 1, 1); - _Draw(clBtnHighlight); - OffsetRect(R, -1, -1); - _Draw(clBtnShadow); - end; - Brush.Style := bsSolid; - end; -end; - -procedure TTBXDefaultTheme.PaintCheckMark(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo); -var - DC: HDC; - X, Y: Integer; - C: TColor; -begin - DC := Canvas.Handle; - X := (ARect.Left + ARect.Right) div 2 - 1; - Y := (ARect.Top + ARect.Bottom) div 2 + 1; - if ItemInfo.Enabled - then C := clBtnText - else C := clGrayText; - if ItemInfo.ItemOptions and IO_RADIO > 0 then - begin - RoundRectEx(DC, X-2, Y-4, X+4, Y+2, 2, 2, - MixColors(C, clBtnHighlight, 128), clNone); - RoundRectEx(DC, X-2, Y-4, X+4, Y+2, 6, 6, C, C); - if ItemInfo.Enabled then - RoundRectEx(DC, X-3, Y-5, X+5, Y+3, 6, 6, clBtnHighlight, clNone); - end - else begin - PolyLineEx(DC, [Point(X-2, Y-2), Point(X, Y), Point(X+4, Y-4), - Point(X+4, Y-3), Point(X, Y+1), Point(X-2, Y-1), Point(X-2, Y-2)], C); - if ItemInfo.Enabled then - PolyLineEx(DC, [Point(X-3, Y-2), Point(X-3, Y-1), Point(X, Y+2), - Point(X+5, Y-3), Point(X+5, Y-5)], clBtnHighlight); - end; -end; - -procedure TTBXDefaultTheme.PaintChevron(Canvas: TCanvas; ARect: TRect; - const ItemInfo: TTBXItemInfo); -const - Pattern: array [Boolean, 0..15] of Byte = ( - ($CC, 0, $66, 0, $33, 0, $66, 0, $CC, 0, 0, 0, 0, 0, 0, 0), - ($88, 0, $D8, 0, $70, 0, $20, 0, $88, 0, $D8, 0, $70, 0, $20, 0)); -var - DC: HDC; - R2: TRect; - P: PByte; - W, H: Integer; -begin - DC := Canvas.Handle; - R2 := ARect; - PaintButton(Canvas, R2, ItemInfo); - - if not ItemInfo.IsVertical then - begin - Inc(R2.Top, 4); - R2.Bottom := R2.Top + 5; - W := 8; - H := 5; - end - else - begin - R2.Left := R2.Right - 9; - R2.Right := R2.Left + 5; - W := 5; - H := 8; - end; - if ItemInfo.Pushed then OffsetRect(R2, 1, 1); - - P := @Pattern[ItemInfo.IsVertical][0]; - if ItemInfo.Enabled then DrawGlyph(DC, R2, W, H, P^, clBtnText) - else - begin - OffsetRect(R2, 1, 1); - DrawGlyph(DC, R2, W, H, P^, clBtnHighlight); - OffsetRect(R2, -1, -1); - DrawGlyph(DC, R2, W, H, P^, clBtnShadow); - end; -end; - -procedure TTBXDefaultTheme.PaintEditButton(Canvas: TCanvas; const ARect: TRect; - var ItemInfo: TTBXItemInfo; ButtonInfo: TTBXEditBtnInfo); -var - DC: HDC; - BtnDisabled, BtnHot, BtnPressed, Embedded: Boolean; - StateFlags: Integer; - R, BR: TRect; - C: TColor; - X, Y: Integer; - - procedure DrawEnabled(var R: TRect); - begin - if BtnPressed then - Windows.DrawEdge(Canvas.Handle, R, BDR_SUNKENOUTER, BF_RECT or BF_ADJUST) - else if BtnHot then - Windows.DrawEdge(Canvas.Handle, R, BDR_RAISEDINNER, BF_RECT or BF_ADJUST) - else if not Embedded then - FrameRectEx(DC, R, clWindow, False); - end; - - procedure DrawUp; - begin - X := (R.Left + R.Right) div 2 + Ord(BtnPressed); - Y := (R.Top * 3 + R.Bottom + 3) div 4 + Ord(BtnPressed); - if not BtnDisabled then - begin - if Boolean(ItemInfo.ItemOptions and IO_TOOLBARSTYLE) then C := clPopupText - else C := clBtnText; - end - else with Canvas do - begin - Inc(X); Inc(Y); - Pen.Color := clBtnHighlight; Brush.Color := clBtnHighlight; - Polygon([Point(X - 2, Y), Point(X + 2, Y), Point(X, Y - 2)]); - Dec(X); Dec(Y); - C := clBtnShadow; - end; - Canvas.Pen.Color := C; Canvas.Brush.Color := C; - Canvas.Polygon([Point(X - 2, Y), Point(X + 2, Y), Point(X, Y - 2)]) - end; - - procedure DrawDn; - begin - X := (R.Left + R.Right) div 2 + Ord(BtnPressed); - Y := (R.Top + R.Bottom * 3 - 4) div 4 + Ord(BtnPressed); - if not BtnDisabled then - begin - if Boolean(ItemInfo.ItemOptions and IO_TOOLBARSTYLE) then C := clPopupText - else C := clBtnText; - end - else with Canvas do - begin - Inc(X); Inc(Y); - Pen.Color := clBtnHighlight; Brush.Color := clBtnHighlight; - Polygon([Point(X - 2, Y), Point(X + 2, Y), Point(X, Y + 2)]); - Dec(X); Dec(Y); - C := clBtnShadow; - end; - Canvas.Pen.Color := C; Canvas.Brush.Color := C; - Canvas.Polygon([Point(X - 2, Y), Point(X + 2, Y), Point(X, Y + 2)]) - end; - -begin - DC := Canvas.Handle; - R := ARect; - with Canvas, ItemInfo do - begin - Embedded := ((ViewType and VT_TOOLBAR) = VT_TOOLBAR) and - ((ViewType and TVT_EMBEDDED) = TVT_EMBEDDED); - - if ButtonInfo.ButtonType = EBT_DROPDOWN then - begin - { DropDown button } - BtnDisabled := (ButtonInfo.ButtonState and EBDS_DISABLED) <> 0; - BtnHot := (ButtonInfo.ButtonState and EBDS_HOT) <> 0; - BtnPressed := (ButtonInfo.ButtonState and EBDS_PRESSED) <> 0; - if USE_THEMES then - begin - if BtnDisabled then StateFlags := CBXS_DISABLED - else if BtnPressed then StateFlags := CBXS_PRESSED - else if BtnHot then StateFlags := CBXS_HOT - else StateFlags := CBXS_NORMAL; - if BtnHot then InflateRect(R, 1, 1); - DrawThemeBackground(COMBO_THEME, Handle, CP_DROPDOWNBUTTON, StateFlags, R, nil); - end - else - begin - Inc(R.Left, 2); - if not BtnDisabled then with R do - begin - if Embedded then FillRectEx(DC, R, clBtnFace); - if BtnPressed or BtnHot then - DrawLineEx(DC, Left - 1, Top, Left - 1, Bottom + 1, ToolbarColor) - else if Embedded then - DrawLineEx(DC, Left - 1, Top, Left - 1, Bottom, clBtnShadow) - else - DrawLineEx(DC, Left - 1, Top, Left - 1, Bottom, clWindow); - DrawEnabled(R); - end; - PaintDropDownArrow(Canvas, R, ItemInfo); - end; - end - else if ButtonInfo.ButtonType = EBT_SPIN then - begin - { Paint spin buttons } - BtnDisabled := (ButtonInfo.ButtonState and EBSS_DISABLED) <> 0; - BtnHot := (ButtonInfo.ButtonState and EBSS_HOT) <> 0; - if USE_THEMES then - begin - if BtnHot then InflateRect(R, 1, 1); - - { Upper with XP themes } - BR := R; - BR.Bottom := (R.Top + R.Bottom - 1) div 2; - BtnPressed := (ButtonInfo.ButtonState and EBSS_UP) <> 0; - if BtnDisabled then StateFlags := UPS_DISABLED - else if BtnPressed then StateFlags := UPS_PRESSED - else if BtnHot then StateFlags := UPS_HOT - else StateFlags := UPS_NORMAL; - DrawThemeBackground(SPIN_THEME, Handle, SPNP_UP, StateFlags, BR, nil); - - { Lower with XP themes } - BR := R; - BR.Top := (R.Top + R.Bottom) div 2; - BtnPressed := (ButtonInfo.ButtonState and EBSS_DOWN) <> 0; - if BtnDisabled then StateFlags := DNS_DISABLED - else if BtnPressed then StateFlags := DNS_PRESSED - else if BtnHot then StateFlags := DNS_HOT - else StateFlags := DNS_NORMAL; - DrawThemeBackground(SPIN_THEME, Handle, SPNP_DOWN, StateFlags, BR, nil); - end - else - begin - Inc(R.Left, 2); - - if not BtnDisabled then with R do - if BtnPressed or BtnHot then - DrawLineEx(DC, Left - 1, Top - 1, Left - 1, Bottom + 1, ToolbarColor) - else if Embedded then - DrawLineEx(DC, Left - 1, Top, Left - 1, Bottom, clBtnShadow) - else - DrawLineEx(DC, Left - 1, Top, Left - 1, Bottom, clWindow); - - - BR := R; - BR.Bottom := (R.Top + R.Bottom + 1) div 2; - BtnPressed := (ButtonInfo.ButtonState and EBSS_UP) <> 0; - if BtnHot or BtnPressed then Dec(BR.Bottom); - if not BtnDisabled then DrawEnabled(BR); - DrawUp; - - BR := R; - BR.Top := (R.Top + R.Bottom) div 2; - BtnPressed := (ButtonInfo.ButtonState and EBSS_DOWN) <> 0; - if BtnHot or BtnPressed then Inc(BR.Top); - if not BtnDisabled then DrawEnabled(BR); - DrawDn; - end; - end; - end; -end; - -procedure TTBXDefaultTheme.PaintEditFrame(Canvas: TCanvas; - const ARect: TRect; var ItemInfo: TTBXItemInfo; const EditInfo: TTBXEditInfo); -var - R: TRect; - W: Integer; -begin - R := ARect; - PaintFrame(Canvas, R, ItemInfo); - W := EditFrameWidth; - InflateRect(R, -W, -W); - with EditInfo do if RightBtnWidth > 0 then Dec(R.Right, RightBtnWidth - 2); - Canvas.Brush.Color := clWindow; - if ItemInfo.Enabled then Canvas.FillRect(R); - with EditInfo do if LeftBtnWidth > 0 then Inc(R.Left, LeftBtnWidth - 2); - if EditInfo.RightBtnWidth > 0 then - begin - R := ARect; - InflateRect(R, -W, -W); - R.Left := R.Right - EditInfo.RightBtnWidth; - PaintEditButton(Canvas, R, ItemInfo, EditInfo.RightBtnInfo); - end; -end; - -procedure TTBXDefaultTheme.PaintDropDownArrow(Canvas: TCanvas; - const ARect: TRect; const ItemInfo: TTBXItemInfo); -var - X, Y: Integer; - - procedure Draw(AColor: TColor); - begin - Canvas.Pen.Color := AColor; - Canvas.Brush.Color := AColor; - if ItemInfo.IsVertical then Canvas.Polygon([Point(X, Y + 2), Point(X, Y - 2), Point(X - 2, Y)]) - else Canvas.Polygon([Point(X - 2, Y), Point(X + 2, Y), Point(X, Y + 2)]); - end; - -begin - with ItemInfo, ARect do - begin - X := (Left + Right) div 2; - Y := (Top + Bottom) div 2 - 1; - - if (Pushed or Selected) and (ComboPart <> cpSplitRight) then - begin - Inc(X); Inc(Y); - end; - - if Enabled then - begin - if Boolean(ItemOptions and IO_TOOLBARSTYLE) then Draw(clPopupText) - else Draw(clBtnText); - end - else - begin - Inc(X); Inc(Y); - Draw(clBtnHighlight); - Dec(X); Dec(Y); - Draw(clBtnShadow); - end; - end; -end; - -procedure TTBXDefaultTheme.PaintButton(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo); -const - XPPart: array [TTBXComboPart] of Integer = (TP_BUTTON, TP_DROPDOWNBUTTON, - TP_SPLITBUTTON, TP_SPLITBUTTONDROPDOWN); - Edge: array [Boolean] of Integer = (BDR_RAISEDINNER, EDGE_RAISED); -var - R: TRect; - Flags, RegionFlags: Cardinal; - InMenuBar, ShowHover, Embedded, ShowFlatSL: Boolean; - Region: HRGN; - DC: HDC; - Brush, OldBrush: HBrush; -begin - R := ARect; - DC := Canvas.Handle; - with ItemInfo do - begin - ShowHover := (Enabled and (HoverKind <> hkNone)) or - (not Enabled and (HoverKind = hkKeyboardHover)); - - InMenuBar := (ViewType and TVT_MENUBAR) = TVT_MENUBAR; - Embedded := ((ViewType and VT_TOOLBAR) = VT_TOOLBAR) and - ((ViewType and TVT_EMBEDDED) = TVT_EMBEDDED); - - if not InMenuBar and USE_THEMES then - begin - { The support for XP themes in menus is not yet implemented since standard - XP themes seem to have no theming for menus } - - if not Enabled then - begin - if HoverKind = hkKeyboardHover then Flags := TS_HOT - else Flags := TS_DISABLED; - end - else if ItemInfo.Pushed then Flags := TS_PRESSED - else if ItemInfo.Selected then - begin - if HoverKind <> hkNone then Flags := TS_HOTCHECKED - else Flags := TS_CHECKED; - end - else if HoverKind <> hkNone then Flags := TS_HOT - else Flags := TS_NORMAL; - - if Embedded or Boolean(ItemOptions and IO_DESIGNING) then - begin - { There is no state for non-transparent normal toolbar button, trying to - simulate it with regions... } - RegionFlags := TS_HOT; - if ComboPart = cpSplitRight then Dec(R.Left); - GetThemeBackgroundRegion(TOOLBAR_THEME, Canvas.Handle, XPPart[ComboPart], RegionFlags, R, Region); - if ComboPart = cpSplitRight then Inc(R.Left); - if Embedded or not Boolean(ItemOptions and IO_DESIGNING) then - begin - Brush := CreateBrushEx(ToolbarColor); - OldBrush := SelectObject(DC, Brush); - FillRgn(DC, Region, Brush); - SelectObject(DC, OldBrush); - DeleteObject(Brush); - end; - Brush := CreateBrushEx(clBtnShadow); - OldBrush := SelectObject(DC, Brush); - FrameRgn(DC, Region, Brush, 1, 1); - SelectObject(DC, OldBrush); - DeleteObject(Brush); - DeleteObject(Region); - end; - - DrawThemeBackground(TOOLBAR_THEME, DC, XPPart[ComboPart], Flags, R, nil); - end - else - begin - if InMenuBar and USE_FLATMENUS then - begin - if ((Pushed or Selected) and Enabled) or ShowHover then - FillRectEx(DC, R, clHighlight); - Exit; - end; -{$IFDEF NARROWCOMBOBUTTON} - if (ItemInfo.ComboPart = cpSplitRight) and not (InMenuBar or USE_THEMES) then Dec(R.Right, 2); -{$ENDIF} - if USE_FLATMENUS and (((Pushed or Selected) and Enabled) or ShowHover) then - FillRectEx(DC, R, ToolbarColor); - if Embedded then with Canvas do - begin - Flags := BF_RECT or BF_MIDDLE or BF_ADJUST; - if not ShowHover or (Pushed or Selected or not Enabled) then Flags := Flags or BF_FLAT; - ShowFlatSL := (ComboPart = cpSplitLeft) and not (ShowHover or Pushed); - if ShowFlatSL then Inc(R.Right); - Windows.DrawEdge(Handle, R, EDGE_RAISED, Flags); - if Selected and Enabled and (HoverKind = hkNone) then - DitherRect(DC, R, ToolbarColor, clBtnHighlight); - if ShowFlatSL then Dec(R.Right); - end - else if (Pushed or Selected) and Enabled then with Canvas do - begin - Windows.DrawEdge(Handle, R, BDR_SUNKENOUTER, BF_RECT or BF_ADJUST); - if not Pushed and (HoverKind = hkNone) then - DitherRect(DC, R, ToolbarColor, clBtnHighlight); - end - else if ShowHover or Boolean(ItemOptions and IO_DESIGNING) then - Windows.DrawEdge(Canvas.Handle, R, BDR_RAISEDINNER, BF_RECT); - if ComboPart = cpSplitRight then PaintDropDownArrow(Canvas, R, ItemInfo); - end; - end; -end; - -procedure TTBXDefaultTheme.PaintFloatingBorder(Canvas: TCanvas; const ARect: TRect; const WindowInfo: TTBXWindowInfo); -const - SPI_GETGRADIENTCAPTIONS = $1008; - DC_GRADIENT = $20; - ActiveCaptionFlags: array [Boolean] of Integer = (0, DC_ACTIVE); - GradientCaptionFlags: array [Boolean] of Integer = (0, DC_GRADIENT); - CaptionBkColors: array [Boolean, Boolean] of Integer = - ((COLOR_INACTIVECAPTION, COLOR_ACTIVECAPTION), - (COLOR_GRADIENTINACTIVECAPTION, COLOR_GRADIENTACTIVECAPTION)); - ButtonStateFlags: array [Boolean] of Integer = (0, DFCS_PUSHED); -var - R, R2: TRect; - DC: HDC; - Flags: Integer; - Gradient, ShowCloseBtn: Boolean; - B: BOOL; -begin - DC := Canvas.Handle; - - with WindowInfo do - if not USE_THEMES then - begin - R := ARect; - if (WRP_BORDER and RedrawPart) <> 0 then - begin - R2 := R; - with FloatingBorderSize do InflateRect(R2, -X, -Y); - SaveDC(DC); - with R2 do ExcludeClipRect(DC, Left, Top, Right, Bottom); - Windows.DrawEdge(DC, R, EDGE_RAISED, BF_RECT or BF_MIDDLE); - RestoreDC(DC, -1); - end; - - if not WindowInfo.ShowCaption then Exit; - Gradient := SystemParametersInfo(SPI_GETGRADIENTCAPTIONS, 0, @B, 0) and B; - ShowCloseBtn := (CDBS_VISIBLE and CloseButtonState) <> 0; - R := GetTBXCloseButtonRect(WindowInfo, True); - - if (WRP_CAPTION and RedrawPart) <> 0 then - begin - if ShowCloseBtn then - begin - SaveDC(DC); - with R do ExcludeClipRect(DC, Left, Top, Right, Bottom); - end; - R2 := GetTBXCaptionRect(WindowInfo, True, ShowCloseBtn); - DrawCaption(ParentHandle, DC, R2, DC_TEXT or DC_SMALLCAP or - ActiveCaptionFlags[Active] or GradientCaptionFlags[Gradient]); - if ShowCloseBtn then RestoreDC(DC, -1); - R2 := GetTBXCaptionRect(WindowInfo, True, False); - R2.Top := R2.Bottom; - Inc(R2.Bottom); - FillRect(DC, R2, GetSysColorBrush(COLOR_BTNFACE)); - end; - - if ShowCloseBtn then - begin - R2 := R; - InflateRect(R2, -2, -2); - if (WRP_CAPTION and RedrawPart) <> 0 then - begin - SaveDC(DC); - with R2 do ExcludeClipRect(DC, Left, Top, Right, Bottom); - FillRect(DC, R, GetSysColorBrush(CaptionBkColors[Gradient, WindowInfo.Active])); - RestoreDC(DC, -1); - end; - if (WRP_CLOSEBTN and RedrawPart) <> 0 then - DrawFrameControl(DC, R2, DFC_CAPTION, DFCS_CAPTIONCLOSE or - ButtonStateFlags[(CDBS_PRESSED and CloseButtonState) <> 0]); - end; - end - else { Use WindowsXP visual styles } - begin - if (WRP_BORDER and RedrawPart) <> 0 then - begin - if Active then Flags := FS_ACTIVE else Flags := FS_INACTIVE; - R := ARect; - R.Top := R.Bottom - FloatingBorderSize.Y; - DrawThemeBackground(WINDOW_THEME, DC, WP_SMALLFRAMEBOTTOM, Flags, R, nil); - R.Top := ARect.Top; - R.Bottom := R.Top + FloatingBorderSize.Y; - {if WindowInfo.ShowCaption then} { TODO : how to paint a captionless window frame } - Inc(R.Bottom, GetSystemMetrics(SM_CYSMCAPTION)); - DrawThemeBackground(WINDOW_THEME, DC, WP_SMALLCAPTION, Flags, R, nil); - R.Top := R.Bottom; - R.Bottom := ARect.Bottom - FloatingBorderSize.Y; - R.Right := R.Left + FloatingBorderSize.X; - DrawThemeBackground(WINDOW_THEME, DC, WP_SMALLFRAMELEFT, Flags, R, nil); - R.Right := ARect.Right; - R.Left := R.Right - FloatingBorderSize.X; - DrawThemeBackground(WINDOW_THEME, DC, WP_SMALLFRAMERIGHT, Flags, R, nil); - end; - - if not ShowCaption then Exit; - - { Get the caption area } - R := ARect; - with FloatingBorderSize do InflateRect(R, -X, -Y); - Dec(R.Bottom, ClientHeight); - - if (WRP_CAPTION and RedrawPart) <> 0 then - begin - R2 := R; - if ((CDBS_VISIBLE and CloseButtonState) <> 0) and ((WRP_CLOSEBTN and RedrawPart) <> 0) then - Dec(R2.Right, GetSystemMetrics(SM_CYSMCAPTION)); - - Canvas.Font.Assign(SmCaptionFont); - if Active then Canvas.Font.Color := clCaptionText - else Canvas.Font.Color := clInactiveCaptionText; - Canvas.Brush.Style := bsClear; - - { This is strange... the DrawThemeText function refuses to work... - Use standard API... } - DrawText(Canvas.Handle, WindowInfo.Caption, -1, R2, - DT_SINGLELINE or DT_VCENTER or DT_END_ELLIPSIS or DT_HIDEPREFIX); - - Canvas.Brush.Style := bsSolid; - end; - - if (CDBS_VISIBLE and CloseButtonState) <> 0 then - begin - Dec(R.Bottom); - R.Left := R.Right - R.Bottom + R.Top; - InflateRect(R, -2, -2); - if (CDBS_PRESSED and CloseButtonState) <> 0 then Flags := CBS_PUSHED - else if (CDBS_HOT and CloseButtonState) <> 0 then Flags := CBS_HOT - else Flags := CBS_NORMAL; - DrawThemeBackground(WINDOW_THEME, DC, WP_SMALLCLOSEBUTTON, Flags, R, nil); - end; - end; -end; - -procedure TTBXDefaultTheme.PaintFrame(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo); -var - DC: HDC; - R: TRect; - E, Embedded: Boolean; - Flags, Border: Integer; - C: TColor; -begin - R := ARect; - DC := Canvas.Handle; - with ItemInfo do - begin - E := (Enabled and (HoverKind <> hkNone)) or - (not Enabled and (HoverKind = hkKeyboardHover)); - Embedded := ((ViewType and VT_TOOLBAR) = VT_TOOLBAR) and - ((ViewType and TVT_EMBEDDED) = TVT_EMBEDDED); - if USE_THEMES then - begin - InflateRect(R, -1, -1); - if Embedded then C := clBtnShadow - else C := ToolbarColor; - FrameRectEx(DC, R, C, False); - InflateRect(R, 1, 1); - if Pushed or Selected or E or ((ItemOptions and IO_DESIGNING) <> 0) - then DrawThemeBackground(COMBO_THEME, DC, 0, 0, R, nil); - InflateRect(R, -2, -2); - FrameRectEx(DC, R, clWindow, False); - end - else - begin - if Embedded then - begin - Flags := BF_RECT; - if not (Pushed or Selected or E) then - begin - InflateRect(R, -1, -1); - Flags := Flags or BF_FLAT; - Border := BDR_SUNKENOUTER; - end - else Border := EDGE_SUNKEN; - Windows.DrawEdge(DC, R, Border, Flags); - if (Pushed or Selected or E) then InflateRect(R, -1, -1); - end - else - begin - if Pushed or Selected or E or ((ItemOptions and IO_DESIGNING) <> 0) then - Windows.DrawEdge(DC, R, BDR_SUNKENOUTER, BF_RECT); - InflateRect(R, -1, -1); - FrameRectEx(DC, R, ToolbarColor, True); - FrameRectEx(DC, R, clWindow, False); - end; - end; - end; -end; - -function TTBXDefaultTheme.GetImageOffset(Canvas: TCanvas; const ItemInfo: TTBXItemInfo; - ImageList: TCustomImageList): TPoint; -const - Offsets: array [Boolean] of TPoint = ((X:0; Y:0), (X:1; Y:1)); -begin - with ItemInfo do - Result := Offsets[Pushed or Selected]; -end; - -procedure TTBXDefaultTheme.PaintImage(Canvas: TCanvas; ARect: TRect; - const ItemInfo: TTBXItemInfo; ImageList: TCustomImageList; ImageIndex: Integer); -var - BgColor: TColor; - HiContrast: Boolean; - IsMenuItem: Boolean; -begin - with ItemInfo do - begin - if ImageList is TTBCustomImageList then - begin - if Pushed or Selected then OffsetRect(ARect, 1, 1); - TTBCustomImageList(ImageList).DrawState(Canvas, ARect.Left, ARect.Top, - ImageIndex, Enabled, (HoverKind <> hkNone), Selected); - Exit; - end; - - IsMenuItem := ((ViewType and PVT_POPUPMENU) = PVT_POPUPMENU) and - ((ItemOptions and IO_TOOLBARSTYLE) = 0); - - if (IsMenuItem and USE_FLATMENUS) or (not IsMenuItem and USE_THEMES) then - begin - { The icon painting here is not really made by the uxtheme.dll, this is - just a simulation until I figure out how to work with DrawThemedIcon function } - if Pushed or Selected then OffsetRect(ARect, 1, 1); - BgColor := GetItemImageBackground(ItemInfo); - HiContrast := not IsMenuItem and IsDarkColor(BGColor); - if not Enabled then - DrawTBXIconShadow(Canvas, ARect, ImageList, ImageIndex, 0) - else if Selected or Pushed or (HoverKind <> hkNone) then - DrawTBXIcon(Canvas, ARect, ImageList, ImageIndex, HiContrast) - else if HiContrast or TBXHiContrast or TBXLoColor then - DrawTBXIcon(Canvas, ARect, ImageList, ImageIndex, HiContrast) - else - HighlightTBXIcon(Canvas, ARect, ImageList, ImageIndex, clWindow, 178); - end - else - begin - if Pushed or Selected then OffsetRect(ARect, 1, 1); - ImageList.Draw(Canvas, ARect.Left, ARect.Top, ImageIndex, Enabled); - end; - end; -end; - -procedure TTBXDefaultTheme.PaintMDIButton(Canvas: TCanvas; ARect: TRect; - const ItemInfo: TTBXItemInfo; ButtonKind: Cardinal); -const - PushedFlags: array[Boolean] of UINT = (0, DFCS_PUSHED); -var - XPPart, XPFlags: Cardinal; -begin - if USE_THEMES then - begin - case ButtonKind of - DFCS_CAPTIONMIN: XPPart := WP_MDIMINBUTTON; - DFCS_CAPTIONRESTORE: XPPart := WP_MDIRESTOREBUTTON; - DFCS_CAPTIONCLOSE: XPPart := WP_MDICLOSEBUTTON; - else - XPPart := 0; - end; - if ItemInfo.Pushed then XPFlags := CBS_PUSHED - else if ItemInfo.HoverKind <> hkNone then XPFlags := CBS_HOT - else XPFlags := CBS_NORMAL; - DrawThemeBackground(WINDOW_THEME, Canvas.Handle, XPPart, XPFLags, ARect, nil); - end - else - begin - DrawFrameControl(Canvas.Handle, ARect, DFC_CAPTION, - ButtonKind or PushedFlags[ItemInfo.Pushed]); - end; -end; - -procedure TTBXDefaultTheme.PaintMenuItemFrame(Canvas: TCanvas; - const ARect: TRect; const ItemInfo: TTBXItemInfo); -var - DC: HDC; -begin - DC := Canvas.Handle; - with ItemInfo do if (Enabled and (HoverKind <> hkNone)) or - (not Enabled and (HoverKind = hkKeyboardHover)) then - FillRectEx(DC, ARect, clHighlight); -end; - -procedure TTBXDefaultTheme.PaintMenuItem(Canvas: TCanvas; const ARect: TRect; var ItemInfo: TTBXItemInfo); -var - DC: HDC; - R: TRect; - ShowImageOrCheck: Boolean; - ShowHover: Boolean; - IsComboItem: Boolean; - X, Y: Integer; - ArrowWidth: Integer; - - procedure DrawArrow(AColor: TColor); - begin - PolygonEx(DC, [Point(X, Y - 3), Point(X, Y + 3), Point(X + 3, Y)], AColor, AColor); - end; - -begin - DC := Canvas.Handle; - with ItemInfo do - begin - ShowImageOrCheck := (ImageWidth > 0) or Selected; - ShowHover := (Enabled and (HoverKind <> hkNone)) or - (not Enabled and (HoverKind = hkKeyboardHover)); - ArrowWidth := GetSystemMetrics(SM_CXMENUCHECK); - - R := ARect; - if ShowImageOrCheck then Inc(R.Left, ItemInfo.PopupMargin + MenuImageTextSpace); - IsComboItem := ((ItemOptions and IO_COMBO) <> 0); - if IsComboItem and Enabled then Dec(R.Right, ArrowWidth); - - PaintMenuItemFrame(Canvas, R, ItemInfo); - - if IsComboItem then - begin - R.Left := ARect.Right - ArrowWidth; - R.Right := ARect.Right; - if Enabled and (HoverKind <> hkNone) then - Windows.DrawEdge(DC, R, BDR_SUNKENOUTER, BF_RECT) - else - begin - Dec(R.Left); - if not ShowHover then DrawEdge(DC, R, EDGE_ETCHED, BF_LEFT) - else DrawEdge(DC, R, BDR_SUNKENOUTER, BF_LEFT); - end; - end; - - if (ItemOptions and IO_SUBMENUITEM) <> 0 then - begin - Y := ARect.Bottom div 2; - X := ARect.Right - ArrowWidth * 2 div 3 - 2; - if not Enabled then - begin - if HoverKind = hkKeyboardHover then DrawArrow(clBtnShadow) - else - begin - Inc(X); Inc(Y); - DrawArrow(clBtnHighlight); - Dec(X); Dec(Y); - DrawArrow(clBtnShadow); - end; - end - else if (HoverKind <> hkNone) and not IsComboItem then DrawArrow(clHighlightText) - else DrawArrow(clPopupText); - end; - - if Enabled and ShowImageOrCheck and ((HoverKind <> hkNone) or Selected) then - begin - R.Left := ARect.Left; - R.Right := R.Left + ItemInfo.PopupMargin; - if USE_FLATMENUS then FillRectEx(DC, R, ToolbarColor); - PaintButton(Canvas, R, ItemInfo); - end; - end; -end; - -procedure TTBXDefaultTheme.PaintPopupNCArea(Canvas: TCanvas; R: TRect; const PopupInfo: TTBXPopupInfo); -var - DC: HDC; -begin - DC := Canvas.Handle; - -{$IFNDEF OFFICE2K_COMBOS} - if (PopupInfo.ViewType and PVT_LISTBOX) = PVT_LISTBOX then - begin - FrameRectEx(DC, R, clWindowFrame, True); - FrameRectEx(DC, R, clWindow, True); - FrameRectEx(DC, R, clWindow, False); - end - else -{$ENDIF} - if USE_FLATMENUS and ((PopupInfo.ViewType and PVT_TOOLBOX) <> PVT_TOOLBOX) then - begin - FrameRectEx(DC, R, clBtnShadow, True); - FrameRectEx(DC, R, clPopup, True); - FrameRectEx(DC, R, clPopup, False); - end - else if (PopupInfo.ViewType and PVT_TOOLBOX) = PVT_TOOLBOX then - begin - Windows.DrawEdge(DC, R, EDGE_RAISED, BF_RECT or BF_ADJUST); - FrameRectEx(DC, R, ToolbarColor, False); - end - else - begin - Windows.DrawEdge(DC, R, EDGE_RAISED, BF_RECT or BF_ADJUST); - FrameRectEx(DC, R, clPopup, False); - end; -end; - -procedure TTBXDefaultTheme.PaintSeparator(Canvas: TCanvas; ARect: TRect; - ItemInfo: TTBXItemInfo; Horizontal, LineSeparator: Boolean); -const - XPFlags: array [Boolean] of Integer = (TP_SEPARATOR, TP_SEPARATORVERT); -var - D: Integer; -begin - { Note: for blank separators, Enabled = False } - with ItemInfo, ARect do if Enabled then - begin - if not USE_THEMES or ((ViewType and PVT_POPUPMENU) = PVT_POPUPMENU) then - begin - D := 0; - if LineSeparator then - if (ViewType and TVT_FLOATING) <> 0 then D := 1 - else D := 4; - - if Horizontal then - begin - if (ItemOptions and IO_TOOLBARSTYLE) = 0 then D := 12; - Top := (Top + Bottom) div 2 - 1; - Inc(Left, D); Dec(Right, D); - Windows.DrawEdge(Canvas.Handle, ARect, EDGE_ETCHED, BF_TOP); - end - else - begin - Left := (Left + Right) div 2 - 1; - Inc(Top, D); Dec(Bottom, D); - Windows.DrawEdge(Canvas.Handle, ARect, EDGE_ETCHED, BF_LEFT); - end; - end - else - DrawThemeBackground(TOOLBAR_THEME, Canvas.Handle, XPFlags[Horizontal], TS_NORMAL, ARect, nil); - end; -end; - -procedure TTBXDefaultTheme.PaintToolbarNCArea(Canvas: TCanvas; R: TRect; const ToolbarInfo: TTBXToolbarInfo); -const - DragHandleSizes: array [Boolean, DHS_DOUBLE..DHS_SINGLE] of Integer = ((9, 0, 6), (14, 14, 14)); - DragHandleOffsets: array [Boolean, DHS_DOUBLE..DHS_SINGLE] of Integer = ((2, 0, 2), (3, 0, 5)); - GripperPart: array [Boolean] of Cardinal = (RP_GRIPPER, RP_GRIPPERVERT); - Pattern: array [0..15] of Byte = (0, 0, $CC, 0, $78, 0, $30, 0, $78, 0, $CC, 0, 0, 0, 0, 0); -var -// DC: HDC; - DHSize: Integer; -// Sz: TSize; - R2: TRect; - Flags: Cardinal; - Z: Integer; - BtnVisible, Horz, CloseButtondown, CloseButtonHover: Boolean; -begin -{ DC := Canvas.Handle; - if ToolbarInfo.EffectiveColor <> clNone then FillRectEx(DC, R, ToolbarInfo.EffectiveColor); } - Canvas.FillRect(R); - - { Border } - if ToolbarInfo.BorderStyle = bsSingle then - if USE_THEMES then - begin - Frame3D(Canvas.Handle, R, Lighten(ToolbarInfo.EffectiveColor, 24), Lighten(ToolbarInfo.EffectiveColor, -32), False); -// DrawThemeEdge(TOOLBAR_THEME, Canvas.Handle, RP_BAND, 0, R, BDR_RAISEDINNER, BF_RECT or BF_ADJUST, @R) - end - else - Windows.DrawEdge(Canvas.Handle, R, BDR_RAISEDINNER, BF_RECT or BF_ADJUST); - - if not ToolbarInfo.AllowDrag then Exit; - - BtnVisible := (ToolbarInfo.CloseButtonState and CDBS_VISIBLE) <> 0; - Horz := not ToolbarInfo.IsVertical; - - DHSize := GetTBXDragHandleSize(ToolbarInfo); - if Horz then R.Right := R.Left + DHSize - else R.Bottom := R.Top + DHSize; - - { Drag handle area } - if ToolbarInfo.DragHandleStyle <> DHS_NONE then - begin - if USE_THEMES then - begin - R2 := R; - if BtnVisible then - if Horz then Inc(R2.Top, DHSize - 1) - else Dec(R2.Right, DHSize - 1); - - { Since GetThemePartSize does not seem to work properly, assume we use default - WindowsXP themes where the gripper pattern repeats itself every 4 pixels } - - if Horz then - begin - R2.Left := (R2.Left + R2.Right - 6) div 2; - R2.Right := R2.Left + 6; - Z := R2.Bottom - R2.Top; - R2.Top := R2.Top - 1 + (Z and $3) shr 1; - R2.Bottom := R2.Top + Z and not $3 + 1; - end - else - begin - R2.Top := (R2.Top + R2.Bottom - 6) div 2; - R2.Bottom := R2.Top + 6; - Z := R2.Right - R2.Left; - R2.Left := R2.Left - 1 + (Z and $3) shr 1; - R2.Right := R2.Left + Z and not $3 + 2; - end; - - DrawThemeBackground(REBAR_THEME, Canvas.Handle, GripperPart[ToolbarInfo.IsVertical], 0, R2, nil) - end - else - begin - R2 := R; - if Horz then - begin - Inc(R2.Left, DragHandleOffsets[BtnVisible, ToolbarInfo.DragHandleStyle]); - if BtnVisible then Inc(R2.Top, DHSize - 2); - R2.Right := R2.Left + 3; - InflateRect(R2, 0, -1); - end - else - begin - Inc(R2.Top, DragHandleOffsets[BtnVisible, ToolbarInfo.DragHandleStyle]); - if BtnVisible then Dec(R2.Right, DHSize - 2); - R2.Bottom := R2.Top + 3; - InflateRect(R2, -1, 0); - end; - - Windows.DrawEdge(Canvas.Handle, R2, BDR_RAISEDINNER, BF_RECT); - Canvas.Pixels[R2.Left, R2.Bottom - 1] := clBtnHighlight; - if ToolbarInfo.DragHandleStyle = DHS_DOUBLE then - begin - if Horz then OffsetRect(R2, 3, 0) - else OffsetRect(R2, 0, 3); - Windows.DrawEdge(Canvas.Handle, R2, BDR_RAISEDINNER, BF_RECT); - Canvas.Pixels[R2.Left, R2.Bottom - 1] := clBtnHighlight; - end; - end; - end; - - { Close Button } - if BtnVisible then - begin - CloseButtonDown := (ToolbarInfo.CloseButtonState and CDBS_PRESSED) <> 0; - CloseButtonHover := (ToolbarInfo.CloseButtonState and CDBS_HOT) <> 0; - R2 := GetTBXDockedCloseButtonRect(ToolbarInfo); - Z := 2; - if USE_THEMES then Z := 1; - if Horz then - begin - Dec(R2.Bottom, Z); - Dec(R2.Right, Z); - end - else - begin - Dec(R2.Bottom, Z); - Inc(R2.Left, Z); - end; - if USE_THEMES then - begin - Flags := TS_NORMAL; - if CloseButtonDown then Flags := TS_PRESSED - else if CloseButtonHover then Flags := TS_HOT; - DrawThemeBackground(TOOLBAR_THEME, Canvas.Handle, TP_BUTTON, Flags, R2, nil); - if CloseButtonDown then OffsetRect(R2, 1, 1); - DrawGlyph(Canvas.Handle, R2, 7, 7, Pattern[0], clBtnText); - end - else - begin - if CloseButtonDown then - begin - Windows.DrawEdge(Canvas.Handle, R2, BDR_SUNKENOUTER, BF_RECT); - OffsetRect(R2, 1, 1); - end - else if CloseButtonHover then - Windows.DrawEdge(Canvas.Handle, R2, BDR_RAISEDINNER, BF_RECT); - DrawGlyph(Canvas.Handle, R2, 7, 7, Pattern[0], clBtnText); - end; - end; -end; - -procedure TTBXDefaultTheme.PaintDock(Canvas: TCanvas; const ClientRect, DockRect: TRect; DockPosition: Integer); -var - R: TRect; -begin - if not USE_THEMES then Exit; - if DockPosition in [DP_LEFT, DP_RIGHT] then - begin - R := DockRect; - Inc(R.Bottom, 1); - DrawThemeBackground(REBAR_THEME, Canvas.Handle, 0, 0, R, nil); - end - else DrawThemeBackground(REBAR_THEME, Canvas.Handle, 0, 0, DockRect, nil); -end; - -procedure TTBXDefaultTheme.PaintDockPanelNCArea(Canvas: TCanvas; R: TRect; const DockPanelInfo: TTBXDockPanelInfo); -var - DC: HDC; - Sz: Integer; - R2: TRect; - Flags: Integer; - CloseButtonDown, CloseButtonHover: Boolean; - - procedure CaptionFill(R: TRect); - const - GRAD: array [Boolean] of TGradientKind = (gkHorz, gkVert); - begin - if USE_THEMES then - GradFill(DC, R, Lighten(ToolbarColor, 12), Lighten(ToolbarColor, -12), GRAD[DockPanelInfo.IsVertical]) - else - FillRectEx(DC, R, ToolbarColor); - end; - -begin - DC := Canvas.Handle; - with Canvas, DockPanelInfo do - begin - Sz := GetSystemMetrics(SM_CYSMCAPTION); - - { Border } - FrameRectEx(DC, R, ToolbarColor, True); - R2 := R; - if ShowCaption then - if IsVertical then Inc(R2.Top, Sz) - else Inc(R2.Left, Sz); - FrameRectEx(DC, R2, clWindow, False); - - if not ShowCaption then Exit; - - { Caption area } - if IsVertical then R.Bottom := R.Top + Sz - else R.Right := R.Left + Sz; - Windows.DrawEdge(Handle, R, BDR_RAISEDINNER, BF_RECT or BF_ADJUST); - - { Close button } - if (CDBS_VISIBLE and CloseButtonState) <> 0 then - begin - CloseButtonDown := (CloseButtonState and CDBS_PRESSED) <> 0; - CloseButtonHover := (CloseButtonState and CDBS_HOT) <> 0; - R2 := R; - Brush.Color := ToolbarColor; - if IsVertical then - begin - R2.Left := R2.Right - Sz; - R.Right := R2.Left; - CaptionFill(R2); - InflateRect(R2, -1, -1); - Inc(R2.Left); - end - else - begin - R2.Top := R2.Bottom - Sz; - R.Bottom := R2.Top; - CaptionFill(R2); - InflateRect(R2, -1, -1); - Dec(R2.Bottom); - end; - - if USE_THEMES then - begin - Flags := TS_NORMAL; - if CloseButtonDown then Flags := TS_PRESSED - else if CloseButtonHover then Flags := TS_HOT; - DrawThemeBackground(TOOLBAR_THEME, DC, TP_BUTTON, Flags, R2, nil); - if CloseButtonDown then OffsetRect(R2, 1, 1); - InflateRect(R2, -2, -2); - end - else - begin - if CloseButtonDown then - begin - Windows.DrawEdge(DC, R2, BDR_SUNKENOUTER, BF_RECT); - OffsetRect(R2, 1, 1); - end - else if CloseButtonHover then - Windows.DrawEdge(DC, R2, BDR_RAISEDINNER, BF_RECT); - InflateRect(R2, -2, -2); - end; - DrawButtonBitmap(Canvas, R2); - end; - - { Caption } - CaptionFill(R); - if IsVertical then InflateRect(R, -2, 0) - else Inflaterect(R, 0, -2); - Font.Assign(SmCaptionFont); - Font.Color := clBtnText; - Brush.Style := bsClear; - Flags := DT_SINGLELINE or DT_VCENTER or DT_END_ELLIPSIS or DT_NOPREFIX; - if IsVertical then DrawText(Canvas.Handle, Caption, -1, R, Flags) - else DrawRotatedText(Canvas.Handle, string(Caption), R, Flags); - Brush.Style := bsSolid; - end; -end; - -function TTBXDefaultTheme.GetPopupShadowType: Integer; -begin - Result := PST_WINDOWSXP; -end; - -procedure TTBXDefaultTheme.GetViewMargins(ViewType: Integer; out Margins: TTBXMargins); -begin - with Margins do - if ((ViewType and VT_TOOLBAR) = VT_TOOLBAR) and - ((ViewType and TVT_FLOATING) = TVT_FLOATING) then - begin - LeftWidth := 4; - TopHeight := 2; - RightWidth := 4; - BottomHeight := 1; - end - else - begin - LeftWidth := 0; - TopHeight := 0; - RightWidth := 0; - BottomHeight := 0; - end; -end; - -procedure TTBXDefaultTheme.PaintPageScrollButton(Canvas: TCanvas; - const ARect: TRect; ButtonType: Integer; Hot: Boolean); -var - R: TRect; - Flags: Integer; - X, Y, Sz: Integer; -begin - R := ARect; - if USE_THEMES then - begin - if Hot then Flags := TS_PRESSED - else Flags := TS_HOT; - DrawThemeBackground(TOOLBAR_THEME, Canvas.Handle, TP_BUTTON, Flags, ARect, nil); - X := (R.Left + R.Right) div 2; - Y := (R.Top + R.Bottom) div 2; - Sz := Min(X - R.Left, Y - R.Top) * 3 div 4; - if Hot then Canvas.Pen.Color := clBtnText; - Canvas.Brush.Color := Canvas.Pen.Color; - case ButtonType of - PSBT_UP: - begin - Inc(Y, Sz div 2); - Canvas.Polygon([Point(X + Sz, Y), Point(X, Y - Sz), Point(X - Sz, Y)]); - end; - PSBT_DOWN: - begin - Y := (R.Top + R.Bottom - 1) div 2; - Dec(Y, Sz div 2); - Canvas.Polygon([Point(X + Sz, Y), Point(X, Y + Sz), Point(X - Sz, Y)]); - end; - PSBT_LEFT: - begin - Inc(X, Sz div 2); - Canvas.Polygon([Point(X, Y + Sz), Point(X - Sz, Y), Point(X, Y - Sz)]); - end; - PSBT_RIGHT: - begin - X := (R.Left + R.Right - 1) div 2; - Dec(X, Sz div 2); - Canvas.Polygon([Point(X, Y + Sz), Point(X + Sz, Y), Point(X, Y - Sz)]); - end; - end; - end - else - begin - if Hot then Flags := DFCS_FLAT - else Flags := 0; - case ButtonType of - PSBT_UP: Flags := Flags or DFCS_SCROLLUP; - PSBT_DOWN: Flags := Flags or DFCS_SCROLLDOWN; - PSBT_LEFT: Flags := Flags or DFCS_SCROLLLEFT; - PSBT_RIGHT: Flags := Flags or DFCS_SCROLLRIGHT; - end; - Windows.DrawFrameControl(Canvas.Handle, R, DFC_SCROLL, Flags); - end; -end; - -procedure TTBXDefaultTheme.PaintFrameControl(Canvas: TCanvas; R: TRect; Kind, State: Integer; Params: Pointer); -var - DC: HDC; - X, Y, Flags: Integer; - C: TColor; - Pen, OldPen: HPen; - Brush, OldBrush: HBrush; - - function FrameColor: TColor; - begin - if Boolean(State and PFS_DISABLED) then Result := clBtnShadow - else if Boolean(State and (PFS_PUSHED or PFS_HOT)) then Result := clNone - else Result := clBtnShadow; - end; - - procedure DiagLine(C: TColor); - begin - with R do - DrawLineEx(DC, Right - 2 - X, Bottom - 2, Right - 1, Bottom - X - 3, C); - Inc(X); - end; - -begin - DC := Canvas.Handle; - case Kind of - PFC_CHECKBOX: - begin - if USE_THEMES then - begin - if Boolean(State and PFS_CHECKED) then Flags := CBS_CHECKEDNORMAL - else if Boolean(State and PFS_MIXED) then Flags := CBS_MIXEDNORMAL - else Flags := CBS_UNCHECKEDNORMAL; - if Boolean(State and PFS_DISABLED) then Inc(Flags, 3) - else if Boolean(State and PFS_PUSHED) then Inc(Flags, 2) - else if Boolean(State and PFS_HOT) then Inc(Flags); - DrawThemeBackground(BUTTON_THEME, DC, BP_CHECKBOX, Flags, R, nil); - end - else - begin - C := FrameColor; - if C = clNone then - begin - if Boolean(State and PFS_MIXED) then Flags := DFCS_BUTTON3STATE or DFCS_CHECKED - else Flags := DFCS_BUTTONCHECK; - if Boolean(State and PFS_CHECKED) then Flags := Flags or DFCS_CHECKED; - if Boolean(State and PFS_PUSHED) then Flags := Flags or DFCS_PUSHED; - DrawFrameControl(DC, R, DFC_BUTTON, Flags); - end - else - begin - InflateRect(R, -1, -1); - FrameRectEx(DC, R, C, True); - if Boolean(State and (PFS_DISABLED or PFS_PUSHED)) then FillRectEx(DC, R, clBtnFace) - else if Boolean(State and PFS_MIXED) then DitherRect(DC, R, clWindow, clBtnFace) - else FillRectEx(DC, R, clWindow); - - if Boolean(State and (PFS_CHECKED or PFS_MIXED)) then - begin - X := (R.Left + R.Right) div 2 - 1; - Y := (R.Top + R.Bottom) div 2 + 1; - if Boolean(State and PFS_DISABLED) then C := clGrayText - else if Boolean(State and PFS_MIXED) then C := clBtnShadow - else C := clBtnText; - PolygonEx(DC, [Point(X-2, Y), Point(X, Y+2), Point(X+4, Y-2), - Point(X+4, Y-4), Point(X, Y), Point(X-2, Y-2), Point(X-2, Y)], C, C); - end; - end; - end; - end; - PFC_RADIOBUTTON: - begin - if USE_THEMES then - begin - if Boolean(State and PFS_CHECKED) then Flags := RBS_CHECKEDNORMAL - else Flags := RBS_UNCHECKEDNORMAL; - if Boolean(State and PFS_DISABLED) then Inc(Flags, 3) - else if Boolean(State and PFS_PUSHED) then Inc(Flags, 2) - else if Boolean(State and PFS_HOT) then Inc(Flags); - DrawThemeBackground(BUTTON_THEME, DC, BP_RADIOBUTTON, Flags, R, nil); - end - else - begin - C := FrameColor; - if C = clNone then - begin - Flags := DFCS_BUTTONRADIO; - if Boolean(State and PFS_CHECKED) then Flags := Flags or DFCS_CHECKED; - if Boolean(State and PFS_PUSHED) then Flags := Flags or DFCS_PUSHED; - DrawFrameControl(DC, R, DFC_BUTTON, Flags); - end - else - begin - Pen := CreatePenEx(C); - if Boolean(State and (PFS_DISABLED or PFS_PUSHED)) then C := clBtnFace - else C := clWindow; - Brush := CreateBrushEx(C); - - InflateRect(R, -1, -1); Inc(R.Left); Dec(R.Bottom); - OldPen := SelectObject(DC, Pen); - OldBrush := SelectObject(DC, Brush); - with R do - Windows.RoundRect(DC, Left, Top, Right, Bottom, Right - Left - 2, Bottom - Top - 2); - SelectObject(DC, OldPen); - SelectObject(DC, OldBrush); - DeleteObject(Pen); - DeleteObject(Brush); - - if Boolean(State and PFS_CHECKED) then - begin - InflateRect(R, -3, -3); - Pen := CreatePenEx(clBtnText); - Brush := CreateBrushEx(clBtnText); - OldPen := SelectObject(DC, Pen); - OldBrush := SelectObject(DC, Brush); - with R do Windows.RoundRect(DC, Left, Top, Right, Bottom, Right - Left, Bottom - Top); - SelectObject(DC, OldPen); - SelectObject(DC, OldBrush); - DeleteObject(Pen); - DeleteObject(Brush); - end; - end; - end; - end; - end; -end; - -procedure TTBXDefaultTheme.PaintStatusBar(Canvas: TCanvas; R: TRect; Part: Integer); -var - DC: HDC; - D, Sz, I, Flags: Integer; - - procedure DiagLine(C: TColor); - begin - with R do - DrawLineEx(DC, Right - 2 - D, Bottom - 2, Right - 1, Bottom - D - 3, C); - Inc(D); - end; - -begin - DC := Canvas.Handle; - case Part of - SBP_BODY: - begin - if USE_THEMES then - DrawThemeBackground(STATUSBAR_THEME, DC, 0, 0, R, nil) - else - FillRectEx(DC, R, StatusBarColor); - end; - SBP_PANE, SBP_LASTPANE: - begin - if USE_THEMES then - begin - if Part = SBP_LASTPANE then Flags := SP_GRIPPERPANE - else Flags := SP_PANE; - DrawThemeBackground(STATUSBAR_THEME, DC, Flags, 0, R, nil); - end - else - begin - if Part = SBP_PANE then Dec(R.Right, 2); - Frame3D(DC, R, clBtnShadow, clBtnHighlight, False); - end; - end; - SBP_GRIPPER: - begin - if USE_THEMES then - DrawThemeBackground(STATUSBAR_THEME, DC, SP_GRIPPER, 0, R, nil) - else - begin - D := 0; - Sz := Min(R.Right - R.Left, R.Bottom - R.Top); - for I := 1 to 3 do - case Sz of - 0..8: - begin - DiagLine(clBtnShadow); - DiagLine(clBtnHighlight); - end; - 9..11: - begin - DiagLine(StatusBarColor); - DiagLine(clBtnShadow); - DiagLine(clBtnHighlight); - end; - 12..14: - begin - DiagLine(clBtnShadow); - DiagLine(clBtnShadow); - DiagLine(clBtnHighlight); - end; - else - DiagLine(StatusBarColor); - DiagLine(clBtnShadow); - DiagLine(clBtnShadow); - DiagLine(clBtnHighlight); - end; - - with Canvas, R do - begin - Pen.Color := StatusBarColor; - PolylineEx(DC, [ - Point(Right - D - 1, Bottom - 1), - Point(Right - 1, Bottom - 1), - Point(Right - 1, Bottom - D - 2)], - StatusBarColor); - end; - end; - end; - end; -end; - -procedure TTBXDefaultTheme.SetupColorCache; -begin - ToolbarColor := clBtnFace; - ToolbarText := clBtnText; - StatusBarColor := clBtnFace; - if USE_THEMES then - begin - GetThemeColor(TOOLBAR_THEME, 0, 0, TMT_FILLCOLOR, Cardinal(ToolbarColor)); - GetThemeColor(TOOLBAR_THEME, 0, 0, TMT_TEXTCOLOR, Cardinal(ToolbarText)); - GetThemeColor(STATUSBAR_THEME, 0, 0, TMT_FILLCOLOR, Cardinal(StatusBarColor)); - end; - DockPanelColor := NearestMixedColor(ToolbarColor, clWindow, 64); -end; - -procedure TTBXDefaultTheme.TBXSysCommand(var Message: TMessage); -begin - if Message.WParam = TSC_VIEWCHANGE then SetupColorCache; -end; - -initialization - InitializeStock; - -finalization - FinalizeStock; - -end. diff --git a/source/packages/tbx/TBXExtItems.pas b/source/packages/tbx/TBXExtItems.pas index da888fac..a3eb8a36 100644 --- a/source/packages/tbx/TBXExtItems.pas +++ b/source/packages/tbx/TBXExtItems.pas @@ -505,7 +505,7 @@ TTBXMRUListItem = class(TTBXCustomItem) implementation -uses TB2Common, TB2Consts, TypInfo, Math, ImgList, {MP}Menus {$IFNDEF JR_D5}, DsgnIntf{$ENDIF}; +uses TB2Common, TB2Consts, TypInfo, Math, ImgList, {MP}Menus, Forms {$IFNDEF JR_D5}, DsgnIntf{$ENDIF}; const { Repeat intervals for spin edit items } @@ -997,6 +997,8 @@ procedure TTBXEditItemViewer.Paint(const Canvas: TCanvas; SetBkMode(DC, TRANSPARENT); SetBkColor(DC, GetSysColor(FillColors[Item.Enabled])); SetTextColor(DC, GetSysColor(TextColors[Item.Enabled])); + // WinSCP: Align edit text with toolbar labels + InflateRect(R, 0, -1); DrawText(DC, PChar(S), Length(S), R, DT_SINGLELINE or DT_NOPREFIX or Alignments[Item.Alignment]); SelectObject(DC, OldFnt); DeleteObject(Fnt); @@ -1815,23 +1817,27 @@ procedure TTBXColorItem.SetColor(Value: TColor); procedure TTBXColorItemViewer.DrawItemImage(Canvas: TCanvas; ARect: TRect; ItemInfo: TTBXItemInfo); begin - with ItemInfo, Canvas do if Enabled then + with ItemInfo, Canvas do begin - if ((ItemOptions and IO_TOOLBARSTYLE) = 0) then InflateRect(ARect, -2, -2); if TTBXColorItem(Item).Color <> clNone then begin - Brush.Color := clBtnShadow; - FrameRect(ARect); - InflateRect(ARect, -1, -1); - Brush.Color := TTBXColorItem(Item).Color; - FillRect(ARect); + if ((ItemOptions and IO_TOOLBARSTYLE) = 0) then InflateRect(ARect, -2, -2); + + if Enabled then + begin + Brush.Color := clBtnShadow; + FrameRect(ARect); + InflateRect(ARect, -1, -1); + Brush.Color := TTBXColorItem(Item).Color; + FillRect(ARect); + end + else + begin + Inc(ARect.Right); + Inc(ARect.Bottom); + DrawEdge(Handle, ARect, BDR_SUNKENOUTER or BDR_RAISEDINNER, BF_RECT); + end; end; - end - else - begin - Inc(ARect.Right); - Inc(ARect.Bottom); - DrawEdge(Handle, ARect, BDR_SUNKENOUTER or BDR_RAISEDINNER, BF_RECT); end; end; @@ -1848,16 +1854,39 @@ procedure TTBXColorItemViewer.DoPaintCaption(Canvas: TCanvas; end; function TTBXColorItemViewer.GetImageSize: TSize; +var + ImgList: TCustomImageList; + Size: Integer; begin - if IsToolbarStyle then + ImgList := GetImageList; + if ImgList <> nil then begin - Result.CX := 12; - Result.CY := 12; + Result.CX := ImgList.Width; + Result.CY := ImgList.Height; + if IsToolbarStyle then + begin + // we want to get 12x12 with 16x16 images, + // to match the imagelist-less branch below + Result.CX := MulDiv(Result.CX, 12, 16); + Result.CY := MulDiv(Result.CY, 12, 16); + end; end - else + else begin - Result.CX := 16; - Result.CY := 16; + // we do not want to get here + Assert(False); + if IsToolbarStyle then + begin + Size := 12; + end + else + begin + Size := 16; + end; + // do not have a canvas here to scale by text height + Size := MulDiv(Size, Screen.PixelsPerInch, USER_DEFAULT_SCREEN_DPI); + Result.CX := Size; + Result.CY := Size; end; end; diff --git a/source/packages/tbx/TBXOffice2003Theme.pas b/source/packages/tbx/TBXOffice2003Theme.pas deleted file mode 100644 index 72ed7d2c..00000000 --- a/source/packages/tbx/TBXOffice2003Theme.pas +++ /dev/null @@ -1,2043 +0,0 @@ -unit TBXOffice2003Theme; - -// TBX Package -// Copyright 2001-2004 Alex A. Denisov. All Rights Reserved -// See TBX.chm for license and installation instructions -// -// Office2003 theme -// Copyright (c) Yury Plashenkov (Sep. 2005) -// -// Version for TBX version 2.1 - -interface - -{$I TB2Ver.inc} -{$I TBX.inc} - -// PngComponents is a set of components that allows you to include in your -// application semitransparent PNG images -// I advise you to get it from http://www.thany.org/ -// After installing, use TPngImageList (from PngComponents package) instead of -// "classic" TImageList - -// Comment next string if you use Toolbar2000 version different from 2.1.6 -{$DEFINE TB2K_VER216} - -// Uncomment next string if you want to see highlighted icons -//{$DEFINE HIGHLIGHTTOOLBARICONS} - -// Uncomment next string to turn on gradient captions on dockpanels -//{$DEFINE DOCKPANELGRADIENTCAPTION} - -uses - Windows, Messages, Graphics, Classes, TBXThemes, ImgList, UxTheme; - -type - TItemPart = (ipBody, ipText, ipFrame); - TBtnItemState = (bisNormal, bisDisabled, bisSelected, bisPressed, bisHot, - bisDisabledHot, bisSelectedHot, bisPopupParent); - TMenuItemState = (misNormal, misDisabled, misHot, misDisabledHot); - TWinFramePart = (wfpBorder, wfpCaption, wfpCaptionText); - - TOffice2003Scheme = (osBlue, osMetallic, osGreen, osUnknown); - - TTBXOffice2003Theme = class(TTBXTheme) - private - FOnSetupColorCache: TNotifyEvent; - procedure TBXSysCommand(var Message: TMessage); message TBX_SYSCOMMAND; - protected - DockColor: TColor; - - ToolbarColor1: TColor; - ToolbarColor2: TColor; - ToolbarFrameColor1: TColor; - ToolbarFrameColor2: TColor; - SeparatorColor1: TColor; - SeparatorColor2: TColor; - DragHandleColor1: TColor; - DragHandleColor2: TColor; - - EmbeddedColor: TColor; - EmbeddedFrameColor: TColor; - EmbeddedDisabledColor: TColor; - - PopupColor: TColor; - PopupFrameColor: TColor; - - DockPanelColor: TColor; - WinFrameColors: array[TWinFramePart] of TColor; - MenuItemColors: array[TMenuItemState, TItemPart] of TColor; - BtnItemColors: array[TBtnItemState, ipText..ipFrame] of TColor; - BtnBodyColors: array[TBtnItemState, Boolean] of TColor; - - StatusPanelFrameColor: TColor; - FMDIAreaColor: TColor; - - procedure SetupColorCache; virtual; - protected - function GetPartColor(const ItemInfo: TTBXItemInfo; ItemPart: TItemPart): TColor; - function GetBtnColor(const ItemInfo: TTBXItemInfo; ItemPart: TItemPart; GradColor2: Boolean = False): TColor; - public - constructor Create(const AName: string); override; - destructor Destroy; override; - - function GetBooleanMetrics(Index: Integer): Boolean; override; - function GetIntegerMetrics(Index: Integer): Integer; override; - procedure GetMargins(MarginID: Integer; out Margins: TTBXMargins); override; - function GetImageOffset(Canvas: TCanvas; const ItemInfo: TTBXItemInfo; ImageList: TCustomImageList): TPoint; override; - function GetItemColor(const ItemInfo: TTBXItemInfo): TColor; override; - function GetItemTextColor(const ItemInfo: TTBXItemInfo): TColor; override; - function GetItemImageBackground(const ItemInfo: TTBXItemInfo): TColor; override; - function GetPopupShadowType: Integer; override; - procedure GetViewBorder(ViewType: Integer; out Border: TPoint); override; - function GetViewColor(AViewType: Integer): TColor; override; - procedure GetViewMargins(ViewType: Integer; out Margins: TTBXMargins); override; - - procedure PaintBackgnd(Canvas: TCanvas; const ADockRect, ARect, AClipRect: TRect; AColor: TColor; Transparent: Boolean; AViewType: Integer); override; - procedure PaintButton(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo); override; - procedure PaintCaption(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo; const ACaption: string; AFormat: Cardinal; Rotated: Boolean); override; - procedure PaintCheckMark(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo); override; - procedure PaintChevron(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo); override; - procedure PaintDock(Canvas: TCanvas; const ClientRect, DockRect: TRect; DockPosition: Integer); override; - procedure PaintDockPanelNCArea(Canvas: TCanvas; R: TRect; const DockPanelInfo: TTBXDockPanelInfo); override; - procedure PaintDropDownArrow(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo); override; - procedure PaintEditButton(Canvas: TCanvas; const ARect: TRect; var ItemInfo: TTBXItemInfo; ButtonInfo: TTBXEditBtnInfo); override; - procedure PaintEditFrame(Canvas: TCanvas; const ARect: TRect; var ItemInfo: TTBXItemInfo; const EditInfo: TTBXEditInfo); override; - procedure PaintFloatingBorder(Canvas: TCanvas; const ARect: TRect; const WindowInfo: TTBXWindowInfo); override; - procedure PaintFrame(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo); override; - procedure PaintImage(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo; ImageList: TCustomImageList; ImageIndex: Integer); override; - procedure PaintMDIButton(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo; ButtonKind: Cardinal); override; - procedure PaintMenuItem(Canvas: TCanvas; const ARect: TRect; var ItemInfo: TTBXItemInfo); override; - procedure PaintMenuItemFrame(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo); override; - procedure PaintPageScrollButton(Canvas: TCanvas; const ARect: TRect; ButtonType: Integer; Hot: Boolean); override; - procedure PaintPopupNCArea(Canvas: TCanvas; R: TRect; const PopupInfo: TTBXPopupInfo); override; - procedure PaintSeparator(Canvas: TCanvas; ARect: TRect; ItemInfo: TTBXItemInfo; Horizontal, LineSeparator: Boolean); override; - procedure PaintToolbarNCArea(Canvas: TCanvas; R: TRect; const ToolbarInfo: TTBXToolbarInfo); override; - procedure PaintFrameControl(Canvas: TCanvas; R: TRect; Kind, State: Integer; Params: Pointer); override; - procedure PaintStatusBar(Canvas: TCanvas; R: TRect; Part: Integer); override; - - property MDIAreaColor: TColor read FMDIAreaColor; - - property OnSetupColorCache: TNotifyEvent read FOnSetupColorCache write FOnSetupColorCache; - end; - -function GetOffice2003Scheme: TOffice2003Scheme; -procedure PaintGradient(DC: HDC; const ARect: TRect; Color1, Color2: TColor); -procedure PaintIrregularGradient(DC: HDC; const ARect: TRect; Color1, Color2: TColor; Horz: Boolean); -function GetMDIWorkspaceColor: TColor; - -implementation - -uses - TBXUtils, TB2Common, TB2Item, Controls, CommCtrl, Forms, SysUtils, - Types, UITypes; - -function GetOffice2003Scheme: TOffice2003Scheme; -const - MaxChars = 1024; -var - pszThemeFileName, pszColorBuff, pszSizeBuf: PWideChar; - S: string; -begin - Result := osUnknown; - if USE_THEMES then - begin - GetMem(pszThemeFileName, 2 * MaxChars); - GetMem(pszColorBuff, 2 * MaxChars); - GetMem(pszSizeBuf, 2 * MaxChars); - try - if not Failed(GetCurrentThemeName(pszThemeFileName, MaxChars, pszColorBuff, MaxChars, pszSizeBuf, MaxChars)) then - if UpperCase(ExtractFileName(pszThemeFileName)) = 'LUNA.MSSTYLES' then - begin - S := UpperCase(pszColorBuff); - if S = 'NORMALCOLOR' then - Result := osBlue - else if S = 'METALLIC' then - Result := osMetallic - else if S = 'HOMESTEAD' then - Result := osGreen; - end; - finally - FreeMem(pszSizeBuf); - FreeMem(pszColorBuff); - FreeMem(pszThemeFileName); - end; - end; -end; - -procedure PaintGradient(DC: HDC; const ARect: TRect; Color1, Color2: TColor); -var - r1, g1, b1, r2, g2, b2: Byte; - I, Size: Integer; - hbr: HBRUSH; - lprc: TRect; -begin - Color1 := ColorToRGB(Color1); - Color2 := ColorToRGB(Color2); - if Color1 = Color2 then - FillRectEx(DC, ARect, Color1) - else - begin - Size := ARect.Bottom - ARect.Top; - if Size <= 0 then Exit; - - r1 := GetRValue(Color1); - g1 := GetGValue(Color1); - b1 := GetBValue(Color1); - r2 := GetRValue(Color2); - g2 := GetGValue(Color2); - b2 := GetBValue(Color2); - - lprc := ARect; - lprc.Bottom := lprc.Top + 1; - - Dec(Size); - for I := 0 to Size do - begin - hbr := CreateSolidBrush(RGB((r2 - r1) * I div Size + r1, (g2 - g1) * I div Size + g1, (b2 - b1) * I div Size + b1)); - FillRect(DC, lprc, hbr); - DeleteObject(hbr); - OffsetRect(lprc, 0, 1); - end; - end; -end; - -var - IrregularGradientValue: Integer; - -procedure PaintIrregularGradient(DC: HDC; const ARect: TRect; Color1, Color2: TColor; Horz: Boolean); -var - r1, g1, b1, r2, g2, b2: Integer; - rm1, gm1, bm1, rm2, gm2, bm2: Integer; - lprc: TRect; - I, Size, Middle: Integer; - hbr: HBRUSH; -begin - Color1 := ColorToRGB(Color1); - Color2 := ColorToRGB(Color2); - if Color1 = Color2 then - FillRectEx(DC, ARect, Color1) - else - begin - if IsRectEmpty(ARect) then Exit; - - r1 := GetRValue(Color1); - g1 := GetGValue(Color1); - b1 := GetBValue(Color1); - r2 := GetRValue(Color2); - g2 := GetGValue(Color2); - b2 := GetBValue(Color2); - - lprc := ARect; - - if Horz then - begin - Size := ARect.Right - ARect.Left; - lprc.Right := lprc.Left + 1; - end - else - begin - Size := ARect.Bottom - ARect.Top; - lprc.Bottom := lprc.Top + 1; - end; - - Middle := Size div 2; - - rm1 := (r2 - r1) * IrregularGradientValue div 40 + r1; - gm1 := (g2 - g1) * IrregularGradientValue div 40 + g1; - bm1 := (b2 - b1) * IrregularGradientValue div 40 + b1; - rm2 := (rm1 - r1) * Size div Middle + r1; - gm2 := (gm1 - g1) * Size div Middle + g1; - bm2 := (bm1 - b1) * Size div Middle + b1; - - Dec(Size); - for I := 0 to Middle - 1 do - begin - hbr := CreateSolidBrush(RGB((rm2 - r1) * I div Size + r1, (gm2 - g1) * I div Size + g1, (bm2 - b1) * I div Size + b1)); - FillRect(DC, lprc, hbr); - DeleteObject(hbr); - OffsetRect(lprc, Ord(Horz), Ord(not Horz)); - end; - - hbr := CreateSolidBrush(RGB(rm1, gm1, bm1)); - FillRect(DC, lprc, hbr); - DeleteObject(hbr); - OffsetRect(lprc, Ord(Horz), Ord(not Horz)); - - rm1 := rm1 * 2 - r2; - gm1 := gm1 * 2 - g2; - bm1 := bm1 * 2 - b2; - - for I := Middle + 1 to Size do - begin - hbr := CreateSolidBrush(RGB((r2 - rm1) * I div Size + rm1, (g2 - gm1) * I div Size + gm1, (b2 - bm1) * I div Size + bm1)); - FillRect(DC, lprc, hbr); - DeleteObject(hbr); - OffsetRect(lprc, Ord(Horz), Ord(not Horz)); - end; - end; -end; - -function GetMDIWorkspaceColor: TColor; -const - MDIColors: array[TOffice2003Scheme] of TColor = ($AE9990, $B39A9B, $7BA097, clBtnShadow); -begin - Result := MDIColors[GetOffice2003Scheme]; -end; - -var - StockImgList: TImageList; - CounterLock: Integer; - -procedure InitializeStock; -begin - StockImgList := TImageList.Create(nil); - StockImgList.Handle := ImageList_LoadBitmap(HInstance, 'TBXGLYPHS', 16, 0, clWhite); -end; - -procedure FinalizeStock; -begin - StockImgList.Free; -end; - -{ TTBXOffice2003Theme } - -function TTBXOffice2003Theme.GetBooleanMetrics(Index: Integer): Boolean; -begin - case Index of - TMB_OFFICEXPPOPUPALIGNMENT: Result := True; - TMB_EDITMENUFULLSELECT: Result := True; - TMB_EDITHEIGHTEVEN: Result := False; - TMB_SOLIDTOOLBARNCAREA: Result := False; - TMB_SOLIDTOOLBARCLIENTAREA: Result := True; - TMB_PAINTDOCKBACKGROUND: Result := True; - else - Result := False; - end; -end; - -function TTBXOffice2003Theme.GetIntegerMetrics(Index: Integer): Integer; -begin - case Index of - TMI_SPLITBTN_ARROWWIDTH: Result := 12; - - TMI_DROPDOWN_ARROWWIDTH: Result := 8; - TMI_DROPDOWN_ARROWMARGIN: Result := 3; - - TMI_MENU_IMGTEXTSPACE: Result := 5; - TMI_MENU_LCAPTIONMARGIN: Result := 3; - TMI_MENU_RCAPTIONMARGIN: Result := 3; - TMI_MENU_SEPARATORSIZE: Result := 3; - TMI_MENU_MDI_DW: Result := 2; - TMI_MENU_MDI_DH: Result := 2; - - TMI_TLBR_SEPARATORSIZE: Result := 6; - - TMI_EDIT_FRAMEWIDTH: Result := 1; - TMI_EDIT_TEXTMARGINHORZ: Result := 2; - TMI_EDIT_TEXTMARGINVERT: Result := 2; - TMI_EDIT_BTNWIDTH: Result := 14; - TMI_EDIT_MENURIGHTINDENT: Result := 1; - else - Result := -1; - end; -end; - -function TTBXOffice2003Theme.GetViewColor(AViewType: Integer): TColor; -begin - Result := DockColor; - if (AViewType and VT_TOOLBAR) = VT_TOOLBAR then - begin - if (AViewType and TVT_MENUBAR) = TVT_MENUBAR then Result := DockColor - else Result := ToolbarColor1; - end - else if (AViewType and VT_POPUP) = VT_POPUP then - begin - if (AViewType and PVT_LISTBOX) = PVT_LISTBOX then Result := clWindow - else Result := PopupColor; - end - else if (AViewType and VT_DOCKPANEL) = VT_DOCKPANEL then Result := DockPanelColor - else if (AViewType and VT_SECTIONHEADER) = VT_SECTIONHEADER then Result := ToolbarColor2; -end; - -function TTBXOffice2003Theme.GetBtnColor(const ItemInfo: TTBXItemInfo; ItemPart: TItemPart; GradColor2: Boolean = False): TColor; -const - BFlags1: array [Boolean] of TBtnItemState = (bisDisabled, bisDisabledHot); - BFlags2: array [Boolean] of TBtnItemState = (bisSelected, bisSelectedHot); - BFlags3: array [Boolean] of TBtnItemState = (bisNormal, bisHot); -var - B: TBtnItemState; - Embedded: Boolean; -begin - with ItemInfo do - begin - Embedded := (ViewType and VT_TOOLBAR = VT_TOOLBAR) and (ViewType and TVT_EMBEDDED = TVT_EMBEDDED); - if not Enabled then B := BFlags1[HoverKind = hkKeyboardHover] - else if ItemInfo.IsPopupParent then B := bisPopupParent - else if Pushed then B := bisPressed - else if Selected then B := BFlags2[HoverKind <> hkNone] - else B := BFlags3[HoverKind <> hkNone]; - if ItemPart = ipBody then - Result := BtnBodyColors[B, GradColor2] - else - Result := BtnItemColors[B, ItemPart]; - if Embedded and (Result = clNone) then - begin - if ItemPart = ipBody then Result := EmbeddedColor; - if (ItemPart = ipFrame) and not Selected then Result := EmbeddedFrameColor; - end; - end; -end; - -function TTBXOffice2003Theme.GetPartColor(const ItemInfo: TTBXItemInfo; ItemPart: TItemPart): TColor; -const - MFlags1: array [Boolean] of TMenuItemState = (misDisabled, misDisabledHot); - MFlags2: array [Boolean] of TMenuItemState = (misNormal, misHot); - BFlags1: array [Boolean] of TBtnItemState = (bisDisabled, bisDisabledHot); - BFlags2: array [Boolean] of TBtnItemState = (bisSelected, bisSelectedHot); - BFlags3: array [Boolean] of TBtnItemState = (bisNormal, bisHot); -var - IsMenuItem, Embedded: Boolean; - M: TMenuItemState; - B: TBtnItemState; -begin - with ItemInfo do - begin - IsMenuItem := ((ViewType and PVT_POPUPMENU) = PVT_POPUPMENU) and - ((ItemOptions and IO_TOOLBARSTYLE) = 0); - Embedded := ((ViewType and VT_TOOLBAR) = VT_TOOLBAR) and - ((ViewType and TVT_EMBEDDED) = TVT_EMBEDDED); - if IsMenuItem then - begin - if not Enabled then M := MFlags1[HoverKind = hkKeyboardHover] - else M := MFlags2[HoverKind <> hkNone]; - Result := MenuItemColors[M, ItemPart]; - end - else - begin - if not Enabled then B := BFlags1[HoverKind = hkKeyboardHover] - else if ItemInfo.IsPopupParent then B := bisPopupParent - else if Pushed then B := bisPressed - else if Selected then B := BFlags2[HoverKind <> hkNone] - else B := BFlags3[HoverKind <> hkNone]; - if ItemPart = ipBody then - Result := BtnBodyColors[B, False] - else - Result := BtnItemColors[B, ItemPart]; - if Embedded and (Result = clNone) then - begin - if ItemPart = ipBody then Result := EmbeddedColor; - if ItemPart = ipFrame then Result := EmbeddedFrameColor; - end; - end; - end; -end; - -function TTBXOffice2003Theme.GetItemColor(const ItemInfo: TTBXItemInfo): TColor; -begin - Result := GetPartColor(ItemInfo, ipBody); - if Result = clNone then Result := GetViewColor(ItemInfo.ViewType); -end; - -function TTBXOffice2003Theme.GetItemTextColor(const ItemInfo: TTBXItemInfo): TColor; -begin - Result := GetPartColor(ItemInfo, ipText); -end; - -function TTBXOffice2003Theme.GetItemImageBackground(const ItemInfo: TTBXItemInfo): TColor; -begin - Result := GetBtnColor(ItemInfo, ipBody); - if Result = clNone then Result := GetViewColor(ItemInfo.ViewType); -end; - -procedure TTBXOffice2003Theme.GetViewBorder(ViewType: Integer; out Border: TPoint); -const - XMetrics: array [Boolean] of Integer = (SM_CXDLGFRAME, SM_CXFRAME); - YMetrics: array [Boolean] of Integer = (SM_CYDLGFRAME, SM_CYFRAME); -var - Resizable: Boolean; - - procedure SetBorder(X, Y: Integer); - begin - Border.X := X; - Border.Y := Y; - end; - -begin - if (ViewType and VT_TOOLBAR) = VT_TOOLBAR then - begin - if (ViewType and TVT_FLOATING) = TVT_FLOATING then - begin - Resizable := (ViewType and TVT_RESIZABLE) = TVT_RESIZABLE; - Border.X := GetSystemMetrics(XMetrics[Resizable]) - 1; - Border.Y := GetSystemMetrics(YMetrics[Resizable]) - 1; - end - else SetBorder(2, 2); - end - else if (ViewType and VT_POPUP) = VT_POPUP then - begin - if (ViewType and PVT_POPUPMENU) = PVT_POPUPMENU then Border.X := 1 - else Border.X := 2; - Border.Y := 2; - end - else if (ViewType and VT_DOCKPANEL) = VT_DOCKPANEL then - begin - if (ViewType and DPVT_FLOATING) = DPVT_FLOATING then - begin - Resizable := (ViewType and DPVT_RESIZABLE) = DPVT_RESIZABLE; - Border.X := GetSystemMetrics(XMetrics[Resizable]) - 1; - Border.Y := GetSystemMetrics(YMetrics[Resizable]) - 1; - end - else SetBorder(2, 2); - end - else SetBorder(0, 0); -end; - -procedure TTBXOffice2003Theme.GetMargins(MarginID: Integer; out Margins: TTBXMargins); -begin - with Margins do - case MarginID of - MID_TOOLBARITEM: - begin - LeftWidth := 2; RightWidth := 2; - TopHeight := 2; BottomHeight := 2; - end; - MID_MENUITEM: - begin - LeftWidth := 1; RightWidth := 1; - TopHeight := 3; BottomHeight := 3; - end; - MID_STATUSPANE: - begin - LeftWidth := 1; RightWidth := 3; - TopHeight := 1; BottomHeight := 1; - end; - else - LeftWidth := 0; - RightWidth := 0; - TopHeight := 0; - BottomHeight := 0; - end; -end; - -procedure TTBXOffice2003Theme.PaintBackgnd(Canvas: TCanvas; const ADockRect, ARect, AClipRect: TRect; - AColor: TColor; Transparent: Boolean; AViewType: Integer); -var - DC: HDC; - R: TRect; - Horz: Boolean; -begin - DC := Canvas.Handle; - if not Transparent then - begin - IntersectRect(R, ARect, AClipRect); - if ((AViewType and TVT_NORMALTOOLBAR = TVT_NORMALTOOLBAR) or (AViewType and TVT_TOOLWINDOW = TVT_TOOLWINDOW)) and not (AViewType and TVT_EMBEDDED = TVT_EMBEDDED) then - begin - if IsRectEmpty(ADockRect) then - Horz := (ARect.Right > ARect.Bottom) - else - Horz := Abs(R.Right - R.Left) > Abs(R.Bottom - R.Top); - PaintIrregularGradient(Canvas.Handle, R, ToolbarColor1, ToolbarColor2, not Horz); - end - else - FillRectEx(DC, R, AColor); - end; -end; - -procedure TTBXOffice2003Theme.PaintCaption(Canvas: TCanvas; - const ARect: TRect; const ItemInfo: TTBXItemInfo; const ACaption: string; - AFormat: Cardinal; Rotated: Boolean); -var - R: TRect; -begin - with ItemInfo, Canvas do - begin - R := ARect; - Brush.Style := bsClear; - if Font.Color = clNone then Font.Color := GetPartColor(ItemInfo, ipText); - if not Rotated then Windows.DrawText(Handle, PChar(ACaption), Length(ACaption), R, AFormat) - else DrawRotatedText(Handle, ACaption, R, AFormat); - Brush.Style := bsSolid; - end; -end; - -procedure TTBXOffice2003Theme.PaintCheckMark(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo); -var - DC: HDC; - X, Y: Integer; - C: TColor; -begin - DC := Canvas.Handle; - X := (ARect.Left + ARect.Right) div 2 - 2; - Y := (ARect.Top + ARect.Bottom) div 2 + 1; - C := GetBtnColor(ItemInfo, ipText); - if ItemInfo.ItemOptions and IO_RADIO > 0 then - begin - RoundRectEx(DC, X - 1, Y - 4, X + 5, Y + 2, 2, 2, MixColors(C, ToolbarColor1, 200), clNone); - RoundRectEx(DC, X - 1, Y - 4, X + 5, Y + 2, 6, 6, C, C); - end - else - PolylineEx(DC, [Point(X - 2, Y - 2), Point(X, Y), Point(X + 4, Y - 4), - Point(X + 4, Y - 3), Point(X, Y + 1), Point(X - 2, Y - 1), Point(X - 2, Y - 2)], C); -end; - -procedure TTBXOffice2003Theme.PaintChevron(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo); -const - Pattern: array[Boolean, 0..15] of Byte = ( - ($CC, 0, $66, 0, $33, 0, $66, 0, $CC, 0, 0, 0, 0, 0, 0, 0), - ($88, 0, $D8, 0, $70, 0, $20, 0, $88, 0, $D8, 0, $70, 0, $20, 0)); -var - R2: TRect; - W, H: Integer; -begin - R2 := ARect; - PaintButton(Canvas, ARect, ItemInfo); - if not ItemInfo.IsVertical then - begin - Inc(R2.Top, 4); - R2.Bottom := R2.Top + 5; - W := 8; - H := 5; - end - else - begin - R2.Left := R2.Right - 9; - R2.Right := R2.Left + 5; - W := 5; - H := 8; - end; - DrawGlyph(Canvas.Handle, R2, W, H, Pattern[ItemInfo.IsVertical][0], GetPartColor(ItemInfo, ipText)); -end; - -procedure TTBXOffice2003Theme.PaintEditButton(Canvas: TCanvas; const ARect: TRect; - var ItemInfo: TTBXItemInfo; ButtonInfo: TTBXEditBtnInfo); -var - DC: HDC; - BtnDisabled, BtnHot, BtnPressed, Embedded: Boolean; - R, BR: TRect; - X, Y: Integer; - SaveItemInfoPushed: Boolean; - C: TColor; -begin - DC := Canvas.Handle; - R := ARect; - Embedded := ((ItemInfo.ViewType and VT_TOOLBAR) = VT_TOOLBAR) and - ((ItemInfo.ViewType and TVT_EMBEDDED) = TVT_EMBEDDED); - - InflateRect(R, 1, 1); - Inc(R.Left); - with Canvas do - if ButtonInfo.ButtonType = EBT_DROPDOWN then - begin - BtnDisabled := (ButtonInfo.ButtonState and EBDS_DISABLED) <> 0; - BtnHot := (ButtonInfo.ButtonState and EBDS_HOT) <> 0; - BtnPressed := (ButtonInfo.ButtonState and EBDS_PRESSED) <> 0; - if not BtnDisabled then - begin - if BtnPressed or BtnHot or Embedded then PaintButton(Canvas, R, ItemInfo) - else if (ItemInfo.ViewType and VT_TOOLBAR) = VT_TOOLBAR then - begin - R := ARect; - if not Embedded then - begin - FrameRectEx(DC, R, clWindow, False); - C := clWindow; - end - else C := GetBtnColor(ItemInfo, ipFrame); - DrawLineEx(DC, R.Left - 1, R.Top, R.Left - 1, R.Bottom, C); - end; - end; - PaintDropDownArrow(Canvas, R, ItemInfo); - end - else if ButtonInfo.ButtonType = EBT_SPIN then - begin - BtnDisabled := (ButtonInfo.ButtonState and EBSS_DISABLED) <> 0; - BtnHot := (ButtonInfo.ButtonState and EBSS_HOT) <> 0; - - { Upper button } - BR := R; - BR.Bottom := (R.Top + R.Bottom + 1) div 2; - BtnPressed := (ButtonInfo.ButtonState and EBSS_UP) <> 0; - SaveItemInfoPushed := ItemInfo.Pushed; - ItemInfo.Pushed := BtnPressed; - if not BtnDisabled then - begin - if BtnPressed or BtnHot or Embedded then PaintButton(Canvas, BR, ItemInfo) - else if (ItemInfo.ViewType and VT_TOOLBAR) = VT_TOOLBAR then - begin - BR.Left := ARect.Left; BR.Top := ARect.Top; BR.Right := ARect.Right; - if not Embedded then - begin - FrameRectEx(DC, BR, clWindow, False); - C := clWindow; - end - else C := GetBtnColor(ItemInfo, ipFrame); - DrawLineEx(DC, BR.Left - 1, BR.Top, BR.Left - 1, BR.Bottom, C); - end; - end; - X := (BR.Left + BR.Right) div 2; - Y := (BR.Top + BR.Bottom - 1) div 2; - Pen.Color := GetPartColor(ItemInfo, ipText); - Brush.Color := Pen.Color; - Polygon([Point(X - 2, Y + 1), Point(X + 2, Y + 1), Point(X, Y - 1)]); - - { Lower button } - BR := R; - BR.Top := (R.Top + R.Bottom) div 2; - BtnPressed := (ButtonInfo.ButtonState and EBSS_DOWN) <> 0; - ItemInfo.Pushed := BtnPressed; - if not BtnDisabled then - begin - if BtnPressed or BtnHot or Embedded then PaintButton(Canvas, BR, ItemInfo) - else if (ItemInfo.ViewType and VT_TOOLBAR) = VT_TOOLBAR then - begin - BR.Left := ARect.Left; BR.Bottom := ARect.Bottom; BR.Right := ARect.Right; - if not Embedded then - begin - FrameRectEx(DC, BR, clWindow, False); - C := clWindow; - end - else C := GetBtnColor(ItemInfo, ipFrame); - DrawLineEx(DC, BR.Left - 1, BR.Top, BR.Left - 1, BR.Bottom, C); - end; - end; - X := (BR.Left + BR.Right) div 2; - Y := (BR.Top + BR.Bottom) div 2; - C := GetPartColor(ItemInfo, ipText); - PolygonEx(DC, [Point(X - 2, Y - 1), Point(X + 2, Y - 1), Point(X, Y + 1)], C, C); - - ItemInfo.Pushed := SaveItemInfoPushed; - end; -end; - -procedure TTBXOffice2003Theme.PaintEditFrame(Canvas: TCanvas; - const ARect: TRect; var ItemInfo: TTBXItemInfo; const EditInfo: TTBXEditInfo); -var - DC: HDC; - R: TRect; - W: Integer; - Embedded: Boolean; -begin - DC := Canvas.Handle; - R := ARect; - PaintFrame(Canvas, R, ItemInfo); - W := EditFrameWidth; - InflateRect(R, -W, -W); - Embedded := ((ItemInfo.ViewType and VT_TOOLBAR) = VT_TOOLBAR) and - ((ItemInfo.ViewType and TVT_EMBEDDED) = TVT_EMBEDDED); - if not (ItemInfo.Enabled or Embedded) then - FrameRectEx(DC, R, BtnItemColors[bisDisabled, ipText], False); - - with EditInfo do if RightBtnWidth > 0 then Dec(R.Right, RightBtnWidth - 2); - - if ItemInfo.Enabled then - begin - if ((ItemInfo.ViewType and VT_TOOLBAR) <> VT_TOOLBAR) and (GetPartColor(ItemInfo, ipFrame) = clNone) then - FrameRectEx(DC, R, ToolbarColor2, False) - else - FrameRectEx(DC, R, clWindow, False); - - InflateRect(R, -1, -1); - FillRectEx(DC, R, clWindow); - if ((ItemInfo.ViewType and VT_TOOLBAR) <> VT_TOOLBAR) and (GetPartColor(ItemInfo, ipFrame) = clNone) then - begin - R := ARect; - InflateRect(R, -1, -1); - FrameRectEx(DC, R, ToolbarColor2, False); - end; - end - else InflateRect(R, -1, -1); - - with EditInfo do if LeftBtnWidth > 0 then Inc(R.Left, LeftBtnWidth - 2); - - if EditInfo.RightBtnWidth > 0 then - begin - R := ARect; - InflateRect(R, -W, -W); - R.Left := R.Right - EditInfo.RightBtnWidth; - PaintEditButton(Canvas, R, ItemInfo, EditInfo.RightBtnInfo); - end; -end; - -procedure TTBXOffice2003Theme.PaintDropDownArrow(Canvas: TCanvas; - const ARect: TRect; const ItemInfo: TTBXItemInfo); -var - X, Y: Integer; -begin - with ARect, Canvas do - begin - X := (Left + Right) div 2; - Y := (Top + Bottom) div 2 - 1; - Pen.Color := GetPartColor(ItemInfo, ipText); - Brush.Color := Pen.Color; - if ItemInfo.IsVertical then Polygon([Point(X, Y + 2), Point(X, Y - 2), Point(X - 2, Y)]) - else Polygon([Point(X - 2, Y), Point(X + 2, Y), Point(X, Y + 2)]); - end; -end; - -procedure TTBXOffice2003Theme.PaintButton(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo); -var - DC: HDC; - R: TRect; - tmpColor1, tmpColor2: TColor; -begin - DC := Canvas.Handle; - with ItemInfo do - begin - R := ARect; - if ((ItemOptions and IO_DESIGNING) <> 0) and not Selected then - begin - if ComboPart = cpSplitRight then Dec(R.Left); - FrameRectEx(DC, R, clNavy, False); - end - else - begin - FrameRectEx(DC, R, GetBtnColor(ItemInfo, ipFrame), True); - if (ComboPart = cpSplitLeft) and IsPopupParent then Inc(R.Right); - if ComboPart = cpSplitRight then Dec(R.Left); - - tmpColor1 := GetBtnColor(ItemInfo, ipBody); - tmpColor2 := GetBtnColor(ItemInfo, ipBody, True); - - if (ItemInfo.ViewType and VT_POPUP = VT_POPUP) or (ItemInfo.ViewType and VT_TOOLBAR = VT_TOOLBAR) and (ItemInfo.ViewType and TVT_EMBEDDED = TVT_EMBEDDED) then - FillRectEx(DC, R, tmpColor1) - else if (tmpColor1 <> clNone) and (tmpColor2 <> clNone) then - PaintGradient(DC, R, tmpColor1, tmpColor2); - end; - if ComboPart = cpSplitRight then PaintDropDownArrow(Canvas, R, ItemInfo); - end; -end; - -procedure TTBXOffice2003Theme.PaintFloatingBorder(Canvas: TCanvas; const ARect: TRect; - const WindowInfo: TTBXWindowInfo); - - function GetBtnItemState(BtnState: Integer): TBtnItemState; - begin - if not WindowInfo.Active then Result := bisDisabled - else if (BtnState and CDBS_PRESSED) <> 0 then Result := bisPressed - else if (BtnState and CDBS_HOT) <> 0 then Result := bisHot - else Result := bisNormal; - end; - -var - BtnItemState: TBtnItemState; - SaveIndex, X, Y: Integer; - Sz: TPoint; - R: TRect; - BodyColor, CaptionColor, CaptionText: TColor; - IsDockPanel: Boolean; -begin - with Canvas do - begin - IsDockPanel := (WindowInfo.ViewType and VT_DOCKPANEL) = VT_DOCKPANEL; - BodyColor := Brush.Color; - - if (WRP_BORDER and WindowInfo.RedrawPart) <> 0 then - begin - R := ARect; - - if not IsDockPanel then Brush.Color := WinFrameColors[wfpBorder] - else Brush.Color := WinFrameColors[wfpBorder]; - - SaveIndex := SaveDC(Canvas.Handle); - Sz := WindowInfo.FloatingBorderSize; - with R, Sz do ExcludeClipRect(Canvas.Handle, Left + X, Top + Y, Right - X, Bottom - Y); - FillRect(R); - RestoreDC(Canvas.Handle, SaveIndex); - InflateRect(R, -Sz.X, -Sz.Y); - Pen.Color := BodyColor; - with R do - if not IsDockPanel then - Canvas.Polyline([ - Point(Left, Top - 1), Point(Right - 1, Top - 1), - Point(Right, Top), Point(Right, Bottom - 1), - Point(Right - 1, Bottom), - Point(Left, Bottom), Point(Left - 1, Bottom - 1), - Point(Left - 1, Top), Point(Left, Top - 1) - ]) - else - Canvas.Polyline([ - Point(Left, Top - 1), Point(Right - 1, Top - 1), - Point(Right, Top), Point(Right, Bottom), - Point(Left - 1, Bottom), - Point(Left - 1, Top), Point(Left, Top - 1) - ]); - end; - - if not WindowInfo.ShowCaption then Exit; - - if (WindowInfo.ViewType and VT_TOOLBAR) = VT_TOOLBAR then - begin - CaptionColor := WinFrameColors[wfpCaption]; - CaptionText := WinFrameColors[wfpCaptionText]; - end - else - begin - CaptionColor := WinFrameColors[wfpCaption]; - CaptionText := WinFrameColors[wfpCaptionText]; - end; - - { Caption } - if (WRP_CAPTION and WindowInfo.RedrawPart) <> 0 then - begin - R := Rect(0, 0, WindowInfo.ClientWidth, GetSystemMetrics(SM_CYSMCAPTION) - 1); - with WindowInfo.FloatingBorderSize do OffsetRect(R, X, Y); - DrawLineEx(Canvas.Handle, R.Left, R.Bottom, R.Right, R.Bottom, BodyColor); - - if ((CDBS_VISIBLE and WindowInfo.CloseButtonState) <> 0) and - ((WRP_CLOSEBTN and WindowInfo.RedrawPart) <> 0) then - Dec(R.Right, GetSystemMetrics(SM_CYSMCAPTION) - 1); - - Brush.Color := CaptionColor; - FillRect(R); - InflateRect(R, -2, 0); - Font.Assign(SmCaptionFont); - Font.Color := CaptionText; - DrawText(Canvas.Handle, WindowInfo.Caption, -1, R, - DT_SINGLELINE or DT_VCENTER or DT_END_ELLIPSIS or DT_NOPREFIX); - end; - - { Close button } - if (CDBS_VISIBLE and WindowInfo.CloseButtonState) <> 0 then - begin - R := Rect(0, 0, WindowInfo.ClientWidth, GetSystemMetrics(SM_CYSMCAPTION) - 1); - with WindowInfo.FloatingBorderSize do OffsetRect(R, X, Y); - R.Left := R.Right - (R.Bottom - R.Top); - DrawLineEx(Canvas.Handle, R.Left - 1, R.Bottom, R.Right, R.Bottom, BodyColor); - Brush.Color := CaptionColor; - FillRect(R); - with R do - begin - X := (Left + Right - StockImgList.Width + 1) div 2; - Y := (Top + Bottom - StockImgList.Height) div 2; - end; - BtnItemState := GetBtnItemState(WindowInfo.CloseButtonState); - FrameRectEx(Canvas.Handle, R, BtnItemColors[BtnItemState, ipFrame], True); - if FillRectEx(Canvas.Handle, R, BtnBodyColors[BtnItemState, False]) then - DrawGlyph(Canvas.Handle, X, Y, StockImgList, 0, BtnItemColors[BtnItemState, ipText]) - else - DrawGlyph(Canvas.Handle, X, Y, StockImgList, 0, CaptionText); - end; - end; -end; - -procedure TTBXOffice2003Theme.PaintFrame(Canvas: TCanvas; const ARect: TRect; - const ItemInfo: TTBXItemInfo); -var - DC: HDC; - R: TRect; -begin - DC := Canvas.Handle; - R := ARect; - FrameRectEx(DC, R, GetPartColor(ItemInfo, ipFrame), True); - FillRectEx(DC, R, GetPartColor(ItemInfo, ipBody)); -end; - -function TTBXOffice2003Theme.GetImageOffset(Canvas: TCanvas; - const ItemInfo: TTBXItemInfo; ImageList: TCustomImageList): TPoint; -begin - Result.X := 0; - Result.Y := 0; -end; - -procedure TTBXOffice2003Theme.PaintImage(Canvas: TCanvas; ARect: TRect; - const ItemInfo: TTBXItemInfo; ImageList: TCustomImageList; ImageIndex: Integer); -var - HiContrast: Boolean; -begin - with ItemInfo do - begin - if ImageList is TTBCustomImageList then - begin - TTBCustomImageList(ImageList).DrawState(Canvas, ARect.Left, ARect.Top, - ImageIndex, Enabled, (HoverKind <> hkNone), Selected); - Exit; - end; - - HiContrast := ColorIntensity(GetItemImageBackground(ItemInfo)) < 80; - if not Enabled then - begin - if not HiContrast then - DrawTBXIconShadow(Canvas, ARect, ImageList, ImageIndex, 0) - else - DrawTBXIconFlatShadow(Canvas, ARect, ImageList, ImageIndex, SeparatorColor1); - end - else {$IFDEF HIGHLIGHTTOOLBARICONS}if Selected or Pushed or (HoverKind <> hkNone) or HiContrast or TBXHiContrast or TBXLoColor then{$ENDIF} - DrawTBXIcon(Canvas, ARect, ImageList, ImageIndex, HiContrast) - {$IFDEF HIGHLIGHTTOOLBARICONS} - else - HighlightTBXIcon(Canvas, ARect, ImageList, ImageIndex, clWindow, 178){$ENDIF}; - end; -end; - -procedure TTBXOffice2003Theme.PaintMDIButton(Canvas: TCanvas; ARect: TRect; - const ItemInfo: TTBXItemInfo; ButtonKind: Cardinal); -var - Index: Integer; -begin - PaintButton(Canvas, ARect, ItemInfo); - Dec(ARect.Bottom); - case ButtonKind of - DFCS_CAPTIONMIN: Index := 2; - DFCS_CAPTIONRESTORE: Index := 3; - DFCS_CAPTIONCLOSE: Index := 0; - else - Exit; - end; - DrawGlyph(Canvas.Handle, ARect, StockImgList, Index, GetPartColor(ItemInfo, ipText)); -end; - -procedure TTBXOffice2003Theme.PaintMenuItemFrame(Canvas: TCanvas; - const ARect: TRect; const ItemInfo: TTBXItemInfo); -var - R: TRect; -begin - R := ARect; - if (ItemInfo.ViewType and PVT_TOOLBOX) <> PVT_TOOLBOX then with Canvas do - begin - R.Right := R.Left + ItemInfo.PopupMargin + 2; - PaintIrregularGradient(Handle, R, ToolbarColor1, ToolbarColor2, True); - Inc(R.Left); - R.Right := ARect.Right - 1; - end; - PaintFrame(Canvas, R, ItemInfo); -end; - -procedure TTBXOffice2003Theme.PaintMenuItem(Canvas: TCanvas; const ARect: TRect; var ItemInfo: TTBXItemInfo); -var - DC: HDC; - R: TRect; - X, Y: Integer; - ArrowWidth: Integer; - C, ClrText: TColor; -begin - DC := Canvas.Handle; - with ItemInfo do - begin - ArrowWidth := GetSystemMetrics(SM_CXMENUCHECK); - PaintMenuItemFrame(Canvas, ARect, ItemInfo); - ClrText := GetPartColor(ItemInfo, ipText); - R := ARect; - - if (ItemOptions and IO_COMBO) <> 0 then - begin - X := R.Right - ArrowWidth - 1; - if not ItemInfo.Enabled then C := ClrText - else if HoverKind = hkMouseHover then C := GetPartColor(ItemInfo, ipFrame) - else C := PopupFrameColor; - DrawLineEx(DC, X, R.Top + 1, X, R.Bottom - 1, C); - end; - - if (ItemOptions and IO_SUBMENUITEM) <> 0 then - begin - Y := ARect.Bottom div 2; - X := ARect.Right - ArrowWidth * 2 div 3 - 1; - PolygonEx(DC, [Point(X, Y - 3), Point(X, Y + 3), Point(X + 3, Y)], ClrText, ClrText); - end; - - if Selected and Enabled then - begin - R := ARect; - R.Left := ARect.Left + 1; - R.Right := R.Left + ItemInfo.PopupMargin; - InflateRect(R, -1, -1); - FrameRectEx(DC, R, GetBtnColor(ItemInfo, ipFrame), True); - FillRectEx(DC, R, GetBtnColor(ItemInfo, ipBody)); - end; - end; -end; - -procedure TTBXOffice2003Theme.PaintPopupNCArea(Canvas: TCanvas; R: TRect; const PopupInfo: TTBXPopupInfo); -var - PR: TRect; -begin - with Canvas do - begin - Brush.Color := PopupFrameColor; - FrameRect(R); - InflateRect(R, -1, -1); - Brush.Color := PopupColor; - FillRect(R); - - if not IsRectEmpty(PopupInfo.ParentRect) then - begin - PR := PopupInfo.ParentRect; - if not IsRectEmpty(PR) then with PR do - begin - Pen.Color := PopupColor; - if Bottom = R.Top then - begin - if Left <= R.Left then Left := R.Left - 1; - if Right >= R.Right then Right := R.Right + 1; - MoveTo(Left + 1, Bottom - 1); LineTo(Right - 1, Bottom - 1); - end - else if Top = R.Bottom then - begin - if Left <= R.Left then Left := R.Left - 1; - if Right >= R.Right then Right := R.Right + 1; - MoveTo(Left + 1, Top); LineTo(Right - 1, Top); - end; - if Right = R.Left then - begin - if Top <= R.Top then Top := R.Top - 1; - if Bottom >= R.Bottom then Bottom := R.Bottom + 1; - MoveTo(Right - 1, Top + 1); LineTo(Right - 1, Bottom - 1); - end - else if Left = R.Right then - begin - if Top <= R.Top then Top := R.Top - 1; - if Bottom >= R.Bottom then Bottom := R.Bottom + 1; - MoveTo(Left, Top + 1); LineTo(Left, Bottom - 1); - end; - end; - end; - end; -end; - -procedure TTBXOffice2003Theme.PaintSeparator(Canvas: TCanvas; ARect: TRect; - ItemInfo: TTBXItemInfo; Horizontal, LineSeparator: Boolean); -var - DC: HDC; - IsToolbox: Boolean; - R: TRect; - NewWidth: Integer; -begin - { Note: for blank separators, Enabled = False } - DC := Canvas.Handle; - with ItemInfo, ARect do - begin - if Horizontal then - begin - IsToolbox := (ViewType and PVT_TOOLBOX) = PVT_TOOLBOX; - if ((ItemOptions and IO_TOOLBARSTYLE) = 0) and not IsToolBox then - begin - R := ARect; - R.Right := ItemInfo.PopupMargin + 2; - PaintIrregularGradient(DC, R, ToolbarColor1, ToolbarColor2, True); - Inc(Left, ItemInfo.PopupMargin + 9); - Top := (Top + Bottom) div 2; - if Enabled then DrawLineEx(DC, Left, Top, Right, Top, SeparatorColor1); - end - else - begin - Top := (Top + Bottom) div 2; - Right := Right + 1; - NewWidth := Round(0.6 * (Right - Left)); - Left := (Right - Left - NewWidth) div 2; - Right := Left + NewWidth; - if Enabled then - begin - DrawLineEx(DC, Left, Top, Right, Top, SeparatorColor1); - OffsetRect(ARect, 1, 1); - DrawLineEx(DC, Left, Top, Right, Top, SeparatorColor2); - end; - end; - end - else if Enabled then - begin - Left := (Left + Right) div 2; - Bottom := Bottom + 1; - NewWidth := Round(0.6 * (Bottom - Top)); - Top := (Bottom - Top - NewWidth) div 2; - Bottom := Top + NewWidth; - DrawLineEx(DC, Left, Top, Left, Bottom, SeparatorColor1); - OffsetRect(ARect, 1, 1); - DrawLineEx(DC, Left, Top, Left, Bottom, SeparatorColor2); - end; - end; -end; - -procedure DrawButtonBitmap(DC: HDC; R: TRect; Color: TColor); -const -{$IFNDEF SMALL_CLOSE_BUTTON} - Pattern: array [0..15] of Byte = - ($C3, 0, $66, 0, $3C, 0, $18, 0, $3C, 0, $66, 0, $C3, 0, 0, 0); -{$ELSE} - Pattern: array [0..15] of Byte = - (0, 0, $63, 0, $36, 0, $1C, 0, $1C, 0, $36, 0, $63, 0, 0, 0); -{$ENDIF} -begin - DrawGlyph(DC, R, 8, 7, Pattern[0], Color); -end; - -procedure TTBXOffice2003Theme.PaintToolbarNCArea(Canvas: TCanvas; R: TRect; const ToolbarInfo: TTBXToolbarInfo); -const - DragHandleOffsets: array [Boolean, DHS_DOUBLE..DHS_SINGLE] of Integer = ((2, 0, 1), (5, 0, 5)); - - function GetBtnItemState(BtnState: Integer): TBtnItemState; - begin - if (BtnState and CDBS_PRESSED) <> 0 then Result := bisPressed - else if (BtnState and CDBS_HOT) <> 0 then Result := bisHot - else Result := bisNormal; - end; - - procedure DrawHandleElement(const P: TPoint); - begin - Canvas.Brush.Color := DragHandleColor2; - Canvas.FillRect(Rect(P.X + 1, P.Y + 1, P.X + 3, P.Y + 3)); - Canvas.Brush.Color := DragHandleColor1; - Canvas.FillRect(Rect(P.X, P.Y, P.X + 2, P.Y + 2)); - end; - -var - DC: HDC; - Sz: Integer; - R2: TRect; - I: Integer; - BtnVisible, Horz: Boolean; - BtnItemState: TBtnItemState; - IsMenuBar: Boolean; -begin - DC := Canvas.Handle; - Horz := not ToolbarInfo.IsVertical; - with Canvas do - begin - IsMenuBar := ToolbarInfo.ViewType and TVT_MENUBAR = TVT_MENUBAR; - if (ToolbarInfo.BorderStyle = bsSingle) and not IsMenuBar then - begin - I := ColorIntensity(clBtnFace); - if not (TBXLoColor or not (I in [50..254])) then - begin - InflateRect(R, -1, -1); - Pen.Style := psSolid; - with R do - begin - if Horz then - begin - {left} - PaintIrregularGradient(Handle, Rect(Left, Top + 1, Left + 1, Bottom - 1), ToolbarColor1, ToolbarColor2, False); - - {right} - PaintIrregularGradient(Handle, Rect(Right - 1, Top + 1, Right, Bottom - 1), ToolbarColor1, ToolbarColor2, False); - PaintIrregularGradient(Handle, Rect(Right, Top + 1, Right + 1, Bottom - 1), ToolbarColor2, ToolbarFrameColor1, False); - - {top} - Pen.Color := ToolbarColor1; - Polyline([Point(Left + 2, Top), Point(Right - 1, Top)]); - - {bottom} - Pen.Color := ToolbarColor2; - Polyline([Point(Left + 1, Bottom - 1), Point(Right - 1, Bottom - 1)]); - Pen.Color := ToolbarFrameColor1; - Polyline([Point(Left + 2, Bottom), Point(Right - 1, Bottom)]); - - {pixels} - SetPixelV(Handle, Left + 1, Top, ToolbarFrameColor2); - SetPixelV(Handle, Left, Top + 1, ToolbarFrameColor2); - SetPixelV(Handle, Right - 1, Top, ToolbarFrameColor2); - SetPixelV(Handle, Right, Top + 1, ToolbarFrameColor2); - SetPixelV(Handle, Right - 1, Bottom - 1, ToolbarFrameColor1); - end - else - begin - {left} - Pen.Color := ToolbarColor1; - Polyline([Point(Left, Top + 2), Point(Left, Bottom - 1)]); - - {right} - Pen.Color := ToolbarColor2; - Polyline([Point(Right - 1, Top + 1), Point(Right - 1, Bottom - 1)]); - Pen.Color := ToolbarFrameColor1; - Polyline([Point(Right, Top + 2), Point(Right, Bottom - 1)]); - - {top} - PaintIrregularGradient(Handle, Rect(Left + 1, Top, Right - 1, Top + 1), ToolbarColor1, ToolbarColor2, True); - - {bottom} - PaintIrregularGradient(Handle, Rect(Left + 2, Bottom - 1, Right - 1, Bottom), ToolbarColor1, ToolbarColor2, True); - PaintIrregularGradient(Handle, Rect(Left + 2, Bottom, Right - 1, Bottom + 1), ToolbarColor2, ToolbarFrameColor1, True); - - {pixels} - SetPixelV(Handle, Left + 1, Top, ToolbarFrameColor2); - SetPixelV(Handle, Left, Top + 1, ToolbarFrameColor2); - SetPixelV(Handle, Left + 1, Bottom - 1, ToolbarColor2); - SetPixelV(Handle, Left, Bottom - 2, ToolbarFrameColor2); - SetPixelV(Handle, Right - 1, Bottom - 1, ToolbarFrameColor1); - end; - end; - Brush.Style := bsSolid; - Inc(R.Left); - Inc(R.Top); - end - else - begin - Brush.Bitmap := AllocPatternBitmap(ToolbarColor1, BtnItemColors[bisDisabled, ipText]); - with R do - begin - FillRect(Rect(Left + 1, Top, Right - 1, Top + 1)); - FillRect(Rect(Left + 1, Bottom - 1, Right - 1, Bottom)); - FillRect(Rect(Left, Top + 1, Left + 1, Bottom - 1)); - FillRect(Rect(Right - 1, Top + 1, Right, Bottom - 1)); - end; - InflateRect(R, -1, -1); - Brush.Color := ToolbarColor1; - FillRect(R); - end; - end - else - InflateRect(R, -1, -1); - InflateRect(R, -1, -1); - - if not ToolbarInfo.AllowDrag then Exit; - - BtnVisible := (ToolbarInfo.CloseButtonState and CDBS_VISIBLE) <> 0; - Sz := GetTBXDragHandleSize(ToolbarInfo); - if Horz then R.Right := R.Left + Sz - else R.Bottom := R.Top + Sz; - - { Drag Handle } - if ToolbarInfo.DragHandleStyle <> DHS_NONE then - begin - R2 := R; - if Horz then - begin - Inc(R2.Left, DragHandleOffsets[BtnVisible, ToolbarInfo.DragHandleStyle]); - if BtnVisible then Inc(R2.Top, Sz - 2); - R2.Right := R2.Left + 3; - end - else - begin - Inc(R2.Top, DragHandleOffsets[BtnVisible, ToolbarInfo.DragHandleStyle]); - if BtnVisible then Dec(R2.Right, Sz - 2); - R2.Bottom := R2.Top + 3; - end; - - if not IsMenuBar then - PaintIrregularGradient(Canvas.Handle, Rect(R.Left - 1, R.Top - 1, R.Right, R.Bottom), ToolbarColor1, ToolbarColor2, not Horz) - else - begin - Inc(R2.Left); - Inc(R2.Top); - end; - - if Horz then - begin - I := R2.Top + Sz div 2; - while I < R2.Bottom - Sz div 2 - 2 do - begin - DrawHandleElement(Point(R2.Left, I)); - Inc(I, 4); - end; - end - else - begin - I := R2.Left + Sz div 2; - while I < R2.Right - Sz div 2 - 2 do - begin - DrawHandleElement(Point(I, R2.Top)); - Inc(I, 4); - end; - end; - end; - - { Close button } - if BtnVisible then - begin - R2 := R; - if Horz then - begin - Dec(R2.Right); - R2.Bottom := R2.Top + R2.Right - R2.Left; - end - else - begin - Dec(R2.Bottom); - R2.Left := R2.Right - R2.Bottom + R2.Top; - end; - - BtnItemState := GetBtnItemState(ToolbarInfo.CloseButtonState); - FrameRectEx(DC, R2, BtnItemColors[BtnItemState, ipFrame], True); - FillRectEx(DC, R2, BtnBodyColors[BtnItemState, False]); - DrawButtonBitmap(DC, R2, BtnItemColors[BtnItemState, ipText]); - end; - end; -end; - -procedure TTBXOffice2003Theme.PaintDock(Canvas: TCanvas; const ClientRect, - DockRect: TRect; DockPosition: Integer); -begin - FillRectEx(Canvas.Handle, DockRect, DockColor); -end; - -procedure TTBXOffice2003Theme.PaintDockPanelNCArea(Canvas: TCanvas; R: TRect; const DockPanelInfo: TTBXDockPanelInfo); - - function GetBtnItemState(BtnState: Integer): TBtnItemState; - begin - if (BtnState and CDBS_PRESSED) <> 0 then Result := bisPressed - else if (BtnState and CDBS_HOT) <> 0 then Result := bisHot - else Result := bisNormal; - end; - -var - DC: HDC; - C: TColor; - I, Sz, Flags: Integer; - R2: TRect; - BtnItemState: TBtnItemState; - B: HBRUSH; - OldBkMode: Cardinal; - OldFont: HFONT; - OldTextColor: TColorRef; -begin - DC := Canvas.Handle; - with DockPanelInfo do - begin - I := ColorIntensity(ColorToRGB(clBtnFace)); - R2 := R; - if not TBXLoColor and (I in [64..250]) then - begin - FrameRectEx(DC, R, ToolbarColor2, True); - FrameRectEx(DC, R, EffectiveColor, False); - with R do - begin - C := ToolbarColor2; - SetPixelV(DC, Left, Top, C); - if IsVertical then SetPixelV(DC, Right - 1, Top, C) - else SetPixelV(DC, Left, Bottom - 1, C); - end; - end - else - begin - FrameRectEx(DC, R, EffectiveColor, True); - - if I < 64 then B := CreateDitheredBrush(EffectiveColor, clWhite) - else B := CreateDitheredBrush(EffectiveColor, clBtnShadow); - Windows.FrameRect(DC, R, B); - DeleteObject(B); - - with R do - begin - SetPixelV(DC, Left, Top, EffectiveColor); - if IsVertical then SetPixelV(DC, Right - 1, Top, EffectiveColor) - else SetPixelV(DC, Left, Bottom - 1, EffectiveColor); - end; - InflateRect(R, -1, -1); - FrameRectEx(DC, R, EffectiveColor, False); - end; - R := R2; - InflateRect(R, -BorderSize.X, -BorderSize.Y); - Sz := GetSystemMetrics(SM_CYSMCAPTION); - if IsVertical then - begin - R.Bottom := R.Top + Sz - 1; - DrawLineEx(DC, R.Left, R.Bottom, R.Right, R.Bottom, EffectiveColor); - end - else - begin - R.Right := R.Left + Sz - 1; - DrawLineEx(DC, R.Right, R.Top, R.Right, R.Bottom, EffectiveColor); - end; - {$IFDEF DOCKPANELGRADIENTCAPTION} - PaintGradient(DC, R, ToolbarColor1, ToolbarColor2); - {$ELSE} - FillRectEx(DC, R, DockColor); - {$ENDIF} - - if (CDBS_VISIBLE and CloseButtonState) <> 0 then - begin - R2 := R; - if IsVertical then - begin - R2.Left := R2.Right - Sz + 1; - R.Right := R2.Left; - end - else - begin - R2.Top := R2.Bottom - Sz + 1; - R.Bottom := R2.Top; - end; - - BtnItemState := GetBtnItemState(CloseButtonState); - FrameRectEx(DC, R2, BtnItemColors[BtnItemState, ipFrame], True); - FillRectEx(DC, R2, BtnBodyColors[BtnItemState, False]); - DrawButtonBitmap(DC, R2, BtnItemColors[BtnItemState, ipText]); - end; - - if IsVertical then InflateRect(R, -4, 0) - else InflateRect(R, 0, -4); - - OldFont := SelectObject(DC, SmCaptionFont.Handle); - OldBkMode := SetBkMode(DC, TRANSPARENT); - OldTextColor := SetTextColor(DC, ColorToRGB(SmCaptionFont.Color)); - Flags := DT_SINGLELINE or DT_VCENTER or DT_END_ELLIPSIS or DT_NOPREFIX; - if IsVertical then DrawText(DC, Caption, -1, R, Flags) - else DrawRotatedText(DC, string(Caption), R, Flags); - SetTextColor(DC, OldTextColor); - SetBkMode(DC, OldBkMode); - SelectObject(DC, OldFont); - end; -end; - -procedure TTBXOffice2003Theme.SetupColorCache; -const - Office2003Colors: array[osBlue..osGreen, 0..27] of TColor = ( - ($F5BE9E, $FEECDD, $E2A981, $9C613B, $FAD5BD, $CB8C6A, $FFF9F1, $764127, - $FFFFFF, $F0C7A9, $B99D7F, $DEDEDE, $F6F6F6, $962D00, $000000, $8D8D8D, - $800000, $C9662A, $8CD5FF, $55ADFF, $4E91FE, $8ED3FF, $CCF4FF, $91D0FF, - $FFEFE3, $E7B593, $C2EEFF, $AE9990), - ($E5D7D7, $FAF4F3, $B59799, $947C7C, $EFE5E5, $8F6D6E, $FFFFFF, $755454, - $FFFFFF, $D3C0C0, $B2ACA5, $DEDEDE, $FFFAFD, $947C7C, $000000, $8D8D8D, - $6F4B4B, $99797A, $8CD5FF, $55ADFF, $4E91FE, $8ED3FF, $CCF4FF, $91D0FF, - $F1E9E8, $CDB9BA, $C2EEFF, $B39A9B), - ($A7D9D9, $DEF7F4, $91C6B7, $588060, $C0E7E5, $588060, $DEF7F4, $335E51, - $FFFFFF, $9FD4C5, $7FB9A4, $DEDEDE, $EEF4F4, $5E8D75, $000000, $8D8D8D, - $385D3F, $5E8674, $8CD5FF, $55ADFF, $4E91FE, $8ED3FF, $CCF4FF, $91D0FF, - $D5F0EC, $9FCEC2, $C2EEFF, $7BA097) - ); - Office2003IrregularGradientValues: array[TOffice2003Scheme] of Integer = (8, 8, 25, 15); - -var - DC: HDC; - MenuItemFrame, EnabledText, DisabledText: TColor; - Scheme: TOffice2003Scheme; - - procedure Undither(var C: TColor); - begin - if C <> clNone then C := GetNearestColor(DC, ColorToRGB(C)); - end; - -begin - DC := StockCompatibleBitmap.Canvas.Handle; - - if TBXLoColor then - begin - DockColor := clBtnFace; - - ToolbarColor1 := clBtnFace; - ToolbarColor2 := clBtnFace; - ToolbarFrameColor1 := clBtnShadow; - ToolbarFrameColor2 := clBtnShadow; - SeparatorColor1 := clBtnShadow; - SeparatorColor2 := clBtnHighlight; - DragHandleColor1 := clBtnText; - DragHandleColor2 := clBtnHighlight; - - EmbeddedColor := clBtnFace; - EmbeddedFrameColor := clBtnShadow; - EmbeddedDisabledColor := clBtnFace; - - PopupColor := clWindow; - PopupFrameColor := clBtnText; - - DockPanelColor := clWindow; - - DisabledText := clBtnShadow; - MenuItemFrame := clHighlight; - - WinFrameColors[wfpBorder] := clBtnShadow; - WinFrameColors[wfpCaption] := clBtnShadow; - WinFrameColors[wfpCaptionText] := clBtnHighlight; - - BtnItemColors[bisNormal, ipText] := clBtnText; - BtnItemColors[bisNormal, ipFrame] := clNone; - BtnItemColors[bisDisabled, ipText] := DisabledText; - BtnItemColors[bisDisabled, ipFrame] := clNone; - BtnItemColors[bisSelected, ipText] := clWindowText; - BtnItemColors[bisSelected, ipFrame] := MenuItemFrame; - BtnItemColors[bisPressed, ipText] := clHighlightText; - BtnItemColors[bisPressed, ipFrame] := MenuItemFrame; - BtnItemColors[bisHot, ipText] := clWindowText; - BtnItemColors[bisHot, ipFrame] := MenuItemFrame; - BtnItemColors[bisDisabledHot, ipText] := DisabledText; - BtnItemColors[bisDisabledHot, ipFrame] := MenuItemFrame; - BtnItemColors[bisSelectedHot, ipText] := clHighlightText; - BtnItemColors[bisSelectedHot, ipFrame] := MenuItemFrame; - BtnItemColors[bisPopupParent, ipText] := clBtnText; - BtnItemColors[bisPopupParent, ipFrame] := PopupFrameColor; - - BtnBodyColors[bisNormal, False] := clNone; - BtnBodyColors[bisNormal, True] := clNone; - BtnBodyColors[bisDisabled, False] := clNone; - BtnBodyColors[bisDisabled, True] := clNone; - BtnBodyColors[bisSelected, False] := clWindow; - BtnBodyColors[bisSelected, True] := clWindow; - BtnBodyColors[bisPressed, False] := clHighlight; - BtnBodyColors[bisPressed, True] := clHighlight; - BtnBodyColors[bisHot, False] := clWindow; - BtnBodyColors[bisHot, True] := clWindow; - BtnBodyColors[bisDisabledHot, False] := clWindow; - BtnBodyColors[bisDisabledHot, True] := clWindow; - BtnBodyColors[bisSelectedHot, False] := clHighlight; - BtnBodyColors[bisSelectedHot, True] := clHighlight; - BtnBodyColors[bisPopupParent, False] := clBtnFace; - BtnBodyColors[bisPopupParent, True] := clBtnFace; - - MenuItemColors[misNormal, ipBody] := clNone; - MenuItemColors[misNormal, ipText] := clWindowText; - MenuItemColors[misNormal, ipFrame] := clNone; - MenuItemColors[misDisabled, ipBody] := clNone; - MenuItemColors[misDisabled, ipText] := clGrayText; - MenuItemColors[misDisabled, ipFrame] := clNone; - MenuItemColors[misHot, ipBody] := clWindow; - MenuItemColors[misHot, ipText] := clWindowText; - MenuItemColors[misHot, ipFrame] := MenuItemFrame; - MenuItemColors[misDisabledHot, ipBody] := PopupColor; - MenuItemColors[misDisabledHot, ipText] := clGrayText; - MenuItemColors[misDisabledHot, ipFrame] := MenuItemFrame; - - StatusPanelFrameColor := clBtnShadow; - FMDIAreaColor := clBtnShadow; - end - else - begin - - Scheme := GetOffice2003Scheme; - if Scheme <> osUnknown then - begin - DockColor := Office2003Colors[Scheme, 0]; - - ToolbarColor1 := Office2003Colors[Scheme, 1]; - ToolbarColor2 := Office2003Colors[Scheme, 2]; - ToolbarFrameColor1 := Office2003Colors[Scheme, 3]; - ToolbarFrameColor2 := Office2003Colors[Scheme, 4]; - SeparatorColor1 := Office2003Colors[Scheme, 5]; - SeparatorColor2 := Office2003Colors[Scheme, 6]; - DragHandleColor1 := Office2003Colors[Scheme, 7]; - DragHandleColor2 := Office2003Colors[Scheme, 8]; - - EmbeddedColor := Office2003Colors[Scheme, 9]; - EmbeddedFrameColor := Office2003Colors[Scheme, 10]; - EmbeddedDisabledColor := Office2003Colors[Scheme, 11]; - - PopupColor := Office2003Colors[Scheme, 12]; - PopupFrameColor := Office2003Colors[Scheme, 13]; - - DockPanelColor := ToolbarColor1; - - EnabledText := Office2003Colors[Scheme, 14]; - DisabledText := Office2003Colors[Scheme, 15]; - MenuItemFrame := Office2003Colors[Scheme, 16]; - - WinFrameColors[wfpBorder] := Office2003Colors[Scheme, 17]; - WinFrameColors[wfpCaption] := WinFrameColors[wfpBorder]; - WinFrameColors[wfpCaptionText] := clWhite; - - BtnItemColors[bisNormal, ipText] := EnabledText; - BtnItemColors[bisNormal, ipFrame] := clNone; - BtnItemColors[bisDisabled, ipText] := DisabledText; - BtnItemColors[bisDisabled, ipFrame] := clNone; - BtnItemColors[bisSelected, ipText] := EnabledText; - BtnItemColors[bisSelected, ipFrame] := MenuItemFrame; - BtnItemColors[bisPressed, ipText] := EnabledText; - BtnItemColors[bisPressed, ipFrame] := MenuItemFrame; - BtnItemColors[bisHot, ipText] := EnabledText; - BtnItemColors[bisHot, ipFrame] := MenuItemFrame; - BtnItemColors[bisDisabledHot, ipText] := DisabledText; - BtnItemColors[bisDisabledHot, ipFrame] := MenuItemFrame; - BtnItemColors[bisSelectedHot, ipText] := EnabledText; - BtnItemColors[bisSelectedHot, ipFrame] := MenuItemFrame; - BtnItemColors[bisPopupParent, ipText] := EnabledText; - BtnItemColors[bisPopupParent, ipFrame] := PopupFrameColor; - - BtnBodyColors[bisNormal, False] := clNone; - BtnBodyColors[bisNormal, True] := clNone; - BtnBodyColors[bisDisabled, False] := clNone; - BtnBodyColors[bisDisabled, True] := clNone; - BtnBodyColors[bisSelected, False] := Office2003Colors[Scheme, 18]; - BtnBodyColors[bisSelected, True] := Office2003Colors[Scheme, 19]; - BtnBodyColors[bisPressed, False] := Office2003Colors[Scheme, 20]; - BtnBodyColors[bisPressed, True] := Office2003Colors[Scheme, 21]; - BtnBodyColors[bisHot, False] := Office2003Colors[Scheme, 22]; - BtnBodyColors[bisHot, True] := Office2003Colors[Scheme, 23]; - BtnBodyColors[bisDisabledHot, False] := BtnBodyColors[bisHot, False]; - BtnBodyColors[bisDisabledHot, True] := BtnBodyColors[bisHot, True]; - BtnBodyColors[bisSelectedHot, False] := BtnBodyColors[bisPressed, False]; - BtnBodyColors[bisSelectedHot, True] := BtnBodyColors[bisPressed, True]; - BtnBodyColors[bisPopupParent, False] := Office2003Colors[Scheme, 24]; - BtnBodyColors[bisPopupParent, True] := Office2003Colors[Scheme, 25]; - - MenuItemColors[misNormal, ipBody] := clNone; - MenuItemColors[misNormal, ipText] := EnabledText; - MenuItemColors[misNormal, ipFrame] := clNone; - MenuItemColors[misDisabled, ipBody] := clNone; - MenuItemColors[misDisabled, ipText] := DisabledText; - MenuItemColors[misDisabled, ipFrame] := clNone; - MenuItemColors[misHot, ipBody] := Office2003Colors[Scheme, 26]; - MenuItemColors[misHot, ipText] := MenuItemColors[misNormal, ipText]; - MenuItemColors[misHot, ipFrame] := MenuItemFrame; - MenuItemColors[misDisabledHot, ipBody] := PopupColor; - MenuItemColors[misDisabledHot, ipText] := DisabledText; - MenuItemColors[misDisabledHot, ipFrame] := MenuItemColors[misHot, ipFrame]; - - StatusPanelFrameColor := Blend(ToolbarColor2, clBlack, 90); - FMDIAreaColor := Office2003Colors[Scheme, 27]; - end - else - begin - DockColor := clBtnFace; - - ToolbarColor1 := Blend(clBtnFace, clWindow, 23); - ToolbarColor2 := Blend(clBtnFace, clWindow, 96); - ToolbarFrameColor1 := Blend(clBtnFace, clWindow, 85); - ToolbarFrameColor2 := Blend(clBtnFace, clWindow, 62); - SeparatorColor1 := Blend(clBtnShadow, clWindow, 70); - SeparatorColor2 := clWhite; - DragHandleColor1 := Blend(clBtnShadow, clWindow, 75); - DragHandleColor2 := clWindow; - - EmbeddedColor := clBtnFace; - EmbeddedFrameColor := clBtnShadow; - EmbeddedDisabledColor := clBtnFace; - - PopupColor := Blend(clBtnFace, clWindow, 15); - PopupFrameColor := Blend(clBtnText, clBtnShadow, 20); - - DockPanelColor := ToolbarColor1; - - EnabledText := clBtnText; - DisabledText := clGrayText; - MenuItemFrame := clHighlight; - - WinFrameColors[wfpBorder] := Blend(clBtnText, clBtnShadow, 15); - WinFrameColors[wfpCaption] := clBtnShadow; - WinFrameColors[wfpCaptionText] := clBtnHighlight; - - BtnBodyColors[bisNormal, False] := clNone; - BtnBodyColors[bisNormal, True] := clNone; - BtnBodyColors[bisDisabled, False] := clNone; - BtnBodyColors[bisDisabled, True] := clNone; - BtnBodyColors[bisSelected, False] := Blend(clHighlight, Blend(clBtnFace, clWindow, 50), 10); - - BtnItemColors[bisNormal, ipText] := EnabledText; - BtnItemColors[bisNormal, ipFrame] := clNone; - BtnItemColors[bisDisabled, ipText] := DisabledText; - BtnItemColors[bisDisabled, ipFrame] := clNone; - BtnItemColors[bisSelected, ipText] := EnabledText; - BtnItemColors[bisSelected, ipFrame] := MenuItemFrame; - BtnItemColors[bisPressed, ipText] := EnabledText; - BtnItemColors[bisPressed, ipFrame] := MenuItemFrame; - BtnItemColors[bisHot, ipText] := EnabledText; - BtnItemColors[bisHot, ipFrame] := MenuItemFrame; - BtnItemColors[bisDisabledHot, ipText] := DisabledText; - BtnItemColors[bisDisabledHot, ipFrame] := MenuItemFrame; - BtnItemColors[bisSelectedHot, ipText] := EnabledText; - BtnItemColors[bisSelectedHot, ipFrame] := MenuItemFrame; - BtnItemColors[bisPopupParent, ipText] := EnabledText; - BtnItemColors[bisPopupParent, ipFrame] := PopupFrameColor; - - BtnBodyColors[bisSelected, True] := BtnBodyColors[bisSelected, False]; - BtnBodyColors[bisPressed, False] := Blend(clHighlight, clWindow, 50); - BtnBodyColors[bisPressed, True] := BtnBodyColors[bisPressed, False]; - BtnBodyColors[bisHot, False] := Blend(clHighlight, clWindow, 30); - BtnBodyColors[bisHot, True] := BtnBodyColors[bisHot, False]; - BtnBodyColors[bisDisabledHot, False] := BtnBodyColors[bisHot, False]; - BtnBodyColors[bisDisabledHot, True] := BtnBodyColors[bisHot, True]; - BtnBodyColors[bisSelectedHot, False] := BtnBodyColors[bisPressed, False]; - BtnBodyColors[bisSelectedHot, True] := BtnBodyColors[bisPressed, True]; - BtnBodyColors[bisPopupParent, False] := Blend(clBtnFace, clWindow, 16); - BtnBodyColors[bisPopupParent, True] := Blend(clBtnFace, clWindow, 42); - - MenuItemColors[misNormal, ipBody] := clNone; - MenuItemColors[misNormal, ipText] := EnabledText; - MenuItemColors[misNormal, ipFrame] := clNone; - MenuItemColors[misDisabled, ipBody] := clNone; - MenuItemColors[misDisabled, ipText] := DisabledText; - MenuItemColors[misDisabled, ipFrame] := clNone; - MenuItemColors[misHot, ipBody] := BtnBodyColors[bisHot, False]; - MenuItemColors[misHot, ipText] := MenuItemColors[misNormal, ipText]; - MenuItemColors[misHot, ipFrame] := MenuItemFrame; - MenuItemColors[misDisabledHot, ipBody] := PopupColor; - MenuItemColors[misDisabledHot, ipText] := DisabledText; - MenuItemColors[misDisabledHot, ipFrame] := MenuItemColors[misHot, ipFrame]; - - StatusPanelFrameColor := Blend(ToolbarColor2, clBlack, 90); - FMDIAreaColor := clBtnShadow; - end; - - IrregularGradientValue := Office2003IrregularGradientValues[Scheme]; - - Undither(DockColor); - - Undither(ToolbarColor1); - Undither(ToolbarColor2); - Undither(ToolbarFrameColor1); - Undither(ToolbarFrameColor2); - Undither(SeparatorColor1); - Undither(SeparatorColor2); - Undither(DragHandleColor1); - Undither(DragHandleColor2); - - Undither(EmbeddedColor); - Undither(EmbeddedFrameColor); - Undither(EmbeddedDisabledColor); - - Undither(PopupColor); - Undither(PopupFrameColor); - - Undither(DockPanelColor); - - Undither(WinFrameColors[wfpBorder]); - Undither(WinFrameColors[wfpCaption]); - Undither(WinFrameColors[wfpCaptionText]); - - Undither(BtnItemColors[bisNormal, ipText]); - Undither(BtnItemColors[bisNormal, ipFrame]); - Undither(BtnItemColors[bisDisabled, ipText]); - Undither(BtnItemColors[bisDisabled, ipFrame]); - Undither(BtnItemColors[bisSelected, ipText]); - Undither(BtnItemColors[bisSelected, ipFrame]); - Undither(BtnItemColors[bisPressed, ipText]); - Undither(BtnItemColors[bisPressed, ipFrame]); - Undither(BtnItemColors[bisHot, ipText]); - Undither(BtnItemColors[bisHot, ipFrame]); - Undither(BtnItemColors[bisDisabledHot, ipText]); - Undither(BtnItemColors[bisDisabledHot, ipFrame]); - Undither(BtnItemColors[bisSelectedHot, ipText]); - Undither(BtnItemColors[bisSelectedHot, ipFrame]); - Undither(BtnItemColors[bisPopupParent, ipText]); - Undither(BtnItemColors[bisPopupParent, ipFrame]); - - Undither(BtnBodyColors[bisNormal, False]); - Undither(BtnBodyColors[bisNormal, True]); - Undither(BtnBodyColors[bisDisabled, False]); - Undither(BtnBodyColors[bisDisabled, True]); - Undither(BtnBodyColors[bisSelected, False]); - Undither(BtnBodyColors[bisSelected, True]); - Undither(BtnBodyColors[bisPressed, False]); - Undither(BtnBodyColors[bisPressed, True]); - Undither(BtnBodyColors[bisHot, False]); - Undither(BtnBodyColors[bisHot, True]); - Undither(BtnBodyColors[bisDisabledHot, False]); - Undither(BtnBodyColors[bisDisabledHot, True]); - Undither(BtnBodyColors[bisSelectedHot, False]); - Undither(BtnBodyColors[bisSelectedHot, True]); - Undither(BtnBodyColors[bisPopupParent, False]); - Undither(BtnBodyColors[bisPopupParent, True]); - - Undither(MenuItemColors[misNormal, ipBody]); - Undither(MenuItemColors[misNormal, ipText]); - Undither(MenuItemColors[misNormal, ipFrame]); - Undither(MenuItemColors[misDisabled, ipBody]); - Undither(MenuItemColors[misDisabled, ipText]); - Undither(MenuItemColors[misDisabled, ipFrame]); - Undither(MenuItemColors[misHot, ipBody]); - Undither(MenuItemColors[misHot, ipText]); - Undither(MenuItemColors[misHot, ipFrame]); - Undither(MenuItemColors[misDisabledHot, ipBody]); - Undither(MenuItemColors[misDisabledHot, ipText]); - Undither(MenuItemColors[misDisabledHot, ipFrame]); - - Undither(StatusPanelFrameColor); - Undither(FMDIAreaColor); - end; - - if Assigned(FOnSetupColorCache) then FOnSetupColorCache(Self); -end; - -function TTBXOffice2003Theme.GetPopupShadowType: Integer; -begin - Result := PST_OFFICEXP; -end; - -constructor TTBXOffice2003Theme.Create(const AName: string); -begin - inherited; - if CounterLock = 0 then InitializeStock; - Inc(CounterLock); - AddTBXSysChangeNotification(Self); - SetupColorCache; -end; - -destructor TTBXOffice2003Theme.Destroy; -begin - RemoveTBXSysChangeNotification(Self); - Dec(CounterLock); - if CounterLock = 0 then FinalizeStock; - inherited; -end; - -procedure TTBXOffice2003Theme.GetViewMargins(ViewType: Integer; out Margins: TTBXMargins); -begin - Margins.LeftWidth := 0; - Margins.TopHeight := 0; - Margins.RightWidth := 0; - Margins.BottomHeight := 0; -end; - -procedure TTBXOffice2003Theme.PaintPageScrollButton(Canvas: TCanvas; - const ARect: TRect; ButtonType: Integer; Hot: Boolean); -var - DC: HDC; - R: TRect; - X, Y, Sz: Integer; - C: TColor; -begin - DC := Canvas.Handle; - R := ARect; - if Hot then C := BtnItemColors[bisHot, ipFrame] - else C := EmbeddedFrameColor; - FrameRectEx(DC, R, C, False); - InflateRect(R, -1, -1); - if Hot then C := BtnBodyColors[bisHot, False] - else C := EmbeddedColor; - FillRectEx(DC, R, C); - X := (R.Left + R.Right) div 2; - Y := (R.Top + R.Bottom) div 2; - Sz := Min(X - R.Left, Y - R.Top) * 3 div 4; - - if Hot then C := BtnItemColors[bisHot, ipText] - else C := BtnItemColors[bisNormal, ipText]; - - case ButtonType of - PSBT_UP: - begin - Inc(Y, Sz div 2); - PolygonEx(DC, [Point(X + Sz, Y), Point(X, Y - Sz), Point(X - Sz, Y)], C, C); - end; - PSBT_DOWN: - begin - Y := (R.Top + R.Bottom - 1) div 2; - Dec(Y, Sz div 2); - PolygonEx(DC, [Point(X + Sz, Y), Point(X, Y + Sz), Point(X - Sz, Y)], C, C); - end; - PSBT_LEFT: - begin - Inc(X, Sz div 2); - PolygonEx(DC, [Point(X, Y + Sz), Point(X - Sz, Y), Point(X, Y - Sz)], C, C); - end; - PSBT_RIGHT: - begin - X := (R.Left + R.Right - 1) div 2; - Dec(X, Sz div 2); - PolygonEx(DC, [Point(X, Y + Sz), Point(X + Sz, Y), Point(X, Y - Sz)], C, C); - end; - end; -end; - -procedure TTBXOffice2003Theme.PaintFrameControl(Canvas: TCanvas; R: TRect; Kind, State: Integer; Params: Pointer); -var - DC: HDC; - X, Y: Integer; - Pen, OldPen: HPen; - Brush, OldBrush: HBRUSH; - C: TColor; - - function GetPenColor: TColor; - begin - if Boolean(State and PFS_DISABLED) then Result := clBtnShadow - else if Boolean(State and PFS_PUSHED) then Result := BtnItemColors[bisPressed, ipFrame] - else if Boolean(State and PFS_HOT) then Result := BtnItemColors[bisHot, ipFrame] - else Result := EmbeddedFrameColor; - end; - - function GetBrush: HBRUSH; - begin - if Boolean(State and PFS_DISABLED) then Result := CreateDitheredBrush(clWindow, clBtnFace) - else if Boolean(State and PFS_PUSHED) then Result := CreateBrushEx(BtnBodyColors[bisPressed, False]) - else if Boolean(State and PFS_HOT) then Result := CreateBrushEx(BtnBodyColors[bisHot, False]) - else if Boolean(State and PFS_MIXED) then Result := CreateDitheredBrush(clWindow, clBtnFace) - else Result := CreateBrushEx(clNone); - end; - - function GetTextColor: TColor; - begin - if Boolean(State and PFS_DISABLED) then Result := BtnItemColors[bisDisabled, ipText] - else if Boolean(State and PFS_PUSHED) then Result := BtnItemColors[bisPressed, ipText] - else if Boolean(State and PFS_MIXED) then Result := clBtnShadow - else if Boolean(State and PFS_HOT) then Result := BtnItemColors[bisHot, ipText] - else Result := BtnItemColors[bisNormal, ipText]; - end; - -begin - DC := Canvas.Handle; - case Kind of - PFC_CHECKBOX: - begin - InflateRect(R, -1, -1); - FrameRectEx(DC, R, GetPenColor, True); - Brush := GetBrush; - Windows.FillRect(DC, R, Brush); - DeleteObject(Brush); - InflateRect(R, 1, 1); - - if Boolean(State and (PFS_CHECKED or PFS_MIXED)) then - begin - X := (R.Left + R.Right) div 2 - 1; - Y := (R.Top + R.Bottom) div 2 + 1; - C := GetTextColor; - PolygonEx(DC, [Point(X - 2, Y), Point(X, Y + 2), Point(X + 4, Y - 2), - Point(X + 4, Y - 4), Point(X, Y), Point(X - 2, Y - 2), Point(X - 2, Y)], C, C); - end; - end; - PFC_RADIOBUTTON: - begin - InflateRect(R, -1, -1); - - with R do - begin - Brush := GetBrush; - OldBrush := SelectObject(DC, Brush); - Pen := CreatePenEx(GetPenColor); - OldPen := SelectObject(DC, Pen); - Windows.Ellipse(DC, Left, Top, Right, Bottom); - SelectObject(DC, OldPen); - DeleteObject(Pen); - SelectObject(DC, OldBrush); - DeleteObject(Brush); - end; - - if Boolean(State and PFS_CHECKED) then - begin - InflateRect(R, -3, -3); - C := GetTextColor; - Brush := CreateBrushEx(C); - OldBrush := SelectObject(DC, Brush); - Pen := CreatePenEx(C); - OldPen := SelectObject(DC, Pen); - with R do Windows.Ellipse(DC, Left, Top, Right, Bottom); - SelectObject(DC, OldPen); - DeleteObject(Pen); - SelectObject(DC, OldBrush); - DeleteObject(Brush); - end; - end; - end; -end; - -procedure TTBXOffice2003Theme.PaintStatusBar(Canvas: TCanvas; R: TRect; Part: Integer); - - procedure DrawHandleElement(const P: TPoint); - begin - Canvas.Brush.Color := DragHandleColor2; - Canvas.FillRect(Rect(P.X - 2, P.Y - 2, P.X, P.Y)); - Canvas.Brush.Color := DragHandleColor1; - Canvas.FillRect(Rect(P.X - 3, P.Y - 3, P.X - 1, P.Y - 1)); - end; - -begin - case Part of - SBP_BODY: - PaintIrregularGradient(Canvas.Handle, R, ToolbarColor1, ToolbarColor2, False); - SBP_PANE, SBP_LASTPANE: - begin - if Part = SBP_PANE then Dec(R.Right, 2); - FrameRectEx(Canvas.Handle, R, StatusPanelFrameColor, False); - end; - SBP_GRIPPER: - begin - Dec(R.Right); - Dec(R.Bottom); - DrawHandleElement(Point(R.Right, R.Bottom)); - DrawHandleElement(Point(R.Right, R.Bottom - 4)); - DrawHandleElement(Point(R.Right, R.Bottom - 8)); - - Dec(R.Right, 4); - DrawHandleElement(Point(R.Right, R.Bottom)); - DrawHandleElement(Point(R.Right, R.Bottom - 4)); - - Dec(R.Right, 4); - DrawHandleElement(Point(R.Right, R.Bottom)); - end; - end; -end; - -procedure TTBXOffice2003Theme.TBXSysCommand(var Message: TMessage); -begin - if Message.WParam = TSC_VIEWCHANGE then SetupColorCache; -end; - -initialization - if not IsTBXThemeAvailable('Office2003') then - RegisterTBXTheme('Office2003', TTBXOffice2003Theme); - -end. diff --git a/source/packages/tbx/TBXOfficeXPTheme.pas b/source/packages/tbx/TBXOfficeXPTheme.pas index 3dcd353a..770ddf63 100644 --- a/source/packages/tbx/TBXOfficeXPTheme.pas +++ b/source/packages/tbx/TBXOfficeXPTheme.pas @@ -12,7 +12,7 @@ interface {$I TBX.inc} uses - Windows, Messages, Graphics, TBXThemes, TBXDefaultTheme, ImgList; + Windows, Messages, Graphics, TBXThemes, ImgList; {$DEFINE ALTERNATIVE_DISABLED_STYLE} // remove the asterisk to change appearance of disabled images {$DEFINE NO_IMAGE_DIMMING} @@ -98,7 +98,7 @@ implementation uses TBXUtils, TB2Common, TB2Item, Classes, Controls, Commctrl, Forms, SysUtils, - Types, UITypes; + Types, UITypes, UxTheme; var StockImgList: TImageList; @@ -157,6 +157,12 @@ function TTBXOfficeXPTheme.GetIntegerMetrics(Index: Integer): Integer; else Result := DEFAULT; end; + + if Result > 0 then + begin + // DPI-scaling for a lack of better choice here + Result := MulDiv(Result, Screen.PixelsPerInch, USER_DEFAULT_SCREEN_DPI); + end; end; function TTBXOfficeXPTheme.GetViewColor(AViewType: Integer): TColor; @@ -373,20 +379,37 @@ procedure TTBXOfficeXPTheme.PaintCheckMark(Canvas: TCanvas; ARect: TRect; const DC: HDC; X, Y: Integer; C: TColor; + Two, Three, Four: Integer; + Diag: Integer; + I: Integer; begin + Two := ScaleByTextHeightRunTime(Canvas, 2); + Three := ScaleByTextHeightRunTime(Canvas, 3); + Four := ScaleByTextHeightRunTime(Canvas, 4); + DC := Canvas.Handle; X := (ARect.Left + ARect.Right) div 2 - 1; Y := (ARect.Top + ARect.Bottom) div 2 + 1; C := GetBtnColor(ItemInfo, ipText); if ItemInfo.ItemOptions and IO_RADIO > 0 then begin - RoundRectEx(DC, X-2, Y-4, X+4, Y+2, 2, 2, - MixColors(C, ToolbarColor, 200), clNone); - RoundRectEx(DC, X-2, Y-4, X+4, Y+2, 6, 6, C, C); + // Should we use SM_CXMENUCHECK to determine the size? + // 10 div 14 is approximation of division by square root of 2 (pythagorean theorem) + Diag := (Three * 10 div 14) + 1; + RoundRectEx(DC, X-Diag+1, Y-Diag-1, X+Diag+1, Y+Diag-1, Four div 2, Four div 2, + MixColors(C, ToolbarColor, 200), C); + // Using Ellipse instead of RoundRect to draw circle was an attempt to draw it nicely on + // high DPI. It didn't work. But using ellipse seems better anyway, so we kept it. + EllipseEx(DC, X-Three+1, Y-Three-1, X+Three+1, Y+Three-1, + C, C); end - else - PolylineEx(DC, [Point(X-2, Y-2), Point(X, Y), Point(X+4, Y-4), - Point(X+4, Y-3), Point(X, Y+1), Point(X-2, Y-1), Point(X-2, Y-2)], C); + else + begin + for I := 1 to Two do + begin + PolyLineEx(DC, [Point(X-Two, Y-Two+I), Point(X, Y+I), Point(X+Four+1, Y-Four-1+I)], C); + end; + end; end; procedure TTBXOfficeXPTheme.PaintChevron(Canvas: TCanvas; ARect: TRect; const ItemInfo: TTBXItemInfo); @@ -571,6 +594,7 @@ procedure TTBXOfficeXPTheme.PaintDropDownArrow(Canvas: TCanvas; const ARect: TRect; const ItemInfo: TTBXItemInfo); var X, Y: Integer; + Two: Integer; begin with ARect, Canvas do begin @@ -578,8 +602,9 @@ procedure TTBXOfficeXPTheme.PaintDropDownArrow(Canvas: TCanvas; Y := (Top + Bottom) div 2 - 1; Pen.Color := GetPartColor(ItemInfo, ipText); Brush.Color := Pen.Color; - if ItemInfo.IsVertical then Polygon([Point(X, Y + 2), Point(X, Y - 2), Point(X - 2, Y)]) - else Polygon([Point(X - 2, Y), Point(X + 2, Y), Point(X, Y + 2)]); + Two := ScaleByTextHeightRunTime(Canvas, 2); + if ItemInfo.IsVertical then Polygon([Point(X, Y + Two), Point(X, Y - Two), Point(X - Two, Y)]) + else Polygon([Point(X - Two, Y), Point(X + Two, Y), Point(X, Y + Two)]); end; end; @@ -871,7 +896,10 @@ procedure TTBXOfficeXPTheme.PaintMenuItem(Canvas: TCanvas; const ARect: TRect; v if (ItemOptions and IO_COMBO) <> 0 then begin - X := R.Right - ArrowWidth - 1; + // WinSCP: One pixel to the right (+ 1) to make combos with keyboard accelerator look better. + // This moves the line into hitarea of the arrow (while it was in hitarea of the command originally) + // Further move would require changes in hitarea testing. + X := R.Right - ArrowWidth - 1 + 1; if not ItemInfo.Enabled then C := ClrText else if HoverKind = hkMouseHover then C := GetPartColor(ItemInfo, ipFrame) else C := PopupSeparatorColor; @@ -882,7 +910,7 @@ procedure TTBXOfficeXPTheme.PaintMenuItem(Canvas: TCanvas; const ARect: TRect; v begin Y := ARect.Bottom div 2; X := ARect.Right - ArrowWidth * 2 div 3 - 1; - PolygonEx(DC, [Point(X, Y - 3), Point(X, Y + 3), Point(X + 3, Y)], ClrText, ClrText); + PolygonEx(DC, [Point(X, Y - (ArrowWidth div 5)), Point(X, Y + (ArrowWidth div 5)), Point(X + (ArrowWidth div 5), Y)], ClrText, ClrText); end; if Selected and Enabled then @@ -1013,6 +1041,7 @@ procedure TTBXOfficeXPTheme.PaintToolbarNCArea(Canvas: TCanvas; R: TRect; const I: Integer; BtnVisible, Horz: Boolean; BtnItemState: TBtnItemState; + Two, Three: Integer; begin DC := Canvas.Handle; with Canvas do @@ -1070,36 +1099,41 @@ procedure TTBXOfficeXPTheme.PaintToolbarNCArea(Canvas: TCanvas; R: TRect; const if ToolbarInfo.DragHandleStyle <> DHS_NONE then begin R2 := R; + // Using DPI scaling instead of text-height scaling because + // toolbar NC area pieces are already DPI-scaled in + // TB2Dock initialization section + Two := MulDiv(2, Screen.PixelsPerInch, USER_DEFAULT_SCREEN_DPI); + Three := MulDiv(3, Screen.PixelsPerInch, USER_DEFAULT_SCREEN_DPI); if Horz then begin Inc(R2.Left, DragHandleOffsets[BtnVisible, ToolbarInfo.DragHandleStyle]); if BtnVisible then Inc(R2.Top, Sz - 2); - R2.Right := R2.Left + 3; + R2.Right := R2.Left + Three; end else begin Inc(R2.Top, DragHandleOffsets[BtnVisible, ToolbarInfo.DragHandleStyle]); if BtnVisible then Dec(R2.Right, Sz - 2); - R2.Bottom := R2.Top + 3; + R2.Bottom := R2.Top + Three; end; Pen.Color := DragHandleColor; if Horz then begin - I := R2.Top + 3; - while I < R2.Bottom - 3 do + I := R2.Top + Three; + while I < R2.Bottom - Three do begin MoveTo(R2.Left, I); LineTo(R2.Right, I); - Inc(I, 2); + Inc(I, Two); end; end else begin - I := R2.Left + 3; - while I < R2.Right - 3 do + I := R2.Left + Three; + while I < R2.Right - Three do begin MoveTo(I, R2.Top); LineTo(I, R2.Bottom); - Inc(I, 2); + Inc(I, Two); end; end; end; @@ -1644,7 +1678,7 @@ procedure TTBXOfficeXPTheme.PaintFrameControl(Canvas: TCanvas; R: TRect; Kind, S procedure TTBXOfficeXPTheme.PaintStatusBar(Canvas: TCanvas; R: TRect; Part: Integer); var - D, Sz, I: Integer; + D: Integer; DC: HDC; procedure DiagLine(C: TColor); @@ -1668,33 +1702,8 @@ procedure TTBXOfficeXPTheme.PaintStatusBar(Canvas: TCanvas; R: TRect; Part: Inte end; SBP_GRIPPER: begin - D := 0; - Sz := Min(R.Right - R.Left, R.Bottom - R.Top); - for I := 1 to 3 do - case Sz of - 0..8: - begin - DiagLine(clBtnShadow); - DiagLine(clBtnHighlight); - end; - 9..11: - begin - DiagLine(clBtnFace); - DiagLine(clBtnShadow); - DiagLine(clBtnHighlight); - end; - 12..14: - begin - DiagLine(clBtnShadow); - DiagLine(clBtnShadow); - DiagLine(clBtnHighlight); - end; - else - DiagLine(clBtnFace); - DiagLine(clBtnShadow); - DiagLine(clBtnShadow); - DiagLine(clBtnHighlight); - end; + Inc(R.Right); + DrawThemeBackground(STATUSBAR_THEME, DC, SP_GRIPPER, 0, R, nil) end; end; end; @@ -1704,7 +1713,4 @@ procedure TTBXOfficeXPTheme.TBXSysCommand(var Message: TMessage); if Message.WParam = TSC_VIEWCHANGE then SetupColorCache; end; -initialization - RegisterTBXTheme('OfficeXP', TTBXOfficeXPTheme); - end. diff --git a/source/packages/tbx/TBXThemes.pas b/source/packages/tbx/TBXThemes.pas index 0af2ea50..fc256296 100644 --- a/source/packages/tbx/TBXThemes.pas +++ b/source/packages/tbx/TBXThemes.pas @@ -642,8 +642,6 @@ function GetTBXCloseButtonRect(const WindowInfo: TTBXWindowInfo; end; function GetTBXDockedCloseButtonRect(const ToolbarInfo: TTBXToolbarInfo): TRect; -const - DragHandleSizes: array [Boolean, 0..2] of Integer = ((9, 0, 6), (14, 14, 14)); var X, Y, Z: Integer; begin @@ -671,7 +669,7 @@ function GetTBXDragHandleSize(const ToolbarInfo: TTBXToolbarInfo): Integer; with ToolbarInfo do begin if AllowDrag then - Result := DragHandleSizes[(CloseButtonState and CDBS_VISIBLE) <> 0, DragHandleStyle] + Result := MulDiv(DragHandleSizes[(CloseButtonState and CDBS_VISIBLE) <> 0, DragHandleStyle], Screen.PixelsPerInch, USER_DEFAULT_SCREEN_DPI) else Result := 0; end; diff --git a/source/packages/tbx/TBXToolPals.pas b/source/packages/tbx/TBXToolPals.pas index 614a64b8..3e5d3ad0 100644 --- a/source/packages/tbx/TBXToolPals.pas +++ b/source/packages/tbx/TBXToolPals.pas @@ -166,6 +166,7 @@ TTBXColorPalette = class(TTBXCustomToolPalette) private FColor: TColor; FColorSet: TTBXCustomColorSet; + FImageSize: Integer; procedure SetColorSet(Value: TTBXCustomColorSet); procedure SetColor(Value: TColor); protected @@ -198,7 +199,7 @@ TTBXColorPalette = class(TTBXCustomToolPalette) implementation -uses ImgList, UxTheme, Types; +uses ImgList, UxTheme, Types, TBXUtils; var DefaultColorSet: TTBXCustomColorSet; @@ -778,12 +779,18 @@ constructor TTBXColorPalette.Create(AOwner: TComponent); Options := Options + [tboShowHint]; FColor := clNone; PaletteOptions := PaletteOptions + [tpoCustomImages]; + FImageSize := -1; end; procedure TTBXColorPalette.DoCalcImageSize(Canvas: TCanvas; var AWidth, AHeight: Integer); begin - AWidth := 12; - AHeight := 12; + if FImageSize < 0 then + begin + FImageSize := ScaleByTextHeightRunTime(Canvas, 12); + end; + + AWidth := FImageSize; + AHeight := FImageSize; end; procedure TTBXColorPalette.DoChange; diff --git a/source/packages/tbx/TBXUtils.pas b/source/packages/tbx/TBXUtils.pas index c6172939..e152db0e 100644 --- a/source/packages/tbx/TBXUtils.pas +++ b/source/packages/tbx/TBXUtils.pas @@ -38,6 +38,8 @@ procedure RGBtoHSL(RGB: TColor; out H, S, L : Single); function HSLtoRGB(H, S, L: Single): TColor; function GetBGR(C: TColorRef): Cardinal; +function ScaleByTextHeightRunTime(Canvas: TCanvas; Dimension: Integer): Integer; + { A few drawing functions } { these functions recognize clNone value of TColor } @@ -52,6 +54,7 @@ function PolyLineEx(DC: HDC; const Points: array of TPoint; Color: TColor): Boo procedure PolygonEx(DC: HDC; const Points: array of TPoint; OutlineColor, FillColor: TColor); procedure RoundRectEx(DC: HDC; Left, Top, Right, Bottom: Integer; EllipseWidth, EllipseHeight, OutlineColor, FillColor: TColor); overload; {vb+} procedure RoundRectEx(DC: HDC; const R: TRect; EllipseWidth, EllipseHeight, OutlineColor, FillColor: TColor); overload; {vb+} +procedure EllipseEx(DC: HDC; Left, Top, Right, Bottom: Integer; OutlineColor, FillColor: TColor); procedure DitherRect(DC: HDC; const R: TRect; C1, C2: TColor); {$IFDEF COMPATIBLE_GFX}overload;{$ENDIF} procedure Frame3D(DC: HDC; var Rect: TRect; TopColor, BottomColor: TColor; Adjust: Boolean); {$IFDEF COMPATIBLE_GFX}overload;{$ENDIF} procedure DrawDraggingOutline(DC: HDC; const NewRect, OldRect: TRect); @@ -652,6 +655,36 @@ function HSLtoRGB(H, S, L: Single): TColor; Result := RGB(R, G, B); end; +const + // This differs from PasTools as we use larger menu fonts + OurDesignTimeTextHeight = 15; + +var + LastFontName: string = ''; + LastFontHeight: Integer = -1; + LastTextHeight: Integer = -1; + +function ScaleByTextHeightRunTime(Canvas: TCanvas; Dimension: Integer): Integer; +begin + // This should be called from the GUI thread only. + // See ScaleByTextHeightRunTime in PasTools. + if (LastTextHeight < 0) or + (LastFontName <> Canvas.Font.Name) or + (LastFontHeight <> Canvas.Font.Height) then + begin + LastTextHeight := Canvas.TextHeight('0'); + LastFontName := Canvas.Font.Name; + LastFontHeight := Canvas.Font.Height; + end; + + if LastTextHeight <> OurDesignTimeTextHeight then + begin + Dimension := MulDiv(Dimension, LastTextHeight, OurDesignTimeTextHeight); + end; + + Result := Dimension; +end; + { Drawing routines } function GetBGR(C: TColorRef): Cardinal; @@ -815,6 +848,22 @@ procedure RoundRectEx(DC: HDC; const R: TRect; EllipseWidth, EllipseHeight, EllipseHeight, OutlineColor, FillColor); end; +procedure EllipseEx(DC: HDC; Left, Top, Right, Bottom: Integer; OutlineColor, FillColor: TColor); +var + OldBrush, Brush: HBrush; + OldPen, Pen: HPen; +begin + Pen := CreatePenEx(OutlineColor); + Brush := CreateBrushEx(FillColor); + OldPen := SelectObject(DC, Pen); + OldBrush := SelectObject(DC, Brush); + Windows.Ellipse(DC, Left, Top, Right, Bottom); + SelectObject(DC, OldBrush); + SelectObject(DC, OldPen); + DeleteObject(Brush); + DeleteObject(Pen); +end; + function CreateDitheredBrush(C1, C2: TColor): HBrush; var B: TBitmap; diff --git a/source/packages/tbx/license.txt b/source/packages/tbx/license.txt index a6add8cf..0682d769 100644 --- a/source/packages/tbx/license.txt +++ b/source/packages/tbx/license.txt @@ -2,39 +2,39 @@ LICENSE Copyright © 2001-2003 Alex A. Denisov. All rights reserved. -This notice is only applicable to TBX package; it does not apply +This notice is only applicable to TBX package; it does not apply to Toolbar2000 package, where the separate license is provided. -TBX is distributed as freeware. You are free to use it in any -kind of application as well as redistribute source code in the +TBX is distributed as freeware. You are free to use it in any +kind of application as well as redistribute source code in the original form, provided the following conditions are met: -- All redistributions of source code must be in the original form, - they must include all the original files, including but not - limited to original documentation, license agreement, copyright - notice, and web site address. +- All redistributions of source code must be in the original form, + they must include all the original files, including but not + limited to original documentation, license agreement, copyright + notice, and web site address. -- Redistribution of TBX package or any part of TBX code in modified - form is allowed only with express written permission from the - author (Alex A. Denisov). +- Redistribution of TBX package or any part of TBX code in modified + form is allowed only with express written permission from the + author (Alex A. Denisov). -- You are not allowed to make modifications to TBX documentation. - You may only redistribute the documentation with original +- You are not allowed to make modifications to TBX documentation. + You may only redistribute the documentation with original unmodified package. - -- If TBX is used in your software in the compiled form, an - acknowledgement in product documentation and/or in the About box - is required. Only registered users are allowed to omit the - acknowledgement. -- The origin of this software must not be misrepresented; you must - not claim your authorship. +- If TBX is used in your software in the compiled form, an + acknowledgement in product documentation and/or in the About box + is required. Only registered users are allowed to omit the + acknowledgement. -If you do not agree to all of the above terms, you are not +- The origin of this software must not be misrepresented; you must + not claim your authorship. + +If you do not agree to all of the above terms, you are not permitted to use this package. -This software is provided 'as-is', without warranty of any kind, -either expressed or implied. In no event shall the author be held +This software is provided 'as-is', without warranty of any kind, +either expressed or implied. In no event shall the author be held liable for any damages arising from the use of this software. Alex A. Denisov @@ -42,6 +42,3 @@ Alex A. Denisov alex@g32.org http://g32.org - - - diff --git a/source/packages/tbx/registration.txt b/source/packages/tbx/registration.txt index 6d8e7f57..493d91cf 100644 --- a/source/packages/tbx/registration.txt +++ b/source/packages/tbx/registration.txt @@ -1,26 +1,24 @@ REGISTRATION AND DONATIONS -The TBX package is a freeware product and you can use it for any -kind of applications provided the license conditions are satisfied. -Registration is required only if you don't want to include the -acknowledgement. The price of the license is US$100 for a single -user and US$200 per site. Proceed to [https://order.kagi.com/?GRH] +The TBX package is a freeware product and you can use it for any +kind of applications provided the license conditions are satisfied. +Registration is required only if you don't want to include the +acknowledgement. The price of the license is US$100 for a single +user and US$200 per site. Proceed to [https://order.kagi.com/?GRH] for registartion. -As long as you include an acknowledgement, you can use the TBX -package free of charge even for commercial and shareware applications. -However, if you wish to express your appreciation for the time I -spend on developing, documenting and supporting it, I do accept and +As long as you include an acknowledgement, you can use the TBX +package free of charge even for commercial and shareware applications. +However, if you wish to express your appreciation for the time I +spend on developing, documenting and supporting it, I do accept and appreciate donations. -You can make your donation at [https://order.kagi.com/?GRH]. -The base amount is US$20, but if you would like to donate more, +You can make your donation at [https://order.kagi.com/?GRH]. +The base amount is US$20, but if you would like to donate more, feel free to order multiple copies of the "TBX donation" product. Thank you for your support. Alex A. Denisov alex@g32.org -http://g32.org - - +http://g32.org diff --git a/source/putty/LOGGING.C b/source/putty/LOGGING.C index 35a7394f..b4b51a42 100644 --- a/source/putty/LOGGING.C +++ b/source/putty/LOGGING.C @@ -22,7 +22,8 @@ struct LogContext { int logtype; /* cached out of conf */ }; -static Filename *xlatlognam(Filename *s, char *hostname, struct tm *tm); +static Filename *xlatlognam(Filename *s, char *hostname, int port, + struct tm *tm); /* * Internal wrapper function which must be called for _all_ output @@ -87,16 +88,19 @@ static void logfopen_callback(void *handle, int mode) char buf[256], *event; struct tm tm; const char *fmode; + int shout = FALSE; if (mode == 0) { ctx->state = L_ERROR; /* disable logging */ } else { fmode = (mode == 1 ? "ab" : "wb"); ctx->lgfp = f_open(ctx->currlogfilename, fmode, FALSE); - if (ctx->lgfp) + if (ctx->lgfp) { ctx->state = L_OPEN; - else + } else { ctx->state = L_ERROR; + shout = TRUE; + } } if (ctx->state == L_OPEN) { @@ -118,6 +122,23 @@ static void logfopen_callback(void *handle, int mode) "unknown"), filename_to_str(ctx->currlogfilename)); logevent(ctx->frontend, event); + if (shout) { + /* + * If we failed to open the log file due to filesystem error + * (as opposed to user action such as clicking Cancel in the + * askappend box), we should log it more prominently. We do + * this by sending it to the same place that stderr output + * from the main session goes (so, either a console tool's + * actual stderr, or a terminal window). + * + * Of course this is one case in which that policy won't cause + * it to turn up embarrassingly in a log file of real server + * output, because the whole point is that we haven't managed + * to open any such log file :-) + */ + from_backend(ctx->frontend, 1, event, strlen(event)); + from_backend(ctx->frontend, 1, "\r\n", 2); + } sfree(event); /* @@ -143,6 +164,7 @@ void logfopen(void *handle) { struct LogContext *ctx = (struct LogContext *)handle; struct tm tm; + FILE *fp; int mode; /* Prevent repeat calls */ @@ -159,12 +181,13 @@ void logfopen(void *handle) filename_free(ctx->currlogfilename); ctx->currlogfilename = xlatlognam(conf_get_filename(ctx->conf, CONF_logfilename), - conf_get_str(ctx->conf, CONF_host), &tm); + conf_get_str(ctx->conf, CONF_host), + conf_get_int(ctx->conf, CONF_port), &tm); - ctx->lgfp = f_open(ctx->currlogfilename, "r", FALSE); /* file already present? */ - if (ctx->lgfp) { + fp = f_open(ctx->currlogfilename, "r", FALSE); /* file already present? */ + if (fp) { int logxfovr = conf_get_int(ctx->conf, CONF_logxfovr); - fclose(ctx->lgfp); + fclose(fp); if (logxfovr != LGXF_ASK) { mode = ((logxfovr == LGXF_OVR) ? 2 : 1); } else @@ -235,7 +258,8 @@ void log_eventlog(void *handle, const char *event) void log_packet(void *handle, int direction, int type, char *texttype, const void *data, int len, int n_blanks, const struct logblank_t *blanks, - const unsigned long *seq) + const unsigned long *seq, + unsigned downstream_id, const char *additional_log_text) { struct LogContext *ctx = (struct LogContext *)handle; char dumpdata[80], smalldata[5]; @@ -248,15 +272,21 @@ void log_packet(void *handle, int direction, int type, /* Packet header. */ if (texttype) { - if (seq) { - logprintf(ctx, "%s packet #0x%lx, type %d / 0x%02x (%s)\r\n", - direction == PKT_INCOMING ? "Incoming" : "Outgoing", - *seq, type, type, texttype); - } else { - logprintf(ctx, "%s packet type %d / 0x%02x (%s)\r\n", - direction == PKT_INCOMING ? "Incoming" : "Outgoing", - type, type, texttype); - } + logprintf(ctx, "%s packet ", + direction == PKT_INCOMING ? "Incoming" : "Outgoing"); + + if (seq) + logprintf(ctx, "#0x%lx, ", *seq); + + logprintf(ctx, "type %d / 0x%02x (%s)", type, type, texttype); + + if (downstream_id) { + logprintf(ctx, " on behalf of downstream #%u", downstream_id); + if (additional_log_text) + logprintf(ctx, " (%s)", additional_log_text); + } + + logprintf(ctx, "\r\n"); } else { /* * Raw data is logged with a timestamp, so that it's possible @@ -366,6 +396,7 @@ void log_free(void *handle) bufchain_clear(&ctx->queue); if (ctx->currlogfilename) filename_free(ctx->currlogfilename); + conf_free(ctx->conf); sfree(ctx); } @@ -400,9 +431,10 @@ void log_reconfig(void *handle, Conf *conf) * * "&Y":YYYY "&m":MM "&d":DD "&T":hhmmss "&h": "&&":& */ -static Filename *xlatlognam(Filename *src, char *hostname, struct tm *tm) +static Filename *xlatlognam(Filename *src, char *hostname, int port, + struct tm *tm) { - char buf[10], *bufp; + char buf[32], *bufp; int size; char *buffer; int buflen, bufsize; @@ -415,6 +447,7 @@ static Filename *xlatlognam(Filename *src, char *hostname, struct tm *tm) s = filename_to_str(src); while (*s) { + int sanitise = FALSE; /* Let (bufp, len) be the string to append. */ bufp = buf; /* don't usually override this */ if (*s == '&') { @@ -438,12 +471,21 @@ static Filename *xlatlognam(Filename *src, char *hostname, struct tm *tm) bufp = hostname; size = strlen(bufp); break; + case 'p': + size = sprintf(buf, "%d", port); + break; default: buf[0] = '&'; size = 1; if (c != '&') buf[size++] = c; } + /* Never allow path separators - or any other illegal + * filename character - to come out of any of these + * auto-format directives. E.g. 'hostname' can contain + * colons, if it's an IPv6 address, and colons aren't + * legal in filenames on Windows. */ + sanitise = TRUE; } else { buf[0] = *s++; size = 1; @@ -452,8 +494,12 @@ static Filename *xlatlognam(Filename *src, char *hostname, struct tm *tm) bufsize = (buflen + size) * 5 / 4 + 512; buffer = sresize(buffer, bufsize, char); } - memcpy(buffer + buflen, bufp, size); - buflen += size; + while (size-- > 0) { + char c = *bufp++; + if (sanitise) + c = filename_char_sanitise(c); + buffer[buflen++] = c; + } } buffer[buflen] = '\0'; diff --git a/source/putty/MISC.C b/source/putty/MISC.C index e4838cf1..149187a2 100644 --- a/source/putty/MISC.C +++ b/source/putty/MISC.C @@ -92,6 +92,133 @@ char ctrlparse(char *s, char **next) return c; } +/* + * Find a character in a string, unless it's a colon contained within + * square brackets. Used for untangling strings of the form + * 'host:port', where host can be an IPv6 literal. + * + * We provide several variants of this function, with semantics like + * various standard string.h functions. + */ +static const char *host_strchr_internal(const char *s, const char *set, + int first) +{ + int brackets = 0; + const char *ret = NULL; + + while (1) { + if (!*s) + return ret; + + if (*s == '[') + brackets++; + else if (*s == ']' && brackets > 0) + brackets--; + else if (brackets && *s == ':') + /* never match */ ; + else if (strchr(set, *s)) { + ret = s; + if (first) + return ret; + } + + s++; + } +} +size_t host_strcspn(const char *s, const char *set) +{ + const char *answer = host_strchr_internal(s, set, TRUE); + if (answer) + return answer - s; + else + return strlen(s); +} +char *host_strchr(const char *s, int c) +{ + char set[2]; + set[0] = c; + set[1] = '\0'; + return (char *) host_strchr_internal(s, set, TRUE); +} +char *host_strrchr(const char *s, int c) +{ + char set[2]; + set[0] = c; + set[1] = '\0'; + return (char *) host_strchr_internal(s, set, FALSE); +} + +#ifdef TEST_HOST_STRFOO +int main(void) +{ + int passes = 0, fails = 0; + +#define TEST1(func, string, arg2, suffix, result) do \ + { \ + const char *str = string; \ + unsigned ret = func(string, arg2) suffix; \ + if (ret == result) { \ + passes++; \ + } else { \ + printf("fail: %s(%s,%s)%s = %u, expected %u\n", \ + #func, #string, #arg2, #suffix, ret, result); \ + fails++; \ + } \ +} while (0) + + TEST1(host_strchr, "[1:2:3]:4:5", ':', -str, 7); + TEST1(host_strrchr, "[1:2:3]:4:5", ':', -str, 9); + TEST1(host_strcspn, "[1:2:3]:4:5", "/:",, 7); + TEST1(host_strchr, "[1:2:3]", ':', == NULL, 1); + TEST1(host_strrchr, "[1:2:3]", ':', == NULL, 1); + TEST1(host_strcspn, "[1:2:3]", "/:",, 7); + TEST1(host_strcspn, "[1:2/3]", "/:",, 4); + TEST1(host_strcspn, "[1:2:3]/", "/:",, 7); + + printf("passed %d failed %d total %d\n", passes, fails, passes+fails); + return fails != 0 ? 1 : 0; +} +/* Stubs to stop the rest of this module causing compile failures. */ +void modalfatalbox(char *fmt, ...) {} +int conf_get_int(Conf *conf, int primary) { return 0; } +char *conf_get_str(Conf *conf, int primary) { return NULL; } +#endif /* TEST_HOST_STRFOO */ + +/* + * Trim square brackets off the outside of an IPv6 address literal. + * Leave all other strings unchanged. Returns a fresh dynamically + * allocated string. + */ +char *host_strduptrim(const char *s) +{ + if (s[0] == '[') { + const char *p = s+1; + int colons = 0; + while (*p && *p != ']') { + if (isxdigit((unsigned char)*p)) + /* OK */; + else if (*p == ':') + colons++; + else + break; + p++; + } + if (*p == ']' && !p[1] && colons > 1) { + /* + * This looks like an IPv6 address literal (hex digits and + * at least two colons, contained in square brackets). + * Trim off the brackets. + */ + return dupprintf("%.*s", (int)(p - (s+1)), s+1); + } + } + + /* + * Any other shape of string is simply duplicated. + */ + return dupstr(s); +} + prompts_t *new_prompts(void *frontend) { prompts_t *p = snew(prompts_t); @@ -351,8 +478,7 @@ char *fgetline(FILE *fp) } /* ---------------------------------------------------------------------- - * Base64 encoding routine. This is required in public-key writing - * but also in HTTP proxy handling, so it's centralised here. + * Core base64 encoding and decoding routines. */ void base64_encode_atom(unsigned char *data, int n, char *out) @@ -379,6 +505,54 @@ void base64_encode_atom(unsigned char *data, int n, char *out) out[3] = '='; } +int base64_decode_atom(char *atom, unsigned char *out) +{ + int vals[4]; + int i, v, len; + unsigned word; + char c; + + for (i = 0; i < 4; i++) { + c = atom[i]; + if (c >= 'A' && c <= 'Z') + v = c - 'A'; + else if (c >= 'a' && c <= 'z') + v = c - 'a' + 26; + else if (c >= '0' && c <= '9') + v = c - '0' + 52; + else if (c == '+') + v = 62; + else if (c == '/') + v = 63; + else if (c == '=') + v = -1; + else + return 0; /* invalid atom */ + vals[i] = v; + } + + if (vals[0] == -1 || vals[1] == -1) + return 0; + if (vals[2] == -1 && vals[3] != -1) + return 0; + + if (vals[3] != -1) + len = 3; + else if (vals[2] != -1) + len = 2; + else + len = 1; + + word = ((vals[0] << 18) | + (vals[1] << 12) | ((vals[2] & 0x3F) << 6) | (vals[3] & 0x3F)); + out[0] = (word >> 16) & 0xFF; + if (len > 1) + out[1] = (word >> 8) & 0xFF; + if (len > 2) + out[2] = word & 0xFF; + return len; +} + /* ---------------------------------------------------------------------- * Generic routines to deal with send buffers: a linked list of * smallish blocks, with the operations @@ -570,7 +744,7 @@ void *safemalloc(size_t n, size_t size) #else strcpy(str, "Out of memory!"); #endif - modalfatalbox(str); + modalfatalbox("%s", str); } #ifdef MALLOC_LOG if (fp) @@ -612,7 +786,7 @@ void *saferealloc(void *ptr, size_t n, size_t size) #else strcpy(str, "Out of memory!"); #endif - modalfatalbox(str); + modalfatalbox("%s", str); } #ifdef MALLOC_LOG if (fp) @@ -756,3 +930,127 @@ void smemclr(void *b, size_t n) { } } #endif + +/* + * Validate a manual host key specification (either entered in the + * GUI, or via -hostkey). If valid, we return TRUE, and update 'key' + * to contain a canonicalised version of the key string in 'key' + * (which is guaranteed to take up at most as much space as the + * original version), suitable for putting into the Conf. If not + * valid, we return FALSE. + */ +int validate_manual_hostkey(char *key) +{ + char *p, *q, *r, *s; + + /* + * Step through the string word by word, looking for a word that's + * in one of the formats we like. + */ + p = key; + while ((p += strspn(p, " \t"))[0]) { + q = p; + p += strcspn(p, " \t"); + if (*p) *p++ = '\0'; + + /* + * Now q is our word. + */ + + if (strlen(q) == 16*3 - 1 && + q[strspn(q, "0123456789abcdefABCDEF:")] == 0) { + /* + * Might be a key fingerprint. Check the colons are in the + * right places, and if so, return the same fingerprint + * canonicalised into lowercase. + */ + int i; + for (i = 0; i < 16; i++) + if (q[3*i] == ':' || q[3*i+1] == ':') + goto not_fingerprint; /* sorry */ + for (i = 0; i < 15; i++) + if (q[3*i+2] != ':') + goto not_fingerprint; /* sorry */ + for (i = 0; i < 16*3 - 1; i++) + key[i] = tolower(q[i]); + key[16*3 - 1] = '\0'; + return TRUE; + } + not_fingerprint:; + + /* + * Before we check for a public-key blob, trim newlines out of + * the middle of the word, in case someone's managed to paste + * in a public-key blob _with_ them. + */ + for (r = s = q; *r; r++) + if (*r != '\n' && *r != '\r') + *s++ = *r; + *s = '\0'; + + if (strlen(q) % 4 == 0 && strlen(q) > 2*4 && + q[strspn(q, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz+/=")] == 0) { + /* + * Might be a base64-encoded SSH-2 public key blob. Check + * that it starts with a sensible algorithm string. No + * canonicalisation is necessary for this string type. + * + * The algorithm string must be at most 64 characters long + * (RFC 4251 section 6). + */ + unsigned char decoded[6]; + unsigned alglen; + int minlen; + int len = 0; + + len += base64_decode_atom(q, decoded+len); + if (len < 3) + goto not_ssh2_blob; /* sorry */ + len += base64_decode_atom(q+4, decoded+len); + if (len < 4) + goto not_ssh2_blob; /* sorry */ + + alglen = GET_32BIT_MSB_FIRST(decoded); + if (alglen > 64) + goto not_ssh2_blob; /* sorry */ + + minlen = ((alglen + 4) + 2) / 3; + if (strlen(q) < minlen) + goto not_ssh2_blob; /* sorry */ + + strcpy(key, q); + return TRUE; + } + not_ssh2_blob:; + } + + return FALSE; +} + +int smemeq(const void *av, const void *bv, size_t len) +{ + const unsigned char *a = (const unsigned char *)av; + const unsigned char *b = (const unsigned char *)bv; + unsigned val = 0; + + while (len-- > 0) { + val |= *a++ ^ *b++; + } + /* Now val is 0 iff we want to return 1, and in the range + * 0x01..0xFF iff we want to return 0. So subtracting from 0x100 + * will clear bit 8 iff we want to return 0, and leave it set iff + * we want to return 1, so then we can just shift down. */ + return (0x100 - val) >> 8; +} + +#ifdef MPEXT + +#include "version.h" + +const char * get_putty_version() +{ + return TEXTVER; +} + +#endif diff --git a/source/putty/MISC.H b/source/putty/MISC.H index 5be73fc1..417a4089 100644 --- a/source/putty/MISC.H +++ b/source/putty/MISC.H @@ -27,17 +27,36 @@ __int64 parse_blocksize64(const char *bs); unsigned long parse_blocksize(const char *bs); char ctrlparse(char *s, char **next); +size_t host_strcspn(const char *s, const char *set); +char *host_strchr(const char *s, int c); +char *host_strrchr(const char *s, int c); +char *host_strduptrim(const char *s); + char *dupstr(const char *s); char *dupcat(const char *s1, ...); -char *dupprintf(const char *fmt, ...); +char *dupprintf(const char *fmt, ...) +#ifdef __GNUC__ + __attribute__ ((format (printf, 1, 2))) +#endif + ; char *dupvprintf(const char *fmt, va_list ap); void burnstr(char *string); +/* String-to-Unicode converters that auto-allocate the destination and + * work around the rather deficient interface of mb_to_wc. + * + * These actually live in miscucs.c, not misc.c (the distinction being + * that the former is only linked into tools that also have the main + * Unicode support). */ +wchar_t *dup_mb_to_wc_c(int codepage, int flags, const char *string, int len); +wchar_t *dup_mb_to_wc(int codepage, int flags, const char *string); + int toint(unsigned); char *fgetline(FILE *fp); void base64_encode_atom(unsigned char *data, int n, char *out); +int base64_decode_atom(char *atom, unsigned char *out); struct bufchain_granule; typedef struct bufchain_tag { @@ -53,10 +72,24 @@ void bufchain_prefix(bufchain *ch, void **data, int *len); void bufchain_consume(bufchain *ch, int len); void bufchain_fetch(bufchain *ch, void *data, int len); +int validate_manual_hostkey(char *key); + struct tm ltime(void); +/* Wipe sensitive data out of memory that's about to be freed. Simpler + * than memset because we don't need the fill char parameter; also + * attempts (by fiddly use of volatile) to inhibit the compiler from + * over-cleverly trying to optimise the memset away because it knows + * the variable is going out of scope. */ void smemclr(void *b, size_t len); +/* Compare two fixed-length chunks of memory for equality, without + * data-dependent control flow (so an attacker with a very accurate + * stopwatch can't try to guess where the first mismatching byte was). + * Returns 0 for mismatch or 1 for equality (unlike memcmp), hinted at + * by the 'eq' in the name. */ +int smemeq(const void *av, const void *bv, size_t len); + /* * Debugging functions. * diff --git a/source/putty/NETWORK.H b/source/putty/NETWORK.H index f8b993d8..4b74eb78 100644 --- a/source/putty/NETWORK.H +++ b/source/putty/NETWORK.H @@ -25,10 +25,6 @@ typedef struct SockAddr_tag *SockAddr; typedef struct socket_function_table **Socket; typedef struct plug_function_table **Plug; -#ifndef OSSOCKET_DEFINED -typedef void *OSSocket; -#endif - struct socket_function_table { Plug(*plug) (Socket s, Plug p); /* use a different plug (return the old one) */ @@ -39,13 +35,15 @@ struct socket_function_table { int (*write_oob) (Socket s, const char *data, int len); void (*write_eof) (Socket s); void (*flush) (Socket s); - void (*set_private_ptr) (Socket s, void *ptr); - void *(*get_private_ptr) (Socket s); void (*set_frozen) (Socket s, int is_frozen); /* ignored by tcp, but vital for ssl */ const char *(*socket_error) (Socket s); + char *(*peer_info) (Socket s); }; +typedef union { void *p; int i; } accept_ctx_t; +typedef Socket (*accept_fn_t)(accept_ctx_t ctx, Plug plug); + struct plug_function_table { void (*log)(Plug p, int type, SockAddr addr, int port, const char *error_msg, int error_code); @@ -83,9 +81,12 @@ struct plug_function_table { * on a socket is cleared or partially cleared. The new backlog * size is passed in the `bufsize' parameter. */ - int (*accepting)(Plug p, OSSocket sock); + int (*accepting)(Plug p, accept_fn_t constructor, accept_ctx_t ctx); /* - * returns 0 if the host at address addr is a valid host for connecting or error + * `accepting' is called only on listener-type sockets, and is + * passed a constructor function+context that will create a fresh + * Socket describing the connection. It returns nonzero if it + * doesn't want the connection for some reason, or 0 on success. */ }; @@ -100,6 +101,8 @@ Socket new_listener(char *srcaddr, int port, Plug plug, int local_host_only, Conf *conf, int addressfamily); SockAddr name_lookup(char *host, int port, char **canonicalname, Conf *conf, int addressfamily); +int proxy_for_destination (SockAddr addr, const char *hostname, int port, + Conf *conf); /* platform-dependent callback from new_connection() */ /* (same caveat about addr as new_connection()) */ @@ -116,6 +119,7 @@ void sk_cleanup(void); /* called just before program exit */ SockAddr sk_namelookup(const char *host, char **canonicalname, int address_family); SockAddr sk_nonamelookup(const char *host); void sk_getaddr(SockAddr addr, char *buf, int buflen); +int sk_addr_needs_port(SockAddr addr); int sk_hostname_is_local(const char *name); int sk_address_is_local(SockAddr addr); int sk_address_is_special_local(SockAddr addr); @@ -146,8 +150,6 @@ Socket sk_new(SockAddr addr, int port, int privport, int oobinline, Socket sk_newlistener(char *srcaddr, int port, Plug plug, int local_host_only, int address_family); -Socket sk_register(OSSocket sock, Plug plug); - #define sk_plug(s,p) (((*s)->plug) (s, p)) #define sk_close(s) (((*s)->close) (s)) #define sk_write(s,buf,len) (((*s)->write) (s, buf, len)) @@ -160,19 +162,9 @@ Socket sk_register(OSSocket sock, Plug plug); #define plug_closing(p,msg,code,callback) (((*p)->closing) (p, msg, code, callback)) #define plug_receive(p,urgent,buf,len) (((*p)->receive) (p, urgent, buf, len)) #define plug_sent(p,bufsize) (((*p)->sent) (p, bufsize)) -#define plug_accepting(p, sock) (((*p)->accepting)(p, sock)) +#define plug_accepting(p, constructor, ctx) (((*p)->accepting)(p, constructor, ctx)) #endif -/* - * Each socket abstraction contains a `void *' private field in - * which the client can keep state. - * - * This is perhaps unnecessary now that we have the notion of a plug, - * but there is some existing code that uses it, so it stays. - */ -#define sk_set_private_ptr(s, ptr) (((*s)->set_private_ptr) (s, ptr)) -#define sk_get_private_ptr(s) (((*s)->get_private_ptr) (s)) - /* * Special error values are returned from sk_namelookup and sk_new * if there's a problem. These functions extract an error message, @@ -200,6 +192,13 @@ const char *sk_addr_error(SockAddr addr); */ #define sk_set_frozen(s, is_frozen) (((*s)->set_frozen) (s, is_frozen)) +/* + * Return a (dynamically allocated) string giving some information + * about the other end of the socket, suitable for putting in log + * files. May be NULL if nothing is available at all. + */ +#define sk_peer_info(s) (((*s)->peer_info) (s)) + /* * Simple wrapper on getservbyname(), needed by ssh.c. Returns the * port number, in host byte order (suitable for printf and so on). @@ -215,6 +214,12 @@ int net_service_lookup(char *service); */ char *get_hostname(void); +/* + * Trivial socket implementation which just stores an error. Found in + * errsock.c. + */ +Socket new_error_socket(const char *errmsg, Plug plug); + /********** SSL stuff **********/ /* diff --git a/source/putty/PORTFWD.C b/source/putty/PORTFWD.C index b424293e..41c13e69 100644 --- a/source/putty/PORTFWD.C +++ b/source/putty/PORTFWD.C @@ -15,10 +15,10 @@ #define TRUE 1 #endif -struct PFwdPrivate { +struct PortForwarding { const struct plug_function_table *fn; /* the above variable absolutely *must* be the first in this structure */ - void *c; /* (channel) data used by ssh.c */ + struct ssh_channel *c; /* channel structure held by ssh.c */ void *backhandle; /* instance of SSH backend itself */ /* Note that backhandle need not be filled in if c is non-NULL */ Socket s; @@ -27,8 +27,8 @@ struct PFwdPrivate { /* * `dynamic' does double duty. It's set to 0 for an ordinary * forwarded port, and nonzero for SOCKS-style dynamic port - * forwarding; but it also represents the state of the SOCKS - * exchange. + * forwarding; but the nonzero values are also a state machine + * tracking where the SOCKS exchange has got to. */ int dynamic; /* @@ -52,24 +52,57 @@ struct PFwdPrivate { int buflen; }; -static struct PFwdPrivate *new_portfwd_private(void) +struct PortListener { + const struct plug_function_table *fn; + /* the above variable absolutely *must* be the first in this structure */ + void *backhandle; /* instance of SSH backend itself */ + Socket s; + /* + * `dynamic' is set to 0 for an ordinary forwarded port, and + * nonzero for SOCKS-style dynamic port forwarding. + */ + int dynamic; + /* + * `hostname' and `port' are the real hostname and port, for + * ordinary forwardings. + */ + char *hostname; + int port; +}; + +static struct PortForwarding *new_portfwd_state(void) { - struct PFwdPrivate *pr = snew(struct PFwdPrivate); - pr->hostname = NULL; - pr->socksbuf = NULL; - pr->sockslen = pr->sockssize = 0; - pr->buffer = NULL; - return pr; + struct PortForwarding *pf = snew(struct PortForwarding); + pf->hostname = NULL; + pf->socksbuf = NULL; + pf->sockslen = pf->sockssize = 0; + pf->buffer = NULL; + return pf; } -static void free_portfwd_private(struct PFwdPrivate *pr) +static void free_portfwd_state(struct PortForwarding *pf) { - if (!pr) + if (!pf) return; - sfree(pr->hostname); - sfree(pr->socksbuf); - sfree(pr->buffer); - sfree(pr); + sfree(pf->hostname); + sfree(pf->socksbuf); + sfree(pf->buffer); + sfree(pf); +} + +static struct PortListener *new_portlistener_state(void) +{ + struct PortListener *pl = snew(struct PortListener); + pl->hostname = NULL; + return pl; +} + +static void free_portlistener_state(struct PortListener *pl) +{ + if (!pl) + return; + sfree(pl->hostname); + sfree(pl); } static void pfd_log(Plug plug, int type, SockAddr addr, int port, @@ -78,82 +111,111 @@ static void pfd_log(Plug plug, int type, SockAddr addr, int port, /* we have to dump these since we have no interface to logging.c */ } +static void pfl_log(Plug plug, int type, SockAddr addr, int port, + const char *error_msg, int error_code) +{ + /* we have to dump these since we have no interface to logging.c */ +} + static int pfd_closing(Plug plug, const char *error_msg, int error_code, int calling_back) { - struct PFwdPrivate *pr = (struct PFwdPrivate *) plug; + struct PortForwarding *pf = (struct PortForwarding *) plug; if (error_msg) { /* * Socket error. Slam the connection instantly shut. */ - if (pr->c) { - sshfwd_unclean_close(pr->c, error_msg); - } else { - /* + if (pf->c) { + sshfwd_unclean_close(pf->c, error_msg); + } else { + /* * We might not have an SSH channel, if a socket error * occurred during SOCKS negotiation. If not, we must * clean ourself up without sshfwd_unclean_close's call * back to pfd_close. */ - pfd_close(pr->s); + pfd_close(pf); } } else { /* * Ordinary EOF received on socket. Send an EOF on the SSH * channel. */ - if (pr->c) - sshfwd_write_eof(pr->c); + if (pf->c) + sshfwd_write_eof(pf->c); } return 1; } +static int pfl_closing(Plug plug, const char *error_msg, int error_code, + int calling_back) +{ + struct PortListener *pl = (struct PortListener *) plug; + pfl_terminate(pl); + return 1; +} + +static void wrap_send_port_open(void *channel, char *hostname, int port, + Socket s) +{ + char *peerinfo, *description; + peerinfo = sk_peer_info(s); + if (peerinfo) { + description = dupprintf("forwarding from %s", peerinfo); + sfree(peerinfo); + } else { + description = dupstr("forwarding"); + } + ssh_send_port_open(channel, hostname, port, description); + sfree(description); +} + static int pfd_receive(Plug plug, int urgent, char *data, int len) { - struct PFwdPrivate *pr = (struct PFwdPrivate *) plug; - if (pr->dynamic) { + struct PortForwarding *pf = (struct PortForwarding *) plug; + if (pf->dynamic) { while (len--) { - if (pr->sockslen >= pr->sockssize) { - pr->sockssize = pr->sockslen * 5 / 4 + 256; - pr->socksbuf = sresize(pr->socksbuf, pr->sockssize, char); + if (pf->sockslen >= pf->sockssize) { + pf->sockssize = pf->sockslen * 5 / 4 + 256; + pf->socksbuf = sresize(pf->socksbuf, pf->sockssize, char); } - pr->socksbuf[pr->sockslen++] = *data++; + pf->socksbuf[pf->sockslen++] = *data++; /* * Now check what's in the buffer to see if it's a * valid and complete message in the SOCKS exchange. */ - if ((pr->dynamic == 1 || (pr->dynamic >> 12) == 4) && - pr->socksbuf[0] == 4) { + if ((pf->dynamic == 1 || (pf->dynamic >> 12) == 4) && + pf->socksbuf[0] == 4) { /* * SOCKS 4. */ - if (pr->dynamic == 1) - pr->dynamic = 0x4000; - if (pr->sockslen < 2) + if (pf->dynamic == 1) + pf->dynamic = 0x4000; + if (pf->sockslen < 2) continue; /* don't have command code yet */ - if (pr->socksbuf[1] != 1) { + if (pf->socksbuf[1] != 1) { /* Not CONNECT. */ /* Send back a SOCKS 4 error before closing. */ char data[8]; memset(data, 0, sizeof(data)); data[1] = 91; /* generic `request rejected' */ - sk_write(pr->s, data, 8); - pfd_close(pr->s); + sk_write(pf->s, data, 8); + pfd_close(pf); return 1; } - if (pr->sockslen <= 8) + if (pf->sockslen <= 8) continue; /* haven't started user/hostname */ - if (pr->socksbuf[pr->sockslen-1] != 0) + if (pf->socksbuf[pf->sockslen-1] != 0) continue; /* haven't _finished_ user/hostname */ /* * Now we have a full SOCKS 4 request. Check it to * see if it's a SOCKS 4A request. */ - if (pr->socksbuf[4] == 0 && pr->socksbuf[5] == 0 && - pr->socksbuf[6] == 0 && pr->socksbuf[7] != 0) { + if (pf->socksbuf[4] == 0 && pf->socksbuf[5] == 0 && + pf->socksbuf[6] == 0 && pf->socksbuf[7] != 0) { /* * It's SOCKS 4A. So if we haven't yet * collected the host name, we should continue @@ -161,19 +223,19 @@ static int pfd_receive(Plug plug, int urgent, char *data, int len) * have, we can go ahead. */ int len; - if (pr->dynamic == 0x4000) { - pr->dynamic = 0x4001; - pr->sockslen = 8; /* reset buffer to overwrite name */ + if (pf->dynamic == 0x4000) { + pf->dynamic = 0x4001; + pf->sockslen = 8; /* reset buffer to overwrite name */ continue; } - pr->socksbuf[0] = 0; /* reply version code */ - pr->socksbuf[1] = 90; /* request granted */ - sk_write(pr->s, pr->socksbuf, 8); - len = pr->sockslen - 8; - pr->port = GET_16BIT_MSB_FIRST(pr->socksbuf+2); - pr->hostname = snewn(len+1, char); - pr->hostname[len] = '\0'; - memcpy(pr->hostname, pr->socksbuf + 8, len); + pf->socksbuf[0] = 0; /* reply version code */ + pf->socksbuf[1] = 90; /* request granted */ + sk_write(pf->s, pf->socksbuf, 8); + len = pf->sockslen - 8; + pf->port = GET_16BIT_MSB_FIRST(pf->socksbuf+2); + pf->hostname = snewn(len+1, char); + pf->hostname[len] = '\0'; + memcpy(pf->hostname, pf->socksbuf + 8, len); goto connect; } else { /* @@ -181,52 +243,52 @@ static int pfd_receive(Plug plug, int urgent, char *data, int len) * the IP address into the hostname string and * then just go. */ - pr->socksbuf[0] = 0; /* reply version code */ - pr->socksbuf[1] = 90; /* request granted */ - sk_write(pr->s, pr->socksbuf, 8); - pr->port = GET_16BIT_MSB_FIRST(pr->socksbuf+2); - pr->hostname = dupprintf("%d.%d.%d.%d", - (unsigned char)pr->socksbuf[4], - (unsigned char)pr->socksbuf[5], - (unsigned char)pr->socksbuf[6], - (unsigned char)pr->socksbuf[7]); + pf->socksbuf[0] = 0; /* reply version code */ + pf->socksbuf[1] = 90; /* request granted */ + sk_write(pf->s, pf->socksbuf, 8); + pf->port = GET_16BIT_MSB_FIRST(pf->socksbuf+2); + pf->hostname = dupprintf("%d.%d.%d.%d", + (unsigned char)pf->socksbuf[4], + (unsigned char)pf->socksbuf[5], + (unsigned char)pf->socksbuf[6], + (unsigned char)pf->socksbuf[7]); goto connect; } } - if ((pr->dynamic == 1 || (pr->dynamic >> 12) == 5) && - pr->socksbuf[0] == 5) { + if ((pf->dynamic == 1 || (pf->dynamic >> 12) == 5) && + pf->socksbuf[0] == 5) { /* * SOCKS 5. */ - if (pr->dynamic == 1) - pr->dynamic = 0x5000; + if (pf->dynamic == 1) + pf->dynamic = 0x5000; - if (pr->dynamic == 0x5000) { + if (pf->dynamic == 0x5000) { int i, method; char data[2]; /* * We're receiving a set of method identifiers. */ - if (pr->sockslen < 2) + if (pf->sockslen < 2) continue; /* no method count yet */ - if (pr->sockslen < 2 + (unsigned char)pr->socksbuf[1]) + if (pf->sockslen < 2 + (unsigned char)pf->socksbuf[1]) continue; /* no methods yet */ method = 0xFF; /* invalid */ - for (i = 0; i < (unsigned char)pr->socksbuf[1]; i++) - if (pr->socksbuf[2+i] == 0) { + for (i = 0; i < (unsigned char)pf->socksbuf[1]; i++) + if (pf->socksbuf[2+i] == 0) { method = 0;/* no auth */ break; } data[0] = 5; data[1] = method; - sk_write(pr->s, data, 2); - pr->dynamic = 0x5001; - pr->sockslen = 0; /* re-empty the buffer */ + sk_write(pf->s, data, 2); + pf->dynamic = 0x5001; + pf->sockslen = 0; /* re-empty the buffer */ continue; } - if (pr->dynamic == 0x5001) { + if (pf->dynamic == 0x5001) { /* * We're receiving a SOCKS request. */ @@ -244,50 +306,50 @@ static int pfd_receive(Plug plug, int urgent, char *data, int len) reply[0] = 5; /* VER */ reply[3] = 1; /* ATYP = 1 (IPv4, 0.0.0.0:0) */ - if (pr->sockslen < 6) continue; - atype = (unsigned char)pr->socksbuf[3]; + if (pf->sockslen < 6) continue; + atype = (unsigned char)pf->socksbuf[3]; if (atype == 1) /* IPv4 address */ alen = 4; if (atype == 4) /* IPv6 address */ alen = 16; if (atype == 3) /* domain name has leading length */ - alen = 1 + (unsigned char)pr->socksbuf[4]; - if (pr->sockslen < 6 + alen) continue; - if (pr->socksbuf[1] != 1 || pr->socksbuf[2] != 0) { + alen = 1 + (unsigned char)pf->socksbuf[4]; + if (pf->sockslen < 6 + alen) continue; + if (pf->socksbuf[1] != 1 || pf->socksbuf[2] != 0) { /* Not CONNECT or reserved field nonzero - error */ reply[1] = 1; /* generic failure */ - sk_write(pr->s, (char *) reply, lenof(reply)); - pfd_close(pr->s); + sk_write(pf->s, (char *) reply, lenof(reply)); + pfd_close(pf); return 1; } /* * Now we have a viable connect request. Switch * on atype. */ - pr->port = GET_16BIT_MSB_FIRST(pr->socksbuf+4+alen); + pf->port = GET_16BIT_MSB_FIRST(pf->socksbuf+4+alen); if (atype == 1) { /* REP=0 (success) already */ - sk_write(pr->s, (char *) reply, lenof(reply)); - pr->hostname = dupprintf("%d.%d.%d.%d", - (unsigned char)pr->socksbuf[4], - (unsigned char)pr->socksbuf[5], - (unsigned char)pr->socksbuf[6], - (unsigned char)pr->socksbuf[7]); + sk_write(pf->s, (char *) reply, lenof(reply)); + pf->hostname = dupprintf("%d.%d.%d.%d", + (unsigned char)pf->socksbuf[4], + (unsigned char)pf->socksbuf[5], + (unsigned char)pf->socksbuf[6], + (unsigned char)pf->socksbuf[7]); goto connect; } else if (atype == 3) { /* REP=0 (success) already */ - sk_write(pr->s, (char *) reply, lenof(reply)); - pr->hostname = snewn(alen, char); - pr->hostname[alen-1] = '\0'; - memcpy(pr->hostname, pr->socksbuf + 5, alen-1); + sk_write(pf->s, (char *) reply, lenof(reply)); + pf->hostname = snewn(alen, char); + pf->hostname[alen-1] = '\0'; + memcpy(pf->hostname, pf->socksbuf + 5, alen-1); goto connect; } else { /* * Unknown address type. (FIXME: support IPv6!) */ reply[1] = 8; /* atype not supported */ - sk_write(pr->s, (char *) reply, lenof(reply)); - pfd_close(pr->s); + sk_write(pf->s, (char *) reply, lenof(reply)); + pfd_close(pf); return 1; } } @@ -299,7 +361,7 @@ static int pfd_receive(Plug plug, int urgent, char *data, int len) * sensible interpretation of what's in our buffer. So * close the connection rudely. */ - pfd_close(pr->s); + pfd_close(pf); return 1; } return 1; @@ -309,39 +371,39 @@ static int pfd_receive(Plug plug, int urgent, char *data, int len) * connection. */ connect: - sfree(pr->socksbuf); - pr->socksbuf = NULL; + sfree(pf->socksbuf); + pf->socksbuf = NULL; /* * Freeze the socket until the SSH server confirms the * connection. */ - sk_set_frozen(pr->s, 1); + sk_set_frozen(pf->s, 1); - pr->c = new_sock_channel(pr->backhandle, pr->s); - if (pr->c == NULL) { - pfd_close(pr->s); + pf->c = new_sock_channel(pf->backhandle, pf); + if (pf->c == NULL) { + pfd_close(pf); return 1; } else { /* asks to forward to the specified host/port for this */ - ssh_send_port_open(pr->c, pr->hostname, pr->port, "forwarding"); + wrap_send_port_open(pf->c, pf->hostname, pf->port, pf->s); } - pr->dynamic = 0; + pf->dynamic = 0; /* * If there's any data remaining in our current buffer, * save it to be sent on pfd_confirm(). */ if (len > 0) { - pr->buffer = snewn(len, char); - memcpy(pr->buffer, data, len); - pr->buflen = len; + pf->buffer = snewn(len, char); + memcpy(pf->buffer, data, len); + pf->buflen = len; } } - if (pr->ready) { - if (sshfwd_write(pr->c, data, len) > 0) { - pr->throttled = 1; - sk_set_frozen(pr->s, 1); + if (pf->ready) { + if (sshfwd_write(pf->c, data, len) > 0) { + pf->throttled = 1; + sk_set_frozen(pf->s, 1); } } return 1; @@ -349,17 +411,21 @@ static int pfd_receive(Plug plug, int urgent, char *data, int len) static void pfd_sent(Plug plug, int bufsize) { - struct PFwdPrivate *pr = (struct PFwdPrivate *) plug; + struct PortForwarding *pf = (struct PortForwarding *) plug; - if (pr->c) - sshfwd_unthrottle(pr->c, bufsize); + if (pf->c) + sshfwd_unthrottle(pf->c, bufsize); } /* - * Called when receiving a PORT OPEN from the server + * Called when receiving a PORT OPEN from the server to make a + * connection to a destination host. + * + * On success, returns NULL and fills in *pf_ret. On error, returns a + * dynamically allocated error message string. */ -const char *pfd_newconnect(Socket *s, char *hostname, int port, - void *c, Conf *conf, int addressfamily) +char *pfd_connect(struct PortForwarding **pf_ret, char *hostname,int port, + void *c, Conf *conf, int addressfamily) { static const struct plug_function_table fn_table = { pfd_log, @@ -372,38 +438,41 @@ const char *pfd_newconnect(Socket *s, char *hostname, int port, SockAddr addr; const char *err; char *dummy_realhost; - struct PFwdPrivate *pr; + struct PortForwarding *pf; /* * Try to find host. */ addr = name_lookup(hostname, port, &dummy_realhost, conf, addressfamily); if ((err = sk_addr_error(addr)) != NULL) { + char *err_ret = dupstr(err); sk_addr_free(addr); sfree(dummy_realhost); - return err; + return err_ret; } /* * Open socket. */ - pr = new_portfwd_private(); - pr->fn = &fn_table; - pr->throttled = pr->throttle_override = 0; - pr->ready = 1; - pr->c = c; - pr->backhandle = NULL; /* we shouldn't need this */ - pr->dynamic = 0; - - pr->s = *s = new_connection(addr, dummy_realhost, port, - 0, 1, 0, 0, (Plug) pr, conf); + pf = *pf_ret = new_portfwd_state(); + pf->fn = &fn_table; + pf->throttled = pf->throttle_override = 0; + pf->ready = 1; + pf->c = c; + pf->backhandle = NULL; /* we shouldn't need this */ + pf->dynamic = 0; + + pf->s = new_connection(addr, dummy_realhost, port, + 0, 1, 0, 0, (Plug) pf, conf); sfree(dummy_realhost); - if ((err = sk_socket_error(*s)) != NULL) { - free_portfwd_private(pr); - return err; + if ((err = sk_socket_error(pf->s)) != NULL) { + char *err_ret = dupstr(err); + sk_close(pf->s); + free_portfwd_state(pf); + *pf_ret = NULL; + return err_ret; } - sk_set_private_ptr(*s, pr); return NULL; } @@ -411,7 +480,7 @@ const char *pfd_newconnect(Socket *s, char *hostname, int port, called when someone connects to the local port */ -static int pfd_accepting(Plug p, OSSocket sock) +static int pfl_accepting(Plug p, accept_fn_t constructor, accept_ctx_t ctx) { static const struct plug_function_table fn_table = { pfd_log, @@ -420,44 +489,43 @@ static int pfd_accepting(Plug p, OSSocket sock) pfd_sent, NULL }; - struct PFwdPrivate *pr, *org; + struct PortForwarding *pf; + struct PortListener *pl; Socket s; const char *err; - org = (struct PFwdPrivate *)p; - pr = new_portfwd_private(); - pr->fn = &fn_table; + pl = (struct PortListener *)p; + pf = new_portfwd_state(); + pf->fn = &fn_table; - pr->c = NULL; - pr->backhandle = org->backhandle; + pf->c = NULL; + pf->backhandle = pl->backhandle; - pr->s = s = sk_register(sock, (Plug) pr); + pf->s = s = constructor(ctx, (Plug) pf); if ((err = sk_socket_error(s)) != NULL) { - free_portfwd_private(pr); + free_portfwd_state(pf); return err != NULL; } - sk_set_private_ptr(s, pr); - - pr->throttled = pr->throttle_override = 0; - pr->ready = 0; + pf->throttled = pf->throttle_override = 0; + pf->ready = 0; - if (org->dynamic) { - pr->dynamic = 1; - pr->port = 0; /* "hostname" buffer is so far empty */ + if (pl->dynamic) { + pf->dynamic = 1; + pf->port = 0; /* "hostname" buffer is so far empty */ sk_set_frozen(s, 0); /* we want to receive SOCKS _now_! */ } else { - pr->dynamic = 0; - pr->hostname = dupstr(org->hostname); - pr->port = org->port; - pr->c = new_sock_channel(org->backhandle, s); + pf->dynamic = 0; + pf->hostname = dupstr(pl->hostname); + pf->port = pl->port; + pf->c = new_sock_channel(pl->backhandle, pf); - if (pr->c == NULL) { - free_portfwd_private(pr); + if (pf->c == NULL) { + free_portfwd_state(pf); return 1; } else { /* asks to forward to the specified host/port for this */ - ssh_send_port_open(pr->c, pr->hostname, pr->port, "forwarding"); + wrap_send_port_open(pf->c, pf->hostname, pf->port, s); } } @@ -465,136 +533,148 @@ static int pfd_accepting(Plug p, OSSocket sock) } -/* Add a new forwarding from port -> desthost:destport - sets up a listener on the local machine on (srcaddr:)port +/* + * Add a new port-forwarding listener from srcaddr:port -> desthost:destport. + * + * On success, returns NULL and fills in *pl_ret. On error, returns a + * dynamically allocated error message string. */ -const char *pfd_addforward(char *desthost, int destport, char *srcaddr, - int port, void *backhandle, Conf *conf, - void **sockdata, int address_family) +char *pfl_listen(char *desthost, int destport, char *srcaddr, + int port, void *backhandle, Conf *conf, + struct PortListener **pl_ret, int address_family) { static const struct plug_function_table fn_table = { - pfd_log, - pfd_closing, - pfd_receive, /* should not happen... */ - pfd_sent, /* also should not happen */ - pfd_accepting + pfl_log, + pfl_closing, + NULL, /* recv */ + NULL, /* send */ + pfl_accepting }; const char *err; - struct PFwdPrivate *pr; - Socket s; + struct PortListener *pl; /* * Open socket. */ - pr = new_portfwd_private(); - pr->fn = &fn_table; - pr->c = NULL; + pl = *pl_ret = new_portlistener_state(); + pl->fn = &fn_table; if (desthost) { - pr->hostname = dupstr(desthost); - pr->port = destport; - pr->dynamic = 0; + pl->hostname = dupstr(desthost); + pl->port = destport; + pl->dynamic = 0; } else - pr->dynamic = 1; - pr->throttled = pr->throttle_override = 0; - pr->ready = 0; - pr->backhandle = backhandle; - - pr->s = s = new_listener(srcaddr, port, (Plug) pr, - !conf_get_int(conf, CONF_lport_acceptall), - conf, address_family); - if ((err = sk_socket_error(s)) != NULL) { - free_portfwd_private(pr); - return err; + pl->dynamic = 1; + pl->backhandle = backhandle; + + pl->s = new_listener(srcaddr, port, (Plug) pl, + !conf_get_int(conf, CONF_lport_acceptall), + conf, address_family); + if ((err = sk_socket_error(pl->s)) != NULL) { + char *err_ret = dupstr(err); + sk_close(pl->s); + free_portlistener_state(pl); + *pl_ret = NULL; + return err_ret; } - sk_set_private_ptr(s, pr); - - *sockdata = (void *)s; - return NULL; } -void pfd_close(Socket s) +void pfd_close(struct PortForwarding *pf) { - struct PFwdPrivate *pr; - - if (!s) + if (!pf) return; - pr = (struct PFwdPrivate *) sk_get_private_ptr(s); - -#ifdef MPEXT - // make sure do_select is called before we loose the private members - sk_close(s); -#endif - - free_portfwd_private(pr); - -#ifndef MPEXT - sk_close(s); -#endif + sk_close(pf->s); + free_portfwd_state(pf); } /* * Terminate a listener. */ -void pfd_terminate(void *sv) +void pfl_terminate(struct PortListener *pl) { - pfd_close((Socket)sv); + if (!pl) + return; + + sk_close(pl->s); + free_portlistener_state(pl); } -void pfd_unthrottle(Socket s) +void pfd_unthrottle(struct PortForwarding *pf) { - struct PFwdPrivate *pr; - if (!s) + if (!pf) return; - pr = (struct PFwdPrivate *) sk_get_private_ptr(s); - pr->throttled = 0; - sk_set_frozen(s, pr->throttled || pr->throttle_override); + pf->throttled = 0; + sk_set_frozen(pf->s, pf->throttled || pf->throttle_override); } -void pfd_override_throttle(Socket s, int enable) +void pfd_override_throttle(struct PortForwarding *pf, int enable) { - struct PFwdPrivate *pr; - if (!s) + if (!pf) return; - pr = (struct PFwdPrivate *) sk_get_private_ptr(s); - pr->throttle_override = enable; - sk_set_frozen(s, pr->throttled || pr->throttle_override); + pf->throttle_override = enable; + sk_set_frozen(pf->s, pf->throttled || pf->throttle_override); } /* * Called to send data down the raw connection. */ -int pfd_send(Socket s, char *data, int len) +int pfd_send(struct PortForwarding *pf, char *data, int len) { - if (s == NULL) + if (pf == NULL) return 0; - return sk_write(s, data, len); + return sk_write(pf->s, data, len); } -void pfd_send_eof(Socket s) +void pfd_send_eof(struct PortForwarding *pf) { - sk_write_eof(s); + sk_write_eof(pf->s); } -void pfd_confirm(Socket s) +void pfd_confirm(struct PortForwarding *pf) { - struct PFwdPrivate *pr; - - if (s == NULL) + if (pf == NULL) return; - pr = (struct PFwdPrivate *) sk_get_private_ptr(s); - pr->ready = 1; - sk_set_frozen(s, 0); - sk_write(s, NULL, 0); - if (pr->buffer) { - sshfwd_write(pr->c, pr->buffer, pr->buflen); - sfree(pr->buffer); - pr->buffer = NULL; + pf->ready = 1; + sk_set_frozen(pf->s, 0); + sk_write(pf->s, NULL, 0); + if (pf->buffer) { + sshfwd_write(pf->c, pf->buffer, pf->buflen); + sfree(pf->buffer); + pf->buffer = NULL; } } + +#ifdef MPEXT + +#include "puttyexp.h" + +int is_pfwd(void * handle) +{ + Plug fn = (Plug)handle; + return + ((*fn)->closing == pfd_closing) || + ((*fn)->closing == pfl_closing); +} + +void * get_pfwd_backend(void * handle) +{ + void * backend = NULL; + Plug fn = (Plug)handle; + if ((*fn)->closing == pfl_closing) + { + backend = ((struct PortListener *)handle)->backhandle; + } + else if ((*fn)->closing == pfd_closing) + { + backend = ((struct PortForwarding *)handle)->backhandle; + } + return backend; +} + +#endif diff --git a/source/putty/PORTFWD_.C b/source/putty/PORTFWD_.C deleted file mode 100644 index 7de108d6..00000000 --- a/source/putty/PORTFWD_.C +++ /dev/null @@ -1,20 +0,0 @@ -#include "portfwd.c" - -#include "puttyexp.h" - -int is_pfwd(void * handle) -{ - Plug fn = (Plug)handle; - return ((*fn)->closing == pfd_closing); -} - -int is_pfwd_listener(void * handle) -{ - Plug fn = (Plug)handle; - return ((*fn)->accepting == pfd_accepting); -} - -void * get_pfwd_backend(void * handle) -{ - return ((struct PFwdPrivate*)handle)->backhandle; -} diff --git a/source/putty/PROXY.C b/source/putty/PROXY.C index 9e428ace..facec4b5 100644 --- a/source/putty/PROXY.C +++ b/source/putty/PROXY.C @@ -142,18 +142,6 @@ static void sk_proxy_flush (Socket s) sk_flush(ps->sub_socket); } -static void sk_proxy_set_private_ptr (Socket s, void *ptr) -{ - Proxy_Socket ps = (Proxy_Socket) s; - sk_set_private_ptr(ps->sub_socket, ptr); -} - -static void * sk_proxy_get_private_ptr (Socket s) -{ - Proxy_Socket ps = (Proxy_Socket) s; - return sk_get_private_ptr(ps->sub_socket); -} - static void sk_proxy_set_frozen (Socket s, int is_frozen) { Proxy_Socket ps = (Proxy_Socket) s; @@ -261,24 +249,26 @@ static void plug_proxy_sent (Plug p, int bufsize) plug_sent(ps->plug, bufsize); } -static int plug_proxy_accepting (Plug p, OSSocket sock) +static int plug_proxy_accepting(Plug p, + accept_fn_t constructor, accept_ctx_t ctx) { Proxy_Plug pp = (Proxy_Plug) p; Proxy_Socket ps = pp->proxy_socket; if (ps->state != PROXY_STATE_ACTIVE) { - ps->accepting_sock = sock; + ps->accepting_constructor = constructor; + ps->accepting_ctx = ctx; return ps->negotiate(ps, PROXY_CHANGE_ACCEPTING); } - return plug_accepting(ps->plug, sock); + return plug_accepting(ps->plug, constructor, ctx); } /* * This function can accept a NULL pointer as `addr', in which case * it will only check the host name. */ -static int proxy_for_destination (SockAddr addr, const char *hostname, - int port, Conf *conf) +int proxy_for_destination (SockAddr addr, const char *hostname, + int port, Conf *conf) { int s = 0, e = 0; char hostip[64]; @@ -397,10 +387,9 @@ Socket new_connection(SockAddr addr, char *hostname, sk_proxy_write_oob, sk_proxy_write_eof, sk_proxy_flush, - sk_proxy_set_private_ptr, - sk_proxy_get_private_ptr, sk_proxy_set_frozen, - sk_proxy_socket_error + sk_proxy_socket_error, + NULL, /* peer_info */ }; static const struct plug_function_table plug_fn_table = { @@ -625,7 +614,8 @@ int proxy_http_negotiate (Proxy_Socket p, int change) * what should we do? close the socket with an appropriate * error message? */ - return plug_accepting(p->plug, p->accepting_sock); + return plug_accepting(p->plug, + p->accepting_constructor, p->accepting_ctx); } if (change == PROXY_CHANGE_RECEIVE) { @@ -827,7 +817,8 @@ int proxy_socks4_negotiate (Proxy_Socket p, int change) * what should we do? close the socket with an appropriate * error message? */ - return plug_accepting(p->plug, p->accepting_sock); + return plug_accepting(p->plug, + p->accepting_constructor, p->accepting_ctx); } if (change == PROXY_CHANGE_RECEIVE) { @@ -966,7 +957,8 @@ int proxy_socks5_negotiate (Proxy_Socket p, int change) * what should we do? close the socket with an appropriate * error message? */ - return plug_accepting(p->plug, p->accepting_sock); + return plug_accepting(p->plug, + p->accepting_constructor, p->accepting_ctx); } if (change == PROXY_CHANGE_RECEIVE) { @@ -1504,7 +1496,8 @@ int proxy_telnet_negotiate (Proxy_Socket p, int change) * what should we do? close the socket with an appropriate * error message? */ - return plug_accepting(p->plug, p->accepting_sock); + return plug_accepting(p->plug, + p->accepting_constructor, p->accepting_ctx); } if (change == PROXY_CHANGE_RECEIVE) { diff --git a/source/putty/PROXY.H b/source/putty/PROXY.H index 10a8c677..12b47e16 100644 --- a/source/putty/PROXY.H +++ b/source/putty/PROXY.H @@ -78,7 +78,8 @@ struct Socket_proxy_tag { int sent_bufsize; /* accepting */ - OSSocket accepting_sock; + accept_fn_t accepting_constructor; + accept_ctx_t accepting_ctx; /* configuration, used to look up proxy settings */ Conf *conf; diff --git a/source/putty/PUTTY.H b/source/putty/PUTTY.H index 98e1c373..dc363836 100644 --- a/source/putty/PUTTY.H +++ b/source/putty/PUTTY.H @@ -31,6 +31,8 @@ typedef struct terminal_tag Terminal; * Fingerprints of the PGP master keys that can be used to establish a trust * path between an executable and other files. */ +#define PGP_MASTER_KEY_FP \ + "440D E3B5 B7A1 CA85 B3CC 1718 AB58 5DC6 0467 6F7C" #define PGP_RSA_MASTER_KEY_FP \ "8F 15 97 DA 25 30 AB 0D 88 D1 92 54 11 CF 0C 4C" #define PGP_DSA_MASTER_KEY_FP \ @@ -839,12 +841,22 @@ void cleanup_exit(int); X(INT, NONE, sshbug_ignore2) \ X(INT, NONE, sshbug_oldgex2) \ X(INT, NONE, sshbug_winadj) \ + X(INT, NONE, sshbug_chanreq) \ /* \ * ssh_simple means that we promise never to open any channel \ * other than the main one, which means it can safely use a very \ * large window in SSH-2. \ */ \ X(INT, NONE, ssh_simple) \ + X(INT, NONE, ssh_connection_sharing) \ + X(INT, NONE, ssh_connection_sharing_upstream) \ + X(INT, NONE, ssh_connection_sharing_downstream) \ + /* + * ssh_manual_hostkeys is conceptually a set rather than a + * dictionary: the string subkeys are the important thing, and the + * actual values to which those subkeys map are all "". + */ \ + X(STR, STR, ssh_manual_hostkeys) \ /* Options for pterm. Should split out into platform-dependent part. */ \ X(INT, NONE, stamp_utmp) \ X(INT, NONE, login_shell) \ @@ -1022,7 +1034,8 @@ struct logblank_t { void log_packet(void *logctx, int direction, int type, char *texttype, const void *data, int len, int n_blanks, const struct logblank_t *blanks, - const unsigned long *sequence); + const unsigned long *sequence, + unsigned downstream_id, const char *additional_log_text); /* * Exports from testback.c @@ -1300,6 +1313,7 @@ int filename_serialise(const Filename *f, void *data); Filename *filename_deserialise(void *data, int maxsize, int *used); char *get_username(void); /* return value needs freeing */ char *get_random_data(int bytes); /* used in cmdgen.c */ +char filename_char_sanitise(char c); /* rewrite special pathname chars */ /* * Exports and imports from timing.c. @@ -1439,12 +1453,14 @@ void request_callback_notifications(toplevel_callback_notify_fn_t notify, #endif /* SURROGATE PAIR */ -#ifndef IS_HIGH_SURROGATE #define HIGH_SURROGATE_START 0xd800 #define HIGH_SURROGATE_END 0xdbff #define LOW_SURROGATE_START 0xdc00 #define LOW_SURROGATE_END 0xdfff +/* These macros exist in the Windows API, so the environment may + * provide them. If not, define them in terms of the above. */ +#ifndef IS_HIGH_SURROGATE #define IS_HIGH_SURROGATE(wch) (((wch) >= HIGH_SURROGATE_START) && \ ((wch) <= HIGH_SURROGATE_END)) #define IS_LOW_SURROGATE(wch) (((wch) >= LOW_SURROGATE_START) && \ @@ -1480,4 +1496,5 @@ void putty_finalize(); // but known to get UTF-8 encoded component (currently private key path only) #define MPEXT_BOM "\xEF\xBB\xBF" #endif + #endif diff --git a/source/putty/PUTTYEXP.H b/source/putty/PUTTYEXP.H index e0fe3e0c..f388c069 100644 --- a/source/putty/PUTTYEXP.H +++ b/source/putty/PUTTYEXP.H @@ -31,7 +31,6 @@ void md5checksum(const char * buffer, int len, unsigned char output[16]); // from portfwd.c int is_pfwd(void * handle); -int is_pfwd_listener(void * handle); void * get_pfwd_backend(void * handle); // for winstore.c @@ -76,4 +75,8 @@ void call_sha1_key_internal(void * handle, unsigned char * key, int len); void win_misc_cleanup(); +// from misc.c + +const char * get_putty_version(); + #endif diff --git a/source/putty/SSH.C b/source/putty/SSH.C index 2c8fd622..47886478 100644 --- a/source/putty/SSH.C +++ b/source/putty/SSH.C @@ -24,106 +24,6 @@ #define TRUE 1 #endif -#define SSH1_MSG_DISCONNECT 1 /* 0x1 */ -#define SSH1_SMSG_PUBLIC_KEY 2 /* 0x2 */ -#define SSH1_CMSG_SESSION_KEY 3 /* 0x3 */ -#define SSH1_CMSG_USER 4 /* 0x4 */ -#define SSH1_CMSG_AUTH_RSA 6 /* 0x6 */ -#define SSH1_SMSG_AUTH_RSA_CHALLENGE 7 /* 0x7 */ -#define SSH1_CMSG_AUTH_RSA_RESPONSE 8 /* 0x8 */ -#define SSH1_CMSG_AUTH_PASSWORD 9 /* 0x9 */ -#define SSH1_CMSG_REQUEST_PTY 10 /* 0xa */ -#define SSH1_CMSG_WINDOW_SIZE 11 /* 0xb */ -#define SSH1_CMSG_EXEC_SHELL 12 /* 0xc */ -#define SSH1_CMSG_EXEC_CMD 13 /* 0xd */ -#define SSH1_SMSG_SUCCESS 14 /* 0xe */ -#define SSH1_SMSG_FAILURE 15 /* 0xf */ -#define SSH1_CMSG_STDIN_DATA 16 /* 0x10 */ -#define SSH1_SMSG_STDOUT_DATA 17 /* 0x11 */ -#define SSH1_SMSG_STDERR_DATA 18 /* 0x12 */ -#define SSH1_CMSG_EOF 19 /* 0x13 */ -#define SSH1_SMSG_EXIT_STATUS 20 /* 0x14 */ -#define SSH1_MSG_CHANNEL_OPEN_CONFIRMATION 21 /* 0x15 */ -#define SSH1_MSG_CHANNEL_OPEN_FAILURE 22 /* 0x16 */ -#define SSH1_MSG_CHANNEL_DATA 23 /* 0x17 */ -#define SSH1_MSG_CHANNEL_CLOSE 24 /* 0x18 */ -#define SSH1_MSG_CHANNEL_CLOSE_CONFIRMATION 25 /* 0x19 */ -#define SSH1_SMSG_X11_OPEN 27 /* 0x1b */ -#define SSH1_CMSG_PORT_FORWARD_REQUEST 28 /* 0x1c */ -#define SSH1_MSG_PORT_OPEN 29 /* 0x1d */ -#define SSH1_CMSG_AGENT_REQUEST_FORWARDING 30 /* 0x1e */ -#define SSH1_SMSG_AGENT_OPEN 31 /* 0x1f */ -#define SSH1_MSG_IGNORE 32 /* 0x20 */ -#define SSH1_CMSG_EXIT_CONFIRMATION 33 /* 0x21 */ -#define SSH1_CMSG_X11_REQUEST_FORWARDING 34 /* 0x22 */ -#define SSH1_CMSG_AUTH_RHOSTS_RSA 35 /* 0x23 */ -#define SSH1_MSG_DEBUG 36 /* 0x24 */ -#define SSH1_CMSG_REQUEST_COMPRESSION 37 /* 0x25 */ -#define SSH1_CMSG_AUTH_TIS 39 /* 0x27 */ -#define SSH1_SMSG_AUTH_TIS_CHALLENGE 40 /* 0x28 */ -#define SSH1_CMSG_AUTH_TIS_RESPONSE 41 /* 0x29 */ -#define SSH1_CMSG_AUTH_CCARD 70 /* 0x46 */ -#define SSH1_SMSG_AUTH_CCARD_CHALLENGE 71 /* 0x47 */ -#define SSH1_CMSG_AUTH_CCARD_RESPONSE 72 /* 0x48 */ - -#define SSH1_AUTH_RHOSTS 1 /* 0x1 */ -#define SSH1_AUTH_RSA 2 /* 0x2 */ -#define SSH1_AUTH_PASSWORD 3 /* 0x3 */ -#define SSH1_AUTH_RHOSTS_RSA 4 /* 0x4 */ -#define SSH1_AUTH_TIS 5 /* 0x5 */ -#define SSH1_AUTH_CCARD 16 /* 0x10 */ - -#define SSH1_PROTOFLAG_SCREEN_NUMBER 1 /* 0x1 */ -/* Mask for protoflags we will echo back to server if seen */ -#define SSH1_PROTOFLAGS_SUPPORTED 0 /* 0x1 */ - -#define SSH2_MSG_DISCONNECT 1 /* 0x1 */ -#define SSH2_MSG_IGNORE 2 /* 0x2 */ -#define SSH2_MSG_UNIMPLEMENTED 3 /* 0x3 */ -#define SSH2_MSG_DEBUG 4 /* 0x4 */ -#define SSH2_MSG_SERVICE_REQUEST 5 /* 0x5 */ -#define SSH2_MSG_SERVICE_ACCEPT 6 /* 0x6 */ -#define SSH2_MSG_KEXINIT 20 /* 0x14 */ -#define SSH2_MSG_NEWKEYS 21 /* 0x15 */ -#define SSH2_MSG_KEXDH_INIT 30 /* 0x1e */ -#define SSH2_MSG_KEXDH_REPLY 31 /* 0x1f */ -#define SSH2_MSG_KEX_DH_GEX_REQUEST_OLD 30 /* 0x1e */ -#define SSH2_MSG_KEX_DH_GEX_REQUEST 34 /* 0x1e */ -#define SSH2_MSG_KEX_DH_GEX_GROUP 31 /* 0x1f */ -#define SSH2_MSG_KEX_DH_GEX_INIT 32 /* 0x20 */ -#define SSH2_MSG_KEX_DH_GEX_REPLY 33 /* 0x21 */ -#define SSH2_MSG_KEXRSA_PUBKEY 30 /* 0x1e */ -#define SSH2_MSG_KEXRSA_SECRET 31 /* 0x1f */ -#define SSH2_MSG_KEXRSA_DONE 32 /* 0x20 */ -#define SSH2_MSG_USERAUTH_REQUEST 50 /* 0x32 */ -#define SSH2_MSG_USERAUTH_FAILURE 51 /* 0x33 */ -#define SSH2_MSG_USERAUTH_SUCCESS 52 /* 0x34 */ -#define SSH2_MSG_USERAUTH_BANNER 53 /* 0x35 */ -#define SSH2_MSG_USERAUTH_PK_OK 60 /* 0x3c */ -#define SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ 60 /* 0x3c */ -#define SSH2_MSG_USERAUTH_INFO_REQUEST 60 /* 0x3c */ -#define SSH2_MSG_USERAUTH_INFO_RESPONSE 61 /* 0x3d */ -#define SSH2_MSG_GLOBAL_REQUEST 80 /* 0x50 */ -#define SSH2_MSG_REQUEST_SUCCESS 81 /* 0x51 */ -#define SSH2_MSG_REQUEST_FAILURE 82 /* 0x52 */ -#define SSH2_MSG_CHANNEL_OPEN 90 /* 0x5a */ -#define SSH2_MSG_CHANNEL_OPEN_CONFIRMATION 91 /* 0x5b */ -#define SSH2_MSG_CHANNEL_OPEN_FAILURE 92 /* 0x5c */ -#define SSH2_MSG_CHANNEL_WINDOW_ADJUST 93 /* 0x5d */ -#define SSH2_MSG_CHANNEL_DATA 94 /* 0x5e */ -#define SSH2_MSG_CHANNEL_EXTENDED_DATA 95 /* 0x5f */ -#define SSH2_MSG_CHANNEL_EOF 96 /* 0x60 */ -#define SSH2_MSG_CHANNEL_CLOSE 97 /* 0x61 */ -#define SSH2_MSG_CHANNEL_REQUEST 98 /* 0x62 */ -#define SSH2_MSG_CHANNEL_SUCCESS 99 /* 0x63 */ -#define SSH2_MSG_CHANNEL_FAILURE 100 /* 0x64 */ -#define SSH2_MSG_USERAUTH_GSSAPI_RESPONSE 60 -#define SSH2_MSG_USERAUTH_GSSAPI_TOKEN 61 -#define SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE 63 -#define SSH2_MSG_USERAUTH_GSSAPI_ERROR 64 -#define SSH2_MSG_USERAUTH_GSSAPI_ERRTOK 65 -#define SSH2_MSG_USERAUTH_GSSAPI_MIC 66 - /* * Packet type contexts, so that ssh2_pkt_type can correctly decode * the ambiguous type numbers back into the correct type strings. @@ -142,22 +42,6 @@ typedef enum { SSH2_PKTCTX_KBDINTER } Pkt_ACtx; -#define SSH2_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT 1 /* 0x1 */ -#define SSH2_DISCONNECT_PROTOCOL_ERROR 2 /* 0x2 */ -#define SSH2_DISCONNECT_KEY_EXCHANGE_FAILED 3 /* 0x3 */ -#define SSH2_DISCONNECT_HOST_AUTHENTICATION_FAILED 4 /* 0x4 */ -#define SSH2_DISCONNECT_MAC_ERROR 5 /* 0x5 */ -#define SSH2_DISCONNECT_COMPRESSION_ERROR 6 /* 0x6 */ -#define SSH2_DISCONNECT_SERVICE_NOT_AVAILABLE 7 /* 0x7 */ -#define SSH2_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED 8 /* 0x8 */ -#define SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE 9 /* 0x9 */ -#define SSH2_DISCONNECT_CONNECTION_LOST 10 /* 0xa */ -#define SSH2_DISCONNECT_BY_APPLICATION 11 /* 0xb */ -#define SSH2_DISCONNECT_TOO_MANY_CONNECTIONS 12 /* 0xc */ -#define SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER 13 /* 0xd */ -#define SSH2_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE 14 /* 0xe */ -#define SSH2_DISCONNECT_ILLEGAL_USER_NAME 15 /* 0xf */ - static const char *const ssh2_disconnect_reasons[] = { NULL, "host not allowed to connect", @@ -177,13 +61,6 @@ static const char *const ssh2_disconnect_reasons[] = { "illegal user name", }; -#define SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED 1 /* 0x1 */ -#define SSH2_OPEN_CONNECT_FAILED 2 /* 0x2 */ -#define SSH2_OPEN_UNKNOWN_CHANNEL_TYPE 3 /* 0x3 */ -#define SSH2_OPEN_RESOURCE_SHORTAGE 4 /* 0x4 */ - -#define SSH2_EXTENDED_DATA_STDERR 1 /* 0x1 */ - /* * Various remote-bug flags. */ @@ -198,6 +75,7 @@ static const char *const ssh2_disconnect_reasons[] = { #define BUG_SSH2_MAXPKT 256 #define BUG_CHOKES_ON_SSH2_IGNORE 512 #define BUG_CHOKES_ON_WINADJ 1024 +#define BUG_SENDS_LATE_REQUEST_REPLY 2048 #define BUG_SSH2_OLDGEX 4096 #define DH_MIN_SIZE 1024 @@ -411,9 +289,6 @@ static char *ssh2_pkt_type(Pkt_KCtx pkt_kctx, Pkt_ACtx pkt_actx, int type) /* Enumeration values for fields in SSH-1 packets */ enum { PKT_END, PKT_INT, PKT_CHAR, PKT_DATA, PKT_STR, PKT_BIGNUM, - /* These values are for communicating relevant semantics of - * fields to the packet logging code. */ - PKTT_OTHER, PKTT_PASSWORD, PKTT_DATA }; /* @@ -460,7 +335,6 @@ enum { #define crWaitUntil(c) do { crReturn(0); } while (!(c)) #define crWaitUntilV(c) do { crReturnV; } while (!(c)) -typedef struct ssh_tag *Ssh; struct Packet; static struct Packet *ssh1_pkt_init(int pkt_type); @@ -486,6 +360,7 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, struct Packet *pktin); static void ssh2_channel_check_close(struct ssh_channel *c); static void ssh_channel_destroy(struct ssh_channel *c); +static void ssh2_msg_something_unimplemented(Ssh ssh, struct Packet *pktin); /* * Buffer management constants. There are several of these for @@ -570,6 +445,14 @@ enum { /* channel types */ CHAN_AGENT, CHAN_SOCKDATA, CHAN_SOCKDATA_DORMANT, /* one the remote hasn't confirmed */ + /* + * CHAN_SHARING indicates a channel which is tracked here on + * behalf of a connection-sharing downstream. We do almost nothing + * with these channels ourselves: all messages relating to them + * get thrown straight to sshshare.c and passed on almost + * unmodified to downstream. + */ + CHAN_SHARING, /* * CHAN_ZOMBIE is used to indicate a channel for which we've * already destroyed the local data source: for instance, if a @@ -675,11 +558,15 @@ struct ssh_channel { int outstanding_requests; } a; struct ssh_x11_channel { - Socket s; + struct X11Connection *xconn; + int initial; } x11; struct ssh_pfd_channel { - Socket s; + struct PortForwarding *pf; } pfd; + struct ssh_sharing_channel { + void *ctx; + } sharing; } u; }; @@ -714,12 +601,21 @@ struct ssh_portfwd; /* forward declaration */ struct ssh_rportfwd { unsigned sport, dport; - char dhost[256]; + char *shost, *dhost; char *sportdesc; + void *share_ctx; struct ssh_portfwd *pfrec; }; -#define free_rportfwd(pf) ( \ - ((pf) ? (sfree((pf)->sportdesc)) : (void)0 ), sfree(pf) ) + +static void free_rportfwd(struct ssh_rportfwd *pf) +{ + if (pf) { + sfree(pf->sportdesc); + sfree(pf->shost); + sfree(pf->dhost); + sfree(pf); + } +} /* * Separately to the rportfwd tree (which is for looking up port @@ -736,37 +632,63 @@ struct ssh_portfwd { char *sserv, *dserv; struct ssh_rportfwd *remote; int addressfamily; - void *local; + struct PortListener *local; }; #define free_portfwd(pf) ( \ ((pf) ? (sfree((pf)->saddr), sfree((pf)->daddr), \ sfree((pf)->sserv), sfree((pf)->dserv)) : (void)0 ), sfree(pf) ) struct Packet { - long length; /* length of `data' actually used */ + long length; /* length of packet: see below */ long forcepad; /* SSH-2: force padding to at least this length */ int type; /* only used for incoming packets */ unsigned long sequence; /* SSH-2 incoming sequence number */ unsigned char *data; /* allocated storage */ unsigned char *body; /* offset of payload within `data' */ - long savedpos; /* temporary index into `data' (for strings) */ + long savedpos; /* dual-purpose saved packet position: see below */ long maxlen; /* amount of storage allocated for `data' */ long encrypted_len; /* for SSH-2 total-size counting */ /* - * State associated with packet logging + * A note on the 'length' and 'savedpos' fields above. + * + * Incoming packets are set up so that pkt->length is measured + * relative to pkt->body, which itself points to a few bytes after + * pkt->data (skipping some uninteresting header fields including + * the packet type code). The ssh_pkt_get* functions all expect + * this setup, and they also use pkt->savedpos to indicate how far + * through the packet being decoded they've got - and that, too, + * is an offset from pkt->body rather than pkt->data. + * + * During construction of an outgoing packet, however, pkt->length + * is measured relative to the base pointer pkt->data, and + * pkt->body is not really used for anything until the packet is + * ready for sending. In this mode, pkt->savedpos is reused as a + * temporary variable by the addstring functions, which write out + * a string length field and then keep going back and updating it + * as more data is appended to the subsequent string data field; + * pkt->savedpos stores the offset (again relative to pkt->data) + * of the start of the string data field. */ - int logmode; - int nblanks; - struct logblank_t *blanks; + + /* Extra metadata used in SSH packet logging mode, allowing us to + * log in the packet header line that the packet came from a + * connection-sharing downstream and what if anything unusual was + * done to it. The additional_log_text field is expected to be a + * static string - it will not be freed. */ + unsigned downstream_id; + const char *additional_log_text; }; static void ssh1_protocol(Ssh ssh, void *vin, int inlen, struct Packet *pktin); static void ssh2_protocol(Ssh ssh, void *vin, int inlen, struct Packet *pktin); +static void ssh2_bare_connection_protocol(Ssh ssh, void *vin, int inlen, + struct Packet *pktin); static void ssh1_protocol_setup(Ssh ssh); static void ssh2_protocol_setup(Ssh ssh); +static void ssh2_bare_connection_protocol_setup(Ssh ssh); static void ssh_size(void *handle, int width, int height); static void ssh_special(void *handle, Telnet_Special); static int ssh2_try_send(struct ssh_channel *c); @@ -800,6 +722,14 @@ struct rdpkt2_state_tag { struct Packet *pktin; }; +struct rdpkt2_bare_state_tag { + char length[4]; + long packetlen; + int i; + unsigned long incoming_sequence; + struct Packet *pktin; +}; + struct queued_handler; struct queued_handler { int msg1, msg2; @@ -843,6 +773,10 @@ struct ssh_tag { int v2_session_id_len; void *kex_ctx; + int bare_connection; + int attempting_connshare; + void *connshare; + char *savedhost; int savedport; int send_ok; @@ -894,6 +828,8 @@ struct ssh_tag { Pkt_ACtx pkt_actx; struct X11Display *x11disp; + struct X11FakeAuth *x11auth; + tree234 *x11authtree; int version; int conn_throttle_count; @@ -904,6 +840,7 @@ struct ssh_tag { int ssh1_rdpkt_crstate; int ssh2_rdpkt_crstate; + int ssh2_bare_rdpkt_crstate; int ssh_gotdata_crstate; int do_ssh1_connection_crstate; @@ -911,9 +848,11 @@ struct ssh_tag { void *do_ssh1_login_state; void *do_ssh2_transport_state; void *do_ssh2_authconn_state; + void *do_ssh_connection_init_state; struct rdpkt1_state_tag rdpkt1_state; struct rdpkt2_state_tag rdpkt2_state; + struct rdpkt2_bare_state_tag rdpkt2_bare_state; /* SSH-1 and SSH-2 use this for different things, but both use it */ int protocol_initial_phase_done; @@ -921,6 +860,7 @@ struct ssh_tag { void (*protocol) (Ssh ssh, void *vin, int inlen, struct Packet *pkt); struct Packet *(*s_rdpkt) (Ssh ssh, unsigned char **data, int *datalen); + int (*do_ssh_init)(Ssh ssh, unsigned char c); /* * We maintain our own copy of a Conf structure here. That way, @@ -1029,25 +969,6 @@ static void bomb_out(Ssh ssh, char *text) #define bombout(msg) bomb_out(ssh, dupprintf msg) -/* Functions to leave bits out of the SSH packet log file. */ - -static void dont_log_password(Ssh ssh, struct Packet *pkt, int blanktype) -{ - if (conf_get_int(ssh->conf, CONF_logomitpass)) - pkt->logmode = blanktype; -} - -static void dont_log_data(Ssh ssh, struct Packet *pkt, int blanktype) -{ - if (ssh->logomitdata) - pkt->logmode = blanktype; -} - -static void end_log_omission(Ssh ssh, struct Packet *pkt) -{ - pkt->logmode = PKTLOG_EMIT; -} - /* Helper function for common bits of parsing ttymodes. */ static void parse_ttymodes(Ssh ssh, void (*do_mode)(void *data, char *mode, char *val), @@ -1113,7 +1034,9 @@ static int ssh_rportcmp_ssh2(void *av, void *bv) { struct ssh_rportfwd *a = (struct ssh_rportfwd *) av; struct ssh_rportfwd *b = (struct ssh_rportfwd *) bv; - + int i; + if ( (i = strcmp(a->shost, b->shost)) != 0) + return i < 0 ? -1 : +1; if (a->sport > b->sport) return +1; if (a->sport < b->sport) @@ -1248,13 +1171,119 @@ static struct Packet *ssh_new_packet(void) pkt->body = pkt->data = NULL; pkt->maxlen = 0; - pkt->logmode = PKTLOG_EMIT; - pkt->nblanks = 0; - pkt->blanks = NULL; return pkt; } +static void ssh1_log_incoming_packet(Ssh ssh, struct Packet *pkt) +{ + int nblanks = 0; + struct logblank_t blanks[4]; + char *str; + int slen; + + pkt->savedpos = 0; + + if (ssh->logomitdata && + (pkt->type == SSH1_SMSG_STDOUT_DATA || + pkt->type == SSH1_SMSG_STDERR_DATA || + pkt->type == SSH1_MSG_CHANNEL_DATA)) { + /* "Session data" packets - omit the data string. */ + if (pkt->type == SSH1_MSG_CHANNEL_DATA) + ssh_pkt_getuint32(pkt); /* skip channel id */ + blanks[nblanks].offset = pkt->savedpos + 4; + blanks[nblanks].type = PKTLOG_OMIT; + ssh_pkt_getstring(pkt, &str, &slen); + if (str) { + blanks[nblanks].len = slen; + nblanks++; + } + } + log_packet(ssh->logctx, PKT_INCOMING, pkt->type, + ssh1_pkt_type(pkt->type), + pkt->body, pkt->length, nblanks, blanks, NULL, + 0, NULL); +} + +static void ssh1_log_outgoing_packet(Ssh ssh, struct Packet *pkt) +{ + int nblanks = 0; + struct logblank_t blanks[4]; + char *str; + int slen; + + /* + * For outgoing packets, pkt->length represents the length of the + * whole packet starting at pkt->data (including some header), and + * pkt->body refers to the point within that where the log-worthy + * payload begins. However, incoming packets expect pkt->length to + * represent only the payload length (that is, it's measured from + * pkt->body not from pkt->data). Temporarily adjust our outgoing + * packet to conform to the incoming-packet semantics, so that we + * can analyse it with the ssh_pkt_get functions. + */ + pkt->length -= (pkt->body - pkt->data); + pkt->savedpos = 0; + + if (ssh->logomitdata && + (pkt->type == SSH1_CMSG_STDIN_DATA || + pkt->type == SSH1_MSG_CHANNEL_DATA)) { + /* "Session data" packets - omit the data string. */ + if (pkt->type == SSH1_MSG_CHANNEL_DATA) + ssh_pkt_getuint32(pkt); /* skip channel id */ + blanks[nblanks].offset = pkt->savedpos + 4; + blanks[nblanks].type = PKTLOG_OMIT; + ssh_pkt_getstring(pkt, &str, &slen); + if (str) { + blanks[nblanks].len = slen; + nblanks++; + } + } + + if ((pkt->type == SSH1_CMSG_AUTH_PASSWORD || + pkt->type == SSH1_CMSG_AUTH_TIS_RESPONSE || + pkt->type == SSH1_CMSG_AUTH_CCARD_RESPONSE) && + conf_get_int(ssh->conf, CONF_logomitpass)) { + /* If this is a password or similar packet, blank the password(s). */ + blanks[nblanks].offset = 0; + blanks[nblanks].len = pkt->length; + blanks[nblanks].type = PKTLOG_BLANK; + nblanks++; + } else if (pkt->type == SSH1_CMSG_X11_REQUEST_FORWARDING && + conf_get_int(ssh->conf, CONF_logomitpass)) { + /* + * If this is an X forwarding request packet, blank the fake + * auth data. + * + * Note that while we blank the X authentication data here, we + * don't take any special action to blank the start of an X11 + * channel, so using MIT-MAGIC-COOKIE-1 and actually opening + * an X connection without having session blanking enabled is + * likely to leak your cookie into the log. + */ + pkt->savedpos = 0; + ssh_pkt_getstring(pkt, &str, &slen); + blanks[nblanks].offset = pkt->savedpos; + blanks[nblanks].type = PKTLOG_BLANK; + ssh_pkt_getstring(pkt, &str, &slen); + if (str) { + blanks[nblanks].len = pkt->savedpos - blanks[nblanks].offset; + nblanks++; + } + } + + log_packet(ssh->logctx, PKT_OUTGOING, pkt->data[12], + ssh1_pkt_type(pkt->data[12]), + pkt->body, pkt->length, + nblanks, blanks, NULL, 0, NULL); + + /* + * Undo the above adjustment of pkt->length, to put the packet + * back in the state we found it. + */ + pkt->length += (pkt->body - pkt->data); +} + /* * Collect incoming data in the incoming packet buffer. * Decipher and verify the packet when it is completely read. @@ -1328,7 +1357,6 @@ static struct Packet *ssh1_rdpkt(Ssh ssh, unsigned char **data, int *datalen) } st->pktin->body = st->pktin->data + st->pad + 1; - st->pktin->savedpos = 0; if (ssh->v1_compressing) { unsigned char *decompblk; @@ -1357,37 +1385,167 @@ static struct Packet *ssh1_rdpkt(Ssh ssh, unsigned char **data, int *datalen) st->pktin->type = st->pktin->body[-1]; /* - * Log incoming packet, possibly omitting sensitive fields. + * Now pktin->body and pktin->length identify the semantic content + * of the packet, excluding the initial type byte. */ - if (ssh->logctx) { - int nblanks = 0; - struct logblank_t blank; - if (ssh->logomitdata) { - int do_blank = FALSE, blank_prefix = 0; - /* "Session data" packets - omit the data field */ - if ((st->pktin->type == SSH1_SMSG_STDOUT_DATA) || - (st->pktin->type == SSH1_SMSG_STDERR_DATA)) { - do_blank = TRUE; blank_prefix = 4; - } else if (st->pktin->type == SSH1_MSG_CHANNEL_DATA) { - do_blank = TRUE; blank_prefix = 8; - } - if (do_blank) { - blank.offset = blank_prefix; - blank.len = st->pktin->length; - blank.type = PKTLOG_OMIT; - nblanks = 1; - } - } - log_packet(ssh->logctx, - PKT_INCOMING, st->pktin->type, - ssh1_pkt_type(st->pktin->type), - st->pktin->body, st->pktin->length, - nblanks, &blank, NULL); - } + + if (ssh->logctx) + ssh1_log_incoming_packet(ssh, st->pktin); + + st->pktin->savedpos = 0; crFinish(st->pktin); } +static void ssh2_log_incoming_packet(Ssh ssh, struct Packet *pkt) +{ + int nblanks = 0; + struct logblank_t blanks[4]; + char *str; + int slen; + + pkt->savedpos = 0; + + if (ssh->logomitdata && + (pkt->type == SSH2_MSG_CHANNEL_DATA || + pkt->type == SSH2_MSG_CHANNEL_EXTENDED_DATA)) { + /* "Session data" packets - omit the data string. */ + ssh_pkt_getuint32(pkt); /* skip channel id */ + if (pkt->type == SSH2_MSG_CHANNEL_EXTENDED_DATA) + ssh_pkt_getuint32(pkt); /* skip extended data type */ + blanks[nblanks].offset = pkt->savedpos + 4; + blanks[nblanks].type = PKTLOG_OMIT; + ssh_pkt_getstring(pkt, &str, &slen); + if (str) { + blanks[nblanks].len = slen; + nblanks++; + } + } + + log_packet(ssh->logctx, PKT_INCOMING, pkt->type, + ssh2_pkt_type(ssh->pkt_kctx, ssh->pkt_actx, pkt->type), + pkt->body, pkt->length, nblanks, blanks, &pkt->sequence, + 0, NULL); +} + +static void ssh2_log_outgoing_packet(Ssh ssh, struct Packet *pkt) +{ + int nblanks = 0; + struct logblank_t blanks[4]; + char *str; + int slen; + + /* + * For outgoing packets, pkt->length represents the length of the + * whole packet starting at pkt->data (including some header), and + * pkt->body refers to the point within that where the log-worthy + * payload begins. However, incoming packets expect pkt->length to + * represent only the payload length (that is, it's measured from + * pkt->body not from pkt->data). Temporarily adjust our outgoing + * packet to conform to the incoming-packet semantics, so that we + * can analyse it with the ssh_pkt_get functions. + */ + pkt->length -= (pkt->body - pkt->data); + pkt->savedpos = 0; + + if (ssh->logomitdata && + (pkt->type == SSH2_MSG_CHANNEL_DATA || + pkt->type == SSH2_MSG_CHANNEL_EXTENDED_DATA)) { + /* "Session data" packets - omit the data string. */ + ssh_pkt_getuint32(pkt); /* skip channel id */ + if (pkt->type == SSH2_MSG_CHANNEL_EXTENDED_DATA) + ssh_pkt_getuint32(pkt); /* skip extended data type */ + blanks[nblanks].offset = pkt->savedpos + 4; + blanks[nblanks].type = PKTLOG_OMIT; + ssh_pkt_getstring(pkt, &str, &slen); + if (str) { + blanks[nblanks].len = slen; + nblanks++; + } + } + + if (pkt->type == SSH2_MSG_USERAUTH_REQUEST && + conf_get_int(ssh->conf, CONF_logomitpass)) { + /* If this is a password packet, blank the password(s). */ + pkt->savedpos = 0; + ssh_pkt_getstring(pkt, &str, &slen); + ssh_pkt_getstring(pkt, &str, &slen); + ssh_pkt_getstring(pkt, &str, &slen); + if (slen == 8 && !memcmp(str, "password", 8)) { + ssh2_pkt_getbool(pkt); + /* Blank the password field. */ + blanks[nblanks].offset = pkt->savedpos; + blanks[nblanks].type = PKTLOG_BLANK; + ssh_pkt_getstring(pkt, &str, &slen); + if (str) { + blanks[nblanks].len = pkt->savedpos - blanks[nblanks].offset; + nblanks++; + /* If there's another password field beyond it (change of + * password), blank that too. */ + ssh_pkt_getstring(pkt, &str, &slen); + if (str) + blanks[nblanks-1].len = + pkt->savedpos - blanks[nblanks].offset; + } + } + } else if (ssh->pkt_actx == SSH2_PKTCTX_KBDINTER && + pkt->type == SSH2_MSG_USERAUTH_INFO_RESPONSE && + conf_get_int(ssh->conf, CONF_logomitpass)) { + /* If this is a keyboard-interactive response packet, blank + * the responses. */ + pkt->savedpos = 0; + ssh_pkt_getuint32(pkt); + blanks[nblanks].offset = pkt->savedpos; + blanks[nblanks].type = PKTLOG_BLANK; + while (1) { + ssh_pkt_getstring(pkt, &str, &slen); + if (!str) + break; + } + blanks[nblanks].len = pkt->savedpos - blanks[nblanks].offset; + nblanks++; + } else if (pkt->type == SSH2_MSG_CHANNEL_REQUEST && + conf_get_int(ssh->conf, CONF_logomitpass)) { + /* + * If this is an X forwarding request packet, blank the fake + * auth data. + * + * Note that while we blank the X authentication data here, we + * don't take any special action to blank the start of an X11 + * channel, so using MIT-MAGIC-COOKIE-1 and actually opening + * an X connection without having session blanking enabled is + * likely to leak your cookie into the log. + */ + pkt->savedpos = 0; + ssh_pkt_getuint32(pkt); + ssh_pkt_getstring(pkt, &str, &slen); + if (slen == 7 && !memcmp(str, "x11-req", 0)) { + ssh2_pkt_getbool(pkt); + ssh2_pkt_getbool(pkt); + ssh_pkt_getstring(pkt, &str, &slen); + blanks[nblanks].offset = pkt->savedpos; + blanks[nblanks].type = PKTLOG_BLANK; + ssh_pkt_getstring(pkt, &str, &slen); + if (str) { + blanks[nblanks].len = pkt->savedpos - blanks[nblanks].offset; + nblanks++; + } + } + } + + log_packet(ssh->logctx, PKT_OUTGOING, pkt->data[5], + ssh2_pkt_type(ssh->pkt_kctx, ssh->pkt_actx, pkt->data[5]), + pkt->body, pkt->length, nblanks, blanks, + &ssh->v2_outgoing_sequence, + pkt->downstream_id, pkt->additional_log_text); + + /* + * Undo the above adjustment of pkt->length, to put the packet + * back in the state we found it. + */ + pkt->length += (pkt->body - pkt->data); +} + static struct Packet *ssh2_rdpkt(Ssh ssh, unsigned char **data, int *datalen) { struct rdpkt2_state_tag *st = &ssh->rdpkt2_state; @@ -1564,6 +1722,9 @@ static struct Packet *ssh2_rdpkt(Ssh ssh, unsigned char **data, int *datalen) st->pktin->sequence = st->incoming_sequence++; + st->pktin->length = st->packetlen - st->pad; + assert(st->pktin->length >= 0); + /* * Decompress packet payload. */ @@ -1586,38 +1747,88 @@ static struct Packet *ssh2_rdpkt(Ssh ssh, unsigned char **data, int *datalen) } } - st->pktin->savedpos = 6; - st->pktin->body = st->pktin->data; + /* + * RFC 4253 doesn't explicitly say that completely empty packets + * with no type byte are forbidden, so treat them as deserving + * an SSH_MSG_UNIMPLEMENTED. + */ + if (st->pktin->length <= 5) { /* == 5 we hope, but robustness */ + ssh2_msg_something_unimplemented(ssh, st->pktin); + crStop(NULL); + } + /* + * pktin->body and pktin->length should identify the semantic + * content of the packet, excluding the initial type byte. + */ st->pktin->type = st->pktin->data[5]; + st->pktin->body = st->pktin->data + 6; + st->pktin->length -= 6; + assert(st->pktin->length >= 0); /* one last double-check */ + + if (ssh->logctx) + ssh2_log_incoming_packet(ssh, st->pktin); + + st->pktin->savedpos = 0; + + crFinish(st->pktin); +} + +static struct Packet *ssh2_bare_connection_rdpkt(Ssh ssh, unsigned char **data, + int *datalen) +{ + struct rdpkt2_bare_state_tag *st = &ssh->rdpkt2_bare_state; + + crBegin(ssh->ssh2_bare_rdpkt_crstate); /* - * Log incoming packet, possibly omitting sensitive fields. + * Read the packet length field. */ - if (ssh->logctx) { - int nblanks = 0; - struct logblank_t blank; - if (ssh->logomitdata) { - int do_blank = FALSE, blank_prefix = 0; - /* "Session data" packets - omit the data field */ - if (st->pktin->type == SSH2_MSG_CHANNEL_DATA) { - do_blank = TRUE; blank_prefix = 8; - } else if (st->pktin->type == SSH2_MSG_CHANNEL_EXTENDED_DATA) { - do_blank = TRUE; blank_prefix = 12; - } - if (do_blank) { - blank.offset = blank_prefix; - blank.len = (st->pktin->length-6) - blank_prefix; - blank.type = PKTLOG_OMIT; - nblanks = 1; - } - } - log_packet(ssh->logctx, PKT_INCOMING, st->pktin->type, - ssh2_pkt_type(ssh->pkt_kctx, ssh->pkt_actx, - st->pktin->type), - st->pktin->data+6, st->pktin->length-6, - nblanks, &blank, &st->pktin->sequence); + for (st->i = 0; st->i < 4; st->i++) { + while ((*datalen) == 0) + crReturn(NULL); + st->length[st->i] = *(*data)++; + (*datalen)--; } + st->packetlen = toint(GET_32BIT_MSB_FIRST(st->length)); + if (st->packetlen <= 0 || st->packetlen >= OUR_V2_PACKETLIMIT) { + bombout(("Invalid packet length received")); + crStop(NULL); + } + + st->pktin = ssh_new_packet(); + st->pktin->data = snewn(st->packetlen, unsigned char); + + st->pktin->encrypted_len = st->packetlen; + + st->pktin->sequence = st->incoming_sequence++; + + /* + * Read the remainder of the packet. + */ + for (st->i = 0; st->i < st->packetlen; st->i++) { + while ((*datalen) == 0) + crReturn(NULL); + st->pktin->data[st->i] = *(*data)++; + (*datalen)--; + } + + /* + * pktin->body and pktin->length should identify the semantic + * content of the packet, excluding the initial type byte. + */ + st->pktin->type = st->pktin->data[0]; + st->pktin->body = st->pktin->data + 1; + st->pktin->length = st->packetlen - 1; + + /* + * Log incoming packet, possibly omitting sensitive fields. + */ + if (ssh->logctx) + ssh2_log_incoming_packet(ssh, st->pktin); + + st->pktin->savedpos = 0; + crFinish(st->pktin); } @@ -1637,12 +1848,7 @@ static int s_wrpkt_prepare(Ssh ssh, struct Packet *pkt, int *offset_p) int len; if (ssh->logctx) - log_packet(ssh->logctx, PKT_OUTGOING, pkt->data[12], - ssh1_pkt_type(pkt->data[12]), - pkt->body, pkt->length - (pkt->body - pkt->data), - pkt->nblanks, pkt->blanks, NULL); - sfree(pkt->blanks); pkt->blanks = NULL; - pkt->nblanks = 0; + ssh1_log_outgoing_packet(ssh, pkt); if (ssh->v1_compressing) { unsigned char *compblk; @@ -1681,7 +1887,9 @@ static int s_write(Ssh ssh, void *data, int len) { if (ssh->logctx) log_packet(ssh->logctx, PKT_OUTGOING, -1, NULL, data, len, - 0, NULL, NULL); + 0, NULL, NULL, 0, NULL); + if (!ssh->s) + return 0; return sk_write(ssh->s, (char *)data, len); } @@ -1754,16 +1962,6 @@ static struct Packet *construct_packet(Ssh ssh, int pkttype, va_list ap) bn = va_arg(ap, Bignum); ssh1_pkt_addmp(pkt, bn); break; - /* Tokens for modifications to packet logging */ - case PKTT_PASSWORD: - dont_log_password(ssh, pkt, PKTLOG_BLANK); - break; - case PKTT_DATA: - dont_log_data(ssh, pkt, PKTLOG_OMIT); - break; - case PKTT_OTHER: - end_log_omission(ssh, pkt); - break; } } @@ -1844,15 +2042,6 @@ static void ssh_pkt_ensure(struct Packet *pkt, int length) } static void ssh_pkt_adddata(struct Packet *pkt, const void *data, int len) { - if (pkt->logmode != PKTLOG_EMIT) { - pkt->nblanks++; - pkt->blanks = sresize(pkt->blanks, pkt->nblanks, struct logblank_t); - assert(pkt->body); - pkt->blanks[pkt->nblanks-1].offset = pkt->length - - (pkt->body - pkt->data); - pkt->blanks[pkt->nblanks-1].len = len; - pkt->blanks[pkt->nblanks-1].type = pkt->logmode; - } pkt->length += len; ssh_pkt_ensure(pkt, pkt->length); memcpy(pkt->data + pkt->length - len, data, len); @@ -1931,6 +2120,9 @@ static struct Packet *ssh1_pkt_init(int pkt_type) pkt->length = 4 + 8; /* space for length + max padding */ ssh_pkt_addbyte(pkt, pkt_type); pkt->body = pkt->data + pkt->length; + pkt->type = pkt_type; + pkt->downstream_id = 0; + pkt->additional_log_text = NULL; return pkt; } @@ -1949,8 +2141,11 @@ static struct Packet *ssh2_pkt_init(int pkt_type) struct Packet *pkt = ssh_new_packet(); pkt->length = 5; /* space for packet length + padding length */ pkt->forcepad = 0; + pkt->type = pkt_type; ssh_pkt_addbyte(pkt, (unsigned char) pkt_type); pkt->body = pkt->data + pkt->length; /* after packet type */ + pkt->downstream_id = 0; + pkt->additional_log_text = NULL; return pkt; } @@ -1964,12 +2159,18 @@ static int ssh2_pkt_construct(Ssh ssh, struct Packet *pkt) int cipherblk, maclen, padding, i; if (ssh->logctx) - log_packet(ssh->logctx, PKT_OUTGOING, pkt->data[5], - ssh2_pkt_type(ssh->pkt_kctx, ssh->pkt_actx, pkt->data[5]), - pkt->body, pkt->length - (pkt->body - pkt->data), - pkt->nblanks, pkt->blanks, &ssh->v2_outgoing_sequence); - sfree(pkt->blanks); pkt->blanks = NULL; - pkt->nblanks = 0; + ssh2_log_outgoing_packet(ssh, pkt); + + if (ssh->bare_connection) { + /* + * Trivial packet construction for the bare connection + * protocol. + */ + PUT_32BIT(pkt->data + 1, pkt->length - 5); + pkt->body = pkt->data + 1; + ssh->v2_outgoing_sequence++; /* only for diagnostics, really */ + return pkt->length - 1; + } /* * Compress packet payload. @@ -2020,6 +2221,7 @@ static int ssh2_pkt_construct(Ssh ssh, struct Packet *pkt) pkt->encrypted_len = pkt->length + padding; /* Ready-to-send packet starts at pkt->data. We return length. */ + pkt->body = pkt->data; return pkt->length + padding + maclen; } @@ -2077,7 +2279,7 @@ static void ssh2_pkt_send_noqueue(Ssh ssh, struct Packet *pkt) return; } len = ssh2_pkt_construct(ssh, pkt); - backlog = s_write(ssh, pkt->data, len); + backlog = s_write(ssh, pkt->body, len); if (backlog > SSH_MAX_BACKLOG) { ssh_throttle_all(ssh, 1, backlog); @@ -2085,6 +2287,7 @@ static void ssh2_pkt_send_noqueue(Ssh ssh, struct Packet *pkt) ssh->outgoing_data_size += pkt->encrypted_len; if (!ssh->kex_in_progress && + !ssh->bare_connection && ssh->max_data_size != 0 && ssh->outgoing_data_size > ssh->max_data_size) do_ssh2_transport(ssh, "too much data sent", -1, NULL); @@ -2116,7 +2319,7 @@ static void ssh2_pkt_defer_noqueue(Ssh ssh, struct Packet *pkt, int noignore) ssh->deferred_size, unsigned char); } - memcpy(ssh->deferred_send_data + ssh->deferred_len, pkt->data, len); + memcpy(ssh->deferred_send_data + ssh->deferred_len, pkt->body, len); ssh->deferred_len += len; ssh->deferred_data_size += pkt->encrypted_len; ssh_free_packet(pkt); @@ -2188,6 +2391,7 @@ static void ssh_pkt_defersend(Ssh ssh) ssh->outgoing_data_size += ssh->deferred_data_size; if (!ssh->kex_in_progress && + !ssh->bare_connection && ssh->max_data_size != 0 && ssh->outgoing_data_size > ssh->max_data_size) do_ssh2_transport(ssh, "too much data sent", -1, NULL); @@ -2569,9 +2773,9 @@ static void ssh_detect_bugs(Ssh ssh, char *vstring) if (conf_get_int(ssh->conf, CONF_sshbug_rsapad2) == FORCE_ON || (conf_get_int(ssh->conf, CONF_sshbug_rsapad2) == AUTO && (wc_match("OpenSSH_2.[5-9]*", imp) || - wc_match("OpenSSH_3.[0-2]*", imp) || - wc_match("mod_sftp/0.[0-8]*", imp) || - wc_match("mod_sftp/0.9.[0-8]", imp)))) { + wc_match("OpenSSH_3.[0-2]*", imp) || + wc_match("mod_sftp/0.[0-8]*", imp) || + wc_match("mod_sftp/0.9.[0-8]", imp)))) { /* * These versions have the SSH-2 RSA padding bug. */ @@ -2645,6 +2849,23 @@ static void ssh_detect_bugs(Ssh ssh, char *vstring) ssh->remote_bugs |= BUG_CHOKES_ON_WINADJ; logevent("We believe remote version has winadj bug"); } + + if (conf_get_int(ssh->conf, CONF_sshbug_chanreq) == FORCE_ON || + (conf_get_int(ssh->conf, CONF_sshbug_chanreq) == AUTO && + (wc_match("OpenSSH_[2-5].*", imp) || + wc_match("OpenSSH_6.[0-6]*", imp) || + wc_match("dropbear_0.[2-4][0-9]*", imp) || + wc_match("dropbear_0.5[01]*", imp)))) { + /* + * These versions have the SSH-2 channel request bug. + * OpenSSH 6.7 and above do not: + * https://bugzilla.mindrot.org/show_bug.cgi?id=1818 + * dropbear_0.52 and above do not: + * https://secure.ucc.asn.au/hg/dropbear/rev/cd02449b709c + */ + ssh->remote_bugs |= BUG_SENDS_LATE_REQUEST_REPLY; + logevent("We believe remote version has SSH-2 channel request bug"); + } } /* @@ -2653,11 +2874,7 @@ static void ssh_detect_bugs(Ssh ssh, char *vstring) */ static void ssh_fix_verstring(char *str) { - /* Eat "SSH--". */ - assert(*str == 'S'); str++; - assert(*str == 'S'); str++; - assert(*str == 'H'); str++; - assert(*str == '-'); str++; + /* Eat "-". */ while (*str && *str != '-') str++; assert(*str == '-'); str++; @@ -2673,7 +2890,7 @@ static void ssh_fix_verstring(char *str) /* * Send an appropriate SSH version string. */ -static void ssh_send_verstring(Ssh ssh, char *svers) +static void ssh_send_verstring(Ssh ssh, const char *protoname, char *svers) { char *verstring; @@ -2681,18 +2898,19 @@ static void ssh_send_verstring(Ssh ssh, char *svers) /* * Construct a v2 version string. */ - verstring = dupprintf("SSH-2.0-%s\015\012", sshver); + verstring = dupprintf("%s2.0-%s\015\012", protoname, sshver); } else { /* * Construct a v1 version string. */ + assert(!strcmp(protoname, "SSH-")); /* no v1 bare connection protocol */ verstring = dupprintf("SSH-%s-%s\012", (ssh_versioncmp(svers, "1.5") <= 0 ? svers : "1.5"), sshver); } - ssh_fix_verstring(verstring); + ssh_fix_verstring(verstring + strlen(protoname)); if (ssh->version == 2) { size_t len; @@ -2713,6 +2931,8 @@ static void ssh_send_verstring(Ssh ssh, char *svers) static int do_ssh_init(Ssh ssh, unsigned char c) { + static const char protoname[] = "SSH-"; + struct do_ssh_init_state { int crLine; int vslen; @@ -2726,15 +2946,13 @@ static int do_ssh_init(Ssh ssh, unsigned char c) crBeginState; - /* Search for a line beginning with the string "SSH-" in the input. */ + /* Search for a line beginning with the protocol name prefix in + * the input. */ for (;;) { - if (c != 'S') goto no; - crReturn(1); - if (c != 'S') goto no; - crReturn(1); - if (c != 'H') goto no; - crReturn(1); - if (c != '-') goto no; + for (s->i = 0; protoname[s->i]; s->i++) { + if ((char)c != protoname[s->i]) goto no; + crReturn(1); + } break; no: while (c != '\012') @@ -2742,13 +2960,12 @@ static int do_ssh_init(Ssh ssh, unsigned char c) crReturn(1); } - s->vstrsize = 16; + s->vstrsize = sizeof(protoname) + 16; s->vstring = snewn(s->vstrsize, char); - strcpy(s->vstring, "SSH-"); - s->vslen = 4; + strcpy(s->vstring, protoname); + s->vslen = strlen(protoname); s->i = 0; while (1) { - crReturn(1); /* get another char */ if (s->vslen >= s->vstrsize - 1) { s->vstrsize += 16; s->vstring = sresize(s->vstring, s->vstrsize, char); @@ -2762,6 +2979,7 @@ static int do_ssh_init(Ssh ssh, unsigned char c) s->version[s->i++] = c; } else if (c == '\012') break; + crReturn(1); /* get another char */ } ssh->agentfwd_enabled = FALSE; @@ -2782,11 +3000,13 @@ static int do_ssh_init(Ssh ssh, unsigned char c) s->proto2 = ssh_versioncmp(s->version, "1.99") >= 0; if (conf_get_int(ssh->conf, CONF_sshprot) == 0 && !s->proto1) { - bombout(("SSH protocol version 1 required by user but not provided by server")); + bombout(("SSH protocol version 1 required by configuration but " + "not provided by server")); crStop(0); } if (conf_get_int(ssh->conf, CONF_sshprot) == 3 && !s->proto2) { - bombout(("SSH protocol version 2 required by user but not provided by server")); + bombout(("SSH protocol version 2 required by configuration but " + "not provided by server")); crStop(0); } @@ -2799,7 +3019,7 @@ static int do_ssh_init(Ssh ssh, unsigned char c) /* Send the version string, if we haven't already */ if (conf_get_int(ssh->conf, CONF_sshprot) != 3) - ssh_send_verstring(ssh, s->version); + ssh_send_verstring(ssh, protoname, s->version); if (ssh->version == 2) { size_t len; @@ -2837,6 +3057,117 @@ static int do_ssh_init(Ssh ssh, unsigned char c) crFinish(0); } +static int do_ssh_connection_init(Ssh ssh, unsigned char c) +{ + /* + * Ordinary SSH begins with the banner "SSH-x.y-...". This is just + * the ssh-connection part, extracted and given a trivial binary + * packet protocol, so we replace 'SSH-' at the start with a new + * name. In proper SSH style (though of course this part of the + * proper SSH protocol _isn't_ subject to this kind of + * DNS-domain-based extension), we define the new name in our + * extension space. + */ + static const char protoname[] = + "SSHCONNECTION@putty.projects.tartarus.org-"; + + struct do_ssh_connection_init_state { + int crLine; + int vslen; + char version[10]; + char *vstring; + int vstrsize; + int i; + }; + crState(do_ssh_connection_init_state); + + crBeginState; + + /* Search for a line beginning with the protocol name prefix in + * the input. */ + for (;;) { + for (s->i = 0; protoname[s->i]; s->i++) { + if ((char)c != protoname[s->i]) goto no; + crReturn(1); + } + break; + no: + while (c != '\012') + crReturn(1); + crReturn(1); + } + + s->vstrsize = sizeof(protoname) + 16; + s->vstring = snewn(s->vstrsize, char); + strcpy(s->vstring, protoname); + s->vslen = strlen(protoname); + s->i = 0; + while (1) { + if (s->vslen >= s->vstrsize - 1) { + s->vstrsize += 16; + s->vstring = sresize(s->vstring, s->vstrsize, char); + } + s->vstring[s->vslen++] = c; + if (s->i >= 0) { + if (c == '-') { + s->version[s->i] = '\0'; + s->i = -1; + } else if (s->i < sizeof(s->version) - 1) + s->version[s->i++] = c; + } else if (c == '\012') + break; + crReturn(1); /* get another char */ + } + + ssh->agentfwd_enabled = FALSE; + ssh->rdpkt2_bare_state.incoming_sequence = 0; + + s->vstring[s->vslen] = 0; + s->vstring[strcspn(s->vstring, "\015\012")] = '\0';/* remove EOL chars */ + logeventf(ssh, "Server version: %s", s->vstring); + ssh_detect_bugs(ssh, s->vstring); + + /* + * Decide which SSH protocol version to support. This is easy in + * bare ssh-connection mode: only 2.0 is legal. + */ + if (ssh_versioncmp(s->version, "2.0") < 0) { + bombout(("Server announces compatibility with SSH-1 in bare ssh-connection protocol")); + crStop(0); + } + if (conf_get_int(ssh->conf, CONF_sshprot) == 0) { + bombout(("Bare ssh-connection protocol cannot be run in SSH-1-only mode")); + crStop(0); + } + + ssh->version = 2; + + logeventf(ssh, "Using bare ssh-connection protocol"); + + /* Send the version string, if we haven't already */ + ssh_send_verstring(ssh, protoname, s->version); + + /* + * Initialise bare connection protocol. + */ + ssh->protocol = ssh2_bare_connection_protocol; + ssh2_bare_connection_protocol_setup(ssh); + ssh->s_rdpkt = ssh2_bare_connection_rdpkt; + + update_specials_menu(ssh->frontend); + ssh->state = SSH_STATE_BEFORE_SIZE; + ssh->pinger = pinger_new(ssh->conf, &ssh_backend, ssh); + + /* + * Get authconn (really just conn) under way. + */ + do_ssh2_authconn(ssh, NULL, 0, NULL); + + sfree(s->vstring); + + crFinish(0); +} + static void ssh_process_incoming_data(Ssh ssh, unsigned char **data, int *datalen) { @@ -2888,7 +3219,7 @@ static void ssh_gotdata(Ssh ssh, unsigned char *data, int datalen) /* Log raw data, if we're in that mode. */ if (ssh->logctx) log_packet(ssh->logctx, PKT_INCOMING, -1, NULL, data, datalen, - 0, NULL, NULL); + 0, NULL, NULL, 0, NULL); crBegin(ssh->ssh_gotdata_crstate); @@ -2902,7 +3233,7 @@ static void ssh_gotdata(Ssh ssh, unsigned char *data, int datalen) int ret; /* need not be kept across crReturn */ if (datalen == 0) crReturnV; /* more data please */ - ret = do_ssh_init(ssh, *data); + ret = ssh->do_ssh_init(ssh, *data); data++; datalen--; if (ret == 0) @@ -2966,11 +3297,11 @@ static int ssh_do_close(Ssh ssh, int notify_exit) while (NULL != (c = index234(ssh->channels, 0))) { switch (c->type) { case CHAN_X11: - x11_close(c->u.x11.s); + x11_close(c->u.x11.xconn); break; case CHAN_SOCKDATA: case CHAN_SOCKDATA_DORMANT: - pfd_close(c->u.pfd.s); + pfd_close(c->u.pfd.pf); break; } del234(ssh->channels, c); /* moving next one to index 0 */ @@ -2988,7 +3319,7 @@ static int ssh_do_close(Ssh ssh, int notify_exit) while (NULL != (pf = index234(ssh->portfwds, 0))) { /* Dispose of any listening socket. */ if (pf->local) - pfd_terminate(pf->local); + pfl_terminate(pf->local); del234(ssh->portfwds, pf); /* moving next one to index 0 */ free_portfwd(pf); } @@ -2996,24 +3327,82 @@ static int ssh_do_close(Ssh ssh, int notify_exit) ssh->portfwds = NULL; } + /* + * Also stop attempting to connection-share. + */ + if (ssh->connshare) { + sharestate_free(ssh->connshare); + ssh->connshare = NULL; + } + return ret; } -static void ssh_log(Plug plug, int type, SockAddr addr, int port, - const char *error_msg, int error_code) +static void ssh_socket_log(Plug plug, int type, SockAddr addr, int port, + const char *error_msg, int error_code) { Ssh ssh = (Ssh) plug; char addrbuf[256], *msg; - sk_getaddr(addr, addrbuf, lenof(addrbuf)); + if (ssh->attempting_connshare) { + /* + * While we're attempting connection sharing, don't loudly log + * everything that happens. Real TCP connections need to be + * logged when we _start_ trying to connect, because it might + * be ages before they respond if something goes wrong; but + * connection sharing is local and quick to respond, and it's + * sufficient to simply wait and see whether it worked + * afterwards. + */ + } else { + sk_getaddr(addr, addrbuf, lenof(addrbuf)); - if (type == 0) - msg = dupprintf("Connecting to %s port %d", addrbuf, port); - else - msg = dupprintf("Failed to connect to %s: %s", addrbuf, error_msg); + if (type == 0) { + if (sk_addr_needs_port(addr)) { + msg = dupprintf("Connecting to %s port %d", addrbuf, port); + } else { + msg = dupprintf("Connecting to %s", addrbuf); + } + } else { + msg = dupprintf("Failed to connect to %s: %s", addrbuf, error_msg); + } + + logevent(msg); + sfree(msg); + } +} - logevent(msg); - sfree(msg); +void ssh_connshare_log(Ssh ssh, int event, const char *logtext, + const char *ds_err, const char *us_err) +{ + if (event == SHARE_NONE) { + /* In this case, 'logtext' is an error message indicating a + * reason why connection sharing couldn't be set up _at all_. + * Failing that, ds_err and us_err indicate why we couldn't be + * a downstream and an upstream respectively. */ + if (logtext) { + logeventf(ssh, "Could not set up connection sharing: %s", logtext); + } else { + if (ds_err) + logeventf(ssh, "Could not set up connection sharing" + " as downstream: %s", ds_err); + if (us_err) + logeventf(ssh, "Could not set up connection sharing" + " as upstream: %s", us_err); + } + } else if (event == SHARE_DOWNSTREAM) { + /* In this case, 'logtext' is a local endpoint address */ + logeventf(ssh, "Using existing shared connection at %s", logtext); + /* Also we should mention this in the console window to avoid + * confusing users as to why this window doesn't behave the + * usual way. */ + if ((flags & FLAG_VERBOSE) || (flags & FLAG_INTERACTIVE)) { + c_write_str(ssh,"Reusing a shared connection to this server.\r\n"); + } + } else if (event == SHARE_UPSTREAM) { + /* In this case, 'logtext' is a local endpoint address too */ + logeventf(ssh, "Sharing this connection at %s", logtext); + } } static int ssh_closing(Plug plug, const char *error_msg, int error_code, @@ -3076,7 +3465,7 @@ static const char *connect_to_host(Ssh ssh, char *host, int port, char **realhost, int nodelay, int keepalive) { static const struct plug_function_table fn_table = { - ssh_log, + ssh_socket_log, ssh_closing, ssh_receive, ssh_sent, @@ -3090,25 +3479,28 @@ static const char *connect_to_host(Ssh ssh, char *host, int port, loghost = conf_get_str(ssh->conf, CONF_loghost); if (*loghost) { - char *colon; + char *tmphost; + char *colon; - ssh->savedhost = dupstr(loghost); + tmphost = dupstr(loghost); ssh->savedport = 22; /* default ssh port */ /* - * A colon suffix on savedhost also lets us affect - * savedport. - * - * (FIXME: do something about IPv6 address literals here.) + * A colon suffix on the hostname string also lets us affect + * savedport. (Unless there are multiple colons, in which case + * we assume this is an unbracketed IPv6 literal.) */ - colon = strrchr(ssh->savedhost, ':'); - if (colon) { + colon = host_strrchr(tmphost, ':'); + if (colon && colon == host_strchr(tmphost, ':')) { *colon++ = '\0'; if (*colon) ssh->savedport = atoi(colon); } + + ssh->savedhost = host_strduptrim(tmphost); + sfree(tmphost); } else { - ssh->savedhost = dupstr(host); + ssh->savedhost = host_strduptrim(host); if (port < 0) port = 22; /* default ssh port */ ssh->savedport = port; @@ -3119,30 +3511,58 @@ static const char *connect_to_host(Ssh ssh, char *host, int port, ssh->fullhostname = NULL; #endif - /* - * Try to find host. - */ - addressfamily = conf_get_int(ssh->conf, CONF_addressfamily); - logeventf(ssh, "Looking up host \"%s\"%s", host, - (addressfamily == ADDRTYPE_IPV4 ? " (IPv4)" : - (addressfamily == ADDRTYPE_IPV6 ? " (IPv6)" : ""))); - addr = name_lookup(host, port, realhost, ssh->conf, addressfamily); - if ((err = sk_addr_error(addr)) != NULL) { - sk_addr_free(addr); - return err; - } - ssh->fullhostname = dupstr(*realhost); /* save in case of GSSAPI */ + ssh->fn = &fn_table; /* make 'ssh' usable as a Plug */ /* - * Open socket. + * Try connection-sharing, in case that means we don't open a + * socket after all. ssh_connection_sharing_init will connect to a + * previously established upstream if it can, and failing that, + * establish a listening socket for _us_ to be the upstream. In + * the latter case it will return NULL just as if it had done + * nothing, because here we only need to care if we're a + * downstream and need to do our connection setup differently. */ - ssh->fn = &fn_table; + ssh->connshare = NULL; + ssh->attempting_connshare = TRUE; /* affects socket logging behaviour */ + ssh->s = ssh_connection_sharing_init(ssh->savedhost, ssh->savedport, + ssh->conf, ssh, &ssh->connshare); + ssh->attempting_connshare = FALSE; + if (ssh->s != NULL) { + /* + * We are a downstream. + */ + ssh->bare_connection = TRUE; + ssh->do_ssh_init = do_ssh_connection_init; + ssh->fullhostname = NULL; + *realhost = dupstr(host); /* best we can do */ + } else { + /* + * We're not a downstream, so open a normal socket. + */ + ssh->do_ssh_init = do_ssh_init; + + /* + * Try to find host. + */ + addressfamily = conf_get_int(ssh->conf, CONF_addressfamily); + logeventf(ssh, "Looking up host \"%s\"%s", host, + (addressfamily == ADDRTYPE_IPV4 ? " (IPv4)" : + (addressfamily == ADDRTYPE_IPV6 ? " (IPv6)" : ""))); + addr = name_lookup(host, port, realhost, ssh->conf, addressfamily); + if ((err = sk_addr_error(addr)) != NULL) { + sk_addr_free(addr); + return err; + } + ssh->fullhostname = dupstr(*realhost); /* save in case of GSSAPI */ + ssh->s = new_connection(addr, *realhost, port, - 0, 1, nodelay, keepalive, (Plug) ssh, ssh->conf); - if ((err = sk_socket_error(ssh->s)) != NULL) { - ssh->s = NULL; - notify_remote_exit(ssh->frontend); - return err; + 0, 1, nodelay, keepalive, + (Plug) ssh, ssh->conf); + if ((err = sk_socket_error(ssh->s)) != NULL) { + ssh->s = NULL; + notify_remote_exit(ssh->frontend); + return err; + } } /* @@ -3152,9 +3572,9 @@ static const char *connect_to_host(Ssh ssh, char *host, int port, sshprot = conf_get_int(ssh->conf, CONF_sshprot); if (sshprot == 0) ssh->version = 1; - if (sshprot == 3) { + if (sshprot == 3 && !ssh->bare_connection) { ssh->version = 2; - ssh_send_verstring(ssh, NULL); + ssh_send_verstring(ssh, "SSH-", NULL); } /* @@ -3206,13 +3626,13 @@ static void ssh_throttle_all(Ssh ssh, int enable, int bufsize) */ break; case CHAN_X11: - x11_override_throttle(c->u.x11.s, enable); + x11_override_throttle(c->u.x11.xconn, enable); break; case CHAN_AGENT: /* Agent channels require no buffer management. */ break; case CHAN_SOCKDATA: - pfd_override_throttle(c->u.pfd.s, enable); + pfd_override_throttle(c->u.pfd.pf, enable); break; } } @@ -3268,9 +3688,7 @@ static void ssh_agentf_callback(void *cv, void *reply, int replylen) send_packet(ssh, SSH1_MSG_CHANNEL_DATA, PKT_INT, c->remoteid, PKT_INT, replylen, - PKTT_DATA, PKT_DATA, sentreply, replylen, - PKTT_OTHER, PKT_END); } if (reply) @@ -3316,6 +3734,59 @@ static void ssh_disconnect(Ssh ssh, char *client_reason, char *wire_reason, sfree(error); } +int verify_ssh_manual_host_key(Ssh ssh, const char *fingerprint, + const struct ssh_signkey *ssh2keytype, + void *ssh2keydata) +{ + if (!conf_get_str_nthstrkey(ssh->conf, CONF_ssh_manual_hostkeys, 0)) { + return -1; /* no manual keys configured */ + } + + if (fingerprint) { + /* + * The fingerprint string we've been given will have things + * like 'ssh-rsa 2048' at the front of it. Strip those off and + * narrow down to just the colon-separated hex block at the + * end of the string. + */ + const char *p = strrchr(fingerprint, ' '); + fingerprint = p ? p+1 : fingerprint; + /* Quick sanity checks, including making sure it's in lowercase */ + assert(strlen(fingerprint) == 16*3 - 1); + assert(fingerprint[2] == ':'); + assert(fingerprint[strspn(fingerprint, "0123456789abcdef:")] == 0); + + if (conf_get_str_str_opt(ssh->conf, CONF_ssh_manual_hostkeys, + fingerprint)) + return 1; /* success */ + } + + if (ssh2keydata) { + /* + * Construct the base64-encoded public key blob and see if + * that's listed. + */ + unsigned char *binblob; + char *base64blob; + int binlen, atoms, i; + binblob = ssh2keytype->public_blob(ssh2keydata, &binlen); + atoms = (binlen + 2) / 3; + base64blob = snewn(atoms * 4 + 1, char); + for (i = 0; i < atoms; i++) + base64_encode_atom(binblob + 3*i, binlen - 3*i, base64blob + 4*i); + base64blob[atoms * 4] = '\0'; + sfree(binblob); + if (conf_get_str_str_opt(ssh->conf, CONF_ssh_manual_hostkeys, + base64blob)) { + sfree(base64blob); + return 1; /* success */ + } + sfree(base64blob); + } + + return 0; +} + /* * Handle the key exchange and user authentication phases. */ @@ -3439,29 +3910,39 @@ static int do_ssh1_login(Ssh ssh, unsigned char *in, int inlen, rsastr_fmt(keystr, &s->hostkey); rsa_fingerprint(fingerprint, sizeof(fingerprint), &s->hostkey); - ssh_set_frozen(ssh, 1); - s->dlgret = verify_ssh_host_key(ssh->frontend, - ssh->savedhost, ssh->savedport, - "rsa", keystr, fingerprint, - ssh_dialog_callback, ssh); - sfree(keystr); - if (s->dlgret < 0) { - do { - crReturn(0); - if (pktin) { - bombout(("Unexpected data from server while waiting" - " for user host key response")); - crStop(0); - } - } while (pktin || inlen > 0); - s->dlgret = ssh->user_response; - } - ssh_set_frozen(ssh, 0); + /* First check against manually configured host keys. */ + s->dlgret = verify_ssh_manual_host_key(ssh, fingerprint, NULL, NULL); + if (s->dlgret == 0) { /* did not match */ + bombout(("Host key did not appear in manually configured list")); + sfree(keystr); + crStop(0); + } else if (s->dlgret < 0) { /* none configured; use standard handling */ + ssh_set_frozen(ssh, 1); + s->dlgret = verify_ssh_host_key(ssh->frontend, + ssh->savedhost, ssh->savedport, + "rsa", keystr, fingerprint, + ssh_dialog_callback, ssh); + sfree(keystr); + if (s->dlgret < 0) { + do { + crReturn(0); + if (pktin) { + bombout(("Unexpected data from server while waiting" + " for user host key response")); + crStop(0); + } + } while (pktin || inlen > 0); + s->dlgret = ssh->user_response; + } + ssh_set_frozen(ssh, 0); - if (s->dlgret == 0) { - ssh_disconnect(ssh, "User aborted at host key verification", - NULL, 0, TRUE); - crStop(0); + if (s->dlgret == 0) { + ssh_disconnect(ssh, "User aborted at host key verification", + NULL, 0, TRUE); + crStop(0); + } + } else { + sfree(keystr); } } @@ -3635,7 +4116,7 @@ static int do_ssh1_login(Ssh ssh, unsigned char *in, int inlen, send_packet(ssh, SSH1_CMSG_USER, PKT_STR, ssh->username, PKT_END); { - char *userlog = dupprintf("Sent username \"%s\"", ssh->username); + char *userlog = dupprintf(MPEXT_BOM "Sent username \"%s\"", ssh->username); logevent(userlog); if (flags & FLAG_INTERACTIVE && (!((flags & FLAG_STDERR) && (flags & FLAG_VERBOSE)))) { @@ -4215,9 +4696,8 @@ static int do_ssh1_login(Ssh ssh, unsigned char *in, int inlen, for (i = bottom; i <= top; i++) { if (i == pwlen) { defer_packet(ssh, s->pwpkt_type, - PKTT_PASSWORD, PKT_STR, - s->cur_prompt->prompts[0]->result, - PKTT_OTHER, PKT_END); + PKT_STR,s->cur_prompt->prompts[0]->result, + PKT_END); } else { for (j = 0; j < i; j++) { do { @@ -4255,9 +4735,9 @@ static int do_ssh1_login(Ssh ssh, unsigned char *in, int inlen, ss = s->cur_prompt->prompts[0]->result; } logevent("Sending length-padded password"); - send_packet(ssh, s->pwpkt_type, PKTT_PASSWORD, + send_packet(ssh, s->pwpkt_type, PKT_INT, len, PKT_DATA, ss, len, - PKTT_OTHER, PKT_END); + PKT_END); } else { /* * The server is believed unable to cope with @@ -4267,14 +4747,14 @@ static int do_ssh1_login(Ssh ssh, unsigned char *in, int inlen, len = strlen(s->cur_prompt->prompts[0]->result); logevent("Sending unpadded password"); send_packet(ssh, s->pwpkt_type, - PKTT_PASSWORD, PKT_INT, len, + PKT_INT, len, PKT_DATA, s->cur_prompt->prompts[0]->result, len, - PKTT_OTHER, PKT_END); + PKT_END); } } else { - send_packet(ssh, s->pwpkt_type, PKTT_PASSWORD, + send_packet(ssh, s->pwpkt_type, PKT_STR, s->cur_prompt->prompts[0]->result, - PKTT_OTHER, PKT_END); + PKT_END); } logevent("Sent password"); free_prompts(s->cur_prompt); @@ -4324,6 +4804,12 @@ static void ssh_channel_try_eof(struct ssh_channel *c) } } +Conf *sshfwd_get_conf(struct ssh_channel *c) +{ + Ssh ssh = c->ssh; + return ssh->conf; +} + void sshfwd_write_eof(struct ssh_channel *c) { Ssh ssh = c->ssh; @@ -4347,13 +4833,13 @@ void sshfwd_unclean_close(struct ssh_channel *c, const char *err) switch (c->type) { case CHAN_X11: - x11_close(c->u.x11.s); + x11_close(c->u.x11.xconn); logeventf(ssh, "Forwarded X11 connection terminated due to local " "error: %s", err); break; case CHAN_SOCKDATA: case CHAN_SOCKDATA_DORMANT: - pfd_close(c->u.pfd.s); + pfd_close(c->u.pfd.pf); logeventf(ssh, "Forwarded port closed due to local error: %s", err); break; } @@ -4373,8 +4859,8 @@ int sshfwd_write(struct ssh_channel *c, char *buf, int len) if (ssh->version == 1) { send_packet(ssh, SSH1_MSG_CHANNEL_DATA, PKT_INT, c->remoteid, - PKT_INT, len, PKTT_DATA, PKT_DATA, buf, len, - PKTT_OTHER, PKT_END); + PKT_INT, len, PKT_DATA, buf, len, + PKT_END); /* * In SSH-1 we can return 0 here - implying that forwarded * connections are never individually throttled - because @@ -4494,6 +4980,41 @@ static void ssh_rportfwd_succfail(Ssh ssh, struct Packet *pktin, void *ctx) } } +int ssh_alloc_sharing_rportfwd(Ssh ssh, const char *shost, int sport, + void *share_ctx) +{ + struct ssh_rportfwd *pf = snew(struct ssh_rportfwd); + pf->dhost = NULL; + pf->dport = 0; + pf->share_ctx = share_ctx; + pf->shost = dupstr(shost); + pf->sport = sport; + pf->sportdesc = NULL; + if (!ssh->rportfwds) { + assert(ssh->version == 2); + ssh->rportfwds = newtree234(ssh_rportcmp_ssh2); + } + if (add234(ssh->rportfwds, pf) != pf) { + sfree(pf->shost); + sfree(pf); + return FALSE; + } + return TRUE; +} + +static void ssh_sharing_global_request_response(Ssh ssh, struct Packet *pktin, + void *ctx) +{ + share_got_pkt_from_server(ctx, pktin->type, + pktin->body, pktin->length); +} + +void ssh_sharing_queue_global_request(Ssh ssh, void *share_ctx) +{ + ssh_queue_handler(ssh, SSH2_MSG_REQUEST_SUCCESS, SSH2_MSG_REQUEST_FAILURE, + ssh_sharing_global_request_response, share_ctx); +} + static void ssh_setup_portfwd(Ssh ssh, Conf *conf) { struct ssh_portfwd *epf; @@ -4533,13 +5054,15 @@ static void ssh_setup_portfwd(Ssh ssh, Conf *conf) if (*kp == 'L' || *kp == 'R') type = *kp++; - if ((kp2 = strchr(kp, ':')) != NULL) { + if ((kp2 = host_strchr(kp, ':')) != NULL) { /* * There's a colon in the middle of the source port * string, which means that the part before it is * actually a source address. */ - saddr = dupprintf("%.*s", (int)(kp2 - kp), kp); + char *saddr_tmp = dupprintf("%.*s", (int)(kp2 - kp), kp); + saddr = host_strduptrim(saddr_tmp); + sfree(saddr_tmp); sports = kp2+1; } else { saddr = NULL; @@ -4566,9 +5089,9 @@ static void ssh_setup_portfwd(Ssh ssh, Conf *conf) } else { /* ordinary forwarding */ vp = val; - vp2 = vp + strcspn(vp, ":"); + vp2 = vp + host_strcspn(vp, ":"); host = dupprintf("%.*s", (int)(vp2 - vp), vp); - if (vp2) + if (*vp2) vp2++; dports = vp2; dport = atoi(dports); @@ -4691,7 +5214,7 @@ static void ssh_setup_portfwd(Ssh ssh, Conf *conf) del234(ssh->rportfwds, rpf); free_rportfwd(rpf); } else if (epf->local) { - pfd_terminate(epf->local); + pfl_terminate(epf->local); } delpos234(ssh->portfwds, i); @@ -4724,29 +5247,31 @@ static void ssh_setup_portfwd(Ssh ssh, Conf *conf) } if (epf->type == 'L') { - const char *err = pfd_addforward(epf->daddr, epf->dport, - epf->saddr, epf->sport, - ssh, conf, - &epf->local, - epf->addressfamily); + char *err = pfl_listen(epf->daddr, epf->dport, + epf->saddr, epf->sport, + ssh, conf, &epf->local, + epf->addressfamily); logeventf(ssh, "Local %sport %s forwarding to %s%s%s", epf->addressfamily == ADDRTYPE_IPV4 ? "IPv4 " : epf->addressfamily == ADDRTYPE_IPV6 ? "IPv6 " : "", sportdesc, dportdesc, err ? " failed: " : "", err ? err : ""); + if (err) + sfree(err); } else if (epf->type == 'D') { - const char *err = pfd_addforward(NULL, -1, - epf->saddr, epf->sport, - ssh, conf, - &epf->local, - epf->addressfamily); + char *err = pfl_listen(NULL, -1, epf->saddr, epf->sport, + ssh, conf, &epf->local, + epf->addressfamily); logeventf(ssh, "Local %sport %s SOCKS dynamic forwarding%s%s", epf->addressfamily == ADDRTYPE_IPV4 ? "IPv4 " : epf->addressfamily == ADDRTYPE_IPV6 ? "IPv6 " : "", sportdesc, err ? " failed: " : "", err ? err : ""); + + if (err) + sfree(err); } else { struct ssh_rportfwd *pf; @@ -4761,9 +5286,16 @@ static void ssh_setup_portfwd(Ssh ssh, Conf *conf) } pf = snew(struct ssh_rportfwd); - strncpy(pf->dhost, epf->daddr, lenof(pf->dhost)-1); - pf->dhost[lenof(pf->dhost)-1] = '\0'; + pf->share_ctx = NULL; + pf->dhost = dupstr(epf->daddr); pf->dport = epf->dport; + if (epf->saddr) { + pf->shost = dupstr(epf->saddr); + } else if (conf_get_int(conf, CONF_rport_acceptall)) { + pf->shost = dupstr(""); + } else { + pf->shost = dupstr("localhost"); + } pf->sport = epf->sport; if (add234(ssh->rportfwds, pf) != pf) { logeventf(ssh, "Duplicate remote port forwarding to %s:%d", @@ -4792,14 +5324,8 @@ static void ssh_setup_portfwd(Ssh ssh, Conf *conf) pktout = ssh2_pkt_init(SSH2_MSG_GLOBAL_REQUEST); ssh2_pkt_addstring(pktout, "tcpip-forward"); ssh2_pkt_addbool(pktout, 1);/* want reply */ - if (epf->saddr) { - ssh2_pkt_addstring(pktout, epf->saddr); - } else if (conf_get_int(conf, CONF_rport_acceptall)) { - ssh2_pkt_addstring(pktout, ""); - } else { - ssh2_pkt_addstring(pktout, "localhost"); - } - ssh2_pkt_adduint32(pktout, epf->sport); + ssh2_pkt_addstring(pktout, pf->shost); + ssh2_pkt_adduint32(pktout, pf->sport); ssh2_pkt_send(ssh, pktout); ssh_queue_handler(ssh, SSH2_MSG_REQUEST_SUCCESS, @@ -4849,28 +5375,19 @@ static void ssh1_smsg_x11_open(Ssh ssh, struct Packet *pktin) c = snew(struct ssh_channel); c->ssh = ssh; - if (x11_init(&c->u.x11.s, ssh->x11disp, c, - NULL, -1, ssh->conf) != NULL) { - logevent("Opening X11 forward connection failed"); - sfree(c); - send_packet(ssh, SSH1_MSG_CHANNEL_OPEN_FAILURE, - PKT_INT, remoteid, PKT_END); - } else { - logevent - ("Opening X11 forward connection succeeded"); - c->remoteid = remoteid; - c->halfopen = FALSE; - c->localid = alloc_channel_id(ssh); - c->closes = 0; - c->pending_eof = FALSE; - c->throttling_conn = 0; - c->type = CHAN_X11; /* identify channel type */ - add234(ssh->channels, c); - send_packet(ssh, SSH1_MSG_CHANNEL_OPEN_CONFIRMATION, - PKT_INT, c->remoteid, PKT_INT, - c->localid, PKT_END); - logevent("Opened X11 forward channel"); - } + c->u.x11.xconn = x11_init(ssh->x11authtree, c, NULL, -1); + c->remoteid = remoteid; + c->halfopen = FALSE; + c->localid = alloc_channel_id(ssh); + c->closes = 0; + c->pending_eof = FALSE; + c->throttling_conn = 0; + c->type = CHAN_X11; /* identify channel type */ + add234(ssh->channels, c); + send_packet(ssh, SSH1_MSG_CHANNEL_OPEN_CONFIRMATION, + PKT_INT, c->remoteid, PKT_INT, + c->localid, PKT_END); + logevent("Opened X11 forward channel"); } } @@ -4913,16 +5430,13 @@ static void ssh1_msg_port_open(Ssh ssh, struct Packet *pktin) int remoteid; int hostsize, port; char *host; - const char *e; + char *err; remoteid = ssh_pkt_getuint32(pktin); ssh_pkt_getstring(pktin, &host, &hostsize); port = ssh_pkt_getuint32(pktin); - if (hostsize >= lenof(pf.dhost)) - hostsize = lenof(pf.dhost)-1; - memcpy(pf.dhost, host, hostsize); - pf.dhost[hostsize] = '\0'; + pf.dhost = dupprintf("%.*s", hostsize, host); pf.dport = port; pfp = find234(ssh->rportfwds, &pf, NULL); @@ -4937,10 +5451,11 @@ static void ssh1_msg_port_open(Ssh ssh, struct Packet *pktin) logeventf(ssh, "Received remote port open request for %s:%d", pf.dhost, port); - e = pfd_newconnect(&c->u.pfd.s, pf.dhost, port, - c, ssh->conf, pfp->pfrec->addressfamily); - if (e != NULL) { - logeventf(ssh, "Port open failed: %s", e); + err = pfd_connect(&c->u.pfd.pf, pf.dhost, port, + c, ssh->conf, pfp->pfrec->addressfamily); + if (err != NULL) { + logeventf(ssh, "Port open failed: %s", err); + sfree(err); sfree(c); send_packet(ssh, SSH1_MSG_CHANNEL_OPEN_FAILURE, PKT_INT, remoteid, PKT_END); @@ -4959,6 +5474,8 @@ static void ssh1_msg_port_open(Ssh ssh, struct Packet *pktin) logevent("Forwarded port opened successfully"); } } + + sfree(pf.dhost); } static void ssh1_msg_channel_open_confirmation(Ssh ssh, struct Packet *pktin) @@ -4973,7 +5490,7 @@ static void ssh1_msg_channel_open_confirmation(Ssh ssh, struct Packet *pktin) c->halfopen = FALSE; c->type = CHAN_SOCKDATA; c->throttling_conn = 0; - pfd_confirm(c->u.pfd.s); + pfd_confirm(c->u.pfd.pf); } if (c && c->pending_eof) { @@ -4995,7 +5512,7 @@ static void ssh1_msg_channel_open_failure(Ssh ssh, struct Packet *pktin) c = find234(ssh->channels, &remoteid, ssh_channelfind); if (c && c->type == CHAN_SOCKDATA_DORMANT) { logevent("Forwarded connection refused by server"); - pfd_close(c->u.pfd.s); + pfd_close(c->u.pfd.pf); del234(ssh->channels, c); sfree(c); } @@ -5021,14 +5538,14 @@ static void ssh1_msg_channel_close(Ssh ssh, struct Packet *pktin) switch (c->type) { case CHAN_X11: - if (c->u.x11.s) - x11_send_eof(c->u.x11.s); + if (c->u.x11.xconn) + x11_send_eof(c->u.x11.xconn); else send_close = TRUE; break; case CHAN_SOCKDATA: - if (c->u.pfd.s) - pfd_send_eof(c->u.pfd.s); + if (c->u.pfd.pf) + pfd_send_eof(c->u.pfd.pf); else send_close = TRUE; break; @@ -5087,10 +5604,10 @@ static void ssh1_msg_channel_data(Ssh ssh, struct Packet *pktin) int bufsize = 0; switch (c->type) { case CHAN_X11: - bufsize = x11_send(c->u.x11.s, p, len); + bufsize = x11_send(c->u.x11.xconn, p, len); break; case CHAN_SOCKDATA: - bufsize = pfd_send(c->u.pfd.s, p, len); + bufsize = pfd_send(c->u.pfd.pf, p, len); break; case CHAN_AGENT: /* Data for an agent message. Buffer it. */ @@ -5178,6 +5695,10 @@ static void ssh1_send_ttymode(void *data, char *mode, char *val) ssh2_pkt_addbyte(pktout, arg); } +int ssh_agent_forwarding_permitted(Ssh ssh) +{ + return conf_get_int(ssh->conf, CONF_agentfwd) && agent_exists(); +} static void do_ssh1_connection(Ssh ssh, unsigned char *in, int inlen, struct Packet *pktin) @@ -5198,7 +5719,7 @@ static void do_ssh1_connection(Ssh ssh, unsigned char *in, int inlen, ssh->packet_dispatch[SSH1_MSG_CHANNEL_DATA] = ssh1_msg_channel_data; ssh->packet_dispatch[SSH1_SMSG_EXIT_STATUS] = ssh1_smsg_exit_status; - if (conf_get_int(ssh->conf, CONF_agentfwd) && agent_exists()) { + if (ssh_agent_forwarding_permitted(ssh)) { logevent("Requesting agent forwarding"); send_packet(ssh, SSH1_CMSG_AGENT_REQUEST_FORWARDING, PKT_END); do { @@ -5217,47 +5738,47 @@ static void do_ssh1_connection(Ssh ssh, unsigned char *in, int inlen, } } - if (conf_get_int(ssh->conf, CONF_x11_forward) && - (ssh->x11disp = x11_setup_display(conf_get_str(ssh->conf, CONF_x11_display), - conf_get_int(ssh->conf, CONF_x11_auth), ssh->conf))) { - logevent("Requesting X11 forwarding"); - /* - * Note that while we blank the X authentication data here, we don't - * take any special action to blank the start of an X11 channel, - * so using MIT-MAGIC-COOKIE-1 and actually opening an X connection - * without having session blanking enabled is likely to leak your - * cookie into the log. - */ - if (ssh->v1_local_protoflags & SSH1_PROTOFLAG_SCREEN_NUMBER) { - send_packet(ssh, SSH1_CMSG_X11_REQUEST_FORWARDING, - PKT_STR, ssh->x11disp->remoteauthprotoname, - PKTT_PASSWORD, - PKT_STR, ssh->x11disp->remoteauthdatastring, - PKTT_OTHER, - PKT_INT, ssh->x11disp->screennum, - PKT_END); - } else { - send_packet(ssh, SSH1_CMSG_X11_REQUEST_FORWARDING, - PKT_STR, ssh->x11disp->remoteauthprotoname, - PKTT_PASSWORD, - PKT_STR, ssh->x11disp->remoteauthdatastring, - PKTT_OTHER, - PKT_END); - } - do { - crReturnV; - } while (!pktin); - if (pktin->type != SSH1_SMSG_SUCCESS - && pktin->type != SSH1_SMSG_FAILURE) { - bombout(("Protocol confusion")); - crStopV; - } else if (pktin->type == SSH1_SMSG_FAILURE) { - logevent("X11 forwarding refused"); - } else { - logevent("X11 forwarding enabled"); - ssh->X11_fwd_enabled = TRUE; - ssh->packet_dispatch[SSH1_SMSG_X11_OPEN] = ssh1_smsg_x11_open; - } + if (conf_get_int(ssh->conf, CONF_x11_forward)) { + ssh->x11disp = + x11_setup_display(conf_get_str(ssh->conf, CONF_x11_display), + ssh->conf); + if (!ssh->x11disp) { + /* FIXME: return an error message from x11_setup_display */ + logevent("X11 forwarding not enabled: unable to" + " initialise X display"); + } else { + ssh->x11auth = x11_invent_fake_auth + (ssh->x11authtree, conf_get_int(ssh->conf, CONF_x11_auth)); + ssh->x11auth->disp = ssh->x11disp; + + logevent("Requesting X11 forwarding"); + if (ssh->v1_local_protoflags & SSH1_PROTOFLAG_SCREEN_NUMBER) { + send_packet(ssh, SSH1_CMSG_X11_REQUEST_FORWARDING, + PKT_STR, ssh->x11auth->protoname, + PKT_STR, ssh->x11auth->datastring, + PKT_INT, ssh->x11disp->screennum, + PKT_END); + } else { + send_packet(ssh, SSH1_CMSG_X11_REQUEST_FORWARDING, + PKT_STR, ssh->x11auth->protoname, + PKT_STR, ssh->x11auth->datastring, + PKT_END); + } + do { + crReturnV; + } while (!pktin); + if (pktin->type != SSH1_SMSG_SUCCESS + && pktin->type != SSH1_SMSG_FAILURE) { + bombout(("Protocol confusion")); + crStopV; + } else if (pktin->type == SSH1_SMSG_FAILURE) { + logevent("X11 forwarding refused"); + } else { + logevent("X11 forwarding enabled"); + ssh->X11_fwd_enabled = TRUE; + ssh->packet_dispatch[SSH1_SMSG_X11_OPEN] = ssh1_smsg_x11_open; + } + } } ssh_setup_portfwd(ssh, ssh->conf); @@ -5378,8 +5899,8 @@ static void do_ssh1_connection(Ssh ssh, unsigned char *in, int inlen, while (inlen > 0) { int len = min(inlen, 512); send_packet(ssh, SSH1_CMSG_STDIN_DATA, - PKT_INT, len, PKTT_DATA, PKT_DATA, in, len, - PKTT_OTHER, PKT_END); + PKT_INT, len, PKT_DATA, in, len, + PKT_END); in += len; inlen -= len; } @@ -5579,6 +6100,8 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, }; crState(do_ssh2_transport_state); + assert(!ssh->bare_connection); + crBeginState; s->cscipher_tobe = s->sccipher_tobe = NULL; @@ -5711,12 +6234,12 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, * In the first key exchange, we list all the algorithms * we're prepared to cope with. */ - ssh2_pkt_addstring_start(s->pktout); - for (i = 0; i < lenof(hostkey_algs); i++) { - ssh2_pkt_addstring_str(s->pktout, hostkey_algs[i]->name); - if (i < lenof(hostkey_algs) - 1) - ssh2_pkt_addstring_str(s->pktout, ","); - } + ssh2_pkt_addstring_start(s->pktout); + for (i = 0; i < lenof(hostkey_algs); i++) { + ssh2_pkt_addstring_str(s->pktout, hostkey_algs[i]->name); + if (i < lenof(hostkey_algs) - 1) + ssh2_pkt_addstring_str(s->pktout, ","); + } } else { /* * In subsequent key exchanges, we list only the kex @@ -5823,6 +6346,10 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, pktin->savedpos += 16; /* skip garbage cookie */ ssh_pkt_getstring(pktin, &str, &len); /* key exchange algorithms */ + if (!str) { + bombout(("KEXINIT packet was incomplete")); + crStopV; + } preferred = NULL; for (i = 0; i < s->n_preferred_kex; i++) { @@ -5842,8 +6369,8 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, break; } if (!ssh->kex) { - bombout(("Couldn't agree a key exchange algorithm (available: %s)", - str ? str : "(null)")); + bombout(("Couldn't agree a key exchange algorithm" + " (available: %.*s)", len, str)); crStopV; } /* @@ -5853,6 +6380,10 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, */ s->guessok = first_in_commasep_string(preferred, str, len); ssh_pkt_getstring(pktin, &str, &len); /* host key algorithms */ + if (!str) { + bombout(("KEXINIT packet was incomplete")); + crStopV; + } for (i = 0; i < lenof(hostkey_algs); i++) { if (in_commasep_string(hostkey_algs[i]->name, str, len)) { ssh->hostkey = hostkey_algs[i]; @@ -5860,14 +6391,18 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, } } if (!ssh->hostkey) { - bombout(("Couldn't agree a host key algorithm (available: %s)", - str ? str : "(null)")); + bombout(("Couldn't agree a host key algorithm" + " (available: %.*s)", len, str)); crStopV; } s->guessok = s->guessok && first_in_commasep_string(hostkey_algs[0]->name, str, len); ssh_pkt_getstring(pktin, &str, &len); /* client->server cipher */ + if (!str) { + bombout(("KEXINIT packet was incomplete")); + crStopV; + } for (i = 0; i < s->n_preferred_ciphers; i++) { const struct ssh2_ciphers *c = s->preferred_ciphers[i]; if (!c) { @@ -5884,12 +6419,16 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, break; } if (!s->cscipher_tobe) { - bombout(("Couldn't agree a client-to-server cipher (available: %s)", - str ? str : "(null)")); + bombout(("Couldn't agree a client-to-server cipher" + " (available: %.*s)", len, str)); crStopV; } ssh_pkt_getstring(pktin, &str, &len); /* server->client cipher */ + if (!str) { + bombout(("KEXINIT packet was incomplete")); + crStopV; + } for (i = 0; i < s->n_preferred_ciphers; i++) { const struct ssh2_ciphers *c = s->preferred_ciphers[i]; if (!c) { @@ -5906,12 +6445,16 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, break; } if (!s->sccipher_tobe) { - bombout(("Couldn't agree a server-to-client cipher (available: %s)", - str ? str : "(null)")); + bombout(("Couldn't agree a server-to-client cipher" + " (available: %.*s)", len, str)); crStopV; } ssh_pkt_getstring(pktin, &str, &len); /* client->server mac */ + if (!str) { + bombout(("KEXINIT packet was incomplete")); + crStopV; + } for (i = 0; i < s->nmacs; i++) { if (in_commasep_string(s->maclist[i]->name, str, len)) { s->csmac_tobe = s->maclist[i]; @@ -5919,6 +6462,10 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, } } ssh_pkt_getstring(pktin, &str, &len); /* server->client mac */ + if (!str) { + bombout(("KEXINIT packet was incomplete")); + crStopV; + } for (i = 0; i < s->nmacs; i++) { if (in_commasep_string(s->maclist[i]->name, str, len)) { s->scmac_tobe = s->maclist[i]; @@ -5926,6 +6473,10 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, } } ssh_pkt_getstring(pktin, &str, &len); /* client->server compression */ + if (!str) { + bombout(("KEXINIT packet was incomplete")); + crStopV; + } for (i = 0; i < lenof(compressions) + 1; i++) { const struct ssh_compress *c = i == 0 ? s->preferred_comp : compressions[i - 1]; @@ -5942,6 +6493,10 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, } } ssh_pkt_getstring(pktin, &str, &len); /* server->client compression */ + if (!str) { + bombout(("KEXINIT packet was incomplete")); + crStopV; + } for (i = 0; i < lenof(compressions) + 1; i++) { const struct ssh_compress *c = i == 0 ? s->preferred_comp : compressions[i - 1]; @@ -5971,9 +6526,9 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, hash_string(ssh->kex->hash, ssh->exhash, s->our_kexinit, s->our_kexinitlen); sfree(s->our_kexinit); - if (pktin->length > 5) - hash_string(ssh->kex->hash, ssh->exhash, - pktin->data + 5, pktin->length - 5); + /* Include the type byte in the hash of server's KEXINIT */ + hash_string(ssh->kex->hash, ssh->exhash, + pktin->body - 1, pktin->length + 1); if (s->warn_kex) { ssh_set_frozen(ssh, 1); @@ -6140,6 +6695,10 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, } set_busy_status(ssh->frontend, BUSY_CPU); /* cogitate */ ssh_pkt_getstring(pktin, &s->hostkeydata, &s->hostkeylen); + if (!s->hostkeydata) { + bombout(("unable to parse key exchange reply packet")); + crStopV; + } s->hkey = ssh->hostkey->newkey(s->hostkeydata, s->hostkeylen); s->f = ssh2_pkt_getmp(pktin); if (!s->f) { @@ -6147,6 +6706,10 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, crStopV; } ssh_pkt_getstring(pktin, &s->sigdata, &s->siglen); + if (!s->sigdata) { + bombout(("unable to parse key exchange reply packet")); + crStopV; + } { const char *err = dh_validate_f(ssh->kex_ctx, s->f); @@ -6195,6 +6758,10 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, } ssh_pkt_getstring(pktin, &s->hostkeydata, &s->hostkeylen); + if (!s->hostkeydata) { + bombout(("unable to parse RSA public key packet")); + crStopV; + } hash_string(ssh->kex->hash, ssh->exhash, s->hostkeydata, s->hostkeylen); s->hkey = ssh->hostkey->newkey(s->hostkeydata, s->hostkeylen); @@ -6202,6 +6769,10 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, { char *keydata; ssh_pkt_getstring(pktin, &keydata, &s->rsakeylen); + if (!keydata) { + bombout(("unable to parse RSA public key packet")); + crStopV; + } s->rsakeydata = snewn(s->rsakeylen, char); memcpy(s->rsakeydata, keydata, s->rsakeylen); } @@ -6278,6 +6849,10 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, } ssh_pkt_getstring(pktin, &s->sigdata, &s->siglen); + if (!s->sigdata) { + bombout(("unable to parse signature packet")); + crStopV; + } sfree(s->rsakeydata); } @@ -6303,36 +6878,44 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, s->keystr = ssh->hostkey->fmtkey(s->hkey); if (!s->got_session_id) { - /* - * Authenticate remote host: verify host key. (We've already - * checked the signature of the exchange hash.) - */ - s->fingerprint = ssh->hostkey->fingerprint(s->hkey); - ssh_set_frozen(ssh, 1); - s->dlgret = verify_ssh_host_key(ssh->frontend, - ssh->savedhost, ssh->savedport, - ssh->hostkey->keytype, s->keystr, - s->fingerprint, - ssh_dialog_callback, ssh); - if (s->dlgret < 0) { - do { - crReturnV; - if (pktin) { - bombout(("Unexpected data from server while waiting" - " for user host key response")); - crStopV; + /* + * Authenticate remote host: verify host key. (We've already + * checked the signature of the exchange hash.) + */ + s->fingerprint = ssh->hostkey->fingerprint(s->hkey); + logevent("Host key fingerprint is:"); + logevent(s->fingerprint); + /* First check against manually configured host keys. */ + s->dlgret = verify_ssh_manual_host_key(ssh, s->fingerprint, + ssh->hostkey, s->hkey); + if (s->dlgret == 0) { /* did not match */ + bombout(("Host key did not appear in manually configured list")); + crStopV; + } else if (s->dlgret < 0) { /* none configured; use standard handling */ + ssh_set_frozen(ssh, 1); + s->dlgret = verify_ssh_host_key(ssh->frontend, + ssh->savedhost, ssh->savedport, + ssh->hostkey->keytype, s->keystr, + s->fingerprint, + ssh_dialog_callback, ssh); + if (s->dlgret < 0) { + do { + crReturnV; + if (pktin) { + bombout(("Unexpected data from server while waiting" + " for user host key response")); + crStopV; + } + } while (pktin || inlen > 0); + s->dlgret = ssh->user_response; } - } while (pktin || inlen > 0); - s->dlgret = ssh->user_response; - } - ssh_set_frozen(ssh, 0); - if (s->dlgret == 0) { - ssh_disconnect(ssh, "User aborted at host key verification", NULL, - 0, TRUE); - crStopV; - } - logevent("Host key fingerprint is:"); - logevent(s->fingerprint); + ssh_set_frozen(ssh, 0); + if (s->dlgret == 0) { + ssh_disconnect(ssh, "Aborted at host key verification", NULL, + 0, TRUE); + crStopV; + } + } sfree(s->fingerprint); /* * Save this host key, to check against the one presented in @@ -6349,8 +6932,8 @@ static void do_ssh2_transport(Ssh ssh, void *vin, int inlen, if (strcmp(ssh->hostkey_str, s->keystr)) { bombout(("Host key was different in repeat key exchange")); crStopV; - } - sfree(s->keystr); + } + sfree(s->keystr); } ssh->hostkey->freekey(s->hkey); @@ -6646,9 +7229,7 @@ static int ssh2_try_send(struct ssh_channel *c) pktout = ssh2_pkt_init(SSH2_MSG_CHANNEL_DATA); ssh2_pkt_adduint32(pktout, c->remoteid); ssh2_pkt_addstring_start(pktout); - dont_log_data(ssh, pktout, PKTLOG_OMIT); ssh2_pkt_addstring_data(pktout, data, len); - end_log_omission(ssh, pktout); ssh2_pkt_send(ssh, pktout); bufchain_consume(&c->v.v2.outbuffer, len); c->v.v2.remwindow -= len; @@ -6683,19 +7264,32 @@ static void ssh2_try_send_and_unthrottle(Ssh ssh, struct ssh_channel *c) * notification since it will be polled */ break; case CHAN_X11: - x11_unthrottle(c->u.x11.s); + x11_unthrottle(c->u.x11.xconn); break; case CHAN_AGENT: /* agent sockets are request/response and need no * buffer management */ break; case CHAN_SOCKDATA: - pfd_unthrottle(c->u.pfd.s); + pfd_unthrottle(c->u.pfd.pf); break; } } } +static int ssh_is_simple(Ssh ssh) +{ + /* + * We use the 'simple' variant of the SSH protocol if we're asked + * to, except not if we're also doing connection-sharing (either + * tunnelling our packets over an upstream or expecting to be + * tunnelled over ourselves), since then the assumption that we + * have only one channel to worry about is not true after all. + */ + return (conf_get_int(ssh->conf, CONF_ssh_simple) && + !ssh->bare_connection && !ssh->connshare); +} + /* * Set up most of a new ssh_channel for SSH-2. */ @@ -6707,7 +7301,7 @@ static void ssh2_channel_init(struct ssh_channel *c) c->pending_eof = FALSE; c->throttling_conn = FALSE; c->v.v2.locwindow = c->v.v2.locmaxwin = c->v.v2.remlocwin = - conf_get_int(ssh->conf, CONF_ssh_simple) ? OUR_V2_BIGWIN : OUR_V2_WINSIZE; + ssh_is_simple(ssh) ? OUR_V2_BIGWIN : OUR_V2_WINSIZE; c->v.v2.chanreq_head = NULL; c->v.v2.throttle_state = UNTHROTTLED; bufchain_init(&c->v.v2.outbuffer); @@ -6757,10 +7351,11 @@ static void ssh2_queue_chanreq_handler(struct ssh_channel *c, * request-specific data added and be sent. Note that if a handler is * provided, it's essential that the request actually be sent. * - * The handler will usually be passed the response packet in pktin. - * If pktin is NULL, this means that no reply will ever be forthcoming - * (e.g. because the entire connection is being destroyed) and the - * handler should free any storage it's holding. + * The handler will usually be passed the response packet in pktin. If + * pktin is NULL, this means that no reply will ever be forthcoming + * (e.g. because the entire connection is being destroyed, or because + * the server initiated channel closure before we saw the response) + * and the handler should free any storage it's holding. */ static struct Packet *ssh2_chanreq_init(struct ssh_channel *c, char *type, cchandler_fn_t handler, void *ctx) @@ -6795,6 +7390,14 @@ static void ssh2_set_window(struct ssh_channel *c, int newwin) if (c->closes & (CLOSES_RCVD_EOF | CLOSES_SENT_CLOSE)) return; + /* + * Also, never widen the window for an X11 channel when we're + * still waiting to see its initial auth and may yet hand it off + * to a downstream. + */ + if (c->type == CHAN_X11 && c->u.x11.initial) + return; + /* * If the remote end has a habit of ignoring maxpkt, limit the * window so that it has no choice (assuming it doesn't ignore the @@ -6858,7 +7461,8 @@ static struct ssh_channel *ssh2_channel_msg(Ssh ssh, struct Packet *pktin) c = find234(ssh->channels, &localid, ssh_channelfind); if (!c || - (c->halfopen && pktin->type != SSH2_MSG_CHANNEL_OPEN_CONFIRMATION && + (c->type != CHAN_SHARING && c->halfopen && + pktin->type != SSH2_MSG_CHANNEL_OPEN_CONFIRMATION && pktin->type != SSH2_MSG_CHANNEL_OPEN_FAILURE)) { char *buf = dupprintf("Received %s for %s channel %u", ssh2_pkt_type(ssh->pkt_kctx, ssh->pkt_actx, @@ -6901,6 +7505,11 @@ static void ssh2_msg_channel_response(Ssh ssh, struct Packet *pktin) struct outstanding_channel_request *ocr; if (!c) return; + if (c->type == CHAN_SHARING) { + share_got_pkt_from_server(c->u.sharing.ctx, pktin->type, + pktin->body, pktin->length); + return; + } ocr = c->v.v2.chanreq_head; if (!ocr) { ssh2_msg_unexpected(ssh, pktin); @@ -6923,6 +7532,11 @@ static void ssh2_msg_channel_window_adjust(Ssh ssh, struct Packet *pktin) c = ssh2_channel_msg(ssh, pktin); if (!c) return; + if (c->type == CHAN_SHARING) { + share_got_pkt_from_server(c->u.sharing.ctx, pktin->type, + pktin->body, pktin->length); + return; + } if (!(c->closes & CLOSES_SENT_EOF)) { c->v.v2.remwindow += ssh_pkt_getuint32(pktin); ssh2_try_send_and_unthrottle(ssh, c); @@ -6937,6 +7551,11 @@ static void ssh2_msg_channel_data(Ssh ssh, struct Packet *pktin) c = ssh2_channel_msg(ssh, pktin); if (!c) return; + if (c->type == CHAN_SHARING) { + share_got_pkt_from_server(c->u.sharing.ctx, pktin->type, + pktin->body, pktin->length); + return; + } if (pktin->type == SSH2_MSG_CHANNEL_EXTENDED_DATA && ssh_pkt_getuint32(pktin) != SSH2_EXTENDED_DATA_STDERR) return; /* extended but not stderr */ @@ -6953,10 +7572,10 @@ static void ssh2_msg_channel_data(Ssh ssh, struct Packet *pktin) data, length); break; case CHAN_X11: - bufsize = x11_send(c->u.x11.s, data, length); + bufsize = x11_send(c->u.x11.xconn, data, length); break; case CHAN_SOCKDATA: - bufsize = pfd_send(c->u.pfd.s, data, length); + bufsize = pfd_send(c->u.pfd.pf, data, length); break; case CHAN_AGENT: while (length > 0) { @@ -7025,15 +7644,64 @@ static void ssh2_msg_channel_data(Ssh ssh, struct Packet *pktin) * buffering anything at all and we're in "simple" mode, * throttle the whole channel. */ - if ((bufsize > c->v.v2.locmaxwin || - (conf_get_int(ssh->conf, CONF_ssh_simple) && bufsize > 0)) && - !c->throttling_conn) { + if ((bufsize > c->v.v2.locmaxwin || (ssh_is_simple(ssh) && bufsize>0)) + && !c->throttling_conn) { c->throttling_conn = 1; ssh_throttle_conn(ssh, +1); } } } +static void ssh_check_termination(Ssh ssh) +{ + if (ssh->version == 2 && + !conf_get_int(ssh->conf, CONF_ssh_no_shell) && + (ssh->channels && count234(ssh->channels) == 0) && + !(ssh->connshare && share_ndownstreams(ssh->connshare) > 0)) { + /* + * We used to send SSH_MSG_DISCONNECT here, because I'd + * believed that _every_ conforming SSH-2 connection had to + * end with a disconnect being sent by at least one side; + * apparently I was wrong and it's perfectly OK to + * unceremoniously slam the connection shut when you're done, + * and indeed OpenSSH feels this is more polite than sending a + * DISCONNECT. So now we don't. + */ + ssh_disconnect(ssh, "All channels closed", NULL, 0, TRUE); + } +} + +void ssh_sharing_downstream_connected(Ssh ssh, unsigned id, + const char *peerinfo) +{ + if (peerinfo) + logeventf(ssh, "Connection sharing downstream #%u connected from %s", + id, peerinfo); + else + logeventf(ssh, "Connection sharing downstream #%u connected", id); +} + +void ssh_sharing_downstream_disconnected(Ssh ssh, unsigned id) +{ + logeventf(ssh, "Connection sharing downstream #%u disconnected", id); + ssh_check_termination(ssh); +} + +void ssh_sharing_logf(Ssh ssh, unsigned id, const char *logfmt, ...) +{ + va_list ap; + char *buf; + + va_start(ap, logfmt); + buf = dupvprintf(logfmt, ap); + va_end(ap); + if (id) + logeventf(ssh, "Connection sharing downstream #%u: %s", id, buf); + else + logeventf(ssh, "Connection sharing: %s", buf); + sfree(buf); +} + static void ssh_channel_destroy(struct ssh_channel *c) { Ssh ssh = c->ssh; @@ -7044,16 +7712,16 @@ static void ssh_channel_destroy(struct ssh_channel *c) update_specials_menu(ssh->frontend); break; case CHAN_X11: - if (c->u.x11.s != NULL) - x11_close(c->u.x11.s); + if (c->u.x11.xconn != NULL) + x11_close(c->u.x11.xconn); logevent("Forwarded X11 connection terminated"); break; case CHAN_AGENT: sfree(c->u.a.message); break; case CHAN_SOCKDATA: - if (c->u.pfd.s != NULL) - pfd_close(c->u.pfd.s); + if (c->u.pfd.pf != NULL) + pfd_close(c->u.pfd.pf); logevent("Forwarded port closed"); break; } @@ -7066,26 +7734,10 @@ static void ssh_channel_destroy(struct ssh_channel *c) sfree(c); /* - * See if that was the last channel left open. - * (This is only our termination condition if we're - * not running in -N mode.) + * If that was the last channel left open, we might need to + * terminate. */ - if (ssh->version == 2 && - !conf_get_int(ssh->conf, CONF_ssh_no_shell) && - count234(ssh->channels) == 0) { - /* - * We used to send SSH_MSG_DISCONNECT here, - * because I'd believed that _every_ conforming - * SSH-2 connection had to end with a disconnect - * being sent by at least one side; apparently - * I was wrong and it's perfectly OK to - * unceremoniously slam the connection shut - * when you're done, and indeed OpenSSH feels - * this is more polite than sending a - * DISCONNECT. So now we don't. - */ - ssh_disconnect(ssh, "All channels closed", NULL, 0, TRUE); - } + ssh_check_termination(ssh); } static void ssh2_channel_check_close(struct ssh_channel *c) @@ -7135,14 +7787,14 @@ static void ssh2_channel_got_eof(struct ssh_channel *c) c->closes |= CLOSES_RCVD_EOF; if (c->type == CHAN_X11) { - x11_send_eof(c->u.x11.s); + x11_send_eof(c->u.x11.xconn); } else if (c->type == CHAN_AGENT) { if (c->u.a.outstanding_requests == 0) { /* Manufacture an outgoing EOF in response to the incoming one. */ sshfwd_write_eof(c); } } else if (c->type == CHAN_SOCKDATA) { - pfd_send_eof(c->u.pfd.s); + pfd_send_eof(c->u.pfd.pf); } else if (c->type == CHAN_MAINSESSION) { Ssh ssh = c->ssh; @@ -7171,6 +7823,11 @@ static void ssh2_msg_channel_eof(Ssh ssh, struct Packet *pktin) c = ssh2_channel_msg(ssh, pktin); if (!c) return; + if (c->type == CHAN_SHARING) { + share_got_pkt_from_server(c->u.sharing.ctx, pktin->type, + pktin->body, pktin->length); + return; + } ssh2_channel_got_eof(c); } @@ -7181,6 +7838,11 @@ static void ssh2_msg_channel_close(Ssh ssh, struct Packet *pktin) c = ssh2_channel_msg(ssh, pktin); if (!c) return; + if (c->type == CHAN_SHARING) { + share_got_pkt_from_server(c->u.sharing.ctx, pktin->type, + pktin->body, pktin->length); + return; + } /* * When we receive CLOSE on a channel, we assume it comes with an @@ -7188,6 +7850,21 @@ static void ssh2_msg_channel_close(Ssh ssh, struct Packet *pktin) */ ssh2_channel_got_eof(c); + if (!(ssh->remote_bugs & BUG_SENDS_LATE_REQUEST_REPLY)) { + /* + * It also means we stop expecting to see replies to any + * outstanding channel requests, so clean those up too. + * (ssh_chanreq_init will enforce by assertion that we don't + * subsequently put anything back on this list.) + */ + while (c->v.v2.chanreq_head) { + struct outstanding_channel_request *ocr = c->v.v2.chanreq_head; + ocr->handler(c, NULL, ocr->ctx); + c->v.v2.chanreq_head = ocr->next; + sfree(ocr); + } + } + /* * And we also send an outgoing EOF, if we haven't already, on the * assumption that CLOSE is a pretty forceful announcement that @@ -7205,10 +7882,10 @@ static void ssh2_msg_channel_close(Ssh ssh, struct Packet *pktin) ssh->send_ok = 0; /* stop trying to read from stdin */ break; case CHAN_X11: - x11_override_throttle(c->u.x11.s, 1); + x11_override_throttle(c->u.x11.xconn, 1); break; case CHAN_SOCKDATA: - pfd_override_throttle(c->u.pfd.s, 1); + pfd_override_throttle(c->u.pfd.pf, 1); break; } @@ -7243,6 +7920,11 @@ static void ssh2_msg_channel_open_confirmation(Ssh ssh, struct Packet *pktin) c = ssh2_channel_msg(ssh, pktin); if (!c) return; + if (c->type == CHAN_SHARING) { + share_got_pkt_from_server(c->u.sharing.ctx, pktin->type, + pktin->body, pktin->length); + return; + } assert(c->halfopen); /* ssh2_channel_msg will have enforced this */ c->remoteid = ssh_pkt_getuint32(pktin); c->halfopen = FALSE; @@ -7251,8 +7933,8 @@ static void ssh2_msg_channel_open_confirmation(Ssh ssh, struct Packet *pktin) if (c->type == CHAN_SOCKDATA_DORMANT) { c->type = CHAN_SOCKDATA; - if (c->u.pfd.s) - pfd_confirm(c->u.pfd.s); + if (c->u.pfd.pf) + pfd_confirm(c->u.pfd.pf); } else if (c->type == CHAN_ZOMBIE) { /* * This case can occur if a local socket error occurred @@ -7298,17 +7980,22 @@ static void ssh2_msg_channel_open_failure(Ssh ssh, struct Packet *pktin) c = ssh2_channel_msg(ssh, pktin); if (!c) return; + if (c->type == CHAN_SHARING) { + share_got_pkt_from_server(c->u.sharing.ctx, pktin->type, + pktin->body, pktin->length); + return; + } assert(c->halfopen); /* ssh2_channel_msg will have enforced this */ if (c->type == CHAN_SOCKDATA_DORMANT) { - reason_code = ssh_pkt_getuint32(pktin); - if (reason_code >= lenof(reasons)) - reason_code = 0; /* ensure reasons[reason_code] in range */ - ssh_pkt_getstring(pktin, &reason_string, &reason_length); - logeventf(ssh, "Forwarded connection refused by server: %s [%.*s]", - reasons[reason_code], reason_length, reason_string); - - pfd_close(c->u.pfd.s); + reason_code = ssh_pkt_getuint32(pktin); + if (reason_code >= lenof(reasons)) + reason_code = 0; /* ensure reasons[reason_code] in range */ + ssh_pkt_getstring(pktin, &reason_string, &reason_length); + logeventf(ssh, "Forwarded connection refused by server: %s [%.*s]", + reasons[reason_code], reason_length, reason_string); + + pfd_close(c->u.pfd.pf); } else if (c->type == CHAN_ZOMBIE) { /* * This case can occur if a local socket error occurred @@ -7345,9 +8032,24 @@ static void ssh2_msg_channel_request(Ssh ssh, struct Packet *pktin) c = ssh2_channel_msg(ssh, pktin); if (!c) return; + if (c->type == CHAN_SHARING) { + share_got_pkt_from_server(c->u.sharing.ctx, pktin->type, + pktin->body, pktin->length); + return; + } ssh_pkt_getstring(pktin, &type, &typelen); want_reply = ssh2_pkt_getbool(pktin); + if (c->closes & CLOSES_SENT_CLOSE) { + /* + * We don't reply to channel requests after we've sent + * CHANNEL_CLOSE for the channel, because our reply might + * cross in the network with the other side's CHANNEL_CLOSE + * and arrive after they have wound the channel up completely. + */ + want_reply = FALSE; + } + /* * Having got the channel number, we now look at * the request type string to see if it's something @@ -7537,6 +8239,30 @@ static void ssh2_msg_global_request(Ssh ssh, struct Packet *pktin) } } +struct X11FakeAuth *ssh_sharing_add_x11_display(Ssh ssh, int authtype, + void *share_cs, + void *share_chan) +{ + struct X11FakeAuth *auth; + + /* + * Make up a new set of fake X11 auth data, and add it to the tree + * of currently valid ones with an indication of the sharing + * context that it's relevant to. + */ + auth = x11_invent_fake_auth(ssh->x11authtree, authtype); + auth->share_cs = share_cs; + auth->share_chan = share_chan; + + return auth; +} + +void ssh_sharing_remove_x11_display(Ssh ssh, struct X11FakeAuth *auth) +{ + del234(ssh->x11authtree, auth); + x11_free_fake_auth(auth); +} + static void ssh2_msg_channel_open(Ssh ssh, struct Packet *pktin) { char *type; @@ -7547,6 +8273,7 @@ static void ssh2_msg_channel_open(Ssh ssh, struct Packet *pktin) char *error = NULL; struct ssh_channel *c; unsigned remid, winsize, pktsize; + unsigned our_winsize_override = 0; struct Packet *pktout; ssh_pkt_getstring(pktin, &type, &typelen); @@ -7559,7 +8286,6 @@ static void ssh2_msg_channel_open(Ssh ssh, struct Packet *pktin) if (typelen == 3 && !memcmp(type, "x11", 3)) { char *addrstr; - const char *x11err; ssh_pkt_getstring(pktin, &peeraddr, &peeraddrlen); addrstr = snewn(peeraddrlen+1, char); @@ -7570,42 +8296,69 @@ static void ssh2_msg_channel_open(Ssh ssh, struct Packet *pktin) logeventf(ssh, "Received X11 connect request from %s:%d", addrstr, peerport); - if (!ssh->X11_fwd_enabled) + if (!ssh->X11_fwd_enabled && !ssh->connshare) error = "X11 forwarding is not enabled"; - else if ((x11err = x11_init(&c->u.x11.s, ssh->x11disp, c, - addrstr, peerport, ssh->conf)) != NULL) { - logeventf(ssh, "Local X11 connection failed: %s", x11err); - error = "Unable to open an X11 connection"; - } else { - logevent("Opening X11 forward connection succeeded"); + else { + c->u.x11.xconn = x11_init(ssh->x11authtree, c, + addrstr, peerport); c->type = CHAN_X11; + c->u.x11.initial = TRUE; + + /* + * If we are a connection-sharing upstream, then we should + * initially present a very small window, adequate to take + * the X11 initial authorisation packet but not much more. + * Downstream will then present us a larger window (by + * fiat of the connection-sharing protocol) and we can + * guarantee to send a positive-valued WINDOW_ADJUST. + */ + if (ssh->connshare) + our_winsize_override = 128; + + logevent("Opened X11 forward channel"); } sfree(addrstr); } else if (typelen == 15 && !memcmp(type, "forwarded-tcpip", 15)) { struct ssh_rportfwd pf, *realpf; - char *dummy; - int dummylen; - ssh_pkt_getstring(pktin, &dummy, &dummylen);/* skip address */ + char *shost; + int shostlen; + ssh_pkt_getstring(pktin, &shost, &shostlen);/* skip address */ + pf.shost = dupprintf("%.*s", shostlen, shost); pf.sport = ssh_pkt_getuint32(pktin); ssh_pkt_getstring(pktin, &peeraddr, &peeraddrlen); peerport = ssh_pkt_getuint32(pktin); realpf = find234(ssh->rportfwds, &pf, NULL); - logeventf(ssh, "Received remote port %d open request " - "from %s:%d", pf.sport, peeraddr, peerport); + logeventf(ssh, "Received remote port %s:%d open request " + "from %s:%d", pf.shost, pf.sport, peeraddr, peerport); + sfree(pf.shost); + if (realpf == NULL) { error = "Remote port is not recognised"; } else { - const char *e = pfd_newconnect(&c->u.pfd.s, - realpf->dhost, - realpf->dport, c, - ssh->conf, - realpf->pfrec->addressfamily); + char *err; + + if (realpf->share_ctx) { + /* + * This port forwarding is on behalf of a + * connection-sharing downstream, so abandon our own + * channel-open procedure and just pass the message on + * to sshshare.c. + */ + share_got_pkt_from_server(realpf->share_ctx, pktin->type, + pktin->body, pktin->length); + sfree(c); + return; + } + + err = pfd_connect(&c->u.pfd.pf, realpf->dhost, realpf->dport, + c, ssh->conf, realpf->pfrec->addressfamily); logeventf(ssh, "Attempting to forward remote port to " "%s:%d", realpf->dhost, realpf->dport); - if (e != NULL) { - logeventf(ssh, "Port open failed: %s", e); + if (err != NULL) { + logeventf(ssh, "Port open failed: %s", err); + sfree(err); error = "Port open failed"; } else { logevent("Forwarded port opened successfully"); @@ -7641,6 +8394,10 @@ static void ssh2_msg_channel_open(Ssh ssh, struct Packet *pktin) ssh2_channel_init(c); c->v.v2.remwindow = winsize; c->v.v2.remmaxpkt = pktsize; + if (our_winsize_override) { + c->v.v2.locwindow = c->v.v2.locmaxwin = c->v.v2.remlocwin = + our_winsize_override; + } add234(ssh->channels, c); pktout = ssh2_pkt_init(SSH2_MSG_CHANNEL_OPEN_CONFIRMATION); ssh2_pkt_adduint32(pktout, c->remoteid); @@ -7651,6 +8408,43 @@ static void ssh2_msg_channel_open(Ssh ssh, struct Packet *pktin) } } +void sshfwd_x11_sharing_handover(struct ssh_channel *c, + void *share_cs, void *share_chan, + const char *peer_addr, int peer_port, + int endian, int protomajor, int protominor, + const void *initial_data, int initial_len) +{ + /* + * This function is called when we've just discovered that an X + * forwarding channel on which we'd been handling the initial auth + * ourselves turns out to be destined for a connection-sharing + * downstream. So we turn the channel into a CHAN_SHARING, meaning + * that we completely stop tracking windows and buffering data and + * just pass more or less unmodified SSH messages back and forth. + */ + c->type = CHAN_SHARING; + c->u.sharing.ctx = share_cs; + share_setup_x11_channel(share_cs, share_chan, + c->localid, c->remoteid, c->v.v2.remwindow, + c->v.v2.remmaxpkt, c->v.v2.locwindow, + peer_addr, peer_port, endian, + protomajor, protominor, + initial_data, initial_len); +} + +void sshfwd_x11_is_local(struct ssh_channel *c) +{ + /* + * This function is called when we've just discovered that an X + * forwarding channel is _not_ destined for a connection-sharing + * downstream but we're going to handle it ourselves. We stop + * presenting a cautiously small window and go into ordinary data + * exchange mode. + */ + c->u.x11.initial = FALSE; + ssh2_set_window(c, ssh_is_simple(c->ssh) ? OUR_V2_BIGWIN : OUR_V2_WINSIZE); +} + /* * Buffer banner messages for later display at some convenient point, * if we're going to display them. @@ -7704,17 +8498,8 @@ static void ssh2_setup_x11(struct ssh_channel *c, struct Packet *pktin, pktout = ssh2_chanreq_init(ssh->mainchan, "x11-req", ssh2_setup_x11, s); ssh2_pkt_addbool(pktout, 0); /* many connections */ - ssh2_pkt_addstring(pktout, ssh->x11disp->remoteauthprotoname); - /* - * Note that while we blank the X authentication data here, we don't - * take any special action to blank the start of an X11 channel, - * so using MIT-MAGIC-COOKIE-1 and actually opening an X connection - * without having session blanking enabled is likely to leak your - * cookie into the log. - */ - dont_log_password(ssh, pktout, PKTLOG_BLANK); - ssh2_pkt_addstring(pktout, ssh->x11disp->remoteauthdatastring); - end_log_omission(ssh, pktout); + ssh2_pkt_addstring(pktout, ssh->x11auth->protoname); + ssh2_pkt_addstring(pktout, ssh->x11auth->datastring); ssh2_pkt_adduint32(pktout, ssh->x11disp->screennum); ssh2_pkt_send(ssh, pktout); @@ -7894,7 +8679,8 @@ static void ssh2_msg_authconn(Ssh ssh, struct Packet *pktin) static void ssh2_response_authconn(struct ssh_channel *c, struct Packet *pktin, void *ctx) { - do_ssh2_authconn(c->ssh, NULL, 0, pktin); + if (pktin) + do_ssh2_authconn(c->ssh, NULL, 0, pktin); } static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, @@ -7979,35 +8765,40 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, s->done_service_req = FALSE; s->we_are_in = s->userauth_success = FALSE; + s->agent_response = NULL; #ifndef NO_GSSAPI s->tried_gssapi = FALSE; #endif - if (!conf_get_int(ssh->conf, CONF_ssh_no_userauth)) { - /* - * Request userauth protocol, and await a response to it. - */ - s->pktout = ssh2_pkt_init(SSH2_MSG_SERVICE_REQUEST); - ssh2_pkt_addstring(s->pktout, "ssh-userauth"); - ssh2_pkt_send(ssh, s->pktout); - crWaitUntilV(pktin); - if (pktin->type == SSH2_MSG_SERVICE_ACCEPT) - s->done_service_req = TRUE; - } - if (!s->done_service_req) { - /* - * Request connection protocol directly, without authentication. - */ - s->pktout = ssh2_pkt_init(SSH2_MSG_SERVICE_REQUEST); - ssh2_pkt_addstring(s->pktout, "ssh-connection"); - ssh2_pkt_send(ssh, s->pktout); - crWaitUntilV(pktin); - if (pktin->type == SSH2_MSG_SERVICE_ACCEPT) { - s->we_are_in = TRUE; /* no auth required */ - } else { - bombout(("Server refused service request")); - crStopV; - } + if (!ssh->bare_connection) { + if (!conf_get_int(ssh->conf, CONF_ssh_no_userauth)) { + /* + * Request userauth protocol, and await a response to it. + */ + s->pktout = ssh2_pkt_init(SSH2_MSG_SERVICE_REQUEST); + ssh2_pkt_addstring(s->pktout, "ssh-userauth"); + ssh2_pkt_send(ssh, s->pktout); + crWaitUntilV(pktin); + if (pktin->type == SSH2_MSG_SERVICE_ACCEPT) + s->done_service_req = TRUE; + } + if (!s->done_service_req) { + /* + * Request connection protocol directly, without authentication. + */ + s->pktout = ssh2_pkt_init(SSH2_MSG_SERVICE_REQUEST); + ssh2_pkt_addstring(s->pktout, "ssh-connection"); + ssh2_pkt_send(ssh, s->pktout); + crWaitUntilV(pktin); + if (pktin->type == SSH2_MSG_SERVICE_ACCEPT) { + s->we_are_in = TRUE; /* no auth required */ + } else { + bombout(("Server refused service request")); + crStopV; + } + } + } else { + s->we_are_in = TRUE; } /* Arrange to be able to deal with any BANNERs that come in. @@ -8236,7 +9027,7 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, } else { char *stuff; if ((flags & FLAG_VERBOSE) || (flags & FLAG_INTERACTIVE)) { - stuff = dupprintf("Using username \"%s\".\r\n", ssh->username); + stuff = dupprintf(MPEXT_BOM "Using username \"%s\".\r\n", ssh->username); c_write_str(ssh, stuff); sfree(stuff); } @@ -8403,11 +9194,20 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, s->can_keyb_inter = conf_get_int(ssh->conf, CONF_try_ki_auth) && in_commasep_string("keyboard-interactive", methods, methlen); #ifndef NO_GSSAPI - if (!ssh->gsslibs) - ssh->gsslibs = ssh_gss_setup(ssh->conf); - s->can_gssapi = conf_get_int(ssh->conf, CONF_try_gssapi_auth) && - in_commasep_string("gssapi-with-mic", methods, methlen) && - ssh->gsslibs->nlibraries > 0; + if (conf_get_int(ssh->conf, CONF_try_gssapi_auth) && + in_commasep_string("gssapi-with-mic", methods, methlen)) { + /* Try loading the GSS libraries and see if we + * have any. */ + if (!ssh->gsslibs) + ssh->gsslibs = ssh_gss_setup(ssh->conf); + s->can_gssapi = (ssh->gsslibs->nlibraries > 0); + } else { + /* No point in even bothering to try to load the + * GSS libraries, if the user configuration and + * server aren't both prepared to attempt GSSAPI + * auth in the first place. */ + s->can_gssapi = FALSE; + } #endif } @@ -8741,6 +9541,8 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, logevent("Sent public key signature"); s->type = AUTH_TYPE_PUBLICKEY; key->alg->freekey(key->data); + sfree(key->comment); + sfree(key); } #ifndef NO_GSSAPI @@ -9069,10 +9871,8 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, s->pktout = ssh2_pkt_init(SSH2_MSG_USERAUTH_INFO_RESPONSE); ssh2_pkt_adduint32(s->pktout, s->num_prompts); for (i=0; i < s->num_prompts; i++) { - dont_log_password(ssh, s->pktout, PKTLOG_BLANK); ssh2_pkt_addstring(s->pktout, s->cur_prompt->prompts[i]->result); - end_log_omission(ssh, s->pktout); } ssh2_pkt_send_with_padding(ssh, s->pktout, 256); @@ -9160,9 +9960,7 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, /* service requested */ ssh2_pkt_addstring(s->pktout, "password"); ssh2_pkt_addbool(s->pktout, FALSE); - dont_log_password(ssh, s->pktout, PKTLOG_BLANK); ssh2_pkt_addstring(s->pktout, s->password); - end_log_omission(ssh, s->pktout); ssh2_pkt_send_with_padding(ssh, s->pktout, 256); logevent("Sent password"); s->type = AUTH_TYPE_PASSWORD; @@ -9289,12 +10087,10 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, /* service requested */ ssh2_pkt_addstring(s->pktout, "password"); ssh2_pkt_addbool(s->pktout, TRUE); - dont_log_password(ssh, s->pktout, PKTLOG_BLANK); ssh2_pkt_addstring(s->pktout, s->password); ssh2_pkt_addstring(s->pktout, s->cur_prompt->prompts[1]->result); free_prompts(s->cur_prompt); - end_log_omission(ssh, s->pktout); ssh2_pkt_send_with_padding(ssh, s->pktout, 256); logevent("Sent new password"); @@ -9357,7 +10153,7 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, if (s->agent_response) sfree(s->agent_response); - if (s->userauth_success) { + if (s->userauth_success && !ssh->bare_connection) { /* * We've just received USERAUTH_SUCCESS, and we haven't sent any * packets since. Signal the transport layer to consider enacting @@ -9371,10 +10167,6 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, do_ssh2_transport(ssh, "enabling delayed compression", -2, NULL); } - /* - * Now the connection protocol has started, one way or another. - */ - ssh->channels = newtree234(ssh_channelcmp); /* @@ -9452,8 +10244,15 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, ssh->packet_dispatch[SSH2_MSG_CHANNEL_SUCCESS] = ssh2_msg_channel_response; ssh->packet_dispatch[SSH2_MSG_CHANNEL_FAILURE] = ssh2_msg_channel_response; + /* + * Now the connection protocol is properly up and running, with + * all those dispatch table entries, so it's safe to let + * downstreams start trying to open extra channels through us. + */ + if (ssh->connshare) + share_activate(ssh->connshare, ssh->v_s); - if (ssh->mainchan && conf_get_int(ssh->conf, CONF_ssh_simple)) { + if (ssh->mainchan && ssh_is_simple(ssh)) { /* * This message indicates to the server that we promise * not to try to run any other channel in parallel with @@ -9479,15 +10278,25 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, */ /* Potentially enable X11 forwarding. */ - if (conf_get_int(ssh->conf, CONF_x11_forward) && - (ssh->x11disp = - x11_setup_display(conf_get_str(ssh->conf, CONF_x11_display), - conf_get_int(ssh->conf, CONF_x11_auth), - ssh->conf))) - ssh2_setup_x11(ssh->mainchan, NULL, NULL); + if (conf_get_int(ssh->conf, CONF_x11_forward)) { + ssh->x11disp = + x11_setup_display(conf_get_str(ssh->conf, CONF_x11_display), + ssh->conf); + if (!ssh->x11disp) { + /* FIXME: return an error message from x11_setup_display */ + logevent("X11 forwarding not enabled: unable to" + " initialise X display"); + } else { + ssh->x11auth = x11_invent_fake_auth + (ssh->x11authtree, conf_get_int(ssh->conf, CONF_x11_auth)); + ssh->x11auth->disp = ssh->x11disp; + + ssh2_setup_x11(ssh->mainchan, NULL, NULL); + } + } /* Potentially enable agent forwarding. */ - if (conf_get_int(ssh->conf, CONF_agentfwd) && agent_exists()) + if (ssh_agent_forwarding_permitted(ssh)) ssh2_setup_agent(ssh->mainchan, NULL, NULL); /* Now allocate a pty for the session. */ @@ -9605,7 +10414,8 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, * Try to send data on all channels if we can. */ for (i = 0; NULL != (c = index234(ssh->channels, i)); i++) - ssh2_try_send_and_unthrottle(ssh, c); + if (c->type != CHAN_SHARING) + ssh2_try_send_and_unthrottle(ssh, c); } } @@ -9749,6 +10559,48 @@ static void ssh2_protocol_setup(Ssh ssh) ssh->packet_dispatch[SSH2_MSG_DEBUG] = ssh2_msg_debug; } +static void ssh2_bare_connection_protocol_setup(Ssh ssh) +{ + int i; + + /* + * Most messages cause SSH2_MSG_UNIMPLEMENTED. + */ + for (i = 0; i < 256; i++) + ssh->packet_dispatch[i] = ssh2_msg_something_unimplemented; + + /* + * Initially, we set all ssh-connection messages to 'unexpected'; + * do_ssh2_authconn will fill things in properly. We also handle a + * couple of messages from the transport protocol which aren't + * related to key exchange (UNIMPLEMENTED, IGNORE, DEBUG, + * DISCONNECT). + */ + ssh->packet_dispatch[SSH2_MSG_GLOBAL_REQUEST] = ssh2_msg_unexpected; + ssh->packet_dispatch[SSH2_MSG_REQUEST_SUCCESS] = ssh2_msg_unexpected; + ssh->packet_dispatch[SSH2_MSG_REQUEST_FAILURE] = ssh2_msg_unexpected; + ssh->packet_dispatch[SSH2_MSG_CHANNEL_OPEN] = ssh2_msg_unexpected; + ssh->packet_dispatch[SSH2_MSG_CHANNEL_OPEN_CONFIRMATION] = ssh2_msg_unexpected; + ssh->packet_dispatch[SSH2_MSG_CHANNEL_OPEN_FAILURE] = ssh2_msg_unexpected; + ssh->packet_dispatch[SSH2_MSG_CHANNEL_WINDOW_ADJUST] = ssh2_msg_unexpected; + ssh->packet_dispatch[SSH2_MSG_CHANNEL_DATA] = ssh2_msg_unexpected; + ssh->packet_dispatch[SSH2_MSG_CHANNEL_EXTENDED_DATA] = ssh2_msg_unexpected; + ssh->packet_dispatch[SSH2_MSG_CHANNEL_EOF] = ssh2_msg_unexpected; + ssh->packet_dispatch[SSH2_MSG_CHANNEL_CLOSE] = ssh2_msg_unexpected; + ssh->packet_dispatch[SSH2_MSG_CHANNEL_REQUEST] = ssh2_msg_unexpected; + ssh->packet_dispatch[SSH2_MSG_CHANNEL_SUCCESS] = ssh2_msg_unexpected; + ssh->packet_dispatch[SSH2_MSG_CHANNEL_FAILURE] = ssh2_msg_unexpected; + + ssh->packet_dispatch[SSH2_MSG_UNIMPLEMENTED] = ssh2_msg_unexpected; + + /* + * These messages have a special handler from the start. + */ + ssh->packet_dispatch[SSH2_MSG_DISCONNECT] = ssh2_msg_disconnect; + ssh->packet_dispatch[SSH2_MSG_IGNORE] = ssh_msg_ignore; + ssh->packet_dispatch[SSH2_MSG_DEBUG] = ssh2_msg_debug; +} + static void ssh2_timer(void *ctx, unsigned long now) { Ssh ssh = (Ssh)ctx; @@ -9756,7 +10608,8 @@ static void ssh2_timer(void *ctx, unsigned long now) if (ssh->state == SSH_STATE_CLOSED) return; - if (!ssh->kex_in_progress && conf_get_int(ssh->conf, CONF_ssh_rekey_time) != 0 && + if (!ssh->kex_in_progress && !ssh->bare_connection && + conf_get_int(ssh->conf, CONF_ssh_rekey_time) != 0 && #ifdef MPEXT // our call from call_ssh_timer() does not guarantee the `now` to be exactly as scheduled (now >= ssh->next_rekey)) { @@ -9790,6 +10643,19 @@ static void ssh2_protocol(Ssh ssh, void *vin, int inlen, do_ssh2_authconn(ssh, in, inlen, pktin); } +static void ssh2_bare_connection_protocol(Ssh ssh, void *vin, int inlen, + struct Packet *pktin) +{ + unsigned char *in = (unsigned char *)vin; + if (ssh->state == SSH_STATE_CLOSED) + return; + + if (pktin) + ssh->packet_dispatch[pktin->type](ssh, pktin); + else + do_ssh2_authconn(ssh, in, inlen, pktin); +} + static void ssh_cache_conf_values(Ssh ssh) { ssh->logomitdata = conf_get_int(ssh->conf, CONF_logomitdata); @@ -9846,13 +10712,17 @@ static const char *ssh_init(void *frontend_handle, void **backend_handle, ssh->pkt_kctx = SSH2_PKTCTX_NOKEX; ssh->pkt_actx = SSH2_PKTCTX_NOAUTH; ssh->x11disp = NULL; + ssh->x11auth = NULL; + ssh->x11authtree = newtree234(x11_authcmp); ssh->v1_compressing = FALSE; ssh->v2_outgoing_sequence = 0; ssh->ssh1_rdpkt_crstate = 0; ssh->ssh2_rdpkt_crstate = 0; + ssh->ssh2_bare_rdpkt_crstate = 0; ssh->ssh_gotdata_crstate = 0; ssh->do_ssh1_connection_crstate = 0; ssh->do_ssh_init_state = NULL; + ssh->do_ssh_connection_init_state = NULL; ssh->do_ssh1_login_state = NULL; ssh->do_ssh2_transport_state = NULL; ssh->do_ssh2_authconn_state = NULL; @@ -9871,6 +10741,10 @@ static const char *ssh_init(void *frontend_handle, void **backend_handle, ssh->username = NULL; ssh->sent_console_eof = FALSE; ssh->got_pty = FALSE; + ssh->bare_connection = FALSE; + ssh->X11_fwd_enabled = FALSE; + ssh->connshare = NULL; + ssh->attempting_connshare = FALSE; *backend_handle = ssh; @@ -9916,13 +10790,14 @@ static const char *ssh_init(void *frontend_handle, void **backend_handle, ssh->gsslibs = NULL; #endif + random_ref(); /* do this now - may be needed by sharing setup code */ + p = connect_to_host(ssh, host, port, realhost, nodelay, keepalive); - if (p != NULL) + if (p != NULL) { + random_unref(); return p; - -#ifndef MPEXT + } random_ref(); -#endif return NULL; } @@ -9932,6 +10807,7 @@ static void ssh_free(void *handle) Ssh ssh = (Ssh) handle; struct ssh_channel *c; struct ssh_rportfwd *pf; + struct X11FakeAuth *auth; if (ssh->v1_cipher_ctx) ssh->cipher->free_context(ssh->v1_cipher_ctx); @@ -9974,13 +10850,13 @@ static void ssh_free(void *handle) while ((c = delpos234(ssh->channels, 0)) != NULL) { switch (c->type) { case CHAN_X11: - if (c->u.x11.s != NULL) - x11_close(c->u.x11.s); + if (c->u.x11.xconn != NULL) + x11_close(c->u.x11.xconn); break; case CHAN_SOCKDATA: case CHAN_SOCKDATA_DORMANT: - if (c->u.pfd.s != NULL) - pfd_close(c->u.pfd.s); + if (c->u.pfd.pf != NULL) + pfd_close(c->u.pfd.pf); break; } if (ssh->version == 2) { @@ -10000,6 +10876,9 @@ static void ssh_free(void *handle) ssh->channels = NULL; } + if (ssh->connshare) + sharestate_free(ssh->connshare); + if (ssh->rportfwds) { while ((pf = delpos234(ssh->rportfwds, 0)) != NULL) free_rportfwd(pf); @@ -10009,6 +10888,9 @@ static void ssh_free(void *handle) sfree(ssh->deferred_send_data); if (ssh->x11disp) x11_free_display(ssh->x11disp); + while ((auth = delpos234(ssh->x11authtree, 0)) != NULL) + x11_free_fake_auth(auth); + freetree234(ssh->x11authtree); sfree(ssh->do_ssh_init_state); sfree(ssh->do_ssh1_login_state); sfree(ssh->do_ssh2_transport_state); @@ -10097,7 +10979,7 @@ static void ssh_reconfig(void *handle, Conf *conf) ssh->conf = conf_copy(conf); ssh_cache_conf_values(ssh); - if (rekeying) { + if (!ssh->bare_connection && rekeying) { if (!ssh->kex_in_progress) { do_ssh2_transport(ssh, rekeying, -1, NULL); } else if (rekey_mandatory) { @@ -10252,7 +11134,7 @@ static const struct telnet_special *ssh_get_specials(void *handle) } else if (ssh->version == 2) { if (!(ssh->remote_bugs & BUG_CHOKES_ON_SSH2_IGNORE)) ADD_SPECIALS(ssh2_ignore_special); - if (!(ssh->remote_bugs & BUG_SSH2_REKEY)) + if (!(ssh->remote_bugs & BUG_SSH2_REKEY) && !ssh->bare_connection) ADD_SPECIALS(ssh2_rekey_special); if (ssh->mainchan) ADD_SPECIALS(ssh2_session_specials); @@ -10308,7 +11190,8 @@ static void ssh_special(void *handle, Telnet_Special code) } } } else if (code == TS_REKEY) { - if (!ssh->kex_in_progress && ssh->version == 2) { + if (!ssh->kex_in_progress && !ssh->bare_connection && + ssh->version == 2) { do_ssh2_transport(ssh, "at user request", -1, NULL); } } else if (code == TS_BRK) { @@ -10353,7 +11236,7 @@ static void ssh_special(void *handle, Telnet_Special code) } } -void *new_sock_channel(void *handle, Socket s) +void *new_sock_channel(void *handle, struct PortForwarding *pf) { Ssh ssh = (Ssh) handle; struct ssh_channel *c; @@ -10363,11 +11246,46 @@ void *new_sock_channel(void *handle, Socket s) ssh2_channel_init(c); c->halfopen = TRUE; c->type = CHAN_SOCKDATA_DORMANT;/* identify channel type */ - c->u.pfd.s = s; + c->u.pfd.pf = pf; add234(ssh->channels, c); return c; } +unsigned ssh_alloc_sharing_channel(Ssh ssh, void *sharing_ctx) +{ + struct ssh_channel *c; + c = snew(struct ssh_channel); + + c->ssh = ssh; + ssh2_channel_init(c); + c->type = CHAN_SHARING; + c->u.sharing.ctx = sharing_ctx; + add234(ssh->channels, c); + return c->localid; +} + +void ssh_delete_sharing_channel(Ssh ssh, unsigned localid) +{ + struct ssh_channel *c; + + c = find234(ssh->channels, &localid, ssh_channelfind); + if (c) + ssh_channel_destroy(c); +} + +void ssh_send_packet_from_downstream(Ssh ssh, unsigned id, int type, + const void *data, int datalen, + const char *additional_log_text) +{ + struct Packet *pkt; + + pkt = ssh2_pkt_init(type); + pkt->downstream_id = id; + pkt->additional_log_text = additional_log_text; + ssh2_pkt_adddata(pkt, data, datalen); + ssh2_pkt_send(ssh, pkt); +} + /* * This is called when stdout/stderr (the entity to which * from_backend sends data) manages to clear some backlog. @@ -10387,7 +11305,7 @@ static void ssh_unthrottle(void *handle, int bufsize) ssh2_set_window(ssh->mainchan, bufsize < ssh->mainchan->v.v2.locmaxwin ? ssh->mainchan->v.v2.locmaxwin - bufsize : 0); - if (conf_get_int(ssh->conf, CONF_ssh_simple)) + if (ssh_is_simple(ssh)) buflimit = 0; else buflimit = ssh->mainchan->v.v2.locmaxwin; @@ -10422,7 +11340,11 @@ void ssh_send_port_open(void *channel, char *hostname, int port, char *org) PKT_END); } else { pktout = ssh2_chanopen_init(c, "direct-tcpip"); - ssh2_pkt_addstring(pktout, hostname); + { + char *trimmed_host = host_strduptrim(hostname); + ssh2_pkt_addstring(pktout, trimmed_host); + sfree(trimmed_host); + } ssh2_pkt_adduint32(pktout, port); /* * We make up values for the originator data; partly it's @@ -10483,13 +11405,19 @@ static int ssh_return_exitcode(void *handle) } /* - * cfg_info for SSH is the currently running version of the - * protocol. (1 for 1; 2 for 2; 0 for not-decided-yet.) + * cfg_info for SSH is the protocol running in this session. + * (1 or 2 for the full SSH-1 or SSH-2 protocol; -1 for the bare + * SSH-2 connection protocol, i.e. a downstream; 0 for not-decided-yet.) */ static int ssh_cfg_info(void *handle) { Ssh ssh = (Ssh) handle; - return ssh->version; + if (ssh->version == 0) + return 0; /* don't know yet */ + else if (ssh->bare_connection) + return -1; + else + return ssh->version; } /* @@ -10524,3 +11452,106 @@ Backend ssh_backend = { PROT_SSH, 22 }; + +#ifdef MPEXT + +#include "puttyexp.h" + +void ssh_close(void * handle) +{ + ssh_do_close((Ssh)handle, FALSE); +} + +int is_ssh(void * handle) +{ + Plug fn = (Plug)handle; + return (*fn)->closing == ssh_closing; +} + +void call_ssh_timer(void * handle) +{ + if (((Ssh)handle)->version == 2) + { + ssh2_timer(handle, GETTICKCOUNT()); + } +} + +int get_ssh_version(void * handle) +{ + return ((Ssh)handle)->version; +} + +void * get_ssh_frontend(void * handle) +{ + return ((Ssh)handle)->frontend; +} + +int get_ssh1_compressing(void * handle) +{ + return ((Ssh)handle)->v1_compressing; +} + +const struct ssh_cipher * get_cipher(void * handle) +{ + return ((Ssh)handle)->cipher; +} + +const struct ssh2_cipher * get_cscipher(void * handle) +{ + return ((Ssh)handle)->cscipher; +} + +const struct ssh2_cipher * get_sccipher(void * handle) +{ + return ((Ssh)handle)->sccipher; +} + +const struct ssh_compress * get_cscomp(void * handle) +{ + return ((Ssh)handle)->cscomp; +} + +const struct ssh_compress * get_sccomp(void * handle) +{ + return ((Ssh)handle)->sccomp; +} + +int get_ssh_state(void * handle) +{ + return ((Ssh)handle)->state; +} + +int get_ssh_state_closed(void * handle) +{ + return ((Ssh)handle)->state == SSH_STATE_CLOSED; +} + +int get_ssh_state_session(void * handle) +{ + return ((Ssh)handle)->state == SSH_STATE_SESSION; +} + +int get_ssh_exitcode(void * handle) +{ + return ssh_return_exitcode(handle); +} + +const unsigned int * ssh2_remmaxpkt(void * handle) +{ + return &((Ssh)handle)->mainchan->v.v2.remmaxpkt; +} + +const unsigned int * ssh2_remwindow(void * handle) +{ + return &((Ssh)handle)->mainchan->v.v2.remwindow; +} + +void md5checksum(const char * buffer, int len, unsigned char output[16]) +{ + struct MD5Context md5c; + MD5Init(&md5c); + MD5Update(&md5c, buffer, len); + MD5Final(output, &md5c); +} + +#endif diff --git a/source/putty/SSH.H b/source/putty/SSH.H index 28614305..e6c9bdc3 100644 --- a/source/putty/SSH.H +++ b/source/putty/SSH.H @@ -1,3 +1,4 @@ +#ifndef WINSCP_VS #include #include @@ -8,11 +9,54 @@ #include "misc.h" struct ssh_channel; +typedef struct ssh_tag *Ssh; extern int sshfwd_write(struct ssh_channel *c, char *, int); extern void sshfwd_write_eof(struct ssh_channel *c); extern void sshfwd_unclean_close(struct ssh_channel *c, const char *err); extern void sshfwd_unthrottle(struct ssh_channel *c, int bufsize); +Conf *sshfwd_get_conf(struct ssh_channel *c); +void sshfwd_x11_sharing_handover(struct ssh_channel *c, + void *share_cs, void *share_chan, + const char *peer_addr, int peer_port, + int endian, int protomajor, int protominor, + const void *initial_data, int initial_len); +void sshfwd_x11_is_local(struct ssh_channel *c); + +extern Socket ssh_connection_sharing_init(const char *host, int port, + Conf *conf, Ssh ssh, void **state); +void share_got_pkt_from_server(void *ctx, int type, + unsigned char *pkt, int pktlen); +void share_activate(void *state, const char *server_verstring); +void sharestate_free(void *state); +int share_ndownstreams(void *state); + +void ssh_connshare_log(Ssh ssh, int event, const char *logtext, + const char *ds_err, const char *us_err); +unsigned ssh_alloc_sharing_channel(Ssh ssh, void *sharing_ctx); +void ssh_delete_sharing_channel(Ssh ssh, unsigned localid); +int ssh_alloc_sharing_rportfwd(Ssh ssh, const char *shost, int sport, + void *share_ctx); +void ssh_sharing_queue_global_request(Ssh ssh, void *share_ctx); +struct X11FakeAuth *ssh_sharing_add_x11_display(Ssh ssh, int authtype, + void *share_cs, + void *share_chan); +void ssh_sharing_remove_x11_display(Ssh ssh, struct X11FakeAuth *auth); +void ssh_send_packet_from_downstream(Ssh ssh, unsigned id, int type, + const void *pkt, int pktlen, + const char *additional_log_text); +void ssh_sharing_downstream_connected(Ssh ssh, unsigned id, + const char *peerinfo); +void ssh_sharing_downstream_disconnected(Ssh ssh, unsigned id); +void ssh_sharing_logf(Ssh ssh, unsigned id, const char *logfmt, ...); +int ssh_agent_forwarding_permitted(Ssh ssh); +void share_setup_x11_channel(void *csv, void *chanv, + unsigned upstream_id, unsigned server_id, + unsigned server_currwin, unsigned server_maxpkt, + unsigned client_adjusted_window, + const char *peer_addr, int peer_port, int endian, + int protomajor, int protominor, + const void *initial_data, int initial_len); /* * Useful thing. @@ -71,6 +115,7 @@ int rsa_verify(struct RSAKey *key); unsigned char *rsa_public_blob(struct RSAKey *key, int *len); int rsa_public_blob_len(void *data, int maxlen); void freersakey(struct RSAKey *key); +#endif // WINSCP_VS #ifndef PUTTY_UINT32_DEFINED /* This makes assumptions about the int type. */ @@ -79,6 +124,7 @@ typedef unsigned int uint32; #endif typedef uint32 word32; +#ifndef WINSCP_VS unsigned long crc32_compute(const void *s, size_t len); unsigned long crc32_update(unsigned long crc_input, const void *s, size_t len); @@ -149,12 +195,14 @@ void SHA_Simple(const void *p, int len, unsigned char *output); void hmac_sha1_simple(void *key, int keylen, void *data, int datalen, unsigned char *output); +#endif // WINSCP_VS typedef struct { uint32 h[8]; unsigned char block[64]; int blkused; uint32 lenhi, lenlo; } SHA256_State; +#ifndef WINSCP_VS void SHA256_Init(SHA256_State * s); void SHA256_Bytes(SHA256_State * s, const void *p, int len); void SHA256_Final(SHA256_State * s, unsigned char *output); @@ -340,24 +388,27 @@ void random_add_heavynoise(void *noise, int length); void logevent(void *, const char *); +struct PortForwarding; + /* Allocate and register a new channel for port forwarding */ -void *new_sock_channel(void *handle, Socket s); +void *new_sock_channel(void *handle, struct PortForwarding *pf); void ssh_send_port_open(void *channel, char *hostname, int port, char *org); /* Exports from portfwd.c */ -extern const char *pfd_newconnect(Socket * s, char *hostname, int port, - void *c, Conf *conf, int addressfamily); +extern char *pfd_connect(struct PortForwarding **pf, char *hostname, int port, + void *c, Conf *conf, int addressfamily); +extern void pfd_close(struct PortForwarding *); +extern int pfd_send(struct PortForwarding *, char *data, int len); +extern void pfd_send_eof(struct PortForwarding *); +extern void pfd_confirm(struct PortForwarding *); +extern void pfd_unthrottle(struct PortForwarding *); +extern void pfd_override_throttle(struct PortForwarding *, int enable); +struct PortListener; /* desthost == NULL indicates dynamic (SOCKS) port forwarding */ -extern const char *pfd_addforward(char *desthost, int destport, char *srcaddr, - int port, void *backhandle, Conf *conf, - void **sockdata, int address_family); -extern void pfd_close(Socket s); -extern void pfd_terminate(void *sockdata); -extern int pfd_send(Socket s, char *data, int len); -extern void pfd_send_eof(Socket s); -extern void pfd_confirm(Socket s); -extern void pfd_unthrottle(Socket s); -extern void pfd_override_throttle(Socket s, int enable); +extern char *pfl_listen(char *desthost, int destport, char *srcaddr, + int port, void *backhandle, Conf *conf, + struct PortListener **pl, int address_family); +extern void pfl_terminate(struct PortListener *); /* Exports from x11fwd.c */ enum { @@ -378,24 +429,41 @@ struct X11Display { int port; char *realhost; - /* Auth details we invented for the virtual display on the SSH server. */ - int remoteauthproto; - unsigned char *remoteauthdata; - int remoteauthdatalen; - char *remoteauthprotoname; - char *remoteauthdatastring; - /* Our local auth details for talking to the real X display. */ int localauthproto; unsigned char *localauthdata; int localauthdatalen; +}; +struct X11FakeAuth { + /* Auth details we invented for a virtual display on the SSH server. */ + int proto; + unsigned char *data; + int datalen; + char *protoname; + char *datastring; + + /* The encrypted form of the first block, in XDM-AUTHORIZATION-1. + * Used as part of the key when these structures are organised + * into a tree. See x11_invent_fake_auth for explanation. */ + unsigned char *xa1_firstblock; /* * Used inside x11fwd.c to remember recently seen * XDM-AUTHORIZATION-1 strings, to avoid replay attacks. */ tree234 *xdmseen; + + /* + * What to do with an X connection matching this auth data. + */ + struct X11Display *disp; + void *share_cs, *share_chan; }; +void *x11_make_greeting(int endian, int protomajor, int protominor, + int auth_proto, const void *auth_data, int auth_len, + const char *peer_ip, int peer_port, + int *outlen); +int x11_authcmp(void *av, void *bv); /* for putting X11FakeAuth in a tree234 */ /* * x11_setup_display() parses the display variable and fills in an * X11Display structure. Some remote auth details are invented; @@ -403,16 +471,17 @@ struct X11Display { * authorisation protocol to use at the remote end. The local auth * details are looked up by calling platform_get_x11_auth. */ -extern struct X11Display *x11_setup_display(char *display, int authtype, - Conf *); +extern struct X11Display *x11_setup_display(char *display, Conf *); void x11_free_display(struct X11Display *disp); -extern const char *x11_init(Socket *, struct X11Display *, void *, - const char *, int, Conf *); -extern void x11_close(Socket); -extern int x11_send(Socket, char *, int); -extern void x11_send_eof(Socket s); -extern void x11_unthrottle(Socket s); -extern void x11_override_throttle(Socket s, int enable); +struct X11FakeAuth *x11_invent_fake_auth(tree234 *t, int authtype); +void x11_free_fake_auth(struct X11FakeAuth *auth); +struct X11Connection; /* opaque outside x11fwd.c */ +struct X11Connection *x11_init(tree234 *authtree, void *, const char *, int); +extern void x11_close(struct X11Connection *); +extern int x11_send(struct X11Connection *, char *, int); +extern void x11_send_eof(struct X11Connection *s); +extern void x11_unthrottle(struct X11Connection *s); +extern void x11_override_throttle(struct X11Connection *s, int enable); char *x11_display(const char *display); /* Platform-dependent X11 functions */ extern void platform_get_x11_auth(struct X11Display *display, Conf *); @@ -439,6 +508,8 @@ char *platform_get_x_display(void); */ void x11_get_auth_from_authfile(struct X11Display *display, const char *authfilename); +int x11_identify_auth_proto(const char *proto); +void *x11_dehexify(const char *hex, int *outlen); Bignum copybn(Bignum b); Bignum bn_power_2(int n); @@ -543,8 +614,10 @@ void aes256_encrypt_pubkey(unsigned char *key, unsigned char *blk, void aes256_decrypt_pubkey(unsigned char *key, unsigned char *blk, int len); -void des_encrypt_xdmauth(unsigned char *key, unsigned char *blk, int len); -void des_decrypt_xdmauth(unsigned char *key, unsigned char *blk, int len); +void des_encrypt_xdmauth(const unsigned char *key, + unsigned char *blk, int len); +void des_decrypt_xdmauth(const unsigned char *key, + unsigned char *blk, int len); /* * For progress updates in the key generation utility. @@ -578,6 +651,128 @@ int zlib_compress_block(void *, unsigned char *block, int len, int zlib_decompress_block(void *, unsigned char *block, int len, unsigned char **outblock, int *outlen); +/* + * Connection-sharing API provided by platforms. This function must + * either: + * - return SHARE_NONE and do nothing + * - return SHARE_DOWNSTREAM and set *sock to a Socket connected to + * downplug + * - return SHARE_UPSTREAM and set *sock to a Socket connected to + * upplug. + */ +enum { SHARE_NONE, SHARE_DOWNSTREAM, SHARE_UPSTREAM }; +int platform_ssh_share(const char *name, Conf *conf, + Plug downplug, Plug upplug, Socket *sock, + char **logtext, char **ds_err, char **us_err, + int can_upstream, int can_downstream); +void platform_ssh_share_cleanup(const char *name); + +/* + * SSH-1 message type codes. + */ +#define SSH1_MSG_DISCONNECT 1 /* 0x1 */ +#define SSH1_SMSG_PUBLIC_KEY 2 /* 0x2 */ +#define SSH1_CMSG_SESSION_KEY 3 /* 0x3 */ +#define SSH1_CMSG_USER 4 /* 0x4 */ +#define SSH1_CMSG_AUTH_RSA 6 /* 0x6 */ +#define SSH1_SMSG_AUTH_RSA_CHALLENGE 7 /* 0x7 */ +#define SSH1_CMSG_AUTH_RSA_RESPONSE 8 /* 0x8 */ +#define SSH1_CMSG_AUTH_PASSWORD 9 /* 0x9 */ +#define SSH1_CMSG_REQUEST_PTY 10 /* 0xa */ +#define SSH1_CMSG_WINDOW_SIZE 11 /* 0xb */ +#define SSH1_CMSG_EXEC_SHELL 12 /* 0xc */ +#define SSH1_CMSG_EXEC_CMD 13 /* 0xd */ +#define SSH1_SMSG_SUCCESS 14 /* 0xe */ +#define SSH1_SMSG_FAILURE 15 /* 0xf */ +#define SSH1_CMSG_STDIN_DATA 16 /* 0x10 */ +#define SSH1_SMSG_STDOUT_DATA 17 /* 0x11 */ +#define SSH1_SMSG_STDERR_DATA 18 /* 0x12 */ +#define SSH1_CMSG_EOF 19 /* 0x13 */ +#define SSH1_SMSG_EXIT_STATUS 20 /* 0x14 */ +#define SSH1_MSG_CHANNEL_OPEN_CONFIRMATION 21 /* 0x15 */ +#define SSH1_MSG_CHANNEL_OPEN_FAILURE 22 /* 0x16 */ +#define SSH1_MSG_CHANNEL_DATA 23 /* 0x17 */ +#define SSH1_MSG_CHANNEL_CLOSE 24 /* 0x18 */ +#define SSH1_MSG_CHANNEL_CLOSE_CONFIRMATION 25 /* 0x19 */ +#define SSH1_SMSG_X11_OPEN 27 /* 0x1b */ +#define SSH1_CMSG_PORT_FORWARD_REQUEST 28 /* 0x1c */ +#define SSH1_MSG_PORT_OPEN 29 /* 0x1d */ +#define SSH1_CMSG_AGENT_REQUEST_FORWARDING 30 /* 0x1e */ +#define SSH1_SMSG_AGENT_OPEN 31 /* 0x1f */ +#define SSH1_MSG_IGNORE 32 /* 0x20 */ +#define SSH1_CMSG_EXIT_CONFIRMATION 33 /* 0x21 */ +#define SSH1_CMSG_X11_REQUEST_FORWARDING 34 /* 0x22 */ +#define SSH1_CMSG_AUTH_RHOSTS_RSA 35 /* 0x23 */ +#define SSH1_MSG_DEBUG 36 /* 0x24 */ +#define SSH1_CMSG_REQUEST_COMPRESSION 37 /* 0x25 */ +#define SSH1_CMSG_AUTH_TIS 39 /* 0x27 */ +#define SSH1_SMSG_AUTH_TIS_CHALLENGE 40 /* 0x28 */ +#define SSH1_CMSG_AUTH_TIS_RESPONSE 41 /* 0x29 */ +#define SSH1_CMSG_AUTH_CCARD 70 /* 0x46 */ +#define SSH1_SMSG_AUTH_CCARD_CHALLENGE 71 /* 0x47 */ +#define SSH1_CMSG_AUTH_CCARD_RESPONSE 72 /* 0x48 */ + +#define SSH1_AUTH_RHOSTS 1 /* 0x1 */ +#define SSH1_AUTH_RSA 2 /* 0x2 */ +#define SSH1_AUTH_PASSWORD 3 /* 0x3 */ +#define SSH1_AUTH_RHOSTS_RSA 4 /* 0x4 */ +#define SSH1_AUTH_TIS 5 /* 0x5 */ +#define SSH1_AUTH_CCARD 16 /* 0x10 */ + +#define SSH1_PROTOFLAG_SCREEN_NUMBER 1 /* 0x1 */ +/* Mask for protoflags we will echo back to server if seen */ +#define SSH1_PROTOFLAGS_SUPPORTED 0 /* 0x1 */ + +/* + * SSH-2 message type codes. + */ +#define SSH2_MSG_DISCONNECT 1 /* 0x1 */ +#define SSH2_MSG_IGNORE 2 /* 0x2 */ +#define SSH2_MSG_UNIMPLEMENTED 3 /* 0x3 */ +#define SSH2_MSG_DEBUG 4 /* 0x4 */ +#define SSH2_MSG_SERVICE_REQUEST 5 /* 0x5 */ +#define SSH2_MSG_SERVICE_ACCEPT 6 /* 0x6 */ +#define SSH2_MSG_KEXINIT 20 /* 0x14 */ +#define SSH2_MSG_NEWKEYS 21 /* 0x15 */ +#define SSH2_MSG_KEXDH_INIT 30 /* 0x1e */ +#define SSH2_MSG_KEXDH_REPLY 31 /* 0x1f */ +#define SSH2_MSG_KEX_DH_GEX_REQUEST_OLD 30 /* 0x1e */ +#define SSH2_MSG_KEX_DH_GEX_REQUEST 34 /* 0x22 */ +#define SSH2_MSG_KEX_DH_GEX_GROUP 31 /* 0x1f */ +#define SSH2_MSG_KEX_DH_GEX_INIT 32 /* 0x20 */ +#define SSH2_MSG_KEX_DH_GEX_REPLY 33 /* 0x21 */ +#define SSH2_MSG_KEXRSA_PUBKEY 30 /* 0x1e */ +#define SSH2_MSG_KEXRSA_SECRET 31 /* 0x1f */ +#define SSH2_MSG_KEXRSA_DONE 32 /* 0x20 */ +#define SSH2_MSG_USERAUTH_REQUEST 50 /* 0x32 */ +#define SSH2_MSG_USERAUTH_FAILURE 51 /* 0x33 */ +#define SSH2_MSG_USERAUTH_SUCCESS 52 /* 0x34 */ +#define SSH2_MSG_USERAUTH_BANNER 53 /* 0x35 */ +#define SSH2_MSG_USERAUTH_PK_OK 60 /* 0x3c */ +#define SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ 60 /* 0x3c */ +#define SSH2_MSG_USERAUTH_INFO_REQUEST 60 /* 0x3c */ +#define SSH2_MSG_USERAUTH_INFO_RESPONSE 61 /* 0x3d */ +#define SSH2_MSG_GLOBAL_REQUEST 80 /* 0x50 */ +#define SSH2_MSG_REQUEST_SUCCESS 81 /* 0x51 */ +#define SSH2_MSG_REQUEST_FAILURE 82 /* 0x52 */ +#define SSH2_MSG_CHANNEL_OPEN 90 /* 0x5a */ +#define SSH2_MSG_CHANNEL_OPEN_CONFIRMATION 91 /* 0x5b */ +#define SSH2_MSG_CHANNEL_OPEN_FAILURE 92 /* 0x5c */ +#define SSH2_MSG_CHANNEL_WINDOW_ADJUST 93 /* 0x5d */ +#define SSH2_MSG_CHANNEL_DATA 94 /* 0x5e */ +#define SSH2_MSG_CHANNEL_EXTENDED_DATA 95 /* 0x5f */ +#define SSH2_MSG_CHANNEL_EOF 96 /* 0x60 */ +#define SSH2_MSG_CHANNEL_CLOSE 97 /* 0x61 */ +#define SSH2_MSG_CHANNEL_REQUEST 98 /* 0x62 */ +#define SSH2_MSG_CHANNEL_SUCCESS 99 /* 0x63 */ +#define SSH2_MSG_CHANNEL_FAILURE 100 /* 0x64 */ +#define SSH2_MSG_USERAUTH_GSSAPI_RESPONSE 60 +#define SSH2_MSG_USERAUTH_GSSAPI_TOKEN 61 +#define SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE 63 +#define SSH2_MSG_USERAUTH_GSSAPI_ERROR 64 +#define SSH2_MSG_USERAUTH_GSSAPI_ERRTOK 65 +#define SSH2_MSG_USERAUTH_GSSAPI_MIC 66 + /* * SSH-1 agent messages. */ @@ -606,8 +801,35 @@ int zlib_decompress_block(void *, unsigned char *block, int len, #define SSH2_AGENTC_REMOVE_IDENTITY 18 #define SSH2_AGENTC_REMOVE_ALL_IDENTITIES 19 +/* + * Assorted other SSH-related enumerations. + */ +#define SSH2_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT 1 /* 0x1 */ +#define SSH2_DISCONNECT_PROTOCOL_ERROR 2 /* 0x2 */ +#define SSH2_DISCONNECT_KEY_EXCHANGE_FAILED 3 /* 0x3 */ +#define SSH2_DISCONNECT_HOST_AUTHENTICATION_FAILED 4 /* 0x4 */ +#define SSH2_DISCONNECT_MAC_ERROR 5 /* 0x5 */ +#define SSH2_DISCONNECT_COMPRESSION_ERROR 6 /* 0x6 */ +#define SSH2_DISCONNECT_SERVICE_NOT_AVAILABLE 7 /* 0x7 */ +#define SSH2_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED 8 /* 0x8 */ +#define SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE 9 /* 0x9 */ +#define SSH2_DISCONNECT_CONNECTION_LOST 10 /* 0xa */ +#define SSH2_DISCONNECT_BY_APPLICATION 11 /* 0xb */ +#define SSH2_DISCONNECT_TOO_MANY_CONNECTIONS 12 /* 0xc */ +#define SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER 13 /* 0xd */ +#define SSH2_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE 14 /* 0xe */ +#define SSH2_DISCONNECT_ILLEGAL_USER_NAME 15 /* 0xf */ + +#define SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED 1 /* 0x1 */ +#define SSH2_OPEN_CONNECT_FAILED 2 /* 0x2 */ +#define SSH2_OPEN_UNKNOWN_CHANNEL_TYPE 3 /* 0x3 */ +#define SSH2_OPEN_RESOURCE_SHORTAGE 4 /* 0x4 */ + +#define SSH2_EXTENDED_DATA_STDERR 1 /* 0x1 */ + /* * Need this to warn about support for the original SSH-2 keyfile * format. */ void old_keyfile_warning(void); +#endif // WINSCP_VS diff --git a/source/putty/SSHAES.C b/source/putty/SSHAES.C index 97935b7f..0257b567 100644 --- a/source/putty/SSHAES.C +++ b/source/putty/SSHAES.C @@ -27,8 +27,10 @@ * same answers at the same speed. */ +#ifndef WINSCP_VS #include #include +#endif // !WINSCP_VS #include "ssh.h" @@ -679,7 +681,10 @@ static const word32 D3[256] = { * Core encrypt routines, expecting word32 inputs read big-endian * from the byte-oriented input stream. */ -static void aes_encrypt_nb_4(AESContext * ctx, word32 * block) +void aes_encrypt_nb_4(AESContext * ctx, word32 * block) +#ifndef WINSCP_VS +; +#else { int i; static const int C1 = 1, C2 = 2, C3 = 3, Nb = 4; @@ -707,7 +712,11 @@ static void aes_encrypt_nb_4(AESContext * ctx, word32 * block) MOVEWORD(3); ADD_ROUND_KEY_4; } -static void aes_encrypt_nb_6(AESContext * ctx, word32 * block) +#endif // WINSCP_VS +void aes_encrypt_nb_6(AESContext * ctx, word32 * block) +#ifndef WINSCP_VS +; +#else { int i; static const int C1 = 1, C2 = 2, C3 = 3, Nb = 6; @@ -743,7 +752,11 @@ static void aes_encrypt_nb_6(AESContext * ctx, word32 * block) MOVEWORD(5); ADD_ROUND_KEY_6; } -static void aes_encrypt_nb_8(AESContext * ctx, word32 * block) +#endif // WINSCP_VS +void aes_encrypt_nb_8(AESContext * ctx, word32 * block) +#ifndef WINSCP_VS +; +#else { int i; static const int C1 = 1, C2 = 3, C3 = 4, Nb = 8; @@ -788,6 +801,7 @@ static void aes_encrypt_nb_8(AESContext * ctx, word32 * block) ADD_ROUND_KEY_8; } +#endif // WINSCP_VS #undef MAKEWORD #undef LASTWORD @@ -808,7 +822,10 @@ static void aes_encrypt_nb_8(AESContext * ctx, word32 * block) * Core decrypt routines, expecting word32 inputs read big-endian * from the byte-oriented input stream. */ -static void aes_decrypt_nb_4(AESContext * ctx, word32 * block) +void aes_decrypt_nb_4(AESContext * ctx, word32 * block) +#ifndef WINSCP_VS +; +#else { int i; static const int C1 = 4 - 1, C2 = 4 - 2, C3 = 4 - 3, Nb = 4; @@ -836,7 +853,11 @@ static void aes_decrypt_nb_4(AESContext * ctx, word32 * block) MOVEWORD(3); ADD_ROUND_KEY_4; } -static void aes_decrypt_nb_6(AESContext * ctx, word32 * block) +#endif // WINSCP_VS +void aes_decrypt_nb_6(AESContext * ctx, word32 * block) +#ifndef WINSCP_VS +; +#else { int i; static const int C1 = 6 - 1, C2 = 6 - 2, C3 = 6 - 3, Nb = 6; @@ -872,7 +893,11 @@ static void aes_decrypt_nb_6(AESContext * ctx, word32 * block) MOVEWORD(5); ADD_ROUND_KEY_6; } -static void aes_decrypt_nb_8(AESContext * ctx, word32 * block) +#endif // WINSCP_VS +void aes_decrypt_nb_8(AESContext * ctx, word32 * block) +#ifndef WINSCP_VS +; +#else { int i; static const int C1 = 8 - 1, C2 = 8 - 3, C3 = 8 - 4, Nb = 8; @@ -917,10 +942,12 @@ static void aes_decrypt_nb_8(AESContext * ctx, word32 * block) ADD_ROUND_KEY_8; } +#endif // WINSCP_VS #undef MAKEWORD #undef LASTWORD +#ifndef WINSCP_VS /* * Set up an AESContext. `keylen' and `blocklen' are measured in * bytes; each can be either 16 (128-bit), 24 (192-bit), or 32 @@ -1232,3 +1259,35 @@ const struct ssh2_ciphers ssh2_aes = { sizeof(aes_list) / sizeof(*aes_list), aes_list }; + +#ifdef MPEXT + +#include "puttyexp.h" + +void * call_aes_make_context() +{ + return aes_make_context(); +} + +void call_aes_free_context(void * handle) +{ + aes_free_context(handle); +} + +void call_aes_setup(void * ctx, int blocklen, unsigned char * key, int keylen) +{ + aes_setup((AESContext *)ctx, blocklen, key, keylen); +} + +void call_aes_encrypt(void * ctx, unsigned int * block) +{ + aes_encrypt((AESContext *)ctx, block); +} + +void call_aes_decrypt(void * ctx, unsigned int * block) +{ + aes_decrypt((AESContext *)ctx, block); +} + +#endif +#endif // WINSCP_VS diff --git a/source/putty/SSHAES_.C b/source/putty/SSHAES_.C deleted file mode 100644 index 4bb1a109..00000000 --- a/source/putty/SSHAES_.C +++ /dev/null @@ -1,29 +0,0 @@ -#include "sshaes.c" - -#include "puttyexp.h" - -void * call_aes_make_context() -{ - return aes_make_context(); -} - -void call_aes_free_context(void * handle) -{ - aes_free_context(handle); -} - -void call_aes_setup(void * ctx, int blocklen, unsigned char * key, int keylen) -{ - aes_setup((AESContext *)ctx, blocklen, key, keylen); -} - -void call_aes_encrypt(void * ctx, unsigned int * block) -{ - aes_encrypt((AESContext *)ctx, block); -} - -void call_aes_decrypt(void * ctx, unsigned int * block) -{ - aes_decrypt((AESContext *)ctx, block); -} - diff --git a/source/putty/SSHBLOWF.C b/source/putty/SSHBLOWF.C index e3b4f509..8a106cbe 100644 --- a/source/putty/SSHBLOWF.C +++ b/source/putty/SSHBLOWF.C @@ -16,6 +16,27 @@ typedef struct { /* * The Blowfish init data: hex digits of the fractional part of pi. * (ie pi as a hex fraction is 3.243F6A8885A308D3...) + * + * If you have Simon Tatham's 'spigot' exact real calculator + * available, or any other method of generating 8336 fractional hex + * digits of pi on standard output, you can regenerate these tables + * exactly as below using the following Perl script (adjusting the + * first line or two if your pi-generator is not spigot). + +open my $spig, "spigot -n -B16 -d8336 pi |"; +read $spig, $ignore, 2; # throw away the leading "3." +for my $name ("parray", "sbox0".."sbox3") { + print "static const word32 ${name}[] = {\n"; + my $len = $name eq "parray" ? 18 : 256; + for my $i (1..$len) { + read $spig, $word, 8; + printf "%s0x%s,", ($i%6==1 ? " " : " "), uc $word; + print "\n" if ($i == $len || $i%6 == 0); + } + print "};\n\n"; +} +close $spig; + */ static const word32 parray[] = { 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344, 0xA4093822, 0x299F31D0, diff --git a/source/putty/SSHBN.C b/source/putty/SSHBN.C index 48cb04d1..facdf3d5 100644 --- a/source/putty/SSHBN.C +++ b/source/putty/SSHBN.C @@ -10,101 +10,7 @@ #include "misc.h" -/* - * Usage notes: - * * Do not call the DIVMOD_WORD macro with expressions such as array - * subscripts, as some implementations object to this (see below). - * * Note that none of the division methods below will cope if the - * quotient won't fit into BIGNUM_INT_BITS. Callers should be careful - * to avoid this case. - * If this condition occurs, in the case of the x86 DIV instruction, - * an overflow exception will occur, which (according to a correspondent) - * will manifest on Windows as something like - * 0xC0000095: Integer overflow - * The C variant won't give the right answer, either. - */ - -#if defined __GNUC__ && defined __i386__ -typedef unsigned long BignumInt; -typedef unsigned long long BignumDblInt; -#define BIGNUM_INT_MASK 0xFFFFFFFFUL -#define BIGNUM_TOP_BIT 0x80000000UL -#define BIGNUM_INT_BITS 32 -#define MUL_WORD(w1, w2) ((BignumDblInt)w1 * w2) -#define DIVMOD_WORD(q, r, hi, lo, w) \ - __asm__("div %2" : \ - "=d" (r), "=a" (q) : \ - "r" (w), "d" (hi), "a" (lo)) -#elif (defined _MSC_VER && defined _M_IX86) || defined(MPEXT) -typedef unsigned __int32 BignumInt; -typedef unsigned __int64 BignumDblInt; -#define BIGNUM_INT_MASK 0xFFFFFFFFUL -#define BIGNUM_TOP_BIT 0x80000000UL -#define BIGNUM_INT_BITS 32 -#define MUL_WORD(w1, w2) ((BignumDblInt)w1 * w2) -/* Note: MASM interprets array subscripts in the macro arguments as - * assembler syntax, which gives the wrong answer. Don't supply them. - * */ -#ifdef MPEXT -// BCC requires semicolons -#define DIVMOD_WORD(q, r, hi, lo, w) do { \ - __asm mov edx, hi; \ - __asm mov eax, lo; \ - __asm div w; \ - __asm mov r, edx; \ - __asm mov q, eax; \ -} while(0) -#else -#define DIVMOD_WORD(q, r, hi, lo, w) do { \ - __asm mov edx, hi \ - __asm mov eax, lo \ - __asm div w \ - __asm mov r, edx \ - __asm mov q, eax \ -} while(0) -#endif -#elif defined _LP64 -/* 64-bit architectures can do 32x32->64 chunks at a time */ -typedef unsigned int BignumInt; -typedef unsigned long BignumDblInt; -#define BIGNUM_INT_MASK 0xFFFFFFFFU -#define BIGNUM_TOP_BIT 0x80000000U -#define BIGNUM_INT_BITS 32 -#define MUL_WORD(w1, w2) ((BignumDblInt)w1 * w2) -#define DIVMOD_WORD(q, r, hi, lo, w) do { \ - BignumDblInt n = (((BignumDblInt)hi) << BIGNUM_INT_BITS) | lo; \ - q = n / w; \ - r = n % w; \ -} while (0) -#elif defined _LLP64 -/* 64-bit architectures in which unsigned long is 32 bits, not 64 */ -typedef unsigned long BignumInt; -typedef unsigned long long BignumDblInt; -#define BIGNUM_INT_MASK 0xFFFFFFFFUL -#define BIGNUM_TOP_BIT 0x80000000UL -#define BIGNUM_INT_BITS 32 -#define MUL_WORD(w1, w2) ((BignumDblInt)w1 * w2) -#define DIVMOD_WORD(q, r, hi, lo, w) do { \ - BignumDblInt n = (((BignumDblInt)hi) << BIGNUM_INT_BITS) | lo; \ - q = n / w; \ - r = n % w; \ -} while (0) -#else -/* Fallback for all other cases */ -typedef unsigned short BignumInt; -typedef unsigned long BignumDblInt; -#define BIGNUM_INT_MASK 0xFFFFU -#define BIGNUM_TOP_BIT 0x8000U -#define BIGNUM_INT_BITS 16 -#define MUL_WORD(w1, w2) ((BignumDblInt)w1 * w2) -#define DIVMOD_WORD(q, r, hi, lo, w) do { \ - BignumDblInt n = (((BignumDblInt)hi) << BIGNUM_INT_BITS) | lo; \ - q = n / w; \ - r = n % w; \ -} while (0) -#endif - -#define BIGNUM_INT_BYTES (BIGNUM_INT_BITS / 8) +#include "sshbn.h" #define BIGNUM_INTERNAL typedef BignumInt *Bignum; @@ -609,7 +515,7 @@ static void monty_reduce(BignumInt *x, const BignumInt *n, } static void internal_add_shifted(BignumInt *number, - unsigned n, int shift) + BignumInt n, int shift) { int word = 1 + (shift / BIGNUM_INT_BITS); int bshift = shift % BIGNUM_INT_BITS; @@ -640,8 +546,7 @@ static void internal_mod(BignumInt *a, int alen, BignumInt *m, int mlen, BignumInt *quot, int qshift) { - BignumInt m0, m1; - unsigned int h; + BignumInt m0, m1, h; int i, k; m0 = m[0]; @@ -653,7 +558,7 @@ static void internal_mod(BignumInt *a, int alen, for (i = 0; i <= alen - mlen; i++) { BignumDblInt t; - unsigned int q, r, c, ai1; + BignumInt q, r, c, ai1; if (i == 0) { h = 0; @@ -708,7 +613,7 @@ static void internal_mod(BignumInt *a, int alen, for (k = mlen - 1; k >= 0; k--) { t = MUL_WORD(q, m[k]); t += c; - c = (unsigned)(t >> BIGNUM_INT_BITS); + c = (BignumInt)(t >> BIGNUM_INT_BITS); if ((BignumInt) t > a[i + k]) c++; a[i + k] -= (BignumInt) t; @@ -791,7 +696,7 @@ Bignum modpow_simple(Bignum base_in, Bignum exp, Bignum mod) /* Skip leading zero bits of exp. */ i = 0; j = BIGNUM_INT_BITS-1; - while (i < (int)exp[0] && (exp[exp[0] - i] & (1 << j)) == 0) { + while (i < (int)exp[0] && (exp[exp[0] - i] & ((BignumInt)1 << j)) == 0) { j--; if (j < 0) { i++; @@ -804,7 +709,7 @@ Bignum modpow_simple(Bignum base_in, Bignum exp, Bignum mod) while (j >= 0) { internal_mul(a + mlen, a + mlen, b, mlen, scratch); internal_mod(b, mlen * 2, m, mlen, NULL, 0); - if ((exp[exp[0] - i] & (1 << j)) != 0) { + if ((exp[exp[0] - i] & ((BignumInt)1 << j)) != 0) { internal_mul(b + mlen, n, a, mlen, scratch); internal_mod(a, mlen * 2, m, mlen, NULL, 0); } else { @@ -941,7 +846,7 @@ Bignum modpow(Bignum base_in, Bignum exp, Bignum mod) /* Skip leading zero bits of exp. */ i = 0; j = BIGNUM_INT_BITS-1; - while (i < (int)exp[0] && (exp[exp[0] - i] & (1 << j)) == 0) { + while (i < (int)exp[0] && (exp[exp[0] - i] & ((BignumInt)1 << j)) == 0) { j--; if (j < 0) { i++; @@ -954,7 +859,7 @@ Bignum modpow(Bignum base_in, Bignum exp, Bignum mod) while (j >= 0) { internal_mul(a + len, a + len, b, len, scratch); monty_reduce(b, n, mninv, scratch, len); - if ((exp[exp[0] - i] & (1 << j)) != 0) { + if ((exp[exp[0] - i] & ((BignumInt)1 << j)) != 0) { internal_mul(b + len, x, a, len, scratch); monty_reduce(a, n, mninv, scratch, len); } else { @@ -1204,7 +1109,8 @@ Bignum bignum_from_bytes(const unsigned char *data, int nbytes) result[i] = 0; for (i = nbytes; i--;) { unsigned char byte = *data++; - result[1 + i / BIGNUM_INT_BYTES] |= byte << (8*i % BIGNUM_INT_BITS); + result[1 + i / BIGNUM_INT_BYTES] |= + (BignumInt)byte << (8*i % BIGNUM_INT_BITS); } while (result[0] > 1 && result[result[0]] == 0) @@ -1300,7 +1206,7 @@ void bignum_set_bit(Bignum bn, int bitnum, int value) abort(); /* beyond the end */ else { int v = bitnum / BIGNUM_INT_BITS + 1; - int mask = 1 << (bitnum % BIGNUM_INT_BITS); + BignumInt mask = (BignumInt)1 << (bitnum % BIGNUM_INT_BITS); if (value) bn[v] |= mask; else @@ -1621,6 +1527,8 @@ Bignum bigdiv(Bignum a, Bignum b) { Bignum q = newbn(a[0]); bigdivmod(a, b, NULL, q); + while (q[0] > 1 && q[q[0]] == 0) + q[0]--; return q; } @@ -1631,6 +1539,8 @@ Bignum bigmod(Bignum a, Bignum b) { Bignum r = newbn(b[0]); bigdivmod(a, b, r, NULL); + while (r[0] > 1 && r[r[0]] == 0) + r[0]--; return r; } @@ -1690,6 +1600,8 @@ Bignum modinv(Bignum number, Bignum modulus) bigdivmod(a, b, t, q); while (t[0] > 1 && t[t[0]] == 0) t[0]--; + while (q[0] > 1 && q[q[0]] == 0) + q[0]--; freebn(a); a = b; b = t; @@ -1834,6 +1746,12 @@ void modalfatalbox(char *p, ...) exit(1); } +int random_byte(void) +{ + modalfatalbox("random_byte called in testbn"); + return 0; +} + #define fromxdigit(c) ( (c)>'9' ? ((c)&0xDF) - 'A' + 10 : (c) - '0' ) int main(int argc, char **argv) diff --git a/source/putty/SSHDES.C b/source/putty/SSHDES.C index 03d2b3ae..f54990e7 100644 --- a/source/putty/SSHDES.C +++ b/source/putty/SSHDES.C @@ -906,7 +906,7 @@ void des3_encrypt_pubkey_ossh(unsigned char *key, unsigned char *iv, smemclr(ourkeys, sizeof(ourkeys)); } -static void des_keysetup_xdmauth(unsigned char *keydata, DESContext *dc) +static void des_keysetup_xdmauth(const unsigned char *keydata, DESContext *dc) { unsigned char key[8]; int i, nbits, j; @@ -929,18 +929,20 @@ static void des_keysetup_xdmauth(unsigned char *keydata, DESContext *dc) des_key_setup(GET_32BIT_MSB_FIRST(key), GET_32BIT_MSB_FIRST(key + 4), dc); } -void des_encrypt_xdmauth(unsigned char *keydata, unsigned char *blk, int len) +void des_encrypt_xdmauth(const unsigned char *keydata, + unsigned char *blk, int len) { DESContext dc; des_keysetup_xdmauth(keydata, &dc); - des_cbc_encrypt(blk, 24, &dc); + des_cbc_encrypt(blk, len, &dc); } -void des_decrypt_xdmauth(unsigned char *keydata, unsigned char *blk, int len) +void des_decrypt_xdmauth(const unsigned char *keydata, + unsigned char *blk, int len) { DESContext dc; des_keysetup_xdmauth(keydata, &dc); - des_cbc_decrypt(blk, 24, &dc); + des_cbc_decrypt(blk, len, &dc); } static const struct ssh2_cipher ssh_3des_ssh2 = { @@ -1029,3 +1031,58 @@ const struct ssh_cipher ssh_des = { des_encrypt_blk, des_decrypt_blk, 8, "single-DES CBC" }; + +#ifdef TEST_XDM_AUTH + +/* + * Small standalone utility which allows encryption and decryption of + * single cipher blocks in the XDM-AUTHORIZATION-1 style. Written + * during the rework of X authorisation for connection sharing, to + * check the corner case when xa1_firstblock matches but the rest of + * the authorisation is bogus. + * + * Just compile this file on its own with the above ifdef symbol + * predefined: + +gcc -DTEST_XDM_AUTH -o sshdes sshdes.c + + */ + +#include +void *safemalloc(size_t n, size_t size) { return calloc(n, size); } +void safefree(void *p) { return free(p); } +void smemclr(void *p, size_t size) { memset(p, 0, size); } +int main(int argc, char **argv) +{ + unsigned char words[2][8]; + unsigned char out[8]; + int i, j; + + memset(words, 0, sizeof(words)); + + for (i = 0; i < 2; i++) { + for (j = 0; j < 8 && argv[i+1][2*j]; j++) { + char x[3]; + unsigned u; + x[0] = argv[i+1][2*j]; + x[1] = argv[i+1][2*j+1]; + x[2] = 0; + sscanf(x, "%02x", &u); + words[i][j] = u; + } + } + + memcpy(out, words[0], 8); + des_decrypt_xdmauth(words[1], out, 8); + printf("decrypt(%s,%s) = ", argv[1], argv[2]); + for (i = 0; i < 8; i++) printf("%02x", out[i]); + printf("\n"); + + memcpy(out, words[0], 8); + des_encrypt_xdmauth(words[1], out, 8); + printf("encrypt(%s,%s) = ", argv[1], argv[2]); + for (i = 0; i < 8; i++) printf("%02x", out[i]); + printf("\n"); +} + +#endif diff --git a/source/putty/SSHMD5.C b/source/putty/SSHMD5.C index 21852060..1434ab10 100644 --- a/source/putty/SSHMD5.C +++ b/source/putty/SSHMD5.C @@ -213,6 +213,7 @@ void MD5Simple(void const *p, unsigned len, unsigned char output[16]) MD5Init(&s); MD5Update(&s, (unsigned char const *)p, len); MD5Final(output, &s); + smemclr(&s, sizeof(s)); } /* ---------------------------------------------------------------------- @@ -230,6 +231,7 @@ void *hmacmd5_make_context(void) void hmacmd5_free_context(void *handle) { + smemclr(handle, 3*sizeof(struct MD5Context)); sfree(handle); } @@ -290,7 +292,7 @@ static int hmacmd5_verresult(void *handle, unsigned char const *hmac) { unsigned char correct[16]; hmacmd5_genresult(handle, correct); - return !memcmp(correct, hmac, 16); + return smemeq(correct, hmac, 16); } static void hmacmd5_do_hmac_internal(void *handle, @@ -330,7 +332,7 @@ static int hmacmd5_verify(void *handle, unsigned char *blk, int len, { unsigned char correct[16]; hmacmd5_do_hmac_ssh(handle, blk, len, seq, correct); - return !memcmp(correct, blk + len, 16); + return smemeq(correct, blk + len, 16); } const struct ssh_mac ssh_hmac_md5 = { diff --git a/source/putty/SSHPUBK.C b/source/putty/SSHPUBK.C index e52be803..a4ecb9d5 100644 --- a/source/putty/SSHPUBK.C +++ b/source/putty/SSHPUBK.C @@ -67,7 +67,7 @@ static int loadrsakey_main(FILE * fp, struct RSAKey *key, int pub_only, i += 4; /* Now the serious stuff. An ordinary SSH-1 public key. */ - j = makekey(buf + i, len, key, NULL, 1); + j = makekey(buf + i, len - i, key, NULL, 1); if (j < 0) goto end; /* overran */ i += j; @@ -513,54 +513,6 @@ static char *read_body(FILE * fp) } } -int base64_decode_atom(char *atom, unsigned char *out) -{ - int vals[4]; - int i, v, len; - unsigned word; - char c; - - for (i = 0; i < 4; i++) { - c = atom[i]; - if (c >= 'A' && c <= 'Z') - v = c - 'A'; - else if (c >= 'a' && c <= 'z') - v = c - 'a' + 26; - else if (c >= '0' && c <= '9') - v = c - '0' + 52; - else if (c == '+') - v = 62; - else if (c == '/') - v = 63; - else if (c == '=') - v = -1; - else - return 0; /* invalid atom */ - vals[i] = v; - } - - if (vals[0] == -1 || vals[1] == -1) - return 0; - if (vals[2] == -1 && vals[3] != -1) - return 0; - - if (vals[3] != -1) - len = 3; - else if (vals[2] != -1) - len = 2; - else - len = 1; - - word = ((vals[0] << 18) | - (vals[1] << 12) | ((vals[2] & 0x3F) << 6) | (vals[3] & 0x3F)); - out[0] = (word >> 16) & 0xFF; - if (len > 1) - out[1] = (word >> 8) & 0xFF; - if (len > 2) - out[2] = word & 0xFF; - return len; -} - static unsigned char *read_blob(FILE * fp, int nlines, int *bloblen) { unsigned char *blob; @@ -827,6 +779,7 @@ struct ssh2_userkey *ssh2_load_userkey(const Filename *filename, } } sfree(mac); + mac = NULL; /* * Create and return the key. @@ -837,7 +790,6 @@ struct ssh2_userkey *ssh2_load_userkey(const Filename *filename, ret->data = alg->createkey(public_blob, public_blob_len, private_blob, private_blob_len); if (!ret->data) { - sfree(ret->comment); sfree(ret); ret = NULL; error = "createkey failed"; @@ -866,8 +818,8 @@ struct ssh2_userkey *ssh2_load_userkey(const Filename *filename, if (public_blob) sfree(public_blob); if (private_blob) { - smemclr(private_blob, private_blob_len); - sfree(private_blob); + smemclr(private_blob, private_blob_len); + sfree(private_blob); } if (errorstr) *errorstr = error; @@ -885,7 +837,7 @@ unsigned char *ssh2_userkey_loadpub(const Filename *filename, char **algorithm, int public_blob_len; int i; const char *error = NULL; - char *comment; + char *comment = NULL; public_blob = NULL; @@ -910,11 +862,10 @@ unsigned char *ssh2_userkey_loadpub(const Filename *filename, char **algorithm, goto error; /* Select key algorithm structure. */ alg = find_pubkey_alg(b); + sfree(b); if (!alg) { - sfree(b); goto error; } - sfree(b); /* Read the Encryption header line. */ if (!read_header(fp, header) || 0 != strcmp(header, "Encryption")) @@ -961,6 +912,10 @@ unsigned char *ssh2_userkey_loadpub(const Filename *filename, char **algorithm, sfree(public_blob); if (errorstr) *errorstr = error; + if (comment && commentptr) { + sfree(comment); + *commentptr = NULL; + } return NULL; } diff --git a/source/putty/SSHRSA.C b/source/putty/SSHRSA.C index 4820dec5..5c1991ef 100644 --- a/source/putty/SSHRSA.C +++ b/source/putty/SSHRSA.C @@ -9,6 +9,7 @@ #include "ssh.h" #include "misc.h" + int makekey(unsigned char *data, int len, struct RSAKey *result, unsigned char **keystr, int order) { @@ -263,6 +264,7 @@ static Bignum rsa_privkey_op(Bignum input, struct RSAKey *key) bitsleft--; bignum_set_bit(random, bits, v); } + bn_restore_invariant(random); /* * Now check that this number is strictly greater than @@ -766,6 +768,8 @@ static int rsa2_pubkey_bits(void *blob, int len) int ret; rsa = rsa2_newkey((char *) blob, len); + if (!rsa) + return -1; ret = bignum_bitcount(rsa->modulus); rsa2_freekey(rsa); diff --git a/source/putty/SSHSH256.C b/source/putty/SSHSH256.C index 60c5217f..4e8bb9ed 100644 --- a/source/putty/SSHSH256.C +++ b/source/putty/SSHSH256.C @@ -19,6 +19,7 @@ #define smallsigma0(x) ( ror((x),7) ^ ror((x),18) ^ shr((x),3) ) #define smallsigma1(x) ( ror((x),17) ^ ror((x),19) ^ shr((x),10) ) +#ifndef WINSCP_VS void SHA256_Core_Init(SHA256_State *s) { s->h[0] = 0x6a09e667; s->h[1] = 0xbb67ae85; @@ -29,7 +30,11 @@ void SHA256_Core_Init(SHA256_State *s) { s->h[6] = 0x1f83d9ab; s->h[7] = 0x5be0cd19; } +#endif // !WINSCP_VS +#ifndef WINSCP_VS +void SHA256_Block(SHA256_State *s, uint32 *block); +#else void SHA256_Block(SHA256_State *s, uint32 *block) { uint32 w[80]; uint32 a,b,c,d,e,f,g,h; @@ -84,7 +89,9 @@ void SHA256_Block(SHA256_State *s, uint32 *block) { s->h[0] += a; s->h[1] += b; s->h[2] += c; s->h[3] += d; s->h[4] += e; s->h[5] += f; s->h[6] += g; s->h[7] += h; } +#endif // !WINSCP_VS +#ifndef WINSCP_VS /* ---------------------------------------------------------------------- * Outer SHA256 algorithm: take an arbitrary length byte string, * convert it into 16-word blocks with the prescribed padding at @@ -184,6 +191,7 @@ void SHA256_Simple(const void *p, int len, unsigned char *output) { SHA256_Init(&s); SHA256_Bytes(&s, p, len); SHA256_Final(&s, output); + smemclr(&s, sizeof(s)); } /* @@ -211,6 +219,7 @@ static void sha256_final(void *handle, unsigned char *output) SHA256_State *s = handle; SHA256_Final(s, output); + smemclr(s, sizeof(*s)); sfree(s); } @@ -230,6 +239,7 @@ static void *sha256_make_context(void) static void sha256_free_context(void *handle) { + smemclr(handle, 3 * sizeof(SHA256_State)); sfree(handle); } @@ -307,7 +317,7 @@ static int hmacsha256_verresult(void *handle, unsigned char const *hmac) { unsigned char correct[32]; hmacsha256_genresult(handle, correct); - return !memcmp(correct, hmac, 32); + return smemeq(correct, hmac, 32); } static int sha256_verify(void *handle, unsigned char *blk, int len, @@ -315,7 +325,7 @@ static int sha256_verify(void *handle, unsigned char *blk, int len, { unsigned char correct[32]; sha256_do_hmac(handle, blk, len, seq, correct); - return !memcmp(correct, blk + len, 32); + return smemeq(correct, blk + len, 32); } const struct ssh_mac ssh_hmac_sha256 = { @@ -327,6 +337,7 @@ const struct ssh_mac ssh_hmac_sha256 = { 32, "HMAC-SHA-256" }; +#endif // !WINSCP_VS #ifdef TEST diff --git a/source/putty/SSHSH512.C b/source/putty/SSHSH512.C index 8d0b1ae3..eef733e6 100644 --- a/source/putty/SSHSH512.C +++ b/source/putty/SSHSH512.C @@ -274,6 +274,7 @@ void SHA512_Simple(const void *p, int len, unsigned char *output) { SHA512_Init(&s); SHA512_Bytes(&s, p, len); SHA512_Final(&s, output); + smemclr(&s, sizeof(s)); } #ifdef TEST diff --git a/source/putty/SSHSHA.C b/source/putty/SSHSHA.C index 4790bc7e..eafb1592 100644 --- a/source/putty/SSHSHA.C +++ b/source/putty/SSHSHA.C @@ -217,6 +217,7 @@ void SHA_Simple(const void *p, int len, unsigned char *output) SHA_Init(&s); SHA_Bytes(&s, p, len); SHA_Final(&s, output); + smemclr(&s, sizeof(s)); } /* @@ -244,6 +245,7 @@ static void sha1_final(void *handle, unsigned char *output) SHA_State *s = handle; SHA_Final(s, output); + smemclr(s, sizeof(*s)); sfree(s); } @@ -263,6 +265,7 @@ static void *sha1_make_context(void) static void sha1_free_context(void *handle) { + smemclr(handle, 3 * sizeof(SHA_State)); sfree(handle); } @@ -345,7 +348,7 @@ static int hmacsha1_verresult(void *handle, unsigned char const *hmac) { unsigned char correct[20]; hmacsha1_genresult(handle, correct); - return !memcmp(correct, hmac, 20); + return smemeq(correct, hmac, 20); } static int sha1_verify(void *handle, unsigned char *blk, int len, @@ -353,7 +356,7 @@ static int sha1_verify(void *handle, unsigned char *blk, int len, { unsigned char correct[20]; sha1_do_hmac(handle, blk, len, seq, correct); - return !memcmp(correct, blk + len, 20); + return smemeq(correct, blk + len, 20); } static void hmacsha1_96_genresult(void *handle, unsigned char *hmac) @@ -375,7 +378,7 @@ static int hmacsha1_96_verresult(void *handle, unsigned char const *hmac) { unsigned char correct[20]; hmacsha1_genresult(handle, correct); - return !memcmp(correct, hmac, 12); + return smemeq(correct, hmac, 12); } static int sha1_96_verify(void *handle, unsigned char *blk, int len, @@ -383,7 +386,7 @@ static int sha1_96_verify(void *handle, unsigned char *blk, int len, { unsigned char correct[20]; sha1_do_hmac(handle, blk, len, seq, correct); - return !memcmp(correct, blk + len, 12); + return smemeq(correct, blk + len, 12); } void hmac_sha1_simple(void *key, int keylen, void *data, int datalen, @@ -436,3 +439,14 @@ const struct ssh_mac ssh_hmac_sha1_96_buggy = { 12, "bug-compatible HMAC-SHA1-96" }; + +#ifdef MPEXT + +#include "puttyexp.h" + +void call_sha1_key_internal(void * handle, unsigned char * key, int len) +{ + sha1_key_internal(handle, key, len); +} + +#endif diff --git a/source/putty/SSHSHA_.C b/source/putty/SSHSHA_.C deleted file mode 100644 index 29fff098..00000000 --- a/source/putty/SSHSHA_.C +++ /dev/null @@ -1,8 +0,0 @@ -#include "sshsha.c" - -#include "puttyexp.h" - -void call_sha1_key_internal(void * handle, unsigned char * key, int len) -{ - sha1_key_internal(handle, key, len); -} diff --git a/source/putty/SSHZLIB.C b/source/putty/SSHZLIB.C index 05fa5772..c69edfb8 100644 --- a/source/putty/SSHZLIB.C +++ b/source/putty/SSHZLIB.C @@ -205,9 +205,16 @@ static void lz77_compress(struct LZ77Context *ctx, struct Match defermatch, matches[MAXMATCH]; int deferchr; + assert(st->npending <= HASHCHARS); + /* * Add any pending characters from last time to the window. (We * might not be able to.) + * + * This leaves st->pending empty in the usual case (when len >= + * HASHCHARS); otherwise it leaves st->pending empty enough that + * adding all the remaining 'len' characters will not push it past + * HASHCHARS in size. */ for (i = 0; i < st->npending; i++) { unsigned char foo[HASHCHARS]; @@ -334,6 +341,7 @@ static void lz77_compress(struct LZ77Context *ctx, if (len >= HASHCHARS) { lz77_advance(st, *data, lz77_hash(data)); } else { + assert(st->npending < HASHCHARS); st->pending[st->npending++] = *data; } data++; @@ -1226,6 +1234,8 @@ int zlib_decompress_block(void *handle, unsigned char *block, int len, goto finished; if (code == -2) goto decode_error; + if (code >= 30) /* dist symbols 30 and 31 are invalid */ + goto decode_error; dctx->state = GOTDISTSYM; dctx->sym = code; break; diff --git a/source/putty/SSH_.C b/source/putty/SSH_.C deleted file mode 100644 index 54c74577..00000000 --- a/source/putty/SSH_.C +++ /dev/null @@ -1,101 +0,0 @@ -#include "ssh.c" - -#include "puttyexp.h" - -void ssh_close(void * handle) -{ - ssh_do_close((Ssh)handle, FALSE); -} - -int is_ssh(void * handle) -{ - Plug fn = (Plug)handle; - return (*fn)->closing == ssh_closing; -} - -void call_ssh_timer(void * handle) -{ - if (((Ssh)handle)->version == 2) - { - ssh2_timer(handle, GETTICKCOUNT()); - } -} - -int get_ssh_version(void * handle) -{ - return ((Ssh)handle)->version; -} - -void * get_ssh_frontend(void * handle) -{ - return ((Ssh)handle)->frontend; -} - -int get_ssh1_compressing(void * handle) -{ - return ((Ssh)handle)->v1_compressing; -} - -const struct ssh_cipher * get_cipher(void * handle) -{ - return ((Ssh)handle)->cipher; -} - -const struct ssh2_cipher * get_cscipher(void * handle) -{ - return ((Ssh)handle)->cscipher; -} - -const struct ssh2_cipher * get_sccipher(void * handle) -{ - return ((Ssh)handle)->sccipher; -} - -const struct ssh_compress * get_cscomp(void * handle) -{ - return ((Ssh)handle)->cscomp; -} - -const struct ssh_compress * get_sccomp(void * handle) -{ - return ((Ssh)handle)->sccomp; -} - -int get_ssh_state(void * handle) -{ - return ((Ssh)handle)->state; -} - -int get_ssh_state_closed(void * handle) -{ - return ((Ssh)handle)->state == SSH_STATE_CLOSED; -} - -int get_ssh_state_session(void * handle) -{ - return ((Ssh)handle)->state == SSH_STATE_SESSION; -} - -int get_ssh_exitcode(void * handle) -{ - return ssh_return_exitcode(handle); -} - -const unsigned int * ssh2_remmaxpkt(void * handle) -{ - return &((Ssh)handle)->mainchan->v.v2.remmaxpkt; -} - -const unsigned int * ssh2_remwindow(void * handle) -{ - return &((Ssh)handle)->mainchan->v.v2.remwindow; -} - -void md5checksum(const char * buffer, int len, unsigned char output[16]) -{ - struct MD5Context md5c; - MD5Init(&md5c); - MD5Update(&md5c, buffer, len); - MD5Final(output, &md5c); -} - diff --git a/source/putty/X11FWD.C b/source/putty/X11FWD.C index 0056e76d..46936427 100644 --- a/source/putty/X11FWD.C +++ b/source/putty/X11FWD.C @@ -26,19 +26,21 @@ struct XDMSeen { unsigned char clientid[6]; }; -struct X11Private { +struct X11Connection { const struct plug_function_table *fn; /* the above variable absolutely *must* be the first in this structure */ unsigned char firstpkt[12]; /* first X data packet */ + tree234 *authtree; struct X11Display *disp; char *auth_protocol; unsigned char *auth_data; int data_read, auth_plen, auth_psize, auth_dlen, auth_dsize; int verified; int throttled, throttle_override; - unsigned long peer_ip; + int no_data_sent_to_x_client; + char *peer_addr; int peer_port; - void *c; /* data used by ssh.c */ + struct ssh_channel *c; /* channel structure held by ssh.c */ Socket s; }; @@ -62,17 +64,136 @@ static int dummy_plug_closing static int dummy_plug_receive(Plug p, int urgent, char *data, int len) { return 1; } static void dummy_plug_sent(Plug p, int bufsize) { } -static int dummy_plug_accepting(Plug p, OSSocket sock) { return 1; } +static int dummy_plug_accepting(Plug p, accept_fn_t constructor, accept_ctx_t ctx) { return 1; } static const struct plug_function_table dummy_plug = { dummy_plug_log, dummy_plug_closing, dummy_plug_receive, dummy_plug_sent, dummy_plug_accepting }; -struct X11Display *x11_setup_display(char *display, int authtype, Conf *conf) +struct X11FakeAuth *x11_invent_fake_auth(tree234 *authtree, int authtype) +{ + struct X11FakeAuth *auth = snew(struct X11FakeAuth); + int i; + + /* + * This function has the job of inventing a set of X11 fake auth + * data, and adding it to 'authtree'. We must preserve the + * property that for any given actual authorisation attempt, _at + * most one_ thing in the tree can possibly match it. + * + * For MIT-MAGIC-COOKIE-1, that's not too difficult: the match + * criterion is simply that the entire cookie is correct, so we + * just have to make sure we don't make up two cookies the same. + * (Vanishingly unlikely, but we check anyway to be sure, and go + * round again inventing a new cookie if add234 tells us the one + * we thought of is already in use.) + * + * For XDM-AUTHORIZATION-1, it's a little more fiddly. The setup + * with XA1 is that half the cookie is used as a DES key with + * which to CBC-encrypt an assortment of stuff. Happily, the stuff + * encrypted _begins_ with the other half of the cookie, and the + * IV is always zero, which means that any valid XA1 authorisation + * attempt for a given cookie must begin with the same cipher + * block, consisting of the DES ECB encryption of the first half + * of the cookie using the second half as a key. So we compute + * that cipher block here and now, and use it as the sorting key + * for distinguishing XA1 entries in the tree. + */ + + if (authtype == X11_MIT) { + auth->proto = X11_MIT; + + /* MIT-MAGIC-COOKIE-1. Cookie size is 128 bits (16 bytes). */ + auth->datalen = 16; + auth->data = snewn(auth->datalen, unsigned char); + auth->xa1_firstblock = NULL; + + while (1) { + for (i = 0; i < auth->datalen; i++) + auth->data[i] = random_byte(); + if (add234(authtree, auth) == auth) + break; + } + + auth->xdmseen = NULL; + } else { + assert(authtype == X11_XDM); + auth->proto = X11_XDM; + + /* XDM-AUTHORIZATION-1. Cookie size is 16 bytes; byte 8 is zero. */ + auth->datalen = 16; + auth->data = snewn(auth->datalen, unsigned char); + auth->xa1_firstblock = snewn(8, unsigned char); + memset(auth->xa1_firstblock, 0, 8); + + while (1) { + for (i = 0; i < auth->datalen; i++) + auth->data[i] = (i == 8 ? 0 : random_byte()); + memcpy(auth->xa1_firstblock, auth->data, 8); + des_encrypt_xdmauth(auth->data + 9, auth->xa1_firstblock, 8); + if (add234(authtree, auth) == auth) + break; + } + + auth->xdmseen = newtree234(xdmseen_cmp); + } + auth->protoname = dupstr(x11_authnames[auth->proto]); + auth->datastring = snewn(auth->datalen * 2 + 1, char); + for (i = 0; i < auth->datalen; i++) + sprintf(auth->datastring + i*2, "%02x", + auth->data[i]); + + auth->disp = NULL; + auth->share_cs = auth->share_chan = NULL; + + return auth; +} + +void x11_free_fake_auth(struct X11FakeAuth *auth) +{ + if (auth->data) + smemclr(auth->data, auth->datalen); + sfree(auth->data); + sfree(auth->protoname); + sfree(auth->datastring); + sfree(auth->xa1_firstblock); + if (auth->xdmseen != NULL) { + struct XDMSeen *seen; + while ((seen = delpos234(auth->xdmseen, 0)) != NULL) + sfree(seen); + freetree234(auth->xdmseen); + } + sfree(auth); +} + +int x11_authcmp(void *av, void *bv) +{ + struct X11FakeAuth *a = (struct X11FakeAuth *)av; + struct X11FakeAuth *b = (struct X11FakeAuth *)bv; + + if (a->proto < b->proto) + return -1; + else if (a->proto > b->proto) + return +1; + + if (a->proto == X11_MIT) { + if (a->datalen < b->datalen) + return -1; + else if (a->datalen > b->datalen) + return +1; + + return memcmp(a->data, b->data, a->datalen); + } else { + assert(a->proto == X11_XDM); + + return memcmp(a->xa1_firstblock, b->xa1_firstblock, 8); + } +} + +struct X11Display *x11_setup_display(char *display, Conf *conf) { struct X11Display *disp = snew(struct X11Display); char *localcopy; - int i; if (!display || !*display) { localcopy = platform_get_x_display(); @@ -109,7 +230,7 @@ struct X11Display *x11_setup_display(char *display, int authtype, Conf *conf) char *colon, *dot, *slash; char *protocol, *hostname; - colon = strrchr(localcopy, ':'); + colon = host_strrchr(localcopy, ':'); if (!colon) { sfree(disp); sfree(localcopy); @@ -216,37 +337,6 @@ struct X11Display *x11_setup_display(char *display, int authtype, Conf *conf) disp->port = 0; } - /* - * Invent the remote authorisation details. - */ - if (authtype == X11_MIT) { - disp->remoteauthproto = X11_MIT; - - /* MIT-MAGIC-COOKIE-1. Cookie size is 128 bits (16 bytes). */ - disp->remoteauthdata = snewn(16, unsigned char); - for (i = 0; i < 16; i++) - disp->remoteauthdata[i] = random_byte(); - disp->remoteauthdatalen = 16; - - disp->xdmseen = NULL; - } else { - assert(authtype == X11_XDM); - disp->remoteauthproto = X11_XDM; - - /* XDM-AUTHORIZATION-1. Cookie size is 16 bytes; byte 8 is zero. */ - disp->remoteauthdata = snewn(16, unsigned char); - for (i = 0; i < 16; i++) - disp->remoteauthdata[i] = (i == 8 ? 0 : random_byte()); - disp->remoteauthdatalen = 16; - - disp->xdmseen = newtree234(xdmseen_cmp); - } - disp->remoteauthprotoname = dupstr(x11_authnames[disp->remoteauthproto]); - disp->remoteauthdatastring = snewn(disp->remoteauthdatalen * 2 + 1, char); - for (i = 0; i < disp->remoteauthdatalen; i++) - sprintf(disp->remoteauthdatastring + i*2, "%02x", - disp->remoteauthdata[i]); - /* * Fetch the local authorisation details. */ @@ -260,22 +350,11 @@ struct X11Display *x11_setup_display(char *display, int authtype, Conf *conf) void x11_free_display(struct X11Display *disp) { - if (disp->xdmseen != NULL) { - struct XDMSeen *seen; - while ((seen = delpos234(disp->xdmseen, 0)) != NULL) - sfree(seen); - freetree234(disp->xdmseen); - } sfree(disp->hostname); sfree(disp->unixsocketpath); if (disp->localauthdata) smemclr(disp->localauthdata, disp->localauthdatalen); sfree(disp->localauthdata); - if (disp->remoteauthdata) - smemclr(disp->remoteauthdata, disp->remoteauthdatalen); - sfree(disp->remoteauthdata); - sfree(disp->remoteauthprotoname); - sfree(disp->remoteauthdatastring); sk_addr_free(disp->addr); sfree(disp); } @@ -283,18 +362,47 @@ void x11_free_display(struct X11Display *disp) #define XDM_MAXSKEW 20*60 /* 20 minute clock skew should be OK */ static char *x11_verify(unsigned long peer_ip, int peer_port, - struct X11Display *disp, char *proto, - unsigned char *data, int dlen) + tree234 *authtree, char *proto, + unsigned char *data, int dlen, + struct X11FakeAuth **auth_ret) { - if (strcmp(proto, x11_authnames[disp->remoteauthproto]) != 0) - return "wrong authorisation protocol attempted"; - if (disp->remoteauthproto == X11_MIT) { - if (dlen != disp->remoteauthdatalen) - return "MIT-MAGIC-COOKIE-1 data was wrong length"; - if (memcmp(disp->remoteauthdata, data, dlen) != 0) - return "MIT-MAGIC-COOKIE-1 data did not match"; + struct X11FakeAuth match_dummy; /* for passing to find234 */ + struct X11FakeAuth *auth; + + /* + * First, do a lookup in our tree to find the only authorisation + * record that _might_ match. + */ + if (!strcmp(proto, x11_authnames[X11_MIT])) { + /* + * Just look up the whole cookie that was presented to us, + * which x11_authcmp will compare against the cookies we + * currently believe in. + */ + match_dummy.proto = X11_MIT; + match_dummy.datalen = dlen; + match_dummy.data = data; + } else if (!strcmp(proto, x11_authnames[X11_XDM])) { + /* + * Look up the first cipher block, against the stored first + * cipher blocks for the XDM-AUTHORIZATION-1 cookies we + * currently know. (See comment in x11_invent_fake_auth.) + */ + match_dummy.proto = X11_XDM; + match_dummy.xa1_firstblock = data; + } else { + return "Unsupported authorisation protocol"; } - if (disp->remoteauthproto == X11_XDM) { + + if ((auth = find234(authtree, &match_dummy, 0)) == NULL) + return "Authorisation not recognised"; + + /* + * If we're using MIT-MAGIC-COOKIE-1, that was all we needed. If + * we're doing XDM-AUTHORIZATION-1, though, we have to check the + * rest of the auth data. + */ + if (auth->proto == X11_XDM) { unsigned long t; time_t tim; int i; @@ -304,8 +412,8 @@ static char *x11_verify(unsigned long peer_ip, int peer_port, return "XDM-AUTHORIZATION-1 data was wrong length"; if (peer_port == -1) return "cannot do XDM-AUTHORIZATION-1 without remote address data"; - des_decrypt_xdmauth(disp->remoteauthdata+9, data, 24); - if (memcmp(disp->remoteauthdata, data, 8) != 0) + des_decrypt_xdmauth(auth->data+9, data, 24); + if (memcmp(auth->data, data, 8) != 0) return "XDM-AUTHORIZATION-1 data failed check"; /* cookie wrong */ if (GET_32BIT_MSB_FIRST(data+8) != peer_ip) return "XDM-AUTHORIZATION-1 data failed check"; /* IP wrong */ @@ -321,22 +429,24 @@ static char *x11_verify(unsigned long peer_ip, int peer_port, seen = snew(struct XDMSeen); seen->time = t; memcpy(seen->clientid, data+8, 6); - assert(disp->xdmseen != NULL); - ret = add234(disp->xdmseen, seen); + assert(auth->xdmseen != NULL); + ret = add234(auth->xdmseen, seen); if (ret != seen) { sfree(seen); return "XDM-AUTHORIZATION-1 data replayed"; } /* While we're here, purge entries too old to be replayed. */ for (;;) { - seen = index234(disp->xdmseen, 0); + seen = index234(auth->xdmseen, 0); assert(seen != NULL); if (t - seen->time <= XDM_MAXSKEW) break; - sfree(delpos234(disp->xdmseen, 0)); + sfree(delpos234(auth->xdmseen, 0)); } } /* implement other protocols here if ever required */ + + *auth_ret = auth; return NULL; } @@ -505,23 +615,38 @@ static void x11_log(Plug p, int type, SockAddr addr, int port, /* We have no interface to the logging module here, so we drop these. */ } +static void x11_send_init_error(struct X11Connection *conn, + const char *err_message); + static int x11_closing(Plug plug, const char *error_msg, int error_code, int calling_back) { - struct X11Private *pr = (struct X11Private *) plug; + struct X11Connection *xconn = (struct X11Connection *) plug; if (error_msg) { /* - * Socket error. Slam the connection instantly shut. + * Socket error. If we're still at the connection setup stage, + * construct an X11 error packet passing on the problem. */ - sshfwd_unclean_close(pr->c, error_msg); + if (xconn->no_data_sent_to_x_client) { + char *err_message = dupprintf("unable to connect to forwarded " + "X server: %s", error_msg); + x11_send_init_error(xconn, err_message); + sfree(err_message); + } + + /* + * Whether we did that or not, now we slam the connection + * shut. + */ + sshfwd_unclean_close(xconn->c, error_msg); } else { /* * Ordinary EOF received on socket. Send an EOF on the SSH * channel. */ - if (pr->c) - sshfwd_write_eof(pr->c); + if (xconn->c) + sshfwd_write_eof(xconn->c); } return 1; @@ -529,11 +654,12 @@ static int x11_closing(Plug plug, const char *error_msg, int error_code, static int x11_receive(Plug plug, int urgent, char *data, int len) { - struct X11Private *pr = (struct X11Private *) plug; + struct X11Connection *xconn = (struct X11Connection *) plug; - if (sshfwd_write(pr->c, data, len) > 0) { - pr->throttled = 1; - sk_set_frozen(pr->s, 1); + if (sshfwd_write(xconn->c, data, len) > 0) { + xconn->throttled = 1; + xconn->no_data_sent_to_x_client = FALSE; + sk_set_frozen(xconn->s, 1); } return 1; @@ -541,9 +667,9 @@ static int x11_receive(Plug plug, int urgent, char *data, int len) static void x11_sent(Plug plug, int bufsize) { - struct X11Private *pr = (struct X11Private *) plug; + struct X11Connection *xconn = (struct X11Connection *) plug; - sshfwd_unthrottle(pr->c, bufsize); + sshfwd_unthrottle(xconn->c, bufsize); } /* @@ -555,7 +681,7 @@ int x11_get_screen_number(char *display) { int n; - n = strcspn(display, ":"); + n = host_strcspn(display, ":"); if (!display[n]) return 0; n = strcspn(display, "."); @@ -565,13 +691,11 @@ int x11_get_screen_number(char *display) } /* - * Called to set up the raw connection. - * - * Returns an error message, or NULL on success. - * also, fills the SocketsStructure + * Called to set up the X11Connection structure, though this does not + * yet connect to an actual server. */ -extern const char *x11_init(Socket *s, struct X11Display *disp, void *c, - const char *peeraddr, int peerport, Conf *conf) +struct X11Connection *x11_init(tree234 *authtree, void *c, + const char *peeraddr, int peerport) { static const struct plug_function_table fn_table = { x11_log, @@ -581,227 +705,392 @@ extern const char *x11_init(Socket *s, struct X11Display *disp, void *c, NULL }; - const char *err; - struct X11Private *pr; + struct X11Connection *xconn; /* * Open socket. */ - pr = snew(struct X11Private); - pr->fn = &fn_table; - pr->auth_protocol = NULL; - pr->disp = disp; - pr->verified = 0; - pr->data_read = 0; - pr->throttled = pr->throttle_override = 0; - pr->c = c; - - pr->s = *s = new_connection(sk_addr_dup(disp->addr), - disp->realhost, disp->port, - 0, 1, 0, 0, (Plug) pr, conf); - if ((err = sk_socket_error(*s)) != NULL) { - sfree(pr); - return err; - } + xconn = snew(struct X11Connection); + xconn->fn = &fn_table; + xconn->auth_protocol = NULL; + xconn->authtree = authtree; + xconn->verified = 0; + xconn->data_read = 0; + xconn->throttled = xconn->throttle_override = 0; + xconn->no_data_sent_to_x_client = TRUE; + xconn->c = c; /* - * See if we can make sense of the peer address we were given. + * We don't actually open a local socket to the X server just yet, + * because we don't know which one it is. Instead, we'll wait + * until we see the incoming authentication data, which may tell + * us what display to connect to, or whether we have to divert + * this X forwarding channel to a connection-sharing downstream + * rather than handling it ourself. */ - { - int i[4]; - if (peeraddr && - 4 == sscanf(peeraddr, "%d.%d.%d.%d", i+0, i+1, i+2, i+3)) { - pr->peer_ip = (i[0] << 24) | (i[1] << 16) | (i[2] << 8) | i[3]; - pr->peer_port = peerport; - } else { - pr->peer_ip = 0; - pr->peer_port = -1; - } - } + xconn->disp = NULL; + xconn->s = NULL; - sk_set_private_ptr(*s, pr); - return NULL; + /* + * Stash the peer address we were given in its original text form. + */ + xconn->peer_addr = peeraddr ? dupstr(peeraddr) : NULL; + xconn->peer_port = peerport; + + return xconn; } -void x11_close(Socket s) +void x11_close(struct X11Connection *xconn) { - struct X11Private *pr; - if (!s) + if (!xconn) return; - pr = (struct X11Private *) sk_get_private_ptr(s); - if (pr->auth_protocol) { - sfree(pr->auth_protocol); - sfree(pr->auth_data); + + if (xconn->auth_protocol) { + sfree(xconn->auth_protocol); + sfree(xconn->auth_data); } - sfree(pr); + if (xconn->s) + sk_close(xconn->s); - sk_close(s); + sfree(xconn->peer_addr); + sfree(xconn); } -void x11_unthrottle(Socket s) +void x11_unthrottle(struct X11Connection *xconn) { - struct X11Private *pr; - if (!s) + if (!xconn) return; - pr = (struct X11Private *) sk_get_private_ptr(s); - pr->throttled = 0; - sk_set_frozen(s, pr->throttled || pr->throttle_override); + xconn->throttled = 0; + if (xconn->s) + sk_set_frozen(xconn->s, xconn->throttled || xconn->throttle_override); } -void x11_override_throttle(Socket s, int enable) +void x11_override_throttle(struct X11Connection *xconn, int enable) { - struct X11Private *pr; - if (!s) + if (!xconn) return; - pr = (struct X11Private *) sk_get_private_ptr(s); - pr->throttle_override = enable; - sk_set_frozen(s, pr->throttled || pr->throttle_override); + xconn->throttle_override = enable; + if (xconn->s) + sk_set_frozen(xconn->s, xconn->throttled || xconn->throttle_override); +} + +static void x11_send_init_error(struct X11Connection *xconn, + const char *err_message) +{ + char *full_message; + int msglen, msgsize; + unsigned char *reply; + + full_message = dupprintf("%s X11 proxy: %s\n", appname, err_message); + + msglen = strlen(full_message); + reply = snewn(8 + msglen+1 + 4, unsigned char); /* include zero */ + msgsize = (msglen + 3) & ~3; + reply[0] = 0; /* failure */ + reply[1] = msglen; /* length of reason string */ + memcpy(reply + 2, xconn->firstpkt + 2, 4); /* major/minor proto vsn */ + PUT_16BIT(xconn->firstpkt[0], reply + 6, msgsize >> 2);/* data len */ + memset(reply + 8, 0, msgsize); + memcpy(reply + 8, full_message, msglen); + sshfwd_write(xconn->c, (char *)reply, 8 + msgsize); + sshfwd_write_eof(xconn->c); + xconn->no_data_sent_to_x_client = FALSE; + sfree(reply); + sfree(full_message); +} + +static int x11_parse_ip(const char *addr_string, unsigned long *ip) +{ + + /* + * See if we can make sense of this string as an IPv4 address, for + * XDM-AUTHORIZATION-1 purposes. + */ + int i[4]; + if (addr_string && + 4 == sscanf(addr_string, "%d.%d.%d.%d", i+0, i+1, i+2, i+3)) { + *ip = (i[0] << 24) | (i[1] << 16) | (i[2] << 8) | i[3]; + return TRUE; + } else { + return FALSE; + } } /* * Called to send data down the raw connection. */ -int x11_send(Socket s, char *data, int len) +int x11_send(struct X11Connection *xconn, char *data, int len) { - struct X11Private *pr; - if (!s) + if (!xconn) return 0; - pr = (struct X11Private *) sk_get_private_ptr(s); /* * Read the first packet. */ - while (len > 0 && pr->data_read < 12) - pr->firstpkt[pr->data_read++] = (unsigned char) (len--, *data++); - if (pr->data_read < 12) + while (len > 0 && xconn->data_read < 12) + xconn->firstpkt[xconn->data_read++] = (unsigned char) (len--, *data++); + if (xconn->data_read < 12) return 0; /* * If we have not allocated the auth_protocol and auth_data * strings, do so now. */ - if (!pr->auth_protocol) { - pr->auth_plen = GET_16BIT(pr->firstpkt[0], pr->firstpkt + 6); - pr->auth_dlen = GET_16BIT(pr->firstpkt[0], pr->firstpkt + 8); - pr->auth_psize = (pr->auth_plen + 3) & ~3; - pr->auth_dsize = (pr->auth_dlen + 3) & ~3; + if (!xconn->auth_protocol) { + xconn->auth_plen = GET_16BIT(xconn->firstpkt[0], xconn->firstpkt + 6); + xconn->auth_dlen = GET_16BIT(xconn->firstpkt[0], xconn->firstpkt + 8); + xconn->auth_psize = (xconn->auth_plen + 3) & ~3; + xconn->auth_dsize = (xconn->auth_dlen + 3) & ~3; /* Leave room for a terminating zero, to make our lives easier. */ - pr->auth_protocol = snewn(pr->auth_psize + 1, char); - pr->auth_data = snewn(pr->auth_dsize, unsigned char); + xconn->auth_protocol = snewn(xconn->auth_psize + 1, char); + xconn->auth_data = snewn(xconn->auth_dsize, unsigned char); } /* * Read the auth_protocol and auth_data strings. */ - while (len > 0 && pr->data_read < 12 + pr->auth_psize) - pr->auth_protocol[pr->data_read++ - 12] = (len--, *data++); - while (len > 0 && pr->data_read < 12 + pr->auth_psize + pr->auth_dsize) - pr->auth_data[pr->data_read++ - 12 - - pr->auth_psize] = (unsigned char) (len--, *data++); - if (pr->data_read < 12 + pr->auth_psize + pr->auth_dsize) + while (len > 0 && + xconn->data_read < 12 + xconn->auth_psize) + xconn->auth_protocol[xconn->data_read++ - 12] = (len--, *data++); + while (len > 0 && + xconn->data_read < 12 + xconn->auth_psize + xconn->auth_dsize) + xconn->auth_data[xconn->data_read++ - 12 - + xconn->auth_psize] = (unsigned char) (len--, *data++); + if (xconn->data_read < 12 + xconn->auth_psize + xconn->auth_dsize) return 0; /* * If we haven't verified the authorisation, do so now. */ - if (!pr->verified) { - char *err; + if (!xconn->verified) { + const char *err; + struct X11FakeAuth *auth_matched = NULL; + unsigned long peer_ip; + int peer_port; + int protomajor, protominor; + void *greeting; + int greeting_len; + unsigned char *socketdata; + int socketdatalen; + char new_peer_addr[32]; + int new_peer_port; + + protomajor = GET_16BIT(xconn->firstpkt[0], xconn->firstpkt + 2); + protominor = GET_16BIT(xconn->firstpkt[0], xconn->firstpkt + 4); + + assert(!xconn->s); + + xconn->auth_protocol[xconn->auth_plen] = '\0'; /* ASCIZ */ + + peer_ip = 0; /* placate optimiser */ + if (x11_parse_ip(xconn->peer_addr, &peer_ip)) + peer_port = xconn->peer_port; + else + peer_port = -1; /* signal no peer address data available */ + + err = x11_verify(peer_ip, peer_port, + xconn->authtree, xconn->auth_protocol, + xconn->auth_data, xconn->auth_dlen, &auth_matched); + if (err) { + x11_send_init_error(xconn, err); + return 0; + } + assert(auth_matched); - pr->auth_protocol[pr->auth_plen] = '\0'; /* ASCIZ */ - err = x11_verify(pr->peer_ip, pr->peer_port, - pr->disp, pr->auth_protocol, - pr->auth_data, pr->auth_dlen); + /* + * If this auth points to a connection-sharing downstream + * rather than an X display we know how to connect to + * directly, pass it off to the sharing module now. + */ + if (auth_matched->share_cs) { + sshfwd_x11_sharing_handover(xconn->c, auth_matched->share_cs, + auth_matched->share_chan, + xconn->peer_addr, xconn->peer_port, + xconn->firstpkt[0], + protomajor, protominor, data, len); + return 0; + } - /* - * If authorisation failed, construct and send an error - * packet, then terminate the connection. - */ - if (err) { - char *message; - int msglen, msgsize; - unsigned char *reply; - - message = dupprintf("%s X11 proxy: %s", appname, err); - msglen = strlen(message); - reply = snewn(8 + msglen+1 + 4, unsigned char); /* include zero */ - msgsize = (msglen + 3) & ~3; - reply[0] = 0; /* failure */ - reply[1] = msglen; /* length of reason string */ - memcpy(reply + 2, pr->firstpkt + 2, 4); /* major/minor proto vsn */ - PUT_16BIT(pr->firstpkt[0], reply + 6, msgsize >> 2);/* data len */ - memset(reply + 8, 0, msgsize); - memcpy(reply + 8, message, msglen); - sshfwd_write(pr->c, (char *)reply, 8 + msgsize); - sshfwd_write_eof(pr->c); - sfree(reply); - sfree(message); - return 0; - } + /* + * Now we know we're going to accept the connection, and what + * X display to connect to. Actually connect to it. + */ + sshfwd_x11_is_local(xconn->c); + xconn->disp = auth_matched->disp; + xconn->s = new_connection(sk_addr_dup(xconn->disp->addr), + xconn->disp->realhost, xconn->disp->port, + 0, 1, 0, 0, (Plug) xconn, + sshfwd_get_conf(xconn->c)); + if ((err = sk_socket_error(xconn->s)) != NULL) { + char *err_message = dupprintf("unable to connect to" + " forwarded X server: %s", err); + x11_send_init_error(xconn, err_message); + sfree(err_message); + return 0; + } - /* - * Now we know we're going to accept the connection. Strip - * the fake auth data, and optionally put real auth data in - * instead. + /* + * Write a new connection header containing our replacement + * auth data. */ - { - char realauthdata[64]; - int realauthlen = 0; - int authstrlen = strlen(x11_authnames[pr->disp->localauthproto]); - int buflen = 0; /* initialise to placate optimiser */ - static const char zeroes[4] = { 0,0,0,0 }; - void *buf; - - if (pr->disp->localauthproto == X11_MIT) { - assert(pr->disp->localauthdatalen <= lenof(realauthdata)); - realauthlen = pr->disp->localauthdatalen; - memcpy(realauthdata, pr->disp->localauthdata, realauthlen); - } else if (pr->disp->localauthproto == X11_XDM && - pr->disp->localauthdatalen == 16 && - ((buf = sk_getxdmdata(s, &buflen))!=0)) { - time_t t; - realauthlen = (buflen+12+7) & ~7; - assert(realauthlen <= lenof(realauthdata)); - memset(realauthdata, 0, realauthlen); - memcpy(realauthdata, pr->disp->localauthdata, 8); - memcpy(realauthdata+8, buf, buflen); - t = time(NULL); - PUT_32BIT_MSB_FIRST(realauthdata+8+buflen, t); - des_encrypt_xdmauth(pr->disp->localauthdata+9, - (unsigned char *)realauthdata, - realauthlen); - sfree(buf); - } - /* implement other auth methods here if required */ - PUT_16BIT(pr->firstpkt[0], pr->firstpkt + 6, authstrlen); - PUT_16BIT(pr->firstpkt[0], pr->firstpkt + 8, realauthlen); - - sk_write(s, (char *)pr->firstpkt, 12); - - if (authstrlen) { - sk_write(s, x11_authnames[pr->disp->localauthproto], - authstrlen); - sk_write(s, zeroes, 3 & (-authstrlen)); - } - if (realauthlen) { - sk_write(s, realauthdata, realauthlen); - sk_write(s, zeroes, 3 & (-realauthlen)); - } + #ifdef MPEXT + // placate compiler warning + socketdatalen = 0; + #endif + socketdata = sk_getxdmdata(xconn->s, &socketdatalen); + if (socketdata && socketdatalen==6) { + sprintf(new_peer_addr, "%d.%d.%d.%d", socketdata[0], + socketdata[1], socketdata[2], socketdata[3]); + new_peer_port = GET_16BIT_MSB_FIRST(socketdata + 4); + } else { + strcpy(new_peer_addr, "0.0.0.0"); + new_peer_port = 0; } - pr->verified = 1; + + greeting = x11_make_greeting(xconn->firstpkt[0], + protomajor, protominor, + xconn->disp->localauthproto, + xconn->disp->localauthdata, + xconn->disp->localauthdatalen, + new_peer_addr, new_peer_port, + &greeting_len); + + sk_write(xconn->s, greeting, greeting_len); + + smemclr(greeting, greeting_len); + sfree(greeting); + + /* + * Now we're done. + */ + xconn->verified = 1; } /* * After initialisation, just copy data simply. */ - return sk_write(s, data, len); + return sk_write(xconn->s, data, len); } -void x11_send_eof(Socket s) +void x11_send_eof(struct X11Connection *xconn) +{ + if (xconn->s) { + sk_write_eof(xconn->s); + } else { + /* + * If EOF is received from the X client before we've got to + * the point of actually connecting to an X server, then we + * should send an EOF back to the client so that the + * forwarded channel will be terminated. + */ + if (xconn->c) + sshfwd_write_eof(xconn->c); + } +} + +/* + * Utility functions used by connection sharing to convert textual + * representations of an X11 auth protocol name + hex cookie into our + * usual integer protocol id and binary auth data. + */ +int x11_identify_auth_proto(const char *protoname) { - sk_write_eof(s); + int protocol; + + for (protocol = 1; protocol < lenof(x11_authnames); protocol++) + if (!strcmp(protoname, x11_authnames[protocol])) + return protocol; + return -1; +} + +void *x11_dehexify(const char *hex, int *outlen) +{ + int len, i; + unsigned char *ret; + + len = strlen(hex) / 2; + ret = snewn(len, unsigned char); + + for (i = 0; i < len; i++) { + char bytestr[3]; + unsigned val = 0; + bytestr[0] = hex[2*i]; + bytestr[1] = hex[2*i+1]; + bytestr[2] = '\0'; + sscanf(bytestr, "%x", &val); + ret[i] = val; + } + + *outlen = len; + return ret; +} + +/* + * Construct an X11 greeting packet, including making up the right + * authorisation data. + */ +void *x11_make_greeting(int endian, int protomajor, int protominor, + int auth_proto, const void *auth_data, int auth_len, + const char *peer_addr, int peer_port, + int *outlen) +{ + unsigned char *greeting; + unsigned char realauthdata[64]; + const char *authname; + const unsigned char *authdata; + int authnamelen, authnamelen_pad; + int authdatalen, authdatalen_pad; + int greeting_len; + + authname = x11_authnames[auth_proto]; + authnamelen = strlen(authname); + authnamelen_pad = (authnamelen + 3) & ~3; + + if (auth_proto == X11_MIT) { + authdata = auth_data; + authdatalen = auth_len; + } else if (auth_proto == X11_XDM && auth_len == 16) { + time_t t; + unsigned long peer_ip = 0; + + x11_parse_ip(peer_addr, &peer_ip); + + authdata = realauthdata; + authdatalen = 24; + memset(realauthdata, 0, authdatalen); + memcpy(realauthdata, auth_data, 8); + PUT_32BIT_MSB_FIRST(realauthdata+8, peer_ip); + PUT_16BIT_MSB_FIRST(realauthdata+12, peer_port); + t = time(NULL); + PUT_32BIT_MSB_FIRST(realauthdata+14, t); + + des_encrypt_xdmauth((const unsigned char *)auth_data + 9, + realauthdata, authdatalen); + } else { + authdata = realauthdata; + authdatalen = 0; + } + + authdatalen_pad = (authdatalen + 3) & ~3; + greeting_len = 12 + authnamelen_pad + authdatalen_pad; + + greeting = snewn(greeting_len, unsigned char); + memset(greeting, 0, greeting_len); + greeting[0] = endian; + PUT_16BIT(endian, greeting+2, protomajor); + PUT_16BIT(endian, greeting+4, protominor); + PUT_16BIT(endian, greeting+6, authnamelen); + PUT_16BIT(endian, greeting+8, authdatalen); + memcpy(greeting+12, authname, authnamelen); + memcpy(greeting+12+authnamelen_pad, authdata, authdatalen); + + smemclr(realauthdata, sizeof(realauthdata)); + + *outlen = greeting_len; + return greeting; } diff --git a/source/putty/errsock.c b/source/putty/errsock.c new file mode 100644 index 00000000..854fd8be --- /dev/null +++ b/source/putty/errsock.c @@ -0,0 +1,73 @@ +/* + * A dummy Socket implementation which just holds an error message. + */ + +#include +#include + +#define DEFINE_PLUG_METHOD_MACROS +#include "tree234.h" +#include "putty.h" +#include "network.h" + +typedef struct Socket_error_tag *Error_Socket; + +struct Socket_error_tag { + const struct socket_function_table *fn; + /* the above variable absolutely *must* be the first in this structure */ + + char *error; + Plug plug; +}; + +static Plug sk_error_plug(Socket s, Plug p) +{ + Error_Socket ps = (Error_Socket) s; + Plug ret = ps->plug; + if (p) + ps->plug = p; + return ret; +} + +static void sk_error_close(Socket s) +{ + Error_Socket ps = (Error_Socket) s; + + sfree(ps->error); + sfree(ps); +} + +static const char *sk_error_socket_error(Socket s) +{ + Error_Socket ps = (Error_Socket) s; + return ps->error; +} + +static char *sk_error_peer_info(Socket s) +{ + return NULL; +} + +Socket new_error_socket(const char *errmsg, Plug plug) +{ + static const struct socket_function_table socket_fn_table = { + sk_error_plug, + sk_error_close, + NULL /* write */, + NULL /* write_oob */, + NULL /* write_eof */, + NULL /* flush */, + NULL /* set_frozen */, + sk_error_socket_error, + sk_error_peer_info, + }; + + Error_Socket ret; + + ret = snew(struct Socket_error_tag); + ret->fn = &socket_fn_table; + ret->plug = plug; + ret->error = dupstr(errmsg); + + return (Socket) ret; +} diff --git a/source/putty/import.c b/source/putty/import.c new file mode 100644 index 00000000..bc35a4ab --- /dev/null +++ b/source/putty/import.c @@ -0,0 +1,1757 @@ +/* + * Code for PuTTY to import and export private key files in other + * SSH clients' formats. + */ + +#include +#include +#include +#include + +#include "putty.h" +#include "ssh.h" +#include "misc.h" + +int openssh_encrypted(const Filename *filename); +struct ssh2_userkey *openssh_read(const Filename *filename, char *passphrase, + const char **errmsg_p); +int openssh_write(const Filename *filename, struct ssh2_userkey *key, + char *passphrase); + +int sshcom_encrypted(const Filename *filename, char **comment); +struct ssh2_userkey *sshcom_read(const Filename *filename, char *passphrase, + const char **errmsg_p); +int sshcom_write(const Filename *filename, struct ssh2_userkey *key, + char *passphrase); + +/* + * Given a key type, determine whether we know how to import it. + */ +int import_possible(int type) +{ + if (type == SSH_KEYTYPE_OPENSSH) + return 1; + if (type == SSH_KEYTYPE_SSHCOM) + return 1; + return 0; +} + +/* + * Given a key type, determine what native key type + * (SSH_KEYTYPE_SSH1 or SSH_KEYTYPE_SSH2) it will come out as once + * we've imported it. + */ +int import_target_type(int type) +{ + /* + * There are no known foreign SSH-1 key formats. + */ + return SSH_KEYTYPE_SSH2; +} + +/* + * Determine whether a foreign key is encrypted. + */ +int import_encrypted(const Filename *filename, int type, char **comment) +{ + if (type == SSH_KEYTYPE_OPENSSH) { + /* OpenSSH doesn't do key comments */ + *comment = dupstr(filename_to_str(filename)); + return openssh_encrypted(filename); + } + if (type == SSH_KEYTYPE_SSHCOM) { + return sshcom_encrypted(filename, comment); + } + return 0; +} + +/* + * Import an SSH-1 key. + */ +int import_ssh1(const Filename *filename, int type, + struct RSAKey *key, char *passphrase, const char **errmsg_p) +{ + return 0; +} + +/* + * Import an SSH-2 key. + */ +struct ssh2_userkey *import_ssh2(const Filename *filename, int type, + char *passphrase, const char **errmsg_p) +{ + if (type == SSH_KEYTYPE_OPENSSH) + return openssh_read(filename, passphrase, errmsg_p); + if (type == SSH_KEYTYPE_SSHCOM) + return sshcom_read(filename, passphrase, errmsg_p); + return NULL; +} + +/* + * Export an SSH-1 key. + */ +int export_ssh1(const Filename *filename, int type, struct RSAKey *key, + char *passphrase) +{ + return 0; +} + +/* + * Export an SSH-2 key. + */ +int export_ssh2(const Filename *filename, int type, + struct ssh2_userkey *key, char *passphrase) +{ + if (type == SSH_KEYTYPE_OPENSSH) + return openssh_write(filename, key, passphrase); + if (type == SSH_KEYTYPE_SSHCOM) + return sshcom_write(filename, key, passphrase); + return 0; +} + +/* + * Strip trailing CRs and LFs at the end of a line of text. + */ +void strip_crlf(char *str) +{ + char *p = str + strlen(str); + + while (p > str && (p[-1] == '\r' || p[-1] == '\n')) + *--p = '\0'; +} + +/* ---------------------------------------------------------------------- + * Helper routines. (The base64 ones are defined in sshpubk.c.) + */ + +#define isbase64(c) ( ((c) >= 'A' && (c) <= 'Z') || \ + ((c) >= 'a' && (c) <= 'z') || \ + ((c) >= '0' && (c) <= '9') || \ + (c) == '+' || (c) == '/' || (c) == '=' \ + ) + +/* + * Read an ASN.1/BER identifier and length pair. + * + * Flags are a combination of the #defines listed below. + * + * Returns -1 if unsuccessful; otherwise returns the number of + * bytes used out of the source data. + */ + +/* ASN.1 tag classes. */ +#define ASN1_CLASS_UNIVERSAL (0 << 6) +#define ASN1_CLASS_APPLICATION (1 << 6) +#define ASN1_CLASS_CONTEXT_SPECIFIC (2 << 6) +#define ASN1_CLASS_PRIVATE (3 << 6) +#define ASN1_CLASS_MASK (3 << 6) + +/* Primitive versus constructed bit. */ +#define ASN1_CONSTRUCTED (1 << 5) + +static int ber_read_id_len(void *source, int sourcelen, + int *id, int *length, int *flags) +{ + unsigned char *p = (unsigned char *) source; + + if (sourcelen == 0) + return -1; + + *flags = (*p & 0xE0); + if ((*p & 0x1F) == 0x1F) { + *id = 0; + while (*p & 0x80) { + p++, sourcelen--; + if (sourcelen == 0) + return -1; + *id = (*id << 7) | (*p & 0x7F); + } + p++, sourcelen--; + } else { + *id = *p & 0x1F; + p++, sourcelen--; + } + + if (sourcelen == 0) + return -1; + + if (*p & 0x80) { + int n = *p & 0x7F; + p++, sourcelen--; + if (sourcelen < n) + return -1; + *length = 0; + while (n--) + *length = (*length << 8) | (*p++); + sourcelen -= n; + } else { + *length = *p; + p++, sourcelen--; + } + + return p - (unsigned char *) source; +} + +/* + * Write an ASN.1/BER identifier and length pair. Returns the + * number of bytes consumed. Assumes dest contains enough space. + * Will avoid writing anything if dest is NULL, but still return + * amount of space required. + */ +static int ber_write_id_len(void *dest, int id, int length, int flags) +{ + unsigned char *d = (unsigned char *)dest; + int len = 0; + + if (id <= 30) { + /* + * Identifier is one byte. + */ + len++; + if (d) *d++ = id | flags; + } else { + int n; + /* + * Identifier is multiple bytes: the first byte is 11111 + * plus the flags, and subsequent bytes encode the value of + * the identifier, 7 bits at a time, with the top bit of + * each byte 1 except the last one which is 0. + */ + len++; + if (d) *d++ = 0x1F | flags; + for (n = 1; (id >> (7*n)) > 0; n++) + continue; /* count the bytes */ + while (n--) { + len++; + if (d) *d++ = (n ? 0x80 : 0) | ((id >> (7*n)) & 0x7F); + } + } + + if (length < 128) { + /* + * Length is one byte. + */ + len++; + if (d) *d++ = length; + } else { + int n; + /* + * Length is multiple bytes. The first is 0x80 plus the + * number of subsequent bytes, and the subsequent bytes + * encode the actual length. + */ + for (n = 1; (length >> (8*n)) > 0; n++) + continue; /* count the bytes */ + len++; + if (d) *d++ = 0x80 | n; + while (n--) { + len++; + if (d) *d++ = (length >> (8*n)) & 0xFF; + } + } + + return len; +} + +static int put_string(void *target, void *data, int len) +{ + unsigned char *d = (unsigned char *)target; + + PUT_32BIT(d, len); + memcpy(d+4, data, len); + return len+4; +} + +static int put_mp(void *target, void *data, int len) +{ + unsigned char *d = (unsigned char *)target; + unsigned char *i = (unsigned char *)data; + + if (*i & 0x80) { + PUT_32BIT(d, len+1); + d[4] = 0; + memcpy(d+5, data, len); + return len+5; + } else { + PUT_32BIT(d, len); + memcpy(d+4, data, len); + return len+4; + } +} + +/* Simple structure to point to an mp-int within a blob. */ +struct mpint_pos { void *start; int bytes; }; + +static int ssh2_read_mpint(void *data, int len, struct mpint_pos *ret) +{ + int bytes; + unsigned char *d = (unsigned char *) data; + + if (len < 4) + goto error; + bytes = toint(GET_32BIT(d)); + if (bytes < 0 || len-4 < bytes) + goto error; + + ret->start = d + 4; + ret->bytes = bytes; + return bytes+4; + + error: + ret->start = NULL; + ret->bytes = -1; + return len; /* ensure further calls fail as well */ +} + +/* ---------------------------------------------------------------------- + * Code to read and write OpenSSH private keys. + */ + +enum { OSSH_DSA, OSSH_RSA }; +enum { OSSH_ENC_3DES, OSSH_ENC_AES }; +struct openssh_key { + int type; + int encrypted, encryption; + char iv[32]; + unsigned char *keyblob; + int keyblob_len, keyblob_size; +}; + +static struct openssh_key *load_openssh_key(const Filename *filename, + const char **errmsg_p) +{ + struct openssh_key *ret; + FILE *fp = NULL; + char *line = NULL; + char *errmsg, *p; + int headers_done; + char base64_bit[4]; + int base64_chars = 0; + + ret = snew(struct openssh_key); + ret->keyblob = NULL; + ret->keyblob_len = ret->keyblob_size = 0; + ret->encrypted = 0; + memset(ret->iv, 0, sizeof(ret->iv)); + + fp = f_open(filename, "r", FALSE); + if (!fp) { + errmsg = "unable to open key file"; + goto error; + } + + if (!(line = fgetline(fp))) { + errmsg = "unexpected end of file"; + goto error; + } + strip_crlf(line); + if (0 != strncmp(line, "-----BEGIN ", 11) || + 0 != strcmp(line+strlen(line)-16, "PRIVATE KEY-----")) { + errmsg = "file does not begin with OpenSSH key header"; + goto error; + } + if (!strcmp(line, "-----BEGIN RSA PRIVATE KEY-----")) + ret->type = OSSH_RSA; + else if (!strcmp(line, "-----BEGIN DSA PRIVATE KEY-----")) + ret->type = OSSH_DSA; + else { + errmsg = "unrecognised key type"; + goto error; + } + smemclr(line, strlen(line)); + sfree(line); + line = NULL; + + headers_done = 0; + while (1) { + if (!(line = fgetline(fp))) { + errmsg = "unexpected end of file"; + goto error; + } + strip_crlf(line); + if (0 == strncmp(line, "-----END ", 9) && + 0 == strcmp(line+strlen(line)-16, "PRIVATE KEY-----")) { + sfree(line); + line = NULL; + break; /* done */ + } + if ((p = strchr(line, ':')) != NULL) { + if (headers_done) { + errmsg = "header found in body of key data"; + goto error; + } + *p++ = '\0'; + while (*p && isspace((unsigned char)*p)) p++; + if (!strcmp(line, "Proc-Type")) { + if (p[0] != '4' || p[1] != ',') { + errmsg = "Proc-Type is not 4 (only 4 is supported)"; + goto error; + } + p += 2; + if (!strcmp(p, "ENCRYPTED")) + ret->encrypted = 1; + } else if (!strcmp(line, "DEK-Info")) { + int i, j, ivlen; + + if (!strncmp(p, "DES-EDE3-CBC,", 13)) { + ret->encryption = OSSH_ENC_3DES; + ivlen = 8; + } else if (!strncmp(p, "AES-128-CBC,", 12)) { + ret->encryption = OSSH_ENC_AES; + ivlen = 16; + } else { + errmsg = "unsupported cipher"; + goto error; + } + p = strchr(p, ',') + 1;/* always non-NULL, by above checks */ + for (i = 0; i < ivlen; i++) { + if (1 != sscanf(p, "%2x", &j)) { + errmsg = "expected more iv data in DEK-Info"; + goto error; + } + ret->iv[i] = j; + p += 2; + } + if (*p) { + errmsg = "more iv data than expected in DEK-Info"; + goto error; + } + } + } else { + headers_done = 1; + + p = line; + while (isbase64(*p)) { + base64_bit[base64_chars++] = *p; + if (base64_chars == 4) { + unsigned char out[3]; + int len; + + base64_chars = 0; + + len = base64_decode_atom(base64_bit, out); + + if (len <= 0) { + errmsg = "invalid base64 encoding"; + goto error; + } + + if (ret->keyblob_len + len > ret->keyblob_size) { + ret->keyblob_size = ret->keyblob_len + len + 256; + ret->keyblob = sresize(ret->keyblob, ret->keyblob_size, + unsigned char); + } + + memcpy(ret->keyblob + ret->keyblob_len, out, len); + ret->keyblob_len += len; + + smemclr(out, sizeof(out)); + } + + p++; + } + } + smemclr(line, strlen(line)); + sfree(line); + line = NULL; + } + + fclose(fp); + fp = NULL; + + if (ret->keyblob_len == 0 || !ret->keyblob) { + errmsg = "key body not present"; + goto error; + } + + if (ret->encrypted && ret->keyblob_len % 8 != 0) { + errmsg = "encrypted key blob is not a multiple of cipher block size"; + goto error; + } + + smemclr(base64_bit, sizeof(base64_bit)); + if (errmsg_p) *errmsg_p = NULL; + return ret; + + error: + if (line) { + smemclr(line, strlen(line)); + sfree(line); + line = NULL; + } + smemclr(base64_bit, sizeof(base64_bit)); + if (ret) { + if (ret->keyblob) { + smemclr(ret->keyblob, ret->keyblob_size); + sfree(ret->keyblob); + } + smemclr(ret, sizeof(*ret)); + sfree(ret); + } + if (errmsg_p) *errmsg_p = errmsg; + if (fp) fclose(fp); + return NULL; +} + +int openssh_encrypted(const Filename *filename) +{ + struct openssh_key *key = load_openssh_key(filename, NULL); + int ret; + + if (!key) + return 0; + ret = key->encrypted; + smemclr(key->keyblob, key->keyblob_size); + sfree(key->keyblob); + smemclr(key, sizeof(*key)); + sfree(key); + return ret; +} + +struct ssh2_userkey *openssh_read(const Filename *filename, char *passphrase, + const char **errmsg_p) +{ + struct openssh_key *key = load_openssh_key(filename, errmsg_p); + struct ssh2_userkey *retkey; + unsigned char *p; + int ret, id, len, flags; + int i, num_integers; + struct ssh2_userkey *retval = NULL; + char *errmsg; + unsigned char *blob; + int blobsize = 0, blobptr, privptr; + char *modptr = NULL; + int modlen = 0; + + blob = NULL; + + if (!key) + return NULL; + + if (key->encrypted) { + /* + * Derive encryption key from passphrase and iv/salt: + * + * - let block A equal MD5(passphrase || iv) + * - let block B equal MD5(A || passphrase || iv) + * - block C would be MD5(B || passphrase || iv) and so on + * - encryption key is the first N bytes of A || B + * + * (Note that only 8 bytes of the iv are used for key + * derivation, even when the key is encrypted with AES and + * hence there are 16 bytes available.) + */ + struct MD5Context md5c; + unsigned char keybuf[32]; + + MD5Init(&md5c); + MD5Update(&md5c, (unsigned char *)passphrase, strlen(passphrase)); + MD5Update(&md5c, (unsigned char *)key->iv, 8); + MD5Final(keybuf, &md5c); + + MD5Init(&md5c); + MD5Update(&md5c, keybuf, 16); + MD5Update(&md5c, (unsigned char *)passphrase, strlen(passphrase)); + MD5Update(&md5c, (unsigned char *)key->iv, 8); + MD5Final(keybuf+16, &md5c); + + /* + * Now decrypt the key blob. + */ + if (key->encryption == OSSH_ENC_3DES) + des3_decrypt_pubkey_ossh(keybuf, (unsigned char *)key->iv, + key->keyblob, key->keyblob_len); + else { + void *ctx; + assert(key->encryption == OSSH_ENC_AES); + ctx = aes_make_context(); + aes128_key(ctx, keybuf); + aes_iv(ctx, (unsigned char *)key->iv); + aes_ssh2_decrypt_blk(ctx, key->keyblob, key->keyblob_len); + aes_free_context(ctx); + } + + smemclr(&md5c, sizeof(md5c)); + smemclr(keybuf, sizeof(keybuf)); + } + + /* + * Now we have a decrypted key blob, which contains an ASN.1 + * encoded private key. We must now untangle the ASN.1. + * + * We expect the whole key blob to be formatted as a SEQUENCE + * (0x30 followed by a length code indicating that the rest of + * the blob is part of the sequence). Within that SEQUENCE we + * expect to see a bunch of INTEGERs. What those integers mean + * depends on the key type: + * + * - For RSA, we expect the integers to be 0, n, e, d, p, q, + * dmp1, dmq1, iqmp in that order. (The last three are d mod + * (p-1), d mod (q-1), inverse of q mod p respectively.) + * + * - For DSA, we expect them to be 0, p, q, g, y, x in that + * order. + */ + + p = key->keyblob; + + /* Expect the SEQUENCE header. Take its absence as a failure to + * decrypt, if the key was encrypted. */ + ret = ber_read_id_len(p, key->keyblob_len, &id, &len, &flags); + p += ret; + if (ret < 0 || id != 16) { + errmsg = "ASN.1 decoding failure"; + retval = key->encrypted ? SSH2_WRONG_PASSPHRASE : NULL; + goto error; + } + + /* Expect a load of INTEGERs. */ + if (key->type == OSSH_RSA) + num_integers = 9; + else if (key->type == OSSH_DSA) + num_integers = 6; + else + num_integers = 0; /* placate compiler warnings */ + + /* + * Space to create key blob in. + */ + blobsize = 256+key->keyblob_len; + blob = snewn(blobsize, unsigned char); + PUT_32BIT(blob, 7); + if (key->type == OSSH_DSA) + memcpy(blob+4, "ssh-dss", 7); + else if (key->type == OSSH_RSA) + memcpy(blob+4, "ssh-rsa", 7); + blobptr = 4+7; + privptr = -1; + + for (i = 0; i < num_integers; i++) { + ret = ber_read_id_len(p, key->keyblob+key->keyblob_len-p, + &id, &len, &flags); + p += ret; + if (ret < 0 || id != 2 || + key->keyblob+key->keyblob_len-p < len) { + errmsg = "ASN.1 decoding failure"; + retval = key->encrypted ? SSH2_WRONG_PASSPHRASE : NULL; + goto error; + } + + if (i == 0) { + /* + * The first integer should be zero always (I think + * this is some sort of version indication). + */ + if (len != 1 || p[0] != 0) { + errmsg = "version number mismatch"; + goto error; + } + } else if (key->type == OSSH_RSA) { + /* + * Integers 1 and 2 go into the public blob but in the + * opposite order; integers 3, 4, 5 and 8 go into the + * private blob. The other two (6 and 7) are ignored. + */ + if (i == 1) { + /* Save the details for after we deal with number 2. */ + modptr = (char *)p; + modlen = len; + } else if (i != 6 && i != 7) { + PUT_32BIT(blob+blobptr, len); + memcpy(blob+blobptr+4, p, len); + blobptr += 4+len; + if (i == 2) { + PUT_32BIT(blob+blobptr, modlen); + memcpy(blob+blobptr+4, modptr, modlen); + blobptr += 4+modlen; + privptr = blobptr; + } + } + } else if (key->type == OSSH_DSA) { + /* + * Integers 1-4 go into the public blob; integer 5 goes + * into the private blob. + */ + PUT_32BIT(blob+blobptr, len); + memcpy(blob+blobptr+4, p, len); + blobptr += 4+len; + if (i == 4) + privptr = blobptr; + } + + /* Skip past the number. */ + p += len; + } + + /* + * Now put together the actual key. Simplest way to do this is + * to assemble our own key blobs and feed them to the createkey + * functions; this is a bit faffy but it does mean we get all + * the sanity checks for free. + */ + assert(privptr > 0); /* should have bombed by now if not */ + retkey = snew(struct ssh2_userkey); + retkey->alg = (key->type == OSSH_RSA ? &ssh_rsa : &ssh_dss); + retkey->data = retkey->alg->createkey(blob, privptr, + blob+privptr, blobptr-privptr); + if (!retkey->data) { + sfree(retkey); + errmsg = "unable to create key data structure"; + goto error; + } + + retkey->comment = dupstr("imported-openssh-key"); + errmsg = NULL; /* no error */ + retval = retkey; + + error: + if (blob) { + smemclr(blob, blobsize); + sfree(blob); + } + smemclr(key->keyblob, key->keyblob_size); + sfree(key->keyblob); + smemclr(key, sizeof(*key)); + sfree(key); + if (errmsg_p) *errmsg_p = errmsg; + return retval; +} + +int openssh_write(const Filename *filename, struct ssh2_userkey *key, + char *passphrase) +{ + unsigned char *pubblob, *privblob, *spareblob; + int publen, privlen, sparelen = 0; + unsigned char *outblob; + int outlen; + struct mpint_pos numbers[9]; + int nnumbers, pos, len, seqlen, i; + char *header, *footer; + char zero[1]; + unsigned char iv[8]; + int ret = 0; + FILE *fp; + + /* + * Fetch the key blobs. + */ + pubblob = key->alg->public_blob(key->data, &publen); + privblob = key->alg->private_blob(key->data, &privlen); + spareblob = outblob = NULL; + + /* + * Find the sequence of integers to be encoded into the OpenSSH + * key blob, and also decide on the header line. + */ + if (key->alg == &ssh_rsa) { + int pos; + struct mpint_pos n, e, d, p, q, iqmp, dmp1, dmq1; + Bignum bd, bp, bq, bdmp1, bdmq1; + + /* + * These blobs were generated from inside PuTTY, so we needn't + * treat them as untrusted. + */ + pos = 4 + GET_32BIT(pubblob); + pos += ssh2_read_mpint(pubblob+pos, publen-pos, &e); + pos += ssh2_read_mpint(pubblob+pos, publen-pos, &n); + pos = 0; + pos += ssh2_read_mpint(privblob+pos, privlen-pos, &d); + pos += ssh2_read_mpint(privblob+pos, privlen-pos, &p); + pos += ssh2_read_mpint(privblob+pos, privlen-pos, &q); + pos += ssh2_read_mpint(privblob+pos, privlen-pos, &iqmp); + + assert(e.start && iqmp.start); /* can't go wrong */ + + /* We also need d mod (p-1) and d mod (q-1). */ + bd = bignum_from_bytes(d.start, d.bytes); + bp = bignum_from_bytes(p.start, p.bytes); + bq = bignum_from_bytes(q.start, q.bytes); + decbn(bp); + decbn(bq); + bdmp1 = bigmod(bd, bp); + bdmq1 = bigmod(bd, bq); + freebn(bd); + freebn(bp); + freebn(bq); + + dmp1.bytes = (bignum_bitcount(bdmp1)+8)/8; + dmq1.bytes = (bignum_bitcount(bdmq1)+8)/8; + sparelen = dmp1.bytes + dmq1.bytes; + spareblob = snewn(sparelen, unsigned char); + dmp1.start = spareblob; + dmq1.start = spareblob + dmp1.bytes; + for (i = 0; i < dmp1.bytes; i++) + spareblob[i] = bignum_byte(bdmp1, dmp1.bytes-1 - i); + for (i = 0; i < dmq1.bytes; i++) + spareblob[i+dmp1.bytes] = bignum_byte(bdmq1, dmq1.bytes-1 - i); + freebn(bdmp1); + freebn(bdmq1); + + numbers[0].start = zero; numbers[0].bytes = 1; zero[0] = '\0'; + numbers[1] = n; + numbers[2] = e; + numbers[3] = d; + numbers[4] = p; + numbers[5] = q; + numbers[6] = dmp1; + numbers[7] = dmq1; + numbers[8] = iqmp; + + nnumbers = 9; + header = "-----BEGIN RSA PRIVATE KEY-----\n"; + footer = "-----END RSA PRIVATE KEY-----\n"; + } else if (key->alg == &ssh_dss) { + int pos; + struct mpint_pos p, q, g, y, x; + + /* + * These blobs were generated from inside PuTTY, so we needn't + * treat them as untrusted. + */ + pos = 4 + GET_32BIT(pubblob); + pos += ssh2_read_mpint(pubblob+pos, publen-pos, &p); + pos += ssh2_read_mpint(pubblob+pos, publen-pos, &q); + pos += ssh2_read_mpint(pubblob+pos, publen-pos, &g); + pos += ssh2_read_mpint(pubblob+pos, publen-pos, &y); + pos = 0; + pos += ssh2_read_mpint(privblob+pos, privlen-pos, &x); + + assert(y.start && x.start); /* can't go wrong */ + + numbers[0].start = zero; numbers[0].bytes = 1; zero[0] = '\0'; + numbers[1] = p; + numbers[2] = q; + numbers[3] = g; + numbers[4] = y; + numbers[5] = x; + + nnumbers = 6; + header = "-----BEGIN DSA PRIVATE KEY-----\n"; + footer = "-----END DSA PRIVATE KEY-----\n"; + } else { + assert(0); /* zoinks! */ + exit(1); /* XXX: GCC doesn't understand assert() on some systems. */ + } + + /* + * Now count up the total size of the ASN.1 encoded integers, + * so as to determine the length of the containing SEQUENCE. + */ + len = 0; + for (i = 0; i < nnumbers; i++) { + len += ber_write_id_len(NULL, 2, numbers[i].bytes, 0); + len += numbers[i].bytes; + } + seqlen = len; + /* Now add on the SEQUENCE header. */ + len += ber_write_id_len(NULL, 16, seqlen, ASN1_CONSTRUCTED); + /* Round up to the cipher block size, ensuring we have at least one + * byte of padding (see below). */ + outlen = len; + if (passphrase) + outlen = (outlen+8) &~ 7; + + /* + * Now we know how big outblob needs to be. Allocate it. + */ + outblob = snewn(outlen, unsigned char); + + /* + * And write the data into it. + */ + pos = 0; + pos += ber_write_id_len(outblob+pos, 16, seqlen, ASN1_CONSTRUCTED); + for (i = 0; i < nnumbers; i++) { + pos += ber_write_id_len(outblob+pos, 2, numbers[i].bytes, 0); + memcpy(outblob+pos, numbers[i].start, numbers[i].bytes); + pos += numbers[i].bytes; + } + + /* + * Padding on OpenSSH keys is deterministic. The number of + * padding bytes is always more than zero, and always at most + * the cipher block length. The value of each padding byte is + * equal to the number of padding bytes. So a plaintext that's + * an exact multiple of the block size will be padded with 08 + * 08 08 08 08 08 08 08 (assuming a 64-bit block cipher); a + * plaintext one byte less than a multiple of the block size + * will be padded with just 01. + * + * This enables the OpenSSL key decryption function to strip + * off the padding algorithmically and return the unpadded + * plaintext to the next layer: it looks at the final byte, and + * then expects to find that many bytes at the end of the data + * with the same value. Those are all removed and the rest is + * returned. + */ + assert(pos == len); + while (pos < outlen) { + outblob[pos++] = outlen - len; + } + + /* + * Encrypt the key. + * + * For the moment, we still encrypt our OpenSSH keys using + * old-style 3DES. + */ + if (passphrase) { + /* + * Invent an iv. Then derive encryption key from passphrase + * and iv/salt: + * + * - let block A equal MD5(passphrase || iv) + * - let block B equal MD5(A || passphrase || iv) + * - block C would be MD5(B || passphrase || iv) and so on + * - encryption key is the first N bytes of A || B + */ + struct MD5Context md5c; + unsigned char keybuf[32]; + + for (i = 0; i < 8; i++) iv[i] = random_byte(); + + MD5Init(&md5c); + MD5Update(&md5c, (unsigned char *)passphrase, strlen(passphrase)); + MD5Update(&md5c, iv, 8); + MD5Final(keybuf, &md5c); + + MD5Init(&md5c); + MD5Update(&md5c, keybuf, 16); + MD5Update(&md5c, (unsigned char *)passphrase, strlen(passphrase)); + MD5Update(&md5c, iv, 8); + MD5Final(keybuf+16, &md5c); + + /* + * Now encrypt the key blob. + */ + des3_encrypt_pubkey_ossh(keybuf, iv, outblob, outlen); + + smemclr(&md5c, sizeof(md5c)); + smemclr(keybuf, sizeof(keybuf)); + } + + /* + * And save it. We'll use Unix line endings just in case it's + * subsequently transferred in binary mode. + */ + fp = f_open(filename, "wb", TRUE); /* ensure Unix line endings */ + if (!fp) + goto error; + fputs(header, fp); + if (passphrase) { + fprintf(fp, "Proc-Type: 4,ENCRYPTED\nDEK-Info: DES-EDE3-CBC,"); + for (i = 0; i < 8; i++) + fprintf(fp, "%02X", iv[i]); + fprintf(fp, "\n\n"); + } + base64_encode(fp, outblob, outlen, 64); + fputs(footer, fp); + fclose(fp); + ret = 1; + + error: + if (outblob) { + smemclr(outblob, outlen); + sfree(outblob); + } + if (spareblob) { + smemclr(spareblob, sparelen); + sfree(spareblob); + } + if (privblob) { + smemclr(privblob, privlen); + sfree(privblob); + } + if (pubblob) { + smemclr(pubblob, publen); + sfree(pubblob); + } + return ret; +} + +/* ---------------------------------------------------------------------- + * Code to read ssh.com private keys. + */ + +/* + * The format of the base64 blob is largely SSH-2-packet-formatted, + * except that mpints are a bit different: they're more like the + * old SSH-1 mpint. You have a 32-bit bit count N, followed by + * (N+7)/8 bytes of data. + * + * So. The blob contains: + * + * - uint32 0x3f6ff9eb (magic number) + * - uint32 size (total blob size) + * - string key-type (see below) + * - string cipher-type (tells you if key is encrypted) + * - string encrypted-blob + * + * (The first size field includes the size field itself and the + * magic number before it. All other size fields are ordinary SSH-2 + * strings, so the size field indicates how much data is to + * _follow_.) + * + * The encrypted blob, once decrypted, contains a single string + * which in turn contains the payload. (This allows padding to be + * added after that string while still making it clear where the + * real payload ends. Also it probably makes for a reasonable + * decryption check.) + * + * The payload blob, for an RSA key, contains: + * - mpint e + * - mpint d + * - mpint n (yes, the public and private stuff is intermixed) + * - mpint u (presumably inverse of p mod q) + * - mpint p (p is the smaller prime) + * - mpint q (q is the larger) + * + * For a DSA key, the payload blob contains: + * - uint32 0 + * - mpint p + * - mpint g + * - mpint q + * - mpint y + * - mpint x + * + * Alternatively, if the parameters are `predefined', that + * (0,p,g,q) sequence can be replaced by a uint32 1 and a string + * containing some predefined parameter specification. *shudder*, + * but I doubt we'll encounter this in real life. + * + * The key type strings are ghastly. The RSA key I looked at had a + * type string of + * + * `if-modn{sign{rsa-pkcs1-sha1},encrypt{rsa-pkcs1v2-oaep}}' + * + * and the DSA key wasn't much better: + * + * `dl-modp{sign{dsa-nist-sha1},dh{plain}}' + * + * It isn't clear that these will always be the same. I think it + * might be wise just to look at the `if-modn{sign{rsa' and + * `dl-modp{sign{dsa' prefixes. + * + * Finally, the encryption. The cipher-type string appears to be + * either `none' or `3des-cbc'. Looks as if this is SSH-2-style + * 3des-cbc (i.e. outer cbc rather than inner). The key is created + * from the passphrase by means of yet another hashing faff: + * + * - first 16 bytes are MD5(passphrase) + * - next 16 bytes are MD5(passphrase || first 16 bytes) + * - if there were more, they'd be MD5(passphrase || first 32), + * and so on. + */ + +#define SSHCOM_MAGIC_NUMBER 0x3f6ff9eb + +struct sshcom_key { + char comment[256]; /* allowing any length is overkill */ + unsigned char *keyblob; + int keyblob_len, keyblob_size; +}; + +static struct sshcom_key *load_sshcom_key(const Filename *filename, + const char **errmsg_p) +{ + struct sshcom_key *ret; + FILE *fp; + char *line = NULL; + int hdrstart, len; + char *errmsg, *p; + int headers_done; + char base64_bit[4]; + int base64_chars = 0; + + ret = snew(struct sshcom_key); + ret->comment[0] = '\0'; + ret->keyblob = NULL; + ret->keyblob_len = ret->keyblob_size = 0; + + fp = f_open(filename, "r", FALSE); + if (!fp) { + errmsg = "unable to open key file"; + goto error; + } + if (!(line = fgetline(fp))) { + errmsg = "unexpected end of file"; + goto error; + } + strip_crlf(line); + if (0 != strcmp(line, "---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----")) { + errmsg = "file does not begin with ssh.com key header"; + goto error; + } + smemclr(line, strlen(line)); + sfree(line); + line = NULL; + + headers_done = 0; + while (1) { + if (!(line = fgetline(fp))) { + errmsg = "unexpected end of file"; + goto error; + } + strip_crlf(line); + if (!strcmp(line, "---- END SSH2 ENCRYPTED PRIVATE KEY ----")) { + sfree(line); + line = NULL; + break; /* done */ + } + if ((p = strchr(line, ':')) != NULL) { + if (headers_done) { + errmsg = "header found in body of key data"; + goto error; + } + *p++ = '\0'; + while (*p && isspace((unsigned char)*p)) p++; + hdrstart = p - line; + + /* + * Header lines can end in a trailing backslash for + * continuation. + */ + len = hdrstart + strlen(line+hdrstart); + assert(!line[len]); + while (line[len-1] == '\\') { + char *line2; + int line2len; + + line2 = fgetline(fp); + if (!line2) { + errmsg = "unexpected end of file"; + goto error; + } + strip_crlf(line2); + + line2len = strlen(line2); + line = sresize(line, len + line2len + 1, char); + strcpy(line + len - 1, line2); + len += line2len - 1; + assert(!line[len]); + + smemclr(line2, strlen(line2)); + sfree(line2); + line2 = NULL; + } + p = line + hdrstart; + strip_crlf(p); + if (!strcmp(line, "Comment")) { + /* Strip quotes in comment if present. */ + if (p[0] == '"' && p[strlen(p)-1] == '"') { + p++; + p[strlen(p)-1] = '\0'; + } + strncpy(ret->comment, p, sizeof(ret->comment)); + ret->comment[sizeof(ret->comment)-1] = '\0'; + } + } else { + headers_done = 1; + + p = line; + while (isbase64(*p)) { + base64_bit[base64_chars++] = *p; + if (base64_chars == 4) { + unsigned char out[3]; + + base64_chars = 0; + + len = base64_decode_atom(base64_bit, out); + + if (len <= 0) { + errmsg = "invalid base64 encoding"; + goto error; + } + + if (ret->keyblob_len + len > ret->keyblob_size) { + ret->keyblob_size = ret->keyblob_len + len + 256; + ret->keyblob = sresize(ret->keyblob, ret->keyblob_size, + unsigned char); + } + + memcpy(ret->keyblob + ret->keyblob_len, out, len); + ret->keyblob_len += len; + } + + p++; + } + } + smemclr(line, strlen(line)); + sfree(line); + line = NULL; + } + + if (ret->keyblob_len == 0 || !ret->keyblob) { + errmsg = "key body not present"; + goto error; + } + + fclose(fp); + if (errmsg_p) *errmsg_p = NULL; + return ret; + + error: + if (fp) + fclose(fp); + + if (line) { + smemclr(line, strlen(line)); + sfree(line); + line = NULL; + } + if (ret) { + if (ret->keyblob) { + smemclr(ret->keyblob, ret->keyblob_size); + sfree(ret->keyblob); + } + smemclr(ret, sizeof(*ret)); + sfree(ret); + } + if (errmsg_p) *errmsg_p = errmsg; + return NULL; +} + +int sshcom_encrypted(const Filename *filename, char **comment) +{ + struct sshcom_key *key = load_sshcom_key(filename, NULL); + int pos, len, answer; + + answer = 0; + + *comment = NULL; + if (!key) + goto done; + + /* + * Check magic number. + */ + if (GET_32BIT(key->keyblob) != 0x3f6ff9eb) { + goto done; /* key is invalid */ + } + + /* + * Find the cipher-type string. + */ + pos = 8; + if (key->keyblob_len < pos+4) + goto done; /* key is far too short */ + len = toint(GET_32BIT(key->keyblob + pos)); + if (len < 0 || len > key->keyblob_len - pos - 4) + goto done; /* key is far too short */ + pos += 4 + len; /* skip key type */ + len = toint(GET_32BIT(key->keyblob + pos)); /* find cipher-type length */ + if (len < 0 || len > key->keyblob_len - pos - 4) + goto done; /* cipher type string is incomplete */ + if (len != 4 || 0 != memcmp(key->keyblob + pos + 4, "none", 4)) + answer = 1; + + done: + if (key) { + *comment = dupstr(key->comment); + smemclr(key->keyblob, key->keyblob_size); + sfree(key->keyblob); + smemclr(key, sizeof(*key)); + sfree(key); + } else { + *comment = dupstr(""); + } + return answer; +} + +static int sshcom_read_mpint(void *data, int len, struct mpint_pos *ret) +{ + unsigned bits, bytes; + unsigned char *d = (unsigned char *) data; + + if (len < 4) + goto error; + bits = GET_32BIT(d); + + bytes = (bits + 7) / 8; + if (len < 4+bytes) + goto error; + + ret->start = d + 4; + ret->bytes = bytes; + return bytes+4; + + error: + ret->start = NULL; + ret->bytes = -1; + return len; /* ensure further calls fail as well */ +} + +static int sshcom_put_mpint(void *target, void *data, int len) +{ + unsigned char *d = (unsigned char *)target; + unsigned char *i = (unsigned char *)data; + int bits = len * 8 - 1; + + while (bits > 0) { + if (*i & (1 << (bits & 7))) + break; + if (!(bits-- & 7)) + i++, len--; + } + + PUT_32BIT(d, bits+1); + memcpy(d+4, i, len); + return len+4; +} + +struct ssh2_userkey *sshcom_read(const Filename *filename, char *passphrase, + const char **errmsg_p) +{ + struct sshcom_key *key = load_sshcom_key(filename, errmsg_p); + char *errmsg; + int pos, len; + const char prefix_rsa[] = "if-modn{sign{rsa"; + const char prefix_dsa[] = "dl-modp{sign{dsa"; + enum { RSA, DSA } type; + int encrypted; + char *ciphertext; + int cipherlen; + struct ssh2_userkey *ret = NULL, *retkey; + const struct ssh_signkey *alg; + unsigned char *blob = NULL; + int blobsize = 0, publen, privlen; + + if (!key) + return NULL; + + /* + * Check magic number. + */ + if (GET_32BIT(key->keyblob) != SSHCOM_MAGIC_NUMBER) { + errmsg = "key does not begin with magic number"; + goto error; + } + + /* + * Determine the key type. + */ + pos = 8; + if (key->keyblob_len < pos+4 || + (len = toint(GET_32BIT(key->keyblob + pos))) < 0 || + len > key->keyblob_len - pos - 4) { + errmsg = "key blob does not contain a key type string"; + goto error; + } + if (len > sizeof(prefix_rsa) - 1 && + !memcmp(key->keyblob+pos+4, prefix_rsa, sizeof(prefix_rsa) - 1)) { + type = RSA; + } else if (len > sizeof(prefix_dsa) - 1 && + !memcmp(key->keyblob+pos+4, prefix_dsa, sizeof(prefix_dsa) - 1)) { + type = DSA; + } else { + errmsg = "key is of unknown type"; + goto error; + } + pos += 4+len; + + /* + * Determine the cipher type. + */ + if (key->keyblob_len < pos+4 || + (len = toint(GET_32BIT(key->keyblob + pos))) < 0 || + len > key->keyblob_len - pos - 4) { + errmsg = "key blob does not contain a cipher type string"; + goto error; + } + if (len == 4 && !memcmp(key->keyblob+pos+4, "none", 4)) + encrypted = 0; + else if (len == 8 && !memcmp(key->keyblob+pos+4, "3des-cbc", 8)) + encrypted = 1; + else { + errmsg = "key encryption is of unknown type"; + goto error; + } + pos += 4+len; + + /* + * Get hold of the encrypted part of the key. + */ + if (key->keyblob_len < pos+4 || + (len = toint(GET_32BIT(key->keyblob + pos))) < 0 || + len > key->keyblob_len - pos - 4) { + errmsg = "key blob does not contain actual key data"; + goto error; + } + ciphertext = (char *)key->keyblob + pos + 4; + cipherlen = len; + if (cipherlen == 0) { + errmsg = "length of key data is zero"; + goto error; + } + + /* + * Decrypt it if necessary. + */ + if (encrypted) { + /* + * Derive encryption key from passphrase and iv/salt: + * + * - let block A equal MD5(passphrase) + * - let block B equal MD5(passphrase || A) + * - block C would be MD5(passphrase || A || B) and so on + * - encryption key is the first N bytes of A || B + */ + struct MD5Context md5c; + unsigned char keybuf[32], iv[8]; + + if (cipherlen % 8 != 0) { + errmsg = "encrypted part of key is not a multiple of cipher block" + " size"; + goto error; + } + + MD5Init(&md5c); + MD5Update(&md5c, (unsigned char *)passphrase, strlen(passphrase)); + MD5Final(keybuf, &md5c); + + MD5Init(&md5c); + MD5Update(&md5c, (unsigned char *)passphrase, strlen(passphrase)); + MD5Update(&md5c, keybuf, 16); + MD5Final(keybuf+16, &md5c); + + /* + * Now decrypt the key blob. + */ + memset(iv, 0, sizeof(iv)); + des3_decrypt_pubkey_ossh(keybuf, iv, (unsigned char *)ciphertext, + cipherlen); + + smemclr(&md5c, sizeof(md5c)); + smemclr(keybuf, sizeof(keybuf)); + + /* + * Hereafter we return WRONG_PASSPHRASE for any parsing + * error. (But only if we've just tried to decrypt it! + * Returning WRONG_PASSPHRASE for an unencrypted key is + * automatic doom.) + */ + if (encrypted) + ret = SSH2_WRONG_PASSPHRASE; + } + + /* + * Strip away the containing string to get to the real meat. + */ + len = toint(GET_32BIT(ciphertext)); + if (len < 0 || len > cipherlen-4) { + errmsg = "containing string was ill-formed"; + goto error; + } + ciphertext += 4; + cipherlen = len; + + /* + * Now we break down into RSA versus DSA. In either case we'll + * construct public and private blobs in our own format, and + * end up feeding them to alg->createkey(). + */ + blobsize = cipherlen + 256; + blob = snewn(blobsize, unsigned char); + privlen = 0; + if (type == RSA) { + struct mpint_pos n, e, d, u, p, q; + int pos = 0; + pos += sshcom_read_mpint(ciphertext+pos, cipherlen-pos, &e); + pos += sshcom_read_mpint(ciphertext+pos, cipherlen-pos, &d); + pos += sshcom_read_mpint(ciphertext+pos, cipherlen-pos, &n); + pos += sshcom_read_mpint(ciphertext+pos, cipherlen-pos, &u); + pos += sshcom_read_mpint(ciphertext+pos, cipherlen-pos, &p); + pos += sshcom_read_mpint(ciphertext+pos, cipherlen-pos, &q); + if (!q.start) { + errmsg = "key data did not contain six integers"; + goto error; + } + + alg = &ssh_rsa; + pos = 0; + pos += put_string(blob+pos, "ssh-rsa", 7); + pos += put_mp(blob+pos, e.start, e.bytes); + pos += put_mp(blob+pos, n.start, n.bytes); + publen = pos; + pos += put_string(blob+pos, d.start, d.bytes); + pos += put_mp(blob+pos, q.start, q.bytes); + pos += put_mp(blob+pos, p.start, p.bytes); + pos += put_mp(blob+pos, u.start, u.bytes); + privlen = pos - publen; + } else { + struct mpint_pos p, q, g, x, y; + int pos = 4; + + assert(type == DSA); /* the only other option from the if above */ + + if (GET_32BIT(ciphertext) != 0) { + errmsg = "predefined DSA parameters not supported"; + goto error; + } + pos += sshcom_read_mpint(ciphertext+pos, cipherlen-pos, &p); + pos += sshcom_read_mpint(ciphertext+pos, cipherlen-pos, &g); + pos += sshcom_read_mpint(ciphertext+pos, cipherlen-pos, &q); + pos += sshcom_read_mpint(ciphertext+pos, cipherlen-pos, &y); + pos += sshcom_read_mpint(ciphertext+pos, cipherlen-pos, &x); + if (!x.start) { + errmsg = "key data did not contain five integers"; + goto error; + } + + alg = &ssh_dss; + pos = 0; + pos += put_string(blob+pos, "ssh-dss", 7); + pos += put_mp(blob+pos, p.start, p.bytes); + pos += put_mp(blob+pos, q.start, q.bytes); + pos += put_mp(blob+pos, g.start, g.bytes); + pos += put_mp(blob+pos, y.start, y.bytes); + publen = pos; + pos += put_mp(blob+pos, x.start, x.bytes); + privlen = pos - publen; + } + + assert(privlen > 0); /* should have bombed by now if not */ + + retkey = snew(struct ssh2_userkey); + retkey->alg = alg; + retkey->data = alg->createkey(blob, publen, blob+publen, privlen); + if (!retkey->data) { + sfree(retkey); + errmsg = "unable to create key data structure"; + goto error; + } + retkey->comment = dupstr(key->comment); + + errmsg = NULL; /* no error */ + ret = retkey; + + error: + if (blob) { + smemclr(blob, blobsize); + sfree(blob); + } + smemclr(key->keyblob, key->keyblob_size); + sfree(key->keyblob); + smemclr(key, sizeof(*key)); + sfree(key); + if (errmsg_p) *errmsg_p = errmsg; + return ret; +} + +int sshcom_write(const Filename *filename, struct ssh2_userkey *key, + char *passphrase) +{ + unsigned char *pubblob, *privblob; + int publen, privlen; + unsigned char *outblob; + int outlen; + struct mpint_pos numbers[6]; + int nnumbers, initial_zero, pos, lenpos, i; + char *type; + char *ciphertext; + int cipherlen; + int ret = 0; + FILE *fp; + + /* + * Fetch the key blobs. + */ + pubblob = key->alg->public_blob(key->data, &publen); + privblob = key->alg->private_blob(key->data, &privlen); + outblob = NULL; + + /* + * Find the sequence of integers to be encoded into the OpenSSH + * key blob, and also decide on the header line. + */ + if (key->alg == &ssh_rsa) { + int pos; + struct mpint_pos n, e, d, p, q, iqmp; + + /* + * These blobs were generated from inside PuTTY, so we needn't + * treat them as untrusted. + */ + pos = 4 + GET_32BIT(pubblob); + pos += ssh2_read_mpint(pubblob+pos, publen-pos, &e); + pos += ssh2_read_mpint(pubblob+pos, publen-pos, &n); + pos = 0; + pos += ssh2_read_mpint(privblob+pos, privlen-pos, &d); + pos += ssh2_read_mpint(privblob+pos, privlen-pos, &p); + pos += ssh2_read_mpint(privblob+pos, privlen-pos, &q); + pos += ssh2_read_mpint(privblob+pos, privlen-pos, &iqmp); + + assert(e.start && iqmp.start); /* can't go wrong */ + + numbers[0] = e; + numbers[1] = d; + numbers[2] = n; + numbers[3] = iqmp; + numbers[4] = q; + numbers[5] = p; + + nnumbers = 6; + initial_zero = 0; + type = "if-modn{sign{rsa-pkcs1-sha1},encrypt{rsa-pkcs1v2-oaep}}"; + } else if (key->alg == &ssh_dss) { + int pos; + struct mpint_pos p, q, g, y, x; + + /* + * These blobs were generated from inside PuTTY, so we needn't + * treat them as untrusted. + */ + pos = 4 + GET_32BIT(pubblob); + pos += ssh2_read_mpint(pubblob+pos, publen-pos, &p); + pos += ssh2_read_mpint(pubblob+pos, publen-pos, &q); + pos += ssh2_read_mpint(pubblob+pos, publen-pos, &g); + pos += ssh2_read_mpint(pubblob+pos, publen-pos, &y); + pos = 0; + pos += ssh2_read_mpint(privblob+pos, privlen-pos, &x); + + assert(y.start && x.start); /* can't go wrong */ + + numbers[0] = p; + numbers[1] = g; + numbers[2] = q; + numbers[3] = y; + numbers[4] = x; + + nnumbers = 5; + initial_zero = 1; + type = "dl-modp{sign{dsa-nist-sha1},dh{plain}}"; + } else { + assert(0); /* zoinks! */ + exit(1); /* XXX: GCC doesn't understand assert() on some systems. */ + } + + /* + * Total size of key blob will be somewhere under 512 plus + * combined length of integers. We'll calculate the more + * precise size as we construct the blob. + */ + outlen = 512; + for (i = 0; i < nnumbers; i++) + outlen += 4 + numbers[i].bytes; + outblob = snewn(outlen, unsigned char); + + /* + * Create the unencrypted key blob. + */ + pos = 0; + PUT_32BIT(outblob+pos, SSHCOM_MAGIC_NUMBER); pos += 4; + pos += 4; /* length field, fill in later */ + pos += put_string(outblob+pos, type, strlen(type)); + { + char *ciphertype = passphrase ? "3des-cbc" : "none"; + pos += put_string(outblob+pos, ciphertype, strlen(ciphertype)); + } + lenpos = pos; /* remember this position */ + pos += 4; /* encrypted-blob size */ + pos += 4; /* encrypted-payload size */ + if (initial_zero) { + PUT_32BIT(outblob+pos, 0); + pos += 4; + } + for (i = 0; i < nnumbers; i++) + pos += sshcom_put_mpint(outblob+pos, + numbers[i].start, numbers[i].bytes); + /* Now wrap up the encrypted payload. */ + PUT_32BIT(outblob+lenpos+4, pos - (lenpos+8)); + /* Pad encrypted blob to a multiple of cipher block size. */ + if (passphrase) { + int padding = -(pos - (lenpos+4)) & 7; + while (padding--) + outblob[pos++] = random_byte(); + } + ciphertext = (char *)outblob+lenpos+4; + cipherlen = pos - (lenpos+4); + assert(!passphrase || cipherlen % 8 == 0); + /* Wrap up the encrypted blob string. */ + PUT_32BIT(outblob+lenpos, cipherlen); + /* And finally fill in the total length field. */ + PUT_32BIT(outblob+4, pos); + + assert(pos < outlen); + + /* + * Encrypt the key. + */ + if (passphrase) { + /* + * Derive encryption key from passphrase and iv/salt: + * + * - let block A equal MD5(passphrase) + * - let block B equal MD5(passphrase || A) + * - block C would be MD5(passphrase || A || B) and so on + * - encryption key is the first N bytes of A || B + */ + struct MD5Context md5c; + unsigned char keybuf[32], iv[8]; + + MD5Init(&md5c); + MD5Update(&md5c, (unsigned char *)passphrase, strlen(passphrase)); + MD5Final(keybuf, &md5c); + + MD5Init(&md5c); + MD5Update(&md5c, (unsigned char *)passphrase, strlen(passphrase)); + MD5Update(&md5c, keybuf, 16); + MD5Final(keybuf+16, &md5c); + + /* + * Now decrypt the key blob. + */ + memset(iv, 0, sizeof(iv)); + des3_encrypt_pubkey_ossh(keybuf, iv, (unsigned char *)ciphertext, + cipherlen); + + smemclr(&md5c, sizeof(md5c)); + smemclr(keybuf, sizeof(keybuf)); + } + + /* + * And save it. We'll use Unix line endings just in case it's + * subsequently transferred in binary mode. + */ + fp = f_open(filename, "wb", TRUE); /* ensure Unix line endings */ + if (!fp) + goto error; + fputs("---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----\n", fp); + fprintf(fp, "Comment: \""); + /* + * Comment header is broken with backslash-newline if it goes + * over 70 chars. Although it's surrounded by quotes, it + * _doesn't_ escape backslashes or quotes within the string. + * Don't ask me, I didn't design it. + */ + { + int slen = 60; /* starts at 60 due to "Comment: " */ + char *c = key->comment; + while ((int)strlen(c) > slen) { + fprintf(fp, "%.*s\\\n", slen, c); + c += slen; + slen = 70; /* allow 70 chars on subsequent lines */ + } + fprintf(fp, "%s\"\n", c); + } + base64_encode(fp, outblob, pos, 70); + fputs("---- END SSH2 ENCRYPTED PRIVATE KEY ----\n", fp); + fclose(fp); + ret = 1; + + error: + if (outblob) { + smemclr(outblob, outlen); + sfree(outblob); + } + if (privblob) { + smemclr(privblob, privlen); + sfree(privblob); + } + if (pubblob) { + smemclr(pubblob, publen); + sfree(pubblob); + } + return ret; +} diff --git a/source/putty/noshare.c b/source/putty/noshare.c new file mode 100644 index 00000000..9a888454 --- /dev/null +++ b/source/putty/noshare.c @@ -0,0 +1,25 @@ +/* + * Stub implementation of SSH connection-sharing IPC, for any + * platform which can't support it at all. + */ + +#include +#include +#include + +#include "tree234.h" +#include "putty.h" +#include "ssh.h" +#include "network.h" + +int platform_ssh_share(const char *name, Conf *conf, + Plug downplug, Plug upplug, Socket *sock, + char **logtext, char **ds_err, char **us_err, + int can_upstream, int can_downstream) +{ + return SHARE_NONE; +} + +void platform_ssh_share_cleanup(const char *name) +{ +} diff --git a/source/putty/sshbn.h b/source/putty/sshbn.h new file mode 100644 index 00000000..55c18c95 --- /dev/null +++ b/source/putty/sshbn.h @@ -0,0 +1,120 @@ +/* + * sshbn.h: the assorted conditional definitions of BignumInt and + * multiply/divide macros used throughout the bignum code to treat + * numbers as arrays of the most conveniently sized word for the + * target machine. Exported so that other code (e.g. poly1305) can use + * it too. + */ + +/* + * Usage notes: + * * Do not call the DIVMOD_WORD macro with expressions such as array + * subscripts, as some implementations object to this (see below). + * * Note that none of the division methods below will cope if the + * quotient won't fit into BIGNUM_INT_BITS. Callers should be careful + * to avoid this case. + * If this condition occurs, in the case of the x86 DIV instruction, + * an overflow exception will occur, which (according to a correspondent) + * will manifest on Windows as something like + * 0xC0000095: Integer overflow + * The C variant won't give the right answer, either. + */ + +#if defined __SIZEOF_INT128__ +/* gcc and clang both provide a __uint128_t type on 64-bit targets + * (and, when they do, indicate its presence by the above macro), + * using the same 'two machine registers' kind of code generation that + * 32-bit targets use for 64-bit ints. If we have one of these, we can + * use a 64-bit BignumInt and a 128-bit BignumDblInt. */ +typedef __uint64_t BignumInt; +typedef __uint128_t BignumDblInt; +#define BIGNUM_INT_MASK 0xFFFFFFFFFFFFFFFFULL +#define BIGNUM_TOP_BIT 0x8000000000000000ULL +#define BIGNUM_INT_BITS 64 +#define MUL_WORD(w1, w2) ((BignumDblInt)w1 * w2) +#define DIVMOD_WORD(q, r, hi, lo, w) do { \ + BignumDblInt n = (((BignumDblInt)hi) << BIGNUM_INT_BITS) | lo; \ + q = n / w; \ + r = n % w; \ +} while (0) +#elif defined __GNUC__ && defined __i386__ +typedef unsigned long BignumInt; +typedef unsigned long long BignumDblInt; +#define BIGNUM_INT_MASK 0xFFFFFFFFUL +#define BIGNUM_TOP_BIT 0x80000000UL +#define BIGNUM_INT_BITS 32 +#define MUL_WORD(w1, w2) ((BignumDblInt)w1 * w2) +#define DIVMOD_WORD(q, r, hi, lo, w) \ + __asm__("div %2" : \ + "=d" (r), "=a" (q) : \ + "r" (w), "d" (hi), "a" (lo)) +#elif (defined _MSC_VER && defined _M_IX86) || defined(MPEXT) +typedef unsigned __int32 BignumInt; +typedef unsigned __int64 BignumDblInt; +#define BIGNUM_INT_MASK 0xFFFFFFFFUL +#define BIGNUM_TOP_BIT 0x80000000UL +#define BIGNUM_INT_BITS 32 +#define MUL_WORD(w1, w2) ((BignumDblInt)w1 * w2) +/* Note: MASM interprets array subscripts in the macro arguments as + * assembler syntax, which gives the wrong answer. Don't supply them. + * */ +#ifdef MPEXT +// BCC requires semicolons +#define DIVMOD_WORD(q, r, hi, lo, w) do { \ + __asm mov edx, hi; \ + __asm mov eax, lo; \ + __asm div w; \ + __asm mov r, edx; \ + __asm mov q, eax; \ +} while(0) +#else +#define DIVMOD_WORD(q, r, hi, lo, w) do { \ + __asm mov edx, hi \ + __asm mov eax, lo \ + __asm div w \ + __asm mov r, edx \ + __asm mov q, eax \ +} while(0) +#endif +#elif defined _LP64 +/* 64-bit architectures can do 32x32->64 chunks at a time */ +typedef unsigned int BignumInt; +typedef unsigned long BignumDblInt; +#define BIGNUM_INT_MASK 0xFFFFFFFFU +#define BIGNUM_TOP_BIT 0x80000000U +#define BIGNUM_INT_BITS 32 +#define MUL_WORD(w1, w2) ((BignumDblInt)w1 * w2) +#define DIVMOD_WORD(q, r, hi, lo, w) do { \ + BignumDblInt n = (((BignumDblInt)hi) << BIGNUM_INT_BITS) | lo; \ + q = n / w; \ + r = n % w; \ +} while (0) +#elif defined _LLP64 +/* 64-bit architectures in which unsigned long is 32 bits, not 64 */ +typedef unsigned long BignumInt; +typedef unsigned long long BignumDblInt; +#define BIGNUM_INT_MASK 0xFFFFFFFFUL +#define BIGNUM_TOP_BIT 0x80000000UL +#define BIGNUM_INT_BITS 32 +#define MUL_WORD(w1, w2) ((BignumDblInt)w1 * w2) +#define DIVMOD_WORD(q, r, hi, lo, w) do { \ + BignumDblInt n = (((BignumDblInt)hi) << BIGNUM_INT_BITS) | lo; \ + q = n / w; \ + r = n % w; \ +} while (0) +#else +/* Fallback for all other cases */ +typedef unsigned short BignumInt; +typedef unsigned long BignumDblInt; +#define BIGNUM_INT_MASK 0xFFFFU +#define BIGNUM_TOP_BIT 0x8000U +#define BIGNUM_INT_BITS 16 +#define MUL_WORD(w1, w2) ((BignumDblInt)w1 * w2) +#define DIVMOD_WORD(q, r, hi, lo, w) do { \ + BignumDblInt n = (((BignumDblInt)hi) << BIGNUM_INT_BITS) | lo; \ + q = n / w; \ + r = n % w; \ +} while (0) +#endif + +#define BIGNUM_INT_BYTES (BIGNUM_INT_BITS / 8) diff --git a/source/putty/sshshare.c b/source/putty/sshshare.c new file mode 100644 index 00000000..1c0e3cba --- /dev/null +++ b/source/putty/sshshare.c @@ -0,0 +1,2128 @@ +/* + * Support for SSH connection sharing, i.e. permitting one PuTTY to + * open its own channels over the SSH session being run by another. + */ + +/* + * Discussion and technical documentation + * ====================================== + * + * The basic strategy for PuTTY's implementation of SSH connection + * sharing is to have a single 'upstream' PuTTY process, which manages + * the real SSH connection and all the cryptography, and then zero or + * more 'downstream' PuTTYs, which never talk to the real host but + * only talk to the upstream through local IPC (Unix-domain sockets or + * Windows named pipes). + * + * The downstreams communicate with the upstream using a protocol + * derived from SSH itself, which I'll document in detail below. In + * brief, though: the downstream->upstream protocol uses a trivial + * binary packet protocol (just length/type/data) to encapsulate + * unencrypted SSH messages, and downstreams talk to the upstream more + * or less as if it was an SSH server itself. (So downstreams can + * themselves open multiple SSH channels, for example, by sending + * multiple SSH2_MSG_CHANNEL_OPENs; they can send CHANNEL_REQUESTs of + * their choice within each channel, and they handle their own + * WINDOW_ADJUST messages.) + * + * The upstream would ideally handle these downstreams by just putting + * their messages into the queue for proper SSH-2 encapsulation and + * encryption and sending them straight on to the server. However, + * that's not quite feasible as written, because client-side channel + * IDs could easily conflict (between multiple downstreams, or between + * a downstream and the upstream). To protect against that, the + * upstream rewrites the client-side channel IDs in messages it passes + * on to the server, so that it's performing what you might describe + * as 'channel-number NAT'. Then the upstream remembers which of its + * own channel IDs are channels it's managing itself, and which are + * placeholders associated with a particular downstream, so that when + * replies come in from the server they can be sent on to the relevant + * downstream (after un-NATting the channel number, of course). + * + * Global requests from downstreams are only accepted if the upstream + * knows what to do about them; currently the only such requests are + * the ones having to do with remote-to-local port forwarding (in + * which, again, the upstream remembers that some of the forwardings + * it's asked the server to set up were on behalf of particular + * downstreams, and sends the incoming CHANNEL_OPENs to those + * downstreams when connections come in). + * + * Other fiddly pieces of this mechanism are X forwarding and + * (OpenSSH-style) agent forwarding. Both of these have a fundamental + * problem arising from the protocol design: that the CHANNEL_OPEN + * from the server introducing a forwarded connection does not carry + * any indication of which session channel gave rise to it; so if + * session channels from multiple downstreams enable those forwarding + * methods, it's hard for the upstream to know which downstream to + * send the resulting connections back to. + * + * For X forwarding, we can work around this in a really painful way + * by using the fake X11 authorisation data sent to the server as part + * of the forwarding setup: upstream ensures that every X forwarding + * request carries distinguishable fake auth data, and then when X + * connections come in it waits to see the auth data in the X11 setup + * message before it decides which downstream to pass the connection + * on to. + * + * For agent forwarding, that workaround is unavailable. As a result, + * this system (and, as far as I can think of, any other system too) + * has the fundamental constraint that it can only forward one SSH + * agent - it can't forward two agents to different session channels. + * So downstreams can request agent forwarding if they like, but if + * they do, they'll get whatever SSH agent is known to the upstream + * (if any) forwarded to their sessions. + * + * Downstream-to-upstream protocol + * ------------------------------- + * + * Here I document in detail the protocol spoken between PuTTY + * downstreams and upstreams over local IPC. The IPC mechanism can + * vary between host platforms, but the protocol is the same. + * + * The protocol commences with a version exchange which is exactly + * like the SSH-2 one, in that each side sends a single line of text + * of the form + * + * -- [comments] \r\n + * + * The only difference is that in real SSH-2, is the string + * "SSH", whereas in this protocol the string is + * "SSHCONNECTION@putty.projects.tartarus.org". + * + * (The SSH RFCs allow many protocol-level identifier namespaces to be + * extended by implementors without central standardisation as long as + * they suffix "@" and a domain name they control to their new ids. + * RFC 4253 does not define this particular name to be changeable at + * all, but I like to think this is obviously how it would have done + * so if the working group had foreseen the need :-) + * + * Thereafter, all data exchanged consists of a sequence of binary + * packets concatenated end-to-end, each of which is of the form + * + * uint32 length of packet, N + * byte[N] N bytes of packet data + * + * and, since these are SSH-2 messages, the first data byte is taken + * to be the packet type code. + * + * These messages are interpreted as those of an SSH connection, after + * userauth completes, and without any repeat key exchange. + * Specifically, any message from the SSH Connection Protocol is + * permitted, and also SSH_MSG_IGNORE, SSH_MSG_DEBUG, + * SSH_MSG_DISCONNECT and SSH_MSG_UNIMPLEMENTED from the SSH Transport + * Protocol. + * + * This protocol imposes a few additional requirements, over and above + * those of the standard SSH Connection Protocol: + * + * Message sizes are not permitted to exceed 0x4010 (16400) bytes, + * including their length header. + * + * When the server (i.e. really the PuTTY upstream) sends + * SSH_MSG_CHANNEL_OPEN with channel type "x11", and the client + * (downstream) responds with SSH_MSG_CHANNEL_OPEN_CONFIRMATION, that + * confirmation message MUST include an initial window size of at + * least 256. (Rationale: this is a bit of a fudge which makes it + * easier, by eliminating the possibility of nasty edge cases, for an + * upstream to arrange not to pass the CHANNEL_OPEN on to downstream + * until after it's seen the X11 auth data to decide which downstream + * it needs to go to.) + */ + +#include +#include +#include +#include + +#include "putty.h" +#include "tree234.h" +#include "ssh.h" + +struct ssh_sharing_state { + const struct plug_function_table *fn; + /* the above variable absolutely *must* be the first in this structure */ + + char *sockname; /* the socket name, kept for cleanup */ + Socket listensock; /* the master listening Socket */ + tree234 *connections; /* holds ssh_sharing_connstates */ + unsigned nextid; /* preferred id for next connstate */ + Ssh ssh; /* instance of the ssh backend */ + char *server_verstring; /* server version string after "SSH-" */ +}; + +struct share_globreq; + +struct ssh_sharing_connstate { + const struct plug_function_table *fn; + /* the above variable absolutely *must* be the first in this structure */ + + unsigned id; /* used to identify this downstream in log messages */ + + Socket sock; /* the Socket for this connection */ + struct ssh_sharing_state *parent; + + int crLine; /* coroutine state for share_receive */ + + int sent_verstring, got_verstring, curr_packetlen; + + unsigned char recvbuf[0x4010]; + int recvlen; + + /* + * Assorted state we have to remember about this downstream, so + * that we can clean it up appropriately when the downstream goes + * away. + */ + + /* Channels which don't have a downstream id, i.e. we've passed a + * CHANNEL_OPEN down from the server but not had an + * OPEN_CONFIRMATION or OPEN_FAILURE back. If downstream goes + * away, we respond to all of these with OPEN_FAILURE. */ + tree234 *halfchannels; /* stores 'struct share_halfchannel' */ + + /* Channels which do have a downstream id. We need to index these + * by both server id and upstream id, so we can find a channel + * when handling either an upward or a downward message referring + * to it. */ + tree234 *channels_by_us; /* stores 'struct share_channel' */ + tree234 *channels_by_server; /* stores 'struct share_channel' */ + + /* Another class of channel which doesn't have a downstream id. + * The difference between these and halfchannels is that xchannels + * do have an *upstream* id, because upstream has already accepted + * the channel request from the server. This arises in the case of + * X forwarding, where we have to accept the request and read the + * X authorisation data before we know whether the channel needs + * to be forwarded to a downstream. */ + tree234 *xchannels_by_us; /* stores 'struct share_xchannel' */ + tree234 *xchannels_by_server; /* stores 'struct share_xchannel' */ + + /* Remote port forwarding requests in force. */ + tree234 *forwardings; /* stores 'struct share_forwarding' */ + + /* Global requests we've sent on to the server, pending replies. */ + struct share_globreq *globreq_head, *globreq_tail; +}; + +struct share_halfchannel { + unsigned server_id; +}; + +/* States of a share_channel. */ +enum { + OPEN, + SENT_CLOSE, + RCVD_CLOSE, + /* Downstream has sent CHANNEL_OPEN but server hasn't replied yet. + * If downstream goes away when a channel is in this state, we + * must wait for the server's response before starting to send + * CLOSE. Channels in this state are also not held in + * channels_by_server, because their server_id field is + * meaningless. */ + UNACKNOWLEDGED +}; + +struct share_channel { + unsigned downstream_id, upstream_id, server_id; + int downstream_maxpkt; + int state; + /* + * Some channels (specifically, channels on which downstream has + * sent "x11-req") have the additional function of storing a set + * of downstream X authorisation data and a handle to an upstream + * fake set. + */ + struct X11FakeAuth *x11_auth_upstream; + int x11_auth_proto; + char *x11_auth_data; + int x11_auth_datalen; + int x11_one_shot; +}; + +struct share_forwarding { + char *host; + int port; + int active; /* has the server sent REQUEST_SUCCESS? */ +}; + +struct share_xchannel_message { + struct share_xchannel_message *next; + int type; + unsigned char *data; + int datalen; +}; + +struct share_xchannel { + unsigned upstream_id, server_id; + + /* + * xchannels come in two flavours: live and dead. Live ones are + * waiting for an OPEN_CONFIRMATION or OPEN_FAILURE from + * downstream; dead ones have had an OPEN_FAILURE, so they only + * exist as a means of letting us conveniently respond to further + * channel messages from the server until such time as the server + * sends us CHANNEL_CLOSE. + */ + int live; + + /* + * When we receive OPEN_CONFIRMATION, we will need to send a + * WINDOW_ADJUST to the server to synchronise the windows. For + * this purpose we need to know what window we have so far offered + * the server. We record this as exactly the value in the + * OPEN_CONFIRMATION that upstream sent us, adjusted by the amount + * by which the two X greetings differed in length. + */ + int window; + + /* + * Linked list of SSH messages from the server relating to this + * channel, which we queue up until downstream sends us an + * OPEN_CONFIRMATION and we can belatedly send them all on. + */ + struct share_xchannel_message *msghead, *msgtail; +}; + +enum { + GLOBREQ_TCPIP_FORWARD, + GLOBREQ_CANCEL_TCPIP_FORWARD +}; + +struct share_globreq { + struct share_globreq *next; + int type; + int want_reply; + struct share_forwarding *fwd; +}; + +static int share_connstate_cmp(void *av, void *bv) +{ + const struct ssh_sharing_connstate *a = + (const struct ssh_sharing_connstate *)av; + const struct ssh_sharing_connstate *b = + (const struct ssh_sharing_connstate *)bv; + + if (a->id < b->id) + return -1; + else if (a->id > b->id) + return +1; + else + return 0; +} + +static unsigned share_find_unused_id +(struct ssh_sharing_state *sharestate, unsigned first) +{ + int low_orig, low, mid, high, high_orig; + struct ssh_sharing_connstate *cs; + unsigned ret; + + /* + * Find the lowest unused downstream ID greater or equal to + * 'first'. + * + * Begin by seeing if 'first' itself is available. If it is, we'll + * just return it; if it's already in the tree, we'll find the + * tree index where it appears and use that for the next stage. + */ + { + struct ssh_sharing_connstate dummy; + dummy.id = first; + cs = findrelpos234(sharestate->connections, &dummy, NULL, + REL234_GE, &low_orig); + if (!cs) + return first; + } + + /* + * Now binary-search using the counted B-tree, to find the largest + * ID which is in a contiguous sequence from the beginning of that + * range. + */ + low = low_orig; + high = high_orig = count234(sharestate->connections); + while (high - low > 1) { + mid = (high + low) / 2; + cs = index234(sharestate->connections, mid); + if (cs->id == first + (mid - low_orig)) + low = mid; /* this one is still in the sequence */ + else + high = mid; /* this one is past the end */ + } + + /* + * Now low is the tree index of the largest ID in the initial + * sequence. So the return value is one more than low's id, and we + * know low's id is given by the formula in the binary search loop + * above. + * + * (If an SSH connection went on for _enormously_ long, we might + * reach a point where all ids from 'first' to UINT_MAX were in + * use. In that situation the formula below would wrap round by + * one and return zero, which is conveniently the right way to + * signal 'no id available' from this function.) + */ + ret = first + (low - low_orig) + 1; + { + struct ssh_sharing_connstate dummy; + dummy.id = ret; + assert(NULL == find234(sharestate->connections, &dummy, NULL)); + } + return ret; +} + +static int share_halfchannel_cmp(void *av, void *bv) +{ + const struct share_halfchannel *a = (const struct share_halfchannel *)av; + const struct share_halfchannel *b = (const struct share_halfchannel *)bv; + + if (a->server_id < b->server_id) + return -1; + else if (a->server_id > b->server_id) + return +1; + else + return 0; +} + +static int share_channel_us_cmp(void *av, void *bv) +{ + const struct share_channel *a = (const struct share_channel *)av; + const struct share_channel *b = (const struct share_channel *)bv; + + if (a->upstream_id < b->upstream_id) + return -1; + else if (a->upstream_id > b->upstream_id) + return +1; + else + return 0; +} + +static int share_channel_server_cmp(void *av, void *bv) +{ + const struct share_channel *a = (const struct share_channel *)av; + const struct share_channel *b = (const struct share_channel *)bv; + + if (a->server_id < b->server_id) + return -1; + else if (a->server_id > b->server_id) + return +1; + else + return 0; +} + +static int share_xchannel_us_cmp(void *av, void *bv) +{ + const struct share_xchannel *a = (const struct share_xchannel *)av; + const struct share_xchannel *b = (const struct share_xchannel *)bv; + + if (a->upstream_id < b->upstream_id) + return -1; + else if (a->upstream_id > b->upstream_id) + return +1; + else + return 0; +} + +static int share_xchannel_server_cmp(void *av, void *bv) +{ + const struct share_xchannel *a = (const struct share_xchannel *)av; + const struct share_xchannel *b = (const struct share_xchannel *)bv; + + if (a->server_id < b->server_id) + return -1; + else if (a->server_id > b->server_id) + return +1; + else + return 0; +} + +static int share_forwarding_cmp(void *av, void *bv) +{ + const struct share_forwarding *a = (const struct share_forwarding *)av; + const struct share_forwarding *b = (const struct share_forwarding *)bv; + int i; + + if ((i = strcmp(a->host, b->host)) != 0) + return i; + else if (a->port < b->port) + return -1; + else if (a->port > b->port) + return +1; + else + return 0; +} + +static void share_xchannel_free(struct share_xchannel *xc) +{ + while (xc->msghead) { + struct share_xchannel_message *tmp = xc->msghead; + xc->msghead = tmp->next; + sfree(tmp); + } + sfree(xc); +} + +static void share_connstate_free(struct ssh_sharing_connstate *cs) +{ + struct share_halfchannel *hc; + struct share_xchannel *xc; + struct share_channel *chan; + struct share_forwarding *fwd; + + while ((hc = (struct share_halfchannel *) + delpos234(cs->halfchannels, 0)) != NULL) + sfree(hc); + freetree234(cs->halfchannels); + + /* All channels live in 'channels_by_us' but only some in + * 'channels_by_server', so we use the former to find the list of + * ones to free */ + freetree234(cs->channels_by_server); + while ((chan = (struct share_channel *) + delpos234(cs->channels_by_us, 0)) != NULL) + sfree(chan); + freetree234(cs->channels_by_us); + + /* But every xchannel is in both trees, so it doesn't matter which + * we use to free them. */ + while ((xc = (struct share_xchannel *) + delpos234(cs->xchannels_by_us, 0)) != NULL) + share_xchannel_free(xc); + freetree234(cs->xchannels_by_us); + freetree234(cs->xchannels_by_server); + + while ((fwd = (struct share_forwarding *) + delpos234(cs->forwardings, 0)) != NULL) + sfree(fwd); + freetree234(cs->forwardings); + + while (cs->globreq_head) { + struct share_globreq *globreq = cs->globreq_head; + cs->globreq_head = cs->globreq_head->next; + sfree(globreq); + } + + if (cs->sock) + sk_close(cs->sock); + + sfree(cs); +} + +void sharestate_free(void *v) +{ + struct ssh_sharing_state *sharestate = (struct ssh_sharing_state *)v; + struct ssh_sharing_connstate *cs; + + platform_ssh_share_cleanup(sharestate->sockname); + + while ((cs = (struct ssh_sharing_connstate *) + delpos234(sharestate->connections, 0)) != NULL) { + share_connstate_free(cs); + } + freetree234(sharestate->connections); + if (sharestate->listensock) { + sk_close(sharestate->listensock); + sharestate->listensock = NULL; + } + sfree(sharestate->server_verstring); + sfree(sharestate->sockname); + sfree(sharestate); +} + +static struct share_halfchannel *share_add_halfchannel + (struct ssh_sharing_connstate *cs, unsigned server_id) +{ + struct share_halfchannel *hc = snew(struct share_halfchannel); + hc->server_id = server_id; + if (add234(cs->halfchannels, hc) != hc) { + /* Duplicate?! */ + sfree(hc); + return NULL; + } else { + return hc; + } +} + +static struct share_halfchannel *share_find_halfchannel + (struct ssh_sharing_connstate *cs, unsigned server_id) +{ + struct share_halfchannel dummyhc; + dummyhc.server_id = server_id; + return find234(cs->halfchannels, &dummyhc, NULL); +} + +static void share_remove_halfchannel(struct ssh_sharing_connstate *cs, + struct share_halfchannel *hc) +{ + del234(cs->halfchannels, hc); + sfree(hc); +} + +static struct share_channel *share_add_channel + (struct ssh_sharing_connstate *cs, unsigned downstream_id, + unsigned upstream_id, unsigned server_id, int state, int maxpkt) +{ + struct share_channel *chan = snew(struct share_channel); + chan->downstream_id = downstream_id; + chan->upstream_id = upstream_id; + chan->server_id = server_id; + chan->state = state; + chan->downstream_maxpkt = maxpkt; + chan->x11_auth_upstream = NULL; + chan->x11_auth_data = NULL; + chan->x11_auth_proto = -1; + chan->x11_auth_datalen = 0; + chan->x11_one_shot = 0; + if (add234(cs->channels_by_us, chan) != chan) { + sfree(chan); + return NULL; + } + if (chan->state != UNACKNOWLEDGED) { + if (add234(cs->channels_by_server, chan) != chan) { + del234(cs->channels_by_us, chan); + sfree(chan); + return NULL; + } + } + return chan; +} + +static void share_channel_set_server_id(struct ssh_sharing_connstate *cs, + struct share_channel *chan, + unsigned server_id, int newstate) +{ + chan->server_id = server_id; + chan->state = newstate; + assert(newstate != UNACKNOWLEDGED); + add234(cs->channels_by_server, chan); +} + +static struct share_channel *share_find_channel_by_upstream + (struct ssh_sharing_connstate *cs, unsigned upstream_id) +{ + struct share_channel dummychan; + dummychan.upstream_id = upstream_id; + return find234(cs->channels_by_us, &dummychan, NULL); +} + +static struct share_channel *share_find_channel_by_server + (struct ssh_sharing_connstate *cs, unsigned server_id) +{ + struct share_channel dummychan; + dummychan.server_id = server_id; + return find234(cs->channels_by_server, &dummychan, NULL); +} + +static void share_remove_channel(struct ssh_sharing_connstate *cs, + struct share_channel *chan) +{ + del234(cs->channels_by_us, chan); + del234(cs->channels_by_server, chan); + if (chan->x11_auth_upstream) + ssh_sharing_remove_x11_display(cs->parent->ssh, + chan->x11_auth_upstream); + sfree(chan->x11_auth_data); + sfree(chan); +} + +static struct share_xchannel *share_add_xchannel + (struct ssh_sharing_connstate *cs, + unsigned upstream_id, unsigned server_id) +{ + struct share_xchannel *xc = snew(struct share_xchannel); + xc->upstream_id = upstream_id; + xc->server_id = server_id; + xc->live = TRUE; + xc->msghead = xc->msgtail = NULL; + if (add234(cs->xchannels_by_us, xc) != xc) { + sfree(xc); + return NULL; + } + if (add234(cs->xchannels_by_server, xc) != xc) { + del234(cs->xchannels_by_us, xc); + sfree(xc); + return NULL; + } + return xc; +} + +static struct share_xchannel *share_find_xchannel_by_upstream + (struct ssh_sharing_connstate *cs, unsigned upstream_id) +{ + struct share_xchannel dummyxc; + dummyxc.upstream_id = upstream_id; + return find234(cs->xchannels_by_us, &dummyxc, NULL); +} + +static struct share_xchannel *share_find_xchannel_by_server + (struct ssh_sharing_connstate *cs, unsigned server_id) +{ + struct share_xchannel dummyxc; + dummyxc.server_id = server_id; + return find234(cs->xchannels_by_server, &dummyxc, NULL); +} + +static void share_remove_xchannel(struct ssh_sharing_connstate *cs, + struct share_xchannel *xc) +{ + del234(cs->xchannels_by_us, xc); + del234(cs->xchannels_by_server, xc); + share_xchannel_free(xc); +} + +static struct share_forwarding *share_add_forwarding + (struct ssh_sharing_connstate *cs, + const char *host, int port) +{ + struct share_forwarding *fwd = snew(struct share_forwarding); + fwd->host = dupstr(host); + fwd->port = port; + fwd->active = FALSE; + if (add234(cs->forwardings, fwd) != fwd) { + /* Duplicate?! */ + sfree(fwd); + return NULL; + } + return fwd; +} + +static struct share_forwarding *share_find_forwarding + (struct ssh_sharing_connstate *cs, const char *host, int port) +{ + struct share_forwarding dummyfwd, *ret; + dummyfwd.host = dupstr(host); + dummyfwd.port = port; + ret = find234(cs->forwardings, &dummyfwd, NULL); + sfree(dummyfwd.host); + return ret; +} + +static void share_remove_forwarding(struct ssh_sharing_connstate *cs, + struct share_forwarding *fwd) +{ + del234(cs->forwardings, fwd); + sfree(fwd); +} + +static void send_packet_to_downstream(struct ssh_sharing_connstate *cs, + int type, const void *pkt, int pktlen, + struct share_channel *chan) +{ + if (!cs->sock) /* throw away all packets destined for a dead downstream */ + return; + + if (type == SSH2_MSG_CHANNEL_DATA) { + /* + * Special case which we take care of at a low level, so as to + * be sure to apply it in all cases. On rare occasions we + * might find that we have a channel for which the + * downstream's maximum packet size exceeds the max packet + * size we presented to the server on its behalf. (This can + * occur in X11 forwarding, where we have to send _our_ + * CHANNEL_OPEN_CONFIRMATION before we discover which if any + * downstream the channel is destined for, so if that + * downstream turns out to present a smaller max packet size + * then we're in this situation.) + * + * If that happens, we just chop up the packet into pieces and + * send them as separate CHANNEL_DATA packets. + */ + const char *upkt = (const char *)pkt; + char header[13]; /* 4 length + 1 type + 4 channel id + 4 string len */ + + int len = toint(GET_32BIT(upkt + 4)); + upkt += 8; /* skip channel id + length field */ + + if (len < 0 || len > pktlen - 8) + len = pktlen - 8; + + do { + int this_len = (len > chan->downstream_maxpkt ? + chan->downstream_maxpkt : len); + PUT_32BIT(header, this_len + 9); + header[4] = type; + PUT_32BIT(header + 5, chan->downstream_id); + PUT_32BIT(header + 9, this_len); + sk_write(cs->sock, header, 13); + sk_write(cs->sock, upkt, this_len); + len -= this_len; + upkt += this_len; + } while (len > 0); + } else { + /* + * Just do the obvious thing. + */ + char header[9]; + + PUT_32BIT(header, pktlen + 1); + header[4] = type; + sk_write(cs->sock, header, 5); + sk_write(cs->sock, pkt, pktlen); + } +} + +static void share_try_cleanup(struct ssh_sharing_connstate *cs) +{ + int i; + struct share_halfchannel *hc; + struct share_channel *chan; + struct share_forwarding *fwd; + + /* + * Any half-open channels, i.e. those for which we'd received + * CHANNEL_OPEN from the server but not passed back a response + * from downstream, should be responded to with OPEN_FAILURE. + */ + while ((hc = (struct share_halfchannel *) + index234(cs->halfchannels, 0)) != NULL) { + static const char reason[] = "PuTTY downstream no longer available"; + static const char lang[] = "en"; + unsigned char packet[256]; + int pos = 0; + + PUT_32BIT(packet + pos, hc->server_id); pos += 4; + PUT_32BIT(packet + pos, SSH2_OPEN_CONNECT_FAILED); pos += 4; + PUT_32BIT(packet + pos, strlen(reason)); pos += 4; + memcpy(packet + pos, reason, strlen(reason)); pos += strlen(reason); + PUT_32BIT(packet + pos, strlen(lang)); pos += 4; + memcpy(packet + pos, lang, strlen(lang)); pos += strlen(lang); + ssh_send_packet_from_downstream(cs->parent->ssh, cs->id, + SSH2_MSG_CHANNEL_OPEN_FAILURE, + packet, pos, "cleanup after" + " downstream went away"); + + share_remove_halfchannel(cs, hc); + } + + /* + * Any actually open channels should have a CHANNEL_CLOSE sent for + * them, unless we've already done so. We won't be able to + * actually clean them up until CHANNEL_CLOSE comes back from the + * server, though (unless the server happens to have sent a CLOSE + * already). + * + * Another annoying exception is UNACKNOWLEDGED channels, i.e. + * we've _sent_ a CHANNEL_OPEN to the server but not received an + * OPEN_CONFIRMATION or OPEN_FAILURE. We must wait for a reply + * before closing the channel, because until we see that reply we + * won't have the server's channel id to put in the close message. + */ + for (i = 0; (chan = (struct share_channel *) + index234(cs->channels_by_us, i)) != NULL; i++) { + unsigned char packet[256]; + int pos = 0; + + if (chan->state != SENT_CLOSE && chan->state != UNACKNOWLEDGED) { + PUT_32BIT(packet + pos, chan->server_id); pos += 4; + ssh_send_packet_from_downstream(cs->parent->ssh, cs->id, + SSH2_MSG_CHANNEL_CLOSE, + packet, pos, "cleanup after" + " downstream went away"); + if (chan->state != RCVD_CLOSE) { + chan->state = SENT_CLOSE; + } else { + /* In this case, we _can_ clear up the channel now. */ + ssh_delete_sharing_channel(cs->parent->ssh, chan->upstream_id); + share_remove_channel(cs, chan); + i--; /* don't accidentally skip one as a result */ + } + } + } + + /* + * Any remote port forwardings we're managing on behalf of this + * downstream should be cancelled. Again, we must defer those for + * which we haven't yet seen REQUEST_SUCCESS/FAILURE. + * + * We take a fire-and-forget approach during cleanup, not + * bothering to set want_reply. + */ + for (i = 0; (fwd = (struct share_forwarding *) + index234(cs->forwardings, i)) != NULL; i++) { + if (fwd->active) { + static const char request[] = "cancel-tcpip-forward"; + char *packet = snewn(256 + strlen(fwd->host), char); + int pos = 0; + + PUT_32BIT(packet + pos, strlen(request)); pos += 4; + memcpy(packet + pos, request, strlen(request)); + pos += strlen(request); + + packet[pos++] = 0; /* !want_reply */ + + PUT_32BIT(packet + pos, strlen(fwd->host)); pos += 4; + memcpy(packet + pos, fwd->host, strlen(fwd->host)); + pos += strlen(fwd->host); + + PUT_32BIT(packet + pos, fwd->port); pos += 4; + + ssh_send_packet_from_downstream(cs->parent->ssh, cs->id, + SSH2_MSG_GLOBAL_REQUEST, + packet, pos, "cleanup after" + " downstream went away"); + sfree(packet); + + share_remove_forwarding(cs, fwd); + i--; /* don't accidentally skip one as a result */ + } + } + + if (count234(cs->halfchannels) == 0 && + count234(cs->channels_by_us) == 0 && + count234(cs->forwardings) == 0) { + /* + * Now we're _really_ done, so we can get rid of cs completely. + */ + del234(cs->parent->connections, cs); + ssh_sharing_downstream_disconnected(cs->parent->ssh, cs->id); + share_connstate_free(cs); + } +} + +static void share_begin_cleanup(struct ssh_sharing_connstate *cs) +{ + + sk_close(cs->sock); + cs->sock = NULL; + + share_try_cleanup(cs); +} + +static void share_disconnect(struct ssh_sharing_connstate *cs, + const char *message) +{ + static const char lang[] = "en"; + int msglen = strlen(message); + char *packet = snewn(msglen + 256, char); + int pos = 0; + + PUT_32BIT(packet + pos, SSH2_DISCONNECT_PROTOCOL_ERROR); pos += 4; + + PUT_32BIT(packet + pos, msglen); pos += 4; + memcpy(packet + pos, message, msglen); + pos += msglen; + + PUT_32BIT(packet + pos, strlen(lang)); pos += 4; + memcpy(packet + pos, lang, strlen(lang)); pos += strlen(lang); + + send_packet_to_downstream(cs, SSH2_MSG_DISCONNECT, packet, pos, NULL); + + share_begin_cleanup(cs); +} + +static int share_closing(Plug plug, const char *error_msg, int error_code, + int calling_back) +{ + struct ssh_sharing_connstate *cs = (struct ssh_sharing_connstate *)plug; + if (error_msg) + ssh_sharing_logf(cs->parent->ssh, cs->id, "%s", error_msg); + share_begin_cleanup(cs); + return 1; +} + +static int getstring_inner(const void *vdata, int datalen, + char **out, int *outlen) +{ + const unsigned char *data = (const unsigned char *)vdata; + int len; + + if (datalen < 4) + return FALSE; + + len = toint(GET_32BIT(data)); + if (len < 0 || len > datalen - 4) + return FALSE; + + if (outlen) + *outlen = len + 4; /* total size including length field */ + if (out) + *out = dupprintf("%.*s", len, (char *)data + 4); + return TRUE; +} + +static char *getstring(const void *data, int datalen) +{ + char *ret; + if (getstring_inner(data, datalen, &ret, NULL)) + return ret; + else + return NULL; +} + +static int getstring_size(const void *data, int datalen) +{ + int ret; + if (getstring_inner(data, datalen, NULL, &ret)) + return ret; + else + return -1; +} + +/* + * Append a message to the end of an xchannel's queue, with the length + * and type code filled in and the data block allocated but + * uninitialised. + */ +struct share_xchannel_message *share_xchannel_add_message +(struct share_xchannel *xc, int type, int len) +{ + unsigned char *block; + struct share_xchannel_message *msg; + + /* + * Be a little tricksy here by allocating a single memory block + * containing both the 'struct share_xchannel_message' and the + * actual data. Simplifies freeing it later. + */ + block = smalloc(sizeof(struct share_xchannel_message) + len); + msg = (struct share_xchannel_message *)block; + msg->data = block + sizeof(struct share_xchannel_message); + msg->datalen = len; + msg->type = type; + + /* + * Queue it in the xchannel. + */ + if (xc->msgtail) + xc->msgtail->next = msg; + else + xc->msghead = msg; + msg->next = NULL; + xc->msgtail = msg; + + return msg; +} + +void share_dead_xchannel_respond(struct ssh_sharing_connstate *cs, + struct share_xchannel *xc) +{ + /* + * Handle queued incoming messages from the server destined for an + * xchannel which is dead (i.e. downstream sent OPEN_FAILURE). + */ + int delete = FALSE; + while (xc->msghead) { + struct share_xchannel_message *msg = xc->msghead; + xc->msghead = msg->next; + + if (msg->type == SSH2_MSG_CHANNEL_REQUEST && msg->datalen > 4) { + /* + * A CHANNEL_REQUEST is responded to by sending + * CHANNEL_FAILURE, if it has want_reply set. + */ + int wantreplypos = getstring_size(msg->data, msg->datalen); + if (wantreplypos > 0 && wantreplypos < msg->datalen && + msg->data[wantreplypos] != 0) { + unsigned char id[4]; + PUT_32BIT(id, xc->server_id); + ssh_send_packet_from_downstream + (cs->parent->ssh, cs->id, SSH2_MSG_CHANNEL_FAILURE, id, 4, + "downstream refused X channel open"); + } + } else if (msg->type == SSH2_MSG_CHANNEL_CLOSE) { + /* + * On CHANNEL_CLOSE we can discard the channel completely. + */ + delete = TRUE; + } + + sfree(msg); + } + xc->msgtail = NULL; + if (delete) { + ssh_delete_sharing_channel(cs->parent->ssh, xc->upstream_id); + share_remove_xchannel(cs, xc); + } +} + +void share_xchannel_confirmation(struct ssh_sharing_connstate *cs, + struct share_xchannel *xc, + struct share_channel *chan, + unsigned downstream_window) +{ + unsigned char window_adjust[8]; + + /* + * Send all the queued messages downstream. + */ + while (xc->msghead) { + struct share_xchannel_message *msg = xc->msghead; + xc->msghead = msg->next; + + if (msg->datalen >= 4) + PUT_32BIT(msg->data, chan->downstream_id); + send_packet_to_downstream(cs, msg->type, + msg->data, msg->datalen, chan); + + sfree(msg); + } + + /* + * Send a WINDOW_ADJUST back upstream, to synchronise the window + * size downstream thinks it's presented with the one we've + * actually presented. + */ + PUT_32BIT(window_adjust, xc->server_id); + PUT_32BIT(window_adjust + 4, downstream_window - xc->window); + ssh_send_packet_from_downstream(cs->parent->ssh, cs->id, + SSH2_MSG_CHANNEL_WINDOW_ADJUST, + window_adjust, 8, "window adjustment after" + " downstream accepted X channel"); +} + +void share_xchannel_failure(struct ssh_sharing_connstate *cs, + struct share_xchannel *xc) +{ + /* + * If downstream refuses to open our X channel at all for some + * reason, we must respond by sending an emergency CLOSE upstream. + */ + unsigned char id[4]; + PUT_32BIT(id, xc->server_id); + ssh_send_packet_from_downstream + (cs->parent->ssh, cs->id, SSH2_MSG_CHANNEL_CLOSE, id, 4, + "downstream refused X channel open"); + + /* + * Now mark the xchannel as dead, and respond to anything sent on + * it until we see CLOSE for it in turn. + */ + xc->live = FALSE; + share_dead_xchannel_respond(cs, xc); +} + +void share_setup_x11_channel(void *csv, void *chanv, + unsigned upstream_id, unsigned server_id, + unsigned server_currwin, unsigned server_maxpkt, + unsigned client_adjusted_window, + const char *peer_addr, int peer_port, int endian, + int protomajor, int protominor, + const void *initial_data, int initial_len) +{ + struct ssh_sharing_connstate *cs = (struct ssh_sharing_connstate *)csv; + struct share_channel *chan = (struct share_channel *)chanv; + struct share_xchannel *xc; + struct share_xchannel_message *msg; + void *greeting; + int greeting_len; + unsigned char *pkt; + int pktlen; + + /* + * Create an xchannel containing data we've already received from + * the X client, and preload it with a CHANNEL_DATA message + * containing our own made-up authorisation greeting and any + * additional data sent from the server so far. + */ + xc = share_add_xchannel(cs, upstream_id, server_id); + greeting = x11_make_greeting(endian, protomajor, protominor, + chan->x11_auth_proto, + chan->x11_auth_data, chan->x11_auth_datalen, + peer_addr, peer_port, &greeting_len); + msg = share_xchannel_add_message(xc, SSH2_MSG_CHANNEL_DATA, + 8 + greeting_len + initial_len); + /* leave the channel id field unfilled - we don't know the + * downstream id yet, of course */ + PUT_32BIT(msg->data + 4, greeting_len + initial_len); + memcpy(msg->data + 8, greeting, greeting_len); + memcpy(msg->data + 8 + greeting_len, initial_data, initial_len); + sfree(greeting); + + xc->window = client_adjusted_window + greeting_len; + + /* + * Send on a CHANNEL_OPEN to downstream. + */ + pktlen = 27 + strlen(peer_addr); + pkt = snewn(pktlen, unsigned char); + PUT_32BIT(pkt, 3); /* strlen("x11") */ + memcpy(pkt+4, "x11", 3); + PUT_32BIT(pkt+7, server_id); + PUT_32BIT(pkt+11, server_currwin); + PUT_32BIT(pkt+15, server_maxpkt); + PUT_32BIT(pkt+19, strlen(peer_addr)); + memcpy(pkt+23, peer_addr, strlen(peer_addr)); + PUT_32BIT(pkt+23+strlen(peer_addr), peer_port); + send_packet_to_downstream(cs, SSH2_MSG_CHANNEL_OPEN, pkt, pktlen, NULL); + sfree(pkt); + + /* + * If this was a once-only X forwarding, clean it up now. + */ + if (chan->x11_one_shot) { + ssh_sharing_remove_x11_display(cs->parent->ssh, + chan->x11_auth_upstream); + chan->x11_auth_upstream = NULL; + sfree(chan->x11_auth_data); + chan->x11_auth_proto = -1; + chan->x11_auth_datalen = 0; + chan->x11_one_shot = 0; + } +} + +void share_got_pkt_from_server(void *csv, int type, + unsigned char *pkt, int pktlen) +{ + struct ssh_sharing_connstate *cs = (struct ssh_sharing_connstate *)csv; + struct share_globreq *globreq; + int id_pos; + unsigned upstream_id, server_id; + struct share_channel *chan; + struct share_xchannel *xc; + + switch (type) { + case SSH2_MSG_REQUEST_SUCCESS: + case SSH2_MSG_REQUEST_FAILURE: + globreq = cs->globreq_head; + if (globreq->type == GLOBREQ_TCPIP_FORWARD) { + if (type == SSH2_MSG_REQUEST_FAILURE) { + share_remove_forwarding(cs, globreq->fwd); + } else { + globreq->fwd->active = TRUE; + } + } else if (globreq->type == GLOBREQ_CANCEL_TCPIP_FORWARD) { + if (type == SSH2_MSG_REQUEST_SUCCESS) { + share_remove_forwarding(cs, globreq->fwd); + } + } + if (globreq->want_reply) { + send_packet_to_downstream(cs, type, pkt, pktlen, NULL); + } + cs->globreq_head = globreq->next; + sfree(globreq); + if (cs->globreq_head == NULL) + cs->globreq_tail = NULL; + + if (!cs->sock) { + /* Retry cleaning up this connection, in case that reply + * was the last thing we were waiting for. */ + share_try_cleanup(cs); + } + + break; + + case SSH2_MSG_CHANNEL_OPEN: + id_pos = getstring_size(pkt, pktlen); + assert(id_pos >= 0); + server_id = GET_32BIT(pkt + id_pos); + share_add_halfchannel(cs, server_id); + + send_packet_to_downstream(cs, type, pkt, pktlen, NULL); + break; + + case SSH2_MSG_CHANNEL_OPEN_CONFIRMATION: + case SSH2_MSG_CHANNEL_OPEN_FAILURE: + case SSH2_MSG_CHANNEL_CLOSE: + case SSH2_MSG_CHANNEL_WINDOW_ADJUST: + case SSH2_MSG_CHANNEL_DATA: + case SSH2_MSG_CHANNEL_EXTENDED_DATA: + case SSH2_MSG_CHANNEL_EOF: + case SSH2_MSG_CHANNEL_REQUEST: + case SSH2_MSG_CHANNEL_SUCCESS: + case SSH2_MSG_CHANNEL_FAILURE: + /* + * All these messages have the recipient channel id as the + * first uint32 field in the packet. Substitute the downstream + * channel id for our one and pass the packet downstream. + */ + assert(pktlen >= 4); + upstream_id = GET_32BIT(pkt); + if ((chan = share_find_channel_by_upstream(cs, upstream_id)) != NULL) { + /* + * The normal case: this id refers to an open channel. + */ + PUT_32BIT(pkt, chan->downstream_id); + send_packet_to_downstream(cs, type, pkt, pktlen, chan); + + /* + * Update the channel state, for messages that need it. + */ + if (type == SSH2_MSG_CHANNEL_OPEN_CONFIRMATION) { + if (chan->state == UNACKNOWLEDGED && pktlen >= 8) { + share_channel_set_server_id(cs, chan, GET_32BIT(pkt+4), + OPEN); + if (!cs->sock) { + /* Retry cleaning up this connection, so that we + * can send an immediate CLOSE on this channel for + * which we now know the server id. */ + share_try_cleanup(cs); + } + } + } else if (type == SSH2_MSG_CHANNEL_OPEN_FAILURE) { + ssh_delete_sharing_channel(cs->parent->ssh, chan->upstream_id); + share_remove_channel(cs, chan); + } else if (type == SSH2_MSG_CHANNEL_CLOSE) { + if (chan->state == SENT_CLOSE) { + ssh_delete_sharing_channel(cs->parent->ssh, + chan->upstream_id); + share_remove_channel(cs, chan); + if (!cs->sock) { + /* Retry cleaning up this connection, in case this + * channel closure was the last thing we were + * waiting for. */ + share_try_cleanup(cs); + } + } else { + chan->state = RCVD_CLOSE; + } + } + } else if ((xc = share_find_xchannel_by_upstream(cs, upstream_id)) + != NULL) { + /* + * The unusual case: this id refers to an xchannel. Add it + * to the xchannel's queue. + */ + struct share_xchannel_message *msg; + + msg = share_xchannel_add_message(xc, type, pktlen); + memcpy(msg->data, pkt, pktlen); + + /* If the xchannel is dead, then also respond to it (which + * may involve deleting the channel). */ + if (!xc->live) + share_dead_xchannel_respond(cs, xc); + } + break; + + default: + assert(!"This packet type should never have come from ssh.c"); + break; + } +} + +static void share_got_pkt_from_downstream(struct ssh_sharing_connstate *cs, + int type, + unsigned char *pkt, int pktlen) +{ + char *request_name; + struct share_forwarding *fwd; + int id_pos; + unsigned old_id, new_id, server_id; + struct share_globreq *globreq; + struct share_channel *chan; + struct share_halfchannel *hc; + struct share_xchannel *xc; + char *err = NULL; + + switch (type) { + case SSH2_MSG_DISCONNECT: + /* + * This message stops here: if downstream is disconnecting + * from us, that doesn't mean we want to disconnect from the + * SSH server. Close the downstream connection and start + * cleanup. + */ + share_begin_cleanup(cs); + break; + + case SSH2_MSG_GLOBAL_REQUEST: + /* + * The only global requests we understand are "tcpip-forward" + * and "cancel-tcpip-forward". Since those require us to + * maintain state, we must assume that other global requests + * will probably require that too, and so we don't forward on + * any request we don't understand. + */ + request_name = getstring(pkt, pktlen); + if (request_name == NULL) { + err = dupprintf("Truncated GLOBAL_REQUEST packet"); + goto confused; + } + + if (!strcmp(request_name, "tcpip-forward")) { + int wantreplypos, orig_wantreply, port, ret; + char *host; + + sfree(request_name); + + /* + * Pick the packet apart to find the want_reply field and + * the host/port we're going to ask to listen on. + */ + wantreplypos = getstring_size(pkt, pktlen); + if (wantreplypos < 0 || wantreplypos >= pktlen) { + err = dupprintf("Truncated GLOBAL_REQUEST packet"); + goto confused; + } + orig_wantreply = pkt[wantreplypos]; + port = getstring_size(pkt + (wantreplypos + 1), + pktlen - (wantreplypos + 1)); + port += (wantreplypos + 1); + if (port < 0 || port > pktlen - 4) { + err = dupprintf("Truncated GLOBAL_REQUEST packet"); + goto confused; + } + host = getstring(pkt + (wantreplypos + 1), + pktlen - (wantreplypos + 1)); + assert(host != NULL); + port = GET_32BIT(pkt + port); + + /* + * See if we can allocate space in ssh.c's tree of remote + * port forwardings. If we can't, it's because another + * client sharing this connection has already allocated + * the identical port forwarding, so we take it on + * ourselves to manufacture a failure packet and send it + * back to downstream. + */ + ret = ssh_alloc_sharing_rportfwd(cs->parent->ssh, host, port, cs); + if (!ret) { + if (orig_wantreply) { + send_packet_to_downstream(cs, SSH2_MSG_REQUEST_FAILURE, + "", 0, NULL); + } + } else { + /* + * We've managed to make space for this forwarding + * locally. Pass the request on to the SSH server, but + * set want_reply even if it wasn't originally set, so + * that we know whether this forwarding needs to be + * cleaned up if downstream goes away. + */ + int old_wantreply = pkt[wantreplypos]; + pkt[wantreplypos] = 1; + ssh_send_packet_from_downstream + (cs->parent->ssh, cs->id, type, pkt, pktlen, + old_wantreply ? NULL : "upstream added want_reply flag"); + fwd = share_add_forwarding(cs, host, port); + ssh_sharing_queue_global_request(cs->parent->ssh, cs); + + if (fwd) { + globreq = snew(struct share_globreq); + globreq->next = NULL; + if (cs->globreq_tail) + cs->globreq_tail->next = globreq; + else + cs->globreq_head = globreq; + globreq->fwd = fwd; + globreq->want_reply = orig_wantreply; + globreq->type = GLOBREQ_TCPIP_FORWARD; + } + } + + sfree(host); + } else if (!strcmp(request_name, "cancel-tcpip-forward")) { + int wantreplypos, orig_wantreply, port; + char *host; + struct share_forwarding *fwd; + + sfree(request_name); + + /* + * Pick the packet apart to find the want_reply field and + * the host/port we're going to ask to listen on. + */ + wantreplypos = getstring_size(pkt, pktlen); + if (wantreplypos < 0 || wantreplypos >= pktlen) { + err = dupprintf("Truncated GLOBAL_REQUEST packet"); + goto confused; + } + orig_wantreply = pkt[wantreplypos]; + port = getstring_size(pkt + (wantreplypos + 1), + pktlen - (wantreplypos + 1)); + port += (wantreplypos + 1); + if (port < 0 || port > pktlen - 4) { + err = dupprintf("Truncated GLOBAL_REQUEST packet"); + goto confused; + } + host = getstring(pkt + (wantreplypos + 1), + pktlen - (wantreplypos + 1)); + assert(host != NULL); + port = GET_32BIT(pkt + port); + + /* + * Look up the existing forwarding with these details. + */ + fwd = share_find_forwarding(cs, host, port); + if (!fwd) { + if (orig_wantreply) { + send_packet_to_downstream(cs, SSH2_MSG_REQUEST_FAILURE, + "", 0, NULL); + } + } else { + /* + * Pass the cancel request on to the SSH server, but + * set want_reply even if it wasn't originally set, so + * that _we_ know whether the forwarding has been + * deleted even if downstream doesn't want to know. + */ + int old_wantreply = pkt[wantreplypos]; + pkt[wantreplypos] = 1; + ssh_send_packet_from_downstream + (cs->parent->ssh, cs->id, type, pkt, pktlen, + old_wantreply ? NULL : "upstream added want_reply flag"); + ssh_sharing_queue_global_request(cs->parent->ssh, cs); + } + + sfree(host); + } else { + /* + * Request we don't understand. Manufacture a failure + * message if an answer was required. + */ + int wantreplypos; + + sfree(request_name); + + wantreplypos = getstring_size(pkt, pktlen); + if (wantreplypos < 0 || wantreplypos >= pktlen) { + err = dupprintf("Truncated GLOBAL_REQUEST packet"); + goto confused; + } + if (pkt[wantreplypos]) + send_packet_to_downstream(cs, SSH2_MSG_REQUEST_FAILURE, + "", 0, NULL); + } + break; + + case SSH2_MSG_CHANNEL_OPEN: + /* Sender channel id comes after the channel type string */ + id_pos = getstring_size(pkt, pktlen); + if (id_pos < 0 || id_pos > pktlen - 12) { + err = dupprintf("Truncated CHANNEL_OPEN packet"); + goto confused; + } + + old_id = GET_32BIT(pkt + id_pos); + new_id = ssh_alloc_sharing_channel(cs->parent->ssh, cs); + share_add_channel(cs, old_id, new_id, 0, UNACKNOWLEDGED, + GET_32BIT(pkt + id_pos + 8)); + PUT_32BIT(pkt + id_pos, new_id); + ssh_send_packet_from_downstream(cs->parent->ssh, cs->id, + type, pkt, pktlen, NULL); + break; + + case SSH2_MSG_CHANNEL_OPEN_CONFIRMATION: + if (pktlen < 16) { + err = dupprintf("Truncated CHANNEL_OPEN_CONFIRMATION packet"); + goto confused; + } + + id_pos = 4; /* sender channel id is 2nd uint32 field in packet */ + old_id = GET_32BIT(pkt + id_pos); + + server_id = GET_32BIT(pkt); + /* This server id may refer to either a halfchannel or an xchannel. */ + hc = NULL, xc = NULL; /* placate optimiser */ + if ((hc = share_find_halfchannel(cs, server_id)) != NULL) { + new_id = ssh_alloc_sharing_channel(cs->parent->ssh, cs); + } else if ((xc = share_find_xchannel_by_server(cs, server_id)) + != NULL) { + new_id = xc->upstream_id; + } else { + err = dupprintf("CHANNEL_OPEN_CONFIRMATION packet cited unknown channel %u", (unsigned)server_id); + goto confused; + } + + PUT_32BIT(pkt + id_pos, new_id); + + chan = share_add_channel(cs, old_id, new_id, server_id, OPEN, + GET_32BIT(pkt + 12)); + + if (hc) { + ssh_send_packet_from_downstream(cs->parent->ssh, cs->id, + type, pkt, pktlen, NULL); + share_remove_halfchannel(cs, hc); + } else if (xc) { + unsigned downstream_window = GET_32BIT(pkt + 8); + if (downstream_window < 256) { + err = dupprintf("Initial window size for x11 channel must be at least 256 (got %u)", downstream_window); + goto confused; + } + share_xchannel_confirmation(cs, xc, chan, downstream_window); + share_remove_xchannel(cs, xc); + } + + break; + + case SSH2_MSG_CHANNEL_OPEN_FAILURE: + if (pktlen < 4) { + err = dupprintf("Truncated CHANNEL_OPEN_FAILURE packet"); + goto confused; + } + + server_id = GET_32BIT(pkt); + /* This server id may refer to either a halfchannel or an xchannel. */ + if ((hc = share_find_halfchannel(cs, server_id)) != NULL) { + ssh_send_packet_from_downstream(cs->parent->ssh, cs->id, + type, pkt, pktlen, NULL); + share_remove_halfchannel(cs, hc); + } else if ((xc = share_find_xchannel_by_server(cs, server_id)) + != NULL) { + share_xchannel_failure(cs, xc); + } else { + err = dupprintf("CHANNEL_OPEN_FAILURE packet cited unknown channel %u", (unsigned)server_id); + goto confused; + } + + break; + + case SSH2_MSG_CHANNEL_WINDOW_ADJUST: + case SSH2_MSG_CHANNEL_DATA: + case SSH2_MSG_CHANNEL_EXTENDED_DATA: + case SSH2_MSG_CHANNEL_EOF: + case SSH2_MSG_CHANNEL_CLOSE: + case SSH2_MSG_CHANNEL_REQUEST: + case SSH2_MSG_CHANNEL_SUCCESS: + case SSH2_MSG_CHANNEL_FAILURE: + case SSH2_MSG_IGNORE: + case SSH2_MSG_DEBUG: + if (type == SSH2_MSG_CHANNEL_REQUEST && + (request_name = getstring(pkt + 4, pktlen - 4)) != NULL) { + /* + * Agent forwarding requests from downstream are treated + * specially. Because OpenSSHD doesn't let us enable agent + * forwarding independently per session channel, and in + * particular because the OpenSSH-defined agent forwarding + * protocol does not mark agent-channel requests with the + * id of the session channel they originate from, the only + * way we can implement agent forwarding in a + * connection-shared PuTTY is to forward the _upstream_ + * agent. Hence, we unilaterally deny agent forwarding + * requests from downstreams if we aren't prepared to + * forward an agent ourselves. + * + * (If we are, then we dutifully pass agent forwarding + * requests upstream. OpenSSHD has the curious behaviour + * that all but the first such request will be rejected, + * but all session channels opened after the first request + * get agent forwarding enabled whether they ask for it or + * not; but that's not our concern, since other SSH + * servers supporting the same piece of protocol might in + * principle at least manage to enable agent forwarding on + * precisely the channels that requested it, even if the + * subsequent CHANNEL_OPENs still can't be associated with + * a parent session channel.) + */ + if (!strcmp(request_name, "auth-agent-req@openssh.com") && + !ssh_agent_forwarding_permitted(cs->parent->ssh)) { + unsigned server_id = GET_32BIT(pkt); + unsigned char recipient_id[4]; + + sfree(request_name); + + chan = share_find_channel_by_server(cs, server_id); + if (chan) { + PUT_32BIT(recipient_id, chan->downstream_id); + send_packet_to_downstream(cs, SSH2_MSG_CHANNEL_FAILURE, + recipient_id, 4, NULL); + } else { + char *buf = dupprintf("Agent forwarding request for " + "unrecognised channel %u", server_id); + share_disconnect(cs, buf); + sfree(buf); + return; + } + break; + } + + /* + * Another thing we treat specially is X11 forwarding + * requests. For these, we have to make up another set of + * X11 auth data, and enter it into our SSH connection's + * list of possible X11 authorisation credentials so that + * when we see an X11 channel open request we can know + * whether it's one to handle locally or one to pass on to + * a downstream, and if the latter, which one. + */ + if (!strcmp(request_name, "x11-req")) { + unsigned server_id = GET_32BIT(pkt); + int want_reply, single_connection, screen; + char *auth_proto_str, *auth_data; + int auth_proto, protolen, datalen; + int pos; + + sfree(request_name); + + chan = share_find_channel_by_server(cs, server_id); + if (!chan) { + char *buf = dupprintf("X11 forwarding request for " + "unrecognised channel %u", server_id); + share_disconnect(cs, buf); + sfree(buf); + return; + } + + /* + * Pick apart the whole message to find the downstream + * auth details. + */ + /* we have already seen: 4 bytes channel id, 4+7 request name */ + if (pktlen < 17) { + err = dupprintf("Truncated CHANNEL_REQUEST(\"x11\") packet"); + goto confused; + } + want_reply = pkt[15] != 0; + single_connection = pkt[16] != 0; + auth_proto_str = getstring(pkt+17, pktlen-17); + auth_proto = x11_identify_auth_proto(auth_proto_str); + sfree(auth_proto_str); + pos = 17 + getstring_size(pkt+17, pktlen-17); + auth_data = getstring(pkt+pos, pktlen-pos); + pos += getstring_size(pkt+pos, pktlen-pos); + + if (pktlen < pos+4) { + err = dupprintf("Truncated CHANNEL_REQUEST(\"x11\") packet"); + sfree(auth_data); + goto confused; + } + screen = GET_32BIT(pkt+pos); + + if (auth_proto < 0) { + /* Reject due to not understanding downstream's + * requested authorisation method. */ + unsigned char recipient_id[4]; + PUT_32BIT(recipient_id, chan->downstream_id); + send_packet_to_downstream(cs, SSH2_MSG_CHANNEL_FAILURE, + recipient_id, 4, NULL); + sfree(auth_data); + break; + } + + chan->x11_auth_proto = auth_proto; + chan->x11_auth_data = x11_dehexify(auth_data, + &chan->x11_auth_datalen); + sfree(auth_data); + chan->x11_auth_upstream = + ssh_sharing_add_x11_display(cs->parent->ssh, auth_proto, + cs, chan); + chan->x11_one_shot = single_connection; + + /* + * Now construct a replacement X forwarding request, + * containing our own auth data, and send that to the + * server. + */ + protolen = strlen(chan->x11_auth_upstream->protoname); + datalen = strlen(chan->x11_auth_upstream->datastring); + pktlen = 29+protolen+datalen; + pkt = snewn(pktlen, unsigned char); + PUT_32BIT(pkt, server_id); + PUT_32BIT(pkt+4, 7); /* strlen("x11-req") */ + memcpy(pkt+8, "x11-req", 7); + pkt[15] = want_reply; + pkt[16] = single_connection; + PUT_32BIT(pkt+17, protolen); + memcpy(pkt+21, chan->x11_auth_upstream->protoname, protolen); + PUT_32BIT(pkt+21+protolen, datalen); + memcpy(pkt+25+protolen, chan->x11_auth_upstream->datastring, + datalen); + PUT_32BIT(pkt+25+protolen+datalen, screen); + ssh_send_packet_from_downstream(cs->parent->ssh, cs->id, + SSH2_MSG_CHANNEL_REQUEST, + pkt, pktlen, NULL); + sfree(pkt); + + break; + } + + sfree(request_name); + } + + ssh_send_packet_from_downstream(cs->parent->ssh, cs->id, + type, pkt, pktlen, NULL); + if (type == SSH2_MSG_CHANNEL_CLOSE && pktlen >= 4) { + server_id = GET_32BIT(pkt); + chan = share_find_channel_by_server(cs, server_id); + if (chan) { + if (chan->state == RCVD_CLOSE) { + ssh_delete_sharing_channel(cs->parent->ssh, + chan->upstream_id); + share_remove_channel(cs, chan); + } else { + chan->state = SENT_CLOSE; + } + } + } + break; + + default: + err = dupprintf("Unexpected packet type %d\n", type); + goto confused; + + /* + * Any other packet type is unexpected. In particular, we + * never pass GLOBAL_REQUESTs downstream, so we never expect + * to see SSH2_MSG_REQUEST_{SUCCESS,FAILURE}. + */ + confused: + assert(err != NULL); + share_disconnect(cs, err); + sfree(err); + break; + } +} + +/* + * Coroutine macros similar to, but simplified from, those in ssh.c. + */ +#define crBegin(v) { int *crLine = &v; switch(v) { case 0:; +#define crFinish(z) } *crLine = 0; return (z); } +#define crGetChar(c) do \ + { \ + while (len == 0) { \ + *crLine =__LINE__; return 1; case __LINE__:; \ + } \ + len--; \ + (c) = (unsigned char)*data++; \ + } while (0) + +static int share_receive(Plug plug, int urgent, char *data, int len) +{ + struct ssh_sharing_connstate *cs = (struct ssh_sharing_connstate *)plug; + static const char expected_verstring_prefix[] = + "SSHCONNECTION@putty.projects.tartarus.org-2.0-"; + unsigned char c; + + crBegin(cs->crLine); + + /* + * First read the version string from downstream. + */ + cs->recvlen = 0; + while (1) { + crGetChar(c); + if (c == '\012') + break; + if (cs->recvlen >= sizeof(cs->recvbuf)) { + char *buf = dupprintf("Version string far too long\n"); + share_disconnect(cs, buf); + sfree(buf); + goto dead; + } + cs->recvbuf[cs->recvlen++] = c; + } + + /* + * Now parse the version string to make sure it's at least vaguely + * sensible, and log it. + */ + if (cs->recvlen < sizeof(expected_verstring_prefix)-1 || + memcmp(cs->recvbuf, expected_verstring_prefix, + sizeof(expected_verstring_prefix) - 1)) { + char *buf = dupprintf("Version string did not have expected prefix\n"); + share_disconnect(cs, buf); + sfree(buf); + goto dead; + } + if (cs->recvlen > 0 && cs->recvbuf[cs->recvlen-1] == '\015') + cs->recvlen--; /* trim off \r before \n */ + ssh_sharing_logf(cs->parent->ssh, cs->id, + "Downstream version string: %.*s", + cs->recvlen, cs->recvbuf); + + /* + * Loop round reading packets. + */ + while (1) { + cs->recvlen = 0; + while (cs->recvlen < 4) { + crGetChar(c); + cs->recvbuf[cs->recvlen++] = c; + } + cs->curr_packetlen = toint(GET_32BIT(cs->recvbuf) + 4); + if (cs->curr_packetlen < 5 || + cs->curr_packetlen > sizeof(cs->recvbuf)) { + char *buf = dupprintf("Bad packet length %u\n", + (unsigned)cs->curr_packetlen); + share_disconnect(cs, buf); + sfree(buf); + goto dead; + } + while (cs->recvlen < cs->curr_packetlen) { + crGetChar(c); + cs->recvbuf[cs->recvlen++] = c; + } + + share_got_pkt_from_downstream(cs, cs->recvbuf[4], + cs->recvbuf + 5, cs->recvlen - 5); + } + + dead:; + crFinish(1); +} + +static void share_sent(Plug plug, int bufsize) +{ + /* struct ssh_sharing_connstate *cs = (struct ssh_sharing_connstate *)plug; */ + + /* + * We do nothing here, because we expect that there won't be a + * need to throttle and unthrottle the connection to a downstream. + * It should automatically throttle itself: if the SSH server + * sends huge amounts of data on all channels then it'll run out + * of window until our downstream sends it back some + * WINDOW_ADJUSTs. + */ +} + +static int share_listen_closing(Plug plug, const char *error_msg, + int error_code, int calling_back) +{ + struct ssh_sharing_state *sharestate = (struct ssh_sharing_state *)plug; + if (error_msg) + ssh_sharing_logf(sharestate->ssh, 0, + "listening socket: %s", error_msg); + sk_close(sharestate->listensock); + sharestate->listensock = NULL; + return 1; +} + +static void share_send_verstring(struct ssh_sharing_connstate *cs) +{ + char *fullstring = dupcat("SSHCONNECTION@putty.projects.tartarus.org-2.0-", + cs->parent->server_verstring, "\015\012", NULL); + sk_write(cs->sock, fullstring, strlen(fullstring)); + sfree(fullstring); + + cs->sent_verstring = TRUE; +} + +int share_ndownstreams(void *state) +{ + struct ssh_sharing_state *sharestate = (struct ssh_sharing_state *)state; + return count234(sharestate->connections); +} + +void share_activate(void *state, const char *server_verstring) +{ + /* + * Indication from ssh.c that we are now ready to begin serving + * any downstreams that have already connected to us. + */ + struct ssh_sharing_state *sharestate = (struct ssh_sharing_state *)state; + struct ssh_sharing_connstate *cs; + int i; + + /* + * Trim the server's version string down to just the software + * version component, removing "SSH-2.0-" or whatever at the + * front. + */ + for (i = 0; i < 2; i++) { + server_verstring += strcspn(server_verstring, "-"); + if (*server_verstring) + server_verstring++; + } + + sharestate->server_verstring = dupstr(server_verstring); + + for (i = 0; (cs = (struct ssh_sharing_connstate *) + index234(sharestate->connections, i)) != NULL; i++) { + assert(!cs->sent_verstring); + share_send_verstring(cs); + } +} + +static int share_listen_accepting(Plug plug, + accept_fn_t constructor, accept_ctx_t ctx) +{ + static const struct plug_function_table connection_fn_table = { + NULL, /* no log function, because that's for outgoing connections */ + share_closing, + share_receive, + share_sent, + NULL /* no accepting function, because we've already done it */ + }; + struct ssh_sharing_state *sharestate = (struct ssh_sharing_state *)plug; + struct ssh_sharing_connstate *cs; + const char *err; + char *peerinfo; + + /* + * A new downstream has connected to us. + */ + cs = snew(struct ssh_sharing_connstate); + cs->fn = &connection_fn_table; + cs->parent = sharestate; + + if ((cs->id = share_find_unused_id(sharestate, sharestate->nextid)) == 0 && + (cs->id = share_find_unused_id(sharestate, 1)) == 0) { + sfree(cs); + return 1; + } + sharestate->nextid = cs->id + 1; + if (sharestate->nextid == 0) + sharestate->nextid++; /* only happens in VERY long-running upstreams */ + + cs->sock = constructor(ctx, (Plug) cs); + if ((err = sk_socket_error(cs->sock)) != NULL) { + sfree(cs); + return err != NULL; + } + + sk_set_frozen(cs->sock, 0); + + add234(cs->parent->connections, cs); + + cs->sent_verstring = FALSE; + if (sharestate->server_verstring) + share_send_verstring(cs); + + cs->got_verstring = FALSE; + cs->recvlen = 0; + cs->crLine = 0; + cs->halfchannels = newtree234(share_halfchannel_cmp); + cs->channels_by_us = newtree234(share_channel_us_cmp); + cs->channels_by_server = newtree234(share_channel_server_cmp); + cs->xchannels_by_us = newtree234(share_xchannel_us_cmp); + cs->xchannels_by_server = newtree234(share_xchannel_server_cmp); + cs->forwardings = newtree234(share_forwarding_cmp); + cs->globreq_head = cs->globreq_tail = NULL; + + peerinfo = sk_peer_info(cs->sock); + ssh_sharing_downstream_connected(sharestate->ssh, cs->id, peerinfo); + sfree(peerinfo); + + return 0; +} + +/* Per-application overrides for what roles we can take (e.g. pscp + * will never be an upstream) */ +extern const int share_can_be_downstream; +extern const int share_can_be_upstream; + +/* + * Init function for connection sharing. We either open a listening + * socket and become an upstream, or connect to an existing one and + * become a downstream, or do neither. We are responsible for deciding + * which of these to do (including checking the Conf to see if + * connection sharing is even enabled in the first place). If we + * become a downstream, we return the Socket with which we connected + * to the upstream; otherwise (whether or not we have established an + * upstream) we return NULL. + */ +Socket ssh_connection_sharing_init(const char *host, int port, + Conf *conf, Ssh ssh, void **state) +{ + static const struct plug_function_table listen_fn_table = { + NULL, /* no log function, because that's for outgoing connections */ + share_listen_closing, + NULL, /* no receive function on a listening socket */ + NULL, /* no sent function on a listening socket */ + share_listen_accepting + }; + + int result, can_upstream, can_downstream; + char *logtext, *ds_err, *us_err; + char *sockname; + Socket sock; + struct ssh_sharing_state *sharestate; + + if (!conf_get_int(conf, CONF_ssh_connection_sharing)) + return NULL; /* do not share anything */ + can_upstream = share_can_be_upstream && + conf_get_int(conf, CONF_ssh_connection_sharing_upstream); + can_downstream = share_can_be_downstream && + conf_get_int(conf, CONF_ssh_connection_sharing_downstream); + if (!can_upstream && !can_downstream) + return NULL; + + /* + * Decide on the string used to identify the connection point + * between upstream and downstream (be it a Windows named pipe or + * a Unix-domain socket or whatever else). + * + * I wondered about making this a SHA hash of all sorts of pieces + * of the PuTTY configuration - essentially everything PuTTY uses + * to know where and how to make a connection, including all the + * proxy details (or rather, all the _relevant_ ones - only + * including settings that other settings didn't prevent from + * having any effect), plus the username. However, I think it's + * better to keep it really simple: the connection point + * identifier is derived from the hostname and port used to index + * the host-key cache (not necessarily where we _physically_ + * connected to, in cases involving proxies or CONF_loghost), plus + * the username if one is specified. + */ + { + char *username = get_remote_username(conf); + + if (port == 22) { + if (username) + sockname = dupprintf("%s@%s", username, host); + else + sockname = dupprintf("%s", host); + } else { + if (username) + sockname = dupprintf("%s@%s:%d", username, host, port); + else + sockname = dupprintf("%s:%d", host, port); + } + + sfree(username); + + /* + * The platform-specific code may transform this further in + * order to conform to local namespace conventions (e.g. not + * using slashes in filenames), but that's its job and not + * ours. + */ + } + + /* + * Create a data structure for the listening plug if we turn out + * to be an upstream. + */ + sharestate = snew(struct ssh_sharing_state); + sharestate->fn = &listen_fn_table; + sharestate->listensock = NULL; + + /* + * Now hand off to a per-platform routine that either connects to + * an existing upstream (using 'ssh' as the plug), establishes our + * own upstream (using 'sharestate' as the plug), or forks off a + * separate upstream and then connects to that. It will return a + * code telling us which kind of socket it put in 'sock'. + */ + sock = NULL; + logtext = ds_err = us_err = NULL; + result = platform_ssh_share(sockname, conf, (Plug)ssh, + (Plug)sharestate, &sock, &logtext, &ds_err, + &us_err, can_upstream, can_downstream); + ssh_connshare_log(ssh, result, logtext, ds_err, us_err); + sfree(logtext); + sfree(ds_err); + sfree(us_err); + switch (result) { + case SHARE_NONE: + /* + * We aren't sharing our connection at all (e.g. something + * went wrong setting the socket up). Free the upstream + * structure and return NULL. + */ + assert(sock == NULL); + *state = NULL; + sfree(sharestate); + sfree(sockname); + return NULL; + + case SHARE_DOWNSTREAM: + /* + * We are downstream, so free sharestate which it turns out we + * don't need after all, and return the downstream socket as a + * replacement for an ordinary SSH connection. + */ + *state = NULL; + sfree(sharestate); + sfree(sockname); + return sock; + + case SHARE_UPSTREAM: + /* + * We are upstream. Set up sharestate properly and pass a copy + * to the caller; return NULL, to tell ssh.c that it has to + * make an ordinary connection after all. + */ + *state = sharestate; + sharestate->listensock = sock; + sharestate->connections = newtree234(share_connstate_cmp); + sharestate->ssh = ssh; + sharestate->server_verstring = NULL; + sharestate->sockname = sockname; + sharestate->nextid = 1; + return NULL; + } + + return NULL; +} diff --git a/source/putty/version.h b/source/putty/version.h new file mode 100644 index 00000000..8dad71fb --- /dev/null +++ b/source/putty/version.h @@ -0,0 +1,5 @@ +/* Generated by automated build script */ +#define RELEASE 0.66 +#define TEXTVER "Release 0.66" +#define SSHVER "PuTTY-Release-0.66" +#define BINARY_VERSION 0,66,0,0 diff --git a/source/putty/windows/WINGSS.C b/source/putty/windows/WINGSS.C index f7a52744..b9bf90ac 100644 --- a/source/putty/windows/WINGSS.C +++ b/source/putty/windows/WINGSS.C @@ -2,6 +2,7 @@ #include "putty.h" +#define SECURITY_WIN32 #include #include "pgssapi.h" diff --git a/source/putty/windows/WINHANDL.C b/source/putty/windows/WINHANDL.C index 4db5b256..956eee8e 100644 --- a/source/putty/windows/WINHANDL.C +++ b/source/putty/windows/WINHANDL.C @@ -65,6 +65,8 @@ struct handle_generic { void *privdata; /* for client to remember who they are */ }; +typedef enum { HT_INPUT, HT_OUTPUT, HT_FOREIGN } HandleType; + /* ---------------------------------------------------------------------- * Input threads. */ @@ -113,7 +115,7 @@ static DWORD WINAPI handle_input_threadfunc(void *param) struct handle_input *ctx = (struct handle_input *) param; OVERLAPPED ovl, *povl; HANDLE oev; - int readret, readlen; + int readret, readlen, finished; if (ctx->flags & HANDLE_FLAG_OVERLAPPED) { povl = &ovl; @@ -163,14 +165,32 @@ static DWORD WINAPI handle_input_threadfunc(void *param) (ctx->flags & HANDLE_FLAG_IGNOREEOF)) continue; + /* + * If we just set ctx->len to 0, that means the read operation + * has returned end-of-file. Telling that to the main thread + * will cause it to set its 'defunct' flag and dispose of the + * handle structure at the next opportunity, in which case we + * mustn't touch ctx at all after the SetEvent. (Hence we do + * even _this_ check before the SetEvent.) + */ + finished = (ctx->len == 0); + SetEvent(ctx->ev_to_main); - if (!ctx->len) + if (finished) break; WaitForSingleObject(ctx->ev_from_main, INFINITE); - if (ctx->done) - break; /* main thread told us to shut down */ + if (ctx->done) { + /* + * The main thread has asked us to shut down. Send back an + * event indicating that we've done so. Hereafter we must + * not touch ctx at all, because the main thread might + * have freed it. + */ + SetEvent(ctx->ev_to_main); + break; + } } if (povl) @@ -276,6 +296,12 @@ static DWORD WINAPI handle_output_threadfunc(void *param) while (1) { WaitForSingleObject(ctx->ev_from_main, INFINITE); if (ctx->done) { + /* + * The main thread has asked us to shut down. Send back an + * event indicating that we've done so. Hereafter we must + * not touch ctx at all, because the main thread might + * have freed it. + */ SetEvent(ctx->ev_to_main); break; } @@ -300,8 +326,16 @@ static DWORD WINAPI handle_output_threadfunc(void *param) } SetEvent(ctx->ev_to_main); - if (!writeret) + if (!writeret) { + /* + * The write operation has suffered an error. Telling that + * to the main thread will cause it to set its 'defunct' + * flag and dispose of the handle structure at the next + * opportunity, so we must not touch ctx at all after + * this. + */ break; + } } if (povl) @@ -329,16 +363,44 @@ static void handle_try_output(struct handle_output *ctx) } } +/* ---------------------------------------------------------------------- + * 'Foreign events'. These are handle structures which just contain a + * single event object passed to us by another module such as + * winnps.c, so that they can make use of our handle_get_events / + * handle_got_event mechanism for communicating with application main + * loops. + */ +struct handle_foreign { + /* + * Copy of the handle_generic structure. + */ + HANDLE h; /* the handle itself */ + HANDLE ev_to_main; /* event used to signal main thread */ + HANDLE ev_from_main; /* event used to signal back to us */ + int moribund; /* are we going to kill this soon? */ + int done; /* request subthread to terminate */ + int defunct; /* has the subthread already gone? */ + int busy; /* operation currently in progress? */ + void *privdata; /* for client to remember who they are */ + + /* + * Our own data, just consisting of knowledge of who to call back. + */ + void (*callback)(void *); + void *ctx; +}; + /* ---------------------------------------------------------------------- * Unified code handling both input and output threads. */ struct handle { - int output; + HandleType type; union { struct handle_generic g; struct handle_input i; struct handle_output o; + struct handle_foreign f; } u; }; @@ -376,7 +438,7 @@ struct handle *handle_input_new(HANDLE handle, handle_inputfn_t gotdata, struct handle *h = snew(struct handle); DWORD in_threadid; /* required for Win9x */ - h->output = FALSE; + h->type = HT_INPUT; h->u.i.h = handle; h->u.i.ev_to_main = CreateEvent(NULL, FALSE, FALSE, NULL); h->u.i.ev_from_main = CreateEvent(NULL, FALSE, FALSE, NULL); @@ -404,7 +466,7 @@ struct handle *handle_output_new(HANDLE handle, handle_outputfn_t sentdata, struct handle *h = snew(struct handle); DWORD out_threadid; /* required for Win9x */ - h->output = TRUE; + h->type = HT_OUTPUT; h->u.o.h = handle; h->u.o.ev_to_main = CreateEvent(NULL, FALSE, FALSE, NULL); h->u.o.ev_from_main = CreateEvent(NULL, FALSE, FALSE, NULL); @@ -428,9 +490,33 @@ struct handle *handle_output_new(HANDLE handle, handle_outputfn_t sentdata, return h; } +struct handle *handle_add_foreign_event(HANDLE event, + void (*callback)(void *), void *ctx) +{ + struct handle *h = snew(struct handle); + + h->type = HT_FOREIGN; + h->u.f.h = INVALID_HANDLE_VALUE; + h->u.f.ev_to_main = event; + h->u.f.ev_from_main = INVALID_HANDLE_VALUE; + h->u.f.defunct = TRUE; /* we have no thread in the first place */ + h->u.f.moribund = FALSE; + h->u.f.done = FALSE; + h->u.f.privdata = NULL; + h->u.f.callback = callback; + h->u.f.ctx = ctx; + h->u.f.busy = TRUE; + + if (!handles_by_evtomain) + handles_by_evtomain = newtree234(handle_cmp_evtomain); + add234(handles_by_evtomain, h); + + return h; +} + int handle_write(struct handle *h, const void *data, int len) { - assert(h->output); + assert(h->type == HT_OUTPUT); assert(h->u.o.outgoingeof == EOF_NO); bufchain_add(&h->u.o.queued_data, data, len); handle_try_output(&h->u.o); @@ -446,7 +532,7 @@ void handle_write_eof(struct handle *h) * bidirectional handle if we're still interested in its incoming * direction! */ - assert(h->output); + assert(h->type == HT_OUTPUT); if (!h->u.o.outgoingeof == EOF_NO) { h->u.o.outgoingeof = EOF_PENDING; handle_try_output(&h->u.o); @@ -483,7 +569,7 @@ HANDLE *handle_get_events(int *nevents) static void handle_destroy(struct handle *h) { - if (h->output) + if (h->type == HT_OUTPUT) bufchain_clear(&h->u.o.queued_data); CloseHandle(h->u.g.ev_from_main); CloseHandle(h->u.g.ev_to_main); @@ -493,17 +579,18 @@ static void handle_destroy(struct handle *h) void handle_free(struct handle *h) { - /* - * If the handle is currently busy, we cannot immediately free - * it. Instead we must wait until it's finished its current - * operation, because otherwise the subthread will write to - * invalid memory after we free its context from under it. - */ assert(h && !h->u.g.moribund); - if (h->u.g.busy) { - /* - * Just set the moribund flag, which will be noticed next - * time an operation completes. + if (h->u.g.busy && h->type != HT_FOREIGN) { + /* + * If the handle is currently busy, we cannot immediately free + * it, because its subthread is in the middle of something. + * (Exception: foreign handles don't have a subthread.) + * + * Instead we must wait until it's finished its current + * operation, because otherwise the subthread will write to + * invalid memory after we free its context from under it. So + * we set the moribund flag, which will be noticed next time + * an operation completes. */ h->u.g.moribund = TRUE; } else if (h->u.g.defunct) { @@ -553,10 +640,12 @@ void handle_got_event(HANDLE event) if (h->u.g.moribund) { /* - * A moribund handle is already treated as dead from the - * external user's point of view, so do nothing with the - * actual event. Just signal the thread to die if - * necessary, or destroy the handle if not. + * A moribund handle is one which we have either already + * signalled to die, or are waiting until its current I/O op + * completes to do so. Either way, it's treated as already + * dead from the external user's point of view, so we ignore + * the actual I/O result. We just signal the thread to die if + * we haven't yet done so, or destroy the handle if not. */ if (h->u.g.done) { handle_destroy(h); @@ -572,9 +661,10 @@ void handle_got_event(HANDLE event) #endif } - if (!h->output) { + switch (h->type) { int backlog; + case HT_INPUT: h->u.i.busy = FALSE; /* @@ -584,16 +674,19 @@ void handle_got_event(HANDLE event) /* * EOF, or (nearly equivalently) read error. */ - h->u.i.gotdata(h, NULL, -h->u.i.readerr); h->u.i.defunct = TRUE; + h->u.i.gotdata(h, NULL, -h->u.i.readerr); } else { backlog = h->u.i.gotdata(h, h->u.i.buffer, h->u.i.len); handle_throttle(&h->u.i, backlog); } #ifdef MPEXT - return 1; - #endif - } else { + return 1; + #else + break; + #endif + + case HT_OUTPUT: h->u.o.busy = FALSE; /* @@ -607,28 +700,39 @@ void handle_got_event(HANDLE event) * and mark the thread as defunct (because the output * thread is terminating by now). */ - h->u.o.sentdata(h, -h->u.o.writeerr); h->u.o.defunct = TRUE; + h->u.o.sentdata(h, -h->u.o.writeerr); } else { bufchain_consume(&h->u.o.queued_data, h->u.o.lenwritten); h->u.o.sentdata(h, bufchain_size(&h->u.o.queued_data)); handle_try_output(&h->u.o); } #ifdef MPEXT - return 0; + return 0; + #else + break; + #endif + + case HT_FOREIGN: + /* Just call the callback. */ + h->u.f.callback(h->u.f.ctx); + #ifdef MPEXT + return 0; + #else + break; #endif } } void handle_unthrottle(struct handle *h, int backlog) { - assert(!h->output); + assert(h->type == HT_INPUT); handle_throttle(&h->u.i, backlog); } int handle_backlog(struct handle *h) { - assert(h->output); + assert(h->type == HT_OUTPUT); return bufchain_size(&h->u.o.queued_data); } diff --git a/source/putty/windows/WINMISC.C b/source/putty/windows/WINMISC.C index e731f9b6..7e4ba0df 100644 --- a/source/putty/windows/WINMISC.C +++ b/source/putty/windows/WINMISC.C @@ -5,6 +5,7 @@ #include #include #include "putty.h" +#define SECURITY_WIN32 #include #ifdef MPEXT #include @@ -71,6 +72,13 @@ Filename *filename_deserialise(void *vdata, int maxsize, int *used) return filename_from_str(data); } +char filename_char_sanitise(char c) +{ + if (strchr("<>:\"/\\|?*", c)) + return '.'; + return c; +} + #ifdef MPEXT FILE * mp_wfopen(const char *filename, const char *mode) @@ -258,26 +266,23 @@ const char *win_strerror(int error) es = find234(errstrings, &error, errstring_find); if (!es) { - int bufsize; + char msgtext[65536]; /* maximum size for FormatMessage is 64K */ es = snew(struct errstring); es->error = error; - /* maximum size for FormatMessage is 64K */ - bufsize = 65535; - es->text = snewn(bufsize, char); if (!FormatMessage((FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS), NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - es->text, bufsize, NULL)) { - sprintf(es->text, - "Windows error code %d (and FormatMessage returned %d)", - error, GetLastError()); + msgtext, lenof(msgtext)-1, NULL)) { + sprintf(msgtext, + "(unable to format: FormatMessage returned %d)", + GetLastError()); } else { - int len = strlen(es->text); - if (len > 0 && es->text[len-1] == '\n') - es->text[len-1] = '\0'; + int len = strlen(msgtext); + if (len > 0 && msgtext[len-1] == '\n') + msgtext[len-1] = '\0'; } - es->text = sresize(es->text, strlen(es->text) + 1, char); + es->text = dupprintf("Error %d: %s", error, msgtext); add234(errstrings, es); } diff --git a/source/putty/windows/WINNET.C b/source/putty/windows/WINNET.C index d325ac53..1f97a6a0 100644 --- a/source/putty/windows/WINNET.C +++ b/source/putty/windows/WINNET.C @@ -57,7 +57,6 @@ struct Socket_tag { char *error; SOCKET s; Plug plug; - void *private_ptr; bufchain output_data; int connected; int writable; @@ -86,6 +85,8 @@ struct SockAddr_tag { int refcount; char *error; int resolved; + int namedpipe; /* indicates that this SockAddr is phony, holding a Windows + * named pipe pathname instead of a network address */ #ifndef NO_IPV6 struct addrinfo *ais; /* Addresses IPv6 style. */ #endif @@ -163,6 +164,8 @@ DECL_WINDOWS_FUNCTION(static, struct servent FAR *, getservbyname, (const char FAR *, const char FAR *)); DECL_WINDOWS_FUNCTION(static, unsigned long, inet_addr, (const char FAR *)); DECL_WINDOWS_FUNCTION(static, char FAR *, inet_ntoa, (struct in_addr)); +DECL_WINDOWS_FUNCTION(static, const char FAR *, inet_ntop, + (int, void FAR *, char *, size_t)); DECL_WINDOWS_FUNCTION(static, int, connect, (SOCKET, const struct sockaddr FAR *, int)); DECL_WINDOWS_FUNCTION(static, int, bind, @@ -181,6 +184,8 @@ DECL_WINDOWS_FUNCTION(static, int, ioctlsocket, (SOCKET, long, u_long FAR *)); DECL_WINDOWS_FUNCTION(static, SOCKET, accept, (SOCKET, struct sockaddr FAR *, int FAR *)); +DECL_WINDOWS_FUNCTION(static, int, getpeername, + (SOCKET, struct sockaddr FAR *, int FAR *)); DECL_WINDOWS_FUNCTION(static, int, recv, (SOCKET, char FAR *, int, int)); DECL_WINDOWS_FUNCTION(static, int, WSAIoctl, (SOCKET, DWORD, LPVOID, DWORD, LPVOID, DWORD, @@ -297,6 +302,7 @@ void sk_init(void) GET_WINDOWS_FUNCTION(winsock_module, getservbyname); GET_WINDOWS_FUNCTION(winsock_module, inet_addr); GET_WINDOWS_FUNCTION(winsock_module, inet_ntoa); + GET_WINDOWS_FUNCTION(winsock_module, inet_ntop); GET_WINDOWS_FUNCTION(winsock_module, connect); GET_WINDOWS_FUNCTION(winsock_module, bind); #ifdef MPEXT @@ -309,6 +315,7 @@ void sk_init(void) GET_WINDOWS_FUNCTION(winsock_module, shutdown); GET_WINDOWS_FUNCTION(winsock_module, ioctlsocket); GET_WINDOWS_FUNCTION(winsock_module, accept); + GET_WINDOWS_FUNCTION(winsock_module, getpeername); GET_WINDOWS_FUNCTION(winsock_module, recv); GET_WINDOWS_FUNCTION(winsock_module, WSAIoctl); @@ -518,6 +525,7 @@ SockAddr sk_namelookup(const char *host, char **canonicalname, #ifndef NO_IPV6 ret->ais = NULL; #endif + ret->namedpipe = FALSE; ret->addresses = NULL; ret->resolved = FALSE; ret->refcount = 1; @@ -538,7 +546,13 @@ SockAddr sk_namelookup(const char *host, char **canonicalname, memset(&hints, 0, sizeof(hints)); hints.ai_family = hint_family; hints.ai_flags = AI_CANONNAME; - if ((err = p_getaddrinfo(host, NULL, &hints, &ret->ais)) == 0) + { + /* strip [] on IPv6 address literals */ + char *trimmed_host = host_strduptrim(host); + err = p_getaddrinfo(trimmed_host, NULL, &hints, &ret->ais); + sfree(trimmed_host); + } + if (err == 0) { ret->resolved = TRUE; } @@ -628,6 +642,7 @@ SockAddr sk_nonamelookup(const char *host) #ifndef NO_IPV6 ret->ais = NULL; #endif + ret->namedpipe = FALSE; ret->addresses = NULL; ret->naddresses = 0; ret->refcount = 1; @@ -636,6 +651,23 @@ SockAddr sk_nonamelookup(const char *host) return ret; } +SockAddr sk_namedpipe_addr(const char *pipename) +{ + SockAddr ret = snew(struct SockAddr_tag); + ret->error = NULL; + ret->resolved = FALSE; +#ifndef NO_IPV6 + ret->ais = NULL; +#endif + ret->namedpipe = TRUE; + ret->addresses = NULL; + ret->naddresses = 0; + ret->refcount = 1; + strncpy(ret->hostname, pipename, lenof(ret->hostname)); + ret->hostname[lenof(ret->hostname)-1] = '\0'; + return ret; +} + int sk_nextaddr(SockAddr addr, SockAddrStep *step) { #ifndef NO_IPV6 @@ -689,6 +721,11 @@ void sk_getaddr(SockAddr addr, char *buf, int buflen) } } +int sk_addr_needs_port(SockAddr addr) +{ + return addr->namedpipe ? FALSE : TRUE; +} + int sk_hostname_is_local(const char *name) { return !strcmp(name, "localhost") || @@ -845,10 +882,9 @@ static void sk_tcp_close(Socket s); static int sk_tcp_write(Socket s, const char *data, int len); static int sk_tcp_write_oob(Socket s, const char *data, int len); static void sk_tcp_write_eof(Socket s); -static void sk_tcp_set_private_ptr(Socket s, void *ptr); -static void *sk_tcp_get_private_ptr(Socket s); static void sk_tcp_set_frozen(Socket s, int is_frozen); static const char *sk_tcp_socket_error(Socket s); +static char *sk_tcp_peer_info(Socket s); #ifdef MPEXT extern char *do_select(Plug plug, SOCKET skt, int startup); @@ -856,7 +892,7 @@ extern char *do_select(Plug plug, SOCKET skt, int startup); extern char *do_select(SOCKET skt, int startup); #endif -Socket sk_register(void *sock, Plug plug) +static Socket sk_tcp_accept(accept_ctx_t ctx, Plug plug) { static const struct socket_function_table fn_table = { sk_tcp_plug, @@ -865,10 +901,9 @@ Socket sk_register(void *sock, Plug plug) sk_tcp_write_oob, sk_tcp_write_eof, sk_tcp_flush, - sk_tcp_set_private_ptr, - sk_tcp_get_private_ptr, sk_tcp_set_frozen, - sk_tcp_socket_error + sk_tcp_socket_error, + sk_tcp_peer_info, }; DWORD err; @@ -893,7 +928,7 @@ Socket sk_register(void *sock, Plug plug) ret->parent = ret->child = NULL; ret->addr = NULL; - ret->s = (SOCKET)sock; + ret->s = (SOCKET)ctx.p; if (ret->s == INVALID_SOCKET) { err = p_WSAGetLastError(); @@ -1188,10 +1223,9 @@ Socket sk_new(SockAddr addr, int port, int privport, int oobinline, sk_tcp_write_oob, sk_tcp_write_eof, sk_tcp_flush, - sk_tcp_set_private_ptr, - sk_tcp_get_private_ptr, sk_tcp_set_frozen, - sk_tcp_socket_error + sk_tcp_socket_error, + sk_tcp_peer_info, }; Actual_Socket ret; @@ -1248,10 +1282,9 @@ Socket sk_newlistener(char *srcaddr, int port, Plug plug, int local_host_only, sk_tcp_write_oob, sk_tcp_write_eof, sk_tcp_flush, - sk_tcp_set_private_ptr, - sk_tcp_get_private_ptr, sk_tcp_set_frozen, - sk_tcp_socket_error + sk_tcp_socket_error, + sk_tcp_peer_info, }; SOCKET s; @@ -1325,15 +1358,29 @@ Socket sk_newlistener(char *srcaddr, int port, Plug plug, int local_host_only, if (address_family == AF_INET6) { memset(&a6, 0, sizeof(a6)); a6.sin6_family = AF_INET6; - /* FIXME: srcaddr is ignored for IPv6, because I (SGT) don't - * know how to do it. :-) - * (jeroen:) saddr is specified as an address.. eg 2001:db8::1 - * Thus we need either a parser that understands [2001:db8::1]:80 - * style addresses and/or enhance this to understand hostnames too. */ if (local_host_only) a6.sin6_addr = in6addr_loopback; else a6.sin6_addr = in6addr_any; + if (srcaddr != NULL && p_getaddrinfo) { + struct addrinfo hints; + struct addrinfo *ai; + int err; + + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_INET6; + hints.ai_flags = 0; + { + /* strip [] on IPv6 address literals */ + char *trimmed_addr = host_strduptrim(srcaddr); + err = p_getaddrinfo(trimmed_addr, NULL, &hints, &ai); + sfree(trimmed_addr); + } + if (err == 0 && ai->ai_family == AF_INET6) { + a6.sin6_addr = + ((struct sockaddr_in6 *)ai->ai_addr)->sin6_addr; + } + } a6.sin6_port = p_htons(port); } else #endif @@ -1777,6 +1824,7 @@ int select_result(WPARAM wParam, LPARAM lParam) #endif int addrlen = sizeof(isa); SOCKET t; /* socket of connection */ + accept_ctx_t actx; memset(&isa, 0, sizeof(isa)); err = 0; @@ -1787,6 +1835,9 @@ int select_result(WPARAM wParam, LPARAM lParam) if (err == WSATRY_AGAIN) break; } + + actx.p = (void *)t; + #ifndef NO_IPV6 if (isa.ss_family == AF_INET && s->localhost_only && @@ -1796,7 +1847,7 @@ int select_result(WPARAM wParam, LPARAM lParam) #endif { p_closesocket(t); /* dodgy WinSock let nonlocal through */ - } else if (plug_accepting(s->plug, (void*)t)) { + } else if (plug_accepting(s->plug, sk_tcp_accept, actx)) { p_closesocket(t); /* denied or error */ } } @@ -1805,22 +1856,6 @@ int select_result(WPARAM wParam, LPARAM lParam) return 1; } -/* - * Each socket abstraction contains a `void *' private field in - * which the client can keep state. - */ -static void sk_tcp_set_private_ptr(Socket sock, void *ptr) -{ - Actual_Socket s = (Actual_Socket) sock; - s->private_ptr = ptr; -} - -static void *sk_tcp_get_private_ptr(Socket sock) -{ - Actual_Socket s = (Actual_Socket) sock; - return s->private_ptr; -} - /* * Special error values are returned from sk_namelookup and sk_new * if there's a problem. These functions extract an error message, @@ -1836,6 +1871,38 @@ static const char *sk_tcp_socket_error(Socket sock) return s->error; } +static char *sk_tcp_peer_info(Socket sock) +{ + Actual_Socket s = (Actual_Socket) sock; +#ifdef NO_IPV6 + struct sockaddr_in addr; +#else + struct sockaddr_storage addr; +#endif + int addrlen = sizeof(addr); + char buf[INET6_ADDRSTRLEN]; + + if (p_getpeername(s->s, (struct sockaddr *)&addr, &addrlen) < 0) + return NULL; + + if (((struct sockaddr *)&addr)->sa_family == AF_INET) { + return dupprintf + ("%s:%d", + p_inet_ntoa(((struct sockaddr_in *)&addr)->sin_addr), + (int)p_ntohs(((struct sockaddr_in *)&addr)->sin_port)); +#ifndef NO_IPV6 + } else if (((struct sockaddr *)&addr)->sa_family == AF_INET6) { + return dupprintf + ("[%s]:%d", + p_inet_ntop(AF_INET6, &((struct sockaddr_in6 *)&addr)->sin6_addr, + buf, sizeof(buf)), + (int)p_ntohs(((struct sockaddr_in6 *)&addr)->sin6_port)); +#endif + } else { + return NULL; + } +} + static void sk_tcp_set_frozen(Socket sock, int is_frozen) { Actual_Socket s = (Actual_Socket) sock; diff --git a/source/putty/windows/WINPGNTC.C b/source/putty/windows/WINPGNTC.C index 7b8b5093..036ca759 100644 --- a/source/putty/windows/WINPGNTC.C +++ b/source/putty/windows/WINPGNTC.C @@ -8,7 +8,7 @@ #include "putty.h" #ifndef NO_SECURITY -#include +#include "winsecur.h" #endif #define AGENT_COPYDATA_ID 0x804e50ba /* random goop */ @@ -70,88 +70,6 @@ DWORD WINAPI agent_query_thread(LPVOID param) #endif -/* - * Dynamically load advapi32.dll for SID manipulation. In its absence, - * we degrade gracefully. - */ -#ifndef NO_SECURITY -int advapi_initialised = FALSE; -static HMODULE advapi; -DECL_WINDOWS_FUNCTION(static, BOOL, OpenProcessToken, - (HANDLE, DWORD, PHANDLE)); -DECL_WINDOWS_FUNCTION(static, BOOL, GetTokenInformation, - (HANDLE, TOKEN_INFORMATION_CLASS, - LPVOID, DWORD, PDWORD)); -DECL_WINDOWS_FUNCTION(static, BOOL, InitializeSecurityDescriptor, - (PSECURITY_DESCRIPTOR, DWORD)); -DECL_WINDOWS_FUNCTION(static, BOOL, SetSecurityDescriptorOwner, - (PSECURITY_DESCRIPTOR, PSID, BOOL)); -DECL_WINDOWS_FUNCTION(, DWORD, GetSecurityInfo, - (HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, - PSID *, PSID *, PACL *, PACL *, - PSECURITY_DESCRIPTOR *)); -int init_advapi(void) -{ - advapi = load_system32_dll("advapi32.dll"); - return advapi && - GET_WINDOWS_FUNCTION(advapi, GetSecurityInfo) && - GET_WINDOWS_FUNCTION(advapi, OpenProcessToken) && - GET_WINDOWS_FUNCTION(advapi, GetTokenInformation) && - GET_WINDOWS_FUNCTION(advapi, InitializeSecurityDescriptor) && - GET_WINDOWS_FUNCTION(advapi, SetSecurityDescriptorOwner); -} - -PSID get_user_sid(void) -{ - HANDLE proc = NULL, tok = NULL; - TOKEN_USER *user = NULL; - DWORD toklen, sidlen; - PSID sid = NULL, ret = NULL; - - if ((proc = OpenProcess(MAXIMUM_ALLOWED, FALSE, - GetCurrentProcessId())) == NULL) - goto cleanup; - - if (!p_OpenProcessToken(proc, TOKEN_QUERY, &tok)) - goto cleanup; - - if (!p_GetTokenInformation(tok, TokenUser, NULL, 0, &toklen) && - GetLastError() != ERROR_INSUFFICIENT_BUFFER) - goto cleanup; - - if ((user = (TOKEN_USER *)LocalAlloc(LPTR, toklen)) == NULL) - goto cleanup; - - if (!p_GetTokenInformation(tok, TokenUser, user, toklen, &toklen)) - goto cleanup; - - sidlen = GetLengthSid(user->User.Sid); - - sid = (PSID)smalloc(sidlen); - - if (!CopySid(sidlen, sid, user->User.Sid)) - goto cleanup; - - /* Success. Move sid into the return value slot, and null it out - * to stop the cleanup code freeing it. */ - ret = sid; - sid = NULL; - - cleanup: - if (proc != NULL) - CloseHandle(proc); - if (tok != NULL) - CloseHandle(tok); - if (user != NULL) - LocalFree(user); - if (sid != NULL) - sfree(sid); - - return ret; -} - -#endif - int agent_query(void *in, int inlen, void **out, int *outlen, void (*callback)(void *, void *, int), void *callback_ctx) { @@ -175,7 +93,7 @@ int agent_query(void *in, int inlen, void **out, int *outlen, psa = NULL; #ifndef NO_SECURITY - if (advapi_initialised || init_advapi()) { + if (got_advapi()) { /* * Make the file mapping we create for communication with * Pageant owned by the user SID rather than the default. This diff --git a/source/putty/windows/WINPROXY.C b/source/putty/windows/WINPROXY.C index 85e6abe6..fc0d9e4d 100644 --- a/source/putty/windows/WINPROXY.C +++ b/source/putty/windows/WINPROXY.C @@ -13,150 +13,14 @@ #include "network.h" #include "proxy.h" -typedef struct Socket_localproxy_tag *Local_Proxy_Socket; - -#ifdef MPEXT -extern char *do_select(Plug plug, SOCKET skt, int startup); -#endif - -struct Socket_localproxy_tag { - const struct socket_function_table *fn; - /* the above variable absolutely *must* be the first in this structure */ - - HANDLE to_cmd_H, from_cmd_H; - struct handle *to_cmd_h, *from_cmd_h; - - char *error; - - Plug plug; - - void *privptr; -}; - -int localproxy_gotdata(struct handle *h, void *data, int len) -{ - Local_Proxy_Socket ps = (Local_Proxy_Socket) handle_get_privdata(h); - - if (len < 0) { - return plug_closing(ps->plug, "Read error from local proxy command", - 0, 0); - } else if (len == 0) { - return plug_closing(ps->plug, NULL, 0, 0); - } else { - return plug_receive(ps->plug, 0, data, len); - } -} - -void localproxy_sentdata(struct handle *h, int new_backlog) -{ - Local_Proxy_Socket ps = (Local_Proxy_Socket) handle_get_privdata(h); - - plug_sent(ps->plug, new_backlog); -} - -static Plug sk_localproxy_plug (Socket s, Plug p) -{ - Local_Proxy_Socket ps = (Local_Proxy_Socket) s; - Plug ret = ps->plug; - if (p) - ps->plug = p; - return ret; -} - -static void sk_localproxy_close (Socket s) -{ - Local_Proxy_Socket ps = (Local_Proxy_Socket) s; - - #ifdef MPEXT - // WinSCP core uses do_select as signalization of connection up/down - do_select(ps->plug, INVALID_SOCKET, 0); - #endif - - handle_free(ps->to_cmd_h); - handle_free(ps->from_cmd_h); - CloseHandle(ps->to_cmd_H); - CloseHandle(ps->from_cmd_H); - - sfree(ps); -} - -static int sk_localproxy_write (Socket s, const char *data, int len) -{ - Local_Proxy_Socket ps = (Local_Proxy_Socket) s; - - return handle_write(ps->to_cmd_h, data, len); -} - -static int sk_localproxy_write_oob(Socket s, const char *data, int len) -{ - /* - * oob data is treated as inband; nasty, but nothing really - * better we can do - */ - return sk_localproxy_write(s, data, len); -} - -static void sk_localproxy_write_eof(Socket s) -{ - Local_Proxy_Socket ps = (Local_Proxy_Socket) s; - - handle_write_eof(ps->to_cmd_h); -} - -static void sk_localproxy_flush(Socket s) -{ - /* Local_Proxy_Socket ps = (Local_Proxy_Socket) s; */ - /* do nothing */ -} - -static void sk_localproxy_set_private_ptr(Socket s, void *ptr) -{ - Local_Proxy_Socket ps = (Local_Proxy_Socket) s; - ps->privptr = ptr; -} - -static void *sk_localproxy_get_private_ptr(Socket s) -{ - Local_Proxy_Socket ps = (Local_Proxy_Socket) s; - return ps->privptr; -} - -static void sk_localproxy_set_frozen(Socket s, int is_frozen) -{ - Local_Proxy_Socket ps = (Local_Proxy_Socket) s; - - /* - * FIXME - */ -} - -static const char *sk_localproxy_socket_error(Socket s) -{ - Local_Proxy_Socket ps = (Local_Proxy_Socket) s; - return ps->error; -} - +Socket make_handle_socket(HANDLE send_H, HANDLE recv_H, Plug plug, + int overlapped); Socket platform_new_connection(SockAddr addr, char *hostname, int port, int privport, int oobinline, int nodelay, int keepalive, Plug plug, Conf *conf) { char *cmd; - - static const struct socket_function_table socket_fn_table = { - sk_localproxy_plug, - sk_localproxy_close, - sk_localproxy_write, - sk_localproxy_write_oob, - sk_localproxy_write_eof, - sk_localproxy_flush, - sk_localproxy_set_private_ptr, - sk_localproxy_get_private_ptr, - sk_localproxy_set_frozen, - sk_localproxy_socket_error - }; - - Local_Proxy_Socket ret; HANDLE us_to_cmd, us_from_cmd, cmd_to_us, cmd_from_us; SECURITY_ATTRIBUTES sa; STARTUPINFO si; @@ -167,6 +31,9 @@ Socket platform_new_connection(SockAddr addr, char *hostname, cmd = format_telnet_command(addr, port, conf); + /* We are responsible for this and don't need it any more */ + sk_addr_free(addr); + { char *msg = dupprintf("Starting local proxy command: %s", cmd); /* We're allowed to pass NULL here, because we're part of the Windows @@ -175,11 +42,6 @@ Socket platform_new_connection(SockAddr addr, char *hostname, sfree(msg); } - ret = snew(struct Socket_localproxy_tag); - ret->fn = &socket_fn_table; - ret->plug = plug; - ret->error = NULL; - /* * Create the pipes to the proxy command, and spawn the proxy * command process. @@ -188,17 +50,19 @@ Socket platform_new_connection(SockAddr addr, char *hostname, sa.lpSecurityDescriptor = NULL; /* default */ sa.bInheritHandle = TRUE; if (!CreatePipe(&us_from_cmd, &cmd_to_us, &sa, 0)) { - ret->error = dupprintf("Unable to create pipes for proxy command"); + Socket ret = + new_error_socket("Unable to create pipes for proxy command", plug); sfree(cmd); - return (Socket)ret; + return ret; } if (!CreatePipe(&cmd_from_us, &us_to_cmd, &sa, 0)) { + Socket ret = + new_error_socket("Unable to create pipes for proxy command", plug); + sfree(cmd); CloseHandle(us_from_cmd); CloseHandle(cmd_to_us); - ret->error = dupprintf("Unable to create pipes for proxy command"); - sfree(cmd); - return (Socket)ret; + return ret; } SetHandleInformation(us_to_cmd, HANDLE_FLAG_INHERIT, 0); @@ -225,21 +89,5 @@ Socket platform_new_connection(SockAddr addr, char *hostname, CloseHandle(cmd_from_us); CloseHandle(cmd_to_us); - ret->to_cmd_H = us_to_cmd; - ret->from_cmd_H = us_from_cmd; - - ret->from_cmd_h = handle_input_new(ret->from_cmd_H, localproxy_gotdata, - ret, 0); - ret->to_cmd_h = handle_output_new(ret->to_cmd_H, localproxy_sentdata, - ret, 0); - - /* We are responsible for this and don't need it any more */ - sk_addr_free(addr); - - #ifdef MPEXT - // WinSCP core uses do_select as signalization of connection up/down - do_select(plug, INVALID_SOCKET, 1); - #endif - - return (Socket) ret; + return make_handle_socket(us_to_cmd, us_from_cmd, plug, FALSE); } diff --git a/source/putty/windows/WINSTORE.C b/source/putty/windows/WINSTORE.C index 5749434d..798cf6fb 100644 --- a/source/putty/windows/WINSTORE.C +++ b/source/putty/windows/WINSTORE.C @@ -3,9 +3,25 @@ * defined in storage.h. */ +#ifdef MPEXT + +#include "puttyexp.h" + +#pragma option push -w-dup +#define RegOpenKey reg_open_winscp_key +#define RegCreateKey reg_create_winscp_key +#define RegCreateKey reg_create_winscp_key +#define RegQueryValueEx reg_query_winscp_value_ex +#define RegSetValueEx reg_set_winscp_value_ex +#define RegCloseKey reg_close_winscp_key +#pragma option pop + +#endif + #include #include #include +#include #include "putty.h" #include "storage.h" @@ -152,7 +168,7 @@ void *open_settings_r(const char *sessionname) char *read_setting_s(void *handle, const char *key) { - DWORD type, size; + DWORD type, allocsize, size; char *ret; if (!handle) @@ -164,13 +180,17 @@ char *read_setting_s(void *handle, const char *key) type != REG_SZ) return NULL; - ret = snewn(size+1, char); + allocsize = size+1; /* allow for an extra NUL if needed */ + ret = snewn(allocsize, char); if (RegQueryValueEx((HKEY) handle, key, 0, &type, ret, &size) != ERROR_SUCCESS || type != REG_SZ) { sfree(ret); return NULL; } + assert(size < allocsize); + ret[size] = '\0'; /* add an extra NUL in case RegQueryValueEx + * didn't supply one */ return ret; } @@ -888,3 +908,17 @@ void cleanup_all(void) * Now we're done. */ } + +#ifdef MPEXT + +void putty_mungestr(const char *in, char *out) +{ + mungestr(in, out); +} + +void putty_unmungestr(const char *in, char *out, int outlen) +{ + unmungestr(in, out, outlen); +} + +#endif diff --git a/source/putty/windows/WINSTORE_.C b/source/putty/windows/WINSTORE_.C deleted file mode 100644 index df836b39..00000000 --- a/source/putty/windows/WINSTORE_.C +++ /dev/null @@ -1,22 +0,0 @@ -#include "puttyexp.h" - -#pragma option push -w-dup -#define RegOpenKey reg_open_winscp_key -#define RegCreateKey reg_create_winscp_key -#define RegCreateKey reg_create_winscp_key -#define RegQueryValueEx reg_query_winscp_value_ex -#define RegSetValueEx reg_set_winscp_value_ex -#define RegCloseKey reg_close_winscp_key -#pragma option pop - -#include "winstore.c" - -void putty_mungestr(const char *in, char *out) -{ - mungestr(in, out); -} - -void putty_unmungestr(const char *in, char *out, int outlen) -{ - unmungestr(in, out, outlen); -} diff --git a/source/putty/windows/WINSTUFF.H b/source/putty/windows/WINSTUFF.H index 8b317b55..851b010e 100644 --- a/source/putty/windows/WINSTUFF.H +++ b/source/putty/windows/WINSTUFF.H @@ -247,6 +247,11 @@ GLOBAL void *logctx; #define FILTER_DYNLIB_FILES ("Dynamic Library Files (*.dll)\0*.dll\0" \ "All Files (*.*)\0*\0\0\0") +/* + * Exports from winnet.c. + */ +extern int select_result(WPARAM, LPARAM); + /* * winnet.c dynamically loads WinSock 2 or WinSock 1 depending on * what it can get, which means any WinSock routines used outside @@ -507,6 +512,8 @@ void handle_got_event(HANDLE event); void handle_unthrottle(struct handle *h, int backlog); int handle_backlog(struct handle *h); void *handle_get_privdata(struct handle *h); +struct handle *handle_add_foreign_event(HANDLE event, + void (*callback)(void *), void *ctx); /* * winpgntc.c needs to schedule callbacks for asynchronous agent @@ -520,14 +527,6 @@ void agent_schedule_callback(void (*callback)(void *, void *, int), void *callback_ctx, void *data, int len); #define FLAG_SYNCAGENT 0x1000 -/* - * winpgntc.c also exports these two functions which are used by the - * server side of Pageant as well, to get the user SID for comparing - * with clients'. - */ -int init_advapi(void); /* initialises everything needed by get_user_sid */ -PSID get_user_sid(void); - /* * Exports from winser.c. */ diff --git a/source/putty/windows/winhsock.c b/source/putty/windows/winhsock.c new file mode 100644 index 00000000..c1d3529e --- /dev/null +++ b/source/putty/windows/winhsock.c @@ -0,0 +1,307 @@ +/* + * General mechanism for wrapping up reading/writing of Windows + * HANDLEs into a PuTTY Socket abstraction. + */ + +#include +#include +#include + +#define DEFINE_PLUG_METHOD_MACROS +#include "tree234.h" +#include "putty.h" +#include "network.h" + +typedef struct Socket_handle_tag *Handle_Socket; + +#ifdef MPEXT +extern char *do_select(Plug plug, SOCKET skt, int startup); +#endif + +struct Socket_handle_tag { + const struct socket_function_table *fn; + /* the above variable absolutely *must* be the first in this structure */ + + HANDLE send_H, recv_H; + struct handle *send_h, *recv_h; + + /* + * Freezing one of these sockets is a slightly fiddly business, + * because the reads from the handle are happening in a separate + * thread as blocking system calls and so once one is in progress + * it can't sensibly be interrupted. Hence, after the user tries + * to freeze one of these sockets, it's unavoidable that we may + * receive one more load of data before we manage to get + * winhandl.c to stop reading. + */ + enum { + UNFROZEN, /* reading as normal */ + FREEZING, /* have been set to frozen but winhandl is still reading */ + FROZEN, /* really frozen - winhandl has been throttled */ + THAWING /* we're gradually releasing our remaining data */ + } frozen; + /* We buffer data here if we receive it from winhandl while frozen. */ + bufchain inputdata; + + char *error; + + Plug plug; +}; + +static int handle_gotdata(struct handle *h, void *data, int len) +{ + Handle_Socket ps = (Handle_Socket) handle_get_privdata(h); + + if (len < 0) { + return plug_closing(ps->plug, "Read error from handle", + 0, 0); + } else if (len == 0) { + return plug_closing(ps->plug, NULL, 0, 0); + } else { + assert(ps->frozen != FREEZING && ps->frozen != THAWING); + if (ps->frozen == FREEZING) { + /* + * If we've received data while this socket is supposed to + * be frozen (because the read winhandl.c started before + * sk_set_frozen was called has now returned) then buffer + * the data for when we unfreeze. + */ + bufchain_add(&ps->inputdata, data, len); + + /* + * And return a very large backlog, to prevent further + * data arriving from winhandl until we unfreeze. + */ + return INT_MAX; + } else { + return plug_receive(ps->plug, 0, data, len); + } + } +} + +static void handle_sentdata(struct handle *h, int new_backlog) +{ + Handle_Socket ps = (Handle_Socket) handle_get_privdata(h); + + plug_sent(ps->plug, new_backlog); +} + +static Plug sk_handle_plug(Socket s, Plug p) +{ + Handle_Socket ps = (Handle_Socket) s; + Plug ret = ps->plug; + if (p) + ps->plug = p; + return ret; +} + +static void sk_handle_close(Socket s) +{ + Handle_Socket ps = (Handle_Socket) s; + + #ifdef MPEXT + // WinSCP core uses do_select as signalization of connection up/down + do_select(ps->plug, INVALID_SOCKET, 0); + #endif + + handle_free(ps->send_h); + handle_free(ps->recv_h); + CloseHandle(ps->send_H); + if (ps->recv_H != ps->send_H) + CloseHandle(ps->recv_H); + bufchain_clear(&ps->inputdata); + + sfree(ps); +} + +static int sk_handle_write(Socket s, const char *data, int len) +{ + Handle_Socket ps = (Handle_Socket) s; + + return handle_write(ps->send_h, data, len); +} + +static int sk_handle_write_oob(Socket s, const char *data, int len) +{ + /* + * oob data is treated as inband; nasty, but nothing really + * better we can do + */ + return sk_handle_write(s, data, len); +} + +static void sk_handle_write_eof(Socket s) +{ + Handle_Socket ps = (Handle_Socket) s; + + handle_write_eof(ps->send_h); +} + +static void sk_handle_flush(Socket s) +{ + /* Handle_Socket ps = (Handle_Socket) s; */ + /* do nothing */ +} + +static void handle_socket_unfreeze(void *psv) +{ + Handle_Socket ps = (Handle_Socket) psv; + void *data; + int len, new_backlog; + + /* + * If we've been put into a state other than THAWING since the + * last callback, then we're done. + */ + if (ps->frozen != THAWING) + return; + + /* + * Get some of the data we've buffered. + */ + bufchain_prefix(&ps->inputdata, &data, &len); + assert(len > 0); + + /* + * Hand it off to the plug. + */ + new_backlog = plug_receive(ps->plug, 0, data, len); + + if (bufchain_size(&ps->inputdata) > 0) { + /* + * If there's still data in our buffer, stay in THAWING state, + * and reschedule ourself. + */ + queue_toplevel_callback(handle_socket_unfreeze, ps); + } else { + /* + * Otherwise, we've successfully thawed! + */ + ps->frozen = UNFROZEN; + handle_unthrottle(ps->recv_h, new_backlog); + } +} + +static void sk_handle_set_frozen(Socket s, int is_frozen) +{ + Handle_Socket ps = (Handle_Socket) s; + + if (is_frozen) { + switch (ps->frozen) { + case FREEZING: + case FROZEN: + return; /* nothing to do */ + + case THAWING: + /* + * We were in the middle of emptying our bufchain, and got + * frozen again. In that case, winhandl.c is already + * throttled, so just return to FROZEN state. The toplevel + * callback will notice and disable itself. + */ + ps->frozen = FROZEN; + break; + + case UNFROZEN: + /* + * The normal case. Go to FREEZING, and expect one more + * load of data from winhandl if we're unlucky. + */ + ps->frozen = FREEZING; + break; + } + } else { + switch (ps->frozen) { + case UNFROZEN: + case THAWING: + return; /* nothing to do */ + + case FREEZING: + /* + * If winhandl didn't send us any data throughout the time + * we were frozen, then we'll still be in this state and + * can just unfreeze in the trivial way. + */ + assert(bufchain_size(&ps->inputdata) == 0); + ps->frozen = UNFROZEN; + break; + + case FROZEN: + /* + * If we have buffered data, go to THAWING and start + * releasing it in top-level callbacks. + */ + ps->frozen = THAWING; + queue_toplevel_callback(handle_socket_unfreeze, ps); + } + } +} + +static const char *sk_handle_socket_error(Socket s) +{ + Handle_Socket ps = (Handle_Socket) s; + return ps->error; +} + +static char *sk_handle_peer_info(Socket s) +{ + Handle_Socket ps = (Handle_Socket) s; + ULONG pid; + static HMODULE kernel32_module; + DECL_WINDOWS_FUNCTION(static, BOOL, GetNamedPipeClientProcessId, + (HANDLE, PULONG)); + + if (!kernel32_module) { + kernel32_module = load_system32_dll("kernel32.dll"); + GET_WINDOWS_FUNCTION(kernel32_module, GetNamedPipeClientProcessId); + } + + /* + * Of course, not all handles managed by this module will be + * server ends of named pipes, but if they are, then it's useful + * to log what we can find out about the client end. + */ + if (p_GetNamedPipeClientProcessId && + p_GetNamedPipeClientProcessId(ps->send_H, &pid)) + return dupprintf("process id %lu", (unsigned long)pid); + + return NULL; +} + +Socket make_handle_socket(HANDLE send_H, HANDLE recv_H, Plug plug, + int overlapped) +{ + static const struct socket_function_table socket_fn_table = { + sk_handle_plug, + sk_handle_close, + sk_handle_write, + sk_handle_write_oob, + sk_handle_write_eof, + sk_handle_flush, + sk_handle_set_frozen, + sk_handle_socket_error, + sk_handle_peer_info, + }; + + Handle_Socket ret; + int flags = (overlapped ? HANDLE_FLAG_OVERLAPPED : 0); + + ret = snew(struct Socket_handle_tag); + ret->fn = &socket_fn_table; + ret->plug = plug; + ret->error = NULL; + ret->frozen = UNFROZEN; + bufchain_init(&ret->inputdata); + + ret->recv_H = recv_H; + ret->recv_h = handle_input_new(ret->recv_H, handle_gotdata, ret, flags); + ret->send_H = send_H; + ret->send_h = handle_output_new(ret->send_H, handle_sentdata, ret, flags); + + #ifdef MPEXT + // WinSCP core uses do_select as signalization of connection up/down + do_select(plug, INVALID_SOCKET, 1); + #endif + + return (Socket) ret; +} diff --git a/source/putty/windows/winsecur.c b/source/putty/windows/winsecur.c new file mode 100644 index 00000000..df93a74c --- /dev/null +++ b/source/putty/windows/winsecur.c @@ -0,0 +1,221 @@ +/* + * winsecur.c: implementation of winsecur.h. + */ + +#include +#include + +#include "putty.h" + +#if !defined NO_SECURITY + +#define WINSECUR_GLOBAL +#include "winsecur.h" + +int got_advapi(void) +{ + static int attempted = FALSE; + static int successful; + static HMODULE advapi; + + if (!attempted) { + attempted = TRUE; + advapi = load_system32_dll("advapi32.dll"); + successful = advapi && + GET_WINDOWS_FUNCTION(advapi, GetSecurityInfo) && + GET_WINDOWS_FUNCTION(advapi, OpenProcessToken) && + GET_WINDOWS_FUNCTION(advapi, GetTokenInformation) && + GET_WINDOWS_FUNCTION(advapi, InitializeSecurityDescriptor) && + GET_WINDOWS_FUNCTION(advapi, SetSecurityDescriptorOwner) && + GET_WINDOWS_FUNCTION(advapi, SetEntriesInAclA); + } + return successful; +} + +int got_crypt(void) +{ + static int attempted = FALSE; + static int successful; + static HMODULE crypt; + + if (!attempted) { + attempted = TRUE; + crypt = load_system32_dll("crypt32.dll"); + successful = crypt && + GET_WINDOWS_FUNCTION(crypt, CryptProtectMemory); + } + return successful; +} + +PSID get_user_sid(void) +{ + HANDLE proc = NULL, tok = NULL; + TOKEN_USER *user = NULL; + DWORD toklen, sidlen; + PSID sid = NULL, ret = NULL; + + if (!got_advapi()) + goto cleanup; + + if ((proc = OpenProcess(MAXIMUM_ALLOWED, FALSE, + GetCurrentProcessId())) == NULL) + goto cleanup; + + if (!p_OpenProcessToken(proc, TOKEN_QUERY, &tok)) + goto cleanup; + + if (!p_GetTokenInformation(tok, TokenUser, NULL, 0, &toklen) && + GetLastError() != ERROR_INSUFFICIENT_BUFFER) + goto cleanup; + + if ((user = (TOKEN_USER *)LocalAlloc(LPTR, toklen)) == NULL) + goto cleanup; + + if (!p_GetTokenInformation(tok, TokenUser, user, toklen, &toklen)) + goto cleanup; + + sidlen = GetLengthSid(user->User.Sid); + + sid = (PSID)smalloc(sidlen); + + if (!CopySid(sidlen, sid, user->User.Sid)) + goto cleanup; + + /* Success. Move sid into the return value slot, and null it out + * to stop the cleanup code freeing it. */ + ret = sid; + sid = NULL; + + cleanup: + if (proc != NULL) + CloseHandle(proc); + if (tok != NULL) + CloseHandle(tok); + if (user != NULL) + LocalFree(user); + if (sid != NULL) + sfree(sid); + + return ret; +} + +int make_private_security_descriptor(DWORD permissions, + PSECURITY_DESCRIPTOR *psd, + PACL *acl, + char **error) +{ + SID_IDENTIFIER_AUTHORITY world_auth = SECURITY_WORLD_SID_AUTHORITY; + SID_IDENTIFIER_AUTHORITY nt_auth = SECURITY_NT_AUTHORITY; + EXPLICIT_ACCESS ea[3]; + int acl_err; + int ret = FALSE; + + /* Initialised once, then kept around to reuse forever */ + static PSID worldsid, networksid, usersid; + + *psd = NULL; + *acl = NULL; + *error = NULL; + + if (!got_advapi()) { + *error = dupprintf("unable to load advapi32.dll"); + goto cleanup; + } + + if (!usersid) { + if ((usersid = get_user_sid()) == NULL) { + *error = dupprintf("unable to construct SID for current user: %s", + win_strerror(GetLastError())); + goto cleanup; + } + } + + if (!worldsid) { + if (!AllocateAndInitializeSid(&world_auth, 1, SECURITY_WORLD_RID, + 0, 0, 0, 0, 0, 0, 0, &worldsid)) { + *error = dupprintf("unable to construct SID for world: %s", + win_strerror(GetLastError())); + goto cleanup; + } + } + + if (!networksid) { + if (!AllocateAndInitializeSid(&nt_auth, 1, SECURITY_NETWORK_RID, + 0, 0, 0, 0, 0, 0, 0, &networksid)) { + *error = dupprintf("unable to construct SID for " + "local same-user access only: %s", + win_strerror(GetLastError())); + goto cleanup; + } + } + + memset(ea, 0, sizeof(ea)); + ea[0].grfAccessPermissions = permissions; + ea[0].grfAccessMode = REVOKE_ACCESS; + ea[0].grfInheritance = NO_INHERITANCE; + ea[0].Trustee.TrusteeForm = TRUSTEE_IS_SID; + ea[0].Trustee.ptstrName = (LPTSTR)worldsid; + ea[1].grfAccessPermissions = permissions; + ea[1].grfAccessMode = GRANT_ACCESS; + ea[1].grfInheritance = NO_INHERITANCE; + ea[1].Trustee.TrusteeForm = TRUSTEE_IS_SID; + ea[1].Trustee.ptstrName = (LPTSTR)usersid; + ea[2].grfAccessPermissions = permissions; + ea[2].grfAccessMode = REVOKE_ACCESS; + ea[2].grfInheritance = NO_INHERITANCE; + ea[2].Trustee.TrusteeForm = TRUSTEE_IS_SID; + ea[2].Trustee.ptstrName = (LPTSTR)networksid; + + acl_err = p_SetEntriesInAclA(3, ea, NULL, acl); + if (acl_err != ERROR_SUCCESS || *acl == NULL) { + *error = dupprintf("unable to construct ACL: %s", + win_strerror(acl_err)); + goto cleanup; + } + + *psd = (PSECURITY_DESCRIPTOR) + LocalAlloc(LPTR, SECURITY_DESCRIPTOR_MIN_LENGTH); + if (!*psd) { + *error = dupprintf("unable to allocate security descriptor: %s", + win_strerror(GetLastError())); + goto cleanup; + } + + if (!InitializeSecurityDescriptor(*psd, SECURITY_DESCRIPTOR_REVISION)) { + *error = dupprintf("unable to initialise security descriptor: %s", + win_strerror(GetLastError())); + goto cleanup; + } + + if (!SetSecurityDescriptorOwner(*psd, usersid, FALSE)) { + *error = dupprintf("unable to set owner in security descriptor: %s", + win_strerror(GetLastError())); + goto cleanup; + } + + if (!SetSecurityDescriptorDacl(*psd, TRUE, *acl, FALSE)) { + *error = dupprintf("unable to set DACL in security descriptor: %s", + win_strerror(GetLastError())); + goto cleanup; + } + + ret = TRUE; + + cleanup: + if (!ret) { + if (*psd) { + LocalFree(*psd); + *psd = NULL; + } + if (*acl) { + LocalFree(*acl); + *acl = NULL; + } + } else { + sfree(*error); + *error = NULL; + } + return ret; +} + +#endif /* !defined NO_SECURITY */ diff --git a/source/putty/windows/winsecur.h b/source/putty/windows/winsecur.h new file mode 100644 index 00000000..bd649827 --- /dev/null +++ b/source/putty/windows/winsecur.h @@ -0,0 +1,63 @@ +/* + * winsecur.h: some miscellaneous security-related helper functions, + * defined in winsecur.c, that use the advapi32 library. Also + * centralises the machinery for dynamically loading that library. + */ + +#if !defined NO_SECURITY + +#include + +#ifndef WINSECUR_GLOBAL +#define WINSECUR_GLOBAL extern +#endif + +/* + * Functions loaded from advapi32.dll. + */ +DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, BOOL, OpenProcessToken, + (HANDLE, DWORD, PHANDLE)); +DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, BOOL, GetTokenInformation, + (HANDLE, TOKEN_INFORMATION_CLASS, + LPVOID, DWORD, PDWORD)); +DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, BOOL, InitializeSecurityDescriptor, + (PSECURITY_DESCRIPTOR, DWORD)); +DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, BOOL, SetSecurityDescriptorOwner, + (PSECURITY_DESCRIPTOR, PSID, BOOL)); +DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, DWORD, GetSecurityInfo, + (HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION, + PSID *, PSID *, PACL *, PACL *, + PSECURITY_DESCRIPTOR *)); +DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, DWORD, SetEntriesInAclA, + (ULONG, PEXPLICIT_ACCESS, PACL, PACL *)); +int got_advapi(void); + +/* + * Functions loaded from crypt32.dll. + */ +DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, BOOL, CryptProtectMemory, + (LPVOID, DWORD, DWORD)); +int got_crypt(void); + +/* + * Find the SID describing the current user. The return value (if not + * NULL for some error-related reason) is smalloced. + */ +PSID get_user_sid(void); + +/* + * Construct a PSECURITY_DESCRIPTOR of the type used for named pipe + * servers, i.e. allowing access only to the current user id and also + * only local (i.e. not over SMB) connections. + * + * If this function returns TRUE, then 'psd' and 'acl' will have been + * filled in with memory allocated using LocalAlloc (and hence must be + * freed later using LocalFree). If it returns FALSE, then instead + * 'error' has been filled with a dynamically allocated error message. + */ +int make_private_security_descriptor(DWORD permissions, + PSECURITY_DESCRIPTOR *psd, + PACL *acl, + char **error); + +#endif diff --git a/source/resource/Application.ico b/source/resource/Application.ico new file mode 100644 index 00000000..62c9393c Binary files /dev/null and b/source/resource/Application.ico differ diff --git a/source/resource/DeleteFile.png b/source/resource/DeleteFile.png deleted file mode 100644 index 0a0c1320..00000000 Binary files a/source/resource/DeleteFile.png and /dev/null differ diff --git a/source/resource/Editor16.ico b/source/resource/Editor16.ico deleted file mode 100644 index ffeda972..00000000 Binary files a/source/resource/Editor16.ico and /dev/null differ diff --git a/source/resource/Editor32.ico b/source/resource/Editor32.ico deleted file mode 100644 index 81bf139b..00000000 Binary files a/source/resource/Editor32.ico and /dev/null differ diff --git a/source/resource/HelpCore.h b/source/resource/HelpCore.h index ebf46b96..0620c129 100644 --- a/source/resource/HelpCore.h +++ b/source/resource/HelpCore.h @@ -33,5 +33,6 @@ #define HELP_FTP_SUGGESTION "message_server_rejected_sftp_listens_for_ftp" #define HELP_STATUSMSG_DISCONNECTED "message_disconnected" #define HELP_SFTP_INITIALIZE_ERROR "message_cannot_initialize_sftp_protocol" +#define HELP_AUTH_TRANSL_KEY_REFUSED "message_key_refused" #endif // HelpCoreH diff --git a/source/resource/HelpWin.h b/source/resource/HelpWin.h index b921cf85..003c269f 100644 --- a/source/resource/HelpWin.h +++ b/source/resource/HelpWin.h @@ -4,7 +4,7 @@ #define HELP_ERROR "messages" #define HELP_SESSION_SAVE "ui_login_save" #define HELP_SESSION_SAVE_OVERWRITE HELP_SESSION_SAVE -#define HELP_SESSION_SAVE_DEFAULT "ui_login_stored_sessions#session_management" +#define HELP_SESSION_SAVE_DEFAULT "ui_login#management" #define HELP_CREATE_SHORTCUT "integration" #define HELP_CREATE_SENDTO HELP_CREATE_SHORTCUT #define HELP_CREATE_ICON HELP_CREATE_SHORTCUT @@ -34,7 +34,7 @@ #define HELP_UNINSTALL_CLEANUP "ui_cleanup" #define HELP_EDITOR_FIND "ui_editor_find" #define HELP_EDITOR_REPLACE "ui_editor_replace" -#define HELP_DELETE_SESSION "ui_login_stored_sessions#session_management" +#define HELP_DELETE_SESSION "ui_login#management" #define HELP_DELETE_SESSION_FOLDER HELP_DELETE_SESSION #define HELP_DELETE_WORKSPACE HELP_DELETE_SESSION #define HELP_NEW_SESSION_FOLDER HELP_DELETE_SESSION @@ -55,5 +55,6 @@ #define HELP_DRAGEXT_TARGET_NOT_INSTALLED "dragext" #define HELP_DRAGEXT_TARGET_UNKNOWN HELP_DRAGEXT_TARGET_NOT_INSTALLED #define HELP_KEY_TYPE_UNSUPPORTED "ui_puttygen#other_formats" +#define HELP_TIPS "ui_tips" #endif // TextsWin diff --git a/source/resource/Icon256.ico b/source/resource/Icon256.ico deleted file mode 100644 index c0422c9a..00000000 Binary files a/source/resource/Icon256.ico and /dev/null differ diff --git a/source/resource/License.txt b/source/resource/License.txt index 1c160d0a..7af76393 100644 --- a/source/resource/License.txt +++ b/source/resource/License.txt @@ -9,9 +9,9 @@ Everyone is permitted to copy and distribute verbatim copies of this license doc The GNU General Public License is a free, copyleft license for software and other kinds of works. -The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. -When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. diff --git a/source/resource/Log16.ico b/source/resource/Log16.ico deleted file mode 100644 index 77eaa417..00000000 Binary files a/source/resource/Log16.ico and /dev/null differ diff --git a/source/resource/Log32.ico b/source/resource/Log32.ico deleted file mode 100644 index 5248bd18..00000000 Binary files a/source/resource/Log32.ico and /dev/null differ diff --git a/source/resource/Propagation.rc b/source/resource/Propagation.rc index 1bfd334a..0c94552d 100644 --- a/source/resource/Propagation.rc +++ b/source/resource/Propagation.rc @@ -2,8 +2,9 @@ STRINGTABLE BEGIN DESCRIPTION_45_LETTERS, "Free SFTP, WebDAV and FTP client for Windows" DESCRIPTION_80_LETTERS, "WinSCP is a popular free SFTP, SCP, WebDAV and FTP client for Windows." + // Keep in sync with REGISTERED_APP_DESC DESCRIPTION_250_LETTERS, "WinSCP, a popular free SFTP and FTP client for Windows, copies files between a local and remote computer. It supports also FTPS, SCP and WebDAV. It offers easy to use GUI for all common file operations and a powerful automation with .NET assembly." - DESCRIPTION_450_LETTERS, "WinSCP is a popular free SFTP and FTP client for Windows, a powerful tool that will improve your productivity. WinSCP can copy files between a local and remote computer using FTP, FTPS, SCP, SFTP or WebDAV. WinSCP offers an easy to use GUI for all common operations with files and directories. Power users can automate WinSCP using .NET assembly. WinSCP documentation is at http://winscp.net/. WinSCP is available in English and many other languages." + DESCRIPTION_450_LETTERS, "WinSCP is a popular free SFTP and FTP client for Windows, a powerful tool that will improve your productivity. WinSCP can copy files between a local and remote computer using FTP, FTPS, SCP, SFTP or WebDAV. WinSCP offers an easy to use GUI for all common operations with files and directories. Power users can automate WinSCP using .NET assembly. WinSCP documentation is at https://winscp.net/. WinSCP is available in English and many other languages." // "English" shall be replaced by translation language DESCRIPTION_2000_LETTERS, "WinSCP is a popular free SFTP and FTP client for Windows. Moreover, WinSCP is a powerful multi-functional tool that will improve your productivity. WinSCP can copy files between a local and remote computer using multiple protocols: FTP, FTPS, SCP, SFTP or WebDAV. On the one hand, WinSCP offers an easy to use graphical user interface; you can choose between Windows Explorer look and tabbed twin-panel interface like Norton commander. On the other hand, advanced users can automate WinSCP functionality using .NET assembly or simple batch file scripting. You will use WinSCP for all common operations with files. You can start editing a file directly from WinSCP, either using WinSCP internal text editor or using integration with your favorite external text editor. WinSCP operations are not limited to individual files; WinSCP offers several ways to synchronize your remote and local directories. After connecting to a site you can choose to store site information for repeated access, WinSCP can even share site settings with another popular open source tool PuTTY. WinSCP integrates also with Pageant (PuTTY authentication agent) for full support of public key authentication with SSH. Admins love WinSCP support for portable operation using a configuration file instead of registry entries, suitable for operation from removable media. A comprehensive WinSCP documentation is freely accessible at http://winscp.net/. This site hosts also a very active user forum for support and feature requests. WinSCP is available in English and many other languages. WinSCP is an open source software distributed free of charge under the terms of the GNU General Public License (GPL)." @@ -25,5 +26,7 @@ BEGIN KEYWORD_SECURE_TRANSFER, "secure file transfer" KEYWORD_FREEWARE, "freeware" + SCREENSHOT_COMMANDER, "Main screen of Commander interface showing both local and remote file panel" + LICENSE, "WinSCP is free software: you can use it, redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version." END diff --git a/source/resource/RemoteMoveFile.png b/source/resource/RemoteMoveFile.png deleted file mode 100644 index f1ad7558..00000000 --- a/source/resource/RemoteMoveFile.png +++ /dev/null @@ -1 +0,0 @@ -‰PNG diff --git a/source/resource/Site.ico b/source/resource/Site.ico index 3848f75a..91ef8814 100644 Binary files a/source/resource/Site.ico and b/source/resource/Site.ico differ diff --git a/source/resource/SiteFolder.ico b/source/resource/SiteFolder.ico index dcb2e796..bda16c80 100644 Binary files a/source/resource/SiteFolder.ico and b/source/resource/SiteFolder.ico differ diff --git a/source/resource/TextsCore.h b/source/resource/TextsCore.h index 3e0972fb..7318ba79 100644 --- a/source/resource/TextsCore.h +++ b/source/resource/TextsCore.h @@ -7,7 +7,7 @@ #define SCRIPT_HELP_HELP 4 #define SCRIPT_EXIT_HELP 5 -#define SCRIPT_OPEN_HELP6 6 +#define SCRIPT_OPEN_HELP8 6 #define SCRIPT_CLOSE_HELP 7 #define SCRIPT_SESSION_HELP 8 #define SCRIPT_PWD_HELP 9 @@ -22,8 +22,8 @@ #define SCRIPT_CHMOD_HELP2 18 #define SCRIPT_LN_HELP 19 #define SCRIPT_MKDIR_HELP 20 -#define SCRIPT_GET_HELP7 21 -#define SCRIPT_PUT_HELP7 22 +#define SCRIPT_GET_HELP8 21 +#define SCRIPT_PUT_HELP8 22 #define SCRIPT_OPTION_HELP7 23 #define SCRIPT_SYNCHRONIZE_HELP7 24 #define SCRIPT_KEEPUPTODATE_HELP4 25 @@ -168,7 +168,7 @@ #define SFTP_STATUS_DELETE_PENDING 241 #define SFTP_STATUS_FILE_CORRUPT 242 #define KEY_TYPE_UNKNOWN2 243 -#define KEY_TYPE_UNSUPPORTED 244 +#define KEY_TYPE_UNSUPPORTED2 244 #define KEY_TYPE_DIFFERENT_SSH 245 #define SFTP_OVERWRITE_FILE_ERROR2 246 #define SFTP_OVERWRITE_DELETE_BUTTON 247 @@ -240,7 +240,26 @@ #define UNKNOWN_CHECKSUM 715 #define CIPHER_NOT_VERIFIED 716 #define KEX_NOT_VERIFIED 717 +#define SFTP_STATUS_4 718 +#define CERTIFICATE_OPEN_ERROR 719 +#define CERTIFICATE_READ_ERROR 720 +#define CERTIFICATE_DECODE_ERROR_INFO 721 +#define CERTIFICATE_DECODE_ERROR 722 +#define CERTIFICATE_PUBLIC_KEY_NOT_FOUND 723 +#define LOCK_FILE_ERROR 724 +#define UNLOCK_FILE_ERROR 725 +#define NOT_LOCKED 726 +#define KEY_SAVE_ERROR 727 +#define NEON_INIT_FAILED 728 #define SCRIPT_AMBIGUOUS_SLASH_IN_PATH 729 +#define CERT_IP_CANNOT_VERIFY 730 +#define HOSTKEY_NOT_CONFIGURED 731 +#define UNENCRYPTED_REDIRECT 732 +#define HTTP_ERROR 733 +#define FILEZILLA_SITE_MANAGER_NOT_FOUND 734 +#define FILEZILLA_NO_SITES 735 +#define FILEZILLA_SITE_NOT_EXIST 736 +#define SFTP_AS_FTP_ERROR 737 #define CORE_CONFIRMATION_STRINGS 300 #define CONFIRM_PROLONG_TIMEOUT3 301 @@ -285,9 +304,10 @@ #define VERIFY_CERT_CONTACT 347 #define VERIFY_CERT_CONTACT_LIST 348 #define CERT_TEXT 349 - -#define CERT_FILENAME_PROMPT_TITLE 360 -#define CERT_FILENAME_PROMPT 361 +#define CERTIFICATE_PASSPHRASE_PROMPT 350 +#define CERTIFICATE_PASSPHRASE_TITLE 351 +#define KEY_TYPE_CONVERT3 352 +#define MULTI_FILES_TO_ONE 353 #define CORE_INFORMATION_STRINGS 400 #define YES_STR 401 @@ -414,7 +434,6 @@ #define COPY_INFO_REMOVE_BOM 531 #define SCRIPT_NON_DEFAULT_COPY_PARAM 532 #define SCRIPT_NON_DEFAULT_SYNC_PARAM 533 -#define KEY_TYPE_CONVERT2 534 #define VERSION_BUILD 535 #define VERSION_DEV_BUILD 536 #define VERSION_DEBUG_BUILD 537 @@ -422,10 +441,21 @@ #define WEBDAV_EXTENSION_INFO 539 #define COPY_PARAM_PRESET_EXCLUDE_ALL_DIR 540 #define SCRIPT_CHECKSUM_DESC 541 +#define CLIENT_CERTIFICATE_LOADING 543 +#define NEED_CLIENT_CERTIFICATE 544 +#define LOCKED 545 +#define EXECUTABLE 546 +#define SCRIPT_CMDLINE_PARAMETERS 547 +#define SCRIPTING_USE_HOSTKEY 548 +#define SCRIPT_SITE_WARNING 549 +#define CODE_SESSION_OPTIONS 550 +#define CODE_CONNECT 551 +#define CODE_YOUR_CODE 552 +#define CODE_PS_ADD_TYPE 553 +#define COPY_INFO_PRESERVE_TIME_DIRS 554 #define CORE_VARIABLE_STRINGS 600 #define PUTTY_BASED_ON 601 -#define PUTTY_VERSION 602 #define PUTTY_COPYRIGHT 603 #define PUTTY_URL 604 #define FILEZILLA_BASED_ON2 605 diff --git a/source/resource/TextsCore1.rc b/source/resource/TextsCore1.rc index e26996a3..8e94fd83 100644 --- a/source/resource/TextsCore1.rc +++ b/source/resource/TextsCore1.rc @@ -138,7 +138,7 @@ BEGIN SFTP_STATUS_DELETE_PENDING, "An operation was attempted on a file for which a delete operation is pending." SFTP_STATUS_FILE_CORRUPT, "The file is corrupt; an filesystem integrity check should be run." KEY_TYPE_UNKNOWN2, "File '%s' does not contain private key in known format." - KEY_TYPE_UNSUPPORTED, "**Private key file '%s' contains key in %s format. WinSCP supports only PuTTY format.**\n \nYou can use PuTTYgen tool to convert your private key file." + KEY_TYPE_UNSUPPORTED2, "**Private key file '%s' contains key in %s format. WinSCP supports only PuTTY format.**" KEY_TYPE_DIFFERENT_SSH, "Private key file '%s' contains key in %s format. It does not follow your preferred SSH protocol version." SFTP_OVERWRITE_FILE_ERROR2, "Cannot overwrite remote file '%s'.$$\n \nPress 'Delete' to delete the file and create new one instead of overwriting it.$$" SFTP_OVERWRITE_DELETE_BUTTON, "&Delete" @@ -210,7 +210,26 @@ BEGIN UNKNOWN_CHECKSUM, "Checksum algorithm '%s' is not supported." CIPHER_NOT_VERIFIED, "Cipher %s was not verified!" KEX_NOT_VERIFIED, "Key-exchange algorithm %s was not verified!" + SFTP_STATUS_4, "Common reasons for the Error code 4 are:\n- Renaming a file to a name of already existing file.\n- Creating a directory that already exists.\n- Moving a remote file to a different filesystem (HDD).\n- Uploading a file to a full filesystem (HDD).\n- Exceeding a user disk quota." + CERTIFICATE_OPEN_ERROR, "Cannot open certificate \"%s\"." + CERTIFICATE_READ_ERROR, "Cannot read certificate \"%s\"." + CERTIFICATE_DECODE_ERROR_INFO, "Error decoding certificate." + CERTIFICATE_DECODE_ERROR, "Error decoding certificate \"%s\"." + CERTIFICATE_PUBLIC_KEY_NOT_FOUND, "Certificate file \"%s\" does not contain a public key and no corresponding .crt/.cer file was found." + LOCK_FILE_ERROR, "Error locking file '%s'." + UNLOCK_FILE_ERROR, "Error unlocking file '%s'." + NOT_LOCKED, "File '%s' is not locked." + KEY_SAVE_ERROR, "Error saving key to file \"%s\"." + NEON_INIT_FAILED, "Neon WebDAV library initialization failed, cannot open WebDAV session." SCRIPT_AMBIGUOUS_SLASH_IN_PATH, "Selecting files using a path ending with slash is ambiguous. Remove the slash to select the folder. Append * mask to select all files in the folder." + CERT_IP_CANNOT_VERIFY, "When connecting using an IP address, it is not possible to verify if the certificate was issued for the server. Use a hostname instead of the IP address." + HOSTKEY_NOT_CONFIGURED, "Expected host key was not configured, use -hostkey switch." + UNENCRYPTED_REDIRECT, "Redirected to an unencrypted URL." + HTTP_ERROR, "Received response %d %s from %s" + FILEZILLA_SITE_MANAGER_NOT_FOUND, "FileZilla site manager file not found (%s)." + FILEZILLA_NO_SITES, "No sites found in FileZilla site manager file (%s)." + FILEZILLA_SITE_NOT_EXIST, "FileZilla site \"%s\" was not found." + SFTP_AS_FTP_ERROR, "You cannot connect to an SFTP server using an FTP protocol. Please selec the correct protocol." CORE_CONFIRMATION_STRINGS, "CORE_CONFIRMATION" CONFIRM_PROLONG_TIMEOUT3, "Host is not communicating for %d seconds.\n\nWait for another %0:d seconds?" @@ -255,10 +274,10 @@ BEGIN VERIFY_CERT_CONTACT, "- Organization: %s\n|- Location: %s\n|- Other: %s\n" VERIFY_CERT_CONTACT_LIST, "%s, %s" CERT_TEXT, "Issuer:\n%s\nSubject:\n%s\nValid: %s - %s\n\nFingerprint (SHA-1): %s\n\nSummary: %s" - KEY_TYPE_CONVERT2, "**Do you want to load this %s private key to PuTTYgen to convert it to PuTTY format?**\n\n%s" - - CERT_FILENAME_PROMPT_TITLE, "Certificate file name" - CERT_FILENAME_PROMPT, "Enter certificate file name:" + CERTIFICATE_PASSPHRASE_PROMPT, "&Passphrase for client certificate:" + CERTIFICATE_PASSPHRASE_TITLE, "Client certificate passphrase" + KEY_TYPE_CONVERT3, "**Do you want to convert this %s private key to PuTTY format?**\n\n%s" + MULTI_FILES_TO_ONE, "**Are you sure you want to transfer multiple files to a single file '%s' in a directory '%s'?**\n\nThe files will overwrite one another.\n\nIf you actually want to transfer all files to a directory '%s', keeping their name, make sure you terminate the path with a slash." CORE_INFORMATION_STRINGS, "CORE_INFORMATION" YES_STR, "Yes" @@ -390,20 +409,31 @@ BEGIN VERSION_DEBUG_BUILD, "Debug Build" VERSION_DONT_DISTRIBUTE, "- Do NOT distribute" WEBDAV_EXTENSION_INFO, "The server supports these WebDAV extensions:" - COPY_PARAM_PRESET_EXCLUDE_ALL_DIR, "Exclude &directories" + COPY_PARAM_PRESET_EXCLUDE_ALL_DIR, "Exclude &directories" SCRIPT_CHECKSUM_DESC, "Calculates checksum of remote file" + CLIENT_CERTIFICATE_LOADING, "Loading client certificate..." + NEED_CLIENT_CERTIFICATE, "Server asks for authentication with a client certificate." + LOCKED, "Locked" + EXECUTABLE, "Executable" + SCRIPT_CMDLINE_PARAMETERS, "Scripting does not use standalone parameters. The parameters you have specified on command-line will not be used. Your command-line syntax is probably wrong." + SCRIPTING_USE_HOSTKEY, "In scripting, you should use a -hostkey switch to configure the expected host key." + SCRIPT_SITE_WARNING, "In scripting you should not rely on saved sites, use this command instead:" + CODE_SESSION_OPTIONS, "Setup session options" + CODE_CONNECT, "Connect" + CODE_YOUR_CODE, "Your code" + CODE_PS_ADD_TYPE, "Load WinSCP .NET assembly" + COPY_INFO_PRESERVE_TIME_DIRS, "%s (including directories)" CORE_VARIABLE_STRINGS, "CORE_VARIABLE" PUTTY_BASED_ON, "SSH and SCP code based on PuTTY %s" - PUTTY_VERSION, "0.63+" PUTTY_COPYRIGHT, "Copyright © 1997-2015 Simon Tatham" PUTTY_URL, "http://www.chiark.greenend.org.uk/~sgtatham/putty/" FILEZILLA_BASED_ON2, "FTP code based on FileZilla" FILEZILLA_COPYRIGHT2, "Copyright © Tim Kosse" - FILEZILLA_URL, "http://filezilla-project.org/" + FILEZILLA_URL, "https://filezilla-project.org/" OPENSSL_BASED_ON, "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit %s." OPENSSL_COPYRIGHT2, "Copyright © 1998-%s The OpenSSL Project" - OPENSSL_URL, "http://www.openssl.org/" + OPENSSL_URL, "https://www.openssl.org/" NEON_BASED_ON, "WebDAV code based on neon library %s" NEON_COPYRIGHT, "Copyright © 1999-2014 Joe Orton" NEON_URL, "http://www.webdav.org/neon/" diff --git a/source/resource/TextsCore2.rc b/source/resource/TextsCore2.rc index 0811b50b..c5690980 100644 --- a/source/resource/TextsCore2.rc +++ b/source/resource/TextsCore2.rc @@ -59,24 +59,26 @@ BEGIN " Closes all sessions and terminates the program.\n" "alias:\n" " bye\n" - SCRIPT_OPEN_HELP6, + SCRIPT_OPEN_HELP8, "open \n" - "open sftp|scp|ftp|http[s] :// [ [ :password ] @ ] [ : ]\n" + "open sftp|scp|ftp[es]|http[s] :// [ [ :password ] @ ] [ : ]\n" " Establishes connection to given host. Use either name of the site or\n" " specify host, username, port and protocol directly.\n" "switches:\n" - " -privatekey= Private key file\n" - " -passphrase= Private key passphrase\n" - " -timeout= Server response timeout\n" + " -privatekey= SSH private key file\n" " -hostkey= Fingerprint of server host key (SFTP and SCP only).\n" + " -clientcert= TLS/SSL client certificate file\n" " -certificate= Fingerprint of TLS/SSL certificate\n" " (FTPS and WebDAVS only)\n" + " -passphrase= Private key passphrase\n" " -passive=on|off Passive mode (FTP protocol only)\n" - " -implicit Implicit TLS/SSL (FTPS protocol only)\n" - " -explicit Explicit TLS/SSL (FTPS protocol only)\n" + " -implicit Implicit TLS/SSL (FTP protocol only)\n" + " -explicit Explicit TLS/SSL (FTP protocol only)\n" + " -timeout= Server response timeout\n" " -rawsettings setting1=value1 setting2=value2 ...\n" " Configures any site settings using raw format\n" " as in an INI file\n" + " -filezilla Load from FileZilla site manager\n" "examples:\n" " open\n" " open sftp://martin@example.com:2222 -privatekey=mykey.ppk\n" @@ -196,7 +198,7 @@ BEGIN " Creates remote directory.\n" "example:\n" " mkdir public_html\n" - SCRIPT_GET_HELP7, + SCRIPT_GET_HELP8, "get [ [ ... ] \\[ ] ]\n" " Downloads one or more files from remote directory to local directory.\n" " If only one parameter is specified downloads the file to local working\n" @@ -221,6 +223,7 @@ BEGIN " -resumesupport= Configures resume support.\n" " Possible values are 'on', 'off' or threshold\n" " -neweronly Transfer new and updated files only\n" + " -latest Transfer the latest file only\n" "effective options:\n" " confirm, failonnomatch, reconnecttime\n" "examples:\n" @@ -229,7 +232,7 @@ BEGIN " get index.html about.html d:\\www\\\n" " get public_html/index.html d:\\www\\about.*\n" " get *.html *.png d:\\www\\*.bak\n" - SCRIPT_PUT_HELP7, + SCRIPT_PUT_HELP8, "put [ [ ... ] /[ ] ]\n" " Uploads one or more files from local directory to remote directory.\n" " If only one parameter is specified uploads the file to remote working\n" @@ -256,6 +259,7 @@ BEGIN " -resumesupport= Configures resume support.\n" " Possible values are 'on', 'off' or threshold\n" " -neweronly Transfer new and updated files only\n" + " -latest Transfer the latest file only\n" "effective options:\n" " confirm, failonnomatch, reconnecttime\n" "examples:\n" diff --git a/source/resource/TextsWin.h b/source/resource/TextsWin.h index 6e91d20f..01f4f315 100644 --- a/source/resource/TextsWin.h +++ b/source/resource/TextsWin.h @@ -2,7 +2,6 @@ #define TextsWinH #define DND_DOWNLOAD_MOVE_WARNING 1050 -#define USAGE10 1051 #define WIN_ERROR_STRINGS 1100 #define WARN_FATAL_ERROR 1102 @@ -64,14 +63,25 @@ #define SHELL_PATTERN_ERROR 1175 #define PATH_ENV_TOO_LONG 1176 #define STACK_TRACE 1177 -#define FILEZILLA_SITE_MANAGER_NOT_FOUND 1178 -#define FILEZILLA_NO_SITES 1179 #define PUTTY_NO_SITES 1180 #define BATCH_SET_NO_MASK 1181 #define BATCH_SET_NO_SETTINGS 1182 #define BATCH_SET_NOT_CHANGED 1183 #define BATCH_SET_CHANGED 1184 #define BATCH_SET_SUMMARY 1185 +#define KEYGEN_NO_INPUT 1186 +#define KEYGEN_NO_ACTION 1187 +#define KEYGEN_SSH1 1188 +#define KEYGEN_PASSPHRASES_MISMATCH 1189 +#define KEYGEN_NO_OUTPUT 1190 +#define UPDATE_DOWNLOAD_ERROR 1191 +#define UPDATE_VERIFY_ERROR 1192 +#define UPDATE_UNAUTHORIZED 1193 +#define UPDATE_EXPIRED 1194 +#define UPDATE_TOO_MANY 1195 +#define UPDATE_MISSING_ADDRESS 1196 +#define UPDATE_TOO_LOW 1197 +#define TIPS_NONE 1198 #define WIN_CONFIRMATION_STRINGS 1300 #define CONFIRM_OVERWRITE_SESSION 1301 @@ -133,13 +143,14 @@ #define EDIT_SESSION_REATTACH 1363 #define CONFIRM_UNREGISTER_URL 1364 #define INTERNAL_EDITOR_LARGE_FILE 1365 +#define CLOSE_BUTTON 1366 #define WIN_INFORMATION_STRINGS 1400 #define COMPARE_NO_DIFFERENCES 1402 #define SHORTCUT_INFO_TIP 1403 #define DOCUMENT_WAIT 1404 -#define SESSION_SENDTO_HOOK_NAME 1405 -#define SENDTO_HOOK_NAME 1406 +#define SESSION_SENDTO_HOOK_NAME2 1405 +#define SENDTO_HOOK_NAME2 1406 #define BOOKMARK_INFO_TIP 1407 #define CUSTOM_COMMAND_TOUCH 1408 #define CUSTOM_COMMAND_EXECUTE 1409 @@ -177,7 +188,7 @@ #define EXTERNAL_EDITOR_HINT 1488 #define MASK_HINT2 1489 #define PATH_MASK_HINT2 1490 -#define CUSTOM_COMMAND_PATTERNS_HINT4 1491 +#define CUSTOM_COMMAND_PATTERNS_HINT5 1491 #define CLOSED_ON_QUEUE_EMPTY 1492 #define DIRECTORY_READING_CANCELLED 1493 #define SYNC_DIR_BROWSE_TOGGLE 1494 @@ -219,11 +230,45 @@ #define COPY_PARAM_PRESET_HEADER 1532 #define QUEUE_DONE 1533 #define MASTER_PASSWORD_RECRYPT_ERRORS 1534 -#define REGISTERED_APP_DESC 1535 +#define REGISTERED_APP_DESC2 1535 #define MESSAGE_LOADING 1536 #define NEW_VERSION_CLICK 1537 #define DIRECTORY_READING_AND_RESOLVING_PROGRESS 1538 #define MESSAGE_DISPLAY_ERROR 1539 +#define USAGE_SYNTAX_LABEL 1540 +#define USAGE_SESSION 1541 +#define USAGE_NEWINSTANCE 1542 +#define USAGE_EDIT 1543 +#define USAGE_SYNCHRONIZE 1544 +#define USAGE_KEEPUPTODATE 1545 +#define USAGE_DEFAULTS 1546 +#define USAGE_CONSOLE 1547 +#define USAGE_SCRIPT 1548 +#define USAGE_COMMAND 1549 +#define USAGE_PARAMETER 1550 +#define USAGE_INI 1551 +#define USAGE_RAWCONFIG 1552 +#define USAGE_BATCHSETTINGS 1553 +#define USAGE_LOG 1554 +#define USAGE_LOGLEVEL 1555 +#define USAGE_XMLLOG 1556 +#define USAGE_XMLGROUPS 1557 +#define USAGE_PRIVATEKEY 1558 +#define USAGE_HOSTKEY 1559 +#define USAGE_CLIENTCERT 1560 +#define USAGE_PASSIVE 1561 +#define USAGE_IMPLICIT 1562 +#define USAGE_EXPLICIT 1563 +#define USAGE_TIMEOUT 1564 +#define USAGE_RAWSETTINGS 1565 +#define USAGE_UPDATE 1566 +#define USAGE_HELP 1567 +#define USAGE_KEYGEN 1568 +#define KEYGEN_PASSPHRASE 1569 +#define KEYGEN_PASSPHRASE2 1570 +#define KEYGEN_SAVED 1571 +#define USAGE_CERTIFICATE 1572 +#define USAGE_SESSIONNAME 1573 #define WIN_FORMS_STRINGS 1600 #define LOG_NOLOG 1601 @@ -242,7 +287,7 @@ #define NEW_FOLDER 1621 #define SELECT_MASK_DESELECT_CAPTION 1624 #define SELECT_MASK_SELECT_CAPTION 1625 -#define STATUS_DISCONNECTED 1675 +#define STATUS_NOT_CONNECTED 1675 #define STATUS_CONNECTING 1676 #define PROPERTIES_FILE 1626 #define PROPERTIES_FILES 1627 @@ -454,7 +499,7 @@ #define PROGRESS_UPLOAD 1901 #define PROGRESS_DOWNLOAD 1902 #define PROGRESS_IN_QUEUE 1903 -#define PUTTY_PATTERNS_HINT 1904 +#define PUTTY_PATTERNS_HINT2 1904 #define LOGIN_NEW_SITE_NODE 1905 #define LOGIN_SITE_FOLDER_CAPTION 1906 #define LOGIN_WORKSPACE_CAPTION 1907 @@ -486,14 +531,36 @@ #define ABOUT_PNG_COPYRIGHT 1933 #define ABOUT_PNG_URL 1934 #define EDITOR_SAVING 1935 +#define ABOUT_TRANSLATIONS_HEADER 1936 +#define ABOUT_TRANSLATIONS_COPYRIGHT 1937 +#define PROGRESS_FILE_LABEL 1938 +#define PROGRESS_PATH_LABEL 1939 +#define PROGRESS_LOCK 1940 +#define PROGRESS_UNLOCK 1941 +#define COLOR_TRUE_DEFAULT_CAPTION 1942 +#define EDITOR_BACKGROUND_COLOR_HINT 1943 +#define EDITOR_BACKGROUND_COLOR_PICK_HINT 1944 +#define CONVERTKEY_SAVE_TITLE 1945 +#define CONVERTKEY_SAVE_FILTER 1946 +#define CONVERTKEY_SAVED 1947 +#define UPDATES_DONATE_LINK 1948 +#define GENERATE_URL_FILE_TITLE 1949 +#define GENERATE_URL_SESSION_TITLE 1950 +#define GENERATE_URL_URL 1951 +#define GENERATE_URL_SCRIPT 1952 +#define GENERATE_URL_CODE 1953 +#define GENERATE_URL_COMMAND 1954 +#define TIPS_MESSAGE 1955 +#define TIPS_TITLE 1956 +#define CUSTOM_COMMAND_HINT_LONG 1957 // 2xxx is reserved for TextsFileZilla.h -#define TRANSLATOR_INFO 3001 -#define MIDDLE_EAST 3002 +#define TRANSLATOR_INFO2 3001 #define BIDI_MODE 3003 #define FLIP_CHILDREN 3004 #define TRANSLATOR_URL 3006 +#define TRANSLATION_COMPLETENESS 3007 #define WIN_VARIABLE_STRINGS 4000 #define WINSCP_COPYRIGHT 4001 diff --git a/source/resource/TextsWin1.rc b/source/resource/TextsWin1.rc index ee8ae62c..6ee01d19 100644 --- a/source/resource/TextsWin1.rc +++ b/source/resource/TextsWin1.rc @@ -2,11 +2,11 @@ STRINGTABLE BEGIN - TRANSLATOR_INFO, "" - MIDDLE_EAST, "" + TRANSLATOR_INFO2, "" BIDI_MODE, "" FLIP_CHILDREN, "" TRANSLATOR_URL, "" + TRANSLATION_COMPLETENESS, "100" WIN_ERROR_STRINGS, "WIN_ERROR" CREATE_LOCAL_DIR_ERROR, "Can't create folder '%s'." @@ -69,14 +69,25 @@ BEGIN SHELL_PATTERN_ERROR, "Error executing command \"%s\" (%s)." PATH_ENV_TOO_LONG, "Cannot add new path to %PATH%, %PATH% is already too long." STACK_TRACE, "Stack trace:" - FILEZILLA_SITE_MANAGER_NOT_FOUND, "FileZilla site manager file not found (%s)." - FILEZILLA_NO_SITES, "No sites found in FileZilla site manager file (%s)." PUTTY_NO_SITES, "No sites found in PuTTY sites registry key (%s)." BATCH_SET_NO_MASK, "No site mask specified." BATCH_SET_NO_SETTINGS, "No site settings specified." BATCH_SET_NOT_CHANGED, "Not changed" BATCH_SET_CHANGED, "Changed" BATCH_SET_SUMMARY, "Found %d sites, Changed %d sites" + KEYGEN_NO_INPUT, "You have to specify input key file." + KEYGEN_NO_ACTION, "No action specified." + KEYGEN_SSH1, "Editing SSH-1 keys is not supported." + KEYGEN_PASSPHRASES_MISMATCH, "Passphrases do not match." + KEYGEN_NO_OUTPUT, "You have to specify output key file." + UPDATE_DOWNLOAD_ERROR, "Error downloading update. Please try again later." + UPDATE_VERIFY_ERROR, "The downloaded update could not be verified. Please try again later." + UPDATE_UNAUTHORIZED, "Your email address is not authorized to automatic updates." + UPDATE_EXPIRED, "Your email address authorization to automatic updates has expired." + UPDATE_TOO_MANY, "Your email address was blocked to automatic updates due to an excessive use." + UPDATE_MISSING_ADDRESS, "To enable automatic updates, please provide us your postal address using a link from your donation receipt." + UPDATE_TOO_LOW, "Your donation is below the limit required to enable automatic updates." + TIPS_NONE, "No tips." WIN_CONFIRMATION_STRINGS, "WIN_CONFIRMATION" CONFIRM_OVERWRITE_SESSION, "Site with name '%s' already exists. Overwrite?" @@ -125,7 +136,7 @@ BEGIN CONFIRM_CREATE_SHORTCUT_WORKSPACE, "Create desktop shortcut for workspace '%s'?" EDIT_SESSION_RECONNECT, "Do you want to reconnect session '%s' to upload edited file '%s'?" CLOSE_SESSIONS_WORKSPACE2, "**Terminate all sessions and close application without saving a workspace?**\n\nPress 'No' to enable automatic saving of the workspace." - IMPORT_SESSIONS2, "**You have stored sessions/sites in %s.\n\nDo you want to import them into WinSCP?**\n\n(You can import them anytime later from Login dialog)|PuTTY SSH client|Filezilla FTP client|%s and %s" + IMPORT_SESSIONS2, "**You have stored sessions/sites in %s.\n\nDo you want to import them into WinSCP?**\n\n(You can import them anytime later from Login dialog)|PuTTY SSH client|FileZilla FTP client|%s and %s" IMPORT_CONFIGURATION, "Importing configuration will overwrite all your preferences and sites.\n\nDo you want to continue?" ALL_BUTTON, "A&ll" YES_TO_ALL_BUTTON, "Yes to A&ll" @@ -134,6 +145,7 @@ BEGIN EDIT_SESSION_REATTACH, "**Do you want to attach edited file '%s' to session '%s'?**\n\nOriginal session used to download file '%s' to editor was closed already." CONFIRM_UNREGISTER_URL, "Do you want to unregister WinSCP from handling all URL addresses?" INTERNAL_EDITOR_LARGE_FILE, "**Try to open large file?**\n\nThe file you are trying to open in an internal editor is too large (%s). WinSCP internal editor is not designed for editing large files. Consider using an external editor capable of editing large files.\n\nYou may try to open the file anyway, but you may run out of memory." + CLOSE_BUTTON, "Close" WIN_INFORMATION_STRINGS, "WIN_INFORMATION" COMPARE_NO_DIFFERENCES, "No differences found." @@ -141,8 +153,8 @@ BEGIN SKIP_BUTTON, "&Skip" SAVE_CHANGES, "File was modified. Save changes?" DOCUMENT_WAIT, "Waiting for the document to close..." - SESSION_SENDTO_HOOK_NAME, "%s (upload using SFTP or FTP)" - SENDTO_HOOK_NAME, "%s (upload using SFTP or FTP)" + SESSION_SENDTO_HOOK_NAME2, "%s (upload using %s)" + SENDTO_HOOK_NAME2, "%s (for upload)" BOOKMARK_INFO_TIP, "Local: %s\nRemote: %s" CUSTOM_COMMAND_TOUCH, "&Touch" CUSTOM_COMMAND_EXECUTE, "&Execute" @@ -179,7 +191,7 @@ BEGIN EXTERNAL_EDITOR_HINT, "Edit (external)|Edit selected file(s) using external editor '%s'" MASK_HINT2, "* matches any number of characters.\n? matches exactly one character.\n[abc] matches one character from the set.\n[a-z] matches one character from the range.\nExample: *.html; photo??.png" PATH_MASK_HINT2, "Mask can be extended with path mask.\nExample: */public_html/*.html" - CUSTOM_COMMAND_PATTERNS_HINT4, "Patterns:\n!! expands to exclamation mark\n! expands to file name\n!& expands to list of selected files (quoted, space-delimited)\n!/ expands to current remote path\n!S expands to current session URL\n!@ expands to current session hostname\n!U expands to current session username\n!P expands to current session password\n!?prompt[\\]?default! expands to user-entered value with given prompt and default (optional \\ avoids escaping)\n!`command` expands to output of local command\n \nLocal command patterns:\n!^! expands to file name from local panel\n \nExample:\ngrep \"!?Pattern:?!\" !&" + CUSTOM_COMMAND_PATTERNS_HINT5, "Patterns:\n!! expands to exclamation mark\n! expands to file name\n!& expands to list of selected files (quoted, space-delimited)\n!/ expands to current remote path\n!S expands to current session URL\n!@ expands to current session hostname\n!U expands to current session username\n!P expands to current session password\n!# expands to current session port number\n!N expands to current session name\n!?prompt[\\]?default! expands to user-entered value with given prompt and default (optional \\ avoids escaping)\n!`command` expands to output of local command\n \nLocal command patterns:\n!^! expands to file name from local panel\n \nExample:\ngrep \"!?Pattern:?!\" !&" CLOSED_ON_QUEUE_EMPTY, "All background transfers were finished. Connection was closed." DIRECTORY_READING_CANCELLED, "Reading of remote directory was cancelled." SYNC_DIR_BROWSE_TOGGLE, "Synchronized browsing was turned %s.|on|off" @@ -221,11 +233,45 @@ BEGIN QUEUE_DONE, "Completed" EDITOR_AUTO_CONFIG2, "**Do you want to use '%s' instead of default internal editor?**\n\nWinSCP has detected that you have custom text editor '%s' associated with text files." MASTER_PASSWORD_RECRYPT_ERRORS, "%s\n\nThere were some errors when encrypting passwords using new master password or decrypting passwords." - REGISTERED_APP_DESC, "WinSCP is an open source free SFTP client and FTP client for Windows. Its main function is the secure file transfer between local and remote computer. Beyond this, WinSCP offers basic file manager functionality." + REGISTERED_APP_DESC2, "WinSCP, a popular free SFTP and FTP client for Windows, copies files between a local and remote computer. It supports also FTPS, SCP and WebDAV. It offers easy to use GUI for all common file operations and a powerful automation with .NET assembly." MESSAGE_LOADING, "Loading..." NEW_VERSION_CLICK, "%s\n\nClick here, to see what is new." DIRECTORY_READING_AND_RESOLVING_PROGRESS, "%d Resolving links and Reading directory" MESSAGE_DISPLAY_ERROR, "Cannot display" + USAGE_SYNTAX_LABEL, "Usage:" + USAGE_SESSION, "Name of site or direct session specification." + USAGE_NEWINSTANCE, "Open session in new window, even if %APP% is running already." + USAGE_EDIT, "Opens remote file in internal editor." + USAGE_SYNCHRONIZE, "Synchronizes content of two directories." + USAGE_KEEPUPTODATE, "Starts Keep remote directory up to date function." + USAGE_DEFAULTS, "Starts operation without showing options dialog." + USAGE_CONSOLE, "Console (text) mode. Default mode, when invoked using %APP%.com." + USAGE_SCRIPT, "Executes batch script file. If the script does not end with 'exit' command, normal interactive mode follows." + USAGE_COMMAND, "Executes list of script commands." + USAGE_PARAMETER, "Passes list of parameters to script." + USAGE_INI, "Path to configuration INI-file." + USAGE_RAWCONFIG, "Configures any settings using raw format as in an INI file." + USAGE_BATCHSETTINGS, "Updates settings of sites matching a mask using a raw format as in an INI file." + USAGE_LOG, "Turns on session logging to file." + USAGE_LOGLEVEL, "Logging level (0..2), add * to enable password logging." + USAGE_XMLLOG, "Turns on XML logging to file." + USAGE_XMLGROUPS, "Group all XML log elements belonging to the same command." + USAGE_PRIVATEKEY, "SSH private key file." + USAGE_HOSTKEY, "Fingerprint of server SSH host key." + USAGE_CLIENTCERT, "TLS/SSL client certificate file." + USAGE_PASSIVE, "Passive mode (FTP protocol only)." + USAGE_IMPLICIT, "Implicit TLS/SSL (FTP protocol only)." + USAGE_EXPLICIT, "Explicit TLS/SSL (FTP protocol only)." + USAGE_TIMEOUT, "Server response timeout." + USAGE_RAWSETTINGS, "Configures any session settings using raw format as in an INI file." + USAGE_UPDATE, "Queries application homepage for updates." + USAGE_HELP, "Prints this usage." + USAGE_KEYGEN, "Converts private key to .ppk format or edits key. Use %s to specify output file. Use %s to change or set passphrase. Use %s to change or set comment." + KEYGEN_PASSPHRASE, "Enter passphrase to save key:" + KEYGEN_PASSPHRASE2, "Re-enter passphrase to verify:" + KEYGEN_SAVED, "Key saved to \"%s\"." + USAGE_CERTIFICATE, "Fingerprint of server TLS/SSL certificate (FTPS protocol only)." + USAGE_SESSIONNAME, "Gives a name to the session" WIN_FORMS_STRINGS, "WIN_FORMS_STRINGS" LOG_NOLOG, "No session log." @@ -276,7 +322,7 @@ BEGIN EDITOR_INVALID_LINE, "Invalid line number." LINK_EDIT_CAPTION, "Edit link/shortcut" LINK_ADD_CAPTION, "Add link/shortcut" - STATUS_DISCONNECTED, "Disconnected." + STATUS_NOT_CONNECTED, "Not connected." STATUS_CONNECTING, "Connecting..." OPENEDSESSION_HINT, "Select session '%s'" ADD_BOOKMARK_CAPTION, "Add Location Profile" @@ -456,7 +502,7 @@ BEGIN PROGRESS_UPLOAD, "Uploading" PROGRESS_DOWNLOAD, "Downloading" PROGRESS_IN_QUEUE, "%d in Queue" - PUTTY_PATTERNS_HINT, "Patterns:\n!! expands to exclamation mark\n!/ expands to current remote path\n!@ expands to current session hostname\n!U expands to current session username\n!P expands to current session password\n!?prompt[\\]?default! expands to user-entered value with given prompt and default (optional \\ avoids escaping)\n!`command` expands to output of local command" + PUTTY_PATTERNS_HINT2, "Patterns:\n!! expands to exclamation mark\n!/ expands to current remote path\n!@ expands to current session hostname\n!U expands to current session username\n!P expands to current session password\n!# expands to current session port number\n!N expands to current session name\n!?prompt[\\]?default! expands to user-entered value with given prompt and default (optional \\ avoids escaping)\n!`command` expands to output of local command" LOGIN_NEW_SITE_NODE, "New Site" LOGIN_SITE_FOLDER_CAPTION, "Site Folder" LOGIN_WORKSPACE_CAPTION, "Workspace" @@ -476,7 +522,7 @@ BEGIN ABOUT_THIRDPARTY_LICENSE, "Display license" ABOUT_TOOLBAR2000, "Toolbar2000 library %s" ABOUT_TOOLBAR2000_COPYRIGHT, "Copyright © 1998-2005 Jordan Russell" - ABOUT_TOOLBAR2000_URL, "http://www.jrsoftware.org/tb2kdl.php" + ABOUT_TOOLBAR2000_URL, "https://jrsoftware.org/tb2kdl.php" ABOUT_TBX, "TBX library %s" ABOUT_TBX_COPYRIGHT, "Copyright © 2001-2005 Alex A. Denisov and contributors" ABOUT_TBX_URL, "https://github.com/plashenkov/TBX" @@ -486,22 +532,44 @@ BEGIN ABOUT_JCL_URL, "http://jcl.delphi-jedi.org/" ABOUT_PNG, "PngComponents 1.1" ABOUT_PNG_COPYRIGHT, "Copyright © Uwe Raabe and Martijn Saly" - ABOUT_PNG_URL, "http://cc.embarcadero.com/item/26127" + ABOUT_PNG_URL, "https://cc.embarcadero.com/item/26127" EDITOR_SAVING, "Saving..." + ABOUT_TRANSLATIONS_HEADER, "{language} translation:" + ABOUT_TRANSLATIONS_COPYRIGHT, "Copyright %s" + PROGRESS_FILE_LABEL, "File:" + PROGRESS_PATH_LABEL, "Path:" + PROGRESS_LOCK, "Locking" + PROGRESS_UNLOCK, "Unlocking" + COLOR_TRUE_DEFAULT_CAPTION, "&Default" + EDITOR_BACKGROUND_COLOR_HINT, "Reset editor color to default" + EDITOR_BACKGROUND_COLOR_PICK_HINT, "Choose any editor color" + CONVERTKEY_SAVE_TITLE, "Save converted private key" + CONVERTKEY_SAVE_FILTER, "PuTTY Private Key Files (*.ppk)|*.ppk|All files (*.*)|*.*" + CONVERTKEY_SAVED, "Private key was converted and saved to '%s'." + UPDATES_DONATE_LINK, "Please, donate to enable automatic updates" + GENERATE_URL_FILE_TITLE, "Generate file URL" + GENERATE_URL_SESSION_TITLE, "Generate session URL/code" + GENERATE_URL_URL, "URL" + GENERATE_URL_SCRIPT, "Script" + GENERATE_URL_CODE, "Code" + GENERATE_URL_COMMAND, "Your command %d" + TIPS_MESSAGE, "Tip %d of %d" + TIPS_TITLE, "Tips" + CUSTOM_COMMAND_HINT_LONG, "Execute custom command '%s' as '%s'" WIN_VARIABLE_STRINGS, "WIN_VARIABLE" WINSCP_COPYRIGHT, "Copyright © 2000-2015 Martin Prikryl" - HOMEPAGE_URL, "http://winscp.net/" - HISTORY_URL, "http://winscp.net/eng/docs/history" - FORUM_URL, "http://winscp.net/forum/" - UPDATES_URL, "http://winscp.net/updates.php" - DOWNLOAD_URL, "http://winscp.net/eng/download.php" - DONATE_URL, "http://winscp.net/eng/donate.php" - DOCUMENTATION_URL2, "http://winscp.net/eng/docs/?ver=%s&lang=%s" - DOCUMENTATION_KEYWORD_URL2, "http://winscp.net/eng/docs/%s?ver=%s&lang=%s" - LOCALES_URL, "http://winscp.net/eng/translations.php" - DOCUMENTATION_SEARCH_URL2, "http://winscp.net/eng/docs/search.php?q=%s&ver=%s&lang=%s" - ERROR_REPORT_URL, "http://winscp.net/forum/posting.php?mode=newtopic&f=2&report=%s&ver=%s&lang=%s" - UPGRADE_URL, "http://winscp.net/eng/upgrade.php" + HOMEPAGE_URL, "https://winscp.net/" + HISTORY_URL, "https://winscp.net/eng/docs/history" + FORUM_URL, "https://winscp.net/forum/" + UPDATES_URL, "https://winscp.net/updates.php" + DOWNLOAD_URL, "https://winscp.net/eng/download.php" + DONATE_URL, "https://winscp.net/eng/donate.php" + DOCUMENTATION_URL2, "https://winscp.net/eng/docs/?ver=%s&lang=%s" + DOCUMENTATION_KEYWORD_URL2, "https://winscp.net/eng/docs/%s?ver=%s&lang=%s" + LOCALES_URL, "https://winscp.net/eng/translations.php" + DOCUMENTATION_SEARCH_URL2, "https://winscp.net/eng/docs/search.php?q=%s&ver=%s&lang=%s" + ERROR_REPORT_URL, "https://winscp.net/forum/posting.php?mode=newtopic&report=%s&ver=%s&lang=%s" + UPGRADE_URL, "https://winscp.net/eng/upgrade.php" END diff --git a/source/resource/TextsWin2.rc b/source/resource/TextsWin2.rc index 46392e8e..281e6fe3 100644 --- a/source/resource/TextsWin2.rc +++ b/source/resource/TextsWin2.rc @@ -13,56 +13,4 @@ BEGIN "Hint: To copy files hold down Ctrl key while dragging.\n" "\n" "Do you still want to move the files?" - USAGE10, -"WinSCP, %s\n" -"%s\n" -"\n" -"Usage:\n" -"G:%APP% site|workspace|folder\n" -"G:%APP% (sftp|scp|ftp|http[s])://[user[:password]@]host[:port][/path/[file]]\n" -"G:%APP% [mysession] /newinstance\n" -"G:%APP% [mysession] /edit \n" -"G:%APP% [mysession] /synchronize [local_dir] [remote_dir] [/defaults]\n" -"G:%APP% [mysession] /keepuptodate [local_dir] [remote_dir] [/defaults]\n" -"G:%APP% [mysession] [/privatekey=] [/hostkey=]\n" -"G:%APP% [mysession] [/passive[=on|off]] [/implicit|explicit]\n" -"G:%APP% [mysession] [/timeout=]\n" -"G:%APP% [mysession] [/rawsettings setting1=value1 setting2=value2 ...]\n" -"G:%APP% [/console] [/script=file] [/command command1...] [/parameter param1...]\n" -"C:%APP% [/script=file] [/command command1...] [/parameter param1...]\n" -"B:%APP% [/ini=] [/log=] [/xmllog= [/xmlgroups]]\n" -"B:%APP% [/rawconfig config1=value1 config2=value2 ...]\n" -"B:%APP% /batchsettings setting1=value1 setting2=value2 ...\n" -"G:%APP% /update\n" -"B:%APP% /help\n" -"\n" -"G: session Name of site or direct session specification.\n" -"G: /newinstance Open session in new window, even if %APP% is running already.\n" -"G: /edit Opens remote file in internal editor.\n" -"G: /synchronize Synchronizes content of two directories.\n" -"G: /keepuptodate Starts Keep remote directory up to date function.\n" -"G: /defaults Starts operation without showing options dialog.\n" -"G: /console Console (text) mode. Default mode, when invoked\n" -"G: using %APP%.com.\n" -"B: /script= Executes batch script file. If the script does not end with\n" -"B: 'exit' command, normal interactive mode follows.\n" -"B: /command Executes list of script commands.\n" -"B: /parameter Passes list of parameters to script.\n" -"B: /ini= Path to configuration INI-file.\n" -"B: /rawconfig Configures any settings using raw format as in an INI file.\n" -"B: /batchsettings Updates settings of sites matching a mask using a raw format\n" -"B: as in an INI file.\n" -"B: /log= Turns on session logging to file.\n" -"B: /xmllog= Turns on XML logging to file.\n" -"B: /xmlgroups Group all XML log elements belonging to the same command.\n" -"G: /privatekey= Private key file.\n" -"G: /timeout= Server response timeout.\n" -"G: /hostkey= Fingerprint of server host key.\n" -"G: /passive= Passive mode (FTP protocol only).\n" -"G: /rawsettings Configures any session settings using raw format\n" -"G: as in an INI file.\n" -"G: /implicit Implicit TLS/SSL (FTPS protocol only).\n" -"G: /explicit Explicit TLS/SSL (FTPS protocol only).\n" -"G: /update Queries application homepage for updates.\n" -"B: /help Prints this usage.\n" END diff --git a/source/resource/Workspace.ico b/source/resource/Workspace.ico index 45faa363..80f43a17 100644 Binary files a/source/resource/Workspace.ico and b/source/resource/Workspace.ico differ diff --git a/source/tb2k.cbproj b/source/tb2k.cbproj index 7548c179..3c64cbff 100644 --- a/source/tb2k.cbproj +++ b/source/tb2k.cbproj @@ -18,11 +18,6 @@ Base true - - true - Base - true - true Base @@ -34,44 +29,30 @@ true true - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>wchar_t true true + $(INTERM_PATH)\$(Platform)\$(Config) JPHNE true true true true Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Vcl;$(DCC_Namespace) + MPEXCLUDE;$(Define);$(Defines) + $(INTERM_PATH)\$(Platform)\$(Config) Toolbar2000 Components (Jordan Russell) true true - packages\;packages\tb2k\;$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(ILINK_LibraryPath) + packages\;packages\tb2k\;$(ILINK_LibraryPath) packages\;packages\tb2k\;$(BDS)\include;$(BDS)\include\windows\vcl;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) true bpl CppPackage @@ -81,12 +62,8 @@ Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) - MPEXCLUDE;$(Define);$(Defines) true - - MPEXCLUDE;$(Define);$(Defines) - true true @@ -95,37 +72,17 @@ true true None - $(INTERM_PATH)\Debug true DEBUG false - $(INTERM_PATH)\Debug + _DEBUG;$(Defines) true - $(BDS)\lib\debug;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - true - - - _DEBUG;$(Defines) - - $(INTERM_PATH)\Release - $(INTERM_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - true - - NDEBUG;$(Defines) + None diff --git a/source/tbxp.cbproj b/source/tbxp.cbproj index cb85eb9f..285c4ca9 100644 --- a/source/tbxp.cbproj +++ b/source/tbxp.cbproj @@ -18,49 +18,21 @@ Base true - - true - Base - true - true Base true - - true - Cfg_1 - true - true - - - true - Cfg_1 - true - true - true Base true - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - <_TCHARMapping>wchar_t true true + $(INTERM_PATH)\$(Platform)\$(Config) JPHNE true true @@ -68,11 +40,14 @@ true Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Vcl;$(DCC_Namespace) packages\tbx;packages\tb2k;$(DCC_UnitSearchPath) + MPEXCLUDE;TBX_UNICODE;$(Defines) + $(INTERM_PATH)\$(Platform)\$(Config) Toolbar2000 -- TBX Extensions (Alex Denisov) true true packages\tbx\;packages\tb2k;$(BDS)\lib\obj;$(ILINK_LibraryPath) packages\tbx\;packages\tb2k;$(BDS)\include;$(BDS)\include\windows\vcl;$(IncludePath) + $(INTERM_PATH)\$(Platform)\$(Config) true bpl CppPackage @@ -83,12 +58,8 @@ Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) - MPEXCLUDE;TBX_UNICODE;$(Defines) true - - MPEXCLUDE;TBX_UNICODE;$(Defines) - true true @@ -97,45 +68,21 @@ true true None - $(INTERM_PATH)\Debug true DEBUG false - $(INTERM_PATH)\Debug + _DEBUG;$(Defines) true - $(BDS)\lib\debug;$(ILINK_LibraryPath) - $(INTERM_PATH)\Debug Full true - - _DEBUG;$(Defines) - true - - - _DEBUG;$(Defines) - - $(INTERM_PATH)\Release - $(INTERM_PATH)\Release - $(BDS)\lib\release;$(ILINK_LibraryPath) - $(INTERM_PATH)\Release - None - - - NDEBUG;$(Defines) - true - - NDEBUG;$(Defines) + None 11 - - - 9 - 5 17 @@ -144,10 +91,6 @@ 6 38 - - - 5 - 41 8 diff --git a/source/windows/ConsoleRunner.cpp b/source/windows/ConsoleRunner.cpp index 9aada84f..f57169eb 100644 --- a/source/windows/ConsoleRunner.cpp +++ b/source/windows/ConsoleRunner.cpp @@ -30,6 +30,15 @@ enum { RESULT_SUCCESS = 0, RESULT_ANY_ERROR = 1 }; //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- +void TrimNewLine(UnicodeString & Str) +{ + while (!Str.IsEmpty() && + ((Str[Str.Length()] == L'\n') || (Str[Str.Length()] == L'\r'))) + { + Str.SetLength(Str.Length() - 1); + } +} +//--------------------------------------------------------------------------- class TConsole { public: @@ -99,7 +108,7 @@ std::unique_ptr TOwnConsole::FSection(new TCriticalSection()); //--------------------------------------------------------------------------- __fastcall TOwnConsole::TOwnConsole() { - assert(FInstance == NULL); + DebugAssert(FInstance == NULL); FInstance = this; AllocConsole(); @@ -117,7 +126,7 @@ __fastcall TOwnConsole::TOwnConsole() if (WinConfiguration->MinimizeToTray) { FConsoleWindow = GetConsoleWindow(); - if (ALWAYS_TRUE(FConsoleWindow != NULL)) + if (DebugAlwaysTrue(FConsoleWindow != NULL)) { FWindowStateTimer = new TTimer(Application); FWindowStateTimer->OnTimer = WindowStateTimer; @@ -139,7 +148,7 @@ __fastcall TOwnConsole::~TOwnConsole() FreeConsole(); - assert(FInstance == this); + DebugAssert(FInstance == this); FInstance = NULL; } //--------------------------------------------------------------------------- @@ -150,7 +159,7 @@ TOwnConsole * __fastcall TOwnConsole::Instance() //--------------------------------------------------------------------------- void __fastcall TOwnConsole::WindowStateTimer(TObject * /*Sender*/) { - assert(FConsoleWindow != NULL); + DebugAssert(FConsoleWindow != NULL); WINDOWPLACEMENT Placement; memset(&Placement, 0, sizeof(Placement)); Placement.length = sizeof(Placement); @@ -175,7 +184,7 @@ void __fastcall TOwnConsole::WindowStateTimer(TObject * /*Sender*/) } else { - FAIL; + DebugFail(); } } //--------------------------------------------------------------------------- @@ -185,7 +194,7 @@ void __fastcall TOwnConsole::ProcessMessages() // (i.e. we need to monitor window state and eventually process tray icon messages) if (FWindowStateTimer != NULL) { - assert(WinConfiguration->MinimizeToTray); + DebugAssert(WinConfiguration->MinimizeToTray); Application->ProcessMessages(); } @@ -193,7 +202,7 @@ void __fastcall TOwnConsole::ProcessMessages() //--------------------------------------------------------------------------- void __fastcall TOwnConsole::TrayIconClick(TObject * /*Sender*/) { - assert(FConsoleWindow != NULL); + DebugAssert(FConsoleWindow != NULL); SetForegroundWindow(FConsoleWindow); ShowWindow(FConsoleWindow, SW_RESTORE); } @@ -210,8 +219,8 @@ void __fastcall TOwnConsole::BreakInput() unsigned long Written; // this assertion occasionally fails (when console is being exited) - CHECK(WriteConsoleInput(FInput, &InputRecord, 1, &Written)); - assert(Written == 1); + DebugCheck(WriteConsoleInput(FInput, &InputRecord, 1, &Written)); + DebugAssert(Written == 1); CancelInput(); } @@ -269,9 +278,9 @@ void __fastcall TOwnConsole::Print(UnicodeString Str, bool FromBeginning) } unsigned long Written; bool Result = WriteConsole(FOutput, Str.c_str(), Str.Length(), &Written, NULL); - assert(Result); - USEDPARAM(Result); - assert(Str.Length() == static_cast(Written)); + DebugAssert(Result); + DebugUsedParam(Result); + DebugAssert(Str.Length() == static_cast(Written)); ProcessMessages(); } //--------------------------------------------------------------------------- @@ -296,8 +305,9 @@ class TConsoleInputThread : public TSimpleThread unsigned long Read; FStr.SetLength(10240); FResult = ReadConsole(FInput, FStr.c_str(), FStr.Length(), &Read, NULL); - assert(FResult); + DebugAssert(FResult); FStr.SetLength(Read); + TrimNewLine(FStr); } virtual void __fastcall Terminate() @@ -331,17 +341,35 @@ bool __fastcall TOwnConsole::Input(UnicodeString & Str, bool Echo, unsigned int try { { + const int FirstKey = VK_LBUTTON; // 0x01 + const int LastKey = VK_OEM_CLEAR; // 0xFE + + // reset key state + for (int Key = FirstKey; Key <= LastKey; Key++) + { + GetAsyncKeyState(Key); + } + TConsoleInputThread InputThread(FInput, Str, Result); InputThread.Start(); - double Start = Now(); - double End = Start + double(Timer)/MSecsPerDay; + double TimerD = double(Timer)/MSecsPerDay; + double End = Now() + TimerD; while (!InputThread.IsFinished() && ((Timer == 0) || (double(Now()) < End))) { ProcessMessages(); InputThread.WaitFor(50); + + for (int Key = FirstKey; Key <= LastKey; Key++) + { + if ((GetAsyncKeyState(Key) & 0x01) != 0) + { + End = Now() + TimerD; + // Finishing the loop nevertheless to reset state of all keys + } + } } } @@ -491,7 +519,7 @@ bool __fastcall TOwnConsole::WantsProgress() //--------------------------------------------------------------------------- void __fastcall TOwnConsole::Progress(const TScriptProgress & /*Progress*/) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- class TExternalConsole : public TConsole @@ -547,14 +575,9 @@ __fastcall TExternalConsole::TExternalConsole( Name = FORMAT(L"%s%s", (CONSOLE_MAPPING, (Instance))); CheckHandle(FFileMapping = OpenFileMapping(FILE_MAP_ALL_ACCESS, false, Name.c_str()), L"File mapping"); - if ((FRequestEvent == NULL) || (FResponseEvent == NULL) || (FFileMapping == NULL)) - { - throw Exception(LoadStr(EXTERNAL_CONSOLE_INIT_ERROR)); - } - HANDLE Job = OpenJobObject(JOB_OBJECT_ASSIGN_PROCESS, FALSE, FORMAT(L"%s%s", (CONSOLE_JOB, Instance)).c_str()); - if (ALWAYS_TRUE(Job != NULL)) + if (DebugAlwaysTrue(Job != NULL)) { AssignProcessToJobObject(Job, GetCurrentProcess()); // winscp.com/winscp.dll keeps the only reference to the job. @@ -694,6 +717,7 @@ bool __fastcall TExternalConsole::Input(UnicodeString & Str, bool Echo, unsigned { Result = CommStruct->InputEvent.Result; Str = CommStruct->InputEvent.Str; + TrimNewLine(Str); } __finally { @@ -711,7 +735,7 @@ int __fastcall TExternalConsole::Choice(UnicodeString Options, int Cancel, int B { CommStruct->Event = TConsoleCommStruct::CHOICE; - assert(Options.Length() < static_cast(LENOF(CommStruct->ChoiceEvent.Options))); + DebugAssert(Options.Length() < static_cast(LENOF(CommStruct->ChoiceEvent.Options))); wcscpy(CommStruct->ChoiceEvent.Options, Options.c_str()); CommStruct->ChoiceEvent.Cancel = Cancel; CommStruct->ChoiceEvent.Break = Break; @@ -843,7 +867,7 @@ void __fastcall TExternalConsole::Progress(const TScriptProgress & Progress) break; default: - FAIL; + DebugFail(); } switch (Progress.Side) @@ -857,7 +881,7 @@ void __fastcall TExternalConsole::Progress(const TScriptProgress & Progress) break; default: - FAIL; + DebugFail(); } wcsncpy(ProgressEvent.FileName, Progress.FileName.c_str(), LENOF(ProgressEvent.FileName)); @@ -961,13 +985,13 @@ bool __fastcall TNullConsole::NoInteractiveInput() //--------------------------------------------------------------------------- void __fastcall TNullConsole::WaitBeforeExit() { - FAIL; + DebugFail(); // noop } //--------------------------------------------------------------------------- bool __fastcall TNullConsole::CommandLineOnly() { - FAIL; + DebugFail(); return false; } //--------------------------------------------------------------------------- @@ -978,7 +1002,7 @@ bool __fastcall TNullConsole::WantsProgress() //--------------------------------------------------------------------------- void __fastcall TNullConsole::Progress(const TScriptProgress & /*Progress*/) { - FAIL; + DebugFail(); } //--------------------------------------------------------------------------- static UnicodeString TimestampVarName(L"TIMESTAMP"); @@ -992,6 +1016,7 @@ class TConsoleRunner int __fastcall Run(const UnicodeString Session, TOptions * Options, TStrings * ScriptCommands, TStrings * ScriptParameters); void __fastcall ShowException(Exception * E); + inline void __fastcall PrintMessage(const UnicodeString & Str); protected: bool __fastcall DoInput(UnicodeString & Str, bool Echo, unsigned int Timer, @@ -1000,7 +1025,6 @@ class TConsoleRunner bool Echo, bool Interactive); inline void __fastcall Print(const UnicodeString & Str, bool FromBeginning = false); inline void __fastcall PrintLine(const UnicodeString & Str); - inline void __fastcall PrintMessage(const UnicodeString & Str); void __fastcall UpdateTitle(); inline void __fastcall NotifyAbort(); inline bool __fastcall Aborted(bool AllowCompleteAbort = true); @@ -1067,18 +1091,19 @@ TConsoleRunner::TConsoleRunner(TConsole * Console) : Timer->OnTimer = TimerTimer; Timer->Interval = MSecsPerSec; Timer->Enabled = true; - assert(WinConfiguration->OnMasterPasswordPrompt == NULL); + DebugAssert(WinConfiguration->OnMasterPasswordPrompt == NULL); WinConfiguration->OnMasterPasswordPrompt = MasterPasswordPrompt; - assert(Configuration->OnChange == NULL); + DebugAssert(Configuration->OnChange == NULL); FExternalTimestampVar = !GetEnvironmentVariable(TimestampVarName).IsEmpty(); Configuration->OnChange = ConfigurationChange; + Configuration->Scripting = true; } //--------------------------------------------------------------------------- TConsoleRunner::~TConsoleRunner() { - assert(WinConfiguration->OnMasterPasswordPrompt == MasterPasswordPrompt); + DebugAssert(WinConfiguration->OnMasterPasswordPrompt == MasterPasswordPrompt); WinConfiguration->OnMasterPasswordPrompt = NULL; - assert(Configuration->OnChange == ConfigurationChange); + DebugAssert(Configuration->OnChange == ConfigurationChange); Configuration->OnChange = NULL; delete Timer; } @@ -1131,9 +1156,7 @@ void __fastcall TConsoleRunner::PrintLine(const UnicodeString & Str) //--------------------------------------------------------------------------- void __fastcall TConsoleRunner::PrintMessage(const UnicodeString & Str) { - UnicodeString Line = - ReplaceStr(ReplaceStr(Str.TrimRight(), L"\n\n", L"\n"), - L"\n \n", L"\n"); + UnicodeString Line = RemoveEmptyLines(Str); if (FScript != NULL) { @@ -1278,6 +1301,14 @@ void __fastcall TConsoleRunner::ScriptTerminalQueryUser(TObject * /*Sender*/, } NoBatchA = Params->NoBatchAnswers; + + if (FLAGSET(Params->Params, qpWaitInBatch)) + { + DebugAssert(Timeout == 0); + Timeout = InputTimeout(); + // See a duplicate AbortAnswer call below + TimeoutA = AbortAnswer(Answers & ~NoBatchA); + } } AQuery = UnformatMessage(AQuery); @@ -1311,9 +1342,9 @@ void __fastcall TConsoleRunner::ScriptTerminalQueryUser(TObject * /*Sender*/, } } - USEDPARAM(AAnswers); - assert(AAnswers == 0); - assert(!Buttons.empty()); + DebugUsedParam(AAnswers); + DebugAssert(AAnswers == 0); + DebugAssert(!Buttons.empty()); if ((Params != NULL) && (Params->Aliases != NULL)) { @@ -1358,10 +1389,11 @@ void __fastcall TConsoleRunner::ScriptTerminalQueryUser(TObject * /*Sender*/, } } - assert(Accels.Length() == static_cast(Buttons.size())); + DebugAssert(Accels.Length() == static_cast(Buttons.size())); int NumberAccel = 0; unsigned int CancelA = CancelAnswer(Answers); int CancelIndex; + // AbortAnswer call duplicated in qpWaitInBatch branch above unsigned int AbortA = AbortAnswer(Answers & ~NoBatchA); int AbortIndex; unsigned int ContinueA = ContinueAnswer(Answers & ~NoBatchA); @@ -1403,7 +1435,7 @@ void __fastcall TConsoleRunner::ScriptTerminalQueryUser(TObject * /*Sender*/, if (Accels[Index + 1] == L' ') { NumberAccel++; - assert(NumberAccel <= 9); + DebugAssert(NumberAccel <= 9); Caption = FORMAT(L"&%d%s", (NumberAccel, Caption)); Accels[Index + 1] = Caption[2]; } @@ -1426,7 +1458,7 @@ void __fastcall TConsoleRunner::ScriptTerminalQueryUser(TObject * /*Sender*/, } } - assert(Accels.Pos(L' ') == 0); + DebugAssert(Accels.Pos(L' ') == 0); bool Timeouting = (Timeout > 0); bool FirstOutput = true; @@ -1453,7 +1485,7 @@ void __fastcall TConsoleRunner::ScriptTerminalQueryUser(TObject * /*Sender*/, UnicodeString Caption = Captions[i]; int P = Caption.Pos(L'&'); - if (ALWAYS_TRUE(P >= 0)) + if (DebugAlwaysTrue(P >= 0)) { Caption[P] = L'('; Caption.Insert(L")", P + 2); @@ -1461,7 +1493,7 @@ void __fastcall TConsoleRunner::ScriptTerminalQueryUser(TObject * /*Sender*/, if (i + 1 == static_cast(TimeoutIndex)) { - assert(Timeouting); + DebugAssert(Timeouting); Caption = FMTLOAD(TIMEOUT_BUTTON, (Caption, int(Timeout / MSecsPerSec))); } @@ -1507,7 +1539,7 @@ void __fastcall TConsoleRunner::ScriptTerminalQueryUser(TObject * /*Sender*/, { if (Timeouting) { - assert(Timeout >= MSecsPerSec); + DebugAssert(Timeout >= MSecsPerSec); Timeout -= ActualTimer; Retry = true; } @@ -1517,7 +1549,7 @@ void __fastcall TConsoleRunner::ScriptTerminalQueryUser(TObject * /*Sender*/, // where Timer is less than MSecsPerSec if (Timer > 0) { - assert((Params != NULL) && (Params->TimerEvent != NULL)); + DebugAssert((Params != NULL) && (Params->TimerEvent != NULL)); if ((Params != NULL) && (Params->TimerEvent != NULL)) { unsigned int AAnswer = 0; @@ -1540,10 +1572,10 @@ void __fastcall TConsoleRunner::ScriptTerminalQueryUser(TObject * /*Sender*/, if (Answer == 0) { - assert((AnswerIndex >= 1) && (AnswerIndex <= Accels.Length())); + DebugAssert((AnswerIndex >= 1) && (AnswerIndex <= Accels.Length())); UnicodeString AnswerCaption = Captions[AnswerIndex - 1]; int P = AnswerCaption.Pos(L"&"); - assert(P >= 0); + DebugAssert(P >= 0); AnswerCaption.Delete(P, 1); PrintLine(AnswerCaption); FirstOutput = true; @@ -1746,15 +1778,7 @@ bool __fastcall TConsoleRunner::DoInput(UnicodeString & Str, bool Echo, Result = FConsole->Input(Str, Echo, Timeout); } - if (Result) - { - while (!Str.IsEmpty() && - ((Str[Str.Length()] == L'\n') || (Str[Str.Length()] == L'\r'))) - { - Str.SetLength(Str.Length() - 1); - } - } - else + if (!Result) { NotifyAbort(); } @@ -1785,7 +1809,7 @@ void __fastcall TConsoleRunner::MasterPasswordPrompt() //--------------------------------------------------------------------------- UnicodeString TConsoleRunner::ExpandCommand(UnicodeString Command, TStrings * ScriptParameters) { - assert(ScriptParameters != NULL); + DebugAssert(ScriptParameters != NULL); for (int Index = 0; Index < ScriptParameters->Count; Index++) { Command = ReplaceStr(Command, FORMAT(L"%%%d%%", (Index+1)), @@ -1981,7 +2005,7 @@ void __fastcall TConsoleRunner::ConfigurationChange(TObject * /*Sender*/) //--------------------------------------------------------------------------- void __fastcall LoadScriptFromFile(UnicodeString FileName, TStrings * Lines) { - Lines->LoadFromFile(FileName); + Lines->LoadFromFile(FileName, TEncoding::UTF8); } //--------------------------------------------------------------------------- void __fastcall ConsolePrintLine(TConsole * Console, const UnicodeString & Str) @@ -1989,54 +2013,166 @@ void __fastcall ConsolePrintLine(TConsole * Console, const UnicodeString & Str) Console->Print(Str + L"\n"); } //--------------------------------------------------------------------------- +static UnicodeString __fastcall GetExeBaseName() +{ + return ExtractFileBaseName(Application->ExeName); +} +//--------------------------------------------------------------------------- +static void __fastcall PrintUsageSyntax(TConsole * Console, const UnicodeString & Str) +{ + ConsolePrintLine(Console, GetExeBaseName() + L" " + Str); +} +//--------------------------------------------------------------------------- +typedef std::vector > TSwitchesUsage; +//--------------------------------------------------------------------------- +static void __fastcall RegisterSwitch( + TSwitchesUsage & SwitchesUsage, const UnicodeString & Name, const UnicodeString & Desc) +{ + SwitchesUsage.push_back(std::make_pair(LowerCase(Name), Desc)); +} +//--------------------------------------------------------------------------- +static void __fastcall RegisterSwitch( + TSwitchesUsage & SwitchesUsage, const UnicodeString & Name, int DescID) +{ + UnicodeString Desc = LoadStr(DescID); + Desc = ReplaceText(Desc, L"%APP%", GetExeBaseName()); + RegisterSwitch(SwitchesUsage, Name, Desc); +} +//--------------------------------------------------------------------------- void __fastcall Usage(TConsole * Console) { - UnicodeString Usage = LoadStr(USAGE10, 10240); - UnicodeString ExeBaseName = ExtractFileBaseName(Application->ExeName); - Usage = ReplaceText(Usage, L"%APP%", ExeBaseName); + ConsolePrintLine(Console, FORMAT(L"WinSCP, %s", (Configuration->VersionStr))); UnicodeString Copyright = ReplaceText(LoadStr(WINSCP_COPYRIGHT), L"©", L"(c)"); - Usage = FORMAT(Usage, (Configuration->VersionStr, Copyright)); - std::unique_ptr Lines(TextToStringList(Usage)); - for (int Index = 0; Index < Lines->Count; Index++) - { - bool Print = true; - UnicodeString Line = Lines->Strings[Index]; - if ((Line.Length() >= 2) && (Line[2] == L':')) + ConsolePrintLine(Console, Copyright); + ConsolePrintLine(Console, L""); + ConsolePrintLine(Console, LoadStr(USAGE_SYNTAX_LABEL)); + + if (!Console->CommandLineOnly()) + { + PrintUsageSyntax(Console, L"site|workspace|folder"); + PrintUsageSyntax(Console, L"(sftp|scp|ftp[es]|http[s])://[user[:password]@]host[:port][/path/[file]]"); + PrintUsageSyntax(Console, FORMAT(L"[mysession] /%s=", (LowerCase(SESSIONNAME_SWICH)))); + PrintUsageSyntax(Console, L"[mysession] /newinstance"); + PrintUsageSyntax(Console, L"[mysession] /edit "); + PrintUsageSyntax(Console, L"[mysession] /synchronize [local_dir] [remote_dir] [/defaults]"); + PrintUsageSyntax(Console, L"[mysession] /keepuptodate [local_dir] [remote_dir] [/defaults]"); + PrintUsageSyntax(Console, L"[mysession] [/privatekey=] [/hostkey=]"); + PrintUsageSyntax(Console, L"[mysession] [/clientcert=] [/certificate=]"); + PrintUsageSyntax(Console, L"[mysession] [/passive[=on|off]] [/implicit|explicit]"); + PrintUsageSyntax(Console, L"[mysession] [/timeout=]"); + PrintUsageSyntax(Console, L"[mysession] [/rawsettings setting1=value1 setting2=value2 ...]"); + } + PrintUsageSyntax(Console, + UnicodeString(!Console->CommandLineOnly() ? L"[/console] " : L"") + + FORMAT(L"[/script=file] [/%s cmd1...] [/parameter // param1...]", (LowerCase(COMMAND_SWITCH)))); + PrintUsageSyntax(Console, L"[/log= [/loglevel=]] [/xmllog= [/xmlgroups]]"); + PrintUsageSyntax(Console, L"[/ini=]"); + PrintUsageSyntax(Console, L"[/rawconfig config1=value1 config2=value2 ...]"); + PrintUsageSyntax(Console, L"/batchsettings setting1=value1 setting2=value2 ..."); + PrintUsageSyntax(Console, FORMAT(L"/%s keyfile /%s=output [/%s] [/%s=comment]", + (LowerCase(KEYGEN_SWITCH), LowerCase(KEYGEN_OUTPUT_SWITCH), LowerCase(KEYGEN_CHANGE_PASSPHRASE_SWITCH), LowerCase(KEYGEN_COMMENT_SWITCH)))); + if (!Console->CommandLineOnly()) + { + PrintUsageSyntax(Console, L"/update"); + } + PrintUsageSyntax(Console, L"/help"); + + ConsolePrintLine(Console, L""); + + TSwitchesUsage SwitchesUsage; + if (!Console->CommandLineOnly()) + { + RegisterSwitch(SwitchesUsage, L"session", USAGE_SESSION); + RegisterSwitch(SwitchesUsage, TProgramParams::FormatSwitch(SESSIONNAME_SWICH) + L"=", USAGE_SESSIONNAME); + RegisterSwitch(SwitchesUsage, L"/newinstance", USAGE_NEWINSTANCE); + RegisterSwitch(SwitchesUsage, L"/edit", USAGE_EDIT); + RegisterSwitch(SwitchesUsage, L"/synchronize", USAGE_SYNCHRONIZE); + RegisterSwitch(SwitchesUsage, L"/keepuptodate", USAGE_KEEPUPTODATE); + RegisterSwitch(SwitchesUsage, L"/defaults", USAGE_DEFAULTS); + RegisterSwitch(SwitchesUsage, L"/privatekey=", USAGE_PRIVATEKEY); + RegisterSwitch(SwitchesUsage, L"/hostkey=", USAGE_HOSTKEY); + RegisterSwitch(SwitchesUsage, L"/clientcert=", USAGE_CLIENTCERT); + RegisterSwitch(SwitchesUsage, L"/certificate=", USAGE_CERTIFICATE); + RegisterSwitch(SwitchesUsage, L"/passive=", USAGE_PASSIVE); + RegisterSwitch(SwitchesUsage, L"/implicit", USAGE_IMPLICIT); + RegisterSwitch(SwitchesUsage, L"/explicit", USAGE_EXPLICIT); + RegisterSwitch(SwitchesUsage, L"/timeout=", USAGE_TIMEOUT); + RegisterSwitch(SwitchesUsage, L"/rawsettings", USAGE_RAWSETTINGS); + RegisterSwitch(SwitchesUsage, L"/console", USAGE_CONSOLE); + } + RegisterSwitch(SwitchesUsage, L"/script=", USAGE_SCRIPT); + RegisterSwitch(SwitchesUsage, TProgramParams::FormatSwitch(COMMAND_SWITCH), USAGE_COMMAND); + RegisterSwitch(SwitchesUsage, L"/parameter", USAGE_PARAMETER); + RegisterSwitch(SwitchesUsage, L"/log=", USAGE_LOG); + RegisterSwitch(SwitchesUsage, L"/loglevel=", USAGE_LOGLEVEL); + RegisterSwitch(SwitchesUsage, L"/xmllog=", USAGE_XMLLOG); + RegisterSwitch(SwitchesUsage, L"/xmlgroups", USAGE_XMLGROUPS); + RegisterSwitch(SwitchesUsage, L"/ini=", USAGE_INI); + RegisterSwitch(SwitchesUsage, L"/rawconfig", USAGE_RAWCONFIG); + RegisterSwitch(SwitchesUsage, L"/batchsettings", USAGE_BATCHSETTINGS); + UnicodeString KeyGenDesc = + FMTLOAD(USAGE_KEYGEN, ( + TProgramParams::FormatSwitch(LowerCase(KEYGEN_OUTPUT_SWITCH)) + L"=", + TProgramParams::FormatSwitch(LowerCase(KEYGEN_CHANGE_PASSPHRASE_SWITCH)), + TProgramParams::FormatSwitch(LowerCase(KEYGEN_COMMENT_SWITCH)) + L"=")); + RegisterSwitch(SwitchesUsage, TProgramParams::FormatSwitch(KEYGEN_SWITCH), KeyGenDesc); + if (!Console->CommandLineOnly()) + { + RegisterSwitch(SwitchesUsage, L"/update", USAGE_UPDATE); + } + RegisterSwitch(SwitchesUsage, L"/help", USAGE_HELP); + + int MaxSwitchLen = 0; + TSwitchesUsage::const_iterator Index = SwitchesUsage.begin(); + while (Index != SwitchesUsage.end()) + { + MaxSwitchLen = std::max(Index->first.Length(), MaxSwitchLen); + ++Index; + } + + Index = SwitchesUsage.begin(); + while (Index != SwitchesUsage.end()) + { + UnicodeString Label = + UnicodeString(L" ") + + Index->first + + UnicodeString::StringOfChar(L' ', MaxSwitchLen - Index->first.Length()) + + L" "; + Console->Print(Label); + + const int ConsoleWidth = 80; + int DescWidth = ConsoleWidth - Label.Length() - 1; + + bool FirstLine = true; + UnicodeString Desc = Index->second; + while (!Desc.IsEmpty()) { - switch (Line[1]) + UnicodeString DescLine = CutToChar(Desc, L'\n', true); + DescLine = WrapText(DescLine, L"\n", TSysCharSet() << L' ', DescWidth); + while (!DescLine.IsEmpty()) { - case L'G': - Print = !Console->CommandLineOnly(); - break; - - case L'C': - Print = Console->CommandLineOnly(); - break; - - case L'B': - Print = true; - break; - - default: - FAIL; - break; + UnicodeString DescLineLine = CutToChar(DescLine, L'\n', true); + if (!FirstLine) + { + DescLineLine = + UnicodeString::StringOfChar(L' ', Label.Length()) + + DescLineLine; + } + FirstLine = false; + ConsolePrintLine(Console, DescLineLine); } - Line.Delete(1, 2); - } - - if (Print) - { - ConsolePrintLine(Console, Line); } + ++Index; } + Console->WaitBeforeExit(); } //--------------------------------------------------------------------------- void __fastcall BatchSettings(TConsole * Console, TProgramParams * Params) { std::unique_ptr Arguments(new TStringList()); - if (ALWAYS_TRUE(Params->FindSwitch(L"batchsettings", Arguments.get()))) + if (DebugAlwaysTrue(Params->FindSwitch(L"batchsettings", Arguments.get()))) { if (Arguments->Count < 1) { @@ -2051,7 +2187,7 @@ void __fastcall BatchSettings(TConsole * Console, TProgramParams * Params) TFileMasks Mask(Arguments->Strings[0]); Arguments->Delete(0); - std::unique_ptr OptionsStorage(new TOptionsStorage(Arguments.get())); + std::unique_ptr OptionsStorage(new TOptionsStorage(Arguments.get(), false)); int Matches = 0; int Changes = 0; @@ -2084,11 +2220,177 @@ void __fastcall BatchSettings(TConsole * Console, TProgramParams * Params) } } //--------------------------------------------------------------------------- +bool __fastcall FindPuttygenCompatibleSwitch( + TProgramParams * Params, const UnicodeString & Name, const UnicodeString & PuttygenName, UnicodeString & Value, bool & Set) +{ + bool Result = Params->FindSwitch(Name, Value, Set); + if (!Result) + { + std::unique_ptr Args(new TStringList()); + Result = Params->FindSwitchCaseSensitive(PuttygenName, Args.get(), 1); + if (Result && (Args->Count >= 1)) + { + Value = Args->Strings[0]; + Set = true; + } + } + return Result; +} +//--------------------------------------------------------------------------- +int __fastcall KeyGen(TConsole * Console, TProgramParams * Params) +{ + int Result = RESULT_SUCCESS; + UnicodeString Passphrase; + UnicodeString NewPassphrase; + try + { + UnicodeString InputFileName; + std::unique_ptr Args(new TStringList()); + if (!Params->FindSwitch(KEYGEN_SWITCH, Args.get(), 1) || + (Args->Count < 1) || + Args->Strings[0].IsEmpty()) + { + throw Exception(LoadStr(KEYGEN_NO_INPUT)); + } + InputFileName = Args->Strings[0]; + + bool ValueSet; + UnicodeString OutputFileName; + FindPuttygenCompatibleSwitch(Params, KEYGEN_OUTPUT_SWITCH, L"o", OutputFileName, ValueSet); + + UnicodeString NewComment; + FindPuttygenCompatibleSwitch(Params, KEYGEN_COMMENT_SWITCH, L"C", NewComment, ValueSet); + + bool NewPassphraseSet; + bool ChangePassphrase = + FindPuttygenCompatibleSwitch(Params, KEYGEN_CHANGE_PASSPHRASE_SWITCH, L"P", NewPassphrase, NewPassphraseSet); + + TKeyType Type = KeyType(InputFileName); + int Error = errno; + switch (Type) + { + case ktSSH1: + throw Exception(LoadStr(KEYGEN_SSH1)); + + case ktSSH2: + if (NewComment.IsEmpty() && !ChangePassphrase) + { + throw Exception(LoadStr(KEYGEN_NO_ACTION)); + } + break; + + case ktOpenSSH: + case ktSSHCom: + if (OutputFileName.IsEmpty()) + { + throw Exception(LoadStr(KEYGEN_NO_OUTPUT)); + } + break; + + case ktUnopenable: + throw EOSExtException(FMTLOAD(KEY_TYPE_UNOPENABLE, (InputFileName)), Error); + + default: + DebugFail(); + // fallthru + case ktUnknown: + throw Exception(FMTLOAD(KEY_TYPE_UNKNOWN2, (InputFileName))); + } + + UnicodeString Comment; + if (IsKeyEncrypted(Type, InputFileName, Comment)) + { + Passphrase = Params->SwitchValue(PassphraseOption); + if (Passphrase.IsEmpty()) + { + Console->Print(StripHotkey(FMTLOAD(PROMPT_KEY_PASSPHRASE, (Comment))) + L" "); + if (!Console->Input(Passphrase, false, 0) || + Passphrase.IsEmpty()) + { + Abort(); + } + } + } + + TPrivateKey * PrivateKey = LoadKey(Type, InputFileName, Passphrase); + + try + { + if (!NewComment.IsEmpty()) + { + ChangeKeyComment(PrivateKey, NewComment); + } + + if (ChangePassphrase) + { + if (!NewPassphraseSet) + { + Console->Print(LoadStr(KEYGEN_PASSPHRASE) + L" "); + if (!Console->Input(NewPassphrase, false, 0)) + { + Abort(); + } + + Console->Print(LoadStr(KEYGEN_PASSPHRASE2) + L" "); + UnicodeString NewPassphrase2; + if (!Console->Input(NewPassphrase2, false, 0)) + { + Abort(); + } + + if (NewPassphrase != NewPassphrase2) + { + Shred(NewPassphrase2); + throw Exception(LoadStr(KEYGEN_PASSPHRASES_MISMATCH)); + } + } + } + else + { + NewPassphrase = Passphrase; + } + + if (OutputFileName.IsEmpty()) + { + OutputFileName = InputFileName; + } + + SaveKey(ktSSH2, OutputFileName, NewPassphrase, PrivateKey); + + ConsolePrintLine(Console, FMTLOAD(KEYGEN_SAVED, (OutputFileName))); + } + __finally + { + FreeKey(PrivateKey); + } + } + catch (Exception & E) + { + UnicodeString Message; + if (ExceptionMessage(&E, Message)) + { + ConsolePrintLine(Console, Message); + ExtException * EE = dynamic_cast(&E); + if ((EE != NULL) && (EE->MoreMessages != NULL)) + { + ConsolePrintLine(Console, EE->MoreMessages->Text); + } + } + Result = RESULT_ANY_ERROR; + } + + Shred(Passphrase); + Shred(NewPassphrase); + + Console->WaitBeforeExit(); + return Result; +} +//--------------------------------------------------------------------------- int __fastcall Console(TConsoleMode Mode) { - assert(Mode != cmNone); + DebugAssert(Mode != cmNone); TProgramParams * Params = TProgramParams::Instance(); - int Result = 0; + int Result = RESULT_SUCCESS; TConsole * Console = NULL; TConsoleRunner * Runner = NULL; TStrings * ScriptCommands = new TStringList(); @@ -2128,6 +2430,14 @@ int __fastcall Console(TConsoleMode Mode) BatchSettings(Console, Params); } } + else if (Mode == cmKeyGen) + { + if (CheckSafe(Params)) + { + Configuration->Usage->Inc(L"KeyGen"); + Result = KeyGen(Console, Params); + } + } else { Runner = new TConsoleRunner(Console); @@ -2142,7 +2452,7 @@ int __fastcall Console(TConsoleMode Mode) Configuration->Usage->Inc(L"ScriptFile"); LoadScriptFromFile(Value, ScriptCommands); } - Params->FindSwitch(L"command", ScriptCommands); + Params->FindSwitch(COMMAND_SWITCH, ScriptCommands); if (ScriptCommands->Count > 0) { Configuration->Usage->Inc(L"ScriptCommands"); @@ -2158,6 +2468,10 @@ int __fastcall Console(TConsoleMode Mode) if (Params->ParamCount >= 1) { Session = Params->Param[1]; + if (Params->ParamCount > 1) + { + Runner->PrintMessage(LoadStr(SCRIPT_CMDLINE_PARAMETERS)); + } } bool DefaultsOnly; diff --git a/source/windows/CustomWinConfiguration.cpp b/source/windows/CustomWinConfiguration.cpp index 6717ce98..be6807b0 100644 --- a/source/windows/CustomWinConfiguration.cpp +++ b/source/windows/CustomWinConfiguration.cpp @@ -47,7 +47,7 @@ __fastcall TCustomWinConfiguration::~TCustomWinConfiguration() //--------------------------------------------------------------------------- void __fastcall TCustomWinConfiguration::ClearHistory() { - assert(FHistory != NULL); + DebugAssert(FHistory != NULL); THistoryStrings * HistoryStrings; for (int Index = 0; Index < FHistory->Count; Index++) @@ -65,8 +65,12 @@ void __fastcall TCustomWinConfiguration::DefaultHistory() std::unique_ptr Strings; - // defaults for speed limits + // Defaults for speed limits. Strings.reset(new THistoryStrings()); + // This is language-specifics, what has to be dealt with when changing language. + // There's ad-hoc workaround in CopySpeedLimits. + // If we need to solve this for another history, we should introduce + // a generic solution, like language-specific history ("SpeedLimitEN") Strings->Add(LoadStr(SPEED_UNLIMITED)); unsigned long Speed = 8192; while (Speed >= 8) @@ -80,7 +84,7 @@ void __fastcall TCustomWinConfiguration::DefaultHistory() Strings->Add(FormatCommand(DefaultPuttyPath, L"")); Strings->Add(FormatCommand(DefaultPuttyPath, L"-t -m \"%TEMP%\\putty.txt\" !`cmd.exe /c echo cd '!/' ; /bin/bash -login > \"%TEMP%\\putty.txt\"`")); Strings->Add(KittyExecutable); - Strings->Add(FORMAT(L"%s -cmd \"cd '!/'\" !U@!@", (KittyExecutable))); + Strings->Add(FORMAT(L"%s -cmd \"cd '!/'\" !U@!@ -P !# -title \"!N\"", (KittyExecutable))); FHistory->AddObject(L"PuttyPath", Strings.release()); } //--------------------------------------------------------------------------- @@ -107,6 +111,7 @@ void __fastcall TCustomWinConfiguration::Default() FFindFile.ListParams = L"3;1|125,1;181,1;80,1;122,1;@" + SaveDefaultPixelsPerInch() + L"|0;1;2;3"; FConsoleWin.WindowSize = FormatDefaultWindowSize(570, 430); FLoginDialog.WindowSize = FormatDefaultWindowSize(640, 430); + FLoginDialog.SiteSearch = ssSiteName; FConfirmExitOnCompletion = true; FOperationProgressOnTop = true; FSessionColors = L""; @@ -123,7 +128,7 @@ void __fastcall TCustomWinConfiguration::Saved() for (int Index = 0; Index < FHistory->Count; Index++) { HistoryStrings = dynamic_cast(FHistory->Objects[Index]); - assert(HistoryStrings != NULL); + DebugAssert(HistoryStrings != NULL); HistoryStrings->Modified = false; } } @@ -156,6 +161,7 @@ void __fastcall TCustomWinConfiguration::Saved() ); \ BLOCK(L"Interface\\LoginDialog", CANCREATE, \ KEY(String, LoginDialog.WindowSize); \ + KEY(Integer, LoginDialog.SiteSearch); \ ); \ //--------------------------------------------------------------------------- void __fastcall TCustomWinConfiguration::SaveData( @@ -178,7 +184,7 @@ void __fastcall TCustomWinConfiguration::SaveData( for (int Index = 0; Index < FHistory->Count; Index++) { HistoryStrings = dynamic_cast(FHistory->Objects[Index]); - assert(HistoryStrings != NULL); + DebugAssert(HistoryStrings != NULL); if (All || HistoryStrings->Modified) { if (Storage->OpenSubKey(FHistory->Strings[Index], true)) @@ -209,7 +215,7 @@ void __fastcall TCustomWinConfiguration::SaveData( for (int Index = 0; Index < FHistory->Count; Index++) { HistoryStrings = dynamic_cast(FHistory->Objects[Index]); - assert(HistoryStrings != NULL); + DebugAssert(HistoryStrings != NULL); if (All || HistoryStrings->Modified) { bool HasData = false; diff --git a/source/windows/CustomWinConfiguration.h b/source/windows/CustomWinConfiguration.h index 66a317bb..83944262 100644 --- a/source/windows/CustomWinConfiguration.h +++ b/source/windows/CustomWinConfiguration.h @@ -4,7 +4,6 @@ //--------------------------------------------------------------------------- #include "GUIConfiguration.h" #define WM_WINSCP_USER (WM_USER + 0x2000) -#define WM_LOCALE_CHANGE (WM_WINSCP_USER + 1) // WM_USER_STOP = WM_WINSCP_USER + 2 (in forms/Synchronize.cpp) // WM_INTERUPT_IDLE = WM_WINSCP_USER + 3 (in windows/ConsoleRunner.cpp) // WM_COMPONENT_HIDE = WM_WINSCP_USER + 4 (forms/CustomScpExplorer.cpp) @@ -29,7 +28,15 @@ struct TConsoleWinConfiguration bool __fastcall operator !=(TConsoleWinConfiguration & rhc) { return C(WindowSize) 0; }; }; -typedef TConsoleWinConfiguration TLoginDialogConfiguration; +//--------------------------------------------------------------------------- +enum TSiteSearch { ssSiteNameStartOnly, ssSiteName, ssSite }; +//--------------------------------------------------------------------------- +struct TLoginDialogConfiguration : public TConsoleWinConfiguration +{ + TSiteSearch SiteSearch; + bool __fastcall operator !=(TLoginDialogConfiguration & rhc) + { return (TConsoleWinConfiguration::operator !=(rhc)) || C(SiteSearch) 0; }; +}; //--------------------------------------------------------------------------- class TCustomWinConfiguration : public TGUIConfiguration { diff --git a/source/windows/EditorManager.cpp b/source/windows/EditorManager.cpp index 93ab47b0..cd3edd39 100644 --- a/source/windows/EditorManager.cpp +++ b/source/windows/EditorManager.cpp @@ -41,7 +41,7 @@ __fastcall TEditorManager::~TEditorManager() TFileData * FileData = &FFiles[Index]; // pending should be only external editors and files being uploaded - assert(FileData->Closed || FileData->External); + DebugAssert(FileData->Closed || FileData->External); if (!FileData->Closed) { @@ -339,8 +339,8 @@ void __fastcall TEditorManager::FileChanged(TObject * Token) { int Index = FindFile(Token); - assert(Index >= 0); - assert(!FFiles[Index].External); + DebugAssert(Index >= 0); + DebugAssert(!FFiles[Index].External); CheckFileChange(Index, true); } @@ -349,9 +349,9 @@ void __fastcall TEditorManager::FileReload(TObject * Token) { int Index = FindFile(Token); - assert(Index >= 0); + DebugAssert(Index >= 0); TFileData * FileData = &FFiles[Index]; - assert(!FileData->External); + DebugAssert(!FileData->External); OnFileReload(FileData->FileName, FileData->Data); FileAge(FileData->FileName, FileData->Timestamp); @@ -361,8 +361,8 @@ void __fastcall TEditorManager::FileClosed(TObject * Token, bool Forced) { int Index = FindFile(Token); - assert(Index >= 0); - assert(!FFiles[Index].External); + DebugAssert(Index >= 0); + DebugAssert(!FFiles[Index].External); CheckFileChange(Index, false); CloseFile(Index, false, !Forced); @@ -389,7 +389,7 @@ void __fastcall TEditorManager::UploadComplete(int Index) { TFileData * FileData = &FFiles[Index]; - assert(FileData->UploadCompleteEvent != INVALID_HANDLE_VALUE); + DebugAssert(FileData->UploadCompleteEvent != INVALID_HANDLE_VALUE); CloseHandle(FileData->UploadCompleteEvent); FUploadCompleteEvents.erase(std::find(FUploadCompleteEvents.begin(), @@ -419,7 +419,7 @@ void __fastcall TEditorManager::CloseProcess(int Index) TFileData * FileData = &FFiles[Index]; FProcesses.erase(std::find(FProcesses.begin(), FProcesses.end(), FileData->Process)); - CHECK(CloseHandle(FileData->Process)); + DebugCheck(CloseHandle(FileData->Process)); FileData->Process = INVALID_HANDLE_VALUE; } //--------------------------------------------------------------------------- @@ -442,7 +442,7 @@ bool __fastcall TEditorManager::CloseFile(int Index, bool IgnoreErrors, bool Del if (FileData->Monitor != INVALID_HANDLE_VALUE) { - CHECK(FindCloseChangeNotification(FileData->Monitor)); + DebugCheck(FindCloseChangeNotification(FileData->Monitor)); FMonitors.erase(std::find(FMonitors.begin(), FMonitors.end(), FileData->Monitor)); FileData->Monitor = INVALID_HANDLE_VALUE; } @@ -498,7 +498,7 @@ void __fastcall TEditorManager::CheckFileChange(int Index, bool Force) try { - assert(OnFileChange != NULL); + DebugAssert(OnFileChange != NULL); OnFileChange(FileData->FileName, FileData->Data, FileData->UploadCompleteEvent); } @@ -547,7 +547,7 @@ int __fastcall TEditorManager::WaitFor(unsigned int Count, const HANDLE * Handle else if (WaitResult != WAIT_TIMEOUT) { // WAIT_OBJECT_0 is zero - assert(WaitResult < WAIT_OBJECT_0 + Count); + DebugAssert(WaitResult < WAIT_OBJECT_0 + Count); HANDLE Handle = Handles[WaitResult - WAIT_OBJECT_0]; @@ -576,7 +576,7 @@ int __fastcall TEditorManager::WaitFor(unsigned int Count, const HANDLE * Handle break; } } - assert(Result >= 0); + DebugAssert(Result >= 0); } Start += C; diff --git a/source/windows/GUIConfiguration.cpp b/source/windows/GUIConfiguration.cpp index 37044cf0..afb8984e 100644 --- a/source/windows/GUIConfiguration.cpp +++ b/source/windows/GUIConfiguration.cpp @@ -335,9 +335,9 @@ void __fastcall TCopyParamList::Add(const UnicodeString Name, void __fastcall TCopyParamList::Insert(int Index, const UnicodeString Name, TCopyParamType * CopyParam, TCopyParamRule * Rule) { - assert(FNames->IndexOf(Name) < 0); + DebugAssert(FNames->IndexOf(Name) < 0); FNames->Insert(Index, Name); - assert(CopyParam != NULL); + DebugAssert(CopyParam != NULL); FCopyParams->Insert(Index, reinterpret_cast(CopyParam)); FRules->Insert(Index, reinterpret_cast(Rule)); Modify(); @@ -375,7 +375,7 @@ void __fastcall TCopyParamList::Move(int CurIndex, int NewIndex) //--------------------------------------------------------------------------- void __fastcall TCopyParamList::Delete(int Index) { - assert((Index >= 0) && (Index < Count)); + DebugAssert((Index >= 0) && (Index < Count)); FNames->Delete(Index); delete CopyParams[Index]; FCopyParams->Delete(Index); @@ -526,9 +526,6 @@ __fastcall TGUIConfiguration::TGUIConfiguration(): TConfiguration() FLastLocalesExts = L"*"; FCopyParamList = new TCopyParamList(); CoreSetResourceModule(GetResourceModule()); - // allow loading configured locale, DetectScalingType needs to get called - // only after that, but before user can ever try to change the locale - FCanApplyLocaleImmediately = true; } //--------------------------------------------------------------------------- __fastcall TGUIConfiguration::~TGUIConfiguration() @@ -537,12 +534,6 @@ __fastcall TGUIConfiguration::~TGUIConfiguration() delete FCopyParamList; } //--------------------------------------------------------------------------- -void __fastcall TGUIConfiguration::DetectScalingType() -{ - // USER_DEFAULT_SCREEN_DPI (96) DPI is 100% - FCanApplyLocaleImmediately = (Screen->PixelsPerInch == USER_DEFAULT_SCREEN_DPI); -} -//--------------------------------------------------------------------------- void __fastcall TGUIConfiguration::Default() { TConfiguration::Default(); @@ -673,7 +664,7 @@ void __fastcall TGUIConfiguration::SaveData(THierarchicalStorage * Storage, bool if (FCopyParamListDefaults) { - assert(!FCopyParamList->Modified); + DebugAssert(!FCopyParamList->Modified); Storage->WriteInteger(L"CopyParamList", -1); } else if (All || FCopyParamList->Modified) @@ -768,7 +759,7 @@ void __fastcall TGUIConfiguration::Saved() //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- HINSTANCE __fastcall TGUIConfiguration::LoadNewResourceModule(LCID ALocale, - UnicodeString * FileName) + UnicodeString & FileName) { UnicodeString LibraryFileName; HINSTANCE NewInstance = 0; @@ -784,7 +775,7 @@ HINSTANCE __fastcall TGUIConfiguration::LoadNewResourceModule(LCID ALocale, wchar_t LocaleStr[4]; GetLocaleInfo(ALocale, LOCALE_SABBREVLANGNAME, LocaleStr, LENOF(LocaleStr)); LocaleName = LocaleStr; - assert(!LocaleName.IsEmpty()); + DebugAssert(!LocaleName.IsEmpty()); } else { @@ -823,10 +814,7 @@ HINSTANCE __fastcall TGUIConfiguration::LoadNewResourceModule(LCID ALocale, } } - if (FileName != NULL) - { - *FileName = LibraryFileName; - } + FileName = LibraryFileName; return NewInstance; } @@ -842,7 +830,7 @@ LCID __fastcall TGUIConfiguration::InternalLocale() } else { - FAIL; + DebugFail(); Result = 0; } return Result; @@ -872,11 +860,12 @@ void __fastcall TGUIConfiguration::SetLocaleInternal(LCID value, bool Safe) if (Locale != value) { HINSTANCE Module; + UnicodeString FileName; try { - Module = LoadNewResourceModule(value); - assert(Module != NULL); + Module = LoadNewResourceModule(value, FileName); + DebugAssert(Module != NULL); } catch(...) { @@ -898,11 +887,49 @@ void __fastcall TGUIConfiguration::SetLocaleInternal(LCID value, bool Safe) { FAppliedLocale = value; SetResourceModule(Module); + FLocaleModuleName = FileName; } } } } //--------------------------------------------------------------------------- +bool __fastcall TGUIConfiguration::GetCanApplyLocaleImmediately() +{ + return + (Screen->FormCount == 0) && + (Screen->DataModuleCount == 0); +} +//--------------------------------------------------------------------------- +UnicodeString __fastcall TGUIConfiguration::LocaleCopyright() +{ + UnicodeString Result; + if ((FAppliedLocale == 0) || (FAppliedLocale == InternalLocale())) + { + DebugFail(); // we do not expect to get called with internal locale + Result = UnicodeString(); + } + else + { + DebugAssert(!FLocaleModuleName.IsEmpty()); + Result = GetFileFileInfoString(L"LegalCopyright", FLocaleModuleName); + } + return Result; +} +//--------------------------------------------------------------------------- +UnicodeString __fastcall TGUIConfiguration::LocaleVersion() +{ + UnicodeString Result; + if ((FAppliedLocale == 0) || (FAppliedLocale == InternalLocale())) + { + // noop + } + else + { + Result = GetFileVersion(FLocaleModuleName); + } + return Result; +} +//--------------------------------------------------------------------------- void __fastcall TGUIConfiguration::SetInitialLocale(LCID value) { FLocale = value; @@ -918,6 +945,11 @@ void __fastcall TGUIConfiguration::FreeResourceModule(HANDLE Instance) } } //--------------------------------------------------------------------------- +HANDLE __fastcall TGUIConfiguration::ChangeToDefaultResourceModule() +{ + return ChangeResourceModule(NULL); +} +//--------------------------------------------------------------------------- HANDLE __fastcall TGUIConfiguration::ChangeResourceModule(HANDLE Instance) { if (Instance == NULL) @@ -1130,11 +1162,11 @@ TGUICopyParamType __fastcall TGUIConfiguration::GetCopyParamPreset(UnicodeString if (!Name.IsEmpty()) { int Index = FCopyParamList->IndexOfName(Name); - assert(Index >= 0); + DebugAssert(Index >= 0); if (Index >= 0) { const TCopyParamType * Preset = FCopyParamList->CopyParams[Index]; - assert(Preset != NULL); + DebugAssert(Preset != NULL); Result.Assign(Preset); // overwrite all but GUI options // reset all options known not to be configurable per-preset // kind of hack @@ -1216,49 +1248,4 @@ bool __fastcall TGUIConfiguration::AnyPuttySessionForImport(TStoredSessionList * return false; } } -//--------------------------------------------------------------------- -TStoredSessionList * __fastcall TGUIConfiguration::SelectFilezillaSessionsForImport( - TStoredSessionList * Sessions, UnicodeString & Error) -{ - std::unique_ptr ImportSessionList(new TStoredSessionList(true)); - ImportSessionList->DefaultSettings = Sessions->DefaultSettings; - - UnicodeString AppDataPath = GetShellFolderPath(CSIDL_APPDATA); - UnicodeString FilezillaSiteManagerFile = - IncludeTrailingBackslash(AppDataPath) + L"FileZilla\\sitemanager.xml"; - - if (FileExists(ApiPath(FilezillaSiteManagerFile))) - { - ImportSessionList->ImportFromFilezilla(FilezillaSiteManagerFile); - - if (ImportSessionList->Count > 0) - { - ImportSessionList->SelectSessionsToImport(Sessions, true); - } - else - { - Error = FMTLOAD(FILEZILLA_NO_SITES, (FilezillaSiteManagerFile)); - } - } - else - { - Error = FMTLOAD(FILEZILLA_SITE_MANAGER_NOT_FOUND, (FilezillaSiteManagerFile)); - } - - return ImportSessionList.release(); -} -//--------------------------------------------------------------------- -bool __fastcall TGUIConfiguration::AnyFilezillaSessionForImport(TStoredSessionList * Sessions) -{ - try - { - UnicodeString Error; - std::unique_ptr Sesssions(SelectFilezillaSessionsForImport(Sessions, Error)); - return (Sesssions->Count > 0); - } - catch (...) - { - return false; - } -} //--------------------------------------------------------------------------- diff --git a/source/windows/GUIConfiguration.h b/source/windows/GUIConfiguration.h index ce341da1..985a5bd8 100644 --- a/source/windows/GUIConfiguration.h +++ b/source/windows/GUIConfiguration.h @@ -178,11 +178,11 @@ class TGUIConfiguration : public TConfiguration int FKeepUpToDateChangeDelay; UnicodeString FChecksumAlg; int FSessionReopenAutoIdle; - bool FCanApplyLocaleImmediately; LCID FAppliedLocale; protected: LCID FLocale; + UnicodeString FLocaleModuleName; virtual void __fastcall SaveData(THierarchicalStorage * Storage, bool All); virtual void __fastcall LoadData(THierarchicalStorage * Storage); @@ -190,11 +190,10 @@ class TGUIConfiguration : public TConfiguration void __fastcall SetLocale(LCID value); void __fastcall SetLocaleSafe(LCID value); virtual HINSTANCE __fastcall LoadNewResourceModule(LCID Locale, - UnicodeString * FileName = NULL); + UnicodeString & FileName); HANDLE __fastcall GetResourceModule(); - virtual void __fastcall SetResourceModule(HINSTANCE Instance); + void __fastcall SetResourceModule(HINSTANCE Instance); TStrings * __fastcall GetLocales(); - LCID __fastcall InternalLocale(); void __fastcall FreeResourceModule(HANDLE Instance); void __fastcall SetDefaultCopyParam(const TGUICopyParamType & value); virtual bool __fastcall GetRememberPassword(); @@ -214,6 +213,7 @@ class TGUIConfiguration : public TConfiguration void __fastcall SetQueueKeepDoneItemsFor(int value); void __fastcall SetLocaleInternal(LCID value, bool Safe); void __fastcall SetInitialLocale(LCID value); + bool __fastcall GetCanApplyLocaleImmediately(); public: __fastcall TGUIConfiguration(); @@ -221,13 +221,13 @@ class TGUIConfiguration : public TConfiguration virtual void __fastcall Default(); virtual void __fastcall UpdateStaticUsage(); + HANDLE __fastcall ChangeToDefaultResourceModule(); HANDLE __fastcall ChangeResourceModule(HANDLE Instance); + LCID __fastcall InternalLocale(); + UnicodeString __fastcall LocaleCopyright(); + UnicodeString __fastcall LocaleVersion(); TStoredSessionList * __fastcall SelectPuttySessionsForImport(TStoredSessionList * Sessions, UnicodeString & Error); bool __fastcall AnyPuttySessionForImport(TStoredSessionList * Sessions); - TStoredSessionList * __fastcall SelectFilezillaSessionsForImport( - TStoredSessionList * Sessions, UnicodeString & Error); - bool __fastcall AnyFilezillaSessionForImport(TStoredSessionList * Sessions); - void __fastcall DetectScalingType(); __property bool ContinueOnError = { read = FContinueOnError, write = FContinueOnError }; __property bool ConfirmCommandSession = { read = FConfirmCommandSession, write = FConfirmCommandSession }; @@ -264,7 +264,7 @@ class TGUIConfiguration : public TConfiguration __property int KeepUpToDateChangeDelay = { read = FKeepUpToDateChangeDelay, write = FKeepUpToDateChangeDelay }; __property UnicodeString ChecksumAlg = { read = FChecksumAlg, write = FChecksumAlg }; __property int SessionReopenAutoIdle = { read = FSessionReopenAutoIdle, write = FSessionReopenAutoIdle }; - __property bool CanApplyLocaleImmediately = { read = FCanApplyLocaleImmediately, write = FCanApplyLocaleImmediately }; + __property bool CanApplyLocaleImmediately = { read = GetCanApplyLocaleImmediately }; __property LCID AppliedLocale = { read = FAppliedLocale }; }; //--------------------------------------------------------------------------- diff --git a/source/windows/GUITools.cpp b/source/windows/GUITools.cpp index b11325dd..83331474 100644 --- a/source/windows/GUITools.cpp +++ b/source/windows/GUITools.cpp @@ -16,6 +16,12 @@ #include #include #include "PngImageList.hpp" +#include +#include +#include +#include +#include +#include //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- @@ -59,6 +65,7 @@ void __fastcall OpenSessionInPutty(const UnicodeString PuttyPath, UnicodeString Params = RemoteCustomCommand.Complete(InteractiveCustomCommand.Complete(AParams, false), true); + UnicodeString PuttyParams; if (!RemoteCustomCommand.IsSiteCommand(AParams)) { @@ -125,15 +132,17 @@ void __fastcall OpenSessionInPutty(const UnicodeString PuttyPath, delete SourceStorage; } - AddToList(Params, FORMAT(L"-load %s", (EscapePuttyCommandParam(SessionName))), L" "); + AddToList(PuttyParams, FORMAT(L"-load %s", (EscapePuttyCommandParam(SessionName))), L" "); } if (!Password.IsEmpty() && !RemoteCustomCommand.IsPasswordCommand(AParams)) { - AddToList(Params, FORMAT(L"-pw %s", (EscapePuttyCommandParam(Password))), L" "); + AddToList(PuttyParams, FORMAT(L"-pw %s", (EscapePuttyCommandParam(Password))), L" "); } - if (!ExecuteShell(Program, Params)) + AddToList(PuttyParams, Params, L" "); + + if (!ExecuteShell(Program, PuttyParams)) { throw Exception(FMTLOAD(EXECUTE_APP_ERROR, (Program))); } @@ -282,7 +291,7 @@ static UnicodeString __fastcall GetWineHomeFolder() UnicodeString __fastcall GetPersonalFolder() { UnicodeString Result; - SpecialFolderLocation(CSIDL_PERSONAL, Result); + ::SpecialFolderLocation(CSIDL_PERSONAL, Result); if (IsWine()) { @@ -308,7 +317,7 @@ UnicodeString __fastcall GetPersonalFolder() UnicodeString __fastcall GetDesktopFolder() { UnicodeString Result; - SpecialFolderLocation(CSIDL_DESKTOPDIRECTORY, Result); + ::SpecialFolderLocation(CSIDL_DESKTOPDIRECTORY, Result); if (IsWine()) { @@ -330,11 +339,11 @@ UnicodeString __fastcall GetDesktopFolder() UnicodeString __fastcall UniqTempDir(const UnicodeString BaseDir, const UnicodeString Identity, bool Mask) { + DebugAssert(!BaseDir.IsEmpty()); UnicodeString TempDir; do { - TempDir = BaseDir.IsEmpty() ? SystemTemporaryDirectory() : BaseDir; - TempDir = IncludeTrailingBackslash(TempDir) + Identity; + TempDir = IncludeTrailingBackslash(BaseDir) + Identity; if (Mask) { TempDir += L"?????"; @@ -461,7 +470,7 @@ void __fastcall SetSubmenu(TTBXCustomItem * Item) __property ItemStyle; }; TTBXPublicItem * PublicItem = reinterpret_cast(Item); - assert(PublicItem != NULL); + DebugAssert(PublicItem != NULL); // See TTBItemViewer.IsPtInButtonPart (called from TTBItemViewer.MouseDown) PublicItem->ItemStyle = PublicItem->ItemStyle << tbisSubmenu; } @@ -483,7 +492,7 @@ bool __fastcall IsEligibleForApplyingTabs( } // We do not have, not support, mutiple tabs on a single line - if (ALWAYS_TRUE(Remaining.Pos(L"\t") == 0)) + if (DebugAlwaysTrue(Remaining.Pos(L"\t") == 0)) { Start = Line.SubString(1, TabPos - 1); // WORKAROUND @@ -509,7 +518,7 @@ void __fastcall ApplyTabs( { if (CalculateWidth == NULL) { - assert(CalculateWidthArg == NULL); + DebugAssert(CalculateWidthArg == NULL); CalculateWidth = CalculateWidthByLength; } @@ -562,6 +571,150 @@ void __fastcall ApplyTabs( } } //--------------------------------------------------------------------------- +void __fastcall SelectScaledImageList(TImageList * ImageList) +{ + TImageList * MatchingList = NULL; + int MachingPixelsPerInch = 0; + int PixelsPerInch = Screen->PixelsPerInch; + + for (int Index = 0; Index < ImageList->Owner->ComponentCount; Index++) + { + TImageList * OtherList = dynamic_cast(ImageList->Owner->Components[Index]); + + if ((OtherList != NULL) && + (OtherList != ImageList) && + StartsStr(ImageList->Name, OtherList->Name)) + { + UnicodeString OtherListPixelsPerInchStr = + OtherList->Name.SubString( + ImageList->Name.Length() + 1, OtherList->Name.Length() - ImageList->Name.Length()); + int OtherListPixelsPerInch = StrToInt(OtherListPixelsPerInchStr); + if ((OtherListPixelsPerInch <= PixelsPerInch) && + ((MatchingList == NULL) || + (MachingPixelsPerInch < OtherListPixelsPerInch))) + { + MatchingList = OtherList; + MachingPixelsPerInch = OtherListPixelsPerInch; + } + } + } + + if (MatchingList != NULL) + { + CopyImageList(ImageList, MatchingList); + } +} +//--------------------------------------------------------------------------- +void __fastcall CopyImageList(TImageList * TargetList, TImageList * SourceList) +{ + TPngImageList * PngTargetList = dynamic_cast(TargetList); + TPngImageList * PngSourceList = dynamic_cast(SourceList); + + TargetList->Clear(); + TargetList->Height = SourceList->Height; + TargetList->Width = SourceList->Width; + + if ((PngTargetList != NULL) && (PngSourceList != NULL)) + { + // AddImages won't copy the names and we need them for + // LoadDialogImage and TFrameAnimation + PngTargetList->PngImages->Assign(PngSourceList->PngImages); + } + else + { + TargetList->AddImages(SourceList); + } +} +//--------------------------------------------------------------------------- +void __fastcall CopyDataModule(TDataModule * TargetModule, TDataModule * SourceModule) +{ + DebugAssert(TargetModule->ComponentCount == SourceModule->ComponentCount); + + typedef std::vector > TComponentPairs; + TComponentPairs ComponentPairs; + + for (int Index = 0; Index < TargetModule->ComponentCount; Index++) + { + TComponent * TargetComponent = TargetModule->Components[Index]; + TComponent * SourceComponent = SourceModule->FindComponent(TargetComponent->Name); + if (DebugAlwaysTrue(SourceComponent != NULL)) + { + ComponentPairs.push_back(std::make_pair(TargetComponent, SourceComponent)); + } + } + + TComponentPairs::const_iterator Iterator = ComponentPairs.begin(); + while (Iterator != ComponentPairs.end()) + { + TComponent * TargetComponent = Iterator->first; + TComponent * SourceComponent = Iterator->second; + + TargetModule->RemoveComponent(TargetComponent); + SourceModule->RemoveComponent(SourceComponent); + + TargetModule->InsertComponent(SourceComponent); + SourceModule->InsertComponent(TargetComponent); + + Iterator++; + } +} +//--------------------------------------------------------------------------- +void __fastcall LoadDialogImage(TImage * Image, const UnicodeString & ImageName) +{ + if (GlyphsModule != NULL) + { + TPngImageList * DialogImages = GlyphsModule->DialogImages; + + int Index; + for (Index = 0; Index < DialogImages->PngImages->Count; Index++) + { + TPngImageCollectionItem * PngItem = DialogImages->PngImages->Items[Index]; + if (SameText(PngItem->Name, ImageName)) + { + Image->Picture->Assign(PngItem->PngImage); + break; + } + } + + DebugAssert(Index < DialogImages->PngImages->Count); + } + // When showing an exception from wWinMain, the glyphs module does not exist anymore. + // We expect errors only. + else if (DebugAlwaysTrue(ImageName == L"Error")) + { + Image->Picture->Icon->Handle = LoadIcon(0, IDI_HAND); + } +} +//--------------------------------------------------------------------------- +int __fastcall DialogImageSize() +{ + return ScaleByPixelsPerInch(32); +} +//--------------------------------------------------------------------------- +void __fastcall HideComponentsPanel(TForm * Form) +{ + TComponent * Component = DebugNotNull(Form->FindComponent(L"ComponentsPanel")); + TPanel * Panel = DebugNotNull(dynamic_cast(Component)); + DebugAssert(Panel->Align == alBottom); + int Offset = Panel->Height; + Panel->Visible = false; + Form->Height -= Offset; + + // Shift back bottom-anchored controls + // (needed for toolbar panel on Progress window) + for (int Index = 0; Index < Form->ControlCount; Index++) + { + TControl * Control = Form->Controls[Index]; + + if ((Control->Align == alNone) && + Control->Anchors.Contains(akBottom) && + !Control->Anchors.Contains(akTop)) + { + Control->Top += Offset; + } + } +} +//--------------------------------------------------------------------------- class TBrowserViewer : public TWebBrowserEx { public: @@ -569,6 +722,7 @@ class TBrowserViewer : public TWebBrowserEx void __fastcall AddLinkHandler( const UnicodeString & Url, TNotifyEvent Handler); + void __fastcall NavigateToUrl(const UnicodeString & Url); TControl * LoadingPanel; @@ -646,12 +800,16 @@ void __fastcall TBrowserViewer::BeforeNavigate2( } } //--------------------------------------------------------------------------- +void __fastcall TBrowserViewer::NavigateToUrl(const UnicodeString & Url) +{ + FComplete = false; + Navigate(Url.c_str()); +} +//--------------------------------------------------------------------------- TPanel * __fastcall CreateLabelPanel(TPanel * Parent, const UnicodeString & Label) { - TPanel * Result = new TPanel(Parent); + TPanel * Result = CreateBlankPanel(Parent); Result->Parent = Parent; - Result->BevelOuter = bvNone; - Result->BevelInner = bvNone; // default Result->Align = alClient; Result->Caption = Label; return Result; @@ -660,7 +818,8 @@ TPanel * __fastcall CreateLabelPanel(TPanel * Parent, const UnicodeString & Labe TWebBrowserEx * __fastcall CreateBrowserViewer(TPanel * Parent, const UnicodeString & LoadingLabel) { TBrowserViewer * Result = new TBrowserViewer(Parent); - // TWebBrowserEx has its own unrelated Name and Parent properties + // TWebBrowserEx has its own unrelated Name and Parent properties. + // The name is used in DownloadUpdate(). static_cast(Result)->Name = L"BrowserViewer"; static_cast(Result)->Parent = Parent; Result->Align = alClient; @@ -673,7 +832,7 @@ TWebBrowserEx * __fastcall CreateBrowserViewer(TPanel * Parent, const UnicodeStr //--------------------------------------------------------------------------- void __fastcall SetBrowserDesignModeOff(TWebBrowserEx * WebBrowser) { - if (ALWAYS_TRUE(WebBrowser->Document2 != NULL)) + if (DebugAlwaysTrue(WebBrowser->Document2 != NULL)) { WebBrowser->Document2->designMode = L"Off"; } @@ -683,12 +842,21 @@ void __fastcall AddBrowserLinkHandler(TWebBrowserEx * WebBrowser, const UnicodeString & Url, TNotifyEvent Handler) { TBrowserViewer * BrowserViewer = dynamic_cast(WebBrowser); - if (ALWAYS_TRUE(BrowserViewer != NULL)) + if (DebugAlwaysTrue(BrowserViewer != NULL)) { BrowserViewer->AddLinkHandler(Url, Handler); } } //--------------------------------------------------------------------------- +void __fastcall NavigateBrowserToUrl(TWebBrowserEx * WebBrowser, const UnicodeString & Url) +{ + TBrowserViewer * BrowserViewer = dynamic_cast(WebBrowser); + if (DebugAlwaysTrue(BrowserViewer != NULL)) + { + BrowserViewer->NavigateToUrl(Url); + } +} +//--------------------------------------------------------------------------- TLocalCustomCommand::TLocalCustomCommand() { } @@ -752,3 +920,186 @@ bool __fastcall TLocalCustomCommand::IsFileCommand(const UnicodeString & Command { return TFileCustomCommand::IsFileCommand(Command) || HasLocalFileName(Command); } +//--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- +__fastcall TFrameAnimation::TFrameAnimation() +{ + FFirstFrame = -1; +} +//--------------------------------------------------------------------------- +void __fastcall TFrameAnimation::Init(TPaintBox * PaintBox, const UnicodeString & Name) +{ + DoInit(PaintBox, NULL, Name, Name.IsEmpty()); +} +//--------------------------------------------------------------------------- +void __fastcall TFrameAnimation::DoInit(TPaintBox * PaintBox, TPngImageList * ImageList, const UnicodeString & Name, bool Null) +{ + FImageList = (ImageList != NULL) ? ImageList : GetAnimationsModule()->AnimationImages; + FFirstFrame = -1; + FFirstLoopFrame = -1; + DebugAssert((PaintBox->OnPaint == NULL) || (PaintBox->OnPaint == PaintBoxPaint)); + PaintBox->ControlStyle = PaintBox->ControlStyle << csOpaque; + PaintBox->OnPaint = PaintBoxPaint; + PaintBox->Width = FImageList->Width; + PaintBox->Height = FImageList->Height; + FPaintBox = PaintBox; + + if (!Null) + { + int Frame = 0; + while (Frame < FImageList->PngImages->Count) + { + UnicodeString FrameData = FImageList->PngImages->Items[Frame]->Name; + UnicodeString FrameName; + FrameName = CutToChar(FrameData, L'_', false); + + if (SameText(Name, FrameName)) + { + int FrameIndex = StrToInt(CutToChar(FrameData, L'_', false)); + if (FFirstFrame < 0) + { + FFirstFrame = Frame; + } + if ((FFirstLoopFrame < 0) && (FrameIndex > 0)) + { + FFirstLoopFrame = Frame; + } + FLastFrame = Frame; + } + else + { + if (FFirstFrame >= 0) + { + // optimization + break; + } + } + Frame++; + } + + DebugAssert(FFirstFrame >= 0); + DebugAssert(FFirstLoopFrame >= 0); + } + + Stop(); +} +//--------------------------------------------------------------------------- +void __fastcall TFrameAnimation::Start() +{ + if (FFirstFrame >= 0) + { + FNextFrameTick = GetTickCount(); + CalculateNextFrameTick(); + + if (FTimer == NULL) + { + FTimer = new TTimer(GetParentForm(FPaintBox)); + FTimer->Interval = static_cast(GUIUpdateInterval); + FTimer->OnTimer = Timer; + } + else + { + // reset timer + FTimer->Enabled = false; + FTimer->Enabled = true; + } + } +} +//--------------------------------------------------------------------------- +void __fastcall TFrameAnimation::Timer(TObject * /*Sender*/) +{ + Animate(); +} +//--------------------------------------------------------------------------- +void __fastcall TFrameAnimation::PaintBoxPaint(TObject * Sender) +{ + if (FFirstFrame >= 0) + { + // Double-buffered drawing to prevent flicker (as the images are transparent) + DebugUsedParam(Sender); + DebugAssert(FPaintBox == Sender); + DebugAssert(FPaintBox->ControlStyle.Contains(csOpaque)); + std::unique_ptr Bitmap(new TBitmap()); + Bitmap->SetSize(FPaintBox->Width, FPaintBox->Height); + Bitmap->Canvas->Brush->Color = FPaintBox->Color; + TRect Rect(0, 0, Bitmap->Width, Bitmap->Height); + Bitmap->Canvas->FillRect(Rect); + TGraphic * Graphic = GetCurrentImage()->PngImage; + // Do not trigger assertion when animation size does not match scaled + // paint box as we do not have scaled animations available yet + DebugAssert((Graphic->Width == FPaintBox->Width) || (Screen->PixelsPerInch != USER_DEFAULT_SCREEN_DPI)); + DebugAssert((Graphic->Height == FPaintBox->Height) || (Screen->PixelsPerInch != USER_DEFAULT_SCREEN_DPI)); + Bitmap->Canvas->Draw(0, 0, Graphic); + FPaintBox->Canvas->Draw(0, 0, Bitmap.get()); + } + FPainted = true; +} +//--------------------------------------------------------------------------- +void __fastcall TFrameAnimation::Repaint() +{ + FPainted = false; + // Ff the form is not showing yet, the Paint() is not even called + FPaintBox->Repaint(); + if (!FPainted) + { + // Paint later, alternativelly we may keep trying Repaint() in Animate(). + // See also a hack in TAuthenticateForm::Log. + FPaintBox->Invalidate(); + } +} +//--------------------------------------------------------------------------- +void __fastcall TFrameAnimation::Stop() +{ + FNextFrameTick = std::numeric_limits::max(); + FCurrentFrame = FFirstFrame; + Repaint(); + + if (FTimer != NULL) + { + FTimer->Enabled = false; + } +} +//--------------------------------------------------------------------------- +void __fastcall TFrameAnimation::Animate() +{ + if (FFirstFrame >= 0) + { + // UPGRADE: Use GetTickCount64() when we stop supporting Windows XP. + DWORD TickCount = GetTickCount(); + + // Keep in sync with an opposite condition at the end of the loop. + // We may skip some frames if we got stalled for a while + while (TickCount >= FNextFrameTick) + { + if (FCurrentFrame >= FLastFrame) + { + FCurrentFrame = FFirstLoopFrame; + } + else + { + FCurrentFrame++; + } + + CalculateNextFrameTick(); + + Repaint(); + } + } +} +//--------------------------------------------------------------------------- +TPngImageCollectionItem * __fastcall TFrameAnimation::GetCurrentImage() +{ + return FImageList->PngImages->Items[FCurrentFrame]; +} +//--------------------------------------------------------------------------- +void __fastcall TFrameAnimation::CalculateNextFrameTick() +{ + TPngImageCollectionItem * ImageItem = GetCurrentImage(); + UnicodeString Duration = ImageItem->Name; + CutToChar(Duration, L'_', false); + // skip index (is not really used) + CutToChar(Duration, L'_', false); + // This should overflow, when tick count wraps. + FNextFrameTick += StrToInt(Duration) * 10; +} +//--------------------------------------------------------------------------- diff --git a/source/windows/GUITools.h b/source/windows/GUITools.h index 0bea3a39..7038ee99 100644 --- a/source/windows/GUITools.h +++ b/source/windows/GUITools.h @@ -43,6 +43,12 @@ void __fastcall ApplyTabs( UnicodeString & Text, wchar_t Padding, TCalculateWidth CalculateWidth, void * CalculateWidthArg); TPanel * __fastcall CreateLabelPanel(TPanel * Parent, const UnicodeString & Label); +void __fastcall SelectScaledImageList(TImageList * ImageList); +void __fastcall CopyDataModule(TDataModule * TargetModule, TDataModule * SourceModule); +void __fastcall CopyImageList(TImageList * TargetList, TImageList * SourceList); +void __fastcall LoadDialogImage(TImage * Image, const UnicodeString & ImageName); +int __fastcall DialogImageSize(); +void __fastcall HideComponentsPanel(TForm * Form); namespace Webbrowserex { class TWebBrowserEx; @@ -52,6 +58,7 @@ TWebBrowserEx * __fastcall CreateBrowserViewer(TPanel * Parent, const UnicodeStr void __fastcall SetBrowserDesignModeOff(TWebBrowserEx * WebBrowser); void __fastcall AddBrowserLinkHandler(TWebBrowserEx * WebBrowser, const UnicodeString & Url, TNotifyEvent Handler); +void __fastcall NavigateBrowserToUrl(TWebBrowserEx * WebBrowser, const UnicodeString & Url); //--------------------------------------------------------------------------- class TLocalCustomCommand : public TFileCustomCommand { @@ -75,6 +82,41 @@ class TLocalCustomCommand : public TFileCustomCommand UnicodeString FLocalFileName; }; //--------------------------------------------------------------------------- +namespace Pngimagelist +{ + class TPngImageList; + class TPngImageCollectionItem; +} +using namespace Pngimagelist; +//--------------------------------------------------------------------------- +class TFrameAnimation +{ +public: + __fastcall TFrameAnimation(); + void __fastcall Init(TPaintBox * PaintBox, const UnicodeString & Name); + void __fastcall Start(); + void __fastcall Stop(); + +private: + TPaintBox * FPaintBox; + TPngImageList * FImageList; + int FFirstFrame; + int FFirstLoopFrame; + int FLastFrame; + int FCurrentFrame; + DWORD FNextFrameTick; + TTimer * FTimer; + bool FPainted; + + void __fastcall DoInit(TPaintBox * PaintBox, TPngImageList * ImageList, const UnicodeString & Name, bool Null); + void __fastcall PaintBoxPaint(TObject * Sender); + void __fastcall CalculateNextFrameTick(); + TPngImageCollectionItem * __fastcall GetCurrentImage(); + void __fastcall Animate(); + void __fastcall Timer(TObject * Sender); + void __fastcall Repaint(); +}; +//--------------------------------------------------------------------------- extern const UnicodeString PageantTool; extern const UnicodeString PuttygenTool; //--------------------------------------------------------------------------- diff --git a/source/windows/QueueController.cpp b/source/windows/QueueController.cpp index ce3961a6..b8e5f2c0 100644 --- a/source/windows/QueueController.cpp +++ b/source/windows/QueueController.cpp @@ -16,12 +16,12 @@ __fastcall TQueueController::TQueueController(TListView * ListView) { FListView = ListView; - assert(FListView != NULL); - assert(FListView->OnDblClick == NULL); + DebugAssert(FListView != NULL); + DebugAssert(FListView->OnDblClick == NULL); FListView->OnDblClick = QueueViewDblClick; - assert(FListView->OnKeyDown == NULL); + DebugAssert(FListView->OnKeyDown == NULL); FListView->OnKeyDown = QueueViewKeyDown; - assert(FListView->OnCustomDrawItem == NULL); + DebugAssert(FListView->OnCustomDrawItem == NULL); FListView->OnCustomDrawItem = QueueViewCustomDrawItem; FQueueStatus = NULL; @@ -32,11 +32,11 @@ __fastcall TQueueController::TQueueController(TListView * ListView) //--------------------------------------------------------------------------- __fastcall TQueueController::~TQueueController() { - assert(FListView->OnDblClick == QueueViewDblClick); + DebugAssert(FListView->OnDblClick == QueueViewDblClick); FListView->OnDblClick = NULL; - assert(FListView->OnKeyDown == QueueViewKeyDown); + DebugAssert(FListView->OnKeyDown == QueueViewKeyDown); FListView->OnKeyDown = NULL; - assert(FListView->OnCustomDrawItem == QueueViewCustomDrawItem); + DebugAssert(FListView->OnCustomDrawItem == QueueViewCustomDrawItem); FListView->OnCustomDrawItem = NULL; } //--------------------------------------------------------------------------- @@ -184,7 +184,7 @@ bool __fastcall TQueueController::AllowOperation( return (FQueueStatus != NULL) && (FQueueStatus->Count > 0); default: - FAIL; + DebugFail(); return false; } } @@ -285,7 +285,7 @@ void __fastcall TQueueController::ExecuteOperation(TQueueOperation Operation, break; default: - FAIL; + DebugFail(); break; } } @@ -293,9 +293,9 @@ void __fastcall TQueueController::ExecuteOperation(TQueueOperation Operation, void __fastcall TQueueController::FillQueueViewItem(TListItem * Item, TQueueItemProxy * QueueItem, bool Detail) { - assert(!Detail || (QueueItem->Status != TQueueItem::qsPending)); + DebugAssert(!Detail || (QueueItem->Status != TQueueItem::qsPending)); - assert((Item->Data == NULL) || (Item->Data == QueueItem)); + DebugAssert((Item->Data == NULL) || (Item->Data == QueueItem)); Item->Data = QueueItem; UnicodeString ProgressStr; @@ -455,7 +455,7 @@ TListItem * __fastcall TQueueController::InsertItemFor(TQueueItemProxy * QueueIt else { Item = FListView->Items->Item[Index]; - assert(Item->Data == QueueItem); + DebugAssert(Item->Data == QueueItem); } return Item; } @@ -494,7 +494,7 @@ void __fastcall TQueueController::UpdateQueueStatus( FillQueueViewItem(Item, QueueItem, false); Index++; - assert((QueueItem->Status != TQueueItem::qsPending) == + DebugAssert((QueueItem->Status != TQueueItem::qsPending) == (ItemIndex < FQueueStatus->DoneAndActiveCount)); if (UseDetailsLine(ItemIndex, QueueItem)) @@ -532,7 +532,7 @@ void __fastcall TQueueController::RefreshQueueItem(TQueueItemProxy * QueueItem) TListItem * ListItem; ListItem = FListView->FindData(0, QueueItem, true, false); - assert(ListItem != NULL); + DebugAssert(ListItem != NULL); int Index = ListItem->Index; if (Index + 1 < FListView->Items->Count) diff --git a/source/windows/Setup.cpp b/source/windows/Setup.cpp index 6c557e13..c63b9234 100644 --- a/source/windows/Setup.cpp +++ b/source/windows/Setup.cpp @@ -13,8 +13,9 @@ #include #include #include +#include #include -#include +#include #include #include #include "WinConfiguration.h" @@ -24,6 +25,10 @@ #include #include "ProgParams.h" #include +#include +#include +#include +#include //--------------------------------------------------------------------------- #define KEY _T("SYSTEM\\CurrentControlSet\\Control\\") \ _T("Session Manager\\Environment") @@ -488,7 +493,7 @@ static void __fastcall RegisterProtocolForDefaultPrograms(HKEY RootKey, const Un Abort(); } - UnicodeString Description = LoadStr(REGISTERED_APP_DESC); + UnicodeString Description = LoadStr(REGISTERED_APP_DESC2); Registry->WriteString(L"ApplicationDescription", Description); if (!Registry->OpenKey(L"UrlAssociations", true)) @@ -561,8 +566,10 @@ static void __fastcall RegisterProtocolsForDefaultPrograms(HKEY RootKey) RegisterProtocolForDefaultPrograms(RootKey, FtpProtocol); RegisterProtocolForDefaultPrograms(RootKey, FtpsProtocol); + RegisterProtocolForDefaultPrograms(RootKey, FtpesProtocol); RegisterProtocolForDefaultPrograms(RootKey, SftpProtocol); RegisterProtocolForDefaultPrograms(RootKey, ScpProtocol); + RegisterProtocolForDefaultPrograms(RootKey, SshProtocol); // deliberately not including WebDAV/http, // it's unlikely that anyone would like to change http handler // to non-browser application @@ -572,8 +579,10 @@ static void __fastcall UnregisterProtocolsForDefaultPrograms(HKEY RootKey, bool { UnregisterProtocolForDefaultPrograms(RootKey, FtpProtocol, ForceHandlerUnregistration); UnregisterProtocolForDefaultPrograms(RootKey, FtpsProtocol, ForceHandlerUnregistration); + UnregisterProtocolForDefaultPrograms(RootKey, FtpesProtocol, ForceHandlerUnregistration); UnregisterProtocolForDefaultPrograms(RootKey, SftpProtocol, ForceHandlerUnregistration); UnregisterProtocolForDefaultPrograms(RootKey, ScpProtocol, ForceHandlerUnregistration); + UnregisterProtocolForDefaultPrograms(RootKey, SshProtocol, ForceHandlerUnregistration); // we should not really need the "force" flag here, but why not UnregisterAsUrlHandler(RootKey, GenericUrlHandler, true, true); @@ -620,8 +629,10 @@ void __fastcall RegisterForDefaultProtocols() RegisterAsNonBrowserUrlHandler(WinSCPProtocolPrefix); RegisterAsUrlHandler(WinSCPProtocolPrefix + FtpProtocol.UpperCase()); RegisterAsUrlHandler(WinSCPProtocolPrefix + FtpsProtocol.UpperCase()); + RegisterAsUrlHandler(WinSCPProtocolPrefix + FtpesProtocol.UpperCase()); RegisterAsUrlHandler(WinSCPProtocolPrefix + WebDAVProtocol.UpperCase()); RegisterAsUrlHandler(WinSCPProtocolPrefix + WebDAVSProtocol.UpperCase()); + RegisterAsUrlHandler(WinSCPProtocolPrefix + SshProtocol.UpperCase()); NotifyChangedAssociations(); } @@ -632,8 +643,10 @@ void __fastcall UnregisterForProtocols() UnregisterAsUrlHandlers(WinSCPProtocolPrefix, true); UnregisterAsUrlHandler(WinSCPProtocolPrefix + FtpProtocol.UpperCase(), true); UnregisterAsUrlHandler(WinSCPProtocolPrefix + FtpsProtocol.UpperCase(), true); + UnregisterAsUrlHandler(WinSCPProtocolPrefix + FtpesProtocol.UpperCase(), true); UnregisterAsUrlHandler(WinSCPProtocolPrefix + WebDAVProtocol.UpperCase(), true); UnregisterAsUrlHandler(WinSCPProtocolPrefix + WebDAVSProtocol.UpperCase(), true); + UnregisterAsUrlHandler(WinSCPProtocolPrefix + SshProtocol.UpperCase(), true); UnregisterProtocolsForDefaultPrograms(HKEY_CURRENT_USER, false); UnregisterProtocolsForDefaultPrograms(HKEY_LOCAL_MACHINE, false); @@ -643,22 +656,29 @@ void __fastcall UnregisterForProtocols() //--------------------------------------------------------------------------- void __fastcall LaunchAdvancedAssociationUI() { - assert(IsWinVista()); + DebugAssert(IsWinVista()); RegisterForDefaultPrograms(); NotifyChangedAssociations(); // sleep recommended by http://msdn.microsoft.com/en-us/library/windows/desktop/cc144154.aspx#browser Sleep(1000); - IApplicationAssociationRegistrationUI * AppAssocRegUI; - - HRESULT Result = - CoCreateInstance(CLSID_ApplicationAssociationRegistrationUI, - NULL, CLSCTX_INPROC, __uuidof(IApplicationAssociationRegistrationUI), (void**)&AppAssocRegUI); - if (SUCCEEDED(Result)) + if (IsWin10()) { - AppAssocRegUI->LaunchAdvancedAssociationUI(AppNameString().c_str()); - AppAssocRegUI->Release(); + ExecuteShell(L"control.exe", L"/name Microsoft.DefaultPrograms"); + } + else + { + IApplicationAssociationRegistrationUI * AppAssocRegUI; + + HRESULT Result = + CoCreateInstance(CLSID_ApplicationAssociationRegistrationUI, + NULL, CLSCTX_INPROC, __uuidof(IApplicationAssociationRegistrationUI), (void**)&AppAssocRegUI); + if (SUCCEEDED(Result)) + { + AppAssocRegUI->LaunchAdvancedAssociationUI(AppNameString().c_str()); + AppAssocRegUI->Release(); + } } } //--------------------------------------------------------------------------- @@ -743,7 +763,7 @@ UnicodeString __fastcall VersionStrFromCompoundVersion(int Version) UnicodeString __fastcall CampaignUrl(UnicodeString URL) { int CurrentCompoundVer = Configuration->CompoundVersion; - AnsiString Version = VersionStrFromCompoundVersion(CurrentCompoundVer); + UnicodeString Version = VersionStrFromCompoundVersion(CurrentCompoundVer); UnicodeString Params = FORMAT(L"utm_source=winscp&utm_medium=app&utm_campaign=%s", (Version)); return AppendUrlParams(URL, Params); @@ -806,144 +826,233 @@ static UnicodeString __fastcall WantBetaUrl(UnicodeString URL, bool Force) return URL; } //--------------------------------------------------------------------------- -void __fastcall QueryUpdates() +static THttp * __fastcall CreateHttp(const TUpdatesConfiguration & Updates) +{ + std::unique_ptr Http(new THttp()); + + UnicodeString ProxyHost; + int ProxyPort = 0; + + switch (Updates.ConnectionType) + { + case ctAuto: + if (AutodetectProxy(ProxyHost, ProxyPort)) + { + Configuration->Usage->Inc(L"UpdateProxyAutodetected"); + } + break; + + case ctProxy: + ProxyHost = Updates.ProxyHost; + ProxyPort = Updates.ProxyPort; + Configuration->Usage->Inc(L"UpdateProxyManual"); + break; + } + + Http->ProxyHost = ProxyHost; + Http->ProxyPort = ProxyPort; + + return Http.release(); +} +//--------------------------------------------------------------------------- +static bool __fastcall DoQueryUpdates(TUpdatesConfiguration & Updates, bool CollectUsage) { bool Complete = false; + UnicodeString Response; + THttp * CheckForUpdatesHTTP = CreateHttp(Updates); try { - UnicodeString Response; - - int CurrentCompoundVer = Configuration->CompoundVersion; + UnicodeString URL = ProgramUrl(LoadStr(UPDATES_URL)); + URL = WantBetaUrl(URL, false); + URL += L"&dotnet=" + Updates.DotNetVersion; + URL += L"&console=" + Updates.ConsoleVersion; + UnicodeString LocaleVersion = WinConfiguration->LocaleVersion(); + if (!LocaleVersion.IsEmpty()) + { + URL += L"&localever=" + LocaleVersion; + URL += L"&localecompl=" + LoadStr(TRANSLATION_COMPLETENESS); + } + if (!Updates.AuthenticationEmail.IsEmpty()) + { + RawByteString AuthenticationEmailBuf = RawByteString(UTF8String(Updates.AuthenticationEmail.LowerCase())); + URL += L"&authentication=" + Sha256(AuthenticationEmailBuf.c_str(), AuthenticationEmailBuf.Length()).LowerCase(); + } - TUpdatesConfiguration Updates = WinConfiguration->Updates; - THttp * CheckForUpdatesHTTP = new THttp(Application); - try + CheckForUpdatesHTTP->URL = URL; + // sanity check + CheckForUpdatesHTTP->ResponseLimit = 102400; + if (CollectUsage) { - UnicodeString URL = ProgramUrl(LoadStr(UPDATES_URL)); - URL = WantBetaUrl(URL, false); - URL += L"&dotnet=" + Updates.DotNetVersion; - URL += L"&console=" + Updates.ConsoleVersion; - UnicodeString Proxy; - switch (Updates.ConnectionType) - { - case ctAuto: - AutodetectProxyUrl(Proxy); - if (!Proxy.IsEmpty()) - { - Configuration->Usage->Inc(L"UpdateProxyAutodetected"); - } - break; + UnicodeString Usage = GetUsageData(); - case ctProxy: - Proxy = FORMAT(L"%s:%d", (Updates.ProxyHost, Updates.ProxyPort)); - Configuration->Usage->Inc(L"UpdateProxyManual"); - break; - } - CheckForUpdatesHTTP->Proxy = Proxy; - CheckForUpdatesHTTP->URL = URL; - if (Configuration->CollectUsage) - { - UTF8String UtfUsage = UTF8String(GetUsageData()); - CheckForUpdatesHTTP->Stream->Write(UtfUsage.c_str(), UtfUsage.Length()); - CheckForUpdatesHTTP->Post(); - } - else - { - CheckForUpdatesHTTP->Action(); - } - // sanity check - if (CheckForUpdatesHTTP->Stream->Size > 102400) - { - Abort(); - } - UTF8String UtfResponse; - UtfResponse.SetLength(static_cast(CheckForUpdatesHTTP->Stream->Size)); - CheckForUpdatesHTTP->Stream->Read(UtfResponse.c_str(), UtfResponse.Length()); - Response = UnicodeString(UtfResponse); + CheckForUpdatesHTTP->Post(Usage); } - __finally + else { - delete CheckForUpdatesHTTP; + CheckForUpdatesHTTP->Get(); } + Response = CheckForUpdatesHTTP->Response; + } + __finally + { + delete CheckForUpdatesHTTP; + } - bool Changed = !Updates.HaveResults; - Updates.LastCheck = Now(); - Updates.HaveResults = true; - TUpdatesData PrevResults = Updates.Results; - Updates.Results.Reset(); - Updates.Results.ForVersion = CurrentCompoundVer; + int CurrentCompoundVer = Configuration->CompoundVersion; + + bool Changed = !Updates.HaveResults; + Updates.LastCheck = Now(); + Updates.HaveResults = true; + TUpdatesData PrevResults = Updates.Results; + Updates.Results.Reset(); + Updates.Results.ForVersion = CurrentCompoundVer; - while (!Response.IsEmpty()) + while (!Response.IsEmpty()) + { + UnicodeString Line = CutToChar(Response, L'\n', false); + UnicodeString Name = CutToChar(Line, L'=', false); + if (AnsiSameText(Name, "Version")) { - UnicodeString Line = ::CutToChar(Response, L'\n', false); - UnicodeString Name = ::CutToChar(Line, L'=', false); - if (AnsiSameText(Name, "Version")) - { - int MajorVer = StrToInt(::CutToChar(Line, L'.', false)); - int MinorVer = StrToInt(::CutToChar(Line, L'.', false)); - int Release = StrToInt(::CutToChar(Line, L'.', false)); - int Build = StrToInt(::CutToChar(Line, L'.', false)); - int NewVersion = CalculateCompoundVersion(MajorVer, MinorVer, Release, Build); - Changed |= (NewVersion != PrevResults.Version); - if (NewVersion <= CurrentCompoundVer) - { - NewVersion = 0; - } - Updates.Results.Version = NewVersion; - Complete = true; - } - else if (AnsiSameText(Name, L"Message")) - { - Changed |= (PrevResults.Message != Line); - Updates.Results.Message = Line; - } - else if (AnsiSameText(Name, L"Critical")) - { - bool NewCritical = (StrToIntDef(Line, 0) != 0); - Changed |= (PrevResults.Critical != NewCritical); - Updates.Results.Critical = NewCritical; - } - else if (AnsiSameText(Name, L"Release")) + int MajorVer = StrToInt(CutToChar(Line, L'.', false)); + int MinorVer = StrToInt(CutToChar(Line, L'.', false)); + int Release = StrToInt(CutToChar(Line, L'.', false)); + int Build = StrToInt(CutToChar(Line, L'.', false)); + int NewVersion = CalculateCompoundVersion(MajorVer, MinorVer, Release, Build); + Changed |= (NewVersion != PrevResults.Version); + if (NewVersion <= CurrentCompoundVer) { - Changed |= (PrevResults.Release != Line); - Updates.Results.Release = Line; + NewVersion = 0; } - else if (AnsiSameText(Name, L"Disabled")) - { - bool NewDisabled = (StrToIntDef(Line, 0) != 0); - Changed |= (PrevResults.Disabled != NewDisabled); - Updates.Results.Disabled = NewDisabled; - Complete = true; - } - else if (AnsiSameText(Name, L"Url")) - { - Changed |= (PrevResults.Url != Line); - Updates.Results.Url = Line; - } - else if (AnsiSameText(Name, L"UrlButton")) - { - Changed |= (PrevResults.UrlButton != Line); - Updates.Results.UrlButton = Line; - } - else if (AnsiSameText(Name, L"NewsUrl")) + Updates.Results.Version = NewVersion; + Complete = true; + } + else if (AnsiSameText(Name, L"Message")) + { + Changed |= (PrevResults.Message != Line); + Updates.Results.Message = Line; + } + else if (AnsiSameText(Name, L"Critical")) + { + bool NewCritical = (StrToIntDef(Line, 0) != 0); + Changed |= (PrevResults.Critical != NewCritical); + Updates.Results.Critical = NewCritical; + } + else if (AnsiSameText(Name, L"Release")) + { + Changed |= (PrevResults.Release != Line); + Updates.Results.Release = Line; + } + else if (AnsiSameText(Name, L"Disabled")) + { + bool NewDisabled = (StrToIntDef(Line, 0) != 0); + Changed |= (PrevResults.Disabled != NewDisabled); + Updates.Results.Disabled = NewDisabled; + Complete = true; + } + else if (AnsiSameText(Name, L"Url")) + { + Changed |= (PrevResults.Url != Line); + Updates.Results.Url = Line; + } + else if (AnsiSameText(Name, L"UrlButton")) + { + Changed |= (PrevResults.UrlButton != Line); + Updates.Results.UrlButton = Line; + } + else if (AnsiSameText(Name, L"NewsUrl")) + { + Changed |= (PrevResults.NewsUrl != Line); + Updates.Results.NewsUrl = Line; + } + else if (AnsiSameText(Name, L"NewsSize")) + { + TSize NewsSize; + NewsSize.Width = StrToIntDef(CutToChar(Line, L',', true), 0); + NewsSize.Height = StrToIntDef(CutToChar(Line, L',', true), 0); + Changed |= (PrevResults.NewsSize != NewsSize); + Updates.Results.NewsSize = NewsSize; + } + else if (AnsiSameText(Name, L"DownloadUrl")) + { + Changed |= (PrevResults.DownloadUrl != Line); + Updates.Results.DownloadUrl = Line; + } + else if (AnsiSameText(Name, L"DownloadSize")) + { + Updates.Results.DownloadSize = StrToInt64Def(Line, 0); + } + else if (AnsiSameText(Name, L"DownloadSha256")) + { + Updates.Results.DownloadSha256 = Line; + } + else if (AnsiSameText(Name, L"AuthenticationError")) + { + Changed |= (PrevResults.AuthenticationError != Line); + Updates.Results.AuthenticationError = Line; + } + else if (AnsiSameText(Name, L"OpenGettingStarted")) + { + Updates.Results.OpenGettingStarted = (StrToIntDef(Line, 0) != 0); + } + else if (AnsiSameText(Name, L"DownloadingUrl")) + { + Updates.Results.DownloadingUrl = Line; + } + else if (AnsiSameText(Name, L"TipsSize")) + { + TSize TipsSize; + TipsSize.Width = StrToIntDef(CutToChar(Line, L',', true), 0); + TipsSize.Height = StrToIntDef(CutToChar(Line, L',', true), 0); + Updates.Results.TipsSize = TipsSize; + } + else if (AnsiSameText(Name, L"TipsUrl")) + { + Updates.Results.TipsUrl = Line; + } + else if (AnsiSameText(Name, L"Tips")) + { + Updates.Results.Tips = Line; + } + else if (AnsiSameText(Name, L"TipsIntervalDays")) + { + int TipsIntervalDays = StrToIntDef(Line, Updates.Results.TipsIntervalDays); + if (TipsIntervalDays < 0) { - Changed |= (PrevResults.NewsUrl != Line); - Updates.Results.NewsUrl = Line; + TipsIntervalDays = Updates.Results.TipsIntervalDays; } - else if (AnsiSameText(Name, L"NewsSize")) + Updates.Results.TipsIntervalDays = TipsIntervalDays; + } + else if (AnsiSameText(Name, L"TipsIntervalRuns")) + { + int TipsIntervalRuns = StrToIntDef(Line, Updates.Results.TipsIntervalRuns); + if (TipsIntervalRuns < 0) { - TSize NewsSize; - NewsSize.Width = StrToIntDef(::CutToChar(Line, L',', true), 0); - NewsSize.Height = StrToIntDef(::CutToChar(Line, L',', true), 0); - Changed |= (PrevResults.NewsSize != NewsSize); - Updates.Results.NewsSize = NewsSize; + TipsIntervalRuns = Updates.Results.TipsIntervalRuns; } + Updates.Results.TipsIntervalRuns = TipsIntervalRuns; } + } - if (Changed) - { - Updates.ShownResults = false; - } + if (Changed) + { + Updates.ShownResults = false; + } + + return Complete; +} +//--------------------------------------------------------------------------- +bool __fastcall QueryUpdates(TUpdatesConfiguration & Updates) +{ + return DoQueryUpdates(Updates, false); +} +//--------------------------------------------------------------------------- +static void __fastcall DoQueryUpdates(bool CollectUsage) +{ + try + { + TUpdatesConfiguration Updates = WinConfiguration->Updates; + + bool Complete = DoQueryUpdates(Updates, CollectUsage); WinConfiguration->Updates = Updates; @@ -962,11 +1071,22 @@ void __fastcall QueryUpdates() } } //--------------------------------------------------------------------------- +UnicodeString __fastcall FormatUpdatesMessage(UnicodeString Message) +{ + Message = ReplaceStr(Message, "%UPDATE_UNAUTHORIZED%", LoadStr(UPDATE_UNAUTHORIZED)); + Message = ReplaceStr(Message, "%UPDATE_EXPIRED%", LoadStr(UPDATE_EXPIRED)); + Message = ReplaceStr(Message, "%UPDATE_TOO_MANY%", LoadStr(UPDATE_TOO_MANY)); + Message = ReplaceStr(Message, "%UPDATE_MISSING_ADDRESS%", LoadStr(UPDATE_MISSING_ADDRESS)); + Message = ReplaceStr(Message, "%UPDATE_TOO_LOW%", LoadStr(UPDATE_TOO_LOW)); + Message = ReplaceStr(Message, L"|", L"\n"); + return Message; +} +//--------------------------------------------------------------------------- void __fastcall GetUpdatesMessage(UnicodeString & Message, bool & New, TQueryType & Type, bool Force) { TUpdatesConfiguration Updates = WinConfiguration->Updates; - assert(Updates.HaveResults); + DebugAssert(Updates.HaveResults); if (Updates.HaveResults) { if (Updates.Results.Disabled) @@ -1003,8 +1123,13 @@ void __fastcall GetUpdatesMessage(UnicodeString & Message, bool & New, if (!Updates.Results.Message.IsEmpty()) { Message += - FMTLOAD(UPDATE_MESSAGE, - (ReplaceStr(Updates.Results.Message, L"|", L"\n"))); + FMTLOAD(UPDATE_MESSAGE, (FormatUpdatesMessage(Updates.Results.Message))); + } + + if (!Updates.Results.AuthenticationError.IsEmpty()) + { + Message += + FMTLOAD(UPDATE_MESSAGE, (FormatUpdatesMessage(Updates.Results.AuthenticationError))); } Type = (Updates.Results.Critical ? qtWarning : qtInformation); } @@ -1014,12 +1139,333 @@ void __fastcall GetUpdatesMessage(UnicodeString & Message, bool & New, } } //--------------------------------------------------------------------------- +UnicodeString __fastcall GetEnableAutomaticUpdatesUrl() +{ + return AppendUrlParams(LoadStr(DONATE_URL), L"automaticupdates=1"); +} +//--------------------------------------------------------------------------- +void __fastcall EnableAutomaticUpdates() +{ + OpenBrowser(GetEnableAutomaticUpdatesUrl()); +} +//--------------------------------------------------------------------------- static void __fastcall OpenHistory(void * /*Data*/, TObject * /*Sender*/) { Configuration->Usage->Inc(L"UpdateHistoryOpens"); OpenBrowser(LoadStr(HISTORY_URL)); } //--------------------------------------------------------------------------- +static int __fastcall DownloadSizeToProgress(__int64 Size) +{ + return static_cast(Size / 1024); +} +//--------------------------------------------------------------------------- +class TUpdateDownloadThread : public TCompThread +{ +public: + __fastcall TUpdateDownloadThread(TProgressBar * ProgressBar); + virtual __fastcall ~TUpdateDownloadThread(); + + void __fastcall CancelClicked(TObject * Sender); + + bool __fastcall CancelDownload(); + +protected: + virtual void __fastcall Execute(); + void __fastcall UpdateDownloaded(); + void __fastcall HttpDownload(THttp * Sender, __int64 Size, bool & Cancel); + void __fastcall UpdateProgress(); + void __fastcall ShowException(); + void __fastcall DownloadNotVerified(); + void __fastcall CancelForm(); + +private: + TCustomForm * FForm; + TProgressBar * FProgressBar; + __int64 FDownloaded; + std::unique_ptr FException; + std::unique_ptr FHttp; + TUpdatesConfiguration FUpdates; +}; +//--------------------------------------------------------------------------- +__fastcall TUpdateDownloadThread::TUpdateDownloadThread(TProgressBar * ProgressBar) : + TCompThread(true) +{ + // cache, as the progress bar miht be destroyed already when + // we need the form at the end of Execute() + FForm = GetParentForm(ProgressBar); + FProgressBar = ProgressBar; + // cache to prevent concurrency + FUpdates = WinConfiguration->Updates; +} +//--------------------------------------------------------------------------- +__fastcall TUpdateDownloadThread::~TUpdateDownloadThread() +{ +} +//--------------------------------------------------------------------------- +void __fastcall TUpdateDownloadThread::Execute() +{ + try + { + try + { + FHttp.reset(CreateHttp(FUpdates)); + FHttp->URL = FUpdates.Results.DownloadUrl; + FHttp->OnDownload = HttpDownload; + FHttp->Get(); + } + catch (EAbort &) + { + throw; + } + catch (Exception & E) + { + Configuration->Usage->Inc(L"UpdateFailuresDownload"); + throw ExtException(&E, MainInstructions(LoadStr(UPDATE_DOWNLOAD_ERROR))); + } + + Synchronize(UpdateDownloaded); + } + catch (EAbort &) + { + // noop + } + catch (Exception & E) + { + Configuration->Usage->Inc(L"UpdateFailures"); + FException.reset(CloneException(&E)); + Synchronize(ShowException); + } + + Synchronize(CancelForm); +} +//--------------------------------------------------------------------------- +void __fastcall TUpdateDownloadThread::CancelForm() +{ + FForm->ModalResult = mrCancel; +} +//--------------------------------------------------------------------------- +void __fastcall TUpdateDownloadThread::UpdateDownloaded() +{ + size_t Size = static_cast(FHttp->ResponseLength); + const char * Buffer = FHttp->ResponseRaw.c_str(); + + if (FHttp->ResponseLength != FUpdates.Results.DownloadSize) + { + DownloadNotVerified(); + } + + UnicodeString Digest = Sha256(Buffer, Size); + + if (!SameText(FUpdates.Results.DownloadSha256, Digest)) + { + DownloadNotVerified(); + } + + UnicodeString FileName = FUpdates.Results.DownloadUrl; + int P = FileName.Pos(L"?"); + if (P > 0) + { + FileName.SetLength(P - 1); + } + P = FileName.LastDelimiter("/"); + if (DebugAlwaysTrue(P > 0)) + { + FileName.Delete(1, P); + } + UnicodeString TemporaryDirectory = WinConfiguration->ExpandedTemporaryDirectory(); + UnicodeString SetupPathBase = IncludeTrailingBackslash(TemporaryDirectory) + FileName; + UnicodeString SetupPath = SetupPathBase; + int Index = 0; + while (FileExists(SetupPath)) + { + Index++; + SetupPath = + ExtractFilePath(SetupPathBase) + ExtractFileNameOnly(SetupPathBase) + + FORMAT(".%d", (Index)) + ExtractFileExt(SetupPathBase); + } + + std::unique_ptr FileStream(new TFileStream(SetupPath, fmCreate)); + FileStream->Write(Buffer, Size); + FileStream.reset(NULL); + + UnicodeString Params = L"/SILENT /NORESTART /AutomaticUpdate"; + if (FUpdates.Results.OpenGettingStarted) + { + Params += L" /OpenGettingStarted"; + } + + if (!ExecuteShell(SetupPath, Params)) + { + throw Exception(FMTLOAD(EXECUTE_APP_ERROR, (SetupPath))); + } + + Configuration->Usage->Inc(L"UpdateRuns"); + Application->Terminate(); +} +//--------------------------------------------------------------------------- +void __fastcall TUpdateDownloadThread::DownloadNotVerified() +{ + throw Exception(MainInstructions(LoadStr(UPDATE_VERIFY_ERROR))); +} +//--------------------------------------------------------------------------- +void __fastcall TUpdateDownloadThread::HttpDownload(THttp * /*Sender*/, __int64 Size, bool & Cancel) +{ + FDownloaded = Size; + Synchronize(UpdateProgress); + + // Do not waste bandwidth, if something goes wrong + if (FDownloaded > FUpdates.Results.DownloadSize) + { + DownloadNotVerified(); + } + + if (Terminated) + { + Cancel = true; + } +} +//--------------------------------------------------------------------------- +void __fastcall TUpdateDownloadThread::UpdateProgress() +{ + FProgressBar->Position = DownloadSizeToProgress(FDownloaded); +} +//--------------------------------------------------------------------------- +void __fastcall TUpdateDownloadThread::ShowException() +{ + DebugAssert(FException.get() != NULL); + ShowExtendedException(FException.get()); +} +//--------------------------------------------------------------------------- +bool __fastcall TUpdateDownloadThread::CancelDownload() +{ + bool Result = !Terminated; + if (Result) + { + Configuration->Usage->Inc(L"UpdateDownloadCancels"); + Terminate(); + } + return Result; +} +//--------------------------------------------------------------------------- +void __fastcall TUpdateDownloadThread::CancelClicked(TObject * /*Sender*/) +{ + if (CancelDownload()) + { + Terminate(); + WaitFor(); + } +} +//--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- +class TUpdateDownloadData : public TComponent +{ +public: + TUpdateDownloadThread * Thread; + + __fastcall TUpdateDownloadData() : + TComponent(NULL) + { + } + + virtual __fastcall ~TUpdateDownloadData() + { + // will stop the thread + delete Thread; + } + + static TUpdateDownloadData * __fastcall Retrieve(TObject * Object) + { + TComponent * Component = DebugNotNull(dynamic_cast(Object)); + TComponent * UpdateDownloadDataComponent = Component->FindComponent(QualifiedClassName()); + return DebugNotNull(dynamic_cast(UpdateDownloadDataComponent)); + } +}; +//--------------------------------------------------------------------------- +static void __fastcall DownloadClose(void * /*Data*/, TObject * Sender, TCloseAction & Action) +{ + TUpdateDownloadData * UpdateDownloadData = TUpdateDownloadData::Retrieve(Sender); + if (UpdateDownloadData->Thread->CancelDownload()) + { + Action = caNone; + } +} +//--------------------------------------------------------------------------- +static void __fastcall DownloadUpdate(void * /*Data*/, TObject * Sender) +{ + Configuration->Usage->Inc(L"UpdateDownloadStarts"); + TButton * Button = DebugNotNull(dynamic_cast(Sender)); + TForm * Form = DebugNotNull(dynamic_cast(GetParentForm(Button))); + TPanel * Panel = CreateBlankPanel(Form); + + TProgressBar * ProgressBar = new TProgressBar(Panel); + ProgressBar->Anchors = TAnchors() << akLeft << akTop << akRight; + ProgressBar->Top = 0; + ProgressBar->Left = 0; + ProgressBar->Width = Panel->Width; + ProgressBar->Parent = Panel; + ProgressBar->Max = DownloadSizeToProgress(WinConfiguration->Updates.Results.DownloadSize); + Panel->Height = ProgressBar->Height; + + InsertPanelToMessageDialog(Form, Panel); + + Button->Enabled = false; + + TButton * CancelButton = dynamic_cast(Form->FindComponent(L"Cancel")); + CancelButton->Caption = Vcl_Consts_SMsgDlgCancel; + + TUpdateDownloadThread * Thread = new TUpdateDownloadThread(ProgressBar); + // The form becomes owner of the thread (via TUpdateDownloadData), + // so the thread is automatically stopped when the form closes, if the "cancel" is pressed. + // But it gets done only after the form controls are gone, and the thread + // might try to access them meanwhile. So we stop the thread explicitly. + CancelButton->OnClick = Thread->CancelClicked; + + TUpdateDownloadData * Data = new TUpdateDownloadData(); + Data->Name = TUpdateDownloadData::QualifiedClassName(); + Data->Thread = Thread; + Form->InsertComponent(Data); + + UnicodeString DownloadingUrl = WinConfiguration->Updates.Results.DownloadingUrl; + if (!DownloadingUrl.IsEmpty()) + { + NavigateMessageDialogToUrl(Form, DownloadingUrl); + } + + DebugAssert(Form->OnClose == NULL); + Form->OnClose = MakeMethod(NULL, DownloadClose); + + Thread->Resume(); +} +//--------------------------------------------------------------------------- +static void __fastcall UpdatesDonateClick(void * /*Data*/, TObject * /*Sender*/) +{ + EnableAutomaticUpdates(); +} +//--------------------------------------------------------------------------- +static void __fastcall InsertDonateLink(void * /*Data*/, TObject * Sender) +{ + TForm * Dialog = DebugNotNull(dynamic_cast(Sender)); + TPanel * Panel = CreateBlankPanel(Dialog); + + TStaticText * StaticText = new TStaticText(Panel); + StaticText->Top = 0; + StaticText->Left = 0; + StaticText->AutoSize = true; + StaticText->Caption = LoadStr(UPDATES_DONATE_LINK); + StaticText->Parent = Panel; + StaticText->OnClick = MakeMethod(NULL, UpdatesDonateClick); + StaticText->TabStop = true; + + LinkLabel(StaticText); + + Panel->Height = StaticText->Height; + + // Currently this is noop (will fail assertion), if MoreMessagesUrl is not set + // (what should not happen) + InsertPanelToMessageDialog(Dialog, Panel); +} +//--------------------------------------------------------------------------- bool __fastcall CheckForUpdates(bool CachedResults) { TCustomForm * ActiveForm = Screen->ActiveCustomForm; @@ -1031,7 +1477,7 @@ bool __fastcall CheckForUpdates(bool CachedResults) { if (ActiveForm) { - assert(ActiveForm->Enabled); + DebugAssert(ActiveForm->Enabled); ActiveForm->Enabled = false; } @@ -1041,7 +1487,7 @@ bool __fastcall CheckForUpdates(bool CachedResults) CachedResults; if (!Cached) { - QueryUpdates(); + DoQueryUpdates(WinConfiguration->CollectUsage); // reread new data Updates = WinConfiguration->Updates; } @@ -1051,7 +1497,7 @@ bool __fastcall CheckForUpdates(bool CachedResults) Updates.ShownResults = true; WinConfiguration->Updates = Updates; } - assert(Updates.HaveResults); + DebugAssert(Updates.HaveResults); UnicodeString Message; bool New; @@ -1093,18 +1539,41 @@ bool __fastcall CheckForUpdates(bool CachedResults) Aliases[1].OnClick = MakeMethod(NULL, OpenHistory); Aliases[2].Button = qaCancel; Aliases[2].Alias = Vcl_Consts_SMsgDlgClose; + // Used only when New == true, see AliasesCount below Aliases[3].Button = qaOK; Aliases[3].Alias = LoadStr(UPGRADE_BUTTON); + if (!Updates.Results.DownloadUrl.IsEmpty()) + { + Aliases[3].OnClick = MakeMethod(NULL, DownloadUpdate); + Aliases[3].ElevationRequired = true; + } TMessageParams Params; Params.Aliases = Aliases; Params.MoreMessagesUrl = Updates.Results.NewsUrl; Params.MoreMessagesSize = Updates.Results.NewsSize; - // alias "ok" button to "download" only if we have new version + // alias "ok" button to "upgrade" only if we have new version Params.AliasesCount = LENOF(Aliases) - (New ? 0 : 1); - unsigned int Answer = - MessageDialog(Message, Type, - Answers, HELP_UPDATES, &Params); + + if (New) + { + Params.ImageName = L"Installer"; + } + + std::unique_ptr Dialog( + CreateMoreMessageDialogEx(Message, NULL, Type, Answers, HELP_UPDATES, &Params)); + + if (New) + { + if (Updates.Results.DownloadUrl.IsEmpty() && IsInstalled()) + { + DebugAssert(Dialog->OnShow == NULL); + // InsertDonateLink need to be called only after MessageBrowser is created + Dialog->OnShow = MakeMethod(NULL, InsertDonateLink); + } + } + + unsigned int Answer = ExecuteMessageDialog(Dialog.get(), Answers, &Params); switch (Answer) { case qaOK: @@ -1124,7 +1593,7 @@ bool __fastcall CheckForUpdates(bool CachedResults) break; case qaAll: - FAIL; + DebugFail(); break; } } @@ -1159,7 +1628,7 @@ void __fastcall TUpdateThread::Execute() { try { - QueryUpdates(); + DoQueryUpdates(WinConfiguration->CollectUsage); if (FOnUpdatesChecked != NULL) { Synchronize(FOnUpdatesChecked); @@ -1173,7 +1642,7 @@ void __fastcall TUpdateThread::Execute() //--------------------------------------------------------------------------- void __fastcall StartUpdateThread(TThreadMethod OnUpdatesChecked) { - assert(UpdateThread == NULL); + DebugAssert(UpdateThread == NULL); UpdateThread = new TUpdateThread(OnUpdatesChecked); } //--------------------------------------------------------------------------- @@ -1218,7 +1687,7 @@ static bool __fastcall AddJumpListCategory(TStrings * Names, { try { - CHECK(SUCCEEDED(Collection->AddObject(Link))); + DebugCheck(SUCCEEDED(Collection->AddObject(Link))); Count++; } __finally @@ -1276,7 +1745,7 @@ void __fastcall UpdateJumpList(TStrings * SessionNames, TStrings * WorkspaceName unsigned int * PMinSlots = &MinSlots; void ** PRemovedArray = (void**)&RemovedArray; HRESULT Result = DestinationList->BeginList(PMinSlots, IID_IObjectArray, PRemovedArray); - if (SUCCEEDED(Result) && ALWAYS_TRUE(RemovedArray != NULL)) + if (SUCCEEDED(Result) && DebugAlwaysTrue(RemovedArray != NULL)) { Removed = new TStringList(); @@ -1387,3 +1856,199 @@ bool __fastcall IsInstalled() DoIsInstalled(HKEY_LOCAL_MACHINE) || DoIsInstalled(HKEY_CURRENT_USER); } +//--------------------------------------------------------------------------- +static TStringList * __fastcall TextToTipList(const UnicodeString & Text) +{ + std::unique_ptr List(new TStringList()); + List->CommaText = Text; + return List.release(); +} +//--------------------------------------------------------------------------- +UnicodeString __fastcall FirstUnshownTip() +{ + TUpdatesConfiguration Updates = WinConfiguration->Updates; + std::unique_ptr Tips(TextToTipList(Updates.Results.Tips)); + Tips->CaseSensitive = false; + std::unique_ptr TipsSeen(TextToTipList(WinConfiguration->TipsSeen)); + TipsSeen->CaseSensitive = false; + + int LastTipSeen = -1; + for (int Index = 0; Index < TipsSeen->Count; Index++) + { + int TipIndex = Tips->IndexOf(TipsSeen->Names[Index]); + if (TipIndex >= 0) + { + LastTipSeen = TipIndex; + } + } + + UnicodeString Result; + if (LastTipSeen < Tips->Count - 1) + { + Result = Tips->Strings[LastTipSeen + 1]; + } + return Result; +} +//--------------------------------------------------------------------------- +class TTipsData : public TComponent +{ +public: + __fastcall TTipsData() : + TComponent(NULL) + { + } + + int Index; + TStringList * Tips; + + static TTipsData * __fastcall Retrieve(TObject * Object) + { + TComponent * Component = DebugNotNull(dynamic_cast(Object)); + TComponent * TipsDataComponent = Component->FindComponent(QualifiedClassName()); + return DebugNotNull(dynamic_cast(TipsDataComponent)); + } +}; +//--------------------------------------------------------------------------- +static UnicodeString __fastcall TipsMessage(TTipsData * TipsData) +{ + return FMTLOAD(TIPS_MESSAGE, (TipsData->Index + 1, TipsData->Tips->Count)); +} +//--------------------------------------------------------------------------- +static void __fastcall UpdateTipsForm(TCustomForm * Form) +{ + TTipsData * TipsData = TTipsData::Retrieve(Form); + + TButton * PrevButton = DebugNotNull(dynamic_cast(Form->FindComponent(L"Yes"))); + PrevButton->Enabled = (TipsData->Index > 0); + TButton * NextButton = DebugNotNull(dynamic_cast(Form->FindComponent(L"No"))); + NextButton->Enabled = (TipsData->Index < TipsData->Tips->Count - 1); + + TPanel * Panel = DebugNotNull(dynamic_cast(Form->FindComponent(L"Panel"))); + TLabel * MessageLabel = DebugNotNull(dynamic_cast(Panel->FindComponent(L"MainMessage"))); + MessageLabel->Caption = TipsMessage(TipsData); +} +//--------------------------------------------------------------------------- +static UnicodeString __fastcall TipUrl(TTipsData * TipsData) +{ + UnicodeString Tip = TipsData->Tips->Strings[TipsData->Index]; + UnicodeString TipParams = FORMAT(L"tip=%s", (Tip)); + return AppendUrlParams(WinConfiguration->Updates.Results.TipsUrl, TipParams); +} +//--------------------------------------------------------------------------- +static void __fastcall TipSeen(const UnicodeString & Tip) +{ + std::unique_ptr TipsSeen(TextToTipList(WinConfiguration->TipsSeen)); + TipsSeen->Values[Tip] = FormatDateTime(L"yyyy-mm-dd", Now()); + WinConfiguration->TipsSeen = TipsSeen->CommaText; + WinConfiguration->TipsShown = Now(); + WinConfiguration->RunsSinceLastTip = 0; + // prevent parallel app instances showing the same tip + WinConfiguration->Save(); +} +//--------------------------------------------------------------------------- +static void __fastcall PrevNextTipClick(void * Data, TObject * Sender) +{ + TCustomForm * Form = GetParentForm(dynamic_cast(Sender)); + TTipsData * TipsData = TTipsData::Retrieve(Form); + TipsData->Index += reinterpret_cast(Data); + UpdateTipsForm(Form); + TipSeen(TipsData->Tips->Strings[TipsData->Index]); + UnicodeString Url = TipUrl(TipsData); + NavigateMessageDialogToUrl(Form, Url); +} +//--------------------------------------------------------------------------- +static void __fastcall ShowTip(bool AutoShow) +{ + TUpdatesConfiguration Updates = WinConfiguration->Updates; + UnicodeString Tip = FirstUnshownTip(); + std::unique_ptr Tips(TextToTipList(Updates.Results.Tips)); + Tips->CaseSensitive = false; + int Index; + if (Tip.IsEmpty()) + { + Index = Tips->Count - 1; + Tip = Tips->Strings[Index]; + } + else + { + Index = Tips->IndexOf(Tip); + } + + std::unique_ptr TipsData(new TTipsData()); + TipsData->Name = TTipsData::QualifiedClassName(); + TipsData->Index = Index; + TipsData->Tips = Tips.get(); + + UnicodeString Message = MainInstructions(TipsMessage(TipsData.get())); + + TQueryButtonAlias Aliases[3]; + Aliases[0].Button = qaYes; + Aliases[0].Alias = LoadStr(PREV_BUTTON); + Aliases[0].OnClick = MakeMethod(reinterpret_cast(-1), PrevNextTipClick); + Aliases[1].Button = qaNo; + Aliases[1].Alias = LoadStr(NEXT_BUTTON); + Aliases[1].OnClick = MakeMethod(reinterpret_cast(+1), PrevNextTipClick); + Aliases[2].Button = qaCancel; + Aliases[2].Alias = LoadStr(CLOSE_BUTTON); + + TMessageParams Params; + Params.CustomCaption = LoadStr(TIPS_TITLE); + Params.MoreMessagesSize = Updates.Results.TipsSize; + Params.MoreMessagesUrl = TipUrl(TipsData.get()); + Params.Aliases = Aliases; + Params.AliasesCount = LENOF(Aliases); + Params.ImageName = L"Bulb On n p"; + + if (AutoShow) + { + // Won't be used automatically as we have more than "OK button + Params.NeverAskAgainTitle = LoadStr(NEVER_SHOW_AGAIN); + Params.NeverAskAgainAnswer = qaCancel; + Params.Params |= mpNeverAskAgainCheck; + } + + int Answers = qaYes | qaNo | qaCancel; + std::unique_ptr Dialog(CreateMoreMessageDialogEx(Message, NULL, qtInformation, Answers, HELP_TIPS, &Params)); + Dialog->InsertComponent(TipsData.release()); + UpdateTipsForm(Dialog.get()); + TipSeen(Tip); + unsigned int Result = ExecuteMessageDialog(Dialog.get(), Answers, &Params); + + if ((Result == qaNeverAskAgain) && DebugAlwaysTrue(AutoShow)) + { + WinConfiguration->ShowTips = false; + } + + WinConfiguration->Updates = Updates; +} +//--------------------------------------------------------------------------- +void __fastcall AutoShowNewTip() +{ + Configuration->Usage->Inc(L"TipsShownAuto"); + ShowTip(true); +} +//--------------------------------------------------------------------------- +void __fastcall ShowTips() +{ + { + TOperationVisualizer Visualizer; + DoQueryUpdates(false); + } + + if (WinConfiguration->Updates.Results.Tips.IsEmpty()) + { + throw Exception(MainInstructions(LoadStr(TIPS_NONE))); + } + + Configuration->Usage->Inc(L"TipsShownCommand"); + ShowTip(false); +} +//--------------------------------------------------------------------------- +void __fastcall TipsUpdateStaticUsage() +{ + TUpdatesConfiguration Updates = WinConfiguration->Updates; + std::unique_ptr Tips(TextToTipList(Updates.Results.Tips)); + Configuration->Usage->Set(L"TipsCount", Tips->Count); + std::unique_ptr TipsSeen(TextToTipList(WinConfiguration->TipsSeen)); + Configuration->Usage->Set(L"TipsSeen", TipsSeen->Count); +} diff --git a/source/windows/Setup.h b/source/windows/Setup.h index 2a26fd59..cc46dbec 100644 --- a/source/windows/Setup.h +++ b/source/windows/Setup.h @@ -3,13 +3,18 @@ #define SetupH //--------------------------------------------------------------------------- #include +#include //--------------------------------------------------------------------------- void __fastcall SetupInitialize(); void __fastcall AddSearchPath(const UnicodeString Path); void __fastcall RemoveSearchPath(const UnicodeString Path); void __fastcall GetUpdatesMessage(UnicodeString & Message, bool & New, TQueryType & Type, bool Force); bool __fastcall CheckForUpdates(bool CachedResults); +bool __fastcall QueryUpdates(TUpdatesConfiguration & Updates); +UnicodeString __fastcall FormatUpdatesMessage(UnicodeString Message); UnicodeString __fastcall GetUsageData(); +UnicodeString __fastcall GetEnableAutomaticUpdatesUrl(); +void __fastcall EnableAutomaticUpdates(); void __fastcall RegisterForDefaultProtocols(); void __fastcall UnregisterForProtocols(); void __fastcall LaunchAdvancedAssociationUI(); @@ -21,5 +26,9 @@ void __fastcall UpdateJumpList(TStrings * SessionNames, TStrings * WorkspaceName bool __fastcall AnyOtherInstanceOfSelf(); bool __fastcall IsInstalled(); UnicodeString __fastcall ProgramUrl(UnicodeString URL); +void __fastcall AutoShowNewTip(); +void __fastcall ShowTips(); +UnicodeString __fastcall FirstUnshownTip(); +void __fastcall TipsUpdateStaticUsage(); //--------------------------------------------------------------------------- #endif diff --git a/source/windows/SynchronizeController.cpp b/source/windows/SynchronizeController.cpp index ff69e12a..9e05aa6e 100644 --- a/source/windows/SynchronizeController.cpp +++ b/source/windows/SynchronizeController.cpp @@ -29,7 +29,7 @@ __fastcall TSynchronizeController::TSynchronizeController( //--------------------------------------------------------------------------- __fastcall TSynchronizeController::~TSynchronizeController() { - assert(FSynchronizeMonitor == NULL); + DebugAssert(FSynchronizeMonitor == NULL); } //--------------------------------------------------------------------------- void __fastcall TSynchronizeController::StartStop(TObject * Sender, @@ -44,7 +44,7 @@ void __fastcall TSynchronizeController::StartStop(TObject * Sender, try { - assert(OnSynchronizeLog != NULL); + DebugAssert(OnSynchronizeLog != NULL); FSynchronizeLog = OnSynchronizeLog; FOptions = Options; @@ -59,7 +59,7 @@ void __fastcall TSynchronizeController::StartStop(TObject * Sender, FCopyParam = CopyParam; FSynchronizeParams = Params; - assert(OnAbort); + DebugAssert(OnAbort); FSynchronizeAbort = OnAbort; if (FLAGSET(FSynchronizeParams.Options, soRecurse)) @@ -118,7 +118,7 @@ void __fastcall TSynchronizeController::SynchronizeChange( UnicodeString LocalDirectory = IncludeTrailingBackslash(Directory); - assert(LocalDirectory.SubString(1, RootLocalDirectory.Length()) == + DebugAssert(LocalDirectory.SubString(1, RootLocalDirectory.Length()) == RootLocalDirectory); RemoteDirectory = RemoteDirectory + ToUnixPath(LocalDirectory.SubString(RootLocalDirectory.Length() + 1, @@ -143,7 +143,7 @@ void __fastcall TSynchronizeController::SynchronizeChange( if (FLAGSET(FSynchronizeParams.Options, soRecurse)) { SubdirsChanged = false; - assert(Checklist != NULL); + DebugAssert(Checklist != NULL); for (int Index = 0; Index < Checklist->Count; Index++) { const TSynchronizeChecklist::TItem * Item = Checklist->Item[Index]; @@ -159,7 +159,7 @@ void __fastcall TSynchronizeController::SynchronizeChange( } else { - FAIL; + DebugFail(); } } } @@ -188,7 +188,7 @@ void __fastcall TSynchronizeController::SynchronizeAbort(bool Close) { FSynchronizeMonitor->Close(); } - assert(FSynchronizeAbort); + DebugAssert(FSynchronizeAbort); FSynchronizeAbort(NULL, Close); } //--------------------------------------------------------------------------- @@ -205,7 +205,7 @@ void __fastcall TSynchronizeController::LogOperation(TSynchronizeOperation Opera break; default: - FAIL; + DebugFail(); // fallthru case soUpload: @@ -238,6 +238,7 @@ void __fastcall TSynchronizeController::SynchronizeFilter(TObject * /*Sender*/, } } TFileMasks::TParams MaskParams; // size/time does not matter for directories + // Missing call to GetBaseFileName Add = Add && FCopyParam.AllowTransfer(DirectoryName, osLocal, true, MaskParams); } //--------------------------------------------------------------------------- diff --git a/source/windows/TerminalManager.cpp b/source/windows/TerminalManager.cpp index 68c37843..72c2f86f 100644 --- a/source/windows/TerminalManager.cpp +++ b/source/windows/TerminalManager.cpp @@ -55,7 +55,7 @@ TTerminalManager * __fastcall TTerminalManager::Instance(bool ForceCreation) //--------------------------------------------------------------------------- void __fastcall TTerminalManager::DestroyInstance() { - assert(FInstance); + DebugAssert(FInstance); SAFE_DESTROY(FInstance); } //--------------------------------------------------------------------------- @@ -73,22 +73,22 @@ __fastcall TTerminalManager::TTerminalManager() : FTaskbarList = NULL; FAuthenticating = 0; - assert(Application && !Application->OnException); + DebugAssert(Application && !Application->OnException); Application->OnException = ApplicationException; - assert(Application->OnShowHint == NULL); + DebugAssert(Application->OnShowHint == NULL); Application->OnShowHint = ApplicationShowHint; - assert(Application->OnMessage == NULL); + DebugAssert(Application->OnMessage == NULL); Application->OnMessage = ApplicationMessage; - assert(Application->OnModalBegin == NULL); + DebugAssert(Application->OnModalBegin == NULL); Application->OnModalBegin = ApplicationModalBegin; - assert(Application->OnModalEnd == NULL); + DebugAssert(Application->OnModalEnd == NULL); Application->OnModalEnd = ApplicationModalEnd; - assert(WinConfiguration->OnMasterPasswordPrompt == NULL); + DebugAssert(WinConfiguration->OnMasterPasswordPrompt == NULL); WinConfiguration->OnMasterPasswordPrompt = MasterPasswordPrompt; InitTaskbarButtonCreatedMessage(); - assert(Configuration && !Configuration->OnChange); + DebugAssert(Configuration && !Configuration->OnChange); Configuration->OnChange = ConfigurationChange; FOnLastTerminalClosed = NULL; FOnTerminalListChanged = NULL; @@ -102,22 +102,22 @@ __fastcall TTerminalManager::~TTerminalManager() { FreeAll(); - assert(!ScpExplorer); + DebugAssert(!ScpExplorer); - assert(Configuration->OnChange == ConfigurationChange); + DebugAssert(Configuration->OnChange == ConfigurationChange); Configuration->OnChange = NULL; - assert(Application && (Application->OnException == ApplicationException)); + DebugAssert(Application && (Application->OnException == ApplicationException)); Application->OnException = NULL; - assert(Application->OnShowHint == ApplicationShowHint); + DebugAssert(Application->OnShowHint == ApplicationShowHint); Application->OnShowHint = ApplicationShowHint; - assert(Application->OnMessage == ApplicationMessage); + DebugAssert(Application->OnMessage == ApplicationMessage); Application->OnMessage = NULL; - assert(Application->OnModalBegin == ApplicationModalBegin); + DebugAssert(Application->OnModalBegin == ApplicationModalBegin); Application->OnModalBegin = NULL; - assert(Application->OnModalEnd == ApplicationModalEnd); + DebugAssert(Application->OnModalEnd == ApplicationModalEnd); Application->OnModalEnd = NULL; - assert(WinConfiguration->OnMasterPasswordPrompt == MasterPasswordPrompt); + DebugAssert(WinConfiguration->OnMasterPasswordPrompt == MasterPasswordPrompt); WinConfiguration->OnMasterPasswordPrompt = NULL; delete FQueues; @@ -210,12 +210,12 @@ void __fastcall TTerminalManager::FreeActiveTerminal() { if (FTerminalPendingAction == tpNull) { - assert(ActiveTerminal); + DebugAssert(ActiveTerminal); FreeTerminal(ActiveTerminal); } else { - assert(FTerminalPendingAction == ::tpNone); + DebugAssert(FTerminalPendingAction == ::tpNone); FTerminalPendingAction = tpFree; } } @@ -224,7 +224,7 @@ void TTerminalManager::ConnectTerminal(TTerminal * Terminal, bool Reopen) { TManagedTerminal * ManagedTerminal = dynamic_cast(Terminal); // it must be managed terminal, unless it is secondary terminal (of managed terminal) - assert((ManagedTerminal != NULL) || (dynamic_cast(Terminal) != NULL)); + DebugAssert((ManagedTerminal != NULL) || (dynamic_cast(Terminal) != NULL)); // particularly when we are reconnecting RemoteDirectory of managed terminal // hold the last used remote directory as opposite to session data, which holds @@ -245,7 +245,7 @@ void TTerminalManager::ConnectTerminal(TTerminal * Terminal, bool Reopen) ManagedTerminal->ReopenStart = Now(); } - assert(ManagedTerminal->TerminalThread == NULL); + DebugAssert(ManagedTerminal->TerminalThread == NULL); ManagedTerminal->TerminalThread = TerminalThread; } @@ -296,7 +296,7 @@ bool __fastcall TTerminalManager::ConnectActiveTerminalImpl(bool Reopen) Result = false; try { - assert(ActiveTerminal); + DebugAssert(ActiveTerminal); bool ShowLogPending = false; if (Configuration->Logging && (WinConfiguration->LogView == lvWindow)) @@ -315,7 +315,7 @@ bool __fastcall TTerminalManager::ConnectActiveTerminalImpl(bool Reopen) if (ScpExplorer) { - assert(ActiveTerminal->Status == ssOpened); + DebugAssert(ActiveTerminal->Status == ssOpened); TerminalReady(); } @@ -335,11 +335,11 @@ bool __fastcall TTerminalManager::ConnectActiveTerminalImpl(bool Reopen) } catch(Exception & E) { - assert(FTerminalPendingAction == tpNull); + DebugAssert(FTerminalPendingAction == tpNull); FTerminalPendingAction = ::tpNone; try { - assert(ActiveTerminal != NULL); + DebugAssert(ActiveTerminal != NULL); ActiveTerminal->ShowExtendedException(&E); Action = FTerminalPendingAction; } @@ -408,7 +408,7 @@ bool __fastcall TTerminalManager::ConnectActiveTerminal() //--------------------------------------------------------------------------- void __fastcall TTerminalManager::DisconnectActiveTerminal() { - assert(ActiveTerminal); + DebugAssert(ActiveTerminal); int Index = IndexOf(ActiveTerminal); @@ -423,7 +423,7 @@ void __fastcall TTerminalManager::DisconnectActiveTerminal() //--------------------------------------------------------------------------- void __fastcall TTerminalManager::ReconnectActiveTerminal() { - assert(ActiveTerminal); + DebugAssert(ActiveTerminal); if (ScpExplorer) { @@ -532,7 +532,7 @@ void __fastcall TTerminalManager::SetScpExplorer(TCustomScpExplorerForm * value) if (ScpExplorer != value) { // changing explorer is not supported yet - assert(!ScpExplorer || !value); + DebugAssert(!ScpExplorer || !value); FScpExplorer = value; if (FScpExplorer) { @@ -596,7 +596,7 @@ void __fastcall TTerminalManager::DoSetActiveTerminal(TTerminal * value, bool Au { CreateLogMemo(); } - assert(LogMemo); + DebugAssert(LogMemo); LogMemo->SessionLog = ActiveTerminal->Log; SwitchLogFormSessionLog(); @@ -698,7 +698,7 @@ void __fastcall TTerminalManager::SaveTerminal(TTerminal * Terminal) if (Data != NULL) { TManagedTerminal * ManagedTerminal = dynamic_cast(Terminal); - assert(ManagedTerminal != NULL); + DebugAssert(ManagedTerminal != NULL); bool Changed = false; if (Terminal->SessionData->UpdateDirectories) @@ -717,8 +717,8 @@ void __fastcall TTerminalManager::SaveTerminal(TTerminal * Terminal) //--------------------------------------------------------------------------- void __fastcall TTerminalManager::CreateLogMemo() { - assert(!FLogMemo); - assert(ActiveTerminal); + DebugAssert(!FLogMemo); + DebugAssert(ActiveTerminal); FLogMemo = new TLogMemo(Application); try { @@ -734,7 +734,7 @@ void __fastcall TTerminalManager::CreateLogMemo() //--------------------------------------------------------------------------- void __fastcall TTerminalManager::FreeLogMemo() { - assert(LogMemo); + DebugAssert(LogMemo); LogMemo->PopupMenu = NULL; SAFE_DESTROY(FLogMemo); } @@ -778,7 +778,14 @@ void __fastcall TTerminalManager::ApplicationShowHint(UnicodeString & HintStr, } else { - HintInfo.HintMaxWidth = 300; + int HintMaxWidth = 300; + + if (DebugAlwaysTrue(HintInfo.HintControl != NULL)) + { + HintMaxWidth = ScaleByTextHeight(HintInfo.HintControl, HintMaxWidth); + } + + HintInfo.HintMaxWidth = HintMaxWidth; } } //--------------------------------------------------------------------------- @@ -794,7 +801,7 @@ bool __fastcall TTerminalManager::HandleMouseWheel(WPARAM WParam, LPARAM LParam) TCustomForm * Form = GetParentForm(Control); // Only case we expect the parent form to be NULL is on the Find/Replace dialog, // which is owned by VCL's internal TRedirectorWindow. - assert((Form != NULL) || (Control->ClassName() == L"TRedirectorWindow")); + DebugAssert((Form != NULL) || (Control->ClassName() == L"TRedirectorWindow")); if ((Form != NULL) && Form->Active) { // Send it only to windows we tested it with. @@ -889,10 +896,7 @@ void __fastcall TTerminalManager::UpdateTaskbarList() //--------------------------------------------------------------------------- void __fastcall TTerminalManager::DeleteLocalFile(const UnicodeString FileName, bool Alternative) { - if (!RecursiveDeleteFile(FileName, (WinConfiguration->DeleteToRecycleBin != Alternative))) - { - throw EOSExtException(FMTLOAD(DELETE_LOCAL_FILE_ERROR, (FileName))); - } + RecursiveDeleteFileChecked(FileName, (WinConfiguration->DeleteToRecycleBin != Alternative)); } //--------------------------------------------------------------------------- void __fastcall TTerminalManager::TerminalQueryUser(TObject * Sender, @@ -933,7 +937,7 @@ void __fastcall TTerminalManager::TerminalQueryUser(TObject * Sender, void __fastcall TTerminalManager::AuthenticateFormCancel(TObject * Sender) { TAuthenticateForm * Form = dynamic_cast(Sender); - assert(Form != NULL); + DebugAssert(Form != NULL); TManagedTerminal * ManagedTerminal = dynamic_cast(Form->Terminal); // will be null e.g. for background transfers if (ManagedTerminal != NULL) @@ -954,7 +958,7 @@ TAuthenticateForm * __fastcall TTerminalManager::MakeAuthenticateForm( { TAuthenticateForm * Dialog = SafeFormCreate(); Dialog->Init(Terminal); - assert(Dialog->OnCancel == NULL); + DebugAssert(Dialog->OnCancel == NULL); Dialog->OnCancel = AuthenticateFormCancel; return Dialog; } @@ -972,9 +976,9 @@ void __fastcall TTerminalManager::TerminalPromptUser( if (((Kind == pkPrompt) || (Kind == pkFileName)) && (FAuthenticateForm == NULL) && (Terminal->Status != ssOpening)) { - assert(Instructions.IsEmpty()); - assert(Prompts->Count == 1); - assert(FLAGSET(int(Prompts->Objects[0]), pupEcho)); + DebugAssert(Instructions.IsEmpty()); + DebugAssert(Prompts->Count == 1); + DebugAssert(FLAGSET(int(Prompts->Objects[0]), pupEcho)); UnicodeString AResult = Results->Strings[0]; TInputDialogInitialize InputDialogInitialize = NULL; @@ -1016,7 +1020,7 @@ void __fastcall TTerminalManager::TerminalDisplayBanner( TTerminal * Terminal, UnicodeString SessionName, const UnicodeString & Banner, bool & NeverShowAgain, int Options) { - assert(FAuthenticateForm != NULL); + DebugAssert(FAuthenticateForm != NULL); TAuthenticateForm * AuthenticateForm = FAuthenticateForm; if (AuthenticateForm == NULL) { @@ -1058,6 +1062,7 @@ void __fastcall TTerminalManager::TerminalReadDirectoryProgress( { if (ScpExplorer != NULL) { + // See also TCustomScpExplorerForm::RemoteDirViewBusy ScpExplorer->LockWindow(); } FDirectoryReadingStart = Now(); @@ -1128,7 +1133,7 @@ void __fastcall TTerminalManager::TerminalInformation( } else if (Phase == 0) { - assert(FAuthenticating > 0); + DebugAssert(FAuthenticating > 0); FAuthenticating--; if (FAuthenticating == 0) { @@ -1160,25 +1165,17 @@ void __fastcall TTerminalManager::OperationFinished(::TFileOperation Operation, TOperationSide Side, bool Temp, const UnicodeString & FileName, bool Success, TOnceDoneOperation & OnceDoneOperation) { - assert(ScpExplorer); + DebugAssert(ScpExplorer); ScpExplorer->OperationFinished(Operation, Side, Temp, FileName, Success, OnceDoneOperation); } //--------------------------------------------------------------------------- -UnicodeString __fastcall TTerminalManager::ProgressTitle(TFileOperationProgressType * ProgressData) -{ - return - FORMAT(L"%d%% %s", - (ProgressData->OverallProgress(), - TProgressForm::OperationName(ProgressData->Operation, ProgressData->Side))); -} -//--------------------------------------------------------------------------- void __fastcall TTerminalManager::OperationProgress( TFileOperationProgressType & ProgressData) { if (ProgressData.InProgress) { - FProgressTitle = ProgressTitle(&ProgressData); + FProgressTitle = TProgressForm::ProgressStr(&ProgressData); } else { @@ -1186,7 +1183,7 @@ void __fastcall TTerminalManager::OperationProgress( } UpdateAppTitle(); - assert(ScpExplorer); + DebugAssert(ScpExplorer); ScpExplorer->OperationProgress(ProgressData); } //--------------------------------------------------------------------------- @@ -1198,8 +1195,8 @@ void __fastcall TTerminalManager::QueueEvent(TTerminalQueue * Queue, TQueueEvent //--------------------------------------------------------------------------- void __fastcall TTerminalManager::ConfigurationChange(TObject * /*Sender*/) { - assert(Configuration); - assert(Configuration == WinConfiguration); + DebugAssert(Configuration); + DebugAssert(Configuration == WinConfiguration); if (!Application->Terminated && Configuration->Logging && (WinConfiguration->LogView == lvWindow)) @@ -1217,7 +1214,7 @@ void __fastcall TTerminalManager::ConfigurationChange(TObject * /*Sender*/) TTerminalQueue * Queue; for (int Index = 0; Index < Count; Index++) { - assert(Terminals[Index]->Log); + DebugAssert(Terminals[Index]->Log); Terminals[Index]->Log->ReflectSettings(); Terminals[Index]->ActionLog->ReflectSettings(); Queue = reinterpret_cast(FQueues->Items[Index]); @@ -1347,7 +1344,7 @@ void __fastcall TTerminalManager::OpenInPutty() else { Data = new TSessionData(L""); - assert(ActiveTerminal != NULL); + DebugAssert(ActiveTerminal != NULL); Data->Assign(ActiveTerminal->SessionData); UpdateSessionCredentials(Data); } @@ -1368,12 +1365,17 @@ void __fastcall TTerminalManager::OpenInPutty() } } //--------------------------------------------------------------------------- -void __fastcall TTerminalManager::NewSession(bool /*FromSite*/, const UnicodeString & SessionUrl) +void __fastcall TTerminalManager::NewSession(bool /*FromSite*/, const UnicodeString & SessionUrl, bool ReloadSessions) { + if (ReloadSessions) + { + StoredSessions->Load(); + } + UnicodeString DownloadFile; // unused std::unique_ptr DataList(new TObjectList()); - GetLoginData(SessionUrl, NULL, DataList.get(), DownloadFile); + GetLoginData(SessionUrl, NULL, DataList.get(), DownloadFile, true); if (DataList->Count > 0) { @@ -1389,7 +1391,7 @@ void __fastcall TTerminalManager::Idle() try { TManagedTerminal * ManagedTerminal = dynamic_cast(Terminal); - assert(ManagedTerminal != NULL); + DebugAssert(ManagedTerminal != NULL); // make sure Idle is called on the thread that runs the terminal if (ManagedTerminal->TerminalThread != NULL) { @@ -1405,7 +1407,7 @@ void __fastcall TTerminalManager::Idle() if (Terminal->Active) { - assert(Index < FQueues->Count); + DebugAssert(Index < FQueues->Count); if (Index < FQueues->Count) { reinterpret_cast(FQueues->Items[Index])->Idle(); @@ -1424,7 +1426,7 @@ void __fastcall TTerminalManager::Idle() { // we may not have inactive terminal, unless there is a explorer, // also Idle is called from explorer anyway - assert(ScpExplorer != NULL); + DebugAssert(ScpExplorer != NULL); if (ScpExplorer != NULL) { ScpExplorer->InactiveTerminalException(Terminal, &E); @@ -1466,7 +1468,7 @@ void __fastcall TTerminalManager::Idle() { TTerminal * Terminal = Terminals[Index]; // we can hardly have a queue event without explorer - assert(ScpExplorer != NULL); + DebugAssert(ScpExplorer != NULL); if (ScpExplorer != NULL) { ScpExplorer->QueueEvent(Terminal, QueueWithEvent, QueueEvent); diff --git a/source/windows/TerminalManager.h b/source/windows/TerminalManager.h index 7cb01d29..6a985d5e 100644 --- a/source/windows/TerminalManager.h +++ b/source/windows/TerminalManager.h @@ -36,8 +36,6 @@ class TTerminalManager : public TTerminalList static TTerminalManager * __fastcall Instance(bool ForceCreation = true); static void __fastcall DestroyInstance(); - static UnicodeString __fastcall ProgressTitle(TFileOperationProgressType * ProgressData); - __fastcall TTerminalManager(); __fastcall ~TTerminalManager(); @@ -54,7 +52,7 @@ class TTerminalManager : public TTerminalList void __fastcall UpdateAppTitle(); bool __fastcall CanOpenInPutty(); void __fastcall OpenInPutty(); - void __fastcall NewSession(bool FromSite, const UnicodeString & SessionUrl); + void __fastcall NewSession(bool FromSite, const UnicodeString & SessionUrl, bool ReloadSessions = true); void __fastcall Idle(); UnicodeString __fastcall TerminalTitle(TTerminal * Terminal); void __fastcall HandleException(Exception * E); diff --git a/source/windows/Tools.cpp b/source/windows/Tools.cpp index e1e62920..8d735b00 100644 --- a/source/windows/Tools.cpp +++ b/source/windows/Tools.cpp @@ -105,6 +105,27 @@ bool __fastcall SameFont(TFont * Font1, TFont * Font2) (Font1->Charset == Font2->Charset) && (Font1->Style == Font2->Style); } //--------------------------------------------------------------------------- +TColor __fastcall GetWindowTextColor(TColor Color) +{ + return (Color == TColor(0)) ? clWindowText : Color; +} +//--------------------------------------------------------------------------- +TColor __fastcall GetWindowColor(TColor Color) +{ + return (Color == TColor(0)) ? clWindow : Color; +} +//--------------------------------------------------------------------------- +TColor __fastcall GetNonZeroColor(TColor Color) +{ + // 0,0,0 is "default color" + if (Color == TColor(0)) + { + // use near-black instead + Color = TColor(RGB(1, 1, 1)); + } + return Color; +} +//--------------------------------------------------------------------------- void __fastcall CenterFormOn(TForm * Form, TControl * CenterOn) { TPoint ScreenPoint = CenterOn->ClientToScreen(TPoint(0, 0)); @@ -131,13 +152,13 @@ UnicodeString __fastcall GetListViewStr(TListView * ListView) //--------------------------------------------------------------------------- void __fastcall LoadListViewStr(TListView * ListView, UnicodeString ALayoutStr) { - UnicodeString LayoutStr = ::CutToChar(ALayoutStr, L';', true); - int PixelsPerInch = LoadPixelsPerInch(::CutToChar(ALayoutStr, L';', true)); + UnicodeString LayoutStr = CutToChar(ALayoutStr, L';', true); + int PixelsPerInch = LoadPixelsPerInch(CutToChar(ALayoutStr, L';', true)); int Index = 0; while (!LayoutStr.IsEmpty() && (Index < ListView->Columns->Count)) { int Width; - if (TryStrToInt(::CutToChar(LayoutStr, L',', true), Width)) + if (TryStrToInt(CutToChar(LayoutStr, L',', true), Width)) { ListView->Column[Index]->Width = LoadDimension(Width, PixelsPerInch); } @@ -147,17 +168,17 @@ void __fastcall LoadListViewStr(TListView * ListView, UnicodeString ALayoutStr) //--------------------------------------------------------------------------- void __fastcall RestoreForm(UnicodeString Data, TForm * Form) { - assert(Form); + DebugAssert(Form); if (!Data.IsEmpty()) { Forms::TMonitor * Monitor = FormMonitor(Form); - UnicodeString LeftStr = ::CutToChar(Data, L';', true); - UnicodeString TopStr = ::CutToChar(Data, L';', true); - UnicodeString RightStr = ::CutToChar(Data, L';', true); - UnicodeString BottomStr = ::CutToChar(Data, L';', true); - TWindowState State = (TWindowState)StrToIntDef(::CutToChar(Data, L';', true), (int)wsNormal); - int PixelsPerInch = LoadPixelsPerInch(::CutToChar(Data, L';', true)); + UnicodeString LeftStr = CutToChar(Data, L';', true); + UnicodeString TopStr = CutToChar(Data, L';', true); + UnicodeString RightStr = CutToChar(Data, L';', true); + UnicodeString BottomStr = CutToChar(Data, L';', true); + TWindowState State = (TWindowState)StrToIntDef(CutToChar(Data, L';', true), (int)wsNormal); + int PixelsPerInch = LoadPixelsPerInch(CutToChar(Data, L';', true)); TRect Bounds = Form->BoundsRect; int Left = StrToDimensionDef(LeftStr, PixelsPerInch, Bounds.Left); @@ -244,7 +265,7 @@ void __fastcall RestoreForm(UnicodeString Data, TForm * Form) //--------------------------------------------------------------------------- UnicodeString __fastcall StoreForm(TCustomForm * Form) { - assert(Form); + DebugAssert(Form); TRect Bounds = Form->BoundsRect; OffsetRect(Bounds, -Form->Monitor->Left, -Form->Monitor->Top); return FORMAT(L"%d;%d;%d;%d;%d;%s", (SaveDimension(Bounds.Left), SaveDimension(Bounds.Top), @@ -260,9 +281,9 @@ void __fastcall RestoreFormSize(UnicodeString Data, TForm * Form) { // This has to be called only after DoFormWindowProc(CM_SHOWINGCHANGED). // See comment in ResizeForm. - UnicodeString WidthStr = ::CutToChar(Data, L',', true); - UnicodeString HeightStr = ::CutToChar(Data, L',', true); - int PixelsPerInch = LoadPixelsPerInch(::CutToChar(Data, L',', true)); + UnicodeString WidthStr = CutToChar(Data, L',', true); + UnicodeString HeightStr = CutToChar(Data, L',', true); + int PixelsPerInch = LoadPixelsPerInch(CutToChar(Data, L',', true)); int Width = StrToDimensionDef(WidthStr, PixelsPerInch, Form->Width); int Height = StrToDimensionDef(HeightStr, PixelsPerInch, Form->Height); @@ -431,7 +452,7 @@ IShellLink * __fastcall CreateDesktopSessionShortCut( { // this should not be done for workspaces and folders TSessionData * SessionData = - StoredSessions->ParseUrl(SessionName, NULL, DefaultsOnly); + StoredSessions->ParseUrl(EncodeUrlString(SessionName), NULL, DefaultsOnly); InfoTip = FMTLOAD(SHORTCUT_INFO_TIP, (SessionName, SessionData->InfoTip)); if (Name.IsEmpty()) @@ -444,14 +465,14 @@ IShellLink * __fastcall CreateDesktopSessionShortCut( return CreateDesktopShortCut(ValidLocalFileName(Name), Application->ExeName, - FORMAT(L"\"%s\"%s%s", (SessionName, (AdditionalParams.IsEmpty() ? L"" : L" "), AdditionalParams)), + FORMAT(L"\"%s\"%s%s", (EncodeUrlString(SessionName), (AdditionalParams.IsEmpty() ? L"" : L" "), AdditionalParams)), InfoTip, SpecialFolder, IconIndex, Return); } //--------------------------------------------------------------------------- template void __fastcall ValidateMaskEditT(const UnicodeString & Mask, TEditControl * Edit, int ForceDirectoryMasks) { - assert(Edit != NULL); + DebugAssert(Edit != NULL); TFileMasks Masks(ForceDirectoryMasks); try { @@ -507,7 +528,10 @@ void __fastcall ExitActiveControl(TForm * Form) void __fastcall OpenBrowser(UnicodeString URL) { UnicodeString HomePageUrl = LoadStr(HOMEPAGE_URL); - if (SameText(URL.SubString(1, HomePageUrl.Length()), HomePageUrl)) + UnicodeString HttpHomePageUrl = ReplaceStr(L"http://", L"https://", HomePageUrl); + DebugAssert(HomePageUrl != HttpHomePageUrl); + if (SameText(URL.SubString(1, HomePageUrl.Length()), HomePageUrl) || + DebugAlwaysFalse(SameText(URL.SubString(1, HttpHomePageUrl.Length()), HttpHomePageUrl))) { URL = CampaignUrl(URL); } @@ -570,6 +594,13 @@ bool __fastcall TextFromClipboard(UnicodeString & Text, bool Trim) return Result; } //--------------------------------------------------------------------------- +bool __fastcall NonEmptyTextFromClipboard(UnicodeString & Text) +{ + return + TextFromClipboard(Text, true) && + !Text.IsEmpty(); +} +//--------------------------------------------------------------------------- static bool __fastcall GetResource( const UnicodeString ResName, void *& Content, unsigned long & Size) { @@ -609,7 +640,7 @@ bool __fastcall DumpResourceToFile(const UnicodeString ResName, if (Result) { - FILE * f = _wfopen(::ApiPath(FileName).c_str(), L"wb"); + FILE * f = _wfopen(ApiPath(FileName).c_str(), L"wb"); if (!f) { throw Exception(FORMAT(L"Cannot create file %s", (FileName))); @@ -921,8 +952,45 @@ void __fastcall EditSelectBaseName(HWND Edit) } } //--------------------------------------------------------------------------- +static void __fastcall ConvertKey(UnicodeString & FileName, TKeyType Type) +{ + UnicodeString Passphrase; + + UnicodeString Comment; + if (IsKeyEncrypted(Type, FileName, Comment)) + { + if (!InputDialog( + LoadStr(PASSPHRASE_TITLE), + FORMAT(LoadStr(PROMPT_KEY_PASSPHRASE), (Comment)), + Passphrase, HELP_NONE, NULL, false, NULL, false)) + { + Abort(); + } + } + + TPrivateKey * PrivateKey = LoadKey(Type, FileName, Passphrase); + + try + { + FileName = ChangeFileExt(FileName, ".ppk"); + + if (!SaveDialog(LoadStr(CONVERTKEY_SAVE_TITLE), LoadStr(CONVERTKEY_SAVE_FILTER), L"ppk", FileName)) + { + Abort(); + } + + SaveKey(ktSSH2, FileName, Passphrase, PrivateKey); + + MessageDialog(MainInstructions(FMTLOAD(CONVERTKEY_SAVED, (FileName))), qtInformation, qaOK); + } + __finally + { + FreeKey(PrivateKey); + } +} +//--------------------------------------------------------------------------- static void __fastcall DoVerifyKey( - UnicodeString FileName, bool TypeOnly, TSshProt SshProt) + UnicodeString & FileName, bool TypeOnly, TSshProt SshProt, bool Convert) { if (!FileName.Trim().IsEmpty()) { @@ -934,21 +1002,34 @@ static void __fastcall DoVerifyKey( UnicodeString HelpKeyword = HELP_LOGIN_KEY_TYPE; UnicodeString PuttygenPath; std::unique_ptr MoreMessages; - bool TryPuttygen = false; switch (Type) { case ktOpenSSH: case ktSSHCom: { UnicodeString TypeName = (Type == ktOpenSSH) ? L"OpenSSH SSH-2" : L"ssh.com SSH-2"; - TryPuttygen = FindTool(PuttygenTool, PuttygenPath); - Message = FMTLOAD(KEY_TYPE_UNSUPPORTED, (FileName, TypeName)); - if (TryPuttygen) + Message = FMTLOAD(KEY_TYPE_UNSUPPORTED2, (FileName, TypeName)); + + if (Convert) + { + Configuration->Usage->Inc(L"PrivateKeyConvertSuggestionsNative"); + UnicodeString ConvertMessage = FMTLOAD(KEY_TYPE_CONVERT3, (TypeName, RemoveMainInstructionsTag(Message))); + Message = UnicodeString(); + if (MoreMessageDialog(ConvertMessage, NULL, qtConfirmation, qaOK | qaCancel, HelpKeyword) == qaOK) + { + ConvertKey(FileName, Type); + Configuration->Usage->Inc(L"PrivateKeyConverted"); + } + else + { + Abort(); + } + } + else { - Message = FMTLOAD(KEY_TYPE_CONVERT2, (TypeName, RemoveMainInstructionsTag(Message))); + HelpKeyword = HELP_KEY_TYPE_UNSUPPORTED; } } - HelpKeyword = HELP_KEY_TYPE_UNSUPPORTED; break; case ktSSH1: @@ -977,7 +1058,7 @@ static void __fastcall DoVerifyKey( break; default: - FAIL; + DebugFail(); // fallthru case ktUnknown: Message = MainInstructions(FMTLOAD(KEY_TYPE_UNKNOWN2, (FileName))); @@ -986,39 +1067,47 @@ static void __fastcall DoVerifyKey( if (!Message.IsEmpty()) { - if (TryPuttygen) + Configuration->Usage->Inc(L"PrivateKeySelectErrors"); + if (MoreMessageDialog(Message, MoreMessages.get(), qtWarning, qaIgnore | qaAbort, + HelpKeyword) == qaAbort) { - Configuration->Usage->Inc(L"PrivateKeyConvertSuggestions"); - if (MoreMessageDialog(Message, MoreMessages.get(), qtConfirmation, qaOK | qaCancel, HelpKeyword) == qaOK) - { - if (!ExecuteShell(PuttygenPath, AddPathQuotes(FileName))) - { - throw Exception(FMTLOAD(EXECUTE_APP_ERROR, (PuttygenPath))); - } - } Abort(); } - else - { - Configuration->Usage->Inc(L"PrivateKeySelectErrors"); - if (MoreMessageDialog(Message, MoreMessages.get(), qtWarning, qaIgnore | qaAbort, - HelpKeyword) == qaAbort) - { - Abort(); - } - } } } } //--------------------------------------------------------------------------- +void __fastcall VerifyAndConvertKey(UnicodeString & FileName) +{ + DoVerifyKey(FileName, true, TSshProt(0), true); +} +//--------------------------------------------------------------------------- void __fastcall VerifyKey(UnicodeString FileName) { - DoVerifyKey(FileName, true, TSshProt(0)); + DoVerifyKey(FileName, true, TSshProt(0), false); } //--------------------------------------------------------------------------- void __fastcall VerifyKeyIncludingVersion(UnicodeString FileName, TSshProt SshProt) { - DoVerifyKey(FileName, false, SshProt); + DoVerifyKey(FileName, false, SshProt, false); +} +//--------------------------------------------------------------------------- +void __fastcall VerifyCertificate(const UnicodeString & FileName) +{ + if (!FileName.Trim().IsEmpty()) + { + try + { + CheckCertificate(FileName); + } + catch (Exception & E) + { + if (ExceptionMessageDialog(&E, qtWarning, L"", qaIgnore | qaAbort) == qaAbort) + { + Abort(); + } + } + } } //--------------------------------------------------------------------------- bool __fastcall DetectSystemExternalEditor( @@ -1028,14 +1117,14 @@ bool __fastcall DetectSystemExternalEditor( { bool Result = false; UnicodeString TempName = ExcludeTrailingBackslash(WinConfiguration->TemporaryDir()) + L".txt"; - if (FileExists(::ApiPath(TempName))) + if (FileExists(ApiPath(TempName))) { TryNextTime = true; UsageState = "F"; } else { - unsigned int File = FileCreate(::ApiPath(TempName)); + unsigned int File = FileCreate(ApiPath(TempName)); if (File == (unsigned int)INVALID_HANDLE_VALUE) { TryNextTime = true; @@ -1056,7 +1145,7 @@ bool __fastcall DetectSystemExternalEditor( { Executable = ExecutableBuf; if (Executable.IsEmpty() || - !FileExists(::ApiPath(Executable))) + !FileExists(ApiPath(Executable))) { UsageState = "N"; } @@ -1096,7 +1185,7 @@ bool __fastcall DetectSystemExternalEditor( } __finally { - DeleteFile(::ApiPath(TempName)); + DeleteFile(ApiPath(TempName)); } } } @@ -1121,14 +1210,14 @@ static bool __fastcall GetProxyUrlFromIE(UnicodeString & Proxy) Proxy = L""; while (Proxy.IsEmpty() && !IEProxy.IsEmpty()) { - UnicodeString Str = ::CutToChar(IEProxy, L';', true); + UnicodeString Str = CutToChar(IEProxy, L';', true); if (Str.Pos(L"=") == 0) { Proxy = Str; } else { - UnicodeString Protocol = ::CutToChar(Str, L'=', true); + UnicodeString Protocol = CutToChar(Str, L'=', true); if (SameText(Protocol, L"http")) { Proxy = Str; @@ -1151,12 +1240,13 @@ static bool __fastcall GetProxyUrlFromIE(UnicodeString & Proxy) return Result; } //--------------------------------------------------------------------------- -bool __fastcall AutodetectProxyUrl(UnicodeString & Proxy) +bool __fastcall AutodetectProxy(UnicodeString & HostName, int & PortNumber) { bool Result = false; /* First we try for proxy info direct from the registry if it's available. */ + UnicodeString Proxy; WINHTTP_PROXY_INFO ProxyInfo; memset(&ProxyInfo, 0, sizeof(ProxyInfo)); if (WinHttpGetDefaultProxyConfiguration(&ProxyInfo)) @@ -1185,6 +1275,19 @@ bool __fastcall AutodetectProxyUrl(UnicodeString & Proxy) Result = GetProxyUrlFromIE(Proxy); } + if (Result) + { + if (Proxy.Trim().IsEmpty()) + { + Result = false; + } + else + { + HostName = CutToChar(Proxy, L':', true); + PortNumber = StrToIntDef(Proxy, ProxyPortNumber); + } + } + // We can also use WinHttpGetProxyForUrl, but it is lengthy // See the source address of the code for example @@ -1254,20 +1357,20 @@ bool __fastcall TWinHelpTester::CanShowALink(const UnicodeString ALink, bool __fastcall TWinHelpTester::CanShowTopic(const UnicodeString Topic, const UnicodeString FileName) { - FAIL; + DebugFail(); return !Application->HelpFile.IsEmpty(); } //--------------------------------------------------------------------------- bool __fastcall TWinHelpTester::CanShowContext(const int /*Context*/, const UnicodeString FileName) { - FAIL; + DebugFail(); return !Application->HelpFile.IsEmpty(); } //--------------------------------------------------------------------------- TStringList * __fastcall TWinHelpTester::GetHelpStrings(const UnicodeString ALink) { - FAIL; + DebugFail(); TStringList * Result = new TStringList(); Result->Add(ViewerName + L": " + ALink); return Result; @@ -1292,7 +1395,7 @@ __fastcall TCustomHelpSelector::TCustomHelpSelector(const UnicodeString & Name) //--------------------------------------------------------------------------- int __fastcall TCustomHelpSelector::SelectKeyword(TStrings * /*Keywords*/) { - FAIL; + DebugFail(); return 0; } //--------------------------------------------------------------------------- diff --git a/source/windows/Tools.h b/source/windows/Tools.h index 76be1008..e7a88535 100644 --- a/source/windows/Tools.h +++ b/source/windows/Tools.h @@ -31,12 +31,16 @@ UnicodeString __fastcall StoreFormSize(TForm * Form); TFontStyles __fastcall IntToFontStyles(int value); int __fastcall FontStylesToInt(const TFontStyles value); bool __fastcall SameFont(TFont * Font1, TFont * Font2); +TColor __fastcall GetWindowTextColor(TColor Color); +TColor __fastcall GetWindowColor(TColor Color); +TColor __fastcall GetNonZeroColor(TColor Color); void __fastcall ValidateMaskEdit(TComboBox * Edit); void __fastcall ValidateMaskEdit(TEdit * Edit); void __fastcall ValidateMaskEdit(TMemo * Edit, bool Directory); void __fastcall OpenBrowser(UnicodeString URL); bool __fastcall IsFormatInClipboard(unsigned int Format); bool __fastcall TextFromClipboard(UnicodeString & Text, bool Trim); +bool __fastcall NonEmptyTextFromClipboard(UnicodeString & Text); HANDLE __fastcall OpenTextFromClipboard(const wchar_t *& Text); void __fastcall CloseTextFromClipboard(HANDLE Handle); void __fastcall ExitActiveControl(TForm * Form); @@ -50,15 +54,17 @@ void __fastcall BrowseForExecutable(TComboBox * Control, UnicodeString Title, bool __fastcall FontDialog(TFont * Font); bool __fastcall SaveDialog(UnicodeString Title, UnicodeString Filter, UnicodeString DefaultExt, UnicodeString & FileName); -bool __fastcall AutodetectProxyUrl(UnicodeString & Proxy); +bool __fastcall AutodetectProxy(UnicodeString & HostName, int & PortNumber); bool __fastcall IsWin64(); void __fastcall CopyToClipboard(UnicodeString Text); void __fastcall CopyToClipboard(TStrings * Strings); void __fastcall ShutDownWindows(); void __fastcall SuspendWindows(); void __fastcall EditSelectBaseName(HWND Edit); +void __fastcall VerifyAndConvertKey(UnicodeString & FileName); void __fastcall VerifyKey(UnicodeString FileName); void __fastcall VerifyKeyIncludingVersion(UnicodeString FileName, TSshProt SshProt); +void __fastcall VerifyCertificate(const UnicodeString & FileName); TStrings * __fastcall GetUnwrappedMemoLines(TMemo * Memo); bool __fastcall DetectSystemExternalEditor( bool AllowDefaultEditor, diff --git a/source/windows/UserInterface.cpp b/source/windows/UserInterface.cpp index fafa1eb0..e46a84cf 100644 --- a/source/windows/UserInterface.cpp +++ b/source/windows/UserInterface.cpp @@ -14,9 +14,7 @@ #include "WinConfiguration.h" #include "TerminalManager.h" #include "TextsWin.h" -#include "TBXThemes.hpp" -#include "TBXOfficeXPTheme.hpp" -#include "TBXOffice2003Theme.hpp" +#include "WinInterface.h" #include "PasswordEdit.hpp" #include "ProgParams.h" #include "Tools.h" @@ -110,7 +108,7 @@ void __fastcall SetOnForeground(bool OnForeground) //--------------------------------------------------------------------------- void __fastcall FlashOnBackground() { - assert(Application); + DebugAssert(Application); if (!ForcedOnForeground && !ForegroundTask()) { FlashWindow(Application->MainFormHandle, true); @@ -193,7 +191,7 @@ void __fastcall ShowExtendedExceptionEx(TTerminal * Terminal, SuspendWindows(); } - assert(Show); + DebugAssert(Show); if (ConfirmExitOnCompletion) { TMessageParams Params(mpNeverAskAgainCheck); @@ -230,9 +228,9 @@ void __fastcall ShowExtendedExceptionEx(TTerminal * Terminal, if (Result == qaYes) { - assert(CloseOnCompletion); - assert(Terminate != NULL); - assert(Terminate->Operation != odoIdle); + DebugAssert(CloseOnCompletion); + DebugAssert(Terminate != NULL); + DebugAssert(Terminate->Operation != odoIdle); Application->Terminate(); switch (Terminate->Operation) @@ -249,7 +247,7 @@ void __fastcall ShowExtendedExceptionEx(TTerminal * Terminal, break; default: - FAIL; + DebugFail(); } } else if (Result == qaRetry) @@ -267,7 +265,7 @@ void __fastcall ShowExtendedExceptionEx(TTerminal * Terminal, // on inactive terminal if (CloseOnCompletion) { - assert(Show); + DebugAssert(Show); if (ConfirmExitOnCompletion) { TMessageParams Params(mpNeverAskAgainCheck); @@ -293,50 +291,29 @@ void __fastcall ShowNotification(TTerminal * Terminal, const UnicodeString & Str TQueryType Type) { TTerminalManager * Manager = TTerminalManager::Instance(false); - assert(Manager != NULL); + DebugAssert(Manager != NULL); Manager->ScpExplorer->PopupTrayBalloon(Terminal, Str, Type); } //--------------------------------------------------------------------------- void __fastcall ConfigureInterface() { - UnicodeString S; - S = LoadStr(MIDDLE_EAST); - if (!S.IsEmpty()) - { - SysLocale.MiddleEast = static_cast(StrToInt(S)); - } - else - { - SysLocale.MiddleEast = false; - } - S = LoadStr(BIDI_MODE); - if (!S.IsEmpty()) - { - Application->BiDiMode = static_cast(StrToInt(bdRightToLeft)); - } - else - { - Application->BiDiMode = bdLeftToRight; - } + int BidiModeFlag = + AdjustLocaleFlag(LoadStr(BIDI_MODE), WinConfiguration->BidiModeOverride, false, bdRightToLeft, bdLeftToRight); + Application->BiDiMode = static_cast(BidiModeFlag); SetTBXSysParam(TSP_XPVISUALSTYLE, XPVS_AUTOMATIC); - // Can be called during configuration creation. - // Skip now, will be called again later. - if (Configuration != NULL) - { - TBXSetTheme(WinConfiguration->Theme); - } // Has any effect on Wine only // (otherwise initial UserDocumentDirectory is equivalent to GetPersonalFolder()) UserDocumentDirectory = GetPersonalFolder(); } //--------------------------------------------------------------------------- -// dummy function to force linking of TBXOfficeXPTheme.pas -void __fastcall CreateThemes() +#ifdef _DEBUG +void __fastcall ForceTracing() { - new TTBXOfficeXPTheme(THEME_OFFICEXP); - new TTBXOffice2003Theme(THEME_OFFICE2003); + Tracing::ForceTraceOn(); + SetTraceFile((HANDLE)Tracing::GetTraceFile()); } +#endif //--------------------------------------------------------------------------- void __fastcall DoAboutDialog(TConfiguration *Configuration) { @@ -453,7 +430,7 @@ static void __fastcall ToolbarWriteInt(const UnicodeString ToolbarName, TStrings * Storage = static_cast(const_cast(ExtraData)); UnicodeString ToolbarKey; GetToolbarKey(ToolbarName, Value, ToolbarKey); - assert(Storage->IndexOfName(ToolbarKey) < 0); + DebugAssert(Storage->IndexOfName(ToolbarKey) < 0); Storage->Values[ToolbarKey] = IntToStr(Data); } } @@ -464,7 +441,7 @@ static void __fastcall ToolbarWriteString(const UnicodeString ToolbarName, TStrings * Storage = static_cast(const_cast(ExtraData)); UnicodeString ToolbarKey; GetToolbarKey(ToolbarName, Value, ToolbarKey); - assert(Storage->IndexOfName(ToolbarKey) < 0); + DebugAssert(Storage->IndexOfName(ToolbarKey) < 0); Storage->Values[ToolbarKey] = Data; } //--------------------------------------------------------------------------- @@ -505,7 +482,7 @@ void __fastcall LoadToolbarsLayoutStr(TComponent * OwnerComponent, UnicodeString if ((Toolbar != NULL) && Toolbar->Stretch && (Toolbar->OnGetBaseSize != NULL) && // we do not support floating of stretched toolbars - ALWAYS_TRUE(!Toolbar->Floating)) + DebugAlwaysTrue(!Toolbar->Floating)) { TTBXToolbar * FollowingToolbar = NULL; for (int Index2 = 0; Index2 < OwnerComponent->ComponentCount; Index2++) @@ -547,6 +524,71 @@ static TComponent * LastPopupComponent = NULL; static TRect LastPopupRect(-1, -1, -1, -1); static TDateTime LastCloseUp; //--------------------------------------------------------------------------- +static void __fastcall ConvertMenu(TMenuItem * AItems, TTBCustomItem * Items) +{ + for (int Index = 0; Index < AItems->Count; Index++) + { + TMenuItem * AItem = AItems->Items[Index]; + TTBCustomItem * Item; + + if (!AItem->Enabled && !AItem->Visible && (AItem->Action == NULL) && + (AItem->OnClick == NULL) && DebugAlwaysTrue(AItem->Count == 0)) + { + TTBXLabelItem * LabelItem = new TTBXLabelItem(Items->Owner); + // TTBXLabelItem has it's own Caption + LabelItem->Caption = AItem->Caption; + LabelItem->SectionHeader = true; + Item = LabelItem; + } + else + { + // see TB2DsgnConverter.pas DoConvert + if (AItem->Caption == L"-") + { + Item = new TTBXSeparatorItem(Items->Owner); + } + else + { + if (AItem->Count > 0) + { + Item = new TTBXSubmenuItem(Items->Owner); + } + else + { + Item = new TTBXItem(Items->Owner); + } + Item->Action = AItem->Action; + Item->AutoCheck = AItem->AutoCheck; + Item->Caption = AItem->Caption; + Item->Checked = AItem->Checked; + if (AItem->Default) + { + Item->Options = Item->Options << tboDefault; + } + Item->Enabled = AItem->Enabled; + Item->GroupIndex = AItem->GroupIndex; + Item->HelpContext = AItem->HelpContext; + Item->ImageIndex = AItem->ImageIndex; + Item->RadioItem = AItem->RadioItem; + Item->ShortCut = AItem->ShortCut; + Item->SubMenuImages = AItem->SubMenuImages; + Item->OnClick = AItem->OnClick; + } + Item->Hint = AItem->Hint; + Item->Tag = AItem->Tag; + Item->Visible = AItem->Visible; + + // recurse is supported only for empty submenus (as used for custom commands) + if (AItem->Count > 0) + { + ConvertMenu(AItem, Item); + } + } + + Items->Add(Item); + } +} +//--------------------------------------------------------------------------- void __fastcall MenuPopup(TPopupMenu * AMenu, TRect Rect, TComponent * PopupComponent) { @@ -575,68 +617,7 @@ void __fastcall MenuPopup(TPopupMenu * AMenu, TRect Rect, Menu->OnPopup = AMenu->OnPopup; Menu->Items->SubMenuImages = AMenu->Images; - for (int Index = 0; Index < AMenu->Items->Count; Index++) - { - TMenuItem * AItem = AMenu->Items->Items[Index]; - TTBCustomItem * Item; - - if (!AItem->Enabled && !AItem->Visible && (AItem->Action == NULL) && - (AItem->OnClick == NULL) && ALWAYS_TRUE(AItem->Count == 0)) - { - TTBXLabelItem * LabelItem = new TTBXLabelItem(Menu); - // TTBXLabelItem has it's own Caption - LabelItem->Caption = AItem->Caption; - LabelItem->SectionHeader = true; - Item = LabelItem; - } - else - { - // see TB2DsgnConverter.pas DoConvert - if (AItem->Caption == L"-") - { - Item = new TTBXSeparatorItem(Menu); - } - else - { - if (AItem->Count > 0) - { - Item = new TTBXSubmenuItem(Menu); - } - else - { - Item = new TTBXItem(Menu); - } - Item->Action = AItem->Action; - Item->AutoCheck = AItem->AutoCheck; - Item->Caption = AItem->Caption; - Item->Checked = AItem->Checked; - if (AItem->Default) - { - Item->Options = Item->Options << tboDefault; - } - Item->Enabled = AItem->Enabled; - Item->GroupIndex = AItem->GroupIndex; - Item->HelpContext = AItem->HelpContext; - Item->ImageIndex = AItem->ImageIndex; - Item->RadioItem = AItem->RadioItem; - Item->ShortCut = AItem->ShortCut; - Item->SubMenuImages = AItem->SubMenuImages; - Item->OnClick = AItem->OnClick; - } - Item->Hint = AItem->Hint; - Item->Tag = AItem->Tag; - Item->Visible = AItem->Visible; - - // recurse is supported only for empty submenus (as used for custom commands) - if ((AItem->Count > 0) && - ALWAYS_TRUE((AItem->Count == 1) && (AItem->Items[0]->Caption == L""))) - { - Item->Add(new TTBXItem(Menu)); - } - } - - Menu->Items->Add(Item); - } + ConvertMenu(AMenu->Items, Menu->Items); } Menu->PopupComponent = PopupComponent; @@ -681,7 +662,7 @@ static void __fastcall GetStandardSessionColorInfo( COLOR_INFO(6, 1, L"Light Purple", 0xD9C1CC) COLOR_INFO(7, 1, L"Light Aqua", 0xE8DDB7) - FAIL; + DebugFail(); #undef COLOR_INFO } //--------------------------------------------------------------------------- @@ -703,7 +684,7 @@ static UnicodeString __fastcall StoreColor(TColor Color) //--------------------------------------------------------------------------- static UnicodeString __fastcall ExtractColorStr(UnicodeString & Colors) { - return ::CutToChar(Colors, ColorSeparator, true); + return CutToChar(Colors, ColorSeparator, true); } //--------------------------------------------------------------------------- static bool __fastcall IsStandardColor(TColor Color) @@ -727,7 +708,7 @@ static bool __fastcall IsStandardColor(TColor Color) class TColorChangeData : public TComponent { public: - __fastcall TColorChangeData(TColorChangeEvent OnColorChange, TColor Color); + __fastcall TColorChangeData(TColorChangeEvent OnColorChange, TColor Color, bool SessionColors); static TColorChangeData * __fastcall Retrieve(TObject * Object); @@ -735,29 +716,43 @@ class TColorChangeData : public TComponent __property TColor Color = { read = FColor }; + __property bool SessionColors = { read = FSessionColors }; + private: TColorChangeEvent FOnColorChange; TColor FColor; + bool FSessionColors; }; //--------------------------------------------------------------------------- -__fastcall TColorChangeData::TColorChangeData(TColorChangeEvent OnColorChange, TColor Color) : +__fastcall TColorChangeData::TColorChangeData( + TColorChangeEvent OnColorChange, TColor Color, bool SessionColors) : TComponent(NULL) { Name = QualifiedClassName(); FOnColorChange = OnColorChange; FColor = Color; + FSessionColors = SessionColors; } //--------------------------------------------------------------------------- TColorChangeData * __fastcall TColorChangeData::Retrieve(TObject * Object) { - TComponent * Component = NOT_NULL(dynamic_cast(Object)); + TComponent * Component = DebugNotNull(dynamic_cast(Object)); TComponent * ColorChangeDataComponent = Component->FindComponent(QualifiedClassName()); - return NOT_NULL(dynamic_cast(ColorChangeDataComponent)); + return DebugNotNull(dynamic_cast(ColorChangeDataComponent)); } //--------------------------------------------------------------------------- void __fastcall TColorChangeData::ColorChange(TColor Color) { - if ((Color != TColor(0)) && + // Color palette returns clNone when no color is selected, + // though it should not really happen. + // See also CreateColorPalette + if (Color == Vcl::Graphics::clNone) + { + Color = TColor(0); + } + + if (SessionColors && + (Color != TColor(0)) && !IsStandardColor(Color)) { UnicodeString SessionColors = StoreColor(Color); @@ -783,9 +778,8 @@ static void __fastcall ColorDefaultClick(void * /*Data*/, TObject * Sender) //--------------------------------------------------------------------------- static void __fastcall ColorPaletteChange(void * /*Data*/, TObject * Sender) { - TTBXColorPalette * ColorPalette = NOT_NULL(dynamic_cast(Sender)); - TColor Color = (ColorPalette->Color != Vcl::Graphics::clNone ? ColorPalette->Color : (TColor)0); - TColorChangeData::Retrieve(Sender)->ColorChange(Color); + TTBXColorPalette * ColorPalette = DebugNotNull(dynamic_cast(Sender)); + TColorChangeData::Retrieve(Sender)->ColorChange(GetNonZeroColor(ColorPalette->Color)); } //--------------------------------------------------------------------------- static UnicodeString __fastcall CustomColorName(int Index) @@ -801,50 +795,56 @@ static void __fastcall ColorPickClick(void * /*Data*/, TObject * Sender) Dialog->Options = Dialog->Options << cdFullOpen << cdAnyColor; Dialog->Color = (ColorChangeData->Color != 0 ? ColorChangeData->Color : clSkyBlue); - UnicodeString Temp = CustomWinConfiguration->SessionColors; - int StandardColorIndex = 0; - int CustomColors = Min(MaxCustomColors, StandardColorCount); - for (int Index = 0; Index < CustomColors; Index++) + if (ColorChangeData->SessionColors) { - TColor CustomColor; - if (!Temp.IsEmpty()) - { - CustomColor = RestoreColor(ExtractColorStr(Temp)); - } - else + UnicodeString Temp = CustomWinConfiguration->SessionColors; + int StandardColorIndex = 0; + int CustomColors = Min(MaxCustomColors, StandardColorCount); + for (int Index = 0; Index < CustomColors; Index++) { - UnicodeString Name; // not used - assert(StandardColorIndex < StandardColorCount); - GetStandardSessionColorInfo( - StandardColorIndex % ColorCols, StandardColorIndex / ColorCols, - CustomColor, Name); - StandardColorIndex++; + TColor CustomColor; + if (!Temp.IsEmpty()) + { + CustomColor = RestoreColor(ExtractColorStr(Temp)); + } + else + { + UnicodeString Name; // not used + DebugAssert(StandardColorIndex < StandardColorCount); + GetStandardSessionColorInfo( + StandardColorIndex % ColorCols, StandardColorIndex / ColorCols, + CustomColor, Name); + StandardColorIndex++; + } + Dialog->CustomColors->Values[CustomColorName(Index)] = StoreColor(CustomColor); } - Dialog->CustomColors->Values[CustomColorName(Index)] = StoreColor(CustomColor); } if (Dialog->Execute()) { - // so that we do not have to try to preserve the excess colors - assert(UserColorCount <= MaxCustomColors); - UnicodeString SessionColors; - for (int Index = 0; Index < MaxCustomColors; Index++) + if (ColorChangeData->SessionColors) { - UnicodeString CStr = Dialog->CustomColors->Values[CustomColorName(Index)]; - if (!CStr.IsEmpty()) + // so that we do not have to try to preserve the excess colors + DebugAssert(UserColorCount <= MaxCustomColors); + UnicodeString SessionColors; + for (int Index = 0; Index < MaxCustomColors; Index++) { - TColor CustomColor = RestoreColor(CStr); - if (!IsStandardColor(CustomColor)) + UnicodeString CStr = Dialog->CustomColors->Values[CustomColorName(Index)]; + if (!CStr.IsEmpty()) { - AddToList(SessionColors, StoreColor(CustomColor), ColorSeparator); + TColor CustomColor = RestoreColor(CStr); + if (!IsStandardColor(CustomColor)) + { + AddToList(SessionColors, StoreColor(CustomColor), ColorSeparator); + } } } + CustomWinConfiguration->SessionColors = SessionColors; } - CustomWinConfiguration->SessionColors = SessionColors; // call color change only after copying custom colors back, // so that it can add selected color to the user list - ColorChangeData->ColorChange(Dialog->Color); + ColorChangeData->ColorChange(GetNonZeroColor(Dialog->Color)); } } //--------------------------------------------------------------------------- @@ -879,83 +879,126 @@ static void __fastcall UserSessionColorSetGetColorInfo( } //--------------------------------------------------------------------------- void __fastcall CreateColorPalette(TTBCustomItem * Owner, TColor Color, int Rows, - TCSGetColorInfo OnGetColorInfo, TColorChangeEvent OnColorChange) + TCSGetColorInfo OnGetColorInfo, TColorChangeEvent OnColorChange, bool SessionColors) { - TTBXCustomColorSet * ColorSet = new TTBXCustomColorSet(Owner); - TTBXColorPalette * ColorPalette = new TTBXColorPalette(Owner); - ColorPalette->InsertComponent(ColorSet); - ColorPalette->ColorSet = ColorSet; - // has to be set only after it's assigned to color palette - ColorSet->ColCount = ColorCols; - ColorSet->RowCount = Rows; - ColorSet->OnGetColorInfo = OnGetColorInfo; + if (OnGetColorInfo != NULL) + { + TTBXCustomColorSet * ColorSet = new TTBXCustomColorSet(Owner); + ColorPalette->InsertComponent(ColorSet); + ColorPalette->ColorSet = ColorSet; + + // has to be set only after it's assigned to color palette + ColorSet->ColCount = ColorCols; + ColorSet->RowCount = Rows; + ColorSet->OnGetColorInfo = OnGetColorInfo; + } + // clNone = no selection, see also ColorChange ColorPalette->Color = (Color != 0) ? Color : Vcl::Graphics::clNone; ColorPalette->OnChange = MakeMethod(NULL, ColorPaletteChange); - ColorPalette->InsertComponent(new TColorChangeData(OnColorChange, Color)); + ColorPalette->InsertComponent(new TColorChangeData(OnColorChange, Color, SessionColors)); Owner->Add(ColorPalette); Owner->Add(new TTBXSeparatorItem(Owner)); } //--------------------------------------------------------------------------- -void __fastcall CreateSessionColorMenu(TComponent * AOwner, TColor Color, - TColorChangeEvent OnColorChange) +static void __fastcall CreateColorMenu(TComponent * AOwner, TColor Color, + TColorChangeEvent OnColorChange, bool SessionColors, + const UnicodeString & DefaultColorCaption, const UnicodeString & DefaultColorHint, + const UnicodeString & HelpKeyword, + const UnicodeString & ColorPickHint) { TTBCustomItem * Owner = dynamic_cast(AOwner); - if (ALWAYS_TRUE(Owner != NULL)) + if (DebugAlwaysTrue(Owner != NULL)) { Owner->Clear(); TTBCustomItem * Item; Item = new TTBXItem(Owner); - Item->Caption = LoadStr(COLOR_DEFAULT_CAPTION); - Item->Hint = LoadStr(COLOR_DEFAULT_HINT); - Item->HelpKeyword = HELP_COLOR; + Item->Caption = DefaultColorCaption; + Item->Hint = DefaultColorHint; + Item->HelpKeyword = HelpKeyword; Item->OnClick = MakeMethod(NULL, ColorDefaultClick); Item->Checked = (Color == TColor(0)); - Item->InsertComponent(new TColorChangeData(OnColorChange, Color)); + Item->InsertComponent(new TColorChangeData(OnColorChange, Color, SessionColors)); Owner->Add(Item); Owner->Add(new TTBXSeparatorItem(Owner)); - int SessionColorCount = 0; - UnicodeString Temp = CustomWinConfiguration->SessionColors; - while (!Temp.IsEmpty()) + if (SessionColors) { - SessionColorCount++; - ExtractColorStr(Temp); - } + int SessionColorCount = 0; + UnicodeString Temp = CustomWinConfiguration->SessionColors; + while (!Temp.IsEmpty()) + { + SessionColorCount++; + ExtractColorStr(Temp); + } - if (SessionColorCount > 0) - { - SessionColorCount = Min(SessionColorCount, UserColorCount); - int RowCount = ((SessionColorCount + ColorCols - 1) / ColorCols); - assert(RowCount <= UserColorRows); + if (SessionColorCount > 0) + { + SessionColorCount = Min(SessionColorCount, UserColorCount); + int RowCount = ((SessionColorCount + ColorCols - 1) / ColorCols); + DebugAssert(RowCount <= UserColorRows); - CreateColorPalette(Owner, Color, RowCount, - MakeMethod(NULL, UserSessionColorSetGetColorInfo), - OnColorChange); - } + CreateColorPalette(Owner, Color, RowCount, + MakeMethod(NULL, UserSessionColorSetGetColorInfo), + OnColorChange, SessionColors); + } - CreateColorPalette(Owner, Color, StandardColorRows, - MakeMethod(NULL, SessionColorSetGetColorInfo), - OnColorChange); + CreateColorPalette(Owner, Color, StandardColorRows, + MakeMethod(NULL, SessionColorSetGetColorInfo), + OnColorChange, SessionColors); + } + else + { + CreateColorPalette(Owner, Color, -1, NULL, OnColorChange, SessionColors); + } Owner->Add(new TTBXSeparatorItem(Owner)); Item = new TTBXItem(Owner); Item->Caption = LoadStr(COLOR_PICK_CAPTION); - Item->Hint = LoadStr(COLOR_PICK_HINT); - Item->HelpKeyword = HELP_COLOR; + Item->Hint = ColorPickHint; + Item->HelpKeyword = HelpKeyword; Item->OnClick = MakeMethod(NULL, ColorPickClick); - Item->InsertComponent(new TColorChangeData(OnColorChange, Color)); + Item->InsertComponent(new TColorChangeData(OnColorChange, Color, SessionColors)); Owner->Add(Item); } } //--------------------------------------------------------------------------- +void __fastcall CreateSessionColorMenu(TComponent * AOwner, TColor Color, + TColorChangeEvent OnColorChange) +{ + CreateColorMenu( + AOwner, Color, OnColorChange, true, + LoadStr(COLOR_TRUE_DEFAULT_CAPTION), LoadStr(EDITOR_BACKGROUND_COLOR_HINT), + HELP_COLOR, LoadStr(COLOR_PICK_HINT)); +} +//--------------------------------------------------------------------------- +void __fastcall CreateEditorBackgroundColorMenu(TComponent * AOwner, TColor Color, + TColorChangeEvent OnColorChange) +{ + CreateColorMenu( + AOwner, Color, OnColorChange, true, + LoadStr(COLOR_TRUE_DEFAULT_CAPTION), LoadStr(EDITOR_BACKGROUND_COLOR_HINT), + HELP_COLOR, LoadStr(EDITOR_BACKGROUND_COLOR_PICK_HINT)); +} +//--------------------------------------------------------------------------- +TPopupMenu * __fastcall CreateColorPopupMenu(TColor Color, + TColorChangeEvent OnColorChange) +{ + std::unique_ptr PopupMenu(new TTBXPopupMenu(Application)); + CreateColorMenu( + PopupMenu->Items, Color, OnColorChange, false, + LoadStr(COLOR_TRUE_DEFAULT_CAPTION), UnicodeString(), + HELP_NONE, UnicodeString()); + return PopupMenu.release(); +} +//--------------------------------------------------------------------------- void __fastcall UpgradeSpeedButton(TSpeedButton * /*Button*/) { // no-op yet @@ -1039,13 +1082,13 @@ void __fastcall SetShortCutCombo(TComboBox * ComboBox, TShortCut Value) } else if (AShortCut < Value) { - assert(Value != 0); + DebugAssert(Value != 0); ComboBox->Items->InsertObject(Index + 1, ShortCutToText(Value), reinterpret_cast(Value)); ComboBox->ItemIndex = Index + 1; break; } - assert(Index > 0); + DebugAssert(Index > 0); } } //--------------------------------------------------------------------------- @@ -1162,7 +1205,7 @@ void __fastcall TMasterPasswordDialog::DoValidate() int Valid = IsValidPassword(NewEdit->Text); if (Valid <= 0) { - assert(Valid == 0); + DebugAssert(Valid == 0); if (MessageDialog(LoadStr(MASTER_PASSWORD_SIMPLE2), qtWarning, qaOK | qaCancel, HELP_MASTER_PASSWORD_SIMPLE) == qaCancel) { @@ -1186,7 +1229,7 @@ static bool __fastcall DoMasterPasswordDialog(bool Current, if (Result) { if ((Current || WinConfiguration->UseMasterPassword) && - ALWAYS_TRUE(!CurrentPassword.IsEmpty())) + DebugAlwaysTrue(!CurrentPassword.IsEmpty())) { WinConfiguration->SetMasterPassword(CurrentPassword); } @@ -1203,7 +1246,7 @@ bool __fastcall DoMasterPasswordDialog() { UnicodeString NewPassword; bool Result = DoMasterPasswordDialog(true, NewPassword); - assert(NewPassword.IsEmpty()); + DebugAssert(NewPassword.IsEmpty()); return Result; } //--------------------------------------------------------------------------- diff --git a/source/windows/VCLCommon.cpp b/source/windows/VCLCommon.cpp index 1e14151e..01045a40 100644 --- a/source/windows/VCLCommon.cpp +++ b/source/windows/VCLCommon.cpp @@ -18,6 +18,10 @@ #include #include #include +#include +#include +#include +#include //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- @@ -39,8 +43,11 @@ static int __fastcall GetColumnTextWidth(TListView * ListView, int ColumnPadding //--------------------------------------------------------------------------- void __fastcall AutoSizeListColumnsWidth(TListView * ListView, int ColumnToShrinkIndex) { - // preallocate handle to precreate columns, otherwise our changes may get - // overwritten once the handle is created + // Preallocate handle to precreate columns, otherwise our changes may get + // overwritten once the handle is created. + // This should actually get called only once the handle are allocated. + // Otherwise we end up recreating the handles, + // what may cause a flicker of the currently focused window title. ListView->HandleNeeded(); SendMessage(ListView->Handle, WM_SETREDRAW, false, 0); @@ -129,7 +136,7 @@ void __fastcall AutoSizeListColumnsWidth(TListView * ListView, int ColumnToShrin } } - assert(LastResizable >= 0); + DebugAssert(LastResizable >= 0); int ClientWidth = ListView->ClientWidth; int RowCount = ListView->Items->Count; @@ -139,7 +146,7 @@ void __fastcall AutoSizeListColumnsWidth(TListView * ListView, int ColumnToShrin ClientWidth -= GetSystemMetrics(SM_CXVSCROLL); } - if (ALWAYS_TRUE(NonResizableWidth < ClientWidth)) + if (DebugAlwaysTrue(NonResizableWidth < ClientWidth)) { int Remaining = ClientWidth - NonResizableWidth; @@ -190,7 +197,7 @@ void __fastcall AutoSizeListColumnsWidth(TListView * ListView, int ColumnToShrin } } - assert(Remaining == 0); + DebugAssert(Remaining == 0); } } } @@ -226,7 +233,7 @@ void __fastcall EnableControl(TControl * Control, bool Enable) if ((dynamic_cast(Control) != NULL) || (dynamic_cast(Control) != NULL) || (dynamic_cast(Control) != NULL) || - (dynamic_cast(Control) != NULL)) + (dynamic_cast(Control) != NULL)) { if (Enable) { @@ -234,6 +241,11 @@ void __fastcall EnableControl(TControl * Control, bool Enable) } else { + // This does not work for list view with + // LVS_EX_DOUBLEBUFFER (TCustomDirView). + // It automatically gets gray background. + // Though on Windows 7, the control has to be disabled + // only after it is showing already (see TCustomScpExplorerForm::UpdateControls()) ((TEdit*)Control)->Color = clBtnFace; } } @@ -260,7 +272,7 @@ void __fastcall ReadOnlyControl(TControl * Control, bool ReadOnly) { ((TEdit*)Control)->Color = clWindow; // not supported atm, we need to persist previous value of WantReturns - assert(Memo == NULL); + DebugAssert(Memo == NULL); } } else if ((dynamic_cast(Control) != NULL) || @@ -270,7 +282,7 @@ void __fastcall ReadOnlyControl(TControl * Control, bool ReadOnly) } else { - FAIL; + DebugFail(); } } //--------------------------------------------------------------------------- @@ -294,7 +306,7 @@ bool __fastcall IsMainFormHidden() { bool Result = (GetMainForm() != NULL) && !GetMainForm()->Visible; // we do not expect this to return true when MainLikeForm is set - assert(!Result || (MainLikeForm == NULL)); + DebugAssert(!Result || (MainLikeForm == NULL)); return Result; } //--------------------------------------------------------------------------- @@ -336,14 +348,6 @@ UnicodeString __fastcall FormatFormCaption(TCustomForm * Form, const UnicodeStri return Result; } //--------------------------------------------------------------------------- -struct TSavedSystemSettings -{ - TCustomForm * Form; - UnicodeString FontName; - bool Flipped; - TWndMethod OldWndProc; -}; -//--------------------------------------------------------------------------- class TPublicWinControl : public TWinControl { friend TWndMethod __fastcall ControlWndProc(TWinControl * Control); @@ -380,7 +384,7 @@ inline void __fastcall DoFormWindowProc(TCustomForm * Form, TWndMethod WndProc, else if (Message.Msg == CM_SHOWINGCHANGED) { TForm * AForm = dynamic_cast(Form); - assert(AForm != NULL); + DebugAssert(AForm != NULL); if (IsMainFormLike(Form)) { if (Form->Showing) @@ -461,13 +465,13 @@ inline void __fastcall DoFormWindowProc(TCustomForm * Form, TWndMethod WndProc, (AForm->Position != poDefaultPosOnly)) { // we do not expect any other positioning - FAIL; + DebugFail(); } } else { TForm * AForm = dynamic_cast(Form); - assert(AForm != NULL); + DebugAssert(AForm != NULL); // otherwise it would not get centered if ((AForm->Position == poMainFormCenter) || (AForm->Position == poOwnerFormCenter)) @@ -518,6 +522,17 @@ inline void __fastcall DoFormWindowProc(TCustomForm * Form, TWndMethod WndProc, } } } + else if (Message.Msg == WM_SETICON) + { + // WORKAROUND: Swallow VCL attempt to clear the icon from TCustomForm.WMDestroy. + // The clearing still happens to be visualised before the form is hidden. + // On resizable forms, the icon gets replaced by the default application icon, + // on the other forms, the icon disappears and window caption is shifted left. + if (Message.LParam != 0) + { + WndProc(Message); + } + } else { WndProc(Message); @@ -530,12 +545,6 @@ static void __fastcall FormWindowProc(void * Data, TMessage & Message) DoFormWindowProc(Form, ControlWndProc(Form), Message); } //--------------------------------------------------------------------------- -static void __fastcall FormWindowProcEx(void * Data, TMessage & Message) -{ - TSavedSystemSettings * SSettings = static_cast(Data); - DoFormWindowProc(SSettings->Form, SSettings->OldWndProc, Message); -} -//--------------------------------------------------------------------------- void __fastcall InitializeSystemSettings() { } @@ -556,7 +565,18 @@ void __fastcall VerifyControl(TControl * Control) // check for the presence of items as while the listview does not have // a handle allocated, item count querying does not work // (see also a check below) - assert(!ControlHasRecreationPersistenceData(Control)); + if (ControlHasRecreationPersistenceData(Control)) + { + // Though is RTL bidi mode is set, the controls are recreated always, + // as we cannot really prevent it. So we force creation here. + DebugAssert(Application->BiDiMode != bdLeftToRight); + TWinControl * WinControl = dynamic_cast(Control); + // It must be TWinControl if ControlHasRecreationPersistenceData returned true + if (DebugAlwaysTrue(WinControl != NULL)) + { + WinControl->HandleNeeded(); + } + } TCustomListView * ListView = dynamic_cast(Control); if (ListView != NULL) @@ -567,11 +587,41 @@ void __fastcall VerifyControl(TControl * Control) // on the call. Because we do not want to allocate a handle here as // that would change the debug mode behavior from release behavior, // possibly hiding away some problems. - assert(!ListView->HandleAllocated() || (ListView->Items->Count == 0)); + DebugAssert(!ListView->HandleAllocated() || (ListView->Items->Count == 0)); } } #endif //--------------------------------------------------------------------------- +static void __fastcall ApplySystemSettingsOnTBItem(TTBCustomToolbar * Toolbar, TTBCustomItem * Item) +{ + TTBEditItem * EditItem = dynamic_cast(Item); + if (EditItem != NULL) + { + EditItem->EditWidth = ScaleByTextHeight(Toolbar, EditItem->EditWidth); + + TTBXComboBoxItem * ComboBoxItem = dynamic_cast(EditItem); + if (ComboBoxItem != NULL) + { + ComboBoxItem->MinListWidth = + ScaleByTextHeight(Toolbar, ComboBoxItem->MinListWidth); + ComboBoxItem->MaxListWidth = + ScaleByTextHeight(Toolbar, ComboBoxItem->MaxListWidth); + } + } + + TTBXCustomList * CustomList = dynamic_cast(Item); + if (CustomList != NULL) + { + CustomList->MaxWidth = ScaleByTextHeight(Toolbar, CustomList->MaxWidth); + CustomList->MinWidth = ScaleByTextHeight(Toolbar, CustomList->MinWidth); + } + + for (int ItemIndex = 0; ItemIndex < Item->Count; ItemIndex++) + { + ApplySystemSettingsOnTBItem(Toolbar, Item->Items[ItemIndex]); + } +} +//--------------------------------------------------------------------------- void __fastcall ApplySystemSettingsOnControl(TControl * Control) { #ifdef _DEBUG @@ -581,11 +631,22 @@ void __fastcall ApplySystemSettingsOnControl(TControl * Control) // WORKAROUND // VCL does not scale status par panels (while for instance it does // scale list view headers). Remove this if they ever "fix" this. + // Neither they scale the status bar size if UseSystemFont is true. + // they claim it should scale with font size, but it does not, + // probably because they eat WM_SIZE in TCustomStatusBar.WMSize. + // See http://qc.embarcadero.com/wc/qcmain.aspx?d=83599 // Check TCustomStatusBar.ChangeScale() for changes. // For TBX status bars, this is implemented in TTBXCustomStatusBar.ChangeScale TStatusBar * StatusBar = dynamic_cast(Control); if (StatusBar != NULL) { + // We should have UseSystemFont and bottom alignment set for all status bars. + if (DebugAlwaysTrue(StatusBar->UseSystemFont) && + DebugAlwaysTrue(StatusBar->Align == alBottom)) + { + StatusBar->Height = ScaleByTextHeight(StatusBar, StatusBar->Height); + } + for (int Index = 0; Index < StatusBar->Panels->Count; Index++) { TStatusPanel * Panel = StatusBar->Panels->Items[Index]; @@ -593,6 +654,44 @@ void __fastcall ApplySystemSettingsOnControl(TControl * Control) } } + TTBCustomToolbar * Toolbar = dynamic_cast(Control); + if (Toolbar != NULL) + { + ApplySystemSettingsOnTBItem(Toolbar, Toolbar->Items); + } + + TCustomListView * ListView = dynamic_cast(Control); + if (ListView != NULL) + { + TListView * PublicListView = reinterpret_cast(ListView); + + for (int Index = 0; Index < PublicListView->Columns->Count; Index++) + { + TListColumn * Column = ListView->Column[Index]; + Column->MaxWidth = ScaleByTextHeight(ListView, Column->MaxWidth); + Column->MinWidth = ScaleByTextHeight(ListView, Column->MinWidth); + } + } + + // WORKAROUND for lask of public API so mimicking Explorer-style mouse selection + // See http://stackoverflow.com/q/15750842/850848 + TCustomIEListView * IEListView = dynamic_cast(Control); + if (IEListView != NULL) + { + // It should not be a problem to call the LVM_QUERYINTERFACE + // on earlier versions of Windows. It should be noop. + if (IsWin7()) + { + IListView_Win7 * ListViewIntf = NULL; + SendMessage(IEListView->Handle, LVM_QUERYINTERFACE, reinterpret_cast(&IID_IListView_Win7), reinterpret_cast(&ListViewIntf)); + if (DebugAlwaysTrue(ListViewIntf != NULL)) + { + ListViewIntf->SetSelectionFlags(1, 1); + ListViewIntf->Release(); + } + } + } + TWinControl * WinControl = dynamic_cast(Control); if (WinControl != NULL) { @@ -604,30 +703,13 @@ void __fastcall ApplySystemSettingsOnControl(TControl * Control) } //--------------------------------------------------------------------------- // Settings that must be set as soon as possible. -void __fastcall UseSystemSettingsPre(TCustomForm * Control, void ** Settings) +void __fastcall UseSystemSettingsPre(TCustomForm * Control) { LocalSystemSettings(Control); TWndMethod WindowProc; - - if (Settings) - { - TSavedSystemSettings * SSettings; - SSettings = new TSavedSystemSettings(); - *Settings = static_cast(SSettings); - SSettings->Form = Control; - SSettings->FontName = Control->Font->Name; - SSettings->OldWndProc = Control->WindowProc; - - ((TMethod*)&WindowProc)->Data = SSettings; - ((TMethod*)&WindowProc)->Code = FormWindowProcEx; - } - else - { - ((TMethod*)&WindowProc)->Data = Control; - ((TMethod*)&WindowProc)->Code = FormWindowProc; - } - + ((TMethod*)&WindowProc)->Data = Control; + ((TMethod*)&WindowProc)->Code = FormWindowProc; Control->WindowProc = WindowProc; if (Control->HelpKeyword.IsEmpty()) @@ -639,30 +721,55 @@ void __fastcall UseSystemSettingsPre(TCustomForm * Control, void ** Settings) ApplySystemSettingsOnControl(Control); }; //--------------------------------------------------------------------------- -// Settings that must be set only after whole form is constructed -void __fastcall UseSystemSettingsPost(TCustomForm * Control, void * Settings) +static void FlipAnchors(TControl * Control) { - bool Flip; - UnicodeString FlipStr = LoadStr(FLIP_CHILDREN); - Flip = !FlipStr.IsEmpty() && static_cast(StrToInt(FlipStr)); - - if (Settings != NULL) + // WORKAROUND VCL flips the Align, but not the Anchors + TAnchors Anchors = Control->Anchors; + if (Anchors.Contains(akLeft) != Anchors.Contains(akRight)) { - static_cast(Settings)->Flipped = Flip; + if (Anchors.Contains(akLeft)) + { + Anchors << akRight; + Anchors >> akLeft; + } + else + { + Anchors << akLeft; + Anchors >> akRight; + } } + Control->Anchors = Anchors; - if (Flip) + TWinControl * WinControl = dynamic_cast(Control); + if (WinControl != NULL) + { + for (int Index = 0; Index < WinControl->ControlCount; Index++) + { + FlipAnchors(WinControl->Controls[Index]); + } + } +} +//--------------------------------------------------------------------------- +// Settings that must be set only after whole form is constructed +void __fastcall UseSystemSettingsPost(TCustomForm * Control) +{ + UnicodeString FlipStr = LoadStr(FLIP_CHILDREN); + int FlipChildrenFlag = + AdjustLocaleFlag(FlipStr, WinConfiguration->FlipChildrenOverride, false, true, false); + if (static_cast(FlipChildrenFlag)) { Control->FlipChildren(true); + + FlipAnchors(Control); } ResetSystemSettings(Control); }; //--------------------------------------------------------------------------- -void __fastcall UseSystemSettings(TCustomForm * Control, void ** Settings) +void __fastcall UseSystemSettings(TCustomForm * Control) { - UseSystemSettingsPre(Control, Settings); - UseSystemSettingsPost(Control, (Settings != NULL) ? *Settings : NULL); + UseSystemSettingsPre(Control); + UseSystemSettingsPost(Control); }; //--------------------------------------------------------------------------- void __fastcall ResetSystemSettings(TCustomForm * /*Control*/) @@ -670,26 +777,6 @@ void __fastcall ResetSystemSettings(TCustomForm * /*Control*/) // noop } //--------------------------------------------------------------------------- -void __fastcall DeleteSystemSettings(TCustomForm * Control, void * Settings) -{ - assert(Settings); - TSavedSystemSettings * SSettings = static_cast(Settings); - - Control->WindowProc = SSettings->OldWndProc; - delete SSettings; -} -//--------------------------------------------------------------------------- -void __fastcall RevokeSystemSettings(TCustomForm * Control, void * Settings) -{ - assert(Settings); - TSavedSystemSettings* SSettings = static_cast(Settings); - if (SSettings->Flipped) - { - Control->FlipChildren(true); - } - DeleteSystemSettings(Control, Settings); -}; -//--------------------------------------------------------------------------- class TPublicForm : public TForm { friend void __fastcall ShowAsModal(TForm * Form, void *& Storage); @@ -737,7 +824,7 @@ void __fastcall ShowAsModal(TForm * Form, void *& Storage) //--------------------------------------------------------------------------- void __fastcall HideAsModal(TForm * Form, void *& Storage) { - assert((static_cast(Form))->FFormState.Contains(fsModal)); + DebugAssert((static_cast(Form))->FFormState.Contains(fsModal)); TShowAsModalStorage * AStorage = static_cast(Storage); Storage = NULL; @@ -800,7 +887,7 @@ bool __fastcall SelectDirectory(UnicodeString & Path, const UnicodeString Prompt { UnicodeString Directory; UnicodeString FileName; - if (!PreserveFileName || DirectoryExists(::ApiPath(Path))) + if (!PreserveFileName || DirectoryExists(ApiPath(Path))) { Directory = Path; } @@ -876,7 +963,7 @@ void __fastcall ComboAutoSwitchInitialize(TComboBox * ComboBox) { ComboBox->Items->EndUpdate(); } - assert(PrevIndex < ComboBox->Items->Count); + DebugAssert(PrevIndex < ComboBox->Items->Count); ComboBox->ItemIndex = PrevIndex; } //--------------------------------------------------------------------------- @@ -986,7 +1073,7 @@ int CALLBACK PathWordBreakProc(wchar_t * Ch, int Current, int Len, int Code) } else { - FAIL; + DebugFail(); Result = 0; } return Result; @@ -1048,7 +1135,7 @@ void __fastcall SetVerticalControlsOrder(TControl ** ControlsOrder, int Count) int Top = 0; for (int Index = 0; Index < Count; Index++) { - assert(ControlsOrder[Index]->Parent == CommonParent); + DebugAssert(ControlsOrder[Index]->Parent == CommonParent); if ((Index == 0) || (Top > ControlsOrder[Index]->Top)) { Top = ControlsOrder[Index]->Top; @@ -1086,7 +1173,7 @@ void __fastcall SetHorizontalControlsOrder(TControl ** ControlsOrder, int Count) int Left = 0; for (int Index = 0; Index < Count; Index++) { - assert(ControlsOrder[Index]->Parent == CommonParent); + DebugAssert(ControlsOrder[Index]->Parent == CommonParent); if ((Index == 0) || (Left > ControlsOrder[Index]->Left)) { Left = ControlsOrder[Index]->Left; @@ -1133,7 +1220,7 @@ void __fastcall MakeNextInTabOrder(TWinControl * Control, TWinControl * After) //--------------------------------------------------------------------------- void __fastcall CutFormToDesktop(TForm * Form) { - assert(Form->Monitor != NULL); + DebugAssert(Form->Monitor != NULL); TRect Workarea = Form->Monitor->WorkareaRect; if (Form->Top + Form->Height > Workarea.Bottom) { @@ -1265,7 +1352,7 @@ void __fastcall SetCorrectFormParent(TForm * /*Form*/) //--------------------------------------------------------------------------- void __fastcall InvokeHelp(TWinControl * Control) { - assert(Control != NULL); + DebugAssert(Control != NULL); HELPINFO HelpInfo; HelpInfo.cbSize = sizeof(HelpInfo); @@ -1289,22 +1376,40 @@ static void __fastcall FocusableLabelCanvas(TStaticText * StaticText, R = StaticText->ClientRect; - UnicodeString Caption = StaticText->Caption; - bool AccelChar = false; - if (StaticText->ShowAccelChar) + TSize TextSize; + if (StaticText->AutoSize) { - Caption = StripHotkey(Caption); - AccelChar = (Caption != StaticText->Caption); - } + // We possibly could use the same code as in !AutoSize branch, + // keeping this to avoid problems in existing code + UnicodeString Caption = StaticText->Caption; + bool AccelChar = false; + if (StaticText->ShowAccelChar) + { + Caption = StripHotkey(Caption); + AccelChar = (Caption != StaticText->Caption); + } + TextSize = Canvas->TextExtent(Caption); - TSize TextSize = Canvas->TextExtent(Caption); - assert(StaticText->BorderStyle == sbsNone); // not taken into account - if (AccelChar) + DebugAssert(StaticText->BorderStyle == sbsNone); // not taken into account + if (AccelChar) + { + TextSize.cy += 2; + } + } + else { - TextSize.cy += 2; + TRect TextRect; + SetRect(&TextRect, 0, 0, StaticText->Width, 0); + DrawText(Canvas->Handle, StaticText->Caption.c_str(), -1, &TextRect, + DT_CALCRECT | DT_WORDBREAK | + StaticText->DrawTextBiDiModeFlagsReadingOnly()); + TextSize = TextRect.GetSize(); } R.Bottom = R.Top + TextSize.cy; + // Should call ChangeBiDiModeAlignment when UseRightToLeftAlignment(), + // but the label seems to draw the text wrongly aligned, even though + // the alignment is correctly flipped in TCustomStaticText.CreateParams switch (StaticText->Alignment) { case taLeftJustify: @@ -1317,7 +1422,7 @@ static void __fastcall FocusableLabelCanvas(TStaticText * StaticText, case taCenter: { - FAIL; // not used branch, possibly untested + DebugFail(); // not used branch, possibly untested int Diff = R.Width() - TextSize.cx; R.Left += Diff / 2; R.Right -= Diff - (Diff / 2); @@ -1553,12 +1658,12 @@ static void __fastcall HintLabelWindowProc(void * Data, TMessage & Message) //--------------------------------------------------------------------------- void __fastcall HintLabel(TStaticText * StaticText, UnicodeString Hint) { - // Currently all are right-justified, when other alignemtn is used, + // Currently all are right-justified, when other alignment is used, // test respective branches in FocusableLabelCanvas. - assert(StaticText->Alignment == taRightJustify); - // With right-justify, it has to be off. We may not notice on riginal + DebugAssert(StaticText->Alignment == taRightJustify); + // With right-justify, it has to be off. We may not notice on original // English version, results will differ with translations only - assert(!StaticText->AutoSize); + DebugAssert(!StaticText->AutoSize); StaticText->ParentFont = true; if (!Hint.IsEmpty()) { @@ -1626,12 +1731,7 @@ static void __fastcall LinkLabelClick(TStaticText * StaticText) } else { - UnicodeString Url = StaticText->Caption; - if (!SameText(Url.SubString(1, 4), L"http") && (Url.Pos(L"@") > 0)) - { - Url = L"mailto:" + Url; - } - OpenBrowser(Url); + OpenBrowser(StaticText->Caption); } } //--------------------------------------------------------------------------- @@ -1673,7 +1773,7 @@ static void __fastcall LinkLabelWindowProc(void * Data, TMessage & Message) if (Message.Msg == WM_DESTROY) { delete StaticText->PopupMenu; - assert(StaticText->PopupMenu == NULL); + DebugAssert(StaticText->PopupMenu == NULL); } if (Clicked) @@ -1686,7 +1786,7 @@ static void __fastcall LinkLabelContextMenuClick(void * Data, TObject * Sender) { TStaticText * StaticText = static_cast(Data); TMenuItem * MenuItem = dynamic_cast(Sender); - assert(MenuItem != NULL); + DebugAssert(MenuItem != NULL); if (MenuItem->Tag == 0) { @@ -1713,9 +1813,10 @@ void __fastcall LinkLabel(TStaticText * StaticText, UnicodeString Url, StaticText->Caption = Url; } - if (StaticText->OnClick == NULL) + bool IsUrl = IsHttpUrl(StaticText->Caption); + if (IsUrl) { - assert(StaticText->PopupMenu == NULL); + DebugAssert(StaticText->PopupMenu == NULL); StaticText->PopupMenu = new TPopupMenu(StaticText); try { @@ -1742,7 +1843,7 @@ void __fastcall LinkLabel(TStaticText * StaticText, UnicodeString Url, catch(...) { delete StaticText->PopupMenu; - assert(StaticText->PopupMenu == NULL); + DebugAssert(StaticText->PopupMenu == NULL); throw; } } @@ -1765,8 +1866,8 @@ static void __fastcall HotTrackLabelMouseLeave(void * /*Data*/, TObject * Sender //--------------------------------------------------------------------------- void __fastcall HotTrackLabel(TLabel * Label) { - assert(Label->OnMouseEnter == NULL); - assert(Label->OnMouseLeave == NULL); + DebugAssert(Label->OnMouseEnter == NULL); + DebugAssert(Label->OnMouseLeave == NULL); Label->OnMouseEnter = MakeMethod(NULL, HotTrackLabelMouseEnter); Label->OnMouseLeave = MakeMethod(NULL, HotTrackLabelMouseLeave); @@ -1790,7 +1891,7 @@ Forms::TMonitor * __fastcall FormMonitor(TCustomForm * Form) { i++; } - assert(Screen->Monitors[i]->Primary); + DebugAssert(Screen->Monitors[i]->Primary); Result = Screen->Monitors[i]; } return Result; @@ -1839,12 +1940,12 @@ TForm * __fastcall _SafeFormCreate(TMetaClass * FormClass, TComponent * Owner) if (Application->MainForm == NULL) { Application->CreateForm(FormClass, &Form); - assert(Application->MainForm == Form); + DebugAssert(Application->MainForm == Form); } else { Form = dynamic_cast(Construct(FormClass, Owner)); - assert(Form != NULL); + DebugAssert(Form != NULL); } return Form; @@ -1904,20 +2005,20 @@ TModalResult __fastcall DefaultResult(TCustomForm * Form, TButton * DefaultButto // We interpreted mrNone as OK, causing lots of troubles. TModalResult Result = mrNone; TButton * Button = FindDefaultButton(Form); - if (ALWAYS_TRUE(Button != NULL)) + if (DebugAlwaysTrue(Button != NULL)) { Result = Button->ModalResult; } if (Result == mrNone) { - assert((DefaultButton != NULL) && (DefaultButton->ModalResult != mrNone)); + DebugAssert((DefaultButton != NULL) && (DefaultButton->ModalResult != mrNone)); Result = DefaultButton->ModalResult; } else { // If default button fallback was provided, - // make sure it is the default button be actually detected - assert((DefaultButton == NULL) || (Button == DefaultButton)); + // make sure it is the default button we actually detected + DebugAssert((DefaultButton == NULL) || (Button == DefaultButton)); } return Result; } @@ -1935,7 +2036,7 @@ void __fastcall MemoKeyDown(TObject * Sender, WORD & Key, TShiftState Shift) { // Sender can be Form or Memo itself TControl * Control = dynamic_cast(Sender); - if (ALWAYS_TRUE(Control != NULL)) + if (DebugAlwaysTrue(Control != NULL)) { TCustomForm * Form = GetParentForm(Control); // Particularly when WantReturns is true, @@ -1954,22 +2055,56 @@ void __fastcall MemoKeyDown(TObject * Sender, WORD & Key, TShiftState Shift) } } //--------------------------------------------------------------------------- -void __fastcall SetFormIcon(TForm * Form, int Size, const UnicodeString & IconName) +class TIconOwnerComponent : public TComponent { - HICON Icon = LoadIcon(HInstance, IconName.c_str()); - if (ALWAYS_TRUE(Icon != NULL)) +public: + __fastcall TIconOwnerComponent(TIcon * Icon) : + TComponent(NULL), + FIcon(Icon) { - LPARAM LParam = reinterpret_cast(Icon); - SendMessage(Form->Handle, WM_SETICON, Size, LParam); - DestroyIcon(Icon); } + +private: + std::unique_ptr FIcon; +}; +//--------------------------------------------------------------------------- +static void __fastcall FixFormIcon(TForm * Form, int Size, int WidthMetric, int HeightMetric) +{ + // Whole this code is to call ReadIcon from Vcl.Graphics.pas with correct size + + // Clone the icon data (whole .ico file content, that is originally loaded from .dfm) + // to a new TIcon that does not have a size fixed yet (size cannot be changed after handle is allocated) + std::unique_ptr Stream(new TMemoryStream()); + Form->Icon->SaveToStream(Stream.get()); + std::unique_ptr Icon(new TIcon()); + Stream->Position = 0; + Icon->LoadFromStream(Stream.get()); + + // Set desired size + Icon->SetSize(GetSystemMetrics(WidthMetric), GetSystemMetrics(HeightMetric)); + + // This calls TIcon::RequireHandle that retrieves the best icon for given size + LPARAM LParam = reinterpret_cast(Icon->Handle); + SendMessage(Form->Handle, WM_SETICON, Size, LParam); + + // Make sure the icon is released + TIconOwnerComponent * IconOwnerComponent = new TIconOwnerComponent(Icon.release()); + IconOwnerComponent->Name = TIconOwnerComponent::QualifiedClassName() + IntToStr(Size); + Form->InsertComponent(IconOwnerComponent); } //--------------------------------------------------------------------------- -void __fastcall SetFormIcons(TForm * Form, const UnicodeString & BigIconName, - const UnicodeString & SmallIconName) +void __fastcall FixFormIcons(TForm * Form) { - SetFormIcon(Form, ICON_SMALL, SmallIconName); - SetFormIcon(Form, ICON_BIG, BigIconName); + // VCL sets only ICON_BIG (so small icon is scaled down by OS from big icon), + // and it uses a random (first?) size from the resource, + // not the best size. + FixFormIcon(Form, ICON_SMALL, SM_CXSMICON, SM_CYSMICON); + FixFormIcon(Form, ICON_BIG, SM_CXICON, SM_CYICON); + // We rely on VCL not calling WM_SETICON ever after + // (what it would do, if CreateWnd is called again). + // That would overwrite the ICON_BIG. + // We might be able to make sure it uses a correct size by calling + // TIcon.ReleaseHandle and setting a correct size. } //--------------------------------------------------------------------------- void __fastcall UseDesktopFont(TControl * Control) @@ -1990,9 +2125,51 @@ void __fastcall UseDesktopFont(TControl * Control) reinterpret_cast(Control)->DesktopFont = true; } //--------------------------------------------------------------------------- -void __fastcall LoadResourceImage(TImage * Image, const UnicodeString & ImageName) +TShiftState __fastcall AllKeyShiftStates() +{ + return TShiftState() << ssShift << ssAlt << ssCtrl; +} +//--------------------------------------------------------------------------- +static bool __fastcall FormActivationHook(void * Data, TMessage & Message) +{ + bool Result = false; + // Some dialogs, when application is restord from minimization, + // do not get activated. So we do it explicitly here. + // We cannot do this from TApplication::OnActivate because + // TApplication.WndProc resets focus to the last active window afterwards. + // So we override CM_ACTIVATE implementation here completelly. + if (Message.Msg == CM_ACTIVATE) + { + TCustomForm * Form = static_cast(Data); + if (Screen->FocusedForm == Form) + { + ::SetFocus(Form->Handle); + // VCLCOPY + if (Application->OnActivate != NULL) + { + Application->OnActivate(Application); + } + Result = true; + } + } + return Result; +} +//--------------------------------------------------------------------------- +void __fastcall HookFormActivation(TCustomForm * Form) +{ + Application->HookMainWindow(MakeMethod(Form, FormActivationHook)); +} +//--------------------------------------------------------------------------- +void __fastcall UnhookFormActivation(TCustomForm * Form) +{ + Application->UnhookMainWindow(MakeMethod(Form, FormActivationHook)); +} +//--------------------------------------------------------------------------- +TPanel * __fastcall CreateBlankPanel(TComponent * Owner) { - std::unique_ptr Png(new TPngImage()); - Png->LoadFromResourceName(0, ImageName); - Image->Picture->Assign(Png.get()); + TPanel * Panel = new TPanel(Owner); + Panel->BevelOuter = bvNone; + Panel->BevelInner = bvNone; // default + Panel->BevelKind = bkNone; + return Panel; } diff --git a/source/windows/VCLCommon.h b/source/windows/VCLCommon.h index 821a2123..f218f927 100644 --- a/source/windows/VCLCommon.h +++ b/source/windows/VCLCommon.h @@ -16,12 +16,10 @@ void __fastcall ReadOnlyControl(TControl * Control, bool ReadOnly = true); void __fastcall InitializeSystemSettings(); void __fastcall FinalizeSystemSettings(); void __fastcall LocalSystemSettings(TCustomForm * Control); -void __fastcall UseSystemSettingsPre(TCustomForm * Control, void ** Settings = NULL); -void __fastcall UseSystemSettingsPost(TCustomForm * Control, void * Settings = NULL); -void __fastcall UseSystemSettings(TCustomForm * Control, void ** Settings = NULL); +void __fastcall UseSystemSettingsPre(TCustomForm * Control); +void __fastcall UseSystemSettingsPost(TCustomForm * Control); +void __fastcall UseSystemSettings(TCustomForm * Control); void __fastcall ResetSystemSettings(TCustomForm * Control); -void __fastcall RevokeSystemSettings(TCustomForm * Control, void * Settings); -void __fastcall DeleteSystemSettings(TCustomForm * Control, void * Settings); void __fastcall LinkLabel(TStaticText * StaticText, UnicodeString Url = L"", TNotifyEvent OnEnter = NULL); void __fastcall HintLabel(TStaticText * StaticText, UnicodeString Hint = L""); @@ -54,8 +52,7 @@ TComponent * __fastcall GetFormOwner(); TForm * __fastcall GetMainForm(); void __fastcall SetCorrectFormParent(TForm * Form); void __fastcall InvokeHelp(TWinControl * Control); -void __fastcall SetFormIcons(TForm * Form, const UnicodeString & BigIconName, - const UnicodeString & SmallIconName); +void __fastcall FixFormIcons(TForm * Form); Forms::TMonitor * __fastcall FormMonitor(TCustomForm * Form); int __fastcall GetLastMonitor(); void __fastcall SetLastMonitor(int MonitorNum); @@ -70,9 +67,12 @@ TModalResult __fastcall DefaultResult(TCustomForm * Form, TButton * DefaultButto void __fastcall DefaultButton(TButton * Button, bool Default); void __fastcall MemoKeyDown(TObject * Sender, WORD & Key, TShiftState Shift); void __fastcall UseDesktopFont(TControl * Control); -void __fastcall LoadResourceImage(TImage * Image, const UnicodeString & ImageName); UnicodeString __fastcall FormatFormCaption(TCustomForm * Form, const UnicodeString & Caption); UnicodeString __fastcall FormatMainFormCaption(const UnicodeString & Caption); +TShiftState __fastcall AllKeyShiftStates(); void __fastcall RealignControl(TControl * Control); +void __fastcall HookFormActivation(TCustomForm * Form); +void __fastcall UnhookFormActivation(TCustomForm * Form); +TPanel * __fastcall CreateBlankPanel(TComponent * Owner); //--------------------------------------------------------------------------- #endif // VCLCommonH diff --git a/source/windows/WinApi.h b/source/windows/WinApi.h index 4ac400a1..9ea00ca7 100644 --- a/source/windows/WinApi.h +++ b/source/windows/WinApi.h @@ -7,6 +7,8 @@ typedef BOOL WINAPI (* ChangeWindowMessageFilterExProc)( HWND hwnd, UINT message, DWORD action, PCHANGEFILTERSTRUCT pChangeFilterStruct); //--------------------------------------------------------------------------- +#define WM_DPICHANGED 0x02E0 +//--------------------------------------------------------------------------- typedef enum _Monitor_DPI_Type { MDT_Effective_DPI = 0, MDT_Angular_DPI = 1, @@ -17,4 +19,168 @@ typedef enum _Monitor_DPI_Type { typedef HRESULT WINAPI (* GetDpiForMonitorProc)( HMONITOR hmonitor, MONITOR_DPI_TYPE dpiType, UINT * dpiX, UINT * dpiY); //--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- +// Taken from http://www.codeproject.com/Articles/35197/Undocumented-List-View-Features +//--------------------------------------------------------------------------- +#define LVM_QUERYINTERFACE (LVM_FIRST + 189) +//--------------------------------------------------------------------------- +// the interface's GUID +extern const IID IID_IListView_Win7; +//--------------------------------------------------------------------------- +class IOwnerDataCallback; // we do not need this interface, so we do not define it +//--------------------------------------------------------------------------- +class IListView_Win7 : public IOleWindow +{ +public: + virtual HRESULT STDMETHODCALLTYPE GetImageList(int imageList, HIMAGELIST* pHImageList) = 0; + virtual HRESULT STDMETHODCALLTYPE SetImageList(int imageList, HIMAGELIST hNewImageList, HIMAGELIST* pHOldImageList) = 0; + virtual HRESULT STDMETHODCALLTYPE GetBackgroundColor(COLORREF* pColor) = 0; + virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(COLORREF color) = 0; + virtual HRESULT STDMETHODCALLTYPE GetTextColor(COLORREF* pColor) = 0; + virtual HRESULT STDMETHODCALLTYPE SetTextColor(COLORREF color) = 0; + virtual HRESULT STDMETHODCALLTYPE GetTextBackgroundColor(COLORREF* pColor) = 0; + virtual HRESULT STDMETHODCALLTYPE SetTextBackgroundColor(COLORREF color) = 0; + virtual HRESULT STDMETHODCALLTYPE GetHotLightColor(COLORREF* pColor) = 0; + virtual HRESULT STDMETHODCALLTYPE SetHotLightColor(COLORREF color) = 0; + virtual HRESULT STDMETHODCALLTYPE GetItemCount(PINT pItemCount) = 0; + virtual HRESULT STDMETHODCALLTYPE SetItemCount(int itemCount, DWORD flags) = 0; + virtual HRESULT STDMETHODCALLTYPE GetItem(LVITEMW* pItem) = 0; + virtual HRESULT STDMETHODCALLTYPE SetItem(LVITEMW* const pItem) = 0; + virtual HRESULT STDMETHODCALLTYPE GetItemState(int itemIndex, int subItemIndex, ULONG mask, ULONG* pState) = 0; + virtual HRESULT STDMETHODCALLTYPE SetItemState(int itemIndex, int subItemIndex, ULONG mask, ULONG state) = 0; + virtual HRESULT STDMETHODCALLTYPE GetItemText(int itemIndex, int subItemIndex, LPWSTR pBuffer, int bufferSize) = 0; + virtual HRESULT STDMETHODCALLTYPE SetItemText(int itemIndex, int subItemIndex, LPCWSTR pText) = 0; + virtual HRESULT STDMETHODCALLTYPE GetBackgroundImage(LVBKIMAGEW* pBkImage) = 0; + virtual HRESULT STDMETHODCALLTYPE SetBackgroundImage(LVBKIMAGEW* const pBkImage) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFocusedColumn(PINT pColumnIndex) = 0; + // parameters may be in wrong order + virtual HRESULT STDMETHODCALLTYPE SetSelectionFlags(ULONG mask, ULONG flags) = 0; + virtual HRESULT STDMETHODCALLTYPE GetSelectedColumn(PINT pColumnIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE SetSelectedColumn(int columnIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE GetView(DWORD* pView) = 0; + virtual HRESULT STDMETHODCALLTYPE SetView(DWORD view) = 0; + virtual HRESULT STDMETHODCALLTYPE InsertItem(LVITEMW* const pItem, PINT pItemIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE DeleteItem(int itemIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE DeleteAllItems(void) = 0; + virtual HRESULT STDMETHODCALLTYPE UpdateItem(int itemIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE GetItemRect(LVITEMINDEX itemIndex, int rectangleType, LPRECT pRectangle) = 0; + virtual HRESULT STDMETHODCALLTYPE GetSubItemRect(LVITEMINDEX itemIndex, int subItemIndex, int rectangleType, LPRECT pRectangle) = 0; + virtual HRESULT STDMETHODCALLTYPE HitTestSubItem(LVHITTESTINFO* pHitTestData) = 0; + virtual HRESULT STDMETHODCALLTYPE GetIncrSearchString(PWSTR pBuffer, int bufferSize, PINT pCopiedChars) = 0; + // pHorizontalSpacing and pVerticalSpacing may be in wrong order + virtual HRESULT STDMETHODCALLTYPE GetItemSpacing(BOOL smallIconView, PINT pHorizontalSpacing, PINT pVerticalSpacing) = 0; + // parameters may be in wrong order + virtual HRESULT STDMETHODCALLTYPE SetIconSpacing(int horizontalSpacing, int verticalSpacing, PINT pHorizontalSpacing, PINT pVerticalSpacing) = 0; + virtual HRESULT STDMETHODCALLTYPE GetNextItem(LVITEMINDEX itemIndex, ULONG flags, LVITEMINDEX* pNextItemIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE FindItem(LVITEMINDEX startItemIndex, LVFINDINFOW const* pFindInfo, LVITEMINDEX* pFoundItemIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE GetSelectionMark(LVITEMINDEX* pSelectionMark) = 0; + virtual HRESULT STDMETHODCALLTYPE SetSelectionMark(LVITEMINDEX newSelectionMark, LVITEMINDEX* pOldSelectionMark) = 0; + virtual HRESULT STDMETHODCALLTYPE GetItemPosition(LVITEMINDEX itemIndex, POINT* pPosition) = 0; + virtual HRESULT STDMETHODCALLTYPE SetItemPosition(int itemIndex, POINT const* pPosition) = 0; + // parameters may be in wrong order + virtual HRESULT STDMETHODCALLTYPE ScrollView(int horizontalScrollDistance, int verticalScrollDistance) = 0; + virtual HRESULT STDMETHODCALLTYPE EnsureItemVisible(LVITEMINDEX itemIndex, BOOL partialOk) = 0; + virtual HRESULT STDMETHODCALLTYPE EnsureSubItemVisible(LVITEMINDEX itemIndex, int subItemIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE EditSubItem(LVITEMINDEX itemIndex, int subItemIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE RedrawItems(int firstItemIndex, int lastItemIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE ArrangeItems(int mode) = 0; + virtual HRESULT STDMETHODCALLTYPE RecomputeItems(int unknown) = 0; + virtual HRESULT STDMETHODCALLTYPE GetEditControl(HWND* pHWndEdit) = 0; + // TODO: verify that 'initialEditText' really is used to specify the initial text + virtual HRESULT STDMETHODCALLTYPE EditLabel(LVITEMINDEX itemIndex, LPCWSTR initialEditText, HWND* phWndEdit) = 0; + virtual HRESULT STDMETHODCALLTYPE EditGroupLabel(int groupIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE CancelEditLabel(void) = 0; + virtual HRESULT STDMETHODCALLTYPE GetEditItem(LVITEMINDEX* itemIndex, PINT subItemIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE HitTest(LVHITTESTINFO* pHitTestData) = 0; + virtual HRESULT STDMETHODCALLTYPE GetStringWidth(PCWSTR pString, PINT pWidth) = 0; + virtual HRESULT STDMETHODCALLTYPE GetColumn(int columnIndex, LVCOLUMNW* pColumn) = 0; + virtual HRESULT STDMETHODCALLTYPE SetColumn(int columnIndex, LVCOLUMNW* const pColumn) = 0; + virtual HRESULT STDMETHODCALLTYPE GetColumnOrderArray(int numberOfColumns, PINT pColumns) = 0; + virtual HRESULT STDMETHODCALLTYPE SetColumnOrderArray(int numberOfColumns, int const* pColumns) = 0; + virtual HRESULT STDMETHODCALLTYPE GetHeaderControl(HWND* pHWndHeader) = 0; + virtual HRESULT STDMETHODCALLTYPE InsertColumn(int insertAt, LVCOLUMNW* const pColumn, PINT pColumnIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE DeleteColumn(int columnIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateDragImage(int itemIndex, POINT const* pUpperLeft, HIMAGELIST* pHImageList) = 0; + virtual HRESULT STDMETHODCALLTYPE GetViewRect(RECT* pRectangle) = 0; + virtual HRESULT STDMETHODCALLTYPE GetClientRect(BOOL unknown, RECT* pClientRectangle) = 0; + virtual HRESULT STDMETHODCALLTYPE GetColumnWidth(int columnIndex, PINT pWidth) = 0; + virtual HRESULT STDMETHODCALLTYPE SetColumnWidth(int columnIndex, int width) = 0; + virtual HRESULT STDMETHODCALLTYPE GetCallbackMask(ULONG* pMask) = 0; + virtual HRESULT STDMETHODCALLTYPE SetCallbackMask(ULONG mask) = 0; + virtual HRESULT STDMETHODCALLTYPE GetTopIndex(PINT pTopIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE GetCountPerPage(PINT pCountPerPage) = 0; + virtual HRESULT STDMETHODCALLTYPE GetOrigin(POINT* pOrigin) = 0; + virtual HRESULT STDMETHODCALLTYPE GetSelectedCount(PINT pSelectedCount) = 0; + // 'unknown' might specify whether to pass items' data or indexes + virtual HRESULT STDMETHODCALLTYPE SortItems(BOOL unknown, LPARAM lParam, PFNLVCOMPARE pComparisonFunction) = 0; + virtual HRESULT STDMETHODCALLTYPE GetExtendedStyle(DWORD* pStyle) = 0; + // parameters may be in wrong order + virtual HRESULT STDMETHODCALLTYPE SetExtendedStyle(DWORD mask, DWORD style, DWORD* pOldStyle) = 0; + virtual HRESULT STDMETHODCALLTYPE GetHoverTime(UINT* pTime) = 0; + virtual HRESULT STDMETHODCALLTYPE SetHoverTime(UINT time, UINT* pOldSetting) = 0; + virtual HRESULT STDMETHODCALLTYPE GetToolTip(HWND* pHWndToolTip) = 0; + virtual HRESULT STDMETHODCALLTYPE SetToolTip(HWND hWndToolTip, HWND* pHWndOldToolTip) = 0; + virtual HRESULT STDMETHODCALLTYPE GetHotItem(LVITEMINDEX* pHotItem) = 0; + virtual HRESULT STDMETHODCALLTYPE SetHotItem(LVITEMINDEX newHotItem, LVITEMINDEX* pOldHotItem) = 0; + virtual HRESULT STDMETHODCALLTYPE GetHotCursor(HCURSOR* pHCursor) = 0; + virtual HRESULT STDMETHODCALLTYPE SetHotCursor(HCURSOR hCursor, HCURSOR* pHOldCursor) = 0; + // parameters may be in wrong order + virtual HRESULT STDMETHODCALLTYPE ApproximateViewRect(int itemCount, PINT pWidth, PINT pHeight) = 0; + virtual HRESULT STDMETHODCALLTYPE SetRangeObject(int unknown, LPVOID/*ILVRange**/ pObject) = 0; + virtual HRESULT STDMETHODCALLTYPE GetWorkAreas(int numberOfWorkAreas, RECT* pWorkAreas) = 0; + virtual HRESULT STDMETHODCALLTYPE SetWorkAreas(int numberOfWorkAreas, RECT const* pWorkAreas) = 0; + virtual HRESULT STDMETHODCALLTYPE GetWorkAreaCount(PINT pNumberOfWorkAreas) = 0; + virtual HRESULT STDMETHODCALLTYPE ResetEmptyText(void) = 0; + virtual HRESULT STDMETHODCALLTYPE EnableGroupView(BOOL enable) = 0; + virtual HRESULT STDMETHODCALLTYPE IsGroupViewEnabled(BOOL* pIsEnabled) = 0; + virtual HRESULT STDMETHODCALLTYPE SortGroups(::PFNLVGROUPCOMPARE pComparisonFunction, PVOID lParam) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGroupInfo(int unknown1, int unknown2, LVGROUP* pGroup) = 0; + virtual HRESULT STDMETHODCALLTYPE SetGroupInfo(int unknown, int groupID, LVGROUP* const pGroup) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGroupRect(BOOL unknown, int groupID, int rectangleType, RECT* pRectangle) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGroupState(int groupID, ULONG mask, ULONG* pState) = 0; + virtual HRESULT STDMETHODCALLTYPE HasGroup(int groupID, BOOL* pHasGroup) = 0; + virtual HRESULT STDMETHODCALLTYPE InsertGroup(int insertAt, LVGROUP* const pGroup, PINT pGroupID) = 0; + virtual HRESULT STDMETHODCALLTYPE RemoveGroup(int groupID) = 0; + virtual HRESULT STDMETHODCALLTYPE InsertGroupSorted(LVINSERTGROUPSORTED const* pGroup, PINT pGroupID) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGroupMetrics(LVGROUPMETRICS* pMetrics) = 0; + virtual HRESULT STDMETHODCALLTYPE SetGroupMetrics(LVGROUPMETRICS* const pMetrics) = 0; + virtual HRESULT STDMETHODCALLTYPE RemoveAllGroups(void) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFocusedGroup(PINT pGroupID) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGroupCount(PINT pCount) = 0; + virtual HRESULT STDMETHODCALLTYPE SetOwnerDataCallback(IOwnerDataCallback* pCallback) = 0; + virtual HRESULT STDMETHODCALLTYPE GetTileViewInfo(LVTILEVIEWINFO* pInfo) = 0; + virtual HRESULT STDMETHODCALLTYPE SetTileViewInfo(LVTILEVIEWINFO* const pInfo) = 0; + virtual HRESULT STDMETHODCALLTYPE GetTileInfo(LVTILEINFO* pTileInfo) = 0; + virtual HRESULT STDMETHODCALLTYPE SetTileInfo(LVTILEINFO* const pTileInfo) = 0; + virtual HRESULT STDMETHODCALLTYPE GetInsertMark(LVINSERTMARK* pInsertMarkDetails) = 0; + virtual HRESULT STDMETHODCALLTYPE SetInsertMark(LVINSERTMARK const* pInsertMarkDetails) = 0; + virtual HRESULT STDMETHODCALLTYPE GetInsertMarkRect(LPRECT pInsertMarkRectangle) = 0; + virtual HRESULT STDMETHODCALLTYPE GetInsertMarkColor(COLORREF* pColor) = 0; + virtual HRESULT STDMETHODCALLTYPE SetInsertMarkColor(COLORREF color, COLORREF* pOldColor) = 0; + virtual HRESULT STDMETHODCALLTYPE HitTestInsertMark(POINT const* pPoint, LVINSERTMARK* pInsertMarkDetails) = 0; + virtual HRESULT STDMETHODCALLTYPE SetInfoTip(LVSETINFOTIP* const pInfoTip) = 0; + virtual HRESULT STDMETHODCALLTYPE GetOutlineColor(COLORREF* pColor) = 0; + virtual HRESULT STDMETHODCALLTYPE SetOutlineColor(COLORREF color, COLORREF* pOldColor) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFrozenItem(PINT pItemIndex) = 0; + // one parameter will be the item index; works in Icons view only + virtual HRESULT STDMETHODCALLTYPE SetFrozenItem(int unknown1, int unknown2) = 0; + virtual HRESULT STDMETHODCALLTYPE GetFrozenSlot(RECT* pUnknown) = 0; + virtual HRESULT STDMETHODCALLTYPE SetFrozenSlot(int unknown1, POINT const* pUnknown2) = 0; + virtual HRESULT STDMETHODCALLTYPE GetViewMargin(RECT* pMargin) = 0; + virtual HRESULT STDMETHODCALLTYPE SetViewMargin(RECT const* pMargin) = 0; + virtual HRESULT STDMETHODCALLTYPE SetKeyboardSelected(LVITEMINDEX itemIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE MapIndexToId(int itemIndex, PINT pItemID) = 0; + virtual HRESULT STDMETHODCALLTYPE MapIdToIndex(int itemID, PINT pItemIndex) = 0; + virtual HRESULT STDMETHODCALLTYPE IsItemVisible(LVITEMINDEX itemIndex, BOOL* pVisible) = 0; + virtual HRESULT STDMETHODCALLTYPE EnableAlphaShadow(BOOL enable) = 0; + virtual HRESULT STDMETHODCALLTYPE GetGroupSubsetCount(PINT pNumberOfRowsDisplayed) = 0; + virtual HRESULT STDMETHODCALLTYPE SetGroupSubsetCount(int numberOfRowsToDisplay) = 0; + virtual HRESULT STDMETHODCALLTYPE GetVisibleSlotCount(PINT pCount) = 0; + virtual HRESULT STDMETHODCALLTYPE GetColumnMargin(RECT* pMargin) = 0; + virtual HRESULT STDMETHODCALLTYPE SetSubItemCallback(LPVOID/*ISubItemCallback**/ pCallback) = 0; + virtual HRESULT STDMETHODCALLTYPE GetVisibleItemRange(LVITEMINDEX* pFirstItem, LVITEMINDEX* pLastItem) = 0; + virtual HRESULT STDMETHODCALLTYPE SetTypeAheadFlags(UINT mask, UINT flags) = 0; +}; +//--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- #endif // WinApiH diff --git a/source/windows/WinConfiguration.cpp b/source/windows/WinConfiguration.cpp index 4b383e69..e3e63bc5 100644 --- a/source/windows/WinConfiguration.cpp +++ b/source/windows/WinConfiguration.cpp @@ -23,6 +23,8 @@ //--------------------------------------------------------------------------- TWinConfiguration * WinConfiguration = NULL; //--------------------------------------------------------------------------- +static UnicodeString NotepadName(L"notepad.exe"); +//--------------------------------------------------------------------------- __fastcall TEditorData::TEditorData() : FileMask(L"*.*"), Editor(edInternal), @@ -67,9 +69,10 @@ bool __fastcall TEditorData::DecideExternalEditorText(UnicodeString ExternalEdit ReformatFileNameCommand(ExternalEditor); UnicodeString ProgramName = ExtractProgramName(ExternalEditor); // We explicitly do not use TEditorPreferences::GetDefaultExternalEditor(), - // as we need to expliclty refer to Notepad, even if the default external + // as we need to explicitly refer to the Notepad, even if the default external // editor ever changes - if (SameText(ProgramName, "notepad")) + UnicodeString NotepadProgramName = ExtractProgramName(NotepadName); + if (SameText(ProgramName, NotepadProgramName)) { Result = true; } @@ -107,7 +110,7 @@ bool __fastcall TEditorPreferences::Matches(const UnicodeString FileName, //--------------------------------------------------------------------------- UnicodeString __fastcall TEditorPreferences::GetDefaultExternalEditor() { - return L"notepad.exe"; + return NotepadName; } //--------------------------------------------------------------------------- void __fastcall TEditorPreferences::LegacyDefaults() @@ -118,7 +121,7 @@ void __fastcall TEditorPreferences::LegacyDefaults() //--------------------------------------------------------------------------- UnicodeString __fastcall TEditorPreferences::ExtractExternalEditorName() const { - assert(FData.Editor == edExternal); + DebugAssert(FData.Editor == edExternal); UnicodeString ExternalEditor = FData.ExternalEditor; ReformatFileNameCommand(ExternalEditor); // Trim is a workaround for unknown problem with "notepad " (2 trailing spaces) @@ -303,7 +306,7 @@ void __fastcall TEditorList::Move(int CurIndex, int NewIndex) //--------------------------------------------------------------------------- void __fastcall TEditorList::Delete(int Index) { - assert((Index >= 0) && (Index < Count)); + DebugAssert((Index >= 0) && (Index < Count)); delete Editors[Index]; FEditors->Delete(Index); Modify(); @@ -452,7 +455,7 @@ __fastcall TWinConfiguration::TWinConfiguration(): TCustomWinConfiguration() //--------------------------------------------------------------------------- __fastcall TWinConfiguration::~TWinConfiguration() { - if (!FTemporarySessionFile.IsEmpty()) DeleteFile(::ApiPath(FTemporarySessionFile)); + if (!FTemporarySessionFile.IsEmpty()) DeleteFile(ApiPath(FTemporarySessionFile)); ClearTemporaryLoginData(); delete FBookmarks; @@ -504,7 +507,6 @@ void __fastcall TWinConfiguration::Default() FTemporaryDirectoryCleanup = true; FConfirmTemporaryDirectoryCleanup = true; FPreservePanelState = true; - FTheme = THEME_OFFICEXP; FLastStoredSession = L""; // deliberately not being saved, so that when saving ad-hoc workspace, // we do not offer to overwrite the last saved workspace, what may be undesirable @@ -539,14 +541,27 @@ void __fastcall TWinConfiguration::Default() FOpenedStoredSessionFolders = L""; FAutoImportedFromPuttyOrFilezilla = false; FGenerateUrlComponents = -1; + FGenerateUrlCodeTarget = guctUrl; + FGenerateUrlScriptFormat = sfScriptFile; + FGenerateUrlAssemblyLanguage = alCSharp; FExternalSessionInExistingInstance = true; + FKeepOpenWhenNoSession = false; FLocalIconsByExt = false; + FBidiModeOverride = lfoLanguageIfRecommended; + FFlipChildrenOverride = lfoLanguageIfRecommended; + FShowTips = true; + FTipsSeen = L""; + FTipsShown = Now(); + FRunsSinceLastTip = 0; + HonorDrivePolicy = true; FEditor.Font.FontName = DefaultFixedWidthFontName; FEditor.Font.FontSize = DefaultFixedWidthFontSize; FEditor.Font.FontStyle = 0; FEditor.Font.FontCharset = DEFAULT_CHARSET; + FEditor.FontColor = TColor(0); + FEditor.BackgroundColor = TColor(0); FEditor.WordWrap = false; FEditor.FindText = L""; FEditor.ReplaceText = L""; @@ -582,6 +597,7 @@ void __fastcall TWinConfiguration::Default() FUpdates.ShownResults = false; FUpdates.BetaVersions = asAuto; FUpdates.ShowOnStartup = true; + FUpdates.AuthenticationEmail = L""; // for backward compatibility the default is decided based on value of ProxyHost FUpdates.ConnectionType = (TConnectionType)-1; FUpdates.ProxyHost = L""; // keep empty (see above) @@ -778,7 +794,7 @@ TStorage __fastcall TWinConfiguration::GetStorage() } FStorage = stIniFile; - if (!FileExists(::ApiPath(IniFileStorageNameForReading))) + if (!FileExists(ApiPath(IniFileStorageNameForReading))) { if (DetectRegistryStorage(HKEY_CURRENT_USER) || DetectRegistryStorage(HKEY_LOCAL_MACHINE) || @@ -810,7 +826,7 @@ void __fastcall TWinConfiguration::RecryptPasswords(TStrings * RecryptPasswordEr try { TTerminalManager * Manager = TTerminalManager::Instance(false); - assert(Manager != NULL); + DebugAssert(Manager != NULL); if (Manager != NULL) { Manager->RecryptPasswords(); @@ -894,7 +910,6 @@ THierarchicalStorage * TWinConfiguration::CreateScpStorage(bool & SessionList) KEY(Bool, TemporaryDirectoryCleanup); \ KEY(Bool, ConfirmTemporaryDirectoryCleanup); \ KEY(Bool, PreservePanelState); \ - KEY(String, Theme); \ KEY(String, LastStoredSession); \ KEY(Bool, AutoSaveWorkspace); \ KEY(Bool, AutoSaveWorkspacePasswords); \ @@ -922,8 +937,18 @@ THierarchicalStorage * TWinConfiguration::CreateScpStorage(bool & SessionList) KEY(String, OpenedStoredSessionFolders); \ KEY(Bool, AutoImportedFromPuttyOrFilezilla); \ KEY(Integer, GenerateUrlComponents); \ + KEY(Integer, GenerateUrlCodeTarget); \ + KEY(Integer, GenerateUrlScriptFormat); \ + KEY(Integer, GenerateUrlAssemblyLanguage); \ KEY(Bool, ExternalSessionInExistingInstance); \ + KEY(Bool, KeepOpenWhenNoSession); \ KEY(Bool, LocalIconsByExt); \ + KEY(Integer, BidiModeOverride); \ + KEY(Integer, FlipChildrenOverride); \ + KEY(Bool, ShowTips); \ + KEY(String, TipsSeen); \ + KEY(DateTime, TipsShown); \ + KEY(Integer, RunsSinceLastTip); \ KEY(Bool, HonorDrivePolicy); \ ); \ BLOCK(L"Interface\\Editor", CANCREATE, \ @@ -931,6 +956,8 @@ THierarchicalStorage * TWinConfiguration::CreateScpStorage(bool & SessionList) KEY(Integer, Editor.Font.FontSize); \ KEY(Integer, Editor.Font.FontStyle); \ KEY(Integer, Editor.Font.FontCharset); \ + KEY(Integer, Editor.FontColor); \ + KEY(Integer, Editor.BackgroundColor); \ KEY(Bool, Editor.WordWrap); \ KEY(String, Editor.FindText); \ KEY(String, Editor.ReplaceText); \ @@ -962,6 +989,7 @@ THierarchicalStorage * TWinConfiguration::CreateScpStorage(bool & SessionList) KEY(Integer, FUpdates.ShownResults); \ KEY(Integer, FUpdates.BetaVersions); \ KEY(Bool, FUpdates.ShowOnStartup); \ + KEY(String, FUpdates.AuthenticationEmail); \ KEY(Integer, FUpdates.ConnectionType); \ KEY(String, FUpdates.ProxyHost); \ KEY(Integer, FUpdates.ProxyPort); \ @@ -976,6 +1004,18 @@ THierarchicalStorage * TWinConfiguration::CreateScpStorage(bool & SessionList) KEY(String, FUpdates.Results.NewsUrl); \ KEYEX(Integer,FUpdates.Results.NewsSize.Width, L"NewsWidth"); \ KEYEX(Integer,FUpdates.Results.NewsSize.Height, L"NewsHeight"); \ + KEY(String, FUpdates.Results.DownloadUrl); \ + KEY(Int64, FUpdates.Results.DownloadSize); \ + KEY(String, FUpdates.Results.DownloadSha256); \ + KEY(String, FUpdates.Results.AuthenticationError); \ + KEY(Bool, FUpdates.Results.OpenGettingStarted); \ + KEY(String, FUpdates.Results.DownloadingUrl); \ + KEYEX(Integer,FUpdates.Results.TipsSize.Width, L"TipsWidth"); \ + KEYEX(Integer,FUpdates.Results.TipsSize.Height, L"TipsHeight"); \ + KEY(String, FUpdates.Results.TipsUrl); \ + KEY(String, FUpdates.Results.Tips); \ + KEY(Integer, FUpdates.Results.TipsIntervalDays); \ + KEY(Integer, FUpdates.Results.TipsIntervalRuns); \ KEY(String, FUpdates.DotNetVersion); \ KEY(String, FUpdates.ConsoleVersion); \ ); \ @@ -1162,7 +1202,7 @@ void __fastcall TWinConfiguration::LoadData(THierarchicalStorage * Storage) { // can this (=reloading of configuration) even happen? // if it does, shouldn't we reset default commands? - FAIL; + DebugFail(); FCustomCommandList->Clear(); FCustomCommandsDefaults = false; } @@ -1180,7 +1220,7 @@ void __fastcall TWinConfiguration::LoadData(THierarchicalStorage * Storage) } // load legacy editor configuration - assert(FLegacyEditor != NULL); + DebugAssert(FLegacyEditor != NULL); if (Storage->OpenSubKey(L"Interface\\Editor", false, true)) { try @@ -1221,7 +1261,7 @@ void __fastcall TWinConfiguration::ClearTemporaryLoginData() { if (!FTemporaryKeyFile.IsEmpty()) { - DeleteFile(::ApiPath(FTemporaryKeyFile)); + DeleteFile(ApiPath(FTemporaryKeyFile)); FTemporaryKeyFile = L""; } } @@ -1235,7 +1275,7 @@ void __fastcall TWinConfiguration::AddVersionToHistory() while (!CurrentVersionPresent && (From < FVersionHistory.Length())) { UnicodeString VersionInfo = CopyToChars(FVersionHistory, From, L";", true); - UnicodeString VersionStr = ::CutToChar(VersionInfo, L',', true); + UnicodeString VersionStr = CutToChar(VersionInfo, L',', true); int Version; if (TryStrToInt(VersionStr, Version) && @@ -1279,8 +1319,8 @@ bool __fastcall TWinConfiguration::GetAnyBetaInVersionHistory() while (!AnyBeta && (From < VersionHistory.Length())) { UnicodeString VersionInfo = CopyToChars(VersionHistory, From, L";", true); - ::CutToChar(VersionInfo, L',', true); - UnicodeString ReleaseType = ::CutToChar(VersionInfo, ',', true); + CutToChar(VersionInfo, L',', true); + UnicodeString ReleaseType = CutToChar(VersionInfo, ',', true); if (DoIsBeta(ReleaseType)) { @@ -1409,8 +1449,8 @@ void __fastcall TWinConfiguration::SetMasterPassword(UnicodeString value) { FPlainMasterPasswordDecrypt = value; } - else if (ALWAYS_TRUE(FUseMasterPassword) && - ALWAYS_TRUE(ValidateMasterPassword(value))) + else if (DebugAlwaysTrue(FUseMasterPassword) && + DebugAlwaysTrue(ValidateMasterPassword(value))) { FPlainMasterPasswordEncrypt = value; FPlainMasterPasswordDecrypt = value; @@ -1437,8 +1477,8 @@ void __fastcall TWinConfiguration::ChangeMasterPassword( //--------------------------------------------------------------------------- bool __fastcall TWinConfiguration::ValidateMasterPassword(UnicodeString value) { - assert(UseMasterPassword); - assert(!FMasterPasswordVerifier.IsEmpty()); + DebugAssert(UseMasterPassword); + DebugAssert(!FMasterPasswordVerifier.IsEmpty()); bool Result = AES256Verify(value, HexToBytes(FMasterPasswordVerifier)); return Result; } @@ -1479,7 +1519,7 @@ void __fastcall TWinConfiguration::AskForMasterPassword() { FOnMasterPasswordPrompt(); - assert(!FPlainMasterPasswordDecrypt.IsEmpty()); + DebugAssert(!FPlainMasterPasswordDecrypt.IsEmpty()); } } //--------------------------------------------------------------------------- @@ -1494,15 +1534,15 @@ void __fastcall TWinConfiguration::AskForMasterPasswordIfNotSet() void __fastcall TWinConfiguration::BeginMasterPasswordSession() { // We do not expect nesting - assert(FMasterPasswordSession == 0); - assert(!FMasterPasswordSessionAsked || (FMasterPasswordSession > 0)); + DebugAssert(FMasterPasswordSession == 0); + DebugAssert(!FMasterPasswordSessionAsked || (FMasterPasswordSession > 0)); // This should better be thread-specific FMasterPasswordSession++; } //--------------------------------------------------------------------------- void __fastcall TWinConfiguration::EndMasterPasswordSession() { - if (ALWAYS_TRUE(FMasterPasswordSession > 0)) + if (DebugAlwaysTrue(FMasterPasswordSession > 0)) { FMasterPasswordSession--; } @@ -1726,11 +1766,6 @@ void __fastcall TWinConfiguration::SetPreservePanelState(bool value) SET_CONFIG_PROPERTY(PreservePanelState); } //--------------------------------------------------------------------------- -void __fastcall TWinConfiguration::SetTheme(UnicodeString value) -{ - SET_CONFIG_PROPERTY_EX(Theme, ConfigureInterface()); -} -//--------------------------------------------------------------------------- void __fastcall TWinConfiguration::SetLastStoredSession(UnicodeString value) { SET_CONFIG_PROPERTY(LastStoredSession); @@ -1838,7 +1873,7 @@ void __fastcall TWinConfiguration::UpdateIconFont() } else { - if (ALWAYS_TRUE(FSystemIconFont.get() != NULL) && + if (DebugAlwaysTrue(FSystemIconFont.get() != NULL) && !SameFont(Screen->IconFont, FSystemIconFont.get())) { Screen->IconFont->Assign(FSystemIconFont.get()); @@ -1877,16 +1912,66 @@ void __fastcall TWinConfiguration::SetGenerateUrlComponents(int value) SET_CONFIG_PROPERTY(GenerateUrlComponents); } //--------------------------------------------------------------------------- +void __fastcall TWinConfiguration::SetGenerateUrlCodeTarget(TGenerateUrlCodeTarget value) +{ + SET_CONFIG_PROPERTY(GenerateUrlCodeTarget); +} +//--------------------------------------------------------------------------- +void __fastcall TWinConfiguration::SetGenerateUrlScriptFormat(TScriptFormat value) +{ + SET_CONFIG_PROPERTY(GenerateUrlScriptFormat); +} +//--------------------------------------------------------------------------- +void __fastcall TWinConfiguration::SetGenerateUrlAssemblyLanguage(TAssemblyLanguage value) +{ + SET_CONFIG_PROPERTY(GenerateUrlAssemblyLanguage); +} +//--------------------------------------------------------------------------- void __fastcall TWinConfiguration::SetExternalSessionInExistingInstance(bool value) { SET_CONFIG_PROPERTY(ExternalSessionInExistingInstance); } //--------------------------------------------------------------------------- +void __fastcall TWinConfiguration::SetKeepOpenWhenNoSession(bool value) +{ + SET_CONFIG_PROPERTY(KeepOpenWhenNoSession); +} +//--------------------------------------------------------------------------- void __fastcall TWinConfiguration::SetLocalIconsByExt(bool value) { SET_CONFIG_PROPERTY(LocalIconsByExt); } //--------------------------------------------------------------------------- +void __fastcall TWinConfiguration::SetBidiModeOverride(TLocaleFlagOverride value) +{ + SET_CONFIG_PROPERTY(BidiModeOverride); +} +//--------------------------------------------------------------------------- +void __fastcall TWinConfiguration::SetFlipChildrenOverride(TLocaleFlagOverride value) +{ + SET_CONFIG_PROPERTY(FlipChildrenOverride); +} +//--------------------------------------------------------------------------- +void __fastcall TWinConfiguration::SetShowTips(bool value) +{ + SET_CONFIG_PROPERTY(ShowTips); +} +//--------------------------------------------------------------------------- +void __fastcall TWinConfiguration::SetTipsSeen(UnicodeString value) +{ + SET_CONFIG_PROPERTY(TipsSeen); +} +//--------------------------------------------------------------------------- +void __fastcall TWinConfiguration::SetTipsShown(TDateTime value) +{ + SET_CONFIG_PROPERTY(TipsShown); +} +//--------------------------------------------------------------------------- +void __fastcall TWinConfiguration::SetRunsSinceLastTip(int value) +{ + SET_CONFIG_PROPERTY(RunsSinceLastTip); +} +//--------------------------------------------------------------------------- bool __fastcall TWinConfiguration::GetHonorDrivePolicy() { return DriveInfo->HonorDrivePolicy; @@ -1903,7 +1988,7 @@ void __fastcall TWinConfiguration::SetHonorDrivePolicy(bool value) //--------------------------------------------------------------------------- void __fastcall TWinConfiguration::SetCustomCommandList(TCustomCommandList * value) { - assert(FCustomCommandList); + DebugAssert(FCustomCommandList); if (!FCustomCommandList->Equals(value)) { FCustomCommandList->Assign(value); @@ -1951,7 +2036,13 @@ int __fastcall TWinConfiguration::GetLastMonitor() //--------------------------------------------------------------------------- UnicodeString __fastcall TWinConfiguration::ExpandedTemporaryDirectory() { - return ExpandFileName(ExpandEnvironmentVariables(DDTemporaryDirectory)); + UnicodeString Result = + ExpandFileName(ExpandEnvironmentVariables(DDTemporaryDirectory)); + if (Result.IsEmpty()) + { + Result = SystemTemporaryDirectory(); + } + return Result; } //--------------------------------------------------------------------------- UnicodeString __fastcall TWinConfiguration::TemporaryDir(bool Mask) @@ -2011,7 +2102,7 @@ void __fastcall TWinConfiguration::CleanupTemporaryFolders(TStrings * Folders) { try { - if (ALWAYS_TRUE(F->Count > 0)) + if (DebugAlwaysTrue(F->Count > 0)) { Usage->Inc(L"TemporaryDirectoryCleanups"); } @@ -2043,104 +2134,6 @@ void __fastcall TWinConfiguration::CleanupTemporaryFolders(TStrings * Folders) } } //--------------------------------------------------------------------------- -//--------------------------------------------------------------------------- -#pragma warn -inl -//--------------------------------------------------------------------------- -class TAsInheritedReader : public TReader -{ -public: - __fastcall TAsInheritedReader(TStream * Stream, int BufSize) : - TReader(Stream, BufSize) - { - OnAncestorNotFound = AncestorNotFound; - } - - virtual void __fastcall ReadPrefix(TFilerFlags & Flags, int & AChildPos) - { - TReader::ReadPrefix(Flags, AChildPos); - Flags << ffInherited; - } - - void __fastcall AncestorNotFound(TReader * Reader, - const UnicodeString ComponentName, TMetaClass * ComponentClass, - TComponent *& Component) - { - assert(!Component); - if (ComponentName.IsEmpty()) - { - for (int Index = 0; Index < LookupRoot->ComponentCount; Index++) - { - Component = LookupRoot->Components[Index]; - if (Component->Name.IsEmpty()) - { - return; - } - } - Component = NULL; - } - } -}; -//--------------------------------------------------------------------------- -#pragma warn .inl -//--------------------------------------------------------------------------- -bool __fastcall TWinConfiguration::InternalReloadComponentRes(const UnicodeString ResName, - HINSTANCE HInst, TComponent * Instance) -{ - HANDLE HRsrc; - bool Result; - - if (!HInst) - { - HInst = HInstance; - } - HRsrc = FindResource(HInst, ResName.c_str(), RT_RCDATA); - Result = (HRsrc != 0); - if (Result) - { - TResourceStream * ResStream = new TResourceStream( - reinterpret_cast(HInst), ResName, RT_RCDATA); - try - { - TReader * Reader; - Reader = new TAsInheritedReader(ResStream, 4096); - - try - { - /*Instance =*/ Reader->ReadRootComponent(Instance); - } - __finally - { - delete Reader; - } - } - __finally - { - delete ResStream; - } - } - return Result; -} -//--------------------------------------------------------------------------- -bool __fastcall TWinConfiguration::InitComponent(TComponent * Instance, - TClass RootAncestor, TClass ClassType) -{ - bool Result = false; - if ((ClassType != __classid(TComponent)) && (ClassType != RootAncestor)) - { - if (InitComponent(Instance, RootAncestor, ClassType->ClassParent())) - { - Result = true; - } - if (InternalReloadComponentRes(ClassType->ClassName(), - reinterpret_cast(FindResourceHInstance(FindClassHInstance(ClassType))), - Instance)) - { - Result = true; - } - } - return Result; -} -//--------------------------------------------------------------------------- LCID __fastcall TWinConfiguration::GetLocale() { if (!FLocale) @@ -2157,7 +2150,7 @@ LCID __fastcall TWinConfiguration::GetLocale() Count = Langs->Count; Index = 0; - while ((Index < Count) && !FLocale) + while ((Index < Count) && (FLocale == 0)) { if (Langs->Ext[Index] == ResourceExt) { @@ -2169,6 +2162,10 @@ LCID __fastcall TWinConfiguration::GetLocale() MAKELANGID(PRIMARYLANGID(Langs->LocaleID[Index]), SUBLANG_DEFAULT)); } + if (FLocale != 0) + { + FLocaleModuleName = ResourceModule; + } Index++; } } @@ -2178,20 +2175,14 @@ LCID __fastcall TWinConfiguration::GetLocale() } //--------------------------------------------------------------------------- HINSTANCE __fastcall TWinConfiguration::LoadNewResourceModule(LCID ALocale, - UnicodeString * FileName) + UnicodeString & FileName) { - UnicodeString FileNameStorage; - if (FileName == NULL) - { - FileName = &FileNameStorage; - } - HINSTANCE Instance = TCustomWinConfiguration::LoadNewResourceModule(ALocale, FileName); if (Instance != NULL) { try { - CheckTranslationVersion(*FileName, false); + CheckTranslationVersion(FileName, false); } catch(...) { @@ -2202,66 +2193,6 @@ HINSTANCE __fastcall TWinConfiguration::LoadNewResourceModule(LCID ALocale, return Instance; } //--------------------------------------------------------------------------- -void __fastcall TWinConfiguration::SetResourceModule(HINSTANCE Instance) -{ - TCustomWinConfiguration::SetResourceModule(Instance); - - TOperationVisualizer Visualizer; - - int Count; - UnicodeString OrigName; - int OrigLeft; - int OrigTop; - - TForm * Form; - Count = Screen->FormCount; - - for (int Index = 0; Index < Count; Index++) - { - Form = Screen->Forms[Index]; - SendMessage(Form->Handle, WM_LOCALE_CHANGE, 0, 1); - } - - ConfigureInterface(); - - for (int Index = 0; Index < Count; Index++) - { - Form = Screen->Forms[Index]; - TComponent * Component; - for (int Index = 0; Index < Form->ComponentCount; Index++) - { - Component = Form->Components[Index]; - if (dynamic_cast(Component)) - { - OrigName = Component->Name; - InitComponent(Component, __classid(TFrame), Component->ClassType()); - Component->Name = OrigName; - } - } - - OrigLeft = Form->Left; - OrigTop = Form->Top; - OrigName = Form->Name; - InitComponent(Form, __classid(TForm), Form->ClassType()); - Form->Name = OrigName; - - Form->Position = poDesigned; - Form->Left = OrigLeft; - Form->Top = OrigTop; - SendMessage(Form->Handle, WM_LOCALE_CHANGE, 1, 1); - } - - TDataModule * DataModule; - Count = Screen->DataModuleCount; - for (int Index = 0; Index < Count; Index++) - { - DataModule = Screen->DataModules[Index]; - OrigName = DataModule->Name; - InitComponent(DataModule, __classid(TDataModule), DataModule->ClassType()); - DataModule->Name = OrigName; - } -} -//--------------------------------------------------------------------------- void __fastcall TWinConfiguration::CheckTranslationVersion(const UnicodeString FileName, bool InternalLocaleOnError) { @@ -2436,6 +2367,8 @@ void __fastcall TWinConfiguration::UpdateStaticUsage() ScpExplorer.DriveView : (ScpCommander.LocalPanel.DriveView || ScpCommander.RemotePanel.DriveView)); Usage->Set(L"MinimizeToTray", MinimizeToTray); + Usage->Set(L"ShowingTips", ShowTips); + TipsUpdateStaticUsage(); Usage->Set(L"CommanderNortonLikeMode", int(ScpCommander.NortonLikeMode)); Usage->Set(L"CommanderExplorerKeyboardShortcuts", ScpCommander.ExplorerKeyboardShortcuts); @@ -2454,8 +2387,6 @@ void __fastcall TWinConfiguration::UpdateStaticUsage() } } Usage->Set(L"ExternalEditors", ExternalEditors); - - Usage->Set(L"ThemeNotOfficeXP", (Theme != THEME_OFFICEXP)); } //--------------------------------------------------------------------------- void __fastcall TWinConfiguration::RestoreFont( @@ -2671,7 +2602,7 @@ void __fastcall TCustomCommandList::Move(int CurIndex, int NewIndex) //--------------------------------------------------------------------------- void __fastcall TCustomCommandList::Delete(int Index) { - assert((Index >= 0) && (Index < Count)); + DebugAssert((Index >= 0) && (Index < Count)); delete GetCommand(Index); FCommands->Delete(Index); Modify(); diff --git a/source/windows/WinConfiguration.h b/source/windows/WinConfiguration.h index 2033a196..71917ad8 100644 --- a/source/windows/WinConfiguration.h +++ b/source/windows/WinConfiguration.h @@ -6,6 +6,9 @@ #include "CustomDirView.hpp" //--------------------------------------------------------------------------- enum TEditor { edInternal, edExternal, edOpen }; +enum TGenerateUrlCodeTarget { guctUrl, guctScript, guctAssembly }; +enum TScriptFormat { sfScriptFile, sfBatchFile, sfCommandLine }; +enum TLocaleFlagOverride { lfoLanguageIfRecommended, lfoLanguage, lfoAlways, lfoNever }; //--------------------------------------------------------------------------- #define C(Property) (Property != rhc.Property) || struct TScpExplorerConfiguration { @@ -103,6 +106,8 @@ struct TFontConfiguration //--------------------------------------------------------------------------- struct TEditorConfiguration { TFontConfiguration Font; + TColor FontColor; + TColor BackgroundColor; bool WordWrap; UnicodeString FindText; UnicodeString ReplaceText; @@ -118,7 +123,7 @@ struct TEditorConfiguration { bool WarnOnEncodingFallback; bool WarnOrLargeFileSize; bool __fastcall operator !=(TEditorConfiguration & rhc) - { return C(Font) C(WordWrap) C(FindText) C(ReplaceText) + { return C(Font) C(FontColor) C(BackgroundColor) C(WordWrap) C(FindText) C(ReplaceText) C(FindMatchCase) C(FindWholeWord) C(FindDown) C(TabSize) C(MaxEditors) C(EarlyClose) C(SDIShellEditor) C(WindowParams) C(Encoding) C(WarnOnEncodingFallback) C(WarnOrLargeFileSize) 0; }; @@ -149,9 +154,23 @@ struct TUpdatesData UnicodeString UrlButton; UnicodeString NewsUrl; TSize NewsSize; + UnicodeString DownloadUrl; + __int64 DownloadSize; + UnicodeString DownloadSha256; + UnicodeString AuthenticationError; + bool OpenGettingStarted; + UnicodeString DownloadingUrl; + TSize TipsSize; + UnicodeString TipsUrl; + UnicodeString Tips; + int TipsIntervalDays; + int TipsIntervalRuns; bool __fastcall operator !=(TUpdatesData & rhc) { return C(ForVersion) C(Version) C(Message) C(Critical) C(Release) - C(Disabled) C(Url) C(UrlButton) C(NewsUrl) C(NewsSize) 0; }; + C(Disabled) C(Url) C(UrlButton) C(NewsUrl) C(NewsSize) + C(DownloadUrl) C(DownloadSize) C(DownloadSha256) C(AuthenticationError) + C(OpenGettingStarted) C(DownloadingUrl) + C(TipsSize) C(TipsUrl) C(Tips) C(TipsIntervalDays) C(TipsIntervalRuns) 0; }; void Reset() { ForVersion = 0; @@ -164,6 +183,17 @@ struct TUpdatesData UrlButton = L""; NewsUrl = L""; NewsSize = TSize(); + DownloadUrl = L""; + DownloadSize = 0; + DownloadSha256 = L""; + AuthenticationError = L""; + OpenGettingStarted = false; + DownloadingUrl = L""; + TipsSize = TSize(); + TipsUrl = L""; + Tips = L""; + TipsIntervalDays = 7; + TipsIntervalRuns = 5; } }; //--------------------------------------------------------------------------- @@ -178,6 +208,7 @@ struct TUpdatesConfiguration int ProxyPort; TAutoSwitch BetaVersions; bool ShowOnStartup; + UnicodeString AuthenticationEmail; bool HaveResults; bool ShownResults; UnicodeString DotNetVersion; @@ -186,7 +217,7 @@ struct TUpdatesConfiguration bool __fastcall operator !=(TUpdatesConfiguration & rhc) { return C(Period) C(LastCheck) C(ConnectionType) C(ProxyHost) C(ProxyPort) - C(BetaVersions) C(ShowOnStartup) + C(BetaVersions) C(ShowOnStartup) C(AuthenticationEmail) C(HaveResults) C(ShownResults) C(DotNetVersion) C(ConsoleVersion) C(Results) 0; }; @@ -350,7 +381,6 @@ class TWinConfiguration : public TCustomWinConfiguration UnicodeString FDefaultTranslationFile; UnicodeString FInvalidDefaultTranslationMessage; bool FPreservePanelState; - UnicodeString FTheme; UnicodeString FLastStoredSession; UnicodeString FLastWorkspace; bool FAutoSaveWorkspace; @@ -385,8 +415,18 @@ class TWinConfiguration : public TCustomWinConfiguration UnicodeString FOpenedStoredSessionFolders; bool FAutoImportedFromPuttyOrFilezilla; int FGenerateUrlComponents; + TGenerateUrlCodeTarget FGenerateUrlCodeTarget; + TScriptFormat FGenerateUrlScriptFormat; + TAssemblyLanguage FGenerateUrlAssemblyLanguage; bool FExternalSessionInExistingInstance; + bool FKeepOpenWhenNoSession; bool FLocalIconsByExt; + TLocaleFlagOverride FBidiModeOverride; + TLocaleFlagOverride FFlipChildrenOverride; + bool FShowTips; + UnicodeString FTipsSeen; + TDateTime FTipsShown; + int FRunsSinceLastTip; int FDontDecryptPasswords; int FMasterPasswordSession; bool FMasterPasswordSessionAsked; @@ -436,7 +476,6 @@ class TWinConfiguration : public TCustomWinConfiguration void __fastcall SetTemporaryDirectoryCleanup(bool value); void __fastcall SetConfirmTemporaryDirectoryCleanup(bool value); void __fastcall SetPreservePanelState(bool value); - void __fastcall SetTheme(UnicodeString value); void __fastcall SetLastStoredSession(UnicodeString value); void __fastcall SetAutoSaveWorkspace(bool value); void __fastcall SetAutoSaveWorkspacePasswords(bool value); @@ -466,8 +505,18 @@ class TWinConfiguration : public TCustomWinConfiguration void __fastcall SetOpenedStoredSessionFolders(UnicodeString value); void __fastcall SetAutoImportedFromPuttyOrFilezilla(bool value); void __fastcall SetGenerateUrlComponents(int value); + void __fastcall SetGenerateUrlCodeTarget(TGenerateUrlCodeTarget value); + void __fastcall SetGenerateUrlScriptFormat(TScriptFormat value); + void __fastcall SetGenerateUrlAssemblyLanguage(TAssemblyLanguage value); void __fastcall SetExternalSessionInExistingInstance(bool value); + void __fastcall SetKeepOpenWhenNoSession(bool value); void __fastcall SetLocalIconsByExt(bool value); + void __fastcall SetBidiModeOverride(TLocaleFlagOverride value); + void __fastcall SetFlipChildrenOverride(TLocaleFlagOverride value); + void __fastcall SetShowTips(bool value); + void __fastcall SetTipsSeen(UnicodeString value); + void __fastcall SetTipsShown(TDateTime value); + void __fastcall SetRunsSinceLastTip(int value); bool __fastcall GetHonorDrivePolicy(); void __fastcall SetHonorDrivePolicy(bool value); bool __fastcall GetIsBeta(); @@ -499,13 +548,8 @@ class TWinConfiguration : public TCustomWinConfiguration void __fastcall RecryptPasswords(TStrings * RecryptPasswordErrors); virtual bool __fastcall GetUseMasterPassword(); bool __fastcall SameStringLists(TStrings * Strings1, TStrings * Strings2); - bool __fastcall InternalReloadComponentRes(const UnicodeString ResName, - HINSTANCE HInst, TComponent * Instance); - bool __fastcall InitComponent(TComponent * Instance, - TClass RootAncestor, TClass ClassType); virtual HINSTANCE __fastcall LoadNewResourceModule(LCID Locale, - UnicodeString * FileName = NULL); - virtual void __fastcall SetResourceModule(HINSTANCE Instance); + UnicodeString & FileName); virtual LCID __fastcall GetLocale(); void __fastcall CheckTranslationVersion(const UnicodeString FileName, bool InternalLocaleOnError); @@ -599,7 +643,6 @@ class TWinConfiguration : public TCustomWinConfiguration __property bool TemporaryDirectoryCleanup = { read = FTemporaryDirectoryCleanup, write = SetTemporaryDirectoryCleanup }; __property bool ConfirmTemporaryDirectoryCleanup = { read = FConfirmTemporaryDirectoryCleanup, write = SetConfirmTemporaryDirectoryCleanup }; __property bool PreservePanelState = { read = FPreservePanelState, write = SetPreservePanelState }; - __property UnicodeString Theme = { read = FTheme, write = SetTheme }; __property UnicodeString LastStoredSession = { read = FLastStoredSession, write = SetLastStoredSession }; __property UnicodeString LastWorkspace = { read = FLastWorkspace, write = FLastWorkspace }; __property bool AutoSaveWorkspace = { read = FAutoSaveWorkspace, write = SetAutoSaveWorkspace }; @@ -626,8 +669,18 @@ class TWinConfiguration : public TCustomWinConfiguration __property UnicodeString OpenedStoredSessionFolders = { read = FOpenedStoredSessionFolders, write = SetOpenedStoredSessionFolders }; __property bool AutoImportedFromPuttyOrFilezilla = { read = FAutoImportedFromPuttyOrFilezilla, write = SetAutoImportedFromPuttyOrFilezilla }; __property int GenerateUrlComponents = { read = FGenerateUrlComponents, write = SetGenerateUrlComponents }; + __property TGenerateUrlCodeTarget GenerateUrlCodeTarget = { read = FGenerateUrlCodeTarget, write = SetGenerateUrlCodeTarget }; + __property TScriptFormat GenerateUrlScriptFormat = { read = FGenerateUrlScriptFormat, write = SetGenerateUrlScriptFormat }; + __property TAssemblyLanguage GenerateUrlAssemblyLanguage = { read = FGenerateUrlAssemblyLanguage, write = SetGenerateUrlAssemblyLanguage }; __property bool ExternalSessionInExistingInstance = { read = FExternalSessionInExistingInstance, write = SetExternalSessionInExistingInstance }; + __property bool KeepOpenWhenNoSession = { read = FKeepOpenWhenNoSession, write = SetKeepOpenWhenNoSession }; __property bool LocalIconsByExt = { read = FLocalIconsByExt, write = SetLocalIconsByExt }; + __property TLocaleFlagOverride BidiModeOverride = { read = FBidiModeOverride, write = SetBidiModeOverride }; + __property TLocaleFlagOverride FlipChildrenOverride = { read = FFlipChildrenOverride, write = SetFlipChildrenOverride }; + __property bool ShowTips = { read = FShowTips, write = SetShowTips }; + __property UnicodeString TipsSeen = { read = FTipsSeen, write = SetTipsSeen }; + __property TDateTime TipsShown = { read = FTipsShown, write = SetTipsShown }; + __property int RunsSinceLastTip = { read = FRunsSinceLastTip, write = SetRunsSinceLastTip }; __property bool HonorDrivePolicy = { read = GetHonorDrivePolicy, write = SetHonorDrivePolicy }; __property TMasterPasswordPromptEvent OnMasterPasswordPrompt = { read = FOnMasterPasswordPrompt, write = FOnMasterPasswordPrompt }; __property TFont * SystemIconFont = { read = GetSystemIconFont }; diff --git a/source/windows/WinHelp.cpp b/source/windows/WinHelp.cpp index 032b8edd..98c35af1 100644 --- a/source/windows/WinHelp.cpp +++ b/source/windows/WinHelp.cpp @@ -97,11 +97,19 @@ void __fastcall TWebHelpSystem::ShowTableOfContents() //--------------------------------------------------------------------------- void __fastcall TWebHelpSystem::ShowHelp(const UnicodeString AHelpString) { - // see also CampaignUrl - UnicodeString HelpString = AHelpString; - const wchar_t FragmentSeparator = L'#'; - UnicodeString HelpPath = CutToChar(HelpString, FragmentSeparator, false); - UnicodeString HelpUrl = FMTLOAD(DOCUMENTATION_KEYWORD_URL2, (HelpPath, FVersion, FLanguage)); - AddToList(HelpUrl, HelpString, FragmentSeparator); + UnicodeString HelpUrl; + if (IsHttpUrl(AHelpString)) + { + HelpUrl = AHelpString; + } + else + { + // see also AppendUrlParams + UnicodeString HelpString = AHelpString; + const wchar_t FragmentSeparator = L'#'; + UnicodeString HelpPath = CutToChar(HelpString, FragmentSeparator, false); + HelpUrl = FMTLOAD(DOCUMENTATION_KEYWORD_URL2, (HelpPath, FVersion, FLanguage)); + AddToList(HelpUrl, HelpString, FragmentSeparator); + } OpenBrowser(HelpUrl); } diff --git a/source/windows/WinInterface.cpp b/source/windows/WinInterface.cpp index 73ff735d..0f1fcc18 100644 --- a/source/windows/WinInterface.cpp +++ b/source/windows/WinInterface.cpp @@ -18,11 +18,11 @@ #include #include "WinInterface.h" -#include "CustomWinConfiguration.h" #include "GUITools.h" #include "JclDebug.hpp" #include "JclHookExcept.hpp" #include +#include //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- @@ -30,6 +30,8 @@ //--------------------------------------------------------------------- TNotifyEvent GlobalOnMinimize = NULL; //--------------------------------------------------------------------- +const IID IID_IListView_Win7 = {0xE5B16AF2, 0x3990, 0x4681, {0xA6, 0x09, 0x1F, 0x06, 0x0C, 0xD1, 0x42, 0x69}}; +//--------------------------------------------------------------------- void __fastcall FormHelp(TCustomForm * Form) { InvokeHelp(Form->ActiveControl != NULL ? Form->ActiveControl : Form); @@ -87,6 +89,7 @@ inline void TMessageParams::Reset() ImageName = L""; MoreMessagesUrl = L""; MoreMessagesSize = TSize(); + CustomCaption = L""; } //--------------------------------------------------------------------------- static bool __fastcall IsPositiveAnswer(unsigned int Answer) @@ -97,9 +100,9 @@ static bool __fastcall IsPositiveAnswer(unsigned int Answer) static void __fastcall NeverAskAgainCheckClick(void * /*Data*/, TObject * Sender) { TCheckBox * CheckBox = dynamic_cast(Sender); - assert(CheckBox != NULL); + DebugAssert(CheckBox != NULL); TForm * Dialog = dynamic_cast(CheckBox->Owner); - assert(Dialog != NULL); + DebugAssert(Dialog != NULL); unsigned int PositiveAnswer = 0; @@ -125,7 +128,7 @@ static void __fastcall NeverAskAgainCheckClick(void * /*Data*/, TObject * Sender } } - assert(PositiveAnswer != 0); + DebugAssert(PositiveAnswer != 0); } for (int ii = 0; ii < Dialog->ControlCount; ii++) @@ -152,7 +155,7 @@ static void __fastcall NeverAskAgainCheckClick(void * /*Data*/, TObject * Sender //--------------------------------------------------------------------------- static TCheckBox * __fastcall FindNeverAskAgainCheck(TForm * Dialog) { - return NOT_NULL(dynamic_cast(Dialog->FindComponent(L"NeverAskAgainCheck"))); + return DebugNotNull(dynamic_cast(Dialog->FindComponent(L"NeverAskAgainCheck"))); } //--------------------------------------------------------------------------- TForm * __fastcall CreateMessageDialogEx(const UnicodeString Msg, @@ -165,7 +168,7 @@ TForm * __fastcall CreateMessageDialogEx(const UnicodeString Msg, case qtInformation: DlgType = mtInformation; break; case qtError: DlgType = mtError; break; case qtWarning: DlgType = mtWarning; break; - default: FAIL; + default: DebugFail(); } unsigned int TimeoutAnswer = (Params != NULL) ? Params->TimeoutAnswer : 0; @@ -189,11 +192,13 @@ TForm * __fastcall CreateMessageDialogEx(const UnicodeString Msg, UnicodeString ImageName; UnicodeString MoreMessagesUrl; TSize MoreMessagesSize; + UnicodeString CustomCaption; if (Params != NULL) { ImageName = Params->ImageName; MoreMessagesUrl = Params->MoreMessagesUrl; MoreMessagesSize = Params->MoreMessagesSize; + CustomCaption = Params->CustomCaption; } const TQueryButtonAlias * Aliases = (Params != NULL) ? Params->Aliases : NULL; @@ -213,11 +218,11 @@ TForm * __fastcall CreateMessageDialogEx(const UnicodeString Msg, TForm * Dialog = CreateMoreMessageDialog(Msg, MoreMessages, DlgType, Answers, Aliases, AliasesCount, TimeoutAnswer, &TimeoutButton, ImageName, NeverAskAgainCaption, - MoreMessagesUrl, MoreMessagesSize); + MoreMessagesUrl, MoreMessagesSize, CustomCaption); try { - if (HasNeverAskAgain && ALWAYS_TRUE(Params != NULL)) + if (HasNeverAskAgain && DebugAlwaysTrue(Params != NULL)) { TCheckBox * NeverAskAgainCheck = FindNeverAskAgainCheck(Dialog); NeverAskAgainCheck->Checked = Params->NeverAskAgainCheckedInitially; @@ -353,7 +358,7 @@ void __fastcall TMessageTimeout::Cancel() //--------------------------------------------------------------------------- void __fastcall TMessageTimeout::UpdateButton() { - assert(FButton != NULL); + DebugAssert(FButton != NULL); FButton->Caption = !Enabled ? FOrigCaption : FMTLOAD(TIMEOUT_BUTTON, (FOrigCaption, int(FTimeout / MSecsPerSec))); } @@ -362,9 +367,9 @@ void __fastcall TMessageTimeout::DoTimer(TObject * /*Sender*/) { if (FTimeout <= Interval) { - assert(FButton != NULL); + DebugAssert(FButton != NULL); TForm * Dialog = dynamic_cast(FButton->Parent); - assert(Dialog != NULL); + DebugAssert(Dialog != NULL); Dialog->ModalResult = FButton->ModalResult; } @@ -389,7 +394,7 @@ friend void __fastcall SetTimeoutEvents(TControl * Control, TMessageTimeout * Ti static void __fastcall MessageDialogMouseMove(void * Data, TObject * /*Sender*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/) { - assert(Data != NULL); + DebugAssert(Data != NULL); TMessageTimeout * Timeout = static_cast(Data); Timeout->Suspend(); } @@ -397,7 +402,7 @@ static void __fastcall MessageDialogMouseMove(void * Data, TObject * /*Sender*/, static void __fastcall MessageDialogMouseDown(void * Data, TObject * /*Sender*/, TMouseButton /*Button*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/) { - assert(Data != NULL); + DebugAssert(Data != NULL); TMessageTimeout * Timeout = static_cast(Data); Timeout->Cancel(); } @@ -405,7 +410,7 @@ static void __fastcall MessageDialogMouseDown(void * Data, TObject * /*Sender*/, static void __fastcall MessageDialogKeyDownUp(void * Data, TObject * /*Sender*/, Word & /*Key*/, TShiftState /*Shift*/) { - assert(Data != NULL); + DebugAssert(Data != NULL); TMessageTimeout * Timeout = static_cast(Data); Timeout->Cancel(); } @@ -413,18 +418,18 @@ static void __fastcall MessageDialogKeyDownUp(void * Data, TObject * /*Sender*/, void __fastcall SetTimeoutEvents(TControl * Control, TMessageTimeout * Timeout) { TPublicControl * PublicControl = reinterpret_cast(Control); - assert(PublicControl->OnMouseMove == NULL); + DebugAssert(PublicControl->OnMouseMove == NULL); PublicControl->OnMouseMove = MakeMethod(Timeout, MessageDialogMouseMove); - assert(PublicControl->OnMouseDown == NULL); + DebugAssert(PublicControl->OnMouseDown == NULL); PublicControl->OnMouseDown = MakeMethod(Timeout, MessageDialogMouseDown); TWinControl * WinControl = dynamic_cast(Control); if (WinControl != NULL) { TPublicWinControl * PublicWinControl = reinterpret_cast(Control); - assert(PublicWinControl->OnKeyDown == NULL); + DebugAssert(PublicWinControl->OnKeyDown == NULL); PublicWinControl->OnKeyDown = MakeMethod(Timeout, MessageDialogKeyDownUp); - assert(PublicWinControl->OnKeyUp == NULL); + DebugAssert(PublicWinControl->OnKeyUp == NULL); PublicWinControl->OnKeyUp = MakeMethod(Timeout, MessageDialogKeyDownUp); for (int Index = 0; Index < WinControl->ControlCount; Index++) @@ -434,62 +439,64 @@ void __fastcall SetTimeoutEvents(TControl * Control, TMessageTimeout * Timeout) } } //--------------------------------------------------------------------------- -unsigned int __fastcall MoreMessageDialog(const UnicodeString Message, TStrings * MoreMessages, +// Merge with CreateMessageDialogEx +TForm * __fastcall CreateMoreMessageDialogEx(const UnicodeString Message, TStrings * MoreMessages, TQueryType Type, unsigned int Answers, UnicodeString HelpKeyword, const TMessageParams * Params) { - unsigned int Result; - TForm * Dialog = NULL; + std::unique_ptr Dialog; + UnicodeString AMessage = Message; TMessageTimer * Timer = NULL; - TMessageTimeout * Timeout = NULL; - try - { - UnicodeString AMessage = Message; - if ((Params != NULL) && (Params->Timer > 0)) + if ((Params != NULL) && (Params->Timer > 0)) + { + Timer = new TMessageTimer(Application); + Timer->Interval = Params->Timer; + Timer->Event = Params->TimerEvent; + if (Params->TimerAnswers > 0) { - Timer = new TMessageTimer(Application); - Timer->Interval = Params->Timer; - Timer->Event = Params->TimerEvent; - if (Params->TimerAnswers > 0) - { - Answers = Params->TimerAnswers; - } - if (Params->TimerQueryType >= 0) - { - Type = Params->TimerQueryType; - } - if (!Params->TimerMessage.IsEmpty()) - { - AMessage = Params->TimerMessage; - } + Answers = Params->TimerAnswers; } - - TButton * TimeoutButton = NULL; - Dialog = CreateMessageDialogEx(AMessage, MoreMessages, Type, Answers, - HelpKeyword, Params, TimeoutButton); - - if (Timer != NULL) + if (Params->TimerQueryType >= 0) { - Timer->Dialog = Dialog; + Type = Params->TimerQueryType; } - - if (Params != NULL) + if (!Params->TimerMessage.IsEmpty()) { - if (Params->Timeout > 0) - { - Timeout = new TMessageTimeout(Application, Params->Timeout, TimeoutButton); - SetTimeoutEvents(Dialog, Timeout); - } + AMessage = Params->TimerMessage; } + Timer->Name = L"MessageTimer"; + } + + TButton * TimeoutButton = NULL; + Dialog.reset( + CreateMessageDialogEx( + AMessage, MoreMessages, Type, Answers, HelpKeyword, Params, TimeoutButton)); - Result = ExecuteMessageDialog(Dialog, Answers, Params); + if (Timer != NULL) + { + Timer->Dialog = Dialog.get(); + Dialog->InsertComponent(Timer); } - __finally + + if (Params != NULL) { - delete Dialog; - delete Timer; - delete Timeout; + if (Params->Timeout > 0) + { + TMessageTimeout * Timeout = new TMessageTimeout(Application, Params->Timeout, TimeoutButton); + SetTimeoutEvents(Dialog.get(), Timeout); + Timeout->Name = L"MessageTimeout"; + Dialog->InsertComponent(Timeout); + } } + + return Dialog.release(); +} +//--------------------------------------------------------------------------- +unsigned int __fastcall MoreMessageDialog(const UnicodeString Message, TStrings * MoreMessages, + TQueryType Type, unsigned int Answers, UnicodeString HelpKeyword, const TMessageParams * Params) +{ + std::unique_ptr Dialog(CreateMoreMessageDialogEx(Message, MoreMessages, Type, Answers, HelpKeyword, Params)); + unsigned int Result = ExecuteMessageDialog(Dialog.get(), Answers, Params); return Result; } //--------------------------------------------------------------------------- @@ -529,11 +536,11 @@ static TStrings * __fastcall StackInfoListToStrings( // get rid of declarations "flags" that are included in .map Frame = ReplaceStr(Frame, L"__fastcall ", L""); Frame = ReplaceStr(Frame, L"__linkproc__ ", L""); - if (ALWAYS_TRUE(!Frame.IsEmpty() && (Frame[1] == L'('))) + if (DebugAlwaysTrue(!Frame.IsEmpty() && (Frame[1] == L'('))) { int Start = Frame.Pos(L"["); int End = Frame.Pos(L"]"); - if (ALWAYS_TRUE((Start > 1) && (End > Start) && (Frame[Start - 1] == L' '))) + if (DebugAlwaysTrue((Start > 1) && (End > Start) && (Frame[Start - 1] == L' '))) { // remove absolute address Frame.Delete(Start - 1, End - Start + 2); @@ -593,7 +600,7 @@ unsigned int __fastcall ExceptionMessageDialog(Exception * E, TQueryType Type, UnicodeString Message; // this is always called from within ExceptionMessage check, // so it should never fail here - CHECK(ExceptionMessageFormatted(E, Message)); + DebugCheck(ExceptionMessageFormatted(E, Message)); HelpKeyword = MergeHelpKeyword(HelpKeyword, GetExceptionHelpKeyword(E)); @@ -612,7 +619,7 @@ unsigned int __fastcall FatalExceptionMessageDialog(Exception * E, TQueryType Ty int SessionReopenTimeout, const UnicodeString MessageFormat, unsigned int Answers, UnicodeString HelpKeyword, const TMessageParams * Params) { - assert(FLAGCLEAR(Answers, qaRetry)); + DebugAssert(FLAGCLEAR(Answers, qaRetry)); Answers |= qaRetry; TQueryButtonAlias Aliases[1]; @@ -624,14 +631,14 @@ unsigned int __fastcall FatalExceptionMessageDialog(Exception * E, TQueryType Ty { AParams = *Params; } - assert(AParams.Timeout == 0); + DebugAssert(AParams.Timeout == 0); // the condition is de facto excess if (SessionReopenTimeout > 0) { AParams.Timeout = SessionReopenTimeout; AParams.TimeoutAnswer = qaRetry; } - assert(AParams.Aliases == NULL); + DebugAssert(AParams.Aliases == NULL); AParams.Aliases = Aliases; AParams.AliasesCount = LENOF(Aliases); @@ -650,7 +657,7 @@ static void __fastcall DoExceptNotify(TObject * ExceptObj, void * ExceptAddr, TJclStackInfoList * StackInfoList = JclLastExceptStackList(); - if (ALWAYS_TRUE(StackInfoList != NULL)) + if (DebugAlwaysTrue(StackInfoList != NULL)) { std::unique_ptr StackTrace(StackInfoListToStrings(StackInfoList)); @@ -702,7 +709,7 @@ void __fastcall SetNoGUI() //--------------------------------------------------------------------------- bool __fastcall ProcessGUI(bool Force) { - assert(MainThread != 0); + DebugAssert(MainThread != 0); bool Result = false; // Calling ProcessMessages in Azure WebJob causes access violation in VCL. // As we do not really need to call it in scripting/.NET, just skip it. @@ -826,8 +833,8 @@ bool __fastcall CopyParamListPopupClick(TObject * Sender, bool * SaveSettings) { TComponent * Item = dynamic_cast(Sender); - assert(Item != NULL); - assert((Item->Tag >= cpiSaveSettings) && (Item->Tag < GUIConfiguration->CopyParamList->Count)); + DebugAssert(Item != NULL); + DebugAssert((Item->Tag >= cpiSaveSettings) && (Item->Tag < GUIConfiguration->CopyParamList->Count)); bool Result; if (Item->Tag == cpiConfigure) @@ -837,7 +844,8 @@ bool __fastcall CopyParamListPopupClick(TObject * Sender, Result = (MatchedPreset && GUIConfiguration->HasCopyParamPreset[Preset]); if (Result) { - Param = GUIConfiguration->CopyParamPreset[Preset]; + // For cast, see a comment below + Param = TCopyParamType(GUIConfiguration->CopyParamPreset[Preset]); } } else if (Item->Tag == cpiCustom) @@ -846,7 +854,7 @@ bool __fastcall CopyParamListPopupClick(TObject * Sender, } else if (Item->Tag == cpiSaveSettings) { - if (ALWAYS_TRUE(SaveSettings != NULL)) + if (DebugAlwaysTrue(SaveSettings != NULL)) { *SaveSettings = !*SaveSettings; } @@ -856,7 +864,9 @@ bool __fastcall CopyParamListPopupClick(TObject * Sender, { Preset = (Item->Tag >= 0) ? GUIConfiguration->CopyParamList->Names[Item->Tag] : UnicodeString(); - Param = GUIConfiguration->CopyParamPreset[Preset]; + // The cast strips away the "queue" properties of the TGUICopyParamType + // that are not configurable in presets + Param = TCopyParamType(GUIConfiguration->CopyParamPreset[Preset]); Result = true; } return Result; @@ -964,7 +974,7 @@ void __fastcall TWinInteractiveCustomCommand::Execute( } else if (Read > 0) { - Value += UnicodeString(AnsiString(Buffer, Read)); + Value += AnsiToString(Buffer, Read); } } @@ -1008,7 +1018,7 @@ void __fastcall MenuPopup(TPopupMenu * Menu, TButton * Button) void __fastcall MenuPopup(TObject * Sender, const TPoint & MousePos, bool & Handled) { TControl * Control = dynamic_cast(Sender); - assert(Control != NULL); + DebugAssert(Control != NULL); TPoint Point; if ((MousePos.x == -1) && (MousePos.y == -1)) { @@ -1019,7 +1029,7 @@ void __fastcall MenuPopup(TObject * Sender, const TPoint & MousePos, bool & Hand Point = Control->ClientToScreen(MousePos); } TPopupMenu * PopupMenu = (reinterpret_cast(Control))->PopupMenu; - assert(PopupMenu != NULL); + DebugAssert(PopupMenu != NULL); TRect Rect(Point, Point); MenuPopup(PopupMenu, Rect, Control); Handled = true; @@ -1028,10 +1038,10 @@ void __fastcall MenuPopup(TObject * Sender, const TPoint & MousePos, bool & Hand TComponent * __fastcall GetPopupComponent(TObject * Sender) { TComponent * Item = dynamic_cast(Sender); - assert(Item != NULL); + DebugAssert(Item != NULL); TPopupMenu * PopupMenu = dynamic_cast(Item->Owner); - assert(PopupMenu != NULL); - assert(PopupMenu->PopupComponent != NULL); + DebugAssert(PopupMenu != NULL); + DebugAssert(PopupMenu->PopupComponent != NULL); return PopupMenu->PopupComponent; } //--------------------------------------------------------------------------- @@ -1063,26 +1073,15 @@ TRect __fastcall CalculatePopupRect(TControl * Control, TPoint MousePos) //--------------------------------------------------------------------------- void __fastcall FixButtonImage(TButton * Button) { - // this themes enabled, button image is by default drawn too high + // with themes enabled, button image is by default drawn too high if (UseThemes()) { Button->ImageMargins->Top = 1; } } //--------------------------------------------------------------------------- -void __fastcall UncenterButtonImage(TButton * Button) -{ - Button->ImageMargins->Left = 0; - if (UseThemes()) - { - Button->Caption = TrimLeft(Button->Caption); - } -} -//--------------------------------------------------------------------------- void __fastcall CenterButtonImage(TButton * Button) { - UncenterButtonImage(Button); - // with themes disabled, the text seems to be drawn over the icon, // so that the padding spaces hide away most of the icon if (UseThemes()) @@ -1099,15 +1098,26 @@ void __fastcall CenterButtonImage(TButton * Button) { Padding += L" "; } - Caption = Padding + Caption; + if (Button->IsRightToLeft()) + { + Caption = Caption + Padding; + } + else + { + Caption = Padding + Caption; + } Button->Caption = Caption; int CaptionWidth = Canvas->TextWidth(Caption); // The margins seem to extend the area over which the image is centered, // so we have to set it to a double of desired padding. + // The original formula is - 2 * ((CaptionWidth / 2) - (ImageWidth / 2) + ScaleByTextHeight(Button, 2)) + // the one below is equivalent, but with reduced rouding. + // Without the change, the rouding caused the space between icon and caption too + // small on 200% zoom. // Note that (CaptionWidth / 2) - (ImageWidth / 2) // is approximatelly same as half of caption width before padding. - Button->ImageMargins->Left = - 2 * ((CaptionWidth / 2) - (ImageWidth / 2) + ScaleByTextHeight(Button, 2)); + Button->ImageMargins->Left = -(CaptionWidth - ImageWidth + ScaleByTextHeight(Button, 4)); } else { @@ -1116,6 +1126,34 @@ void __fastcall CenterButtonImage(TButton * Button) } } //--------------------------------------------------------------------------- +int __fastcall AdjustLocaleFlag(const UnicodeString & S, TLocaleFlagOverride LocaleFlagOverride, bool Recommended, int On, int Off) +{ + int Result = !S.IsEmpty() && StrToInt(S); + switch (LocaleFlagOverride) + { + default: + case lfoLanguageIfRecommended: + if (!Recommended) + { + Result = Off; + } + break; + + case lfoLanguage: + // noop = as configured in locale + break; + + case lfoAlways: + Result = On; + break; + + case lfoNever: + Result = Off; + break; + } + return Result; +} +//--------------------------------------------------------------------------- void __fastcall SetGlobalMinimizeHandler(TCustomForm * /*Form*/, TNotifyEvent OnMinimize) { if (GlobalOnMinimize == NULL) @@ -1135,7 +1173,7 @@ void __fastcall ClearGlobalMinimizeHandler(TNotifyEvent OnMinimize) void __fastcall CallGlobalMinimizeHandler(TObject * Sender) { Configuration->Usage->Inc(L"OperationMinimizations"); - if (ALWAYS_TRUE(GlobalOnMinimize != NULL)) + if (DebugAlwaysTrue(GlobalOnMinimize != NULL)) { GlobalOnMinimize(Sender); } @@ -1151,7 +1189,7 @@ static void __fastcall DoApplicationMinimizeRestore(bool Minimize) // but we do it for consistency anyway. TForm * MainForm = Application->MainForm; bool RestoreMainForm = false; - if (ALWAYS_TRUE(MainForm != NULL) && + if (DebugAlwaysTrue(MainForm != NULL) && !MainForm->Visible) { SetAppMainForm(NULL); @@ -1197,6 +1235,19 @@ bool __fastcall IsApplicationMinimized() return AppMinimized || MainFormMinimized; } //--------------------------------------------------------------------------- +bool __fastcall HandleMinimizeSysCommand(TMessage & Message) +{ + TWMSysCommand & SysCommand = reinterpret_cast(Message); + unsigned int Cmd = (SysCommand.CmdType & 0xFFF0); + bool Result = (Cmd == SC_MINIMIZE); + if (Result) + { + ApplicationMinimize(); + SysCommand.Result = 1; + } + return Result; +} +//--------------------------------------------------------------------------- void __fastcall WinInitialize() { if (JclHookExceptions()) @@ -1206,7 +1257,7 @@ void __fastcall WinInitialize() } SetErrorMode(SEM_FAILCRITICALERRORS); - OnApiPath = ::ApiPath; + OnApiPath = ApiPath; MainThread = GetCurrentThreadId(); #pragma warn -8111 @@ -1233,7 +1284,7 @@ __fastcall ::TTrayIcon::TTrayIcon(unsigned int Id) // LoadIconMetric is available from Windows Vista only HMODULE ComCtl32Dll = GetModuleHandle(comctl32); - if (ALWAYS_TRUE(ComCtl32Dll)) + if (DebugAlwaysTrue(ComCtl32Dll)) { typedef HRESULT WINAPI (* TLoadIconMetric)(HINSTANCE hinst, PCWSTR pszName, int lims, __out HICON *phico); TLoadIconMetric LoadIconMetric = (TLoadIconMetric)GetProcAddress(ComCtl32Dll, "LoadIconMetric"); @@ -1400,7 +1451,7 @@ void __fastcall ::TTrayIcon::WndProc(TMessage & Message) { if (Message.Msg == WM_TRAY_ICON) { - assert(Message.WParam == 0); + DebugAssert(Message.WParam == 0); switch (Message.LParam) { // old shell32 diff --git a/source/windows/WinInterface.h b/source/windows/WinInterface.h index e0bc359f..23110cd2 100644 --- a/source/windows/WinInterface.h +++ b/source/windows/WinInterface.h @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #ifdef LOCALINTERFACE @@ -30,10 +30,10 @@ const int mpAllowContinueOnError = 0x02; #define SEND_TO_HOOK_SWITCH L"SendToHook" #define UNSAFE_SWITCH L"Unsafe" #define NEWINSTANCE_SWICH L"NewInstance" - -#define THEME_OFFICEXP L"OfficeXP" -#define THEME_OFFICE2003 L"Office2003" -#define THEME_DEFAULT L"Default" +#define KEYGEN_SWITCH L"KeyGen" +#define KEYGEN_OUTPUT_SWITCH L"Output" +#define KEYGEN_COMMENT_SWITCH L"Comment" +#define KEYGEN_CHANGE_PASSPHRASE_SWITCH L"ChangePassphrase" struct TMessageParams { @@ -57,6 +57,7 @@ struct TMessageParams UnicodeString ImageName; UnicodeString MoreMessagesUrl; TSize MoreMessagesSize; + UnicodeString CustomCaption; private: inline void Reset(); @@ -132,19 +133,19 @@ bool __fastcall DoChangeMasterPasswordDialog(UnicodeString & NewPassword); // windows\WinMain.cpp int __fastcall Execute(); void __fastcall GetLoginData(UnicodeString SessionName, TOptions * Options, - TObjectList * DataList, UnicodeString & DownloadFile); + TObjectList * DataList, UnicodeString & DownloadFile, bool NeedSession); // forms\InputDlg.cpp struct TInputDialogData { - TEdit * Edit; + TCustomEdit * Edit; }; typedef void __fastcall (__closure *TInputDialogInitialize) (TObject * Sender, TInputDialogData * Data); bool __fastcall InputDialog(const UnicodeString ACaption, const UnicodeString APrompt, UnicodeString & Value, UnicodeString HelpKeyword = HELP_NONE, TStrings * History = NULL, bool PathInput = false, - TInputDialogInitialize OnInitialize = NULL); + TInputDialogInitialize OnInitialize = NULL, bool Echo = true); // forms\About.cpp struct TRegistration @@ -229,7 +230,8 @@ bool __fastcall LocationProfilesDialog(TOpenDirectoryMode Mode, // forms\Preferences.cpp enum TPreferencesMode { pmDefault, pmEditor, pmCustomCommands, - pmQueue, pmLogging, pmUpdates, pmPresets, pmEditors, pmCommander }; + pmQueue, pmLogging, pmUpdates, pmPresets, pmEditors, pmCommander, + pmEditorInternal }; class TCopyParamRuleData; struct TPreferencesDialogData { @@ -284,11 +286,11 @@ bool __fastcall DoPropertiesDialog(TStrings * FileList, int AllowedChanges, bool UserGroupByID, TCalculateSizeEvent OnCalculateSize, TCalculateChecksumEvent OnCalculateChecksum); -bool __fastcall DoRemoteMoveDialog(UnicodeString & Target, UnicodeString & FileMask); +bool __fastcall DoRemoteMoveDialog(bool Multi, UnicodeString & Target, UnicodeString & FileMask); enum TDirectRemoteCopy { drcDisallow, drcAllow, drcConfirmCommandSession }; bool __fastcall DoRemoteCopyDialog(TStrings * Sessions, TStrings * Directories, - TDirectRemoteCopy AllowDirectCopy, void *& Session, UnicodeString & Target, UnicodeString & FileMask, - bool & DirectCopy); + TDirectRemoteCopy AllowDirectCopy, bool Multi, void *& Session, + UnicodeString & Target, UnicodeString & FileMask, bool & DirectCopy); // forms\SelectMask.cpp #ifdef CustomdirviewHPP @@ -350,11 +352,16 @@ bool __fastcall DoSynchronizeChecklistDialog(TSynchronizeChecklist * Checklist, // forms\Editor.cpp typedef void __fastcall (__closure *TFileClosedEvent) (TObject * Sender, bool Forced); +typedef void __fastcall (__closure *TAnyModifiedEvent) + (TObject * Sender, bool & Modified); TForm * __fastcall ShowEditorForm(const UnicodeString FileName, TCustomForm * ParentForm, TNotifyEvent OnFileChanged, TNotifyEvent OnFileReload, TFileClosedEvent OnClose, + TNotifyEvent OnSaveAll, TAnyModifiedEvent OnAnyModified, const UnicodeString Caption, bool StandaloneEditor, TColor Color); void __fastcall ReconfigureEditorForm(TForm * Form); void __fastcall EditorFormFileUploadComplete(TForm * Form); +void __fastcall EditorFormFileSave(TForm * Form); +bool __fastcall IsEditorFormModified(TForm * Form); bool __fastcall DoSymlinkDialog(UnicodeString & FileName, UnicodeString & PointTo, TOperationSide Side, bool & SymbolicLink, bool Edit, bool AllowSymbolic); @@ -377,10 +384,16 @@ TForm * __fastcall CreateMoreMessageDialog(const UnicodeString & Msg, const TQueryButtonAlias * Aliases, unsigned int AliasesCount, unsigned int TimeoutAnswer, TButton ** TimeoutButton, const UnicodeString & ImageName, const UnicodeString & NeverAskAgainCaption, - const UnicodeString & MoreMessagesUrl, TSize MoreMessagesSize); + const UnicodeString & MoreMessagesUrl, TSize MoreMessagesSize, + const UnicodeString & CustomCaption); +TForm * __fastcall CreateMoreMessageDialogEx(const UnicodeString Message, TStrings * MoreMessages, + TQueryType Type, unsigned int Answers, UnicodeString HelpKeyword, const TMessageParams * Params); +unsigned int __fastcall ExecuteMessageDialog(TForm * Dialog, unsigned int Answers, const TMessageParams * Params); +void __fastcall InsertPanelToMessageDialog(TCustomForm * Form, TPanel * Panel); +void __fastcall NavigateMessageDialogToUrl(TCustomForm * Form, const UnicodeString & Url); // windows\Console.cpp -enum TConsoleMode { cmNone, cmScripting, cmHelp, cmBatchSettings }; +enum TConsoleMode { cmNone, cmScripting, cmHelp, cmBatchSettings, cmKeyGen }; int __fastcall Console(TConsoleMode Mode); // forms\EditorPreferences.cpp @@ -425,19 +438,26 @@ TPopupMenu * __fastcall CreateSessionColorPopupMenu(TColor Color, TColorChangeEvent OnColorChange); void __fastcall CreateSessionColorMenu(TComponent * AOwner, TColor Color, TColorChangeEvent OnColorChange); +void __fastcall CreateEditorBackgroundColorMenu(TComponent * AOwner, TColor Color, + TColorChangeEvent OnColorChange); +TPopupMenu * __fastcall CreateColorPopupMenu(TColor Color, + TColorChangeEvent OnColorChange); void __fastcall FixButtonImage(TButton * Button); void __fastcall CenterButtonImage(TButton * Button); -void __fastcall UncenterButtonImage(TButton * Button); void __fastcall UpgradeSpeedButton(TSpeedButton * Button); +int __fastcall AdjustLocaleFlag(const UnicodeString & S, TLocaleFlagOverride LocaleFlagOverride, bool Recommended, int On, int Off); + void __fastcall SetGlobalMinimizeHandler(TCustomForm * Form, TNotifyEvent OnMinimize); void __fastcall ClearGlobalMinimizeHandler(TNotifyEvent OnMinimize); void __fastcall CallGlobalMinimizeHandler(TObject * Sender); bool __fastcall IsApplicationMinimized(); void __fastcall ApplicationMinimize(); void __fastcall ApplicationRestore(); +bool __fastcall HandleMinimizeSysCommand(TMessage & Message); + void __fastcall WinInitialize(); void __fastcall WinFinalize(); @@ -449,6 +469,13 @@ void __fastcall InitializeShortCutCombo(TComboBox * ComboBox, void __fastcall SetShortCutCombo(TComboBox * ComboBox, TShortCut Value); TShortCut __fastcall GetShortCutCombo(TComboBox * ComboBox); bool __fastcall IsCustomShortCut(TShortCut ShortCut); + +class TAnimationsModule; +TAnimationsModule * __fastcall GetAnimationsModule(); + +#ifdef _DEBUG +void __fastcall ForceTracing(); +#endif //--------------------------------------------------------------------------- #define HIDDEN_WINDOW_NAME L"WinSCPHiddenWindow2" //--------------------------------------------------------------------------- diff --git a/source/windows/WinMain.cpp b/source/windows/WinMain.cpp index 744cd9a4..007dfbbe 100644 --- a/source/windows/WinMain.cpp +++ b/source/windows/WinMain.cpp @@ -19,11 +19,12 @@ #include "GUITools.h" #include "Tools.h" #include "WinApi.h" +#include //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- void __fastcall GetLoginData(UnicodeString SessionName, TOptions * Options, - TObjectList * DataList, UnicodeString & DownloadFile) + TObjectList * DataList, UnicodeString & DownloadFile, bool NeedSession) { bool DefaultsOnly = false; bool Close = false; @@ -42,7 +43,7 @@ void __fastcall GetLoginData(UnicodeString SessionName, TOptions * Options, if (DataList->Count == 1) { - TSessionData * SessionData = NOT_NULL(dynamic_cast(DataList->Items[0])); + TSessionData * SessionData = DebugNotNull(dynamic_cast(DataList->Items[0])); if (SessionData->SaveOnly) { Configuration->Usage->Inc(L"CommandLineSessionSave"); @@ -54,19 +55,34 @@ void __fastcall GetLoginData(UnicodeString SessionName, TOptions * Options, } DataList->Clear(); } + else if (!SessionData->PuttyProtocol.IsEmpty()) + { + // putty does not support resolving environment variables in session settings + // though it's hardly of any use here. + SessionData->ExpandEnvironmentVariables(); + OpenSessionInPutty(GUIConfiguration->PuttyPath, SessionData); + DataList->Clear(); + Close = true; + } } } if (!Close) { - if ((DataList->Count == 0) || + if (DefaultsOnly && !NeedSession) + { + // No URL specified on command-line and no explicit command-line parameter + // that results session was specified => noop + DataList->Clear(); + } + else if ((DataList->Count == 0) || !dynamic_cast(DataList->Items[0])->CanLogin || DefaultsOnly) { // Note that GetFolderOrWorkspace never returns sites that !CanLogin, // so we should not get here with more then one site. // Though we should be good, if we ever do. - assert(DataList->Count <= 1); + DebugAssert(DataList->Count <= 1); if (!DoLoginDialog(StoredSessions, DataList, loStartup)) { DataList->Clear(); @@ -228,7 +244,7 @@ void __fastcall ImportSitesIfAny() } else { - FAIL; + DebugFail(); } UnicodeString Message = FORMAT(LoadStrPart(IMPORT_SESSIONS2, 1), (Source)); @@ -248,7 +264,7 @@ void __fastcall Usage(UnicodeString Param) { while (!Param.IsEmpty()) { - UnicodeString Pair = ::CutToChar(Param, L',', true); + UnicodeString Pair = CutToChar(Param, L',', true); if (!Pair.IsEmpty()) { if (Pair[Pair.Length()] == L'+') @@ -258,7 +274,7 @@ void __fastcall Usage(UnicodeString Param) } else { - UnicodeString Key = ::CutToChar(Pair, L':', true); + UnicodeString Key = CutToChar(Pair, L':', true); Configuration->Usage->Set(Key, Pair.Trim()); } } @@ -312,6 +328,16 @@ void __fastcall RecordWrapperVersions(UnicodeString ConsoleVersion, UnicodeStrin } } //--------------------------------------------------------------------------- +static UnicodeString ColorToRGBStr(TColor Color) +{ + int RGB = ColorToRGB(Color); + int R = GetRValue(RGB); + int G = GetGValue(RGB); + int B = GetBValue(RGB); + UnicodeString Result = FORMAT(L"%.2x%.2x%.2x", (R, G, B)); + return Result; +} +//--------------------------------------------------------------------------- void __fastcall UpdateStaticUsage() { Configuration->Usage->Inc(L"Runs"); @@ -398,6 +424,10 @@ void __fastcall UpdateStaticUsage() Configuration->Usage->Set(L"ThemeDefaultFontSize", Application->DefaultFont->Size); Configuration->Usage->Set(L"ThemeIconFontSize", Screen->IconFont->Size); + Configuration->Usage->Set(L"SysColorWindow", ColorToRGBStr(clWindow)); + Configuration->Usage->Set(L"SysColorBtnFace", ColorToRGBStr(clBtnFace)); + Configuration->Usage->Set(L"SysColorWindowText", ColorToRGBStr(clWindowText)); + UnicodeString ProgramsFolder; ::SpecialFolderLocation(CSIDL_PROGRAM_FILES, ProgramsFolder); ProgramsFolder = IncludeTrailingBackslash(ExpandFileName(ProgramsFolder)); @@ -512,6 +542,7 @@ bool __fastcall ShowUpdatesIfAvailable() { TUpdatesConfiguration Updates = WinConfiguration->Updates; int CurrentCompoundVer = Configuration->CompoundVersion; + bool NoPopup = true; bool Result = Updates.ShowOnStartup && Updates.HaveValidResultsForVersion(CurrentCompoundVer) && @@ -526,15 +557,39 @@ bool __fastcall ShowUpdatesIfAvailable() { Configuration->Usage->Inc(L"UpdateDownloadOpensStartup"); } + NoPopup = false; + } + else if (WinConfiguration->ShowTips) + { + int Days = DaysBetween(WinConfiguration->TipsShown, Now()); + if ((Days >= Updates.Results.TipsIntervalDays) && + (WinConfiguration->RunsSinceLastTip >= Updates.Results.TipsIntervalDays)) + { + UnicodeString Tip = FirstUnshownTip(); + if (!Tip.IsEmpty()) + { + AutoShowNewTip(); + NoPopup = false; + } + else + { + Configuration->Usage->Inc(L"TipsNoUnseen"); + } + } + } + + if (NoPopup) + { + WinConfiguration->RunsSinceLastTip = WinConfiguration->RunsSinceLastTip + 1; } return Result; } //--------------------------------------------------------------------------- int __fastcall Execute() { - assert(StoredSessions); + DebugAssert(StoredSessions); TProgramParams * Params = TProgramParams::Instance(); - assert(Params); + DebugAssert(Params); // do not flash message boxes on startup SetOnForeground(true); @@ -600,11 +655,15 @@ int __fastcall Execute() { Mode = cmBatchSettings; } + else if (Params->FindSwitch(KEYGEN_SWITCH)) + { + Mode = cmKeyGen; + } // We have to check for /console only after the other options, // as the /console is always used when we are run by winscp.com // (ambiguous use to pass console version) else if (Params->FindSwitch(L"Console") || Params->FindSwitch(L"script") || - Params->FindSwitch(L"command")) + Params->FindSwitch(COMMAND_SWITCH)) { Mode = cmScripting; } @@ -621,7 +680,7 @@ int __fastcall Execute() try { TerminalManager = TTerminalManager::Instance(); - HANDLE ResourceModule = GUIConfiguration->ChangeResourceModule(NULL); + HANDLE ResourceModule = GUIConfiguration->ChangeToDefaultResourceModule(); try { GlyphsModule = new TGlyphsModule(Application); @@ -640,7 +699,7 @@ int __fastcall Execute() if (!IniFileName.IsEmpty()) { UnicodeString IniFileNameExpanded = ExpandEnvironmentVariables(IniFileName); - if (!FileExists(::ApiPath(IniFileNameExpanded))) + if (!FileExists(ApiPath(IniFileNameExpanded))) { // this should be displayed rather at the very beginning. // however for simplicity (GUI-only), we do it only here. @@ -837,17 +896,18 @@ int __fastcall Execute() // from now flash message boxes on background SetOnForeground(false); + bool CommandLineOperation = (ParamCommand != pcNone) || !DownloadFile.IsEmpty(); + bool NeedSession = CommandLineOperation; + bool Retry; do { Retry = false; TObjectList * DataList = new TObjectList(); - GetLoginData(AutoStartSession, Params, DataList, DownloadFile); - // from now on, we do not support runtime locale change - GUIConfiguration->CanApplyLocaleImmediately = false; + GetLoginData(AutoStartSession, Params, DataList, DownloadFile, NeedSession); try { - if (DataList->Count > 0) + if (!NeedSession || (DataList->Count > 0)) { if (CheckSafe(Params)) { @@ -864,12 +924,22 @@ int __fastcall Execute() try { - assert(!TerminalManager->ActiveTerminal); + DebugAssert(!TerminalManager->ActiveTerminal); - TerminalManager->ActiveTerminal = - TerminalManager->NewTerminals(DataList); + bool CanStart; + if (DataList->Count > 0) + { + TerminalManager->ActiveTerminal = + TerminalManager->NewTerminals(DataList); + CanStart = (TerminalManager->Count > 0); + } + else + { + DebugAssert(!NeedSession); + CanStart = true; + } - if (TerminalManager->Count == 0) + if (!CanStart) { // do not prompt with login dialog, if connection of // auto-start session (typically from command line) failed @@ -889,7 +959,7 @@ int __fastcall Execute() // moved inside try .. __finally, because it can fail as well TerminalManager->ScpExplorer = ScpExplorer; - if ((ParamCommand != pcNone) || !DownloadFile.IsEmpty()) + if (CommandLineOperation) { Configuration->Usage->Inc(L"CommandLineOperation"); } diff --git a/source/windows/WinSCP.exe.manifest b/source/windows/WinSCP.exe.manifest index 4ee43697..c543a2b0 100644 --- a/source/windows/WinSCP.exe.manifest +++ b/source/windows/WinSCP.exe.manifest @@ -46,7 +46,7 @@ - true + True/PM - \ No newline at end of file + diff --git a/source/windows/Windows.rc b/source/windows/Windows.rc index 5a1c374e..4fea8671 100644 --- a/source/windows/Windows.rc +++ b/source/windows/Windows.rc @@ -9,13 +9,6 @@ Z_1_SITE ICON "..\\resource\\Site.ico" Z_2_SITE_FOLDER ICON "..\\resource\\SiteFolder.ico" Z_3_WORKSPACE ICON "..\\resource\\Workspace.ico" -Z_ICON_LOG_SMALL ICON "..\\resource\\Log16.ico" -Z_ICON_LOG_BIG ICON "..\\resource\\Log32.ico" -Z_ICON_EDITOR_SMALL ICON "..\\resource\\Editor16.ico" -Z_ICON_EDITOR_BIG ICON "..\\resource\\Editor32.ico" LICENSE RCDATA "License.txt" LICENSE_EXPAT RCDATA "LicenseExpat.txt" - -DELETE_FILE RCDATA "..\\resource\\DeleteFile.png" -REMOTE_MOVE_FILE RCDATA "..\\resource\\RemoteMoveFile.png"